summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
committerParabola <dev@list.parabolagnulinux.org>2011-04-05 14:26:38 +0000
commit415856bdd4f48ab4f2732996f0bae58595092bbe (patch)
treeede2018b591f6dfb477fe9341ba17b9bc000fab9
Tue Apr 5 14:26:38 UTC 2011
-rw-r--r--community-testing/cdfs/PKGBUILD32
-rw-r--r--community-testing/cdfs/cdfs.install11
-rw-r--r--community-testing/gcc-avr/PKGBUILD57
-rw-r--r--community-testing/inputattach/0001-Add-w8001-flag.patch27
-rw-r--r--community-testing/inputattach/0002-Allow-for-custom-baud-rates.patch70
-rw-r--r--community-testing/inputattach/PKGBUILD43
-rw-r--r--community-testing/inputattach/inputattach.conf.d10
-rw-r--r--community-testing/inputattach/inputattach.install18
-rw-r--r--community-testing/inputattach/inputattach.rc.d40
-rw-r--r--community-testing/llvm/PKGBUILD190
-rw-r--r--community-testing/llvm/clang-2.8-alignOf.patch199
-rw-r--r--community-testing/llvm/clang-2.8-cindexer-clang-path.patch13
-rw-r--r--community-testing/llvm/clang-plugin-loader-registry.patch11
-rw-r--r--community-testing/llvm/cpp-headers.patch17
-rw-r--r--community-testing/llvm/llvm-2.8-alignOf.patch59
-rw-r--r--community-testing/open-vm-tools-modules/PKGBUILD40
-rw-r--r--community-testing/open-vm-tools-modules/open-vm-tools-modules.install35
-rw-r--r--community-testing/open-vm-tools/PKGBUILD67
-rw-r--r--community-testing/open-vm-tools/open-vm-tools-X11Bool.patch15
-rw-r--r--community-testing/open-vm-tools/open-vm-tools.conf.d6
-rw-r--r--community-testing/open-vm-tools/open-vm-tools.install10
-rw-r--r--community-testing/open-vm-tools/open-vm-tools.rc.d101
-rw-r--r--community-testing/open-vm-tools/scripts-network-FS19541.patch40
-rw-r--r--community-testing/open-vm-tools/scripts-network.patch63
-rw-r--r--community-testing/open-vm-tools/tools.conf1
-rw-r--r--community-testing/open-vm-tools/vmware-guestd6
-rw-r--r--community-testing/open-vm-tools/xautostart.conf6
-rw-r--r--community-testing/pysfml/PKGBUILD39
-rw-r--r--community-testing/systemd/PKGBUILD66
-rw-r--r--community-testing/systemd/os-release4
-rw-r--r--community-testing/systemd/systemd.install50
-rw-r--r--community-testing/virtualbox/10-vboxdrv.rules5
-rw-r--r--community-testing/virtualbox/60-vboxguest.rules2
-rw-r--r--community-testing/virtualbox/LocalConfig.kmk17
-rw-r--r--community-testing/virtualbox/PKGBUILD210
-rw-r--r--community-testing/virtualbox/vboxdrv-reference.patch43
-rwxr-xr-xcommunity-testing/virtualbox/vboxdrv.sh80
-rw-r--r--community-testing/virtualbox/virtualbox-4-makeself-check.patch10
-rw-r--r--community-testing/virtualbox/virtualbox-4-mkisofs-check.patch10
-rw-r--r--community-testing/virtualbox/virtualbox-guest-modules.install24
-rw-r--r--community-testing/virtualbox/virtualbox.install65
-rw-r--r--community/6tunnel/PKGBUILD20
-rwxr-xr-xcommunity/9base/913
-rw-r--r--community/9base/PKGBUILD47
-rwxr-xr-xcommunity/9base/plan9.sh4
-rw-r--r--community/abuse/PKGBUILD55
-rw-r--r--community/abuse/abuse.install13
-rw-r--r--community/abuse/abuse.patch36
-rw-r--r--community/acetoneiso2/PKGBUILD31
-rw-r--r--community/acetoneiso2/acetoneiso2.install11
-rw-r--r--community/acpitool/PKGBUILD28
-rw-r--r--community/addresses/PKGBUILD31
-rw-r--r--community/adesklets/PKGBUILD52
-rw-r--r--community/adesklets/adesklets.install31
-rw-r--r--community/adesklets/fontconfig-2.4.patch50
-rw-r--r--community/adns-python/PKGBUILD25
-rw-r--r--community/adns/PKGBUILD21
-rw-r--r--community/adns/so-fix.patch10
-rw-r--r--community/agave/PKGBUILD41
-rw-r--r--community/agave/agave-0.4.7-mdv-fix-str-fmt.patch12
-rw-r--r--community/agave/agave.install24
-rw-r--r--community/agave/schemebox.patch11
-rw-r--r--community/agg/PKGBUILD31
-rw-r--r--community/agg/agg-2.4-depends.patch48
-rw-r--r--community/agg/agg-2.5-pkgconfig.patch10
-rw-r--r--community/agsync/PKGBUILD25
-rw-r--r--community/aide/PKGBUILD38
-rw-r--r--community/aide/aide.conf146
-rw-r--r--community/aircrack-ng/ChangeLog58
-rw-r--r--community/aircrack-ng/PKGBUILD102
-rw-r--r--community/alienarena/PKGBUILD37
-rw-r--r--community/alienarena/alienarena.desktop7
-rw-r--r--community/alltray/PKGBUILD26
-rw-r--r--community/amaya/PKGBUILD69
-rw-r--r--community/amaya/amaya-fix-amaya-wxfile.patch13
-rw-r--r--community/amaya/amaya-fix-thotlib-png14.patch56
-rw-r--r--community/amaya/amaya-fix-thotlib-wxfile.patch16
-rw-r--r--community/amaya/amaya-splitmode.patch10
-rw-r--r--community/amaya/amaya-wakeupidle.patch11
-rw-r--r--community/amaya/amaya-wxyield.patch21
-rw-r--r--community/amaya/amaya.install14
-rw-r--r--community/amidi-plug/PKGBUILD23
-rw-r--r--community/amsn/PKGBUILD36
-rw-r--r--community/amsn/amsn-jpeg7.patch10
-rw-r--r--community/amsn/amsn-libpng14.patch64
-rw-r--r--community/amsn/amsn.changelog8
-rw-r--r--community/amyedit/ChangeLog3
-rw-r--r--community/amyedit/PKGBUILD24
-rw-r--r--community/amyedit/amyedit-sigc.patch88
-rw-r--r--community/amyedit/amyedit.patch81
-rw-r--r--community/angband/PKGBUILD48
-rw-r--r--community/antiword/PKGBUILD26
-rw-r--r--community/antiword/antiword-helper13
-rw-r--r--community/antiword/antiword.install26
-rw-r--r--community/anyfs-tools/PKGBUILD23
-rw-r--r--community/apcupsd/PKGBUILD38
-rwxr-xr-xcommunity/apcupsd/apcupsd44
-rw-r--r--community/apg/ChangeLog3
-rw-r--r--community/apg/PKGBUILD26
-rw-r--r--community/apparix/PKGBUILD27
-rw-r--r--community/apparix/apparix.sh52
-rw-r--r--community/apvlv/PKGBUILD38
-rw-r--r--community/apvlv/apvlv-poppler015.patch12
-rw-r--r--community/aqbanking/PKGBUILD26
-rw-r--r--community/arch/PKGBUILD23
-rw-r--r--community/ario/PKGBUILD29
-rw-r--r--community/ario/ario-1.5-libnotify-0.7.patch27
-rw-r--r--community/ario/ario.changelog30
-rw-r--r--community/ario/ario.install11
-rw-r--r--community/armagetronad/PKGBUILD42
-rw-r--r--community/armagetronad/armagetronad.desktop11
-rw-r--r--community/armagetronad/gcc43.patch210
-rw-r--r--community/arpack/PKGBUILD50
-rw-r--r--community/arpack/arpack-2.1-redhat.patch55
-rw-r--r--community/arpack/license.txt43
-rw-r--r--community/arpwatch/ChangeLog3
-rw-r--r--community/arpwatch/PKGBUILD29
-rw-r--r--community/ascii/PKGBUILD26
-rw-r--r--community/asciijump/PKGBUILD32
-rw-r--r--community/aspell-ca/PKGBUILD27
-rw-r--r--community/aspell-cs/PKGBUILD27
-rw-r--r--community/aspell-pl/PKGBUILD22
-rw-r--r--community/aspell-uk/PKGBUILD36
-rw-r--r--community/astromenace/PKGBUILD55
-rw-r--r--community/astromenace/astromenace.desktop10
-rw-r--r--community/astromenace/astromenace.patch12
-rw-r--r--community/astromenace/astromenace.pngbin0 -> 6789 bytes
-rw-r--r--community/astromenace/astromenace.sh3
-rw-r--r--community/astyle/ChangeLog13
-rw-r--r--community/astyle/PKGBUILD26
-rw-r--r--community/asunder/PKGBUILD31
-rw-r--r--community/atanks/PKGBUILD36
-rw-r--r--community/atop/PKGBUILD20
-rw-r--r--community/audex/PKGBUILD38
-rw-r--r--community/audex/audex.install11
-rw-r--r--community/augeas/PKGBUILD26
-rw-r--r--community/aumix/PKGBUILD38
-rw-r--r--community/aumix/aumix.desktop12
-rw-r--r--community/aumix/aumix.install13
-rw-r--r--community/autocutsel/PKGBUILD24
-rw-r--r--community/autofs/PKGBUILD54
-rw-r--r--community/autofs/auto.master6
-rw-r--r--community/autofs/auto.misc7
-rw-r--r--community/autofs/autofs50
-rw-r--r--community/autofs/autofs.conf.d4
-rw-r--r--community/autofs/autofs.install4
-rw-r--r--community/autofs/heimdal.patch44
-rw-r--r--community/autossh/LICENSE16
-rw-r--r--community/autossh/PKGBUILD33
-rw-r--r--community/avant-window-navigator/PKGBUILD58
-rw-r--r--community/avant-window-navigator/avant-window-navigator.install29
-rw-r--r--community/avant-window-navigator/awn-applet-simple.patch21
-rw-r--r--community/avifile/PKGBUILD43
-rw-r--r--community/avifile/gcc.patch133
-rw-r--r--community/avrdude/PKGBUILD28
-rw-r--r--community/awn-extras-applets/PKGBUILD50
-rw-r--r--community/awn-extras-applets/aff-results.patch11
-rw-r--r--community/awn-extras-applets/awn-extras-applets.install23
-rw-r--r--community/awn-extras-applets/awn-extras-libnotify0.7.patch20
-rw-r--r--community/awn-extras-applets/weather.patch11
-rw-r--r--community/axel/PKGBUILD24
-rw-r--r--community/balsa/PKGBUILD36
-rw-r--r--community/balsa/balsa-2.4.8-libnotify-0.7.patch51
-rw-r--r--community/balsa/balsa.install11
-rw-r--r--community/barrage/PKGBUILD27
-rw-r--r--community/bashburn/ChangeLog2
-rw-r--r--community/bashburn/PKGBUILD32
-rw-r--r--community/bbpager/02_gcc43.dpatch40
-rw-r--r--community/bbpager/PKGBUILD36
-rw-r--r--community/bbpager/fix-shm-linking-ugly.diff12
-rw-r--r--community/bbrun/PKGBUILD20
-rw-r--r--community/bchunk/PKGBUILD23
-rw-r--r--community/beaver/PKGBUILD34
-rw-r--r--community/beaver/beaver.install13
-rw-r--r--community/beye/PKGBUILD41
-rw-r--r--community/bin2iso/PKGBUILD27
-rw-r--r--community/bind-geodns/127.0.0.zone11
-rw-r--r--community/bind-geodns/PKGBUILD66
-rw-r--r--community/bind-geodns/bind.install28
-rw-r--r--community/bind-geodns/bind.so_bsdcompat.diff11
-rw-r--r--community/bind-geodns/localhost.zone10
-rwxr-xr-xcommunity/bind-geodns/named41
-rw-r--r--community/bind-geodns/named.conf58
-rw-r--r--community/bind-geodns/named.conf.d4
-rw-r--r--community/bind-geodns/named.logrotate6
-rw-r--r--community/bind-geodns/root.hint80
-rw-r--r--community/binutils-avr/PKGBUILD71
-rw-r--r--community/blackbox/PKGBUILD34
-rw-r--r--community/blackbox/bbdock.patch16
-rw-r--r--community/blackbox/bsetbg-feh.patch23
-rw-r--r--community/blackbox/gcc4.3.patch111
-rw-r--r--community/bless/PKGBUILD26
-rw-r--r--community/blobby2/PKGBUILD35
-rw-r--r--community/blobby2/blobby2.desktop11
-rw-r--r--community/blobby2/blobby2.pngbin0 -> 8032 bytes
-rw-r--r--community/blueman/PKGBUILD45
-rw-r--r--community/blueman/PulsePatch.patch11
-rw-r--r--community/blueman/blueman.install11
-rw-r--r--community/bmpanel/PKGBUILD27
-rw-r--r--community/bomberclone/PKGBUILD32
-rw-r--r--community/bomberclone/bomberclone.desktop10
-rw-r--r--community/box2d/PKGBUILD44
-rw-r--r--community/bsd-games/PKGBUILD95
-rw-r--r--community/bsd-games/bsd-games-2.17-64bit.patch43
-rw-r--r--community/bsd-games/bsd-games.install11
-rw-r--r--community/bsd-games/config.params16
-rw-r--r--community/bsd-games/gamescreen.h.diff15
-rw-r--r--community/bsd-games/getline.diff194
-rw-r--r--community/bsd-games/number.c.diff156
-rw-r--r--community/bsd-games/stdio.h.diff14
-rw-r--r--community/bsdiff/Makefile.patch25
-rw-r--r--community/bsdiff/PKGBUILD24
-rw-r--r--community/btanks/PKGBUILD62
-rw-r--r--community/btanks/btanks.install36
-rw-r--r--community/btanks/btanks_desktop10
-rw-r--r--community/btanks/btanks_script6
-rw-r--r--community/btanks/bted_script6
-rw-r--r--community/bti/PKGBUILD22
-rw-r--r--community/bullet/PKGBUILD72
-rw-r--r--community/bullet/bullet.pc11
-rw-r--r--community/buoh/ChangeLog5
-rw-r--r--community/buoh/PKGBUILD33
-rw-r--r--community/buoh/buoh-libsoup24.patch71
-rw-r--r--community/buoh/buoh.install24
-rw-r--r--community/busybox/PKGBUILD27
-rw-r--r--community/busybox/config986
-rw-r--r--community/bwbar/PKGBUILD19
-rw-r--r--community/bwm-ng/PKGBUILD28
-rw-r--r--community/cabextract/PKGBUILD28
-rw-r--r--community/cadaver/ChangeLog3
-rw-r--r--community/cadaver/PKGBUILD21
-rw-r--r--community/cairo-clock/PKGBUILD31
-rw-r--r--community/cairo-clock/cairo-clock.patch18
-rw-r--r--community/cairo-compmgr/PKGBUILD65
-rw-r--r--community/cairo-compmgr/cairo-compmgr.install17
-rw-r--r--community/calc/PKGBUILD57
-rw-r--r--community/calcurse/PKGBUILD28
-rw-r--r--community/calibre/PKGBUILD66
-rw-r--r--community/calibre/calibre.install12
-rw-r--r--community/calibre/desktop_integration.patch70
-rw-r--r--community/camlp5-transitional/PKGBUILD37
-rw-r--r--community/camlp5/PKGBUILD36
-rw-r--r--community/canorus/PKGBUILD30
-rw-r--r--community/caph/PKGBUILD36
-rw-r--r--community/caph/caph.desktop7
-rw-r--r--community/castget/PKGBUILD24
-rw-r--r--community/castget/castget.changelog6
-rw-r--r--community/catdvi/PKGBUILD26
-rw-r--r--community/ccd2iso/ChangeLog3
-rw-r--r--community/ccd2iso/PKGBUILD28
-rw-r--r--community/ccid/PKGBUILD29
-rw-r--r--community/cclive/PKGBUILD26
-rw-r--r--community/ccmalloc/PKGBUILD22
-rw-r--r--community/ccrtp/PKGBUILD32
-rw-r--r--community/ccrypt/PKGBUILD21
-rw-r--r--community/ccze/PKGBUILD35
-rw-r--r--community/ccze/ccze-fix-segfault.diff11
-rw-r--r--community/cdbxx/PKGBUILD25
-rw-r--r--community/cdcd/PKGBUILD28
-rw-r--r--community/cdcd/cdcd-0.6.6-x86_64.patch11
-rw-r--r--community/cdck/PKGBUILD30
-rw-r--r--community/cdcover/PKGBUILD32
-rw-r--r--community/cdcover/cdcover.install7
-rw-r--r--community/cddb-py/PKGBUILD26
-rw-r--r--community/cdemu-client/PKGBUILD29
-rw-r--r--community/cdemu-daemon/60-vhba.rules1
-rw-r--r--community/cdemu-daemon/PKGBUILD40
-rw-r--r--community/cdemu-daemon/cdemud.conf8
-rw-r--r--community/cdemu-daemon/cdemud.install9
-rw-r--r--community/cdemu-daemon/cdemud.rc56
-rw-r--r--community/cdfs/PKGBUILD32
-rw-r--r--community/cdfs/cdfs.install11
-rw-r--r--community/cegui/PKGBUILD46
-rw-r--r--community/celt-0.7/PKGBUILD36
-rw-r--r--community/celt/PKGBUILD33
-rw-r--r--community/centerim/PKGBUILD33
-rw-r--r--community/cgit/PKGBUILD37
-rw-r--r--community/cgit/cgit.install7
-rw-r--r--community/checkinstall/PKGBUILD25
-rw-r--r--community/checkinstall/build-fix.patch154
-rw-r--r--community/cherokee/PKGBUILD76
-rw-r--r--community/cherokee/cherokee.logrotate9
-rwxr-xr-xcommunity/cherokee/cherokee.rc65
-rw-r--r--community/cherrypy/837.2049.patch554
-rw-r--r--community/cherrypy/ChangeLog26
-rw-r--r--community/cherrypy/PKGBUILD23
-rw-r--r--community/cherrypy/license25
-rw-r--r--community/chicken/PKGBUILD36
-rw-r--r--community/chmsee/PKGBUILD32
-rw-r--r--community/chntpw/PKGBUILD29
-rw-r--r--community/choqok/PKGBUILD34
-rw-r--r--community/choqok/choqok.install11
-rw-r--r--community/chrootuid/PKGBUILD28
-rw-r--r--community/chrpath/ChangeLog10
-rw-r--r--community/chrpath/PKGBUILD20
-rw-r--r--community/cksfv/PKGBUILD21
-rw-r--r--community/clanlib/PKGBUILD37
-rw-r--r--community/classpath/PKGBUILD61
-rw-r--r--community/clearsilver/PKGBUILD42
-rw-r--r--community/clearsilver/clearsilver-ruby-1.9.patch244
-rw-r--r--community/clementine/PKGBUILD32
-rw-r--r--community/clementine/clementine.install12
-rw-r--r--community/clewn/ChangeLog5
-rw-r--r--community/clewn/PKGBUILD23
-rw-r--r--community/clewn/clewn.install14
-rw-r--r--community/clipgrab/PKGBUILD28
-rw-r--r--community/clipgrab/clipgrab.desktop13
-rw-r--r--community/clipgrab/clipgrab.pngbin0 -> 571 bytes
-rw-r--r--community/clusterssh/ChangeLog3
-rw-r--r--community/clusterssh/PKGBUILD23
-rw-r--r--community/codeblocks/PKGBUILD31
-rw-r--r--community/codeblocks/codeblocks.install25
-rw-r--r--community/codeblocks/prefix.diff23
-rw-r--r--community/coin/PKGBUILD54
-rw-r--r--community/collectd/PKGBUILD69
-rw-r--r--community/collectd/install8
-rw-r--r--community/collectd/libnotify-0.7.patch12
-rw-r--r--community/collectd/rc.d39
-rw-r--r--community/comix/PKGBUILD37
-rw-r--r--community/comix/comix.install26
-rw-r--r--community/commoncpp2/PKGBUILD36
-rw-r--r--community/compiz-bcop/PKGBUILD25
-rw-r--r--community/compiz-fusion-plugins-extra/PKGBUILD35
-rw-r--r--community/compiz-fusion-plugins-main/PKGBUILD31
-rw-r--r--community/compiz-fusion-plugins-main/magiclamp.patch33
-rw-r--r--community/compiz/PKGBUILD124
-rw-r--r--community/compiz/compiz-decorator-gtk.install28
-rw-r--r--community/compizconfig-backend-gconf/PKGBUILD33
-rw-r--r--community/compizconfig-backend-kconfig/PKGBUILD34
-rw-r--r--community/compizconfig-python/PKGBUILD25
-rwxr-xr-xcommunity/confuse/PKGBUILD23
-rw-r--r--community/conkeror-git/PKGBUILD62
-rw-r--r--community/coq/PKGBUILD37
-rw-r--r--community/corkscrew/ChangeLog3
-rw-r--r--community/corkscrew/PKGBUILD21
-rw-r--r--community/couchdb/PKGBUILD40
-rw-r--r--community/couchdb/couchdb.install22
-rw-r--r--community/couchdb/rc-script.patch90
-rw-r--r--community/courier-authlib/PKGBUILD62
-rw-r--r--community/courier-authlib/authdaemond.rc.d48
-rw-r--r--community/courier-authlib/courier-authlib.install32
-rw-r--r--community/courier-imap/PKGBUILD77
-rw-r--r--community/courier-imap/courier-imap.conf.d18
-rw-r--r--community/courier-imap/courier-imap.pam5
-rw-r--r--community/courier-imap/courier-imap.rc.d56
-rw-r--r--community/courier-maildrop/PKGBUILD46
-rw-r--r--community/courier-mta/PKGBUILD111
-rw-r--r--community/courier-mta/courier-mta.conf.d18
-rw-r--r--community/courier-mta/courier-mta.install46
-rw-r--r--community/courier-mta/courier-mta.rc.d56
-rw-r--r--community/courier-mta/courier-webmail-cleancache.cron.hourly6
-rw-r--r--community/cppcheck/PKGBUILD22
-rw-r--r--community/cppunit/PKGBUILD32
-rw-r--r--community/cppunit/gcc4.5.patch15
-rw-r--r--community/cpuburn/PKGBUILD38
-rw-r--r--community/cpuburn/cpuburn.patch41
-rw-r--r--community/cpulimit/PKGBUILD20
-rw-r--r--community/critter/PKGBUILD29
-rw-r--r--community/critter/critter-gcc43.patch69
-rw-r--r--community/critter/critter.desktop9
-rw-r--r--community/critterding/PKGBUILD30
-rw-r--r--community/cross-arm-elf-binutils/PKGBUILD54
-rw-r--r--community/cross-arm-elf-gcc-base/PKGBUILD52
-rw-r--r--community/cross-arm-wince-cegcc-binutils/PKGBUILD35
-rw-r--r--community/cross-arm-wince-cegcc-cegccdll-dummy/PKGBUILD28
-rw-r--r--community/cross-arm-wince-cegcc-cegccdll/PKGBUILD35
-rw-r--r--community/cross-arm-wince-cegcc-cegccdll/cegccdll.install8
-rw-r--r--community/cross-arm-wince-cegcc-cegccthrddll/PKGBUILD30
-rw-r--r--community/cross-arm-wince-cegcc-gcc-base/PKGBUILD55
-rw-r--r--community/cross-arm-wince-cegcc-gcc/PKGBUILD61
-rw-r--r--community/cross-arm-wince-cegcc-libstdcppdll/PKGBUILD71
-rw-r--r--community/cross-arm-wince-cegcc-newlib/PKGBUILD37
-rw-r--r--community/cross-arm-wince-cegcc-profile/PKGBUILD40
-rw-r--r--community/cross-arm-wince-cegcc-w32api/PKGBUILD28
-rw-r--r--community/csfml/PKGBUILD30
-rw-r--r--community/ctpl/PKGBUILD21
-rw-r--r--community/cuetools/PKGBUILD33
-rw-r--r--community/cuetools/cuetag.patch37
-rw-r--r--community/cuneiform/PKGBUILD32
-rw-r--r--community/cupsddk/PKGBUILD47
-rw-r--r--community/curlftpfs/PKGBUILD27
-rw-r--r--community/cutter/ChangeLog3
-rw-r--r--community/cutter/PKGBUILD20
-rw-r--r--community/cuyo/PKGBUILD28
-rw-r--r--community/cuyo/cuyo.diff32
-rw-r--r--community/cuyo/cuyo.install11
-rw-r--r--community/cython/PKGBUILD19
-rw-r--r--community/dangerdeep/PKGBUILD22
-rw-r--r--community/dangerdeep/build-fix.patch91
-rw-r--r--community/dante/PKGBUILD38
-rwxr-xr-xcommunity/dante/sockd.rc68
-rw-r--r--community/dar/ChangeLog3
-rw-r--r--community/dar/PKGBUILD32
-rw-r--r--community/darkhttpd/PKGBUILD24
-rw-r--r--community/darkstat/PKGBUILD20
-rw-r--r--community/darktable/PKGBUILD41
-rw-r--r--community/darktable/darktable.install22
-rw-r--r--community/datemath/PKGBUILD21
-rw-r--r--community/dbmail/PKGBUILD67
-rw-r--r--community/dbmail/dbmail-2.2.10-pam-support.patch251
-rw-r--r--community/dbmail/dbmail.conf.d9
-rw-r--r--community/dbmail/dbmail.rc.d41
-rw-r--r--community/dbus-sharp-glib/PKGBUILD32
-rw-r--r--community/deadbeef/PKGBUILD44
-rw-r--r--community/deadbeef/deadbeef.install14
-rw-r--r--community/delegate/ChangeLog3
-rw-r--r--community/delegate/PKGBUILD31
-rw-r--r--community/delegate/delegate.install11
-rw-r--r--community/denemo/PKGBUILD25
-rw-r--r--community/desmume/PKGBUILD34
-rw-r--r--community/dev86/ChangeLog3
-rw-r--r--community/dev86/PKGBUILD37
-rw-r--r--community/dev86/dev86-pic.patch20
-rw-r--r--community/devil/PKGBUILD28
-rw-r--r--community/devil/libpng14.patch33
-rw-r--r--community/dfm/PKGBUILD22
-rw-r--r--community/dia/PKGBUILD44
-rw-r--r--community/dia/dia-overflow-fix.patch28
-rw-r--r--community/dia/dia.install13
-rw-r--r--community/diacanvas/ChangeLog3
-rw-r--r--community/diacanvas/PKGBUILD25
-rw-r--r--community/diacanvas/override-fix.patch59
-rw-r--r--community/dictd/PKGBUILD46
-rw-r--r--community/dictd/dict.conf6
-rw-r--r--community/dictd/dictd92
-rw-r--r--community/dictd/dictd.conf25
-rw-r--r--community/dictd/dictd.confd7
-rw-r--r--community/dictd/dictd.xinetd12
-rw-r--r--community/dictd/site.info6
-rw-r--r--community/dietlibc/PKGBUILD20
-rw-r--r--community/dillo/PKGBUILD34
-rw-r--r--community/dillo/libpng14.patch12
-rw-r--r--community/directfb/PKGBUILD32
-rw-r--r--community/directfb/directfb.changelog40
-rw-r--r--community/discid/PKGBUILD20
-rw-r--r--community/distcc/PKGBUILD39
-rwxr-xr-xcommunity/distcc/distccd38
-rw-r--r--community/distcc/distccd.conf.d8
-rw-r--r--community/djview4/PKGBUILD34
-rw-r--r--community/djview4/install11
-rw-r--r--community/dmenu/PKGBUILD30
-rw-r--r--community/dnstracer/PKGBUILD23
-rw-r--r--community/docbook2x/PKGBUILD36
-rw-r--r--community/docbook2x/datadir.diff18
-rw-r--r--community/docbook2x/docbook2x.install18
-rw-r--r--community/dockmanager/PKGBUILD63
-rw-r--r--community/dockmanager/dockmanager.install19
-rw-r--r--community/dockmanager/vala.patch26
-rw-r--r--community/docky/PKGBUILD47
-rw-r--r--community/docky/bzr-1798.diff170
-rw-r--r--community/docky/docky.install30
-rw-r--r--community/dopewars/PKGBUILD41
-rw-r--r--community/dopewars/dopewars.install20
-rw-r--r--community/driftnet/PKGBUILD17
-rw-r--r--community/drivel/PKGBUILD24
-rw-r--r--community/drivel/drivel.install14
-rw-r--r--community/dsniff/PKGBUILD35
-rw-r--r--community/dspam/PKGBUILD68
-rw-r--r--community/dspam/dspam37
-rw-r--r--community/dspam/dspam.install33
-rw-r--r--community/dspam/dspam.logrotated5
-rw-r--r--community/dtach/PKGBUILD30
-rw-r--r--community/duff/ChangeLog3
-rw-r--r--community/duff/PKGBUILD21
-rw-r--r--community/dumb/PKGBUILD50
-rw-r--r--community/duplicity/PKGBUILD26
-rw-r--r--community/dvdisaster/PKGBUILD36
-rw-r--r--community/dvdisaster/dvdisaster.desktop14
-rw-r--r--community/dvdstyler/PKGBUILD28
-rw-r--r--community/dwdiff/PKGBUILD20
-rw-r--r--community/dwm/PKGBUILD38
-rw-r--r--community/dwm/config.h102
-rw-r--r--community/dwm/dwm.desktop7
-rw-r--r--community/dwm/dwm.install28
-rw-r--r--community/dxpc/PKGBUILD21
-rw-r--r--community/dynamite/PKGBUILD20
-rw-r--r--community/dzen2/PKGBUILD46
-rwxr-xr-xcommunity/e-modules-extra-svn/PKGBUILD88
-rwxr-xr-xcommunity/e-svn/PKGBUILD73
-rw-r--r--community/e-svn/e-applications.menu154
-rw-r--r--community/e-svn/sysactions.patch13
-rwxr-xr-xcommunity/e_dbus-svn/PKGBUILD56
-rw-r--r--community/echat/PKGBUILD29
-rwxr-xr-xcommunity/ecore-svn/PKGBUILD57
-rwxr-xr-xcommunity/edje-svn/PKGBUILD57
-rw-r--r--community/edje-svn/edje.install16
-rwxr-xr-xcommunity/eet-svn/PKGBUILD57
-rw-r--r--community/eeze-svn/PKGBUILD55
-rwxr-xr-xcommunity/efreet-svn/PKGBUILD55
-rw-r--r--community/egoboo/PKGBUILD57
-rw-r--r--community/egoboo/egoboo.desktop7
-rw-r--r--community/egoboo/egoboo.pngbin0 -> 956 bytes
-rw-r--r--community/eiciel/PKGBUILD35
-rw-r--r--community/eiciel/eiciel.install16
-rwxr-xr-xcommunity/eina-svn/PKGBUILD50
-rw-r--r--community/ejabberd/PKGBUILD40
-rw-r--r--community/ejabberd/ejabberd62
-rw-r--r--community/ejabberd/ejabberd.install25
-rw-r--r--community/ejabberd/ejabberd.logrotate12
-rw-r--r--community/ekg/ChangeLog5
-rw-r--r--community/ekg/PKGBUILD22
-rw-r--r--community/ekg2/PKGBUILD39
-rw-r--r--community/electricsheep/ChangeLog30
-rw-r--r--community/electricsheep/PKGBUILD34
-rw-r--r--community/elementary-svn/PKGBUILD55
-rw-r--r--community/elinks/PKGBUILD38
-rw-r--r--community/elinks/elinks.desktop19
-rw-r--r--community/emacs-nox/PKGBUILD54
-rw-r--r--community/emacs-nox/emacs-nox.changelog20
-rw-r--r--community/emacs-nox/emacs-nox.install21
-rwxr-xr-xcommunity/embryo-svn/PKGBUILD56
-rw-r--r--community/emerald/PKGBUILD28
-rw-r--r--community/emerald/emerald.install14
-rwxr-xr-xcommunity/emesene/PKGBUILD48
-rw-r--r--community/emesene/emesene.install11
-rw-r--r--community/emesene/emesene.run3
-rw-r--r--community/emesene/setup.patch20
-rwxr-xr-xcommunity/emprint-svn/PKGBUILD56
-rw-r--r--community/encfs/PKGBUILD33
-rw-r--r--community/enet/PKGBUILD26
-rw-r--r--community/enigma/PKGBUILD25
-rw-r--r--community/enter/PKGBUILD22
-rw-r--r--community/epdfview/0001-r329.patch79
-rw-r--r--community/epdfview/0002-r354.patch77
-rw-r--r--community/epdfview/0003-r357.patch134
-rw-r--r--community/epdfview/PKGBUILD53
-rw-r--r--community/epdfview/epdfview.desktop.patch11
-rw-r--r--community/epdfview/epdfview.install12
-rw-r--r--community/epdfview/m_Linearized.patch24
-rw-r--r--community/epic4/PKGBUILD33
-rw-r--r--community/esekeyd/PKGBUILD34
-rw-r--r--community/esekeyd/esekeyd.conf31
-rw-r--r--community/esekeyd/esekeyd.confd4
-rw-r--r--community/esekeyd/esekeyd.rc51
-rw-r--r--community/esmtp/PKGBUILD27
-rw-r--r--community/espeak/PKGBUILD26
-rw-r--r--community/espeakup/PKGBUILD26
-rwxr-xr-xcommunity/espeakup/espeakup43
-rw-r--r--community/espeakup/espeakup.conf.d6
-rw-r--r--community/eterm/PKGBUILD34
-rw-r--r--community/etherape/PKGBUILD29
-rw-r--r--community/etl/PKGBUILD24
-rwxr-xr-xcommunity/evas-svn/PKGBUILD56
-rw-r--r--community/evolution-rss/PKGBUILD39
-rw-r--r--community/evolution-rss/add-dbus-glib.patch12
-rw-r--r--community/evolution-rss/evolution-rss.install25
-rw-r--r--community/exaile/PKGBUILD53
-rw-r--r--community/exim/PKGBUILD119
-rw-r--r--community/exim/aliases35
-rwxr-xr-xcommunity/exim/exim42
-rw-r--r--community/exim/exim.conf.d1
-rw-r--r--community/exim/exim.install22
-rw-r--r--community/exim/exim.logrotate5
-rwxr-xr-xcommunity/exim/newaliases2
-rw-r--r--community/ext3grep/PKGBUILD24
-rw-r--r--community/ext3grep/ext3grep.changelog3
-rw-r--r--community/extrema/PKGBUILD37
-rw-r--r--community/extrema/extrema.desktop8
-rw-r--r--community/extremetuxracer/PKGBUILD39
-rw-r--r--community/extremetuxracer/extremetuxracer.desktop12
-rw-r--r--community/extremetuxracer/extremetuxracer.pngbin0 -> 3611 bytes
-rw-r--r--community/extremetuxracer/libpng14.patch57
-rw-r--r--community/extundelete/PKGBUILD23
-rw-r--r--community/extundelete/extundelete.changelog3
-rw-r--r--community/fail2ban/PKGBUILD22
-rw-r--r--community/fail2ban/fail2ban.rc36
-rw-r--r--community/fatrat/PKGBUILD30
-rw-r--r--community/fbdump/PKGBUILD20
-rw-r--r--community/fbgetty/PKGBUILD29
-rw-r--r--community/fbgrab/PKGBUILD22
-rw-r--r--community/fbpanel/PKGBUILD22
-rw-r--r--community/fbreader/PKGBUILD30
-rw-r--r--community/fbreader/build-fix.patch20
-rw-r--r--community/fbshot/PKGBUILD19
-rw-r--r--community/fbv/ChangeLog2
-rw-r--r--community/fbv/PKGBUILD25
-rw-r--r--community/fceux/ChangeLog21
-rw-r--r--community/fceux/PKGBUILD35
-rw-r--r--community/fceux/fceux.desktop10
-rw-r--r--community/fceux/fceux.pngbin0 -> 583 bytes
-rw-r--r--community/fcgiwrap/LICENSE24
-rw-r--r--community/fcgiwrap/PKGBUILD35
-rw-r--r--community/fcgiwrap/fcgiwrap.conf.d13
-rw-r--r--community/fcgiwrap/fcgiwrap.rc.d74
-rw-r--r--community/fcrackzip/ChangeLog3
-rw-r--r--community/fcrackzip/PKGBUILD23
-rwxr-xr-xcommunity/fcron/PKGBUILD73
-rwxr-xr-xcommunity/fcron/fcron.install23
-rwxr-xr-xcommunity/fcron/fcron.rc36
-rwxr-xr-xcommunity/fcron/run-cron14
-rwxr-xr-xcommunity/fcron/systabbin0 -> 478 bytes
-rw-r--r--community/fcron/systab.orig4
-rw-r--r--community/fdm/GNUmakefile.patch49
-rw-r--r--community/fdm/LICENSE14
-rw-r--r--community/fdm/PKGBUILD39
-rw-r--r--community/fdm/fdm.conf2
-rw-r--r--community/fdupes/ChangeLog11
-rw-r--r--community/fdupes/LICENSE22
-rw-r--r--community/fdupes/PKGBUILD24
-rw-r--r--community/ffmpeg2theora/ChangeLog23
-rw-r--r--community/ffmpeg2theora/PKGBUILD26
-rw-r--r--community/fftw2/PKGBUILD34
-rw-r--r--community/fgetty/ChangeLog3
-rw-r--r--community/fgetty/PKGBUILD25
-rw-r--r--community/filezilla/PKGBUILD35
-rw-r--r--community/filezilla/filezilla.install11
-rw-r--r--community/fillets-ng/PKGBUILD39
-rw-r--r--community/fillets-ng/fillets-ng.changelog20
-rw-r--r--community/fillets-ng/fillets-ng.desktop11
-rw-r--r--community/fillets-ng/fillets-ng.install4
-rw-r--r--community/fio/PKGBUILD23
-rw-r--r--community/fish/PKGBUILD33
-rw-r--r--community/fish/fish.install15
-rw-r--r--community/fityk/PKGBUILD46
-rw-r--r--community/fityk/fityk.install11
-rw-r--r--community/flac123/ChangeLog3
-rw-r--r--community/flac123/PKGBUILD24
-rw-r--r--community/flam3/PKGBUILD27
-rw-r--r--community/flashrom/PKGBUILD27
-rw-r--r--community/fldiff/PKGBUILD23
-rw-r--r--community/fldiff/fldiff.install12
-rw-r--r--community/flightgear-atlas/PKGBUILD32
-rw-r--r--community/flightgear-atlas/build-fix.patch448
-rw-r--r--community/flightgear/PKGBUILD26
-rw-r--r--community/flobopuyo/PKGBUILD46
-rw-r--r--community/flobopuyo/flobopuyo-0.20-gcc4.patch25
-rw-r--r--community/flobopuyo/flobopuyo-0.20-libs.patch136
-rw-r--r--community/flobopuyo/flobopuyo-makefile.patch21
-rw-r--r--community/flobopuyo/flobopuyo.changelog16
-rw-r--r--community/flobopuyo/flobopuyo.desktop10
-rw-r--r--community/flobopuyo/flobopuyo.pngbin0 -> 2564 bytes
-rw-r--r--community/flowcanvas/PKGBUILD32
-rw-r--r--community/flowcanvas/flowcanvas.install11
-rw-r--r--community/floyd/PKGBUILD23
-rw-r--r--community/fltk2/PKGBUILD33
-rw-r--r--community/fltk2/libpng14.patch12
-rw-r--r--community/flumotion/PKGBUILD45
-rw-r--r--community/flumotion/python27.patch27
-rw-r--r--community/flvstreamer/PKGBUILD21
-rw-r--r--community/fonteditfs/ChangeLog3
-rw-r--r--community/fonteditfs/PKGBUILD21
-rw-r--r--community/fotoxx/PKGBUILD29
-rw-r--r--community/fotoxx/fotoxx.install17
-rw-r--r--community/fox/PKGBUILD46
-rw-r--r--community/fpc/PKGBUILD41
-rw-r--r--community/freecol/PKGBUILD36
-rw-r--r--community/freecol/fc.desktop10
-rw-r--r--community/freecol/fc.sh9
-rw-r--r--community/freedroid/PKGBUILD20
-rw-r--r--community/freedroidrpg/PKGBUILD35
-rw-r--r--community/freedroidrpg/freedroidrpg.desktop11
-rw-r--r--community/freedroidrpg/freedroidrpg.jpgbin0 -> 12697 bytes
-rw-r--r--community/freehdl/PKGBUILD26
-rw-r--r--community/freeimage/PKGBUILD44
-rw-r--r--community/freeimage/gcc4.5_ln.patch62
-rw-r--r--community/freemat/ChangeLog3
-rw-r--r--community/freemat/PKGBUILD46
-rw-r--r--community/freemat/freemat-gcc-4.3.0.patch37
-rw-r--r--community/freemat/freemat-gcc-4.5.0.patch207
-rw-r--r--community/freemat/freemat-qt46.patch2088
-rw-r--r--community/freemat/freemat.install7
-rw-r--r--community/freemat/input-fix.patch12
-rw-r--r--community/freeradius-client/PKGBUILD27
-rw-r--r--community/freeradius/PKGBUILD39
-rw-r--r--community/freeradius/freeradius.install22
-rwxr-xr-xcommunity/freeradius/radiusd43
-rw-r--r--community/freerdp/PKGBUILD25
-rw-r--r--community/freerdp/freerdp.changelog2
-rw-r--r--community/freetalk/ChangeLog3
-rw-r--r--community/freetalk/PKGBUILD36
-rw-r--r--community/freetalk/freetalk.install19
-rw-r--r--community/freevo/PKGBUILD44
-rw-r--r--community/freevo/freevo.desktop11
-rw-r--r--community/freevo/freevo.install25
-rw-r--r--community/freevo/imdb-html5lib.patch301
-rw-r--r--community/freewrl/PKGBUILD30
-rw-r--r--community/freewrl/build-fix.patch24
-rw-r--r--community/frei0r-plugins/PKGBUILD27
-rw-r--r--community/frogatto/PKGBUILD46
-rw-r--r--community/frogatto/frogatto3
-rw-r--r--community/frogatto/frogatto.desktop11
-rw-r--r--community/fswebcam/PKGBUILD36
-rw-r--r--community/fuseiso/PKGBUILD28
-rw-r--r--community/fxdesktop/PKGBUILD27
-rw-r--r--community/fxprocessview/PKGBUILD37
-rw-r--r--community/fxprocessview/build-fix.patch41
-rw-r--r--community/g2sc/PKGBUILD23
-rw-r--r--community/gadmin-samba/PKGBUILD32
-rw-r--r--community/gadmin-samba/gadmin-samba.install7
-rw-r--r--community/gadmin-samba/makefile.patch18
-rw-r--r--community/galago-daemon/PKGBUILD21
-rw-r--r--community/gambas2/PKGBUILD946
-rw-r--r--community/gambas2/fix-gbi-gba-path.patch24
-rw-r--r--community/gambas2/gambas2-runtime.install12
-rw-r--r--community/gambas2/gambas2-script.install15
-rw-r--r--community/gambas2/gambas2.desktop13
-rw-r--r--community/gambas2/gambas2.install12
-rw-r--r--community/gambas2/gambas2.pngbin0 -> 1965 bytes
-rw-r--r--community/gambas3/PKGBUILD1065
-rw-r--r--community/gambas3/gambas3-runtime.install12
-rw-r--r--community/gambas3/gambas3-script.install15
-rw-r--r--community/gambas3/gambas3.desktop12
-rw-r--r--community/gambas3/gambas3.install12
-rw-r--r--community/gambas3/gambas3.pngbin0 -> 2350 bytes
-rw-r--r--community/gamin/PKGBUILD36
-rw-r--r--community/gammu/PKGBUILD32
-rw-r--r--community/gammu/gammu.changelog103
-rw-r--r--community/garmindev/51-garmin.rules1
-rw-r--r--community/garmindev/PKGBUILD39
-rw-r--r--community/garmindev/garmindev.changelog4
-rw-r--r--community/garmindev/garmindev.install8
-rw-r--r--community/gavl/PKGBUILD29
-rw-r--r--community/gcc-avr/PKGBUILD57
-rw-r--r--community/gcc-avr/add-more-mcus.patch316
-rw-r--r--community/gcolor2/PKGBUILD31
-rw-r--r--community/gcolor2/gcolor2-0.4-amd64.patch46
-rw-r--r--community/gcolor2/gcolor2.desktop10
-rw-r--r--community/gcompris/PKGBUILD50
-rw-r--r--community/gcompris/gcompris-data.install22
-rw-r--r--community/gdal/PKGBUILD60
-rw-r--r--community/gdal/gdal-1.5.1-python-install.patch10
-rw-r--r--community/gdal/gdal.changelog11
-rw-r--r--community/gdk-pixbuf/PKGBUILD40
-rw-r--r--community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch48
-rw-r--r--community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_secure.patch19
-rw-r--r--community/gdk-pixbuf/gdk-pixbuf-0.22.0-loaders.patch134
-rw-r--r--community/gdk-pixbuf/gdk-pixbuf-0.22.0.patch129
-rw-r--r--community/gdmap/ChangeLog5
-rw-r--r--community/gdmap/PKGBUILD30
-rw-r--r--community/gdmap/fix_deprecated_GTK_WIDGET_SENSITIVE.diff30
-rw-r--r--community/geany-plugins/PKGBUILD24
-rw-r--r--community/geany/PKGBUILD37
-rw-r--r--community/geany/geany.install13
-rw-r--r--community/gebabbel/PKGBUILD46
-rw-r--r--community/gebabbel/gebabbel-0.4.patch7
-rw-r--r--community/gebabbel/gebabbel.changelog3
-rw-r--r--community/gebabbel/gebabbel.desktop7
-rw-r--r--community/gecko-mediaplayer/PKGBUILD32
-rw-r--r--community/gecko-mediaplayer/gecko-mediaplayer-xulrunner2.0.patch12
-rw-r--r--community/geda-gaf/ChangeLog49
-rw-r--r--community/geda-gaf/PKGBUILD36
-rw-r--r--community/geda-gaf/geda-gaf.install19
-rw-r--r--community/gedit-plugins/PKGBUILD31
-rw-r--r--community/gedit-plugins/gedit-plugins.install24
-rw-r--r--community/gedit-plugins/libtool.patch10
-rw-r--r--community/gen2shp/PKGBUILD26
-rw-r--r--community/geos/PKGBUILD30
-rw-r--r--community/geos/geos.changelog5
-rw-r--r--community/gerbv/ChangeLog27
-rw-r--r--community/gerbv/PKGBUILD28
-rw-r--r--community/gerbv/gerbv.install21
-rw-r--r--community/ghdl/PKGBUILD60
-rw-r--r--community/ghdl/gcc_pure64.patch24
-rw-r--r--community/ghemical/PKGBUILD34
-rw-r--r--community/ghemical/ghemical.desktop13
-rw-r--r--community/ghemical/ghemical.diff11
-rw-r--r--community/gigedit/PKGBUILD32
-rw-r--r--community/giggle/PKGBUILD34
-rw-r--r--community/giggle/giggle.install13
-rw-r--r--community/gimmage/ChangeLog15
-rw-r--r--community/gimmage/PKGBUILD24
-rw-r--r--community/gimmie/ChangeLog2
-rw-r--r--community/gimmie/PKGBUILD34
-rw-r--r--community/gimmie/gimmie.install22
-rw-r--r--community/gimp-plugin-fblur/PKGBUILD24
-rw-r--r--community/gimp-plugin-lqr/PKGBUILD27
-rw-r--r--community/gimp-plugin-mathmap/PKGBUILD33
-rw-r--r--community/gimp-plugin-mathmap/fix_libnoise_build.patch12
-rw-r--r--community/gimp-plugin-wavelet-decompose/PKGBUILD26
-rw-r--r--community/gimp-plugin-wavelet-decompose/po_install.diff21
-rw-r--r--community/gimp-plugin-wavelet-denoise/PKGBUILD29
-rw-r--r--community/gimp-plugin-wavelet-denoise/po_install.diff21
-rw-r--r--community/ginac/PKGBUILD33
-rw-r--r--community/gitg/PKGBUILD32
-rw-r--r--community/gitg/gitg.install17
-rw-r--r--community/gkrellm/ChangeLog10
-rw-r--r--community/gkrellm/PKGBUILD25
-rw-r--r--community/gl-117/PKGBUILD29
-rw-r--r--community/gl-117/gl-117.desktop5
-rw-r--r--community/gl-117/gl-117.pngbin0 -> 1279 bytes
-rw-r--r--community/glipper-old/PKGBUILD35
-rw-r--r--community/glipper-old/arch.patch266
-rw-r--r--community/glipper/PKGBUILD38
-rw-r--r--community/glipper/glipper.install30
-rw-r--r--community/glitz/PKGBUILD29
-rw-r--r--community/gliv/PKGBUILD29
-rw-r--r--community/gliv/gliv.changelog5
-rw-r--r--community/glob2/PKGBUILD34
-rw-r--r--community/glob2/glob2-0.9.4.1-gcc44.patch87
-rw-r--r--community/glob2/glob2.install12
-rw-r--r--community/glom/PKGBUILD36
-rw-r--r--community/glom/glom.install15
-rw-r--r--community/gloox/PKGBUILD22
-rw-r--r--community/glpng/Makefile30
-rw-r--r--community/glpng/PKGBUILD34
-rw-r--r--community/glpng/libglpng-1.45-debian.patch29
-rw-r--r--community/glpng/libpng14.patch21
-rw-r--r--community/glpng/license21
-rw-r--r--community/gmerlin-avdecoder/PKGBUILD22
-rw-r--r--community/gmerlin/PKGBUILD24
-rw-r--r--community/gmic/PKGBUILD50
-rw-r--r--community/gmime22/PKGBUILD31
-rw-r--r--community/gmrun/ChangeLog3
-rw-r--r--community/gmrun/PKGBUILD24
-rw-r--r--community/gmrun/gcc43.patch51
-rw-r--r--community/gnash/PKGBUILD72
-rw-r--r--community/gnash/gnash-gtk.install12
-rw-r--r--community/gnofract4d/PKGBUILD34
-rw-r--r--community/gnofract4d/gnofract4d.install12
-rw-r--r--community/gnofract4d/imageIO.cpp.patch13
-rw-r--r--community/gnome-commander/PKGBUILD38
-rw-r--r--community/gnome-commander/gnome-commander.install22
-rw-r--r--community/gnome-do-docklets/PKGBUILD25
-rw-r--r--community/gnome-do-plugins/PKGBUILD35
-rw-r--r--community/gnome-do-plugins/killsomeplugins.patch11
-rw-r--r--community/gnome-do/PKGBUILD28
-rw-r--r--community/gnome-do/gnome-do.install16
-rw-r--r--community/gnome-mplayer/PKGBUILD33
-rw-r--r--community/gnome-mplayer/gnome-mplayer.install11
-rw-r--r--community/gnome-ppp/PKGBUILD29
-rw-r--r--community/gnome-ppp/gnome-ppp-0.3.23-implicit-decl.patch10
-rw-r--r--community/gnome-ppp/gnome-ppp-0.3.23-wvdial-notify.patch83
-rw-r--r--community/gnome-ppp/gnome-ppp.install11
-rw-r--r--community/gnome-system-tools/PKGBUILD27
-rw-r--r--community/gnome-system-tools/gnome-system-tools.install15
-rw-r--r--community/gnomesu/PKGBUILD30
-rw-r--r--community/gnonlin/PKGBUILD24
-rw-r--r--community/gnote/PKGBUILD33
-rw-r--r--community/gnote/gnote.install22
-rw-r--r--community/gnote/gtk2.20.patch40
-rw-r--r--community/gnubiff-gtk/PKGBUILD33
-rw-r--r--community/gnubiff-gtk/build.patch23
-rw-r--r--community/gnubiff/PKGBUILD54
-rw-r--r--community/gnucap/ChangeLog53
-rw-r--r--community/gnucap/PKGBUILD26
-rw-r--r--community/gnumail/PKGBUILD30
-rw-r--r--community/gnunet-gtk/PKGBUILD23
-rw-r--r--community/gnunet/PKGBUILD37
-rw-r--r--community/gnunet/build-fix.patch21
-rw-r--r--community/gnunet/gnunet.conf.d1
-rw-r--r--community/gnunet/gnunet.rc40
-rw-r--r--community/gnustep-back/ChangeLog2
-rw-r--r--community/gnustep-back/PKGBUILD26
-rw-r--r--community/gnustep-base/ChangeLog6
-rw-r--r--community/gnustep-base/PKGBUILD32
-rw-r--r--community/gnustep-gui/ChangeLog2
-rw-r--r--community/gnustep-gui/PKGBUILD27
-rw-r--r--community/gnustep-make/ChangeLog2
-rw-r--r--community/gnustep-make/PKGBUILD29
-rw-r--r--community/go/PKGBUILD84
-rw-r--r--community/go/go.install5
-rwxr-xr-xcommunity/go/go.sh3
-rw-r--r--community/gobby/ChangeLog3
-rw-r--r--community/gobby/PKGBUILD26
-rw-r--r--community/gocr/PKGBUILD33
-rw-r--r--community/gogglesmm/PKGBUILD25
-rw-r--r--community/gogglesmm/gogglesmm.install11
-rw-r--r--community/goldendict/PKGBUILD37
-rw-r--r--community/goldendict/goldendict-paths.diff10
-rw-r--r--community/goldendict/goldendict.changelog8
-rw-r--r--community/goocanvas/PKGBUILD22
-rwxr-xr-xcommunity/goocanvasmm/PKGBUILD30
-rw-r--r--community/google-gadgets/PKGBUILD155
-rw-r--r--community/google-gadgets/google-gadgets-common.install15
-rw-r--r--community/google-gadgets/google-gadgets.changelog8
-rw-r--r--community/google-gadgets/google-gadgets.install15
-rw-r--r--community/gource/PKGBUILD28
-rw-r--r--community/gpa/ChangeLog3
-rw-r--r--community/gpa/PKGBUILD23
-rw-r--r--community/gpac/PKGBUILD43
-rw-r--r--community/gpac/libpng14-infopp-null.patch12
-rw-r--r--community/gpg-crypter/PKGBUILD36
-rw-r--r--community/gpg-crypter/gpg-crypter.desktop8
-rw-r--r--community/gphpedit/PKGBUILD33
-rw-r--r--community/gphpedit/doc-fix.patch20
-rw-r--r--community/gphpedit/gphpedit.install16
-rw-r--r--community/gpicview/PKGBUILD21
-rw-r--r--community/gprolog/PKGBUILD38
-rw-r--r--community/gpsbabel/PKGBUILD37
-rw-r--r--community/gpsdrive/PKGBUILD62
-rw-r--r--community/gpsdrive/gpsdrive.install4
-rw-r--r--community/gpsim/PKGBUILD24
-rw-r--r--community/gpsman/PKGBUILD38
-rw-r--r--community/gpsman/gpsman.desktop10
-rw-r--r--community/gpsman/gpsman.install39
-rw-r--r--community/gpsmanshp/PKGBUILD35
-rw-r--r--community/gputils/PKGBUILD25
-rw-r--r--community/gq/PKGBUILD23
-rw-r--r--community/gq/gq.install12
-rw-r--r--community/grace/PKGBUILD28
-rw-r--r--community/grass/PKGBUILD105
-rw-r--r--community/grass/grass.conf1
-rw-r--r--community/grass/grass.install12
-rw-r--r--community/grass/grass.sh4
-rw-r--r--community/gri/PKGBUILD27
-rw-r--r--community/gri/gri.install18
-rw-r--r--community/gromacs/PKGBUILD38
-rw-r--r--community/grsync/PKGBUILD23
-rw-r--r--community/grsync/grsync.install13
-rw-r--r--community/gsasl/PKGBUILD23
-rw-r--r--community/gshare/PKGBUILD36
-rw-r--r--community/gshare/gshare.install40
-rw-r--r--community/gshare/monofix.patch87
-rw-r--r--community/gshutdown/PKGBUILD28
-rw-r--r--community/gsmartcontrol/PKGBUILD20
-rw-r--r--community/gsmartcontrol/gsmartcontrol.install11
-rw-r--r--community/gsoap/LICENSE163
-rw-r--r--community/gsoap/PKGBUILD39
-rw-r--r--community/gsql/PKGBUILD33
-rw-r--r--community/gsql/gsql.install24
-rw-r--r--community/gstm/PKGBUILD22
-rw-r--r--community/gstreamermm/ChangeLog6
-rw-r--r--community/gstreamermm/PKGBUILD23
-rw-r--r--community/gsynaptics/PKGBUILD32
-rw-r--r--community/gsynaptics/build-filename.dpatch20
-rw-r--r--community/gsynaptics/do-not-set-zero.dpatch189
-rw-r--r--community/gsynaptics/dot-fixes.dpatch73
-rw-r--r--community/gsynaptics/gsynaptics.install16
-rw-r--r--community/gtk-aurora-engine/PKGBUILD32
-rw-r--r--community/gtk-chtheme/PKGBUILD27
-rw-r--r--community/gtk-engine-murrine/PKGBUILD35
-rw-r--r--community/gtk-gnutella/PKGBUILD26
-rw-r--r--community/gtk-kde4/PKGBUILD34
-rw-r--r--community/gtk-kde4/fix-permission.patch27
-rw-r--r--community/gtk-rezlooks-engine/PKGBUILD21
-rw-r--r--community/gtk2+extra/PKGBUILD24
-rw-r--r--community/gtk2_prefs/PKGBUILD24
-rw-r--r--community/gtk2fontsel/PKGBUILD22
-rw-r--r--community/gtk2hs-buildtools/PKGBUILD26
-rw-r--r--community/gtk2hs-cairo/PKGBUILD37
-rw-r--r--community/gtk2hs-cairo/gtk2hs-cairo.install18
-rw-r--r--community/gtk2hs-glib/PKGBUILD37
-rw-r--r--community/gtk2hs-glib/gtk2hs-glib.install18
-rw-r--r--community/gtk2hs-gtk/PKGBUILD37
-rw-r--r--community/gtk2hs-gtk/gtk2hs-gtk.install18
-rw-r--r--community/gtk2hs-pango/PKGBUILD37
-rw-r--r--community/gtk2hs-pango/gtk2hs-pango.install18
-rw-r--r--community/gtkballs/PKGBUILD28
-rw-r--r--community/gtkdatabox/PKGBUILD23
-rw-r--r--community/gtkdialog/PKGBUILD26
-rw-r--r--community/gtkdialog/build-fix.patch39
-rw-r--r--community/gtkdialog/gtkdialog.install20
-rw-r--r--community/gtkperf/PKGBUILD20
-rw-r--r--community/gtkwave/PKGBUILD37
-rw-r--r--community/gtkwave/gtkwave.install6
-rw-r--r--community/gtranslator/PKGBUILD35
-rw-r--r--community/gtranslator/gtranslator.changelog18
-rw-r--r--community/gtranslator/gtranslator.install17
-rw-r--r--community/gts/PKGBUILD30
-rw-r--r--community/gtweakui/PKGBUILD25
-rw-r--r--community/gtypist/PKGBUILD24
-rw-r--r--community/gtypist/gtypist.install18
-rw-r--r--community/guake/PKGBUILD31
-rwxr-xr-xcommunity/guake/guake.install17
-rw-r--r--community/guichan/PKGBUILD26
-rw-r--r--community/guifications/PKGBUILD23
-rw-r--r--community/gummi/PKGBUILD32
-rw-r--r--community/gwenhywfar/PKGBUILD24
-rw-r--r--community/gxmessage/PKGBUILD28
-rw-r--r--community/gxmessage/gxmessage.desktop10
-rw-r--r--community/gxmessage/gxmessage.install4
-rw-r--r--community/gyachi/PKGBUILD42
-rw-r--r--community/hacburn/PKGBUILD21
-rw-r--r--community/handbrake/PKGBUILD54
-rw-r--r--community/handbrake/dbus-glib.patch12
-rw-r--r--community/handbrake/handbrake.install9
-rw-r--r--community/handbrake/libnotify-0.7.patch30
-rw-r--r--community/hardinfo/ChangeLog20
-rw-r--r--community/hardinfo/PKGBUILD36
-rw-r--r--community/hardinfo/fixsensors.patch13
-rw-r--r--community/hardinfo/hardinfo.distro1
-rw-r--r--community/hashcash/PKGBUILD24
-rw-r--r--community/haskell-dbus/PKGBUILD43
-rw-r--r--community/haskell-dbus/dbus-0.4.patch60
-rw-r--r--community/haskell-dbus/haskell-dbus.install18
-rw-r--r--community/haskell-hslogger/PKGBUILD37
-rw-r--r--community/haskell-hslogger/haskell-hslogger.install18
-rw-r--r--community/haskell-x11-xft/PKGBUILD37
-rw-r--r--community/haskell-x11-xft/haskell-x11-xft.install18
-rw-r--r--community/haskell-x11/PKGBUILD41
-rw-r--r--community/haskell-x11/hsmod.install18
-rw-r--r--community/hatari/PKGBUILD28
-rw-r--r--community/hawknl/PKGBUILD30
-rw-r--r--community/hawknl/hawknl.patch27
-rw-r--r--community/hedgewars/PKGBUILD35
-rw-r--r--community/hedgewars/hedgewars.desktop8
-rw-r--r--community/hedgewars/hedgewars.pngbin0 -> 7329 bytes
-rw-r--r--community/hevea/PKGBUILD28
-rw-r--r--community/hevea/hevea.install13
-rw-r--r--community/hex-a-hop/PKGBUILD26
-rw-r--r--community/hex-a-hop/hex-a-hop.desktop11
-rw-r--r--community/highlight/PKGBUILD39
-rw-r--r--community/homebank/PKGBUILD30
-rw-r--r--community/homebank/homebank.changelog17
-rw-r--r--community/homebank/homebank.install13
-rw-r--r--community/hostapd/PKGBUILD63
-rw-r--r--community/hostapd/config.bz2bin0 -> 1116 bytes
-rwxr-xr-xcommunity/hostapd/hostapd35
-rw-r--r--community/hostapd/hostapd.conf.d2
-rw-r--r--community/hostapd/hostapd.install21
-rw-r--r--community/hping/Makefile.patch30
-rw-r--r--community/hping/PKGBUILD36
-rw-r--r--community/hping/bytesex.h.patch18
-rw-r--r--community/hsetroot/PKGBUILD26
-rw-r--r--community/hsolink/PKGBUILD21
-rw-r--r--community/hsolink/hsolink.install3
-rw-r--r--community/ht/PKGBUILD25
-rw-r--r--community/html2text/PKGBUILD23
-rw-r--r--community/htmldoc/PKGBUILD30
-rw-r--r--community/httptunnel/PKGBUILD21
-rw-r--r--community/hubbub/PKGBUILD29
-rw-r--r--community/hula/PKGBUILD40
-rw-r--r--community/hula/build-fix.patch52
-rw-r--r--community/hula/hula-script39
-rw-r--r--community/hula/hula.install24
-rw-r--r--community/hula/hula.sh3
-rw-r--r--community/hwinfo/PKGBUILD32
-rw-r--r--community/hwinfo/kbd.patch16
-rw-r--r--community/i3-wm/PKGBUILD49
-rw-r--r--community/i3lock/PKGBUILD32
-rw-r--r--community/i3status/PKGBUILD35
-rw-r--r--community/i3status/i3status.install9
-rw-r--r--community/iasl/LICENSE33
-rw-r--r--community/iasl/PKGBUILD47
-rw-r--r--community/iasl/iasl.install17
-rw-r--r--community/iat/PKGBUILD22
-rw-r--r--community/ibam/PKGBUILD34
-rw-r--r--community/ibam/ibam-0.5.2-sysfs.patch17
-rw-r--r--community/ibam/ibam.install8
-rw-r--r--community/ibus-anthy/PKGBUILD38
-rw-r--r--community/ibus-chewing/PKGBUILD39
-rw-r--r--community/ibus-chewing/ibus-chewing.install17
-rw-r--r--community/ibus-hangul/PKGBUILD30
-rw-r--r--community/ibus-m17n/PKGBUILD30
-rw-r--r--community/ibus-pinyin/PKGBUILD42
-rw-r--r--community/ibus-pinyin/ibus-pinyin.install13
-rw-r--r--community/ibus-qt/PKGBUILD29
-rw-r--r--community/ibus-sunpinyin/PKGBUILD31
-rw-r--r--community/ibus-table-extraphrase/PKGBUILD33
-rw-r--r--community/ibus-table/PKGBUILD33
-rw-r--r--community/ibus-unikey/PKGBUILD29
-rw-r--r--community/ibus/PKGBUILD49
-rw-r--r--community/ibus/ibus.install25
-rw-r--r--community/icewm-utils/PKGBUILD116
-rw-r--r--community/icewm-utils/icets-fix-icewmtray-crash.diff13
-rw-r--r--community/ico2xpm/ChangeLog2
-rw-r--r--community/ico2xpm/PKGBUILD22
-rw-r--r--community/icon-slicer/PKGBUILD19
-rw-r--r--community/icoutils/PKGBUILD30
-rw-r--r--community/id3lib-rcc/PKGBUILD39
-rw-r--r--community/id3lib-rcc/arch.patch39
-rw-r--r--community/id3lib-rcc/id3lib-gcc4.patch189
-rw-r--r--community/idesk/PKGBUILD29
-rw-r--r--community/iftop/PKGBUILD26
-rw-r--r--community/ifuse/PKGBUILD28
-rw-r--r--community/iksemel/PKGBUILD26
-rw-r--r--community/imdbpy/PKGBUILD37
-rw-r--r--community/incron/PKGBUILD36
-rw-r--r--community/incron/incron.init34
-rw-r--r--community/incron/incron.install15
-rw-r--r--community/iniparser/PKGBUILD25
-rw-r--r--community/inn/PKGBUILD121
-rw-r--r--community/inn/inn.install22
-rw-r--r--community/inn/innd.conf2
-rw-r--r--community/inn/innd.rc41
-rw-r--r--community/inn/nnrpd.conf3
-rw-r--r--community/inn/nnrpd.rc49
-rw-r--r--community/inn/site.make.patch32
-rw-r--r--community/inotify-tools/PKGBUILD22
-rw-r--r--community/inputattach/PKGBUILD31
-rw-r--r--community/inputattach/inputattach.conf.d11
-rw-r--r--community/inputattach/inputattach.install9
-rw-r--r--community/inputattach/inputattach.rc.d63
-rw-r--r--community/intel-tbb/PKGBUILD28
-rw-r--r--community/intellij-idea-libs/PKGBUILD24
-rw-r--r--community/ipguard/PKGBUILD28
-rw-r--r--community/ipguard/build-fix-le.patch24
-rw-r--r--community/ipsec-tools/PKGBUILD31
-rwxr-xr-xcommunity/ipsec-tools/ipsec.rc35
-rwxr-xr-xcommunity/ipsec-tools/racoon.rc35
-rw-r--r--community/ircii-pana/PKGBUILD52
-rw-r--r--community/ircii-pana/bitchx-1.1-64bit.diff24
-rw-r--r--community/ircii-pana/bitchx-1.1-freenode.diff31
-rw-r--r--community/ircii-pana/bitchx-1.1-gcc43.diff118
-rw-r--r--community/ircii-pana/bitchx-1.1-inline.diff12
-rw-r--r--community/ircii-pana/bitchx-1.1-latin1.diff12
-rw-r--r--community/ircservices/PKGBUILD54
-rwxr-xr-xcommunity/ircservices/ircservices55
-rw-r--r--community/ircservices/ircservices.install15
-rw-r--r--community/ircservices/path-patch.patch15
-rw-r--r--community/irrlicht/PKGBUILD81
-rw-r--r--community/isomaster/PKGBUILD27
-rw-r--r--community/isomaster/isomaster.install11
-rw-r--r--community/jabberd14/PKGBUILD32
-rw-r--r--community/jabberd14/build-fix.patch219
-rw-r--r--community/jabberd14/jabberd58
-rw-r--r--community/jack2/PKGBUILD93
-rw-r--r--community/javasqlite/PKGBUILD32
-rw-r--r--community/jbig2dec/PKGBUILD22
-rw-r--r--community/jbigkit/PKGBUILD39
-rw-r--r--community/jogl/PKGBUILD37
-rw-r--r--community/john/PKGBUILD76
-rw-r--r--community/john/params.h.patch13
-rw-r--r--community/judy/PKGBUILD23
-rw-r--r--community/jwm/PKGBUILD22
-rw-r--r--community/kaa-base/PKGBUILD26
-rw-r--r--community/kaa-imlib2/PKGBUILD19
-rw-r--r--community/kaa-metadata/PKGBUILD29
-rw-r--r--community/kadu/PKGBUILD28
-rw-r--r--community/kakasi/PKGBUILD25
-rw-r--r--community/kaudiocreator/PKGBUILD31
-rw-r--r--community/kaudiocreator/kaudiocreator.install11
-rwxr-xr-xcommunity/kcheckers/PKGBUILD33
-rw-r--r--community/kcheckers/kcheckers.desktop9
-rw-r--r--community/kchmviewer/PKGBUILD40
-rw-r--r--community/kchmviewer/kchmviewer.changelog26
-rw-r--r--community/kchmviewer/kchmviewer.install11
-rw-r--r--community/kdbg/PKGBUILD32
-rw-r--r--community/kdenlive/PKGBUILD36
-rw-r--r--community/kdenlive/kdenlive.install12
-rw-r--r--community/kdesvn/PKGBUILD42
-rw-r--r--community/kdesvn/kdesvn.changelog54
-rw-r--r--community/kdesvn/kdesvn.install11
-rw-r--r--community/keepassx/ChangeLog16
-rw-r--r--community/keepassx/PKGBUILD22
-rw-r--r--community/keysafe/PKGBUILD32
-rw-r--r--community/keysafe/keysafe.install22
-rw-r--r--community/kgraphviewer/PKGBUILD31
-rw-r--r--community/kgraphviewer/kgraphviewer.install11
-rw-r--r--community/kid3/PKGBUILD34
-rw-r--r--community/kid3/kid3.changelog20
-rw-r--r--community/kid3/kid3.install11
-rw-r--r--community/kim4/PKGBUILD32
-rw-r--r--community/kiwi/ChangeLog36
-rw-r--r--community/kiwi/PKGBUILD31
-rw-r--r--community/klavaro/PKGBUILD28
-rw-r--r--community/klavaro/klavaro.install10
-rw-r--r--community/kleansweep/ChangeLog2
-rw-r--r--community/kleansweep/PKGBUILD27
-rw-r--r--community/kleansweep/kubuntu_03_fix_scons_chmod_error.patch23
-rw-r--r--community/kmess/PKGBUILD28
-rw-r--r--community/kmess/kmess.install11
-rw-r--r--community/kmymoney/PKGBUILD35
-rw-r--r--community/kmymoney/kmymoney.changelog25
-rw-r--r--community/kmymoney/kmymoney.install11
-rw-r--r--community/knemo/PKGBUILD39
-rw-r--r--community/knemo/knemo.install11
-rw-r--r--community/kovpn/ChangeLog2
-rw-r--r--community/kovpn/PKGBUILD40
-rw-r--r--community/kovpn/kovpn.install12
-rw-r--r--community/kovpn/traywindow_x86_64.patch20
-rw-r--r--community/kphotoalbum/PKGBUILD47
-rw-r--r--community/kphotoalbum/fix-docbook-build.patch236
-rw-r--r--community/kphotoalbum/fix-with-exiv2-0.21.patch47
-rw-r--r--community/kphotoalbum/kphotoalbum.install11
-rw-r--r--community/kpovmodeler/PKGBUILD33
-rw-r--r--community/kpovmodeler/kpovmodeler.install11
-rw-r--r--community/krecipes/PKGBUILD35
-rw-r--r--community/krecipes/krecipes.install12
-rw-r--r--community/krename/PKGBUILD32
-rw-r--r--community/krename/krename.install11
-rw-r--r--community/ksniffer/PKGBUILD22
-rw-r--r--community/ksshaskpass/PKGBUILD35
-rw-r--r--community/ksshaskpass/ksshaskpass.sh1
-rw-r--r--community/ktechlab/PKGBUILD21
-rw-r--r--community/ktikz/PKGBUILD39
-rw-r--r--community/ktikz/ktikz.install14
-rw-r--r--community/ktoblzcheck/PKGBUILD29
-rw-r--r--community/ktoblzcheck/ktoblzcheck-python3.patch107
-rw-r--r--community/kuickshow/PKGBUILD31
-rw-r--r--community/kuickshow/kuickshow.install11
-rw-r--r--community/kungfu/ChangeLog2
-rw-r--r--community/kungfu/PKGBUILD27
-rw-r--r--community/kvirc/PKGBUILD25
-rw-r--r--community/kvirc/kvirc.install13
-rw-r--r--community/kvpnc/PKGBUILD27
-rw-r--r--community/kvpnc/kvpnc.install52
-rw-r--r--community/kydpdict/ChangeLog9
-rw-r--r--community/kydpdict/PKGBUILD42
-rw-r--r--community/kydpdict/kydpdict.desktop8
-rw-r--r--community/kydpdict/kydpdict.install23
-rw-r--r--community/kydpdict/kydpdict.pngbin0 -> 933 bytes
-rw-r--r--community/lal/PKGBUILD24
-rw-r--r--community/lastfm-client/PKGBUILD50
-rw-r--r--community/lastfm-client/build-fixes.diff12
-rw-r--r--community/lastfm-client/lastfm.desktop14
-rw-r--r--community/lastfm-client/makefile-qt45.patch12
-rw-r--r--community/lastfm-client/qt46.diff57
-rw-r--r--community/lastfm-client/set-firstrun-status.diff11
-rw-r--r--community/lastfm-client/set-locale.diff20
-rwxr-xr-xcommunity/lat/PKGBUILD33
-rw-r--r--community/lat/lat.install26
-rw-r--r--community/launchy/PKGBUILD25
-rw-r--r--community/lazarus/ChangeLog3
-rw-r--r--community/lazarus/PKGBUILD48
-rw-r--r--community/lcms2/PKGBUILD28
-rw-r--r--community/ldns/PKGBUILD37
-rw-r--r--community/leafnode/PKGBUILD29
-rw-r--r--community/leafnode/leafnode.install20
-rw-r--r--community/leafnode/leafnode.xinetd18
-rw-r--r--community/lesspipe/PKGBUILD38
-rw-r--r--community/lesspipe/lesspipe.sh1
-rw-r--r--community/libacpi/PKGBUILD21
-rw-r--r--community/libaio/PKGBUILD22
-rw-r--r--community/libast/LICENSE.txt21
-rw-r--r--community/libast/PKGBUILD31
-rw-r--r--community/libcgi/PKGBUILD38
-rw-r--r--community/libcompizconfig/PKGBUILD26
-rw-r--r--community/libconfig/PKGBUILD25
-rw-r--r--community/libconfig/libconfig.install18
-rw-r--r--community/libcss/PKGBUILD24
-rw-r--r--community/libcuefile/ChangeLog3
-rw-r--r--community/libcuefile/PKGBUILD26
-rw-r--r--community/libdaq/PKGBUILD27
-rw-r--r--community/libdbi-drivers/PKGBUILD40
-rw-r--r--community/libdbi-drivers/libdbi-drivers.install19
-rw-r--r--community/libdbi/PKGBUILD27
-rw-r--r--community/libdbi/libdbi.install19
-rw-r--r--community/libdesktop-agnostic/PKGBUILD44
-rw-r--r--community/libdesktop-agnostic/gir.patch27
-rw-r--r--community/libdlna/PKGBUILD24
-rw-r--r--community/libdnet/PKGBUILD33
-rw-r--r--community/libdnet/libdnet.install3
-rw-r--r--community/libesmtp/PKGBUILD22
-rw-r--r--community/libev/PKGBUILD34
-rw-r--r--community/libexosip2/ChangeLog7
-rw-r--r--community/libexosip2/PKGBUILD22
-rw-r--r--community/libextractor/PKGBUILD28
-rw-r--r--community/libextractor/libextractor.install20
-rw-r--r--community/libfakekey/PKGBUILD31
-rw-r--r--community/libfbclient/ChangeLog26
-rw-r--r--community/libfbclient/LICENSE44
-rwxr-xr-xcommunity/libfbclient/PKGBUILD40
-rw-r--r--community/libgalago-gtk/PKGBUILD23
-rw-r--r--community/libgalago/PKGBUILD26
-rw-r--r--community/libgalago/libgalago-mkinstalldirs.patch11
-rw-r--r--community/libgda3/PKGBUILD27
-rw-r--r--community/libgdamm/PKGBUILD37
-rw-r--r--community/libgeotiff/PKGBUILD28
-rw-r--r--community/libgexiv2/PKGBUILD27
-rw-r--r--community/libghemical/PKGBUILD25
-rw-r--r--community/libghemical/sasaeval.diff21
-rw-r--r--community/libgig/PKGBUILD31
-rw-r--r--community/libgringotts/PKGBUILD26
-rw-r--r--community/libgringotts/libgringotts.changelog2
-rw-r--r--community/libgtksourceviewmm2/PKGBUILD31
-rw-r--r--community/libident/PKGBUILD20
-rw-r--r--community/libinfinity/PKGBUILD27
-rw-r--r--community/libiptcdata/PKGBUILD27
-rw-r--r--community/liblinebreak/PKGBUILD22
-rw-r--r--community/libmaa/PKGBUILD21
-rw-r--r--community/libmatchbox/PKGBUILD23
-rw-r--r--community/libmatio/PKGBUILD26
-rw-r--r--community/libmediainfo/PKGBUILD35
-rw-r--r--community/libmemcached/PKGBUILD32
-rw-r--r--community/libmicrohttpd/PKGBUILD36
-rw-r--r--community/libmirage/PKGBUILD27
-rw-r--r--community/libnetfilter_conntrack/PKGBUILD24
-rw-r--r--community/libnetfilter_queue/PKGBUILD24
-rw-r--r--community/libnewt/PKGBUILD35
-rw-r--r--community/libnfnetlink/PKGBUILD22
-rw-r--r--community/libnids/PKGBUILD28
-rw-r--r--community/libnoise/CMakeLists.txt101
-rw-r--r--community/libnoise/PKGBUILD33
-rw-r--r--community/libnsbmp/PKGBUILD27
-rw-r--r--community/libnsgif/PKGBUILD27
-rw-r--r--community/liboauth/PKGBUILD25
-rw-r--r--community/liboglappth/PKGBUILD23
-rw-r--r--community/liboobs/PKGBUILD23
-rw-r--r--community/liboop/PKGBUILD30
-rw-r--r--community/libopenraw/PKGBUILD23
-rw-r--r--community/libopensync/PKGBUILD33
-rw-r--r--community/liboping/PKGBUILD34
-rw-r--r--community/liboping/install8
-rw-r--r--community/libosip2/ChangeLog11
-rw-r--r--community/libosip2/PKGBUILD44
-rw-r--r--community/libpanelappletmm/PKGBUILD21
-rw-r--r--community/libpaper/PKGBUILD26
-rw-r--r--community/libpar2/PKGBUILD33
-rw-r--r--community/libpar2/libpar2-0.2-bugfixes.patch29
-rw-r--r--community/libparserutils/PKGBUILD26
-rw-r--r--community/libpqxx/ChangeLog9
-rw-r--r--community/libpqxx/PKGBUILD22
-rw-r--r--community/libquicktime/PKGBUILD30
-rw-r--r--community/libraw/PKGBUILD27
-rw-r--r--community/librcc/PKGBUILD52
-rw-r--r--community/librcc/librcc-strnlen.patch17
-rw-r--r--community/librcc/librcc.install28
-rw-r--r--community/librcd/PKGBUILD22
-rw-r--r--community/librep/PKGBUILD33
-rw-r--r--community/librep/librep.install18
-rw-r--r--community/libreplaygain/ChangeLog3
-rw-r--r--community/libreplaygain/PKGBUILD26
-rw-r--r--community/librsync/ChangeLog2
-rw-r--r--community/librsync/PKGBUILD35
-rw-r--r--community/librsync/lfs-overflow.patch55
-rw-r--r--community/librtfcomp/PKGBUILD24
-rw-r--r--community/libsieve/PKGBUILD20
-rw-r--r--community/libssh2/PKGBUILD29
-rw-r--r--community/libstatgrab/PKGBUILD30
-rw-r--r--community/libstatgrab/libstatgrab.changelog11
-rw-r--r--community/libsynaptics/PKGBUILD25
-rw-r--r--community/libsynaptics/libsynaptics-gcc433.patch10
-rw-r--r--community/libtar/PKGBUILD27
-rw-r--r--community/libtar/libtar-1.2.11.patch108
-rw-r--r--community/libtextcat/PKGBUILD31
-rw-r--r--community/libtlen/PKGBUILD20
-rw-r--r--community/libtorrent/PKGBUILD26
-rw-r--r--community/libtrash/PKGBUILD35
-rw-r--r--community/libtrash/libtrash.install15
-rw-r--r--community/libtrash/libtrash.patch11
-rw-r--r--community/libtrash/libtrash.sh3
-rw-r--r--community/libview/PKGBUILD23
-rw-r--r--community/libvirt/PKGBUILD71
-rw-r--r--community/libvirt/libvirt.install38
-rw-r--r--community/libvirt/libvirtd.conf.d3
-rwxr-xr-xcommunity/libvirt/libvirtd.rc.d65
-rw-r--r--community/libvirt/openbsd-netcat-default.patch24
-rw-r--r--community/libvirt/unixperms.patch47
-rw-r--r--community/libvisual-projectm/PKGBUILD26
-rw-r--r--community/libwapcaplet/PKGBUILD24
-rw-r--r--community/libwww/PKGBUILD25
-rw-r--r--community/libx86emu/PKGBUILD28
-rw-r--r--community/libxdg-basedir/LICENSE24
-rw-r--r--community/libxdg-basedir/PKGBUILD32
-rw-r--r--community/libxnvctrl/PKGBUILD33
-rw-r--r--community/libyaml/PKGBUILD23
-rw-r--r--community/libzen/PKGBUILD40
-rw-r--r--community/libzrtpcpp/PKGBUILD30
-rw-r--r--community/lightspark/PKGBUILD63
-rw-r--r--community/lightspark/lightspark.install13
-rw-r--r--community/lilypond/PKGBUILD40
-rw-r--r--community/lilypond/lilypond-gcc45.patch16
-rw-r--r--community/lilyterm/PKGBUILD29
-rw-r--r--community/lincity-ng/ChangeLog15
-rw-r--r--community/lincity-ng/PKGBUILD29
-rw-r--r--community/linphone/ChangeLog33
-rw-r--r--community/linphone/PKGBUILD34
-rw-r--r--community/linphone/disable-v4l1.patch50
-rw-r--r--community/linuxsampler/PKGBUILD38
-rw-r--r--community/linuxsampler/license.txt7
-rw-r--r--community/linuxtv-dvb-apps/PKGBUILD37
-rw-r--r--community/linuxtv-dvb-apps/linuxtv-dvb-apps.install8
-rw-r--r--community/listen/PKGBUILD47
-rw-r--r--community/listen/listen-fix-dbus.diff49
-rw-r--r--community/listen/listen-fix-encoding.diff16
-rw-r--r--community/llvm/PKGBUILD190
-rw-r--r--community/llvm/clang-2.8-alignOf.patch199
-rw-r--r--community/llvm/clang-2.8-cindexer-clang-path.patch13
-rw-r--r--community/llvm/clang-plugin-loader-registry.patch11
-rw-r--r--community/llvm/cpp-headers.patch17
-rw-r--r--community/llvm/llvm-2.8-alignOf.patch59
-rw-r--r--community/lmctl/PKGBUILD39
-rw-r--r--community/lmctl/lmctl.conf.d6
-rw-r--r--community/lmctl/lmctl.rc.d21
-rw-r--r--community/lmctl/mx-support-cmdline.patch37
-rw-r--r--community/lmctl/mx-support-man.patch17
-rw-r--r--community/lmctl/mx-support.patch29
-rw-r--r--community/lmms/PKGBUILD38
-rw-r--r--community/lmms/lmms.install11
-rw-r--r--community/lockdev/PKGBUILD33
-rw-r--r--community/lorcon-old-svn/PKGBUILD43
-rw-r--r--community/lrzsz/PKGBUILD28
-rw-r--r--community/lrzsz/lrzsz.patch40
-rw-r--r--community/lsb-release/PKGBUILD29
-rw-r--r--community/lsb-release/lsb-release.install12
-rw-r--r--community/lshw/PKGBUILD30
-rw-r--r--community/lshw/abi_stdlib.diff23
-rw-r--r--community/ltris/ChangeLog15
-rw-r--r--community/ltris/PKGBUILD31
-rw-r--r--community/ltris/ltris.install17
-rw-r--r--community/lua-lzlib/PKGBUILD29
-rw-r--r--community/lua-lzlib/license.txt24
-rw-r--r--community/lua-yajl-git/LICENSE17
-rw-r--r--community/lua-yajl-git/PKGBUILD49
-rw-r--r--community/lua-zlib/ChangeLog42
-rw-r--r--community/lua-zlib/PKGBUILD32
-rw-r--r--community/luaexpat/PKGBUILD22
-rw-r--r--community/luaexpat/newconfig26
-rw-r--r--community/luafilesystem/LICENSE22
-rw-r--r--community/luafilesystem/PKGBUILD25
-rw-r--r--community/luarocks/PKGBUILD32
-rw-r--r--community/luasec/ChangeLog60
-rw-r--r--community/luasec/PKGBUILD30
-rw-r--r--community/luasec/luasec.patch27
-rw-r--r--community/luasocket/PKGBUILD29
-rw-r--r--community/luasocket/luasocket-arch.patch14
-rw-r--r--community/luasocket/luasocket-unixsocket.patch33
-rw-r--r--community/luasql-mysql/PKGBUILD25
-rw-r--r--community/luminancehdr/PKGBUILD37
-rw-r--r--community/luminancehdr/luminancehdr.changelog31
-rw-r--r--community/luminancehdr/luminancehdr.install11
-rw-r--r--community/luxrender/PKGBUILD45
-rw-r--r--community/luxrender/libpng.patch21
-rw-r--r--community/lwm/PKGBUILD25
-rw-r--r--community/lwp/PKGBUILD22
-rw-r--r--community/lxappearance/PKGBUILD23
-rw-r--r--community/lxlauncher/PKGBUILD37
-rw-r--r--community/lxlauncher/intltool.patch16
-rw-r--r--community/lxlauncher/lxlauncher-0.2.1-dsofix.patch12
-rw-r--r--community/lxlauncher/lxlauncher-0.2.1-fix-SUSE-lint-warnings.patch32
-rw-r--r--community/lxlauncher/lxlauncher-0.2.1-fix-for-the-new-behavior-of-libmenu-cache-0.3-series.patch125
-rw-r--r--community/lxnm/PKGBUILD25
-rw-r--r--community/lxrandr/PKGBUILD20
-rw-r--r--community/lxtask/PKGBUILD22
-rw-r--r--community/lxterminal/PKGBUILD23
-rw-r--r--community/macchanger/PKGBUILD18
-rw-r--r--community/madman/PKGBUILD59
-rwxr-xr-xcommunity/madman/fake-g++.sh7
-rw-r--r--community/madman/madman.desktop10
-rw-r--r--community/madman/madman_logo.pngbin0 -> 2407 bytes
-rw-r--r--community/madman/madman_logo_large.pngbin0 -> 4763 bytes
-rw-r--r--community/madman/madman_logo_mini.pngbin0 -> 812 bytes
-rw-r--r--community/mailutils/PKGBUILD38
-rw-r--r--community/mairix/PKGBUILD29
-rw-r--r--community/mairix/mairix.install14
-rw-r--r--community/mandvd/PKGBUILD35
-rw-r--r--community/mandvd/mandvd.changelog8
-rw-r--r--community/mapnik/PKGBUILD49
-rw-r--r--community/mapnik/mapnik.install11
-rw-r--r--community/mashup/PKGBUILD30
-rw-r--r--community/matchbox-desktop/PKGBUILD22
-rw-r--r--community/matchbox-keyboard/PKGBUILD21
-rw-r--r--community/matchbox-panel/PKGBUILD20
-rw-r--r--community/matchbox-window-manager/PKGBUILD21
-rwxr-xr-xcommunity/mathomatic/PKGBUILD41
-rw-r--r--community/mcabber/PKGBUILD37
-rw-r--r--community/mcdp/PKGBUILD22
-rw-r--r--community/mdf2iso/ChangeLog9
-rw-r--r--community/mdf2iso/PKGBUILD29
-rw-r--r--community/mdf2iso/lfs.patch683
-rw-r--r--community/me-tv/PKGBUILD42
-rw-r--r--community/me-tv/me-tv.install17
-rw-r--r--community/mediainfo-gui/PKGBUILD31
-rw-r--r--community/mediainfo-gui/mediainfo-gui.install11
-rw-r--r--community/mediainfo/PKGBUILD23
-rw-r--r--community/mediaproxy/PKGBUILD24
-rwxr-xr-xcommunity/mediaproxy/mediaproxy.init32
-rw-r--r--community/mediastreamer/PKGBUILD25
-rw-r--r--community/mediastreamer/disable-v4l1.patch50
-rw-r--r--community/mediatomb/PKGBUILD43
-rw-r--r--community/mediatomb/mediatomb.conf23
-rw-r--r--community/mediatomb/mediatomb.install9
-rw-r--r--community/mediatomb/mediatomb.rc54
-rw-r--r--community/medit/PKGBUILD40
-rw-r--r--community/medit/capsule.diff47
-rw-r--r--community/medit/medit.install12
-rwxr-xr-xcommunity/mednafen/PKGBUILD23
-rw-r--r--community/mednafen/fix_build.diff12
-rw-r--r--community/megaglest/PKGBUILD55
-rw-r--r--community/megaglest/megaglest.desktop8
-rw-r--r--community/megaglest/megaglest.pngbin0 -> 8274 bytes
-rw-r--r--community/megaglest/megaglest.sh26
-rw-r--r--community/mercury/PKGBUILD36
-rw-r--r--community/mercury/license.txt8
-rw-r--r--community/metakit/PKGBUILD38
-rw-r--r--community/metamail/PKGBUILD35
-rw-r--r--community/metamail/license37
-rw-r--r--community/mezogis/ChangeLog3
-rw-r--r--community/mezogis/PKGBUILD25
-rw-r--r--community/mfs/PKGBUILD98
-rwxr-xr-xcommunity/mfs/mfscgiserv36
-rwxr-xr-xcommunity/mfs/mfschunkserver38
-rwxr-xr-xcommunity/mfs/mfsmaster39
-rwxr-xr-xcommunity/mfs/mfsmetalogger39
-rw-r--r--community/mftrace/PKGBUILD21
-rw-r--r--community/mg/PKGBUILD33
-rw-r--r--community/mg/README74
-rw-r--r--community/mget/PKGBUILD26
-rw-r--r--community/mget/fix-warnings.patch40
-rw-r--r--community/mhwaveedit/PKGBUILD28
-rw-r--r--community/microblog-purple/PKGBUILD20
-rw-r--r--community/mime-editor/PKGBUILD33
-rw-r--r--community/mime-editor/mime-editor2
-rw-r--r--community/mimetex/PKGBUILD17
-rw-r--r--community/minbif/PKGBUILD39
-rw-r--r--community/minbif/minbif49
-rw-r--r--community/minbif/minbif.install18
-rw-r--r--community/mingw32-binutils/PKGBUILD31
-rw-r--r--community/mingw32-gcc-base/PKGBUILD74
-rw-r--r--community/mingw32-gcc/PKGBUILD62
-rw-r--r--community/mingw32-runtime/PKGBUILD39
-rw-r--r--community/minidlna/PKGBUILD31
-rwxr-xr-xcommunity/minidlna/minidlna.rc47
-rw-r--r--community/miredo/PKGBUILD35
-rw-r--r--community/miredo/isatapd.rc.d37
-rw-r--r--community/miredo/miredo-server.rc.d37
-rw-r--r--community/miredo/miredo.install8
-rw-r--r--community/miredo/miredo.rc.d37
-rw-r--r--community/mixxx/PKGBUILD28
-rw-r--r--community/mktorrent/PKGBUILD19
-rw-r--r--community/mldonkey/PKGBUILD44
-rw-r--r--community/mldonkey/mldonkey.conf8
-rw-r--r--community/mldonkey/mldonkey.desktop8
-rw-r--r--community/mldonkey/mldonkey.install17
-rw-r--r--community/mldonkey/mldonkeyd50
-rw-r--r--community/mlt/PKGBUILD57
-rw-r--r--community/mms_client/ChangeLog2
-rw-r--r--community/mms_client/PKGBUILD28
-rw-r--r--community/mms_client/mmsclient-0.0.3-fbsd.patch41
-rw-r--r--community/mms_client/mmsclient-0.0.3-r1.patch92
-rw-r--r--community/mmsrip/PKGBUILD25
-rw-r--r--community/mongodb/PKGBUILD54
-rw-r--r--community/mongodb/mongodb.conf6
-rwxr-xr-xcommunity/mongodb/mongodb.install31
-rwxr-xr-xcommunity/mongodb/mongodb.rc39
-rw-r--r--community/monit/PKGBUILD36
-rw-r--r--community/monit/monit.changelog19
-rw-r--r--community/monit/monitd43
-rw-r--r--community/moreutils/PKGBUILD25
-rw-r--r--community/motion/PKGBUILD33
-rwxr-xr-xcommunity/motion/rc.motion36
-rw-r--r--community/mp3gain/PKGBUILD27
-rw-r--r--community/mp3gain/build-fix.patch22
-rw-r--r--community/mp3info/ChangeLog2
-rw-r--r--community/mp3info/PKGBUILD26
-rw-r--r--community/mp3splt-gtk/PKGBUILD34
-rw-r--r--community/mp3splt-gtk/mp3splt-gtk.changelog11
-rw-r--r--community/mp3splt-gtk/mp3splt-gtk.desktop13
-rw-r--r--community/mp3splt-gtk/mp3splt-gtk.install4
-rw-r--r--community/mp3unicode/PKGBUILD23
-rw-r--r--community/mpdscribble/PKGBUILD45
-rw-r--r--community/mpdscribble/mpdscribble37
-rw-r--r--community/mpdscribble/mpdscribble.install17
-rw-r--r--community/mpgtx/PKGBUILD20
-rw-r--r--community/mtasc/PKGBUILD31
-rw-r--r--community/mtpaint/PKGBUILD25
-rw-r--r--community/mtpaint/libpng14.patch21
-rw-r--r--community/multiget/PKGBUILD43
-rw-r--r--community/multiget/gcc4.4.diff75
-rw-r--r--community/multiget/multiget.desktop8
-rw-r--r--community/multimux/PKGBUILD28
-rw-r--r--community/multipath-tools/PKGBUILD46
-rw-r--r--community/multipath-tools/multipath-tools.install4
-rw-r--r--community/multipath-tools/multipath.conf8
-rw-r--r--community/multipath-tools/multipath.conf.annotated362
-rw-r--r--community/multipath-tools/multipathd.rc35
-rw-r--r--community/mumble/PKGBUILD62
-rw-r--r--community/mumble/mumble.install11
-rw-r--r--community/mumble/mumble11x.desktop11
-rw-r--r--community/mupdf/PKGBUILD45
-rw-r--r--community/mupdf/mupdf.install13
-rw-r--r--community/mupen64plus/PKGBUILD32
-rw-r--r--community/murmur/0003-fix-long-username-query.patch42
-rw-r--r--community/murmur/0004-fix-username-validation.patch36
-rw-r--r--community/murmur/ChangeLog36
-rw-r--r--community/murmur/PKGBUILD66
-rw-r--r--community/murmur/murmur.conf.d2
-rw-r--r--community/murmur/murmur.dbus.conf22
-rw-r--r--community/murmur/murmur.install33
-rw-r--r--community/murmur/murmur.logrotate.d6
-rw-r--r--community/murmur/murmur.rc.d40
-rw-r--r--community/musca/PKGBUILD26
-rw-r--r--community/musepack-tools/ChangeLog9
-rw-r--r--community/musepack-tools/PKGBUILD32
-rw-r--r--community/musepack-tools/math.patch22
-rw-r--r--community/musescore/PKGBUILD37
-rw-r--r--community/musescore/QtEvent.patch19
-rw-r--r--community/musescore/paths.patch22
-rw-r--r--community/mxml/PKGBUILD22
-rw-r--r--community/mygui/PKGBUILD74
-rw-r--r--community/mygui/mygui.install3
-rw-r--r--community/myodbc/PKGBUILD38
-rw-r--r--community/myodbc/myodbc-64bit.patch85
-rw-r--r--community/myodbc/myodbc-add-mysys.patch29
-rw-r--r--community/myodbc/myodbc-my-free.patch253
-rw-r--r--community/myodbc/myodbc-shutdown.patch27
-rw-r--r--community/mypaint/PKGBUILD29
-rw-r--r--community/mysql-ruby/PKGBUILD30
-rw-r--r--community/mysql-workbench/ArchLinux.xml18
-rw-r--r--community/mysql-workbench/PKGBUILD49
-rw-r--r--community/mysql-workbench/arch.patch22
-rw-r--r--community/mysql-workbench/python27.patch18
-rw-r--r--community/mythplugins/PKGBUILD141
-rw-r--r--community/mythplugins/mtd.rc36
-rw-r--r--community/mythplugins/mythplugins-mythzoneminder.install3
-rw-r--r--community/mythtv/PKGBUILD73
-rw-r--r--community/mythtv/mythbackend.conf92
-rw-r--r--community/mythtv/mythbackend.rc82
-rw-r--r--community/mythtv/mythtv.install12
-rw-r--r--community/naev/PKGBUILD45
-rw-r--r--community/naev/naev.desktop11
-rw-r--r--community/naev/naev.pngbin0 -> 1569 bytes
-rw-r--r--community/namazu/PKGBUILD26
-rw-r--r--community/nas/PKGBUILD35
-rw-r--r--community/nas/license.txt22
-rw-r--r--community/nautilus-actions/PKGBUILD33
-rw-r--r--community/nautilus-actions/nautilus-actions.install24
-rw-r--r--community/nbd/PKGBUILD26
-rw-r--r--community/nbd/nbd40
-rw-r--r--community/nbd/nbd.conf.d8
-rwxr-xr-xcommunity/nbtscan/PKGBUILD27
-rw-r--r--community/nbtscan/nbtscan.1.gzbin0 -> 1890 bytes
-rw-r--r--community/ncdu/PKGBUILD21
-rw-r--r--community/ncmpcpp/PKGBUILD31
-rw-r--r--community/ncmpcpp/ncmpcpp.install19
-rw-r--r--community/neatx/PKGBUILD34
-rw-r--r--community/neatx/constants.archlinux.patch42
-rw-r--r--community/neatx/neatx.install18
-rw-r--r--community/nemesis/PKGBUILD47
-rw-r--r--community/nemesis/nemesis-proto_tcp.c.diff46
-rw-r--r--community/nepim/PKGBUILD25
-rw-r--r--community/nestopia/ChangeLog12
-rw-r--r--community/nestopia/PKGBUILD49
-rw-r--r--community/nestopia/nestopia10
-rw-r--r--community/nestopia/nestopia_bogus_error_on_save_settings.patch11
-rw-r--r--community/net6/PKGBUILD24
-rw-r--r--community/netbrake/PKGBUILD39
-rw-r--r--community/netbrake/arch-x86_64.patch39
-rw-r--r--community/nethack/PKGBUILD64
-rw-r--r--community/netstat-nat/PKGBUILD20
-rw-r--r--community/netsurf/PKGBUILD30
-rw-r--r--community/netwatch/PKGBUILD25
-rw-r--r--community/newsbeuter/PKGBUILD33
-rw-r--r--community/newsbeuter/newsbeuter-archlinux.patch14
-rw-r--r--community/newsbeuter/newsbeuter.changelog21
-rw-r--r--community/newsbeuter/newsbeuter.install6
-rw-r--r--community/nexuiz/PKGBUILD55
-rw-r--r--community/nexuiz/libpng14.patch39
-rw-r--r--community/nexuiz/nexuiz-dedicated3
-rw-r--r--community/nexuiz/nexuiz-glx3
-rw-r--r--community/nexuiz/nexuiz-glx.desktop11
-rw-r--r--community/nexuiz/nexuiz-sdl3
-rw-r--r--community/nexuiz/nexuiz-sdl.desktop11
-rw-r--r--community/nexuiz/nexuiz.pngbin0 -> 4603 bytes
-rw-r--r--community/nginx/ChangeLog7
-rw-r--r--community/nginx/PKGBUILD88
-rw-r--r--community/nginx/nginx69
-rw-r--r--community/ngircd/PKGBUILD30
-rw-r--r--community/ngircd/ngircd.sh36
-rw-r--r--community/ngrep/PKGBUILD23
-rw-r--r--community/ngspice/PKGBUILD30
-rw-r--r--community/noip/PKGBUILD32
-rw-r--r--community/noip/noip-rc.d39
-rw-r--r--community/noip/noip.install11
-rw-r--r--community/nrg2iso/PKGBUILD29
-rw-r--r--community/nsd/PKGBUILD34
-rw-r--r--community/nsd/nsd.install20
-rw-r--r--community/ntop/PKGBUILD44
-rwxr-xr-xcommunity/ntop/ntop38
-rw-r--r--community/ntop/ntop.conf.d5
-rw-r--r--community/ntop/ntop.install8
-rw-r--r--community/nut/PKGBUILD38
-rw-r--r--community/nvclock/PKGBUILD42
-rw-r--r--community/nvclock/nvclock-0.8b4-buildfix.patch16
-rw-r--r--community/nvclock/nvclock.desktop-use-gksu.patch11
-rw-r--r--community/nvclock/nvclock.install11
-rw-r--r--community/nvdock/PKGBUILD27
-rw-r--r--community/nzbget/ChangeLog18
-rw-r--r--community/nzbget/PKGBUILD30
-rw-r--r--community/obby/PKGBUILD23
-rw-r--r--community/obexfs/PKGBUILD25
-rw-r--r--community/ocaml-extlib/PKGBUILD35
-rw-r--r--community/ocaml-findlib/PKGBUILD36
-rw-r--r--community/ocaml-ounit/PKGBUILD32
-rw-r--r--community/ogle-gui/PKGBUILD22
-rw-r--r--community/ogmrip/PKGBUILD46
-rw-r--r--community/ogmrip/ogmrip-0.13.6-libnotify-0.7.patch25
-rw-r--r--community/ogmrip/ogmrip.changelog15
-rw-r--r--community/ogre/PKGBUILD88
-rw-r--r--community/ogre/ogre.install4
-rw-r--r--community/oidentd/PKGBUILD33
-rw-r--r--community/oidentd/oidentd.default5
-rw-r--r--community/oidentd/oidentd.rc41
-rw-r--r--community/ois/PKGBUILD26
-rw-r--r--community/omniorb/PKGBUILD39
-rw-r--r--community/open-vm-tools-modules/PKGBUILD40
-rw-r--r--community/open-vm-tools-modules/open-vm-tools-modules.install35
-rw-r--r--community/open-vm-tools/PKGBUILD67
-rw-r--r--community/open-vm-tools/open-vm-tools-X11Bool.patch15
-rw-r--r--community/open-vm-tools/open-vm-tools.conf.d6
-rw-r--r--community/open-vm-tools/open-vm-tools.install10
-rw-r--r--community/open-vm-tools/open-vm-tools.rc.d101
-rw-r--r--community/open-vm-tools/scripts-network-FS19541.patch40
-rw-r--r--community/open-vm-tools/scripts-network.patch63
-rw-r--r--community/open-vm-tools/tools.conf1
-rw-r--r--community/open-vm-tools/vmware-guestd6
-rw-r--r--community/open-vm-tools/xautostart.conf6
-rw-r--r--community/openarena/PKGBUILD66
-rw-r--r--community/openarena/openarena-server.desktop8
-rw-r--r--community/openarena/openarena-server.pngbin0 -> 2302 bytes
-rw-r--r--community/openarena/openarena.desktop7
-rw-r--r--community/openarena/openarena.pngbin0 -> 2255 bytes
-rw-r--r--community/openbsd-netcat/PKGBUILD32
-rw-r--r--community/openlierox/PKGBUILD61
-rw-r--r--community/openmotif/PKGBUILD59
-rw-r--r--community/openmovieeditor/PKGBUILD30
-rw-r--r--community/openntpd/PKGBUILD53
-rw-r--r--community/openntpd/linux-adjtimex.patch168
-rwxr-xr-xcommunity/openntpd/openntpd43
-rw-r--r--community/openntpd/openntpd.conf4
-rw-r--r--community/openntpd/openntpd.install25
-rw-r--r--community/openntpd/sync_fix_with_adjtime.patch24
-rw-r--r--community/openscenegraph/PKGBUILD32
-rw-r--r--community/openscenegraph/build-fix.diff137
-rw-r--r--community/opensips/PKGBUILD67
-rw-r--r--community/opensips/opensips.init50
-rw-r--r--community/opensips/opensips.install5
-rw-r--r--community/openssh-askpass/PKGBUILD29
-rw-r--r--community/openssh-askpass/openssh-askpass.sh3
-rw-r--r--community/openthreads/PKGBUILD36
-rw-r--r--community/openttd/PKGBUILD38
-rw-r--r--community/openttd/openttd.install17
-rw-r--r--community/optipng/PKGBUILD25
-rw-r--r--community/orange/PKGBUILD22
-rw-r--r--community/osdbattery/PKGBUILD22
-rw-r--r--community/osdbattery/osdbattery.install9
-rw-r--r--community/osdbattery/showbatt12
-rw-r--r--community/osec/PKGBUILD29
-rw-r--r--community/osec/osec.install16
-rw-r--r--community/osiris/ChangeLog3
-rw-r--r--community/osiris/PKGBUILD40
-rw-r--r--community/osiris/osiris.install23
-rwxr-xr-xcommunity/osiris/osirisd.init35
-rwxr-xr-xcommunity/osiris/osirismd.init35
-rw-r--r--community/osmo/ChangeLog12
-rw-r--r--community/osmo/PKGBUILD36
-rw-r--r--community/osmo/osmo-0.2.10-libnotify-0.7.patch48
-rw-r--r--community/osmo/osmo.install12
-rw-r--r--community/oss/PKGBUILD84
-rw-r--r--community/oss/oss.install59
-rw-r--r--community/oss/oss.rc32
-rw-r--r--community/oss/oss.rm-init-scripts.patch52
-rw-r--r--community/oss/oss.soundon.patch28
-rw-r--r--community/ozerocdoff/PKGBUILD24
-rw-r--r--community/p2c/PKGBUILD47
-rw-r--r--community/p3scan/PKGBUILD50
-rw-r--r--community/p3scan/p3scan.install7
-rw-r--r--community/p3scan/rc.p3scan39
-rw-r--r--community/packagekit/PKGBUILD93
-rw-r--r--community/packagekit/alpm.patch11693
-rw-r--r--community/packagekit/packagekit.install11
-rw-r--r--community/paco/ChangeLog3
-rw-r--r--community/paco/PKGBUILD24
-rw-r--r--community/paintown/PKGBUILD49
-rw-r--r--community/paintown/paintown.desktop8
-rw-r--r--community/paintown/paintown.pngbin0 -> 14271 bytes
-rw-r--r--community/pam-krb5/PKGBUILD25
-rw-r--r--community/pam_mysql/PKGBUILD28
-rw-r--r--community/pam_pwcheck/PKGBUILD21
-rw-r--r--community/panflute/PKGBUILD42
-rw-r--r--community/panflute/panflute.install17
-rw-r--r--community/pantomime/PKGBUILD28
-rw-r--r--community/parano/ChangeLog6
-rw-r--r--community/parano/PKGBUILD39
-rw-r--r--community/parano/mime.diff15
-rw-r--r--community/parano/parano.install13
-rw-r--r--community/paraview/PKGBUILD80
-rw-r--r--community/paraview/paraview.desktop10
-rw-r--r--community/paraview/paraview.pngbin0 -> 367 bytes
-rw-r--r--community/paraview/paraview.profile1
-rw-r--r--community/parcellite/ChangeLog17
-rw-r--r--community/parcellite/PKGBUILD22
-rw-r--r--community/pari/PKGBUILD32
-rw-r--r--community/parrot/ChangeLog5
-rw-r--r--community/parrot/PKGBUILD44
-rw-r--r--community/partimage/PKGBUILD42
-rw-r--r--community/partimage/partimage.install22
-rw-r--r--community/partimage/partimaged64
-rw-r--r--community/partimage/partimaged-gencrt18
-rw-r--r--community/patchage/PKGBUILD33
-rw-r--r--community/patchage/patchage.install13
-rw-r--r--community/patchutils/PKGBUILD27
-rw-r--r--community/pawm/PKGBUILD21
-rw-r--r--community/pbzip2/PKGBUILD34
-rw-r--r--community/pcb/Changelog22
-rw-r--r--community/pcb/PKGBUILD36
-rw-r--r--community/pcb/pcb.install37
-rw-r--r--community/pcsc-perl/PKGBUILD30
-rw-r--r--community/pcsc-tools/PKGBUILD27
-rw-r--r--community/pcsclite/PKGBUILD40
-rw-r--r--community/pcsclite/pcscd53
-rw-r--r--community/pdf2djvu/PKGBUILD28
-rw-r--r--community/pdf2svg/PKGBUILD27
-rw-r--r--community/pdfedit/PKGBUILD37
-rw-r--r--community/pdfedit/pdfedit.desktop9
-rw-r--r--community/pdfedit/pdfedit.pngbin0 -> 1881 bytes
-rw-r--r--community/pdftrans/PKGBUILD26
-rwxr-xr-xcommunity/pdftrans/pdftrans.sh15
-rw-r--r--community/pdmenu/ChangeLog3
-rw-r--r--community/pdmenu/PKGBUILD21
-rw-r--r--community/pdmenu/utf8.patch26
-rw-r--r--community/pdnsd/PKGBUILD28
-rwxr-xr-xcommunity/pdnsd/pdnsd37
-rw-r--r--community/performous/PKGBUILD40
-rw-r--r--community/perl-berkeleydb/PKGBUILD28
-rw-r--r--community/perl-class-data-inheritable/PKGBUILD23
-rw-r--r--community/perl-class-factory-util/PKGBUILD31
-rw-r--r--community/perl-class-methodmaker/PKGBUILD24
-rw-r--r--community/perl-clone/PKGBUILD32
-rw-r--r--community/perl-crypt-blowfish/PKGBUILD22
-rw-r--r--community/perl-crypt-des/PKGBUILD19
-rw-r--r--community/perl-crypt-openssl-bignum/PKGBUILD23
-rw-r--r--community/perl-crypt-openssl-random/PKGBUILD23
-rw-r--r--community/perl-crypt-openssl-rsa/PKGBUILD24
-rw-r--r--community/perl-curses/PKGBUILD25
-rw-r--r--community/perl-data-structure-util/PKGBUILD22
-rw-r--r--community/perl-datetime-format-builder/PKGBUILD30
-rw-r--r--community/perl-datetime-format-iso8601/PKGBUILD31
-rw-r--r--community/perl-datetime-format-mail/PKGBUILD23
-rw-r--r--community/perl-datetime/PKGBUILD29
-rw-r--r--community/perl-dbd-odbc/PKGBUILD25
-rw-r--r--community/perl-dbd-pg/PKGBUILD24
-rw-r--r--community/perl-dbd-sqlite2/PKGBUILD24
-rw-r--r--community/perl-dbd-sybase/PKGBUILD24
-rw-r--r--community/perl-device-serialport/PKGBUILD25
-rw-r--r--community/perl-digest-md5/PKGBUILD28
-rw-r--r--community/perl-file-path-expand/PKGBUILD22
-rw-r--r--community/perl-file-slurp/PKGBUILD23
-rw-r--r--community/perl-fuse/PKGBUILD23
-rw-r--r--community/perl-gd/PKGBUILD28
-rw-r--r--community/perl-getopt-argvfile/PKGBUILD25
-rw-r--r--community/perl-gnome2-wnck/PKGBUILD23
-rw-r--r--community/perl-graphics-colornames/PKGBUILD23
-rw-r--r--community/perl-gssapi/PKGBUILD23
-rw-r--r--community/perl-gstreamer-interfaces/ChangeLog5
-rw-r--r--community/perl-gstreamer-interfaces/PKGBUILD25
-rw-r--r--community/perl-gstreamer/ChangeLog13
-rw-r--r--community/perl-gstreamer/PKGBUILD24
-rw-r--r--community/perl-gtk2-mozembed/PKGBUILD32
-rw-r--r--community/perl-gtk2-mozembed/missing-pixbuf.patch23
-rw-r--r--community/perl-gtk2-sexy/PKGBUILD30
-rw-r--r--community/perl-gtk2-trayicon/PKGBUILD24
-rw-r--r--community/perl-gtk2-webkit/ChangeLog17
-rw-r--r--community/perl-gtk2-webkit/PKGBUILD24
-rw-r--r--community/perl-html-strip/PKGBUILD23
-rw-r--r--community/perl-html-tableextract/PKGBUILD24
-rw-r--r--community/perl-inline-java/PKGBUILD25
-rw-r--r--community/perl-io-string/PKGBUILD23
-rw-r--r--community/perl-io-tty/PKGBUILD21
-rw-r--r--community/perl-json-xs/PKGBUILD28
-rw-r--r--community/perl-libapreq2/PKGBUILD33
-rw-r--r--community/perl-list-moreutils/PKGBUILD27
-rw-r--r--community/perl-mail-box-parser-c/PKGBUILD22
-rw-r--r--community/perl-mail-transport-dbx/PKGBUILD22
-rw-r--r--community/perl-net-dbus/PKGBUILD24
-rw-r--r--community/perl-net-libidn/PKGBUILD22
-rw-r--r--community/perl-params-validate/PKGBUILD23
-rw-r--r--community/perl-string-crc32/PKGBUILD22
-rw-r--r--community/perl-text-charwidth/PKGBUILD22
-rw-r--r--community/perl-text-kakasi/ChangeLog3
-rw-r--r--community/perl-text-kakasi/PKGBUILD25
-rw-r--r--community/perl-tie-hash-indexed/PKGBUILD24
-rw-r--r--community/perl-tk-tablematrix/PKGBUILD25
-rw-r--r--community/perl-www-curl/PKGBUILD23
-rw-r--r--community/perl-xml-dom/PKGBUILD23
-rw-r--r--community/perl-xml-libxml/PKGBUILD30
-rw-r--r--community/perl-xml-libxml/perl-xml-libxml.install15
-rw-r--r--community/perl-xml-libxslt/PKGBUILD28
-rw-r--r--community/perl-xml-regexp/PKGBUILD23
-rw-r--r--community/perl-xmms/PKGBUILD31
-rw-r--r--community/perlio-eol/PKGBUILD22
-rw-r--r--community/pgadmin3/ChangeLog28
-rw-r--r--community/pgadmin3/PKGBUILD39
-rw-r--r--community/pgadmin3/pgadmin3.desktop10
-rw-r--r--community/php-geoip/PKGBUILD32
-rw-r--r--community/php-memcache/PKGBUILD33
-rw-r--r--community/php-memcache/php-memcache.install10
-rw-r--r--community/php-memcached/PKGBUILD32
-rw-r--r--community/php52/PKGBUILD192
-rw-r--r--community/php52/apache.conf9
-rw-r--r--community/php52/db-5.patch51
-rw-r--r--community/php52/db-configure.patch59
-rw-r--r--community/php52/libpng14.patch11
-rw-r--r--community/php52/php.ini1309
-rw-r--r--community/picard/PKGBUILD22
-rw-r--r--community/picard/picard.install11
-rw-r--r--community/pidgin-fonomobutton/PKGBUILD24
-rw-r--r--community/pidgin-fonomobutton/pidgin-fonomobutton-0.1.6-const.patch11
-rw-r--r--community/pidgin-fonomobutton/pidgin-fonomobutton.install11
-rw-r--r--community/pidgin-libnotify/PKGBUILD29
-rw-r--r--community/pidgin-libnotify/language_fixes.patch536
-rw-r--r--community/pidgin-libnotify/pidgin-libnotify-0.14-libnotify-0.7.patch18
-rw-r--r--community/pidgin-musictracker/PKGBUILD24
-rw-r--r--community/pidgin-otr/PKGBUILD23
-rw-r--r--community/pigeonhole/PKGBUILD40
-rw-r--r--community/pigeonhole/dovecot.conf1
-rw-r--r--community/pinfo/ChangeLog3
-rw-r--r--community/pinfo/PKGBUILD25
-rw-r--r--community/pingus/ChangeLog21
-rw-r--r--community/pingus/PKGBUILD30
-rw-r--r--community/pingus/pingus.desktop9
-rw-r--r--community/pinot/PKGBUILD46
-rw-r--r--community/pinot/pinot.install15
-rw-r--r--community/pkgtools/PKGBUILD25
-rw-r--r--community/pkgtools/pkgtools.install62
-rw-r--r--community/plan9port/PKGBUILD52
-rw-r--r--community/plan9port/plan9.install42
-rwxr-xr-xcommunity/plan9port/plan9.sh2
-rw-r--r--community/plib/ChangeLog12
-rw-r--r--community/plib/PKGBUILD30
-rw-r--r--community/pmtools/PKGBUILD39
-rw-r--r--community/png2ico/PKGBUILD19
-rw-r--r--community/podofo/PKGBUILD34
-rw-r--r--community/poedit/PKGBUILD30
-rw-r--r--community/poedit/poedit.install11
-rw-r--r--community/pokerth/PKGBUILD37
-rw-r--r--community/polipo/PKGBUILD48
-rw-r--r--community/polipo/polipo.cron2
-rw-r--r--community/polipo/polipo.install25
-rw-r--r--community/polipo/polipo.rc.d60
-rw-r--r--community/pork/PKGBUILD26
-rw-r--r--community/portaudio/PKGBUILD25
-rw-r--r--community/portaudio_cpp/PKGBUILD28
-rw-r--r--community/portmidi/PKGBUILD41
-rw-r--r--community/postgis/PKGBUILD29
-rw-r--r--community/postgis/postgis.changelog5
-rw-r--r--community/pound/ChangeLog22
-rw-r--r--community/pound/PKGBUILD41
-rw-r--r--community/pound/pound-2.5-openssl.patch290
-rw-r--r--community/pound/pound.cfg85
-rwxr-xr-xcommunity/pound/pound.init38
-rwxr-xr-xcommunity/pound/pound.runit24
-rw-r--r--community/powertop/PKGBUILD25
-rw-r--r--community/pppd-ldap-simple/PKGBUILD20
-rw-r--r--community/pppd-ldap/PKGBUILD37
-rw-r--r--community/pptpd/ChangeLog3
-rw-r--r--community/pptpd/PKGBUILD33
-rwxr-xr-xcommunity/pptpd/pptpd35
-rwxr-xr-xcommunity/pragha/PKGBUILD41
-rwxr-xr-xcommunity/pragha/pragha.install8
-rw-r--r--community/prboom/PKGBUILD25
-rw-r--r--community/prboom/libpng-1.4.patch21
-rw-r--r--community/prelink/PKGBUILD36
-rw-r--r--community/prelink/arch-x86_64-dynamic_linker.patch12
-rw-r--r--community/prelink/prelink.conf24
-rw-r--r--community/preload/PKGBUILD38
-rw-r--r--community/preload/preload.install30
-rw-r--r--community/preload/rc.preload97
-rw-r--r--community/privoxy/PKGBUILD64
-rwxr-xr-xcommunity/privoxy/privoxy47
-rw-r--r--community/privoxy/privoxy.conf.d10
-rw-r--r--community/privoxy/privoxy.install19
-rw-r--r--community/privoxy/privoxy.logrotate.d8
-rw-r--r--community/procstatd/PKGBUILD25
-rw-r--r--community/proj/ChangeLog2
-rw-r--r--community/proj/PKGBUILD33
-rw-r--r--community/projectm/PKGBUILD32
-rw-r--r--community/prosody/ChangeLog398
-rw-r--r--community/prosody/PKGBUILD50
-rw-r--r--community/prosody/fix-config.patch30
-rw-r--r--community/prosody/prosody.install41
-rw-r--r--community/prosody/prosody.logrotated9
-rw-r--r--community/prosody/prosody.rcd93
-rw-r--r--community/protobuf/PKGBUILD27
-rw-r--r--community/proxytunnel/PKGBUILD21
-rw-r--r--community/psimedia/PKGBUILD21
-rw-r--r--community/pspshrink/PKGBUILD22
-rw-r--r--community/pspshrink/pspshrink.install19
-rw-r--r--community/psqlodbc/PKGBUILD33
-rw-r--r--community/psqlodbc/fix-function-declarations.patch47
-rw-r--r--community/pstreams/PKGBUILD18
-rw-r--r--community/puzzles/PKGBUILD35
-rw-r--r--community/pv/PKGBUILD21
-rw-r--r--community/pwmanager/ChangeLog5
-rw-r--r--community/pwmanager/PKGBUILD32
-rw-r--r--community/pwmanager/build-fix.patch57
-rw-r--r--community/pwsafe/PKGBUILD22
-rw-r--r--community/pyglet/PKGBUILD26
-rw-r--r--community/pygoocanvas/PKGBUILD23
-rw-r--r--community/pyid3lib/PKGBUILD24
-rw-r--r--community/pyid3lib/pyid3lib-0.5.1-py25.patch57
-rw-r--r--community/pylibacl/PKGBUILD19
-rw-r--r--community/pylorcon/PKGBUILD18
-rw-r--r--community/pympd/ChangeLog2
-rw-r--r--community/pympd/PKGBUILD33
-rw-r--r--community/pyogg/PKGBUILD25
-rw-r--r--community/pypanel/PKGBUILD20
-rw-r--r--community/pyqt3/PKGBUILD32
-rw-r--r--community/pysol-sound-server/PKGBUILD25
-rw-r--r--community/pystatgrab/PKGBUILD21
-rw-r--r--community/pystatgrab/pystatgrab.changelog5
-rw-r--r--community/python-bsddb/LICENSE19
-rw-r--r--community/python-bsddb/PKGBUILD29
-rwxr-xr-xcommunity/python-cheetah/PKGBUILD32
-rw-r--r--community/python-cjson/PKGBUILD19
-rw-r--r--community/python-daap/PKGBUILD17
-rw-r--r--community/python-fuse/PKGBUILD21
-rw-r--r--community/python-galago-gtk/PKGBUILD20
-rw-r--r--community/python-galago/PKGBUILD22
-rw-r--r--community/python-gnupginterface/PKGBUILD18
-rw-r--r--community/python-gnutls/PKGBUILD20
-rw-r--r--community/python-html5lib/LICENSE17
-rw-r--r--community/python-html5lib/PKGBUILD27
-rw-r--r--community/python-lcms/PKGBUILD39
-rw-r--r--community/python-memcached/LICENSE61
-rw-r--r--community/python-memcached/PKGBUILD25
-rw-r--r--community/python-mpi4py/PKGBUILD43
-rw-r--r--community/python-numarray/LICENSE9
-rw-r--r--community/python-numarray/PKGBUILD30
-rw-r--r--community/python-openbabel/PKGBUILD37
-rw-r--r--community/python-pexpect/PKGBUILD21
-rwxr-xr-xcommunity/python-psycopg1/PKGBUILD29
-rw-r--r--community/python-psycopg2/ChangeLog25
-rw-r--r--community/python-psycopg2/PKGBUILD36
-rw-r--r--community/python-pybluez/PKGBUILD23
-rw-r--r--community/python-pychm/PKGBUILD20
-rw-r--r--community/python-pycurl/PKGBUILD22
-rw-r--r--community/python-pymongo/PKGBUILD20
-rw-r--r--community/python-pyro/ChangeLog16
-rwxr-xr-xcommunity/python-pyro/PKGBUILD25
-rw-r--r--community/python-pysfml/PKGBUILD39
-rw-r--r--community/python-pysqlite-legacy/PKGBUILD24
-rw-r--r--community/python-pyxmpp/PKGBUILD20
-rw-r--r--community/python-scipy/0001-FIX-define-macro-to-access-C99-extensions-from-C.patch43
-rw-r--r--community/python-scipy/ChangeLog29
-rwxr-xr-xcommunity/python-scipy/PKGBUILD40
-rw-r--r--community/python-sympy/PKGBUILD27
-rw-r--r--community/python-sympy/test.patch11
-rw-r--r--community/python-vorbissimple/PKGBUILD21
-rw-r--r--community/python-yaml/PKGBUILD36
-rw-r--r--community/python-yaml/python-yaml.install7
-rw-r--r--community/python2-basemap/PKGBUILD47
-rw-r--r--community/python2-ldap/PKGBUILD24
-rw-r--r--community/python2-ldap/setup.cfg.patch37
-rw-r--r--community/python2-matplotlib/PKGBUILD52
-rw-r--r--community/python2-matplotlib/setup.cfg83
-rw-r--r--community/python2-openbabel/PKGBUILD23
-rw-r--r--community/python2-poppler/PKGBUILD40
-rw-r--r--community/python2-poppler/pypoppler-0.12.1-poppler-0.16.0.patch11
-rw-r--r--community/python2-pyopencl/LICENSE.txt20
-rw-r--r--community/python2-pyopencl/PKGBUILD36
-rw-r--r--community/pyvorbis/PKGBUILD30
-rw-r--r--community/pyvorbis/pyogg-ticket2-fix.patch27
-rw-r--r--community/pyvorbis/pyvorbis-1.4-python2.5.patch60
-rw-r--r--community/pyxattr/PKGBUILD19
-rw-r--r--community/qbittorrent/PKGBUILD42
-rw-r--r--community/qbittorrent/python2.patch33
-rw-r--r--community/qbittorrent/qbittorrent.install11
-rw-r--r--community/qc-usb-messenger/PKGBUILD35
-rw-r--r--community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.33.patch251
-rw-r--r--community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.36.patch12
-rw-r--r--community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.37.patch21
-rw-r--r--community/qc-usb-messenger/qc-usb-messenger.install35
-rw-r--r--community/qcad/PKGBUILD57
-rw-r--r--community/qcad/QCad.desktop9
-rw-r--r--community/qcad/qcad-intptr.patch24
-rw-r--r--community/qcad/qcad.patch52
-rw-r--r--community/qcad/qcad.xpm132
-rw-r--r--community/qdevelop/PKGBUILD40
-rw-r--r--community/qdevelop/qdevelop.desktop12
-rw-r--r--community/qemu-launcher/PKGBUILD21
-rw-r--r--community/qemu-launcher/qemu-launcher.install11
-rw-r--r--community/qgis/PKGBUILD60
-rw-r--r--community/qgis/qgis.desktop10
-rw-r--r--community/qgis/ticket_3378.diff38
-rw-r--r--community/qgit/PKGBUILD32
-rw-r--r--community/qgit/qgit.desktop11
-rw-r--r--community/qgit/qgit.pngbin0 -> 164 bytes
-rw-r--r--community/qgo/PKGBUILD25
-rw-r--r--community/qgo/qgo-gcc43-iostream.patch28
-rw-r--r--community/qingy/PKGBUILD48
-rw-r--r--community/qingy/README77
-rw-r--r--community/qingy/qingy.install21
-rw-r--r--community/qingy/qingy.logrotate9
-rw-r--r--community/qlandkartegt/PKGBUILD40
-rw-r--r--community/qlandkartegt/qlandkartegt-mimetypes.xml7
-rw-r--r--community/qlandkartegt/qlandkartegt.changelog9
-rw-r--r--community/qlandkartegt/qlandkartegt.install7
-rw-r--r--community/qmc2/PKGBUILD24
-rw-r--r--community/qmmp/PKGBUILD35
-rw-r--r--community/qmmp/qmmp.changelog41
-rw-r--r--community/qmmp/qmmp.install11
-rw-r--r--community/qmpdclient/PKGBUILD34
-rw-r--r--community/qmpdclient/qmpdclient.changelog5
-rw-r--r--community/qmpdclient/qmpdclient.install11
-rw-r--r--community/qoauth/PKGBUILD30
-rw-r--r--community/qps/PKGBUILD26
-rw-r--r--community/qpxtool/PKGBUILD26
-rw-r--r--community/qrencode/PKGBUILD31
-rw-r--r--community/qrencode/libpng14.diff65
-rw-r--r--community/qscintilla-qt3/PKGBUILD38
-rw-r--r--community/qstardict/ChangeLog8
-rwxr-xr-xcommunity/qstardict/PKGBUILD33
-rw-r--r--community/qstardict/gcc4.4.patch11
-rw-r--r--community/qsvn/ChangeLog27
-rw-r--r--community/qsvn/PKGBUILD30
-rw-r--r--community/qsvn/lib64-fix.patch12
-rw-r--r--community/qt-recordmydesktop/PKGBUILD34
-rw-r--r--community/qtcreator/PKGBUILD91
-rw-r--r--community/qtcreator/qtcreator.desktop10
-rw-r--r--community/qtemu/PKGBUILD24
-rw-r--r--community/qtfm/PKGBUILD27
-rwxr-xr-xcommunity/qtoctave/PKGBUILD30
-rw-r--r--community/qtoctave/qtoctave-gcc44.patch10
-rw-r--r--community/qtoctave/qtoctave.install14
-rw-r--r--community/qtractor/PKGBUILD33
-rw-r--r--community/qtractor/qtractor.changelog43
-rw-r--r--community/quassel/PKGBUILD45
-rw-r--r--community/quassel/quassel.conf2
-rw-r--r--community/quassel/quassel.install26
-rw-r--r--community/quassel/rc.quassel41
-rw-r--r--community/qucs/ChangeLog3
-rw-r--r--community/qucs/PKGBUILD31
-rw-r--r--community/qucs/qucs-gcc-4.5.1.patch410
-rw-r--r--community/quesoglc/PKGBUILD28
-rw-r--r--community/quvi/PKGBUILD27
-rw-r--r--community/radeontool/PKGBUILD29
-rw-r--r--community/radeontool/license.txt22
-rw-r--r--community/radvd/PKGBUILD30
-rw-r--r--community/radvd/radvd.install28
-rw-r--r--community/radvd/radvd.rc.d38
-rw-r--r--community/rapidsvn/PKGBUILD35
-rw-r--r--community/rapidsvn/rapidsvn.desktop10
-rw-r--r--community/raul/PKGBUILD32
-rw-r--r--community/raul/raul.install11
-rw-r--r--community/raw-thumbnailer/PKGBUILD27
-rw-r--r--community/rawstudio/PKGBUILD30
-rw-r--r--community/rawstudio/rawstudio-const.patch12
-rw-r--r--community/rawstudio/rawstudio.install11
-rw-r--r--community/rawtherapee/PKGBUILD62
-rw-r--r--community/rawtherapee/rawtherapee.desktop11
-rw-r--r--community/rawtherapee/rawtherapee.install24
-rw-r--r--community/rawtherapee/rawtherapee.pngbin0 -> 3639 bytes
-rw-r--r--community/rdiff-backup/ChangeLog5
-rw-r--r--community/rdiff-backup/PKGBUILD23
-rw-r--r--community/recoll/PKGBUILD50
-rw-r--r--community/recoll/recoll.install11
-rw-r--r--community/recordmydesktop/PKGBUILD29
-rw-r--r--community/recordmydesktop/recordmydesktop-bitrate.patch50
-rw-r--r--community/recordmydesktop/shmstr-to-shmproto.patch20
-rw-r--r--community/recoverdm/ChangeLog3
-rw-r--r--community/recoverdm/PKGBUILD21
-rw-r--r--community/redis/PKGBUILD35
-rw-r--r--community/redis/redis.d53
-rw-r--r--community/redis/redis.logrotate5
-rw-r--r--community/redshift/PKGBUILD33
-rw-r--r--community/redshift/redshift.install11
-rw-r--r--community/rekonq/PKGBUILD31
-rw-r--r--community/rekonq/rekonq.install11
-rw-r--r--community/remind/ChangeLog3
-rw-r--r--community/remind/PKGBUILD30
-rw-r--r--community/remmina-plugins/PKGBUILD29
-rw-r--r--community/remmina-plugins/remmina-plugins.install11
-rw-r--r--community/remmina/PKGBUILD27
-rw-r--r--community/remmina/remmina.install11
-rw-r--r--community/rep-gtk/PKGBUILD26
-rw-r--r--community/rexima/ChangeLog2
-rw-r--r--community/rexima/PKGBUILD21
-rw-r--r--community/ripperx/PKGBUILD21
-rw-r--r--community/rlog/ChangeLog3
-rw-r--r--community/rlog/PKGBUILD25
-rw-r--r--community/rlog/rlog-section.patch74
-rw-r--r--community/rlwrap/ChangeLog5
-rw-r--r--community/rlwrap/PKGBUILD23
-rw-r--r--community/rocksndiamonds/PKGBUILD30
-rw-r--r--community/root/PKGBUILD79
-rw-r--r--community/root/root.desktop12
-rw-r--r--community/root/root.install17
-rw-r--r--community/root/root.sh5
-rw-r--r--community/root/root.xml11
-rwxr-xr-xcommunity/root/rootd37
-rw-r--r--community/rote/PKGBUILD24
-rw-r--r--community/roxterm/PKGBUILD30
-rw-r--r--community/roxterm/roxterm.install11
-rw-r--r--community/rpc2/PKGBUILD22
-rw-r--r--community/rsnapshot/ChangeLog3
-rw-r--r--community/rsnapshot/PKGBUILD23
-rw-r--r--community/rsnapshot/rsnapshot4
-rw-r--r--community/rss-glx/PKGBUILD47
-rw-r--r--community/rss-glx/rss-glx-desktops.tar.bz2bin0 -> 2204 bytes
-rw-r--r--community/rss-glx/rss-glx.install13
-rw-r--r--community/rsyslog/PKGBUILD52
-rwxr-xr-xcommunity/rsyslog/rsyslog39
-rw-r--r--community/rsyslog/rsyslog.conf.d6
-rw-r--r--community/rsyslog/rsyslog.logrotate7
-rw-r--r--community/rtorrent/PKGBUILD32
-rw-r--r--community/rtorrent/ncurses58.patch10
-rw-r--r--community/ruby-atk/PKGBUILD26
-rw-r--r--community/ruby-cairo/PKGBUILD24
-rw-r--r--community/ruby-gdkpixbuf2/PKGBUILD27
-rw-r--r--community/ruby-gio2/PKGBUILD24
-rw-r--r--community/ruby-glib2/PKGBUILD26
-rw-r--r--community/ruby-gtk2/PKGBUILD32
-rw-r--r--community/ruby-gtk2/mkmf-gnome2.patch19
-rw-r--r--community/ruby-pango/PKGBUILD31
-rw-r--r--community/ruby-pango/mkmf-gnome2.patch19
-rw-r--r--community/rusxmms/PKGBUILD58
-rw-r--r--community/rutilt/PKGBUILD23
-rw-r--r--community/rutilt/rutilt.install24
-rw-r--r--community/sage-mathematics/PKGBUILD92
-rw-r--r--community/sage-mathematics/SAGE-notebook.desktop20
-rw-r--r--community/sage-mathematics/sage-mathematics.install47
-rw-r--r--community/sakura/PKGBUILD38
-rw-r--r--community/sakura/sakura.install12
-rw-r--r--community/sarg/PKGBUILD40
-rw-r--r--community/sauerbraten/PKGBUILD82
-rw-r--r--community/sauerbraten/license.txt34
-rwxr-xr-xcommunity/sauerbraten/sauerbraten-client14
-rwxr-xr-xcommunity/sauerbraten/sauerbraten-server22
-rw-r--r--community/sauerbraten/sauerbraten.confd7
-rw-r--r--community/sauerbraten/sauerbraten.desktop13
-rw-r--r--community/sauerbraten/sauerbraten.install22
-rw-r--r--community/sauerbraten/sauerbraten.pngbin0 -> 9313 bytes
-rw-r--r--community/sauerbraten/sauerbraten.rcd37
-rw-r--r--community/sawfish/PKGBUILD29
-rw-r--r--community/sawfish/sawfish.install18
-rw-r--r--community/scantailor/PKGBUILD22
-rw-r--r--community/schroot/PKGBUILD65
-rw-r--r--community/schroot/copyfiles-arch328
-rw-r--r--community/schroot/mount-arch3212
-rw-r--r--community/schroot/script-arch3215
-rw-r--r--community/scilab/PKGBUILD82
-rw-r--r--community/scilab/classpath.xml173
-rw-r--r--community/scilab/java.patch217
-rw-r--r--community/scilab/scilab.desktop9
-rw-r--r--community/scite/PKGBUILD48
-rw-r--r--community/scite/SciTE.desktop18
-rw-r--r--community/scite/makefile.patch31
-rw-r--r--community/scite/scite.install11
-rw-r--r--community/scorched3d/PKGBUILD61
-rw-r--r--community/scorched3d/libpng14.patch38
-rw-r--r--community/scorched3d/scorched3d-42.1-fixups.patch58
-rw-r--r--community/scorched3d/scorched3d-42.1-gcc43.patch24
-rw-r--r--community/scorched3d/scorched3d.desktop17
-rw-r--r--community/scorched3d/scorched3d.install11
-rw-r--r--community/scorched3d/scorched3d.png.uu105
-rw-r--r--community/scponly/PKGBUILD35
-rwxr-xr-xcommunity/scponly/setup_chroot.sh270
-rw-r--r--community/scummvm-tools/PKGBUILD34
-rw-r--r--community/sdcc/PKGBUILD25
-rw-r--r--community/sdd/PKGBUILD33
-rw-r--r--community/sdd/build-fix.patch78
-rw-r--r--community/sensors-applet/FS9379.patch54
-rw-r--r--community/sensors-applet/PKGBUILD35
-rw-r--r--community/sensors-applet/sensors-applet-2.2.7-libnotify-0.7.patch57
-rw-r--r--community/sensors-applet/sensors-applet.install11
-rw-r--r--community/ser2net/PKGBUILD26
-rw-r--r--community/ser2net/ser2net.init54
-rw-r--r--community/sfml/PKGBUILD96
-rw-r--r--community/sfml/sfml.install3
-rw-r--r--community/sfml/use-system-libs.patch70
-rw-r--r--community/shake/PKGBUILD31
-rw-r--r--community/shake/shake.install8
-rw-r--r--community/shapelib/LICENSE21
-rw-r--r--community/shapelib/PKGBUILD27
-rw-r--r--community/shell-fm/PKGBUILD30
-rw-r--r--community/shfs-utils/PKGBUILD30
-rw-r--r--community/shfs-utils/shfs-utils-make.patch5
-rw-r--r--community/shntool/PKGBUILD27
-rw-r--r--community/shotwell/PKGBUILD33
-rw-r--r--community/shotwell/shotwell.install24
-rw-r--r--community/shp2svg/PKGBUILD20
-rw-r--r--community/shuffle/ChangeLog3
-rw-r--r--community/shuffle/LICENSE88
-rw-r--r--community/shuffle/PKGBUILD22
-rw-r--r--community/siege/PKGBUILD32
-rw-r--r--community/sigil/PKGBUILD48
-rwxr-xr-xcommunity/sigil/sigil.desktop10
-rw-r--r--community/sigil/sigil.install12
-rw-r--r--community/silly/PKGBUILD24
-rw-r--r--community/simgear/PKGBUILD24
-rw-r--r--community/simh/LICENSE24
-rw-r--r--community/simh/PKGBUILD36
-rw-r--r--community/simh/simh.install23
-rw-r--r--community/simple-scan/PKGBUILD32
-rw-r--r--community/simple-scan/simple-scan.install24
-rw-r--r--community/sisctrl/PKGBUILD43
-rw-r--r--community/sk1/PKGBUILD46
-rw-r--r--community/sk1/build-fix.patch14
-rw-r--r--community/sk1/sk1.desktop59
-rw-r--r--community/sk1libs/PKGBUILD24
-rw-r--r--community/skrooge/PKGBUILD34
-rw-r--r--community/skrooge/skrooge.install14
-rw-r--r--community/skype-call-recorder/PKGBUILD26
-rw-r--r--community/skype-call-recorder/skype-call-recorder.install13
-rw-r--r--community/sleuthkit/PKGBUILD32
-rw-r--r--community/slimevolley/PKGBUILD28
-rw-r--r--community/sloccount/PKGBUILD23
-rw-r--r--community/slock/PKGBUILD29
-rw-r--r--community/slrn/PKGBUILD34
-rw-r--r--community/smalltalk/PKGBUILD38
-rw-r--r--community/smbnetfs/PKGBUILD42
-rw-r--r--community/smbnetfs/conf-smbnetfs1
-rw-r--r--community/smbnetfs/rc-smbnetfs52
-rw-r--r--community/smbnetfs/smbnetfs.install24
-rw-r--r--community/smc/PKGBUILD45
-rw-r--r--community/smc/smc-for-cegui-v0-7.diff437
-rw-r--r--community/smc/smc.desktop9
-rw-r--r--community/smc/smc.pngbin0 -> 2961 bytes
-rw-r--r--community/smem/PKGBUILD32
-rw-r--r--community/sniffit/PKGBUILD35
-rw-r--r--community/sniffit/sniffit-fix.patch937
-rw-r--r--community/snort/PKGBUILD53
-rw-r--r--community/snort/snort41
-rw-r--r--community/snort/snort.conf.d21
-rw-r--r--community/snort/snort.install26
-rw-r--r--community/snownews/PKGBUILD22
-rw-r--r--community/soil/PKGBUILD28
-rw-r--r--community/solfege/PKGBUILD47
-rw-r--r--community/solfege/solfege.changelog100
-rw-r--r--community/solfege/solfege.desktop7
-rw-r--r--community/solfege/solfege.install10
-rw-r--r--community/soqt/PKGBUILD39
-rw-r--r--community/soundkonverter/PKGBUILD41
-rw-r--r--community/soundkonverter/soundkonverter.install12
-rw-r--r--community/spawn-fcgi/PKGBUILD29
-rw-r--r--community/speed-dreams/PKGBUILD43
-rw-r--r--community/speed-dreams/speed-dreams.desktop9
-rw-r--r--community/speed-dreams/speed-dreams.sh3
-rw-r--r--community/spidermonkey/PKGBUILD36
-rw-r--r--community/spidermonkey/spidermonkey-1.7-threadsafe.patch16
-rw-r--r--community/spidermonkey/spidermonkey-Makefile.patch22
-rw-r--r--community/splint/PKGBUILD25
-rw-r--r--community/splint/splint.sh2
-rw-r--r--community/splix/PKGBUILD34
-rw-r--r--community/splix/splix.install19
-rw-r--r--community/spring/PKGBUILD42
-rw-r--r--community/springlobby/PKGBUILD48
-rw-r--r--community/springlobby/springlobby.desktop10
-rw-r--r--community/springlobby/springlobby.pngbin0 -> 5819 bytes
-rw-r--r--community/sqlite2/LICENSE33
-rw-r--r--community/sqlite2/PKGBUILD33
-rw-r--r--community/sqlitebrowser/PKGBUILD31
-rw-r--r--community/sqliteman/PKGBUILD28
-rw-r--r--community/squashfs-tools/PKGBUILD29
-rw-r--r--community/sshguard/ChangeLog3
-rw-r--r--community/sshguard/PKGBUILD27
-rw-r--r--community/sshguard/sshguard.install8
-rwxr-xr-xcommunity/sshguard/sshguard.rc26
-rw-r--r--community/stalonetray/PKGBUILD21
-rw-r--r--community/steghide/ChangeLog4
-rw-r--r--community/steghide/PKGBUILD31
-rw-r--r--community/steghide/buildsystem.patch10
-rw-r--r--community/steghide/gcc-4.2.patch75
-rw-r--r--community/steghide/steghide-climits.patch11
-rw-r--r--community/stfl/PKGBUILD34
-rw-r--r--community/stfl/stfl-archlinux.patch24
-rw-r--r--community/stfl/stfl.changelog23
-rw-r--r--community/stk/PKGBUILD85
-rw-r--r--community/stk/cxxflags.patch25
-rw-r--r--community/stk/runtime.patch18
-rw-r--r--community/stone-soup/PKGBUILD61
-rw-r--r--community/stone-soup/stone-soup.desktop11
-rw-r--r--community/stone-soup/stone-soup.install12
-rw-r--r--community/stormbaancoureur/PKGBUILD28
-rw-r--r--community/stormbaancoureur/stormbaancoureur.desktop9
-rw-r--r--community/stress/PKGBUILD25
-rw-r--r--community/stunnel/Makefile.patch21
-rw-r--r--community/stunnel/PKGBUILD47
-rw-r--r--community/stunnel/stunnel.install35
-rw-r--r--community/stunnel/stunnel.rc.d36
-rw-r--r--community/subtitleeditor/PKGBUILD28
-rw-r--r--community/subtitleeditor/subtitleeditor.changelog51
-rw-r--r--community/subtitleeditor/subtitleeditor.install11
-rw-r--r--community/subtle/PKGBUILD23
-rw-r--r--community/subtle/subtle.install3
-rw-r--r--community/sunpinyin/PKGBUILD28
-rw-r--r--community/superswitcher/PKGBUILD42
-rw-r--r--community/supertux/PKGBUILD27
-rw-r--r--community/supertux/compile.patch67
-rw-r--r--community/supertux/gcc44.patch90
-rw-r--r--community/supertuxkart/PKGBUILD47
-rw-r--r--community/surf/PKGBUILD41
-rw-r--r--community/surf/config.h40
-rw-r--r--community/surf/surf.install28
-rw-r--r--community/swarp/PKGBUILD28
-rw-r--r--community/swarp/config.mk13
-rw-r--r--community/swftools/PKGBUILD34
-rw-r--r--community/swftools/swftools.changelog9
-rw-r--r--community/swi-prolog/PKGBUILD42
-rw-r--r--community/sword/PKGBUILD26
-rw-r--r--community/sword/curl_7.20.patch12
-rw-r--r--community/synbak/PKGBUILD30
-rw-r--r--community/synbak/synbak.changelog9
-rw-r--r--community/synce-libmimedir/PKGBUILD25
-rw-r--r--community/synce-librapi/PKGBUILD22
-rw-r--r--community/synce-libsynce/PKGBUILD21
-rw-r--r--community/synce-odccm/PKGBUILD32
-rw-r--r--community/synce-odccm/dbus-error-fix.patch44
-rwxr-xr-xcommunity/synce-odccm/synce-odccm.rc37
-rw-r--r--community/synce-rra/PKGBUILD26
-rw-r--r--community/synce-rra/build-fix.diff51
-rw-r--r--community/synce-serial/PKGBUILD24
-rw-r--r--community/synce-vdccm/PKGBUILD26
-rw-r--r--community/synergy/PKGBUILD40
-rw-r--r--community/synergy/synergys.rc38
-rw-r--r--community/synfig/PKGBUILD28
-rw-r--r--community/synfig/build-fix.patch74
-rw-r--r--community/synfigstudio/PKGBUILD32
-rw-r--r--community/synfigstudio/images-makefile.patch49
-rw-r--r--community/synfigstudio/synfigstudio.install12
-rw-r--r--community/sysprof/PKGBUILD28
-rw-r--r--community/sysprof/sysprof.install12
-rw-r--r--community/sysstat/PKGBUILD38
-rw-r--r--community/sysstat/sysstat21
-rw-r--r--community/system-tools-backends/PKGBUILD37
-rw-r--r--community/system-tools-backends/system-tools-backends.install12
-rw-r--r--community/systemd/PKGBUILD65
-rw-r--r--community/systemd/os-release4
-rw-r--r--community/systemd/systemd.install50
-rw-r--r--community/t1utils/LICENSE22
-rw-r--r--community/t1utils/PKGBUILD25
-rw-r--r--community/tabbed/PKGBUILD36
-rw-r--r--community/tabbed/config.h30
-rw-r--r--community/tabbed/tabbed.install28
-rw-r--r--community/taglib-rcc/PKGBUILD38
-rw-r--r--community/tagpy/PKGBUILD37
-rw-r--r--community/tagtool/PKGBUILD32
-rw-r--r--community/tagtool/tagtool.install22
-rw-r--r--community/task/PKGBUILD40
-rw-r--r--community/tasks/PKGBUILD31
-rw-r--r--community/tasks/tasks.install11
-rw-r--r--community/tcpflow/PKGBUILD21
-rw-r--r--community/tcsh/PKGBUILD44
-rw-r--r--community/tcsh/csh.cshrc96
-rw-r--r--community/tcsh/csh.login71
-rw-r--r--community/tcsh/tcsh-6.17.00-ls-colors-var.patch13
-rw-r--r--community/tcsh/tcsh.install25
-rw-r--r--community/tdfsb/PKGBUILD28
-rwxr-xr-xcommunity/tdfsb/tdfsb.desktop9
-rw-r--r--community/tdfsb/tdfsb.pngbin0 -> 3556 bytes
-rw-r--r--community/tdl/ChangeLog3
-rw-r--r--community/tdl/PKGBUILD21
-rw-r--r--community/tea/PKGBUILD37
-rw-r--r--community/tea/tea.desktop10
-rw-r--r--community/tea/tea.install4
-rw-r--r--community/ted/PKGBUILD31
-rw-r--r--community/teeworlds/PKGBUILD65
-rw-r--r--community/teeworlds/fix_datadir_search.patch36
-rw-r--r--community/teeworlds/teeworlds.desktop14
-rw-r--r--community/teeworlds/teeworlds.pngbin0 -> 1701 bytes
-rw-r--r--community/tellico/PKGBUILD39
-rw-r--r--community/tellico/tellico.install14
-rw-r--r--community/terminator/PKGBUILD40
-rw-r--r--community/terminator/terminator.install12
-rw-r--r--community/tesseract/PKGBUILD90
-rw-r--r--community/texmaker/PKGBUILD34
-rw-r--r--community/texvc/PKGBUILD22
-rw-r--r--community/thoggen/ChangeLog6
-rw-r--r--community/thoggen/PKGBUILD22
-rwxr-xr-xcommunity/thunar-thumbnailers/PKGBUILD33
-rw-r--r--community/thunar-thumbnailers/thunar-thumbnailers.install16
-rw-r--r--community/tig/PKGBUILD27
-rw-r--r--community/tilda/ChangeLog12
-rw-r--r--community/tilda/PKGBUILD25
-rw-r--r--community/tilda/fix.patch12
-rw-r--r--community/tint2/PKGBUILD40
-rw-r--r--community/tint2/add-power-now-support.patch19
-rw-r--r--community/tinycdb/PKGBUILD28
-rw-r--r--community/tinyproxy/PKGBUILD36
-rwxr-xr-xcommunity/tinyproxy/tinyproxy54
-rw-r--r--community/tipp10/PKGBUILD40
-rw-r--r--community/tipp10/defines.h.patch14
-rw-r--r--community/tipp10/gcc-4.5.patch99
-rw-r--r--community/tix/PKGBUILD46
-rw-r--r--community/tix/tcl-tk-path.patch22
-rw-r--r--community/tksystray/PKGBUILD23
-rw-r--r--community/tktheme/PKGBUILD24
-rw-r--r--community/tls/PKGBUILD25
-rw-r--r--community/tls/tls.patch28
-rw-r--r--community/tmux/LICENSE13
-rw-r--r--community/tmux/PKGBUILD31
-rw-r--r--community/tmw/PKGBUILD23
-rw-r--r--community/tnef/PKGBUILD21
-rw-r--r--community/tnftp/PKGBUILD24
-rw-r--r--community/toolame/PKGBUILD25
-rw-r--r--community/toolame/toolame-02l.patch86
-rw-r--r--community/tor/PKGBUILD48
-rw-r--r--community/tor/tor44
-rw-r--r--community/tor/tor.conf.d9
-rw-r--r--community/tor/tor.install24
-rw-r--r--community/tor/torrc143
-rw-r--r--community/tora/PKGBUILD24
-rw-r--r--community/tora/tora.install20
-rw-r--r--community/torch/PKGBUILD33
-rw-r--r--community/torcs/PKGBUILD40
-rw-r--r--community/torcs/torcs-gcc.patch74
-rw-r--r--community/torcs/torcs.desktop9
-rw-r--r--community/torcs/torcs.sh2
-rw-r--r--community/tracker/PKGBUILD50
-rw-r--r--community/tracker/tracker.install11
-rw-r--r--community/transset-df/PKGBUILD25
-rw-r--r--community/trayion/PKGBUILD18
-rw-r--r--community/trayion/trayion.install19
-rw-r--r--community/tre/PKGBUILD28
-rw-r--r--community/tremulous/PKGBUILD69
-rw-r--r--community/tremulous/tremded.launcher10
-rw-r--r--community/tremulous/tremulous.desktop11
-rw-r--r--community/tremulous/tremulous.launcher10
-rw-r--r--community/tremulous/tremulous.xpm90
-rw-r--r--community/trickle/PKGBUILD22
-rw-r--r--community/tripwire/ChangeLog5
-rw-r--r--community/tripwire/PKGBUILD61
-rw-r--r--community/tripwire/tripwire.install9
-rw-r--r--community/tripwire/twcfg.txt15
-rw-r--r--community/tripwire/twpol.txt1093
-rw-r--r--community/tucan/PKGBUILD28
-rw-r--r--community/tuxcards/ChangeLog15
-rw-r--r--community/tuxcards/PKGBUILD33
-rw-r--r--community/tuxcards/tuxcards.desktop10
-rw-r--r--community/tuxcmd-modules/PKGBUILD28
-rw-r--r--community/tuxcmd/PKGBUILD30
-rw-r--r--community/tuxcmd/tuxcmd.install12
-rw-r--r--community/tuxguitar/PKGBUILD111
-rw-r--r--community/tuxguitar/tuxguitar.desktop13
-rw-r--r--community/tuxguitar/tuxguitar.install12
-rw-r--r--community/tuxguitar/tuxguitar.xml18
-rw-r--r--community/tuxpaint/PKGBUILD38
-rw-r--r--community/tuxpaint/desktop.patch7
-rw-r--r--community/tvision/PKGBUILD27
-rw-r--r--community/tvision/tvision-build-fix.patch13
-rw-r--r--community/tvtime/PKGBUILD28
-rw-r--r--community/tvtime/tvtime-1.0.2+linux-headers-2.6.18.patch15
-rw-r--r--community/tvtime/tvtime-1.0.2-gcc41.patch57
-rw-r--r--community/tvtime/tvtime-1.0.2-locale_t.patchbin0 -> 887 bytes
-rw-r--r--community/twin/PKGBUILD25
-rw-r--r--community/twinkle/PKGBUILD33
-rw-r--r--community/twinkle/twinkle.desktop9
-rw-r--r--community/typespeed/PKGBUILD22
-rw-r--r--community/typespeed/typespeed.install16
-rw-r--r--community/ucl/PKGBUILD23
-rw-r--r--community/ude/PKGBUILD26
-rw-r--r--community/ude/ude.desktop8
-rw-r--r--community/udunits/PKGBUILD30
-rw-r--r--community/udunits/udunits.install26
-rw-r--r--community/ufoai/PKGBUILD42
-rw-r--r--community/ultimate-ircd/PKGBUILD55
-rw-r--r--community/ultimate-ircd/conf-fix.patch25
-rw-r--r--community/ultimate-ircd/ircd.install31
-rw-r--r--community/ultimate-ircd/ultimate-ircd54
-rw-r--r--community/uml_utilities/PKGBUILD26
-rw-r--r--community/unbound/PKGBUILD46
-rw-r--r--community/unbound/install18
-rw-r--r--community/unbound/rc.d33
-rw-r--r--community/unbound/unbound.conf4
-rw-r--r--community/unclutter/PKGBUILD25
-rw-r--r--community/uniconvertor/PKGBUILD25
-rw-r--r--community/unifdef/PKGBUILD24
-rw-r--r--community/units/PKGBUILD24
-rw-r--r--community/units/units.install18
-rw-r--r--community/unpaper/PKGBUILD21
-rw-r--r--community/unrealircd/PKGBUILD70
-rwxr-xr-xcommunity/unrealircd/unrealircd.rc61
-rw-r--r--community/unrtf/ChangeLog8
-rw-r--r--community/unrtf/PKGBUILD26
-rw-r--r--community/unshield/PKGBUILD27
-rw-r--r--community/unshield/libunshield.c.patch12
-rw-r--r--community/uptimed/PKGBUILD42
-rwxr-xr-xcommunity/uptimed/uptimed39
-rw-r--r--community/uptimed/uptimed.install7
-rw-r--r--community/upx/PKGBUILD33
-rw-r--r--community/uqm/PKGBUILD41
-rw-r--r--community/uqm/config.state13
-rw-r--r--community/uqm/uqm2
-rw-r--r--community/uriparser/PKGBUILD21
-rw-r--r--community/usb_modeswitch/PKGBUILD39
-rw-r--r--community/ushare/PKGBUILD48
-rw-r--r--community/ushare/upnp-build-fix.patch156
-rwxr-xr-xcommunity/ushare/ushare54
-rw-r--r--community/ushare/ushare-config.patch22
-rw-r--r--community/ussp-push/PKGBUILD27
-rw-r--r--community/ussp-push/ussp-push-remote-name.patch12
-rw-r--r--community/ustr/PKGBUILD22
-rw-r--r--community/uucp/PKGBUILD30
-rw-r--r--community/uudeview/PKGBUILD30
-rw-r--r--community/uzbl/PKGBUILD63
-rw-r--r--community/uzbl/uzbl.install17
-rw-r--r--community/vamps/PKGBUILD26
-rw-r--r--community/vdrift/PKGBUILD66
-rw-r--r--community/vdrift/vdrift.desktop11
-rw-r--r--community/vhba-module/PKGBUILD27
-rw-r--r--community/vhba-module/vhba-kernel2.6.37.patch56
-rw-r--r--community/vhba-module/vhba-module.install16
-rw-r--r--community/viewnior/PKGBUILD24
-rw-r--r--community/viewnior/viewnior.install13
-rw-r--r--community/vifm/ChangeLog2
-rw-r--r--community/vifm/PKGBUILD43
-rw-r--r--community/vifm/ncurses58.patch140
-rw-r--r--community/viking/PKGBUILD33
-rw-r--r--community/viking/viking.changelog6
-rw-r--r--community/viking/viking.install11
-rw-r--r--community/vile/PKGBUILD31
-rw-r--r--community/virtualbox/10-vboxdrv.rules5
-rw-r--r--community/virtualbox/60-vboxguest.rules2
-rw-r--r--community/virtualbox/LocalConfig.kmk17
-rw-r--r--community/virtualbox/PKGBUILD211
-rw-r--r--community/virtualbox/vboxdrv-reference.patch43
-rwxr-xr-xcommunity/virtualbox/vboxdrv.sh80
-rw-r--r--community/virtualbox/virtualbox-4-makeself-check.patch10
-rw-r--r--community/virtualbox/virtualbox-4-mkisofs-check.patch10
-rw-r--r--community/virtualbox/virtualbox-guest-modules.install24
-rw-r--r--community/virtualbox/virtualbox.install65
-rw-r--r--community/virtviewer/PKGBUILD22
-rw-r--r--community/visitors/PKGBUILD24
-rw-r--r--community/vlock/ChangeLog18
-rw-r--r--community/vlock/PKGBUILD23
-rw-r--r--community/vlock/vlock.install18
-rw-r--r--community/vmoviedb/PKGBUILD31
-rw-r--r--community/vmoviedb/vmoviedb.install23
-rw-r--r--community/vnstat/PKGBUILD33
-rw-r--r--community/vnstat/vnstat.install16
-rw-r--r--community/vobcopy/ChangeLog5
-rw-r--r--community/vobcopy/PKGBUILD27
-rw-r--r--community/vorbisgain/PKGBUILD22
-rw-r--r--community/vorbissimple/PKGBUILD22
-rw-r--r--community/vtk/PKGBUILD101
-rw-r--r--community/vuze/PKGBUILD29
-rw-r--r--community/vuze/vuze.desktop12
-rw-r--r--community/vym/PKGBUILD44
-rw-r--r--community/vym/vym.changelog8
-rw-r--r--community/vym/vym.desktop38
-rw-r--r--community/vyqchat/PKGBUILD29
-rw-r--r--community/vyqchat/build-fix.patch36
-rw-r--r--community/w3cam/PKGBUILD26
-rw-r--r--community/warmux/PKGBUILD30
-rw-r--r--community/warsow/PKGBUILD84
-rw-r--r--community/warsow/warsow.desktop11
-rw-r--r--community/warsow/warsow.launcher5
-rw-r--r--community/warsow/wsw-server.launcher5
-rw-r--r--community/warsow/wswtv-server.launcher5
-rw-r--r--community/warzone2100/PKGBUILD29
-rw-r--r--community/wavegain/ChangeLog19
-rw-r--r--community/wavegain/PKGBUILD27
-rw-r--r--community/wbar/ChangeLog3
-rw-r--r--community/wbar/PKGBUILD21
-rw-r--r--community/wdm/PKGBUILD29
-rw-r--r--community/webfs/PKGBUILD33
-rw-r--r--community/webfs/webfs.patch250
-rw-r--r--community/webfs/webfsd.conf5
-rw-r--r--community/webfs/webfsd.rc38
-rw-r--r--community/widelands/PKGBUILD51
-rw-r--r--community/widelands/widelands-build15-gcc-4.5-patch51
-rw-r--r--community/widelands/widelands.desktop8
-rw-r--r--community/widelands/widelands.pngbin0 -> 19494 bytes
-rw-r--r--community/widelands/widelands.sh3
-rw-r--r--community/wifi-radar/PKGBUILD33
-rw-r--r--community/wifi-radar/wifi-radar.install4
-rw-r--r--community/windowlab/PKGBUILD24
-rw-r--r--community/winefish/PKGBUILD30
-rw-r--r--community/winefish/winefish.install14
-rw-r--r--community/winegame/PKGBUILD33
-rw-r--r--community/winestuff/PKGBUILD34
-rw-r--r--community/wkhtmltopdf/PKGBUILD28
-rw-r--r--community/wmctrl/PKGBUILD32
-rw-r--r--community/wmii/PKGBUILD40
-rw-r--r--community/wmii/fix-freetype-include.patch11
-rw-r--r--community/wml/PKGBUILD36
-rw-r--r--community/wmname/PKGBUILD21
-rw-r--r--community/wol/PKGBUILD27
-rw-r--r--community/wol/wol.install20
-rw-r--r--community/workrave/PKGBUILD25
-rw-r--r--community/wput/PKGBUILD26
-rw-r--r--community/wtf/LICENSE10
-rw-r--r--community/wtf/PKGBUILD22
-rw-r--r--community/wxsvg/PKGBUILD38
-rw-r--r--community/wyrd/PKGBUILD27
-rw-r--r--community/xalan-c/1.11.0_pre797991-as-needed.patch108
-rw-r--r--community/xalan-c/1.11.0_pre797991-bugfixes.patch50
-rw-r--r--community/xalan-c/PKGBUILD33
-rw-r--r--community/xapian-core/PKGBUILD32
-rw-r--r--community/xautolock/PKGBUILD29
-rw-r--r--community/xboard/PKGBUILD33
-rw-r--r--community/xboard/xboard.desktop9
-rw-r--r--community/xboard/xboard.install15
-rw-r--r--community/xchat-systray-integration/PKGBUILD37
-rw-r--r--community/xchat-systray-integration/default-icons.patch37
-rw-r--r--community/xchat-systray-integration/segfault-fix.patch27
-rw-r--r--community/xcircuit/PKGBUILD28
-rw-r--r--community/xdebug/PKGBUILD45
-rw-r--r--community/xdebug/xdebug-5.2.ini5
-rw-r--r--community/xdebug/xdebug.ini5
-rw-r--r--community/xdebug/xdebug.install50
-rw-r--r--community/xdg-user-dirs/PKGBUILD24
-rw-r--r--community/xdialog/PKGBUILD37
-rw-r--r--community/xdialog/xdialog-2.3.1-gtk2.patch58
-rw-r--r--community/xdiskusage/PKGBUILD42
-rw-r--r--community/xdiskusage/stdin-is-null.patch31
-rw-r--r--community/xdotool/PKGBUILD26
-rw-r--r--community/xemacs/PKGBUILD79
-rw-r--r--community/xemacs/xemacs-21.5.29-large-images.patch96
-rw-r--r--community/xemacs/xemacs-21.5.29-optimization-bug.patch14
-rw-r--r--community/xemacs/xemacs-21.5.29-vcdiff.patch19
-rw-r--r--community/xemacs/xemacs.desktop34
-rw-r--r--community/xemacs/xemacs.install35
-rw-r--r--community/xerces-c/PKGBUILD24
-rw-r--r--community/xfe/PKGBUILD23
-rw-r--r--community/xfmedia/PKGBUILD38
-rw-r--r--community/xfmedia/xfmedia-dbus-0.6-support.patch14
-rw-r--r--community/xfmedia/xfmedia-empty-prev-next-fix.patch25
-rw-r--r--community/xfmedia/xfmedia-exo-0.6.patch196
-rw-r--r--community/xfmedia/xfmedia.install11
-rwxr-xr-xcommunity/xiphos/PKGBUILD29
-rw-r--r--community/xiphos/xiphos.install13
-rw-r--r--community/xkbsel/PKGBUILD31
-rw-r--r--community/xkbsel/build-fix.patch24
-rw-r--r--community/xkeycaps/PKGBUILD28
-rw-r--r--community/xkeycaps/license.txt54
-rw-r--r--community/xl2tpd/PKGBUILD43
-rw-r--r--community/xl2tpd/as-needed.patch12
-rw-r--r--community/xl2tpd/ipparam.patch36
-rw-r--r--community/xl2tpd/options.l2tpd24
-rw-r--r--community/xl2tpd/xl2tpd.conf.client-example19
-rw-r--r--community/xl2tpd/xl2tpd.conf.server-example21
-rwxr-xr-xcommunity/xl2tpd/xl2tpd.rc39
-rw-r--r--community/xloadimage/PKGBUILD39
-rw-r--r--community/xloadimage/enable-image-types.patch63
-rw-r--r--community/xloadimage/license.txt19
-rw-r--r--community/xlockmore/LICENSE18
-rw-r--r--community/xlockmore/PKGBUILD32
-rw-r--r--community/xmlrpc-c/PKGBUILD36
-rw-r--r--community/xmms-imms/PKGBUILD32
-rw-r--r--community/xmms-pulse/ChangeLog4
-rw-r--r--community/xmms-pulse/PKGBUILD28
-rw-r--r--community/xmms-volnorm/PKGBUILD31
-rw-r--r--community/xmms2/PKGBUILD81
-rw-r--r--community/xmms2/vorbis-albumart.patch200
-rw-r--r--community/xmms2/xmms2-helpers.patch13
-rw-r--r--community/xmms2/xmms2-ruby-1.9.patch59
-rw-r--r--community/xmms2/xmms2.install3
-rw-r--r--community/xmms2/xmms2d.conf31
-rwxr-xr-xcommunity/xmms2/xmms2d.rc36
-rw-r--r--community/xmmsctrl/PKGBUILD27
-rw-r--r--community/xmobar/PKGBUILD31
-rw-r--r--community/xmonad-contrib/PKGBUILD35
-rw-r--r--community/xmonad-contrib/xmonad-contrib.install17
-rw-r--r--community/xmonad-log-applet/PKGBUILD33
-rw-r--r--community/xmonad-log-applet/xmonad-log-applet.install3
-rw-r--r--community/xmonad/PKGBUILD46
-rw-r--r--community/xmonad/xmonad.desktop12
-rw-r--r--community/xmonad/xmonad.install22
-rw-r--r--community/xmonad/xmonad.pngbin0 -> 2735 bytes
-rw-r--r--community/xmonad/xmonad.svg77
-rw-r--r--community/xmoto/PKGBUILD42
-rw-r--r--community/xmoto/libpng-14.patch11
-rw-r--r--community/xmoto/xmoto.desktop13
-rw-r--r--community/xmoto/xmoto.install15
-rw-r--r--community/xmove/PKGBUILD37
-rw-r--r--community/xnc/PKGBUILD23
-rw-r--r--community/xnc/xnc-gcc44.patch56
-rw-r--r--community/xnee/ChangeLog2
-rw-r--r--community/xnee/PKGBUILD24
-rw-r--r--community/xonotic/PKGBUILD53
-rw-r--r--community/xonotic/xonotic-dedicated.sh3
-rw-r--r--community/xonotic/xonotic-glx.desktop11
-rw-r--r--community/xonotic/xonotic-glx.sh3
-rw-r--r--community/xonotic/xonotic-sdl.desktop11
-rw-r--r--community/xonotic/xonotic-sdl.sh3
-rw-r--r--community/xosd/PKGBUILD29
-rw-r--r--community/xpacman/PKGBUILD38
-rw-r--r--community/xpacman2/PKGBUILD29
-rw-r--r--community/xpacman2/build-fix.patch37
-rw-r--r--community/xpad/PKGBUILD26
-rw-r--r--community/xpad/xpad-gtk-2.20.patch98
-rw-r--r--community/xpad/xpad.install11
-rw-r--r--community/xplanet/PKGBUILD26
-rw-r--r--community/xrestop/ChangeLog4
-rw-r--r--community/xrestop/PKGBUILD27
-rw-r--r--community/xsel/PKGBUILD21
-rw-r--r--community/xsensors/PKGBUILD38
-rw-r--r--community/xsensors/fix-deprecated-GTK_WIDGET_STATE-call.diff39
-rw-r--r--community/xsensors/xsensors.changelog11
-rw-r--r--community/xsensors/xsensors.desktop9
-rw-r--r--community/xsettings-client/PKGBUILD22
-rw-r--r--community/xskat/PKGBUILD34
-rw-r--r--community/xskat/xskat.desktop12
-rw-r--r--community/xskat/xskat.pngbin0 -> 2696 bytes
-rw-r--r--community/xtmsplit/PKGBUILD26
-rw-r--r--community/xulrunner-oss/PKGBUILD68
-rw-r--r--community/xulrunner-oss/mozconfig56
-rw-r--r--community/xulrunner-oss/mozilla-pkgconfig.patch60
-rw-r--r--community/xulrunner-oss/oss.patch31
-rw-r--r--community/xulrunner-oss/port_gnomevfs_to_gio.patch1316
-rw-r--r--community/xulrunner-oss/xulrunner-omnijar.patch1737
-rw-r--r--community/xulrunner-oss/xulrunner-version.patch12
-rw-r--r--community/xvidcap/PKGBUILD37
-rw-r--r--community/xvidcap/xextproto-7.1.1.patch11
-rw-r--r--community/xvidcap/xvidcap-ffmpeg.patch105
-rw-r--r--community/xvkbd/PKGBUILD38
-rw-r--r--community/xwax/PKGBUILD38
-rw-r--r--community/xxkb/PKGBUILD40
-rw-r--r--community/xxkb/XXkb16
-rw-r--r--community/xxkb/en22.xpm105
-rw-r--r--community/xxkb/ru22.xpm31
-rw-r--r--community/xylib/PKGBUILD27
-rw-r--r--community/yacpi/ChangeLog3
-rw-r--r--community/yacpi/PKGBUILD21
-rw-r--r--community/yajl/PKGBUILD33
-rw-r--r--community/yaws/ChangeLog7
-rw-r--r--community/yaws/PKGBUILD38
-rw-r--r--community/yaws/yaws.profile1
-rw-r--r--community/yaz/PKGBUILD38
-rw-r--r--community/zathura/PKGBUILD31
-rw-r--r--community/zathura/zathura-poppler-0.16.patch13
-rw-r--r--community/zathura/zathura.desktop8
-rw-r--r--community/zathura/zathura.install13
-rw-r--r--community/zaz/PKGBUILD31
-rw-r--r--community/zeromq/PKGBUILD25
-rw-r--r--community/znc/PKGBUILD30
-rw-r--r--community/zziplib/PKGBUILD35
-rw-r--r--core/acl/PKGBUILD33
-rw-r--r--core/attr/PKGBUILD44
-rw-r--r--core/bash/PKGBUILD85
-rw-r--r--core/bash/bash.install20
-rw-r--r--core/bash/dot.bash_logout3
-rw-r--r--core/bash/dot.bash_profile5
-rw-r--r--core/bash/dot.bashrc9
-rw-r--r--core/bash/system.bash_logout3
-rw-r--r--core/bash/system.bashrc23
-rw-r--r--core/bin86/PKGBUILD27
-rw-r--r--core/bin86/bin86-0.16.17-x86_64-1.patch44
-rw-r--r--core/binutils/PKGBUILD84
-rw-r--r--core/binutils/binutils.git-39637246.patch700
-rw-r--r--core/binutils/binutils.install17
-rw-r--r--core/bison/ChangeLog19
-rw-r--r--core/bison/PKGBUILD28
-rw-r--r--core/bison/bison.install16
-rw-r--r--core/bridge-utils/PKGBUILD33
-rw-r--r--core/bridge-utils/bridges.conf.d27
-rw-r--r--core/btrfs-progs-unstable/PKGBUILD25
-rw-r--r--core/btrfs-progs-unstable/btrfs-progs-build-fixes.patch32
-rw-r--r--core/bzip2/PKGBUILD57
-rw-r--r--core/cloog-ppl/PKGBUILD31
-rw-r--r--core/coreutils/PKGBUILD65
-rw-r--r--core/coreutils/coreutils-pam.patch428
-rw-r--r--core/coreutils/coreutils-uname.patch173
-rw-r--r--core/coreutils/coreutils.install21
-rw-r--r--core/coreutils/su.pam9
-rw-r--r--core/cracklib/PKGBUILD29
-rw-r--r--core/crda/PKGBUILD33
-rw-r--r--core/crda/crda.install18
-rwxr-xr-xcore/crda/crda.rc26
-rw-r--r--core/cryptsetup/PKGBUILD36
-rw-r--r--core/cryptsetup/encrypt_hook131
-rw-r--r--core/cryptsetup/encrypt_install26
-rw-r--r--core/dash/PKGBUILD28
-rw-r--r--core/db/PKGBUILD32
-rw-r--r--core/db/db.install5
-rw-r--r--core/dbus-core/PKGBUILD54
-rw-r--r--core/dbus-core/dbus57
-rw-r--r--core/dbus-core/dbus.install24
-rw-r--r--core/dcron/PKGBUILD50
-rw-r--r--core/dcron/dcron-logname.patch25
-rw-r--r--core/dcron/dcron.conf.d4
-rw-r--r--core/dcron/dcron.install10
-rw-r--r--core/dcron/dcron.rc.d47
-rw-r--r--core/dhcpcd/PKGBUILD49
-rw-r--r--core/dhcpcd/dhcpcd.conf.d6
-rw-r--r--core/dialog/PKGBUILD27
-rw-r--r--core/diffutils/PKGBUILD27
-rw-r--r--core/diffutils/diffutils.install20
-rw-r--r--core/dmraid/PKGBUILD35
-rw-r--r--core/dmraid/dmraid.install14
-rw-r--r--core/dmraid/dmraid_hook18
-rw-r--r--core/dmraid/dmraid_install20
-rw-r--r--core/dnsutils/PKGBUILD38
-rw-r--r--core/dnsutils/tools-only.patch25
-rw-r--r--core/e2fsprogs/MIT-LICENSE25
-rw-r--r--core/e2fsprogs/PKGBUILD48
-rw-r--r--core/e2fsprogs/e2fsprogs.install20
-rw-r--r--core/e2fsprogs/mke2fs.conf26
-rw-r--r--core/ed/PKGBUILD32
-rw-r--r--core/ed/ed.install22
-rw-r--r--core/elfutils/PKGBUILD32
-rw-r--r--core/eventlog/ChangeLog10
-rw-r--r--core/eventlog/PKGBUILD29
-rw-r--r--core/expat/CVE-2009-3560.patch13
-rw-r--r--core/expat/CVE-2009-3720.patch12
-rw-r--r--core/expat/PKGBUILD33
-rw-r--r--core/fakeroot/PKGBUILD36
-rw-r--r--core/fakeroot/fakeroot.install14
-rw-r--r--core/file/PKGBUILD44
-rw-r--r--core/file/file-5.05-python-3.2.patch11
-rw-r--r--core/file/file-5.05-zip64.patch11
-rw-r--r--core/findutils/PKGBUILD31
-rw-r--r--core/findutils/findutils.install22
-rw-r--r--core/flex/PKGBUILD55
-rw-r--r--core/flex/flex-2.5.35-gcc44.patch22
-rw-r--r--core/flex/flex-2.5.35-hardening.patch36
-rw-r--r--core/flex/flex-2.5.35-missing-prototypes.patch53
-rw-r--r--core/flex/flex-2.5.35-sign.patch11
-rw-r--r--core/flex/flex.install22
-rw-r--r--core/flex/lex.sh3
-rw-r--r--core/gawk/PKGBUILD36
-rw-r--r--core/gawk/gawk.install22
-rw-r--r--core/gcc/PKGBUILD228
-rw-r--r--core/gcc/gcc-ada.install22
-rw-r--r--core/gcc/gcc-fortran.install18
-rw-r--r--core/gcc/gcc-hash-style-both.patch163
-rw-r--r--core/gcc/gcc-libs.install14
-rw-r--r--core/gcc/gcc.install22
-rw-r--r--core/gcc/gcc_pure64.patch26
-rw-r--r--core/gdbm/PKGBUILD59
-rw-r--r--core/gdbm/gdbm-1.8.3-fhs.patch138
-rw-r--r--core/gdbm/gdbm-1.8.3-zeroheaders.patch44
-rw-r--r--core/gdbm/gdbm.install21
-rw-r--r--core/gen-init-cpio/Makefile42
-rw-r--r--core/gen-init-cpio/PKGBUILD26
-rw-r--r--core/gen-init-cpio/gen_init_cpio.c595
-rw-r--r--core/gettext/PKGBUILD29
-rw-r--r--core/gettext/gettext.install22
-rw-r--r--core/glib2/PKGBUILD37
-rw-r--r--core/glib2/glib2.csh1
-rw-r--r--core/glib2/glib2.sh1
-rw-r--r--core/glibc/PKGBUILD164
-rw-r--r--core/glibc/glibc-2.10-bz4781.patch42
-rw-r--r--core/glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--core/glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--core/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--core/glibc/glibc-2.13-prelink.patch26
-rw-r--r--core/glibc/glibc-__i686.patch13
-rw-r--r--core/glibc/glibc.install20
-rwxr-xr-xcore/glibc/locale-gen42
-rw-r--r--core/glibc/locale.gen.txt23
-rwxr-xr-xcore/glibc/nscd40
-rw-r--r--core/gmp/PKGBUILD31
-rw-r--r--core/gmp/gmp.install20
-rw-r--r--core/gpm/PKGBUILD39
-rwxr-xr-xcore/gpm/gpm41
-rw-r--r--core/gpm/gpm.conf.d4
-rw-r--r--core/gpm/gpm.install16
-rwxr-xr-xcore/gpm/gpm.sh3
-rw-r--r--core/grep/PKGBUILD29
-rw-r--r--core/grep/grep.install21
-rw-r--r--core/groff/PKGBUILD43
-rw-r--r--core/groff/groff.install20
-rw-r--r--core/groff/site.tmac16
-rw-r--r--core/gzip/PKGBUILD39
-rw-r--r--core/gzip/gzip.install20
-rw-r--r--core/hdparm/PKGBUILD42
-rw-r--r--core/hdparm/wiper.sh.2_6.max-ranges.patch84
-rw-r--r--core/heimdal/001_all_heimdal-no_libedit.patch10
-rw-r--r--core/heimdal/002_all_heimal-fPIC.patch12
-rw-r--r--core/heimdal/003_all_heimdal-rxapps.patch22
-rw-r--r--core/heimdal/005_all_heimdal-suid_fix.patch20
-rw-r--r--core/heimdal/012_all_heimdal-berkdb.patch124
-rw-r--r--core/heimdal/013_all_heimdal-pthread-lib.patch11
-rw-r--r--core/heimdal/014_all_heimdal-path.patch50
-rw-r--r--core/heimdal/PKGBUILD113
-rw-r--r--core/heimdal/heimdal-kdc.rc40
-rw-r--r--core/heimdal/heimdal.install20
-rw-r--r--core/heimdal/kadmind.rc40
-rw-r--r--core/heimdal/kpasswd.rc40
-rw-r--r--core/heirloom-mailx/PKGBUILD64
-rw-r--r--core/idnkit/PKGBUILD32
-rw-r--r--core/ifenslave/PKGBUILD29
-rw-r--r--core/ifenslave/bonding.conf.d12
-rw-r--r--core/inetutils/PKGBUILD62
-rw-r--r--core/inetutils/ftpd.conf4
-rw-r--r--core/inetutils/ftpd.rc37
-rw-r--r--core/inetutils/inetutils.install20
-rw-r--r--core/inetutils/rexec.xinetd10
-rw-r--r--core/inetutils/rlogin.xinetd10
-rw-r--r--core/inetutils/rsh.xinetd10
-rw-r--r--core/inetutils/talk.xinetd10
-rw-r--r--core/inetutils/telnet.xinetd10
-rw-r--r--core/iproute2/PKGBUILD43
-rw-r--r--core/iproute2/iproute2-fhs.patch84
-rw-r--r--core/iptables/PKGBUILD53
-rw-r--r--core/iptables/empty.rules6
-rwxr-xr-xcore/iptables/ip6tables97
-rwxr-xr-xcore/iptables/iptables95
-rw-r--r--core/iptables/iptables.conf.d8
-rw-r--r--core/iptables/simple_firewall.rules11
-rw-r--r--core/iputils/PKGBUILD65
-rw-r--r--core/iputils/iputils-s20101006-manpages.patch1044
-rw-r--r--core/iputils/permission-fix.patch15
-rw-r--r--core/isdn4k-utils/PKGBUILD34
-rw-r--r--core/isdn4k-utils/config100
-rw-r--r--core/isdn4k-utils/isdn4k-utils-3.2p1-build.patch2028
-rw-r--r--core/iw/PKGBUILD24
-rw-r--r--core/jfsutils/PKGBUILD25
-rw-r--r--core/kbd/PKGBUILD37
-rw-r--r--core/less/PKGBUILD30
-rw-r--r--core/less/zless9
-rw-r--r--core/libarchive/PKGBUILD35
-rw-r--r--core/libcap/PKGBUILD26
-rw-r--r--core/libedit/PKGBUILD29
-rw-r--r--core/libevent/PKGBUILD27
-rw-r--r--core/libfetch/Makefile89
-rw-r--r--core/libfetch/PKGBUILD46
-rw-r--r--core/libgcrypt/PKGBUILD33
-rw-r--r--core/libgcrypt/libgcrypt.install22
-rw-r--r--core/libgpg-error/PKGBUILD32
-rw-r--r--core/libgssglue/PKGBUILD34
-rw-r--r--core/libgssglue/gssapi_mech.conf22
-rw-r--r--core/libldap/PKGBUILD78
-rw-r--r--core/libldap/ntlm.patch230
-rw-r--r--core/libmpc/PKGBUILD35
-rw-r--r--core/libmpc/libmpc-0.9-configure_cflags_egrep_issue.patch63
-rw-r--r--core/libmpc/libmpc.install20
-rw-r--r--core/libnl/PKGBUILD28
-rw-r--r--core/libnl/fix-compilation.patch10
-rw-r--r--core/libpcap/PKGBUILD36
-rw-r--r--core/librpcsecgss/PKGBUILD38
-rw-r--r--core/librpcsecgss/librpcsecgss-0.18-heimdal.patch33
-rw-r--r--core/libsasl/PKGBUILD54
-rw-r--r--core/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch170
-rw-r--r--core/libsasl/cyrus-sasl-db.patch34
-rw-r--r--core/libtirpc/PKGBUILD28
-rw-r--r--core/libtirpc/libtirpc-0.2.1-fortify.patch18
-rw-r--r--core/libtool/PKGBUILD31
-rw-r--r--core/libtool/libtool.install22
-rw-r--r--core/libusb-compat/PKGBUILD26
-rw-r--r--core/libusb/PKGBUILD25
-rw-r--r--core/lilo/PKGBUILD40
-rw-r--r--core/lilo/lilo.conf28
-rw-r--r--core/lilo/lilo.install5
-rw-r--r--core/links/PKGBUILD47
-rw-r--r--core/links/links.desktop7
-rw-r--r--core/linux-api-headers/PKGBUILD38
-rw-r--r--core/linux-atm/PKGBUILD30
-rw-r--r--core/linux-atm/man-pages.patch45
-rw-r--r--core/logrotate/PKGBUILD39
-rw-r--r--core/logrotate/logrotate.conf31
-rwxr-xr-xcore/logrotate/logrotate.cron.daily3
-rw-r--r--core/lvm2/PKGBUILD61
-rw-r--r--core/lvm2/lvm2_hook23
-rw-r--r--core/lvm2/lvm2_install29
-rw-r--r--core/lzo2/PKGBUILD36
-rw-r--r--core/m4/PKGBUILD28
-rw-r--r--core/m4/m4.install20
-rw-r--r--core/make/PKGBUILD28
-rw-r--r--core/make/make.install20
-rw-r--r--core/man-db/PKGBUILD52
-rw-r--r--core/man-db/convert-mans11
-rwxr-xr-xcore/man-db/man-db.cron.daily39
-rw-r--r--core/man-db/man-db.install18
-rw-r--r--core/mdadm/PKGBUILD41
-rwxr-xr-xcore/mdadm/mdadm38
-rw-r--r--core/mdadm/mdadm.conf67
-rw-r--r--core/mdadm/mdadm.install10
-rwxr-xr-xcore/mdadm/mdadm_hook44
-rw-r--r--core/mdadm/mdadm_install46
-rw-r--r--core/mkinitcpio-busybox/PKGBUILD31
-rw-r--r--core/mkinitcpio-busybox/config986
-rw-r--r--core/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch453
-rw-r--r--core/mkinitcpio-nfs-utils/PKGBUILD23
-rw-r--r--core/mlocate/PKGBUILD52
-rw-r--r--core/mlocate/mlocate.install18
-rw-r--r--core/mlocate/updatedb.conf5
-rwxr-xr-xcore/mlocate/updatedb.cron.daily29
-rw-r--r--core/module-init-tools/PKGBUILD39
-rw-r--r--core/module-init-tools/modprobe.conf3
-rw-r--r--core/mpfr/PKGBUILD34
-rw-r--r--core/mpfr/mpfr-3.0.0-p8.patch1945
-rw-r--r--core/mpfr/mpfr.install20
-rw-r--r--core/nano/PKGBUILD34
-rw-r--r--core/nano/nano.install20
-rw-r--r--core/ncurses/PKGBUILD73
-rw-r--r--core/ncurses/set_field_buffer.patch9
-rw-r--r--core/net-tools/PKGBUILD40
-rw-r--r--core/net-tools/gcc340.patch46
-rw-r--r--core/net-tools/net-tools-1.60-2.6-compilefix.patch23
-rw-r--r--core/net-tools/net-tools-1.60-miiioctl.patch17
-rw-r--r--core/net-tools/net-tools-1.60-nameif.patch58
-rw-r--r--core/net-tools/net-tools-1.60-nameif_strncpy.patch13
-rw-r--r--core/net-tools/net-tools.patch52
-rw-r--r--core/net-tools/nisdomainname.conf.d3
-rw-r--r--core/nfs-utils/PKGBUILD87
-rw-r--r--core/nfs-utils/exports15
-rw-r--r--core/nfs-utils/idmapd.conf14
-rw-r--r--core/nfs-utils/nfs-common319
-rw-r--r--core/nfs-utils/nfs-common.conf40
-rw-r--r--core/nfs-utils/nfs-server303
-rw-r--r--core/nfs-utils/nfs-server.conf29
-rw-r--r--core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch138
-rw-r--r--core/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch39
-rw-r--r--core/nfs-utils/nfs-utils-1.1.4-no-exec.patch15
-rw-r--r--core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch69
-rw-r--r--core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch57
-rw-r--r--core/nfs-utils/nfs-utils.install32
-rw-r--r--core/nfs-utils/start-statd.patch22
-rw-r--r--core/nfsidmap/PKGBUILD32
-rw-r--r--core/nilfs-utils/PKGBUILD22
-rw-r--r--core/openssh/PKGBUILD55
-rwxr-xr-xcore/openssh/sshd48
-rw-r--r--core/openssh/sshd.confd4
-rw-r--r--core/openssh/sshd.pam10
-rw-r--r--core/openssl/PKGBUILD56
-rw-r--r--core/openssl/ca-dir.patch33
-rw-r--r--core/openssl/fix-manpages.patch1920
-rw-r--r--core/openssl/no-rpath.patch11
-rw-r--r--core/openvpn/PKGBUILD61
-rw-r--r--core/openvpn/openvpn-tapdev.conf12
-rwxr-xr-xcore/openvpn/openvpn-tapdev.rc40
-rwxr-xr-xcore/openvpn/openvpn.rc43
-rw-r--r--core/pacman/PKGBUILD71
-rw-r--r--core/pacman/makepkg.conf114
-rw-r--r--core/pacman/pacman.conf80
-rw-r--r--core/pacman/pacman.conf.x86_6485
-rw-r--r--core/pacman/pacman.install62
-rw-r--r--core/pam/PKGBUILD56
-rw-r--r--core/pam/other5
-rw-r--r--core/pam/pam.install12
-rw-r--r--core/patch/PKGBUILD31
-rw-r--r--core/patch/patch-2.6.1-get-arg.patch12
-rw-r--r--core/pciutils/PKGBUILD31
-rw-r--r--core/pcmciautils/60-pcmcia.rules30
-rw-r--r--core/pcmciautils/PKGBUILD32
-rw-r--r--core/pcre/PKGBUILD36
-rw-r--r--core/perl/ChangeLog50
-rw-r--r--core/perl/PKGBUILD208
-rw-r--r--core/perl/fix-h2ph-and-tests.patch104
-rw-r--r--core/perl/perl.install18
-rwxr-xr-xcore/perl/perlbin.sh23
-rw-r--r--core/pkg-config/PKGBUILD34
-rw-r--r--core/pkg-config/autoconf-2.66.patch12
-rw-r--r--core/popt/PKGBUILD41
-rw-r--r--core/ppl/PKGBUILD28
-rw-r--r--core/ppp/PKGBUILD80
-rw-r--r--core/ppp/ip-down12
-rw-r--r--core/ppp/ip-down.d.dns.sh3
-rw-r--r--core/ppp/ip-up12
-rw-r--r--core/ppp/ip-up.d.dns.sh7
-rw-r--r--core/ppp/options352
-rw-r--r--core/ppp/plog7
-rw-r--r--core/ppp/poff103
-rw-r--r--core/ppp/pon32
-rw-r--r--core/ppp/pon.1121
-rw-r--r--core/ppp/ppp36
-rw-r--r--core/pptpclient/PKGBUILD33
-rw-r--r--core/procinfo-ng/PKGBUILD37
-rw-r--r--core/procps/PKGBUILD75
-rw-r--r--core/procps/groff-top-manpage.patch39
-rw-r--r--core/procps/procps-3.2.7-free-hlmem.patch23
-rw-r--r--core/procps/procps-3.2.7-longcmd.patch22
-rw-r--r--core/procps/procps-3.2.7-ps-man-fmt.patch12
-rw-r--r--core/procps/procps-3.2.7-psman.patch22
-rw-r--r--core/procps/procps-3.2.7-slabtop-once.patch113
-rw-r--r--core/procps/procps-3.2.7-top-clrscr.patch19
-rw-r--r--core/procps/procps-3.2.7-top-cpu0.patch20
-rw-r--r--core/procps/procps-3.2.7-top-env-cpuloop.patch84
-rw-r--r--core/procps/procps-3.2.7-top-manpage.patch32
-rw-r--r--core/procps/procps-3.2.7-top-remcpu.patch98
-rw-r--r--core/procps/procps-3.2.7-top-sorthigh.patch37
-rw-r--r--core/procps/procps-3.2.7-w-best.patch16
-rw-r--r--core/procps/procps-3.2.7-watch-unicode.patch139
-rw-r--r--core/procps/procps-3.2.8+gmake-3.82.patch14
-rw-r--r--core/procps/procps-3.2.8-linux-ver-init.patch23
-rw-r--r--core/procps/procps-3.2.8-setlocale.patch66
-rw-r--r--core/procps/procps-3.2.8-threads.patch49
-rw-r--r--core/procps/sysctl.conf13
-rw-r--r--core/psmisc/ChangeLog40
-rw-r--r--core/psmisc/PKGBUILD27
-rw-r--r--core/readline/PKGBUILD59
-rw-r--r--core/readline/inputrc36
-rw-r--r--core/readline/readline.install21
-rw-r--r--core/reiserfsprogs/PKGBUILD29
-rw-r--r--core/rfkill/60-rfkill.rules1
-rw-r--r--core/rfkill/PKGBUILD38
-rw-r--r--core/rfkill/rfkill.conf.d20
-rwxr-xr-xcore/rfkill/rfkill.rc.d38
-rw-r--r--core/rp-pppoe/PKGBUILD40
-rwxr-xr-xcore/rp-pppoe/adsl35
-rw-r--r--core/rp-pppoe/rp-pppoe.install12
-rw-r--r--core/rpcbind/PKGBUILD37
-rwxr-xr-xcore/rpcbind/rpcbind39
-rw-r--r--core/rpcbind/rpcbind-sunrpc.patch22
-rw-r--r--core/run-parts/PKGBUILD25
-rw-r--r--core/sdparm/PKGBUILD28
-rw-r--r--core/sed/PKGBUILD28
-rw-r--r--core/sed/sed.install20
-rw-r--r--core/shadow/PKGBUILD98
-rw-r--r--core/shadow/adduser399
-rw-r--r--core/shadow/chage6
-rw-r--r--core/shadow/chgpasswd4
-rw-r--r--core/shadow/chpasswd6
-rw-r--r--core/shadow/chsh6
-rw-r--r--core/shadow/defaults.pam6
-rw-r--r--core/shadow/login20
-rw-r--r--core/shadow/login.defs218
-rw-r--r--core/shadow/newusers6
-rw-r--r--core/shadow/passwd4
-rw-r--r--core/shadow/shadow6
-rw-r--r--core/shadow/shadow-4.1.4.2-groupmod-pam-check.patch21
-rwxr-xr-xcore/shadow/shadow.cron.daily6
-rw-r--r--core/shadow/shadow.install8
-rw-r--r--core/shadow/useradd.defaults9
-rw-r--r--core/shadow/xstrdup.patch9
-rw-r--r--core/sqlite3/PKGBUILD93
-rw-r--r--core/sqlite3/license.txt33
-rw-r--r--core/sudo/PKGBUILD52
-rw-r--r--core/sudo/sudo.pam3
-rw-r--r--core/sudo/sudo_l.patch21
-rw-r--r--core/sudo/sudo_noninteractive.patch15
-rw-r--r--core/sudo/sudo_validate_exitval.patch15
-rw-r--r--core/sysfsutils/PKGBUILD31
-rw-r--r--core/syslinux/PKGBUILD49
-rw-r--r--core/syslinux/syslinux-dont-build-dos-windows-targets.patch12
-rw-r--r--core/syslinux/syslinux-install_update459
-rw-r--r--core/syslinux/syslinux.cfg79
-rw-r--r--core/syslinux/syslinux.install13
-rw-r--r--core/syslog-ng/PKGBUILD45
-rw-r--r--core/syslog-ng/syslog-ng.conf92
-rw-r--r--core/syslog-ng/syslog-ng.logrotate7
-rwxr-xr-xcore/syslog-ng/syslog-ng.rc39
-rw-r--r--core/sysvinit/PKGBUILD27
-rw-r--r--core/sysvinit/sysvinit.install3
-rw-r--r--core/tar/PKGBUILD33
-rw-r--r--core/tar/tar.1364
-rw-r--r--core/tar/tar.install21
-rw-r--r--core/tcp_wrappers/01_all_redhat-bug11881.patch35
-rw-r--r--core/tcp_wrappers/02_all_redhat-bug17795.patch49
-rw-r--r--core/tcp_wrappers/03_all_wildcard.patch93
-rw-r--r--core/tcp_wrappers/04_all_fixgethostbyname.patch27
-rw-r--r--core/tcp_wrappers/07_all_sig.patch39
-rw-r--r--core/tcp_wrappers/08_all_strerror.patch27
-rw-r--r--core/tcp_wrappers/09_all_gcc-3.4.patch12
-rw-r--r--core/tcp_wrappers/10_all_more-headers.patch209
-rw-r--r--core/tcp_wrappers/11_inet6_fixes.patch41
-rw-r--r--core/tcp_wrappers/PKGBUILD74
-rw-r--r--core/tcp_wrappers/hosts.allow5
-rw-r--r--core/tcp_wrappers/hosts.deny7
-rw-r--r--core/tcp_wrappers/safe_finger.834
-rw-r--r--core/tcp_wrappers/shared_lib_plus_plus-1.patch784
-rw-r--r--core/tcp_wrappers/tcp-wrappers-7.6-ipv6-1.14.patch1233
-rw-r--r--core/tcp_wrappers/try-from.828
-rw-r--r--core/texinfo/PKGBUILD30
-rw-r--r--core/texinfo/texinfo.install21
-rw-r--r--core/tzdata/Makefile.patch140
-rw-r--r--core/tzdata/PKGBUILD40
-rw-r--r--core/udev/80-drivers.rules14
-rw-r--r--core/udev/81-arch.rules138
-rw-r--r--core/udev/PKGBUILD112
-rwxr-xr-xcore/udev/cdsymlinks.sh44
-rwxr-xr-xcore/udev/load-modules.sh80
-rw-r--r--core/udev/udev.install38
-rw-r--r--core/usbutils/PKGBUILD31
-rw-r--r--core/util-linux/PKGBUILD32
-rw-r--r--core/vi/PKGBUILD46
-rw-r--r--core/vi/exrc.sample5
-rw-r--r--core/vi/increase-tube.patch13
-rw-r--r--core/vi/navkeys.patch55
-rw-r--r--core/vi/preserve_dir.patch81
-rw-r--r--core/vpnc/PKGBUILD35
-rw-r--r--core/vpnc/vpnc.conf17
-rw-r--r--core/vpnc/vpnc.rc35
-rw-r--r--core/wget/PKGBUILD42
-rw-r--r--core/wget/wget-1.12-CVE-2010-2252.patch155
-rw-r--r--core/wget/wget.install20
-rw-r--r--core/which/PKGBUILD27
-rw-r--r--core/which/which.install20
-rw-r--r--core/wireless_tools/PKGBUILD27
-rw-r--r--core/wpa_actiond/PKGBUILD25
-rw-r--r--core/wpa_supplicant/PKGBUILD45
-rw-r--r--core/wpa_supplicant/config404
-rw-r--r--core/wpa_supplicant/dbus.patch61
-rw-r--r--core/xfsprogs/PKGBUILD29
-rw-r--r--core/xinetd/PKGBUILD44
-rw-r--r--core/xinetd/servers10
-rw-r--r--core/xinetd/services10
-rwxr-xr-xcore/xinetd/xinetd38
-rw-r--r--core/xinetd/xinetd.conf14
-rw-r--r--core/xz/PKGBUILD41
-rw-r--r--core/zlib/PKGBUILD34
-rw-r--r--core/zlib/zlib-1.2.5-lfs-decls.patch13
-rw-r--r--extra/a2ps/ChangeLog10
-rw-r--r--extra/a2ps/PKGBUILD46
-rw-r--r--extra/a2ps/a2ps-4.13-manpage-chmod.patch12
-rw-r--r--extra/a2ps/a2ps-4.13c-emacs.patch10
-rw-r--r--extra/a2ps/a2ps-4.13c-fnmatch-replacement.patch43
-rw-r--r--extra/a2ps/a2ps-4.14-check-mempcpy.patch12
-rw-r--r--extra/a2ps/a2ps-4.14-fix-stpcpy-proto.patch17
-rw-r--r--extra/a2ps/a2ps.install20
-rw-r--r--extra/a52dec/PKGBUILD26
-rw-r--r--extra/a52dec/a52dec-0.7.4-build.patch27
-rw-r--r--extra/aalib/PKGBUILD30
-rw-r--r--extra/aalib/aalib.install16
-rw-r--r--extra/aalib/aclocal-fixes.patch11
-rw-r--r--extra/abiword/PKGBUILD58
-rw-r--r--extra/abiword/compat_libwpg_0_9.patch371
-rw-r--r--extra/abook/PKGBUILD27
-rw-r--r--extra/acpi/PKGBUILD25
-rw-r--r--extra/acpid/PKGBUILD42
-rw-r--r--extra/acpid/acpid37
-rw-r--r--extra/acpid/acpid.conf.d6
-rw-r--r--extra/acpid/anything3
-rw-r--r--extra/acpid/handler.sh65
-rw-r--r--extra/aiksaurus/PKGBUILD28
-rw-r--r--extra/aiksaurus/aiksaurus-gcc44.patch31
-rw-r--r--extra/akonadi/PKGBUILD36
-rw-r--r--extra/akonadi/akonadi.install11
-rw-r--r--extra/akonadi/qt-plugins-path.patch24
-rw-r--r--extra/alex/PKGBUILD31
-rw-r--r--extra/allegro/LICENSE26
-rw-r--r--extra/allegro/PKGBUILD35
-rw-r--r--extra/alpine/2.00-lpam.patch13
-rw-r--r--extra/alpine/CVE-2008-5514.patch20
-rw-r--r--extra/alpine/PKGBUILD40
-rw-r--r--extra/alsa-lib/PKGBUILD27
-rw-r--r--extra/alsa-oss/PKGBUILD20
-rw-r--r--extra/alsa-plugins/PKGBUILD33
-rwxr-xr-xextra/alsa-utils/90alsa13
-rw-r--r--extra/alsa-utils/PKGBUILD42
-rwxr-xr-xextra/alsa-utils/alsa62
-rw-r--r--extra/alsa-utils/alsa.conf.d15
-rw-r--r--extra/alsa-utils/alsaconf.patch32
-rw-r--r--extra/alsaplayer/PKGBUILD35
-rw-r--r--extra/amarok/PKGBUILD37
-rw-r--r--extra/amarok/amarok.install11
-rw-r--r--extra/amule/PKGBUILD43
-rw-r--r--extra/anjuta-extras/PKGBUILD26
-rw-r--r--extra/anjuta-extras/anjuta-extras.install17
-rw-r--r--extra/anjuta/PKGBUILD37
-rw-r--r--extra/anjuta/anjuta.install28
-rw-r--r--extra/anthy/PKGBUILD27
-rw-r--r--extra/antlr2/PKGBUILD58
-rw-r--r--extra/antlr2/gcc4.4.patch21
-rw-r--r--extra/antlr2/runantlr2.sh5
-rw-r--r--extra/apache-ant/PKGBUILD51
-rw-r--r--extra/apache-ant/ant_diagnostics.patch23
-rw-r--r--extra/apache-ant/apache-ant.sh3
-rw-r--r--extra/apache/PKGBUILD139
-rw-r--r--extra/apache/apache.conf.d15
-rw-r--r--extra/apache/apachectl-confd.patch15
-rw-r--r--extra/apache/arch.layout22
-rwxr-xr-xextra/apache/httpd65
-rw-r--r--extra/apache/httpd.logrotate6
-rw-r--r--extra/apr-util/PKGBUILD25
-rw-r--r--extra/apr/PKGBUILD31
-rw-r--r--extra/apricots/PKGBUILD22
-rw-r--r--extra/apricots/apricots-0.2.6-freealut.patch65
-rw-r--r--extra/archboot/PKGBUILD43
-rw-r--r--extra/archboot/archboot.install24
-rw-r--r--extra/archboot/vmware-detect.c13
-rw-r--r--extra/ardour/PKGBUILD50
-rw-r--r--extra/ardour/ardour.changelog22
-rw-r--r--extra/ardour/ardour.desktop9
-rw-r--r--extra/aria2/PKGBUILD27
-rw-r--r--extra/arj/001_arches_align.patch34
-rw-r--r--extra/arj/002_no_remove_static_const.patch20
-rw-r--r--extra/arj/003_64_bit_clean.patch194
-rw-r--r--extra/arj/PKGBUILD54
-rw-r--r--extra/arj/arj-3.10.22-custom-printf.patch15
-rw-r--r--extra/arora/PKGBUILD29
-rw-r--r--extra/arora/arora.install12
-rw-r--r--extra/asio/PKGBUILD29
-rw-r--r--extra/aspell-de/PKGBUILD41
-rw-r--r--extra/aspell-en/PKGBUILD26
-rw-r--r--extra/aspell-es/PKGBUILD26
-rw-r--r--extra/aspell-fr/PKGBUILD26
-rw-r--r--extra/aspell-hu/PKGBUILD27
-rw-r--r--extra/aspell-it/PKGBUILD25
-rw-r--r--extra/aspell-nl/PKGBUILD28
-rw-r--r--extra/aspell-pt/PKGBUILD39
-rw-r--r--extra/aspell-ru/PKGBUILD28
-rw-r--r--extra/aspell/PKGBUILD36
-rw-r--r--extra/aspell/aspell.install24
-rw-r--r--extra/asymptote/PKGBUILD37
-rw-r--r--extra/asymptote/texlive.install20
-rw-r--r--extra/at-spi/PKGBUILD29
-rw-r--r--extra/at-spi/at-spi.install17
-rw-r--r--extra/at-spi2-atk/PKGBUILD35
-rw-r--r--extra/at-spi2-atk/at-spi2-atk.install17
-rw-r--r--extra/at-spi2-core/PKGBUILD28
-rw-r--r--extra/at/PKGBUILD30
-rw-r--r--extra/at/atd35
-rw-r--r--extra/aterm/ChangeLog6
-rw-r--r--extra/aterm/PKGBUILD25
-rw-r--r--extra/atk/PKGBUILD21
-rw-r--r--extra/atkmm/PKGBUILD35
-rw-r--r--extra/attica/PKGBUILD29
-rw-r--r--extra/aubio/PKGBUILD24
-rw-r--r--extra/audacious/PKGBUILD30
-rw-r--r--extra/audacious/audacious.install12
-rw-r--r--extra/audacity/ChangeLog45
-rw-r--r--extra/audacity/PKGBUILD44
-rw-r--r--extra/audacity/audacity-ffmpeg.patch31
-rw-r--r--extra/audacity/audacity.install12
-rw-r--r--extra/audiofile/PKGBUILD20
-rw-r--r--extra/aufs2-util/PKGBUILD25
-rwxr-xr-xextra/aufs2-util/create-tarball.sh11
-rw-r--r--extra/autogen/PKGBUILD24
-rw-r--r--extra/autogen/autogen.install20
-rw-r--r--extra/automoc4/PKGBUILD28
-rw-r--r--extra/autopano-sift-c/PKGBUILD27
-rw-r--r--extra/avahi/ChangeLog17
-rw-r--r--extra/avahi/PKGBUILD79
-rw-r--r--extra/avahi/avahi-daemon-dbus.patch11
-rw-r--r--extra/avahi/avahi.install21
-rw-r--r--extra/avahi/gnome-nettool.pngbin0 -> 4509 bytes
-rw-r--r--extra/avfs/PKGBUILD22
-rw-r--r--extra/avidemux/2.5.4_audioDevice.patch12
-rw-r--r--extra/avidemux/PKGBUILD121
-rw-r--r--extra/avidemux/x264.patch21
-rw-r--r--extra/avogadro/PKGBUILD45
-rw-r--r--extra/avogadro/fix-pycapsule.patch23
-rw-r--r--extra/avogadro/sip-4.11.patch34
-rw-r--r--extra/babl/PKGBUILD25
-rw-r--r--extra/banshee/PKGBUILD49
-rw-r--r--extra/banshee/banshee.install15
-rw-r--r--extra/barcode/PKGBUILD31
-rw-r--r--extra/barcode/barcode.install20
-rw-r--r--extra/basket/PKGBUILD32
-rw-r--r--extra/basket/basket.install12
-rw-r--r--extra/bc/PKGBUILD31
-rw-r--r--extra/bc/bc-1.06-info-dir-entry.patch11
-rw-r--r--extra/bc/bc.install20
-rw-r--r--extra/bc/build-fix.patch13
-rw-r--r--extra/bdf-unifont/LICENSE60
-rw-r--r--extra/bdf-unifont/PKGBUILD24
-rw-r--r--extra/bdf-unifont/unifont.install15
-rw-r--r--extra/beagle/PKGBUILD64
-rw-r--r--extra/beagle/beagle-0.3.9-gmime24.patch703
-rw-r--r--extra/beagle/beagle-0.3.9-mono-data-sqlite-2.patch81
-rw-r--r--extra/beagle/beagle-0.3.9-spew.patch12
-rw-r--r--extra/beagle/beagle.install8
-rw-r--r--extra/beagle/mono-2.8.patch152
-rw-r--r--extra/beep/PKGBUILD26
-rw-r--r--extra/bftpd/PKGBUILD39
-rw-r--r--extra/bftpd/bftpd.install11
-rw-r--r--extra/bftpd/bftpd.logrotate5
-rw-r--r--extra/bftpd/bftpd.pam3
-rwxr-xr-xextra/bftpd/bftpd.rc44
-rw-r--r--extra/bigloo/PKGBUILD41
-rw-r--r--extra/bigloo/bigloo.install21
-rw-r--r--extra/bind/127.0.0.zone11
-rw-r--r--extra/bind/ChangeLog15
-rw-r--r--extra/bind/PKGBUILD79
-rw-r--r--extra/bind/install21
-rw-r--r--extra/bind/localhost.zone10
-rwxr-xr-xextra/bind/named48
-rw-r--r--extra/bind/named.conf64
-rw-r--r--extra/bind/named.conf.d4
-rw-r--r--extra/bind/named.logrotate6
-rw-r--r--extra/bind/notools.patch11
-rw-r--r--extra/bind/so_bsdcompat.patch13
-rw-r--r--extra/bitlbee/PKGBUILD52
-rw-r--r--extra/bitlbee/bitlbee.rcd54
-rw-r--r--extra/bitlbee/bitlbee.xinetd12
-rw-r--r--extra/bitlbee/install14
-rw-r--r--extra/blender/PKGBUILD143
-rw-r--r--extra/blender/blender.desktop19
-rw-r--r--extra/blender/blender.install28
-rw-r--r--extra/blender/blender.svg171
-rw-r--r--extra/bluedevil/PKGBUILD30
-rw-r--r--extra/bluedevil/bluedevil.install11
-rw-r--r--extra/bluefish/PKGBUILD30
-rw-r--r--extra/bluefish/bluefish.install28
-rw-r--r--extra/bluez-hcidump/PKGBUILD26
-rw-r--r--extra/bluez/PKGBUILD75
-rw-r--r--extra/bluez/bluetooth.conf.d30
-rw-r--r--extra/bluez/rc.bluetooth100
-rw-r--r--extra/bmp-musepack/PKGBUILD24
-rw-r--r--extra/bmp-wma/PKGBUILD30
-rw-r--r--extra/bmp-wma/bmp-wma-gcc4.patch98
-rw-r--r--extra/bmp/0.9.7.1-visualization.patch12
-rw-r--r--extra/bmp/PKGBUILD27
-rw-r--r--extra/bmp/bmp-0.9.7.1-crossfade-0.3.9.patch108
-rw-r--r--extra/bochs/2.4.5-fetchcode.patch45
-rw-r--r--extra/bochs/PKGBUILD26
-rw-r--r--extra/bogofilter/PKGBUILD34
-rw-r--r--extra/boo/PKGBUILD34
-rw-r--r--extra/boo/boo.install11
-rw-r--r--extra/boost/4994-compile-fix-for-Python32-v2.patch16
-rw-r--r--extra/boost/PKGBUILD112
-rw-r--r--extra/boost/boost-1.46.0-spirit.patch59
-rw-r--r--extra/botan/PKGBUILD25
-rw-r--r--extra/brasero/PKGBUILD33
-rw-r--r--extra/brasero/brasero.install14
-rw-r--r--extra/brltty/PKGBUILD48
-rwxr-xr-xextra/brltty/brltty68
-rw-r--r--extra/brltty/brltty-4.2-S_ISCHR.patch11
-rw-r--r--extra/brltty/brltty.conf2
-rw-r--r--extra/bs/PKGBUILD26
-rw-r--r--extra/bug-buddy/PKGBUILD29
-rw-r--r--extra/bug-buddy/bug-buddy.install24
-rw-r--r--extra/bzflag/PKGBUILD30
-rw-r--r--extra/bzr/PKGBUILD30
-rw-r--r--extra/c-ares/LICENSE10
-rw-r--r--extra/c-ares/PKGBUILD33
-rw-r--r--extra/cabal-install/PKGBUILD27
-rw-r--r--extra/cagibi/PKGBUILD29
-rw-r--r--extra/cairo-perl/PKGBUILD27
-rw-r--r--extra/cairo/PKGBUILD35
-rw-r--r--extra/cairo/cairo-1.10.0-buggy_gradients.patch13
-rw-r--r--extra/cairomm/PKGBUILD23
-rw-r--r--extra/camsource/PKGBUILD28
-rw-r--r--extra/camsource/mod_handle.c.patch14
-rw-r--r--extra/capi4hylafax/PKGBUILD49
-rw-r--r--extra/capi4hylafax/capi4hylafax.install16
-rwxr-xr-xextra/capi4hylafax/capi4hylafax.rc49
-rw-r--r--extra/capi4hylafax/config.faxCAPI397
-rw-r--r--extra/capi4k-utils/PKGBUILD54
-rw-r--r--extra/capi4k-utils/capi-compile.patch10
-rw-r--r--extra/capi4k-utils/capi.conf14
-rwxr-xr-xextra/capi4k-utils/capiinit.rc43
-rw-r--r--extra/capi4k-utils/config11
-rw-r--r--extra/capi4k-utils/ppp-2.4.4.patch1874
-rw-r--r--extra/capseo/PKGBUILD24
-rw-r--r--extra/catdoc/PKGBUILD24
-rw-r--r--extra/ccache/PKGBUILD34
-rw-r--r--extra/cd-discid/PKGBUILD20
-rw-r--r--extra/cdargs/PKGBUILD36
-rw-r--r--extra/cdargs/cdargs.install7
-rw-r--r--extra/cdparanoia/ChangeLog23
-rw-r--r--extra/cdparanoia/PKGBUILD23
-rw-r--r--extra/cdparanoia/gcc.patch582
-rw-r--r--extra/cdrdao/PKGBUILD59
-rw-r--r--extra/cdrdao/cdrdao-1.2.3-autoconf-update.patch52
-rw-r--r--extra/cdrdao/cdrdao-1.2.3-k3b.patch11
-rw-r--r--extra/cdrdao/cdrdao-1.2.3-stat.patch13
-rw-r--r--extra/cdrdao/gcdmaster.install22
-rw-r--r--extra/cdrkit/PKGBUILD42
-rw-r--r--extra/celestia/PKGBUILD34
-rw-r--r--extra/celestia/celestia-1.5.1-gcc44.patch20
-rw-r--r--extra/celestia/libpng14.patch12
-rw-r--r--extra/cfitsio/PKGBUILD27
-rw-r--r--extra/cheese/PKGBUILD30
-rw-r--r--extra/cheese/cheese.install22
-rw-r--r--extra/chemtool/PKGBUILD24
-rw-r--r--extra/chemtool/chemtool.desktop13
-rw-r--r--extra/chkrootkit/PKGBUILD24
-rw-r--r--extra/chkrootkit/fix-tools-path.patch161
-rw-r--r--extra/chmlib/PKGBUILD25
-rw-r--r--extra/cifs-utils/PKGBUILD26
-rw-r--r--extra/cinepaint/PKGBUILD55
-rw-r--r--extra/cinepaint/cinepaint-0.22-gcc44.patch22
-rw-r--r--extra/cinepaint/cinepaint-0.22.1-ambiguousawake.patch11
-rw-r--r--extra/cinepaint/cinepaint-0.22.1-gcc43.patch73
-rw-r--r--extra/cinepaint/cinepaint-0.22.1-multiple_parameters_named.patch42
-rw-r--r--extra/cinepaint/cinepaint.install11
-rw-r--r--extra/clamav/PKGBUILD51
-rw-r--r--extra/clamav/clamav72
-rw-r--r--extra/clamav/clamav.confd8
-rw-r--r--extra/clamav/clamav.install14
-rw-r--r--extra/clamav/clamav.logrotate8
-rw-r--r--extra/clamav/config.patch30
-rw-r--r--extra/claws-mail-extra-plugins/PKGBUILD67
-rw-r--r--extra/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch50
-rw-r--r--extra/claws-mail/PKGBUILD55
-rw-r--r--extra/claws-mail/claws-mail.install12
-rw-r--r--extra/clisp/PKGBUILD27
-rw-r--r--extra/cln/PKGBUILD28
-rw-r--r--extra/cln/cln.install20
-rw-r--r--extra/clucene/PKGBUILD25
-rw-r--r--extra/clutter-gtk/PKGBUILD27
-rw-r--r--extra/clutter-gtk/fix-gir.patch93
-rw-r--r--extra/clutter/PKGBUILD28
-rw-r--r--extra/cmake/PKGBUILD42
-rw-r--r--extra/cmake/cmake.install11
-rw-r--r--extra/cmatrix/PKGBUILD27
-rw-r--r--extra/cmatrix/cmatrix.install3
-rw-r--r--extra/cmt/PKGBUILD25
-rw-r--r--extra/cmus/PKGBUILD42
-rw-r--r--extra/compface/LICENSE94
-rw-r--r--extra/compface/PKGBUILD25
-rw-r--r--extra/compface/compface-1.4-errno.patch.bz2bin0 -> 373 bytes
-rw-r--r--extra/conky/PKGBUILD43
-rw-r--r--extra/conky/current-power.patch12
-rw-r--r--extra/consolekit/PKGBUILD35
-rw-r--r--extra/consolekit/consolekit.logrotate5
-rw-r--r--extra/consolekit/pam-foreground-compat.ck16
-rw-r--r--extra/convmv/PKGBUILD20
-rw-r--r--extra/cowsay/ChangeLog7
-rw-r--r--extra/cowsay/PKGBUILD22
-rw-r--r--extra/cowsay/cowsay.patch11
-rw-r--r--extra/cpio/PKGBUILD27
-rw-r--r--extra/cpio/cpio-gcc43.patch139
-rw-r--r--extra/cpio/cpio.install21
-rw-r--r--extra/cpufrequtils/PKGBUILD32
-rw-r--r--extra/cpufrequtils/cpufreq.confd14
-rw-r--r--extra/cpufrequtils/cpufreq.rcd60
-rw-r--r--extra/crypto++/PKGBUILD35
-rw-r--r--extra/crypto++/libcrypto++.pc11
-rw-r--r--extra/cscope/PKGBUILD32
-rw-r--r--extra/ctags/PKGBUILD23
-rw-r--r--extra/cups-pdf/PKGBUILD31
-rw-r--r--extra/cups-pdf/cups-pdf.install20
-rw-r--r--extra/cups/PKGBUILD108
-rwxr-xr-xextra/cups/cups38
-rw-r--r--extra/cups/cups-avahi.patch1089
-rw-r--r--extra/cups/cups.install15
-rw-r--r--extra/cups/cups.logrotate8
-rw-r--r--extra/cups/cups.pam3
-rw-r--r--extra/curl/PKGBUILD52
-rw-r--r--extra/curl/curlbuild.h9
-rw-r--r--extra/cvs/PKGBUILD39
-rw-r--r--extra/cvs/cvs-1.11.23-cve-2010-3846.patch167
-rw-r--r--extra/cvs/cvs-1.11.23-getline64.patch34
-rw-r--r--extra/cvs/cvs.install20
-rw-r--r--extra/cvsps/PKGBUILD19
-rw-r--r--extra/cx_freeze/FreezePython.sh4
-rw-r--r--extra/cx_freeze/PKGBUILD31
-rw-r--r--extra/cyrus-sasl-plugins/PKGBUILD52
-rw-r--r--extra/cyrus-sasl-plugins/cyrus-sasl-2.1.22-gcc44.patch24
-rw-r--r--extra/cyrus-sasl-plugins/cyrus-sasl-2.1.23-db5-fix.patch23
-rw-r--r--extra/cyrus-sasl/PKGBUILD37
-rw-r--r--extra/cyrus-sasl/saslauthd50
-rw-r--r--extra/cyrus-sasl/saslauthd.conf.d1
-rw-r--r--extra/dansguardian/PKGBUILD148
-rw-r--r--extra/dansguardian/dansguardian36
-rw-r--r--extra/dansguardian/dansguardian.install8
-rw-r--r--extra/dansguardian/dg2.10.1.1-missing.stdio.patch10
-rw-r--r--extra/darcs/PKGBUILD37
-rw-r--r--extra/dasher/PKGBUILD30
-rw-r--r--extra/dasher/dasher.install22
-rw-r--r--extra/davfs2/PKGBUILD32
-rw-r--r--extra/dbus-glib/PKGBUILD23
-rw-r--r--extra/dbus-python/PKGBUILD22
-rw-r--r--extra/dbus-qt3/PKGBUILD32
-rw-r--r--extra/dbus-qt3/dbus-qt3-compile-fix-thoenig-01.patch85
-rw-r--r--extra/dbus-qt3/dbus-qt3-do-not-close-shared-connection-thoenig-01.patch12
-rw-r--r--extra/dbus/30-dbus9
-rw-r--r--extra/dbus/PKGBUILD38
-rw-r--r--extra/dcfldd/PKGBUILD21
-rw-r--r--extra/dconf/PKGBUILD26
-rw-r--r--extra/dconf/dconf.install11
-rw-r--r--extra/dcraw/PKGBUILD51
-rw-r--r--extra/dcraw/dcraw.install13
-rw-r--r--extra/dcraw/license.txt16
-rw-r--r--extra/ddd/ChangeLog19
-rw-r--r--extra/ddd/PKGBUILD31
-rw-r--r--extra/ddd/ddd-3.3.12-gcc44.patch10
-rw-r--r--extra/ddd/ddd.install18
-rw-r--r--extra/ddrescue/PKGBUILD22
-rw-r--r--extra/ddrescue/ddrescue.install22
-rw-r--r--extra/deskbar-applet/PKGBUILD39
-rw-r--r--extra/deskbar-applet/deskbar-applet.install22
-rw-r--r--extra/desktop-file-utils/ChangeLog7
-rw-r--r--extra/desktop-file-utils/PKGBUILD25
-rw-r--r--extra/devhelp/PKGBUILD29
-rw-r--r--extra/devhelp/devhelp.install22
-rw-r--r--extra/devilspie/PKGBUILD30
-rw-r--r--extra/dhcp/ChangeLog11
-rw-r--r--extra/dhcp/PKGBUILD81
-rw-r--r--extra/dhcp/dhclient-script-pathFixes.patch118
-rw-r--r--extra/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch39
-rw-r--r--extra/dhcp/dhcp.conf.d6
-rw-r--r--extra/dhcp/dhcp.install11
-rwxr-xr-xextra/dhcp/dhcpd40
-rw-r--r--extra/di/PKGBUILD26
-rw-r--r--extra/diffstat/PKGBUILD27
-rw-r--r--extra/digikam/PKGBUILD37
-rw-r--r--extra/digikam/digikam.install11
-rw-r--r--extra/dirmngr/PKGBUILD20
-rw-r--r--extra/djvulibre/PKGBUILD34
-rw-r--r--extra/djvulibre/djvulibre.install13
-rw-r--r--extra/dmapi/PKGBUILD32
-rw-r--r--extra/dmidecode/PKGBUILD21
-rw-r--r--extra/dnsmasq/PKGBUILD40
-rwxr-xr-xextra/dnsmasq/rc.dnsmasq36
-rw-r--r--extra/docker/PKGBUILD21
-rw-r--r--extra/dosbox/PKGBUILD37
-rw-r--r--extra/dosbox/dosbox.desktop10
-rw-r--r--extra/dosbox/dosbox.pngbin0 -> 4691 bytes
-rw-r--r--extra/dosfstools/PKGBUILD23
-rw-r--r--extra/dotconf/PKGBUILD38
-rw-r--r--extra/dovecot/PKGBUILD74
-rw-r--r--extra/dovecot/dovecot.install57
-rwxr-xr-xextra/dovecot/dovecot.sh36
-rw-r--r--extra/doxygen/PKGBUILD37
-rw-r--r--extra/dssi/LICENSE77
-rw-r--r--extra/dssi/PKGBUILD38
-rw-r--r--extra/dvd+rw-tools/PKGBUILD29
-rw-r--r--extra/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch22
-rw-r--r--extra/dvdauthor/PKGBUILD25
-rw-r--r--extra/dvdrip/PKGBUILD41
-rw-r--r--extra/dvdrip/dvdrip.desktop8
-rw-r--r--extra/dvdrip/dvdrip.install19
-rw-r--r--extra/dvdrtools/PKGBUILD24
-rw-r--r--extra/dvgrab/PKGBUILD22
-rw-r--r--extra/easytag/PKGBUILD34
-rw-r--r--extra/easytag/easytag.install12
-rw-r--r--extra/easytag/mp4v2-1.9.patch51
-rw-r--r--extra/ebook-tools/PKGBUILD27
-rw-r--r--extra/ecasound/PKGBUILD52
-rw-r--r--extra/ecasound/ecasound.changelog44
-rw-r--r--extra/ecl/PKGBUILD35
-rw-r--r--extra/eclipse/PKGBUILD58
-rw-r--r--extra/eclipse/eclipse.desktop9
-rw-r--r--extra/eclipse/eclipse.ini.patch14
-rw-r--r--extra/eclipse/eclipse.install15
-rw-r--r--extra/eclipse/eclipse.sh4
-rw-r--r--extra/eclipse/eclipse.svg1623
-rwxr-xr-xextra/efibootmgr/PKGBUILD52
-rwxr-xr-xextra/efibootmgr/efibootmgr_after_0.5.4_git.patch159
-rwxr-xr-xextra/efibootmgr/efibootmgr_default_to_grub2.patch44
-rw-r--r--extra/eject/PKGBUILD24
-rw-r--r--extra/eject/eject-2.1.5-handle-spaces.patch57
-rw-r--r--extra/ekiga/PKGBUILD36
-rw-r--r--extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch62
-rw-r--r--extra/ekiga/ekiga.install22
-rw-r--r--extra/emacs/PKGBUILD50
-rw-r--r--extra/emacs/emacs.desktop12
-rw-r--r--extra/emacs/emacs.install28
-rw-r--r--extra/emelfm2/PKGBUILD27
-rw-r--r--extra/emovix/PKGBUILD23
-rw-r--r--extra/empathy/PKGBUILD40
-rw-r--r--extra/empathy/empathy-2.32.2-libnotify-0.7.patch54
-rw-r--r--extra/empathy/empathy.install16
-rw-r--r--extra/enblend-enfuse/PKGBUILD30
-rw-r--r--extra/enblend-enfuse/enblend-enfuse.install20
-rw-r--r--extra/enblend-enfuse/libpng-1.4.patch14
-rw-r--r--extra/enca/PKGBUILD27
-rw-r--r--extra/enchant/PKGBUILD30
-rw-r--r--extra/enlightenment/PKGBUILD42
-rw-r--r--extra/enscript/PKGBUILD26
-rw-r--r--extra/eog/PKGBUILD33
-rw-r--r--extra/eog/eog.install24
-rw-r--r--extra/epiphany-extensions/PKGBUILD25
-rw-r--r--extra/epiphany-extensions/epiphany-extensions.install13
-rw-r--r--extra/epiphany/PKGBUILD41
-rw-r--r--extra/epiphany/add-dbus-glib.patch20
-rw-r--r--extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch38
-rw-r--r--extra/epiphany/epiphany.install25
-rw-r--r--extra/epiphany/fix-introspection.patch21
-rw-r--r--extra/epplet-base/ChangeLog16
-rw-r--r--extra/epplet-base/PKGBUILD28
-rw-r--r--extra/erlang/PKGBUILD64
-rw-r--r--extra/esound/PKGBUILD34
-rwxr-xr-xextra/esound/esd37
-rw-r--r--extra/esound/esd-0.2.38-alsa-drain.patch11
-rw-r--r--extra/ethstatus/PKGBUILD21
-rw-r--r--extra/ethtool/PKGBUILD20
-rw-r--r--extra/ettercap-gtk/PKGBUILD44
-rw-r--r--extra/ettercap-gtk/ettercap.desktop6
-rw-r--r--extra/ettercap-gtk/fix-segmentation-fault.patch19
-rw-r--r--extra/ettercap/01_pointers_and_ints_dont_mix.diff12
-rw-r--r--extra/ettercap/PKGBUILD36
-rw-r--r--extra/evilwm/PKGBUILD23
-rw-r--r--extra/evilwm/evilwm.desktop8
-rw-r--r--extra/evince/PKGBUILD51
-rw-r--r--extra/evince/evince.install26
-rw-r--r--extra/evince/security_issues_in_dvi-backend.patch97
-rw-r--r--extra/evince/update_to_poppler_api.patch58
-rw-r--r--extra/evolution-data-server/PKGBUILD26
-rw-r--r--extra/evolution-exchange/PKGBUILD30
-rw-r--r--extra/evolution-exchange/evolution-exchange.install17
-rw-r--r--extra/evolution-sharp/PKGBUILD36
-rw-r--r--extra/evolution-sharp/evolution-data-server-lib-target.patch15
-rw-r--r--extra/evolution-sharp/evolution-sharp-0.21.1-fix-retarded-version-check.patch13
-rw-r--r--extra/evolution-webcal/PKGBUILD30
-rw-r--r--extra/evolution-webcal/evolution-webcal.install17
-rw-r--r--extra/evolution/PKGBUILD45
-rw-r--r--extra/evolution/evolution-2.32.1-libnotify-0.7.patch81
-rw-r--r--extra/evolution/evolution.install24
-rw-r--r--extra/exempi/PKGBUILD24
-rw-r--r--extra/exiv2/PKGBUILD26
-rw-r--r--extra/exo/PKGBUILD41
-rw-r--r--extra/exo/exo.install12
-rw-r--r--extra/expect/ChangeLog11
-rw-r--r--extra/expect/PKGBUILD38
-rw-r--r--extra/expect/expect.install5
-rw-r--r--extra/f-spot/PKGBUILD39
-rw-r--r--extra/f-spot/f-spot.install24
-rw-r--r--extra/f-spot/mono-2.8.patch22
-rw-r--r--extra/faad2/ChangeLog26
-rw-r--r--extra/faad2/LICENSE42
-rw-r--r--extra/faad2/PKGBUILD26
-rw-r--r--extra/facile/PKGBUILD23
-rw-r--r--extra/fakechroot/PKGBUILD32
-rw-r--r--extra/fakechroot/fakechroot.install14
-rw-r--r--extra/fam/PKGBUILD47
-rwxr-xr-xextra/fam/fam44
-rw-r--r--extra/fam/fam-2.7.0-buildfixes.patch69
-rw-r--r--extra/fam/fam-2.7.0-dnotify.patch975
-rw-r--r--extra/fam/fam-2.7.0-largefiles.patch8
-rw-r--r--extra/fam/fam-2.7.0-limits.patch11
-rw-r--r--extra/farsight2/PKGBUILD36
-rw-r--r--extra/fastjar/PKGBUILD25
-rw-r--r--extra/fastjar/fastjar.install16
-rw-r--r--extra/fbida/ChangeLog21
-rw-r--r--extra/fbida/PKGBUILD42
-rw-r--r--extra/fbida/jinclude.h91
-rw-r--r--extra/fbida/libpng-1.4.patch17
-rw-r--r--extra/fbida/transupp.c1583
-rw-r--r--extra/fbida/transupp.h210
-rw-r--r--extra/fbset/PKGBUILD29
-rw-r--r--extra/fcgi/PKGBUILD31
-rw-r--r--extra/fcgi/gcc44-fix-include.patch17
-rw-r--r--extra/fcitx/PKGBUILD27
-rw-r--r--extra/feh/PKGBUILD29
-rw-r--r--extra/festival/PKGBUILD119
-rw-r--r--extra/festival/festconfig.patch84
-rw-r--r--extra/festival/speechconfig.patch132
-rw-r--r--extra/fetchmail/PKGBUILD37
-rw-r--r--extra/fetchmail/fetchmail.conf5
-rw-r--r--extra/fetchmail/fetchmail.install20
-rw-r--r--extra/fetchmail/fetchmail.rc41
-rw-r--r--extra/ffcall/PKGBUILD26
-rw-r--r--extra/ffmpegthumbnailer/PKGBUILD30
-rw-r--r--extra/fftw/PKGBUILD50
-rw-r--r--extra/fftw/fftw.install22
-rw-r--r--extra/file-roller/PKGBUILD39
-rw-r--r--extra/file-roller/file-roller.install24
-rw-r--r--extra/flac/ChangeLog5
-rw-r--r--extra/flac/PKGBUILD29
-rw-r--r--extra/flac/flac-1.2.1-gcc-4.3-includes.patch11
-rw-r--r--extra/fltk/PKGBUILD26
-rw-r--r--extra/fluidsynth/PKGBUILD46
-rw-r--r--extra/fluidsynth/fluidsynth.conf2
-rw-r--r--extra/fluidsynth/fluidsynthd40
-rw-r--r--extra/fluxbox/PKGBUILD33
-rw-r--r--extra/fluxbox/fluxbox.desktop6
-rw-r--r--extra/fluxter/ChangeLog6
-rw-r--r--extra/fluxter/PKGBUILD22
-rw-r--r--extra/folks/PKGBUILD23
-rw-r--r--extra/fontconfig/29-replace-bitmap-fonts.conf37
-rw-r--r--extra/fontconfig/30-urw-aliases.patch13
-rw-r--r--extra/fontconfig/PKGBUILD35
-rw-r--r--extra/fontconfig/fontconfig.install100
-rw-r--r--extra/fontforge/PKGBUILD38
-rw-r--r--extra/foobillard/03_bugfixes36
-rw-r--r--extra/foobillard/05_foul_explanation262
-rw-r--r--extra/foobillard/06_show_ball_to_hit255
-rw-r--r--extra/foobillard/ChangeLog16
-rw-r--r--extra/foobillard/PKGBUILD46
-rw-r--r--extra/foobillard/foobillard.desktop9
-rw-r--r--extra/foobillard/foobillard.pngbin0 -> 4288 bytes
-rw-r--r--extra/foobillard/snooker_draw.patch48
-rw-r--r--extra/foobillard/snooker_reset.patch11
-rw-r--r--extra/foomatic/PKGBUILD97
-rw-r--r--extra/fortune-mod/01_all_fortune_all-fix.patch21
-rw-r--r--extra/fortune-mod/LICENSE35
-rw-r--r--extra/fortune-mod/PKGBUILD32
-rw-r--r--extra/fping/PKGBUILD25
-rw-r--r--extra/fprint_demo/PKGBUILD21
-rw-r--r--extra/freealut/PKGBUILD23
-rw-r--r--extra/freeciv/PKGBUILD27
-rw-r--r--extra/freeciv/freeciv.install11
-rw-r--r--extra/freeglut/2.6.0-GFX_radeon.patch28
-rw-r--r--extra/freeglut/ChangeLog8
-rw-r--r--extra/freeglut/PKGBUILD32
-rw-r--r--extra/freenx/PKGBUILD77
-rw-r--r--extra/freenx/freenx-latest-svn.patch288
-rw-r--r--extra/freenx/freenx.install27
-rw-r--r--extra/freenx/keymap.patch32
-rw-r--r--extra/freenx/nxagent-startup.patch12
-rw-r--r--extra/freenx/remove-dialog.patch32
-rw-r--r--extra/freetds/PKGBUILD28
-rw-r--r--extra/freetype2/PKGBUILD34
-rw-r--r--extra/freetype2/allow-hlineto-vlineto-without-arguments.patch57
-rw-r--r--extra/freetype2/freetype-2.2.1-enable-valid.patch20
-rw-r--r--extra/freetype2/freetype-2.3.0-enable-spr.patch11
-rw-r--r--extra/fribidi/ChangeLog5
-rw-r--r--extra/fribidi/PKGBUILD23
-rw-r--r--extra/frozen-bubble/PKGBUILD32
-rw-r--r--extra/frozen-bubble/frozen-bubble.desktop9
-rw-r--r--extra/fsarchiver/PKGBUILD27
-rw-r--r--extra/fssos-nsvs/PKGBUILD29
-rw-r--r--extra/fssos-nsvs/fssos-nsvs.install17
-rwxr-xr-xextra/fssos-nsvs/nsvsd36
-rw-r--r--extra/ftgl/PKGBUILD34
-rw-r--r--extra/ftjam/PKGBUILD30
-rw-r--r--extra/ftjam/license.txt8
-rw-r--r--extra/fuse/PKGBUILD55
-rw-r--r--extra/fuse/fuse.conf9
-rw-r--r--extra/fuse/fuse.install14
-rwxr-xr-xextra/fuse/fuse.rc.d49
-rw-r--r--extra/fvwm-devel/ChangeLog44
-rw-r--r--extra/fvwm-devel/PKGBUILD36
-rw-r--r--extra/fvwm-devel/fvwm-devel.desktop6
-rw-r--r--extra/fvwm/ChangeLog5
-rw-r--r--extra/fvwm/PKGBUILD25
-rw-r--r--extra/fvwm/fvwm2.desktop8
-rw-r--r--extra/fwbuilder/PKGBUILD26
-rw-r--r--extra/fwbuilder/fwbuilder.install12
-rw-r--r--extra/fyre/ChangeLog7
-rw-r--r--extra/fyre/PKGBUILD26
-rw-r--r--extra/fyre/fyre.install11
-rw-r--r--extra/garcon/PKGBUILD35
-rw-r--r--extra/gc/PKGBUILD21
-rw-r--r--extra/gcalctool/PKGBUILD25
-rw-r--r--extra/gcalctool/gcalctool.install11
-rw-r--r--extra/gcin/PKGBUILD36
-rw-r--r--extra/gcin/fix_qt4_paths.patch31
-rw-r--r--extra/gcin/fix_x86_64_libdir.patch12
-rw-r--r--extra/gcin/install13
-rw-r--r--extra/gconf-editor/PKGBUILD29
-rw-r--r--extra/gconf-editor/gconf-editor.install22
-rw-r--r--extra/gconf-perl/PKGBUILD23
-rw-r--r--extra/gconf/01_xml-gettext-domain.patch362
-rw-r--r--extra/gconf/PKGBUILD42
-rwxr-xr-xextra/gconf/gconf-merge-schema34
-rw-r--r--extra/gconf/gconf-reload.patch20
-rw-r--r--extra/gconf/gconf.install20
-rwxr-xr-xextra/gconf/gconfpkg50
-rw-r--r--extra/gconfmm/PKGBUILD38
-rw-r--r--extra/gd/ChangeLog11
-rw-r--r--extra/gd/PKGBUILD26
-rw-r--r--extra/gd/libpng14.patch12
-rw-r--r--extra/gdb/PKGBUILD44
-rw-r--r--extra/gdb/gdb.install18
-rw-r--r--extra/gdk-pixbuf2/PKGBUILD32
-rw-r--r--extra/gdk-pixbuf2/gdk-pixbuf2.install11
-rw-r--r--extra/gdl/PKGBUILD23
-rw-r--r--extra/gdm/0001-port-to-libpanel-applet-3.0.patch506
-rw-r--r--extra/gdm/04_fix_external_program_directories.patch48
-rw-r--r--extra/gdm/PKGBUILD62
-rw-r--r--extra/gdm/correctly-give-focus-to-user-chooser.patch46
-rwxr-xr-xextra/gdm/gdm36
-rw-r--r--extra/gdm/gdm-autologin.pam8
-rw-r--r--extra/gdm/gdm-vt-allocation-hack.patch118
-rw-r--r--extra/gdm/gdm.install44
-rw-r--r--extra/gdm/gdm.pam10
-rw-r--r--extra/gdome2/PKGBUILD21
-rw-r--r--extra/gecko-sharp-2.0/PKGBUILD31
-rw-r--r--extra/gecko-sharp-2.0/gecko-sharp-2.0-0.12-xulrunner.patch42
-rw-r--r--extra/gedit/PKGBUILD29
-rw-r--r--extra/gedit/gedit.install22
-rw-r--r--extra/geeqie/PKGBUILD29
-rw-r--r--extra/gegl/PKGBUILD32
-rw-r--r--extra/genius/PKGBUILD32
-rw-r--r--extra/genius/genius.install13
-rw-r--r--extra/geoip/PKGBUILD25
-rw-r--r--extra/gettext-mono/PKGBUILD31
-rw-r--r--extra/gftp/PKGBUILD21
-rw-r--r--extra/ggv/PKGBUILD28
-rw-r--r--extra/ggv/ggv.install22
-rw-r--r--extra/ggz-client-libs/PKGBUILD21
-rw-r--r--extra/ghc/PKGBUILD69
-rw-r--r--extra/ghc/build.mk150
-rw-r--r--extra/ghc/ghc.install19
-rw-r--r--extra/ghex/PKGBUILD29
-rw-r--r--extra/ghex/ghex.install22
-rw-r--r--extra/giblib/PKGBUILD26
-rw-r--r--extra/gif2png/PKGBUILD30
-rw-r--r--extra/giflib/PKGBUILD39
-rw-r--r--extra/gifsicle/PKGBUILD25
-rw-r--r--extra/gimp-dbp/PKGBUILD26
-rw-r--r--extra/gimp-devel/PKGBUILD54
-rw-r--r--extra/gimp-devel/gimp-devel.install12
-rw-r--r--extra/gimp-devel/linux.gpl19
-rw-r--r--extra/gimp-gap/PKGBUILD29
-rw-r--r--extra/gimp-refocus/PKGBUILD34
-rw-r--r--extra/gimp-refocus/refocus-gimp-2.0.patch209
-rw-r--r--extra/gimp-refocus/refocus-gimp-preview.patch440
-rw-r--r--extra/gimp-refocus/refocus-mirror-fix.patch54
-rw-r--r--extra/gimp-ufraw/PKGBUILD34
-rw-r--r--extra/gimp/PKGBUILD46
-rw-r--r--extra/gimp/gimp.install12
-rw-r--r--extra/gimp/linux.gpl19
-rw-r--r--extra/git/ChangeLog36
-rw-r--r--extra/git/PKGBUILD79
-rw-r--r--extra/git/git-daemon70
-rw-r--r--extra/git/git-daemon.conf5
-rw-r--r--extra/gksu/PKGBUILD37
-rw-r--r--extra/glade-perl/PKGBUILD23
-rw-r--r--extra/glade/PKGBUILD26
-rw-r--r--extra/glade/glade.install12
-rw-r--r--extra/glew/PKGBUILD27
-rw-r--r--extra/glhack/ChangeLog12
-rw-r--r--extra/glhack/PKGBUILD50
-rw-r--r--extra/glhack/glhack.install24
-rw-r--r--extra/glib-perl/PKGBUILD29
-rw-r--r--extra/glib/ChangeLog11
-rw-r--r--extra/glib/PKGBUILD31
-rw-r--r--extra/glib/aclocal-fixes.patch11
-rw-r--r--extra/glib/gcc340.patch15
-rw-r--r--extra/glib/glib.install20
-rw-r--r--extra/glibmm/PKGBUILD35
-rw-r--r--extra/glpk/PKGBUILD32
-rw-r--r--extra/glsof/ChangeLog6
-rw-r--r--extra/glsof/PKGBUILD25
-rw-r--r--extra/glsof/glsof.desktop12
-rw-r--r--extra/gluezilla/PKGBUILD29
-rw-r--r--extra/gluezilla/configure_xulrunner.patch11
-rw-r--r--extra/gluezilla/xulrunner2.0.patch150
-rw-r--r--extra/gluezilla/xulrunner2.0_configure.patch51
-rw-r--r--extra/gmetadom/PKGBUILD26
-rw-r--r--extra/gmetadom/gmetadom-0.2.6-gcc43.patch18
-rw-r--r--extra/gmime/PKGBUILD35
-rw-r--r--extra/gmpc/PKGBUILD27
-rw-r--r--extra/gmpc/gmpc.install11
-rw-r--r--extra/gnet/ChangeLog5
-rw-r--r--extra/gnet/PKGBUILD23
-rw-r--r--extra/gnokii/PKGBUILD45
-rw-r--r--extra/gnokii/gnokii.patch12
-rw-r--r--extra/gnome-alsamixer/PKGBUILD24
-rw-r--r--extra/gnome-alsamixer/gnome-alsamixer-0.9.6-gtk24.patch15
-rw-r--r--extra/gnome-applets/PKGBUILD45
-rw-r--r--extra/gnome-applets/add-dbus-glib.patch28
-rw-r--r--extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch53
-rw-r--r--extra/gnome-applets/gnome-applets.install22
-rw-r--r--extra/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules11
-rw-r--r--extra/gnome-bluetooth/PKGBUILD43
-rw-r--r--extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch27
-rw-r--r--extra/gnome-bluetooth/gnome-bluetooth.install13
-rw-r--r--extra/gnome-control-center/PKGBUILD33
-rw-r--r--extra/gnome-control-center/gnome-control-center.install29
-rw-r--r--extra/gnome-desktop-sharp/PKGBUILD31
-rw-r--r--extra/gnome-desktop-sharp/gnome-desktop-sharp-lib-target.patch9
-rw-r--r--extra/gnome-desktop/PKGBUILD27
-rw-r--r--extra/gnome-device-manager/PKGBUILD26
-rw-r--r--extra/gnome-device-manager/gnome-device-manager.install11
-rw-r--r--extra/gnome-disk-utility/PKGBUILD30
-rw-r--r--extra/gnome-disk-utility/fix-freeze.patch32
-rw-r--r--extra/gnome-disk-utility/gnome-disk-utility.install11
-rw-r--r--extra/gnome-games/03_missing_icons.patch38
-rw-r--r--extra/gnome-games/PKGBUILD53
-rw-r--r--extra/gnome-games/gnome-games.install151
-rw-r--r--extra/gnome-games/scores.pngbin0 -> 462 bytes
-rw-r--r--extra/gnome-keyring-sharp/02_gnome_2.30_compatibility.patch1484
-rw-r--r--extra/gnome-keyring-sharp/PKGBUILD28
-rw-r--r--extra/gnome-keyring/PKGBUILD28
-rw-r--r--extra/gnome-keyring/gnome-keyring.install11
-rw-r--r--extra/gnome-mag/PKGBUILD24
-rw-r--r--extra/gnome-media/PKGBUILD71
-rw-r--r--extra/gnome-media/gnome-media.install22
-rw-r--r--extra/gnome-media/gnome_volume_control_fix_channel_bars.patch12
-rw-r--r--extra/gnome-menus/PKGBUILD30
-rw-r--r--extra/gnome-menus/menus.patch25
-rw-r--r--extra/gnome-netstatus/PKGBUILD31
-rw-r--r--extra/gnome-netstatus/gnome-netstatus.install22
-rw-r--r--extra/gnome-nettool/PKGBUILD27
-rw-r--r--extra/gnome-nettool/gnome-nettool.install11
-rw-r--r--extra/gnome-panel/PKGBUILD54
-rw-r--r--extra/gnome-panel/evolution-appointments.patch13
-rw-r--r--extra/gnome-panel/gnome-panel-bonobo.install11
-rw-r--r--extra/gnome-panel/gnome-panel.install34
-rw-r--r--extra/gnome-perl/PKGBUILD23
-rw-r--r--extra/gnome-phone-manager/PKGBUILD28
-rw-r--r--extra/gnome-phone-manager/gnome-phone-manager.install17
-rw-r--r--extra/gnome-pilot/PKGBUILD35
-rw-r--r--extra/gnome-pilot/gnome-pilot.install17
-rw-r--r--extra/gnome-power-manager/PKGBUILD37
-rw-r--r--extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch30
-rw-r--r--extra/gnome-power-manager/gnome-power-manager.install22
-rw-r--r--extra/gnome-python-desktop/PKGBUILD163
-rw-r--r--extra/gnome-python-extras/PKGBUILD87
-rw-r--r--extra/gnome-python-extras/gnome-python-extras-2.25.3-update-for-2.27.2.patch145
-rw-r--r--extra/gnome-python/PKGBUILD69
-rw-r--r--extra/gnome-screensaver/PKGBUILD50
-rw-r--r--extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch26
-rw-r--r--extra/gnome-screensaver/gnome-screensaver.install17
-rw-r--r--extra/gnome-screensaver/gnome-screensaver.pam3
-rw-r--r--extra/gnome-session/PKGBUILD29
-rw-r--r--extra/gnome-session/gnome-session.install22
-rw-r--r--extra/gnome-settings-daemon/PKGBUILD74
-rw-r--r--extra/gnome-settings-daemon/add_notify_init.patch14
-rw-r--r--extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch76
-rw-r--r--extra/gnome-settings-daemon/gnome-settings-daemon.install22
-rw-r--r--extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch809
-rw-r--r--extra/gnome-settings-daemon/gstreamer-volume-2.30.patch861
-rw-r--r--extra/gnome-settings-daemon/gstreamer-volume.patch808
-rw-r--r--extra/gnome-sharp/PKGBUILD27
-rw-r--r--extra/gnome-speech/PKGBUILD26
-rw-r--r--extra/gnome-spell/PKGBUILD30
-rw-r--r--extra/gnome-spell/gnome-spell-enchant.diff551
-rw-r--r--extra/gnome-system-monitor/PKGBUILD29
-rw-r--r--extra/gnome-system-monitor/gnome-system-monitor.install17
-rw-r--r--extra/gnome-terminal/PKGBUILD29
-rw-r--r--extra/gnome-terminal/gnome-terminal.install17
-rw-r--r--extra/gnome-user-share/PKGBUILD32
-rw-r--r--extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch31
-rw-r--r--extra/gnome-user-share/gnome-user-share.install22
-rw-r--r--extra/gnome-utils/PKGBUILD35
-rw-r--r--extra/gnome-utils/gnome-utils.install22
-rw-r--r--extra/gnome-vfs-perl/PKGBUILD23
-rw-r--r--extra/gnome-vfs/PKGBUILD49
-rw-r--r--extra/gnome-vfs/gnome-vfs.install17
-rw-r--r--extra/gnome-vfs/gnutls-config.patch25
-rw-r--r--extra/gnome-vfs/hal-show-volume-names.patch46
-rw-r--r--extra/gnome-vfsmm/PKGBUILD24
-rw-r--r--extra/gnomecanvas-perl/PKGBUILD23
-rw-r--r--extra/gnu-netcat/PKGBUILD23
-rw-r--r--extra/gnu-netcat/gnu-netcat.install13
-rw-r--r--extra/gnucash/PKGBUILD40
-rw-r--r--extra/gnucash/gnucash.install34
-rw-r--r--extra/gnuchess/PKGBUILD25
-rw-r--r--extra/gnugo/LICENSE70
-rw-r--r--extra/gnugo/PKGBUILD26
-rw-r--r--extra/gnugo/gnugo.install18
-rw-r--r--extra/gnumeric/PKGBUILD36
-rw-r--r--extra/gnumeric/gnumeric.install26
-rw-r--r--extra/gnupg/PKGBUILD29
-rw-r--r--extra/gnupg/gnupg.install21
-rw-r--r--extra/gnupg2/PKGBUILD30
-rw-r--r--extra/gnupg2/gnupg2-2.0.16-security.patch11
-rw-r--r--extra/gnupg2/gnupg2.install20
-rw-r--r--extra/gnuplot/PKGBUILD50
-rw-r--r--extra/gnuplot/gnuplot.install35
-rw-r--r--extra/gnutls/PKGBUILD30
-rw-r--r--extra/gnutls/gnutls.install20
-rw-r--r--extra/gob2/PKGBUILD21
-rw-r--r--extra/gobject-introspection/PKGBUILD30
-rw-r--r--extra/goffice/PKGBUILD27
-rw-r--r--extra/gok/PKGBUILD29
-rw-r--r--extra/gok/gok.install22
-rw-r--r--extra/gok/lm.patch12
-rw-r--r--extra/gpart/PKGBUILD43
-rw-r--r--extra/gpart/gpart-0.1h-PIC.patch20
-rw-r--r--extra/gpart/gpart-0.1h-errno.patch20
-rw-r--r--extra/gpart/gpart-0.1h-no-_syscall.patch15
-rw-r--r--extra/gpart/gpart-0.1h-ntfs.patch75
-rw-r--r--extra/gpart/gpart-0.1h-vfat.patch17
-rw-r--r--extra/gparted/PKGBUILD38
-rw-r--r--extra/gparted/gparted.install11
-rw-r--r--extra/gperf/PKGBUILD22
-rw-r--r--extra/gperf/gperf.install20
-rw-r--r--extra/gpgme/PKGBUILD30
-rw-r--r--extra/gpgme/gpgme.install18
-rw-r--r--extra/gphoto2/PKGBUILD21
-rw-r--r--extra/gpsd/LICENSE38
-rw-r--r--extra/gpsd/PKGBUILD77
-rwxr-xr-xextra/gpsd/gpsd43
-rw-r--r--extra/gpsd/gpsd.install16
-rw-r--r--extra/gptfdisk/PKGBUILD30
-rw-r--r--extra/gqmpeg/PKGBUILD21
-rw-r--r--extra/gqview/PKGBUILD20
-rw-r--r--extra/grantlee/PKGBUILD29
-rw-r--r--extra/graphicsmagick/PKGBUILD48
-rw-r--r--extra/graphite/PKGBUILD51
-rw-r--r--extra/graphite/pango-graphite.install12
-rw-r--r--extra/graphviz/LICENSE87
-rw-r--r--extra/graphviz/PKGBUILD49
-rw-r--r--extra/graphviz/install17
-rw-r--r--extra/grip/PKGBUILD22
-rw-r--r--extra/grip/grip.install33
-rw-r--r--extra/gsf-sharp/PKGBUILD29
-rw-r--r--extra/gsl/PKGBUILD30
-rw-r--r--extra/gsl/gsl.install21
-rw-r--r--extra/gsm/PKGBUILD43
-rw-r--r--extra/gsm/gsm.patch198
-rw-r--r--extra/gstreamer0.10-base/PKGBUILD48
-rw-r--r--extra/gstreamer0.10-ffmpeg/PKGBUILD25
-rw-r--r--extra/gstreamer0.10-good/PKGBUILD52
-rw-r--r--extra/gstreamer0.10-good/gstreamer0.10-good-plugins.install19
-rw-r--r--extra/gstreamer0.10-python/PKGBUILD28
-rw-r--r--extra/gstreamer0.10-ugly/PKGBUILD43
-rw-r--r--extra/gstreamer0.10/PKGBUILD36
-rw-r--r--extra/gthumb/PKGBUILD34
-rw-r--r--extra/gthumb/gthumb.install24
-rw-r--r--extra/gtk-engines/PKGBUILD24
-rw-r--r--extra/gtk-qt-engine/PKGBUILD26
-rw-r--r--extra/gtk-sharp-2/PKGBUILD28
-rw-r--r--extra/gtk-theme-switch2/PKGBUILD31
-rw-r--r--extra/gtk-vnc/PKGBUILD30
-rw-r--r--extra/gtk-xfce-engine/PKGBUILD33
-rw-r--r--extra/gtk/PKGBUILD33
-rw-r--r--extra/gtk/aclocal-fixes.patch11
-rw-r--r--extra/gtk/gtk.install20
-rw-r--r--extra/gtk2-perl/PKGBUILD25
-rw-r--r--extra/gtk2/PKGBUILD40
-rw-r--r--extra/gtk2/gtk2.install16
-rw-r--r--extra/gtk2/old-icon-symlinks.patch269
-rw-r--r--extra/gtk2/xid-collision-debug.patch15
-rw-r--r--extra/gtkglext/PKGBUILD27
-rw-r--r--extra/gtkglext/gtk2.20.patch77
-rw-r--r--extra/gtkglext/gtkglext-1.0.6-pangox.patch30
-rw-r--r--extra/gtkglextmm/PKGBUILD24
-rw-r--r--extra/gtkhtml/PKGBUILD27
-rw-r--r--extra/gtkimageview/PKGBUILD27
-rw-r--r--extra/gtkmathview/PKGBUILD30
-rw-r--r--extra/gtkmathview/gtkmathview-0.8.0-cond-t1.patch22
-rw-r--r--extra/gtkmathview/gtkmathview-0.8.0-gcc44.patch67
-rw-r--r--extra/gtkmm/PKGBUILD38
-rw-r--r--extra/gtkpod/PKGBUILD29
-rw-r--r--extra/gtkpod/gtkpod.install11
-rw-r--r--extra/gtksourceview-sharp-2.0/PKGBUILD31
-rw-r--r--extra/gtksourceview-sharp-2.0/gtksourceview-sharp-2.0.install24
-rw-r--r--extra/gtksourceview-sharp-2.0/gtksourceview-sharp2-gnome-print.patch57
-rw-r--r--extra/gtksourceview/PKGBUILD24
-rw-r--r--extra/gtksourceview2/PKGBUILD24
-rw-r--r--extra/gtkspell/PKGBUILD23
-rw-r--r--extra/gucharmap/PKGBUILD30
-rw-r--r--extra/gucharmap/gucharmap.install22
-rw-r--r--extra/guile/PKGBUILD29
-rw-r--r--extra/guile/guile.install30
-rw-r--r--extra/gutenprint/PKGBUILD39
-rw-r--r--extra/gutenprint/gutenprint.install9
-rw-r--r--extra/gv/PKGBUILD32
-rw-r--r--extra/gv/aplinedel.patch11
-rw-r--r--extra/gv/gv.desktop11
-rw-r--r--extra/gv/gv.install16
-rw-r--r--extra/gv/gv.pngbin0 -> 483 bytes
-rw-r--r--extra/gvfs/PKGBUILD100
-rw-r--r--extra/gvfs/gvfs-module.install7
-rw-r--r--extra/gvfs/gvfs.install12
-rw-r--r--extra/gweled/PKGBUILD31
-rw-r--r--extra/gweled/gweled.install24
-rw-r--r--extra/habak/PKGBUILD19
-rw-r--r--extra/hal/PKGBUILD86
-rw-r--r--extra/hal/dbus-error-init.patch231
-rw-r--r--extra/hal/fix-libusb-detection.patch66
-rw-r--r--extra/hal/hal54
-rw-r--r--extra/hal/hal-0.5.9-hide-diagnostic.patch14
-rw-r--r--extra/hal/hal-HDAPS-blacklist.patch30
-rw-r--r--extra/hal/hal-KVM-evdev.patch36
-rw-r--r--extra/hal/hal-ignore-internal-dm-devices.patch43
-rw-r--r--extra/hal/hal-remove-dell-killswitch.patch201
-rw-r--r--extra/hal/hal-use-at-console.patch45
-rw-r--r--extra/hal/hal-xen-unignore-axes.patch39
-rw-r--r--extra/hal/hal.install24
-rw-r--r--extra/hal/handle-input-touchpad.patch101
-rw-r--r--extra/hal/macbook-fix-ioperm.patch41
-rw-r--r--extra/hal/path-max.patch31
-rw-r--r--extra/happy/PKGBUILD30
-rw-r--r--extra/haskell-binary/PKGBUILD39
-rw-r--r--extra/haskell-binary/haskell-binary.install18
-rw-r--r--extra/haskell-cgi/PKGBUILD39
-rw-r--r--extra/haskell-cgi/haskell-cgi.install18
-rw-r--r--extra/haskell-dataenc/PKGBUILD39
-rw-r--r--extra/haskell-dataenc/haskell-dataenc.install18
-rw-r--r--extra/haskell-deepseq/PKGBUILD38
-rw-r--r--extra/haskell-deepseq/haskell-deepseq.install18
-rw-r--r--extra/haskell-fgl/PKGBUILD36
-rw-r--r--extra/haskell-fgl/haskell-fgl.install18
-rw-r--r--extra/haskell-glut/PKGBUILD36
-rw-r--r--extra/haskell-glut/haskell-glut.install18
-rw-r--r--extra/haskell-hashed-storage/PKGBUILD40
-rw-r--r--extra/haskell-hashed-storage/haskell-hashed-storage.install18
-rw-r--r--extra/haskell-haskeline/PKGBUILD39
-rw-r--r--extra/haskell-haskeline/haskell-haskeline.install18
-rw-r--r--extra/haskell-haskell-src/PKGBUILD39
-rw-r--r--extra/haskell-haskell-src/haskell-haskell-src.install18
-rw-r--r--extra/haskell-html/PKGBUILD39
-rw-r--r--extra/haskell-html/haskell-html.install19
-rw-r--r--extra/haskell-http/PKGBUILD40
-rw-r--r--extra/haskell-http/haskell-http.install18
-rw-r--r--extra/haskell-hunit/PKGBUILD37
-rw-r--r--extra/haskell-hunit/haskell-hunit.install19
-rw-r--r--extra/haskell-mmap/PKGBUILD38
-rw-r--r--extra/haskell-mmap/haskell-mmap.install18
-rw-r--r--extra/haskell-mtl/PKGBUILD38
-rw-r--r--extra/haskell-mtl/haskell-mtl.install18
-rw-r--r--extra/haskell-network/PKGBUILD39
-rw-r--r--extra/haskell-network/haskell-network.install18
-rw-r--r--extra/haskell-opengl/PKGBUILD35
-rw-r--r--extra/haskell-opengl/haskell-opengl.install18
-rw-r--r--extra/haskell-parallel/PKGBUILD38
-rw-r--r--extra/haskell-parallel/haskell-parallel.install18
-rw-r--r--extra/haskell-parsec/PKGBUILD39
-rw-r--r--extra/haskell-parsec/haskell-parsec.install18
-rw-r--r--extra/haskell-platform/PKGBUILD39
-rw-r--r--extra/haskell-quickcheck/PKGBUILD38
-rw-r--r--extra/haskell-quickcheck/haskell-quickcheck.install18
-rw-r--r--extra/haskell-regex-base/PKGBUILD37
-rw-r--r--extra/haskell-regex-base/haskell-regex-base.install18
-rw-r--r--extra/haskell-regex-compat/PKGBUILD37
-rw-r--r--extra/haskell-regex-compat/haskell-regex-compat.install18
-rw-r--r--extra/haskell-regex-posix/PKGBUILD37
-rw-r--r--extra/haskell-regex-posix/haskell-regex-posix.install18
-rw-r--r--extra/haskell-stm/PKGBUILD38
-rw-r--r--extra/haskell-stm/haskell-stm.install18
-rw-r--r--extra/haskell-syb/PKGBUILD37
-rw-r--r--extra/haskell-syb/haskell-syb.install18
-rw-r--r--extra/haskell-tar/PKGBUILD37
-rw-r--r--extra/haskell-tar/haskell-tar.install18
-rw-r--r--extra/haskell-terminfo/PKGBUILD38
-rw-r--r--extra/haskell-terminfo/haskell-terminfo.install18
-rw-r--r--extra/haskell-text/PKGBUILD38
-rw-r--r--extra/haskell-text/haskell-text.install18
-rw-r--r--extra/haskell-transformers/PKGBUILD38
-rw-r--r--extra/haskell-transformers/haskell-transformers.install18
-rw-r--r--extra/haskell-utf8-string/PKGBUILD39
-rw-r--r--extra/haskell-utf8-string/haskell-utf8-string.install18
-rw-r--r--extra/haskell-xhtml/PKGBUILD38
-rw-r--r--extra/haskell-xhtml/haskell-xhtml.install19
-rw-r--r--extra/haskell-zlib/PKGBUILD39
-rw-r--r--extra/haskell-zlib/haskell-zlib.install18
-rw-r--r--extra/hd2u/PKGBUILD21
-rw-r--r--extra/hddtemp/PKGBUILD41
-rw-r--r--extra/hddtemp/hddtemp39
-rw-r--r--extra/hddtemp/hddtemp-0.3-beta15-reg-eip.patch22
-rw-r--r--extra/hddtemp/hddtemp.confd2
-rw-r--r--extra/hdf5/PKGBUILD44
-rw-r--r--extra/help2man/PKGBUILD30
-rw-r--r--extra/hercules/PKGBUILD27
-rw-r--r--extra/hexedit/PKGBUILD22
-rw-r--r--extra/hplip/PKGBUILD61
-rw-r--r--extra/hplip/hplip.install10
-rw-r--r--extra/hpoj/PKGBUILD52
-rw-r--r--extra/hpoj/hpoj-gcc4.patch194
-rw-r--r--extra/hpoj/hpoj-kernel26.patch86
-rw-r--r--extra/hpoj/hpoj-pack.patch59
-rw-r--r--extra/hpoj/hpoj.install7
-rw-r--r--extra/hpoj/hpoj0.91-snmp5.5.patch11
-rw-r--r--extra/hpoj/hpoj_gcc43.diff20
-rw-r--r--extra/hspell/PKGBUILD57
-rw-r--r--extra/hspell/hspell-1.0.sharedlib.patch66
-rw-r--r--extra/htdig/PKGBUILD39
-rw-r--r--extra/htdig/gcc4.3.patch15
-rw-r--r--extra/htdig/quoting.patch26
-rw-r--r--extra/htop/ChangeLog14
-rw-r--r--extra/htop/PKGBUILD30
-rw-r--r--extra/hugin/PKGBUILD38
-rw-r--r--extra/hugin/hugin.install15
-rw-r--r--extra/hunspell/PKGBUILD28
-rw-r--r--extra/hwloc/PKGBUILD36
-rw-r--r--extra/hydrogen/PKGBUILD33
-rw-r--r--extra/hylafax/PKGBUILD56
-rw-r--r--extra/hylafax/config.local273
-rwxr-xr-xextra/hylafax/hylafax71
-rw-r--r--extra/hylafax/hylafax.cron.daily4
-rw-r--r--extra/hylafax/hylafax.install49
-rw-r--r--extra/hyphen/PKGBUILD61
-rw-r--r--extra/i8kutils/PKGBUILD28
-rw-r--r--extra/icecast/PKGBUILD54
-rw-r--r--extra/icecast/icecast.logrotate8
-rw-r--r--extra/icecast/icecastd66
-rw-r--r--extra/icecast/start-by-nobody.patch15
-rw-r--r--extra/icedtea-web/PKGBUILD82
-rw-r--r--extra/icedtea-web/fix-man-location.patch13
-rw-r--r--extra/icedtea-web/icedtea-web.install11
-rw-r--r--extra/icewm/ChangeLog15
-rw-r--r--extra/icewm/PKGBUILD24
-rw-r--r--extra/icewm/icewm.desktop6
-rw-r--r--extra/icon-naming-utils/PKGBUILD24
-rw-r--r--extra/icu/PKGBUILD32
-rw-r--r--extra/id3/PKGBUILD27
-rw-r--r--extra/id3/id3-0.78-gcc44.patch29
-rw-r--r--extra/id3lib/PKGBUILD29
-rw-r--r--extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch49
-rw-r--r--extra/id3lib/id3lib-3.8.3-gcc-4.3.patch83
-rw-r--r--extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff39
-rw-r--r--extra/id3v2/PKGBUILD27
-rw-r--r--extra/ifplugd/PKGBUILD47
-rwxr-xr-xextra/ifplugd/ifdown.01-route.sh3
-rw-r--r--extra/ifplugd/ifplugd89
-rw-r--r--extra/ifplugd/ifplugd-0.28-interface.patch13
-rw-r--r--extra/ifplugd/ifplugd.action29
-rwxr-xr-xextra/ifplugd/ifup.01-route.sh5
-rwxr-xr-xextra/ifplugd/ifup.02-ntpdate.sh2
-rw-r--r--extra/ilmbase/PKGBUILD22
-rw-r--r--extra/imagemagick/PKGBUILD74
-rw-r--r--extra/imagemagick/libpng_mmx_patch_x86_64.patch12
-rw-r--r--extra/imagemagick/perlmagick.rpath.patch10
-rw-r--r--extra/imake/LICENSE131
-rw-r--r--extra/imake/PKGBUILD46
-rw-r--r--extra/imake/linuxconfig.patch31
-rw-r--r--extra/imake/xorg-cf-files-1.0.2-xprint.patch39
-rw-r--r--extra/imap/PKGBUILD85
-rw-r--r--extra/imap/imap10
-rw-r--r--extra/imap/ipop210
-rw-r--r--extra/imap/ipop310
-rw-r--r--extra/imlib/CAN-2004-1026.patch510
-rw-r--r--extra/imlib/ChangeLog13
-rw-r--r--extra/imlib/PKGBUILD33
-rw-r--r--extra/imlib/aclocal-fixes.patch20
-rw-r--r--extra/imlib/debian-bug448360.patch92
-rw-r--r--extra/imlib/libpng14.patch12
-rw-r--r--extra/imlib2/PKGBUILD34
-rw-r--r--extra/indent/PKGBUILD31
-rw-r--r--extra/indent/indent-2.2.9-file.diff12
-rw-r--r--extra/indent/indent.install14
-rw-r--r--extra/inkscape/PKGBUILD45
-rw-r--r--extra/inkscape/inkscape.install13
-rw-r--r--extra/iperf/PKGBUILD25
-rw-r--r--extra/iperf/license25
-rw-r--r--extra/ipod-sharp/PKGBUILD26
-rw-r--r--extra/iptraf/PKGBUILD39
-rw-r--r--extra/iptraf/iptraf-3.0.0-headerfix.patch25
-rw-r--r--extra/irqbalance/PKGBUILD34
-rw-r--r--extra/irqbalance/irqbalance.conf.d6
-rw-r--r--extra/irqbalance/irqbalance.rc.d46
-rw-r--r--extra/irssi/PKGBUILD29
-rw-r--r--extra/isapnptools/PKGBUILD21
-rw-r--r--extra/ispell/ChangeLog6
-rw-r--r--extra/ispell/PKGBUILD60
-rw-r--r--extra/ispell/getline.patch47
-rw-r--r--extra/ispell/license.txt35
-rw-r--r--extra/ivtv-utils/PKGBUILD36
-rw-r--r--extra/jack/PKGBUILD38
-rw-r--r--extra/jack/jack.changelog19
-rw-r--r--extra/jade/PKGBUILD37
-rw-r--r--extra/jasper/PKGBUILD44
-rw-r--r--extra/jasper/jasper-1.900.1-CVE-2008-3520.patch928
-rw-r--r--extra/jasper/jasper-1.900.1-CVE-2008-3522.patch14
-rw-r--r--extra/jasper/jpc_dec.c.patch18
-rw-r--r--extra/jasper/patch-libjasper-stepsizes-overflow.diff14
-rw-r--r--extra/java-access-bridge/PKGBUILD23
-rw-r--r--extra/jhead/LICENSE12
-rw-r--r--extra/jhead/PKGBUILD26
-rw-r--r--extra/json-glib/PKGBUILD22
-rw-r--r--extra/k3b/PKGBUILD39
-rw-r--r--extra/k3b/fix-crash-with-qt-4.7.0.patch37
-rw-r--r--extra/k3b/k3b.install12
-rw-r--r--extra/k9copy/PKGBUILD25
-rw-r--r--extra/k9copy/k9copy.install11
-rw-r--r--extra/kaffeine/PKGBUILD26
-rw-r--r--extra/kde-agent/PKGBUILD20
-rw-r--r--extra/kde-agent/agent-shutdown.sh13
-rw-r--r--extra/kde-agent/agent-startup.sh19
-rw-r--r--extra/kdeaccessibility/PKGBUILD98
-rw-r--r--extra/kdeaccessibility/kdeaccessibility.install11
-rw-r--r--extra/kdeadmin/PKGBUILD80
-rw-r--r--extra/kdeadmin/kdeadmin.install11
-rw-r--r--extra/kdeadmin/syslog-path.patch11
-rw-r--r--extra/kdeartwork/PKGBUILD102
-rw-r--r--extra/kdebase-runtime/PKGBUILD39
-rw-r--r--extra/kdebase-runtime/kdebase-runtime.install12
-rw-r--r--extra/kdebase-workspace/PKGBUILD71
-rw-r--r--extra/kdebase-workspace/fixpath.patch34
-rw-r--r--extra/kdebase-workspace/kde-np.pam7
-rw-r--r--extra/kdebase-workspace/kde.pam7
-rw-r--r--extra/kdebase-workspace/kdebase-workspace.install23
-rw-r--r--extra/kdebase-workspace/kdm36
-rw-r--r--extra/kdebase-workspace/kdm-zsh-profile.patch11
-rw-r--r--extra/kdebase-workspace/kscreensaver.pam1
-rw-r--r--extra/kdebase-workspace/terminate-server.patch11
-rw-r--r--extra/kdebase/PKGBUILD129
-rw-r--r--extra/kdebase/kdebase.install11
-rw-r--r--extra/kdebindings/PKGBUILD70
-rw-r--r--extra/kdeedu/PKGBUILD276
-rw-r--r--extra/kdeedu/kdeedu.install11
-rw-r--r--extra/kdegames/PKGBUILD515
-rw-r--r--extra/kdegames/kdegames-kbattleship.install22
-rw-r--r--extra/kdegames/kdegames-kreversi.install22
-rw-r--r--extra/kdegames/kdegames-ksquares.install22
-rw-r--r--extra/kdegames/kdegames-palapeli.install12
-rw-r--r--extra/kdegames/kdegames.install11
-rw-r--r--extra/kdegraphics/PKGBUILD141
-rw-r--r--extra/kdegraphics/kdegraphics.install11
-rw-r--r--extra/kdelibs/CVE-2011-1168.patch14
-rw-r--r--extra/kdelibs/PKGBUILD70
-rw-r--r--extra/kdelibs/abs-syntax-highlight.patch12
-rw-r--r--extra/kdelibs/archlinux-menu.patch22
-rw-r--r--extra/kdelibs/fix-empty-dolphin-home.patch389
-rw-r--r--extra/kdelibs/kde-applications-menu.patch22
-rw-r--r--extra/kdelibs/kdelibs.install12
-rw-r--r--extra/kdelibs3/PKGBUILD85
-rw-r--r--extra/kdelibs3/acinclude.patch66
-rw-r--r--extra/kdelibs3/kconf_updaterc2
-rwxr-xr-xextra/kdelibs3/kde3.profile6
-rw-r--r--extra/kdelibs3/kde4-compatibility.patch1012
-rw-r--r--extra/kdelibs3/kdelibs3.install12
-rw-r--r--extra/kdemultimedia/PKGBUILD109
-rw-r--r--extra/kdemultimedia/kdemultimedia.install11
-rw-r--r--extra/kdemultimedia/mplayerthumbs.config2
-rw-r--r--extra/kdenetwork/PKGBUILD114
-rw-r--r--extra/kdenetwork/kdenetwork.install11
-rw-r--r--extra/kdepim-runtime/PKGBUILD32
-rw-r--r--extra/kdepim-runtime/kdepim-runtime.install12
-rw-r--r--extra/kdepim/PKGBUILD237
-rw-r--r--extra/kdepim/kdepim.install11
-rw-r--r--extra/kdepimlibs/PKGBUILD33
-rw-r--r--extra/kdepimlibs/kdepimlibs.install11
-rw-r--r--extra/kdeplasma-addons/PKGBUILD603
-rw-r--r--extra/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install12
-rw-r--r--extra/kdeplasma-addons/kdeplasma-addons-applets.install11
-rw-r--r--extra/kdeplasma-applets-networkmanagement/PKGBUILD34
-rw-r--r--extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.install11
-rw-r--r--extra/kdesdk/PKGBUILD243
-rw-r--r--extra/kdesdk/fix-python2-path.patch64
-rw-r--r--extra/kdesdk/kdesdk-kate.install12
-rw-r--r--extra/kdesdk/kdesdk-okteta.install12
-rw-r--r--extra/kdesdk/kdesdk.install11
-rw-r--r--extra/kdetoys/PKGBUILD56
-rw-r--r--extra/kdetoys/kdetoys.install11
-rw-r--r--extra/kdeutils/PKGBUILD180
-rw-r--r--extra/kdeutils/kdeutils.install11
-rw-r--r--extra/kdevelop-pg-qt/PKGBUILD29
-rw-r--r--extra/kdevelop-php/PKGBUILD47
-rw-r--r--extra/kdevelop/PKGBUILD31
-rw-r--r--extra/kdevelop/kdevelop.install12
-rw-r--r--extra/kdevplatform/PKGBUILD33
-rw-r--r--extra/kdevplatform/kdevplatform.install11
-rw-r--r--extra/kdewebdev/PKGBUILD67
-rw-r--r--extra/kdewebdev/kdewebdev.install11
-rw-r--r--extra/kdiff3/PKGBUILD32
-rw-r--r--extra/kdiff3/docbook.patch40
-rw-r--r--extra/kdiff3/kdiff3.install11
-rw-r--r--extra/kexec-tools/PKGBUILD37
-rwxr-xr-xextra/kexec-tools/kexec45
-rw-r--r--extra/kexec-tools/kexec-vesafb.diff78
-rw-r--r--extra/kexec-tools/kexec.conf.d16
-rw-r--r--extra/keytouch-editor/ChangeLog8
-rw-r--r--extra/keytouch-editor/PKGBUILD25
-rw-r--r--extra/keytouch-editor/keytouch-editor-3.1.3-glibc28.patch12
-rw-r--r--extra/keytouch-editor/keytouch-editor.install10
-rw-r--r--extra/keytouch/ChangeLog18
-rw-r--r--extra/keytouch/PKGBUILD46
-rwxr-xr-xextra/keytouch/Xsession8
-rwxr-xr-xextra/keytouch/keytouch.daemon41
-rw-r--r--extra/keytouch/keytouch.desktop9
-rw-r--r--extra/keytouch/keytouch.install14
-rw-r--r--extra/keyutils/PKGBUILD24
-rw-r--r--extra/kile/PKGBUILD32
-rw-r--r--extra/kile/kile.install11
-rw-r--r--extra/kino/PKGBUILD26
-rw-r--r--extra/kino/kino.install14
-rw-r--r--extra/kipi-plugins/PKGBUILD37
-rw-r--r--extra/kipi-plugins/kipi-plugins.install11
-rw-r--r--extra/kismet/PKGBUILD38
-rw-r--r--extra/kismet/kismet-2008-05-R1-infinite-loop.diff20
-rw-r--r--extra/kismet/kismet-build.patch11
-rw-r--r--extra/kmldonkey/PKGBUILD33
-rw-r--r--extra/kmldonkey/kmldonkey.install11
-rw-r--r--extra/kmplayer/PKGBUILD31
-rw-r--r--extra/kmplayer/kmplayer.install11
-rw-r--r--extra/kobodeluxe/ChangeLog8
-rw-r--r--extra/kobodeluxe/PKGBUILD44
-rw-r--r--extra/kobodeluxe/kobodeluxe-gcc-4.3.patch83
-rw-r--r--extra/kobodeluxe/kobodeluxe.install21
-rw-r--r--extra/koffice/PKGBUILD298
-rw-r--r--extra/koffice/filters.install11
-rw-r--r--extra/koffice/kde4-koffice-libwpg02.patch1323
-rw-r--r--extra/koffice/koffice.install11
-rw-r--r--extra/koffice/krita.install12
-rw-r--r--extra/konq-plugins/PKGBUILD31
-rw-r--r--extra/konq-plugins/konq-plugins.install11
-rw-r--r--extra/konversation/PKGBUILD36
-rw-r--r--extra/konversation/konversation.install11
-rw-r--r--extra/kradio/PKGBUILD28
-rw-r--r--extra/krusader/PKGBUILD40
-rw-r--r--extra/krusader/add-xz-support.patch403
-rw-r--r--extra/krusader/krusader.install11
-rw-r--r--extra/ksensors/PKGBUILD23
-rw-r--r--extra/ksensors/ksensors.patch79
-rw-r--r--extra/kshutdown/PKGBUILD30
-rw-r--r--extra/kshutdown/kshutdown.install11
-rw-r--r--extra/ktorrent/PKGBUILD41
-rw-r--r--extra/ktorrent/httpserver.patch10
-rw-r--r--extra/ktorrent/ktorrent.install12
-rw-r--r--extra/kwebkitpart/PKGBUILD30
-rw-r--r--extra/kwebkitpart/kwebkitpart.install11
-rw-r--r--extra/lablgtk/PKGBUILD25
-rw-r--r--extra/lablgtk2/PKGBUILD24
-rw-r--r--extra/lablgtk2/ocaml-3.12.patch237
-rw-r--r--extra/labplot/PKGBUILD40
-rw-r--r--extra/labplot/define-missing-constant.patch15
-rw-r--r--extra/labplot/hdf5-1.8.patch58
-rw-r--r--extra/ladspa/PKGBUILD25
-rw-r--r--extra/ladspa/hardcode-path.patch28
-rw-r--r--extra/ladspa/ladspa-sdk-1.12-gcc4.patch18
-rw-r--r--extra/lame/03_lame-ffmpeg.diff72
-rw-r--r--extra/lame/PKGBUILD26
-rw-r--r--extra/lame/shared-frontend.patch23
-rw-r--r--extra/lapack/LICENSE.blas19
-rw-r--r--extra/lapack/Makefile.blas148
-rw-r--r--extra/lapack/Makefile.lapack390
-rw-r--r--extra/lapack/PKGBUILD84
-rw-r--r--extra/lapack/lapack-3.1.1-make.inc.patch23
-rw-r--r--extra/latex2html/PKGBUILD45
-rw-r--r--extra/latex2html/latex2html.install15
-rw-r--r--extra/latex2rtf/PKGBUILD22
-rw-r--r--extra/lbreakout2/PKGBUILD44
-rw-r--r--extra/lbreakout2/lbreakout2.desktop10
-rw-r--r--extra/lbreakout2/lbreakout2.pngbin0 -> 1930 bytes
-rw-r--r--extra/lcab/PKGBUILD21
-rw-r--r--extra/lcms/PKGBUILD24
-rw-r--r--extra/leafpad/PKGBUILD28
-rw-r--r--extra/leafpad/leafpad.install12
-rw-r--r--extra/lensfun/PKGBUILD21
-rw-r--r--extra/lensfun/lensfun-0.2.3-as-needed.patch13
-rw-r--r--extra/lensfun/lensfun-0.2.3-glibc-2.10.patch11
-rw-r--r--extra/lesstif/040_fedora_XxxxProperty-64bit.diff20
-rw-r--r--extra/lesstif/ChangeLog19
-rw-r--r--extra/lesstif/LICENSE26
-rw-r--r--extra/lesstif/PKGBUILD42
-rw-r--r--extra/lftp/PKGBUILD30
-rw-r--r--extra/libao/PKGBUILD42
-rw-r--r--extra/libao/libao.conf1
-rw-r--r--extra/libart-lgpl/PKGBUILD20
-rw-r--r--extra/libart-lgpl/art_misc.h-cplusplus.patch35
-rw-r--r--extra/libass/PKGBUILD24
-rw-r--r--extra/libassuan/PKGBUILD25
-rw-r--r--extra/libasyncns/ChangeLog13
-rw-r--r--extra/libasyncns/PKGBUILD29
-rw-r--r--extra/libatasmart/PKGBUILD22
-rw-r--r--extra/libavc1394/PKGBUILD22
-rw-r--r--extra/libbeagle/PKGBUILD28
-rw-r--r--extra/libbluedevil/PKGBUILD29
-rw-r--r--extra/libbonobo/PKGBUILD29
-rw-r--r--extra/libbonobo/bonobo-activation-config.xml13
-rw-r--r--extra/libbonobo/libbonobo.install7
-rw-r--r--extra/libbonoboui/PKGBUILD24
-rw-r--r--extra/libbtctl/PKGBUILD24
-rw-r--r--extra/libburn/PKGBUILD27
-rw-r--r--extra/libcaca/PKGBUILD23
-rw-r--r--extra/libcanberra/PKGBUILD57
-rw-r--r--extra/libcanberra/libcanberra-gtk-module.sh10
-rw-r--r--extra/libcanberra/libcanberra.install23
-rw-r--r--extra/libcdaudio/01-cddb-bufferoverflow.patch15
-rw-r--r--extra/libcdaudio/02-cddb-bufferoverflow.patch15
-rw-r--r--extra/libcdaudio/PKGBUILD32
-rw-r--r--extra/libcddb/PKGBUILD22
-rw-r--r--extra/libcdio/PKGBUILD25
-rw-r--r--extra/libcdio/libcdio.install13
-rw-r--r--extra/libchamplain/PKGBUILD28
-rw-r--r--extra/libchewing/PKGBUILD26
-rw-r--r--extra/libcroco/PKGBUILD21
-rw-r--r--extra/libcue/PKGBUILD24
-rw-r--r--extra/libdaemon/PKGBUILD24
-rw-r--r--extra/libdatrie/PKGBUILD22
-rw-r--r--extra/libdbusmenu-qt/PKGBUILD29
-rw-r--r--extra/libdc1394/PKGBUILD25
-rw-r--r--extra/libdca/PKGBUILD26
-rw-r--r--extra/libdiscid/PKGBUILD26
-rw-r--r--extra/libdmapsharing/PKGBUILD21
-rw-r--r--extra/libdmtx/PKGBUILD26
-rw-r--r--extra/libdmx/PKGBUILD25
-rw-r--r--extra/libdrm/COPYING48
-rw-r--r--extra/libdrm/PKGBUILD43
-rw-r--r--extra/libdrm/intel-git-fixes.patch144
-rw-r--r--extra/libdrm/no-pthread-stubs.patch65
-rw-r--r--extra/libdv/PKGBUILD24
-rw-r--r--extra/libdvbpsi/PKGBUILD29
-rw-r--r--extra/libdvdcss/PKGBUILD28
-rw-r--r--extra/libdvdnav/PKGBUILD27
-rw-r--r--extra/libdvdnav/deadlock.patch17
-rw-r--r--extra/libdvdread/DVDFileStat.patch237
-rw-r--r--extra/libdvdread/PKGBUILD35
-rw-r--r--extra/libebml/PKGBUILD24
-rw-r--r--extra/libepc/PKGBUILD23
-rw-r--r--extra/libetpan/PKGBUILD26
-rw-r--r--extra/libexif/PKGBUILD26
-rw-r--r--extra/libffado/PKGBUILD59
-rw-r--r--extra/libffi/PKGBUILD24
-rw-r--r--extra/libffi/libffi.install18
-rw-r--r--extra/libfm/0001-filename-with-spaces-not-supported.patch345
-rw-r--r--extra/libfm/PKGBUILD30
-rw-r--r--extra/libfm/libfm.install14
-rw-r--r--extra/libfontenc/PKGBUILD27
-rw-r--r--extra/libfprint/50-fprint.rules19
-rw-r--r--extra/libfprint/PKGBUILD30
-rw-r--r--extra/libfprint/fprint.install19
-rw-r--r--extra/libfs/PKGBUILD24
-rw-r--r--extra/libftdi/PKGBUILD28
-rw-r--r--extra/libfwbuilder/PKGBUILD27
-rw-r--r--extra/libgadu/PKGBUILD29
-rw-r--r--extra/libgail-gnome/PKGBUILD29
-rw-r--r--extra/libgail-gnome/libgail-gnome.install19
-rw-r--r--extra/libgda/PKGBUILD31
-rw-r--r--extra/libgdata/PKGBUILD22
-rw-r--r--extra/libgdiplus/PKGBUILD26
-rw-r--r--extra/libgdiplus/gdiplus-png14.patch20
-rw-r--r--extra/libgee/PKGBUILD23
-rw-r--r--extra/libggz/PKGBUILD22
-rw-r--r--extra/libgksu/PKGBUILD31
-rw-r--r--extra/libgksu/libgksu-2.0.12-revert-forkpty.patch359
-rw-r--r--extra/libgksu/libgksu.install17
-rw-r--r--extra/libglade/PKGBUILD28
-rw-r--r--extra/libglade/glade.install25
-rw-r--r--extra/libglade/libglade-2.0.1-nowarning.patch39
-rw-r--r--extra/libglademm/PKGBUILD22
-rw-r--r--extra/libgme/PKGBUILD25
-rw-r--r--extra/libgnome-keyring/PKGBUILD24
-rw-r--r--extra/libgnome/PKGBUILD49
-rw-r--r--extra/libgnome/libgnome.install17
-rw-r--r--extra/libgnomecanvas/PKGBUILD23
-rw-r--r--extra/libgnomecanvasmm/PKGBUILD24
-rw-r--r--extra/libgnomecups/PKGBUILD27
-rw-r--r--extra/libgnomecups/libgnomecups_0.2.3-ignore-ipp-not-found.patch11
-rw-r--r--extra/libgnomekbd/PKGBUILD28
-rw-r--r--extra/libgnomekbd/libgnomekbd.install17
-rw-r--r--extra/libgnomemm/PKGBUILD24
-rw-r--r--extra/libgnomeprint/PKGBUILD24
-rw-r--r--extra/libgnomeprintui/PKGBUILD22
-rw-r--r--extra/libgnomeui/PKGBUILD24
-rw-r--r--extra/libgnomeuimm/PKGBUILD24
-rw-r--r--extra/libgphoto2/PKGBUILD40
-rw-r--r--extra/libgphoto2/libgphoto2.install16
-rw-r--r--extra/libgpod/PKGBUILD30
-rw-r--r--extra/libgsf/PKGBUILD61
-rw-r--r--extra/libgsf/libgsf-gnome.install19
-rw-r--r--extra/libgtkhtml/PKGBUILD22
-rw-r--r--extra/libgtop/PKGBUILD25
-rw-r--r--extra/libgtop/libgtop.install13
-rw-r--r--extra/libguess/PKGBUILD25
-rw-r--r--extra/libgweather/01_gettext_not_xml.patch527
-rw-r--r--extra/libgweather/PKGBUILD37
-rw-r--r--extra/libgweather/libgweather.install22
-rw-r--r--extra/libhangul/PKGBUILD26
-rw-r--r--extra/libical/PKGBUILD31
-rw-r--r--extra/libice/PKGBUILD25
-rw-r--r--extra/libid3tag/10_utf16.diff48
-rw-r--r--extra/libid3tag/11_unknown_encoding.diff37
-rw-r--r--extra/libid3tag/CVE-2008-2109.patch11
-rw-r--r--extra/libid3tag/PKGBUILD38
-rw-r--r--extra/libid3tag/id3tag.pc10
-rw-r--r--extra/libidl2/PKGBUILD27
-rw-r--r--extra/libidl2/libidl2.install13
-rw-r--r--extra/libidn/PKGBUILD29
-rw-r--r--extra/libidn/libidn.install19
-rw-r--r--extra/libiec61883/PKGBUILD25
-rw-r--r--extra/libieee1284/PKGBUILD26
-rw-r--r--extra/libifp/PKGBUILD26
-rw-r--r--extra/libimobiledevice/PKGBUILD31
-rw-r--r--extra/libimobiledevice/swig-version-check.patch14
-rw-r--r--extra/libindi/PKGBUILD40
-rw-r--r--extra/libindi/linking-pthread.patch11
-rw-r--r--extra/libiodbc/PKGBUILD36
-rw-r--r--extra/libirman/PKGBUILD22
-rw-r--r--extra/libisoburn/PKGBUILD22
-rw-r--r--extra/libisofs/PKGBUILD29
-rw-r--r--extra/libjpeg-turbo/PKGBUILD33
-rw-r--r--extra/libksba/PKGBUILD22
-rw-r--r--extra/libktorrent/PKGBUILD31
-rw-r--r--extra/liblastfm/PKGBUILD32
-rw-r--r--extra/liblastfm/no-ftools.patch36
-rw-r--r--extra/liblo/PKGBUILD22
-rw-r--r--extra/liblqr/PKGBUILD22
-rw-r--r--extra/liblrdf/PKGBUILD27
-rw-r--r--extra/liblrdf/md5.patch18
-rw-r--r--extra/libmad/PKGBUILD40
-rw-r--r--extra/libmad/amd64-64bit.diff12
-rw-r--r--extra/libmad/frame_length.diff197
-rw-r--r--extra/libmad/libmad.patch117
-rw-r--r--extra/libmad/optimize.diff77
-rw-r--r--extra/libmatroska/PKGBUILD24
-rw-r--r--extra/libmcrypt/PKGBUILD24
-rw-r--r--extra/libmcs/PKGBUILD27
-rw-r--r--extra/libmikmod/PKGBUILD42
-rw-r--r--extra/libmikmod/libmikmod-3.1.12-64bit-fix.diff47
-rw-r--r--extra/libmikmod/libmikmod-3.1.12-exitcrash-fix.diff21
-rw-r--r--extra/libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff15
-rw-r--r--extra/libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff112
-rw-r--r--extra/libmikmod/libmikmod-CVE-2009-0179.patch33
-rw-r--r--extra/libmikmod/libmikmod.install18
-rw-r--r--extra/libmms/PKGBUILD24
-rw-r--r--extra/libmms/libmms-0.5-this-keyword.patch18
-rw-r--r--extra/libmng/PKGBUILD25
-rw-r--r--extra/libmodplug/PKGBUILD24
-rw-r--r--extra/libmowgli/PKGBUILD27
-rw-r--r--extra/libmp3splt/PKGBUILD27
-rw-r--r--extra/libmp4v2/PKGBUILD28
-rw-r--r--extra/libmpcdec/PKGBUILD22
-rw-r--r--extra/libmpd/PKGBUILD22
-rw-r--r--extra/libmpdclient/PKGBUILD25
-rw-r--r--extra/libmpeg2/PKGBUILD28
-rw-r--r--extra/libmsn/PKGBUILD33
-rw-r--r--extra/libmsn/openssl1.patch17
-rw-r--r--extra/libmspack/PKGBUILD22
-rw-r--r--extra/libmtp/PKGBUILD32
-rw-r--r--extra/libmusicbrainz3/PKGBUILD29
-rw-r--r--extra/libmythes/PKGBUILD33
-rw-r--r--extra/libnet/PKGBUILD29
-rw-r--r--extra/libnice/PKGBUILD26
-rw-r--r--extra/libnotify/PKGBUILD30
-rw-r--r--extra/libnotify/libnotify-0.7.1-gtk3-tests.patch110
-rw-r--r--extra/libnova/PKGBUILD22
-rw-r--r--extra/libofa/PKGBUILD38
-rw-r--r--extra/libofa/gcc-4.patch39
-rw-r--r--extra/libofa/gcc4.3.patch35
-rw-r--r--extra/libofa/gcc4.5.patch10
-rw-r--r--extra/libofx/PKGBUILD38
-rw-r--r--extra/libogg/PKGBUILD39
-rw-r--r--extra/libogg/config_types.h9
-rw-r--r--extra/liboil/PKGBUILD25
-rw-r--r--extra/liborigin2/PKGBUILD58
-rw-r--r--extra/liborigin2/liborigin.pro.archlinux41
-rw-r--r--extra/libotf/PKGBUILD25
-rw-r--r--extra/libotr/PKGBUILD22
-rw-r--r--extra/libots/PKGBUILD28
-rw-r--r--extra/libpano13/PKGBUILD24
-rw-r--r--extra/libpciaccess/PKGBUILD24
-rw-r--r--extra/libplist/PKGBUILD36
-rw-r--r--extra/libpng/PKGBUILD37
-rw-r--r--extra/libproxy/PKGBUILD41
-rw-r--r--extra/libpst/PKGBUILD41
-rw-r--r--extra/libqalculate/PKGBUILD28
-rw-r--r--extra/libraw1394/PKGBUILD27
-rw-r--r--extra/libreoffice/ArchLinux.patch11
-rw-r--r--extra/libreoffice/PKGBUILD652
-rw-r--r--extra/libreoffice/buildfix_64bit_system_libjpeg.diff11
-rw-r--r--extra/libreoffice/libreoffice.install25
-rw-r--r--extra/librsvg/PKGBUILD31
-rw-r--r--extra/librsvg/librsvg.install11
-rw-r--r--extra/libsamplerate/PKGBUILD26
-rw-r--r--extra/libsexy/PKGBUILD23
-rw-r--r--extra/libshout/PKGBUILD23
-rw-r--r--extra/libsidplay/PKGBUILD23
-rw-r--r--extra/libsidplay/libsidplay-1.36.59-gcc43.patch40
-rw-r--r--extra/libsigc++/PKGBUILD40
-rw-r--r--extra/libsigsegv/PKGBUILD22
-rw-r--r--extra/libsm/PKGBUILD25
-rw-r--r--extra/libsmbios/PKGBUILD47
-rw-r--r--extra/libsndfile/PKGBUILD26
-rw-r--r--extra/libsoup/PKGBUILD46
-rw-r--r--extra/libspectre/PKGBUILD25
-rw-r--r--extra/libssh/PKGBUILD31
-rw-r--r--extra/libstdc++5/PKGBUILD41
-rw-r--r--extra/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch11
-rw-r--r--extra/libstroke/ChangeLog8
-rw-r--r--extra/libstroke/PKGBUILD35
-rw-r--r--extra/libstroke/libgstroke-Makefile.am.patch11
-rw-r--r--extra/libstroke/libstroke-Makefile.am.patch15
-rw-r--r--extra/libtasn1/PKGBUILD27
-rw-r--r--extra/libtasn1/libtasn1.install18
-rw-r--r--extra/libthai/PKGBUILD22
-rw-r--r--extra/libtheora/PKGBUILD27
-rw-r--r--extra/libtiff/ChangeLog35
-rw-r--r--extra/libtiff/PKGBUILD32
-rw-r--r--extra/libtiff/libtiff-CVE-2009-2285.patch22
-rw-r--r--extra/libtorrent-rasterbar/PKGBUILD29
-rw-r--r--extra/libunique/PKGBUILD27
-rw-r--r--extra/libunique/unique-gdbus.patch529
-rw-r--r--extra/libupnp/PKGBUILD30
-rw-r--r--extra/libva/PKGBUILD35
-rw-r--r--extra/libva/libva-dont-install-tests.patch47
-rw-r--r--extra/libvdpau/PKGBUILD26
-rw-r--r--extra/libvisual-plugins/PKGBUILD22
-rw-r--r--extra/libvisual/PKGBUILD22
-rw-r--r--extra/libvncserver/PKGBUILD22
-rw-r--r--extra/libvorbis/PKGBUILD29
-rw-r--r--extra/libvpx/PKGBUILD32
-rw-r--r--extra/libwebkit/PKGBUILD39
-rw-r--r--extra/libwebkit/introspection.patch22
-rw-r--r--extra/libwmf/PKGBUILD41
-rw-r--r--extra/libwmf/libpng14.patch12
-rw-r--r--extra/libwmf/libwmf-0.2.8.4-useafterfree.patch10
-rw-r--r--extra/libwmf/libwmf.install13
-rw-r--r--extra/libwnck/PKGBUILD22
-rw-r--r--extra/libwpd/PKGBUILD28
-rw-r--r--extra/libwpg/PKGBUILD25
-rw-r--r--extra/libx11/PKGBUILD35
-rw-r--r--extra/libx11/xorg.sh15
-rw-r--r--extra/libx86/PKGBUILD36
-rw-r--r--extra/libx86/libx86-ifmask.patch21
-rw-r--r--extra/libxau/PKGBUILD26
-rw-r--r--extra/libxaw/PKGBUILD24
-rw-r--r--extra/libxcb/PKGBUILD33
-rw-r--r--extra/libxcb/libxcb-1.1-no-pthread-stubs.patch12
-rw-r--r--extra/libxcomposite/PKGBUILD25
-rw-r--r--extra/libxcursor/PKGBUILD25
-rw-r--r--extra/libxdamage/PKGBUILD24
-rw-r--r--extra/libxdmcp/PKGBUILD25
-rw-r--r--extra/libxevie/PKGBUILD24
-rw-r--r--extra/libxext/PKGBUILD25
-rw-r--r--extra/libxfce4menu/PKGBUILD27
-rw-r--r--extra/libxfce4ui/PKGBUILD36
-rw-r--r--extra/libxfce4util/PKGBUILD34
-rw-r--r--extra/libxfcegui4/PKGBUILD34
-rw-r--r--extra/libxfcegui4/libxfcegui4.install12
-rw-r--r--extra/libxfixes/PKGBUILD25
-rw-r--r--extra/libxfont/PKGBUILD24
-rw-r--r--extra/libxft/PKGBUILD25
-rw-r--r--extra/libxi/PKGBUILD29
-rw-r--r--extra/libxinerama/PKGBUILD24
-rw-r--r--extra/libxkbfile/PKGBUILD25
-rw-r--r--extra/libxkbui/LICENSE25
-rw-r--r--extra/libxkbui/PKGBUILD23
-rw-r--r--extra/libxklavier/PKGBUILD24
-rw-r--r--extra/libxmi/PKGBUILD22
-rw-r--r--extra/libxml++/PKGBUILD39
-rw-r--r--extra/libxml2/PKGBUILD36
-rw-r--r--extra/libxml2/largefile64.patch12
-rw-r--r--extra/libxml2/shared_library_versionning.patch21
-rw-r--r--extra/libxmu/PKGBUILD25
-rw-r--r--extra/libxp/PKGBUILD25
-rw-r--r--extra/libxpm/PKGBUILD24
-rw-r--r--extra/libxrandr/PKGBUILD24
-rw-r--r--extra/libxrender/PKGBUILD24
-rw-r--r--extra/libxres/PKGBUILD25
-rw-r--r--extra/libxslt/PKGBUILD31
-rw-r--r--extra/libxss/PKGBUILD25
-rw-r--r--extra/libxt/PKGBUILD25
-rw-r--r--extra/libxtst/PKGBUILD25
-rw-r--r--extra/libxv/PKGBUILD25
-rw-r--r--extra/libxvmc/PKGBUILD24
-rw-r--r--extra/libxxf86dga/PKGBUILD26
-rw-r--r--extra/libxxf86vm/PKGBUILD25
-rw-r--r--extra/libytnef/PKGBUILD22
-rw-r--r--extra/libzip/PKGBUILD26
-rw-r--r--extra/libzvt/PKGBUILD26
-rw-r--r--extra/licq/PKGBUILD33
-rw-r--r--extra/liferea/ChangeLog143
-rw-r--r--extra/liferea/PKGBUILD39
-rw-r--r--extra/liferea/libnotify-0.7.patch21
-rw-r--r--extra/liferea/liferea.install22
-rw-r--r--extra/lighttpd/PKGBUILD60
-rw-r--r--extra/lighttpd/lighttpd.conf13
-rw-r--r--extra/lighttpd/lighttpd.logrotate.d6
-rw-r--r--extra/lighttpd/lighttpd.rc.d129
-rw-r--r--extra/link-grammar/PKGBUILD30
-rw-r--r--extra/linux_logo/PKGBUILD26
-rw-r--r--extra/liquidwar/PKGBUILD29
-rw-r--r--extra/liquidwar/liquidwar.install16
-rw-r--r--extra/lirc-utils/PKGBUILD79
-rw-r--r--extra/lirc-utils/irexec.conf5
-rwxr-xr-xextra/lirc-utils/irexecd38
-rw-r--r--extra/lirc-utils/lirc.logrotate5
-rwxr-xr-xextra/lirc-utils/lircd52
-rw-r--r--extra/lirc-utils/lircd.conf8
-rwxr-xr-xextra/lirc-utils/lircmd36
-rw-r--r--extra/lirc/PKGBUILD89
-rw-r--r--extra/lirc/irexec.conf5
-rwxr-xr-xextra/lirc/irexecd38
-rw-r--r--extra/lirc/lirc.install16
-rw-r--r--extra/lirc/lirc.logrotate5
-rwxr-xr-xextra/lirc/lircd52
-rw-r--r--extra/lirc/lircd.conf8
-rwxr-xr-xextra/lirc/lircmd36
-rw-r--r--extra/live-media/PKGBUILD40
-rw-r--r--extra/lm_sensors/PKGBUILD56
-rw-r--r--extra/lm_sensors/daemonarg.patch50
-rw-r--r--extra/lm_sensors/fancontrol.rc35
-rw-r--r--extra/lm_sensors/healthd46
-rw-r--r--extra/lm_sensors/healthd.conf17
-rw-r--r--extra/lm_sensors/healthd.rc52
-rw-r--r--extra/lm_sensors/sensord.conf4
-rw-r--r--extra/lm_sensors/sensord.rc37
-rw-r--r--extra/lm_sensors/sensors-detect.patch61
-rw-r--r--extra/lm_sensors/sensors.rc119
-rw-r--r--extra/loudmouth/01-fix-sasl-md5-digest-uri.patch24
-rw-r--r--extra/loudmouth/03-drop-stanzas-on-fail.patch45
-rw-r--r--extra/loudmouth/04-use-pkg-config-for-gnutls.patch23
-rw-r--r--extra/loudmouth/PKGBUILD35
-rw-r--r--extra/lpsolve/PKGBUILD36
-rw-r--r--extra/lpsolve/cflags.patch25
-rw-r--r--extra/lsdvd/PKGBUILD23
-rw-r--r--extra/lsdvd/stdint_usage.patch22
-rw-r--r--extra/lsof/PKGBUILD43
-rw-r--r--extra/lsof/license.txt27
-rw-r--r--extra/ltrace/PKGBUILD28
-rw-r--r--extra/lua/PKGBUILD36
-rw-r--r--extra/lua/lua-5.1-cflags.diff13
-rw-r--r--extra/lua/lua-arch.patch55
-rw-r--r--extra/lv2core/PKGBUILD34
-rw-r--r--extra/lv2core/lv2core.changelog16
-rw-r--r--extra/lv2core/lv2core.install14
-rw-r--r--extra/lxde-common/PKGBUILD28
-rw-r--r--extra/lxde-common/lxde-common-arch.patch186
-rw-r--r--extra/lxde-common/lxde-common-invalid-distfile.patch10
-rw-r--r--extra/lxde-common/lxde-common.install18
-rw-r--r--extra/lxdm/PKGBUILD51
-rw-r--r--extra/lxdm/Xsession.patch14
-rw-r--r--extra/lxdm/lxdm-daemon36
-rw-r--r--extra/lxdm/lxdm-pam.patch8
-rw-r--r--extra/lxdm/lxdm.install59
-rw-r--r--extra/lxdm/lxdm.patch26
-rw-r--r--extra/lxmenu-data/PKGBUILD19
-rw-r--r--extra/lxpanel/Fix-build-issue-with-symbol-alarm-showing-up-on-F14-.patch43
-rw-r--r--extra/lxpanel/Fix-failure-to-react-to-keyboard-map-changes-initiat.patch555
-rw-r--r--extra/lxpanel/PKGBUILD25
-rw-r--r--extra/lxsession-lite/PKGBUILD22
-rw-r--r--extra/lxsplit/PKGBUILD21
-rw-r--r--extra/lynx/PKGBUILD39
-rw-r--r--extra/lyx/PKGBUILD35
-rw-r--r--extra/lyx/lyx.desktop9
-rw-r--r--extra/lzo/PKGBUILD25
-rw-r--r--extra/lzo/nasm-gcc3.patch40
-rw-r--r--extra/lzop/PKGBUILD26
-rw-r--r--extra/m17n-lib/PKGBUILD29
-rw-r--r--extra/m17n-lib/locale.patch51
-rw-r--r--extra/madwifi-utils/PKGBUILD35
-rw-r--r--extra/madwifi/PKGBUILD40
-rw-r--r--extra/madwifi/kernel-2.6.30.patch14
-rw-r--r--extra/madwifi/madwifi-ng.install14
-rw-r--r--extra/mahjong/PKGBUILD22
-rw-r--r--extra/mail-notification/PKGBUILD54
-rw-r--r--extra/mail-notification/dont-update-cache.patch22
-rw-r--r--extra/mail-notification/evolution-gtkhtml.patch11
-rw-r--r--extra/mail-notification/evolution.patch102
-rw-r--r--extra/mail-notification/gmime-2.4.patch63
-rw-r--r--extra/mail-notification/mail-notification-5.4-camel_headers.patch36
-rw-r--r--extra/mail-notification/mail-notification-5.4-icons.patch36
-rw-r--r--extra/mail-notification/mail-notification.install24
-rw-r--r--extra/mail-notification/remove-ubuntu-special-case.patch33
-rw-r--r--extra/mailman/PKGBUILD85
-rw-r--r--extra/mailman/mailman-2.1-build.patch694
-rw-r--r--extra/mailman/mailman.install31
-rw-r--r--extra/mailman/rc.mailman35
-rw-r--r--extra/manedit/PKGBUILD52
-rw-r--r--extra/manedit/manedit-1.2.1-fix-man-page.patch15
-rw-r--r--extra/manedit/manedit.desktop9
-rw-r--r--extra/maxima/PKGBUILD39
-rw-r--r--extra/maxima/maxima.desktop11
-rw-r--r--extra/maxima/maxima.install18
-rw-r--r--extra/mc/PKGBUILD50
-rw-r--r--extra/mcpp/PKGBUILD27
-rw-r--r--extra/mcpp/namlen.patch11
-rw-r--r--extra/mcrypt/PKGBUILD25
-rw-r--r--extra/memcached/ChangeLog24
-rw-r--r--extra/memcached/PKGBUILD39
-rw-r--r--extra/memcached/fix-type-punning-issues.patch73
-rw-r--r--extra/memcached/memcached.conf4
-rw-r--r--extra/memcached/memcached.sh63
-rw-r--r--extra/menu-cache/PKGBUILD27
-rw-r--r--extra/mercurial/PKGBUILD41
-rw-r--r--extra/mercurial/mercurial.profile1
-rw-r--r--extra/mesa/LICENSE82
-rw-r--r--extra/mesa/PKGBUILD342
-rw-r--r--extra/metacity/PKGBUILD37
-rw-r--r--extra/metacity/metacity-restartstyle.patch139
-rw-r--r--extra/metacity/metacity.install17
-rw-r--r--extra/metalog/PKGBUILD35
-rw-r--r--extra/metalog/metalog40
-rw-r--r--extra/metalog/metalog.confd8
-rw-r--r--extra/mhash/PKGBUILD22
-rw-r--r--extra/midori/PKGBUILD53
-rw-r--r--extra/midori/midori.install14
-rw-r--r--extra/minicom/PKGBUILD31
-rw-r--r--extra/mirage/PKGBUILD20
-rw-r--r--extra/mirage/mirage.install11
-rw-r--r--extra/miro/PKGBUILD29
-rw-r--r--extra/miro/miro.install17
-rw-r--r--extra/mjpegtools/PKGBUILD40
-rw-r--r--extra/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch11
-rw-r--r--extra/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch24
-rw-r--r--extra/mjpegtools/mjpegtools.install16
-rw-r--r--extra/mjpegtools/png2yuv-fix-memleak.patch10
-rw-r--r--extra/mkbootcd/PKGBUILD26
-rw-r--r--extra/mkbootcd/boot.msg14
-rwxr-xr-xextra/mkbootcd/mkbootcd143
-rw-r--r--extra/mkbootcd/mkbootcd.conf38
-rw-r--r--extra/mkbootcd/options.msg6
-rw-r--r--extra/mkvtoolnix/PKGBUILD34
-rw-r--r--extra/mkvtoolnix/mkvtoolnix.install14
-rw-r--r--extra/moc/ChangeLog32
-rw-r--r--extra/moc/PKGBUILD44
-rw-r--r--extra/mod_dnssd/PKGBUILD23
-rw-r--r--extra/mod_fcgid/PKGBUILD24
-rw-r--r--extra/mod_mono/PKGBUILD24
-rw-r--r--extra/mod_mono/mod_mono.install20
-rw-r--r--extra/mod_perl/PKGBUILD28
-rw-r--r--extra/mod_wsgi/PKGBUILD29
-rw-r--r--extra/mod_wsgi/mod_wsgi.install14
-rw-r--r--extra/modemmanager/PKGBUILD25
-rw-r--r--extra/monica/PKGBUILD30
-rw-r--r--extra/monica/monica.desktop10
-rw-r--r--extra/monica/monica.svg248
-rw-r--r--extra/mono-addins/PKGBUILD28
-rw-r--r--extra/mono-basic/PKGBUILD28
-rw-r--r--extra/mono-debugger/PKGBUILD28
-rw-r--r--extra/mono-tools/PKGBUILD38
-rw-r--r--extra/mono-tools/gnome-sharp-2.20.patch11
-rw-r--r--extra/mono-tools/gunit.patch11
-rw-r--r--extra/mono-tools/mono-tools.install30
-rw-r--r--extra/mono-zeroconf/PKGBUILD29
-rw-r--r--extra/mono/PKGBUILD53
-rw-r--r--extra/mono/bug434892.patch11
-rw-r--r--extra/mono/mini_amd64.patch13
-rw-r--r--extra/mono/mono.rc.d35
-rw-r--r--extra/monodevelop-debugger-gdb/PKGBUILD25
-rw-r--r--extra/monodevelop-debugger-mdb/PKGBUILD30
-rw-r--r--extra/monodevelop-debugger-mdb/support_mdb_2.4.2.patch444
-rw-r--r--extra/monodevelop/PKGBUILD32
-rw-r--r--extra/monodevelop/monodevelop.install19
-rw-r--r--extra/monotone/PKGBUILD33
-rw-r--r--extra/monotone/monotone.install29
-rw-r--r--extra/most/PKGBUILD20
-rw-r--r--extra/most/most-debian.patch1655
-rw-r--r--extra/mousepad/PKGBUILD28
-rw-r--r--extra/mousepad/mousepad.install16
-rw-r--r--extra/mousepad/resensitize-find-button.patch28
-rw-r--r--extra/mousetweaks/PKGBUILD29
-rw-r--r--extra/mousetweaks/mousetweaks.install17
-rw-r--r--extra/mozilla-common/PKGBUILD20
-rwxr-xr-xextra/mozilla-common/mozilla-common.csh1
-rw-r--r--extra/mozilla-common/mozilla-common.install4
-rwxr-xr-xextra/mozilla-common/mozilla-common.sh1
-rw-r--r--extra/mp3splt/PKGBUILD25
-rw-r--r--extra/mp3wrap/PKGBUILD20
-rw-r--r--extra/mpc/PKGBUILD30
-rw-r--r--extra/mpck/PKGBUILD22
-rw-r--r--extra/mpd/PKGBUILD55
-rwxr-xr-xextra/mpd/mpd36
-rw-r--r--extra/mpd/mpd.install18
-rw-r--r--extra/mpg123/PKGBUILD34
-rw-r--r--extra/mrtg/PKGBUILD29
-rw-r--r--extra/msmtp/PKGBUILD30
-rw-r--r--extra/msmtp/msmtp.install20
-rw-r--r--extra/mt-st/PKGBUILD23
-rw-r--r--extra/mtools/PKGBUILD37
-rw-r--r--extra/mtools/mtools.install18
-rw-r--r--extra/mtr/PKGBUILD42
-rw-r--r--extra/mtx/PKGBUILD23
-rw-r--r--extra/muine/PKGBUILD39
-rw-r--r--extra/muine/muine.install25
-rw-r--r--extra/multitail/PKGBUILD24
-rw-r--r--extra/muparser/PKGBUILD30
-rw-r--r--extra/musicbrainz/PKGBUILD37
-rw-r--r--extra/musicbrainz/gcc4.3.patch57
-rw-r--r--extra/mutt/PKGBUILD47
-rw-r--r--extra/mutt/install8
-rw-r--r--extra/mysql-python/PKGBUILD20
-rw-r--r--extra/mysql/PKGBUILD139
-rw-r--r--extra/mysql/fix-embedded-crash.patch19
-rw-r--r--extra/mysql/fix-mysql-home.patch16
-rw-r--r--extra/mysql/my.cnf145
-rw-r--r--extra/mysql/mysql.install26
-rwxr-xr-xextra/mysql/mysqld77
-rw-r--r--extra/naim/PKGBUILD20
-rw-r--r--extra/nasm/PKGBUILD42
-rw-r--r--extra/nasm/nasm.install20
-rw-r--r--extra/nautilus-open-terminal/PKGBUILD31
-rw-r--r--extra/nautilus-open-terminal/nautilus-open-terminal.install17
-rw-r--r--extra/nautilus-sendto/PKGBUILD29
-rw-r--r--extra/nautilus-sendto/nautilus-sendto.install11
-rw-r--r--extra/nautilus/PKGBUILD36
-rw-r--r--extra/nautilus/nautilus-condrestart.patch16
-rw-r--r--extra/nautilus/nautilus.install26
-rw-r--r--extra/nbsmtp/PKGBUILD22
-rw-r--r--extra/nbsmtp/build.patch15
-rw-r--r--extra/ncftp/PKGBUILD34
-rw-r--r--extra/ncmpc/PKGBUILD36
-rw-r--r--extra/ndesk-dbus-glib/PKGBUILD26
-rw-r--r--extra/nedit/ChangeLog5
-rw-r--r--extra/nedit/PKGBUILD30
-rw-r--r--extra/nedit/nedit_xorg_composite_fix.patch18
-rw-r--r--extra/neon/PKGBUILD29
-rw-r--r--extra/net-snmp/PKGBUILD42
-rw-r--r--extra/net-snmp/libnl-2.patch67
-rw-r--r--extra/net-snmp/snmpd.rc38
-rw-r--r--extra/netcdf/PKGBUILD33
-rw-r--r--extra/netkit-bsd-finger/LICENSE36
-rw-r--r--extra/netkit-bsd-finger/PKGBUILD26
-rw-r--r--extra/netkit-bsd-finger/finger.xinetd8
-rw-r--r--extra/netpbm/PKGBUILD84
-rw-r--r--extra/netpbm/libpng-1.4.patch59
-rw-r--r--extra/netpbm/netpbm-CAN-2005-2471.patch16
-rw-r--r--extra/netpbm/netpbm-security-code.patch1817
-rw-r--r--extra/netpbm/netpbm-security-scripts.patch393
-rw-r--r--extra/netspeed-applet/PKGBUILD25
-rw-r--r--extra/netspeed-applet/netspeed-applet.install11
-rw-r--r--extra/network-manager-applet/PKGBUILD39
-rw-r--r--extra/network-manager-applet/network-manager-applet.install18
-rw-r--r--extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch36
-rw-r--r--extra/networkmanager-openconnect/PKGBUILD27
-rw-r--r--extra/networkmanager-openconnect/networkmanager-openconnect.install16
-rw-r--r--extra/networkmanager-openvpn/PKGBUILD27
-rw-r--r--extra/networkmanager-openvpn/networkmanager-openvpn.install11
-rw-r--r--extra/networkmanager-pptp/PKGBUILD27
-rw-r--r--extra/networkmanager-pptp/networkmanager-pptp.install11
-rw-r--r--extra/networkmanager-vpnc/PKGBUILD27
-rw-r--r--extra/networkmanager-vpnc/networkmanager-vpnc.install11
-rw-r--r--extra/networkmanager/NetworkManager.conf2
-rw-r--r--extra/networkmanager/PKGBUILD58
-rw-r--r--extra/networkmanager/disable_set_hostname.patch19
-rw-r--r--extra/networkmanager/networkmanager.install9
-rw-r--r--extra/neverball/ChangeLog50
-rw-r--r--extra/neverball/PKGBUILD52
-rw-r--r--extra/nickle/PKGBUILD22
-rw-r--r--extra/nicotine/PKGBUILD30
-rw-r--r--extra/nitrogen/ChangeLog9
-rw-r--r--extra/nitrogen/PKGBUILD24
-rw-r--r--extra/nitrogen/nitrogen.install11
-rw-r--r--extra/nmap/ChangeLog17
-rw-r--r--extra/nmap/PKGBUILD40
-rw-r--r--extra/normalize/PKGBUILD25
-rw-r--r--extra/notification-daemon/PKGBUILD34
-rw-r--r--extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch29
-rw-r--r--extra/notification-daemon/notification-daemon.install22
-rw-r--r--extra/nouveau-drm-lts/COPYING48
-rw-r--r--extra/nouveau-drm-lts/Makefile102
-rw-r--r--extra/nouveau-drm-lts/PKGBUILD47
-rw-r--r--extra/nouveau-drm-lts/dont_check_for_pthread.patch49
-rw-r--r--extra/nouveau-drm-lts/nouveau-drm.install16
-rwxr-xr-xextra/nppangband/Makefile.std375
-rw-r--r--extra/nppangband/PKGBUILD41
-rw-r--r--extra/nspr/PKGBUILD57
-rw-r--r--extra/nspr/nspr.pc.in10
-rw-r--r--extra/nss-mdns/PKGBUILD30
-rw-r--r--extra/nss-mdns/mdns.allow8
-rw-r--r--extra/nss-mdns/nss-mdns.install24
-rw-r--r--extra/nss/PKGBUILD102
-rw-r--r--extra/nss/add_spi+cacert_ca_certs.patch561
-rw-r--r--extra/nss/nss-config.in145
-rw-r--r--extra/nss/nss-no-rpath.patch14
-rw-r--r--extra/nss/nss.pc.in11
-rw-r--r--extra/nss/ssl-renegotiate-transitional.patch21
-rw-r--r--extra/nss_ldap/PKGBUILD33
-rw-r--r--extra/ntfs-3g/25-ntfs-config-write-policy.fdi42
-rw-r--r--extra/ntfs-3g/PKGBUILD32
-rw-r--r--extra/ntfsprogs/PKGBUILD24
-rw-r--r--extra/ntp/PKGBUILD78
-rw-r--r--extra/ntp/changelog25
-rw-r--r--extra/ntp/ntp-4.2.4-html2man.patch183
-rw-r--r--extra/ntp/ntp-client.conf5
-rw-r--r--extra/ntp/ntp.conf52
-rwxr-xr-xextra/ntp/ntpd52
-rwxr-xr-xextra/ntp/ntpdate31
-rw-r--r--extra/ntrack/PKGBUILD29
-rw-r--r--extra/numlockx/PKGBUILD33
-rw-r--r--extra/nx-common/NXproto.h.64bit.diff66
-rw-r--r--extra/nx-common/PKGBUILD58
-rw-r--r--extra/nx-common/nx-gcc44.patch12
-rw-r--r--extra/nxserver/NXproto.h.64bit.diff66
-rw-r--r--extra/nxserver/PKGBUILD96
-rw-r--r--extra/nxserver/nx-gcc44.patch12
-rw-r--r--extra/nxserver/nxcompsh-gcc43.patch19
-rw-r--r--extra/nxserver/nxcompshad-gcc43.patch19
-rw-r--r--extra/obconf/PKGBUILD25
-rw-r--r--extra/obconf/obconf.install15
-rw-r--r--extra/obex-data-server/PKGBUILD28
-rw-r--r--extra/obexd/PKGBUILD47
-rw-r--r--extra/obexftp/PKGBUILD32
-rw-r--r--extra/ocaml/PKGBUILD29
-rw-r--r--extra/ocfs2-tools/PKGBUILD35
-rw-r--r--extra/ocfs2-tools/gcc45-ftbfs.patch21
-rw-r--r--extra/ocrad/PKGBUILD27
-rw-r--r--extra/ocrad/ocrad.install20
-rw-r--r--extra/octave/PKGBUILD49
-rw-r--r--extra/octave/imread.patch29
-rw-r--r--extra/octave/octave-3.2.0_as_needed.patch11
-rw-r--r--extra/octave/octave-3.2.0_parallel_make.patch12
-rw-r--r--extra/octave/octave.install18
-rw-r--r--extra/ode/PKGBUILD26
-rw-r--r--extra/ogle/PKGBUILD39
-rw-r--r--extra/ogle/dvdread-4.1.3.patch129
-rw-r--r--extra/ogle/gcc34alsafix.patch15
-rw-r--r--extra/ogle/gcc4.patch12
-rw-r--r--extra/ogle/xvideofix.patch205
-rw-r--r--extra/ogmtools/PKGBUILD22
-rw-r--r--extra/opal/PKGBUILD22
-rw-r--r--extra/openal/PKGBUILD27
-rw-r--r--extra/openbabel/PKGBUILD34
-rw-r--r--extra/openbox/PKGBUILD47
-rw-r--r--extra/openbox/openbox.install9
-rw-r--r--extra/openbox/which-2.20.patch53
-rw-r--r--extra/opencdk/PKGBUILD21
-rw-r--r--extra/openconnect/PKGBUILD26
-rw-r--r--extra/opencore-amr/PKGBUILD24
-rw-r--r--extra/opencv/PKGBUILD66
-rw-r--r--extra/opencv/libpng-1.4.patch12
-rw-r--r--extra/opencv/ptrcvcapture.patch17
-rw-r--r--extra/opencv/v4l-mmap.patch14
-rw-r--r--extra/openexr/PKGBUILD23
-rw-r--r--extra/openexr/gcc43.patch22
-rw-r--r--extra/opengtl/PKGBUILD33
-rw-r--r--extra/openjdk6/PKGBUILD195
-rw-r--r--extra/openjdk6/aatext_by_default.diff35
-rw-r--r--extra/openjdk6/fix_corba_cmds_path.diff33
-rw-r--r--extra/openjdk6/fix_jdk_cmds_path.diff33
-rw-r--r--extra/openjdk6/fontconfig-paths.diff134
-rw-r--r--extra/openjdk6/nonreparenting-wm.diff66
-rw-r--r--extra/openjdk6/openjdk6.install24
-rw-r--r--extra/openjdk6/openjdk6.profile6
-rw-r--r--extra/openjdk6/openjdk6.profile.csh6
-rw-r--r--extra/openjpeg/30_fix_build_for_debian.dpatch70
-rw-r--r--extra/openjpeg/PKGBUILD27
-rw-r--r--extra/openldap/PKGBUILD106
-rwxr-xr-xextra/openldap/slapd48
-rw-r--r--extra/openldap/slapd.default6
-rw-r--r--extra/openmpi/PKGBUILD56
-rw-r--r--extra/openobex/PKGBUILD34
-rw-r--r--extra/openslp/PKGBUILD23
-rwxr-xr-xextra/openslp/rc.slpd38
-rw-r--r--extra/opensp/PKGBUILD29
-rw-r--r--extra/oprofile/PKGBUILD38
-rw-r--r--extra/orage/PKGBUILD36
-rw-r--r--extra/orage/orage.install11
-rw-r--r--extra/orbit2/PKGBUILD22
-rw-r--r--extra/orc/PKGBUILD23
-rw-r--r--extra/orca/PKGBUILD27
-rw-r--r--extra/orca/orca.install11
-rw-r--r--extra/ortp/PKGBUILD27
-rw-r--r--extra/ossp/PKGBUILD43
-rw-r--r--extra/ossp/osspd.conf.d10
-rwxr-xr-xextra/ossp/osspd.rc.d59
-rw-r--r--extra/oxine/PKGBUILD23
-rw-r--r--extra/oxygen-gtk/PKGBUILD30
-rw-r--r--extra/pam_fprint/PKGBUILD21
-rw-r--r--extra/pam_ldap/PKGBUILD25
-rw-r--r--extra/pango-perl/PKGBUILD24
-rw-r--r--extra/pango/PKGBUILD32
-rw-r--r--extra/pango/pango.install21
-rw-r--r--extra/pangomm/PKGBUILD34
-rw-r--r--extra/paprefs/PKGBUILD32
-rw-r--r--extra/paprefs/paprefs.desktop13
-rw-r--r--extra/parted/PKGBUILD31
-rw-r--r--extra/parted/parted.install18
-rw-r--r--extra/partitionmanager/PKGBUILD31
-rw-r--r--extra/partitionmanager/partitionmanager.install11
-rw-r--r--extra/pathological/ChangeLog14
-rw-r--r--extra/pathological/PKGBUILD40
-rw-r--r--extra/pathological/encoding.patch8
-rw-r--r--extra/pathological/pathological.desktop9
-rw-r--r--extra/pathological/pathological.install29
-rw-r--r--extra/pathological/pygame_181.patch10
-rw-r--r--extra/pavucontrol/PKGBUILD32
-rw-r--r--extra/pavucontrol/pavucontrol.desktop11
-rw-r--r--extra/pcmanfm/PKGBUILD28
-rw-r--r--extra/pcmanfm/pcmanfm.install14
-rw-r--r--extra/pcmanfm/revert-new-IPC.patch432
-rw-r--r--extra/pdksh/PKGBUILD27
-rw-r--r--extra/pdksh/pdksh-5.2.14.patch26
-rw-r--r--extra/pdksh/pdksh.install22
-rw-r--r--extra/pdksh/usr_ksh.sh9
-rw-r--r--extra/pdns-recursor/PKGBUILD32
-rw-r--r--extra/pdns-recursor/pdns-recursor.rc35
-rwxr-xr-xextra/pdns/2.9.18-default-mysql-options.patch13
-rw-r--r--extra/pdns/PKGBUILD54
-rw-r--r--extra/pdns/pdns-2.9.22-gcc44.patch22
-rw-r--r--extra/pdns/pdns.conf290
-rw-r--r--extra/pdns/pdns.install11
-rw-r--r--extra/pdns/pdns.rc35
-rw-r--r--extra/pekwm/PKGBUILD42
-rw-r--r--extra/pekwm/libpng-1.4.patch21
-rw-r--r--extra/pekwm/pekwm.desktop8
-rw-r--r--extra/perl-alien-sdl/PKGBUILD31
-rw-r--r--extra/perl-bit-vector/PKGBUILD33
-rw-r--r--extra/perl-compress-bzip2/PKGBUILD25
-rw-r--r--extra/perl-crypt-ssleay/PKGBUILD31
-rw-r--r--extra/perl-dbd-mysql/PKGBUILD34
-rw-r--r--extra/perl-dbd-sqlite/PKGBUILD29
-rw-r--r--extra/perl-dbi/PKGBUILD32
-rw-r--r--extra/perl-digest-nilsimsa/PKGBUILD35
-rw-r--r--extra/perl-digest-sha1/PKGBUILD38
-rw-r--r--extra/perl-event/PKGBUILD36
-rw-r--r--extra/perl-fcgi/PKGBUILD31
-rw-r--r--extra/perl-html-parser/PKGBUILD31
-rw-r--r--extra/perl-libintl-perl/PKGBUILD33
-rw-r--r--extra/perl-locale-gettext/PKGBUILD38
-rw-r--r--extra/perl-locale-gettext/compatibility-with-POSIX-module.patch10
-rw-r--r--extra/perl-net-dns/PKGBUILD33
-rw-r--r--extra/perl-net-ssleay/PKGBUILD33
-rw-r--r--extra/perl-net-upnp/PKGBUILD27
-rw-r--r--extra/perl-netaddr-ip/PKGBUILD34
-rw-r--r--extra/perl-sdl/PKGBUILD31
-rw-r--r--extra/perl-template-toolkit/PKGBUILD32
-rw-r--r--extra/perl-term-readkey/PKGBUILD36
-rw-r--r--extra/perl-text-iconv/PKGBUILD28
-rw-r--r--extra/perl-time-hires/PKGBUILD25
-rw-r--r--extra/perl-tk/PKGBUILD41
-rw-r--r--extra/perl-unicode-string/PKGBUILD33
-rw-r--r--extra/perl-xml-parser/PKGBUILD38
-rw-r--r--extra/perl-yaml-syck/PKGBUILD37
-rw-r--r--extra/phonon-gstreamer/PKGBUILD30
-rw-r--r--extra/phonon-vlc/PKGBUILD30
-rw-r--r--extra/phonon-xine/PKGBUILD30
-rw-r--r--extra/phonon/PKGBUILD32
-rw-r--r--extra/php-apc/PKGBUILD30
-rw-r--r--extra/php-suhosin/PKGBUILD31
-rw-r--r--extra/php/PKGBUILD380
-rw-r--r--extra/php/apache.conf9
-rw-r--r--extra/php/logrotate.d.php-fpm6
-rw-r--r--extra/php/php-fpm.conf.in.patch80
-rw-r--r--extra/php/php.ini.patch126
-rw-r--r--extra/php/rc.d.php-fpm136
-rw-r--r--extra/php/suhosin-patch-5.3.6-0.9.10.patch.gzbin0 -> 40881 bytes
-rw-r--r--extra/physfs/PKGBUILD37
-rw-r--r--extra/pidgin-encryption/PKGBUILD24
-rw-r--r--extra/pidgin-encryption/fix_header_escaping.patch64
-rw-r--r--extra/pidgin-encryption/log_crash.patch11
-rw-r--r--extra/pidgin/PKGBUILD90
-rw-r--r--extra/pidgin/pidgin.install11
-rw-r--r--extra/pilot-link/PKGBUILD32
-rw-r--r--extra/pilot-link/pilot-link-png14.patch100
-rw-r--r--extra/pinentry/PKGBUILD39
-rw-r--r--extra/pinentry/gtk2-pinentry-segfault.patch11
-rw-r--r--extra/pixman/PKGBUILD25
-rw-r--r--extra/plotutils/PKGBUILD27
-rw-r--r--extra/plotutils/plotutils.install13
-rw-r--r--extra/pm-utils/02-logging-append.patch19
-rw-r--r--extra/pm-utils/11netcfg26
-rw-r--r--extra/pm-utils/12-fix-intel-audio-powersave-hook.patch40
-rw-r--r--extra/pm-utils/13-49bluetooth-sync.patch43
-rw-r--r--extra/pm-utils/14-disable-sata-alpm.patch26
-rw-r--r--extra/pm-utils/PKGBUILD48
-rw-r--r--extra/pmount/PKGBUILD23
-rw-r--r--extra/polkit-gnome/PKGBUILD26
-rw-r--r--extra/polkit-kde/PKGBUILD30
-rw-r--r--extra/polkit-qt/PKGBUILD30
-rw-r--r--extra/polkit/PKGBUILD29
-rw-r--r--extra/polkit/polkit.pam7
-rw-r--r--extra/poppler/PKGBUILD67
-rw-r--r--extra/postfix/PKGBUILD64
-rw-r--r--extra/postfix/aliases.patch18
-rw-r--r--extra/postfix/install35
-rwxr-xr-xextra/postfix/rc.d37
-rw-r--r--extra/postgresql/PKGBUILD136
-rw-r--r--extra/postgresql/build.patch11
-rwxr-xr-xextra/postgresql/postgresql59
-rw-r--r--extra/postgresql/postgresql.confd5
-rw-r--r--extra/postgresql/postgresql.logrotate4
-rw-r--r--extra/postgresql/postgresql.pam3
-rw-r--r--extra/potrace/PKGBUILD26
-rw-r--r--extra/procmail/PKGBUILD31
-rw-r--r--extra/procmail/procmail-3.22-getline.patch56
-rw-r--r--extra/proftpd/PKGBUILD49
-rwxr-xr-xextra/proftpd/proftpd41
-rw-r--r--extra/proftpd/proftpd.conf.d4
-rw-r--r--extra/proftpd/proftpd.logrotate5
-rw-r--r--extra/progsreiserfs/PKGBUILD30
-rw-r--r--extra/psi/PKGBUILD28
-rw-r--r--extra/psi/archlinux.patch12
-rw-r--r--extra/psi/psi.install11
-rw-r--r--extra/psiconv/PKGBUILD26
-rw-r--r--extra/pstoedit/PKGBUILD39
-rw-r--r--extra/pstoedit/pstoedit-3.50-parallel.patch47
-rw-r--r--extra/pstoedit/pstoedit-3.50-plugin-close.patch14
-rw-r--r--extra/pth/PKGBUILD22
-rw-r--r--extra/ptlib/PKGBUILD29
-rw-r--r--extra/pulseaudio-mixer-applet/PKGBUILD27
-rw-r--r--extra/pulseaudio/PKGBUILD98
-rwxr-xr-xextra/pulseaudio/pulseaudio.install26
-rw-r--r--extra/pulseaudio/pulseaudio.xinit7
-rw-r--r--extra/purple-plugin-pack/PKGBUILD25
-rw-r--r--extra/putty/PKGBUILD26
-rw-r--r--extra/pwgen/PKGBUILD21
-rw-r--r--extra/pycrypto/PKGBUILD23
-rw-r--r--extra/pycups/PKGBUILD24
-rw-r--r--extra/pygobject/PKGBUILD28
-rw-r--r--extra/pygtk/PKGBUILD34
-rw-r--r--extra/pygtk/python27.patch50
-rw-r--r--extra/pygtksourceview2/PKGBUILD23
-rw-r--r--extra/pymad/PKGBUILD19
-rw-r--r--extra/pyopenssl/PKGBUILD43
-rw-r--r--extra/pyorbit/PKGBUILD22
-rw-r--r--extra/pypgsql/COPYING20
-rw-r--r--extra/pypgsql/PKGBUILD23
-rw-r--r--extra/pysmbc/PKGBUILD24
-rw-r--r--extra/python-cairo/PKGBUILD44
-rw-r--r--extra/python-cairo/pycairo-1.8.10-pypath.patch36
-rw-r--r--extra/python-egenix-mx-base/PKGBUILD24
-rw-r--r--extra/python-geoip/PKGBUILD20
-rw-r--r--extra/python-gtkglext/PKGBUILD21
-rw-r--r--extra/python-imaging/PKGBUILD48
-rw-r--r--extra/python-iwscan/PKGBUILD18
-rw-r--r--extra/python-lxml/PKGBUILD30
-rw-r--r--extra/python-m2crypto/PKGBUILD31
-rw-r--r--extra/python-m2crypto/openssl1.patch531
-rw-r--r--extra/python-markupsafe/PKGBUILD22
-rw-r--r--extra/python-notify/PKGBUILD43
-rw-r--r--extra/python-notify/libnotify07.patch36
-rw-r--r--extra/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch25
-rwxr-xr-xextra/python-numpy/PKGBUILD61
-rw-r--r--extra/python-pygame/ChangeLog30
-rw-r--r--extra/python-pygame/PKGBUILD38
-rw-r--r--extra/python-pygame/config.patch26
-rw-r--r--extra/python-pyspi/PKGBUILD27
-rw-r--r--extra/python-pyspi/pyspi-build.patch1693
-rw-r--r--extra/python-pysqlite/ChangeLog13
-rw-r--r--extra/python-pysqlite/PKGBUILD29
-rw-r--r--extra/python-pysqlite/setup.cfg5
-rw-r--r--extra/python-qt/PKGBUILD41
-rw-r--r--extra/python-sip/PKGBUILD30
-rw-r--r--extra/python-telepathy/PKGBUILD21
-rw-r--r--extra/python-urwid/PKGBUILD23
-rw-r--r--extra/python-wpactrl/PKGBUILD18
-rw-r--r--extra/python/PKGBUILD69
-rw-r--r--extra/python2-cairo/PKGBUILD28
-rw-r--r--extra/python2-qt/PKGBUILD41
-rw-r--r--extra/python2-sip/PKGBUILD30
-rw-r--r--extra/python2/PKGBUILD84
-rw-r--r--extra/python2/python-2.7-db51.diff42
-rw-r--r--extra/pywebkitgtk/PKGBUILD27
-rw-r--r--extra/pyxml/PKGBUILD38
-rw-r--r--extra/pyxml/fix-python2.6.patch28
-rw-r--r--extra/pyxml/foreigncharsfix.patch11
-rw-r--r--extra/qalculate-gtk/PKGBUILD27
-rw-r--r--extra/qalculate-kde/PKGBUILD25
-rw-r--r--extra/qca-gnupg/PKGBUILD24
-rw-r--r--extra/qca-ossl/PKGBUILD30
-rw-r--r--extra/qca-ossl/no-whirlpool.patch21
-rw-r--r--extra/qca/PKGBUILD30
-rw-r--r--extra/qemu-kvm/65-kvm.rules1
-rw-r--r--extra/qemu-kvm/PKGBUILD49
-rw-r--r--extra/qemu-kvm/qemu-kvm.install16
-rw-r--r--extra/qemu/65-kvm.rules1
-rw-r--r--extra/qemu/PKGBUILD35
-rw-r--r--extra/qemu/qemu.install24
-rw-r--r--extra/qimageblitz/PKGBUILD32
-rw-r--r--extra/qiv/PKGBUILD21
-rw-r--r--extra/qjackctl/PKGBUILD30
-rw-r--r--extra/qjson/PKGBUILD29
-rw-r--r--extra/qscintilla/PKGBUILD68
-rw-r--r--extra/qscintilla/configure.py-objdir-support.diff39
-rw-r--r--extra/qsynth/PKGBUILD22
-rw-r--r--extra/qt-assistant-compat/PKGBUILD55
-rw-r--r--extra/qt-assistant-compat/debian_patches_01_build_system.diff48
-rw-r--r--extra/qt/PKGBUILD219
-rw-r--r--extra/qt/assistant.desktop9
-rw-r--r--extra/qt/blacklist-fraudulent-comodo-certificates.patch89
-rw-r--r--extra/qt/designer.desktop11
-rw-r--r--extra/qt/linguist.desktop10
-rw-r--r--extra/qt/qt.install12
-rw-r--r--extra/qt/qtconfig.desktop10
-rw-r--r--extra/qt3/PKGBUILD118
-rw-r--r--extra/qt3/eastern_asian_languagues.diff39
-rw-r--r--extra/qt3/mysql.patch47
-rw-r--r--extra/qt3/qt-copy-kde-patches.tar.bz2bin0 -> 31498 bytes
-rw-r--r--extra/qt3/qt-font-default-subst.diff77
-rw-r--r--extra/qt3/qt-odbc.patch19
-rw-r--r--extra/qt3/qt-patches.tar.bz2bin0 -> 3708 bytes
-rw-r--r--extra/qt3/qt.install12
-rw-r--r--extra/qt3/qt.profile4
-rw-r--r--extra/qt3/qt3-png14.patch33
-rw-r--r--extra/qt3/utf8-bug-qt3.diff101
-rw-r--r--extra/qtcurve-gtk2/PKGBUILD32
-rw-r--r--extra/qtcurve-kde3/PKGBUILD49
-rw-r--r--extra/qtcurve-kde3/bypass-kde-config.patch24
-rw-r--r--extra/qtcurve-kde3/kdeglobals2
-rw-r--r--extra/qtcurve-kde4/PKGBUILD38
-rw-r--r--extra/qtcurve-kde4/bypass-kde-config.patch32
-rw-r--r--extra/qtiplot/PKGBUILD78
-rw-r--r--extra/qtiplot/build.conf.archlinux29
-rw-r--r--extra/qtiplot/gentoo-fix-origin-build-failure.patch72
-rw-r--r--extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch101
-rw-r--r--extra/qtiplot/qtiplot.desktop13
-rw-r--r--extra/qtiplot/qtiplot.install12
-rw-r--r--extra/qtiplot/qtiplot.pngbin0 -> 936 bytes
-rw-r--r--extra/qtiplot/qtiplot.xml17
-rw-r--r--extra/qtiplot/qwtplot3d_gcc.patch9
-rw-r--r--extra/qtiplot/sip.patch13
-rw-r--r--extra/qtscriptgenerator/PKGBUILD38
-rw-r--r--extra/qtscriptgenerator/phonon.patch55
-rw-r--r--extra/qtscriptgenerator/qtscriptgenerator-gcc44.patch15
-rw-r--r--extra/quodlibet/PKGBUILD38
-rw-r--r--extra/quota-tools/ChangeLog9
-rw-r--r--extra/quota-tools/LICENSE33
-rw-r--r--extra/quota-tools/PKGBUILD32
-rw-r--r--extra/qwt/PKGBUILD42
-rw-r--r--extra/qwt/qwtconfig-archlinux.pri85
-rw-r--r--extra/qwtplot3d/PKGBUILD42
-rw-r--r--extra/qwtplot3d/qwtplot3d-gcc44.patch12
-rw-r--r--extra/r/PKGBUILD63
-rw-r--r--extra/r/r.desktop12
-rw-r--r--extra/r/r.pngbin0 -> 4771 bytes
-rw-r--r--extra/racket/PKGBUILD36
-rw-r--r--extra/racket/drracket.desktop9
-rw-r--r--extra/racket/jpeg-version.patch621
-rw-r--r--extra/racket/racket.install11
-rw-r--r--extra/raptor/PKGBUILD27
-rw-r--r--extra/rarian/PKGBUILD29
-rw-r--r--extra/rarian/user-segfault.patch14
-rw-r--r--extra/rasqal/PKGBUILD29
-rw-r--r--extra/ratpoison/PKGBUILD50
-rw-r--r--extra/ratpoison/ratpoison.desktop8
-rw-r--r--extra/ratpoison/ratpoison.install20
-rw-r--r--extra/razor/PKGBUILD40
-rw-r--r--extra/rcs/PKGBUILD22
-rw-r--r--extra/rcs/rcs-5.7.patch67
-rw-r--r--extra/rdesktop/PKGBUILD30
-rw-r--r--extra/rdesktop/rdesktop-send_physical_buttons.diff70
-rw-r--r--extra/re2c/PKGBUILD23
-rw-r--r--extra/recode/PKGBUILD43
-rw-r--r--extra/recode/recode-3.6-as-if.patch19
-rw-r--r--extra/recode/recode-3.6-gcc43.patch20
-rw-r--r--extra/recode/recode-3.6-gettextfix.diff23
-rw-r--r--extra/recode/recode.install20
-rw-r--r--extra/redland/PKGBUILD77
-rw-r--r--extra/redland/rpath.diff11
-rw-r--r--extra/rhino/PKGBUILD18
-rw-r--r--extra/rhythmbox/PKGBUILD39
-rw-r--r--extra/rhythmbox/rhythmbox.install24
-rw-r--r--extra/ristretto/PKGBUILD32
-rw-r--r--extra/ristretto/ristretto.install13
-rw-r--r--extra/rosegarden/PKGBUILD42
-rw-r--r--extra/rosegarden/rosegarden.install14
-rw-r--r--extra/rox/PKGBUILD51
-rw-r--r--extra/rox/rox.desktop10
-rw-r--r--extra/rox/rox.svg493
-rw-r--r--extra/rrdtool/PKGBUILD36
-rw-r--r--extra/rssh/PKGBUILD34
-rw-r--r--extra/rssh/destdir.patch24
-rw-r--r--extra/rssh/rsync.patch57
-rw-r--r--extra/rsync/ChangeLog35
-rw-r--r--extra/rsync/PKGBUILD41
-rw-r--r--extra/rsync/rsync.xinetd11
-rw-r--r--extra/rsync/rsyncd37
-rw-r--r--extra/rsync/rsyncd.conf16
-rw-r--r--extra/rtkit/PKGBUILD36
-rw-r--r--extra/rtkit/rtkit.install26
-rw-r--r--extra/rtmpdump/PKGBUILD20
-rw-r--r--extra/rubberband/PKGBUILD30
-rw-r--r--extra/rubberband/rubberband.changelog11
-rw-r--r--extra/ruby/PKGBUILD50
-rw-r--r--extra/rxvt-unicode/PKGBUILD59
-rw-r--r--extra/rxvt-unicode/popup-menu-hang.diff24
-rw-r--r--extra/rxvt-unicode/rxvt-unicode.desktop10
-rw-r--r--extra/rxvt-unicode/rxvt-unicode.pngbin0 -> 1513 bytes
-rw-r--r--extra/samba/PKGBUILD139
-rw-r--r--extra/samba/fix-ipv6-mount.patch11
-rwxr-xr-xextra/samba/samba54
-rw-r--r--extra/samba/samba.conf.d7
-rw-r--r--extra/samba/samba.logrotate9
-rw-r--r--extra/samba/samba.pam3
-rw-r--r--extra/samba/swat.xinetd10
-rw-r--r--extra/sane-frontends/MissingCapsFlag.patch12
-rw-r--r--extra/sane-frontends/PKGBUILD22
-rw-r--r--extra/sane/PKGBUILD48
-rw-r--r--extra/sane/sane.install14
-rw-r--r--extra/sane/sane.xinetd11
-rw-r--r--extra/sbcl/PKGBUILD73
-rw-r--r--extra/sbcl/arch-fixes.lisp21
-rw-r--r--extra/sbcl/sbcl.install18
-rw-r--r--extra/schedtool/PKGBUILD29
-rw-r--r--extra/schroedinger/PKGBUILD25
-rw-r--r--extra/scim-anthy/PKGBUILD27
-rw-r--r--extra/scim-chewing/PKGBUILD28
-rw-r--r--extra/scim-hangul/PKGBUILD30
-rw-r--r--extra/scim-hangul/gcc43.patch22
-rw-r--r--extra/scim-m17n/PKGBUILD27
-rw-r--r--extra/scim-pinyin/PKGBUILD33
-rw-r--r--extra/scim-pinyin/scim-pinyin-0.5.91-cannot-build-against-scim-1.4.73
-rw-r--r--extra/scim-pinyin/scim-pinyin-0.5.91-gcc43.patch44
-rw-r--r--extra/scim-tables/PKGBUILD27
-rw-r--r--extra/scim-uim/PKGBUILD31
-rw-r--r--extra/scim-uim/scim-uim-0.2.0-fix-gcc43-build.patch10
-rw-r--r--extra/scim-uim/uim-1.5.5-header.diff13
-rw-r--r--extra/scim/PKGBUILD29
-rw-r--r--extra/scim/gcc45.patch12
-rw-r--r--extra/scim/scim.install13
-rw-r--r--extra/screen/PKGBUILD47
-rw-r--r--extra/screen/screen-4.0.3-caption-colors.patch21
-rw-r--r--extra/screen/screen-4.0.3-long-term.patch24
-rw-r--r--extra/screen/screen.install21
-rw-r--r--extra/screen/screen.pam1
-rw-r--r--extra/scribus/PKGBUILD48
-rw-r--r--extra/scribus/scribus.install13
-rw-r--r--extra/scrot/PKGBUILD22
-rw-r--r--extra/scummvm/PKGBUILD38
-rw-r--r--extra/sdl/PKGBUILD37
-rw-r--r--extra/sdl/sdl-1.2.14-fix-disappearing-cursor.patch17
-rw-r--r--extra/sdl/sdl-1.2.14-fix-mouse-clicking.patch23
-rw-r--r--extra/sdl/sdl-1.2.14-joystick-crash.diff14
-rw-r--r--extra/sdl_gfx/PKGBUILD32
-rw-r--r--extra/sdl_image/PKGBUILD22
-rw-r--r--extra/sdl_mixer/PKGBUILD29
-rw-r--r--extra/sdl_net/PKGBUILD23
-rw-r--r--extra/sdl_pango/PKGBUILD32
-rw-r--r--extra/sdl_pango/SDL_Pango-0.1.2-API-adds.patch116
-rw-r--r--extra/sdl_pango/matrix_declarations.patch131
-rw-r--r--extra/sdl_sound/PKGBUILD29
-rw-r--r--extra/sdl_sound/flac.patch126
-rw-r--r--extra/sdl_ttf/PKGBUILD26
-rw-r--r--extra/seahorse-plugins/PKGBUILD38
-rw-r--r--extra/seahorse-plugins/gpgme-init.patch43
-rw-r--r--extra/seahorse-plugins/seahorse-plugins-2.30.1-libnotify-0.7.patch26
-rw-r--r--extra/seahorse-plugins/seahorse-plugins.install26
-rw-r--r--extra/seahorse/PKGBUILD36
-rw-r--r--extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch26
-rw-r--r--extra/seahorse/seahorse.install24
-rw-r--r--extra/setserial/PKGBUILD27
-rw-r--r--extra/setserial/setserial.patch28
-rw-r--r--extra/sg3_utils/PKGBUILD27
-rw-r--r--extra/sg3_utils/stdint.patch22
-rw-r--r--extra/shared-mime-info/PKGBUILD30
-rw-r--r--extra/shared-mime-info/pbm.patch49
-rw-r--r--extra/shared-mime-info/shared-mime-info.install15
-rw-r--r--extra/sharutils/PKGBUILD32
-rw-r--r--extra/sharutils/sharutils.install20
-rw-r--r--extra/silc-toolkit/PKGBUILD27
-rw-r--r--extra/skanlite/PKGBUILD30
-rw-r--r--extra/slang/PKGBUILD28
-rw-r--r--extra/slang/slang-2.2.3-faster-baud-rates.patch62
-rw-r--r--extra/slim/PKGBUILD58
-rw-r--r--extra/slim/gcc44.patch11
-rw-r--r--extra/slim/no-host.patch29
-rw-r--r--extra/slim/restart.patch144
-rwxr-xr-xextra/slim/slim36
-rw-r--r--extra/slim/slim.install7
-rw-r--r--extra/slim/slim.logrotate9
-rw-r--r--extra/slim/slim.pam10
-rw-r--r--extra/slim/tty-slowness.patch30
-rw-r--r--extra/slv2/PKGBUILD32
-rw-r--r--extra/slv2/slv2.changelog18
-rw-r--r--extra/slv2/slv2.install14
-rw-r--r--extra/smartmontools/PKGBUILD42
-rw-r--r--extra/smartmontools/smartd.conf1
-rwxr-xr-xextra/smartmontools/smartd.rc39
-rw-r--r--extra/smb4k/PKGBUILD29
-rw-r--r--extra/smb4k/smb4k.install14
-rw-r--r--extra/smpeg/ChangeLog6
-rw-r--r--extra/smpeg/PKGBUILD29
-rw-r--r--extra/smpeg/smpeg-0.4.4-gcc41.patch41
-rw-r--r--extra/smplayer-themes/ChangeLog56
-rw-r--r--extra/smplayer-themes/PKGBUILD20
-rw-r--r--extra/smplayer/ChangeLog74
-rw-r--r--extra/smplayer/PKGBUILD35
-rw-r--r--extra/snarf/PKGBUILD20
-rw-r--r--extra/snd/PKGBUILD28
-rw-r--r--extra/socat/PKGBUILD29
-rw-r--r--extra/sofia-sip/PKGBUILD21
-rw-r--r--extra/sonata/ChangeLog12
-rw-r--r--extra/sonata/PKGBUILD23
-rw-r--r--extra/soprano/PKGBUILD33
-rw-r--r--extra/sound-juicer/PKGBUILD31
-rw-r--r--extra/sound-juicer/sound-juicer.install24
-rw-r--r--extra/soundtouch/ChangeLog10
-rw-r--r--extra/soundtouch/PKGBUILD36
-rw-r--r--extra/soundtouch/soundtouch-1.4.0-mmx-sse-compile-fix.patch14
-rw-r--r--extra/soundtouch/soundtouch-1.4.0-x86_64-asm-broken.patch12
-rw-r--r--extra/source-highlight/PKGBUILD33
-rw-r--r--extra/source-highlight/source-highlight.install18
-rw-r--r--extra/sox/PKGBUILD35
-rw-r--r--extra/spamassassin/PKGBUILD51
-rw-r--r--extra/spamassassin/spamassassin.install25
-rw-r--r--extra/spamassassin/spamd49
-rw-r--r--extra/spamassassin/spamd.conf.d1
-rw-r--r--extra/spassgen/PKGBUILD27
-rw-r--r--extra/speech-dispatcher/PKGBUILD68
-rw-r--r--extra/speech-dispatcher/speech-dispatcher.install21
-rw-r--r--extra/speech-dispatcher/speechd.sh37
-rw-r--r--extra/speedcrunch/PKGBUILD25
-rw-r--r--extra/speedtouch/PKGBUILD24
-rw-r--r--extra/speedtouch/speedtouch-1.3.1-gcc4.patch11
-rw-r--r--extra/speex/PKGBUILD25
-rw-r--r--extra/squeeze/PKGBUILD45
-rw-r--r--extra/squeeze/squeeze.install12
-rw-r--r--extra/squid/PKGBUILD62
-rw-r--r--extra/squid/fix-for-new-cap-headers.patch14
-rw-r--r--extra/squid/squid52
-rw-r--r--extra/squid/squid-makefiles.patch53
-rw-r--r--extra/squid/squid.conf.d4
-rw-r--r--extra/squid/squid.cron4
-rw-r--r--extra/squid/squid.install28
-rw-r--r--extra/squid/squid.pam4
-rw-r--r--extra/squirrelmail/PKGBUILD50
-rw-r--r--extra/squirrelmail/squirrelmail.install34
-rw-r--r--extra/srm/PKGBUILD23
-rw-r--r--extra/sshfs/PKGBUILD22
-rw-r--r--extra/ssmtp/PKGBUILD35
-rw-r--r--extra/stardict/PKGBUILD42
-rw-r--r--extra/stardict/as-needed.patch29
-rw-r--r--extra/stardict/help-in-destdir.patch21
-rw-r--r--extra/startup-notification/PKGBUILD24
-rw-r--r--extra/stellarium/PKGBUILD38
-rw-r--r--extra/stellarium/libpng14.patch21
-rw-r--r--extra/stellarium/stellarium.desktop9
-rw-r--r--extra/stellarium/stellarium.pngbin0 -> 18780 bytes
-rw-r--r--extra/strace/PKGBUILD27
-rw-r--r--extra/streamripper/PKGBUILD23
-rw-r--r--extra/streamtuner/PKGBUILD49
-rw-r--r--extra/streamtuner/shoutcast-redesign-patch.diff12
-rw-r--r--extra/streamtuner/streamtuner-0.99.99-shoutcast.diff41
-rw-r--r--extra/strigi/PKGBUILD33
-rw-r--r--extra/subversion/PKGBUILD92
-rw-r--r--extra/subversion/subversion.rpath.fix.patch10
-rw-r--r--extra/subversion/subversion.suppress.deprecation.warnings.patch22
-rw-r--r--extra/subversion/svn11
-rw-r--r--extra/subversion/svnmerge.py2370
-rwxr-xr-xextra/subversion/svnserve42
-rw-r--r--extra/subversion/svnserve.conf7
-rw-r--r--extra/sweep/PKGBUILD20
-rw-r--r--extra/swfdec-mozilla/PKGBUILD21
-rw-r--r--extra/swfdec/PKGBUILD25
-rw-r--r--extra/swh-plugins/PKGBUILD29
-rw-r--r--extra/swig/PKGBUILD40
-rw-r--r--extra/swig/swig-deprecated-pycobject.patch92
-rw-r--r--extra/swig/swig-pyslice.patch66
-rw-r--r--extra/swt/PKGBUILD72
-rw-r--r--extra/swt/build-swt.xml17
-rw-r--r--extra/sysklogd/ChangeLog5
-rw-r--r--extra/sysklogd/LICENSE16
-rw-r--r--extra/sysklogd/PKGBUILD39
-rwxr-xr-xextra/sysklogd/klogd37
-rw-r--r--extra/sysklogd/syslog.conf15
-rw-r--r--extra/sysklogd/syslog.logrotate6
-rwxr-xr-xextra/sysklogd/syslogd37
-rw-r--r--extra/system-config-printer/PKGBUILD105
-rw-r--r--extra/t1lib/PKGBUILD22
-rw-r--r--extra/taglib-extras/PKGBUILD25
-rw-r--r--extra/taglib-sharp/PKGBUILD24
-rw-r--r--extra/taglib/PKGBUILD33
-rw-r--r--extra/talloc/PKGBUILD30
-rw-r--r--extra/tcl/PKGBUILD48
-rw-r--r--extra/tcpdump/PKGBUILD34
-rw-r--r--extra/tcpdump/tcpdump_duplicate_executable.patch10
-rw-r--r--extra/tdb/PKGBUILD34
-rw-r--r--extra/telepathy-butterfly/0001-bugfix-remove-bad-import-from-im-module.patch26
-rw-r--r--extra/telepathy-butterfly/PKGBUILD28
-rw-r--r--extra/telepathy-butterfly/telepathy-butterfly.install13
-rw-r--r--extra/telepathy-farsight/PKGBUILD26
-rw-r--r--extra/telepathy-gabble/PKGBUILD26
-rw-r--r--extra/telepathy-gabble/telepathy-gabble.install13
-rw-r--r--extra/telepathy-glib/PKGBUILD26
-rw-r--r--extra/telepathy-haze/PKGBUILD26
-rw-r--r--extra/telepathy-haze/telepathy-haze.install13
-rw-r--r--extra/telepathy-idle/PKGBUILD29
-rw-r--r--extra/telepathy-idle/python27.patch21
-rw-r--r--extra/telepathy-idle/telepathy-idle.install13
-rw-r--r--extra/telepathy-logger/PKGBUILD30
-rw-r--r--extra/telepathy-logger/telepathy-logger.install11
-rw-r--r--extra/telepathy-mission-control/PKGBUILD26
-rw-r--r--extra/telepathy-qt4/PKGBUILD32
-rw-r--r--extra/telepathy-salut/PKGBUILD24
-rw-r--r--extra/telepathy-salut/telepathy-salut.install13
-rw-r--r--extra/telepathy-sofiasip/PKGBUILD23
-rw-r--r--extra/telepathy-sofiasip/telepathy-sofiasip.install13
-rw-r--r--extra/terminal/PKGBUILD36
-rw-r--r--extra/terminal/terminal.install11
-rw-r--r--extra/testdisk/PKGBUILD26
-rw-r--r--extra/texi2html/PKGBUILD25
-rw-r--r--extra/texlive-bin/09-texlive-fonts.conf9
-rw-r--r--extra/texlive-bin/PKGBUILD293
-rw-r--r--extra/texlive-bin/dvipng-fix-options.patch10
-rw-r--r--extra/texlive-bin/fix-fontforge-encoding.patch12
-rw-r--r--extra/texlive-bin/texmf.cnf663
-rw-r--r--extra/texmacs/PKGBUILD36
-rw-r--r--extra/tftp-hpa/LICENSE32
-rw-r--r--extra/tftp-hpa/PKGBUILD29
-rw-r--r--extra/tftp-hpa/tftpd.conf4
-rwxr-xr-xextra/tftp-hpa/tftpd.rc38
-rw-r--r--extra/thinkfinger/PKGBUILD38
-rw-r--r--extra/thinkfinger/thinkfinger-uinput-hack.patch13
-rw-r--r--extra/thinkfinger/thinkfinger.install4
-rw-r--r--extra/thunar-archive-plugin/PKGBUILD33
-rw-r--r--extra/thunar-archive-plugin/thunar-archive-plugin.install17
-rw-r--r--extra/thunar-media-tags-plugin/0001-Switch-to-the-new-tooltip-api-in-gtk-depend-on-gtk-2.patch177
-rw-r--r--extra/thunar-media-tags-plugin/04_fix-implicit-dso-linking.patch10
-rw-r--r--extra/thunar-media-tags-plugin/PKGBUILD47
-rw-r--r--extra/thunar-vfs/PKGBUILD35
-rw-r--r--extra/thunar-volman/PKGBUILD34
-rw-r--r--extra/thunar-volman/thunar-volman.install11
-rw-r--r--extra/thunar/PKGBUILD59
-rw-r--r--extra/thunar/org.freedesktop.udisks.pkla7
-rw-r--r--extra/thunar/thunar.install14
-rw-r--r--extra/tidyhtml/PKGBUILD36
-rw-r--r--extra/tightvnc/PKGBUILD39
-rw-r--r--extra/tightvnc/tightvnc-fontpath-xcolors.patch13
-rw-r--r--extra/time/PKGBUILD29
-rw-r--r--extra/time/time.install20
-rw-r--r--extra/timidity++/2.13.2-gcc4.patch30
-rw-r--r--extra/timidity++/PKGBUILD53
-rw-r--r--extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch349
-rw-r--r--extra/timidity++/timidity++-2.13.2-exiterror.patch695
-rw-r--r--extra/timidity++/timidity++-2.13.2-gtk26.patch19
-rw-r--r--extra/timidity++/timidity++-2.13.2-polling.patch34
-rw-r--r--extra/timidity++/timidity++.sh38
-rw-r--r--extra/timidity++/timidity.cfg29
-rw-r--r--extra/tk/PKGBUILD51
-rw-r--r--extra/tomboy/PKGBUILD34
-rw-r--r--extra/tomboy/tomboy.install25
-rw-r--r--extra/tomcat/PKGBUILD46
-rwxr-xr-xextra/tomcat/tomcat53
-rw-r--r--extra/tomcat/tomcat.conf.d5
-rw-r--r--extra/tomcat/tomcat.install27
-rw-r--r--extra/totem-plparser/PKGBUILD29
-rw-r--r--extra/totem/PKGBUILD80
-rw-r--r--extra/totem/totem.install24
-rw-r--r--extra/transcode/PKGBUILD76
-rw-r--r--extra/transcode/transcode-1.1.5-jpeg-7.patch16
-rw-r--r--extra/transcode/transcode-1.1.5-mpa.patch10
-rw-r--r--extra/transfig/ChangeLog36
-rw-r--r--extra/transfig/LICENSE23
-rw-r--r--extra/transfig/PKGBUILD36
-rw-r--r--extra/transmission/PKGBUILD74
-rw-r--r--extra/transmission/transmission-cli.install9
-rw-r--r--extra/transmission/transmission-gtk.install12
-rw-r--r--extra/transmission/transmissiond37
-rw-r--r--extra/transmission/transmissiond.conf5
-rw-r--r--extra/trayer/PKGBUILD23
-rw-r--r--extra/trayer/trayer.diff22
-rw-r--r--extra/tree/PKGBUILD21
-rw-r--r--extra/truecrypt/PKGBUILD40
-rw-r--r--extra/truecrypt/truecrypt.desktop9
-rw-r--r--extra/tsocks/PKGBUILD25
-rw-r--r--extra/tumbler/PKGBUILD33
-rw-r--r--extra/tunepimp/PKGBUILD46
-rw-r--r--extra/tunepimp/gcc4.4.patch13
-rw-r--r--extra/tunepimp/mp4v2-1.9.patch30
-rw-r--r--extra/tunepimp/tunepimp-gcc43.patch145
-rw-r--r--extra/tuxpuck/PKGBUILD22
-rw-r--r--extra/twisted/4771.diff22
-rw-r--r--extra/twisted/PKGBUILD33
-rw-r--r--extra/twisted/twisted.install11
-rw-r--r--extra/udisks/PKGBUILD28
-rw-r--r--extra/uim/PKGBUILD37
-rw-r--r--extra/uim/home.patch24
-rw-r--r--extra/uim/install13
-rw-r--r--extra/umfpack/PKGBUILD58
-rw-r--r--extra/umfpack/UFconfig.mk351
-rw-r--r--extra/unison/PKGBUILD46
-rw-r--r--extra/unison/unison-ssh-ocaml.patch25
-rw-r--r--extra/unison/unison.desktop13
-rw-r--r--extra/unison/unison.install28
-rw-r--r--extra/unixodbc/PKGBUILD29
-rw-r--r--extra/unzip/PKGBUILD40
-rw-r--r--extra/upower/PKGBUILD24
-rw-r--r--extra/usbmuxd/PKGBUILD28
-rw-r--r--extra/usbmuxd/usbmuxd-udevuser.patch11
-rw-r--r--extra/usbmuxd/usbmuxd.install19
-rw-r--r--extra/usbview/PKGBUILD27
-rw-r--r--extra/usermin/PKGBUILD129
-rw-r--r--extra/usermin/usermin-config.tar.bz2bin0 -> 951 bytes
-rw-r--r--extra/usermin/usermin.install34
-rw-r--r--extra/usermin/usermin.rc44
-rw-r--r--extra/v4l-utils/PKGBUILD31
-rw-r--r--extra/v86d/PKGBUILD38
-rw-r--r--extra/v86d/modprobe.uvesafb10
-rw-r--r--extra/v86d/v86d12
-rw-r--r--extra/v86d/v86d_hook4
-rw-r--r--extra/vala/PKGBUILD27
-rw-r--r--extra/valgrind/PKGBUILD40
-rw-r--r--extra/valgrind/glibc-patch-version.patch52
-rw-r--r--extra/vamp-plugin-sdk/PKGBUILD38
-rw-r--r--extra/vamp-plugin-sdk/gcc44.patch14
-rw-r--r--extra/vamp-plugin-sdk/vamp-plugin-sdk.changelog11
-rw-r--r--extra/vbetool/PKGBUILD28
-rw-r--r--extra/vcdimager/PKGBUILD24
-rw-r--r--extra/vcdimager/vcdimager.install19
-rw-r--r--extra/vde2/PKGBUILD44
-rw-r--r--extra/vde2/dhcpd.conf.sample12
-rw-r--r--extra/vde2/iptables.rules.sample5
-rw-r--r--extra/vde2/vde-config.sample35
-rw-r--r--extra/vde2/vde-connection.sample6
-rw-r--r--extra/vde2/vde.conf11
-rwxr-xr-xextra/vde2/vde.rc113
-rw-r--r--extra/vde2/vde2.install14
-rw-r--r--extra/vdpau-video/PKGBUILD25
-rw-r--r--extra/vice/PKGBUILD33
-rw-r--r--extra/vice/vice-2.3-x11video.patch11
-rw-r--r--extra/vigra/PKGBUILD35
-rw-r--r--extra/vigra/libpng-1.4.patch14
-rw-r--r--extra/vim/PKGBUILD198
-rw-r--r--extra/vim/archlinux.vim26
-rw-r--r--extra/vim/gvim.desktop42
-rw-r--r--extra/vim/gvim.install13
-rw-r--r--extra/vim/vimrc16
-rw-r--r--extra/vinagre/PKGBUILD32
-rw-r--r--extra/vinagre/vinagre.install26
-rw-r--r--extra/vino/PKGBUILD33
-rw-r--r--extra/vino/vino.install17
-rw-r--r--extra/virtuoso/PKGBUILD38
-rw-r--r--extra/vlc/PKGBUILD92
-rw-r--r--extra/vlc/vlc.install18
-rw-r--r--extra/vorbis-tools/ChangeLog26
-rw-r--r--extra/vorbis-tools/PKGBUILD27
-rw-r--r--extra/vsftpd/PKGBUILD42
-rw-r--r--extra/vsftpd/vsftpd.d67
-rw-r--r--extra/vsftpd/vsftpd.install17
-rw-r--r--extra/vsftpd/vsftpd.xinetd10
-rw-r--r--extra/vte/PKGBUILD24
-rw-r--r--extra/w3m/PKGBUILD37
-rw-r--r--extra/watchdog/PKGBUILD44
-rw-r--r--extra/watchdog/watchdog.cf2
-rw-r--r--extra/watchdog/watchdog.sh44
-rw-r--r--extra/wavpack/PKGBUILD29
-rw-r--r--extra/webkit-sharp/PKGBUILD28
-rw-r--r--extra/webmin/PKGBUILD215
-rw-r--r--extra/webmin/webmin-config.tar.bz2bin0 -> 3021 bytes
-rw-r--r--extra/webmin/webmin-pacman.tar.bz2bin0 -> 833 bytes
-rw-r--r--extra/webmin/webmin.install35
-rw-r--r--extra/webmin/webmin.rc44
-rw-r--r--extra/weechat/PKGBUILD33
-rw-r--r--extra/wesnoth/PKGBUILD28
-rw-r--r--extra/wesnoth/wesnoth-libpng-1.4.0.patch14
-rw-r--r--extra/wesnoth/wesnoth.install9
-rw-r--r--extra/whois/PKGBUILD27
-rw-r--r--extra/windowmaker-crm-git/PKGBUILD30
-rw-r--r--extra/windowmaker-crm-git/libpng-1.4.patch12
-rw-r--r--extra/windowmaker-crm-git/wmaker.desktop5
-rw-r--r--extra/windowmaker-extra/PKGBUILD23
-rw-r--r--extra/windowmaker/PKGBUILD35
-rw-r--r--extra/windowmaker/libpng-1.4.patch12
-rw-r--r--extra/windowmaker/windowmaker-gcc4.patch.tar.bz2bin0 -> 39677 bytes
-rw-r--r--extra/wipe/PKGBUILD28
-rw-r--r--extra/wireshark/PKGBUILD54
-rw-r--r--extra/wireshark/wireshark-gtk.install11
-rw-r--r--extra/wireshark/wireshark.install16
-rw-r--r--extra/wpa_supplicant_gui/PKGBUILD28
-rw-r--r--extra/wv/PKGBUILD25
-rw-r--r--extra/wv/fix-soname.patch14
-rw-r--r--extra/wv2/PKGBUILD30
-rw-r--r--extra/wvdial/PKGBUILD24
-rw-r--r--extra/wvstreams/PKGBUILD40
-rw-r--r--extra/wxgtk/PKGBUILD36
-rw-r--r--extra/wxmaxima/PKGBUILD36
-rw-r--r--extra/wxpython/ChangeLog48
-rw-r--r--extra/wxpython/PKGBUILD33
-rw-r--r--extra/wxpython/editra-aui.diff11
-rw-r--r--extra/x11vnc/PKGBUILD36
-rw-r--r--extra/x11vnc/x11vnc.conf5
-rw-r--r--extra/x11vnc/x11vnc.rc37
-rw-r--r--extra/x264/PKGBUILD31
-rw-r--r--extra/x2x/LICENSE39
-rw-r--r--extra/x2x/PKGBUILD23
-rw-r--r--extra/xaos/ChangeLog24
-rw-r--r--extra/xaos/PKGBUILD24
-rw-r--r--extra/xaos/xaos.install20
-rw-r--r--extra/xarchiver/ChangeLog9
-rw-r--r--extra/xarchiver/PKGBUILD37
-rw-r--r--extra/xarchiver/xarchiver.install12
-rw-r--r--extra/xaw3d/ChangeLog15
-rw-r--r--extra/xaw3d/LICENSE22
-rw-r--r--extra/xaw3d/PKGBUILD49
-rw-r--r--extra/xaw3d/Xaw3d-1.5-box.c.patch27
-rw-r--r--extra/xaw3d/Xaw3d-1.5-debian-fixes.patch647
-rw-r--r--extra/xaw3d/Xaw3d-1.5-i18n.patch10
-rw-r--r--extra/xaw3d/Xaw3d-1.5E-warnings.patch114
-rw-r--r--extra/xaw3d/Xaw3d-1.5E-xorg-imake.patch35
-rw-r--r--extra/xaw3d/Xaw3d-ia64.patch33
-rw-r--r--extra/xaw3d/xaw3d.patch30
-rw-r--r--extra/xawtv/PKGBUILD42
-rw-r--r--extra/xawtv/xawtv-3.95-fixes.patch72
-rw-r--r--extra/xawtv/xawtv-3.95-libv4l2.patch176
-rw-r--r--extra/xawtv/xawtv-3.95-no-dga.patch120
-rw-r--r--extra/xawtv/xawtv-3.95-pagemask-fix.patch44
-rw-r--r--extra/xawtv/xawtv-395.diff60
-rw-r--r--extra/xbill/PKGBUILD35
-rw-r--r--extra/xbill/xbill.install25
-rw-r--r--extra/xbindkeys/PKGBUILD27
-rw-r--r--extra/xcb-util/LICENSE267
-rw-r--r--extra/xcb-util/PKGBUILD26
-rw-r--r--extra/xchat-gnome/PKGBUILD50
-rw-r--r--extra/xchat-gnome/gtk2-2.20.patch137
-rw-r--r--extra/xchat-gnome/xchat-gnome-0.26.1-deprecated-symbol.patch22
-rw-r--r--extra/xchat-gnome/xchat-gnome.install24
-rw-r--r--extra/xchm/PKGBUILD32
-rw-r--r--extra/xchm/xchm.desktop10
-rw-r--r--extra/xchm/xchm.install15
-rw-r--r--extra/xchm/xchm.xml7
-rw-r--r--extra/xclip/PKGBUILD26
-rw-r--r--extra/xcompmgr/PKGBUILD24
-rw-r--r--extra/xdelta/PKGBUILD29
-rw-r--r--extra/xdelta/xdelta-1.1.4-aclocal.patch11
-rw-r--r--extra/xdelta3/PKGBUILD36
-rw-r--r--extra/xdelta3/xdelta3-makefile.patch24
-rw-r--r--extra/xf86-input-acecad/PKGBUILD26
-rw-r--r--extra/xf86-input-aiptek/PKGBUILD26
-rw-r--r--extra/xf86-input-evdev/PKGBUILD31
-rw-r--r--extra/xf86-input-joystick/50-joystick.conf6
-rw-r--r--extra/xf86-input-joystick/LICENSE22
-rw-r--r--extra/xf86-input-joystick/PKGBUILD34
-rw-r--r--extra/xf86-input-keyboard/PKGBUILD26
-rw-r--r--extra/xf86-input-mouse/PKGBUILD26
-rw-r--r--extra/xf86-input-synaptics/10-synaptics.conf9
-rw-r--r--extra/xf86-input-synaptics/PKGBUILD39
-rw-r--r--extra/xf86-input-void/PKGBUILD26
-rw-r--r--extra/xf86-input-wacom/70-wacom.rules8
-rw-r--r--extra/xf86-input-wacom/PKGBUILD30
-rw-r--r--extra/xf86-video-apm/PKGBUILD26
-rw-r--r--extra/xf86-video-ark/PKGBUILD27
-rw-r--r--extra/xf86-video-ast/PKGBUILD25
-rw-r--r--extra/xf86-video-ati/PKGBUILD31
-rw-r--r--extra/xf86-video-chips/PKGBUILD28
-rw-r--r--extra/xf86-video-cirrus/LICENSE22
-rw-r--r--extra/xf86-video-cirrus/PKGBUILD28
-rw-r--r--extra/xf86-video-dummy/PKGBUILD26
-rw-r--r--extra/xf86-video-fbdev/PKGBUILD26
-rw-r--r--extra/xf86-video-glint/PKGBUILD26
-rw-r--r--extra/xf86-video-i128/PKGBUILD26
-rw-r--r--extra/xf86-video-i740/PKGBUILD26
-rw-r--r--extra/xf86-video-intel/PKGBUILD31
-rw-r--r--extra/xf86-video-intel/git-fixes.patch1209
-rw-r--r--extra/xf86-video-mach64/PKGBUILD26
-rw-r--r--extra/xf86-video-mga/PKGBUILD27
-rw-r--r--extra/xf86-video-neomagic/PKGBUILD26
-rw-r--r--extra/xf86-video-nouveau/PKGBUILD41
-rw-r--r--extra/xf86-video-nouveau/xf86-video-nouveau.install16
-rw-r--r--extra/xf86-video-nv/PKGBUILD27
-rw-r--r--extra/xf86-video-openchrome/LICENSE.txt26
-rw-r--r--extra/xf86-video-openchrome/PKGBUILD35
-rw-r--r--extra/xf86-video-openchrome/drm_stdint.patch10
-rw-r--r--extra/xf86-video-openchrome/svn-r839.patch1447
-rw-r--r--extra/xf86-video-r128/LICENSE219
-rw-r--r--extra/xf86-video-r128/PKGBUILD29
-rw-r--r--extra/xf86-video-rendition/PKGBUILD28
-rw-r--r--extra/xf86-video-s3/LICENSE25
-rw-r--r--extra/xf86-video-s3/PKGBUILD29
-rw-r--r--extra/xf86-video-s3virge/LICENSE25
-rw-r--r--extra/xf86-video-s3virge/PKGBUILD29
-rw-r--r--extra/xf86-video-savage/PKGBUILD27
-rw-r--r--extra/xf86-video-siliconmotion/PKGBUILD28
-rw-r--r--extra/xf86-video-sis/PKGBUILD27
-rw-r--r--extra/xf86-video-sisusb/PKGBUILD26
-rw-r--r--extra/xf86-video-tdfx/LICENSE160
-rw-r--r--extra/xf86-video-tdfx/PKGBUILD29
-rw-r--r--extra/xf86-video-trident/PKGBUILD27
-rw-r--r--extra/xf86-video-tseng/PKGBUILD26
-rw-r--r--extra/xf86-video-unichrome/LICENSE23
-rw-r--r--extra/xf86-video-unichrome/PKGBUILD30
-rw-r--r--extra/xf86-video-unichrome/drm-include.patch11
-rw-r--r--extra/xf86-video-v4l/LICENSE826
-rw-r--r--extra/xf86-video-v4l/PKGBUILD27
-rw-r--r--extra/xf86-video-vesa/PKGBUILD26
-rw-r--r--extra/xf86-video-voodoo/PKGBUILD26
-rw-r--r--extra/xf86-video-xgi/PKGBUILD25
-rw-r--r--extra/xf86-video-xgixp/PKGBUILD25
-rwxr-xr-xextra/xfburn/PKGBUILD33
-rw-r--r--extra/xfburn/xfburn.install14
-rw-r--r--extra/xfce-utils/PKGBUILD40
-rw-r--r--extra/xfce-utils/xfce-utils.install21
-rw-r--r--extra/xfce4-appfinder/PKGBUILD34
-rw-r--r--extra/xfce4-appfinder/xfce4-appfinder.install12
-rw-r--r--extra/xfce4-battery-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-battery-plugin/xfce4-battery-plugin.install11
-rw-r--r--extra/xfce4-clipman-plugin/PKGBUILD38
-rw-r--r--extra/xfce4-clipman-plugin/xfce4-clipman-plugin.install12
-rw-r--r--extra/xfce4-cpufreq-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-cpufreq-plugin/xfce4-cpufreq-plugin.install11
-rw-r--r--extra/xfce4-cpugraph-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-cpugraph-plugin/xfce4-cpugraph-plugin.install12
-rw-r--r--extra/xfce4-datetime-plugin/PKGBUILD33
-rw-r--r--extra/xfce4-dict/PKGBUILD37
-rw-r--r--extra/xfce4-dict/xfce4-dict.install11
-rw-r--r--extra/xfce4-diskperf-plugin/PKGBUILD33
-rw-r--r--extra/xfce4-eyes-plugin/PKGBUILD32
-rw-r--r--extra/xfce4-eyes-plugin/xfce4-eyes-plugin.install11
-rw-r--r--extra/xfce4-fsguard-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-fsguard-plugin/xfce4-fsguard-plugin.install11
-rw-r--r--extra/xfce4-genmon-plugin/PKGBUILD33
-rw-r--r--extra/xfce4-mailwatch-plugin/PKGBUILD39
-rw-r--r--extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch21
-rw-r--r--extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install11
-rw-r--r--extra/xfce4-mixer/PKGBUILD38
-rw-r--r--extra/xfce4-mixer/xfce4-mixer.install11
-rw-r--r--extra/xfce4-mount-plugin/PKGBUILD33
-rw-r--r--extra/xfce4-mount-plugin/xfce4-mount-plugin.install11
-rw-r--r--extra/xfce4-mpc-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-netload-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-netload-plugin/xfce4-netload-plugin.install12
-rw-r--r--extra/xfce4-notes-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-notes-plugin/xfce4-notes-plugin.install12
-rw-r--r--extra/xfce4-notifyd/PKGBUILD37
-rw-r--r--extra/xfce4-notifyd/xfce4-notifyd.install12
-rw-r--r--extra/xfce4-panel/PKGBUILD36
-rw-r--r--extra/xfce4-panel/xfce4-panel.install11
-rw-r--r--extra/xfce4-power-manager/PKGBUILD41
-rw-r--r--extra/xfce4-power-manager/xfce4-power-manager-1.0.10-libnotify-0.7.patch14
-rw-r--r--extra/xfce4-power-manager/xfce4-power-manager.install11
-rw-r--r--extra/xfce4-quicklauncher-plugin/PKGBUILD50
-rw-r--r--extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch10
-rw-r--r--extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch103
-rw-r--r--extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch27
-rw-r--r--extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch12
-rw-r--r--extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch11
-rw-r--r--extra/xfce4-screenshooter/PKGBUILD43
-rw-r--r--extra/xfce4-screenshooter/fix_segfault.diff17
-rw-r--r--extra/xfce4-screenshooter/xfce4-screenshooter-1.7.9-dsofix.patch11
-rw-r--r--extra/xfce4-screenshooter/xfce4-screenshooter.install11
-rw-r--r--extra/xfce4-sensors-plugin/PKGBUILD46
-rw-r--r--extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch25
-rw-r--r--extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-underlink.patch36
-rw-r--r--extra/xfce4-sensors-plugin/xfce4-sensors-plugin.install11
-rw-r--r--extra/xfce4-session/PKGBUILD62
-rw-r--r--extra/xfce4-session/org.freedesktop.consolekit.pkla31
-rw-r--r--extra/xfce4-session/org.freedesktop.upower.pkla15
-rw-r--r--extra/xfce4-session/xfce4-session.install11
-rw-r--r--extra/xfce4-settings/PKGBUILD44
-rw-r--r--extra/xfce4-settings/xfce4-settings-4.6.0.patch18
-rw-r--r--extra/xfce4-smartbookmark-plugin/0001-Fix-problems-with-plugin-and-4.8-panel.patch37
-rw-r--r--extra/xfce4-smartbookmark-plugin/PKGBUILD41
-rw-r--r--extra/xfce4-smartbookmark-plugin/xfce4-smartbookmark-plugin-archlinux.patch24
-rw-r--r--extra/xfce4-systemload-plugin/PKGBUILD33
-rw-r--r--extra/xfce4-systemload-plugin/missing_tooltip.diff21
-rw-r--r--extra/xfce4-taskmanager/PKGBUILD28
-rwxr-xr-xextra/xfce4-time-out-plugin/PKGBUILD35
-rwxr-xr-xextra/xfce4-time-out-plugin/xfce4-time-out-plugin.install11
-rw-r--r--extra/xfce4-timer-plugin/PKGBUILD37
-rw-r--r--extra/xfce4-timer-plugin/panel48.patch39
-rw-r--r--extra/xfce4-verve-plugin/PKGBUILD33
-rw-r--r--extra/xfce4-wavelan-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-weather-plugin/PKGBUILD34
-rw-r--r--extra/xfce4-weather-plugin/xfce4-weather-plugin.install13
-rw-r--r--extra/xfce4-xfapplet-plugin/PKGBUILD32
-rw-r--r--extra/xfce4-xkb-plugin/PKGBUILD43
-rw-r--r--extra/xfce4-xkb-plugin/crashfix.diff34
-rw-r--r--extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch30
-rw-r--r--extra/xfconf/PKGBUILD42
-rw-r--r--extra/xfdesktop/PKGBUILD43
-rw-r--r--extra/xfdesktop/xfdesktop.install11
-rw-r--r--extra/xfig/LICENSE33
-rw-r--r--extra/xfig/PKGBUILD63
-rw-r--r--extra/xfig/xfig-3.2.4-redhat.patch31
-rw-r--r--extra/xfig/xfig-3.2.5-color-resources.patch39
-rw-r--r--extra/xfig/xfig-3.2.5-enable-Xaw3d.patch18
-rw-r--r--extra/xfig/xfig-3.2.5-fhs.patch12
-rw-r--r--extra/xfig/xfig-3.2.5-missing-protos.patch11
-rw-r--r--extra/xfig/xfig-3.2.5-urwfonts.patch79
-rw-r--r--extra/xfig/xfig-3.2.5b-fix-eps-reading.patch46
-rw-r--r--extra/xfig/xfig.3.2.5-modularX.patch28
-rw-r--r--extra/xfig/xfig.desktop47
-rw-r--r--extra/xfig/xfig.install11
-rw-r--r--extra/xfprint/PKGBUILD35
-rw-r--r--extra/xfprint/xfprint-manager-fix.diff29
-rw-r--r--extra/xfprint/xfprint.install11
-rw-r--r--extra/xfwm4-themes/PKGBUILD24
-rw-r--r--extra/xfwm4/PKGBUILD38
-rw-r--r--extra/xfwm4/xfwm4.install11
-rw-r--r--extra/xine-lib/PKGBUILD49
-rw-r--r--extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch13
-rw-r--r--extra/xine-lib/xine-lib-1.1.19-xvmc.patch17
-rw-r--r--extra/xine-ui/ChangeLog27
-rw-r--r--extra/xine-ui/PKGBUILD41
-rw-r--r--extra/xine-ui/fix_lirc.diff13
-rw-r--r--extra/xine-ui/lirc-check-a89347673097.patch64
-rw-r--r--extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch19
-rw-r--r--extra/xine-ui/xine-ui.install12
-rw-r--r--extra/xmahjongg/PKGBUILD21
-rw-r--r--extra/xmlsec/PKGBUILD31
-rw-r--r--extra/xmlto/PKGBUILD26
-rw-r--r--extra/xmms/PKGBUILD76
-rw-r--r--extra/xmms/xmms-1.2.10-crossfade-0.3.9.patch101
-rw-r--r--extra/xmms/xmms-1.2.10-fonts.patch24
-rw-r--r--extra/xmms/xmms-1.2.10-recode-id3.patch11
-rw-r--r--extra/xmms/xmms-1.2.11-3dse.patch503
-rw-r--r--extra/xmms/xmms-1.2.11-CVE-2007-0653.0654.patch43
-rw-r--r--extra/xmms/xmms-1.2.11-fix-http-title-mpg123.patch10
-rw-r--r--extra/xmms/xmms-fix.diff11
-rw-r--r--extra/xmms/xmms-menu.patch35
-rw-r--r--extra/xmms/xmms.16.pngbin0 -> 1497 bytes
-rw-r--r--extra/xmms/xmms.32.pngbin0 -> 3477 bytes
-rw-r--r--extra/xmms/xmms.48.pngbin0 -> 5925 bytes
-rw-r--r--extra/xorg-appres/PKGBUILD24
-rw-r--r--extra/xorg-bdftopcf/PKGBUILD24
-rw-r--r--extra/xorg-font-util/PKGBUILD27
-rw-r--r--extra/xorg-iceauth/PKGBUILD24
-rw-r--r--extra/xorg-luit/PKGBUILD25
-rw-r--r--extra/xorg-mkfontscale/PKGBUILD24
-rw-r--r--extra/xorg-oclock/PKGBUILD23
-rw-r--r--extra/xorg-server/10-quirks.conf10
-rw-r--r--extra/xorg-server/PKGBUILD181
-rw-r--r--extra/xorg-server/vbe-fix-malloc-size-bug.patch39
-rw-r--r--extra/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch16
-rw-r--r--extra/xorg-server/xvfb-run180
-rw-r--r--extra/xorg-server/xvfb-run.1282
-rw-r--r--extra/xorg-sessreg/PKGBUILD24
-rw-r--r--extra/xorg-setxkbmap/PKGBUILD24
-rw-r--r--extra/xorg-smproxy/PKGBUILD24
-rw-r--r--extra/xorg-twm/PKGBUILD30
-rw-r--r--extra/xorg-x11perf/PKGBUILD28
-rw-r--r--extra/xorg-xauth/PKGBUILD24
-rw-r--r--extra/xorg-xbacklight/PKGBUILD24
-rw-r--r--extra/xorg-xbiff/PKGBUILD27
-rw-r--r--extra/xorg-xcalc/PKGBUILD23
-rw-r--r--extra/xorg-xclipboard/PKGBUILD23
-rw-r--r--extra/xorg-xclock/PKGBUILD23
-rw-r--r--extra/xorg-xcmsdb/PKGBUILD24
-rw-r--r--extra/xorg-xconsole/PKGBUILD23
-rw-r--r--extra/xorg-xcursorgen/PKGBUILD24
-rw-r--r--extra/xorg-xdm/LICENSE132
-rw-r--r--extra/xorg-xdm/PKGBUILD43
-rw-r--r--extra/xorg-xdm/Xsession-loginshell.patch15
-rw-r--r--extra/xorg-xdm/Xsession-xsm.patch22
-rw-r--r--extra/xorg-xdm/xdm.pam8
-rw-r--r--extra/xorg-xdpyinfo/PKGBUILD24
-rw-r--r--extra/xorg-xdriinfo/PKGBUILD24
-rw-r--r--extra/xorg-xedit/PKGBUILD23
-rw-r--r--extra/xorg-xev/PKGBUILD24
-rw-r--r--extra/xorg-xeyes/PKGBUILD23
-rw-r--r--extra/xorg-xfd/PKGBUILD23
-rw-r--r--extra/xorg-xfontsel/PKGBUILD23
-rw-r--r--extra/xorg-xfs/PKGBUILD64
-rw-r--r--extra/xorg-xfs/xfs.rc46
-rw-r--r--extra/xorg-xgamma/PKGBUILD24
-rw-r--r--extra/xorg-xhost/PKGBUILD24
-rw-r--r--extra/xorg-xinit/06_move_serverauthfile_into_tmp.diff20
-rw-r--r--extra/xorg-xinit/PKGBUILD49
-rw-r--r--extra/xorg-xinit/xinitrc17
-rw-r--r--extra/xorg-xinit/xserverrc1
-rw-r--r--extra/xorg-xinit/xsession10
-rw-r--r--extra/xorg-xinput/PKGBUILD24
-rw-r--r--extra/xorg-xkbcomp/PKGBUILD24
-rw-r--r--extra/xorg-xkbevd/PKGBUILD24
-rw-r--r--extra/xorg-xkbutils/PKGBUILD24
-rw-r--r--extra/xorg-xkill/PKGBUILD24
-rw-r--r--extra/xorg-xload/PKGBUILD23
-rw-r--r--extra/xorg-xlogo/PKGBUILD23
-rw-r--r--extra/xorg-xlsatoms/PKGBUILD24
-rw-r--r--extra/xorg-xlsclients/PKGBUILD24
-rw-r--r--extra/xorg-xmag/PKGBUILD23
-rw-r--r--extra/xorg-xman/PKGBUILD23
-rw-r--r--extra/xorg-xmessage/PKGBUILD23
-rw-r--r--extra/xorg-xmodmap/PKGBUILD24
-rw-r--r--extra/xorg-xpr/PKGBUILD27
-rw-r--r--extra/xorg-xpr/copyright.patch75
-rw-r--r--extra/xorg-xprop/PKGBUILD24
-rw-r--r--extra/xorg-xrandr/PKGBUILD25
-rw-r--r--extra/xorg-xrdb/PKGBUILD24
-rw-r--r--extra/xorg-xrefresh/PKGBUILD24
-rw-r--r--extra/xorg-xset/PKGBUILD24
-rw-r--r--extra/xorg-xsetroot/PKGBUILD24
-rw-r--r--extra/xorg-xvidtune/PKGBUILD23
-rw-r--r--extra/xorg-xvinfo/PKGBUILD24
-rw-r--r--extra/xorg-xwd/PKGBUILD24
-rw-r--r--extra/xorg-xwininfo/PKGBUILD24
-rw-r--r--extra/xorg-xwud/PKGBUILD24
-rw-r--r--extra/xournal/PKGBUILD31
-rw-r--r--extra/xournal/pdf-export-64.patch89
-rw-r--r--extra/xournal/xournal.install13
-rw-r--r--extra/xpdf/PKGBUILD74
-rw-r--r--extra/xpdf/xpdf-3.00-xfont.patch11
-rw-r--r--extra/xpdf/xpdf.desktop9
-rw-r--r--extra/xpdf/xpdf.install11
-rw-r--r--extra/xplc/PKGBUILD28
-rw-r--r--extra/xsane/PKGBUILD66
-rw-r--r--extra/xsane/xsane-0.995-xdg-open.patch12
-rw-r--r--extra/xsane/xsane.install16
-rw-r--r--extra/xscreensaver/ChangeLog46
-rw-r--r--extra/xscreensaver/LICENSE9
-rw-r--r--extra/xscreensaver/PKGBUILD38
-rw-r--r--extra/xscreensaver/add-electricsheep.diff12
-rw-r--r--extra/xscreensaver/xscreensaver.pam1
-rw-r--r--extra/xsp/PKGBUILD61
-rw-r--r--extra/xsp/xsp.conf.d10
-rw-r--r--extra/xsp/xsp.install37
-rw-r--r--extra/xsp/xsp.rc.d40
-rw-r--r--extra/xsp/xsp.webapp8
-rw-r--r--extra/xterm/LICENSE73
-rw-r--r--extra/xterm/PKGBUILD57
-rw-r--r--extra/xulrunner/PKGBUILD61
-rw-r--r--extra/xulrunner/mozconfig56
-rw-r--r--extra/xulrunner/mozilla-pkgconfig.patch60
-rw-r--r--extra/xulrunner/port_gnomevfs_to_gio.patch1316
-rw-r--r--extra/xulrunner/xulrunner-omnijar.patch1737
-rw-r--r--extra/xulrunner/xulrunner-version.patch12
-rw-r--r--extra/xvidcore/PKGBUILD33
-rw-r--r--extra/yakuake/PKGBUILD33
-rw-r--r--extra/yakuake/yakuake.install11
-rw-r--r--extra/yasm/PKGBUILD28
-rw-r--r--extra/yelp/PKGBUILD32
-rw-r--r--extra/yelp/yelp.install22
-rw-r--r--extra/yp-tools/PKGBUILD25
-rw-r--r--extra/ypbind-mt/PKGBUILD34
-rwxr-xr-xextra/ypbind-mt/ypbind36
-rw-r--r--extra/ypbind-mt/ypbind.conf4
-rw-r--r--extra/ypserv/PKGBUILD36
-rwxr-xr-xextra/ypserv/yppasswd34
-rwxr-xr-xextra/ypserv/ypserv34
-rw-r--r--extra/zenity/PKGBUILD26
-rw-r--r--extra/zenity/zenity-2.32.1-libnotify-0.7.patch27
-rw-r--r--extra/zile/PKGBUILD24
-rw-r--r--extra/zip/ChangeLog13
-rw-r--r--extra/zip/PKGBUILD22
-rw-r--r--extra/zope-interface/PKGBUILD21
-rw-r--r--extra/zsh/PKGBUILD46
-rw-r--r--extra/zsh/zsh.install11
-rw-r--r--extra/zvbi/PKGBUILD25
-rw-r--r--extra/zvbi/fix-includes.patch36
-rw-r--r--gnome-unstable/accountsservice/PKGBUILD31
-rw-r--r--gnome-unstable/anjuta/PKGBUILD35
-rw-r--r--gnome-unstable/anjuta/anjuta.install21
-rw-r--r--gnome-unstable/at-spi/PKGBUILD32
-rw-r--r--gnome-unstable/at-spi/at-spi.install17
-rw-r--r--gnome-unstable/at-spi2-atk/PKGBUILD35
-rw-r--r--gnome-unstable/at-spi2-atk/at-spi2-atk.install11
-rw-r--r--gnome-unstable/at-spi2-core/PKGBUILD34
-rw-r--r--gnome-unstable/atk/PKGBUILD25
-rw-r--r--gnome-unstable/atkmm/PKGBUILD35
-rw-r--r--gnome-unstable/avahi/ChangeLog17
-rw-r--r--gnome-unstable/avahi/PKGBUILD80
-rw-r--r--gnome-unstable/avahi/avahi-daemon-dbus.patch11
-rw-r--r--gnome-unstable/avahi/avahi.install21
-rw-r--r--gnome-unstable/avahi/gnome-nettool.pngbin0 -> 4509 bytes
-rw-r--r--gnome-unstable/brasero/PKGBUILD37
-rw-r--r--gnome-unstable/brasero/brasero.install14
-rw-r--r--gnome-unstable/cairomm/PKGBUILD27
-rw-r--r--gnome-unstable/cheese/PKGBUILD32
-rw-r--r--gnome-unstable/cheese/cheese.install20
-rw-r--r--gnome-unstable/clutter-gst/PKGBUILD29
-rw-r--r--gnome-unstable/clutter-gtk/PKGBUILD26
-rw-r--r--gnome-unstable/clutter-gtk2/PKGBUILD33
-rw-r--r--gnome-unstable/clutter-gtk2/gir.patch39
-rw-r--r--gnome-unstable/clutter/PKGBUILD28
-rw-r--r--gnome-unstable/dconf/PKGBUILD30
-rw-r--r--gnome-unstable/dconf/dconf.install11
-rw-r--r--gnome-unstable/devhelp/PKGBUILD33
-rw-r--r--gnome-unstable/devhelp/devhelp.install22
-rw-r--r--gnome-unstable/ekiga/PKGBUILD38
-rw-r--r--gnome-unstable/ekiga/ekiga.install22
-rw-r--r--gnome-unstable/empathy/PKGBUILD39
-rw-r--r--gnome-unstable/empathy/empathy.install16
-rw-r--r--gnome-unstable/eog-plugins/PKGBUILD27
-rw-r--r--gnome-unstable/eog-plugins/eog-plugins.install11
-rw-r--r--gnome-unstable/eog/PKGBUILD33
-rw-r--r--gnome-unstable/eog/eog.install19
-rw-r--r--gnome-unstable/epiphany-extensions/PKGBUILD30
-rw-r--r--gnome-unstable/epiphany-extensions/epiphany-extensions.install11
-rw-r--r--gnome-unstable/epiphany/PKGBUILD31
-rw-r--r--gnome-unstable/epiphany/epiphany.install20
-rw-r--r--gnome-unstable/evince/PKGBUILD37
-rw-r--r--gnome-unstable/evince/evince.install19
-rw-r--r--gnome-unstable/evolution-data-server/PKGBUILD29
-rw-r--r--gnome-unstable/evolution-exchange/PKGBUILD33
-rw-r--r--gnome-unstable/evolution-exchange/evolution-exchange.install17
-rw-r--r--gnome-unstable/evolution/PKGBUILD45
-rw-r--r--gnome-unstable/evolution/evolution.install24
-rw-r--r--gnome-unstable/farsight2/PKGBUILD34
-rw-r--r--gnome-unstable/file-roller/PKGBUILD39
-rw-r--r--gnome-unstable/file-roller/file-roller.install22
-rw-r--r--gnome-unstable/folks/PKGBUILD27
-rw-r--r--gnome-unstable/gcalctool/PKGBUILD29
-rw-r--r--gnome-unstable/gcalctool/gcalctool.install11
-rw-r--r--gnome-unstable/gconf-editor/PKGBUILD33
-rw-r--r--gnome-unstable/gconf-editor/gconf-editor.install22
-rw-r--r--gnome-unstable/gconf/01_xml-gettext-domain.patch362
-rw-r--r--gnome-unstable/gconf/PKGBUILD50
-rwxr-xr-xgnome-unstable/gconf/gconf-merge-schema34
-rw-r--r--gnome-unstable/gconf/gconf-reload.patch20
-rw-r--r--gnome-unstable/gconf/gconf.install20
-rwxr-xr-xgnome-unstable/gconf/gconfpkg50
-rw-r--r--gnome-unstable/gdk-pixbuf2/PKGBUILD32
-rw-r--r--gnome-unstable/gdk-pixbuf2/gdk-pixbuf2.install11
-rw-r--r--gnome-unstable/gdl/PKGBUILD27
-rw-r--r--gnome-unstable/gdm/2.91_fix_external_program_directories.patch48
-rw-r--r--gnome-unstable/gdm/PKGBUILD63
-rw-r--r--gnome-unstable/gdm/fix_crasher_with_gtk307.patch104
-rwxr-xr-xgnome-unstable/gdm/gdm36
-rw-r--r--gnome-unstable/gdm/gdm-autologin.pam8
-rw-r--r--gnome-unstable/gdm/gdm-vt-allocation-hack.patch118
-rw-r--r--gnome-unstable/gdm/gdm.install44
-rw-r--r--gnome-unstable/gdm/gdm.pam10
-rw-r--r--gnome-unstable/gedit/PKGBUILD33
-rw-r--r--gnome-unstable/gedit/gedit.install18
-rw-r--r--gnome-unstable/gjs/PKGBUILD25
-rw-r--r--gnome-unstable/glade/PKGBUILD29
-rw-r--r--gnome-unstable/glade/glade.install12
-rw-r--r--gnome-unstable/glib-networking/PKGBUILD30
-rw-r--r--gnome-unstable/glib-networking/glib-networking.install11
-rw-r--r--gnome-unstable/glib2/PKGBUILD41
-rw-r--r--gnome-unstable/glib2/glib2.csh1
-rw-r--r--gnome-unstable/glib2/glib2.sh1
-rw-r--r--gnome-unstable/glibmm/PKGBUILD35
-rw-r--r--gnome-unstable/gnome-applets/PKGBUILD38
-rw-r--r--gnome-unstable/gnome-applets/gnome-applets.install22
-rw-r--r--gnome-unstable/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules11
-rw-r--r--gnome-unstable/gnome-bluetooth/PKGBUILD40
-rw-r--r--gnome-unstable/gnome-bluetooth/gnome-bluetooth.install12
-rw-r--r--gnome-unstable/gnome-color-manager/PKGBUILD32
-rw-r--r--gnome-unstable/gnome-color-manager/gnome-color-manager.install19
-rw-r--r--gnome-unstable/gnome-control-center/PKGBUILD36
-rw-r--r--gnome-unstable/gnome-control-center/gnome-control-center.install18
-rw-r--r--gnome-unstable/gnome-desktop/PKGBUILD30
-rw-r--r--gnome-unstable/gnome-disk-utility/PKGBUILD32
-rw-r--r--gnome-unstable/gnome-disk-utility/fix-freeze.patch32
-rw-r--r--gnome-unstable/gnome-disk-utility/gnome-disk-utility.install11
-rw-r--r--gnome-unstable/gnome-games/PKGBUILD42
-rw-r--r--gnome-unstable/gnome-games/gnome-games.install153
-rw-r--r--gnome-unstable/gnome-keyring/PKGBUILD32
-rw-r--r--gnome-unstable/gnome-keyring/gnome-keyring.install11
-rw-r--r--gnome-unstable/gnome-media/PKGBUILD38
-rw-r--r--gnome-unstable/gnome-media/gnome-media.install22
-rw-r--r--gnome-unstable/gnome-media/gnome_volume_control_fix_channel_bars.patch12
-rw-r--r--gnome-unstable/gnome-menus/PKGBUILD36
-rw-r--r--gnome-unstable/gnome-menus/menus.patch25
-rw-r--r--gnome-unstable/gnome-nettool/PKGBUILD30
-rw-r--r--gnome-unstable/gnome-nettool/gnome-nettool.install12
-rw-r--r--gnome-unstable/gnome-panel/PKGBUILD35
-rw-r--r--gnome-unstable/gnome-panel/gnome-panel.install24
-rw-r--r--gnome-unstable/gnome-pilot/PKGBUILD35
-rw-r--r--gnome-unstable/gnome-pilot/gnome-pilot.install17
-rw-r--r--gnome-unstable/gnome-power-manager/PKGBUILD34
-rw-r--r--gnome-unstable/gnome-power-manager/gnome-power-manager.install19
-rw-r--r--gnome-unstable/gnome-screensaver/PKGBUILD37
-rw-r--r--gnome-unstable/gnome-screensaver/gnome-screensaver.install7
-rw-r--r--gnome-unstable/gnome-screensaver/gnome-screensaver.pam3
-rw-r--r--gnome-unstable/gnome-session/PKGBUILD32
-rw-r--r--gnome-unstable/gnome-session/gnome-session.install18
-rw-r--r--gnome-unstable/gnome-settings-daemon/PKGBUILD31
-rw-r--r--gnome-unstable/gnome-settings-daemon/gnome-settings-daemon.install18
-rw-r--r--gnome-unstable/gnome-shell/PKGBUILD37
-rw-r--r--gnome-unstable/gnome-shell/gnome-shell.install22
-rw-r--r--gnome-unstable/gnome-system-monitor/PKGBUILD29
-rw-r--r--gnome-unstable/gnome-system-monitor/gnome-system-monitor.install19
-rw-r--r--gnome-unstable/gnome-terminal/PKGBUILD37
-rw-r--r--gnome-unstable/gnome-terminal/gnome-terminal.install17
-rw-r--r--gnome-unstable/gnome-themes-standard/PKGBUILD29
-rw-r--r--gnome-unstable/gnome-user-share/PKGBUILD33
-rw-r--r--gnome-unstable/gnome-user-share/gnome-user-share.install22
-rw-r--r--gnome-unstable/gnome-utils/PKGBUILD41
-rw-r--r--gnome-unstable/gnome-utils/gnome-utils.install26
-rw-r--r--gnome-unstable/gobject-introspection/PKGBUILD30
-rw-r--r--gnome-unstable/gthumb/PKGBUILD35
-rw-r--r--gnome-unstable/gthumb/gthumb.install24
-rw-r--r--gnome-unstable/gtk-vnc/PKGBUILD40
-rw-r--r--gnome-unstable/gtk2/PKGBUILD50
-rw-r--r--gnome-unstable/gtk2/gtk2.install16
-rw-r--r--gnome-unstable/gtk2/xid-collision-debug.patch15
-rw-r--r--gnome-unstable/gtk3/PKGBUILD36
-rw-r--r--gnome-unstable/gtk3/gtk3.install15
-rw-r--r--gnome-unstable/gtk3/settings.ini2
-rw-r--r--gnome-unstable/gtkhtml4/PKGBUILD29
-rw-r--r--gnome-unstable/gtkmm/PKGBUILD38
-rw-r--r--gnome-unstable/gtkmm3/PKGBUILD38
-rw-r--r--gnome-unstable/gtksourceview3/PKGBUILD28
-rw-r--r--gnome-unstable/gucharmap/PKGBUILD35
-rw-r--r--gnome-unstable/gucharmap/gucharmap.install22
-rw-r--r--gnome-unstable/gvfs/PKGBUILD101
-rw-r--r--gnome-unstable/gvfs/gvfs-module.install7
-rw-r--r--gnome-unstable/gvfs/gvfs-smb.install12
-rw-r--r--gnome-unstable/gvfs/gvfs.install14
-rw-r--r--gnome-unstable/lcms2/PKGBUILD28
-rw-r--r--gnome-unstable/libcanberra/PKGBUILD72
-rw-r--r--gnome-unstable/libcanberra/libcanberra-gtk-module.sh10
-rw-r--r--gnome-unstable/libcanberra/libcanberra-quit-add.patch24
-rw-r--r--gnome-unstable/libcanberra/libcanberra.install23
-rw-r--r--gnome-unstable/libchamplain/PKGBUILD28
-rw-r--r--gnome-unstable/libdmapsharing/PKGBUILD21
-rw-r--r--gnome-unstable/libgda/PKGBUILD33
-rw-r--r--gnome-unstable/libgda/libgda.install12
-rw-r--r--gnome-unstable/libgdata/PKGBUILD26
-rw-r--r--gnome-unstable/libgnome-keyring/PKGBUILD28
-rw-r--r--gnome-unstable/libgnome-media-profiles/PKGBUILD36
-rw-r--r--gnome-unstable/libgnome-media-profiles/libgnome-media-profiles.install17
-rw-r--r--gnome-unstable/libgnomekbd/PKGBUILD28
-rw-r--r--gnome-unstable/libgnomekbd/libgnomekbd.install11
-rw-r--r--gnome-unstable/libgpod/PKGBUILD30
-rw-r--r--gnome-unstable/libgweather/01_gettext_not_xml.patch527
-rw-r--r--gnome-unstable/libgweather/PKGBUILD40
-rw-r--r--gnome-unstable/libgweather/gettext-not-xml.patch533
-rw-r--r--gnome-unstable/libgweather/libgweather.install22
-rw-r--r--gnome-unstable/libimobiledevice/PKGBUILD31
-rw-r--r--gnome-unstable/libimobiledevice/swig-version-check.patch14
-rw-r--r--gnome-unstable/libnice/PKGBUILD28
-rw-r--r--gnome-unstable/libnotify/PKGBUILD26
-rw-r--r--gnome-unstable/libpeas/PKGBUILD29
-rw-r--r--gnome-unstable/libpeas/libpeas.install11
-rw-r--r--gnome-unstable/librsvg/PKGBUILD31
-rw-r--r--gnome-unstable/librsvg/librsvg.install11
-rw-r--r--gnome-unstable/libsocialweb/PKGBUILD33
-rw-r--r--gnome-unstable/libsoup/PKGBUILD48
-rw-r--r--gnome-unstable/libunique/PKGBUILD34
-rw-r--r--gnome-unstable/libunique/unique-gdbus.patch529
-rw-r--r--gnome-unstable/libunique3/PKGBUILD27
-rw-r--r--gnome-unstable/libwebkit/PKGBUILD56
-rw-r--r--gnome-unstable/libwebkit/libwebkit.install11
-rw-r--r--gnome-unstable/libwnck/PKGBUILD30
-rw-r--r--gnome-unstable/libwnck3/PKGBUILD27
-rw-r--r--gnome-unstable/libxklavier/PKGBUILD28
-rw-r--r--gnome-unstable/mousetweaks/PKGBUILD29
-rw-r--r--gnome-unstable/mousetweaks/mousetweaks.install17
-rw-r--r--gnome-unstable/mutter/PKGBUILD36
-rw-r--r--gnome-unstable/mutter/mutter.install17
-rw-r--r--gnome-unstable/mx/PKGBUILD28
-rw-r--r--gnome-unstable/nautilus-open-terminal/PKGBUILD33
-rw-r--r--gnome-unstable/nautilus-open-terminal/nautilus-open-terminal.install17
-rw-r--r--gnome-unstable/nautilus-sendto/PKGBUILD31
-rw-r--r--gnome-unstable/nautilus-sendto/nautilus-sendto.install11
-rw-r--r--gnome-unstable/nautilus/PKGBUILD35
-rw-r--r--gnome-unstable/nautilus/nautilus.install20
-rw-r--r--gnome-unstable/network-manager-applet/PKGBUILD43
-rw-r--r--gnome-unstable/network-manager-applet/network-manager-applet.install18
-rw-r--r--gnome-unstable/networkmanager-openvpn/PKGBUILD31
-rw-r--r--gnome-unstable/networkmanager-openvpn/networkmanager-openvpn.install11
-rw-r--r--gnome-unstable/networkmanager-pptp/PKGBUILD31
-rw-r--r--gnome-unstable/networkmanager-pptp/networkmanager-pptp.install11
-rw-r--r--gnome-unstable/networkmanager-vpnc/PKGBUILD32
-rw-r--r--gnome-unstable/networkmanager-vpnc/networkmanager-vpnc.install11
-rw-r--r--gnome-unstable/networkmanager/NetworkManager.conf2
-rw-r--r--gnome-unstable/networkmanager/PKGBUILD58
-rw-r--r--gnome-unstable/networkmanager/disable_set_hostname.patch19
-rw-r--r--gnome-unstable/networkmanager/networkmanager.install9
-rw-r--r--gnome-unstable/notification-daemon/PKGBUILD30
-rw-r--r--gnome-unstable/notification-daemon/notification-daemon.install22
-rw-r--r--gnome-unstable/opal/PKGBUILD26
-rw-r--r--gnome-unstable/pangomm/PKGBUILD33
-rw-r--r--gnome-unstable/pidgin/PKGBUILD90
-rw-r--r--gnome-unstable/pidgin/pidgin.install11
-rw-r--r--gnome-unstable/polkit-gnome/PKGBUILD33
-rw-r--r--gnome-unstable/polkit-gnome/polkit-gnome-authentication-agent-1.desktop88
-rw-r--r--gnome-unstable/polkit/PKGBUILD29
-rw-r--r--gnome-unstable/polkit/polkit.pam7
-rw-r--r--gnome-unstable/ptlib/PKGBUILD33
-rw-r--r--gnome-unstable/pygobject/PKGBUILD75
-rw-r--r--gnome-unstable/pygtk/PKGBUILD37
-rw-r--r--gnome-unstable/pygtk/python27.patch50
-rw-r--r--gnome-unstable/rest/PKGBUILD29
-rw-r--r--gnome-unstable/rhythmbox/PKGBUILD41
-rw-r--r--gnome-unstable/rhythmbox/rhythmbox.install24
-rw-r--r--gnome-unstable/seahorse/PKGBUILD38
-rw-r--r--gnome-unstable/seahorse/seahorse.install24
-rw-r--r--gnome-unstable/telepathy-gabble/PKGBUILD30
-rw-r--r--gnome-unstable/telepathy-gabble/telepathy-gabble.install13
-rw-r--r--gnome-unstable/telepathy-glib/PKGBUILD31
-rw-r--r--gnome-unstable/telepathy-logger/PKGBUILD33
-rw-r--r--gnome-unstable/telepathy-logger/telepathy-logger.install11
-rw-r--r--gnome-unstable/telepathy-mission-control/PKGBUILD30
-rw-r--r--gnome-unstable/totem-plparser/PKGBUILD29
-rw-r--r--gnome-unstable/totem/PKGBUILD66
-rw-r--r--gnome-unstable/totem/totem.install19
-rw-r--r--gnome-unstable/upower/PKGBUILD24
-rw-r--r--gnome-unstable/vinagre/PKGBUILD33
-rw-r--r--gnome-unstable/vinagre/vinagre.install20
-rw-r--r--gnome-unstable/vino/PKGBUILD32
-rw-r--r--gnome-unstable/vino/vino.install18
-rw-r--r--gnome-unstable/vte/PKGBUILD66
-rw-r--r--gnome-unstable/yelp/PKGBUILD30
-rw-r--r--gnome-unstable/yelp/yelp.install19
-rw-r--r--gnome-unstable/zenity/PKGBUILD27
-rw-r--r--kde-unstable/kdepim-runtime/PKGBUILD38
-rw-r--r--kde-unstable/kdepim-runtime/disable-l10n.patch10
-rw-r--r--kde-unstable/kdepim-runtime/kdepim-runtime.install12
-rw-r--r--kde-unstable/kdepim/PKGBUILD257
-rw-r--r--kde-unstable/kdepim/disable-l10n.patch10
-rw-r--r--kde-unstable/kdepim/kdepim.install11
-rw-r--r--libre-testing/b43-tools-git/PKGBUILD53
-rw-r--r--libre-testing/kernel26-libre/PKGBUILD260
-rw-r--r--libre-testing/kernel26-libre/config.i6865565
-rw-r--r--libre-testing/kernel26-libre/config.x86_645304
-rwxr-xr-xlibre-testing/kernel26-libre/get_configs17
-rw-r--r--libre-testing/kernel26-libre/kernel26.install147
-rw-r--r--libre-testing/kernel26-libre/kernel26.preset17
-rw-r--r--libre-testing/openfwwf/PKGBUILD21
-rw-r--r--libre-testing/unace-libre/PKGBUILD38
-rw-r--r--libre/aif-libre/PKGBUILD37
-rw-r--r--libre/audacious-plugins-libre/PKGBUILD83
-rw-r--r--libre/aufs2-libre/PKGBUILD67
-rw-r--r--libre/aufs2-libre/aufs2-libre.install12
-rw-r--r--libre/aufs2-libre/aufs2-module-2.6.36.patch47
-rw-r--r--libre/aufs2-libre/create-tarball.sh14
-rw-r--r--libre/ffmpeg-libre/PKGBUILD57
-rw-r--r--libre/filesystem/PKGBUILD95
-rw-r--r--libre/filesystem/crypttab33
-rw-r--r--libre/filesystem/filesystem.install59
-rw-r--r--libre/filesystem/fstab6
-rw-r--r--libre/filesystem/group30
-rw-r--r--libre/filesystem/gshadow30
-rw-r--r--libre/filesystem/host.conf8
-rw-r--r--libre/filesystem/hosts9
-rw-r--r--libre/filesystem/issue3
-rw-r--r--libre/filesystem/ld.so.conf7
-rw-r--r--libre/filesystem/modprobe.d.usb-load-ehci-first2
-rw-r--r--libre/filesystem/motd0
-rw-r--r--libre/filesystem/nsswitch.conf19
-rw-r--r--libre/filesystem/passwd7
-rw-r--r--libre/filesystem/profile27
-rw-r--r--libre/filesystem/resolv.conf8
-rw-r--r--libre/filesystem/securetty15
-rw-r--r--libre/filesystem/shadow7
-rw-r--r--libre/filesystem/shells9
-rw-r--r--libre/ghostscript-libre/PKGBUILD67
-rw-r--r--libre/ghostscript-libre/gs_bug691759and691760.diff215
-rw-r--r--libre/ghostscript-libre/svn_rev11948.diff16
-rw-r--r--libre/grub2/05_archtheme6
-rw-r--r--libre/grub2/20_memtest86+27
-rw-r--r--libre/grub2/PKGBUILD204
-rw-r--r--libre/grub2/archlinux_grub2_mkconfig_fixes.patch93
-rw-r--r--libre/grub2/grub.cfg26
-rw-r--r--libre/grub2/grub.default42
-rw-r--r--libre/grub2/grub2.install30
-rw-r--r--libre/gstreamer0.10-bad-libre/PKGBUILD54
-rw-r--r--libre/gstreamer0.10-bad-libre/gstreamer0.10-bad-plugins.install11
-rw-r--r--libre/icecat-i18n/PKGBUILD627
-rw-r--r--libre/icecat/PKGBUILD120
-rw-r--r--libre/icecat/arch-linux-wiki.xml12
-rw-r--r--libre/icecat/duck-duck-go-lite.xml8
-rw-r--r--libre/icecat/duck-duck-go-ssl.xml8
-rw-r--r--libre/icecat/firefox-version.patch12
-rw-r--r--libre/icecat/firefox.js1072
-rw-r--r--libre/icecat/icecat-safe.desktop78
-rw-r--r--libre/icecat/icecat.desktop78
-rw-r--r--libre/icecat/icecat.install21
-rw-r--r--libre/icecat/internet-archive.xml12
-rw-r--r--libre/icecat/jamendo-en.xml12
-rw-r--r--libre/icecat/logless-search.xml8
-rw-r--r--libre/icecat/mozconfig64
-rw-r--r--libre/icecat/mozilla-firefox-1.0-lang.patch12
-rw-r--r--libre/icecat/python2.7.patch11
-rw-r--r--libre/icecat/region.properties23
-rw-r--r--libre/icecat/scroogle-ssl-english.xml14
-rw-r--r--libre/icecat/xulrunner-copy-stub.patch11
-rw-r--r--libre/icecat/yacy.xml9
-rw-r--r--libre/initscripts/PKGBUILD36
-rw-r--r--libre/initscripts/initscripts.install7
-rw-r--r--libre/initscripts/parabola-branding.patch52
-rw-r--r--libre/initscripts/wireless.conf.d12
-rw-r--r--libre/kernel26-libre-lts/PKGBUILD227
-rw-r--r--libre/kernel26-libre-lts/config.i6864769
-rw-r--r--libre/kernel26-libre-lts/config.x86_644577
-rw-r--r--libre/kernel26-libre-lts/kernel26-libre-lts.install147
-rw-r--r--libre/kernel26-libre-lts/kernel26-lts.preset17
-rw-r--r--libre/kernel26-libre-lts/libata-alignment.patch48
-rw-r--r--libre/kernel26-libre-manpages/PKGBUILD31
-rw-r--r--libre/libretools/PKGBUILD58
-rw-r--r--libre/libretools/libretools.install36
-rw-r--r--libre/libui-sh/PKGBUILD25
-rw-r--r--libre/licenses-libre/PKGBUILD114
-rw-r--r--libre/licenses-libre/ZopePublicLicense.txt54
-rw-r--r--libre/licenses-libre/cc-by-3.0.txt60
-rw-r--r--libre/licenses-libre/cc-by-sa-3.0.txt63
-rw-r--r--libre/licenses-libre/cc-readme.txt10
-rw-r--r--libre/licenses-libre/cddl-1.0.txt377
-rw-r--r--libre/licenses-libre/cpl-1.0.txt217
-rw-r--r--libre/licenses-libre/eclipse-1.0.txt88
-rw-r--r--libre/licenses-libre/perlartistic.txt151
-rw-r--r--libre/licenses-libre/python-2.txt193
-rw-r--r--libre/mplayer-libre/PKGBUILD59
-rw-r--r--libre/mplayer-libre/mplayer.desktop21
-rw-r--r--libre/mplayer-libre/mplayer.install11
-rw-r--r--libre/mplayer-libre/mplayer.pngbin0 -> 1982 bytes
-rw-r--r--libre/mplayer-vaapi-libre/PKGBUILD82
-rw-r--r--libre/mplayer-vaapi-libre/mplayer-vaapi.install9
-rw-r--r--libre/mplayer-vaapi-libre/mplayer.desktop21
-rw-r--r--libre/mplayer-vaapi-libre/mplayer.pngbin0 -> 1982 bytes
-rw-r--r--libre/mplayer-vaapi-libre/patch-fixes.patch131
-rw-r--r--libre/p7zip-libre/9.04-makefile.patch19
-rw-r--r--libre/p7zip-libre/PKGBUILD51
-rw-r--r--libre/pacman-mirrorlist-libre/PKGBUILD37
-rw-r--r--libre/pacman-mirrorlist-libre/mirrorlist4
-rw-r--r--libre/psutils-libre/PKGBUILD31
-rw-r--r--libre/python-reportlab-libre/PKGBUILD39
-rw-r--r--libre/python-reportlab-libre/free-fonts.patch144
-rw-r--r--libre/seamonkey-libre/PKGBUILD56
-rw-r--r--libre/seamonkey-libre/gnuzilla-addons.patch29
-rw-r--r--libre/seamonkey-libre/mozconfig30
-rw-r--r--libre/seamonkey-libre/python27.patch11
-rw-r--r--libre/seamonkey-libre/seamonkey-2.0-lang.patch11
-rw-r--r--libre/seamonkey-libre/seamonkey-appversion.patch12
-rw-r--r--libre/seamonkey-libre/seamonkey.desktop11
-rw-r--r--libre/sqlite3/PKGBUILD87
-rw-r--r--libre/sqlite3/license.txt33
-rw-r--r--libre/thunderbird-libre/PKGBUILD83
-rw-r--r--libre/thunderbird-libre/gnuzilla-addons.patch36
-rw-r--r--libre/thunderbird-libre/mozconfig38
-rw-r--r--libre/thunderbird-libre/python2.7.patch11
-rw-r--r--libre/thunderbird-libre/thunderbird-3.0-lang.patch11
-rw-r--r--libre/thunderbird-libre/thunderbird-appversion.patch12
-rw-r--r--libre/thunderbird-libre/thunderbird-preferences.patch30
-rw-r--r--libre/thunderbird-libre/thunderbird-shared-error.patch15
-rw-r--r--libre/thunderbird-libre/thunderbird.desktop13
-rw-r--r--libre/thunderbird-libre/thunderbird.install11
-rw-r--r--libre/thunderbird-libre/xulrunner-png14.patch11
-rw-r--r--libre/ttf-thai-libre/PKGBUILD27
-rw-r--r--libre/ttf-thai-libre/ttf.install15
-rw-r--r--libre/unrar-libre/PKGBUILD29
-rw-r--r--libre/xchat-libre/ChangeLog49
-rw-r--r--libre/xchat-libre/PKGBUILD41
-rw-r--r--libre/xchat-libre/remove-non-free-suggestion.patch12
-rw-r--r--libre/xorg-fonts-100dpi-libre/PKGBUILD40
-rw-r--r--libre/xorg-fonts-100dpi-libre/xfonts.install20
-rw-r--r--libre/xorg-fonts-75dpi-libre/PKGBUILD37
-rw-r--r--libre/xorg-fonts-75dpi-libre/xfonts.install20
-rw-r--r--libre/xorg-fonts-type1-libre/PKGBUILD36
-rw-r--r--libre/xorg-fonts-type1-libre/xfonts.install20
-rw-r--r--libre/your-freedom/PKGBUILD32
-rw-r--r--libre/your-freedom/your-freedom.install32
-rw-r--r--multilib-testing/binutils-multilib/PKGBUILD75
-rw-r--r--multilib-testing/binutils-multilib/binutils.install17
-rw-r--r--multilib-testing/gcc-multilib/PKGBUILD308
-rw-r--r--multilib-testing/gcc-multilib/gcc-ada.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-fortran.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc-go.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc-hash-style-both.patch122
-rw-r--r--multilib-testing/gcc-multilib/gcc-libs.install16
-rw-r--r--multilib-testing/gcc-multilib/gcc.install20
-rw-r--r--multilib-testing/gcc-multilib/gcc_pure64.patch24
-rw-r--r--multilib-testing/lib32-glibc/PKGBUILD129
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch42
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.13-futex.patch31
-rw-r--r--multilib-testing/lib32-glibc/glibc-2.13-prelink.patch26
-rw-r--r--multilib-testing/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib-testing/lib32-glibc/lib32-glibc.conf1
-rw-r--r--multilib-testing/lib32-libdrm/PKGBUILD48
-rw-r--r--multilib-testing/lib32-libdrm/no-pthread-stubs.patch65
-rw-r--r--multilib/binutils-multilib/PKGBUILD76
-rw-r--r--multilib/binutils-multilib/binutils.git-39637246.patch700
-rw-r--r--multilib/binutils-multilib/binutils.install17
-rw-r--r--multilib/chuck/PKGBUILD41
-rw-r--r--multilib/gcc-multilib/PKGBUILD267
-rw-r--r--multilib/gcc-multilib/gcc-ada.install22
-rw-r--r--multilib/gcc-multilib/gcc-fortran.install18
-rw-r--r--multilib/gcc-multilib/gcc-hash-style-both.patch163
-rw-r--r--multilib/gcc-multilib/gcc-libs.install14
-rw-r--r--multilib/gcc-multilib/gcc.install22
-rw-r--r--multilib/gcc-multilib/gcc_pure64.patch24
-rw-r--r--multilib/lib32-acl/PKGBUILD34
-rw-r--r--multilib/lib32-alsa-lib/PKGBUILD32
-rw-r--r--multilib/lib32-alsa-oss/PKGBUILD33
-rw-r--r--multilib/lib32-alsa-plugins/PKGBUILD35
-rw-r--r--multilib/lib32-atk/PKGBUILD34
-rw-r--r--multilib/lib32-attr/PKGBUILD35
-rw-r--r--multilib/lib32-audiofile/PKGBUILD32
-rw-r--r--multilib/lib32-cairo/PKGBUILD36
-rw-r--r--multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch13
-rwxr-xr-xmultilib/lib32-curl/PKGBUILD55
-rw-r--r--multilib/lib32-db/PKGBUILD40
-rw-r--r--multilib/lib32-dbus-core/PKGBUILD42
-rw-r--r--multilib/lib32-e2fsprogs/PKGBUILD37
-rw-r--r--multilib/lib32-expat/CVE-2009-3560.patch13
-rw-r--r--multilib/lib32-expat/CVE-2009-3720.patch12
-rw-r--r--multilib/lib32-expat/PKGBUILD39
-rw-r--r--multilib/lib32-flac/PKGBUILD41
-rw-r--r--multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch11
-rw-r--r--multilib/lib32-fontconfig/30-urw-aliases.patch13
-rw-r--r--multilib/lib32-fontconfig/PKGBUILD40
-rw-r--r--multilib/lib32-freetype2/PKGBUILD42
-rw-r--r--multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch20
-rw-r--r--multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch11
-rw-r--r--multilib/lib32-gdk-pixbuf2/PKGBUILD45
-rw-r--r--multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install11
-rw-r--r--multilib/lib32-giflib/PKGBUILD48
-rw-r--r--multilib/lib32-glew/PKGBUILD34
-rw-r--r--multilib/lib32-glib/PKGBUILD43
-rw-r--r--multilib/lib32-glib/aclocal-fixes.patch11
-rw-r--r--multilib/lib32-glib/gcc340.patch15
-rw-r--r--multilib/lib32-glib2/PKGBUILD38
-rw-r--r--multilib/lib32-glibc/PKGBUILD123
-rw-r--r--multilib/lib32-glibc/glibc-2.10-bz4781.patch42
-rw-r--r--multilib/lib32-glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--multilib/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--multilib/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--multilib/lib32-glibc/glibc-2.13-prelink.patch26
-rw-r--r--multilib/lib32-glibc/glibc-__i686.patch13
-rw-r--r--multilib/lib32-glibc/lib32-glibc.conf1
-rw-r--r--multilib/lib32-gnutls/PKGBUILD36
-rw-r--r--multilib/lib32-gtk/PKGBUILD42
-rw-r--r--multilib/lib32-gtk/aclocal-fixes.patch11
-rw-r--r--multilib/lib32-gtk2/PKGBUILD53
-rw-r--r--multilib/lib32-gtk2/gtk-modules-32.patch12
-rw-r--r--multilib/lib32-gtk2/gtk2.install16
-rw-r--r--multilib/lib32-gtk2/xid-collision-debug.patch15
-rw-r--r--multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch10
-rw-r--r--multilib/lib32-heimdal/002_all_heimal-fPIC.patch12
-rw-r--r--multilib/lib32-heimdal/003_all_heimdal-rxapps.patch22
-rw-r--r--multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch20
-rw-r--r--multilib/lib32-heimdal/012_all_heimdal-berkdb.patch124
-rw-r--r--multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch11
-rw-r--r--multilib/lib32-heimdal/014_all_heimdal-path.patch50
-rw-r--r--multilib/lib32-heimdal/PKGBUILD69
-rw-r--r--multilib/lib32-jack/PKGBUILD39
-rw-r--r--multilib/lib32-lcms/PKGBUILD37
-rw-r--r--multilib/lib32-libasyncns/PKGBUILD39
-rw-r--r--multilib/lib32-libcanberra/PKGBUILD57
-rw-r--r--multilib/lib32-libcap/PKGBUILD26
-rw-r--r--multilib/lib32-libcups/PKGBUILD38
-rw-r--r--multilib/lib32-libdrm/PKGBUILD47
-rw-r--r--multilib/lib32-libdrm/git_nouveau.diff327
-rw-r--r--multilib/lib32-libdrm/no-pthread-stubs.patch65
-rw-r--r--multilib/lib32-libgcrypt/PKGBUILD40
-rw-r--r--multilib/lib32-libgpg-error/PKGBUILD35
-rw-r--r--multilib/lib32-libice/PKGBUILD37
-rw-r--r--multilib/lib32-libjpeg/PKGBUILD39
-rw-r--r--multilib/lib32-libldap/PKGBUILD61
-rw-r--r--multilib/lib32-libldap/ntlm.patch230
-rw-r--r--multilib/lib32-libmikmod/PKGBUILD53
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff47
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff21
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff15
-rw-r--r--multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff112
-rw-r--r--multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch33
-rw-r--r--multilib/lib32-libmng/PKGBUILD38
-rw-r--r--multilib/lib32-libogg/PKGBUILD38
-rw-r--r--multilib/lib32-libpng/PKGBUILD55
-rw-r--r--multilib/lib32-libpulse/PKGBUILD55
-rw-r--r--multilib/lib32-libsamplerate/PKGBUILD35
-rw-r--r--multilib/lib32-libsm/PKGBUILD36
-rw-r--r--multilib/lib32-libsndfile/PKGBUILD39
-rw-r--r--multilib/lib32-libstdc++5/PKGBUILD46
-rw-r--r--multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch11
-rw-r--r--multilib/lib32-libtiff/PKGBUILD39
-rw-r--r--multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch22
-rw-r--r--multilib/lib32-libusb-compat/PKGBUILD33
-rw-r--r--multilib/lib32-libusb/PKGBUILD34
-rw-r--r--multilib/lib32-libvdpau/PKGBUILD37
-rw-r--r--multilib/lib32-libvorbis/PKGBUILD39
-rw-r--r--multilib/lib32-libx11/PKGBUILD37
-rw-r--r--multilib/lib32-libxau/PKGBUILD37
-rw-r--r--multilib/lib32-libxcb/PKGBUILD46
-rw-r--r--multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch12
-rw-r--r--multilib/lib32-libxcomposite/PKGBUILD36
-rw-r--r--multilib/lib32-libxcursor/PKGBUILD36
-rw-r--r--multilib/lib32-libxdamage/PKGBUILD35
-rw-r--r--multilib/lib32-libxdmcp/PKGBUILD38
-rw-r--r--multilib/lib32-libxext/PKGBUILD37
-rw-r--r--multilib/lib32-libxfixes/PKGBUILD35
-rw-r--r--multilib/lib32-libxft/PKGBUILD35
-rw-r--r--multilib/lib32-libxi/PKGBUILD37
-rw-r--r--multilib/lib32-libxinerama/PKGBUILD36
-rw-r--r--multilib/lib32-libxml2/PKGBUILD40
-rw-r--r--multilib/lib32-libxml2/shared_library_versionning.patch21
-rw-r--r--multilib/lib32-libxmu/PKGBUILD38
-rw-r--r--multilib/lib32-libxpm/PKGBUILD36
-rw-r--r--multilib/lib32-libxrandr/PKGBUILD36
-rw-r--r--multilib/lib32-libxrender/PKGBUILD35
-rw-r--r--multilib/lib32-libxslt/PKGBUILD37
-rw-r--r--multilib/lib32-libxss/PKGBUILD39
-rw-r--r--multilib/lib32-libxt/PKGBUILD37
-rw-r--r--multilib/lib32-libxtst/PKGBUILD38
-rw-r--r--multilib/lib32-libxv/PKGBUILD37
-rw-r--r--multilib/lib32-libxvmc/PKGBUILD37
-rw-r--r--multilib/lib32-libxxf86dga/PKGBUILD38
-rw-r--r--multilib/lib32-libxxf86vm/PKGBUILD37
-rw-r--r--multilib/lib32-mesa/PKGBUILD341
-rw-r--r--multilib/lib32-mpg123/PKGBUILD39
-rw-r--r--multilib/lib32-ncurses/PKGBUILD73
-rw-r--r--multilib/lib32-ncurses/set_field_buffer.patch9
-rw-r--r--multilib/lib32-nspr/PKGBUILD56
-rw-r--r--multilib/lib32-nspr/nspr.pc.in10
-rw-r--r--multilib/lib32-nss/PKGBUILD81
-rw-r--r--multilib/lib32-nss/add_spi+cacert_ca_certs.patch561
-rw-r--r--multilib/lib32-nss/nss-no-rpath.patch14
-rw-r--r--multilib/lib32-nss/nss-nolocalsql.patch52
-rw-r--r--multilib/lib32-nss/nss.pc.in11
-rw-r--r--multilib/lib32-nss/ssl-renegotiate-transitional.patch21
-rw-r--r--multilib/lib32-openal/PKGBUILD35
-rw-r--r--multilib/lib32-openssl/PKGBUILD56
-rw-r--r--multilib/lib32-openssl/ca-dir.patch33
-rw-r--r--multilib/lib32-openssl/no-rpath.patch11
-rw-r--r--multilib/lib32-pango/PKGBUILD44
-rw-r--r--multilib/lib32-pango/pango-modules-conffile.patch20
-rw-r--r--multilib/lib32-pango/pango.install21
-rw-r--r--multilib/lib32-pcre/PKGBUILD36
-rw-r--r--multilib/lib32-pixman/PKGBUILD33
-rw-r--r--multilib/lib32-qt/PKGBUILD94
-rw-r--r--multilib/lib32-readline/PKGBUILD50
-rw-r--r--multilib/lib32-sdl/PKGBUILD44
-rw-r--r--multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch17
-rw-r--r--multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch23
-rw-r--r--multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff14
-rw-r--r--multilib/lib32-sdl_image/PKGBUILD36
-rw-r--r--multilib/lib32-sdl_ttf/PKGBUILD31
-rw-r--r--multilib/lib32-speex/PKGBUILD33
-rw-r--r--multilib/lib32-sqlite3/PKGBUILD50
-rw-r--r--multilib/lib32-talloc/PKGBUILD41
-rw-r--r--multilib/lib32-tdb/PKGBUILD35
-rw-r--r--multilib/lib32-udev/PKGBUILD36
-rw-r--r--multilib/lib32-util-linux/PKGBUILD52
-rw-r--r--multilib/lib32-v4l-utils/PKGBUILD35
-rw-r--r--multilib/lib32-xcb-util/PKGBUILD35
-rw-r--r--multilib/lib32-zlib/PKGBUILD44
-rw-r--r--multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch13
-rw-r--r--multilib/libtool-multilib/PKGBUILD64
-rw-r--r--multilib/libtool-multilib/libtool.install22
-rw-r--r--multilib/nspluginwrapper/PKGBUILD42
-rw-r--r--multilib/nspluginwrapper/npw-viewer.c.patch13
-rw-r--r--multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch178
-rw-r--r--multilib/nspluginwrapper/nspluginwrapper-native-windows.patch14
-rw-r--r--multilib/q4wine/PKGBUILD25
-rw-r--r--multilib/q4wine/q4wine.desktop18
-rw-r--r--multilib/wine/PKGBUILD142
-rw-r--r--multilib/wine/wine.install12
-rw-r--r--multilib/wine_gecko/PKGBUILD32
-rw-r--r--multilib/zsnes/PKGBUILD56
-rw-r--r--multilib/zsnes/zsnes.desktop9
-rw-r--r--multilib/zsnes/zsnes.patch68
-rw-r--r--multilib/zsnes/zsnes_icon.pngbin0 -> 7301 bytes
-rw-r--r--social/bitcoin-daemon/PKGBUILD55
-rw-r--r--social/bitcoin-daemon/bitcoin-daemon.install18
-rw-r--r--social/bitcoin-daemon/makefile.archlinux72
-rw-r--r--social/bitcoin-daemon/rc.bitcoind35
-rw-r--r--social/diaspora-git/PKGBUILD100
-rw-r--r--social/diaspora-git/diaspora.bin3
-rw-r--r--social/diaspora-git/diaspora.install29
-rw-r--r--social/diaspora-git/diaspora.logrotate5
-rw-r--r--social/diaspora-git/diaspora.pam3
-rw-r--r--social/diaspora-git/diaspora.rc65
-rw-r--r--social/haveged/PKGBUILD28
-rw-r--r--social/haveged/haveged44
-rw-r--r--social/inadyn-opendns/PKGBUILD32
-rw-r--r--social/inadyn-opendns/inadyn-opendns.install17
-rw-r--r--social/inadyn-opendns/inadyn.rc-script38
-rw-r--r--social/liblockfile/PKGBUILD30
-rw-r--r--social/lockfile-progs/PKGBUILD26
-rw-r--r--social/monkeysphere/PKGBUILD22
-rw-r--r--social/monkeysphere/monkeysphere.install40
-rw-r--r--social/ruby-headers/PKGBUILD29
-rw-r--r--social/statusnet/PKGBUILD1298
-rw-r--r--social/statusnet/statusnet.install13
-rw-r--r--staging/ardour/PKGBUILD50
-rw-r--r--staging/ardour/ardour.changelog26
-rw-r--r--staging/ardour/ardour.desktop9
-rw-r--r--staging/gpsd/LICENSE38
-rw-r--r--staging/gpsd/PKGBUILD77
-rwxr-xr-xstaging/gpsd/gpsd43
-rw-r--r--staging/gpsd/gpsd.install16
-rw-r--r--staging/liblrdf/PKGBUILD30
-rw-r--r--staging/liblrdf/md5.patch18
-rw-r--r--staging/raptor/PKGBUILD27
-rw-r--r--staging/raptor1/PKGBUILD30
-rw-r--r--staging/rasqal/PKGBUILD29
-rw-r--r--staging/redland/PKGBUILD77
-rw-r--r--staging/redland/rpath.diff11
-rw-r--r--staging/slv2/PKGBUILD32
-rw-r--r--staging/slv2/slv2.changelog23
-rw-r--r--staging/slv2/slv2.install14
-rw-r--r--staging/soprano/PKGBUILD34
-rw-r--r--testing/archboot/PKGBUILD48
-rw-r--r--testing/archboot/archboot.install20
-rw-r--r--testing/archboot/vmware-detect.c13
-rw-r--r--testing/aufs2-util/PKGBUILD25
-rwxr-xr-xtesting/aufs2-util/create-tarball.sh11
-rw-r--r--testing/binutils/PKGBUILD83
-rw-r--r--testing/binutils/binutils.install17
-rw-r--r--testing/cloog/PKGBUILD27
-rw-r--r--testing/crda/PKGBUILD39
-rw-r--r--testing/crda/crda.install18
-rwxr-xr-xtesting/crda/crda.rc26
-rw-r--r--testing/dmraid/PKGBUILD38
-rw-r--r--testing/dmraid/dmraid.install14
-rw-r--r--testing/dmraid/dmraid_hook18
-rw-r--r--testing/dmraid/dmraid_install20
-rw-r--r--testing/gcc/PKGBUILD255
-rw-r--r--testing/gcc/gcc-ada.install20
-rw-r--r--testing/gcc/gcc-fortran.install16
-rw-r--r--testing/gcc/gcc-go.install20
-rw-r--r--testing/gcc/gcc-hash-style-both.patch122
-rw-r--r--testing/gcc/gcc-libs.install16
-rw-r--r--testing/gcc/gcc.install20
-rw-r--r--testing/gcc/gcc_pure64.patch26
-rw-r--r--testing/ghc/PKGBUILD78
-rw-r--r--testing/ghc/build.mk150
-rw-r--r--testing/ghc/ghc.install19
-rw-r--r--testing/glibc/PKGBUILD168
-rw-r--r--testing/glibc/glibc-2.10-bz4781.patch42
-rw-r--r--testing/glibc/glibc-2.10-dont-build-timezone.patch13
-rw-r--r--testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch11
-rw-r--r--testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch26
-rw-r--r--testing/glibc/glibc-2.13-futex.patch31
-rw-r--r--testing/glibc/glibc-2.13-prelink.patch26
-rw-r--r--testing/glibc/glibc-__i686.patch13
-rw-r--r--testing/glibc/glibc.install20
-rwxr-xr-xtesting/glibc/locale-gen42
-rw-r--r--testing/glibc/locale.gen.txt23
-rwxr-xr-xtesting/glibc/nscd40
-rw-r--r--testing/gnutls/PKGBUILD41
-rw-r--r--testing/gnutls/gnutls.install20
-rw-r--r--testing/haddock/PKGBUILD39
-rw-r--r--testing/haddock/haddock.install18
-rw-r--r--testing/haskell-cgi/PKGBUILD39
-rw-r--r--testing/haskell-cgi/haskell-cgi.install18
-rw-r--r--testing/haskell-deepseq/PKGBUILD38
-rw-r--r--testing/haskell-deepseq/haskell-deepseq.install18
-rw-r--r--testing/haskell-fgl/PKGBUILD36
-rw-r--r--testing/haskell-fgl/haskell-fgl.install18
-rw-r--r--testing/haskell-ghc-paths/PKGBUILD35
-rw-r--r--testing/haskell-ghc-paths/haskell-ghc-paths.install18
-rw-r--r--testing/haskell-glut/PKGBUILD36
-rw-r--r--testing/haskell-glut/haskell-glut.install18
-rw-r--r--testing/haskell-haskell-src/PKGBUILD39
-rw-r--r--testing/haskell-haskell-src/haskell-haskell-src.install18
-rw-r--r--testing/haskell-html/PKGBUILD39
-rw-r--r--testing/haskell-html/haskell-html.install19
-rw-r--r--testing/haskell-http/PKGBUILD40
-rw-r--r--testing/haskell-http/haskell-http.install18
-rw-r--r--testing/haskell-hunit/PKGBUILD37
-rw-r--r--testing/haskell-hunit/haskell-hunit.install19
-rw-r--r--testing/haskell-mtl/PKGBUILD38
-rw-r--r--testing/haskell-mtl/haskell-mtl.install18
-rw-r--r--testing/haskell-network/PKGBUILD39
-rw-r--r--testing/haskell-network/haskell-network.install18
-rw-r--r--testing/haskell-opengl/PKGBUILD35
-rw-r--r--testing/haskell-opengl/haskell-opengl.install18
-rw-r--r--testing/haskell-parallel/PKGBUILD38
-rw-r--r--testing/haskell-parallel/haskell-parallel.install18
-rw-r--r--testing/haskell-parsec/PKGBUILD39
-rw-r--r--testing/haskell-parsec/haskell-parsec.install18
-rw-r--r--testing/haskell-platform/PKGBUILD40
-rw-r--r--testing/haskell-quickcheck/PKGBUILD38
-rw-r--r--testing/haskell-quickcheck/haskell-quickcheck.install18
-rw-r--r--testing/haskell-regex-base/PKGBUILD37
-rw-r--r--testing/haskell-regex-base/haskell-regex-base.install18
-rw-r--r--testing/haskell-regex-compat/PKGBUILD37
-rw-r--r--testing/haskell-regex-compat/haskell-regex-compat.install18
-rw-r--r--testing/haskell-regex-posix/PKGBUILD37
-rw-r--r--testing/haskell-regex-posix/haskell-regex-posix.install18
-rw-r--r--testing/haskell-stm/PKGBUILD38
-rw-r--r--testing/haskell-stm/haskell-stm.install18
-rw-r--r--testing/haskell-syb/PKGBUILD37
-rw-r--r--testing/haskell-syb/haskell-syb.install18
-rw-r--r--testing/haskell-text/PKGBUILD38
-rw-r--r--testing/haskell-text/haskell-text.install18
-rw-r--r--testing/haskell-transformers/PKGBUILD38
-rw-r--r--testing/haskell-transformers/haskell-transformers.install18
-rw-r--r--testing/haskell-xhtml/PKGBUILD38
-rw-r--r--testing/haskell-xhtml/haskell-xhtml.install19
-rw-r--r--testing/haskell-zlib/PKGBUILD39
-rw-r--r--testing/haskell-zlib/haskell-zlib.install18
-rw-r--r--testing/isl/PKGBUILD25
-rw-r--r--testing/libdrm/COPYING48
-rw-r--r--testing/libdrm/PKGBUILD40
-rw-r--r--testing/libdrm/no-pthread-stubs.patch65
-rw-r--r--testing/libgcrypt/PKGBUILD39
-rw-r--r--testing/libgcrypt/libgcrypt.install20
-rw-r--r--testing/libgpg-error/PKGBUILD37
-rw-r--r--testing/libtool/PKGBUILD31
-rw-r--r--testing/libtool/libtool.install22
-rw-r--r--testing/libx11/PKGBUILD38
-rw-r--r--testing/libx11/add-define-XK_SINHALA.patch25
-rw-r--r--testing/libx11/xorg.sh15
-rw-r--r--testing/linux-api-headers/PKGBUILD39
-rw-r--r--testing/lirc/PKGBUILD89
-rw-r--r--testing/lirc/irexec.conf5
-rwxr-xr-xtesting/lirc/irexecd38
-rw-r--r--testing/lirc/lirc.install16
-rw-r--r--testing/lirc/lirc.logrotate5
-rwxr-xr-xtesting/lirc/lircd52
-rw-r--r--testing/lirc/lircd.conf8
-rwxr-xr-xtesting/lirc/lircmd36
-rw-r--r--testing/madwifi/PKGBUILD46
-rw-r--r--testing/madwifi/kernel-2.6.30.patch14
-rw-r--r--testing/madwifi/madwifi-ng.install14
-rw-r--r--testing/make/PKGBUILD45
-rw-r--r--testing/make/bug30612.patch66
-rw-r--r--testing/make/bug30723.patch12
-rw-r--r--testing/make/make-3.82-sort-blank.patch17
-rw-r--r--testing/make/make.install20
-rw-r--r--testing/mdadm/PKGBUILD45
-rwxr-xr-xtesting/mdadm/mdadm38
-rw-r--r--testing/mdadm/mdadm.conf67
-rw-r--r--testing/mdadm/mdadm.install10
-rwxr-xr-xtesting/mdadm/mdadm_hook44
-rw-r--r--testing/mdadm/mdadm_install46
-rw-r--r--testing/mesa/LICENSE82
-rw-r--r--testing/mesa/PKGBUILD342
-rw-r--r--testing/mesa/gnome-shell-shader-fix.patch535
-rw-r--r--testing/pciutils/PKGBUILD30
-rw-r--r--testing/syslog-ng/PKGBUILD58
-rw-r--r--testing/syslog-ng/cap_syslog.patch101
-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.rc39
-rw-r--r--testing/tzdata/Makefile.patch140
-rw-r--r--testing/tzdata/PKGBUILD40
-rw-r--r--testing/usbutils/PKGBUILD31
-rw-r--r--testing/xf86-input-acecad/PKGBUILD47
-rw-r--r--testing/xf86-input-aiptek/PKGBUILD47
-rw-r--r--testing/xf86-input-evdev/PKGBUILD31
-rw-r--r--testing/xf86-input-joystick/50-joystick.conf6
-rw-r--r--testing/xf86-input-joystick/LICENSE22
-rw-r--r--testing/xf86-input-joystick/PKGBUILD54
-rw-r--r--testing/xf86-input-keyboard/PKGBUILD26
-rw-r--r--testing/xf86-input-mouse/PKGBUILD26
-rw-r--r--testing/xf86-input-synaptics/10-synaptics.conf9
-rw-r--r--testing/xf86-input-synaptics/PKGBUILD39
-rw-r--r--testing/xf86-input-void/PKGBUILD47
-rw-r--r--testing/xf86-input-wacom/70-wacom.rules8
-rw-r--r--testing/xf86-input-wacom/PKGBUILD30
-rw-r--r--testing/xf86-video-apm/PKGBUILD26
-rw-r--r--testing/xf86-video-ark/PKGBUILD27
-rw-r--r--testing/xf86-video-ast/PKGBUILD25
-rw-r--r--testing/xf86-video-ati/PKGBUILD31
-rw-r--r--testing/xf86-video-ati/ati-fix-build-1.10.patch38
-rw-r--r--testing/xf86-video-chips/PKGBUILD28
-rw-r--r--testing/xf86-video-cirrus/LICENSE22
-rw-r--r--testing/xf86-video-cirrus/PKGBUILD28
-rw-r--r--testing/xf86-video-dummy/PKGBUILD26
-rw-r--r--testing/xf86-video-fbdev/PKGBUILD26
-rw-r--r--testing/xf86-video-glint/PKGBUILD26
-rw-r--r--testing/xf86-video-i128/PKGBUILD26
-rw-r--r--testing/xf86-video-i740/PKGBUILD26
-rw-r--r--testing/xf86-video-intel/PKGBUILD30
-rw-r--r--testing/xf86-video-intel/git-fixes.patch1209
-rw-r--r--testing/xf86-video-mach64/PKGBUILD29
-rw-r--r--testing/xf86-video-mach64/mach64-fix-pixmap.patch47
-rw-r--r--testing/xf86-video-mga/PKGBUILD27
-rw-r--r--testing/xf86-video-neomagic/PKGBUILD26
-rw-r--r--testing/xf86-video-nouveau/PKGBUILD41
-rw-r--r--testing/xf86-video-nouveau/xf86-video-nouveau.install16
-rw-r--r--testing/xf86-video-nv/PKGBUILD27
-rw-r--r--testing/xf86-video-openchrome/LICENSE.txt26
-rw-r--r--testing/xf86-video-openchrome/PKGBUILD35
-rw-r--r--testing/xf86-video-openchrome/drm_stdint.patch10
-rw-r--r--testing/xf86-video-openchrome/svn-r839.patch1447
-rw-r--r--testing/xf86-video-r128/LICENSE219
-rw-r--r--testing/xf86-video-r128/PKGBUILD29
-rw-r--r--testing/xf86-video-rendition/PKGBUILD28
-rw-r--r--testing/xf86-video-s3/LICENSE25
-rw-r--r--testing/xf86-video-s3/PKGBUILD29
-rw-r--r--testing/xf86-video-s3virge/LICENSE25
-rw-r--r--testing/xf86-video-s3virge/PKGBUILD29
-rw-r--r--testing/xf86-video-savage/PKGBUILD27
-rw-r--r--testing/xf86-video-siliconmotion/PKGBUILD28
-rw-r--r--testing/xf86-video-sis/PKGBUILD27
-rw-r--r--testing/xf86-video-sisusb/PKGBUILD26
-rw-r--r--testing/xf86-video-tdfx/LICENSE160
-rw-r--r--testing/xf86-video-tdfx/PKGBUILD29
-rw-r--r--testing/xf86-video-trident/PKGBUILD27
-rw-r--r--testing/xf86-video-tseng/PKGBUILD26
-rw-r--r--testing/xf86-video-unichrome/LICENSE23
-rw-r--r--testing/xf86-video-unichrome/PKGBUILD31
-rw-r--r--testing/xf86-video-unichrome/drm-include.patch11
-rw-r--r--testing/xf86-video-v4l/LICENSE826
-rw-r--r--testing/xf86-video-v4l/PKGBUILD27
-rw-r--r--testing/xf86-video-vesa/PKGBUILD26
-rw-r--r--testing/xf86-video-voodoo/PKGBUILD26
-rw-r--r--testing/xf86-video-xgi/PKGBUILD25
-rw-r--r--testing/xf86-video-xgixp/PKGBUILD25
-rw-r--r--testing/xorg-server/10-quirks.conf10
-rw-r--r--testing/xorg-server/PKGBUILD175
-rw-r--r--testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch16
-rw-r--r--testing/xorg-server/xvfb-run180
-rw-r--r--testing/xorg-server/xvfb-run.1282
-rw-r--r--testing/xz/PKGBUILD43
7135 files changed, 351455 insertions, 0 deletions
diff --git a/community-testing/cdfs/PKGBUILD b/community-testing/cdfs/PKGBUILD
new file mode 100644
index 000000000..af18a5dbb
--- /dev/null
+++ b/community-testing/cdfs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42474 2011-03-16 21:46:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar>
+
+pkgname=cdfs
+pkgver=2.6.27
+pkgrel=14
+pkgdesc="File system module that 'exports' all tracks and boot images on a CD as normal files."
+arch=(i686 x86_64)
+url="http://www.elis.UGent.be/~ronsse/cdfs/"
+license=('GPL')
+install=cdfs.install
+source=("http://www.elis.UGent.be/~ronsse/cdfs/download/$pkgname-$pkgver.tar.bz2")
+md5sums=('ac64c014a90e3c488394832ea29605b3')
+
+build() {
+ _kernver=`pacman -Q kernel26 | cut -d . -f 3 | cut -f 1 -d -`
+ depends=("kernel26>=2.6.${_kernver}" "kernel26<2.6.`expr ${_kernver} + 1`")
+
+ cd $srcdir/$pkgname-$pkgver
+
+ patch cddata.c <<EOF
+85c85
+< .sendfile = generic_file_sendfile
+---
+> // .sendfile = generic_file_sendfile
+EOF
+
+ make
+ mkdir -p $pkgdir/lib/modules/`uname -r`/extra
+ cp cdfs.ko $pkgdir/lib/modules/`uname -r`/extra
+}
diff --git a/community-testing/cdfs/cdfs.install b/community-testing/cdfs/cdfs.install
new file mode 100644
index 000000000..3693d60ed
--- /dev/null
+++ b/community-testing/cdfs/cdfs.install
@@ -0,0 +1,11 @@
+post_install() {
+ /sbin/depmod -a
+}
+
+post_upgrade() {
+ /sbin/depmod -a
+}
+
+post_remove() {
+ /sbin/depmod -a
+}
diff --git a/community-testing/gcc-avr/PKGBUILD b/community-testing/gcc-avr/PKGBUILD
new file mode 100644
index 000000000..78e1c30c6
--- /dev/null
+++ b/community-testing/gcc-avr/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 43891 2011-03-30 19:48:35Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: danst0 <danst0@west.de>
+
+pkgname=gcc-avr
+pkgver=4.6.0
+pkgrel=3
+pkgdesc="The GNU avr Compiler Collection"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'custom')
+url="http://gcc.gnu.org/"
+depends=('binutils-avr>=2.21' 'cloog' 'ppl' 'gcc-libs>=4.6.0' 'libmpc')
+options=('!ccache' '!distcc' '!emptydirs' '!libtool' '!strip')
+source=(http://ftp.gnu.org/gnu/gcc/${pkgname/-avr}-${pkgver}/gcc-{core,g++}-${pkgver}.tar.bz2)
+md5sums=('b1957f3209080b2f55bc3756d3a62b7c'
+ 'a30090fa655d0db4c970740d353c81f1')
+
+build() {
+ export CFLAGS="-O2 -pipe"
+ export CXXFLAGS="-O2 -pipe"
+
+ cd "${srcdir}/${pkgname/-avr}-${pkgver}"
+
+ mkdir build
+ cd build
+ ../configure --disable-libssp \
+ --disable-nls \
+ --enable-languages=c,c++ \
+ --infodir=/usr/share/info \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --mandir=/usr/share/man \
+ --prefix=/usr \
+ --target=avr \
+ --with-gnu-as \
+ --with-gnu-ld \
+ --with-as=/usr/bin/avr-as \
+ --with-ld=/usr/bin/avr-ld
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname/-avr}-${pkgver}"
+
+ cd build
+ make -j1 DESTDIR=${pkgdir} install
+
+ install -Dm644 "${srcdir}/${pkgname/-avr}-${pkgver}/COPYING.RUNTIME" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/RUNTIME.LIBRARY.EXCEPTION"
+
+ rm -f ${pkgdir}/usr/lib/libiberty.a
+ rm -rf ${pkgdir}/usr/share/man/man7
+ rm -rf ${pkgdir}/usr/share/info
+}
+
diff --git a/community-testing/inputattach/0001-Add-w8001-flag.patch b/community-testing/inputattach/0001-Add-w8001-flag.patch
new file mode 100644
index 000000000..ba6f9394b
--- /dev/null
+++ b/community-testing/inputattach/0001-Add-w8001-flag.patch
@@ -0,0 +1,27 @@
+From 729257077e328e0b2fa1bba5a5509c09a743d5d0 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue, 13 Jul 2010 11:49:47 +1000
+Subject: [PATCH 2/3] Add w8001 flag for serial Wacom devices.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ inputattach.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/inputattach.c b/inputattach.c
+index a7de302..0382954 100644
+--- a/inputattach.c
++++ b/inputattach.c
+@@ -495,6 +495,9 @@ static struct input_types input_types[] = {
+ { "--dump", "-dump", "Just enable device",
+ B2400, CS8,
+ 0, 0x00, 0x00, 0, dump_init },
++{ "--w8001", "-w8001", "Wacom W8001",
++ B38400, CS8,
++ SERIO_W8001, 0x00, 0x00, 0, NULL },
+ { NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, NULL }
+ };
+
+--
+1.7.2.3
+
diff --git a/community-testing/inputattach/0002-Allow-for-custom-baud-rates.patch b/community-testing/inputattach/0002-Allow-for-custom-baud-rates.patch
new file mode 100644
index 000000000..78f5d19c8
--- /dev/null
+++ b/community-testing/inputattach/0002-Allow-for-custom-baud-rates.patch
@@ -0,0 +1,70 @@
+From 5d9373f24f1b519c030024b2f36277ba9713697c Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed, 21 Jul 2010 14:41:04 +1000
+Subject: [PATCH 3/3] Allow for custom baud rates.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ inputattach.c | 25 ++++++++++++++++++++++++-
+ 1 files changed, 24 insertions(+), 1 deletions(-)
+
+diff --git a/inputattach.c b/inputattach.c
+index 0382954..6806fc8 100644
+--- a/inputattach.c
++++ b/inputattach.c
+@@ -506,7 +506,7 @@ static void show_help(void)
+ struct input_types *type;
+
+ puts("");
+- puts("Usage: inputattach [--daemon] <mode> <device>");
++ puts("Usage: inputattach [--daemon] [--baud <baud>] <mode> <device>");
+ puts("");
+ puts("Modes:");
+
+@@ -530,6 +530,7 @@ int main(int argc, char **argv)
+ int i;
+ char c;
+ int retval;
++ int baud = -1;
+
+ for (i = 1; i < argc; i++) {
+ if (!strcasecmp(argv[i], "--help")) {
+@@ -540,6 +541,15 @@ int main(int argc, char **argv)
+ } else if (need_device) {
+ device = argv[i];
+ need_device = 0;
++ } else if (!strcasecmp(argv[i], "--baud")) {
++ if (argc <= i + 1) {
++ show_help();
++ fprintf(stderr,
++ "inputattach: require baud rate\n");
++ return EXIT_FAILURE;
++ }
++
++ baud = atoi(argv[++i]);
+ } else {
+ if (type && type->name) {
+ fprintf(stderr,
+@@ -580,6 +590,19 @@ int main(int argc, char **argv)
+ return 1;
+ }
+
++ switch(baud) {
++ case -1: break;
++ case 2400: type->speed = B2400; break;
++ case 4800: type->speed = B4800; break;
++ case 9600: type->speed = B9600; break;
++ case 19200: type->speed = B19200; break;
++ case 38400: type->speed = B38400; break;
++ default:
++ fprintf(stderr, "inputattach: invalid baud rate '%d'\n",
++ baud);
++ return EXIT_FAILURE;
++ }
++
+ setline(fd, type->flags, type->speed);
+
+ if (type->flush)
+--
+1.7.2.3
+
diff --git a/community-testing/inputattach/PKGBUILD b/community-testing/inputattach/PKGBUILD
new file mode 100644
index 000000000..0953d0a3a
--- /dev/null
+++ b/community-testing/inputattach/PKGBUILD
@@ -0,0 +1,43 @@
+# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
+
+pkgname=inputattach
+pkgver=1.24
+pkgrel=3
+pkgdesc="Attach serial mice, keyboards and other input devices to the kernel input system"
+arch=('i686' 'x86_64')
+url="http://linuxconsole.sourceforge.net/"
+license=('GPL')
+depends=('bash')
+makedepends=('gcc')
+backup=(etc/conf.d/inputattach)
+install=inputattach.install
+source=('http://kernel.org/pub/linux/kernel/people/dtor/inputattach.c'
+ 'http://kernel.org/pub/linux/kernel/people/dtor/serio-ids.h'
+ 'inputattach.conf.d' 'inputattach.rc.d'
+ '0001-Add-w8001-flag.patch' '0002-Allow-for-custom-baud-rates.patch')
+md5sums=('eb595a766ca363edb3b14c25404596ce' '93d34d96cd3ad19ea1aeca7f68a66b4a'
+ '7ca903e54829764c8241233af5069216' '8d62f8840a2e6457a953f667df39ef99'
+ 'f1b3ddae308351357f557cbd5c6cda81' '8f76908449cae24a95adbf0bc0a17721')
+
+build() {
+ cd "$srcdir"
+
+ # Add support for serial wacom tablets
+ patch -Np1 -i "$srcdir/0001-Add-w8001-flag.patch"
+ patch -Np1 -i "$srcdir/0002-Allow-for-custom-baud-rates.patch"
+
+ cc $CFLAGS inputattach.c -o inputattach
+}
+
+package() {
+ cd "$srcdir"
+
+ install -Dm755 inputattach \
+ "$pkgdir/usr/sbin/inputattach"
+
+ install -Dm644 $srcdir/inputattach.conf.d \
+ "$pkgdir/etc/conf.d/inputattach"
+
+ install -Dm755 $srcdir/inputattach.rc.d \
+ "$pkgdir/etc/rc.d/inputattach"
+}
diff --git a/community-testing/inputattach/inputattach.conf.d b/community-testing/inputattach/inputattach.conf.d
new file mode 100644
index 000000000..ae8d1842a
--- /dev/null
+++ b/community-testing/inputattach/inputattach.conf.d
@@ -0,0 +1,10 @@
+#
+# Configuration for inputattach
+#
+# IAPARAMS is an array of inputattach arguments, see 'inputattach --help'.
+# An inputattach instance will be started for each element.
+
+IAPARAMS=(
+ "--microsoft /dev/ttyS0"
+ #"--baud 9600 --w8001 /dev/ttyS1"
+)
diff --git a/community-testing/inputattach/inputattach.install b/community-testing/inputattach/inputattach.install
new file mode 100644
index 000000000..b5381e14a
--- /dev/null
+++ b/community-testing/inputattach/inputattach.install
@@ -0,0 +1,18 @@
+## arg 1: the new package version
+
+post_upgrade() {
+ (( $(vercmp 1.24-3 $2) > 0 )) && cat <<MSG
+ATTENTION:
+ /etc/conf.d/inputattach.conf has been replaced by /etc/conf.d/inputattach
+ Make sure you adjust the new config file, which has a new format.
+MSG
+}
+
+post_install() {
+ cat << EOF
+
+The correct device mode and /dev device file will need to be set in
+/etc/conf.d/inputattach before starting /etc/rc.d/inputattach
+
+EOF
+}
diff --git a/community-testing/inputattach/inputattach.rc.d b/community-testing/inputattach/inputattach.rc.d
new file mode 100644
index 000000000..6b92827be
--- /dev/null
+++ b/community-testing/inputattach/inputattach.rc.d
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/inputattach
+
+case "$1" in
+ start)
+ stat_busy "Starting inputattach"
+ for param in ${IAPARAMS[@]}; do
+ if ! /usr/sbin/inputattach --daemon $param; then
+ stat_fail
+ exit 1
+ fi
+ done
+
+ add_daemon inputattach
+ stat_done
+ ;;
+ stop)
+ stat_busy "Stopping inputattach"
+ PID=`pidof -o %PPID /usr/sbin/inputattach`
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm_daemon inputattach
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/llvm/PKGBUILD b/community-testing/llvm/PKGBUILD
new file mode 100644
index 000000000..5021689f7
--- /dev/null
+++ b/community-testing/llvm/PKGBUILD
@@ -0,0 +1,190 @@
+# $Id: PKGBUILD 43553 2011-03-27 15:18:02Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Sebastian Nowicki <sebnow@gmail.com>
+# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=('llvm' 'llvm-ocaml' 'clang' 'clang-analyzer')
+pkgver=2.8
+pkgrel=7
+arch=('i686' 'x86_64')
+url="http://llvm.org/"
+license=('custom:University of Illinois/NCSA Open Source License')
+makedepends=('gcc-libs' 'libffi' 'python2' 'ocaml')
+source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.tgz
+ http://llvm.org/releases/$pkgver/clang-$pkgver.tgz
+ cpp-headers.patch
+ clang-plugin-loader-registry.patch
+ clang-2.8-cindexer-clang-path.patch
+ llvm-2.8-alignOf.patch
+ clang-2.8-alignOf.patch)
+md5sums=('220d361b4d17051ff4bb21c64abe05ba'
+ '10e14c901fc3728eecbd5b829e011b59'
+ '61f7b2ba70b9a0c7103b1a8be24ac1f0'
+ '02c23b4aaca3445b8bf39fddb2f9906e'
+ '338d254d6745568ebdcbe4e20b0057d5'
+ 'd923655d211191d77c4437b9c1bfa851'
+ '742a1a13cfdc1cb0a76b8bc3b19b190e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # At the present, clang must reside inside the LLVM source code tree to build
+ # See http://llvm.org/bugs/show_bug.cgi?id=4840
+ rm -rf tools/clang
+ cp -r "$srcdir/clang-$pkgver" tools/clang
+
+ # Fix symbolic links from OCaml bindings to LLVM libraries
+ sed -i 's:\$(PROJ_libdir):/usr/lib/llvm:' bindings/ocaml/Makefile.ocaml
+
+ # Fix installation directories, ./configure doesn't seem to set them right
+ sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \
+ -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib/llvm:' \
+ -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
+ Makefile.config.in
+
+ # Fix insecure rpath (http://bugs.archlinux.org/task/14017)
+ sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules
+
+ # Update hardcoded path to C++ header files
+ patch -d tools/clang -Np1 -i "$srcdir/cpp-headers.patch"
+
+ # Get the correct list of symbols to export
+ # See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008559.html
+ patch -Np1 -i "$srcdir/clang-plugin-loader-registry.patch"
+
+ # Fix C++0x name clashes (https://bugs.archlinux.org/task/22296)
+ patch -Np0 -i "$srcdir/llvm-2.8-alignOf.patch"
+ patch -d tools/clang -Np0 -i "$srcdir/clang-2.8-alignOf.patch"
+
+ # Fix clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799)
+ patch -d tools/clang -Np1 -i "$srcdir/clang-2.8-cindexer-clang-path.patch"
+
+ # Apply strip option to configure
+ _optimize_flag="--enable-optimize"
+ [ "$(check_option strip)" = "n" ] && _optimize_flag="--disable-optimize"
+
+ # Include location of libffi headers in CPPFLAGS
+ export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
+
+ # Well, this is supposed to be the final release
+ sed -i 's/2.8rc/2.8/g' configure
+
+ ./configure --prefix=/usr --libdir=/usr/lib/llvm --sysconfdir=/etc \
+ --enable-shared --enable-libffi \
+ --enable-bindings=ocaml --enable-targets=all \
+ --disable-expensive-checks --disable-debug-runtime \
+ --disable-assertions --with-binutils-include=/usr/include \
+ $_optimize_flag
+ make
+}
+
+package_llvm() {
+ pkgdesc="Low Level Virtual Machine"
+ depends=('perl' 'libffi')
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # We move the clang directory out of the tree so it won't get installed and
+ # then we bring it back in for the clang package
+ mv tools/clang "$srcdir"
+ # -j1 is due to race conditions during the installation of the OCaml bindings
+ make -j1 DESTDIR="$pkgdir" install
+ mv "$srcdir/clang" tools
+
+ # OCaml bindings go to a separate package
+ rm -rf "$srcdir"/{ocaml,ocamldoc}
+ mv "$pkgdir"/usr/{lib/ocaml,share/doc/llvm/ocamldoc} "$srcdir"
+
+ # Remove duplicate files installed by the OCaml bindings
+ rm "$pkgdir"/usr/{lib/llvm/libllvm*,share/doc/llvm/ocamldoc.tar.gz}
+
+ # Fix permissions of static libs
+ chmod -x "$pkgdir"/usr/lib/llvm/*.a
+
+ # Fix libdir in llvm-config (http://bugs.archlinux.org/task/14487)
+ sed -i 's:\(ABS_RUN_DIR/lib\):\1/llvm:' "$pkgdir/usr/bin/llvm-config"
+
+ # Get rid of example Hello transformation
+ rm "$pkgdir"/usr/lib/llvm/*LLVMHello.*
+
+ # Symlink the gold plugin where clang expects it
+ ln -s "llvm/libLLVMgold.so" "$pkgdir/usr/lib/LLVMgold.so"
+
+ # Add ld.so.conf.d entry
+ install -d "$pkgdir/etc/ld.so.conf.d"
+ echo /usr/lib/llvm >"$pkgdir/etc/ld.so.conf.d/llvm.conf"
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+package_llvm-ocaml() {
+ pkgdesc="OCaml bindings for LLVM"
+ depends=("llvm=$pkgver-$pkgrel" 'ocaml')
+
+ cd "$srcdir/llvm-$pkgver"
+
+ install -d "$pkgdir"/{usr/lib,usr/share/doc/llvm}
+ cp -r "$srcdir/ocaml" "$pkgdir/usr/lib"
+ cp -r "$srcdir/ocamldoc" "$pkgdir/usr/share/doc/llvm"
+
+ # Remove execute bit from static libraries
+ chmod -x "$pkgdir"/usr/lib/ocaml/libllvm*.a
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/llvm-ocaml/LICENSE"
+}
+
+package_clang() {
+ pkgdesc="C language family frontend for LLVM"
+ url="http://clang.llvm.org/"
+ # It looks like clang still needs GCC to assemble and link object files
+ # See http://old.nabble.com/%22clang--v%22-shows-a-GCC-call-td28378453.html
+ depends=("llvm=$pkgver-$pkgrel" 'gcc=4.6.0')
+
+ # Fix installation path for clang docs
+ sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \
+ "$srcdir/llvm-$pkgver/Makefile.config"
+
+ cd "$srcdir/llvm-$pkgver/tools/clang"
+ make DESTDIR="$pkgdir" install
+
+ # Fix permissions of static libs
+ chmod -x "$pkgdir"/usr/lib/llvm/*.a
+
+ # Revert the path change in case we want to do a repackage later
+ sed -i 's:$(PROJ_prefix)/share/doc/clang:$(PROJ_prefix)/share/doc/llvm:' \
+ "$srcdir/llvm-$pkgver/Makefile.config"
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang/LICENSE"
+}
+
+package_clang-analyzer() {
+ pkgdesc="A source code analysis framework"
+ url="http://clang-analyzer.llvm.org/"
+ depends=("clang=$pkgver-$pkgrel" 'python2')
+
+ cd "$srcdir/llvm-$pkgver/tools/clang"
+
+ install -d "$pkgdir"/usr/{bin,lib/clang-analyzer}
+ for tool in scan-{build,view}; do
+ cp -r tools/$tool "$pkgdir/usr/lib/clang-analyzer"
+ ln -s /usr/lib/clang-analyzer/$tool/$tool "$pkgdir/usr/bin"
+ done
+
+ # Use Python 2
+ sed -i 's/env python$/\02/' \
+ "$pkgdir/usr/lib/clang-analyzer/scan-view/scan-view" \
+ "$pkgdir/usr/lib/clang-analyzer/scan-build/set-xcode-analyzer"
+
+ # Compile Python scripts
+ python2 -m compileall "$pkgdir/usr/lib/clang-analyzer"
+ python2 -O -m compileall "$pkgdir/usr/lib/clang-analyzer"
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang-analyzer/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/llvm/clang-2.8-alignOf.patch b/community-testing/llvm/clang-2.8-alignOf.patch
new file mode 100644
index 000000000..77aa5219a
--- /dev/null
+++ b/community-testing/llvm/clang-2.8-alignOf.patch
@@ -0,0 +1,199 @@
+Index: lib/Basic/IdentifierTable.cpp
+===================================================================
+--- lib/Basic/IdentifierTable.cpp (revision 117774)
++++ lib/Basic/IdentifierTable.cpp (revision 117775)
+@@ -390,7 +390,7 @@
+ unsigned Size = sizeof(MultiKeywordSelector) + nKeys*sizeof(IdentifierInfo *);
+ MultiKeywordSelector *SI =
+ (MultiKeywordSelector*)SelTabImpl.Allocator.Allocate(Size,
+- llvm::alignof<MultiKeywordSelector>());
++ llvm::alignOf<MultiKeywordSelector>());
+ new (SI) MultiKeywordSelector(nKeys, IIV);
+ SelTabImpl.Table.InsertNode(SI, InsertPos);
+ return Selector(SI);
+Index: lib/AST/ExprCXX.cpp
+===================================================================
+--- lib/AST/ExprCXX.cpp (revision 117774)
++++ lib/AST/ExprCXX.cpp (revision 117775)
+@@ -233,7 +233,7 @@
+ if (NumTemplateArgs != 0)
+ size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedLookupExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedLookupExpr>());
+ UnresolvedLookupExpr *E = new (Mem) UnresolvedLookupExpr(EmptyShell());
+ E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
+ return E;
+@@ -261,7 +261,7 @@
+ if (NumResults) {
+ Results = static_cast<DeclAccessPair *>(
+ C.Allocate(sizeof(DeclAccessPair) * NumResults,
+- llvm::alignof<DeclAccessPair>()));
++ llvm::alignOf<DeclAccessPair>()));
+ memcpy(Results, &*Begin.getIterator(),
+ NumResults * sizeof(DeclAccessPair));
+ }
+@@ -737,7 +737,7 @@
+ if (TemplateArgs)
+ size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
+ return new (Mem) CXXDependentScopeMemberExpr(C, Base, BaseType,
+ IsArrow, OperatorLoc,
+ Qualifier, QualifierRange,
+@@ -756,7 +756,7 @@
+
+ std::size_t size = sizeof(CXXDependentScopeMemberExpr) +
+ ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
+ CXXDependentScopeMemberExpr *E
+ = new (Mem) CXXDependentScopeMemberExpr(C, 0, QualType(),
+ 0, SourceLocation(), 0,
+@@ -812,7 +812,7 @@
+ if (TemplateArgs)
+ size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
+ return new (Mem) UnresolvedMemberExpr(C,
+ Dependent ? C.DependentTy : C.OverloadTy,
+ Dependent, HasUnresolvedUsing, Base, BaseType,
+@@ -826,7 +826,7 @@
+ if (NumTemplateArgs != 0)
+ size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
+ UnresolvedMemberExpr *E = new (Mem) UnresolvedMemberExpr(EmptyShell());
+ E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
+ return E;
+Index: lib/AST/DeclObjC.cpp
+===================================================================
+--- lib/AST/DeclObjC.cpp (revision 117774)
++++ lib/AST/DeclObjC.cpp (revision 117775)
+@@ -711,7 +711,7 @@
+ void ObjCClassDecl::setClassList(ASTContext &C, ObjCInterfaceDecl*const*List,
+ const SourceLocation *Locs, unsigned Num) {
+ ForwardDecls = (ObjCClassRef*) C.Allocate(sizeof(ObjCClassRef)*Num,
+- llvm::alignof<ObjCClassRef>());
++ llvm::alignOf<ObjCClassRef>());
+ for (unsigned i = 0; i < Num; ++i)
+ new (&ForwardDecls[i]) ObjCClassRef(List[i], Locs[i]);
+
+Index: lib/AST/Stmt.cpp
+===================================================================
+--- lib/AST/Stmt.cpp (revision 117774)
++++ lib/AST/Stmt.cpp (revision 117775)
+@@ -416,7 +416,7 @@
+ Stmt *atFinallyStmt) {
+ unsigned Size = sizeof(ObjCAtTryStmt) +
+ (1 + NumCatchStmts + (atFinallyStmt != 0)) * sizeof(Stmt *);
+- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
+ return new (Mem) ObjCAtTryStmt(atTryLoc, atTryStmt, CatchStmts, NumCatchStmts,
+ atFinallyStmt);
+ }
+@@ -426,7 +426,7 @@
+ bool HasFinally) {
+ unsigned Size = sizeof(ObjCAtTryStmt) +
+ (1 + NumCatchStmts + HasFinally) * sizeof(Stmt *);
+- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
+ return new (Mem) ObjCAtTryStmt(EmptyShell(), NumCatchStmts, HasFinally);
+ }
+
+@@ -448,7 +448,7 @@
+ std::size_t Size = sizeof(CXXTryStmt);
+ Size += ((numHandlers + 1) * sizeof(Stmt));
+
+- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
++ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
+ return new (Mem) CXXTryStmt(tryLoc, tryBlock, handlers, numHandlers);
+ }
+
+@@ -457,7 +457,7 @@
+ std::size_t Size = sizeof(CXXTryStmt);
+ Size += ((numHandlers + 1) * sizeof(Stmt));
+
+- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
++ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
+ return new (Mem) CXXTryStmt(Empty, numHandlers);
+ }
+
+Index: lib/AST/Expr.cpp
+===================================================================
+--- lib/AST/Expr.cpp (revision 117774)
++++ lib/AST/Expr.cpp (revision 117775)
+@@ -257,7 +257,7 @@
+ if (TemplateArgs)
+ Size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
+
+- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
+ return new (Mem) DeclRefExpr(Qualifier, QualifierRange, D, NameInfo,
+ TemplateArgs, T);
+ }
+@@ -271,7 +271,7 @@
+ if (NumTemplateArgs)
+ Size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+
+- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
+ return new (Mem) DeclRefExpr(EmptyShell());
+ }
+
+@@ -432,7 +432,7 @@
+ // any concatenated string tokens.
+ void *Mem = C.Allocate(sizeof(StringLiteral)+
+ sizeof(SourceLocation)*(NumStrs-1),
+- llvm::alignof<StringLiteral>());
++ llvm::alignOf<StringLiteral>());
+ StringLiteral *SL = new (Mem) StringLiteral(Ty);
+
+ // OPTIMIZE: could allocate this appended to the StringLiteral.
+@@ -452,7 +452,7 @@
+ StringLiteral *StringLiteral::CreateEmpty(ASTContext &C, unsigned NumStrs) {
+ void *Mem = C.Allocate(sizeof(StringLiteral)+
+ sizeof(SourceLocation)*(NumStrs-1),
+- llvm::alignof<StringLiteral>());
++ llvm::alignOf<StringLiteral>());
+ StringLiteral *SL = new (Mem) StringLiteral(QualType());
+ SL->StrData = 0;
+ SL->ByteLength = 0;
+@@ -714,7 +714,7 @@
+ if (targs)
+ Size += ExplicitTemplateArgumentList::sizeFor(*targs);
+
+- void *Mem = C.Allocate(Size, llvm::alignof<MemberExpr>());
++ void *Mem = C.Allocate(Size, llvm::alignOf<MemberExpr>());
+ MemberExpr *E = new (Mem) MemberExpr(base, isarrow, memberdecl, nameinfo, ty);
+
+ if (hasQualOrFound) {
+Index: lib/AST/DeclCXX.cpp
+===================================================================
+--- lib/AST/DeclCXX.cpp (revision 117774)
++++ lib/AST/DeclCXX.cpp (revision 117775)
+@@ -1057,7 +1057,7 @@
+ unsigned NumIndices) {
+ void *Mem = Context.Allocate(sizeof(CXXBaseOrMemberInitializer) +
+ sizeof(VarDecl *) * NumIndices,
+- llvm::alignof<CXXBaseOrMemberInitializer>());
++ llvm::alignOf<CXXBaseOrMemberInitializer>());
+ return new (Mem) CXXBaseOrMemberInitializer(Context, Member, MemberLoc,
+ L, Init, R, Indices, NumIndices);
+ }
+Index: lib/Lex/TokenLexer.cpp
+===================================================================
+--- lib/Lex/TokenLexer.cpp (revision 117774)
++++ lib/Lex/TokenLexer.cpp (revision 117775)
+@@ -287,7 +287,7 @@
+ llvm::BumpPtrAllocator &Alloc = PP.getPreprocessorAllocator();
+ Token *Res =
+ static_cast<Token *>(Alloc.Allocate(sizeof(Token)*ResultToks.size(),
+- llvm::alignof<Token>()));
++ llvm::alignOf<Token>()));
+ if (NumTokens)
+ memcpy(Res, &ResultToks[0], NumTokens*sizeof(Token));
+ Tokens = Res;
diff --git a/community-testing/llvm/clang-2.8-cindexer-clang-path.patch b/community-testing/llvm/clang-2.8-cindexer-clang-path.patch
new file mode 100644
index 000000000..e283009e9
--- /dev/null
+++ b/community-testing/llvm/clang-2.8-cindexer-clang-path.patch
@@ -0,0 +1,13 @@
+diff -upr clang-2.8.orig/tools/libclang/CIndexer.cpp clang-2.8/tools/libclang/CIndexer.cpp
+--- clang-2.8.orig/tools/libclang/CIndexer.cpp 2010-05-27 23:16:37.000000000 +0300
++++ clang-2.8/tools/libclang/CIndexer.cpp 2011-02-11 01:14:20.000000000 +0200
+@@ -68,7 +68,8 @@ const llvm::sys::Path& CIndexer::getClan
+
+ // We now have the CIndex directory, locate clang relative to it.
+ CIndexPath.eraseComponent();
+- CIndexPath.appendComponent("..");
++ CIndexPath.eraseComponent();
++ CIndexPath.eraseComponent();
+ CIndexPath.appendComponent("bin");
+ CIndexPath.appendComponent("clang");
+ #endif
diff --git a/community-testing/llvm/clang-plugin-loader-registry.patch b/community-testing/llvm/clang-plugin-loader-registry.patch
new file mode 100644
index 000000000..f46eb9fce
--- /dev/null
+++ b/community-testing/llvm/clang-plugin-loader-registry.patch
@@ -0,0 +1,11 @@
+diff -upr llvm-2.7.orig/autoconf/ExportMap.map llvm-2.7/autoconf/ExportMap.map
+--- llvm-2.7.orig/autoconf/ExportMap.map 2010-02-25 00:33:41.000000000 +0200
++++ llvm-2.7/autoconf/ExportMap.map 2010-05-10 14:14:22.000000000 +0300
+@@ -2,6 +2,7 @@
+ global: main;
+ __progname;
+ environ;
++ _ZN4llvm8RegistryIN5clang14FrontendActionENS_14RegistryTraitsIS2_EEE4HeadE;
+
+ local: *;
+ };
diff --git a/community-testing/llvm/cpp-headers.patch b/community-testing/llvm/cpp-headers.patch
new file mode 100644
index 000000000..1526d1f5a
--- /dev/null
+++ b/community-testing/llvm/cpp-headers.patch
@@ -0,0 +1,17 @@
+diff -uprb clang-2.7.orig/lib/Frontend/InitHeaderSearch.cpp clang-2.7/lib/Frontend/InitHeaderSearch.cpp
+--- clang-2.7.orig/lib/Frontend/InitHeaderSearch.cpp 2010-03-06 21:38:10.000000000 +0200
++++ clang-2.7/lib/Frontend/InitHeaderSearch.cpp 2010-04-30 19:05:24.000000000 +0300
+@@ -539,10 +539,10 @@ void InitHeaderSearch::AddDefaultCPlusPl
+ "i586-suse-linux", "", "", triple);
+ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
+ "x86_64-suse-linux", "", "", triple);
+- // Arch Linux 2008-06-24
+- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
++ // Arch Linux 2010-12-17
++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.6.0",
+ "i686-pc-linux-gnu", "", "", triple);
+- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.6.0",
+ "x86_64-unknown-linux-gnu", "", "", triple);
+ // Gentoo x86 2009.1 stable
+ AddGnuCPlusPlusIncludePaths(
diff --git a/community-testing/llvm/llvm-2.8-alignOf.patch b/community-testing/llvm/llvm-2.8-alignOf.patch
new file mode 100644
index 000000000..d48c10cd9
--- /dev/null
+++ b/community-testing/llvm/llvm-2.8-alignOf.patch
@@ -0,0 +1,59 @@
+Index: include/llvm/ADT/StringMap.h
+===================================================================
+--- include/llvm/ADT/StringMap.h (revision 117773)
++++ include/llvm/ADT/StringMap.h (revision 117774)
+@@ -167,7 +167,7 @@
+
+ unsigned AllocSize = static_cast<unsigned>(sizeof(StringMapEntry))+
+ KeyLength+1;
+- unsigned Alignment = alignof<StringMapEntry>();
++ unsigned Alignment = alignOf<StringMapEntry>();
+
+ StringMapEntry *NewItem =
+ static_cast<StringMapEntry*>(Allocator.Allocate(AllocSize,Alignment));
+Index: include/llvm/Support/AlignOf.h
+===================================================================
+--- include/llvm/Support/AlignOf.h (revision 117773)
++++ include/llvm/Support/AlignOf.h (revision 117774)
+@@ -49,12 +49,12 @@
+
+ };
+
+-/// alignof - A templated function that returns the mininum alignment of
++/// alignOf - A templated function that returns the mininum alignment of
+ /// of a type. This provides no extra functionality beyond the AlignOf
+ /// class besides some cosmetic cleanliness. Example usage:
+-/// alignof<int>() returns the alignment of an int.
++/// alignOf<int>() returns the alignment of an int.
+ template <typename T>
+-static inline unsigned alignof() { return AlignOf<T>::Alignment; }
++static inline unsigned alignOf() { return AlignOf<T>::Alignment; }
+
+ } // end namespace llvm
+ #endif
+Index: include/llvm/Support/Allocator.h
+===================================================================
+--- include/llvm/Support/Allocator.h (revision 117773)
++++ include/llvm/Support/Allocator.h (revision 117774)
+@@ -201,7 +201,7 @@
+ char *End = Slab == Allocator.CurSlab ? Allocator.CurPtr :
+ (char *)Slab + Slab->Size;
+ for (char *Ptr = (char*)(Slab+1); Ptr < End; Ptr += sizeof(T)) {
+- Ptr = Allocator.AlignPtr(Ptr, alignof<T>());
++ Ptr = Allocator.AlignPtr(Ptr, alignOf<T>());
+ if (Ptr + sizeof(T) <= End)
+ reinterpret_cast<T*>(Ptr)->~T();
+ }
+Index: include/llvm/CodeGen/SlotIndexes.h
+===================================================================
+--- include/llvm/CodeGen/SlotIndexes.h (revision 117773)
++++ include/llvm/CodeGen/SlotIndexes.h (revision 117774)
+@@ -393,7 +393,7 @@
+ IndexListEntry *entry =
+ static_cast<IndexListEntry*>(
+ ileAllocator.Allocate(sizeof(IndexListEntry),
+- alignof<IndexListEntry>()));
++ alignOf<IndexListEntry>()));
+
+ new (entry) IndexListEntry(mi, index);
+
diff --git a/community-testing/open-vm-tools-modules/PKGBUILD b/community-testing/open-vm-tools-modules/PKGBUILD
new file mode 100644
index 000000000..eb85e4e9c
--- /dev/null
+++ b/community-testing/open-vm-tools-modules/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 42477 2011-03-16 21:51:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
+
+pkgname=open-vm-tools-modules
+pkgver=2011.02.23
+_pkgsubver=368700
+pkgrel=1
+pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
+arch=('i686' 'x86_64')
+url="http://open-vm-tools.sourceforge.net/"
+license=('GPL')
+makedepends=('libdnet' 'icu' 'uriparser' 'kernel26-headers')
+depends=("kernel26")
+install=$pkgname.install
+source=(http://easynews.dl.sourceforge.net/sourceforge/open-vm-tools/open-vm-tools-$pkgver-${_pkgsubver}.tar.gz)
+md5sums=('488601e384daeab2c6ffd81e1a95cad7')
+
+build() {
+_kernver=`pacman -Q kernel26 | cut -d . -f 3 | cut -f 1 -d -`
+depends=("kernel26>=2.6.${_kernver}" "kernel26<2.6.`expr ${_kernver} + 1`")
+
+ KERNEL_VERSION="2.6.${_kernver}-ARCH"
+ msg "Kernel = $KERNEL_VERSION"
+
+ cd "$srcdir/open-vm-tools-${pkgver}-${_pkgsubver}"
+
+ sed -i 's#-lproc-3.2.7#-lproc-3.2.8#' configure
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+
+ (cd modules && make modules)
+
+ mkdir -p $pkgdir/lib/modules/$KERNEL_VERSION/misc/
+ for MOD in `find -type f -name '*.ko'`; do
+ install -D -m644 $MOD $pkgdir/lib/modules/$KERNEL_VERSION/misc/
+ done
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='$KERNEL_VERSION'/" $startdir/$pkgname.install
+}
diff --git a/community-testing/open-vm-tools-modules/open-vm-tools-modules.install b/community-testing/open-vm-tools-modules/open-vm-tools-modules.install
new file mode 100644
index 000000000..6ebc18c36
--- /dev/null
+++ b/community-testing/open-vm-tools-modules/open-vm-tools-modules.install
@@ -0,0 +1,35 @@
+KERNEL_VERSION='2.6.38-ARCH'
+
+post_install() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+
+ VMXNET="install pcnet32 /sbin/modprobe -q --ignore-install vmxnet;"
+ VMXNET="$VMXNET /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS;"
+ VMXNET="$VMXNET /bin/true;"
+
+ echo ">>> Enabling vmxnet driver in /etc/modprobe.d/modprobe.conf"
+ echo ">>> (this will disable pcnet32 driver)"
+ sed "$ a \\\n#VMware net driver\n$VMXNET" -i /etc/modprobe.d/modprobe.conf
+ echo
+
+ echo ">>>"
+ echo ">>> If vmxnet driver doesn't handle your NIC, you have to manually"
+ echo ">>> disable loading of pcnet32 driver by blacklisting it in /etc/rc.conf."
+ echo ">>>"
+}
+
+post_upgrade() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_remove() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+
+ echo ">>> Disabling vmxnet driver in /etc/modprobe.d/modprobe.conf"
+ sed "/VMware net driver/,+1 d" -i /etc/modprobe.d/modprobe.conf
+
+ echo ">>>"
+ echo ">>> Remember to un-blacklist pcnet32 driver in /etc/rc.conf."
+ echo ">>>"
+}
+
diff --git a/community-testing/open-vm-tools/PKGBUILD b/community-testing/open-vm-tools/PKGBUILD
new file mode 100644
index 000000000..8dbb03d5f
--- /dev/null
+++ b/community-testing/open-vm-tools/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 42480 2011-03-16 21:57:43Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
+
+pkgname=open-vm-tools
+pkgver=2011.02.23
+_pkgsubver=368700
+pkgrel=1
+pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
+arch=('i686' 'x86_64')
+url="http://open-vm-tools.sourceforge.net/"
+license=('LGPL')
+depends=('open-vm-tools-modules' 'libdnet' 'icu' 'procps' 'glib2' 'uriparser' 'libsigc++' 'libxss')
+makedepends=('chrpath' 'doxygen')
+optdepends=('gtkmm' 'libnotify' 'libxtst' 'fuse' 'libsm')
+options=('docs' '!libtool')
+install=$pkgname.install
+source=(http://switch.dl.sourceforge.net/$pkgname/$pkgname-$pkgver-${_pkgsubver}.tar.gz
+ scripts-network.patch
+ scripts-network-FS19541.patch
+ open-vm-tools-X11Bool.patch
+ open-vm-tools.conf.d
+ open-vm-tools.rc.d
+ tools.conf
+ vmware-guestd
+ xautostart.conf)
+md5sums=('488601e384daeab2c6ffd81e1a95cad7'
+ '06f7448e274db2a911f582e276088fc9'
+ 'b183ec265200d68431a5e4eb1b0c8cf5'
+ '8c333a979578bdc0c3134c1dd6bb7353'
+ '79b0a14d86191fee70a4639da8bd7785'
+ '67cb83a9e5a4dd016c1a1da2863ca36d'
+ 'b55d15e2c4be396aad709aeca91033d3'
+ '73cc1a2665b0dd62427733d62ead8b9a'
+ '75a25d83417e683957321f97a00f8465')
+
+build() {
+ cd "$srcdir/$pkgname-${pkgver}-${_pkgsubver}"
+
+# [ $NOEXTRACT -eq 1 ] || patch -Np1 -i $srcdir/open-vm-tools-X11Bool.patch
+
+ [ $NOEXTRACT -eq 1 ] || sed -i 's#3.2.7#3.2.8#' configure
+ [ $NOEXTRACT -eq 1 ] || sed -i 's#3.2.7#3.2.8#' configure.ac
+
+ unset LDFLAGS
+
+ [ -f Makefile ] || ./configure --prefix=/usr --without-kernel-modules
+ make
+ make install DESTDIR=$pkgdir
+ install -D -m 755 scripts/common/vmware-xdg-detect-de $pkgdir/usr/bin/vmware-xdg-detect-de
+ chmod 07755 $pkgdir/usr/bin/vmware-user-suid-wrapper
+
+ cd $pkgdir
+ patch -Np1 -i $srcdir/scripts-network.patch etc/vmware-tools/scripts/vmware/network
+ patch -Np1 -i $srcdir/scripts-network-FS19541.patch etc/vmware-tools/scripts/vmware/network
+
+ ln -fs /usr/sbin/mount.vmhgfs $pkgdir/sbin/mount.vmhgfs
+
+ install -D -m 755 $srcdir/open-vm-tools.rc.d $pkgdir/etc/rc.d/open-vm-tools
+ install -D -m 644 $srcdir/open-vm-tools.conf.d $pkgdir/etc/conf.d/open-vm-tools
+ install -D -m 644 $srcdir/tools.conf $pkgdir/etc/vmware-tools/tools.conf
+ install -D -m 644 $srcdir/xautostart.conf $pkgdir/etc/vmware-tools/xautostart.conf
+ install -D -m 644 $srcdir/vmware-guestd $pkgdir/etc/pam.d/vmware-guestd
+ rm -rf $pkgdir/usr/etc
+
+ cd $pkgdir && find -type f -exec sh -c "file {} | grep ELF >/dev/null && echo {} && chrpath -d {}" \;
+}
diff --git a/community-testing/open-vm-tools/open-vm-tools-X11Bool.patch b/community-testing/open-vm-tools/open-vm-tools-X11Bool.patch
new file mode 100644
index 000000000..f12581807
--- /dev/null
+++ b/community-testing/open-vm-tools/open-vm-tools-X11Bool.patch
@@ -0,0 +1,15 @@
+diff -wbBur open-vm-tools-2010.08.24-292196.org/lib/include/vm_basic_types.h open-vm-tools-2010.08.24-292196/lib/include/vm_basic_types.h
+--- open-vm-tools-2010.08.24-292196.org/lib/include/vm_basic_types.h 2010-08-24 19:59:22.000000000 +0000
++++ open-vm-tools-2010.08.24-292196/lib/include/vm_basic_types.h 2010-08-30 09:38:48.000000000 +0000
+@@ -83,8 +83,11 @@
+
+ /* STRICT ANSI means the Xserver build and X defines Bool differently. */
+ #if !defined(__STRICT_ANSI__) || defined(__FreeBSD__) || defined(__MINGW32__)
++# ifndef _XTYPEDEF_BOOL
++# define _XTYPEDEF_BOOL
+ typedef char Bool;
+ #endif
++#endif
+
+ #ifndef FALSE
+ #define FALSE 0
diff --git a/community-testing/open-vm-tools/open-vm-tools.conf.d b/community-testing/open-vm-tools/open-vm-tools.conf.d
new file mode 100644
index 000000000..83f7864e8
--- /dev/null
+++ b/community-testing/open-vm-tools/open-vm-tools.conf.d
@@ -0,0 +1,6 @@
+# Enable support for Drag'n'Drop
+VM_DRAG_AND_DROP="yes"
+
+# vmware-guestd settings
+GUESTD_BIN="/usr/sbin/vmware-guestd"
+PIDFILE="/var/run/vmware-guestd.pid"
diff --git a/community-testing/open-vm-tools/open-vm-tools.install b/community-testing/open-vm-tools/open-vm-tools.install
new file mode 100644
index 000000000..88d9b88e6
--- /dev/null
+++ b/community-testing/open-vm-tools/open-vm-tools.install
@@ -0,0 +1,10 @@
+post_install() {
+ [ ! -d "/mnt/hgfs" ] && mkdir /mnt/hgfs
+ echo ">>>"
+ echo ">>> You can mount VMware Shared Folders via:"
+ echo ">>> mount -t vmhgfs .host:/ /mnt/hgfs"
+ echo ">>>"
+ echo ">>> or by adding this line to /etc/fstab:"
+ echo ">>> .host:/ /mnt/hgfs vmhgfs defaults 0 0"
+ echo ">>>"
+}
diff --git a/community-testing/open-vm-tools/open-vm-tools.rc.d b/community-testing/open-vm-tools/open-vm-tools.rc.d
new file mode 100644
index 000000000..0c9221489
--- /dev/null
+++ b/community-testing/open-vm-tools/open-vm-tools.rc.d
@@ -0,0 +1,101 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/open-vm-tools ] && . /etc/conf.d/open-vm-tools
+
+PID=`pidof -o %PPID /usr/bin/vmtoolsd`
+case "$1" in
+ start)
+ stat_busy "Starting Open Virtual Machine Tools"
+
+ if [ "$VM_DRAG_AND_DROP" == "yes" ]; then
+ VMBLOCK=`grep -w vmblock /proc/modules`
+ [ -z "$VMBLOCK" ] && modprobe vmblock
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+
+ DND_TMPDIR="/tmp/VMwareDnD"
+ if [ ! -d "$DND_TMPDIR" ]; then
+ mkdir $DND_TMPDIR
+ chmod 1777 $DND_TMPDIR
+ fi
+
+ mount -t vmblock none /proc/fs/vmblock/mountPoint
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ fi
+
+
+ for m in vmhgfs vmsync; do
+ VMMOD=`grep -w $m /proc/modules`
+ [ -z "$VMMOD" ] && \
+ { modprobe $m
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi; }
+ done
+
+
+ [ -z "$PID" ] && /usr/bin/vmtoolsd --background $PIDFILE
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon open-vm-tools
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Open Virtual Machine Tools"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+# if [ $? -gt 0 ]; then
+# stat_fail
+# exit 1
+# fi
+
+ for m in vmhgfs vmsync vmci; do
+ VMMOD=`grep -w $m /proc/modules`
+ [ ! -z "$VMMOD" ] && rmmod $m
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 4
+ fi
+ done
+
+ if [ "$VM_DRAG_AND_DROP" == "yes" ]; then
+ MOUNTPOINT=`grep -w "none /proc/fs/vmblock/mountPoint vmblock" /proc/modules`
+ [ -z "$MOUNTPOINT" ] && umount /proc/fs/vmblock/mountPoint
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 5
+ fi
+
+ DND_TMPDIR="/tmp/VMwareDnD"
+ rm -r $DND_TMPDIR
+
+ VMBLOCK=`grep -w vmblock /proc/modules`
+ [ ! -z "$VMBLOCK" ] && rmmod vmblock
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 6
+ fi
+ fi
+
+ rm_daemon open-vm-tools
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community-testing/open-vm-tools/scripts-network-FS19541.patch b/community-testing/open-vm-tools/scripts-network-FS19541.patch
new file mode 100644
index 000000000..1f65b9824
--- /dev/null
+++ b/community-testing/open-vm-tools/scripts-network-FS19541.patch
@@ -0,0 +1,40 @@
+--- network 2010-04-28 12:30:51.000000000 +0200
++++ network.bak 2010-05-20 12:12:50.000000000 +0200
+@@ -76,7 +76,7 @@
+ else
+ echo `date` "[rescue_nic] activating $nic ..."
+
+- ifup $nic
++ ifconfig $nic up
+ exitCode=`expr $exitCode \| $?`
+ fi
+ done < $activeList
+@@ -103,7 +103,7 @@
+ TranquilizeNetworkManager() {
+ # `which' may be a bit noisy, so we'll shush it.
+ dbusSend=`which dbus-send 2>/dev/null`
+- if [ $? -eq 0 ]; then
++ if [ $? -eq 0 ] && [ `pidof dbus-daemon` ]; then
+ # NetworkManager 0.6
+ $dbusSend --system --dest=org.freedesktop.NetworkManager \
+ /org/freedesktop/NetworkManager \
+@@ -133,7 +133,7 @@
+ WakeNetworkManager() {
+ # `which' may be a bit noisy, so we'll shush it.
+ dbusSend=`which dbus-send 2>/dev/null`
+- if [ $? -eq 0 ]; then
++ if [ $? -eq 0 ] && [ `pidof dbus-daemon` ]; then
+ # NetworkManager 0.6
+ $dbusSend --system --dest=org.freedesktop.NetworkManager \
+ /org/freedesktop/NetworkManager \
+@@ -165,8 +165,8 @@
+
+ # XXX Are these really necessary? If so, we should have seen customer
+ # complaints by now.
+- which ifup >/dev/null 2>&1 || Panic "ifup not in search path."
+- which ifconfig >/dev/null 2>&1 || Panic "ifconfig not in search path."
++# which ifup >/dev/null 2>&1 || Panic "ifup not in search path."
++ which ifconfig >/dev/null 2>&1 || Panic "ifconfig not in search path."
+
+ case "$1" in
+ poweron-vm)
diff --git a/community-testing/open-vm-tools/scripts-network.patch b/community-testing/open-vm-tools/scripts-network.patch
new file mode 100644
index 000000000..13ea7f565
--- /dev/null
+++ b/community-testing/open-vm-tools/scripts-network.patch
@@ -0,0 +1,63 @@
+--- network.org 2010-04-28 10:21:14.000000000 +0000
++++ network 2010-04-28 10:24:00.000000000 +0000
+@@ -34,51 +34,6 @@
+
+
+ #
+-# find_networking_script --
+-#
+-# Searches common Linux distro init/rc paths to find a singular network
+-# services script.
+-#
+-# Result:
+-# Returns a valid networking script path on success or "error" on failure.
+-#
+-# Side effects:
+-# None.
+-#
+-
+-find_networking_script() {
+- local script="error"
+- for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do
+- if [ -d "$dir/rc0.d" ] &&
+- [ -d "$dir/rc1.d" ] &&
+- [ -d "$dir/rc2.d" ] &&
+- [ -d "$dir/rc3.d" ] &&
+- [ -d "$dir/rc4.d" ] &&
+- [ -d "$dir/rc5.d" ] &&
+- [ -d "$dir/rc6.d" ]; then
+-
+- # Now find the appropriate networking script.
+- if [ -d "$dir/init.d" ]; then
+- if [ -x "$dir/init.d/network" ]; then
+- script="$dir/init.d/network"
+- elif [ -x "$dir/init.d/networking" ]; then
+- script="$dir/init.d/networking"
+- fi
+- else
+- if [ -x "$dir/network" ]; then
+- script="$dir/network"
+- elif [ -x "$dir/networking" ]; then
+- script="$dir/networking"
+- fi
+- fi
+- fi
+- done
+-
+- echo "$script"
+-}
+-
+-
+-#
+ # save_active_NIC_list --
+ #
+ # Records a list of every active NIC to /var/run/vmware-active-nics.
+@@ -205,7 +160,7 @@
+ exitCode=0
+ activeList=/var/run/vmware-active-nics
+
+- networkScript=`find_networking_script`
++ networkScript=/etc/rc.d/network
+ [ "$networkScript" != "error" ] || Panic "Cannot find system networking script."
+
+ # XXX Are these really necessary? If so, we should have seen customer
diff --git a/community-testing/open-vm-tools/tools.conf b/community-testing/open-vm-tools/tools.conf
new file mode 100644
index 000000000..0bb2681b1
--- /dev/null
+++ b/community-testing/open-vm-tools/tools.conf
@@ -0,0 +1 @@
+bindir = "/usr/bin"
diff --git a/community-testing/open-vm-tools/vmware-guestd b/community-testing/open-vm-tools/vmware-guestd
new file mode 100644
index 000000000..ac80c0385
--- /dev/null
+++ b/community-testing/open-vm-tools/vmware-guestd
@@ -0,0 +1,6 @@
+#%PAM-1.0
+
+auth sufficient /lib/security/pam_unix2.so shadow nullok
+auth required /lib/security/pam_unix_auth.so shadow nullok
+account sufficient /lib/security/pam_unix2.so
+account required /lib/security/pam_unix_acct.so
diff --git a/community-testing/open-vm-tools/xautostart.conf b/community-testing/open-vm-tools/xautostart.conf
new file mode 100644
index 000000000..829f379ce
--- /dev/null
+++ b/community-testing/open-vm-tools/xautostart.conf
@@ -0,0 +1,6 @@
+gnome-panel
+ksmserver
+startkde
+kwrapper
+panel
+xfce4-panel
diff --git a/community-testing/pysfml/PKGBUILD b/community-testing/pysfml/PKGBUILD
new file mode 100644
index 000000000..204197c1b
--- /dev/null
+++ b/community-testing/pysfml/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 29367 2010-10-13 15:58:47Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: scj <scj(at)archlinux(dot)us>
+
+pkgname=('python-pysfml' 'python2-pysfml')
+pkgbase=python-pysfml
+pkgver=1.6
+pkgrel=2
+pkgdesc="Python bindings for the SFML library"
+arch=('i686' 'x86_64')
+url="http://www.sfml-dev.org"
+makedepends=('sfml' 'python' 'python2')
+license=('zlib')
+depends=()
+replaces=('pysfml')
+source=(http://downloads.sourceforge.net/sfml/SFML-${pkgver}-python-sdk.zip)
+md5sums=('9acaf793ae9a498a51f7f6fc74307b32')
+
+build() {
+ cd "${srcdir}/SFML-${pkgver}/python"
+}
+
+package_python-pysfml() {
+ depends=('sfml' 'python')
+
+ cd "${srcdir}/SFML-${pkgver}/python"
+
+ python3 setup.py install --root=${pkgdir}
+}
+
+package_python2-pysfml() {
+ depends=('sfml' 'python2')
+
+ cd "${srcdir}/SFML-${pkgver}/python"
+
+ python2 setup.py install --root=${pkgdir}
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/systemd/PKGBUILD b/community-testing/systemd/PKGBUILD
new file mode 100644
index 000000000..6a735db90
--- /dev/null
+++ b/community-testing/systemd/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 44275 2011-04-05 00:12:36Z dreisner $
+# Maintainer: Dave Reisner <d@falconindy.com>
+
+pkgname=systemd
+pkgver=23
+pkgrel=1
+pkgdesc="Session and Startup manager"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2')
+depends=('dbus-core' 'initscripts' 'sysvinit' 'util-linux>=2.19')
+makedepends=('docbook-xsl' 'libxslt' 'cryptsetup' 'gtk2' 'libnotify')
+optdepends=('cryptsetup: required for encrypted block devices'
+ 'dbus-python: systemd-analyze'
+ 'gtk2: systemadm'
+ 'initscripts-systemd: native boot and initialization scripts'
+ 'libnotify: systemadm'
+ 'python2-cairo: systemd-analyze'
+ 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts')
+groups=('systemd')
+options=('!libtool')
+backup=(etc/systemd/system.conf
+ etc/tmpfiles.d/systemd.conf
+ etc/tmpfiles.d/x11.conf)
+install=systemd.install
+source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.bz2"
+ "os-release")
+md5sums=('24b46ce024316189653ebb39fa745ab2'
+ 'f9922299150b4adda7b89e10bca33033')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --with-rootdir=/ \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-audit \
+ --disable-tcpwrap
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
+ install -dm755 "$pkgdir/etc/modules-load.d" "$pkgdir/run"
+ printf "d /var/run/console 755 root root\n" > "$pkgdir/etc/tmpfiles.d/console.conf"
+
+ # fix systemd-analyze for python2
+ sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze"
+
+ # install target doesn't bring in plymouth units
+ install -m644 units/plymouth-* "$pkgdir/lib/systemd/system"
+
+ # rename man pages to avoid conflicts with sysvinit
+ cd "$pkgdir/usr/share/man/man8"
+ for manpage in telinit halt reboot poweroff runlevel shutdown; do
+ mv {,systemd.}"$manpage.8"
+ done
+}
+
diff --git a/community-testing/systemd/os-release b/community-testing/systemd/os-release
new file mode 100644
index 000000000..0b45d5265
--- /dev/null
+++ b/community-testing/systemd/os-release
@@ -0,0 +1,4 @@
+NAME=Arch Linux
+ID=arch
+PRETTY_NAME=Arch Linux
+ANSI_COLOR=1;36 \ No newline at end of file
diff --git a/community-testing/systemd/systemd.install b/community-testing/systemd/systemd.install
new file mode 100644
index 000000000..259d09b9e
--- /dev/null
+++ b/community-testing/systemd/systemd.install
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+checkgroups() {
+ getent group lock >/dev/null || groupadd -g 54 lock
+
+ utmpent=$(getent group utmp)
+ if [ -z $utmpent ]; then
+ getent group utmp >/dev/null || groupadd -g 32 utmp
+ elif [ $(echo $utmpent | cut -d: -f3) = '22' ]; then
+ groupmod -g 32 utmp
+ fi
+}
+
+post_install() {
+ checkgroups
+
+ [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup
+
+ # Try to read default runlevel from the old inittab if it exists
+ runlevel=$(/bin/awk -F':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
+ if [ -z "$runlevel" ]; then
+ target="/lib/systemd/system/graphical.target"
+ else
+ target="/lib/systemd/system/runlevel$runlevel.target"
+ fi
+
+ # And symlink what we found to the new-style default.target
+ /bin/ln -sf "$target" /etc/systemd/system/default.target
+
+ echo "systemd has been installed to /bin/systemd. Please ensure you append"
+ echo "init=/bin/systemd to your kernel command line in your bootloader."
+}
+
+post_upgrade() {
+ checkgroups
+
+ [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup
+ /bin/systemctl daemon-reexec >/dev/null || :
+}
+
+pre_remove() {
+ /bin/rm -f /etc/systemd/system/default.target
+}
+
+post_remove() {
+ getent group lock >/dev/null && groupdel lock
+ getent group utmp >/dev/null && groupdel utmp
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community-testing/virtualbox/10-vboxdrv.rules b/community-testing/virtualbox/10-vboxdrv.rules
new file mode 100644
index 000000000..37403ae2f
--- /dev/null
+++ b/community-testing/virtualbox/10-vboxdrv.rules
@@ -0,0 +1,5 @@
+KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600" ENV{ACL_MANAGE}="1"
+SUBSYSTEM=="usb_device", ACTION=="add", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
diff --git a/community-testing/virtualbox/60-vboxguest.rules b/community-testing/virtualbox/60-vboxguest.rules
new file mode 100644
index 000000000..6285f7249
--- /dev/null
+++ b/community-testing/virtualbox/60-vboxguest.rules
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
+ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/community-testing/virtualbox/LocalConfig.kmk b/community-testing/virtualbox/LocalConfig.kmk
new file mode 100644
index 000000000..1a17127a0
--- /dev/null
+++ b/community-testing/virtualbox/LocalConfig.kmk
@@ -0,0 +1,17 @@
+VBOX_WITH_ADDITION_DRIVERS =
+VBOX_WITH_INSTALLER = 1
+VBOX_WITH_LINUX_ADDITIONS = 1
+VBOX_WITH_X11_ADDITIONS = 1
+VBOX_WITH_TESTCASES =
+VBOX_WITH_TESTSUITE =
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS := /usr/share/virtualbox
+VBOX_WITH_REGISTRATION_REQUEST =
+VBOX_WITH_UPDATE_REQUEST =
+VBOX_WITH_VNC := 1
+VBOX_BLD_PYTHON = python2
+VBOX_JAVA_HOME = /opt/java
diff --git a/community-testing/virtualbox/PKGBUILD b/community-testing/virtualbox/PKGBUILD
new file mode 100644
index 000000000..6191165c1
--- /dev/null
+++ b/community-testing/virtualbox/PKGBUILD
@@ -0,0 +1,210 @@
+# $Id: PKGBUILD 42565 2011-03-17 13:26:20Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgbase=virtualbox
+pkgname=('virtualbox' 'virtualbox-guest-additions' 'virtualbox-guest-modules' 'virtualbox-sdk')
+pkgver=4.0.4
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://virtualbox.org'
+license=('GPL' 'custom')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libxcursor' 'qt' 'libidl2' 'sdl_ttf' 'alsa-lib' 'libpulse' 'libxtst'
+'xalan-c' 'sdl' 'libxmu' 'curl' 'python2' 'kernel26-headers>=2.6.38' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'jdk' 'gsoap' 'vde2')
+[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
+ http://download.virtualbox.org/virtualbox/${pkgver}/UserManual.pdf
+ virtualbox-4-makeself-check.patch virtualbox-4-mkisofs-check.patch
+ 10-vboxdrv.rules 60-vboxguest.rules vboxdrv-reference.patch LocalConfig.kmk vboxdrv.sh)
+_kernver=2.6.38-ARCH
+
+build() {
+ cd "$srcdir/VirtualBox-${pkgver}_OSE"
+
+ patch -Np1 -i "$srcdir/virtualbox-4-makeself-check.patch"
+ patch -Np1 -i "$srcdir/virtualbox-4-mkisofs-check.patch"
+ patch -Np1 -i "$srcdir/vboxdrv-reference.patch"
+
+ cp "$srcdir/LocalConfig.kmk" .
+
+ ./configure --disable-docs \
+ --enable-webservice \
+ --enable-vde \
+ --with-linux=/usr/src/linux-${_kernver}
+ source ./env.sh
+ kmk all
+
+ export KERN_DIR=/usr/src/linux-${_kernver}
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src/vboxvideo"
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' "out/linux.$BUILD_PLATFORM_ARCH/release/bin/vboxshell.py"
+}
+
+package_virtualbox() {
+ pkgdesc="Powerful x86 virtualization for enterprise as well as home use"
+ depends=('libxml2' 'libxcursor' 'libidl2' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng' 'kernel26-headers' 'gcc' 'make')
+ optdepends=('libxt: for shared clipboard'
+ 'python2: for python support'
+ 'qt: for VirtualBox GUI'
+ 'vde2: Virtual Distributed Ethernet support'
+ 'virtualbox-sdk: developer kit')
+
+ replaces=('virtualbox-ose')
+ conflicts=('virtualbox-ose')
+ install=virtualbox.install
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ mkdir -p "$pkgdir"/usr/{bin,lib/virtualbox/components,lib/virtualbox/ExtensionPacks,share/virtualbox/nls}
+
+ #doc
+ install -m 0644 "$srcdir/UserManual.pdf" "$pkgdir/usr/share/virtualbox/UserManual.pdf"
+
+ #Binaries and Wrapper with Launchers
+ install -m 0755 VBox.sh "$pkgdir/usr/bin/VBox"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxHeadless"
+ ln -sf VBox "$pkgdir/usr/bin/vboxheadless"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxManage"
+ ln -sf VBox "$pkgdir/usr/bin/vboxmanage"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxSDL"
+ ln -sf VBox "$pkgdir/usr/bin/vboxsdl"
+ ln -sf VBox "$pkgdir/usr/bin/VirtualBox"
+ ln -sf VBox "$pkgdir/usr/bin/virtualbox"
+ ln -sf VBox "$pkgdir/usr/bin/vboxwebsrv"
+
+ install -m 0755 VBoxTunctl "$pkgdir/usr/bin"
+
+ #components
+ install -m 0755 components/* -t "$pkgdir/usr/lib/virtualbox/components"
+
+ #lib
+ install -m 0755 *.so "$pkgdir/usr/lib/virtualbox"
+ install -m 0644 *.gc *.r0 VBoxEFI*.fd "$pkgdir/usr/lib/virtualbox"
+
+ #setuid root binaries
+ install -m 4755 VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl -t "$pkgdir/usr/lib/virtualbox"
+ #other binaries
+ install -m 0755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL vboxwebsrv webtest -t "$pkgdir/usr/lib/virtualbox"
+
+ #language
+ install -m 0755 nls/*.qm -t "$pkgdir/usr/share/virtualbox/nls"
+
+ #useless scripts
+ install -m 0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh -t "$pkgdir/usr/share/virtualbox"
+
+ #icons
+ install -D -m 0644 VBox.png "$pkgdir/usr/share/pixmaps/VBox.png"
+
+ pushd icons
+ for i in *; do
+ install -d "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ cp $i/* "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ done
+ popd
+
+ #desktop
+ install -D -m 0644 virtualbox.desktop "$pkgdir/usr/share/applications/virtualbox.desktop"
+ install -D -m 0644 virtualbox.xml "$pkgdir/usr/share/mime/packages/virtualbox.xml"
+
+ #install configuration
+ mkdir -p "$pkgdir/etc/vbox"
+ echo 'INSTALL_DIR=/usr/lib/virtualbox' > "$pkgdir/etc/vbox/vbox.cfg"
+
+ #udev and licence
+ install -D -m 0644 "$srcdir/VirtualBox-${pkgver}_OSE/COPYING" \
+ "$pkgdir/usr/share/licenses/virtualbox/LICENSE"
+ install -D -m 0644 "$srcdir/10-vboxdrv.rules" \
+ "$pkgdir/lib/udev/rules.d/10-vboxdrv.rules"
+
+ #sources for modules
+ cp -r src ${pkgdir}/usr/lib/virtualbox
+ #install compilation script
+ install -D -m 755 "${srcdir}/vboxdrv.sh" "${pkgdir}/etc/rc.d/vboxdrv"
+}
+
+package_virtualbox-sdk() {
+ pkgdesc=" VirtualBox Software Developer Kit (SDK)"
+
+ mkdir -p "$pkgdir/usr/lib/virtualbox"
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ install -D -m 0755 vboxshell.py "$pkgdir/usr/lib/virtualbox/vboxshell.py"
+ #python sdk
+ pushd sdk/installer
+ VBOX_INSTALL_PATH="/usr/lib/virtualbox" python2 vboxapisetup.py install --root "${pkgdir}"
+ popd
+ rm -rf sdk/installer
+ mv sdk "$pkgdir/usr/lib/virtualbox"
+}
+package_virtualbox-guest-additions(){
+ pkgdesc="VirtualBox user-space tools for Linux guests"
+ depends=("virtualbox-guest-modules=$pkgver" 'gcc-libs' 'libxmu' 'xorg-xrandr')
+ replaces=('virtualbox-ose-additions')
+ conflicts=('virtualbox-ose-additions')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+
+ install -d "$pkgdir/usr/bin"
+ install -d "$pkgdir/sbin"
+ install -m755 VBoxClient VBoxControl VBoxService "$pkgdir/usr/bin"
+ install -m755 mount.vboxsf "$pkgdir/sbin"
+
+ install -m644 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/50-vboxmouse.conf \
+ "$pkgdir"/etc/X11/xorg.conf.d/50-vboxmouse.conf
+ install -m644 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/linux/installer/70-xorg-vboxmouse.rules \
+ "$pkgdir"/lib/udev/rules.d/70-xorg-vboxmouse.rules
+ install -m755 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ "$pkgdir"/usr/bin/VBoxClient-all
+ install -m755 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ "$pkgdir"/etc/xdg/autostart/vboxclient.desktop
+ install -D vboxmouse_drv_19.so \
+ "$pkgdir/usr/lib/xorg/modules/input/vboxmouse.so"
+ install -D vboxvideo_drv_19.so \
+ "$pkgdir/usr/lib/xorg/modules/drivers/vboxvideo.so"
+ install -d "$pkgdir/usr/lib/xorg/modules/dri"
+ install -m755 VBoxOGL*.so "$pkgdir/usr/lib"
+ ln -s /usr/lib/VBoxOGL.so "$pkgdir/usr/lib/xorg/modules/dri/vboxvideo_dri.so"
+ install -m755 -D pam_vbox.so "$pkgdir/lib/security/pam_vbox.so"
+
+}
+package_virtualbox-guest-modules(){
+ pkgdesc="VirtualBox kernel modules for Linux guests"
+ license=('GPL')
+ install=virtualbox-guest-modules.install
+ depends=('kernel26>=2.6.38' 'kernel26<2.6.39')
+ replaces=('virtualbox-ose-additions-modules')
+ conflicts=('virtualbox-ose-additions-modules')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+
+ cd vboxguest
+ install -D -m644 vboxguest.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxguest.ko"
+
+ cd ../vboxsf
+ install -D -m644 vboxsf.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxsf.ko"
+
+ cd ../vboxvideo
+ install -D -m644 vboxvideo.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxvideo.ko"
+
+ install -D -m 0644 "$srcdir/60-vboxguest.rules" \
+ "$pkgdir/lib/udev/rules.d/60-vboxguest.rules"
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/virtualbox-guest-modules.install"
+}
+md5sums=('b4770ca14d1a8cbad9b3eb0e0028ff4b'
+ 'bf8007eea0042f745b3c252bbe7586c2'
+ '44efb3c4be214daa453a317d527f1f30'
+ '32a232b43852b9a08cb11a7bcd64b347'
+ '5f85710e0b8606de967716ded7b2d351'
+ 'ed1341881437455d9735875ddf455fbe'
+ '94514e006e73cc2fa90259a4e0eec04b'
+ '0f3f273cdbc54db221f737ad4f761c11'
+ '47da2e88de582bb2bab14580a3aa47b1')
diff --git a/community-testing/virtualbox/vboxdrv-reference.patch b/community-testing/virtualbox/vboxdrv-reference.patch
new file mode 100644
index 000000000..ed5e7f377
--- /dev/null
+++ b/community-testing/virtualbox/vboxdrv-reference.patch
@@ -0,0 +1,43 @@
+--- VirtualBox-4.0.2_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
++++ VirtualBox-4.0.2_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
+@@ -75,9 +75,8 @@
+ "The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or "
+ "there is a permission problem with /dev/vboxdrv. Please reinstall the kernel "
+ "module by executing<br/><br/>"
+- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
+- "as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS "
+- "package first. This package keeps track of Linux kernel changes and "
++ " <font color=blue>'/etc/rc.d/vboxdrv setup'</font><br/><br/>"
++ "as root. This package keeps track of Linux kernel changes and"
+ "recompiles the vboxdrv kernel module if necessary."
+ );
+
+@@ -92,7 +91,7 @@
+ "The VirtualBox kernel modules do not match this version of "
+ "VirtualBox. The installation of VirtualBox was apparently not "
+ "successful. Executing<br/><br/>"
+- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
++ " <font color=blue>'/etc/rc.d/vboxdrv setup'</font><br/><br/>"
+ "may correct this. Make sure that you do not mix the "
+ "OSE version and the PUEL version of VirtualBox."
+ );
+--- VirtualBox-4.0.2_OSE/src/VBox/Installer/linux/VBox.sh
++++ VirtualBox-4.0.2_OSE/src/VBox/Installer/linux/VBox.sh
+@@ -34,7 +34,7 @@
+ available for the current kernel (`uname -r`) or it failed to
+ load. Please recompile the kernel module and install it by
+
+- sudo /etc/init.d/vboxdrv setup
++ /etc/rc.d/vboxdrv setup
+
+ You will not be able to start VMs until this problem is fixed.
+ EOF
+@@ -42,7 +42,7 @@
+ cat << EOF
+ WARNING: The character device /dev/vboxdrv does not exist. Try
+
+- sudo /etc/init.d/vboxdrv restart
++ /etc/rc.d/vboxdrv restart
+
+ and if that is not successful, try to re-install the package.
+ \ No newline at end of file
diff --git a/community-testing/virtualbox/vboxdrv.sh b/community-testing/virtualbox/vboxdrv.sh
new file mode 100755
index 000000000..8de14b97f
--- /dev/null
+++ b/community-testing/virtualbox/vboxdrv.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/vbox/vbox.cfg
+
+MODLIST=()
+LOG="/var/log/vbox-install.log"
+
+if [ -n "$INSTALL_DIR" ]; then
+ VBOXMANAGE="$INSTALL_DIR/VBoxManage"
+ BUILDVBOXDRV="$INSTALL_DIR/src/vboxdrv/build_in_tmp"
+ BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxnetflt/build_in_tmp"
+ BUILDVBOXNETADP="$INSTALL_DIR/src/vboxnetadp/build_in_tmp"
+else
+ echo "missing vbox.cfg"
+ exit 0
+fi
+
+case "$1" in
+ setup)
+ stat_busy "Unloading VirtualBox kernel modules"
+ for module in vbox{netflt,netadp,drv}; do
+ if grep -q "^${module}" /proc/modules; then
+ MODLIST+=($module)
+ modprobe -r $module
+ fi
+ done
+ stat_done
+ for p in /lib/modules/*; do
+ if [ ! -d "$p/kernel" ]; then
+ if [ -e "$p/misc/vboxdrv.ko" ]; then
+ stat_busy "Removing old VirtualBox kernel modules from $p"
+ rm -f "$p/misc/vbox"{drv,netadp,netflt}.ko 2>/dev/null
+ rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null
+ stat_done
+ fi
+ fi
+ done
+ if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then
+ stat_busy "Removing old VirtualBox netadp kernel module"
+ find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then
+ stat_busy "Removing old VirtualBox netflt kernel module"
+ find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then
+ stat_busy "Removing old VirtualBox kernel module"
+ find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ stat_busy "Recompiling VirtualBox kernel modules"
+ if ! $BUILDVBOXDRV \
+ --save-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install > $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ if ! $BUILDVBOXNETFLT \
+ --use-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ if ! $BUILDVBOXNETADP \
+ --use-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ stat_done
+ stat_busy "Reloading VirtualBox kernel modules"
+ for module in "${MODLIST[@]}"; do
+ modprobe $module
+ done
+ stat_done
+ ;;
+ *)
+ echo "usage: $0 {setup}"
+esac
diff --git a/community-testing/virtualbox/virtualbox-4-makeself-check.patch b/community-testing/virtualbox/virtualbox-4-makeself-check.patch
new file mode 100644
index 000000000..e1fcb8c2f
--- /dev/null
+++ b/community-testing/virtualbox/virtualbox-4-makeself-check.patch
@@ -0,0 +1,10 @@
+--- VirtualBox-4.0.0_OSE/configure
++++ VirtualBox-4.0.0_OSE/configure
+@@ -2527,7 +2527,6 @@
+ check_compiler_h
+ [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit
+ # tools/common/makeself*
+- [ $OSE -ge 1 ] && check_makeself
+ fi
+
+ [ -n "$SETUP_WINE" ] && setup_wine
diff --git a/community-testing/virtualbox/virtualbox-4-mkisofs-check.patch b/community-testing/virtualbox/virtualbox-4-mkisofs-check.patch
new file mode 100644
index 000000000..8b0d59123
--- /dev/null
+++ b/community-testing/virtualbox/virtualbox-4-mkisofs-check.patch
@@ -0,0 +1,10 @@
+--- VirtualBox-4.0.0_OSE/configure
++++ VirtualBox-4.0.0_OSE/configure
+@@ -2499,7 +2499,6 @@
+ # don't check for yasm for the time beeing as 0.40 and 0.50 both have known bugs
+ # [ "$OS" != "darwin" ] && check_yasm
+ [ "$OS" != "darwin" ] && check_xsltproc
+-[ "$OS" != "darwin" ] && check_mkisofs
+
+ # the libraries
+ [ "$OS" != "darwin" ] && check_pthread
diff --git a/community-testing/virtualbox/virtualbox-guest-modules.install b/community-testing/virtualbox/virtualbox-guest-modules.install
new file mode 100644
index 000000000..3681c28e3
--- /dev/null
+++ b/community-testing/virtualbox/virtualbox-guest-modules.install
@@ -0,0 +1,24 @@
+KERNEL_VERSION='2.6.38-ARCH'
+
+post_install() {
+ cat << EOM
+
+===> virtualbox-guest-modules post-install message:
+===>
+===> You may want to load vboxguest, vboxsf and vboxvideo
+===>
+===> To load them automatically, add them
+===> to the MODULES array in /etc/rc.conf.
+
+EOM
+
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
+
+post_remove() {
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
+
+post_upgrade() {
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
diff --git a/community-testing/virtualbox/virtualbox.install b/community-testing/virtualbox/virtualbox.install
new file mode 100644
index 000000000..e70757685
--- /dev/null
+++ b/community-testing/virtualbox/virtualbox.install
@@ -0,0 +1,65 @@
+utils() {
+ if [ -x usr/bin/update-mime-database ]; then
+ update-mime-database usr/share/mime > /dev/null 2>&1
+ fi
+
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor > /dev/null 2>&1
+ fi
+
+ if [ -x usr/bin/update-desktop-database ]; then
+ usr/bin/update-desktop-database -q
+ fi
+}
+
+post_install() {
+ getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
+ /bin/cat << EOF
+
+===> In order to run VirtualBox, you have to be in the 'vboxusers' group.
+===>
+===> If you want to be able to install guest additions, you have to install
+===> 'virtualbox-additions' package.
+===>
+===> You must load vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+===>
+===> You must load vboxnetflt for Host Interface Networking:
+===> # modprobe vboxnetflt
+===>
+===> You must load vboxnetadp for Host-Only networking:
+===> # modprobe vboxnetadp
+===>
+===> To load it automatically, add vboxdrv module
+===> to the MODULES array in /etc/rc.conf.
+
+*** To compile the modules do /etc/rc.d/vboxdrv setup ***
+
+EOF
+ utils
+}
+
+post_upgrade() {
+ getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
+ /bin/cat << EOF
+===> You must reload vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+===>
+===> You must reload vboxnetflt for Host Interface Networking:
+===> # modprobe vboxnetflt
+===>
+===> You must reload vboxnetadp for Host-Only networking:
+===> # modprobe vboxnetadp
+===>
+===> To load it automatically, add vboxdrv module
+===> to the MODULES array in /etc/rc.conf.
+
+*** To recompile the modules do /etc/rc.d/vboxdrv setup ***
+EOF
+ utils
+}
+
+post_remove() {
+ groupdel vboxusers >/dev/null 2>&1 || true
+ utils
+}
diff --git a/community/6tunnel/PKGBUILD b/community/6tunnel/PKGBUILD
new file mode 100644
index 000000000..a873e8817
--- /dev/null
+++ b/community/6tunnel/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Anders Bergh <anders1@gmail.com>
+pkgname=6tunnel
+pkgver=0.11rc2
+pkgrel=4
+pkgdesc="Tunnels IPv6 connections for IPv4-only applications"
+url="http://toxygen.net/6tunnel/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=(glibc)
+source=(http://toxygen.net/6tunnel/$pkgname-$pkgver.tar.gz)
+md5sums=('74e02d4f0704b3083a01feda66033449')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ autoconf
+ ./configure --prefix=/usr
+ make || return 1
+ install -Dm644 6tunnel.1 $pkgdir/usr/share/man/man1/6tunnel.1
+ install -Dm755 6tunnel $pkgdir/usr/bin/6tunnel
+}
diff --git a/community/9base/9 b/community/9base/9
new file mode 100755
index 000000000..de6a2d070
--- /dev/null
+++ b/community/9base/9
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+PLAN9=${PLAN9:-/opt/plan9}
+export PLAN9
+
+case "$PATH" in
+ $PLAN9/bin:*) ;;
+ *) export PATH=$PLAN9/bin:$PATH ;;
+esac
+
+if [ $# -gt 0 ]; then
+ exec "$@"
+fi
diff --git a/community/9base/PKGBUILD b/community/9base/PKGBUILD
new file mode 100644
index 000000000..06fd6be71
--- /dev/null
+++ b/community/9base/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 19041 2010-06-19 13:08:44Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Jeff Mickey <j@codemac.net>
+# Contributor: Aaron, phrakture, Griffin <aaron@archlinux.org>
+# Contributor: Jeffrey 'jf' Lim <jfs.world@gmail.com>
+
+pkgname=9base
+pkgver=6
+pkgrel=2
+pkgdesc="Port of various original Plan9 tools to unix"
+url="http://tools.suckless.org/9base"
+source=(http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz 9 plan9.sh)
+depends=(sh)
+conflicts=('plan9port' '9rc-devel')
+provides=('plan9')
+arch=('i686' 'x86_64')
+license=('custom')
+
+build()
+{
+ cd "$srcdir/$pkgname-$pkgver"
+
+ case $CARCH in
+ i686) sed -i 's#^OBJTYPE\s.*$#OBJTYPE = 386#' config.mk ;;
+ x86_64) sed -i 's#^OBJTYPE\s.*$#OBJTYPE = x86_64#' config.mk ;;
+ esac
+
+ sed -i 's#^PREFIX\s.*$#PREFIX = /opt/plan9#' config.mk
+
+ # Force dynamic linking. Several of the programs in 9base won't work
+ # when statically linked against the latest glibc.
+ sed -i '/-static/d' config.mk
+
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+ install -m755 ../9 "$pkgdir/opt/plan9/bin/" || return 1
+ install -D -m755 ../plan9.sh "$pkgdir/etc/profile.d/plan9.sh" || return 1
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/9base/LICENSE"
+}
+
+md5sums=('5a4684c13fe19b00a50c2cf926d5cafc'
+ 'ae7108b9f26bed388e9055f35eef2986'
+ '62a9e52043d9c32967fcae9018fffb56')
diff --git a/community/9base/plan9.sh b/community/9base/plan9.sh
new file mode 100755
index 000000000..3fb0b9813
--- /dev/null
+++ b/community/9base/plan9.sh
@@ -0,0 +1,4 @@
+export PLAN9=/opt/plan9
+export PATH=$PATH:$PLAN9/bin
+export MANPATH=$MANPATH:$PLAN9/man
+
diff --git a/community/abuse/PKGBUILD b/community/abuse/PKGBUILD
new file mode 100644
index 000000000..22fb9d7ff
--- /dev/null
+++ b/community/abuse/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 8618 2008-08-14 04:01:43Z kevin $
+# Committer: jlvsimoes <jlvsimoes@oninet.pt>
+# Maintainer: kevin <kevin@archlinux.org>
+
+pkgname=abuse
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="A side-scroller action game that pits you against ruthless alien killers"
+url="http://abuse.zoy.org/"
+depends=('gcc-libs' 'libgl' 'sdl')
+# abuse-data below is the original commercial levels and sound effects.
+# abuse-frabs contains community created levels.
+# abuse-lib is the original demo levels.
+# abuse-sfx is the original sound effects, included in abuse-data.
+source=(http://abuse.zoy.org/raw-attachment/wiki/Downloads/${pkgname}-${pkgver}.tar.gz
+http://abuse.zoy.org/raw-attachment/wiki/Downloads/${pkgname}-data-2.00.tar.gz
+http://abuse.zoy.org/raw-attachment/wiki/Downloads/${pkgname}-frabs-2.11.tar.gz
+abuse.patch)
+noextract=(abuse-data-2.00.tar.gz)
+license=('GPL' 'custom')
+arch=('i686' 'x86_64')
+install=abuse.install
+md5sums=('439b607f291560a8f9698a2f09cffa63'
+ '2b857668849b2dc7cd29cdd84a33c19e'
+ '0686f951289fe514846903bab36a2079'
+ '86b5256f066e994db9d57dbe1ec2a58e')
+
+build() {
+ cd ${srcdir}/abuse-${pkgver}
+ patch -p1 -i ${srcdir}/abuse.patch
+ ./configure --prefix=/usr --datadir=/usr/share/abuse/orig --with-x
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ mkdir -p ${pkgdir}/usr/share/abuse/{frabs,orig}
+ mkdir -p ${pkgdir}/usr/share/licenses/abuse
+
+ # original code license. sdlport is gpl.
+ sed -n '1,/^$/ p' src/view.cpp > \
+ ${pkgdir}/usr/share/licenses/abuse/orig.code.license
+
+ # original game data.
+ cd ${pkgdir}/usr/share/abuse/orig
+ tar -xzf ${srcdir}/abuse-data-2.00.tar.gz
+ mv README.datafiles ${pkgdir}/usr/share/licenses/abuse/orig.data.license
+
+ # frabs data, link to sound in orignal game data.
+ cd ${pkgdir}/usr/share/abuse/frabs
+ mv ${srcdir}/abuse-frabs-2.11/* .
+ rm -f abuse.exe setup.exe art/dos4gw.exe art/spaint.exe
+ ln -s ../orig/sfx sfx
+ cp docs/index.html ${pkgdir}/usr/share/licenses/abuse/frabs.license
+
+ chown -R root:root ${pkgdir}/usr/share
+}
diff --git a/community/abuse/abuse.install b/community/abuse/abuse.install
new file mode 100644
index 000000000..4d28ebacd
--- /dev/null
+++ b/community/abuse/abuse.install
@@ -0,0 +1,13 @@
+# arg 1: the new package version
+post_install() {
+# echo "If you get a BOSS_ANT error trying to run abuse, copy /usr/share/games/abuse/gamma.lsp to ~/.abuse"
+ echo "Abuse uses the original game levels by default. To use the frabs levels"
+ echo "use '-datadir' or set 'datadir' in the abuserc to /usr/share/abuse/frabs"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install
+}
+
diff --git a/community/abuse/abuse.patch b/community/abuse/abuse.patch
new file mode 100644
index 000000000..e06896cef
--- /dev/null
+++ b/community/abuse/abuse.patch
@@ -0,0 +1,36 @@
+diff -Naur abuse-0.7.1.orig/Makefile.in abuse-0.7.1/Makefile.in
+--- abuse-0.7.1.orig/Makefile.in 2008-03-02 15:25:05.000000000 -0500
++++ abuse-0.7.1/Makefile.in 2008-08-11 23:34:21.000000000 -0400
+@@ -201,7 +201,7 @@
+ top_srcdir = @top_srcdir@
+ SUBDIRS = src
+ man_MANS = abuse.6
+-datafiledir = $(datadir)/games/abuse
++datafiledir = $(datadir)
+ datafile_DATA = abuse.bmp abuse.lsp abuse.png
+ EXTRA_DIST = bootstrap abuse.6 abuse.bmp abuse.lsp abuse.png
+ all: config.h
+diff -Naur abuse-0.7.1.orig/configure abuse-0.7.1/configure
+--- abuse-0.7.1.orig/configure 2008-03-02 15:25:03.000000000 -0500
++++ abuse-0.7.1/configure 2008-08-11 23:33:49.000000000 -0400
+@@ -21887,7 +21887,7 @@
+
+ X_LIBS=-L$x_libraries
+
+-EXPDATADIR="-DEXPDATADIR=\\\"$datadir/games/abuse\\\""
++EXPDATADIR="-DEXPDATADIR=\\\"$datadir\\\""
+
+
+ { echo "$as_me:$LINENO: checking for XShmAttach in -lXext" >&5
+diff -Naur abuse-0.7.1.orig/src/sdlport/setup.cpp abuse-0.7.1/src/sdlport/setup.cpp
+--- abuse-0.7.1.orig/src/sdlport/setup.cpp 2008-03-02 14:42:24.000000000 -0500
++++ abuse-0.7.1/src/sdlport/setup.cpp 2008-08-11 23:33:49.000000000 -0400
+@@ -89,7 +89,7 @@
+ if( (fd = fopen( rcfile, "w" )) != NULL )
+ {
+ fputs( "; Abuse-SDL Configuration file\n\n", fd );
+- fputs( "; Location of the datafiles\ndatadir=/var/games/abuse\n\n", fd );
++ fputs( "; Location of the datafiles\ndatadir=/usr/share/abuse/orig\n\n", fd );
+ fputs( "; Startup fullscreen\nfullscreen=0\n\n", fd );
+ fputs( "; Use DoubleBuffering\ndoublebuf=0\n\n", fd );
+ fputs( "; Use mono audio only\nmono=0\n\n", fd );
diff --git a/community/acetoneiso2/PKGBUILD b/community/acetoneiso2/PKGBUILD
new file mode 100644
index 000000000..7ae5c20e2
--- /dev/null
+++ b/community/acetoneiso2/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Wes Brewer <brewerw@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=acetoneiso2
+pkgver=2.3
+pkgrel=2
+pkgdesc="An all in one ISO tool (bin mdf nrg img daa dmg cdi b5i bwi pdi iso)"
+arch=('i686' 'x86_64')
+url="http://www.acetoneteam.org"
+license=('GPL3')
+depends=('qt>=4' 'fuseiso' 'cdrdao' 'cdrkit' 'dvd+rw-tools' 'gnupg2' 'pinentry' 'mplayer' 'phonon')
+optdepends=("p7zip: for ISO compress/decompress support")
+conflicts=('acetoneiso')
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/acetoneiso/AcetoneISO/AcetoneISO%202.3/acetoneiso_${pkgver}.tar.gz)
+md5sums=('225f7af687016690ff28b9771a1ce179')
+
+build() {
+ cd ${srcdir}/acetoneiso_${pkgver}/acetoneiso
+
+ qmake
+ sed -i 's|-I/usr/include/QtCore|-I/usr/include/QtCore -I/usr/include/KDE|' Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/acetoneiso_${pkgver}/acetoneiso
+
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/community/acetoneiso2/acetoneiso2.install b/community/acetoneiso2/acetoneiso2.install
new file mode 100644
index 000000000..1a3984e24
--- /dev/null
+++ b/community/acetoneiso2/acetoneiso2.install
@@ -0,0 +1,11 @@
+post_install() {
+cat << EOF
+ -->
+ --> Please remember to add 'fuse' to your MODULES array in /etc/rc.conf
+ -->
+EOF
+}
+
+post_upgrade() {
+ post_install $*
+}
diff --git a/community/acpitool/PKGBUILD b/community/acpitool/PKGBUILD
new file mode 100644
index 000000000..51050e0e6
--- /dev/null
+++ b/community/acpitool/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 24573 2010-08-26 12:50:31Z lcarlier $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Gerhard Brauer <gerhard.brauer@web.de>
+# Contributor: Milosz Piglas <archeofuture@gmail.com>
+
+pkgname=acpitool
+pkgver=0.5.1
+pkgrel=2
+pkgdesc="ACPI client - replacement for apm tool"
+url="http://sourceforge.net/projects/acpitool/"
+arch=('i686' 'x86_64')
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/acpitool/acpitool-$pkgver.tar.bz2)
+depends=('gcc-libs')
+md5sums=('9e4ec55201be0be71ffbc56d38b42b57')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make prefix="$pkgdir/usr" install
+}
diff --git a/community/addresses/PKGBUILD b/community/addresses/PKGBUILD
new file mode 100644
index 000000000..1f5dcfa60
--- /dev/null
+++ b/community/addresses/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 18081 2010-05-31 08:52:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=addresses
+pkgver=0.4.6
+pkgrel=5
+pkgdesc="A versatile address book application for GNUstep"
+arch=('i686' 'x86_64')
+url="http://giesler.biz/bjoern/en/sw_addr.html"
+license=('LGPL')
+depends=('gnustep-back')
+source=(http://giesler.biz/bjoern/downloads/Addresses-$pkgver.tar.gz)
+md5sums=('2d6b6bf9a1578a5b3a13cb0bd2c60fad')
+
+build() {
+ . /etc/profile.d/GNUstep.sh
+ cd $srcdir/Addresses-$pkgver
+ sed -i -e 's|Versions/A|Versions/0|g' {Test,AddressManager}/GNUmakefile || return 1
+
+ export PATH=$startdir/gcc-objc/src/gcc-4.2.1/build/qwe/usr/bin:$PATH
+
+ make || return 1
+ make GNUSTEP_INSTALLATION_DIR=$pkgdir/opt/GNUstep/System INSTALL_ROOT_DIR=$startdir/pkg install || return 1
+
+ # buggy install scripts
+ cd $pkgdir/opt/GNUstep/System/Library/Headers/
+ rm AddressBook
+ ln -sf Addresses AddressBook
+}
diff --git a/community/adesklets/PKGBUILD b/community/adesklets/PKGBUILD
new file mode 100644
index 000000000..d7f97a0c7
--- /dev/null
+++ b/community/adesklets/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 26100 2010-09-13 15:56:15Z schuay $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Fubar
+
+pkgname=adesklets
+pkgver=0.6.1
+pkgrel=11
+pkgdesc="An imlib2-based system to have interactive 'desklets'."
+arch=('i686' 'x86_64')
+url="http://adesklets.sourceforge.net/"
+license=('GPL2')
+depends=('imlib2' 'fontconfig' 'python2' 'perl' 'ttf-bitstream-vera' 'libx11')
+install=$pkgname.install
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2 \
+ fontconfig-2.4.patch)
+
+md5sums=('cd390c9398449c5566033e2e4792bccb'
+ '0374aec97670c90713fcabc2710e2160')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ #patch for fontconfig => 2.4
+ patch -Np0 -i ${srcdir}/fontconfig-2.4.patch
+
+ autoreconf
+ ./configure --prefix=/usr
+
+ #makefile Fix
+ sed -i 's/\/bin\/sh//' doc/Makefile
+
+ #python2 fix
+ for file in checkin installer submit; do
+ sed -i 's_/usr/bin/env python_/usr/bin/env python2_' utils/${pkgname}_${file}
+ done
+
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} INSTALLDIRS=vendor install
+
+ rm ${pkgdir}/usr/share/info/dir
+
+ #remove the font stuff
+ rm -f ${pkgdir}/usr/share/adesklets/{FONT_LICENSE,Vera.ttf}
+
+ find ${pkgdir} -name '.packlist' -exec rm '{}' \;
+ find ${pkgdir} -name 'perllocal.pod' -exec rm '{}' \;
+}
diff --git a/community/adesklets/adesklets.install b/community/adesklets/adesklets.install
new file mode 100644
index 000000000..cae17e499
--- /dev/null
+++ b/community/adesklets/adesklets.install
@@ -0,0 +1,31 @@
+infodir=/usr/share/info
+filelist=(adesklets.info adesklets_fr.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+
+ getent group adesklets > /dev/null || usr/sbin/groupadd -g 107 adesklets
+cat << EOF
+
+==> To be able to save configs of adesklets
+==> add your user to the adesklets group:
+==> # gpasswd -a USERNAME adesklets
+
+EOF
+}
+
+post_upgrade() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+
+ usr/sbin/groupdel adesklets &>/dev/null
+}
diff --git a/community/adesklets/fontconfig-2.4.patch b/community/adesklets/fontconfig-2.4.patch
new file mode 100644
index 000000000..e7a1ad5ca
--- /dev/null
+++ b/community/adesklets/fontconfig-2.4.patch
@@ -0,0 +1,50 @@
+--- configure.ac
++++ configure.ac
+@@ -1,4 +1,4 @@
+-dnl Initialize autoconf and automake
++nl Initialize autoconf and automake
+ AC_INIT
+ AC_CONFIG_SRCDIR(src/main.c)
+ AC_PREREQ(2.52)
+@@ -428,7 +428,18 @@ AC_TRY_LINK(
+ #include <fontconfig/fontconfig.h>
+ , FcInit(),
+ AC_MSG_RESULT([yes])
+-AC_DEFINE(HAVE_FONTCONFIG_FONTCONFIG_H,1,[Define to 1 if you have the <fontconfig/fontconfig.h> header file.]),
++AC_DEFINE(HAVE_FONTCONFIG_FONTCONFIG_H,1,[Define to 1 if you have the <fontconfig/fontconfig.h> header file.])
++
++AC_MSG_CHECKING([For fontconfig FcFini()])
++AC_TRY_LINK(
++#include <fontconfig/fontconfig.h>
++, FcFini(),
++AC_MSG_RESULT([yes])
++AC_DEFINE(HAVE_FONTCONFIG_FCFINI,1,[Define to 1 if FcFini() call exists])
++,
++AC_MSG_RESULT([no]))
++
++,
+ AC_MSG_RESULT([no])
+ FONTCONFIG_LIBS=
+ FONTCONFIG_CFLAGS=
+--- src/xwindow.c
++++ src/xwindow.c
+@@ -123,9 +123,17 @@
+ if ((strlen((char*)file)>4) &&
+ (strstr((char*)file+strlen((char*)file)-4,".ttf")))
+ imlib_add_path_to_font_path(dirname((char*)file));
+- FcFontSetDestroy(fs);
+- FcObjectSetDestroy(os);
+ }
++#ifdef HAVE_FONTCONFIG_FCFINI
++ FcFini();
++#else
++ /* On FontConfig >= 2.4, this causes a segfault, probably due to the new
++ caching mechanism: we don't have to care, since FcFini() always exists,
++ and does the dirty dessalocation job just fine.
++ */
++ if (fs) FcFontSetDestroy(fs);
++ FcObjectSetDestroy(os);
++#endif
+ }
+ #endif
+ imlib_add_path_to_font_path(".");
diff --git a/community/adns-python/PKGBUILD b/community/adns-python/PKGBUILD
new file mode 100644
index 000000000..30dec848a
--- /dev/null
+++ b/community/adns-python/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 26100 2010-09-13 15:56:15Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ben Mazer <blm@groknil.org>
+
+pkgname=adns-python
+pkgver=1.2.1
+pkgrel=4
+pkgdesc="python bindings for adns"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/adns-python/"
+depends=('adns' 'python2')
+makedepends=()
+license=('GPL2')
+source=(http://adns-python.googlecode.com/files/adns-python-$pkgver.tar.gz)
+md5sums=('12cc7ad1b0ee8d818005e9ca4def758b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' DNSBL.py
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' ADNS.py
+
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/adns/PKGBUILD b/community/adns/PKGBUILD
new file mode 100644
index 000000000..3165436a8
--- /dev/null
+++ b/community/adns/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 17373 2010-05-24 09:43:07Z spupykin $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+pkgname=adns
+pkgver=1.4
+pkgrel=2
+pkgdesc="adns is an asyncronous replacement resolver library"
+arch=('i686' 'x86_64')
+url="http://www.chiark.greenend.org.uk/~ian/adns/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.chiark.greenend.org.uk/~ian/$pkgname/ftp/$pkgname-$pkgver.tar.gz)
+md5sums=('88bc7bbf3f62a8d4fb186b8f72ead853')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ mkdir -p $startdir/pkg/usr/{lib,include,bin}
+ make prefix=$startdir/pkg/usr install
+}
diff --git a/community/adns/so-fix.patch b/community/adns/so-fix.patch
new file mode 100644
index 000000000..22d874225
--- /dev/null
+++ b/community/adns/so-fix.patch
@@ -0,0 +1,10 @@
+--- Makefile.in-old 2003-02-14 22:16:21.000000000 -0800
++++ Makefile.in 2003-02-14 22:16:59.000000000 -0800
+@@ -33,6 +33,7 @@
+ install:
+ $(INSTALL_PROGRAM) $(SHLIBFILE) $(lib_dir)/$(SHLIBFILE)
+ ln -sf $(SHLIBFILE) $(lib_dir)/$(SHLIBSONAME)
++ ln -sf $(SHLIBFILE) $(lib_dir)/$(SHLIBFORLINK)
+
+ uninstall:
+ rm -f $(lib_dir)/$(SHLIBFILE) $(lib_dir)/$(SHLIBSONAME)
diff --git a/community/agave/PKGBUILD b/community/agave/PKGBUILD
new file mode 100644
index 000000000..219e5150a
--- /dev/null
+++ b/community/agave/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 25589 2010-09-07 09:15:32Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=agave
+pkgver=0.4.7
+pkgrel=2
+pkgdesc="An colorscheme designer for the Gnome desktop"
+arch=('i686' 'x86_64')
+url="http://home.gna.org/colorscheme"
+license=('GPL')
+depends=('gtkmm' 'libgnomeui' 'libglademm' 'gconfmm>=2.18.1' 'hicolor-icon-theme')
+makedepends=('intltool' 'boost' 'gnome-doc-utils>=0.11.2')
+install=agave.install
+source=(http://download.gna.org/colorscheme/releases/$pkgname-$pkgver.tar.bz2
+ agave-0.4.7-mdv-fix-str-fmt.patch
+ schemebox.patch
+)
+md5sums=('93097881f28dcae1eca2800a763f77c3'
+ 'd96ddfe751d8fd4d13a443b94fafb0b6'
+ 'c41adfd52ecbf837f4338e67693640fc')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/agave-0.4.7-mdv-fix-str-fmt.patch # Fedora patch
+ patch -Np1 -i $srcdir/schemebox.patch # gcs-schemebox patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-scrollkeeper
+ make || return 1
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=$pkgdir install
+
+ mkdir -p $pkgdir/usr/share/gconf/schemas
+ gconf-merge-schema $pkgdir/usr/share/gconf/schemas/$pkgname.schemas \
+ ${startdir}/pkg/etc/gconf/schemas/*.schemas
+ rm -rf $pkgdir/usr/etc
+
+ sed -i "s/agave-icon.png/agave.png/" $pkgdir/usr/share/applications/agave.desktop
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/community/agave/agave-0.4.7-mdv-fix-str-fmt.patch b/community/agave/agave-0.4.7-mdv-fix-str-fmt.patch
new file mode 100644
index 000000000..7487a0c4d
--- /dev/null
+++ b/community/agave/agave-0.4.7-mdv-fix-str-fmt.patch
@@ -0,0 +1,12 @@
+diff -p -up agave-0.4.7/src/dialogs/gcs-about-window.cc.strfmt agave-0.4.7/src/dialogs/gcs-about-window.cc
+--- agave-0.4.7/src/dialogs/gcs-about-window.cc.strfmt 2009-11-25 15:00:03.000000000 +0100
++++ agave-0.4.7/src/dialogs/gcs-about-window.cc 2009-11-25 15:31:43.000000000 +0100
+@@ -105,7 +105,7 @@ namespace gcs
+ catch (const Glib::Error& e)
+ {
+ Glib::ustring message = "Couldn't load Agave logo image from theme. " + e.what();
+- g_warning(message.c_str());
++ g_warning("%s", message.c_str());
+ }
+ }
+ }
diff --git a/community/agave/agave.install b/community/agave/agave.install
new file mode 100644
index 000000000..41343c50b
--- /dev/null
+++ b/community/agave/agave.install
@@ -0,0 +1,24 @@
+pkgname=agave
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
diff --git a/community/agave/schemebox.patch b/community/agave/schemebox.patch
new file mode 100644
index 000000000..c00a867de
--- /dev/null
+++ b/community/agave/schemebox.patch
@@ -0,0 +1,11 @@
+--- agave-0.4.7/src/widgets/gcs-schemebox.cc 2008-02-25 21:07:02.000000000 -0600
++++ agave-0.4.7/src/widgets/gcs-schemebox.cc.new 2010-05-24 00:28:51.000000000 -0500
+@@ -45,7 +45,7 @@ namespace gcs
+
+ SchemeBox::SchemeBox(Scheme schm)
+ {
+- SchemeBox::SchemeBox();
++ SchemeBox();
+ set_scheme(schm);
+ }
+
diff --git a/community/agg/PKGBUILD b/community/agg/PKGBUILD
new file mode 100644
index 000000000..0a2c65cc2
--- /dev/null
+++ b/community/agg/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 49798 2009-08-16 14:04:06Z jgc $
+# Maintainer:
+
+pkgname=agg
+pkgver=2.5
+pkgrel=3
+pkgdesc="A High Quality Rendering Engine for C++"
+arch=('i686' 'x86_64')
+url="http://www.antigrain.com/"
+license=('GPL')
+depends=('gcc-libs>=4.4.1' 'sdl>=1.2.13' 'freetype2>=2.3.9')
+makedepends=('automake')
+provides=('antigrain')
+replaces=('antigrain')
+options=('!libtool' '!makeflags')
+source=(http://www.antigrain.com/${pkgname}-${pkgver}.tar.gz
+ agg-2.4-depends.patch
+ agg-2.5-pkgconfig.patch)
+md5sums=('0229a488bc47be10a2fee6cf0b2febd6'
+ '22f8e48c137d25038181c86d5e40b110'
+ '43a19a7b1564c591e56c8d09a0fd8da5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/agg-2.4-depends.patch" || return 1
+ patch -Np1 -i "${srcdir}/agg-2.5-pkgconfig.patch" || return 1
+ sh ./autogen.sh || return 1
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/community/agg/agg-2.4-depends.patch b/community/agg/agg-2.4-depends.patch
new file mode 100644
index 000000000..9d4f6e309
--- /dev/null
+++ b/community/agg/agg-2.4-depends.patch
@@ -0,0 +1,48 @@
+--- agg-2.4.orig/font_freetype/Makefile.am 2005-10-18 11:45:40.000000000 +0100
++++ agg-2.4/font_freetype/Makefile.am 2006-07-10 15:11:55.000000000 +0100
+@@ -4,8 +4,9 @@
+ agginclude_HEADERS = agg_font_freetype.h
+ lib_LTLIBRARIES = libaggfontfreetype.la
+
+-libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @FREETYPE_LIBS@
++libaggfontfreetype_la_LDFLAGS = -version-info @AGG_LIB_VERSION@
+ libaggfontfreetype_la_SOURCES = agg_font_freetype.cpp
+ libaggfontfreetype_la_CXXFLAGS = -I$(top_srcdir)/include @FREETYPE_CFLAGS@
++libaggfontfreetype_la_LIBADD = ../src/libagg.la @FREETYPE_LIBS@
+ endif
+
+--- agg-2.4.orig/src/platform/sdl/Makefile.am 2005-10-17 23:49:35.000000000 +0100
++++ agg-2.4/src/platform/sdl/Makefile.am 2006-07-10 15:11:55.000000000 +0100
+@@ -5,6 +5,6 @@
+ libaggplatformsdl_la_LDFLAGS = -version-info @AGG_LIB_VERSION@
+ libaggplatformsdl_la_SOURCES = agg_platform_support.cpp
+ libaggplatformsdl_la_CXXFLAGS = -I$(top_srcdir)/include @SDL_CFLAGS@
+-libaggplatformsdl_la_LIBADD = @SDL_LIBS@
++libaggplatformsdl_la_LIBADD = ../../libagg.la @SDL_LIBS@
+ endif
+
+--- agg-2.5.orig/configure.in 2006-10-09 05:06:36.000000000 +0100
++++ agg-2.5/configure.in 2007-01-07 14:07:39.000000000 +0000
+@@ -122,7 +122,8 @@
+ fi
+ AM_CONDITIONAL(ENABLE_X11,[test x$no_x = x -a xno != x$enable_platform -a x$win32_host != xyes])
+ AC_SUBST(x_includes)
+-AC_SUBST(x_libraries)
++test -n "$x_libraries" && X_LDFLAGS="-L$x_libraries"
++AC_SUBST(X_LDFLAGS)
+ dnl ###############################################
+
+ dnl Settung up library version
+--- agg-2.5.orig/src/platform/X11/Makefile.am 2006-12-11 00:59:45.000000000 +0000
++++ agg-2.5/src/platform/X11/Makefile.am 2007-01-07 14:07:39.000000000 +0000
+@@ -1,8 +1,8 @@
+ if ENABLE_X11
+ lib_LTLIBRARIES = libaggplatformX11.la
+
+-libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ -L@x_libraries@
++libaggplatformX11_la_LDFLAGS = -version-info @AGG_LIB_VERSION@ @X_LDFLAGS@
+ libaggplatformX11_la_SOURCES = agg_platform_support.cpp
+ libaggplatformX11_la_CXXFLAGS = -I$(top_srcdir)/include -I@x_includes@
+-libaggplatformX11_la_LIBADD = -lX11
++libaggplatformX11_la_LIBADD = ../../libagg.la -lX11
+ endif
diff --git a/community/agg/agg-2.5-pkgconfig.patch b/community/agg/agg-2.5-pkgconfig.patch
new file mode 100644
index 000000000..a303bfb90
--- /dev/null
+++ b/community/agg/agg-2.5-pkgconfig.patch
@@ -0,0 +1,10 @@
+--- agg-2.5/libagg.pc.in.orig 2007-01-07 13:58:28.000000000 +0000
++++ agg-2.5/libagg.pc.in 2007-01-07 14:02:40.000000000 +0000
+@@ -6,5 +6,6 @@
+ Name: libagg
+ Description: Anti Grain Geometry - A High Quality Rendering Engine for C++
+ Version: @VERSION@
+-Libs: -L${libdir} -Wl,-rpath,${exec_prefix}/lib -lagg
++Requires.private: freetype2
++Libs: -L${libdir} -lagg
+ Cflags: -I${includedir}
diff --git a/community/agsync/PKGBUILD b/community/agsync/PKGBUILD
new file mode 100644
index 000000000..9278d80fb
--- /dev/null
+++ b/community/agsync/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 17480 2010-05-24 14:08:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=agsync
+pkgver=0.2_pre
+_xpkgver=${pkgver/_/-}
+pkgrel=3
+pkgdesc="AvantGo sync plugin"
+arch=('i686' 'x86_64')
+url="http://duskwood.lownewulf.com/"
+license=("GPL")
+depends=('synce-librapi')
+makedepends=('synce-libsynce')
+source=(http://duskwood.lownewulf.com/$pkgname-$_xpkgver.tgz)
+md5sums=('74de1b1452a718c85364fab5ce3c0c2a')
+
+build() {
+ cd $startdir/src/$pkgname-$_xpkgver
+ make || return 1
+ mkdir -p $startdir/pkg/usr/{bin,lib,include}
+ cp agsync $startdir/pkg/usr/bin/
+ cp mal-files/mal-funcs.a $startdir/pkg/usr/lib/
+ cp mal-files/AG{Net,Types}.h $startdir/pkg/usr/include/
+}
diff --git a/community/aide/PKGBUILD b/community/aide/PKGBUILD
new file mode 100644
index 000000000..3f0f17bcb
--- /dev/null
+++ b/community/aide/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Thomas S Hatch <thatch45@gmail.copm>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=aide
+pkgver=0.15.1
+pkgrel=1
+pkgdesc='A file integrity checker and intrusion detection program.'
+arch=('i686' 'x86_64')
+url="http://www.cs.tut.fi/~rammer/aide.html"
+license=('GPL')
+makedepends=('mhash')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
+ aide.conf)
+md5sums=('d0b72535ff68b93a648e4d08b0ed7f07'
+ 'd3ac69ad7c12c1686f8accf2717139f6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-mhash \
+ --with-posix-acl \
+ --with-prelink \
+ --with-xattr \
+ --with-zlib \
+ --with-e2fsattrs
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 $srcdir/aide.conf $pkgdir/etc/aide.conf
+ mkdir -p $pkgdir/var/{log,lib}/aide/
+}
diff --git a/community/aide/aide.conf b/community/aide/aide.conf
new file mode 100644
index 000000000..b10f44bfa
--- /dev/null
+++ b/community/aide/aide.conf
@@ -0,0 +1,146 @@
+# Example configuration file for AIDE.
+#
+@@define DBDIR /var/lib/aide
+@@define LOGDIR /var/log/aide
+
+# The location of the database to be read.
+database=file:@@{DBDIR}/aide.db.gz
+
+# The location of the database to be written.
+#database_out=sql:host:port:database:login_name:passwd:table
+#database_out=file:aide.db.new
+database_out=file:@@{DBDIR}/aide.db.new.gz
+
+# Whether to gzip the output to database
+gzip_dbout=yes
+
+# Default.
+verbose=5
+
+report_url=file:@@{LOGDIR}/aide.log
+report_url=stdout
+#report_url=stderr
+#
+# Here are all the attributes we can check
+#p: permissions
+#i: inode
+#n: number of links
+#l: link name
+#u: user
+#g: group
+#s: size
+###b: block count
+#m: mtime
+#a: atime
+#c: ctime
+#S: check for growing size
+#I: ignore changed filename
+#ANF: allow new files
+#ARF: allow removed files
+#
+
+# Here are all the digests we can use
+#md5: md5 checksum
+#sha1: sha1 checksum
+#sha256: sha256 checksum
+#sha512: sha512 checksum
+#rmd160: rmd160 checksum
+#tiger: tiger checksum
+#haval: haval checksum
+#crc32: crc32 checksum
+#gost: gost checksum
+#whirlpool: whirlpool checksum
+
+# These are the default rules
+#R: p+i+l+n+u+g+s+m+c+md5
+#L: p+i+l+n+u+g
+#E: Empty group
+#>: Growing logfile p+l+u+g+i+n+S
+
+# You can create custom rules - my home made rule definition goes like this
+ALLXTRAHASHES = sha1+rmd160+sha256+sha512+whirlpool+tiger+haval+gost+crc32
+ALLXTRAHASHES = sha1+rmd160+sha256+sha512+tiger
+# Everything but access time (Ie. all changes)
+EVERYTHING = R+ALLXTRAHASHES
+
+# Sane, with multiple hashes
+# NORMAL = R+rmd160+sha256+whirlpool
+NORMAL = R+rmd160+sha256
+
+# For directories, don't bother doing hashes
+DIR = p+i+n+u+g+acl+xattrs
+
+# Access control only
+PERMS = p+i+u+g+acl
+
+# Logfile are special, in that they often change
+LOG = >
+
+# Just do md5 and sha256 hashes
+LSPP = R+sha256
+
+# Some files get updated automatically, so the inode/ctime/mtime change
+# but we want to know when the data inside them changes
+DATAONLY = p+n+u+g+s+acl+xattrs+md5+sha256+rmd160+tiger
+
+
+# Next decide what directories/files you want in the database.
+
+/boot NORMAL
+/bin NORMAL
+/sbin NORMAL
+/lib NORMAL
+/lib64 NORMAL
+/opt NORMAL
+/usr NORMAL
+/root NORMAL
+# These are too volatile
+!/usr/src
+!/usr/tmp
+
+# Check only permissions, inode, user and group for /etc, but
+# cover some important files closely.
+/etc PERMS
+!/etc/mtab
+# Ignore backup files
+!/etc/.*~
+/etc/exports NORMAL
+/etc/fstab NORMAL
+/etc/passwd NORMAL
+/etc/group NORMAL
+/etc/gshadow NORMAL
+/etc/shadow NORMAL
+/etc/security/opasswd NORMAL
+
+/etc/hosts.allow NORMAL
+/etc/hosts.deny NORMAL
+
+/etc/sudoers NORMAL
+/etc/skel NORMAL
+
+/etc/logrotate.d NORMAL
+
+/etc/resolv.conf DATAONLY
+
+/etc/nscd.conf NORMAL
+/etc/securetty NORMAL
+
+# Shell/X starting files
+/etc/profile NORMAL
+/etc/bashrc NORMAL
+/etc/bash_completion.d/ NORMAL
+/etc/login.defs NORMAL
+/etc/zprofile NORMAL
+/etc/zshrc NORMAL
+/etc/zlogin NORMAL
+/etc/zlogout NORMAL
+/etc/profile.d/ NORMAL
+/etc/X11/ NORMAL
+
+# Ignore logs
+!/var/lib/pacman/.*
+!/var/cache/.*
+!/var/log/.*
+!/var/run/.*
+!/var/spool/.*
+
diff --git a/community/aircrack-ng/ChangeLog b/community/aircrack-ng/ChangeLog
new file mode 100644
index 000000000..2dc69e435
--- /dev/null
+++ b/community/aircrack-ng/ChangeLog
@@ -0,0 +1,58 @@
+2011-03-16 Brad Fanella
+
+ * Fix FS#23295
+
+2011-01-17 Brad Fanella
+
+ * Fix #FS20303
+ * Split into aircrack-ng and aircrack-ng-scripts
+
+2009-09-18 Biru Ionut <ionut@archlinux.ro>
+
+ * Version bump: 1.0-rc4
+
+2009-04.14 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.0-rc3
+
+ * PKGBUILD: removed old compilation patch
+
+2009-02-08 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.0-rc2
+
+ * sha-compile-fix-64bit.patch: added, fixes compilation on 64bit hosts
+
+2008-06-15 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.0-rc1
+
+ * PKGBUILD: moved from $startdir to $srcdir/$pkgdir, added vim tags,
+ added sqlite3 dependency for airolib-ng support
+
+2008-05-03 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.0-beta2
+
+ * PKGBUILD: adapted make command to the new Makefile, added zlib and
+ openssl dependencies
+
+2008-02-25 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.9.3
+
+2008-02-08 Corrado Primier <bardo@aur.archlinux.org>
+
+ * PKGBUILD: fixed man page location (thanks Snowman)
+
+2008-02-07 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.9.2
+
+ * PKGBUILD: moved man pages to /usr/share/man
+
+2007-12-15 Corrado Primier <bardo@aur.archlinux.org>
+
+ * ChangeLog: added
+
+ * PKGBUILD: adopted, cleaned up, uploaded to [community]
diff --git a/community/aircrack-ng/PKGBUILD b/community/aircrack-ng/PKGBUILD
new file mode 100644
index 000000000..1d1069098
--- /dev/null
+++ b/community/aircrack-ng/PKGBUILD
@@ -0,0 +1,102 @@
+# $Id: PKGBUILD 42651 2011-03-18 23:46:42Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: ice-man <icemanf@gmail.com>
+
+pkgbase=aircrack-ng
+pkgname=(aircrack-ng aircrack-ng-scripts)
+pkgver=1.1
+pkgrel=5
+arch=('i686' 'x86_64')
+url="http://www.aircrack-ng.org"
+license=('GPL2')
+source=("http://download.aircrack-ng.org/${pkgname}-${pkgver}.tar.gz")
+md5sums=('f7a24ed8fad122c4187d06bfd6f998b4')
+depends=('openssl' 'sqlite3' 'iw')
+
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make SQLITE=true unstable=true
+
+}
+
+package_aircrack-ng() {
+ pkgdesc="A key cracker for the 802.11 WEP and WPA-PSK protocols"
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} SQLITE=true unstable=true bindir=/usr/bin \
+ mandir=/usr/share/man/man1 sbindir=/usr/sbin install
+
+ ### Remove installed scripts/corresponding man pages (installed in aircrack-ng-scripts) ###
+ # Scripts
+ rm ${pkgdir}/usr/sbin/airmon-ng
+ rm ${pkgdir}/usr/sbin/airdriver-ng
+ rm ${pkgdir}/usr/sbin/airodump-ng-oui-update
+ # Man pages
+ mkdir -p ${srcdir}/tmp/
+ mv ${pkgdir}/usr/share/man/man1/airmon-ng.1 ${srcdir}/tmp/
+ mv ${pkgdir}/usr/share/man/man1/airdriver-ng.1 ${srcdir}/tmp/
+}
+
+package_aircrack-ng-scripts() {
+ pkgdesc="Included scripts for a key cracker for the 802.11 WEP and WPA-PSK protocols"
+ depends=('python2' 'graphviz' 'pylorcon')
+
+ cd ${srcdir}/${pkgname}-${pkgver}/scripts
+ mkdir -p ${pkgdir}/usr/share/man/man1/ \
+ ${pkgdir}/usr/sbin
+
+ ### AIRDRIVER-NG ###
+ # Script
+ install -Dm644 airdriver-ng ${pkgdir}/usr/sbin/
+ # Libs
+ mkdir -p ${pkgdir}/usr/lib/airdrop-ng/
+ install -Dm644 airdrop-ng/lib/{colorize.py,libDumpParse.py,libOuiParse.py} \
+ ${pkgdir}/usr/lib/airdrop-ng/
+ # Man page
+ mv ${srcdir}/tmp/airdriver-ng.1 ${pkgdir}/usr/share/man/man1/
+
+ ### AIRDROP-NG ###
+ # Man page
+ install -Dm644 airdrop-ng/docs/airdrop-ng.1 ${pkgdir}/usr/share/man/man1/
+ # Script
+ sed s/python/python2/ -i airdrop-ng/airdrop-ng.py
+ install -Dm644 airdrop-ng/airdrop-ng.py ${pkgdir}/usr/sbin/airdrop-ng
+ chmod +x ${pkgdir}/usr/sbin/airdrop-ng
+
+ ### AIRGRAPH-NG ###
+ # Libs
+ mkdir -p ${pkgdir}/usr/lib/airgraph-ng/
+ install -Dm644 airgraph-ng/lib/lib_Airgraphviz.py \
+ ${pkgdir}/usr/lib/airgraph-ng/
+ # Man page
+ install -Dm644 airgraph-ng/man/airgraph-ng.1 ${pkgdir}/usr/share/man/man1/
+ # Script
+ sed s/python/python2/ -i airgraph-ng/airgraph-ng.py
+ sed s_/usr/local/bin/lib_/usr/lib_ -i airgraph-ng/airgraph-ng.py
+ install -Dm644 airgraph-ng/airgraph-ng.py ${pkgdir}/usr/sbin/airgraph-ng
+ chmod +x ${pkgdir}/usr/sbin/airgraph-ng
+
+ ### DUMP-JOIN.PY ###
+ # Man page
+ install -Dm644 airgraph-ng/man/dump-join.1 ${pkgdir}/usr/share/man/man1/
+ # Script
+ sed s/python/python2/ -i airgraph-ng/dump-join.py
+ install -Dm644 airgraph-ng/dump-join.py ${pkgdir}/usr/sbin/dump-join.py
+ chmod +x ${pkgdir}/usr/sbin/dump-join.py
+
+ ### AIRMON-NG ###
+ # Man page
+ mv ${srcdir}/tmp/airmon-ng.1 ${pkgdir}/usr/share/man/man1/
+ # Script
+ install -Dm644 airmon-ng ${pkgdir}/usr/sbin/
+ chmod +x ${pkgdir}/usr/sbin/airmon-ng
+
+ ### AIRODUMP-NG-OUI-UPDATE ###
+ # Script
+ install -Dm644 airodump-ng-oui-update ${pkgdir}/usr/sbin/
+ chmod +x ${pkgdir}/usr/sbin/airodump-ng-oui-update
+
+}
diff --git a/community/alienarena/PKGBUILD b/community/alienarena/PKGBUILD
new file mode 100644
index 000000000..cdf3ae8cd
--- /dev/null
+++ b/community/alienarena/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 42056 2011-03-12 16:13:26Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: yugrotavele <yugrotavele at archlinux dot us>
+# Contributor: Det <nimetonmaili at gmail a-dot com>
+# Contributor: godane <slaxemulator@gmail.com>
+# Contributor: damian01w <damian01w@gmail.com>
+
+pkgname=alienarena
+pkgver=7.51
+pkgrel=1
+_verdate=20110311
+pkgdesc="Multiplayer retro sci-fi deathmatch game"
+arch=('i686' 'x86_64')
+url='http://icculus.org/alienarena/rpa/'
+license=('GPL')
+depends=('curl' 'freetype2' 'libgl' 'libjpeg' 'libvorbis' 'libxxf86dga' 'libxxf86vm' 'mesa' 'ode' 'sdl' 'openal' 'alienarena-data')
+source=(http://icculus.org/alienarena/Files/alienarena-${pkgver/./_}-linux${_verdate}.tar.gz
+ 'alienarena.desktop')
+md5sums=('c9f1f050f52cdc45ab85487c526518d8'
+ 'f9b50e27e8615a6010b4cc91e9eb010f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ mv -f "$pkgdir/usr/bin/crx" "$pkgdir/usr/bin/$pkgname"
+ mv -f "$pkgdir/usr/bin/crx-ded" "$pkgdir/usr/bin/$pkgname-ded"
+ install -D -m644 "$srcdir/alienarena.desktop" "${pkgdir}/usr/share/applications/alienarena.desktop"
+ rm -rf "$pkgdir/usr/share/$pkgname"
+}
diff --git a/community/alienarena/alienarena.desktop b/community/alienarena/alienarena.desktop
new file mode 100644
index 000000000..d0b9834ed
--- /dev/null
+++ b/community/alienarena/alienarena.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=Alien Arena
+Comment=Multiplayer retro sci-fi deathmatch
+Exec=alienarena
+Icon=/usr/share/alienarena/aa.png
+Categories=Game;ActionGame;
diff --git a/community/alltray/PKGBUILD b/community/alltray/PKGBUILD
new file mode 100644
index 000000000..e31e50d9d
--- /dev/null
+++ b/community/alltray/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 79020 2010-04-30 01:30:58Z dgriffiths $
+# Maintainer : James Rayner <iphitus@gmail.com>
+# Contributor: Roberto Salas <ro0xito@gmail.com>
+
+pkgname=alltray
+pkgver=0.7.4dev
+pkgrel=2
+pkgdesc="Drops any app in the tray."
+license=('GPL')
+arch=('i686' 'x86_64')
+url="http://alltray.trausch.us/"
+depends=('gconf' 'libgtop' 'libwnck')
+options=('!libtool' 'force')
+source=(https://code.launchpad.net/alltray/trunk/${pkgver}/+download/alltray-${pkgver}.tar.gz)
+md5sums=('646d6d751f815e6aeb8a58a9e5d17db9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/amaya/PKGBUILD b/community/amaya/PKGBUILD
new file mode 100644
index 000000000..e22c16a49
--- /dev/null
+++ b/community/amaya/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 26069 2010-09-13 04:35:31Z bfanella $
+# Mantainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Zerial <fernando@zerial.org>
+# Contributor: Dalius <dagis@takas.lt>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=amaya
+pkgver=11.3.1
+pkgrel=7
+pkgdesc="W3C's Editor/Browser"
+arch=('i686' 'x86_64')
+url="http://www.w3.org/Amaya/"
+license=('Custom/BSD')
+depends=('wxgtk' 'libgl' 'raptor')
+makedepends=('imake' 'chrpath')
+options=('!makeflags')
+install=$pkgname.install
+source=(amaya-fix-amaya-wxfile.patch amaya-fix-thotlib-png14.patch amaya-fix-thotlib-wxfile.patch amaya-splitmode.patch amaya-wakeupidle.patch amaya-wxyield.patch \
+http://www.w3.org/Amaya/Distribution/$pkgname-sources-$pkgver.tgz)
+md5sums=('4e79692553e88de93a3f56c40dd442dc'
+ '0418f3a614e6d0a8e27ae038c78d8c4d'
+ '6501c87f7ab45e6c1a3ef214a6ed583e'
+ 'bc42d4b3ff7b43c8d0f7955dd1498b01'
+ '32347b32aded742b705a2038416f74de'
+ 'c42175f9cc9e90277547828b9cf6a92a'
+ '4a92b4e043fbd1add5b1e17fb7ed8755')
+
+build() {
+ cd $srcdir/Amaya$pkgver
+
+ patch -p1 < $srcdir/amaya-fix-amaya-wxfile.patch
+ patch -p1 < $srcdir/amaya-fix-thotlib-png14.patch
+ patch -p1 < $srcdir/amaya-fix-thotlib-wxfile.patch
+ patch -p1 < $srcdir/amaya-splitmode.patch
+ patch -p1 < $srcdir/amaya-wakeupidle.patch
+ patch -p1 < $srcdir/amaya-wxyield.patch
+
+ cd Amaya
+ if [ ! -d ./WX ]; then
+ mkdir WX
+ fi
+ cd WX
+
+ if [ "$CARCH" = "x86_64" ] ; then
+ [ $NOEXTRACT -eq 1 ] || cp ../../Mesa/configs/linux-x86-64 ../../Mesa/configs/current
+ else
+ [ $NOEXTRACT -eq 1 ] || cp ../../Mesa/configs/linux-x86 ../../Mesa/configs/current
+ fi
+ ../configure --prefix=/usr/share --exec=/usr/share --datadir=/usr/share --enable-system-raptor --enable-system-wx
+
+ make
+}
+
+package() {
+ cd $srcdir/Amaya$pkgver/Amaya/WX
+
+ install -d $pkgdir/usr/bin
+ make prefix=$pkgdir/usr/share install
+
+ ln -f -s ../share/Amaya/wx/bin/amaya $pkgdir/usr/bin/amaya
+ install -Dm644 $srcdir/Amaya$pkgver/Amaya/amaya/COPYRIGHT \
+ $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT
+
+ mkdir -p $pkgdir/usr/share/Amaya/lib
+ cp -a $srcdir/Amaya$pkgver/Amaya/WX/Mesa/lib/libGL.so.1* $pkgdir/usr/share/Amaya/lib/
+ cp -a $srcdir/Amaya$pkgver/Amaya/WX/Mesa/lib/libGLU.so.1* $pkgdir/usr/share/Amaya/lib/
+ chrpath -r /usr/share/Amaya/lib $pkgdir/usr/share/Amaya/wx/bin/amaya_bin
+ chrpath -r /usr/share/Amaya/lib $pkgdir/usr/share/Amaya/wx/bin/print
+}
diff --git a/community/amaya/amaya-fix-amaya-wxfile.patch b/community/amaya/amaya-fix-amaya-wxfile.patch
new file mode 100644
index 000000000..6f5b0cf5f
--- /dev/null
+++ b/community/amaya/amaya-fix-amaya-wxfile.patch
@@ -0,0 +1,13 @@
+diff -aur Amaya11.3.1/Amaya/amaya/HTMLedit.c Amaya11.3.1.new/Amaya/amaya/HTMLedit.c
+--- Amaya11.3.1/Amaya/amaya/HTMLedit.c 2009-12-09 11:11:22.000000000 +0100
++++ Amaya11.3.1.new/Amaya/amaya/HTMLedit.c 2010-08-17 21:39:23.696495709 +0200
+@@ -1689,7 +1689,7 @@
+ {
+ #ifdef _WX
+ wxString tmpFile = TtaConvMessageToWX(tempURL);
+- wxFile::wxFile (tmpFile, wxFile::write);
++ wxFile (tmpFile, wxFile::write);
+ #endif /* _WX */
+ }
+ }
+
diff --git a/community/amaya/amaya-fix-thotlib-png14.patch b/community/amaya/amaya-fix-thotlib-png14.patch
new file mode 100644
index 000000000..2231db2de
--- /dev/null
+++ b/community/amaya/amaya-fix-thotlib-png14.patch
@@ -0,0 +1,56 @@
+diff -aur Amaya11.3.1/Amaya/thotlib/image/pnghandler.c Amaya11.3.1.new/Amaya/thotlib/image/pnghandler.c
+--- Amaya11.3.1/Amaya/thotlib/image/pnghandler.c 2009-09-09 11:54:50.000000000 +0200
++++ Amaya11.3.1.new/Amaya/thotlib/image/pnghandler.c 2010-08-17 20:42:10.823505508 +0200
+@@ -10,9 +10,9 @@
+ * R. Guetari (W3C/INRIA) - Initial Windows version
+ */
+
++#include "png.h"
+ #include "thot_gui.h"
+ #include "thot_sys.h"
+-#include "png.h"
+ #include "constmedia.h"
+ #include "typemedia.h"
+ #include "picture.h"
+@@ -128,13 +128,13 @@
+ png_byte **ppbRowPointers;
+ unsigned char *pixels;
+ unsigned int i, j, passes;
+- unsigned long lw, lh;
++ png_uint_32 lw, lh;
+ int iBitDepth, iColorType;
+ double dGamma;
+
+ /* Checks the eight byte PNG signature*/
+ fread (pbSig, 1, 8, pfFile);
+- if (!png_check_sig (pbSig, 8))
++ if (png_sig_cmp (pbSig, 0, 8))
+ return NULL;
+ /* create the two png(-info) structures*/
+ png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING,
+@@ -169,13 +169,13 @@
+ png_set_strip_16 (png_ptr);
+ /* Grayscale =>RGB or RGBA */
+ if (iColorType == PNG_COLOR_TYPE_GRAY || iColorType == PNG_COLOR_TYPE_GRAY_ALPHA)
+- png_set_gray_to_rgb (png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ /* Palette indexed colors to RGB */
+ if (iColorType == PNG_COLOR_TYPE_PALETTE)
+ png_set_palette_to_rgb (png_ptr);
+ /* 8 bits / channel is needed */
+ if (iColorType == PNG_COLOR_TYPE_GRAY && iBitDepth < 8)
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ /* all transparency type : 1 color, indexed => alpha channel*/
+ if (png_get_valid (png_ptr, info_ptr,PNG_INFO_tRNS))
+ png_set_tRNS_to_alpha (png_ptr);
+@@ -822,7 +822,7 @@
+ TtaReadClose (fp);
+ if (ret != 8)
+ return FALSE;
+- ret = png_check_sig ((png_byte*)buf, 8);
++ ret = !png_sig_cmp ((png_byte*)buf, 0, 8);
+ if (ret) return (TRUE);
+ return(FALSE);
+ }
+
diff --git a/community/amaya/amaya-fix-thotlib-wxfile.patch b/community/amaya/amaya-fix-thotlib-wxfile.patch
new file mode 100644
index 000000000..537419040
--- /dev/null
+++ b/community/amaya/amaya-fix-thotlib-wxfile.patch
@@ -0,0 +1,16 @@
+diff -aur Amaya11.3.1/Amaya/thotlib/base/platform.c Amaya11.3.1.new/Amaya/thotlib/base/platform.c
+--- Amaya11.3.1/Amaya/thotlib/base/platform.c 2009-12-02 12:23:07.000000000 +0100
++++ Amaya11.3.1.new/Amaya/thotlib/base/platform.c 2010-08-17 21:37:25.699840595 +0200
+@@ -329,9 +329,9 @@
+ {
+ tmp = (char *)TtaGetMemory (strlen(targetFileName)+10);
+ sprintf (tmp, "%s.tmp", targetFileName);
+- wxFile::wxFile (targetFile, wxFile::write);
++ wxFile (targetFile, wxFile::write);
+ tmpFile = TtaConvMessageToWX(tmp);
+- wxFile::wxFile (tmpFile, wxFile::write);
++ wxFile (tmpFile, wxFile::write);
+ result = wxFile::Exists(targetFile);
+ if (result)
+ result = wxConcatFiles (tmpFile, sourceFile, targetFile);
+
diff --git a/community/amaya/amaya-splitmode.patch b/community/amaya/amaya-splitmode.patch
new file mode 100644
index 000000000..e733955e4
--- /dev/null
+++ b/community/amaya/amaya-splitmode.patch
@@ -0,0 +1,10 @@
+diff -aur Amaya11.3.1/Amaya/thotlib/dialogue/AmayaPage.cpp Amaya11.3.1.new/Amaya/thotlib/dialogue/AmayaPage.cpp
+--- Amaya11.3.1/Amaya/thotlib/dialogue/AmayaPage.cpp 2009-09-09 12:07:49.000000000 +0200
++++ Amaya11.3.1.new/Amaya/thotlib/dialogue/AmayaPage.cpp 2010-08-17 20:54:13.606772367 +0200
+@@ -383,7 +383,7 @@
+ /*| wxSP_PERMIT_UNSPLIT*/
+ #endif /* 0 */
+ );
+- SetSplitMode(0); // undefined
++ SetSplitMode(wxSPLIT_VERTICAL); // undefined not allowed
+ p_sizerTop2->Add( m_pSplitterWindow, 1, wxEXPAND, 0 );
diff --git a/community/amaya/amaya-wakeupidle.patch b/community/amaya/amaya-wakeupidle.patch
new file mode 100644
index 000000000..45949f322
--- /dev/null
+++ b/community/amaya/amaya-wakeupidle.patch
@@ -0,0 +1,11 @@
+diff -aur Amaya11.3.1/Amaya/thotlib/base/AmayaApp.cpp Amaya11.3.1.new/Amaya/thotlib/base/AmayaApp.cpp
+--- Amaya11.3.1/Amaya/thotlib/base/AmayaApp.cpp 2009-10-29 09:59:22.000000000 +0100
++++ Amaya11.3.1.new/Amaya/thotlib/base/AmayaApp.cpp 2010-08-17 21:01:23.823806630 +0200
+@@ -326,7 +326,7 @@
+
+ // Log window.
+ // new wxLogWindow(NULL, wxT("Amaya traces"));
+-
++ wxWakeUpIdle();
+ return true;
+ }
diff --git a/community/amaya/amaya-wxyield.patch b/community/amaya/amaya-wxyield.patch
new file mode 100644
index 000000000..69235f5d4
--- /dev/null
+++ b/community/amaya/amaya-wxyield.patch
@@ -0,0 +1,21 @@
+diff -aur Amaya11.3.1/Amaya/thotlib/dialogue/appdialogue_wx.c Amaya11.3.1.new/Amaya/thotlib/dialogue/appdialogue_wx.c
+--- Amaya11.3.1/Amaya/thotlib/dialogue/appdialogue_wx.c 2009-09-15 17:17:02.000000000 +0200
++++ Amaya11.3.1.new/Amaya/thotlib/dialogue/appdialogue_wx.c 2010-08-17 21:07:40.973352206 +0200
+@@ -993,7 +993,7 @@
+ * this function waits for complete widgets initialisation */
+ /* notice: no not use safe yield here because it use a
+ wxWindowDisabler and it makes menus blinking */
+- wxYield();
++ wxTheApp->Yield(TRUE);
+ return TRUE;
+ }
+
+@@ -1824,7 +1824,7 @@
+ TtaHandlePendingEvents();
+ /* wait for frame initialisation (needed by opengl)
+ * this function waits for complete widgets initialisation */
+- wxYield();
++ wxTheApp->Yield(TRUE);
+ /* fix accessibility problem : force the created frame to get the focus */
+ TtaRedirectFocus();
+
diff --git a/community/amaya/amaya.install b/community/amaya/amaya.install
new file mode 100644
index 000000000..a3b887285
--- /dev/null
+++ b/community/amaya/amaya.install
@@ -0,0 +1,14 @@
+post_install() {
+ xdg-desktop-menu forceupdate &> /dev/null || :
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null || :
+}
+
+post_upgrade() {
+ xdg-desktop-menu forceupdate &> /dev/null || :
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null || :
+}
+
+post_remove() {
+ xdg-desktop-menu forceupdate &> /dev/null || :
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null || :
+}
diff --git a/community/amidi-plug/PKGBUILD b/community/amidi-plug/PKGBUILD
new file mode 100644
index 000000000..ba29a076c
--- /dev/null
+++ b/community/amidi-plug/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 17215 2010-05-21 21:43:23Z spupykin $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: yosh64 <yosh64.at.gmail.dot.com>
+
+pkgname=amidi-plug
+pkgver=0.7
+pkgrel=5
+pkgdesc="A MIDI input plugin for XMMS"
+arch=('i686' 'x86_64')
+url="http://www.develia.org/projects.php?l=2&f=1&p=amidiplug"
+license=('GPL2')
+depends=('xmms' 'fluidsynth')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://www.develia.org/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('bb128c40dce0ab4afda79da01f985a09')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-player=xmms
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/amsn/PKGBUILD b/community/amsn/PKGBUILD
new file mode 100644
index 000000000..c96ccf33c
--- /dev/null
+++ b/community/amsn/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 34944 2010-12-13 21:56:56Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jeff Mickey <j@codemac.net>
+
+pkgname=amsn
+pkgver=0.98.4
+pkgrel=1
+pkgdesc="MSN client written in Tcl/Tk"
+arch=('i686' 'x86_64')
+url="http://amsn.sourceforge.net/"
+license=('GPL2')
+depends=('tk' 'tls')
+makedepends=('libjpeg' 'libpng' 'farsight2' 'libv4l')
+optdepends=('farsight2: for video conferencing')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}-src.tar.bz2)
+md5sums=('96fd20e8709ced4443432d125a5e0a5a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+# python2 fix
+ for file in lang/missing.py plugins/music/infosongbird; do
+ sed -i 's_/usr/bin/env python_/usr/bin/env python2_' ${file}
+ done
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/amsn/amsn-jpeg7.patch b/community/amsn/amsn-jpeg7.patch
new file mode 100644
index 000000000..d9c9f103d
--- /dev/null
+++ b/community/amsn/amsn-jpeg7.patch
@@ -0,0 +1,10 @@
+--- utils/TkCximage/src/CxImage/ximajpg.cpp.orig 2009-07-18 05:29:43.000000000 -0300
++++ utils/TkCximage/src/CxImage/ximajpg.cpp 2009-07-18 05:30:31.000000000 -0300
+@@ -142,6 +142,7 @@
+ */ //</DP>
+
+ // Set the scale <ignacio>
++ SetJpegScale(8); // Set an initial value (FIX for jpeg-7)
+ cinfo.scale_denom = GetJpegScale();
+
+ // Borrowed the idea from GIF implementation <ignacio>
diff --git a/community/amsn/amsn-libpng14.patch b/community/amsn/amsn-libpng14.patch
new file mode 100644
index 000000000..8b6e8a05d
--- /dev/null
+++ b/community/amsn/amsn-libpng14.patch
@@ -0,0 +1,64 @@
+--- utils/TkCximage/src/CxImage/ximapng.cpp 2008-03-07 20:14:37.000000000 +0100
++++ utils/TkCximage/src/CxImage/ximapng.cpp_fixed 2010-01-28 23:08:13.000000000 +0100
+@@ -142,9 +142,9 @@
+ if (info_ptr->num_trans!=0){ //palette transparency
+ if (info_ptr->num_trans==1){
+ if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE){
+- info.nBkgndIndex = info_ptr->trans_values.index;
++ info.nBkgndIndex = info_ptr->trans_color.index;
+ } else{
+- info.nBkgndIndex = info_ptr->trans_values.gray>>nshift;
++ info.nBkgndIndex = info_ptr->trans_color.gray>>nshift;
+ }
+ }
+ if (info_ptr->num_trans>1){
+@@ -152,7 +152,7 @@
+ if (pal){
+ DWORD ip;
+ for (ip=0;ip<min(head.biClrUsed,(unsigned long)info_ptr->num_trans);ip++)
+- pal[ip].rgbReserved=info_ptr->trans[ip];
++ pal[ip].rgbReserved=info_ptr->trans_alpha[ip];
+ for (ip=info_ptr->num_trans;ip<head.biClrUsed;ip++){
+ pal[ip].rgbReserved=255;
+ }
+@@ -166,9 +166,9 @@
+ int num_trans;
+ png_color_16 *image_background;
+ if (png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, &image_background)){
+- info.nBkgndColor.rgbRed = (BYTE)(info_ptr->trans_values.red>>nshift);
+- info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_values.green>>nshift);
+- info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_values.blue>>nshift);
++ info.nBkgndColor.rgbRed = (BYTE)(info_ptr->trans_color.red>>nshift);
++ info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_color.green>>nshift);
++ info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_color.blue>>nshift);
+ info.nBkgndColor.rgbReserved = 0;
+ info.nBkgndIndex = 0;
+ }
+@@ -417,12 +417,12 @@
+ if (info.nBkgndIndex >= 0){
+ info_ptr->num_trans = 1;
+ info_ptr->valid |= PNG_INFO_tRNS;
+- info_ptr->trans = trans;
+- info_ptr->trans_values.index = (BYTE)info.nBkgndIndex;
+- info_ptr->trans_values.red = tc.rgbRed;
+- info_ptr->trans_values.green = tc.rgbGreen;
+- info_ptr->trans_values.blue = tc.rgbBlue;
+- info_ptr->trans_values.gray = info_ptr->trans_values.index;
++ info_ptr->trans_alpha = trans;
++ info_ptr->trans_color.index = (BYTE)info.nBkgndIndex;
++ info_ptr->trans_color.red = tc.rgbRed;
++ info_ptr->trans_color.green = tc.rgbGreen;
++ info_ptr->trans_color.blue = tc.rgbBlue;
++ info_ptr->trans_color.gray = info_ptr->trans_color.index;
+
+ // the transparency indexes start from 0 for non grayscale palette
+ if (!bGrayScale && head.biClrUsed && info.nBkgndIndex)
+@@ -443,7 +443,7 @@
+ trans[ip]=GetPaletteColor((BYTE)ip).rgbReserved;
+ info_ptr->num_trans = (WORD)nc;
+ info_ptr->valid |= PNG_INFO_tRNS;
+- info_ptr->trans = trans;
++ info_ptr->trans_alpha = trans;
+ }
+
+ // copy the palette colors
diff --git a/community/amsn/amsn.changelog b/community/amsn/amsn.changelog
new file mode 100644
index 000000000..8dab097ad
--- /dev/null
+++ b/community/amsn/amsn.changelog
@@ -0,0 +1,8 @@
+2010-12-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.98.4
+
+2010-03-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.98.3
+
+2009-07-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#15542 fixed in 0.97.2-14
diff --git a/community/amyedit/ChangeLog b/community/amyedit/ChangeLog
new file mode 100644
index 000000000..a118712c1
--- /dev/null
+++ b/community/amyedit/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Moved to /usr so no need for .install
diff --git a/community/amyedit/PKGBUILD b/community/amyedit/PKGBUILD
new file mode 100644
index 000000000..e35d67f5a
--- /dev/null
+++ b/community/amyedit/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 11640 2010-02-15 15:59:55Z ibiru $
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=amyedit
+pkgver=1.0
+pkgrel=5
+pkgdesc="A gtkmm LaTeX editor"
+arch=('i686' 'x86_64')
+url="http://amyedit.sourceforge.net"
+license=('GPL')
+depends=('gtkmm' 'gtksourceview' 'aspell')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/sourceforge/amyedit/amyedit-$pkgver.tar.bz2 amyedit-sigc.patch amyedit.patch)
+md5sums=('662f5d6cc37c5838e2dc5a4a6abb812d' '681020f8012b5f1cd6d6b95a4294d597' '3008683a5cee700f2af28a863fea9e00')
+
+build() {
+ #export export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/gnome/lib/pkgconfig
+ patch -p0 < $srcdir/amyedit-sigc.patch
+ patch -p0 < $srcdir/amyedit.patch
+ cd $srcdir/amyedit-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/amyedit/amyedit-sigc.patch b/community/amyedit/amyedit-sigc.patch
new file mode 100644
index 000000000..702eeff99
--- /dev/null
+++ b/community/amyedit/amyedit-sigc.patch
@@ -0,0 +1,88 @@
+diff -Naur amyedit-1.0/src/AmyEdit.cc src/AmyEdit.cc
+--- amyedit-1.0/src/AmyEdit.cc 2006-03-13 22:13:08.000000000 +0100
++++ amyedit-1.0/src/AmyEdit.cc 2008-07-12 05:07:43.965608312 +0200
+@@ -65,9 +65,9 @@
+
+ /* My Signals */
+ // signals when there is a file available
+-SigC::Signal1<void,bool> signal_file_open;
++sigc::signal1<void,bool> signal_file_open;
+ // signals an update to preferences
+-SigC::Signal0<void> signal_preferences_update;
++sigc::signal0<void> signal_preferences_update;
+ /**************/
+
+ AmyEdit* AmyEdit::smInstance=NULL;
+diff -Naur amyedit-1.0/src/EditTabs.cc src/EditTabs.cc
+--- amyedit-1.0/src/EditTabs.cc 2006-03-13 22:25:53.000000000 +0100
++++ amyedit-1.0/src/EditTabs.cc 2008-07-12 05:08:41.022094749 +0200
+@@ -76,7 +76,7 @@
+ set_tab_pos(Gtk::POS_TOP);
+ set_scrollable(true);
+
+- extern SigC::Signal0<void> signal_preferences_update;
++ extern sigc::signal0<void> signal_preferences_update;
+
+ signal_switch_page().connect(sigc::mem_fun(*this, &EditTabs::on_switching_page));
+ signal_preferences_update.connect(sigc::mem_fun(*this, &EditTabs::on_preferences_update));
+@@ -414,7 +414,7 @@
+
+ bool EditTabs::CloseTab(int tab)
+ {
+- extern SigC::Signal1<void,bool> signal_file_open;
++ extern sigc::signal1<void,bool> signal_file_open;
+
+ if (tab<0)
+ tab=get_current_page();
+@@ -686,8 +686,8 @@
+
+ void EditTabs::on_switching_page(GtkNotebookPage *page, guint number)
+ {
+- extern SigC::Signal1<void, int> signal_line_set;
+- extern SigC::Signal1<void, bool> signal_file_open;
++ extern sigc::signal1<void, int> signal_line_set;
++ extern sigc::signal1<void, bool> signal_file_open;
+ Page *curtab = get_current_tab();
+
+ if (curtab)
+@@ -735,7 +735,7 @@
+
+ on_preferences_update();
+
+- extern SigC::Signal0<void> signal_preferences_update;
++ extern sigc::signal0<void> signal_preferences_update;
+ get_buffer()->signal_modified_changed().connect(sigc::mem_fun(*this, &EditTabs::Page::on_modified_changed));
+ get_buffer()->signal_changed().connect(sigc::mem_fun(*this, &EditTabs::Page::on_changed));
+ get_buffer()->signal_mark_set().connect(sigc::mem_fun(*this, &EditTabs::Page::on_mark_changed));
+@@ -815,7 +815,7 @@
+
+ void EditTabs::Page::on_changed()
+ {
+- extern SigC::Signal1<void, int> signal_line_set;
++ extern sigc::signal1<void, int> signal_line_set;
+ signal_line_set(get_buffer()->get_insert()->get_iter().get_line());
+
+ }
+@@ -823,7 +823,7 @@
+ void EditTabs::Page::on_mark_changed(Gtk::SourceBuffer::iterator iter, Glib::RefPtr<Gtk::SourceBuffer::Mark> mark){
+ if (mark->get_name()=="insert")
+ {
+- extern SigC::Signal1<void, int> signal_line_set;
++ extern sigc::signal1<void, int> signal_line_set;
+
+ signal_line_set(get_buffer()->get_insert()->get_iter().get_line());
+
+diff -Naur amyedit-1.0/src/StatusBar.cc src/StatusBar.cc
+--- amyedit-1.0/src/StatusBar.cc 2005-12-17 15:56:47.000000000 +0100
++++ amyedit-1.0/src/StatusBar.cc 2008-07-12 05:09:14.020602906 +0200
+@@ -50,7 +50,7 @@
+ #include "StatusBar.hh"
+ #include "Utils.hh"
+
+-SigC::Signal1<void, int> signal_line_set;
++sigc::signal1<void, int> signal_line_set;
+
+ StatusBar::StatusBar()
+ {
+
+
diff --git a/community/amyedit/amyedit.patch b/community/amyedit/amyedit.patch
new file mode 100644
index 000000000..eff5010bf
--- /dev/null
+++ b/community/amyedit/amyedit.patch
@@ -0,0 +1,81 @@
+diff -uNr amyedit-1.0/src/Makefile.in amyedit-1.0-new/src/Makefile.in
+--- amyedit-1.0/src/Makefile.in 2006-03-14 16:18:54.000000000 -0500
++++ amyedit-1.0-new/src/Makefile.in 2007-09-18 22:27:34.000000000 -0400
+@@ -59,7 +59,7 @@
+ TextListViewListBox.$(OBJEXT) Utils.$(OBJEXT) main.$(OBJEXT) \
+ sourcebuffer.$(OBJEXT) sourcelanguage.$(OBJEXT) \
+ sourcelanguagesmanager.$(OBJEXT) sourceview.$(OBJEXT) \
+- init.$(OBJEXT) keyfile.$(OBJEXT)
++ init.$(OBJEXT)
+ am__objects_2 =
+ am_amyedit_OBJECTS = $(am__objects_1) $(am__objects_2) \
+ $(am__objects_2)
+@@ -256,8 +256,7 @@
+ gtksourceviewmm/sourcelanguage.cpp \
+ gtksourceviewmm/sourcelanguagesmanager.cpp \
+ gtksourceviewmm/sourceview.cpp \
+- gtksourceviewmm/init.cc \
+- gtkmm_extra/keyfile.cc
++ gtksourceviewmm/init.cc
+
+ headers = \
+ AboutDialog.hh \
+@@ -280,15 +279,13 @@
+ gtksourceviewmm/sourcelanguage.h \
+ gtksourceviewmm/sourcelanguagesmanager.h \
+ gtksourceviewmm/sourceview.h \
+- gtksourceviewmm/init.hh \
+- gtkmm_extra/keyfile.h
++ gtksourceviewmm/init.hh
+
+ privateheaders = \
+ gtksourceviewmm/private/sourcebuffer_p.h \
+ gtksourceviewmm/private/sourcelanguage_p.h \
+ gtksourceviewmm/private/sourcelanguagesmanager_p.h \
+ gtksourceviewmm/private/sourceview_p.h \
+- gtkmm_extra/private/keyfile_p.h \
+ Utils_p.hh
+
+ @PRECOMPILE_HEADERS_FALSE@BUILT_SOURCES =
+@@ -399,7 +396,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextListViewListBox.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Utils.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyfile.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sourcebuffer.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sourcelanguage.Po@am__quote@
+@@ -497,20 +493,6 @@
+ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o init.obj `if test -f 'gtksourceviewmm/init.cc'; then $(CYGPATH_W) 'gtksourceviewmm/init.cc'; else $(CYGPATH_W) '$(srcdir)/gtksourceviewmm/init.cc'; fi`
+
+-keyfile.o: gtkmm_extra/keyfile.cc
+-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT keyfile.o -MD -MP -MF "$(DEPDIR)/keyfile.Tpo" -c -o keyfile.o `test -f 'gtkmm_extra/keyfile.cc' || echo '$(srcdir)/'`gtkmm_extra/keyfile.cc; \
+-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/keyfile.Tpo" "$(DEPDIR)/keyfile.Po"; else rm -f "$(DEPDIR)/keyfile.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gtkmm_extra/keyfile.cc' object='keyfile.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o keyfile.o `test -f 'gtkmm_extra/keyfile.cc' || echo '$(srcdir)/'`gtkmm_extra/keyfile.cc
+-
+-keyfile.obj: gtkmm_extra/keyfile.cc
+-@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT keyfile.obj -MD -MP -MF "$(DEPDIR)/keyfile.Tpo" -c -o keyfile.obj `if test -f 'gtkmm_extra/keyfile.cc'; then $(CYGPATH_W) 'gtkmm_extra/keyfile.cc'; else $(CYGPATH_W) '$(srcdir)/gtkmm_extra/keyfile.cc'; fi`; \
+-@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/keyfile.Tpo" "$(DEPDIR)/keyfile.Po"; else rm -f "$(DEPDIR)/keyfile.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gtkmm_extra/keyfile.cc' object='keyfile.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o keyfile.obj `if test -f 'gtkmm_extra/keyfile.cc'; then $(CYGPATH_W) 'gtkmm_extra/keyfile.cc'; else $(CYGPATH_W) '$(srcdir)/gtkmm_extra/keyfile.cc'; fi`
+-
+ .cpp.o:
+ @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ @am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+diff -uNr amyedit-1.0/src/main.cc amyedit-1.0-new/src/main.cc
+--- amyedit-1.0/src/main.cc 2006-03-13 18:08:32.000000000 -0500
++++ amyedit-1.0-new/src/main.cc 2007-09-18 22:24:35.000000000 -0400
+@@ -65,7 +65,6 @@
+
+ Gtk::Main m(&argc, &argv);
+ Gtk::SourceViewmm_init();
+- Glib::keyfile_init();
+
+ /* TODO This should probably be removed and created on demand */
+
+
+
diff --git a/community/angband/PKGBUILD b/community/angband/PKGBUILD
new file mode 100644
index 000000000..b38e998c6
--- /dev/null
+++ b/community/angband/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: schuay <jakob.gruber@gmail.com>
+# Maintainer: Mike Sampson <mike at sambodata dot com>
+# Contributor: Adrian Stratulat <adrian.stratulat at inboxcom>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: KillaB <xGenoBlast@gmail.com>
+# Contributor: Callan Barrett <wizzomafizzo@gmail.com>
+# Contributor: Christian Schmidt <xmucknertx@googlemail.com>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=angband
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="A roguelike dungeon exploration game based on the writings of JRR Tolkien"
+arch=('i686' 'x86_64')
+url="http://rephial.org/"
+license=('GPL2' 'custom')
+depends=('sdl_image' 'sdl_ttf' 'sdl_mixer' 'ncurses' 'libglade')
+source=("http://rephial.org/downloads/${pkgver:0:3}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('9a66d0ba724d43678c5eb3f484e041aa')
+
+build() {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --bindir=/usr/bin \
+ --sysconfdir=/usr/share/angband \
+ --with-configpath=/usr/share/angband \
+ --with-libpath=/usr/share/angband \
+ --enable-gtk \
+ --enable-sdl \
+ --enable-sdl-mixer
+
+ make
+
+}
+
+package() {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/share/angband/*/delete.me"
+ install -Dm644 copying.txt "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+
+}
diff --git a/community/antiword/PKGBUILD b/community/antiword/PKGBUILD
new file mode 100644
index 000000000..9103de17c
--- /dev/null
+++ b/community/antiword/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer : Aaron, phrakture, Griffin <aaron@archlinux.org>
+# Contributor: Gustav Munkby <grddev@gmx.net>
+
+pkgname=antiword
+pkgver=0.37
+pkgrel=2
+pkgdesc="Antiword is a free MS Word reader for Linux and RISC OS"
+arch=('i686' 'x86_64')
+url="http://www.winfield.demon.nl/"
+license="GPL"
+depends=('glibc')
+install=antiword.install
+source=(http://www.winfield.demon.nl/linux/$pkgname-$pkgver.tar.gz \
+ antiword-helper)
+md5sums=('f868e2a269edcbc06bf77e89a55898d1' '01a988376cfd4bb268120ab597c9abe3')
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver
+ sed -i "s|CFLAGS =.*|CFLAGS = $CFLAGS -DNDEBUG|g; \
+ s|GLOBAL_INSTALL_DIR =.*|GLOBAL_INSTALL_DIR = /usr/bin|g" \
+ Makefile.Linux
+ make DESTDIR=$pkgdir global_install
+ install -m755 $srcdir/antiword-helper $pkgdir/usr/bin/
+ install -Dm644 Docs/antiword.1 $pkgdir/usr/share/man/man1/antiword.1
+}
diff --git a/community/antiword/antiword-helper b/community/antiword/antiword-helper
new file mode 100644
index 000000000..ee9fea627
--- /dev/null
+++ b/community/antiword/antiword-helper
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+[ $# -eq 2 ] || exit 1
+
+tmpfile=/tmp/aw$$.txt
+editor=${EDITOR:-`which vi`}
+terminal="$2"
+
+antiword "$1" > $tmpfile
+chmod -w $tmpfile
+$terminal -e $editor $tmpfile
+chmod +w $tmpfile
+rm $tmpfile
diff --git a/community/antiword/antiword.install b/community/antiword/antiword.install
new file mode 100644
index 000000000..58aaccde7
--- /dev/null
+++ b/community/antiword/antiword.install
@@ -0,0 +1,26 @@
+post_install()
+{
+ cat << EOF
+NOTES On Antiword Integration:
+
+* If you use mozplugger, make sure to configure the
+ msword section like so (replacing <TERMINAL> with your
+ terminal of choice):
+ application/msword: doc, dot: Microsoft Word Document
+ ignore_errors exits: antiword-helper <TERMINAL> "$file"
+
+* To properly use antiword in your mailcap settings:
+ application/msword; antiword %s; copiousoutput
+
+* To enable drag-and-drop support in KDE, use the kantiword script
+EOF
+}
+
+post_upgrade()
+{
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/anyfs-tools/PKGBUILD b/community/anyfs-tools/PKGBUILD
new file mode 100644
index 000000000..47d550208
--- /dev/null
+++ b/community/anyfs-tools/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 20118 2010-07-02 14:36:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=anyfs-tools
+pkgver=0.85.1c
+pkgrel=1
+pkgdesc="unix-way toolset for recovering and converting filesystems"
+arch=('i686' 'x86_64')
+url="http://anyfs-tools.sourceforge.net/"
+license=('GPL')
+depends=(bzip2 e2fsprogs libmpeg2 xfsprogs fuse)
+source=(http://downloads.sourceforge.net/sourceforge/anyfs-tools/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d3da0004cd0f037ec3e926acd3f520c2')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+ #Dirty Arch64 fix which doesn't affect i686
+ CFLAGS="-DNO_INLINE_FUNCS -D_INLINE_=static" ./configure --prefix=/usr --build=i686-linux-gnu
+ make || return 1
+ sed -i 's|ldconfig||' src/anysurrect/Makefile
+ make INSTALLPATH=$pkgdir/usr install
+}
diff --git a/community/apcupsd/PKGBUILD b/community/apcupsd/PKGBUILD
new file mode 100644
index 000000000..e06fea694
--- /dev/null
+++ b/community/apcupsd/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 29263 2010-10-12 10:10:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Todd Musall <tmusall@comcast.net>
+
+pkgname=apcupsd
+pkgver=3.14.8
+pkgrel=2
+pkgdesc="Apcupsd can be used for power mangement and controlling most of APC's UPS models on Unix and Windows machines."
+arch=(i686 x86_64)
+url="http://www.apcupsd.org"
+license=('GPL')
+depends=('gcc-libs')
+optdepends=('gd: for CGI'
+ 'gconf: for frontend')
+makedepends=('pkgconfig')
+backup=(etc/apcupsd/apcupsd.conf etc/apcupsd/hosts.conf \
+ etc/apcupsd/multimon.conf)
+source=(http://downloads.sourceforge.net/apcupsd/$pkgname-$pkgver.tar.gz \
+ apcupsd)
+md5sums=('cd17f0a903dc2220e55ed54e242359d2'
+ '5eae3c4d921eeb81798a0250fe3dd111')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib/$pkgname \
+ --enable-cgi --enable-usb --enable-net \
+ --with-upstype=usb --with-upscable=usb \
+ --with-serial-dev=/dev/usb/hid/hiddev[0-9] \
+ --enable-pthreads --enable-gapcmon
+
+ make
+ make DESTDIR=$pkgdir install
+
+ install -D -m755 ../apcupsd $pkgdir/etc/rc.d/apcupsd
+ chmod 755 $pkgdir/sbin/*
+ mkdir -p $pkgdir/usr/lib/$pkgname/cgi-bin
+ mv $pkgdir/etc/apcupsd/*.cgi $pkgdir/usr/lib/$pkgname/cgi-bin
+}
diff --git a/community/apcupsd/apcupsd b/community/apcupsd/apcupsd
new file mode 100755
index 000000000..3cd5c9dc8
--- /dev/null
+++ b/community/apcupsd/apcupsd
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /sbin/apcupsd`
+case "$1" in
+ start)
+ stat_busy "Starting APCUPSD Daemon"
+ rm -f /etc/apcupsd/powerfail
+ rm -f /etc/nologin
+ [ -z "$PID" ] && /sbin/apcupsd -f /etc/apcupsd/apcupsd.conf
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /sbin/apcupsd`
+ echo $PID > /var/run/apcupsd.pid
+ add_daemon apcupsd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping APCUPSD Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/apcupsd.pid
+ rm_daemon apcupsd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ status)
+ /sbin/apcaccess status
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+exit 0
diff --git a/community/apg/ChangeLog b/community/apg/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/apg/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/apg/PKGBUILD b/community/apg/PKGBUILD
new file mode 100644
index 000000000..9af58f37d
--- /dev/null
+++ b/community/apg/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 7436 2010-01-06 23:28:11Z dgriffiths $
+# Maintainer: eric <eric@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=apg
+pkgver=2.2.3
+pkgrel=2
+pkgdesc="Automated Password Generator."
+arch=(i686 x86_64)
+url="http://www.adel.nursat.kz/apg/index.shtml"
+license=('custom')
+depends=('glibc')
+source=(http://www.adel.nursat.kz/apg/download/$pkgname-$pkgver.tar.gz)
+md5sums=('3b3fc4f11e90635519fe627c1137c9ac')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ /bin/sed -i 's:^#\(CS_LIBS = -lnsl\)$:\1:' Makefile
+ /usr/bin/make || return 1
+ for i in apg apgbfm; do
+ /bin/install -D -m755 $i $startdir/pkg/usr/bin/$i
+ /bin/install -D -m644 doc/man/$i.1 $startdir/pkg/usr/share/man/man1/$i.1
+ done
+ install -D -m 644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING
+}
+# vim: ts=2: ft=sh
diff --git a/community/apparix/PKGBUILD b/community/apparix/PKGBUILD
new file mode 100644
index 000000000..c5a128a1a
--- /dev/null
+++ b/community/apparix/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Dave Pernu <u.owned@gmail.com>
+# Maintainer: Firmicus <francois.archlinux.org>
+
+pkgname=apparix
+pkgver=08.331
+_ver="08-331"
+pkgrel=2
+pkgdesc="Command line file browser with bookmark support"
+arch=('i686' 'x86_64')
+url="http://micans.org/apparix/"
+license=('GPL2')
+depends=('bash')
+options=('!docs' 'zipman')
+source=(http://micans.org/$pkgname/src/$pkgname-$_ver.tar.gz apparix.sh)
+md5sums=('0d7c9a2efecf5c7b44d2ce7c5844e5de'
+ '70b984f427572f72e3475fd176c91d16')
+
+build()
+{
+ cd ${srcdir}/$pkgname-$_ver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ mkdir -p ${pkgdir}/etc/profile.d/
+ install -m755 ${srcdir}/apparix.sh ${pkgdir}/etc/profile.d/
+}
diff --git a/community/apparix/apparix.sh b/community/apparix/apparix.sh
new file mode 100644
index 000000000..9bad62b82
--- /dev/null
+++ b/community/apparix/apparix.sh
@@ -0,0 +1,52 @@
+
+
+function to()
+{
+ if test "$2"; then
+ cd "$(apparix "$1" "$2" || echo .)";
+ else
+ cd "$(apparix "$1" || echo .)";
+ fi
+ pwd
+}
+
+function bm()
+{
+ if test "$2"; then
+ apparix --add-mark "$1" "$2";
+ elif test "$1"; then
+ apparix --add-mark "$1";
+ else
+ apparix --add-mark;
+ fi
+}
+
+function portal()
+{
+ if test "$1"; then
+ apparix --add-portal "$1";
+ else
+ apparix --add-portal;
+ fi
+}
+
+function _apparix_aliases ()
+{ cur=$2
+ dir=$3
+ COMPREPLY=()
+ if [ "$1" == "$3" ]
+ then
+ COMPREPLY=($(cat $HOME/.apparix{rc,expand}|grep "j,.*$cur.*,"|cut -f2 -d,))
+ else
+ dir=`apparix -favour lro $dir 2>/dev/null` || return 0
+ eval_compreply="
+ COMPREPLY=( $(cd "$dir" ; ls -d *$cur* |
+ while read r
+ do
+ [[ -d "$r" ]] && [[ $r == *$cur* ]] && echo \"${r// /\\ }\"
+ done))"
+ eval $eval_compreply
+ fi
+ return 0
+}
+complete -F _apparix_aliases to
diff --git a/community/apvlv/PKGBUILD b/community/apvlv/PKGBUILD
new file mode 100644
index 000000000..003f6f307
--- /dev/null
+++ b/community/apvlv/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 41378 2011-03-05 14:39:13Z lcarlier $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: tocer.deng <tocer.deng@gmail.com>
+
+pkgname=apvlv
+pkgver=0.1.1
+pkgrel=1
+pkgdesc="A PDF Viewer which behaves like Vim"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/apvlv/"
+license=('GPL')
+depends=('poppler-glib' 'libdjvu')
+makedepends=('cmake')
+source=(http://apvlv.googlecode.com/files/$pkgname-${pkgver}-Source.tar.gz
+ apvlv-poppler015.patch)
+md5sums=('221b25fd34ebf398047424459d8e5131'
+ '809aea91e13032663d6533892757891a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-Source
+
+ patch -Np0 -i $srcdir/apvlv-poppler015.patch
+
+ mkdir -p build
+ cd build
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DAPVLV_WITH_UMD=no ..
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver-Source/build
+
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/apvlv/apvlv-poppler015.patch b/community/apvlv/apvlv-poppler015.patch
new file mode 100644
index 000000000..96cb099a6
--- /dev/null
+++ b/community/apvlv/apvlv-poppler015.patch
@@ -0,0 +1,12 @@
+diff -aur src/ApvlvFile.cpp.orig src/ApvlvFile.cpp
+--- src/ApvlvFile.cpp.orig 2010-09-14 07:28:44.000000000 +0100
++++ src/ApvlvFile.cpp 2010-10-29 22:29:21.128949529 +0100
+@@ -275,7 +275,7 @@
+ {
+ PopplerRectangle rect = { x1, y1, x2, y2 };
+ PopplerPage *page = poppler_document_get_page (mDoc, pn);
+- *out = poppler_page_get_text (page, POPPLER_SELECTION_WORD, &rect);
++ *out = poppler_page_get_selected_text (page, POPPLER_SELECTION_WORD, &rect);
+ if (*out != NULL)
+ {
+ return true;
diff --git a/community/aqbanking/PKGBUILD b/community/aqbanking/PKGBUILD
new file mode 100644
index 000000000..77e93e59e
--- /dev/null
+++ b/community/aqbanking/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 42707 2011-03-19 21:53:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: David Moore <davidm@sjsoft.com>
+
+pkgname=aqbanking
+pkgver=5.0.5
+pkgrel=1
+pkgdesc="A library for online banking and financial applications"
+arch=(i686 x86_64)
+options=('!libtool')
+url="http://www.aquamaniac.de/aqbanking"
+license=('GPL')
+depends=('gwenhywfar' 'ktoblzcheck' 'libofx')
+options=('!makeflags' '!libtool')
+source=("aqbanking-$pkgver.tar.gz::http://www2.aquamaniac.de/sites/download/download.php?package=03&release=78&file=01&dummy=aqbanking-$pkgver.tar.gz")
+md5sums=('b50c28887fc9fd2fc9a4d9fc996497e6')
+
+build() {
+ cd $srcdir/aqbanking-$pkgver
+ export PKG_CONFIG=/usr/bin/pkg-config
+ ./configure --prefix=/usr \
+ --with-backends="aqhbci aqofxconnect" \
+ --enable-gwenhywfar
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/arch/PKGBUILD b/community/arch/PKGBUILD
new file mode 100644
index 000000000..648f29206
--- /dev/null
+++ b/community/arch/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 75248 2010-04-01 04:38:12Z allan $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=arch
+pkgver=1.3.5
+pkgrel=7
+pkgdesc="a modern and remarkable revision control system"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://regexps.srparish.net/www/#Gnu-arch"
+depends=('zlib' 'expat' 'heimdal')
+source=(ftp://ftp.gnu.org/gnu/gnu-arch/tla-$pkgver.tar.gz)
+md5sums=('db31ee89bc4788eef1eba1cee6c176ef')
+options=('!makeflags')
+
+build() {
+ cd "${srcdir}/tla-$pkgver/src"
+ mkdir =build
+ cd =build
+ ../configure --prefix /usr
+ make || return 1
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/community/ario/PKGBUILD b/community/ario/PKGBUILD
new file mode 100644
index 000000000..d1a739a4c
--- /dev/null
+++ b/community/ario/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 41557 2011-03-07 20:04:50Z icelaya $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=ario
+pkgver=1.5
+pkgrel=2
+pkgdesc="A GTK client for MPD (Music player daemon) inspired by Rhythmbox but much lighter and faster"
+arch=('i686' 'x86_64')
+url="http://ario-player.sourceforge.net/"
+license=('GPL')
+depends=('avahi' 'curl' 'dbus-glib' 'gnutls' 'hicolor-icon-theme' 'libglade' 'libmpdclient' 'libnotify' 'libsoup>=2.4' 'libunique' 'taglib' 'xdg-utils')
+makedepends=('intltool' 'perlxml')
+options=('!libtool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname-player/$pkgname-$pkgver.tar.gz"
+ 'ario-1.5-libnotify-0.7.patch')
+md5sums=('5dac6cc8b8f12b0acc132d5ff7fc779f'
+ 'e5ac8d29f39365f5da86934ac03e0bca')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -p0 -i $srcdir/ario-1.5-libnotify-0.7.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ario/ario-1.5-libnotify-0.7.patch b/community/ario/ario-1.5-libnotify-0.7.patch
new file mode 100644
index 000000000..75749b6d1
--- /dev/null
+++ b/community/ario/ario-1.5-libnotify-0.7.patch
@@ -0,0 +1,27 @@
+--- plugins/libnotify/ario-notifier-libnotify.c
++++ plugins/libnotify/ario-notifier-libnotify.c
+@@ -30,6 +30,10 @@
+ #include "lib/ario-conf.h"
+ #include "ario-debug.h"
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ struct ArioNotifierLibnotifyPrivate
+ {
+ NotifyNotification *notification;
+@@ -122,9 +126,13 @@
+ ARIO_LOG_FUNCTION_START;
+ notifier_libnotify->priv = ARIO_NOTIFIER_LIBNOTIFY_GET_PRIVATE (notifier_libnotify);
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ notifier_libnotify->priv->notification = notify_notification_new ("Ario", NULL, NULL);
++#else
+ notifier_libnotify->priv->notification = notify_notification_new ("Ario", NULL, NULL, NULL);
+ notify_notification_attach_to_status_icon (notifier_libnotify->priv->notification,
+ GTK_STATUS_ICON (ario_tray_icon_get_instance ()));
++#endif
+ }
+
+ static void
diff --git a/community/ario/ario.changelog b/community/ario/ario.changelog
new file mode 100644
index 000000000..8f906a6a3
--- /dev/null
+++ b/community/ario/ario.changelog
@@ -0,0 +1,30 @@
+2010-08-11 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5
+
+2010-02-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.4.4
+
+2010-01-23 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.4.3
+
+2009-12-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * updated to major version 1.4.2
+
+2009-12-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * updated to major version 1.4.1
+
+2009-12-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * updated to major version 1.4
+
+2009-05-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * 'taglib' dependency added - version 1.3-2
+
+2009-05-24 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * updated to major version 1.3
+
+2009-03-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * updated to major version 1.2.2
+
+2009-01-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * adopted in [community]
+ * updated to major version 1.2.1
diff --git a/community/ario/ario.install b/community/ario/ario.install
new file mode 100644
index 000000000..b711352cb
--- /dev/null
+++ b/community/ario/ario.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/armagetronad/PKGBUILD b/community/armagetronad/PKGBUILD
new file mode 100644
index 000000000..c3606bde1
--- /dev/null
+++ b/community/armagetronad/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 26100 2010-09-13 15:56:15Z schuay $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Filippo 'JoeyrS' Civiletti <joeyrs@gmail.com>
+
+pkgname=armagetronad
+pkgver=0.2.8.3.1
+pkgrel=2
+pkgdesc='A Tron Clone in 3D.'
+arch=('i686' 'x86_64')
+url='http://armagetronad.net/'
+license=('GPL')
+depends=('sdl_image' 'libxml2' 'sdl_mixer' 'mesa' 'ftgl')
+source=(http://downloads.sourceforge.net/sourceforge/armagetronad/armagetronad-$pkgver.src.tar.gz
+ armagetronad.desktop
+ gcc43.patch)
+md5sums=('ed8dbdec493de5cd4535a787f35eed1b'
+ '29d1b1231acadff12cf3014a3867ba5c'
+ '9045d99559ef33fc18136630e8de916c')
+
+build() {
+ cd armagetronad-$pkgver
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' language/update.py
+
+ sed -i 's|FTGL.h|ftgl.h|g' configure
+ sed -i 's|png_check_sig|png_sig_cmp|g' configure
+ patch -p1 < ../gcc43.patch
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --disable-games \
+ --enable-automakedefaults
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m 644 $srcdir/armagetronad.desktop $pkgdir/usr/share/applications/armagetronad.desktop
+ rm -rf $pkgdir/usr/share/applnk
+ rm $pkgdir/usr/bin/armagetronad-uninstall
+ mv $pkgdir/usr/bin/armagetronad $pkgdir/usr/bin/armagetronad_bin
+ printf "#!/bin/bash\n/usr/bin/armagetronad_bin --configdir /etc/armagetronad --datadir /usr/share/armagetronad" > $pkgdir/usr/bin/armagetronad
+ chmod +x $pkgdir/usr/bin/armagetronad
+}
diff --git a/community/armagetronad/armagetronad.desktop b/community/armagetronad/armagetronad.desktop
new file mode 100644
index 000000000..125b4261d
--- /dev/null
+++ b/community/armagetronad/armagetronad.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Armagetronad
+GenericName=3D Tron clone
+GenericName[pl]=Klon gry Tron w 3D
+Exec=armagetronad
+Icon=/usr/share/armagetronad/desktop/icons/small/armagetronad.png
+Categories=Game;
+Terminal=false
+Type=Application
+Encoding=UTF-8
+StartupNotify=false
diff --git a/community/armagetronad/gcc43.patch b/community/armagetronad/gcc43.patch
new file mode 100644
index 000000000..358f48221
--- /dev/null
+++ b/community/armagetronad/gcc43.patch
@@ -0,0 +1,210 @@
+diff -ur a/src/network/md5.cpp b/src/network/md5.cpp
+--- a/src/network/md5.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/network/md5.cpp 2009-08-24 20:21:51.000000000 +0200
+@@ -75,7 +75,7 @@
+ */
+
+ #include "md5.h"
+-
++#include<cstring>
+ #include <string>
+ #include <memory>
+
+Tylko w b/src/network: md5.cpp~
+diff -ur a/src/network/nNetwork.cpp b/src/network/nNetwork.cpp
+--- a/src/network/nNetwork.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/network/nNetwork.cpp 2009-08-24 20:20:40.000000000 +0200
+@@ -24,7 +24,7 @@
+ ***************************************************************************
+
+ */
+-
++#include<cstring>
+ #include "tMemManager.h"
+ #include "tInitExit.h"
+ #include "nSimulatePing.h"
+Tylko w b/src/network: nNetwork.cpp~
+diff -ur a/src/network/nNetwork.h b/src/network/nNetwork.h
+--- a/src/network/nNetwork.h 2009-08-24 20:08:14.000000000 +0200
++++ b/src/network/nNetwork.h 2009-08-24 20:21:18.000000000 +0200
+@@ -27,7 +27,7 @@
+
+ #ifndef ArmageTron_NET_H
+ #define ArmageTron_NET_H
+-
++#include<cstring>
+ #include "tError.h"
+ #include "tString.h"
+ #include "tHeap.h"
+Tylko w b/src/network: nNetwork.h~
+diff -ur a/src/network/nSocket.h b/src/network/nSocket.h
+--- a/src/network/nSocket.h 2009-08-24 20:08:14.000000000 +0200
++++ b/src/network/nSocket.h 2009-08-24 20:22:09.000000000 +0200
+@@ -33,7 +33,7 @@
+
+ #ifndef NET_SOCKET_H
+ #define NET_SOCKET_H
+-
++#include<cstring>
+ #include <iostream>
+ #include "tConsole.h"
+ #include "tException.h"
+Tylko w b/src/network: nSocket.h~
+diff -ur a/src/render/rModel.h b/src/render/rModel.h
+--- a/src/render/rModel.h 2009-08-24 20:08:14.000000000 +0200
++++ b/src/render/rModel.h 2009-08-24 20:20:57.000000000 +0200
+@@ -27,7 +27,7 @@
+
+ #ifndef ArmageTron_MODEL_H
+ #define ArmageTron_MODEL_H
+-
++#include<cstring>
+ #include "defs.h"
+ #include "tArray.h"
+ #include "tLinkedList.h"
+Tylko w b/src/render: rModel.h~
+diff -ur a/src/tools/tArray.cpp b/src/tools/tArray.cpp
+--- a/src/tools/tArray.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tArray.cpp 2009-08-24 20:22:25.000000000 +0200
+@@ -27,7 +27,7 @@
+ */
+
+ #define NO_MALLOC_REPLACEMENT
+-
++#include<cstring>
+ #include "tMemManager.h"
+ #include <iostream>
+ #include <stdlib.h>
+Tylko w b/src/tools: tArray.cpp~
+diff -ur a/src/tools/tCommandLine.cpp b/src/tools/tCommandLine.cpp
+--- a/src/tools/tCommandLine.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tCommandLine.cpp 2009-08-24 20:24:19.000000000 +0200
+@@ -30,7 +30,7 @@
+ #ifndef TCOMMANDLINE_H_INCLUDED
+ #include "tCommandLine.h"
+ #endif
+-
++#include<cstring>
+ #include "tLocale.h"
+ #include "tConfiguration.h"
+ #include "tException.h"
+Tylko w b/src/tools: tCommandLine.cpp~
+diff -ur a/src/tools/tConfiguration.cpp b/src/tools/tConfiguration.cpp
+--- a/src/tools/tConfiguration.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tConfiguration.cpp 2009-08-24 20:22:42.000000000 +0200
+@@ -24,7 +24,7 @@
+ ***************************************************************************
+
+ */
+-
++#include<cstring>
+ #include "config.h"
+ #include <fstream>
+ #include <iomanip>
+Tylko w b/src/tools: tConfiguration.cpp~
+diff -ur a/src/tools/tCrypt.cpp b/src/tools/tCrypt.cpp
+--- a/src/tools/tCrypt.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tCrypt.cpp 2009-08-24 20:22:54.000000000 +0200
+@@ -24,7 +24,7 @@
+ ***************************************************************************
+
+ */
+-
++#include<cstring>
+ #include "tCrypt.h"
+ #include "tMemManager.h"
+
+Tylko w b/src/tools: tCrypt.cpp~
+diff -ur a/src/tools/tDirectories.cpp b/src/tools/tDirectories.cpp
+--- a/src/tools/tDirectories.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tDirectories.cpp 2009-08-24 20:23:06.000000000 +0200
+@@ -27,7 +27,7 @@
+ */
+
+ #include "config.h"
+-
++#include<cstring>
+ #include <errno.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+Tylko w b/src/tools: tDirectories.cpp~
+diff -ur a/src/tools/tError.cpp b/src/tools/tError.cpp
+--- a/src/tools/tError.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tError.cpp 2009-08-24 20:28:01.000000000 +0200
+@@ -24,8 +24,9 @@
+ ***************************************************************************
+
+ */
+-
++#include<cstring>
+ #include "config.h"
++#include<cstdlib>
+ #include <iostream>
+ #if HAVE_UNISTD_H
+ #include <unistd.h>
+Tylko w b/src/tools: tError.cpp~
+diff -ur a/src/tools/tLocale.cpp b/src/tools/tLocale.cpp
+--- a/src/tools/tLocale.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tLocale.cpp 2009-08-24 20:23:49.000000000 +0200
+@@ -30,7 +30,7 @@
+ #include "tConsole.h"
+ #include "tDirectories.h"
+ #include "tSafePTR.h"
+-
++#include<cstring>
+ #include <fstream>
+ #include <string>
+ #include <map>
+Tylko w b/src/tools: tLocale.cpp~
+diff -ur a/src/tools/tMemManager.cpp b/src/tools/tMemManager.cpp
+--- a/src/tools/tMemManager.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tMemManager.cpp 2009-08-24 20:24:42.000000000 +0200
+@@ -29,7 +29,7 @@
+ #define NO_MALLOC_REPLACEMENT
+
+ #include "defs.h"
+-
++#include<cstring>
+ #include <iostream>
+ #include <sstream>
+ #include <stdio.h> // need basic C IO since STL IO does memory management
+Tylko w b/src/tools: tMemManager.cpp~
+diff -ur a/src/tools/tRandom.cpp b/src/tools/tRandom.cpp
+--- a/src/tools/tRandom.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tRandom.cpp 2009-08-24 20:24:31.000000000 +0200
+@@ -29,7 +29,7 @@
+ #ifndef TRANDOM_H_INCLUDED
+ #include "tRandom.h"
+ #endif
+-
++#include<cstdlib>
+ #ifdef HAVE_STDLIB
+ #include <stdlib.h>
+ #endif
+Tylko w b/src/tools: tRandom.cpp~
+diff -ur a/src/tools/tString.cpp b/src/tools/tString.cpp
+--- a/src/tools/tString.cpp 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tools/tString.cpp 2009-08-24 20:24:03.000000000 +0200
+@@ -24,7 +24,7 @@
+ ***************************************************************************
+
+ */
+-
++#include<cstring>
+ #include "tMemManager.h"
+ #include "tString.h"
+ #include "tLocale.h"
+Tylko w b/src/tools: tString.cpp~
+diff -ur a/src/tron/gAIBase.h b/src/tron/gAIBase.h
+--- a/src/tron/gAIBase.h 2009-08-24 20:08:14.000000000 +0200
++++ b/src/tron/gAIBase.h 2009-08-24 20:21:33.000000000 +0200
+@@ -29,7 +29,7 @@
+ #define ArmageTron_AIBASE_H
+
+ #include "rSDL.h"
+-
++#include<memory>
+ #include "eTimer.h"
+ #include "ePath.h"
+ #include "ePlayer.h"
+Tylko w b/src/tron: gAIBase.h~
diff --git a/community/arpack/PKGBUILD b/community/arpack/PKGBUILD
new file mode 100644
index 000000000..0f909d106
--- /dev/null
+++ b/community/arpack/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 18351 2010-06-02 21:49:21Z shusmann $
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=arpack
+pkgver=2.1
+pkgrel=4
+pkgdesc="A collection of Fortran77 subroutines designed to solve large scale eigenvalue problems"
+arch=('i686' 'x86_64')
+url="http://www.caam.rice.edu/software/ARPACK"
+license=('custom:BSD')
+depends=('glibc' 'gcc-fortran')
+source=(http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz \
+ http://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz \
+ arpack-2.1-redhat.patch \
+ license.txt)
+md5sums=('fffaa970198b285676f4156cebc8626e'
+ '14830d758f195f272b8594a493501fa2'
+ '95678954de317c92862bb4f9cc9d04ad'
+ '7caaa0099a5c39726f4478a1bde89495')
+
+build() {
+ cd $srcdir/ARPACK
+ patch -p1 -i ../arpack-2.1-redhat.patch
+ mkdir static shared
+ cd shared
+ for dir in ../SRC ../UTIL; do
+ make -f $dir/Makefile VPATH=$dir srcdir=$dir FC=gfortran FFLAGS="-fPIC" \
+ single double complex complex16
+ done
+ gcc -shared -Wl,-soname,libarpack.so.2 -o libarpack.so.2.1 *.o
+ cd ..
+ cd static
+ for dir in ../SRC ../UTIL; do
+ make -f $dir/Makefile VPATH=$dir srcdir=$dir FC=gfortran FFLAGS="$RPM_OPT_FLAGS" LDFLAGS="-s" \
+ all
+ done
+ ar rv libarpack.a *.o
+ ranlib libarpack.a
+}
+package() {
+ cd $srcdir/ARPACK
+ install -d $pkgdir/usr/lib
+ install -p -m644 $srcdir/ARPACK/static/libarpack.a $pkgdir/usr/lib
+ install -p -m755 $srcdir/ARPACK/shared/libarpack.so.2.1 $pkgdir/usr/lib
+ ln -s libarpack.so.2.1 $pkgdir/usr/lib/libarpack.so.2
+ ln -s libarpack.so.2 $pkgdir/usr/lib/libarpack.so
+ install -D -m644 $srcdir/license.txt \
+ $pkgdir/usr/share/licenses/$pkgname/license.txt
+}
diff --git a/community/arpack/arpack-2.1-redhat.patch b/community/arpack/arpack-2.1-redhat.patch
new file mode 100644
index 000000000..154bff5d4
--- /dev/null
+++ b/community/arpack/arpack-2.1-redhat.patch
@@ -0,0 +1,55 @@
+--- ARPACK/ARmake.inc~ 1996-04-26 21:12:57.000000000 +0200
++++ ARPACK/ARmake.inc 2003-07-19 11:57:10.000000000 +0200
+@@ -25,7 +25,7 @@
+ # | other than your home directory. |
+ # %--------------------------------------%
+ #
+-home = $(HOME)/ARPACK
++home = $(PWD)/.
+ #
+ # %--------------------------------------%
+ # | The platform identifier to suffix to |
+@@ -43,7 +43,7 @@
+ UTILdir = $(home)/UTIL
+ SRCdir = $(home)/SRC
+ #
+-DIRS = $(BLASdir) $(LAPACKdir) $(UTILdir) $(SRCdir)
++#DIRS = $(BLASdir) $(LAPACKdir) $(UTILdir) $(SRCdir)
+ #
+ # %-------------------------------------------------------------------%
+ # | Comment out the previous line and uncomment the following |
+@@ -51,13 +51,13 @@
+ # | NOTE: ARPACK assumes the use of LAPACK version 2 codes. |
+ # %-------------------------------------------------------------------%
+ #
+-#DIRS = $(UTILdir) $(SRCdir)
++DIRS = $(UTILdir) $(SRCdir)
+ #
+ # %---------------------------------------------------%
+ # | The name of the libraries to be created/linked to |
+ # %---------------------------------------------------%
+ #
+-ARPACKLIB = $(home)/libarpack_$(PLAT).a
++ARPACKLIB = $(home)/libarpack.a
+ LAPACKLIB =
+ BLASLIB =
+ #
+@@ -112,7 +112,7 @@
+ LN = ln
+ LNFLAGS = -s
+
+-MAKE = /bin/make
++MAKE = make
+
+ RM = rm
+ RMFLAGS = -f
+--- ARPACK/UTIL/second.f.old 2008-07-08 17:38:51.759444357 +0200
++++ ARPACK/UTIL/second.f 2008-07-08 17:39:37.056301918 +0200
+@@ -21,7 +21,6 @@
+ * ..
+ * .. External Functions ..
+ REAL ETIME
+- EXTERNAL ETIME
+ * ..
+ * .. Executable Statements ..
+ *
diff --git a/community/arpack/license.txt b/community/arpack/license.txt
new file mode 100644
index 000000000..11a5aea58
--- /dev/null
+++ b/community/arpack/license.txt
@@ -0,0 +1,43 @@
+Rice BSD Software License
+Permits source and binary redistribution of the software ARPACK and
+P_ARPACK for both non-commercial and commercial use.
+
+Copyright () 2001, Rice University
+Developed by D.C. Sorensen, R.B. Lehoucq, C. Yang, and K. Maschhoff.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ * If you modify the source for these routines we ask that you
+ change the name of the routine and comment the changes made to
+ the original.
+
+ * Written notification is provided to the developers of intent to
+ use this software. Also, we ask that use of ARPACK is properly
+ cited in any resulting publications or software documentation.
+
+ * Neither the name of Rice University (RICE) nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY RICE AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RICE OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/community/arpwatch/ChangeLog b/community/arpwatch/ChangeLog
new file mode 100644
index 000000000..d22a5592c
--- /dev/null
+++ b/community/arpwatch/ChangeLog
@@ -0,0 +1,3 @@
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/arpwatch/PKGBUILD b/community/arpwatch/PKGBUILD
new file mode 100644
index 000000000..eb3859dba
--- /dev/null
+++ b/community/arpwatch/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 7443 2010-01-06 23:33:42Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=arpwatch
+pkgver=2.1a15
+pkgrel=6
+pkgdesc="arpwatch and arpsnmp network monitoring tools"
+arch=(i686 x86_64)
+url="ftp://ftp.ee.lbl.gov/"
+license=("GPL")
+depends=(libpcap)
+source=(ftp://ftp.ee.lbl.gov/$pkgname-$pkgver.tar.gz)
+md5sums=('cebfeb99c4a7c2a6cee2564770415fe7')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ sed -i 's|ARPDIR = $(prefix)/arpwatch|ARPDIR = /var/lib/arpwatch|' Makefile.in
+
+ ./configure --prefix=/usr
+ make || return 1
+ install -d -m 0755 $startdir/pkg/usr/sbin && \
+ make DESTDIR=$startdir/pkg install && \
+ install -D -m 0644 arpwatch.8 $startdir/pkg/usr/share/man/man8/arpwatch.8 && \
+ install -D -m 0644 arpsnmp.8 $startdir/pkg/usr/share/man/man8/arpsnmp.8 && \
+ install -d -m 0755 $startdir/pkg/var/lib/arpwatch && \
+ touch $startdir/pkg/var/lib/arpwatch/arp.dat
+}
diff --git a/community/ascii/PKGBUILD b/community/ascii/PKGBUILD
new file mode 100644
index 000000000..d98c31f7b
--- /dev/null
+++ b/community/ascii/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=ascii
+pkgver=3.8
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="Report character aliases and codes"
+url="http://www.catb.org/~esr/ascii/"
+depends=('glibc')
+license=('GPL2')
+source=("http://www.catb.org/~esr/ascii/$pkgname-$pkgver.tar.gz")
+md5sums=('8fb7540bf2a7a8e1fa0086708ed9b881')
+
+build() {
+ cd $srcdir/"$pkgname"-"$pkgver"
+
+ make ascii ascii.1
+}
+
+package() {
+ cd $srcdir/"$pkgname"-"$pkgver"
+ install -D -m 755 ascii "$pkgdir"/usr/bin/ascii
+ install -D -m 644 ascii.1 "$pkgdir"/usr/share/man/man1/ascii.1
+}
+
diff --git a/community/asciijump/PKGBUILD b/community/asciijump/PKGBUILD
new file mode 100644
index 000000000..3be130f09
--- /dev/null
+++ b/community/asciijump/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 21656 2010-07-16 21:29:57Z lcarlier $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=asciijump
+pkgver=1.0.2beta
+pkgrel=5
+pkgdesc="Ski jumping in ASCII"
+arch=('i686' 'x86_64')
+url="http://asciijump.prv.pl/"
+license=('GPL')
+depends=('slang' 'ctags')
+source=("http://otak.k-k.pl/asciijump/tgz/asciijump-1.0.2beta.tar.gz")
+md5sums=('199228bbfb4a16914913fe594b775a6d')
+
+build() {
+ cd ${srcdir}/asciijump-$pkgver
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/asciijump-$pkgver
+
+ make DESTDIR="$pkgdir" install
+ chmod -R 775 ${pkgdir}/usr/var/games
+ chown -R root:games ${pkgdir}/usr/var/games
+ rm -rf ${pkgdir}/usr/share/pixmaps
+ mv ${pkgdir}/usr/X11R6/share/pixmaps $startdir/pkg/usr/share/pixmaps
+ rm -rf ${pkgdir}/usr/X11R6
+}
+
diff --git a/community/aspell-ca/PKGBUILD b/community/aspell-ca/PKGBUILD
new file mode 100644
index 000000000..9a5686ef2
--- /dev/null
+++ b/community/aspell-ca/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 43272 2011-03-24 13:19:14Z andrea $
+#Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+
+pkgname=aspell-ca
+pkgver=2.1.5
+pkgrel=3
+arch=('i686' 'x86_64')
+pkgdesc="Catalan dictionary for aspell"
+depends=('aspell')
+url="http://aspell.net/"
+license=('GPL2')
+source=("ftp://ftp.gnu.org/gnu/aspell/dict/ca/aspell6-ca-$pkgver-1.tar.bz2")
+md5sums=('153d26f724866909c6faf49eecefe8b3')
+
+build() {
+ cd aspell6-ca-${pkgver}-1
+
+ ./configure
+
+ make
+}
+
+package() {
+ cd aspell6-ca-${pkgver}-1
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/aspell-cs/PKGBUILD b/community/aspell-cs/PKGBUILD
new file mode 100644
index 000000000..fa8a54422
--- /dev/null
+++ b/community/aspell-cs/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 43275 2011-03-24 13:21:51Z andrea $
+# Maintainer: Jaroslav Lichtblau <tu@dragonlord.cz>
+# Contributor: Michal Karas <largon@largon.net>
+
+pkgname=aspell-cs
+pkgver=20040614
+pkgrel=5
+pkgdesc="Czech dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('GPL')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/cs/aspell6-cs-$pkgver-1.tar.bz2)
+md5sums=('50f0c2b7b6fcfe47bb647ad8993d2fe8')
+
+build() {
+ cd aspell6-cs-$pkgver-1
+
+ ./configure
+ make
+}
+
+package() {
+ cd aspell6-cs-$pkgver-1
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/aspell-pl/PKGBUILD b/community/aspell-pl/PKGBUILD
new file mode 100644
index 000000000..0cee080a9
--- /dev/null
+++ b/community/aspell-pl/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 43278 2011-03-24 13:25:37Z andrea $
+# Maintainer: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Arkadiusz Laczynski <alaczynski@gmail.com>
+
+pkgname=aspell-pl
+pkgver=20110324
+pkgrel=1
+pkgdesc="Polish dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://www.sjp.pl/slownik/en/"
+license=('GPL' 'LGPL' 'MPL')
+depends=('aspell')
+source=(http://sjp.pl/slownik/ort/sjp-aspell6-pl-6.0_$pkgver-0.tar.bz2)
+md5sums=('5f4e91bcbcf525945679064127e263c8')
+
+build() {
+ cd "$srcdir/aspell6-pl-6.0_$pkgver-0"
+
+ ./configure
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/aspell-uk/PKGBUILD b/community/aspell-uk/PKGBUILD
new file mode 100644
index 000000000..f3252b56a
--- /dev/null
+++ b/community/aspell-uk/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 43281 2011-03-24 13:28:23Z andrea $
+# Maintainer : Roman Kyrylych <roman@archlinux.org>
+
+pkgname=aspell-uk
+pkgver=1.6.0
+_ftpver=1.4.0
+pkgrel=3
+pkgdesc="Ukrainian dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://ispell-uk.sourceforge.net/"
+license=('GPL' 'LGPL' 'MPL')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/uk/aspell6-uk-${_ftpver}-0.tar.bz2
+ http://downloads.sourceforge.net/ispell-uk/spell-uk-$pkgver.tgz)
+md5sums=('662f15381d11581758866fd7af43b4d7'
+ '4177ed3e196e6511513cf358c4a42e1a')
+
+build() {
+ # needed when using a source package from ispell-uk project
+ cd ${srcdir}/spell-uk-$pkgver
+ make
+
+ cd ${srcdir}/aspell6-uk-${_ftpver}-0
+ ./configure
+ make
+
+ # needed when using a source package from ispell-uk project
+ mv ${srcdir}/spell-uk-$pkgver/dist/aspell-uk-$pkgver/* \
+ ${srcdir}/aspell6-uk-${_ftpver}-0
+}
+
+package() {
+ cd ${srcdir}/aspell6-uk-${_ftpver}-0
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/astromenace/PKGBUILD b/community/astromenace/PKGBUILD
new file mode 100644
index 000000000..9c3e7849a
--- /dev/null
+++ b/community/astromenace/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id$
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arkham <arkham at archlinux dot us>
+# Contributor: Ivan Bobrov <ibobrik at gmail dot com>
+# Contributor: Black_Mage <vleon1 at gmail dot com>
+
+pkgname=astromenace
+pkgver=1.2.0
+pkgrel=4
+pkgdesc="Hardcore 3D space shooter with spaceship upgrade possibilities. English version"
+arch=('i686' 'x86_64')
+url="http://www.viewizard.com/astromenace/index_linux.php"
+license=('GPL3')
+depends=('sdl' 'freealut' 'libjpeg' 'libvorbis')
+makedepends=('cmake' 'mesa')
+source=(http://downloads.sourceforge.net/openastromenace/openamenace-src-$pkgver.tar.bz2
+ http://downloads.sourceforge.net/openastromenace/oamenace-data-$pkgver.tar.bz2
+ http://downloads.sourceforge.net/openastromenace/oamenace-lang-en-$pkgver.tar.bz2
+ astromenace.desktop
+ astromenace.png
+ astromenace.patch
+ astromenace.sh)
+md5sums=('3c8e7013aa64fcde7ba8a7750df51ab8'
+ 'a8ad3495f8eac419ebcf93473008484d'
+ 'f137da529da1345a0243f22fb8bf4913'
+ '1edc9367564a6c639a2b8199adf26a08'
+ '1643d876d4e21cc0c6ceddc8e7c8ceed'
+ '8d23310a2bb9c96dd150d30ab39799a1'
+ '2d4504929a620709cd058657bba335b3')
+
+build() {
+ cd $srcdir/OpenAstroMenaceSVN
+
+ # Patch build and install the engine
+ patch -Np1 -i $srcdir/$pkgname.patch
+ cmake . -DCMAKE_INSTALL_PREFIX:PATH=/usr
+ sed -i 's/`sdl-config --libs`/-lSDL -lpthread/' CMakeFiles/AstroMenace.dir/link.txt
+ make
+}
+
+package() {
+ cd $srcdir/OpenAstroMenaceSVN
+
+ # Manually install the engine and data
+ install -Dm 755 AstroMenace $pkgdir/usr/bin/astromenace_bin
+ install -Dm 644 $srcdir/gamedata.vfs $pkgdir/usr/share/astromenace/gamedata.vfs
+ install -Dm 644 $srcdir/gamelang_en.vfs $pkgdir/usr/share/astromenace/gamelang_en.vfs
+ install -d $pkgdir/usr/share/astromenace/DATA/SCRIPT
+ install -m 644 $srcdir/DATA/SCRIPT/* $pkgdir/usr/share/astromenace/DATA/SCRIPT
+
+ # Install .desktop, icon and bin
+ install -Dm 644 $srcdir/astromenace.desktop $pkgdir/usr/share/applications/astromenace.desktop
+ install -Dm 644 $srcdir/astromenace.png $pkgdir/usr/share/pixmaps/astromenace.png
+ install -Dm 755 $srcdir/astromenace.sh $pkgdir/usr/bin/astromenace
+}
diff --git a/community/astromenace/astromenace.desktop b/community/astromenace/astromenace.desktop
new file mode 100644
index 000000000..2b8d57293
--- /dev/null
+++ b/community/astromenace/astromenace.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Astromenace
+Comment=Space shooter
+Exec=astromenace
+Icon=/usr/share/pixmaps/astromenace.png
+StartupNotify=true
+Terminal=false
+Type=Application
+Categories=Application;Game;ArcadeGame;
diff --git a/community/astromenace/astromenace.patch b/community/astromenace/astromenace.patch
new file mode 100644
index 000000000..b69efd9a4
--- /dev/null
+++ b/community/astromenace/astromenace.patch
@@ -0,0 +1,12 @@
+diff -aur OpenAstroMenaceSVN.pristine/AstroMenaceSource/Core/RendererInterface/RendererInterface.h OpenAstroMenaceSVN.new/AstroMenaceSource/Core/RendererInterface/RendererInterface.h
+--- OpenAstroMenaceSVN.pristine/AstroMenaceSource/Core/RendererInterface/RendererInterface.h 2010-02-14 11:39:06.721353373 +0100
++++ OpenAstroMenaceSVN.new/AstroMenaceSource/Core/RendererInterface/RendererInterface.h 2010-02-14 11:46:47.171304764 +0100
+@@ -37,6 +37,8 @@
+ #include "../Base.h"
+ #include "../Math/Math.h"
+ #include "../Texture/Texture.h"
++#define PFNGLCLIENTACTIVETEXTUREPROC PFNGLACTIVETEXTUREPROC
++
+
+
+
diff --git a/community/astromenace/astromenace.png b/community/astromenace/astromenace.png
new file mode 100644
index 000000000..6093e9272
--- /dev/null
+++ b/community/astromenace/astromenace.png
Binary files differ
diff --git a/community/astromenace/astromenace.sh b/community/astromenace/astromenace.sh
new file mode 100644
index 000000000..02e8594df
--- /dev/null
+++ b/community/astromenace/astromenace.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+astromenace_bin --dir=/usr/share/astromenace "$@"
diff --git a/community/astyle/ChangeLog b/community/astyle/ChangeLog
new file mode 100644
index 000000000..8873d5f0e
--- /dev/null
+++ b/community/astyle/ChangeLog
@@ -0,0 +1,13 @@
+2009-02-26 Mateusz Herych <heniekk@gmail.com>
+
+ * Updated to 1.22
+
+2008-04-06 Mateusz Herych <heniekk@gmail.com>
+
+ * Changed license to LGPL
+ * Updated to 1.22
+
+2007-09-18 Vinay S Shastry <vinayshastry@gmail.com>
+
+ * PKGBUILD: depend on gcc-libs
+
diff --git a/community/astyle/PKGBUILD b/community/astyle/PKGBUILD
new file mode 100644
index 000000000..0a7385d93
--- /dev/null
+++ b/community/astyle/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 34584 2010-12-09 23:29:27Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Thomas Mader <thezema@gmail.com>
+# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=astyle
+pkgver=2.01
+pkgrel=1
+pkgdesc="A Free, Fast and Small Automatic Formatter for C, C++, C#, and Java Source Code"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/astyle/"
+license=('LGPL')
+depends=('gcc-libs')
+source=(http://downloads.sourceforge.net/sourceforge/astyle/${pkgname}_${pkgver}_linux.tar.gz)
+md5sums=('e85b31972c532373a4054842e2149b34')
+
+build() {
+ cd $srcdir/$pkgname/build/gcc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname/build/gcc
+ install -D -m755 bin/astyle $pkgdir/usr/bin/astyle
+}
diff --git a/community/asunder/PKGBUILD b/community/asunder/PKGBUILD
new file mode 100644
index 000000000..bb26a85e5
--- /dev/null
+++ b/community/asunder/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 36555 2011-01-04 17:21:48Z xyne $
+# Maintainer: Xyne <ac xunilhcra enyx, backwards>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Contributor: cs-cam - me.at.camdaniel.com
+# Contributor: Sebastien Piccand <sebcactus gmail com>
+
+pkgname=asunder
+pkgver=2.1
+pkgrel=1
+pkgdesc="a graphical CD ripper and encoder"
+arch=('i686' 'x86_64')
+url="http://littlesvr.ca/asunder/"
+license=('GPL2')
+depends=('gtk2' 'libcddb' 'cdparanoia')
+makedepends=('pkgconfig')
+optdepends=('lame: for mp3 support' 'vorbis-tools: for ogg support' \
+ 'flac: for flac support')
+source=(http://littlesvr.ca/asunder/releases/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('05419a29fd31321f0823c3f90ee1b911')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/community/atanks/PKGBUILD b/community/atanks/PKGBUILD
new file mode 100644
index 000000000..17a1c5c84
--- /dev/null
+++ b/community/atanks/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 42290 2011-03-16 10:36:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jacek Poplawski <jacekpoplawski@gmail.com>
+# Contributor: Charlie Cox <ccoxiv@yahoo.com>
+
+pkgname=atanks
+pkgver=4.8
+pkgrel=1
+pkgdesc="Atomic Tanks"
+url="http://atanks.sourceforge.net"
+license=('GPL')
+arch=('i686' 'x86_64')
+makedepends=('sed')
+depends=('allegro>=4.4.0.1' 'gcc-libs')
+source=(http://downloads.sourceforge.net/project/atanks/atanks/atanks-$pkgver/atanks-$pkgver.tar.gz)
+md5sums=('a00b709f6aec4e0e33ab0d56a6e932e7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ #debug messages fix
+ sed -i '/lines->Display_All(TRUE)/d' src/files.cpp
+ sed -i '/Scroll Offset:/d' src/files.cpp
+ sed -i '/T offset:/d' src/files.cpp
+ #
+ sed -i '1,1i#include <sys/stat.h>' src/files.cpp
+
+ make
+ make PREFIX=${pkgdir}/usr/ INSTALL="install -c" install
+
+ sed -i 's/^Name=atanks/Name=Atomic Tanks/' atanks.desktop
+ sed -i 's/^Categories=Game;/Categories=Game;StrategyGame;/' atanks.desktop
+
+ install -Dm644 atanks.desktop $pkgdir/usr/share/applications/atanks.desktop
+ install -Dm644 atanks.png $pkgdir/usr/share/pixmaps/atanks.png
+}
diff --git a/community/atop/PKGBUILD b/community/atop/PKGBUILD
new file mode 100644
index 000000000..77de470b9
--- /dev/null
+++ b/community/atop/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 38572 2011-01-28 12:11:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: John Gerritse <john.gerritse@gmail.com>
+
+pkgname=atop
+pkgver=1.26
+pkgrel=1
+pkgdesc="A system and process level monitor."
+arch=(i686 x86_64)
+url="http://www.atoptool.nl/"
+license=('GPL')
+depends=('ncurses' 'sh' 'zlib')
+source=(http://www.atoptool.nl/download/atop-$pkgver.tar.gz)
+md5sums=('9a72baf4c8f330973f1e2703f5a6c041')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+ make DESTDIR=$pkgdir INIPATH=/etc/rc.d install
+}
diff --git a/community/audex/PKGBUILD b/community/audex/PKGBUILD
new file mode 100644
index 000000000..521c7fd0e
--- /dev/null
+++ b/community/audex/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 37808 2011-01-17 23:22:59Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: mightyjaym <jmambrosino@gmail.com>
+# Contributor: moostik <mooostik_at_gmail.com>
+
+pkgname=audex
+pkgver=0.74b1
+pkgrel=1
+pkgdesc="A CDDA extraction tool with a ftp upload function for KDE"
+arch=('i686' 'x86_64')
+url="http://kde.maniatek.com/audex/"
+license=('GPL')
+depends=('kdemultimedia-kioslave' 'cdparanoia')
+makedepends=('cmake' 'automoc4')
+optdepends=('vorbis-tools: OGG encoder'
+ 'faac: MP4/M4A/AAC encoder'
+ 'flac: FLAC encoder'
+ 'lame: MP3 encoder')
+install=${pkgname}.install
+source=("http://kde.maniatek.com/audex/files/${pkgname}-${pkgver}.tar.xz")
+md5sums=('20fdf9a0f89c08f44a151b6bdaab8782')
+
+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/community/audex/audex.install b/community/audex/audex.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/audex/audex.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/community/augeas/PKGBUILD b/community/augeas/PKGBUILD
new file mode 100644
index 000000000..51cd9aa07
--- /dev/null
+++ b/community/augeas/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Thomas S Hatch <thatch45@gmail.com>
+# Contributor: Jon Nordby <jononor@gmail.com>
+
+pkgname=augeas
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="A configuration editing tool that parses config files and transforms them into a tree"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://augeas.net"
+depends=('readline')
+makedepends=('gcc' 'bison' 'flex')
+options=(!libtool)
+source=(http://augeas.net/download/$pkgname-$pkgver.tar.gz)
+md5sums=('e425bcfc46fd5b18473a4ff47c2878d3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/aumix/PKGBUILD b/community/aumix/PKGBUILD
new file mode 100644
index 000000000..bc409ec84
--- /dev/null
+++ b/community/aumix/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 42325 2011-03-16 11:08:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=aumix
+pkgver=2.9.1
+pkgrel=2
+pkgdesc="A color text mode sound mixer with GPM support"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=()
+optdepends=('gtk2: aumix'
+ 'ncurses: aumix-nox'
+ 'gpm: aumix-nox')
+replaces=('aumix-gtk')
+provides=('aumix-gtk')
+install=aumix.install
+url=(http://www.jpj.net/~trevor/aumix.html)
+source=(http://www.jpj.net/~trevor/aumix/releases/aumix-$pkgver.tar.bz2
+ aumix.desktop)
+md5sums=('34f28ae1c94fc5298e8bb2688c4b3a20'
+ 'afba8b39b8dd95d8a9d74356023de14a')
+
+build() {
+ cd $srcdir/aumix-$pkgver
+
+ msg "No X11 build"
+ ./configure --prefix=/usr --mandir=/usr/share/man --without-gtk --without-gtk1 \
+ --without-alsa --without-x
+ make
+ install -D -m0755 src/aumix $pkgdir/usr/bin/aumix-nox
+ make distclean
+
+ msg "X11+GTK2 build"
+ ./configure --prefix=/usr --mandir=/usr/share/man --without-gtk1 --without-alsa
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m0644 $srcdir/aumix.desktop $pkgdir/usr/share/applications/aumix.desktop
+}
diff --git a/community/aumix/aumix.desktop b/community/aumix/aumix.desktop
new file mode 100644
index 000000000..9bf61a7a2
--- /dev/null
+++ b/community/aumix/aumix.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=0.92
+Encoding=UTF-8
+MultipleArgs=false
+Terminal=0
+Icon=/usr/share/aumix/aumix.xpm
+Exec=/usr/bin/aumix
+Categories=Application;GTK;AudioVideo;Audio;Video;
+Type=Application
+Name=GTK sound mixer
+Name[en]=GTK sound mixer
+Name[ru]=Микшер с GTK-интерфейсом
diff --git a/community/aumix/aumix.install b/community/aumix/aumix.install
new file mode 100644
index 000000000..783d3b3a5
--- /dev/null
+++ b/community/aumix/aumix.install
@@ -0,0 +1,13 @@
+post_install() {
+ [ -x /usr/bin/update-desktop-database ] && /usr/bin/update-desktop-database > /dev/null 2>&1
+ true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove () {
+ [ -x /usr/bin/update-desktop-database ] && /usr/bin/update-desktop-database > /dev/null 2>&1
+ true
+}
diff --git a/community/autocutsel/PKGBUILD b/community/autocutsel/PKGBUILD
new file mode 100644
index 000000000..fd5e25b0c
--- /dev/null
+++ b/community/autocutsel/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 19645 2010-06-26 12:32:35Z shusmann $
+# Contributor: Tom Killian <tom@archlinux.org>
+# Contributor: Nikos Kouremenos (zeppelin) kourem at gmail dot com
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=autocutsel
+pkgver=0.9.0
+pkgrel=3
+pkgdesc="synchronizes the two copy/paste buffers mainly used by X applications"
+arch=('i686' 'x86_64')
+depends=('libxaw')
+source=(http://lepton.fr/tools/autocutsel/autocutsel-$pkgver.tar.gz)
+md5sums=('ba4a6f632cb4815ae4e5c3027c24cfc5')
+url="http://lepton.fr/tools/autocutsel/"
+license=('GPL')
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/autofs/PKGBUILD b/community/autofs/PKGBUILD
new file mode 100644
index 000000000..6f03f7db5
--- /dev/null
+++ b/community/autofs/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 41838 2011-03-09 17:53:24Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=autofs
+pkgver=5.0.5
+pkgrel=5
+pkgdesc='A kernel-based automounter for Linux.'
+arch=('i686' 'x86_64')
+url='http://freshmeat.net/projects/autofs'
+license=('GPL2')
+depends=('libldap' 'libxml2' 'heimdal')
+backup=('etc/autofs/auto.master'
+ 'etc/autofs/auto.misc'
+ 'etc/conf.d/autofs')
+options=(!makeflags)
+install='autofs.install'
+source=("http://www.kernel.org/pub/linux/daemons/${pkgname}/v5/${pkgname}-${pkgver}.tar.bz2"
+ 'autofs'
+ 'autofs.conf.d'
+ 'auto.master'
+ 'auto.misc'
+ 'heimdal.patch')
+md5sums=('a1d262cb6ebef0c2dd0fe22232fb3d5a'
+ 'e307bf6d2638e46eeb916cf42fe029b2'
+ '47f597c870410055e0fdb66103daf928'
+ 'a6cefb591e77b31b79dbb7243646c96b'
+ 'd8a15ec9186c5c0b36e5cea1e2739e8a'
+ 'efd46b6406b940cb48f7c6197790fb8e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i "s:SUBDIRS = lib daemon modules man samples:SUBDIRS = lib daemon modules man:" \
+ Makefile.rules
+ patch -Np1 -i "${srcdir}/heimdal.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc/autofs --with-mapdir=/etc/autofs --without-hesiod \
+ --enable-ignore-busy
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make INSTALLROOT="${pkgdir}" install
+
+ install -Dm0644 "${srcdir}/auto.master" "${pkgdir}/etc/autofs/auto.master"
+ install -Dm0644 "${srcdir}/auto.misc" "${pkgdir}/etc/autofs/auto.misc"
+ install -Dm0755 "${srcdir}/autofs" "${pkgdir}/etc/rc.d/autofs"
+ install -Dm0644 "${srcdir}/autofs.conf.d" "${pkgdir}/etc/conf.d/autofs"
+}
diff --git a/community/autofs/auto.master b/community/autofs/auto.master
new file mode 100644
index 000000000..be4ea73ae
--- /dev/null
+++ b/community/autofs/auto.master
@@ -0,0 +1,6 @@
+# Sample auto.master file
+# Format of this file:
+# mountpoint map options
+# For details of the format look at autofs(5).
+
+#/media /etc/autofs/auto.media
diff --git a/community/autofs/auto.misc b/community/autofs/auto.misc
new file mode 100644
index 000000000..569156626
--- /dev/null
+++ b/community/autofs/auto.misc
@@ -0,0 +1,7 @@
+# This is an automounter map and it has the following format
+# key [ -mount-options-separated-by-comma ] location
+# Details may be found in the autofs(5) manpage
+
+cdrom -fstype=iso9660,ro,nodev,nosuid :/dev/cdrom
+floppy -fstype=auto,async,nodev,nosuid,umask=000 :/dev/fl
+usbstick -fstype=auto,async,nodev,nosuid,umask=000 :/dev/sda1
diff --git a/community/autofs/autofs b/community/autofs/autofs
new file mode 100644
index 000000000..08bd3e133
--- /dev/null
+++ b/community/autofs/autofs
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+daemon_name=autofs
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/autofs ] && . /etc/conf.d/autofs
+
+if [ ! -z "$TIMEOUT" ]; then
+ daemonoptions="--timeout=$TIMEOUT $daemonoptions"
+fi
+
+PID=`cat /var/run/autofs-running 2> /dev/null`
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+ [ -z "$PID" ] && /usr/sbin/automount $daemonoptions &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+ restart)
+ stat_busy "Restarting $daemon_name daemon"
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+exit 0
diff --git a/community/autofs/autofs.conf.d b/community/autofs/autofs.conf.d
new file mode 100644
index 000000000..bc82491e7
--- /dev/null
+++ b/community/autofs/autofs.conf.d
@@ -0,0 +1,4 @@
+#localoptions='rsize=8192,wsize=8192'
+
+# e.g. --timeout=60
+daemonoptions=''
diff --git a/community/autofs/autofs.install b/community/autofs/autofs.install
new file mode 100644
index 000000000..34ae75f1e
--- /dev/null
+++ b/community/autofs/autofs.install
@@ -0,0 +1,4 @@
+post_install(){
+ echo "> In autofs5 --ghost option isn't valid. In order to start autofs you"
+ echo "> must remove that option from your /etc/conf.d/autofs."
+}
diff --git a/community/autofs/heimdal.patch b/community/autofs/heimdal.patch
new file mode 100644
index 000000000..4aa321834
--- /dev/null
+++ b/community/autofs/heimdal.patch
@@ -0,0 +1,44 @@
+--- autofs-5.0.5/modules/cyrus-sasl.c~ 2010-03-03 01:38:41.582901786 +0100
++++ autofs-5.0.5/modules/cyrus-sasl.c 2010-03-03 01:41:32.313704755 +0100
+@@ -66,6 +66,15 @@
+ #endif
+ #endif
+
++/**
++ * The type of a principal is different for MIT Krb5 and Heimdal.
++ * These macros are provided by Heimdal, and introduced here for MIT.
++ */
++#ifndef krb5_realm_length
++#define krb5_realm_length(r) ((r).length)
++#define krb5_realm_data(r) ((r).data)
++#endif
++
+ /*
+ * Once a krb5 credentials cache is setup, we need to set the KRB5CCNAME
+ * environment variable so that the library knows where to find it.
+@@ -452,11 +452,11 @@
+
+ /* setup a principal for the ticket granting service */
+ ret = krb5_build_principal_ext(ctxt->krb5ctxt, &tgs_princ,
+- krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->length,
+- krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->data,
++ krb5_realm_length(*krb5_principal_get_realm(ctxt->krb5ctxt, krb5_client_princ)),
++ krb5_realm_data(*krb5_principal_get_realm(ctxt->krb5ctxt, krb5_client_princ)),
+ strlen(KRB5_TGS_NAME), KRB5_TGS_NAME,
+- krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->length,
+- krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->data,
++ krb5_realm_length(*krb5_principal_get_realm(ctxt->krb5ctxt, krb5_client_princ)),
++ krb5_realm_data(*krb5_principal_get_realm(ctxt->krb5ctxt, krb5_client_princ)),
+ 0);
+ if (ret) {
+ error(logopt,
+--- autofs-5.0.5/modules/Makefile~ 2010-03-03 01:42:18.532868539 +0100
++++ autofs-5.0.5/modules/Makefile 2010-03-03 01:42:35.360367371 +0100
+@@ -43,7 +43,7 @@
+ ifeq ($(SASL), 1)
+ SASL_OBJ = cyrus-sasl.o
+ LDAP_FLAGS += $(SASL_FLAGS) $(XML_FLAGS) -DLDAP_THREAD_SAFE
+- LIBLDAP += $(LIBSASL) $(XML_LIBS)
++ LIBLDAP += $(LIBSASL) $(XML_LIBS) -lkrb5
+ endif
+ endif \ No newline at end of file
diff --git a/community/autossh/LICENSE b/community/autossh/LICENSE
new file mode 100644
index 000000000..df9212c49
--- /dev/null
+++ b/community/autossh/LICENSE
@@ -0,0 +1,16 @@
+Copyright (c) Carson Harding, 2002-2008.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are freely permitted.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/community/autossh/PKGBUILD b/community/autossh/PKGBUILD
new file mode 100644
index 000000000..c15c56ad8
--- /dev/null
+++ b/community/autossh/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Ian Taylor <ian at lorf dot orgs>
+
+pkgname=autossh
+pkgver=1.4b
+pkgrel=2
+pkgdesc="Automatically restart SSH sessions and tunnels"
+arch=('i686' 'x86_64')
+url="http://www.harding.motd.ca/autossh/"
+license=('custom')
+depends=('openssh')
+source=("http://www.harding.motd.ca/autossh/$pkgname-$pkgver.tgz"
+ "LICENSE")
+md5sums=('8f9aa006f6f69e912d3c2f504622d6f7'
+ '5d65ce1eff3f2c72546a8343b18d67bf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ msg "Configuring"
+ ./configure --prefix=$pkgdir/usr --sysconfdir=/etc --localstatedir=/var || return 1
+
+ msg "Building"
+ make || return 1
+
+ msg "Creating package"
+ install -D -m755 autossh $pkgdir/usr/bin/autossh || return 1
+ install -D -m644 CHANGES $pkgdir/usr/share/doc/autossh/CHANGES || return 1
+ install -D -m644 README $pkgdir/usr/share/doc/autossh/README || return 1
+ install -D -m644 autossh.host $pkgdir/usr/share/autossh/examples/autossh.host || return 1
+ install -D -m644 rscreen $pkgdir/usr/share/autossh/examples/rscreen || return 1
+ install -D -m644 autossh.1 $pkgdir/usr/share/man/man1/autossh.1 || return 1
+ install -D -m644 ${startdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+}
diff --git a/community/avant-window-navigator/PKGBUILD b/community/avant-window-navigator/PKGBUILD
new file mode 100644
index 000000000..0208571dd
--- /dev/null
+++ b/community/avant-window-navigator/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 30927 2010-10-23 16:23:21Z schuay $
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=avant-window-navigator
+pkgver=0.4.0
+pkgrel=10
+pkgdesc="Fully customisable dock-like window navigator for GNOME"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/awn"
+license=('GPL')
+# bzr needs to be in depends: see FS#21434
+depends=('libwnck' 'gconf' 'python2' 'hicolor-icon-theme' 'pyxdg' 'libgtop' \
+ 'python-feedparser' 'xdg-utils' 'libdesktop-agnostic' 'dbus-python' 'bzr')
+makedepends=('intltool' 'gnome-doc-utils' 'vala')
+install=${pkgname}.install
+options=('!libtool')
+source=(https://edge.launchpad.net/awn/0.4/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz
+ 'awn-applet-simple.patch')
+md5sums=('03654b45dd95cbb83fa7e112bd00523c'
+ 'abd1200504e6a4a8961a3fe0a4a99363')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # FS#19084
+ patch -p0 < ${srcdir}/awn-applet-simple.patch
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/usr/share
+
+ sed -i 's|${prefix}/etc|${prefix}/share|' Makefile
+
+ str='\(.*"theme_tooltip_outline_color".*\)'
+ sed -i "s|$str|#\1|" awn-settings/awnSettings.py
+
+ # python2 fix
+ sed -i 's_with ("python"_with ("python2"_' applet-activation/main.c
+ for file in $(find . -name '*.py' -print); do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install
+
+ gconf-merge-schema "$pkgdir/usr/share/gconf/awn.schemas" \
+ "$pkgdir"/usr/share/gconf/schemas/*.schemas
+
+ rm "$pkgdir"/usr/share/gconf/schemas/*.schemas
+ mv "$pkgdir"/usr/share/gconf/{,schemas/}awn.schemas
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/avant-window-navigator/avant-window-navigator.install b/community/avant-window-navigator/avant-window-navigator.install
new file mode 100644
index 000000000..d7e5d4937
--- /dev/null
+++ b/community/avant-window-navigator/avant-window-navigator.install
@@ -0,0 +1,29 @@
+pkgname=awn
+
+post_install() {
+ echo "Installing schema..."
+ gconfpkg --install ${pkgname}
+
+ echo "Updating desktop..."
+ update-desktop-database -q
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo "Removing schema..."
+ gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ echo "Updating desktop..."
+ update-desktop-database -q
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/avant-window-navigator/awn-applet-simple.patch b/community/avant-window-navigator/awn-applet-simple.patch
new file mode 100644
index 000000000..699e21f39
--- /dev/null
+++ b/community/avant-window-navigator/awn-applet-simple.patch
@@ -0,0 +1,21 @@
+--- libawn/awn-applet-simple.c 2010-02-12 18:37:38.000000000 -0600
++++ libawn/awn-applet-simple.c 2010-04-13 21:42:28.000000000 -0500
+@@ -393,16 +393,16 @@
+ GStrv states,
+ GStrv icon_names)
+ {
+- gchar *applet_name;
++ gchar *applet_name=NULL;
+
+ g_return_if_fail (AWN_IS_APPLET_SIMPLE (applet));
+- g_return_if_fail (applet_name);
+ g_return_if_fail (states);
+ g_return_if_fail (icon_names);
+
+ g_object_get (applet,
+ "canonical-name",&applet_name,
+ NULL);
++ g_return_if_fail (applet_name);
+ applet->priv->last_set_icon = ICON_THEMED_MANY;
+ awn_themed_icon_set_size (AWN_THEMED_ICON (applet->priv->icon),
+ awn_applet_get_size (AWN_APPLET (applet)));
diff --git a/community/avifile/PKGBUILD b/community/avifile/PKGBUILD
new file mode 100644
index 000000000..f468c2a5b
--- /dev/null
+++ b/community/avifile/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 20207 2010-07-03 15:40:47Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=avifile
+pkgver=0.7.45
+pkgrel=7
+pkgdesc="A library that allows you to read and write compressed AVI files"
+arch=('i686' 'x86_64')
+depends=('qt' 'sdl' 'freetype2' 'libpng' 'libjpeg' \
+ 'libvorbis' 'xvidcore' 'libxxf86dga' 'libxi' 'libxv')
+makedepends=('lame' 'qt3')
+url="http://avifile.sourceforge.net"
+license=('GPL')
+source=("http://downloads.sourceforge.net/sourceforge/avifile/$pkgname-0.7-$pkgver.tar.bz2"
+ 'gcc.patch')
+md5sums=('7da94802f120d1b69e04a13170dcd21d'
+ '588c3ce7bdebc1244f46ba56d8ef8a42')
+
+build() {
+ cd $pkgname-0.7-$pkgver
+
+ patch -Np1 <../gcc.patch
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=$pkgdir/usr/share/man \
+ --with-qt-prefix=/opt/qt \
+ --with-qt-includes=/opt/qt/include \
+ --with-qt-libraries=/opt/qt/lib \
+ --enable-oss
+
+ make
+}
+
+package() {
+ cd $pkgname-0.7-$pkgver
+
+ make prefix=$pkgdir/usr install
+
+ find $pkgdir -name '*.la' -exec rm {} \;
+}
diff --git a/community/avifile/gcc.patch b/community/avifile/gcc.patch
new file mode 100644
index 000000000..e93de24a8
--- /dev/null
+++ b/community/avifile/gcc.patch
@@ -0,0 +1,133 @@
+diff -wbBur avifile-0.7-0.7.45/avifile.pc avifile-0.7-0.7.45.my/avifile.pc
+--- avifile-0.7-0.7.45/avifile.pc 2006-03-06 12:12:26.000000000 +0300
++++ avifile-0.7-0.7.45.my/avifile.pc 2009-05-25 13:10:17.347697640 +0400
+@@ -1,4 +1,4 @@
+-prefix=/var/tmp/avi6
++prefix=/usr
+ exec_prefix=${prefix}
+ libdir=${exec_prefix}/lib
+ includedir=${prefix}/include/avifile-0.7
+diff -wbBur avifile-0.7-0.7.45/include/avm_map.h avifile-0.7-0.7.45.my/include/avm_map.h
+--- avifile-0.7-0.7.45/include/avm_map.h 2004-02-19 14:39:56.000000000 +0300
++++ avifile-0.7-0.7.45.my/include/avm_map.h 2009-05-25 13:10:21.014364635 +0400
+@@ -45,7 +45,7 @@
+
+ template <class Key1, class Value1> struct binary_tree_node
+ {
+- avm_map::pair<Key1, Value1>* entry;
++ struct pair<Key1, Value1>* entry;
+ binary_tree_node<Key1, Value1>* left;
+ Key1 minval;
+ binary_tree_node<Key1, Value1>* right;
+diff -wbBur avifile-0.7-0.7.45/include/version.h avifile-0.7-0.7.45.my/include/version.h
+--- avifile-0.7-0.7.45/include/version.h 2006-03-06 12:12:25.000000000 +0300
++++ avifile-0.7-0.7.45.my/include/version.h 2009-05-25 13:10:16.841030758 +0400
+@@ -3,5 +3,5 @@
+ #define AVIFILE_MINOR_VERSION 7
+ #define AVIFILE_PATCHLEVEL 45
+ #define AVIFILE_VERSION ((AVIFILE_MAJOR_VERSION << 16) + (AVIFILE_MINOR_VERSION << 8) + AVIFILE_PATCHLEVEL)
+-#define AVIFILE_BUILD "CVS-0.7.45-060306-10:11-4.0.3"
++#define AVIFILE_BUILD "RELEASE-0.7.45-090525-13:10-4.4.0"
+ #endif
+diff -wbBur avifile-0.7-0.7.45/lib/aviplay/aviplay.cpp avifile-0.7-0.7.45.my/lib/aviplay/aviplay.cpp
+--- avifile-0.7-0.7.45/lib/aviplay/aviplay.cpp 2005-11-05 00:56:33.000000000 +0300
++++ avifile-0.7-0.7.45.my/lib/aviplay/aviplay.cpp 2009-05-25 13:13:36.304347364 +0400
+@@ -242,7 +242,7 @@
+ //printf("VSTREAMTIME %f\n", m_pVideostream->GetTime());
+ // reading subtitles
+ avm::string fn = m_Filename;
+- char* p = strrchr(fn.c_str(), '.');
++ char* p = (char*)strrchr(fn.c_str(), '.');
+ if (p)
+ *p = 0;
+ InitSubtitles(m_Subfilename.size()
+diff -wbBur avifile-0.7-0.7.45/lib/codeckeeper.cpp avifile-0.7-0.7.45.my/lib/codeckeeper.cpp
+--- avifile-0.7-0.7.45/lib/codeckeeper.cpp 2004-03-10 16:27:38.000000000 +0300
++++ avifile-0.7-0.7.45.my/lib/codeckeeper.cpp 2009-05-25 13:15:11.971004390 +0400
+@@ -143,7 +143,7 @@
+ {
+ char plgn[100];
+ strcpy(plgn, "avm_codec_plugin_");
+- char* x = strrchr(name, '/');
++ char* x = (char*)strrchr(name, '/');
+ strncat(plgn, x + 1, 50);
+ x = strchr(plgn, '.');
+ *x = 0;
+diff -wbBur avifile-0.7-0.7.45/lib/common/Args.cpp avifile-0.7-0.7.45.my/lib/common/Args.cpp
+--- avifile-0.7-0.7.45/lib/common/Args.cpp 2003-02-06 23:39:12.000000000 +0300
++++ avifile-0.7-0.7.45.my/lib/common/Args.cpp 2009-05-25 13:14:38.562055811 +0400
+@@ -17,7 +17,7 @@
+ {
+ char* c = cp;
+ char* b;
+- while ((b = strchr(c, ':')))
++ while ((b = (char*)strchr(c, ':')))
+ {
+ *b++ = 0;
+ if (strlen(c))
+@@ -259,7 +259,7 @@
+ }
+ for (unsigned i = 0; i < arr.size(); i++)
+ {
+- char* par = strchr(arr[i], '=');
++ char* par = (char*)strchr(arr[i], '=');
+ if (par)
+ {
+ *par = 0;
+@@ -335,7 +335,7 @@
+ {
+ for (unsigned j = 1; j < arr.size(); j++)
+ {
+- char* p = strchr(arr[j].c_str(), '=');
++ char* p = (char*)strchr(arr[j].c_str(), '=');
+ int val = 0;
+ bool valid = false;
+ if (p)
+diff -wbBur avifile-0.7-0.7.45/player/playercontrol.cpp avifile-0.7-0.7.45.my/player/playercontrol.cpp
+--- avifile-0.7-0.7.45/player/playercontrol.cpp 2005-09-27 17:40:09.000000000 +0400
++++ avifile-0.7-0.7.45.my/player/playercontrol.cpp 2009-05-25 13:16:18.274330659 +0400
+@@ -764,7 +764,7 @@
+ return;
+
+ avm::string path = RS("url", ".");
+- char* cut = strrchr(path.c_str(), '/');
++ char* cut = (char*)strrchr(path.c_str(), '/');
+ if (!cut)
+ path = "./";
+ #if QT_VERSION <= 220
+diff -wbBur avifile-0.7-0.7.45/plugins/libmp3lame_audioenc/mp3encoder.cpp avifile-0.7-0.7.45.my/plugins/libmp3lame_audioenc/mp3encoder.cpp
+--- avifile-0.7-0.7.45/plugins/libmp3lame_audioenc/mp3encoder.cpp 2006-03-05 23:45:26.000000000 +0300
++++ avifile-0.7-0.7.45.my/plugins/libmp3lame_audioenc/mp3encoder.cpp 2009-05-25 13:10:21.014364635 +0400
+@@ -30,7 +30,7 @@
+ short nCodecDelay;
+ };
+ public:
+- MP3Encoder::MP3Encoder(const CodecInfo& info, const WAVEFORMATEX* format)
++ MP3Encoder(const CodecInfo& info, const WAVEFORMATEX* format)
+ :IAudioEncoder(info)
+ {
+ in_fmt=*format;
+diff -wbBur avifile-0.7-0.7.45/samples/qtvidcap/kv4lsetup.cpp avifile-0.7-0.7.45.my/samples/qtvidcap/kv4lsetup.cpp
+--- avifile-0.7-0.7.45/samples/qtvidcap/kv4lsetup.cpp 2005-03-23 18:18:21.000000000 +0300
++++ avifile-0.7-0.7.45.my/samples/qtvidcap/kv4lsetup.cpp 2009-05-25 13:10:21.014364635 +0400
+@@ -229,7 +229,7 @@
+ if (XF86DGAQueryExtension(dpy, &foo, &bar)) {
+ XF86DGAQueryDirectVideo(dpy, XDefaultScreen(dpy),&flags);
+ if (flags & XF86DGADirectPresent) {
+- XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(int*)&base,&width,&foo,&bar);
++ XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(unsigned int*)&base,&width,&foo,&bar);
+ set_bpl = width * set_bpp/8;
+ set_base = base;
+ if (verbose == 2) {
+diff -wbBur avifile-0.7-0.7.45/samples/qtvidcap/v4lxif.cpp avifile-0.7-0.7.45.my/samples/qtvidcap/v4lxif.cpp
+--- avifile-0.7-0.7.45/samples/qtvidcap/v4lxif.cpp 2005-03-23 19:16:09.000000000 +0300
++++ avifile-0.7-0.7.45.my/samples/qtvidcap/v4lxif.cpp 2009-05-25 13:10:21.014364635 +0400
+@@ -1115,7 +1115,7 @@
+ major,minor, XDGA_MAJOR_VERSION,XDGA_MINOR_VERSION);
+ have_dga= false;
+ } else {
+- XF86DGAGetVideoLL(disp, DefaultScreen(disp), (int*)&base, &width, &bank, &ram);
++ XF86DGAGetVideoLL(disp, DefaultScreen(disp), (unsigned int*)&base, &width, &bank, &ram);
+ if (!base)
+ avml(AVML_WARN,
+ "v4l1: can not allocate frame buffer base: %p\n", base);
diff --git a/community/avrdude/PKGBUILD b/community/avrdude/PKGBUILD
new file mode 100644
index 000000000..109c5fbbb
--- /dev/null
+++ b/community/avrdude/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 33920 2010-11-29 11:20:58Z allan $
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=avrdude
+pkgver=5.10
+pkgrel=2
+pkgdesc="Download/upload/manipulate the ROM and EEPROM contents of AVR microcontrollers"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/avrdude/"
+license=('GPL')
+depends=('libusb-compat' 'readline')
+source=(http://download.savannah.gnu.org/releases/avrdude/${pkgname}-${pkgver}.tar.gz)
+md5sums=('69b082683047e054348088fd63bad2ff')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --mandir=/usr/share/man --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/awn-extras-applets/PKGBUILD b/community/awn-extras-applets/PKGBUILD
new file mode 100644
index 000000000..2379fd74e
--- /dev/null
+++ b/community/awn-extras-applets/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 41460 2011-03-06 17:46:31Z jelle $
+# Contributor: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Jonathan Liu <net147@hotmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=awn-extras-applets
+pkgver=0.4.0
+pkgrel=8
+pkgdesc="A collection of applets for avant-window-navigator"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/awn-extras"
+license=('GPL2')
+depends=('avant-window-navigator' 'gnome-menus' 'libgtop' 'libnotify'
+ 'libsexy' 'vte' 'gstreamer0.10-python')
+makedepends=('intltool' 'libdesktop-agnostic' 'vala')
+optdepends=('python-notify: needed for some applets'
+ 'python-vobject: needed for some applets')
+provides=('avant-window-navigator-extras')
+install=awn-extras-applets.install
+options=('!libtool')
+source=(http://launchpad.net/awn-extras/0.4/0.4.0/+download/awn-extras-0.4.0.tar.gz \
+ awn-extras-libnotify0.7.patch)
+md5sums=('b559d68cd6ad295c961c20fcc5d9f9c0'
+ '7999955956d1d2457b4c3b50ffd3199d')
+
+build() {
+ cd ${srcdir}/${pkgname/-applets/}-${pkgver}
+ patch -Np1 -i $srcdir/awn-extras-libnotify0.7.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-pymod-checks
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname/-applets/}-${pkgver}
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install
+
+ # yes... theses guys can not even get a "#!" right
+ sed -i -e "s|#[ ]*[!]*[ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ -e "s|#[ ]*![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ $(find $pkgdir/usr/share/avant-window-navigator/applets/ -name '*.py') \
+ $pkgdir/usr/lib/python2.7/site-packages/awn/extras/awnmediaplayers.py
+
+ mkdir -p ${pkgdir}/usr/share/gconf/schemas
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/awn-extras.schemas \
+ ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+ rmdir --ignore-fail-on-non-empty -p ${pkgdir}/usr/share/locale
+ rmdir --ignore-fail-on-non-empty -p ${pkgdir}/etc/gconf/schemas
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/awn-extras-applets/aff-results.patch b/community/awn-extras-applets/aff-results.patch
new file mode 100644
index 000000000..b36a9d9f9
--- /dev/null
+++ b/community/awn-extras-applets/aff-results.patch
@@ -0,0 +1,11 @@
+--- awn-extras-applets-0.2.6.orig/src/affinity/aff-results.c 2008-02-15 03:49:53.000000000 +1100
++++ awn-extras-applets-0.2.6/src/affinity/aff-results.c 2008-03-03 17:42:07.000000000 +1100
+@@ -422,7 +422,7 @@
+ const char *name = gnome_vfs_mime_application_get_name (app);
+ const char *icon_name = gnome_vfs_mime_application_get_icon (app);
+ #elif defined(LIBAWN_USE_XFCE)
+- ThunarVfsMimeApplication *app = (ThunarVfsApplication *)a->data;
++ ThunarVfsMimeApplication *app = (ThunarVfsMimeApplication *)a->data;
+ const char *name = thunar_vfs_mime_application_get_name (app);
+ const char *icon_name = thunar_vfs_mime_handler_lookup_icon_name (THUNAR_VFS_MIME_HANDLER (app), gtk_icon_theme_get_default ());
+ #else
diff --git a/community/awn-extras-applets/awn-extras-applets.install b/community/awn-extras-applets/awn-extras-applets.install
new file mode 100644
index 000000000..93e2e13e6
--- /dev/null
+++ b/community/awn-extras-applets/awn-extras-applets.install
@@ -0,0 +1,23 @@
+post_install() {
+ usr/sbin/gconfpkg --install awn-extras
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall awn-extras
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/community/awn-extras-applets/awn-extras-libnotify0.7.patch b/community/awn-extras-applets/awn-extras-libnotify0.7.patch
new file mode 100644
index 000000000..63b282b70
--- /dev/null
+++ b/community/awn-extras-applets/awn-extras-libnotify0.7.patch
@@ -0,0 +1,20 @@
+diff -aur awn-extras-0.4.0/applets/maintained/notification-daemon/daemon.c awn-extras-0.4.0-new//applets/maintained/notification-daemon/daemon.c
+--- awn-extras-0.4.0/applets/maintained/notification-daemon/daemon.c 2010-04-09 16:26:20.000000000 -0700
++++ awn-extras-0.4.0-new//applets/maintained/notification-daemon/daemon.c 2011-03-06 09:33:33.603336393 -0800
+@@ -1487,7 +1487,15 @@
+ if (fork() == 0)
+ {
+ notify_init("notify-send");
+- notify = notify_notification_new(summary, body, icon_str, NULL);
++ #ifdef NOTIFY_CHECK_VERSION
++ #if NOTIFY_CHECK_VERSION (0, 7, 0)
++ notify = notify_notification_new(summary, body, icon_str);
++ #else
++ notify = notify_notification_new(summary, body, icon_str, NULL);
++ #endif
++ #else
++ notify = notify_notification_new(summary, body, icon_str, NULL);
++ #endif
+ notify_notification_set_category(notify, type);
+ notify_notification_set_urgency(notify, urgency);
+ notify_notification_set_timeout(notify, expire_timeout);
diff --git a/community/awn-extras-applets/weather.patch b/community/awn-extras-applets/weather.patch
new file mode 100644
index 000000000..62bfb4dbd
--- /dev/null
+++ b/community/awn-extras-applets/weather.patch
@@ -0,0 +1,11 @@
+--- src/awn-extras-applets-0.2.6/src/weather/weather.py~ 2008-05-09 02:20:39.000000000 +0200
++++ src/awn-extras-applets-0.2.6/src/weather/weather.py 2008-05-09 02:21:06.000000000 +0200
+@@ -315,7 +315,7 @@
+
+
+ def get_conditions(self):
+- url = 'http://xoap.weather.com/weather/local/' + self.location_code + '?cc=*&prod=xoap&par=1048871467&key=12daac2f3a67cb39'
++ url = 'http://xoap.weather.com/weather/local/' + self.location_code + '?cc=*&link=xoap&par=1048871467&key=12daac2f3a67cb39'
+ if self.units == "Metric":
+ url = url + '&unit=m'
+ try:
diff --git a/community/axel/PKGBUILD b/community/axel/PKGBUILD
new file mode 100644
index 000000000..eddad131c
--- /dev/null
+++ b/community/axel/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 17354 2010-05-23 20:25:08Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Roman G <drakosha@au.ru>
+
+pkgname=axel
+pkgver=2.4
+pkgrel=2
+pkgdesc="Download accelerator"
+arch=('i686' 'x86_64')
+url="http://axel.alioth.debian.org/"
+license=('GPL')
+depends=('glibc')
+source=(http://alioth.debian.org/frs/download.php/3015/$pkgname-$pkgver.tar.gz)
+md5sums=('a2a762fce0c96781965c8f9786a3d09d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/balsa/PKGBUILD b/community/balsa/PKGBUILD
new file mode 100644
index 000000000..52667428c
--- /dev/null
+++ b/community/balsa/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 41737 2011-03-08 18:04:34Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=balsa
+pkgver=2.4.9
+pkgrel=1
+pkgdesc="An e-mail client for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://pawsa.fedorapeople.org/balsa/'
+depends=('gmime' 'gtkhtml' 'libesmtp' 'libnotify' 'gpgme' 'gtksourceview2' 'gtkspell')
+makedepends=('perlxml' 'gnome-doc-utils' 'intltool' 'namcap')
+install=balsa.install
+source=(http://pawsa.fedorapeople.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('bd7ac44f0cf3117a5fdb46d17dac2b51')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-ssl \
+ --with-gpgme=gpgme-config \
+ --with-gss \
+ --with-ldap \
+ --with-gtksourceview \
+ --with-gtkspell \
+ --with-rubrica \
+ --with-sqlite \
+ --without-nm \
+ --without-gnome
+ make
+ make GTK_UPDATE_ICON_CACHE=/bin/true DESTDIR="${pkgdir}" install
+}
diff --git a/community/balsa/balsa-2.4.8-libnotify-0.7.patch b/community/balsa/balsa-2.4.8-libnotify-0.7.patch
new file mode 100644
index 000000000..0cef7f54a
--- /dev/null
+++ b/community/balsa/balsa-2.4.8-libnotify-0.7.patch
@@ -0,0 +1,51 @@
+--- libbalsa/information.c
++++ libbalsa/information.c
+@@ -27,6 +27,9 @@
+
+ #ifdef HAVE_NOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #include <gtk/gtk.h>
+ #endif
+ #include <string.h>
+@@ -122,7 +125,11 @@
+ g_free(msg);
+
+ note =
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ notify_notification_new("Balsa", escaped->str, icon_str);
++#else
+ notify_notification_new("Balsa", escaped->str, icon_str, NULL);
++#endif
+ g_string_free(escaped, TRUE);
+
+ notify_notification_set_timeout(note, 7000); /* 7 seconds */
+--- src/main-window.c
++++ src/main-window.c
+@@ -85,6 +85,12 @@
+
+ #define MAILBOX_DATA "mailbox_data"
+
++#ifdef HAVE_NOTIFY
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++#endif
++
+ enum {
+ OPEN_MAILBOX_NODE,
+ CLOSE_MAILBOX_NODE,
+@@ -3406,7 +3412,11 @@
+ } else {
+ num_total = num_new;
+ balsa_app.main_window->new_mail_note =
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ notify_notification_new("Balsa", NULL, NULL);
++#else
+ notify_notification_new("Balsa", NULL, NULL, NULL);
++#endif
+ g_object_add_weak_pointer(G_OBJECT(balsa_app.main_window->
+ new_mail_note),
+ (gpointer) & balsa_app.main_window->
diff --git a/community/balsa/balsa.install b/community/balsa/balsa.install
new file mode 100644
index 000000000..17ca8f78a
--- /dev/null
+++ b/community/balsa/balsa.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/barrage/PKGBUILD b/community/barrage/PKGBUILD
new file mode 100644
index 000000000..2afa001cd
--- /dev/null
+++ b/community/barrage/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 21744 2010-07-17 07:41:46Z lcarlier $
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=barrage
+pkgver=1.0.2
+pkgrel=4
+pkgdesc="A violent point-and-click shooting game with nice effects"
+arch=('i686' 'x86_64')
+url="http://lgames.sourceforge.net/index.php?project=Barrage"
+license=("GPL")
+depends=('sdl_mixer')
+source=(http://downloads.sourceforge.net/lgames/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5dbecef907eb27215e8cc047eae2ee90')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/bashburn/ChangeLog b/community/bashburn/ChangeLog
new file mode 100644
index 000000000..a3611d06e
--- /dev/null
+++ b/community/bashburn/ChangeLog
@@ -0,0 +1,2 @@
+2009-12-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major version 3.0.1
diff --git a/community/bashburn/PKGBUILD b/community/bashburn/PKGBUILD
new file mode 100644
index 000000000..5bed7de28
--- /dev/null
+++ b/community/bashburn/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 7017 2009-12-29 20:22:18Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Andreas Wagner <A.Wagner@stud.uni-frankfurt.de>
+
+pkgname=bashburn
+pkgver=3.0.1
+pkgrel=1
+pkgdesc="A cd burning shell script"
+arch=('i686' 'x86_64')
+url="http://bashburn.dose.se/"
+license=('GPL2')
+depends=('bash' 'cdrdao' 'cdrkit' 'eject')
+optdepends=('dvd+rw-tools: support for burning DVDs')
+source=(BashBurn-${pkgver}.tar.gz::"http://bashburn.dose.se/index.php?s=file_download&id=18")
+md5sums=('debac9fe5ae2b116b01e0ff774870a7f')
+
+build() {
+ cd ${srcdir}/${pkgver}
+
+# let it install in the correct location
+ sed -i 's|bblib=${lib}/lib|bblib=${lib}|' Install.sh || return 1
+
+# install
+ ./Install.sh --prefix=${pkgdir}/usr || return 1
+
+# fix executable
+ sed -i 's|'$pkgdir'||' ${pkgdir}/usr/bin/bashburn || return 1
+
+# remove useless docs (changelog and such)
+ rm -rf ${pkgdir}/usr/lib/Bashburn/docs || return 1
+}
diff --git a/community/bbpager/02_gcc43.dpatch b/community/bbpager/02_gcc43.dpatch
new file mode 100644
index 000000000..18b8a8c3d
--- /dev/null
+++ b/community/bbpager/02_gcc43.dpatch
@@ -0,0 +1,40 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 02_gcc43.dpatch by Kevin Coyner <kcoyner@debian.org>
+##
+## DP: patch to fix missing #include statement for GCC 4.3
+## DP: see Debian bug #456071 and #474811
+
+@DPATCH@
+diff -urNad bbpager-0.4.7~/src/Baseresource.cxx bbpager-0.4.7/src/Baseresource.cxx
+--- bbpager-0.4.7~/src/Baseresource.cxx 2008-03-28 06:55:16.000000000 -0400
++++ bbpager-0.4.7/src/Baseresource.cxx 2008-04-09 21:58:03.000000000 -0400
+@@ -20,6 +20,7 @@
+ //
+
+ #include <string>
++#include <cstring>
+ #include "Baseresource.h"
+ #include <stdio.h>
+ #include "Menu.hh"
+diff -urNad bbpager-0.4.7~/src/main.cxx bbpager-0.4.7/src/main.cxx
+--- bbpager-0.4.7~/src/main.cxx 2008-03-28 06:55:16.000000000 -0400
++++ bbpager-0.4.7/src/main.cxx 2008-04-09 21:58:03.000000000 -0400
+@@ -25,6 +25,7 @@
+
+ #include <stdio.h>
+ #include <string>
++#include <cstring>
+ #include <iostream>
+
+
+diff -urNad bbpager-0.4.7~/src/resource.cxx bbpager-0.4.7/src/resource.cxx
+--- bbpager-0.4.7~/src/resource.cxx 2007-03-11 17:47:07.000000000 -0400
++++ bbpager-0.4.7/src/resource.cxx 2008-04-09 21:58:39.000000000 -0400
+@@ -19,6 +19,7 @@
+ // (See the included file COPYING / GPL-2.0)
+ //
+
++#include <cstring>
+ #include "resource.h"
+ #include "blackboxstyle.h"
+
diff --git a/community/bbpager/PKGBUILD b/community/bbpager/PKGBUILD
new file mode 100644
index 000000000..fa059de30
--- /dev/null
+++ b/community/bbpager/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 21749 2010-07-17 08:54:37Z lcarlier $
+# Maintainer: Thayer Williams <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=bbpager
+pkgver=0.4.7
+pkgrel=3
+pkgdesc="A dockable pager for Blackbox and other window managers"
+arch=(i686 x86_64)
+url="http://bbtools.sourceforge.net/download.php?file=6"
+license=("GPL")
+depends=('gcc-libs' 'libxft' 'libxext')
+makedepends=('gcc' 'blackbox')
+source=(http://downloads.sourceforge.net/bbtools/$pkgname-$pkgver.tar.gz \
+ 02_gcc43.dpatch \
+ fix-shm-linking-ugly.diff)
+md5sums=('4eaa91a4d66130af2f7a09c25f917386'
+ 'e985ef893f2080b3b2d47f900f861352'
+ '6e0b3915ff2f61ac3bab7434c93f37b3')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np1 -i ../02_gcc43.dpatch
+ patch -Np1 -i ../fix-shm-linking-ugly.diff
+ autoreconf
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make prefix="$pkgdir/usr" install
+}
diff --git a/community/bbpager/fix-shm-linking-ugly.diff b/community/bbpager/fix-shm-linking-ugly.diff
new file mode 100644
index 000000000..630218af7
--- /dev/null
+++ b/community/bbpager/fix-shm-linking-ugly.diff
@@ -0,0 +1,12 @@
+diff -U 3 -d -r -N -- bbpager-0.4.7/configure.ac bbpager-0.4.7b/configure.ac
+--- bbpager-0.4.7/configure.ac 2008-01-14 18:03:50.000000000 +0100
++++ bbpager-0.4.7b/configure.ac 2010-07-17 10:36:04.042040059 +0200
+@@ -68,7 +68,7 @@
+ dnl pkgconfig checks for blackbox library
+ PKG_CHECK_MODULES(LIBBT, libbt)
+ CXXFLAGS="$CXXFLAGS $LIBBT_CFLAGS"
+-LIBS="$LIBS $LIBBT_LIBS"
++LIBS="$LIBS $LIBBT_LIBS -lXext"
+
+ dnl generate the config header
+ AM_CONFIG_HEADER(config.h)
diff --git a/community/bbrun/PKGBUILD b/community/bbrun/PKGBUILD
new file mode 100644
index 000000000..728a36c9c
--- /dev/null
+++ b/community/bbrun/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 8813 2010-01-21 15:59:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sven Kauber <celeon@gmail.com>
+
+pkgname=bbrun
+pkgver=1.6
+pkgrel=3
+pkgdesc="A run - component for blackbox window manager"
+arch=(i686 x86_64)
+url="http://www.darkops.net/bbrun/"
+license=('GPL')
+depends=('gtk2' 'libxpm')
+source=(http://www.darkops.net/bbrun/$pkgname-$pkgver.tar.gz)
+md5sums=('820960e3d52ddf2d5cf7e4ba51821bfd')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver/$pkgname
+ make || return 1
+ install -Dm755 bbrun $startdir/pkg/usr/bin/bbrun
+}
diff --git a/community/bchunk/PKGBUILD b/community/bchunk/PKGBUILD
new file mode 100644
index 000000000..c6d286b29
--- /dev/null
+++ b/community/bchunk/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Markus Meissner <markus@meissna.de>
+
+pkgname=bchunk
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="A Tool to Convert *.raw *.bin files to an ISO file"
+url="http://hes.iki.fi/bchunk/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc')
+source=(http://hes.iki.fi/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('6a613da3f34f9a303f202d2e9731d231')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ /bin/mkdir -p $pkgdir/usr/bin $pkgdir/usr/share/man/man1
+ /usr/bin/make || return 1
+ /usr/bin/make PREFIX=$pkgdir/usr MAN_DIR=$pkgdir/usr/share/man install
+ /bin/chown root.root $pkgdir/usr/share/man/man1/bchunk.1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/community/beaver/PKGBUILD b/community/beaver/PKGBUILD
new file mode 100644
index 000000000..61c35656b
--- /dev/null
+++ b/community/beaver/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Tim Yang <creslin@gmx.com>
+# Contributor: Andrew Krawchyk <krawch_a@denison.edu>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Aurelien Foret <orelien@chez.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=beaver
+pkgver=0.4.1
+pkgrel=1
+pkgdesc='Beaver is an Early AdVanced EditoR.'
+arch=('i686' 'x86_64')
+url='http://beaver-editor.sourceforge.net/'
+license=('GPL2')
+depends=('gtk2>=2.0.0' 'hicolor-icon-theme')
+makedepends=('intltool')
+install=${pkgname}.install
+options=('!libtool')
+source=("http://sourceforge.net/projects/beaver-editor/files/${pkgver:0:3}/beaver-${pkgver}.tar.bz2")
+md5sums=('0cb1bf7350e7399c85a42d6672907d64')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/beaver/beaver.install b/community/beaver/beaver.install
new file mode 100644
index 000000000..81ed4b93a
--- /dev/null
+++ b/community/beaver/beaver.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+
diff --git a/community/beye/PKGBUILD b/community/beye/PKGBUILD
new file mode 100644
index 000000000..f9515d303
--- /dev/null
+++ b/community/beye/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 6531 2009-12-15 08:58:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=beye
+pkgver=6.1.0
+_lver=610
+pkgrel=1
+pkgdesc="Binary viewer"
+arch=(i686 x86_64)
+license=('GPL')
+depends=(slang gpm)
+replaces=(biew)
+url="http://beye.sourceforge.net/"
+options=(zipman)
+source=(http://downloads.sourceforge.net/project/beye/biew/$pkgver/biew-${_lver}-src.tar.bz2)
+md5sums=('1b6477defaa61b8ca0f2ae1254978e94')
+
+build() {
+ cd $startdir/src/biew-${_lver}
+
+ CFLAGS="$CFLAGS -mmmx -msse" ./configure --prefix=/usr
+
+ make || return 1
+
+ sed -i "s|PREFIX=/usr|PREFIX=$startdir/pkg/usr|" config.mak
+ sed -i "s|DATADIR=/usr/share/biew|DATADIR=$startdir/pkg/usr/share/biew|" config.mak
+ sed -i "s|LIBDIR=/usr/lib/biew|LIBDIR=$startdir/pkg/usr/lib/biew|" config.mak
+
+ patch makefile <<EOF
+266,267c266,266
+< \$(INSTALL) -D -c -m 644 bin_rc/xlt/* \$(DATADIR)/xlt
+< \$(INSTALL) -D -c -m 644 bin_rc/xlt/russian/* \$(DATADIR)/xlt/russian
+---
+> cp -r bin_rc/xlt/* \${DATADIR}/xlt
+EOF
+
+ make prefix=$startdir/pkg/usr install || return 1
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/bin2iso/PKGBUILD b/community/bin2iso/PKGBUILD
new file mode 100644
index 000000000..8c2e2b7a9
--- /dev/null
+++ b/community/bin2iso/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 21845 2010-07-17 17:50:15Z dgriffiths $
+# Contributer: Benjamin Andresen <benny@klapmuetz.org>
+# Contributor: Thomas Baechler <thomas.baechler@rwth-aachen.de>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=bin2iso
+pkgver=1.9b
+_dlver=${pkgver/./}
+pkgrel=2
+pkgdesc="bin2iso converts RAW format (.bin/.cue) files to ISO/WAV format"
+arch=('i686' 'x86_64')
+url="http://users.eastlink.ca/~doiron/bin2iso/"
+license=('GPL')
+depends=('glibc')
+source=(http://users.eastlink.ca/~doiron/${pkgname}/linux/${pkgname}${_dlver}_linux.c)
+md5sums=('01dab72496175a772bcf6e08c854d440')
+
+build() {
+ /bin/true
+}
+
+package() {
+ cd ${srcdir}
+ [ -z "$CC" ] && CC=gcc
+ $CC $CFLAGS -Wall -o ${pkgname} ${pkgname}${_dlver}_linux.c || return 1
+ install -D -m 755 ${pkgname} ${pkgdir}/usr/bin/${pkgname}
+}
diff --git a/community/bind-geodns/127.0.0.zone b/community/bind-geodns/127.0.0.zone
new file mode 100644
index 000000000..509c311f6
--- /dev/null
+++ b/community/bind-geodns/127.0.0.zone
@@ -0,0 +1,11 @@
+$ORIGIN 0.0.127.in-addr.arpa.
+
+@ 1D IN SOA localhost. root.localhost. (
+ 42 ; serial (yyyymmdd##)
+ 3H ; refresh
+ 15M ; retry
+ 1W ; expiry
+ 1D ) ; minimum ttl
+
+ 1D IN NS localhost.
+1 1D IN PTR localhost.
diff --git a/community/bind-geodns/PKGBUILD b/community/bind-geodns/PKGBUILD
new file mode 100644
index 000000000..176e1b84e
--- /dev/null
+++ b/community/bind-geodns/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 44183 2011-04-04 13:06:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=bind-geodns
+pkgver=9.4.1
+_pkgver=9.4.1-P1
+pkgrel=4
+pkgdesc="bind named server with geoip patch can return ip depending on requester location"
+arch=(i686 x86_64)
+url="http://www.caraytech.com/geodns/"
+license=('custom:ISC')
+backup=(etc/named.conf etc/logrotate.d/named etc/conf.d/named etc/rndc.key)
+depends=('openssl' 'geoip')
+provides=('dns-server' 'bind' 'dnsutils')
+conflicts=('bind' 'dnsutils')
+options=('!libtool')
+install=bind.install
+source=(ftp://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz
+ bind.so_bsdcompat.diff \
+ named.conf \
+ localhost.zone \
+ 127.0.0.zone
+ named \
+ root.hint \
+ named.logrotate \
+ named.conf.d \
+ http://www.caraytech.com/geodns/bind-9.4.1-geodns-patch.tar.gz)
+md5sums=('44e0514e6105ddaa235394045d9aeb0c'
+ '447d58721cfee0e1e377b46f7d50b327'
+ 'f26d015142fa0a8226b42bbf9d490aa4'
+ 'ab5beef0b41eb6376c7f1f4ee233172b'
+ 'bdbdfe4990b0903984306dd14f98b951'
+ '94f8ae2b337a4207fda88cb64f79f302'
+ '8c212c0260d708f15f75d3adc71f0149'
+ '91b3463a181561deb845acc122713a2a'
+ '475fde63600d7d95980de991f02d6b6d'
+ 'd3d515bdef525f9a31787b36a105e690')
+
+build() {
+ export MAKEFLAGS="-j1"
+ cd $srcdir/bind-${_pkgver}
+ patch -Np0 -i $srcdir/bind.so_bsdcompat.diff
+ patch -Np1 -i $srcdir/bind-9.4.1-geodns-patch/patch.diff
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --with-libtool --enable-shared --disable-threads \
+ --with-openssl=yes --disable-linux-caps --without-libxml2
+ make LDFLAGS=-lGeoIP
+ make DESTDIR=$pkgdir install
+ install -D -m755 ../named $pkgdir/etc/rc.d/named
+ install -D -m640 ../named.conf $pkgdir/etc/named.conf
+ install -D -m600 ../127.0.0.zone $pkgdir/var/named/127.0.0.zone
+ install -D -m600 ../localhost.zone $pkgdir/var/named/localhost.zone
+
+ #grabbed from ftp://ftp.rs.internic.net/domain/named.root
+ install -D -m600 ../root.hint $pkgdir/var/named/root.hint
+ install -D -m600 ../named.logrotate $pkgdir/etc/logrotate.d/named
+ install -D -m644 ../named.conf.d $pkgdir/etc/conf.d/named
+ install -D -m644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+ # adjust ownerships (our named user will be uid/gid 40/40)
+ chmod 700 $pkgdir/var/named
+ chown root:40 $pkgdir/etc/named.conf
+ chown -R 40:40 $pkgdir/var/named
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/bind-geodns/bind.install b/community/bind-geodns/bind.install
new file mode 100644
index 000000000..39ae9f202
--- /dev/null
+++ b/community/bind-geodns/bind.install
@@ -0,0 +1,28 @@
+post_install() {
+ getent group named >/dev/null || usr/sbin/groupadd -g 40 named
+ getent passwd named >/dev/null || usr/sbin/useradd -u 40 -c "BIND DNS Server" -g named -d /var/named -s /bin/false named
+ usr/bin/passwd -l named &>/dev/null
+
+ [ -f var/log/named.log ] || : >var/log/named.log
+ chown named.named var/log/named.log
+ # create an rndc.key if it doesn't already exist
+ if [ ! -s etc/rndc.key ]; then
+ usr/sbin/rndc-confgen -b 256 | head -n 5 >>etc/rndc.key
+ chown root.named etc/rndc.key
+ chmod 640 etc/rndc.key
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+ # old versions of this package didn't have a named user
+ chown -R named:named var/named
+ # old versions of this package didn't set permissions correct
+ chown root:named etc/named.conf
+ chmod 640 etc/named.conf
+}
+
+pre_remove() {
+ usr/sbin/userdel named &>/dev/null
+ usr/sbin/groupdel named &>/dev/null
+}
diff --git a/community/bind-geodns/bind.so_bsdcompat.diff b/community/bind-geodns/bind.so_bsdcompat.diff
new file mode 100644
index 000000000..5d78031b7
--- /dev/null
+++ b/community/bind-geodns/bind.so_bsdcompat.diff
@@ -0,0 +1,11 @@
+--- ./lib/isc/unix/socket.c.orig 2005-11-03 17:08:42.000000000 -0600
++++ ./lib/isc/unix/socket.c 2006-02-18 13:09:15.000000000 -0600
+@@ -245,6 +245,8 @@
+
+ #define SOCK_DEAD(s) ((s)->references == 0)
+
++#undef SO_BSDCOMPAT
++
+ static void
+ manager_log(isc_socketmgr_t *sockmgr,
+ isc_logcategory_t *category, isc_logmodule_t *module, int level,
diff --git a/community/bind-geodns/localhost.zone b/community/bind-geodns/localhost.zone
new file mode 100644
index 000000000..e3ff9641c
--- /dev/null
+++ b/community/bind-geodns/localhost.zone
@@ -0,0 +1,10 @@
+$ORIGIN localhost.
+@ 1D IN SOA @ root (
+ 42 ; serial (yyyymmdd##)
+ 3H ; refresh
+ 15M ; retry
+ 1W ; expiry
+ 1D ) ; minimum ttl
+
+ 1D IN NS @
+ 1D IN A 127.0.0.1
diff --git a/community/bind-geodns/named b/community/bind-geodns/named
new file mode 100755
index 000000000..f250907b9
--- /dev/null
+++ b/community/bind-geodns/named
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+NAMED_ARGS=
+[ -f /etc/conf.d/named ] && . /etc/conf.d/named
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/named`
+case "$1" in
+ start)
+ stat_busy "Starting DNS"
+
+ [ -d /var/run/named ] || { mkdir -p /var/run/named; chown 40:40 /var/run/named; }
+ [ -z "$PID" ] && /usr/sbin/named ${NAMED_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon named
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DNS"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon named
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/bind-geodns/named.conf b/community/bind-geodns/named.conf
new file mode 100644
index 000000000..862134326
--- /dev/null
+++ b/community/bind-geodns/named.conf
@@ -0,0 +1,58 @@
+//
+// /etc/named.conf
+//
+
+options {
+ directory "/var/named";
+ pid-file "/var/run/named/named.pid";
+ auth-nxdomain yes;
+ datasize default;
+ allow-recursion { 127.0.0.1; };
+// Uncomment these to enable IPv6 connections support
+// IPv4 will still work
+// listen-on { none; };
+// listen-on-v6 { any; };
+};
+
+zone "localhost" IN {
+ type master;
+ file "localhost.zone";
+ allow-update { none; };
+ allow-transfer { any; };
+};
+
+zone "0.0.127.in-addr.arpa" IN {
+ type master;
+ file "127.0.0.zone";
+ allow-update { none; };
+ allow-transfer { any; };
+};
+
+zone "." IN {
+ type hint;
+ file "root.hint";
+};
+
+//zone "example.org" IN {
+// type slave;
+// file "example.zone";
+// masters {
+// 192.168.1.100;
+// };
+// allow-query { any; };
+// allow-transfer { any; };
+//};
+
+logging {
+ channel xfer-log {
+ file "/var/log/named.log";
+ print-category yes;
+ print-severity yes;
+ print-time yes;
+ severity info;
+ };
+ category xfer-in { xfer-log; };
+ category xfer-out { xfer-log; };
+ category notify { xfer-log; };
+};
+
diff --git a/community/bind-geodns/named.conf.d b/community/bind-geodns/named.conf.d
new file mode 100644
index 000000000..aecbd2307
--- /dev/null
+++ b/community/bind-geodns/named.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to BIND
+#
+NAMED_ARGS="-u named"
diff --git a/community/bind-geodns/named.logrotate b/community/bind-geodns/named.logrotate
new file mode 100644
index 000000000..ef1a2d032
--- /dev/null
+++ b/community/bind-geodns/named.logrotate
@@ -0,0 +1,6 @@
+/var/log/named.log {
+ missingok
+ postrotate
+ /bin/kill -HUP `cat /var/run/named/named.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/community/bind-geodns/root.hint b/community/bind-geodns/root.hint
new file mode 100644
index 000000000..4ed4c0b3a
--- /dev/null
+++ b/community/bind-geodns/root.hint
@@ -0,0 +1,80 @@
+; This file holds the information on root name servers needed to
+; initialize cache of Internet domain name servers
+; (e.g. reference this file in the "cache . <file>"
+; configuration file of BIND domain name servers).
+;
+; This file is made available by InterNIC
+; under anonymous FTP as
+; file /domain/named.root
+; on server FTP.INTERNIC.NET
+; -OR- RS.INTERNIC.NET
+;
+; last update: Nov 01, 2007
+; related version of root zone: 2007110100
+;
+;
+; formerly NS.INTERNIC.NET
+;
+. 3600000 IN NS A.ROOT-SERVERS.NET.
+A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
+;
+; formerly NS1.ISI.EDU
+;
+. 3600000 NS B.ROOT-SERVERS.NET.
+B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
+;
+; formerly C.PSI.NET
+;
+. 3600000 NS C.ROOT-SERVERS.NET.
+C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
+;
+; formerly TERP.UMD.EDU
+;
+. 3600000 NS D.ROOT-SERVERS.NET.
+D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
+;
+; formerly NS.NASA.GOV
+;
+. 3600000 NS E.ROOT-SERVERS.NET.
+E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
+;
+; formerly NS.ISC.ORG
+;
+. 3600000 NS F.ROOT-SERVERS.NET.
+F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
+;
+; formerly NS.NIC.DDN.MIL
+;
+. 3600000 NS G.ROOT-SERVERS.NET.
+G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
+;
+; formerly AOS.ARL.ARMY.MIL
+;
+. 3600000 NS H.ROOT-SERVERS.NET.
+H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
+;
+; formerly NIC.NORDU.NET
+;
+. 3600000 NS I.ROOT-SERVERS.NET.
+I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
+;
+; operated by VeriSign, Inc.
+;
+. 3600000 NS J.ROOT-SERVERS.NET.
+J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
+;
+; operated by RIPE NCC
+;
+. 3600000 NS K.ROOT-SERVERS.NET.
+K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
+;
+; operated by ICANN
+;
+. 3600000 NS L.ROOT-SERVERS.NET.
+L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
+;
+; operated by WIDE
+;
+. 3600000 NS M.ROOT-SERVERS.NET.
+M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
+; End of File
diff --git a/community/binutils-avr/PKGBUILD b/community/binutils-avr/PKGBUILD
new file mode 100644
index 000000000..6976cd203
--- /dev/null
+++ b/community/binutils-avr/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 37177 2011-01-12 01:51:26Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: danst0 <danst0@west.de>
+
+pkgname=binutils-avr
+pkgver=2.21
+pkgrel=1
+pkgdesc="A set of programs to assemble and manipulate binary and object files for the avr architecture"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+depends=('glibc>=2.12.1-5' 'zlib')
+options=('!libtool' '!distcc' '!ccache')
+source=(http://ftp.gnu.org/gnu/${pkgname/-avr}/${pkgname/-avr}-${pkgver}.tar.bz2)
+md5sums=('c84c5acc9d266f1a7044b51c85a823f5')
+
+build() {
+ cd ${srcdir}/${pkgname/-avr}-${pkgver}
+
+ mkdir build
+ cd build
+
+ CC="gcc -L$(pwd)/bfd/.libs/"
+ if [ "${CARCH}" = "x86_64" ]; then
+ ../configure --build=$(../config.guess) \
+ --disable-multilib \
+ --disable-nls \
+ --enable-64-bit-bfd \
+ --enable-install-libbfd \
+ --includedir=/usr/$(../config.guess)/include \
+ --infodir=/usr/share/info \
+ --libdir=/usr/lib \
+ --mandir=/usr/share/man \
+ --prefix=/usr \
+ --target=avr
+ else
+ ../configure --build=$(../config.guess) \
+ --disable-nls \
+ --enable-install-libbfd \
+ --includedir=/usr/$(../config.guess)/include \
+ --infodir=/usr/share/info \
+ --libdir=/usr/lib \
+ --mandir=/usr/share/man \
+ --prefix=/usr \
+ --target=avr
+ fi
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=/usr
+}
+
+package() {
+ cd ${srcdir}/${pkgname/-avr}-${pkgver}
+
+ cd build
+ make DESTDIR=${pkgdir} tooldir=/usr install
+
+ rm -f ${pkgdir}/usr/lib/libiberty.a
+
+ for bin in addr2line ar as c++filt gprof ld nm objcopy objdump ranlib readelf size strings strip ; do
+ rm -f ${pkgdir}/usr/bin/${bin} || return 1
+ done
+
+ for info in as bfd binutils configure gprof ld standards; do
+ mv ${pkgdir}/usr/share/info/${info}.info ${pkgdir}/usr/share/info/avr-${info}.info
+ done
+}
+
diff --git a/community/blackbox/PKGBUILD b/community/blackbox/PKGBUILD
new file mode 100644
index 000000000..af1ff72d1
--- /dev/null
+++ b/community/blackbox/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 7982 2010-01-13 18:45:53Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: durbatuluk <dvdscripter@gmail.org>
+# Contributor: Steve Ponsford <sp4d@lavabit.com>
+
+pkgname=blackbox
+pkgver=0.70.1
+pkgrel=8
+pkgdesc="A window manager for X11"
+arch=('i686' 'x86_64')
+depends=('libxft' 'libxext' 'xorg-server')
+license=('MIT')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/blackboxwm/$pkgname-$pkgver.tar.gz
+ gcc4.3.patch bbdock.patch bsetbg-feh.patch)
+url="http://blackboxwm.sourceforge.net/"
+md5sums=('2d173b95ca5e64ef478c6a5d2deee9df'
+ 'bc7a1335d77cdeb6f85cba4d01e68e63'
+ '69c5a5e981b087b2d8267cab996b48dd'
+ 'e7fb0d5bfd95820c0194ec73df66dadc')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ patch -Np1 -i ../gcc4.3.patch || return 1
+ patch -Np0 -i ../bbdock.patch || return 1
+ patch -Np0 -i ../bsetbg-feh.patch || return 1
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+
+ install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/blackbox/bbdock.patch b/community/blackbox/bbdock.patch
new file mode 100644
index 000000000..709b6cfe1
--- /dev/null
+++ b/community/blackbox/bbdock.patch
@@ -0,0 +1,16 @@
+--- src/Slit.cc 2005-01-04 05:58:33.000000000 -0700
++++ /root/tmp/Slit.cc 2007-12-29 11:13:09.000000000 -0700
+@@ -248,6 +248,13 @@
+ bt::PixmapCache::find(screen->screenNumber(), texture,
+ frame.rect.width(), frame.rect.height(),
+ frame.pixmap);
++/*** START: BBDOCK PATCH FOR DOCK APPS THAT USE ParentRelative **************/
++ if ((texture.texture() & bt::Texture::Gradient) && frame.pixmap)
++ XSetWindowBackgroundPixmap(display, frame.window, frame.pixmap);
++ else if ((texture.texture() & bt::Texture::Solid))
++ XSetWindowBackground(display, frame.window,
++ texture.color1().pixel(screen->screenNumber()));
++/*** STOP: BBDOCK PATCH FOR DOCK APPS THAT USE ParentRelative ***************/
+ XClearArea(display, frame.window, 0, 0,
+ frame.rect.width(), frame.rect.height(), True);
+
diff --git a/community/blackbox/bsetbg-feh.patch b/community/blackbox/bsetbg-feh.patch
new file mode 100644
index 000000000..17a612ff0
--- /dev/null
+++ b/community/blackbox/bsetbg-feh.patch
@@ -0,0 +1,23 @@
+--- util/bsetbg.orig 2008-03-26 21:17:04.000000000 -0700
++++ util/bsetbg 2008-03-26 21:21:57.000000000 -0700
+@@ -22,7 +22,7 @@
+
+ PATH=$PATH:/usr/bin:/usr/local/bin:/usr/X11R6/bin
+
+-img_apps="display xli xsetbg Esetroot qiv wmsetbg xv"
++img_apps="display xli xsetbg Esetroot qiv wmsetbg xv feh"
+
+ display_full_cmd="display -geometry 800x600 -window root"
+ display_tile_cmd="display -window root"
+@@ -59,6 +59,11 @@
+ xsetbg_center_cmd="xsetbg -center"
+ xsetbg_default_cmd="$xsetbg_center_cmd"
+
++feh_full_cmd="feh --bg-scale"
++feh_tile_cmd="feh --bg-tile"
++feh_center_cmd="feh --bg-center"
++feh_default_cmd="$feh_center_cmd"
++
+ ##################################
+
+ me=`basename $0`
diff --git a/community/blackbox/gcc4.3.patch b/community/blackbox/gcc4.3.patch
new file mode 100644
index 000000000..40a9dcdef
--- /dev/null
+++ b/community/blackbox/gcc4.3.patch
@@ -0,0 +1,111 @@
+diff -Nur blackbox-0.70.1/lib/Image.cc blackbox-0.70.1-new/lib/Image.cc
+--- blackbox-0.70.1/lib/Image.cc 2005-04-08 08:41:09.000000000 -0700
++++ blackbox-0.70.1-new/lib/Image.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -45,6 +45,8 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+
++#include <cstring>
++
+ // #define COLORTABLE_DEBUG
+ // #define MITSHM_DEBUG
+
+diff -Nur blackbox-0.70.1/lib/Resource.cc blackbox-0.70.1-new/lib/Resource.cc
+--- blackbox-0.70.1/lib/Resource.cc 2005-04-06 14:16:50.000000000 -0700
++++ blackbox-0.70.1-new/lib/Resource.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -30,6 +30,8 @@
+
+ #include <stdio.h>
+
++#include <cstring>
++
+
+ bt::Resource::Resource(void)
+ : db(NULL)
+diff -Nur blackbox-0.70.1/lib/XDG.cc blackbox-0.70.1-new/lib/XDG.cc
+--- blackbox-0.70.1/lib/XDG.cc 2005-04-06 07:04:38.000000000 -0700
++++ blackbox-0.70.1-new/lib/XDG.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -26,7 +26,7 @@
+ #include "XDG.hh"
+
+ #include <stdlib.h>
+-
++#include <algorithm>
+
+ // make sure directory names end with a slash
+ static std::string terminateDir(const std::string &string)
+diff -Nur blackbox-0.70.1/src/BlackboxResource.cc blackbox-0.70.1-new/src/BlackboxResource.cc
+--- blackbox-0.70.1/src/BlackboxResource.cc 2005-10-18 00:34:46.000000000 -0700
++++ blackbox-0.70.1-new/src/BlackboxResource.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -33,6 +33,8 @@
+ #include <X11/Xutil.h>
+ #include <X11/cursorfont.h>
+
++#include <cstring>
++
+
+ BlackboxResource::BlackboxResource(const std::string& rc): rc_file(rc) {
+ screen_resources = 0;
+diff -Nur blackbox-0.70.1/src/Screen.cc blackbox-0.70.1-new/src/Screen.cc
+--- blackbox-0.70.1/src/Screen.cc 2005-10-18 01:07:22.000000000 -0700
++++ blackbox-0.70.1-new/src/Screen.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -48,6 +48,8 @@
+ #include <ctype.h>
+ #include <dirent.h>
+
++#include <cstring>
++
+
+ static bool running = true;
+ static int anotherWMRunning(Display *, XErrorEvent *) {
+diff -Nur blackbox-0.70.1/src/ScreenResource.cc blackbox-0.70.1-new/src/ScreenResource.cc
+--- blackbox-0.70.1/src/ScreenResource.cc 2005-04-12 22:54:08.000000000 -0700
++++ blackbox-0.70.1-new/src/ScreenResource.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -33,6 +33,8 @@
+
+ #include <assert.h>
+
++#include <cstring>
++
+
+ static const int iconify_width = 9;
+ static const int iconify_height = 9;
+diff -Nur blackbox-0.70.1/src/main.cc blackbox-0.70.1-new/src/main.cc
+--- blackbox-0.70.1/src/main.cc 2005-01-03 02:42:57.000000000 -0700
++++ blackbox-0.70.1-new/src/main.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -36,6 +36,8 @@
+
+ #include <stdio.h>
+
++#include <cstring>
++
+
+ static void showHelp(int exitval) {
+ // print version - this should not be localized!
+diff -Nur blackbox-0.70.1/util/bsetbg blackbox-0.70.1-new/util/bsetbg
+--- blackbox-0.70.1/util/bsetbg 2004-12-22 02:40:18.000000000 -0700
++++ blackbox-0.70.1-new/util/bsetbg 2008-05-21 20:52:44.000000000 -0700
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+
+ # Copyright (c) 2000-2002 Timothy M. King (tmk@lordzork.com)
+ #
+diff -Nur blackbox-0.70.1/util/bsetroot.cc blackbox-0.70.1-new/util/bsetroot.cc
+--- blackbox-0.70.1/util/bsetroot.cc 2005-03-15 00:01:37.000000000 -0700
++++ blackbox-0.70.1-new/util/bsetroot.cc 2008-05-21 20:52:44.000000000 -0700
+@@ -27,11 +27,14 @@
+ #include <Pen.hh>
+ #include <Texture.hh>
+
++#include <cstdlib>
+ #include <cctype>
+
+ #include <X11/Xatom.h>
+ #include <stdio.h>
+
++#include <cstring>
++
+
+ // ignore all X errors
+ static int x11_error(::Display *, XErrorEvent *)
diff --git a/community/bless/PKGBUILD b/community/bless/PKGBUILD
new file mode 100644
index 000000000..e00e6d3c1
--- /dev/null
+++ b/community/bless/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: TDY <tdy@gmx.com>
+# Contributor: dcraven <dcraven@gmail.com>
+
+pkgname=bless
+pkgver=0.6.0
+pkgrel=2
+pkgdesc="A high-quality, full-featured hex editor"
+arch=('i686' 'x86_64')
+url="http://home.gna.org/bless/"
+license=('GPL')
+depends=('gtk-sharp-2>=2.8')
+makedepends=('gettext' 'pkgconfig' 'rarian')
+source=(http://download.gna.org/bless/bless-$pkgver.tar.gz)
+md5sums=('b4c20d113281dfedb67d9f3ff8b174e3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --without-scrollkeeper
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
diff --git a/community/blobby2/PKGBUILD b/community/blobby2/PKGBUILD
new file mode 100644
index 000000000..29b405fb5
--- /dev/null
+++ b/community/blobby2/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Urs Wolfer <uwolfer @ fwo.ch>
+
+pkgname=blobby2
+pkgver=0.9b
+arch=('x86_64' 'i686')
+pkgrel=1
+pkgdesc="A beach ball game with blobs of goo"
+url="http://sourceforge.net/projects/blobby/"
+license=('GPL')
+depends=('sdl' 'physfs')
+makedepends=('cmake' 'boost' 'mesa' 'zip')
+source=(http://downloads.sourceforge.net/project/blobby/Blobby%20Volley%202%20%28Linux%29/Beta%20$pkgver/$pkgname-linux-$pkgver.tar.gz
+ $pkgname.desktop $pkgname.png)
+md5sums=('40ee9f34ee8187c6910f489e4fa4a76d'
+ 'ab05bed794ee78db693fd3036393275a'
+ 'c1bc427b41a0a3facd771ac83c7fb412')
+
+build() {
+ cd $srcdir/blobby-beta-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/blobby-beta-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ # install .desktop file and icon
+ install -dm755 $pkgdir/usr/share/{applications,pixmaps}
+ install -m644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications
+ install -m644 $srcdir/$pkgname.png $pkgdir/usr/share/pixmaps
+}
diff --git a/community/blobby2/blobby2.desktop b/community/blobby2/blobby2.desktop
new file mode 100644
index 000000000..dfc2768bf
--- /dev/null
+++ b/community/blobby2/blobby2.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Blobby Volley 2
+Exec=blobby
+Icon=blobby2
+Terminal=false
+Type=Application
+Categories=Game;ArcadeGame;
+StartupNotify=false
+Comment=Volley game with network support
+GenericName=Volley Game
diff --git a/community/blobby2/blobby2.png b/community/blobby2/blobby2.png
new file mode 100644
index 000000000..d5b937312
--- /dev/null
+++ b/community/blobby2/blobby2.png
Binary files differ
diff --git a/community/blueman/PKGBUILD b/community/blueman/PKGBUILD
new file mode 100644
index 000000000..0f42d755d
--- /dev/null
+++ b/community/blueman/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 40729 2011-02-26 08:51:40Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=blueman
+pkgver=1.21
+pkgrel=7
+pkgdesc="GTK+ bluetooth manager"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://blueman-project.org"
+depends=('python-notify' 'bluez' 'dbus-python' 'gtk2' 'pygobject' 'startup-notification' 'obex-data-server' 'polkit-gnome' 'xdg-utils' 'hicolor-icon-theme')
+makedepends=('pyrex' 'intltool')
+optdepends=('dnsmasq: For creating PAN network'
+ 'gconf: For gconf configuration support'
+ 'pulseaudio: To use the pulseaudio plugin'
+ 'notification-daemon: for desktop notifications'
+ 'libnotify: for desktop notifications'
+ 'modemmanager: for modem management service'
+ 'gnome-icon-theme:icon theme')
+options=('!libtool')
+install=$pkgname.install
+source=(http://download.tuxfamily.org/blueman/${pkgname}-${pkgver}.tar.gz
+ PulsePatch.patch)
+md5sums=('26b70341b3d3da28da62c917c8b20377'
+ 'cdce55a57d7628ed8b6c7fcf4391f4f0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/PulsePatch.patch"
+
+ # python2 fix
+ for file in apps/blueman*; do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/blueman \
+ --with-no-runtime-deps-check
+ make
+ make DESTDIR="${pkgdir}" install
+ echo "OnlyShowIn=GNOME;XFCE;" >> ${pkgdir}/etc/xdg/autostart/blueman.desktop
+}
diff --git a/community/blueman/PulsePatch.patch b/community/blueman/PulsePatch.patch
new file mode 100644
index 000000000..4635ff983
--- /dev/null
+++ b/community/blueman/PulsePatch.patch
@@ -0,0 +1,11 @@
+--- blueman-1.21/blueman/main/PulseAudioUtils.py 2009-10-19 14:56:39.000000000 -0500
++++ blueman-1.21/blueman/main/PulseAudioUtils.py.diff 2009-11-12 12:31:18.430145971 -0600
+@@ -170,7 +170,7 @@
+ def wrapper(context, res, data):
+ if handler:
+ handler(res)
+- pythonapi.Py_DecRef(data)
++ pythonapi.Py_DecRef(py_object(data))
+
+ cb = pa_context_index_cb_t(wrapper)
+ pythonapi.Py_IncRef(py_object(cb))
diff --git a/community/blueman/blueman.install b/community/blueman/blueman.install
new file mode 100644
index 000000000..8bf021487
--- /dev/null
+++ b/community/blueman/blueman.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/bmpanel/PKGBUILD b/community/bmpanel/PKGBUILD
new file mode 100644
index 000000000..58dcb1874
--- /dev/null
+++ b/community/bmpanel/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: nsf <no.smile.face@gmail.com>
+
+pkgname=bmpanel
+pkgver=0.9.27
+pkgrel=3
+pkgdesc="A modern, NETWM compliant, bitmap theme-based x11 panel."
+arch=('i686' 'x86_64')
+url="http://nsf.110mb.com/bmpanel/"
+license=('custom')
+depends=('imlib2' 'fontconfig' 'libxrender' 'libxcomposite' 'ttf-dejavu')
+source=(http://nsf.110mb.com/bmpanel/$pkgname-$pkgver.tar.gz)
+md5sums=('23c2ecc89ec386a94b962a3d55403b24')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ DESTDIR=$pkgdir make install || return 1
+
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/bomberclone/PKGBUILD b/community/bomberclone/PKGBUILD
new file mode 100644
index 000000000..749ca0a78
--- /dev/null
+++ b/community/bomberclone/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=bomberclone
+pkgver=0.11.9
+pkgrel=1
+pkgdesc='A clone of the game AtomicBomberMan.'
+arch=('i686' 'x86_64')
+url="http://www.bomberclone.de/"
+license=('GPL')
+depends=('sdl_mixer' 'sdl_image')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'bomberclone.desktop')
+md5sums=('3edcfcf69b88dbd2eab42541f236e072'
+ '2c0151859e7e9aebd1fc95a1455f0c3b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm0644 "${srcdir}/bomberclone.desktop" \
+ "${pkgdir}/usr/share/applications/bomberclone.desktop"
+}
diff --git a/community/bomberclone/bomberclone.desktop b/community/bomberclone/bomberclone.desktop
new file mode 100644
index 000000000..affc0d8ad
--- /dev/null
+++ b/community/bomberclone/bomberclone.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=BomberClone
+GenericName=BomberClone
+Comment=Atomic Bomberman clone
+Icon=/usr/share/games/bomberclone/pixmaps/bomberclone.png
+TryExec=bomberclone
+Exec=bomberclone
+Terminal=false
+Categories=Qt;KDE;GNOME;Game;
diff --git a/community/box2d/PKGBUILD b/community/box2d/PKGBUILD
new file mode 100644
index 000000000..661d4b240
--- /dev/null
+++ b/community/box2d/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 31825 2010-11-06 13:26:28Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=box2d
+pkgver=2.1.2
+pkgrel=3
+pkgdesc="2D rigid body simulation library for games"
+url="http://www.box2d.org/"
+license=('zlib')
+arch=('i686' 'x86_64')
+#depends=('freeglut')
+makedepends=('cmake')
+optdepends=()
+source=(http://box2d.googlecode.com/files/Box2D_v${pkgver}.zip)
+md5sums=('59d142cd8d4d73e8832c7b67591f590c')
+
+build() {
+ cd ${srcdir}/Box2D_v${pkgver}/Box2D/
+
+ msg "Starting build"
+ [[ -d build ]] && rm -r build
+ mkdir build && cd build
+ cmake .. \
+ -DBOX2D_INSTALL=ON \
+ -DBOX2D_BUILD_SHARED=ON \
+ -DBOX2D_BUILD_STATIC=ON \
+ -DBOX2D_BUILD_EXAMPLES=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/Box2D_v${pkgver}/Box2D/build
+
+ make DESTDIR=${pkgdir} install
+
+ mkdir -p ${pkgdir}/usr/share/doc/box2d/
+ cp -r ${srcdir}/Box2D_v${pkgver}/Box2D/Documentation/* ${pkgdir}/usr/share/doc/box2d/
+ find ${pkgdir}/usr/share/doc/box2d/ -type f|xargs chmod 644
+ find ${pkgdir}/usr/share/doc/box2d/ -type d|xargs chmod 755
+
+ install -Dm644 ${srcdir}/Box2D_v${pkgver}/Box2D/License.txt ${pkgdir}/usr/share/licenses/box2d/LICENSE
+}
+# vim: sw=2 ts=2 et:
diff --git a/community/bsd-games/PKGBUILD b/community/bsd-games/PKGBUILD
new file mode 100644
index 000000000..88b330f80
--- /dev/null
+++ b/community/bsd-games/PKGBUILD
@@ -0,0 +1,95 @@
+# $Id: PKGBUILD 23658 2010-08-14 10:48:12Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>
+
+pkgname=bsd-games
+pkgver=2.17
+pkgrel=10
+pkgdesc="A linux port for a collection of BSD command line games."
+url="ftp://ftp.ibiblio.org/pub/Linux/games/"
+arch=('i686' 'x86_64')
+install=$pkgname.install
+license=('BSD')
+depends=(gcc-libs words sh)
+makedepends=('flex' 'bison' 'm4')
+source=(ftp://ftp.ibiblio.org/pub/Linux/games/$pkgname-$pkgver.tar.gz \
+ config.params stdio.h.diff gamescreen.h.diff getline.diff
+ number.c.diff bsd-games-2.17-64bit.patch)
+
+build() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ [ "$CARCH" = "x86_64" ] && patch -p1 < "$srcdir/bsd-games-2.17-64bit.patch"
+ cp "${srcdir}/config.params" .
+
+# Patches
+ sed -i "s%PKGDIR%$pkgdir%" config.params
+
+ # Several games use their own internal functions named getline. All
+ # are different, and none is the getline from glibc. So we need a patch
+ # in order to compile. Each internal getline function is prefixed
+ # with the name of the game. -- Chris Brannon
+ patch -p1 -i "${srcdir}/getline.diff"
+
+ patch -p1 -i "${srcdir}/stdio.h.diff"
+ patch -p1 -i "${srcdir}/gamescreen.h.diff"
+
+# Incorporated some fixes from Debian
+ patch -p1 -i "${srcdir}/number.c.diff"
+
+ sed -i "s/FISH/GO-FISH/g; s/\.Nm fish/\.Nm go-fish/g" fish/fish.6
+ sed -i "s/tenths/tenth/g" tests/number.-0.1
+ sed -i "s/Elegy{ Written in a Country Church{-| }Yard:/Elegy{ Written in a Country Church{-| }Yard}:/g" \
+ quiz/datfiles/poetry
+ sed -i "s/\.tI friend/\.It friend/g" hunt/hunt/hunt.6.in
+ sed -i "s/it\'s initial/its initial/g" backgammon/teachgammon/ttext1.c
+ sed -i "s/two player\'s/two players/g" backgammon/teachgammon/ttext2.c
+ sed -i "s/\.I range/\.It range/g" arithmetic/arithmetic.6
+ sed -i "s/game were the/game where the/g" gomoku/gomoku.6
+
+ # The wargames script expects binaries in /usr/games, and this
+ # path is hard-coded.
+ # Prior to release 2.17-10 of the ArchLinux package, wargames was
+ # broken, since binaries are in /usr/bin instead.
+ sed -i -e 's|/usr/games|/usr/bin|g' wargames/wargames
+
+# Build.
+ ./configure
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ make install
+ # This make install command does install to $pkgdir, because of the
+ # change to config.params in the build function.
+
+# Fix permissions
+ rmdir "${pkgdir}/tmp"
+ install -dm755 "${pkgdir}/usr/share/bsdgames/data/hack/save"
+ chown -R root:games "${pkgdir}/var/lib/bsdgames"
+ chmod 664 "${pkgdir}"/var/lib/bsdgames/*
+ chmod 664 "${pkgdir}"/var/lib/bsdgames/{hack,phantasia}/*
+ chmod 775 "${pkgdir}"/var/lib/bsdgames/{hack,phantasia}
+
+# Remove conflict with xscreensaver and fish
+ mv "${pkgdir}/usr/bin/fish" "${pkgdir}/usr/bin/go-fish"
+ mv "${pkgdir}/usr/share/man/man6/fish.6.gz" "${pkgdir}/usr/share/man/man6/go-fish.6.gz"
+ mv "${pkgdir}/usr/share/man/man6/worm.6.gz" \
+ "${pkgdir}/usr/share/man/man6/worm-game.6.gz"
+
+# Install documentation and license
+ install -dm755 "$pkgdir/usr/share/doc/bsd-games"
+ install -m644 AUTHORS NEWS BUGS ChangeLog "$pkgdir/usr/share/doc/$pkgname" \
+
+ rm "${pkgdir}/usr/share/doc/trek.me"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/COPYING"
+}
+
+md5sums=('238a38a3a017ca9b216fc42bde405639'
+ 'a7c5ac05eb71f7eb1eedf02b9328f4d8'
+ '784f68c796b9e099ac008aecef1af998'
+ '9c0fa6e2345bd0a7945c9a41d5ba68aa'
+ '5356bd6999ae53dd27cb2a0f837a3e70'
+ '47249a90f38ccb4dd07625b245bbc728'
+ '257813b76a41c8b2c02701571c804227')
diff --git a/community/bsd-games/bsd-games-2.17-64bit.patch b/community/bsd-games/bsd-games-2.17-64bit.patch
new file mode 100644
index 000000000..a56ea8454
--- /dev/null
+++ b/community/bsd-games/bsd-games-2.17-64bit.patch
@@ -0,0 +1,43 @@
+David Leverton writes about adventure/crc.c:
+
+The 'adventure' game from the games-misc/bsd-games-2.13 package crashes
+when saving the game on AMD64 (and probably other 64-bit systems, but I
+haven't checked). Find attached to fix this.
+
+http://bugs.gentoo.org/show_bug.cgi?id=77032
+
+
+About utmpentry.c:
+
+the utmpx structure defines the ut_tv member a little differently on
+64bit hosts so that a 32bit and 64bit structure can be shared. So the
+ut_tv is a custom 32bit structure rather than the native 64bit timeval
+structure. Work around is to assign the submembers instead.
+
+http://bugs.gentoo.org/show_bug.cgi?id=102667
+
+--- bsd-games/adventure/crc.c
++++ bsd-games/adventure/crc.c
+@@ -134,7 +134,8 @@
+ if (step >= sizeof(crctab) / sizeof(crctab[0]))
+ step = 0;
+ }
+- crcval = (crcval << 8) ^ crctab[i];
++ /* Mask to 32 bits. */
++ crcval = ((crcval << 8) ^ crctab[i]) & 0xffffffff;
+ }
+- return crcval & 0xffffffff; /* Mask to 32 bits. */
++ return crcval;
+ }
+--- bsd-games/dm/utmpentry.c
++++ bsd-games/dm/utmpentry.c
+@@ -291,7 +291,8 @@
+ e->line[sizeof(e->line) - 1] = '\0';
+ (void)strncpy(e->host, up->ut_host, sizeof(up->ut_host));
+ e->name[sizeof(e->host) - 1] = '\0';
+- e->tv = up->ut_tv;
++ e->tv.tv_sec = up->ut_tv.tv_sec;
++ e->tv.tv_usec = up->ut_tv.tv_usec;
+ adjust_size(e);
+ }
+ #endif
diff --git a/community/bsd-games/bsd-games.install b/community/bsd-games/bsd-games.install
new file mode 100644
index 000000000..453a6ded7
--- /dev/null
+++ b/community/bsd-games/bsd-games.install
@@ -0,0 +1,11 @@
+MSG="You need to be in the games group to use the score files."
+
+post_install() {
+ echo $MSG
+}
+
+post_upgrade() {
+ if [ $(vercmp 2.17-8 $2) -ge 0 ]; then
+ echo $MSG
+ fi
+}
diff --git a/community/bsd-games/config.params b/community/bsd-games/config.params
new file mode 100644
index 000000000..ebddccc38
--- /dev/null
+++ b/community/bsd-games/config.params
@@ -0,0 +1,16 @@
+bsd_games_cfg_non_interactive=y
+bsd_games_cfg_install_prefix=PKGDIR
+bsd_games_cfg_no_build_dirs='fortune wtf factor monop'
+bsd_games_cfg_gamesdir=/usr/bin
+bsd_games_cfg_sbindir=/usr/sbin
+bsd_games_cfg_man6dir=/usr/share/man/man6
+bsd_games_cfg_man5dir=/usr/share/man/man5
+bsd_games_cfg_man8dir=/usr/share/man/man8
+bsd_games_cfg_docdir=/usr/share/doc
+bsd_games_cfg_sharedir=/usr/share/bsdgames
+bsd_games_cfg_varlibdir=/var/lib/bsdgames
+bsd_games_cfg_do_chown=n
+bsd_games_cfg_sail_dir=/tmp
+bsd_games_cfg_sail_dir_perms=0777
+bsd_games_cfg_hack_dir_perms=0777
+bsd_games_cfg_pager=/bin/less
diff --git a/community/bsd-games/gamescreen.h.diff b/community/bsd-games/gamescreen.h.diff
new file mode 100644
index 000000000..f74ebcb4b
--- /dev/null
+++ b/community/bsd-games/gamescreen.h.diff
@@ -0,0 +1,15 @@
+--- a/dab/gamescreen.h 2004-01-02 23:34:51.000000000 +0530
++++ b/dab/gamescreen.h 2008-07-31 23:45:19.000000000 +0530
+@@ -70,9 +70,9 @@
+ virtual void redraw(void) = 0; // Refresh
+ virtual int getinput(void) = 0; // Get user input
+ virtual void bell(void) = 0; // Beep
+- virtual void score(size_t p, const PLAYER& p) = 0; // Post current score
+- virtual void games(size_t p, const PLAYER& p) = 0; // Post games won
+- virtual void total(size_t p, const PLAYER& p) = 0; // Post total score
++ virtual void score(size_t, const PLAYER&) = 0; // Post current score
++ virtual void games(size_t, const PLAYER&) = 0; // Post games won
++ virtual void total(size_t, const PLAYER&) = 0; // Post total score
+ virtual void ties(const PLAYER& p) = 0; // Post tie games
+ };
+
diff --git a/community/bsd-games/getline.diff b/community/bsd-games/getline.diff
new file mode 100644
index 000000000..99a663847
--- /dev/null
+++ b/community/bsd-games/getline.diff
@@ -0,0 +1,194 @@
+diff -Naur bsd-games-2.17/boggle/boggle/bog.c bsd-games-2.17.1/boggle/boggle/bog.c
+--- bsd-games-2.17/boggle/boggle/bog.c 2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/bog.c 2010-05-22 10:51:23.000000000 -0500
+@@ -336,7 +336,7 @@
+ }
+
+ while (1) {
+- if (getline(buf) == NULL) {
++ if (boggle_getline(buf) == NULL) {
+ if (feof(stdin))
+ clearerr(stdin);
+ break;
+diff -Naur bsd-games-2.17/boggle/boggle/extern.h bsd-games-2.17.1/boggle/boggle/extern.h
+--- bsd-games-2.17/boggle/boggle/extern.h 2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/extern.h 2010-05-22 10:51:23.000000000 -0500
+@@ -43,7 +43,7 @@
+ long dictseek(FILE *, long, int);
+ void findword(void);
+ void flushin(FILE *);
+-char *getline(char *);
++char *boggle_getline(char *);
+ void getword(char *);
+ int help(void);
+ int inputch(void);
+diff -Naur bsd-games-2.17/boggle/boggle/mach.c bsd-games-2.17.1/boggle/boggle/mach.c
+--- bsd-games-2.17/boggle/boggle/mach.c 2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/boggle/boggle/mach.c 2010-05-22 10:51:23.000000000 -0500
+@@ -168,7 +168,7 @@
+ * - doesn't accept words longer than MAXWORDLEN or containing caps
+ */
+ char *
+-getline(q)
++boggle_getline(q)
+ char *q;
+ {
+ int ch, done;
+diff -Naur bsd-games-2.17/cribbage/cribbage.h bsd-games-2.17.1/cribbage/cribbage.h
+--- bsd-games-2.17/cribbage/cribbage.h 2004-02-08 16:29:14.000000000 -0600
++++ bsd-games-2.17.1/cribbage/cribbage.h 2010-05-22 10:51:23.000000000 -0500
+@@ -77,7 +77,7 @@
+ int fifteens(const CARD [], int);
+ void game(void);
+ void gamescore(void);
+-char *getline(void);
++char *cribbage_getline(void);
+ int getuchar(void);
+ int incard(CARD *);
+ int infrom(const CARD [], int, const char *);
+diff -Naur bsd-games-2.17/cribbage/crib.c bsd-games-2.17.1/cribbage/crib.c
+--- bsd-games-2.17/cribbage/crib.c 2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/cribbage/crib.c 2010-05-22 10:51:23.000000000 -0500
+@@ -221,7 +221,7 @@
+ if (!rflag) { /* player cuts deck */
+ msg(quiet ? "Cut for crib? " :
+ "Cut to see whose crib it is -- low card wins? ");
+- getline();
++ cribbage_getline();
+ }
+ i = (rand() >> 4) % CARDS; /* random cut */
+ do { /* comp cuts deck */
+@@ -397,7 +397,7 @@
+ if (!rflag) { /* random cut */
+ msg(quiet ? "Cut the deck? " :
+ "How many cards down do you wish to cut the deck? ");
+- getline();
++ cribbage_getline();
+ }
+ i = (rand() >> 4) % (CARDS - pos);
+ turnover = deck[i + pos];
+diff -Naur bsd-games-2.17/cribbage/io.c bsd-games-2.17.1/cribbage/io.c
+--- bsd-games-2.17/cribbage/io.c 2004-12-07 07:34:21.000000000 -0600
++++ bsd-games-2.17.1/cribbage/io.c 2010-05-22 10:51:23.000000000 -0500
+@@ -245,7 +245,7 @@
+
+ retval = FALSE;
+ rnk = sut = EMPTY;
+- if (!(line = getline()))
++ if (!(line = cribbage_getline()))
+ goto gotit;
+ p = p1 = line;
+ while (*p1 != ' ' && *p1 != '\0')
+@@ -346,7 +346,7 @@
+
+ for (sum = 0;;) {
+ msg(prompt);
+- if (!(p = getline()) || *p == '\0') {
++ if (!(p = cribbage_getline()) || *p == '\0') {
+ msg(quiet ? "Not a number" :
+ "That doesn't look like a number");
+ continue;
+@@ -528,12 +528,12 @@
+ }
+
+ /*
+- * getline:
++ * cribbage_getline:
+ * Reads the next line up to '\n' or EOF. Multiple spaces are
+ * compressed to one space; a space is inserted before a ','
+ */
+ char *
+-getline()
++cribbage_getline()
+ {
+ char *sp;
+ int c, oy, ox;
+diff -Naur bsd-games-2.17/gomoku/bdisp.c bsd-games-2.17.1/gomoku/bdisp.c
+--- bsd-games-2.17/gomoku/bdisp.c 2003-12-16 20:47:37.000000000 -0600
++++ bsd-games-2.17.1/gomoku/bdisp.c 2010-05-22 10:51:23.000000000 -0500
+@@ -241,7 +241,7 @@
+ }
+
+ int
+-getline(buf, size)
++gomoku_getline(buf, size)
+ char *buf;
+ int size;
+ {
+diff -Naur bsd-games-2.17/gomoku/gomoku.h bsd-games-2.17.1/gomoku/gomoku.h
+--- bsd-games-2.17/gomoku/gomoku.h 2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/gomoku/gomoku.h 2010-05-22 10:51:23.000000000 -0500
+@@ -263,7 +263,7 @@
+
+ void bdinit(struct spotstr *);
+ void init_overlap(void);
+-int getline(char *, int);
++int gomoku_getline(char *, int);
+ void ask(const char *);
+ void dislog(const char *);
+ void bdump(FILE *);
+diff -Naur bsd-games-2.17/gomoku/main.c bsd-games-2.17.1/gomoku/main.c
+--- bsd-games-2.17/gomoku/main.c 2004-01-27 14:52:07.000000000 -0600
++++ bsd-games-2.17.1/gomoku/main.c 2010-05-22 10:51:23.000000000 -0500
+@@ -155,7 +155,7 @@
+ if (inputfp == NULL && test == 0) {
+ for (;;) {
+ ask("black or white? ");
+- getline(buf, sizeof(buf));
++ gomoku_getline(buf, sizeof(buf));
+ if (buf[0] == 'b' || buf[0] == 'B') {
+ color = BLACK;
+ break;
+@@ -172,7 +172,7 @@
+ }
+ } else {
+ setbuf(stdout, 0);
+- getline(buf, sizeof(buf));
++ gomoku_getline(buf, sizeof(buf));
+ if (strcmp(buf, "black") == 0)
+ color = BLACK;
+ else if (strcmp(buf, "white") == 0)
+@@ -244,7 +244,7 @@
+ getinput:
+ if (interactive)
+ ask("move? ");
+- if (!getline(buf, sizeof(buf))) {
++ if (!gomoku_getline(buf, sizeof(buf))) {
+ curmove = RESIGN;
+ break;
+ }
+@@ -256,7 +256,7 @@
+ FILE *fp;
+
+ ask("save file name? ");
+- (void)getline(buf, sizeof(buf));
++ (void)gomoku_getline(buf, sizeof(buf));
+ if ((fp = fopen(buf, "w")) == NULL) {
+ glog("cannot create save file");
+ goto getinput;
+@@ -309,14 +309,14 @@
+ if (i != RESIGN) {
+ replay:
+ ask("replay? ");
+- if (getline(buf, sizeof(buf)) &&
++ if (gomoku_getline(buf, sizeof(buf)) &&
+ (buf[0] == 'y' || buf[0] == 'Y'))
+ goto again;
+ if (strcmp(buf, "save") == 0) {
+ FILE *fp;
+
+ ask("save file name? ");
+- (void)getline(buf, sizeof(buf));
++ (void)gomoku_getline(buf, sizeof(buf));
+ if ((fp = fopen(buf, "w")) == NULL) {
+ glog("cannot create save file");
+ goto replay;
+@@ -367,7 +367,7 @@
+ quit();
+ top:
+ ask("cmd? ");
+- if (!getline(fmtbuf, sizeof(fmtbuf)))
++ if (!gomoku_getline(fmtbuf, sizeof(fmtbuf)))
+ quit();
+ switch (*fmtbuf) {
+ case '\0':
diff --git a/community/bsd-games/number.c.diff b/community/bsd-games/number.c.diff
new file mode 100644
index 000000000..1acbeff30
--- /dev/null
+++ b/community/bsd-games/number.c.diff
@@ -0,0 +1,156 @@
+--- bsdgames-2.17.orig/number/number.c
++++ bsdgames-2.17/number/number.c
+@@ -78,9 +78,9 @@
+
+ void convert(char *);
+ int main(int, char *[]);
+-int number(const char *, int);
+-void pfract(int);
+-int unit(int, const char *);
++int number(const char *, int, int *);
++void pfract(int, int);
++int unit(int, const char *, int *);
+ void usage(void) __attribute__((__noreturn__));
+
+ int lflag;
+@@ -131,7 +131,7 @@
+ convert(line)
+ char *line;
+ {
+- int flen, len, rval;
++ int flen, len, rval, singular;
+ char *p, *fraction;
+
+ flen = 0;
+@@ -174,7 +174,7 @@
+ --len;
+ }
+
+- rval = len > 0 ? unit(len, line) : 0;
++ rval = len > 0 ? unit(len, line, &singular) : 0;
+ if (fraction != NULL && flen != 0)
+ for (p = fraction; *p != '\0'; ++p)
+ if (*p != '0') {
+@@ -182,10 +182,10 @@
+ (void)printf("%sand%s",
+ lflag ? " " : "",
+ lflag ? " " : "\n");
+- if (unit(flen, fraction)) {
++ if (unit(flen, fraction, &singular)) {
+ if (lflag)
+ (void)printf(" ");
+- pfract(flen);
++ pfract(flen, singular);
+ rval = 1;
+ }
+ break;
+@@ -197,9 +197,10 @@
+ }
+
+ int
+-unit(len, p)
++unit(len, p, singular)
+ int len;
+ const char *p;
++ int *singular;
+ {
+ int off, rval;
+
+@@ -208,7 +209,7 @@
+ if (len % 3) {
+ off = len % 3;
+ len -= off;
+- if (number(p, off)) {
++ if (number(p, off, singular)) {
+ rval = 1;
+ (void)printf(" %s%s",
+ name3[len / 3], lflag ? " " : ".\n");
+@@ -217,14 +218,16 @@
+ }
+ for (; len > 3; p += 3) {
+ len -= 3;
+- if (number(p, 3)) {
++ if (number(p, 3, singular)) {
+ rval = 1;
+ (void)printf(" %s%s",
+ name3[len / 3], lflag ? " " : ".\n");
+ }
+ }
+ }
+- if (number(p, len)) {
++ if (number(p, len, singular)) {
++ if (rval)
++ *singular = 0;
+ if (!lflag)
+ (void)printf(".\n");
+ rval = 1;
+@@ -233,17 +236,20 @@
+ }
+
+ int
+-number(p, len)
++number(p, len, singular)
+ const char *p;
+ int len;
++ int *singular;
+ {
+ int val, rval;
+
+ rval = 0;
++ *singular = 1;
+ switch (len) {
+ case 3:
+ if (*p != '0') {
+ rval = 1;
++ *singular = 0;
+ (void)printf("%s hundred", name1[*p - '0']);
+ }
+ ++p;
+@@ -262,33 +268,42 @@
+ }
+ rval = 1;
+ }
++ if (val != 1)
++ *singular = 0;
+ break;
+ case 1:
+ if (*p != '0') {
+ rval = 1;
+ (void)printf("%s", name1[*p - '0']);
+ }
++ if (*p != '1')
++ *singular = 0;
+ }
+ return (rval);
+ }
+
+ void
+-pfract(len)
++pfract(len, singular)
+ int len;
++ int singular;
+ {
+ static const char *const pref[] = { "", "ten-", "hundred-" };
+
+ switch(len) {
+ case 1:
+- (void)printf("tenths.\n");
++ (void)printf("tenth");
+ break;
+ case 2:
+- (void)printf("hundredths.\n");
++ (void)printf("hundredth");
+ break;
+ default:
+- (void)printf("%s%sths.\n", pref[len % 3], name3[len / 3]);
++ (void)printf("%s%sth", pref[len % 3], name3[len / 3]);
+ break;
+ }
++ if (!singular) {
++ printf("s");
++ }
++ printf(".\n");
+ }
+
+ void
+
diff --git a/community/bsd-games/stdio.h.diff b/community/bsd-games/stdio.h.diff
new file mode 100644
index 000000000..786fa54c4
--- /dev/null
+++ b/community/bsd-games/stdio.h.diff
@@ -0,0 +1,14 @@
+diff -ru a/include/stdio.h b/include/stdio.h
+--- a/include/stdio.h 2000-08-04 10:24:39.000000000 +1000
++++ b/include/stdio.h 2005-06-18 14:26:35.000000000 +1000
+@@ -34,6 +34,10 @@
+ #include <bsd-games.h>
+ #include_next <stdio.h>
+
++__BEGIN_DECLS
++
+ #ifndef HAVE_fgetln
+ extern char *fgetln(FILE *stream, size_t *len);
+ #endif
++
++__END_DECLS
diff --git a/community/bsdiff/Makefile.patch b/community/bsdiff/Makefile.patch
new file mode 100644
index 000000000..b2a3ffa82
--- /dev/null
+++ b/community/bsdiff/Makefile.patch
@@ -0,0 +1,25 @@
+--- Makefile.old 2005-08-17 00:14:10.000000000 +0200
++++ Makefile 2007-09-15 12:32:07.000000000 +0200
+@@ -1,15 +1,16 @@
+ CFLAGS += -O3 -lbz2
+
+ PREFIX ?= /usr/local
+-INSTALL_PROGRAM ?= ${INSTALL} -c -s -m 555
+-INSTALL_MAN ?= ${INSTALL} -c -m 444
++INSTALL = /bin/install
++INSTALL_PROGRAM ?= ${INSTALL} -D -m755
++INSTALL_MAN ?= ${INSTALL} -D -m644
+
+ all: bsdiff bspatch
+ bsdiff: bsdiff.c
+ bspatch: bspatch.c
+
+ install:
+- ${INSTALL_PROGRAM} bsdiff bspatch ${PREFIX}/bin
+-.ifndef WITHOUT_MAN
+- ${INSTALL_MAN} bsdiff.1 bspatch.1 ${PREFIX}/man/man1
+-.endif
++ ${INSTALL_PROGRAM} bsdiff ${PREFIX}/bin/bsdiff
++ ${INSTALL_PROGRAM} bspatch ${PREFIX}/bin/bspatch
++ ${INSTALL_MAN} bsdiff.1 ${PREFIX}/man/man1/bsdiff.1
++ ${INSTALL_MAN} bspatch.1 ${PREFIX}/man/man1/bspatch.1
diff --git a/community/bsdiff/PKGBUILD b/community/bsdiff/PKGBUILD
new file mode 100644
index 000000000..64d63ddf2
--- /dev/null
+++ b/community/bsdiff/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 30610 2010-10-19 12:42:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=bsdiff
+pkgver=4.3
+pkgrel=6
+pkgdesc="bsdiff and bspatch are tools for building and applying patches to binary files."
+url="http://www.daemonology.net/bsdiff/"
+license=('BSD')
+arch=('i686' 'x86_64')
+depends=('bzip2')
+source=(http://www.daemonology.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ Makefile.patch)
+md5sums=('e6d812394f0e0ecc8d5df255aa1db22a'
+ '87ec6120b2e2d38da5a67821af6ac356')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 < ../Makefile.patch
+ make
+ make PREFIX=${pkgdir}/usr install
+ mkdir -p $pkgdir/usr/share
+ mv ${pkgdir}/usr/man ${pkgdir}/usr/share/man/
+}
diff --git a/community/btanks/PKGBUILD b/community/btanks/PKGBUILD
new file mode 100644
index 000000000..1cb857a22
--- /dev/null
+++ b/community/btanks/PKGBUILD
@@ -0,0 +1,62 @@
+# Contributor: Nick B <Shirakawasuna at gmail _dot_ com>
+pkgname=btanks
+pkgver=0.9.8083
+pkgrel=1
+pkgdesc="Fast 2d tank arcade game with multiplayer and split-screen modes."
+arch=('i686' 'x86_64')
+url="http://btanks.sourceforge.net"
+license=('GPL')
+depends=('expat' 'libgl' 'libsigc++2.0' 'libvorbis' 'lua' 'openal' 'sdl' 'sdl_image' 'smpeg' 'btanks-data')
+makedepends=('scons' 'chrpath')
+source=(http://downloads.sourceforge.net/btanks/btanks-$pkgver.tar.bz2
+ btanks_desktop
+ btanks_script
+ bted_script)
+install=btanks.install
+md5sums=('49cb95c0eec47d3436c4fdf65e7c9d12'
+ 'a2ddeb1e79dff8d3fd702984c8d3aab5'
+ '07657cfa71b1de1d008cc5e3ade9749b'
+ '91a61c0f581ea27281bdaecb7a3cd58b')
+
+build() {
+ # Compile with scons
+ cd $srcdir/$pkgname-$pkgver
+ scons || return 1
+
+ mkdir -p $pkgdir/usr/share/btanks
+ cp *.so btanks bted $pkgdir/usr/share/btanks/ || return 1
+
+ # Install script
+ install -D -m755 $srcdir/bted_script $pkgdir/usr/bin/bted && \
+ install -D -m755 $srcdir/btanks_script $pkgdir/usr/bin/btanks || return 1
+
+ # Install desktop file
+ install -D -m644 $srcdir/btanks_desktop $pkgdir/usr/share/applications/btanks.desktop || return 1
+
+ # Install icon
+ install -D -m644 $srcdir/$pkgname-$pkgver/data/tiles/icon.png $pkgdir/usr/share/pixmaps/btanks.png || return 1
+
+ # Make settings saveable
+ touch $pkgdir/usr/share/btanks/bt.xml
+ chown :games $pkgdir/usr/share/btanks/bt.xml
+ chmod 664 $pkgdir/usr/share/btanks/bt.xml
+
+ # move executables, fix rpath
+ cd $pkgdir/usr/share/btanks
+ mkdir -p $pkgdir/usr/bin $pkgdir/usr/lib/btanks
+
+ mv btanks $pkgdir/usr/bin/btanks-bin && \
+ mv bted $pkgdir/usr/bin/bted-bin && \
+ mv *.so $pkgdir/usr/lib/btanks/ || return 1
+
+ ln -s /usr/bin/btanks-bin ./btanks && \
+ ln -s /usr/bin/bted-bin ./bted || return 1
+
+ ls -1 $pkgdir/usr/lib/btanks/ | while read A; do
+ ln -s /usr/lib/btanks/$A ./$A || return 1
+ done
+
+ chrpath -d $pkgdir/usr/bin/bted-bin && \
+ chrpath -d $pkgdir/usr/bin/btanks-bin && \
+ chrpath -d $pkgdir/usr/lib/btanks/*.so
+}
diff --git a/community/btanks/btanks.install b/community/btanks/btanks.install
new file mode 100644
index 000000000..b05ede359
--- /dev/null
+++ b/community/btanks/btanks.install
@@ -0,0 +1,36 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ /bin/echo "In order to be able to change game preferences, you must be in the 'games' group."
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /bin/echo "In order to be able to change game preferences, you must be in the 'games' group."
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/btanks/btanks_desktop b/community/btanks/btanks_desktop
new file mode 100644
index 000000000..548fa7bfe
--- /dev/null
+++ b/community/btanks/btanks_desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=Battle Tanks!
+Comment= A 2D arcade tank battle!
+Icon=btanks
+Exec=btanks
+Terminal=false
+StartupNotify=false
+Categories=Game;ArcadeGame;
diff --git a/community/btanks/btanks_script b/community/btanks/btanks_script
new file mode 100644
index 000000000..86ad105ef
--- /dev/null
+++ b/community/btanks/btanks_script
@@ -0,0 +1,6 @@
+#!/bin/bash
+#This is the script for running the actual btanks executable
+
+cd /usr/share/btanks/
+export LD_LIBRARY_PATH=/usr/lib/btanks
+exec ./btanks
diff --git a/community/btanks/bted_script b/community/btanks/bted_script
new file mode 100644
index 000000000..69ba70309
--- /dev/null
+++ b/community/btanks/bted_script
@@ -0,0 +1,6 @@
+#!/bin/bash
+#This is the script for running the actual bted executable
+
+cd /usr/share/btanks/
+export LD_LIBRARY_PATH=/usr/lib/btanks
+exec ./bted
diff --git a/community/bti/PKGBUILD b/community/bti/PKGBUILD
new file mode 100644
index 000000000..3fb638f1b
--- /dev/null
+++ b/community/bti/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id$
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: uvok <uvok at online dot de>
+# Contributor: Urist <9362773 at gmail.com>
+
+pkgname=bti
+pkgver=028
+pkgrel=1
+pkgdesc='Console client for Twitter and identi.ca'
+arch=('i686' 'x86_64')
+url='http://gregkh.github.com/bti/'
+license=('GPL')
+depends=('pcre' 'libxml2' 'curl' 'liboauth')
+
+md5sums=('c858d41efe1e14b1891517092d4b112e')
+source=("http://www.kernel.org/pub/software/web/bti/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make; make DESTDIR=$pkgdir install
+}
diff --git a/community/bullet/PKGBUILD b/community/bullet/PKGBUILD
new file mode 100644
index 000000000..c5fbddfba
--- /dev/null
+++ b/community/bullet/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 36776 2011-01-07 21:59:47Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgbase=bullet
+pkgname=('bullet' 'bullet-docs')
+pkgver=2.77
+pkgrel=3
+pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation"
+arch=('i686' 'x86_64')
+url="http://www.bulletphysics.com/Bullet/"
+license=('custom:zlib')
+depends=('freeglut')
+makedepends=('cmake' 'doxygen' 'graphviz' 'ttf-dejavu')
+source=(http://bullet.googlecode.com/files/${pkgbase}-${pkgver}.tgz \
+ ${pkgbase}.pc)
+md5sums=('2f5074a1a29b618c672f1da4748e374b'
+ 'd1da06deba3b08b884d2212f6838905c')
+
+build() {
+ cd ${pkgbase}-${pkgver}
+
+ # get a clean build dir
+ [[ -d build ]] && rm -rf build
+ mkdir build && cd build
+
+ # generate CMake Makefile
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=1 \
+ -DBUILD_DEMOS=0 \
+ -DBUILD_EXTRAS=1 \
+ -DINSTALL_LIBS=1 \
+ -DINSTALL_EXTRA_LIBS=1 \
+ -DCMAKE_BUILD_TYPE=Release # set =Debug for debugging version
+
+ # compile
+ make
+
+ # generate docs
+ cd ..
+ sed -i 's/GENERATE_HTMLHELP.*//g' Doxyfile
+ doxygen
+}
+
+package_bullet() {
+ optdepends=('bullet-docs: documentation')
+
+ cd ${pkgbase}-${pkgver}/build
+
+ # install it
+ make DESTDIR=${pkgdir} install
+
+ # manually handle pkgconfig file
+ mkdir -p "${pkgdir}"/usr/lib/pkgconfig
+ sed "s|VERSION|${pkgver}|g" ${srcdir}/bullet.pc > ${pkgdir}/usr/lib/pkgconfig/bullet.pc
+
+ # install license
+ install -Dm644 ../BulletLicense.txt ${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE
+}
+
+package_bullet-docs() {
+ pkgdesc="Documentation for bullet"
+ depends=()
+
+ cd ${pkgbase}-${pkgver}
+
+ # install docs
+ install -Dm644 Bullet_User_Manual.pdf ${pkgdir}/usr/share/doc/bullet/Bullet_User_Manual.pdf
+ cp -r html ${pkgdir}/usr/share/doc/bullet/html
+}
+# vim: sw=2 ts=2 et:
diff --git a/community/bullet/bullet.pc b/community/bullet/bullet.pc
new file mode 100644
index 000000000..d236b477f
--- /dev/null
+++ b/community/bullet/bullet.pc
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: bullet
+Description: Bullet Continuous Collision Detection and Physics Library
+Requires:
+Version: VERSION
+Libs: -L${libdir} -lBulletDynamics -lBulletCollision -lLinearMath -lBulletSoftBody
+Cflags: -I${includedir}/bullet
diff --git a/community/buoh/ChangeLog b/community/buoh/ChangeLog
new file mode 100644
index 000000000..12ed723c2
--- /dev/null
+++ b/community/buoh/ChangeLog
@@ -0,0 +1,5 @@
+2008-04-06 Eric Belanger <eric@archlinux.org>
+
+ * buoh-0.8.2-3
+ * rebuilt against libsoup 2.4
+ * added ChangeLog
diff --git a/community/buoh/PKGBUILD b/community/buoh/PKGBUILD
new file mode 100644
index 000000000..3d4fb093f
--- /dev/null
+++ b/community/buoh/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 21921 2010-07-18 21:09:06Z lcarlier $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=buoh
+pkgver=0.8.2
+pkgrel=4
+pkgdesc="A reader for online strips comics"
+arch=('i686' 'x86_64')
+url="http://buoh.steve-o.org/"
+license=('GPL')
+depends=('libgnomeui' 'libsoup>=2.4.0' 'gconf' 'hicolor-icon-theme')
+makedepends=('gettext' 'intltool' 'pkgconfig')
+install=buoh.install
+source=(http://buoh.steve-o.org/downloads/${pkgname}-${pkgver}.tar.bz2 buoh-libsoup24.patch)
+md5sums=('50474a8712ad20ab36d8f8058a4647fb' 'c44f0e1828492a5d7d8efee764558fb4')
+sha1sums=('29d702b485a901868f65116e753cb515b3e2a2c5' '012badf13e33818268b744e106bdcccfd8fc66ed')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -p1 < ../buoh-libsoup24.patch
+ autoconf
+ ./configure --prefix=/usr --sysconfdir=/usr/share --disable-schemas-install
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/community/buoh/buoh-libsoup24.patch b/community/buoh/buoh-libsoup24.patch
new file mode 100644
index 000000000..3998f3f5f
--- /dev/null
+++ b/community/buoh/buoh-libsoup24.patch
@@ -0,0 +1,71 @@
+diff -ur buoh-0.8.2.orig/configure.in buoh-0.8.2/configure.in
+--- buoh-0.8.2.orig/configure.in 2006-10-22 17:59:48.000000000 -0400
++++ buoh-0.8.2/configure.in 2008-01-30 13:39:23.000000000 -0500
+@@ -29,13 +29,13 @@
+
+ GLIB_REQUIRED=2.6.0
+ GTK_REQUIRED=2.6.0
+-LIBSOUP_REQUIRED=2.2.0
++LIBSOUP_REQUIRED=2.4.0
+ GCONF_REQUIRED=2.2.0
+
+ PKG_CHECK_MODULES(BUOH,
+ glib-2.0 >= $GLIB_REQUIRED
+ gtk+-2.0 >= $GTK_REQUIRED
+- libsoup-2.2 >= $LIBSOUP_REQUIRED
++ libsoup-2.4 >= $LIBSOUP_REQUIRED
+ gconf-2.0 >= $GCONF_REQUIRED)
+ AC_SUBST(BUOH_CFLAGS)
+ AC_SUBST(BUOH_LIBS)
+diff -ur buoh-0.8.2.orig/src/buoh-comic-loader.c buoh-0.8.2/src/buoh-comic-loader.c
+--- buoh-0.8.2.orig/src/buoh-comic-loader.c 2006-10-21 10:56:37.000000000 -0400
++++ buoh-0.8.2/src/buoh-comic-loader.c 2008-01-30 13:41:22.000000000 -0500
+@@ -202,7 +202,7 @@
+
+ proxy_uri = buoh_get_http_proxy_uri (BUOH);
+ if (proxy_uri) {
+- SoupUri *soup_uri = soup_uri_new (proxy_uri);
++ SoupURI *soup_uri = soup_uri_new (proxy_uri);
+
+ job->session = soup_session_sync_new_with_options (SOUP_SESSION_PROXY_URI, soup_uri, NULL);
+
+@@ -235,6 +235,7 @@
+
+ static void
+ buoh_comic_loader_job_read_next (SoupMessage *msg,
++ SoupBuffer *chunk,
+ BuohComicLoaderJob *job)
+ {
+ gboolean success;
+@@ -252,15 +253,14 @@
+ msg->reason_phrase);
+ }
+
+- soup_message_set_status (msg, SOUP_STATUS_CANCELLED);
+- soup_session_cancel_message (job->session, msg);
++ soup_session_cancel_message (job->session, msg, SOUP_STATUS_CANCELLED);
+
+ return;
+ }
+
+ if (job->callback) {
+- job->callback (msg->response.body,
+- msg->response.length,
++ job->callback (chunk->data,
++ chunk->length,
+ job->callback_data);
+ }
+ }
+@@ -275,9 +275,9 @@
+ msg = soup_message_new (SOUP_METHOD_GET, job->uri);
+
+ soup_message_set_flags (msg, SOUP_MESSAGE_OVERWRITE_CHUNKS);
+- soup_message_add_handler (msg, SOUP_HANDLER_BODY_CHUNK,
+- (SoupMessageCallbackFn)buoh_comic_loader_job_read_next,
+- (gpointer) job);
++ g_signal_connect (msg, "got-chunk",
++ G_CALLBACK (buoh_comic_loader_job_read_next),
++ (gpointer) job);
+
+ buoh_debug ("resolving . . .");
+
diff --git a/community/buoh/buoh.install b/community/buoh/buoh.install
new file mode 100644
index 000000000..2c1fcdf8a
--- /dev/null
+++ b/community/buoh/buoh.install
@@ -0,0 +1,24 @@
+pkgname=buoh
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t usr/share/icons/hicolor
+}
diff --git a/community/busybox/PKGBUILD b/community/busybox/PKGBUILD
new file mode 100644
index 000000000..17b0e32bd
--- /dev/null
+++ b/community/busybox/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 38368 2011-01-26 10:25:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jens Pranaitis <jens@jenux.homelinux.org>
+
+pkgname=busybox
+pkgver=1.18.2
+pkgrel=1
+pkgdesc="Utilities for rescue and embedded systems"
+arch=("i686" "x86_64")
+url="http://busybox.net"
+license=('GPL')
+makedepends=("make" "gcc" "sed" "ncurses")
+options=()
+source=($url/downloads/$pkgname-$pkgver.tar.bz2
+ config)
+md5sums=('69a82091e5710b72db5ce0e14e7c0cd7'
+ '10356174db56da484eb8c43c90aee7b7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cp $srcdir/config .config
+ # if you want to run menuconfig uncomment the following line:
+ # make menuconfig ; return 1
+ make
+ mkdir $pkgdir/bin
+ install -m755 busybox $pkgdir/bin/
+}
diff --git a/community/busybox/config b/community/busybox/config
new file mode 100644
index 000000000..5021699f1
--- /dev/null
+++ b/community/busybox/config
@@ -0,0 +1,986 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.18.2
+# Wed Jan 26 10:23:18 2011
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_DESKTOP is not set
+# CONFIG_EXTRA_COMPAT is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_INSTALL_NO_USR is not set
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_WTMP=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+CONFIG_FEATURE_PREFER_APPLETS=y
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_EXTRA_CFLAGS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Installation Options ("make install" behavior)
+#
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+CONFIG_FEATURE_FAST_TOP=y
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+# CONFIG_FEATURE_EDITING_VI is not set
+CONFIG_FEATURE_EDITING_HISTORY=15
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+# CONFIG_FEATURE_EDITING_FANCY_PROMPT is not set
+# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
+CONFIG_FEATURE_NON_POSIX_CP=y
+# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
+CONFIG_FEATURE_COPYBUF_KB=4
+# CONFIG_MONOTONIC_SYSCALL is not set
+CONFIG_IOCTL_HEX2STR_ERROR=y
+CONFIG_FEATURE_HWIB=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+CONFIG_FEATURE_SEAMLESS_LZMA=y
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_FEATURE_AR_CREATE=y
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+# CONFIG_FEATURE_CPIO_P is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_GZIP=y
+# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
+# CONFIG_LZOP is not set
+# CONFIG_LZOP_COMPR_HIGH is not set
+CONFIG_RPM2CPIO=y
+CONFIG_RPM=y
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_TO_COMMAND=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+CONFIG_FEATURE_DATE_COMPAT=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_BASE64=y
+CONFIG_CAL=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
+CONFIG_CUT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+# CONFIG_FEATURE_DF_FANCY is not set
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+# CONFIG_FSYNC is not set
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+# CONFIG_SHA256SUM is not set
+# CONFIG_SHA512SUM is not set
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_FEATURE_FLOAT_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TOUCH=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum, sha256sum, sha512sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_FGCONSOLE=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETFONT=y
+# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
+CONFIG_DEFAULT_SETFONT_DIR=""
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+CONFIG_FEATURE_LOADFONT_RAW=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_PATCH=y
+CONFIG_AWK=y
+# CONFIG_FEATURE_AWK_LIBM is not set
+CONFIG_CMP=y
+CONFIG_DIFF=y
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+# CONFIG_FEATURE_VI_8BIT is not set
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+CONFIG_FEATURE_FIND_DELETE=y
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+# CONFIG_FEATURE_FIND_LINKS is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_BOOTCHARTD=y
+CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y
+CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y
+CONFIG_HALT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+CONFIG_INIT=y
+CONFIG_FEATURE_USE_INITTAB=y
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+CONFIG_FEATURE_INIT_SCTTY=y
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+CONFIG_FEATURE_EXTRA_QUIET=y
+CONFIG_FEATURE_INIT_COREDUMPS=y
+CONFIG_FEATURE_INITRD=y
+CONFIG_INIT_TERMINAL_TYPE="linux"
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
+CONFIG_FEATURE_SHADOWPASSWDS=y
+CONFIG_USE_BB_PWD_GRP=y
+CONFIG_USE_BB_SHADOW=y
+CONFIG_USE_BB_CRYPT=y
+# CONFIG_USE_BB_CRYPT_SHA is not set
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_FIRST_SYSTEM_ID=100
+CONFIG_LAST_SYSTEM_ID=999
+CONFIG_ADDGROUP=y
+# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+CONFIG_FEATURE_SECURETTY=y
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+# CONFIG_TUNE2FS is not set
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODINFO=y
+CONFIG_MODPROBE_SMALL=y
+CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y
+CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y
+# CONFIG_INSMOD is not set
+# CONFIG_RMMOD is not set
+# CONFIG_LSMOD is not set
+# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_DEPMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=y
+CONFIG_REV=y
+# CONFIG_ACPID is not set
+# CONFIG_FEATURE_ACPID_COMPAT is not set
+# CONFIG_BLKID is not set
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+CONFIG_FEATURE_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+# CONFIG_FINDFS is not set
+CONFIG_FLOCK=y
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+# CONFIG_MKFS_EXT2 is not set
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+# CONFIG_MKFS_REISER is not set
+# CONFIG_MKFS_VFAT is not set
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
+# CONFIG_HD is not set
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+# CONFIG_LSPCI is not set
+# CONFIG_LSUSB is not set
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_MKSWAP=y
+# CONFIG_FEATURE_MKSWAP_UUID is not set
+CONFIG_MORE=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+CONFIG_FEATURE_MOUNT_VERBOSE=y
+# CONFIG_FEATURE_MOUNT_HELPERS is not set
+# CONFIG_FEATURE_MOUNT_LABEL is not set
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_RDEV=y
+CONFIG_READPROFILE=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+# CONFIG_SCRIPTREPLAY is not set
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+# CONFIG_VOLUMEID is not set
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+CONFIG_ADJTIMEX=y
+# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+# CONFIG_FEATURE_CROND_D is not set
+CONFIG_FEATURE_CROND_CALL_SENDMAIL=y
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_FEATURE_DC_LIBM is not set
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+# CONFIG_DEVMEM is not set
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+# CONFIG_FLASHCP is not set
+# CONFIG_FLASH_LOCK is not set
+# CONFIG_FLASH_UNLOCK is not set
+# CONFIG_FLASH_ERASEALL is not set
+# CONFIG_IONICE is not set
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+# CONFIG_FEATURE_LESS_WINCH is not set
+# CONFIG_FEATURE_LESS_DASHCMD is not set
+# CONFIG_FEATURE_LESS_LINENUMS is not set
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+CONFIG_MAN=y
+CONFIG_MICROCOM=y
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+# CONFIG_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+# CONFIG_TIMEOUT is not set
+CONFIG_TTYSIZE=y
+# CONFIG_VOLNAME is not set
+# CONFIG_WALL is not set
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_UNIX_LOCAL is not set
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+CONFIG_FEATURE_BRCTL_FANCY=y
+CONFIG_FEATURE_BRCTL_SHOW=y
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+# CONFIG_FTPD is not set
+# CONFIG_FEATURE_FTP_WRITE is not set
+# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+CONFIG_HTTPD=y
+CONFIG_FEATURE_HTTPD_RANGES=y
+CONFIG_FEATURE_HTTPD_USE_SENDFILE=y
+CONFIG_FEATURE_HTTPD_SETUID=y
+CONFIG_FEATURE_HTTPD_BASIC_AUTH=y
+CONFIG_FEATURE_HTTPD_AUTH_MD5=y
+CONFIG_FEATURE_HTTPD_CGI=y
+CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR=y
+CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV=y
+CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y
+CONFIG_FEATURE_HTTPD_ERROR_PAGES=y
+CONFIG_FEATURE_HTTPD_PROXY=y
+CONFIG_FEATURE_HTTPD_GZIP=y
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+# CONFIG_IFPLUGD is not set
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+CONFIG_INETD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
+CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+CONFIG_TCPSVD=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+CONFIG_TFTP=y
+CONFIG_TFTPD=y
+
+#
+# Common options for tftp/tftpd
+#
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
+# CONFIG_TFTP_DEBUG is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_TRACEROUTE6 is not set
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_TUNCTL is not set
+# CONFIG_FEATURE_TUNCTL_UG is not set
+# CONFIG_UDHCPD is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+CONFIG_UDPSVD=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_ZCIP=y
+
+#
+# Print Utilities
+#
+CONFIG_LPD=y
+CONFIG_LPR=y
+CONFIG_LPQ=y
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+CONFIG_SENDMAIL=y
+
+#
+# Process Utilities
+#
+CONFIG_IOSTAT=y
+CONFIG_MPSTAT=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+CONFIG_SMEMCAP=y
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+# CONFIG_FEATURE_PS_TIME is not set
+# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+# CONFIG_FEATURE_TOP_SMP_CPU is not set
+# CONFIG_FEATURE_TOP_DECIMALS is not set
+# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
+CONFIG_FEATURE_TOPMEM=y
+# CONFIG_FEATURE_SHOW_THREADS is not set
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+CONFIG_SV=y
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Shells
+#
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+# CONFIG_ASH_ALIAS is not set
+# CONFIG_ASH_GETOPTS is not set
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+# CONFIG_ASH_EXPAND_PRMT is not set
+# CONFIG_CTTYHACK is not set
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_BRACE_EXPANSION is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_SAVEHISTORY is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_MODE_X is not set
+# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
+CONFIG_SH_MATH_SUPPORT=y
+# CONFIG_SH_MATH_SUPPORT_64 is not set
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+CONFIG_FEATURE_SH_STANDALONE=y
+# CONFIG_FEATURE_SH_NOFORK is not set
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_FEATURE_KLOGD_KLOGCTL=y
+CONFIG_LOGGER=y
diff --git a/community/bwbar/PKGBUILD b/community/bwbar/PKGBUILD
new file mode 100644
index 000000000..9e26b7e68
--- /dev/null
+++ b/community/bwbar/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Mark Rosenstand <mark@borkware.net>
+
+pkgname=bwbar
+pkgver=1.2.3
+pkgrel=2
+arch=(i686 x86_64)
+pkgdesc="Generates text and graphical readout of the current bandwidth usage."
+url="http://www.kernel.org/pub/software/web/bwbar/"
+license=("GPL")
+depends=('libpng')
+source=(http://www.kernel.org/pub/software/web/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('766265ddf0615b552ff19d12f78be719')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure
+ make || return 1
+ install -D -m755 bwbar $startdir/pkg/usr/bin/bwbar
+}
diff --git a/community/bwm-ng/PKGBUILD b/community/bwm-ng/PKGBUILD
new file mode 100644
index 000000000..fca5ed161
--- /dev/null
+++ b/community/bwm-ng/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 11336 2010-02-09 22:40:01Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sven Kauber <celeon@gmail.com>
+
+pkgname=bwm-ng
+pkgver=0.6
+pkgrel=3
+pkgdesc="A small and simple console-based live bandwidth monitor"
+arch=(i686 x86_64)
+url="http://www.gropp.org/"
+license=('GPL')
+depends=('ncurses')
+options=('!emptydirs')
+source=(http://www.gropp.org/bwm-ng/${pkgname}-${pkgver}.tar.gz)
+md5sums=('d3a02484fb7946371bfb4e10927cebfb')
+
+build()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=${pkgdir}/usr/share/man
+ make || return 1
+ make prefix=${pkgdir} install || return 1
+
+ mkdir -p ${pkgdir}/usr && \
+ mv ${pkgdir}/bin ${pkgdir}/usr/ && \
+ #mv ${pkgdir}/share ${pkgdir}/usr/ && \
+ find ${pkgdir} -name '*.la' -exec rm {} \;
+}
diff --git a/community/cabextract/PKGBUILD b/community/cabextract/PKGBUILD
new file mode 100644
index 000000000..1c2eaa51c
--- /dev/null
+++ b/community/cabextract/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 34168 2010-12-04 02:18:42Z andrea $
+# Maintainer:
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=cabextract
+pkgver=1.3
+pkgrel=1
+pkgdesc="A program to extract Microsoft cabinet (.CAB) files"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.cabextract.org.uk/"
+depends=('glibc')
+source=("http://www.cabextract.org.uk/${pkgname}-${pkgver}.tar.gz")
+md5sums=('cb9a4a38470d2a71a0275968e7eb64d3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/cadaver/ChangeLog b/community/cadaver/ChangeLog
new file mode 100644
index 000000000..d22a5592c
--- /dev/null
+++ b/community/cadaver/ChangeLog
@@ -0,0 +1,3 @@
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/cadaver/PKGBUILD b/community/cadaver/PKGBUILD
new file mode 100644
index 000000000..e111b33b5
--- /dev/null
+++ b/community/cadaver/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 25264 2010-09-03 11:24:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=cadaver
+pkgver=0.23.3
+pkgrel=1
+pkgdesc="Command-line WebDAV client for Unix"
+arch=('i686' 'x86_64')
+url="http://www.webdav.org/cadaver"
+license=('GPL')
+depends=('neon')
+source=(http://www.webdav.org/cadaver/cadaver-$pkgver.tar.gz)
+md5sums=('502ecd601e467f8b16056d2acca39a6f')
+
+build() {
+ cd $srcdir/cadaver-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/cairo-clock/PKGBUILD b/community/cairo-clock/PKGBUILD
new file mode 100644
index 000000000..110270fc2
--- /dev/null
+++ b/community/cairo-clock/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 32901 2010-11-18 18:13:30Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Kane Wilson <kane_wilson@hotmail.com>
+
+pkgname=cairo-clock
+pkgver=0.3.4
+pkgrel=1
+pkgdesc="It's an analog clock displaying the system-time."
+arch=('i686' 'x86_64')
+url='http://macslow.thepimp.net/?page_id=23'
+license=('GPL')
+depends=('cairo' 'libglade>=2.6.0' 'librsvg>=2.14.0')
+makedepends=('intltool')
+source=("http://macslow.thepimp.net/projects/cairo-clock/${pkgname}-${pkgver}.tar.gz"
+ cairo-clock.patch)
+md5sums=('78e5b3aa3492aa6c182eaacae63a7c03'
+ 'a2ec378bf79dfb9a1b1418d7b2d341ff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i ../cairo-clock.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/community/cairo-clock/cairo-clock.patch b/community/cairo-clock/cairo-clock.patch
new file mode 100644
index 000000000..0f6a9775d
--- /dev/null
+++ b/community/cairo-clock/cairo-clock.patch
@@ -0,0 +1,18 @@
+--- src/cairo-clock.c.orig 2008-02-27 11:02:57.000000000 +0000
++++ src/cairo-clock.c 2008-06-10 07:51:17.000000000 +0100
+@@ -1487,15 +1487,6 @@
+ g_pErrorDialog = glade_xml_get_widget (pGladeXml,
+ "errorDialog");
+
+- if (!gdk_screen_is_composited (gtk_widget_get_screen (g_pMainWindow)))
+- {
+- gtk_window_set_icon_from_file (GTK_WINDOW (g_pErrorDialog),
+- get_icon_filename (),
+- NULL);
+- gtk_dialog_run (GTK_DIALOG (g_pErrorDialog));
+- exit (2);
+- }
+-
+ g_pPopUpMenu = glade_xml_get_widget (pGladeXml,
+ "popUpMenu");
+ pSettingsMenuItem = glade_xml_get_widget (pGladeXml,
diff --git a/community/cairo-compmgr/PKGBUILD b/community/cairo-compmgr/PKGBUILD
new file mode 100644
index 000000000..2ece2b9bf
--- /dev/null
+++ b/community/cairo-compmgr/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 42740 2011-03-20 09:26:47Z bluewind $
+# Maintainer: Florian Pritz <flo@xinu.at>
+# Contributor: Adam Hani Schakaki (krzd) <krzd@krzd.net>
+# Contributor: Det <nimetonmaili at gmail a-dot com>
+# Contributor: catalyst <catalyst@xaker.ru>
+# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us>
+# Contributor: jackobw
+# Contributor: Gianni Vialetto <g dot vialetto at gmail dot com>
+
+pkgname=cairo-compmgr
+pkgver=git20110320
+_commit=711fc7275b79cc802dc69658eb714ddc50666c06
+pkgrel=1
+epoch=1
+pkgdesc="A Cairo based composite manager"
+arch=(i686 x86_64)
+url="http://cairo-compmgr.tuxfamily.org/"
+license=(GPL)
+makedepends=(gettext gtk-doc "intltool>=0.41" gconf git)
+depends=("gtk2>=2.16.0" "vala>=0.11.6" libsm)
+install=cairo-compmgr.install
+options=(!libtool)
+#source=(http://download.tuxfamily.org/ccm/$pkgname/$pkgname-$pkgver.tar.gz)
+source=()
+md5sums=()
+
+__gitroot="git://git.tuxfamily.org/gitroot/ccm/cairocompmgr.git"
+__gitname="cairo-compmgr"
+
+
+build() {
+# cd "$srcdir/$pkgname-$pkgver"
+ cd "$srcdir"
+
+ msg "Connecting to GIT server...."
+
+ if [ -d $__gitname ] ; then
+ cd $__gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $__gitroot $__gitname
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf "$srcdir/$__gitname-build"
+ git clone "$srcdir/$__gitname" "$srcdir/$__gitname-build"
+ cd "$srcdir/$__gitname-build"
+ git checkout "$_commit"
+
+ sed -i 's!vala-0.10!libvala-0.12!' vapi/cairo-compmgr.deps configure.ac
+ ./autogen.sh --prefix=/usr
+ make -j1
+}
+
+package() {
+ #cd "$srcdir/$pkgname-$pkgver"
+ cd "$srcdir/$__gitname-build"
+
+ make DESTDIR="$pkgdir" install
+ mkdir -p "$pkgdir/usr/share/gconf/schemas/"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/cairo-compmgr.schemas" "$pkgdir/etc/gconf/schemas/*.schemas"
+ rm -rf "$pkgdir/etc/gconf/schemas/"
+}
diff --git a/community/cairo-compmgr/cairo-compmgr.install b/community/cairo-compmgr/cairo-compmgr.install
new file mode 100644
index 000000000..21c829413
--- /dev/null
+++ b/community/cairo-compmgr/cairo-compmgr.install
@@ -0,0 +1,17 @@
+post_install() {
+ gconfpkg --install cairo-compmgr
+}
+
+pre_upgrade() {
+ gconfpkg --uninstall cairo-compmgr
+}
+
+post_upgrade() {
+ gconfpkg --install cairo-compmgr
+}
+
+pre_remove() {
+ gconfpkg --uninstall cairo-compmgr
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/calc/PKGBUILD b/community/calc/PKGBUILD
new file mode 100644
index 000000000..911d7facb
--- /dev/null
+++ b/community/calc/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 37217 2011-01-12 14:33:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=calc
+pkgver=2.12.4.3
+pkgrel=1
+pkgdesc="console calculator"
+arch=(i686 x86_64)
+url="http://www.isthe.com/chongo/tech/comp/calc/"
+license=('GPL')
+depends=(glibc)
+source=(http://switch.dl.sf.net/sourceforge/calc/calc-$pkgver.tar.bz2)
+md5sums=('d95dccde71cc8d920af0f8375e85e9c8')
+
+build() {
+ cd $srcdir/calc-$pkgver
+
+ patch -p0 Makefile <<EOF
+1146c1146
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:/lib:/usr/lib:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH=/lib:/usr/lib:\${LIBDIR}
+1180c1180
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH= \${PWD}:\${LIBDIR}
+1233c1233
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:/lib:/usr/lib:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH=/lib:/usr/lib:\${LIBDIR}
+1275c1275
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:/lib:/usr/lib:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH=/lib:/usr/lib:\${LIBDIR}
+1312c1312
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:/lib:/usr/lib:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH=/lib:/usr/lib:\${LIBDIR}
+1350c1350
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:/lib:/usr/lib:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH=/lib:/usr/lib:\${LIBDIR}
+1406c1406
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:/lib:/usr/lib:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH=/lib:/usr/lib:\${LIBDIR}
+1443c1443
+< DEFAULT_LIB_INSTALL_PATH= \${PWD}:/lib:/usr/lib:\${LIBDIR}:/usr/local/lib
+---
+> DEFAULT_LIB_INSTALL_PATH=/lib:/usr/lib:\${LIBDIR}
+EOF
+
+ make -j1
+ make T=$pkgdir install
+ mv $pkgdir/usr/bin/cscript $startdir/pkg/usr/share/calc/
+}
diff --git a/community/calcurse/PKGBUILD b/community/calcurse/PKGBUILD
new file mode 100644
index 000000000..84c696bde
--- /dev/null
+++ b/community/calcurse/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 44138 2011-04-03 20:43:17Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Contributor: wain <wain.at.gmx.net>
+
+pkgname=calcurse
+pkgver=2.8
+pkgrel=2
+pkgdesc='A text-based personal organizer.'
+arch=('i686' 'x86_64')
+url='http://calcurse.org/'
+license=('BSD')
+depends=('ncurses')
+source=("http://calcurse.org/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('124d40c0912b12021996220f02b759cc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/community/calibre/PKGBUILD b/community/calibre/PKGBUILD
new file mode 100644
index 000000000..1c212359e
--- /dev/null
+++ b/community/calibre/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 44077 2011-04-01 22:22:26Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Petrov Roman <nwhisper@gmail.com>
+# Contributor: Andrea Fagiani <andfagiani _at_ gmail dot com>
+
+pkgname=calibre
+pkgver=0.7.53
+pkgrel=1
+pkgdesc="Ebook management application"
+arch=('i686' 'x86_64')
+url="http://calibre.kovidgoyal.net/"
+license=('GPL3')
+depends=('python-dateutil' 'python2-cssutils' 'python-pypdf' 'cherrypy'
+ 'python-mechanize' 'podofo' 'libwmf' 'python-beautifulsoup'
+ 'imagemagick' 'poppler-qt' 'chmlib' 'python-lxml' 'libusb'
+ 'python-imaging' 'desktop-file-utils' 'shared-mime-info'
+ 'python-dnspython' 'unrar' 'python2-qt' 'icu')
+makedepends=('python2-pycountry')
+optdepends=('ipython: to use calibre-debug')
+install=calibre.install
+source=(http://calibre-ebook.googlecode.com/files/${pkgname}-${pkgver}.tar.gz
+ desktop_integration.patch)
+md5sums=('1b0ce46a0d7088bbc32383f1be212c16'
+ 'bcc538a3b004429bf8f5a0ac1d89a37f')
+
+build() {
+ cd "${pkgname}"
+
+ rm -rf src/{cherrypy,pyPdf}
+ sed -i -e "s/ldflags = shlex.split(ldflags)/ldflags = shlex.split(ldflags) + ['-fPIC']/" setup/extensions.py
+ sed -i -e 's:\(#!/usr/bin/env[ ]\+python$\|#!/usr/bin/python$\):\12:g' \
+ $(find . -regex ".*.py\|.*.recipe")
+
+ python2 setup.py build || return 1
+ python2 setup.py resources || return 1
+ python2 setup.py translations || return 1
+}
+
+package() {
+ cd ${pkgname}
+
+ patch -Np1 -i $srcdir/desktop_integration.patch || return 1
+
+ # More on desktop integration (e.g. enforce arch defaults)
+ sed -i -e "/self.create_uninstaller()/,/os.rmdir(config_dir)/d" \
+ -e "s|self.opts.staging_sharedir, 'man/man1'|self.opts.staging_root, 'usr/share/man/man1'|" \
+ -e "s|manpath, prog+'.1'+__appname__+'.bz2'|manpath, prog+'.1'+'.bz2'|" \
+ -e "s|old_udev = '/etc|old_udev = '${pkgdir}/etc|" \
+ -e "s/^Name=calibre/Name=Calibre/g" src/calibre/linux.py
+
+ # Fix the environment module location
+ sed -i -e "s|(prefix=.*)|(prefix='$pkgdir/usr')|g" setup/install.py
+
+ mkdir -p ${pkgdir}/usr/lib/python2.7/site-packages
+ python2 setup.py install --root=${pkgdir}/ --prefix=/usr \
+ --staging-bindir=${pkgdir}/usr/bin \
+ --staging-libdir=${pkgdir}/usr/lib \
+ --staging-sharedir=${pkgdir}/usr/share
+
+ find ${pkgdir} -type d -empty -delete
+
+ # Decompress the man pages so makepkg will do it for us.
+ for decom in ${pkgdir}/usr/share/man/man1/*.bz2; do
+ bzip2 -d ${decom}
+ done
+}
diff --git a/community/calibre/calibre.install b/community/calibre/calibre.install
new file mode 100644
index 000000000..6210bd0ab
--- /dev/null
+++ b/community/calibre/calibre.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/calibre/desktop_integration.patch b/community/calibre/desktop_integration.patch
new file mode 100644
index 000000000..fa58443ed
--- /dev/null
+++ b/community/calibre/desktop_integration.patch
@@ -0,0 +1,70 @@
+diff -rupN calibre.orig//src/calibre/linux.py calibre/src/calibre/linux.py
+--- calibre.orig//src/calibre/linux.py 2010-09-17 22:38:02.000000000 +0200
++++ calibre/src/calibre/linux.py 2010-09-19 15:50:15.029705851 +0200
+@@ -334,52 +323,39 @@ class PostInstall:
+
+ with TemporaryDirectory() as tdir:
+ with CurrentDir(tdir):
+- render_img('mimetypes/lrf.png', 'calibre-lrf.png')
+- check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png application-lrf', shell=True)
+- self.icon_resources.append(('mimetypes', 'application-lrf', '128'))
+- check_call('xdg-icon-resource install --noupdate --context mimetypes --size 128 calibre-lrf.png text-lrs', shell=True)
+- self.icon_resources.append(('mimetypes', 'application-lrs',
+- '128'))
+- render_img('lt.png', 'calibre-gui.png')
+- check_call('xdg-icon-resource install --noupdate --size 128 calibre-gui.png calibre-gui', shell=True)
+- self.icon_resources.append(('apps', 'calibre-gui', '128'))
+- render_img('viewer.png', 'calibre-viewer.png')
+- check_call('xdg-icon-resource install --size 128 calibre-viewer.png calibre-viewer', shell=True)
+- self.icon_resources.append(('apps', 'calibre-viewer', '128'))
++ dir = os.path.join(self.opts.staging_sharedir,'../pixmaps')
++ os.mkdir(dir)
++ render_img('mimetypes/lrf.png', os.path.join(dir,'calibre-lrf.png'))
++ render_img('lt.png', os.path.join(dir, 'calibre-gui.png'))
++ render_img('viewer.png', os.path.join(dir, 'calibre-viewer.png'))
+
+ mimetypes = set([])
+ for x in all_input_formats():
+ mt = guess_type('dummy.'+x)[0]
+- if mt and 'chemical' not in mt:
++ if mt and 'chemical' not in mt and 'text' not in mt and 'pdf' not in mt and 'xhtml' not in mt:
+ mimetypes.add(mt)
+
+ def write_mimetypes(f):
+ f.write('MimeType=%s;\n'%';'.join(mimetypes))
+
+- f = open('calibre-lrfviewer.desktop', 'wb')
++ dir = os.path.join(self.opts.staging_sharedir,'../applications')
++ os.mkdir(dir)
++ f = open(os.path.join(dir, 'calibre-lrfviewer.desktop'), 'wb')
+ f.write(VIEWER)
+ f.close()
+- f = open('calibre-ebook-viewer.desktop', 'wb')
++ f = open(os.path.join(dir, 'calibre-ebook-viewer.desktop'), 'wb')
+ f.write(EVIEWER)
+ write_mimetypes(f)
+ f.close()
+- f = open('calibre-gui.desktop', 'wb')
++ f = open(os.path.join(dir, 'calibre-gui.desktop'), 'wb')
+ f.write(GUI)
+ write_mimetypes(f)
+ f.close()
+- des = ('calibre-gui.desktop', 'calibre-lrfviewer.desktop',
+- 'calibre-ebook-viewer.desktop')
+- for x in des:
+- cmd = ['xdg-desktop-menu', 'install', './'+x]
+- if x != des[-1]:
+- cmd.insert(2, '--noupdate')
+- check_call(' '.join(cmd), shell=True)
+- self.menu_resources.append(x)
+- f = open('calibre-mimetypes', 'wb')
++ dir = os.path.join(self.opts.staging_sharedir,'../mime/packages/')
++ os.makedirs(dir)
++ f = open(os.path.join(dir, 'calibre.xml'), 'wb')
+ f.write(MIME)
+ f.close()
+- self.mime_resources.append('calibre-mimetypes')
+- check_call('xdg-mime install ./calibre-mimetypes', shell=True)
+ except Exception:
+ if self.opts.fatal_errors:
+ raise
diff --git a/community/camlp5-transitional/PKGBUILD b/community/camlp5-transitional/PKGBUILD
new file mode 100644
index 000000000..270fd8a97
--- /dev/null
+++ b/community/camlp5-transitional/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: George Giorgidze <giorgidze@gmail.com>
+# Contributor: Massimiliano Brocchini <brocchini@netseven.it>
+
+pkgname=camlp5-transitional
+pkgver=6.02.0
+pkgrel=1
+pkgdesc='Camlp5 is a preprocessor-pretty-printer of OCaml.'
+arch=('i686' 'x86_64')
+url='http://pauillac.inria.fr/~ddr/camlp5/'
+license=('BSD')
+depends=('sh')
+makedepends=('ocaml')
+conflicts=('camlp5')
+source=("http://pauillac.inria.fr/~ddr/camlp5/distrib/src/camlp5-${pkgver}.tgz")
+md5sums=('78ee9ea1b4f8e05af3f85fcbe14a7379')
+options=('!makeflags')
+
+build() {
+ cd camlp5-${pkgver}
+
+ ./configure \
+ -prefix '/usr' \
+ -mandir '/usr/share/man' \
+ -transitional
+
+ make world.opt
+}
+
+package() {
+ cd camlp5-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/camlp5/PKGBUILD b/community/camlp5/PKGBUILD
new file mode 100644
index 000000000..53a221f3a
--- /dev/null
+++ b/community/camlp5/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Nathan Owe <ndowens.aur at gmail dot com>
+
+pkgname=camlp5
+pkgver=6.02.0
+pkgrel=1
+pkgdesc='A preprocessor-pretty-printer of OCaml.'
+arch=('i686' 'x86_64')
+url='http://pauillac.inria.fr/~ddr/camlp5/'
+license=('BSD')
+depends=('sh')
+makedepends=('ocaml')
+conflicts=('camlp5-transitional')
+source=("http://pauillac.inria.fr/~ddr/camlp5/distrib/src/${pkgname}-${pkgver}.tgz")
+md5sums=('78ee9ea1b4f8e05af3f85fcbe14a7379')
+options=('!makeflags')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ -prefix '/usr' \
+ -mandir '/usr/share/man' \
+ -strict
+
+ make world.opt
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/canorus/PKGBUILD b/community/canorus/PKGBUILD
new file mode 100644
index 000000000..c7df6e5b5
--- /dev/null
+++ b/community/canorus/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Arch Linux Pro Audio <dev@archaudio.org>
+# Contributor: Coenraad van der Westhuizen <chwesthuizen@gmail.com>
+# Contributor: hm_b <holger (at) music-nerds (dot) net>
+
+pkgname=canorus
+pkgver=0.7.R1002
+pkgrel=3
+pkgdesc="A free music score editor"
+arch=('i686' 'x86_64')
+url="http://www.canorus.org/"
+license=('GPL')
+depends=('qt' 'alsa-lib' 'python2' 'swig')
+makedepends=('cmake')
+options=('strip')
+source=(http://download.berlios.de/$pkgname/$pkgname\_$pkgver\_source.tar.bz2)
+md5sums=('5575b7c54633056a463177579a390318')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ export QTDIR=/usr
+
+ cmake . -DCMAKE_INSTALL_PREFIX=$pkgdir/usr -DDEFAULT_DATA_DIR="/usr/share/canorus"
+ make install
+
+ install -d $pkgdir/usr/share/{applications,pixmaps}
+ cp canorus.desktop $pkgdir/usr/share/applications
+ cp $pkgdir/usr/share/{canorus/images/clogosm.png,pixmaps/canorus.png}
+}
diff --git a/community/caph/PKGBUILD b/community/caph/PKGBUILD
new file mode 100644
index 000000000..99c4e4366
--- /dev/null
+++ b/community/caph/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 33204 2010-11-22 23:40:32Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: jose <jose1711 [at] gmail (dot) com>
+
+pkgname=caph
+arch=('i686' 'x86_64')
+pkgver=1.1
+pkgrel=1
+pkgdesc="A sandbox game based on physics which uses doodles as a primary gameplay element"
+license=('GPL')
+url="http://sourceforge.net/projects/caphgame/"
+depends=('sdl' 'libgl' 'libpng')
+makedepends=('mesa')
+source=("http://sourceforge.net/projects/caphgame/files/caph/caphgame-${pkgver}/caph-${pkgver}.tar.bz2"
+ "caph.desktop")
+md5sums=('dbc2cfbb5cd98a77c5b731515d3a77b9'
+ '79c6448995026f77fd912dd109b50287')
+
+build() {
+ cd $srcdir/caph-${pkgver}/src
+ mkdir -p $pkgdir/usr/{bin,share/{caph/maps,doc/caph}}
+ ./confg
+ ./build
+}
+
+package() {
+ cd $srcdir/caph-${pkgver}/src
+ install -D -m755 ./caph $pkgdir/usr/bin/caph
+ install -D -m644 ../doc/caph/* $pkgdir/usr/share/doc/caph/ || true
+ install -D -m644 ../share/caph/* $pkgdir/usr/share/caph/ || true
+ install -D -m644 ../share/caph/maps/* $pkgdir/usr/share/caph/maps || true
+ install -D -m644 $srcdir/caph.desktop $pkgdir/usr/share/applications/caph.desktop
+ install -D -m644 ../share/caph/brush.png $pkgdir/usr/share/pixmaps/caph.png
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community/caph/caph.desktop b/community/caph/caph.desktop
new file mode 100644
index 000000000..6cc6c711c
--- /dev/null
+++ b/community/caph/caph.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=Caph
+Comment=Sandbox game based on physics
+Exec=caph
+Icon=caph.png
+Categories=Game;LogicGame;
diff --git a/community/castget/PKGBUILD b/community/castget/PKGBUILD
new file mode 100644
index 000000000..c46124cef
--- /dev/null
+++ b/community/castget/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 19913 2010-06-30 19:11:26Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+
+pkgname=castget
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="A simple, command-line based RSS enclosure downloader"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/castget/"
+license=('GPL')
+depends=('glib2' 'libxml2' 'curl' 'id3lib')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('e80096715efc17d1d87de793871e0006')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/castget/castget.changelog b/community/castget/castget.changelog
new file mode 100644
index 000000000..101086d83
--- /dev/null
+++ b/community/castget/castget.changelog
@@ -0,0 +1,6 @@
+2010-06-30 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.1.0
+
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+ * Built for x86_64
+
diff --git a/community/catdvi/PKGBUILD b/community/catdvi/PKGBUILD
new file mode 100644
index 000000000..880a5bdac
--- /dev/null
+++ b/community/catdvi/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Xilon <xilonmu@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=catdvi
+pkgver=0.14
+pkgrel=3
+pkgdesc="A DVI to plain text translator"
+arch=('i686' 'x86_64')
+url="http://catdvi.sourceforge.net"
+license=('GPL')
+depends=('glibc' 'texlive-core')
+maedepends=('texlive-fontsextra')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('b18eac65baf522c1e37bb3dc37ab42c3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+
+ install -d $pkgdir/usr/bin $pkgdir/usr/share/man/man1 || return 1
+ sed -i "s#\(bindir = \)\(.*\)#\1$pkgdir\2#" config.mk || return 1
+ sed -i "s#\(mandir = \)\(.*\)#\1$pkgdir\2#" config.mk || return 1
+
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/ccd2iso/ChangeLog b/community/ccd2iso/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/ccd2iso/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/ccd2iso/PKGBUILD b/community/ccd2iso/PKGBUILD
new file mode 100644
index 000000000..999e55d53
--- /dev/null
+++ b/community/ccd2iso/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 21840 2010-07-17 17:46:20Z dgriffiths $
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ccd2iso
+pkgver=0.3
+pkgrel=6
+pkgdesc="Converts CCD/IMG CloneCD images to ISO format"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/ccd2iso"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a7df1c46cb710f2fc8ebd88c2e64ce65')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/ccid/PKGBUILD b/community/ccid/PKGBUILD
new file mode 100644
index 000000000..4d4c4665d
--- /dev/null
+++ b/community/ccid/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 40459 2011-02-24 02:16:11Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Daniel Plaza <daniel.plaza.espi@gmail.com>
+
+pkgname=ccid
+pkgver=1.4.2
+pkgrel=1
+pkgdesc="A generic USB Chip/Smart Card Interface Devices driver"
+arch=('i686' 'x86_64')
+url="http://pcsclite.alioth.debian.org/ccid.html"
+license=('LGPL' 'GPL')
+depends=('pcsclite')
+makedepends=('pkgconfig')
+backup=(etc/reader.conf.d/libccidtwin)
+source=(https://alioth.debian.org/frs/download.php/3518/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4a8f954c0aef48e8e5ab5d458cf819e8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-twinserial || return 1
+
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -D -m644 src/92_pcscd_ccid.rules "${pkgdir}/lib/udev/rules.d/85-pcscd-ccid.rules" || return 1
+}
diff --git a/community/cclive/PKGBUILD b/community/cclive/PKGBUILD
new file mode 100644
index 000000000..6e5c1766d
--- /dev/null
+++ b/community/cclive/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 43777 2011-03-29 18:26:08Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: joyfulgirl@archlinux.us
+# Contributor: nathan owe ndowens04 at gmail dot com
+
+pkgname=cclive
+pkgver=0.7.3.1
+pkgrel=2
+pkgdesc='Commandline downloader for popular video websites.'
+arch=('i686' 'x86_64')
+url='http://cclive.sourceforge.net/'
+license=('GPL3')
+depends=('boost-libs' 'quvi')
+makedepends=('cmake' 'boost')
+source=("http://downloads.sourceforge.net/project/${pkgname}/0.7/${pkgname}-${pkgver}.tar.gz")
+md5sums=('de25297e9f34677d4d1920078d9cf254')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ cmake -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/ccmalloc/PKGBUILD b/community/ccmalloc/PKGBUILD
new file mode 100644
index 000000000..838a6bb7d
--- /dev/null
+++ b/community/ccmalloc/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 2304 2008-05-31 05:00:40Z paul $
+# Maintainer: aurelien <aurelien@archlinux.org>
+pkgname=ccmalloc
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="Track down memory related problems with C and C++ programs"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/sid/ccmalloc"
+license=('GPL2')
+depends=()
+source=(http://ftp.de.debian.org/debian/pool/main/c/ccmalloc/ccmalloc_$pkgver.orig.tar.gz
+ http://ftp.de.debian.org/debian/pool/main/c/ccmalloc/ccmalloc_$pkgver-9.diff.gz)
+md5sums=('b90d955149569bbc6e801739f099db3d'
+ '25c2654e6f3880bb58b82f46a7296dc6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/ccmalloc_$pkgver-9.diff
+ ./configure --prefix=/usr
+ make || return 1
+ make PREFIX=$pkgdir/usr install
+}
diff --git a/community/ccrtp/PKGBUILD b/community/ccrtp/PKGBUILD
new file mode 100644
index 000000000..19a66964b
--- /dev/null
+++ b/community/ccrtp/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 33232 2010-11-23 12:15:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor:
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=ccrtp
+pkgver=1.7.1
+pkgrel=1
+pkgdesc="GNU ccRTP"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/ccrtp"
+license=('GPL' 'custom')
+depends=('commoncpp2' 'zlib' 'libxml2' 'libgcrypt')
+options=('!libtool')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('9f5d34a18f2c1c779d2e5818cc4987f8')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # arch64 fix from Mandriva
+ [ "$CARCH" == "x86_64" ] && export CXXFLAGS="$CXXFLAGS -fpermissive"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m644 COPYING.addendum ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+ rm -rf ${pkgdir}/usr/share/info/dir
+}
diff --git a/community/ccrypt/PKGBUILD b/community/ccrypt/PKGBUILD
new file mode 100644
index 000000000..c2960de0e
--- /dev/null
+++ b/community/ccrypt/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 6074 2009-11-29 08:39:09Z giovanni $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=ccrypt
+pkgver=1.9
+pkgrel=1
+pkgdesc="A command-line utility for encrypting and decrypting files and streams"
+arch=('i686' 'x86_64')
+url="http://ccrypt.sourceforge.net"
+license=('GPL2')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('c3f78019d7a166dd66f1d4b1390c62c2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/ccze/PKGBUILD b/community/ccze/PKGBUILD
new file mode 100644
index 000000000..0ff0df300
--- /dev/null
+++ b/community/ccze/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 24887 2010-08-29 16:28:18Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=ccze
+pkgver=0.2.1
+pkgrel=5
+pkgdesc="Robust and modular log colorizer with many plugins"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/ccze/"
+license=('GPL')
+depends=('ncurses' 'pcre')
+makedepends=('patch')
+source=(ftp://ftp.debian.org/debian/pool/main/c/$pkgname/${pkgname}_${pkgver}.orig.tar.gz \
+ $pkgname-fix-segfault.diff)
+md5sums=('221966bce7c5f011eca38157241a0432'
+ '294e82702d179264abc43596da955358')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np0 -i ${srcdir}/$pkgname-fix-segfault.diff
+
+ #killing a bug
+ sed -e 's/-Wswitch -Wmulticharacter/-Wswitch/' -i src/Makefile.in
+ sed -e '/#undef error_t/d' -i system.h.in
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ccze/ccze-fix-segfault.diff b/community/ccze/ccze-fix-segfault.diff
new file mode 100644
index 000000000..b2ca7d815
--- /dev/null
+++ b/community/ccze/ccze-fix-segfault.diff
@@ -0,0 +1,11 @@
+--- src/ccze.c.orig 2003-05-13 20:09:30.000000000 +0200
++++ src/ccze.c 2010-08-29 18:14:53.000000000 +0200
+@@ -212 +212 @@
+- plugin = strtok (optarg, "=");
++ plugin = strtok (arg, "=");
+@@ -252 +252 @@
+- subopts = optarg;
++ subopts = arg;
+@@ -276 +276 @@
+- subopts = optarg;
++ subopts = arg;
diff --git a/community/cdbxx/PKGBUILD b/community/cdbxx/PKGBUILD
new file mode 100644
index 000000000..3caa5d468
--- /dev/null
+++ b/community/cdbxx/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 17495 2010-05-24 14:11:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cdbxx
+pkgver=0.0.1rc2
+pkgrel=2
+pkgdesc="cdbxx is a small STL style C++ library for TinyCDB implementation of Constant Database"
+arch=(i686 x86_64)
+url="http://cdbxx.sourceforge.net/"
+license=("GPL")
+depends=(gcc)
+makedepends=(tinycdb)
+source=(http://downloads.sourceforge.net/sourceforge/cdbxx/$pkgname-$pkgver.tar.bz2)
+md5sums=('8c7f3eebe5c090ddea4aebf5445a1621')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ sed -i 's#LDFLAGS = -Wl,-rpath,$(shell pwd)/../src/ -L../src/ -lcdbxx#LDFLAGS = -Wl,-rpath,$(shell pwd)/../src/ -L../src/ -lcdbxx -lcdb#' ./testsuite/Makefile
+ sed -i '1,2i#include <string.h>' src/db.cc
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/cdcd/PKGBUILD b/community/cdcd/PKGBUILD
new file mode 100644
index 000000000..e840a3d38
--- /dev/null
+++ b/community/cdcd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 52061 2009-09-14 22:50:09Z giovanni $
+# Maintainer: dorphell <dorphell@archlinux.org>
+#contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=cdcd
+pkgver=0.6.6
+pkgrel=5
+pkgdesc="A commandline cd-player"
+arch=('i686' 'x86_64')
+depends=('libcdaudio' 'readline')
+source=(http://downloads.sourceforge.net/sourceforge/libcdaudio/$pkgname-$pkgver.tar.gz
+ cdcd-0.6.6-x86_64.patch)
+url="http://libcdaudio.sourceforge.net/"
+license=('GPL2')
+md5sums=('dc17f2e275c7214cb693f6abb50f29fb'
+ '7c39f01408fc084e2c62da4da324370e')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -Np1 -i ${srcdir}/cdcd-0.6.6-x86_64.patch
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+
+ install -dm755 ${pkgdir}/usr/share
+ mv ${pkgdir}/usr/{man,info} ${pkgdir}/usr/share
+ rm ${pkgdir}/usr/share/info/dir
+}
diff --git a/community/cdcd/cdcd-0.6.6-x86_64.patch b/community/cdcd/cdcd-0.6.6-x86_64.patch
new file mode 100644
index 000000000..25d122435
--- /dev/null
+++ b/community/cdcd/cdcd-0.6.6-x86_64.patch
@@ -0,0 +1,11 @@
+--- a/config.sub 2009-09-15 00:42:36.000000000 -0700
++++ b/config.sub 2009-09-15 00:42:36.000000000 -0700
+@@ -155,7 +155,7 @@
+ | alpha | we32k | ns16k | clipper | i370 | sh \
+ | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
+ | pdp11 | mips64el | mips64orion | mips64orionel \
+- | sparc | sparclet | sparclite | sparc64)
++ | sparc | sparclet | sparclite | sparc64 | x86_64-*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # We use `pc' rather than `unknown'
diff --git a/community/cdck/PKGBUILD b/community/cdck/PKGBUILD
new file mode 100644
index 000000000..260a77374
--- /dev/null
+++ b/community/cdck/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 17301 2010-05-22 18:07:33Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+# Previous Maintainer: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Contributor: Slash <demodevil5[at]yahoo[dot]com>
+
+pkgname=cdck
+pkgver=0.7.0
+pkgrel=3
+pkgdesc="A simple program to verify CD/DVD quality"
+arch=('i686' 'x86_64')
+url="http://swaj.net/unix/"
+license=('GPL')
+depends=(gcc-libs)
+makedepends=('perl')
+options=('!libtool')
+source=(http://swaj.net/unix/cdck/${pkgname}-${pkgver}.tar.gz)
+md5sums=('15029d54b99f2e5cf8aae28077669d3f')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/cdcover/PKGBUILD b/community/cdcover/PKGBUILD
new file mode 100644
index 000000000..9c82180a0
--- /dev/null
+++ b/community/cdcover/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 26144 2010-09-13 19:36:37Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Roland Schaeuble <rschaeuble@gmx.ch>
+
+pkgname=cdcover
+pkgver=0.7.4
+pkgrel=4
+pkgdesc="cdcover allows the creation of inlay-sheets for cd-cases and dvd's"
+arch=('i686' 'x86_64')
+url="http://cdcover.sourceforge.net"
+license=('GPL')
+depends=('python2' 'tk')
+install=('cdcover.install')
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('ab54e927e1c2f9210062ae9425cea669')
+
+build() {
+ cd $srcdir/$pkgname
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' src/cdcover.py
+
+ patch -p0 Makefile <<EOF
+13c13
+< IMAGEFILES=autonum.gif cddb.gif exit.gif gv.gif logo.gif nocddb.gif ps.gif
+---
+> IMAGEFILES=application-exit.gif cddb.gif document-print-preview.gif document-save.gif logo.gif nocddb.gif renumber.gif
+EOF
+
+ make target=/usr prefix=$pkgdir/usr install
+ rm -rf $pkgdir/usr/doc
+}
diff --git a/community/cdcover/cdcover.install b/community/cdcover/cdcover.install
new file mode 100644
index 000000000..5df4b5c8a
--- /dev/null
+++ b/community/cdcover/cdcover.install
@@ -0,0 +1,7 @@
+post_install()
+{
+ echo "Installation of a postscript viewer such as 'gv' or 'ggv'"
+ echo "is highly recommended."
+ echo "To benefit from cddb features, installation of 'discid'"
+ echo "and 'pycddb' is required."
+}
diff --git a/community/cddb-py/PKGBUILD b/community/cddb-py/PKGBUILD
new file mode 100644
index 000000000..6c745cbf7
--- /dev/null
+++ b/community/cddb-py/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 26144 2010-09-13 19:36:37Z schuay $
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+# Contributor: David Keogh <davekeogh@shaw.ca>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=cddb-py
+pkgver=1.4
+pkgrel=5
+pkgdesc="CDDB-Server access from Python"
+arch=('i686' 'x86_64')
+url="http://cddb-py.sourceforge.net"
+license=('GPL')
+depends=('python2')
+source=("http://downloads.sourceforge.net/sourceforge/cddb-py/CDDB-${pkgver}.tar.gz")
+md5sums=('254698082bafe3030d07d88fb7e13fe2')
+
+package() {
+ cd ${srcdir}/CDDB-${pkgver}
+
+ for file in CDDB.py DiscID.py; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ python2 setup.py install --root=${pkgdir} --optimize=1
+}
diff --git a/community/cdemu-client/PKGBUILD b/community/cdemu-client/PKGBUILD
new file mode 100644
index 000000000..f9504f26f
--- /dev/null
+++ b/community/cdemu-client/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+pkgname=cdemu-client
+pkgver=1.3.0
+pkgrel=2
+pkgdesc="Simple command-line client for controlling cdemu-daemon"
+arch=('i686' 'x86_64')
+url="http://cdemu.sourceforge.net/"
+license=('GPL')
+depends=('python2' 'dbus-python' 'cdemu-daemon')
+makedepends=('intltool')
+conflicts=('cdemu')
+source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz)
+md5sums=('e1789ec4f839e9dbdb5db88e3923d7ae')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' src/cdemu
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/cdemu-daemon/60-vhba.rules b/community/cdemu-daemon/60-vhba.rules
new file mode 100644
index 000000000..0a80d63e0
--- /dev/null
+++ b/community/cdemu-daemon/60-vhba.rules
@@ -0,0 +1 @@
+KERNEL=="vhba_ctl", NAME="%k", MODE="0660", OWNER="root", GROUP="cdemu"
diff --git a/community/cdemu-daemon/PKGBUILD b/community/cdemu-daemon/PKGBUILD
new file mode 100644
index 000000000..bdea742ae
--- /dev/null
+++ b/community/cdemu-daemon/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 40133 2011-02-20 13:02:28Z jelle $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=cdemu-daemon
+pkgver=1.3.0
+pkgrel=4
+pkgdesc="CD/DVD-ROM device emulator daemon"
+arch=('i686' 'x86_64')
+backup=('etc/conf.d/cdemud'
+ 'etc/dbus-1/system.d/cdemud-dbus.conf')
+url="http://cdemu.sourceforge.net/"
+license=('GPL')
+depends=('glib2' 'dbus' 'dbus-glib' 'libdaemon' 'vhba-module' 'libmirage' 'libao')
+install=cdemud.install
+source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz
+ cdemud.conf
+ cdemud.rc
+ 60-vhba.rules)
+md5sums=('4ec07bd202ac1dcc2f352fc394268d67'
+ '26b94a626c2c1d0a83ad5a7593dff70f'
+ '655b2bf46802f2fa7821a649cecd1c4d'
+ '93324b320e7b68d01ad9a0b548018ed5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ install -m 644 -D ../cdemud.conf $pkgdir/etc/conf.d/cdemud
+ install -m 755 -D ../cdemud.rc $pkgdir/etc/rc.d/cdemud
+
+ # Install udev rule for non-root mounting of iso's
+ install -D -m 755 "${srcdir}/60-vhba.rules" "$pkgdir/lib/udev/rules.d/60-vhba.rules"
+
+}
diff --git a/community/cdemu-daemon/cdemud.conf b/community/cdemu-daemon/cdemud.conf
new file mode 100644
index 000000000..91ada613f
--- /dev/null
+++ b/community/cdemu-daemon/cdemud.conf
@@ -0,0 +1,8 @@
+# how many optical drives to emulate
+NUM_DRIVES=1
+
+# control device
+CTL_DEVICE=/dev/vhba_ctl
+
+# audio backend (null or alsa)
+AUDIO_BACKEND=null
diff --git a/community/cdemu-daemon/cdemud.install b/community/cdemu-daemon/cdemud.install
new file mode 100644
index 000000000..699b3f0e5
--- /dev/null
+++ b/community/cdemu-daemon/cdemud.install
@@ -0,0 +1,9 @@
+post_install () {
+ echo ">> Place 'cdemud' in DAEMONS= in /etc/rc.conf to enable cdemud on system boot."
+ echo ">> If the alsa-lib package is installed, cdemud can use the ALSA audio backend"
+ echo ">> (edit /etc/conf.d/cdemud to enable this)."
+ groupadd cdemu
+}
+post_remove() {
+ groupdel cdemu
+}
diff --git a/community/cdemu-daemon/cdemud.rc b/community/cdemu-daemon/cdemud.rc
new file mode 100644
index 000000000..c13fa6239
--- /dev/null
+++ b/community/cdemu-daemon/cdemud.rc
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/cdemud
+
+case "$1" in
+ start)
+ stat_busy "Loading vhba and loop modules"
+ modprobe loop
+ modprobe vhba
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+
+ stat_busy "Waiting for $CTL_DEVICE"
+ i=0
+ until [ -c $CTL_DEVICE -o $i -ge 10 ]; do
+ i=`expr $i + 1`
+ sleep 1
+ done
+ if [ -c $CTL_DEVICE ]; then
+ stat_done
+ else
+ stat_fail
+ fi
+
+ stat_busy "Starting cdemud"
+ cdemud -d -n $NUM_DRIVES -c $CTL_DEVICE -a $AUDIO_BACKEND &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon cdemud
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping cdemud"
+ cdemud -k &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ rm_daemon cdemud
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/cdfs/PKGBUILD b/community/cdfs/PKGBUILD
new file mode 100644
index 000000000..bf4dd2d8b
--- /dev/null
+++ b/community/cdfs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 38934 2011-02-03 15:17:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar>
+
+pkgname=cdfs
+pkgver=2.6.27
+pkgrel=13
+pkgdesc="File system module that 'exports' all tracks and boot images on a CD as normal files."
+arch=(i686 x86_64)
+url="http://www.elis.UGent.be/~ronsse/cdfs/"
+license=('GPL')
+install=cdfs.install
+source=("http://www.elis.UGent.be/~ronsse/cdfs/download/$pkgname-$pkgver.tar.bz2")
+md5sums=('ac64c014a90e3c488394832ea29605b3')
+
+build() {
+ _kernver=`pacman -Q kernel26 | cut -d . -f 3 | cut -f 1 -d -`
+ depends=("kernel26>=2.6.${_kernver}" "kernel26<2.6.`expr ${_kernver} + 1`")
+
+ cd $srcdir/$pkgname-$pkgver
+
+ patch cddata.c <<EOF
+85c85
+< .sendfile = generic_file_sendfile
+---
+> // .sendfile = generic_file_sendfile
+EOF
+
+ make
+ mkdir -p $pkgdir/lib/modules/`uname -r`/extra
+ cp cdfs.ko $pkgdir/lib/modules/`uname -r`/extra
+}
diff --git a/community/cdfs/cdfs.install b/community/cdfs/cdfs.install
new file mode 100644
index 000000000..3693d60ed
--- /dev/null
+++ b/community/cdfs/cdfs.install
@@ -0,0 +1,11 @@
+post_install() {
+ /sbin/depmod -a
+}
+
+post_upgrade() {
+ /sbin/depmod -a
+}
+
+post_remove() {
+ /sbin/depmod -a
+}
diff --git a/community/cegui/PKGBUILD b/community/cegui/PKGBUILD
new file mode 100644
index 000000000..9b5c83ac2
--- /dev/null
+++ b/community/cegui/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 37913 2011-01-19 01:10:11Z lcarlier $
+# Maintainer:
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>,
+# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
+
+pkgname=cegui
+pkgver=0.7.5
+pkgrel=1
+pkgdesc="A free library providing windowing and widgets for graphics APIs/engines"
+arch=(i686 x86_64)
+url="http://crayzedsgui.sourceforge.net"
+#options=('!libtool')
+license=("MIT")
+depends=('pcre' 'glew' 'expat' 'freetype2' 'libxml2' 'devil' 'freeglut' 'lua' 'silly')
+makedepends=('python2')
+source=(http://downloads.sourceforge.net/crayzedsgui/CEGUI-$pkgver.tar.gz)
+md5sums=('38c79d1fdfaaa10f481c99a2ac479516')
+
+build() {
+ cd $srcdir/CEGUI-${pkgver}
+
+# old configure from cegui-0.6.X, to remove later!
+# ./configure --prefix=/usr \
+# --sysconfdir=/etc \
+# --enable-devil \
+# --enable-silly \
+# --disable-xerces-c \
+# --with-default-image-codec=SILLYImageCodec \
+# --enable-lua
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-xerces-c \
+ --enable-null-renderer
+
+make
+}
+
+package() {
+ cd $srcdir/CEGUI-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 doc/COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/community/celt-0.7/PKGBUILD b/community/celt-0.7/PKGBUILD
new file mode 100644
index 000000000..ab728998d
--- /dev/null
+++ b/community/celt-0.7/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 40766 2011-02-26 17:17:27Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Lauri Niskanen <ape@ape3000.com>
+
+pkgname=celt-0.7
+_realname=celt
+pkgver=0.7.1
+pkgrel=2
+pkgdesc="Low-latency audio communication codec"
+arch=('i686' 'x86_64')
+url="http://www.celt-codec.org"
+license=('BSD')
+depends=('libogg')
+provides=('celt=$pkgver')
+conflicts=('celt')
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/celt/$_realname-$pkgver.tar.gz)
+md5sums=('c7f6b8346e132b1a48dae0eff77ea9f0')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir/" install
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ install -Dm644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/BSD"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/celt/PKGBUILD b/community/celt/PKGBUILD
new file mode 100644
index 000000000..5eb99975d
--- /dev/null
+++ b/community/celt/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Lauri Niskanen <ape@ape3000.com>
+# Contributor: Ray Rashif <schivmeister@gmail.com>
+
+pkgname=celt
+pkgver=0.11.1
+pkgrel=1
+pkgdesc='Low-latency audio communication codec'
+arch=('i686' 'x86_64')
+url='http://www.celt-codec.org'
+license=('BSD')
+depends=('libogg')
+options=('!libtool')
+source=("http://downloads.xiph.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('94fe4acd241da8702c295bcd13a555e6')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/BSD
+}
diff --git a/community/centerim/PKGBUILD b/community/centerim/PKGBUILD
new file mode 100644
index 000000000..b846f526c
--- /dev/null
+++ b/community/centerim/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 33529 2010-11-25 14:53:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer:
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: shild <sxp@bk.ru>
+
+pkgname=centerim
+pkgver=4.22.10
+pkgrel=1
+pkgdesc="Fork of CenterICQ - A text mode menu- and window-driven IM interface"
+arch=('i686' 'x86_64')
+url="http://www.centerim.org"
+license=('GPL')
+depends=('python2' 'libjpeg' 'gpgme')
+replaces=('centericq')
+source=(http://www.centerim.org/download/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('7565c3c8cac98a4e2d8524076a44676f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's#python#python2#' misc/CenterIMLog2HTML.py
+ ./configure --prefix=/usr \
+ --with-ssl \
+ --with-openssl \
+ --enable-locales-fix
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/cgit/PKGBUILD b/community/cgit/PKGBUILD
new file mode 100644
index 000000000..503cac629
--- /dev/null
+++ b/community/cgit/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 43711 2011-03-29 10:19:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Current Maintainer: Patrick Palka <patrick@parcs.ath.cx>
+# Previous Maintainer: Loui Chang <louipc.ist at gmail com>
+# Contributor: Andreas Baumann <abaumann at yahoo dot com>
+# Development: http://closure.ath.cx/aur-dev
+
+pkgname=cgit
+pkgver=0.9
+pkgrel=2
+pkgdesc="A web interface for git written in plain C"
+arch=('i686' 'x86_64')
+url="http://hjemli.net/git/cgit"
+license=('GPL')
+depends=('openssl')
+makedepends=('git' 'zlib' 'curl' 'asciidoc')
+install=cgit.install
+source=("http://hjemli.net/git/cgit/snapshot/$pkgname-$pkgver.tar.bz2")
+md5sums=('b55f953c5c8a418bca72b3de3c297270')
+
+build() {
+ cd "$pkgname-$pkgver"
+
+ make get-git
+ make
+ make doc-man
+}
+
+package() {
+ cd "$pkgname-$pkgver"
+
+ make CGIT_SCRIPT_PATH=/srv/http/cgit DESTDIR="$pkgdir" install install-man
+ install -vDm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+ install -vd "$pkgdir/var/cache/$pkgname"
+}
+
+md5sums=('b55f953c5c8a418bca72b3de3c297270')
diff --git a/community/cgit/cgit.install b/community/cgit/cgit.install
new file mode 100644
index 000000000..7d696ada9
--- /dev/null
+++ b/community/cgit/cgit.install
@@ -0,0 +1,7 @@
+post_install() {
+ echo -n "Setting ownership of /var/cache/cgit to http:http ... "
+ chown -v http:http var/cache/cgit
+ echo "done."
+ echo -n "cgit looks at /etc/cgitrc for configuration. there is "
+ echo "an example configuration file in its manpage."
+}
diff --git a/community/checkinstall/PKGBUILD b/community/checkinstall/PKGBUILD
new file mode 100644
index 000000000..d983ef86c
--- /dev/null
+++ b/community/checkinstall/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 8093 2010-01-15 15:57:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=checkinstall
+pkgver=1.6.2
+pkgrel=1
+pkgdesc="spy for 'make install' and build rpm or deb"
+arch=('i686' 'x86_64')
+url="http://asic-linux.com.mx/~izto/checkinstall/"
+license=('GPL')
+backup=(etc/checkinstall/checkinstallrc)
+source=(http://asic-linux.com.mx/~izto/checkinstall/files/source/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('d7b43c92001e68243a93bcce8b1e5480'
+ '5c68cb7e29cf6da4b845ce57fb5ea080')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ patch -Np1 <../build-fix.patch
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/checkinstall/build-fix.patch b/community/checkinstall/build-fix.patch
new file mode 100644
index 000000000..341b7dfca
--- /dev/null
+++ b/community/checkinstall/build-fix.patch
@@ -0,0 +1,154 @@
+diff -wbBur checkinstall-1.6.2/checkinstall checkinstall-1.6.2.my/checkinstall
+--- checkinstall-1.6.2/checkinstall 2009-12-26 22:17:24.000000000 +0300
++++ checkinstall-1.6.2.my/checkinstall 2010-01-15 18:31:55.212907700 +0300
+@@ -869,7 +869,7 @@
+
+ ################################################################
+ # User-configurable variables were moved to the checkinstallrc #
+-# file which is probably found at /usr/local/lib/checkinstall #
++# file which is probably found at /usr/lib/checkinstall #
+ # #
+ # DO NOT modify them here!! #
+ ################################################################
+@@ -1851,11 +1851,11 @@
+ COMPRESS="gzip -9"
+ COMPRESS_EXT=.gz
+
+- for d in ./usr/local/man/man* ./usr/local/man/*/man* ./usr/local/info \
+- ./usr/local/share/man/man* ./usr/local/share/man/*/man* \
+- ./usr/local/share/info \
+- ./usr/local/kerberos/man \
+- ./usr/local/share/doc/*/man/man* ./usr/local/lib/*/man/man* \
++ for d in ./usr/man/man* ./usr/man/*/man* ./usr/info \
++ ./usr/share/man/man* ./usr/share/man/*/man* \
++ ./usr/share/info \
++ ./usr/kerberos/man \
++ ./usr/share/doc/*/man/man* ./usr/lib/*/man/man* \
+ ././usr/man/man* ./usr/man/*/man* ./usr/info \
+ ./usr/share/man/man* ./usr/share/man/*/man* ./usr/share/info \
+ ./usr/kerberos/man ./usr/X11R6/man/man* ./usr/lib/perl5/man/man* \
+diff -wbBur checkinstall-1.6.2/checkinstallrc-dist checkinstall-1.6.2.my/checkinstallrc-dist
+--- checkinstall-1.6.2/checkinstallrc-dist 2008-11-11 22:10:34.000000000 +0300
++++ checkinstall-1.6.2.my/checkinstallrc-dist 2010-01-15 18:31:55.212907700 +0300
+@@ -16,7 +16,7 @@
+ DEBUG=0
+
+ # Location of the "installwatch" program
+-INSTALLWATCH_PREFIX="/usr/local"
++INSTALLWATCH_PREFIX="/usr"
+ INSTALLWATCH=${INSTALLWATCH_PREFIX}/bin/installwatch
+
+ # Location of the makepkg program. "makepak" is the default, and is
+diff -wbBur checkinstall-1.6.2/installwatch/installwatch.c checkinstall-1.6.2.my/installwatch/installwatch.c
+--- checkinstall-1.6.2/installwatch/installwatch.c 2008-11-16 19:20:53.000000000 +0300
++++ checkinstall-1.6.2.my/installwatch/installwatch.c 2010-01-15 18:55:50.112716628 +0300
+@@ -2938,13 +2938,8 @@
+ return result;
+ }
+
+-#if (GLIBC_MINOR <= 4)
+-int readlink(const char *path,char *buf,size_t bufsiz) {
+- int result;
+-#else
+ ssize_t readlink(const char *path,char *buf,size_t bufsiz) {
+ ssize_t result;
+-#endif
+ instw_t instw;
+ int status;
+
+@@ -3077,9 +3072,12 @@
+ return result;
+ }
+
+-int scandir( const char *dir,struct dirent ***namelist,
+- int (*select)(const struct dirent *),
+- int (*compar)(const void *,const void *) ) {
++extern int scandir (__const char *__restrict dir,
++ struct dirent ***__restrict namelist,
++ int (*select) (__const struct dirent *),
++ int (*compar) (__const struct dirent **,
++ __const struct dirent **))
++{
+ int result;
+
+ if (!libc_handle)
+@@ -3689,9 +3687,13 @@
+ return result;
+ }
+
+-int scandir64( const char *dir,struct dirent64 ***namelist,
+- int (*select)(const struct dirent64 *),
+- int (*compar)(const void *,const void *) ) {
++extern int scandir64 (__const char *__restrict dir,
++ struct dirent64 ***__restrict namelist,
++ int (*select) (__const struct dirent64 *),
++ int (*compar) (__const struct dirent64 **,
++ __const struct dirent64 **))
++// __nonnull ((1, 2))
++{
+ int result;
+
+ if (!libc_handle)
+Only in checkinstall-1.6.2.my/installwatch: installwatch.o
+Only in checkinstall-1.6.2.my/installwatch: installwatch.so
+Only in checkinstall-1.6.2.my/installwatch: localdecls.h
+diff -wbBur checkinstall-1.6.2/installwatch/Makefile checkinstall-1.6.2.my/installwatch/Makefile
+--- checkinstall-1.6.2/installwatch/Makefile 2008-11-16 19:20:53.000000000 +0300
++++ checkinstall-1.6.2.my/installwatch/Makefile 2010-01-15 18:31:55.219536411 +0300
+@@ -4,14 +4,14 @@
+ # Well, the only configurable part is the following variable.
+ # Make sure the directory you specify exists.
+
+-PREFIX=/usr/local
++PREFIX=/usr
+
+ # End of configurable part
+
+ VERSION=0.7.0beta7
+
+-BINDIR=$(PREFIX)/bin
+-LIBDIR=$(PREFIX)/lib
++BINDIR=$(DESTDIR)$(PREFIX)/bin
++LIBDIR=$(DESTDIR)$(PREFIX)/lib
+
+ all: installwatch.so
+
+Only in checkinstall-1.6.2.my/locale: checkinstall-de.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-es.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-id.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-it.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-ja.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-no.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-pt_BR.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-ru.mo
+Only in checkinstall-1.6.2.my/locale: checkinstall-zh_CN.mo
+diff -wbBur checkinstall-1.6.2/Makefile checkinstall-1.6.2.my/Makefile
+--- checkinstall-1.6.2/Makefile 2008-11-12 05:43:53.000000000 +0300
++++ checkinstall-1.6.2.my/Makefile 2010-01-15 18:31:55.219536411 +0300
+@@ -1,10 +1,10 @@
+ # $Id: Makefile,v 1.6.2.1 2008/11/09 07:48:18 izto Exp $
+
+ # Where to install.
+-PREFIX=/usr/local
+-BINDIR=$(PREFIX)/sbin
+-LCDIR=$(PREFIX)/lib/checkinstall/locale
+-CONFDIR=$(PREFIX)/lib/checkinstall
++PREFIX=/usr
++BINDIR=$(DESTDIR)/$(PREFIX)/sbin
++LCDIR=$(DESTDIR)/$(PREFIX)/share/locale
++CONFDIR=$(DESTDIR)/etc/checkinstall
+
+ all:
+ for file in locale/checkinstall-*.po ; do \
+@@ -25,7 +25,11 @@
+ export
+ $(MAKE) -C installwatch install
+
++ mkdir -p $(DESTDIR)/usr/bin
+ mkdir -p $(BINDIR)
++ mkdir -p $(CONFDIR)
++ mkdir -p $(DESTDIR)/etc/checkinstall
++
+ install checkinstall makepak $(BINDIR)
+ for file in locale/*.mo ; do \
+ LANG=`echo $$file | sed -e 's|locale/checkinstall-||' \
diff --git a/community/cherokee/PKGBUILD b/community/cherokee/PKGBUILD
new file mode 100644
index 000000000..0ee02bf51
--- /dev/null
+++ b/community/cherokee/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 42879 2011-03-22 02:06:35Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=cherokee
+pkgver=1.2.2
+pkgrel=2
+pkgdesc="A very fast, flexible and easy to configure Web Server"
+arch=('i686' 'x86_64')
+url="http://www.cherokee-project.com/"
+license=('GPL2')
+depends=('openssl' 'pcre')
+makedepends=('python2' 'gettext' 'libldap' 'pam' 'libmysqlclient'
+ 'ffmpeg' 'geoip')
+optdepends=('python2: cherokee-admin (administrative web interface)'
+ 'libldap: ldap validator'
+ 'pam: pam validator'
+ 'libmysqlclient: mysql validator'
+ 'ffmpeg: Audio/Video streaming handler'
+ 'geoip: GeoIP rule module'
+ 'rrdtool: RRDtool based information collector')
+backup=('etc/cherokee/cherokee.conf'
+ 'etc/logrotate.d/cherokee')
+options=('!libtool')
+source=(http://www.cherokee-project.com/download/1.2/$pkgver/cherokee-$pkgver.tar.gz
+ cherokee.rc
+ cherokee.logrotate)
+md5sums=('6450f0aa116966227c477a1930292e53'
+ 'a2d2b69c6220fab57cda4f531b680f9f'
+ '8d69341bd4002bffd69c6e82ff6c905f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Use subdirectory for logs
+ sed -i -r 's|(%localstatedir%/log)|\1/cherokee|' cherokee.conf.sample.pre
+
+ # Use Python 2 in cherokee-admin
+ sed -i 's/"python"/"python2"/' cherokee/main_admin.c
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --with-wwwroot=/srv/http --disable-static \
+ --with-wwwuser=http --with-wwwgroup=http \
+ --enable-os-string="Arch Linux"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make -j1 DESTDIR="$pkgdir" install
+
+ # PAM configuration file for cherokee
+ install -D -m644 pam.d_cherokee "$pkgdir/etc/pam.d/$pkgname"
+
+ # Fix ownership of /var/lib/cherokee/graphs
+ chown -R http:http "$pkgdir/var/lib/$pkgname/graphs"
+
+ # Use Python 2
+ sed -i 's/env python$/\02/' \
+ "$pkgdir/usr/share/cherokee/admin/"{server,upgrade_config}.py \
+ "$pkgdir/usr/bin/"{CTK-run,cherokee-{admin-launcher,tweak}}
+
+ # Compile Python scripts
+ python2 -m compileall "$pkgdir"
+ python2 -O -m compileall "$pkgdir"
+
+ install -d -o http -g http "$pkgdir/var/log/$pkgname"
+ install -D "$srcdir/$pkgname.rc" "$pkgdir/etc/rc.d/$pkgname"
+ install -Dm644 "$srcdir/$pkgname.logrotate" "$pkgdir/etc/logrotate.d/$pkgname"
+
+ # Cleanup
+ rm -rf "$pkgdir/srv"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/cherokee/cherokee.logrotate b/community/cherokee/cherokee.logrotate
new file mode 100644
index 000000000..19207fd02
--- /dev/null
+++ b/community/cherokee/cherokee.logrotate
@@ -0,0 +1,9 @@
+/var/log/cherokee/*.error /var/log/cherokee/*.access {
+ daily
+ rotate 14
+ compress
+ sharedscripts
+ postrotate
+ /bin/kill -HUP `cat /var/run/cherokee.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/community/cherokee/cherokee.rc b/community/cherokee/cherokee.rc
new file mode 100755
index 000000000..2d413dc13
--- /dev/null
+++ b/community/cherokee/cherokee.rc
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+daemon_name=cherokee
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+ if [ ! -f /var/run/$daemon_name.pid ] && $daemon_name -d &>/dev/null; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ [ -f /var/run/$daemon_name.pid ] && read PID </var/run/$daemon_name.pid
+ if kill $PID &>/dev/null; then
+ rm_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ reload)
+ stat_busy "Reloading $daemon_name daemon"
+ [ -f /var/run/$daemon_name.pid ] && read PID </var/run/$daemon_name.pid
+ if kill -HUP $PID &>/dev/null; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ restart)
+ stat_busy "Restarting $daemon_name daemon"
+ [ -f /var/run/$daemon_name.pid ] && read PID </var/run/$daemon_name.pid
+ if kill -USR1 $PID &>/dev/null; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|reload|restart|status}"
+esac
+
+exit 0
diff --git a/community/cherrypy/837.2049.patch b/community/cherrypy/837.2049.patch
new file mode 100644
index 000000000..20cc0dd36
--- /dev/null
+++ b/community/cherrypy/837.2049.patch
@@ -0,0 +1,554 @@
+Index: cherrypy/test/test_tools.py
+===================================================================
+--- cherrypy/test/test_tools.py (revision 2049)
++++ cherrypy/test/test_tools.py (working copy)
+@@ -3,6 +3,7 @@
+ import gzip
+ import StringIO
+ import sys
++from httplib import IncompleteRead
+ import time
+ timeout = 0.2
+
+@@ -272,8 +273,12 @@
+ # Because this error is raised after the response body has
+ # started, and because it's chunked output, an error is raised by
+ # the HTTP client when it encounters incomplete output.
+- self.assertRaises(ValueError, self.getPage,
+- "/demo/errinstream?id=5")
++ if sys.version_info[:2] >= (2, 6):
++ self.assertRaises(IncompleteRead, self.getPage,
++ "/demo/errinstream?id=5")
++ else:
++ self.assertRaises(ValueError, self.getPage,
++ "/demo/errinstream?id=5")
+ # If this fails, then on_end_request isn't being called at all.
+ time.sleep(0.1)
+ self.getPage("/demo/ended/5")
+Index: cherrypy/test/webtest.py
+===================================================================
+--- cherrypy/test/webtest.py (revision 2049)
++++ cherrypy/test/webtest.py (working copy)
+@@ -491,7 +491,7 @@
+ # IN6ADDR_ANY, which should respond on localhost.
+ host = "::1"
+ conn = http_conn(host, port)
+-
++
+ conn._http_vsn_str = protocol
+ conn._http_vsn = int("".join([x for x in protocol if x.isdigit()]))
+
+Index: cherrypy/test/test_encoding.py
+===================================================================
+--- cherrypy/test/test_encoding.py (revision 2049)
++++ cherrypy/test/test_encoding.py (working copy)
+@@ -1,7 +1,9 @@
+ from cherrypy.test import test
+ test.prefer_parent_path()
+
++import sys
+ import gzip, StringIO
++from httplib import IncompleteRead
+ import cherrypy
+ europoundUnicode = u'\x80\xa3'
+ europoundUtf8 = u'\x80\xa3'.encode('utf-8')
+@@ -160,10 +162,13 @@
+ else:
+ # The wsgiserver will simply stop sending data, and the HTTP client
+ # will error due to an incomplete chunk-encoded stream.
+- self.assertRaises(ValueError, self.getPage, '/gzip/noshow_stream',
+- headers=[("Accept-Encoding", "gzip")])
++ if sys.version_info[:2] >= (2, 6):
++ self.assertRaises(IncompleteRead, self.getPage, '/gzip/noshow_stream',
++ headers=[("Accept-Encoding", "gzip")])
++ else:
++ self.assertRaises(ValueError, self.getPage, '/gzip/noshow_stream',
++ headers=[("Accept-Encoding", "gzip")])
+
+-
+ if __name__ == "__main__":
+ setup_server()
+ helper.testmain()
+Index: cherrypy/test/test_core.py
+===================================================================
+--- cherrypy/test/test_core.py (revision 2049)
++++ cherrypy/test/test_core.py (working copy)
+@@ -7,6 +7,7 @@
+ localDir = os.path.dirname(__file__)
+ import sys
+ import types
++from httplib import IncompleteRead
+
+ import cherrypy
+ from cherrypy import _cptools, tools
+@@ -760,8 +761,12 @@
+ else:
+ # Under HTTP/1.1, the chunked transfer-coding is used.
+ # The HTTP client will choke when the output is incomplete.
+- self.assertRaises(ValueError, self.getPage,
+- "/error/page_streamed")
++ if sys.version_info[:2] >= (2, 6):
++ self.assertRaises(IncompleteRead, self.getPage,
++ "/error/page_streamed")
++ else:
++ self.assertRaises(ValueError, self.getPage,
++ "/error/page_streamed")
+
+ # No traceback should be present
+ self.getPage("/error/cause_err_in_finalize")
+Index: cherrypy/wsgiserver/__init__.py
+===================================================================
+--- cherrypy/wsgiserver/__init__.py (revision 2049)
++++ cherrypy/wsgiserver/__init__.py (working copy)
+@@ -713,148 +713,325 @@
+ """Exception raised when the SSL implementation signals a fatal alert."""
+ pass
+
++if sys.version_info[:2] >= (2, 6) or sys.version_info[:3] >= (2, 5, 2):
++ class CP_fileobject(socket._fileobject):
++ """Faux file object attached to a socket object."""
+
+-class CP_fileobject(socket._fileobject):
+- """Faux file object attached to a socket object."""
+-
+- def sendall(self, data):
+- """Sendall for non-blocking sockets."""
+- while data:
+- try:
+- bytes_sent = self.send(data)
+- data = data[bytes_sent:]
+- except socket.error, e:
+- if e.args[0] not in socket_errors_nonblocking:
+- raise
+-
+- def send(self, data):
+- return self._sock.send(data)
+-
+- def flush(self):
+- if self._wbuf:
+- buffer = "".join(self._wbuf)
+- self._wbuf = []
+- self.sendall(buffer)
+-
+- def recv(self, size):
+- while True:
+- try:
+- return self._sock.recv(size)
+- except socket.error, e:
+- if e.args[0] not in socket_errors_nonblocking:
+- raise
+-
+- def read(self, size=-1):
+- if size < 0:
+- # Read until EOF
+- buffers = [self._rbuf]
+- self._rbuf = ""
+- if self._rbufsize <= 1:
+- recv_size = self.default_bufsize
++ def sendall(self, data):
++ """Sendall for non-blocking sockets."""
++ while data:
++ try:
++ bytes_sent = self.send(data)
++ data = data[bytes_sent:]
++ except socket.error, e:
++ if e.args[0] not in socket_errors_nonblocking:
++ raise
++
++ def send(self, data):
++ return self._sock.send(data)
++
++ def flush(self):
++ if self._wbuf:
++ buffer = "".join(self._wbuf)
++ self._wbuf = []
++ self.sendall(buffer)
++
++ def recv(self, size):
++ while True:
++ try:
++ return self._sock.recv(size)
++ except socket.error, e:
++ if e.args[0] not in socket_errors_nonblocking:
++ raise
++
++ def read(self, size=-1):
++ # Use max, disallow tiny reads in a loop as they are very inefficient.
++ # We never leave read() with any leftover data from a new recv() call
++ # in our internal buffer.
++ rbufsize = max(self._rbufsize, self.default_bufsize)
++ # Our use of StringIO rather than lists of string objects returned by
++ # recv() minimizes memory usage and fragmentation that occurs when
++ # rbufsize is large compared to the typical return value of recv().
++ buf = self._rbuf
++ buf.seek(0, 2) # seek end
++ if size < 0:
++ # Read until EOF
++ self._rbuf = StringIO.StringIO() # reset _rbuf. we consume it via buf.
++ while True:
++ data = self.recv(rbufsize)
++ if not data:
++ break
++ buf.write(data)
++ return buf.getvalue()
+ else:
+- recv_size = self._rbufsize
+-
++ # Read until size bytes or EOF seen, whichever comes first
++ buf_len = buf.tell()
++ if buf_len >= size:
++ # Already have size bytes in our buffer? Extract and return.
++ buf.seek(0)
++ rv = buf.read(size)
++ self._rbuf = StringIO.StringIO()
++ self._rbuf.write(buf.read())
++ return rv
++
++ self._rbuf = StringIO.StringIO() # reset _rbuf. we consume it via buf.
++ while True:
++ left = size - buf_len
++ # recv() will malloc the amount of memory given as its
++ # parameter even though it often returns much less data
++ # than that. The returned data string is short lived
++ # as we copy it into a StringIO and free it. This avoids
++ # fragmentation issues on many platforms.
++ data = self.recv(left)
++ if not data:
++ break
++ n = len(data)
++ if n == size and not buf_len:
++ # Shortcut. Avoid buffer data copies when:
++ # - We have no data in our buffer.
++ # AND
++ # - Our call to recv returned exactly the
++ # number of bytes we were asked to read.
++ return data
++ if n == left:
++ buf.write(data)
++ del data # explicit free
++ break
++ assert n <= left, "recv(%d) returned %d bytes" % (left, n)
++ buf.write(data)
++ buf_len += n
++ del data # explicit free
++ #assert buf_len == buf.tell()
++ return buf.getvalue()
++
++ def readline(self, size=-1):
++ buf = self._rbuf
++ buf.seek(0, 2) # seek end
++ if buf.tell() > 0:
++ # check if we already have it in our buffer
++ buf.seek(0)
++ bline = buf.readline(size)
++ if bline.endswith('\n') or len(bline) == size:
++ self._rbuf = StringIO.StringIO()
++ self._rbuf.write(buf.read())
++ return bline
++ del bline
++ if size < 0:
++ # Read until \n or EOF, whichever comes first
++ if self._rbufsize <= 1:
++ # Speed up unbuffered case
++ buf.seek(0)
++ buffers = [buf.read()]
++ self._rbuf = StringIO.StringIO() # reset _rbuf. we consume it via buf.
++ data = None
++ recv = self.recv
++ while data != "\n":
++ data = recv(1)
++ if not data:
++ break
++ buffers.append(data)
++ return "".join(buffers)
++
++ buf.seek(0, 2) # seek end
++ self._rbuf = StringIO.StringIO() # reset _rbuf. we consume it via buf.
++ while True:
++ data = self.recv(self._rbufsize)
++ if not data:
++ break
++ nl = data.find('\n')
++ if nl >= 0:
++ nl += 1
++ buf.write(data[:nl])
++ self._rbuf.write(data[nl:])
++ del data
++ break
++ buf.write(data)
++ return buf.getvalue()
++ else:
++ # Read until size bytes or \n or EOF seen, whichever comes first
++ buf.seek(0, 2) # seek end
++ buf_len = buf.tell()
++ if buf_len >= size:
++ buf.seek(0)
++ rv = buf.read(size)
++ self._rbuf = StringIO.StringIO()
++ self._rbuf.write(buf.read())
++ return rv
++ self._rbuf = StringIO.StringIO() # reset _rbuf. we consume it via buf.
++ while True:
++ data = self.recv(self._rbufsize)
++ if not data:
++ break
++ left = size - buf_len
++ # did we just receive a newline?
++ nl = data.find('\n', 0, left)
++ if nl >= 0:
++ nl += 1
++ # save the excess data to _rbuf
++ self._rbuf.write(data[nl:])
++ if buf_len:
++ buf.write(data[:nl])
++ break
++ else:
++ # Shortcut. Avoid data copy through buf when returning
++ # a substring of our first recv().
++ return data[:nl]
++ n = len(data)
++ if n == size and not buf_len:
++ # Shortcut. Avoid data copy through buf when
++ # returning exactly all of our first recv().
++ return data
++ if n >= left:
++ buf.write(data[:left])
++ self._rbuf.write(data[left:])
++ break
++ buf.write(data)
++ buf_len += n
++ #assert buf_len == buf.tell()
++ return buf.getvalue()
++
++else:
++ class CP_fileobject(socket._fileobject):
++ """Faux file object attached to a socket object."""
++
++ def sendall(self, data):
++ """Sendall for non-blocking sockets."""
++ while data:
++ try:
++ bytes_sent = self.send(data)
++ data = data[bytes_sent:]
++ except socket.error, e:
++ if e.args[0] not in socket_errors_nonblocking:
++ raise
++
++ def send(self, data):
++ return self._sock.send(data)
++
++ def flush(self):
++ if self._wbuf:
++ buffer = "".join(self._wbuf)
++ self._wbuf = []
++ self.sendall(buffer)
++
++ def recv(self, size):
+ while True:
+- data = self.recv(recv_size)
+- if not data:
+- break
+- buffers.append(data)
+- return "".join(buffers)
+- else:
+- # Read until size bytes or EOF seen, whichever comes first
+- data = self._rbuf
+- buf_len = len(data)
+- if buf_len >= size:
+- self._rbuf = data[size:]
+- return data[:size]
+- buffers = []
+- if data:
+- buffers.append(data)
+- self._rbuf = ""
+- while True:
+- left = size - buf_len
+- recv_size = max(self._rbufsize, left)
+- data = self.recv(recv_size)
+- if not data:
+- break
+- buffers.append(data)
+- n = len(data)
+- if n >= left:
+- self._rbuf = data[left:]
+- buffers[-1] = data[:left]
+- break
+- buf_len += n
+- return "".join(buffers)
++ try:
++ return self._sock.recv(size)
++ except socket.error, e:
++ if e.args[0] not in socket_errors_nonblocking:
++ raise
+
+- def readline(self, size=-1):
+- data = self._rbuf
+- if size < 0:
+- # Read until \n or EOF, whichever comes first
+- if self._rbufsize <= 1:
+- # Speed up unbuffered case
+- assert data == ""
++ def read(self, size=-1):
++ if size < 0:
++ # Read until EOF
++ buffers = [self._rbuf]
++ self._rbuf = ""
++ if self._rbufsize <= 1:
++ recv_size = self.default_bufsize
++ else:
++ recv_size = self._rbufsize
++
++ while True:
++ data = self.recv(recv_size)
++ if not data:
++ break
++ buffers.append(data)
++ return "".join(buffers)
++ else:
++ # Read until size bytes or EOF seen, whichever comes first
++ data = self._rbuf
++ buf_len = len(data)
++ if buf_len >= size:
++ self._rbuf = data[size:]
++ return data[:size]
+ buffers = []
+- while data != "\n":
+- data = self.recv(1)
++ if data:
++ buffers.append(data)
++ self._rbuf = ""
++ while True:
++ left = size - buf_len
++ recv_size = max(self._rbufsize, left)
++ data = self.recv(recv_size)
+ if not data:
+ break
+ buffers.append(data)
++ n = len(data)
++ if n >= left:
++ self._rbuf = data[left:]
++ buffers[-1] = data[:left]
++ break
++ buf_len += n
+ return "".join(buffers)
+- nl = data.find('\n')
+- if nl >= 0:
+- nl += 1
+- self._rbuf = data[nl:]
+- return data[:nl]
+- buffers = []
+- if data:
+- buffers.append(data)
+- self._rbuf = ""
+- while True:
+- data = self.recv(self._rbufsize)
+- if not data:
+- break
+- buffers.append(data)
++
++ def readline(self, size=-1):
++ data = self._rbuf
++ if size < 0:
++ # Read until \n or EOF, whichever comes first
++ if self._rbufsize <= 1:
++ # Speed up unbuffered case
++ assert data == ""
++ buffers = []
++ while data != "\n":
++ data = self.recv(1)
++ if not data:
++ break
++ buffers.append(data)
++ return "".join(buffers)
+ nl = data.find('\n')
+ if nl >= 0:
+ nl += 1
+ self._rbuf = data[nl:]
+- buffers[-1] = data[:nl]
+- break
+- return "".join(buffers)
+- else:
+- # Read until size bytes or \n or EOF seen, whichever comes first
+- nl = data.find('\n', 0, size)
+- if nl >= 0:
+- nl += 1
+- self._rbuf = data[nl:]
+- return data[:nl]
+- buf_len = len(data)
+- if buf_len >= size:
+- self._rbuf = data[size:]
+- return data[:size]
+- buffers = []
+- if data:
+- buffers.append(data)
+- self._rbuf = ""
+- while True:
+- data = self.recv(self._rbufsize)
+- if not data:
+- break
+- buffers.append(data)
+- left = size - buf_len
+- nl = data.find('\n', 0, left)
++ return data[:nl]
++ buffers = []
++ if data:
++ buffers.append(data)
++ self._rbuf = ""
++ while True:
++ data = self.recv(self._rbufsize)
++ if not data:
++ break
++ buffers.append(data)
++ nl = data.find('\n')
++ if nl >= 0:
++ nl += 1
++ self._rbuf = data[nl:]
++ buffers[-1] = data[:nl]
++ break
++ return "".join(buffers)
++ else:
++ # Read until size bytes or \n or EOF seen, whichever comes first
++ nl = data.find('\n', 0, size)
+ if nl >= 0:
+ nl += 1
+ self._rbuf = data[nl:]
+- buffers[-1] = data[:nl]
+- break
+- n = len(data)
+- if n >= left:
+- self._rbuf = data[left:]
+- buffers[-1] = data[:left]
+- break
+- buf_len += n
+- return "".join(buffers)
++ return data[:nl]
++ buf_len = len(data)
++ if buf_len >= size:
++ self._rbuf = data[size:]
++ return data[:size]
++ buffers = []
++ if data:
++ buffers.append(data)
++ self._rbuf = ""
++ while True:
++ data = self.recv(self._rbufsize)
++ if not data:
++ break
++ buffers.append(data)
++ left = size - buf_len
++ nl = data.find('\n', 0, left)
++ if nl >= 0:
++ nl += 1
++ self._rbuf = data[nl:]
++ buffers[-1] = data[:nl]
++ break
++ n = len(data)
++ if n >= left:
++ self._rbuf = data[left:]
++ buffers[-1] = data[:left]
++ break
++ buf_len += n
++ return "".join(buffers)
+
+
+ class SSL_fileobject(CP_fileobject):
diff --git a/community/cherrypy/ChangeLog b/community/cherrypy/ChangeLog
new file mode 100644
index 000000000..90276417c
--- /dev/null
+++ b/community/cherrypy/ChangeLog
@@ -0,0 +1,26 @@
+
+2009-04-15 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 3.1.2
+
+2008-12-14 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 3.1.1
+
+2008-11-04 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for python 2.6
+ * Thanks to David Moore
+
+2008-07-09 Mateusz Herych <heniekk@gmail.com>
+
+ * Updating for x86_64: 3.1.0
+
+2008-07-09 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updating for i686: 3.1.0
+
+2008-02-28 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updating in i686: 3.0.3
+
diff --git a/community/cherrypy/PKGBUILD b/community/cherrypy/PKGBUILD
new file mode 100644
index 000000000..b352f6296
--- /dev/null
+++ b/community/cherrypy/PKGBUILD
@@ -0,0 +1,23 @@
+$Id: PKGBUILD 40928 2011-03-01 19:03:36Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Armando M. Baratti <amblistas@ajato.com.br>
+# Contributor: Florian Richter <Florian_Richter@gmx.de>
+pkgname=cherrypy
+pkgver=3.2.0
+pkgrel=1
+pkgdesc="A pythonic, object-oriented web development framework"
+arch=('i686' 'x86_64')
+url="http://www.cherrypy.org"
+license=('BSD')
+depends=('python2')
+source=(http://download.cherrypy.org/cherrypy/$pkgver/CherryPy-$pkgver.tar.gz
+ license)
+md5sums=('e5c1322bf5ce962c16283ab7a6dcca3f'
+ '22365dc6b0e6835b53da009aa36af017')
+
+build() {
+ cd $srcdir/CherryPy-$pkgver
+ python2 ./setup.py install --root=$pkgdir
+ install -D -m644 $srcdir/license $pkgdir/usr/share/licenses/$pkgname/license
+}
diff --git a/community/cherrypy/license b/community/cherrypy/license
new file mode 100644
index 000000000..32e9cf6bd
--- /dev/null
+++ b/community/cherrypy/license
@@ -0,0 +1,25 @@
+Copyright (c) 2004, CherryPy Team (team@cherrypy.org)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of the CherryPy Team nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/community/chicken/PKGBUILD b/community/chicken/PKGBUILD
new file mode 100644
index 000000000..b0e744e0e
--- /dev/null
+++ b/community/chicken/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: <david@pako.st>
+
+pkgname=chicken
+pkgver=4.6.0
+pkgrel=2
+pkgdesc='A compiler for R5RS scheme, featuring handy extensions'
+arch=('i686' 'x86_64')
+url='http://www.call-with-current-continuation.org/'
+license=('BSD')
+depends=('gcc')
+source=("http://code.call-cc.org/releases/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('538a93e786e550ad848a040bcd902184')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # parallel builds are not supported..
+ export MAKEFLAGS="${MAKEFLAGS/-j?/}"
+
+ # some yummy make options there. check out README in the tarball.
+ make PLATFORM=linux PREFIX=/usr
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make PLATFORM=linux PREFIX=/usr DESTDIR=${pkgdir} install
+
+ install -D -m644 LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # should be a symbolic link not a copy otherwise ldconfig will cry
+ rm -f ${pkgdir}/usr/lib/libchicken.so
+ ln -s /usr/lib/libchicken.so.5 ${pkgdir}/usr/lib/libchicken.so
+}
diff --git a/community/chmsee/PKGBUILD b/community/chmsee/PKGBUILD
new file mode 100644
index 000000000..c23b703de
--- /dev/null
+++ b/community/chmsee/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: dionydonny <dionydonny@gmail.com>
+# Contributor: Ermanno <erm67@yahoo.it>
+
+pkgname=chmsee
+pkgver=1.3.0
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc="A chm (MS HTML help file format) viewer based on xulrunner."
+url="http://chmsee.googlecode.com/"
+license="GPL"
+depends=('xulrunner' 'libglade' 'chmlib')
+makedepends=('intltool' 'cmake')
+source=(http://chmsee.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('5ba68ccee32ba782486badc025842ccf')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ mkdir build
+ cd build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver/build
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/chntpw/PKGBUILD b/community/chntpw/PKGBUILD
new file mode 100644
index 000000000..78c094e4a
--- /dev/null
+++ b/community/chntpw/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 91796 2010-09-28 06:24:38Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=chntpw
+pkgver=100627
+pkgrel=1
+pkgdesc="The Offline NT Password Editor - enables you to view some information and change user passwords in a Windows NT SAM userdatabase file"
+arch=('i686' 'x86_64')
+url="http://pogostick.net/~pnh/ntpasswd/"
+license=('GPL' 'LGPL')
+makedepends=('openssl')
+source=(http://pogostick.net/~pnh/ntpasswd/${pkgname}-source-${pkgver}.zip)
+md5sums=('8b046c2073f27eed728e18635ba72dd4')
+sha1sums=('4b2a7e7a406ca9ecb68c9ab4fb6012864828806d')
+
+build() {
+ if [ "$CARCH" = "x86_64" ]; then
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i "s|CFLAGS= -DUSEOPENSSL -g -I. -I\$(OSSLINC) -Wall -m32|CFLAGS= -DUSEOPENSSL -g -I. -I\$(OSSLINC) -Wall|" Makefile
+ fi
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+ # install binaries, don't install static binaries!
+ install -Dm755 ${srcdir}/${pkgname}-${pkgver}/${pkgname} ${pkgdir}/usr/bin/${pkgname}
+ install -Dm755 ${srcdir}/${pkgname}-${pkgver}/reged ${pkgdir}/usr/bin/reged
+ install -Dm755 ${srcdir}/${pkgname}-${pkgver}/cpnt ${pkgdir}/usr/bin/cpnt
+ for doc in *.txt; do
+ install -Dm644 ${doc} ${pkgdir}/usr/share/doc/${pkgname}/${doc}
+ done
+}
diff --git a/community/choqok/PKGBUILD b/community/choqok/PKGBUILD
new file mode 100644
index 000000000..272064aeb
--- /dev/null
+++ b/community/choqok/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 38484 2011-01-27 17:01:24Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Emanuele Rossi <newdna1510@yahoo.it>
+# Contributor: Bram Schoenmakers <me@bramschoenmakers.nl>
+
+pkgname=choqok
+pkgver=1.0
+pkgrel=1
+pkgdesc="A Twitter/identi.ca/laconica client for KDE"
+url="http://choqok.gnufolks.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('kdebase-runtime' 'qjson' 'qoauth' 'qca-ossl')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+optdepends=('kdebase-konqueror: proxy support')
+install="${pkgname}.install"
+source=("http://choqok.gnufolks.org/pkgs/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('536e05d26dd5cea43c6d8dc17c283104')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKWEBKITPART_LIBRARIES=/usr/lib/kde4/
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/choqok/choqok.install b/community/choqok/choqok.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/choqok/choqok.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/community/chrootuid/PKGBUILD b/community/chrootuid/PKGBUILD
new file mode 100644
index 000000000..fc1075436
--- /dev/null
+++ b/community/chrootuid/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 17501 2010-05-24 14:12:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Frop Doe <mrmr@rizla.org>
+# Contributor: Guillermo A. Amaral <me@guillermoamaral.com> (thewonka)
+# Mainteiner: Guillermo A. Amaral <me@guillermoamaral.com> (thewonka)
+
+pkgname=chrootuid
+pkgver=1.3
+pkgrel=4
+arch=(i686 x86_64)
+pkgdesc="Runs a command in a restricted environment."
+url="ftp://ftp.porcupine.org/pub/security/index.html"
+license=("BSD")
+depends=(glibc)
+source=(ftp://ftp.porcupine.org/pub/security/$pkgname$pkgver.tar.gz
+ ftp://ftp.porcupine.org/pub/security/chrootuid_license)
+md5sums=('15510abadf5de189e1c22a1544dc926a'
+ '11383ad1d66445640f1dec3478a2b53f')
+
+build() {
+ cd $startdir/src/$pkgname$pkgver
+
+ make || return 1
+
+ install -D -m755 $srcdir/$pkgname$pkgver/chrootuid $startdir/pkg/usr/sbin/chrootuid && \
+ install -D -m644 $srcdir/$pkgname$pkgver/chrootuid.1 $startdir/pkg/usr/share/man/man1/chrootuid.1 && \
+ install -D -m644 $srcdir/chrootuid_license $startdir/pkg/usr/share/licenses/$pkgname/license
+}
diff --git a/community/chrpath/ChangeLog b/community/chrpath/ChangeLog
new file mode 100644
index 000000000..dabc6f97b
--- /dev/null
+++ b/community/chrpath/ChangeLog
@@ -0,0 +1,10 @@
+2009-05-21 Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+ * 0.13-2 :
+ Replaced in my '# Contributor:' line by '# Maintainer:'
+
+
+2009-03-19 Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+ * 0.13-1 :
+ Initial release.
diff --git a/community/chrpath/PKGBUILD b/community/chrpath/PKGBUILD
new file mode 100644
index 000000000..2fefddfc2
--- /dev/null
+++ b/community/chrpath/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=chrpath
+pkgver=0.13
+pkgrel=2
+pkgdesc="Change or delete the rpath or runpath in ELF files"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/chrpath"
+license=('GPL2')
+depends=('glibc')
+source=(http://ftp.debian.org/debian/pool/main/c/${pkgname}/${pkgname}_${pkgver}.orig.tar.gz)
+md5sums=('b73072a8fbba277558c50364b65bb407')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir docdir=/usr/share/doc/chrpath install
+}
diff --git a/community/cksfv/PKGBUILD b/community/cksfv/PKGBUILD
new file mode 100644
index 000000000..da4ba0008
--- /dev/null
+++ b/community/cksfv/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Wijnand Modderman <wijanand+aur@archlinux.nl>
+
+pkgname=cksfv
+pkgver=1.3.14
+pkgrel=1
+pkgdesc="SFV (Simple File Verification) Checker"
+arch=('i686' 'x86_64')
+url="http://zakalwe.virtuaalipalvelin.net/~shd/foss/cksfv/"
+license=('GPL')
+depends=('glibc')
+source=(http://zakalwe.fi/~shd/foss/cksfv/files/$pkgname-$pkgver.tar.gz)
+md5sums=('2e15289753ea0b90b6ea86993f93b383')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --package-prefix=$startdir/pkg
+ make || return 1
+ make install
+ chmod 644 $startdir/pkg/usr/share/man/man1/$pkgname.1
+}
diff --git a/community/clanlib/PKGBUILD b/community/clanlib/PKGBUILD
new file mode 100644
index 000000000..98715fa81
--- /dev/null
+++ b/community/clanlib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 42869 2011-03-22 00:50:22Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=clanlib
+pkgver=2.2.7
+pkgrel=1
+pkgdesc="A multi-platform game development library."
+arch=('i686' 'x86_64')
+url="http://clanlib.org/"
+license=('zlib')
+depends=('alsa-lib' 'libjpeg' 'libmikmod' 'libpng' 'libvorbis' 'libxi' 'libxmu' 'mesa' 'sdl_gfx' 'freetype2')
+makedepends=('doxygen' 'graphviz')
+options=('!libtool')
+source=(http://clanlib.org/download/releases-2.0/ClanLib-${pkgver}.tgz)
+md5sums=('a6207ce394e60151c61aa5ad99de336d')
+
+build() {
+ cd ${srcdir}/ClanLib-${pkgver}
+
+ ./configure --prefix=/usr --enable-docs
+
+ make
+ # Somehow this breaks. :(
+ #make html
+}
+
+package() {
+ cd ${srcdir}/ClanLib-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ #make DESTDIR=${pkgdir} install-html
+
+ install -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community/classpath/PKGBUILD b/community/classpath/PKGBUILD
new file mode 100644
index 000000000..36fec1cc8
--- /dev/null
+++ b/community/classpath/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 13437 2010-03-23 14:09:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tardo <tardo@nagi-fanboi.net>
+# Contributor: Sean Gillespie <Sean.D.Gillespie@gmail.com>
+
+pkgname=classpath
+pkgver=0.98
+pkgrel=3
+pkgdesc="A free replacement for Sun's proprietary core Java class libraries."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/classpath/"
+license=('GPL')
+depends=('gtk2>=2.8' 'libxtst')
+makedepends=('gtk2>=2.8' 'libxtst')
+source=(ftp://ftp.gnu.org/gnu/classpath/$pkgname-$pkgver.tar.gz)
+md5sums=('90c6571b8b0309e372faa0f9f6255ea9')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ patch -p0 Makefile.in <<EOF
+298,299c298,299
+< SUBDIRS = lib doc external include native resource scripts \$(TOOLSDIR) \$(EXAMPLESDIR)
+< DIST_SUBDIRS = lib doc external include native resource scripts tools examples
+---
+> SUBDIRS = lib doc external include native resource scripts
+> DIST_SUBDIRS = lib doc external include native resource scripts
+EOF
+
+ ./configure --prefix=/usr --disable-Werror --disable-plugin
+ make EXAMPLESDIR= || return 1
+ make EXAMPLESDIR= DESTDIR=$startdir/pkg install || return 1
+
+ rm -f $startdir/pkg/usr/bin/gappletviewer && \
+ rm -f $startdir/pkg/usr/bin/gjar && \
+ rm -f $startdir/pkg/usr/bin/gjarsigner && \
+ rm -f $startdir/pkg/usr/bin/gjavah && \
+ rm -f $startdir/pkg/usr/bin/gkeytool && \
+ rm -f $startdir/pkg/usr/bin/gnative2ascii && \
+ rm -f $startdir/pkg/usr/bin/gorbd && \
+ rm -f $startdir/pkg/usr/bin/grmic && \
+ rm -f $startdir/pkg/usr/bin/grmid && \
+ rm -f $startdir/pkg/usr/bin/grmiregistry && \
+ rm -f $startdir/pkg/usr/bin/gserialver && \
+ rm -f $startdir/pkg/usr/bin/gtnameserv && \
+ rm -f $startdir/pkg/usr/lib/logging.properties && \
+ rm -f $startdir/pkg/usr/lib/security/classpath.security && \
+ rm -f $startdir/pkg/usr/share/man/man1/gappletviewer.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gcjh.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gjar.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gjarsigner.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gjavah.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gkeytool.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gnative2ascii.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gorbd.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/grmid.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/grmiregistry.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gserialver.1* && \
+ rm -f $startdir/pkg/usr/share/man/man1/gtnameserv.1* && \
+ rm -f $pkgdir/usr/share/info/dir
+}
diff --git a/community/clearsilver/PKGBUILD b/community/clearsilver/PKGBUILD
new file mode 100644
index 000000000..2aa924249
--- /dev/null
+++ b/community/clearsilver/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 27254 2010-09-18 22:01:47Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : Aaron Griffin <aaron@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=clearsilver
+pkgver=0.10.5
+pkgrel=7
+pkgdesc="clearsilver is a fast, powerful, and language-neutral HTML template system"
+arch=('i686' 'x86_64')
+url='http://www.clearsilver.net'
+license=('custom')
+depends=('python2' 'perl' 'ruby' 'java-runtime')
+options=('!emptydirs')
+source=("http://www.clearsilver.net/downloads/$pkgname-$pkgver.tar.gz"
+ "clearsilver-ruby-1.9.patch")
+md5sums=('b8c0c7fbe0ef5e06e0c935f134304d44'
+ 'd9db4e5985254e1b0d63e9ff042773f4')
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --disable-csharp --prefix=/usr --with-python=/usr/bin/python2
+
+ # we all hate broken makefiles... hooray!
+ sed -i "s@/usr/local/bin/python@/usr/bin/env python2@g" scripts/document.py
+ sed -i "s@install.rb install@install.rb install --prefix=$pkgdir@g" ruby/Makefile
+ patch -p1 <$srcdir/clearsilver-ruby-1.9.patch
+
+ make
+ make PREFIX=$pkgdir DESTDIR=$pkgdir install
+
+ install -Dm644 CS_LICENSE $pkgdir/usr/share/licenses/clearsilver/license.txt
+ rm -rf $pkgdir/usr/lib/perl5/5.8.8/
+
+ mv $pkgdir/usr/man/man3/* $pkgdir/usr/share/man/man3/
+ rm -rf $pkgdir/usr/man
+
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/clearsilver/clearsilver-ruby-1.9.patch b/community/clearsilver/clearsilver-ruby-1.9.patch
new file mode 100644
index 000000000..4a1a83f99
--- /dev/null
+++ b/community/clearsilver/clearsilver-ruby-1.9.patch
@@ -0,0 +1,244 @@
+diff -u -Nr clearsilver-0.10.5/ruby/ext/hdf/neo_cs.c clearsilver-0.10.5.my/ruby/ext/hdf/neo_cs.c
+--- clearsilver-0.10.5/ruby/ext/hdf/neo_cs.c 2007-02-16 01:31:39.000000000 +0100
++++ clearsilver-0.10.5.my/ruby/ext/hdf/neo_cs.c 2010-09-18 18:20:40.088619662 +0200
+@@ -19,7 +19,7 @@
+
+ VALUE r_neo_error(NEOERR *err);
+
+-#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RSTRING(val)->ptr)
++#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RARRAY_PTR(RSTRING(val)))
+
+ static void c_free (CSPARSE *csd) {
+ if (csd) {
+@@ -57,7 +57,7 @@
+ char *path;
+
+ Data_Get_Struct(self, CSPARSE, cs);
+- path = STR2CSTR(oPath);
++ path = StringValuePtr(oPath);
+
+ err = cs_parse_file (cs, path);
+ if (err) Srb_raise(r_neo_error(err));
+@@ -73,7 +73,8 @@
+ long l;
+
+ Data_Get_Struct(self, CSPARSE, cs);
+- s = rb_str2cstr(oString, &l);
++ s = StringValuePtr(oString);
++ l = RSTRING_LEN(oString);
+
+ /* This should be changed to use memory from the gc */
+ ms = strdup(s);
+diff -u -Nr clearsilver-0.10.5/ruby/ext/hdf/neo_util.c clearsilver-0.10.5.my/ruby/ext/hdf/neo_util.c
+--- clearsilver-0.10.5/ruby/ext/hdf/neo_util.c 2007-02-16 01:32:03.000000000 +0100
++++ clearsilver-0.10.5.my/ruby/ext/hdf/neo_util.c 2010-09-18 18:24:05.928058973 +0200
+@@ -10,7 +10,7 @@
+ */
+
+ #include <ruby.h>
+-#include <version.h>
++//#include <version.h>
+ #include "ClearSilver.h"
+ #include "neo_ruby.h"
+
+@@ -19,7 +19,7 @@
+ VALUE eHdfError;
+ static ID id_to_s;
+
+-#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RSTRING(val)->ptr)
++#define Srb_raise(val) rb_raise(eHdfError, "%s/%d %s",__FILE__,__LINE__,RARRAY_PTR(RSTRING(val)))
+
+ VALUE r_neo_error (NEOERR *err)
+ {
+@@ -96,7 +96,7 @@
+ VALUE rv;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+- name = STR2CSTR(oName);
++ name = StringValuePtr(oName);
+
+ rv = rb_hash_new();
+
+@@ -118,12 +118,12 @@
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+
+- name = STR2CSTR(oName);
+- key = STR2CSTR(oKey);
++ name = StringValuePtr(oName);
++ key = StringValuePtr(oKey);
+ if ( NIL_P(oValue) )
+ value = NULL;
+ else
+- value = STR2CSTR(oValue);
++ value = StringValuePtr(oValue);
+
+ err = hdf_set_attr(hdfh->hdf, name, key, value);
+ if (err) Srb_raise(r_neo_error(err));
+@@ -134,22 +134,22 @@
+ static VALUE h_set_value (VALUE self, VALUE oName, VALUE oValue)
+ {
+ t_hdfh *hdfh;
+- char *name, *value;
++ VALUE name, value;
+ NEOERR *err;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+
+ if ( TYPE(oName) == T_STRING )
+- name=STR2CSTR(oName);
++ name=oName;
+ else
+- name=STR2CSTR(rb_funcall(oName,id_to_s,0));
++ name=rb_funcall(oName,id_to_s,0);
+
+ if ( TYPE(oValue) == T_STRING )
+- value=STR2CSTR(oValue);
++ value=oValue;
+ else
+- value=STR2CSTR(rb_funcall(oValue,id_to_s,0));
++ value=rb_funcall(oValue,id_to_s,0);
+
+- err = hdf_set_value (hdfh->hdf, name, value);
++ err = hdf_set_value (hdfh->hdf, StringValuePtr(name), StringValuePtr(value));
+
+ if (err) Srb_raise(r_neo_error(err));
+
+@@ -165,7 +165,7 @@
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+
+- name=STR2CSTR(oName);
++ name=StringValuePtr(oName);
+ d=NUM2INT(oDefault);
+
+ r = hdf_get_int_value (hdfh->hdf, name, d);
+@@ -181,8 +181,8 @@
+ VALUE rv;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+- name=STR2CSTR(oName);
+- d=STR2CSTR(oDefault);
++ name=StringValuePtr(oName);
++ d=StringValuePtr(oDefault);
+
+ r = hdf_get_value (hdfh->hdf, name, d);
+ rv = rb_str_new2(r);
+@@ -197,7 +197,7 @@
+ char *name;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+- name=STR2CSTR(oName);
++ name=StringValuePtr(oName);
+
+ r = hdf_get_child (hdfh->hdf, name);
+ if (r == NULL) {
+@@ -219,7 +219,7 @@
+ char *name;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+- name=STR2CSTR(oName);
++ name=StringValuePtr(oName);
+
+ r = hdf_get_obj (hdfh->hdf, name);
+ if (r == NULL) {
+@@ -243,7 +243,7 @@
+ NEOERR *err;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+- name=STR2CSTR(oName);
++ name=StringValuePtr(oName);
+
+ err = hdf_get_node (hdfh->hdf, name, &r);
+ if (err)
+@@ -384,7 +384,7 @@
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+
+- path=STR2CSTR(oPath);
++ path=StringValuePtr(oPath);
+
+ err = hdf_read_file (hdfh->hdf, path);
+ if (err) Srb_raise(r_neo_error(err));
+@@ -400,7 +400,7 @@
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+
+- path=STR2CSTR(oPath);
++ path=StringValuePtr(oPath);
+
+ err = hdf_write_file (hdfh->hdf, path);
+
+@@ -417,7 +417,7 @@
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+
+- path=STR2CSTR(oPath);
++ path=StringValuePtr(oPath);
+
+ err = hdf_write_file_atomic (hdfh->hdf, path);
+ if (err) Srb_raise(r_neo_error(err));
+@@ -432,7 +432,7 @@
+ NEOERR *err;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+- name = STR2CSTR(oName);
++ name = StringValuePtr(oName);
+
+ err = hdf_remove_tree (hdfh->hdf, name);
+ if (err) Srb_raise(r_neo_error(err));
+@@ -489,7 +489,7 @@
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+
+- s = STR2CSTR(oString);
++ s = StringValuePtr(oString);
+ ignore = NUM2INT(oIgnore);
+
+ err = hdf_read_string_ignore (hdfh->hdf, s, ignore);
+@@ -508,7 +508,7 @@
+ Data_Get_Struct(self, t_hdfh, hdfh);
+ Data_Get_Struct(oHdfSrc, t_hdfh, hdfh_src);
+
+- name = STR2CSTR(oName);
++ name = StringValuePtr(oName);
+
+ if (hdfh_src == NULL) rb_raise(eHdfError, "second argument must be an Hdf object");
+
+@@ -526,8 +526,8 @@
+ NEOERR *err;
+
+ Data_Get_Struct(self, t_hdfh, hdfh);
+- src = STR2CSTR(oSrc);
+- dest = STR2CSTR(oDest);
++ src = StringValuePtr(oSrc);
++ dest = StringValuePtr(oDest);
+
+ err = hdf_set_symlink (hdfh->hdf, src, dest);
+ if (err) Srb_raise(r_neo_error(err));
+@@ -545,9 +545,10 @@
+ char *ret = NULL;
+ NEOERR *err;
+
+- s = rb_str2cstr(oString,&buflen);
+- esc_char = STR2CSTR(oEsc_char);
+- escape = STR2CSTR(oEsc);
++ s = StringValuePtr(oString);
++ buflen = RSTRING_LEN(oString);
++ esc_char = StringValuePtr(oEsc_char);
++ escape = StringValuePtr(oEsc);
+
+ err = neos_escape((UINT8*)s, buflen, esc_char[0], escape, &ret);
+
+@@ -566,8 +567,9 @@
+ char *esc_char;
+ long buflen;
+
+- s = rb_str2cstr(oString,&buflen);
+- esc_char = STR2CSTR(oEsc_char);
++ s = StringValuePtr(oString);
++ buflen = RSTRING_LEN(oString);
++ esc_char = StringValuePtr(oEsc_char);
+
+ /* This should be changed to use memory from the gc */
+ copy = strdup(s);
diff --git a/community/clementine/PKGBUILD b/community/clementine/PKGBUILD
new file mode 100644
index 000000000..09d5b1c04
--- /dev/null
+++ b/community/clementine/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 43984 2011-04-01 14:24:01Z stephane $
+#Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+#Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
+#Contributor: Dany Martineau <dany.luc.martineau@gmail.com>
+
+pkgname=clementine
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="A music player and library organizer"
+url="http://www.clementine-player.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gstreamer0.10' 'taglib' 'glew' 'liblastfm' 'libgpod' 'libmtp' 'hicolor-icon-theme')
+makedepends=('cmake' 'boost')
+optdepends=('gstreamer0.10-base-plugins: for more open formats'
+ 'gstreamer0.10-good-plugins: for use with "Good" plugin libraries'
+ 'gstreamer0.10-bad-plugins: for use with "Bad" plugin libraries'
+ 'gstreamer0.10-ugly-plugins: for use with "Ugly" plugin libraries')
+source=(http://clementine-player.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('8b2025b8876f9f3fe33ef5001e0621f3a5d0f142')
+install=clementine.install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DSTATIC_SQLITE=0
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/clementine/clementine.install b/community/clementine/clementine.install
new file mode 100644
index 000000000..2d71a7563
--- /dev/null
+++ b/community/clementine/clementine.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/clewn/ChangeLog b/community/clewn/ChangeLog
new file mode 100644
index 000000000..a046fb816
--- /dev/null
+++ b/community/clewn/ChangeLog
@@ -0,0 +1,5 @@
+
+2008-07-06 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updating for x86_64 - 1.13
+
diff --git a/community/clewn/PKGBUILD b/community/clewn/PKGBUILD
new file mode 100644
index 000000000..63179410e
--- /dev/null
+++ b/community/clewn/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 39861 2011-02-17 21:58:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tardo <tardo@nagi-fanboi.net>
+
+pkgname=clewn
+pkgver=1.15
+pkgrel=4
+pkgdesc="gdb support for vim"
+arch=('i686' 'x86_64')
+url="http://clewn.sourceforge.net"
+license=('GPL')
+depends=("vim" "gdb")
+install=$pkgname.install
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('dcfa989e6250109a7f0f99dc2d6db3e6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ vimdir=/usr/share/vim/vimfiles ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+ rm -f $pkgdir/usr/share/vim/vimfiles/doc/tags
+}
diff --git a/community/clewn/clewn.install b/community/clewn/clewn.install
new file mode 100644
index 000000000..c6ce857be
--- /dev/null
+++ b/community/clewn/clewn.install
@@ -0,0 +1,14 @@
+post_install() {
+ echo -n "Updating vim help tags..."
+ /usr/bin/vim --noplugins -u NONE -U NONE \
+ --cmd ":helptags /usr/share/vim/vimfiles/doc" --cmd ":q" > /dev/null 2>&1
+ echo "done."
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/clipgrab/PKGBUILD b/community/clipgrab/PKGBUILD
new file mode 100644
index 000000000..724a294d4
--- /dev/null
+++ b/community/clipgrab/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: thacrazze <thacrazze|googlemail|com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=clipgrab
+pkgver=3.1.0.1
+pkgrel=1
+pkgdesc='A video downloader and converter for YouTube, Veoh, DailyMotion, MyVideo, ...'
+arch=('i686' 'x86_64')
+url='http://clipgrab.de/'
+license=('GPL')
+depends=('qt')
+optdepends=('ffmpeg: for some encodings')
+source=(http://clipgrab.de/download/${pkgname}-${pkgver}.tar.bz2 ${pkgname}.png ${pkgname}.desktop)
+md5sums=('87df4d8fdc4c1097eb78cf064561db24'
+ 'ef030502ae0922e632742f47283313f4'
+ '9a141791f6952917c441050c3dac81ce')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ qmake && make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -Dm755 ${pkgname} $pkgdir/usr/bin/${pkgname}
+ install -Dm644 $srcdir/${pkgname}.png \
+ $pkgdir/usr/share/pixmaps/${pkgname}.png
+ install -Dm644 $srcdir/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/clipgrab/clipgrab.desktop b/community/clipgrab/clipgrab.desktop
new file mode 100644
index 000000000..dad31cfdd
--- /dev/null
+++ b/community/clipgrab/clipgrab.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+Name=ClipGrab
+GenericName=Video Downloader
+GenericName[de]=Video-Downloader
+Comment=Download videos and convert it
+Comment[de]=Videos herunterladen und konvertieren
+Icon=/usr/share/pixmaps/clipgrab.png
+Exec=clipgrab
+TryExec=clipgrab
+Terminal=false
+Categories=Qt;AudioVideo;Audio;Video;
diff --git a/community/clipgrab/clipgrab.png b/community/clipgrab/clipgrab.png
new file mode 100644
index 000000000..2573fed20
--- /dev/null
+++ b/community/clipgrab/clipgrab.png
Binary files differ
diff --git a/community/clusterssh/ChangeLog b/community/clusterssh/ChangeLog
new file mode 100644
index 000000000..f0d985454
--- /dev/null
+++ b/community/clusterssh/ChangeLog
@@ -0,0 +1,3 @@
+2009-12-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community]
+ * version 3.28 - 39 votes in AUR
diff --git a/community/clusterssh/PKGBUILD b/community/clusterssh/PKGBUILD
new file mode 100644
index 000000000..6c2445121
--- /dev/null
+++ b/community/clusterssh/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 6917 2009-12-26 21:02:21Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Macfly <mmacfly@gmail.com>
+# Contributor: Duncan Ferguson <duncan_ferguson@users.sourceforge.net>
+
+pkgname=clusterssh
+pkgver=3.28
+pkgrel=2
+pkgdesc="Cluster SSH opens terminal windows with connections to specified hosts and an administration console."
+arch=('i686' 'x86_64')
+url="http://clusterssh.sourceforge.net/"
+license=('GPL')
+depends=('perl-tk' 'perl-x11-protocol' 'xterm')
+source=(http://downloads.sourceforge.net/project/$pkgname/1.%20ClusterSSH%20Series%203/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('11e012329d2c62e1f7b17f3ac517769a')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/codeblocks/PKGBUILD b/community/codeblocks/PKGBUILD
new file mode 100644
index 000000000..a9ac9ff41
--- /dev/null
+++ b/community/codeblocks/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Robert Hollencamp <rhollencamp@gmail.com>
+# Contributor: Daniel J Griffiths <griffithsdj@inbox.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=codeblocks
+pkgver=10.05
+pkgrel=1
+pkgdesc="An open source and cross-platform C/C++ IDE"
+arch=('i686' 'x86_64')
+url="http://www.codeblocks.org"
+license=('GPL3')
+depends=('wxgtk' 'hicolor-icon-theme' 'bzip2' 'shared-mime-info')
+makedepends=('zip')
+options=('!libtool')
+source=(http://download.berlios.de/$pkgname/$pkgname-${pkgver}-1debian-src.tar.bz2)
+md5sums=('57e41b33a37f2677e432b47e89e939e3')
+install=codeblocks.install
+
+build() {
+ cd $srcdir/src || return 1
+ tar xf ${pkgname}_${pkgver}-1.tar.gz || return 1
+ cd $pkgname-$pkgver
+ ./bootstrap || return 1
+ ./configure --prefix=/usr --with-contrib-plugins=all || return 1
+ make || return 1
+}
+package() {
+ cd $srcdir/src/$pkgname-$pkgver || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
+
diff --git a/community/codeblocks/codeblocks.install b/community/codeblocks/codeblocks.install
new file mode 100644
index 000000000..01fc3ccb2
--- /dev/null
+++ b/community/codeblocks/codeblocks.install
@@ -0,0 +1,25 @@
+pkgname=codeblocks
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+ ln -s /usr/lib/libwxflatnotebook.so /usr/lib/libwxflatnotebook.so.0
+ ln -s /usr/lib/libwxchartctrl.so /usr/lib/libwxchartctrl.so.0
+ ln -s /usr/lib/libwxcustombutton.so /usr/lib/libwxcustombutton.so.0
+ }
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+ rm /usr/lib/libwxflatnotebook.so.0 \
+ /usr/lib/libwxchartctrl.so.0 /usr/lib/libwxcustombutton.so.0
+}
+
+pre_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+}
+
diff --git a/community/codeblocks/prefix.diff b/community/codeblocks/prefix.diff
new file mode 100644
index 000000000..3c88d4067
--- /dev/null
+++ b/community/codeblocks/prefix.diff
@@ -0,0 +1,23 @@
+diff -aur codeblocks-8.02.orig/src/src/prefix.cpp codeblocks-8.02.new/src/src/prefix.cpp
+--- codeblocks-8.02.orig/src/src/prefix.cpp 2009-07-27 22:53:45.000000000 +0200
++++ codeblocks-8.02.new/src/src/prefix.cpp 2009-07-27 22:56:24.000000000 +0200
+@@ -389,7 +389,8 @@
+ char *
+ br_extract_dir (const char *path)
+ {
+- char *end, *result;
++ const char *end;
++ char *result;
+
+ br_return_val_if_fail (path != (char *) NULL, (char *) NULL);
+
+@@ -424,7 +425,8 @@
+ char *
+ br_extract_prefix (const char *path)
+ {
+- char *end, *tmp, *result;
++ const char *end;
++ char *tmp, *result;
+
+ br_return_val_if_fail (path != (char *) NULL, (char *) NULL);
+
diff --git a/community/coin/PKGBUILD b/community/coin/PKGBUILD
new file mode 100644
index 000000000..f88ee170b
--- /dev/null
+++ b/community/coin/PKGBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: mickele
+# Contributor: marcus fritzsch <fritschy@googlemail.com>
+
+pkgname=coin
+pkgver=3.1.3
+pkgrel=3
+pkgdesc='Coin3D is a high-level 3D graphics toolkit on top of OpenGL.'
+url='http://www.coin3d.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('mesa' 'expat')
+makedepends=('doxygen')
+optdepends=('openal: sound/dynamic linking support'
+ 'fontconfig: dynamic linking support'
+ 'zlib: dynamic linking support'
+ 'freetype2: dynamic linking support'
+ 'spidermonkey: dynamic linking support')
+options=('!libtool')
+source=("http://ftp.coin3d.org/coin/src/all/Coin-${pkgver}.tar.gz")
+md5sums=('1538682f8d92cdf03e845c786879fbea')
+
+build() {
+ cd Coin-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-optimization \
+ --enable-3ds-import \
+ --enable-javascript-api \
+ --enable-threadsafe \
+ --enable-exceptions \
+ --enable-man \
+ --with-mesa \
+ --disable-debug \
+ --enable-shared \
+ --disable-maintainer-mode \
+ --disable-dependency-tracking \
+ --enable-system-expat
+
+ make
+}
+
+package() {
+ cd Coin-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # final adjustments
+ for _FILE in threads deprecated ; do
+ mv "${pkgdir}/usr/share/man/man3/${_FILE}.3" "${pkgdir}/usr/share/man/man3/coin-${_FILE}.3"
+ done
+}
diff --git a/community/collectd/PKGBUILD b/community/collectd/PKGBUILD
new file mode 100644
index 000000000..9753a9104
--- /dev/null
+++ b/community/collectd/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 44254 2011-04-04 21:24:15Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Gerhard Brauer <gerhard.brauer@web.de>
+
+pkgname=collectd
+pkgver=5.0.0
+pkgrel=1
+pkgdesc='Daemon which collects system performance statistics periodically'
+arch=('i686' 'x86_64')
+url='http://collectd.org/'
+license=('GPL')
+options=('!libtool')
+backup=('etc/collectd.conf')
+
+optdepends=('curl: apache, ascent, curl, nginx, and write_http plugins'
+ 'libdbi: dbi plugin'
+ 'libesmtp: notify_email plugin'
+ 'libgcrypt: encryption and authentication for network plugin'
+ 'iptables: iptables plugin'
+ 'libmemcached: memcachec plugin'
+ 'libmysqlclient: mysql plugin'
+ 'iproute2: netlink plugin'
+ 'net-snmp: snmp plugin'
+ 'libnotify: notify_desktop plugin'
+ 'liboping: ping plugin'
+ 'libpcap: dns plugin'
+ 'perl: perl plugin'
+ 'postgresql-libs: postgresql plugin'
+ 'python2: python plugin'
+ 'rrdtool: rrdtool and rrdcached plugins'
+ 'lm_sensors: lm_sensors and sensors plugins'
+ 'libvirt: libvirt plugin'
+ 'libxml2: ascent and libvirt plugins'
+ 'xmms: xmms plugin'
+ 'yajl: curl_json plugin')
+
+makedepends=('curl' 'libdbi' 'libesmtp' 'libgcrypt' 'iptables' 'libmemcached'
+ 'libmysqlclient' 'iproute2' 'net-snmp' 'libnotify' 'liboping'
+ 'libpcap' 'postgresql-libs' 'python2' 'rrdtool' 'lm_sensors'
+ 'libvirt' 'libxml2' 'xmms' 'yajl')
+
+depends=('libtool')
+
+source=("${url}files/$pkgname-$pkgver.tar.gz"
+ 'libnotify-0.7.patch'
+ 'rc.d')
+sha1sums=('026e5121348f0e525dedb3844fe61c7713994bb7'
+ 'f6fed097c16f6c9c90b9a32a5b8e48d54b35b337'
+ '0f441718d5519cb043b1130e5a1d0379078adbcc')
+
+install=install
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ unset LDFLAGS # or perl not found
+ patch -p1 -i ../libnotify-0.7.patch
+ sed -i 's/ipt_error_target/bozo_error_target/g' src/owniptc/libiptc.c
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --enable-static=no --with-python=/usr/bin/python2
+ make all
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+ install -D -m 755 ../rc.d "$pkgdir/etc/rc.d/$pkgname"
+ install -D -m 644 contrib/collectd2html.pl \
+ "$pkgdir"/usr/share/collectd/collectd2html.pl
+}
diff --git a/community/collectd/install b/community/collectd/install
new file mode 100644
index 000000000..54cc0e1b3
--- /dev/null
+++ b/community/collectd/install
@@ -0,0 +1,8 @@
+post_install() {
+ cat <<EOF
+==> Customize your /etc/collectd.conf (you really want to).
+==> Then start and stop the daemon using: /etc/rc.d/collectd
+==> To see some result of collected data, use the Perl script:
+==> /usr/share/collectd/collectd2html.pl
+EOF
+}
diff --git a/community/collectd/libnotify-0.7.patch b/community/collectd/libnotify-0.7.patch
new file mode 100644
index 000000000..5ea67047a
--- /dev/null
+++ b/community/collectd/libnotify-0.7.patch
@@ -0,0 +1,12 @@
+diff -aur old/src/notify_desktop.c new/src/notify_desktop.c
+--- old/src/notify_desktop.c 2011-03-07 23:50:24.096691200 +0100
++++ new/src/notify_desktop.c 2011-03-07 23:52:35.486691201 +0100
+@@ -95,7 +95,7 @@
+ : (NOTIF_WARNING == n->severity) ? "WARNING"
+ : (NOTIF_OKAY == n->severity) ? "OKAY" : "UNKNOWN");
+
+- notification = notify_notification_new (summary, n->message, NULL, NULL);
++ notification = notify_notification_new (summary, n->message, NULL);
+ if (NULL == notification) {
+ log_err ("Failed to create a new notification.");
+ return -1;
diff --git a/community/collectd/rc.d b/community/collectd/rc.d
new file mode 100644
index 000000000..442f2324a
--- /dev/null
+++ b/community/collectd/rc.d
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+name=collectd
+prog="/usr/sbin/collectdmon"
+
+PID=$(pidof -o %PPID $prog)
+
+case "$1" in
+start)
+ stat_busy "Starting $name daemon"
+ [[ -z "$PID" ]] && $prog \
+ && { add_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+stop)
+ stat_busy "Stopping $name daemon"
+ [[ -n "$PID" ]] && kill $PID &>/dev/null \
+ && { rm_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+reload)
+ stat_busy "Sending SIGHUP to $name daemon"
+ [[ -n "$PID" ]] && kill -HUP $PID &>/dev/null \
+ && { stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+*)
+ echo "usage: $0 {start|stop|restart|reload}"
+ exit 1
+ ;;
+esac
diff --git a/community/comix/PKGBUILD b/community/comix/PKGBUILD
new file mode 100644
index 000000000..da2050962
--- /dev/null
+++ b/community/comix/PKGBUILD
@@ -0,0 +1,37 @@
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=comix
+pkgver=4.0.4
+pkgrel=5
+pkgdesc="A comic book viewer"
+arch=('i686' 'x86_64')
+url="http://comix.sourceforge.net"
+license=('GPL')
+depends=('pygtk' 'pil' 'unrar' 'xdg-utils')
+makedepends=('gettext' 'intltool')
+install=comix.install
+source=(http://downloads.sourceforge.net/sourceforge/comix/comix-${pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # python2 fix
+ for file in src/comix.py mime/comicthumb; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+}
+
+package() {
+ cd ${srcdir}/comix-${pkgver}
+ mkdir -p ${pkgdir}/usr
+ python2 install.py install --no-mime --dir ${pkgdir}/usr
+ install -D -m644 mime/comicbook.schemas \
+ ${pkgdir}/usr/share/gconf/schemas/comix.schemas
+ install -D mime/comicthumb ${pkgdir}/usr/bin/comicthumb
+ install -D -m644 mime/comicthumb.1.gz \
+ ${pkgdir}/usr/share/man/man1/comicthumb.1.gz
+}
+md5sums=('029227a77b122f7080ee0280d41bee78')
diff --git a/community/comix/comix.install b/community/comix/comix.install
new file mode 100644
index 000000000..8e99f7f91
--- /dev/null
+++ b/community/comix/comix.install
@@ -0,0 +1,26 @@
+pkgname=comix
+
+post_install() {
+ which xdg-icon-resource >/dev/null 2>&1 && xdg-icon-resource forceupdate || true
+ which gconfpkg >/dev/null 2>&1 && usr/sbin/gconfpkg --install ${pkgname}
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ which gconfpkg >/dev/null 2>&1 && usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ which xdg-icon-resource >/dev/null 2>&1 && xdg-icon-resource forceupdate || true
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
diff --git a/community/commoncpp2/PKGBUILD b/community/commoncpp2/PKGBUILD
new file mode 100644
index 000000000..411a1d3f2
--- /dev/null
+++ b/community/commoncpp2/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 32643 2010-11-16 09:56:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Mantainer: Franco Tortoriello <franco.tortoriello@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=commoncpp2
+pkgver=1.8.1
+pkgrel=2
+pkgdesc="GNU Common C++ 2"
+arch=('i686' 'x86_64')
+url='http://www.gnu.org/software/commoncpp/'
+license=('GPL' 'custom')
+depends=('gcc-libs' 'zlib' 'sh')
+options=('!libtool' '!makeflags')
+source=("http://ftp.gnu.org/pub/gnu/commoncpp/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4804b184e609154ba2bc0aa9f61dc6ef')
+md5sums=('4804b184e609154ba2bc0aa9f61dc6ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i -e '50 a\#include <sys/stat.h>' inc/cc++/applog.h
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ gzip -9 ${pkgdir}/usr/share/info/commoncpp2.info
+ rm ${pkgdir}/usr/share/info/dir
+
+ install -D -m644 COPYING.addendum ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/compiz-bcop/PKGBUILD b/community/compiz-bcop/PKGBUILD
new file mode 100644
index 000000000..083f439a9
--- /dev/null
+++ b/community/compiz-bcop/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 4436 2009-10-23 08:56:38Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Maintainer: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=compiz-bcop
+pkgver=0.8.4
+pkgrel=1
+pkgdesc="Compiz option code generator"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('compiz-core>=0.8.4' 'libxslt')
+makedepends=('intltool' 'pkgconfig')
+conflicts=('compiz-bcop-git')
+source=(http://releases.compiz-fusion.org/$pkgver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('17c4d1de361acf835f6649ab392f4c62')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/compiz-fusion-plugins-extra/PKGBUILD b/community/compiz-fusion-plugins-extra/PKGBUILD
new file mode 100644
index 000000000..d087d2d42
--- /dev/null
+++ b/community/compiz-fusion-plugins-extra/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 41586 2011-03-08 03:07:48Z ebelanger $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=compiz-fusion-plugins-extra
+pkgver=0.8.6
+pkgrel=2
+pkgdesc="Compiz Fusion Extra plugins"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('compiz-core' 'compiz-bcop' 'compiz-fusion-plugins-main' 'libnotify')
+makedepends=('intltool' 'pkg-config' 'gettext' 'gconf')
+groups=('compiz-fusion' 'compiz-fusion-gtk' 'compiz-fusion-kde')
+conflicts=('compiz-fusion-plugins-extra-git')
+options=('!libtool')
+source=(http://releases.compiz-fusion.org/${pkgver}/compiz-plugins-extra-${pkgver}.tar.bz2)
+md5sums=('fdeec3e437e70d7f68900c031f3165d5')
+sha1sums=('66c571c64910aa21808aedaee8c8ceb4c4a82c78')
+
+build() {
+ cd "${srcdir}/compiz-plugins-extra-${pkgver}"
+
+ sed -i 's/if text "x$use/if test "x$use/' configure
+ sed -i 's/iconUri, NULL);/iconUri);/' src/notification/notification.c
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd "${srcdir}/compiz-plugins-extra-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/compiz-fusion-plugins-main/PKGBUILD b/community/compiz-fusion-plugins-main/PKGBUILD
new file mode 100644
index 000000000..2953267d2
--- /dev/null
+++ b/community/compiz-fusion-plugins-main/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 17042 2010-05-17 11:33:14Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=compiz-fusion-plugins-main
+pkgver=0.8.6
+pkgrel=1
+pkgdesc="Compiz Fusion Main plugins"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('compiz-core' 'libjpeg>=7' 'librsvg' 'compiz-bcop' 'libxdamage')
+makedepends=('intltool' 'pkgconfig' 'gettext')
+groups=('compiz-fusion' 'compiz-fusion-kde' 'compiz-fusion-gtk')
+conflicts=('compiz-fusion-plugins-main-git')
+source=(http://releases.compiz-fusion.org/${pkgver}/compiz-plugins-main-${pkgver}.tar.bz2)
+options=(!libtool)
+md5sums=('bd72b7bc793fb4dae66faf286735760a')
+
+build() {
+ cd "${srcdir}/compiz-plugins-main-${pkgver}"
+ ./configure --prefix=/usr || return 1
+
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/compiz-plugins-main-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/community/compiz-fusion-plugins-main/magiclamp.patch b/community/compiz-fusion-plugins-main/magiclamp.patch
new file mode 100644
index 000000000..3a9e4a21e
--- /dev/null
+++ b/community/compiz-fusion-plugins-main/magiclamp.patch
@@ -0,0 +1,33 @@
+--- src/animation/animation.c.orig 2007-12-01 02:22:12.008115484 +0100
++++ src/animation/animation.c 2007-12-01 02:27:41.541651382 +0100
+@@ -1148,7 +1148,7 @@
+ { "horizontal_folds_zoom_to_taskbar", "bool", 0, 0, 0 },
+ { "magic_lamp_moving_end", "bool", 0, 0, 0 },
+ { "magic_lamp_grid_res", "int", "<min>4</min>", 0, 0 },
+- { "magic_lamp_max_waves", "int", "<min>3</min>", 0, 0 },
++ { "magic_lamp_max_waves", "int", "<min>0</min>", 0, 0 },
+ { "magic_lamp_amp_min", "float", "<min>200</min>", 0, 0 },
+ { "magic_lamp_amp_max", "float", "<min>200</min>", 0, 0 },
+ { "magic_lamp_open_start_width", "int", "<min>0</min>", 0, 0 },
+--- metadata/animation.xml.in.orig 2007-12-01 02:25:24.011432269 +0100
++++ metadata/animation.xml.in 2007-12-01 02:27:02.724750938 +0100
+@@ -1272,7 +1272,7 @@
+ <_short>Magic Lamp Max Waves</_short>
+ <_long>The maximum number of waves for Magic Lamp.</_long>
+ <default>3</default>
+- <min>3</min>
++ <min>0</min>
+ <max>20</max>
+ </option>
+ <option name="magic_lamp_amp_min" type="float">
+--- metadata/animation.xml.orig 2007-12-01 02:25:14.584765435 +0100
++++ metadata/animation.xml 2007-12-01 02:35:07.068035601 +0100
+@@ -3962,7 +3962,7 @@
+ <long xml:lang="pt">Número máximo de ondas para Lâmpada Mágica.</long>
+ <long xml:lang="sv">Den Magiska Lampans maximala antal vågor</long>
+ <default>3</default>
+- <min>3</min>
++ <min>0</min>
+ <max>20</max>
+ </option>
+ <option type="float" name="magic_lamp_amp_min">
diff --git a/community/compiz/PKGBUILD b/community/compiz/PKGBUILD
new file mode 100644
index 000000000..e693eefae
--- /dev/null
+++ b/community/compiz/PKGBUILD
@@ -0,0 +1,124 @@
+# $Id: PKGBUILD 17032 2010-05-17 11:13:51Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Hussam Al-Tayeb ht990332@gmail.com
+# Contributor: Khashayar Naderehvandi <khashayar [at] naderehvandi [dot] net>
+# Contributor: JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+
+pkgbase=compiz
+pkgname=('compiz-core'
+ 'compiz-decorator-kde'
+ 'compiz-decorator-gtk')
+pkgver=0.8.6
+pkgrel=2
+pkgdesc="Composite manager for Aiglx and Xgl"
+url="http://www.go-compiz.org/"
+license=('GPL' 'LGPL' 'MIT')
+arch=('i686' 'x86_64')
+groups=('compiz' 'compiz-kde' 'compiz-gtk' 'compiz-fusion')
+makedepends=('intltool' 'gnome-control-center' 'libwnck' 'kdebase-workspace'
+ 'startup-notification' 'librsvg' 'libgl' 'dbus' 'mesa' 'libxslt' 'fuse')
+options=(!libtool !emptydirs)
+conflicts=('compiz' 'compiz-core-git' 'compiz-git')
+replaces=('compiz')
+source=(http://releases.compiz.org/0.8.6/compiz-$pkgver.tar.gz)
+md5sums=('af0586557e0291c47b924e33bccacc60')
+
+build()
+{
+ cd $srcdir/compiz-$pkgver
+
+ ./configure --prefix=/usr \
+ --enable-gnome \
+ --enable-gtk \
+ --enable-metacity \
+ --enable-gconf \
+ --with-gconf-schema-file-dir=/etc/gconf/schemas \
+ --enable-dbus \
+ --enable-librsvg \
+ --disable-kde \
+ --enable-kde4
+
+ make || return 1
+}
+
+package_compiz-core()
+{
+
+ pkgdesc="Composite manager for Aiglx and Xgl"
+ depends=('startup-notification' 'librsvg' \
+ 'libgl' 'dbus' 'mesa' 'libxslt' 'fuse')
+
+ cd $srcdir/compiz-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # remove stuff which is in one of the decorations
+ rm -rf $pkgdir/usr/bin/{gtk-window-decorator,kde4-window-decorator}
+ rm -rf ${pkgdir}/usr/share/{applications,gnome,gnome-control-center}
+ rm -rf ${pkgdir}/usr/lib/{window-manager-settings,pkgconfig/compiz-gconf.pc,compiz/libgconf*}
+ rm -rf ${pkgdir}/etc
+
+ # install MIT license
+ install -Dm644 $srcdir/compiz-$pkgver/COPYING.MIT \
+ $pkgdir/usr/share/licenses/compiz-core/COPYING.MIT
+}
+
+package_compiz-decorator-gtk()
+{
+ pkgdesc="Compiz decorator for GNOME"
+ depends=('gnome-control-center' 'libwnck' 'compiz-core')
+ install=compiz-decorator-gtk.install
+
+ cd $srcdir/compiz-$pkgver
+
+ pushd gtk
+ make DESTDIR=$pkgdir install || return 1
+ install -Dm644 window-decorator/gwd.schemas \
+ $pkgdir/usr/share/gconf/schemas/gwd.schemas
+ popd
+
+ for i in dbus gconf ini inotify png regex svg glib kconfig
+ do
+ rm $srcdir/compiz-$pkgver/metadata/compiz-$i.schemas
+ done
+
+ gconf-merge-schema \
+ ${pkgdir}/usr/share/gconf/schemas/compiz-decorator-gtk.schemas \
+ ${srcdir}/compiz-$pkgver/metadata/*.schemas
+
+ make DESTDIR=$pkgdir install
+
+ # remove stuff which is in one of the other packages
+ rm -rf ${pkgdir}/etc
+ rm -rf $pkgdir/usr/bin/{compiz,kde4-window-decorator}
+ rm -rf $pkgdir/usr/include
+ cd $pkgdir/usr/lib
+ rm libdecoration*
+ rm pkgconfig/{compiz-cube.pc,compiz-scale.pc,compiz.pc,libdecoration.pc} || return 1
+ cd ${pkgdir}/usr/lib/compiz
+ rm `ls --hide=*gconf*`
+ rm -rf ${pkgdir}/usr/share/{compiz,locale}
+
+ # install MIT license
+ install -Dm644 $srcdir/compiz-$pkgver/COPYING.MIT \
+ $pkgdir/usr/share/licenses/compiz-decorator-gtk/COPYING.MIT
+}
+
+package_compiz-decorator-kde()
+{
+ pkgdesc="Compiz decorator for KDE"
+ depends=('kdebase-workspace' 'compiz-core')
+
+ cd $srcdir/compiz-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # Let's remove stuff that are in compiz-core package or gtk decorator
+ rm -rf $pkgdir/usr/{include,lib}
+ rm -rf $pkgdir/usr/bin/{compiz,gtk-window-decorator}
+ rm -rf ${pkgdir}/etc
+ rm -rf ${pkgdir}/usr/share/{applications,gnome,gnome-control-center,locale,compiz}
+
+ # install MIT license
+ install -Dm644 $srcdir/compiz-$pkgver/COPYING.MIT \
+ $pkgdir/usr/share/licenses/compiz-decorator-kde/COPYING.MIT
+}
+
diff --git a/community/compiz/compiz-decorator-gtk.install b/community/compiz/compiz-decorator-gtk.install
new file mode 100644
index 000000000..b3738fda9
--- /dev/null
+++ b/community/compiz/compiz-decorator-gtk.install
@@ -0,0 +1,28 @@
+post_install() {
+ export GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+ usr/bin/gconftool-2 --makefile-install-rule usr/share/gconf/schemas/gwd.schemas > /dev/null
+ usr/bin/gconftool-2 --makefile-install-rule usr/share/gconf/schemas/compiz-decorator-gtk.schemas > /dev/null
+ kill -s HUP `pidof usr/bin/gconfd-2` > /dev/null 2>&1
+ update-desktop-database -q
+
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ export GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+ usr/bin/gconftool-2 --makefile-uninstall-rule usr/share/gconf/schemas/gwd.schemas >/dev/null
+ usr/bin/gconftool-2 --makefile-uninstall-rule usr/share/gconf/schemas/compiz-decorator-gtk.schemas > /dev/null
+}
+
+post_remove() {
+ kill -s HUP `pidof usr/bin/gconfd-2` > /dev/null 2>&1
+ update-desktop-database -q
+}
+
diff --git a/community/compizconfig-backend-gconf/PKGBUILD b/community/compizconfig-backend-gconf/PKGBUILD
new file mode 100644
index 000000000..0036df9bc
--- /dev/null
+++ b/community/compizconfig-backend-gconf/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 4446 2009-10-23 09:01:45Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: kasa <biuta.jr@gmail.com>
+
+pkgname=compizconfig-backend-gconf
+pkgver=0.8.4
+pkgrel=1
+pkgdesc="Compizconfig backend for gconf"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('libcompizconfig' 'gconf')
+makedepends=('intltool' 'pkgconfig')
+conflicts=('compizconfig-backend-gconf-git')
+groups=('compiz-fusion-gtk' 'compiz-fusion')
+options=('!libtool')
+source=(http://releases.compiz-fusion.org/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3149b45d1099c26735f3b6a91d946b1b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --infodir=/usr/share/info \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc || return 1
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+}
+
diff --git a/community/compizconfig-backend-kconfig/PKGBUILD b/community/compizconfig-backend-kconfig/PKGBUILD
new file mode 100644
index 000000000..78c52556d
--- /dev/null
+++ b/community/compizconfig-backend-kconfig/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 4448 2009-10-23 09:02:36Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: kasa <biuta.jr@gmail.com>
+
+pkgname=compizconfig-backend-kconfig
+pkgver=0.8.4
+pkgrel=1
+pkgdesc="Compizconfig backend for kconfig"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('libcompizconfig' 'kdelibs3' 'qt3')
+makedepends=('intltool' 'pkgconfig')
+conflicts=('compizconfig-backend-gconf-git')
+groups=('compiz-fusion-kde' 'compiz-fusion')
+options=('!libtool')
+source=(http://releases.compiz-fusion.org/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a96a30aba5e5faf7aa7db440fe4891ca')
+
+build() {
+ source /etc/profile.d/kde3.sh
+ source /etc/profile.d/qt3.sh
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure \
+ --prefix=/opt/kde \
+ --without-arts \
+ --with-kde-includes=/opt/kde/includes
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+}
+
diff --git a/community/compizconfig-python/PKGBUILD b/community/compizconfig-python/PKGBUILD
new file mode 100644
index 000000000..0aeb565e6
--- /dev/null
+++ b/community/compizconfig-python/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 33724 2010-11-28 10:19:25Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=compizconfig-python
+pkgver=0.8.4
+pkgrel=2
+pkgdesc="Compizconfig bindings for python"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('compiz-core>=0.8.4' 'libcompizconfig>=0.8.4' 'glib2' 'python2')
+makedepends=('intltool' 'pkgconfig' 'pyrex')
+conflicts=('compizconfig-python-git')
+source=(http://releases.compiz-fusion.org/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('702f83f63ce5dc3c6c1d27e07fb62fc3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ PYTHON=python2 ./configure --prefix=/usr
+
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/confuse/PKGBUILD b/community/confuse/PKGBUILD
new file mode 100755
index 000000000..6f713df50
--- /dev/null
+++ b/community/confuse/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 17258 2010-05-22 14:32:23Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Alexander Mieland (dma147) <dma147@linux-stats.org>
+
+pkgname=confuse
+pkgver=2.7
+pkgrel=1
+pkgdesc="C-library for parsing configuration files"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/confuse"
+license=('LGPL')
+depends=('glibc')
+source=(http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool' '!emptydirs')
+md5sums=('45932fdeeccbb9ef4228f1c1a25e9c8f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-shared
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/conkeror-git/PKGBUILD b/community/conkeror-git/PKGBUILD
new file mode 100644
index 000000000..4bf03eb4f
--- /dev/null
+++ b/community/conkeror-git/PKGBUILD
@@ -0,0 +1,62 @@
+# Contributor: Heeru Kiyura <M8R-p9i5nh@mailinator.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+_commit=34882281d19ff7ac8786f927b414e1af5afc9266
+pkgname=conkeror-git
+pkgver=0.9.3
+pkgrel=3
+pkgdesc="A highly programmable web browser based on Mozilla XULRunner."
+arch=('i686' 'x86_64')
+url="http://conkeror.mozdev.org/"
+license=('MPL' 'GPL' 'LGPL')
+depends=('bash' 'xulrunner')
+makedepends=('git' 'imagemagick')
+provides=(conkeror)
+source=("conkeror_gimpfile.xcf::http://conkeror.org/Artwork?action=AttachFile&do=get&target=conkeror_gimpfile.xcf" http://ftp.eenet.ee/gentoo-portage/www-client/conkeror/files/conkeror.desktop)
+md5sums=('04800c5e69ad82ab13e562261d701ecf'
+ 'cabe2d3de7e3ddad6268de711aa186ee')
+
+__gitroot="git://repo.or.cz/conkeror.git"
+__gitname="conkeror"
+
+build() {
+ cd $srcdir
+
+ ## Git checkout
+ if [ -d $srcdir/${__gitname} ] ; then
+ msg "Git checkout: Updating existing tree"
+ cd ${__gitname} && git checkout "$_commit"
+ msg "Git checkout: Tree has been updated"
+ else
+ msg "Git checkout: Retrieving sources"
+ git clone ${__gitroot} && cd ${__gitname} && git checkout ${_commit}
+ fi
+ msg "Checkout completed"
+
+ ## Build
+ [ -d ${__gitname}-build ] || rm -rf $srcdir/${__gitname}-build
+ git clone $srcdir/${__gitname} $srcdir/${__gitname}-build
+ cd $srcdir/${__gitname}-build
+
+ make
+}
+package() {
+ cd $srcdir/${__gitname}-build
+ install -d $pkgdir/usr/share/conkeror
+ install -Dm755 $srcdir/${__gitname}-build/conkeror-spawn-helper \
+ $pkgdir/usr/bin/conkeror-spawn-helper
+ install -d $pkgdir/usr/share/man/man1
+ cp -a $srcdir/${__gitname}-build/* $pkgdir/usr/share/conkeror
+ install -Dm644 $pkgdir/usr/share/conkeror/contrib/man/conkeror.1 \
+ $pkgdir/usr/share/man/man1/conkeror.1
+ rm -r $pkgdir/usr/share/conkeror/contrib/man
+ install -Dm644 $srcdir/conkeror.desktop \
+ $pkgdir/usr/share/applications/conkeror.desktop
+ ln -s /usr/share/conkeror/contrib/run-conkeror \
+ $pkgdir/usr/bin/conkeror
+ rm $pkgdir/usr/share/conkeror/conkeror-spawn-helper
+ rm -r $pkgdir/usr/share/conkeror/debian
+ install -d $pkgdir/usr/share/pixmaps
+ convert -composite $srcdir/conkeror_gimpfile.xcf \
+ $pkgdir/usr/share/pixmaps/conkeror.png
+}
diff --git a/community/coq/PKGBUILD b/community/coq/PKGBUILD
new file mode 100644
index 000000000..35138b391
--- /dev/null
+++ b/community/coq/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: George Giorgidze <giorgidze@gmail.com>
+
+pkgname=coq
+pkgver=8.3pl1
+pkgrel=2
+pkgdesc='Formal proof management system.'
+arch=('i686' 'x86_64')
+url='http://coq.inria.fr/'
+license=('GPL')
+depends=('gtk2')
+makedepends=('ocaml' 'lablgtk2' 'camlp5-transitional' 'netpbm' 'hevea')
+options=('force')
+source=("http://coq.inria.fr/distrib/V${pkgver}/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('1869d22b337f5da59ba3bbe1433f9a3b')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ -prefix '/usr' \
+ -mandir '/usr/share/man' \
+ -opt \
+ -with-doc yes
+
+ make world
+
+ make doc-html
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make COQINSTALLPREFIX=${pkgdir} install
+
+ make COQINSTALLPREFIX=${pkgdir} install-doc-html
+}
diff --git a/community/corkscrew/ChangeLog b/community/corkscrew/ChangeLog
new file mode 100644
index 000000000..8dfd33f1b
--- /dev/null
+++ b/community/corkscrew/ChangeLog
@@ -0,0 +1,3 @@
+2010-04-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community]
+ * version 2.0 - 61 votes in AUR
diff --git a/community/corkscrew/PKGBUILD b/community/corkscrew/PKGBUILD
new file mode 100644
index 000000000..547e7980f
--- /dev/null
+++ b/community/corkscrew/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 15297 2010-04-09 16:08:30Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: gothmog.todi <t.haider@vcnc.org>
+
+pkgname=corkscrew
+pkgver=2.0
+pkgrel=4
+pkgdesc="A tool for tunneling SSH through HTTP proxies"
+arch=('i686' 'x86_64')
+url="http://www.agroman.net/corkscrew/"
+license=('GPL')
+source=(http://www.agroman.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('35df77e7f0e59c0ec4f80313be52c10a')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/couchdb/PKGBUILD b/community/couchdb/PKGBUILD
new file mode 100644
index 000000000..f67905866
--- /dev/null
+++ b/community/couchdb/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 44051 2011-04-01 20:08:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Vitaliy Berdinskikh ur6lad[at]i.ua
+# Previous Contributor: Michael Fellinger <m.fellinger@gmail.com>
+
+pkgname=couchdb
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="A document-oriented database that can be queried and indexed in a MapReduce fashion using JSON"
+arch=('i686' 'x86_64')
+url="http://couchdb.apache.org"
+license=('APACHE')
+depends=('icu' 'erlang' 'spidermonkey' 'openssl' 'curl')
+makedepends=('gcc')
+install=couchdb.install
+options=('!libtool')
+backup=('etc/couchdb/local.ini'
+ 'etc/conf.d/couchdb'
+ 'etc/logrotate.d/couchdb')
+source=("http://www.apache.org/dist/$pkgname/$pkgver/apache-$pkgname-$pkgver.tar.gz"
+ "rc-script.patch")
+md5sums=('7ffbbe0f23f672181c89923c9f7a1de1'
+ 'e9b5595338efbdc1a5db13284a296612')
+
+build() {
+ cd "$srcdir/apache-$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+ patch etc/init/couchdb <$srcdir/rc-script.patch
+ make DESTDIR="$pkgdir" install
+
+ install -Dm755 etc/default/couchdb $pkgdir/etc/conf.d/couchdb
+ sed -i 's|\(CONFIGURATION_FILE=/etc/\)default\(/couchdb\)|\1conf.d\2|' $pkgdir/etc/rc.d/couchdb
+ sed -i 's|\(COUCHDB_OPTIONS=\)|\1"-p /var/run/couchdb/couchdb.pid"|' $pkgdir/etc/conf.d/couchdb
+ sed -i 's|$COUCHDB -s|$COUCHDB $COUCHDB_OPTIONS -s|' $pkgdir/etc/rc.d/couchdb
+ sed -i 's|su $COUCHDB_USER -c|su $COUCHDB_USER -s /bin/bash -c|' $pkgdir/etc/rc.d/couchdb
+
+ rm -rf $pkgdir/etc/default/ $pkgdir/var/run
+}
diff --git a/community/couchdb/couchdb.install b/community/couchdb/couchdb.install
new file mode 100644
index 000000000..5eff459c7
--- /dev/null
+++ b/community/couchdb/couchdb.install
@@ -0,0 +1,22 @@
+post_install() {
+ id couchdb &>/dev/null || \
+ useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb
+ mkdir -p /var/run/couchdb
+ chown -R couchdb.daemon /etc/couchdb
+ chown -R couchdb.daemon /var/{lib,log,run}/couchdb
+}
+
+pre_upgrade() {
+ id couchdb &>/dev/null || \
+ useradd -r -c "CouchDB daemon" -g daemon -d /var/lib/couchdb -s /bin/false couchdb
+}
+
+post_upgrade() {
+ mkdir -p $pkgdir/var/run/couchdb
+ chown -R couchdb.daemon /etc/couchdb
+ chown -R couchdb.daemon /var/{lib,log,run}/couchdb
+}
+
+post_remove() {
+ userdel couchdb &>/dev/null
+}
diff --git a/community/couchdb/rc-script.patch b/community/couchdb/rc-script.patch
new file mode 100644
index 000000000..d38f4dc6c
--- /dev/null
+++ b/community/couchdb/rc-script.patch
@@ -0,0 +1,90 @@
+--- couchdb.org 2011-04-01 19:56:32.000000000 +0000
++++ couchdb 2011-04-01 19:59:17.000000000 +0000
+@@ -1,4 +1,7 @@
+-#!/bin/sh -e
++#!/bin/bash
++#general config
++. /etc/rc.conf
++. /etc/rc.d/functions
+
+ # Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ # use this file except in compliance with the License. You may obtain a copy of
+@@ -29,7 +32,7 @@
+ NAME=couchdb
+ SCRIPT_NAME=`basename $0`
+ COUCHDB=/usr/bin/couchdb
+-CONFIGURATION_FILE=/etc/default/couchdb
++CONFIGURATION_FILE=/etc/conf.d/couchdb
+ RUN_DIR=/var/run/couchdb
+ LSB_LIBRARY=/lib/lsb/init-functions
+
+@@ -61,8 +63,9 @@
+ fi
+
+ start_couchdb () {
+- # Start Apache CouchDB as a background process.
++ stat_busy "Starting the CouchDB daemon"
+
++ [ -d /var/run/couchdb ] || mkdir -p /var/run/couchdb
+ command="$COUCHDB -b"
+ if test -n "$COUCHDB_STDOUT_FILE"; then
+ command="$command -o $COUCHDB_STDOUT_FILE"
+@@ -79,38 +82,38 @@
+ mkdir -p "$RUN_DIR"
+ if test -n "$COUCHDB_USER"; then
+ chown $COUCHDB_USER "$RUN_DIR"
+- if su $COUCHDB_USER -c "$command" > /dev/null; then
+- return $SCRIPT_OK
++ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then
++ stat_done
+ else
+- return $SCRIPT_ERROR
++ stat_fail
+ fi
+ else
+ if $command > /dev/null; then
+- return $SCRIPT_OK
++ stat_done
+ else
+- return $SCRIPT_ERROR
++ stat_fail
+ fi
+ fi
+ }
+
+ stop_couchdb () {
+- # Stop the running Apache CouchDB process.
++ stat_busy "Stopping the CouchDB daemon"
+
+ command="$COUCHDB -d"
+ if test -n "$COUCHDB_OPTIONS"; then
+ command="$command $COUCHDB_OPTIONS"
+ fi
+ if test -n "$COUCHDB_USER"; then
+- if su $COUCHDB_USER -c "$command" > /dev/null; then
+- return $SCRIPT_OK
++ if su $COUCHDB_USER -s /bin/bash -c "$command" > /dev/null; then
++ stat_done
+ else
+- return $SCRIPT_ERROR
++ stat_fail
+ fi
+ else
+ if $command > /dev/null; then
+- return $SCRIPT_OK
++ stat_done
+ else
+- return $SCRIPT_ERROR
++ stat_fail
+ fi
+ fi
+ }
+@@ -118,7 +121,7 @@
+ display_status () {
+ # Display the status of the running Apache CouchDB process.
+
+- $COUCHDB -s
++ $COUCHDB $COUCHDB_OPTIONS -s
+ }
+
+ parse_script_option_list () {
diff --git a/community/courier-authlib/PKGBUILD b/community/courier-authlib/PKGBUILD
new file mode 100644
index 000000000..5f8ec29e8
--- /dev/null
+++ b/community/courier-authlib/PKGBUILD
@@ -0,0 +1,62 @@
+# $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=4
+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')
+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/courier-authlib/authdaemond.rc.d b/community/courier-authlib/authdaemond.rc.d
new file mode 100644
index 000000000..ff4abb182
--- /dev/null
+++ b/community/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/courier-authlib/courier-authlib.install b/community/courier-authlib/courier-authlib.install
new file mode 100644
index 000000000..cbccc636b
--- /dev/null
+++ b/community/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/courier-imap/PKGBUILD b/community/courier-imap/PKGBUILD
new file mode 100644
index 000000000..921f4e5a0
--- /dev/null
+++ b/community/courier-imap/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 75457 2010-04-01 16:36:45Z giovanni $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: tobias <tobias@archlinux.org>
+# Committer: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=courier-imap
+pkgver=4.8.1
+pkgrel=1
+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' 'fam' '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')
+source=(http://downloads.sourceforge.net/project/courier/imap/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ courier-imap.conf.d courier-imap.rc.d)
+md5sums=('67dbd0e698f03d1a50db906318af8db9'
+ '3e08f017f6c5a52dea28f6f0dbd50b86'
+ '5bba44fc650d1671a84ae9b2bdf09561')
+
+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 644 ${srcdir}/courier-imap.conf.d ${pkgdir}/etc/conf.d/courier-imap
+ install -dm755 -g courier -o courier ${pkgdir}/var/run/courier
+}
diff --git a/community/courier-imap/courier-imap.conf.d b/community/courier-imap/courier-imap.conf.d
new file mode 100644
index 000000000..66049470d
--- /dev/null
+++ b/community/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/courier-imap/courier-imap.pam b/community/courier-imap/courier-imap.pam
new file mode 100644
index 000000000..fa52db541
--- /dev/null
+++ b/community/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/courier-imap/courier-imap.rc.d b/community/courier-imap/courier-imap.rc.d
new file mode 100644
index 000000000..924265b9d
--- /dev/null
+++ b/community/courier-imap/courier-imap.rc.d
@@ -0,0 +1,56 @@
+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)
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond start
+ sleep ${AUTO_AUTHDAEMON_LAG}
+ fi
+ if [ ! -f /var/run/daemons/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/courier-maildrop/PKGBUILD b/community/courier-maildrop/PKGBUILD
new file mode 100644
index 000000000..c6dd433bb
--- /dev/null
+++ b/community/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.2
+pkgrel=1
+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' 'fam' 'pcre' 'gdbm')
+conflicts=('courier-mta')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/courier/${_srcname}/${pkgver}/${_srcname}-${pkgver}.tar.bz2)
+md5sums=('3edb56534ae442a494255db6c8aaab99')
+
+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/courier-mta/PKGBUILD b/community/courier-mta/PKGBUILD
new file mode 100644
index 000000000..7b74f25fb
--- /dev/null
+++ b/community/courier-mta/PKGBUILD
@@ -0,0 +1,111 @@
+# $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.65.3
+pkgrel=1
+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' 'fam' 'gcc-libs' 'gdbm' 'pcre' 'mime-types' 'ca-certificates')
+optdepends=('libldap')
+makedepends=('apache>=2.2.9-3' 'pam>=1.0.1-2' 'expect' 'gnupg' 'libldap' 'fam')
+provides=('smtp-server' 'imap-server' 'pop3-server' 'courier-imap' 'courier-maildrop')
+conflicts=('courier-imap' '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-mta.rc.d courier-mta.conf.d )
+md5sums=('581f73ffad17e0a106177ff1209b042d'
+ '6b05b7f4f633201e8ae471a185e779df'
+ 'f3ff70b40c7a1f7a017e8c4cc4d92f4f')
+
+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 -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
+ 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/courier-mta/courier-mta.conf.d b/community/courier-mta/courier-mta.conf.d
new file mode 100644
index 000000000..5856a5cda
--- /dev/null
+++ b/community/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/courier-mta/courier-mta.install b/community/courier-mta/courier-mta.install
new file mode 100644
index 000000000..eac627867
--- /dev/null
+++ b/community/courier-mta/courier-mta.install
@@ -0,0 +1,46 @@
+# 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
+}
+
+
+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/aliase/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/courier-mta/courier-mta.rc.d b/community/courier-mta/courier-mta.rc.d
new file mode 100644
index 000000000..71970c6a3
--- /dev/null
+++ b/community/courier-mta/courier-mta.rc.d
@@ -0,0 +1,56 @@
+#!/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)
+ if [ "$AUTO_AUTHDAEMON" == "true" ]; then
+ /etc/rc.d/authdaemond start
+ sleep ${AUTO_AUTHDAEMON_LAG}
+ fi
+ if [ ! -f /var/run/daemons/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/courier-mta/courier-webmail-cleancache.cron.hourly b/community/courier-mta/courier-webmail-cleancache.cron.hourly
new file mode 100644
index 000000000..6c541321e
--- /dev/null
+++ b/community/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/cppcheck/PKGBUILD b/community/cppcheck/PKGBUILD
new file mode 100644
index 000000000..a6c343e21
--- /dev/null
+++ b/community/cppcheck/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 39750 2011-02-15 22:58:04Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+pkgname=cppcheck
+pkgver=1.47
+pkgrel=1
+pkgdesc="A tool for static C/C++ code analysis"
+arch=('i686' 'x86_64')
+url="http://cppcheck.wiki.sourceforge.net"
+license=('GPL')
+depends=('gcc-libs' 'pcre')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('ab30d8968064d50d2e1022c749b0d7d10c8b65ae')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/cppunit/PKGBUILD b/community/cppunit/PKGBUILD
new file mode 100644
index 000000000..609ddf766
--- /dev/null
+++ b/community/cppunit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 16187 2010-04-26 10:05:11Z andrea $
+# Maintainer:
+# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
+
+pkgname=cppunit
+pkgver=1.12.1
+pkgrel=2
+pkgdesc="A C++ unit testing framework"
+arch=('i686' 'x86_64')
+url="http://cppunit.sourceforge.net"
+license=('LGPL')
+depends=('sh' 'gcc-libs')
+makedepends=('gcc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'gcc4.5.patch')
+md5sums=('bd30e9cf5523cdfc019b94f5e1d7fd19'
+ '7f4e3b50fa1ee8bc854ab431848dddec')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np1 -i ${srcdir}/gcc4.5.patch
+ autoreconf
+ libtoolize -f
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/cppunit/gcc4.5.patch b/community/cppunit/gcc4.5.patch
new file mode 100644
index 000000000..86d4a424d
--- /dev/null
+++ b/community/cppunit/gcc4.5.patch
@@ -0,0 +1,15 @@
+--- cppunit-1.12.1.orig/src/cppunit/Makefile.am
++++ cppunit-1.12.1/src/cppunit/Makefile.am
+@@ -63,5 +63,11 @@
+
+ libcppunit_la_LDFLAGS= \
+ -no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+- -release $(LT_RELEASE)
++ -release $(LT_RELEASE) @LIBADD_DL@
+
++TESTS = t_link
++
++check_PROGRAMS = t_link
++
++t_link_SOURCES = t_link.cpp
++t_link_LDADD = libcppunit.la
diff --git a/community/cpuburn/PKGBUILD b/community/cpuburn/PKGBUILD
new file mode 100644
index 000000000..b29af70a5
--- /dev/null
+++ b/community/cpuburn/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Filip Wojciechowski, filip at loka dot pl
+
+pkgname=cpuburn
+pkgver=1.4a
+pkgrel=1
+pkgdesc="CPU testing utilities in optimized assembler for maximum loading of CPUs"
+arch=('i686' 'x86_64')
+url="http://pages.sbcglobal.net/redelm/"
+license=('GPL')
+depends=()
+makedepends=('tar') # needs to be extracted manually because of malformed source file name
+source=(http://pages.sbcglobal.net/redelm/cpuburn_${pkgver/./_}_tar.gz cpuburn.patch)
+noextract=($pkgname_${pkgver/./_}_tar.gz)
+md5sums=('a9e1df40c660324eb08e91847cbc41b9'
+ 'f3c77db7592ac02ee83958f07ceb8986')
+
+build() {
+ cd "$srcdir"
+
+ # Workaround for malformed source file name
+ mv cpuburn_${pkgver/./_}_tar.gz "$pkgname_$pkgver.tar.gz"
+ tar zxf "$pkgname_$pkgver.tar.gz"
+
+ cd "$pkgname-$pkgver"
+ # a patch from debian/ubuntu patchset
+ patch -Np1 -i ../cpuburn.patch
+ make
+ install -Dm755 burnBX $pkgdir/usr/bin/burnBX
+ install -Dm755 burnK6 $pkgdir/usr/bin/burnK6
+ install -Dm755 burnK7 $pkgdir/usr/bin/burnK7
+ install -Dm755 burnMMX $pkgdir/usr/bin/burnMMX
+ install -Dm755 burnP5 $pkgdir/usr/bin/burnP5
+ install -Dm755 burnP6 $pkgdir/usr/bin/burnP6
+ install -Dm644 README $pkgdir/usr/share/doc/$pkgname/README
+ install -Dm644 Design $pkgdir/usr/share/doc/$pkgname/Design
+}
diff --git a/community/cpuburn/cpuburn.patch b/community/cpuburn/cpuburn.patch
new file mode 100644
index 000000000..4bcd978b7
--- /dev/null
+++ b/community/cpuburn/cpuburn.patch
@@ -0,0 +1,41 @@
+--- cpuburn-1.4.orig/burnP6.S
++++ cpuburn-1.4/burnP6.S
+@@ -69,6 +69,7 @@
+ push %eax # *BSD syscall
+ int $0x80
+ #endif
++.data # Data allocation
+ .align 32,0
+ half: .long 0x7fffffff,0
+ e: .long 0xffffffff,0x3fdfffff
+--- cpuburn-1.4.orig/burnK6.S
++++ cpuburn-1.4/burnK6.S
+@@ -68,6 +68,7 @@
+ push %eax
+ int $0x80
+ #endif
++.data # Data allocation
+ .align 32,0
+ half: .long 0x7fffffff,0
+ e: .long 0xffffffff,0x3fdfffff
+--- cpuburn-1.4.orig/Makefile
++++ cpuburn-1.4/Makefile
+@@ -1,3 +1,3 @@
+ all : burnP5 burnP6 burnK6 burnK7 burnBX burnMMX
+ .S:
+- gcc -s -nostdlib -o $@ $<
++ gcc -m32 -s -nostdlib -o $@ $<
+--- cpuburn-1.4.orig/burnK7.S
++++ cpuburn-1.4/burnK7.S
+@@ -74,10 +74,9 @@
+ push %eax
+ int $0x80
+ #endif
++.data # Data allocation
+ .align 32,0
+ .fill 64
+ half: .long 0x7fffffff,0
+ e: .long 0xffffffff,0x3fdfffff
+ rt: .long 0xffffffff,0x3fefffff
+-
+-
diff --git a/community/cpulimit/PKGBUILD b/community/cpulimit/PKGBUILD
new file mode 100644
index 000000000..7ef5ab146
--- /dev/null
+++ b/community/cpulimit/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 17379 2010-05-24 09:44:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cpulimit
+pkgver=1.1
+pkgrel=2
+pkgdesc="Limit cpu usage in %. Actualy sends SIGSTOP/SIGCONT"
+arch=('i686' 'x86_64')
+url="http://cpulimit.sourceforge.net/"
+license=("GPL")
+depends=(glibc)
+source=("http://downloads.sourceforge.net/sourceforge/cpulimit/cpulimit-$pkgver.tar.gz")
+md5sums=('f4ff6d4bfaef1258e8f5cd2041e2e2a3')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ make
+ install -D -m0755 cpulimit $startdir/pkg/usr/bin/cpulimit
+}
diff --git a/community/critter/PKGBUILD b/community/critter/PKGBUILD
new file mode 100644
index 000000000..3697a70b7
--- /dev/null
+++ b/community/critter/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+
+pkgname=critter
+_origname=CriticalMass
+pkgver=1.0.2
+pkgrel=4
+pkgdesc="Critical Mass (aka Critter) is an SDL/OpenGL space shoot'em up game"
+arch=('i686' 'x86_64')
+url="http://criticalmass.sourceforge.net/critter.php"
+license=('GPL')
+depends=('sdl_image' 'sdl_mixer' 'mesa')
+source=(http://downloads.sourceforge.net/sourceforge/criticalmass/$_origname-$pkgver.tar.bz2
+ critter-gcc43.patch
+ critter.desktop)
+md5sums=('e2aff114bffa717fb79c82e1dc473ebe'
+ 'e936920acce56bfa3b0123ca8b1193a6'
+ '98c17809aed964c445adad09827035df')
+
+build() {
+ cd $startdir/src/$_origname-$pkgver
+ patch -Np1 -i ../critter-gcc43.patch
+ sed -i 's|-lpng12|-lpng|g' configure
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ install -Dm644 critter.png ${startdir}/pkg/usr/share/pixmaps/critter.png
+ install -Dm644 ../critter.desktop \
+ ${startdir}/pkg/usr/share/applications/critter.desktop
+}
diff --git a/community/critter/critter-gcc43.patch b/community/critter/critter-gcc43.patch
new file mode 100644
index 000000000..ade42d8e4
--- /dev/null
+++ b/community/critter/critter-gcc43.patch
@@ -0,0 +1,69 @@
+diff -Naur CriticalMass-1.0.2-old/tinyxml/tinyxml.cpp CriticalMass-1.0.2/tinyxml/tinyxml.cpp
+--- CriticalMass-1.0.2-old/tinyxml/tinyxml.cpp 2003-03-03 12:34:58.000000000 +1000
++++ CriticalMass-1.0.2/tinyxml/tinyxml.cpp 2008-04-01 22:26:47.000000000 +1000
+@@ -22,7 +22,8 @@
+ */
+
+ #include "tinyxml.h"
+-
++#include <cstring>
++#include <cstdlib>
+
+ TiXmlNode::TiXmlNode( NodeType _type )
+ {
+diff -Naur CriticalMass-1.0.2-old/tinyxml/tinyxmlparser.cpp CriticalMass-1.0.2/tinyxml/tinyxmlparser.cpp
+--- CriticalMass-1.0.2-old/tinyxml/tinyxmlparser.cpp 2003-03-03 12:34:58.000000000 +1000
++++ CriticalMass-1.0.2/tinyxml/tinyxmlparser.cpp 2008-04-01 22:27:02.000000000 +1000
+@@ -24,7 +24,7 @@
+
+ #include "tinyxml.h"
+ #include <ctype.h>
+-
++#include <cstring>
+ const char* TiXmlBase::SkipWhiteSpace( const char* p )
+ {
+ while ( p && *p &&
+diff -Naur CriticalMass-1.0.2-old/utils/ResourceManager.cpp CriticalMass-1.0.2/utils/ResourceManager.cpp
+--- CriticalMass-1.0.2-old/utils/ResourceManager.cpp 2005-01-02 12:59:29.000000000 +1000
++++ CriticalMass-1.0.2/utils/ResourceManager.cpp 2008-04-01 22:27:19.000000000 +1000
+@@ -15,6 +15,7 @@
+ #include <iomanip>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <cstring>
+
+ #include <Trace.hpp>
+ #include <ResourceManager.hpp>
+diff -Naur CriticalMass-1.0.2-old/utils/Value.hpp CriticalMass-1.0.2/utils/Value.hpp
+--- CriticalMass-1.0.2-old/utils/Value.hpp 2004-12-18 12:41:24.000000000 +1000
++++ CriticalMass-1.0.2/utils/Value.hpp 2008-04-01 22:27:39.000000000 +1000
+@@ -17,6 +17,7 @@
+
+ #include <stdio.h>
+ #include <string>
++#include <cstdlib>
+
+ #include <Trace.hpp>
+
+diff -Naur CriticalMass-1.0.2-old/utils/zStream.cpp CriticalMass-1.0.2/utils/zStream.cpp
+--- CriticalMass-1.0.2-old/utils/zStream.cpp 2005-08-01 06:06:14.000000000 +1000
++++ CriticalMass-1.0.2/utils/zStream.cpp 2008-04-01 22:28:03.000000000 +1000
+@@ -17,6 +17,7 @@
+ #include <zStream.hpp>
+ #include <zStreamBufferImplLZMA.hpp>
+ #include <zStreamBufferImplZLib.hpp>
++#include <cstdlib>
+
+ ofstream &operator<<( ofstream &outfile, Uint32 i)
+ {
+diff -Naur CriticalMass-1.0.2-old/utils/zStreamBufferImplZLib.cpp CriticalMass-1.0.2/utils/zStreamBufferImplZLib.cpp
+--- CriticalMass-1.0.2-old/utils/zStreamBufferImplZLib.cpp 2005-08-01 06:06:14.000000000 +1000
++++ CriticalMass-1.0.2/utils/zStreamBufferImplZLib.cpp 2008-04-01 22:28:23.000000000 +1000
+@@ -14,6 +14,7 @@
+ //
+ #include <Trace.hpp>
+ #include <zStreamBufferImplZLib.hpp>
++#include <cstdlib>
+
+ bool ziStreamBufferImplZLib::init( void)
+ {
diff --git a/community/critter/critter.desktop b/community/critter/critter.desktop
new file mode 100644
index 000000000..ded5a9fbf
--- /dev/null
+++ b/community/critter/critter.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Critical Mass
+Comment=SDL/OpenGL space shoot'em up game
+Exec=critter
+Icon=critter
+Terminal=false
+Type=Application
+StartupNotify=true
+Categories=Game;
diff --git a/community/critterding/PKGBUILD b/community/critterding/PKGBUILD
new file mode 100644
index 000000000..ec6c82edd
--- /dev/null
+++ b/community/critterding/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Thomas Dziedzic <gostrc at gmail>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+
+pkgname=critterding
+pkgver=beta12.1
+pkgrel=1
+pkgdesc='A Petri dish universe in 3D that demonstrates evolving artificial life.'
+arch=('i686' 'x86_64')
+url='http://critterding.sourceforge.net/'
+license=('GPL')
+depends=('freetype2' 'sdl' 'libgl' 'ftgl')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/sources/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('29e9848d76ede1e743e05ab7b23082ba')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ autoreconf -fi
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/cross-arm-elf-binutils/PKGBUILD b/community/cross-arm-elf-binutils/PKGBUILD
new file mode 100644
index 000000000..406f2d7b9
--- /dev/null
+++ b/community/cross-arm-elf-binutils/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 35548 2010-12-21 16:53:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-elf-binutils
+pkgver=2.21
+pkgrel=2
+_xprefix=/usr
+pkgdesc="A set of programs to assemble and manipulate binary and object files"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://sources.redhat.com/binutils"
+depends=('glibc' 'zlib')
+source=(ftp://ftp.gnu.org/gnu/binutils/binutils-${pkgver}.tar.gz)
+md5sums=('f11e10f312a58d82f14bf571dd9ff91c')
+
+build() {
+ cd $srcdir/binutils-${pkgver}
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=${_xprefix} \
+ --program-prefix=arm-elf- \
+ --enable-shared \
+ --disable-multilib \
+ --with-lib-path=${_xprefix}/lib/binutils/arm-elf \
+ --disable-nls \
+ --target=arm-elf \
+ --host=$CHOST \
+ --build=$CHOST \
+ --with-sysroot=/usr/$CHOST/arm-elf \
+# --with-build-sysroot=/usr/i686-pc-linux-gnu/arm-elf/
+
+# mkdir -p $pkgdir/${_xprefix}/lib/binutils
+# sed -i 's|know (S_GET_VALUE (frag->tc_frag_data.last_map) < S_GET_VALUE (symbolP));|{know (S_GET_VALUE (frag->tc_frag_data.last_map) < S_GET_VALUE (symbolP));}|' gas/config/tc-arm.c
+
+ make configure-host
+ make tooldir=$pkgdir/${_xprefix}
+ make prefix=$pkgdir/${_xprefix} tooldir=$pkgdir/${_xprefix} install
+
+ mkdir -p $pkgdir/${_xprefix}/lib/binutils/arm-elf
+ cp -v include/libiberty.h $pkgdir/${_xprefix}/lib/binutils/arm-elf
+
+ rm -f $pkgdir/${_xprefix}/man/man1/{dlltool,nlmconv,windres}*
+
+ rm -f $pkgdir/usr/bin/ar
+ rm -f $pkgdir/usr/bin/as
+ rm -f $pkgdir/usr/bin/ld
+ rm -f $pkgdir/usr/bin/nm
+ rm -f $pkgdir/usr/bin/objdump
+ rm -f $pkgdir/usr/bin/ranlib
+ rm -f $pkgdir/usr/bin/strip
+ rm -f $pkgdir/usr/bin/objcopy
+ rm -f $pkgdir/usr/lib/libiberty.a
+ rm -rf $pkgdir/usr/share
+}
diff --git a/community/cross-arm-elf-gcc-base/PKGBUILD b/community/cross-arm-elf-gcc-base/PKGBUILD
new file mode 100644
index 000000000..884d697c8
--- /dev/null
+++ b/community/cross-arm-elf-gcc-base/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 36540 2011-01-04 13:58:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-elf-gcc-base
+pkgver=4.5.2
+pkgrel=1
+pkgdesc="The GNU Compiler Collection"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+url="http://gcc.gnu.org"
+depends=('cross-arm-elf-binutils' 'libmpc' 'libelf' 'cloog-ppl')
+options=(!libtool !emptydirs zipman docs !strip)
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-core-${pkgver}.tar.bz2)
+md5sums=('aa9e36bec080452372bfba793428ee82')
+
+build() {
+ cd $srcdir/gcc-$pkgver
+
+ export CFLAGS="-O2 -pipe"
+ export CXXFLAGS="-O2 -pipe"
+
+ [ $NOEXTRACT -eq 1 ] || rm -rf build
+ mkdir build
+ cd build
+
+ [ $NOEXTRACT -eq 1 ] || ../configure --prefix=/usr \
+ --target=arm-elf \
+ --host=$CHOST \
+ --build=$CHOST \
+ --enable-shared --disable-nls --enable-languages=c --enable-multilib \
+ --with-local-prefix=/usr/lib/cross-arm \
+ --with-as=/usr/bin/arm-elf-as --with-ld=/usr/bin/arm-elf-ld \
+ --enable-softfloat \
+ --with-float=soft \
+ --with-newlib \
+ --with-sysroot=/usr/$CHOST/arm-elf
+
+ make all-gcc all-target-libgcc
+ make DESTDIR=$pkgdir install-gcc install-target-libgcc
+
+ rm -f $pkgdir/usr/share/man/man7/fsf-funding.7*
+ rm -f $pkgdir/usr/share/man/man7/gfdl.7*
+ rm -f $pkgdir/usr/share/man/man7/gpl.7*
+ rm -rf $pkgdir/usr/share/info
+
+ cp -r $pkgdir/usr/libexec/* $pkgdir/usr/lib/
+ rm -rf $pkgdir/usr/libexec
+
+ # strip it manually
+ strip $pkgdir/usr/bin/* 2>/dev/null || true
+ find $pkgdir/usr/lib -type f -exec arm-elf-strip {} \; 2>/dev/null || true
+}
diff --git a/community/cross-arm-wince-cegcc-binutils/PKGBUILD b/community/cross-arm-wince-cegcc-binutils/PKGBUILD
new file mode 100644
index 000000000..491004df4
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-binutils/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 20572 2010-07-09 07:26:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-binutils
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=(zlib)
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src/binutils
+
+ unset CFLAGS
+ unset LDFLAGS
+
+ [ $NOEXTRACT -eq 1 ] || ./configure \
+ --prefix=${_prefix} \
+ --exec-prefix=${_prefix} \
+ --bindir=${_prefix}/bin \
+ --target=arm-wince-cegcc \
+ --disable-nls \
+ --includedir=${_prefix}/include || return 1
+
+ make || (cd etc && make) && make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ rm -rf $pkgdir/opt/cegcc/info
+}
diff --git a/community/cross-arm-wince-cegcc-cegccdll-dummy/PKGBUILD b/community/cross-arm-wince-cegcc-cegccdll-dummy/PKGBUILD
new file mode 100644
index 000000000..278bd0e6f
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-cegccdll-dummy/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 20575 2010-07-09 07:27:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-cegccdll-dummy
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src/
+
+ export PATH=$_prefix/bin:$PATH
+
+ cd cegcc/fakecegccdll && \
+ ./install.sh $pkgdir/$_prefix || return 1
+
+ find $pkgdir/ -name '*.a' | while read F; do
+ arm-wince-cegcc-ranlib $F
+ done
+}
diff --git a/community/cross-arm-wince-cegcc-cegccdll/PKGBUILD b/community/cross-arm-wince-cegcc-cegccdll/PKGBUILD
new file mode 100644
index 000000000..f2a0c0259
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-cegccdll/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 20609 2010-07-09 08:51:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-cegccdll
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc')
+conflicts=(cross-arm-wince-cegcc-cegccdll-dummy)
+groups=('cegcc')
+install=cegccdll.install
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src/cegcc/cegccdll
+
+ export PATH=$_prefix/bin:$PATH
+ export TARGET=arm-wince-cegcc
+ unset CFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ make || return 1
+ mkdir -p $pkgdir/$_prefix/lib/gcc/arm-wince-cegcc/4.4.0/ && \
+ cp cegccdll/libcegcc.dll.a $pkgdir/$_prefix/lib/gcc/arm-wince-cegcc/4.4.0/ && \
+ make PREFIX=$pkgdir/$_prefix install || return 1
+ find $pkgdir/${_prefix} -type f -name \*.a -exec arm-wince-cegcc-ranlib {} \;
+}
diff --git a/community/cross-arm-wince-cegcc-cegccdll/cegccdll.install b/community/cross-arm-wince-cegcc-cegccdll/cegccdll.install
new file mode 100644
index 000000000..cb884b4d7
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-cegccdll/cegccdll.install
@@ -0,0 +1,8 @@
+post_install() {
+ /opt/cegcc/bin/arm-wince-cegcc-ranlib /opt/cegcc/lib/gcc/arm-wince-cegcc/4.4.0/libcegcc.dll.a
+}
+
+post_upgrade() {
+ /opt/cegcc/bin/arm-wince-cegcc-ranlib /opt/cegcc/lib/gcc/arm-wince-cegcc/4.4.0/libcegcc.dll.a
+}
+
diff --git a/community/cross-arm-wince-cegcc-cegccthrddll/PKGBUILD b/community/cross-arm-wince-cegcc-cegccthrddll/PKGBUILD
new file mode 100644
index 000000000..bd17767ba
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-cegccthrddll/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 20612 2010-07-09 08:51:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-cegccthrddll
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc')
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src/cegcc/cegccthrd
+
+ export PATH=$_prefix/bin:$PATH
+ export TARGET=arm-wince-cegcc
+ unset CFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ make || return 1
+ make PREFIX=$pkgdir/$_prefix install || return 1
+}
diff --git a/community/cross-arm-wince-cegcc-gcc-base/PKGBUILD b/community/cross-arm-wince-cegcc-gcc-base/PKGBUILD
new file mode 100644
index 000000000..293b525bd
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-gcc-base/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 23521 2010-08-12 09:23:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-gcc-base
+pkgver=0.59.1
+pkgrel=2
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc' 'mpfr' 'cloog-ppl')
+makedepends=(cross-arm-wince-cegcc-binutils)
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src
+
+ mkdir build-gcc-base || true
+ cd build-gcc-base
+
+ export PATH=$_prefix/bin:$PATH
+ export TARGET=arm-wince-cegcc
+ unset CFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ ../gcc-4.4.0/configure \
+ --with-gcc \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --target=arm-wince-cegcc \
+ --build=$CARCH \
+ --host=$CARCH \
+ --prefix=${_prefix} \
+ --disable-threads \
+ --disable-nls \
+ --disable-shared \
+ --enable-languages=c \
+ --disable-win32-registry \
+ --disable-multilib \
+ --disable-interwork \
+ --without-headers \
+ --with-as=$_prefix/bin/arm-wince-cegcc-as \
+ --with-ld=$_prefix/bin/arm-wince-cegcc-ld \
+ --with-local-prefix=$_prefix \
+ --enable-checking
+
+ make all-gcc || (cd gcc && make) && make all-gcc || return 1
+ make DESTDIR=$pkgdir install-gcc || return 1
+ find $pkgdir/${_prefix} -type f -name \*.a -exec arm-wince-cegcc-ranlib {} \;
+ cd $pkgdir/${_prefix} && ln -s arm-wince-cegcc arm-cegcc
+}
diff --git a/community/cross-arm-wince-cegcc-gcc/PKGBUILD b/community/cross-arm-wince-cegcc-gcc/PKGBUILD
new file mode 100644
index 000000000..add91773e
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-gcc/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 23529 2010-08-12 13:44:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-gcc
+pkgver=0.59.1
+pkgrel=2
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=(cross-arm-wince-cegcc-binutils)
+makedepends=(cross-arm-wince-cegcc-newlib cross-arm-wince-cegcc-w32api cross-arm-wince-cegcc-importlibs)
+conflicts=(cross-arm-wince-cegcc-gcc-base)
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src
+
+ export PATH=$_prefix/bin:$PATH
+ export TARGET=arm-wince-cegcc
+ unset CFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ mkdir build-gcc || true
+ cd build-gcc
+
+if [ $NOEXTRACT -ne 1 ]; then
+ ../gcc-4.4.0/configure \
+ --prefix=${_prefix} \
+ --exec-prefix=${_prefix} \
+ --bindir=${_prefix}/bin \
+ --target=arm-wince-cegcc \
+ --build=$CARCH \
+ --host=$CARCH \
+ --disable-nls \
+ --includedir=${_prefix}/include \
+ --with-gcc \
+ --with-ld=/opt/cegcc/bin/arm-wince-cegcc-ld \
+ --with-as=/opt/cegcc/bin/arm-wince-cegcc-as \
+ --enable-threads=win32 \
+ --enable-languages=c,c++ \
+ --disable-win32-registry \
+ --disable-multilib \
+ --disable-interwork \
+ --without-newlib \
+ --enable-checking \
+ --with-headers \
+ --disable-libssp
+fi
+
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ rm -f $pkgdir/$_prefix/lib/libiberty.a
+ find $pkgdir/${_prefix} -type f -name \*.a -exec arm-wince-cegcc-ranlib {} \;
+}
diff --git a/community/cross-arm-wince-cegcc-libstdcppdll/PKGBUILD b/community/cross-arm-wince-cegcc-libstdcppdll/PKGBUILD
new file mode 100644
index 000000000..bbc8c0d6c
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-libstdcppdll/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 20984 2010-07-13 09:55:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-libstdcppdll
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc')
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ export PATH=$_prefix/bin:$PATH
+ export TARGET=arm-wince-cegcc
+ unset CFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ cd $srcdir/cegcc/src/
+
+ mkdir build-gcc || true
+ cd build-gcc
+
+if [ $NOEXTRACT -ne 1 ]; then
+ ../gcc-4.4.0/configure \
+ --prefix=${_prefix} \
+ --exec-prefix=${_prefix} \
+ --bindir=${_prefix}/bin \
+ --target=arm-wince-cegcc \
+ --build=$CARCH \
+ --host=$CARCH \
+ --disable-nls \
+ --includedir=${_prefix}/include \
+ --with-gcc \
+ --with-gnu-ld \
+ --with-gnu-as \
+ --enable-threads=win32 \
+ --enable-languages=c,c++ \
+ --disable-win32-registry \
+ --disable-multilib \
+ --disable-interwork \
+ --without-newlib \
+ --enable-checking \
+ --with-headers \
+ --disable-libssp
+fi
+
+# make || return 1
+
+ #
+ # libstdc++
+ #
+ cd $srcdir/cegcc/src/cegcc/libstdc++
+
+ sed -i 's#.*unwind-sjlj_s.o#\t\t../../build-gcc/arm-wince-cegcc/libgcc/unwind-sjlj_s.o#' Makefile
+
+ make || return 1
+
+ mkdir -p $pkgdir${_prefix}/arm-wince-cegcc/lib && \
+ make PREFIX=$pkgdir/${_prefix} install || return 1
+
+ rm -f $pkgdir${_prefix}/arm-wince-cegcc/lib/device
+ find $pkgdir/${_prefix} -type f -name \*.a -exec arm-wince-cegcc-ranlib {} \;
+}
diff --git a/community/cross-arm-wince-cegcc-newlib/PKGBUILD b/community/cross-arm-wince-cegcc-newlib/PKGBUILD
new file mode 100644
index 000000000..79270520b
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-newlib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 20584 2010-07-09 07:29:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-newlib
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=('GPL')
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc')
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src/
+
+ mkdir -p build-newlib
+ cd build-newlib
+
+ export PATH=$_prefix/bin:$PATH
+ export TARGET=arm-wince-cegcc
+ unset CFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ ../newlib/configure \
+ --target=arm-wince-cegcc \
+ --prefix=$_prefix
+
+ make || (cd etc && make) && make || return 1
+ mkdir -p $pkgdir/opt/cegcc/arm-wince-cegcc/lib/
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/cross-arm-wince-cegcc-profile/PKGBUILD b/community/cross-arm-wince-cegcc-profile/PKGBUILD
new file mode 100644
index 000000000..02d58ef3c
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-profile/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 20972 2010-07-13 09:53:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-profile
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc')
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd ${startdir}/src/cegcc/src/profile
+
+ export PATH=$_prefix/bin:$PATH
+ export TARGET=arm-wince-cegcc
+ unset CFLAGS
+ unset CXXFLAGS
+ unset LDFLAGS
+ unset MAKEFLAGS
+
+ ./configure \
+ --build=$CARCH \
+ --host=arm-wince-cegcc \
+ --target=arm-wince-cegcc \
+ --prefix=$_prefix
+
+ make || return 1
+
+ sed -i "s|prefix = $_prefix|prefix = $startdir/pkg/$_prefix|g" Makefile && \
+ make install
+
+ find $pkgdir/${_prefix} -type f -name \*.a -exec arm-wince-cegcc-ranlib {} \;
+}
diff --git a/community/cross-arm-wince-cegcc-w32api/PKGBUILD b/community/cross-arm-wince-cegcc-w32api/PKGBUILD
new file mode 100644
index 000000000..22eb7a4e2
--- /dev/null
+++ b/community/cross-arm-wince-cegcc-w32api/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 20587 2010-07-09 07:30:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cross-arm-wince-cegcc-w32api
+pkgver=0.59.1
+pkgrel=1
+_prefix=/opt/cegcc
+pkgdesc="CE GCC bundle - cross compilation tools for WinCE"
+arch=(i686 x86_64)
+license=(GPL)
+options=(!libtool)
+url="http://cegcc.sf.net"
+depends=('glibc')
+groups=('cegcc')
+source=(http://arch.pp.ru/~sergej/dl/cegcc-$pkgver.tar.bz2)
+md5sums=('5e3c1098abdf8e5db2a3518ee3578b4b')
+
+build() {
+ cd $srcdir/cegcc/src/
+
+ export PATH=$_prefix/bin:$PATH
+
+ mkdir -p $pkgdir/$_prefix/arm-wince-cegcc/include/w32api/{GL,directx,ddk}
+ cp -fp w32api/include/*.h $pkgdir/$_prefix/arm-wince-cegcc/include/w32api || return 1
+ cp -fp w32api/include/GL/*.h $pkgdir/$_prefix/arm-wince-cegcc/include/w32api/GL || return 1
+ cp -fp w32api/include/directx/*.h $pkgdir/$_prefix/arm-wince-cegcc/include/w32api/directx || return 1
+ cp -fp w32api/include/ddk/*.h $pkgdir/$_prefix/arm-wince-cegcc/include/w32api/ddk || return 1
+}
diff --git a/community/csfml/PKGBUILD b/community/csfml/PKGBUILD
new file mode 100644
index 000000000..e2c72a1a1
--- /dev/null
+++ b/community/csfml/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 21275 2010-07-15 20:18:37Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arvil <arvil at k3v1n5 dot eu>
+
+pkgname=csfml
+pkgver=1.6
+pkgrel=1
+pkgdesc="C binding for SFML."
+arch=('i686' 'x86_64')
+url=http://www.sfml-dev.org
+license=('zlib')
+depends=('sfml')
+source=(http://downloads.sourceforge.net/sfml/SFML-$pkgver-c-sdk-linux-32.tar.gz)
+md5sums=('47612e9dc3c9be35e32c188dd937e0d6')
+
+build() {
+ cd "$srcdir/SFML-$pkgver/CSFML"
+
+ msg "Building libraries."
+ make || return 1
+ make DESTDIR=${pkgdir}/usr install || return 1
+
+ # Fix the library softlinks
+ cd "$pkgdir/usr/lib"
+ rm *.so
+ for lib in *; do
+ ln -s $lib ${lib/.$pkgver/}
+ done
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/ctpl/PKGBUILD b/community/ctpl/PKGBUILD
new file mode 100644
index 000000000..649722e45
--- /dev/null
+++ b/community/ctpl/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 29702 2010-10-18 18:39:07Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Patrick Melo <patrick@patrickmelo.eti.br>
+
+pkgname=ctpl
+pkgver=0.3
+pkgrel=1
+pkgdesc="CTPL is a template engine library written in C"
+arch=('i686' 'x86_64')
+url="http://ctpl.tuxfamily.org/"
+license=('GPL')
+depends=('glib2' 'gvfs')
+source=(http://download.tuxfamily.org/ctpl/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('fdc63a4a3eabf7d1be0078c6827579a5')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/cuetools/PKGBUILD b/community/cuetools/PKGBUILD
new file mode 100644
index 000000000..6626f9944
--- /dev/null
+++ b/community/cuetools/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 25196 2010-09-02 15:17:46Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=cuetools
+pkgver=1.3.1
+pkgrel=4
+pkgdesc="Set of utilities for working with cue files and toc files"
+arch=('i686' 'x86_64')
+url="http://developer.berlios.de/projects/cuetools/"
+license=('GPL')
+depends=('glibc')
+source=(http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.gz \
+ cuetag.patch)
+md5sums=('45575f7a1bdc6615599fa6cb49845cca'
+ '38969241a7b6ac88e2f1b46c3da0ecc2')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ # fix cuetag
+ patch -Np0 < "$srcdir"/cuetag.patch
+ sed -i -e 's/--import-vc-from/--import-tags-from/' \
+ -e 's/--remove-vc-all/--remove-all-tags/' extras/cuetag.sh
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir" install
+ install -m755 extras/cuetag.sh "$pkgdir"/usr/bin/cuetag.sh
+}
diff --git a/community/cuetools/cuetag.patch b/community/cuetools/cuetag.patch
new file mode 100644
index 000000000..cd41dcd56
--- /dev/null
+++ b/community/cuetools/cuetag.patch
@@ -0,0 +1,37 @@
+--- extras/cuetag.sh 2006-09-06 14:24:47.000000000 -0400
++++ extras/cuetag.sh 2007-01-26 00:13:23.000000000 -0500
+@@ -63,7 +63,7 @@
+ (for field in $fields; do
+ value=""
+ for conv in `eval echo \\$$field`; do
+- value=`$CUEPRINT -n $1 -t "$conv\n" $cue_file`
++ value=`$CUEPRINT -n $1 -t "$conv\n" "$cue_file"`
+
+ if [ -n "$value" ]; then
+ echo "$field=$value"
+@@ -96,7 +96,7 @@
+ for field in $fields; do
+ value=""
+ for conv in `eval echo \\$$field`; do
+- value=`$CUEPRINT -n $1 -t "$conv\n" $cue_file`
++ value=`$CUEPRINT -n $1 -t "$conv\n" "$cue_file"`
+
+ if [ -n "$value" ]; then
+ break
+@@ -141,14 +141,14 @@
+ cue_file=$1
+ shift
+
+- ntrack=`cueprint -d '%N' $cue_file`
++ ntrack=`cueprint -d '%N' "$cue_file"`
+ trackno=1
+
+ if [ $# -ne $ntrack ]; then
+ echo "warning: number of files does not match number of tracks"
+ fi
+
+- for file in $@; do
++ for file in "$@"; do
+ case $file in
+ *.[Ff][Ll][Aa][Cc])
+ vorbis $trackno "$file"
diff --git a/community/cuneiform/PKGBUILD b/community/cuneiform/PKGBUILD
new file mode 100644
index 000000000..5f780e969
--- /dev/null
+++ b/community/cuneiform/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 20123 2010-07-02 14:54:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Maxim Vuets <maxim.vuets@gmail.com>
+
+pkgname=cuneiform
+pkgver=1.0.0
+_dpkgver=1.0
+pkgrel=1
+pkgdesc="Linux port of an OCR system developed in Russia. Supports more than 20 languages."
+arch=('i686' 'x86_64')
+url="https://launchpad.net/cuneiform-linux"
+license=('BSD')
+depends=(imagemagick)
+makedepends=(cmake)
+source=(http://launchpad.net/cuneiform-linux/${_dpkgver}/${_dpkgver}/+download/cuneiform-linux-${pkgver}.tar.bz2)
+md5sums=('785232ffffad7d82446fbac08a1c3ef9')
+
+build() {
+ _SRC_ROOT="${srcdir}/${pkgname}-linux-${pkgver}"
+ cd "${_SRC_ROOT}"
+ sed -i 's#lib64#lib#' install_files.cmake
+ mkdir builddir
+ cd builddir
+
+ cmake -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/usr .. || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ mkdir -p "${pkgdir}/usr/share/licenses/cuneiform"
+ cp "${_SRC_ROOT}/cuneiform_src/Kern/license.txt" \
+ "${pkgdir}/usr/share/licenses/cuneiform"
+}
diff --git a/community/cupsddk/PKGBUILD b/community/cupsddk/PKGBUILD
new file mode 100644
index 000000000..7c39b38da
--- /dev/null
+++ b/community/cupsddk/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Georg Grabler (STiAT) <ggrabler@gmail.com>
+# Contributor: Georg Grabler (STiAT) <ggrabler@gmail.com>
+
+pkgname=cupsddk
+pkgver=1.2.3
+pkgrel=3
+pkgdesc="CUPSD Development Kit"
+url="http://cups.org"
+license="GPL"
+depends=('libcups')
+makedepends=('libcups')
+arch=('i686' 'x86_64')
+options=('!emptydirs')
+source=(http://ftp.easysw.com/pub/cupsddk/$pkgver/$pkgname-$pkgver-source.tar.bz2)
+md5sums=('3ec52813bf12bf9b34d34f8a81bab508')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make bindir=$startdir/pkg/usr/bin \
+ datadir=$startdir/pkg/usr/share \
+ docdir=$startdir/pkg/usr/share/cupsddk \
+ mandir=$startdir/pkg/usr/share/man \
+ prefix=$startdir/pkg/usr \
+ CUPS_DATADIR=$startdir/pkg/`cups-config --datadir` \
+ CUPS_SERVERBIN=$startdir/pkg/`cups-config --serverbin` \
+ install || return 1
+
+ rm -f $pkgdir/usr/include/cups/driver.h
+ rm -f $pkgdir/usr/bin/ppdc
+ rm -f $pkgdir/usr/bin/ppdhtml
+ rm -f $pkgdir/usr/bin/ppdi
+ rm -f $pkgdir/usr/bin/ppdmerge
+ rm -f $pkgdir/usr/bin/ppdpo
+ rm -f $pkgdir/usr/lib/cups/filter/commandtoescpx
+ rm -f $pkgdir/usr/lib/cups/filter/commandtopclx
+ rm -f $pkgdir/usr/lib/cups/filter/rastertoescpx
+ rm -f $pkgdir/usr/lib/cups/filter/rastertopclx
+ rm -f $pkgdir/usr/share/man/man1/ppdc.1.gz
+ rm -f $pkgdir/usr/share/man/man1/ppdhtml.1.gz
+ rm -f $pkgdir/usr/share/man/man1/ppdi.1.gz
+ rm -f $pkgdir/usr/share/man/man1/ppdmerge.1.gz
+ rm -f $pkgdir/usr/share/man/man1/ppdpo.1.gz
+ rm -f $pkgdir/usr/share/man/man5/ppdcfile.5.gz
+}
diff --git a/community/curlftpfs/PKGBUILD b/community/curlftpfs/PKGBUILD
new file mode 100644
index 000000000..7db8af17f
--- /dev/null
+++ b/community/curlftpfs/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 17286 2010-05-22 17:59:00Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: Philip Nilsson <leffeman@gmail.com>
+
+pkgname=curlftpfs
+pkgver=0.9.2
+pkgrel=2
+pkgdesc="A filesystem for acessing FTP hosts based on FUSE and libcurl."
+url="http://curlftpfs.sourceforge.net/"
+license=('GPL')
+depends=('curl>=7.15.4' 'fuse' 'glib2')
+makedepends=('pkgconfig>=0.9.0')
+arch=('i686' 'x86_64')
+source=(http://downloads.sourceforge.net/sourceforge/curlftpfs/$pkgname-$pkgver.tar.gz)
+md5sums=('b452123f755114cd4461d56c648d9f12')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/cutter/ChangeLog b/community/cutter/ChangeLog
new file mode 100644
index 000000000..d22a5592c
--- /dev/null
+++ b/community/cutter/ChangeLog
@@ -0,0 +1,3 @@
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/cutter/PKGBUILD b/community/cutter/PKGBUILD
new file mode 100644
index 000000000..e48ce17d4
--- /dev/null
+++ b/community/cutter/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 17382 2010-05-24 09:44:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=cutter
+pkgver=1.03
+pkgrel=3
+pkgdesc="TCP/IP Connection cutting on Linux Firewalls and Routers"
+arch=('i686' 'x86_64')
+url="http://www.lowth.com/cutter/"
+license=('GPL')
+depends=(glibc)
+source=(http://www.lowth.com/cutter/software/cutter-$pkgver.tgz)
+md5sums=('50093db9b64277643969ee75b83ebbd1')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ make || return 1
+ install -D -m 0755 ./cutter $startdir/pkg/usr/bin/tcp-cutter
+}
diff --git a/community/cuyo/PKGBUILD b/community/cuyo/PKGBUILD
new file mode 100644
index 000000000..eb3e84019
--- /dev/null
+++ b/community/cuyo/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 5434 2009-11-08 13:15:53Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=cuyo
+pkgver=2.1.1
+pkgrel=4
+pkgdesc="Tetris-style puzzle game for up to two players with a twist."
+arch=('i686' 'x86_64')
+url="http://www.karimmi.de/cuyo/"
+license=('GPL')
+depends=('sdl' 'sdl_mixer' 'sdl_image' 'xdg-utils')
+makedepends=('patch')
+install=$pkgname.install
+source=(http://download.savannah.gnu.org/releases/cuyo/$pkgname-2.~-1.1.tar.gz \
+ $pkgname.diff)
+
+md5sums=('1629b257311c6c55cf657f0fa92dbd92'
+ '923c88e894cfd9c77d75f21b448ee6cf')
+
+build() {
+ cd ${srcdir}/$pkgname-2.~-1.1
+
+ patch -Np1 -i ${srcdir}/$pkgname.diff || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/cuyo/cuyo.diff b/community/cuyo/cuyo.diff
new file mode 100644
index 000000000..3011623d3
--- /dev/null
+++ b/community/cuyo/cuyo.diff
@@ -0,0 +1,32 @@
+diff -ruN cuyo-2.~-1.1-orig/icons/cuyo.desktop cuyo-2.~-1.1/icons/cuyo.desktop
+--- cuyo-2.~-1.1-orig/icons/cuyo.desktop 2007-12-20 18:22:32.000000000 +0100
++++ cuyo-2.~-1.1/icons/cuyo.desktop 2009-11-08 14:08:56.000000000 +0100
+@@ -1,11 +1,13 @@
+ [Desktop Entry]
++Type=Application
+ Name=Cuyo
++GenericName=Cuyo
+ Icon=cuyo
+-Type=Application
++Exec=cuyo
++StartupNotify=true
+ Terminal=false
+-MimeType=application/x-executable
++MimeType=application/x-executable;
+ Categories=Game;BlocksGame;
+-Encoding=UTF-8
+ Comment=A tetris like game with many levels
++Comment[cs]=Hra podobná tetrisu s mnoha úrovněmi
+ Comment[de]=Ein Tetris-artiges Spiel mit vielen Leveln
+-Exec=cuyo
+diff -ruN cuyo-2.~-1.1-orig/src/stringzeug.h cuyo-2.~-1.1/src/stringzeug.h
+--- cuyo-2.~-1.1-orig/src/stringzeug.h 2006-07-03 19:26:23.000000000 +0200
++++ cuyo-2.~-1.1/src/stringzeug.h 2009-11-08 14:08:56.000000000 +0100
+@@ -19,6 +19,7 @@
+ #define STRINGZEUG_H
+
+ #include <config.h>
++#include <cstdarg>
+ #include <string>
+
+
diff --git a/community/cuyo/cuyo.install b/community/cuyo/cuyo.install
new file mode 100644
index 000000000..b711352cb
--- /dev/null
+++ b/community/cuyo/cuyo.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/cython/PKGBUILD b/community/cython/PKGBUILD
new file mode 100644
index 000000000..84cb89e10
--- /dev/null
+++ b/community/cython/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 39526 2011-02-11 12:10:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Igor Scabini <furester @ gmail.com>
+
+pkgname=cython
+pkgver=0.14.1
+pkgrel=1
+pkgdesc="C-Extensions for Python "
+arch=(i686 x86_64)
+url="http://www.cython.org"
+license=('APACHE')
+depends=('python2')
+source=("http://cython.org/release/Cython-$pkgver.tar.gz")
+md5sums=('6341bf3b2c49a39b8046219f6696f5c4')
+
+build() {
+ cd $srcdir/Cython-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/dangerdeep/PKGBUILD b/community/dangerdeep/PKGBUILD
new file mode 100644
index 000000000..bd8309cb3
--- /dev/null
+++ b/community/dangerdeep/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 18091 2010-05-31 09:24:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=dangerdeep
+pkgver=0.3.0
+pkgrel=4
+pkgdesc="submarine simulator"
+arch=(i686 x86_64)
+url="http://dangerdeep.sourceforge.net"
+license=('GPL')
+depends=(libgl sdl_net fftw sdl_image sdl_mixer mesa dangerdeep-data)
+makedepends=(scons)
+source=(http://downloads.sourceforge.net/sourceforge/dangerdeep/dangerdeep-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('8a1d19326a9a0bd8bb91a652bfa51bd9'
+ 'a1ee453b38b1805ae9f24b2dbc543473')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ scons installbindir=$pkgdir/usr/bin datadir=/usr/share/dangerdeep install || return 1
+}
diff --git a/community/dangerdeep/build-fix.patch b/community/dangerdeep/build-fix.patch
new file mode 100644
index 000000000..225b41097
--- /dev/null
+++ b/community/dangerdeep/build-fix.patch
@@ -0,0 +1,91 @@
+diff -wbBur dangerdeep-0.3.0/src/bspline_test.cpp dangerdeep-0.3.0.my/src/bspline_test.cpp
+--- dangerdeep-0.3.0/src/bspline_test.cpp 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/bspline_test.cpp 2010-05-31 09:12:09.000000000 +0000
+@@ -1,6 +1,8 @@
+ // some test code for the 2d bsplines!
+ #include "bspline.h"
+ #include <fstream>
++#include <cstdlib>
++
+ using namespace std;
+
+ double rnd() { return double(rand())/RAND_MAX; }
+diff -wbBur dangerdeep-0.3.0/src/convoy.h dangerdeep-0.3.0.my/src/convoy.h
+--- dangerdeep-0.3.0/src/convoy.h 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/convoy.h 2010-05-31 09:05:06.000000000 +0000
+@@ -26,6 +26,7 @@
+ #include "ai.h"
+ #include "vector2.h"
+ #include <new>
++#include <memory>
+ #include <list>
+ class ship;
+
+diff -wbBur dangerdeep-0.3.0/src/date.cpp dangerdeep-0.3.0.my/src/date.cpp
+--- dangerdeep-0.3.0/src/date.cpp 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/date.cpp 2010-05-31 09:06:12.000000000 +0000
+@@ -20,6 +20,8 @@
+ // date
+ // subsim (C)+(W) Markus Petermann and Thorsten Jordan. SEE LICENSE
+
++#include <stdio.h>
++#include <stdlib.h>
+ #include <iomanip>
+ #include "date.h"
+ #include "texts.h"
+diff -wbBur dangerdeep-0.3.0/src/filehelper.cpp dangerdeep-0.3.0.my/src/filehelper.cpp
+--- dangerdeep-0.3.0/src/filehelper.cpp 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/filehelper.cpp 2010-05-31 09:08:34.000000000 +0000
+@@ -23,6 +23,7 @@
+ #include "filehelper.h"
+ #include "error.h"
+ #include <vector>
++#include <stdio.h>
+ using namespace std;
+
+ #ifdef WIN32
+diff -wbBur dangerdeep-0.3.0/src/ocean_wave_generator.h dangerdeep-0.3.0.my/src/ocean_wave_generator.h
+--- dangerdeep-0.3.0/src/ocean_wave_generator.h 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/ocean_wave_generator.h 2010-05-31 09:11:24.000000000 +0000
+@@ -29,6 +29,7 @@
+ #include "environment.h"
+ #include <complex>
+ #include <vector>
++#include <cstdlib>
+
+ // use float fftw (faster) or double (default) ?
+ #ifdef WITH_FLOAT_FFTW
+diff -wbBur dangerdeep-0.3.0/src/ptrlist.h dangerdeep-0.3.0.my/src/ptrlist.h
+--- dangerdeep-0.3.0/src/ptrlist.h 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/ptrlist.h 2010-05-31 09:03:50.000000000 +0000
+@@ -25,6 +25,7 @@
+
+ #include <list>
+ #include <stdexcept>
++#include <memory>
+
+ // same as std::list regarding the interface (partly), but handles pointers.
+ template <class T>
+diff -wbBur dangerdeep-0.3.0/src/ptrvector.h dangerdeep-0.3.0.my/src/ptrvector.h
+--- dangerdeep-0.3.0/src/ptrvector.h 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/ptrvector.h 2010-05-31 09:04:21.000000000 +0000
+@@ -25,6 +25,7 @@
+
+ #include <vector>
+ #include <stdexcept>
++#include <memory>
+
+ // same as std::vector regarding the interface, but handles pointers.
+ template <class T>
+diff -wbBur dangerdeep-0.3.0/src/widget.cpp dangerdeep-0.3.0.my/src/widget.cpp
+--- dangerdeep-0.3.0/src/widget.cpp 2007-06-11 15:16:23.000000000 +0000
++++ dangerdeep-0.3.0.my/src/widget.cpp 2010-05-31 09:09:40.000000000 +0000
+@@ -32,6 +32,8 @@
+ #include "datadirs.h"
+ #include <set>
+ #include <sstream>
++#include <algorithm>
++
+ using std::vector;
+ using std::list;
+ using std::string;
diff --git a/community/dante/PKGBUILD b/community/dante/PKGBUILD
new file mode 100644
index 000000000..176fdafa7
--- /dev/null
+++ b/community/dante/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 42958 2011-03-22 21:15:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Guillem Rieu <guillemr@gmx.net>
+
+pkgname=dante
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="SOCKS v4 and v5 compatible proxy server and client"
+url="http://www.inet.no/dante"
+arch=(i686 x86_64)
+license=('custom')
+depends=('tcp_wrappers' 'pam')
+backup=('etc/socks.conf'
+ 'etc/sockd.conf')
+options=(!libtool)
+source=(ftp://ftp.inet.no/pub/socks/${pkgname}-${pkgver}.tar.gz
+ sockd.rc)
+md5sums=('b2874e53f5d8fe418cd40cb829536669'
+ '5110dfd78a2b38fff27a886ee88b58a6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR=${pkgdir} install
+
+ # Config files
+ mkdir -p ${pkgdir}/etc/conf.d
+ cp example/{socks,sockd}.conf ${pkgdir}/etc
+
+ # License
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # rc-script
+ install -D -m755 ${srcdir}/sockd.rc ${pkgdir}/etc/rc.d/sockd
+ echo 'SOCKD_OPTS="-D"' >${pkgdir}/etc/conf.d/sockd.conf
+}
diff --git a/community/dante/sockd.rc b/community/dante/sockd.rc
new file mode 100755
index 000000000..00ea5a7d4
--- /dev/null
+++ b/community/dante/sockd.rc
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+daemon_name=sockd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/sockd.conf
+
+get_pid() {
+ cat /var/run/sockd.pid 2>/dev/null
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name $SOCKD_OPTS 1>/dev/null 2>/dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/community/dar/ChangeLog b/community/dar/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/dar/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/dar/PKGBUILD b/community/dar/PKGBUILD
new file mode 100644
index 000000000..d51e4007d
--- /dev/null
+++ b/community/dar/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42079 2011-03-13 09:21:39Z shusmann $
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=dar
+pkgver=2.3.11
+pkgrel=1
+pkgdesc='A full featured command-line backup tool, short for Disk ARchive'
+arch=('i686' 'x86_64')
+url='http://dar.linux.free.fr/'
+license=('GPL')
+depends=('attr' 'bzip2' 'gcc-libs' 'openssl' 'zlib')
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('5f8766f50069faf0a915e691372e56f8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -d $pkgdir/usr/share/doc/$pkgname
+ make DESTDIR="$pkgdir" install
+ cd $pkgdir/usr/share/$pkgname
+ mv *.html $pkgdir/usr/share/doc/$pkgname
+ rm -r man
+ for _i in html mini-howto samples
+ do
+ mv ${_i} $pkgdir/usr/share/doc/$pkgname
+ done
+}
diff --git a/community/darkhttpd/PKGBUILD b/community/darkhttpd/PKGBUILD
new file mode 100644
index 000000000..00d9be2bc
--- /dev/null
+++ b/community/darkhttpd/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 17385 2010-05-24 09:45:21Z spupykin $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=darkhttpd
+pkgver=1.7
+pkgrel=3
+pkgdesc="A small, static webserver"
+arch=('i686' 'x86_64')
+url="http://dmr.ath.cx/net/darkhttpd/"
+license=('BSD')
+depends=('glibc')
+source=($url/$pkgname-$pkgver.tar.bz2)
+md5sums=('76e55a5a443094016daf141062ae62b7')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ # Causes nasty output in 1.5 because of missing uname, but doesn't affect the build
+ make || return 1
+ install -D $startdir/src/$pkgname-$pkgver/darkhttpd $startdir/pkg/usr/sbin/darkhttpd || return 1
+
+ mkdir -p $pkgdir/usr/share/licenses/$pkgname && \
+ head -n 18 darkhttpd.c >$pkgdir/usr/share/licenses/$pkgname/license
+}
diff --git a/community/darkstat/PKGBUILD b/community/darkstat/PKGBUILD
new file mode 100644
index 000000000..96d1b528a
--- /dev/null
+++ b/community/darkstat/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 17212 2010-05-21 21:40:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=darkstat
+pkgver=3.0.713
+pkgrel=1
+pkgdesc="Network statistics gatherer (packet sniffer)."
+url="http://dmr.ath.cx/net/darkstat/"
+license=("GPL")
+arch=(i686 x86_64)
+depends=('libpcap' 'zlib')
+source=(http://dmr.ath.cx/net/darkstat/$pkgname-$pkgver.tar.bz2)
+md5sums=('3fd2a4ddb123ad11bb99f1094a6206d9')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/darktable/PKGBUILD b/community/darktable/PKGBUILD
new file mode 100644
index 000000000..54783a2ef
--- /dev/null
+++ b/community/darktable/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 40344 2011-02-23 07:36:36Z ebelanger $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Christian Himpel <chressie at gmail dot com>
+# Contributor: Johannes Hanika <hanatos at gmail dot com>
+
+pkgname=darktable
+pkgver=0.8
+pkgrel=2
+pkgdesc="Utility to organize and develop raw images"
+arch=('i686' 'x86_64')
+url=http://darktable.sf.net/
+license=('GPL3')
+depends=('exiv2>=0.18' 'gconf>=2.26' 'intltool>=0.40' 'lcms2' 'lensfun>=0.2.3' 'libglade'
+ 'curl' 'libgnome-keyring' 'libgphoto2' 'libusb-compat' 'openexr')
+makedepends=('intltool>=0.40')
+optdepends=( 'librsvg')
+install=darktable.install
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/darktable/darktable/0.8/darktable-$pkgver.tar.gz)
+md5sums=('1724601b0d7012a414f5398e5029cb45')
+sha1sums=('9a28cbb6ae63ddffaf983eecd2c7c00b8960e136')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ mkdir build || true
+ cd build
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_USERMANUAL=False \
+ -DDONT_INSTALL_GCONF_SCHEMAS=True \
+ ..
+
+ make
+ make DESTDIR=$pkgdir install
+
+ mv "${pkgdir}/usr/share/doc/darktable" "${pkgdir}/usr/share/doc/${pkgname}-${pkgver}"
+ mkdir -p "${pkgdir}/usr/share/gconf/schemas/"
+ mv "${pkgdir}/etc/gconf/schemas/darktable.schemas" "${pkgdir}/usr/share/gconf/schemas/"
+}
diff --git a/community/darktable/darktable.install b/community/darktable/darktable.install
new file mode 100644
index 000000000..b92aab488
--- /dev/null
+++ b/community/darktable/darktable.install
@@ -0,0 +1,22 @@
+pkgname=darktable
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ [ -x `which update-desktop-database` ] && update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ [ -x `which update-desktop-database` ] && update-desktop-database -q
+}
diff --git a/community/datemath/PKGBUILD b/community/datemath/PKGBUILD
new file mode 100644
index 000000000..f4ce236b5
--- /dev/null
+++ b/community/datemath/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 18094 2010-05-31 09:25:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Todd Musall <tmusall@comcast.net>
+# Contributor: Todd Musall <tmusall@comcast.net>
+
+pkgname=datemath
+pkgver=2.0.10
+pkgrel=2
+pkgdesc="Command line date and time math utility."
+arch=('i686' 'x86_64')
+url="http://www.unixwiz.net/tools/datemath.html"
+license=("GPL")
+depends=('glibc')
+source=(http://www.unixwiz.net/tools/$pkgname.tar.gz)
+md5sums=('2c369d70a43313b71dbe3c7cc50207de')
+
+build() {
+ cd $srcdir
+ make || return 1
+ install -D -m755 $srcdir/datemath $pkgdir/usr/bin/datemath
+}
diff --git a/community/dbmail/PKGBUILD b/community/dbmail/PKGBUILD
new file mode 100644
index 000000000..9610e41c8
--- /dev/null
+++ b/community/dbmail/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 42470 2011-03-16 21:11:47Z jelle $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sebastian Faltoni <sebastian.faltoni@gmail.com>
+
+pkgname=dbmail
+pkgver=2.2.17
+pkgrel=2
+pkgdesc="Fast and scalable sql based mail services"
+arch=('i686' 'x86_64')
+# mhash libevent libzdb
+depends=('gmime22')
+makedepends=('asciidoc' 'xmlto' 'docbook-xsl' 'docbook-xml' 'postgresql-libs>=8.4.1' 'sqlite3' 'libmysqlclient' 'libldap>=2.4.18' 'libsieve')
+optdepends=('postgresql-libs: for PostgreSQL storage backend'
+ 'sqlite3: for SQLite storage backend'
+ 'libmysqlclient: for MySQL storage backend'
+ 'libldap: for LDAP authentication'
+ 'libsieve: for dbmail-sieve')
+url="http://www.dbmail.org"
+license=('GPL')
+options=('!libtool' 'zipman')
+backup=(etc/conf.d/dbmail)
+source=(http://www.dbmail.org/download/2.2/$pkgname-${pkgver}.tar.gz \
+ dbmail.conf.d \
+ dbmail.rc.d)
+md5sums=('20d90596d6aea066e701a6cb91445a39'
+ 'e7f72bc360decdb2475266391ad12329'
+ '099225611da20ec194c092ac9befc33c')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}/
+
+# Uncoment this if you want pam authentication
+# patch -p1 <$srcdir/dbmail-2.2.10-pam-support.patch
+# automake
+# autoconf
+
+# Apply these patches if you want to use MySQL 5.1.* < 5.1.47
+# See MySQL bug: http://bugs.mysql.com/bug.php?id=38745
+if false; then
+ patch -p0 dbmail-message.c <<EOF
+744c744
+< "FROM %smessageblks "
+---
+> "FROM %smessageblks use index(physmessage_id_index) "
+EOF
+ patch -p0 db.c <<EOF
+2139c2139
+< "SELECT message_idnr FROM %smessages "
+---
+> "SELECT message_idnr FROM %smessages use index(mailbox_idnr_index) "
+EOF
+fi
+
+ ./configure --prefix=/usr --with-mysql --with-pgsql --with-sqlite --with-ldap --with-sieve
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ (cd man && make && make install DESTDIR=$pkgdir) || return 1
+
+ mkdir $pkgdir/etc && \
+ install -Dm644 dbmail.conf $pkgdir/etc/dbmail.conf.sample && \
+ install -Dm644 ../${pkgname}.conf.d $pkgdir/etc/conf.d/${pkgname} && \
+ install -Dm755 ../${pkgname}.rc.d $pkgdir/etc/rc.d/${pkgname} && \
+ mkdir $pkgdir/usr/share/dbmail && \
+ cp -r sql/* $pkgdir/usr/share/dbmail/ && \
+ cp dbmail.schema $pkgdir/usr/share/dbmail/
+}
diff --git a/community/dbmail/dbmail-2.2.10-pam-support.patch b/community/dbmail/dbmail-2.2.10-pam-support.patch
new file mode 100644
index 000000000..805a7f609
--- /dev/null
+++ b/community/dbmail/dbmail-2.2.10-pam-support.patch
@@ -0,0 +1,251 @@
+diff -wbBur dbmail-2.2.10/configure.in dbmail-2.2.10.pam/configure.in
+--- dbmail-2.2.10/configure.in 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/configure.in 2008-09-18 16:43:04.000000000 +0400
+@@ -78,6 +78,13 @@
+
+ AC_SUBST(CRYPTLIB)
+
++dnl Check for PAM
++AC_SUBST(PAMLIBS,"")
++AC_CHECK_HEADERS(security/pam_appl.h,
++ [AC_CHECK_LIB(pam,pam_start,
++ [AC_DEFINE(HAVE_PAM,1,[Define if you have PAN including devel headers])
++ PAMLIBS="-lpam"],,)])
++
+ AC_SUBST(MYSQLLIB)
+ AC_SUBST(MYSQLALIB)
+ AC_SUBST(MYSQLLTLIB)
+diff -wbBur dbmail-2.2.10/dbmail-user.c dbmail-2.2.10.pam/dbmail-user.c
+--- dbmail-2.2.10/dbmail-user.c 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/dbmail-user.c 2008-09-18 16:43:04.000000000 +0400
+@@ -157,7 +157,7 @@
+ "md5", "md5-raw", "md5sum", "md5sum-raw",
+ "md5-hash", "md5-hash-raw", "md5-digest", "md5-digest-raw",
+ "md5-base64", "md5-base64-raw", "md5base64", "md5base64-raw",
+- "shadow", "", NULL
++ "shadow", "pam", "", NULL
+ };
+
+ /* These must correspond to the easy text names. */
+@@ -166,7 +166,7 @@
+ MD5_HASH, MD5_HASH_RAW, MD5_DIGEST, MD5_DIGEST_RAW,
+ MD5_HASH, MD5_HASH_RAW, MD5_DIGEST, MD5_DIGEST_RAW,
+ MD5_BASE64, MD5_BASE64_RAW, MD5_BASE64, MD5_BASE64_RAW,
+- SHADOW, PLAINTEXT, PWTYPE_NULL
++ SHADOW, PWTYPE_PAM, PLAINTEXT, PWTYPE_NULL
+ };
+
+ memset(pw, 0, 50);
+@@ -251,6 +251,12 @@
+ *enctype = "crypt";
+ }
+ break;
++#ifdef HAVE_PAM
++ case PWTYPE_PAM:
++ null_strncpy(pw, passwd, 49);
++ *enctype = "pam";
++ break;
++#endif
+ default:
+ qerrorf("Error: password type not supported [%s].\n",
+ passwdtype);
+diff -wbBur dbmail-2.2.10/dbmail-user.h dbmail-2.2.10.pam/dbmail-user.h
+--- dbmail-2.2.10/dbmail-user.h 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/dbmail-user.h 2008-09-18 16:43:04.000000000 +0400
+@@ -34,7 +34,7 @@
+ typedef enum {
+ PLAINTEXT = 0, PLAINTEXT_RAW, CRYPT, CRYPT_RAW,
+ MD5_HASH, MD5_HASH_RAW, MD5_DIGEST, MD5_DIGEST_RAW,
+- MD5_BASE64, MD5_BASE64_RAW, SHADOW, PWTYPE_NULL
++ MD5_BASE64, MD5_BASE64_RAW, SHADOW, PWTYPE_PAM, PWTYPE_NULL
+ } pwtype_t;
+
+ int mkpassword(const char * const user, const char * const passwd,
+diff -wbBur dbmail-2.2.10/modules/authsql.c dbmail-2.2.10.pam/modules/authsql.c
+--- dbmail-2.2.10/modules/authsql.c 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/modules/authsql.c 2008-09-18 16:43:04.000000000 +0400
+@@ -27,6 +27,19 @@
+ #include "dbmail.h"
+ #define THIS_MODULE "auth"
+
++#ifdef HAVE_PAM
++#include <security/pam_appl.h>
++
++#ifndef DEFAULT_DBMAIL_PAM_SERVICE
++#define DEFAULT_DBMAIL_PAM_SERVICE "dbmail"
++#endif
++
++#ifndef DEFAULT_DBMAIL_PAM_TTL
++#define DEFAULT_DBMAIL_PAM_TTL 60
++#endif
++
++#endif
++
+ extern db_param_t _db_params;
+ #define DBPFX _db_params.pfx
+
+@@ -49,17 +62,80 @@
+ */
+ static int __auth_query(const char *thequery);
+
++#ifdef HAVE_PAM
++
++static char *pam_password = NULL; /* Workaround for Solaris 2.6 brokenness */
++static pam_handle_t *pamh = NULL;
++static int pam_ttl = DEFAULT_DBMAIL_PAM_TTL;
++static char *pam_service = DEFAULT_DBMAIL_PAM_SERVICE;
++static time_t pamh_created = 0;
++/*
++ * A simple "conversation" function returning the supplied password.
++ * Has a bit to much error control, but this is my first PAM application
++ * so I'd rather check everything than make any mistakes. The function
++ * expects a single converstation message of type PAM_PROMPT_ECHO_OFF.
++ */
++static int
++password_conversation(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr)
++{
++ if (num_msg != 1 || msg[0]->msg_style != PAM_PROMPT_ECHO_OFF) {
++ TRACE(TRACE_ERROR, "Unexpected PAM converstaion '%d/%s'", msg[0]->msg_style, msg[0]->msg);
++ return PAM_CONV_ERR;
++ }
++ if (!appdata_ptr) {
++ /* Workaround for Solaris 2.6 where the PAM library is broken
++ * and does not pass appdata_ptr to the conversation routine
++ */
++ appdata_ptr = pam_password;
++ }
++ if (!appdata_ptr) {
++ TRACE(TRACE_ERROR, "ERROR: No password available to password_converstation!");
++ return PAM_CONV_ERR;
++ }
++ *resp = calloc(num_msg, sizeof(struct pam_response));
++ if (!*resp) {
++ TRACE(TRACE_ERROR, "Out of memory!");
++ return PAM_CONV_ERR;
++ }
++ (*resp)[0].resp = strdup((char *) appdata_ptr);
++ (*resp)[0].resp_retcode = 0;
++
++ return ((*resp)[0].resp ? PAM_SUCCESS : PAM_CONV_ERR);
++}
++
++static struct pam_conv conv =
++{
++ &password_conversation,
++ NULL
++};
++
++#endif
++
++
+ int auth_connect()
+ {
+ /* this function is only called after a connection has been made
+ * if, in the future this is not the case, db.h should export a
+ * function that enables checking for the database connection
+ */
++#ifdef HAVE_PAM
++
++#endif
+ return 0;
+ }
+
+ int auth_disconnect()
+ {
++#ifdef HAVE_PAM
++ int retval=PAM_SUCCESS;
++ if (pamh) {
++ retval = pam_end(pamh, retval);
++ if (retval != PAM_SUCCESS) {
++ pamh = NULL;
++ TRACE(TRACE_ERROR, "failed to release PAM authenticator");
++ }
++ }
++#endif
+ return 0;
+ }
+
+@@ -458,7 +534,71 @@
+ is_validated = (strncmp(md5str, query_result, 32) == 0) ? 1 : 0;
+ g_free(md5str);
+ }
++#ifdef HAVE_PAM
++ else if (strcasecmp(query_result, "pam") == 0) {
++ int retval=0;
++ TRACE(TRACE_DEBUG, "validating using pam for user [%s] pass:[%s]",real_username,password);
++ conv.appdata_ptr = (char *) password;
++ pam_password= password;
++ if (pam_ttl == 0) {
++ /* Create PAM connection */
++ retval = pam_start(pam_service, real_username, &conv, &pamh);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_ERROR, "failed to create PAM authenticator");
++ goto pam_error;
++ }
++ } else if (!pamh || (time(NULL) - pamh_created) >= pam_ttl || pamh_created > time(NULL)) {
++ /* Close previous PAM connection */
++ if (pamh) {
++ retval = pam_end(pamh, retval);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_WARNING, "failed to release PAM authenticator");
++ }
++ pamh = NULL;
++ }
++ /* Initialize persistent PAM connection */
++ retval = pam_start(pam_service, "dbmail@", &conv, &pamh);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_ERROR, "failed to create PAM authenticator");
++ goto pam_error;
++ }
++ pamh_created = time(NULL);
++ }
++ retval = PAM_SUCCESS;
++ if (pam_ttl != 0) {
++ if (retval == PAM_SUCCESS)
++ retval = pam_set_item(pamh, PAM_USER, real_username);
++ if (retval == PAM_SUCCESS)
++ retval = pam_set_item(pamh, PAM_CONV, &conv);
++ }
++ if (retval == PAM_SUCCESS)
++ retval = pam_authenticate(pamh, 0);
++ if (retval == PAM_SUCCESS ) //&& !no_acct_mgmt
++ retval = pam_acct_mgmt(pamh, 0);
++ if (retval == PAM_SUCCESS) {
++ is_validated=1;
++ } else {
++pam_error:
++ is_validated=0;
++ }
++ /* cleanup */
++ retval = PAM_SUCCESS;
++#ifdef PAM_AUTHTOK
++ if (pam_ttl != 0) {
++ if (retval == PAM_SUCCESS)
++ retval = pam_set_item(pamh, PAM_AUTHTOK, NULL);
++ }
++#endif
++ if (pam_ttl == 0 || retval != PAM_SUCCESS) {
++ retval = pam_end(pamh, retval);
++ if (retval != PAM_SUCCESS) {
++ TRACE(TRACE_WARNING, "failed to release PAM authenticator\n");
++ }
++ pamh = NULL;
++ }
+
++ }
++#endif
+ if (is_validated) {
+ db_user_log_login(*user_idnr);
+ } else {
+diff -wbBur dbmail-2.2.10/modules/Makefile.am dbmail-2.2.10.pam/modules/Makefile.am
+--- dbmail-2.2.10/modules/Makefile.am 2008-03-24 17:49:33.000000000 +0300
++++ dbmail-2.2.10.pam/modules/Makefile.am 2008-09-18 16:44:53.000000000 +0400
+@@ -60,7 +60,7 @@
+
+ # This one is always built.
+ libauth_sql_la_SOURCES = authsql.c
+-libauth_sql_la_LIBADD = @CRYPTLIB@
++libauth_sql_la_LIBADD = @CRYPTLIB@ @PAMLIBS@
+
+ if LDAP
+ libauth_ldap_la_SOURCES = authldap.c
diff --git a/community/dbmail/dbmail.conf.d b/community/dbmail/dbmail.conf.d
new file mode 100644
index 000000000..73309a4a2
--- /dev/null
+++ b/community/dbmail/dbmail.conf.d
@@ -0,0 +1,9 @@
+# Parameters to be passed to dbmail
+#
+#
+# Select the service you want started with dbmail
+#
+# Available options :
+# dbmail-imapd dbmail-pop3d dbmail-lmtpd dbmail-timsieved
+#
+DBMAIL_DAEMONS="dbmail-imapd"
diff --git a/community/dbmail/dbmail.rc.d b/community/dbmail/dbmail.rc.d
new file mode 100644
index 000000000..92c34e5d2
--- /dev/null
+++ b/community/dbmail/dbmail.rc.d
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+[ -f /etc/conf.d/dbmail ] && . /etc/conf.d/dbmail
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ for daemon in $DBMAIL_DAEMONS; do
+ stat_busy "Starting DbMail ${daemon}"
+ /usr/sbin/${daemon}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ done
+ add_daemon dbmail
+ ;;
+ stop)
+ for daemon in $DBMAIL_DAEMONS; do
+ stat_busy "Stopping DbMail ${daemon}"
+ pid=$(cat /var/run/${daemon}.pid)
+ kill $pid
+ sleep 4
+ stat_done
+ done
+ rm_daemon dbmail
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+
+exit 0
diff --git a/community/dbus-sharp-glib/PKGBUILD b/community/dbus-sharp-glib/PKGBUILD
new file mode 100644
index 000000000..bd28aeede
--- /dev/null
+++ b/community/dbus-sharp-glib/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 39552 2011-02-11 14:42:53Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Alessio Biancalana <dottorblaster@gmail.com>
+
+pkgname=dbus-sharp-glib
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="C# GLib implementation of D-Bus"
+arch=('i686' 'x86_64')
+url="http://github.com/mono/dbus-sharp/"
+license=('custom')
+depends=('dbus-sharp>=0.7')
+makedepends=('pkgconfig')
+options=(!makeflags)
+source=(https://github.com/downloads/mono/dbus-sharp/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2284293316eb3a89f0f78798b8a24418')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package(){
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/community/deadbeef/PKGBUILD b/community/deadbeef/PKGBUILD
new file mode 100644
index 000000000..3d2e3a876
--- /dev/null
+++ b/community/deadbeef/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 36041 2010-12-25 20:18:47Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Alexey Yakovenko <waker@users.sourceforge.net>
+
+pkgname=deadbeef
+pkgver=0.4.4
+pkgrel=2
+pkgdesc='An audio player for GNU/Linux based on GTK2.'
+arch=('i686' 'x86_64')
+url='http://deadbeef.sourceforge.net'
+license=('GPL2')
+depends=('gtk2' 'libsamplerate' 'alsa-lib')
+makedepends=('gtk2' 'libsamplerate' 'libvorbis' 'libmad' 'flac' 'curl' 'alsa-lib' 'wavpack' 'libsndfile' 'libcdio' 'libcddb' 'ffmpeg' 'libx11' 'faad2' 'zlib' 'intltool' 'pkgconfig' 'libpulse')
+optdepends=('libvorbis: for Ogg Vorbis playback'
+ 'libmad: for MP1/MP2/MP3 playback'
+ 'flac: for FLAC playback'
+ 'curl: for Last.fm scrobbler, SHOUTcast, Icecast, Podcast support'
+ 'wavpack: for WavPack playback'
+ 'libsndfile: for Wave playback'
+ 'libcdio: audio cd plugin'
+ 'libcddb: audio cd plugin'
+ 'ffmpeg: for WMA, AA, OMA, AC, etc.'
+ 'libmms: for MMS protocol support'
+ 'faad2: for AAC/MP4 support'
+ 'dbus: for OSD notifications support'
+ 'pulseaudio: for PulseAudio output plugin'
+ 'libx11: for global hotkeys plugin')
+options=('!libtool')
+install='deadbeef.install'
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('546e63d456d6a5625461019b15501e38')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/community/deadbeef/deadbeef.install b/community/deadbeef/deadbeef.install
new file mode 100644
index 000000000..eaf1b9a69
--- /dev/null
+++ b/community/deadbeef/deadbeef.install
@@ -0,0 +1,14 @@
+pkgname=deadbeef
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/delegate/ChangeLog b/community/delegate/ChangeLog
new file mode 100644
index 000000000..d22a5592c
--- /dev/null
+++ b/community/delegate/ChangeLog
@@ -0,0 +1,3 @@
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/delegate/PKGBUILD b/community/delegate/PKGBUILD
new file mode 100644
index 000000000..450698d29
--- /dev/null
+++ b/community/delegate/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 18941 2010-06-17 16:25:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=delegate
+pkgver=9.9.7
+pkgrel=1
+pkgdesc="Caching and converting multyprotocol proxy. For example, you may use it as NNTP web interface"
+arch=('i686' 'x86_64')
+url="http://www.delegate.org/"
+license=('GPL')
+depends=('pam')
+options=(!strip)
+install=delegate.install
+source=(ftp://ftp:ps790809%40inbox%2Eru@ftp.delegate.org/pub/DeleGate/delegate$pkgver.tar.gz)
+md5sums=('86c833e95cd16a54d54fa3c7e4ab7929')
+
+build() {
+ cd $srcdir/$pkgname$pkgver
+ make ADMIN="root@localhost" || return 1
+
+ install -D -m0755 src/delegated $pkgdir/usr/bin/delegated || return 1
+
+ install -D -m0755 subin/dgbind $pkgdir/usr/sbin/dgbind || return 1
+ install -D -m0755 subin/dgchroot $pkgdir/usr/sbin/dgchroot || return 1
+ install -D -m0755 subin/dgcpnod $pkgdir/usr/sbin/dgcpnod || return 1
+ install -D -m0755 subin/dgpam $pkgdir/usr/sbin/dgpam || return 1
+
+ install -D -m0644 doc/Manual.htm $pkgdir/usr/share/delegate/manual.htm || return 1
+ install -D -m0644 doc/tutor-en.htm $pkgdir/usr/share/delegate/tutor-en.htm || return 1
+}
diff --git a/community/delegate/delegate.install b/community/delegate/delegate.install
new file mode 100644
index 000000000..f7c7096b4
--- /dev/null
+++ b/community/delegate/delegate.install
@@ -0,0 +1,11 @@
+pre_install() {
+ /bin/true
+}
+
+post_install() {
+ echo "--"
+ echo "-- Delegate supports too many protocols, so I did not write any rc-script"
+ echo "-- Please read documentation in /usr/share/delegate/"
+ echo "--"
+ /bin/true
+}
diff --git a/community/denemo/PKGBUILD b/community/denemo/PKGBUILD
new file mode 100644
index 000000000..365ce5ef4
--- /dev/null
+++ b/community/denemo/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 38446 2011-01-27 15:07:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Philipp Sandhaus <philipp.sandhaus@gmx.de>
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+# Contributor: Gnud <ach.gnud@gmail.com>
+
+pkgname=denemo
+pkgver=0.8.22
+pkgrel=1
+pkgdesc="A music score editor"
+arch=('i686' 'x86_64')
+url="http://www.denemo.org"
+license=('GPL')
+depends=('aubio' 'portaudio' 'lilypond' 'gtk2' 'libxml2' 'guile' 'fftw' 'gtksourceview2'
+ 'librsvg' 'fluidsynth')
+options=('!libtool')
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4645ae66d21fc62b362ae554b10c487e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/desmume/PKGBUILD b/community/desmume/PKGBUILD
new file mode 100644
index 000000000..65a01fb7d
--- /dev/null
+++ b/community/desmume/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 38953 2011-02-03 21:59:54Z bfanella $
+# Maintainer: Jonathan Conder <jonno dot conder at gmail dot com>
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Arkham <arkham at archlinux dot us>
+# Contributor: Nathan Jones <nathanj@insightbb.com>
+# Contributor: Javier "Phrodo_00" Aravena <phrodo.00 at gmail dot com>
+# Contributor: angvp <angvp at archlinux dot us>
+# Contributor: Allan <mcrae_allan at hotmail dot com>
+# Contributor: w0rm <w0rmtux at gmail dot com>
+# Contributor: vEX <vex at niechift dot com>
+# Contributor: Asher256 <achrafcherti at gmail dot com>
+
+pkgname=desmume
+pkgver=0.9.7
+pkgrel=3
+pkgdesc="Nintendo DS emulator"
+arch=('i686' 'x86_64')
+url="http://desmume.org/"
+license=('GPL')
+depends=('agg' 'gtkglext' 'intltool' 'libgl' 'libglade' 'mesa')
+replaces=('desmume-core' 'desmume-cli' 'desmume-gtk' 'desmume-glade')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+sha256sums=('0a0f7ef3cc76ff0bbc6f3df47c3689653617074ea7ffc354e9fa1240c5336523')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --enable-wifi
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/dev86/ChangeLog b/community/dev86/ChangeLog
new file mode 100644
index 000000000..79ed3b287
--- /dev/null
+++ b/community/dev86/ChangeLog
@@ -0,0 +1,3 @@
+2008-01-21 JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+
+ * PKGBUILD: moved man pages to /usr/share
diff --git a/community/dev86/PKGBUILD b/community/dev86/PKGBUILD
new file mode 100644
index 000000000..4428a54a8
--- /dev/null
+++ b/community/dev86/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 25323 2010-09-03 22:29:35Z spupykin $
+# Maintainer: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: Suat SARIALP <muhendis.suat@gmail.com>
+
+pkgname=dev86
+pkgver=0.16.17
+pkgrel=5.1
+pkgdesc="Simple C compiler to generate 8086 code"
+arch=('i686' 'x86_64')
+url="http://homepage.ntlworld.com/robert.debath/dev86"
+license=(GPL)
+makedepends=('bin86')
+options=('!libtool' '!strip' '!makeflags')
+source=(http://homepage.ntlworld.com/robert.debath/dev86/Dev86src-0.16.17.tar.gz dev86-pic.patch)
+md5sums=('e7bbfdbe61c2fb964994a087e29b0087' '1b750c5561a4bde5f83f65e5827feb73')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -Np0 -i ${startdir}/src/dev86-pic.patch
+ if [ "${CARCH}" = "x86_64" ]; then
+ # x86_64 fix
+ sed -i.orig -e 's,alt-libs elksemu,alt-libs,' \
+ -e 's,install-lib install-emu,install-lib,' \
+ $startdir/src/$pkgname-$pkgver/makefile.in
+ fi
+
+ # use our CFLAGS
+ sed -i -e "s/-O2 -g/${CFLAGS}/" makefile.in
+
+ make PREFIX=/usr DIST="$startdir/pkg" || return 1
+ make install-all DIST="$startdir/pkg"
+ mkdir -p $startdir/pkg/usr/share
+ mv $startdir/pkg/usr/man $startdir/pkg/usr/share
+ # remove all the stuff supplied by bin86
+ rm $startdir/pkg/usr/bin/{as,ld,nm,objdump,size}86
+ rm $startdir/pkg/usr/share/man/man1/{as,ld}86.1
+}
diff --git a/community/dev86/dev86-pic.patch b/community/dev86/dev86-pic.patch
new file mode 100644
index 000000000..439c2648b
--- /dev/null
+++ b/community/dev86/dev86-pic.patch
@@ -0,0 +1,20 @@
+--- elksemu/elks.c.orig 2005-11-04 01:35:37.000000000 +0100
++++ elksemu/elks.c 2005-11-04 01:45:28.000000000 +0100
+@@ -129,8 +129,17 @@
+ static inline int vm86_mine(struct vm86_struct* v86)
+ {
+ int __res;
++#ifndef __PIC__
+ __asm__ __volatile__("int $0x80\n"
+ :"=a" (__res):"a" ((int)OLD_SYS_vm86), "b" ((int)v86));
++#else
++ __asm__ __volatile__(
++ "movl %%ebx,%%ecx\n\t"
++ "movl %2,%%ebx\n\t"
++ "int $0x80\n\t"
++ "movl %%ecx,%%ebx\n\t"
++ :"=a" (__res):"a" ((int)OLD_SYS_vm86), "r" ((int)v86) : "ecx");
++#endif
+ return __res;
+ }
+ #endif
diff --git a/community/devil/PKGBUILD b/community/devil/PKGBUILD
new file mode 100644
index 000000000..061b8cc64
--- /dev/null
+++ b/community/devil/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 64433 2010-01-20 12:05:44Z ibiru $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: TheHoff <forums>
+
+pkgname=devil
+pkgver=1.7.8
+pkgrel=6
+pkgdesc="Library for reading several different image formats"
+arch=('i686' 'x86_64')
+url="http://openil.sourceforge.net/"
+depends=('allegro>=4.4.0.1' 'sdl' 'libpng>=1.4.0' 'libmng>=1.0.10-3' 'freeglut'
+ 'jasper>=1.900.1-4' 'lcms>=1.18-3' 'openexr')
+makedepends=('bash')
+options=('!libtool' '!docs')
+license=('GPL')
+source=(http://downloads.sourceforge.net/openil/DevIL-$pkgver.tar.gz libpng14.patch)
+
+build() {
+ cd $srcdir/devil-$pkgver
+
+ patch -Np1 -i $srcdir/libpng14.patch || return 1
+ # configure and build
+ ./configure --prefix=/usr --enable-ILU --enable-ILUT --enable-opengl --enable-sdl
+ make || return 1
+ make prefix=$pkgdir/usr install
+}
+md5sums=('7918f215524589435e5ec2e8736d5e1d'
+ '0f839ccefd43b0ee8b4b3f99806147fc')
diff --git a/community/devil/libpng14.patch b/community/devil/libpng14.patch
new file mode 100644
index 000000000..b8434692b
--- /dev/null
+++ b/community/devil/libpng14.patch
@@ -0,0 +1,33 @@
+diff -Nur devil-1.7.8.orig/src-IL/src/il_icon.c devil-1.7.8/src-IL/src/il_icon.c
+--- devil-1.7.8.orig/src-IL/src/il_icon.c 2009-03-08 09:10:09.000000000 +0200
++++ devil-1.7.8/src-IL/src/il_icon.c 2010-01-17 00:54:09.000000000 +0200
+@@ -525,7 +525,7 @@
+
+ // Expand low-bit-depth grayscale images to 8 bits
+ if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+- png_set_gray_1_2_4_to_8(ico_png_ptr);
++ png_set_expand_gray_1_2_4_to_8(ico_png_ptr);
+ }
+
+ // Expand RGB images with transparency to full alpha channels
+diff -Nur devil-1.7.8.orig/src-IL/src/il_png.c devil-1.7.8/src-IL/src/il_png.c
+--- devil-1.7.8.orig/src-IL/src/il_png.c 2009-03-08 09:10:09.000000000 +0200
++++ devil-1.7.8/src-IL/src/il_png.c 2010-01-17 00:55:26.000000000 +0200
+@@ -105,7 +105,7 @@
+ Read = iread(Signature, 1, 8);
+ iseek(-Read, IL_SEEK_CUR);
+
+- return png_check_sig(Signature, 8);
++ return png_sig_cmp(Signature, 0, 8) == 0;
+ }
+
+
+@@ -278,7 +278,7 @@
+
+ // Expand low-bit-depth grayscale images to 8 bits
+ if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ // Expand RGB images with transparency to full alpha channels
diff --git a/community/dfm/PKGBUILD b/community/dfm/PKGBUILD
new file mode 100644
index 000000000..0c290ebd2
--- /dev/null
+++ b/community/dfm/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 7569 2010-01-08 02:17:53Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: eric <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+#
+pkgname=dfm
+pkgver=0.99.9
+pkgrel=2
+pkgdesc="A graphical file manager including desktop icons"
+arch=('i686' 'x86_64')
+depends=('gtk' 'imlib' 'libxpm')
+license=('GPL')
+source=(http://www.kaisersite.de/dfm/$pkgname-$pkgver.tar.gz)
+url="http://www.kaisersite.de/dfm/"
+md5sums=('c6347874028a2dd2c8ec3dec33968fea')
+
+build() {
+ cd $startdir/src/$pkgname
+ ./configure --prefix=/usr --mandir=/usr/share
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/dia/PKGBUILD b/community/dia/PKGBUILD
new file mode 100644
index 000000000..89c7f852e
--- /dev/null
+++ b/community/dia/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 32607 2010-11-15 15:15:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer:
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+
+pkgname=dia
+pkgver=0.97.1
+pkgrel=3
+pkgdesc="A GTK+ based diagram creation program"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://live.gnome.org/Dia"
+install=dia.install
+depends=('libxslt' 'desktop-file-utils' 'libart-lgpl' 'gtk2')
+makedepends=('intltool' 'python2' 'docbook-xsl')
+optdepends=('python2')
+options=('!libtool')
+source=("ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.97/${pkgname}-${pkgver}.tar.bz2"
+ "dia-overflow-fix.patch")
+md5sums=('57e44bb9f387559a0506b52a134deaf0'
+ '8fd9a2ad35b5a6fd8c758d7c73dbfe66')
+md5sums=('57e44bb9f387559a0506b52a134deaf0'
+ '8fd9a2ad35b5a6fd8c758d7c73dbfe66')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export PYTHON=/usr/bin/python2
+ sed -i 's#python2\.1#python2 python2.1#' configure
+ patch -p1 <$srcdir/dia-overflow-fix.patch
+
+ ./configure --prefix=/usr \
+ --enable-db2html \
+ --with-cairo \
+ --with-python \
+ --disable-gnome
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/dia/dia-overflow-fix.patch b/community/dia/dia-overflow-fix.patch
new file mode 100644
index 000000000..a6e64f3c6
--- /dev/null
+++ b/community/dia/dia-overflow-fix.patch
@@ -0,0 +1,28 @@
+diff -wbBur dia-0.97.1/plug-ins/xfig/xfig-export.c dia-0.97.1.my/plug-ins/xfig/xfig-export.c
+--- dia-0.97.1/plug-ins/xfig/xfig-export.c 2009-11-07 17:28:34.000000000 +0300
++++ dia-0.97.1.my/plug-ins/xfig/xfig-export.c 2010-11-15 17:44:05.640896280 +0300
+@@ -417,6 +417,9 @@
+ if (text[i] > 127) {
+ newlen += 3;
+ }
++ if (text[i] == '\\') {
++ newlen += 1;
++ }
+ }
+ returntext = g_malloc(sizeof(char)*(newlen+1));
+ j = 0;
+@@ -1085,10 +1088,10 @@
+ figtext = figText(renderer, (unsigned char *) text);
+ /* xfig texts are specials */
+ fprintf(renderer->file, "4 %d %d %d 0 %d %s 0.0 6 0.0 0.0 %d %d %s\\001\n",
+- figAlignment(renderer, alignment),
+- figColor(renderer, color),
+- figDepth(renderer),
+- figFont(renderer),
++ (int)figAlignment(renderer, alignment),
++ (int)figColor(renderer, color),
++ (int)figDepth(renderer),
++ (int)figFont(renderer),
+ xfig_dtostr(d_buf, figFontSize(renderer)),
+ (int)figCoord(renderer, pos->x),
+ (int)figCoord(renderer, pos->y),
diff --git a/community/dia/dia.install b/community/dia/dia.install
new file mode 100644
index 000000000..499f00ea1
--- /dev/null
+++ b/community/dia/dia.install
@@ -0,0 +1,13 @@
+post_install() {
+ which update-desktop-database >/dev/null && update-desktop-database -q
+ which update-mime-database >/dev/null && update-mime-database usr/share/mime > /dev/null
+ which gtk-update-icon-cache >/dev/null && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/diacanvas/ChangeLog b/community/diacanvas/ChangeLog
new file mode 100644
index 000000000..914eb7af0
--- /dev/null
+++ b/community/diacanvas/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Added override fix patch
diff --git a/community/diacanvas/PKGBUILD b/community/diacanvas/PKGBUILD
new file mode 100644
index 000000000..06b34d4e1
--- /dev/null
+++ b/community/diacanvas/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 29281 2010-10-12 16:17:20Z foutrelis $
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=diacanvas
+pkgver=0.15.4
+pkgrel=6
+pkgdesc="Library for drawing diagrams"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/diacanvas"
+license=('LGPL')
+depends=('libgnomecanvas' 'libgnomeprint' 'gnome-python')
+makedepends=('libgnomeprintui')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/${pkgname}2_$pkgver.tar.gz
+ 'override-fix.patch')
+md5sums=('2fc8a3447eb92636a7c73e240431e00a' '02c2f6cb7e1dfa43555eb1f5ce0fd0cd')
+
+build() {
+ cd "$srcdir/${pkgname}2-$pkgver"
+ patch -Np1 -i ../override-fix.patch
+ ./configure --prefix=/usr --enable-python=yes
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/diacanvas/override-fix.patch b/community/diacanvas/override-fix.patch
new file mode 100644
index 000000000..afb0810b9
--- /dev/null
+++ b/community/diacanvas/override-fix.patch
@@ -0,0 +1,59 @@
+diff -Naur diacanvas2-0.14.4.orig/python/diacanvas.override diacanvas2-0.14.4.new/python/diacanvas.override
+--- diacanvas2-0.14.4.orig/python/diacanvas.override 2004-10-26 03:54:46.000000000 -0400
++++ diacanvas2-0.14.4.new/python/diacanvas.override 2007-06-27 13:13:31.000000000 -0400
+@@ -182,55 +182,6 @@
+ return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_TEXT);
+ }
+ %%
+-override dia_canvas_item_new kwargs
+-static int
+-_wrap_dia_canvas_item_new (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_ITEM);
+-}
+-%%
+-override dia_canvas_group_new kwargs
+-static int
+-_wrap_dia_canvas_group_new (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_GROUP);
+-}
+-%%
+-override dia_canvas_element_new kwargs
+-static int
+-_wrap_dia_canvas_element_new (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_ELEMENT);
+-}
+-%%
+-override dia_canvas_line_new kwargs
+-static int
+-_wrap_dia_canvas_line_new (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_LINE);
+-}
+-%%
+-override dia_canvas_box_new kwargs
+-static int
+-_wrap_dia_canvas_box_new (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_BOX);
+-}
+-%%
+-override dia_canvas_image_new kwargs
+-static int
+-_wrap_dia_canvas_image_new (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_IMAGE);
+-}
+-%%
+-override dia_canvas_text_new kwargs
+-static int
+-_wrap_dia_canvas_text_new (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- return create_canvas_item (self, args, kwargs, DIA_TYPE_CANVAS_TEXT);
+-}
+-%%
+ override dia_canvas_get_pango_layout noargs
+ static PyObject *
+ _wrap_dia_canvas_get_pango_layout(PyGObject *self)
diff --git a/community/dictd/PKGBUILD b/community/dictd/PKGBUILD
new file mode 100644
index 000000000..4ccab18f5
--- /dev/null
+++ b/community/dictd/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 41057 2011-03-03 15:30:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>
+# Contributor: Enrico Morelli <morelli@cerm.unifi.it>
+
+pkgname=dictd
+pkgver=1.12.0
+pkgrel=1
+pkgdesc="Online dictionary client and server"
+url="http://sourceforge.net/projects/dict/"
+license=("GPL")
+arch=(i686 x86_64)
+depends=('zlib' 'libmaa')
+makedepends=('flex')
+backup=(etc/dict/dictd.conf
+ etc/dict/dict.conf
+ etc/dict/site.info
+ etc/conf.d/dictd
+ etc/xinetd.d/dictd)
+source=(http://downloads.sourceforge.net/project/dict/dictd/dictd-$pkgver/dictd-$pkgver.tar.gz
+ dictd
+ dict.conf
+ dictd.conf
+ dictd.confd
+ site.info
+ dictd.xinetd)
+md5sums=('71aaf3a697ea2e9409643f11ea85b53a'
+ '6542df4fc585773fc03f1a088730126b'
+ 'fb72f7d8c55f84b1b37bbc8d33a8e55a'
+ '64cd6ffdb40fb3367224f91ac44926ac'
+ '838887fee38ae4cebd652d399b1f2266'
+ 'b8cabf913876e544d919c7f20ff8db9e'
+ 'b7dbc9529df13ff895dae2b4abd080d6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --enable-dictorg --prefix=/usr --sysconfdir=/etc/dict
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m 0755 $srcdir/dictd $pkgdir/etc/rc.d/dictd
+ install -D -m 0644 $srcdir/dictd.xinetd $pkgdir/etc/xinetd.d/dictd
+ install -D -m 0644 $srcdir/dictd.conf $pkgdir/etc/dict/dictd.conf
+ install -D -m 0644 $srcdir/dict.conf $pkgdir/etc/dict/dict.conf
+ install -D -m 0644 $srcdir/site.info $pkgdir/etc/dict/site.info
+ install -D -m 0644 $srcdir/dictd.confd $pkgdir/etc/conf.d/dictd
+}
diff --git a/community/dictd/dict.conf b/community/dictd/dict.conf
new file mode 100644
index 000000000..e06c3d296
--- /dev/null
+++ b/community/dictd/dict.conf
@@ -0,0 +1,6 @@
+# This is the configuration file for dict.
+# Usually all you will ever need here is the server keywords.
+# Refer to the dict manpage for other options.
+# It will only check the second server if the first fails
+server localhost
+server dict.org
diff --git a/community/dictd/dictd b/community/dictd/dictd
new file mode 100644
index 000000000..4f435d6f0
--- /dev/null
+++ b/community/dictd/dictd
@@ -0,0 +1,92 @@
+#!/bin/bash
+
+. /etc/conf.d/dictd
+. /etc/rc.conf
+
+. /etc/rc.d/functions
+
+preconfiguration() {
+ stat_busy "Check dictd configuration"
+ if [ ! -e ${DICTD_CONF} ]; then
+ echo "No configuration"
+ stat_fail
+ exit 1
+ fi
+ stat_done
+
+ # The new way of doing this is to scan /usr/lib/dict and tweek the conf
+ stat_busy "Scanning for dictionaries..."
+ if [ ! -d "${DICTD_DICTDIR}" ]; then
+ echo "No dictionaries found"
+ stat_fail
+ exit 1
+ fi
+ stat_done
+ pushd ${DICTD_DICTDIR} >/dev/null
+ INDEXFILES=`ls *.index`
+ if [ -z "$INDEXFILES" ]; then
+ echo "No dictionaries found"
+ stat_fail
+ exit 1
+ fi
+
+ cat $DICTD_CONF | sed -e '/^#LASTLINE/,$d' > $DICTD_TMPCONF
+ echo "#LASTLINE" >> $DICTD_TMPCONF
+
+ CNT=0
+ for i in $INDEXFILES
+ do
+ DNAME=`echo $i | awk -F . '{print $1;}'`
+ #two possible names for a matching dictionary, check which is there.
+ if [ -f ${DNAME}.dict.dz ]; then
+ DICT=${DNAME}.dict.dz
+ elif [ -f ${DNAME}.dict ];then
+ DICT=${DNAME}.dict
+ else
+ echo "Index $i has no matching dictionaray..."
+ fi
+
+ #ok, go an index, and a dixtionary, append.
+ echo "database $DNAME { data \"${DICTD_DICTDIR}/${DICT}\"" >> $DICTD_TMPCONF
+ echo " index \"${DICTD_DICTDIR}/$i\" }" >> $DICTD_TMPCONF
+
+ CNT=`expr $CNT + 1`
+ done
+ popd >/dev/null
+ mv ${DICTD_TMPCONF} ${DICTD_CONF}
+ echo "$CNT dictionary indexes found."
+}
+
+PID=`pidof -o %PPID /usr/sbin/dictd`
+
+case "$1" in
+ start)
+ preconfiguration || exit 1
+ stat_busy "Start dictd daemon"
+ /usr/sbin/dictd $DICTD_ARGS -- $DICTD_EARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dictd
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stop dictd daemon"
+ kill $PID 2>/dev/null 1>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dictd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/dictd/dictd.conf b/community/dictd/dictd.conf
new file mode 100644
index 000000000..71e883a36
--- /dev/null
+++ b/community/dictd/dictd.conf
@@ -0,0 +1,25 @@
+# dictd configuration file.
+# whipped up by michael conrad tilstra <michael@gentoo.org>
+
+# Informational message
+
+global {
+ site site.info
+}
+
+# who's allowed. You might want to change this.
+access {
+ allow *
+}
+
+# Dictionaries are listed below.
+# The initrc script scans /usr/lib/dict and adds all of the dictionaries
+# it finds here.
+#
+# The initrc script will delete everything after the the last line and
+# replace it with what it finds. So add all of your things above.
+#
+# If this is a problem for people, contact me and
+# we can work out a different method.
+#
+#LASTLINE
diff --git a/community/dictd/dictd.confd b/community/dictd/dictd.confd
new file mode 100644
index 000000000..4b47dcdde
--- /dev/null
+++ b/community/dictd/dictd.confd
@@ -0,0 +1,7 @@
+# Config file for /etc/rc.d/dictd
+
+DICTD_CONF=/etc/dict/dictd.conf
+DICTD_DICTDIR=/usr/share/dictd
+DICTD_TMPCONF=/etc/dict/dictd.conf.$$
+DICTD_EARGS="-s"
+DICTD_ARGS="--locale en_US.UTF-8"
diff --git a/community/dictd/dictd.xinetd b/community/dictd/dictd.xinetd
new file mode 100644
index 000000000..a3e3773dc
--- /dev/null
+++ b/community/dictd/dictd.xinetd
@@ -0,0 +1,12 @@
+service dict
+{
+ disable = yes
+ type = UNLISTED
+ port = 2628
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = daemon
+ server = /usr/sbin/dictd
+ server_args = -c /etc/dict/dictd.conf -i --locale en_US.UTF-8
+}
diff --git a/community/dictd/site.info b/community/dictd/site.info
new file mode 100644
index 000000000..23bfdeb61
--- /dev/null
+++ b/community/dictd/site.info
@@ -0,0 +1,6 @@
+Welcome to your dictionary server dictd!
+
+This is an example site information file. It should contain information
+about any restricted databases and how users can obtain access. If may
+also contain other random data as you see fit.
+
diff --git a/community/dietlibc/PKGBUILD b/community/dietlibc/PKGBUILD
new file mode 100644
index 000000000..6ba4d9331
--- /dev/null
+++ b/community/dietlibc/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 17510 2010-05-24 14:18:16Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tino Reichardt <milky-archlinux@mcmilk.de>
+
+pkgname=dietlibc
+pkgver=0.32
+pkgrel=2
+pkgdesc="a libc optimized for small size"
+arch=('i686' 'x86_64')
+url="http://www.fefe.de/dietlibc/"
+license=("GPL")
+source=(http://www.kernel.org/pub/linux/libs/dietlibc/$pkgname-$pkgver.tar.bz2)
+md5sums=('0098761c17924c15e21d25acdda4a8b5')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ make -j1 all dyn || return 1
+ mkdir -p $startdir/pkg/etc
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/dillo/PKGBUILD b/community/dillo/PKGBUILD
new file mode 100644
index 000000000..3860fdd5a
--- /dev/null
+++ b/community/dillo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 34653 2010-12-11 03:21:47Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=dillo
+pkgver=2.2
+pkgrel=3
+pkgdesc="A small, fast graphical web browser built on FLTK"
+arch=(i686 x86_64)
+url="http://www.dillo.org"
+license=('GPL')
+depends=('fltk2' 'libjpeg' 'perl' 'openssl' 'libpng' 'gcc-libs' 'libxcursor'
+ 'libxi' 'libxinerama')
+backup=(etc/dillo/{dillorc,dpidrc})
+source=(http://www.dillo.org/download/$pkgname-$pkgver.tar.bz2
+ libpng14.patch)
+md5sums=('f8bcd62093f178bed81e46cc54e73f42'
+ '5336bd3a3b4698c5250ce59e4f2ff91a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/libpng14.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-cookies --enable-dlgui \
+ --enable-ssl
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/dillo/libpng14.patch b/community/dillo/libpng14.patch
new file mode 100644
index 000000000..10c45351e
--- /dev/null
+++ b/community/dillo/libpng14.patch
@@ -0,0 +1,12 @@
+diff -upr dillo-2.1.1.orig/src/png.c dillo-2.1.1/src/png.c
+--- dillo-2.1.1.orig/src/png.c 2010-01-23 04:09:50.000000000 +0200
++++ dillo-2.1.1/src/png.c 2010-01-23 04:12:34.000000000 +0200
+@@ -345,7 +345,7 @@ static void Png_write(DilloPng *png, voi
+ return; /* need MORE data */
+ }
+ /* check the image signature - DON'T update ipbufstart! */
+- if (!png_check_sig(png->ipbuf, DATASIZE)) {
++ if (png_sig_cmp(png->ipbuf, 0, DATASIZE)) {
+ /* you lied to me about it being a PNG image */
+ MSG_WARN("\"%s\" is not a PNG file.\n", URL_STR(png->url));
+ png->state = IS_finished;
diff --git a/community/directfb/PKGBUILD b/community/directfb/PKGBUILD
new file mode 100644
index 000000000..7a366507a
--- /dev/null
+++ b/community/directfb/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 33711 2010-11-27 20:33:08Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=directfb
+pkgver=1.4.11
+pkgrel=1
+pkgdesc="A thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system on top of the Linux Framebuffer Device"
+arch=('i686' 'x86_64')
+url="http://www.directfb.org"
+license=('LGPL')
+depends=('libjpeg' 'libxext' 'sdl' 'sysfsutils' 'libpng' 'freetype2')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://www.directfb.org/downloads/Core/DirectFB-${pkgver%.*}/DirectFB-${pkgver}.tar.gz)
+md5sums=('94735ccec21120794adcce93a61445d2')
+
+build() {
+ cd ${srcdir}/DirectFB-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-static --enable-zlib \
+ --enable-x11 --enable-sdl --disable-vnc --disable-osx \
+ --enable-video4linux2 --enable-voodoo
+ make
+}
+
+package() {
+ cd ${srcdir}/DirectFB-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/directfb/directfb.changelog b/community/directfb/directfb.changelog
new file mode 100644
index 000000000..721fd1deb
--- /dev/null
+++ b/community/directfb/directfb.changelog
@@ -0,0 +1,40 @@
+2010-11-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * directfb 1.4.11-1
+ * Upstream update
+
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * directfb 1.4.5-1
+ * Upstream update
+
+2010-01-20 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.3-1
+ * Upstream update
+
+2009-11-08 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.2-1
+ * Upstream update
+
+2009-07-13 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.4.1-1
+ * Upstream update
+
+2009-05-03 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.8-1
+ * Upstream update
+
+2009-03-06 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.7-1
+ * Upstream update
+
+2008-07-29 Eric Belanger <eric@archlinux.org>
+
+ * directfb 1.2.0-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/community/discid/PKGBUILD b/community/discid/PKGBUILD
new file mode 100644
index 000000000..d77a3a02c
--- /dev/null
+++ b/community/discid/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 18097 2010-05-31 09:25:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Roland Schaeuble <rschaeuble@gmx.ch>
+
+pkgname=discid
+pkgver=0.1.3
+pkgrel=4
+pkgdesc="A program to calculate the disc-ID for audio compact discs"
+arch=('i686' 'x86_64')
+url="http://discid.sourceforge.net"
+license=("GPL")
+depends=(gcc-libs)
+source=("http://downloads.sourceforge.net/sourceforge/discid/$pkgname-$pkgver.tar.gz")
+md5sums=('4f1c06efa40995576e6436246e5bd674')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make || return 1
+ make DESTDIR=$pkgdir/usr install
+}
diff --git a/community/distcc/PKGBUILD b/community/distcc/PKGBUILD
new file mode 100644
index 000000000..bd278b623
--- /dev/null
+++ b/community/distcc/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 59085 2009-11-20 06:29:43Z giovanni $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=distcc
+pkgver=3.1
+pkgrel=3
+pkgdesc="A distributed C, C++, Obj C compiler"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/distcc/"
+license=('GPL')
+depends=('gcc' 'popt')
+makedepends=('gtk2' 'pkgconfig')
+optdepends=('gtk2: for distccmon-gnome')
+backup=(etc/conf.d/distccd)
+source=(http://distcc.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
+ distccd
+ distccd.conf.d)
+md5sums=('a1a9d3853df7133669fffec2a9aab9f3'
+ '1c918474372c09304772c20c4de484fa'
+ '89aaf6e9072092e283465a14e83f0f94')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-gtk \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}/" install || return 1
+ install -D -m644 ${srcdir}/distccd.conf.d ${pkgdir}/etc/conf.d/distccd
+ install -D -m755 ${srcdir}/distccd ${pkgdir}/etc/rc.d/distccd
+
+ install -d ${pkgdir}/usr/lib/${pkgname}/bin
+ ln -sf /usr/bin/${pkgname} ${pkgdir}/usr/lib/${pkgname}/bin/cc
+ ln -sf /usr/bin/${pkgname} ${pkgdir}/usr/lib/${pkgname}/bin/gcc
+ ln -sf /usr/bin/${pkgname} ${pkgdir}/usr/lib/${pkgname}/bin/g++
+ ln -sf /usr/bin/${pkgname} ${pkgdir}/usr/lib/${pkgname}/bin/cpp
+}
diff --git a/community/distcc/distccd b/community/distcc/distccd
new file mode 100755
index 000000000..4702d6820
--- /dev/null
+++ b/community/distcc/distccd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+[ -f /etc/conf.d/distccd ] && . /etc/conf.d/distccd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/distccd`
+case "$1" in
+ start)
+ stat_busy "Starting distcc Daemon"
+ [ -z "$PID" ] && /usr/bin/distccd --daemon ${DISTCC_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon distccd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping distcc Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon distccd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/distcc/distccd.conf.d b/community/distcc/distccd.conf.d
new file mode 100644
index 000000000..8f90cb503
--- /dev/null
+++ b/community/distcc/distccd.conf.d
@@ -0,0 +1,8 @@
+#
+# Parameters to be passed to distccd
+#
+# You must explicitly add IPs (or subnets) that are allowed to connect,
+# using the --allow switch. See the distccd manpage for more info.
+#
+DISTCC_ARGS="--user nobody --allow 127.0.0.1"
+
diff --git a/community/djview4/PKGBUILD b/community/djview4/PKGBUILD
new file mode 100644
index 000000000..94cf3dfec
--- /dev/null
+++ b/community/djview4/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Leslie P. Polzer <polzerΘgnu·org>
+# Contributor: erm67 <erm67Θyahoo·it>
+# Contributor: Daniel J Griffiths
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=djview4
+pkgver=4.7
+pkgrel=1
+pkgdesc='Portable DjVu viewer and browser plugin'
+arch=('i686' 'x86_64')
+url='http://djvu.sourceforge.net/djview4.html'
+license=('GPL')
+depends=('qt' 'djvulibre')
+source=("http://downloads.sourceforge.net/djvu/djview-${pkgver}.tar.gz")
+sha1sums=('6c0c9c285caaf6211454c36898801c2eda799c8b')
+install=install
+
+build() {
+ cd "${srcdir}/djview-${pkgver}"
+ QTDIR=/usr ./configure --prefix=/usr
+ sed 's/netscape/mozilla/g' -i nsdejavu/Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/djview-${pkgver}"
+ make DESTDIR="${pkgdir}" install-djview install-nsdejavu
+
+ install -Dm644 desktopfiles/hi32-djview4.png "${pkgdir}"/usr/share/icons/hicolor/32x32/apps/djvulibre-djview4.png
+ install -Dm644 desktopfiles/hi64-djview4.png "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/djvulibre-djview4.png
+ install -Dm644 desktopfiles/hi64-djview4.png "${pkgdir}"/usr/share/pixmaps/djvulibre-djview4.png
+ install -Dm644 desktopfiles/djvulibre-djview4.desktop "${pkgdir}"/usr/share/applications/djvulibre-djview4.desktop
+}
diff --git a/community/djview4/install b/community/djview4/install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/djview4/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/community/dmenu/PKGBUILD b/community/dmenu/PKGBUILD
new file mode 100644
index 000000000..22286ce10
--- /dev/null
+++ b/community/dmenu/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 32958 2010-11-20 11:22:07Z ttopper $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
+
+pkgname=dmenu
+pkgver=4.2.1
+pkgrel=1
+pkgdesc="A generic menu for X"
+url="http://tools.suckless.org/dmenu/"
+arch=('i686' 'x86_64')
+license=('MIT')
+depends=('sh' 'libxinerama')
+#source=("http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz")
+source=("$pkgname-$pkgver.tar.gz::http://hg.suckless.org/dmenu/archive/tip.tar.gz")
+md5sums=('48b1e63cbf0ae7993cc68d365412d5e5')
+
+build(){
+# cd $srcdir/$pkgname-$pkgver
+ cd `find $srcdir -type d -name dmenu-\*`
+ make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
+}
+
+package() {
+# cd $srcdir/$pkgname-$pkgver
+ cd `find $srcdir -type d -name dmenu-\*`
+ make PREFIX=/usr DESTDIR=$pkgdir install
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/dnstracer/PKGBUILD b/community/dnstracer/PKGBUILD
new file mode 100644
index 000000000..3964c47f3
--- /dev/null
+++ b/community/dnstracer/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=dnstracer
+pkgver=1.9
+pkgrel=3
+pkgdesc='Determines where a given DNS server gets its information from, and follows the chain of DNS servers'
+arch=('i686' 'x86_64')
+url='http://www.mavetju.org/unix/dnstracer.php'
+license=('BSD')
+source=("http://www.mavetju.org/download/$pkgname-$pkgver.tar.gz")
+sha1sums=('b8c60b281c0eb309acd1b1551c51cccb951685c7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+ install -D LICENSE "$pkgdir"/usr/share/licenses/dnstracer/LICENSE
+}
diff --git a/community/docbook2x/PKGBUILD b/community/docbook2x/PKGBUILD
new file mode 100644
index 000000000..42dab69b1
--- /dev/null
+++ b/community/docbook2x/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 19671 2010-06-26 17:37:44Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=docbook2x
+pkgver=0.8.8
+pkgrel=9
+pkgdesc="A software package that converts DocBook documents into the traditional Unix man page format and the GNU Texinfo format."
+arch=('i686' 'x86_64')
+url="http://docbook2x.sourceforge.net"
+license=("MIT")
+depends=('glibc' 'perl-sgmls' 'perlxml' 'perl-xml-sax' 'libxslt')
+makedepends=('texinfo')
+install=docbook2x.install
+source=(http://downloads.sourceforge.net/$pkgname/docbook2X-$pkgver.tar.gz
+ datadir.diff)
+md5sums=('b9b76a6af198c4f44574cfd17a322f01'
+ '826fae88a435d9278c4f9614991d55a1')
+
+build() {
+ cd $srcdir/docbook2X-$pkgver
+ patch -p1 <$srcdir/datadir.diff
+
+ autoreconf
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --program-transform-name 's,2x-,2,' \
+
+ make
+
+ make DESTDIR=$pkgdir install
+ install -D -m0644 COPYING $pkgdir/usr/share/licenses/$pkgname/license
+ sed -i 's|http://docbook2x.sf.net/latest|/usr/share/docbook2X|g' \
+ $pkgdir/usr/bin/db2x_xsltproc
+}
diff --git a/community/docbook2x/datadir.diff b/community/docbook2x/datadir.diff
new file mode 100644
index 000000000..04d94f395
--- /dev/null
+++ b/community/docbook2x/datadir.diff
@@ -0,0 +1,18 @@
+Upstream patch:
+http://docbook2x.cvs.sourceforge.net/viewvc/docbook2x/docbook2X/configure.ac?r1=1.21&r2=1.22&view=patch
+
+diff -ru docbook2X-0.8.8.orig/configure.ac docbook2X-0.8.8/configure.ac
+--- docbook2X-0.8.8.orig/configure.ac 2010-06-26 04:57:04.000000000 -0430
++++ docbook2X-0.8.8/configure.ac 2010-06-26 04:57:39.000000000 -0430
+@@ -149,6 +149,11 @@
+ dnl Ensure that all static_* are fully expanded.
+
+ eval static_datadir="$datadir"
++old_val=""
++until test "$static_datadir" = "$old_val"; do
++ old_val="$static_datadir"
++ eval static_datadir="$static_datadir"
++done
+
+ eval static_bindir="$bindir"
+ old_val=""
diff --git a/community/docbook2x/docbook2x.install b/community/docbook2x/docbook2x.install
new file mode 100644
index 000000000..63e481864
--- /dev/null
+++ b/community/docbook2x/docbook2x.install
@@ -0,0 +1,18 @@
+info_dir=usr/share/info
+info_files=(docbook2X.info docbook2man-xslt.info docbook2texi-xslt.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/community/dockmanager/PKGBUILD b/community/dockmanager/PKGBUILD
new file mode 100644
index 000000000..0d91fb975
--- /dev/null
+++ b/community/dockmanager/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 39549 2011-02-11 14:30:10Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=dockmanager
+pkgver=0.1.0
+pkgrel=0.20110211
+pkgdesc="Dock-independent helper scripts for compatible docks"
+url="https://launchpad.net/dockmanager"
+arch=(i686 x86_64)
+license=(GPL)
+depends=('libdesktop-agnostic>=0.3.90-2' gconf dbus-glib python2)
+makedepends=(bzr 'vala>=0.10' pkgconfig intltool autoconf gnome-common)
+conflicts=(dockmanager-bzr)
+provides=("dockmanager-bzr")
+options=('!libtool' '!emptydirs')
+install=dockmanager.install
+source=(vala.patch)
+md5sums=('f6db8c3a432b41b620f6fcc8bfccfd81')
+
+__bzrtrunk=lp:dockmanager
+__bzrmod=dockmanager
+
+build() {
+ cd "$srcdir"
+
+ msg2 "Connecting to Launchpad...."
+
+ if [ -d $__bzrmod ] ; then
+ ( cd $__bzrmod && bzr up ) || warning "Bzr up failed!"
+ else
+ bzr checkout $__bzrtrunk $__bzrmod
+ fi
+
+ msg2 "BZR checkout done or server timeout"
+
+ rm -rf $pkgname-build
+ cp -r $__bzrmod $pkgname-build
+ cd $pkgname-build
+
+ msg2 "Starting make..."
+
+ patch -Np0 -i "$srcdir/vala.patch"
+
+ ./autogen.sh \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --sysconfdir=/etc
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-build"
+
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="$pkgdir" install
+
+ # Fix for python2
+ find $pkgdir -type f -exec sed -i '1s|#!/usr/bin/env python$|&2|' {} +
+
+ mkdir -p "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/dockmanager.schemas" "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -rf "$pkgdir/etc/gconf"
+}
diff --git a/community/dockmanager/dockmanager.install b/community/dockmanager/dockmanager.install
new file mode 100644
index 000000000..11d20ed8c
--- /dev/null
+++ b/community/dockmanager/dockmanager.install
@@ -0,0 +1,19 @@
+pkgname=dockmanager
+
+post_install() {
+ echo "Installing schema..."
+ gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo "Removing schema..."
+ gconfpkg --uninstall ${pkgname}
+}
diff --git a/community/dockmanager/vala.patch b/community/dockmanager/vala.patch
new file mode 100644
index 000000000..efe01e474
--- /dev/null
+++ b/community/dockmanager/vala.patch
@@ -0,0 +1,26 @@
+=== modified file 'daemon/tile.vala'
+--- daemon/tile.vala 2010-12-01 23:39:56 +0000
++++ daemon/tile.vala 2011-01-18 04:30:10 +0000
+@@ -185,10 +185,6 @@
+ {
+ try
+ {
+-#if VALA_0_12
+-#else
+- unowned
+-#endif
+ Gdk.Pixbuf temp_pb;
+ unowned IconTheme it = IconTheme.get_default ();
+ try
+@@ -204,10 +200,6 @@
+ IconLookupFlags.FORCE_SIZE);
+ }
+ pixbuf = temp_pb.copy ();
+-#if VALA_0_12
+-#else
+- temp_pb.unref (); // careful here!
+-#endif
+ }
+ catch (Error err)
+ {
+
diff --git a/community/docky/PKGBUILD b/community/docky/PKGBUILD
new file mode 100644
index 000000000..8767c5d68
--- /dev/null
+++ b/community/docky/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 42638 2011-03-18 21:02:48Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: dieghen89 <dieghen89@gmail.com>
+# Contributor: Alessio 'Bl@ster' Biancalana <dottorblaster@gmail.com>
+
+pkgname=docky
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="The finest dock no money can buy!"
+url="https://launchpad.net/docky"
+arch=(i686 x86_64)
+license=(GPL)
+depends=(gnome-desktop-sharp gnome-keyring-sharp gtk2 mono-addins
+ hicolor-icon-theme ndesk-dbus-glib notify-sharp-svn xdg-utils
+ desktop-file-utils dockmanager gio-sharp dbus-sharp-glib)
+makedepends=(intltool)
+options=('!libtool' '!emptydirs')
+install=docky.install
+source=("http://launchpad.net/$pkgname/${pkgver%.*}/$pkgver/+download/$pkgname-$pkgver.tar.gz"
+ "bzr-1798.diff")
+md5sums=('628418e11088b96d47287dac6e838507'
+ 'e7fddf932967d37ad9bc060ba3bda15f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ patch -Np0 -i "$srcdir/bzr-1798.diff"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+
+ mkdir -p "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/docky.schemas" "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -rf "$pkgdir/etc/gconf"
+}
diff --git a/community/docky/bzr-1798.diff b/community/docky/bzr-1798.diff
new file mode 100644
index 000000000..4fcfb9fa2
--- /dev/null
+++ b/community/docky/bzr-1798.diff
@@ -0,0 +1,170 @@
+=== modified file 'Docky.CairoHelper/Docky.CairoHelper/DockySurface.cs'
+--- Docky.CairoHelper/Docky.CairoHelper/DockySurface.cs 2010-12-29 15:35:31 +0000
++++ Docky.CairoHelper/Docky.CairoHelper/DockySurface.cs 2011-03-13 17:16:18 +0000
+@@ -150,7 +150,7 @@
+ {
+ DockySurface result = new DockySurface (area.Width, area.Height, this);
+
+- Internal.Show (result.Context, 0 - area.X, 0 - area.Y);
++ Internal.Show (result.Context, -area.X, -area.Y);
+
+ return result;
+ }
+
+=== modified file 'Docky.Items/Docky.Painters/PagingDockPainter.cs'
+--- Docky.Items/Docky.Painters/PagingDockPainter.cs 2011-01-26 04:43:08 +0000
++++ Docky.Items/Docky.Painters/PagingDockPainter.cs 2011-03-13 17:16:18 +0000
+@@ -117,7 +117,7 @@
+ ShowBuffer (surface, LastPage, offset);
+ } else {
+ ShowBuffer (surface, Page, Allocation.Width - offset);
+- ShowBuffer (surface, LastPage, 0 - offset);
++ ShowBuffer (surface, LastPage, -offset);
+ }
+
+ // fade out the edges during a slide
+
+=== modified file 'Docky/Docky/CairoHelper/DockySurface_Extensions.cs'
+--- Docky/Docky/CairoHelper/DockySurface_Extensions.cs 2010-12-29 08:12:28 +0000
++++ Docky/Docky/CairoHelper/DockySurface_Extensions.cs 2011-03-13 17:16:18 +0000
+@@ -44,15 +44,15 @@
+ double cos, sin;
+ cos = Math.Cos (rotation);
+ sin = Math.Sin (rotation);
+- Matrix m = new Matrix (cos, sin, 0 - sin, cos, point.X, point.Y);
++ Matrix m = new Matrix (cos, sin, -sin, cos, point.X, point.Y);
+ cr.Transform (m);
+
+ if (zoom != 1)
+ cr.Scale (zoom, zoom);
+
+ cr.SetSource (self.Internal,
+- 0 - self.Width / 2,
+- 0 - self.Height / 2);
++ -self.Width / 2,
++ -self.Height / 2);
+
+ cr.PaintWithAlpha (opacity);
+
+@@ -85,7 +85,7 @@
+ double cos, sin;
+ cos = Math.Cos (rotation);
+ sin = Math.Sin (rotation);
+- Matrix m = new Matrix (cos, sin, 0 - sin, cos, point.X, point.Y);
++ Matrix m = new Matrix (cos, sin, -sin, cos, point.X, point.Y);
+ cr.Transform (m);
+
+ if (zoom != 1)
+@@ -97,8 +97,8 @@
+ cr.Scale (1, -1);
+
+ cr.SetSource (self.Internal,
+- 0 - self.Width / 2,
+- 0 - self.Height / 2);
++ -self.Width / 2,
++ -self.Height / 2);
+
+ cr.PaintWithAlpha (opacity * .3);
+
+
+=== modified file 'Docky/Docky/Interface/DockWindow.cs'
+--- Docky/Docky/Interface/DockWindow.cs 2011-03-03 08:59:59 +0000
++++ Docky/Docky/Interface/DockWindow.cs 2011-03-13 17:16:18 +0000
+@@ -2749,10 +2749,10 @@
+ } else {
+ switch (Position) {
+ case DockPosition.Top:
+- cr.SetSource (main_buffer.Internal, 0, 0 - HideOffset * ZoomedDockHeight);
++ cr.SetSource (main_buffer.Internal, 0, -HideOffset * ZoomedDockHeight);
+ break;
+ case DockPosition.Left:
+- cr.SetSource (main_buffer.Internal, 0 - HideOffset * ZoomedDockHeight, 0);
++ cr.SetSource (main_buffer.Internal, -HideOffset * ZoomedDockHeight, 0);
+ break;
+ case DockPosition.Right:
+ cr.SetSource (main_buffer.Internal, HideOffset * ZoomedDockHeight, 0);
+
+=== modified file 'Docky/Docky/Menus/DockMenu.cs'
+--- Docky/Docky/Menus/DockMenu.cs 2010-10-15 15:32:36 +0000
++++ Docky/Docky/Menus/DockMenu.cs 2011-03-13 17:16:18 +0000
+@@ -543,15 +543,15 @@
+ switch (Orientation) {
+ case DockPosition.Top:
+ cr.Scale (1, -1);
+- cr.Translate (0, 0 - background_buffer.Height);
++ cr.Translate (0, -background_buffer.Height);
+ break;
+ case DockPosition.Left:
+ cr.Rotate (Math.PI * .5);
+- cr.Translate (0, 0 - background_buffer.Height);
++ cr.Translate (0, -background_buffer.Height);
+ break;
+ case DockPosition.Right:
+ cr.Rotate (Math.PI * -0.5);
+- cr.Translate (0 - background_buffer.Width, 0);
++ cr.Translate (-background_buffer.Width, 0);
+ break;
+ }
+
+
+=== modified file 'StandardPlugins/Clock/src/ClockDockItem.cs'
+--- StandardPlugins/Clock/src/ClockDockItem.cs 2010-11-21 22:19:54 +0000
++++ StandardPlugins/Clock/src/ClockDockItem.cs 2011-03-13 17:16:18 +0000
+@@ -388,20 +388,20 @@
+ double minuteRotation = 2 * Math.PI * (DateTime.Now.Minute / 60.0) + Math.PI;
+ cr.Rotate (minuteRotation);
+ cr.MoveTo (0, radius - radius * .35);
+- cr.LineTo (0, 0 - radius * .15);
++ cr.LineTo (0, -radius * .15);
+ cr.Stroke ();
+- cr.Rotate (0 - minuteRotation);
++ cr.Rotate (-minuteRotation);
+
+ cr.Color = new Cairo.Color (0, 0, 0);
+ double hourRotation = 2 * Math.PI * (DateTime.Now.Hour / (ShowMilitary ? 24.0 : 12.0)) +
+ Math.PI + (Math.PI / (ShowMilitary ? 12.0 : 6.0)) * DateTime.Now.Minute / 60.0;
+ cr.Rotate (hourRotation);
+ cr.MoveTo (0, radius - radius * .5);
+- cr.LineTo (0, 0 - radius * .15);
++ cr.LineTo (0, -radius * .15);
+ cr.Stroke ();
+- cr.Rotate (0 - hourRotation);
++ cr.Rotate (-hourRotation);
+
+- cr.Translate (0 - center, 0 - center);
++ cr.Translate (-center, -center);
+
+ RenderFileOntoContext (cr, System.IO.Path.Combine (ThemePath, "clock-glass.svg"), radius * 2);
+ RenderFileOntoContext (cr, System.IO.Path.Combine (ThemePath, "clock-frame.svg"), radius * 2);
+
+=== modified file 'Docky/Docky/ConfigurationWindow.cs'
+--- Docky/Docky/ConfigurationWindow.cs 2011-02-05 08:06:51 +0000
++++ Docky/Docky/ConfigurationWindow.cs 2011-03-15 07:48:42 +0000
+@@ -94,9 +94,10 @@
+ this.SetCompositeColormap ();
+ Stick ();
+
+- // why 1? because Compiz sucks... thats why!
+- Move (0, 1);
+- SetSizeRequest (Screen.Width, Screen.Height - 1);
++ // make the window extend off screen in all directions
++ // to work around problems with struts
++ Move (-50, -50);
++ SetSizeRequest (Screen.Width + 100, Screen.Height + 100);
+ }
+
+ void HandleRealized (object sender, EventArgs e)
+
+=== modified file 'Docky/Docky/Interface/DockDragTracker.cs'
+--- Docky/Docky/Interface/DockDragTracker.cs 2011-03-10 10:48:09 +0000
++++ Docky/Docky/Interface/DockDragTracker.cs 2011-03-15 07:49:42 +0000
+@@ -539,7 +539,7 @@
+ EnableDragTo ();
+ } else if ((Owner.CursorTracker.Modifier & ModifierType.Button1Mask) == ModifierType.Button1Mask) {
+ Gdk.Window bestProxy = BestProxyWindow ();
+- if (proxy_window != bestProxy) {
++ if (bestProxy != null && proxy_window != bestProxy) {
+ proxy_window = bestProxy;
+ Gtk.Drag.DestSetProxy (Owner, proxy_window, DragProtocol.Xdnd, true);
+ }
+
diff --git a/community/docky/docky.install b/community/docky/docky.install
new file mode 100644
index 000000000..4e2242957
--- /dev/null
+++ b/community/docky/docky.install
@@ -0,0 +1,30 @@
+pkgname=docky
+
+post_install() {
+ echo "Installing schema..."
+ gconfpkg --install ${pkgname}
+
+ echo "Updating desktop..."
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo "Removing schema..."
+ gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ echo "Updating desktop..."
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
diff --git a/community/dopewars/PKGBUILD b/community/dopewars/PKGBUILD
new file mode 100644
index 000000000..2fe81262b
--- /dev/null
+++ b/community/dopewars/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 19596 2008-11-28 02:08:18Z thayer $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=dopewars
+pkgver=1.5.12
+pkgrel=4
+pkgdesc="dopewars is a Drug dealing game set in New York"
+url="http://dopewars.sourceforge.net/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gtk2>=2.12.11' 'alsa-lib' 'audiofile' 'esd' 'sdl_mixer' 'ncurses>=5.6-7')
+install='dopewars.install'
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('debf749de9053dc2fb2e74c37ae06206')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --localstatedir=/var/games \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ # setup shortcut menu entries
+ mkdir -p $pkgdir/usr/share/applications
+ mv $pkgdir/usr/share/gnome/apps/Games/dopewars.desktop \
+ $pkgdir/usr/share/applications
+ rm -r $pkgdir/usr/share/gnome
+
+ # set appropriate permissions and destinations
+ chown root:games $pkgdir/usr/bin/dopewars
+ chmod 2755 $pkgdir/usr/bin/dopewars
+ chown root:games $pkgdir/var/games
+ chmod 775 $pkgdir/var/games
+
+ # Handle the scores file creation in the install script
+ rm $pkgdir/var/games/dopewars.sco
+}
+
diff --git a/community/dopewars/dopewars.install b/community/dopewars/dopewars.install
new file mode 100644
index 000000000..2801fc338
--- /dev/null
+++ b/community/dopewars/dopewars.install
@@ -0,0 +1,20 @@
+post_install() {
+ if [ ! -e /var/games/dopewars.sco ]; then
+ mkdir -p /var/games
+ touch /var/games/dopewars.sco
+ chown root:games /var/games/dopewars.sco
+ chmod 664 /var/games/dopewars.sco
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ if [ -e /var/games/dopewars.sco ]; then
+ rm /var/games/dopewars.sco
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/driftnet/PKGBUILD b/community/driftnet/PKGBUILD
new file mode 100644
index 000000000..d7fb5fce2
--- /dev/null
+++ b/community/driftnet/PKGBUILD
@@ -0,0 +1,17 @@
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=driftnet
+pkgver=0.1.6
+pkgrel=4
+pkgdesc="Listens to network traffic and picks out images from TCP streams it observes."
+url=('http://www.ex-parrot.com/~chris/driftnet/')
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('libjpeg' 'libpcap' 'gtk' 'giflib')
+makedepends=('imake')
+source=(http://www.ex-parrot.com/~chris/driftnet/$pkgname-$pkgver.tar.gz)
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR=$pkgdir LDFLAGS="" || return 1
+ install -D -m755 $pkgname "$pkgdir/usr/bin/$pkgname"
+}
+md5sums=('8e11d77770452f97bb3c23f510489815')
diff --git a/community/drivel/PKGBUILD b/community/drivel/PKGBUILD
new file mode 100644
index 000000000..a46c20f94
--- /dev/null
+++ b/community/drivel/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 30824 2010-10-21 13:21:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# old Maintainer: Andrei "Garoth" Thorp <my-username at gmail dot com>
+# Contributor: Alexandr Nevskiy <kepkin@gmail.com>
+
+pkgname=drivel
+pkgver=3.0.2
+pkgrel=1
+pkgdesc="GTK client for working with online journals (blogs)."
+url="http://www.dropline.net/drivel/index.php"
+arch=('i686' 'x86_64')
+license=("GPL")
+depends=('curl' 'gtksourceview2' 'gtkspell' 'libgnomeui>=2.0.0' 'libsoup')
+makedepends=('perlxml' 'pkgconfig' 'intltool>=0.21' 'gnome-doc-utils>=0.3.2')
+install=drivel.install
+source=(http://downloads.sourceforge.net/drivel/$pkgname-$pkgver.tar.gz)
+md5sums=('5cc6a63cac8d30e024d687506bc06ddd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/drivel/drivel.install b/community/drivel/drivel.install
new file mode 100644
index 000000000..f5f319af2
--- /dev/null
+++ b/community/drivel/drivel.install
@@ -0,0 +1,14 @@
+post_install() {
+ [ -e /usr/bin/gtk-update-icon-cache ] && gtk-update-icon-cache -q -t -f usr/share/icons
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ [ -e /usr/bin/gtk-update-icon-cache ] && gtk-update-icon-cache -q -t -f usr/share/icons
+ update-desktop-database -q
+}
+
diff --git a/community/dsniff/PKGBUILD b/community/dsniff/PKGBUILD
new file mode 100644
index 000000000..648521f0c
--- /dev/null
+++ b/community/dsniff/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 30651 2010-10-19 13:53:33Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: ViNS <gladiator@fastwebnet.it>
+
+pkgname=dsniff
+pkgver=2.4b1
+pkgrel=18
+pkgdesc="Collection of tools for network auditing and penetration testing"
+url="http://www.monkey.org/~dugsong/dsniff/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libpcap' 'openssl' 'db' 'libxmu' 'glib2' 'libnet' 'libnids')
+source=(http://www.monkey.org/~dugsong/dsniff/beta/$pkgname-$pkgver.tar.gz \
+ http://ftp.de.debian.org/debian/pool/main/d/dsniff/dsniff_2.4b1+debian-18.diff.gz)
+md5sums=('2f761fa3475682a7512b0b43568ee7d6'
+ 'fbc9f62f9ab2f98f24f53ad497c1ce5d')
+
+build() {
+ cd $srcdir/$pkgname-2.4
+ patch -N < ../dsniff_2.4b1+debian-18.diff || return 1
+ for i in *.dpatch; do
+ patch -N < "$i"
+ done
+
+ [ $NOEXTRACT -eq 1 ] || LDFLAGS="-lresolv -lglib-2.0 -lgthread-2.0 $LDFLAGS" ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-2.4
+ make prefix=$pkgdir/usr install || return 1
+
+ mkdir -p $pkgdir/usr/share
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/dspam/PKGBUILD b/community/dspam/PKGBUILD
new file mode 100644
index 000000000..9da467697
--- /dev/null
+++ b/community/dspam/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 44186 2011-04-04 13:07:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=dspam
+pkgver=3.9.0
+pkgrel=4
+pkgdesc="A scalable, open-source statistical anti-spam filter"
+arch=('i686' 'x86_64')
+url="http://dspam.nuclearelephant.com/"
+options=('!libtool')
+backup=(etc/dspam/dspam.conf)
+license=("GPL")
+depends=(readline libcap ncurses zlib openssl)
+makedepends=('libmysqlclient' 'postgresql-libs' 'db' 'sqlite3')
+optdepends=('libmysqlclient: MySQL support'
+ 'postgresql-libs: PostgreSQL support'
+ 'db: BerkeleyDB support'
+ 'sqlite3: SQLite support')
+options=('zipman' 'docs' '!libtool')
+source=(http://downloads.sourceforge.net/project/dspam/dspam/dspam-$pkgver/dspam-$pkgver.tar.gz
+ dspam.logrotated
+ dspam)
+install=$pkgname.install
+md5sums=('10d092b57d628d8c91655fee5dc0d0cd'
+ '2163ca41de383f09f4d754e2d35cb158'
+ 'bb2300eff5b2a6eb987750c71a2c2169')
+
+build() {
+ OPTS="--enable-delivery-to-stdout --with-dspam-owner=dspam --with-dspam-group=dspam --enable-daemon --enable-virtual-users \
+ --with-mysql-includes=/usr/include/mysql --with-mysql-libraries=/usr/lib \
+ --with-storage-driver="mysql_drv,libdb4_drv,pgsql_drv,sqlite3_drv,hash_drv" --with-dspam-home=/var/lib/dspam \
+ --with-logdir=/var/log/dspam --enable-preferences-extension --enable-large-scale"
+
+ cd $srcdir/$pkgname-$pkgver
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc/dspam --localstatedir=/var ${OPTS}
+ make -j1
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ mkdir -p $pkgdir/srv/http/dspam
+ cp -a webui/* $pkgdir/srv/http/dspam/
+ find $pkgdir/srv/http/dspam/ -type f -name 'Makefile*' -exec rm -f {} \;
+ find $pkgdir/srv/http/dspam/ -type f -name '*.in' -exec rm -f {} \;
+
+ install -d $pkgdir/etc/logrotate.d \
+ $pkgdir/etc/rc.d $pkgdir/var/lib/dspam/{mysql,pgsql}
+ install -m644 ../dspam.logrotated $pkgdir/etc/logrotate.d
+ install -m755 ../dspam $pkgdir/etc/rc.d
+
+ sed -i 's|#ServerPID|ServerPID|' $pkgdir/etc/dspam/dspam.conf
+
+ sed -e 's:^#*\(ServerDomainSocketPath[\t ]\{1,\}\).*:\1\"/var/run/dspam/dspam.sock\":gI' \
+ -e 's:^#*\(ServerPID[\t ]\{1,\}\).*:\1/var/run/dspam/dspam.pid:gI' \
+ -i $pkgdir/etc/dspam/dspam.conf
+
+ sed -i 's|/var/lib/mysql/mysql.sock|/tmp/mysql.sock|' $pkgdir/etc/dspam/dspam.conf
+
+ cp -r src/tools.mysql_drv/*.sql $pkgdir/var/lib/dspam/mysql
+ cp -r src/tools.pgsql_drv/*.sql $pkgdir/var/lib/dspam/pgsql
+
+ cd $pkgdir/usr/share/man/man3
+ find -type l -exec ln -sf libdspam.3 {} \;
+
+ chmod 0755 $pkgdir/usr/bin/*
+}
diff --git a/community/dspam/dspam b/community/dspam/dspam
new file mode 100644
index 000000000..be533ba5f
--- /dev/null
+++ b/community/dspam/dspam
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/dspam`
+case "$1" in
+ start)
+ stat_busy "Starting DSPAM Daemon"
+ [ -d /var/run/dspam ] || mkdir -p /var/run/dspam
+ [ -z "$PID" ] && /usr/bin/dspam --daemon &> /dev/null &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dspam
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DSPAM Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dspam
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/dspam/dspam.install b/community/dspam/dspam.install
new file mode 100644
index 000000000..fc74fe55e
--- /dev/null
+++ b/community/dspam/dspam.install
@@ -0,0 +1,33 @@
+post_install() {
+ echo -n "adding dspam system group... "
+ groupadd -g 115 dspam && echo "done."
+ echo -n "adding dspam system user... "
+ useradd -c "DSPAM Daemon" -u 115 -d /var/lib/dspam -g dspam -s /bin/false dspam \
+ && echo "done."
+ passwd -l dspam &>/dev/null
+
+cat << EOF
+>>> To populate the DSPAM database, you need to follow several steps.
+>>> First create a database. Login to the mysql command prompt.
+ $ mysql -u root -p
+ mysql> CREATE database dspam;
+>>> Next, you need to create a dspam user. At the same MySQL prompt:
+ mysql> GRANT ALL PRIVILEGES ON dspam.* TO dspam@'localhost' IDENTIFIED BY 'passwd';
+>>> Replacing passwd with your chosen password.
+>>> If you want a space optimized db do:
+ $ mysql -u dspam dspam -p < /var/lib/dspam/mysql/mysql_objects-space.sql
+>>> If you want a speed optimized db do:
+ $ mysql -u dspam dspam -p < /var/lib/dspam/mysql/mysql_objects-speed.sql
+>>> Enter the password you set in the previous step, and the database should be populated.
+
+>>> Remember to edit /etc/dspam/dspam.conf accordenly
+>>> If you want to use the postgresql, sqlite3 or Berekely DB4 backends,
+>>> read the documentation
+>>>
+EOF
+}
+
+post_remove() {
+ echo -n -e "\nremoving dspam system user and group..."
+ userdel dspam && echo "done."
+}
diff --git a/community/dspam/dspam.logrotated b/community/dspam/dspam.logrotated
new file mode 100644
index 000000000..89db6f565
--- /dev/null
+++ b/community/dspam/dspam.logrotated
@@ -0,0 +1,5 @@
+/var/log/dspam/sql.errors /var/log/dspam/system.log /var/log/dspam/dspam.debug /var/log/dspam/dspam.messages {
+ weekly
+ compress
+ create 0644 dspam dspam
+}
diff --git a/community/dtach/PKGBUILD b/community/dtach/PKGBUILD
new file mode 100644
index 000000000..1324f4731
--- /dev/null
+++ b/community/dtach/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 17291 2010-05-22 18:01:10Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Adam Vogt <vogt.adam@gmail.com>
+
+pkgname=dtach
+pkgver=0.8
+pkgrel=4
+pkgdesc="emulates the detach feature of screen"
+arch=('i686' 'x86_64')
+url="http://dtach.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/dtach/$pkgname-$pkgver.tar.gz)
+md5sums=('ec5999f3b6bb67da19754fcb2e5221f3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -Dm755 dtach "${pkgdir}/usr/bin/dtach" || return 1
+ install -Dm644 dtach.1 "${pkgdir}/usr/share/man/man1/dtach.1" || return 1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/duff/ChangeLog b/community/duff/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/duff/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/duff/PKGBUILD b/community/duff/PKGBUILD
new file mode 100644
index 000000000..c1bb2e2cc
--- /dev/null
+++ b/community/duff/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 11210 2010-02-07 18:33:36Z dgriffiths $
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=duff
+pkgver=0.4
+pkgrel=3
+pkgdesc="A command-line utility for quickly finding duplicates in a given set of files"
+arch=('i686' 'x86_64')
+url="http://duff.sourceforge.net/"
+license=('ZLIB')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ca5043ceb1e16dac1aca5da1ed844149')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/dumb/PKGBUILD b/community/dumb/PKGBUILD
new file mode 100644
index 000000000..3652f34cc
--- /dev/null
+++ b/community/dumb/PKGBUILD
@@ -0,0 +1,50 @@
+# Contributor: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: Bjrn Lindeijer <bjorn lindeijer nl>
+
+pkgname=dumb
+pkgver=0.9.3
+pkgrel=4
+pkgdesc="An IT, XM, S3M and MOD player library"
+arch=('i686' 'x86_64')
+license=('custom:dumb' 'GPL')
+url="http://dumb.sourceforge.net/"
+depends=('glibc' 'allegro')
+source=(http://downloads.sourceforge.net/sourceforge/dumb/$pkgname-$pkgver.tar.gz)
+md5sums=('f48da5b990aa8aa822d3b6a951baf5c2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+ # Create the directories which the Makefile somehow fails to create
+ install -d lib/unix/{debug,release}
+
+ # Make with Allegro support
+ # Upstream's make process is interactive, and we can't simply pass
+ # a here-document to the make command. The best way is to write our
+ # own config.txt, circumventing the interactive configuration step,
+ # as is done in Gentoo's ebuild.
+ cat << EOF > make/config.txt
+include make/unix.inc
+ALL_TARGETS := core core-examples core-headers
+ALL_TARGETS += allegro allegro-examples allegro-headers
+PREFIX := "$pkgdir/usr"
+EOF
+
+ # Upstream's makefile ignores our CFLAGS. They put -I directives in
+ # their own CFLAGS, so we can't just say
+ # make CFLAGS=...
+ # Gentoo's ebuild overrides another of their makefile variables, named
+ # OFLAGS.
+ make OFLAGS="${CFLAGS}"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # Create directories
+ install -d "$pkgdir"/usr/{lib,bin,include}
+ install -D -m644 licence.txt \
+ "$pkgdir/usr/share/licenses/$pkgname/licence.txt"
+
+ make install
+}
diff --git a/community/duplicity/PKGBUILD b/community/duplicity/PKGBUILD
new file mode 100644
index 000000000..e8278a4e0
--- /dev/null
+++ b/community/duplicity/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 43020 2011-03-23 21:31:21Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=duplicity
+pkgver=0.6.12
+pkgrel=1
+pkgdesc='A utility for encrypted, bandwidth-efficient backups using the rsync algorithm'
+arch=('i686' 'x86_64')
+url='http://www.nongnu.org/duplicity/'
+license=('GPL')
+depends=('librsync' 'ncftp' 'python2' 'python-boto' 'python-gnupginterface')
+source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('9b84c984054550bbb2ba29b553567b7b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # 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
+
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
diff --git a/community/dvdisaster/PKGBUILD b/community/dvdisaster/PKGBUILD
new file mode 100644
index 000000000..d9b1130c9
--- /dev/null
+++ b/community/dvdisaster/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 42285 2011-03-16 04:44:26Z ebelanger $
+# Contributor: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Luke McCarthy <luke@iogopro.co.uk>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=dvdisaster
+pkgver=0.72.2
+pkgrel=1
+pkgdesc="Provides a margin of safety against data loss on CD and DVD media caused by aging or scratches"
+arch=('i686' 'x86_64')
+url="http://www.dvdisaster.com/"
+license=('GPL')
+depends=('gtk2')
+options=('!makeflags')
+source=(http://dvdisaster.net/downloads/${pkgname}-${pkgver}.tar.bz2 dvdisaster.desktop)
+md5sums=('312bceef3bf9c0754cf633ed3b12eb71' '3a0d6657c47b20a43b93c0e5d58d755a')
+sha1sums=('f560990e2047ecf0be50c425262046828399fbc3' 'b1e6f372508157923bbb83da7b9af2a51137c589')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man --docdir=/usr/share/doc \
+ --localedir=/usr/share/locale \
+ --with-nls=yes
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make BUILDROOT="${pkgdir}" install
+ rm -f "${pkgdir}/usr/bin/dvdisaster-uninstall.sh"
+ install -D -m 644 ${srcdir}/dvdisaster.desktop \
+ "${pkgdir}/usr/share/applications/dvdisaster.desktop"
+ install -D -m 644 icons/create.png \
+ "${pkgdir}/usr/share/pixmaps/dvdisaster.png"
+}
diff --git a/community/dvdisaster/dvdisaster.desktop b/community/dvdisaster/dvdisaster.desktop
new file mode 100644
index 000000000..9c7296764
--- /dev/null
+++ b/community/dvdisaster/dvdisaster.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Comment=
+Encoding=UTF-8
+Exec=dvdisaster
+GenericName=DVD Recovery Tool
+Icon=dvdisaster
+MimeType=
+Name=dvdisaster
+Path=
+StartupNotify=true
+Terminal=false
+TerminalOptions=
+Type=Application
+Categories=AudioVideo;GTK;
diff --git a/community/dvdstyler/PKGBUILD b/community/dvdstyler/PKGBUILD
new file mode 100644
index 000000000..1002839e2
--- /dev/null
+++ b/community/dvdstyler/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 43532 2011-03-27 09:16:44Z ebelanger $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=dvdstyler
+pkgver=1.8.2.1
+pkgrel=1
+pkgdesc="Cross-platform DVD authoring application"
+arch=('i686' 'x86_64')
+url="http://www.dvdstyler.de/"
+license=('GPL')
+depends=('cdrkit' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg' 'gettext' 'libexif' 'wxgtk' 'wxsvg' 'xine-ui' 'mjpegtools' 'libgnomeui')
+makedepends=('zip' 'xmlto' 'docbook-xsl')
+optdepends=('dvdisaster: ECC support')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/dvdstyler/DVDStyler-${pkgver}.tar.bz2")
+md5sums=('db3ef9340dcefcdf7f99c7e4172078f6')
+
+build() {
+ cd "${srcdir}/DVDStyler-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/DVDStyler-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/dwdiff/PKGBUILD b/community/dwdiff/PKGBUILD
new file mode 100644
index 000000000..798ef5bb1
--- /dev/null
+++ b/community/dwdiff/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 40270 2011-02-22 18:14:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=dwdiff
+pkgver=1.9
+pkgrel=1
+pkgdesc="a front-end for the diff program that operates at the word level instead of the line level"
+arch=('i686' 'x86_64')
+url="http://os.ghalkes.nl/dwdiff.html"
+depends=('diffutils' 'icu')
+license=('GPL')
+source=(http://os.ghalkes.nl/dist/$pkgname-$pkgver.tgz)
+md5sums=('f483d8d8dab7a972ef21d5096e07fd47')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/dwm/PKGBUILD b/community/dwm/PKGBUILD
new file mode 100644
index 000000000..fe5428ca6
--- /dev/null
+++ b/community/dwm/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 18861 2010-06-16 09:09:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Dag Odenhall <dag.odenhall@gmail.com>
+# Contributor: Grigorios Bouzakis <grbzks@gmail.com>
+
+pkgname=dwm
+pkgver=5.8.2
+pkgrel=2
+pkgdesc="A dynamic window manager for X"
+url="http://dwm.suckless.org"
+arch=('i686' 'x86_64')
+license=('MIT')
+options=(zipman)
+depends=('libx11' 'libxinerama')
+install=dwm.install
+source=(http://dl.suckless.org/dwm/dwm-$pkgver.tar.gz \
+ config.h
+ dwm.desktop)
+md5sums=('f0b422bfeaa812d66c6dd15c3cc92a6b'
+ 'f0ba59bf77a53e3a2fc8596740ee5cb8'
+ '939f403a71b6e85261d09fc3412269ee')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ cp $srcdir/config.h config.h
+
+ sed -i 's/CPPFLAGS =/CPPFLAGS +=/g' config.mk
+ sed -i 's/CFLAGS =/CFLAGS +=/g' config.mk
+ sed -i 's/LDFLAGS =/LDFLAGS +=/g' config.mk
+
+ make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11 || return 1
+ make PREFIX=/usr DESTDIR=$pkgdir install || return 1
+
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE && \
+ install -m644 -D README $pkgdir/usr/share/doc/$pkgname/README && \
+ install -m644 -D $srcdir/dwm.desktop $pkgdir//etc/X11/sessions/dwm.desktop
+}
diff --git a/community/dwm/config.h b/community/dwm/config.h
new file mode 100644
index 000000000..91cf4391d
--- /dev/null
+++ b/community/dwm/config.h
@@ -0,0 +1,102 @@
+/* See LICENSE file for copyright and license details. */
+
+/* appearance */
+static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
+static const char normbordercolor[] = "#cccccc";
+static const char normbgcolor[] = "#cccccc";
+static const char normfgcolor[] = "#000000";
+static const char selbordercolor[] = "#0066ff";
+static const char selbgcolor[] = "#0066ff";
+static const char selfgcolor[] = "#ffffff";
+static const unsigned int borderpx = 1; /* border pixel of windows */
+static const unsigned int snap = 32; /* snap pixel */
+static const Bool showbar = True; /* False means no bar */
+static const Bool topbar = True; /* False means bottom bar */
+
+/* tagging */
+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+static const Rule rules[] = {
+ /* class instance title tags mask isfloating monitor */
+ { "Gimp", NULL, NULL, 0, True, -1 },
+ { "Firefox", NULL, NULL, 1 << 8, False, -1 },
+};
+
+/* layout(s) */
+static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
+static const Bool resizehints = True; /* True means respect size hints in tiled resizals */
+
+static const Layout layouts[] = {
+ /* symbol arrange function */
+ { "[]=", tile }, /* first entry is default */
+ { "><>", NULL }, /* no layout function means floating behavior */
+ { "[M]", monocle },
+};
+
+/* key definitions */
+#define MODKEY Mod1Mask
+#define TAGKEYS(KEY,TAG) \
+ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \
+ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
+ { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
+ { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
+
+/* helper for spawning shell commands in the pre dwm-5.0 fashion */
+#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
+
+/* commands */
+static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
+static const char *termcmd[] = { "uxterm", NULL };
+
+static Key keys[] = {
+ /* modifier key function argument */
+ { MODKEY, XK_p, spawn, {.v = dmenucmd } },
+ { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
+ { MODKEY, XK_b, togglebar, {0} },
+ { MODKEY, XK_j, focusstack, {.i = +1 } },
+ { MODKEY, XK_k, focusstack, {.i = -1 } },
+ { MODKEY, XK_h, setmfact, {.f = -0.05} },
+ { MODKEY, XK_l, setmfact, {.f = +0.05} },
+ { MODKEY, XK_Return, zoom, {0} },
+ { MODKEY, XK_Tab, view, {0} },
+ { MODKEY|ShiftMask, XK_c, killclient, {0} },
+ { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
+ { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
+ { MODKEY, XK_space, setlayout, {0} },
+ { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
+ { MODKEY, XK_0, view, {.ui = ~0 } },
+ { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
+ { MODKEY, XK_comma, focusmon, {.i = -1 } },
+ { MODKEY, XK_period, focusmon, {.i = +1 } },
+ { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
+ { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
+ TAGKEYS( XK_1, 0)
+ TAGKEYS( XK_2, 1)
+ TAGKEYS( XK_3, 2)
+ TAGKEYS( XK_4, 3)
+ TAGKEYS( XK_5, 4)
+ TAGKEYS( XK_6, 5)
+ TAGKEYS( XK_7, 6)
+ TAGKEYS( XK_8, 7)
+ TAGKEYS( XK_9, 8)
+ { MODKEY|ShiftMask, XK_q, quit, {0} },
+};
+
+/* button definitions */
+/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
+static Button buttons[] = {
+ /* click event mask button function argument */
+ { ClkLtSymbol, 0, Button1, setlayout, {0} },
+ { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
+ { ClkWinTitle, 0, Button2, zoom, {0} },
+ { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
+ { ClkClientWin, MODKEY, Button1, movemouse, {0} },
+ { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
+ { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
+ { ClkTagBar, 0, Button1, view, {0} },
+ { ClkTagBar, 0, Button3, toggleview, {0} },
+ { ClkTagBar, MODKEY, Button1, tag, {0} },
+ { ClkTagBar, MODKEY, Button3, toggletag, {0} },
+};
+
diff --git a/community/dwm/dwm.desktop b/community/dwm/dwm.desktop
new file mode 100644
index 000000000..b0c33541b
--- /dev/null
+++ b/community/dwm/dwm.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Dwm
+Comment=Dynamic window manager
+Exec=dwm
+Icon=dwm
+Type=XSession
diff --git a/community/dwm/dwm.install b/community/dwm/dwm.install
new file mode 100644
index 000000000..d4fa27e62
--- /dev/null
+++ b/community/dwm/dwm.install
@@ -0,0 +1,28 @@
+pre_install() {
+ echo "-- Edit config.h in PKGBUILD's directory (generally /var/abs/community/x11/dwm/)"
+ echo "-- and rebuild package if you want to change settings."
+ /bin/true
+}
+
+post_install() {
+ /bin/true
+}
+
+pre_upgrade() {
+ echo "-- Edit config.h in PKGBUILD's directory (generally /var/abs/community/x11/dwm/)"
+ echo "-- and rebuild package if you want to change settings."
+ /bin/true
+}
+
+post_upgrade() {
+ /bin/true
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
diff --git a/community/dxpc/PKGBUILD b/community/dxpc/PKGBUILD
new file mode 100644
index 000000000..8d4993f99
--- /dev/null
+++ b/community/dxpc/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 23155 2010-08-07 10:04:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=dxpc
+pkgver=3.9.2
+pkgrel=3
+pkgdesc="Differential X Protocol Compressor"
+arch=('i686' 'x86_64')
+url="http://www.vigor.nu/dxpc/"
+license=('GPL')
+depends=('lzo2' 'gcc-libs')
+source=(http://www.vigor.nu/dxpc/dxpc-$pkgver.tgz)
+md5sums=('e69f58c4acc34c6746a0e5ab17bf8d0f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --mandir='${prefix}/share/man'
+ make || return 1
+ make prefix="$pkgdir/usr" install
+}
diff --git a/community/dynamite/PKGBUILD b/community/dynamite/PKGBUILD
new file mode 100644
index 000000000..9f8828426
--- /dev/null
+++ b/community/dynamite/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 18120 2010-05-31 11:15:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=dynamite
+pkgver=0.1.1
+pkgrel=2
+pkgdesc="Dynamite is a tool and library for decompressing data compressed with PKWARE Data Compression Library"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=("GPL")
+source=(http://downloads.sourceforge.net/sourceforge/synce/libdynamite-$pkgver.tar.gz)
+md5sums=('238bf243dba2166a2e0e141b18065235')
+
+build() {
+ cd $srcdir/libdynamite-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/dzen2/PKGBUILD b/community/dzen2/PKGBUILD
new file mode 100644
index 000000000..0453c200b
--- /dev/null
+++ b/community/dzen2/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 27711 2010-09-27 09:27:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Mark Taylor <skymt0@gmail.com>
+
+pkgname=dzen2
+pkgver=0.8.5
+pkgrel=6
+arch=(i686 x86_64)
+pkgdesc="X notification utility"
+url="http://gotmor.googlepages.com/dzen"
+license=("MIT")
+depends=('libx11' 'libxpm' 'libxinerama' 'libxft')
+makedepends=('gcc')
+source=(http://gotmor.googlepages.com/$pkgname-$pkgver.tar.gz)
+md5sums=('5978620c2124c8a8ad52d7f17ce94fd7')
+
+build()
+{
+ cd $srcdir/dzen2-$pkgver
+
+ patch -p0 config.mk <<EOF
+22,23c22,23
+< LIBS = -L/usr/lib -lc -L\${X11LIB} -lX11
+< CFLAGS = -Os \${INCS} -DVERSION=\\"\${VERSION}\\"
+---
+> #LIBS = -L/usr/lib -lc -L\${X11LIB} -lX11
+> #CFLAGS = -Os \${INCS} -DVERSION=\\"\${VERSION}\\"
+34,35c34,35
+< #LIBS = -L/usr/lib -lc -L\${X11LIB} -lX11 -lXinerama -lXpm
+< #CFLAGS = -Os \${INCS} -DVERSION=\\"\${VERSION}\\" -DDZEN_XINERAMA -DDZEN_XPM
+---
+> LIBS = -L/usr/lib -lc -L\${X11LIB} -lX11 -lXinerama -lXpm `pkg-config --libs xft`
+> CFLAGS = -Os \${INCS} -DVERSION=\\"\${VERSION}\\" -DDZEN_XINERAMA -DDZEN_XPM -DDZEN_XFT `pkg-config --cflags xft`
+EOF
+
+ sed -i "s/CFLAGS = /CFLAGS = ${CFLAGS} /" config.mk
+
+ make X11INC=/usr/include X11LIB=/usr/lib || return 1
+ make PREFIX=/usr MANPREFIX=/usr/man DESTDIR=$pkgdir install || return 1
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/dzen2/COPYING
+
+ cd $srcdir/dzen2-$pkgver/gadgets
+ sed -i "s/CFLAGS = /CFLAGS = ${CFLAGS} /" config.mk
+ make X11INC=/usr/include X11LIB=/usr/lib || return 1
+ make PREFIX=/usr MANPREFIX=/usr/man DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/e-modules-extra-svn/PKGBUILD b/community/e-modules-extra-svn/PKGBUILD
new file mode 100755
index 000000000..3ecdfe102
--- /dev/null
+++ b/community/e-modules-extra-svn/PKGBUILD
@@ -0,0 +1,88 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=e-modules-extra-svn
+pkgver=57516
+pkgrel=1
+pkgdesc="Extra gadgets for e17"
+arch=('i686' 'x86_64')
+groups=('e17-extra-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('e-svn' 'libxkbfile' 'emprint-svn' 'libmpd' 'hal' 'efreet-svn' 'e_dbus-svn')
+makedepends=('subversion')
+conflicts=('e-modules-extra')
+provides=('e-modules-extra')
+options=('!libtool')
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/E-MODULES-EXTRA"
+_svnmod="E-MODULES-EXTRA"
+
+build() {
+ cd $srcdir
+
+ msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ # fix build issue
+ sed -i 's|efreet/Efreet.h|efreet-0/Efreet.h|' winlist-ng/src/e_mod_main.h || return 1
+
+# weather fails to compile on September 7th 2010
+for i in alarm calendar cpu deskshow diskio efm_path efm_pathbar efm_nav\
+ empris eooorg everything-mpris everything-pidgin everything-places everything-tracker \
+ everything-wallpaper everything-websearch \
+ execwatch flame forecasts iiirk itask itask-ng language mail mem \
+ moon mpdule net news notification penguins photo places quickaccess \
+ rain screenshot slideshow snow taskbar tclock tiling uptime \
+ winlist-ng winselector wlan; do
+
+ cd $i
+ ./autogen.sh --prefix=/usr
+ make
+ cd ..
+done
+}
+
+package() {
+ cd $srcdir/$_svnmod-build
+
+# weather fails to compile on September 7th 2010
+for i in alarm calendar cpu deskshow diskio efm_path efm_pathbar efm_nav\
+ empris eooorg everything-mpris everything-pidgin everything-places everything-tracker \
+ everything-wallpaper everything-websearch \
+ execwatch flame forecasts iiirk itask itask-ng language mail mem \
+ moon mpdule net news notification penguins photo places quickaccess \
+ rain screenshot slideshow snow taskbar tclock tiling uptime \
+ winlist-ng winselector wlan; do
+
+ cd $i
+ make DESTDIR=$pkgdir install
+
+# install license files
+ if [ -e $srcdir/$_svnmod-build/$i/COPYING ]; then
+ install -Dm644 $srcdir/$_svnmod-build/$i/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/$i/COPYING
+ fi
+
+ if [ -e $srcdir/$_svnmod-build/$i/COPYING-PLAIN ]; then
+ install -Dm644 $srcdir/$_svnmod-build/$i/COPYING-PLAIN \
+ $pkgdir/usr/share/licenses/$pkgname/$i/COPYING-PLAIN
+ fi
+
+ cd ..
+ done
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/e-svn/PKGBUILD b/community/e-svn/PKGBUILD
new file mode 100755
index 000000000..82098dae9
--- /dev/null
+++ b/community/e-svn/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 41234 2011-03-04 22:18:13Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=e-svn
+pkgver=57517
+pkgrel=1
+pkgdesc="Enlightenment window manager DR17 (aka e17)"
+arch=('i686' 'x86_64')
+groups=('e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('e_dbus-svn' 'edje-svn' 'efreet-svn' 'alsa-lib' 'pm-utils'
+ 'pam' 'eeze-svn')
+makedepends=('svn')
+conflicts=('e')
+provides=('e')
+backup=('etc/enlightenment/sysactions.conf')
+options=('!libtool')
+source=('e-applications.menu' 'sysactions.patch')
+sha1sums=('e08cc63cb8a188a06705b42d03e032b9fcfa7ee5'
+ '1bbe1bb1ba8c10098c3c30dc5a97734158abb2c7')
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/e"
+_svnmod="e"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ # set default suspend/hibernate commands in config file
+ patch -Np0 -i ${srcdir}/sysactions.patch
+
+ ./autogen.sh --prefix=/usr --sysconfdir=/etc --enable-pam
+ make
+}
+
+package() {
+ cd $srcdir/$_svnmod-build
+
+ make DESTDIR=$pkgdir install
+
+# install license files
+ if [ -e $srcdir/$_svnmod-build/COPYING ]; then
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+ fi
+
+ if [ -e $srcdir/$_svnmod-build/COPYING-PLAIN ]; then
+ install -Dm644 $srcdir/$_svnmod-build/COPYING-PLAIN \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING-PLAIN
+ fi
+
+ # install a default applications.menu file (mostly copy from gnome-menus)
+ install -Dm644 $srcdir/e-applications.menu \
+ $pkgdir/etc/xdg/menus/e-applications.menu
+
+ rm -r $srcdir/$_svnmod-build
+}
+
+
diff --git a/community/e-svn/e-applications.menu b/community/e-svn/e-applications.menu
new file mode 100644
index 000000000..69456c1d5
--- /dev/null
+++ b/community/e-svn/e-applications.menu
@@ -0,0 +1,154 @@
+<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+
+<Menu>
+
+ <Name>Applications</Name>
+ <Directory>X-E-Menu-Applications.directory</Directory>
+
+ <!-- Scan legacy dirs first, as later items take priority -->
+ <KDELegacyDirs/>
+ <LegacyDir>/etc/X11/applnk</LegacyDir>
+ <LegacyDir>/usr/share/gnome/apps</LegacyDir>
+
+ <!-- Read standard .directory and .desktop file locations -->
+ <DefaultAppDirs/>
+ <DefaultDirectoryDirs/>
+
+ <!-- Read in overrides and child menus from applications-merged/ -->
+ <DefaultMergeDirs/>
+
+ <!-- Accessories submenu -->
+ <Menu>
+ <Name>Accessories</Name>
+ <Directory>Utility.directory</Directory>
+ <Include>
+ <And>
+ <Category>Utility</Category>
+ <!-- Accessibility spec must have either the Utility or Settings
+ category, and we display an accessibility submenu already for
+ the ones that do not have Settings, so don't display accessibility
+ applications here -->
+ <Not><Category>Accessibility</Category></Not>
+ <Not><Category>System</Category></Not>
+ </And>
+ </Include>
+ </Menu> <!-- End Accessories -->
+
+ <!-- Accessibility submenu -->
+ <Menu>
+ <Name>Universal Access</Name>
+ <Directory>Utility-Accessibility.directory</Directory>
+ <Include>
+ <And>
+ <Category>Accessibility</Category>
+ <Not><Category>Settings</Category></Not>
+ </And>
+ </Include>
+ </Menu> <!-- End Accessibility -->
+
+ <!-- Development Tools -->
+ <Menu>
+ <Name>Development</Name>
+ <Directory>Development.directory</Directory>
+ <Include>
+ <And>
+ <Category>Development</Category>
+ </And>
+ <Filename>emacs.desktop</Filename>
+ </Include>
+ </Menu> <!-- End Development Tools -->
+
+ <!-- Education -->
+ <Menu>
+ <Name>Education</Name>
+ <Directory>Education.directory</Directory>
+ <Include>
+ <And>
+ <Category>Education</Category>
+ </And>
+ </Include>
+ </Menu> <!-- End Education -->
+
+ <!-- Games -->
+ <Menu>
+ <Name>Games</Name>
+ <Directory>Game.directory</Directory>
+ <Include>
+ <And>
+ <Category>Game</Category>
+ </And>
+ </Include>
+ </Menu> <!-- End Games -->
+
+ <!-- Graphics -->
+ <Menu>
+ <Name>Graphics</Name>
+ <Directory>Graphics.directory</Directory>
+ <Include>
+ <And>
+ <Category>Graphics</Category>
+ </And>
+ </Include>
+ </Menu> <!-- End Graphics -->
+
+ <!-- Internet -->
+ <Menu>
+ <Name>Internet</Name>
+ <Directory>Network.directory</Directory>
+ <Include>
+ <And>
+ <Category>Network</Category>
+ </And>
+ </Include>
+ </Menu> <!-- End Internet -->
+
+ <!-- Multimedia -->
+ <Menu>
+ <Name>Multimedia</Name>
+ <Directory>AudioVideo.directory</Directory>
+ <Include>
+ <And>
+ <Category>AudioVideo</Category>
+ </And>
+ </Include>
+ </Menu> <!-- End Multimedia -->
+
+ <!-- Office -->
+ <Menu>
+ <Name>Office</Name>
+ <Directory>Office.directory</Directory>
+ <Include>
+ <And>
+ <Category>Office</Category>
+ </And>
+ </Include>
+ </Menu> <!-- End Office -->
+
+ <!-- System Tools-->
+ <Menu>
+ <Name>System</Name>
+ <Directory>System-Tools.directory</Directory>
+ <Include>
+ <And>
+ <Category>System</Category>
+ <Not><Category>Settings</Category></Not>
+ </And>
+ </Include>
+ </Menu> <!-- End System Tools -->
+
+ <!-- Other -->
+ <Menu>
+ <Name>Other</Name>
+ <Directory>X-GNOME-Other.directory</Directory>
+ <OnlyUnallocated/>
+ <Include>
+ <And>
+ <Not><Category>Core</Category></Not>
+ <Not><Category>Settings</Category></Not>
+ <Not><Category>Screensaver</Category></Not>
+ </And>
+ </Include>
+ </Menu> <!-- End Other -->
+
+</Menu> <!-- End Applications -->
diff --git a/community/e-svn/sysactions.patch b/community/e-svn/sysactions.patch
new file mode 100644
index 000000000..c8333f327
--- /dev/null
+++ b/community/e-svn/sysactions.patch
@@ -0,0 +1,13 @@
+--- data/etc/sysactions.conf.bak 2011-02-25 18:25:13.210000005 +0100
++++ data/etc/sysactions.conf 2011-02-25 18:25:18.160000006 +0100
+@@ -45,8 +45,8 @@
+
+ action: halt /sbin/shutdown -h now
+ action: reboot /sbin/shutdown -r now
+-action: suspend /etc/acpi/sleep.sh force
+-action: hibernate /etc/acpi/hibernate.sh force
++action: suspend /usr/sbin/pm-suspend
++action: hibernate /usr/sbin/pm-hibernate
+
+ # on FreeBSD use this instead of the above.
+ #action suspend /usr/sbin/zzz
diff --git a/community/e_dbus-svn/PKGBUILD b/community/e_dbus-svn/PKGBUILD
new file mode 100755
index 000000000..04bd34faa
--- /dev/null
+++ b/community/e_dbus-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 41229 2011-03-04 22:17:26Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=e_dbus-svn
+pkgver=57317
+pkgrel=1
+pkgdesc="dbus abstraction layer for e17"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('ecore-svn' 'dbus-core' )
+makedepends=('svn')
+conflicts=('e_dbus')
+provides=('e_dbus')
+replaces=('e_dbus-cvs')
+options=('!libtool')
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/e_dbus"
+_svnmod="e_dbus"
+
+build() {
+ cd $srcdir
+
+ msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package(){
+ cd $srcdir/$_svnmod-build
+
+ make DESTDIR=$pkgdir install
+
+# install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/echat/PKGBUILD b/community/echat/PKGBUILD
new file mode 100644
index 000000000..ff17db8f2
--- /dev/null
+++ b/community/echat/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 7575 2010-01-08 02:33:57Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=echat
+pkgver=0.04beta1
+pkgrel=2
+pkgdesc="vypress compatible ncurses chat (can work without server)"
+arch=('i686' 'x86_64')
+url="http://echat.deep.perm.ru/"
+license=(GPL)
+depends=(ncurses)
+source=(http://echat.deep.perm.ru/files/echat-$pkgver.tar.gz)
+md5sums=('dda3891d08f04dd266858380d404af15')
+
+#
+# see also:
+# url="http://www.vypress.com/products/chat/unix/"
+# url="http://pupykins.googlepages.com/" - contains also improoved version (utf8 and some more features)
+# source=(http://www.vypress.com/ftp/clones/vyc/echat/${pkgname}-${pkgver}.tgz) - actualy not gzipped tar
+#
+
+build() {
+ cd ${startdir}/src/$pkgname-${pkgver}
+ make || return 1
+ install -D -m 0755 echat $startdir/pkg/usr/bin/echat && \
+ install -D -m 0644 doc/echat.1 $startdir/pkg/usr/share/man/man1/echat.1 && \
+ install -D -m 0644 doc/.echatrc.sample $startdir/pkg/usr/share/echat/dot.echatrc.sample
+}
diff --git a/community/ecore-svn/PKGBUILD b/community/ecore-svn/PKGBUILD
new file mode 100755
index 000000000..ffe223a9d
--- /dev/null
+++ b/community/ecore-svn/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 41205 2011-03-04 22:13:31Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=ecore-svn
+pkgver=57503
+pkgrel=1
+pkgdesc="Ecore is an abstraction layer for e17"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('libxp' 'curl' 'libxss' 'evas-svn' 'libxtst' 'libxcomposite'
+ 'libxrandr' 'libxinerama' 'libxcursor')
+makedepends=('subversion')
+conflicts=('ecore')
+provides=('ecore')
+options=('!libtool' '!emptydirs')
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/ecore"
+_svnmod="ecore"
+
+build() {
+ cd $srcdir
+
+ if [ $NOEXTRACT -eq 0 ]; then
+ msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ fi
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+ ./autogen.sh --prefix=/usr --enable-ecore-evas-opengl-x11 --enable-glib \
+ --enable-inotify --enable-openssl --disable-gnutls --enable-ecore-con
+ make
+}
+
+package(){
+ cd $srcdir/$_svnmod-build
+ make DESTDIR=$pkgdir install
+
+# install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $startdir/src/$_svnmod-build
+
+}
diff --git a/community/edje-svn/PKGBUILD b/community/edje-svn/PKGBUILD
new file mode 100755
index 000000000..0430881fc
--- /dev/null
+++ b/community/edje-svn/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 41219 2011-03-04 22:15:51Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=edje-svn
+pkgver=57412
+pkgrel=1
+pkgdesc="A graphical design and layout library based on Evas"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('ecore-svn' 'embryo-svn' 'python2' 'lua' 'shared-mime-info')
+makedepends=('svn')
+conflicts=('edje')
+provides=('edje')
+install=edje.install
+options=('!libtool')
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/edje"
+_svnmod="edje"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' utils/inkscape2edc
+
+ ./autogen.sh --prefix=/usr --enable-amalgamation
+ make
+}
+
+package(){
+ cd $srcdir/$_svnmod-build
+
+ make DESTDIR=$pkgdir install
+
+# install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/edje-svn/edje.install b/community/edje-svn/edje.install
new file mode 100644
index 000000000..8407f4576
--- /dev/null
+++ b/community/edje-svn/edje.install
@@ -0,0 +1,16 @@
+post_install() {
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+
+
+
+
diff --git a/community/eet-svn/PKGBUILD b/community/eet-svn/PKGBUILD
new file mode 100755
index 000000000..8a8dc86cf
--- /dev/null
+++ b/community/eet-svn/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 40537 2011-02-25 09:37:13Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=eet-svn
+pkgver=57246
+pkgrel=1
+pkgdesc="A data storage and compression library"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('libjpeg>=7' 'openssl' 'eina-svn')
+makedepends=('subversion')
+conflicts=('eet')
+provides=('eet')
+replaces=('eet-cvs')
+options=(!libtool)
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/eet"
+_svnmod="eet"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr --enable-openssl --disable-gnutls \
+ --enable-amalgamation
+ make
+}
+
+package(){
+ cd $srcdir/$_svnmod-build
+ make DESTDIR=$pkgdir install
+
+ # install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
+
diff --git a/community/eeze-svn/PKGBUILD b/community/eeze-svn/PKGBUILD
new file mode 100644
index 000000000..f74e198c4
--- /dev/null
+++ b/community/eeze-svn/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 14575 2010-04-05 16:42:20Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Contributor: bluebugs
+
+pkgname=eeze-svn
+pkgver=57501
+pkgrel=1
+pkgdesc="A data storage and compression library"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('ecore-svn' 'eina-svn' 'udev')
+makedepends=('subversion')
+conflicts=('eeze')
+provides=('eeze')
+options=(!libtool)
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/eeze"
+_svnmod="eeze"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package(){
+ cd $_svnmod-build
+ make DESTDIR=$pkgdir install
+
+ # install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/efreet-svn/PKGBUILD b/community/efreet-svn/PKGBUILD
new file mode 100755
index 000000000..bb595d66b
--- /dev/null
+++ b/community/efreet-svn/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 41224 2011-03-04 22:16:41Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=efreet-svn
+pkgver=57435
+pkgrel=1
+pkgdesc="freedesktop.org specifications for e17"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('ecore-svn')
+makedepends=('svn')
+conflicts=('efreet')
+provides=('efreet')
+options=('!libtool')
+source=()
+sha1sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/efreet"
+_svnmod="efreet"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr --enable-icon-cache
+ make
+}
+
+package(){
+ cd $srcdir/$_svnmod-build
+ make DESTDIR=$pkgdir install
+
+# install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+}
+
+
diff --git a/community/egoboo/PKGBUILD b/community/egoboo/PKGBUILD
new file mode 100644
index 000000000..e3d41266e
--- /dev/null
+++ b/community/egoboo/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 36333 2010-12-30 07:44:32Z lcarlier $
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arkham <arkham at archlinux dot us>
+# Contributor: rabyte <rabyte*gmail>
+# Contributor: Andres Blanc <andresblanc@gmail.com>
+
+pkgname=egoboo
+pkgver=2.8.1
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+pkgdesc="An open-source action RPG/dungeon crawling adventure with OpenGL 3D graphics"
+url="http://egoboo.sourceforge.net/"
+depends=('sdl_image' 'sdl_mixer' 'sdl_ttf' 'physfs' 'enet')
+makedepends=('mesa')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ $pkgname.png
+ $pkgname.desktop)
+md5sums=('e6f3130695d297dcd9fe74e50bd59b68'
+ '7019f17b607fd45acf0d48ade746326a'
+ 'b81e0c8f3e0b9d8640d0cfc9b6d320a8')
+
+build() {
+ cd "$srcdir/egoboo-$pkgver/src"
+
+ # fix data paths
+ sed -i -e 's#egoboo-2.x#egoboo#g' \
+ -e 's#share/games#share#g' \
+ -e 's#etc#share#g' \
+ -e 's#games#bin#g' \
+ game/platform/file_linux.c
+
+ make all
+}
+
+package() {
+ cd "$srcdir/egoboo-$pkgver"
+
+ # Patch default depth to 24 and sound
+ sed -i -e 's/\[COLOR_DEPTH\] : "32"/\[COLOR_DEPTH\] : "24"/g' \
+ -e 's/\[Z_DEPTH\] : "32"/\[Z_DEPTH\] : "24"/g' \
+ -e 's/\[OUTPUT_BUFFER_SIZE\] : "2548/\[OUTPUT_BUFFER_SIZE\] : "2048/g' \
+ setup.txt
+
+ # Copy data and fix permissions
+ install -Dm755 src/game/egoboo-2.x $pkgdir/usr/bin/egoboo
+ install -d $pkgdir/usr/share/{doc/,$pkgname}
+ cp -rf controls.txt setup.txt basicdat/ modules/ $pkgdir/usr/share/$pkgname/
+ cp -rf doc/ $pkgdir/usr/share/doc/$pkgname/
+ find $pkgdir/usr/share/$pkgname -type f -exec chmod 644 {} +
+
+ # Install icon and desktop files
+ install -Dm 644 $srcdir/$pkgname.png $pkgdir/usr/share/pixmaps/$pkgname.png
+ install -Dm 644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+}
+
diff --git a/community/egoboo/egoboo.desktop b/community/egoboo/egoboo.desktop
new file mode 100644
index 000000000..b2f2870e4
--- /dev/null
+++ b/community/egoboo/egoboo.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=Egoboo
+Exec=egoboo
+Icon=egoboo
+Type=Application
+Comment=A 3D OpenGL dungeon-crawl
+Categories=Game;AdventureGame;RolePlaying;
diff --git a/community/egoboo/egoboo.png b/community/egoboo/egoboo.png
new file mode 100644
index 000000000..984be247d
--- /dev/null
+++ b/community/egoboo/egoboo.png
Binary files differ
diff --git a/community/eiciel/PKGBUILD b/community/eiciel/PKGBUILD
new file mode 100644
index 000000000..6ed083a7f
--- /dev/null
+++ b/community/eiciel/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 33518 2010-11-25 04:43:14Z foutrelis $
+# Contributor: Roman Kyrylych <roman@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=eiciel
+pkgver=0.9.8
+pkgrel=2
+pkgdesc="GNOME file ACL editor"
+arch=('i686' 'x86_64')
+url="http://rofi.roger-ferrer.org/eiciel/"
+license=('GPL')
+depends=('acl' 'gtkmm' 'nautilus' 'desktop-file-utils' 'gnome-vfs' 'libgnome'
+ 'libgnomeui')
+options=('!libtool')
+install=eiciel.install
+source=(http://rofi.roger-ferrer.org/eiciel/download/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('5e515a6f92cff0824a8a93f38c553c0b')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/eiciel/eiciel.install b/community/eiciel/eiciel.install
new file mode 100644
index 000000000..a203bc01d
--- /dev/null
+++ b/community/eiciel/eiciel.install
@@ -0,0 +1,16 @@
+post_install() {
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
diff --git a/community/eina-svn/PKGBUILD b/community/eina-svn/PKGBUILD
new file mode 100755
index 000000000..92c574303
--- /dev/null
+++ b/community/eina-svn/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 41191 2011-03-04 22:11:05Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=eina-svn
+pkgver=57387
+pkgrel=1
+pkgdesc="E17 file chunk reading/writing library"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('LGPL2')
+depends=('glibc')
+makedepends=('subversion')
+conflicts=('eina')
+provides=('eina')
+options=('!libtool' '!emptydirs')
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/eina"
+_svnmod="eina"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr --enable-amalgamation
+ make
+}
+
+package(){
+ cd $srcdir/$_svnmod-build
+ make DESTDIR=$pkgdir install
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/ejabberd/PKGBUILD b/community/ejabberd/PKGBUILD
new file mode 100644
index 000000000..eada33e78
--- /dev/null
+++ b/community/ejabberd/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 44013 2011-04-01 16:47:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jeff 'codemac' Mickey <jeff@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ejabberd
+pkgver=2.1.6
+pkgrel=2
+pkgdesc="An erlang jabber server"
+arch=(i686 x86_64)
+url="http://www.ejabberd.im/"
+license=("GPL")
+depends=('expat' 'openssl' 'zlib' 'erlang' 'pam')
+makedepends=()
+backup=(etc/ejabberd/ejabberd.cfg \
+ etc/logrotate.d/ejabberd)
+install=ejabberd.install
+source=(http://www.process-one.net/downloads/ejabberd/${pkgver/_/-}/ejabberd-${pkgver}.tar.gz \
+ ejabberd \
+ ejabberd.logrotate)
+md5sums=('f5a41edee2204c414150075331ced506'
+ 'd2ed73bc83b7f0e423a3fd7fdf1b43d6'
+ 'f97c8a96160f30e0aecc9526c12e6606')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}/src
+
+ sed -i "s|EJABBERDDIR = \$(DESTDIR)@prefix@/var/lib/ejabberd|EJABBERDDIR = \$(DESTDIR)@prefix@/usr/lib/ejabberd|g" ./Makefile.in
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-pam --enable-odbc
+ make
+ make DESTDIR=${pkgdir} install
+
+ install -D -m 0755 ${srcdir}/ejabberd ${pkgdir}/etc/rc.d/ejabberd
+ install -d ${pkgdir}/var/spool/ejabberd
+ install -d ${pkgdir}/var/lib/ejabberd
+
+ install -D -m0644 ${srcdir}/ejabberd.logrotate ${pkgdir}/etc/logrotate.d/ejabberd
+ chmod ug+r ${pkgdir}/etc/ejabberd/*
+ rm -rf $pkgdir/var/lock
+}
diff --git a/community/ejabberd/ejabberd b/community/ejabberd/ejabberd
new file mode 100644
index 000000000..3f5ee5637
--- /dev/null
+++ b/community/ejabberd/ejabberd
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+cd /
+
+get_pid() {
+ # get port from 'epmd -names', then get pid from 'netstat -tlnp'
+ PORT=`epmd -names | grep ejabberd | cut -f5 -d\ `
+ [ -z "$PORT" ] && { echo '' ; return 0; }
+ PID=`netstat -tlnp | grep $PORT | grep -oE '[[:digit:]]+/'`
+ [ -z "$PID" ] && { echo '' ; return 0; }
+ echo ${PID%/}
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting ejabber daemon"
+
+ [ -d /var/lock/ejabberdctl ] || mkdir -p /var/lock/ejabberdctl
+ [ -f /var/run/ejabber.pid ] && rm -f /var/run/ejabber.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ su ejabberd -s /bin/bash - -c 'erl -pa /usr/lib/ejabberd/ebin -sname ejabberd -s ejabberd -ejabberd config \"/etc/ejabberd/ejabberd.cfg\" log_path \"/var/log/ejabberd/ejabberd.log\" -sasl sasl_error_logger \{file,\"/var/log/ejabberd/sasl.log\"\} -mnesia dir \"/var/spool/ejabberd\" -detached -kernel inetrc \"/etc/ejabberd/inetrc\"'
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/ejabberd.pid
+ add_daemon ejabberd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping ejabber daemon"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && su ejabberd -s /bin/bash - -c "kill $PID" &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ejabberd.pid &> /dev/null
+ rm_daemon ejabberd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ejabberd/ejabberd.install b/community/ejabberd/ejabberd.install
new file mode 100644
index 000000000..4f9fa0a8f
--- /dev/null
+++ b/community/ejabberd/ejabberd.install
@@ -0,0 +1,25 @@
+post_install() {
+ groupadd jabber
+ useradd -G jabber -d /var/lib/ejabberd ejabberd
+ chown -R ejabberd.jabber /var/log/ejabberd
+ chown -R ejabberd.jabber /var/spool/ejabberd
+ chown -R ejabberd.jabber /var/lib/ejabberd
+ chown root:ejabberd /usr/lib/ejabberd/priv/bin/epam
+ chown root:ejabberd /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberdctl.cfg /etc/ejabberd
+ chmod 4750 /usr/lib/ejabberd/priv/bin/epam
+}
+
+post_upgrade() {
+ chown -R ejabberd.jabber /var/log/ejabberd
+ chown -R ejabberd.jabber /var/spool/ejabberd
+ chown -R ejabberd.jabber /var/lib/ejabberd
+ chown root:ejabberd /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberdctl.cfg /etc/ejabberd
+ chown root:ejabberd /usr/lib/ejabberd/priv/bin/epam
+ chmod 4750 /usr/lib/ejabberd/priv/bin/epam
+}
+
+post_remove() {
+ userdel ejabberd
+ groupdel jabber
+}
+
diff --git a/community/ejabberd/ejabberd.logrotate b/community/ejabberd/ejabberd.logrotate
new file mode 100644
index 000000000..03069078a
--- /dev/null
+++ b/community/ejabberd/ejabberd.logrotate
@@ -0,0 +1,12 @@
+/var/log/ejabberd/ejabberd.log {
+ weekly
+ missingok
+ rotate 10
+ compress
+ delaycompress
+ ifempty
+ nomail
+ sharedscripts
+ postrotate ejabberdctl --node ejabberd reopen-log > /dev/null
+ endscript
+}
diff --git a/community/ekg/ChangeLog b/community/ekg/ChangeLog
new file mode 100644
index 000000000..717d49b5d
--- /dev/null
+++ b/community/ekg/ChangeLog
@@ -0,0 +1,5 @@
+2009-03-16 Mateusz Herych <heniekk@gmail.com>
+* Rebuild against python 2.6
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/ekg/PKGBUILD b/community/ekg/PKGBUILD
new file mode 100644
index 000000000..5052fbe86
--- /dev/null
+++ b/community/ekg/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 26474 2010-09-15 21:57:57Z schuay $
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+
+pkgname=ekg
+pkgver=1.7
+pkgrel=6
+pkgdesc="A text-mode Gadu-Gadu client"
+arch=('i686' 'x86_64')
+url="http://ekg.chmurka.net/"
+license=('GPL')
+depends=('libjpeg' 'aspell' 'python2' 'giflib')
+source=(http://ekg.chmurka.net/$pkgname-$pkgver.tar.gz)
+md5sums=('2aa92b56517fdf09d75519a105772b74')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's#gg%s#ekg%s#' src/ekg.c
+ ./configure --prefix=/usr --with-pthread --enable-aspell --with-python
+ make
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/include $pkgdir/usr/lib
+}
diff --git a/community/ekg2/PKGBUILD b/community/ekg2/PKGBUILD
new file mode 100644
index 000000000..d1101f498
--- /dev/null
+++ b/community/ekg2/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 39770 2011-02-16 12:06:58Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=ekg2
+pkgver=0.3.0
+pkgrel=1
+pkgdesc="ncurses based Jabber, Gadu-Gadu, Tlen and IRC client"
+arch=('i686' 'x86_64')
+url="http://ekg2.org/"
+license=('GPL')
+depends=('aspell' 'libjpeg' 'python2' 'libgadu' 'gnutls' 'gpm' 'libidn' 'giflib' 'gpgme')
+optdepends=( 'xosd: for xosd support'
+ 'sqlite3: sqlite support'
+ 'gtk2: gtk support')
+provides=('ekg2-unicode')
+source=(http://pl.ekg2.org/ekg2-$pkgver.tar.gz)
+md5sums=('652e492fcf72281a42c3e5960347516e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's|ncursesw/ncurses.h|ncurses.h|g' configure plugins/ncurses/ecurses.h
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-libgadu \
+ --with-xosd \
+ --enable-unicode \
+ --enable-shared \
+ --without-gpg
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/lib/perl5/core_perl/perllocal.pod
+ mv $pkgdir/usr/libexec/ioctld $pkgdir/usr/lib/ekg2/ioctld
+ rm -rf $pkgdir/usr/libexec
+ chmod -R 755 $pkgdir/usr/lib/perl5
+}
diff --git a/community/electricsheep/ChangeLog b/community/electricsheep/ChangeLog
new file mode 100644
index 000000000..516a16a97
--- /dev/null
+++ b/community/electricsheep/ChangeLog
@@ -0,0 +1,30 @@
+2010-09-26 Eric Belanger <eric@archlinux.org>
+
+ * electricsheep 2.7b12-3
+ * Rebuilt against new ffmpeg to improve performance
+
+2009-10-17 Eric Belanger <eric@archlinux.org>
+
+ * electricsheep 2.7b12-2
+ * Added xscreensaver config
+ * Updated url
+
+2009-07-09 Eric Belanger <eric@archlinux.org>
+
+ * electricsheep 2.7b12-1
+ * Upstream update
+ * Switched to svn snapshot as source tarballs are no longer provided
+ * Updated url
+ * Splitted flam3 in a separate package
+ * Updated depends
+ * Removed install scriptlet
+
+2008-09-20 Eric Belanger <eric@archlinux.org>
+
+ * electricsheep 2.6.8-4
+ * Updated for KDE 4 (close FS#11378)
+ * Added xscreensaver optdepends to cleanup post-install messages
+ * FHS man pages
+ * Fixed build issue
+ * Added xscreensaver makedepends and config
+ * Added ChangeLog
diff --git a/community/electricsheep/PKGBUILD b/community/electricsheep/PKGBUILD
new file mode 100644
index 000000000..dd4b57014
--- /dev/null
+++ b/community/electricsheep/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 27614 2010-09-26 06:47:20Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=electricsheep
+pkgver=2.7b12
+pkgrel=3
+pkgdesc="A screensaver that realize the collective dream of sleeping computers from all over the internet"
+arch=('i686' 'x86_64')
+url="http://community.electricsheep.org/"
+license=('GPL')
+depends=('curl' 'expat' 'flam3' 'ffmpeg' 'mplayer' 'libglade')
+makedepends=('xscreensaver')
+optdepends=('xscreensaver: to use electricsheep with xscreensaver')
+changelog=ChangeLog
+source=(ftp://ftp.archlinux.org/other/electricsheep/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('9c66691538941593ca9442e087b183d1')
+sha1sums=('fd1c307912905ba456189efbb546ef0fe336fa32')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}/usr/share/applications/screensavers"
+ install -d "${pkgdir}/usr/lib/gnome-screensaver/gnome-screensaver"
+ make DESTDIR="${pkgdir}" GNOME_SCREENSAVER_DATADIR="${pkgdir}/usr/share/applications/screensavers" \
+ GNOME_SCREENSAVER_PRIVEXEDIR="${pkgdir}/usr/lib/gnome-screensaver/gnome-screensaver" install
+ install -D -m644 electricsheep.desktop.kde "${pkgdir}/usr/share/kde4/services/ScreenSavers/electricsheep.desktop"
+ install -D -m644 electricsheep.xml "${pkgdir}/usr/share/xscreensaver/config/electricsheep.xml"
+ install -D -m755 electricsheep-saver "${pkgdir}/usr/bin/electricsheep-saver"
+}
diff --git a/community/elementary-svn/PKGBUILD b/community/elementary-svn/PKGBUILD
new file mode 100644
index 000000000..8b106b94f
--- /dev/null
+++ b/community/elementary-svn/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 14575 2010-04-05 16:42:20Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=elementary-svn
+pkgver=57515
+pkgrel=1
+pkgdesc="Enlightenment's basic widget set"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('ecore-svn' 'eina-svn' 'evas-svn' 'edje-svn' 'e_dbus-svn'
+ 'efreet-svn')
+makedepends=('subversion')
+conflicts=('elementary')
+provides=('elementary')
+options=(!libtool)
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/elementary"
+_svnmod="elementary"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package(){
+ cd $_svnmod-build
+ make DESTDIR=$pkgdir install
+
+ # install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/elinks/PKGBUILD b/community/elinks/PKGBUILD
new file mode 100644
index 000000000..3754bea1b
--- /dev/null
+++ b/community/elinks/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 40826 2011-02-28 13:59:43Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=elinks
+pkgver=0.13
+pkgrel=4
+pkgdesc="An advanced and well-established feature-rich text mode web browser."
+arch=("i686" "x86_64")
+url="http://elinks.or.cz"
+license=('GPL')
+depends=('bzip2' 'expat>=2.0' 'gpm>=1.20.4' 'openssl' 'lua>=5.1.1' 'libidn' 'spidermonkey>=1.7.0'
+ 'gc' 'tre' 'smbclient')
+_commit="dfc666dd754491a9c986fbd19179b354acde30b9"
+#source=("elinks-$pkgver-${_commit}.tar.gz::http://repo.or.cz/w/elinks.git/snapshot/${_commit}.tar.gz"
+source=("http://arch.p5n.pp.ru/~sergej/dl/elinks-$pkgver-${_commit}.tar.gz"
+ "${pkgname}.desktop")
+md5sums=('c41d66285654d72c197a99973393bf06'
+ 'ef70f6bb7457799a979fb201615369e6')
+
+build() {
+ cd elinks || cd `find $srcdir -maxdepth 1 -type d -name elinks-$pkgver\*`
+
+ [ -x configure ] || sh autogen.sh
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --sysconfdir=/etc \
+ --enable-smb --without-x --enable-cgi \
+ --enable-leds --enable-256-colors --enable-html-highlight \
+ --with-zlib
+ make
+ make DESTDIR=${pkgdir} install
+ rm -f ${pkgdir}/usr/share/locale/locale.alias
+
+ install -D -m644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/elinks/elinks.desktop b/community/elinks/elinks.desktop
new file mode 100644
index 000000000..e27adf912
--- /dev/null
+++ b/community/elinks/elinks.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Categories=Application;Network;
+Comment=advanced and well-established feature-rich text mode web (HTTP/FTP/..) browser
+Comment[en_GB]=advanced and well-established feature-rich text mode web (HTTP/FTP/..) browser
+Exec=elinks %u
+GenericName=Full-Featured Text WWW Browser
+GenericName[en_GB]=Full-Featured Text WWW Browser
+Icon=
+MimeType=text/html
+Name=Elinks
+Name[en_GB]=Elinks
+Path=
+StartupNotify=true
+Terminal=true
+TerminalOptions=
+Type=Application
+X-DCOP-ServiceType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/community/emacs-nox/PKGBUILD b/community/emacs-nox/PKGBUILD
new file mode 100644
index 000000000..56333d367
--- /dev/null
+++ b/community/emacs-nox/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 43323 2011-03-24 20:49:58Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Chris Brannon <cmbrannon@cox.net>
+
+pkgname=emacs-nox
+pkgver=23.3
+pkgrel=2
+pkgdesc="The Emacs Editor, without X11 support"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/emacs/emacs.html"
+license=('GPL')
+replaces=('cedet')
+depends=('dbus-core' 'ncurses' 'perl')
+provides=('emacs')
+conflicts=('emacs' 'emacs-cvs')
+options=('docs')
+changelog=$pkgname.changelog
+install=$pkgname.install
+source=(ftp://ftp.gnu.org/gnu/emacs/emacs-${pkgver}.tar.gz)
+sha256sums=('0038248a4299708a8717f2f5ba48f1c0f15e95ffc5fcfb08cbe5c3146757e34c')
+
+build() {
+ cd ${srcdir}/emacs-$pkgver
+
+#gcc 4.5 Workaround: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43904
+ CFLAGS="${CFLAGS} -fno-optimize-sibling-calls"\
+ ./configure --prefix=/usr --without-x --without-sound
+
+#we don't want to use /usr/libexec
+ sed -i "s|\"/usr/libexec/emacs.*$|\"/usr/lib/emacs/$pkgver\"|g" src/epaths.h
+# mv newepaths.h src/epaths.h || return 1
+
+ make libexecdir=/usr/lib archlibdir=/usr/lib/emacs/${pkgver}
+ make prefix=${pkgdir}/usr libexecdir=${pkgdir}/usr/lib \
+ archlibdir=${pkgdir}/usr/lib/emacs/${pkgver} install
+
+#remove conflict with ctags package
+ mv ${pkgdir}/usr/bin/{ctags,ctags.emacs}
+ mv ${pkgdir}/usr/bin/{etags,etags.emacs}
+ mv ${pkgdir}/usr/share/man/man1/{etags.1,etags.emacs.1}
+ mv ${pkgdir}/usr/share/man/man1/{ctags.1,ctags.emacs.1}
+#fix all the 777 perms on directories
+ find ${pkgdir}/usr/share/emacs/$pkgver -type d -exec chmod 755 {} \;
+#fix user/root permissions on usr/share files
+ find ${pkgdir}/usr/share/emacs/$pkgver -exec chown root.root {} \;
+#remove empty files
+ rm -rf ${pkgdir}/usr/var
+#remove .desktop file and icons
+ rm -rf ${pkgdir}/usr/share/{applications,icons}
+
+#get rid of the package's info directory, install-info adds entries for us at install-time
+ rm ${pkgdir}/usr/share/info/dir
+ gzip -9nf ${pkgdir}/usr/share/info/*
+}
diff --git a/community/emacs-nox/emacs-nox.changelog b/community/emacs-nox/emacs-nox.changelog
new file mode 100644
index 000000000..1ed424b05
--- /dev/null
+++ b/community/emacs-nox/emacs-nox.changelog
@@ -0,0 +1,20 @@
+2011-03-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * emacs-nox 23.3-1
+
+2010-05-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 23.2
+
+2010-03-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * 23.1-2 - fix for FS#18688 - [emacs-nox] compiled with SSE2 instructions
+
+2009-12-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 23.1
+
+2008-11-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * New PKGBUILD/install method provided by Chris Brannon <cmbrannon@cox.net>
+ * => Added an install script
+ * => Info files are now installed using install-info
+
+2008-09-08 Jaroslav Lichtblau <tu@dragonlord.cz>
+ * Package moved to [community]
+ * Update to major release 22.3
diff --git a/community/emacs-nox/emacs-nox.install b/community/emacs-nox/emacs-nox.install
new file mode 100644
index 000000000..ea8630090
--- /dev/null
+++ b/community/emacs-nox/emacs-nox.install
@@ -0,0 +1,21 @@
+info_dir=/usr/share/info
+info_files=(ada-mode autotype calc ccmode cl dired-x ebrowse
+ediff efaq eintr elisp emacs emacs-mime erc eshell eudc flymake forms
+gnus idlwave info message mh-e newsticker org pcl-cvs pgg rcirc reftex
+sc ses sieve smtpmail speedbar tramp url vip viper widget woman)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/community/embryo-svn/PKGBUILD b/community/embryo-svn/PKGBUILD
new file mode 100755
index 000000000..0bb1463a5
--- /dev/null
+++ b/community/embryo-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 40593 2011-02-25 15:01:57Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=embryo-svn
+pkgver=57246
+pkgrel=1
+pkgdesc="implementation of a C like scripting language for e17"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('glibc')
+makedepends=('svn')
+conflicts=('embryo')
+provides=('embryo')
+replaces=('embryo-cvs')
+options=('!libtool')
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/embryo"
+_svnmod="embryo"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr
+
+ make
+}
+
+package(){
+ cd $srcdir/$_svnmod-build
+ make DESTDIR=$pkgdir install
+
+# install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/emerald/PKGBUILD b/community/emerald/PKGBUILD
new file mode 100644
index 000000000..a39ce5039
--- /dev/null
+++ b/community/emerald/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 5334 2009-11-07 22:44:57Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=emerald
+pkgver=0.8.4
+pkgrel=2
+pkgdesc="Emerald window decorator"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('compiz-core>=0.8.4' 'libwnck' 'gtk2' 'libxres' 'shared-mime-info' 'xdg-utils')
+makedepends=('intltool' 'pkgconfig' 'gettext')
+groups=('compiz-fusion' 'compiz-fusion-kde' 'compiz-fusion-gtk')
+options=(!libtool)
+conflicts=('emerald-git')
+install=emerald.install
+source=(http://releases.compiz-fusion.org/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e92fbe8252ea393206d98ed6ae9af4ec')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/emerald/emerald.install b/community/emerald/emerald.install
new file mode 100644
index 000000000..6ed258dd4
--- /dev/null
+++ b/community/emerald/emerald.install
@@ -0,0 +1,14 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-mime-database usr/share/mime
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+ update-mime-database usr/share/mime
+}
diff --git a/community/emesene/PKGBUILD b/community/emesene/PKGBUILD
new file mode 100755
index 000000000..38a900af3
--- /dev/null
+++ b/community/emesene/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Claudio Riva <firetux83@gmail.com>
+
+pkgname=emesene
+pkgver=1.6.3
+pkgrel=4
+pkgdesc="A pygtk MSN Messenger client"
+url="http://www.emesene.org/"
+license=('custom:PSF' 'GPL' 'LGPL2.1')
+arch=('i686' 'x86_64') # libmimic is hardcoded, so no 'any' package
+depends=('python2' 'pygtk' 'hicolor-icon-theme' 'xdg-utils')
+optdepends=('gnome-python-extras: spell-check plugin'
+ 'gtkspell: spell-check plugin'
+ 'aspell: spell-check plugin (also need aspell dictionary)'
+ 'gstreamer0.10-python: webcam support'
+ 'gstreamer0.10-good-plugins: webcam support')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-$pkgver.tar.gz \
+ 'emesene.run' 'setup.patch')
+install=emesene.install
+options=('!libtool')
+sha1sums=('c4759efe180c8e1589bd966c6b84106aa7cd356e'
+ '46dcc89d089c0356d121356aa2ffff45e4468138'
+ '0195898a6cb609f4ad736e0687bf76641f6db537')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' Controller.py
+
+ # enable installing in setup.py
+ patch -Np0 -i ${srcdir}/setup.patch
+
+ # install license files
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/emesene/COPYING
+ install -Dm644 PSF ${pkgdir}/usr/share/licenses/emesene/PSF
+
+ # install files
+ python2 setup.py install --prefix=${pkgdir}/usr
+
+ # use /usr/share/emesene instead of /usr/lib/python2.5/site-packages
+ mv -f ${pkgdir}/usr/lib/python2.7/site-packages $pkgdir/usr/share/emesene
+ rm -rf ${pkgdir}/usr/lib
+
+ # remove old executable and use our own because we use /usr/share/emesene
+ rm ${pkgdir}/usr/bin/emesene
+ install -Dm755 ${srcdir}/emesene.run ${pkgdir}/usr/bin/emesene
+}
diff --git a/community/emesene/emesene.install b/community/emesene/emesene.install
new file mode 100644
index 000000000..309ea10a5
--- /dev/null
+++ b/community/emesene/emesene.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/community/emesene/emesene.run b/community/emesene/emesene.run
new file mode 100644
index 000000000..35d9dbfa3
--- /dev/null
+++ b/community/emesene/emesene.run
@@ -0,0 +1,3 @@
+#!/bin/bash
+python2 /usr/share/emesene/Controller.py $@
+
diff --git a/community/emesene/setup.patch b/community/emesene/setup.patch
new file mode 100644
index 000000000..858b7f928
--- /dev/null
+++ b/community/emesene/setup.patch
@@ -0,0 +1,20 @@
+--- setup.py.orig 2010-05-03 11:02:53.551508139 +0200
++++ setup.py 2010-05-03 11:03:09.681918067 +0200
+@@ -6,17 +6,6 @@
+ import sys
+
+ if os.name == 'posix':
+- for arg in sys.argv:
+- if arg == 'install':
+- print 'Hello.\nYou are trying to do a system-wide install of emesene '\
+- 'using this script, which is a very bad thing to do.\n'\
+- 'Seriously, you do NOT want to do this, since it can break '\
+- 'other python apps, and emesene too!\n'\
+- 'Follow my advice: just run the \"emesene\" script that is '\
+- 'in this very same directory and you\'re done. emesene is running '\
+- 'and your system is safe. It\'s a win-win, don\'t you think?\n'\
+- 'Thanks for trying emesene.'
+- quit()
+
+ # From apport's setup.py
+ mo_files = []
diff --git a/community/emprint-svn/PKGBUILD b/community/emprint-svn/PKGBUILD
new file mode 100755
index 000000000..8eca8df79
--- /dev/null
+++ b/community/emprint-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 41239 2011-03-04 22:20:13Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=emprint-svn
+pkgver=57490
+pkgrel=1
+pkgdesc="screenshot module for e17"
+arch=('i686' 'x86_64')
+groups=('e17-extra-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('edje-svn' 'imlib2')
+makedepends=('svn')
+conflicts=('emprint')
+provides=('emprint')
+replaces=('emprint-cvs')
+options=('!libtool')
+source=()
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/emprint"
+_svnmod="emprint"
+
+build() {
+ cd $srcdir
+
+ msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$_svnmod-build
+
+ make DESTDIR=$pkgdir install
+
+# install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/encfs/PKGBUILD b/community/encfs/PKGBUILD
new file mode 100644
index 000000000..48cde9db3
--- /dev/null
+++ b/community/encfs/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 40979 2011-03-02 23:44:42Z tdziedzic $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Sven Kauber, <celeon@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=encfs
+pkgver=1.7.4
+pkgrel=3
+pkgdesc='Encrypted filesystem in user-space'
+arch=('i686' 'x86_64')
+url='http://www.arg0.net/encfs'
+license=('GPL')
+depends=('rlog' 'openssl' 'fuse' 'boost-libs')
+makedepends=('boost')
+options=('!libtool')
+source=("http://encfs.googlecode.com/files/${pkgname}-${pkgver}.tgz")
+md5sums=('ac90cc10b2e9fc7e72765de88321d617')
+
+build(){
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/enet/PKGBUILD b/community/enet/PKGBUILD
new file mode 100644
index 000000000..212fa4543
--- /dev/null
+++ b/community/enet/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 42151 2011-03-14 16:17:27Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Bj?indeijer <bjorn@lindeijer.nl>
+pkgname=enet
+pkgver=1.3.1
+pkgrel=1
+pkgdesc='A relatively thin, simple and robust network communication layer on top of UDP.'
+arch=('i686' 'x86_64')
+url='http://enet.bespin.org/'
+license=('custom')
+source=("http://enet.bespin.org/download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('d31adbd50924fe39aab3c23308f58959')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ CFLAGS="-fPIC" ./configure --prefix=/usr
+ make
+ gcc -Wl,-soname,libenet.so.2 -shared -o libenet.so.2 *.o
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr install
+ install -m 755 libenet.so.2 ${pkgdir}/usr/lib
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/enigma/PKGBUILD b/community/enigma/PKGBUILD
new file mode 100644
index 000000000..cd93db215
--- /dev/null
+++ b/community/enigma/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 9152 2008-08-17 04:18:00Z allan $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jason Chu <jason@archlinux.org>
+
+pkgname=enigma
+pkgver=1.04
+pkgrel=2
+pkgdesc=" Enigma is a puzzle game involving falling blocks"
+arch=('i686' 'x86_64')
+url="http://www.chiark.greenend.org.uk/~sgtatham/enigma/"
+license=('custom')
+depends=('ncurses')
+source=(http://www.chiark.greenend.org.uk/~sgtatham/enigma/$pkgname-$pkgver.tar.gz)
+md5sums=('a54ee9ae40dae781560a3c2b1ce8f45d')
+
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --localstatedir=/var
+ sed -i "s/root\.games/root.root/" Makefile
+ mkdir -p $startdir/pkg/usr/bin
+ make || return 1
+ make prefix=$startdir/pkg/usr localstatedir=$startdir/pkg/var install
+ install -Dm644 LICENCE ${pkgdir}/usr/share/licenses/enigma/license
+}
diff --git a/community/enter/PKGBUILD b/community/enter/PKGBUILD
new file mode 100644
index 000000000..e79442e48
--- /dev/null
+++ b/community/enter/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 7949 2010-01-12 22:33:43Z dgriffiths $
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=enter
+pkgver=0.0.9
+pkgrel=2
+pkgdesc="Enter is a lightweight graphical login manager for X."
+arch=('i686' 'x86_64')
+url="http://enter.sf.net"
+license=('GPL')
+depends=('libxft' 'imlib2' 'xorg-server')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('47a77ae57e667f887f856c0a126d667a')
+sha1sums=('f41c31229914bd22722f5d9e6aefacf65e8c41c2')
+
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc CFLAGS="$CFLAGS -lcrypt"
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/epdfview/0001-r329.patch b/community/epdfview/0001-r329.patch
new file mode 100644
index 000000000..ae6e4a3a1
--- /dev/null
+++ b/community/epdfview/0001-r329.patch
@@ -0,0 +1,79 @@
+From dc6c25e8f1a7a3845fa7d14b9dfbd22deb9dd6ef Mon Sep 17 00:00:00 2001
+From: jordi <jordi@cb4bfb15-1111-0410-82e2-95233c8f1c7e>
+Date: Fri, 20 Mar 2009 08:06:32 +0000
+Subject: [PATCH 1/3] I had to change the return valud of MainView's scroll-event handler, since Gtk+ expects a gboolean that tells whether to propagate the event. Since we didn't return any value, depending on the compilation flags the mouse wheel didn't work at all.
+
+This closes #118.
+
+git-svn-id: svn://svn.emma-soft.com/epdfview@329 cb4bfb15-1111-0410-82e2-95233c8f1c7e
+---
+ trunk/src/gtk/MainView.cxx | 21 ++++++++++++++-------
+ trunk/src/gtk/PageView.cxx | 7 -------
+ 2 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/trunk/src/gtk/MainView.cxx b/trunk/src/gtk/MainView.cxx
+index b983bff..4a52cd3 100644
+--- a/trunk/src/gtk/MainView.cxx
++++ b/trunk/src/gtk/MainView.cxx
+@@ -77,7 +77,7 @@ static void main_window_zoom_in_cb (GtkWidget *, gpointer);
+ static void main_window_zoom_out_cb (GtkWidget *, gpointer);
+ static void main_window_zoom_width_cb (GtkToggleAction *, gpointer);
+ static void main_window_set_page_mode (GtkRadioAction *, GtkRadioAction *, gpointer);
+-static void main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data);
++static gboolean main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data);
+
+ #if defined (HAVE_CUPS)
+ static void main_window_print_cb (GtkWidget *, gpointer);
+@@ -1479,18 +1479,25 @@ main_window_set_page_mode (GtkRadioAction *action, GtkRadioAction *current, gpoi
+ pter->setPageMode (mode);
+ }
+
+-void
++gboolean
+ main_window_page_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data)
+ {
+ g_assert ( NULL != data && "The data parameter is NULL.");
+
+ MainPter *pter = (MainPter *)data;
+ // Only zoom when the CTRL-Button is down...
+- if ( !(event->state & GDK_CONTROL_MASK) ) return;
+- if ( event->direction == GDK_SCROLL_UP ) {
+- pter->zoomInActivated ();
+- } else if ( event->direction == GDK_SCROLL_DOWN ) {
+- pter->zoomOutActivated ();
++ if ( GDK_CONTROL_MASK == (event->state & GDK_CONTROL_MASK) )
++ {
++ if ( event->direction == GDK_SCROLL_UP )
++ {
++ pter->zoomInActivated ();
++ }
++ else if ( event->direction == GDK_SCROLL_DOWN )
++ {
++ pter->zoomOutActivated ();
++ }
++ return TRUE;
+ }
++ return FALSE;
+ }
+
+diff --git a/trunk/src/gtk/PageView.cxx b/trunk/src/gtk/PageView.cxx
+index 0546561..adaa823 100644
+--- a/trunk/src/gtk/PageView.cxx
++++ b/trunk/src/gtk/PageView.cxx
+@@ -527,13 +527,6 @@ page_view_scrolled_cb (GtkWidget *widget, GdkEventScroll *event, gpointer data)
+ {
+ g_assert ( NULL != data && "The data parameter is NULL.");
+
+- // don't scroll when the CRTL-Button is down, because then the page should
+- // actually be zoomed and not scrolled. Zooming is handelt by the MainView
+- // class.
+- if ( event->state & GDK_CONTROL_MASK )
+- {
+- return FALSE;
+- }
+ PagePter *pter = (PagePter *)data;
+ GtkAdjustment *adjustment =
+ gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (widget));
+--
+1.7.4
+
diff --git a/community/epdfview/0002-r354.patch b/community/epdfview/0002-r354.patch
new file mode 100644
index 000000000..771b93a01
--- /dev/null
+++ b/community/epdfview/0002-r354.patch
@@ -0,0 +1,77 @@
+From d8d3dac5fc3fe519b443d22f74258af4aaf48d0c Mon Sep 17 00:00:00 2001
+From: jordi <jordi@cb4bfb15-1111-0410-82e2-95233c8f1c7e>
+Date: Mon, 11 Oct 2010 15:53:47 +0000
+Subject: [PATCH 2/3] Added support for poppler's API changes in 0.15.0 by Michal Schmidt.
+
+git-svn-id: svn://svn.emma-soft.com/epdfview@354 cb4bfb15-1111-0410-82e2-95233c8f1c7e
+---
+ trunk/configure.ac | 16 ++++++++++------
+ trunk/src/PDFDocument.cxx | 12 +++++++++++-
+ 2 files changed, 21 insertions(+), 7 deletions(-)
+
+diff --git a/trunk/configure.ac b/trunk/configure.ac
+index 7ce0ddc..6cbd0e2 100644
+--- a/trunk/configure.ac
++++ b/trunk/configure.ac
+@@ -40,18 +40,22 @@ PKG_CHECK_MODULES([POPPLER], [poppler-glib >= $POPPLER_REQUIRED gdk-2.0 >= $GTK2
+ AC_SUBST([POPPLER_CFLAGS])
+ AC_SUBST([POPPLER_LIBS])
+ dnl Check if we have poppler version 0.5.2 or higher.
+-PKG_CHECK_EXISTS([poppler-glib >= 0.5.2], [have_poppler_052=yes])
+-if test "x$have_poppler_052" = "xyes"; then
++PKG_CHECK_EXISTS([poppler-glib >= 0.5.2], [have_poppler_0_5_2=yes])
++if test "x$have_poppler_0_5_2" = "xyes"; then
+ AC_DEFINE([HAVE_POPPLER_0_5_2], [1], [Define to 1 if you have Poppler version 0.5.2 or higher.])
+ fi
+-PKG_CHECK_EXISTS([poppler-glib >= 0.6], [have_poppler_060=yes])
+-if test "x$have_poppler_060" = "xyes"; then
++PKG_CHECK_EXISTS([poppler-glib >= 0.6], [have_poppler_0_6_0=yes])
++if test "x$have_poppler_0_6_0" = "xyes"; then
+ AC_DEFINE([HAVE_POPPLER_0_6_0], [1], [Define to 1 if you have Poppler version 0.6.0 or higher.])
+ fi
+-PKG_CHECK_EXISTS([poppler-glib >= 0.8], [have_poppler_080=yes])
+-if test "x$have_poppler_080" = "xyes"; then
++PKG_CHECK_EXISTS([poppler-glib >= 0.8], [have_poppler_0_8_0=yes])
++if test "x$have_poppler_0_8_0" = "xyes"; then
+ AC_DEFINE([HAVE_POPPLER_0_8_0], [1], [Define to 1 if you have Poppler version 0.8.0 or higher.])
+ fi
++PKG_CHECK_EXISTS([poppler-glib >= 0.15], [have_poppler_0_15_0=yes])
++if test "x$have_poppler_0_15_0" = "xyes"; then
++ AC_DEFINE([HAVE_POPPLER_0_15_0], [1], [Define to 1 if you have Poppler version 0.15.0 or higher.])
++fi
+
+ EPDFVIEW_PATH_CUPS([CUPS], [have_cups=yes])
+ AM_CONDITIONAL(cups_printing, test "x$have_cups" = "xyes")
+diff --git a/trunk/src/PDFDocument.cxx b/trunk/src/PDFDocument.cxx
+index 6567e9b..a590a20 100644
+--- a/trunk/src/PDFDocument.cxx
++++ b/trunk/src/PDFDocument.cxx
+@@ -678,14 +678,24 @@ PDFDocument::setTextSelection (DocumentRectangle *rect)
+ gdouble pageWidth, pageHeight;
+ poppler_page_get_size(page, &pageWidth, &pageHeight);
+
++#if defined (HAVE_POPPLER_0_15_0)
++ PopplerRectangle textRect = { rect->getX1() / getZoom(),
++ rect->getY1() / getZoom(),
++ rect->getX2() / getZoom(),
++ rect->getY2() / getZoom()};
++#else // !HAVE_POPPLER_0_15_0
+ //for get text we must exchange y coordinate, don't ask me where logic here.
+ PopplerRectangle textRect = { rect->getX1() / getZoom(),
+ (pageHeight - rect->getY2() / getZoom()),
+ rect->getX2() * getZoom() / getZoom(),
+ (pageHeight - rect->getY1() / getZoom())};
++#endif // HAVE_POPPLER_0_15_0
+ repairEmpty(textRect);
+
+-#if defined (HAVE_POPPLER_0_6_0)
++#if defined (HAVE_POPPLER_0_15_0)
++ gchar *text = poppler_page_get_selected_text(page, POPPLER_SELECTION_GLYPH,
++ &textRect);
++#elif defined (HAVE_POPPLER_0_6_0)
+ gchar *text = poppler_page_get_text(page, POPPLER_SELECTION_GLYPH,
+ &textRect);
+ #else // !HAVE_POPPLER_0_6_0
+--
+1.7.4
+
diff --git a/community/epdfview/0003-r357.patch b/community/epdfview/0003-r357.patch
new file mode 100644
index 000000000..c1aa9a1a6
--- /dev/null
+++ b/community/epdfview/0003-r357.patch
@@ -0,0 +1,134 @@
+From 951a8f66463c0dc38fa05931bd8df7b45707f6e8 Mon Sep 17 00:00:00 2001
+From: jordi <jordi@cb4bfb15-1111-0410-82e2-95233c8f1c7e>
+Date: Wed, 17 Nov 2010 16:02:45 +0000
+Subject: [PATCH 3/3] Applied patch by Dennis Sheil <dennis-poppler@vartmp.com> to use the correct variable type for linearization since poppler version 0.15.1.
+
+git-svn-id: svn://svn.emma-soft.com/epdfview@357 cb4bfb15-1111-0410-82e2-95233c8f1c7e
+---
+ trunk/THANKS | 1 +
+ trunk/configure.ac | 5 +++++
+ trunk/src/IDocument.cxx | 15 ++++++++++++++-
+ trunk/src/IDocument.h | 8 ++++++++
+ trunk/src/PDFDocument.cxx | 4 ++++
+ 5 files changed, 32 insertions(+), 1 deletions(-)
+
+diff --git a/trunk/THANKS b/trunk/THANKS
+index 48dcb2b..7888d1a 100644
+--- a/trunk/THANKS
++++ b/trunk/THANKS
+@@ -4,6 +4,7 @@ contributions:
+ - Alain Mendizabal <alainmendi@gmail.com>, for his Basque translation.
+ - Alex Dedul <rotmer@gmail.com>, for his patch.
+ - Alexander <lothalev@gmail.com>, for corrections in the Polish translation.
++ - Dennis Sheil <dennis-poppler@vartmp.com>, for his patch.
+ - Enrico Tröger <enrico.troeger@uvena.de>, for his full screen patch and others.
+ - Daniel Nylander <po@danielnylander.se>, for his Swedish translation.
+ - Daniel Pielmeie <daniel.pielmeie@googlemail.com>, for his patches.
+diff --git a/trunk/configure.ac b/trunk/configure.ac
+index 6cbd0e2..f8316b0 100644
+--- a/trunk/configure.ac
++++ b/trunk/configure.ac
+@@ -56,6 +56,11 @@ PKG_CHECK_EXISTS([poppler-glib >= 0.15], [have_poppler_0_15_0=yes])
+ if test "x$have_poppler_0_15_0" = "xyes"; then
+ AC_DEFINE([HAVE_POPPLER_0_15_0], [1], [Define to 1 if you have Poppler version 0.15.0 or higher.])
+ fi
++PKG_CHECK_EXISTS([poppler-glib >= 0.15.1], [have_poppler_0_15_1=yes])
++if test "x$have_poppler_0_15_1" = "xyes"; then
++ AC_DEFINE([HAVE_POPPLER_0_15_1], [1], [Define to 1 if you have Poppler version 0.15.1 or higher.])
++fi
++
+
+ EPDFVIEW_PATH_CUPS([CUPS], [have_cups=yes])
+ AM_CONDITIONAL(cups_printing, test "x$have_cups" = "xyes")
+diff --git a/trunk/src/IDocument.cxx b/trunk/src/IDocument.cxx
+index f1b71c5..f560f34 100644
+--- a/trunk/src/IDocument.cxx
++++ b/trunk/src/IDocument.cxx
+@@ -755,11 +755,16 @@ IDocument::setFormat (gchar *format)
+ const gchar *
+ IDocument::getLinearized ()
+ {
++#if defined (HAVE_POPPLER_0_15_1)
++ if ( m_Linearized ) return "Yes";
++ else return "No";
++#else
+ if ( NULL == m_Linearized )
+ {
+ return "No";
+ }
+ return m_Linearized;
++#endif
+ }
+
+ ///
+@@ -768,14 +773,22 @@ IDocument::getLinearized ()
+ /// @param linearized Set to "Yes" if the document is linearized. "No"
+ /// otherwise. IDocument will free it.
+ ///
++#if defined (HAVE_POPPLER_0_15_1)
+ void
+-IDocument::setLinearized (gchar *linearized)
++IDocument::setLinearized (gboolean *linearized)
++{
++ m_Linearized = linearized;
++}
++#else
++void
++ IDocument::setLinearized (gchar *linearized)
+ {
+ gchar *oldLinearized = m_Linearized;
+ m_Linearized = g_strdup (linearized);
+ g_free (oldLinearized);
+ g_free (linearized);
+ }
++#endif
+
+ ///
+ /// @brief Gets the document's creation date.
+diff --git a/trunk/src/IDocument.h b/trunk/src/IDocument.h
+index fbb3954..32aadf2 100644
+--- a/trunk/src/IDocument.h
++++ b/trunk/src/IDocument.h
+@@ -306,7 +306,11 @@ namespace ePDFView
+ const gchar *getFormat (void);
+ void setFormat (gchar *format);
+ const gchar *getLinearized (void);
++#if defined (HAVE_POPPLER_0_15_1)
++ void setLinearized (gboolean *linearized);
++#else
+ void setLinearized (gchar *linearized);
++#endif
+ const gchar *getCreationDate (void);
+ void setCreationDate (gchar *date);
+ const gchar *getModifiedDate (void);
+@@ -382,7 +386,11 @@ namespace ePDFView
+ /// The document's keyword.
+ gchar *m_Keywords;
+ /// Tells if the document is linearized or not.
++#if defined (HAVE_POPPLER_0_15_1)
++ gboolean *m_Linearized;
++#else
+ gchar *m_Linearized;
++#endif
+ /// The document's modification date and time.
+ gchar *m_ModifiedDate;
+ /// @brief The list of classes that will receive notifications
+diff --git a/trunk/src/PDFDocument.cxx b/trunk/src/PDFDocument.cxx
+index a590a20..4d425cd 100644
+--- a/trunk/src/PDFDocument.cxx
++++ b/trunk/src/PDFDocument.cxx
+@@ -324,7 +324,11 @@ PDFDocument::loadMetadata (void)
+ gchar *format = NULL;
+ gchar *keywords = NULL;
+ PopplerPageLayout layout = POPPLER_PAGE_LAYOUT_UNSET;
++#if defined (HAVE_POPPLER_0_15_1)
++ gboolean *linearized = NULL;
++#else
+ gchar *linearized = NULL;
++#endif
+ GTime modDate;
+ PopplerPageMode mode = POPPLER_PAGE_MODE_UNSET;
+ gchar *producer = NULL;
+--
+1.7.4
+
diff --git a/community/epdfview/PKGBUILD b/community/epdfview/PKGBUILD
new file mode 100644
index 000000000..4f3f34fd4
--- /dev/null
+++ b/community/epdfview/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 39086 2011-02-06 14:04:55Z schuay $
+# Contributor: Tom K <tomk@runbox.com>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Maintainer: schuay <jakob.gruber@gmail.com>
+
+pkgname=epdfview
+pkgver=0.1.7
+pkgrel=8
+pkgdesc="A free lightweight PDF document viewer."
+url="http://www.emma-soft.com/projects/epdfview/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('poppler-glib>=0.16.2' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('pkgconfig')
+install='epdfview.install'
+source=("http://www.emma-soft.com/projects/${pkgname}/chrome/site/releases/${pkgname}-${pkgver}.tar.bz2"
+ "${pkgname}.desktop.patch"
+ "0001-r329.patch"
+ "0002-r354.patch"
+ "0003-r357.patch"
+ "m_Linearized.patch")
+md5sums=('1919bb19c16ef0a97d48b0a8303d3c7b'
+ 'fbf22bbabdbb7544db615ac5775d57e2'
+ '14397ae0baa69fb9791ccaa35c243470'
+ '45a3b7d56f28f94a230c476ce2de54f0'
+ '932da23c324326c5baea3b5beae12ad5'
+ '53fe971f039a4aaf1243e60d59973cf6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/${pkgname}.desktop.patch"
+ patch -Np2 -i "${srcdir}/0001-r329.patch" # fixes mousewheel scrolling.
+ patch -Np2 -i "${srcdir}/0002-r354.patch" # patches poppler api changes, can
+ patch -Np2 -i "${srcdir}/0003-r357.patch" # be removed with a new epdfview release.
+ patch -Np0 -i "${srcdir}/m_Linearized.patch" # fix segfault on close.
+
+ # apply changes from r354 and r357 to configure.ac
+ touch ChangeLog # missing ChangeLog results in
+ autoreconf -fi # error during autoreconf
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ for size in 24 32 48; do
+ install -Dm644 data/icon_${pkgname}-${size}.png \
+ "${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/${pkgname}.png"
+ done
+}
diff --git a/community/epdfview/epdfview.desktop.patch b/community/epdfview/epdfview.desktop.patch
new file mode 100644
index 000000000..d86fc3088
--- /dev/null
+++ b/community/epdfview/epdfview.desktop.patch
@@ -0,0 +1,11 @@
+--- data/epdfview.desktop.bak 2009-04-05 16:55:56.000000000 -0700
++++ data/epdfview.desktop 2009-04-05 16:56:33.000000000 -0700
+@@ -7,7 +7,7 @@
+ GenericName=PDF Viewer
+ GenericName[ca]=Visor PDF
+ GenericName[es]=Visor PDF
+-Icon=icon_epdfview-48
++Icon=epdfview
+ Name=ePDFViewer
+ Name[ca]=ePDFViewer
+ Name[es]=ePDFViewer
diff --git a/community/epdfview/epdfview.install b/community/epdfview/epdfview.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/community/epdfview/epdfview.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/epdfview/m_Linearized.patch b/community/epdfview/m_Linearized.patch
new file mode 100644
index 000000000..7cad8d9c6
--- /dev/null
+++ b/community/epdfview/m_Linearized.patch
@@ -0,0 +1,24 @@
+--- src/IDocument.cxx 2011-02-06 14:45:34.173334040 +0100
++++ src/IDocument.cxx 2011-02-06 14:51:23.173334040 +0100
+@@ -135,7 +135,11 @@
+ m_FindPage = 0;
+ m_Format = NULL;
+ m_Keywords = NULL;
++#if defined (HAVE_POPPLER_0_15_1)
++ m_Linearized = FALSE;
++#else
+ m_Linearized = NULL;
++#endif
+ m_ModifiedDate = NULL;
+ m_PageCache = NULL;
+ m_PageCacheAge = 0;
+@@ -164,7 +168,9 @@
+ g_free (m_FileName);
+ g_free (m_Format);
+ g_free (m_Keywords);
++#if !defined (HAVE_POPPLER_0_15_1)
+ g_free (m_Linearized);
++#endif
+ g_free (m_ModifiedDate);
+ g_free (m_Password);
+ g_free (m_Producer);
diff --git a/community/epic4/PKGBUILD b/community/epic4/PKGBUILD
new file mode 100644
index 000000000..f975aa7c5
--- /dev/null
+++ b/community/epic4/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 14425 2010-04-03 12:15:33Z foutrelis $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Chris Brannon <cmbrannon (at) cox.net>
+
+pkgname=epic4
+pkgver=2.10.1
+pkgrel=2
+pkgdesc="EPIC4 is a new direction in ircII development"
+arch=('i686' 'x86_64')
+url="http://www.epicsol.org/"
+license=('custom')
+depends=('openssl' 'ncurses' 'tcl' 'perl')
+source=(ftp://ftp.epicsol.org/pub/epic/EPIC4-PRODUCTION/$pkgname-$pkgver.tar.gz)
+md5sums=('6f08a04494d0f5543b5f8f3c1ac56d11')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-ssl \
+ --with-ipv6 \
+ --with-perl \
+ --with-tcl
+ make || return 1
+ make prefix=$startdir/pkg/usr install || return 1
+ install -D -m 644 COPYRIGHT $startdir/pkg/usr/share/licenses/$pkgname/COPYRIGHT
+ mkdir -p $pkgdir/usr/lib/$pkgname
+ mv $pkgdir/usr/libexec/wserv4 $pkgdir/usr/lib/$pkgname
+ rm -rf $pkgdir/usr/libexec
+}
+
diff --git a/community/esekeyd/PKGBUILD b/community/esekeyd/PKGBUILD
new file mode 100644
index 000000000..b0122e70f
--- /dev/null
+++ b/community/esekeyd/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 26092 2010-09-13 13:45:21Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Evgenij Vdovin <evdovin@pochta.ru>
+
+pkgname=esekeyd
+pkgver=1.2.7
+pkgrel=1
+pkgdesc="Multimedia keyboard driver for Linux"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/esekeyd/"
+license=('GPL')
+depends=('glibc' 'sh')
+source=(http://www.burghardt.pl/files/$pkgname-$pkgver.tar.gz
+ esekeyd.rc esekeyd.confd esekeyd.conf)
+backup=('etc/conf.d/esekeyd' 'etc/esekeyd.conf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D -m755 "$srcdir/esekeyd.rc" "$pkgdir/etc/rc.d/esekeyd"
+ install -D -m644 "$srcdir/esekeyd.confd" "$pkgdir/etc/conf.d/esekeyd"
+ install -D -m644 "$srcdir/esekeyd.conf" "$pkgdir/etc/esekeyd.conf"
+}
+md5sums=('5937ad6d7815dbc6ab6983411a9f37d4'
+ '1c1b954265ad29de010b1dd750350ed2'
+ '5edf18376549251daacd49ae136ba984'
+ 'f16c1aefe84214856f3a7e49a1a866f3')
diff --git a/community/esekeyd/esekeyd.conf b/community/esekeyd/esekeyd.conf
new file mode 100644
index 000000000..c391a9670
--- /dev/null
+++ b/community/esekeyd/esekeyd.conf
@@ -0,0 +1,31 @@
+#
+# ESE Key Deamon 1.2.1 config file
+#
+
+# Note: esekeyd runs all commands as root!
+# In order to run commands as user you should call them this way:
+#CALC:su -l username -c "/bin/bash -l -c 'DISPLAY=:0 gcalctool &'"
+#
+# Note that it is impossible to use xdg-utils and some Gnome/KDE applications
+# because some vital environment variables are set after desktop session start,
+# so shell session started via su won't have them
+
+#BACK:
+#FORWARD:
+#STOP:
+#REFRESH:
+#SEARCH:
+#BOOKMARKS:/bin/sh -c "DISPLAY=:0 xterm &"
+#WWW:
+#MAIL:
+#PREVIOUSSONG:mpc prev &
+#STOPCD:mpc stop &
+#PLAYPAUSE:mpc toggle &
+#NEXTSONG:mpc next &
+#VOLUMEDOWN:amixer set Master 5%- &
+#VOLUMEUP:amixer set Master 5%+ &
+#MUTE:amixer set Master toggle &
+#MEDIA:mpc update &
+#COMPUTER:
+#CALC:/bin/sh -c "DISPLAY=:0 xcalc &"
+#SLEEP:/bin/sh -c "DISPLAY=:0 xset dpms force standby &"
diff --git a/community/esekeyd/esekeyd.confd b/community/esekeyd/esekeyd.confd
new file mode 100644
index 000000000..1fd9a0940
--- /dev/null
+++ b/community/esekeyd/esekeyd.confd
@@ -0,0 +1,4 @@
+CONFIG=/etc/esekeyd.conf
+# set input device manually if it cannot be autodetected
+# DEVICE=/dev/input/event1
+KEYCODES=('e00e:148' 'e00c:149')
diff --git a/community/esekeyd/esekeyd.rc b/community/esekeyd/esekeyd.rc
new file mode 100644
index 000000000..67dd42265
--- /dev/null
+++ b/community/esekeyd/esekeyd.rc
@@ -0,0 +1,51 @@
+#!/bin/sh
+#
+# Start/stop/restart the key daemon.
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+keystune(){
+ for keycode in "${KEYCODES[@]}"; do
+ key=`echo $keycode | cut -d: -f1`
+ code=`echo $keycode | cut -d: -f2`
+ setkeycodes $key $code
+ done
+}
+
+# source application-specific settings
+CONFIG=
+KEYCODES=
+DEVICE=
+[ -f /etc/conf.d/esekeyd ] && . /etc/conf.d/esekeyd
+
+PID=`pidof -o %PPID /usr/sbin/esekeyd`
+case "$1" in
+ start)
+ stat_busy "Starting esekeyd"
+ [ "$KEYCODES" ] && keystune
+ [ -z "$PID" ] && /usr/sbin/esekeyd $CONFIG $DEVICE &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esekeyd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping esekeyd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esekeyd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/esmtp/PKGBUILD b/community/esmtp/PKGBUILD
new file mode 100644
index 000000000..f419feab9
--- /dev/null
+++ b/community/esmtp/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Loui Chang <louipc dot ist at gmail company>
+# Contributor : Jeff Mickey <j@codemac.net>
+# Contributor : Aaron Griffin <aaron@archlinux.org>
+
+pkgname=esmtp
+pkgver=1.2
+pkgrel=3
+pkgdesc="An easy smtp forwarder"
+arch=('i686' 'x86_64')
+url="http://esmtp.sourceforge.net"
+license=('GPL')
+depends=('libesmtp' 'openssl')
+optdepends=('liblockfile: for esmtp-wrapper script')
+provides=('smtp-forwarder')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('79a9c1f9023d53f35bb82bf446150a72')
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m644 README ${pkgdir}/usr/share/esmtp/README
+ install -m755 esmtp-wrapper ${pkgdir}/usr/share/esmtp/esmtp-wrapper
+ install -m755 ylwrap ${pkgdir}/usr/share/esmtp/ylwrap
+}
diff --git a/community/espeak/PKGBUILD b/community/espeak/PKGBUILD
new file mode 100644
index 000000000..9f791f1df
--- /dev/null
+++ b/community/espeak/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 28906 2010-10-07 13:37:38Z cbrannon $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: niQo
+# Contributor: Christoph Siegenthaler <csi@gmx.ch>
+
+pkgname=espeak
+pkgver=1.44.05
+pkgrel=2
+pkgdesc="Text to Speech engine for good quality English, with support for other languages"
+arch=('i686' 'x86_64')
+url="http://espeak.sourceforge.net/"
+license=('GPL')
+depends=('gcc-libs' 'portaudio')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}-source.zip)
+md5sums=('603b3e5fc8510a82b76f51a94cb3c7a1')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-source/src
+ cp portaudio19.h portaudio.h
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver-source/src
+ make DESTDIR=$pkgdir install
+ find "$pkgdir/usr/share/espeak-data" -type f -print0 |xargs -0 chmod 644
+}
diff --git a/community/espeakup/PKGBUILD b/community/espeakup/PKGBUILD
new file mode 100644
index 000000000..89061f262
--- /dev/null
+++ b/community/espeakup/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 13306 2010-03-20 23:49:14Z cbrannon $
+# Contributor: Chris Brannon <cmbrannon@cox.net>
+pkgname=espeakup
+pkgver=0.71
+pkgrel=3
+pkgdesc='Allows the Speakup screen review system to use the ESpeak synthesizer.'
+arch=('i686' 'x86_64')
+url="http://github.com/williamh/espeakup"
+license=('GPL3')
+source=("ftp://linux-speakup.org/pub/linux/goodies/${pkgname}-${pkgver}.tar.bz2"
+ espeakup espeakup.conf.d)
+md5sums=('03daa70b3db3f4f6fbb42c2ee428eda7'
+ '7cf0abd493710ed924b7bb7c8d279fb3'
+ '0f93974845b15efa12f5e7a74cc0eecd')
+depends=(speakup-utils espeak)
+backup=(etc/conf.d/espeakup)
+
+build() {
+ cd "$srcdir"
+ install -m755 -D espeakup "${pkgdir}/etc/rc.d/espeakup" || return 1
+ install -m644 -D espeakup.conf.d "${pkgdir}/etc/conf.d/espeakup" || return 1
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/community/espeakup/espeakup b/community/espeakup/espeakup
new file mode 100755
index 000000000..94a71701a
--- /dev/null
+++ b/community/espeakup/espeakup
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/conf.d/espeakup
+. /etc/rc.d/functions
+
+PID=`pidof espeakup`
+PIDFILE=/var/run/espeakup.pid
+case "$1" in
+ start)
+ stat_busy "Starting Espeakup"
+ if [ -z "$PID" ]; then
+ if [ -f $PIDFILE ]; then
+ rm $PIDFILE
+ fi
+ /usr/bin/espeakup $ESPEAKUP_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon espeakup
+ stat_done
+ fi
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Espeakup"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon espeakup
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/espeakup/espeakup.conf.d b/community/espeakup/espeakup.conf.d
new file mode 100644
index 000000000..66f7842c3
--- /dev/null
+++ b/community/espeakup/espeakup.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to espeakup.
+# Example:
+# ESPEAKUP_ARGS="--default-voice=fr"
+# will tell espeakup to use the French voice.
+ESPEAKUP_ARGS=""
diff --git a/community/eterm/PKGBUILD b/community/eterm/PKGBUILD
new file mode 100644
index 000000000..d2c6d7dd6
--- /dev/null
+++ b/community/eterm/PKGBUILD
@@ -0,0 +1,34 @@
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Adam 'battlemidget' Stokes <adam.stokes@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=eterm
+pkgver=0.9.5
+pkgrel=4
+pkgdesc="A vt102 terminal emulator intended as a replacement for xterm."
+arch=('i686' 'x86_64')
+url="http://www.eterm.org/"
+license=('custom')
+depends=('freetype2>=2.3.5' 'libast>=0.7' 'libxmu' 'libxres')
+options=('!libtool')
+source=(http://www.eterm.org/download/Eterm-${pkgver}.tar.gz)
+md5sums=('87220a61f763d111a4f5fc88ef9e50f1')
+
+build() {
+ cd ${srcdir}/Eterm-${pkgver}
+ CONF=""
+ [ "${CARCH}" = "x86_64" ] && CONF="--disable-mmx"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --enable-trans --enable-utmp \
+ --enable-xim --with-theme-update \
+ --with-backspace=bs --without-terminfo \
+ --enable-multi-charset ${CONF}
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/Eterm-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/etherape/PKGBUILD b/community/etherape/PKGBUILD
new file mode 100644
index 000000000..a1d5cf3da
--- /dev/null
+++ b/community/etherape/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 40756 2011-02-26 14:25:14Z jlichtblau $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: kevin <kevin@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=etherape
+pkgver=0.9.10
+pkgrel=1
+pkgdesc="A graphical network monitor for various OSI layers and protocols"
+arch=('i686' 'x86_64')
+url="http://etherape.sourceforge.net/"
+license=('GPL2')
+depends=('libgnomeui' 'libpcap')
+makedepends=('rarian' 'gnome-doc-utils')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e763b919b46f94f3cccc72f05d9075bb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/etl/PKGBUILD b/community/etl/PKGBUILD
new file mode 100644
index 000000000..8dec73e1c
--- /dev/null
+++ b/community/etl/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Franco Iacomella <yaco@gnu.org>
+
+pkgname=etl
+_lpkgname=ETL
+_lpkgdl=synfig
+pkgver=0.04.13
+pkgrel=1
+pkgdesc="VoriaETL: C++ STL complementory multiplatform template library"
+arch=(i686 x86_64)
+url="http://synfig.org"
+license=('GPL2')
+depends=()
+conflicts=('synfig-etl')
+replaces=('synfig-etl')
+source=(http://downloads.sourceforge.net/sourceforge/$_lpkgdl/$_lpkgname-$pkgver.tar.gz)
+md5sums=('d52253adeb219d2fa554cbd744dfff29')
+
+build() {
+ cd $srcdir/$_lpkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/evas-svn/PKGBUILD b/community/evas-svn/PKGBUILD
new file mode 100755
index 000000000..1f2dae2aa
--- /dev/null
+++ b/community/evas-svn/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 41200 2011-03-04 22:12:36Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=evas-svn
+pkgver=57457
+pkgrel=1
+pkgdesc="A hardware-accelerated canvas API for X-Windows"
+arch=('i686' 'x86_64')
+groups=('e17-libs-svn' 'e17-svn')
+url="http://www.enlightenment.org"
+license=('BSD')
+depends=('giflib' 'librsvg' 'eet-svn' 'cairo' 'libjpeg' 'libxrender' 'mesa'
+ 'fribidi' 'fontconfig')
+makedepends=('subversion')
+conflicts=('evas')
+provides=('evas')
+options=('!libtool' '!emptydirs')
+md5sums=()
+
+_svntrunk="http://svn.enlightenment.org/svn/e/trunk/evas"
+_svnmod="evas"
+
+build() {
+ cd $srcdir
+
+msg "Connecting to $_svntrunk SVN server...."
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+
+ msg "SVN checkout done or server timeout"
+ msg "Starting make..."
+
+ cp -r $_svnmod $_svnmod-build
+ cd $_svnmod-build
+
+ ./autogen.sh --prefix=/usr --enable-fb --enable-xrender-x11 \
+ --enable-gl-x11 --enable-fontconfig --enable-async-preload \
+ --enable-async-events --enable-pipe-render --enable-async-render
+ make
+}
+
+package() {
+ cd $srcdir/$_svnmod-build
+ make DESTDIR=$pkgdir install
+
+# install license files
+ install -Dm644 $srcdir/$_svnmod-build/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ rm -r $srcdir/$_svnmod-build
+
+}
diff --git a/community/evolution-rss/PKGBUILD b/community/evolution-rss/PKGBUILD
new file mode 100644
index 000000000..71b3da93c
--- /dev/null
+++ b/community/evolution-rss/PKGBUILD
@@ -0,0 +1,39 @@
+# Creator: Borromini <gotleenucks at g-male dot com>
+# Maintainter: Jelle van der Waa <jelle at vdwaa dot nl>
+
+pkgname='evolution-rss'
+pkgver=0.2.3
+pkgrel=5
+pkgdesc="This plugin implements RSS reading capability within Evolution"
+arch=(i686 x86_64)
+license=('GPL')
+install=evolution-rss.install
+url="http://gnome.eu.org/evo/index.php/Evolution_RSS_Reader_Plugin"
+depends=('evolution' 'libsoup' 'libgnomecanvas')
+makedepends=('intltool' 'gnome-common')
+options=('!libtool' '!emptydirs')
+source=(http://gnome.eu.org/$pkgname-$pkgver.tar.gz
+ add-dbus-glib.patch)
+md5sums=('bbf825c3655eaebadc429141a8f408d0'
+ 'ef16147db282739cd5218ef590b79c81')
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+ patch -Np1 -i $srcdir/add-dbus-glib.patch
+ ./autogen.sh
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-primary-render=gtkhtml \
+ --disable-schemas-install
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-${pkgver}
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=$pkgdir install
+
+ mkdir -p $pkgdir/usr/share/gconf/schemas
+ gconf-merge-schema $pkgdir/usr/share/gconf/schemas/${pkgname}.schemas $pkgdir/etc/gconf/schemas/*.schemas
+ rm -rf $pkgdir/etc/gconf/
+}
diff --git a/community/evolution-rss/add-dbus-glib.patch b/community/evolution-rss/add-dbus-glib.patch
new file mode 100644
index 000000000..fa5cd5ada
--- /dev/null
+++ b/community/evolution-rss/add-dbus-glib.patch
@@ -0,0 +1,12 @@
+diff -Nur evolution-rss-0.2.3.orig/src/Makefile.am evolution-rss-0.2.3/src/Makefile.am
+--- evolution-rss-0.2.3.orig/src/Makefile.am 2011-01-28 09:29:44.000000000 -0800
++++ evolution-rss-0.2.3/src/Makefile.am 2011-03-14 09:51:19.510031938 -0700
+@@ -94,7 +94,7 @@
+ endif
+
+ liborg_gnome_evolution_rss_la_SOURCES = $(SOURCES)
+-liborg_gnome_evolution_rss_la_LIBADD = $(WEBKIT_LIBS) $(GECKO_LIBS) $(LIBSOUP_LIBS) $(GTKHTML_EDITOR_LIBS) $(NO_UNDEFINED_LIBS)
++liborg_gnome_evolution_rss_la_LIBADD = $(WEBKIT_LIBS) $(GECKO_LIBS) $(LIBSOUP_LIBS) $(GTKHTML_EDITOR_LIBS) $(NO_UNDEFINED_LIBS) $(DBUS_LIBS)
+ liborg_gnome_evolution_rss_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
+ #$(GECKO_RPATH)
+
diff --git a/community/evolution-rss/evolution-rss.install b/community/evolution-rss/evolution-rss.install
new file mode 100644
index 000000000..da4969355
--- /dev/null
+++ b/community/evolution-rss/evolution-rss.install
@@ -0,0 +1,25 @@
+pkgname=evolution-rss
+
+post_install() {
+ usr/sbin/gconfpkg --install $pkgname
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
+op=$1
+shift
diff --git a/community/exaile/PKGBUILD b/community/exaile/PKGBUILD
new file mode 100644
index 000000000..5b3c1a53e
--- /dev/null
+++ b/community/exaile/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 40067 2011-02-19 20:19:46Z ebelanger $
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Benjamin Wild <benwild@gmx.de>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=exaile
+pkgver=0.3.2.1
+pkgrel=1
+pkgdesc="A full-featured media player for GTK+"
+arch=('i686' 'x86_64')
+url="http://www.exaile.org"
+license=('GPL')
+depends=('python2' \
+ 'gstreamer0.10-python' \
+ 'gstreamer0.10-good-plugins' \
+ 'mutagen' \
+ 'dbus-python' \
+ 'pygtk>=2.10' \
+ 'librsvg')
+makedepends=('make' 'help2man')
+optdepends=('pycddb: CD metadata retrieval' \
+ 'hal: device autodetection' \
+ 'gstreamer0.10-bad-plugins: support for more formats' \
+ 'gstreamer0.10-ugly-plugins: support for more formats' \
+ 'gstreamer0.10-ffmpeg: support for more formats' \
+ 'python-sexy: UI enhancements')
+source=(https://www.launchpad.net/exaile/${pkgver%.*}/${pkgver}/+download/exaile-${pkgver}.tar.gz)
+md5sums=('7ecfa9e52a9f2882717b3483518b604b')
+sha1sums=('86e1451ab9e6f96077c9dfc59eea3d4dccb00cf0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # python2 fix
+ for file in $(find . -name Makefile -print) tools/generate-launcher; do
+ sed -i 's_python_python2_' $file
+ done
+ for file in plugins/*/*.py exaile.py; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+
+ # fix for clicking files with spaces in names from nautilus
+ sed -i "s#%u#%f#" "${pkgdir}/usr/share/applications/exaile.desktop"
+}
diff --git a/community/exim/PKGBUILD b/community/exim/PKGBUILD
new file mode 100644
index 000000000..db94e4188
--- /dev/null
+++ b/community/exim/PKGBUILD
@@ -0,0 +1,119 @@
+# $Id: PKGBUILD 38427 2011-01-27 04:52:11Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=exim
+pkgver=4.74
+pkgrel=1
+pkgdesc="A Message Transfer Agent"
+arch=(i686 x86_64)
+url="http://www.exim.org/"
+license=('GPL')
+backup=(etc/mail/aliases etc/mail/exim.conf \
+ etc/logrotate.d/exim etc/conf.d/exim)
+install=exim.install
+depends=('db' 'pcre' 'pam' 'tcp_wrappers' 'openssl' 'libldap')
+makedepends=('sudo')
+provides=('smtp-server')
+conflicts=('smtp-server')
+options=('!makeflags')
+source=(ftp://mirrors.24-7-solutions.net/pub/exim/ftp/exim/exim4/exim-${pkgver}.tar.bz2
+ aliases
+ newaliases
+ exim
+ exim.logrotate
+ exim.conf.d)
+md5sums=('1d9c189940909303d914bbc4247dc861'
+ '4874006f0585253ddab027d441009757'
+ 'ea39f58bffc16f5e3bbe59dffcf09449'
+ '9aed772e87223213e8da9ca5e7376869'
+ 'd788c26f86a9d72a0aebb3b849fe74f2'
+ 'b75fe4c6e960a59a25b5f51e8f61ba3a')
+
+build() {
+ # An exim user is required to build this
+ if [ ! `egrep '^exim' /etc/passwd` ]; then
+ echo "==> Adding user/group exim (temporarily)"
+ sudo groupadd -g 79 exim
+ sudo useradd -u 79 -g exim -d /var/spool/exim -s /bin/false exim
+ cleanup=1
+ else
+ cleanup=0
+ fi
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's|tail -1|tail -n -1|g' scripts/Configure-config.h
+ # Make some configuration changes
+ sed 's|^BIN_DIRECTORY.*$|BIN_DIRECTORY=/usr/sbin|' src/EDITME | \
+ sed 's|^CONFIGURE_FILE.*$|CONFIGURE_FILE=/etc/mail/exim.conf|' | \
+ sed 's|^EXIM_USER.*$|EXIM_USER=exim|' | \
+ sed 's|^COMPRESS_COMMAND.*$|COMPRESS_COMMAND=/bin/gzip|' | \
+ sed 's|^ZCAT_COMMAND.*$|ZCAT_COMMAND=/bin/zcat|' | \
+ sed 's|^CHOWN_COMMAND.*$|CHOWN_COMMAND=/bin/chown|' | \
+ sed 's|^CHGRP_COMMAND.*$|CHGRP_COMMAND=/bin/chgrp|' | \
+ sed 's|^EXIM_MONITOR.*$||' | \
+ sed 's|^# MAX_NAMED_LIST.*$|MAX_NAMED_LIST=16|' | \
+ sed 's|^# SUPPORT_MAILDIR.*$|SUPPORT_MAILDIR=yes|' | \
+ sed 's|^# \(PID_FILE_PATH=/var\)/lock/exim.pid.*$|\1/run/exim.pid|' | \
+ sed 's|^# TRANSPORT_LMTP=yes|TRANSPORT_LMTP=yes|' | \
+ sed 's|^# LOOKUP_LDAP=yes|LOOKUP_LDAP=yes|' | \
+ sed 's|^# LDAP_LIB_TYPE=OPENLDAP2|LDAP_LIB_TYPE=OPENLDAP2|' | \
+ sed 's|^# LOOKUP_DSEARCH=yes|LOOKUP_DSEARCH=yes|' | \
+ sed 's|^# AUTH_CRAM_MD5=yes$|AUTH_CRAM_MD5=yes|' | \
+ sed 's|^# AUTH_PLAINTEXT=yes$|AUTH_PLAINTEXT=yes|' | \
+ sed 's|^# AUTH_SPA=yes$|AUTH_SPA=yes|' | \
+ sed 's|^# AUTH_DOVECOT=yes$|AUTH_DOVECOT=yes|' | \
+ sed 's|^# SUPPORT_PAM=yes$|SUPPORT_PAM=yes|' | \
+ sed 's|^# USE_TCP_WRAPPERS=yes$|USE_TCP_WRAPPERS=yes|' | \
+ sed 's|^EXIM_GROUP.*$|EXIM_GROUP=exim|' | \
+ sed 's|^# SUPPORT_TLS.*$|SUPPORT_TLS=yes|' | \
+ sed 's|^# TLS_LIBS.*$|TLS_LIBS=-L/usr/lib -lssl -lcrypto|' | \
+ sed 's|^# TLS_INCLUDE.*$|TLS_INCLUDE=-I/usr/include/openssl|' | \
+ sed 's|^# WITH_CONTENT_SCAN.*$|WITH_CONTENT_SCAN=yes|' | \
+ sed 's|^# WITH_OLD_DEMIME.*$|WITH_OLD_DEMIME=yes|' | \
+ sed "s|^SYSTEM_ALIASES_FILE=/etc/aliases|SYSTEM_ALIASES_FILE=${pkgdir}/etc/mail/aliases|" | \
+ sed 's|^# \(LOG_FILE_PATH=/var/log/exim\)_%slog.*$|\1/%slog|' >Local/Makefile
+ echo "HAVE_IPV6=YES" >> Local/Makefile
+ echo "LOOKUP_LIBS=-lldap" >> Local/Makefile
+ echo "EXTRALIBS_EXIM=-lwrap -lpam" >> Local/Makefile
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m644 ../exim.logrotate ${pkgdir}/etc/logrotate.d/exim
+ install -D -m644 ../exim.conf.d ${pkgdir}/etc/conf.d/exim
+ install -D -m644 doc/exim.8 ${pkgdir}/usr/share/man/man8/exim.8
+ install -D -m755 ../exim ${pkgdir}/etc/rc.d/exim
+ mkdir -p ${pkgdir}/var/spool/exim/db ${pkgdir}/etc/mail \
+ ${pkgdir}/var/log/exim ${pkgdir}/usr/{lib,sbin}
+ chown root.exim ${pkgdir}/var/spool/exim ${pkgdir}/var/log/exim
+ chown exim.exim ${pkgdir}/var/spool/exim/db
+ chmod 770 ${pkgdir}/var/spool/exim ${pkgdir}/var/spool/exim/db ${pkgdir}/var/log/exim
+ cd build-Linux-*
+ inst_dest=${pkgdir}/usr/sbin inst_conf=${pkgdir}/etc/mail/exim.conf ../scripts/exim_install
+ cd ${srcdir}/exim-${pkgver}/src
+ sed "s|/etc/aliases|/etc/mail/aliases|g" configure.default | \
+ sed "s|SYSTEM_ALIASES_FILE|/etc/mail/aliases|g" \
+ >${pkgdir}/etc/mail/exim.conf
+
+ cp ${srcdir}/aliases ${pkgdir}/etc/mail
+ cp ${srcdir}/newaliases ${pkgdir}/usr/sbin
+ cd ${pkgdir}/usr/sbin
+ ln -s exim mailq
+ ln -s exim rmail
+ ln -s exim rsmtp
+ ln -s exim runq
+ ln -s exim sendmail
+ # fhs compliancy
+ ln -s ../sbin/exim ../lib/sendmail
+
+ mkdir -p ${pkgdir}/etc/rc.d
+ cp ${srcdir}/exim ${pkgdir}/etc/rc.d
+
+
+ if [ $cleanup -eq 1 ]; then
+ echo "==> Removing user/group exim"
+ sudo userdel exim
+ fi
+ return 0
+}
diff --git a/community/exim/aliases b/community/exim/aliases
new file mode 100644
index 000000000..5a76ff7d5
--- /dev/null
+++ b/community/exim/aliases
@@ -0,0 +1,35 @@
+#
+# /etc/mail/aliases
+#
+# NOTE: Make sure you run 'newaliases' after modifying this file
+#
+
+# Basic system aliases -- these MUST be present.
+MAILER-DAEMON: postmaster
+postmaster: root
+hostmaster: root
+webmaster: hostmaster
+ftpmaster: hostmaster
+admin: hostmaster
+administrator: hostmaster
+
+# General redirections for pseudo accounts.
+bin: root
+daemon: root
+games: root
+ingres: root
+nobody: root
+system: root
+toor: root
+uucp: root
+
+# Well-known aliases.
+manager: root
+dumper: root
+operator: root
+
+# trap decode to catch security attacks
+decode: root
+
+# Person who should get root's mail
+#root:
diff --git a/community/exim/exim b/community/exim/exim
new file mode 100755
index 000000000..8e9640b32
--- /dev/null
+++ b/community/exim/exim
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/exim ] && . /etc/conf.d/exim
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/exim`
+
+case "$1" in
+ start)
+ stat_busy "Starting Exim"
+ [ -z "$PID" ] && /usr/sbin/exim $EXIM_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon exim
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Exim"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/exim.pid
+ rm_daemon exim
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/exim/exim.conf.d b/community/exim/exim.conf.d
new file mode 100644
index 000000000..b9bec4335
--- /dev/null
+++ b/community/exim/exim.conf.d
@@ -0,0 +1 @@
+EXIM_ARGS="-bd -q15m"
diff --git a/community/exim/exim.install b/community/exim/exim.install
new file mode 100644
index 000000000..132b33f14
--- /dev/null
+++ b/community/exim/exim.install
@@ -0,0 +1,22 @@
+# arg 1: the new package version
+post_install() {
+ getent group exim >/dev/null 2>&1 || groupadd -g 79 exim
+ if getent passwd exim > /dev/null 2>&1; then
+ usr/sbin/usermod -d /var/spool/exim -c 'Exim MTA' -s /sbin/nologin exim > /dev/null 2>&1
+ else
+ usr/sbin/useradd -c 'Exim MTA' -u 79 -g exim -d /var/spool/exim -s /sbin/nologin exim
+ fi
+ passwd -l exim > /dev/null
+}
+
+# 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() {
+ getent passwd exim >/dev/null 2>&1 && userdel exim
+}
+
diff --git a/community/exim/exim.logrotate b/community/exim/exim.logrotate
new file mode 100644
index 000000000..ff38a1452
--- /dev/null
+++ b/community/exim/exim.logrotate
@@ -0,0 +1,5 @@
+/var/log/exim/*log {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/community/exim/newaliases b/community/exim/newaliases
new file mode 100755
index 000000000..c7b0e383d
--- /dev/null
+++ b/community/exim/newaliases
@@ -0,0 +1,2 @@
+#!/bin/sh
+/usr/sbin/exim_dbmbuild /etc/mail/aliases /var/spool/exim/db/aliases && chown exim.exim /var/spool/exim/db/aliases
diff --git a/community/ext3grep/PKGBUILD b/community/ext3grep/PKGBUILD
new file mode 100644
index 000000000..4e70cdc95
--- /dev/null
+++ b/community/ext3grep/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 20288 2010-07-04 06:26:43Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: ivh
+
+pkgname=ext3grep
+pkgver=0.10.2
+pkgrel=1
+pkgdesc="A tool to investigate an ext3 file system for deleted content and possibly recover it"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/ext3grep/"
+license=('GPL')
+depends=('gcc-libs')
+makedepends=('e2fsprogs')
+changelog=$pkgname.changelog
+source=(http://ext3grep.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('38e134734d6c8856370ed00a9c73dbee')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ext3grep/ext3grep.changelog b/community/ext3grep/ext3grep.changelog
new file mode 100644
index 000000000..60326bf7b
--- /dev/null
+++ b/community/ext3grep/ext3grep.changelog
@@ -0,0 +1,3 @@
+2010-07-04 Jaroslav Lichtblau <tu@dragonlord.cz>
+ * Package moved to [community] from AUR - 65 votes
+ * Version 0.10.2 \ No newline at end of file
diff --git a/community/extrema/PKGBUILD b/community/extrema/PKGBUILD
new file mode 100644
index 000000000..317ea83d4
--- /dev/null
+++ b/community/extrema/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Marcelo Avalos Tejeda <marcelo.avalos@gmail.com>
+
+pkgname=extrema
+pkgver=4.4.5
+pkgrel=1
+pkgdesc='Extrema is a powerful visualization and data analysis tool.'
+arch=('i686' 'x86_64')
+url='http://exsitewebware.com/extrema/index.html'
+license=('GPL')
+depends=('wxgtk' 'zlib' 'libxml2' 'libpng')
+source=("http://downloads.sourceforge.net/project/extrema/extrema/extrema-linux%20v${pkgver}/extrema-${pkgver}.tar.gz"
+ 'extrema.desktop')
+md5sums=('8a1e82b34874db2bfa64d9a2956677b1'
+ '0f4d310d230e28436dff20e77aed71bb')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ tar xf extrema_icons.tar.bz2
+ install -D -m644 32x32/apps/extrema.png \
+ ${pkgdir}/usr/share/pixmaps/extrema.png
+
+ install -D -m644 ${srcdir}/extrema.desktop \
+ ${pkgdir}/usr/share/applications/extrema.desktop
+}
diff --git a/community/extrema/extrema.desktop b/community/extrema/extrema.desktop
new file mode 100644
index 000000000..c3bfb9f65
--- /dev/null
+++ b/community/extrema/extrema.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=eXtrema
+Comment=Visualization and Data Analysis Tool
+Exec=extrema
+Icon=extrema.png
+Terminal=0
+Type=Application
+Categories=Science;Math; \ No newline at end of file
diff --git a/community/extremetuxracer/PKGBUILD b/community/extremetuxracer/PKGBUILD
new file mode 100644
index 000000000..7206154f9
--- /dev/null
+++ b/community/extremetuxracer/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 9321 2010-01-25 01:55:48Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Eric Belanger <eric.archlinux.org>
+# Contributor: Fabio Scotoni <CCuleX.gmail.com>
+
+pkgname=extremetuxracer
+pkgver=0.4
+pkgrel=2
+pkgdesc="Downhill racing game starring Tux"
+arch=('i686' 'x86_64')
+url="http://www.extremetuxracer.com"
+license=('GPL')
+depends=('sdl_mixer' 'tcl>=8.5.0' 'mesa' 'libpng>=1.4.0' 'freetype2' 'libxi' 'libxmu')
+conflicts=('ppracer' 'etracer')
+replaces=('ppracer' 'etracer')
+source=(http://downloads.sourceforge.net/extremetuxracer/extremetuxracer-$pkgver.tar.gz \
+ $pkgname.png $pkgname.desktop libpng14.patch)
+md5sums=('6830eb4e1ca7c5a541f286ded3853f9f'
+ 'a188e4ce61d0376fa42059e13157c5d1'
+ '429974a3d7f4640073e8fbfb4f0f45d2'
+ '0c16eb309df6413397cd886f63361fcc')
+
+build() {
+ cd ${srcdir}/extremetuxracer-$pkgver
+
+ patch -Np1 -i ${srcdir}/libpng14.patch || return 1
+
+ sed -i -e 's/libpng12/libpng14/g' configure || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+ # Install icon and desktop file
+ install -D -m644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop || return 1
+ install -D -m644 ${srcdir}/${pkgname}.png \
+ ${pkgdir}/usr/share/pixmaps/${pkgname}.png || return 1
+}
diff --git a/community/extremetuxracer/extremetuxracer.desktop b/community/extremetuxracer/extremetuxracer.desktop
new file mode 100644
index 000000000..6593607b8
--- /dev/null
+++ b/community/extremetuxracer/extremetuxracer.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Encoding=UTF-8
+Name=Extreme Tux Racer
+Comment=Open source racing game featuring Tux the Linux Penguin.
+Icon=/usr/share/pixmaps/extremetuxracer.png
+Exec=etracer
+Terminal=false
+StartupNotify=true
+Categories=Application;Game;ArcadeGame
+
diff --git a/community/extremetuxracer/extremetuxracer.png b/community/extremetuxracer/extremetuxracer.png
new file mode 100644
index 000000000..6c4aec00b
--- /dev/null
+++ b/community/extremetuxracer/extremetuxracer.png
Binary files differ
diff --git a/community/extremetuxracer/libpng14.patch b/community/extremetuxracer/libpng14.patch
new file mode 100644
index 000000000..5c9999857
--- /dev/null
+++ b/community/extremetuxracer/libpng14.patch
@@ -0,0 +1,57 @@
+diff -Nur extremetuxracer-0.4.orig/src/ppgltk/images/png_reader.cpp extremetuxracer-0.4/src/ppgltk/images/png_reader.cpp
+--- extremetuxracer-0.4.orig/src/ppgltk/images/png_reader.cpp 2007-09-01 19:38:12.000000000 +0300
++++ extremetuxracer-0.4/src/ppgltk/images/png_reader.cpp 2010-01-25 03:47:21.000000000 +0200
+@@ -53,7 +53,7 @@
+ if (!info_ptr)
+ {
+ png_destroy_read_struct(&png_ptr,
+- (png_infopp)NULL, (png_infopp)NULL);
++ NULL, NULL);
+ fclose(fp);
+ return;
+ }
+@@ -62,7 +62,7 @@
+ if (!end_info)
+ {
+ png_destroy_read_struct(&png_ptr, &info_ptr,
+- (png_infopp)NULL);
++ NULL);
+ fclose(fp);
+ return;
+ }
+@@ -77,7 +77,7 @@
+
+
+ png_get_IHDR(png_ptr, info_ptr, &width, &height,
+- &bit_depth, &color_type, &interlace_type,int_p_NULL, int_p_NULL);
++ &bit_depth, &color_type, &interlace_type, NULL, NULL);
+
+ if(bit_depth == 16)
+ png_set_strip_16(png_ptr);
+@@ -88,7 +88,7 @@
+ png_set_expand(png_ptr);
+ png_read_update_info(png_ptr, info_ptr);
+ png_get_IHDR(png_ptr, info_ptr, &width, &height,
+- &bit_depth, &color_type, &interlace_type,int_p_NULL, int_p_NULL);
++ &bit_depth, &color_type, &interlace_type, NULL, NULL);
+ }
+
+ if( color_type == PNG_COLOR_TYPE_GRAY ||
+@@ -96,7 +96,7 @@
+ png_set_gray_to_rgb(png_ptr);
+ png_read_update_info(png_ptr, info_ptr);
+ png_get_IHDR(png_ptr, info_ptr, &width, &height,
+- &bit_depth, &color_type, &interlace_type,int_p_NULL, int_p_NULL);
++ &bit_depth, &color_type, &interlace_type, NULL, NULL);
+ }
+
+ this->width=width;
+@@ -114,7 +114,7 @@
+ }
+
+ png_read_end(png_ptr, info_ptr);
+- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ fclose(fp);
+ }
+
diff --git a/community/extundelete/PKGBUILD b/community/extundelete/PKGBUILD
new file mode 100644
index 000000000..6f34fb6d0
--- /dev/null
+++ b/community/extundelete/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 20292 2010-07-04 06:40:48Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: snuo
+
+pkgname=extundelete
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Utility for recovering deleted files from ext2, ext3 or ext4 partitions by parsing the journal"
+arch=('i686' 'x86_64')
+url="http://extundelete.sourceforge.net"
+license=('GPL')
+makedepends=('e2fsprogs')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('6dac74b12a747f133326ff7b81fceedd')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+} \ No newline at end of file
diff --git a/community/extundelete/extundelete.changelog b/community/extundelete/extundelete.changelog
new file mode 100644
index 000000000..32a04346c
--- /dev/null
+++ b/community/extundelete/extundelete.changelog
@@ -0,0 +1,3 @@
+2010-07-04 Jaroslav Lichtblau <tu@dragonlord.cz>
+ * Package moved to [community] from AUR - 83 votes
+ * Version 0.2.0 \ No newline at end of file
diff --git a/community/fail2ban/PKGBUILD b/community/fail2ban/PKGBUILD
new file mode 100644
index 000000000..a776cdd82
--- /dev/null
+++ b/community/fail2ban/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 26474 2010-09-15 21:57:57Z schuay $
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: michalzxc
+# Contributor: nbags <neilbags@gmail.com>
+pkgname=fail2ban
+pkgver=0.8.4
+pkgrel=2
+pkgdesc="Bans IPs after too many failed authentification attempts against common daemons"
+url="http://www.fail2ban.org/"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('python2' 'iptables')
+backup=('etc/fail2ban/fail2ban.conf' 'etc/fail2ban/jail.conf')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \
+ $pkgname.rc)
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ python2 setup.py install --root "$pkgdir"
+ install -D -m755 "$srcdir/$pkgname.rc" "$pkgdir/etc/rc.d/$pkgname"
+}
+md5sums=('df94335a5d12b4750869e5fe350073fa'
+ '6d32bf78023d51c3373465389affa5c0')
diff --git a/community/fail2ban/fail2ban.rc b/community/fail2ban/fail2ban.rc
new file mode 100644
index 000000000..f4c28a814
--- /dev/null
+++ b/community/fail2ban/fail2ban.rc
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+FAIL2BAN="/usr/bin/fail2ban-client"
+
+case "$1" in
+ start)
+ stat_busy "Starting fail2ban"
+ $FAIL2BAN start >/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon fail2ban
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping fail2ban"
+ if [ "`$FAIL2BAN stop`" == "Shutdown successful" ]; then
+ rm_daemon fail2ban
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/fatrat/PKGBUILD b/community/fatrat/PKGBUILD
new file mode 100644
index 000000000..11a5cd076
--- /dev/null
+++ b/community/fatrat/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 40982 2011-03-03 00:04:39Z tdziedzic $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=fatrat
+pkgver=1.1.3
+pkgrel=3
+pkgdesc="QT4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more"
+arch=('i686' 'x86_64')
+url="http://fatrat.dolezel.info/"
+license=('GPL')
+depends=('gloox' 'curl' 'qt' 'libtorrent-rasterbar')
+optdepends=('geoip: GeoIP support')
+makedepends=('asio' 'cmake')
+source=(http://www.dolezel.info/download/data/fatrat/fatrat-$pkgver.tar.gz)
+md5sums=('6d4a00cdd0b59a05b1521184508d4637')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+
+ cmake -DWITH_EVERYTHING=ON -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/fbdump/PKGBUILD b/community/fbdump/PKGBUILD
new file mode 100644
index 000000000..1d26f0436
--- /dev/null
+++ b/community/fbdump/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 17537 2010-05-24 14:23:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=fbdump
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="captures the contents of the visible portion of the Linux framebuffer to stdout"
+arch=('i686' 'x86_64')
+url="http://www.rcdrummond.net/fbdump/"
+license=("GPL")
+depends=(glibc)
+source=(http://www.rcdrummond.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('85ae97c0800a2caf2b04ad7764e3915b')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/fbgetty/PKGBUILD b/community/fbgetty/PKGBUILD
new file mode 100644
index 000000000..67d344aa9
--- /dev/null
+++ b/community/fbgetty/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 6846 2009-12-24 11:41:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=fbgetty
+pkgver=0.1.698
+pkgrel=3
+license=("GPL")
+pkgdesc="fbgetty is a console getty like mingetty, which supports framebuffers"
+arch=('i686' 'x86_64')
+url="http://projects.meuh.org/fbgetty"
+source=('http://projects.meuh.org/fbgetty/downloads/fbgetty-'$pkgver'.tar.gz')
+md5sums=('1705bc0f8f1e03fe50d324ba84ac4e56')
+
+build ()
+{
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+
+ patch src/options.c <<EOF
+33a34
+> #include <stddef.h>
+EOF
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+
+ mv ${pkgdir}/usr/info ${pkgdir}/usr/share/
+}
diff --git a/community/fbgrab/PKGBUILD b/community/fbgrab/PKGBUILD
new file mode 100644
index 000000000..6ea2b333c
--- /dev/null
+++ b/community/fbgrab/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 8867 2010-01-22 03:05:07Z dgriffiths $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+pkgname=fbgrab
+pkgver=1.0
+pkgrel=5
+pkgdesc="A framebuffer screenshot grabber"
+arch=(i686 x86_64)
+url="http://hem.bredband.net/gmogmo/fbgrab/"
+license=("GPL")
+depends=('libpng')
+makedepends=('libpng')
+source=(http://hem.bredband.net/gmogmo/fbgrab/fbgrab-1.0.tar.gz)
+md5sums=('7af4d8774684182ed690d5da82d6d234')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ gcc -g -Wall fbgrab.c -lpng -lz -o fbgrab
+ strip fbgrab
+ install -D -m755 $startdir/src/$pkgname-$pkgver/fbgrab $startdir/pkg/usr/bin/fbgrab
+ install -D -m644 $startdir/src/$pkgname-$pkgver/fbgrab.1.man $startdir/pkg/usr/share/man/man1/fbgrab.1
+}
+# vim:syntax=sh
diff --git a/community/fbpanel/PKGBUILD b/community/fbpanel/PKGBUILD
new file mode 100644
index 000000000..0a33d0f38
--- /dev/null
+++ b/community/fbpanel/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 21121 2010-07-14 15:52:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Torin Daniel <torindan@gmail.com>
+
+pkgname=fbpanel
+pkgver=6.1
+pkgrel=2
+pkgdesc="NetWM compliant desktop panel"
+arch=('i686' 'x86_64')
+url="http://fbpanel.sourceforge.net/"
+depends=('gtk2')
+license=('GPL')
+source=(http://downloads.sourceforge.net/fbpanel/fbpanel-${pkgver}.tbz2)
+md5sums=('80ca0c64195b30587cfcb8c2cd9887a0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/fbreader/PKGBUILD b/community/fbreader/PKGBUILD
new file mode 100644
index 000000000..a5df7c37f
--- /dev/null
+++ b/community/fbreader/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 32017 2010-11-09 12:39:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=fbreader
+pkgver=0.12.10
+pkgrel=2
+pkgdesc="An e-book reader for Linux"
+arch=('i686' 'x86_64')
+url="http://www.fbreader.org/"
+license=('GPL')
+depends=('fribidi' 'bzip2' 'curl' 'gtk2' 'liblinebreak' 'sqlite3')
+source=(http://only.mawhrin.net/fbreader/fbreader-sources-$pkgver.tgz
+ build-fix.patch)
+md5sums=('da9ec4721efdb0ec0aaa182bff16ad82'
+ '66ac17d8640625b6d2a806de4aa4e76c')
+
+build() {
+ export CPPFLAGS="-I/usr/include/cairo"
+ export TARGET_ARCH=desktop
+ export UI_TYPE=gtk
+ export TARGET_STATUS=release
+ export srcdir
+
+ cd $srcdir/fbreader-$pkgver
+ patch -p0 makefiles/config.mk <$srcdir/build-fix.patch
+ sed -i 's#Library::Library &Library::Instance()#Library \&Library::Instance()#' fbreader/src/library/Library.cpp
+ make INSTALLDIR=/usr
+ make INSTALLDIR=/usr DESTDIR=$pkgdir install
+}
diff --git a/community/fbreader/build-fix.patch b/community/fbreader/build-fix.patch
new file mode 100644
index 000000000..7316464b8
--- /dev/null
+++ b/community/fbreader/build-fix.patch
@@ -0,0 +1,20 @@
+--- config.mk.orig 2010-02-23 18:22:10.000000000 +0000
++++ config.mk 2010-02-28 13:55:11.000000000 +0000
+@@ -21,7 +21,7 @@
+ ARCHIVER_LIBS ?= -lz -lbz2
+ NETWORK_LIBS ?= -lcurl
+
+-CFLAGS += -DINSTALLDIR=\"$(INSTALLDIR_MACRO)\" -DBASEDIR=\"$(SHAREDIR_MACRO)\" -DLIBDIR=\"$(LIBDIR_MACRO)\" -DIMAGEDIR=\"$(IMAGEDIR_MACRO)\" -DAPPIMAGEDIR=\"$(APPIMAGEDIR_MACRO)\" -DVERSION=\"$(VERSION)\"
++CFLAGS += -I$(srcdir)/liblinebreak-20080321 -DINSTALLDIR=\"$(INSTALLDIR_MACRO)\" -DBASEDIR=\"$(SHAREDIR_MACRO)\" -DLIBDIR=\"$(LIBDIR_MACRO)\" -DIMAGEDIR=\"$(IMAGEDIR_MACRO)\" -DAPPIMAGEDIR=\"$(APPIMAGEDIR_MACRO)\" -DVERSION=\"$(VERSION)\"
+ ifeq "$(ZLSHARED)" "yes"
+ CFLAGS += -fPIC -DZLSHARED
+ endif
+@@ -38,6 +38,8 @@
+ LDFLAGS += -pg
+ endif
+
++LDFLAGS += -L$(srcdir)/liblinebreak-20080321/DebugDir
++
+ ZINCLUDE = -I $(ROOTDIR)/zlibrary/core/include -I $(ROOTDIR)/zlibrary/text/include
+
+ ZLSHARED ?= yes
diff --git a/community/fbshot/PKGBUILD b/community/fbshot/PKGBUILD
new file mode 100644
index 000000000..752c53faa
--- /dev/null
+++ b/community/fbshot/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: sp42b <sp42b|a_t|gmx.net>
+
+pkgname=fbshot
+pkgver=0.3
+pkgrel=3
+pkgdesc="Takes screenshots (PNG) from your framebuffer device (e.g. console)."
+arch=('i686' 'x86_64')
+url="http://www.sfires.net/fbshot/"
+license=('GPL')
+depends=('libpng')
+source=(http://www.sfires.net/stuff/fbshot/$pkgname-$pkgver.tar.gz)
+md5sums=('2cc6cc25cdc4cd447a8b0a9662907635')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make || return 1
+ install -Dm755 fbshot $pkgdir/usr/bin/fbshot
+ install -Dm644 fbshot.1.man $pkgdir/usr/share/man/man1/fbshot.1
+}
diff --git a/community/fbv/ChangeLog b/community/fbv/ChangeLog
new file mode 100644
index 000000000..7fd5bbf99
--- /dev/null
+++ b/community/fbv/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/fbv/PKGBUILD b/community/fbv/PKGBUILD
new file mode 100644
index 000000000..e1cc13f69
--- /dev/null
+++ b/community/fbv/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 11511 2010-02-12 23:37:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Aectann <aectann@infoline.su>
+
+pkgname=fbv
+pkgver=1.0b
+pkgrel=4
+pkgdesc="FrameBuffer image viewer"
+arch=('i686' 'x86_64')
+url="http://s-tech.elsat.net.pl/fbv/"
+license=('GPL')
+depends=('libpng' 'libungif' 'libjpeg')
+source=(http://s-tech.elsat.net.pl/fbv/$pkgname-$pkgver.tar.gz)
+md5sums=('3e466375b930ec22be44f1041e77b55d')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ sed -i 's|LIBS.*|LIBS=-lpng -ljpeg -lungif -lgif|' Make.conf
+ make || return 1
+ mkdir -p $pkgdir/usr/bin
+ mkdir -p $pkgdir/usr/share/man/man1
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/community/fceux/ChangeLog b/community/fceux/ChangeLog
new file mode 100644
index 000000000..93ba8b368
--- /dev/null
+++ b/community/fceux/ChangeLog
@@ -0,0 +1,21 @@
+2009-11-06 Eric Belanger <eric@archlinux.org>
+
+ * fceux 2.1.2-1
+ * Upstream update
+
+2009-08-05 Eric Belanger <eric@archlinux.org>
+
+ * fceux 2.1.1-1
+ * gfceux 2.1.1-1
+ * Upstream update
+ * Implemented split packages
+
+2009-04-06 Eric Belanger <eric@archlinux.org>
+
+ * fceux 2.1.0a-1
+ * Upstream update
+
+2009-03-06 Eric Belanger <eric@archlinux.org>
+
+ * fceux 2.0.3-1
+ * Added to [community] repo to replace fceu
diff --git a/community/fceux/PKGBUILD b/community/fceux/PKGBUILD
new file mode 100644
index 000000000..532a8fd53
--- /dev/null
+++ b/community/fceux/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 31918 2010-11-07 20:45:58Z lcarlier $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jo Christian Bergsks <jcberg@gmail.com>
+
+pkgname=fceux
+pkgver=2.1.4a
+pkgrel=4
+arch=('i686' 'x86_64')
+url="http://fceux.com/web/home.html"
+pkgdesc="A fast and ultra-compatible NES/Famicom emulator with SDL, OpenGL and SVGALIB support"
+license=('GPL')
+depends=('sdl' 'lua' 'gtk2')
+makedepends=('scons' 'mesa')
+optdepends=('xchm: for viewing the help manual')
+provides=('fceu' 'gfceux')
+replaces=('fceu' 'gfceux')
+source=(http://downloads.sourceforge.net/fceultra/$pkgname-${pkgver}.src.tar.bz2 \
+ fceux.desktop fceux.png)
+md5sums=('a1252a888cdc8b2c42ae031211f2fad6'
+ '30baf915c936926fa50f59d8276f6575'
+ '3fe753731ac46b5fee528b1f73abd3e3')
+
+build() {
+ cd "${srcdir}/fceu$pkgver"
+ scons
+
+ sed -i "s|/usr/local|${pkgdir}/usr|" SConstruct
+ scons install
+
+ install -D -m644 bin/$pkgname.chm "${pkgdir}/usr/share/doc/$pkgname/$pkgname.chm"
+ install -D -m644 "$srcdir"/fceux.desktop "${pkgdir}"/usr/share/applications/fceux.desktop
+ install -D -m644 "$srcdir"/fceux.png "$pkgdir"/usr/share/pixmaps/fceux.png
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/fceux/fceux.desktop b/community/fceux/fceux.desktop
new file mode 100644
index 000000000..c166755e8
--- /dev/null
+++ b/community/fceux/fceux.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Fceux
+GenericName=NES/Famicom emulator
+Exec=fceux
+Icon=/usr/share/pixmaps/fceux.png
+Type=Application
+Categories=Game;Emulator;
+Encoding=UTF-8
+
+
diff --git a/community/fceux/fceux.png b/community/fceux/fceux.png
new file mode 100644
index 000000000..1cf27b1fd
--- /dev/null
+++ b/community/fceux/fceux.png
Binary files differ
diff --git a/community/fcgiwrap/LICENSE b/community/fcgiwrap/LICENSE
new file mode 100644
index 000000000..84eacbe12
--- /dev/null
+++ b/community/fcgiwrap/LICENSE
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2007-2010 Grzegorz Nosek
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
diff --git a/community/fcgiwrap/PKGBUILD b/community/fcgiwrap/PKGBUILD
new file mode 100644
index 000000000..7720ea652
--- /dev/null
+++ b/community/fcgiwrap/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 28017 2010-10-01 16:05:40Z aschaefer $
+# Maintainer: Aaron Bull Schaefer <aaron@elasticdog.com>
+# Contributor: Ron Huang <ronhuang+aur at gmail dot com>
+
+pkgname=fcgiwrap
+pkgver=1.0.3
+_gitrev='2e301c8'
+pkgrel=1
+pkgdesc='A simple server for running CGI applications over FastCGI'
+arch=('i686' 'x86_64')
+url='http://nginx.localdomain.pl/wiki/FcgiWrap'
+license=('MIT')
+depends=('fcgi' 'spawn-fcgi')
+backup=('etc/conf.d/fcgiwrap')
+source=("http://github.com/downloads/gnosek/fcgiwrap/$pkgname-$pkgver.tar.gz"
+ 'fcgiwrap.conf.d' 'fcgiwrap.rc.d' 'LICENSE')
+md5sums=('be73d90df7c4442084463e2815fc213d' '9fbb5b0e861ffea74e655143a4c1a8f9'
+ '71ea12f43aebca39f73ff2e0b684f361' '5aee62c27b4308f25ab32f05da387366')
+
+build() {
+ cd "$srcdir/gnosek-$pkgname-$_gitrev"
+
+ autoreconf --install
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/gnosek-$pkgname-$_gitrev"
+
+ make DESTDIR="$pkgdir" install
+ install -D -m644 ../fcgiwrap.conf.d "$pkgdir/etc/conf.d/$pkgname"
+ install -D -m755 ../fcgiwrap.rc.d "$pkgdir/etc/rc.d/$pkgname"
+ install -D -m644 ../LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/fcgiwrap/fcgiwrap.conf.d b/community/fcgiwrap/fcgiwrap.conf.d
new file mode 100644
index 000000000..906f597a0
--- /dev/null
+++ b/community/fcgiwrap/fcgiwrap.conf.d
@@ -0,0 +1,13 @@
+#
+# parameters for fcgiwrap daemon
+#
+
+SPAWNER='/usr/bin/spawn-fcgi'
+
+FCGI_ADDRESS='127.0.0.1'
+FCGI_PORT='9001'
+FCGI_USER='http'
+FCGI_GROUP='http'
+FCGI_EXTRA_OPTIONS=''
+
+SPAWNER_ARGS="-a $FCGI_ADDRESS -p $FCGI_PORT -u $FCGI_USER -g $FCGI_GROUP $FCGI_EXTRA_OPTIONS -- /usr/sbin/fcgiwrap"
diff --git a/community/fcgiwrap/fcgiwrap.rc.d b/community/fcgiwrap/fcgiwrap.rc.d
new file mode 100644
index 000000000..42787d149
--- /dev/null
+++ b/community/fcgiwrap/fcgiwrap.rc.d
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON=fcgiwrap
+
+# source application-specific settings
+[ -f /etc/conf.d/$DAEMON ] && . /etc/conf.d/$DAEMON
+
+# set defaults if settings are missing
+[ -z "$SPAWNER" ] && SPAWNER='/usr/bin/spawn-fcgi'
+[ -z "$SPAWNER_ARGS" ] && SPAWNER_ARGS='-a 127.0.0.1 -p 9001 -u http -g http -- /usr/sbin/fcgiwrap'
+
+get_pid() {
+ pidof -o %PPID $DAEMON
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $DAEMON daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$DAEMON.pid ] && rm -f /var/run/$DAEMON.pid
+ # RUN
+ $SPAWNER $SPAWNER_ARGS &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$DAEMON.pid
+ add_daemon $DAEMON
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $DAEMON daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$DAEMON.pid &> /dev/null
+ rm_daemon $DAEMON
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $DAEMON status";
+ ck_status $DAEMON
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/community/fcrackzip/ChangeLog b/community/fcrackzip/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/fcrackzip/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/fcrackzip/PKGBUILD b/community/fcrackzip/PKGBUILD
new file mode 100644
index 000000000..58f3821ba
--- /dev/null
+++ b/community/fcrackzip/PKGBUILD
@@ -0,0 +1,23 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Maintainer: Daenyth <Daenyth+Arch at gmail dot com>
+
+pkgname=fcrackzip
+pkgver=1.0
+pkgrel=2
+pkgdesc="A zip file password cracker"
+arch=('i686' 'x86_64')
+url="http://www.goof.com/pcg/marc/$pkgname.html"
+license=('GPL')
+depends=(glibc)
+source=(http://www.goof.com/pcg/marc/data/$pkgname-$pkgver.tar.gz)
+md5sums=('254941f51759f9425965f4b05fe7ac2c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install
+ mv $pkgdir/usr/bin/zipinfo $pkgdir/usr/bin/fzipinfo
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/fcron/PKGBUILD b/community/fcron/PKGBUILD
new file mode 100755
index 000000000..4bb0100c0
--- /dev/null
+++ b/community/fcron/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 42747 2011-03-20 15:07:32Z ttopper $
+# Contributor: Giorgio Lando <lando at imap dot cc>
+# Contributor: Sergej Pupykin
+# Contributor: Thomas Bchler
+# Maintainer: Thorsten Tpper <atsutane-tu@freethoughts.de>
+
+pkgname=fcron
+pkgver=3.0.6
+pkgrel=4
+pkgdesc="feature-rich cron implementation"
+arch=(i686 x86_64)
+url="http://fcron.free.fr"
+license=('GPL')
+depends=('sh')
+makedepends=('smtp-server')
+optdepends=('smtp-server: to receive mails from cron jobs')
+provides=('cron')
+conflicts=('dcron')
+backup=(etc/fcron/fcron.conf etc/fcron/fcron.allow etc/fcron/fcron.deny \
+ var/spool/fcron/systab var/spool/fcron/systab.orig)
+install=fcron.install
+options=('emptydirs' '!makeflags')
+source=(http://fcron.free.fr/archives/$pkgname-$pkgver.src.tar.gz fcron.rc \
+ systab systab.orig run-cron)
+md5sums=('69ebcb41921e2a282f41ebecb3a27053'
+ 'e0c3f0bdc3c98fbbe46eff19001c18f2'
+ '938722c6654ef7b07f4aa10001905ba1'
+ 'bfb7daa22ebe22b9917e455c1ca4a382'
+ '5ff0cdcb9ec99778938ac6ef26800327')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/fcron \
+ --with-answer-all=no \
+ --with-boot-install=no \
+ --with-username=cron \
+ --with-groupname=cron \
+ --datarootdir=/usr/share \
+ --datadir=/usr/share \
+ --with-docdir=/usr/share/doc \
+ --localstatedir=/var \
+ --with-editor=/usr/bin/vi \
+ --with-sendmail=/usr/sbin/sendmail
+ make
+}
+
+package() {
+ # Create necessary user and group
+ getent group cron || /usr/sbin/groupadd -g 22 cron
+ getent passwd cron || /usr/sbin/useradd -d / -g cron -u 22 -s /bin/false cron
+
+ cd "$srcdir/$pkgname-$pkgver"
+ mkdir -p "$pkgdir/var/spool"
+ make DESTDIR="$pkgdir/" install
+ install -D -m755 "$srcdir/fcron.rc" "$pkgdir/etc/rc.d/fcron"
+ install -D -m644 "$srcdir/$pkgname-$pkgver/files/fcron.pam" "$pkgdir/etc/pam.d/fcron"
+ install -D -m644 "$srcdir/$pkgname-$pkgver/files/fcrontab.pam" "$pkgdir/etc/pam.d/fcrontab"
+ # Install default fcrontab so that fcron can completely replace dcron
+ install -D -m600 "$srcdir/systab" "$pkgdir/var/spool/fcron/systab"
+ # In order to preserve the systab crontab in any case it is better to have
+ # it in non-binary form too
+ install -D -m600 "$srcdir/systab.orig" "$pkgdir/var/spool/fcron/systab.orig"
+ # Add cron.* directories
+ install -d -m755 "$pkgdir/etc/cron.daily"
+ install -d -m755 "$pkgdir/etc/cron.hourly"
+ install -d -m755 "$pkgdir/etc/cron.monthly"
+ install -d -m755 "$pkgdir/etc/cron.weekly"
+ # Install run-cron script to make fcron run without dcron
+ install -D -m755 "$srcdir/run-cron" "$pkgdir/usr/sbin/run-cron"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/fcron/fcron.install b/community/fcron/fcron.install
new file mode 100755
index 000000000..a1223138e
--- /dev/null
+++ b/community/fcron/fcron.install
@@ -0,0 +1,23 @@
+pre_install() {
+ # Create necessary user and group
+ getent group cron || /usr/sbin/groupadd -g 22 cron
+ getent passwd cron || /usr/sbin/useradd -d / -g cron -u 22 -s /bin/false cron
+}
+
+post_install() {
+ cat << "EOF"
+
+ Use fcrontab -u systab -e to edit the system crontab and change the defaults.
+
+ By default fcron uses vi as an editor for your crontab. If you want to use another editor
+ you can define it in /etc/fcron/fcron.conf. If for some odd reason you want to uninstall
+ vi and recompile fcron, you need to edit the PKGBUILD and pass
+ --with-editor=<pathtoyoureditor> to configure.
+
+ By default fcron uses /usr/sbin/sendmail (as in the packages providing smtp-sever, such as
+ exim and postfix) to send mails about your cron jobs. If there is no /usr/sbin/sendmail you
+ won't get mails. If you want to use a MTA with a different path you can define it
+ /etc/fcron/fcron.conf.
+
+EOF
+}
diff --git a/community/fcron/fcron.rc b/community/fcron/fcron.rc
new file mode 100755
index 000000000..880439a1d
--- /dev/null
+++ b/community/fcron/fcron.rc
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/fcron`
+case "$1" in
+ start)
+ stat_busy "Starting Fcron Daemon"
+ [ -z "$PID" ] && /usr/sbin/fcron -b
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon fcron
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Fcron Daemon"
+ [ -n "$PID" ] && kill $PID >/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon fcron
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/fcron/run-cron b/community/fcron/run-cron
new file mode 100755
index 000000000..51007a15a
--- /dev/null
+++ b/community/fcron/run-cron
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+
+if [ -z $1 ]; then
+ echo "Usage: $0 crondir"
+ exit 1
+fi
+
+for cron in $1/* ; do
+ if [ -x $cron ]; then
+ $cron
+ fi
+done
+unset cron
diff --git a/community/fcron/systab b/community/fcron/systab
new file mode 100755
index 000000000..11c7e2fd0
--- /dev/null
+++ b/community/fcron/systab
Binary files differ
diff --git a/community/fcron/systab.orig b/community/fcron/systab.orig
new file mode 100644
index 000000000..5b0045626
--- /dev/null
+++ b/community/fcron/systab.orig
@@ -0,0 +1,4 @@
+&bootrun 01 * * * * /usr/sbin/run-cron /etc/cron.hourly
+&bootrun 02 00 * * * /usr/sbin/run-cron /etc/cron.daily
+&bootrun 22 00 * * 0 /usr/sbin/run-cron /etc/cron.weekly
+&bootrun 42 00 1 * * /usr/sbin/run-cron /etc/cron.monthly
diff --git a/community/fdm/GNUmakefile.patch b/community/fdm/GNUmakefile.patch
new file mode 100644
index 000000000..8320b9af5
--- /dev/null
+++ b/community/fdm/GNUmakefile.patch
@@ -0,0 +1,49 @@
+--- fdm-1,6/GNUmakefile 2008-12-22 21:50:05.000000000 +0530
++++ fdm-1.6/GNUmakefile 2009-05-09 19:07:21.000000000 +0530
+@@ -8,10 +8,7 @@
+
+ #DEBUG= 1
+
+-PREFIX?= /usr/local
+-
+-BIN_OWNER= bin
+-BIN_GROUP= root
++PREFIX?= /usr
+
+ CC= gcc
+
+@@ -27,8 +24,8 @@
+ endif
+
+ INSTALLDIR= install -d
+-INSTALLBIN= install -g $(BIN_OWNER) -o $(BIN_GROUP) -m 555
+-INSTALLMAN= install -g $(BIN_OWNER) -o $(BIN_GROUP) -m 444
++INSTALLBIN= install -m 0755
++INSTALLMAN= install -m 0644
+
+ SRCS= fdm.c \
+ attach.c buffer.c cleanup.c command.c connect.c io.c log.c netrc.c \
+@@ -72,7 +69,7 @@
+ endif
+
+ OBJS= $(patsubst %.c,%.o,$(SRCS))
+-CPPFLAGS+= $(DEFS) -I. -I- $(INCDIRS)
++CPPFLAGS+= $(DEFS) -I. -iquote. $(INCDIRS)
+ ifdef DEBUG
+ CFLAGS+= -g -ggdb -DDEBUG
+ LDFLAGS+= -rdynamic
+@@ -115,10 +112,10 @@
+ install:
+ $(INSTALLDIR) $(DESTDIR)$(PREFIX)/bin
+ $(INSTALLBIN) $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG)
+- $(INSTALLDIR) $(DESTDIR)$(PREFIX)/man/man1
+- $(INSTALLMAN) $(PROG).1 $(DESTDIR)$(PREFIX)/man/man1/$(PROG).1
+- $(INSTALLDIR) $(DESTDIR)$(PREFIX)/man/man5
+- $(INSTALLMAN) $(PROG).conf.5 $(DESTDIR)$(PREFIX)/man/man5/$(PROG).conf.5
++ $(INSTALLDIR) $(DESTDIR)$(PREFIX)/share/man/man1
++ $(INSTALLMAN) $(PROG).1 $(DESTDIR)$(PREFIX)/share/man/man1/$(PROG).1
++ $(INSTALLDIR) $(DESTDIR)$(PREFIX)/share/man/man5
++ $(INSTALLMAN) $(PROG).conf.5 $(DESTDIR)$(PREFIX)/share/man/man5/$(PROG).conf.5
+
+ clean:
+ rm -f $(CLEANFILES)
diff --git a/community/fdm/LICENSE b/community/fdm/LICENSE
new file mode 100644
index 000000000..e6e2170a2
--- /dev/null
+++ b/community/fdm/LICENSE
@@ -0,0 +1,14 @@
+Copyright (c) 2006 Nicholas Marriott <nicm@users.sourceforge.net>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
diff --git a/community/fdm/PKGBUILD b/community/fdm/PKGBUILD
new file mode 100644
index 000000000..5f1b8960a
--- /dev/null
+++ b/community/fdm/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 14180 2010-04-01 23:59:34Z andrea $
+# Maintainer:
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Grigorios Bouzakis <grbzks@gmail.com>
+
+pkgname=fdm
+pkgver=1.6
+pkgrel=2
+pkgdesc="A program to fetch and deliver mail"
+arch=('i686' 'x86_64')
+url="http://fdm.sourceforge.net"
+license=('BSD')
+depends=('openssl' 'tdb')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz"
+ 'GNUmakefile.patch'
+ 'LICENSE')
+md5sums=('b2b9bfe95217b290142bde1621eb9a37'
+ '52955d31121a6365914a0d063be5b32b'
+ 'b0043d5c7160e5f797048d0d584ef4fa')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i $srcdir/GNUmakefile.patch || return 1
+
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -D -m 644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+# Examples
+ mkdir -p "$pkgdir/usr/share/doc/$pkgname/examples"
+ mv "$srcdir/$pkgname-$pkgver/examples" "$pkgdir/usr/share/doc/$pkgname/"
+}
diff --git a/community/fdm/fdm.conf b/community/fdm/fdm.conf
new file mode 100644
index 000000000..ad58f3606
--- /dev/null
+++ b/community/fdm/fdm.conf
@@ -0,0 +1,2 @@
+# Default system-wide configuration file for fdm.
+# You probably want to make a ~/.fdm.conf, and not edit this file.
diff --git a/community/fdupes/ChangeLog b/community/fdupes/ChangeLog
new file mode 100644
index 000000000..2fbc6489c
--- /dev/null
+++ b/community/fdupes/ChangeLog
@@ -0,0 +1,11 @@
+2008-10-05 Eric Belanger <eric@archlinux.org>
+
+ * fdupes 1.40-4
+ * Added x86_64 arch tag
+ * Fixed license
+ * FHS man pages
+
+2008-10-03 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Adding package to community: 1.40
+
diff --git a/community/fdupes/LICENSE b/community/fdupes/LICENSE
new file mode 100644
index 000000000..d353aab98
--- /dev/null
+++ b/community/fdupes/LICENSE
@@ -0,0 +1,22 @@
+Legal Information
+--------------------------------------------------------------------
+FDUPES Copyright (c) 1999 Adrian Lopez
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation files
+(the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/community/fdupes/PKGBUILD b/community/fdupes/PKGBUILD
new file mode 100644
index 000000000..220f932ac
--- /dev/null
+++ b/community/fdupes/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 17235 2010-05-22 14:11:06Z daenyth $
+# Maintainer: Daenyth <Daenyth+Arch at gmail dot com>
+# Contributor: Chris Winter <twidds at gmail dot com>
+
+pkgname=fdupes
+pkgver=1.40
+pkgrel=5
+pkgdesc="a program for identifying or deleting duplicate files residing within specified directories"
+arch=('i686' 'x86_64')
+url="http://premium.caribe.net/~adrian2/fdupes.html"
+license=('MIT')
+source=(http://premium.caribe.net/~adrian2/programs/$pkgname-$pkgver.tar.gz LICENSE)
+md5sums=('11de9ab4466089b6acbb62816b30b189' '47f17890218f832f870bf7a02eaeb017')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ install -d $pkgdir/usr/{share/man/man1,bin}
+
+ make || return 1
+ make INSTALLDIR=$pkgdir/usr/bin MANPAGEDIR=$pkgdir/usr/share/man install
+ install -D -m644 ../LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ffmpeg2theora/ChangeLog b/community/ffmpeg2theora/ChangeLog
new file mode 100644
index 000000000..266ff0032
--- /dev/null
+++ b/community/ffmpeg2theora/ChangeLog
@@ -0,0 +1,23 @@
+2010-06-25 Eric Belanger <eric@archlinux.org>
+
+ * ffmpeg2theora 0.27-1
+ * Upstream update
+
+2010-02-05 Eric Belanger <eric@archlinux.org>
+
+ * ffmpeg2theora 0.26-1
+ * Upstream update
+ * Updated license
+ * Updated source url
+
+2010-01-10 Eric Belanger <eric@archlinux.org>
+
+ * ffmpeg2theora 0.25-1
+ * Upstream update
+ * Built against ffmpeg 20100108
+
+2009-06-06 Eric Belanger <eric@archlinux.org>
+
+ * ffmpeg2theora 0.24-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/community/ffmpeg2theora/PKGBUILD b/community/ffmpeg2theora/PKGBUILD
new file mode 100644
index 000000000..2735fde10
--- /dev/null
+++ b/community/ffmpeg2theora/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 19599 2010-06-26 01:11:45Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=ffmpeg2theora
+pkgver=0.27
+pkgrel=1
+pkgdesc="A simple converter to create Ogg Theora files"
+arch=('i686' 'x86_64')
+url="http://www.v2v.cc/~j/ffmpeg2theora/"
+license=('GPL3')
+depends=('ffmpeg')
+makedepends=('pkgconfig' 'scons')
+source=(http://www.v2v.cc/~j/ffmpeg2theora/downloads/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ec6bc7418aeb37f20759280f236c214a')
+sha1sums=('7480eb53995707f3f37769f5bfb590e56f943ac6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ scons
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ scons install destdir="${pkgdir}" prefix="/usr" mandir="PREFIX/share/man"
+}
diff --git a/community/fftw2/PKGBUILD b/community/fftw2/PKGBUILD
new file mode 100644
index 000000000..4198e96fc
--- /dev/null
+++ b/community/fftw2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=fftw2
+pkgver=2.1.5
+pkgrel=4
+pkgdesc="FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of both real and complex data, and of arbitrary input size. This is package is offering backwards compatibility version 2.x.y. of fftw."
+arch=(i686 x86_64)
+url="http://www.fftw.org/"
+license=('GPL2')
+depends=('glibc')
+options=(!libtool)
+source=(http://www.fftw.org/fftw-${pkgver}.tar.gz)
+md5sums=('8d16a84f3ca02a785ef9eb36249ba433')
+
+build() {
+ cd ${startdir}/src/fftw-${pkgver}
+ # build + install double precision
+ ./configure F77=gfortran --prefix=/usr \
+ --enable-type-prefix --enable-shared \
+ --enable-threads
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+
+ make clean
+
+ # build + install single precision
+ ./configure F77=gfortran --prefix=/usr \
+ --enable-float --enable-type-prefix --enable-shared \
+ --enable-threads
+ make || return 1
+ #make prefix=$startdir/pkg/usr install || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+}
diff --git a/community/fgetty/ChangeLog b/community/fgetty/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/fgetty/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/fgetty/PKGBUILD b/community/fgetty/PKGBUILD
new file mode 100644
index 000000000..f179868f2
--- /dev/null
+++ b/community/fgetty/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 39532 2011-02-11 12:12:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alois Belaska <lloyd@centrum.cz>
+
+pkgname=fgetty
+pkgver=0.7
+pkgrel=3
+pkgdesc="A mingetty stripped of the printfs"
+arch=('i686' 'x86_64')
+url='http://www.fefe.de/fgetty/'
+license=('GPL')
+depends=()
+makedepends=('dietlibc')
+options=(zipman)
+source=(http://www.fefe.de/fgetty/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('1ecb286ffe3a87ef160eefc38e9038a5')
+
+build() {
+ export PATH=$PATH:/opt/diet/bin
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+ make DESTDIR=${pkgdir} install
+ mkdir -p $pkgdir/usr/share/
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/filezilla/PKGBUILD b/community/filezilla/PKGBUILD
new file mode 100644
index 000000000..4b7e9ea0e
--- /dev/null
+++ b/community/filezilla/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 43810 2011-03-29 21:55:24Z jelle $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=filezilla
+pkgver=3.4.0
+pkgrel=1
+pkgdesc="Fast and reliable FTP, FTPS and SFTP client"
+arch=('i686' 'x86_64')
+url="http://filezilla-project.org/"
+license=('GPL')
+depends=('dbus-core' 'xdg-utils' 'wxgtk' 'libidn' 'hicolor-icon-theme')
+install=filezilla.install
+source=("http://downloads.sourceforge.net/project/filezilla/FileZilla_Client/${pkgver}/FileZilla_${pkgver}_src.tar.bz2")
+md5sums=('25617d75167d07c0d3cfced69a4cf7cc')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./autogen.sh
+ ./configure \
+ --prefix=/usr \
+ --disable-manualupdatecheck \
+ --disable-autoupdatecheck \
+ --disable-static \
+ --with-tinyxml=builtin
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('837fbea08366b9f9de02b1671994697e')
diff --git a/community/filezilla/filezilla.install b/community/filezilla/filezilla.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/community/filezilla/filezilla.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/fillets-ng/PKGBUILD b/community/fillets-ng/PKGBUILD
new file mode 100644
index 000000000..07a38da89
--- /dev/null
+++ b/community/fillets-ng/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 36474 2011-01-02 19:39:06Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=fillets-ng
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A port of the wonderful puzzle game Fish Fillets"
+url="http://fillets.sf.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('fillets-ng-data' 'lua' 'fribidi' 'gcc-libs' 'libx11' 'sdl_mixer' 'sdl_ttf' 'sdl_image' 'desktop-file-utils')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/fillets/$pkgname-$pkgver.tar.gz \
+ http://fillets.sourceforge.net/img/icon.png \
+ $pkgname.desktop)
+md5sums=('276bb416d7f8bf9ef0969fd7a3c42d52'
+ '746a6f71ba1a6b5a918f04448b3db7eb'
+ '803617e630043e49807b380cd28803dc')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --datadir=/usr/share/$pkgname
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+#.desktop and icon files
+ install -D -m644 ${srcdir}/icon.png \
+ ${pkgdir}/usr/share/pixmaps/$pkgname.png
+ install -D -m644 ${srcdir}/$pkgname.desktop \
+ ${pkgdir}/usr/share/applications/$pkgname.desktop
+
+}
diff --git a/community/fillets-ng/fillets-ng.changelog b/community/fillets-ng/fillets-ng.changelog
new file mode 100644
index 000000000..12807915a
--- /dev/null
+++ b/community/fillets-ng/fillets-ng.changelog
@@ -0,0 +1,20 @@
+2011-01-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.0
+
+2010-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.9.3
+
+2009-10-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.9.2
+
+2009-07-07 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.9.1
+
+2009-06-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.9.0
+
+2009-01-10 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.8.1
+
+2008-08-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community]
diff --git a/community/fillets-ng/fillets-ng.desktop b/community/fillets-ng/fillets-ng.desktop
new file mode 100644
index 000000000..69731d098
--- /dev/null
+++ b/community/fillets-ng/fillets-ng.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Name=Fillets-NG
+GenericName=Fish Fillets
+Comment=Wonderful puzzle game Fish Fillets
+Comment[cs]=Podmořská logická hra ve které ovládáte dva rybí agenty
+Icon=fillets-ng
+Exec=fillets
+StartupNotify=true
+Terminal=false
+Categories=Game;LogicGame;
diff --git a/community/fillets-ng/fillets-ng.install b/community/fillets-ng/fillets-ng.install
new file mode 100644
index 000000000..de3e0f510
--- /dev/null
+++ b/community/fillets-ng/fillets-ng.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "Updating desktop and mime database ..."
+ update-desktop-database -q
+}
diff --git a/community/fio/PKGBUILD b/community/fio/PKGBUILD
new file mode 100644
index 000000000..ef83cbd82
--- /dev/null
+++ b/community/fio/PKGBUILD
@@ -0,0 +1,23 @@
+#Maintainer: Thomas S Hatch <thatch45@gmail.com>
+pkgname=fio
+pkgver=1.50
+pkgrel=2
+pkgdesc="I/O tool meant to be used both for benchmark and stress/hardware verification"
+arch=('x86_64' 'i686')
+url="http://freshmeat.net/projects/fio"
+license=('GPL2')
+makedepends=('gcc')
+depends=('libaio')
+noextract=()
+source=("http://brick.kernel.dk/snaps/fio-${pkgver}.tar.bz2")
+md5sums=('e28fe02e4a5ced7aaa1dddf6f48c1490')
+
+build() {
+ cd $srcdir/fio-${pkgver}
+ make
+}
+
+package() {
+ cd $srcdir/fio-${pkgver}
+ make DESTDIR="${pkgdir}" prefix="/usr" mandir="/usr/share/man" install
+}
diff --git a/community/fish/PKGBUILD b/community/fish/PKGBUILD
new file mode 100644
index 000000000..6be578f71
--- /dev/null
+++ b/community/fish/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 39735 2011-02-15 21:06:59Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Jan Fader <jan.fader@web.de>
+
+pkgname=fish
+pkgver=1.23.1
+pkgrel=4
+pkgdesc="User friendly shell intended mostly for interactive use"
+arch=('i686' 'x86_64')
+url="http://fishshell.com/"
+license=("GPL" "LGPL" "BSD" "MIT")
+depends=('ncurses' 'bc')
+makedepends=('doxygen')
+install=fish.install
+source=(http://fishshell.com/files/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('ead6b7c6cdb21f35a3d4aa1d5fa596f1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --docdir=/usr/share/doc/fish --without-xsel
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ install -D -m644 user_doc/html/license.html "$pkgdir/usr/share/licenses/$pkgname/license.html"
+}
diff --git a/community/fish/fish.install b/community/fish/fish.install
new file mode 100644
index 000000000..c3f89cd84
--- /dev/null
+++ b/community/fish/fish.install
@@ -0,0 +1,15 @@
+post_install() {
+ if [ ! "`grep /usr/bin/fish etc/shells`" ]; then
+ echo "updating /etc/shells... done."
+ sed -i "s|/bin/bash|/bin/bash\n/usr/bin/fish|" etc/shells
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo -ne "updating /etc/shells... \n"
+ sed -i '/^\/usr\/bin\/fish/d' /etc/shells
+}
diff --git a/community/fityk/PKGBUILD b/community/fityk/PKGBUILD
new file mode 100644
index 000000000..fc973936a
--- /dev/null
+++ b/community/fityk/PKGBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Cuneyt Unlu <unlucu AT gmail.com>
+
+pkgname=fityk
+pkgver=1.0.1
+pkgrel=1
+pkgdesc='A program for nonlinear fitting of analytical functions to data.'
+arch=('i686' 'x86_64')
+url='http://www.unipress.waw.pl/fityk/'
+license=('GPL')
+depends=('boost-libs' 'xylib' 'wxgtk' 'shared-mime-info')
+makedepends=('boost' 'git' 'python-sphinx')
+options=('!libtool')
+install=${pkgname}.install
+source=('http://prdownloads.sourceforge.net/wxwindows/wxWidgets-2.9.1.tar.bz2')
+md5sums=('81c20d7b2ba31becb18e467dbe09be8f')
+
+build() {
+ cd wxWidgets-2.9.1
+ ./configure --prefix=${srcdir}/usr --disable-shared --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys
+ make
+ make install
+
+ cd ${srcdir}
+ git clone git://github.com/wojdyr/fityk.git
+ cd fityk
+ ##git checkout v${pkgver}
+ #cd ${pkgname}-${pkgver}
+
+ # disable xyconvert because wxwidgets>=2.9 is needed (dev version) and it isn't standard with arch yet
+ #--disable-xyconvert \
+ ./autogen.sh \
+ --prefix=/usr \
+ --without-doc \
+ --with-wx-prefix=${srcdir}/usr
+ #./configure \
+
+ make
+}
+
+package() {
+ cd fityk
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/fityk/fityk.install b/community/fityk/fityk.install
new file mode 100644
index 000000000..6b399fa54
--- /dev/null
+++ b/community/fityk/fityk.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database /usr/share/mime
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/flac123/ChangeLog b/community/flac123/ChangeLog
new file mode 100644
index 000000000..72fa008c4
--- /dev/null
+++ b/community/flac123/ChangeLog
@@ -0,0 +1,3 @@
+2007-11-09 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Adopted and built for [community]
diff --git a/community/flac123/PKGBUILD b/community/flac123/PKGBUILD
new file mode 100644
index 000000000..b6849ca3e
--- /dev/null
+++ b/community/flac123/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 15382 2010-04-11 02:08:54Z andrea $
+# Maintainer: Chris Brannon
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Patrick Burroughs <celticmadman@gmail.com>
+
+pkgname=flac123
+pkgver=0.0.11
+pkgrel=3
+arch=('i686' 'x86_64')
+license=('GPL2')
+pkgdesc="A command-line program for playing FLAC audio files"
+url="http://flac-tools.sourceforge.net/"
+depends=('flac' 'libao' 'popt')
+source=(http://downloads.sourceforge.net/flac-tools/${pkgname}-${pkgver}.tar.gz)
+md5sums=('60204986d3556330255b87aa42a4c9d1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/flam3/PKGBUILD b/community/flam3/PKGBUILD
new file mode 100644
index 000000000..ec2af543b
--- /dev/null
+++ b/community/flam3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 33592 2010-11-26 06:08:59Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=flam3
+pkgver=3.0
+pkgrel=1
+pkgdesc="Tools to create/display fractal flames: algorithmically generated images and animations"
+arch=('i686' 'x86_64')
+url="http://flam3.com/"
+license=('GPL')
+depends=('libjpeg' 'libpng' 'libxml2')
+options=('!libtool')
+source=(http://flam3.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('0526e476338327f718d76e6f48ddc090')
+sha1sums=('5b3317bdf51ecce7414a728c9d3735122a083b23')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ sed -i 's|libpng12|libpng|g' flam3.pc.in
+ ./configure --prefix=/usr --enable-shared
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/flashrom/PKGBUILD b/community/flashrom/PKGBUILD
new file mode 100644
index 000000000..77539783c
--- /dev/null
+++ b/community/flashrom/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 38872 2011-02-02 16:42:39Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Cilyan Olowen <gaknar@gmail.com>
+# Contributor: fill <mailbox@fillo.ru>
+# Contributor: Anton Shestakov <engored*ya.ru>
+
+pkgname=flashrom
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="Utility for reading, writing, erasing and verifying flash ROM chips"
+url="http://www.coreboot.org/Flashrom"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libftdi')
+makedepends=('zlib' 'pciutils')
+source=("http://qa.coreboot.org/releases/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('eccdec2764223f5d2839bf577380eaa9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX="${pkgdir}/usr" install || return 1
+}
diff --git a/community/fldiff/PKGBUILD b/community/fldiff/PKGBUILD
new file mode 100644
index 000000000..2946ef440
--- /dev/null
+++ b/community/fldiff/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 8588 2010-01-21 01:26:51Z dgriffiths $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: iztok pizorn <pizorn@gmail.com>
+
+pkgname=fldiff
+pkgver=1.1
+pkgrel=5
+pkgdesc="graphical diff program"
+arch=(i686 x86_64)
+url="http://www.easysw.com/~mike/fldiff/"
+source=(http://www.easysw.com/~mike/fldiff/$pkgname-$pkgver-source.tar.gz)
+license=('GPL')
+install=fldiff.install
+depends=('diffutils' 'fltk' 'xdg-utils')
+md5sums=('12897c92106fb5d665210a2e82f5cf25')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make BUILDROOT=$startdir/pkg install install-desktop || return 1
+ mv `find $startdir/pkg/ -name Development -type d` $startdir/pkg/usr/share/applications
+}
diff --git a/community/fldiff/fldiff.install b/community/fldiff/fldiff.install
new file mode 100644
index 000000000..b4ee8556f
--- /dev/null
+++ b/community/fldiff/fldiff.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community/flightgear-atlas/PKGBUILD b/community/flightgear-atlas/PKGBUILD
new file mode 100644
index 000000000..8cbd7a8ee
--- /dev/null
+++ b/community/flightgear-atlas/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: William Rea <sillywilly@gmail.com>
+# Contributor: Hans Janssen <hans@janserv.xs4all.nl>
+
+pkgname=flightgear-atlas
+pkgver=0.3.1
+pkgrel=3
+arch=(i686 x86_64)
+pkgdesc="aims to produce and display high quality charts of the world for users of FlightGear."
+depends=('flightgear-data' 'libpng' 'libjpeg')
+makedepends=('simgear')
+url="http://atlas.sourceforge.net"
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/atlas/Atlas-$pkgver.tar.gz \
+ build-fix.patch)
+md5sums=('15bba54523a29928a14f17af449f960e'
+ '6ad0d34b617d9ca680a63c965479eb7c')
+
+build() {
+ cd $startdir/src/Atlas-$pkgver
+
+ patch -p1 <$srcdir/build-fix.patch
+
+ LDFLAGS="-lsgstructure" ./configure --prefix=/usr
+
+ perl -ne 's/LIBS =(.+)/LIBS =$1 -lsgstructure/g; print;' src/Makefile >src/Makefile2 && \
+ mv src/Makefile2 src/Makefile
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ mkdir -p $startdir/pkg/usr/share/FlightGear/data
+ cp $startdir/src/Atlas-$pkgver/src/AtlasPalette $startdir/pkg/usr/share/FlightGear/data
+}
diff --git a/community/flightgear-atlas/build-fix.patch b/community/flightgear-atlas/build-fix.patch
new file mode 100644
index 000000000..5f190d386
--- /dev/null
+++ b/community/flightgear-atlas/build-fix.patch
@@ -0,0 +1,448 @@
+diff -wbBur Atlas-0.3.1/src/Atlas.cxx Atlas-0.3.1.my/src/Atlas.cxx
+--- Atlas-0.3.1/src/Atlas.cxx 2006-10-28 16:28:32.000000000 +0000
++++ Atlas-0.3.1.my/src/Atlas.cxx 2009-03-11 16:33:33.000000000 +0000
+@@ -29,7 +29,7 @@
+ #include <memory.h>
+ #include <stdio.h>
+ #include <simgear/compiler.h>
+-#include SG_GLUT_H
++#include <GL/glut.h>
+ #include <plib/fnt.h>
+ #include <plib/pu.h>
+ #include <string>
+@@ -40,6 +40,8 @@
+ #include "Overlays.hxx"
+ #include "FlightTrack.hxx"
+
++#include <iostream>
++
+ #define SCALECHANGEFACTOR 1.3f
+
+ SGIOChannel *input_channel;
+@@ -345,7 +347,7 @@
+
+ string nav1_freq_str = msg.substr(begin, end - begin);
+ begin = end + 1;
+- cout << " nav1_freq = " << nav1_freq_str << endl;
++ std::cout << " nav1_freq = " << nav1_freq_str << std::endl;
+
+ // nav1 selected radial
+ end = msg.find(",", begin);
+@@ -355,7 +357,7 @@
+
+ string nav1_rad_str = msg.substr(begin, end - begin);
+ begin = end + 1;
+- cout << " nav1_rad = " << nav1_rad_str << endl;
++ std::cout << " nav1_rad = " << nav1_rad_str << std::endl;
+
+ // nav2 freq
+ end = msg.find(",", begin);
+@@ -365,7 +367,7 @@
+
+ string nav2_freq_str = msg.substr(begin, end - begin);
+ begin = end + 1;
+- cout << " nav2_freq = " << nav2_freq_str << endl;
++ std::cout << " nav2_freq = " << nav2_freq_str << std::endl;
+
+ // nav2 selected radial
+ end = msg.find(",", begin);
+@@ -375,7 +377,7 @@
+
+ string nav2_rad_str = msg.substr(begin, end - begin);
+ begin = end + 1;
+- cout << " nav2_rad = " << nav2_rad_str << endl;
++ std::cout << " nav2_rad = " << nav2_rad_str << std::endl;
+
+ // adf freq
+ end = msg.find("*", begin);
+@@ -385,7 +387,7 @@
+
+ string adf_freq_str = msg.substr(begin, end - begin);
+ begin = end + 1;
+- cout << " adf_freq = " << adf_freq_str << endl;
++ std::cout << " adf_freq = " << adf_freq_str << std::endl;
+
+ nav1_freq = atof( nav1_freq_str.c_str() );
+ nav1_rad = atof( nav1_rad_str.c_str() ) *
+diff -wbBur Atlas-0.3.1/src/FlightTrack.cxx Atlas-0.3.1.my/src/FlightTrack.cxx
+--- Atlas-0.3.1/src/FlightTrack.cxx 2003-01-07 21:51:12.000000000 +0000
++++ Atlas-0.3.1.my/src/FlightTrack.cxx 2009-03-11 16:33:33.000000000 +0000
+@@ -29,7 +29,7 @@
+ }
+
+ FlightTrack::~FlightTrack() {
+- for (list<FlightData*>::iterator i = track.begin(); i != track.end(); i++) {
++ for (std::list<FlightData*>::iterator i = track.begin(); i != track.end(); i++) {
+ delete *i;
+ }
+ }
+diff -wbBur Atlas-0.3.1/src/FlightTrack.hxx Atlas-0.3.1.my/src/FlightTrack.hxx
+--- Atlas-0.3.1/src/FlightTrack.hxx 2003-01-07 21:51:12.000000000 +0000
++++ Atlas-0.3.1.my/src/FlightTrack.hxx 2009-03-11 16:33:30.000000000 +0000
+@@ -27,7 +27,7 @@
+ #include <plib/sg.h>
+ #include <simgear/compiler.h>
+
+-SG_USING_STD(list);
++#include <list>
+
+ struct FlightData {
+ float lat, lon, alt, hdg, spd;
+@@ -51,8 +51,8 @@
+ protected:
+ unsigned int max_buffer;
+
+- list<FlightData*> track;
+- list<FlightData*>::iterator track_pos;
++ std::list<FlightData*> track;
++ std::list<FlightData*>::iterator track_pos;
+ };
+
+
+diff -wbBur Atlas-0.3.1/src/Map.cxx Atlas-0.3.1.my/src/Map.cxx
+--- Atlas-0.3.1/src/Map.cxx 2006-10-26 21:45:05.000000000 +0000
++++ Atlas-0.3.1.my/src/Map.cxx 2009-03-11 16:35:10.000000000 +0000
+@@ -39,7 +39,7 @@
+ #include <plib/ul.h>
+
+ #include <simgear/compiler.h>
+-#include SG_GL_H
++#include <GL/gl.h>
+ #ifdef UL_GLX
+ # define GLX_GLXEXT_PROTOTYPES
+ # ifdef __APPLE__
+@@ -50,7 +50,7 @@
+ #elif defined UL_WIN32
+ # include <windows.h>
+ #endif
+-#include SG_GLUT_H
++#include <GL/glut.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <sys/stat.h>
+@@ -65,10 +65,10 @@
+ #include <simgear/screen/RenderTexture.h>
+ #include "Scenery.hxx"
+ #include <vector>
+-#include STL_STRING
++#include <string>
+
+-SG_USING_STD(vector);
+-SG_USING_STD(string);
++#include <vector>
++#include <iostream>
+
+ typedef vector<string> string_list;
+
+@@ -319,9 +319,9 @@
+ }
+
+ bool ContinueIfNoHeadless() {
+- cout << "Unable to continue in headless mode - revert to doublebuffer mode? [Y/n] ";
++ std::cout << "Unable to continue in headless mode - revert to doublebuffer mode? [Y/n] ";
+ char c;
+- cin >> c;
++ std::cin >> c;
+ return((c == 'n' || c == 'N') ? false : true);
+ }
+
+@@ -439,7 +439,7 @@
+ scenerypath = new char[max_path_length + 256];
+ scenery_pos = 0;
+ } else {
+- cout << "No scenery paths could be found. You need to set either a valid FG_ROOT and/or FG_SCENERY variable, or specify a valid --fg-root and/or --fg-scenery on the command line.\n";
++ std::cout << "No scenery paths could be found. You need to set either a valid FG_ROOT and/or FG_SCENERY variable, or specify a valid --fg-root and/or --fg-scenery on the command line.\n";
+ exit(-1);
+ }
+
+@@ -467,7 +467,7 @@
+ }
+ dir1 = ulOpenDir(outp);
+ if(NULL == dir1) {
+- cout << "Unable to create requested Atlas map directory " << outp << "... exiting :-(\n";
++ std::cout << "Unable to create requested Atlas map directory " << outp << "... exiting :-(\n";
+ exit(-1);
+ }
+
+@@ -502,17 +502,17 @@
+ if(dir1 != NULL) {
+ path_found = true;
+ scenerypath[sz] = '\0';
+- //cout << "Scenerypath found, = " << scenerypath << '\n';
++ //std::cout << "Scenerypath found, = " << scenerypath << '\n';
+ break;
+ }
+- //cout << scenerypath << (dir1 == NULL ? " does not exist..." : " exists!") << '\n';
++ //std::cout << scenerypath << (dir1 == NULL ? " does not exist..." : " exists!") << '\n';
+ }
+ if(!path_found) {
+- cout << "Unable to find required subdirectory " << dpath1 << '/' << dpath2 << " on the available scenery paths:\n";
++ std::cout << "Unable to find required subdirectory " << dpath1 << '/' << dpath2 << " on the available scenery paths:\n";
+ for(unsigned int i = 0; i < fg_scenery.size(); ++i) {
+- cout << fg_scenery[i] << '\n';
++ std::cout << fg_scenery[i] << '\n';
+ }
+- cout << "... unable to continue - exiting!\n";
++ std::cout << "... unable to continue - exiting!\n";
+ exit(-1);
+ }
+ }
+diff -wbBur Atlas-0.3.1/src/MapBrowser.cxx Atlas-0.3.1.my/src/MapBrowser.cxx
+--- Atlas-0.3.1/src/MapBrowser.cxx 2005-09-29 19:18:01.000000000 +0000
++++ Atlas-0.3.1.my/src/MapBrowser.cxx 2009-03-11 16:33:33.000000000 +0000
+@@ -112,7 +112,7 @@
+
+ void MapBrowser::changeResolution(char *path) {
+ MapTile *tile;
+- list<MapTile*>::iterator i = tiles.end(),
++ std::list<MapTile*>::iterator i = tiles.end(),
+ itmp;
+ i--;
+ while (tiles.begin() != tiles.end()) {
+@@ -171,7 +171,7 @@
+ glEnable( GL_TEXTURE_2D );
+ GLfloat tilesize = earth_radius_lat(clat) * SG_DEGREES_TO_RADIANS;
+
+- for (list<MapTile*>::iterator i = tiles.begin(); i != tiles.end(); i++) {
++ for (std::list<MapTile*>::iterator i = tiles.begin(); i != tiles.end(); i++) {
+ MapTile *tile = *i;
+ if ( tile->tex ) {
+ GLfloat dxs = 0.5f;
+@@ -237,7 +237,7 @@
+ if (max_lat > 90) max_lat = 90;
+ int num_lat = (max_lat - min_lat) + 1, num_lon = (max_lon - min_lon) + 1;
+
+- for (list<MapTile*>::iterator it = tiles.begin(); it != tiles.end(); it++) {
++ for (std::list<MapTile*>::iterator it = tiles.begin(); it != tiles.end(); it++) {
+ MapTile *tile = *it;
+
+ // remove old tiles
+@@ -246,7 +246,7 @@
+ tile->c.lon < min_lon - CACHE_LIMIT ||
+ tile->c.lon > max_lon + CACHE_LIMIT) {
+
+- list<MapTile*>::iterator tmp = it; tmp++;
++ std::list<MapTile*>::iterator tmp = it; tmp++;
+ if ( tile->tex ) {
+ glDeleteTextures( 1, &tile->texture_handle );
+ }
+diff -wbBur Atlas-0.3.1/src/MapBrowser.hxx Atlas-0.3.1.my/src/MapBrowser.hxx
+--- Atlas-0.3.1/src/MapBrowser.hxx 2006-10-28 16:28:32.000000000 +0000
++++ Atlas-0.3.1.my/src/MapBrowser.hxx 2009-03-11 16:33:30.000000000 +0000
+@@ -27,7 +27,7 @@
+ #include "FlightTrack.hxx"
+ #include "Projection.hxx"
+ #include <simgear/compiler.h>
+-#include SG_GL_H
++#include <GL/gl.h>
+ #include <math.h>
+ #include <list>
+ #include <map>
+@@ -113,9 +113,9 @@
+ }
+ };
+
+- typedef map<Coord, MapTile*, TileLess> TileTable;
++ typedef std::map<Coord, MapTile*, TileLess> TileTable;
+
+- list<MapTile*> tiles;
++ std::list<MapTile*> tiles;
+ TileTable tiletable;
+
+ char mpath[512];
+diff -wbBur Atlas-0.3.1/src/MapMaker.cxx Atlas-0.3.1.my/src/MapMaker.cxx
+--- Atlas-0.3.1/src/MapMaker.cxx 2005-09-29 19:18:01.000000000 +0000
++++ Atlas-0.3.1.my/src/MapMaker.cxx 2009-03-11 16:39:09.000000000 +0000
+@@ -32,6 +32,8 @@
+ #include <sys/stat.h>
+ #include <plib/ul.h>
+
++#include <iostream>
++
+ #include "MapMaker.hxx"
+ /*#include <simgear/magvar/magvar.hxx>*/
+
+@@ -626,7 +628,7 @@
+ }
+
+ int MapMaker::process_binary_file( char *tile_name, sgVec3 xyz ) {
+- //cout << "tile name = " << tile_name << '\n';
++ //std::cout << "tile name = " << tile_name << '\n';
+
+ //float cr; // reference point (gbs)
+ sgVec3 gbs, tmp;
+@@ -653,8 +655,8 @@
+
+ /* convert point_list of wgs84 nodes to a list of points transformed
+ into the maps local coordinate system */
+- const point_list wgs84_nodes = tile.get_wgs84_nodes();
+- for ( point_list::const_iterator node = wgs84_nodes . begin();
++ const std::vector< SGVec3<double> > wgs84_nodes = tile.get_wgs84_nodes();
++ for ( std::vector< SGVec3<double> >::const_iterator node = wgs84_nodes . begin();
+ node != wgs84_nodes . end();
+ node++ ) {
+
+@@ -674,8 +676,8 @@
+ }
+
+ // same as above for normals
+- const point_list m_norms = tile.get_normals();
+- for ( point_list::const_iterator normal = m_norms.begin();
++ const std::vector< SGVec3<float> > m_norms = tile.get_normals();
++ for ( std::vector< SGVec3<float> >::const_iterator normal = m_norms.begin();
+ normal != m_norms.end();
+ normal++ ) {
+ // Make a new normal
+@@ -760,8 +762,8 @@
+ }
+
+ if(0) {
+- cout << "Node_list sizes are nodes: " << wgs84_nodes.size() << " -- normals: " << m_norms.size() << '\n';
+- cout << "Group_list sizes are tris: " << tris.size() << " -- fans: " << fans.size() << " -- strips: " << strips.size() << '\n';
++ std::cout << "Node_list sizes are nodes: " << wgs84_nodes.size() << " -- normals: " << m_norms.size() << '\n';
++ std::cout << "Group_list sizes are tris: " << tris.size() << " -- fans: " << fans.size() << " -- strips: " << strips.size() << '\n';
+ }
+
+ for (i = 0; i < v.size(); i++) {
+diff -wbBur Atlas-0.3.1/src/MapMaker.hxx Atlas-0.3.1.my/src/MapMaker.hxx
+--- Atlas-0.3.1/src/MapMaker.hxx 2005-02-26 18:40:36.000000000 +0000
++++ Atlas-0.3.1.my/src/MapMaker.hxx 2009-03-11 16:33:30.000000000 +0000
+@@ -31,14 +31,14 @@
+ #include <vector>
+ #include <list>
+ #include <map>
+-#include STL_STRING
++#include <string>
+
+ #include "Output.hxx"
+ #include "Overlays.hxx"
+ #include "Geodesy.hxx"
+
+-SG_USING_STD(vector);
+-SG_USING_STD(string);
++#include <vector>
++#include <string>
+
+ // Utility function that I needed to put somewhere - this probably isn't the best place for it.
+ // Appends a path separator to a directory path if not present.
+diff -wbBur Atlas-0.3.1/src/MapPS.cxx Atlas-0.3.1.my/src/MapPS.cxx
+--- Atlas-0.3.1/src/MapPS.cxx 2005-09-29 19:18:01.000000000 +0000
++++ Atlas-0.3.1.my/src/MapPS.cxx 2009-03-11 16:40:31.000000000 +0000
+@@ -39,8 +39,9 @@
+ #include <plib/ul.h>
+ #include "Scenery.hxx"
+
+-SG_USING_STD(vector);
+-SG_USING_STD(string);
++#include <vector>
++#include <string>
++#include <iostream>
+
+ typedef vector<string> string_list;
+
+@@ -149,7 +150,7 @@
+ scenerypath = new char[max_path_length + 256];
+ scenery_pos = 0;
+ } else {
+- cout << "No scenery paths could be found. You need to set either a valid FG_ROOT and/or FG_SCENERY variable, or specify a valid --fg-root and/or --fg-scenery on the command line.\n";
++ std::cout << "No scenery paths could be found. You need to set either a valid FG_ROOT and/or FG_SCENERY variable, or specify a valid --fg-root and/or --fg-scenery on the command line.\n";
+ exit(-1);
+ }
+
+diff -wbBur Atlas-0.3.1/src/OutputGL.hxx Atlas-0.3.1.my/src/OutputGL.hxx
+--- Atlas-0.3.1/src/OutputGL.hxx 2005-02-26 18:40:37.000000000 +0000
++++ Atlas-0.3.1.my/src/OutputGL.hxx 2009-03-11 16:33:30.000000000 +0000
+@@ -2,7 +2,7 @@
+ #define __OUTPUTGL_H__
+
+ #include <simgear/compiler.h>
+-#include SG_GLUT_H
++#include <GL/glut.h>
+ #include <plib/fnt.h>
+ #include <plib/pu.h>
+ #include "Output.hxx"
+diff -wbBur Atlas-0.3.1/src/Overlays.cxx Atlas-0.3.1.my/src/Overlays.cxx
+--- Atlas-0.3.1/src/Overlays.cxx 2006-10-26 11:56:25.000000000 +0000
++++ Atlas-0.3.1.my/src/Overlays.cxx 2009-03-11 16:33:33.000000000 +0000
+@@ -27,7 +27,7 @@
+ #include "Overlays.hxx"
+ #include "Geodesy.hxx"
+
+-SG_USING_STD(map);
++#include <map>
+
+ #ifdef _MSC_VER
+
+@@ -65,8 +65,10 @@
+ bool Overlays::airports_loaded = false;
+ bool Overlays::navaids_loaded = false;
+ bool Overlays::fixes_loaded = false;
+-vector<Overlays::ARP*> Overlays::airports;
+-vector<Overlays::NAV*> Overlays::navaids;
++std::vector<Overlays::ARP*> Overlays::airports;
++std::vector<Overlays::NAV*> Overlays::navaids;
++
++using namespace std;
+
+ const float Overlays::airport_color1[4] = {0.439, 0.271, 0.420, 0.7};
+ const float Overlays::airport_color2[4] = {0.824, 0.863, 0.824, 0.7};
+diff -wbBur Atlas-0.3.1/src/Overlays.hxx Atlas-0.3.1.my/src/Overlays.hxx
+--- Atlas-0.3.1/src/Overlays.hxx 2005-01-10 13:15:53.000000000 +0000
++++ Atlas-0.3.1.my/src/Overlays.hxx 2009-03-11 16:33:30.000000000 +0000
+@@ -121,7 +121,7 @@
+ struct ARP {
+ char name[64], id[5];
+ float lat, lon;
+- list<RWY*> rwys;
++ std::list<RWY*> rwys;
+ };
+
+ enum NavType { NAV_VOR, NAV_DME, NAV_NDB, NAV_ILS, NAV_FIX };
+@@ -142,8 +142,8 @@
+
+ protected:
+
+- static vector<ARP*> airports;
+- static vector<NAV*> navaids;
++ static std::vector<ARP*> airports;
++ static std::vector<NAV*> navaids;
+ static bool airports_loaded, navaids_loaded, fixes_loaded;
+ static const float dummy_normals[][3];
+
+diff -wbBur Atlas-0.3.1/src/Scenery.cxx Atlas-0.3.1.my/src/Scenery.cxx
+--- Atlas-0.3.1/src/Scenery.cxx 2005-02-26 18:39:14.000000000 +0000
++++ Atlas-0.3.1.my/src/Scenery.cxx 2009-03-11 16:33:33.000000000 +0000
+@@ -3,8 +3,8 @@
+
+ #include "MapMaker.hxx"
+
+-SG_USING_STD(vector);
+-SG_USING_STD(string);
++#include <vector>
++#include <string>
+
+ typedef vector<string> string_list;
+
+diff -wbBur Atlas-0.3.1/src/buildmaps.sh Atlas-0.3.1.my/src/buildmaps.sh
+--- Atlas-0.3.1/src/buildmaps.sh 2006-10-29 14:35:49.000000000 +0000
++++ Atlas-0.3.1.my/src/buildmaps.sh 2009-03-11 16:17:43.000000000 +0000
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+-ROOT=NONE/lib/FlightGear/Scenery
++ROOT=/usr/lib/FlightGear/Scenery
+ OUTPUTDIR=./maps
+
+ mkdir -p $OUTPUTDIR
+diff -wbBur Atlas-0.3.1/src/fg_mkdir.cxx Atlas-0.3.1.my/src/fg_mkdir.cxx
+--- Atlas-0.3.1/src/fg_mkdir.cxx 2005-01-28 12:54:12.000000000 +0000
++++ Atlas-0.3.1.my/src/fg_mkdir.cxx 2009-03-11 16:40:00.000000000 +0000
+@@ -28,6 +28,8 @@
+
+ #include <simgear/compiler.h>
+
++#include <cstdlib>
++
+ #ifdef _MSC_VER
+ #include <direct.h>
+ #include <io.h>
diff --git a/community/flightgear/PKGBUILD b/community/flightgear/PKGBUILD
new file mode 100644
index 000000000..3b8b268d1
--- /dev/null
+++ b/community/flightgear/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 15899 2010-04-17 20:43:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+# Contributor: Hans Janssen <hans@janserv.xs4all.nl>
+
+pkgname=flightgear
+pkgver=2.0.0
+pkgrel=2
+pkgdesc="An open-source, multi-platform flight simulator"
+arch=(i686 x86_64)
+depends=('simgear' 'libxmu' 'libxi' 'zlib' 'flightgear-data' 'openscenegraph' 'subversion')
+makedepends=('boost')
+license=("GPL")
+url="http://www.flightgear.org"
+options=('!makeflags')
+source=(ftp://ftp.ibiblio.org/pub/mirrors/flightgear/ftp/Source/FlightGear-$pkgver.tar.gz)
+md5sums=('549aa45171480082f5b6e5e8d5ce8930')
+
+build() {
+ cd $startdir/src/FlightGear-$pkgver
+
+ [ $NOEXTRACT -eq 1 ] || find -name \*.c\* -exec sed -i '1,2i#include <stdio.h>' {} \;
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/flobopuyo/PKGBUILD b/community/flobopuyo/PKGBUILD
new file mode 100644
index 000000000..81c5ecd31
--- /dev/null
+++ b/community/flobopuyo/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 33471 2010-11-24 20:38:37Z jlichtblau $
+# Maintainer : Jaroslav Lichtblau <tu@dragonlord.cz>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+# contributor: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=flobopuyo
+pkgver=0.20
+pkgrel=5
+pkgdesc="Clone of the famous PuyoPuyo"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/$pkgname/"
+license=('GPL')
+depends=('libgl' 'sdl_image' 'sdl_mixer')
+makedepends=('mesa' 'patch')
+changelog=$pkgname.changelog
+source=(http://www.sourcefiles.org/Games/Puzzle/$pkgname-$pkgver.tgz \
+ $pkgname-makefile.patch $pkgname-0.20-gcc4.patch \
+ $pkgname-0.20-libs.patch
+ $pkgname.desktop
+ $pkgname.png)
+md5sums=('88961898c9dd48b60464f6f10f695b8b'
+ '4c6667be791681d43bb7ea1b6f9f9072'
+ 'bb8afd6e04bde08fd33e22c466674878'
+ 'b7c0fd71cd948bbc43a86742ffad6d86'
+ '20ebbe6e7ad57fe5f89a03ee40b4257e'
+ 'd9abe591e6cdd654269474444df1ec9d')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np0 < ${srcdir}/$pkgname-makefile.patch
+ patch -Np1 < ${srcdir}/$pkgname-$pkgver-gcc4.patch
+ patch -Np1 < ${srcdir}/$pkgname-$pkgver-libs.patch
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 man/${pkgname}.6 ${pkgdir}/usr/share/man/man6/$pkgname.6
+ install -D ${srcdir}/$pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
+ install -D ${srcdir}/$pkgname.png ${pkgdir}/usr/share/pixmaps/$pkgname.png
+}
diff --git a/community/flobopuyo/flobopuyo-0.20-gcc4.patch b/community/flobopuyo/flobopuyo-0.20-gcc4.patch
new file mode 100644
index 000000000..6c5d39445
--- /dev/null
+++ b/community/flobopuyo/flobopuyo-0.20-gcc4.patch
@@ -0,0 +1,25 @@
+Index: flobopuyo-0.20/IosVector.cpp
+===================================================================
+--- flobopuyo-0.20.orig/IosVector.cpp
++++ flobopuyo-0.20/IosVector.cpp
+@@ -102,6 +102,6 @@ void IosVector::increaseVectorSize()
+ void IosVector::dumpVector() const {
+ fprintf(stderr, "Size: %d\n", getSize());
+ for (int i = 0, j = getSize() ; i < j ; i++)
+- fprintf(stderr, "elt[%d]=%d ", i, (int)getElementAt(i));
++ fprintf(stderr, "elt[%d]=%p ", i, getElementAt(i));
+ fprintf(stderr, "\n");
+ }
+Index: flobopuyo-0.20/PuyoGame.cpp
+===================================================================
+--- flobopuyo-0.20.orig/PuyoGame.cpp
++++ flobopuyo-0.20/PuyoGame.cpp
+@@ -45,7 +45,7 @@ PuyoState PuyoRandomSystem::getPuyoForSe
+ return (PuyoState)newItem;
+ }
+ else
+- return (PuyoState)(int)(sequenceItems.getElementAt(sequence));
++ return (PuyoState)(long)(sequenceItems.getElementAt(sequence));
+ }
+
+ PuyoPuyo::PuyoPuyo(PuyoState state)
diff --git a/community/flobopuyo/flobopuyo-0.20-libs.patch b/community/flobopuyo/flobopuyo-0.20-libs.patch
new file mode 100644
index 000000000..b6cca53cb
--- /dev/null
+++ b/community/flobopuyo/flobopuyo-0.20-libs.patch
@@ -0,0 +1,136 @@
+--- flobopuyo-0.20/Makefile.orig 2004-10-08 18:41:12.000000000 -0400
++++ flobopuyo-0.20/Makefile 2008-08-06 19:48:47.000000000 -0400
+@@ -41,15 +41,13 @@
+ ##############
+
+ SDL_CONFIG=sdl-config
+-CC=g++
+-CXX=g++
+
+-CFLAGS= -DDATADIR=\"${DATADIR}\"
+-LDFLAGS=
++CXXFLAGS+= -DDATADIR=\"${DATADIR}\"
+
+ ifneq ($(PLATFORM), $(CYGWIN_VERSION))
+-CFLAGS:=$(CFLAGS) `$(SDL_CONFIG) --cflags` -I/sw/include
+-LDFLAGS:=$(LDFLAGS) `$(SDL_CONFIG) --cflags --libs`
++CXXFLAGS:=$(CXXFLAGS) `$(SDL_CONFIG) --cflags` -I/usr/include
++LDFLAGS:=$(LDFLAGS)
++LIBS:=$(LIBS) `$(SDL_CONFIG) --cflags --libs`
+ endif
+
+ HFILES= HiScores.h IosException.h IosImgProcess.h IosVector.h PuyoCommander.h\
+@@ -71,46 +69,46 @@
+ ################
+ # Mac OS X
+ ifeq ($(PLATFORM), Darwin)
+-CFLAGS:=$(CFLAGS) -DMACOSX -UDATADIR
++CXXFLAGS:=$(CXXFLAGS) -DMACOSX -UDATADIR
+ endif
+
+ ################
+ # Win32
+ ifeq ($(PLATFORM), $(CYGWIN_VERSION))
+-CFLAGS:=$(CFLAGS) -mno-cygwin -mwindows -DWIN32 -DYY_NEVER_INTERACTIVE=1 -I$(WINSDLINCLUDE)
+-LDFLAGS:=$(LDFLAGS) -L$(WINSDLDEVLIBS) -lmingw32 -ljpeg -lzlib -lpng1 -lSDL_image -lSDL_mixer -lSDL -lSDLmain
++CXXFLAGS:=$(CXXFLAGS) -mno-cygwin -mwindows -DWIN32 -DYY_NEVER_INTERACTIVE=1 -I$(WINSDLINCLUDE)
++LDFLAGS:=$(LDFLAGS) -L$(WINSDLDEVLIBS)
++LIBS:=$(LIBS) -lmingw32 -ljpeg -lzlib -lpng1 -lSDL_image -lSDL_mixer -lSDL -lSDLmain
+ endif
+
+ ifeq ($(ENABLE_AUDIO), true)
+-CFLAGS:=$(CFLAGS) -DUSE_AUDIO=1
++CXXFLAGS:=$(CXXFLAGS) -DUSE_AUDIO=1
+ OBJFILES:=$(OBJFILES)
+ endif
+
+ ifeq ($(ENABLE_OPENGL), true)
+-CFLAGS:=$(CFLAGS) -DHAVE_OPENGL=1
++CXXFLAGS:=$(CXXFLAGS) -DHAVE_OPENGL=1
+ OBJFILES:=$(OBJFILES) glSDL.o
+ ifeq ($(PLATFORM), Linux)
+-LDFLAGS:=$(LDFLAGS) -lGL
++LDFLAGS:=$(LDFLAGS)
++LIBS:=$(LIBS) -lGL
+ endif
+ endif
+
+ ifeq ($(ENABLE_DGA), true)
+ ifeq ($(PLATFORM), Linux)
+-CFLAGS:=$(CFLAGS) -DUSE_DGA=1
++CXXFLAGS:=$(CXXFLAGS) -DUSE_DGA=1
+ endif
+ endif
+
+ ifeq ($(DEBUG), true)
+-CFLAGS:=$(CFLAGS) -DDEBUG=1 -g
++CXXFLAGS:=$(CXXFLAGS) -DDEBUG=1 -g
+ LDFLAGS:=$(LDFLAGS) -g
+ endif
+
+-CXXFLAGS=${CFLAGS}
+-
+ all: prelude flobopuyo
+
+ flobopuyo: ${OBJFILES}
+- @echo "[flobopuyo]" && g++ $(CFLAGS) $(LDFLAGS) -o flobopuyo -lSDL_mixer -lSDL_image ${OBJFILES}
++ @echo "[flobopuyo]" && $(CXX) $(LDFLAGS) $(OBJFILES) -o flobopuyo $(LIBS) -lSDL_mixer -lSDL_image
+ @echo "--------------------------------------"
+ @echo " Compilation finished"
+ @[ "x`cat WARNINGS | wc -l`" != "x0" ] && echo -e "--------------------------------------\n There have been some warnings:\n" && cat WARNINGS && rm -f WARNINGS && echo "--------------------------------------" || true
+@@ -121,14 +119,14 @@
+ prelude:
+ @rm -f WARNINGS
+ @touch WARNINGS
+- @echo "Compiling with CFLAGS=$(CFLAGS)"
++ @echo "Compiling with CXXFLAGS=$(CXXFLAGS)"
+ @echo "Compiling with LDFLAGS=$(LDFLAGS)"
+
+ %.o:%.c
+- @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false)
++ @echo "[$@]" && $(CXX) $(CXXFLAGS) -c $<
+
+ %.o:%.cpp
+- @echo "[$@]" && $(CXX) $(CFLAGS) -c $< 2>> WARNINGS || (cat WARNINGS && false)
++ @echo "[$@]" && $(CXX) $(CXXFLAGS) -c $<
+
+ PuyoDoomMelt.o:PuyoDoomMelt.c ${HFILES}
+ HiScores.o:HiScores.cpp HiScores.h preferences.h
+@@ -155,10 +153,10 @@
+ IosException.o:IosException.cpp
+ IosVector.o:IosVector.cpp
+ glSDL.o:glSDL.c
+- @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS
++ @echo "[$@]" && $(CXX) $(CXXFLAGS) -c $<
+ @rm -f EXT_WARNINGS
+ SDL_prim.o:SDL_prim.c
+- @echo "[$@]" && $(CC) $(CFLAGS) -c $< 2>> EXT_WARNINGS
++ @echo "[$@]" && $(CXX) $(CXXFLAGS) -c $<
+ @rm -f EXT_WARNINGS
+ corona.o:corona.cpp
+ corona32.o:corona32.cpp
+@@ -178,7 +176,6 @@
+ rm -f .DS_Store */.DS_Store */*/.DS_Store .gdb_history
+
+ install: flobopuyo
+- strip flobopuyo
+ mkdir -p ${INSTALL_BINDIR}
+ mkdir -p ${INSTALL_DATADIR}
+ cp -r data/* ${INSTALL_DATADIR}
+@@ -191,7 +188,7 @@
+ chmod a+rx ${INSTALL_BINDIR}/flobopuyo
+
+ flobopuyo-static: prelude ${OBJFILES}
+- @echo "[flobopuyo-static]" && g++ $(CFLAGS) -o flobopuyo-static ${OBJFILES}\
++ @echo "[flobopuyo-static]" && g++ $(CXXFLAGS) -o flobopuyo-static ${OBJFILES}\
+ /sw/lib/libSDL_mixer.a /sw/lib/libvorbisfile.a /sw/lib/libvorbis.a /sw/lib/libogg.a /sw/lib/libsmpeg.a /sw/lib/libSDL_image.a /sw/lib/libjpeg.a /sw/lib/libpng.a -lz `$(SDL_CONFIG) --static-libs`
+ @echo "--------------------------------------"
+ @echo " Compilation finished"
+@@ -207,7 +204,6 @@
+ rm -rf $(bundle_name)/Contents/Resources/data/CVS $(bundle_name)/Contents/Resources/data/*/CVS
+ rm -rf $(bundle_name)/Contents/Resources/data/.xvpics $(bundle_name)/Contents/Resources/data/*/.xvpics
+ rm -f $(bundle_name)/Contents/Resources/data/.DS_Store $(bundle_name)/Contents/Resources/data/*/.DS_Store
+- strip $(bundle_name)/Contents/MacOS/flobopuyo
+
+ mac-package: bundle
+ mkdir -p $(macimage_name)
diff --git a/community/flobopuyo/flobopuyo-makefile.patch b/community/flobopuyo/flobopuyo-makefile.patch
new file mode 100644
index 000000000..e0ec22052
--- /dev/null
+++ b/community/flobopuyo/flobopuyo-makefile.patch
@@ -0,0 +1,21 @@
+--- Makefile 2004-10-09 01:41:12.000000000 +0300
++++ Makefile 2005-03-04 05:51:21.000000000 +0200
+@@ -6,15 +6,15 @@
+ # Settings
+
+ ENABLE_AUDIO=true
+-ENABLE_OPENGL=false
++ENABLE_OPENGL=true
+ ENABLE_DGA=false
+
+ DEBUG_MODE=false
+
+ # Unix/Linux settings
+-PREFIX=/usr/local
++PREFIX=/usr
+ DATADIR=$(PREFIX)/share/games/flobopuyo
+-INSTALL_BINDIR=$(DESTDIR)/$(PREFIX)/games
++INSTALL_BINDIR=$(DESTDIR)/$(PREFIX)/bin
+ INSTALL_DATADIR=$(DESTDIR)/$(DATADIR)
+
+ # Mac settings
diff --git a/community/flobopuyo/flobopuyo.changelog b/community/flobopuyo/flobopuyo.changelog
new file mode 100644
index 000000000..eee8fbb12
--- /dev/null
+++ b/community/flobopuyo/flobopuyo.changelog
@@ -0,0 +1,16 @@
+2010-11-24 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * flobopuyo 0.20-5
+ * home page and source file fix
+
+2010-07-13 Laurent Carlier <lordheavym@gmail.com>
+ * Rebuild for i686 and x86_64
+ * Add .desktop file and icon
+
+2008-09-15 Ronald van Haren <ronald.archlinux.org>
+ * added x86_64 version & a couple of patches to build it
+
+2008-09-14 Jaroslav Lichtblau <tu@dragonlord.cz>
+ * Added provided man page to the package
+
+2008-09-11 Jaroslav Lichtblau <tu@dragonlord.cz>
+ * Package moved to [community]
diff --git a/community/flobopuyo/flobopuyo.desktop b/community/flobopuyo/flobopuyo.desktop
new file mode 100644
index 000000000..aae37c31e
--- /dev/null
+++ b/community/flobopuyo/flobopuyo.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Flobopuyo
+Comment=A remake of the famous PuyoPuyo
+Exec=flobopuyo
+Icon=/usr/share/pixmaps/flobopuyo.png
+Terminal=false
+Type=Application
+Categories=Application;Game;ArcadeGame;
+StartupNotify=false
diff --git a/community/flobopuyo/flobopuyo.png b/community/flobopuyo/flobopuyo.png
new file mode 100644
index 000000000..5d52fedf7
--- /dev/null
+++ b/community/flobopuyo/flobopuyo.png
Binary files differ
diff --git a/community/flowcanvas/PKGBUILD b/community/flowcanvas/PKGBUILD
new file mode 100644
index 000000000..bb1b0808c
--- /dev/null
+++ b/community/flowcanvas/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 37633 2011-01-15 21:43:11Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Max a.k.a. Synthead <synthead@gmail.com>
+# Contributor: christhemonkey <christhemonkey at gmail dot com>
+
+pkgname=flowcanvas
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Gtkmm/Gnomecanvasmm widget for boxes-and-lines style environments"
+arch=(i686 x86_64)
+url="http://drobilla.net/software/flowcanvas/"
+depends=('libgnomecanvasmm' 'graphviz')
+makedepends=('boost' 'python2')
+license=('GPL')
+install=$pkgname.install
+source=(http://download.drobilla.net/$pkgname-$pkgver.tar.bz2)
+md5sums=('a4908f6385ce9fd2ce97c8caa823f053')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf configure --prefix=/usr
+ python2 waf build $MAKEFLAGS
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/flowcanvas/flowcanvas.install b/community/flowcanvas/flowcanvas.install
new file mode 100644
index 000000000..46f265d5b
--- /dev/null
+++ b/community/flowcanvas/flowcanvas.install
@@ -0,0 +1,11 @@
+post_install() {
+ /sbin/ldconfig
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/floyd/PKGBUILD b/community/floyd/PKGBUILD
new file mode 100644
index 000000000..d41e42daa
--- /dev/null
+++ b/community/floyd/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 5264 2009-11-07 13:00:24Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=floyd
+pkgver=2.0.1
+pkgrel=3
+pkgdesc="displays system load with pulse of keyboard LED"
+arch=(i686 x86_64)
+url="http://www.asahi-net.or.jp/~pi9s-nnb/floyd/"
+license=("GPL")
+depends=(glibc)
+backup=(etc/fuse.conf)
+source=(http://www.asahi-net.or.jp/~pi9s-nnb/floyd/$pkgname-$pkgver.tar.gz)
+md5sums=('c1b80bc76ac4e25e821a193428fa42a4')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ sed -i "s#/usr/local#/usr#" ./Makefile
+ make floyd || return 1
+ install -D -m 0755 ./floyd $startdir/pkg/usr/bin/floyd && \
+ install -D -m 0644 ./floyd.1 $startdir/pkg/usr/share/man/man1/floyd.1
+}
diff --git a/community/fltk2/PKGBUILD b/community/fltk2/PKGBUILD
new file mode 100644
index 000000000..32d4dc562
--- /dev/null
+++ b/community/fltk2/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 33138 2010-11-22 16:59:51Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=fltk2
+pkgver=2.0
+_pkgver=2.0.x-r7725
+pkgrel=6
+pkgdesc="Graphical user interface toolkit for X"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.fltk.org/"
+depends=('libjpeg' 'libpng' 'gcc-libs' 'libxft' 'libxext' 'libxi' 'libxinerama')
+makedepends=('mesa')
+source=(http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub/fltk/snapshots/fltk-${_pkgver}.tar.bz2
+ libpng14.patch)
+md5sums=('4d2680a65574e920becf968b899d5311'
+ '93955f17f56ad8b419ca1f8ea8c24a7f')
+
+build() {
+ cd $srcdir/fltk-${_pkgver}
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared
+
+ patch -p0 src/filename_list.cxx <<EOF
+66c66
+< int n = scandir(d, list, 0, (int(*)(const void*,const void*))sort);
+---
+> int n = scandir(d, list, 0, (int(*)(const dirent64**,const dirent64**))sort);
+EOF
+
+ patch -Np1 -i "$srcdir/libpng14.patch"
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/fltk2/libpng14.patch b/community/fltk2/libpng14.patch
new file mode 100644
index 000000000..f6c49228e
--- /dev/null
+++ b/community/fltk2/libpng14.patch
@@ -0,0 +1,12 @@
+diff -upr fltk-2.0.x-r6829.orig/images/fl_png.cxx fltk-2.0.x-r6829/images/fl_png.cxx
+--- fltk-2.0.x-r6829.orig/images/fl_png.cxx 2010-01-23 04:42:12.000000000 +0200
++++ fltk-2.0.x-r6829/images/fl_png.cxx 2010-01-23 04:58:31.000000000 +0200
+@@ -62,7 +62,7 @@ bool pngImage::test(const uchar* datas,
+ #if !HAVE_LIBPNG
+ return 0;
+ #else
+- return png_check_sig((png_byte*)datas, (int)size)!=0;
++ return png_sig_cmp((png_byte*)datas, 0, (int)size)==0;
+ #endif
+ }
+
diff --git a/community/flumotion/PKGBUILD b/community/flumotion/PKGBUILD
new file mode 100644
index 000000000..76930a05d
--- /dev/null
+++ b/community/flumotion/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 40273 2011-02-22 18:15:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=flumotion
+pkgver=0.8.0
+pkgrel=6
+arch=('i686' 'x86_64')
+pkgdesc="A streaming media server"
+url="http://www.flumotion.net"
+options=('!libtool')
+license=('GPL')
+backup=(etc/flumotion/workers/default.xml
+ etc/flumotion/managers/default/planet.xml)
+depends=('gtk2' 'pygtk' 'gstreamer0.10-python' 'kiwi' 'gstreamer0.10-good-plugins'
+ 'gstreamer0.10-base-plugins' 'python2-pyopenssl' 'twisted' 'gnome-vfs')
+makedepends=('perlxml')
+source=(http://www.flumotion.net/src/$pkgname/$pkgname-$pkgver.tar.bz2
+ python27.patch)
+md5sums=('1df1f8fc47ca4cc6d3ead912f2ac76af'
+ '623a41a985d2b114c58db701c6d5d13e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # python2 fix
+ sed -i 's_candidate in python_candidate in python2_' configure
+ 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
+
+ # python2.7 patch
+ patch -Np0 -i "$srcdir/python27.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+
+ install -d "$pkgdir/etc/$pkgname"
+ make
+ make DESTDIR="$pkgdir" install
+ cp -R conf/workers "$pkgdir/etc/$pkgname"
+ cp -R conf/managers "$pkgdir/etc/$pkgname"
+ cp conf/default.pem "$pkgdir/etc/$pkgname"
+}
diff --git a/community/flumotion/python27.patch b/community/flumotion/python27.patch
new file mode 100644
index 000000000..70b00bbeb
--- /dev/null
+++ b/community/flumotion/python27.patch
@@ -0,0 +1,27 @@
+Index: flumotion/twisted/reflect.py
+===================================================================
+--- flumotion/twisted/reflect.py (revision 8894)
++++ flumotion/twisted/reflect.py (working copy)
+@@ -57,7 +57,10 @@
+ # if the ImportError happened in the module being imported,
+ # this is a failure that should be handed to our caller.
+ shortname = trialname.split('.')[-1]
+- r = str(sys.exc_info()[1])
++ # if we're on python2.7 the module is wrapped in single quotation
++ # marks thus broking this method that relies on the message ending
++ # with the name that failed.
++ r = str(sys.exc_info()[1]).strip("'")
+ if not (r.startswith('No module named') and
+ r.endswith(shortname)):
+ raise
+@@ -71,3 +74,10 @@
+ obj = getattr(obj, n)
+
+ return obj
++
++# Use the method that comes with twisted if we're running on 8.0 or higher.
++# FIXME: Remove this module when we can depend on Twisted 8.0
++from twisted.copyright import version
++twistedVersion = tuple([int(n) for n in version.split('.')[0:3]])
++if twistedVersion >= (8, 0, 0):
++ from twisted.python.reflect import namedAny
diff --git a/community/flvstreamer/PKGBUILD b/community/flvstreamer/PKGBUILD
new file mode 100644
index 000000000..3b3dbe44a
--- /dev/null
+++ b/community/flvstreamer/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=flvstreamer
+pkgver=2.1c1
+pkgrel=2
+pkgdesc="Open source command-line RTMP client"
+url="http://savannah.nongnu.org/projects/flvstreamer"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc')
+source=("http://mirrors.zerg.biz/nongnu/flvstreamer/source/$pkgname-$pkgver.tar.gz")
+md5sums=('4866387328ad89c957af90a2478e5556')
+build() {
+ cd $srcdir/$pkgname
+ make $pkgname
+ make streams
+}
+package() {
+ cd $srcdir/$pkgname
+ install -Dm755 $pkgname $pkgdir/usr/bin/$pkgname
+ install -Dm755 streams $pkgdir/usr/bin/streams
+}
diff --git a/community/fonteditfs/ChangeLog b/community/fonteditfs/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/fonteditfs/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/fonteditfs/PKGBUILD b/community/fonteditfs/PKGBUILD
new file mode 100644
index 000000000..6fa46a195
--- /dev/null
+++ b/community/fonteditfs/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 5263 2009-11-07 12:56:38Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=fonteditfs
+pkgver=1.2
+pkgrel=2
+pkgdesc="console font editor"
+arch=('i686' 'x86_64')
+url="http://fonteditfs.sourceforge.net/"
+license=('GPL')
+depends=(ncurses)
+source=("http://downloads.sourceforge.net/sourceforge/fonteditfs/fnteditfs-$pkgver.tgz")
+md5sums=('1e7c827da078d41a76459439dda0d5a9')
+
+build () {
+ cd $startdir/src/fnteditfs-$pkgver
+ make || return 1
+ install -D -m0755 fnteditfs $startdir/pkg/usr/bin/fnteditfs && \
+ install -D -m0644 fnteditfs.1 $startdir/pkg/usr/share/man/man1/fnteditfs.1
+}
diff --git a/community/fotoxx/PKGBUILD b/community/fotoxx/PKGBUILD
new file mode 100644
index 000000000..96bb1cbc2
--- /dev/null
+++ b/community/fotoxx/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=fotoxx
+pkgver=11.04
+pkgrel=4
+pkgdesc="A program for improving image files made with a digital camera"
+url="http://kornelix.squarespace.com/fotoxx"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('gtk2' 'gimp-ufraw' 'perl-exiftool' 'xdg-utils')
+optdepends=('mashup: for printing from within fotoxx' 'brasero: for burning')
+source=("http://kornelix.squarespace.com/storage/downloads/$pkgname-$pkgver.tar.gz")
+md5sums=('4b90ca45375d7502a98f6ce556a1d9b7')
+replaces=('fotox')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=/usr \
+ CFLAGS+="-c `pkg-config --cflags gtk+-2.0`" \
+ LFLAGS+="`pkg-config --libs gtk+-2.0 gthread-2.0`"
+ sed -i 's#/local##' desktop
+ sed -i 's+^# ++' desktop
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -Dm644 desktop \
+ $pkgdir/usr/share/applications/$pkgname.desktop
+ make DESTDIR=$pkgdir PREFIX=/usr install
+}
diff --git a/community/fotoxx/fotoxx.install b/community/fotoxx/fotoxx.install
new file mode 100644
index 000000000..03d1a4eaf
--- /dev/null
+++ b/community/fotoxx/fotoxx.install
@@ -0,0 +1,17 @@
+post_install() {
+ echo "Adding desktop file"
+ echo "[Desktop Entry]" > /usr/share/applications/fotoxx.desktop
+ echo "Name=fotoxx" >> /usr/share/applications/fotoxx.desktop
+ echo "Categories=Graphics" >> /usr/share/applications/fotoxx.desktop
+ echo "Type=Application" >> /usr/share/applications/fotoxx.desktop
+ echo "Terminal=false" >> /usr/share/applications/fotoxx.desktop
+ echo "Exec=/usr/bin/fotoxx" >> /usr/share/applications/fotoxx.desktop
+ echo "Icon=/usr/share/icons/fotoxx.png" >> /usr/share/applications/fotoxx.desktop
+ echo "GenericName=Digital Photo Editor" >> /usr/share/applications/fotoxx.desktop
+}
+post_update() {
+ post_install
+}
+pre_remove() {
+ [ -f /usr/share/applications/fotoxx.desktop ] && rm /usr/share/applications/fotoxx.desktop
+}
diff --git a/community/fox/PKGBUILD b/community/fox/PKGBUILD
new file mode 100644
index 000000000..6a84a73b6
--- /dev/null
+++ b/community/fox/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 40876 2011-03-01 10:03:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=fox
+pkgver=1.6.43
+pkgrel=1
+pkgdesc="Free Objects for X: GUI Toolkit for C++"
+arch=('i686' 'x86_64')
+url="http://www.fox-toolkit.org/"
+license=('LGPL' 'custom')
+depends=('bzip2' 'libxcursor' 'libxft' 'libxrandr' 'mesa' 'libxi' 'libpng' 'libtiff')
+optdepends=('perl')
+options=('!libtool')
+source=(http://www.fox-toolkit.org/ftp/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4c6a322a8117420e417daeec8fbfeba5')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ export CPPFLAGS="$CPPFLAGS -I/usr/include/freetype2"
+
+ ./configure --prefix=/usr \
+ --enable-release \
+ --with-xft=yes \
+ --with-opengl=yes \
+ --with-xim \
+ --with-xshm \
+ --with-shape \
+ --with-xcursor \
+ --with-xrender \
+ --with-xrandr \
+ --with-xfixes \
+ --with-xinput
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ cd ${srcdir}/${pkgname}-${pkgver}/tests
+ make ControlPanel
+ install -m755 ${srcdir}/${pkgname}-${pkgver}/tests/.libs/ControlPanel ${pkgdir}/usr/bin/
+ install -Dm644 ../LICENSE_ADDENDUM ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/fpc/PKGBUILD b/community/fpc/PKGBUILD
new file mode 100644
index 000000000..9b7d02152
--- /dev/null
+++ b/community/fpc/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 32549 2010-11-14 16:57:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Valeriy Lyasotskiy <onestep@ukr.net>
+# Contributor: Jan Willemson <janwil@hot.ee>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+# Original PKGBUILD: Andre Naumann <anaumann@SPARCed.org>
+# See http://bbs.archlinux.org/viewtopic.php?t=9318&highlight=fpc
+
+pkgname=fpc
+pkgver=2.4.2
+pkgrel=1
+pkgdesc="The Free Pascal Compiler is a Turbo Pascal 7.0 and Delphi compatible 32bit Pascal Compiler. It comes with fully TP 7.0 compatible run-time library."
+arch=('i686' 'x86_64')
+url="http://www.freepascal.org/"
+license=('GPL' 'LGPL' 'custom')
+backup=("etc/fpc.cfg")
+depends=(ncurses)
+makedepends=(fpc)
+options=(zipman)
+source=(ftp://ftp.freepascal.org/pub/fpc/dist/$pkgver/source/fpcbuild-$pkgver.tar.gz)
+md5sums=('35ff506cca77b999097ffed61705be95')
+
+build() {
+ cd ${srcdir}/fpcbuild-$pkgver
+ make NOGDB=1 build
+ make -j1 NOGDB=1 PREFIX=${pkgdir}/usr install
+
+ # install package license
+ install -m 755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m 644 fpcsrc/rtl/COPYING.FPC ${pkgdir}/usr/share/licenses/${pkgname}/
+
+ # create symlink for compiler
+ [ "$CARCH" = "i686" ] && ln -s /usr/lib/fpc/${pkgver}/ppc386 ${pkgdir}/usr/bin/
+ [ "$CARCH" = "x86_64" ] && ln -s /usr/lib/fpc/${pkgver}/ppcx64 ${pkgdir}/usr/bin/
+
+ # install sample config file
+ mkdir -p ${pkgdir}/etc
+ ${pkgdir}/usr/lib/fpc/${pkgver}/samplecfg /usr/lib/fpc/${pkgver} ${pkgdir}/etc
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/freecol/PKGBUILD b/community/freecol/PKGBUILD
new file mode 100644
index 000000000..edff300d7
--- /dev/null
+++ b/community/freecol/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 30919 2010-10-23 14:21:56Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Nelson Menon <nelsonmenon@gmail.com insanatorium.wordpress.com>
+
+pkgname=freecol
+pkgver=0.9.5
+pkgrel=1
+pkgdesc="A turn-based strategy game based on Colonization"
+arch=('i686' 'x86_64')
+url="http://www.freecol.org/"
+license=('GPL')
+depends=('java-runtime')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ fc.desktop fc.sh)
+md5sums=('6d5cb3b18cede24196f360b225ff7ccc'
+ '55594d770904af3e3e3852d375085357'
+ 'ae473cd1d86f8f764250ee00b6fda90b')
+
+build() {
+ cd "$srcdir/$pkgname"
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+
+ install -Dm644 FreeCol.jar "$pkgdir/usr/share/java/$pkgname/FreeCol.jar"
+ install -Dm644 FreeCol.pdf "$pkgdir/usr/share/doc/$pkgname/FreeCol.pdf"
+ install -Dm644 $pkgname.xpm "$pkgdir/usr/share/pixmaps/$pkgname.xpm"
+ install -Dm644 ../fc.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
+ install -Dm755 ../fc.sh "$pkgdir/usr/bin/$pkgname"
+
+ cp -r data jars "$pkgdir/usr/share/java/$pkgname/"
+ find "$pkgdir/usr/share/java/$pkgname" -type d -exec chmod 755 '{}' \;
+ find "$pkgdir/usr/share/java/$pkgname" -type f -exec chmod 644 '{}' \;
+}
diff --git a/community/freecol/fc.desktop b/community/freecol/fc.desktop
new file mode 100644
index 000000000..83ed6a97d
--- /dev/null
+++ b/community/freecol/fc.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=FreeCol
+GenericName=Strategy Game
+Comment=A free Colonization clone
+TryExec=/usr/bin/freecol
+Exec=freecol
+Icon=/usr/share/pixmaps/freecol.xpm
+Categories=Game;StrategyGame;
diff --git a/community/freecol/fc.sh b/community/freecol/fc.sh
new file mode 100644
index 000000000..0ce3dac3a
--- /dev/null
+++ b/community/freecol/fc.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+FC_PATH=/usr/share/java/freecol
+LOG_PATH=/tmp/freecol
+
+[ ! -d "$LOG_PATH" ] && install -dm755 $LOG_PATH
+cd $LOG_PATH
+java -Xmx256M -jar $FC_PATH/FreeCol.jar "$@" --freecol-data $FC_PATH/data \
+ &> ./messages.log
diff --git a/community/freedroid/PKGBUILD b/community/freedroid/PKGBUILD
new file mode 100644
index 000000000..819f25b31
--- /dev/null
+++ b/community/freedroid/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 5262 2009-11-07 12:52:52Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=freedroid
+pkgver=1.0.2
+pkgrel=4
+pkgdesc="Freedroid is a clone of the classic game "Paradroid" on Commodore 64 with some improvements and extensions to the classic version."
+arch=('i686' 'x86_64')
+url="http://freedroid.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'sdl_image' 'sdl_mixer')
+source=(http://downloads.sourceforge.net/sourceforge/freedroid/$pkgname-$pkgver.tar.gz)
+md5sums=('585a65f61c2cd308ab45d5c514f695dc')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/freedroidrpg/PKGBUILD b/community/freedroidrpg/PKGBUILD
new file mode 100644
index 000000000..6b3aea594
--- /dev/null
+++ b/community/freedroidrpg/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 33632 2010-11-27 09:39:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: nut543 <kfs1@online.no>
+
+#pkgbase=freedroidrpg
+#pkgname=('freedroidrpg' 'freedroidrpg-data')
+pkgname='freedroidrpg'
+pkgver=0.14.1
+pkgrel=1
+arch=('i686' 'x86_64')
+# depends=('sdl_mixer' 'sdl_image' 'libogg' 'libvorbis' 'libgl' 'freedroidrpg-data')
+depends=('sdl_mixer' 'sdl_image' 'libogg' 'libvorbis' 'libgl')
+optdepends=('python2' 'espeak')
+pkgdesc="a mature science fiction role playing game set in the future"
+url="http://freedroid.sourceforge.net"
+license=("GPL")
+source=(http://downloads.sourceforge.net/project/freedroid/freedroidRPG/freedroidRPG-0.14/freedroidrpg-$pkgver.tar.gz
+ freedroidrpg.jpg
+ freedroidrpg.desktop)
+md5sums=('a71c36c0f0c8ce316852d2826357bc01'
+ 'b73d9dac44c7e83a6c80fbe4eb96ba79'
+ '9a10c2a2064439cdcff5b945dfb1c3ac')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir/ install
+ install -D -m644 $srcdir/freedroidrpg.jpg $pkgdir/usr/share/icons/freedroidrpg.jpg
+ install -D -m644 $srcdir/freedroidrpg.desktop $pkgdir/usr/share/applications/freedroidrpg.desktop
+}
diff --git a/community/freedroidrpg/freedroidrpg.desktop b/community/freedroidrpg/freedroidrpg.desktop
new file mode 100644
index 000000000..33ee2f5b8
--- /dev/null
+++ b/community/freedroidrpg/freedroidrpg.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=freedroidrpg
+Comment=Extension/modification of the classical Freedroid game(based on paradroid) into an RPG
+Exec=freedroidRPG
+Encoding=UTF-8
+Icon=/usr/share/icons/freedroidrpg.jpg
+Categories=Game;RolePlaying;
+Terminal=false
+StartupNotify=false
diff --git a/community/freedroidrpg/freedroidrpg.jpg b/community/freedroidrpg/freedroidrpg.jpg
new file mode 100644
index 000000000..4daa89313
--- /dev/null
+++ b/community/freedroidrpg/freedroidrpg.jpg
Binary files differ
diff --git a/community/freehdl/PKGBUILD b/community/freehdl/PKGBUILD
new file mode 100644
index 000000000..d0ca0d067
--- /dev/null
+++ b/community/freehdl/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 43045 2011-03-23 21:44:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Neil Darlow <neil@darlow.co.uk>
+# Contributor: Jens Maucher <defcon@archlinux.us>
+
+pkgname=freehdl
+pkgver=0.0.8
+_qucsver=0.0.16
+pkgrel=1
+pkgdesc='An open-source (C++ generating) VHDL simulator'
+arch=('i686' 'x86_64')
+url='http://freehdl.seul.org'
+license=('GPL')
+depends=('gcc-libs' 'libtool' 'perl')
+makedepends=('bison' 'flex' 'gawk' 'pkgconfig')
+optdepends=('gtkwave: to view output when run standalone')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/qucs/qucs/${_qucsver}/freehdl-$pkgver.tar.gz)
+md5sums=('aa1382b8b5c6a972e9652c648a9278b5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/freeimage/PKGBUILD b/community/freeimage/PKGBUILD
new file mode 100644
index 000000000..9e6020ad2
--- /dev/null
+++ b/community/freeimage/PKGBUILD
@@ -0,0 +1,44 @@
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Mihai Militaru <mihai.militaru@gmx.com>
+# Contributor: scippio <scippio@berounet.cz>
+
+pkgname=freeimage
+pkgver=3.15.0
+pkgrel=1
+pkgdesc="Library project for developers who would like to support popular graphics image formats."
+arch=('i686' 'x86_64')
+license=('GPL' 'custom:FIPL')
+url="http://freeimage.sourceforge.net/"
+depends=('gcc-libs')
+makedepends=('hd2u')
+source=("http://downloads.sourceforge.net/project/freeimage/Source%20Distribution/${pkgver}/FreeImage${pkgver//./}.zip"
+ 'gcc4.5_ln.patch')
+md5sums=('3b4f08e4985b269beb29a2fced1ef888'
+ 'f85279b2572a0a9e03775909cd9cd759')
+
+build() {
+ cp -r FreeImage FreeImagefip
+
+ cd FreeImage
+ patch -Np1 < ${srcdir}/gcc4.5_ln.patch
+ make
+
+ cd ${srcdir}/FreeImagefip
+ patch -Np1 < ${srcdir}/gcc4.5_ln.patch
+ make -f Makefile.fip
+}
+
+package() {
+ cd FreeImage
+ make DESTDIR=${pkgdir} install
+
+ cd ${srcdir}/FreeImagefip
+ make -f Makefile.fip DESTDIR=${pkgdir} install
+
+ install -D -m644 ${srcdir}/FreeImage/license-fi.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/license-fi.txt
+
+ ln -s libfreeimage-${pkgver}.so ${pkgdir}/usr/lib/libfreeimage.so
+ ln -s libfreeimageplus-${pkgver}.so ${pkgdir}/usr/lib/libfreeimageplus.so
+}
diff --git a/community/freeimage/gcc4.5_ln.patch b/community/freeimage/gcc4.5_ln.patch
new file mode 100644
index 000000000..317a48004
--- /dev/null
+++ b/community/freeimage/gcc4.5_ln.patch
@@ -0,0 +1,62 @@
+diff -Naur FreeImage.orig//Makefile.fip FreeImage.new//Makefile.fip
+--- FreeImage.orig//Makefile.fip 2010-08-10 19:15:20.000000000 +0200
++++ FreeImage.new//Makefile.fip 2010-09-12 23:29:36.000000000 +0200
+@@ -15,9 +15,9 @@
+
+ MODULES = $(SRCS:.c=.o)
+ MODULES := $(MODULES:.cpp=.o)
+-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
++CFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
+ CFLAGS += $(INCLUDE)
+-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
++CXXFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+ CXXFLAGS += $(INCLUDE)
+
+ ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+diff -Naur FreeImage.orig//Makefile.gnu FreeImage.new//Makefile.gnu
+--- FreeImage.orig//Makefile.gnu 2010-08-10 19:15:20.000000000 +0200
++++ FreeImage.new//Makefile.gnu 2010-09-12 23:01:57.000000000 +0200
+@@ -15,9 +15,9 @@
+
+ MODULES = $(SRCS:.c=.o)
+ MODULES := $(MODULES:.cpp=.o)
+-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
++CFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
+ CFLAGS += $(INCLUDE)
+-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
++CXXFLAGS += -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+ CXXFLAGS += $(INCLUDE)
+
+ ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+@@ -65,9 +65,6 @@
+ install -m 644 -o root -g root $(HEADER) $(INCDIR)
+ install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+ install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
+- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+- ldconfig
+
+ clean:
+ rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+diff -Naur FreeImage.orig//Source/FreeImageToolkit/Background.cpp FreeImage.new//Source/FreeImageToolkit/Background.cpp
+--- FreeImage.orig//Source/FreeImageToolkit/Background.cpp 2010-08-10 19:15:20.000000000 +0200
++++ FreeImage.new//Source/FreeImageToolkit/Background.cpp 2010-08-10 19:16:12.000000000 +0200
+@@ -21,6 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
++#include <limits.h>
+
+ /** @brief Determines, whether a palletized image is visually greyscale or not.
+
+diff -Naur FreeImage.orig//Source/OpenEXR/Imath/ImathMatrix.h FreeImage.new//Source/OpenEXR/Imath/ImathMatrix.h
+--- FreeImage.orig//Source/OpenEXR/Imath/ImathMatrix.h 2010-08-10 19:15:20.000000000 +0200
++++ FreeImage.new//Source/OpenEXR/Imath/ImathMatrix.h 2010-08-10 21:43:26.000000000 +0200
+@@ -51,6 +51,7 @@
+
+ #include <iostream>
+ #include <iomanip>
++#include <cstring>
+
+ #if (defined _WIN32 || defined _WIN64) && defined _MSC_VER
+ // suppress exception specification warnings
diff --git a/community/freemat/ChangeLog b/community/freemat/ChangeLog
new file mode 100644
index 000000000..dba4cf7ec
--- /dev/null
+++ b/community/freemat/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/freemat/PKGBUILD b/community/freemat/PKGBUILD
new file mode 100644
index 000000000..a62515e89
--- /dev/null
+++ b/community/freemat/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 36137 2010-12-27 15:12:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=freemat
+pkgver=4.0
+pkgrel=4
+pkgdesc="A free environment for rapid engineering, scientific prototyping and data processing"
+arch=('i686' 'x86_64')
+url="http://freemat.sourceforge.net"
+license=('GPL')
+depends=('qt' 'umfpack' 'arpack' 'libmatio' 'ffcall' 'fftw' 'blas' 'lapack' 'mesa' 'portaudio')
+install=freemat.install
+source=(http://downloads.sourceforge.net/project/freemat/FreeMat4/FreeMat-$pkgver-Source.tar.gz
+ freemat-gcc-4.3.0.patch
+ freemat-gcc-4.5.0.patch
+ freemat-qt46.patch
+ input-fix.patch)
+md5sums=('adb58b9f2c508d9ae5b6041da2f75baf'
+ '3dc3848949183de2664c2cf67663c892'
+ 'a3edb7b51057a90a752aff5053f8eed6'
+ 'a8d2ffa9319eccaedb28a10f9c7617f4'
+ 'a78941563453feaca5c7463eaeea1a70')
+
+build() {
+ cd $srcdir/FreeMat-$pkgver.1-Source
+
+ if [ $NOEXTRACT -ne 1 ]; then
+ patch -p1 <$srcdir/freemat-gcc-4.5.0.patch
+ patch -p1 <$srcdir/input-fix.patch
+ patch -p1 <$srcdir/freemat-qt46.patch
+ patch -p1 CMakeCache.txt <<EOF
+23c23,25
+< CMAKE_CACHEFILE_DIR:INTERNAL=/home/basu/dev/branches/FreeMat4
+---
+> #CMAKE_CACHEFILE_DIR:INTERNAL=/home/basu/dev/branches/FreeMat4
+> USE_LLVM:BOOL=OFF
+> CMAKE_INSTALL_PREFIX:PATH=/usr
+EOF
+ cmake `pwd`
+ fi
+ make
+ make DESTDIR=$pkgdir install
+ sed -i "s|/FreeMat-.*/|/FreeMat-$pkgver/|g" $startdir/freemat.install
+ rm $pkgdir/usr/bin/blas.ini
+}
diff --git a/community/freemat/freemat-gcc-4.3.0.patch b/community/freemat/freemat-gcc-4.3.0.patch
new file mode 100644
index 000000000..40247177c
--- /dev/null
+++ b/community/freemat/freemat-gcc-4.3.0.patch
@@ -0,0 +1,37 @@
+diff -wbBur FreeMat-3.6/libs/libFreeMat/Malloc.cpp FreeMat-3.6.my/libs/libFreeMat/Malloc.cpp
+--- FreeMat-3.6/libs/libFreeMat/Malloc.cpp 2008-03-14 18:43:10.000000000 +0300
++++ FreeMat-3.6.my/libs/libFreeMat/Malloc.cpp 2008-04-25 21:29:19.000000000 +0400
+@@ -21,6 +21,7 @@
+ #include "Exception.hpp"
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <string.h>
+
+
+ void* Malloc(int count) {
+diff -wbBur FreeMat-3.6/libs/libFreeMat/Token.cpp FreeMat-3.6.my/libs/libFreeMat/Token.cpp
+--- FreeMat-3.6/libs/libFreeMat/Token.cpp 2008-03-14 18:43:10.000000000 +0300
++++ FreeMat-3.6.my/libs/libFreeMat/Token.cpp 2008-04-25 21:31:33.000000000 +0400
+@@ -2,6 +2,7 @@
+ #include "Serialize.hpp"
+ #include <iostream>
+ #include <errno.h>
++#include <limits.h>
+
+ // These must appear as sequential token numbers
+ string fm_reserved[22] = {
+diff -wbBur FreeMat-3.6/libs/libFreeMat/Types.hpp FreeMat-3.6.my/libs/libFreeMat/Types.hpp
+--- FreeMat-3.6/libs/libFreeMat/Types.hpp 2008-03-14 18:43:10.000000000 +0300
++++ FreeMat-3.6.my/libs/libFreeMat/Types.hpp 2008-04-25 21:28:26.000000000 +0400
+@@ -20,7 +20,11 @@
+ #ifndef __Types_hpp__
+ #define __Types_hpp__
+
++#include <algorithm>
+ #include <string>
++#include <string.h>
++using namespace std;
++
+ #include <QVector>
+ #include <QtGlobal>
+ #include <QList>
diff --git a/community/freemat/freemat-gcc-4.5.0.patch b/community/freemat/freemat-gcc-4.5.0.patch
new file mode 100644
index 000000000..08f644e50
--- /dev/null
+++ b/community/freemat/freemat-gcc-4.5.0.patch
@@ -0,0 +1,207 @@
+diff -wbBur FreeMat-4.0.1-Source/libs/libFreeMat/Array.cpp FreeMat-4.0.1-Source.my//libs/libFreeMat/Array.cpp
+--- FreeMat-4.0.1-Source/libs/libFreeMat/Array.cpp 2009-10-09 06:24:20.000000000 +0000
++++ FreeMat-4.0.1-Source.my//libs/libFreeMat/Array.cpp 2010-12-27 12:38:46.000000000 +0000
+@@ -465,7 +465,7 @@
+
+ void Array::set(const QString& field, ArrayVector& data) {
+ if (isEmpty() && m_type.Class != Struct)
+- *this = Array::Array(Struct);
++ *this = Array(Struct);
+ if (m_type.Class != Struct) throw Exception("Unsupported type for A.field=B");
+ StructArray &rp(structPtr());
+ if (isEmpty())
+diff -wbBur FreeMat-4.0.1-Source/libs/libFreeMat/Math.cpp FreeMat-4.0.1-Source.my//libs/libFreeMat/Math.cpp
+--- FreeMat-4.0.1-Source/libs/libFreeMat/Math.cpp 2009-10-09 06:24:22.000000000 +0000
++++ FreeMat-4.0.1-Source.my//libs/libFreeMat/Math.cpp 2010-12-27 12:42:34.000000000 +0000
+@@ -1590,9 +1590,9 @@
+
+ Array Not(const Array& A) {
+ if (A.isScalar())
+- return Array::Array(!A.toClass(Bool).constRealScalar<bool>());
++ return Array(!A.toClass(Bool).constRealScalar<bool>());
+ const Array &Abool(A.toClass(Bool));
+- return Array::Array(Apply(Abool.constReal<bool>(),notfunc));
++ return Array(Apply(Abool.constReal<bool>(),notfunc));
+ }
+
+ Array Plus(const Array& A) {
+diff -wbBur FreeMat-4.0.1-Source/libs/libFreeMat/Operators.hpp FreeMat-4.0.1-Source.my//libs/libFreeMat/Operators.hpp
+--- FreeMat-4.0.1-Source/libs/libFreeMat/Operators.hpp 2009-10-09 06:24:22.000000000 +0000
++++ FreeMat-4.0.1-Source.my//libs/libFreeMat/Operators.hpp 2010-12-27 14:04:11.000000000 +0000
+@@ -142,11 +142,11 @@
+ if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray();
+ if (Acast.isScalar() && Bcast.isScalar()) {
+ if (Acast.allReal() && Bcast.allReal()) {
+- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
++ F = Array(Op::func(Acast.constRealScalar<T>(),
+ Bcast.constRealScalar<T>()));
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(T(0),T(0));
++ F = Array(T(0),T(0));
+ Op::func(Acast.constRealScalar<T>(),
+ Acast.constImagScalar<T>(),
+ Bcast.constRealScalar<T>(),
+@@ -155,7 +155,7 @@
+ }
+ } else if (Acast.isScalar()) {
+ if (Acast.allReal() && Bcast.allReal()) {
+- F = Array::Array(Tclass,Bcast.dimensions());
++ F = Array(Tclass,Bcast.dimensions());
+ T* ret = F.real<T>().data();
+ const T& Ap = Acast.constRealScalar<T>();
+ const T* Bp = Bcast.constReal<T>().constData();
+@@ -163,7 +163,7 @@
+ for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]);
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(Tclass,Bcast.dimensions());
++ F = Array(Tclass,Bcast.dimensions());
+ T* Cr = F.real<T>().data();
+ T* Ci = F.imag<T>().data();
+ const T& Ar = Acast.constRealScalar<T>();
+@@ -175,7 +175,7 @@
+ }
+ } else if (Bcast.isScalar()) {
+ if (Bcast.allReal() && Acast.allReal()) {
+- F = Array::Array(Tclass,Acast.dimensions());
++ F = Array(Tclass,Acast.dimensions());
+ T* ret = F.real<T>().data();
+ const T* Ap = Acast.constReal<T>().constData();
+ const T& Bp = Bcast.constRealScalar<T>();
+@@ -183,7 +183,7 @@
+ for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp);
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(Tclass,Acast.dimensions());
++ F = Array(Tclass,Acast.dimensions());
+ T* Cr = F.real<T>().data();
+ T* Ci = F.imag<T>().data();
+ const T* Ar = Acast.constReal<T>().constData();
+@@ -197,7 +197,7 @@
+ if (Acast.dimensions() != Bcast.dimensions())
+ throw Exception("size mismatch in arguments to binary operator");
+ if (Bcast.allReal() && Acast.allReal()) {
+- F = Array::Array(Tclass,Acast.dimensions());
++ F = Array(Tclass,Acast.dimensions());
+ T* ret = F.real<T>().data();
+ const T* Ap = Acast.constReal<T>().constData();
+ const T* Bp = Bcast.constReal<T>().constData();
+@@ -205,7 +205,7 @@
+ for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp[i]);
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(Tclass,Acast.dimensions());
++ F = Array(Tclass,Acast.dimensions());
+ T* Cr = F.real<T>().data();
+ T* Ci = F.imag<T>().data();
+ const T* Ar = Acast.constReal<T>().constData();
+@@ -328,17 +328,17 @@
+ if (!Acast.isScalar()) Acast = Acast.asDenseArray();
+ if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray();
+ if (Acast.isScalar() && Bcast.isScalar()) {
+- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
++ F = Array(Op::func(Acast.constRealScalar<T>(),
+ Bcast.constRealScalar<T>()));
+ } else if (Acast.isScalar()) {
+- F = Array::Array(Bool,Bcast.dimensions());
++ F = Array(Bool,Bcast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T& Ap = Acast.constRealScalar<T>();
+ const T* Bp = Bcast.constReal<T>().constData();
+ uint64 q = uint64(Bcast.length());
+ for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]);
+ } else if (Bcast.isScalar()) {
+- F = Array::Array(Bool,Acast.dimensions());
++ F = Array(Bool,Acast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T* Ap = Acast.constReal<T>().constData();
+ const T& Bp = Bcast.constRealScalar<T>();
+@@ -347,7 +347,7 @@
+ } else {
+ if (Acast.dimensions() != Bcast.dimensions())
+ throw Exception("size mismatch in arguments to binary operator");
+- F = Array::Array(Bool,Acast.dimensions());
++ F = Array(Bool,Acast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T* Ap = Acast.constReal<T>().constData();
+ const T* Bp = Bcast.constReal<T>().constData();
+@@ -395,18 +395,18 @@
+ if (!Bcast.isScalar()) Bcast = Bcast.asDenseArray();
+ if (Acast.isScalar() && Bcast.isScalar()) {
+ if (Acast.allReal() && Bcast.allReal()) {
+- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
++ F = Array(Op::func(Acast.constRealScalar<T>(),
+ Bcast.constRealScalar<T>()));
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(Op::func(Acast.constRealScalar<T>(),
++ F = Array(Op::func(Acast.constRealScalar<T>(),
+ Acast.constImagScalar<T>(),
+ Bcast.constRealScalar<T>(),
+ Bcast.constImagScalar<T>()));
+ }
+ } else if (Acast.isScalar()) {
+ if (Acast.allReal() && Bcast.allReal()) {
+- F = Array::Array(Bool,Bcast.dimensions());
++ F = Array(Bool,Bcast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T& Ap = Acast.constRealScalar<T>();
+ const T* Bp = Bcast.constReal<T>().constData();
+@@ -414,7 +414,7 @@
+ for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap,Bp[i]);
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(Bool,Bcast.dimensions());
++ F = Array(Bool,Bcast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T& Ar = Acast.constRealScalar<T>();
+ const T& Ai = Acast.constImagScalar<T>();
+@@ -425,7 +425,7 @@
+ }
+ } else if (Bcast.isScalar()) {
+ if (Bcast.allReal() && Acast.allReal()) {
+- F = Array::Array(Bool,Acast.dimensions());
++ F = Array(Bool,Acast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T* Ap = Acast.constReal<T>().constData();
+ const T& Bp = Bcast.constRealScalar<T>();
+@@ -433,7 +433,7 @@
+ for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp);
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(Bool,Acast.dimensions());
++ F = Array(Bool,Acast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T* Ar = Acast.constReal<T>().constData();
+ const T* Ai = Acast.constImag<T>().constData();
+@@ -446,7 +446,7 @@
+ if (Acast.dimensions() != Bcast.dimensions())
+ throw Exception("size mismatch in arguments to binary operator");
+ if (Bcast.allReal() && Acast.allReal()) {
+- F = Array::Array(Bool,Acast.dimensions());
++ F = Array(Bool,Acast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T* Ap = Acast.constReal<T>().constData();
+ const T* Bp = Bcast.constReal<T>().constData();
+@@ -454,7 +454,7 @@
+ for (uint64 i=0;i<q;i++) ret[i] = Op::func(Ap[i],Bp[i]);
+ } else {
+ Acast.forceComplex(); Bcast.forceComplex();
+- F = Array::Array(Bool,Acast.dimensions());
++ F = Array(Bool,Acast.dimensions());
+ bool* ret = F.real<bool>().data();
+ const T* Ar = Acast.constReal<T>().constData();
+ const T* Ai = Acast.constImag<T>().constData();
+@@ -533,9 +533,9 @@
+ if (!Acast.isScalar()) Acast = Acast.asDenseArray();
+ if (Acast.isScalar()) {
+ if (Acast.allReal()) {
+- F = Array::Array(Op::func(Acast.constRealScalar<T>()));
++ F = Array(Op::func(Acast.constRealScalar<T>()));
+ } else {
+- F = Array::Array(T(0),T(0));
++ F = Array(T(0),T(0));
+ Op::func(Acast.constRealScalar<T>(),
+ Acast.constImagScalar<T>(),
+ F.realScalar<T>(),F.imagScalar<T>());
diff --git a/community/freemat/freemat-qt46.patch b/community/freemat/freemat-qt46.patch
new file mode 100644
index 000000000..aa92dc18c
--- /dev/null
+++ b/community/freemat/freemat-qt46.patch
@@ -0,0 +1,2088 @@
+diff -wbBur FreeMat-4.0.1-Source/libs/libCore/helpwidget.moc.cpp FreeMat-4.0.1-Source.new/libs/libCore/helpwidget.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libCore/helpwidget.moc.cpp 2009-10-09 06:23:29.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libCore/helpwidget.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'helpwidget.hpp'
+ **
+-** Created: Thu Oct 8 21:52:25 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "helpwidget.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'helpwidget.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_HelpSearcher[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x08,
+@@ -43,9 +45,13 @@
+ qt_meta_data_HelpSearcher, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &HelpSearcher::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *HelpSearcher::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *HelpSearcher::qt_metacast(const char *_clname)
+@@ -73,13 +79,15 @@
+ static const uint qt_meta_data_HelpWidget[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -93,9 +101,13 @@
+ qt_meta_data_HelpWidget, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &HelpWidget::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *HelpWidget::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *HelpWidget::qt_metacast(const char *_clname)
+@@ -116,13 +128,15 @@
+ static const uint qt_meta_data_HelpWindow[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 6, 12, // methods
++ 6, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x05,
+@@ -150,9 +164,13 @@
+ qt_meta_data_HelpWindow, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &HelpWindow::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *HelpWindow::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *HelpWindow::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libCore/XML.moc.cpp FreeMat-4.0.1-Source.new/libs/libCore/XML.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libCore/XML.moc.cpp 2009-10-09 06:23:28.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libCore/XML.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'XML.hpp'
+ **
+-** Created: Thu Oct 8 21:52:25 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "XML.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'XML.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_URLRetriever[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 21, 14, 13, 13, 0x0a,
+@@ -43,9 +45,13 @@
+ qt_meta_data_URLRetriever, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &URLRetriever::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *URLRetriever::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *URLRetriever::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libFreeMat/DebugStream.moc.cpp FreeMat-4.0.1-Source.new/libs/libFreeMat/DebugStream.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libFreeMat/DebugStream.moc.cpp 2009-10-09 06:24:22.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libFreeMat/DebugStream.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'DebugStream.hpp'
+ **
+-** Created: Thu Oct 8 21:51:54 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "DebugStream.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'DebugStream.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_DebugStream[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 17, 13, 12, 12, 0x05,
+@@ -43,9 +45,13 @@
+ qt_meta_data_DebugStream, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &DebugStream::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *DebugStream::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *DebugStream::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libFreeMat/Intrepreter.moc.cpp FreeMat-4.0.1-Source.new/libs/libFreeMat/Intrepreter.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libFreeMat/Intrepreter.moc.cpp 2009-10-09 06:24:21.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libFreeMat/Intrepreter.moc.cpp 2010-03-03 13:24:53.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'Interpreter.hpp'
+ **
+-** Created: Thu Oct 8 21:51:55 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:24:53 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "Interpreter.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'Interpreter.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_Interpreter[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 20, 12, // methods
++ 20, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 16, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 13, 12, 12, 12, 0x05,
+@@ -77,9 +79,13 @@
+ qt_meta_data_Interpreter, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &Interpreter::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *Interpreter::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *Interpreter::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libGraphics/GLWindow.moc.cpp FreeMat-4.0.1-Source.new/libs/libGraphics/GLWindow.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libGraphics/GLWindow.moc.cpp 2009-10-09 06:24:11.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libGraphics/GLWindow.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'GLWindow.hpp'
+ **
+-** Created: Thu Oct 8 21:52:04 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "GLWindow.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'GLWindow.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_GLWidget[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -40,9 +42,13 @@
+ qt_meta_data_GLWidget, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &GLWidget::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *GLWidget::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *GLWidget::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libGraphics/HandleMultiEdit.moc.cpp FreeMat-4.0.1-Source.new/libs/libGraphics/HandleMultiEdit.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libGraphics/HandleMultiEdit.moc.cpp 2009-10-09 06:24:11.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libGraphics/HandleMultiEdit.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'HandleMultiEdit.hpp'
+ **
+-** Created: Thu Oct 8 21:52:05 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "HandleMultiEdit.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'HandleMultiEdit.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_HandleMultiEdit[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 17, 16, 16, 16, 0x05,
+@@ -43,9 +45,13 @@
+ qt_meta_data_HandleMultiEdit, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &HandleMultiEdit::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *HandleMultiEdit::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *HandleMultiEdit::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libGraphics/HandleUIControl.moc.cpp FreeMat-4.0.1-Source.new/libs/libGraphics/HandleUIControl.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libGraphics/HandleUIControl.moc.cpp 2009-10-09 06:24:11.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libGraphics/HandleUIControl.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'HandleUIControl.hpp'
+ **
+-** Created: Thu Oct 8 21:52:05 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "HandleUIControl.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'HandleUIControl.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_HandleUIControl[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 17, 16, 16, 16, 0x08,
+@@ -43,9 +45,13 @@
+ qt_meta_data_HandleUIControl, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &HandleUIControl::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *HandleUIControl::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *HandleUIControl::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libGraphics/HandleWindow.moc.cpp FreeMat-4.0.1-Source.new/libs/libGraphics/HandleWindow.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libGraphics/HandleWindow.moc.cpp 2009-10-09 06:24:11.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libGraphics/HandleWindow.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'HandleWindow.hpp'
+ **
+-** Created: Thu Oct 8 21:52:05 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "HandleWindow.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'HandleWindow.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_HandleWindow[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 6, 12, // methods
++ 6, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x0a,
+@@ -50,9 +52,13 @@
+ qt_meta_data_HandleWindow, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &HandleWindow::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *HandleWindow::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *HandleWindow::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/DataTable.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/DataTable.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/DataTable.moc.cpp 2009-10-09 06:24:19.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/DataTable.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'DataTable.hpp'
+ **
+-** Created: Thu Oct 8 21:52:15 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "DataTable.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'DataTable.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_DataTable[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -40,9 +42,13 @@
+ qt_meta_data_DataTable, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &DataTable::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *DataTable::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *DataTable::qt_metacast(const char *_clname)
+@@ -63,13 +69,15 @@
+ static const uint qt_meta_data_DataView[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -83,9 +91,13 @@
+ qt_meta_data_DataView, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &DataView::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *DataView::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *DataView::qt_metacast(const char *_clname)
+@@ -106,13 +118,15 @@
+ static const uint qt_meta_data_DataHeaderView[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 16, 15, 15, 15, 0x08,
+@@ -129,9 +143,13 @@
+ qt_meta_data_DataHeaderView, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &DataHeaderView::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *DataHeaderView::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *DataHeaderView::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/DebugWin.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/DebugWin.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/DebugWin.moc.cpp 2009-10-09 06:24:18.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/DebugWin.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'DebugWin.hpp'
+ **
+-** Created: Thu Oct 8 21:52:15 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "DebugWin.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'DebugWin.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_DebugWin[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 3, 12, // methods
++ 3, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 12, 10, 9, 9, 0x09,
+@@ -46,9 +48,13 @@
+ qt_meta_data_DebugWin, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &DebugWin::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *DebugWin::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *DebugWin::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/Editor.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/Editor.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/Editor.moc.cpp 2009-10-09 06:24:12.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/Editor.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'Editor.hpp'
+ **
+-** Created: Thu Oct 8 21:52:14 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "Editor.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'Editor.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_FMFindDialog[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 2, 12, // methods
++ 2, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 39, 14, 13, 13, 0x05,
+@@ -47,9 +49,13 @@
+ qt_meta_data_FMFindDialog, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMFindDialog::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMFindDialog::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMFindDialog::qt_metacast(const char *_clname)
+@@ -85,13 +91,15 @@
+ static const uint qt_meta_data_FMReplaceDialog[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 6, 12, // methods
++ 6, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 3, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 42, 17, 16, 16, 0x05,
+@@ -120,9 +128,13 @@
+ qt_meta_data_FMReplaceDialog, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMReplaceDialog::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMReplaceDialog::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMReplaceDialog::qt_metacast(const char *_clname)
+@@ -176,13 +188,15 @@
+ static const uint qt_meta_data_FMTextEdit[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 6, 12, // methods
++ 6, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 3, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x05,
+@@ -210,9 +224,13 @@
+ qt_meta_data_FMTextEdit, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMTextEdit::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMTextEdit::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMTextEdit::qt_metacast(const char *_clname)
+@@ -264,13 +282,15 @@
+ static const uint qt_meta_data_FMIndent[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 2, 12, // methods
++ 2, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x08,
+@@ -288,9 +308,13 @@
+ qt_meta_data_FMIndent, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMIndent::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMIndent::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMIndent::qt_metacast(const char *_clname)
+@@ -319,13 +343,15 @@
+ static const uint qt_meta_data_BreakPointIndicator[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -339,9 +365,13 @@
+ qt_meta_data_BreakPointIndicator, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &BreakPointIndicator::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *BreakPointIndicator::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *BreakPointIndicator::qt_metacast(const char *_clname)
+@@ -362,13 +392,15 @@
+ static const uint qt_meta_data_FMLineNumber[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -382,9 +414,13 @@
+ qt_meta_data_FMLineNumber, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMLineNumber::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMLineNumber::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMLineNumber::qt_metacast(const char *_clname)
+@@ -405,13 +441,15 @@
+ static const uint qt_meta_data_FMEditPane[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 23, 12, 11, 11, 0x05,
+@@ -428,9 +466,13 @@
+ qt_meta_data_FMEditPane, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMEditPane::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMEditPane::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMEditPane::qt_metacast(const char *_clname)
+@@ -465,13 +507,15 @@
+ static const uint qt_meta_data_FMIndentConf[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x08,
+@@ -488,9 +532,13 @@
+ qt_meta_data_FMIndentConf, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMIndentConf::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMIndentConf::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMIndentConf::qt_metacast(const char *_clname)
+@@ -518,13 +566,15 @@
+ static const uint qt_meta_data_FMSynLightConf[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 5, 12, // methods
++ 5, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 16, 15, 15, 15, 0x08,
+@@ -547,9 +597,13 @@
+ qt_meta_data_FMSynLightConf, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMSynLightConf::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMSynLightConf::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMSynLightConf::qt_metacast(const char *_clname)
+@@ -581,13 +635,15 @@
+ static const uint qt_meta_data_FMEditor[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 46, 12, // methods
++ 46, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 3, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x05,
+@@ -675,9 +731,13 @@
+ qt_meta_data_FMEditor, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMEditor::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMEditor::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMEditor::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/FileTool.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/FileTool.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/FileTool.moc.cpp 2009-10-09 06:24:20.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/FileTool.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'FileTool.hpp'
+ **
+-** Created: Thu Oct 8 21:52:15 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "FileTool.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'FileTool.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_FileTool[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 3, 12, // methods
++ 3, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 10, 9, 9, 0x05,
+@@ -49,9 +51,13 @@
+ qt_meta_data_FileTool, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FileTool::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FileTool::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FileTool::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/findform.ui.h FreeMat-4.0.1-Source.new/libs/libXP/findform.ui.h
+--- FreeMat-4.0.1-Source/libs/libXP/findform.ui.h 2009-10-09 06:24:12.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/findform.ui.h 2010-03-03 13:17:50.000000000 +0000
+@@ -1,10 +1,10 @@
+ /********************************************************************************
+-** Form generated from reading ui file 'findform.ui'
++** Form generated from reading UI file 'findform.ui'
+ **
+-** Created: Thu Oct 8 21:52:13 2009
+-** by: Qt User Interface Compiler version 4.5.2
++** Created: Wed Mar 3 13:17:50 2010
++** by: Qt User Interface Compiler version 4.6.2
+ **
+-** WARNING! All changes made in this file will be lost when recompiling ui file!
++** WARNING! All changes made in this file will be lost when recompiling UI file!
+ ********************************************************************************/
+
+ #ifndef FINDFORM_H
+@@ -69,7 +69,7 @@
+ #ifndef Q_OS_MAC
+ vboxLayout->setSpacing(6);
+ #endif
+- vboxLayout->setMargin(0);
++ vboxLayout->setContentsMargins(0, 0, 0, 0);
+ vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
+ vboxLayout->setContentsMargins(0, 0, 0, 0);
+ hboxLayout = new QHBoxLayout();
+@@ -77,7 +77,7 @@
+ hboxLayout->setSpacing(6);
+ #endif
+ #ifndef Q_OS_MAC
+- hboxLayout->setMargin(0);
++ hboxLayout->setContentsMargins(0, 0, 0, 0);
+ #endif
+ hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+ label = new QLabel(layoutWidget);
+@@ -119,7 +119,7 @@
+ #ifndef Q_OS_MAC
+ vboxLayout1->setSpacing(6);
+ #endif
+- vboxLayout1->setMargin(0);
++ vboxLayout1->setContentsMargins(0, 0, 0, 0);
+ vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
+ vboxLayout1->setContentsMargins(0, 0, 0, 0);
+ cbSensitive = new QCheckBox(layoutWidget1);
+@@ -149,7 +149,7 @@
+ #ifndef Q_OS_MAC
+ vboxLayout2->setSpacing(6);
+ #endif
+- vboxLayout2->setMargin(0);
++ vboxLayout2->setContentsMargins(0, 0, 0, 0);
+ vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
+ vboxLayout2->setContentsMargins(0, 0, 0, 0);
+ btFind = new QPushButton(layoutWidget2);
+@@ -191,7 +191,6 @@
+ lbStatus->setText(QString());
+ btFind->setText(QApplication::translate("FMFindDialog", "Find", 0, QApplication::UnicodeUTF8));
+ btClose->setText(QApplication::translate("FMFindDialog", "Close", 0, QApplication::UnicodeUTF8));
+- Q_UNUSED(FMFindDialog);
+ } // retranslateUi
+
+ };
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/FMFontDialog.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/FMFontDialog.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/FMFontDialog.moc.cpp 2009-10-09 06:24:20.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/FMFontDialog.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'FMFontDialog.hpp'
+ **
+-** Created: Thu Oct 8 21:52:14 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "FMFontDialog.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'FMFontDialog.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_FMFontDialog[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 3, 12, // methods
++ 3, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 19, 14, 13, 13, 0x08,
+@@ -46,9 +48,13 @@
+ qt_meta_data_FMFontDialog, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FMFontDialog::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FMFontDialog::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FMFontDialog::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/fontform.ui.h FreeMat-4.0.1-Source.new/libs/libXP/fontform.ui.h
+--- FreeMat-4.0.1-Source/libs/libXP/fontform.ui.h 2009-10-09 06:24:19.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/fontform.ui.h 2010-03-03 13:17:50.000000000 +0000
+@@ -1,10 +1,10 @@
+ /********************************************************************************
+-** Form generated from reading ui file 'fontform.ui'
++** Form generated from reading UI file 'fontform.ui'
+ **
+-** Created: Thu Oct 8 21:52:13 2009
+-** by: Qt User Interface Compiler version 4.5.2
++** Created: Wed Mar 3 13:17:50 2010
++** by: Qt User Interface Compiler version 4.6.2
+ **
+-** WARNING! All changes made in this file will be lost when recompiling ui file!
++** WARNING! All changes made in this file will be lost when recompiling UI file!
+ ********************************************************************************/
+
+ #ifndef FONTFORM_H
+@@ -80,7 +80,6 @@
+ label_2->setText(QApplication::translate("FixedFontDialog", "Size", 0, QApplication::UnicodeUTF8));
+ groupBox->setTitle(QApplication::translate("FixedFontDialog", "Sample", 0, QApplication::UnicodeUTF8));
+ sample->setText(QApplication::translate("FixedFontDialog", "AaBbZz123", 0, QApplication::UnicodeUTF8));
+- Q_UNUSED(FixedFontDialog);
+ } // retranslateUi
+
+ };
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/highlighter.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/highlighter.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/highlighter.moc.cpp 2009-10-09 06:24:19.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/highlighter.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'highlighter.hpp'
+ **
+-** Created: Thu Oct 8 21:52:15 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "highlighter.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'highlighter.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_Highlighter[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -40,9 +42,13 @@
+ qt_meta_data_Highlighter, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &Highlighter::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *Highlighter::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *Highlighter::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/HistoryWidget.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/HistoryWidget.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/HistoryWidget.moc.cpp 2009-10-09 06:24:20.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/HistoryWidget.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'HistoryWidget.hpp'
+ **
+-** Created: Thu Oct 8 21:52:15 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "HistoryWidget.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'HistoryWidget.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_HistoryWidget[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 8, 12, // methods
++ 8, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 3, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 17, 15, 14, 14, 0x05,
+@@ -56,9 +58,13 @@
+ qt_meta_data_HistoryWidget, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &HistoryWidget::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *HistoryWidget::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *HistoryWidget::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/KeyManager.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/KeyManager.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/KeyManager.moc.cpp 2009-10-09 06:24:12.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/KeyManager.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'KeyManager.hpp'
+ **
+-** Created: Thu Oct 8 21:52:14 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "KeyManager.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'KeyManager.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_KeyManager[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 39, 12, // methods
++ 39, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 21, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x05,
+@@ -101,9 +103,13 @@
+ qt_meta_data_KeyManager, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &KeyManager::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *KeyManager::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *KeyManager::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/PathTool.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/PathTool.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/PathTool.moc.cpp 2009-10-09 06:24:12.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/PathTool.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'PathTool.hpp'
+ **
+-** Created: Thu Oct 8 21:52:14 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "PathTool.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'PathTool.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_PathTool[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 7, 12, // methods
++ 7, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x08,
+@@ -50,9 +52,13 @@
+ qt_meta_data_PathTool, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &PathTool::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *PathTool::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *PathTool::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/QTTerm.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/QTTerm.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/QTTerm.moc.cpp 2009-10-09 06:24:18.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/QTTerm.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'QTTerm.hpp'
+ **
+-** Created: Thu Oct 8 21:52:14 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "QTTerm.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'QTTerm.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_QTTerm[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 15, 12, // methods
++ 15, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 4, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 10, 8, 7, 7, 0x05,
+@@ -65,9 +67,13 @@
+ qt_meta_data_QTTerm, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &QTTerm::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *QTTerm::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *QTTerm::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/replaceform.ui.h FreeMat-4.0.1-Source.new/libs/libXP/replaceform.ui.h
+--- FreeMat-4.0.1-Source/libs/libXP/replaceform.ui.h 2009-10-09 06:24:12.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/replaceform.ui.h 2010-03-03 13:17:50.000000000 +0000
+@@ -1,10 +1,10 @@
+ /********************************************************************************
+-** Form generated from reading ui file 'replaceform.ui'
++** Form generated from reading UI file 'replaceform.ui'
+ **
+-** Created: Thu Oct 8 21:52:13 2009
+-** by: Qt User Interface Compiler version 4.5.2
++** Created: Wed Mar 3 13:17:50 2010
++** by: Qt User Interface Compiler version 4.6.2
+ **
+-** WARNING! All changes made in this file will be lost when recompiling ui file!
++** WARNING! All changes made in this file will be lost when recompiling UI file!
+ ********************************************************************************/
+
+ #ifndef REPLACEFORM_H
+@@ -74,7 +74,7 @@
+ #ifndef Q_OS_MAC
+ vboxLayout->setSpacing(6);
+ #endif
+- vboxLayout->setMargin(0);
++ vboxLayout->setContentsMargins(0, 0, 0, 0);
+ vboxLayout->setObjectName(QString::fromUtf8("vboxLayout"));
+ vboxLayout->setContentsMargins(0, 0, 0, 0);
+ hboxLayout = new QHBoxLayout();
+@@ -82,7 +82,7 @@
+ hboxLayout->setSpacing(6);
+ #endif
+ #ifndef Q_OS_MAC
+- hboxLayout->setMargin(0);
++ hboxLayout->setContentsMargins(0, 0, 0, 0);
+ #endif
+ hboxLayout->setObjectName(QString::fromUtf8("hboxLayout"));
+ label = new QLabel(layoutWidget);
+@@ -113,7 +113,7 @@
+ #ifndef Q_OS_MAC
+ hboxLayout1->setSpacing(6);
+ #endif
+- hboxLayout1->setMargin(0);
++ hboxLayout1->setContentsMargins(0, 0, 0, 0);
+ hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1"));
+ label_2 = new QLabel(layoutWidget);
+ label_2->setObjectName(QString::fromUtf8("label_2"));
+@@ -146,7 +146,7 @@
+ #ifndef Q_OS_MAC
+ vboxLayout1->setSpacing(6);
+ #endif
+- vboxLayout1->setMargin(0);
++ vboxLayout1->setContentsMargins(0, 0, 0, 0);
+ vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1"));
+ vboxLayout1->setContentsMargins(0, 0, 0, 0);
+ cbSensitive = new QCheckBox(layoutWidget1);
+@@ -176,7 +176,7 @@
+ #ifndef Q_OS_MAC
+ vboxLayout2->setSpacing(6);
+ #endif
+- vboxLayout2->setMargin(0);
++ vboxLayout2->setContentsMargins(0, 0, 0, 0);
+ vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2"));
+ vboxLayout2->setContentsMargins(0, 0, 0, 0);
+ btReplace = new QPushButton(layoutWidget2);
+@@ -234,7 +234,6 @@
+ btReplaceAll->setText(QApplication::translate("FMReplaceDialog", "Replace All", 0, QApplication::UnicodeUTF8));
+ btFind->setText(QApplication::translate("FMReplaceDialog", "Find Next", 0, QApplication::UnicodeUTF8));
+ btClose->setText(QApplication::translate("FMReplaceDialog", "Close", 0, QApplication::UnicodeUTF8));
+- Q_UNUSED(FMReplaceDialog);
+ } // retranslateUi
+
+ };
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/StackTool.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/StackTool.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/StackTool.moc.cpp 2009-10-09 06:24:19.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/StackTool.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'StackTool.hpp'
+ **
+-** Created: Thu Oct 8 21:52:13 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "StackTool.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'StackTool.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_StackTool[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 3, 12, // methods
++ 3, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 11, 10, 10, 10, 0x05,
+@@ -49,9 +51,13 @@
+ qt_meta_data_StackTool, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &StackTool::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *StackTool::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *StackTool::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/ToolDock.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/ToolDock.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/ToolDock.moc.cpp 2009-10-09 06:24:19.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/ToolDock.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'ToolDock.hpp'
+ **
+-** Created: Thu Oct 8 21:52:15 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "ToolDock.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'ToolDock.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_ToolDock[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ 0 // eod
+ };
+@@ -40,9 +42,13 @@
+ qt_meta_data_ToolDock, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &ToolDock::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *ToolDock::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *ToolDock::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/libs/libXP/VariablesTool.moc.cpp FreeMat-4.0.1-Source.new/libs/libXP/VariablesTool.moc.cpp
+--- FreeMat-4.0.1-Source/libs/libXP/VariablesTool.moc.cpp 2009-10-09 06:24:20.000000000 +0000
++++ FreeMat-4.0.1-Source.new/libs/libXP/VariablesTool.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'VariablesTool.hpp'
+ **
+-** Created: Thu Oct 8 21:52:15 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "VariablesTool.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'VariablesTool.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_VariablesTool[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 1, 12, // methods
++ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 0, // signalCount
+
+ // slots: signature, parameters, type, tag, flags
+ 15, 14, 14, 14, 0x09,
+@@ -43,9 +45,13 @@
+ qt_meta_data_VariablesTool, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &VariablesTool::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *VariablesTool::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *VariablesTool::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/src/application.moc.cpp FreeMat-4.0.1-Source.new/src/application.moc.cpp
+--- FreeMat-4.0.1-Source/src/application.moc.cpp 2009-10-09 06:27:01.000000000 +0000
++++ FreeMat-4.0.1-Source.new/src/application.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'application.hpp'
+ **
+-** Created: Thu Oct 8 21:53:56 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "application.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'application.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_ApplicationWindow[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 31, 12, // methods
++ 31, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 6, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 19, 18, 18, 18, 0x05,
+@@ -86,9 +88,13 @@
+ qt_meta_data_ApplicationWindow, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &ApplicationWindow::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *ApplicationWindow::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *ApplicationWindow::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/src/DumbTerminal.moc.cpp FreeMat-4.0.1-Source.new/src/DumbTerminal.moc.cpp
+--- FreeMat-4.0.1-Source/src/DumbTerminal.moc.cpp 2009-10-09 06:27:01.000000000 +0000
++++ FreeMat-4.0.1-Source.new/src/DumbTerminal.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'DumbTerminal.hpp'
+ **
+-** Created: Thu Oct 8 21:53:56 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "DumbTerminal.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'DumbTerminal.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_DumbTerminal[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 13, 12, // methods
++ 13, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 3, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 16, 14, 13, 13, 0x05,
+@@ -63,9 +65,13 @@
+ qt_meta_data_DumbTerminal, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &DumbTerminal::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *DumbTerminal::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *DumbTerminal::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/src/FuncMode.moc.cpp FreeMat-4.0.1-Source.new/src/FuncMode.moc.cpp
+--- FreeMat-4.0.1-Source/src/FuncMode.moc.cpp 2009-10-09 06:27:01.000000000 +0000
++++ FreeMat-4.0.1-Source.new/src/FuncMode.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'FuncMode.hpp'
+ **
+-** Created: Thu Oct 8 21:53:56 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "FuncMode.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'FuncMode.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_FuncMode[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 2, 12, // methods
++ 2, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 1, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x05,
+@@ -46,9 +48,13 @@
+ qt_meta_data_FuncMode, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &FuncMode::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *FuncMode::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *FuncMode::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/src/MainApp.moc.cpp FreeMat-4.0.1-Source.new/src/MainApp.moc.cpp
+--- FreeMat-4.0.1-Source/src/MainApp.moc.cpp 2009-10-09 06:27:01.000000000 +0000
++++ FreeMat-4.0.1-Source.new/src/MainApp.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'MainApp.hpp'
+ **
+-** Created: Thu Oct 8 21:53:56 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "MainApp.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'MainApp.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_MainApp[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 21, 12, // methods
++ 21, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 3, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 9, 8, 8, 8, 0x05,
+@@ -75,9 +77,13 @@
+ qt_meta_data_MainApp, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &MainApp::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *MainApp::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *MainApp::qt_metacast(const char *_clname)
+diff -wbBur FreeMat-4.0.1-Source/src/Terminal.moc.cpp FreeMat-4.0.1-Source.new/src/Terminal.moc.cpp
+--- FreeMat-4.0.1-Source/src/Terminal.moc.cpp 2009-10-09 06:27:01.000000000 +0000
++++ FreeMat-4.0.1-Source.new/src/Terminal.moc.cpp 2010-03-03 13:22:19.000000000 +0000
+@@ -1,8 +1,8 @@
+ /****************************************************************************
+ ** Meta object code from reading C++ file 'Terminal.hpp'
+ **
+-** Created: Thu Oct 8 21:53:56 2009
+-** by: The Qt Meta Object Compiler version 61 (Qt 4.5.2)
++** Created: Wed Mar 3 13:22:19 2010
++** by: The Qt Meta Object Compiler version 62 (Qt 4.6.2)
+ **
+ ** WARNING! All changes made in this file will be lost!
+ *****************************************************************************/
+@@ -10,8 +10,8 @@
+ #include "Terminal.hpp"
+ #if !defined(Q_MOC_OUTPUT_REVISION)
+ #error "The header file 'Terminal.hpp' doesn't include <QObject>."
+-#elif Q_MOC_OUTPUT_REVISION != 61
+-#error "This file was generated using the moc from 4.5.2. It"
++#elif Q_MOC_OUTPUT_REVISION != 62
++#error "This file was generated using the moc from 4.6.2. It"
+ #error "cannot be used with the include files from this version of Qt."
+ #error "(The moc has changed too much.)"
+ #endif
+@@ -20,13 +20,15 @@
+ static const uint qt_meta_data_Terminal[] = {
+
+ // content:
+- 2, // revision
++ 4, // revision
+ 0, // classname
+ 0, 0, // classinfo
+- 13, 12, // methods
++ 13, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
++ 0, // flags
++ 3, // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 10, 9, 9, 0x05,
+@@ -62,9 +64,13 @@
+ qt_meta_data_Terminal, 0 }
+ };
+
++#ifdef Q_NO_DATA_RELOCATION
++const QMetaObject &Terminal::getStaticMetaObject() { return staticMetaObject; }
++#endif //Q_NO_DATA_RELOCATION
++
+ const QMetaObject *Terminal::metaObject() const
+ {
+- return &staticMetaObject;
++ return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+ }
+
+ void *Terminal::qt_metacast(const char *_clname)
diff --git a/community/freemat/freemat.install b/community/freemat/freemat.install
new file mode 100644
index 000000000..e319f1a24
--- /dev/null
+++ b/community/freemat/freemat.install
@@ -0,0 +1,7 @@
+post_install() {
+ echo "-- Use FreeMat -i /usr/share/FreeMat-4.0/ to adjust docs location"
+}
+
+post_upgrade() {
+ echo "-- Use FreeMat -i /usr/share/FreeMat-4.0/ to adjust docs location"
+}
diff --git a/community/freemat/input-fix.patch b/community/freemat/input-fix.patch
new file mode 100644
index 000000000..92a66176b
--- /dev/null
+++ b/community/freemat/input-fix.patch
@@ -0,0 +1,12 @@
+diff -wbBur FreeMat-4.0.1-Source/libs/libCore/Loader.cpp FreeMat-4.0.1-Source.my/libs/libCore/Loader.cpp
+--- FreeMat-4.0.1-Source/libs/libCore/Loader.cpp 2009-10-09 06:23:29.000000000 +0000
++++ FreeMat-4.0.1-Source.my/libs/libCore/Loader.cpp 2010-12-27 12:04:20.000000000 +0000
+@@ -388,7 +388,7 @@
+ context->addSpecialFunction("warning",WarningFunction,1,0,"msg",NULL);
+ context->addFunction("error",ErrorFunction,1,0,"string",NULL);
+ context->addSpecialFunction("eval",EvalFunction,2,-1,"try_clause","catch_clause",NULL);
+- context->addSpecialFunction("evalin",EvalInFunction,2,3,"workspace","expression",NULL);
++ context->addSpecialFunction("evalin",EvalInFunction,3,3,"workspace","expression","catch_clause",NULL);
+ context->addSpecialFunction("assignin",AssignInFunction,3,0,"workspace","variablename","value",NULL);
+ context->addSpecialFunction("feval",FevalFunction,-1,-1,NULL);
+ context->addSpecialFunction("exist",ExistFunction,2,1,"item","kind",NULL);
diff --git a/community/freeradius-client/PKGBUILD b/community/freeradius-client/PKGBUILD
new file mode 100644
index 000000000..fb5feaa16
--- /dev/null
+++ b/community/freeradius-client/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 18123 2010-05-31 11:15:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kalidarn
+
+pkgname=freeradius-client
+pkgver=1.1.6
+pkgrel=3
+pkgdesc="FreeRADIUS Client Software"
+arch=('i686' 'x86_64')
+url="http://wiki.freeradius.org/Radiusclient"
+license=('BSD')
+depends=('sh')
+options=(!libtool)
+source=(ftp://ftp.freeradius.org/pub/radius/$pkgname-$pkgver.tar.bz2)
+md5sums=('2e46564e450ae13aedb70dc133b158ac')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ install -D -m0644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/license || return 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ mv $pkgdir/etc/radiusclient $startdir/pkg/etc/radiusclient.default
+}
diff --git a/community/freeradius/PKGBUILD b/community/freeradius/PKGBUILD
new file mode 100644
index 000000000..ed1322404
--- /dev/null
+++ b/community/freeradius/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 44168 2011-04-04 11:24:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jason R Begley (jayray@digitalgoat.com>
+
+pkgname=freeradius
+pkgver=2.1.10
+pkgrel=5
+pkgdesc="The premier open source RADIUS server"
+arch=('i686' 'x86_64')
+url="http://www.freeradius.org/"
+license=("GPL")
+depends=('openssl' 'heimdal' '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)
+md5sums=('8ea2bd39460a06212decf2c14fdf3fb8'
+ 'f1a6530b1b69d2fa793aa45b2de379bb')
+
+build() {
+ cd $srcdir/freeradius-server-$pkgver
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ # Fix compilation with heimdal >= 1.3.1
+ # Don't mess around with KRB5_DEPRECATED which is used internally :o
+ sed -i 's/ -DKRB5_DEPRECATED//' src/modules/rlm_krb5/Makefile.in
+ ./configure --with-system-libtool --with-system-libltdl \
+ --prefix=/usr --enable-heimdal-krb5 \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib/freeradius
+ make
+ 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/freeradius/freeradius.install b/community/freeradius/freeradius.install
new file mode 100644
index 000000000..e50aa403d
--- /dev/null
+++ b/community/freeradius/freeradius.install
@@ -0,0 +1,22 @@
+post_install() {
+ groupadd radiusd
+ useradd -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/freeradius/radiusd b/community/freeradius/radiusd
new file mode 100755
index 000000000..bf872b6f2
--- /dev/null
+++ b/community/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/freerdp/PKGBUILD b/community/freerdp/PKGBUILD
new file mode 100644
index 000000000..9d4e3ed24
--- /dev/null
+++ b/community/freerdp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 32552 2010-11-14 16:59:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Stijn Segers <francesco dot borromini at gmail dot com>
+
+pkgname=freerdp
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="Free RDP client"
+arch=('i686' 'x86_64')
+url="http://freerdp.sourceforge.net"
+license=('GPL')
+depends=('openssl' 'libxcursor' 'libcups' 'alsa-lib')
+conflicts=('freerdp-git')
+changelog=${pkgname}.changelog
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/freerdp/${pkgver%.*}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('cde590336292c977dfc1b4b7badf24d2')
+
+build() {
+ cd `find ${srcdir}/ -type d -name freerdp-\*`
+ [ -x configure ] || sh ./autogen.sh
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/freerdp/freerdp.changelog b/community/freerdp/freerdp.changelog
new file mode 100644
index 000000000..d47f165c3
--- /dev/null
+++ b/community/freerdp/freerdp.changelog
@@ -0,0 +1,2 @@
+0.7.1-1 to 0.7.1-2
+* Added x86_64 to supported architectures (tested by figue).
diff --git a/community/freetalk/ChangeLog b/community/freetalk/ChangeLog
new file mode 100644
index 000000000..d22a5592c
--- /dev/null
+++ b/community/freetalk/ChangeLog
@@ -0,0 +1,3 @@
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/freetalk/PKGBUILD b/community/freetalk/PKGBUILD
new file mode 100644
index 000000000..ce4fb138d
--- /dev/null
+++ b/community/freetalk/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 13426 2010-03-23 12:00:40Z allan $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=freetalk
+pkgver=3.2
+pkgrel=4
+pkgdesc="A console based Jabber client"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/freetalk"
+license=('GPL')
+depends=('loudmouth' 'guile')
+install=freetalk.install
+source=(http://savannah.gnu.org/download/freetalk/freetalk-$pkgver.tar.gz)
+md5sums=('ab09bd07dde158551f151d281b14642c')
+
+build() {
+ cd $startdir/src/freetalk-$pkgver
+
+ ./configure --prefix=/usr
+
+ patch -p0 src/callbacks.cc <<EOF
+156c156,159
+< *strchr (from, '/') = '\0';
+---
+> {
+> char *_tmp = (char*)strchr (from, '/');
+> *_tmp = '\0';
+> }
+EOF
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+ rm $pkgdir/usr/share/info/dir
+}
diff --git a/community/freetalk/freetalk.install b/community/freetalk/freetalk.install
new file mode 100644
index 000000000..480dbf2be
--- /dev/null
+++ b/community/freetalk/freetalk.install
@@ -0,0 +1,19 @@
+info_dir=/usr/share/info
+info_files=(freetalk)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.info ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.info ${info_dir}/dir 2> /dev/null
+ done
+}
+
diff --git a/community/freevo/PKGBUILD b/community/freevo/PKGBUILD
new file mode 100644
index 000000000..6b3432d67
--- /dev/null
+++ b/community/freevo/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 27382 2010-09-22 14:12:22Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=freevo
+pkgver=1.9.0
+pkgrel=5
+pkgdesc="Freevo is an open-source home theatre PC platform based on Linux and a number of open-source audio/video tools."
+url="http://freevo.sourceforge.net/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('lame' 'flac' 'faad2' 'cdparanoia' 'vorbis-tools' \
+ 'fbset' 'smpeg' 'pil' 'python-pysqlite-legacy' \
+ 'pyxml' 'lsdvd' 'twisted' 'python-numpy' 'python-pygame'\
+ 'kaa-metadata' 'kaa-imlib2' 'beautiful-soup' 'python-html5lib')
+optdepends=('mplayer: most features' 'xine-lib: can be used instead of mplayer' 'tvtime: watching tv' 'xmltv: parsing online tv guides')
+install=freevo.install
+options=('docs')
+source=(http://downloads.sourceforge.net/freevo/$pkgname-$pkgver.tar.gz \
+ freevo.desktop
+ imdb-html5lib.patch)
+md5sums=('aeb05e52f996258386af2951688bf6e3'
+ '9c5fcea7149bf52978730229831d1a40'
+ 'b11f82049f112f9964a29d37a461fee5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # patch from http://sourceforge.net/tracker/index.php?func=detail&aid=2924872&group_id=46652&atid=446895
+ patch -p0 < $srcdir/imdb-html5lib.patch
+ python2 setup.py install --prefix=$pkgdir/usr
+
+ install -Dm644 local_conf.py.example $pkgdir/usr/share/doc/freevo/local_conf.py.example
+
+ # install .desktop file and icon
+ install -Dm644 $srcdir/$pkgname-$pkgver/share/icons/misc/freevo_app.png \
+ $pkgdir/usr/share/pixmaps/freevo.png
+ install -Dm644 $srcdir/freevo.desktop \
+ $pkgdir/usr/share/applications/freevo.desktop
+
+ # fix executable for python 2.7
+ sed -i "s|search = ('python', 'python2')|search = ('python2', 'python2.7')|" $pkgdir/usr/bin/freevo
+
+ }
+
diff --git a/community/freevo/freevo.desktop b/community/freevo/freevo.desktop
new file mode 100644
index 000000000..1b57043be
--- /dev/null
+++ b/community/freevo/freevo.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Name=Freevo
+GenericName=Freevo
+Comment=Home theatre
+Exec=freevo
+Terminal=false
+Type=Application
+Icon=/usr/share/pixmaps/freevo.png
+Categories=AudioVideo;
+
diff --git a/community/freevo/freevo.install b/community/freevo/freevo.install
new file mode 100644
index 000000000..06734569d
--- /dev/null
+++ b/community/freevo/freevo.install
@@ -0,0 +1,25 @@
+post_install() {
+ if [ ! -d /etc/freevo ]; then
+ mkdir /etc/freevo
+ fi
+
+ if [ ! -f /etc/freevo/local_conf.py ]; then
+ cp /usr/share/doc/freevo/local_conf.py.example /etc/freevo/local_conf.py
+ fi
+
+cat << _EOF
+
+==> freevo installation notes:
+---------------------------------------
+ Run 'freevo setup --help' and follow the instructions. Then edit
+ /etc/freevo/local_conf.py to suit your needs. This file can be
+ installed on a per-user basis in ~/.freevo and will take precedence
+ over the one in /etc/freevo/.
+
+_EOF
+
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/community/freevo/imdb-html5lib.patch b/community/freevo/imdb-html5lib.patch
new file mode 100644
index 000000000..6f454246e
--- /dev/null
+++ b/community/freevo/imdb-html5lib.patch
@@ -0,0 +1,301 @@
+Index: src/helpers/imdb.py
+===================================================================
+--- src/helpers/imdb.py (revision 11608)
++++ src/helpers/imdb.py (working copy)
+@@ -53,19 +53,19 @@
+ parser = OptionParser(version='%prog 1.0', conflict_handler='resolve', usage="""
+ Search IMDB for a movie or a TV show
+
+-freevo imdb [options] <search> [<output> <video file> [<video file>]]
++freevo imdb [options] | [<result> <fxd file> <video file> [<video file>]]
+
+-Generate <output>.fxd for the movie. Files is a list of files that belongs to
+-this movie. Use [dvd|vcd] to add the whole disc or use [dvd|vcd][title] to add
+-a special DVD or VCD title to the list of files""")
++Generate a fxd for the movie. Files is a list of files that belongs to this
++movie. Use [dvd|vcd] to add the whole disc or use [dvd|vcd][title] to add a
++special DVD or VCD title to the list of files""")
+ parser.add_option('-v', '--verbose', action='count', default=0,
+ help='set the level of verbosity [default:%default]')
+ parser.add_option('-s', '--search', action='store_true', dest='search', default=False,
+ help='search imdb for string [default:%default]')
+ parser.add_option('-g', '--guess', action='store_true', dest='guess', default=False,
+ help='search imdb for possible filename match [default:%default]')
+- parser.add_option('--tv', action='store_true', dest='tv', default=False,
+- help='specify the search is a tv programme [default:%default]')
++ parser.add_option('--tv', action='store', dest='tv', default=None,
++ help='specify the id of a tv programme for a eipsode search [default:%default]')
+ parser.add_option('--season', dest='season', default=None,
+ help='specify the season in the search [default:%default]')
+ parser.add_option('--episode', dest='episode', default=None,
+@@ -116,7 +116,9 @@
+ sys.exit(u'--search requires <search pattern>')
+ elif opts.guess and len(args) < 1:
+ sys.exit(u'--guess requires <guess pattern>')
+- tv_marker = (opts.tv or opts.season or opts.episode) and '"' or ''
++ #elif opts.tv and len(args) < 1:
++ # sys.exit(u'--tv requires <imdb id>')
++ tv_marker = (opts.season or opts.episode) and '"' or ''
+
+ if opts.rom_drive is not None:
+ driveset = True
+@@ -176,6 +178,23 @@
+ print '%s' % title.encode(opts.encoding)
+ sys.exit(0)
+
++ if opts.tv:
++ print "Searching IMDB for '%s' season:%s episode:%s..." % (opts.tv, opts.season, opts.episode)
++ results = fxd.getIMDBid(opts.tv, opts.season, opts.episode)
++ if len(results) == 0:
++ print 'No results'
++ #for result in results:
++ # if result[3]:
++ # title = 'http://www.imdb.com/title/tt%s/ %s %s (%s) %s' % (result[:1] + result[:4])
++ # elif result[2]:
++ # title = 'http://www.imdb.com/title/tt%s/ %s %s (%s)' % (result[:1] + result[:3])
++ # else:
++ # title = 'http://www.imdb.com/title/tt%s/ %s %s' % (result[:1] + result[:2])
++ # title = results
++ title = 'http://www.imdb.com/title/tt%s/ %s' % (results, results)
++ print '%s' % title.encode(opts.encoding)
++ sys.exit(0)
++
+ # normal usage
+ if len(args) < 3:
+ sys.exit(u'requires <imdb id> <fxd filename> <video file>|<cd id>')
+Index: src/util/fxdimdb.py
+===================================================================
+--- src/util/fxdimdb.py (revision 11608)
++++ src/util/fxdimdb.py (working copy)
+@@ -48,8 +48,15 @@
+ import codecs
+ import os
+ import traceback
+-from BeautifulSoup import BeautifulSoup, NavigableString
+-import HTMLParser
++from pprint import pprint, pformat
++try:
++ from html5lib import HTMLParser, treebuilders
++ from html5lib.treebuilders.soup import NavigableString
++ using_html5lib = True
++except ImportError:
++ import HTMLParser
++ from BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, NavigableString
++ using_html5lib = False
+
+ import config
+ import util
+@@ -232,6 +239,7 @@
+ response.close()
+
+ _debug_('id_list has %s items' % (len(self.id_list)))
++ #print 'id_list=%s' % (pformat(self.id_list))
+ if len(self.id_list) > 20:
+ # too many results, check if there are stupid results in the list
+ words = []
+@@ -311,7 +319,11 @@
+ dvd = 0
+
+ try:
+- soup = BeautifulSoup(results.read(), convertEntities='xml')
++ if using_html5lib:
++ parser = HTMLParser(tree=treebuilders.getTreeBuilder('beautifulsoup'))
++ soup = parser.parse(results.read())
++ else:
++ soup = BeautifulSoup(results.read(), convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
+ except UnicodeDecodeError:
+ print "Unicode error: check that /usr/lib/python2.x/site.py has the correct default encoding"
+ traceback.print_exc()
+@@ -336,68 +348,61 @@
+ self.info['year'] = y[1:-1]
+ except (AttributeError, TypeError, ValueError):
+ self.info['title'] = self.title
+- self.info['year'] = title.find('a').string.strip()
++ try:
++ self.info['year'] = title.find('a').contents[0].strip()
++ except AttributeError:
++ self.info['year'] = ''
+
+ # Find the <div> with class info, each <h5> under this provides info
++ wanted_keys = ('release_date', 'genre', 'tagline', 'plot', 'plot_keywords',
++ 'also_known_as', 'mpaa', 'runtime', 'country', 'language',
++ 'color', 'aspect_ratio', 'sound_mix', 'certification',
++ )
++
+ for info in main.findAll('div', {'class' : 'info'}):
+ infoh5 = info.find('h5')
+ if not infoh5:
+ continue
+ try:
+- infostr = infoh5.next
+- key = infostr.string.strip(':').lower().replace(' ', '_')
+- nextsibling = nextsibling = infoh5.nextSibling.strip()
+- sections = info.findAll('a', { 'href' : re.compile('/Sections') })
+- lists = info.findAll('a', { 'href' : re.compile('/List') })
+- if len(nextsibling) > 0:
+- self.info[key] = nextsibling
++ infostr = infoh5.find(text=True)
++ key = infostr.strip().strip(':').lower().replace(' ', '_')
++ if key not in wanted_keys:
++ continue
++ content = info.find('div', {'class' : 'info-content'})
++ infocontent = content.find(text=True)
++ if infocontent:
++ infocontent = infocontent.strip()
++ sections = info.findAll('a', { 'href' : re.compile('^/Sections') })
++ lists = info.findAll('a', { 'href' : re.compile('^/List') })
++ keywords = info.findAll('a', { 'href' : re.compile('^/keyword') })
++ #print 'key=%s content=%r keywords=%r sections=%r lists=%r' % (key, infocontent, keywords, sections, lists)
++ if len(infocontent) > 0:
++ self.info[key] = infocontent
+ elif len(sections) > 0:
+ items = []
+ for item in sections:
+- items.append(item.string)
++ items.append(item.contents[0].strip())
+ self.info[key] = ' / '.join(items)
+ elif len(lists) > 0:
+ items = []
+ for item in lists:
+- items.append(item.string)
++ items.append(item.contents[0].strip())
+ self.info[key] = ' / '.join(items)
++ elif len(keywords) > 0:
++ items = []
++ for item in keywords:
++ items.append(item.contents[0].strip())
++ self.info[key] = ' / '.join(items)
+ except:
+ pass
+
+- # Find Plot Outline/Summary:
+- # Normally the tag is named "Plot Outline:" - however sometimes
+- # the tag is "Plot Summary:" or just "Plot:". Search for all strings.
+- imdb_result = soup.find(text='Plot Outline:')
+- if not imdb_result:
+- imdb_result = soup.find(text='Plot Summary:')
+- if not imdb_result:
+- imdb_result = soup.find(text='Plot:')
+- if imdb_result:
+- self.info['plot'] = imdb_result.next.strip()
+- else:
+- self.info['plot'] = u''
+-
+- # Find tagline - sometimes the tagline is missing.
+- # Use an empty string if no tagline could be found.
+- imdb_result = soup.find(text='Tagline:')
+- if imdb_result:
+- self.info['tagline'] = imdb_result.next.strip()
+- else:
+- self.info['tagline'] = u''
+-
+ rating = soup.find(text='User Rating:').findNext(text=re.compile('/10'))
+- if rating:
++ try:
+ votes = rating.findNext('a')
+- self.info['rating'] = rating.strip() + ' (' + votes.string.strip() + ')'
+- else:
++ self.info['rating'] = rating.strip() + ' (' + votes.contents[0].strip() + ')'
++ except AttributeError:
+ self.info['rating'] = ''
+
+- runtime = soup.find(text='Runtime:')
+- if runtime and runtime.next:
+- self.info['runtime'] = runtime.next.strip()
+- else:
+- self.info['runtime'] = ''
+-
+ # Replace special characters in the items
+ for (k,v) in self.info.items():
+ self.info[k] = self.convert_entities(v)
+@@ -794,10 +799,14 @@
+ _debug_('parsesearchdata(results=%r, url=%r, id=%r)' % (results, url, id))
+
+ self.id_list = []
+- m = re.compile('/title/tt([0-9]*)/')
+- y = re.compile('\(([^)]+)\)')
++ m = re.compile('/title/tt(\d+)/')
++ y = re.compile('\((\d+)\) *(.*)')
+ try:
+- soup = BeautifulSoup(results.read(), convertEntities='xml')
++ if using_html5lib:
++ parser = HTMLParser(tree=treebuilders.getTreeBuilder('beautifulsoup'))
++ soup = parser.parse(results.read())
++ else:
++ soup = BeautifulSoup(results.read(), convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
+ except HTMLParser.HTMLParseError, why:
+ traceback.print_exc()
+ _debug_('Cannot parse %r: %s' % (url, why), DWARNING)
+@@ -806,28 +815,37 @@
+ traceback.print_exc()
+ _debug_('Cannot parse %r: %s' % (url, why), DWARNING)
+ return self.id_list
+- items = soup.findAll('a', href=re.compile('/title/tt'))
++ items = soup.findAll('a', href=re.compile('^/title/tt'))
+ ids = set([])
+ for item in items:
+- idm = m.search(item['href'])
++ idm = item.attrMap['href']
+ if not idm:
+ continue
+- if isinstance(item.next.next, NavigableString):
+- yrm = y.findall(item.next.next)
+-
+- id = idm.group(1)
+- name = item.string
+- # skip empty names
+- if not name:
++ m_match = m.match(idm)
++ if not m_match:
++ # skip invalid titles
+ continue
+- # skip duplicate ids
++ id = m_match.group(1)
+ if id in ids:
++ # skip duplicate ids
+ continue
++ name = item.contents[0]
++ if not isinstance(name, NavigableString):
++ # skip empty names
++ continue
++ if isinstance(item.next.next, NavigableString):
++ yrm = item.next.next.strip()
+ ids.add(id)
+- year = len(yrm) > 0 and yrm[0] or '0000'
+- type = len(yrm) > 1 and yrm[1] or ''
++ y_match = y.match(yrm)
++ if y_match:
++ year = y_match.group(1)
++ type = y_match.group(2)
++ else:
++ year = '0000'
++ type = ''
+ #print 'url', item['href']
+ #print item.parent.findChildren(text=re.compile('[^ ]'))
++ #print 'id=%s name=%s year=%s type=%s' % (id, name, year, type)
+ self.id_list += [ ( id, name, year, type ) ]
+
+ for item in self.id_list:
+@@ -840,7 +858,11 @@
+ Returns a new id for getIMDBid with TV series episode data
+ """
+ try:
+- soup = BeautifulSoup(results.read(), convertEntities='xml')
++ if using_html5lib:
++ parser = HTMLParser(tree=treebuilders.getTreeBuilder('beautifulsoup'))
++ soup = parser.parse(results.read())
++ else:
++ soup = BeautifulSoup(results.read(), convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
+ except UnicodeDecodeError:
+ print "Unicode error; check that /usr/lib/python2.x/site.py has the correct default encoding"
+ pass
+@@ -968,9 +990,6 @@
+ self.image = vfs.basename(self.image)
+
+ _debug_('Downloaded cover image from %s' % (self.image_url))
+- print "Freevo knows nothing about the copyright of this image, please"
+- print "go to %s to check for more information about private." % self.image_url
+- print "use of this image"
+
+
+ def str2XML(self, line):
diff --git a/community/freewrl/PKGBUILD b/community/freewrl/PKGBUILD
new file mode 100644
index 000000000..dbf9e06ec
--- /dev/null
+++ b/community/freewrl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 41793 2011-03-08 22:30:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=freewrl
+pkgver=1.22.10
+pkgrel=3
+pkgdesc="VRML viewer"
+arch=('i686' 'x86_64')
+url="http://freewrl.sourceforge.net/"
+license=('GPL')
+depends=('java-runtime' 'libxaw' 'glew' 'freeglut' 'xulrunner' 'curl' 'freetype2'
+ 'imlib2' 'sox' 'unzip' 'imagemagick' 'libxml2' 'ttf-bitstream-vera' 'lesstif')
+makedepends=('java-environment' 'xulrunner')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2
+ build-fix.patch)
+md5sums=('07fd8f193d14799ffb95a59a4887fc88'
+ '1586b3ea98dd8c5c9f5ebfc3dd176232')
+
+build() {
+ . /etc/profile.d/openjdk6.sh
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ ./configure \
+ --prefix=/usr --with-fontsdir=/usr/share/fonts/TTF --enable-libeai \
+ --enable-libcurl --with-expat=/usr --with-target=motif
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/freewrl/build-fix.patch b/community/freewrl/build-fix.patch
new file mode 100644
index 000000000..a5e31ff23
--- /dev/null
+++ b/community/freewrl/build-fix.patch
@@ -0,0 +1,24 @@
+diff -wbBur freewrl-1.22.9.org/src/lib/non_web3d_formats/ColladaParser.c freewrl-1.22.9/src/lib/non_web3d_formats/ColladaParser.c
+--- freewrl-1.22.9.org/src/lib/non_web3d_formats/ColladaParser.c 2010-08-19 02:20:36.000000000 +0000
++++ freewrl-1.22.9/src/lib/non_web3d_formats/ColladaParser.c 2010-10-18 13:31:25.000000000 +0000
+@@ -54,7 +54,7 @@
+ #include "ColladaParser.h"
+
+ #if HAVE_EXPAT_H
+-# include <expat.h>
++# include </usr/include/expat.h>
+ #endif
+
+ #define PROTOINSTANCE_MAX_LEVELS 10
+diff -wbBur freewrl-1.22.9.org/src/lib/x3d_parser/X3DParser.c freewrl-1.22.9/src/lib/x3d_parser/X3DParser.c
+--- freewrl-1.22.9.org/src/lib/x3d_parser/X3DParser.c 2010-08-19 02:20:36.000000000 +0000
++++ freewrl-1.22.9/src/lib/x3d_parser/X3DParser.c 2010-10-18 13:30:01.000000000 +0000
+@@ -54,7 +54,7 @@
+ #include "X3DProtoScript.h"
+
+ #if HAVE_EXPAT_H
+-# include <expat.h>
++# include </usr/include/expat.h>
+ #endif
+ //#define X3DPARSERVERBOSE 1
+
diff --git a/community/frei0r-plugins/PKGBUILD b/community/frei0r-plugins/PKGBUILD
new file mode 100644
index 000000000..c4497ef0a
--- /dev/null
+++ b/community/frei0r-plugins/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 42041 2011-03-12 11:30:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=frei0r-plugins
+pkgver=1.3
+pkgrel=1
+pkgdesc="frei0r is a minimalistic plugin API for video sources and filters."
+arch=(i686 x86_64)
+url="http://www.piksel.org/frei0r"
+license=('GPL')
+depends=('gcc-libs' 'gavl>=1.0.0' 'opencv')
+makedepends=('graphviz')
+source=(http://ftp.dyne.org/frei0r/releases/frei0r-plugins-$pkgver.tar.gz)
+md5sums=('a2eb63feeeb0c5cf439ccca276cbf70c')
+
+build() {
+ cd "$srcdir/frei0r-$pkgver"
+ ./configure --prefix=/usr --docdir=/usr/share/doc
+ make
+ make DESTDIR="$pkgdir" install \
+ htmldocsdir=$pkgdir/usr/share/doc/frei0r-plugins-$pkgver \
+ docsdir=$pkgdir/usr/share/doc/frei0r-plugins-$pkgver
+
+ mkdir -p $pkgdir/usr/share/doc/frei0r-plugins-$pkgver/
+ mv $pkgdir/$pkgdir/usr/share/doc/frei0r-plugins-$pkgver/* $pkgdir/usr/share/doc/frei0r-plugins-$pkgver/
+ rm -rf $pkgdir/home
+}
diff --git a/community/frogatto/PKGBUILD b/community/frogatto/PKGBUILD
new file mode 100644
index 000000000..93ec7f824
--- /dev/null
+++ b/community/frogatto/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 40999 2011-03-03 04:25:46Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Tom Wambold <tom5760@gmail.com>
+
+pkgname='frogatto'
+arch=('i686' 'x86_64')
+pkgver=1.0.3
+pkgrel=3
+pkgdesc="An old-school 2d platformer game, starring a certain quixotic frog"
+url="http://www.frogatto.com"
+license=('GPL')
+depends=('libgl' 'mesa' 'glew' 'sdl' 'sdl_image' 'sdl_ttf' 'sdl_mixer' 'libpng' 'boost-libs' 'frogatto-data')
+makedepends=('boost')
+source=(http://www.frogatto.com/files/$pkgname-$pkgver.tar.bz2
+ frogatto
+ frogatto.desktop)
+md5sums=('1e9ffe729c78c88d1e29147694299531'
+ '9ed2c9ea59e95fe3c0b3ad49e58f8890'
+ 'e31563b04748a39292a59aaad633ff58')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -i 's/ccache //g' Makefile
+ sed -i 's/-lprofiler//g' Makefile
+ sed -i 's/-lboost_regex-mt/-lboost_regex/g' Makefile
+ sed -i 's/-lboost_system-mt/-lboost_system/g' Makefile
+ sed -i 's/-lboost_thread-mt/-lboost_thread/g' Makefile
+ sed -i 's/-lboost_iostreams-mt/-lboost_iostreams/g' Makefile
+ make game server
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -D -m755 game $pkgdir/opt/frogatto/game
+ install -D -m755 server $pkgdir/opt/frogatto/server
+
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/frogatto/LICENSE
+
+ cd $srcdir
+ install -DT -m755 frogatto $pkgdir/usr/bin/frogatto
+ install -D -m644 frogatto.desktop $pkgdir/usr/share/applications/frogatto.desktop
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/frogatto/frogatto b/community/frogatto/frogatto
new file mode 100644
index 000000000..0d741e0de
--- /dev/null
+++ b/community/frogatto/frogatto
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/frogatto
+exec /opt/frogatto/game $*
diff --git a/community/frogatto/frogatto.desktop b/community/frogatto/frogatto.desktop
new file mode 100644
index 000000000..b0795467a
--- /dev/null
+++ b/community/frogatto/frogatto.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Frogatto
+GenericName=Old-school 2D platformer
+Comment=Old-school 2D platformer
+Exec=/usr/bin/frogatto
+Terminal=false
+MultipleArgs=false
+Type=Application
+Icon=/opt/frogatto/images/window-icon.png
+Categories=Game;ArcadeGame
diff --git a/community/fswebcam/PKGBUILD b/community/fswebcam/PKGBUILD
new file mode 100644
index 000000000..797cca000
--- /dev/null
+++ b/community/fswebcam/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 37156 2011-01-11 17:12:18Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Philipp Robbel <robbel@gmail.com>
+
+pkgname=fswebcam
+pkgver=20101118
+pkgrel=1
+pkgdesc="Tiny and flexible webcam app."
+arch=('i686' 'x86_64')
+url="http://www.firestorm.cx/fswebcam"
+license=('GPL')
+depends=('gd')
+backup=("etc/$pkgname.conf")
+source=("$url/files/$pkgname-$pkgver.tar.gz")
+md5sums=('b4be05ed7c728c68424e947ed452b29f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # Install configuration file
+ # Commented to avoid problems with many devices, thank you SpepS
+ sed "s_^_#_g" -i example.conf
+ install -Dm644 example.conf "$pkgdir/etc/fswebcam.conf"
+}
+
+# vim:ts=2:sw=2:expandtab
diff --git a/community/fuseiso/PKGBUILD b/community/fuseiso/PKGBUILD
new file mode 100644
index 000000000..53071f272
--- /dev/null
+++ b/community/fuseiso/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 22459 2010-07-21 20:26:36Z lcarlier $
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=fuseiso
+pkgver=20070708
+pkgrel=2
+pkgdesc="FUSE module to mount ISO filesystem images"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/fuseiso/"
+license=('GPL')
+depends=('fuse' 'glib2' 'zlib')
+makedepends=('pkgconfig')
+source=(http://ubiz.ru/dm/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4bb50412b6d01f337565e28afddca3a5')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/fxdesktop/PKGBUILD b/community/fxdesktop/PKGBUILD
new file mode 100644
index 000000000..a4414397b
--- /dev/null
+++ b/community/fxdesktop/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 8608 2010-01-21 02:59:29Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sander Jansen <sander@knology.net>
+
+pkgname=fxdesktop
+pkgver=0.1.12
+pkgrel=3
+pkgdesc="Lightweight Desktop Environment"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/fxdesktop/"
+license=('GPL')
+depends=('fox>=1.6.0' )
+source=(http://archlinux-stuff.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('9489e7369b5e052e0b6836a3b0670832')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ # Override default flags
+ export CFLAGS="-Wall -O2 -pipe"
+ export CXXFLAGS="-Wall -O2 -pipe"
+ [ "$CARCH" = "x86_64" ] && (sed -i -e 's|lib64|lib|g' build/config.linux_x86_64 || return 1)
+
+ # Compile
+ ./gb --prefix=/usr || return 1
+ ./gb --package-root=$startdir/pkg/usr install || return 1
+}
diff --git a/community/fxprocessview/PKGBUILD b/community/fxprocessview/PKGBUILD
new file mode 100644
index 000000000..4ef1d3f0f
--- /dev/null
+++ b/community/fxprocessview/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 8603 2010-01-21 02:55:46Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sander Jansen <sander@knology.net>
+
+pkgname=fxprocessview
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="Process Viewer"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('fox>=1.4.0')
+url="http://code.google.com/p/fxdesktop/"
+source=(http://archlinux-stuff.googlecode.com/files/$pkgname-$pkgver.tar.gz \
+ build-fix.patch)
+md5sums=('5d3cc8d7aec770997c281a743ddfda5a'
+ '2d2c3d54dcd2404149955f12cccb21a5')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ # Override default flags
+ export CFLAGS="-Wall -O2 -pipe"
+ export CXXFLAGS="-Wall -O2 -pipe"
+
+ # Compile
+ patch -Np1 <../build-fix.patch || return 1
+ ./gb
+
+ # gb does not return valid error code
+ [ -f src/fxprocessview ] || return 1
+
+ # make sure destination exists
+ mkdir -p $startdir/pkg/usr/bin
+
+ # Install
+ ./gb install --package-root=$startdir/pkg/usr
+}
diff --git a/community/fxprocessview/build-fix.patch b/community/fxprocessview/build-fix.patch
new file mode 100644
index 000000000..7c883454c
--- /dev/null
+++ b/community/fxprocessview/build-fix.patch
@@ -0,0 +1,41 @@
+diff -wbBur fxprocessview-0.5.0/src/processlist.cpp fxprocessview-0.5.0.my/src/processlist.cpp
+--- fxprocessview-0.5.0/src/processlist.cpp 2005-07-15 06:39:17.000000000 +0400
++++ fxprocessview-0.5.0.my/src/processlist.cpp 2007-03-07 19:21:34.000000000 +0300
+@@ -696,7 +696,7 @@
+
+ long FXProcessList::onCmdUserMode(FXObject* sender,FXSelector,void* ){
+ if (userfilter.empty()){
+- userfilter=FXFile::getCurrentUserName();
++ userfilter=FXSystem::currentUserName();
+ }
+ else {
+ userfilter="";
+@@ -942,12 +942,17 @@
+
+
+
+- FXint num_processes = FXFile::listFiles(dirlist,"/proc","[0123456789]*",LIST_MATCH_ALL|LIST_NO_FILES|LIST_NO_PARENT);
++ FXint num_processes = FXDir::listFiles(dirlist,"/proc","[0123456789]*",FXDir::MatchAll | FXDir::NoFiles | FXDir::NoParent);
+ task_total=num_processes;
+ for (FXint i=0;i<num_processes;i++){
+
+ /// Check the Owner
+- owner = FXFile::owner("/proc/" + dirlist[i]);
++ FXStat stat;
++ FXStat::statFile("/proc/" + dirlist[i], stat);
++ owner = FXSystem::userName(stat.user());
++
++// owner = FXSystem::userName(FXStat::user("/proc/" + dirlist[i]));
++
+ if (!userfilter.empty() && (owner!=userfilter)) continue;
+
+ /// Read in Process Stat
+@@ -1027,7 +1032,7 @@
+ }
+
+ filename = "/proc/" + dirlist[i] + "/cmdline";
+- if (FXFile::exists(filename)) {
++ if (FXStat::exists(filename)) {
+ fp = fopen(filename.text(),"r");
+ if (fp) {
+ if (fgets(buffer,80,fp)!=NULL){
diff --git a/community/g2sc/PKGBUILD b/community/g2sc/PKGBUILD
new file mode 100644
index 000000000..a026abe98
--- /dev/null
+++ b/community/g2sc/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=g2sc
+pkgver=0.2
+pkgrel=3
+pkgdesc="Samba gtk2 client"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://sourceforge.net/projects/g2sc"
+depends=('smbclient' 'gtk2')
+source=(http://downloads.sourceforge.net/g2sc/$pkgver/g2cs${pkgver}alpha-source.tar.bz2)
+md5sums=('c0994584f2c950241bf7e2782cb4d2fd')
+
+build()
+{
+ cd $startdir/src
+ make || return 1
+ mkdir -p $startdir/pkg/usr/{share/{g2sc,applications},bin}
+ install -m644 g2sc.conf $startdir/pkg/usr/share/g2sc || return 1
+ install -m644 g2sc.png $startdir/pkg/usr/share/g2sc || return 1
+ install -m755 g2sc $startdir/pkg/usr/bin || return 1
+ install -m644 g2sc.desktop $startdir/pkg/usr/share/applications || return 1
+}
diff --git a/community/gadmin-samba/PKGBUILD b/community/gadmin-samba/PKGBUILD
new file mode 100644
index 000000000..316fb2624
--- /dev/null
+++ b/community/gadmin-samba/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer: Florian Pritz <flo@xinu.at>
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Marcin Kaczorek <kaczus@karek.pl>
+
+pkgname=gadmin-samba
+pkgver=0.3.2
+pkgrel=1
+pkgdesc="An easy to use GTK+ frontend for the SAMBA file and print server"
+url="http://gadmintools.flippedweb.com/index.php?option=com_content&task=view&id=16&Itemid=30"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk2' 'samba')
+replaces=('gsambad')
+install=gadmin-samba.install
+source=("http://mange.dynalias.org/linux/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+options=(!emptydirs)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --sbindir=/usr/sbin
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 desktop/${pkgname}.desktop "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+}
+md5sums=('14e2ca42b4826c3d87492965d310e631')
diff --git a/community/gadmin-samba/gadmin-samba.install b/community/gadmin-samba/gadmin-samba.install
new file mode 100644
index 000000000..e8a5f5151
--- /dev/null
+++ b/community/gadmin-samba/gadmin-samba.install
@@ -0,0 +1,7 @@
+post_install() {
+ echo "See /usr/share/gadmin-samba/example.bat for an example of logon script"
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/gadmin-samba/makefile.patch b/community/gadmin-samba/makefile.patch
new file mode 100644
index 000000000..54998fbb1
--- /dev/null
+++ b/community/gadmin-samba/makefile.patch
@@ -0,0 +1,18 @@
+--- Makefile.in 2008-05-25 17:44:34.000000000 +0200
++++ Makefile.in.new 2008-08-10 15:12:37.000000000 +0200
+@@ -677,11 +677,11 @@
+ cp scripts/gadmin-samba-pdf $(bindir)/; \
+ fi;
+ @echo Installing example logon script to static /home/netlogon.
+- if test ! -d /home/netlogon; then \
+- mkdir -p /home/netlogon; \
++ if test ! -d $(DESTDIR)/usr/share/gadmin-samba; then \
++ mkdir -p $(DESTDIR)/usr/share/gadmin-samba; \
+ fi;
+- if test -d /home/netlogon && test ! -f /home/netlogon/example.bat; then \
+- cp scripts/example.bat /home/netlogon/; \
++ if test -d $(DESTDIR)/usr/share/gadmin-samba && test ! -f $(DESTDIR)/usr/share/gadmin-samba/example.bat; then \
++ cp scripts/example.bat $(DESTDIR)/usr/share/gadmin-samba/; \
+ fi;
+ @echo ""
+ @echo "Start GADMIN-SAMBA by typing gadmin-samba in a terminal"
diff --git a/community/galago-daemon/PKGBUILD b/community/galago-daemon/PKGBUILD
new file mode 100644
index 000000000..da038b2c7
--- /dev/null
+++ b/community/galago-daemon/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 18129 2010-05-31 11:16:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=galago-daemon
+pkgver=0.5.1
+pkgrel=3
+pkgdesc="Galago presence daemon"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.galago-project.org"
+depends=('libgalago')
+source=(http://www.galago-project.org/files/releases/source/galago-daemon/galago-daemon-$pkgver.tar.gz)
+md5sums=('fdb81f938f86f380b127158ebb542279')
+
+build() {
+ cd $srcdir/galago-daemon-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/$pkgname --disable-tests
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gambas2/PKGBUILD b/community/gambas2/PKGBUILD
new file mode 100644
index 000000000..614f6f243
--- /dev/null
+++ b/community/gambas2/PKGBUILD
@@ -0,0 +1,946 @@
+# $Id: PKGBUILD 42245 2011-03-15 20:38:59Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Toni Foerster <stonerl@skeps.de>
+
+pkgbase="gambas2"
+pkgname=('gambas2-meta' 'gambas2-runtime' 'gambas2-devel' 'gambas2-ide' 'gambas2-examples' 'gambas2-help'
+ 'gambas2-script' 'gambas2-gb-chart' 'gambas2-gb-compress' 'gambas2-gb-corba' 'gambas2-gb-crypt'
+ 'gambas2-gb-db' 'gambas2-gb-db-firebird' 'gambas2-gb-db-form' 'gambas2-gb-db-mysql'
+ 'gambas2-gb-db-odbc' 'gambas2-gb-db-postgresql' 'gambas2-gb-db-sqlite2' 'gambas2-gb-db-sqlite3'
+ 'gambas2-gb-desktop' 'gambas2-gb-form' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi'
+ 'gambas2-gb-gtk' 'gambas2-gb-gtk-ext' 'gambas2-gb-gtk-svg' 'gambas2-gb-gui'
+ 'gambas2-gb-image' 'gambas2-gb-info' 'gambas2-gb-net' 'gambas2-gb-net-curl'
+ 'gambas2-gb-net-smtp' 'gambas2-gb-opengl' 'gambas2-gb-option' 'gambas2-gb-pcre'
+ 'gambas2-gb-pdf' 'gambas2-gb-qt' 'gambas2-gb-qt-ext' 'gambas2-gb-qt-opengl'
+ 'gambas2-gb-qt-kde' 'gambas2-gb-qt-kde-html' 'gambas2-gb-report' 'gambas2-gb-sdl'
+ 'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
+ 'gambas2-gb-web' 'gambas2-gb-xml' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
+pkgver=2.22.0
+pkgrel=4
+pkgdesc="A free development environment based on a Basic interpreter."
+arch=('i686' 'x86_64')
+url="http://gambas.sourceforge.net"
+depends=('libffi' 'bzip2' 'libfbclient' 'zlib' 'kdelibs3' 'libgl' 'gtk2' 'librsvg' 'xdg-utils'
+ 'postgresql-libs>=8.4.1' 'libmysqlclient' 'unixodbc' 'sqlite2' 'sqlite3'
+ 'curl' 'poppler' 'sdl_mixer' 'sdl_image' 'libxtst' 'pcre' 'omniorb' 'libxft'
+ 'libxcursor' 'libsm')
+makedepends=('intltool' 'mysql' 'postgresql')
+license=('GPL2')
+options=('!emptydirs' '!makeflags')
+groups=('gambas2')
+replaces=('gambas2')
+conflicts=('gambas2')
+source=(http://downloads.sourceforge.net/gambas/$pkgbase-$pkgver.tar.bz2
+ 'gambas2.desktop' 'gambas2.png' 'fix-gbi-gba-path.patch'
+ 'gambas2-script.install' 'gambas2-runtime.install')
+md5sums=('e7ea5124405788b1965115670b8cafd9'
+ 'e6c2df38b29fcb6ba9ac7ba783688211'
+ '32672c984d8487beb13aa5b6bc6868e2'
+ '9dda03a1bbfb7e7ba8b6a4ae91b6752b'
+ '870ff5b4b33cd75aa9c290539e6fdd5d'
+ 'ab5667175c4945282d2f40a35d0e9e5b')
+_gbfiles="${srcdir}/$pkgbase-$pkgver/main/gbc"
+
+_buildgbcomp() {
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp/src/$1
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ install $1.gambas ${pkgdir}/usr/lib/gambas2/
+ install .component ${pkgdir}/usr/lib/gambas2/$1.component
+ chmod a-x ${pkgdir}/usr/lib/gambas2/$1.component
+ install .info ${pkgdir}/usr/share/gambas2/info/$1.info
+ chmod a-x ${pkgdir}/usr/share/gambas2/info/$1.info
+ install .list ${pkgdir}/usr/share/gambas2/info/$1.list
+ chmod a-x ${pkgdir}/usr/share/gambas2/info/$1.list
+ if test -d control; then
+ install -d ${pkgdir}/usr/share/gambas2/control/$1
+ install control/*.png ${pkgdir}/usr/share/gambas2/control/$1
+ chmod a-x ${pkgdir}/usr/share/gambas2/control/$1/*.png
+ fi
+}
+
+build() {
+ cd "${srcdir}/$pkgbase-$pkgver"
+
+ ## workaround to allow package splitting
+ msg "Applying patches ..."
+ patch -Np1 -i "${srcdir}/fix-gbi-gba-path.patch"
+ ./reconf-all
+ ##
+
+ . /etc/profile.d/kde3.sh
+ . /etc/profile.d/qt3.sh
+
+ ./configure -C --disable-qte --prefix=/usr
+ make bindir=${pkgdir}/usr/bin
+}
+
+package_gambas2-meta() {
+ depends=('gambas2-runtime' 'gambas2-devel' 'gambas2-ide' 'gambas2-examples' 'gambas2-help'
+ 'gambas2-script' 'gambas2-gb-chart' 'gambas2-gb-compress' 'gambas2-gb-corba' 'gambas2-gb-crypt'
+ 'gambas2-gb-db' 'gambas2-gb-db-firebird' 'gambas2-gb-db-form' 'gambas2-gb-db-mysql'
+ 'gambas2-gb-db-odbc' 'gambas2-gb-db-postgresql' 'gambas2-gb-db-sqlite2' 'gambas2-gb-db-sqlite3'
+ 'gambas2-gb-desktop' 'gambas2-gb-form' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi'
+ 'gambas2-gb-gtk' 'gambas2-gb-gtk-ext' 'gambas2-gb-gtk-svg' 'gambas2-gb-gui'
+ 'gambas2-gb-image' 'gambas2-gb-info' 'gambas2-gb-net' 'gambas2-gb-net-curl'
+ 'gambas2-gb-net-smtp' 'gambas2-gb-opengl' 'gambas2-gb-option' 'gambas2-gb-pcre'
+ 'gambas2-gb-pdf' 'gambas2-gb-qt' 'gambas2-gb-qt-ext' 'gambas2-gb-qt-opengl'
+ 'gambas2-gb-qt-kde' 'gambas2-gb-qt-kde-html' 'gambas2-gb-report' 'gambas2-gb-sdl'
+ 'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
+ 'gambas2-gb-web' 'gambas2-gb-xml' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
+ pkgdesc="Gambas2 meta package"
+}
+
+package_gambas2-runtime() {
+ depends=('libffi' 'xdg-utils')
+ pkgdesc="Gambas2 runtime environment"
+ install=gambas2-runtime.install
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/debug
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/eval
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/main/lib/gb.component \
+ ${pkgdir}/usr/lib/gambas2
+ ln -s gbx2 ${pkgdir}/usr/bin/gbr2
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ rm -f ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+
+ ## needed for postinst with xdg-utils
+ install -d -m755 ${pkgdir}/usr/share/gambas2/mime
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/main/mime/* \
+ ${pkgdir}/usr/share/gambas2/mime/
+ install -d -m755 ${pkgdir}/usr/share/gambas2/icons
+ install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/main/mime/application-x-gambas.png \
+ ${pkgdir}/usr/share/gambas2/icons/application-x-gambas.png
+ install -D -m644 ${srcdir}/gambas2.desktop \
+ ${pkgdir}/usr/share/applications/gambas2.desktop
+ install -D -m644 ${srcdir}/gambas2.png \
+ ${pkgdir}/usr/share/pixmaps/gambas2.png
+}
+
+package_gambas2-devel() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 development environment"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbc
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-ide() {
+ depends=('gambas2-gb-qt-ext' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi' 'gambas2-gb-settings'
+ 'gambas2-gb-db' 'gambas2-gb-desktop' 'gambas2-devel')
+ pkgdesc="Gambas2 Integrated Development Environment"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/eval
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/debug
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ _buildgbcomp gb.form
+ _buildgbcomp gb.form.dialog
+ _buildgbcomp gb.form.mdi
+ _buildgbcomp gb.settings
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/gambas2
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/gambas2-database-manager
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/share ${pkgdir}/usr/lib
+ rm ${pkgdir}/usr/bin/gbx2
+ ##
+
+ install -m755 gambas2/gambas2.gambas ${pkgdir}/usr/bin
+ install -m755 gambas2-database-manager/gambas2-database-manager.gambas ${pkgdir}/usr/bin
+ ln -s gambas2.gambas ${pkgdir}/usr/bin/gambas2
+}
+
+package_gambas2-examples() {
+ depends=('gambas2-gb-compress' 'gambas2-gb-corba' 'gambas2-gb-crypt'
+ 'gambas2-gb-db-firebird' 'gambas2-gb-db-form' 'gambas2-gb-db-mysql'
+ 'gambas2-gb-db-odbc' 'gambas2-gb-db-postgresql' 'gambas2-gb-db-sqlite2' 'gambas2-gb-db-sqlite3'
+ 'gambas2-gb-desktop' 'gambas2-gb-form-dialog' 'gambas2-gb-form-mdi'
+ 'gambas2-gb-gtk-ext' 'gambas2-gb-gtk-svg' 'gambas2-gb-gui'
+ 'gambas2-gb-image' 'gambas2-gb-info' 'gambas2-gb-net' 'gambas2-gb-net-curl'
+ 'gambas2-gb-net-smtp' 'gambas2-gb-opengl' 'gambas2-gb-option' 'gambas2-gb-pcre'
+ 'gambas2-gb-pdf' 'gambas2-gb-qt-ext' 'gambas2-gb-qt-opengl'
+ 'gambas2-gb-qt-kde-html' 'gambas2-gb-report' 'gambas2-gb-sdl'
+ 'gambas2-gb-sdl-sound' 'gambas2-gb-settings' 'gambas2-gb-v4l' 'gambas2-gb-vb'
+ 'gambas2-gb-web' 'gambas2-gb-xml-rpc' 'gambas2-gb-xml-xslt')
+ pkgdesc="Gambas2 examples"
+# arch=('any')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ rm -r ${pkgdir}/usr/bin ${pkgdir}/usr/lib
+ rm -r ${pkgdir}/usr/share/gambas2/{help,info}
+}
+
+package_gambas2-help() {
+ depends=()
+ pkgdesc="Gambas2 help files"
+# arch=('any')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/help
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ #fix help
+ chown root:root -R ${pkgdir}/usr/share/gambas2/help/help
+}
+
+package_gambas2-script() {
+ depends=('gambas2-devel')
+ pkgdesc="Gambas2 scripter and server programs support"
+ install=gambas2-script.install
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/eval
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/src/gbs2
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbc2 -ag -r ${pkgdir}/usr
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gba2
+ install -m755 gbs2.gambas ${pkgdir}/usr/bin
+
+ ln -s gbs2.gambas ${pkgdir}/usr/bin/gbs2
+ ln -s gbs2.gambas ${pkgdir}/usr/bin/gbw2
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/share ${pkgdir}/usr/lib
+ rm ${pkgdir}/usr/bin/gbx2
+ ##
+
+ ## needed for postinst with xdg-utils
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/mime
+ install -d -m755 ${pkgdir}/usr/share/gambas2/mime
+ install -D -m644 *.xml ${pkgdir}/usr/share/gambas2/mime/
+ install -D -m644 *.png ${pkgdir}/usr/share/gambas2/mime/
+ ##
+}
+
+package_gambas2-gb-chart() {
+ depends=('gambas2-gb-form')
+ pkgdesc="Gambas2 chart component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.chart
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*,gb.gui*,gb.form*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.gui*,gb.form*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-compress() {
+ depends=('gambas2-runtime' 'bzip2' 'zlib')
+ pkgdesc="Gambas2 compression support component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/compress
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.bzlib2
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.zlib
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-corba() {
+ depends=('gambas2-runtime' 'omniorb')
+ pkgdesc="Gambas2 corba component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.corba
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-crypt() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 MD5/DES crypting component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.crypt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-firebird() {
+ depends=('gambas2-gb-db' 'libfbclient')
+ pkgdesc="Gambas2 Firebird database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.firebird
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-form() {
+ depends=('gambas2-gb-db' 'gambas2-gb-form')
+ pkgdesc="Gambas2 database form component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.db.form
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*,gb.gui*,gb.db.{info,list}}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.gui*,gb.db.{so*,la,component}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-db-mysql() {
+ depends=('gambas2-gb-db' 'libmysqlclient')
+ pkgdesc="Gambas2 MySQL database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.mysql
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-odbc() {
+ depends=('gambas2-gb-db' 'unixodbc')
+ pkgdesc="Gambas2 ODBC database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.odbc
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-postgresql() {
+ depends=('gambas2-gb-db' 'postgresql-libs>=8.4.1')
+ pkgdesc="Gambas2 PostgreSQL database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.postgresql
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-sqlite2() {
+ depends=('gambas2-gb-db' 'sqlite2')
+ pkgdesc="Gambas2 Sqlite2 database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite2
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-db-sqlite3() {
+ depends=('gambas2-gb-db' 'sqlite3')
+ pkgdesc="Gambas2 Sqlite3 database access component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite3
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-desktop() {
+ depends=('gambas2-runtime' 'libsm' 'libxtst')
+ pkgdesc="Gambas2 desktop component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.desktop
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.{so*,la},gb.qt*,gb.draw*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-form() {
+ depends=('gambas2-gb-gui')
+ pkgdesc="Gambas2 form component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*,gb.gui*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.gui*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-form-dialog() {
+ depends=('gambas2-gb-form')
+ pkgdesc="Gambas2 form dialog component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.form.dialog
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.form.{info,list},gb.qt*,gb.gui*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.form.{component,gambas},gb.gui*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-form-mdi() {
+ depends=('gambas2-gb-form')
+ pkgdesc="Gambas2 form MDI component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.form.mdi
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.form.{info,list},gb.qt*,gb.gui*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.form.{component,gambas},gb.gui*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gtk() {
+ depends=('gambas2-runtime' 'gtk2')
+ pkgdesc="Gambas2 graphical GTK+ toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.gtk.ext*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.gtk.ext*,gb.{so*,la}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gtk-ext() {
+ depends=('gambas2-gb-gtk')
+ pkgdesc="Gambas2 graphical GTK+ toolkit extension component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk/src/ext
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gtk-svg() {
+ depends=('gambas2-gb-gtk' 'librsvg')
+ pkgdesc="Gambas2 graphical GTK+ toolkit svg component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk.svg
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-gui() {
+ depends=('gambas2-gb-qt' 'gambas2-gb-gtk')
+ pkgdesc="Gambas2 automatic gui toolkit chooser"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-image() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 image processing component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.image
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-info() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 info component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ _buildgbcomp gb.info
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-net() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 networking component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-net-curl() {
+ depends=('gambas2-runtime' 'curl')
+ pkgdesc="Gambas2 advanced networking component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-net-smtp() {
+ depends=('gambas2-runtime' 'glib2')
+ pkgdesc="Gambas2 SMTP component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.smtp
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-opengl() {
+ depends=('gambas2-runtime' 'libgl' 'mesa')
+ pkgdesc="Gambas2 OpenGL component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-option() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 command-line options component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/option
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-pcre() {
+ depends=('gambas2-runtime' 'pcre')
+ pkgdesc="Gambas2 PCRE component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pcre
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-pdf() {
+ depends=('gambas2-runtime' 'poppler')
+ pkgdesc="Gambas2 PDF component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pdf
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-qt() {
+ depends=('gambas2-runtime' 'qt3')
+ pkgdesc="Gambas2 graphical QT toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.qt.ext*,gb.qt.opengl*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt.ext*,gb.qt.opengl*,gb.{so*,la}}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-qt-ext() {
+ depends=('gambas2-gb-qt')
+ pkgdesc="Gambas2 graphical QT toolkit extension component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt/src/ext
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-qt-opengl() {
+ depends=('gambas2-gb-qt' 'libgl')
+ pkgdesc="Gambas2 graphical QT toolkit OpenGL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt/src/opengl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-qt-kde() {
+ depends=('gambas2-gb-qt' 'kdelibs3')
+ pkgdesc="Gambas2 KDE component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt.kde
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ rm ${pkgdir}/usr/share/gambas2/info/gb.qt.kde.html*
+ rm ${pkgdir}/usr/lib/gambas2/gb.qt.kde.html*
+}
+
+package_gambas2-gb-qt-kde-html() {
+ depends=('gambas2-gb-qt-kde')
+ pkgdesc="Gambas2 KHTML component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt.kde/src/html
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-report() {
+ depends=('gambas2-runtime' 'gambas2-gb-form')
+ pkgdesc="Gambas2 report component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/draw
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/db
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ _buildgbcomp gb.form
+ _buildgbcomp gb.report
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.{info,list},gb.form.{info,list},gb.qt*,gb.gui*,gb.db*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.draw*,gb.qt*,gb.{so*,la},gb.form.{component,gambas},gb.gui*,gb.db*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-sdl() {
+ depends=('gambas2-runtime' 'sdl_image' 'libxft' 'libxcursor' 'libgl')
+ pkgdesc="Gambas2 SDL component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-sdl-sound() {
+ depends=('gambas2-runtime' 'sdl_mixer')
+ pkgdesc="Gambas2 SDL sound component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl.sound
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-settings() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 settings management component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ _buildgbcomp gb.settings
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-v4l() {
+ depends=('gambas2-runtime' 'libjpeg' 'libpng')
+ pkgdesc="Gambas2 V4L component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.v4l
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-vb() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 VB transitional component"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/vb
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+}
+
+package_gambas2-gb-web() {
+ depends=('gambas2-runtime')
+ pkgdesc="Gambas2 CGI component"
+# arch=('any')
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ _buildgbcomp gb.web
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-xml() {
+ depends=('gambas2-runtime' 'libxml2')
+ pkgdesc="Gambas2 xml component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/{gb.xml.{xslt*,rpc*},gb.{info,list},gb.net*}
+ rm ${pkgdir}/usr/lib/gambas2/{gb.xml.{xslt*,rpc*},gb.{so*,la},gb.net*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-xml-rpc() {
+ depends=('gambas2-gb-xml' 'gambas2-gb-net' 'gambas2-gb-net-curl')
+ pkgdesc="Gambas2 xml-rpc component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{{info,list},xml.{info,list},xml.xslt.{info,list},net.*}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{{so*,la},xml.{so*,la,component},xml.xslt.*,net.*}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
+
+package_gambas2-gb-xml-xslt() {
+ depends=('gambas2-gb-xml' 'libxslt')
+ pkgdesc="Gambas2 xml-xslt component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbx
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+ mkdir -p ${pkgdir}/usr/share/gambas2/info
+ ${srcdir}/${pkgbase}-${pkgver}/main/gbc/gbi2 -r ${pkgdir}/usr gb
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/xslt
+ make DESTDIR="${pkgdir}" GBFILES="${_gbfiles}" install
+
+ ## cleanup the workaround
+ rm ${pkgdir}/usr/share/gambas2/info/gb.{info,list}
+ rm ${pkgdir}/usr/lib/gambas2/gb.{so*,la}
+ rm -rf ${pkgdir}/usr/bin
+ ##
+}
diff --git a/community/gambas2/fix-gbi-gba-path.patch b/community/gambas2/fix-gbi-gba-path.patch
new file mode 100644
index 000000000..9be8e921e
--- /dev/null
+++ b/community/gambas2/fix-gbi-gba-path.patch
@@ -0,0 +1,24 @@
+--- component.am 2010-03-15 20:54:43.000000000 +0100
++++ ../component.am 2010-04-30 15:00:47.218700833 +0200
+@@ -6,17 +6,17 @@
+ @if test -d $(COMPONENT); then \
+ echo "Compiling the $(COMPONENT) project..."; \
+ ( \
+- $(DESTDIR)$(bindir)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT); \
++ $(GBFILES)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT); \
+ cd $(COMPONENT); \
+- $(DESTDIR)$(bindir)/gbc$(GAMBAS_VERSION) -ag -r $(DESTDIR)$(prefix); \
+- $(DESTDIR)$(bindir)/gba$(GAMBAS_VERSION); \
++ $(GBFILES)/gbc$(GAMBAS_VERSION) -ag -r $(DESTDIR)$(prefix); \
++ $(GBFILES)/gba$(GAMBAS_VERSION); \
+ rm -rf .gambas; \
+ $(INSTALL) $(COMPONENT).gambas $(DESTDIR)$(gblibdir); \
+ ) \
+ fi
+ @echo
+ @echo "Creating the information files for $(COMPONENT) component..."
+- @$(DESTDIR)$(bindir)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT)
++ @$(GBFILES)/gbi$(GAMBAS_VERSION) -r $(DESTDIR)$(prefix) $(COMPONENT)
+ @echo
+
+ uninstall-hook:
diff --git a/community/gambas2/gambas2-runtime.install b/community/gambas2/gambas2-runtime.install
new file mode 100644
index 000000000..4729f7ef6
--- /dev/null
+++ b/community/gambas2/gambas2-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambas.png application-x-gambas
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gambas2/gambas2-script.install b/community/gambas2/gambas2-script.install
new file mode 100644
index 000000000..86558e434
--- /dev/null
+++ b/community/gambas2/gambas2-script.install
@@ -0,0 +1,15 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambasscript.png application-x-gambasscript
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambasserverpage.png application-x-gambasserverpage
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambasscript.xml
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambasserverpage.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasscript
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasserverpage
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambasscript.xml
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambasserverpage.xml
+}
diff --git a/community/gambas2/gambas2.desktop b/community/gambas2/gambas2.desktop
new file mode 100644
index 000000000..40968158f
--- /dev/null
+++ b/community/gambas2/gambas2.desktop
@@ -0,0 +1,13 @@
+
+[Desktop Entry]
+Name=Gambas2
+Exec=gambas2
+Icon=/usr/share/pixmaps/gambas2.png
+Terminal=false
+X-MultipleArgs=false
+Type=Application
+Categories=Application;Development;
+Encoding=UTF-8
+StartupNotify=true
+
+GenericName=
diff --git a/community/gambas2/gambas2.install b/community/gambas2/gambas2.install
new file mode 100644
index 000000000..4729f7ef6
--- /dev/null
+++ b/community/gambas2/gambas2.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas2/mime/application-x-gambas.png application-x-gambas
+ xdg-mime install /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas
+ xdg-mime uninstall /usr/share/gambas2/mime/application-x-gambas.xml
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gambas2/gambas2.png b/community/gambas2/gambas2.png
new file mode 100644
index 000000000..e7baa8699
--- /dev/null
+++ b/community/gambas2/gambas2.png
Binary files differ
diff --git a/community/gambas3/PKGBUILD b/community/gambas3/PKGBUILD
new file mode 100644
index 000000000..9feee3db2
--- /dev/null
+++ b/community/gambas3/PKGBUILD
@@ -0,0 +1,1065 @@
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+
+pkgbase=gambas3
+pkgname=('gambas3-runtime' 'gambas3-devel' 'gambas3-ide' 'gambas3-script' 'gambas3-examples' 'gambas3-gb-cairo' 'gambas3-gb-chart'
+ 'gambas3-gb-dbus' 'gambas3-gb-compress' 'gambas3-gb-crypt' 'gambas3-gb-db' 'gambas3-gb-db-form' 'gambas3-gb-db-mysql'
+ 'gambas3-gb-db-odbc' 'gambas3-gb-db-postgresql' 'gambas3-gb-db-sqlite2' 'gambas3-gb-db-sqlite3'
+ 'gambas3-gb-desktop' 'gambas3-gb-eval-highlight' 'gambas3-gb-form'
+ 'gambas3-gb-form-dialog' 'gambas3-gb-form-mdi' 'gambas3-gb-form-stock' 'gambas3-gb-gtk' 'gambas3-gb-gui' 'gambas3-gb-image'
+ 'gambas3-gb-image-effect' 'gambas3-gb-image-imlib' 'gambas3-gb-image-io' 'gambas3-gb-net' 'gambas3-gb-net-curl'
+ 'gambas3-gb-net-smtp' 'gambas3-gb-opengl' 'gambas3-gb-opengl-glsl' 'gambas3-gb-option' 'gambas3-gb-pcre'
+ 'gambas3-gb-pdf' 'gambas3-gb-qt4' 'gambas3-gb-qt4-ext' 'gambas3-gb-qt4-opengl' 'gambas3-gb-qt4-webkit'
+ 'gambas3-gb-report' 'gambas3-gb-sdl' 'gambas3-gb-sdl-sound' 'gambas3-gb-settings' 'gambas3-gb-signal'
+ 'gambas3-gb-v4l' 'gambas3-gb-vb' 'gambas3-gb-xml' 'gambas3-gb-xml-rpc' 'gambas3-gb-xml-xslt' 'gambas3-gb-web')
+pkgver=2.99.1
+pkgrel=1
+pkgdesc="A free development environment based on a Basic interpreter."
+arch=('i686' 'x86_64')
+url="http://gambas.sourceforge.net/"
+license=('GPL')
+groups=('gambas3')
+makedepends=('intltool' 'mysql' 'postgresql' 'libffi' 'bzip2' 'glib2' 'v4l-utils'
+ 'zlib' 'mesa' 'libgl' 'glew' 'xdg-utils' 'qt' 'gtk2' 'imlib2' 'gdk-pixbuf2'
+ 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite2' 'sqlite3' 'librsvg'
+ 'curl' 'poppler' 'sdl_mixer' 'sdl_ttf' 'libxtst' 'pcre' 'omniorb'
+ 'libxcursor' 'libsm' 'dbus-core' 'libxml2' 'libxslt' 'libgnome-keyring')
+options=('!emptydirs' '!makeflags')
+source=("http://downloads.sourceforge.net/gambas/${pkgbase}-${pkgver}.tar.bz2"
+ 'gambas3.desktop' 'gambas3.png'
+ 'gambas3-script.install' 'gambas3-runtime.install')
+md5sums=('a888b85a926e713a953d6b0b261f820d'
+ '98472c78df490dec171851d81ddc495f'
+ 'ffc75028b45bd48f5cd79d36f3859cd2'
+ 'b284be39d147ec799f1116a6abc068b4'
+ 'a8ec8e5a6aba7a7e453ce7a35c1800a9')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ ./reconf-all
+ ./configure --prefix=/usr -C
+
+ make bindir=${pkgdir}/usr/bin
+}
+
+package_gambas3-runtime() {
+ depends=('libffi' 'xdg-utils')
+ pkgdesc="Gambas3 runtime environment"
+ install=gambas3-runtime.install
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbc
+ make DESTDIR="${pkgdir}" install
+
+ cd ../gbx
+ make DESTDIR="${pkgdir}" install
+ cd ../lib/debug
+ make DESTDIR="${pkgdir}" install
+ cd ../eval
+ make DESTDIR="${pkgdir}" install
+ cd ../draw
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../gb.component \
+ ${pkgdir}/usr/lib/gambas3
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ ln -s gbx3 ${pkgdir}/usr/bin/gbr3
+ gbc/gbi3 -r ${pkgdir}/usr gb
+ rm -f ${pkgdir}/usr/lib/gambas3/gb.{so*,la}
+
+ ## needed for postinst with xdg-utils
+ install -d -m755 ${pkgdir}/usr/share/gambas3/mime
+ install -D -m644 mime/* \
+ ${pkgdir}/usr/share/gambas3/mime/
+ install -d -m755 ${pkgdir}/usr/share/gambas3/icons
+ install -D -m644 mime/application-x-gambas.png \
+ ${pkgdir}/usr/share/gambas3/icons/application-x-gambas.png
+
+ cd gbc
+ make DESTDIR="${pkgdir}" uninstall
+}
+
+package_gambas3-devel() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 development environment"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/gbc
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gambas3-ide() {
+ depends=('gambas3-devel' 'gambas3-gb-db-form' 'gambas3-gb-desktop' 'gambas3-gb-eval-highlight'
+ 'gambas3-gb-form-dialog' 'gambas3-gb-settings' 'gambas3-gb-form-mdi' 'gambas3-gb-image-effect'
+ 'gambas3-gb-qt4-ext' 'gambas3-gb-qt4-webkit')
+ pkgdesc="Gambas3 Integrated Development Environment"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+#!! with the ide !!
+ install -D -m644 ${srcdir}/gambas3.desktop \
+ ${pkgdir}/usr/share/applications/gambas3.desktop
+ install -D -m644 ${srcdir}/gambas3.png \
+ ${pkgdir}/usr/share/pixmaps/gambas3.png
+
+ rm -r ${pkgdir}/usr/bin/gb*
+ rm -r ${pkgdir}/usr/lib
+ rm -r ${pkgdir}/usr/share/gambas3
+}
+
+package_gambas3-script() {
+ depends=('gambas3-devel')
+ pkgdesc="Gambas3 scripter and server programs support"
+ install=gambas3-script.install
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## needed for postinst with xdg-utils
+ cd ${srcdir}/${pkgbase}-${pkgver}/app/mime
+ install -d -m755 ${pkgdir}/usr/share/gambas3/mime
+ install -D -m644 *.xml ${pkgdir}/usr/share/gambas3/mime/
+ install -D -m644 *.png ${pkgdir}/usr/share/gambas3/mime/
+ ##
+
+ rm -r ${pkgdir}/usr/bin/{gambas*,gb{[a-r]*,x*}}
+ rm -r ${pkgdir}/usr/lib
+ rm -r ${pkgdir}/usr/share/gambas3/[c-i]*
+}
+
+package_gambas3-examples() {
+ depends=('gambas3-gb-cairo' 'gambas3-gb-chart' 'gambas3-gb-dbus' 'gambas3-gb-compress' 'gambas3-gb-crypt' 'gambas3-gb-db'
+ 'gambas3-gb-db-form' 'gambas3-gb-db-mysql' 'gambas3-gb-db-odbc' 'gambas3-gb-db-postgresql' 'gambas3-gb-db-sqlite2'
+ 'gambas3-gb-db-sqlite3' 'gambas3-gb-desktop' 'gambas3-gb-eval-highlight' 'gambas3-gb-form' 'gambas3-gb-form-dialog'
+ 'gambas3-gb-form-mdi' 'gambas3-gb-gtk' 'gambas3-gb-gui' 'gambas3-gb-image' 'gambas3-gb-image-effect' 'gambas3-gb-image-imlib'
+ 'gambas3-gb-image-io' 'gambas3-gb-net' 'gambas3-gb-net-curl' 'gambas3-gb-net-smtp' 'gambas3-gb-opengl' 'gambas3-gb-opengl-glsl'
+ 'gambas3-gb-option' 'gambas3-gb-pcre' 'gambas3-gb-pdf' 'gambas3-gb-qt4' 'gambas3-gb-qt4-ext' 'gambas3-gb-qt4-opengl'
+ 'gambas3-gb-qt4-webkit' 'gambas3-gb-report' 'gambas3-gb-sdl' 'gambas3-gb-sdl-sound' 'gambas3-gb-settings' 'gambas3-gb-signal'
+ 'gambas3-gb-v4l' 'gambas3-gb-vb' 'gambas3-gb-xml' 'gambas3-gb-xml-rpc' 'gambas3-gb-xml-xslt' 'gambas3-gb-web')
+ pkgdesc="Gambas3 examples"
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ rm -r ${pkgdir}/usr/{bin,lib}
+ rm -r ${pkgdir}/usr/share/gambas3/{info,control,gb.sdl}
+}
+
+package_gambas3-gb-cairo() {
+ depends=('gambas3-runtime' 'cairo')
+ pkgdesc="Gambas3 cairo component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.cairo
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-chart() {
+ depends=('gambas3-gb-form')
+ pkgdesc="Gambas3 chart component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[d-w]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[d-w]*
+ ##
+}
+
+package_gambas3-gb-compress() {
+ depends=('gambas3-runtime' 'bzip2' 'zlib')
+ pkgdesc="Gambas3 compression support component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.bzlib2
+ make DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.compress.zlib
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.component,gb.[d-v]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[d-v]*
+ ##
+}
+
+package_gambas3-gb-crypt() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 MD5/DES crypting component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.crypt
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## Workaround for splitting
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.comp*,gb.d{e,r}*,gb.[e-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.comp*,gb.de*,gb.[e-z]*}
+ ##
+}
+
+package_gambas3-gb-db-form() {
+ depends=('gambas3-gb-db' 'gambas3-gb-form')
+ pkgdesc="Gambas3 database form component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{chart*,[e-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{chart*,[e-z]*}
+ ##
+}
+
+package_gambas3-gb-db-mysql() {
+ depends=('gambas3-gb-db' 'libmysqlclient')
+ pkgdesc="Gambas3 MySQL database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.mysql
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-odbc() {
+ depends=('gambas3-gb-db' 'unixodbc')
+ pkgdesc="Gambas3 ODBC database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.odbc
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-postgresql() {
+ depends=('gambas3-gb-db' 'postgresql-libs')
+ pkgdesc="Gambas3 PostgreSQL database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.postgresql
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-sqlite2() {
+ depends=('gambas3-gb-db' 'sqlite2')
+ pkgdesc="Gambas3 Sqlite2 database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite2
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-db-sqlite3() {
+ depends=('gambas3-gb-db' 'sqlite3')
+ pkgdesc="Gambas3 Sqlite3 database access component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.db.sqlite3
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-desktop() {
+ depends=('gambas3-gb-image' 'libsm' 'libxtst' 'libgnome-keyring')
+ pkgdesc="Gambas3 desktop component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.desktop
+ make DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-dbus() {
+ depends=('gambas3-runtime' 'dbus-core')
+ pkgdesc="Gambas3 DBUS component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.dbus
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-eval-highlight() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 expression evaluator highlight component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[f-z]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[f-z]*
+ ##
+}
+
+package_gambas3-gb-form() {
+ depends=('gambas3-gb-gui')
+ pkgdesc="Gambas3 form component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control/{gb.db*,gb.form.*,gb.report}
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-e]*,[m-w]*,form.{d*,m*,s*}}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-e]*,[m-w]*,form.{d*,m*,s*}}
+ ##
+}
+
+package_gambas3-gb-form-dialog() {
+ depends=('gambas3-gb-form')
+ pkgdesc="Gambas3 form dialog component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-e]*,[m-w]*,form.{c*,g*,m*,s*}}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-e]*,[m-w]*,form.{i*,l*,m*,s*}}
+ ##
+}
+
+package_gambas3-gb-form-mdi() {
+ depends=('gambas3-gb-form')
+ pkgdesc="Gambas3 form MDI component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control/{gb.db*,gb.form,gb.report}
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-e]*,[m-w]*,form.{c*,d*,g*,s*}}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-e]*,[m-w]*,form.{i*,l*,d*,s*}}
+ ##
+}
+
+package_gambas3-gb-form-stock() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 default stock icons component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{eval*,[m-w]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{eval*,[m-w]*}
+ ##
+}
+
+package_gambas3-gb-gtk() {
+ depends=('gambas3-gb-image' 'gtk2' 'librsvg')
+ pkgdesc="Gambas3 graphical GTK+ toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.gtk
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-gui() {
+ depends=('gambas3-gb-qt4' 'gambas3-gb-gtk')
+ pkgdesc="Gambas3 automatic gui toolkit chooser"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/main/lib/gui
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-e]*,gb.[i-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-e]*,gb.[i-z]*}
+ ##
+}
+
+package_gambas3-gb-image() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 image component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-g]*,gb.image.e*,gb.[j-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-g]*,gb.info,gb.image.e*,gb.[j-z]*}
+ ##
+}
+
+package_gambas3-gb-image-effect() {
+ depends=('gambas3-gb-image')
+ pkgdesc="Gambas3 image effect component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-g]*,gb.image.{c*,l*,s*},gb.[j-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-g]*,gb.info,gb.image.{i*,l*},gb.[j-z]*}
+ ##
+}
+
+package_gambas3-gb-image-imlib() {
+ depends=('gambas3-gb-image' 'imlib2')
+ pkgdesc="Gambas3 imlib component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.image.imlib
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-image-io() {
+ depends=('gambas3-gb-image' 'gdk-pixbuf2')
+ pkgdesc="Gambas3 input/output component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.image.io
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-net() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 network component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-net-curl() {
+ depends=('gambas3-gb-net' 'curl')
+ pkgdesc="Gambas3 curl component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-net-smtp() {
+ depends=('gambas3-runtime' 'glib2')
+ pkgdesc="Gambas3 SMTP component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.smtp
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-opengl() {
+ depends=('gambas3-runtime' 'libgl' 'glew')
+ pkgdesc="Gambas3 OpenGL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl/src/glsl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-opengl-glsl() {
+ depends=('gambas3-gb-opengl')
+ pkgdesc="Gambas3 GLSL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.opengl/src/glsl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-option() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 getopt component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[a-n]*,gb.[p-z]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[a-n]*,gb.[p-z]*}
+ ##
+}
+
+package_gambas3-gb-pcre() {
+ depends=('gambas3-runtime' 'pcre')
+ pkgdesc="Gambas3 PCRE component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pcre
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-pdf() {
+ depends=('gambas3-runtime' 'poppler')
+ pkgdesc="Gambas3 PDF component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.pdf
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4() {
+ depends=('gambas3-gb-image' 'qt')
+ pkgdesc="Gambas3 Qt4 toolkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/ext
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/opengl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/webkit
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4-ext() {
+ depends=('gambas3-gb-qt4')
+ pkgdesc="Gambas3 Qt4 toolkit extended component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/ext
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4-opengl() {
+ depends=('gambas3-gb-qt4' 'libgl')
+ pkgdesc="Gambas3 Qt4 toolkit OpenGL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/opengl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-qt4-webkit() {
+ depends=('gambas3-gb-qt4')
+ pkgdesc="Gambas3 Qt4 toolkit webkit component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4/src/webkit
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-report() {
+ depends=('gambas3-gb-form' 'gambas3-gb-image-io')
+ pkgdesc="Gambas3 report component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.qt4
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/share/gambas3/control/gb.[d-f]*
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-m]*,[s-w]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-m]*,[s-w]*}
+ ##
+}
+
+package_gambas3-gb-sdl() {
+ depends=('gambas3-gb-image-io' 'sdl_ttf' 'libxcursor' 'glew' 'libgl')
+ pkgdesc="Gambas3 SDL component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-sdl-sound() {
+ depends=('gambas3-runtime' 'sdl_mixer')
+ pkgdesc="Gambas3 SDL sound component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.sdl.sound
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-settings() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 setting component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.{[c-r]*,[t-w]*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.{[c-r]*,[t-w]*}
+ ##
+}
+
+package_gambas3-gb-signal() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 signal component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## cleanup the workaround
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/{gb.[c-r]*,gb.[t-z]*,gb.so*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/{gb.[c-r]*,gb.[t-z]*}
+ ##
+}
+
+package_gambas3-gb-v4l() {
+ depends=('gambas3-runtime' 'v4l-utils' 'libjpeg' 'libpng')
+ pkgdesc="Gambas3 video4linux component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.v4l
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-vb() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 VB transitional component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ ## Workaround for splitting
+ rm -r ${pkgdir}/usr/bin
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[a-u]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[a-u]*
+ ##
+}
+
+package_gambas3-gb-xml() {
+ depends=('gambas3-runtime' 'libxml2')
+ pkgdesc="Gambas3 XML component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/xslt
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/rpc
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-xml-rpc() {
+ depends=('gambas3-gb-xml' 'gambas3-gb-net' 'gambas3-gb-net-curl')
+ pkgdesc="Gambas3 XML-RPC component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.net.curl
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.xml.{[c-l]*,xslt*,so*}
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.xml.{[i-l]*,x*}
+ ##
+}
+
+package_gambas3-gb-xml-xslt() {
+ depends=('gambas3-gb-xml' 'libxslt')
+ pkgdesc="Gambas3 XML-XSLT component"
+
+ ## workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/gb.xml/src/xslt
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+
+ ## cleanup the workaround
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ ##
+}
+
+package_gambas3-gb-web() {
+ depends=('gambas3-runtime')
+ pkgdesc="Gambas3 CGI component"
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" install
+ ##
+
+ cd ${srcdir}/${pkgbase}-${pkgver}/comp
+ make DESTDIR="${pkgdir}" install
+
+ ## Workaround for splitting
+ cd ${srcdir}/${pkgbase}-${pkgver}/main
+ make XDG_UTILS='' DESTDIR="${pkgdir}" uninstall
+ rm -r ${pkgdir}/usr/lib/gambas3/gb.[c-v]*
+ rm -r ${pkgdir}/usr/share/gambas3/info/gb.[c-v]*
+ ##
+}
diff --git a/community/gambas3/gambas3-runtime.install b/community/gambas3/gambas3-runtime.install
new file mode 100644
index 000000000..c6aad0d55
--- /dev/null
+++ b/community/gambas3/gambas3-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambas.png application-x-gambas
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambas.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambas.xml
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gambas3/gambas3-script.install b/community/gambas3/gambas3-script.install
new file mode 100644
index 000000000..77c1aa52f
--- /dev/null
+++ b/community/gambas3/gambas3-script.install
@@ -0,0 +1,15 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambasscript.png application-x-gambasscript
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambasserverpage.png application-x-gambasserverpage
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambasscript.xml
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambasserverpage.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasscript
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambasserverpage
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambasscript.xml
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambasserverpage.xml
+}
diff --git a/community/gambas3/gambas3.desktop b/community/gambas3/gambas3.desktop
new file mode 100644
index 000000000..d35d829f3
--- /dev/null
+++ b/community/gambas3/gambas3.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=Gambas3
+Exec=gambas3
+Icon=/usr/share/pixmaps/gambas3.png
+Terminal=false
+X-MultipleArgs=false
+Type=Application
+Categories=Application;Development;
+Encoding=UTF-8
+StartupNotify=true
+
+GenericName=
diff --git a/community/gambas3/gambas3.install b/community/gambas3/gambas3.install
new file mode 100644
index 000000000..c6aad0d55
--- /dev/null
+++ b/community/gambas3/gambas3.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource install --context mimetypes --size 64 \
+ /usr/share/gambas3/mime/application-x-gambas.png application-x-gambas
+ xdg-mime install /usr/share/gambas3/mime/application-x-gambas.xml
+}
+
+pre_remove() {
+ xdg-icon-resource uninstall --context mimetypes --size 64 application-x-gambas
+ xdg-mime uninstall /usr/share/gambas3/mime/application-x-gambas.xml
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gambas3/gambas3.png b/community/gambas3/gambas3.png
new file mode 100644
index 000000000..302ab3058
--- /dev/null
+++ b/community/gambas3/gambas3.png
Binary files differ
diff --git a/community/gamin/PKGBUILD b/community/gamin/PKGBUILD
new file mode 100644
index 000000000..7bfc322ac
--- /dev/null
+++ b/community/gamin/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 30749 2010-10-20 11:18:33Z schuay $
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Pulphix <crimea.v@libero.it>
+
+pkgname=gamin
+pkgver=0.1.10
+pkgrel=4
+pkgdesc='File and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor).'
+url='http://www.gnome.org/~veillard/gamin'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('glib2')
+makedepends=('python2')
+options=('libtool')
+optdepends=('python2: for the python module.')
+provides=('fam')
+conflicts=('fam')
+source=("http://www.gnome.org/~veillard/${pkgname}/sources/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b4ec549e57da470c04edd5ec2876a028')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # python 2
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' python/gamin.py
+
+ ./configure --prefix=/usr --disable-static --with-threads \
+ --disable-debug-api --disable-debug --libexecdir=/usr/lib/gamin \
+ --with-python=/usr/bin/python2
+ make
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/gammu/PKGBUILD b/community/gammu/PKGBUILD
new file mode 100644
index 000000000..49fd5a554
--- /dev/null
+++ b/community/gammu/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42312 2011-03-16 10:51:16Z jelle $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=gammu
+pkgver=1.29.0
+pkgrel=2
+pkgdesc="GNU All Mobile Management Utilities"
+arch=('i686' 'x86_64')
+url="http://wammu.eu/"
+license=('GPL')
+depends=('bluez' 'curl' 'libmysqlclient'
+ 'postgresql-libs' 'python2' 'libusb')
+makedepends=('cmake' 'doxygen' 'mysql')
+optdepends=('dialog: support for the gammu-config script')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('5a860f37519fab3d2e7a42349b413738')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake . -DCMAKE_INSTALL_PREFIX="/usr"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gammu/gammu.changelog b/community/gammu/gammu.changelog
new file mode 100644
index 000000000..e3038c41e
--- /dev/null
+++ b/community/gammu/gammu.changelog
@@ -0,0 +1,103 @@
+2011-01-27 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 1.29.0
+
+2010-06-29 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 1.27.94
+
+ * PKGBUILD: new dep - libusb1
+ url - upstream now uses wammu site
+ new changelog array
+ src now from sourceforge
+
+ * ChangeLog: changed to gammu.changelog
+
+2010-01-05 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.27.0
+
+2009-09-19 Biru Ionut <ionut@archlinux.ro>
+
+ * rebuild postgresql 8.4: 1.26.1-2
+
+2009-09-08 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.26.1
+
+ * PKGBUILD: moved python from makedepends to depends due to
+ gammu substituting python-gammu
+
+2009-07-14 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.25.0
+
+2009-04-14 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Release bump: 2
+
+ * PKGBUILD: forgot to add python-gammu to conflicts and provides
+ arrays, also added doxygen to makedepends
+
+2009-04-14 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.23.1
+
+2009-02-15 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Release bump: 2
+
+ * PKGBUILD: substituted bluez-libs dependency with bluez
+
+2009-01-17 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.22.1
+
+2008-10-27 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.21.0
+
+ * PKGBUILD: moved to ${src,pkg}dir syntax, disabled static library
+ compilation, added optdepends array, added curl dependency
+
+ * gammu.install: removed in favor of optdepends
+
+2008-05-13 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.20.0
+
+ * gammu.install: removed post_upgrade() function
+
+2008-03-07 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.19.0
+
+2008-01-30 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.18.0
+
+2008-01-23 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.17.0
+
+ * gammu.install: added
+
+2007-12-19 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.16.0
+
+ * PKGBUILD: fixed CVS Id variable
+
+ * ChangeLog: adapted to "official" specifications
+
+2007-12-06 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.15.0
+
+2007-11-05 Corrado Primier <bardo@aur.archlinux.org>
+
+ * gammu: adopted from [extra]
+
+ * Version bump: 1.13.0
+
+ * PKGBUILD: a handful of minor changes to build()
diff --git a/community/garmindev/51-garmin.rules b/community/garmindev/51-garmin.rules
new file mode 100644
index 000000000..dbed1e222
--- /dev/null
+++ b/community/garmindev/51-garmin.rules
@@ -0,0 +1 @@
+SYSFS{idVendor}=="091e", SYSFS{idProduct}=="0003", GROUP="uucp", MODE="660"
diff --git a/community/garmindev/PKGBUILD b/community/garmindev/PKGBUILD
new file mode 100644
index 000000000..5cae2fff7
--- /dev/null
+++ b/community/garmindev/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 39106 2011-02-06 22:07:54Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Matthias Maennich <arch@maennich.net>
+
+pkgname=garmindev
+pkgver=0.3.4
+pkgrel=4
+pkgdesc="Garmin Device Drivers for QlandkarteGT"
+arch=('i686' 'x86_64')
+url="http://www.qlandkarte.org/"
+license=('GPL')
+depends=('libusb')
+makedepends=('cmake')
+changelog=$pkgname.changelog
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/qlandkartegt/$pkgname-$pkgver.tar.gz \
+ 51-garmin.rules)
+sha256sums=('86c38f65ba1a05c5d5eb076107094cb789db6ffc5d80bfd7bb209d645bcf87d5'
+ 'fab0bf0bbda536015cb66d00b55c5ae4078051d89f82b5b9ee231020316361d6')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ install -d ${srcdir}/$pkgname-$pkgver/build
+ cd ${srcdir}/$pkgname-$pkgver/build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package(){
+ cd ${srcdir}/$pkgname-$pkgver/build
+
+ make DESTDIR=${pkgdir} install
+
+#ChangeLog and example udev rule
+ install -D -m644 ../changelog.txt ${pkgdir}/usr/share/$pkgname/CHANGELOG
+ install -D -m644 ${srcdir}/51-garmin.rules ${pkgdir}/usr/share/$pkgname/51-garmin.rules
+}
diff --git a/community/garmindev/garmindev.changelog b/community/garmindev/garmindev.changelog
new file mode 100644
index 000000000..0431a6d6b
--- /dev/null
+++ b/community/garmindev/garmindev.changelog
@@ -0,0 +1,4 @@
+2011-02-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * garmindev 0.3.4-3
+ * moved to [community] with 33 AUR votes
+ * see /usr/share/garmindev/CHANGELOG for feature changes
diff --git a/community/garmindev/garmindev.install b/community/garmindev/garmindev.install
new file mode 100644
index 000000000..691e9370d
--- /dev/null
+++ b/community/garmindev/garmindev.install
@@ -0,0 +1,8 @@
+post_install() {
+cat << EOF
+Note:
+==> In case you experience access permission error for the attached Garmin GPS device,
+==> see http://wiki.openstreetmap.org/wiki/USB_Garmin_on_GNU/Linux for more details.
+==> Disable garmin_gps module in /etc/rc.conf and see included example udev rule.
+EOF
+}
diff --git a/community/gavl/PKGBUILD b/community/gavl/PKGBUILD
new file mode 100644
index 000000000..fefbd6ef5
--- /dev/null
+++ b/community/gavl/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 40491 2011-02-24 23:54:31Z mherych $
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+# Maintainer: Robert Emil Berge
+# Maintaner: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=gavl
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A low level library, upon which multimedia APIs can be built."
+arch=('i686' 'x86_64')
+url="http://gmerlin.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+optios=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/gmerlin/$pkgname-$pkgver.tar.gz)
+md5sums=('f7dd25d3ef26a8d22f947e9383d251e7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --without-doxygen \
+ --with-cpuflags=none
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gcc-avr/PKGBUILD b/community/gcc-avr/PKGBUILD
new file mode 100644
index 000000000..d06f52aac
--- /dev/null
+++ b/community/gcc-avr/PKGBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: danst0 <danst0@west.de>
+
+pkgname=gcc-avr
+pkgver=4.5.2
+pkgrel=1
+pkgdesc="The GNU avr Compiler Collection"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'custom')
+url="http://gcc.gnu.org/"
+depends=('binutils-avr>=2.21' 'cloog-ppl' 'gcc-libs>=4.5.2' 'libmpc' 'elfutils')
+options=('!ccache' '!distcc' '!emptydirs' '!libtool' '!strip')
+source=(http://ftp.gnu.org/gnu/gcc/${pkgname/-avr}-${pkgver}/gcc-{core,g++}-${pkgver}.tar.bz2
+ 'add-more-mcus.patch')
+md5sums=('aa9e36bec080452372bfba793428ee82'
+ '9821f1c61e43755866861485ff364e90'
+ 'b2c3418c571f7c9b794dcf44eb186548')
+build() {
+ export CFLAGS="-O2 -pipe"
+ export CXXFLAGS="-O2 -pipe"
+
+ cd "${srcdir}/${pkgname/-avr}-${pkgver}"
+
+ # http://gcc.gnu.org/ml/gcc-patches/2010-04/msg01210.html
+ patch -p0 -i ${srcdir}/add-more-mcus.patch
+
+ mkdir build
+ cd build
+ ../configure --disable-libssp \
+ --disable-nls \
+ --enable-languages=c,c++ \
+ --infodir=/usr/share/info \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --mandir=/usr/share/man \
+ --prefix=/usr \
+ --target=avr \
+ --with-gnu-as \
+ --with-gnu-ld \
+ --with-as=/usr/bin/avr-as \
+ --with-ld=/usr/bin/avr-ld
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname/-avr}-${pkgver}"
+
+ cd build
+ make -j1 DESTDIR=${pkgdir} install
+
+ rm -f ${pkgdir}/usr/lib/libiberty.a
+ rm -rf ${pkgdir}/usr/share/man/man7
+ rm -rf ${pkgdir}/usr/share/info
+}
+
diff --git a/community/gcc-avr/add-more-mcus.patch b/community/gcc-avr/add-more-mcus.patch
new file mode 100644
index 000000000..826487d32
--- /dev/null
+++ b/community/gcc-avr/add-more-mcus.patch
@@ -0,0 +1,316 @@
+tHE ATTAChed patch adds support for a number of new AVR devices,
+and also removes support for some devices (where the devices
+were never manufactured, or incorrect names). Patch committed.
+
+A separate patch for the web pages will be forthcoming.
+
+Eric Weddington
+
+
+2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
+
+* config/avr/avr-devices.c (avr_mcu_types): Add support for new
+devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
+attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
+atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
+atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
+atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
+atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
+atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
+m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
+atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
+* config/avr/t-avr.c (MULTILIB_MATCHES): Same.
+
+
+Index: gcc/config/avr/avr-devices.c
+===================================================================
+--- gcc/config/avr/avr-devices.c (revision 158526)
++++ gcc/config/avr/avr-devices.c (working copy)
+@@ -23,7 +23,7 @@
+ #include "coretypes.h"
+ #include "tm.h"
+
+-/* List of all known AVR MCU architectyres. */
++/* List of all known AVR MCU architectures. */
+
+ const struct base_arch_s avr_arch_types[] = {
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0060, NULL, "avr2" }, /* unknown device specified */
+@@ -67,15 +67,23 @@
+ { "attiny13", ARCH_AVR25, "__AVR_ATtiny13__", 1, 0x0060, "tn13" },
+ { "attiny13a", ARCH_AVR25, "__AVR_ATtiny13A__", 1, 0x0060, "tn13a" },
+ { "attiny2313", ARCH_AVR25, "__AVR_ATtiny2313__", 1, 0x0060, "tn2313" },
++ { "attiny2313a", ARCH_AVR25, "__AVR_ATtiny2313A__", 1, 0x0060, "tn2313a" },
+ { "attiny24", ARCH_AVR25, "__AVR_ATtiny24__", 1, 0x0060, "tn24" },
++ { "attiny24a", ARCH_AVR25, "__AVR_ATtiny24A__", 1, 0x0060, "tn24a" },
++ { "attiny4313", ARCH_AVR25, "__AVR_ATtiny4313__", 1, 0x0060, "tn4313" },
+ { "attiny44", ARCH_AVR25, "__AVR_ATtiny44__", 0, 0x0060, "tn44" },
++ { "attiny44a", ARCH_AVR25, "__AVR_ATtiny44A__", 0, 0x0060, "tn44a" },
+ { "attiny84", ARCH_AVR25, "__AVR_ATtiny84__", 0, 0x0060, "tn84" },
++ { "attiny84a", ARCH_AVR25, "__AVR_ATtiny84A__", 0, 0x0060, "tn84" },
+ { "attiny25", ARCH_AVR25, "__AVR_ATtiny25__", 1, 0x0060, "tn25" },
+ { "attiny45", ARCH_AVR25, "__AVR_ATtiny45__", 0, 0x0060, "tn45" },
+ { "attiny85", ARCH_AVR25, "__AVR_ATtiny85__", 0, 0x0060, "tn85" },
+ { "attiny261", ARCH_AVR25, "__AVR_ATtiny261__", 1, 0x0060, "tn261" },
++ { "attiny261a", ARCH_AVR25, "__AVR_ATtiny261A__", 1, 0x0060, "tn261a" },
+ { "attiny461", ARCH_AVR25, "__AVR_ATtiny461__", 0, 0x0060, "tn461" },
++ { "attiny461a", ARCH_AVR25, "__AVR_ATtiny461A__", 0, 0x0060, "tn461a" },
+ { "attiny861", ARCH_AVR25, "__AVR_ATtiny861__", 0, 0x0060, "tn861" },
++ { "attiny861a", ARCH_AVR25, "__AVR_ATtiny861A__", 0, 0x0060, "tn861a" },
+ { "attiny43u", ARCH_AVR25, "__AVR_ATtiny43U__", 0, 0x0060, "tn43u" },
+ { "attiny87", ARCH_AVR25, "__AVR_ATtiny87__", 0, 0x0100, "tn87" },
+ { "attiny48", ARCH_AVR25, "__AVR_ATtiny48__", 0, 0x0100, "tn48" },
+@@ -97,21 +105,19 @@
+ { "atmega16u2", ARCH_AVR35, "__AVR_ATmega16U2__", 0, 0x0100, "m16u2" },
+ { "atmega32u2", ARCH_AVR35, "__AVR_ATmega32U2__", 0, 0x0100, "m32u2" },
+ { "attiny167", ARCH_AVR35, "__AVR_ATtiny167__", 0, 0x0100, "tn167" },
+- { "attiny327", ARCH_AVR35, "__AVR_ATtiny327__", 0, 0x0100, "tn327" },
+ /* Enhanced, <= 8K. */
+ { "avr4", ARCH_AVR4, NULL, 0, 0x0060, "m8" },
+ { "atmega8", ARCH_AVR4, "__AVR_ATmega8__", 0, 0x0060, "m8" },
+ { "atmega48", ARCH_AVR4, "__AVR_ATmega48__", 0, 0x0100, "m48" },
++ { "atmega48a", ARCH_AVR4, "__AVR_ATmega48A__", 0, 0x0100, "m48a" },
+ { "atmega48p", ARCH_AVR4, "__AVR_ATmega48P__", 0, 0x0100, "m48p" },
+ { "atmega88", ARCH_AVR4, "__AVR_ATmega88__", 0, 0x0100, "m88" },
++ { "atmega88a", ARCH_AVR4, "__AVR_ATmega88A__", 0, 0x0100, "m88a" },
+ { "atmega88p", ARCH_AVR4, "__AVR_ATmega88P__", 0, 0x0100, "m88p" },
++ { "atmega88pa", ARCH_AVR4, "__AVR_ATmega88PA__", 0, 0x0100, "m88pa" },
+ { "atmega8515", ARCH_AVR4, "__AVR_ATmega8515__", 0, 0x0060, "m8515" },
+ { "atmega8535", ARCH_AVR4, "__AVR_ATmega8535__", 0, 0x0060, "m8535" },
+- { "atmega8c1", ARCH_AVR4, "__AVR_ATmega8C1__", 0, 0x0100, "m8c1" },
+- { "atmega8m1", ARCH_AVR4, "__AVR_ATmega8M1__", 0, 0x0100, "m8m1" },
+ { "atmega8hva", ARCH_AVR4, "__AVR_ATmega8HVA__", 0, 0x0100, "m8hva" },
+- { "atmega4hvd", ARCH_AVR4, "__AVR_ATmega4HVD__", 0, 0x0100, "m4hvd" },
+- { "atmega8hvd", ARCH_AVR4, "__AVR_ATmega8HVD__", 0, 0x0100, "m8hvd" },
+ { "at90pwm1", ARCH_AVR4, "__AVR_AT90PWM1__", 0, 0x0100, "90pwm1" },
+ { "at90pwm2", ARCH_AVR4, "__AVR_AT90PWM2__", 0, 0x0100, "90pwm2" },
+ { "at90pwm2b", ARCH_AVR4, "__AVR_AT90PWM2B__", 0, 0x0100, "90pwm2b" },
+@@ -121,45 +127,68 @@
+ /* Enhanced, > 8K, <= 64K. */
+ { "avr5", ARCH_AVR5, NULL, 0, 0x0060, "m16" },
+ { "atmega16", ARCH_AVR5, "__AVR_ATmega16__", 0, 0x0060, "m16" },
++ { "atmega16a", ARCH_AVR5, "__AVR_ATmega16A__", 0, 0x0060, "m16a" },
+ { "atmega161", ARCH_AVR5, "__AVR_ATmega161__", 0, 0x0060, "m161" },
+ { "atmega162", ARCH_AVR5, "__AVR_ATmega162__", 0, 0x0100, "m162" },
+ { "atmega163", ARCH_AVR5, "__AVR_ATmega163__", 0, 0x0060, "m163" },
++ { "atmega164a", ARCH_AVR5, "__AVR_ATmega164A__", 0, 0x0060, "m164a" },
+ { "atmega164p", ARCH_AVR5, "__AVR_ATmega164P__", 0, 0x0100, "m164p" },
+ { "atmega165", ARCH_AVR5, "__AVR_ATmega165__", 0, 0x0100, "m165" },
++ { "atmega165a", ARCH_AVR5, "__AVR_ATmega165A__", 0, 0x0100, "m165a" },
+ { "atmega165p", ARCH_AVR5, "__AVR_ATmega165P__", 0, 0x0100, "m165p" },
+ { "atmega168", ARCH_AVR5, "__AVR_ATmega168__", 0, 0x0100, "m168" },
++ { "atmega168a", ARCH_AVR5, "__AVR_ATmega168A__", 0, 0x0100, "m168a" },
+ { "atmega168p", ARCH_AVR5, "__AVR_ATmega168P__", 0, 0x0100, "m168p" },
+ { "atmega169", ARCH_AVR5, "__AVR_ATmega169__", 0, 0x0100, "m169" },
++ { "atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", 0, 0x0100, "m169a" },
+ { "atmega169p", ARCH_AVR5, "__AVR_ATmega169P__", 0, 0x0100, "m169p" },
++ { "atmega169pa", ARCH_AVR5, "__AVR_ATmega169PA__", 0, 0x0100, "m169pa" },
+ { "atmega32", ARCH_AVR5, "__AVR_ATmega32__", 0, 0x0060, "m32" },
+ { "atmega323", ARCH_AVR5, "__AVR_ATmega323__", 0, 0x0060, "m323" },
++ { "atmega324a", ARCH_AVR5, "__AVR_ATmega324A__", 0, 0x0100, "m324a" },
+ { "atmega324p", ARCH_AVR5, "__AVR_ATmega324P__", 0, 0x0100, "m324p" },
++ { "atmega324pa", ARCH_AVR5, "__AVR_ATmega324PA__", 0, 0x0100, "m324pa" },
+ { "atmega325", ARCH_AVR5, "__AVR_ATmega325__", 0, 0x0100, "m325" },
++ { "atmega325a", ARCH_AVR5, "__AVR_ATmega325A__", 0, 0x0100, "m325a" },
+ { "atmega325p", ARCH_AVR5, "__AVR_ATmega325P__", 0, 0x0100, "m325p" },
+ { "atmega3250", ARCH_AVR5, "__AVR_ATmega3250__", 0, 0x0100, "m3250" },
++ { "atmega3250a", ARCH_AVR5, "__AVR_ATmega3250A__", 0, 0x0100, "m3250a" },
+ { "atmega3250p", ARCH_AVR5, "__AVR_ATmega3250P__", 0, 0x0100, "m3250p" },
++ { "atmega328", ARCH_AVR5, "__AVR_ATmega328__", 0, 0x0100, "m328" },
+ { "atmega328p", ARCH_AVR5, "__AVR_ATmega328P__", 0, 0x0100, "m328p" },
+ { "atmega329", ARCH_AVR5, "__AVR_ATmega329__", 0, 0x0100, "m329" },
++ { "atmega329a", ARCH_AVR5, "__AVR_ATmega329A__", 0, 0x0100, "m329a" },
+ { "atmega329p", ARCH_AVR5, "__AVR_ATmega329P__", 0, 0x0100, "m329p" },
++ { "atmega329pa", ARCH_AVR5, "__AVR_ATmega329PA__", 0, 0x0100, "m329pa" },
+ { "atmega3290", ARCH_AVR5, "__AVR_ATmega3290__", 0, 0x0100, "m3290" },
++ { "atmega3290a", ARCH_AVR5, "__AVR_ATmega3290A__", 0, 0x0100, "m3290a" },
+ { "atmega3290p", ARCH_AVR5, "__AVR_ATmega3290P__", 0, 0x0100, "m3290p" },
+ { "atmega406", ARCH_AVR5, "__AVR_ATmega406__", 0, 0x0100, "m406" },
+ { "atmega64", ARCH_AVR5, "__AVR_ATmega64__", 0, 0x0100, "m64" },
+ { "atmega640", ARCH_AVR5, "__AVR_ATmega640__", 0, 0x0200, "m640" },
+ { "atmega644", ARCH_AVR5, "__AVR_ATmega644__", 0, 0x0100, "m644" },
++ { "atmega644a", ARCH_AVR5, "__AVR_ATmega644A__", 0, 0x0100, "m644a" },
+ { "atmega644p", ARCH_AVR5, "__AVR_ATmega644P__", 0, 0x0100, "m644p" },
++ { "atmega644pa", ARCH_AVR5, "__AVR_ATmega644PA__", 0, 0x0100, "m644pa" },
+ { "atmega645", ARCH_AVR5, "__AVR_ATmega645__", 0, 0x0100, "m645" },
++ { "atmega645a", ARCH_AVR5, "__AVR_ATmega645A__", 0, 0x0100, "m645a" },
++ { "atmega645p", ARCH_AVR5, "__AVR_ATmega645P__", 0, 0x0100, "m645p" },
+ { "atmega6450", ARCH_AVR5, "__AVR_ATmega6450__", 0, 0x0100, "m6450" },
++ { "atmega6450a", ARCH_AVR5, "__AVR_ATmega6450A__", 0, 0x0100, "m6450a" },
++ { "atmega6450p", ARCH_AVR5, "__AVR_ATmega6450P__", 0, 0x0100, "m6450p" },
+ { "atmega649", ARCH_AVR5, "__AVR_ATmega649__", 0, 0x0100, "m649" },
++ { "atmega649a", ARCH_AVR5, "__AVR_ATmega649A__", 0, 0x0100, "m649a" },
++ { "atmega649p", ARCH_AVR5, "__AVR_ATmega649P__", 0, 0x0100, "m649p" },
+ { "atmega6490", ARCH_AVR5, "__AVR_ATmega6490__", 0, 0x0100, "m6490" },
+ { "atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__", 0, 0x0100, "m16hva" },
++ { "atmega16hva2", ARCH_AVR5, "__AVR_ATmega16HVA2__", 0, 0x0100, "m16hva2" },
+ { "atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__", 0, 0x0100, "m16hvb" },
+- { "atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0x0100, "m23hvb" },
++ { "atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0x0100, "m32hvb" },
++ { "atmega64hve", ARCH_AVR5, "__AVR_ATmega64HVE__", 0, 0x0100, "m64hve" },
+ { "at90can32", ARCH_AVR5, "__AVR_AT90CAN32__", 0, 0x0100, "can32" },
+ { "at90can64", ARCH_AVR5, "__AVR_AT90CAN64__", 0, 0x0100, "can64" },
+ { "at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__", 0, 0x0100, "90pwm216" },
+ { "at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__", 0, 0x0100, "90pwm316" },
+- { "atmega16c1", ARCH_AVR5, "__AVR_ATmega16C1__", 0, 0x0100, "m16c1" },
+ { "atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__", 0, 0x0100, "m32c1" },
+ { "atmega64c1", ARCH_AVR5, "__AVR_ATmega64C1__", 0, 0x0100, "m64c1" },
+ { "atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__", 0, 0x0100, "m16m1" },
+@@ -172,6 +201,7 @@
+ { "at90usb646", ARCH_AVR5, "__AVR_AT90USB646__", 0, 0x0100, "usb646" },
+ { "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__", 0, 0x0100, "usb647" },
+ { "at94k", ARCH_AVR5, "__AVR_AT94K__", 0, 0x0060, "at94k" },
++ { "m3000", ARCH_AVR5, "__AVR_M3000__", 0, 0x1000, "m3000" },
+ /* Enhanced, == 128K. */
+ { "avr51", ARCH_AVR51, NULL, 0, 0x0100, "m128" },
+ { "atmega128", ARCH_AVR51, "__AVR_ATmega128__", 0, 0x0100, "m128" },
+@@ -182,9 +212,6 @@
+ { "at90can128", ARCH_AVR51, "__AVR_AT90CAN128__", 0, 0x0100, "can128" },
+ { "at90usb1286", ARCH_AVR51, "__AVR_AT90USB1286__", 0, 0x0100, "usb1286" },
+ { "at90usb1287", ARCH_AVR51, "__AVR_AT90USB1287__", 0, 0x0100, "usb1286" },
+- { "m3000f", ARCH_AVR51, "__AVR_M3000F__", 0, 0x1000, "m3000f" },
+- { "m3000s", ARCH_AVR51, "__AVR_M3000S__", 0, 0x1000, "m3000f" },
+- { "m3001b", ARCH_AVR51, "__AVR_M3001B__", 0, 0x1000, "m3000f" },
+ /* 3-Byte PC. */
+ { "avr6", ARCH_AVR6, NULL, 0, 0x0200, "m2561" },
+ { "atmega2560", ARCH_AVR6, "__AVR_ATmega2560__", 0, 0x0200, "m2561" },
+Index: gcc/config/avr/t-avr
+===================================================================
+--- gcc/config/avr/t-avr (revision 158526)
++++ gcc/config/avr/t-avr (working copy)
+@@ -81,15 +81,23 @@
+ mmcu?avr25=mmcu?attiny13 \
+ mmcu?avr25=mmcu?attiny13a \
+ mmcu?avr25=mmcu?attiny2313 \
++ mmcu?avr25=mmcu?attiny2313a \
++ mmcu?avr25=mmcu?attiny4313 \
+ mmcu?avr25=mmcu?attiny24 \
++ mmcu?avr25=mmcu?attiny24a \
+ mmcu?avr25=mmcu?attiny44 \
++ mmcu?avr25=mmcu?attiny44a \
+ mmcu?avr25=mmcu?attiny84 \
++ mmcu?avr25=mmcu?attiny84a \
+ mmcu?avr25=mmcu?attiny25 \
+ mmcu?avr25=mmcu?attiny45 \
+ mmcu?avr25=mmcu?attiny85 \
+ mmcu?avr25=mmcu?attiny261 \
++ mmcu?avr25=mmcu?attiny261a \
+ mmcu?avr25=mmcu?attiny461 \
++ mmcu?avr25=mmcu?attiny461a \
+ mmcu?avr25=mmcu?attiny861 \
++ mmcu?avr25=mmcu?attiny861a \
+ mmcu?avr25=mmcu?attiny43u \
+ mmcu?avr25=mmcu?attiny87 \
+ mmcu?avr25=mmcu?attiny48 \
+@@ -105,19 +113,17 @@
+ mmcu?avr35=mmcu?atmega16u2 \
+ mmcu?avr35=mmcu?atmega32u2 \
+ mmcu?avr35=mmcu?attiny167 \
+- mmcu?avr35=mmcu?attiny327 \
+ mmcu?avr4=mmcu?atmega48 \
++ mmcu?avr4=mmcu?atmega48a \
+ mmcu?avr4=mmcu?atmega48p \
+ mmcu?avr4=mmcu?atmega8 \
+ mmcu?avr4=mmcu?atmega8515 \
+ mmcu?avr4=mmcu?atmega8535 \
+ mmcu?avr4=mmcu?atmega88 \
++ mmcu?avr4=mmcu?atmega88a \
+ mmcu?avr4=mmcu?atmega88p \
++ mmcu?avr4=mmcu?atmega88pa \
+ mmcu?avr4=mmcu?atmega8hva \
+- mmcu?avr4=mmcu?atmega4hvd \
+- mmcu?avr4=mmcu?atmega8hvd \
+- mmcu?avr4=mmcu?atmega8c1 \
+- mmcu?avr4=mmcu?atmega8m1 \
+ mmcu?avr4=mmcu?at90pwm1 \
+ mmcu?avr4=mmcu?at90pwm2 \
+ mmcu?avr4=mmcu?at90pwm2b \
+@@ -125,45 +131,70 @@
+ mmcu?avr4=mmcu?at90pwm3b \
+ mmcu?avr4=mmcu?at90pwm81 \
+ mmcu?avr5=mmcu?atmega16 \
++ mmcu?avr5=mmcu?atmega16a \
+ mmcu?avr5=mmcu?atmega161 \
+ mmcu?avr5=mmcu?atmega162 \
+ mmcu?avr5=mmcu?atmega163 \
++ mmcu?avr5=mmcu?atmega164a \
+ mmcu?avr5=mmcu?atmega164p \
+ mmcu?avr5=mmcu?atmega165 \
++ mmcu?avr5=mmcu?atmega165a \
+ mmcu?avr5=mmcu?atmega165p \
+ mmcu?avr5=mmcu?atmega168 \
++ mmcu?avr5=mmcu?atmega168a \
+ mmcu?avr5=mmcu?atmega168p \
+ mmcu?avr5=mmcu?atmega169 \
++ mmcu?avr5=mmcu?atmega169a \
+ mmcu?avr5=mmcu?atmega169p \
++ mmcu?avr5=mmcu?atmega169pa \
+ mmcu?avr5=mmcu?atmega32 \
+ mmcu?avr5=mmcu?atmega323 \
++ mmcu?avr5=mmcu?atmega324a \
+ mmcu?avr5=mmcu?atmega324p \
++ mmcu?avr5=mmcu?atmega324pa \
+ mmcu?avr5=mmcu?atmega325 \
++ mmcu?avr5=mmcu?atmega325a \
+ mmcu?avr5=mmcu?atmega325p \
+ mmcu?avr5=mmcu?atmega3250 \
++ mmcu?avr5=mmcu?atmega3250a \
+ mmcu?avr5=mmcu?atmega3250p \
++ mmcu?avr5=mmcu?atmega328 \
+ mmcu?avr5=mmcu?atmega328p \
+ mmcu?avr5=mmcu?atmega329 \
++ mmcu?avr5=mmcu?atmega329a \
+ mmcu?avr5=mmcu?atmega329p \
++ mmcu?avr5=mmcu?atmega329pa \
+ mmcu?avr5=mmcu?atmega3290 \
++ mmcu?avr5=mmcu?atmega3290a \
+ mmcu?avr5=mmcu?atmega3290p \
+ mmcu?avr5=mmcu?atmega406 \
+ mmcu?avr5=mmcu?atmega64 \
+ mmcu?avr5=mmcu?atmega640 \
+ mmcu?avr5=mmcu?atmega644 \
++ mmcu?avr5=mmcu?atmega644a \
+ mmcu?avr5=mmcu?atmega644p \
++ mmcu?avr5=mmcu?atmega644pa \
+ mmcu?avr5=mmcu?atmega645 \
++ mmcu?avr5=mmcu?atmega645a \
++ mmcu?avr5=mmcu?atmega645p \
+ mmcu?avr5=mmcu?atmega6450 \
++ mmcu?avr5=mmcu?atmega6450a \
++ mmcu?avr5=mmcu?atmega6450p \
+ mmcu?avr5=mmcu?atmega649 \
++ mmcu?avr5=mmcu?atmega649a \
++ mmcu?avr5=mmcu?atmega649p \
+ mmcu?avr5=mmcu?atmega6490 \
++ mmcu?avr5=mmcu?atmega6490a \
++ mmcu?avr5=mmcu?atmega6490p \
+ mmcu?avr5=mmcu?atmega16hva \
++ mmcu?avr5=mmcu?atmega16hva2 \
+ mmcu?avr5=mmcu?atmega16hvb \
+ mmcu?avr5=mmcu?atmega32hvb \
++ mmcu?avr5=mmcu?atmega64hve \
+ mmcu?avr5=mmcu?at90can32 \
+ mmcu?avr5=mmcu?at90can64 \
+ mmcu?avr5=mmcu?at90pwm216 \
+ mmcu?avr5=mmcu?at90pwm316 \
+- mmcu?avr5=mmcu?atmega16c1 \
+ mmcu?avr5=mmcu?atmega32c1 \
+ mmcu?avr5=mmcu?atmega64c1 \
+ mmcu?avr5=mmcu?atmega16m1 \
+@@ -176,6 +207,7 @@
+ mmcu?avr5=mmcu?at90usb646 \
+ mmcu?avr5=mmcu?at90usb647 \
+ mmcu?avr5=mmcu?at94k \
++ mmcu?avr5=mmcu?m3000 \
+ mmcu?avr51=mmcu?atmega128 \
+ mmcu?avr51=mmcu?atmega1280 \
+ mmcu?avr51=mmcu?atmega1281 \
+@@ -184,9 +216,6 @@
+ mmcu?avr51=mmcu?at90can128 \
+ mmcu?avr51=mmcu?at90usb1286 \
+ mmcu?avr51=mmcu?at90usb1287 \
+- mmcu?avr51=mmcu?m3000f \
+- mmcu?avr51=mmcu?m3000s \
+- mmcu?avr51=mmcu?m3001b \
+ mmcu?avr6=mmcu?atmega2560 \
+ mmcu?avr6=mmcu?atmega2561
+
diff --git a/community/gcolor2/PKGBUILD b/community/gcolor2/PKGBUILD
new file mode 100644
index 000000000..68f1304e1
--- /dev/null
+++ b/community/gcolor2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 9537 2010-01-27 00:58:00Z dgriffiths $
+# Maintainer: pressh <pressh funnysymbol gmail dot com>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: shaun lastra <badicalia@gmail.com>
+
+pkgname=gcolor2
+pkgver=0.4
+pkgrel=5
+pkgdesc="A simple GTK+2 color selector"
+arch=('i686' 'x86_64')
+url="http://gcolor2.sf.net/"
+license=('GPL')
+depends=('gtk2')
+makedepends=('perlxml')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
+ gcolor2-0.4-amd64.patch gcolor2.desktop)
+md5sums=('02de9d925ad5921522685f402caec3ec'
+ '5791378f6f86dd25a302ad8586292dd6'
+ '9523da11b40dd167964d1b50b40250d5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ [ "$CARCH" == "x86_64" ] && (patch -p1 < ../gcolor2-0.4-amd64.patch || return 1)
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+# install desktop file
+install -Dm644 $srcdir/gcolor2.desktop \
+ $pkgdir/usr/share/applications/gcolor2.desktop
+}
diff --git a/community/gcolor2/gcolor2-0.4-amd64.patch b/community/gcolor2/gcolor2-0.4-amd64.patch
new file mode 100644
index 000000000..cd06a8315
--- /dev/null
+++ b/community/gcolor2/gcolor2-0.4-amd64.patch
@@ -0,0 +1,46 @@
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/callbacks.c gcolor2-0.4/src/callbacks.c
+--- gcolor2-0.4.orig/src/callbacks.c 2005-07-12 14:06:12.000000000 -0400
++++ gcolor2-0.4/src/callbacks.c 2007-02-17 19:19:38.000000000 -0500
+@@ -4,6 +4,9 @@
+
+ #include <gtk/gtk.h>
+ #include <stdio.h>
++#include <string.h>
++#include <glib.h>
++#include <glib/gprintf.h>
+
+ #include "callbacks.h"
+ #include "interface.h"
+@@ -172,6 +175,9 @@ void on_copy_color_to_clipboard_activate
+ gtk_clipboard_set_text (cb, hex, strlen (hex));
+ }
+
++void add_rgb_file (gchar *filename, gchar *type);
++gchar* get_system_file (void);
++
+ void on_show_system_colors_activate (GtkMenuItem *menuitem, gpointer user_data)
+ {
+ if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)))
+@@ -266,6 +272,8 @@ void on_save_button_clicked (GtkButton *
+ gtk_widget_destroy (savedialog);
+ }
+
++void add_list_color (gchar *spec, gchar *name, gchar *type, gboolean is_new_color);
++
+ void add_color_to_treeview ()
+ {
+ GtkTreeView *treeview;
+diff --exclude-from=/home/dang/bin/scripts/diffrc -up -ruN gcolor2-0.4.orig/src/main.c gcolor2-0.4/src/main.c
+--- gcolor2-0.4.orig/src/main.c 2005-07-11 10:55:49.000000000 -0400
++++ gcolor2-0.4/src/main.c 2007-02-17 19:18:23.000000000 -0500
+@@ -4,6 +4,10 @@
+
+ #include <gtk/gtk.h>
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <glib.h>
++#include <glib/gprintf.h>
+
+ #include "interface.h"
+ #include "support.h"
diff --git a/community/gcolor2/gcolor2.desktop b/community/gcolor2/gcolor2.desktop
new file mode 100644
index 000000000..754df94d3
--- /dev/null
+++ b/community/gcolor2/gcolor2.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Gcolor2
+GenericName=A simple GTK+2 color selector
+Comment=Choose colours from palette or screen
+Exec=gcolor2
+Icon=/usr/share/pixmaps/gcolor2/icon.png
+Type=Application
+Terminal=false
+StartupNotify=true
+Categories=Graphics;
diff --git a/community/gcompris/PKGBUILD b/community/gcompris/PKGBUILD
new file mode 100644
index 000000000..0453a3b4a
--- /dev/null
+++ b/community/gcompris/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 43090 2011-03-24 00:10:31Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Daniel Isenmann <daniel.isenmann [at] gmx.de>
+
+pkgname=('gcompris' 'gcompris-data')
+pkgver=9.6
+pkgrel=1
+pkgdesc="Educational software suite comprising of numerous activities for children aged 2 to 10"
+arch=('i686' 'x86_64')
+url="http://gcompris.net/"
+license=('GPL3')
+makedepends=('texinfo' 'texi2html' 'intltool' 'gettext' 'gnuchess'
+ 'pygtk' 'pyxml' 'librsvg' 'gnet' 'python-pysqlite'
+ 'gstreamer0.10-base-plugins')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('4cd29386c09304f2a80753c850496d81')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package_gcompris() {
+ depends=('gcompris-data' 'pygtk' 'pyxml' 'librsvg' 'gnet' 'python-pysqlite'
+ 'gstreamer0.10-base-plugins')
+ optdepends=('gnucap: for computer simulation within the electricity activity'
+ 'tuxpaint: for the painting activity'
+ 'gnuchess: for the chess activity')
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install-exec
+}
+
+package_gcompris-data() {
+ pkgdesc="Data files for GCompris"
+ #arch=('any')
+ install=gcompris-data.install
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install-data
+
+ # Place GCompris menu entry under Education
+ sed -i 's|^Categories=.*|Categories=Education;|' \
+ "$pkgdir/usr/share/applications/gcompris.desktop"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gcompris/gcompris-data.install b/community/gcompris/gcompris-data.install
new file mode 100644
index 000000000..950d17bd7
--- /dev/null
+++ b/community/gcompris/gcompris-data.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(gcompris.info)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gdal/PKGBUILD b/community/gdal/PKGBUILD
new file mode 100644
index 000000000..af7df8ea9
--- /dev/null
+++ b/community/gdal/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 42309 2011-03-16 10:46:13Z jelle $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gdal
+pkgver=1.8.0
+pkgrel=3
+pkgdesc="A translator library for raster geospatial data formats"
+arch=('i686' 'x86_64')
+url="http://www.gdal.org/"
+license=('custom')
+depends=('curl' 'geos' 'giflib' 'hdf5' 'libgeotiff' 'libjpeg' 'libpng' 'libtiff' 'netcdf' 'python2' 'python2-numpy' 'cfitsio' 'sqlite3' 'libmysqlclient' 'postgresql-libs')
+makedepends=('perl' 'swig')
+optdepends=('postgresql: postgresql database support'
+ 'mysql: mysql database support'
+ 'perl,swig: perl binding support')
+options=('!libtool' '!makeflags')
+changelog=$pkgname.changelog
+source=(http://download.osgeo.org/${pkgname}/${pkgname}-${pkgver}.tar.gz \
+ gdal-1.5.1-python-install.patch)
+
+md5sums=('c762cdab0f7e51a677ba49278a8a263d' '81afc1c26d29cee84aadb6924fe33861')
+
+
+build() {
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np0 -i ${srcdir}/gdal-1.5.1-python-install.patch
+
+# python2 fixes
+ sed -i 's_python python1.5_python2 python python1.5_' configure
+ for file in swig/python/{,osgeo/,samples/,scripts/}*.py; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ ./configure --prefix=/usr --with-netcdf --with-libtiff --with-sqlite3 \
+ --with-geotiff --with-mysql --with-python --without-libtool --with-curl \
+ --with-hdf5 --with-perl --with-geos --with-png
+
+# workaround for bug #13646
+ sed -i 's/PY_HAVE_SETUPTOOLS=1/PY_HAVE_SETUPTOOLS=/g' ./GDALmake.opt
+ sed -i 's/EXE_DEP_LIBS/KILL_EXE_DEP_LIBS/' apps/GNUmakefile
+ install -d ${pkgdir}/usr/lib/python2.7/site-packages/
+
+ make
+}
+
+package () {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+# install license
+ install -D -m644 LICENSE.TXT ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+#FS15477 clean up junks
+ rm -f ${pkgdir}/usr/bin/*.dox
+}
diff --git a/community/gdal/gdal-1.5.1-python-install.patch b/community/gdal/gdal-1.5.1-python-install.patch
new file mode 100644
index 000000000..8ec414d37
--- /dev/null
+++ b/community/gdal/gdal-1.5.1-python-install.patch
@@ -0,0 +1,10 @@
+--- swig/python/GNUmakefile.orig 2010-04-24 01:22:07.000000000 +0200
++++ swig/python/GNUmakefile 2010-05-05 19:14:58.000000000 +0200
+@@ -72,5 +72,5 @@
+ ifeq ($(PY_HAVE_SETUPTOOLS),1)
+- $(PYTHON) setup.py install
++ $(PYTHON) setup.py install --root=$(DESTDIR)
+ else
+- $(PYTHON) setup.py install --prefix=$(DESTDIR)$(prefix)
++ $(PYTHON) setup.py install --root=$(DESTDIR) --prefix=$(prefix)
+ endif
diff --git a/community/gdal/gdal.changelog b/community/gdal/gdal.changelog
new file mode 100644
index 000000000..c31121e1d
--- /dev/null
+++ b/community/gdal/gdal.changelog
@@ -0,0 +1,11 @@
+2011-02-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * gdal 1.8.0-1
+
+2010-11-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.7.3
+
+2010-06-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#19946 fixed in 1.7.2-2
+
+2010-05-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.7.2
diff --git a/community/gdk-pixbuf/PKGBUILD b/community/gdk-pixbuf/PKGBUILD
new file mode 100644
index 000000000..ada0fc41c
--- /dev/null
+++ b/community/gdk-pixbuf/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 63580 2010-01-17 23:27:59Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=gdk-pixbuf
+pkgver=0.22.0
+pkgrel=7
+pkgdesc="Image loading and manipulation library"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL' 'LGPL')
+depends=('gtk' 'libtiff' 'libpng')
+makedepends=('libxt')
+options=('!libtool')
+source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.22/${pkgname}-${pkgver}.tar.bz2
+ gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
+ gdk-pixbuf-0.22.0-bmp_secure.patch
+ gdk-pixbuf-0.22.0-loaders.patch
+ gdk-pixbuf-0.22.0.patch)
+md5sums=('05fcb68ceaa338614ab650c775efc2f2'
+ 'd1fb93f1ae994875158a7e0c108c36f8'
+ '5f59d5772b1482d885a180dbc581cf84'
+ '3cf31ae0509747f72ac27a9fd96109c2'
+ 'e0f5f301ce958b7cea0be631ed7b8e56')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ export SED=/bin/sed
+ patch -Np1 -i ${srcdir}/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch || return 1
+ patch -Np0 -i ${srcdir}/gdk-pixbuf-0.22.0-bmp_secure.patch || return 1
+ patch -Np1 -i ${srcdir}/gdk-pixbuf-0.22.0-loaders.patch || return 1
+ patch -Np0 -i ${srcdir}/gdk-pixbuf-0.22.0.patch || return 1
+ libtoolize --force --copy --automake || return 1
+ autoreconf --force --install || return 1
+ ./configure --prefix=/usr --disable-gtk-doc || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ rm -rf ${pkgdir}/usr/share/gnome
+}
diff --git a/community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch b/community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
new file mode 100644
index 000000000..ffb4378aa
--- /dev/null
+++ b/community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
@@ -0,0 +1,48 @@
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-bmp.c 2002-09-27 23:12:40.000000000 +0200
++++ gdk-pixbuf-0.22.0.patched/gdk-pixbuf/io-bmp.c 2005-03-30 01:33:06.000000000 +0200
+@@ -31,8 +31,6 @@
+ #include "gdk-pixbuf-private.h"
+ #include "gdk-pixbuf-io.h"
+
+-
+-
+ #if 0
+ /* If these structures were unpacked, they would define the two headers of the
+ * BMP file. After them comes the palette, and then the image data.
+@@ -206,7 +204,7 @@
+
+ if (State == NULL)
+ return NULL;
+-
++
+ while (feof(f) == 0) {
+ length = fread(membuf, 1, sizeof (membuf), f);
+ if (length > 0)
+@@ -245,11 +243,26 @@
+ static gboolean
+ grow_buffer (struct bmp_progressive_state *State)
+ {
+- guchar *tmp = realloc (State->buff, State->BufferSize);
++ guchar *tmp;
++
++ if (State->BufferSize == 0) {
++#if 0
++ g_set_error (error,
++ GDK_PIXBUF_ERROR,
++ GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
++ _("BMP image has bogus header data"));
++#endif
++ State->read_state = READ_STATE_ERROR;
++ return FALSE;
++ }
++
++ tmp = realloc (State->buff, State->BufferSize);
++
+ if (!tmp) {
+ State->read_state = READ_STATE_ERROR;
+ return FALSE;
+ }
++
+ State->buff = tmp;
+ return TRUE;
+ }
diff --git a/community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_secure.patch b/community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_secure.patch
new file mode 100644
index 000000000..29471f147
--- /dev/null
+++ b/community/gdk-pixbuf/gdk-pixbuf-0.22.0-bmp_secure.patch
@@ -0,0 +1,19 @@
+Index: io-bmp.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gdk-pixbuf/io-bmp.c,v
+retrieving revision 1.41
+diff -u -p -r1.41 io-bmp.c
+--- gdk-pixbuf/io-bmp.c 13 Aug 2004 02:26:57 -0000 1.41
++++ gdk-pixbuf/io-bmp.c 20 Aug 2004 00:18:14 -0000
+@@ -876,8 +876,10 @@ DoCompressed(struct bmp_progressive_stat
+ guchar c;
+ gint idx;
+
+- if (context->compr.y >= context->Header.height)
++ if (context->compr.y >= context->Header.height) {
++ context->BufferDone = 0;
+ return TRUE;
++ }
+
+ y = context->compr.y;
+
diff --git a/community/gdk-pixbuf/gdk-pixbuf-0.22.0-loaders.patch b/community/gdk-pixbuf/gdk-pixbuf-0.22.0-loaders.patch
new file mode 100644
index 000000000..068653808
--- /dev/null
+++ b/community/gdk-pixbuf/gdk-pixbuf-0.22.0-loaders.patch
@@ -0,0 +1,134 @@
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c 2002-09-27 17:19:15.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c 2005-10-27 11:28:23.000000000 -0500
+@@ -330,6 +330,9 @@
+
+ State->HeaderSize+=I;
+
++ if (State->HeaderSize < 0)
++ return FALSE;
++
+ if (State->HeaderSize>State->BytesInHeaderBuf) {
+ guchar *tmp=realloc(State->HeaderBuf,State->HeaderSize);
+ if (!tmp)
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c 2001-03-01 15:16:28.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c 2005-10-27 11:29:14.000000000 -0500
+@@ -243,8 +243,8 @@
+ break;
+ else {
+ if (numnames > 0) {
+- space -= 1;
+- strcat (color, " ");
++ strncat (color, " ", space);
++ space -= MIN (space, 1);
+ }
+
+ strncat (color, temp, space);
+@@ -281,7 +281,8 @@
+ /* Fall through to the xpm_read_string. */
+
+ case op_body:
+- xpm_read_string (h->infile, &h->buffer, &h->buffer_size);
++ if(!xpm_read_string (h->infile, &h->buffer, &h->buffer_size))
++ return NULL;
+ return h->buffer;
+
+ default:
+@@ -317,13 +318,6 @@
+ return NULL;
+ }
+
+-/* Destroy notification function for the pixbuf */
+-static void
+-free_buffer (guchar *pixels, gpointer data)
+-{
+- free (pixels);
+-}
+-
+ static gboolean
+ xpm_color_parse (const char *spec, XColor *color)
+ {
+@@ -342,7 +336,8 @@
+ gchar pixel_str[32];
+ GHashTable *color_hash;
+ _XPMColor *colors, *color, *fallbackcolor;
+- guchar *pixels, *pixtmp;
++ guchar *pixtmp;
++ GdkPixbuf* pixbuf;
+
+ fallbackcolor = NULL;
+
+@@ -352,16 +347,33 @@
+ return NULL;
+ }
+ sscanf (buffer, "%d %d %d %d", &w, &h, &n_col, &cpp);
+- if (cpp >= 32) {
+- g_warning ("XPM has more than 31 chars per pixel.");
++ if (cpp <= 0 || cpp >= 32) {
++ g_warning ("XPM has invalid number of chars per pixel.");
+ return NULL;
+ }
++ if (n_col <= 0 ||
++ n_col >= G_MAXINT / (cpp + 1) ||
++ n_col >= G_MAXINT / sizeof (_XPMColor)) {
++ g_warning ("XPM file has invalid number of colors");
++ return NULL;
++ }
+
+ /* The hash is used for fast lookups of color from chars */
+ color_hash = g_hash_table_new (g_str_hash, g_str_equal);
+
+- name_buf = g_new (gchar, n_col * (cpp + 1));
+- colors = g_new (_XPMColor, n_col);
++ name_buf = g_new (gchar, n_col * (cpp + 1));
++ if (!name_buf) {
++ g_warning ("Cannot allocate memory for loading XPM image");
++ g_hash_table_destroy (color_hash);
++ return NULL;
++ }
++ colors = g_new (_XPMColor, n_col);
++ if (!colors) {
++ g_warning ("Cannot allocate memory for loading XPM image");
++ g_hash_table_destroy (color_hash);
++ g_free (name_buf);
++ return NULL;
++ }
+
+ for (cnt = 0; cnt < n_col; cnt++) {
+ gchar *color_name;
+@@ -397,12 +409,8 @@
+ fallbackcolor = color;
+ }
+
+- if (is_trans)
+- pixels = malloc (w * h * 4);
+- else
+- pixels = malloc (w * h * 3);
+-
+- if (!pixels) {
++ pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, is_trans, 8, w, h);
++ if (!pixbuf) {
+ g_hash_table_destroy (color_hash);
+ g_free (colors);
+ g_free (name_buf);
+@@ -410,7 +418,7 @@
+ }
+
+ wbytes = w * cpp;
+- pixtmp = pixels;
++ pixtmp = pixbuf->pixels;
+
+ for (ycnt = 0; ycnt < h; ycnt++) {
+ buffer = (*get_buf) (op_body, handle);
+@@ -443,9 +451,7 @@
+ g_free (colors);
+ g_free (name_buf);
+
+- return gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, is_trans, 8,
+- w, h, is_trans ? (w * 4) : (w * 3),
+- free_buffer, NULL);
++ return pixbuf;
+ }
+
+ /* Shared library entry point for file loading */
diff --git a/community/gdk-pixbuf/gdk-pixbuf-0.22.0.patch b/community/gdk-pixbuf/gdk-pixbuf-0.22.0.patch
new file mode 100644
index 000000000..8e0f55680
--- /dev/null
+++ b/community/gdk-pixbuf/gdk-pixbuf-0.22.0.patch
@@ -0,0 +1,129 @@
+--- configure.in
++++ configure.in
+@@ -21,6 +21,7 @@
+ AC_PROG_CC
+ AC_ISC_POSIX
+ AM_PROG_CC_STDC
++AM_PROG_AS
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+@@ -147,18 +148,18 @@
+ dnl Test for libtiff
+ if test -z "$LIBTIFF"; then
+ AC_CHECK_LIB(tiff, TIFFReadScanline,
+- AC_CHECK_HEADER(tiffio.h,
++ [AC_CHECK_HEADER(tiffio.h,
+ TIFF='tiff'; LIBTIFF='-ltiff',
+- AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+- AC_CHECK_LIB(tiff, TIFFWriteScanline,
+- AC_CHECK_HEADER(tiffio.h,
++ AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++ [AC_CHECK_LIB(tiff, TIFFWriteScanline,
++ [AC_CHECK_HEADER(tiffio.h,
+ TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
+- AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+- AC_CHECK_LIB(tiff34, TIFFFlushData,
+- AC_CHECK_HEADER(tiffio.h,
++ AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++ [AC_CHECK_LIB(tiff34, TIFFFlushData,
++ [AC_CHECK_HEADER(tiffio.h,
+ TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
+- AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+- AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm), -ljpeg -lz -lm), -lm)
++ AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++ AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
+ fi
+
+ dnl Test for libjpeg
+@@ -191,9 +192,9 @@
+ dnl Test for libpng
+ if test -z "$LIBPNG"; then
+ AC_CHECK_LIB(png, png_read_info,
+- AC_CHECK_HEADER(png.h,
++ [AC_CHECK_HEADER(png.h,
+ png_ok=yes,
+- png_ok=no),
++ png_ok=no)],
+ AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
+ if test "$png_ok" = yes; then
+ AC_MSG_CHECKING([for png_structp in png.h])
+--- doc/Makefile.am
++++ doc/Makefile.am
+@@ -156,7 +156,7 @@
+ done; \
+ fi)
+ # echo '-- Installing $(srcdir)/html/index.sgml' ; \
+-# $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
++# $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR);
+
+ #
+ # Require gtk-doc when making dist
+--- gdk-pixbuf.m4
++++ gdk-pixbuf.m4
+@@ -9,7 +9,7 @@
+ dnl AM_PATH_GDK_PIXBUF([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+ dnl Test for GDK_PIXBUF, and define GDK_PIXBUF_CFLAGS and GDK_PIXBUF_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_GDK_PIXBUF,
++AC_DEFUN([AM_PATH_GDK_PIXBUF],
+ [dnl
+ dnl Get the cflags and libraries from the gdk-pixbuf-config script
+ dnl
+--- gdk-pixbuf/Makefile.am
++++ gdk-pixbuf/Makefile.am
+@@ -18,7 +18,7 @@
+
+ libgnomecanvaspixbuf_la_LDFLAGS = -version-info 1:0:0 $(EXTRA_GNOME_LIBS)
+
+-libexecdir = $(libdir)/gdk-pixbuf/loaders
++loaderdir = $(libdir)/gdk-pixbuf/loaders
+
+ #
+ # The PNG plugin.
+@@ -118,7 +118,7 @@
+
+ if BUILD_DYNAMIC_MODULES
+
+-libexec_LTLIBRARIES = \
++loader_LTLIBRARIES = \
+ $(PNG_LIB) \
+ $(JPEG_LIB) \
+ $(GIF_LIB) \
+@@ -134,7 +134,7 @@
+ extra_sources =
+
+ else
+-libexec_LTLIBRARIES =
++loader_LTLIBRARIES =
+
+ extra_sources = $(libpixbufloader_png_la_SOURCES) \
+ $(libpixbufloader_jpeg_la_SOURCES) \
+@@ -159,7 +159,7 @@
+ -I$(top_builddir)/gdk-pixbuf \
+ $(X11_CFLAGS) $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GNOME_CFLAGS)
+
+-AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(libexecdir)\""
++AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(loaderdir)\""
+
+ LDADDS = libgdk_pixbuf.la $(GLIB_LIBS) $(GTK_LIBS) $(STATIC_LIB_DEPS)
+
+@@ -211,7 +211,7 @@
+ gdk-pixbuf-parse-color.c \
+ $(extra_sources)
+
+-libgdk_pixbuf_xlib_la_LDFLAGS = -version-info 2:0:0 -export-dynamic $(GLIB_LIBS) $(X11_LIBS)
++libgdk_pixbuf_xlib_la_LDFLAGS = -version-info 2:0:0 -export-dynamic $(GLIB_LIBS)
+ libgdk_pixbuf_xlib_la_LIBADD = pixops/libpixops.la libgdk_pixbuf.la $(GTK_LIBS)
+
+
+--- gdk-pixbuf/io-bmp.c
++++ gdk-pixbuf/io-bmp.c
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
++#include <stdlib.h>
+ #include "gdk-pixbuf-private.h"
+ #include "gdk-pixbuf-io.h"
+
diff --git a/community/gdmap/ChangeLog b/community/gdmap/ChangeLog
new file mode 100644
index 000000000..a1c404807
--- /dev/null
+++ b/community/gdmap/ChangeLog
@@ -0,0 +1,5 @@
+2007-06-28 Dragonlord <dragonlord@aur.archlinux.orgtardo@nagi-fanboi.net>
+ * updated to major release 0.8.1
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+ * Built for x86_64
diff --git a/community/gdmap/PKGBUILD b/community/gdmap/PKGBUILD
new file mode 100644
index 000000000..6295d89d7
--- /dev/null
+++ b/community/gdmap/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 22488 2010-07-21 22:10:21Z lcarlier $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+
+pkgname=gdmap
+pkgver=0.8.1
+pkgrel=2
+pkgdesc="Tool to inspect the used space of folders."
+arch=('i686' 'x86_64')
+url="http://gdmap.sourceforge.net"
+license=('GPL')
+depends=('gtk2' 'glib2' 'libxml2')
+makedepends=('gettext' 'intltool')
+source=(http://downloads.sourceforge.net/sourceforge/gdmap/$pkgname-$pkgver.tar.gz \
+ fix_deprecated_GTK_WIDGET_SENSITIVE.diff)
+md5sums=('54b43354dbe774810104607ad1eaaed3'
+ '98bf658a1994a5e6b7aafc738640d05b')
+
+build() {
+ cd ${srcdir}/gdmap-$pkgver
+
+ patch -p1 < ../fix_deprecated_GTK_WIDGET_SENSITIVE.diff
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/gdmap-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gdmap/fix_deprecated_GTK_WIDGET_SENSITIVE.diff b/community/gdmap/fix_deprecated_GTK_WIDGET_SENSITIVE.diff
new file mode 100644
index 000000000..38122ed96
--- /dev/null
+++ b/community/gdmap/fix_deprecated_GTK_WIDGET_SENSITIVE.diff
@@ -0,0 +1,30 @@
+diff -ur ../gdmap-0.8.1/src/gui_support.c .//src/gui_support.c
+--- ../gdmap-0.8.1/src/gui_support.c 2008-05-23 09:54:28.000000000 -0500
++++ .//src/gui_support.c 2010-07-22 02:52:43.489842704 -0500
+@@ -85,7 +85,7 @@
+ const char* text;
+
+ (void)event;
+- if (GTK_WIDGET_SENSITIVE(label)) {
++ if (gtk_widget_get_sensitive(label)) {
+ char* temp;
+
+ text = g_object_get_data(G_OBJECT(label), "label");
+@@ -106,7 +106,7 @@
+
+ (void)event;
+ // if (GTK_WIDGET_HAS_FOCUS(gtk_widget_get_parent(GTK_WIDGET(label)))) return TRUE;
+-/* if (GTK_WIDGET_SENSITIVE(label)) { */
++/* if (gtk_widget_get_sensitive(label)) { */
+ text = g_object_get_data(G_OBJECT(label), "label");
+ temp = g_strdup_printf(EVENT_FMT, text);
+ gtk_label_set_markup(label, temp);
+@@ -129,7 +129,7 @@
+ void ui_event_label_set_sensitive(GtkWidget* ebox, gboolean set) {
+ gpointer callback = g_object_get_data(G_OBJECT(ebox), "callback");
+ GtkWidget* child = GTK_BIN(ebox)->child;
+- if (GTK_WIDGET_SENSITIVE(child) == set) return;
++ if (gtk_widget_get_sensitive(child) == set) return;
+
+ if (set && !callback) return;
+ gtk_widget_set_sensitive(child, set);
diff --git a/community/geany-plugins/PKGBUILD b/community/geany-plugins/PKGBUILD
new file mode 100644
index 000000000..61c64ab43
--- /dev/null
+++ b/community/geany-plugins/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 37244 2011-01-12 15:09:23Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Patrick Melo <patrick@patrickmelo.eti.br>
+pkgname=geany-plugins
+pkgver=0.20
+pkgrel=1
+pkgdesc="The combined plugins release for Geany"
+arch=('i686' 'x86_64')
+url="http://plugins.geany.org"
+license=('GPL')
+depends=('geany' 'lua' 'gtkspell' 'enchant' 'intltool')
+source=(http://plugins.geany.org/geany-plugins/$pkgname-$pkgver.tar.bz2)
+md5sums=('94bc4901217641a07f840d92179643b0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib # Thx djgera
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/geany/PKGBUILD b/community/geany/PKGBUILD
new file mode 100644
index 000000000..b38061549
--- /dev/null
+++ b/community/geany/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 36732 2011-01-06 18:13:58Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Ionut Biru <ibiru@archlinux.ro>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+
+pkgname=geany
+pkgver=0.20
+pkgrel=1
+pkgdesc="A fast and lightweight IDE"
+arch=('i686' 'x86_64')
+url="http://www.geany.org"
+license=('GPL')
+depends=('gtk2>=2.8.0')
+makedepends=('perlxml' 'intltool')
+optdepends=("vte: for terminal support")
+install=geany.install
+source=(http://download.geany.org/$pkgname-$pkgver.tar.gz)
+options=('!libtool')
+md5sums=('7e7d6e4a40e04ecacb9bc317f97becfb')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' data/templates/files/main.py
+
+ ./configure --prefix=/usr
+ make
+
+ # FS#10318
+ sed -i 's|MimeType=text/plain;|MimeType=|' geany.desktop
+ # Add colors for PKGBUILD file
+ sed -i 's|Sh=|Sh=PKGBUILD;|' data/filetype_extensions.conf
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/geany/geany.install b/community/geany/geany.install
new file mode 100644
index 000000000..7e83162e5
--- /dev/null
+++ b/community/geany/geany.install
@@ -0,0 +1,13 @@
+pkgname=geany
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/gebabbel/PKGBUILD b/community/gebabbel/PKGBUILD
new file mode 100644
index 000000000..76a1a7e8f
--- /dev/null
+++ b/community/gebabbel/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 38898 2011-02-02 23:26:37Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: pfm <nl081130@yahoo.de>
+
+pkgname=gebabbel
+pkgver=0.4
+pkgrel=4
+pkgdesc="GUI for gpsbabel"
+arch=('i686' 'x86_64')
+url="http://gebabbel.sourceforge.net/"
+license=('GPL2')
+depends=('qt' 'gpsbabel')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/Gebabbel-$pkgver-Src.tar.gz \
+ http://$pkgname.sourceforge.net/GebabbelLogo.png \
+ $pkgname.desktop \
+ $pkgname-$pkgver.patch)
+sha256sums=('dcf3543412525959eaad755673fa65412077735fec400e6e62b1bd2c94ec1adf'
+ 'ca576fb10d493e1e7a2f96e56420477a3580bfd13961a73f2c1802de14ac7b69'
+ '0b90c6443414bc85bb1abcf59d40529d29c4c1f464ef6293ebd6e3ea1aa7674f'
+ '9ec383ceb462aab1d6561bcbad506b9c75a64866a13aeecf67f64b71807f9493')
+
+build() {
+ cd ${srcdir}/Gebabbel-$pkgver
+
+ patch -Np0 -i ${srcdir}/$pkgname-$pkgver.patch
+
+ qmake
+ make
+}
+
+package() {
+ cd ${srcdir}/Gebabbel-$pkgver
+
+ install -D -m755 ${srcdir}/Gebabbel-$pkgver/bin/$pkgname \
+ ${pkgdir}/usr/bin/$pkgname
+ install -D -m644 ${srcdir}/GebabbelLogo.png \
+ ${pkgdir}/usr/share/pixmaps/$pkgname.png
+ install -D -m644 ${srcdir}/$pkgname.desktop \
+ ${pkgdir}/usr/share/applications/$pkgname.desktop
+
+#localization
+ install -d ${pkgdir}/usr/share/$pkgname/locale
+ install -t ${pkgdir}/usr/share/$pkgname/locale/ \
+ ${srcdir}/Gebabbel-$pkgver/binincludes/translations/*.qm
+}
diff --git a/community/gebabbel/gebabbel-0.4.patch b/community/gebabbel/gebabbel-0.4.patch
new file mode 100644
index 000000000..e604e5a5c
--- /dev/null
+++ b/community/gebabbel/gebabbel-0.4.patch
@@ -0,0 +1,7 @@
+--- src/MyMainWindow.cpp 2007-09-18 22:26:49.000000000 +0200
++++ src/MyMainWindow.cpp 2011-01-30 13:23:02.000000000 +0100
+@@ -221,3 +221,3 @@
+ MainToolBar = addToolBar( tr( "Main Toolbar" ) );
+- MainToolBar->setIconSize( QSize::QSize( 16, 16 ) );
++ MainToolBar->setIconSize( QSize( 16, 16 ) );
+ MainToolBar->setAllowedAreas( Qt::TopToolBarArea );
diff --git a/community/gebabbel/gebabbel.changelog b/community/gebabbel/gebabbel.changelog
new file mode 100644
index 000000000..a4d1f2369
--- /dev/null
+++ b/community/gebabbel/gebabbel.changelog
@@ -0,0 +1,3 @@
+2011-02-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * gebabbel 0.4-4
+ * moved to [community] with 37 AUR votes
diff --git a/community/gebabbel/gebabbel.desktop b/community/gebabbel/gebabbel.desktop
new file mode 100644
index 000000000..027b52a83
--- /dev/null
+++ b/community/gebabbel/gebabbel.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=Gebabbel
+Exec=gebabbel
+Icon=gebabbel
+Type=Application
+Comment=GUI for gpsbabel
+Categories=Utility;Education; \ No newline at end of file
diff --git a/community/gecko-mediaplayer/PKGBUILD b/community/gecko-mediaplayer/PKGBUILD
new file mode 100644
index 000000000..728d3b057
--- /dev/null
+++ b/community/gecko-mediaplayer/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 43379 2011-03-25 11:39:12Z jelle $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: fancris3 <fancris3 at aol.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gecko-mediaplayer
+pkgver=1.0.0
+pkgrel=3
+pkgdesc='Browser plugin that uses gnome-mplayer to play media in a web browser.'
+arch=('i686' 'x86_64')
+url='http://code.google.com/p/gecko-mediaplayer/'
+license=('GPL')
+depends=("gnome-mplayer>=${pkgver}" 'dbus-glib')
+makedepends=('xulrunner' 'pkgconfig')
+replaces=('mplayer-plugin')
+source=("http://gecko-mediaplayer.googlecode.com/files/${pkgname}-${pkgver}.tar.gz" "gecko-mediaplayer-xulrunner2.0.patch")
+md5sums=('80ccb671aea90153be9f9e6dc41b7eae'
+ '36e4332f67d74605530c12a804966d4f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i $srcdir/gecko-mediaplayer-xulrunner2.0.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --without-gconf
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gecko-mediaplayer/gecko-mediaplayer-xulrunner2.0.patch b/community/gecko-mediaplayer/gecko-mediaplayer-xulrunner2.0.patch
new file mode 100644
index 000000000..59d934c89
--- /dev/null
+++ b/community/gecko-mediaplayer/gecko-mediaplayer-xulrunner2.0.patch
@@ -0,0 +1,12 @@
+Index: src/np_entry.cpp
+===================================================================
+--- src/np_entry.cpp.orig
++++ src/np_entry.cpp
+@@ -175,7 +175,6 @@ NPError OSCALL NP_Initialize(NPNetscapeF
+ pluginFuncs->javaClass = NPP_GetJavaClass();
+ #endif
+
+- NPP_Initialize();
+ #endif
+
+ return NPERR_NO_ERROR;
diff --git a/community/geda-gaf/ChangeLog b/community/geda-gaf/ChangeLog
new file mode 100644
index 000000000..3433c3f92
--- /dev/null
+++ b/community/geda-gaf/ChangeLog
@@ -0,0 +1,49 @@
+2010-12-26 Stefan Husmann <stefan-husmann@t-online.de>
+ * 1.6.1-2
+ - adopted, moved to [community]
+ - added some optional dependencies
+ - added some sed-commands for python2 compatibility
+
+2010-02-14 Jared Casper <jaredcasper@gmail.com>
+ * 1.6.1-1
+ - Version bump
+
+2009-10-10 Jared Casper <jaredcasper@gmail.com>
+ * 1.6.0-2
+ - Fixed a bug causing icon problems
+
+2009-10-05 Jared Casper <jaredcasper@gmail.com>
+ * 1.6.0-1
+ - Merged with geda-libs and renamed to geda-gaf to match up with
+ the release tarball name
+
+2009-05-03 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.3-2
+ - Added gettext dep (noted by sergej)
+ - Added '|| return 1's to configure and make commands
+ - A bit of other random cleanup of deps
+
+2009-01-03 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.3-1
+ - Version bump
+ - Fix dependencies (s/=>/>=/)
+
+2008-12-20 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.2-1
+ - Version bump
+ - Update from comments
+
+2008-09-28 Jared Casper <jaredcasper@gmail.com>
+ * 1.4.1-1
+ - Version bump
+ - Added icon cache update
+ - Added icon cache and desktop update to post_update
+
+2008-05-07 Jared Casper <jaredcasper@gmail.com>
+
+ * 1.4.0-1
+ - adopted by Jared Casper
+ - Update PKGBUILD to current standards and latest version (1.4.0)
+ - add configure options and install script to handle desktop issues
+ - added ChangeLog
+
diff --git a/community/geda-gaf/PKGBUILD b/community/geda-gaf/PKGBUILD
new file mode 100644
index 000000000..95408aeea
--- /dev/null
+++ b/community/geda-gaf/PKGBUILD
@@ -0,0 +1,36 @@
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=geda-gaf
+pkgver=1.6.2
+pkgrel=1
+pkgdesc="gEDA/gaf suite - Contains gschem, gnetlist, gsymcheck, gattrib, utilities and documentation from the gEDA project"
+arch=('i686' 'x86_64')
+url="http://www.gpleda.org"
+license=('GPL')
+depends=('gtk2' 'guile' 'libstroke' 'shared-mime-info' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'perlxml' 'flex' 'gawk')
+optdepends=('python2: for two of the commands (garchive, tragesym)'
+ 'gawk: for sw2asc')
+replaces=('geda-suite' 'geda-libs')
+install=geda-gaf.install
+source=(http://geda.seul.org/release/v1.6/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('35ae86aebc174ec1fc03863fde4c843c')
+
+build ()
+{
+ cd $srcdir/$pkgname-$pkgver/
+ ./configure --prefix=/usr --disable-update-xdg-database
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver/
+ make DESTDIR=$pkgdir/ install
+ sed -i 's+/usr/bin/env python+/usr/bin/env python2+' \
+ $pkgdir/usr/bin/garchive
+ sed -i 's+/usr/bin/python+/usr/bin/python2+' \
+ $pkgdir/usr/bin/tragesym
+ sed -i 's+/usr/bin/python+/usr/bin/python2+' \
+ $pkgdir/usr/share/doc/$pkgname/examples/lightning_detector/bom
+}
+
diff --git a/community/geda-gaf/geda-gaf.install b/community/geda-gaf/geda-gaf.install
new file mode 100644
index 000000000..ad5e587cc
--- /dev/null
+++ b/community/geda-gaf/geda-gaf.install
@@ -0,0 +1,19 @@
+post_install() {
+if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ echo Updating icon cache...
+ /usr/bin/gtk-update-icon-cache -f -t /usr/share/icons/hicolor
+fi
+if [ -x /usr/bin/update-desktop-database ]; then
+ echo Updating desktop database..
+ /usr/bin/update-desktop-database /usr/share/applications
+fi
+update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+post_install
+}
+
+post_remove() {
+post_install
+} \ No newline at end of file
diff --git a/community/gedit-plugins/PKGBUILD b/community/gedit-plugins/PKGBUILD
new file mode 100644
index 000000000..ac1c9bcbe
--- /dev/null
+++ b/community/gedit-plugins/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 37852 2011-01-18 18:27:55Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+#Contributor: Hugo Doria <hugo@archlinux.org>
+#Contributor: Sergej Chodarev <sergejx@centrum.sk>
+#Contributor: zhuqin <zhuqin83@gmail.com>
+
+pkgname=gedit-plugins
+pkgver=2.32.0
+pkgrel=2
+pkgdesc="Set of plugins for gedit"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://live.gnome.org/GeditPlugins"
+depends=('gedit' 'vte' 'gucharmap' 'python2-gconf' 'dbus-python')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.0')
+options=('!libtool' '!emptydirs')
+install=gedit-plugins.install
+source=(ftp://ftp.gnome.org/pub/gnome/sources/gedit-plugins/2.32/$pkgname-$pkgver.tar.bz2)
+sha256sums=('2ef7bf48e9500556d84ae4c2950f4eadcc3f9cb9c58c90f2c83956b0ddad1107')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --with-plugins=all
+
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=$pkgdir install
+
+ install -m755 -d $pkgdir/usr/share/gconf/schemas
+ gconf-merge-schema $pkgdir/usr/share/gconf/schemas/${pkgname}.schemas $pkgdir/etc/gconf/schemas/*.schemas
+ rm -f $pkgdir/etc/gconf/schemas/*.schemas
+}
diff --git a/community/gedit-plugins/gedit-plugins.install b/community/gedit-plugins/gedit-plugins.install
new file mode 100644
index 000000000..5a2fca03e
--- /dev/null
+++ b/community/gedit-plugins/gedit-plugins.install
@@ -0,0 +1,24 @@
+pkgname=gedit-plugins
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ /bin/true
+}
+
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gedit-plugins/libtool.patch b/community/gedit-plugins/libtool.patch
new file mode 100644
index 000000000..d00b97b36
--- /dev/null
+++ b/community/gedit-plugins/libtool.patch
@@ -0,0 +1,10 @@
+--- configure.ac 2008-10-25 11:13:17.000000000 +0200
++++ configure.ac.new 2008-11-13 20:45:39.000000000 +0100
+@@ -20,6 +20,7 @@
+ IT_PROG_INTLTOOL([0.35.0])
+
+ AC_PROG_LIBTOOL
++m4_ifdef([LT_OUTPUT],[LT_OUTPUT])
+
+ AC_ISC_POSIX
+ AC_PROG_CC
diff --git a/community/gen2shp/PKGBUILD b/community/gen2shp/PKGBUILD
new file mode 100644
index 000000000..70b85e360
--- /dev/null
+++ b/community/gen2shp/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 21508 2010-07-16 14:17:42Z tdziedzic $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=gen2shp
+pkgver=0.3.1
+pkgrel=5
+pkgdesc='Converts ArcInfo generate format to shapefile format'
+arch=('i686' 'x86_64')
+url='http://www.intevation.de/~jan/gen2shp/'
+license=('GPL')
+depends=('shapelib')
+source=("http://intevation.de/%7Ejan/gen2shp/${pkgname}-${pkgver}.tar.gz")
+md5sums=('1cf9f1c2097825ef96290f7e9a7eb195')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # fix conflicting function names
+ sed -i 's/getline/get_line/' gen2shp.c utils.c utils.h
+
+ make
+}
+
+package() {
+ install -D ${pkgname}-${pkgver}/gen2shp ${pkgdir}/usr/bin/gens2shp
+}
diff --git a/community/geos/PKGBUILD b/community/geos/PKGBUILD
new file mode 100644
index 000000000..699ee17f6
--- /dev/null
+++ b/community/geos/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 32533 2010-11-14 16:11:41Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=geos
+pkgver=3.2.2
+pkgrel=1
+pkgdesc="A C++ port of the Java Topology Suite"
+arch=('i686' 'x86_64')
+url="http://trac.osgeo.org/geos/"
+license=('LGPL')
+depends=('gcc-libs')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://download.osgeo.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('c5d264acac22fe7720f85dadc1fc17c6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/geos/geos.changelog b/community/geos/geos.changelog
new file mode 100644
index 000000000..d0a376568
--- /dev/null
+++ b/community/geos/geos.changelog
@@ -0,0 +1,5 @@
+2010-11-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 3.2.2
+
+2010-04-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 3.2.1
diff --git a/community/gerbv/ChangeLog b/community/gerbv/ChangeLog
new file mode 100644
index 000000000..3982ff4f9
--- /dev/null
+++ b/community/gerbv/ChangeLog
@@ -0,0 +1,27 @@
+2010-12-31 Stefan Husmann <stefan-husmann@t-online.de>
+ * 2.4.0-2
+ - Move to [community]
+
+2010-02-26 Jared Casper <jaredcasper@gmail.com>
+ * 2.4.0-1
+ - Version bump
+
+2009-07-11 Jared Casper <jaredcasper@gmail.com>
+ * 2.3.0-1
+ - Version bump
+
+2009-01-23 Jared Casper <jaredcasper@gmail.com>
+ * 2.2.0-1
+ - Version bump
+
+2008-09-28 Jared Casper <jaredcasper@gmail.com>
+ * 2.1.0-1
+ - Version bump
+ - Added icon cache update
+ - Added icon cache and desktop update to post_update
+
+2008-06-13 Jared Casper <jaredcasper@gmail.com>
+
+ * 2.0.1-1
+ - Version bump
+ - Added ChangeLog
diff --git a/community/gerbv/PKGBUILD b/community/gerbv/PKGBUILD
new file mode 100644
index 000000000..30a87c5aa
--- /dev/null
+++ b/community/gerbv/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=gerbv
+pkgver=2.5.0
+pkgrel=1
+pkgdesc="an open source Gerber file (RS-274X only) viewer"
+url="http://gerbv.gpleda.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gtk2' 'shared-mime-info' 'hicolor-icon-theme')
+optdepends=('gdk-pixbuf: export of images' 'cairo: for better graphics')
+install=$pkgname.install
+source=("http://downloads.sourceforge.net/gerbv/$pkgname-$pkgver.tar.gz")
+md5sums=('633a55473f62b96fff302ed1ed52c88e')
+
+build ()
+{
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --disable-update-desktop-database
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/community/gerbv/gerbv.install b/community/gerbv/gerbv.install
new file mode 100644
index 000000000..8cfe0686c
--- /dev/null
+++ b/community/gerbv/gerbv.install
@@ -0,0 +1,21 @@
+post_install() {
+if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ echo Updating icon cache...
+ /usr/bin/gtk-update-icon-cache -f -t /usr/share/icons/hicolor
+fi
+if [ -x /usr/bin/update-desktop-database ]; then
+ echo Updating desktop database..
+ /usr/bin/update-desktop-database /usr/share/applications
+fi
+}
+
+post_upgrade() {
+if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ echo Updating icon cache...
+ /usr/bin/gtk-update-icon-cache -f -t /usr/share/icons/hicolor
+fi
+if [ -x /usr/bin/update-desktop-database ]; then
+ echo Updating desktop database..
+ /usr/bin/update-desktop-database /usr/share/applications
+fi
+}
diff --git a/community/ghdl/PKGBUILD b/community/ghdl/PKGBUILD
new file mode 100644
index 000000000..24e3e88be
--- /dev/null
+++ b/community/ghdl/PKGBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
+# Contributor: Matt Portas <matt.r.portas(at)gmail(dot)com>
+
+pkgname=ghdl
+_gccver=4.3.4
+pkgver=0.29
+pkgrel=4
+arch=('i686' 'x86_64')
+pkgdesc='A complete VHDL simulator, using GCC technology.'
+url='http://ghdl.free.fr/'
+license=('GPL')
+depends=('mpfr')
+makedepends=('gcc-ada')
+source=("http://ghdl.free.fr/${pkgname}-${pkgver}.tar.bz2"
+ "ftp://gcc.gnu.org/pub/gcc/releases/gcc-${_gccver}/gcc-core-${_gccver}.tar.bz2"
+ 'gcc_pure64.patch')
+md5sums=('fd3dc7a71ba521e442bef76f48177767'
+ '575b3220bb8e7060939c429fc8608d22'
+ '22cec272f9cc2801d3cd348feaca888b')
+
+build() {
+ mv ${pkgname}-${pkgver}/vhdl gcc-${_gccver}/gcc
+
+ cd gcc-$_gccver
+
+ if [ ${CARCH} = 'x86_64' ]; then
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ fi
+
+ ./configure \
+ --prefix=/usr \
+ --infodir=/usr/share/info \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --mandir=/usr/share/man \
+ --enable-clocale=gnu \
+ --enable-languages=vhdl \
+ --enable-threads=posix \
+ --enable-__cxa_atexit \
+ --disable-bootstrap \
+ --disable-libstdcxx-pch \
+ --disable-multilib
+
+ make -j1
+}
+
+package() {
+ cd gcc-${_gccver}
+
+ make -j1 DESTDIR=${pkgdir} install
+
+ # Clean up
+ rm ${pkgdir}/usr/bin/{cpp,gcc{,bug},gcov,${CHOST}-gcc{,-${_gccver}}}
+ rm ${pkgdir}/usr/share/man/man1/{cpp,gcc,gcov}.1
+ rm ${pkgdir}/usr/share/man/man7/{fsf-funding,gfdl,gpl}.7
+ rm ${pkgdir}/usr/share/info/{cpp{,internals},gcc{,install,int},libgomp}.info
+ rm ${pkgdir}/usr/lib/lib{iberty.a,gcc_s*,gomp*,mudflap*,ssp*}
+ rm -r ${pkgdir}/usr/{include,share/locale}
+}
diff --git a/community/ghdl/gcc_pure64.patch b/community/ghdl/gcc_pure64.patch
new file mode 100644
index 000000000..8c6b08171
--- /dev/null
+++ b/community/ghdl/gcc_pure64.patch
@@ -0,0 +1,24 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,7 +49,7 @@
+ done. */
+
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/community/ghemical/PKGBUILD b/community/ghemical/PKGBUILD
new file mode 100644
index 000000000..480b0b14c
--- /dev/null
+++ b/community/ghemical/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 32528 2010-11-14 16:07:40Z xyne $
+# Maintainer: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=ghemical
+pkgver=2.99.2
+pkgrel=5
+pkgdesc="Computational chemistry package."
+license=("GPL")
+arch=(i686 x86_64)
+url="http://bioinformatics.org/ghemical/ghemical/"
+depends=('libghemical>=2.99' 'liboglappth>=0.98' 'mesa' 'libglade' 'libxmu' 'ttf-dejavu' 'gtkglext' 'openbabel')
+makedepends=('pkgconfig' 'intltool>=0.40.0' 'gettext')
+
+source=(http://bioinformatics.org/ghemical/download/current/${pkgname}-${pkgver}.tar.gz ghemical.desktop ghemical.diff)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}/
+ patch -p1 -i ${srcdir}/ghemical.diff || return 1
+
+ for i in eldview gpcview oglview p1dview p2dview; do
+ sed -i "s/courier 12/monospace 10/g" "src/${i}_wcl.cpp" || return 1
+ done
+
+ install -D -m644 ../ghemical.desktop ${pkgdir}/usr/share/applications/ghemical.desktop
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+}
+md5sums=('30f29b21d2f0649fc79823a7042131b5'
+ '14742b5efb2ccb94716b17f209adfd9e'
+ '6cd605a689aab17b8f26249a42261569')
+
diff --git a/community/ghemical/ghemical.desktop b/community/ghemical/ghemical.desktop
new file mode 100644
index 000000000..5b307b06e
--- /dev/null
+++ b/community/ghemical/ghemical.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=Ghemical
+GenericName=Computational chemistry package
+GenericName[de]=Chemisches Berechnungsprogramm
+Comment=3D molecule editor and computing program
+Comment[de]=3D Moleküleditor und Berechnungsprogramm
+Icon=/usr/share/ghemical/2.99.2/pixmaps/ghemical.png
+Exec=/usr/bin/ghemical
+Terminal=false
+Categories=Science;Chemistry;Education;
+StartupNotify=true
diff --git a/community/ghemical/ghemical.diff b/community/ghemical/ghemical.diff
new file mode 100644
index 000000000..a52d1a6b7
--- /dev/null
+++ b/community/ghemical/ghemical.diff
@@ -0,0 +1,11 @@
+--- a/src/pangofont_wcl.cpp 2008-07-31 14:00:05.000000000 +0530
++++ b/src/pangofont_wcl.cpp 2008-08-01 09:53:09.000000000 +0530
+@@ -19,6 +19,8 @@
+ /*################################################################################################*/
+
+ #include "pangofont_wcl.h"
++#include <stdlib.h>
++#include <string.h>
+
+ #include <gtk/gtkgl.h>
+
diff --git a/community/gigedit/PKGBUILD b/community/gigedit/PKGBUILD
new file mode 100644
index 000000000..9ce2cef8e
--- /dev/null
+++ b/community/gigedit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 27583 2010-09-25 09:59:21Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: svoufff <svoufff at gmail dot com>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=gigedit
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Gigasampler instrument editor"
+arch=(i686 x86_64)
+url="http://www.linuxsampler.org/"
+license=('GPL')
+depends=('linuxsampler' 'gtkmm' 'libsigc++')
+makedepends=('intltool')
+options=('!libtool' '!makeflags')
+source=(http://download.linuxsampler.org/packages/$pkgname-$pkgver.tar.gz)
+md5sums=('eadfc82118460206e8f83c104f9d2a3a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/giggle/PKGBUILD b/community/giggle/PKGBUILD
new file mode 100644
index 000000000..ecbf47b18
--- /dev/null
+++ b/community/giggle/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 28719 2010-10-04 19:55:45Z tdziedzic $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: neodreams <yanbrodeur@gmail.com>
+
+pkgname=giggle
+pkgver=0.5
+pkgrel=4
+pkgdesc="Graphical frontend for the git directory tracker (think of gitk on GTK+)."
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/giggle"
+license=('GPL')
+depends=('git' 'gtksourceview2')
+makedepends=('intltool' 'vte' 'evolution-data-server>=2.30.2.1')
+optdepends=('vte: for terminal plugin support'
+ 'evolution-data-server: details autocompletion')
+source=(http://ftp.gnome.org/pub/GNOME/sources/giggle/0.5/${pkgname}-${pkgver}.tar.bz2)
+options=(!libtool)
+install=giggle.install
+sha256sums=('2e2c70d25159d31c87d155c9f799e0f1feb30fe26fc8aaf207ca6b3bd9b2b259')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/giggle/giggle.install b/community/giggle/giggle.install
new file mode 100644
index 000000000..ec0c3f071
--- /dev/null
+++ b/community/giggle/giggle.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -f -t -q /usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/community/gimmage/ChangeLog b/community/gimmage/ChangeLog
new file mode 100644
index 000000000..31991b0b5
--- /dev/null
+++ b/community/gimmage/ChangeLog
@@ -0,0 +1,15 @@
+2007-10-23 Roman Kyrylych (Romashka) <roman@archlinux.org>
+* Rebuilt against new curl
+
+2007-07-01 Alexander Fehr (pizzapunk) <pizzapunk gmail com>
+* Updated to 0.2.3
+* Added pkgconfig as a makedepend
+
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
+2007-06-20 Georg Grabler (STiAT) <ggrabler@gmail.com>
+* Updated to 0.2.2
+* Changed to new configure / make sheme
+* Added license=('GPL')
+* Added file as a depend
diff --git a/community/gimmage/PKGBUILD b/community/gimmage/PKGBUILD
new file mode 100644
index 000000000..df4a2e149
--- /dev/null
+++ b/community/gimmage/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 18137 2010-05-31 11:25:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gimmage
+pkgver=0.2.3
+pkgrel=3
+pkgdesc="A gtkmm image viewer"
+arch=('i686' 'x86_64')
+url="http://gimmage.berlios.de"
+license=('GPL')
+depends=('gtkmm' 'curl' 'file')
+makedepends=('pkgconfig')
+source=(http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('f51cca53b3d33415e75a91cf81b6ac39')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ sed -i '1,1i#include <string.h>' src/FileManager.cpp
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gimmie/ChangeLog b/community/gimmie/ChangeLog
new file mode 100644
index 000000000..7fd5bbf99
--- /dev/null
+++ b/community/gimmie/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/gimmie/PKGBUILD b/community/gimmie/PKGBUILD
new file mode 100644
index 000000000..79ca3c262
--- /dev/null
+++ b/community/gimmie/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 38302 2011-01-25 10:22:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=gimmie
+pkgver=0.2.8
+pkgrel=13
+pkgdesc="desktop organizer which allows interaction with applications, contacts, documents, etc"
+arch=('i686' 'x86_64')
+url="http://beatniksoftware.com/gimmie/"
+license=('LGPL')
+depends=('libgnomecups' 'dbus-python' 'python2-gconf' 'python-gnomeapplet'
+ 'python-gnomedesktop' 'python2-libgnome' 'python-wnck' 'pyxdg'
+ 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('findutils' 'perlxml')
+options=(!libtool)
+install=$pkgname.install
+source=(http://www.beatniksoftware.com/gimmie/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('721b8ec80f0247e1281aeb4aa5614c2f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's@^#!.*python$@#!/usr/bin/python2@' gimmie/gimmie_{threads,bar}.py
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir="/usr/lib/$pkgname" \
+ --disable-static --disable-schemas-install \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas \
+ PYTHON=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/gimmie/gimmie.install b/community/gimmie/gimmie.install
new file mode 100644
index 000000000..015be0a4d
--- /dev/null
+++ b/community/gimmie/gimmie.install
@@ -0,0 +1,22 @@
+pkgname=gimmie
+
+post_install() {
+ gconfpkg --install $pkgname
+ xdg-icon-resource forceupdate
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gconfpkg --uninstall $pkgname
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate
+}
diff --git a/community/gimp-plugin-fblur/PKGBUILD b/community/gimp-plugin-fblur/PKGBUILD
new file mode 100644
index 000000000..1332871e0
--- /dev/null
+++ b/community/gimp-plugin-fblur/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 33116 2010-11-22 16:16:08Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=gimp-plugin-fblur
+pkgver=3.2.6
+pkgrel=2
+pkgdesc="Makes out of focus with luminosity and depth"
+arch=('i686' 'x86_64')
+url="http://registry.gimp.org/node/1444"
+license=('GPL')
+depends=('gimp' 'fftw')
+makedepends=('intltool')
+source=(http://registry.gimp.org/files/focusblur-$pkgver.tar.bz2)
+md5sums=('6196c88aeee8733bacc3c6e9ac3c6cf8')
+
+build() {
+ cd "$srcdir"/focusblur-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/focusblur-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gimp-plugin-lqr/PKGBUILD b/community/gimp-plugin-lqr/PKGBUILD
new file mode 100644
index 000000000..dc95c85c4
--- /dev/null
+++ b/community/gimp-plugin-lqr/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 30842 2010-10-21 15:11:10Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Andreas Schönfelder <passtschu at freenet dot de>
+
+pkgname=gimp-plugin-lqr
+pkgver=0.7.1
+pkgrel=3
+pkgdesc="Plugin for The GIMP providing Liquid Rescale"
+arch=('i686' 'x86_64')
+url="http://liquidrescale.wikidot.com/"
+license=('GPL')
+depends=('gimp' 'liblqr>=0.4.1')
+makedepends=('intltool')
+source=(http://liquidrescale.wikidot.com/local--files/en:download-page-sources/gimp-lqr-plugin-$pkgver.tar.bz2)
+md5sums=('d7ee28b16bdbd9f46bc9f21cf5deb487')
+
+build() {
+ cd "$srcdir"/gimp-lqr-plugin-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/gimp-lqr-plugin-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
diff --git a/community/gimp-plugin-mathmap/PKGBUILD b/community/gimp-plugin-mathmap/PKGBUILD
new file mode 100644
index 000000000..cc78ce075
--- /dev/null
+++ b/community/gimp-plugin-mathmap/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 32207 2010-11-11 16:38:32Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Serge Gielkens <gielkens.serge@mumeli.org>
+pkgname=gimp-plugin-mathmap
+pkgver=1.3.5
+pkgrel=1
+pkgdesc="A GIMP plug-in which allows distortion of images specified by mathematical formulae"
+arch=('i686' 'x86_64')
+url="http://www.complang.tuwien.ac.at/schani/mathmap/"
+license=('GPL')
+depends=('gimp' 'gsl' 'gtksourceview2' 'fftw' 'giflib')
+makedepends=('doxygen' 'unzip')
+provides=('gimp-mathmap')
+replaces=('gimp-mathmap')
+source=(http://www.complang.tuwien.ac.at/schani/mathmap/files/mathmap-${pkgver}.tar.gz \
+ fix_libnoise_build.patch)
+md5sums=('6ff66d070ea410dee1a27283d05b8beb'
+ 'eca40de0ba0e6b8d34b7d1f904bc3d18')
+
+build() {
+ cd "$srcdir/mathmap-$pkgver"
+
+ # fix problem with building libnoise
+ patch -Np1 < "$srcdir"/fix_libnoise_build.patch
+
+ make
+}
+
+package() {
+ cd "$srcdir/mathmap-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gimp-plugin-mathmap/fix_libnoise_build.patch b/community/gimp-plugin-mathmap/fix_libnoise_build.patch
new file mode 100644
index 000000000..fc81ba0d8
--- /dev/null
+++ b/community/gimp-plugin-mathmap/fix_libnoise_build.patch
@@ -0,0 +1,12 @@
+diff -rup mathmap-1.3.5/Makefile mathmap-1.3.5-fix//Makefile
+--- mathmap-1.3.5/Makefile 2009-08-23 13:56:14.000000000 +0200
++++ mathmap-1.3.5-fix//Makefile 2010-11-11 16:48:13.308941852 +0100
+@@ -178,7 +178,7 @@ backends/lazy_creator.o : backends/lazy_
+ $(CXX) $(MATHMAP_CXXFLAGS) $(FORMATDEFS) -o $@ -c backends/lazy_creator.cpp
+
+ builtins/libnoise.o : builtins/libnoise.cpp builtins/libnoise.h
+- $(CXX) $(MATHMAP_CXXFLAGS) -Ilibnoise/noise/include -o $@ -c builtins/libnoise.cpp
++ $(CXX) $(MATHMAP_CXXFLAGS) -Ilibnoise/noise/include -Ilibnoise/noise/src -o $@ -c builtins/libnoise.cpp
+
+ new_builtins.c opdefs.h opfuncs.h compiler_types.h llvm-ops.h : builtins.lisp ops.lisp
+ clisp builtins.lisp
diff --git a/community/gimp-plugin-wavelet-decompose/PKGBUILD b/community/gimp-plugin-wavelet-decompose/PKGBUILD
new file mode 100644
index 000000000..15fdf6542
--- /dev/null
+++ b/community/gimp-plugin-wavelet-decompose/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 38078 2011-01-21 15:50:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Denis Kvist <denvist@ya.ru>
+
+pkgname=gimp-plugin-wavelet-decompose
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="Wavelet decompose plugin for Gimp"
+arch=('i686' 'x86_64')
+url="http://registry.gimp.org/node/11742"
+license=('GPL')
+depends=('gimp')
+source=(http://registry.gimp.org/files/wavelet-decompose-$pkgver.tar.gz \
+ po_install.diff)
+md5sums=('e0cb8670a1c5506d08f57f2300caac24'
+ '4de9e41a535f200c2502f0dd8458c43e')
+
+build() {
+ cd "$srcdir/wavelet-decompose-$pkgver"
+ patch -Np1 < ../po_install.diff
+ make
+ install -Dvm755 src/wavelet-decompose \
+ "$pkgdir"/usr/lib/gimp/2.0/plug-ins/wavelet-decompose
+ cd po
+ make LOCALEDIR="$pkgdir"/usr/share/locale install
+}
diff --git a/community/gimp-plugin-wavelet-decompose/po_install.diff b/community/gimp-plugin-wavelet-decompose/po_install.diff
new file mode 100644
index 000000000..4b6d1a9fe
--- /dev/null
+++ b/community/gimp-plugin-wavelet-decompose/po_install.diff
@@ -0,0 +1,21 @@
+diff -c -r wavelet-denoise-0.3/po/Makefile wavelet-denoise-0.3-new/po/Makefile
+*** wavelet-denoise-0.3/po/Makefile 2008-12-14 12:19:22.000000000 +0100
+--- wavelet-denoise-0.3-new/po/Makefile 2008-12-20 14:57:51.000000000 +0100
+***************
+*** 24,30 ****
+
+ install: $(LANGUAGES)
+ for L in $(LANGUAGES); \
+! do install -v -m 0644 $$L.mo "$(LOCALEDIR)/$$L/LC_MESSAGES/gimp20-$(PLUGIN)-plug-in.mo"; \
+ done
+
+ uninstall: $(LANGUAGES)
+--- 24,31 ----
+
+ install: $(LANGUAGES)
+ for L in $(LANGUAGES); \
+! do mkdir -p "$(LOCALEDIR)/$$L/LC_MESSAGES"; \
+! install -v -m 0644 $$L.mo "$(LOCALEDIR)/$$L/LC_MESSAGES/gimp20-$(PLUGIN)-plug-in.mo"; \
+ done
+
+ uninstall: $(LANGUAGES)
diff --git a/community/gimp-plugin-wavelet-denoise/PKGBUILD b/community/gimp-plugin-wavelet-denoise/PKGBUILD
new file mode 100644
index 000000000..965c516d1
--- /dev/null
+++ b/community/gimp-plugin-wavelet-denoise/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 25244 2010-09-02 17:48:35Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=gimp-plugin-wavelet-denoise
+pkgver=0.3.1
+pkgrel=1
+pkgdesc="Tool to reduce noise in each channel of an image separately"
+arch=('i686' 'x86_64')
+url="http://registry.gimp.org/node/4235"
+license=('GPL')
+depends=('gimp')
+source=(http://registry.gimp.org/files/wavelet-denoise-$pkgver.tar.gz \
+ po_install.diff)
+md5sums=('a02862026857575cdf81b24477e42f4b'
+ '4de9e41a535f200c2502f0dd8458c43e')
+
+build() {
+ cd "$srcdir/wavelet-denoise-$pkgver"
+
+ patch -Np1 < ../po_install.diff
+ make
+}
+
+package() {
+ cd "$srcdir/wavelet-denoise-$pkgver"
+ install -Dvm755 src/wavelet-denoise \
+ "$pkgdir"/usr/lib/gimp/2.0/plug-ins/wavelet-denoise
+ cd po
+ make LOCALEDIR="$pkgdir"/usr/share/locale install
+}
diff --git a/community/gimp-plugin-wavelet-denoise/po_install.diff b/community/gimp-plugin-wavelet-denoise/po_install.diff
new file mode 100644
index 000000000..4b6d1a9fe
--- /dev/null
+++ b/community/gimp-plugin-wavelet-denoise/po_install.diff
@@ -0,0 +1,21 @@
+diff -c -r wavelet-denoise-0.3/po/Makefile wavelet-denoise-0.3-new/po/Makefile
+*** wavelet-denoise-0.3/po/Makefile 2008-12-14 12:19:22.000000000 +0100
+--- wavelet-denoise-0.3-new/po/Makefile 2008-12-20 14:57:51.000000000 +0100
+***************
+*** 24,30 ****
+
+ install: $(LANGUAGES)
+ for L in $(LANGUAGES); \
+! do install -v -m 0644 $$L.mo "$(LOCALEDIR)/$$L/LC_MESSAGES/gimp20-$(PLUGIN)-plug-in.mo"; \
+ done
+
+ uninstall: $(LANGUAGES)
+--- 24,31 ----
+
+ install: $(LANGUAGES)
+ for L in $(LANGUAGES); \
+! do mkdir -p "$(LOCALEDIR)/$$L/LC_MESSAGES"; \
+! install -v -m 0644 $$L.mo "$(LOCALEDIR)/$$L/LC_MESSAGES/gimp20-$(PLUGIN)-plug-in.mo"; \
+ done
+
+ uninstall: $(LANGUAGES)
diff --git a/community/ginac/PKGBUILD b/community/ginac/PKGBUILD
new file mode 100644
index 000000000..f66f426a0
--- /dev/null
+++ b/community/ginac/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 38846 2011-02-02 01:49:37Z ebelanger $
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=ginac
+pkgver=1.5.8
+pkgrel=2
+pkgdesc='A set of libraries that allow the creation of integrated systems that embed symbolic manipulations.'
+arch=('i686' 'x86_64')
+url='http://www.ginac.de'
+license=('GPL')
+depends=('cln')
+makedepends=('transfig')
+options=('!libtool')
+source=("ftp://ftpthep.physik.uni-mainz.de/pub/GiNaC/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('8693b3c9c3467694032ce9c8b3063d4c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr
+
+ make
+
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gitg/PKGBUILD b/community/gitg/PKGBUILD
new file mode 100644
index 000000000..d03337ab5
--- /dev/null
+++ b/community/gitg/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+# Contributor: M Rawash <mrawash@gmail.com>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+
+pkgname=gitg
+pkgver=0.1.2
+pkgrel=1
+pkgdesc='A GIT repository viewer based on GTK+'
+arch=('i686' 'x86_64')
+url='http://trac.novowork.com/gitg/'
+license=('GPL')
+depends=('gconf' 'gtksourceview2' 'git' 'desktop-file-utils' 'gsettings-desktop-schemas')
+makedepends=('intltool')
+install="${pkgname}.install"
+source=("ftp://ftp.gnome.org/pub/GNOME/sources/gitg/0.1/${pkgname}-${pkgver}.tar.bz2")
+sha256sums=('e7030b7d49169339f123c79eb6f289d9d1067fd5b248b7ce712a7b15a72e9f1a')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gitg/gitg.install b/community/gitg/gitg.install
new file mode 100644
index 000000000..787d6085e
--- /dev/null
+++ b/community/gitg/gitg.install
@@ -0,0 +1,17 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+# gitg install file
+
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+}
diff --git a/community/gkrellm/ChangeLog b/community/gkrellm/ChangeLog
new file mode 100644
index 000000000..d64831587
--- /dev/null
+++ b/community/gkrellm/ChangeLog
@@ -0,0 +1,10 @@
+2010-01-06 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+* Update to major release 2.3.4
+* Patch removed - implemented in source
+
+2007-11-29 Roman Kyrylych <roman@archlinux.org>
+* Patched for lm_sensors 3
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/gkrellm/PKGBUILD b/community/gkrellm/PKGBUILD
new file mode 100644
index 000000000..332336010
--- /dev/null
+++ b/community/gkrellm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 31931 2010-11-07 23:10:53Z lcarlier $
+# Contributor: Matt Smith (Majik) <darkknight@helpdesk.zaz.net>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=gkrellm
+pkgver=2.3.5
+pkgrel=1
+pkgdesc="System monitor package for GTK2"
+arch=('i686' 'x86_64')
+url="http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html"
+license=('GPL3')
+depends=('gtk2' 'openssl' 'libsm' 'lm_sensors')
+makedepends=('gettext')
+backup=('etc/gkrellmd.conf')
+source=(http://members.dslextreme.com/users/billw/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('e43a9416a6975e3be63d591bdeb33b04')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make LOCALEDIR=/usr/share/locale
+ make DESTDIR=${pkgdir} PREFIX=/usr install
+ install -D -m644 "${srcdir}/${pkgname}-${pkgver}/server/gkrellmd.conf" "${pkgdir}/etc/gkrellmd.conf"
+}
diff --git a/community/gl-117/PKGBUILD b/community/gl-117/PKGBUILD
new file mode 100644
index 000000000..997649912
--- /dev/null
+++ b/community/gl-117/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 18153 2010-05-31 13:21:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: andrewski
+
+pkgname=gl-117
+pkgver=1.3.2
+pkgrel=4
+pkgdesc="An action flight simulator"
+arch=('i686' 'x86_64')
+url="http://www.heptargon.de/gl-117/gl-117.html"
+license=("GPL")
+depends=('freeglut' 'sdl_mixer' 'libxmu' 'libxi')
+source=(http://downloads.sourceforge.net/project/gl-117/gl-117/GL-117%20Source/gl-117-$pkgver-src.tar.bz2
+ gl-117.desktop
+ gl-117.png)
+md5sums=('aad53c5531943529fd769fae4efeae02'
+ 'db985c5188f1706677b12dc80b797779'
+ '6975de5572084b78d3ec1a748de85164')
+
+build() {
+ cd $srcdir/gl-117-$pkgver-src
+ # This will link everything to these three libraries,
+ # but it wouldn't work otherwise. The devs have been contacted.
+ LDFLAGS="-lX11 -lXi -lXmu" ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -D -m0644 $srcdir/gl-117.desktop $pkgdir/usr/share/applications/gl-117.desktop && \
+ install -D -m0644 $srcdir/gl-117.png $pkgdir/usr/share/pixmaps/gl-117.png
+}
diff --git a/community/gl-117/gl-117.desktop b/community/gl-117/gl-117.desktop
new file mode 100644
index 000000000..59748fb86
--- /dev/null
+++ b/community/gl-117/gl-117.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Type=Application
+Name=GL-117
+Exec=gl-117
+Icon=gl-117
diff --git a/community/gl-117/gl-117.png b/community/gl-117/gl-117.png
new file mode 100644
index 000000000..8bbdba58b
--- /dev/null
+++ b/community/gl-117/gl-117.png
Binary files differ
diff --git a/community/glipper-old/PKGBUILD b/community/glipper-old/PKGBUILD
new file mode 100644
index 000000000..f1b00c666
--- /dev/null
+++ b/community/glipper-old/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 8877 2010-01-22 03:13:44Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Pbl Gomez <pblgomez@gmail.com>
+
+pkgname=glipper-old
+pkgver=0.95.1
+pkgrel=3
+pkgdesc="Gnome clipboard for nongnome desktop"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/glipper/"
+license=("GPL")
+depends=(libgnome libglade)
+makedepends=(pkgconfig perlxml gnome-doc-utils)
+source=(http://downloads.sourceforge.net/sourceforge/glipper/glipper-$pkgver.tar.gz \
+ arch.patch)
+md5sums=('aa6524f59342d72fee8bed36e6267746'
+ 'e9e9581330bbc1fe0a28fa349de02bda')
+
+build() {
+ cd $startdir/src/glipper-$pkgver
+
+ ln -s -f /usr/share/aclocal/gnome-doc-utils.m4 m4/gnome-doc-utils.m4
+ ln -s -f /usr/share/gnome-doc-utils/gnome-doc-utils.make gnome-doc-utils.make
+
+ patch -Np1 <../arch.patch && \
+ mv data/glipper.png data/glipper-old.png && \
+ mv help/C/glipper.xml help/C/glipper-old.xml && \
+ mv data/glipper-properties.glade data/glipper-old-properties.glade && \
+ mv data/glipper.desktop.in data/glipper-old.desktop.in || return 1
+
+ ./configure --prefix=/usr --program-suffix=-old --disable-gnome || return 1
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ rm -rf $startdir/pkg/usr/share/gnome
+}
diff --git a/community/glipper-old/arch.patch b/community/glipper-old/arch.patch
new file mode 100644
index 000000000..6045ad75c
--- /dev/null
+++ b/community/glipper-old/arch.patch
@@ -0,0 +1,266 @@
+diff -wbBur glipper-0.95.1/configure glipper-0.95.1.my/configure
+--- glipper-0.95.1/configure 2006-11-21 03:42:45.000000000 +0300
++++ glipper-0.95.1.my/configure 2007-08-09 13:27:44.000000000 +0400
+@@ -557,10 +557,10 @@
+ SHELL=${CONFIG_SHELL-/bin/sh}
+
+ # Identity of this package.
+-PACKAGE_NAME='glipper'
+-PACKAGE_TARNAME='glipper'
++PACKAGE_NAME='glipper-old'
++PACKAGE_TARNAME='glipper-old'
+ PACKAGE_VERSION='0.95.1'
+-PACKAGE_STRING='glipper 0.95.1'
++PACKAGE_STRING='glipper-old 0.95.1'
+ PACKAGE_BUGREPORT='svenrech@gmx.de'
+
+ ac_unique_file="src/main.c"
+@@ -2134,7 +2134,7 @@
+
+
+ # Define the identity of the package.
+- PACKAGE='glipper'
++ PACKAGE='glipper-old'
+ VERSION='0.95.1'
+
+
+@@ -2301,7 +2301,7 @@
+ # GETTEXT
+ ###########################################################################
+
+-GETTEXT_PACKAGE="glipper"
++GETTEXT_PACKAGE="glipper-old"
+
+
+ cat >>confdefs.h <<_ACEOF
+diff -wbBur glipper-0.95.1/configure.in glipper-0.95.1.my/configure.in
+--- glipper-0.95.1/configure.in 2006-11-21 03:59:24.000000000 +0300
++++ glipper-0.95.1.my/configure.in 2007-08-09 13:35:04.000000000 +0400
+@@ -5,7 +5,7 @@
+ AC_PREREQ(2.5)
+
+ # Set VERSION number here
+-AC_INIT(glipper, [0.95.1], [svenrech@gmx.de])
++AC_INIT(glipper-old, [0.95.1], [svenrech@gmx.de])
+ AC_CONFIG_SRCDIR([src/main.c])
+ AC_CONFIG_HEADER([config.h])
+ AM_INIT_AUTOMAKE
+@@ -29,7 +29,7 @@
+ # GETTEXT
+ ###########################################################################
+
+-GETTEXT_PACKAGE="glipper"
++GETTEXT_PACKAGE="glipper-old"
+ AC_SUBST(GETTEXT_PACKAGE)
+ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [gettext package])
+
+diff -wbBur glipper-0.95.1/data/glipper.desktop.in glipper-0.95.1.my/data/glipper.desktop.in
+--- glipper-0.95.1/data/glipper.desktop.in 2006-06-26 23:46:04.000000000 +0400
++++ glipper-0.95.1.my/data/glipper.desktop.in 2007-08-09 13:04:01.000000000 +0400
+@@ -3,9 +3,9 @@
+ _Name=Glipper
+ _Comment=Clipboard Manager
+ Categories=GTK;GNOME;Application;Utility;
+-TryExec=glipper
+-Exec=glipper
+-Icon=glipper.png
++TryExec=glipper-old
++Exec=glipper-old
++Icon=glipper-old.png
+ Terminal=false
+ Type=Application
+ StartupNotify=false
+diff -wbBur glipper-0.95.1/data/Makefile.am glipper-0.95.1.my/data/Makefile.am
+--- glipper-0.95.1/data/Makefile.am 2006-06-26 23:46:08.000000000 +0400
++++ glipper-0.95.1.my/data/Makefile.am 2007-08-09 13:33:06.000000000 +0400
+@@ -1,13 +1,13 @@
+ desktopdir = $(datadir)/applications
+-desktop_in_files = glipper.desktop.in
++desktop_in_files = glipper-old.desktop.in
+ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+ @INTLTOOL_DESKTOP_RULE@
+
+ icondir = $(datadir)/pixmaps
+-icon_DATA = glipper.png
++icon_DATA = glipper-old.png
+
+-gladedir = $(datadir)/glipper
+-glade_DATA = glipper-properties.glade
++gladedir = $(datadir)/glipper-old
++glade_DATA = glipper-old-properties.glade
+
+ EXTRA_DIST = \
+ $(desktop_in_files) \
+diff -wbBur glipper-0.95.1/data/Makefile.in glipper-0.95.1.my/data/Makefile.in
+--- glipper-0.95.1/data/Makefile.in 2006-11-21 03:42:44.000000000 +0300
++++ glipper-0.95.1.my/data/Makefile.in 2007-08-09 13:16:54.000000000 +0400
+@@ -214,12 +214,12 @@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ desktopdir = $(datadir)/applications
+-desktop_in_files = glipper.desktop.in
++desktop_in_files = glipper-old.desktop.in
+ desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+ icondir = $(datadir)/pixmaps
+-icon_DATA = glipper.png
+-gladedir = $(datadir)/glipper
+-glade_DATA = glipper-properties.glade
++icon_DATA = glipper-old.png
++gladedir = $(datadir)/glipper-old
++glade_DATA = glipper-old-properties.glade
+ EXTRA_DIST = \
+ $(desktop_in_files) \
+ $(icon_DATA) \
+diff -wbBur glipper-0.95.1/help/Makefile.am glipper-0.95.1.my/help/Makefile.am
+--- glipper-0.95.1/help/Makefile.am 2006-11-15 00:00:59.000000000 +0300
++++ glipper-0.95.1.my/help/Makefile.am 2007-08-09 13:33:10.000000000 +0400
+@@ -1,7 +1,7 @@
+ include $(top_srcdir)/gnome-doc-utils.make
+ dist-hook: doc-dist-hook
+
+-DOC_MODULE = glipper
++DOC_MODULE = glipper-old
+ DOC_ENTITIES =
+ DOC_INCLUDES =
+ DOC_FIGURES =
+diff -wbBur glipper-0.95.1/help/Makefile.in glipper-0.95.1.my/help/Makefile.in
+--- glipper-0.95.1/help/Makefile.in 2006-11-21 03:42:44.000000000 +0300
++++ glipper-0.95.1.my/help/Makefile.in 2007-08-09 13:04:40.000000000 +0400
+@@ -374,7 +374,7 @@
+ _clean_dsk = $(if $(_DOC_DSK_IN),clean-doc-dsk)
+ _clean_lc = $(if $(_DOC_REAL_LINGUAS),clean-doc-lc)
+ _clean_dir = $(if $(DOC_MODULE),clean-doc-dir)
+-DOC_MODULE = glipper
++DOC_MODULE = glipper-old
+ DOC_ENTITIES =
+ DOC_INCLUDES =
+ DOC_FIGURES =
+diff -wbBur glipper-0.95.1/po/POTFILES.in glipper-0.95.1.my/po/POTFILES.in
+--- glipper-0.95.1/po/POTFILES.in 2006-06-26 23:46:14.000000000 +0400
++++ glipper-0.95.1.my/po/POTFILES.in 2007-08-09 13:17:22.000000000 +0400
+@@ -1,4 +1,4 @@
+ src/main.c
+ src/preferences.c
+-data/glipper-properties.glade
+-data/glipper.desktop.in
++data/glipper-old-properties.glade
++data/glipper-old.desktop.in
+diff -wbBur glipper-0.95.1/src/main.c glipper-0.95.1.my/src/main.c
+--- glipper-0.95.1/src/main.c 2006-11-21 03:05:53.000000000 +0300
++++ glipper-0.95.1.my/src/main.c 2007-08-09 13:46:53.000000000 +0400
+@@ -141,7 +141,7 @@
+ GError* pix_error = NULL;
+
+ menuHeader = gtk_image_menu_item_new_with_label("");
+- pixbuf = gdk_pixbuf_new_from_file(PIXMAPDIR"/glipper.png", &pix_error);
++ pixbuf = gdk_pixbuf_new_from_file(PIXMAPDIR"/glipper-old.png", &pix_error);
+
+ //In case we cannot load icon, display error message and exit
+ if (pix_error != NULL)
+@@ -312,7 +312,7 @@
+
+ error = NULL;
+ //gnome_help_display ("glipper", NULL, &error);
+- gnome_help_display_desktop(NULL, "glipper", "glipper",
++ gnome_help_display_desktop(NULL, "glipper-old", "glipper-old",
+ section, &error);
+
+ if (error)
+@@ -337,7 +337,7 @@
+
+ //Load trayicon
+ TrayIcon = (GtkWidget*)egg_tray_icon_new("GLIPPER");
+- pixbuf = gdk_pixbuf_new_from_file(PIXMAPDIR"/glipper.png", &pix_error);
++ pixbuf = gdk_pixbuf_new_from_file(PIXMAPDIR"/glipper-old.png", &pix_error);
+
+ //In case we cannot load icon, display error message and exit
+ if (pix_error != NULL)
+@@ -392,7 +392,7 @@
+ "license", license,
+ "name", "Glipper",
+ "comments", _("Clipboardmanager for Gnome"),
+- "logo", gdk_pixbuf_new_from_file(PIXMAPDIR"/glipper.png", &pix_error),
++ "logo", gdk_pixbuf_new_from_file(PIXMAPDIR"/glipper-old.png", &pix_error),
+ "website", "http://glipper.sourceforge.net/",
+ "version", VERSION,
+ NULL);
+@@ -442,7 +442,7 @@
+ //trys to open (or create) a file in "~/.glipper" for writing purposes:
+ FILE* writeGlipperFile(char* filename)
+ {
+- gchar* directory = g_build_path("/", g_get_home_dir(), ".glipper", NULL);
++ gchar* directory = g_build_path("/", g_get_home_dir(), ".glipper-old", NULL);
+ gchar* path = g_build_filename(directory, filename, NULL);
+ FILE* file = fopen(path, "w");
+ if (file == NULL)
+@@ -453,7 +453,7 @@
+ g_warning("Can't open or create file %s!", file);
+ }
+ else
+- g_warning ("Can't create directory '.glipper' in user's home directory!");
++ g_warning ("Can't create directory '.glipper-old' in user's home directory!");
+ g_free(directory);
+ g_free(path);
+ return file;
+@@ -480,7 +480,7 @@
+
+ void readHistory()
+ {
+- gchar* path= g_build_filename(g_get_home_dir(), ".glipper/history", NULL);
++ gchar* path= g_build_filename(g_get_home_dir(), ".glipper-old/history", NULL);
+ FILE* histFile = fopen(path, "r");
+ g_free(path);
+ if (histFile != 0)
+@@ -501,7 +501,7 @@
+
+ void readPreferences()
+ {
+- gchar* path= g_build_filename(g_get_home_dir(), ".glipper/prefs", NULL);
++ gchar* path= g_build_filename(g_get_home_dir(), ".glipper-old/prefs", NULL);
+ FILE* prefFile = fopen(path, "r");
+ g_free(path);
+ free(keyComb);
+@@ -599,7 +599,7 @@
+
+ //Init GTK+ (and optionally GNOME libs)
+ #ifndef DISABLE_GNOME
+- gnome_program_init("glipper", VERSION, NULL, argc, argv,
++ gnome_program_init("glipper-old", VERSION, NULL, argc, argv,
+ NULL, NULL, NULL);
+ #endif /*DISABLE_GNOME*/
+ gtk_init (&argc, &argv);
+diff -wbBur glipper-0.95.1/src/Makefile.am glipper-0.95.1.my/src/Makefile.am
+--- glipper-0.95.1/src/Makefile.am 2006-11-14 23:28:11.000000000 +0300
++++ glipper-0.95.1.my/src/Makefile.am 2007-08-09 13:32:44.000000000 +0400
+@@ -1,6 +1,6 @@
+ AM_CFLAGS = $(FR_CFLAGS) -I$(top_srcdir) \
+ -DGLIPPERLOCALEDIR=\""$(glipperlocaledir)"\" -DPIXMAPDIR=\""$(datadir)/pixmaps"\" \
+- -DGLADEDIR=\""$(datadir)/glipper"\"
++ -DGLADEDIR=\""$(datadir)/glipper-old"\"
+
+ noinst_PROGRAMS=glipper
+ bin_PROGRAMS=glipper
+diff -wbBur glipper-0.95.1/src/Makefile.in glipper-0.95.1.my/src/Makefile.in
+--- glipper-0.95.1/src/Makefile.in 2006-11-21 03:42:44.000000000 +0300
++++ glipper-0.95.1.my/src/Makefile.in 2007-08-09 13:03:48.000000000 +0400
+@@ -223,7 +223,7 @@
+ target_alias = @target_alias@
+ AM_CFLAGS = $(FR_CFLAGS) -I$(top_srcdir) \
+ -DGLIPPERLOCALEDIR=\""$(glipperlocaledir)"\" -DPIXMAPDIR=\""$(datadir)/pixmaps"\" \
+- -DGLADEDIR=\""$(datadir)/glipper"\"
++ -DGLADEDIR=\""$(datadir)/glipper-old"\"
+
+ glipper_SOURCES = \
+ main.c main.h preferences.c preferences.h \
+diff -wbBur glipper-0.95.1/src/preferences.c glipper-0.95.1.my/src/preferences.c
+--- glipper-0.95.1/src/preferences.c 2006-07-15 17:27:49.000000000 +0400
++++ glipper-0.95.1.my/src/preferences.c 2007-08-09 13:17:31.000000000 +0400
+@@ -8,7 +8,7 @@
+ #include "main.h"
+ #include "utils/glipper-i18n.h"
+
+-#define GLADE_XML_FILE "glipper-properties.glade"
++#define GLADE_XML_FILE "glipper-old-properties.glade"
+
+ GtkWidget* historyLength;
+ GtkWidget* itemLength;
diff --git a/community/glipper/PKGBUILD b/community/glipper/PKGBUILD
new file mode 100644
index 000000000..d95fc83c3
--- /dev/null
+++ b/community/glipper/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 38218 2011-01-23 22:09:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Pbl Gomez <pblgomez@gmail.com>
+
+pkgname=glipper
+pkgver=1.0
+pkgrel=11
+pkgdesc="Clipboard for gnome desktop"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/glipper/"
+license=("GPL")
+depends=('python2-gconf' 'python-gnomeapplet' 'python2-libgnome' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'perlxml' 'gnome-doc-utils')
+optdepends=('pycrypto: encrypted connection support in Network plugin')
+install=glipper.install
+options=(!emptydirs !libtool)
+source=(http://downloads.sourceforge.net/sourceforge/glipper/$pkgname-$pkgver.tar.bz2)
+md5sums=('95315e62b950877611d4645a0b47e1ba')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=$pkgdir install
+
+ sed -i "s|#!/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $pkgdir/usr/lib/glipper/glipper
+
+ install -dm755 ${pkgdir}/usr/share/gconf/schemas
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas $pkgdir/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/community/glipper/glipper.install b/community/glipper/glipper.install
new file mode 100644
index 000000000..72012f6cd
--- /dev/null
+++ b/community/glipper/glipper.install
@@ -0,0 +1,30 @@
+pkgname=glipper
+
+post_install() {
+ export GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+ /usr/bin/gconftool-2 --makefile-install-rule usr/share/gconf/schemas/${pkgname}.schemas >/dev/null
+ /usr/bin/gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ echo "If you use Gnome, read http://glipper.sourceforge.net/ and remove ~/.glipper"
+ echo "If you don't use Gnome, use glipper-old package"
+ /bin/true
+}
+
+post_upgrade() {
+ /usr/bin/gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_remove() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=(usr/share/gconf/schemas/${pkgname}.schemas)
+ elif [ -f opt/gnome/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=(opt/gnome/share/gconf/schemas/${pkgname}.schemas)
+ else
+ schemas=(`pacman -Ql $pkgname | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'`)
+ fi
+ export GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+ usr/bin/gconftool-2 --makefile-uninstall-rule ${schemas[@]} >/dev/null
+}
+
diff --git a/community/glitz/PKGBUILD b/community/glitz/PKGBUILD
new file mode 100644
index 000000000..8aaa876c0
--- /dev/null
+++ b/community/glitz/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 21067 2010-07-13 21:56:11Z lcarlier $
+
+pkgname=glitz
+pkgver=0.5.6
+pkgrel=2
+pkgdesc="OpenGL image compositing library"
+arch=('i686' 'x86_64')
+url="http://cairographics.org/"
+license=('BSD')
+depends=('libgl')
+makedepends=('mesa')
+options=('!libtool')
+source=(http://cairographics.org/snapshots/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c507f140ecccc06aed8888c958edda4c')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
+
diff --git a/community/gliv/PKGBUILD b/community/gliv/PKGBUILD
new file mode 100644
index 000000000..9875b6eb0
--- /dev/null
+++ b/community/gliv/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Ewoud Nuyts <ewoud.nuyts@gmail.com>
+
+pkgname=gliv
+pkgver=1.9.7
+pkgrel=1
+pkgdesc="OpenGL image viewer"
+arch=('i686' 'x86_64')
+url="http://guichaz.free.fr/gliv/"
+license=('GPL')
+depends=('gtkglext')
+changelog=$pkgname.changelog
+source=(http://guichaz.free.fr/gliv/files/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('5f0fafaf41651da8882e88b3df062d02')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ sed -i 's:pixmaps |:pixmaps $(datadir)/applications |:;s:vendor=gnome:vendor=gnome --dir=$(datadir)/applications:' Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gliv/gliv.changelog b/community/gliv/gliv.changelog
new file mode 100644
index 000000000..9b37dd5a9
--- /dev/null
+++ b/community/gliv/gliv.changelog
@@ -0,0 +1,5 @@
+2010-12-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * gliv-1.9.7-1
+
+2010-11-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#21710 fixed in gliv-1.9.6-3
diff --git a/community/glob2/PKGBUILD b/community/glob2/PKGBUILD
new file mode 100644
index 000000000..c6606dc2d
--- /dev/null
+++ b/community/glob2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 40961 2011-03-02 21:23:41Z lcarlier $
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+
+pkgname=glob2
+pkgver=0.9.4.4
+pkgrel=7
+pkgdesc="RTS game which minimizes micro-management by automatically assigning tasks to units"
+arch=('i686' 'x86_64')
+url="http://www.globulation2.org/"
+license=('GPL3')
+depends=('boost-libs>=1.46' 'sdl_net' 'sdl_image' 'sdl_ttf' 'libvorbis' 'speex' 'mesa' \
+ 'fribidi' 'desktop-file-utils')
+makedepends=('scons' 'boost>=1.46')
+install=glob2.install
+source=(http://dl.sv.nongnu.org/releases/${pkgname}/0.9.4/${pkgname}-${pkgver}.tar.gz \
+ glob2-0.9.4.1-gcc44.patch)
+md5sums=('94c527325f355a29a2807f8f18a6e6a8' 'b13cb1f73ece23bfc6413773678d583e')
+sha1sums=('14aa8d840ef5f95a9af591789082fe2322fa8cad' '3e5ae81d85a727387a7049c3a0dfb3db930391b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i "$srcdir/glob2-0.9.4.1-gcc44.patch"
+ scons BINDIR="${pkgdir}/usr/bin" INSTALLDIR="${pkgdir}/usr/share"
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ scons install
+ find "${pkgdir}/usr/share" -type f -exec chmod 644 '{}' \;
+ install -Dm644 data/icons/glob2-icon-48x48.png "${pkgdir}/usr/share/pixmaps/glob2-icon-48x48.png"
+}
diff --git a/community/glob2/glob2-0.9.4.1-gcc44.patch b/community/glob2/glob2-0.9.4.1-gcc44.patch
new file mode 100644
index 000000000..b425b25ec
--- /dev/null
+++ b/community/glob2/glob2-0.9.4.1-gcc44.patch
@@ -0,0 +1,87 @@
+diff -up libgag/include/StreamBackend.h.orig libgag/include/StreamBackend.h
+--- libgag/include/StreamBackend.h.orig 2009-03-18 03:46:47.000000000 +0100
++++ libgag/include/StreamBackend.h 2009-06-20 14:21:10.000000000 +0200
+@@ -43,7 +43,7 @@ namespace GAGCore
+ virtual void flush(void) = 0;
+ virtual void read(void *data, size_t size) = 0;
+ virtual void putc(int c) = 0;
+- virtual int getc(void) = 0;
++ virtual int get_c(void) = 0;
+ virtual void seekFromStart(int displacement) = 0;
+ virtual void seekFromEnd(int displacement) = 0;
+ virtual void seekRelative(int displacement) = 0;
+@@ -67,7 +67,7 @@ namespace GAGCore
+ virtual void flush(void) { assert(fp); fflush(fp); }
+ virtual void read(void *data, size_t size) { assert(fp); fread(data, size, 1, fp); }
+ virtual void putc(int c) { assert(fp); fputc(c, fp); }
+- virtual int getc(void) { assert(fp); return fgetc(fp); }
++ virtual int get_c(void) { assert(fp); return fgetc(fp); }
+ virtual void seekFromStart(int displacement) { assert(fp); fseek(fp, displacement, SEEK_SET); }
+ virtual void seekFromEnd(int displacement) { assert(fp); fseek(fp, displacement, SEEK_END); }
+ virtual void seekRelative(int displacement) { assert(fp); fseek(fp, displacement, SEEK_CUR); }
+@@ -92,7 +92,7 @@ namespace GAGCore
+ virtual void flush(void);
+ virtual void read(void *data, size_t size);
+ virtual void putc(int c);
+- virtual int getc(void);
++ virtual int get_c(void);
+ virtual void seekFromStart(int displacement);
+ virtual void seekFromEnd(int displacement);
+ virtual void seekRelative(int displacement);
+@@ -117,7 +117,7 @@ namespace GAGCore
+ virtual void flush(void) { }
+ virtual void read(void *data, size_t size);
+ virtual void putc(int c);
+- virtual int getc(void);
++ virtual int get_c(void);
+ virtual void seekFromStart(int displacement);
+ virtual void seekFromEnd(int displacement);
+ virtual void seekRelative(int displacement);
+diff -up libgag/src/StreamBackend.cpp.orig libgag/src/StreamBackend.cpp
+--- libgag/src/StreamBackend.cpp.orig 2009-03-18 03:46:47.000000000 +0100
++++ libgag/src/StreamBackend.cpp 2009-06-20 14:21:53.000000000 +0200
+@@ -75,9 +75,9 @@ namespace GAGCore
+ buffer->putc(c);
+ }
+
+- int ZLibStreamBackend::getc(void)
++ int ZLibStreamBackend::get_c(void)
+ {
+- return buffer->getc();
++ return buffer->get_c();
+ }
+
+ void ZLibStreamBackend::seekFromStart(int displacement)
+@@ -147,7 +147,7 @@ namespace GAGCore
+ write(&ch, 1);
+ }
+
+- int MemoryStreamBackend::getc(void)
++ int MemoryStreamBackend::get_c(void)
+ {
+ Uint8 ch;
+ read(&ch, 1);
+diff -up libgag/src/Stream.cpp.orig libgag/src/Stream.cpp
+--- libgag/src/Stream.cpp.orig 2009-03-18 03:46:47.000000000 +0100
++++ libgag/src/Stream.cpp 2009-06-20 14:21:35.000000000 +0200
+@@ -60,7 +60,7 @@ namespace GAGCore
+ std::string s;
+ while (1)
+ {
+- int c = backend->getc();
++ int c = backend->get_c();
+ if(c=='\r')
+ continue;
+ if ((c >= 0) && (c != '\n'))
+diff -up libgag/src/TextStream.cpp.orig libgag/src/TextStream.cpp
+--- libgag/src/TextStream.cpp.orig 2009-03-18 03:46:47.000000000 +0100
++++ libgag/src/TextStream.cpp 2009-06-20 14:21:22.000000000 +0200
+@@ -150,7 +150,7 @@ namespace GAGCore
+
+ int nextChar(void)
+ {
+- next = stream->getc();
++ next = stream->get_c();
+ if (next == '\n')
+ {
+ column = 0;
diff --git a/community/glob2/glob2.install b/community/glob2/glob2.install
new file mode 100644
index 000000000..7463b6e76
--- /dev/null
+++ b/community/glob2/glob2.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
diff --git a/community/glom/PKGBUILD b/community/glom/PKGBUILD
new file mode 100644
index 000000000..e0e583718
--- /dev/null
+++ b/community/glom/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 41025 2011-03-03 06:39:10Z svenstaro $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=glom
+pkgver=1.16.1
+pkgrel=5
+pkgdesc="An easy-to-use database designer and user interface"
+arch=('i686' 'x86_64')
+url="http://www.glom.org/"
+license=('GPL')
+depends=('libgdamm>=3.99.21' 'libxml++>=2.30.1' 'gconfmm>=2.28.2' 'pygtk'
+ 'python2-gda' 'libgtksourceviewmm2' 'goocanvasmm' 'libepc'
+ 'iso-codes' 'postgresql' 'hicolor-icon-theme' 'shared-mime-info'
+ 'gtkmm>=2.22.0' 'boost-libs>=1.45' 'gettext')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.2' 'boost>=1.45' 'python-sphinx' 'glibmm-docs')
+options=('!libtool')
+install=$pkgname.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/glom/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+md5sums=('9ae56e0886f14a48cedaef9beb9c3cc9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --with-postgres-utils=/usr/bin \
+ --disable-scrollkeeper \
+ --disable-update-mime-database \
+ --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/glom/glom.install b/community/glom/glom.install
new file mode 100644
index 000000000..1ad77f9aa
--- /dev/null
+++ b/community/glom/glom.install
@@ -0,0 +1,15 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ 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/hicolor
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
diff --git a/community/gloox/PKGBUILD b/community/gloox/PKGBUILD
new file mode 100644
index 000000000..045076658
--- /dev/null
+++ b/community/gloox/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 7908 2010-01-12 10:36:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=gloox
+pkgver=1.0
+pkgrel=1
+pkgdesc="C++ libraries for development of Jabber client/component/server"
+arch=(i686 x86_64)
+url="http://camaya.net/gloox"
+options=('!libtool')
+license=("GPL")
+depends=('libidn' 'gnutls')
+source=(http://camaya.net/download/gloox-$pkgver.tar.bz2)
+md5sums=('f8eacf1c6476e0a309b453fd04f90e31')
+
+build() {
+ cd $startdir/src/gloox-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/glpng/Makefile b/community/glpng/Makefile
new file mode 100644
index 000000000..d6772798f
--- /dev/null
+++ b/community/glpng/Makefile
@@ -0,0 +1,30 @@
+CFLAGS+=-fPIC -Iinclude
+LDFLAGS+=-lpng -lGL
+SHAREDLIBFLAGS=-shared
+DESTDIR=/usr/local
+LIB=lib
+
+all: libglpng.a libglpng.so.1.45
+
+libglpng.a: glpng.o
+ ar rv $@ $<
+
+libglpng.so.1.45: glpng.o
+ gcc $(CFLAGS) $(SHAREDLIBFLAGS) -Wl,-soname=libglpng.so.1 -Wl,--whole-archive $< -Wl,--no-whole-archive $(LDFLAGS) -o $@
+
+glpng.o: src/glpng.c
+ gcc $(CFLAGS) -c $<
+
+clean:
+ rm glpng.o libglpng.*
+
+install:
+ for i in include include/GL $(LIB); do \
+ install -m 755 -d $(DESTDIR)/$$i; \
+ done
+ install -p -m 644 include/GL/glpng.h $(DESTDIR)/include/GL
+ install -m 755 libglpng.* $(DESTDIR)/$(LIB)
+ ln -s libglpng.so.1.45 $(DESTDIR)/$(LIB)/libglpng.so.1
+ ln -s libglpng.so.1.45 $(DESTDIR)/$(LIB)/libglpng.so
+
+.PHONY: clean install
diff --git a/community/glpng/PKGBUILD b/community/glpng/PKGBUILD
new file mode 100644
index 000000000..83ae13afe
--- /dev/null
+++ b/community/glpng/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=glpng
+pkgver=1.45
+pkgrel=3
+pkgdesc="Toolkit for loading PNG images as OpenGL textures"
+arch=('i686' 'x86_64')
+url="http://www.fifi.org/doc/libglpng-dev/glpng.html"
+license=('custom')
+depends=('libpng' 'zlib')
+makedepends=('mesa')
+source=(http://ftp.de.debian.org/debian/pool/main/libg/libglpng/libglpng_${pkgver}.orig.tar.gz
+ Makefile
+ libglpng-1.45-debian.patch
+ libpng14.patch
+ license)
+md5sums=('9e0daad8e39fbf3179c73c0d3f74f104'
+ '0b24e9cb527d4ed1c43dd743d49d2b54'
+ '51ee01e61a70d91977b791a03e579b0f'
+ '50e00b9de0b376d7fb5fd812dc7beac9'
+ 'cd066652a6e5dbd7c1fc303b8e03417a')
+
+build() {
+ cd $srcdir/libglpng-1.45.orig
+ patch -Np1 -i $srcdir/libglpng-1.45-debian.patch
+ patch -Np1 -i $srcdir/libpng14.patch
+
+ make -f $srcdir/Makefile libglpng.so.1.45
+ make -f $srcdir/Makefile DESTDIR=$pkgdir/usr install
+
+ install -Dm644 $srcdir/license \
+ $pkgdir/usr/share/licenses/glpng/license
+}
diff --git a/community/glpng/libglpng-1.45-debian.patch b/community/glpng/libglpng-1.45-debian.patch
new file mode 100644
index 000000000..062bf6364
--- /dev/null
+++ b/community/glpng/libglpng-1.45-debian.patch
@@ -0,0 +1,29 @@
+diff -up libglpng-1.45.orig libglpng-1.45
+diff -up libglpng-1.45.orig/src/glpng.c.orig libglpng-1.45.orig/src/glpng.c
+--- libglpng-1.45.orig/src/glpng.c.orig 2000-07-10 21:27:10.000000000 +0200
++++ libglpng-1.45.orig/src/glpng.c 2009-05-17 23:02:38.000000000 +0200
+@@ -29,7 +29,7 @@
+ #include <GL/gl.h>
+ #include <stdlib.h>
+ #include <math.h>
+-#include "png/png.h"
++#include <png.h>
+
+ /* Used to decide if GL/gl.h supports the paletted extension */
+ #ifdef GL_COLOR_INDEX1_EXT
+@@ -113,6 +113,7 @@ static void Resize(int components, const
+ }
+ }
+
++#ifdef _WIN32
+ static int ExtSupported(const char *x) {
+ static const GLubyte *ext = NULL;
+ const char *c;
+@@ -129,6 +130,7 @@ static int ExtSupported(const char *x) {
+
+ return 0;
+ }
++#endif
+
+ #define GET(o) ((int)*(data + (o)))
+
diff --git a/community/glpng/libpng14.patch b/community/glpng/libpng14.patch
new file mode 100644
index 000000000..b9fae8c2d
--- /dev/null
+++ b/community/glpng/libpng14.patch
@@ -0,0 +1,21 @@
+diff -Naur libglpng-1.45.orig-old/src/glpng.c libglpng-1.45.orig/src/glpng.c
+--- libglpng-1.45.orig-old/src/glpng.c 2000-07-11 05:27:10.000000000 +1000
++++ libglpng-1.45.orig/src/glpng.c 2010-02-13 22:53:53.000000000 +1000
+@@ -269,7 +269,7 @@
+ if (pinfo == NULL) return 0;
+
+ fread(header, 1, 8, fp);
+- if (!png_check_sig(header, 8)) return 0;
++ if (png_sig_cmp(header, 0, 8)) return 0;
+
+ png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ info = png_create_info_struct(png);
+@@ -373,7 +373,7 @@
+ png_uint_32 i;
+
+ fread(header, 1, 8, fp);
+- if (!png_check_sig(header, 8)) return 0;
++ if (png_sig_cmp(header, 0, 8)) return 0;
+
+ png = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+ info = png_create_info_struct(png);
diff --git a/community/glpng/license b/community/glpng/license
new file mode 100644
index 000000000..a526262b5
--- /dev/null
+++ b/community/glpng/license
@@ -0,0 +1,21 @@
+/*
+ * PNG loader library for OpenGL v1.45 (10/07/00)
+ * by Ben Wyatt ben@wyatt100.freeserve.co.uk
+ * Using LibPNG 1.0.2 and ZLib 1.1.3
+ *
+ * This software is provided 'as-is', without any express or implied warranty.
+ * In no event will the author be held liable for any damages arising from the
+ * use of this software.
+ *
+ * Permission is hereby granted to use, copy, modify, and distribute this
+ * source code, or portions hereof, for any purpose, without fee, subject to
+ * the following restrictions:
+ *
+ * 1. The origin of this source code must not be misrepresented. You must not
+ * claim that you wrote the original software. If you use this software in
+ * a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered versions must be plainly marked as such and must not be
+ * misrepresented as being the original source.
+ * 3. This notice must not be removed or altered from any source distribution.
+ */
diff --git a/community/gmerlin-avdecoder/PKGBUILD b/community/gmerlin-avdecoder/PKGBUILD
new file mode 100644
index 000000000..890b45679
--- /dev/null
+++ b/community/gmerlin-avdecoder/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 43369 2011-03-25 11:34:14Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=gmerlin-avdecoder
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Media decoding library"
+arch=('i686' 'x86_64')
+url="http://gmerlin.sourceforge.net/avdec_frame.html"
+license=('GPL')
+depends=('gmerlin' 'openjpeg' 'flac' 'smbclient' 'libmad' 'libmpcdec' 'speex'
+ 'libdca' 'libmpeg2' 'a52dec')
+source=(http://downloads.sourceforge.net/sourceforge/gmerlin/gmerlin-avdecoder-$pkgver.tar.gz)
+md5sums=('c1ea663e9da631453eec4ac79138b6c5')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ rm -f cpuinfo.sh
+ ./configure --prefix=/usr --without-doxygen
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gmerlin/PKGBUILD b/community/gmerlin/PKGBUILD
new file mode 100644
index 000000000..097526889
--- /dev/null
+++ b/community/gmerlin/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 43364 2011-03-25 11:11:43Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=gmerlin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Multimedia architecture for Linux"
+arch=('i686' 'x86_64')
+url="http://openmovieeditor.sourceforge.net/HomePage"
+license=('GPL')
+depends=('gavl' 'libxml2' 'gtk2' 'libxv' 'mesa' 'libvisual' 'libcdio>=0.82' 'musicbrainz' 'mjpegtools')
+optdepends=('esound')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+options=('!libtool')
+md5sums=('60d3c5081c8685ee7bc1afdfac8f6dc6')
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ rm -rf cpuinfo.sh
+ ./configure --prefix=/usr \
+ --without-doxygen
+ make || return 1
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/share/info/dir
+}
diff --git a/community/gmic/PKGBUILD b/community/gmic/PKGBUILD
new file mode 100644
index 000000000..ec306a80e
--- /dev/null
+++ b/community/gmic/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 42692 2011-03-19 21:21:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: farid <farid at archlinuc-br.org>
+# Contributor: Archie <Mymaud@gmail.com>
+
+pkgbase=gmic
+pkgname=(gmic gimp-plugin-gmic)
+pkgver=1.4.8.3
+pkgrel=1
+pkgdesc="GMIC image procession framework"
+arch=('i686' 'x86_64')
+license=('custom:CeCILL')
+url="http://gmic.sourceforge.net"
+makedepends=('gimp' 'fftw' 'lapack' 'opencv' 'graphicsmagick' 'openexr')
+options=('docs' '!emptydirs')
+source=("http://downloads.sourceforge.net/sourceforge/gmic/gmic_$pkgver.tar.gz")
+md5sums=('c8921256f64af774860a8f9021dc6457')
+
+build() {
+ cd "$srcdir/gmic-$pkgver"
+ CFLAGS+=" -Dcimg_use_lapack"
+ LDFLAGS="-llapack"
+ sed -i "s#-lhighgui#-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann#" configure
+ sed -i "s#-lcv#-lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann#" configure
+ ./configure --prefix=/usr
+ sed -i 's|OPENCV_CFLAGS = .*|OPENCV_CFLAGS = -Dcimg_use_opencv -I$(USR)/include/opencv `pkg-config --cflags opencv`|' src/Makefile
+ sed -i 's|OPENCV_LDFLAGS = .*|OPENCV_LDFLAGS = `pkg-config --libs opencv`|' src/Makefile
+ sed -i 's|cp -f gmic_gimp.*||' src/Makefile
+ make -C src all
+}
+
+package_gmic() {
+ depends=('fftw' 'lapack' 'opencv' 'graphicsmagick' 'openexr')
+ replaces=('greycstoration')
+
+ cd "$srcdir/gmic-$pkgver"
+ make -C src install DESTDIR="$pkgdir" USR=/usr
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/gmic/LICENSE"
+}
+
+package_gimp-plugin-gmic() {
+ pkgdesc="Gimp plugin for the GMIC image procession framework"
+ depends=('gimp' 'fftw' 'lapack')
+ replaces=('gimp-plugin-greycstoration' 'gimp-plugin-gmic4gimp')
+
+ cd "$srcdir/gmic-$pkgver"
+ install -Dm755 src/gmic_gimp "$pkgdir/usr/lib/gimp/2.0/plug-ins/gmic_gimp"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/gimp-plugin-gmic/LICENSE"
+}
diff --git a/community/gmime22/PKGBUILD b/community/gmime22/PKGBUILD
new file mode 100644
index 000000000..12d5d75df
--- /dev/null
+++ b/community/gmime22/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 54842 2009-10-11 19:49:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gmime22
+pkgver=2.2.26
+pkgrel=1
+pkgdesc="Core mime parsing library"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://spruce.sourceforge.net/gmime/"
+depends=('glib2' 'zlib')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/gmime/2.2/gmime-${pkgver}.tar.bz2)
+md5sums=('fed7c1beab58f5e5f4831c266fe974aa')
+
+build() {
+ # get rid of that .wapi errors in fakeroot
+ export MONO_SHARED_DIR="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd ${srcdir}/gmime-${pkgver}
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --disable-mono || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+ # These are gmime alternatives for the same shareutils tools
+ rm -rf ${pkgdir}/usr/bin/uuencode ${pkgdir}/usr/bin/uudecode ${pkgdir}/usr/share && \
+ mv ${pkgdir}/usr/bin/gmime-config ${pkgdir}/usr/bin/gmime22-config
+}
diff --git a/community/gmrun/ChangeLog b/community/gmrun/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/gmrun/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/gmrun/PKGBUILD b/community/gmrun/PKGBUILD
new file mode 100644
index 000000000..d5d961018
--- /dev/null
+++ b/community/gmrun/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 8461 2010-01-20 08:07:38Z dgriffiths $
+# Maintainer: Jeff Mickey <j@codemac.net>
+# Contributor: Woody Gilk aka Shadowhand <woody.gilk@gmail.com>
+
+pkgname=gmrun
+pkgver=0.9.2
+pkgrel=3
+pkgdesc="A simple program which provides a run program window"
+arch=('i686' 'x86_64')
+url="http://sf.net/projects/gmrun"
+license=('GPL')
+depends=('gtk2' 'popt')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ gcc43.patch)
+md5sums=('6cef37a968006d9496fc56a7099c603c'
+ '3a0b69d8c2cac6cfb551b9d235441ecb')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -p0 < $srcdir/gcc43.patch
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/gmrun/gcc43.patch b/community/gmrun/gcc43.patch
new file mode 100644
index 000000000..6f79591f6
--- /dev/null
+++ b/community/gmrun/gcc43.patch
@@ -0,0 +1,51 @@
+--- src/gtkcompletionline.cc.orig 2003-11-16 11:55:07.000000000 +0100
++++ src/gtkcompletionline.cc 2008-05-08 08:51:22.000000000 +0200
+@@ -29,6 +29,7 @@
+ #include <set>
+ #include <sstream>
+ #include <string>
++#include <cstring>
+ #include <vector>
+ using namespace std;
+
+--- src/ci_string.h.orig 2001-05-16 16:39:31.000000000 +0200
++++ src/ci_string.h 2008-05-08 08:51:33.000000000 +0200
+@@ -7,6 +7,7 @@
+ #define __CI_STRING_H__
+
+ #include <string>
++#include <cstring>
+ #include <ctype.h>
+
+ struct ci_char_traits : public std::char_traits<char>
+--- src/prefs.cc.orig 2002-08-16 12:48:22.000000000 +0200
++++ src/prefs.cc 2008-05-08 08:51:54.000000000 +0200
+@@ -13,6 +13,7 @@
+ #include <fstream>
+ #include <iostream>
+ #include <stdio.h>
++#include <stdlib.h>
+
+ #include <list>
+
+--- src/main.cc.orig 2003-11-16 11:55:07.000000000 +0100
++++ src/main.cc 2008-05-08 09:03:11.000000000 +0200
+@@ -14,6 +14,7 @@
+ #include <gdk/gdkkeysyms.h>
+
+ #include <string>
++#include <cstring>
+ #include <iostream>
+ #include <sstream>
+ #include <vector>
+
+--- src/gtkcompletionline.cc.orig 2009-06-19 22:38:14.000000000 +0400
++++ src/gtkcompletionline.cc 2009-06-19 22:37:14.000000000 +0400
+@@ -376,7 +377,7 @@
+ return 0;
+ }
+
+-int my_alphasort(const void* va, const void* vb) {
++int my_alphasort(const dirent** va, const dirent** vb) {
+ const struct dirent** a = (const struct dirent**)va;
+ const struct dirent** b = (const struct dirent**)vb;
diff --git a/community/gnash/PKGBUILD b/community/gnash/PKGBUILD
new file mode 100644
index 000000000..58fb9a24a
--- /dev/null
+++ b/community/gnash/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 82896 2010-06-18 18:30:20Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgbase=gnash
+pkgname=(gnash-common gnash-gtk)
+pkgver=0.8.9
+pkgrel=2
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/gnash/"
+license=(GPL3)
+makedepends=(curl giflib libldap sdl agg libjpeg libpng libtool
+ speex fontconfig libva ffmpeg libxinerama
+ gstreamer0.10-base gstreamer0.10-ffmpeg
+ gtk2 libldap xulrunner hicolor-icon-theme desktop-file-utils
+ pkgconfig boost)
+options=(!libtool !emptydirs)
+source=(http://ftp.gnu.org/gnu/gnash/${pkgver}/gnash-${pkgver}.tar.bz2)
+md5sums=('5b2be6b04a1bcc5fb404cc377034499e')
+
+build() {
+ cd "$srcdir/gnash-$pkgver"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-plugins-install=system \
+ --with-npapi-plugindir=/usr/lib/mozilla/plugins \
+ --enable-gui=sdl,gtk \
+ --enable-renderer=agg \
+ --enable-media=gst,ffmpeg \
+ --enable-hwaccel=vaapi
+
+ make
+}
+
+package_gnash-common() {
+ pkgdesc="A GNU Flash movie player"
+ depends=(curl giflib libldap sdl agg libjpeg libpng libtool
+ speex fontconfig libva ffmpeg libxinerama
+ gstreamer0.10-base gstreamer0.10-ffmpeg
+ boost-libs)
+ backup=(etc/gnashrc)
+
+ cd "$srcdir/gnash-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ # Split gnash-gtk
+ mkdir -p "$srcdir"/gtk/{bin,man1,share}
+ mv "$pkgdir"/usr/bin/{gtk-gnash,gnash-gtk-launcher} "$srcdir/gtk/bin/"
+ mv "$pkgdir"/usr/share/man/man1/{gtk-gnash,gnash-gtk-launcher}.1 "$srcdir/gtk/man1/"
+ mv "$pkgdir"/usr/share/{applications,icons} "$srcdir/gtk/share/"
+ mv "$pkgdir/etc/gnashpluginrc" "$srcdir/gtk/"
+}
+
+package_gnash-gtk() {
+ pkgdesc="A GNU Flash movie player"
+ depends=("gnash-common=$pkgver"
+ gtk2 libldap hicolor-icon-theme desktop-file-utils)
+ install=gnash-gtk.install
+ backup=(etc/gnashpluginrc)
+
+ cd "$srcdir/gnash-$pkgver"
+
+ make DESTDIR="$pkgdir" install-plugin
+
+ install -d "$pkgdir"/{etc,usr/{bin,share/man/man1}}
+ mv "$srcdir"/gtk/bin/* "$pkgdir/usr/bin/"
+ mv "$srcdir"/gtk/man1/* "$pkgdir/usr/share/man/man1/"
+ mv "$srcdir"/gtk/share/* "$pkgdir/usr/share/"
+ mv "$srcdir/gtk/gnashpluginrc" "$pkgdir/etc/"
+}
diff --git a/community/gnash/gnash-gtk.install b/community/gnash/gnash-gtk.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/community/gnash/gnash-gtk.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/gnofract4d/PKGBUILD b/community/gnofract4d/PKGBUILD
new file mode 100644
index 000000000..28e11bcea
--- /dev/null
+++ b/community/gnofract4d/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=gnofract4d
+pkgver=3.13
+pkgrel=2
+pkgdesc='A fractal browser with PyGTK gui'
+arch=('i686' 'x86_64')
+url='http://gnofract4d.sourceforge.net'
+license=('custom')
+depends=('pygtk' 'libjpeg' 'libpng' 'shared-mime-info')
+options=('!strip')
+install='gnofract4d.install'
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'imageIO.cpp.patch')
+md5sums=('d739eb0a61bc518ada8f5b8952298166'
+ 'ff29a621a27a3836de211c577f6ab9a4')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ patch -p0 < ${srcdir}/imageIO.cpp.patch
+
+ python2 setup.py build
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ python2 setup.py install --root=${pkgdir} --optimize=1
+
+ install -D -m644 COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/gnofract4d/gnofract4d.install b/community/gnofract4d/gnofract4d.install
new file mode 100644
index 000000000..1fa01b255
--- /dev/null
+++ b/community/gnofract4d/gnofract4d.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/gnofract4d/imageIO.cpp.patch b/community/gnofract4d/imageIO.cpp.patch
new file mode 100644
index 000000000..62c7e1c69
--- /dev/null
+++ b/community/gnofract4d/imageIO.cpp.patch
@@ -0,0 +1,13 @@
+--- fract4d/c/imageIO.cpp.orig 2010-03-28 04:47:10.000000000 +0200
++++ fract4d/c/imageIO.cpp 2010-08-18 23:29:06.000000000 +0200
+@@ -3,6 +3,10 @@
+
+ #include "image_public.h"
+
++#define png_infopp_NULL (png_infopp)NULL
++#define int_p_NULL (int*)NULL
++#define png_bytepp_NULL (png_bytepp)NULL
++
+ class image_writer : public ImageWriter
+ {
+ public:
diff --git a/community/gnome-commander/PKGBUILD b/community/gnome-commander/PKGBUILD
new file mode 100644
index 000000000..43f234067
--- /dev/null
+++ b/community/gnome-commander/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 37675 2011-01-16 12:03:36Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Johannes Sjolund <j.sjolund@gmail.com>
+
+pkgname=gnome-commander
+pkgver=1.2.8.10
+pkgrel=1
+pkgdesc="A graphical two-pane filemanager for Gnome"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/gcmd/"
+license=('GPL')
+depends=('libgnomeui' 'gnome-vfs' 'gconf' 'python2' 'libsm')
+makedepends=('perlxml' 'gnome-doc-utils>=0.20.1' 'intltool')
+options=(!libtool)
+install=gnome-commander.install
+source=(ftp://ftp.gnome.org/pub/GNOME/sources/gnome-commander/1.2/$pkgname-$pkgver.tar.bz2)
+sha256sums=('148035ae09c32a383d30512e0a7129350a32b71d181bbd15b915cb67bc9232e0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # python2 fix
+ for file in doc/*/gnome-commander.xml; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ ./configure --prefix=/usr --libdir=/usr/lib --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper --enable-python
+
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ mkdir -p "${pkgdir}"/usr/share/gconf/schemas
+ gconf-merge-schema "${pkgdir}"/usr/share/gconf/schemas/${pkgname}.schemas \
+ --domain ${pkgname} "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/community/gnome-commander/gnome-commander.install b/community/gnome-commander/gnome-commander.install
new file mode 100644
index 000000000..e1b6d3a0c
--- /dev/null
+++ b/community/gnome-commander/gnome-commander.install
@@ -0,0 +1,22 @@
+pkgname=gnome-commander
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/community/gnome-do-docklets/PKGBUILD b/community/gnome-do-docklets/PKGBUILD
new file mode 100644
index 000000000..6031edbef
--- /dev/null
+++ b/community/gnome-do-docklets/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 82 2009-07-17 19:56:55Z aaron $
+# Maintainer: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+pkgname=gnome-do-docklets
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="GNOME Do Docky docklets"
+arch=('i686' 'x86_64')
+url="http://do.davebsd.com/"
+license=('GPL3')
+depends=('gnome-do>=0.8.2')
+makedepends=('intltool' 'pkgconfig' 'monodevelop')
+source=(http://code.edge.launchpad.net/do-plugins/0.8/0.8.2/+download/${pkgname}-${pkgver}.tar.gz)
+build() {
+ export MONO_SHARED_DIR=$srcdir/.wabi
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ rm -rf ${pkgdir}/usr/share/gnome-do/plugins/*.mdb
+}
+md5sums=('977b494af7cd46438f406cdf2fe79c90')
diff --git a/community/gnome-do-plugins/PKGBUILD b/community/gnome-do-plugins/PKGBUILD
new file mode 100644
index 000000000..4587eeae9
--- /dev/null
+++ b/community/gnome-do-plugins/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 5443 2009-11-08 15:41:13Z ibiru $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Doehni <dohny@gmx.de>
+
+pkgname=gnome-do-plugins
+pkgver=0.8.2.1
+pkgrel=1
+pkgdesc="Plugins for gnome-do"
+arch=('i686' 'x86_64')
+url="http://do.davebsd.com/"
+license=('GPL3')
+depends=('gnome-do>=0.8.1')
+makedepends=('intltool' 'pkgconfig' 'banshee' 'flickrnet' 'evolution-sharp' 'monodevelop')
+optdepends=('evolution-sharp: Evolution plugin'
+ 'flickrnet: Flickr plugin')
+source=("http://code.edge.launchpad.net/do-plugins/0.8/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz"
+ killsomeplugins.patch)
+
+build() {
+ export MONO_SHARED_DIR=$srcdir/.wabi
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd $srcdir/$pkgname-$pkgver
+
+ # GNOME dictionary plugin cause system lock-up (infinite memory leak)
+ patch -Np1 -i $srcdir/killsomeplugins.patch || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ rm -rf ${pkgdir}/usr/share/gnome-do/plugins/*.mdb
+}
+md5sums=('32b88c062209e5b107602ccc5df285e7'
+ '0322d0374f80f607535120f545ab6ed7')
diff --git a/community/gnome-do-plugins/killsomeplugins.patch b/community/gnome-do-plugins/killsomeplugins.patch
new file mode 100644
index 000000000..4ad27cbbd
--- /dev/null
+++ b/community/gnome-do-plugins/killsomeplugins.patch
@@ -0,0 +1,11 @@
+diff -Naur gnome-do-plugins-0.8.2-old/Makefile.in gnome-do-plugins-0.8.2/Makefile.in
+--- gnome-do-plugins-0.8.2-old/Makefile.in 2009-06-26 08:43:48.317475187 +0300
++++ gnome-do-plugins-0.8.2/Makefile.in 2009-07-12 01:24:12.743978011 +0300
+@@ -407,7 +407,6 @@
+ File \
+ Firefox \
+ Flickr \
+- GNOME-Dictionary \
+ GNOME-Screenshot \
+ GNOME-Session \
+ GNOME-Terminal \
diff --git a/community/gnome-do/PKGBUILD b/community/gnome-do/PKGBUILD
new file mode 100644
index 000000000..057d42673
--- /dev/null
+++ b/community/gnome-do/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 16886 2010-05-12 16:41:03Z ibiru $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Doehni <dohny@gmx.de>
+
+pkgname=gnome-do
+pkgver=0.8.3.1
+_pkgver=0.8.3
+pkgrel=2
+pkgdesc="A launcher application for gnome (like Launchy or Katapult)"
+arch=('i686' 'x86_64')
+url="http://do.davebsd.com/"
+license=('GPL3')
+depends=('ndesk-dbus-glib' 'gnome-desktop-sharp' 'mono-addins' 'gtk2'
+ 'gnome-keyring-sharp' 'notify-sharp-svn' 'xdg-utils' 'desktop-file-utils')
+makedepends=('intltool' 'ca-certificates')
+options=('!libtool')
+install=$pkgname.install
+source=(http://code.edge.launchpad.net/do/0.8/${_pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+ cd "${srcdir}/${pkgname}-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
+md5sums=('6b4e2b55241892d165b504b1fb98645e')
diff --git a/community/gnome-do/gnome-do.install b/community/gnome-do/gnome-do.install
new file mode 100644
index 000000000..b82a99ad7
--- /dev/null
+++ b/community/gnome-do/gnome-do.install
@@ -0,0 +1,16 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+
+ echo "==> To use docky, make sure your compoisiting manager is"
+ echo "==> running before launching gnome-do."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/gnome-mplayer/PKGBUILD b/community/gnome-mplayer/PKGBUILD
new file mode 100644
index 000000000..f75d0dd82
--- /dev/null
+++ b/community/gnome-mplayer/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 41527 2011-03-07 14:09:14Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gnome-mplayer
+pkgver=1.0.2
+pkgrel=2
+pkgdesc='A simple MPlayer GUI.'
+arch=('i686' 'x86_64')
+url='http://gnome-mplayer.googlecode.com/'
+license=('GPL')
+depends=('mplayer' 'dbus-glib' 'libnotify')
+makedepends=('gnome-power-manager' 'nautilus')
+install="${pkgname}.install"
+source=("http://gnome-mplayer.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('2cbba8838ecaa03a4c3a0190dcabfade')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-schemas-install --without-gconf
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ sed -i 's@Exec=gnome-mplayer %U@Exec=gnome-mplayer %F@' \
+ "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+}
diff --git a/community/gnome-mplayer/gnome-mplayer.install b/community/gnome-mplayer/gnome-mplayer.install
new file mode 100644
index 000000000..6b1b64bdd
--- /dev/null
+++ b/community/gnome-mplayer/gnome-mplayer.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/gnome-ppp/PKGBUILD b/community/gnome-ppp/PKGBUILD
new file mode 100644
index 000000000..7b8c94ae3
--- /dev/null
+++ b/community/gnome-ppp/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 18205 2010-06-01 12:52:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=gnome-ppp
+pkgver=0.3.23
+pkgrel=7
+pkgdesc="A GNOME 2 WvDial frontend"
+arch=('i686' 'x86_64')
+url="http://www.gnomefiles.org/app.php?soft_id=41"
+license=('GPL2')
+depends=('libglade' 'wvdial')
+makedepends=('intltool' 'pkgconfig')
+install=gnome-ppp.install
+source=(http://gd.tuwien.ac.at/opsys/linux/gentoo/distfiles/${pkgname}-${pkgver}.tar.bz2
+ gnome-ppp-0.3.23-implicit-decl.patch
+ gnome-ppp-0.3.23-wvdial-notify.patch)
+md5sums=('ec2e20fc713a01c953d759bea3df8618'
+ '22eb07c957b8e00b1939560785c97c45'
+ '00452b66d033316adff0c01373f6108a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/gnome-ppp-0.3.23-implicit-decl.patch || return 1
+ patch -Np0 -i ${srcdir}/gnome-ppp-0.3.23-wvdial-notify.patch || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gnome-ppp/gnome-ppp-0.3.23-implicit-decl.patch b/community/gnome-ppp/gnome-ppp-0.3.23-implicit-decl.patch
new file mode 100644
index 000000000..6a05a897a
--- /dev/null
+++ b/community/gnome-ppp/gnome-ppp-0.3.23-implicit-decl.patch
@@ -0,0 +1,10 @@
+--- src/gnome-ppp-details.c 2005-05-04 01:26:25.000000000 +0300
++++ src/gnome-ppp-details.c 2007-04-14 13:28:30.000000000 +0300
+@@ -31,6 +31,7 @@
+ * Joe Marcus Clarke <marcus@freebsd.org>
+ */
+
++#include <unistd.h>
+ #include "gnome-ppp.h"
+
+
diff --git a/community/gnome-ppp/gnome-ppp-0.3.23-wvdial-notify.patch b/community/gnome-ppp/gnome-ppp-0.3.23-wvdial-notify.patch
new file mode 100644
index 000000000..197558ccd
--- /dev/null
+++ b/community/gnome-ppp/gnome-ppp-0.3.23-wvdial-notify.patch
@@ -0,0 +1,83 @@
+--- src/gnome-ppp-connected.c 2005-02-07 23:23:10.000000000 +0200
++++ src/gnome-ppp-connected.c 2007-07-14 09:00:51.000000000 +0300
+@@ -51,6 +51,8 @@
+
+ gboolean on_conn_delete_event (GtkWidget *widget, GdkEvent *event, gpointer data)
+ {
++ gnome_ppp.connected.show = FALSE;
++ gtk_widget_hide (gnome_ppp.connected.window);
+ return TRUE;
+ }
+
+--- src/gnome-ppp-wvdial.c 2005-02-01 21:28:25.000000000 +0200
++++ src/gnome-ppp-wvdial.c 2007-07-14 09:01:29.000000000 +0300
+@@ -56,13 +56,13 @@
+
+ g_print ("GNOME PPP: STDERR: %s", line);
+
+- if (g_strrstr (line, "--> Cannot open") != NULL)
++ if (g_strrstr (line, "Cannot open") != NULL)
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.connecting.msgs), _("Can not open modem."));
+
+- if (g_strrstr (line, "--> Modem not responding") != NULL)
++ if (g_strrstr (line, "Modem not responding") != NULL)
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.connecting.msgs), _("Modem not responding."));
+
+- if (g_strrstr (line, "--> Please enter password") != NULL) {
++ if (g_strrstr (line, "Please enter password") != NULL) {
+ const gchar *password;
+
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.connecting.msgs), _("Sending password..."));
+@@ -75,7 +75,7 @@
+ g_io_channel_shutdown (in, TRUE, NULL);
+ }
+
+- if (g_strrstr (line, "--> Configuration does not specify a valid password.") != NULL)
++ if (g_strrstr (line, "Configuration does not specify a valid password.") != NULL)
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.connecting.msgs), _("No valid password."));
+
+ if (g_strrstr (line, "ATM") != NULL) {
+@@ -90,13 +90,13 @@
+ g_free (message);
+ }
+
+- if (g_strrstr (line, "--> Carrier detected. Waiting for prompt.") != NULL)
++ if (g_strrstr (line, "Carrier detected. Waiting for prompt.") != NULL)
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.connecting.msgs), _("Waiting for prompt..."));
+
+ if (g_strrstr (line, "Username:") != NULL)
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.connecting.msgs), _("Authenticating..."));
+
+- if (g_strrstr (line, "--> Using interface") != NULL) {
++ if (g_strrstr (line, "Using interface") != NULL) {
+ gchar iface[255];
+ gchar tmp[255];
+
+@@ -104,14 +104,14 @@
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.details.interface), &iface[0]);
+ }
+ /* in case we are using auto reconnect */
+- if (g_strrstr (line, "--> Auto Reconnect") != NULL) {
++ if (g_strrstr (line, "Auto Reconnect") != NULL) {
+ gtk_label_set_text (GTK_LABEL (gnome_ppp.connecting.msgs), _("Reconnecting..."));
+ gtk_widget_hide (gnome_ppp.gnome_ppp.window);
+ gtk_widget_hide (gnome_ppp.details.window);
+ gtk_widget_show (gnome_ppp.connecting.window);
+ }
+ /* we're about to connect (pppd) */
+- if (g_strrstr (line, "--> Starting pppd") != NULL) {
++ if (g_strrstr (line, "Starting pppd") != NULL) {
+ gboolean minimize;
+
+ minimize = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (gnome_ppp.setup.minimize));
+@@ -135,8 +135,8 @@
+ gnome_ppp.connected.update = g_timeout_add (1000, (GSourceFunc)timer, NULL);
+ }
+
+- if (g_strrstr (line, "--> The PPP daemon has died") != NULL
+- || g_strrstr (line, "--> Disconnecting") != NULL) {
++ if (g_strrstr (line, "The PPP daemon has died.") != NULL
++ || g_strrstr (line, "Disconnecting") != NULL) {
+
+ if (gnome_ppp.connected.update) {
+ g_source_remove (gnome_ppp.connected.update);
diff --git a/community/gnome-ppp/gnome-ppp.install b/community/gnome-ppp/gnome-ppp.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/community/gnome-ppp/gnome-ppp.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/gnome-system-tools/PKGBUILD b/community/gnome-system-tools/PKGBUILD
new file mode 100644
index 000000000..93061628a
--- /dev/null
+++ b/community/gnome-system-tools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 27934 2010-09-30 15:07:45Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugodoria@archlinux-br.org>
+
+pkgname=gnome-system-tools
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Gnome System Configuration Utilities"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/projects/gst/"
+license=('GPL')
+options=('!libtool')
+depends=('wireless_tools' 'liboobs>=2.32.0' 'nautilus>=2.30.1' 'polkit-gnome>=0.97' 'dconf')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool>=0.40')
+install=gnome-system-tools.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('71d52698ccb60bc07d6e4e442b7cb178ebf1152396379500df5ec62da4c4d14a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper --disable-static \
+ --disable-services --disable-schemas-compile
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gnome-system-tools/gnome-system-tools.install b/community/gnome-system-tools/gnome-system-tools.install
new file mode 100644
index 000000000..25e333a19
--- /dev/null
+++ b/community/gnome-system-tools/gnome-system-tools.install
@@ -0,0 +1,15 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
diff --git a/community/gnomesu/PKGBUILD b/community/gnomesu/PKGBUILD
new file mode 100644
index 000000000..3cfd444da
--- /dev/null
+++ b/community/gnomesu/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 7581 2010-01-08 03:42:33Z dgriffiths $
+# Maintainer: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Kritoke <kritoke@nospam.gmail.com>
+
+pkgname=gnomesu
+pkgver=0.3.1
+pkgrel=6
+pkgdesc="A program that allows a user to su to root in a Gnome environment."
+arch=('i686' 'x86_64')
+url="http://www.gtkfiles.org/app.php/GnomeSu"
+license=("GPL")
+depends=('libgnomeui' 'libzvt')
+makedepends=('pkgconfig')
+conflicts=('libgnomesu')
+source=(http://downloads.sourceforge.net/sourceforge/xsu/$pkgname-$pkgver.tar.gz)
+md5sums=('8ebcf248b4f8430c96d80379ec2acdd8')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ sed -i 's/1.4/1.10/' configure || return 1
+ sed -i 's/gsu/gnomesu/' xsu.desktop.in || return 1
+ sed -i 's/gnome-warning/dialog-warning/' xsu.desktop.in || return 1
+ sed -i 's|gnome-warning|/usr/share/icons/gnome/16x16/status/dialog-warning|' src/xsu.c || return 1
+ ./configure --prefix=/usr --mandir=/usr/share
+ make CFLAGS+=-Wl,-export-dynamic || return 1
+ make DESTDIR=$startdir/pkg install
+ install -D -m644 xsu.desktop $startdir/pkg/usr/share/applications/gnomesu.desktop
+ rm -r $startdir/pkg/usr/share/gnome
+ mv $pkgdir/usr/doc $pkgdir/usr/share/doc
+}
diff --git a/community/gnonlin/PKGBUILD b/community/gnonlin/PKGBUILD
new file mode 100644
index 000000000..e19e97b99
--- /dev/null
+++ b/community/gnonlin/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 28215 2010-10-03 21:11:52Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gnonlin
+pkgver=0.10.16
+pkgrel=1
+pkgdesc="A library for creating non-linear video editors"
+arch=('i686' 'x86_64')
+url="http://gnonlin.sourceforge.net"
+depends=('gstreamer0.10>=0.10.30')
+makedepends=('python' 'gstreamer0.10-base-plugins>=0.10.30' 'pkgconfig')
+options=('!libtool')
+license=('LGPL')
+source=(http://gstreamer.freedesktop.org/src/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('824619ce357c0a61e333c3cc745a63bd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gnote/PKGBUILD b/community/gnote/PKGBUILD
new file mode 100644
index 000000000..d2fb73ada
--- /dev/null
+++ b/community/gnote/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 41039 2011-03-03 11:13:48Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: uastasi <uastasi@archlinux.us>
+pkgname=gnote
+pkgver=0.7.3
+pkgrel=3
+pkgdesc="Experimental port of Tomboy to C++ "
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Gnote"
+license=('GPL')
+depends=('boost-libs' 'gtkspell' 'libpanelappletmm' 'libxslt')
+makedepends=('intltool' 'gnome-doc-utils' 'boost')
+options=('!libtool')
+install=gnote.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('4853315711baf7647cdae4c2f7d23e22e2b13322605efe3dd98796a06f928321')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnote \
+ --disable-scrollkeeper \
+ --disable-schemas-install \
+ --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnote ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/community/gnote/gnote.install b/community/gnote/gnote.install
new file mode 100644
index 000000000..780fae868
--- /dev/null
+++ b/community/gnote/gnote.install
@@ -0,0 +1,22 @@
+pkgname=gnote
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/gnote/gtk2.20.patch b/community/gnote/gtk2.20.patch
new file mode 100644
index 000000000..13b3ee1a9
--- /dev/null
+++ b/community/gnote/gtk2.20.patch
@@ -0,0 +1,40 @@
+From b2e62adb1ed94f9a3f681bd6d0b8117b2ec3c1f9 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@src.gnome.org>
+Date: Sun, 14 Mar 2010 21:24:21 +0000
+Subject: Replaced deprecated macros -- GTK_WIDGET_REALIZED & GTK_WIDGET_VISIBLE
+
+These macros have been deprecated since Gtk+ 2.20, and their
+replacements were introduced in Gtk+ 2.18. Thus, the minimum Gtk+
+version has been bumped accordingly.
+---
+diff --git a/configure.ac b/configure.ac
+index 564c0b0..0189b88 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -23,7 +23,7 @@ AC_SUBST(GNOTE_VERSION)
+ dnl all the library version.
+ dnl if one is harcoded elsewhere, it is a bug
+
+-GTK_VERSION=2.12
++GTK_VERSION=2.18
+ LIBGLIBMM_VERSION=2.0
+ LIBGTKMM_VERSION=2.12.0
+ LIBGCONF_VERSION=2.0.0
+diff --git a/libtomboy/tomboyutil.c b/libtomboy/tomboyutil.c
+index 162e4a2..9de7e62 100644
+--- a/libtomboy/tomboyutil.c
++++ b/libtomboy/tomboyutil.c
+@@ -153,9 +153,9 @@ tomboy_window_override_user_time (GtkWindow *window)
+ void
+ tomboy_window_present_hardcore (GtkWindow *window)
+ {
+- if (!GTK_WIDGET_REALIZED (window))
++ if (!gtk_widget_get_realized (GTK_WIDGET (window)))
+ gtk_widget_realize (GTK_WIDGET (window));
+- else if (GTK_WIDGET_VISIBLE (window))
++ else if (gtk_widget_get_visible (GTK_WIDGET (window)))
+ tomboy_window_move_to_current_workspace (window);
+
+ tomboy_window_override_user_time (window);
+--
+cgit v0.8.3.1
diff --git a/community/gnubiff-gtk/PKGBUILD b/community/gnubiff-gtk/PKGBUILD
new file mode 100644
index 000000000..0b3032228
--- /dev/null
+++ b/community/gnubiff-gtk/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 14206 2010-04-02 08:59:16Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+# Contributor: Todd Musall <tmusall@gmail.com>
+
+pkgname=gnubiff-gtk
+pkgver=2.2.13
+pkgrel=2
+pkgdesc="Mail notification program that checks for mail and displays headers when new mail has arrived. GTK version."
+arch=('i686' 'x86_64')
+url="http://gnubiff.sourceforge.net/"
+license=("GPL")
+depends=('libglade' 'openssl' 'popt')
+conflicts=(gnubiff)
+source=(http://downloads.sourceforge.net/sourceforge/gnubiff/gnubiff-$pkgver.tar.gz \
+ build.patch)
+md5sums=('65423957eb027b94c9e661611c0e4271'
+ '96fde605eb69e300f6014546d4339beb')
+
+build() {
+ cd $startdir/src/gnubiff-$pkgver
+
+ patch -p1 <../build.patch
+
+ export LDFLAGS=-lX11
+
+ ./configure --prefix=/usr --disable-gnome --disable-fam --with-password --with-password-string
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ rm -rf $startdir/pkg/usr/lib
+ rm -rf $startdir/pkg/usr/share/gnome-2.0
+ rm -rf ${pkgdir}/usr/share/info/dir
+}
diff --git a/community/gnubiff-gtk/build.patch b/community/gnubiff-gtk/build.patch
new file mode 100644
index 000000000..523b0557e
--- /dev/null
+++ b/community/gnubiff-gtk/build.patch
@@ -0,0 +1,23 @@
+diff -wbBur gnubiff-2.2.10/src/support.h gnubiff-2.2.10.my/src/support.h
+--- gnubiff-2.2.10/src/support.h 2008-03-22 05:08:51.000000000 +0300
++++ gnubiff-2.2.10.my/src/support.h 2008-04-22 14:21:58.000000000 +0400
+@@ -35,6 +35,9 @@
+ #endif
+ #include "nls.h"
+
++#include <stdlib.h>
++#define EXIT_SUCCESS 0
++#define EXIT_FAILURE 1
+
+ #include <glib.h>
+ #include <sstream>
+@@ -131,6 +134,9 @@
+ if ((pos == end) && (last < num))
+ result << sep << num;
+
++ if ((pos == end) && (last != num))
++ result << sep << num;
++
+ // Save new number
+ inf_bound = last = num;
+ }
diff --git a/community/gnubiff/PKGBUILD b/community/gnubiff/PKGBUILD
new file mode 100644
index 000000000..4671b7005
--- /dev/null
+++ b/community/gnubiff/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 14203 2010-04-02 08:57:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+# Contributor: Todd Musall <tmusall@gmail.com>
+
+pkgname=gnubiff
+pkgver=2.2.11
+pkgrel=4
+pkgdesc="Mail notification program that checks for mail and displays headers when new mail has arrived"
+arch=('i686' 'x86_64')
+url="http://gnubiff.sourceforge.net/"
+license=("GPL")
+depends=('gnome-panel')
+makedepends=('perlxml')
+conflicts=(gnubiff-gtk)
+source=(http://downloads.sourceforge.net/gnubiff/gnubiff-$pkgver.tar.gz)
+md5sums=('d9e899f25b1e83081ccd3ac97ee31b8b')
+
+build() {
+ [ "$GNOMEDIR" = "" ] && GNOMEDIR=/usr
+ cd $startdir/src/gnubiff-$pkgver
+
+ patch -p2 src/support.h <<EOF
+diff -wbBur gnubiff-2.2.10/src/support.h gnubiff-2.2.10.my/src/support.h
+--- gnubiff-2.2.10/src/support.h 2008-03-22 05:08:51.000000000 +0300
++++ gnubiff-2.2.10.my/src/support.h 2008-04-22 14:21:58.000000000 +0400
+@@ -35,6 +35,9 @@
+ #endif
+ #include "nls.h"
+
++#include <stdlib.h>
++#define EXIT_SUCCESS 0
++#define EXIT_FAILURE 1
+
+ #include <glib.h>
+ #include <sstream>
+@@ -131,6 +134,9 @@
+ if ((pos == end) && (last < num))
+ result << sep << num;
+
++ if ((pos == end) && (last != num))
++ result << sep << num;
++
+ // Save new number
+ inf_bound = last = num;
+ }
+EOF
+
+ LDFLAGS="-lgnomeui-2" CFLAGS="-I/usr/include/libgnomeui-2.0" CPPFLAGS="-I/usr/include/libgnomeui-2.0" ./configure --prefix=/usr --with-password --with-password-string --disable-fam
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+ rm -rf ${pkgdir}/usr/share/info/dir
+}
diff --git a/community/gnucap/ChangeLog b/community/gnucap/ChangeLog
new file mode 100644
index 000000000..b6fa99fce
--- /dev/null
+++ b/community/gnucap/ChangeLog
@@ -0,0 +1,53 @@
+2009-09-23 Evangelos Foutras <foutrelis@gmail.com>
+
+ * 20090922-1:
+ New upstream release.
+
+2009-09-09 Evangelos Foutras <foutrelis@gmail.com>
+
+ * 20090909-1:
+ New upstream release.
+
+2009-08-22 Jared Casper <jaredcasper@gmail.com>
+
+ * 20090822-1:
+ - Version bump
+
+2009-08-20 Jared Casper <jaredcasper@gmail.com>
+
+ * 20090819-1:
+ - Version bump
+ - Removed now unnecessary gcc-4.4 patch
+
+2009-08-13 Jared Casper <jaredcasper@gmail.com>
+
+ * 20090813-1:
+ - Version bump
+
+2009-06-12 Jared Casper <jaredcasper@gmail.com>
+
+ * 20090611-1:
+ - Version bump
+ - Small patch to compile with gcc-4.4
+
+2009-05-19 Jared Casper <jaredcasper@gmail.com>
+
+ - Removed termcap-compat from deps
+
+2009-02-05 Jared Casper <jaredcasper@gmail.com>
+
+ * 20090202-1:
+ - Version bump
+
+2008-12-12 Jared Casper <jaredcasper@gmail.com>
+
+ * 20081212-1:
+ - Version bump
+
+2008-12-04 Jared Casper <jaredcasper@gmail.com>
+
+ * 20081203-1:
+ - Adopted from orivej_GeorgeK
+ - Version bump
+ - added ChangeLog
+ - Cleaned up PKGBUILD a bit
diff --git a/community/gnucap/PKGBUILD b/community/gnucap/PKGBUILD
new file mode 100644
index 000000000..48418b391
--- /dev/null
+++ b/community/gnucap/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 6388 2009-12-09 17:45:13Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+# Contributor: Georgij Kondratjev <smpuj@bk.ru>
+
+pkgname=gnucap
+pkgver=20091207
+_pkgver=2009-12-07
+pkgrel=1
+pkgdesc="GNU Circuit Analysis Package"
+arch=('i686' 'x86_64')
+url="http://gnucap.org/"
+license=('GPL')
+depends=('gcc-libs' 'readline')
+source=(http://gnucap.org/devel/$pkgname-$_pkgver.tar.gz)
+md5sums=('30701d110a3e642c5826358c64d2fb1b')
+
+build() {
+ cd "$srcdir/$pkgname-$_pkgver"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gnumail/PKGBUILD b/community/gnumail/PKGBUILD
new file mode 100644
index 000000000..9c71fd891
--- /dev/null
+++ b/community/gnumail/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 18211 2010-06-01 12:53:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=gnumail
+pkgver=1.2.0pre3
+pkgrel=3
+pkgdesc="A complete and fast mail application for GNUstep"
+arch=('i686' 'x86_64')
+url="http://www.collaboration-world.com/gnumail"
+license=('GPL')
+depends=('pantomime' 'addresses' 'gcc' 'gnustep-gui')
+options=('!makeflags')
+source=(http://www.collaboration-world.com/cgi-bin/project/download.cgi/GNUMail-$pkgver.tar.gz?rid=103)
+md5sums=('0f91fe0c32ef369ea843a2ab3909fb2b')
+
+build() {
+ cd $srcdir
+ mv GNUMail-$pkgver.tar.gz?rid=103 GNUMail-$pkgver.tar.gz
+ tar xfz GNUMail-$pkgver.tar.gz
+ cd $srcdir/GNUMail
+
+ if [ -z "$GNUSTEP_USER_CONFIG_FILE" ] ; then
+ . /etc/profile.d/GNUstep.sh
+ fi
+
+ make || return 1
+ make GNUSTEP_INSTALLATION_DIR=$pkgdir/opt/GNUstep/System install
+}
diff --git a/community/gnunet-gtk/PKGBUILD b/community/gnunet-gtk/PKGBUILD
new file mode 100644
index 000000000..f6f2d02bd
--- /dev/null
+++ b/community/gnunet-gtk/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 43132 2011-03-24 08:17:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: wahnby <wahnby@yahoo.fr>
+
+pkgname=gnunet-gtk
+pkgver=0.9.0pre2
+pkgrel=1
+pkgdesc="A frontend for GNUnet"
+arch=('i686' 'x86_64')
+url="http://gnunet.org"
+options=('!libtool')
+license=('GPL')
+depends=('gnunet' 'libnotify' 'libglade' 'adns')
+makedepends=('pkgconfig' 'glade')
+source=(ftp://ftp.gnu.org/gnu/gnunet/$pkgname-$pkgver.tar.gz)
+md5sums=('2aab6fcf5a40cfdef481a7e17b150c0b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-gnunet=/usr --disable-libgksu2
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gnunet/PKGBUILD b/community/gnunet/PKGBUILD
new file mode 100644
index 000000000..a7117f1e3
--- /dev/null
+++ b/community/gnunet/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 43135 2011-03-24 08:18:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: wahnby <wahnby@yahoo.fr>
+
+pkgname=gnunet
+pkgver=0.9.0pre2
+pkgrel=1
+pkgdesc="A framework for secure peer-to-peer networking"
+arch=('i686' 'x86_64')
+url="http://gnunet.org"
+license=('GPL')
+depends=('gmp' 'libgcrypt' 'libextractor' 'sqlite3' 'guile' 'curl' 'libglade'
+ 'adns' 'libmicrohttpd')
+makedepends=('gettext' 'pkgconfig')
+backup=(etc/gnunetd.conf)
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gnu.org/gnu/gnunet/gnunet-$pkgver.tar.gz
+ gnunet.rc
+ gnunet.conf.d
+ build-fix.patch)
+md5sums=('a4d0fad4f6fc6b520b3b73ee54167270'
+ '0d62ab7f2a28af3ac082015696ee6ef3'
+ 'f161b46915736e4017e77ad735521453'
+ 'c646e634754e29004bb569873a270bf1')
+
+build() {
+ cd $srcdir/gnunet-$pkgver
+ unset LDFLAGS
+ patch -p1 <$srcdir/build-fix.patch
+ [ -f Makefile ] || ./configure --prefix=/usr --without-mysql
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m0755 $srcdir/gnunet.rc $pkgdir/etc/rc.d/gnunetd
+ install -D -m0644 $srcdir/gnunet.conf.d $pkgdir/etc/conf.d/gnunetd
+ install -D -m0644 $srcdir/gnunet-$pkgver/contrib/defaults.conf $pkgdir/etc/gnunetd.conf
+ rm -rf $pkgdir/usr/include/libltdl $pkgdir/usr/lib/libltdl.* $pkgdir/usr/include/ltdl.h
+}
diff --git a/community/gnunet/build-fix.patch b/community/gnunet/build-fix.patch
new file mode 100644
index 000000000..2ca902fcd
--- /dev/null
+++ b/community/gnunet/build-fix.patch
@@ -0,0 +1,21 @@
+diff -wbBur gnunet-0.9.0pre2/src/transport/plugin_transport_http.c gnunet-0.9.0pre2.my/src/transport/plugin_transport_http.c
+--- gnunet-0.9.0pre2/src/transport/plugin_transport_http.c 2010-12-23 09:37:50.000000000 +0000
++++ gnunet-0.9.0pre2.my/src/transport/plugin_transport_http.c 2011-03-24 07:59:13.000000000 +0000
+@@ -1077,7 +1077,7 @@
+
+ conn_info = MHD_get_connection_info(mhd_connection, MHD_CONNECTION_INFO_CLIENT_ADDRESS );
+ /* Incoming IPv4 connection */
+- if ( AF_INET == conn_info->client_addr->sin_family)
++ if ( AF_INET == ((struct sockaddr_in*)(conn_info->client_addr))->sin_family)
+ {
+ addrin = conn_info->client_addr;
+ inet_ntop(addrin->sin_family, &(addrin->sin_addr),address,INET_ADDRSTRLEN);
+@@ -1087,7 +1087,7 @@
+ addr_len = sizeof(struct IPv4HttpAddress);
+ }
+ /* Incoming IPv6 connection */
+- if ( AF_INET6 == conn_info->client_addr->sin_family)
++ if ( AF_INET6 == ((struct sockaddr_in6*)(conn_info->client_addr))->sin6_family)
+ {
+ addrin6 = (struct sockaddr_in6 *) conn_info->client_addr;
+ inet_ntop(addrin6->sin6_family, &(addrin6->sin6_addr),address,INET6_ADDRSTRLEN);
diff --git a/community/gnunet/gnunet.conf.d b/community/gnunet/gnunet.conf.d
new file mode 100644
index 000000000..f10a322ce
--- /dev/null
+++ b/community/gnunet/gnunet.conf.d
@@ -0,0 +1 @@
+GNUNETD_USER=nobody
diff --git a/community/gnunet/gnunet.rc b/community/gnunet/gnunet.rc
new file mode 100644
index 000000000..34c7c5fe1
--- /dev/null
+++ b/community/gnunet/gnunet.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+GNUNETD_USER=nobody
+
+. /etc/conf.d/gnunetd
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/bin/gnunetd)
+case "$1" in
+ start)
+ stat_busy "Starting gnunetd"
+ [ -z "$PID" ] && /usr/bin/gnunetd -c /etc/gnunetd.conf -u $GNUNETD_USER 1>/dev/null 2>/dev/null &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon gnunetd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping gnunetd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon gnunetd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/community/gnustep-back/ChangeLog b/community/gnustep-back/ChangeLog
new file mode 100644
index 000000000..15622ab88
--- /dev/null
+++ b/community/gnustep-back/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* version upgrade
diff --git a/community/gnustep-back/PKGBUILD b/community/gnustep-back/PKGBUILD
new file mode 100644
index 000000000..290b7285a
--- /dev/null
+++ b/community/gnustep-back/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 16999 2010-05-16 20:53:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=gnustep-back
+pkgver=0.18.0
+pkgrel=1
+pkgdesc="The GNUstep GUI Backend"
+arch=('i686' 'x86_64')
+url="http://www.gnustep.org/"
+license=('LGPL')
+depends=(libgl libxmu gcc-libs freetype2 libart-lgpl)
+makedepends=('gnustep-gui' 'libffi' 'gcc-objc')
+conflicts=('gnustep-back-svn')
+groups=('gnustep-core')
+source=(ftp://ftp.gnustep.org/pub/gnustep/core/$pkgname-$pkgver.tar.gz)
+md5sums=('fb428c936dc16b2db7f085514a7bde7c')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --prefix=/opt/GNUstep
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/gnustep-base/ChangeLog b/community/gnustep-base/ChangeLog
new file mode 100644
index 000000000..590f23f5e
--- /dev/null
+++ b/community/gnustep-base/ChangeLog
@@ -0,0 +1,6 @@
+2007-07-24 Snowman <eric@archlinux>
+ * rebuilt against toolchain in current
+ * fixed SMP build
+ * fixed file ownership
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/gnustep-base/PKGBUILD b/community/gnustep-base/PKGBUILD
new file mode 100644
index 000000000..ca618a996
--- /dev/null
+++ b/community/gnustep-base/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 22746 2010-07-29 11:42:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=gnustep-base
+pkgver=1.20.1
+pkgrel=1
+pkgdesc="The GNUstep base package"
+arch=('i686' 'x86_64')
+url="http://www.gnustep.org/"
+license=("GPL" "LGPL")
+depends=(libxslt avahi gmp gcc-libs openssl ffcall gnustep-make gnutls)
+makedepends=(gcc-objc)
+conflicts=('gnustep-base-svn')
+groups=('gnustep-core')
+options=('!emptydirs' '!makeflags')
+source=(ftp://ftp.gnustep.org/pub/gnustep/core/$pkgname-$pkgver.tar.gz)
+md5sums=('8ade7c698159df7a43c7b5052321e4e0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ source /etc/profile.d/GNUstep.sh
+ # need this stupid hack
+ mkdir -p $pkgdir/opt/GNUstep/System/Library/Libraries/Resources/gnustep-base/NSTimeZones
+ ./configure --prefix=/opt/GNUstep --enable-ffcall --disable-libffi
+ # fix file ownership
+ sed -i 's/tar -xf $(TIMEZONE_ARCHIVE);/tar -xf $(TIMEZONE_ARCHIVE);chown -R root:root * ;/' NSTimeZones/Makefile.postamble
+ make VERBOSE=1 || return 1
+ make DESTDIR=$pkgdir install || return 1
+ chown -R root.root $pkgdir/
+}
diff --git a/community/gnustep-gui/ChangeLog b/community/gnustep-gui/ChangeLog
new file mode 100644
index 000000000..15622ab88
--- /dev/null
+++ b/community/gnustep-gui/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* version upgrade
diff --git a/community/gnustep-gui/PKGBUILD b/community/gnustep-gui/PKGBUILD
new file mode 100644
index 000000000..0b4210aed
--- /dev/null
+++ b/community/gnustep-gui/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 17005 2010-05-16 20:54:38Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=gnustep-gui
+pkgver=0.18.0
+pkgrel=1
+pkgdesc="The GNUstep GUI class library"
+arch=('i686' 'x86_64')
+url="http://www.gnustep.org/"
+license=('LGPL')
+depends=(gnustep-base libungif aspell gcc-libs libcups audiofile libsndfile giflib libao)
+makedepends=(gcc-objc)
+conflicts=('gnustep-gui-svn')
+groups=('gnustep-core')
+options=('!makeflags')
+source=(ftp://ftp.gnustep.org/pub/gnustep/core/$pkgname-$pkgver.tar.gz)
+md5sums=('1726eef8bcb7b25d561cf8263242c6e7')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --prefix=/opt/GNUstep --disable-gsnd
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/gnustep-make/ChangeLog b/community/gnustep-make/ChangeLog
new file mode 100644
index 000000000..15622ab88
--- /dev/null
+++ b/community/gnustep-make/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* version upgrade
diff --git a/community/gnustep-make/PKGBUILD b/community/gnustep-make/PKGBUILD
new file mode 100644
index 000000000..1e80f85e8
--- /dev/null
+++ b/community/gnustep-make/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 17008 2010-05-16 20:55:25Z spupykin $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=gnustep-make
+pkgver=2.4.0
+pkgrel=1
+pkgdesc="The GNUstep make package"
+arch=(i686 x86_64)
+url="http://www.gnustep.org/"
+license=('GPL')
+depends=('glibc')
+conflicts=('gnustep-make-svn')
+groups=('gnustep-core')
+source=(ftp://ftp.gnustep.org/pub/gnustep/core/$pkgname-$pkgver.tar.gz)
+md5sums=('bc2138e6256665e55b00fb0ffac766f1')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --prefix=/opt/GNUstep
+ make || return 1
+
+ make DESTDIR=$pkgdir install || return 1
+
+ install -D -m755 \
+ $startdir/pkg/opt/GNUstep/System/Library/Makefiles/GNUstep.sh \
+ $startdir/pkg/etc/profile.d/GNUstep.sh
+}
diff --git a/community/go/PKGBUILD b/community/go/PKGBUILD
new file mode 100644
index 000000000..55f26f725
--- /dev/null
+++ b/community/go/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id$
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Andres Perera <andres87p gmail>
+# Contributor: Matthew Bauer <mjbauer95@gmail.com>
+# Contributor: Christian Himpel <chressie at gmail dot com>
+
+pkgname=go
+pkgver=2011_02_15
+_pkgver=2011-02-15
+pkgrel=1
+pkgdesc='Google Go compiler and tools (release version)'
+arch=('i686' 'x86_64')
+url="http://golang.org/"
+license=('custom')
+depends=('perl' 'ed')
+makedepends=('mercurial')
+options=('!strip')
+install=$pkgname.install
+source=($pkgname.sh)
+md5sums=('67c472bfcfdb760d1d1f0a87cfe3661f')
+
+build() {
+ _hgroot="https://go.googlecode.com/hg/"
+ _hgrepo="release"
+
+ cd "$srcdir"
+ msg "Connecting to Mercurial server...."
+
+ if [ -d $_hgrepo ] ; then
+ cd $_hgrepo
+ hg pull -u
+ msg "The local files are updated."
+ else
+ hg clone $_hgroot $_hgrepo
+ fi
+
+ msg "Mercurial checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf "$srcdir/$_hgrepo-build"
+ cp -r "$srcdir/$_hgrepo" "$srcdir/$_hgrepo-build"
+ cd "$srcdir/$_hgrepo-build"
+
+ export GOROOT="$srcdir/$_hgrepo-build"
+ export GOOS=linux
+ export GOBIN="$GOROOT/bin"
+ export PATH="$GOBIN:$PATH"
+
+ mkdir -p "$GOROOT/bin"
+ cd "$GOROOT/src"
+ hg update release.$_pkgver
+
+ . ./make.bash
+}
+
+package() {
+ cd "$srcdir/release-build"
+
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/go/LICENSE
+ install -Dm644 misc/bash/go $pkgdir/etc/bash_completion.d/go
+ install -Dm644 misc/emacs/go-mode-load.el $pkgdir/usr/share/emacs/site-lisp/go-mode-load.el
+ install -Dm644 misc/emacs/go-mode.el $pkgdir/usr/share/emacs/site-lisp/go-mode.el
+ install -Dm644 misc/vim/syntax/go.vim $pkgdir/usr/share/vim/vimfiles/syntax/go.vim
+
+ mkdir -p $pkgdir/{etc/profile.d,usr/{share/go,lib/go,lib/go/src}}
+
+ cp -r bin $pkgdir/usr
+ cp -r doc misc -t $pkgdir/usr/share/go
+ cp -r pkg $pkgdir/usr/lib/go
+
+ install -Dm644 src/Make.* $pkgdir/usr/lib/go/src
+
+ # Headers for C modules
+ install -Dm644 src/pkg/runtime/runtime.h $pkgdir/usr/lib/go/src/pkg/runtime/runtime.h
+ install -Dm644 src/pkg/runtime/cgocall.h $pkgdir/usr/lib/go/src/pkg/runtime/cgocall.h
+
+ install $srcdir/go.sh $pkgdir/etc/profile.d/
+
+ # Point Python scripts to the python2 binary
+ cd $pkgdir/usr/share/go/misc/dashboard
+ sed -i 's/python$/\02/' {buildcontrol,googlecode_upload}.py godashboard/app.yaml
+ sed -i 's/python"/python2"/' builder/main.go
+ sed -i 's/python /python2 /' builder.sh
+}
diff --git a/community/go/go.install b/community/go/go.install
new file mode 100644
index 000000000..6d11cdbbc
--- /dev/null
+++ b/community/go/go.install
@@ -0,0 +1,5 @@
+post_install() {
+ echo
+ echo "Source /etc/profile.d/go.sh or relogin"
+ echo
+}
diff --git a/community/go/go.sh b/community/go/go.sh
new file mode 100755
index 000000000..4aa526a11
--- /dev/null
+++ b/community/go/go.sh
@@ -0,0 +1,3 @@
+export GOROOT=/usr/lib/go
+export GOOS=linux
+export GOBIN=/usr/bin
diff --git a/community/gobby/ChangeLog b/community/gobby/ChangeLog
new file mode 100644
index 000000000..45fe41a16
--- /dev/null
+++ b/community/gobby/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* No need for .install since gnome moved to /usr
diff --git a/community/gobby/PKGBUILD b/community/gobby/PKGBUILD
new file mode 100644
index 000000000..b4171ea9d
--- /dev/null
+++ b/community/gobby/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 18527 2010-06-07 11:16:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+
+pkgname=gobby
+pkgver=0.4.12
+pkgrel=2
+pkgdesc="A collaborative text editor"
+arch=('i686' 'x86_64')
+url="http://gobby.0x539.de"
+license=('GPL')
+depends=('obby' 'libxml++' 'gtkmm' 'gnome-vfs' 'libbonobo' 'libgtksourceviewmm2' 'gtksourceview2')
+makedepends=('gettext' 'intltool')
+options=(force)
+source=(http://releases.0x539.de/gobby/gobby-$pkgver.tar.gz)
+md5sums=('835cc48f5177196e4a18610c2cb013bf')
+
+build() {
+ cd $srcdir/gobby-$pkgver
+ ./configure --prefix=/usr --with-gnome
+ make || return 1
+ make DESTDIR=$pkgdir install
+ install -D -m644 contrib/gobby.desktop \
+ $pkgdir/usr/share/applications/gobby.desktop
+}
diff --git a/community/gocr/PKGBUILD b/community/gocr/PKGBUILD
new file mode 100644
index 000000000..e7e5386fe
--- /dev/null
+++ b/community/gocr/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 37573 2011-01-14 16:30:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=gocr
+pkgver=0.49
+pkgrel=1
+pkgdesc="Open-source character recognition (OCR)"
+arch=("i686" "x86_64")
+url="http://jocr.sourceforge.net/index.html"
+license=('GPL')
+depends=('glibc' 'netpbm')
+optdepends=('tk: to use the tk frontend')
+source=(http://www-e.uni-magdeburg.de/jschulen/ocr/gocr-${pkgver}.tar.gz)
+md5sums=('4e527bc4bdd97c2be15fdd818857507f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ [ $CARCH == "x86_64" ] && export CFLAGS=-fPIC
+ ./configure --prefix=/usr --mandir=/usr/share/man --libdir=/usr/lib
+ make -j1 all libs
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/lib
+ make DESTDIR=$pkgdir libdir=/usr/lib/ bindir=/usr/bin install
+ (cd $pkgdir/usr/lib/ && rm -f libPgm2asc.so && ln -s `echo libPgm2asc*.so` libPgm2asc.so)
+ install -D -m644 doc/gocr.html $pkgdir/usr/share/doc/gocr/gocr.html
+ for i in pgm2asc.h gocr.h; do
+ install -D -m644 src/$i $pkgdir/usr/include/gocr/$i
+ done
+}
diff --git a/community/gogglesmm/PKGBUILD b/community/gogglesmm/PKGBUILD
new file mode 100644
index 000000000..f544a749a
--- /dev/null
+++ b/community/gogglesmm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 41060 2011-03-03 15:30:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sander Jansen <sander@knology.net>
+
+pkgname=gogglesmm
+pkgver=0.12.1
+pkgrel=1
+pkgdesc="Music Manager and Player"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/gogglesmm/"
+license=('GPL3')
+install=gogglesmm.install
+depends=('fox>=1.6.0' 'xine-lib>=1.0' 'sqlite3>=3.4.0' 'taglib' 'dbus-core' 'curl' 'expat' 'libgcrypt')
+replaces=('musicmanager')
+conflicts=('musicmanager')
+source=(http://gogglesmm.googlecode.com/files/gogglesmm-$pkgver.tar.bz2)
+md5sums=('8657be2f67b25837fcf5d442700619aa')
+
+build() {
+ cd $srcdir/gogglesmm-$pkgver
+ ./configure --prefix=/usr
+ make
+ mkdir -p $pkgdir/usr/bin
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gogglesmm/gogglesmm.install b/community/gogglesmm/gogglesmm.install
new file mode 100644
index 000000000..04c026840
--- /dev/null
+++ b/community/gogglesmm/gogglesmm.install
@@ -0,0 +1,11 @@
+post_install() {
+ which gtk-update-icon-cache >/dev/null && gtk-update-icon-cache /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/goldendict/PKGBUILD b/community/goldendict/PKGBUILD
new file mode 100644
index 000000000..1bc3d9b84
--- /dev/null
+++ b/community/goldendict/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 36565 2011-01-04 21:08:42Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: m0rph <m0rph.mailbox@gmail.com>
+
+pkgname=goldendict
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="Feature-rich dictionary lookup program"
+arch=('i686' 'x86_64')
+url="http://goldendict.berlios.de/"
+license=('GPL3')
+depends=('hunspell' 'libvorbis' 'libxtst' 'libzip' 'openssl' 'phonon')
+makedepends=('patch')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-src.tar.bz2 \
+ $pkgname-paths.diff)
+md5sums=('d56bb854936015104029d1f0b98b61bb'
+ '4488d4353e5522796c00785f0ce265e1')
+
+build(){
+ cd ${srcdir}
+
+ patch -Np0 -i ${srcdir}/$pkgname-paths.diff
+
+ qmake
+ make
+ qmake
+}
+
+package() {
+ cd ${srcdir}
+
+ make INSTALL_ROOT=${pkgdir} install
+
+#removing unneeded
+ rm -rf ${pkgdir}/usr/share/app-install
+}
diff --git a/community/goldendict/goldendict-paths.diff b/community/goldendict/goldendict-paths.diff
new file mode 100644
index 000000000..812dfdb97
--- /dev/null
+++ b/community/goldendict/goldendict-paths.diff
@@ -0,0 +1,10 @@
+--- goldendict.pro~ 2010-12-27 22:52:21.000000000 +0100
++++ goldendict.pro 2010-12-27 22:52:21.000000000 +0100
+@@ -63,2 +63,2 @@
+- isEmpty( PREFIX ):PREFIX = /usr/local
+- DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/apps/goldendict/\\\"
++ isEmpty( PREFIX ):PREFIX = /usr
++ DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/goldendict/\\\"
+@@ -66 +66 @@
+- locale.path = $$PREFIX/share/apps/goldendict/locale/
++ locale.path = $$PREFIX/share/goldendict/locale/
diff --git a/community/goldendict/goldendict.changelog b/community/goldendict/goldendict.changelog
new file mode 100644
index 000000000..8ec311fe1
--- /dev/null
+++ b/community/goldendict/goldendict.changelog
@@ -0,0 +1,8 @@
+2010-12-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.1
+
+2010-02-16 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#18350 fixed in 0.9.0-5
+
+2009-06-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community] in v0.9.0
diff --git a/community/goocanvas/PKGBUILD b/community/goocanvas/PKGBUILD
new file mode 100644
index 000000000..1ab22f842
--- /dev/null
+++ b/community/goocanvas/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 41063 2011-03-03 15:31:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=goocanvas
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A cairo canvas widget for GTK+"
+arch=(i686 x86_64)
+url="http://live.gnome.org/GooCanvas"
+options=('!libtool' 'docs')
+license=("LGPL")
+depends=('gtk2')
+source=(http://ftp.gnome.org/pub/GNOME/sources/goocanvas/1.0/goocanvas-$pkgver.tar.bz2)
+md5sums=('4858a22239e45cf374195bae520021c2')
+
+build() {
+ cd $srcdir/goocanvas-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/goocanvasmm/PKGBUILD b/community/goocanvasmm/PKGBUILD
new file mode 100755
index 000000000..536c2d7e0
--- /dev/null
+++ b/community/goocanvasmm/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Laurent Meunier <laurent@deltalima.net>
+
+pkgname=goocanvasmm
+pkgver=0.15.4
+pkgrel=1
+pkgdesc='C++ wrappers for goocanvas'
+arch=('i686' 'x86_64')
+url='http://ftp.gnome.org/pub/gnome/sources/goocanvasmm/'
+license=('GPL')
+depends=('gegl' 'goocanvas' 'glibmm' 'gtkmm')
+source=("http://ftp.gnome.org/pub/gnome/sources/goocanvasmm/${pkgver:0:4}/goocanvasmm-${pkgver}.tar.bz2")
+md5sums=('cf462e8d2f36f4e02387eb094773b3e9')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --disable-documentation
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/google-gadgets/PKGBUILD b/community/google-gadgets/PKGBUILD
new file mode 100644
index 000000000..dd8d16abf
--- /dev/null
+++ b/community/google-gadgets/PKGBUILD
@@ -0,0 +1,155 @@
+# $Id: PKGBUILD 43358 2011-03-25 11:00:25Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+
+pkgbase=google-gadgets
+pkgname=('google-gadgets-common' 'google-gadgets-gtk' 'google-gadgets-qt')
+_realname=$pkgbase-for-linux
+_basedir="$startdir/pkg/base"
+pkgver=0.11.2
+_sover=1.0
+_sobump=0.0.0
+pkgrel=3
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/google-gadgets-for-linux/"
+license=('APACHE')
+makedepends=('gstreamer0.10-base-plugins' 'libwebkit'
+ 'desktop-file-utils' 'xdg-utils'
+ 'librsvg' 'curl' 'libsoup-gnome'
+ 'qt'
+ 'networkmanager'
+ 'zip' 'flex')
+options=('!libtool')
+source=("http://google-gadgets-for-linux.googlecode.com/files/$_realname-$pkgver.tar.bz2")
+md5sums=('279305553bcbf74f3e3615f6abc36a5e')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ # Building thrice is expensive;
+ # we move files around instead
+ #
+ # xulrunner 2.0 is incompatible;
+ # we build without smjs-script/browser-element
+
+ ./configure --prefix=/usr \
+ --disable-werror \
+ --disable-update-desktop-database \
+ --disable-update-mime-database \
+ --with-oem-brand=Arch \
+ --with-ssl-ca-file=/etc/ssl/certs/ca-certificates.crt \
+ --with-browser-plugins-dir=/usr/lib/mozilla/plugins \
+ --disable-gtkmoz-browser-element \
+ --disable-smjs-script-runtime
+ make
+}
+
+package_google-gadgets-common() {
+ pkgdesc="Desktop widgets from Google (common files)"
+ install=$pkgbase-common.install
+ depends=('hicolor-icon-theme' 'shared-mime-info')
+ optdepends=('google-gadgets-gtk: GTK+ (full) UI'
+ 'google-gadgets-qt: Qt (partial) UI')
+
+ cd "$srcdir/$_realname-$pkgver"
+
+ make -j1 DESTDIR="$pkgdir/" install
+
+ # we need to remove stuff in this package
+ cp -a "$pkgdir" "$_basedir"
+
+ # do not force any removal; we want to know in case files change
+ cd "$pkgdir/usr"
+ rm -r bin
+ rm -r share/applications
+
+ cd "$pkgdir/usr/lib/$pkgbase"
+
+ # gtk-related
+ #rm gtkmoz-browser-child
+ rm ../lib*gtk*
+ rm modules/gtk*.so
+
+ # qt-related
+ rm ../lib*qt*
+ rm modules/qt*.so
+}
+
+package_google-gadgets-gtk() {
+ pkgdesc="Desktop widgets from Google (full GTK+ front-end)"
+ groups=('google-gadgets')
+ install=$pkgbase.install
+ depends=('google-gadgets-common'
+ 'desktop-file-utils' 'xdg-utils'
+ 'gstreamer0.10-base-plugins' 'libwebkit' 'libsoup-gnome'
+ 'librsvg' 'curl')
+ optdepends=('networkmanager: desktop integration')
+
+ # install the gtk binary
+ cd "$_basedir"
+ install -Dm755 "usr/bin/ggl-gtk" "$pkgdir/usr/bin/ggl-gtk"
+
+ # gtk-only browser stuff
+ #install -Dm755 usr/lib/$pkgbase/gtkmoz-browser-child \
+ # "$pkgdir/usr/lib/$pkgbase/gtkmoz-browser-child"
+
+ # now the gtk libraries
+ mkdir -p "$pkgdir/usr/lib/$pkgbase/modules"
+
+ install -m755 usr/lib/$pkgbase/modules/gtk*.so \
+ "$pkgdir/usr/lib/$pkgbase/modules/"
+
+ install -m755 usr/lib/lib*gtk* "$pkgdir/usr/lib"
+
+ # fix permissions and symlinks
+ find "$pkgdir/usr/lib" -name *.a -exec chmod 644 {} \;
+
+ ln -sf /usr/lib/libggadget-gtk-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-gtk-$_sover.so"
+
+ ln -sf /usr/lib/libggadget-gtk-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-gtk-$_sover.so.0"
+
+ # freedesktop.org for gtk
+ install -Dm644 usr/share/applications/ggl-gtk.desktop \
+ "$pkgdir/usr/share/applications/ggl-gtk.desktop"
+
+ install -m644 usr/share/applications/ggl-designer.desktop \
+ "$pkgdir/usr/share/applications/"
+}
+
+package_google-gadgets-qt() {
+ pkgdesc="Desktop widgets from Google (partial Qt front-end)"
+ groups=('google-gadgets')
+ install=$pkgbase.install
+ depends=('google-gadgets-common' 'qt'
+ 'desktop-file-utils' 'xdg-utils'
+ 'gstreamer0.10-base-plugins' 'libwebkit')
+ optdepends=('networkmanager: desktop integration')
+
+ # install the qt binary
+ cd "$_basedir"
+ install -Dm755 usr/bin/ggl-qt "$pkgdir/usr/bin/ggl-qt"
+
+ # the qt libraries
+ mkdir -p "$pkgdir/usr/lib/$pkgbase/modules"
+
+ install -m755 usr/lib/$pkgbase/modules/qt*.so \
+ "$pkgdir/usr/lib/$pkgbase/modules/"
+
+ install -m755 usr/lib/lib*qt* "$pkgdir/usr/lib/"
+
+ # fix permissions and symlinks
+ find "$pkgdir/usr/lib" -name *.a -exec chmod 644 {} \;
+
+ ln -sf /usr/lib/libggadget-qt-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-qt-$_sover.so"
+
+ ln -sf /usr/lib/libggadget-qt-$_sover.so.$_sobump \
+ "$pkgdir/usr/lib/libggadget-qt-$_sover.so.0"
+
+ # freedesktop.org for qt
+ install -Dm644 usr/share/applications/ggl-qt.desktop \
+ "$pkgdir/usr/share/applications/ggl-qt.desktop"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/google-gadgets/google-gadgets-common.install b/community/google-gadgets/google-gadgets-common.install
new file mode 100644
index 000000000..210cbc869
--- /dev/null
+++ b/community/google-gadgets/google-gadgets-common.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo "==> Updating desktop database..."
+ gtk-update-icon-cache --quiet usr/share/icons/hicolor
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/google-gadgets/google-gadgets.changelog b/community/google-gadgets/google-gadgets.changelog
new file mode 100644
index 000000000..5b8f85a71
--- /dev/null
+++ b/community/google-gadgets/google-gadgets.changelog
@@ -0,0 +1,8 @@
+25 Mar 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.11.2-3:
+ xulrunner rebuild
+ - undepend on xulrunner (2.0 incompatible)
+ - disable smjs-script/browser-element
+ Cleaned up scriptlets (too many blank lines)
+ Added this changelog
diff --git a/community/google-gadgets/google-gadgets.install b/community/google-gadgets/google-gadgets.install
new file mode 100644
index 000000000..fd88688fc
--- /dev/null
+++ b/community/google-gadgets/google-gadgets.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo "==> Updating desktop database..."
+ update-mime-database usr/share/mime &> /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/gource/PKGBUILD b/community/gource/PKGBUILD
new file mode 100644
index 000000000..40c9fc388
--- /dev/null
+++ b/community/gource/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 42923 2011-03-22 18:17:04Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Jose Valecillos <valecillosjg (at) gmail (dot) com>
+# Contributor: Olivier Ramonat <olivier at ramonat dot fr>
+pkgname=gource
+pkgver=0.32
+pkgrel=1
+pkgdesc="software version control visualization"
+license=(GPL3)
+arch=(i686 x86_64)
+url=http://code.google.com/p/gource/
+depends=('ftgl' 'sdl' 'sdl_image' 'pcre' 'glew')
+source=(http://gource.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('7aed2fcf8f0c09b8cea5b19a418b0724')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR=$pkgdir install
+}
+# vim: ts=2:sw=2 et:
diff --git a/community/gpa/ChangeLog b/community/gpa/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/gpa/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/gpa/PKGBUILD b/community/gpa/PKGBUILD
new file mode 100644
index 000000000..1b2c51e62
--- /dev/null
+++ b/community/gpa/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 528 2009-08-01 19:41:58Z giovanni $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Ravi Desai <ravster3@hotmail.com>
+
+pkgname=gpa
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="A graphical user interface for the GnuPG"
+arch=('i686' 'x86_64')
+url="http://wald.intevation.org/projects/gpa/"
+license=('GPL')
+depends=('gpgme' 'gtk2')
+makedepends=('pkgconfig')
+source=(http://wald.intevation.org/frs/download.php/603/gpa-$pkgver.tar.bz2)
+md5sums=('8859f9cf69e94e10e4895f633a0b268a')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/gpac/PKGBUILD b/community/gpac/PKGBUILD
new file mode 100644
index 000000000..8849977aa
--- /dev/null
+++ b/community/gpac/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: niQo
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gpac
+pkgver=0.4.5
+pkgrel=6
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+arch=('i686' 'x86_64')
+url="http://gpac.sourceforge.net"
+depends=('libxml2' 'wxgtk' 'alsa-lib' 'sdl' 'spidermonkey' 'libmad' \
+ 'faad2' 'xvidcore' 'ffmpeg' 'freeglut')
+license=('LGPL')
+options=('!makeflags') # Multiple build jobs aren't handled correctly
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ libpng14-infopp-null.patch)
+md5sums=('755e8c438a48ebdb13525dd491f5b0d1'
+ '14d6483c9eb84434aea68596f243e0ca')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ chmod +x configure
+ sed -i 's#osmozilla##g' applications/Makefile
+ sed -i 's#"$(prefix)#"$(DESTDIR)$(prefix)#' applications/osmo4_wx/Makefile
+ sed -i 's#ldconfig || true##g' Makefile
+
+ #FS#14506
+ sed -i 's#lib64#lib#g' configure
+ patch -Np1 -i ${srcdir}/libpng14-infopp-null.patch || return 1
+
+ # Was getting "symbol lookup error: /usr/lib/gpac/gm_x11_out.so: undefined
+ # symbol: XvQueryExtension" with our LDFLAGS :\
+ unset LDFLAGS
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --use-js=no
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ make DESTDIR=${pkgdir} install install-lib
+}
diff --git a/community/gpac/libpng14-infopp-null.patch b/community/gpac/libpng14-infopp-null.patch
new file mode 100644
index 000000000..b02456557
--- /dev/null
+++ b/community/gpac/libpng14-infopp-null.patch
@@ -0,0 +1,12 @@
+diff -upr gpac.orig/src/media_tools/img.c gpac/src/media_tools/img.c
+--- gpac.orig/src/media_tools/img.c 2010-01-24 19:03:28.000000000 +0200
++++ gpac/src/media_tools/img.c 2010-01-24 19:04:07.000000000 +0200
+@@ -551,7 +551,7 @@ GF_Err gf_img_png_enc(char *data, u32 wi
+ /* Allocate/initialize the image information data. REQUIRED */
+ info_ptr = png_create_info_struct(png_ptr);
+ if (info_ptr == NULL) {
+- png_destroy_write_struct(&png_ptr, png_infopp_NULL);
++ png_destroy_write_struct(&png_ptr, NULL);
+ return GF_IO_ERR;
+ }
+
diff --git a/community/gpg-crypter/PKGBUILD b/community/gpg-crypter/PKGBUILD
new file mode 100644
index 000000000..88787c6d0
--- /dev/null
+++ b/community/gpg-crypter/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 9138 2010-01-23 20:04:16Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=gpg-crypter
+pkgver=0.3.5
+pkgrel=4
+pkgdesc="A graphical front-end to GnuPG(GPG) using the GTK2 toolkit and libgpgme"
+arch=('i686' 'x86_64')
+url="http://gpg-crypter.sourceforge.net/"
+license=('GPL')
+depends=('gtk2' 'gpgme')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
+ $pkgname.desktop)
+md5sums=('be33140ae205b8a3f37217c1c2c0737a'
+ 'a2a226ff44eb02cdab7bee46864dea6d')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+# icon
+ install -Dm644 ${srcdir}/$pkgname-$pkgver/pixmaps/$pkgname.png \
+ ${pkgdir}/usr/share/pixmaps/$pkgname.png || return 1
+
+# .desktop file
+ install -Dm644 ${srcdir}/$pkgname.desktop \
+ ${pkgdir}/usr/share/applications/$pkgname.desktop || return 1
+
+# delete unneeded icon
+ rm -rf ${pkgdir}/usr/share/$pkgname || return 1
+}
diff --git a/community/gpg-crypter/gpg-crypter.desktop b/community/gpg-crypter/gpg-crypter.desktop
new file mode 100644
index 000000000..446efc414
--- /dev/null
+++ b/community/gpg-crypter/gpg-crypter.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=GPG Crypter
+Comment=GPG Crypter utility
+Exec=gpg-crypter
+Terminal=false
+Type=Application
+Icon=gpg-crypter
+Categories=Utility;
diff --git a/community/gphpedit/PKGBUILD b/community/gphpedit/PKGBUILD
new file mode 100644
index 000000000..352a3252d
--- /dev/null
+++ b/community/gphpedit/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 18217 2010-06-01 12:55:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gphpedit
+pkgver=0.9.98RC1
+pkgrel=1
+pkgdesc="a scintilla/gnome based editor specialized on php-files"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgnomeui>=2.18.1-2' 'libgtkhtml>=2.11.0' 'desktop-file-utils' 'libwebkit')
+url="http://www.gphpedit.org/"
+options=('!makeflags')
+install=gphpedit.install
+source=(http://www.gphpedit.org/sites/default/files/gphpedit-$pkgver.tar.gz
+ doc-fix.patch)
+md5sums=('cc3c5f50704fa0ed3ef3d4ac983db525'
+ 'db5e427642af2971accbcd90812ae88c')
+
+build() {
+ cd ${srcdir}/*$pkgname*
+# patch -Np1 -i ${srcdir}/doc-fix.patch || return 1
+
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ # extend MimeType declaration
+ echo "MimeType=application/x-php;text-x-php-text/x-php-source;" >> \
+ $pkgdir/usr/share/applications/gphpedit.desktop
+}
diff --git a/community/gphpedit/doc-fix.patch b/community/gphpedit/doc-fix.patch
new file mode 100644
index 000000000..42dae5f72
--- /dev/null
+++ b/community/gphpedit/doc-fix.patch
@@ -0,0 +1,20 @@
+--- gphpedit-0.9.91/src/tab.c.orig 2008-07-08 00:21:04.000000000 +0200
++++ gphpedit-0.9.91/src/tab.c 2008-07-08 00:20:50.000000000 +0200
+@@ -562,6 +562,17 @@
+ if (long_filename)
+ return long_filename;
+
++ // For ArchLinux - KISS ;)
++ long_filename = tab_help_try_filename("/usr/share/doc/php/html/function.", command, ".html");
++ if (long_filename)
++ return long_filename;
++ long_filename = tab_help_try_filename("/usr/share/doc/php/html/ref.", command, ".html");
++ if (long_filename)
++ return long_filename;
++ long_filename = tab_help_try_filename("/usr/share/doc/php/html/", command, NULL);
++ if (long_filename)
++ return long_filename;
++
+ // For Gentoo, as much as I love it - it's twatty to put docs in a version specific folder like this!
+ long_filename = tab_help_try_filename("/usr/doc/php-docs-200403/html/function.", command, ".html");
+ if (long_filename)
diff --git a/community/gphpedit/gphpedit.install b/community/gphpedit/gphpedit.install
new file mode 100644
index 000000000..21f20806c
--- /dev/null
+++ b/community/gphpedit/gphpedit.install
@@ -0,0 +1,16 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/community/gpicview/PKGBUILD b/community/gpicview/PKGBUILD
new file mode 100644
index 000000000..faf15aff6
--- /dev/null
+++ b/community/gpicview/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=gpicview
+pkgver=0.2.1
+pkgrel=3
+pkgdesc="Picture viewer of the LXDE Desktop"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2')
+makedepends=('pkgconfig' 'intltool')
+optdepends=('librsvg: For SVG support')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a2de255bf9bdc40746c0dc89b3454a10')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/gprolog/PKGBUILD b/community/gprolog/PKGBUILD
new file mode 100644
index 000000000..9a4b32558
--- /dev/null
+++ b/community/gprolog/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 18237 2010-06-01 19:57:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributer: Jason Chu <jchu@xentac.net>
+
+pkgname=gprolog
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="GNU Prolog"
+arch=('i686' 'x86_64')
+url="http://www.gprolog.org/"
+depends=(glibc)
+license=('GPL')
+source=(ftp://ftp.gnu.org/gnu/gprolog/gprolog-$pkgver.tar.gz)
+md5sums=('cbae19c31e17bcfca4b57fe35ec4aba2')
+
+build() {
+ cd "$srcdir/gprolog-$pkgver/src"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make || return 1
+ make install \
+ INSTALL_DIR="$pkgdir"/usr/share/gprolog \
+ LINKS_DIR="$pkgdir"/usr/bin \
+ DOC_DIR="$pkgdir"/usr/share/gprolog/doc \
+ HTML_DIR="$pkgdir"/usr/share/gprolog/doc/Html \
+ EXAMPLES_DIR="$pkgdir"/usr/share/gprolog \
+ sysconfdir="$pkgdir"/etc \
+ localstatedir="$pkgdir"/var || return 1
+ cd "$pkgdir"/usr/bin
+ rm *
+ ln -s /usr/share/gprolog/bin/fd2c && \
+ ln -s /usr/share/gprolog/bin/gplc && \
+ ln -s /usr/share/gprolog/bin/gprolog && \
+ ln -s /usr/share/gprolog/bin/hexgplc && \
+ ln -s /usr/share/gprolog/bin/ma2asm && \
+ ln -s /usr/share/gprolog/bin/pl2wam && \
+ ln -s /usr/share/gprolog/bin/wam2ma
+}
diff --git a/community/gpsbabel/PKGBUILD b/community/gpsbabel/PKGBUILD
new file mode 100644
index 000000000..25f5551c9
--- /dev/null
+++ b/community/gpsbabel/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 38742 2011-01-31 16:53:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gpsbabel
+pkgver=1.4.2
+pkgrel=1
+pkgdesc="Reads, writes, and manipulates GPS waypoints in a variety of formats"
+arch=('i686' 'x86_64')
+url="http://www.gpsbabel.org"
+license=('GPL')
+depends=('libusb-compat' 'expat')
+makedepends=('fop')
+options=('docs')
+source=(gpsbabel-$pkgver.tar.gz::http://archlinux-stuff.googlecode.com/files/gpsbabel-$pkgver.tar.gz)
+md5sums=('76ea9f7852be2e98aa18976c4697ca93')
+
+build() {
+ cd $srcdir/gpsbabel-$pkgver
+ mkdir -p $pkgdir/usr/bin
+ ./configure --prefix=/usr
+
+ make
+ make doc
+ make DESTDIR=$pkgdir install
+
+ # Header install
+ mkdir -p $pkgdir/usr/include/gpsbabel
+ cp {defs.h,queue.h,gbtypes.h,filterdefs.h,cet.h,cet_util.h,garmin_tables.h} \
+ $pkgdir/usr/include/gpsbabel
+
+ # Doc install
+ mkdir -p $pkgdir/usr/share/doc/$pkgname
+ cp -r $srcdir/babelweb/* $pkgdir/usr/share/doc/$pkgname/
+ cp README* $pkgdir/usr/share/doc/$pkgname/
+}
diff --git a/community/gpsdrive/PKGBUILD b/community/gpsdrive/PKGBUILD
new file mode 100644
index 000000000..f821235b1
--- /dev/null
+++ b/community/gpsdrive/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 41051 2011-03-03 15:12:22Z tdziedzic $
+# 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=5
+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")
+md5sums=('6eeeca8e5c647115bea836d1f8fb6e0c')
+
+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"
+
+ # 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"
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gpsdrive/gpsdrive.install b/community/gpsdrive/gpsdrive.install
new file mode 100644
index 000000000..8ea63912e
--- /dev/null
+++ b/community/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/gpsim/PKGBUILD b/community/gpsim/PKGBUILD
new file mode 100644
index 000000000..e13695f36
--- /dev/null
+++ b/community/gpsim/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 21223 2010-07-15 10:16:50Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: mickael9 <mickael9 at gmail dot com>
+
+pkgname=gpsim
+pkgver=0.25.0
+pkgrel=1
+pkgdesc="A full-featured software simulator for Microchip PIC microcontrollers"
+arch=(i686 x86_64)
+url="http://gpsim.sourceforge.net/"
+license=(GPL)
+depends=('gtk2+extra' 'popt')
+makedepends=('gtk2+extra')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('36e2aeac30fad773f5fb934c867b42b7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gpsman/PKGBUILD b/community/gpsman/PKGBUILD
new file mode 100644
index 000000000..329822ed9
--- /dev/null
+++ b/community/gpsman/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 11972 2010-02-24 02:57:47Z dgriffiths $
+# Maintainer: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=gpsman
+pkgver=6.4
+pkgrel=4
+pkgdesc="GPS Manager is a graphical GPS data manager for preparing, inspectiing and editing GPS data"
+arch=('i686' 'x86_64')
+url="http://www.ncc.up.pt/gpsman"
+license=('GPL')
+depends=('tcl' 'tk')
+optdepends=('gpsmanshp: shapefile support')
+install=gpsman.install
+source=(http://www.ncc.up.pt/gpsman/gpsmanhtml/${pkgname}-${pkgver}.tgz
+ 'gpsman.desktop')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ mkdir -p ${pkgdir}/usr/{bin,share/${pkgname}}
+
+ # set path to program files
+ sed -i "s|set SRCDIR gmsrc|set SRCDIR /usr/share/gpsman|g" ./gpsman.tcl
+ install -m755 gpsman.tcl ${pkgdir}/usr/bin/gpsman.tcl
+
+ # install a gpsman launcher
+ install -m755 util/gpsman.sh ${pkgdir}/usr/bin/gpsman || return 1
+
+ #install program files
+ cp -r gmsrc/* ${pkgdir}/usr/share/gpsman/ || return 1
+ chmod 755 ${pkgdir}/usr/share/gpsman/*.tcl
+ chmod -R 755 ${pkgdir}/usr/share/gpsman/gmicons
+
+ # install some freedesktop.org compatibility
+ install -D -m644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
+md5sums=('3a47f1953e0bad1ea3a79aba0a713f1a'
+ '0341f110f61e57b316fad7bee483665b')
diff --git a/community/gpsman/gpsman.desktop b/community/gpsman/gpsman.desktop
new file mode 100644
index 000000000..b0c359bd7
--- /dev/null
+++ b/community/gpsman/gpsman.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=GPSMan
+GenericName=
+Comment="Graphical GPS data manager for preparing, inspectiing and editing GPS data"
+Exec=/usr/bin/gpsman
+Icon=
+Terminal=false
+MultipleArgs=false
+Type=Application
+Categories=Application;Science
diff --git a/community/gpsman/gpsman.install b/community/gpsman/gpsman.install
new file mode 100644
index 000000000..8b3a5092f
--- /dev/null
+++ b/community/gpsman/gpsman.install
@@ -0,0 +1,39 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ echo
+ echo " : You should change the path to your gps serial device in"
+ echo " : /usr/bin/gpsman"
+ echo
+ echo " : Config options are stored in /usr/share/gpsman/config.tcl"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
diff --git a/community/gpsmanshp/PKGBUILD b/community/gpsmanshp/PKGBUILD
new file mode 100644
index 000000000..36e723e7e
--- /dev/null
+++ b/community/gpsmanshp/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 21514 2010-07-16 14:22:13Z tdziedzic $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=gpsmanshp
+pkgver=1.2
+pkgrel=4
+pkgdesc='A Tcl package to read and write shapefiles'
+arch=('i686' 'x86_64')
+url='http://www.ncc.up.pt/gpsmanshp'
+license=('GPL')
+depends=('bash' 'tcl' 'shapelib')
+source=("http://www.ncc.up.pt/${pkgname}/${pkgname}_${pkgver}.tgz")
+md5sums=('b32e16afe3e306cf991ea38713fd0c9e')
+
+build() {
+ cd ${pkgname}_${pkgver}
+
+ mv Makefile8.4.4 Makefile
+
+ mkdir -p ${pkgdir}/usr/lib/
+
+ # set install path
+ sed -i -e "s|/usr/lib/tcl\$(TCLVERSION)|${pkgdir}/usr/lib/gpsmanshp|g" Makefile
+ sed -i -e "s|tclsh\$(TCLVERSION)|tclsh|g" Makefile
+ sed -i "s|package-8.3.tcl|/usr/lib/tcl8.5/package.tcl|g" Makefile
+ sed -i "s|8.4|8.5|g" Makefile
+
+ make
+}
+
+package() {
+ cd ${pkgname}_${pkgver}
+
+ make install
+}
diff --git a/community/gputils/PKGBUILD b/community/gputils/PKGBUILD
new file mode 100644
index 000000000..f9a0af123
--- /dev/null
+++ b/community/gputils/PKGBUILD
@@ -0,0 +1,25 @@
+# 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
+pkgdesc="PIC Programming Utilities"
+arch=('i686' 'x86_64')
+url="http://gputils.sourceforge.net/"
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('242e33919e9c318d6ac58b6db291d20e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/gq/PKGBUILD b/community/gq/PKGBUILD
new file mode 100644
index 000000000..f5ab49586
--- /dev/null
+++ b/community/gq/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 18516 2010-06-07 11:11:04Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Gergely Tamas <dice@mfa.kfki.hu>
+
+pkgname=gq
+pkgver=1.3.4
+pkgrel=1
+pkgdesc="interactive graphical LDAP browser"
+url="http://sourceforge.net/projects/gqclient"
+license=("GPL")
+depends=('libxml2' 'gtk2' 'libgnome-keyring' 'libglade' 'libldap>=2.4.18' 'libgpg-error' 'libgcrypt')
+makedepends=('intltool' 'pkgconfig')
+arch=('i686' 'x86_64')
+install=gq.install
+source=(http://downloads.sourceforge.net/sourceforge/gqclient/$pkgname-$pkgver.tar.gz)
+md5sums=('d7b1e183a3ecbd77aceea02d27f36b3e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --disable-debugging --disable-update-mimedb
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gq/gq.install b/community/gq/gq.install
new file mode 100644
index 000000000..895935dc6
--- /dev/null
+++ b/community/gq/gq.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/community/grace/PKGBUILD b/community/grace/PKGBUILD
new file mode 100644
index 000000000..c0bd0d791
--- /dev/null
+++ b/community/grace/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 32615 2010-11-15 22:22:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=grace
+pkgver=5.1.22
+pkgrel=4
+pkgdesc="2D plotting tool"
+arch=(i686 x86_64)
+url="http://plasma-gate.weizmann.ac.il/Grace/"
+depends=('libjpeg' 'libpng' 'lesstif' 't1lib' 'netcdf')
+makedepends=('netcdf' 'fftw')
+license=('GPL')
+source=(ftp://plasma-gate.weizmann.ac.il/pub/grace/src/grace5/$pkgname-$pkgver.tar.gz)
+md5sums=('672356466f18fe59ed21a8fb44f9851d')
+md5sums=('672356466f18fe59ed21a8fb44f9851d')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --exec-prefix=/usr \
+ --enable-grace-home=/usr/share/grace \
+ --includedir=/usr/include --libdir=/usr/lib \
+ -with-helpviewer="firefox %s"
+ make
+ make DESTDIR=$pkgdir install
+ cd $pkgdir/usr/share/grace && mv bin lib include ../../
+}
diff --git a/community/grass/PKGBUILD b/community/grass/PKGBUILD
new file mode 100644
index 000000000..9edb6063d
--- /dev/null
+++ b/community/grass/PKGBUILD
@@ -0,0 +1,105 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=grass
+pkgver=6.4.1RC2
+pkgrel=1
+pkgdesc='Geographic Information System (GIS) used for geospatial data management and analysis, image processing, graphics/maps production, spatial modeling, and visualization.'
+arch=('i686' 'x86_64')
+url='http://grass.itc.it/index.php'
+license=('GPL')
+depends=('gdal' 'tk' 'sqlite3' 'python2' 'mesa' 'swig' 'proj' 'libjpeg' 'libpng' 'libtiff' 'cfitsio')
+makedepends=('mysql' 'postgresql' 'r' 'fftw' 'freetype2' 'xorg-server')
+optdepends=('fftw: required for i.fft and i.ifft modules'
+ 'postgresql: PostgreSQL database interface'
+ 'r: R language interface'
+ 'lapack: required for GMATH library'
+ 'blas: required for GMATH library'
+ 'xorg-server: required for the graphical interface')
+options=('!libtool' '!makeflags')
+install='grass.install'
+source=("http://grass.itc.it/grass64/source/grass-${pkgver}.tar.gz"
+ "grass.sh"
+ "grass.conf")
+md5sums=('e994fab74279cf19a9d7cff6440535c3'
+ 'a0e0ac6275e09a272f8ec38d3c0b4b3a'
+ '6103480c2a1adc19a50b9e925e5e6d4c')
+
+build() {
+ cd grass-${pkgver}
+
+ # python2 fix
+ sed -i 's_python $< $(GISBASE) > $@_python2 $< $(GISBASE) > $@_' gui/wxpython/Makefile
+ 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
+
+ # the following exports are probably not needed
+ export PYTHON=python2
+ export DOXNAME=python2
+ export GRASS_python=python2
+
+ # fix wxpython error
+ sed -i 's/python/&2/' ./include/Make/Platform.make.in
+
+ # see ${srcdir}/grass-6.4.0/REQUIREMENTS.html for options
+ ./configure \
+ --prefix=/opt \
+ --with-mysql-includes=/usr/include/mysql \
+ --with-mysql \
+ --with-sqlite \
+ --with-postgres \
+ --with-fftw \
+ --with-gdal=/usr/bin/gdal-config \
+ --with-blas \
+ --with-lapack \
+ --with-proj-libs=/usr/lib \
+ --with-proj-includes=/usr/include \
+ --with-proj-share=/usr/share/proj \
+ --with-fftw-includes=/usr/include \
+ --with-fftw-libs=/usr/lib \
+ --with-python=/usr/bin/python2-config
+
+ #--with-freetype-includes=/usr/include
+
+ make
+
+ # some more potential problems nvm, works without, but save for future use if problems arrise
+ #cd ${pkgdir}/opt/grass-${pkgver}
+ #sed -i 's/PYTHON = python/PYTHON = python2/' include/Make/Python.make
+ #sed -i 's/GRASS_PYTHON=python/GRASS_PYTHON=python2/' etc/Init.sh
+}
+
+package() {
+ cd grass-${pkgver}
+
+ make \
+ INST_DIR=${pkgdir}/opt/grass-${pkgver} \
+ BINDIR=${pkgdir}/usr/bin \
+ install
+
+ # fix $GISBASE path
+ sed -i "s|GISBASE=${pkgdir}/opt/grass-${pkgver}|GISBASE=/opt/grass-${pkgver}|g" \
+ ${pkgdir}/usr/bin/grass64
+
+ # install profile.d file
+ install -D ${srcdir}/grass.sh \
+ ${pkgdir}/etc/profile.d/grass.sh
+
+ # install some freedesktop.org compatibility
+ install -D -m644 gui/icons/grass.desktop \
+ ${pkgdir}/usr/share/applications/grass.desktop
+
+ sed -i -e 's/grass65/grass64/' -e 's_/usr/share/icons_/usr/share/pixmaps_' \
+ ${pkgdir}/usr/share/applications/grass.desktop
+
+ install -D -m644 gui/icons/grass-48x48.png \
+ ${pkgdir}/usr/share/pixmaps/grass-48x48.png
+
+ # create a symlink for version work around
+ ln -sf /opt/grass-${pkgver} ${pkgdir}/opt/grass
+
+ install -D -m644 ${srcdir}/grass.conf \
+ ${pkgdir}/etc/ld.so.conf.d/grass.conf
+}
diff --git a/community/grass/grass.conf b/community/grass/grass.conf
new file mode 100644
index 000000000..bb4964d93
--- /dev/null
+++ b/community/grass/grass.conf
@@ -0,0 +1 @@
+/opt/grass/lib
diff --git a/community/grass/grass.install b/community/grass/grass.install
new file mode 100644
index 000000000..dc6b4eec6
--- /dev/null
+++ b/community/grass/grass.install
@@ -0,0 +1,12 @@
+post_install() {
+ pre_remove
+}
+
+post_upgrade() {
+ pre_remove
+}
+
+pre_remove() {
+ sed -e '/\/opt\/grass-*\/lib/d' -i /etc/ld.so.conf
+}
+
diff --git a/community/grass/grass.sh b/community/grass/grass.sh
new file mode 100644
index 000000000..ccc2fcd7e
--- /dev/null
+++ b/community/grass/grass.sh
@@ -0,0 +1,4 @@
+export GISBASE=/opt/grass
+export PATH=$PATH:$GISBASE/bin
+export MANPATH=$MANPATH:$GISBASE/man
+export GRASS_PYTHON=python2
diff --git a/community/gri/PKGBUILD b/community/gri/PKGBUILD
new file mode 100644
index 000000000..be8bc2276
--- /dev/null
+++ b/community/gri/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: big_gie nbigaouette . at . gmail.com
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=gri
+pkgver=2.12.22
+pkgrel=1
+pkgdesc="A script-based language for scientific graphics programming."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://gri.sourceforge.net/"
+depends=('imagemagick' 'texlive-core' 'perl')
+makedepends=('ghostscript' 'gzip')
+source=(http://downloads.sourceforge.net/gri/$pkgname-$pkgver.tar.gz)
+md5sums=('e719475161761fa9c7d2e2c2e94c2e76')
+install=gri.install
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ rm $pkgdir/usr/share/info/*.gz
+}
diff --git a/community/gri/gri.install b/community/gri/gri.install
new file mode 100644
index 000000000..066fc98c7
--- /dev/null
+++ b/community/gri/gri.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gri.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/gromacs/PKGBUILD b/community/gromacs/PKGBUILD
new file mode 100644
index 000000000..afc51016d
--- /dev/null
+++ b/community/gromacs/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 43416 2011-03-25 21:35:12Z ebelanger $
+# Maintainer: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Ricardo <rikardo.horo@gmail.com>
+
+pkgname=gromacs
+pkgver=4.5.4
+pkgrel=1
+pkgdesc='A fast Molecular Dynamics program based on the GROMOS force field'
+url='http://www.gromacs.org/'
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('fftw' 'lesstif' 'perl' 'libxml2' 'libsm' 'libx11')
+options=('!libtool')
+source=(ftp://ftp.gromacs.org/pub/gromacs/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5013de941017e014b92d41f82c7e86d6')
+sha1sums=('c7b3fbd2f3ddf915bc082e7effe76a8276563726')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ [ "$CARCH" == "i686" ] && SSE="--disable-ia32-sse"
+ ./configure --prefix=/usr --enable-shared $SSE
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+# installing completions in correct location
+ install -D -m644 scripts/completion.bash "${pkgdir}/etc/bash_completion.d/gromacs"
+ install -D -m644 scripts/completion.zsh "${pkgdir}/usr/share/zsh/site-functions/gromacs"
+
+# Cleaning up, kept the csh completion at default location
+ rm "${pkgdir}"/usr/bin/{completion.bash,completion.zsh,GMXRC,GMXRC.bash,GMXRC.zsh}
+}
diff --git a/community/grsync/PKGBUILD b/community/grsync/PKGBUILD
new file mode 100644
index 000000000..9b5cb826d
--- /dev/null
+++ b/community/grsync/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 16852 2010-05-11 12:30:04Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=grsync
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="GTK GUI for rsync"
+arch=('i686' 'x86_64')
+url="http://www.opbyte.it/grsync"
+license=('GPL')
+depends=('gtk2' 'rsync')
+makedepends=('gettext' 'intltool')
+install=grsync.install
+source=(http://www.opbyte.it/release/grsync-$pkgver.tar.gz)
+md5sums=('81d3b6a1827fa1b06d87491f9bb1c8b9')
+
+build() {
+ cd $startdir/src/grsync-$pkgver
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/grsync/grsync.install b/community/grsync/grsync.install
new file mode 100644
index 000000000..5f0358791
--- /dev/null
+++ b/community/grsync/grsync.install
@@ -0,0 +1,13 @@
+post_install() {
+ [ -x `which update-mime-database` ] && update-mime-database usr/share/mime
+ [ -x `which gtk-update-icon-cache` ] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ /bin/true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/gsasl/PKGBUILD b/community/gsasl/PKGBUILD
new file mode 100644
index 000000000..c71b7ceb4
--- /dev/null
+++ b/community/gsasl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 32555 2010-11-14 16:59:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Orivej Desh <smpuj@bk.ru>
+# Maintainer: Orivej Desh <smpuj@bk.ru>
+
+pkgname=gsasl
+pkgver=1.5.4
+pkgrel=1
+pkgdesc="Simple Authentication and Security Layer framework and a few common SASL mechanisms"
+arch=("i686" "x86_64")
+url="http://josefsson.org/gsasl/"
+license=("GPL")
+depends=(gnutls libidn heimdal)
+source=("ftp://alpha.gnu.org/gnu/gsasl/$pkgname-$pkgver.tar.gz")
+md5sums=('44cf5073a6ee2d77d526605bd6ab3904')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir/usr/share/info/dir" "$pkgdir/usr/lib/libgsasl.la"
+}
diff --git a/community/gshare/PKGBUILD b/community/gshare/PKGBUILD
new file mode 100644
index 000000000..bd17b933c
--- /dev/null
+++ b/community/gshare/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 18374 2010-06-03 15:40:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gshare
+pkgver=0.94
+pkgrel=4
+pkgdesc="Easy file sharing for Gnome"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/gshare-project"
+license=('GPL')
+depends=('gtk-sharp-2' 'avahi' 'gnome-sharp')
+install=$pkgname.install
+options=('!makeflags')
+source=(http://ftp.de.debian.org/debian/pool/main/g/gshare/gshare_$pkgver.orig.tar.gz
+ http://ftp.de.debian.org/debian/pool/main/g/gshare/gshare_$pkgver-10.diff.gz)
+md5sums=('bfb05ba7502218e9d9cacc7916098a03'
+ '3dd6000e9afc0db819a6ec69047b440d')
+
+build() {
+ export MONO_SHARED_DIR=$srcdir/.wabi
+ mkdir -p $MONO_SHARED_DIR
+
+ cd $srcdir/gshare-$pkgver
+ patch -p1 <$srcdir/gshare_$pkgver-10.diff
+ ls -1 debian/patches/*.patch | while read A; do patch -p1 <$A; done
+ ./configure --prefix=/usr --sysconfdir=/usr/share --with-dbus-service-dir=/usr/share/dbus-1/services --disable-schemas-install
+ sed -i 's/-scrollkeeper-update/#-scrollkeeper-update/' help/C/Makefile
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ mv $pkgdir/usr/share/gshare/gshared.desktop $pkgdir/usr/share/applications/
+ rm -r $pkgdir/usr/share/gshare
+
+ rm -r $MONO_SHARED_DIR
+}
diff --git a/community/gshare/gshare.install b/community/gshare/gshare.install
new file mode 100644
index 000000000..f1eac39c1
--- /dev/null
+++ b/community/gshare/gshare.install
@@ -0,0 +1,40 @@
+pkgname=gshare
+
+post_install() {
+ export GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+ usr/bin/gconftool-2 --makefile-install-rule usr/share/gconf/schemas/${pkgname}.schemas >/dev/null
+ scrollkeeper-update -q -p var/lib/scrollkeeper
+ update-desktop-database -q
+
+cat << EOF
+>>> To start the ftp server have gshared start up with your session by
+>>> going to: Desktop -> Preferences -> Sessions
+EOF
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=(usr/share/gconf/schemas/${pkgname}.schemas)
+ elif [ -f opt/gnome/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=(opt/gnome/share/gconf/schemas/${pkgname}.schemas)
+ else
+ schemas=(`pacman -Ql $pkgname | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'`)
+ fi
+ export GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+
+ usr/bin/gconftool-2 --makefile-uninstall-rule ${schemas[@]} >/dev/null
+}
+
+post_remove() {
+ scrollkeeper-update -q -p var/lib/scrollkeeper
+ update-desktop-database -q
+}
+
diff --git a/community/gshare/monofix.patch b/community/gshare/monofix.patch
new file mode 100644
index 000000000..0888c3c3e
--- /dev/null
+++ b/community/gshare/monofix.patch
@@ -0,0 +1,87 @@
+diff -rN -u old-gshare/src/gshared/daemon.cs new-gshare/src/gshared/daemon.cs
+--- old-gshare/src/gshared/daemon.cs 2006-09-16 20:31:47.881173352 +0100
++++ new-gshare/src/gshared/daemon.cs 2006-09-16 20:31:47.959161496 +0100
+@@ -308,11 +308,11 @@
+ if (reason == FTPServerShutdownReason.Error)
+ {
+ Log.ErrorMessage("Shutting down FTP server because of an error");
+- Utility.InvokeLater(delegate
++ Utility.InvokeLater((GShare.Utility.BackgroundTask)(delegate
+ {
+ Utility.ShowGenericFatalErrorDialog();
+ Shutdown();
+- });
++ }));
+ }
+ }
+
+@@ -367,24 +367,24 @@
+ {
+ case ClientState.Collision:
+ /*TODO figure out what to do*/
+- Utility.InvokeLater(delegate
++ Utility.InvokeLater((GShare.Utility.BackgroundTask)(delegate
+ {
+ StopDaemon();
+- });
++ }));
+ break;
+ case ClientState.Failure:
+ Log.ErrorMessage("Zeroconf client failed to register");
+- Utility.InvokeLater(delegate
++ Utility.InvokeLater((GShare.Utility.BackgroundTask)(delegate
+ {
+ Utility.ShowCannotPublishServiceDialog();
+ Shutdown();
+- });
++ }));
+ break;
+ case ClientState.Running:
+- Utility.InvokeLater(delegate
++ Utility.InvokeLater((GShare.Utility.BackgroundTask)(delegate
+ {
+ PublishFTPServer();
+- });
++ }));
+ break;
+ }
+
+@@ -410,19 +410,19 @@
+ iAvahiServiceName = EntryGroup.GetAlternativeServiceName(iAvahiServiceName);
+ }
+
+- Utility.InvokeLater(delegate
++ Utility.InvokeLater((GShare.Utility.BackgroundTask)(delegate
+ {
+ StartZeroConf(iFtpServer.ServerPort);
+- });
++ }));
+
+ break;
+ case EntryGroupState.Failure:
+ Log.ErrorMessage("Failed to publish FTP service on zeroconf network");
+- Utility.InvokeLater(delegate
++ Utility.InvokeLater((GShare.Utility.BackgroundTask)(delegate
+ {
+ Utility.ShowCannotPublishServiceDialog();
+ Shutdown();
+- });
++ }));
+ break;
+
+ case EntryGroupState.Established:
+@@ -460,11 +460,11 @@
+ ex.Message,
+ ex.StackTrace);
+
+- Utility.InvokeLater(delegate
++ Utility.InvokeLater((GShare.Utility.BackgroundTask)(delegate
+ {
+ Utility.ShowCannotPublishServiceDialog();
+ Shutdown();
+- });
++ }));
+
+ }
+
+
diff --git a/community/gshutdown/PKGBUILD b/community/gshutdown/PKGBUILD
new file mode 100644
index 000000000..8bd709fb7
--- /dev/null
+++ b/community/gshutdown/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 41578 2011-03-08 00:00:42Z ebelanger $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Achraf cherti <achrafcherti@gmail.com>
+
+pkgname=gshutdown
+pkgver=0.2
+pkgrel=3
+pkgdesc="An advanced shutdown utility"
+arch=('i686' 'x86_64')
+url="http://gshutdown.tuxfamily.org"
+license=('GPL')
+depends=('libglade' 'libnotify')
+makedepends=('pkg-config')
+source=(http://gshutdown.tuxfamily.org/release/$pkgname-$pkgver.tar.gz)
+md5sums=('c0662f6b74fa1be10e4d34bfc5731d9b')
+sha1sums=('ab73b1d6c36831df82d231ffa333cdf394fd5b3e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's/notify_notification_new("GShutdown", message, NULL, GTK_WIDGET(widget));/notify_notification_new("GShutdown", message, GTK_WIDGET(widget));/' src/gui.c
+ ./configure --prefix=/usr --mandir=/usr/share
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/gsmartcontrol/PKGBUILD b/community/gsmartcontrol/PKGBUILD
new file mode 100644
index 000000000..09cf1249f
--- /dev/null
+++ b/community/gsmartcontrol/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gsmartcontrol
+pkgver=0.8.5
+pkgrel=1
+pkgdesc="A graphical user interface for the smartctl hard disk drive health inspection tool."
+arch=('i686' 'x86_64')
+url="http://gsmartcontrol.berlios.de/home/index.php/en/Home"
+license=('GPL3')
+depends=('smartmontools' 'pcre' 'gtkmm' 'libglademm')
+install=${pkgname}.install
+source=(http://download.berlios.de/gsmartcontrol/$pkgname-$pkgver.tar.bz2)
+md5sums=('654ee0b77665206d4d8a46080c5747b6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gsmartcontrol/gsmartcontrol.install b/community/gsmartcontrol/gsmartcontrol.install
new file mode 100644
index 000000000..b95cc069d
--- /dev/null
+++ b/community/gsmartcontrol/gsmartcontrol.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/gsoap/LICENSE b/community/gsoap/LICENSE
new file mode 100644
index 000000000..00b8ad810
--- /dev/null
+++ b/community/gsoap/LICENSE
@@ -0,0 +1,163 @@
+gSOAP Public License
+Version 1.3a
+The gSOAP public license is derived from the Mozilla Public License (MPL1.1). The sections that were deleted from the original MPL1.1 text are 1.0.1, 2.1.(c),(d), 2.2.(c),(d), 8.2.(b), 10, and 11. Section 3.8 was added. The modified sections are 2.1.(b), 2.2.(b), 3.2 (simplified), 3.5 (deleted the last sentence), and 3.6 (simplified).
+1 DEFINITIONS.
+
+1.0.1.
+1.1. "Contributor"
+ means each entity that creates or contributes to the creation of Modifications.
+1.2. "Contributor Version"
+ means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.
+1.3. "Covered Code"
+ means the Original Code, or Modifications or the combination of the Original Code, and Modifications, in each case including portions thereof.
+1.4. "Electronic Distribution Mechanism"
+ means a mechanism generally accepted in the software development community for the electronic transfer of data.
+1.5. "Executable"
+ means Covered Code in any form other than Source Code.
+1.6. "Initial Developer"
+ means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.
+1.7. "Larger Work"
+ means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.
+1.8. "License"
+ means this document.
+1.8.1. "Licensable"
+ means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
+1.9. "Modifications"
+ means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is:
+
+ A.
+ Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.
+ B.
+ Any new file that contains any part of the Original Code, or previous Modifications.
+
+1.10. "Original Code"
+ means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.
+1.10.1. "Patent Claims"
+ means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
+1.11. "Source Code"
+ means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.
+1.12. "You" (or "Your")
+ means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
+
+2 SOURCE CODE LICENSE.
+
+2.1. The Initial Developer Grant.
+
+ The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:
+
+ (a)
+ under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and
+ (b)
+ under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("offer to sell and import") the Original Code, Modifications, or portions thereof, but solely to the extent that any such patent is reasonably necessary to enable You to utilize, alone or in combination with other software, the Original Code, Modifications, or any combination or portions thereof.
+ (c)
+ (d)
+
+
+2.2. Contributor Grant.
+
+ Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a)
+ under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and
+ (b)
+ under patents now or hereafter owned or controlled by Contributor, to make, have made, use and sell ("offer to sell and import") the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to utilize, alone or in combination with other software, the Contributor Version (or portions thereof).
+ (c)
+ (d)
+
+3 DISTRIBUTION OBLIGATIONS.
+
+3.1. Application of License.
+
+ The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.
+
+3.2. Availability of Source Code.
+
+ Any Modification created by You will be provided to the Initial Developer in Source Code form and are subject to the terms of the License.
+
+3.3. Description of Modifications.
+
+ You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.
+
+3.4. Intellectual Property Matters.
+
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file.
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License.
+
+
+3.5. Required Notices.
+
+ You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor.
+
+3.6. Distribution of Executable Versions.
+
+ You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. If you distribute executable versions containing Covered Code as part of a product, you must reproduce the notice in Exhibit B in the documentation and/or other materials provided with the product.
+
+3.7. Larger Works.
+
+ You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.
+
+3.8. Restrictions.
+
+ You may not remove any product identification, copyright, proprietary notices or labels from gSOAP.
+
+4 INABILITY TO COMPLY DUE TO STATUTE OR REGULATION.
+If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.
+5 APPLICATION OF THIS LICENSE.
+This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code.
+6 VERSIONS OF THE LICENSE.
+
+6.1. New Versions.
+
+ Grantor may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.
+
+6.2. Effect of New Versions.
+
+ Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License.
+
+6.3. Derivative Works.
+
+ If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrase "gSOAP" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the gSOAP Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)
+
+7 DISCLAIMER OF WARRANTY.
+COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS, AND ANY WARRANTY THAT MAY ARISE BY REASON OF TRADE USAGE, CUSTOM, OR COURSE OF DEALING. WITHOUT LIMITING THE FOREGOING, YOU ACKNOWLEDGE THAT THE SOFTWARE IS PROVIDED "AS IS" AND THAT THE AUTHORS DO NOT WARRANT THE SOFTWARE WILL RUN UNINTERRUPTED OR ERROR FREE. LIMITED LIABILITY THE ENTIRE RISK AS TO RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. UNDER NO CIRCUMSTANCES WILL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY KIND OR NATURE WHATSOEVER, WHETHER BASED ON CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, ARISING OUT OF OR IN ANY WAY RELATED TO THE SOFTWARE, EVEN IF THE AUTHORS HAVE BEEN ADVISED ON THE POSSIBILITY OF SUCH DAMAGE OR IF SUCH DAMAGE COULD HAVE BEEN REASONABLY FORESEEN, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY EXCLUSIVE REMEDY PROVIDED. SUCH LIMITATION ON DAMAGES INCLUDES, BUT IS NOT LIMITED TO, DAMAGES FOR LOSS OF GOODWILL, LOST PROFITS, LOSS OF DATA OR SOFTWARE, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION OR IMPAIRMENT OF OTHER GOODS. IN NO EVENT WILL THE AUTHORS BE LIABLE FOR THE COSTS OF PROCUREMENT OF SUBSTITUTE SOFTWARE OR SERVICES. YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED FOR USE IN ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS SUCH AS OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR CONTROL, OR LIFE-CRITICAL APPLICATIONS. THE AUTHORS EXPRESSLY DISCLAIM ANY LIABILITY RESULTING FROM USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS AND ACCEPTS NO LIABILITY IN RESPECT OF ANY ACTIONS OR CLAIMS BASED ON THE USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS BY YOU. FOR PURPOSES OF THIS PARAGRAPH, THE TERM "LIFE-CRITICAL APPLICATION" MEANS AN APPLICATION IN WHICH THE FUNCTIONING OR MALFUNCTIONING OF THE SOFTWARE MAY RESULT DIRECTLY OR INDIRECTLY IN PHYSICAL INJURY OR LOSS OF HUMAN LIFE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+8 TERMINATION.
+
+8.1.
+ This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
+8.2.
+8.3.
+ If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.
+8.4.
+ In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination.
+
+9 LIMITATION OF LIABILITY.
+UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+10 U.S. GOVERNMENT END USERS.
+11 MISCELLANEOUS.
+12 RESPONSIBILITY FOR CLAIMS.
+As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
+EXHIBIT A.
+"The contents of this file are subject to the gSOAP Public License Version 1.3 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
+
+ http://genivia.com/Products/gsoap/license.pdf
+
+More information on licensing options, support contracts, and consulting can be found at
+
+ http://genivia.com/Products/gsoap/contract.html
+
+Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
+The Original Code of the gSOAP Software is: stdsoap.h, stdsoap2.h, stdsoap.c, stdsoap2.c, stdsoap.cpp, stdsoap2.cpp, soapcpp2.h, soapcpp2.c, soapcpp2_lex.l, soapcpp2_yacc.y, error2.h, error2.c, symbol2.c, init2.c, soapdoc2.html, and soapdoc2.pdf, httpget.h, httpget.c, stl.h, stldeque.h, stllist.h, stlvector.h, stlset.h.
+The Initial Developer of the Original Code is Robert A. van Engelen. Portions created by Robert A. van Engelen are Copyright (C) 2001-2004 Robert A. van Engelen, Genivia inc. All Rights Reserved.
+Contributor(s):
+
+"________________________."
+
+[Note: The text of this Exhibit A may differ slightly form the text of the notices in the Source Code files of the Original code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.]
+EXHIBIT B.
+"Part of the software embedded in this product is gSOAP software.
+Portions created by gSOAP are Copyright (C) 2001-2004 Robert A. van Engelen, Genivia inc. All Rights Reserved.
+THE SOFTWARE IN THIS PRODUCT WAS IN PART PROVIDED BY GENIVIA INC AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
diff --git a/community/gsoap/PKGBUILD b/community/gsoap/PKGBUILD
new file mode 100644
index 000000000..4f0d35370
--- /dev/null
+++ b/community/gsoap/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 39568 2011-02-11 16:13:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tor Krill <tor@krill.nu>
+# Contributor: Lee.MaRS <leemars@gmail.com>
+
+pkgname=gsoap
+pkgver=2.8.1
+pkgrel=2
+pkgdesc="Offers an XML language binding to ease the development of SOAP/XML Web services in C and C/C++"
+url="http://www.cs.fsu.edu/~engelen/soap.html"
+arch=('i686' 'x86_64')
+license=('GPL' 'custom')
+depends=('openssl' 'zlib' 'gcc-libs')
+makedepends=('autoconf' 'automake')
+source=(http://prdownloads.sourceforge.net/gsoap2/${pkgname}_${pkgver}.zip
+ LICENSE)
+md5sums=('c9290f11628533d99d933d96a445437a'
+ '27aaa3f5166db94d44044c11a7b2c37b')
+
+build() {
+ cd $srcdir/gsoap-2.8
+
+# aclocal
+# autoheader
+# automake --add-missing
+# autoconf
+# automake
+ [ -f Makefile ] || CXXFLAGS=-fPIC CFLAGS=-fPIC LDFLAGS=-fPIC ./configure --prefix=/usr
+
+ make -j1
+ make DESTDIR=$pkgdir install
+
+ mkdir -p $pkgdir/usr/share/gsoap/import
+ mkdir -p $pkgdir/usr/share/gsoap/WS
+ cp -R gsoap/import $pkgdir/usr/share/gsoap/
+ cp -R gsoap/WS $pkgdir/usr/share/gsoap/
+
+ install -D ../LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/gsql/PKGBUILD b/community/gsql/PKGBUILD
new file mode 100644
index 000000000..f5b721e77
--- /dev/null
+++ b/community/gsql/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD,v 1.13 2007/06/19 02:12:51 Snowman Exp $
+# Contributor: Michael Kanis <mkanis@gmx.de>
+
+pkgname=gsql
+pkgver=0.2.2
+pkgrel=2
+pkgdesc="Integrated database development tool for GNOME"
+url="http://gsql.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gtk2>=2.12' 'gtksourceview2' 'vte' 'libgnomeui' 'gconf' 'desktop-file-utils')
+makedepends=('libmysqlclient' 'postgresql-libs' 'libssh')
+optdepends=('libmysqlclient' 'postgresql-libs' 'libssh')
+install=gsql.install
+options=(!libtool)
+source=(http://gsql.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('8f3322a75390584729e84a8570e08bea')
+sha1sums=('cb4081a5e232e5eb14a22f94ae2293aca73b9837')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's/notify_notification_new (subj, message, NULL, NULL);/notify_notification_new (subj, message, NULL);/' libgsql/notify.c
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/community/gsql/gsql.install b/community/gsql/gsql.install
new file mode 100644
index 000000000..e069ea8fc
--- /dev/null
+++ b/community/gsql/gsql.install
@@ -0,0 +1,24 @@
+pkgname=gsql
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/gstm/PKGBUILD b/community/gstm/PKGBUILD
new file mode 100644
index 000000000..985683dbe
--- /dev/null
+++ b/community/gstm/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 5679 2009-11-14 00:54:15Z ibiru $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gstm
+pkgver=1.2
+pkgrel=2
+pkgdesc="Gnome front-end to ssh tunneling"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/gstm/"
+license=('GPL')
+depends=('libgnomeui')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/sourceforge/gstm/gstm-$pkgver.tar.gz)
+md5sums=('7fa71b86969d8d695c3b062780a5694e')
+
+build() {
+ cd $startdir/src/gstm-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/gstreamermm/ChangeLog b/community/gstreamermm/ChangeLog
new file mode 100644
index 000000000..c3fd9187b
--- /dev/null
+++ b/community/gstreamermm/ChangeLog
@@ -0,0 +1,6 @@
+2010-02-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.10.6
+
+2009-11-07 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community] as a dependency of subtitleeditor
+ * version 0.10.5
diff --git a/community/gstreamermm/PKGBUILD b/community/gstreamermm/PKGBUILD
new file mode 100644
index 000000000..3b08b1f56
--- /dev/null
+++ b/community/gstreamermm/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 10834 2010-02-02 19:30:09Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=gstreamermm
+pkgver=0.10.6
+pkgrel=1
+pkgdesc="C++ interface for GStreamer"
+arch=('i686' 'x86_64')
+url="http://gstreamer.freedesktop.org/bindings/cplusplus.html"
+license=('LGPL')
+depends=('glibmm' 'gstreamer0.10-base>=0.10.25' 'libsigc++2.0' 'libxml++')
+makedepends=('doxygen' 'pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/gstreamermm/0.10/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d9414047afd7a44ed9c9b7075936a61d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gsynaptics/PKGBUILD b/community/gsynaptics/PKGBUILD
new file mode 100644
index 000000000..af8b8cc81
--- /dev/null
+++ b/community/gsynaptics/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 248 2009-07-21 09:55:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gsynaptics
+pkgver=0.9.16
+pkgrel=1
+pkgdesc="A settings tool for Synaptics touchpad driver"
+arch=(i686 x86_64)
+url="http://gsynaptics.sourceforge.jp"
+license=("GPL")
+depends=('libgnomeui' 'synaptics')
+makedepends=('intltool' 'gettext' 'gnome-doc-utils')
+install=$pkgname.install
+source=(http://globalbase.dl.sourceforge.jp/gsynaptics/38463/gsynaptics-$pkgver.tar.gz \
+ do-not-set-zero.dpatch \
+ dot-fixes.dpatch \
+ build-filename.dpatch)
+md5sums=('571828ddca2f1d9d6ea47e072db1959d'
+ 'd6308d93fd4d04c686ba24422ed99905'
+ '4c35d5d0803296233d50146963a0bcbc'
+ '11011a651f143103614fb69dd5aa77a1')
+
+build() {
+ cd $startdir/src/gsynaptics-$pkgver
+ patch -p1 <$srcdir/dot-fixes.dpatch
+ patch -p1 <$srcdir/do-not-set-zero.dpatch
+ patch -p1 <$srcdir/build-filename.dpatch
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/gsynaptics/build-filename.dpatch b/community/gsynaptics/build-filename.dpatch
new file mode 100644
index 000000000..c48689533
--- /dev/null
+++ b/community/gsynaptics/build-filename.dpatch
@@ -0,0 +1,20 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## build-filename.dpatch
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: https://sourceforge.jp/tracker/index.php?func=detail&aid=12568&group_id=1720&atid=6435
+## DP: Missing terminating NULL for g_build_filename call.
+
+@DPATCH@
+diff -urNad gsynaptics-0.9.14~/src/main.c gsynaptics-0.9.14/src/main.c
+--- gsynaptics-0.9.14~/src/main.c 2008-02-28 23:27:28.000000000 +0100
++++ gsynaptics-0.9.14/src/main.c 2008-05-17 08:34:04.000000000 +0200
+@@ -690,7 +690,7 @@
+
+ gtk_window_set_default_size (GTK_WINDOW (widget), 400, -1);
+
+- path = g_build_filename (DATADIR "/pixmaps", "touchpad.png");
++ path = g_build_filename (DATADIR, "pixmaps", "touchpad.png", NULL);
+ if (path)
+ {
+ icon_pixbuf = gdk_pixbuf_new_from_file (path, NULL);
diff --git a/community/gsynaptics/do-not-set-zero.dpatch b/community/gsynaptics/do-not-set-zero.dpatch
new file mode 100644
index 000000000..f3a4aee72
--- /dev/null
+++ b/community/gsynaptics/do-not-set-zero.dpatch
@@ -0,0 +1,189 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## do-not-set-zero.dpatch by Michal Čihař <nijel@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Do not set to 0 when some keys are not defined.
+## DP: Debian bug #480744.
+## DP: Forwarded to https://sourceforge.jp/tracker/index.php?func=detail&aid=12545&group_id=1720&atid=6435
+
+@DPATCH@
+diff -urNad gsynaptics-0.9.14~/src/init.c gsynaptics-0.9.14/src/init.c
+--- gsynaptics-0.9.14~/src/init.c 2008-02-28 23:27:41.000000000 +0100
++++ gsynaptics-0.9.14/src/init.c 2008-05-17 09:14:12.000000000 +0200
+@@ -36,63 +36,148 @@
+ {
+ gboolean b_value;
+ gint i_value;
++ GConfValue *gval = NULL;
+
+ if (!gconf_client_dir_exists (gconf, DIRNAME, NULL))
+ return;
+
+ /* touchpad on/off */
+- b_value = gconf_client_get_bool (gconf, OFF_KEY, NULL);
+- g_synaptics_set_enabled (synaptics, b_value ? 1 : 0);
++ gval = gconf_client_get (gconf, OFF_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_enabled (synaptics, b_value ? 1 : 0);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* vertical scroll delta */
+- i_value = gconf_client_get_int (gconf, VERTSCROLLDELTA_KEY, NULL);
+- g_synaptics_set_vertical_scroll_delta (synaptics, i_value);
++ gval = gconf_client_get (gconf, VERTSCROLLDELTA_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_vertical_scroll_delta (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* horizontal scroll delta */
+- i_value = gconf_client_get_int (gconf, HORIZSCROLLDELTA_KEY, NULL);
+- g_synaptics_set_horizontal_scroll_delta (synaptics, i_value);
++ gval = gconf_client_get (gconf, HORIZSCROLLDELTA_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_horizontal_scroll_delta (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* circular scroll */
+- i_value = gconf_client_get_int (gconf, CIRCSCROLLDELTA_KEY, NULL);
+- b_value = gconf_client_get_bool (gconf, CIRCULARSCROLLING_KEY, NULL);
+- g_synaptics_set_circular_scroll_delta (synaptics, i_value);
+- g_synaptics_set_circular_scroll_enabled (synaptics, b_value);
++ gval = gconf_client_get (gconf, CIRCSCROLLDELTA_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_circular_scroll_delta (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
++ gval = gconf_client_get (gconf, CIRCULARSCROLLING_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_circular_scroll_enabled (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+ /* the trigger of circular scrolling */
+- i_value = gconf_client_get_int (gconf, CIRCSCROLLTRIGGER_KEY, NULL);
+- g_synaptics_set_circular_scroll_trigger (synaptics, i_value);
++ gval = gconf_client_get (gconf, CIRCSCROLLTRIGGER_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_circular_scroll_trigger (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+
+ /* tapping time */
+- i_value = gconf_client_get_int (gconf, MAXTAPTIME_KEY, NULL);
+- g_synaptics_set_tap_time (synaptics, i_value);
++ gval = gconf_client_get (gconf, MAXTAPTIME_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_tap_time (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* fast taps */
+- b_value = gconf_client_get_bool (gconf, FASTTAPS_KEY, NULL);
+- g_synaptics_set_fast_taps (synaptics, b_value);
++ gval = gconf_client_get (gconf, FASTTAPS_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_fast_taps (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* sensitivity */
+- i_value = gconf_client_get_int (gconf, SENSITIVITY_KEY, NULL);
+- g_synaptics_set_sensitivity (synaptics, i_value);
++ gval = gconf_client_get (gconf, SENSITIVITY_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_sensitivity (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* coasting */
+- b_value = gconf_client_get_bool (gconf, COASTENABLE_KEY, NULL);
+- g_synaptics_set_coasting_enabled (synaptics, b_value);
++ gval = gconf_client_get (gconf, COASTENABLE_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_coasting_enabled (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* edge motion */
+- b_value = gconf_client_get_bool (gconf, EDGEMOTIONUSEALWAYS_KEY, NULL);
+- g_synaptics_set_edge_motion_enabled (synaptics, b_value);
++ gval = gconf_client_get (gconf, EDGEMOTIONUSEALWAYS_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_BOOL) {
++ b_value = gconf_value_get_bool(gval);
++ g_synaptics_set_edge_motion_enabled (synaptics, b_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* min speed */
+- i_value = gconf_client_get_int (gconf, MINSPEED_KEY, NULL);
+- g_synaptics_set_min_speed (synaptics, i_value);
++ gval = gconf_client_get (gconf, MINSPEED_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_min_speed (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* max speed */
+- i_value = gconf_client_get_int (gconf, MAXSPEED_KEY, NULL);
+- g_synaptics_set_max_speed (synaptics, i_value);
++ gval = gconf_client_get (gconf, MAXSPEED_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_max_speed (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ /* accel factor */
+- i_value = gconf_client_get_int (gconf, ACCELFACTOR_KEY, NULL);
+- g_synaptics_set_accel_factor (synaptics, i_value);
++ gval = gconf_client_get (gconf, ACCELFACTOR_KEY, NULL);
++ if (gval != NULL) {
++ if (gval->type == GCONF_VALUE_INT) {
++ i_value = gconf_value_get_int(gval);
++ g_synaptics_set_accel_factor (synaptics, i_value);
++ }
++ gconf_value_free(gval);
++ }
+
+ }
+
diff --git a/community/gsynaptics/dot-fixes.dpatch b/community/gsynaptics/dot-fixes.dpatch
new file mode 100644
index 000000000..ec8e06fcd
--- /dev/null
+++ b/community/gsynaptics/dot-fixes.dpatch
@@ -0,0 +1,73 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## dot-fixces.dpatch by Unknown
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Fix format strings to always use . as decimal separator, see
+## DP: https://sourceforge.jp/tracker/index.php?func=detail&aid=12498&group_id=1720&atid=6435
+## DP: Forwarded to https://sourceforge.jp/tracker/index.php?func=detail&aid=12544&group_id=1720&atid=6435
+
+@DPATCH@
+diff -urNad gsynaptics-0.9.14~/src/gsynaptics.c gsynaptics-0.9.14/src/gsynaptics.c
+--- gsynaptics-0.9.14~/src/gsynaptics.c 2008-02-28 23:21:17.000000000 +0100
++++ gsynaptics-0.9.14/src/gsynaptics.c 2008-05-17 08:36:54.000000000 +0200
+@@ -713,8 +713,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient AccelFactor=%f",
+- (gdouble)value / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)value / 1000);
++ command = g_strdup_printf ("synclient AccelFactor=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -734,8 +735,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient MaxSpeed=%f",
+- (gdouble)value / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)value / 1000);
++ command = g_strdup_printf ("synclient MaxSpeed=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -755,8 +757,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient MinSpeed=%f",
+- (gdouble)value / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)value / 1000);
++ command = g_strdup_printf ("synclient MinSpeed=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -822,8 +825,10 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient CoastingSpeedThreshold=%f",
+- thresh);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), thresh);
++ command = g_strdup_printf ("synclient CoastingSpeed=%s",
++ strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
+@@ -843,8 +848,9 @@
+ if (priv->synclient)
+ {
+ gchar *command;
+- command = g_strdup_printf ("synclient CircScrollDelta=%f",
+- (gdouble)delta / 1000);
++ char strval[G_ASCII_DTOSTR_BUF_SIZE];
++ g_ascii_dtostr(strval, sizeof(strval), (gdouble)delta / 1000);
++ command = g_strdup_printf ("synclient CircScrollDelta=%s", strval);
+ g_spawn_command_line_async (command, NULL);
+ g_free (command);
+ }
diff --git a/community/gsynaptics/gsynaptics.install b/community/gsynaptics/gsynaptics.install
new file mode 100644
index 000000000..a0f279ee6
--- /dev/null
+++ b/community/gsynaptics/gsynaptics.install
@@ -0,0 +1,16 @@
+post_install() {
+cat << EOF
+>>>
+>>> This tool can only be used if "SHMConfig" "true" is set
+>>> in the synaptics section in your xorg.conf
+>>>
+>>> Also have gsynaptics-init start with gnome by going to
+>>> [Desktop] - [Preferences] - [Sessions] - [Startup Programs]
+>>> Non-GNOME users can start it with their .xinitrc or .xsession
+>>>
+EOF
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/gtk-aurora-engine/PKGBUILD b/community/gtk-aurora-engine/PKGBUILD
new file mode 100644
index 000000000..61f67e87b
--- /dev/null
+++ b/community/gtk-aurora-engine/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Dmitry N. Shilov <stormblast@land.ru>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gtk-aurora-engine
+pkgver=1.5.1
+pkgrel=2
+pkgdesc="gtk-engine: latest member of the clearlooks family"
+arch=('i686' 'x86_64')
+url="http://www.gnome-look.org/content/show.php/Aurora+Gtk+Engine?content=56438"
+license=('GPL')
+depends=('gtk2')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://www.gnome-look.org/CONTENT/content-files/56438-aurora-${pkgver}.tar.bz2)
+md5sums=('5eeea57c5938306ad7ccfc7cd71d009d')
+
+build() {
+ cd ${srcdir}
+ tar xzf aurora-gtk-engine-1.5.tar.gz -C ${srcdir}
+ cd ${srcdir}/aurora-1.5
+
+ ./configure --prefix=/usr --enable-animation
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/aurora-1.5
+ make DESTDIR=${pkgdir} install
+ mkdir -p ${pkgdir}/usr/share/themes
+ tar xjf ../Aurora.tar.bz2 -C ${pkgdir}/usr/share/themes
+ chown -R root:root ${pkgdir}/usr/share/themes
+}
diff --git a/community/gtk-chtheme/PKGBUILD b/community/gtk-chtheme/PKGBUILD
new file mode 100644
index 000000000..5621dce39
--- /dev/null
+++ b/community/gtk-chtheme/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gtk-chtheme
+pkgver=0.3.1
+pkgrel=6
+pkgdesc="This little program lets you change your Gtk+ 2.0 theme. A better alternative to switch2"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://plasmasturm.org/programs/gtk-chtheme/"
+depends=('gtk2')
+source=(http://plasmasturm.org/programs/gtk-chtheme/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f688053bf26dd6c4f1cd0bf2ee33de2a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Fix xdg compliancy
+ sed -i 's|-DGTK.*||' Makefile
+ sed -i 's|theme_list(g_.*|&\n\tread_theme_list(g_strconcat(g_get_user_data_dir(), "/themes", NULL));|' main.c
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -Dm755 gtk-chtheme ${pkgdir}/usr/bin/gtk-chtheme || return 1
+}
diff --git a/community/gtk-engine-murrine/PKGBUILD b/community/gtk-engine-murrine/PKGBUILD
new file mode 100644
index 000000000..b14fa5f7f
--- /dev/null
+++ b/community/gtk-engine-murrine/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 34751 2010-12-12 15:03:53Z tdziedzic $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: detto <detto-brumm@freenet.de>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gtk-engine-murrine
+pkgver=0.98.1.1
+pkgrel=2
+pkgdesc="GTK2 engine to make your desktop look like a 'murrina', an italian word meaning the art glass works done by Venicians glass blowers."
+arch=('i686' 'x86_64')
+url="http://cimitan.com/murrine/project/murrine"
+license=('LGPL3')
+depends=('gtk2')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/murrine/0.98/murrine-${pkgver}.tar.bz2)
+sha256sums=('e6a2af72674403d06c03e067d915004e8d9cdeec206f3350c7f3ee595b139912')
+
+build() {
+ cd murrine-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --enable-animation \
+ --enable-animationrtl
+
+ make
+}
+
+package() {
+ cd murrine-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gtk-gnutella/PKGBUILD b/community/gtk-gnutella/PKGBUILD
new file mode 100644
index 000000000..d991ec063
--- /dev/null
+++ b/community/gtk-gnutella/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 42267 2011-03-15 22:06:14Z ebelanger $
+# Contributor: Dan McGee <dan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gtk-gnutella
+pkgver=0.96.9
+pkgrel=1
+pkgdesc="A Gnutella client written in C"
+arch=('i686' 'x86_64')
+url="http://gtk-gnutella.sourceforge.net/"
+license=('GPL')
+depends=('gnutls>=2.4.1' 'gtk2' 'libxml2')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('77e1a66685f563c668d4bbf69e4db0bb')
+sha1sums=('4b9254a3d5152377ce65acf09d858c2b0bb4ca50')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./build.sh --prefix=/usr --gtk2 --disable-dbus
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make install INSTALL_PREFIX="${pkgdir}"
+}
diff --git a/community/gtk-kde4/PKGBUILD b/community/gtk-kde4/PKGBUILD
new file mode 100644
index 000000000..b4bfe18a0
--- /dev/null
+++ b/community/gtk-kde4/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 31082 2010-10-26 19:44:12Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Viliam Pucik <viliam dot pucik at gmail dot com>
+
+pkgname=gtk-kde4
+pkgver=0.9.5b
+pkgrel=1
+pkgdesc='Allows you to change style, icons, font of GTK applications in KDE4.'
+arch=('i686' 'x86_64')
+url='http://kde-look.org/content/show.php?content=74689'
+license=('GPL')
+depends=('kdebase-workspace' 'gtk-engines')
+makedepends=('cmake' 'automoc4')
+provides=('gtk-qt-engine')
+source=("http://betta.houa.org/no-site/${pkgname}(src)${pkgver}.tar.gz"
+ 'fix-permission.patch')
+md5sums=('d5998e4ccd4bd4b4d6a61e7afe8bbecb'
+ 'f52fa3288c728e5fad72c5d136b49bc5')
+
+build() {
+ cd ${pkgname}
+
+ patch -p1 -i ${srcdir}/fix-permission.patch
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gtk-kde4/fix-permission.patch b/community/gtk-kde4/fix-permission.patch
new file mode 100644
index 000000000..29d6c3903
--- /dev/null
+++ b/community/gtk-kde4/fix-permission.patch
@@ -0,0 +1,27 @@
+--- gtk-kde4/CMakeLists.txt~ 2010-09-28 11:16:32.000000000 -0700
++++ gtk-kde4/CMakeLists.txt 2010-10-26 12:31:35.400040780 -0700
+@@ -32,15 +32,8 @@
+
+ add_subdirectory(kcm/helper)
+
+-INSTALL(FILES ${PROJECT_BINARY_DIR}/daemon/gtk-kde4 DESTINATION ${KDE4_BIN_INSTALL_DIR} PERMISSIONS WORLD_EXECUTE)
+-#INSTALL(FILES ${PROJECT_BINARY_DIR}/.gtkrc-2.0-kde4 DESTINATION $ENV{HOME} PERMISSIONS WORLD_READ)
+-
+-string(LENGTH conf len)
+-IF (NOT len)
+- INSTALL(FILES ${PROJECT_BINARY_DIR}/daemon/gtk-kde4.desktop DESTINATION $ENV{XDG_CONFIG_DIRS}/autostart PERMISSIONS WORLD_EXECUTE)
+-ELSE()
+- INSTALL(FILES ${PROJECT_BINARY_DIR}/daemon/gtk-kde4.desktop DESTINATION /etc/xdg/autostart PERMISSIONS WORLD_EXECUTE WORLD_READ)
+-ENDIF()
++INSTALL(PROGRAMS daemon/gtk-kde4 DESTINATION ${KDE4_BIN_INSTALL_DIR})
++INSTALL(PROGRAMS daemon/gtk-kde4.desktop DESTINATION /etc/xdg/autostart)
+
+ FIND_PROGRAM(GETTEXT_MSGFMT_EXECUTABLE msgfmt)
+
+@@ -74,4 +67,4 @@
+
+ ENDFOREACH(_poFile ${PO_FILES})
+
+-ENDIF(NOT GETTEXT_MSGFMT_EXECUTABLE)
+\ No newline at end of file
++ENDIF(NOT GETTEXT_MSGFMT_EXECUTABLE)
diff --git a/community/gtk-rezlooks-engine/PKGBUILD b/community/gtk-rezlooks-engine/PKGBUILD
new file mode 100644
index 000000000..a6c4264ff
--- /dev/null
+++ b/community/gtk-rezlooks-engine/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Javier "Phrodo_00" Aravena <phrodo.00@gmail.com>
+
+pkgname=gtk-rezlooks-engine
+pkgver=0.6
+pkgrel=9
+pkgdesc="Clean looking gtk theme engine based on the cairo-enabled CVS clearlooks engine code."
+url="http://www.gnome-look.org/content/show.php?content=39179"
+arch=('i686' 'x86_64')
+depends=('gtk2' 'cairo')
+options=('!libtool')
+license=('GPL')
+source=(http://gnome-look.org/CONTENT/content-files/39179-rezlooks-$pkgver.tar.gz)
+md5sums=('87b768eb372dd5065f9e36bf10245ac7')
+
+build() {
+ cd $startdir/src/rezlooks-$pkgver
+ ./configure --prefix=/usr --enable-animation
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ mkdir -p $startdir/pkg/usr/share/themes
+}
diff --git a/community/gtk2+extra/PKGBUILD b/community/gtk2+extra/PKGBUILD
new file mode 100644
index 000000000..022689753
--- /dev/null
+++ b/community/gtk2+extra/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 27873 2010-09-29 08:19:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gtk2+extra
+pkgver=2.1.2
+pkgrel=1
+pkgdesc="GtkExtra is a useful set of widgets for creating GUI's for the Xwindows system using GTK+"
+arch=(i686 x86_64)
+url="http://gtkextra.sourceforge.net/"
+depends=('gtk2')
+license=('LGPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/gtkextra/$pkgver/gtk%2Bextra-$pkgver.tar.gz)
+md5sums=('10779394f39d39115fa3fd0f3dea4436')
+
+build() {
+ cd $srcdir/gtk+extra-$pkgver
+# patch -Np0 -i ../gtksheet_unref.patch
+# patch -Np1 -i ../gtk2-2.18.3-build-fix.patch
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gtk2_prefs/PKGBUILD b/community/gtk2_prefs/PKGBUILD
new file mode 100644
index 000000000..33ac8a409
--- /dev/null
+++ b/community/gtk2_prefs/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 18286 2010-06-02 16:55:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gtk2_prefs
+pkgver=0.4.1
+pkgrel=2
+pkgdesc="A GTK2 theme selector and font switcher"
+arch=('i686' 'x86_64')
+url="http://gtk-win.sourceforge.net/home/index.php/en/Gtk2Prefs"
+license=("GPL")
+depends=('gtk2')
+source=(http://downloads.sourceforge.net/gtk-win/gtk2_prefs-$pkgver.tar.bz2)
+md5sums=('873d2a7707e1dcadc861399434d98d86')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i '1,1i#include <string.h>' src/main.cpp
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/gtk2fontsel/PKGBUILD b/community/gtk2fontsel/PKGBUILD
new file mode 100644
index 000000000..9cabdf360
--- /dev/null
+++ b/community/gtk2fontsel/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 22401 2010-07-21 18:22:42Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=gtk2fontsel
+pkgver=0.1
+pkgrel=3
+pkgdesc="Font selection and preview tool"
+arch=('i686' 'x86_64')
+url="http://gtk2fontsel.sourceforge.net/"
+license=('GPL')
+depends=('gtk2')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('f344018b19b6a818795a4c702770cd9d')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/gtk2hs-buildtools/PKGBUILD b/community/gtk2hs-buildtools/PKGBUILD
new file mode 100644
index 000000000..87f5c8273
--- /dev/null
+++ b/community/gtk2hs-buildtools/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 42769 2011-03-20 18:36:16Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=gtk2hs-buildtools
+pkgver=0.12.0
+pkgrel=2
+pkgdesc="Tools to build the Gtk2Hs suite of User Interface libraries."
+url="http://hackage.haskell.org/package/gtk2hs-buildtools"
+license=('GPL2')
+arch=('i686' 'x86_64')
+makedepends=('ghc' 'alex' 'happy')
+depends=('gmp')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/gtk2hs-buildtools/$pkgver/gtk2hs-buildtools-$pkgver.tar.gz)
+md5sums=('cbcdfd6031725d8b70ff7804f8d93648')
+
+build() {
+ cd ${srcdir}/gtk2hs-buildtools-$pkgver
+ runhaskell Setup configure --prefix=/usr --docdir=/usr/share/doc/${pkgname}
+ runhaskell Setup build
+}
+
+package() {
+ cd ${srcdir}/gtk2hs-buildtools-$pkgver
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/gtk2hs-cairo/PKGBUILD b/community/gtk2hs-cairo/PKGBUILD
new file mode 100644
index 000000000..3f1afd76e
--- /dev/null
+++ b/community/gtk2hs-cairo/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41273 2011-03-04 22:51:09Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+_hkgname=cairo
+pkgname=gtk2hs-cairo
+pkgver=0.12.0
+pkgrel=3.1
+pkgdesc="Binding to the cairo library for Gtk2Hs."
+url="http://hackage.haskell.org/package/cairo"
+license=('LGPL2.1')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'cairo' 'haskell-mtl=2.0.1.0')
+makedepends=(gtk2hs-buildtools)
+options=('strip')
+install=${pkgname}.install
+source=(http://hackage.haskell.org/packages/archive/cairo/$pkgver/cairo-$pkgver.tar.gz)
+md5sums=('e17c7ce086062282dbb405bfdf68191e')
+
+build() {
+ cd ${srcdir}/${_hkgname}-$pkgver
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/gtk2hs-cairo/gtk2hs-cairo.install b/community/gtk2hs-cairo/gtk2hs-cairo.install
new file mode 100644
index 000000000..4ec5096b6
--- /dev/null
+++ b/community/gtk2hs-cairo/gtk2hs-cairo.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/gtk2hs-cairo
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/gtk2hs-glib/PKGBUILD b/community/gtk2hs-glib/PKGBUILD
new file mode 100644
index 000000000..10f86885f
--- /dev/null
+++ b/community/gtk2hs-glib/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41258 2011-03-04 22:36:45Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+_hkgname=glib
+pkgname=gtk2hs-glib
+pkgver=0.12.0
+pkgrel=2.1
+pkgdesc="Binding to the GLIB library for Gtk2Hs."
+url="http://hackage.haskell.org/package/glib"
+license=('LGPL2.1')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'glib2')
+makedepends=('gtk2hs-buildtools=0.12.0')
+options=('strip')
+install=gtk2hs-glib.install
+source=(http://hackage.haskell.org/packages/archive/glib/$pkgver/glib-$pkgver.tar.gz)
+md5sums=('2f334374d14a2f3e221a2ebfce1f8817')
+
+build() {
+ cd ${srcdir}/${_hkgname}-$pkgver
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/gtk2hs-glib/gtk2hs-glib.install b/community/gtk2hs-glib/gtk2hs-glib.install
new file mode 100644
index 000000000..24025f5d8
--- /dev/null
+++ b/community/gtk2hs-glib/gtk2hs-glib.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/gtk2hs-glib
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/gtk2hs-gtk/PKGBUILD b/community/gtk2hs-gtk/PKGBUILD
new file mode 100644
index 000000000..a647ac0db
--- /dev/null
+++ b/community/gtk2hs-gtk/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41300 2011-03-05 00:05:06Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+_hkgname=gtk
+pkgname=gtk2hs-gtk
+pkgver=0.12.0
+pkgrel=3.1
+pkgdesc="Binding to the gtk library for Gtk2Hs."
+url="http://hackage.haskell.org/package/gtk"
+license=('LGPL2.1')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'gtk2' 'gtk2hs-pango=0.12.0' 'haskell-mtl=2.0.1.0')
+makedepends=('gtk2hs-buildtools=0.12.0')
+options=('strip')
+install=gtk2hs-gtk.install
+source=(http://hackage.haskell.org/packages/archive/gtk/$pkgver/gtk-$pkgver.tar.gz)
+md5sums=('17a9d34085b703510d8feb2608b5d776')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/gtk2hs-gtk/gtk2hs-gtk.install b/community/gtk2hs-gtk/gtk2hs-gtk.install
new file mode 100644
index 000000000..7ed674b78
--- /dev/null
+++ b/community/gtk2hs-gtk/gtk2hs-gtk.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/gtk2hs-gtk
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/gtk2hs-pango/PKGBUILD b/community/gtk2hs-pango/PKGBUILD
new file mode 100644
index 000000000..4b167ac6f
--- /dev/null
+++ b/community/gtk2hs-pango/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41288 2011-03-04 23:27:16Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+_hkgname=pango
+pkgname=gtk2hs-pango
+pkgver=0.12.0
+pkgrel=3.1
+pkgdesc="Binding to the pango library for Gtk2Hs."
+url="http://hackage.haskell.org/package/pango"
+license=('LGPL2.1')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'pango' 'gtk2hs-glib' 'gtk2hs-cairo')
+makedepends=('gtk2hs-buildtools=0.12.0')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('0260ed21d6ca2a52ebaa0aa212390cf7')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/gtk2hs-pango/gtk2hs-pango.install b/community/gtk2hs-pango/gtk2hs-pango.install
new file mode 100644
index 000000000..f2be2100f
--- /dev/null
+++ b/community/gtk2hs-pango/gtk2hs-pango.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/gtk2hs-pango
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/gtkballs/PKGBUILD b/community/gtkballs/PKGBUILD
new file mode 100644
index 000000000..7dad82a94
--- /dev/null
+++ b/community/gtkballs/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 18289 2010-06-02 16:56:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jacek Poplawski <jacekpoplawski@gmail.com>
+
+pkgname=gtkballs
+pkgver=3.1.5
+pkgrel=4
+pkgdesc="clone of Lines - logic game about balls"
+arch=('i686' 'x86_64')
+url="http://gtkballs.antex.ru/"
+license=('GPL')
+depends=("gtk2")
+backup=(var/games/gtkballs/gtkballs-scores)
+source=(http://gtkballs.antex.ru/dist/gtkballs-$pkgver.tar.gz)
+md5sums=('1654799db1e9a46607b06f7ad3c0bf05')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr \
+ --localstatedir=/var/games/gtkballs \
+ --mandir=/usr/share/man
+ make || return 1
+ make install DESTDIR=$pkgdir || return 1
+
+ chown -R root:games $pkgdir/var/games/gtkballs/ && \
+ chmod -R ug+w $pkgdir/var/games/gtkballs/
+}
diff --git a/community/gtkdatabox/PKGBUILD b/community/gtkdatabox/PKGBUILD
new file mode 100644
index 000000000..e053f5ce9
--- /dev/null
+++ b/community/gtkdatabox/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 20466 2010-07-08 11:17:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gtkdatabox
+pkgver=0.9.0.1
+pkgrel=2
+pkgdesc="A widget for the Gtk+ library designed to display large amounts of numerical data"
+arch=(i686 x86_64)
+url="http://www.eudoxos.net/gtk/gtkdatabox"
+options=('!libtool')
+license=("LGPL")
+depends=('gtk2')
+source=(http://www.eudoxos.net/gtk/gtkdatabox/download/gtkdatabox-$pkgver.tar.gz)
+md5sums=('cb62ac3ab2ddafa6cb1bcd3a55a1cc88')
+
+build() {
+ cd $srcdir/gtkdatabox-$pkgver
+ ./configure --prefix=/usr
+ find -name Makefile -type f -exec sed -i 's#.*DISABLE_DEPRECATED\\#\\#' {} \;
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gtkdialog/PKGBUILD b/community/gtkdialog/PKGBUILD
new file mode 100644
index 000000000..920dfd8a6
--- /dev/null
+++ b/community/gtkdialog/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 20469 2010-07-08 11:18:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: dojo <joerg.doll[at]gmx.de>
+
+pkgname=gtkdialog
+pkgver=0.7.20
+pkgrel=2
+pkgdesc="Gtkdialog is a small utility for fast and easy GUI building."
+arch=('i686' 'x86_64')
+url="http://linux.pte.hu/~pipas/gtkdialog/"
+license=("GPL")
+makedepends=('pkgconfig')
+depends=('gtk2' 'libglade')
+install=gtkdialog.install
+source=(ftp://linux.pte.hu/pub/gtkdialog/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('597103b3ec575dd7af9e84931a62c532'
+ 'e759df95bf729957df34f5c4310d34d1')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 <$srcdir/build-fix.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
+ make || return 1
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/gtkdialog/build-fix.patch b/community/gtkdialog/build-fix.patch
new file mode 100644
index 000000000..3322c8830
--- /dev/null
+++ b/community/gtkdialog/build-fix.patch
@@ -0,0 +1,39 @@
+diff -wbBur gtkdialog-0.7.20/src/glade_support.c gtkdialog-0.7.20.my/src/glade_support.c
+--- gtkdialog-0.7.20/src/glade_support.c 2007-03-16 14:25:49.000000000 +0000
++++ gtkdialog-0.7.20.my/src/glade_support.c 2010-07-08 11:05:46.000000000 +0000
+@@ -40,7 +40,7 @@
+ typedef struct signal {
+ gchar *name;
+ GCallback callback;
+-} signal;
++} xsignal;
+
+ /*
+ ** Signal handler callbascks.
+@@ -206,7 +206,7 @@
+ static gboolean
+ find_and_connect_handler(
+ GtkWidget *widget,
+- signal *signals,
++ xsignal *signals,
+ const gchar *signal_name,
+ const gchar *handler_name)
+ {
+@@ -288,7 +288,7 @@
+ gpointer user_data)
+ {
+ gint n;
+- signal entry_signals[] = {
++ xsignal entry_signals[] = {
+ { "activate", (GCallback)on_any_entry_almost_any },
+ { "backspace", (GCallback)on_any_entry_almost_any },
+ { "copy-clipboard", (GCallback)on_any_entry_almost_any },
+@@ -319,7 +319,7 @@
+ gpointer user_data)
+ {
+ variable *var;
+- signal widget_signals[] = {
++ xsignal widget_signals[] = {
+ { "accel-closures-changed", (GCallback)on_any_widget_almost_any },
+ { "composited-changed", (GCallback)on_any_widget_almost_any },
+ { "grab-focus", (GCallback)on_any_widget_almost_any },
diff --git a/community/gtkdialog/gtkdialog.install b/community/gtkdialog/gtkdialog.install
new file mode 100644
index 000000000..f74f0882b
--- /dev/null
+++ b/community/gtkdialog/gtkdialog.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gtkdialog.info)
+
+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/gtkperf/PKGBUILD b/community/gtkperf/PKGBUILD
new file mode 100644
index 000000000..88f6beb80
--- /dev/null
+++ b/community/gtkperf/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 8939 2010-01-22 22:31:01Z dgriffiths $
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=gtkperf
+pkgver=0.40
+pkgrel=3
+pkgdesc="An application designed to test GTK+ performance"
+arch=('i686' 'x86_64')
+url="http://gtkperf.sourceforge.net"
+license=("GPL")
+depends=('gtk2')
+source=(http://downloads.sourceforge.net/sourceforge/gtkperf/gtkperf_$pkgver.tar.gz)
+md5sums=('4331dde4bb83865e15482885fcb0cc53')
+
+build() {
+ cd $startdir/src/$pkgname
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ mv ${pkgdir}/usr/doc ${pkgdir}/usr/share/
+}
diff --git a/community/gtkwave/PKGBUILD b/community/gtkwave/PKGBUILD
new file mode 100644
index 000000000..477ec5817
--- /dev/null
+++ b/community/gtkwave/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+
+pkgname=gtkwave
+pkgver=3.3.20
+pkgrel=1
+pkgdesc='A wave viewer which reads LXT, LXT2, VZT, GHW and VCD/EVCD files'
+arch=('i686' 'x86_64')
+url='http://gtkwave.sourceforge.net'
+license=('GPL' 'MIT')
+depends=('gtk2')
+makedepends=('gperf')
+install="${pkgname}.install"
+source=("http://gtkwave.sourceforge.net/${pkgname}-${pkgver}.tar.gz")
+md5sums=('91f35ce56817b1a0b37a904be4e5f021')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --disable-tcl
+
+ make CFLAGS=-D_LARGEFILE64_SOURCE
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make -j1 prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/.gtkwaverc \
+ ${pkgdir}/usr/share/${pkgname}/sample.gtkwaverc
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/MIT.TXT \
+ ${pkgdir}/usr/share/licenses/${pkgname}/MIT.TXT
+}
diff --git a/community/gtkwave/gtkwave.install b/community/gtkwave/gtkwave.install
new file mode 100644
index 000000000..3c64a44d6
--- /dev/null
+++ b/community/gtkwave/gtkwave.install
@@ -0,0 +1,6 @@
+post_install() {
+ echo 'Make sure you copy the /usr/share/gtkwave/sample.gtkwaverc file to'
+ echo 'your home directory (as .gtkwaverc) or to your VCD project directory.'
+ echo 'It contains the prefs for a good configuration that most people find'
+ echo 'ergonomic. It is not strictly necessary however.'
+}
diff --git a/community/gtranslator/PKGBUILD b/community/gtranslator/PKGBUILD
new file mode 100644
index 000000000..9781c97de
--- /dev/null
+++ b/community/gtranslator/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 36845 2011-01-09 07:08:21Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: Christer Solskogen (solskogen@carebears.mine.nu)
+
+pkgname=gtranslator
+pkgver=1.9.13
+pkgrel=1
+pkgdesc="An enhanced gettext po file editor for the GNOME"
+arch=('i686' 'x86_64')
+url="http://projects.gnome.org/gtranslator/"
+license=('GPL')
+depends=('gdl' 'gettext' 'gtksourceview2' 'gtkspell' 'libgda' 'libunique' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils' 'gnome-utils' 'gucharmap' 'json-glib')
+optdepends=('gtkspell: spell check'
+ 'gucharmap: for charmap plugin'
+ 'json-glib: for open-tran plugin')
+options=('!libtool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://ftp.acc.umu.se/pub/GNOME/sources/$pkgname/1.9/$pkgname-$pkgver.tar.bz2)
+sha256sums=('c0b371b81630cf2e4efb6968c20f7580c62c34d9161c852a5d008622cd91408e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-schemas-compile
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gtranslator/gtranslator.changelog b/community/gtranslator/gtranslator.changelog
new file mode 100644
index 000000000..772720fbf
--- /dev/null
+++ b/community/gtranslator/gtranslator.changelog
@@ -0,0 +1,18 @@
+2011-01-09 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org>
+ * gtranslator-1.9.13-1
+
+2010-08-30 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org>
+ * gtranslator-1.9.11-1
+
+2010-02-23 Jaroslav Lichtblau (Dragonlord) <dragonlord@aur.archlinux.org>
+ * gtranslator-1.9.7-1
+
+2007-06-19 Eric Belanger (Snowman) <eric@archlinux.org>
+ * gtranslator-1.1.7-3
+ added x86_64 to arch field
+ added license
+ removed gnome.sh sourcing : no longer necessary
+
+2007-05-29 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+ * gtranslator-1.1.7-3
+ move from /opt/gnome to /usr
diff --git a/community/gtranslator/gtranslator.install b/community/gtranslator/gtranslator.install
new file mode 100644
index 000000000..ea0fb1346
--- /dev/null
+++ b/community/gtranslator/gtranslator.install
@@ -0,0 +1,17 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/gts/PKGBUILD b/community/gts/PKGBUILD
new file mode 100644
index 000000000..3af73a5ed
--- /dev/null
+++ b/community/gts/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gts
+pkgver=0.7.6
+pkgrel=1
+pkgdesc='GNU Triangulated Surface Library.'
+arch=('i686' 'x86_64')
+url='http://gts.sourceforge.net/'
+license=('LGPL')
+depends=('glib2')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('9f710aefd2ed9b3cc1b1216171fc5a8a')
+options=('!libtool')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gtweakui/PKGBUILD b/community/gtweakui/PKGBUILD
new file mode 100644
index 000000000..74c8e55a4
--- /dev/null
+++ b/community/gtweakui/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Kritoke <kritoke@nospam.gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gtweakui
+pkgver=0.4.0
+pkgrel=3
+pkgdesc="A collection of front ends to various gconf configurations."
+arch=('i686' 'x86_64')
+url="http://gtweakui.sourceforge.net/"
+license=('GPL')
+depends=('libgnomeui')
+makedepends=('perlxml')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/gTweakUI-${pkgver}.tar.bz2)
+md5sums=('9d4725ccf4a83da3f46106c3d0be6cc8')
+
+build() {
+ cd ${srcdir}/gTweakUI-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/gTweakUI-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/gtypist/PKGBUILD b/community/gtypist/PKGBUILD
new file mode 100644
index 000000000..a4da3bd68
--- /dev/null
+++ b/community/gtypist/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 20472 2010-07-08 11:19:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ben Mazer <blm@groknil.org>
+# Contributor: Mike Douglas <code_monkey@gooeylinux.org>
+
+pkgname=gtypist
+pkgver=2.8.3
+pkgrel=3
+pkgdesc="universal typing tutor"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gtypist/gtypist.html"
+license=("GPL")
+depends=('ncurses>=5.2' 'perl')
+install=gtypist.install
+source=(ftp://ftp.gnu.org/gnu/gtypist/$pkgname-$pkgver.tar.gz)
+md5sums=('ea3c7faa01d7052c156d50fa0e0506b8')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$pkgdir/usr install || return 1
+ rm -f $pkgdir/usr/share/info/dir
+}
diff --git a/community/gtypist/gtypist.install b/community/gtypist/gtypist.install
new file mode 100644
index 000000000..7fd230fc4
--- /dev/null
+++ b/community/gtypist/gtypist.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gtypist.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/guake/PKGBUILD b/community/guake/PKGBUILD
new file mode 100644
index 000000000..96bc8f472
--- /dev/null
+++ b/community/guake/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 33304 2010-11-23 20:21:25Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Wilson Pinto Júnior (N3RD3X) <n3rd3x@linuxmail.org>
+pkgname=guake
+pkgver=0.4.2
+pkgrel=4
+pkgdesc='is a drop-down terminal for Gnome Desktop Environment'
+arch=('i686' 'x86_64')
+url='http://guake-terminal.org'
+license=('GPL')
+depends=('python-notify' 'vte' 'gconf' 'python2-gconf' 'dbus-python' 'notification-daemon')
+makedepends=('libx11' 'pkgconfig' 'perlxml' 'intltool')
+install=guake.install
+source=(http://trac.guake-terminal.org/files/guake-$pkgver.tar.gz
+ http://guake.org/raw-attachment/ticket/246/0001-Retrieve-port-as-int.2.patch)
+md5sums=('1f0feff3bfc15c998147dbf07d9d8a8e'
+ '9aca6ba8e46ae1b69958cda0e03320ff')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Point Python scripts to the python2 binary
+ sed -i 's|bin/python"|bin/python2"|' src/guake{,-prefs}.in
+
+ # Patch to import proxy port setting as int (http://guake.org/ticket/246)
+ patch -Np1 -i "$srcdir/0001-Retrieve-port-as-int.2.patch"
+
+ ./configure --sysconfdir=/usr/share --prefix=/usr --disable-static
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/guake/guake.install b/community/guake/guake.install
new file mode 100755
index 000000000..1e828c86b
--- /dev/null
+++ b/community/guake/guake.install
@@ -0,0 +1,17 @@
+pkgname=guake
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/community/guichan/PKGBUILD b/community/guichan/PKGBUILD
new file mode 100644
index 000000000..eee1aa7d5
--- /dev/null
+++ b/community/guichan/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 4400 2009-10-22 15:03:46Z ibiru $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Bjrn Lindeijer <bjorn@lindeijer.nl>
+pkgname=guichan
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="Guichan is a portable C++ GUI library designed for games using Allegro, SDL and/or OpenGL."
+arch=('i686' 'x86_64')
+url="http://guichan.sourceforge.net/"
+license=('BSD')
+makedepends=('sdl_image' 'allegro' 'libgl' 'glut')
+conflicts=('guichan-sdl' 'guichan-allegro' 'guichan-opengl' 'guichan-glut')
+provides=('guichan-sdl' 'guichan-allegro' 'guichan-opengl' 'guichan-glut')
+options=(!libtool !strip)
+source=(http://guichan.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('af535d7f387e774e3197cef8023ea105')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ CXXFLAGS="-g" ./configure --prefix=/usr
+ make || return 1
+ make prefix=$pkgdir/usr install
+
+ # Install the license, as required for BSD
+ install -m644 -D COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/guifications/PKGBUILD b/community/guifications/PKGBUILD
new file mode 100644
index 000000000..7f2d5e375
--- /dev/null
+++ b/community/guifications/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 17250 2010-05-22 14:25:10Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Link Dupont <link@.subpop.net>
+
+pkgname=guifications
+pkgver=2.16
+pkgrel=2
+pkgdesc="A set of GUI popup notifications for pidgin"
+arch=(i686 x86_64)
+url="http://plugins.guifications.org/trac/wiki/Guifications"
+license=("GPL")
+depends=('pidgin')
+makedepends=('perlxml')
+options=('!libtool')
+source=(pidgin-${pkgname}-${pkgver}.tar.bz2::http://plugins.guifications.org/trac/downloads/7)
+md5sums=('cd1f803231093cde01514feca59f643f')
+
+build() {
+ cd "${srcdir}/pidgin-${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-deprecated
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/gummi/PKGBUILD b/community/gummi/PKGBUILD
new file mode 100644
index 000000000..9a79506b8
--- /dev/null
+++ b/community/gummi/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Sergio A. Morales <sergiomorales@archlinux.cl>
+# Contributor: soeren <nonick@posteo.de>
+
+pkgname=gummi
+pkgver=0.5.8
+pkgrel=2
+pkgdesc='Simple LaTex editor for GTK users'
+arch=('i686' 'x86_64')
+url='http://gummi.midnightcoding.org/'
+license=('MIT')
+depends=('texlive-core' 'gtkspell' 'gtksourceview2' 'poppler-glib')
+makedepends=('glib2' 'gtk2' 'pango' 'poppler' 'intltool')
+source=("http://dev.midnightcoding.org/redmine/attachments/download/141/gummi-0.5.8-2.tar.gz")
+md5sums=('79cd1360779125ad85a0f0b459951b27')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ find . -type f -exec touch {} \;
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/gwenhywfar/PKGBUILD b/community/gwenhywfar/PKGBUILD
new file mode 100644
index 000000000..eb3800ad8
--- /dev/null
+++ b/community/gwenhywfar/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 42710 2011-03-19 21:54:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=gwenhywfar
+pkgver=4.0.9
+pkgrel=1
+pkgdesc="OS abstraction functions for various projects"
+arch=(i686 x86_64)
+url="http://www.aquamaniac.de"
+options=('!libtool')
+license=("LGPL")
+depends=('openssl')
+optdepends=('gtk2' 'qt')
+source=("gwenhywfar-$pkgver.tar.gz::http://www2.aquamaniac.de/sites/download/download.php?package=01&release=60&file=01&dummy=gwenhywfar-$pkgver.tar.gz")
+md5sums=('03c22b95eb493c8c98284d3d2e4d9795')
+
+build() {
+ pacman -Q gwenhywfar && return 1
+ cd $srcdir/gwenhywfar-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-ssl
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/gxmessage/PKGBUILD b/community/gxmessage/PKGBUILD
new file mode 100644
index 000000000..afc4f56e9
--- /dev/null
+++ b/community/gxmessage/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 20450 2010-07-08 10:59:33Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Jaroslav Lichtblau <tu@dragonlord.cz>
+
+pkgname=gxmessage
+pkgver=2.12.4
+pkgrel=1
+pkgdesc="A GTK2 based xmessage clone."
+arch=('i686' 'x86_64')
+url="http://homepages.ihug.co.nz/~trmusson/programs.html#gxmessage"
+license=('GPL')
+depends=('gtk2' 'desktop-file-utils')
+makedepends=('pkgconfig')
+install=$pkgname.install
+source=(http://homepages.ihug.co.nz/~trmusson/stuff/$pkgname-$pkgver.tar.gz
+ $pkgname.desktop)
+md5sums=('7c94c714ebedbfa2db2d645cc4a4092a'
+ 'af92506581c1aae70e3845a66a983f22')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+ install -D -m644 "$srcdir/$pkgname.desktop" \
+ "${pkgdir}/usr/share/applications/$pkgname.desktop"
+}
diff --git a/community/gxmessage/gxmessage.desktop b/community/gxmessage/gxmessage.desktop
new file mode 100644
index 000000000..f569431ff
--- /dev/null
+++ b/community/gxmessage/gxmessage.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=Gxmessage
+GenericName=gxmessage
+Comment=A GTK2 based xmessage clone.
+Comment[cs]=Klon xmessage postavený na knihovně GTK2.
+Icon=gxmessage
+Exec=gxmessage
+Terminal=false
+Categories=Utility;
diff --git a/community/gxmessage/gxmessage.install b/community/gxmessage/gxmessage.install
new file mode 100644
index 000000000..de3e0f510
--- /dev/null
+++ b/community/gxmessage/gxmessage.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "Updating desktop and mime database ..."
+ update-desktop-database -q
+}
diff --git a/community/gyachi/PKGBUILD b/community/gyachi/PKGBUILD
new file mode 100644
index 000000000..e01e8c385
--- /dev/null
+++ b/community/gyachi/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 41545 2011-03-07 16:44:45Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Alexandru Mizeranschi <lexu_85@yahoo.com>
+# Contributor: Conor Callahan <majikstreet@gmail.com>
+
+pkgname=gyachi
+pkgver=1.2.10
+pkgrel=3
+pkgdesc="An improved fork of the GyachE Yahoo! client"
+arch=('i686' 'x86_64')
+url="http://gyachi.sourceforge.net/"
+license=('GPL')
+depends=('libtool' 'jasper' 'libgtkhtml' 'libmcrypt' 'libv4l' 'gpgme'
+ 'gtkspell')
+makedepends=('pkgconfig' 'alsa-lib' 'pulseaudio' 'imagemagick')
+optdepends=('pulseaudio: for pulseaudio support')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/gyachi/gyachi-${pkgver}.tar.gz)
+md5sums=('68625f81c7be8cc6d67599fdb02f0178')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64"
+ ./autogen.sh
+ ./configure --prefix=/usr --libexecdir=/usr/lib/gyachi \
+ --disable-rpath \
+ --disable-wine \
+ --disable-gtktest \
+ --disable-glibtest \
+ --disable-plugin_libnotify \
+ --with-x
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ #icon
+ install -Dm644 "${pkgdir}/usr/share/gyachi/themes/gyachi-classic/gyach-icon_48.png" \
+ "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
+}
diff --git a/community/hacburn/PKGBUILD b/community/hacburn/PKGBUILD
new file mode 100644
index 000000000..da8654e32
--- /dev/null
+++ b/community/hacburn/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 7841 2010-01-11 23:20:21Z dgriffiths $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+pkgname=hacburn
+pkgver=0.3.5
+pkgrel=3.1
+pkgdesc="HacBurn is a script written in perl to aid in writing CDs. It is a graphical interface (using gtk+) to cdrtools, mpg321 and ogg123."
+arch=('i686' 'x86_64')
+url="http://hacburn.sourceforge.net/"
+license=('GPL')
+depends=('gtk2-perl' 'glib-perl' 'cdrtools' 'mpg321' 'vorbis-tools' 'gtk2' 'xorg-server' 'perl' 'cddb_get' 'lame')
+conflicts=('hacburn-cvs')
+source=(http://downloads.sourceforge.net/sourceforge/hacburn/HacBurn-$pkgver.tar.bz2)
+md5sums=('1e4b3e4b49de58259a446b7752f59f22')
+
+build() {
+ install -D -m755 $startdir/src/HacBurn-$pkgver/hacburn \
+ $startdir/pkg/usr/bin/hacburn
+ mkdir -p $startdir/pkg/usr/share/pixmaps
+ cp $startdir/src/HacBurn-$pkgver/hacburn.png \
+ $startdir/pkg/usr/share/pixmaps/hacburn.png
+}
diff --git a/community/handbrake/PKGBUILD b/community/handbrake/PKGBUILD
new file mode 100644
index 000000000..3aad96f48
--- /dev/null
+++ b/community/handbrake/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 41565 2011-03-07 21:41:40Z ibiru $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Sebastien Piccand <sebcactus gmail com>
+
+pkgname=('handbrake' 'handbrake-cli')
+pkgver=0.9.5
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://handbrake.fr/"
+license=('GPL')
+makedepends=('intltool' 'python2' 'yasm' 'wget' 'bzip2' 'gcc-libs' 'libnotify'
+ 'gstreamer0.10-base' 'gtk2' 'dbus-glib')
+source=(http://downloads.sourceforge.net/project/handbrake/$pkgver/HandBrake-$pkgver.tar.bz2
+ dbus-glib.patch libnotify-0.7.patch)
+md5sums=('e17d3663fc36a985fe43e188695e3196'
+ 'f8c2a3b258b2c30ef4abb28cee80f8d4'
+ 'd56bf38d8e1a1d373e5f3b69522958b1')
+
+build() {
+ cd "$srcdir/HandBrake-$pkgver"
+
+ patch -Np1 -i $srcdir/dbus-glib.patch
+ patch -Np1 -i $srcdir/libnotify-0.7.patch
+
+ # Use Python 2
+ sed -i 's/python /python2 /' gtk/src/Makefile.am
+
+ ./configure --prefix=/usr --force --disable-gtk-update-checks
+ cd build
+ make
+}
+
+package_handbrake() {
+ pkgdesc="Multithreaded video transcoder"
+ depends=('bzip2' 'gcc-libs' 'gstreamer0.10-base' 'libnotify'
+ 'hicolor-icon-theme')
+ install=$pkgname.install
+
+ cd "$srcdir/HandBrake-$pkgver/build"
+
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir/usr/bin/HandBrakeCLI"
+}
+
+package_handbrake-cli() {
+ pkgdesc="Multithreaded video transcoder (CLI)"
+ depends=('bzip2' 'gcc-libs' 'zlib')
+
+ cd "$srcdir/HandBrake-$pkgver/build"
+ install -D HandBrakeCLI "$pkgdir/usr/bin/HandBrakeCLI"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/handbrake/dbus-glib.patch b/community/handbrake/dbus-glib.patch
new file mode 100644
index 000000000..602918a65
--- /dev/null
+++ b/community/handbrake/dbus-glib.patch
@@ -0,0 +1,12 @@
+diff -Nur HandBrake-0.9.5.orig/gtk/configure.ac HandBrake-0.9.5/gtk/configure.ac
+--- HandBrake-0.9.5.orig/gtk/configure.ac 2011-03-07 13:06:20.333338164 -0800
++++ HandBrake-0.9.5/gtk/configure.ac 2011-03-07 13:07:46.346670456 -0800
+@@ -94,7 +94,7 @@
+ mingw_flag=yes
+ ;;
+ *)
+- GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 libnotify gudev-1.0"
++ GHB_PACKAGES="gtk+-2.0 >= 2.10 gthread-2.0 gstreamer-0.10 gstreamer-interfaces-0.10 gstreamer-video-0.10 gstreamer-pbutils-0.10 gio-2.0 libnotify gudev-1.0 dbus-glib-1"
+ mingw_flag=no
+ ;;
+ esac
diff --git a/community/handbrake/handbrake.install b/community/handbrake/handbrake.install
new file mode 100644
index 000000000..7aaea8154
--- /dev/null
+++ b/community/handbrake/handbrake.install
@@ -0,0 +1,9 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/handbrake/libnotify-0.7.patch b/community/handbrake/libnotify-0.7.patch
new file mode 100644
index 000000000..0def15254
--- /dev/null
+++ b/community/handbrake/libnotify-0.7.patch
@@ -0,0 +1,30 @@
+diff -Nur HandBrake-0.9.5.orig/gtk/src/callbacks.c HandBrake-0.9.5/gtk/src/callbacks.c
+--- HandBrake-0.9.5.orig/gtk/src/callbacks.c 2011-03-07 13:06:20.333338164 -0800
++++ HandBrake-0.9.5/gtk/src/callbacks.c 2011-03-07 13:21:32.973338933 -0800
+@@ -39,6 +39,10 @@
+ #endif
+
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ #include <gdk/gdkx.h>
+ #else
+ #define WINVER 0x0500
+@@ -4889,9 +4893,13 @@
+ notification = notify_notification_new(
+ "Encode Complete",
+ "Put down that cocktail, Your HandBrake queue is done!",
+- "hb-icon",
+- NULL);
++ "hb-icon"
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ ,NULL);
+ notify_notification_attach_to_status_icon(notification, si);
++#endif
+ g_signal_connect(notification, "closed", (GCallback)notify_closed_cb, ud);
+ notify_notification_show(notification, NULL);
+ #endif
diff --git a/community/hardinfo/ChangeLog b/community/hardinfo/ChangeLog
new file mode 100644
index 000000000..faf242a7b
--- /dev/null
+++ b/community/hardinfo/ChangeLog
@@ -0,0 +1,20 @@
+2009-04-06 Eric Belanger <eric@archlinux.org>
+
+ * hardinfo 0.5.1-1
+ * Upstream update
+
+2009-03-29 Eric Belanger <eric@archlinux.org>
+
+ * hardinfo 0.5c-1
+ * Upstream update
+
+2008-08-13 Eric Belanger <eric@archlinux.org>
+
+ * hardinfo 0.4.2.3-3
+ * Rebuilt against gnutls 2.4.1
+
+2008-04-06 Eric Belanger <eric@archlinux.org>
+
+ * hardinfo 0.4.2.3-2
+ * Rebuilt against libsoup 2.4
+ * Added ChangeLog
diff --git a/community/hardinfo/PKGBUILD b/community/hardinfo/PKGBUILD
new file mode 100644
index 000000000..36795a8c1
--- /dev/null
+++ b/community/hardinfo/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 17993 2010-05-29 04:49:43Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=hardinfo
+pkgver=0.5.1
+pkgrel=2
+pkgdesc="A system information and benchmark tool."
+arch=('i686' 'x86_64')
+url="http://hardinfo.berlios.de/wiki/index.php/Main_Page"
+license=('GPL2')
+depends=('gtk2' 'libsoup' 'gnutls')
+options=('!emptydirs')
+source=(http://download.berlios.de/hardinfo/${pkgname}-${pkgver}.tar.bz2 \
+ fixsensors.patch hardinfo.distro)
+md5sums=('6fb38992e140f2fab16518ae1f38e188' '05c212db07b9f152cdea052ff7bb28fa'\
+ 'ab8a557d10f74bec5c94ed6cae34729c')
+sha1sums=('983f0445aa60e02156bc5a5eaedeffb30b8e4d64' 'd2151dce76dca238102937d0e15541f172bca530'\
+ '4c31cbbfbdeb48593641ff600c8d4fb7bda2b01c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../fixsensors.patch || return 1
+ sed -i 's|/usr/lib64|/usr/lib|' configure || return 1
+ ./configure --prefix=/usr || return 1
+ sed -i 's|lib64|lib|' binreloc.c || return 1
+ sed -i 's|/sbin/lsmod|/bin/lsmod|g' arch/linux/{parisc,ppc,m68k,x86,common,mips,sparc,x86_64}/modules.h || return 1
+ sed -i 's|/sbin/lsmod|/bin/lsmod|g' arch/this/modules.h || return 1
+ sed -i 's|{ DB_PREFIX "debian_version", "deb" },|{ DB_PREFIX "hardinfo.distro", "arch" },{ DB_PREFIX "debian_version", "deb" },|' computer.h || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 ../hardinfo.distro "${pkgdir}/etc/hardinfo.distro" || return 1
+}
diff --git a/community/hardinfo/fixsensors.patch b/community/hardinfo/fixsensors.patch
new file mode 100644
index 000000000..812c29458
--- /dev/null
+++ b/community/hardinfo/fixsensors.patch
@@ -0,0 +1,13 @@
+ diff -upNr hardinfo-0.4.2.2.orign/util.c hardinfo-0.4.2.2/util.c
+--- hardinfo-0.4.2.2.orign/util.c 2007-07-20 16:45:08.000000000 +0200
++++ hardinfo-0.4.2.2/util.c 2007-07-26 10:15:32.000000000 +0200
+@@ -996,7 +996,8 @@ gchar *h_strdup_cprintf(const gchar * fo
+ if (source) {
+ retn = g_strconcat(source, buffer, NULL);
+ g_free(buffer);
+- g_free(source);
++ if(strlen(source))
++ g_free(source);
+ } else {
+ retn = buffer;
+ }
diff --git a/community/hardinfo/hardinfo.distro b/community/hardinfo/hardinfo.distro
new file mode 100644
index 000000000..850183eeb
--- /dev/null
+++ b/community/hardinfo/hardinfo.distro
@@ -0,0 +1 @@
+Arch Linux
diff --git a/community/hashcash/PKGBUILD b/community/hashcash/PKGBUILD
new file mode 100644
index 000000000..1d22902b3
--- /dev/null
+++ b/community/hashcash/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 5144 2009-11-07 00:41:40Z ibiru $
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=hashcash
+pkgver=1.22
+pkgrel=2
+pkgdesc="Hashcash is a denial-of-service counter measure tool for email/spam."
+arch=('i686' 'x86_64')
+url="http://www.hashcash.org"
+license=('GPL')
+depends=( 'glibc' )
+source=(http://www.hashcash.org/source/${pkgname}-${pkgver}.tgz)
+md5sums=(31fae207061841dffc7b90ee18e3d0fa)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ if [ "${CARCH}" = "x86_64" ]; then
+ make generic-openssl || return 1
+ else make x86-openssl || return 1
+ fi
+ install -Dm755 hashcash ${pkgdir}/usr/bin/hashcash
+ install -Dm755 sha1 ${pkgdir}/usr/bin/sha1
+ install -Dm755 hashcash.1 ${pkgdir}/usr/share/man/man1/hashcash.1
+}
diff --git a/community/haskell-dbus/PKGBUILD b/community/haskell-dbus/PKGBUILD
new file mode 100644
index 000000000..722024016
--- /dev/null
+++ b/community/haskell-dbus/PKGBUILD
@@ -0,0 +1,43 @@
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7
+# Maintainer: Jelle van der Waa <jelle vdwaa nl>
+#
+_hkgname=DBus
+pkgname=haskell-dbus
+pkgver=0.4
+pkgrel=3.1
+pkgdesc="DBus bindings"
+url="http://hackage.haskell.org/package/DBus"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'sh')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/DBus/0.4/DBus-0.4.tar.gz
+ dbus-0.4.patch)
+install=haskell-dbus.install
+md5sums=('5658e4b2acfca27151222e8dc8adeed0'
+ '964d3a42b4ffcfa741fc75be99d485b7')
+build() {
+ cd ${srcdir}/DBus-$pkgver
+ patch -p1 -i ${srcdir}/dbus-0.4.patch
+ runhaskell Setup configure -O -p \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid \
+ --enable-split-objs --enable-shared
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/$pkgname/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/$pkgname/unregister.sh
+ install -d -m755 $pkgdir/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/DBus
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/community/haskell-dbus/dbus-0.4.patch b/community/haskell-dbus/dbus-0.4.patch
new file mode 100644
index 000000000..b983801cf
--- /dev/null
+++ b/community/haskell-dbus/dbus-0.4.patch
@@ -0,0 +1,60 @@
+diff -aru DBus-0.4/DBus/Internal.hsc DBus-0.4.new/DBus/Internal.hsc
+--- DBus-0.4/DBus/Internal.hsc 2008-09-08 01:28:20.000000000 +0200
++++ DBus-0.4.new/DBus/Internal.hsc 2011-02-15 08:07:45.222787595 +0100
+@@ -9,7 +9,7 @@
+
+ module DBus.Internal where
+
+-import Control.Exception (throwDyn)
++import Control.Exception (throwIO)
+ import Control.Monad (when)
+ import DBus (Error(..))
+ import Foreign
+@@ -57,6 +57,6 @@
+ else do name <- #{peek DBusError, name} err >>= peekCString
+ msg <- #{peek DBusError, message} err >>= peekCString
+ error_free err
+- throwDyn $ Error name msg
++ throwIO $ Error name msg
+
+ -- vim: set ts=2 sw=2 tw=72 et ft=haskell :
+diff -aru DBus-0.4/DBus.cabal DBus-0.4.new/DBus.cabal
+--- DBus-0.4/DBus.cabal 2008-09-08 01:28:20.000000000 +0200
++++ DBus-0.4.new/DBus.cabal 2011-02-15 08:09:19.376168928 +0100
+@@ -11,7 +11,8 @@
+ description: Bindings for the D-Bus API.
+ For details on D-Bus, see the D-Bus wiki at:
+ <http://www.freedesktop.org/wiki/Software/dbus>
+-build-depends: base, bytestring
++build-depends: base >= 4, bytestring
++pkgconfig-depends: dbus-1
+ build-type: Configure
+ extensions: ForeignFunctionInterface, OverlappingInstances,
+ ExistentialQuantification
+diff -aru DBus-0.4/DBus.hsc DBus-0.4.new/DBus.hsc
+--- DBus-0.4/DBus.hsc 2008-09-08 01:28:20.000000000 +0200
++++ DBus-0.4.new/DBus.hsc 2011-02-15 08:08:49.974771904 +0100
+@@ -2,7 +2,7 @@
+ -- Copyright (C) 2006 Evan Martin <martine@danga.com>
+
+ #define DBUS_API_SUBJECT_TO_CHANGE
+-#include "dbus/dbus.h"
++#include <dbus/dbus.h>
+
+ module DBus (
+ module DBus.Shared,
+@@ -24,6 +24,7 @@
+
+ import DBus.Shared
+ import Data.Typeable (Typeable(..), mkTyConApp, mkTyCon)
++import Control.Exception
+
+ -- |'Error's carry a name (like \"org.freedesktop.dbus.Foo\") and a
+ -- message (like \"connection failed\").
+@@ -32,5 +33,6 @@
+ typeOf _ = mkTyConApp (mkTyCon "DBus.Error") []
+ instance Show Error where
+ show (Error name message) = "D-Bus Error (" ++ name ++ "): " ++ message
++instance Exception Error
+
+ -- vim: set ts=2 sw=2 tw=72 et ft=haskell :
diff --git a/community/haskell-dbus/haskell-dbus.install b/community/haskell-dbus/haskell-dbus.install
new file mode 100644
index 000000000..284164971
--- /dev/null
+++ b/community/haskell-dbus/haskell-dbus.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-dbus
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/haskell-hslogger/PKGBUILD b/community/haskell-hslogger/PKGBUILD
new file mode 100644
index 000000000..115e42e89
--- /dev/null
+++ b/community/haskell-hslogger/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41263 2011-03-04 22:40:08Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+
+_hkgname=hslogger
+pkgname=haskell-hslogger
+pkgver=1.1.0
+pkgrel=3.1
+pkgdesc="Versatile logging framework"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'haskell-mtl=2.0.1.0' 'haskell-network=2.3.0.2')
+options=('strip')
+install=${pkgname}.install
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+md5sums=('8039e079338dae19e1273bbd73332014')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure --prefix=/usr --docdir=/usr/share/doc/${pkgname} -O \
+ --enable-split-objs --enable-shared --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+}
diff --git a/community/haskell-hslogger/haskell-hslogger.install b/community/haskell-hslogger/haskell-hslogger.install
new file mode 100644
index 000000000..2a0d98ae7
--- /dev/null
+++ b/community/haskell-hslogger/haskell-hslogger.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-hslogger
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/haskell-x11-xft/PKGBUILD b/community/haskell-x11-xft/PKGBUILD
new file mode 100644
index 000000000..5d7da4448
--- /dev/null
+++ b/community/haskell-x11-xft/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41278 2011-03-04 23:15:52Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+_hkgname=X11-xft
+pkgname=haskell-x11-xft
+pkgver=0.3
+pkgrel=19.2
+pkgdesc="Bindings to the Xft, X Free Type interface library, and some Xrender parts"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'haskell-x11=1.5.0.0' 'haskell-utf8-string=0.3.6' 'libxft')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/X11-xft/$pkgver/X11-xft-$pkgver.tar.gz)
+install=haskell-x11-xft.install
+md5sums=('1b4a528a2a4fe5e9de715f6758ff9015')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/community/haskell-x11-xft/haskell-x11-xft.install b/community/haskell-x11-xft/haskell-x11-xft.install
new file mode 100644
index 000000000..a0ff8dac8
--- /dev/null
+++ b/community/haskell-x11-xft/haskell-x11-xft.install
@@ -0,0 +1,18 @@
+HS_DIR=/usr/share/haskell/haskell-x11-xft
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/haskell-x11/PKGBUILD b/community/haskell-x11/PKGBUILD
new file mode 100644
index 000000000..9c1f0bf8b
--- /dev/null
+++ b/community/haskell-x11/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 41253 2011-03-04 22:32:41Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: shild <sxp@bk.ru>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+
+_hkgname=X11
+pkgname=haskell-x11
+pkgver=1.5.0.0
+pkgrel=7.2
+pkgdesc="A Haskell binding to the X11 graphics library."
+arch=(i686 x86_64)
+url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11"
+license=('custom:BSD3')
+options=('strip')
+depends=("ghc=7.0.2" "haskell-syb=0.3" 'libx11' 'libxinerama')
+conflicts=(haskell-x11-extras)
+install=hsmod.install
+source=(http://hackage.haskell.org/packages/archive/X11/$pkgver/X11-$pkgver.tar.gz)
+md5sums=('ec6670f5ce1812206903c8a0fd9df04c')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/community/haskell-x11/hsmod.install b/community/haskell-x11/hsmod.install
new file mode 100644
index 000000000..45c23b979
--- /dev/null
+++ b/community/haskell-x11/hsmod.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-x11
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/community/hatari/PKGBUILD b/community/hatari/PKGBUILD
new file mode 100644
index 000000000..49a615578
--- /dev/null
+++ b/community/hatari/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 27018 2010-09-16 17:37:18Z schuay $
+# Maintainer: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=hatari
+pkgver=1.4.0
+pkgrel=2
+pkgdesc='An Atari ST and STE emulator'
+arch=('i686' 'x86_64')
+url='http://hatari.sourceforge.net/'
+license=('GPL')
+depends=('sdl' 'libpng')
+makedepends=('cmake')
+source=("http://download.berlios.de/hatari/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('2f30e5c9e146ee92e3f2f5ae1cef3673')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/hawknl/PKGBUILD b/community/hawknl/PKGBUILD
new file mode 100644
index 000000000..ab40d900f
--- /dev/null
+++ b/community/hawknl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 27661 2010-09-26 18:25:05Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Drew Desai <alerante@yahoo.com>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+
+pkgname=hawknl
+pkgver=1.68
+pkgrel=2
+pkgdesc="An open source game oriented network API"
+arch=('i686' 'x86_64')
+url="http://www.hawksoft.com/hawknl/"
+license=('LGPL')
+depends=('glibc')
+source=(http://www.hawksoft.com/download/files/HawkNL${pkgver/\./}src.tar.gz
+ $pkgname.patch)
+md5sums=('2e4971d422b8c5cadfe2a85527ff2fcf'
+ 'a7e695ceeabb816ba147de563c61616f')
+
+build() {
+ cd "$srcdir"/$pkgname$pkgver
+ patch -Np0 -i ../$pkgname.patch || return 1
+ make -f makefile.linux || return 1
+ install -m755 -d "$pkgdir"/usr/{lib,include}
+ make -f makefile.linux \
+ LIBDIR="$pkgdir"/usr/lib \
+ INCDIR="$pkgdir"/usr/include \
+ OPTFLAGS="-D_GNU_SOURCE -D_REENTRANT" \
+ install || return 1
+}
diff --git a/community/hawknl/hawknl.patch b/community/hawknl/hawknl.patch
new file mode 100644
index 000000000..193c54ea3
--- /dev/null
+++ b/community/hawknl/hawknl.patch
@@ -0,0 +1,27 @@
+--- src/makefile.linux~ 2009-11-03 17:57:37.978184080 +0500
++++ src/makefile.linux 2009-11-03 18:00:05.228169458 +0500
+@@ -37,20 +37,12 @@
+ cp $(OUTPUT) $(LIBDIR)
+ cp $(STATIC) $(LIBDIR)
+ chmod 755 $(LIBDIR)/$(OUTPUT)
+- ln -s $(LIBDIR)/$(OUTPUT) $(LIBDIR)/lib$(LIBNAME).so.$(MAJOR_VERSION).$(MINOR_VERSION)
+- ln -s $(LIBDIR)/$(OUTPUT) $(LIBDIR)/lib$(LIBNAME).so.$(MAJOR_VERSION)
+- ln -s $(LIBDIR)/$(OUTPUT) $(LIBDIR)/lib$(LIBNAME).so
+- ln -s $(LIBDIR)/$(OUTPUT) $(LIBDIR)/$(LIBNAME).so
++ ln -s $(OUTPUT) $(LIBDIR)/lib$(LIBNAME).so.$(MAJOR_VERSION).$(MINOR_VERSION)
++ ln -s $(OUTPUT) $(LIBDIR)/lib$(LIBNAME).so.$(MAJOR_VERSION)
++ ln -s $(OUTPUT) $(LIBDIR)/lib$(LIBNAME).so
++ ln -s $(OUTPUT) $(LIBDIR)/$(LIBNAME).so
+ cp ../include/nl.h $(INCDIR)/nl.h
+ chmod 644 $(INCDIR)/nl.h
+- @echo ""
+- @echo "*************************************************"
+- @echo "* Installed HawkNL. *"
+- @echo "* Remember to run /sbin/ldconfig before using *"
+- @echo "* the library, you may also want to check that *"
+- @echo "* $(LIBDIR) is included in /etc/ld.so.conf *"
+- @echo "* You must be root to run ldconfig. *"
+- @echo "*************************************************"
+
+ uninstall:
+ rm -f $(LIBDIR)/$(OUTPUT) $(LIBDIR)/lib$(LIBNAME).so.$(MAJOR_VERSION).$(MINOR_VERSION)
diff --git a/community/hedgewars/PKGBUILD b/community/hedgewars/PKGBUILD
new file mode 100644
index 000000000..69e8e34ca
--- /dev/null
+++ b/community/hedgewars/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 36219 2010-12-28 10:43:33Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=hedgewars
+pkgver=0.9.15
+pkgrel=1
+pkgdesc="Free Worms-like turn based strategy game"
+arch=('i686' 'x86_64')
+url="http://hedgewars.org"
+license=('GPL' 'custom')
+depends=('qt' 'sdl' 'sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'lua')
+makedepends=('fpc' 'cmake' 'ghc'
+ 'haskell-utf8-string' 'haskell-dataenc' 'haskell-network'
+ 'haskell-hslogger')
+source=(http://download.gna.org/hedgewars/hedgewars-src-$pkgver.tar.bz2
+ hedgewars.desktop
+ hedgewars.png)
+md5sums=('a7d5e9082d3377dba573b7fee4bc833d'
+ '48c66a3204d4fa0a69e9aa46f7c31e0c'
+ 'eeb14d50df39063549ac5eca9dbc65d1')
+
+build() {
+ cd $srcdir/$pkgname-src-$pkgver
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DDATA_INSTALL_DIR=/usr/share \
+ -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake \
+ -DQT_MOC_EXECUTABLE=/usr/bin/moc \
+ -DWITH_SERVER=1
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m644 Fonts_LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/Fonts_LICENSE.txt
+ install -D -m644 $srcdir/hedgewars.png $pkgdir/usr/share/pixmaps/hedgewars.png
+ install -D -m644 $srcdir/hedgewars.desktop $pkgdir/usr/share/applications/hedgewars.desktop
+}
diff --git a/community/hedgewars/hedgewars.desktop b/community/hedgewars/hedgewars.desktop
new file mode 100644
index 000000000..9d74ed3f1
--- /dev/null
+++ b/community/hedgewars/hedgewars.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Type=Application
+Name=Hedgewars
+GenericName=Platform Game
+Comment=Worms style game
+Exec=hedgewars
+Icon=hedgewars
+Categories=Game;ArcadeGame; \ No newline at end of file
diff --git a/community/hedgewars/hedgewars.png b/community/hedgewars/hedgewars.png
new file mode 100644
index 000000000..60ae66199
--- /dev/null
+++ b/community/hedgewars/hedgewars.png
Binary files differ
diff --git a/community/hevea/PKGBUILD b/community/hevea/PKGBUILD
new file mode 100644
index 000000000..d1d9e3136
--- /dev/null
+++ b/community/hevea/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 25738 2010-09-10 11:55:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Brian Nguyen <bhnguyen@gmail.com>
+# Original Packager: Tom K <tomk@runbox.com>
+
+pkgname=hevea
+pkgver=1.10
+pkgrel=2
+pkgdesc="A quite complete and fast LATEX to HTML translator"
+arch=(i686 x86_64)
+depends=('ocaml')
+license=('GPL')
+url="http://pauillac.inria.fr/~maranget/hevea/"
+install=hevea.install
+source=(http://pauillac.inria.fr/~maranget/$pkgname/distri/$pkgname-$pkgver.tar.gz)
+md5sums=('24a631570bee3cc4b8350e9db39be62b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i 's:usr/local:usr:' Makefile
+ make || return 1
+
+ sed -i "s:DESTDIR=.*:DESTDIR=$pkgdir:" Makefile config.sh
+ make install
+ mkdir -p $pkgdir/usr/share/texmf/tex/latex
+ ln -s /usr/lib/hevea/hevea.sty $pkgdir/usr/share/texmf/tex/latex/hevea.sty
+}
diff --git a/community/hevea/hevea.install b/community/hevea/hevea.install
new file mode 100644
index 000000000..73059e5df
--- /dev/null
+++ b/community/hevea/hevea.install
@@ -0,0 +1,13 @@
+post_install() {
+ echo "HEVEA is fully functional when other software are installed:"
+ echo "* A modern LaTeX installation including dvips."
+ echo "* The ghostscript PostScript interpreter."
+ echo "* The netpbm image processing package."
+ echo "However, these are optional and hevea runs without them."
+ texhash
+}
+
+post_upgrade() {
+ post_install $1
+}
+
diff --git a/community/hex-a-hop/PKGBUILD b/community/hex-a-hop/PKGBUILD
new file mode 100644
index 000000000..80e12e8ac
--- /dev/null
+++ b/community/hex-a-hop/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 42002 2011-03-11 13:44:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: insulae <insulae@gmail.com>
+
+pkgname=hex-a-hop
+pkgver=1.1.0
+pkgrel=2
+pkgdesc='Hex-a-hop is a puzzle game based on hexagonal tiles'
+arch=('i686' 'x86_64')
+url='http://hexahop.sourceforge.net/'
+license=('GPL')
+depends=('sdl_mixer' 'sdl_ttf' 'gcc-libs')
+makedepends=()
+options=(force)
+source=("https://downloads.sourceforge.net/project/hexahop/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ "hex-a-hop.desktop")
+md5sums=('cc8d065c2cc0fce9e08852b8c465175e'
+ '048ff7975024ae1eda3164620f594c09')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make install DESTDIR=${pkgdir}
+ install -Dm0644 $srcdir/hex-a-hop.desktop $pkgdir/usr/share/applications/hex-a-hop.desktop
+}
diff --git a/community/hex-a-hop/hex-a-hop.desktop b/community/hex-a-hop/hex-a-hop.desktop
new file mode 100644
index 000000000..3a0ea92af
--- /dev/null
+++ b/community/hex-a-hop/hex-a-hop.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Hex-a-Hop
+GenericName=Hexagonal Tile-based Puzzle Game
+Comment=Hexagonal Tile-based Puzzle Game
+Exec=/usr/bin/hex-a-hop
+Terminal=false
+MultipleArgs=false
+Type=Application
+Icon=/usr/share/hex-a-hop/icon.bmp
+Categories=Game;ArcadeGame
diff --git a/community/highlight/PKGBUILD b/community/highlight/PKGBUILD
new file mode 100644
index 000000000..19cf2ef16
--- /dev/null
+++ b/community/highlight/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 43919 2011-03-31 14:31:46Z bluewind $
+# Maintainer: Florian Pritz <flo@xinu.at>
+# Contributor: Jan Fader <jan.fader@web.de>
+pkgbase=highlight
+pkgname=(highlight highlight-gui)
+pkgver=3.4
+pkgrel=1
+url="http://www.andre-simon.de/doku/highlight/highlight.html"
+license=('GPL')
+arch=('i686' 'x86_64')
+makedepends=(qt lua boost)
+source=(http://www.andre-simon.de/zip/$pkgname-$pkgver.tar.bz2)
+md5sums=('9f1c39ca3a04c4599a7f3fda9928de47')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ make
+ make gui
+}
+
+package_highlight() {
+ pkgdesc="Fast and flexible source code highlighter (CLI version)"
+ depends=('lua')
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+package_highlight-gui() {
+ pkgdesc="Fast and flexible source code highlighter (QT version)"
+ depends=('qt' 'highlight')
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ install -dm755 "$pkgdir/usr/bin"
+ make DESTDIR="$pkgdir" install-gui
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/homebank/PKGBUILD b/community/homebank/PKGBUILD
new file mode 100644
index 000000000..34875c7c9
--- /dev/null
+++ b/community/homebank/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 42119 2011-03-13 21:12:41Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=homebank
+pkgver=4.4
+pkgrel=1
+pkgdesc="Free, easy, personal accounting for everyone"
+arch=('i686' 'x86_64')
+url="http://homebank.free.fr/"
+license=('GPL')
+depends=('desktop-file-utils' 'gtk2' 'hicolor-icon-theme' 'libofx' 'librsvg' 'perlxml' 'shared-mime-info')
+makedepends=('intltool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://homebank.free.fr/public/$pkgname-$pkgver.tar.gz)
+sha256sums=('13b89373575e3ac229d2683aa7296778ad7cdae1a7a019c9124a1d5b23dce7d2')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/homebank/homebank.changelog b/community/homebank/homebank.changelog
new file mode 100644
index 000000000..1790b3400
--- /dev/null
+++ b/community/homebank/homebank.changelog
@@ -0,0 +1,17 @@
+2010-03-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * homebank 4.4-1
+
+2010-06-23 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.3
+
+2010-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.2.1
+
+2010-02-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.2
+
+2009-11-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.1
+
+2008-11-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.0
diff --git a/community/homebank/homebank.install b/community/homebank/homebank.install
new file mode 100644
index 000000000..3c862f44b
--- /dev/null
+++ b/community/homebank/homebank.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+ update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/hostapd/PKGBUILD b/community/hostapd/PKGBUILD
new file mode 100644
index 000000000..c8e7408b5
--- /dev/null
+++ b/community/hostapd/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 35909 2010-12-23 21:54:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+_madwifiver=0.9.4.4133
+pkgname=hostapd
+pkgver=0.7.3
+pkgrel=3
+pkgdesc="daemon for wireless software access points"
+arch=('i686' 'x86_64')
+url="http://hostap.epitest.fi/hostapd/"
+license=('custom')
+depends=('openssl' 'libnl')
+makedepends=('svn')
+provides=('hostapd')
+conflicts=('hostapd')
+backup=('etc/hostapd/hostapd.conf'
+ 'etc/conf.d/hostapd')
+install=hostapd.install
+source=(http://hostap.epitest.fi/releases/$pkgname-$pkgver.tar.gz
+ ftp://ftp.archlinux.org/other/madwifi/madwifi-${_madwifiver}.tar.bz2
+ config.bz2
+ hostapd
+ hostapd.conf.d)
+md5sums=('91a7c8d0f090b7104152d3455a84c112'
+ 'ca3c3504d000e7b3d7063af46271c932'
+ '5d087e2e047ffceb3218e6b2b68fb3bf'
+ 'd570327c385f34a4af24d3a0d61cea19'
+ 'f169534b0f59b341f6df1a21e0344511')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/hostapd
+
+ cp ../../config ./.config
+
+ sed -i "s|/usr|$srcdir/madwifi|" .config
+ sed -i "s|/usr/local/bin|$pkgdir/usr/bin|" Makefile
+
+ mkdir -p $pkgdir/usr/bin $pkgdir/etc/hostapd \
+ $pkgdir/usr/man/man1 $pkgdir/usr/man/man8 \
+ $pkgdir/usr/share/licenses/$pkgname $pkgdir/etc/rc.d
+
+ make
+ make DESTDIR=$pkg install
+
+ cp hlr_auc_gw.milenage_db $pkgdir/etc/hostapd
+ cp hostapd.accept $pkgdir/etc/hostapd
+ cp hostapd.conf $pkgdir/etc/hostapd
+ cp hostapd.deny $pkgdir/etc/hostapd
+ cp hostapd.eap_user $pkgdir/etc/hostapd
+ cp hostapd.radius_clients $pkgdir/etc/hostapd
+ cp hostapd.sim_db $pkgdir/etc/hostapd
+ cp hostapd.vlan $pkgdir/etc/hostapd
+ cp hostapd.wpa_psk $pkgdir/etc/hostapd
+ cp wired.conf $pkgdir/etc/hostapd
+ cp hostapd.8 $pkgdir/usr/man/man8
+ cp hostapd_cli.1 $pkgdir/usr/man/man1
+ cp ../COPYING $pkgdir/usr/share/licenses/hostapd
+ cp ../../hostapd $pkgdir/etc/rc.d
+ mkdir -p $pkgdir/etc/conf.d
+ cp ../../hostapd.conf.d $pkgdir/etc/conf.d/hostapd
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/hostapd/config.bz2 b/community/hostapd/config.bz2
new file mode 100644
index 000000000..5c85415bb
--- /dev/null
+++ b/community/hostapd/config.bz2
Binary files differ
diff --git a/community/hostapd/hostapd b/community/hostapd/hostapd
new file mode 100755
index 000000000..b4709d7bf
--- /dev/null
+++ b/community/hostapd/hostapd
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/hostapd
+
+case "$1" in
+ start)
+ stat_busy "Starting hostapd"
+ /usr/bin/hostapd -B -P ${HOSTAPD_PID} ${HOSTAPD_CONF} &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ add_daemon hostapd
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping hostapd"
+ [ -f ${HOSTAPD_PID} ] && kill `cat ${HOSTAPD_PID}` &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ rm_daemon hostapd
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/hostapd/hostapd.conf.d b/community/hostapd/hostapd.conf.d
new file mode 100644
index 000000000..7a7bbc806
--- /dev/null
+++ b/community/hostapd/hostapd.conf.d
@@ -0,0 +1,2 @@
+HOSTAPD_PID="/var/run/hostapd.pid"
+HOSTAPD_CONF="/etc/hostapd/hostapd.conf"
diff --git a/community/hostapd/hostapd.install b/community/hostapd/hostapd.install
new file mode 100644
index 000000000..bd2216541
--- /dev/null
+++ b/community/hostapd/hostapd.install
@@ -0,0 +1,21 @@
+post_install() {
+ echo "> Note: You will find some config examples in"
+ echo "> /etc/hostapd. The default location of several"
+ echo "> key configuration files for hostapd are in"
+ echo "> /etc/hostapd as well. They are:"
+ echo "> hostapd.conf --> primary configuration file"
+ echo "> hostapd.allow --> MAC allow list"
+ echo "> hostapd.deny --> MAC deny list"
+ echo "> Also, note that there are some self-explanatory"
+ echo "> examples in the directory. Feel free to change the mac"
+ echo "> list location by defining it differently in your hostapd.conf"
+ echo "> file. Please, note, however. The daemon start/stop"
+ echo "> script assumes you have a working config file at"
+ echo "> /etc/hostapd/hostapd.conf. One final thing to remember."
+ echo "> You need to install madwifi if you want support for it."
+}
+
+post_upgrade() {
+ post_install
+}
+
diff --git a/community/hping/Makefile.patch b/community/hping/Makefile.patch
new file mode 100644
index 000000000..dd53dd0a6
--- /dev/null
+++ b/community/hping/Makefile.patch
@@ -0,0 +1,30 @@
+diff -Naur hping3-20051105/Makefile hping3-20051105-new/Makefile
+--- hping3-20051105/Makefile 2005-11-05 05:31:41.000000000 -0500
++++ hping3-20051105-new/Makefile 2009-02-26 03:21:46.000000000 -0500
+@@ -72,16 +72,18 @@
+ rm -rf hping3 *.o byteorder byteorder.h systype.h Makefile libars.a .depend
+
+ install: hping3
+- cp -f hping3 /usr/sbin/
+- chmod 755 /usr/sbin/hping3
+- ln -s /usr/sbin/hping3 /usr/sbin/hping
+- ln -s /usr/sbin/hping3 /usr/sbin/hping2
+- @if [ -d ${INSTALL_MANPATH}/man8 ]; then \
+- cp ./docs/hping3.8 ${INSTALL_MANPATH}/man8; \
+- chmod 644 ${INSTALL_MANPATH}/man8/hping3.8; \
++ @[ ! -d ${DESTDIR}/usr/sbin ] && install -d ${DESTDIR}/usr/sbin
++ cp -f hping3 ${DESTDIR}/usr/sbin/
++ chmod 755 ${DESTDIR}/usr/sbin/hping3
++ ln -s /usr/sbin/hping3 ${DESTDIR}/usr/sbin/hping
++ ln -s /usr/sbin/hping3 ${DESTDIR}/usr/sbin/hping2
++ @[ ! -d ${DESTDIR}${INSTALL_MANPATH}/man8 ] && install -d ${DESTDIR}${INSTALL_MANPATH}/man8
++ @if [ -d ${DESTDIR}${INSTALL_MANPATH}/man8 ]; then \
++ cp ./docs/hping3.8 ${DESTDIR}${INSTALL_MANPATH}/man8; \
++ chmod 644 ${DESTDIR}${INSTALL_MANPATH}/man8/hping3.8; \
+ else \
+ echo "@@@@@@ WARNING @@@@@@"; \
+- echo "Can't install the man page: ${INSTALL_MANPATH}/man8 does not exist"; \
++ echo "Can't install the man page: ${DESTDIR}${INSTALL_MANPATH}/man8 does not exist"; \
+ fi
+
+ strip: hping3
diff --git a/community/hping/PKGBUILD b/community/hping/PKGBUILD
new file mode 100644
index 000000000..dce8a2d72
--- /dev/null
+++ b/community/hping/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 32612 2010-11-15 22:11:14Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+
+pkgname=hping
+pkgver=3.0.0
+pkgrel=1
+pkgdesc='hping is a command-line oriented TCP/IP packet assembler/analyzer.'
+arch=('i686' 'x86_64')
+url='http://www.hping.org'
+license=('GPL2' 'BSD')
+depends=('libpcap')
+source=("http://www.hping.org/hping3-20051105.tar.gz"
+ 'Makefile.patch'
+ 'bytesex.h.patch')
+md5sums=('ca4ea4e34bcc2162aedf25df8b2d1747'
+ '3c6f920201fc980d377408917a28df93'
+ '8af8e336819df1447b0c1b879a704be9')
+
+build() {
+ cd "${srcdir}/hping3-20051105"
+
+ [ "$CARCH" == "x86_64" ] && patch -Np1 -i ../bytesex.h.patch
+
+ MANPATH=/usr/share/man ./configure --no-tcl
+ make
+}
+
+package() {
+ cd "${srcdir}/hping3-20051105"
+
+ patch -p1 < ../Makefile.patch
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm0644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/hping/bytesex.h.patch b/community/hping/bytesex.h.patch
new file mode 100644
index 000000000..26ee54ee1
--- /dev/null
+++ b/community/hping/bytesex.h.patch
@@ -0,0 +1,18 @@
+diff -uNr hping2-rc3.orig/bytesex.h hping2-rc3/bytesex.h
+--- hping2-rc3.orig/bytesex.h 2004-07-29 15:46:47.572596272 +0000
++++ hping2-rc3/bytesex.h 2004-07-29 15:48:14.557372576 +0000
+@@ -9,11 +9,14 @@
+
+ #if defined(__i386__) \
+ || defined(__alpha__) \
++ || defined(__x86_64__) \
++ || defined(__ia64__) \
+ || (defined(__mips__) && (defined(MIPSEL) || defined (__MIPSEL__)))
+ #define BYTE_ORDER_LITTLE_ENDIAN
+ #elif defined(__mc68000__) \
+ || defined (__sparc__) \
+ || defined (__sparc) \
++ || defined (__hppa__) \
+ || defined (__PPC__) \
+ || defined (__BIG_ENDIAN__) \
+ || (defined(__mips__) && (defined(MIPSEB) || defined (__MIPSEB__)))
diff --git a/community/hsetroot/PKGBUILD b/community/hsetroot/PKGBUILD
new file mode 100644
index 000000000..37f14ea83
--- /dev/null
+++ b/community/hsetroot/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>
+# Contributor: Slash <demodevil5[at]yahoo[dot]com>
+
+pkgname=hsetroot
+pkgver=1.0.2
+pkgrel=1
+pkgdesc='A tool which allows you to compose wallpapers for X.'
+url='http://www.thegraveyard.org/hsetroot.php'
+license=('GPL')
+depends=('imlib2' 'xorg-server')
+arch=('i686' 'x86_64')
+source=("http://www.thegraveyard.org/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('f599770a6411dcfe216c37b280fad9bc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/hsolink/PKGBUILD b/community/hsolink/PKGBUILD
new file mode 100644
index 000000000..260717406
--- /dev/null
+++ b/community/hsolink/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+
+pkgname=hsolink
+pkgver=1.0.118
+pkgrel=6
+pkgdesc="HSO command line connection utility"
+arch=('i686' 'x86_64')
+url="http://www.pharscape.org/hsolinkcontrol.html"
+license=('GPL2')
+depends=('ozerocdoff')
+install=hsolink.install
+source=("http://www.pharscape.org/downloads1.html/$pkgname-$pkgver.tar.gz")
+md5sums=('8b5b179c487b7ad95112fe74dea7e302')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr || return 1
+ make DESTDIR="$pkgdir/" install || return 1
+ chgrp network "$pkgdir"/usr/bin/hsolinkcontrol
+ chmod ug+s "$pkgdir"/usr/bin/hsolinkcontrol
+}
diff --git a/community/hsolink/hsolink.install b/community/hsolink/hsolink.install
new file mode 100644
index 000000000..95aa860d4
--- /dev/null
+++ b/community/hsolink/hsolink.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo "To use hsolinkcontrol, please add yourself to the 'network' group."
+}
diff --git a/community/ht/PKGBUILD b/community/ht/PKGBUILD
new file mode 100644
index 000000000..d7360a824
--- /dev/null
+++ b/community/ht/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 16246 2010-04-27 12:28:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tardo <tardo@nagi-fanboi.net>
+# Contributor: Simon Morgan <"mra84964@mra.pb.hx".decode('rot-13')>
+
+pkgname=ht
+pkgver=2.0.18
+pkgrel=1
+pkgdesc="A file editor/viewer/analyzer for executables"
+arch=('i686' 'x86_64')
+url="http://hte.sourceforge.net/"
+license=('GPL')
+depends=('gcc-libs' 'ncurses' 'lzo2')
+source=(http://downloads.sourceforge.net/sourceforge/hte/$pkgname-$pkgver.tar.gz)
+md5sums=('ce7698b80035bce297374b338045dadd')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --disable-x11-textmode --enable-release --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+ # avoid TeX conflict
+ mv $pkgdir/usr/bin/ht $pkgdir/usr/bin/hte
+}
diff --git a/community/html2text/PKGBUILD b/community/html2text/PKGBUILD
new file mode 100644
index 000000000..ecccaae48
--- /dev/null
+++ b/community/html2text/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 5125 2009-11-06 16:14:08Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=html2text
+pkgver=1.3.2a
+pkgrel=8
+pkgdesc="A HTML to text converter"
+arch=('i686' 'x86_64')
+url="http://www.mbayer.de/html2text"
+license=('GPL2')
+depends=('gcc-libs')
+source=(http://ftp.ibiblio.org/pub/linux/apps/www/converters/$pkgname-$pkgver.tar.gz)
+md5sums=('6097fe07b948e142315749e6620c9cfc')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure
+ make || return 1
+ install -D -m 755 html2text $pkgdir/usr/bin/html2text
+ install -D -m 644 html2text.1.gz $pkgdir/usr/share/man/man1/html2text.1.gz
+ install -D -m 644 html2textrc.5.gz $pkgdir/usr/share/man/man5/html2textrc.5.gz
+}
+
diff --git a/community/htmldoc/PKGBUILD b/community/htmldoc/PKGBUILD
new file mode 100644
index 000000000..47f82367b
--- /dev/null
+++ b/community/htmldoc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 15782 2010-04-15 20:40:51Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Simon Rutishauser <simon.rutishauser@gmx.ch>
+
+pkgname=htmldoc
+pkgver=1.8.27
+pkgrel=5
+pkgdesc="Produce PDF or Postscript from HTML documents including TOCs and Indices"
+arch=(i686 x86_64)
+url="http://www.htmldoc.org"
+license=('GPL')
+depends=('libjpeg' 'libpng' 'openssl' 'fltk' 'gcc' 'libxft' 'libxpm')
+source=(ftp://ftp.easysw.com/pub/${pkgname}/${pkgver}/${pkgname}-$pkgver-source.tar.bz2)
+md5sums=('35589e7b8fe9c54e11be87cd5aec4dcc')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=${pkgdir}/usr/share/man
+ sed -i 's|^bindir.*$|bindir = ${prefix}/bin|' Makedefs
+ make || return 1
+ make prefix=${startdir}/pkg/usr install
+ # fix freedesktop stuff
+ install -Dm 644 desktop/htmldoc-128.png \
+ ${startdir}/pkg/usr/share/pixmaps/htmldoc.png
+ echo "MimeType=application/vnd.htmldoc-book;" >> desktop/htmldoc.desktop
+ sed -i 's|X-Red-Hat.*$||' desktop/htmldoc.desktop
+ install -Dm 644 desktop/htmldoc.desktop \
+ ${startdir}/pkg/usr/share/applications/htmldoc.desktop
+}
diff --git a/community/httptunnel/PKGBUILD b/community/httptunnel/PKGBUILD
new file mode 100644
index 000000000..e9a048daa
--- /dev/null
+++ b/community/httptunnel/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 31032 2009-03-24 04:10:30Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=httptunnel
+pkgver=3.3
+pkgrel=2
+pkgdesc="httptunnel creates a bidirectional virtual data connection tunnelled in HTTP requests"
+arch=(i686 x86_64)
+url="http://www.nocrew.org/software/httptunnel"
+license=('GPL2')
+depends=('glibc')
+source=(http://www.nocrew.org/software/httptunnel/$pkgname-$pkgver.tar.gz)
+md5sums=('493cc0f5f21e9955db27ee9cd9a976d5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/hubbub/PKGBUILD b/community/hubbub/PKGBUILD
new file mode 100644
index 000000000..86f8c3b53
--- /dev/null
+++ b/community/hubbub/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 22547 2010-07-22 13:02:46Z lcarlier $
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=hubbub
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="HTML5 compliant parsing library"
+arch=('i686' 'x86_64')
+url="http://www.netsurf-browser.org/projects/hubbub"
+license=('MIT')
+depends=('libparserutils')
+source=("http://www.netsurf-browser.org/projects/releases/${pkgname}-${pkgver}-src.tar.gz")
+md5sums=('dbdc6bb13a71ce72384d7ee5891a0382')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+# sed -i 's/const uint8_t \*cptr;/const uint8_t \*cptr = 0;/;
+# s/size_t len;/size_t len = 0;/' src/tokeniser/tokeniser.c
+ make PREFIX=/usr
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make install PREFIX=/usr DESTDIR=${pkgdir}
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/hula/PKGBUILD b/community/hula/PKGBUILD
new file mode 100644
index 000000000..3b2d1ea6c
--- /dev/null
+++ b/community/hula/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 14533 2010-04-04 21:12:01Z spupykin $
+# Maintainer: William Rea <sillywilly@gmail.com>
+# Contributor: Benjamin Andresen <benny@klapmuetz.org>
+# Contributor: eliott <eliott@cactuswax.net>
+
+pkgname=hula
+pkgver=r2661
+pkgrel=3
+pkgdesc="A calendar and mail server"
+arch=('i686' 'x86_64')
+url="http://developer.novell.com/wiki/index.php/Hula"
+options=('!libtool')
+depends=('popt' 'libldap' 'mono' 'perl')
+install=$pkgname.install
+license=('GPL')
+source=(http://archlinux-stuff.googlecode.com/files/hula-$pkgver.tar.gz \
+ hula-script \
+ build-fix.patch)
+md5sums=('4a50509873ea6bfdeb8daf7540d15d85'
+ '6cad58336400ee5d157a1ee4ae150bfd'
+ '004c478d9ea9b781b84f67c68f7d89d2')
+
+build() {
+ export MONO_SHARED_DIR=$startdir/src/.wabi
+ mkdir -p $MONO_SHARED_DIR
+
+ cd $startdir/src/$pkgname
+
+ sed -i '/CONNECTION_TIMEOUT/s/$/ \n#define VERBOSE_SPAMASSASSIN/' src/agents/antispam/antispam.h
+ patch -p1 <$srcdir/build-fix.patch
+
+ unset LDFLAGS
+
+ ./autogen.sh --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+ install -D -m755 ../../hula-script $startdir/pkg/etc/rc.d/hula
+ rm -r $MONO_SHARED_DIR
+}
diff --git a/community/hula/build-fix.patch b/community/hula/build-fix.patch
new file mode 100644
index 000000000..850157315
--- /dev/null
+++ b/community/hula/build-fix.patch
@@ -0,0 +1,52 @@
+diff -wbBur hula.org/autogen.sh hula/autogen.sh
+--- hula.org/autogen.sh 2009-02-27 10:55:05.000000000 +0000
++++ hula/autogen.sh 2009-02-27 11:09:41.000000000 +0000
+@@ -7,7 +7,7 @@
+
+ # default version requirements ...
+ REQUIRED_AUTOCONF_VERSION=${REQUIRED_AUTOCONF_VERSION:-2.53}
+-REQUIRED_AUTOMAKE_VERSION=${REQUIRED_AUTOMAKE_VERSION:-1.6}
++REQUIRED_AUTOMAKE_VERSION=${REQUIRED_AUTOMAKE_VERSION:-1.10}
+ REQUIRED_LIBTOOL_VERSION=${REQUIRED_LIBTOOL_VERSION:-1.4.3}
+ REQUIRED_GETTEXT_VERSION=${REQUIRED_GETTEXT_VERSION:-0.10.40}
+ REQUIRED_GLIB_GETTEXT_VERSION=${REQUIRED_GLIB_GETTEXT_VERSION:-2.2.0}
+@@ -276,14 +276,7 @@
+ "http://ftp.gnu.org/pub/gnu/autoconf/autoconf-$REQUIRED_AUTOCONF_VERSION.tar.gz" || DIE=1
+ AUTOHEADER=`echo $AUTOCONF | sed s/autoconf/autoheader/`
+
+-case $REQUIRED_AUTOMAKE_VERSION in
+- 1.4*) automake_progs="automake-1.4" ;;
+- 1.5*) automake_progs="automake-1.5 automake-1.6 automake-1.7 automake-1.8 automake-1.9" ;;
+- 1.6*) automake_progs="automake-1.6 automake-1.7 automake-1.8 automake-1.9 automake19" ;;
+- 1.7*) automake_progs="automake-1.7 automake-1.8 automake-1.9" ;;
+- 1.8*) automake_progs="automake-1.8 automake-1.9" ;;
+- 1.9*) automake_progs="automake-1.9" ;;
+-esac
++automake_progs="automake"
+ version_check automake AUTOMAKE "$automake_progs" $REQUIRED_AUTOMAKE_VERSION \
+ "http://ftp.gnu.org/pub/gnu/automake/automake-$REQUIRED_AUTOMAKE_VERSION.tar.gz" || DIE=1
+ ACLOCAL=`echo $AUTOMAKE | sed s/automake/aclocal/`
+diff -wbBur hula.org/src/libs/hula-sharp/Hula.Dav/AddressbookQueryReport.cs hula/src/libs/hula-sharp/Hula.Dav/AddressbookQueryReport.cs
+--- hula.org/src/libs/hula-sharp/Hula.Dav/AddressbookQueryReport.cs 2009-02-27 10:52:29.000000000 +0000
++++ hula/src/libs/hula-sharp/Hula.Dav/AddressbookQueryReport.cs 2009-02-27 11:21:17.000000000 +0000
+@@ -42,7 +42,7 @@
+ break;
+ case "text-match" :
+ // FIXME: Don't do caseless param filters for now.
+- TermQuery q = new TermQuery (new Term("vcard." + prop + ".param", + name + "=" + child.InnerText));
++ TermQuery q = new TermQuery (new Term("vcard." + prop + ".param", name + "=" + child.InnerText));
+
+ query.Add(q, true, false);
+ break;
+diff -wbBur hula.org/src/libs/hula-sharp/Hula.Dav/CalQueryReport.cs hula/src/libs/hula-sharp/Hula.Dav/CalQueryReport.cs
+--- hula.org/src/libs/hula-sharp/Hula.Dav/CalQueryReport.cs 2009-02-27 10:52:29.000000000 +0000
++++ hula/src/libs/hula-sharp/Hula.Dav/CalQueryReport.cs 2009-02-27 11:21:45.000000000 +0000
+@@ -59,7 +59,7 @@
+ break;
+ case "text-match" :
+ // FIXME: Don't do caseless param filters for now.
+- TermQuery q = new TermQuery (new Term("ical." + prop + ".param", + name + "=" + child.InnerText));
++ TermQuery q = new TermQuery (new Term("ical." + prop + ".param", name + "=" + child.InnerText));
+
+ query.Add(q, true, false);
+ break;
diff --git a/community/hula/hula-script b/community/hula/hula-script
new file mode 100644
index 000000000..ccfd52aba
--- /dev/null
+++ b/community/hula/hula-script
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON_NAME="hulamanager"
+DAEMON_PATH="/usr/sbin/${DAEMON_NAME}"
+
+PID=`pidof -o %PPID ${DAEMON_NAME}`
+case "$1" in
+ start)
+ stat_busy "Starting ${DAEMON_NAME}"
+ [ -z "$PID" ] && ${DAEMON_PATH} -d
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ${DAEMON_NAME}
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ${DAEMON_NAME}"
+ [ ! -z "$PID" ] && ${DAEMON_PATH} --stop &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ${DAEMON_NAME}
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/hula/hula.install b/community/hula/hula.install
new file mode 100644
index 000000000..eaca1d08e
--- /dev/null
+++ b/community/hula/hula.install
@@ -0,0 +1,24 @@
+post_install() {
+/bin/cat <<THEEND
+cd to /opt/hula/sbin/ and run:
+
+ $ ./hulasetup --domain=your.domain.com --dns=ip.of.dns.server
+
+If you don't specify the --domain argument, then it will default to localhost.localdomain as your domain.
+
+Specifying the IP address of your DNS server is useful; hula doesn't pick it up from /etc/resolv.conf. You need to set it in order to send mail out.
+
+If you already have servers running for services that hula provides, you can change the port hula will use for them with hulamanager too. For example, if you already have apache running on port 80, you can make the hula webserver use port 8080:
+
+ $ ./hulasetup --http=8080
+
+Parameters for other services are --https, --ldap, --webadmin and --webadmins. The smtp port can't be changed.
+
+THEEND
+}
+
+post_remove() {
+ # too many files and dirs created by setup. just rm it all
+ rm -rf /opt/hula
+}
+
diff --git a/community/hula/hula.sh b/community/hula/hula.sh
new file mode 100644
index 000000000..4a6b8825f
--- /dev/null
+++ b/community/hula/hula.sh
@@ -0,0 +1,3 @@
+export HULADIR=/opt/hula
+export PATH=$PATH:$HULADIR/bin
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HULADIR/lib/pkgconfig
diff --git a/community/hwinfo/PKGBUILD b/community/hwinfo/PKGBUILD
new file mode 100644
index 000000000..7b081488f
--- /dev/null
+++ b/community/hwinfo/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 36515 2011-01-03 19:26:37Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Gergely Imreh <imrehgATgmailDOTcom>
+# Originally contributed by champus, madeye, Ranguvar and ninja_pt
+
+pkgname=hwinfo
+pkgver=18.1
+_pkgver=$pkgver-3.5
+pkgrel=9
+pkgdesc='The hardware detection tool from openSUSE'
+arch=('i686' 'x86_64')
+url='http://www.opensuse.org/'
+license=('GPL2')
+depends=('perl' 'libx86emu')
+makedepends=('sysfsutils' 'rpmextract' 'flex')
+source=("http://download.opensuse.org/source/factory/repo/oss/suse/src/$pkgname-$_pkgver.src.rpm"
+ 'kbd.patch')
+md5sums=('17c2a703643d1f007859c5e743589bb8'
+ '1500ecfa26f6aaf4d7967eea74e86e5d')
+
+build() {
+ cd "${srcdir}"
+ rpmextract.sh "${pkgname}-${_pkgver}.src.rpm"
+ tar -xjf $pkgname-$pkgver.tar.bz2
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+# Apply patch for custom ioctl
+ patch -p 0 < ../kbd.patch
+
+ make -j1 LIBDIR=/usr/lib
+ make LIBDIR=/usr/lib DESTDIR=$pkgdir install
+}
diff --git a/community/hwinfo/kbd.patch b/community/hwinfo/kbd.patch
new file mode 100644
index 000000000..b9dd67161
--- /dev/null
+++ b/community/hwinfo/kbd.patch
@@ -0,0 +1,16 @@
+--- src/hd/kbd.c.old 2010-03-15 23:37:52.000000000 +0800
++++ src/hd/kbd.c 2010-03-22 10:50:58.000000000 +0800
+@@ -146,11 +146,13 @@
+ }
+
+ if(!dev && (fd = open(DEV_CONSOLE, O_RDWR | O_NONBLOCK | O_NOCTTY)) >= 0) {
++ /* Removing since TIOCGDEV is not supported by the mainline kernel
+ if(ioctl(fd, TIOCGDEV, &u) != -1) {
+ tty_major = (u >> 8) & 0xfff;
+ tty_minor = (u & 0xff) | ((u >> 12) & 0xfff00);
+ ADD2LOG(DEV_CONSOLE ": major %u, minor %u\n", tty_major, tty_minor);
+ }
++ */
+
+ if (0)
+ ;
diff --git a/community/i3-wm/PKGBUILD b/community/i3-wm/PKGBUILD
new file mode 100644
index 000000000..02f3552c0
--- /dev/null
+++ b/community/i3-wm/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 37999 2011-01-20 08:04:31Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=i3-wm
+_pkgsourcename=i3
+pkgver=3.e_bf2
+_pkgver=3.e-bf2
+pkgrel=1
+pkgdesc="An improved dynamic tiling window manager"
+arch=('i686' 'x86_64')
+url="http://i3.zekjur.net/"
+license=('BSD')
+replaces=("i3")
+groups=("i3")
+depends=('libx11' 'xcb-util' 'libev' 'yajl')
+makedepends=('bison' 'flex')
+optdepends=('rxvt-unicode: The terminal emulator used in the default config.'
+ 'dmenu: As menu.')
+options=('docs' '!strip')
+source=(http://i3.zekjur.net/downloads/${_pkgsourcename}-${_pkgver}.tar.bz2)
+md5sums=('dc2c59623fdc9e69003b8807a0443544')
+
+build() {
+ cd "$srcdir/$_pkgsourcename-$_pkgver"
+
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgsourcename-$_pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 man/i3.1 \
+ ${pkgdir}/usr/share/man/man1/i3.1
+ install -Dm644 man/i3-msg.1 \
+ ${pkgdir}/usr/share/man/man1/i3-msg.1
+ install -Dm644 man/i3-input.1 \
+ ${pkgdir}/usr/share/man/man1/i3-input.1
+ install -Dm644 LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ #i3-wsbar will be provided by another package
+ rm ${pkgdir}/usr/bin/i3-wsbar
+
+ make clean
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/i3lock/PKGBUILD b/community/i3lock/PKGBUILD
new file mode 100644
index 000000000..6d589aba8
--- /dev/null
+++ b/community/i3lock/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=i3lock
+pkgver=2.1
+pkgrel=1
+pkgdesc="An improved screenlocker based upon XCB and PAM"
+arch=('i686' 'x86_64')
+url="http://i3.zekjur.net/i3lock/"
+license=('MIT')
+groups=("i3")
+depends=('xcb-util' 'pam')
+options=('docs')
+source=(http://i3.zekjur.net/i3lock/$pkgname-$pkgver.tar.gz)
+md5sums=('6a86f0032eb0c09e557afae998cbe000')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make NOLIBCAIRO=y
+ gzip i3lock.1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 i3lock.1.gz ${pkgdir}/usr/share/man/man1/i3lock.1.gz
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ make clean
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/community/i3status/PKGBUILD b/community/i3status/PKGBUILD
new file mode 100644
index 000000000..83c2a544f
--- /dev/null
+++ b/community/i3status/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 27389 2010-09-22 23:16:02Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=i3status
+pkgver=2.2
+pkgrel=1
+pkgdesc="Generates status bar to use with dzen2 or xmobar"
+arch=('i686' 'x86_64')
+url="http://i3.zekjur.net/i3status/"
+license=('BSD')
+groups=('i3')
+depends=('wireless_tools' 'confuse' 'alsa-lib')
+makedepends=('asciidoc')
+install=i3status.install
+options=('docs')
+source=(http://i3.zekjur.net/i3status/$pkgname-$pkgver.tar.bz2)
+md5sums=('07e0f44b6f40d48f976d6e3b977320c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ make clean
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/community/i3status/i3status.install b/community/i3status/i3status.install
new file mode 100644
index 000000000..e86d21b80
--- /dev/null
+++ b/community/i3status/i3status.install
@@ -0,0 +1,9 @@
+post_install() {
+ setcap 'CAP_NET_ADMIN=ep' /usr/bin/i3status
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/iasl/LICENSE b/community/iasl/LICENSE
new file mode 100644
index 000000000..d47edccb2
--- /dev/null
+++ b/community/iasl/LICENSE
@@ -0,0 +1,33 @@
+IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
+Do not use or load this software and any associated materials (collectively, the "Software") until you have carefully read the following terms and conditions. By loading or using the Software, you agree to the terms of this Agreement. If you do not wish to so agree, do not install or use the Software.
+
+1. COPYRIGHT NOTICE
+Some or all of this work - Copyright © 1999-2008, Intel Corp. All rights reserved.
+
+2. LICENSE
+
+2.1. This is your license from Intel Corp. under its intellectual property rights. You may have additional license terms from the party that provided you this software, covering your right to use that party's intellectual property rights.
+
+2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a copy of the source code appearing in this file ("Covered Code") an irrevocable, perpetual, worldwide license under Intel's copyrights in the base code distributed originally by Intel ("Original Intel Code") to copy, make derivatives, distribute, use and display any portion of the Covered Code in any form, with the right to sublicense such rights; and
+
+2.3. Intel grants Licensee a non-exclusive and non-transferable patent license (with the right to sublicense), under only those claims of Intel patents that are infringed by the Original Intel Code, to make, use, sell, offer to sell, and import the Covered Code and derivative works thereof solely to the minimum extent necessary to exercise the above copyright license, and in no event shall the patent license extend to any additions to or modifications of the Original Intel Code. No other license or right is granted directly or by implication, estoppel or otherwise; The above copyright and patent license is granted only if the following conditions are met:
+
+3. CONDITIONS
+
+3.1. Redistribution of Source with Rights to Further Distribute Source. Redistribution of source code of any substantial portion of the Covered Code or modification with rights to further distribute source must include the above Copyright Notice, the above License, this list of Conditions, and the following Disclaimer and Export Compliance provision. In addition, Licensee must cause all Covered Code to which Licensee contributes to contain a file documenting the changes Licensee made to create that Covered Code and the date of any change. Licensee must include in that file the documentation of any changes made by any predecessor Licensee. Licensee must include a prominent statement that the modification is derived, directly or indirectly, from Original Intel Code.
+
+3.2. Redistribution of Source with no Rights to Further Distribute Source. Redistribution of source code of any substantial portion of the Covered Code or modification without rights to further distribute source must include the following Disclaimer and Export Compliance provision in the documentation and/or other materials provided with distribution. In addition, Licensee may not authorize further sublicense of source of any portion of the Covered Code, and must include terms to the effect that the license from Licensee to its licensee is limited to the intellectual property embodied in the software Licensee provides to its licensee, and not to intellectual property embodied in modifications its licensee may make.
+
+3.3. Redistribution of Executable. Redistribution in executable form of any substantial portion of the Covered Code or modification must reproduce the above Copyright Notice, and the following Disclaimer and Export Compliance provision in the documentation and/or other materials provided with the distribution.
+
+3.4. Intel retains all right, title, and interest in and to the Original Intel Code.
+
+3.5. Neither the name Intel nor any other trademark owned or controlled by Intel shall be used in advertising or otherwise to promote the sale, use or other dealings in products derived from or relating to the Covered Code without prior written authorization from Intel.
+
+4. DISCLAIMER AND EXPORT COMPLIANCE
+
+4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.
+
+4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
+
+4.3. Licensee shall not export, either directly or indirectly, any of this software or system incorporating such software without first obtaining any required license or other approval from the U. S. Department of Commerce or any other agency or department of the United States Government. In the event Licensee exports any such software from the United States or re-exports any such software from a foreign destination, Licensee shall ensure that the distribution and export/re-export of the software is in compliance with all laws, regulations, orders, or other restrictions of the U.S. Export Administration Regulations. Licensee agrees that neither it nor any of its subsidiaries will export/re-export any technical data, process, software, or service, directly or indirectly, to any country for which the United States government or any agency thereof requires an export license, other governmental approval, or letter of assurance, without first obtaining such license, approval or letter.
diff --git a/community/iasl/PKGBUILD b/community/iasl/PKGBUILD
new file mode 100644
index 000000000..624b9c3ec
--- /dev/null
+++ b/community/iasl/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 44052 2011-04-01 20:24:21Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alessio 'mOlOk' Bolognino <themolok@gmail.com>
+
+pkgname=iasl
+pkgver=20110316
+pkgrel=1
+pkgdesc="Intel ACPI Source Language compiler"
+arch=('i686' 'x86_64')
+url="http://acpica.org"
+license=('custom')
+depends=('glibc')
+makedepends=('flex' 'bison')
+options=('!makeflags')
+install=iasl.install
+source=(http://acpica.org/download/acpica-unix-${pkgver}.tar.gz
+ LICENSE)
+md5sums=('785813b0e4ad38383fb7bfb15e7a2e6e'
+ '8615526144f69ea4e870d9bc37df9b29')
+
+build() {
+ cd "${srcdir}/acpica-unix-${pkgver}"
+
+ cd compiler
+ make
+
+ cd ../tools/acpisrc
+ make
+
+
+ #cd ../acpiexec
+ #make
+ #install -m755 acpiexec "${pkgdir}/usr/bin"
+
+ cd ../acpixtract
+ make
+}
+
+package() {
+ cd "${srcdir}/acpica-unix-${pkgver}"
+
+ install -D -m755 compiler/iasl "${pkgdir}/usr/bin/iasl"
+ install -m755 tools/acpisrc/acpisrc "${pkgdir}/usr/bin"
+ install -m755 tools/acpixtract/acpixtract "${pkgdir}/usr/bin"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/iasl/iasl.install b/community/iasl/iasl.install
new file mode 100644
index 000000000..87d1fb7a1
--- /dev/null
+++ b/community/iasl/iasl.install
@@ -0,0 +1,17 @@
+# arg 1: the new package version
+post_install() {
+cat << EOM
+
+==> iasl post install message:
+==> In order to use this software you have to agree to Intel's license located in
+==> /usr/share/licenses/iasl/LICENSE otherwise please remove this package.
+
+EOM
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
diff --git a/community/iat/PKGBUILD b/community/iat/PKGBUILD
new file mode 100644
index 000000000..4c5b876dd
--- /dev/null
+++ b/community/iat/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 4868 2009-11-01 21:39:07Z ibiru $
+# Maintainer: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+
+pkgname=iat
+pkgver=0.1.7
+pkgrel=2
+pkgdesc="Detects many formats of cd-rom image files (BIN,MDF,PDI,CDI,NRG,B5I) and converts them to ISO-9660"
+arch=('i686' 'x86_64')
+url="http://iat.berlios.de/"
+license=('GPL')
+depends=('glibc')
+makedepends=()
+source=(http://download.berlios.de/iat/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --includedir=/usr/include/$pkgname
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
+md5sums=('5e1ffd82000ea4c80ffb2d63ae55120c')
diff --git a/community/ibam/PKGBUILD b/community/ibam/PKGBUILD
new file mode 100644
index 000000000..bf9cf289c
--- /dev/null
+++ b/community/ibam/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 43317 2011-03-24 19:43:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+# Contributor: Penguin <TGates81.at.gmail.dot.com>
+
+pkgname=ibam
+pkgver=0.5.2
+pkgrel=4
+pkgdesc="An intelligent battery monitor"
+arch=('i686' 'x86_64')
+url="http://ibam.sourceforge.net/"
+license=('GPL')
+depends=('gcc-libs')
+makedepends=('sed' 'make')
+optdepends=('gnuplot: graphs support')
+install="ibam.install"
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz"
+ ibam-0.5.2-sysfs.patch)
+md5sums=('2d5222ff504dd19e7c1ea8acc2f13cf5'
+ 'c3aafebd5ad9159c89f71beab4a0f414')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -m0755 -d ${pkgdir}/usr/bin
+
+ sed -i \
+ -e "s|/local/bin|/bin|g" \
+ -e "s|^CFLAGS=-O3|CFLAGS=${CFLAGS}|g" \
+ Makefile
+ patch -p1 <$srcdir/ibam-0.5.2-sysfs.patch
+
+ make
+ install -m0755 -D ${srcdir}/${pkgname}-${pkgver}/ibam ${pkgdir}/usr/bin/ibam
+}
diff --git a/community/ibam/ibam-0.5.2-sysfs.patch b/community/ibam/ibam-0.5.2-sysfs.patch
new file mode 100644
index 000000000..d9d73f924
--- /dev/null
+++ b/community/ibam/ibam-0.5.2-sysfs.patch
@@ -0,0 +1,17 @@
+diff -wbBur ibam-0.5.2/ibam.inl ibam-0.5.2.my/ibam.inl
+--- ibam-0.5.2/ibam.inl 2009-03-09 16:53:20.000000000 +0000
++++ ibam-0.5.2.my/ibam.inl 2011-03-24 19:41:32.000000000 +0000
+@@ -959,7 +959,13 @@
+ acpi.close();
+ apm = new acpi_status();
+ } else {
++ sysfs.open((sysfs_path+"/BAT0/charge_full").c_str());
++ if(!sysfs.is_open()) {
+ sysfs.open((sysfs_path+"/BAT1/charge_full").c_str());
++ }
++ if(!sysfs.is_open()) {
++ sysfs.open((sysfs_path+"/BAT2/charge_full").c_str());
++ }
+ if(sysfs.is_open()) {
+ #ifdef IBAM_DEBUG
+ cout << "using sysfs" << endl;
diff --git a/community/ibam/ibam.install b/community/ibam/ibam.install
new file mode 100644
index 000000000..507c1581d
--- /dev/null
+++ b/community/ibam/ibam.install
@@ -0,0 +1,8 @@
+post_install() {
+ echo -e "-> install gnuplot to use the \`--plot' switch."
+ /bin/true
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/community/ibus-anthy/PKGBUILD b/community/ibus-anthy/PKGBUILD
new file mode 100644
index 000000000..c907d99fd
--- /dev/null
+++ b/community/ibus-anthy/PKGBUILD
@@ -0,0 +1,38 @@
+# Contributor: Rainy <rainylau(at)gmail(dot)com>
+# Contributor: Lee.MaRS <leemars at gmail dot com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus-anthy
+pkgver=1.2.5
+pkgrel=1
+pkgdesc="Japanese input method Anthy IMEngine for IBus Framework"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://ibus.googlecode.com"
+depends=('ibus' 'anthy' 'python2')
+makedepends=('swig' 'intltool')
+provides=('ibus-anthy')
+options=('!libtool')
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('00b44c874616d797a0117d087cf33341')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # python2 fix
+ for file in setup/ibus-setup-anthy.in engine/ibus-engine-anthy.in; do
+ sed -i 's_exec python_exec python2_' $file
+ done
+
+ ./configure \
+ --prefix=/usr \
+ --libexec=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus-chewing/PKGBUILD b/community/ibus-chewing/PKGBUILD
new file mode 100644
index 000000000..9fda24ce7
--- /dev/null
+++ b/community/ibus-chewing/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Rainy <rainylau(at)gmail(dot)com>
+# Contributor: Lee.MaRS <leemars@gmail.com>
+# Contributor: Hiroshi Yui <hiroshiyui@gmail.com>
+
+pkgname=ibus-chewing
+pkgver=1.3.9.2
+pkgrel=3
+pkgdesc='Chinese Chewing Engine for IBus Framework'
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://ibus.googlecode.com'
+depends=('ibus' 'libchewing' 'libxtst' 'gconf')
+makedepends=('swig' 'cmake' 'gob2')
+install="${pkgname}.install"
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}-Source.tar.gz")
+md5sums=('8d177d67647944f5d1f9cca0654eaccb')
+
+build() {
+ cd ${pkgname}-${pkgver}-Source
+
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSCONF_INSTALL_DIR=/usr/share \
+ .
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}-Source
+
+ make DESTDIR=${pkgdir} install
+
+ # check up on http://code.google.com/p/ibus/issues/detail?id=1172 to fix nonstandard path
+ install -d ${pkgdir}/usr/lib/ibus
+ mv ${pkgdir}/usr/libexec/ibus-engine-chewing ${pkgdir}/usr/lib/ibus/ibus-engine-chewing
+ sed -i 's#/usr/libexec/ibus-engine-chewing#/usr/lib/ibus/ibus-engine-chewing#' ${pkgdir}/usr/share/ibus/component/chewing.xml
+}
diff --git a/community/ibus-chewing/ibus-chewing.install b/community/ibus-chewing/ibus-chewing.install
new file mode 100644
index 000000000..0cfc09857
--- /dev/null
+++ b/community/ibus-chewing/ibus-chewing.install
@@ -0,0 +1,17 @@
+pkgname=ibus-chewing
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/community/ibus-hangul/PKGBUILD b/community/ibus-hangul/PKGBUILD
new file mode 100644
index 000000000..efeed5115
--- /dev/null
+++ b/community/ibus-hangul/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Radim Hvizdák <hvizdakr at gmail dot com>
+
+pkgname=ibus-hangul
+pkgver=1.3.0.20100329
+pkgrel=2
+pkgdesc='Korean input engine for IBus'
+arch=('i686' 'x86_64')
+url='http://ibus.googlecode.com'
+license=('GPL')
+depends=('ibus' 'libhangul')
+makedepends=('intltool')
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('3464c98626685c8e23f6b0b580de2d08')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make NO_INDEX=true DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus-m17n/PKGBUILD b/community/ibus-m17n/PKGBUILD
new file mode 100644
index 000000000..3e08b4c03
--- /dev/null
+++ b/community/ibus-m17n/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Lonfucius <Lonfucius@gmail.com>
+# Contributor: Jesse Jaara <jesse.jaara@gmail.com>
+
+pkgname=ibus-m17n
+pkgver=1.3.1
+pkgrel=2
+pkgdesc='M17N engine for IBus'
+arch=('i686' 'x86_64')
+url='http://code.google.com/p/ibus/'
+license=('LGPL')
+depends=('python-pyenchant' 'ibus' 'm17n-db' 'm17n-lib')
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('38ff41207518812945c60084deba0080')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus-pinyin/PKGBUILD b/community/ibus-pinyin/PKGBUILD
new file mode 100644
index 000000000..199e4534d
--- /dev/null
+++ b/community/ibus-pinyin/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 31706 2010-11-04 13:42:40Z ibiru $
+# Contributor: Rainy <rainylau(at)gmail(dot)com>
+# Contributor: Lee.maRS<leemars at gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus-pinyin
+pkgver=1.3.11
+pkgrel=2
+pkgdesc='The PinYin Engine for IBus Input Framework.'
+arch=('i686' 'x86_64')
+license=('LGPL')
+url='http://ibus.googlecode.com'
+depends=('ibus' 'libsigc++2.0' 'boost-libs')
+makedepends=('intltool' 'boost')
+install="${pkgname}.install"
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz"
+ "http://ibus.googlecode.com/files/pinyin-database-1.2.99.tar.bz2")
+md5sums=('c49b2ccaae1f4e3c5cfbd25af6bea51a'
+ 'd0951b8daa7f56a2cbd3b6b4e42532e0')
+
+build() {
+ ln -sf ${srcdir}/pinyin-database-1.2.99.tar.bz2 \
+ ${srcdir}/${pkgname}-${pkgver}/data/db/open-phrase
+
+ cd ${pkgname}-${pkgver}
+
+ sed -i -e "s|python|python2|" data/db/android/create_db.py \
+ setup/ibus-setup-pinyin.in
+
+ PYTHON=python2 ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus \
+ --enable-db-open-phrase
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make NO_INDEX=true DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus-pinyin/ibus-pinyin.install b/community/ibus-pinyin/ibus-pinyin.install
new file mode 100644
index 000000000..d9ad92426
--- /dev/null
+++ b/community/ibus-pinyin/ibus-pinyin.install
@@ -0,0 +1,13 @@
+post_install() {
+ echo "Creating INDEX. Please wait..."
+ cd /usr/share/ibus-pinyin/db
+ echo "Creating index for android.db..."
+ sqlite3 android.db '.read create_index.sql'
+ echo "Creating index for open-phrase.db..."
+ sqlite3 open-phrase.db '.read create_index.sql'
+ echo "Done."
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/community/ibus-qt/PKGBUILD b/community/ibus-qt/PKGBUILD
new file mode 100644
index 000000000..fefb11e52
--- /dev/null
+++ b/community/ibus-qt/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: garion < garion @ mailoo.org >
+# Contributor:leemars
+
+pkgname=ibus-qt
+pkgver=1.3.1
+pkgrel=2
+pkgdesc='IBus qt library and IBus qt input method plugin'
+arch=('i686' 'x86_64')
+license=('LGPL')
+url='http://ibus.googlecode.com'
+depends=('qt' 'ibus' 'icu')
+makedepends=('cmake' 'automoc4' 'doxygen')
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}-Source.tar.gz")
+md5sums=('769e8872ca8a59327b2073ce2f142589')
+
+build() {
+ cd ${pkgname}-${pkgver}-Source
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -Wno-dev
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}-Source
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus-sunpinyin/PKGBUILD b/community/ibus-sunpinyin/PKGBUILD
new file mode 100644
index 000000000..694a6a67a
--- /dev/null
+++ b/community/ibus-sunpinyin/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus-sunpinyin
+pkgver=2.0.3
+pkgrel=1
+pkgdesc='The SunPinYin Engine for IBus Input Framework. SunPinYin is a Statistical Language Model based pinyin IME by Sun.'
+arch=('i686' 'x86_64')
+url='http://sunpinyin.googlecode.com'
+license=('LGPL')
+depends=('ibus' 'sunpinyin')
+makedepends=('scons')
+source=("http://sunpinyin.googlecode.com/files/ibus-sunpinyin-${pkgver}.tar.gz")
+md5sums=('e678b2e1ac70c325cfc64c02fef7041f')
+
+build() {
+ cd ibus-sunpinyin-${pkgver}
+
+ sed -i 's/python/&2/' setup/ibus-setup-sunpinyin.in
+
+ scons \
+ --prefix=/usr
+}
+
+package() {
+ cd ibus-sunpinyin-${pkgver}
+
+ scons \
+ --prefix=/usr \
+ --install-sandbox=${pkgdir} \
+ install
+}
diff --git a/community/ibus-table-extraphrase/PKGBUILD b/community/ibus-table-extraphrase/PKGBUILD
new file mode 100644
index 000000000..53d7e079d
--- /dev/null
+++ b/community/ibus-table-extraphrase/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Lee.MaRS<leemars at gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus-table-extraphrase
+pkgver=1.2.0.20100305
+pkgrel=2
+pkgdesc="The extra phrases of tables engines for IBus."
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/ibus/"
+license=('LGPL')
+depends=('ibus-table>=1.2.0')
+provides=('ibus-table-extraphrase=1.2.0')
+conflicts=('ibus-table-extraphrase-git')
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('ab3a0bd3b443ad4df9ad5554e155550d')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./autogen.sh
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus-table/PKGBUILD b/community/ibus-table/PKGBUILD
new file mode 100644
index 000000000..f60bfb58e
--- /dev/null
+++ b/community/ibus-table/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: coderoar <coderoar@gmail.com>
+# Contributor: leemars <leemars@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus-table
+pkgver=1.3.0.20100621
+pkgrel=4
+pkgdesc='The IM Engine framework for table-based input methods, such as ZhengMa, WuBi, ErBi, CangJie and so on.'
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/ibus/"
+license=('LGPL')
+depends=('python2-pyenchant' 'ibus' 'aspell-en')
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('0fd5812197400f7b586480fca1a0c082')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # python2 fix
+ find -type f -exec sed -i -e 's_exec python_exec python2_' -e 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' -e 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' {} \;
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus-unikey/PKGBUILD b/community/ibus-unikey/PKGBUILD
new file mode 100644
index 000000000..5ec16a1b7
--- /dev/null
+++ b/community/ibus-unikey/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Trương Xuân Tính <xuantinh at gmail dot com>
+
+pkgname=ibus-unikey
+pkgver=0.5.1
+pkgrel=2
+pkgdesc='IBus module for Vietnamese Keyboard'
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://code.google.com/p/ibus-unikey/'
+source=("http://ibus-unikey.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('0b8f79941dc3e9a4744d52e88e4401dc')
+depends=('ibus' 'gconf' 'gmp')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ibus/PKGBUILD b/community/ibus/PKGBUILD
new file mode 100644
index 000000000..2ad3e0e93
--- /dev/null
+++ b/community/ibus/PKGBUILD
@@ -0,0 +1,49 @@
+# Contributor: Rainy <rainylau(at)gmail(dot)com>
+# Contributor: Lee.MaRS <leemars at gmail dot com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ibus
+pkgver=1.3.9
+pkgrel=2
+pkgdesc='Next Generation Input Bus for Linux.'
+arch=('i686' 'x86_64')
+license=('LGPL')
+url='http://ibus.googlecode.com'
+depends=('dbus-python>=0.83.0' 'gconf' 'python2' 'pygtk' 'pyxdg' 'iso-codes' 'librsvg' 'python-notify' 'hicolor-icon-theme')
+optdepends=('notification-daemon')
+makedepends=('intltool')
+options=('!libtool')
+install=ibus.install
+source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('57345a3c1cfe37ce3825f6221676dcfe')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ export PYTHON=python2
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/ibus \
+ --sysconfdir=/etc \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas \
+ --enable-introspection=no # disabled because build fails with
+ # gobject-introspection 0.9.10-2
+
+ # python2 fix
+ for file in setup/ibus-setup.in ui/gtk/ibus-ui-gtk.in; do
+ sed -i 's_exec python_exec python2_' $file
+ done
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ export PYTHON=python2
+
+ make DESTDIR=${pkgdir} install
+
+ find ${pkgdir} -type f -exec sed -i 's_exec /usr/bin/python_exec /usr/bin/python2_' {} \;
+}
diff --git a/community/ibus/ibus.install b/community/ibus/ibus.install
new file mode 100644
index 000000000..d5c04de2b
--- /dev/null
+++ b/community/ibus/ibus.install
@@ -0,0 +1,25 @@
+post_install() {
+ echo "Updating gtk.immodules..."
+ /usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+ echo "Done."
+
+ /usr/sbin/gconfpkg --install ibus
+ gtk-update-icon-cache -fq -t /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ /usr/sbin/gconfpkg --uninstall ibus
+}
+
+post_remove() {
+ /usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+ gtk-update-icon-cache -fq -t /usr/share/icons/hicolor
+}
diff --git a/community/icewm-utils/PKGBUILD b/community/icewm-utils/PKGBUILD
new file mode 100644
index 000000000..b31b6e324
--- /dev/null
+++ b/community/icewm-utils/PKGBUILD
@@ -0,0 +1,116 @@
+# $Id: PKGBUILD 27018 2010-09-16 17:37:18Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Dominika Solarz <dominikasolarz@gmail.com>
+
+pkgname=icewm-utils
+pkgver=1.0
+
+_mcver=2.1
+_tsver=1.4
+_bgsetver=1.3
+_kedver=1.5
+_woedver=1.8
+_sndcfgver=1.3
+_ccver=2.9
+_cursorscfgver=0.6
+_iconcvtver=1.0
+_rrunver=0.5
+_mergeprefsver=0.5
+
+pkgrel=5
+pkgdesc="Suite of tools for IceWM"
+arch=(i686 x86_64)
+license=("GPL")
+url="http://icecc.sourceforge.net/"
+depends=('qt3' 'python2')
+optdepends=('pyqt3' 'gvim')
+source=("http://downloads.sourceforge.net/icecc/icemc-$_mcver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icets-$_tsver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icebgset-$_bgsetver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/iceked-$_kedver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icewoed-$_woedver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icesndcfg-$_sndcfgver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icecc-$_ccver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icecursorscfg-$_cursorscfgver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/iceiconcvt-$_iconcvtver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icerrun-$_rrunver.tar.bz2"
+ "http://downloads.sourceforge.net/sourceforge/icecc/icemergeprefs-$_mergeprefsver.tar.bz2"
+ icets-fix-icewmtray-crash.diff)
+md5sums=('cb2afc6efaa0f9d77b0119b29d528667'
+ '1d87c93f5cb27da16c90f47531b7fb21'
+ '7086b771fc7877369924affc5b5f5e41'
+ '47761a8dc59880ddda2a00de9cd187f5'
+ '518f05c02cb24a7e36715ce0d0672c8e'
+ '2113c524ebbbf38ce7eb174b9997c202'
+ 'e3ddbb3536941745435f727053816865'
+ '000ec299a83dbae269f2f335910bd50e'
+ '64463287b6c535b31cb2823d97bfe299'
+ 'cea2fd7726b9f01b080e3861d325ec24'
+ 'b34931566da118e7a14ddcb529e739c6'
+ '5116da930c0063dd8c478dd8e473b08f')
+
+build() {
+ mkdir -p $pkgdir/usr/bin
+
+ . /etc/profile.d/qt3.sh
+ export PATH=/opt/qt/bin:$PATH
+
+ cd $srcdir
+ # fix default global path to IceWM
+ for file in icewoed-$_woedver/qcentralwidget.cpp \
+ icemc-$_mcver/qcentralwidget.cpp \
+ icets-$_tsver/icets.cpp
+ do
+ sed -i 's|/usr/local/|/usr/|' $file
+ done
+
+ # 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
+
+
+ (cd icets-$_tsver && patch -p0 <$srcdir/icets-fix-icewmtray-crash.diff)
+
+ cd $srcdir/icemc-$_mcver
+ qmake
+ make
+ cp icemc $pkgdir/usr/bin/
+
+ cd $srcdir/icets-$_tsver
+ qmake
+ make
+ cp icets $pkgdir/usr/bin/
+
+ cd $srcdir/icebgset-$_bgsetver
+ qmake
+ make
+ cp icebgset $pkgdir/usr/bin/
+
+ cd $srcdir/iceked-$_kedver
+ qmake
+ make
+ cp iceked $pkgdir/usr/bin/
+
+ cd $srcdir/icecc-$_ccver
+ qmake
+ make
+ cp icecc $pkgdir/usr/bin/
+
+ cd $srcdir/icesndcfg-$_sndcfgver
+ qmake
+ make
+ cp icesndcfg $pkgdir/usr/bin/
+
+ cd $srcdir/icewoed-$_woedver
+ qmake
+ make
+ cp icewoed $pkgdir/usr/bin/
+
+ cp $srcdir/icecursorscfg-$_cursorscfgver/icecurcfg.py $pkgdir/usr/bin/icecurcfg
+ cp $srcdir/iceiconcvt-$_iconcvtver/iceiconcvt.py $pkgdir/usr/bin/iceiconcvt
+ cp $srcdir/icemergeprefs-$_mergeprefsver/icemergeprefs.py $pkgdir/usr/bin/icemergeprefs
+ cp $srcdir/icerrun-$_rrunver/icerrun.py $pkgdir/usr/bin/icerrun
+ cp $srcdir/icerrun-$_rrunver/icerrrun.py $pkgdir/usr/bin/icerrrun
+}
diff --git a/community/icewm-utils/icets-fix-icewmtray-crash.diff b/community/icewm-utils/icets-fix-icewmtray-crash.diff
new file mode 100644
index 000000000..3a3b62bcc
--- /dev/null
+++ b/community/icewm-utils/icets-fix-icewmtray-crash.diff
@@ -0,0 +1,13 @@
+--- ./icets.cpp.orig 2010-03-22 00:42:19.231913625 +1000
++++ ./icets.cpp 2010-03-22 00:43:34.611221044 +1000
+@@ -311,7 +311,9 @@
+ }/* if(bakFile.exists()) */
+
+ //restart IceWM
+- system("pkill -1 icewm");
++ // Use killall instead of pkill, because pkill kills all icewm processes
++ // like icewmtray - in this case we lost view of running tray apps
++ system("killall -1 icewm");
+ }/* setTheme() */
+
+ /**
diff --git a/community/ico2xpm/ChangeLog b/community/ico2xpm/ChangeLog
new file mode 100644
index 000000000..7fd5bbf99
--- /dev/null
+++ b/community/ico2xpm/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/ico2xpm/PKGBUILD b/community/ico2xpm/PKGBUILD
new file mode 100644
index 000000000..5d1ef58da
--- /dev/null
+++ b/community/ico2xpm/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ico2xpm
+pkgver=1.2
+pkgrel=1
+pkgdesc="A utility which converts Windows icons into X pixmaps"
+arch=('i686' 'x86_64')
+url="http://ico2xpm.sourceforge.net/"
+license=('GPL')
+source=(http://downloads.sourceforge.net/ico2xpm/1.2/ico2xpm-1_2-src.tar.gz)
+md5sums=('b3dbe027e2420ee33e57d67140f40896')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -Dm755 ${pkgname} ${pkgdir}/usr/bin/${pkgname}
+}
diff --git a/community/icon-slicer/PKGBUILD b/community/icon-slicer/PKGBUILD
new file mode 100644
index 000000000..70783e16d
--- /dev/null
+++ b/community/icon-slicer/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 5685 2009-11-14 10:50:07Z ibiru $
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=icon-slicer
+pkgver=0.3
+pkgrel=3
+pkgdesc="A utility for generating icon themes and libXcursor cursor themes"
+arch=('i686' 'x86_64')
+url="http://freedesktop.org/wiki/Software/icon-slicer"
+license=("GPL")
+depends=('gtk2' 'popt')
+source=(http://freedesktop.org/software/$pkgname/releases/icon-slicer-$pkgver.tar.gz)
+md5sums=('5c5374d4f265b0abe4daef1d03f87104')
+
+build() {
+ cd $startdir/src/icon-slicer-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/icoutils/PKGBUILD b/community/icoutils/PKGBUILD
new file mode 100644
index 000000000..d9c24c298
--- /dev/null
+++ b/community/icoutils/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: neodreams <yanbrodeur@videotron.ca>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=icoutils
+pkgver=0.29.1
+pkgrel=1
+pkgdesc='Extracts and converts images in MS Windows(R) icon and cursor files.'
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://www.nongnu.org/icoutils/'
+depends=('libpng>=1.0.0' 'perl-libwww>=5.64')
+source=("http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('b58f375e0f8731595e8d0ecdc3a0acb9')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/id3lib-rcc/PKGBUILD b/community/id3lib-rcc/PKGBUILD
new file mode 100644
index 000000000..1aacda468
--- /dev/null
+++ b/community/id3lib-rcc/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 2097 2009-09-08 15:34:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=id3lib-rcc
+pkgver=3.8.3
+pkgrel=6
+pkgdesc="id3lib with librcc patch"
+arch=('i686' 'x86_64')
+url="http://id3lib.sourceforge.net/"
+license=('GPL')
+depends=(libxml2 db librcc zlib)
+makedepends=(patch)
+provides=(id3lib)
+conflicts=(id3lib)
+options=('!libtool')
+source=(http://downloads.sourceforge.net/id3lib/id3lib-$pkgver.tar.gz \
+ http://downloads.sourceforge.net/rusxmms/id3lib-csa2.tar.bz2 \
+ arch.patch
+ id3lib-gcc4.patch)
+md5sums=('19f27ddd2dda4b2d26a559a4f0f402a7'
+ '608a475f119974c8f72406fd84e1030f'
+ '8b503330d653578f75fc9f2bf3c3833d'
+ '94191cf1fe6f5fd391d95a6de81a48b9')
+
+build() {
+ cd $startdir/src/id3lib-$pkgver
+
+ patch -Np1 <../id3lib/id3lib-ds-rcc.patch
+ patch -Np1 <$srcdir/id3lib-gcc4.patch
+ (cd src && patch -Np0 <../../arch.patch)
+
+ sed -i 's#iomanip.h##' configure
+ sed -i 's|size_t size_t, size_t \*size_t|size_t s1, size_t *s2|' src/rccpatch.h
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ make LDFLAGS=-lrcc || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/id3lib-rcc/arch.patch b/community/id3lib-rcc/arch.patch
new file mode 100644
index 000000000..2732fde5e
--- /dev/null
+++ b/community/id3lib-rcc/arch.patch
@@ -0,0 +1,39 @@
+--- Makefile.in.org 2003-03-02 03:23:00.000000000 +0300
++++ Makefile.in 2006-07-14 08:33:40.000000000 +0400
+@@ -172,7 +172,8 @@
+ tag_parse_v1.cpp \
+ tag_render.cpp \
+ utils.cpp \
+- writers.cpp
++ writers.cpp \
++ rccpatch.cpp
+
+
+ lib_LTLIBRARIES = libid3.la
+@@ -200,7 +201,7 @@
+ io_decorators.lo io_helpers.lo misc_support.lo mp3_parse.lo \
+ readers.lo spec.lo tag.lo tag_file.lo tag_find.lo tag_impl.lo \
+ tag_parse.lo tag_parse_lyrics3.lo tag_parse_musicmatch.lo \
+- tag_parse_v1.lo tag_render.lo utils.lo writers.lo
++ tag_parse_v1.lo tag_render.lo utils.lo writers.lo rccpatch.lo
+ am_libid3_la_OBJECTS = $(am__objects_1)
+ libid3_la_OBJECTS = $(am_libid3_la_OBJECTS)
+
+@@ -233,7 +234,8 @@
+ @AMDEP_TRUE@ ./$(DEPDIR)/tag_parse_musicmatch.Plo \
+ @AMDEP_TRUE@ ./$(DEPDIR)/tag_parse_v1.Plo \
+ @AMDEP_TRUE@ ./$(DEPDIR)/tag_render.Plo ./$(DEPDIR)/utils.Plo \
+-@AMDEP_TRUE@ ./$(DEPDIR)/writers.Plo
++@AMDEP_TRUE@ ./$(DEPDIR)/writers.Plo \
++@AMDEP_TRUE@ ./$(DEPDIR)/rccpatch.Plo
+ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+ LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
+@@ -328,6 +330,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tag_render.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/writers.Plo@am__quote@
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rccpatch.Plo@am__quote@
+
+ distclean-depend:
+ -rm -rf ./$(DEPDIR)
diff --git a/community/id3lib-rcc/id3lib-gcc4.patch b/community/id3lib-rcc/id3lib-gcc4.patch
new file mode 100644
index 000000000..7f4ef666a
--- /dev/null
+++ b/community/id3lib-rcc/id3lib-gcc4.patch
@@ -0,0 +1,189 @@
+diff -wbBur id3lib-3.8.3/configure.in id3lib-3.8.3.my/configure.in
+--- id3lib-3.8.3/configure.in 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/configure.in 2009-09-08 15:09:40.000000000 +0000
+@@ -227,7 +227,6 @@
+ )
+ AC_CHECK_HEADERS( \
+ string \
+- iomanip.h \
+ ,,AC_MSG_ERROR([Missing a vital header file for id3lib])
+ )
+
+@@ -296,11 +295,11 @@
+ AC_DEFINE_UNQUOTED(_ID3LIB_BINARY_AGE, $ID3LIB_BINARY_AGE)
+ AC_DEFINE_UNQUOTED(_ID3_COMPILED_WITH_DEBUGGING, "${enable_debug}")
+
+-CONDITIONAL_SUBDIRS=
+-if test "x$ac_cv_lib_z_uncompress" = "xno"; then
+- CONDITIONAL_SUBDIRS="$CONDITIONAL_SUBDIRS zlib"
+-fi
+-AC_CONFIG_SUBDIRS(zlib)
++#CONDITIONAL_SUBDIRS=
++#if test "x$ac_cv_lib_z_uncompress" = "xno"; then
++# CONDITIONAL_SUBDIRS="$CONDITIONAL_SUBDIRS zlib"
++#fi
++#AC_CONFIG_SUBDIRS(zlib)
+
+ CFLAGS="$CFLAGS -Wall"
+
+diff -wbBur id3lib-3.8.3/doc/Doxyfile.in id3lib-3.8.3.my/doc/Doxyfile.in
+--- id3lib-3.8.3/doc/Doxyfile.in 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/doc/Doxyfile.in 2009-09-08 15:10:40.000000000 +0000
+@@ -263,8 +263,10 @@
+
+ INPUT = ../src \
+ ../include/id3/field.h \
+- ../include/id3/frame.h \
+ ../include/id3/globals.h \
++ ../include/id3/io_decorators.h \
++ ../include/id3/io_helpers.h \
++ ../include/id3/io_strings.h \
+ ../include/id3/misc_support.h \
+ ../include/id3/reader.h \
+ ../include/id3/readers.h \
+diff -wbBur id3lib-3.8.3/examples/demo_convert.cpp id3lib-3.8.3.my/examples/demo_convert.cpp
+--- id3lib-3.8.3/examples/demo_convert.cpp 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/examples/demo_convert.cpp 2009-09-08 15:09:26.000000000 +0000
+@@ -84,7 +84,7 @@
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ flags_t ulFlag = ID3TT_ALL;
+ gengetopt_args_info args;
+diff -wbBur id3lib-3.8.3/examples/demo_copy.cpp id3lib-3.8.3.my/examples/demo_copy.cpp
+--- id3lib-3.8.3/examples/demo_copy.cpp 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/examples/demo_copy.cpp 2009-09-08 15:09:26.000000000 +0000
+@@ -81,7 +81,7 @@
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
+diff -wbBur id3lib-3.8.3/examples/demo_info.cpp id3lib-3.8.3.my/examples/demo_info.cpp
+--- id3lib-3.8.3/examples/demo_info.cpp 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/examples/demo_info.cpp 2009-09-08 15:09:26.000000000 +0000
+@@ -309,7 +309,7 @@
+
+ #define DEBUG
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ ID3D_INIT_DOUT();
+
+diff -wbBur id3lib-3.8.3/examples/demo_tag.cpp id3lib-3.8.3.my/examples/demo_tag.cpp
+--- id3lib-3.8.3/examples/demo_tag.cpp 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/examples/demo_tag.cpp 2009-09-08 15:09:26.000000000 +0000
+@@ -46,7 +46,7 @@
+ os << "v2";
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
+diff -wbBur id3lib-3.8.3/include/id3/id3lib_strings.h id3lib-3.8.3.my/include/id3/id3lib_strings.h
+--- id3lib-3.8.3/include/id3/id3lib_strings.h 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/include/id3/id3lib_strings.h 2009-09-08 15:09:26.000000000 +0000
+@@ -30,6 +30,7 @@
+ #define _ID3LIB_STRINGS_H_
+
+ #include <string>
++#include <cstring>
+
+ #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
+ namespace std
+diff -wbBur id3lib-3.8.3/include/id3/writers.h id3lib-3.8.3.my/include/id3/writers.h
+--- id3lib-3.8.3/include/id3/writers.h 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/include/id3/writers.h 2009-09-08 15:09:26.000000000 +0000
+@@ -30,7 +30,7 @@
+
+ #include "id3/writer.h"
+ #include "id3/id3lib_streams.h"
+-//#include <string.h>
++#include <string.h>
+
+ class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer
+ {
+diff -wbBur id3lib-3.8.3/src/Makefile.am id3lib-3.8.3.my/src/Makefile.am
+--- id3lib-3.8.3/src/Makefile.am 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/src/Makefile.am 2009-09-08 15:09:49.000000000 +0000
+@@ -76,6 +76,8 @@
+ LDADD = $(top_builddir)/zlib/src/libz.la
+ endif
+
++libid3_la_LIBADD = -lz -lstdc++
++
+ libid3_la_LDFLAGS = \
+ -version-info $(LT_VERSION) \
+ -release $(LT_RELEASE) \
+diff -wbBur id3lib-3.8.3/src/Makefile.in id3lib-3.8.3.my/src/Makefile.in
+--- id3lib-3.8.3/src/Makefile.in 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/src/Makefile.in 2009-09-08 15:09:49.000000000 +0000
+@@ -192,7 +192,8 @@
+ CONFIG_CLEAN_FILES =
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+
+-libid3_la_LIBADD =
++libid3_la_LIBADD = -lz -lstdc++
++
+ am__objects_1 = c_wrapper.lo field.lo field_binary.lo field_integer.lo \
+ field_string_ascii.lo field_string_unicode.lo frame.lo \
+ frame_impl.lo frame_parse.lo frame_render.lo globals.lo \
+diff -wbBur id3lib-3.8.3/src/tag_file.cpp id3lib-3.8.3.my/src/tag_file.cpp
+--- id3lib-3.8.3/src/tag_file.cpp 2008-10-27 18:24:52.000000000 +0000
++++ id3lib-3.8.3.my/src/tag_file.cpp 2009-09-08 15:10:22.000000000 +0000
+@@ -242,8 +242,8 @@
+ strcpy(sTempFile, filename.c_str());
+ strcat(sTempFile, sTmpSuffix.c_str());
+
+-#if ((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
+- // This section is for Windows folk && gcc 3.x folk
++#if !defined(HAVE_MKSTEMP)
++ // This section is for Windows folk
+ fstream tmpOut;
+ createFile(sTempFile, tmpOut);
+
+@@ -257,7 +257,7 @@
+ tmpOut.write((char *)tmpBuffer, nBytes);
+ }
+
+-#else //((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
++#else //!defined(HAVE_MKSTEMP)
+
+ // else we gotta make a temp file, copy the tag into it, copy the
+ // rest of the old file after the tag, delete the old file, rename
+@@ -270,7 +270,7 @@
+ //ID3_THROW_DESC(ID3E_NoFile, "couldn't open temp file");
+ }
+
+- ofstream tmpOut(fd);
++ ofstream tmpOut(sTempFile);
+ if (!tmpOut)
+ {
+ tmpOut.close();
+@@ -285,14 +285,14 @@
+ uchar tmpBuffer[BUFSIZ];
+ while (file)
+ {
+- file.read(tmpBuffer, BUFSIZ);
++ file.read((char *)tmpBuffer, BUFSIZ);
+ size_t nBytes = file.gcount();
+- tmpOut.write(tmpBuffer, nBytes);
++ tmpOut.write((char *)tmpBuffer, nBytes);
+ }
+
+ close(fd); //closes the file
+
+-#endif ////((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
++#endif ////!defined(HAVE_MKSTEMP)
+
+ tmpOut.close();
+ file.close();
diff --git a/community/idesk/PKGBUILD b/community/idesk/PKGBUILD
new file mode 100644
index 000000000..6eeabec92
--- /dev/null
+++ b/community/idesk/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 18423 2010-06-04 15:41:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Claudio Sabattoli <gasherbrum3@alice.it>
+
+pkgname=idesk
+pkgver=0.7.5
+pkgrel=3
+pkgdesc="iDesk gives users of minimal wm's (fluxbox, blackbox, openbox, windowsmaker...) icons on their desktop"
+arch=("i686" "x86_64")
+url="http://idesk.sourceforge.net/wiki/index.php"
+license=('GPL')
+depends=('pkgconfig' 'imlib2' 'libpng' 'libxpm' 'libxft' 'gcc-libs')
+source=("http://downloads.sourceforge.net/sourceforge/idesk/$pkgname-$pkgver.tar.bz2")
+md5sums=('beb48c97815c7b085e3b3d601297fbb8')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+
+ sed -i '1,1i#include <unistd.h>' src/DesktopConfig.cpp
+ sed -i '1,1i#include <sys/stat.h>' src/DesktopConfig.cpp
+ sed -i '1,1i#include <sys/types.h>' src/DesktopConfig.cpp
+
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ sed -i 's#usr/local#usr#' $pkgdir/usr/share/idesk/default.lnk
+}
diff --git a/community/iftop/PKGBUILD b/community/iftop/PKGBUILD
new file mode 100644
index 000000000..763ae31ed
--- /dev/null
+++ b/community/iftop/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 17240 2010-05-22 14:21:13Z daenyth $
+# Maintainer: Daenyth <Daenyth+Arch at gmail dot com>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Alexander Mieland (dma147) <dma147@linux-stats.org>
+# Contributor: slubman <slubman@slubman.net>
+
+pkgname=iftop
+pkgver=0.17
+pkgrel=9
+pkgdesc="iftop does for network usage what top(1) does for CPU usage"
+arch=('i686' 'x86_64')
+url="http://www.ex-parrot.com/~pdw/iftop/"
+license=('GPL')
+depends=('libpcap>=1.0.0' 'ncurses')
+options=('!makeflags')
+source=(http://www.ex-parrot.com/~pdw/$pkgname/download/$pkgname-$pkgver.tar.gz)
+md5sums=('062bc8fb3856580319857326e0b8752d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ifuse/PKGBUILD b/community/ifuse/PKGBUILD
new file mode 100644
index 000000000..096d33f6a
--- /dev/null
+++ b/community/ifuse/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=ifuse
+pkgver=1.1.1
+pkgrel=2
+pkgdesc='A fuse filesystem to access the contents of an iPhone or iPod Touch'
+url='http://libimobiledevice.org/'
+arch=('i686' 'x86_64')
+license=('LGPL2.1')
+depends=('libimobiledevice' 'fuse')
+source=("http://www.libimobiledevice.org/downloads/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('8d528a79de024b91f12f8ac67965c37c')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/iksemel/PKGBUILD b/community/iksemel/PKGBUILD
new file mode 100644
index 000000000..242ec9323
--- /dev/null
+++ b/community/iksemel/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 1020 2009-08-11 22:19:38Z mherych $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributos: Guillermo Vaya driadan@willinux.net
+
+pkgname=iksemel
+pkgver=1.4
+pkgrel=1
+pkgdesc="XML parser library for Jabber applications in ANSI C"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/iksemel/"
+license=('LGPL')
+depends=('gnutls')
+source=(http://iksemel.googlecode.com/files/iksemel-$pkgver.tar.gz)
+md5sums=('532e77181694f87ad5eb59435d11c1ca')
+options=('!libtool')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --infodir=/usr/share/info
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ mv $pkgdir/usr/share/info/$pkgname $pkgdir/usr/share/info/$pkgname.info
+ rm -rf $pkgdir/usr/share/info/dir
+}
diff --git a/community/imdbpy/PKGBUILD b/community/imdbpy/PKGBUILD
new file mode 100644
index 000000000..263a0a888
--- /dev/null
+++ b/community/imdbpy/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 38352 2011-01-25 22:52:45Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: lang2 <wenzhi.liang@gmail.com>
+
+pkgname=imdbpy
+_realname=IMDbPY
+pkgver=4.7
+pkgrel=1
+pkgdesc="Python bindings for the Internet Movie Database (IMDb)"
+url="http://imdbpy.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('python2')
+makedepends=('python2-distribute')
+optdepends=('python-lxml' 'python2-sqlalchemy' 'python-sqlobject')
+source=(http://downloads.sourceforge.net/$pkgname/$_realname-$pkgver.tar.gz)
+md5sums=('4deaed7b55ba3098af5ac559da7dde1a')
+
+build(){
+ cd "$srcdir/$_realname-$pkgver"
+
+ # 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
+
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ # fix paths
+ mv "$pkgdir/usr/etc" "$pkgdir"
+ install -d "$pkgdir/usr/share"
+ mv "$pkgdir/usr/imdb" "$pkgdir/usr/share"
+ mv "$pkgdir/usr/doc" "$pkgdir/usr/share/imdb/"
+}
diff --git a/community/incron/PKGBUILD b/community/incron/PKGBUILD
new file mode 100644
index 000000000..bc8e83ab3
--- /dev/null
+++ b/community/incron/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 1515 2009-08-24 21:08:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+# Contributor: scj <scj(at)archlinux(dot)us>
+pkgname=incron
+pkgver=0.5.9
+pkgrel=1
+pkgdesc="Like the regular cron but is driven by filesystem events instead of time periods"
+arch=('i686' 'x86_64')
+url="http://incron.aiken.cz/"
+license=("GPL")
+depends=('gcc-libs')
+install=incron.install
+source=(http://inotify.aiken.cz/download/incron/$pkgname-$pkgver.tar.gz \
+ incron.init)
+options=(emptydirs)
+md5sums=('a285b9e14af7bf9f9524fe051a06255f'
+ '648e1ca1a4b1e624401d9d71aa3756b3')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ install -D -m 755 $startdir/incron.init $startdir/pkg/etc/rc.d/incrond
+ mkdir -p $startdir/pkg/usr/share/man $startdir/pkg/usr/bin $startdir/pkg/usr/sbin
+
+ sed -i '1,1i#include <stdio.h>' icd-main.cpp inotify-cxx.cpp usertable.cpp appargs.cpp
+ sed -i 's|strchr(s,|(char*)strchr(s,|' incroncfg.cpp
+
+ make || return 1
+
+ make PREFIX=$startdir/pkg/usr \
+ MANPATH=$startdir/pkg/usr/share/man \
+ USERDATADIR=$startdir/pkg/var/spool/incron \
+ CFGDIR=$startdir/pkg/etc \
+ SYSDATADIR=$startdir/pkg/etc/incron.d install
+}
diff --git a/community/incron/incron.init b/community/incron/incron.init
new file mode 100644
index 000000000..337c0fa0b
--- /dev/null
+++ b/community/incron/incron.init
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting Incrond"
+ /usr/sbin/incrond
+ add_daemon incrond
+ stat_done
+ ;;
+ stop)
+ stat_busy "Stopping Incrond"
+ PID=`pidof -o %PPID /usr/sbin/incrond`
+ [ -z "$PID" ] || kill $PID
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon incrond
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/community/incron/incron.install b/community/incron/incron.install
new file mode 100644
index 000000000..3c4535b00
--- /dev/null
+++ b/community/incron/incron.install
@@ -0,0 +1,15 @@
+post_install () {
+ # Check user/group incron exists
+ getent group incron > /dev/null || groupadd incron
+ getent passwd incron > /dev/null || useradd -c "Incron system" -g incron -s /bin/false -d /var/spool/incron incron
+ # Fix permissions
+ chown incron.incron -R /var/spool/incron
+}
+
+pre_remove() {
+ [ -h /var/service/incron ] && rm /var/service/incron
+ /etc/rc.d/incron stop
+ usr/sbin/userdel incron >& /dev/null
+ usr/sbin/groupdel incron >& /dev/null
+}
+
diff --git a/community/iniparser/PKGBUILD b/community/iniparser/PKGBUILD
new file mode 100644
index 000000000..32a4c4b5b
--- /dev/null
+++ b/community/iniparser/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 43048 2011-03-23 21:45:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+
+pkgname=iniparser
+pkgver=3.0
+pkgrel=1
+pkgdesc="A free stand-alone ini file parsing library written in portable ANSI C"
+arch=('i686' 'x86_64')
+url="http://ndevilla.free.fr/iniparser/"
+license=('MIT')
+depends=()
+options=(force)
+source=(http://ndevilla.free.fr/iniparser/$pkgname-$pkgver.tar.gz)
+md5sums=('cded4eba694beed39ec932fc6c64e010')
+
+build() {
+ cd $srcdir/$pkgname
+ make
+ install -Dm644 src/iniparser.h $pkgdir/usr/include/iniparser.h
+ install -Dm644 src/dictionary.h $pkgdir/usr/include/dictionary.h
+ install -Dm644 libiniparser.a $pkgdir/usr/lib/libiniparser.a
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/iniparser/LICENSE
+}
diff --git a/community/inn/PKGBUILD b/community/inn/PKGBUILD
new file mode 100644
index 000000000..98d913f43
--- /dev/null
+++ b/community/inn/PKGBUILD
@@ -0,0 +1,121 @@
+# $Id: PKGBUILD 44059 2011-04-01 20:32:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Edward Tjörnhammar <xhemi@cube2.se>
+# Contributor: Edward Tjörnhammar <xhemi@cube2.se>
+
+pkgname=inn
+pkgver=2.5.2
+pkgrel=5
+pkgdesc="Complete open source Usenet system. De facto standard for handling news routing, news spool and serving the spool to customers."
+url="http://www.isc.org/software/inn/"
+arch=('i686' 'x86_64')
+license=("custom:INN")
+depends=('openssl' 'dovecot')
+makedepends=('make' 'bison' 'python2' 'gcc' 'smtp-forwarder' 'libsasl')
+optdepends=('perl' 'python2' 'libsasl')
+options=(emptydirs docs zipman)
+install=inn.install
+backup=(etc/inn/newsfeeds
+ etc/inn/incoming.conf
+ etc/inn/nnrpd.track
+ etc/inn/passwd.nntp
+ etc/inn/inn.conf
+ etc/inn/moderators
+ etc/inn/control.ctl
+ etc/inn/expire.ctl
+ etc/inn/nntpsend.ctl
+ etc/inn/innreport.conf
+ etc/inn/innwatch.ctl
+ etc/inn/distrib.pats
+ etc/inn/actsync.cfg
+ etc/inn/actsync.ign
+ etc/inn/motd.news
+ etc/inn/storage.conf
+ etc/inn/cycbuff.conf
+ etc/inn/buffindexed.conf
+ etc/inn/innfeed.conf
+ etc/inn/news2mail.cf
+ etc/inn/readers.conf
+ etc/inn/radius.conf
+ etc/inn/ovdb.conf
+ etc/inn/subscriptions
+ var/db/inn/active
+ var/db/inn/active.times
+ var/db/inn/history
+ var/db/inn/history.dir
+ var/db/inn/history.hash
+ var/db/inn/history.index
+ var/db/inn/newsgroups)
+source=(http://ftp.isc.org/isc/inn/inn-$pkgver.tar.gz
+ innd.rc
+ nnrpd.rc
+ innd.conf
+ nnrpd.conf
+ site.make.patch)
+md5sums=('a6e577dceb90d07501b96149508b974b'
+ '2ad5138dac7c7535278f73f30020d656'
+ 'a0b1ff8501ac8a31ce81a2f9c9b4bac9'
+ 'fbf1d2c5b3c5a08ae3e515c71c2e2e4a'
+ 'bb4bbe86ae52fbbf08b0f6f370dea052'
+ '960c800026ed6e03901cf0bafdfd53d8')
+
+build() {
+ cd $srcdir/inn-$pkgver
+
+ [ $NOEXTRACT -eq 1 ] || PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --includedir=/usr/include/inn \
+ --sbindir=/usr/sbin \
+ --with-libtool \
+ --with-gnu-id \
+ --with-db-dir=/var/db/inn \
+ --sysconfdir=/etc/inn \
+ --with-spool-dir=/var/spool/news \
+ --with-log-dir=/var/log/inn \
+ --with-run-dir=/var/run/inn \
+ --with-tmp-dir=/var/spool/inn/tmp \
+ --enable-largefiles \
+ --with-openssl=/usr \
+ --with-perl \
+ --with-python \
+ --with-sendmail=/usr/bin/msmtp \
+ --with-sasl=/usr
+ # build in chroot fails with default news:news since they don't exist.
+ # uncomment following lines for working build. not sure if this is the correct solution though.
+ # --with-news-user=root \
+ # --with-news-group=root \
+
+ sed -i 's|-export-dynamic gnu|-export-dynamic|' Makefile.global
+
+ [ $NOEXTRACT -eq 1 ] || patch -p3 < $srcdir/site.make.patch
+ export LD_LIBRARY_PATH=.:$pkgdir/usr/lib:$LD_LIBRARY_PATH
+
+ make
+ make DESTDIR=$pkgdir install
+
+ mkdir -p $pkgdir/etc/{conf,rc}.d && \
+ install -m0755 $srcdir/innd.rc $pkgdir/etc/rc.d/innd
+ install -m0644 $srcdir/innd.conf $pkgdir/etc/conf.d/innd
+
+ install -m0755 $srcdir/nnrpd.rc $pkgdir/etc/rc.d/nnrpd
+ install -m0644 $srcdir/nnrpd.conf $pkgdir/etc/conf.d/nnrpd
+
+ cd $pkgdir/usr/lib
+ for i in lib*.a; do
+ gcc -shared -o ${i%%.a}.so.2.0.0 $i
+ for j in 2.0 2; do
+ ln -s ${i%%a}so.2.0.0 ${i%%a}so.$j
+ done
+ done
+
+ touch $pkgdir/var/db/inn/history{.dir,.hash,.index,}
+
+ mkdir -p $pkgdir/usr/share/doc/inn $pkgdir/usr/share/inn/
+ mv $pkgdir/usr/share/man/man3/list.3 $pkgdir/usr/share/man/man3/list-inn.3
+ mv $pkgdir/usr/doc/* $pkgdir/usr/share/doc/inn/
+ mv $pkgdir/usr/http/* $pkgdir/usr/share/inn/
+ mv $pkgdir/usr/bin/archive $pkgdir/usr/bin/archive.inn
+ rm -rf $pkgdir/usr/doc $pkgdir/usr/http $pkgdir/var/run
+ install -D -m0644 $srcdir/inn-$pkgver/LICENSE $pkgdir/usr/share/licenses/inn/LICENSE
+ chown root:root $pkgdir/usr/bin/innbind
+ chmod 05555 $pkgdir/usr/bin/innbind
+}
diff --git a/community/inn/inn.install b/community/inn/inn.install
new file mode 100644
index 000000000..37b6394b1
--- /dev/null
+++ b/community/inn/inn.install
@@ -0,0 +1,22 @@
+post_install() {
+ grep -e "^news:" /etc/group 2>&- >&- || groupadd -r news 2>&- >&-
+ grep -e "^news:" /etc/passwd 2>&- >&- || useradd -r -m -g news news 2>&- >&-
+
+ /usr/bin/makedbz -i -o 2>&- >&-
+ mkdir /var/log/news 2>&- >&-
+
+ chown news:news -R var/spool/news 2>&- >&-
+ chown news:news var/log/news 2>&- >&-
+ chown news:news -R var/db/inn 2>&- >&-
+
+ echo ""
+ echo "->"
+ echo "-> If this is a first-time installation, a minimal active file and"
+ echo "-> history database have been installed. Do not forget to update"
+ echo "-> your cron entries and configure INN. See INSTALL for more"
+ echo "-> information."
+ echo "->"
+ echo "-> The default user:group for inn is news:news"
+ echo "->"
+ echo ""
+}
diff --git a/community/inn/innd.conf b/community/inn/innd.conf
new file mode 100644
index 000000000..48f96ba5e
--- /dev/null
+++ b/community/inn/innd.conf
@@ -0,0 +1,2 @@
+NEWS_USER=news
+NEWS_GROUP=news
diff --git a/community/inn/innd.rc b/community/inn/innd.rc
new file mode 100644
index 000000000..e88bd0c39
--- /dev/null
+++ b/community/inn/innd.rc
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/innd ] && . /etc/conf.d/innd
+[ -z "$NEWS_USER" ] && print "Please set news username" && exit 1;
+
+case "$1" in
+ start)
+ stat_busy "Starting InterNetNews"
+ [ -d /var/run/inn ] || mkdir -p /var/run/inn
+ su $NEWS_USER -c /usr/bin/rc.news 2>&- >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $! > /var/run/innd.pid
+ add_daemon innd
+ stat_done
+ fi
+
+ ;;
+ stop)
+ stat_busy "Stopping InterNetNews"
+ su $NEWS_USER -c /usr/bin/rc.news stop 2>&- >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/innd.pid
+ rm_daemon innd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/inn/nnrpd.conf b/community/inn/nnrpd.conf
new file mode 100644
index 000000000..689a289ce
--- /dev/null
+++ b/community/inn/nnrpd.conf
@@ -0,0 +1,3 @@
+USE_SSL=1
+LISTEN_PORT=563
+NNRPD_OPTS="-D -S -p $LISTEN_PORT -c /etc/inn/readers.conf"
diff --git a/community/inn/nnrpd.rc b/community/inn/nnrpd.rc
new file mode 100644
index 000000000..d7c902832
--- /dev/null
+++ b/community/inn/nnrpd.rc
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/nnrpd ] && . /etc/conf.d/nnrpd
+[ -z "$NNRPD_OPTS" ] && print "FATAL: No arguments where passed" && exit 1;
+
+PID=`pidof -o %PPID nnrpd`
+case "$1" in
+ start)
+ stat_busy "Starting InterNetNews Readers Daemon"
+ if [ ! -f /var/run/nnrpd.pid ]; then
+ stat_append ":: InterNetNews (innd) is not running"
+ stat_fail
+ exit 1
+ fi
+
+ [ -d /var/run/inn ] || mkdir -p /var/run/inn
+ [ -z "$PID" ] && nnrpd $NNRPD_OPTS 2>&- >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID nnrpd`
+ echo $PID > /var/run/nnrpd.pid
+ add_daemon nnrpd
+ stat_done
+ fi
+
+ ;;
+ stop)
+ stat_busy "Stopping InterNetNews Readers Daemon"
+ [ ! -z "$PID" ] && kill $PID >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/nnrpd.pid
+ rm_daemon nnrpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/inn/site.make.patch b/community/inn/site.make.patch
new file mode 100644
index 000000000..5af6e1162
--- /dev/null
+++ b/community/inn/site.make.patch
@@ -0,0 +1,32 @@
+--- old/src/inn-2.4.5/site/Makefile 2008-06-29 19:56:57.000000000 +0200
++++ new/src/inn-2.4.5/site/Makefile 2008-10-09 19:27:59.613208825 +0200
+@@ -52,7 +52,6 @@
+
+ PATH_ACTIVE = ${PATHDB}/active
+ PATH_ACTIVE_TIMES = ${PATHDB}/active.times
+-PATH_HISTORY = ${PATHDB}/history
+ PATH_NEWSGROUPS = ${PATHDB}/newsgroups
+
+ ## Scripts from above, plus site-specific config files.
+@@ -98,7 +97,7 @@
+ ALL_INSTALLED = $(MOST_INSTALLED) $(REST_INSTALLED)
+
+ SPECIAL = $D$(PATH_ACTIVE) $D$(PATH_ACTIVE_TIMES) \
+- $D$(PATH_NEWSGROUPS) $D$(PATH_HISTORY)
++ $D$(PATH_NEWSGROUPS)
+
+ ## Get new versions of everything from samples directory.
+ all: $(ALL) config
+@@ -143,12 +142,6 @@
+ chown $(RUNASUSER) $@
+ chgrp $(RUNASGROUP) $@
+ chmod $(FILEMODE) $@
+-$D$(PATH_HISTORY):
+- touch $@
+- chown $(RUNASUSER) $@
+- chgrp $(RUNASGROUP) $@
+- chmod $(FILEMODE) $@
+- test -z "$D" && $(PATHBIN)/makedbz -i -o
+
+ bootstrap:
+
diff --git a/community/inotify-tools/PKGBUILD b/community/inotify-tools/PKGBUILD
new file mode 100644
index 000000000..020afb70e
--- /dev/null
+++ b/community/inotify-tools/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 16154 2010-04-25 20:32:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessandro Sagratini
+
+pkgname=inotify-tools
+pkgver=3.14
+pkgrel=1
+pkgdesc="inotify-tools is a C library and a set of command-line programs for Linux providing a simple interface to inotify."
+arch=('i686' 'x86_64')
+url="http://inotify-tools.sourceforge.net/"
+license=('GPL')
+depends=(glibc)
+makedepends=('gcc' 'make')
+source=(http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-$pkgver.tar.gz)
+md5sums=('b43d95a0fa8c45f8bab3aec9672cf30c')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/inputattach/PKGBUILD b/community/inputattach/PKGBUILD
new file mode 100644
index 000000000..54b3af023
--- /dev/null
+++ b/community/inputattach/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
+
+pkgname=inputattach
+pkgver=1.24
+pkgrel=2
+pkgdesc="Attach serial mice, keyboards and other input devices to the kernel input system"
+arch=('i686' 'x86_64')
+url="http://linuxconsole.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'bash')
+makedepends=('gcc')
+backup=(etc/conf.d/inputattach.conf)
+install=inputattach.install
+source=('http://kernel.org/pub/linux/kernel/people/dtor/inputattach.c'
+ 'http://kernel.org/pub/linux/kernel/people/dtor/serio-ids.h'
+ 'inputattach.conf.d'
+ 'inputattach.rc.d')
+md5sums=('eb595a766ca363edb3b14c25404596ce'
+ '93d34d96cd3ad19ea1aeca7f68a66b4a'
+ 'ca36071f8384314c037e1e8b15c63afe'
+ 'd484778b0464e25b22cda89ac7fed156')
+
+build() {
+ cc $CFLAGS inputattach.c -o inputattach || return 1
+
+ install -D -m755 inputattach $startdir/pkg/usr/sbin/inputattach && \
+ install -D -m644 $startdir/src/inputattach.conf.d \
+ $startdir/pkg/etc/conf.d/inputattach.conf && \
+ install -D -m755 $startdir/src/inputattach.rc.d \
+ $startdir/pkg/etc/rc.d/inputattach
+}
diff --git a/community/inputattach/inputattach.conf.d b/community/inputattach/inputattach.conf.d
new file mode 100644
index 000000000..1e04240fa
--- /dev/null
+++ b/community/inputattach/inputattach.conf.d
@@ -0,0 +1,11 @@
+#
+# Configuration for inputattach
+#
+
+# inputattach mode - see 'inputattach --help' for list e.g. "--microsoft" for
+# 2 button Microsoft mouse
+IAMODE="--microsoft"
+
+# inputattach device - /dev file entry where device is attached e.g.
+# "/dev/ttyS0" for device attached to first system serial port
+IADEV="/dev/ttyS0"
diff --git a/community/inputattach/inputattach.install b/community/inputattach/inputattach.install
new file mode 100644
index 000000000..965958b6b
--- /dev/null
+++ b/community/inputattach/inputattach.install
@@ -0,0 +1,9 @@
+## arg 1: the new package version
+post_install() {
+ cat << EOF
+
+The correct device mode and /dev device file will need to be set in
+/etc/conf.d/inputattach.conf before starting /etc/rc.d/inputattach
+
+EOF
+}
diff --git a/community/inputattach/inputattach.rc.d b/community/inputattach/inputattach.rc.d
new file mode 100644
index 000000000..7f260f9f8
--- /dev/null
+++ b/community/inputattach/inputattach.rc.d
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+daemon_name=inputattach
+
+. /etc/rc.conf
+
+. /etc/conf.d/$daemon_name.conf
+
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name --daemon $IAMODE $IADEV
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=`get_pid`
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/intel-tbb/PKGBUILD b/community/intel-tbb/PKGBUILD
new file mode 100644
index 000000000..f3f1c41d0
--- /dev/null
+++ b/community/intel-tbb/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Denis Martinez <deuns.martinez AT gmail.com>
+
+pkgname=intel-tbb
+pkgver=3.0_20101215
+pkgrel=1
+pkgdesc='An award-winning C++ runtime library that abstracts the low-level threading details necessary for optimal multi-core performance.'
+arch=('i686' 'x86_64')
+url='http://www.threadingbuildingblocks.org/'
+license=('GPL')
+source=("http://www.threadingbuildingblocks.org/uploads/77/164/3.0%20Update%205/tbb30_20101215oss_src.tgz")
+md5sums=('d1f65b7ba8bafda5a8616dfc8159ea05')
+
+build() {
+ cd tbb${pkgver/\./}oss
+
+ make
+}
+
+package() {
+ cd tbb${pkgver/\./}oss
+
+ install -d ${pkgdir}/usr/lib
+ install -m755 build/linux_*/*.so* ${pkgdir}/usr/lib
+
+ install -d ${pkgdir}/usr/include
+ cp -pr include/tbb ${pkgdir}/usr/include
+}
diff --git a/community/intellij-idea-libs/PKGBUILD b/community/intellij-idea-libs/PKGBUILD
new file mode 100644
index 000000000..2800402ff
--- /dev/null
+++ b/community/intellij-idea-libs/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 41163 2011-03-04 14:46:04Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=intellij-idea-libs
+pkgver=10.0.2
+_pkgver=103.72
+pkgrel=1
+pkgdesc="Architecture dependend libraries needed by the Intellij Idea IDE"
+arch=('i686' 'x86_64')
+url="http://www.jetbrains.org/"
+license=('apache')
+depends=('glibc')
+source=(http://download.jetbrains.com/idea/ideaIC-$pkgver.tar.gz)
+md5sums=('2d9d6464562f3c5b2267867c9dc946b2')
+
+build() {
+ cd "$srcdir"
+
+ install -d -m755 "$pkgdir/"usr/{bin,lib}
+ [ $CARCH == "x86_64" ] && SUFFIX=64
+ install -m755 "idea-IC-$_pkgver"/bin/fsnotifier${SUFFIX} "$pkgdir"/usr/bin
+ install -m644 "idea-IC-$_pkgver"/bin/libbreakgen${SUFFIX}.so "$pkgdir"/usr/lib
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ipguard/PKGBUILD b/community/ipguard/PKGBUILD
new file mode 100644
index 000000000..6319690a7
--- /dev/null
+++ b/community/ipguard/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 43051 2011-03-23 21:45:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ipguard
+pkgver=1.04
+pkgrel=1
+pkgdesc="ipguard - arp<->ip relation checking tool"
+arch=(i686 x86_64)
+url="http://ipguard.deep.perm.ru/"
+license=("GPL")
+depends=(libpcap libnet)
+source=(http://ipguard.deep.perm.ru/files/$pkgname-$pkgver.tar.gz
+ build-fix-le.patch)
+md5sums=('7f44f7c31876f0d68792f02047e25409'
+ 'b27cfc9e8ad4ef9459d7274a2e624831')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 <../build-fix-le.patch
+
+ CFLAGS="-DLIBNET_LIL_ENDIAN" make
+ make PREFIX=$pkgdir/usr install
+
+ mkdir -p $pkgdir/usr/share
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/ipguard/build-fix-le.patch b/community/ipguard/build-fix-le.patch
new file mode 100644
index 000000000..05cd1a902
--- /dev/null
+++ b/community/ipguard/build-fix-le.patch
@@ -0,0 +1,24 @@
+diff -wbBur ipguard-1.02/Makefile ipguard-1.02.my/Makefile
+--- ipguard-1.02/Makefile 2008-11-24 15:33:11.000000000 +0300
++++ ipguard-1.02.my/Makefile 2008-12-11 17:23:07.000000000 +0300
+@@ -9,16 +9,16 @@
+ ETHERS?=/etc/ethers
+
+ ## FreeBSD
+-LOCALBASE=/usr/local
+-LIBNET_CONFIG=libnet11-config
++# LOCALBASE=/usr/local
++# LIBNET_CONFIG=libnet11-config
+
+ ## OpenBSD (tested by irix)
+ # LOCALBASE=/usr/local
+ # LIBNET_CONFIG=libnet-config-1.1
+
+ ## Linux
+-# LOCALBASE=/usr
+-# LIBNET_CONFIG=libnet-config
++LOCALBASE=/usr
++LIBNET_CONFIG=libnet-config
+
+ INCLUDES=`${LIBNET_CONFIG} --cflags`
+ LIBS=`${LIBNET_CONFIG} --libs` -lpcap -L${LOCALBASE}/lib
diff --git a/community/ipsec-tools/PKGBUILD b/community/ipsec-tools/PKGBUILD
new file mode 100644
index 000000000..fc17ae173
--- /dev/null
+++ b/community/ipsec-tools/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 43019 2011-03-23 21:22:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Allan Henriksen <allan.henriksen@gmail.com>
+
+pkgname=ipsec-tools
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="KAME IPSec tools ported to Linux"
+arch=('i686' 'x86_64')
+url="http://ipsec-tools.sourceforge.net/"
+depends=('readline' 'openssl')
+license=('GPL')
+options=('!makeflags' '!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/ipsec-tools/$pkgname-$pkgver.tar.bz2
+ racoon.rc
+ ipsec.rc)
+md5sums=('b79aae3055a51f8de5c0f1b8ca6cf619'
+ 'a9d89177f0eecd1df4fbe21c201ee046'
+ '90d0810267cbd847383ae3101699b192')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's#-Werror##' configure
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --enable-security-context=no --enable-hybrid --enable-dpd --enable-natt \
+ --enable-adminport
+ make
+ make DESTDIR=$pkgdir install
+ install -Dm0755 $srcdir/racoon.rc $pkgdir/etc/rc.d/racoon
+ install -Dm0755 $srcdir/ipsec.rc $pkgdir/etc/rc.d/ipsec
+}
diff --git a/community/ipsec-tools/ipsec.rc b/community/ipsec-tools/ipsec.rc
new file mode 100755
index 000000000..cff472c59
--- /dev/null
+++ b/community/ipsec-tools/ipsec.rc
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Loading IPSec Security Policy Database..."
+ /usr/sbin/setkey -f /etc/ipsec.conf &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ipsec
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Unloading IPSec Security Policy Database..."
+ /usr/sbin/setkey -F -P
+ /usr/sbin/setkey -F
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ipsec
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ipsec-tools/racoon.rc b/community/ipsec-tools/racoon.rc
new file mode 100755
index 000000000..92eccb4e7
--- /dev/null
+++ b/community/ipsec-tools/racoon.rc
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/racoon`
+case "$1" in
+ start)
+ stat_busy "Starting Racoon IPSec daemon"
+ [ -z "$PID" ] && /usr/sbin/racoon
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon racoon
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Racoon IPSec daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon racoon
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ircii-pana/PKGBUILD b/community/ircii-pana/PKGBUILD
new file mode 100644
index 000000000..ebbd841a0
--- /dev/null
+++ b/community/ircii-pana/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 22406 2010-07-21 18:30:48Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Jaroslav Lichtblau <dragonlord@seznam.cz>
+# inspired by Gentoo: http://kambing.ui.edu/gentoo-portage/net-irc/bitchx/files/
+
+pkgname=ircii-pana
+pkgver=1.1
+pkgrel=4
+pkgdesc="A console-based IRC client - AKA BitchX."
+arch=('i686' 'x86_64')
+url="http://www.bitchx.org"
+license=('GPL2')
+depends=('ncurses')
+makedepends=('patch')
+source=(http://downloads.sourceforge.net/bitchx/${pkgname}-${pkgver}-final.tar.gz \
+ bitchx-${pkgver}-gcc43.diff \
+ bitchx-${pkgver}-inline.diff \
+ bitchx-${pkgver}-freenode.diff \
+ bitchx-${pkgver}-latin1.diff \
+ bitchx-${pkgver}-64bit.diff)
+
+md5sums=('611d2dda222f00c10140236f4c331572'
+ 'e1efc5e52658e6651918e07a116bce18'
+ '4824ffd55d51099dd9ee035f4b78d6bf'
+ '741e91dd6267d3436c43756429342217'
+ '9316105f23a67a9bb7ecfc7485dcd098'
+ 'c86f7758db7f438d726fd447dd4a83b0')
+
+build() {
+ cd ${srcdir}/BitchX
+
+ patch -Np1 -i ${srcdir}/bitchx-${pkgver}-gcc43.diff || return 1
+ patch -Np1 -i ${srcdir}/bitchx-${pkgver}-inline.diff || return 1
+ patch -Np1 -i ${srcdir}/bitchx-${pkgver}-freenode.diff || return 1
+ patch -Np1 -i ${srcdir}/bitchx-${pkgver}-latin1.diff || return 1
+
+ if [ "$CARCH" == "x86_64" ] ; then
+ patch -Np1 -i ${srcdir}/bitchx-${pkgver}-64bit.diff || return 1
+ fi
+
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=${pkgdir}/usr install
+
+#we don't want to link to ${pkgdir}, correcting it then
+ cd ${pkgdir}/usr/bin || return 1
+ rm -f BitchX && ln -s BitchX-${pkgver}-final BitchX || return 1
+
+#correcting man page
+ rm -rf ${pkgdir}/usr/man || return 1
+ install -D -m644 ${srcdir}/BitchX/doc/BitchX.1 ${pkgdir}/usr/share/man/man1/BitchX.1 || return 1
+}
diff --git a/community/ircii-pana/bitchx-1.1-64bit.diff b/community/ircii-pana/bitchx-1.1-64bit.diff
new file mode 100644
index 000000000..ec3155f04
--- /dev/null
+++ b/community/ircii-pana/bitchx-1.1-64bit.diff
@@ -0,0 +1,24 @@
+diff -ruN BitchX-orig/include/module.h BitchX/include/module.h
+--- BitchX-orig/include/module.h 2003-04-11 03:09:07.000000000 +0200
++++ BitchX/include/module.h 2008-10-04 19:28:13.000000000 +0200
+@@ -15,7 +15,7 @@
+
+ #include "struct.h"
+
+-typedef int (*Function_ptr)();
++typedef long (*Function_ptr)();
+
+ #ifdef WANT_DLL
+ #ifdef HPUX
+diff -ruN BitchX-orig/include/modval.h BitchX/include/modval.h
+--- BitchX-orig/include/modval.h 2003-04-11 03:09:07.000000000 +0200
++++ BitchX/include/modval.h 2008-10-04 19:28:13.000000000 +0200
+@@ -318,7 +318,7 @@
+ #define show_window(x) ((void) (global[SHOW_WINDOW]((Window *)x)))
+ #define get_status_by_refnum(x, y) ((char *) (global[GET_STATUS_BY_REFNUM]((unsigned int)x, (unsigned int)y)))
+ #define get_visible_by_refnum(x) ((int) (global[GET_VISIBLE_BY_REFNUM]((char *)x)))
+-#define get_window_by_desc(x) ((Window *) (global[GET_WINDOW_BY_DESC]((unsigned int)x)))
++#define get_window_by_desc(x) ((Window *) (global[GET_WINDOW_BY_DESC]((unsigned long)x)))
+ #define get_window_by_refnum(x) ((Window *) (global[GET_WINDOW_BY_REFNUM]((unsigned int)x)))
+ #define get_window_by_name(x) ((Window *) (global[GET_WINDOW_BY_NAME]((char *)x)))
+ #define next_window(x, y) ((void) (global[FUNC_NEXT_WINDOW]((char)x, (char *)y)))
diff --git a/community/ircii-pana/bitchx-1.1-freenode.diff b/community/ircii-pana/bitchx-1.1-freenode.diff
new file mode 100644
index 000000000..1040b598f
--- /dev/null
+++ b/community/ircii-pana/bitchx-1.1-freenode.diff
@@ -0,0 +1,31 @@
+diff -ruN BitchX-orig/include/config.h BitchX/include/config.h
+--- BitchX-orig/include/config.h 2003-07-26 09:00:32.000000000 +0200
++++ BitchX/include/config.h 2008-10-04 19:25:45.000000000 +0200
+@@ -37,7 +37,26 @@
+ *
+ * List last updated: 03/24/01. -dialtone.
+ */
+-#define DEFAULT_SERVER "[efnet] "\
++#define DEFAULT_SERVER "[freenode] "\
++ "irc.freenode.net "\
++ "vinge.freenode.net "\
++ "truong.freenode.net "\
++ "stephenson.freenode.net "\
++ "orwell.freenode.net "\
++ "leguin.freenode.net "\
++ "kornbluth.freenode.net "\
++ "jordan.freenode.net "\
++ "herbert.freenode.net "\
++ "goethe.freenode.net "\
++ "gibson.freenode.net "\
++ "gerrold.freenode.net "\
++ "carter.freenode.net "\
++ "carneiro.freenode.net "\
++ "capek.freenode.net "\
++ "calkins.freenode.net "\
++ "brin.freenode.net "\
++ "adams.freenode.net "\
++ "[efnet] "\
+ "irc.foxlink.net "\
+ "irc.weblook2k.com "\
+ "irc.wh.verio.net "\
diff --git a/community/ircii-pana/bitchx-1.1-gcc43.diff b/community/ircii-pana/bitchx-1.1-gcc43.diff
new file mode 100644
index 000000000..b83ccfd45
--- /dev/null
+++ b/community/ircii-pana/bitchx-1.1-gcc43.diff
@@ -0,0 +1,118 @@
+diff -ruN BitchX-orig/dll/aim/toc/server.c BitchX/dll/aim/toc/server.c
+--- BitchX-orig/dll/aim/toc/server.c 2003-04-11 03:09:06.000000000 +0200
++++ BitchX/dll/aim/toc/server.c 2008-10-04 19:17:25.000000000 +0200
+@@ -7,14 +7,14 @@
+ #include <unistd.h>
+ #include "toc.h"
+
+-static time_t lastsent = 0;
++time_t lastsent = 0;
+ time_t login_time = 0;
+ int my_evil;
+ int is_idle = 0;
+ int lag_ms = 0;
+ int time_to_idle = 600;
+ int is_away = 0;
+-static struct timeval lag_tv;
++struct timeval lag_tv;
+
+ void serv_add_buddy(char *name)
+ {
+diff -ruN BitchX-orig/dll/aim/toc/toc.c BitchX/dll/aim/toc/toc.c
+--- BitchX-orig/dll/aim/toc/toc.c 2003-04-11 03:09:06.000000000 +0200
++++ BitchX/dll/aim/toc/toc.c 2008-10-04 19:17:25.000000000 +0200
+@@ -39,9 +39,9 @@
+ #include "toc.h"
+
+ /* descriptor for talking to TOC */
+-static int toc_fd;
+-static int seqno;
+-static unsigned int peer_ver=0;
++int toc_fd;
++int seqno;
++unsigned int peer_ver=0;
+ int state;
+ /* static int inpa=-1; */
+ int permdeny = PERMIT_PERMITALL;
+diff -ruN BitchX-orig/include/modval.h BitchX/include/modval.h
+--- BitchX-orig/include/modval.h 2003-04-11 03:09:07.000000000 +0200
++++ BitchX/include/modval.h 2008-10-04 19:17:25.000000000 +0200
+@@ -650,7 +650,7 @@
+ #define start_time ((time_t) *((time_t *)global[START_TIME]))
+ #define idle_time() ((time_t) *((time_t *)global[IDLE_TIME]()))
+
+-#define loading_global ((int) *((int *)global[LOADING_GLOBAL]))
++#define loading_global (*((int *)global[LOADING_GLOBAL]))
+ #define target_window (*((Window **)global[TARGET_WINDOW]))
+ #define current_window (*((Window **)global[CURRENT_WINDOW]))
+ #define invisible_list (*((Window **)global[INVISIBLE_LIST]))
+@@ -665,12 +665,12 @@
+ #define dll_variable (*((IrcVariableDll **)global[DLL_VARIABLE]))
+ #define dll_ctcp (*((CtcpEntryDll **)global[DLL_CTCP]))
+ #define dll_window (*((WindowDll **)global[DLL_WINDOW]))
+-#define window_display ((int) *((int *)global[WINDOW_DISPLAY]))
+-#define status_update_flag ((int) *((int *)global[STATUS_UPDATE_FLAG]))
++#define window_display (*((int *)global[WINDOW_DISPLAY]))
++#define status_update_flag (*((int *)global[STATUS_UPDATE_FLAG]))
+ #define tabkey_array (*((NickTab **)global[TABKEY_ARRAY]))
+ #define autoreply_array (*((NickTab *)global[AUTOREPLY_ARRAY]))
+-#define identd ((int) *((int *)global[IDENTD_SOCKET]))
+-#define doing_notice ((int) *((int *)global[DOING_NOTICE]))
++#define identd (*((int *)global[IDENTD_SOCKET]))
++#define doing_notice (*((int *)global[DOING_NOTICE]))
+ #define last_sent_msg_body (*((char **)global[LAST_SENT_MSG_BODY]))
+ #define sent_nick (*((char **)global[SENT_NICK]))
+
+@@ -698,9 +698,9 @@
+ #ifdef GUI
+ #ifndef MAIN_SOURCE
+ #define lastclicklinedata ((char *) *global[LASTCLICKLINEDATA])
+-#define contextx ((int) *((int *)global[CONTEXTX]))
+-#define contexty ((int) *((int *)global[CONTEXTY]))
+-#define guiipc ((int) *((int *)global[GUIIPC]))
++#define contextx (*((int *)global[CONTEXTX]))
++#define contexty (*((int *)global[CONTEXTY]))
++#define guiipc (*((int *)global[GUIIPC]))
+ #endif
+ #define gui_mutex_lock() ((void (*)(void)) global[GUI_MUTEX_LOCK])()
+ #define gui_mutex_unlock() ((void (*)(void))global[GUI_MUTEX_UNLOCK])()
+diff -ruN BitchX-orig/source/ctcp.c BitchX/source/ctcp.c
+--- BitchX-orig/source/ctcp.c 2003-05-27 09:00:22.000000000 +0200
++++ BitchX/source/ctcp.c 2008-10-04 19:17:25.000000000 +0200
+@@ -176,7 +176,7 @@
+
+ /* CDE do ops and unban logging */
+
+-static char *ctcp_type[] =
++char *ctcp_type[] =
+ {
+ "PRIVMSG",
+ "NOTICE"
+diff -ruN BitchX-orig/source/term.c BitchX/source/term.c
+--- BitchX-orig/source/term.c 2003-04-11 03:09:07.000000000 +0200
++++ BitchX/source/term.c 2008-10-04 19:17:25.000000000 +0200
+@@ -91,8 +91,10 @@
+ #define Tgetflag(x) tgetflag(x.tname)
+ #endif
+
+-extern char *getenv();
+-extern char *tparm();
++extern char *getenv(const char *name);
++#ifndef TPARM_DECLARED
++extern char *tparm(char *str, ...);
++#endif
+
+ /*
+ * The old code assumed termcap. termcap is almost always present, but on
+diff -ruN BitchX-orig/source/timer.c BitchX/source/timer.c
+--- BitchX-orig/source/timer.c 2003-04-11 03:09:07.000000000 +0200
++++ BitchX/source/timer.c 2008-10-04 19:17:25.000000000 +0200
+@@ -148,7 +148,7 @@
+ * This is put here on purpose -- we dont want any of the above functions
+ * to have any knowledge of this struct.
+ */
+-static TimerList *PendingTimers;
++TimerList *PendingTimers;
+ static char *schedule_timer (TimerList *ntimer);
+
+ static char *current_exec_timer = empty_string;
diff --git a/community/ircii-pana/bitchx-1.1-inline.diff b/community/ircii-pana/bitchx-1.1-inline.diff
new file mode 100644
index 000000000..0ad417678
--- /dev/null
+++ b/community/ircii-pana/bitchx-1.1-inline.diff
@@ -0,0 +1,12 @@
+diff -ruN BitchX-orig/include/irc_std.h BitchX/include/irc_std.h
+--- BitchX-orig/include/irc_std.h 2003-04-11 03:09:07.000000000 +0200
++++ BitchX/include/irc_std.h 2008-10-04 19:27:29.000000000 +0200
+@@ -98,7 +98,7 @@
+ # define __N
+ # define __inline__
+ #else
+-# if (__GNUC__ >= 2) && (__GNUC_MINOR__ >= 7)
++# if (__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))
+ # define __A(x) __attribute__ ((format (printf, x, x + 1)))
+ # define __N __attribute__ ((noreturn))
+ # else
diff --git a/community/ircii-pana/bitchx-1.1-latin1.diff b/community/ircii-pana/bitchx-1.1-latin1.diff
new file mode 100644
index 000000000..2a1532daa
--- /dev/null
+++ b/community/ircii-pana/bitchx-1.1-latin1.diff
@@ -0,0 +1,12 @@
+diff -ruN BitchX-orig/include/config.h BitchX/include/config.h
+--- BitchX-orig/include/config.h 2003-07-26 09:00:32.000000000 +0200
++++ BitchX/include/config.h 2008-10-04 19:46:29.000000000 +0200
+@@ -330,7 +330,7 @@
+ *
+ * Is here there any solution to use both fonts nethertheless ?
+ */
+-#undef LATIN1
++#define LATIN1
+
+ /*
+ * If you use LINUX and non ISO8859-1 fonts with custom screen mapping,
diff --git a/community/ircservices/PKGBUILD b/community/ircservices/PKGBUILD
new file mode 100644
index 000000000..0fb9aae45
--- /dev/null
+++ b/community/ircservices/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 44173 2011-04-04 11:41:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ircservices
+pkgver=5.1.23
+pkgrel=2
+pkgdesc="Services for IRC (NickServ, ChanServ, MemoServ)"
+arch=(i686 x86_64)
+url="http://www.ircservices.za.net/"
+license=('GPL')
+depends=('glibc')
+makedepends=('patch')
+options=('!makeflags' 'emptydirs')
+install=ircservices.install
+source=(http://www.ircservices.za.net/download/ircservices-$pkgver.tar.gz
+ path-patch.patch
+ ircservices)
+md5sums=('666351f44adf57effc310a7a5943c9a2'
+ '7e4bbf6fb398323afc8e85656ec82c13'
+ 'd5d6409ab04b3a715f9adc29a4fb8a2d')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np0 <../path-patch.patch
+
+ ./configure -prefix /usr
+
+ sed -i 's#getline#xgetline#' lang/langcomp.c
+ make
+
+ sed -i "s#DATDEST=/usr/lib/ircservices#DATDEST=$pkgdir/usr/lib/ircservices#" ./Makefile.inc
+ sed -i "s#BINDEST=/usr/sbin#BINDEST=$pkgdir/usr/sbin#" ./Makefile.inc
+
+ install -d -m 0755 $pkgdir/usr/sbin
+ install -d -m 0755 $pkgdir/usr/lib
+ install -d -m 0755 $pkgdir/etc/ircd
+ make DESTDIR=$pkgdir install
+
+ install -D -m 0755 $srcdir/ircservices $pkgdir/etc/rc.d/ircservices
+ cd $pkgdir && chmod -R ugo+r * && chmod 0755 ./usr/sbin/ircservices
+ find -type d -exec chmod 0755 {} \;
+ install -d -m 0755 $pkgdir/var/lib/ircd
+ cd ./var/lib/ircd
+ ln -s /usr/lib/ircservices/modules modules
+ ln -s /usr/lib/ircservices/languages languages
+ ln -s /usr/lib/ircservices/helpfiles helpfiles
+ ln -s /etc/ircd/ircservices.conf ircservices.conf
+ ln -s /etc/ircd/modules.conf modules.conf
+
+ mkdir -p $pkgdir/var/log/ircd
+ mv $pkgdir/usr/lib/ircservices/*.conf $pkgdir/etc/ircd/
+}
diff --git a/community/ircservices/ircservices b/community/ircservices/ircservices
new file mode 100755
index 000000000..9acd2a6c6
--- /dev/null
+++ b/community/ircservices/ircservices
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof /usr/sbin/ircservices
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting IRC services"
+
+ [ -d /var/run/ircd ] || mkdir -p /var/run/ircd
+ [ -f /var/run/ircd/ircservices.pid ] && rm -f /var/run/ircd/ircservices.pid
+ chown -R ircd.irc /var/run/ircd
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ su -c '/usr/sbin/ircservices -dir=/var/lib/ircd/ -remote=127.0.0.1:6667 -log=/var/log/ircd/ircservices.log' ircd 1>>/var/log/ircd/stdout.log 2>>/var/log/ircd/sterr.log
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon ircservices
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping IRC services"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ircd/ircservices.pid &> /dev/null
+ rm_daemon ircservices
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ircservices/ircservices.install b/community/ircservices/ircservices.install
new file mode 100644
index 000000000..a6d3fa1ab
--- /dev/null
+++ b/community/ircservices/ircservices.install
@@ -0,0 +1,15 @@
+post_install() {
+ groupadd irc
+ useradd -G irc ircd
+ chown -R ircd.irc /var/log/ircd
+ chown -R ircd.irc /var/lib/ircd
+}
+
+post_upgrade() {
+ chown -R ircd.irc /var/log/ircd
+ chown -R ircd.irc /var/lib/ircd
+}
+
+post_remove() {
+ echo "-- Don't forget to remove ircd user and irc group if you do not use it"
+}
diff --git a/community/ircservices/path-patch.patch b/community/ircservices/path-patch.patch
new file mode 100644
index 000000000..b7dd78a61
--- /dev/null
+++ b/community/ircservices/path-patch.patch
@@ -0,0 +1,15 @@
+--- defs.h.org 2009-02-26 12:49:16.000000000 +0000
++++ defs.h 2009-02-26 12:50:04.000000000 +0000
+@@ -17,10 +17,10 @@
+ /******* General configuration *******/
+
+ /* Name of configuration file (in Services directory) */
+-#define IRCSERVICES_CONF PROGRAM ".conf"
++#define IRCSERVICES_CONF "/etc/ircd/" PROGRAM ".conf"
+
+ /* Name of module configuration file (in Services directory) */
+-#define MODULES_CONF "modules.conf"
++#define MODULES_CONF "/etc/ircd/modules.conf"
+
+ /* Maximum number of parameters for a configuration directive */
+ #define CONFIG_MAXPARAMS 8
diff --git a/community/irrlicht/PKGBUILD b/community/irrlicht/PKGBUILD
new file mode 100644
index 000000000..dc74aaaf3
--- /dev/null
+++ b/community/irrlicht/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 33729 2010-11-28 11:00:58Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Hilton Medeiros <medeiros.hilton AT gmail DOT com>
+# Contributor: Ali H. Caliskan <ali.h.caliskan AT gmail DOT com>
+# Contributor: Paolo Fagni <paolo.fagni AT mail DOT com>
+# Contributor: Lukas Kropatschek <lukas.krop AT gmail DOT com>
+
+pkgname=irrlicht
+pkgver=1.7.2
+pkgrel=1
+pkgdesc="An open source high performance realtime 3D graphics engine."
+arch=('i686' 'x86_64')
+url="http://irrlicht.sourceforge.net/"
+license=('ZLIB')
+depends=('mesa' 'libjpeg' 'bzip2')
+source=("http://downloads.sourceforge.net/irrlicht/$pkgname-$pkgver.zip")
+md5sums=('eb627d4c432bf73f12bc6d9ddc700b07')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i -e '/^#.*NON_SYSTEM_ZLIB/d' \
+ -e '/^#.*NON_SYSTEM_JPEG/d' \
+ -e '/^#.*NON_SYSTEM_BZLIB/d' \
+ include/IrrCompileConfig.h
+
+ cd source/Irrlicht
+ sed -i -e '/^CXXFLAGS/s:-g.*::' \
+ -e '/^CXXFLAGS/s:-Wall::' \
+ -e '/^CFLAGS/s/:= -O3 -fexpensive-optimizations/+=/' \
+ -e '/^CXXINCS/s:-Izlib -Ijpeglib::' \
+ -e '/^ZLIBOBJ/d' \
+ -e '/^JPEGLIBOBJ/d' \
+ -e '/^BZIP2OBJ/d' \
+ -e '/.o=.d/d' \
+ -e '/^sharedlib: LDFLAGS/s:+=:+= -lGL -lXxf86vm -ljpeg -lbz2 -lz:' \
+ -e "/^INSTALL_DIR/s:=.*:=$pkgdir/usr/lib:" \
+ -e 's/0-SVN/1/' \
+ -e 's/.$(VERSION_MINOR) -o/ -o/' \
+ Makefile
+
+ make sharedlib
+
+ make
+
+ install -d $pkgdir/usr/lib \
+ $pkgdir/usr/share/licenses/$pkgname \
+ $pkgdir/usr/share/$pkgname/examples/bin \
+ $pkgdir/usr/share/doc/$pkgname
+
+ make install
+
+ cd $srcdir/$pkgname-$pkgver/
+ install -m644 readme.txt $pkgdir/usr/share/licenses/$pkgname
+
+ # Install static library and fix headers permissions
+ install -m644 lib/Linux/libIrrlicht.a $pkgdir/usr/lib
+ chmod 644 $pkgdir/usr/include/$pkgname/*
+
+ # Install media files for examples
+ cp -r media $pkgdir/usr/share/$pkgname
+
+ # Install documentation
+ cp -r doc/* $pkgdir/usr/share/doc/$pkgname
+ rm -f $pkgdir/usr/share/doc/$pkgname/*.txt
+
+ cd $pkgdir/usr/lib
+ ln -s libIrrlicht.so.$pkgver libIrrlicht.so.1
+
+ # Just a helper for examples compilation
+ ln -s libIrrlicht.so.$pkgver $srcdir/$pkgname-$pkgver/lib/Linux/libIrrlicht.so
+
+ # Edit, build and install the examples
+ cd $srcdir/$pkgname-$pkgver/examples
+ sed -i '/define USE_IRRKLANG/s:.*://&:' ./Demo/CDemo.h
+ sed -i '/^CXXFLAGS/d' $(grep -Rl "^CXXFLAGS =" *)
+
+ make
+
+ install -m755 ../bin/Linux/* /$pkgdir/usr/share/$pkgname/examples/bin/
+}
diff --git a/community/isomaster/PKGBUILD b/community/isomaster/PKGBUILD
new file mode 100644
index 000000000..6bb9f6cb8
--- /dev/null
+++ b/community/isomaster/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 36891 2011-01-09 21:25:26Z mherych $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Mefju <mefju@o2.pl>
+
+pkgname=isomaster
+pkgver=1.3.8
+pkgrel=1
+pkgdesc="CD image editor written in GTK2"
+arch=('i686' 'x86_64')
+url="http://littlesvr.ca/isomaster"
+license=('GPL2')
+depends=('gtk2' 'desktop-file-utils')
+makedepends=('iniparser')
+install=isomaster.install
+source=(http://littlesvr.ca/isomaster/releases/$pkgname-$pkgver.tar.bz2)
+md5sums=('bd046989611ded72358ffdc61e46bcfb')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=/usr DESTDIR=$startdir/pkg install
+}
diff --git a/community/isomaster/isomaster.install b/community/isomaster/isomaster.install
new file mode 100644
index 000000000..5e5cfef4d
--- /dev/null
+++ b/community/isomaster/isomaster.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/community/jabberd14/PKGBUILD b/community/jabberd14/PKGBUILD
new file mode 100644
index 000000000..8d3a89c38
--- /dev/null
+++ b/community/jabberd14/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 44176 2011-04-04 11:41:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=jabberd14
+pkgver=1.6.1.1
+pkgrel=9
+pkgdesc="old (1.4) jabber server branch"
+arch=(i686 x86_64)
+url="http://jabberd.org/"
+license=("GPL")
+depends=(pth libidn expat popt gnutls)
+optdepends=(libmysqlclient)
+conflicts=(jabberd)
+backup=(etc/jabberd/jabber.xml)
+options=('!libtool')
+source=(http://download.jabberd.org/jabberd14/jabberd14-$pkgver.tar.gz
+ build-fix.patch
+ jabberd)
+md5sums=('597c7ee14518ba22b1cee883b4737d87'
+ 'fde211eaeecfaf569d29e548a8c24d29'
+ '5869169394d70977858320648075c7a6')
+
+build() {
+ cd $srcdir/jabberd14-$pkgver
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --enable-ssl --enable-legacy --sysconfdir=/etc/jabberd --localstatedir=/var
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/build-fix.patch
+ make -j1
+ make DESTDIR=$pkgdir install
+ install -D -m 0755 $srcdir/jabberd $pkgdir/etc/rc.d/jabberd
+ rm -rf $pkgdir/var/run
+}
diff --git a/community/jabberd14/build-fix.patch b/community/jabberd14/build-fix.patch
new file mode 100644
index 000000000..705ddccfd
--- /dev/null
+++ b/community/jabberd14/build-fix.patch
@@ -0,0 +1,219 @@
+Only in jabberd14-1.6.1.1.my: config.h
+Only in jabberd14-1.6.1.1.my: config.log
+Only in jabberd14-1.6.1.1.my: config.status
+Only in jabberd14-1.6.1.1.my/dialback: .deps
+Only in jabberd14-1.6.1.1.my/dialback: dialback_in.lo
+Only in jabberd14-1.6.1.1.my/dialback: dialback.lo
+Only in jabberd14-1.6.1.1.my/dialback: dialback_out.lo
+Only in jabberd14-1.6.1.1.my/dialback: libjabberddialback.la
+Only in jabberd14-1.6.1.1.my/dialback: .libs
+Only in jabberd14-1.6.1.1.my/dialback: Makefile
+Only in jabberd14-1.6.1.1.my/dnsrv: .deps
+Only in jabberd14-1.6.1.1.my/dnsrv: dnsrv.lo
+Only in jabberd14-1.6.1.1.my/dnsrv: libjabberddnsrv.la
+Only in jabberd14-1.6.1.1.my/dnsrv: .libs
+Only in jabberd14-1.6.1.1.my/dnsrv: Makefile
+Only in jabberd14-1.6.1.1.my/dnsrv: srv_resolv.lo
+Only in jabberd14-1.6.1.1.my/jabberd: acl.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_accept.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_connect.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_dir.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_file.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_format.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_importspool.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_load.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_null.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_stderr.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_stdout.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_syslog.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_to.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: base_unsubscribe.lo
+Only in jabberd14-1.6.1.1.my/jabberd/base: .deps
+Only in jabberd14-1.6.1.1.my/jabberd/base: libjabberdbase.la
+Only in jabberd14-1.6.1.1.my/jabberd/base: .libs
+Only in jabberd14-1.6.1.1.my/jabberd/base: Makefile
+Only in jabberd14-1.6.1.1.my/jabberd: config.lo
+Only in jabberd14-1.6.1.1.my/jabberd: deliver.lo
+Only in jabberd14-1.6.1.1.my/jabberd: .deps
+Only in jabberd14-1.6.1.1.my/jabberd: gcrypt_init.lo
+Only in jabberd14-1.6.1.1.my/jabberd: heartbeat.lo
+Only in jabberd14-1.6.1.1.my/jabberd: jabberd
+Only in jabberd14-1.6.1.1.my/jabberd: jabberd.o
+Only in jabberd14-1.6.1.1.my/jabberd/lib: base64.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: crc32.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: .deps
+Only in jabberd14-1.6.1.1.my/jabberd/lib: expat.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: hash.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: hmac.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: jid.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: jpacket.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: jutil.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: karma.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: libjabberdlib.la
+Only in jabberd14-1.6.1.1.my/jabberd/lib: .libs
+Only in jabberd14-1.6.1.1.my/jabberd/lib: Makefile
+Only in jabberd14-1.6.1.1.my/jabberd/lib: messages.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: pool.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: rate.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: socket.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: str.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: xhash.lo
+diff -wbBur jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc jabberd14-1.6.1.1.my/jabberd/lib/xmlnode.cc
+--- jabberd14-1.6.1.1/jabberd/lib/xmlnode.cc 2007-04-07 19:43:18.000000000 +0000
++++ jabberd14-1.6.1.1.my/jabberd/lib/xmlnode.cc 2010-06-04 15:31:02.000000000 +0000
+@@ -910,8 +910,8 @@
+ }
+
+ /* separate this step from the next one, and check for a predicate in this step */
+- start_predicate = strchr(path, '[');
+- next_step = strchr(path, '/');
++ start_predicate = strchr((char*)path, '[');
++ next_step = strchr((char*)path, '/');
+ if (start_predicate == NULL && next_step == NULL) {
+ this_step = pstrdup(p, path);
+ } else if (start_predicate == NULL || start_predicate > next_step && next_step != NULL) {
+@@ -1833,7 +1833,8 @@
+ if (lang != NULL && strchr(lang, '-') != NULL) {
+ snprintf(general_lang, sizeof(general_lang), "%s", lang);
+ if (strchr(lang, '-') != NULL) {
+- strchr(lang, '-')[0] = 0;
++ char *tmp = strchr((char*)lang, '-');
++ tmp[0] = 0;
+ } else {
+ general_lang[0] = 0;
+ }
+Only in jabberd14-1.6.1.1.my/jabberd/lib: xmlnode.lo
+Only in jabberd14-1.6.1.1.my/jabberd/lib: xstream.lo
+Only in jabberd14-1.6.1.1.my/jabberd: libjabberd.la
+Only in jabberd14-1.6.1.1.my/jabberd: .libs
+diff -wbBur jabberd14-1.6.1.1/jabberd/log.cc jabberd14-1.6.1.1.my/jabberd/log.cc
+--- jabberd14-1.6.1.1/jabberd/log.cc 2007-07-20 13:56:59.000000000 +0000
++++ jabberd14-1.6.1.1.my/jabberd/log.cc 2010-06-04 15:34:05.000000000 +0000
+@@ -86,7 +86,7 @@
+ char *pos, c = '\0';
+ if(zone != NULL && debug__zones != NULL)
+ {
+- pos = strchr(zone,'.');
++ pos = strchr((char*)zone,'.');
+ if(pos != NULL)
+ {
+ c = *pos;
+Only in jabberd14-1.6.1.1.my/jabberd: log.lo
+Only in jabberd14-1.6.1.1.my/jabberd: Makefile
+Only in jabberd14-1.6.1.1.my/jabberd: mio.lo
+Only in jabberd14-1.6.1.1.my/jabberd: mio_raw.lo
+diff -wbBur jabberd14-1.6.1.1/jabberd/mio_tls.cc jabberd14-1.6.1.1.my/jabberd/mio_tls.cc
+--- jabberd14-1.6.1.1/jabberd/mio_tls.cc 2007-07-16 23:20:44.000000000 +0000
++++ jabberd14-1.6.1.1.my/jabberd/mio_tls.cc 2010-06-04 15:33:36.000000000 +0000
+@@ -612,7 +612,8 @@
+ }
+
+ // load OpenPGP key/certificate
+- ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile);
++// ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile);
++ ret = gnutls_certificate_set_openpgp_key_file(current_credentials, pubfile, privfile, GNUTLS_OPENPGP_FMT_BASE64);
+ if (ret < 0) {
+ log_error(NULL, "Error loading OpenPGP key pub=%s/priv=%s: %s", pubfile, privfile, gnutls_strerror(ret));
+ continue;
+@@ -631,7 +632,8 @@
+ }
+
+ // load the OpenPGP keyring
+- ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file);
++// ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file);
++ ret = gnutls_certificate_set_openpgp_keyring_file(current_credentials, file, GNUTLS_OPENPGP_FMT_BASE64);
+ if (ret < 0) {
+ log_error(NULL, "Error loading OpenPGP keyring %s: %s", file, gnutls_strerror(ret));
+ continue;
+@@ -640,6 +642,8 @@
+ continue;
+ }
+
++
++/*
+ // load GnuPG trustdb
+ if (j_strcmp(xmlnode_get_localname(cur), "trustdb") == 0) {
+ char const *const file = xmlnode_get_data(cur);
+@@ -656,6 +660,7 @@
+ continue;
+ }
+ }
++*/
+
+ // setup protocols to use
+ if (j_strcmp(xmlnode_get_localname(cur), "protocols") == 0) {
+Only in jabberd14-1.6.1.1.my/jabberd: mio_tls.lo
+Only in jabberd14-1.6.1.1.my/jabberd: mio_xml.lo
+Only in jabberd14-1.6.1.1.my/jabberd: mtq.lo
+Only in jabberd14-1.6.1.1.my/jabberd: subjectAltName_asn1_tab.lo
+Only in jabberd14-1.6.1.1.my/jabberd: xdb.lo
+Only in jabberd14-1.6.1.1.my: jabber.xml.dist
+Only in jabberd14-1.6.1.1.my/jsm: authreg.lo
+Only in jabberd14-1.6.1.1.my/jsm: deliver.lo
+Only in jabberd14-1.6.1.1.my/jsm: .deps
+Only in jabberd14-1.6.1.1.my/jsm: jsm.lo
+Only in jabberd14-1.6.1.1.my/jsm: libjabberdsm.la
+Only in jabberd14-1.6.1.1.my/jsm: .libs
+Only in jabberd14-1.6.1.1.my/jsm: Makefile
+Only in jabberd14-1.6.1.1.my/jsm/modules: .deps
+Only in jabberd14-1.6.1.1.my/jsm/modules: libjabberdsmmods.la
+Only in jabberd14-1.6.1.1.my/jsm/modules: .libs
+Only in jabberd14-1.6.1.1.my/jsm/modules: Makefile
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_admin.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_agents.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_announce.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_auth_crypt.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_auth_digest.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_auth_plain.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_browse.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_disco.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_echo.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_example.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_last.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_log.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_offline.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_ping.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_presence.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_privacy.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_register.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_roster.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_stat.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_time.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_useridpolicy.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_vcard.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_version.lo
+Only in jabberd14-1.6.1.1.my/jsm/modules: mod_xml.lo
+Only in jabberd14-1.6.1.1.my/jsm: modules.lo
+Only in jabberd14-1.6.1.1.my/jsm: offline.lo
+Only in jabberd14-1.6.1.1.my/jsm: serialization.lo
+Only in jabberd14-1.6.1.1.my/jsm: server.lo
+Only in jabberd14-1.6.1.1.my/jsm: sessions.lo
+Only in jabberd14-1.6.1.1.my/jsm: users.lo
+Only in jabberd14-1.6.1.1.my/jsm: util.lo
+Only in jabberd14-1.6.1.1.my: .libs
+Only in jabberd14-1.6.1.1.my: libtool
+Only in jabberd14-1.6.1.1.my: Makefile
+Only in jabberd14-1.6.1.1.my/man: jabberd.8
+Only in jabberd14-1.6.1.1.my/man: jabber.xml.5
+Only in jabberd14-1.6.1.1.my/man: Makefile
+Only in jabberd14-1.6.1.1.my/po: Makefile
+Only in jabberd14-1.6.1.1.my/pthsock: client.lo
+Only in jabberd14-1.6.1.1.my/pthsock: .deps
+Only in jabberd14-1.6.1.1.my/pthsock: libjabberdpthsock.la
+Only in jabberd14-1.6.1.1.my/pthsock: .libs
+Only in jabberd14-1.6.1.1.my/pthsock: Makefile
+Only in jabberd14-1.6.1.1.my: qwe
+Only in jabberd14-1.6.1.1.my: stamp-h1
+Only in jabberd14-1.6.1.1.my/xdb_file: .deps
+Only in jabberd14-1.6.1.1.my/xdb_file: libjabberdxdbfile.la
+Only in jabberd14-1.6.1.1.my/xdb_file: .libs
+Only in jabberd14-1.6.1.1.my/xdb_file: Makefile
+Only in jabberd14-1.6.1.1.my/xdb_file: xdb_file.lo
+Only in jabberd14-1.6.1.1.my/xdb_file: xdbfiletool
+Only in jabberd14-1.6.1.1.my/xdb_file: xdbfiletool.o
+Only in jabberd14-1.6.1.1.my/xdb_sql: .deps
+Only in jabberd14-1.6.1.1.my/xdb_sql: libjabberdxdbsql.la
+Only in jabberd14-1.6.1.1.my/xdb_sql: .libs
+Only in jabberd14-1.6.1.1.my/xdb_sql: Makefile
+Only in jabberd14-1.6.1.1.my/xdb_sql: xdb_sql.lo
diff --git a/community/jabberd14/jabberd b/community/jabberd14/jabberd
new file mode 100644
index 000000000..afbe6ef69
--- /dev/null
+++ b/community/jabberd14/jabberd
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof /usr/bin/jabberd
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting Jabber daemon"
+
+ [ -d /var/run/jabberd ] || mkdir -p /var/run/jabberd
+ [ -f /var/run/jabberd/jabber.pid ] && rm -f /var/run/jabberd/jabber.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ /usr/bin/jabberd -c /etc/jabberd/jabber.xml -B >/dev/null 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ sleep 1 # wait on children
+ echo `get_pid` > /var/run/jabberd/jabberd.pid
+ add_daemon jabberd
+ sleep 1
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Jabber daemon"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ sleep 2
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/jabberd/jabberd.pid &> /dev/null
+ rm_daemon jabberd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/jack2/PKGBUILD b/community/jack2/PKGBUILD
new file mode 100644
index 000000000..31d0a03e3
--- /dev/null
+++ b/community/jack2/PKGBUILD
@@ -0,0 +1,93 @@
+# $Id: PKGBUILD 43953 2011-04-01 08:09:21Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Daniele Paolella <danielepaolella@email.it>
+# Contributor: Philipp Überbacher <hollunder at gmx dot at>
+# Contributor: Thomas Bahn <thomas-bahn at gmx dot net>
+
+pkgbase=jack2
+pkgname=('jack2' 'jack2-dbus')
+_tarname=jack
+pkgver=1.9.7
+pkgrel=1
+pkgdesc="The next-generation JACK with SMP support"
+arch=('i686' 'x86_64')
+url="http://jackaudio.org/"
+license=('GPL')
+depends=('libsamplerate')
+makedepends=('python2' 'doxygen' 'libffado' 'celt-0.7' 'dbus-core')
+optdepends=('libffado: FireWire support'
+ 'celt-0.7: NetJACK2 driver'
+ 'python2: jack_control')
+provides=('jack=0.118.0' 'jack-audio-connection-kit=0.118.0' 'jackdbus'
+ 'jack-audio-connection-kit-mp' 'jackmp' 'jackdmp')
+conflicts=('jack')
+source=(http://www.grame.fr/~letz/$_tarname-$pkgver.tar.bz2)
+md5sums=('9759670feecbd43eeccf1c0f743ec199')
+
+_pyfix() {
+ sed -i 's:bin/env python:bin/env python2:' \
+ "$pkgdir/usr/bin/jack_control"
+}
+
+build() {
+ cd "$srcdir"
+
+ # fix doxygen building
+ sed -i 's:build/default/html:html:' $_tarname-$pkgver/wscript
+
+ # we're going to do 2 different builds
+ cp -r $_tarname-$pkgver $_tarname-dbus-$pkgver
+
+ # mixed dbus/classic build
+ cd $_tarname-$pkgver
+ msg2 "Running Mixed D-Bus/Classic build"
+
+ python2 waf configure --prefix=/usr \
+ --alsa \
+ --dbus \
+ --classic \
+ --firewire \
+ --doxygen
+
+ python2 waf build $MAKEFLAGS
+
+ # dbus-ONLY build
+ cd ../$_tarname-dbus-$pkgver
+ msg2 "Running D-Bus-only build"
+
+ python2 waf configure --prefix=/usr \
+ --alsa \
+ --dbus \
+ --firewire \
+ --doxygen
+
+ python2 waf build $MAKEFLAGS
+}
+
+package_jack2() {
+ optdepends=('libffado: FireWire support'
+ 'celt-0.7: NetJACK2 driver'
+ 'dbus-core: jackdbus'
+ 'python2: jack_control')
+
+ cd "$srcdir/$_tarname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir/"
+
+ # fix for major python transition
+ _pyfix
+}
+
+package_jack2-dbus() {
+ pkgdesc+=" (for D-Bus interaction only)"
+ depends+=('dbus-core')
+ conflicts+=('jack2')
+
+ cd "$srcdir/$_tarname-dbus-$pkgver"
+
+ python2 waf install --destdir="$pkgdir/"
+
+ _pyfix
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/javasqlite/PKGBUILD b/community/javasqlite/PKGBUILD
new file mode 100644
index 000000000..4202d75c1
--- /dev/null
+++ b/community/javasqlite/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42275 2011-03-15 23:31:24Z ebelanger $
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=javasqlite
+pkgver=20110106
+pkgrel=1
+pkgdesc="Java support for SQLite database engine"
+arch=('i686' 'x86_64')
+url="http://www.ch-werner.de/javasqlite/"
+license=('BSD')
+depends=('java-runtime')
+makedepends=('java-environment' 'sqlite3')
+options=('!libtool')
+source=(http://www.ch-werner.de/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('542a7de8af0186c61d2d68af1c14242e')
+sha1sums=('13af516c83cf93a1809de950de76b4b0403a2caa')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+ install -D -m 644 license.terms "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/jbig2dec/PKGBUILD b/community/jbig2dec/PKGBUILD
new file mode 100644
index 000000000..d51159ecb
--- /dev/null
+++ b/community/jbig2dec/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=jbig2dec
+pkgver=0.11
+pkgrel=2
+pkgdesc="decoder implementation of the JBIG2 image compression format"
+arch=('x86_64' 'i686')
+url="http://jbig2dec.sourceforge.net/"
+license=('GPL3')
+source=(http://ghostscript.com/~giles/jbig2/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('1f61e144852c86563fee6e5ddced63f1')
+depends=('glibc')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+} \ No newline at end of file
diff --git a/community/jbigkit/PKGBUILD b/community/jbigkit/PKGBUILD
new file mode 100644
index 000000000..411bcb670
--- /dev/null
+++ b/community/jbigkit/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26236 2010-09-14 10:47:51Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Frank Ickstadt (frank dot ickstadt at gmail dot com)
+
+pkgname=jbigkit
+pkgver=2.0
+pkgrel=2
+pkgdesc="Data compression library/utilities for bi-level high-resolution images"
+arch=('i686' 'x86_64')
+url="http://www.cl.cam.ac.uk/~mgk25/jbigkit/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.cl.cam.ac.uk/~mgk25/download/jbigkit-$pkgver.tar.gz)
+md5sums=('3dd87f605abb1a97a22dc79d8b3e8f6c')
+
+build() {
+ cd $srcdir/$pkgname
+
+ make || return 1
+
+ install -D -m644 $srcdir/$pkgname/libjbig/libjbig.a $pkgdir/usr/lib/libjbig.a
+ install -D -m644 $srcdir/$pkgname/libjbig/libjbig85.a $pkgdir/usr/lib/libjbig85.a
+ install -D -m644 $srcdir/$pkgname/libjbig/jbig.h $pkgdir/usr/include/jbig.h
+ install -D -m644 $srcdir/$pkgname/libjbig/jbig_ar.h $pkgdir/usr/include/jbig_ar.h
+ install -D -m644 $srcdir/$pkgname/libjbig/jbig85.h $pkgdir/usr/include/jbig85.h
+
+ install -d -m755 $pkgdir/usr/share/man/man1
+# install -d -m755 $pkgdir/usr/share/man/man5
+ install -m644 $srcdir/$pkgname/pbmtools/*.1* $pkgdir/usr/share/man/man1
+# install -m644 $srcdir/$pkgname/pbmtools/*.5* $pkgdir/usr/share/man/man5
+
+ install -D -m755 $srcdir/$pkgname/pbmtools/jbgtopbm $pkgdir/usr/bin/jbgtopbm
+ install -D -m755 $srcdir/$pkgname/pbmtools/pbmtojbg $pkgdir/usr/bin/pbmtojbg
+ install -D -m755 $srcdir/$pkgname/pbmtools/jbgtopbm85 $pkgdir/usr/bin/jbgtopbm85
+ install -D -m755 $srcdir/$pkgname/pbmtools/pbmtojbg85 $pkgdir/usr/bin/pbmtojbg85
+
+ rm -f $pkgdir/usr/share/man/man5/p{b,g}m.5*
+}
diff --git a/community/jogl/PKGBUILD b/community/jogl/PKGBUILD
new file mode 100644
index 000000000..fbbb8172d
--- /dev/null
+++ b/community/jogl/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Simon Lipp <sloonz+aur@gmail.com>
+
+pkgname=jogl
+pkgver=1.1.1
+pkgrel=6
+pkgdesc="OpenGL bindings for java"
+arch=('i686' 'x86_64')
+url="http://jogl.dev.java.net/"
+license=('custom')
+depends=('java-runtime' 'libgl')
+
+if [ "$CARCH" = "i686" ]; then
+ source=('http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1/jogl-1.1.1-linux-i586.zip')
+ md5sums=('74d131fc1c1130d09109887679dbf044')
+else
+ source=('http://download.java.net/media/jogl/builds/archive/jsr-231-1.1.1/jogl-1.1.1-linux-amd64.zip')
+ md5sums=('efe0beb352cfb31f3a32d8d7f56fcce3')
+fi
+
+build() {
+ install -d $pkgdir/usr/share/java/jogl/ || return 1
+ install -d $pkgdir/usr/share/licenses/$pkgname || return 1
+ install -d $pkgdir/usr/lib || return 1
+ install --mode=644 $srcdir/jogl-*/lib/jogl.jar \
+ $pkgdir/usr/share/java/jogl/ || return 1
+ install --mode=644 $srcdir/jogl-*/lib/gluegen-rt.jar \
+ $pkgdir/usr/share/java/jogl/ || return 1
+ install --mode=644 $srcdir/jogl-*/LICENSE-JOGL-*.txt \
+ $pkgdir/usr/share/licenses/$pkgname || return 1
+ install --mode=644 $srcdir/jogl-*/lib/libgluegen-rt.so \
+ $pkgdir/usr/lib/ || return 1
+ install --mode=644 $srcdir/jogl-*/lib/libjogl.so \
+ $pkgdir/usr/lib/ || return 1
+ install --mode=644 $srcdir/jogl-*/lib/libjogl_awt.so \
+ $pkgdir/usr/lib/ || return 1
+}
diff --git a/community/john/PKGBUILD b/community/john/PKGBUILD
new file mode 100644
index 000000000..ef02a0050
--- /dev/null
+++ b/community/john/PKGBUILD
@@ -0,0 +1,76 @@
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Michal Krenek <mikos@sg1.cz>
+
+pkgname=john
+pkgver=1.7.6
+pkgrel=2
+pkgdesc="John The Ripper - A fast password cracker. Additional patches (NTLM, MySQL, Kerberos V5, etc.) included."
+arch=('i686' 'x86_64')
+url="http://www.openwall.com/$pkgname/"
+license=('GPL2' 'custom')
+depends=('openssl')
+backup=('etc/john/john.conf')
+source=(http://www.openwall.com/$pkgname/g/$pkgname-$pkgver.tar.bz2
+ http://www.openwall.com/john/contrib/john-$pkgver-jumbo-7.diff.gz
+ http://www2.psy.uq.edu.au/~ftp/Crypto/DES/libdes-4.04b.tar.gz
+ params.h.patch)
+md5sums=('321ac0793f1aa4f0603b33a393133756'
+ 'bc87e7dd5c4ac1bb3d84bed87614028b'
+ 'e83785f17fde1f362b030792f1269bf1'
+ 'f69ed632eba8fb9e45847a4b4a323787')
+
+build() {
+ # jumbo patch
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -p1 < ${srcdir}/$pkgname-$pkgver-jumbo-7.diff
+ cd ${srcdir}/john-$pkgver/src/
+
+ # patch default params
+ patch -p0 < ${srcdir}/params.h.patch
+ if [ "$CARCH" == "x86_64" ]; then
+ sed -i 's|CFLAGS = -c -Wall -O2|CFLAGS = -c -Wall -O2 -march=x86-64 -DJOHN_SYSTEMWIDE=1|' Makefile
+ sed -i 's|^LDFLAGS =\(.*\)|LDFLAGS =\1 -lm|' Makefile
+ sed -i -e 's|-m486||g' Makefile
+ else sed -i 's|CFLAGS = -c -Wall -O2|CFLAGS = -c -Wall -O2 -march=i686 -DJOHN_SYSTEMWIDE=1|' Makefile
+ fi
+ sed -i 's|LIBS = -ldes|LIBS = -ldes -Ldes|' Makefile
+ sed -i 's|#include <des.h>|#include "des/des.h"|' KRB5_fmt.c
+ sed -i 's|#include <des.h>|#include "des/des.h"|' KRB5_std.h
+
+ # build john
+ if [ "$CARCH" == "x86_64" ]; then
+ make linux-x86-64
+ else make linux-x86-mmx
+ fi
+}
+
+package() {
+ # config file
+ sed -i 's|$JOHN|/usr/share/john|g' ${srcdir}/john-$pkgver/run/john.conf
+ install -Dm644 ${srcdir}/john-$pkgver/run/john.conf ${pkgdir}/etc/john/john.conf
+
+ # docs
+ install -d ${pkgdir}/usr/share/doc/john
+ install -m644 ${srcdir}/john-$pkgver/doc/* ${pkgdir}/usr/share/doc/john/
+ install -d ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/john-$pkgver/run/*.chr ${pkgdir}/usr/share/john/
+ install -m644 ${srcdir}/john-$pkgver/run/password.lst ${pkgdir}/usr/share/john/
+ install -Dm644 ${srcdir}/john-$pkgver/doc/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+
+ # install password list and charset files
+ install -m644 ${srcdir}/${pkgname}-${pkgver}/run/{{all,alnum,alpha,digits,lanman}.chr,password.lst} \
+ ${pkgdir}/usr/share/john/
+
+ # install binaries
+ install -Dm755 ${srcdir}/john-$pkgver/run/john ${pkgdir}/usr/bin/john
+ install -Dm755 ${srcdir}/john-$pkgver/run/mailer ${pkgdir}/usr/bin/john-mailer
+ cd ${pkgdir}/usr/bin
+ ln -s john unafs
+ ln -s john unique
+ ln -s john unshadow
+ ln -s john undrop
+}
+
diff --git a/community/john/params.h.patch b/community/john/params.h.patch
new file mode 100644
index 000000000..ba05a40ab
--- /dev/null
+++ b/community/john/params.h.patch
@@ -0,0 +1,13 @@
+--- params.h.orig 2006-03-17 08:23:42.000000000 -0500
++++ params.h 2006-03-17 08:50:35.000000000 -0500
+@@ -101,8 +101,8 @@
+ /*
+ * File names.
+ */
+-#define CFG_FULL_NAME "$JOHN/john.conf"
+-#define CFG_ALT_NAME "$JOHN/john.ini"
++#define CFG_FULL_NAME "/etc/john/john.conf"
++#define CFG_ALT_NAME "/etc/john/john.ini"
+ #if JOHN_SYSTEMWIDE
+ #define CFG_PRIVATE_FULL_NAME JOHN_PRIVATE_HOME "/john.conf"
+ #define CFG_PRIVATE_ALT_NAME JOHN_PRIVATE_HOME "/john.ini"
diff --git a/community/judy/PKGBUILD b/community/judy/PKGBUILD
new file mode 100644
index 000000000..b8a165d78
--- /dev/null
+++ b/community/judy/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 21377 2010-07-16 11:53:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: d'Ronin <daronin@2600.com>
+
+pkgname=judy
+pkgver=1.0.5
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc="C library creating and accessing dynamic arrays"
+makedepends=(gcc)
+options=(!strip)
+license=('LGPL')
+url="http://judy.sourceforge.net/"
+source=(http://downloads.sourceforge.net/judy/Judy-$pkgver.tar.gz)
+md5sums=('115a0d26302676e962ae2f70ec484a54')
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ make -j1 || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/jwm/PKGBUILD b/community/jwm/PKGBUILD
new file mode 100644
index 000000000..f57809dbf
--- /dev/null
+++ b/community/jwm/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 8961 2010-01-22 23:39:01Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=jwm
+pkgver=2.0.1
+pkgrel=5
+pkgdesc="A lightweight window manager for the X11 Window System"
+arch=('i686' 'x86_64')
+url="http://joewing.net/programs/jwm/"
+license=('GPL2')
+depends=('libx11' 'libxft' 'libjpeg>=7' 'libxpm' 'libxinerama' 'libpng')
+backup=('etc/system.jwmrc')
+source=(http://joewing.net/programs/jwm/releases/jwm-$pkgver.tar.bz2)
+md5sums=('48f323cd78ea891172b2a61790e8c0ec')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-fribidi
+ make || return 1
+ make BINDIR="$pkgdir/usr/bin" MANDIR="$pkgdir/usr/share/man" \
+ SYSCONF="$pkgdir/etc" install || return 1
+}
diff --git a/community/kaa-base/PKGBUILD b/community/kaa-base/PKGBUILD
new file mode 100644
index 000000000..06deb8f6d
--- /dev/null
+++ b/community/kaa-base/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 27071 2010-09-17 12:26:08Z schuay $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+
+pkgname=kaa-base
+pkgver=0.6.0
+pkgrel=3
+pkgdesc="KAA base package"
+url="http://freevo.sourceforge.net/"
+license=('GPL2')
+depends=('python2' 'glib2')
+arch=('i686' 'x86_64')
+source=(http://downloads.sourceforge.net/freevo/$pkgname-$pkgver.tar.gz)
+md5sums=('5fdac0492dbbb412c2cafe32ea8c60a8')
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # 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
+
+ python2 setup.py install --prefix=${pkgdir}/usr --optimize=1
+}
diff --git a/community/kaa-imlib2/PKGBUILD b/community/kaa-imlib2/PKGBUILD
new file mode 100644
index 000000000..a220f36be
--- /dev/null
+++ b/community/kaa-imlib2/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 27187 2010-09-18 15:58:45Z schuay $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+
+pkgname=kaa-imlib2
+pkgver=0.2.3
+pkgrel=4
+pkgdesc="KAA imlib2 package"
+url="http://freevo.sourceforge.net/"
+license=(GPL2)
+depends=('imlib2' 'python2' 'kaa-base')
+arch=('i686' 'x86_64')
+source=(http://downloads.sourceforge.net/freevo/$pkgname-$pkgver.tar.gz)
+md5sums=('64828ede785ab0dd2d3c1f2f36c99342')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --prefix=$pkgdir/usr
+}
diff --git a/community/kaa-metadata/PKGBUILD b/community/kaa-metadata/PKGBUILD
new file mode 100644
index 000000000..116766032
--- /dev/null
+++ b/community/kaa-metadata/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 27187 2010-09-18 15:58:45Z schuay $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+
+pkgname=kaa-metadata
+pkgver=0.7.7
+pkgrel=3
+pkgdesc="KAA metadata package"
+url="http://freevo.sourceforge.net/"
+license=('GPL2')
+depends=('libdvdread' 'python2' 'kaa-base')
+arch=('i686' 'x86_64')
+source=(http://downloads.sourceforge.net/freevo/$pkgname-$pkgver.tar.gz)
+md5sums=('4bca23a0c695b4281ae2220022cdeb77')
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # 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
+
+ python2 setup.py install --prefix=${pkgdir}/usr --optimize=1
+
+ # rename executable, conflicts with mmpython FS#14601
+ mv ${pkgdir}/usr/bin/mminfo ${pkgdir}/usr/bin/kaa-mminfo
+}
diff --git a/community/kadu/PKGBUILD b/community/kadu/PKGBUILD
new file mode 100644
index 000000000..1d3a46aaa
--- /dev/null
+++ b/community/kadu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 42953 2011-03-22 21:04:40Z mherych $
+# Maintainer: Mateusz Herych
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=kadu
+pkgver=0.9.0
+pkgrel=2
+pkgdesc="A Qt-based Gadu-Gadu client"
+arch=('i686' 'x86_64')
+url="http://www.kadu.net/"
+license=('GPL')
+depends=('libgadu' 'libxss' 'aspell' 'phonon' 'qca-ossl' 'libidn')
+makedepends=('cmake' 'libao' 'libsndfile' 'libxtst' 'curl')
+source=(http://www.kadu.net/download/stable/$pkgname-$pkgver.tar.bz2)
+md5sums=('9bd6f39235acea4287664a0bff40b10a')
+
+build() {
+ cd $srcdir/kadu-$pkgver
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/kadu-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/{lib,include}/{libgadu*,pkgconfig}
+ rm -rf $pkgdir/usr/share/kadu/{HISTORY,README}
+}
diff --git a/community/kakasi/PKGBUILD b/community/kakasi/PKGBUILD
new file mode 100644
index 000000000..76b90aa20
--- /dev/null
+++ b/community/kakasi/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=kakasi
+pkgver=2.3.4
+pkgrel=3
+pkgdesc="Convert Kanji characters to Hiragana, Katakana or Romaji"
+arch=('i686' 'x86_64')
+url="http://kakasi.namazu.org/"
+license=('GPL')
+source=(http://kakasi.namazu.org/stable/${pkgname}-${pkgver}.tar.gz)
+depends=('sh')
+md5sums=(4eff51aafbd56c9635791a20c03efa8f)
+options=(!libtool)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/kaudiocreator/PKGBUILD b/community/kaudiocreator/PKGBUILD
new file mode 100644
index 000000000..7ec7e79ce
--- /dev/null
+++ b/community/kaudiocreator/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 24995 2010-08-30 09:56:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+
+pkgname=kaudiocreator
+pkgver=1.2.90
+pkgrel=1
+pkgdesc="A program for ripping and encoding Audio-CDs, encoding files from disk"
+arch=('i686' 'x86_64')
+url="http://www.kde-apps.org/content/show.php/KAudioCreator?content=107645"
+license=('GPL')
+depends=('kdemultimedia-kioslave' 'taglib' 'libdiscid')
+makedepends=('cmake' 'automoc4')
+install="${pkgname}.install"
+source=("http://www.kde-apps.org/CONTENT/content-files/107645-${pkgname}-${pkgver}.tar.bz2")
+md5sums=('3d86f19700ace837093a134876314862')
+
+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/community/kaudiocreator/kaudiocreator.install b/community/kaudiocreator/kaudiocreator.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/kaudiocreator/kaudiocreator.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/community/kcheckers/PKGBUILD b/community/kcheckers/PKGBUILD
new file mode 100755
index 000000000..12e554a8d
--- /dev/null
+++ b/community/kcheckers/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 8492 2010-01-20 09:33:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+
+pkgname=kcheckers
+pkgver=0.8.1
+pkgrel=6
+pkgdesc="Qt4-based checkers boardgame"
+arch=('i686' 'x86_64')
+url="http://qcheckers.sourceforge.net/"
+license=('GPL')
+depends=('qt')
+source=(http://downloads.sourceforge.net/qcheckers/${pkgname}-${pkgver}.tar.gz
+ 'kcheckers.desktop')
+md5sums=('793736a007cd92122dfd91bcfd14ab69'
+ '8b8682edd870c2692f9c7d538263e0f5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Fix the prefix
+ sed -i 's#/usr/local#/usr#' common.h
+
+ qmake kcheckers.pro || return 1
+ make || return 1
+
+ install -d $pkgdir/usr/bin
+ install -m755 kcheckers $pkgdir/usr/bin || return 1
+ install -d ${pkgdir}/usr/share/kcheckers
+ cp -R i18n icons themes $pkgdir/usr/share/kcheckers || return 1
+ chmod 644 $pkgdir/usr/share/kcheckers/i18n/{kcheckers_fr.ts,kcheckers_ru.ts}
+ install -Dm644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+}
diff --git a/community/kcheckers/kcheckers.desktop b/community/kcheckers/kcheckers.desktop
new file mode 100644
index 000000000..a1f4e1209
--- /dev/null
+++ b/community/kcheckers/kcheckers.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Kcheckers
+Comment=Checkers/Daughts game using Qt4 toolkit
+Exec=kcheckers
+Icon=/usr/share/kcheckers/icons/theme/kingwhite.png
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Categories=Game;BoardGame;
diff --git a/community/kchmviewer/PKGBUILD b/community/kchmviewer/PKGBUILD
new file mode 100644
index 000000000..67a052c37
--- /dev/null
+++ b/community/kchmviewer/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 37626 2011-01-15 20:25:41Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alexander Bogdanov <andorn@gmail.com>
+
+pkgname=kchmviewer
+pkgver=5.3
+pkgrel=1
+pkgdesc="A .chm files (MS HTML help file format) viewer"
+arch=('i686' 'x86_64')
+url="http://kchmviewer.sourceforge.net/"
+license=('GPL')
+depends=('chmlib' 'kdelibs' 'qt' 'xdg-utils')
+makedepends=('automoc4' 'cmake')
+options=('libtool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('a8666e63358d20d6ead6b9f309434bdfcbd7b869ed7fb425ca8e0a2f7166af22')
+
+build() {
+ cd $pkgname-$pkgver
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+#icon file
+ install -D -m644 ${srcdir}/$pkgname-$pkgver/packages/$pkgname.png \
+ ${pkgdir}/usr/share/pixmaps/$pkgname.png
+
+#msits.protocol file provided by kdegraphics package
+ rm -rf ${pkgdir}/usr/share/kde4
+#kio_msits.so file provided by kdegraphics package - FS#14376
+ rm -rf ${pkgdir}/usr/lib
+}
diff --git a/community/kchmviewer/kchmviewer.changelog b/community/kchmviewer/kchmviewer.changelog
new file mode 100644
index 000000000..c47ac0198
--- /dev/null
+++ b/community/kchmviewer/kchmviewer.changelog
@@ -0,0 +1,26 @@
+2011-01-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kchmviewer-5.3
+
+2010-06-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 5.2
+
+2009-12-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 5.1
+
+2009-07-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.1
+
+2009-04-30 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#14376 fixed
+
+2009-03-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#12349 fixed
+
+2008-12-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.0 final
+
+2008-11-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.0beta3 - KDE4 version
+
+2007-08-09 Vinay S Shastry <vinayshastry@gmail.com>
+ * PKGBUILD: do not delete libtool files.
diff --git a/community/kchmviewer/kchmviewer.install b/community/kchmviewer/kchmviewer.install
new file mode 100644
index 000000000..8de1998bf
--- /dev/null
+++ b/community/kchmviewer/kchmviewer.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/kdbg/PKGBUILD b/community/kdbg/PKGBUILD
new file mode 100644
index 000000000..d2f373f6e
--- /dev/null
+++ b/community/kdbg/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 44133 2011-04-03 20:08:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Jason Taylor <jftaylor21@gmail.com>
+# Contributor: Georg Grabler <ggrabler@chello.at>
+
+pkgname=kdbg
+pkgver=2.5.0
+pkgrel=1
+pkgdesc="A gdb GUI for KDE"
+arch=('i686' 'x86_64')
+url="http://www.kdbg.org"
+license=('GPL')
+depends=('kdebase-runtime' 'gdb')
+makedepends=('automoc4')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/kdbg/Source%20Code/$pkgver/kdbg-$pkgver.tar.gz")
+md5sums=('687f2892a5751d1e7d8708e37ec1a367')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/kdenlive/PKGBUILD b/community/kdenlive/PKGBUILD
new file mode 100644
index 000000000..70e1ab84c
--- /dev/null
+++ b/community/kdenlive/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 43713 2011-03-29 10:19:44Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zuf <kontakt.zuf@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=kdenlive
+pkgver=0.7.8
+pkgrel=3
+pkgdesc="A non-linear video editor for Linux"
+arch=('i686' 'x86_64')
+url="http://www.kdenlive.org/"
+license=('GPL')
+depends=('kdebase-runtime' 'mlt' 'dvgrab')
+makedepends=('automoc4' 'cmake' 'gettext')
+install=kdenlive.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('7011d0c6b26f7f2350065defef3d9a76')
+
+build() {
+ export LDFLAGS="$LDFLAGS -lX11"
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_INSTALL_DIR=/usr/lib \
+ -DLINK_LIBRARIES=-lX11
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/kdenlive/kdenlive.install b/community/kdenlive/kdenlive.install
new file mode 100644
index 000000000..a3489ee9d
--- /dev/null
+++ b/community/kdenlive/kdenlive.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/kdesvn/PKGBUILD b/community/kdesvn/PKGBUILD
new file mode 100644
index 000000000..8412cb336
--- /dev/null
+++ b/community/kdesvn/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 26469 2010-09-15 21:07:57Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=kdesvn
+pkgver=1.5.5
+pkgrel=1
+pkgdesc="A pure C++ SVN-client for KDE"
+arch=('i686' 'x86_64')
+url="http://www.alwins-world.de/programs/kdesvn/"
+license=('GPL')
+depends=('hicolor-icon-theme' 'kdelibs' 'subversion' 'xdg-utils' 'qt')
+makedepends=('automoc4' 'cmake')
+conflicts=('qsvn')
+options=('libtool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://kdesvn.alwins-world.de/downloads/$pkgname-$pkgver.tar.bz2)
+md5sums=('8f11d31cc55fba408b7971541ee261d0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ cmake . \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_CXX_FLAGS="-DQT_THREAD_SUPPORT" \
+ -DLIB_SUFFIX=
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+#removing conflicting files - kdesdk
+ rm -f ${pkgdir}/usr/share/kde4/services/svn*
+
+#removing $srcdir reference
+ rm -rf ${pkgdir}/usr/share/doc
+}
diff --git a/community/kdesvn/kdesvn.changelog b/community/kdesvn/kdesvn.changelog
new file mode 100644
index 000000000..c2309dab2
--- /dev/null
+++ b/community/kdesvn/kdesvn.changelog
@@ -0,0 +1,54 @@
+2010-09-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5.5
+
+2010-04-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5.3
+
+2010-01-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5.1
+
+2010-01-11 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5.0
+
+2009-10-01 Biru Ionut <ionut@archlinux.ro>
+ * Update to major release 1.4.1
+
+2009-07-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.3.2
+
+2009-05-30 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.3.1
+
+2009-05-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#14602 fixed in 1.3.0-2
+
+2009-04-30 Biru Ionut <biru.ionut@gmail.com>
+ * rebuild for x86_64 #FS14506
+
+2009-04-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.3.0
+
+2009-02-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.2.4
+
+2009-01-24 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.2.3
+
+2008-11-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.2.2
+
+2008-10-08 Eric Belanger <eric@archlinux.org>
+ * Removed unneede file sourcing
+
+2008-10-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Removed conflicting files in 1.2.1-2
+ * The one provided with kdesdk are more complete.
+
+2008-10-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.2.1 - KDE4 version
+
+2008-09-23 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.2
+
+2008-08-31 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.1
diff --git a/community/kdesvn/kdesvn.install b/community/kdesvn/kdesvn.install
new file mode 100644
index 000000000..b711352cb
--- /dev/null
+++ b/community/kdesvn/kdesvn.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/keepassx/ChangeLog b/community/keepassx/ChangeLog
new file mode 100644
index 000000000..7e326dab6
--- /dev/null
+++ b/community/keepassx/ChangeLog
@@ -0,0 +1,16 @@
+2008-12-08 Alexander Fehr <pizzapunk gmail com>
+
+ * keepassx-0.3.4-1:
+ New upstream release.
+
+2008-08-14 Alexander Fehr <pizzapunk gmail com>
+
+ * keepassx-0.3.3-1:
+ New upstream release.
+
+2008-07-31 Alexander Fehr <pizzapunk gmail com>
+
+ * keepassx-0.3.2-1:
+ New upstream release.
+ Added dependency on libxtst.
+ Added ChangeLog.
diff --git a/community/keepassx/PKGBUILD b/community/keepassx/PKGBUILD
new file mode 100644
index 000000000..0c4f81fae
--- /dev/null
+++ b/community/keepassx/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 12540 2010-03-07 20:44:50Z spupykin $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Philipp Giebel <arch@ambience-design.net>
+
+pkgname=keepassx
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="Cross platform password manager"
+arch=('i686' 'x86_64')
+url="http://www.keepassx.org/"
+license=('GPL2')
+depends=('qt' 'libxtst')
+source=(http://downloads.sourceforge.net/keepassx/keepassx-$pkgver.tar.gz)
+md5sums=('1df67bb22b2e08df49f09e61d156f508')
+
+build() {
+ cd "$srcdir/keepassx-$pkgver"
+
+ qmake PREFIX=/usr || return 1
+ make || return 1
+ make INSTALL_ROOT="$pkgdir" install || return 1
+}
diff --git a/community/keysafe/PKGBUILD b/community/keysafe/PKGBUILD
new file mode 100644
index 000000000..769cf6a6e
--- /dev/null
+++ b/community/keysafe/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 30798 2010-10-21 09:25:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Magnus Therning <magnus@therning.org>
+
+pkgname=keysafe
+pkgver=0.5
+pkgrel=1
+pkgdesc="A safe place to keep your passwords"
+arch=('i686' 'x86_64')
+url="http://therning.org/magnus/computer/keysafe/"
+license=('GPL')
+depends=('gnome-python' 'boost-libs' 'botan')
+makedepends=('boost' 'cython')
+install=keysafe.install
+options=(force !libtool !emptydirs)
+source=($pkgname-$pkgver.tar.gz::http://github.com/magthe/keysafe/tarball/v$pkgver)
+md5sums=('f21921888a5ea5483dd849e2a5ed924d')
+
+build() {
+ cd ${srcdir}/magthe-keysafe*
+ ./waf configure --prefix=/usr
+ ./waf build
+}
+
+package() {
+ cd ${srcdir}/magthe-keysafe*
+ ./waf --destdir=${pkgdir} install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/usr/etc/gconf/schemas/*.schemas
+}
diff --git a/community/keysafe/keysafe.install b/community/keysafe/keysafe.install
new file mode 100644
index 000000000..b650e8e97
--- /dev/null
+++ b/community/keysafe/keysafe.install
@@ -0,0 +1,22 @@
+pkgname=keysafe
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/community/kgraphviewer/PKGBUILD b/community/kgraphviewer/PKGBUILD
new file mode 100644
index 000000000..916b5282d
--- /dev/null
+++ b/community/kgraphviewer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 32581 2010-11-14 21:49:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kgraphviewer
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="A Graphviz dot graph file viewer for KDE"
+arch=('i686' 'x86_64')
+url='http://opendesktop.org/content/show.php?content=23999'
+license=('GPL' 'FDL')
+depends=('kdebase-runtime' 'kdepimlibs' 'graphviz')
+makedepends=('cmake' 'automoc4' 'boost' 'docbook-xsl')
+install="${pkgname}.install"
+source=("https://api.opensuse.org/public/source/home:milianw:kdeapps/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('6cc548221d8a741d13929993615c00f3')
+
+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/community/kgraphviewer/kgraphviewer.install b/community/kgraphviewer/kgraphviewer.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/kgraphviewer/kgraphviewer.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/community/kid3/PKGBUILD b/community/kid3/PKGBUILD
new file mode 100644
index 000000000..7b03c3c8a
--- /dev/null
+++ b/community/kid3/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 40017 2011-02-19 14:10:28Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+
+pkgname=kid3
+pkgver=1.6
+pkgrel=1
+pkgdesc="An MP3, Ogg/Vorbis and FLAC tag editor for KDE"
+arch=('i686' 'x86_64')
+url="http://kid3.sourceforge.net/"
+license=('GPL')
+depends=('id3lib' 'kdelibs' 'tunepimp')
+makedepends=('automoc4' 'cmake' 'docbook-xml' 'docbook-xsl')
+options=('!makeflags')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('974208d5545a9a2bb192dc1a3cfaa64f2269d4f7001d150255ce3f3a3f6723c2')
+
+build() {
+ cd ${srcdir}
+
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/kid3/kid3.changelog b/community/kid3/kid3.changelog
new file mode 100644
index 000000000..d3f588ba6
--- /dev/null
+++ b/community/kid3/kid3.changelog
@@ -0,0 +1,20 @@
+2011-02-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kid3 1.6
+
+2010-09-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.5
+
+2010-03-13 Andrea Scarpino <andrea@archlinux.org>
+ * Update to major release v1.4
+ * MP4V2 enabled
+ * Cleanup dependencies
+
+2010-01-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.3
+ * MP4V2 disabled, package in [extra] needs to be updated to be used with kid3
+
+2009-04-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.2
+
+2008-10-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.1
diff --git a/community/kid3/kid3.install b/community/kid3/kid3.install
new file mode 100644
index 000000000..1c0de2e4f
--- /dev/null
+++ b/community/kid3/kid3.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/community/kim4/PKGBUILD b/community/kim4/PKGBUILD
new file mode 100644
index 000000000..795ee47f5
--- /dev/null
+++ b/community/kim4/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: raku <raczkow@gmail.com>
+
+pkgname=kim4
+pkgver=0.9.5
+pkgrel=3
+pkgdesc="Kde Image Menu to compress, resize, convert, rename and much more"
+arch=(i686 x86_64)
+url="http://www.kde-apps.org/content/show.php?content=11505"
+license=('GPL')
+depends=('imagemagick' 'kdebase-dolphin')
+source=(http://bouveyron.free.fr/kim/release/$pkgname-$pkgver.tar.gz)
+md5sums=('c7934ab0dbf988da5f60d9c4cbf97dd5')
+
+build() {
+ cd ${srcdir}/${pkgname}/src
+
+ install -d ${pkgdir}/usr/share/kde4/services/ServiceMenus
+ install -Dm644 kim_{compressandresize,convertandrotate,publication}.desktop \
+ ${pkgdir}/usr/share/kde4/services/ServiceMenus || return 1
+ install -d ${pkgdir}/usr/bin
+ install -Dm755 bin/kim_{album,compress,convert,flipflop,galery,multiburst,other,pelemele} \
+ bin/kim_{print,record,record_mpg,rename,resize,resizeandsend,rotate,rotatewithexif} \
+ bin/kim_{slideshow,sortbydate,treatment,webexport} ${pkgdir}/usr/bin/ || return 1
+ install -d ${pkgdir}/usr/share/kim/slideshow
+ install -Dm644 slideshow/{dewslider.swf,index.part1,index.part2} \
+ ${pkgdir}/usr/share/kim/slideshow || return 1
+ install -d ${pkgdir}/usr/share/kim/gallery
+ install -Dm644 gallery/{index.part1,index.part2} \
+ ${pkgdir}/usr/share/kim/gallery || return 1
+}
diff --git a/community/kiwi/ChangeLog b/community/kiwi/ChangeLog
new file mode 100644
index 000000000..0574c29ff
--- /dev/null
+++ b/community/kiwi/ChangeLog
@@ -0,0 +1,36 @@
+2009-04-17 Brad Fanella <bradfanella@archlinux.us>
+
+ * Updated for i686 and x86_64: Python fixes
+
+2009-04-17 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 1.9.25
+
+2009-02-06 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 1.9.24
+
+2008-11-04 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for python 2.6
+
+2008-06-25 Mateusz Herych <heniekk@gmail.com>
+
+ * Updated for x86_64 - 1.9.22
+
+2008-06-25 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated for i686 - 1.9.22
+
+2008-06-02 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated for i686 - 1.9.21
+
+2008-02-17 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated to newer version - 1.9.20
+
+2007-12-19 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated to newer version - 1.9.19
+
diff --git a/community/kiwi/PKGBUILD b/community/kiwi/PKGBUILD
new file mode 100644
index 000000000..bd02fe205
--- /dev/null
+++ b/community/kiwi/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 26968 2010-09-16 03:55:06Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=kiwi
+pkgver=1.9.26
+pkgrel=3
+pkgdesc="A set of classes and wrappers for PyGTK"
+arch=('i686' 'x86_64')
+url="http://www.async.com.br/projects/kiwi"
+license=("LGPL")
+depends=('pygtk')
+makedepends=('gettext')
+source=(http://download.gnome.org/sources/$pkgname/1.9/$pkgname-$pkgver.tar.bz2)
+md5sums=('43c2aab9acf8d95321ee1ccec2c5e4e4')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # python2 fix
+ for file in bin/{kiwi-i18n,kiwi-ui-test} setup.py; do
+ echo "Applying python2 fix for ${file}"
+ sed -i 's_/usr/bin/env python_/usr/bin/env python2_' ${file}
+ done
+
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/klavaro/PKGBUILD b/community/klavaro/PKGBUILD
new file mode 100644
index 000000000..a451abb80
--- /dev/null
+++ b/community/klavaro/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 43686 2011-03-29 05:52:51Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=klavaro
+pkgver=1.9.0
+pkgrel=1
+pkgdesc="Free touch typing tutor program"
+arch=('i686' 'x86_64')
+url="http://klavaro.sourceforge.net/"
+license=('GPL2')
+depends=('curl' 'gtkdatabox' 'hicolor-icon-theme')
+makedepends=('intltool')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('e6ad9c7b3d9b3060f32441b04aa9c632')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+
+ sed -i 's|/usr/share/icons/hicolor/24x24/apps/klavaro.png|klavaro|' \
+ "$pkgdir"/usr/share/applications/$pkgname.desktop
+}
diff --git a/community/klavaro/klavaro.install b/community/klavaro/klavaro.install
new file mode 100644
index 000000000..881feae71
--- /dev/null
+++ b/community/klavaro/klavaro.install
@@ -0,0 +1,10 @@
+post_install() {
+ gtk-update-icon-cache -f /usr/share/icons/hicolor/
+}
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/kleansweep/ChangeLog b/community/kleansweep/ChangeLog
new file mode 100644
index 000000000..d8e35c402
--- /dev/null
+++ b/community/kleansweep/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-25 Georg Grabler (STiAT) <ggrabler@gmail.com>
+* Added libtool option
diff --git a/community/kleansweep/PKGBUILD b/community/kleansweep/PKGBUILD
new file mode 100644
index 000000000..b16dfc337
--- /dev/null
+++ b/community/kleansweep/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 40230 2011-02-22 02:27:36Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Guillermo A. Amaral <me@guillermoamaral.com>
+
+pkgname=kleansweep
+pkgver=0.2.9
+pkgrel=4
+pkgdesc="Allows you to reclaim disk space by finding unneeded files"
+license=("GPL")
+url="http://linux.bydg.org/~yogin/"
+arch=(i686 x86_64)
+depends=('kdelibs3' 'python')
+makedepends=('scons')
+options=('libtool')
+source=(http://linux-projects.net/d/kleansweep-$pkgver.tar.gz
+ kubuntu_03_fix_scons_chmod_error.patch)
+md5sums=('25fea364644590acd23fe766506e0b92'
+ 'bebb833313fc184848b5fef77a7cb310')
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/kubuntu_03_fix_scons_chmod_error.patch
+ [ $NOEXTRACT -eq 1 ] || ./configure
+ scons
+ scons install DESTDIR=$pkgdir
+}
diff --git a/community/kleansweep/kubuntu_03_fix_scons_chmod_error.patch b/community/kleansweep/kubuntu_03_fix_scons_chmod_error.patch
new file mode 100644
index 000000000..4e6495016
--- /dev/null
+++ b/community/kleansweep/kubuntu_03_fix_scons_chmod_error.patch
@@ -0,0 +1,23 @@
+diff -Nur -x '*.orig' -x '*~' kleansweep-0.2.9/admin/generic.py kleansweep-0.2.9.new/admin/generic.py
+--- kleansweep-0.2.9/admin/generic.py 2008-02-15 02:59:29.000000000 +0100
++++ kleansweep-0.2.9.new/admin/generic.py 2008-02-15 03:00:49.278304972 +0100
+@@ -244,7 +244,8 @@
+ ret=self.env.Program(self.p_localtarget, self.p_localsource)
+ if not self.env.has_key('NOAUTOINSTALL'):
+ ins=self.env.bksys_install(self.instdir, ret)
+- if self.perms: self.env.AddPostAction(ins, self.env.Chmod(ins, self.perms))
++ if ins and self.perms:
++ for i in ins: self.env.AddPostAction(ins, self.env.Chmod(str(i), self.perms))
+ elif self.type=='staticlib':
+ ret=self.env.StaticLibrary(self.p_localtarget, self.p_localsource)
+
+@@ -462,7 +463,8 @@
+ if not destfile: install_list = env.Install(lenv.join(basedir,subdir), lenv.make_list(files))
+ elif subdir: install_list = env.InstallAs(lenv.join(basedir,subdir,destfile), lenv.make_list(files))
+ else: install_list = env.InstallAs(lenv.join(basedir,destfile), lenv.make_list(files))
+- if perms and install_list: lenv.AddPostAction(install_list, lenv.Chmod(install_list, perms))
++ if perms and install_list:
++ for i in install_list: lenv.AddPostAction(install_list, lenv.Chmod(str(i), perms))
+ env.Alias('install', install_list)
+ return install_list
+
diff --git a/community/kmess/PKGBUILD b/community/kmess/PKGBUILD
new file mode 100644
index 000000000..824d2ff72
--- /dev/null
+++ b/community/kmess/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 40761 2011-02-26 15:04:42Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Stefano Zamprogno <stefano.zamprogno@gmail.com>
+
+pkgname=kmess
+pkgver=2.0.6.1
+pkgrel=2
+pkgdesc="KMess is a MSN Messenger client for Linux."
+arch=('i686' 'x86_64')
+url="http://kmess.sourceforge.net/"
+license=('GPL')
+depends=('kdebase-lib')
+makedepends=('automoc4' 'cmake' 'docbook-xsl')
+optdepends=('cabextract: provides winks support')
+install=kmess.install
+source=(http://downloads.sourceforge.net/sourceforge/kmess/kmess-$pkgver.tar.bz2)
+md5sums=('bc960c0bacb38be6dc118a2d2a6e69a6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/community/kmess/kmess.install b/community/kmess/kmess.install
new file mode 100644
index 000000000..c5571196e
--- /dev/null
+++ b/community/kmess/kmess.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/kmymoney/PKGBUILD b/community/kmymoney/PKGBUILD
new file mode 100644
index 000000000..64aed53d8
--- /dev/null
+++ b/community/kmymoney/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 40038 2011-02-19 15:18:41Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Vamp898 <vamp898@web.de>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Todd Maynard <arch@toddmaynard.com>
+
+pkgname=kmymoney
+pkgver=4.5.3
+pkgrel=1
+pkgdesc="Personal finance manager for KDE which operates similarly to MS-Money or Quicken"
+arch=('i686' 'x86_64')
+url="http://kmymoney2.sourceforge.net/"
+license=('GPL')
+depends=('boost' 'kdebase-workspace' 'shared-mime-info' 'aqbanking' 'libofx')
+makedepends=('cmake' 'automoc4' 'docbook-xml' 'docbook-xsl' 'gwenhywfar')
+replaces=('kmymoney2')
+install=$pkgname.install
+changelog=$pkgname.changelog
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/project/kmymoney2/KMyMoney-KDE4/$pkgver/$pkgname-$pkgver.tar.bz2)
+sha256sums=('a9b37275cf3cdcd5ce865d94391df44c7822639b830fccb9962a54b7fcf76ffb')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/kmymoney/kmymoney.changelog b/community/kmymoney/kmymoney.changelog
new file mode 100644
index 000000000..bd8d49e3c
--- /dev/null
+++ b/community/kmymoney/kmymoney.changelog
@@ -0,0 +1,25 @@
+2011-02-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kmymoney 4.5.3
+
+2010-12-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kmymoney 4.5.2
+
+2010-10-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * kmymoney 4.5.1
+ * Added aqbanking dependency
+
+2010-08-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 4.5
+ * Package renamed to 'kmymoney'
+
+2010-05-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.5
+
+2010-04-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.4
+
+2010-04-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#18974 broken OFX imported fixed in 1.0.3-2
+
+2010-03-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.0.3
diff --git a/community/kmymoney/kmymoney.install b/community/kmymoney/kmymoney.install
new file mode 100644
index 000000000..7c8a8bd2b
--- /dev/null
+++ b/community/kmymoney/kmymoney.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/knemo/PKGBUILD b/community/knemo/PKGBUILD
new file mode 100644
index 000000000..0e8662c8b
--- /dev/null
+++ b/community/knemo/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 44066 2011-04-01 20:42:30Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Stefano Zamprogno <stefano dot zamprogno at gmail dot com>
+
+pkgname=knemo
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="The KDE Network Monitor"
+arch=('i686' 'x86_64')
+url="http://www.kde-apps.org/content/show.php?content=12956"
+license=('GPL')
+depends=('kdebase-workspace' 'wireless_tools' 'iw')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+options=('libtool')
+source=("http://www.kde-apps.org/CONTENT/content-files/12956-${pkgname}-${pkgver}.tar.bz2")
+md5sums=('e9a129917dfc6515c992ee1de3c08c16')
+
+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
+
+ # remove knemo autostart
+ rm -rf ${pkgdir}/usr/share/autostart
+}
diff --git a/community/knemo/knemo.install b/community/knemo/knemo.install
new file mode 100644
index 000000000..0fbb3047a
--- /dev/null
+++ b/community/knemo/knemo.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/kovpn/ChangeLog b/community/kovpn/ChangeLog
new file mode 100644
index 000000000..d8e35c402
--- /dev/null
+++ b/community/kovpn/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-25 Georg Grabler (STiAT) <ggrabler@gmail.com>
+* Added libtool option
diff --git a/community/kovpn/PKGBUILD b/community/kovpn/PKGBUILD
new file mode 100644
index 000000000..17d94f120
--- /dev/null
+++ b/community/kovpn/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 9444 2010-01-25 14:13:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+
+pkgname=kovpn
+pkgver=0.3pre7
+_pkgver=0.3.pre7
+pkgrel=4
+pkgdesc="An OpenVPN client management interface for KDE"
+arch=('i686' 'x86_64')
+url="http://www.kde-apps.org/content/show.php?content=37043"
+license=('GPL')
+depends=('openvpn' 'kdelibs3' 'xdg-utils')
+makedepends=('automake' 'autoconf')
+options=('libtool')
+install=kovpn.install
+source=("http://projects.fslab.de/projects/kovpn/chrome/site/kovpn-${_pkgver}.tar.bz2"
+ "kovpn-disable-dcop.patch::http://bugs.archlinux.org/task/15464?getfile=4173"
+ 'traywindow_x86_64.patch')
+md5sums=('19b61cf9f84088baffbd5bb0a287422c'
+ '21171b74f76289daea1cc61eedaa4dba'
+ 'bf6218bf2686b6fe41874d5df4e71d63')
+
+build() {
+ cd $startdir/src/$pkgname-$_pkgver
+
+ . /etc/profile.d/qt3.sh
+ export PATH=$QTDIR/bin:$PATH
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+
+ patch -Np1 -i ../kovpn-disable-dcop.patch
+
+ [ "$CARCH" = "x86_64" ] && patch -Np0 -i ../traywindow_x86_64.patch
+ sed -i 's#automake\*1.10\*#automake*1.10* | automake*1.11*#' admin/cvs.sh
+
+ make -f admin/Makefile.common cvs
+ ./configure --prefix=/opt/kde --without-arts --with-qt-dir=/opt/qt
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+}
diff --git a/community/kovpn/kovpn.install b/community/kovpn/kovpn.install
new file mode 100644
index 000000000..b4ee8556f
--- /dev/null
+++ b/community/kovpn/kovpn.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community/kovpn/traywindow_x86_64.patch b/community/kovpn/traywindow_x86_64.patch
new file mode 100644
index 000000000..8c50d425a
--- /dev/null
+++ b/community/kovpn/traywindow_x86_64.patch
@@ -0,0 +1,20 @@
+--- src/traywindow.cpp.orig 2006-07-23 13:26:21.236380500 +0100
++++ src/traywindow.cpp 2006-07-23 13:26:38.625467250 +0100
+@@ -107,7 +107,7 @@
+ delete mDisconnectMenuItems[ manager->id() ];
+
+ /* I think (int) manager is unique and static enough to be used as id for the menu */
+- mContextMenu->removeItem( ( int ) manager );
++ mContextMenu->removeItem( ( long ) manager );
+ mManagerMenus.remove( manager->id() );
+ mOvpnManagers.remove( manager );
+ }
+@@ -125,7 +125,7 @@
+
+ mManagerMenus[ manager->id() ] = new KPopupMenu( mContextMenu );
+ /* I think (int) manager is unique and static enough to be used as id for the menu */
+- mContextMenu->insertItem( manager->id() , mManagerMenus[ manager->id() ] , ( int ) manager, 5 );
++ mContextMenu->insertItem( manager->id() , mManagerMenus[ manager->id() ] , ( long ) manager, 5 );
+
+ mManagerMenus[ manager->id() ] ->insertTitle( i18n( "Status: Unavailable" ), 0 );
+
diff --git a/community/kphotoalbum/PKGBUILD b/community/kphotoalbum/PKGBUILD
new file mode 100644
index 000000000..b67331464
--- /dev/null
+++ b/community/kphotoalbum/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id$
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Gilles CHAUVIN <gcnweb ][ gmail ? com>
+# Contributor: Jonathan Schaeffer <joschaeffer ][ gmail ? com>
+# Contributor: chfoxli <lg ][ romandie ? com>
+
+pkgname=kphotoalbum
+pkgver=4.1.1
+pkgrel=8
+pkgdesc="KDE Photo Album, picture collection manager"
+url="http://www.kphotoalbum.org/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('kdebase-runtime' 'kdegraphics-libs')
+makedepends=('cmake' 'automoc4' 'kdeedu-marble' 'kipi-plugins>=1.8.0' 'kdemultimedia-mplayerthumbs' 'docbook-xsl')
+optdepends=('kdeedu-marble: integration with Marble'
+ 'kipi-plugins: add extra functionality'
+ 'kdemultimedia-mplayerthumbs: video thumbnails')
+install=${pkgname}.install
+source=("http://www.kphotoalbum.org/data/download/${pkgname}-${pkgver}.tar.bz2"
+ 'fix-docbook-build.patch'
+ 'fix-with-exiv2-0.21.patch')
+md5sums=('c00a5f179e487ac89fccf8dfb3cd6ef0'
+ '1b48553af74f0488fdad55758e911e3a'
+ '9238101a2d7450e6dd822778807dd7bd')
+
+build() {
+ cd ${srcdir}
+
+ patch -Np0 -i ${srcdir}/fix-docbook-build.patch
+ patch -Np0 -i ${srcdir}/fix-with-exiv2-0.21.patch
+
+ rm -rf build && 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/community/kphotoalbum/fix-docbook-build.patch b/community/kphotoalbum/fix-docbook-build.patch
new file mode 100644
index 000000000..575a4271e
--- /dev/null
+++ b/community/kphotoalbum/fix-docbook-build.patch
@@ -0,0 +1,236 @@
+diff -up kphotoalbum-4.1.1/doc/index.docbook.docbook_fix kphotoalbum-4.1.1/doc/index.docbook
+--- kphotoalbum-4.1.1/doc/index.docbook.docbook_fix 2009-11-15 15:16:29.000000000 -0600
++++ kphotoalbum-4.1.1/doc/index.docbook 2010-06-13 13:03:02.815174744 -0500
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kphotoalbum "<application>KPhotoAlbum</application>">
+ <!ENTITY kappname "&kphotoalbum;">
+ <!ENTITY package "kdeextragear-2">
+@@ -41,12 +41,6 @@
+ <date>2004-08-06</date>
+ <releaseinfo>2.0</releaseinfo>
+
+- <keywordset>
+- <keyword>KDE</keyword>
+- <keyword>kdeextragear-2</keyword>
+- <keyword>KPhotoAlbum</keyword>
+- <keyword>Image Database</keyword>
+- </keywordset>
+ <abstract><para>
+ This is the user manual for &kphotoalbum;. If you are
+ not the type who likes reading documentation, but rather just want to try
+@@ -64,6 +58,12 @@ menu and select <guimenuitem>Run &kphoto
+ on long HTML document at <ulink
+ url="http://www.kphotoalbum.org/">&kphotoalbum;'s Homepage</ulink></para>
+ </abstract>
++ <keywordset>
++ <keyword>KDE</keyword>
++ <keyword>kdeextragear-2</keyword>
++ <keyword>KPhotoAlbum</keyword>
++ <keyword>Image Database</keyword>
++ </keywordset>
+ </bookinfo>
+
+ &introduction;
+diff -up kphotoalbum-4.1.1/doc-translations/de_kphotoalbum/kphotoalbum/index.docbook.docbook_fix kphotoalbum-4.1.1/doc-translations/de_kphotoalbum/kphotoalbum/index.docbook
+--- kphotoalbum-4.1.1/doc-translations/de_kphotoalbum/kphotoalbum/index.docbook.docbook_fix 2009-11-15 15:17:07.000000000 -0600
++++ kphotoalbum-4.1.1/doc-translations/de_kphotoalbum/kphotoalbum/index.docbook 2010-06-13 13:10:06.145165665 -0500
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kphotoalbum "<application
+ >KPhotoAlbum</application
+ >">
+@@ -65,16 +65,6 @@
+ <releaseinfo
+ >2.0</releaseinfo>
+
+- <keywordset>
+- <keyword
+->KDE</keyword>
+- <keyword
+->kdeextragear-2</keyword>
+- <keyword
+->KPhotoAlbum</keyword>
+- <keyword
+->Bilddatenbank</keyword>
+- </keywordset>
+ <abstract
+ ><para
+ >Dies ist das Benutzerhandbuch für &kphotoalbum;. Wenn Sie nicht gerne Handbücher lesen, sondern lieber gleich Funktionen ausprobieren möchten, haben Sie folgende Alternativen zu diesem Handbuch: <itemizedlist>
+@@ -102,6 +92,12 @@
+ >HTML</acronym
+ >-Dokument zum Herunterladen.</para>
+ </abstract>
++ <keywordset>
++ <keyword>KDE</keyword>
++ <keyword>kdeextragear-2</keyword>
++ <keyword>KPhotoAlbum</keyword>
++ <keyword>Bilddatenbank</keyword>
++ </keywordset>
+ </bookinfo>
+
+ &introduction;
+diff -up kphotoalbum-4.1.1/doc-translations/et_kphotoalbum/kphotoalbum/index.docbook.docbook_fix kphotoalbum-4.1.1/doc-translations/et_kphotoalbum/kphotoalbum/index.docbook
+--- kphotoalbum-4.1.1/doc-translations/et_kphotoalbum/kphotoalbum/index.docbook.docbook_fix 2009-11-15 15:17:20.000000000 -0600
++++ kphotoalbum-4.1.1/doc-translations/et_kphotoalbum/kphotoalbum/index.docbook 2010-06-13 13:11:18.860165964 -0500
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kphotoalbum "<application
+ >KPhotoAlbum</application
+ >">
+@@ -65,16 +65,6 @@
+ <releaseinfo
+ >2.0</releaseinfo>
+
+- <keywordset>
+- <keyword
+->KDE</keyword>
+- <keyword
+->kdeextragear-2</keyword>
+- <keyword
+->KPhotoAlbum</keyword>
+- <keyword
+->Piltide andmebaas</keyword>
+- </keywordset>
+ <abstract
+ ><para
+ >See on &kphotoalbum;i käsiraamat. Kui sa ei armasta eriti käsiraamatuid lugeda, vaid soovid lihtsalt proovida, mis mida teeb, siis on sinu ees lahti mitu võimalust: <itemizedlist>
+@@ -100,6 +90,12 @@
+ >&kphotoalbum;i koduleheküljelt</ulink
+ >.</para>
+ </abstract>
++ <keywordset>
++ <keyword>KDE</keyword>
++ <keyword>kdeextragear-2</keyword>
++ <keyword>KPhotoAlbum</keyword>
++ <keyword>Piltide andmebaas</keyword>
++ </keywordset>
+ </bookinfo>
+
+ &introduction;
+diff -up kphotoalbum-4.1.1/doc-translations/it_kphotoalbum/kphotoalbum/index.docbook.docbook_fix kphotoalbum-4.1.1/doc-translations/it_kphotoalbum/kphotoalbum/index.docbook
+--- kphotoalbum-4.1.1/doc-translations/it_kphotoalbum/kphotoalbum/index.docbook.docbook_fix 2009-11-15 15:17:57.000000000 -0600
++++ kphotoalbum-4.1.1/doc-translations/it_kphotoalbum/kphotoalbum/index.docbook 2010-06-13 13:12:00.978165382 -0500
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kphotoalbum "<application
+ >KPhotoAlbum</application
+ >">
+@@ -65,16 +65,6 @@
+ <releaseinfo
+ >2.0</releaseinfo>
+
+- <keywordset>
+- <keyword
+->KDE</keyword>
+- <keyword
+->kdeextragear-2</keyword>
+- <keyword
+->KPhotoAlbum</keyword>
+- <keyword
+->Banca dati immagini</keyword>
+- </keywordset>
+ <abstract
+ ><para
+ >Questo è il manuale utente di &kphotoalbum;. Se non sei il tipo a cui piace leggere la documentazione, ma che preferisce provare a far funzionare le cose, eccoti delle alternative: <itemizedlist>
+@@ -100,6 +90,12 @@
+ >homepage di &kphotoalbum;</ulink
+ ></para>
+ </abstract>
++ <keywordset>
++ <keyword>KDE</keyword>
++ <keyword>kdeextragear-2</keyword>
++ <keyword>KPhotoAlbum</keyword>
++ <keyword>Banca dati immagini</keyword>
++ </keywordset>
+ </bookinfo>
+
+ &introduction;
+diff -up kphotoalbum-4.1.1/doc-translations/sv_kphotoalbum/kphotoalbum/index.docbook.docbook_fix kphotoalbum-4.1.1/doc-translations/sv_kphotoalbum/kphotoalbum/index.docbook
+--- kphotoalbum-4.1.1/doc-translations/sv_kphotoalbum/kphotoalbum/index.docbook.docbook_fix 2009-11-15 15:19:13.000000000 -0600
++++ kphotoalbum-4.1.1/doc-translations/sv_kphotoalbum/kphotoalbum/index.docbook 2010-06-13 13:12:45.765165840 -0500
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kphotoalbum "<application
+ >KPhotoAlbum</application
+ >">
+@@ -65,16 +65,6 @@
+ <releaseinfo
+ >2.0</releaseinfo>
+
+- <keywordset>
+- <keyword
+->KDE</keyword>
+- <keyword
+->kdeextragear-2</keyword>
+- <keyword
+->Kfotoalbum</keyword>
+- <keyword
+->Bilddatabas</keyword>
+- </keywordset>
+ <abstract
+ ><para
+ >Det här är användarmanualen för Kfotoalbum. Om du inte är den som gillar att läsa dokumentation, utan istället bara vill försöka dig på saker och ting, ges här några alternativ: <itemizedlist>
+@@ -100,6 +90,12 @@
+ >Kfotoalbums hemsida</ulink
+ ></para>
+ </abstract>
++ <keywordset>
++ <keyword>KDE</keyword>
++ <keyword>kdeextragear-2</keyword>
++ <keyword>Kfotoalbum</keyword>
++ <keyword>Bilddatabas</keyword>
++ </keywordset>
+ </bookinfo>
+
+ &introduction;
+diff -up kphotoalbum-4.1.1/doc-translations/uk_kphotoalbum/kphotoalbum/index.docbook.docbook_fix kphotoalbum-4.1.1/doc-translations/uk_kphotoalbum/kphotoalbum/index.docbook
+--- kphotoalbum-4.1.1/doc-translations/uk_kphotoalbum/kphotoalbum/index.docbook.docbook_fix 2009-11-15 15:19:26.000000000 -0600
++++ kphotoalbum-4.1.1/doc-translations/uk_kphotoalbum/kphotoalbum/index.docbook 2010-06-13 13:13:28.217166055 -0500
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kphotoalbum "<application
+ >KPhotoAlbum</application
+ >">
+@@ -65,16 +65,6 @@
+ <releaseinfo
+ >2.0</releaseinfo>
+
+- <keywordset>
+- <keyword
+->KDE</keyword>
+- <keyword
+->kdeextragear-2</keyword>
+- <keyword
+->KPhotoAlbum</keyword>
+- <keyword
+->База даних зображень</keyword>
+- </keywordset>
+ <abstract
+ ><para
+ >Це інструкція користувача для &kphotoalbum;. Якщо ви не любитель або любителька читання документації і надаєте перевагу самостійному вивченню програми шляхом експериментів, ви можете піти одним з таких шляхів: <itemizedlist>
+@@ -100,6 +90,12 @@
+ >домашній сторінці &kphotoalbum;</ulink
+ ></para>
+ </abstract>
++ <keywordset>
++ <keyword>KDE</keyword>
++ <keyword>kdeextragear-2</keyword>
++ <keyword>KPhotoAlbum</keyword>
++ <keyword>База даних зображень</keyword>
++ </keywordset>
+ </bookinfo>
+
+ &introduction;
diff --git a/community/kphotoalbum/fix-with-exiv2-0.21.patch b/community/kphotoalbum/fix-with-exiv2-0.21.patch
new file mode 100644
index 000000000..65baf235d
--- /dev/null
+++ b/community/kphotoalbum/fix-with-exiv2-0.21.patch
@@ -0,0 +1,47 @@
+--- kphotoalbum-4.1.1/Exif/Info.cpp.orig 2010/08/16 08:04:32 1164187
++++ kphotoalbum-4.1.1/Exif/Info.cpp 2011/01/09 06:50:40 1213128
+@@ -106,6 +106,28 @@
+ return res;
+
+ QList<const Exiv2::TagInfo*> tags;
++ std::ostringstream s;
++
++#if (EXIV2_TEST_VERSION(0,21,0))
++ const Exiv2::GroupInfo* gi = Exiv2::ExifTags::groupList();
++ while (gi->tagList_ != 0) {
++ Exiv2::TagListFct tl = gi->tagList_;
++ const Exiv2::TagInfo* ti = tl();
++
++ while (ti->tag_ != 0xFFFF) {
++ tags << ti;
++ ++ti;
++ }
++ ++gi;
++ }
++
++ for (QList<const Exiv2::TagInfo*>::iterator it = tags.begin(); it != tags.end(); ++it) {
++ while ( (*it)->tag_ != 0xffff ) {
++ res.insert(QString::fromLatin1(Exiv2::ExifKey(**it).key().c_str()));
++ ++(*it);
++ }
++ }
++#else
+ tags <<
+ Exiv2::ExifTags::ifdTagList() <<
+ Exiv2::ExifTags::exifTagList() <<
+@@ -121,7 +143,6 @@
+ // Now the ugly part -- exiv2 doesn't have any way to get a list of
+ // MakerNote tags in a reasonable form, so we have to parse it from strings
+
+- std::ostringstream s;
+ for ( Exiv2::IfdId kind = Exiv2::canonIfdId; kind < Exiv2::lastIfdId;
+ kind = static_cast<Exiv2::IfdId>( kind + 1 ) ) {
+ #if EXIV2_TEST_VERSION(0,17,0)
+@@ -130,6 +151,7 @@
+ Exiv2::ExifTags::makerTaglist( s, kind );
+ #endif
+ }
++#endif
+
+ // IPTC tags use yet another format...
+ Exiv2::IptcDataSets::dataSetList( s );
diff --git a/community/kphotoalbum/kphotoalbum.install b/community/kphotoalbum/kphotoalbum.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/kphotoalbum/kphotoalbum.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/community/kpovmodeler/PKGBUILD b/community/kpovmodeler/PKGBUILD
new file mode 100644
index 000000000..e874a0c30
--- /dev/null
+++ b/community/kpovmodeler/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 27553 2010-09-25 08:31:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kpovmodeler
+pkgver=1.1.3
+_kdever=4.1.1
+pkgrel=3
+pkgdesc="A graphical editor for povray scenes"
+arch=('i686' 'x86_64')
+url='http://kpovmodeler.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime' 'povray')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+options=('docs')
+install=${pkgname}.install
+source=("http://kpovmodeler.org/files/${pkgname}-${pkgver}-kde${_kdever}.tar.bz2")
+md5sums=('aee8461cc813bb8e21ece3339c677288')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver}-kde${_kdever} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/kpovmodeler/kpovmodeler.install b/community/kpovmodeler/kpovmodeler.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/kpovmodeler/kpovmodeler.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/community/krecipes/PKGBUILD b/community/krecipes/PKGBUILD
new file mode 100644
index 000000000..fb2fa4336
--- /dev/null
+++ b/community/krecipes/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: shamrok <szamrok@gmail.com>
+# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
+# Contributor: Adrià Arrufat <swiftscythe@gmail.com>
+
+pkgname=krecipes
+pkgver=2.0beta2
+_pkgver=2.0-beta2
+pkgrel=1
+pkgdesc="A tool designed to make organizing your personal recipes collection fast and easy"
+arch=('i686' 'x86_64')
+url="http://extragear.kde.org/apps/krecipes/"
+license=('GPL')
+depends=('kdebase-runtime' 'qimageblitz' 'hicolor-icon-theme')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+optdepends=('mysql' 'postgresql')
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${_pkgver}.tar.gz)
+md5sums=('4c01ccad7ad1409cb35c824a61250fe2')
+
+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/community/krecipes/krecipes.install b/community/krecipes/krecipes.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/community/krecipes/krecipes.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/community/krename/PKGBUILD b/community/krename/PKGBUILD
new file mode 100644
index 000000000..0c2f94c88
--- /dev/null
+++ b/community/krename/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 40347 2011-02-23 07:59:53Z ebelanger $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=krename
+pkgver=4.0.7
+pkgrel=1
+pkgdesc="A very powerfull batch file renamer for KDE"
+arch=('i686' 'x86_64')
+url="http://www.krename.net"
+license=('GPL')
+depends=('kdelibs' 'taglib' 'xdg-utils')
+makedepends=('cmake' 'automoc4')
+options=('libtool')
+install=krename.install
+source=(http://downloads.sourceforge.net/project/krename/KDE4%20krename-stable/${pkgver}/${pkgname}-${pkgver}.tar.bz)
+md5sums=('afcf877b55395b35cd58a254163fb75e')
+sha1sums=('c53d1819247a88bc4f49d52936f1e2bc7fa9850d')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/krename/krename.install b/community/krename/krename.install
new file mode 100644
index 000000000..1c0de2e4f
--- /dev/null
+++ b/community/krename/krename.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/community/ksniffer/PKGBUILD b/community/ksniffer/PKGBUILD
new file mode 100644
index 000000000..15b8a59be
--- /dev/null
+++ b/community/ksniffer/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 8976 2010-01-23 00:53:21Z dgriffiths $
+# Maintainer: Giovanni Scafora <linuxmania@gmail.com>
+
+pkgname=ksniffer
+pkgver=0.3.2
+pkgrel=5
+pkgdesc="A sniffing application for KDE"
+arch=('i686' 'x86_64')
+url="http://www.ksniffer.org"
+license=('GPL2')
+depends=('libpcap' 'kdelibs3')
+source=(http://downloads.sourceforge.net/ksniffer/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('dee2cfc8b51d15857ee02382d2603a22')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ source /etc/profile.d/kde3.sh
+ source /etc/profile.d/qt3.sh
+ ./configure --prefix=/opt/kde --without-arts
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/ksshaskpass/PKGBUILD b/community/ksshaskpass/PKGBUILD
new file mode 100644
index 000000000..9fd126de3
--- /dev/null
+++ b/community/ksshaskpass/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: schuay <jakob.gruber@gmail.com>
+
+pkgname=ksshaskpass
+pkgver=0.5.3
+pkgrel=2
+pkgdesc='KDE4 implementation of ssh-askpass with Kwallet integration'
+url='http://www.kde-apps.org/content/show.php/Ksshaskpass?content=50971'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+provides=('x11-ssh-askpass')
+conflicts=('x11-ssh-askpass')
+source=("http://www.kde-apps.org/CONTENT/content-files/50971-$pkgname-$pkgver.tar.gz"
+ "$pkgname.sh")
+md5sums=('05dad7745e9d92b08bd86e7ab7a9540d'
+ '70396ba019ae05cc91502456f548caff')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # Remove useless desktop file.
+ rm -rf "$pkgdir/usr/share/applications"
+
+ # Documentation requires that this application is installed as /usr/bin/ssh-askpass.
+ # But this way is cleaner.
+ # Add script to profile.d to set ssh password agent to ksshasskpass.
+ install -Dm 755 $srcdir/$pkgname.sh $pkgdir/etc/profile.d/$pkgname.sh
+}
diff --git a/community/ksshaskpass/ksshaskpass.sh b/community/ksshaskpass/ksshaskpass.sh
new file mode 100644
index 000000000..6e67d0144
--- /dev/null
+++ b/community/ksshaskpass/ksshaskpass.sh
@@ -0,0 +1 @@
+test -f /usr/bin/ksshaskpass && export SSH_ASKPASS="/usr/bin/ksshaskpass"
diff --git a/community/ktechlab/PKGBUILD b/community/ktechlab/PKGBUILD
new file mode 100644
index 000000000..96f6eb0e8
--- /dev/null
+++ b/community/ktechlab/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 5614 2009-11-12 14:06:56Z spupykin $
+# Maintainer: JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+pkgname=ktechlab
+pkgver=0.3.7
+pkgrel=1
+pkgdesc="IDE for electronic circuits and microcontrollers"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/ktechlab"
+license=("GPL")
+depends=('kdelibs3' 'gputils' 'gpsim')
+makedepends=()
+source=(http://downloads.sourceforge.net/sourceforge/ktechlab/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('8e778ef8ce6d0dd4539f5532c933f6bf')
+
+build() {
+ cd ${startdir}/src/${pkgname}-$pkgver
+
+ ./configure --prefix=/opt/kde --disable-debug --without-arts
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/community/ktikz/PKGBUILD b/community/ktikz/PKGBUILD
new file mode 100644
index 000000000..380216a6d
--- /dev/null
+++ b/community/ktikz/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: linuxSEAT <--put_my_name_here--@gmail.com>
+# Contributor: Le_J <clej37 at gmail dot com>
+
+pkgname=ktikz
+pkgver=0.10
+pkgrel=2
+pkgdesc="A small application helping you to create TikZ diagrams (from the LaTeX pgf package)"
+arch=('i686' 'x86_64')
+url="http://www.hackenberger.at/blog/ktikz-editor-for-the-tikz-language/"
+license=("GPL")
+depends=('poppler-qt' 'kdelibs')
+makedepends=('automoc4' 'cmake' 'docbook-xml')
+source=("http://www.hackenberger.at/ktikz/"$pkgname"_"$pkgver".tar.gz")
+md5sums=('e8f0826cba2447250bcdcd389a71a2ac')
+install=ktikz.install
+
+build() {
+ cd "$srcdir"/"$pkgname"
+
+ # Patch conf.pri to get rid of annoying environment variables
+ egrep -v '^(DESKTOPDIR|PREFIX)' conf.pri > conf.pri.patched
+ mv -f conf.pri.patched conf.pri
+
+ sed -e 's/LRELEASECOMMAND/#LRELEASECOMMAND/' conf.pri > conf.pri.patched
+ mv -f conf.pri.patched conf.pri
+
+ sed -e 's/QMAKECOMMAND/#QMAKECOMMAND/' conf.pri > conf.pri.patched
+ mv -f conf.pri.patched conf.pri
+
+ # Make and install
+ cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`
+ make
+}
+
+package() {
+ cd "$srcdir"/"${pkgname}"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ktikz/ktikz.install b/community/ktikz/ktikz.install
new file mode 100644
index 000000000..210d1ac2b
--- /dev/null
+++ b/community/ktikz/ktikz.install
@@ -0,0 +1,14 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor > /dev/null
+ update-mime-database /usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ktoblzcheck/PKGBUILD b/community/ktoblzcheck/PKGBUILD
new file mode 100644
index 000000000..e646ae9a5
--- /dev/null
+++ b/community/ktoblzcheck/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 40241 2011-02-22 13:26:21Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Philipp Sandhaus <philipp.sandhaus@gmx.de>
+
+pkgname=ktoblzcheck
+pkgver=1.31
+pkgrel=1
+pkgdesc="A library to check account numbers and bank codes of German banks"
+arch=(i686 x86_64)
+url="http://ktoblzcheck.sourceforge.net"
+options=('!libtool')
+license=("LGPL")
+depends=('gcc-libs' 'python')
+optdepends=('perl')
+source=(http://downloads.sourceforge.net/sourceforge/ktoblzcheck/ktoblzcheck-$pkgver.tar.gz
+ ktoblzcheck-python3.patch)
+md5sums=('2bc5fd7b3d6785527f7f0ea565c35e29'
+ 'bf0d5e813aef4be426af5642ec4d524a')
+
+build() {
+ cd "$srcdir/ktoblzcheck-$pkgver"
+ ./configure --prefix=/usr
+ patch -p1 <$srcdir/ktoblzcheck-python3.patch
+ make
+}
+package() {
+ cd "$srcdir/ktoblzcheck-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ktoblzcheck/ktoblzcheck-python3.patch b/community/ktoblzcheck/ktoblzcheck-python3.patch
new file mode 100644
index 000000000..c94e0a021
--- /dev/null
+++ b/community/ktoblzcheck/ktoblzcheck-python3.patch
@@ -0,0 +1,107 @@
+diff -ur ktoblzcheck-1.28/py-compile ktoblzcheck-1.28.my/py-compile
+--- ktoblzcheck-1.28/py-compile 2008-03-11 09:29:51.000000000 +0000
++++ ktoblzcheck-1.28.my/py-compile 2010-09-20 09:09:53.000000000 +0000
+@@ -107,34 +107,30 @@
+
+ files = '''$files'''
+
+-print 'Byte-compiling python modules...'
+-for file in string.split(files):
++print('Byte-compiling python modules...')
++for file in files.split():
+ $pathtrans
+ $filetrans
+- if not os.path.exists(filepath) or not (len(filepath) >= 3
+- and filepath[-3:] == '.py'):
+- continue
+- print file,
+- sys.stdout.flush()
++ if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'):
++ continue
++ print(file, sys.stdout.flush())
+ py_compile.compile(filepath, filepath + 'c', path)
+-print" || exit $?
++print()" || exit $?
+
+ # this will fail for python < 1.5, but that doesn't matter ...
+ $PYTHON -O -c "
+ import sys, os, string, py_compile
+
+ files = '''$files'''
+-print 'Byte-compiling python modules (optimized versions) ...'
+-for file in string.split(files):
++print('Byte-compiling python modules (optimized versions) ...')
++for file in files.split():
+ $pathtrans
+ $filetrans
+- if not os.path.exists(filepath) or not (len(filepath) >= 3
+- and filepath[-3:] == '.py'):
+- continue
+- print file,
+- sys.stdout.flush()
++ if not os.path.exists(filepath) or not (len(filepath) >= 3 and filepath[-3:] == '.py'):
++ continue
++ print(file,sys.stdout.flush())
+ py_compile.compile(filepath, filepath + 'o', path)
+-print" 2>/dev/null || :
++print()" 2>/dev/null || :
+
+ # Local Variables:
+ # mode: shell-script
+diff -ur ktoblzcheck-1.28/src/python/ktoblzcheck.py ktoblzcheck-1.28.my/src/python/ktoblzcheck.py
+--- ktoblzcheck-1.28/src/python/ktoblzcheck.py 2008-08-12 16:48:54.000000000 +0000
++++ ktoblzcheck-1.28.my/src/python/ktoblzcheck.py 2010-09-20 09:08:36.000000000 +0000
+@@ -197,35 +197,35 @@
+
+ def test():
+ a = AccountNumberCheck()
+- print 'Number of Banks:', a.bankCount
+- print 'find 20010020:', a.findBank('20010020')
+- print 'find 20010033:', a.findBank('20010033')
+- print 'check 20070024/9291394:', a.check('20070024','9291394')
+- print 'check 20070024/9291394:', a.check('20070024','9291394023')
+- print
++ print('Number of Banks:', a.bankCount)
++ print('find 20010020:', a.findBank('20010020'))
++ print('find 20010033:', a.findBank('20010033'))
++ print('check 20070024/9291394:', a.check('20070024','9291394'))
++ print('check 20070024/9291394:', a.check('20070024','9291394023'))
++ print()
+ ck = IbanCheck()
+ if not kto.IbanCheck_selftest(ck): # not publicly defined
+- print "Self-Test failed!"
++ print("Self-Test failed!")
+ raise SystemExit
+ s = " iban fr14 2004 1010 0505 0001 3m02 606"
+- print "test for iban :", s
++ print("test for iban :", s)
+ iban = Iban(s)
+- print "transmission form:", iban.transmissionForm()
++ print("transmission form:", iban.transmissionForm())
+ res = ck.check(iban)
+- print "check result :", res, "("+IbanCheck.resultText(res)+")"
+- print "printable form :", iban.printableForm()
+- print
+- print "expect bad checksum:"
++ print("check result :", res, "("+IbanCheck.resultText(res)+")")
++ print("printable form :", iban.printableForm())
++ print()
++ print("expect bad checksum:")
+ s = "FR1420041010050500013X02606"
+ res = ck.check(s)
+- print s + ":", res, "("+IbanCheck.resultText(res)+")"
+- print
++ print(s + ":", res, "("+IbanCheck.resultText(res)+")")
++ print()
+ s = "IBAN DE66 2007 0024 0929 1394 00"
+- print s
++ print(s)
+ s = Iban(s).transmissionForm()
+ start, end = ck.bic_position(s)
+- print "prefix, checksum, BIC, account:"
+- print ', '.join((s[:2], s[2:4], s[start:end], s[end:].lstrip('0')))
++ print("prefix, checksum, BIC, account:")
++ print(', '.join((s[:2], s[2:4], s[start:end], s[end:].lstrip('0'))))
+
+
+ if __name__ == '__main__':
diff --git a/community/kuickshow/PKGBUILD b/community/kuickshow/PKGBUILD
new file mode 100644
index 000000000..23b1b6497
--- /dev/null
+++ b/community/kuickshow/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 33183 2010-11-22 21:37:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: sxe <sxxe@gmx.de>
+
+pkgname=kuickshow
+pkgver=0.9.1
+pkgrel=3
+pkgdesc="A very fast and convenient image viewer"
+url="http://userbase.kde.org/KuickShow"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('kdelibs' 'imlib' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'docbook-xsl')
+install=${pkgname}.install
+source=("http://hosti.leonde.de/~gis/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('ac8a7b411445fa91a3fbce76e32ee063')
+
+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/community/kuickshow/kuickshow.install b/community/kuickshow/kuickshow.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/kuickshow/kuickshow.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/community/kungfu/ChangeLog b/community/kungfu/ChangeLog
new file mode 100644
index 000000000..7fd5bbf99
--- /dev/null
+++ b/community/kungfu/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/kungfu/PKGBUILD b/community/kungfu/PKGBUILD
new file mode 100644
index 000000000..927e73ed7
--- /dev/null
+++ b/community/kungfu/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Björn Martensen <bjoern.martensen@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=kungfu
+pkgver=0.3.0
+pkgrel=3
+pkgdesc="A GStreamer based DVD ripper."
+arch=('i686' 'x86_64')
+url="https://launchpad.net/kungfu/"
+license=('GPL')
+depends=('pygtk' 'gstreamer0.10-python' 'gstreamer0.10-ffmpeg' 'dbus-python' \
+ 'gstreamer0.10-good-plugins' 'gstreamer0.10-base-plugins' 'gstreamer0.10-ugly-plugins')
+makedepends=('python2')
+source=(http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('1a398887784da4e0694afad893ce48b4')
+
+build() {
+ /bin/true
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py install --root=${pkgdir}
+ chmod 644 ${pkgdir}/usr/share/pixmaps/kungfu.svg
+ chmod 644 ${pkgdir}/usr/share/applications/kungfu.desktop
+}
diff --git a/community/kvirc/PKGBUILD b/community/kvirc/PKGBUILD
new file mode 100644
index 000000000..3316fd98a
--- /dev/null
+++ b/community/kvirc/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 42779 2011-03-20 20:19:44Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=kvirc
+pkgver=4.0.4
+pkgrel=1
+pkgdesc="Qt-based IRC client"
+url="http://www.kvirc.net"
+depends=('python2' 'esound' 'qt' 'libxss')
+optdepends=('esound: needed for snd plugin')
+arch=(i686 x86_64)
+makedepends=()
+license=('GPL')
+options=("!libtool")
+install=kvirc.install
+source=(ftp://ftp.kvirc.de/pub/kvirc/$pkgver/source/kvirc-$pkgver.tar.bz2)
+md5sums=('26fd24979ae4a29bac9309b3b0c98788')
+
+build() {
+ cd $srcdir/kvirc-$pkgver
+ [ $NOEXTRACT -eq 1 ] || cmake -DWANT_KDE4=OFF -DWANT_PERL=ON -DWANT_PHONON=OFF -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/kvirc/kvirc.install b/community/kvirc/kvirc.install
new file mode 100644
index 000000000..8f76d007f
--- /dev/null
+++ b/community/kvirc/kvirc.install
@@ -0,0 +1,13 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ true
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ true
+}
diff --git a/community/kvpnc/PKGBUILD b/community/kvpnc/PKGBUILD
new file mode 100644
index 000000000..f80a814c3
--- /dev/null
+++ b/community/kvpnc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 18438 2010-06-04 15:44:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Danial Olsen <do@meyl.fo>
+
+pkgname=kvpnc
+pkgver=0.9.6a
+pkgrel=1
+pkgdesc="KVpnc is a KDE Desktop Environment frontend for various vpn clients"
+arch=(i686 x86_64)
+url="http://home.gna.org/kvpnc/"
+license=("GPL")
+depends=('kdelibs' 'hicolor-icon-theme')
+makedepends=('cmake' 'automoc4')
+install=kvpnc.install
+options=(force)
+source=(http://download.gna.org/$pkgname/$pkgname-${pkgver}-kde4.tar.bz2)
+md5sums=('bf8b7224284f5d3f8ad5235c599fe9e7')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}-kde4
+
+ export LDFLAGS=-lX11
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/kvpnc/kvpnc.install b/community/kvpnc/kvpnc.install
new file mode 100644
index 000000000..77b839ca2
--- /dev/null
+++ b/community/kvpnc/kvpnc.install
@@ -0,0 +1,52 @@
+# arg 1: the new package version
+post_install() {
+ echo "
+You will need a vpn client, these are supported:
+-----------------------------------------------
+- vpnc >= 0.2-rm+zomb-pre9 Cisco VPN
+- FreeS/WAN (OpenS/WAN too) >= 2.x IPSec VPN Linux 2.4/2.6
+- racoon (ipsec-tools) > = 1.x IPSec VPN Linux 2.6
+- pptpclient PPTP VPN
+- OpenVPN VPN based on SSL
+
+
+======================================================
+Howto setup KVpnc for use without root password - sudo
+======================================================
+
+1. install sudo
+
+2. edit /etc/sudoers
+
+ # Cmnd alias specification
+ Cmnd_Alias KVPNC = /usr/bin/kvpnc
+
+ # User privilege specification
+ ALL ALL=NOPASSWD:KVPNC
+
+3. edit desktop link (/usr/share/applications/kde4/kvpnc.desktop)
+
+ replace the folling lines:
+
+ Exec=kvpnc
+ X-KDE-SubstituteUID=true
+
+ with:
+
+ Exec=sudo kvpnc
+ X-KDE-SubstituteUID=false
+"
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+# arg 1: the old package version
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community/kydpdict/ChangeLog b/community/kydpdict/ChangeLog
new file mode 100644
index 000000000..7ce482c7d
--- /dev/null
+++ b/community/kydpdict/ChangeLog
@@ -0,0 +1,9 @@
+2008-01-13 Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+ * Fixed man path
+
+2008-01-07 Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+ * Version 0.9.4
+ * Added Oxford sounds patch
+
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+ * Built for x86_64
diff --git a/community/kydpdict/PKGBUILD b/community/kydpdict/PKGBUILD
new file mode 100644
index 000000000..9ca4c5aa5
--- /dev/null
+++ b/community/kydpdict/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 23962 2010-08-18 13:20:20Z lcarlier $
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+
+pkgname=kydpdict
+pkgver=0.9.5
+pkgrel=1
+pkgdesc="A front-end to YDP Collins Dictionary"
+arch=('i686' 'x86_64')
+url="http://ytm.bossstation.dnsalias.org/html/kydpdict.html"
+license=('GPL')
+depends=('qt3')
+install=(kydpdict.install)
+source=(http://ytm.bossstation.dnsalias.org/src/$pkgname-$pkgver.tar.bz2 \
+ $pkgname.png $pkgname.desktop)
+md5sums=('bf8aa06d4a3bbe401d7972e01c07609d'
+ 'dee4f28a7c681292226d06ab97b39e3e'
+ 'e42aed4dde1a7f203586220d04737237')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ . /etc/profile.d/qt3.sh
+
+ tar zxf contrib/kydpdict-0.9.3-oxpwnsnd.tar.gz
+ patch -Np1 -i kydpdict-0.9.3-oxpwnsnd/kydpdict-0.9.3-pwnoxsnd.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir" install
+
+ install -D -m 644 $srcdir/$pkgname.png $pkgdir/usr/share/pixmaps/$pkgname.png
+ install -D -m 644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+ install -D -m 644 contrib/$pkgname.1 $pkgdir/usr/share/man/man1/$pkgname.1
+ install -D -m 644 contrib/$pkgname.pl.1 $pkgdir/usr/share/man/pl/man1/$pkgname.1
+
+ gcc -O2 -Wall kydpdict-0.9.3-oxpwnsnd/exwaves.c -o $pkgdir/usr/bin/exwaves
+}
diff --git a/community/kydpdict/kydpdict.desktop b/community/kydpdict/kydpdict.desktop
new file mode 100644
index 000000000..03e3d68ac
--- /dev/null
+++ b/community/kydpdict/kydpdict.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Kydpdict
+Comment=A front-end to YDP Collins Dictionary
+Exec=kydpdict
+Icon=kydpdict
+Terminal=false
+Type=Application
+Categories=Education;Office;
diff --git a/community/kydpdict/kydpdict.install b/community/kydpdict/kydpdict.install
new file mode 100644
index 000000000..f8ad27310
--- /dev/null
+++ b/community/kydpdict/kydpdict.install
@@ -0,0 +1,23 @@
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ echo
+ echo "Oxford sound files support included. Follow these steps to use it:"
+ echo "1. Copy wave.wol and wave.000 to /usr/share/kydpdict."
+ echo "2. Use exwaves to get sound files in /usr/share/kydpdict/wave."
+ echo "3. Configure kydpdict to read sounds from /usr/share/kydpdict/wave."
+ echo "4. Set mpg321 as audio player (run 'pacman -S mpg321' if you don't have it)."
+ echo "5. Remove wave.wol and wave.000."
+ echo
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install
+}
+
diff --git a/community/kydpdict/kydpdict.png b/community/kydpdict/kydpdict.png
new file mode 100644
index 000000000..b15985b80
--- /dev/null
+++ b/community/kydpdict/kydpdict.png
Binary files differ
diff --git a/community/lal/PKGBUILD b/community/lal/PKGBUILD
new file mode 100644
index 000000000..6a2f6cf38
--- /dev/null
+++ b/community/lal/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 11660 2010-02-15 16:43:23Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+
+pkgname=lal
+pkgver=1.1
+pkgrel=1
+pkgdesc="A simple dockapp to display the date and/or time"
+arch=('i686' 'x86_64')
+url="http://projects.l3ib.org/lal/"
+license=('GPL3')
+depends=('libxft' 'libxt')
+source=(http://projects.l3ib.org/$pkgname/files/$pkgname-$pkgver.tar.gz)
+md5sums=('9fc87db08a5c74a7bbab4095e0868457')
+
+build() {
+ cd ${srcdir}/$pkgname
+
+ make || return 1
+
+ install -D -m755 ${srcdir}/$pkgname/$pkgname ${pkgdir}/usr/bin/$pkgname || return 1
+ install -D -m644 ${srcdir}/$pkgname/docs/$pkgname.1 \
+ ${pkgdir}/usr/share/man/man1/$pkgname.1 || return 1
+}
diff --git a/community/lastfm-client/PKGBUILD b/community/lastfm-client/PKGBUILD
new file mode 100644
index 000000000..85f5530ac
--- /dev/null
+++ b/community/lastfm-client/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 34579 2010-12-09 22:20:48Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=lastfm-client
+pkgver=1.5.4.26862
+pkgrel=4
+pkgdesc="The Last.fm client"
+arch=('i686' 'x86_64')
+url="http://www.last.fm/tools/downloads/"
+license=('GPL')
+depends=('libpng' 'libjpeg' 'libxinerama' 'libxi' 'fontconfig' 'alsa-lib' 'libxcursor' 'libsm' 'libxrandr' 'qt' 'fftw' 'libsamplerate' 'libmad')
+optdepends=('libgpod: iPod support')
+source=(http://ftp.de.debian.org/debian/pool/main/l/lastfm/lastfm_$pkgver+dfsg.orig.tar.gz
+ lastfm.desktop
+ build-fixes.diff
+ set-firstrun-status.diff
+ set-locale.diff
+ makefile-qt45.patch
+ qt46.diff)
+md5sums=('c7991fd2636ca25e68ff476578b506a6'
+ '9c5e444704d49cff7b1dc916f290bad0'
+ 'ae0e4a94af0d9e38172f064642a32e20'
+ '494d7c336b09c7d579dad3cc7d7bc627'
+ '1aeec4db77dc7cbc8e4660f127485599'
+ 'bea1168abcacef30832bb1e88a25b5f3'
+ '8f9af912aa7eb84ef8d941bccdf6ee66')
+
+build() {
+ cd "$srcdir/lastfm-$pkgver+dfsg"
+ patch -Np1 -i ../build-fixes.diff
+ patch -Np1 -i ../set-locale.diff
+ patch -Np1 -i ../set-firstrun-status.diff
+ patch -Np1 -i ../qt46.diff
+ ./configure
+ MAKEFLAGS=-j1 make src/Makefile
+ patch -Np1 -i ../makefile-qt45.patch
+ MAKEFLAGS=-j1 make
+ ( make || (mv build/fplib/libfplib_debug.a build/fplib/libfplib.a && make ) )
+}
+
+package() {
+ cd "$srcdir/lastfm-$pkgver+dfsg"
+ mkdir -p $pkgdir/opt $pkgdir/usr/bin
+ cp -rp bin/ $pkgdir/opt/last.fm
+ mkdir -p $pkgdir/opt $pkgdir/usr/bin
+ cp -rp bin/ $pkgdir/opt/last.fm
+ printf "#!/bin/sh\nexec /opt/last.fm/last.fm.sh\n" > $pkgdir/usr/bin/lastfm
+ chmod +x $pkgdir/usr/bin/lastfm
+ install -D -m 644 $srcdir/lastfm.desktop $pkgdir/usr/share/applications/lastfm.desktop
+}
diff --git a/community/lastfm-client/build-fixes.diff b/community/lastfm-client/build-fixes.diff
new file mode 100644
index 000000000..5e7553434
--- /dev/null
+++ b/community/lastfm-client/build-fixes.diff
@@ -0,0 +1,12 @@
+--- a/LastFM.pro
++++ b/LastFM.pro
+@@ -41,8 +41,7 @@
+ SUBDIRS -= src/Twiddly \
+ src/Bootstrapper/ITunesDevice
+
+- SUBDIRS += src/output/alsa-playback \
+- src/output/portAudio
++ SUBDIRS += src/output/alsa-playback
+ }
+
+
diff --git a/community/lastfm-client/lastfm.desktop b/community/lastfm-client/lastfm.desktop
new file mode 100644
index 000000000..1658c5997
--- /dev/null
+++ b/community/lastfm-client/lastfm.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Name=Last.fm
+Name[de]=Last.fm
+GenericName=Client for the Last.fm Network
+GenericName[de]=Client fr das Last.fm-Netzwerk
+GenericName[pl]=Klient sieci Last.fm
+Exec=lastfm
+Icon=lastfm
+Categories=AudioVideo;Player;
+Terminal=false
+Type=Application
+Encoding=UTF-8
+StartupNotify=false
+Icon=/opt/last.fm/data/icons/as.png
diff --git a/community/lastfm-client/makefile-qt45.patch b/community/lastfm-client/makefile-qt45.patch
new file mode 100644
index 000000000..c7db8aca7
--- /dev/null
+++ b/community/lastfm-client/makefile-qt45.patch
@@ -0,0 +1,12 @@
+Index: lastfm-1.5.1.31879.dfsg/src/Makefile
+===================================================================
+--- lastfm-1.5.1.31879.dfsg.orig/src/Makefile
++++ lastfm-1.5.1.31879.dfsg/src/Makefile
+@@ -959,6 +959,7 @@ compiler_uic_clean:
+ ../build/ui_playcontrols.h: playcontrols.ui \
+ volumeslider.h
+ /usr/bin/uic playcontrols.ui -o ../build/ui_playcontrols.h
++ sed -i "s/phonon\/Phonon::VolumeSlider/volumeslider.h/" ../build/ui_playcontrols.h
+
+ ../build/ui_failedlogindialog.h: failedlogindialog.ui
+ /usr/bin/uic failedlogindialog.ui -o ../build/ui_failedlogindialog.h
diff --git a/community/lastfm-client/qt46.diff b/community/lastfm-client/qt46.diff
new file mode 100644
index 000000000..b2370abee
--- /dev/null
+++ b/community/lastfm-client/qt46.diff
@@ -0,0 +1,57 @@
+Fix some text/icon display issues with Qt 4.6
+--- a/src/libUnicorn/draglabel.cpp
++++ b/src/libUnicorn/draglabel.cpp
+@@ -324,6 +324,11 @@
+ {
+ rect.setHeight( fm.height() );
+ }
++ // Qt 4.6 seems to have problems with the width too
++ if ( fm.width( d.m_text ) > rect.width() )
++ {
++ rect.setWidth( fm.width( d.m_text ) );
++ }
+
+ // boundingRect sometimes returns negative values so make sure it's at 0, 0
+ rect.moveTo( 0, 0 );
+--- a/src/settingsdialog.cpp
++++ b/src/settingsdialog.cpp
+@@ -140,29 +140,29 @@
+ UnicornUtils::qtLanguageToLfmLangCode( QLocale::Japanese ) );
+
+ // Add icons to sidebar
+- pixmap.load( MooseUtils::dataPath( "/icons/options_account.png" ) );
++ //pixmap.load( MooseUtils::dataPath( "/icons/options_account.png" ) );
+ //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
+- ui.pageList->item( 0 )->setIcon( pixmap );
++ ui.pageList->item( 0 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_account.png" ) ) );
+
+- pixmap.load( MooseUtils::dataPath( "/icons/options_radio.png" ) );
++ //pixmap.load( MooseUtils::dataPath( "/icons/options_radio.png" ) );
+ //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
+- ui.pageList->item( 1 )->setIcon( pixmap );
++ ui.pageList->item( 1 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_radio.png" ) ) );
+
+ #ifdef HIDE_RADIO
+ ui.pageList->setItemHidden( ui.pageList->item( 1 ), true );
+ #endif // HIDE_RADIO
+
+- pixmap.load( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) );
++ //pixmap.load( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) );
+ //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
+- ui.pageList->item( 2 )->setIcon( pixmap );
++ ui.pageList->item( 2 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_scrobbling.png" ) ) );
+
+- pixmap.load( MooseUtils::dataPath( "/icons/options_connection.png" ) );
++ //pixmap.load( MooseUtils::dataPath( "/icons/options_connection.png" ) );
+ //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
+- ui.pageList->item( 3 )->setIcon( pixmap );
++ ui.pageList->item( 3 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_connection.png" ) ) );
+
+- pixmap.load( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) );
++ //pixmap.load( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) );
+ //pixmap.scaled( 48, 48, Qt::IgnoreAspectRatio, Qt::SmoothTransformation );
+- ui.pageList->item( 4 )->setIcon( pixmap );
++ ui.pageList->item( 4 )->setIcon( QPixmap( MooseUtils::dataPath( "/icons/options_mediadevices.png" ) ) );
+
+ #ifdef Q_WS_X11
+ ui.pageList->setRowHidden( 4, true );
diff --git a/community/lastfm-client/set-firstrun-status.diff b/community/lastfm-client/set-firstrun-status.diff
new file mode 100644
index 000000000..61457fed2
--- /dev/null
+++ b/community/lastfm-client/set-firstrun-status.diff
@@ -0,0 +1,11 @@
+--- a/src/configwizard.cpp
++++ b/src/configwizard.cpp
+@@ -750,7 +750,7 @@
+
+ nextButtonClicked();
+ #else
+- m_pageOffset += 7;
++ m_pageOffset += 8;
+ BaseWizard::nextButtonClicked();
+ #endif
+
diff --git a/community/lastfm-client/set-locale.diff b/community/lastfm-client/set-locale.diff
new file mode 100644
index 000000000..3b81e6cbb
--- /dev/null
+++ b/community/lastfm-client/set-locale.diff
@@ -0,0 +1,20 @@
+--- a/src/libUnicorn/Settings.h
++++ b/src/libUnicorn/Settings.h
+@@ -226,6 +226,17 @@
+ QString langCode = customAppLanguage();
+ if ( langCode.isEmpty() )
+ {
++ #ifdef LINUX
++ // Now check the environment including LC_MESSAGES
++ // This fixes Debian bug #432232
++ if ( langCode.isEmpty() )
++ langCode = qgetenv( "LC_ALL" );
++ if ( langCode.isEmpty() )
++ langCode = qgetenv( "LC_MESSAGES" );
++ if ( langCode.isEmpty() )
++ langCode = qgetenv( "LANG" );
++ #endif
++
+ // If none found, use system locale
+ #ifdef Q_WS_MAC
+ QLocale::Language qtLang = UnicornUtils::osxLanguageCode();
diff --git a/community/lat/PKGBUILD b/community/lat/PKGBUILD
new file mode 100755
index 000000000..7093e048d
--- /dev/null
+++ b/community/lat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 5402 2009-11-08 07:59:58Z ebelanger $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=lat
+pkgver=1.2.3
+pkgrel=2
+pkgdesc="LDAP Administration Tool"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/ldap-at/"
+license=("GPL")
+depends=('gnome-keyring' 'gtk-sharp-2' 'avahi' 'gnome-sharp' 'rarian')
+makedepends=('gettext' 'intltool' 'pkgconfig')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/ldap-at/lat-$pkgver.tar.gz)
+md5sums=('0725508d180720d260a70c5b39d387ba')
+sha1sums=('52e2de528d2fa35519b2d67cd2937d4d524001de')
+
+build() {
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p $MONO_SHARED_DIR
+ cd "$srcdir/lat-$pkgver"
+ find . -name Makefile.in -exec sed -i -e 's/-scrollkeeper-update.*//' {} \;
+ if [ -f omf.make ]; then
+ sed -i -e 's/-scrollkeeper-update.*//' omf.make
+ fi
+
+ ./configure --prefix=/usr --enable-avahi=yes || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ rm -rf $MONO_SHARED_DIR
+}
diff --git a/community/lat/lat.install b/community/lat/lat.install
new file mode 100644
index 000000000..70bbdd964
--- /dev/null
+++ b/community/lat/lat.install
@@ -0,0 +1,26 @@
+pkgname=lat
+
+post_install() {
+ scrolls=(`pacman -Ql $pkgname | grep 'share/omf/.*\.omf$' | awk '{ print $2 }'`)
+
+ for scroll in "${scrolls[@]}" ; do
+ scrollkeeper-install -q -p var/lib/scrollkeeper "$scroll"
+ done
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ scrolls=(`pacman -Ql $pkgname | grep 'share/omf/.*\.omf$' | awk '{ print $2 }'`)
+
+ for scroll in "${scrolls[@]}" ; do
+ scrollkeeper-uninstall -q -p var/lib/scrollkeeper "$scroll"
+ done
+}
+
diff --git a/community/launchy/PKGBUILD b/community/launchy/PKGBUILD
new file mode 100644
index 000000000..7cc63520e
--- /dev/null
+++ b/community/launchy/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Andrew Burkett <burkett.andrew@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=launchy
+pkgver=2.5
+pkgrel=1
+pkgdesc="Launchy indexes the programs in your start menu and can launch your documents, project files, folders, and bookmarks with just a few keystrokes!"
+arch=('i686' 'x86_64')
+url="http://www.launchy.net/"
+license=('GPL')
+depends=('qt' 'xdg-utils')
+makedepends=('gcc' 'boost')
+source=("http://downloads.sourceforge.net/launchy/launchy-${pkgver}.tar.gz")
+sha256sums=('93ec471423b77973a2118eaec64c7a1c05ce37b5bff41760336ebd14fc819500')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ qmake -r Launchy.pro || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/community/lazarus/ChangeLog b/community/lazarus/ChangeLog
new file mode 100644
index 000000000..79ed3b287
--- /dev/null
+++ b/community/lazarus/ChangeLog
@@ -0,0 +1,3 @@
+2008-01-21 JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+
+ * PKGBUILD: moved man pages to /usr/share
diff --git a/community/lazarus/PKGBUILD b/community/lazarus/PKGBUILD
new file mode 100644
index 000000000..3aec09748
--- /dev/null
+++ b/community/lazarus/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 43081 2011-03-23 22:18:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jens Adam (byte/jra) <j_adam@web.de>
+
+pkgname=lazarus
+pkgver=0.9.30
+pkgrel=1
+pkgdesc='Delphi-like IDE for FreePascal'
+url='http://www.lazarus.freepascal.org/'
+license=('GPL2' 'MPL' 'custom:LGPL')
+arch=('i686' 'x86_64')
+depends=('fpc' 'fpc-src' 'gtk2')
+#makedepends=(rpmextract)
+options=('!emptydirs' '!makeflags')
+source=(http://downloads.sourceforge.net/project/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20$pkgver/lazarus-$pkgver-src.tar.bz2)
+md5sums=('5ece11700df569ebb518ccca37d93f1d')
+
+build() {
+ cd $srcdir/${pkgname}
+ make FPC=/usr/bin/fpc clean bigide
+
+ # skip the 'make install' mess completely and do everything manually
+ mkdir -p $pkgdir/usr/lib/lazarus $pkgdir/usr/bin $pkgdir/usr/share/man/man1 $pkgdir/usr/share/doc
+ rm -r debian
+ cp -R . $pkgdir/usr/lib/lazarus
+
+ ln -s /usr/lib/lazarus/lazarus $pkgdir/usr/bin/lazarus
+ ln -s /usr/lib/lazarus/startlazarus $pkgdir/usr/bin/startlazarus
+ ln -s /usr/lib/lazarus/lazbuild $pkgdir/usr/bin/lazbuild
+
+ cp -R install/man/man1/* $pkgdir/usr/share/man/man1/
+
+ mv $pkgdir/usr/lib/lazarus/docs $pkgdir/usr/share/doc/lazarus
+
+ # make 'desktop-file-validate' happy and fix missing .png icon
+ sed -e 's|\(Categories\).*|\1=IDE;Development;|' \
+ -e 's|\.png|\.xpm|' -i install/lazarus.desktop
+ install -Dm644 install/lazarus.desktop $pkgdir/usr/share/applications/lazarus.desktop
+ install -Dm644 images/ide_icon48x48.png $pkgdir/usr/share/pixmaps/lazarus.png
+ rm -r $pkgdir/usr/lib/lazarus/install
+
+ # license files: /usr/lib/lazarus/COPYING*
+ install -D -m644 COPYING.modifiedLGPL.txt $pkgdir/usr/share/licenses/$pkgname/COPYING.modifiedLGPL
+
+ # strip
+ find $pkgdir -perm /ugo+x -type f -exec strip {} \;
+ find $pkgdir -name \*.so -type f -exec strip {} \;
+}
diff --git a/community/lcms2/PKGBUILD b/community/lcms2/PKGBUILD
new file mode 100644
index 000000000..d7c84fce9
--- /dev/null
+++ b/community/lcms2/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=lcms2
+pkgver=2.1
+pkgrel=1
+pkgdesc="Small-footprint color management engine"
+arch=('i686' 'x86_64')
+url="http://www.littlecms.com/"
+license=('MIT')
+depends=('libtiff')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/lcms/lcms/$pkgver/lcms2-$pkgver.tar.gz)
+md5sums=('08036edb115ad74456dfa20b1998b5f4')
+
+build() {
+ cd "$srcdir"/lcms2-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/lcms2-$pkgver
+
+ make DESTDIR="$pkgdir/" install
+ install -D -m644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ldns/PKGBUILD b/community/ldns/PKGBUILD
new file mode 100644
index 000000000..9ba6f1cf4
--- /dev/null
+++ b/community/ldns/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: jiribb <jiribb@gmail.com> and <mathieui> <mathieui@mathieui.net>
+# Contributor: mathieui <mathieui@mathieui.net>
+
+pkgname=ldns
+pkgver=1.6.9
+pkgrel=1
+pkgdesc='Fast DNS library with DNSSEC support, including tools such as Drill'
+arch=('i686' 'x86_64')
+url='http://www.nlnetlabs.nl/projects/ldns/'
+license=('custom:BSD')
+depends=('openssl')
+makedepends=('libpcap')
+optdepends=('libpcap: ldns-dpa tool')
+options=('!libtool')
+source=("http://www.nlnetlabs.nl/downloads/$pkgname/$pkgname-$pkgver.tar.gz")
+sha1sums=('30d136792433bef44454dc1c70bf55449160c3ad')
+
+build() {
+ _conf='--prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-static=no --disable-rpath'
+
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure $_conf
+ make
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ cd drill
+ ./configure $_conf --with-ldns="$pkgdir"
+ make
+ make DESTDIR="$pkgdir" install
+
+ cd ../examples
+ ./configure $_conf --with-ldns="$pkgdir"
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/leafnode/PKGBUILD b/community/leafnode/PKGBUILD
new file mode 100644
index 000000000..0b96590ab
--- /dev/null
+++ b/community/leafnode/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 18744 2010-06-14 12:55:42Z 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=1
+pkgdesc="implements a store & forward NNTP proxy (client and server) with IPv4 and IPv6"
+arch=('i686' 'x86_64')
+url="http://leafnode.sourceforge.net/"
+depends=(pcre xinetd)
+license=('GPL')
+install=(leafnode.install)
+options=(!emptydirs)
+backup=(etc/xinet.d/leafnode)
+source=(http://downloads.sf.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2
+ leafnode.xinetd)
+md5sums=('a3edafeb854efaa3fbb0f7951d02160f'
+ 'db3c6ad1ff9fc03442949456d1d21304')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc/leafnode
+ make || return 1
+ make DESTDIR=$pkgdir install && \
+ chown -R root.root $pkgdir && \
+ install -D -m0644 $srcdir/leafnode.xinetd $pkgdir/etc/xinetd.d/leafnode
+}
+
diff --git a/community/leafnode/leafnode.install b/community/leafnode/leafnode.install
new file mode 100644
index 000000000..eb942009e
--- /dev/null
+++ b/community/leafnode/leafnode.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo "-- Adding user 'news' and group 'news', chowning /var/spool/news"
+ groupadd -K GID_MIN=5000 news &>/dev/null
+ gid=`cat /etc/group | grep news | cut -d: -f 3`
+ useradd -u $gid -g news -d /var/spool/news -s /bin/false news &>/dev/null
+ chown -R root:news etc/leafnode
+
+ # create dir if necessary
+ if [ ! -d var/spool/news ]; then
+ install -d -m 770 -o news -g news var/spool/news
+ fi
+}
+
+post_remove() {
+ echo "-- Removing user 'news' and group 'news', deleting spool directory"
+ userdel news &>/dev/null
+ groupdel news &>/dev/null
+ rm -rf var/spool/news
+}
+
diff --git a/community/leafnode/leafnode.xinetd b/community/leafnode/leafnode.xinetd
new file mode 100644
index 000000000..94c7c6ca7
--- /dev/null
+++ b/community/leafnode/leafnode.xinetd
@@ -0,0 +1,18 @@
+#
+# /etc/xinetd.d/leafnode
+#
+
+service nntp
+{
+ socket_type = stream
+ wait = no
+ user = news
+ server = /usr/sbin/leafnode
+ log_type = SYSLOG news
+ log_on_success += USERID
+ log_on_failure += USERID
+ port = 119
+ disable = yes
+ groups = yes
+}
+
diff --git a/community/lesspipe/PKGBUILD b/community/lesspipe/PKGBUILD
new file mode 100644
index 000000000..930399ce3
--- /dev/null
+++ b/community/lesspipe/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 14692 2010-04-07 09:06:46Z spupykin $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: solsTiCe d'Hiver <solstice.dhiver@gmail.com>
+
+pkgname=lesspipe
+pkgver=1.71
+pkgrel=1
+pkgdesc='an input filter for the pager less'
+depends=('less')
+arch=('i686' 'x86_64')
+license=('GPL')
+optdepends=('rpmextract: support for rpm files'
+ 'fastjar: support for jar files'
+ 'unzip: support for zip files'
+ 'unrar: support for rar files'
+ 'p7zip: support for 7za files'
+ 'cabextract: support for cab files'
+ 'cdrkit: support for iso files'
+ 'html2text: support for html files'
+ 'antiword: support for word file'
+ 'unrtf: support for rtf file'
+ 'imagemagick: support for some image file')
+url="http://www-zeuthen.desy.de/~friebel/unix/lesspipe.html"
+source=(http://www-zeuthen.desy.de/~friebel/unix/less/lesspipe.tar.gz \
+ lesspipe.sh)
+md5sums=('6d921dc4ce9809d405cb8d694ac7cbbd'
+ '675b56f560c600f43108adfd98222251')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --yes
+ make || return 1
+ mkdir -p $pkgdir/usr/share/man/man1
+ make install PREFIX=$pkgdir/usr || return 1
+
+ install -D $srcdir/lesspipe.sh $pkgdir/etc/profile.d/lesspipe.sh
+}
diff --git a/community/lesspipe/lesspipe.sh b/community/lesspipe/lesspipe.sh
new file mode 100644
index 000000000..ae6076f6b
--- /dev/null
+++ b/community/lesspipe/lesspipe.sh
@@ -0,0 +1 @@
+export LESSOPEN='|/usr/bin/lesspipe.sh %s'
diff --git a/community/libacpi/PKGBUILD b/community/libacpi/PKGBUILD
new file mode 100644
index 000000000..f2448bae9
--- /dev/null
+++ b/community/libacpi/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 11341 2010-02-09 23:06:14Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libacpi
+pkgver=0.2
+pkgrel=2.1
+pkgdesc="general purpose lib to gather ACPI data"
+arch=(i686 x86_64)
+url="http://www.ngolde.de/libacpi.html"
+license=('GPL')
+depends=()
+options=(!emptydirs)
+source=(http://www.ngolde.de/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('05b53dd7bead66dda35fec502b91066c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr || return 1
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+}
diff --git a/community/libaio/PKGBUILD b/community/libaio/PKGBUILD
new file mode 100644
index 000000000..d3c3023ec
--- /dev/null
+++ b/community/libaio/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Thomas S Hatch <thatch45 at gmail dot com>
+
+pkgname=libaio
+pkgver=0.3.109
+pkgrel=5
+pkgdesc="The Linux-native asynchronous I/O facility (aio) library"
+arch=('i686' 'x86_64')
+url="http://lse.sourceforge.net/io/aio.html"
+license=('LGPL')
+source=(ftp://ftp.kernel.org/pub/linux/libs/aio/$pkgname-$pkgver.tar.bz2)
+md5sums=('14f3a22fc14118a48be80ab5ea974f49')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir/usr" install
+}
+
diff --git a/community/libast/LICENSE.txt b/community/libast/LICENSE.txt
new file mode 100644
index 000000000..67c75f783
--- /dev/null
+++ b/community/libast/LICENSE.txt
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 1997-2004, Michael Jennings
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to
+ * deal in the Software without restriction, including without limitation the
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies of the Software, its documentation and marketing & publicity
+ * materials, and acknowledgment shall be given in the documentation, materials
+ * and software packages that this Software was used.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
diff --git a/community/libast/PKGBUILD b/community/libast/PKGBUILD
new file mode 100644
index 000000000..bd2630783
--- /dev/null
+++ b/community/libast/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 22578 2010-07-23 07:27:13Z lcarlier $
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Adam 'battlemidget' Stokes <adam.stokes@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libast
+pkgver=0.7
+pkgrel=3
+pkgdesc="The Library of Assorted Spiffy Things."
+arch=('i686' 'x86_64')
+url="http://eterm.sourceforge.net"
+license=('BSD')
+depends=('imlib2' 'pcre' 'libsm')
+options=('!libtool')
+source=(http://www.eterm.org/download/${pkgname}-${pkgver}.tar.gz LICENSE.txt)
+md5sums=('a9ec3b2da317f35869316e6d9571d296'
+ '97071898559acc4f900ceb6cb9579492')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --with-x
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make prefix=${pkgdir}/usr install
+ install -Dm644 ${srcdir}/LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/libcgi/PKGBUILD b/community/libcgi/PKGBUILD
new file mode 100644
index 000000000..1cbb0ed35
--- /dev/null
+++ b/community/libcgi/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 21582 2010-07-16 19:26:13Z tdziedzic $
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+
+pkgname=libcgi
+pkgver=1.0
+pkgrel=5
+pkgdesc='A powerful and easy to use library for writing CGI applications in C'
+arch=('i686' 'x86_64')
+url='http://libcgi.sourceforge.net/'
+license=('GPL')
+depends=('glibc')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('110af367081d33c7ed6527a1a60fc274')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ sed -i "s/\(hextable\['e'\] = \)13/\114/" src/cgi.c
+
+ #Arch64 Fix
+ if [ "$CARCH" = "x86_64" ]; then
+ export CFLAGS="$CFLAGS -fPIC"
+ export CXXFLAGS="$CFLAGS"
+ fi
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ mkdir -p ${pkgdir}/usr/{lib,include}
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/libcompizconfig/PKGBUILD b/community/libcompizconfig/PKGBUILD
new file mode 100644
index 000000000..d2565c9ca
--- /dev/null
+++ b/community/libcompizconfig/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 17037 2010-05-17 11:22:33Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=libcompizconfig
+pkgver=0.8.4
+pkgrel=2
+pkgdesc="Compiz configuration system library"
+arch=('i686' 'x86_64')
+url="http://opencompositing.org"
+license=('GPL')
+depends=('compiz-core' 'libxml2')
+makedepends=('intltool' 'pkgconfig')
+conflicts=('libcompizconfig-git')
+source=(http://releases.compiz-fusion.org/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+options=('!emptydirs' '!libtool')
+sha1sums=('514830508b21f9fd47ccac128c44c55a212d3929')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/libconfig/PKGBUILD b/community/libconfig/PKGBUILD
new file mode 100644
index 000000000..64fd9a145
--- /dev/null
+++ b/community/libconfig/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 43902 2011-03-31 09:30:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: scippio <scippio@seznam.cz>
+
+pkgname=libconfig
+pkgver=1.4.7
+pkgrel=1
+pkgdesc="C/C++ Configuration File Library"
+arch=('i686' 'x86_64')
+url="http://hyperrealm.com/libconfig/libconfig.html"
+license=('LGPL')
+depends=('gcc-libs' 'texinfo')
+install=libconfig.install
+options=('!libtool' '!emptydirs' 'zipman')
+source=(http://www.hyperrealm.com/libconfig/$pkgname-$pkgver.tar.gz)
+md5sums=('d57da7a91aadbfd53afedb5c1bade5f4')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+ rm ${pkgdir}/usr/share/info/dir
+}
diff --git a/community/libconfig/libconfig.install b/community/libconfig/libconfig.install
new file mode 100644
index 000000000..c03d5f7fa
--- /dev/null
+++ b/community/libconfig/libconfig.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(libconfig.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/libcss/PKGBUILD b/community/libcss/PKGBUILD
new file mode 100644
index 000000000..e65a06b83
--- /dev/null
+++ b/community/libcss/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libcss
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="A CSS parser and selection engine."
+arch=('i686' 'x86_64')
+url="http://www.netsurf-browser.org/projects/libcss/"
+license=('MIT')
+depends=('libparserutils' 'libwapcaplet')
+source=(http://www.netsurf-browser.org/projects/releases/libcss-${pkgver}-src.tar.gz)
+md5sums=('3bbdd853a2f52db7ab0e2ea3597e62fa')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make PREFIX=/usr DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/libcuefile/ChangeLog b/community/libcuefile/ChangeLog
new file mode 100644
index 000000000..e5a5d81dd
--- /dev/null
+++ b/community/libcuefile/ChangeLog
@@ -0,0 +1,3 @@
+2010-02-04 Corrado Primier <bardo@aur.archlinux.org>
+
+ * PKGBUILD: added to [community]
diff --git a/community/libcuefile/PKGBUILD b/community/libcuefile/PKGBUILD
new file mode 100644
index 000000000..8b76427e6
--- /dev/null
+++ b/community/libcuefile/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+pkgname=libcuefile
+pkgver=453
+pkgrel=1
+pkgdesc="A library to work with CUE files"
+arch=('i686' 'x86_64')
+url="http://www.musepack.net/index.php?pg=src"
+license=('LGPL')
+depends=('glibc')
+makedepends=('cmake')
+source=(http://files.musepack.net/source/${pkgname}_r${pkgver}.tar.gz)
+md5sums=('59826363984c51546258fe4213beb272')
+
+build() {
+ mkdir "${srcdir}/${pkgname}_r${pkgver}/build"
+ cd "${srcdir}/${pkgname}_r${pkgver}/build"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make DESTDIR="${pkgdir}/" install
+
+ mkdir -p "${pkgdir}/usr/include/cuetools"
+ install -Dm644 ${srcdir}/${pkgname}_r${pkgver}/include/cuetools/{cd,cdtext,cuefile}.h \
+ ${pkgdir}/usr/include/cuetools
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libdaq/PKGBUILD b/community/libdaq/PKGBUILD
new file mode 100644
index 000000000..18b13b38b
--- /dev/null
+++ b/community/libdaq/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 35748 2010-12-22 10:30:44Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=libdaq
+pkgver=0.5
+pkgrel=1
+pkgdesc='Data Acquisition library for packet I/O.'
+arch=('i686' 'x86_64')
+url='http://www.snort.org/'
+license=('GPL')
+depends=('libpcap')
+makedepends=('ca-certificates')
+options=('!libtool')
+source=('http://www.snort.org/downloads/630')
+md5sums=('ea9d8147f39c44ce00dd2d7eb19ce0ea')
+
+build() {
+ cd "${srcdir}/daq-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/daq-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/libdbi-drivers/PKGBUILD b/community/libdbi-drivers/PKGBUILD
new file mode 100644
index 000000000..18e3d97ac
--- /dev/null
+++ b/community/libdbi-drivers/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Thorsten Tpper <atsutane-tu@freethoughts.de>
+# Contributor: Olivier Mdoc <o_medoc@yahoo.fr>
+# Contributor: Ashok `ScriptDevil` Gautham <ScriptDevil.Arch@gmail.com>
+
+pkgname=libdbi-drivers
+pkgver=0.8.3_1
+_pkgver=0.8.3-1
+pkgrel=2
+pkgdesc="Database drivers for libdbi (MySQL, PostgreSQL, and SQLite)"
+url="http://libdbi-drivers.sourceforge.net/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('libdbi')
+makedepends=('postgresql-libs' 'libmysqlclient' 'sqlite2' 'sqlite3')
+optdepends=("postgresql-libs: To work with postgresql using libdbdpgsql "
+ "sqlite3: To work with sqlite3 using libdbdsqlite3"
+ "libmysqlclient: To work with mysql using libdbdmysql"
+ "sqlite2: To work with sqlite2 using libdbdsqlite")
+options=(!libtool)
+install=libdbi-drivers.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}/${pkgname}-${_pkgver}/${pkgname}-${_pkgver}.tar.gz")
+md5sums=('4de79b323162a5a7652b65b608eca6cd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ ./configure --prefix=/usr \
+ --disable-docs \
+ --with-libdbi \
+ --with-mysql \
+ --with-pgsql \
+ --with-sqlite \
+ --with-sqlite3
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/community/libdbi-drivers/libdbi-drivers.install b/community/libdbi-drivers/libdbi-drivers.install
new file mode 100644
index 000000000..158201554
--- /dev/null
+++ b/community/libdbi-drivers/libdbi-drivers.install
@@ -0,0 +1,19 @@
+# arg 1: the new package version
+post_install() {
+ ldconfig
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ ldconfig
+}
+
+# arg 1: the old package version
+post_remove() {
+ ldconfig
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/libdbi/PKGBUILD b/community/libdbi/PKGBUILD
new file mode 100644
index 000000000..b05487261
--- /dev/null
+++ b/community/libdbi/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Carl Flippin <carlf@photocarl.org>
+
+pkgname=libdbi
+pkgver=0.8.4
+pkgrel=1
+pkgdesc="A database independant abstraction layer for C"
+url="http://libdbi.sourceforge.net"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('glibc')
+options=(!libtool)
+install=libdbi.install
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('c5f15407ef7b07ba854cd8c9b15b88ff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/community/libdbi/libdbi.install b/community/libdbi/libdbi.install
new file mode 100644
index 000000000..158201554
--- /dev/null
+++ b/community/libdbi/libdbi.install
@@ -0,0 +1,19 @@
+# arg 1: the new package version
+post_install() {
+ ldconfig
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ ldconfig
+}
+
+# arg 1: the old package version
+post_remove() {
+ ldconfig
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/libdesktop-agnostic/PKGBUILD b/community/libdesktop-agnostic/PKGBUILD
new file mode 100644
index 000000000..3c0072045
--- /dev/null
+++ b/community/libdesktop-agnostic/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libdesktop-agnostic
+pkgver=0.3.92
+pkgrel=1
+pkgdesc="Provides an extensible config API, a unified virtual fs API, and a desktop item editor for GLib-based projects."
+arch=('i686' 'x86_64')
+url="https://launchpad.net/libdesktop-agnostic"
+license=('GPL' 'LGPL')
+depends=('glib2' 'gtk2' 'pygtk' 'pygobject')
+makedepends=('gobject-introspection' 'vala>=0.8.1' 'intltool'
+ 'gconf')
+optdepends=('gconf: gconf configuration backend')
+options=('!libtool')
+backup=(etc/xdg/libdesktop-agnostic/desktop-agnostic.ini)
+source=(https://launchpad.net/$pkgname/0.4/$pkgver/+download/$pkgname-$pkgver.tar.gz
+ gir.patch)
+md5sums=('42374d226a21d57637f97173f6b105a1'
+ '346e06ae914ec0c12e5f1fa1c4796575')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Force source regeneration
+ rm -r gen_src
+
+ # fix for python 2.7
+ sed -i '1s|^#!.*python$|&2|' waf
+ export PYTHON=/usr/bin/python2
+
+ # fix to enable introspection
+ patch -Np1 -i "$srcdir/gir.patch"
+
+ ./waf configure --config-backends=gconf,keyfile --vfs-backends=gio \
+ --desktop-entry-backends=gio,glib --prefix=/usr --sysconfdir=/etc
+ ./waf
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./waf install --destdir="$pkgdir" --sysconfdir="$pkgdir/etc"
+}
diff --git a/community/libdesktop-agnostic/gir.patch b/community/libdesktop-agnostic/gir.patch
new file mode 100644
index 000000000..88824cf76
--- /dev/null
+++ b/community/libdesktop-agnostic/gir.patch
@@ -0,0 +1,27 @@
+diff -u -r libdesktop-agnostic-0.3.92/libdesktop-agnostic/wscript libdesktop-agnostic-0.3.92-gir/libdesktop-agnostic/wscript
+--- libdesktop-agnostic-0.3.92/libdesktop-agnostic/wscript 2011-03-12 15:14:23.000000000 +0100
++++ libdesktop-agnostic-0.3.92-gir/libdesktop-agnostic/wscript 2011-03-27 18:51:13.170000225 +0200
+@@ -67,8 +67,9 @@
+
+
+ def create_typelib_task():
+- rule = 'LD_LIBRARY_PATH="${CURRENT_BUILD_DIR}" ${G_IR_COMPILER} ' + \
+- '-o ${TGT} ${SRC}'
++ rule = '${G_IR_COMPILER}' + \
++ ' --includedir "${CURRENT_BUILD_DIR}"' + \
++ ' -o ${TGT} ${SRC}'
+ Task.simple_task_type('typelib', rule, after='cc_link')
+
+ create_typelib_task()
+diff -u -r libdesktop-agnostic-0.3.92/wscript libdesktop-agnostic-0.3.92-gir/wscript
+--- libdesktop-agnostic-0.3.92/wscript 2011-03-13 16:09:47.000000000 +0100
++++ libdesktop-agnostic-0.3.92-gir/wscript 2011-03-27 18:51:46.973335650 +0200
+@@ -71,7 +71,7 @@
+ help='Enables the library to be built so that it is '
+ 'instrumented to measure performance.')
+ opt.add_option('--disable-gi', action='store_true',
+- dest='no_gi', default=True)
++ dest='no_gi', default=False)
+
+
+ def configure(conf):
diff --git a/community/libdlna/PKGBUILD b/community/libdlna/PKGBUILD
new file mode 100644
index 000000000..e3bfb94d4
--- /dev/null
+++ b/community/libdlna/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 7626 2010-01-08 23:34:07Z dgriffiths $
+# Maintainer: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+# Contributor: kastor <kastor@fobos.org.ar>
+pkgname=libdlna
+pkgver=0.2.3
+pkgrel=8
+pkgdesc="An open-source implementation of DLNA (Digital Living Network Alliance) standards "
+url="http://libdlna.geexbox.org"
+license=("LGPL")
+arch=('i686' 'x86_64')
+options=('!libtool')
+makedepends=('ctags')
+depends=('glibc' 'ffmpeg')
+source=("http://libdlna.geexbox.org/releases/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('2c974f95b711e5fd07f78fc4ebfcca66')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's|ffmpeg/avformat.h|libavformat/avformat.h|' ./configure src/profiles.h src/*.c || return 1
+ sed -i 's|ffmpeg/avcodec.h|libavcodec/avcodec.h|' ./configure src/profiles.h src/*.c || return 1
+ ./configure --prefix=/usr --includedir=/usr/include/libavformat || return 1
+ make || return 1
+ make INSTALL=/bin/install DESTDIR=${pkgdir} install
+}
diff --git a/community/libdnet/PKGBUILD b/community/libdnet/PKGBUILD
new file mode 100644
index 000000000..70cf6e437
--- /dev/null
+++ b/community/libdnet/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 27071 2010-09-17 12:26:08Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: James Fryman <jfryman@gmail.com>
+
+pkgname=libdnet
+pkgver=1.12
+pkgrel=5
+pkgdesc="A simplified, portable interface to several low-level networking routines"
+arch=(i686 x86_64)
+makedepends=(python2)
+optdepends=(python2)
+install=(libdnet.install)
+license=("BSD")
+url="http://code.google.com/p/libdnet/"
+options=('!libtool')
+source=(http://libdnet.googlecode.com/files/libdnet-$pkgver.tgz)
+md5sums=('9253ef6de1b5e28e9c9a62b882e44cc9')
+
+build() {
+ mkdir -p $pkgdir/usr/bin
+
+ [ $CARCH == "x86_64" ] && export CFLAGS=-fPIC
+
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make && make DESTDIR=$pkgdir install
+
+ cd python && \
+ python2 setup.py install --root=$pkgdir
+
+ install -D -m0644 ../LICENSE $pkgdir/usr/share/licenses/libdnet/license
+ mv $pkgdir/usr/man $startdir/pkg/usr/share/
+}
diff --git a/community/libdnet/libdnet.install b/community/libdnet/libdnet.install
new file mode 100644
index 000000000..cb8146f24
--- /dev/null
+++ b/community/libdnet/libdnet.install
@@ -0,0 +1,3 @@
+post_install() {
+ /sbin/ldconfig
+}
diff --git a/community/libesmtp/PKGBUILD b/community/libesmtp/PKGBUILD
new file mode 100644
index 000000000..f254a928e
--- /dev/null
+++ b/community/libesmtp/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 31477 2010-10-31 23:37:55Z loui $
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libesmtp
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="A library to manage posting (or submission of) electronic mail using SMTP to a preconfigured Mail Transport Agent (MTA)"
+arch=('i686' 'x86_64')
+url="http://www.stafford.uklinux.net/libesmtp/"
+license=('LGPL')
+depends=('openssl')
+source=(http://www.stafford.uklinux.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('bf3915e627fd8f35524a8fdfeed979c8')
diff --git a/community/libev/PKGBUILD b/community/libev/PKGBUILD
new file mode 100644
index 000000000..4ab23a1ef
--- /dev/null
+++ b/community/libev/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 32688 2010-11-16 16:50:22Z lcarlier $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Thomas Haider <t.haider@vcnc.org>
+
+pkgname=libev
+pkgver=4.01
+pkgrel=1
+pkgdesc="A full-featured and high-performance event loop"
+arch=('i686' 'x86_64')
+url="http://software.schmorp.de/pkg/libev.html"
+license=('BSD')
+depends=('glibc')
+options=('!libtool' 'force')
+source=(http://dist.schmorp.de/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2a6e0d3d7eda7d54b39f3800b8279707')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # fix conflict with libevent
+ rm ${pkgdir}/usr/include/event.h
+
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/libexosip2/ChangeLog b/community/libexosip2/ChangeLog
new file mode 100644
index 000000000..7b33546b8
--- /dev/null
+++ b/community/libexosip2/ChangeLog
@@ -0,0 +1,7 @@
+2008-04-20 Darwin Bautista <djclue917@gmail.com>
+* libexosip2 3.1.0-1
+* New upstream release
+
+2007-11-21 Darwin Bautista <djclue917@gmail.com>
+* libexosip2 3.0.3_3-1
+* Initial release
diff --git a/community/libexosip2/PKGBUILD b/community/libexosip2/PKGBUILD
new file mode 100644
index 000000000..6b6ef848e
--- /dev/null
+++ b/community/libexosip2/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 29647 2010-10-18 08:56:03Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=libexosip2
+pkgver=3.3.0
+pkgrel=1
+pkgdesc="A library that hides the complexity of using SIP for multimedia session establishement"
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/exosip/"
+license=('GPL')
+depends=('libosip2>=3.1.0' 'openssl')
+options=(!libtool)
+source=(http://download.savannah.nongnu.org/releases/exosip/libeXosip2-${pkgver/_/-}.tar.gz)
+md5sums=('a2739067b51c1e417c5aef9606b285b2')
+
+build() {
+ cd "$srcdir/libeXosip2-${pkgver/_/-}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/libextractor/PKGBUILD b/community/libextractor/PKGBUILD
new file mode 100644
index 000000000..b909c91a6
--- /dev/null
+++ b/community/libextractor/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 43112 2011-03-24 07:47:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s@gmail.com>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=libextractor
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="A library used to extract meta-data from files of arbitrary type"
+arch=("i686" "x86_64")
+license=('GPL')
+url="http://gnunet.org/libextractor/"
+depends=('libvorbis' 'libtool' 'gtk2' 'libgsf' 'libmpeg2' 'texinfo')
+optdepends=('flac'
+ 'poppler'
+ 'exiv2'
+ 'qt')
+options=('!libtool' '!makeflags')
+install=libextractor.install
+source=(http://ftpmirror.gnu.org/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4b2af1167061430d58a101d5dfc6b4c7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-shared --disable-static
+ make
+ make DESTDIR=${pkgdir} install
+ rm ${pkgdir}/usr/share/info/dir
+}
diff --git a/community/libextractor/libextractor.install b/community/libextractor/libextractor.install
new file mode 100644
index 000000000..24d668af5
--- /dev/null
+++ b/community/libextractor/libextractor.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(extractor.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/libfakekey/PKGBUILD b/community/libfakekey/PKGBUILD
new file mode 100644
index 000000000..691c4ba75
--- /dev/null
+++ b/community/libfakekey/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: zoulnix <z[o]ulnix.borkedduck.c[o]m>
+
+pkgname=libfakekey
+pkgver=0.1
+pkgrel=4
+pkgdesc='X virtual keyboard library.'
+arch=('i686' 'x86_64')
+url='http://matchbox-project.org/'
+license=('GPL')
+depends=('libxtst')
+options=('!libtool')
+source=("http://matchbox-project.org/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('83dbde4d77e8baf0176fe4291d8a2303')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libfbclient/ChangeLog b/community/libfbclient/ChangeLog
new file mode 100644
index 000000000..f02bd5ff5
--- /dev/null
+++ b/community/libfbclient/ChangeLog
@@ -0,0 +1,26 @@
+
+2009-06-08 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Rebuilt for the new icu
+
+2009-04-09 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 2.1.2
+
+2008-08-10 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 2.1.1
+
+2008-05-10 Mateusz Herych <heniekk@gmail.com>
+
+ * Updated for x86_64 - 2.1.0
+
+2008-04-28 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated for i686 - 2.1.0
+ * Sure, firebird is the hell to build. Waiting contributions ;-)
+
+2007-07-06 tardo <tardo@nagi-fanboi.net>
+
+ * Built for x86_64
+ * This is the most fucked up pkg evar.
diff --git a/community/libfbclient/LICENSE b/community/libfbclient/LICENSE
new file mode 100644
index 000000000..e735b0cc1
--- /dev/null
+++ b/community/libfbclient/LICENSE
@@ -0,0 +1,44 @@
+
+LICENSES
+--------
+
+The applicable and approved licenses for the source files
+of the Firebird RDBMS project are:
+
+ 1) InterBase Public License (IPL), version 1.0
+ http://bdn.borland.com/article/0,1410,30198,00.html
+
+ 2) Initial Developer's Public License (IDPL), version 1.0
+ http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl
+
+The IPL is copyright of Borland Corp., the other licenses are copyright
+by the source code authors and contributors.
+
+
+USAGE RULES
+-----------
+
+1) The source code which was released under the IPL must keep this license.
+ All modifications / adaptations of this code are still subjects of the IPL.
+
+2) The files that are derived from the IPL covered code, must also keep
+ this license. It means that if any new file contains some code covered by
+ the IPL, then this file should be released under the IPL too.
+
+3) The new files developed by the members of the Firebird project should
+ be released under the IDPL.
+
+4) The new files contributed by people who are not members of the Firebird
+ project should follow the rule #3. If an author (initial developer) doesn't
+ specify the license to be used, the person who applies the contributed code
+ to the CVS tree (a committer) becomes responsible for the license assigned
+ to the contributed code.
+
+5) Every non-binary file that exists in the CVS tree, should have a header
+ section which describes the license this code is released under. If a file
+ contains no header, it means that this code is freeware and nobody owns the
+ appropriate copyrights.
+
+
+You may find the exhibits for the approved licenses in /doc/license directory
+of the CVS tree.
diff --git a/community/libfbclient/PKGBUILD b/community/libfbclient/PKGBUILD
new file mode 100755
index 000000000..1acc66f8d
--- /dev/null
+++ b/community/libfbclient/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 37821 2011-01-18 09:28:10Z lcarlier $
+# Maintainer: Carlier Laurent <lordheavym@gmail.com>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgname=libfbclient
+pkgver=2.5.0.26074
+pkgrel=2
+pkgdesc="Client library for Firebird."
+arch=('i686' 'x86_64')
+url="http://www.firebirdsql.org/"
+license=('custom')
+depends=('gcc-libs' 'icu')
+source=(http://downloads.sourceforge.net/firebird/Firebird-$pkgver-0.tar.bz2
+ LICENSE)
+md5sums=('780f162ee71f087fc277adf09f966529'
+ '0d61798861e159c85dbdf0f30fe2f2ce')
+
+build() {
+ cd $srcdir/Firebird-$pkgver-0
+
+ ./configure --prefix=/usr --with-system-icu --without-fbudf \
+ --without-fbsbin --without-fbconf --without-fbdoc --without-fbsample \
+ --without-fbsample-db --without-fbintl --without-fbmisc --without-fbhelp \
+ --without-fbsecure-db --with-fbmsg=/usr/share/firebird --without-fblog \
+ --without-fbglock --without-fbplugins
+
+ make
+}
+
+package() {
+ cd $srcdir/Firebird-$pkgver-0
+
+ mkdir -p $pkgdir/usr/{bin,share/firebird}
+ cp -R gen/firebird/{lib,include} $pkgdir/usr
+ rm -f $pkgdir/usr/lib/libedit.a
+ install -m644 gen/firebird/*.msg $pkgdir/usr/share/firebird
+ install -m755 gen/firebird/bin/fb_config $pkgdir/usr/bin
+ mkdir -p $srcdir/usr/share/licenses/$pkgname/
+ install -D -m644 ${srcdir}/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/libgalago-gtk/PKGBUILD b/community/libgalago-gtk/PKGBUILD
new file mode 100644
index 000000000..ea6182572
--- /dev/null
+++ b/community/libgalago-gtk/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 8991 2010-01-23 02:17:26Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libgalago-gtk
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="GTK+ widgets for the Galago presence framework"
+arch=(i686 x86_64)
+url="http://www.galago-project.org"
+options=('!libtool')
+license=('LGPL')
+depends=('gtk2' 'libgalago')
+source=(http://www.galago-project.org/files/releases/source/libgalago-gtk/libgalago-gtk-$pkgver.tar.gz)
+md5sums=('810f7922ac37ca87d61a0fb0cd830b8b')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ rm -rf $startdir/pkg/usr/share/autopackage
+}
diff --git a/community/libgalago/PKGBUILD b/community/libgalago/PKGBUILD
new file mode 100644
index 000000000..9a3853cef
--- /dev/null
+++ b/community/libgalago/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 21389 2010-07-16 11:55:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libgalago
+pkgver=0.5.2
+pkgrel=3
+pkgdesc="The Galago presence library"
+arch=(i686 x86_64)
+url="http://www.galago-project.org"
+options=('!libtool')
+license=("LGPL")
+depends=('dbus-glib')
+source=(http://www.galago-project.org/files/releases/source/libgalago/libgalago-$pkgver.tar.gz
+ libgalago-mkinstalldirs.patch)
+md5sums=('7ec92f2ecba1309ac4b71b4b4d8d0a0d'
+ '3b38fecc5421ca338363b9ae1d218b7e')
+
+build() {
+ cd $srcdir/libgalago-$pkgver
+ patch -p0 -i ../libgalago-mkinstalldirs.patch || return 1
+ ./configure --prefix=/usr --disable-tests
+ make || return 1
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/share/autopackage
+}
diff --git a/community/libgalago/libgalago-mkinstalldirs.patch b/community/libgalago/libgalago-mkinstalldirs.patch
new file mode 100644
index 000000000..87c42fc00
--- /dev/null
+++ b/community/libgalago/libgalago-mkinstalldirs.patch
@@ -0,0 +1,11 @@
+--- po/Makefile.in.in.org 2007-01-25 15:14:01.000000000 +0300
++++ po/Makefile.in.in 2007-01-25 15:15:11.000000000 +0300
+@@ -29,7 +29,7 @@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ MKINSTALLDIRS = @MKINSTALLDIRS@
+-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(MKINSTALLDIRS)" ;; esac`
++mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+
+ CC = @CC@
+ GMSGFMT = @GMSGFMT@
diff --git a/community/libgda3/PKGBUILD b/community/libgda3/PKGBUILD
new file mode 100644
index 000000000..ca2cc50b5
--- /dev/null
+++ b/community/libgda3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 42498 2011-03-17 10:53:49Z jelle $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libgda3
+pkgver=3.1.5
+pkgrel=8
+pkgdesc="data abstraction layer; with mysql, pgsql, ldap, xml, sqlite providers"
+arch=('i686' 'x86_64')
+url="http://www.gnome-db.org/Download"
+license=('GPL')
+depends=('glib2' 'libxslt' 'popt' 'rarian' 'db' 'gnome-vfs'
+ 'libmysqlclient' 'postgresql-libs>=8.4.1' 'libldap' 'unixodbc' 'sqlite3')
+makedepends=('intltool' 'pkgconfig' 'gtk-doc' 'util-linux-ng')
+options=('!libtool' '!distcc')
+source=(http://ftp.acc.umu.se/pub/GNOME/sources/libgda/3.1/libgda-$pkgver.tar.bz2)
+md5sums=('eb7da5286a112e7cff3111c89fba4456')
+
+build() {
+ cd "$srcdir/libgda-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+package(){
+ cd "$srcdir/libgda-$pkgver"
+ make DESTDIR=$pkgdir install
+ cd "$pkgdir" && find -name \*..so -exec rename '..so' '.a' {} \;
+}
diff --git a/community/libgdamm/PKGBUILD b/community/libgdamm/PKGBUILD
new file mode 100644
index 000000000..cf58ad50a
--- /dev/null
+++ b/community/libgdamm/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 33284 2010-11-23 19:29:36Z heftig $
+# Contributor: Jan de Groot <jan@jgc.homeip.net>
+
+pkgbase=libgdamm
+pkgname=(libgdamm libgdamm-docs)
+pkgver=4.1.1
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('libgda>=4.2.1' 'libsigc++' 'glibmm>=2.24.2' 'glibmm-docs>=2.24.2')
+url="http://gtkmm.sourceforge.net/"
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgbase/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+md5sums=('6f57b0362698420cd855539cf61be388')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_libgdamm() {
+ pkgdesc="C++ bindings for libgda"
+ depends=('libgda>=4.2.1' 'glibmm>=2.24.2' 'libsigc++')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+
+ make DESTDIR="${pkgdir}" install
+}
+
+package_libgdamm-docs() {
+ pkgdesc="Developer documentation for libgdamm"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C docs DESTDIR="${pkgdir}" install
+}
diff --git a/community/libgeotiff/PKGBUILD b/community/libgeotiff/PKGBUILD
new file mode 100644
index 000000000..a7e2823f6
--- /dev/null
+++ b/community/libgeotiff/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 27066 2010-09-17 00:46:59Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libgeotiff
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="A TIFF based interchange format for georeferenced raster imagery"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.remotesensing.org/geotiff"
+depends=('libtiff' 'proj' 'libjpeg>=7')
+options=('!makeflags')
+source=(ftp://ftp.remotesensing.org/pub/geotiff/libgeotiff/$pkgname-$pkgver.tar.gz)
+md5sums=('6ac3c22e44711e9a3add9044e40b9527')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/libgeotiff/LICENSE"
+}
diff --git a/community/libgexiv2/PKGBUILD b/community/libgexiv2/PKGBUILD
new file mode 100644
index 000000000..80f7bec60
--- /dev/null
+++ b/community/libgexiv2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 40350 2011-02-23 08:01:08Z ebelanger $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libgexiv2
+pkgver=0.3.0
+pkgrel=1
+pkgdesc="GObject-based wrapper around the Exiv2 library."
+arch=('i686' 'x86_64')
+url="http://trac.yorba.org/wiki/gexiv2"
+license=('GPL2')
+depends=('exiv2>=0.21' 'glib2')
+options=('!libtool')
+source=(http://yorba.org/download/gexiv2/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('b6b2b2ae3c7d57a85d8c346b418ff98c')
+sha1sums=('bf1186d480078cc87020db7d9f24f20b1e73a171')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libghemical/PKGBUILD b/community/libghemical/PKGBUILD
new file mode 100644
index 000000000..cf0a8df0f
--- /dev/null
+++ b/community/libghemical/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 13759 2010-03-27 17:00:03Z xyne $
+# Maintainer: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=libghemical
+pkgver=2.99.1
+pkgrel=1
+pkgdesc="Library containing computational chemistry facility of ghemical"
+license=("GPL")
+arch=(i686 x86_64)
+url="http://bioinformatics.org/ghemical/libghemical/"
+depends=('gcc-libs')
+makedepends=('openbabel' 'intltool>=0.40.0')
+options=(!libtool)
+source=(http://bioinformatics.org/ghemical/download/current/${pkgname}-${pkgver}.tar.gz sasaeval.diff)
+md5sums=('d2dae2d7d786d3cba335cb29d85033ea'
+ '4c520ded165acc14b5477a55541554ef')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}/
+ #patch -p1 -i ${srcdir}/sasaeval.diff || return 1
+ ./configure --prefix=/usr --enable-openbabel
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+} \ No newline at end of file
diff --git a/community/libghemical/sasaeval.diff b/community/libghemical/sasaeval.diff
new file mode 100644
index 000000000..fe719f8d9
--- /dev/null
+++ b/community/libghemical/sasaeval.diff
@@ -0,0 +1,21 @@
+--- a/src/sasaeval.cpp 2008-08-01 09:39:01.000000000 +0530
++++ b/src/sasaeval.cpp 2008-08-01 09:40:33.000000000 +0530
+@@ -21,6 +21,8 @@
+ #include "sasaeval.h"
+
+ #include "engine.h"
++#include <algorithm>
++using namespace std;
+
+ // the surface area code apparently contains some bugs, since it sometimes
+ // crashes. another possibility is that the surface area math contains some
+--- a/src/sasaeval.h 2008-07-31 00:40:08.000000000 +0530
++++ b/src/sasaeval.h 2008-08-01 09:40:04.000000000 +0530
+@@ -24,6 +24,7 @@
+ #define SASAEVAL_H
+
+ #include "typedef.h"
++#include <stdlib.h>
+
+ struct cg_nbt3_nl; // SASA neighbor list.
+
diff --git a/community/libgig/PKGBUILD b/community/libgig/PKGBUILD
new file mode 100644
index 000000000..9b9442753
--- /dev/null
+++ b/community/libgig/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 27577 2010-09-25 09:27:39Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: svoufff <svoufff at gmail dot com>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=libgig
+pkgver=3.3.0
+pkgrel=1
+pkgdesc="C++ library for loading Gigasampler and DLS files"
+arch=(i686 x86_64)
+url="http://www.linuxsampler.org/libgig/"
+license=('GPL')
+depends=('gcc-libs' 'util-linux-ng' 'libsndfile')
+options=('!libtool' '!makeflags')
+source=(http://download.linuxsampler.org/packages/$pkgname-$pkgver.tar.bz2)
+md5sums=('fc33e8e948ed2db9b7003a3ecdb78549')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libgringotts/PKGBUILD b/community/libgringotts/PKGBUILD
new file mode 100644
index 000000000..4dfc27e40
--- /dev/null
+++ b/community/libgringotts/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 22411 2010-07-21 18:37:34Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=libgringotts
+pkgver=1.2.1
+pkgrel=7
+pkgdesc="Encryption backend for Gringotts."
+arch=('i686' 'x86_64')
+url="http://developer.berlios.de/projects/gringotts"
+license=('GPL')
+depends=('bzip2' 'libmcrypt' 'libtool' 'mhash' 'zlib')
+makedepends=('autoconf')
+changelog=$pkgname.changelog
+source=(http://download.berlios.de/gringotts/$pkgname-$pkgver.tar.bz2)
+md5sums=('b2b1bad56ef33153f251ccd9500860be')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ autoconf
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ rm -fr ${pkgdir}/usr/share || return 1
+}
diff --git a/community/libgringotts/libgringotts.changelog b/community/libgringotts/libgringotts.changelog
new file mode 100644
index 000000000..b23626f44
--- /dev/null
+++ b/community/libgringotts/libgringotts.changelog
@@ -0,0 +1,2 @@
+2009-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * osmo dependency, moved to [community]
diff --git a/community/libgtksourceviewmm2/PKGBUILD b/community/libgtksourceviewmm2/PKGBUILD
new file mode 100644
index 000000000..1542c58e1
--- /dev/null
+++ b/community/libgtksourceviewmm2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 33294 2010-11-23 19:37:10Z heftig $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=libgtksourceviewmm2
+pkgver=2.10.1
+pkgrel=1
+pkgdesc='A C++ API for gtksourceview2'
+arch=('i686' 'x86_64')
+url='http://projects.gnome.org/gtksourceviewmm/'
+license=('LGPL')
+depends=('gtkmm' 'gtksourceview2')
+makedepends=('doxygen' 'glibmm-docs')
+options=('!libtool' '!emptydirs')
+source=("http://ftp.gnome.org/pub/GNOME/sources/gtksourceviewmm/2.10/gtksourceviewmm-$pkgver.tar.bz2")
+md5sums=('83d1b3dc061f02f4ff1766b37302058e')
+
+build() {
+ cd gtksourceviewmm-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd gtksourceviewmm-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libident/PKGBUILD b/community/libident/PKGBUILD
new file mode 100644
index 000000000..715b5e46f
--- /dev/null
+++ b/community/libident/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+pkgname=libident
+pkgver=0.32
+pkgrel=2
+pkgdesc="New libident C library"
+arch=('i686' 'x86_64')
+url="http://www.remlab.net/libident/"
+license=('custom')
+source=(http://www.remlab.net/files/libident/libident-$pkgver.tar.gz)
+md5sums=('9b9346eacc28d842d164881f0efa3388')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ install -D -m 755 COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/libinfinity/PKGBUILD b/community/libinfinity/PKGBUILD
new file mode 100644
index 000000000..1cc5479ee
--- /dev/null
+++ b/community/libinfinity/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 44189 2011-04-04 13:07:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Gregory Haynes <greg@greghaynes.net>
+
+pkgname=libinfinity
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="An implementation of the Infininote protocol written in GObject-based C"
+arch=('i686' 'x86_64')
+url="http://gobby.0x539.de"
+license=('GPL')
+depends=('gnutls>=1.7.2' 'gsasl>=0.2.21' 'glib2>=2.16' 'libxml2>=2.0' 'gtk2')
+makedepends=('gtk-doc' 'pkgconfig')
+optdepends=('avahi: zeroconf support'
+ 'gtk2: gtk support')
+options=('!libtool')
+source=("http://releases.0x539.de/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('db9b0622b6a42d70bb88c9d284692578')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --localstatedir=/var
+ make
+ make DESTDIR="${pkgdir}" install
+ rm -rf $pkgdir/var
+}
diff --git a/community/libiptcdata/PKGBUILD b/community/libiptcdata/PKGBUILD
new file mode 100644
index 000000000..0f40d86f3
--- /dev/null
+++ b/community/libiptcdata/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 26399 2010-09-15 11:01:44Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=libiptcdata
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Library for manipulating the IPTC metadata"
+arch=('i686' 'x86_64')
+url="http://libiptcdata.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/libiptcdata/$pkgname-$pkgver.tar.gz)
+md5sums=('af886556ecb129b694f2d365d03d95a8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/liblinebreak/PKGBUILD b/community/liblinebreak/PKGBUILD
new file mode 100644
index 000000000..9db15fe88
--- /dev/null
+++ b/community/liblinebreak/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Orivej Desh <smpuj@bk.ru>
+pkgname=liblinebreak
+pkgver=2.0
+pkgrel=1
+pkgdesc="An implementation of the line breaking algorithm as described in Unicode 5.2.0 Standard Annex 14, Revision 24"
+arch=("i686" "x86_64")
+url="http://vimgadgets.sourceforge.net/liblinebreak/"
+license=("custom:zlib/libpng")
+depends=("glibc")
+makedepends=()
+options=("!libtool")
+source=("http://downloads.sourceforge.net/vimgadgets/liblinebreak-$pkgver.tar.gz")
+md5sums=('c4ac2052b9e1883822662ecee483c542')
+
+build() {
+ cd "$srcdir/liblinebreak-$pkgver"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir" install
+ install -Dm644 LICENCE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
diff --git a/community/libmaa/PKGBUILD b/community/libmaa/PKGBUILD
new file mode 100644
index 000000000..1c45e4edb
--- /dev/null
+++ b/community/libmaa/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 1528 2009-08-25 09:47:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libmaa
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="provides many low-level data structures which are helpful for writing compilers"
+url="http://sourceforge.net/projects/dict/"
+license=("GPL")
+arch=(i686 x86_64)
+depends=('zlib')
+makedepends=('flex')
+source=(http://downloads.sourceforge.net/project/dict/libmaa/libmaa-1.1.1/libmaa-1.1.1.tar.gz)
+md5sums=('0f3e1ef0e3dc6c516b8fb0cacef8f628')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/libmatchbox/PKGBUILD b/community/libmatchbox/PKGBUILD
new file mode 100644
index 000000000..f0a056430
--- /dev/null
+++ b/community/libmatchbox/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 42735 2011-03-20 08:11:51Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Henrique C. Alves <hcarvalhoalves@gmail.com>
+
+pkgname=libmatchbox
+pkgver=1.9
+pkgrel=4
+pkgdesc="Base library for Matchbox WM"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('pango' 'libpng' 'libjpeg>=7' 'xsettings-client' 'libxext')
+options=('!libtool')
+url="http://projects.o-hand.com/matchbox"
+source=(http://projects.o-hand.com/matchbox/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('9f73e7515cc4679171a5db180dc1343b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's|png_check_sig( header, 8 )|png_sig_cmp( header, 0, 8 ) == 0|' libmb/mbpixbuf.c
+ ./configure --prefix=/usr --enable-pango --enable-jpeg --enable-xsettings
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/libmatio/PKGBUILD b/community/libmatio/PKGBUILD
new file mode 100644
index 000000000..61263e4d3
--- /dev/null
+++ b/community/libmatio/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 19607 2010-06-26 05:40:09Z shusmann $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=libmatio
+pkgver=1.3.3
+pkgrel=2
+pkgdesc="A C library with a fortran 90/95 module interface for reading/writing MATLAB MAT-files"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://sourceforge.net/projects/matio"
+depends=('gcc-libs')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/matio/matio-$pkgver.tar.gz)
+md5sums=('5c12a98f391de000e88b5a1b20d74abf')
+
+build() {
+ cd $srcdir/matio-$pkgver
+ ./bootstrap
+ ./configure --prefix=/usr --enable-fortran --enable-shared
+ make
+}
+
+package() {
+ cd $srcdir/matio-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libmediainfo/PKGBUILD b/community/libmediainfo/PKGBUILD
new file mode 100644
index 000000000..1da9efc75
--- /dev/null
+++ b/community/libmediainfo/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 41747 2011-03-08 20:14:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: hydro <hydro@freenet.de>
+
+pkgname=libmediainfo
+pkgver=0.7.42
+pkgrel=1
+pkgdesc="shared library for mediainfo"
+arch=('i686' 'x86_64')
+url="http://mediainfo.sourceforge.net"
+license=('GPL')
+depends=( 'curl' 'libmms>=0.5-2' 'libzen>=0.4.15')
+makedepends=('libtool' 'automake' 'autoconf')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/mediainfo/${pkgname}_${pkgver}.tar.bz2)
+md5sums=('68beb24292e9a9d207b8226411af8d17')
+
+build() {
+ cd $srcdir/MediaInfoLib/Project/GNU/Library
+
+ sh ./autogen
+ ./configure --prefix=/usr --enable-shared --disable-static --with-libcurl --with-libmms
+ make clean
+ make
+ make DESTDIR=$pkgdir install
+
+ for i in MediaInfo MediaInfoDLL; do
+ install -dm 755 $pkgdir/usr/include/$i
+ install -m 644 $srcdir/MediaInfoLib/Source/$i/*.h $pkgdir/usr/include/$i
+ done
+
+ install -dm 755 $pkgdir/usr/lib/pkgconfig
+ install -m 644 $srcdir/MediaInfoLib/Project/GNU/Library/libmediainfo.pc $pkgdir/usr/lib/pkgconfig
+ sed -i -e 's|Version: |Version: '$pkgver'|g' $pkgdir/usr/lib/pkgconfig/libmediainfo.pc
+}
diff --git a/community/libmemcached/PKGBUILD b/community/libmemcached/PKGBUILD
new file mode 100644
index 000000000..9fd94459f
--- /dev/null
+++ b/community/libmemcached/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42584 2011-03-17 18:42:33Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=libmemcached
+pkgver=0.48
+pkgrel=1
+pkgdesc="C and C++ client library to the memcached server"
+arch=('i686' 'x86_64')
+url="http://libmemcached.org/"
+license=('GPL')
+depends=('glibc')
+makedepends=('perl')
+options=('!libtool')
+source=(http://download.tangent.org/$pkgname-$pkgver.tar.gz)
+md5sums=('e00ae51492a1f9dcbb6cfba50dc54758')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # memcached is needed only in `make test', therefore we pass
+ # --without-memcached to the configure script to skip it
+ ./configure --prefix=/usr --without-memcached
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libmicrohttpd/PKGBUILD b/community/libmicrohttpd/PKGBUILD
new file mode 100644
index 000000000..44a231cd4
--- /dev/null
+++ b/community/libmicrohttpd/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 43754 2011-03-29 17:11:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Norberto Lopes <shelika@mail.telepac.pt>
+# Contributor: Kao Dome <kaodome@gmail.com>
+# Contributor: Dmitrij D. Czarkoff <czarkoff@gmail.com>
+# Contributor: Mathias Rohnstock <linksoft@gmx.de>
+
+pkgname=libmicrohttpd
+pkgver=0.9.9
+pkgrel=1
+pkgdesc="a small C library that is supposed to make it easy to run an HTTP server as part of another application."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libmicrohttpd/"
+license=('LGPL')
+options=('!libtool')
+depends=('gnutls')
+source=(ftp://ftp.gnu.org/gnu/libmicrohttpd/$pkgname-$pkgver.tar.gz)
+md5sums=('0114a439bb3cca9d9ca9e43b1f4fd0b1')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-dependency-tracking --enable-largefile \
+ --enable-curl --enable-messages --with-pic
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/src/include/platform.h \
+ ${pkgdir}/usr/include/$pkgname/platform.h
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/src/include/plibc/plibc.h \
+ ${pkgdir}/usr/include/$pkgname/plibc.h
+ sed -i 's#Cflags: -I${includedir}#Cflags: -I${includedir} -I{includedir}/libmicrohttpd#' \
+ $pkgdir/usr/lib/pkgconfig/libmicrohttpd.pc
+}
diff --git a/community/libmirage/PKGBUILD b/community/libmirage/PKGBUILD
new file mode 100644
index 000000000..ae35a957a
--- /dev/null
+++ b/community/libmirage/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 27101 2010-09-17 14:57:55Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=libmirage
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="CD-ROM image (B6T/CCD/CDI/CUE/ISO/MDS/NRG/TOC) access library"
+arch=('i686' 'x86_64')
+url="http://cdemu.sourceforge.net/"
+license=('GPL')
+depends=('glib2' 'libsndfile')
+makedepends=('bison' 'flex')
+source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+md5sums=('a223f9fd648e194c72f3809fbb0de63d')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libnetfilter_conntrack/PKGBUILD b/community/libnetfilter_conntrack/PKGBUILD
new file mode 100644
index 000000000..6d22c0edf
--- /dev/null
+++ b/community/libnetfilter_conntrack/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 43115 2011-03-24 07:48:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessandro Sagratini <ale_sagra@hotmail.com>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+
+pkgname=libnetfilter_conntrack
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="userspace library providing a programming interface (API) to the in-kernel connection tracking state table"
+arch=('i686' 'x86_64')
+depends=(libnfnetlink)
+makedepends=(pkgconfig)
+url="http://www.netfilter.org/projects/libnetfilter_conntrack/index.html"
+license=("GPL")
+options=('!libtool')
+source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('b7506cbb7580433859809d8eac53a199')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libnetfilter_queue/PKGBUILD b/community/libnetfilter_queue/PKGBUILD
new file mode 100644
index 000000000..c4b25ba9c
--- /dev/null
+++ b/community/libnetfilter_queue/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 21392 2010-07-16 11:56:31Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+# Maintainer: Filip Wojciechowski, filip at loka dot pl
+
+pkgname=libnetfilter_queue
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="userspace library providing an API to packets that have been queued by the kernel packet filter"
+arch=('i686' 'x86_64')
+url="http://www.netfilter.org/projects/libnetfilter_queue/index.html"
+license=('GPL')
+depends=(libnfnetlink)
+makedepends=(pkgconfig)
+options=('!libtool')
+source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('af6a9ea350f63a13609bc3b47b5c395c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libnewt/PKGBUILD b/community/libnewt/PKGBUILD
new file mode 100644
index 000000000..c7a1dff03
--- /dev/null
+++ b/community/libnewt/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Tom Killian <tomk@runbox.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libnewt
+pkgver=0.52.12
+pkgrel=3
+pkgdesc="Not Erik's Windowing Toolkit - text mode windowing with slang"
+arch=('i686' 'x86_64')
+url="http://www.redhat.com"
+license=('GPL')
+depends=('slang' 'popt' 'gpm')
+makedepends=('tcl' 'python2')
+optdepends=('tcl: whiptcl support' \
+ 'python2: libnewt api through _snack module')
+options=('!makeflags')
+source=(https://fedorahosted.org/releases/n/e/newt/newt-${pkgver}.tar.gz)
+md5sums=('51b04128d9e1bf000fa769c417b74486')
+
+build() {
+ cd ${srcdir}/newt-${pkgver}
+
+ sed -i "s:tcl8.4:tcl8.5:" Makefile.in
+ sed -i "s:#!/usr/bin/python:#!/usr/bin/python2:" *.py
+ sed -i "s:/usr/bin/install:/bin/install:" po/Makefile
+
+ ./configure --prefix=/usr --with-gpm-support
+ make
+}
+
+package() {
+ cd ${srcdir}/newt-${pkgver}
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/libnfnetlink/PKGBUILD b/community/libnfnetlink/PKGBUILD
new file mode 100644
index 000000000..17e77c144
--- /dev/null
+++ b/community/libnfnetlink/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 191 2009-07-20 09:12:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+# Maintainer: Filip Wojciechowski, filip at loka dot pl
+pkgname=libnfnetlink
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="low-level library for netfilter related kernel/userspace communication"
+depends=(glibc)
+url="http://www.netfilter.org/projects/libnfnetlink/index.html"
+license=('GPL')
+arch=('i686' 'x86_64')
+options=('!libtool')
+source=(http://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('016fdec8389242615024c529acc1adb8')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/libnids/PKGBUILD b/community/libnids/PKGBUILD
new file mode 100644
index 000000000..9c3991524
--- /dev/null
+++ b/community/libnids/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 80211 2010-05-13 16:40:37Z andrea $
+# Maintainer:
+# Contributor: Essien Ita Essien <essiene@datavibe.net>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=libnids
+pkgver=1.24
+pkgrel=1
+pkgdesc="An implementation of an E-component of Network Intrusion Detection System."
+arch=('i686' 'x86_64')
+url="http://libnids.sourceforge.net/"
+license=('GPL')
+depends=('libnet' 'libpcap' 'glib2')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('72d37c79c85615ffe158aa524d649610')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --man=/usr/share/man || return 1
+ make static shared || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make install_prefix=$pkgdir install _installshared || return 1
+ ln -s libnids.so.1.24 $pkgdir/usr/lib/libnids.so.1 || return 1
+}
diff --git a/community/libnoise/CMakeLists.txt b/community/libnoise/CMakeLists.txt
new file mode 100644
index 000000000..a348f2653
--- /dev/null
+++ b/community/libnoise/CMakeLists.txt
@@ -0,0 +1,101 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+
+PROJECT(libnoise)
+
+SET (LIBNOISE_SRC
+ src/latlon.cpp
+ src/model/cylinder.cpp
+ src/model/line.cpp
+ src/model/plane.cpp
+ src/model/sphere.cpp
+ src/module/abs.cpp
+ src/module/add.cpp
+ src/module/billow.cpp
+ src/module/blend.cpp
+ src/module/cache.cpp
+ src/module/checkerboard.cpp
+ src/module/clamp.cpp
+ src/module/const.cpp
+ src/module/curve.cpp
+ src/module/cylinders.cpp
+ src/module/displace.cpp
+ src/module/exponent.cpp
+ src/module/invert.cpp
+ src/module/max.cpp
+ src/module/min.cpp
+ src/module/modulebase.cpp
+ src/module/multiply.cpp
+ src/module/perlin.cpp
+ src/module/power.cpp
+ src/module/ridgedmulti.cpp
+ src/module/rotatepoint.cpp
+ src/module/scalebias.cpp
+ src/module/scalepoint.cpp
+ src/module/select.cpp
+ src/module/spheres.cpp
+ src/module/terrace.cpp
+ src/module/translatepoint.cpp
+ src/module/turbulence.cpp
+ src/module/voronoi.cpp
+ src/noisegen.cpp
+)
+
+set (BASE_HEADERS
+ src/basictypes.h
+ src/exception.h
+ src/interp.h
+ src/latlon.h
+ src/mathconsts.h
+ src/misc.h
+ src/noise.h
+ src/noisegen.h
+ src/vectortable.h
+)
+
+SET (MODEL_HEADERS
+ src/model/cylinder.h
+ src/model/line.h
+ src/model/model.h
+ src/model/plane.h
+ src/model/sphere.h
+)
+
+SET (MODULE_HEADERS
+ src/module/abs.h
+ src/module/add.h
+ src/module/billow.h
+ src/module/blend.h
+ src/module/cache.h
+ src/module/checkerboard.h
+ src/module/clamp.h
+ src/module/const.h
+ src/module/curve.h
+ src/module/cylinders.h
+ src/module/displace.h
+ src/module/exponent.h
+ src/module/invert.h
+ src/module/max.h
+ src/module/min.h
+ src/module/module.h
+ src/module/modulebase.h
+ src/module/multiply.h
+ src/module/perlin.h
+ src/module/power.h
+ src/module/ridgedmulti.h
+ src/module/rotatepoint.h
+ src/module/scalebias.h
+ src/module/scalepoint.h
+ src/module/select.h
+ src/module/spheres.h
+ src/module/terrace.h
+ src/module/translatepoint.h
+ src/module/turbulence.h
+ src/module/voronoi.h
+)
+
+ADD_LIBRARY (noise SHARED ${LIBNOISE_SRC})
+SET_TARGET_PROPERTIES (noise PROPERTIES VERSION 1.0.0)
+INSTALL(TARGETS noise DESTINATION lib)
+INSTALL(FILES ${BASE_HEADERS} DESTINATION "include/noise")
+INSTALL(FILES ${MODEL_HEADERS} DESTINATION "include/noise/model")
+INSTALL(FILES ${MODULE_HEADERS} DESTINATION "include/noise/module")
diff --git a/community/libnoise/PKGBUILD b/community/libnoise/PKGBUILD
new file mode 100644
index 000000000..6a7e56ee5
--- /dev/null
+++ b/community/libnoise/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: jimmy-6
+pkgname=libnoise
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A portable, open-source, coherent noise-generating library for C++"
+arch=('i686' 'x86_64')
+url="http://libnoise.sourceforge.net/"
+license=('LGPL')
+makedepends=('cmake' 'unzip')
+source=("http://prdownloads.sourceforge.net/libnoise/libnoisesrc-${pkgver}.zip"
+ "CMakeLists.txt")
+noextract=("libnoisesrc-${pkgver}.zip")
+md5sums=('fc0d9b4f6477397568c3a9d5294b3b8c'
+ '913a4145cdc7c38d43698386321ea85b')
+
+build() {
+ cd ${srcdir}
+ unzip "libnoisesrc-${pkgver}.zip"
+ cp 'CMakeLists.txt' 'noise'
+ mkdir build
+ cd build
+ cmake ../noise \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libnsbmp/PKGBUILD b/community/libnsbmp/PKGBUILD
new file mode 100644
index 000000000..b0a757834
--- /dev/null
+++ b/community/libnsbmp/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor; Paulo Matias <matiasΘarchlinux-br·org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libnsbmp
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="Decoding library for BMP and ICO image file formats"
+arch=('i686' 'x86_64')
+url="http://www.netsurf-browser.org/projects/libnsbmp"
+license=('MIT')
+depends=('glibc')
+source=("http://www.netsurf-browser.org/projects/releases/${pkgname}-${pkgver}-src.tar.gz")
+md5sums=('6196f5223f744c7c6493421d205e591c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make PREFIX=/usr
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make install PREFIX=/usr DESTDIR=${pkgdir}
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
+
diff --git a/community/libnsgif/PKGBUILD b/community/libnsgif/PKGBUILD
new file mode 100644
index 000000000..e12f1bb55
--- /dev/null
+++ b/community/libnsgif/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libnsgif
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="Decoding library for the GIF image file format"
+arch=('i686' 'x86_64')
+url="http://www.netsurf-browser.org/projects/libnsgif"
+license=('MIT')
+depends=('glibc')
+source=("http://www.netsurf-browser.org/projects/releases/${pkgname}-${pkgver}-src.tar.gz")
+md5sums=('08dd5fc3ea330784f6c1e55c58244749')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ CFLAGS="$CFLAGS -fno-strict-aliasing" make PREFIX=/usr
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make install PREFIX=/usr DESTDIR=${pkgdir}
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
+
diff --git a/community/liboauth/PKGBUILD b/community/liboauth/PKGBUILD
new file mode 100644
index 000000000..f11ab42d5
--- /dev/null
+++ b/community/liboauth/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 43029 2011-03-23 21:35:04Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Martin Häger <martin.haeger@gmail.com>
+
+pkgname=liboauth
+pkgver=0.9.4
+pkgrel=1
+pkgdesc='C library implementing OAuth Core RFC 5849'
+arch=('i686' 'x86_64')
+url='http://liboauth.sourceforge.net/'
+license=('MIT')
+options=('!libtool')
+depends=('curl')
+
+md5sums=('973ded7a1af348c5bfe4e3b6b7e47bd3')
+source=("${url}pool/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make; make DESTDIR=$pkgdir install
+
+ install -Dm644 COPYING.MIT \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/liboglappth/PKGBUILD b/community/liboglappth/PKGBUILD
new file mode 100644
index 000000000..7d3b4f0f2
--- /dev/null
+++ b/community/liboglappth/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 17276 2010-05-22 17:07:31Z xyne $
+# Maintainer: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=liboglappth
+pkgver=0.98
+pkgrel=2
+pkgdesc="Library containing computational chemistry facility of ghemical"
+license=("GPL")
+arch=('i686' 'x86_64')
+url="http://bioinformatics.org/ghemical/libghemical/"
+depends=('gcc-libs')
+makedepends=('mesa')
+options=(!libtool)
+source=(http://bioinformatics.org/ghemical/download/current/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}/
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
+md5sums=('dd280286a51fcba6a47264a383a2f1fe')
diff --git a/community/liboobs/PKGBUILD b/community/liboobs/PKGBUILD
new file mode 100644
index 000000000..fd27f0b64
--- /dev/null
+++ b/community/liboobs/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 27928 2010-09-30 14:47:40Z ibiru $
+# Maintainer : Ionut Biru<ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugodoria@gmail.com>
+
+pkgname=liboobs
+pkgver=2.32.0
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="A wrapping library to the System Tools Backends"
+url="ftp://ftp.gnome.org/pub/GNOME/sources/liboobs/"
+license=('GPL')
+depends=('system-tools-backends>=2.10.1')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/liboobs/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1b70061272b2c777d505b5b6c785e045d4297639dd0d4214d04dea154a9b63d6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/liboop/PKGBUILD b/community/liboop/PKGBUILD
new file mode 100644
index 000000000..ef8ea7bfc
--- /dev/null
+++ b/community/liboop/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 21592 2010-07-16 19:40:26Z tdziedzic $
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=liboop
+pkgver=1.0
+pkgrel=3
+pkgdesc='A low-level event loop management library'
+arch=('i686' 'x86_64')
+url='http://liboop.org'
+options=('!libtool')
+license=('LGPL')
+depends=('glib2' 'readline' 'adns')
+source=("http://download.ofb.net/${pkgname}/${pkgname}-$pkgver.tar.bz2")
+md5sums=('88fc8decf99fd75d2af40e0a005fa0d3')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --without-tcl
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libopenraw/PKGBUILD b/community/libopenraw/PKGBUILD
new file mode 100644
index 000000000..0294a5a1d
--- /dev/null
+++ b/community/libopenraw/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 9156 2010-01-23 23:10:28Z ttopper $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: boromil@gmail.com
+
+pkgname=libopenraw
+pkgver=0.0.8
+pkgrel=3
+pkgdesc="libopenraw is an ongoing project to provide a free software implementation for camera RAW files decoding"
+url="http://libopenraw.freedesktop.org"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('gtk2')
+makedepends=('boost' 'libjpeg>=7')
+options=('!libtool')
+source=(http://libopenraw.freedesktop.org/download/$pkgname-$pkgver.tar.gz)
+md5sums=('fc26f146586a4b601326130bce6ffd88')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/community/libopensync/PKGBUILD b/community/libopensync/PKGBUILD
new file mode 100644
index 000000000..9fb84c0be
--- /dev/null
+++ b/community/libopensync/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: $
+# Maintainer: Sergej Pupykin
+# Contributor: Hauke Wesselmann <hauke@h-dawg.de>
+# Contributor: Laurie Clark-Michalek <bluepeppers@archlinux.us>
+
+pkgname=libopensync
+pkgver=0.39
+pkgrel=3
+pkgdesc='Stable version of the opensync synchronisation framework'
+url='http://www.opensync.org'
+license=('LGPL')
+arch=('i686' 'x86_64')
+makedepends=('python2' 'cmake' 'chrpath')
+depends=('glib2' 'libxml2' 'sqlite3' 'libxslt')
+options=('!libtool')
+source=(http://www.opensync.org/download/releases/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('733211e82b61e2aa575d149dda17d475')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ #disable treating of warnings as errors
+ find /$(pwd) -type f -exec sed -i 's/-Werror//g' '{}' \;
+
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr $srcdir/$pkgname-$pkgver
+ make
+ make DESTDIR=$pkgdir install
+
+ find $pkgdir -name \*.so -type f -exec chrpath -d {} \;
+ find $pkgdir -perm /ugo+x -type f -exec chrpath -d {} \;
+}
diff --git a/community/liboping/PKGBUILD b/community/liboping/PKGBUILD
new file mode 100644
index 000000000..f4c9acae2
--- /dev/null
+++ b/community/liboping/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=liboping
+pkgver=1.6.1
+pkgrel=1
+pkgdesc='C library to generate ICMP echo requests, better known as "ping packets"'
+url='http://verplant.org/liboping/'
+arch=('i686' 'x86_64')
+license=('GPL')
+options=('!libtool')
+depends=('libcap')
+makedepends=('ncurses')
+optdepends=('perl: perl bindings'
+ 'ncurses: noping CLI tool')
+source=("${url}files/$pkgname-$pkgver.tar.gz")
+sha1sums=('8203096fa932d157069be7aeda3a1025132e129f')
+
+install=install
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # setting capabilities/setuid is futile in fakeroot
+ # (we do that in the install script)
+ sed -i 's/ install-exec-hook//g' src/Makefile.in
+
+ ./configure --prefix=/usr --enable-static=no
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/liboping/install b/community/liboping/install
new file mode 100644
index 000000000..04cdb38f8
--- /dev/null
+++ b/community/liboping/install
@@ -0,0 +1,8 @@
+post_upgrade() {
+ setcap cap_net_raw=ep usr/bin/oping
+ setcap cap_net_raw=ep usr/bin/noping
+}
+
+post_install() {
+ post_upgrade
+}
diff --git a/community/libosip2/ChangeLog b/community/libosip2/ChangeLog
new file mode 100644
index 000000000..c36d63a16
--- /dev/null
+++ b/community/libosip2/ChangeLog
@@ -0,0 +1,11 @@
+2008-04-20 Darwin Bautista <djclue917@gmail.com>
+* libosip2 3.1.0-1
+* New upstream release
+
+2007-11-21 Darwin Bautista <djclue917@gmail.com>
+* libosip2 3.0.3_2-1
+* New upstream release
+
+2007-11-16 Darwin Bautista <djclue917@gmail.com>
+* libosip2 2.2.2-1
+* Reverting back to old version since Linphone requires it
diff --git a/community/libosip2/PKGBUILD b/community/libosip2/PKGBUILD
new file mode 100644
index 000000000..fc59520bf
--- /dev/null
+++ b/community/libosip2/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 19146 2010-06-21 08:41:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Michal Hybner <dta081@gmail.com>
+
+pkgname=libosip2
+pkgver=3.3.0
+pkgrel=2
+pkgdesc="oSIP is an implementation of SIP"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/osip/"
+license=('LGPL')
+depends=(glibc)
+options=(!emptydirs !libtool)
+source=(http://ftp.gnu.org/gnu/osip/libosip2-${pkgver/_/-}.tar.gz)
+md5sums=('81493bb4d4ae6d55b71a0d4369339125')
+
+build() {
+ cd $srcdir/libosip2-${pkgver/_/-}/
+
+ patch -p1 <<EOF
+diff -wbBur libosip2-3.1.0/src/osip2/port_sema.c libosip2-3.1.0.my/src/osip2/port_sema.c
+--- libosip2-3.1.0/src/osip2/port_sema.c 2007-06-05 14:17:50.000000000 +0400
++++ libosip2-3.1.0.my/src/osip2/port_sema.c 2008-10-22 17:47:37.000000000 +0400
+@@ -22,6 +22,14 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+
++union semun
++{
++ int val;
++ struct semid_ds *buf;
++ unsigned short int *array;
++ struct seminfo *__buf;
++};
++
+ #include <osip2/internal.h>
+
+ #include <osip2/internal.h>
+EOF
+
+ ./configure --prefix=/usr --disable-semaphore --enable-sysv
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libpanelappletmm/PKGBUILD b/community/libpanelappletmm/PKGBUILD
new file mode 100644
index 000000000..5d9f5aac3
--- /dev/null
+++ b/community/libpanelappletmm/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 28934 2010-10-07 19:16:14Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: uastasi <uastasi@archlinux.us>
+pkgname=libpanelappletmm
+pkgver=2.26.0
+pkgrel=3
+pkgdesc="C++ library for creating GNOME panel applets"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL')
+depends=( 'gtkmm' 'gnome-panel-bonobo' 'gconfmm')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.26/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7aa569660b7ab36c1d86a7fa0beb7458306678e46bb2b7b1fd782bbcb5eb3852')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/usr/share
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/libpaper/PKGBUILD b/community/libpaper/PKGBUILD
new file mode 100644
index 000000000..bec068dd0
--- /dev/null
+++ b/community/libpaper/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 24485 2010-08-25 15:58:51Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: royrocks <royrocks13@gmail.com>
+
+pkgname=libpaper
+pkgver=1.1.24
+pkgrel=1
+pkgdesc="Library for handling paper characteristics"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/unstable/source/libpaper"
+license=('GPL')
+source=(http://ftp.debian.org/debian/pool/main/libp/libpaper/libpaper_${pkgver}.tar.gz)
+md5sums=('5bc87d494ba470aba54f6d2d51471834')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --mandir=$pkgdir/usr/share/man \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/libpar2/PKGBUILD b/community/libpar2/PKGBUILD
new file mode 100644
index 000000000..48d21954a
--- /dev/null
+++ b/community/libpar2/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Jaroslav Lichtblau <tu@dragonlord.cz>
+# Contributor: Paul Bredbury <brebs@sent.com>
+# Contributor: Matt McDonald <metzen@gmail.com>
+
+pkgname=libpar2
+pkgver=0.2
+pkgrel=4
+pkgdesc="Parity checking library,"
+arch=('i686' 'x86_64')
+url="http://parchive.sourceforge.net/"
+license=('GPL')
+depends=('libsigc++2.0')
+makedepends=('autoconf' 'automake' 'pkgconfig')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/parchive/${pkgname}-${pkgver}.tar.gz
+ libpar2-0.2-bugfixes.patch)
+
+md5sums=('94c6df4e38efe08056ecde2a04e0be91'
+ '66c306f42fb81016a7a58af8f45e2b68')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -p0 < ${srcdir}/libpar2-0.2-bugfixes.patch || return 1
+ autoreconf -fi || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+#Docs
+ install -d ${pkgdir}/usr/share/doc/${pkgname}
+ install -m644 -t ${pkgdir}/usr/share/doc/${pkgname}/ AUTHORS PORTING README ROADMAP || return 1
+}
diff --git a/community/libpar2/libpar2-0.2-bugfixes.patch b/community/libpar2/libpar2-0.2-bugfixes.patch
new file mode 100644
index 000000000..cb3c938df
--- /dev/null
+++ b/community/libpar2/libpar2-0.2-bugfixes.patch
@@ -0,0 +1,29 @@
+diff -aud ../libpar2-0.2-original/par2repairer.cpp ../libpar2-0.2/par2repairer.cpp
+--- ../libpar2-0.2-original/par2repairer.cpp 2006-01-20 18:25:20.000000000 +0100
++++ ../libpar2-0.2/par2repairer.cpp 2008-02-06 12:02:53.226050300 +0100
+@@ -78,6 +78,7 @@
+
+ delete mainpacket;
+ delete creatorpacket;
++ delete headers;
+ }
+
+
+@@ -1261,7 +1262,7 @@
+ DiskFile::SplitFilename(filename, path, name);
+
+ cout << "Target: \"" << name << "\" - missing." << endl;
+- sig_done.emit(name, 0, sourcefile->GetVerificationPacket()->BlockCount());
++ sig_done.emit(name, 0, sourcefile->GetVerificationPacket() ? sourcefile->GetVerificationPacket()->BlockCount() : 0);
+ }
+ }
+
+@@ -1804,7 +1805,7 @@
+ }
+ }
+ }
+- sig_done.emit(name,count,sourcefile->GetVerificationPacket()->BlockCount());
++ sig_done.emit(name,count, sourcefile->GetVerificationPacket() ? sourcefile->GetVerificationPacket()->BlockCount() : 0);
+ sig_progress.emit(1000.0);
+ return true;
+ }
diff --git a/community/libparserutils/PKGBUILD b/community/libparserutils/PKGBUILD
new file mode 100644
index 000000000..0f91f8d8d
--- /dev/null
+++ b/community/libparserutils/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 22542 2010-07-22 12:13:40Z lcarlier $
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libparserutils
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="Library for building efficient parsers"
+arch=('i686' 'x86_64')
+url="http://www.netsurf-browser.org/projects/libparserutils"
+license=('MIT')
+source=("http://www.netsurf-browser.org/projects/releases/${pkgname}-${pkgver}-src.tar.gz")
+md5sums=('5b2e4ddeebe451cc801ccd6e7da06f87')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make PREFIX=/usr
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make install PREFIX=/usr DESTDIR=${pkgdir}
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/libpqxx/ChangeLog b/community/libpqxx/ChangeLog
new file mode 100644
index 000000000..bf9624d43
--- /dev/null
+++ b/community/libpqxx/ChangeLog
@@ -0,0 +1,9 @@
+
+2009-09-16 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated to 3.0.2
+
+2009-08-06 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated to 3.0.1
+
diff --git a/community/libpqxx/PKGBUILD b/community/libpqxx/PKGBUILD
new file mode 100644
index 000000000..24d52cc41
--- /dev/null
+++ b/community/libpqxx/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 59094 2009-11-20 06:50:18Z giovanni $
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=libpqxx
+pkgver=3.1
+pkgrel=1
+pkgdesc="C++ client API for PostgreSQL"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://pqxx.org/development/libpqxx/"
+depends=('postgresql-libs>=8.4.1')
+options=('!libtool')
+source=("http://pqxx.org/download/software/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4993a516eb88d8a51125607db30ad2ef')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-shared
+ make || return 1
+ make prefix="${pkgdir}/usr" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/libquicktime/PKGBUILD b/community/libquicktime/PKGBUILD
new file mode 100644
index 000000000..45519978e
--- /dev/null
+++ b/community/libquicktime/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 43669 2011-03-28 20:04:14Z ibiru $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=libquicktime
+pkgver=1.2.2
+pkgrel=2
+pkgdesc="A library for reading and writing quicktime files."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://libquicktime.sourceforge.net/"
+depends=('gtk2' 'ffmpeg' 'alsa-lib' 'libxv' 'libgl' 'libxaw' 'x264')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('a83ddaaeaf98231d9f224190dcb8810ebdabd3edb5c8cebe2fb083d25edb7436')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --enable-gpl \
+ --with-ffmpeg \
+ --with-x264 \
+ --without-doxygen
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
diff --git a/community/libraw/PKGBUILD b/community/libraw/PKGBUILD
new file mode 100644
index 000000000..2a381ed62
--- /dev/null
+++ b/community/libraw/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 41732 2011-03-08 17:21:40Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
+pkgname=libraw
+_pkgbasename=LibRaw
+pkgver=0.13.2
+pkgrel=1
+pkgdesc="A library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others)"
+arch=('i686' 'x86_64')
+url="http://www.libraw.org/"
+license=('CDDL' 'LGPL' 'custom')
+depends=('lcms')
+options=('!makeflags')
+source=(http://www.libraw.org/data/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('e92895f6b8f975be63f59448c1b8a79b')
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/librcc/PKGBUILD b/community/librcc/PKGBUILD
new file mode 100644
index 000000000..1043c9432
--- /dev/null
+++ b/community/librcc/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 30655 2010-10-19 14:04:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=librcc
+pkgver=0.2.6
+pkgrel=3
+pkgdesc="Charset Conversion Library"
+arch=(i686 x86_64)
+url="http://rusxmms.sourceforge.net/"
+license=('GPL')
+depends=(aspell enca libxml2 db librcd)
+makedepends=(patch gtk gtk2)
+install=librcc.install
+source=(http://downloads.sourceforge.net/rusxmms/${pkgname}-${pkgver}.tar.bz2
+ librcc-strnlen.patch)
+md5sums=('9bbf248c7312c73c0b6ca19b9c5a2af1'
+ '040313d1d8f166ccf2b128cea4c05f21')
+
+build() {
+ cd ${startdir}/src/$pkgname-${pkgver}
+ ./configure --prefix=/usr
+
+ patch -p1 <$srcdir/librcc-strnlen.patch
+
+ make || return 1
+
+ mkdir -p $startdir/pkg/etc/rcc
+ mkdir -p $startdir/pkg/usr/lib/rcc/engines
+ mkdir -p $startdir/pkg/usr/bin
+
+ make DESTDIR=$startdir/pkg install
+
+ rm -f $startdir/pkg/usr/lib/*.la
+ rm -f $startdir/pkg/usr/lib/rcc/engines/*.a
+ rm -f $startdir/pkg/usr/lib/rcc/engines/*.la
+
+ make -C examples
+ make -C examples install DESTDIR=$startdir/pkg
+ rm -f $startdir/pkg/usr/bin/example*
+
+ install -m 644 examples/rcc.xml $startdir/pkg/etc
+
+ if [ -f $startdir/pkg/usr/bin/rcc-gtk2-config ]; then
+ ln -s rcc-gtk2-config $startdir/pkg/usr/bin/rcc-config
+ elif [ -f $startdir/pkg/usr/bin/rcc-gtk-config ]; then
+ ln -s rcc-gtk-config $startdir/pkg/usr/bin/rcc-config
+ else
+ echo "#!/bin/bash" > $startdir/pkg/usr/bin/rcc-config
+ echo "echo \"Configuration UI is not available!\"" >> $startdir/pkg/usr/bin/rcc-config
+ fi
+}
diff --git a/community/librcc/librcc-strnlen.patch b/community/librcc/librcc-strnlen.patch
new file mode 100644
index 000000000..9fc0e8b0b
--- /dev/null
+++ b/community/librcc/librcc-strnlen.patch
@@ -0,0 +1,17 @@
+diff -wbBur librcc-0.2.6/src/rccstring.h librcc-0.2.6.qwe/src/rccstring.h
+--- librcc-0.2.6/src/rccstring.h 2006-01-08 15:42:59.000000000 +0000
++++ librcc-0.2.6.qwe/src/rccstring.h 2009-09-28 08:45:37.000000000 +0000
+@@ -18,13 +18,6 @@
+ int rccStringFixID(rcc_string string, rcc_context ctx);
+ int rccStringChangeID(rcc_string string, rcc_language_id language_id);
+
+-#ifdef HAVE_STRNLEN
+-# ifndef strnlen
+-int strnlen(const char *str, size_t size);
+-# endif /* !strnlen */
+-#else
+-int rccStrnlen(const char *str, size_t size);
+-#endif /* HAVE_STRNLEN */
+ int rccIsASCII(const char *str);
+ size_t rccStringSizedGetChars(const char *str, size_t size);
+
diff --git a/community/librcc/librcc.install b/community/librcc/librcc.install
new file mode 100644
index 000000000..8d2ccce98
--- /dev/null
+++ b/community/librcc/librcc.install
@@ -0,0 +1,28 @@
+pre_install() {
+ /bin/true
+}
+
+post_install() {
+ echo "-- Don't forget to install gtk or/and gtk2 packages to enable librcc"
+ echo " gui features"
+ echo "-- Also you may change /usr/bin/rcc-config symlink to switch between"
+ echo " gtk and gtk2 (rcc-gtk-config and rcc-gtk2-config)"
+ /bin/true
+}
+
+pre_upgrade() {
+ /bin/true
+}
+
+post_upgrade() {
+ /bin/true
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
diff --git a/community/librcd/PKGBUILD b/community/librcd/PKGBUILD
new file mode 100644
index 000000000..6b4daf162
--- /dev/null
+++ b/community/librcd/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 21395 2010-07-16 11:57:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=librcd
+pkgver=0.1.11
+pkgrel=2
+pkgdesc="Charset Detection Library"
+arch=(i686 x86_64)
+url="http://rusxmms.sourceforge.net/"
+depends=(glibc)
+license=('GPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/rusxmms/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('17fcea35961f85c21c58a233d54a508c')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/librep/PKGBUILD b/community/librep/PKGBUILD
new file mode 100644
index 000000000..883f3b7fe
--- /dev/null
+++ b/community/librep/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 42084 2011-03-13 17:47:35Z shusmann $
+# Maintainer: stefan-husmann@t-online.de
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=librep
+pkgver=0.91.1
+pkgrel=1
+pkgdesc="A Lisp system for UNIX"
+license=('GPL2')
+arch=('i686' 'x86_64')
+url="http://sawfish.wikia.com/wiki/Librep"
+depends=('gmp' 'gdbm' 'libffi' 'bash')
+install=${pkgname}.install
+options=('libtool' '!emptydirs')
+source=(http://download.tuxfamily.org/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('6cba5bdb145814c4985b2f1939d161b76f494b7c')
+
+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/librep/librep.install b/community/librep/librep.install
new file mode 100644
index 000000000..4bc79b7e2
--- /dev/null
+++ b/community/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/libreplaygain/ChangeLog b/community/libreplaygain/ChangeLog
new file mode 100644
index 000000000..e5a5d81dd
--- /dev/null
+++ b/community/libreplaygain/ChangeLog
@@ -0,0 +1,3 @@
+2010-02-04 Corrado Primier <bardo@aur.archlinux.org>
+
+ * PKGBUILD: added to [community]
diff --git a/community/libreplaygain/PKGBUILD b/community/libreplaygain/PKGBUILD
new file mode 100644
index 000000000..63712d22e
--- /dev/null
+++ b/community/libreplaygain/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+pkgname=libreplaygain
+pkgver=453
+pkgrel=1
+pkgdesc="A library to adjust audio gain"
+arch=('i686' 'x86_64')
+url="http://www.musepack.net/index.php?pg=src"
+license=('LGPL')
+depends=('glibc')
+makedepends=('cmake')
+source=(http://files.musepack.net/source/${pkgname}_r${pkgver}.tar.gz)
+md5sums=('1bde8f0319fd2a2b9921b2a2dfc47655')
+
+build() {
+ mkdir "${srcdir}/${pkgname}_r${pkgver}/build"
+ cd "${srcdir}/${pkgname}_r${pkgver}/build"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ..
+ make DESTDIR="${pkgdir}/" install
+
+ mkdir -p "${pkgdir}/usr/include/replaygain/"
+ install -Dm644 ${srcdir}/${pkgname}_r${pkgver}/include/replaygain/* \
+ ${pkgdir}/usr/include/replaygain/
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/librsync/ChangeLog b/community/librsync/ChangeLog
new file mode 100644
index 000000000..4cdab3f13
--- /dev/null
+++ b/community/librsync/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Recompiled with --with-pic to fix relocation errors
diff --git a/community/librsync/PKGBUILD b/community/librsync/PKGBUILD
new file mode 100644
index 000000000..d0fd33cf3
--- /dev/null
+++ b/community/librsync/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 11387 2010-02-10 04:50:34Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: Christoph 'delmonico' Neuroth <delmonico@gmx.net>
+
+pkgname=librsync
+pkgver=0.9.7
+pkgrel=5
+pkgdesc="A free software library that implements the rsync remote-delta algorithm (rdiff)"
+arch=('i686' 'x86_64')
+url="http://librsync.sourceforge.net/"
+license=('GPL')
+depends=('popt' 'zlib' 'bzip2')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/librsync/$pkgname-$pkgver.tar.gz
+ lfs-overflow.patch)
+md5sums=('24cdb6b78f45e0e83766903fd4f6bc84'
+ 'e18536482c0a32e7004c46eac6a53b2d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Patch for large files (https://bugzilla.redhat.com/show_bug.cgi?id=207940)
+ patch -Np1 -i "$srcdir/lfs-overflow.patch" || return 1
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-shared
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/librsync/lfs-overflow.patch b/community/librsync/lfs-overflow.patch
new file mode 100644
index 000000000..714fbaa84
--- /dev/null
+++ b/community/librsync/lfs-overflow.patch
@@ -0,0 +1,55 @@
+Files over 4 Gig in size encountered an error resulting in an unsuccessful copy as
+per (upstream) Bug Request ID: 1110812.
+
+The assignment 'len = job->basis_len' sometimes overflows. Made changes so that
+assignment is done only when appropriate.
+
+rs_mdfour variables B and C were observed to overflow their 'int' definition.
+This has been changed to 'unsigned int', which is now consistent with like coding
+in the openssl package.
+
+--- librsync-0.9.7/mdfour.h 2004-02-08 00:17:57.000000000 +0100
++++ librsync-0.9.7/mdfour.h.lfs_overflow 2006-03-10 11:44:10.000000000 +0100
+@@ -1,7 +1,7 @@
+ /*= -*- c-basic-offset: 4; indent-tabs-mode: nil; -*-
+ *
+ * librsync -- the library for network deltas
+- * $Id: mdfour.h,v 1.7 2003/10/17 16:15:21 abo Exp $
++ * $Id: mdfour.h,v 1.8 2006/03/10 10:44:10 abo Exp $
+ *
+ * Copyright (C) 2000, 2001 by Martin Pool <mbp@samba.org>
+ * Copyright (C) 2002, 2003 by Donovan Baarda <abo@minkirri.apana.org.au>
+@@ -24,7 +24,7 @@
+ #include "types.h"
+
+ struct rs_mdfour {
+- int A, B, C, D;
++ unsigned int A, B, C, D;
+ #if HAVE_UINT64
+ uint64_t totalN;
+ #else
+--- librsync-0.9.7/patch.c 2004-09-17 23:35:50.000000000 +0200
++++ librsync-0.9.7/patch.c.lfs_overflow 2006-03-10 11:44:10.000000000 +0100
+@@ -1,7 +1,7 @@
+ /*= -*- c-basic-offset: 4; indent-tabs-mode: nil; -*-
+ *
+ * librsync -- the library for network deltas
+- * $Id: patch.c,v 1.30 2004/09/10 02:48:58 mbp Exp $
++ * $Id: patch.c,v 1.31 2006/03/10 10:44:10 abo Exp $
+ *
+ * Copyright (C) 2000, 2001 by Martin Pool <mbp@samba.org>
+ *
+@@ -214,12 +214,9 @@
+ void *buf, *ptr;
+ rs_buffers_t *buffs = job->stream;
+
+- len = job->basis_len;
+-
+ /* copy only as much as will fit in the output buffer, so that we
+ * don't have to block or store the input. */
+- if (len > buffs->avail_out)
+- len = buffs->avail_out;
++ len = (buffs->avail_out < job->basis_len) ? buffs->avail_out : job->basis_len;
+
+ if (!len)
+ return RS_BLOCKED;
diff --git a/community/librtfcomp/PKGBUILD b/community/librtfcomp/PKGBUILD
new file mode 100644
index 000000000..7622c5f1b
--- /dev/null
+++ b/community/librtfcomp/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Bartek Iwaniec <hash87 [at] gmail [dot] com>
+
+pkgname=librtfcomp
+pkgver=1.1
+pkgrel=4
+pkgdesc="SynCE librtfcomp library"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.synce.org/"
+depends=(pyrex)
+source=(http://downloads.sourceforge.net/synce/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b7f70dc41687d920ec9f47c01f56d6ce')
+
+build() {
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+#Remove the conflicting binary file (conflict with core-utils). I don't know any other workaround.
+ rm ${pkgdir}/usr/bin/test
+ cd ..
+
+}
diff --git a/community/libsieve/PKGBUILD b/community/libsieve/PKGBUILD
new file mode 100644
index 000000000..fc080c5f8
--- /dev/null
+++ b/community/libsieve/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 21398 2010-07-16 11:57:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libsieve
+pkgver=2.2.7
+pkgrel=2
+pkgdesc="sieve interpretator lib"
+arch=(i686 x86_64)
+url="http://libsieve.sourceforge.net/"
+license=('GPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/libsieve/libsieve-$pkgver.tar.gz)
+md5sums=('7415e7cfe40cfc6cf43ae26efb5f0fb7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver/src"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/libssh2/PKGBUILD b/community/libssh2/PKGBUILD
new file mode 100644
index 000000000..636822fad
--- /dev/null
+++ b/community/libssh2/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 34134 2010-12-03 13:35:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: ice-man <icemanf@gmail.com>
+
+pkgname=libssh2
+pkgver=1.2.7
+pkgrel=1
+pkgdesc="A library implementing the SSH2 protocol as defined by Internet Drafts"
+url="http://www.libssh2.org/"
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('openssl')
+makedepends=('zlib')
+options=('!libtool')
+source=("http://www.libssh2.org/download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('a5d78344886f1282e4008c09bf568076')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/libstatgrab/PKGBUILD b/community/libstatgrab/PKGBUILD
new file mode 100644
index 000000000..08f42c7d5
--- /dev/null
+++ b/community/libstatgrab/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 38529 2011-01-27 20:56:07Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+
+pkgname=libstatgrab
+pkgver=0.17
+pkgrel=1
+pkgdesc="A library that provides cross platform access to statistics about the system on which it's run"
+arch=('i686' 'x86_64')
+url="http://www.i-scream.org/libstatgrab"
+license=('LGPL' 'GPL')
+depends=('ncurses' 'perl')
+options=('!libtool' '!makeflags')
+changelog=$pkgname.changelog
+source=(http://www.mirrorservice.org/sites/ftp.i-scream.org/pub/i-scream/$pkgname/$pkgname-$pkgver.tar.gz)
+sha256sums=('bbaa88c6bde8bd3cf2720b81a26528cc055a7e83e4ea3bdb1d0a3c4287cceb88')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/libstatgrab/libstatgrab.changelog b/community/libstatgrab/libstatgrab.changelog
new file mode 100644
index 000000000..ee8f7860f
--- /dev/null
+++ b/community/libstatgrab/libstatgrab.changelog
@@ -0,0 +1,11 @@
+2011-01-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * libstatgrab 0.17-1
+
+2010-07-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * rebuild for correct package naming
+
+2008-03-20 Eric Belanger <eric@archlinux.org>
+
+ * libstatgrab 0.16-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/community/libsynaptics/PKGBUILD b/community/libsynaptics/PKGBUILD
new file mode 100644
index 000000000..69966e5f2
--- /dev/null
+++ b/community/libsynaptics/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 21469 2010-07-16 12:30:12Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=libsynaptics
+pkgver=0.14.6c
+pkgrel=4
+pkgdesc="Library for accessing synaptics touchpads"
+arch=('i686' 'x86_64')
+url="http://qsynaptics.sourceforge.net"
+license=('GPL')
+depends=('gcc-libs')
+options=('!libtool')
+source=(http://qsynaptics.sourceforge.net/$pkgname-$pkgver.tar.bz2 libsynaptics-gcc433.patch)
+md5sums=('fedf8b31171d288954ff2e83b251de44'
+ '5e1df34fe8c2480b803a8ea6520bdda8')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np0 -i ../libsynaptics-gcc433.patch
+ sed -i '1,1i#include <stdio.h>' pad.cpp
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/libsynaptics/libsynaptics-gcc433.patch b/community/libsynaptics/libsynaptics-gcc433.patch
new file mode 100644
index 000000000..162ecb0fe
--- /dev/null
+++ b/community/libsynaptics/libsynaptics-gcc433.patch
@@ -0,0 +1,10 @@
+--- pad.cpp 2009-01-29 20:29:48.000000000 +0100
++++ pad.cpp 2009-01-29 20:29:48.000000000 +0100
+@@ -4,6 +4,7 @@
+ #include <pthread.h>
+ #include <unistd.h>
+ #include <sys/shm.h>
++#include <stdlib.h>
+
+ //
+ // singleton specific code
diff --git a/community/libtar/PKGBUILD b/community/libtar/PKGBUILD
new file mode 100644
index 000000000..62f5394b9
--- /dev/null
+++ b/community/libtar/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer : Biru Ionut <ionut@archlinux.ro>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=libtar
+pkgver=1.2.11
+pkgrel=2
+pkgdesc="C library for manipulating POSIX tar files"
+arch=('i686' 'x86_64')
+url="http://www.feep.net/libtar/"
+license=('BSD')
+depends=('zlib')
+source=(ftp://ftp.feep.net/pub/software/$pkgname/$pkgname-$pkgver.tar.gz \
+ libtar-$pkgver.patch)
+md5sums=('604238e8734ce6e25347a58c4f1a1d7e' 'baef7da841c186e1830566296859c35b')
+sha1sums=('9611f23024b0e89aad1cfea301122186b3c160f8' '100c37378faea118c6664cd8958caa91f34633d0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ export CFLAGS+=" -fPIC"
+ patch -Np1 -i ../libtar-$pkgver.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make DESTDIR="$pkgdir" install
+ install -D -m644 COPYRIGHT "$pkgdir/usr/share/licenses/$pkgname/COPYRIGHT"
+}
diff --git a/community/libtar/libtar-1.2.11.patch b/community/libtar/libtar-1.2.11.patch
new file mode 100644
index 000000000..347203dc3
--- /dev/null
+++ b/community/libtar/libtar-1.2.11.patch
@@ -0,0 +1,108 @@
+diff -Naur libtar-1.2.11-orig/lib/decode.c libtar-1.2.11/lib/decode.c
+--- libtar-1.2.11-orig/lib/decode.c 2003-01-06 17:40:59.000000000 -0800
++++ libtar-1.2.11/lib/decode.c 2004-08-13 12:26:34.000000000 -0700
+@@ -26,7 +26,7 @@
+ char *
+ th_get_pathname(TAR *t)
+ {
+- char filename[MAXPATHLEN];
++ static char filename[MAXPATHLEN];
+
+ if (t->th_buf.gnu_longname)
+ return t->th_buf.gnu_longname;
+@@ -35,11 +35,11 @@
+ {
+ snprintf(filename, sizeof(filename), "%.155s/%.100s",
+ t->th_buf.prefix, t->th_buf.name);
+- return strdup(filename);
++ return filename;
+ }
+
+ snprintf(filename, sizeof(filename), "%.100s", t->th_buf.name);
+- return strdup(filename);
++ return filename;
+ }
+
+
+diff -Naur libtar-1.2.11-orig/lib/extract.c libtar-1.2.11/lib/extract.c
+--- libtar-1.2.11-orig/lib/extract.c 2003-03-02 15:58:07.000000000 -0800
++++ libtar-1.2.11/lib/extract.c 2004-08-13 12:26:34.000000000 -0700
+@@ -28,14 +28,6 @@
+ #endif
+
+
+-struct linkname
+-{
+- char ln_save[MAXPATHLEN];
+- char ln_real[MAXPATHLEN];
+-};
+-typedef struct linkname linkname_t;
+-
+-
+ static int
+ tar_set_file_perms(TAR *t, char *realname)
+ {
+@@ -98,7 +90,9 @@
+ tar_extract_file(TAR *t, char *realname)
+ {
+ int i;
+- linkname_t *lnp;
++ char *lnp;
++ int pathname_len;
++ int realname_len;
+
+ if (t->options & TAR_NOOVERWRITE)
+ {
+@@ -137,11 +131,13 @@
+ if (i != 0)
+ return i;
+
+- lnp = (linkname_t *)calloc(1, sizeof(linkname_t));
++ pathname_len = strlen(th_get_pathname(t)) + 1;
++ realname_len = strlen(realname) + 1;
++ lnp = (char *)calloc(1, pathname_len + realname_len);
+ if (lnp == NULL)
+ return -1;
+- strlcpy(lnp->ln_save, th_get_pathname(t), sizeof(lnp->ln_save));
+- strlcpy(lnp->ln_real, realname, sizeof(lnp->ln_real));
++ strcpy(&lnp[0], th_get_pathname(t));
++ strcpy(&lnp[pathname_len], realname);
+ #ifdef DEBUG
+ printf("tar_extract_file(): calling libtar_hash_add(): key=\"%s\", "
+ "value=\"%s\"\n", th_get_pathname(t), realname);
+@@ -288,7 +284,7 @@
+ {
+ char *filename;
+ char *linktgt = NULL;
+- linkname_t *lnp;
++ char *lnp;
+ libtar_hashptr_t hp;
+
+ if (!TH_ISLNK(t))
+@@ -304,8 +300,8 @@
+ if (libtar_hash_getkey(t->h, &hp, th_get_linkname(t),
+ (libtar_matchfunc_t)libtar_str_match) != 0)
+ {
+- lnp = (linkname_t *)libtar_hashptr_data(&hp);
+- linktgt = lnp->ln_real;
++ lnp = (char *)libtar_hashptr_data(&hp);
++ linktgt = &lnp[strlen(lnp) + 1];
+ }
+ else
+ linktgt = th_get_linkname(t);
+diff -Naur libtar-1.2.11-orig/lib/libtar.h libtar-1.2.11/lib/libtar.h
+--- libtar-1.2.11-orig/lib/libtar.h 2003-01-06 17:40:59.000000000 -0800
++++ libtar-1.2.11/lib/libtar.h 2004-08-13 12:26:52.000000000 -0700
+@@ -63,9 +63,9 @@
+ /***** handle.c ************************************************************/
+
+ typedef int (*openfunc_t)(const char *, int, ...);
+-typedef int (*closefunc_t)(int);
+-typedef ssize_t (*readfunc_t)(int, void *, size_t);
+-typedef ssize_t (*writefunc_t)(int, const void *, size_t);
++typedef int (*closefunc_t)(long);
++typedef ssize_t (*readfunc_t)(long, void *, size_t);
++typedef ssize_t (*writefunc_t)(long, const void *, size_t);
+
+ typedef struct
+ {
diff --git a/community/libtextcat/PKGBUILD b/community/libtextcat/PKGBUILD
new file mode 100644
index 000000000..1c16a8f0f
--- /dev/null
+++ b/community/libtextcat/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 3771 2009-10-08 20:16:09Z ibiru $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libtextcat
+pkgver=2.2
+pkgrel=6
+pkgdesc="Library that implements N-gram-based text categorization"
+arch=('i686' 'x86_64')
+url="http://software.wise-guys.nl/libtextcat/"
+license=('BSD')
+depends=('glibc')
+options=(!libtool)
+source=(http://software.wise-guys.nl/download/$pkgname-$pkgver.tar.gz)
+md5sums=('128cfc86ed5953e57fe0f5ae98b62c2e')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+
+ install -D -m644 src/textcat.h $startdir/pkg/usr/include/textcat.h
+ mkdir -p $startdir/pkg/usr/share/libtextcat/{LM,ShortTexts}
+ install -m644 langclass/conf.txt $startdir/pkg/usr/share/libtextcat
+ install -m644 langclass/LM/*.lm $startdir/pkg/usr/share/libtextcat/LM
+ install -m644 langclass/ShortTexts/*.txt $startdir/pkg/usr/share/libtextcat/ShortTexts
+
+ install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+ sed -i 's|LM|/usr/share/libtextcat/LM|' ${pkgdir}/usr/share/libtextcat/conf.txt
+}
diff --git a/community/libtlen/PKGBUILD b/community/libtlen/PKGBUILD
new file mode 100644
index 000000000..e4c4bbf72
--- /dev/null
+++ b/community/libtlen/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 22906 2010-08-01 03:53:55Z mherych $
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+
+pkgname=libtlen
+pkgver=20041113
+pkgrel=4
+pkgdesc="A Tlen.pl protocol library"
+arch=('i686' 'x86_64')
+url="http://libtlen.sourceforge.net/"
+license=("GPL")
+depends=(glibc)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('b77c0a3234a21d1b79df8a8b9a9b9534')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/libtorrent/PKGBUILD b/community/libtorrent/PKGBUILD
new file mode 100644
index 000000000..a3c670b43
--- /dev/null
+++ b/community/libtorrent/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: sh__
+
+pkgname=libtorrent
+pkgver=0.12.6
+pkgrel=2
+pkgdesc="BitTorrent library written in C++"
+arch=('i686' 'x86_64')
+url="http://libtorrent.rakshasa.no"
+license=('GPL')
+depends=('libsigc++2.0' 'openssl')
+options=('!libtool')
+source=(http://libtorrent.rakshasa.no/downloads/$pkgname-$pkgver.tar.gz)
+md5sums=('037499ed708aaf72988cee60e5a8d96b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" \
+ ./configure --prefix=/usr --disable-debug || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/libtrash/PKGBUILD b/community/libtrash/PKGBUILD
new file mode 100644
index 000000000..b870d83ae
--- /dev/null
+++ b/community/libtrash/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 24969 2010-08-29 20:08:31Z jlichtblau $
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libtrash
+pkgver=3.2
+pkgrel=2
+pkgdesc="A shared, preloaded library that implements a trash can under Linux"
+arch=('i686' 'x86_64')
+url="http://pages.stern.nyu.edu/~marriaga/software/libtrash/"
+license=('GPL')
+depends=('glibc')
+makedepends=('patch' 'python')
+install=$pkgname.install
+source=(http://pages.stern.nyu.edu/~marriaga/software/libtrash/$pkgname-latest.tgz libtrash.patch libtrash.sh)
+md5sums=('147f645738088c83738259376737bc42'
+ '662e030819f2954b59e7646c77855f6c'
+ 'de716ae481adc8e88ddd32ea72808230')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np1 -i $startdir/src/libtrash.patch
+
+ install -d ${pkgdir}/usr/lib ${pkgdir}/etc/profile.d
+ make INSTLIBDIR=${pkgdir}/usr/lib SYSCONFFILE=${pkgdir}/etc
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make INSTLIBDIR=${pkgdir}/usr/lib SYSCONFFILE=${pkgdir}/etc install
+ install -D -m 644 ${srcdir}/libtrash.sh ${pkgdir}/etc/profile.d/libtrash.sh
+}
diff --git a/community/libtrash/libtrash.install b/community/libtrash/libtrash.install
new file mode 100644
index 000000000..9b1d1db9d
--- /dev/null
+++ b/community/libtrash/libtrash.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo ">> To enable libtrash at login:"
+ echo ">> chmod 755 /etc/profile.d/libtrash.sh"
+ echo ">> To enable libtrash at any moment:"
+ echo ">> . /etc/profile.d/libtrash.sh"
+ echo ">> To disable libtrash at any moment:"
+ echo ">> unset LD_PRELOAD"
+ echo ">> WARNING: fakeroot will not work while libtrash is enabled."
+ echo ">> Disable libtrash before using fakeroot!"
+}
+
+post_upgrade() {
+ post_install
+}
+
diff --git a/community/libtrash/libtrash.patch b/community/libtrash/libtrash.patch
new file mode 100644
index 000000000..df08f9174
--- /dev/null
+++ b/community/libtrash/libtrash.patch
@@ -0,0 +1,11 @@
+diff -urN libtrash-2.1/src/Makefile libtrash-2.1-new/src/Makefile
+--- libtrash-2.1/src/Makefile 2003-06-24 16:35:25.000000000 -0700
++++ libtrash-2.1-new/src/Makefile 2003-07-13 01:35:35.000000000 -0700
+@@ -29,7 +29,6 @@
+ TRASH_OFF=YES install libtrash.so.${VERSION} ${INSTLIBDIR}/libtrash.so.${VERSION}
+ TRASH_OFF=YES ln -sf libtrash.so.${VERSION} ${INSTLIBDIR}/libtrash.so
+ TRASH_OFF=YES install libtrash.conf.sys --mode a=r ${SYSCONFFILE}
+- ldconfig
+
+ clean:
+ rm -f *~
diff --git a/community/libtrash/libtrash.sh b/community/libtrash/libtrash.sh
new file mode 100644
index 000000000..d2850a56e
--- /dev/null
+++ b/community/libtrash/libtrash.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+export LD_PRELOAD=/usr/lib/libtrash.so.3.2
diff --git a/community/libview/PKGBUILD b/community/libview/PKGBUILD
new file mode 100644
index 000000000..faf65a9cd
--- /dev/null
+++ b/community/libview/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 21404 2010-07-16 11:58:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libview
+pkgver=0.6.6
+pkgrel=1
+pkgdesc="A collection of widgets that were developed at VMware"
+arch=('i686' 'x86_64')
+url="http://view.sourceforge.net"
+options=('!libtool')
+license=('MIT')
+depends=('gtkmm' 'libsigc++')
+source=(http://downloads.sf.net/sourceforge/view/libview-$pkgver.tar.gz)
+md5sums=('f50f7cb04a4918e52a1707014dde47d2')
+
+build() {
+ cd $srcdir/libview-$pkgver
+ ./autogen.sh --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+ install -D COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/libvirt/PKGBUILD b/community/libvirt/PKGBUILD
new file mode 100644
index 000000000..8cda3a98e
--- /dev/null
+++ b/community/libvirt/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 44221 2011-04-04 14:55:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jonathan Wiersma <archaur at jonw dot org>
+
+pkgname=libvirt
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="API for controlling virtualization engines (openvz,kvm,qemu,virtualbox,xen,etc)"
+arch=('i686' 'x86_64')
+url="http://libvirt.org/"
+license=('LGPL')
+depends=('e2fsprogs' 'gnutls' 'iptables' 'libxml2' 'parted' 'polkit' 'python2'
+ 'avahi' 'yajl' 'libpciaccess' 'udev' 'dbus-core' 'libxau' 'libxdmcp' 'libpcap'
+ 'curl' 'libsasl' 'libgcrypt' 'libgpg-error' 'openssl' 'libxcb' 'gcc-libs'
+ 'iproute2')
+makedepends=('pkgconfig' 'lvm2')
+optdepends=('bridge-utils: for briged networking (default)'
+ 'dnsmasq: for NAT/DHCP for guests'
+ 'kernel26-ovz24: for openvz guests'
+ 'kvm'
+ 'lxc'
+ 'openbsd-netcat: for remote management over ssh'
+ 'qemu'
+ 'user-mode-linux'
+ 'virtualbox_bin'
+ 'virtualbox-ose'
+ 'xen')
+options=('emptydirs' '!libtool')
+backup=('etc/conf.d/libvirtd'
+ 'etc/libvirt/libvirtd.conf'
+ 'etc/libvirt/qemu.conf'
+ 'etc/sasl2/libvirt.conf')
+install="libvirt.install"
+source=("http://libvirt.org/sources/$pkgname-$pkgver.tar.gz"
+ libvirtd.rc.d
+ libvirtd.conf.d
+ openbsd-netcat-default.patch
+ unixperms.patch)
+md5sums=('53d005e6f3732aba1fd6b2718f9cec99'
+ '26005f9fe6085e2858f855d94eace5f4'
+ 'cb4e9bc6b209c1f3077d3698bf1d4437'
+ '7d5a841d51321be56ad3c4f93d112fb0'
+ 'db95aecdf2ccf3693fef5821cdcb7eba')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # python2 fix
+ export PYTHON=`which python2`
+ 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
+
+# for more information on authentication see http://libvirt.org/auth.html
+# If you wish to have unix-permissions based access rather than only polkit
+# access, create a group called libvirt and uncomment the line below:
+# patch -Np1 -i "$srcdir"/unixperms.patch
+
+ [ $NOEXTRACT -eq 1 ] || patch -Np1 -i "$srcdir"/openbsd-netcat-default.patch
+
+ export LDFLAGS=-lX11
+ [ -f Makefile ] || ./configure --prefix=/usr --libexec=/usr/lib/"$pkgname" \
+ --with-storage-lvm --without-xen --with-udev --without-hal
+ find -name Makefile -exec sed -i 's#-L /usr#-L/usr#' {} \;
+ make -j1
+ make DESTDIR="$pkgdir" install
+ install -D -m755 "$srcdir"/libvirtd.rc.d "$pkgdir"/etc/rc.d/libvirtd
+ install -D -m644 "$srcdir"/libvirtd.conf.d "$pkgdir"/etc/conf.d/libvirtd
+ rm -rf $pkgdir/var/run
+}
diff --git a/community/libvirt/libvirt.install b/community/libvirt/libvirt.install
new file mode 100644
index 000000000..3881386d2
--- /dev/null
+++ b/community/libvirt/libvirt.install
@@ -0,0 +1,38 @@
+_libvirt_setup() {
+ rm -f /usr/lib/python?.?/site-packages/libvirt.pyc
+ echo ">>> To use libvirt as a non-root user:"
+ echo ">>> Use polkit to grant access."
+ echo ">>> ...or change the access model in /etc/libvirt/libvirtd.conf."
+ echo ">>> (see unixperms.patch in PKGBUILD for help)"
+ echo ""
+}
+
+post_install() {
+ _libvirt_setup || return 1
+ echo ">>> Be sure to see optdepends as you may find some of them helpfull."
+ echo ">>> Especially: bridge-utils, dnsmasq, and hal."
+ echo ""
+ echo ">>> To start libvirtd run: '/etc/rc.d/libvirtd start' as root."
+ echo ">>> Add 'libvirtd' to daemons in /etc/rc.conf if you want it to load upon"
+ echo ">>> booting."
+ echo ""
+ /bin/true
+}
+
+post_upgrade() {
+ _libvirt_setup || return 1
+ echo ">>> To finish the upgrade, restart libvirtd by running the command:"
+ echo ">>> '/etc/rc.d/libvirtd restart' as root or rebooting."
+ echo ">>> You may also need to run 'rm -rf ~/.libvirt'"
+ echo ""
+ /bin/true
+}
+
+post_remove() {
+ rm -f /usr/lib/python[0-9].[0-9]/site-packages/libvirt.pyc
+ echo ">>> You may wish to delete the group 'libvirt' if it still exists."
+ echo ">>> It can be removed by running 'groupdel libvirt' as root."
+ echo ""
+ depmod -a
+ /bin/true
+}
diff --git a/community/libvirt/libvirtd.conf.d b/community/libvirt/libvirtd.conf.d
new file mode 100644
index 000000000..31d559c83
--- /dev/null
+++ b/community/libvirt/libvirtd.conf.d
@@ -0,0 +1,3 @@
+LIBVIRTD_CONFIG=
+LIBVIRTD_ARGS=
+KRB5_KTNAME=/etc/libvirt/krb5.tab
diff --git a/community/libvirt/libvirtd.rc.d b/community/libvirt/libvirtd.rc.d
new file mode 100755
index 000000000..12e3d927e
--- /dev/null
+++ b/community/libvirt/libvirtd.rc.d
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/conf.d/libvirtd
+. /etc/rc.d/functions
+
+LIBVIRTD_CONFIG_ARGS=
+if [ -n "$LIBVIRTD_CONFIG" ]
+then
+ LIBVIRTD_CONFIG_ARGS="--config $LIBVIRTD_CONFIG"
+fi
+
+PID=`pidof -o %PPID /usr/sbin/libvirtd`
+case "$1" in
+ start)
+ stat_busy "Starting libvirtd"
+ for i in /var/run/libvirt/qemu /var/run/libvirt/lxc /var/run/libvirt/uml /var/run/libvirt/network; do
+ [ -d $i ] || mkdir -p $i
+ done
+ [ -z "$PID" ] && (
+ mkdir -p /var/{cache,run}/libvirt
+ rm -rf /var/cache/libvirt/*
+ KRB5_KTNAME=$KRB5_KTNAME \
+ /usr/sbin/libvirtd --daemon $LIBVIRTD_CONFIG_ARGS $LIBVIRTD_ARGS
+ )
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon libvirtd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping libvirtd"
+ [ ! -z "$PID" ] && (
+ kill $PID &> /dev/null
+ rm -rf /var/cache/libvirt/*
+ rm -f /var/run/libvirtd.pid
+ )
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon acpid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ reload)
+ stat_busy "Reloading libvirtd configuration"
+ [ ! -z "$PID" ] && kill -HUP $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|reload}"
+ ;;
+esac
+exit 0
diff --git a/community/libvirt/openbsd-netcat-default.patch b/community/libvirt/openbsd-netcat-default.patch
new file mode 100644
index 000000000..382611c74
--- /dev/null
+++ b/community/libvirt/openbsd-netcat-default.patch
@@ -0,0 +1,24 @@
+diff -wbBur libvirt-0.9.0/src/qemu/qemu_migration.c libvirt-0.9.0.my/src/qemu/qemu_migration.c
+--- libvirt-0.9.0/src/qemu/qemu_migration.c 2011-03-29 14:18:53.000000000 +0000
++++ libvirt-0.9.0.my/src/qemu/qemu_migration.c 2011-04-04 14:34:43.000000000 +0000
+@@ -819,7 +819,7 @@
+ unixfile);
+ }
+ else if (qemuCapsGet(qemuCaps, QEMU_CAPS_MIGRATE_QEMU_EXEC)) {
+- const char *args[] = { "nc", "-U", unixfile, NULL };
++ const char *args[] = { "nc.openbsd", "-U", unixfile, NULL };
+ internalret = qemuMonitorMigrateToCommand(priv->mon, QEMU_MONITOR_MIGRATE_BACKGROUND, args);
+ } else {
+ internalret = -1;
+diff -wbBur libvirt-0.9.0/src/remote/remote_driver.c libvirt-0.9.0.my/src/remote/remote_driver.c
+--- libvirt-0.9.0/src/remote/remote_driver.c 2011-03-29 12:57:01.000000000 +0000
++++ libvirt-0.9.0.my/src/remote/remote_driver.c 2011-04-04 14:34:23.000000000 +0000
+@@ -777,7 +777,7 @@
+ cmd_argv[j++] = strdup ("none");
+ }
+ cmd_argv[j++] = strdup (priv->hostname);
+- cmd_argv[j++] = strdup (netcat ? netcat : "nc");
++ cmd_argv[j++] = strdup (netcat ? netcat : "nc.openbsd");
+ cmd_argv[j++] = strdup ("-U");
+ cmd_argv[j++] = strdup (sockname ? sockname :
+ (flags & VIR_CONNECT_RO
diff --git a/community/libvirt/unixperms.patch b/community/libvirt/unixperms.patch
new file mode 100644
index 000000000..b3fb86cf5
--- /dev/null
+++ b/community/libvirt/unixperms.patch
@@ -0,0 +1,47 @@
+diff -ur libvirt-0.7.4-orig/daemon/libvirtd.conf libvirt-0.7.4-patched/daemon/libvirtd.conf
+--- libvirt-0.7.4-orig/daemon/libvirtd.conf 2009-11-23 03:10:33.398655655 -0800
++++ libvirt-0.7.4-patched/daemon/libvirtd.conf 2009-11-23 03:09:37.831189671 -0800
+@@ -78,14 +78,14 @@
+ # without becoming root.
+ #
+ # This is restricted to 'root' by default.
+-#unix_sock_group = "libvirt"
++unix_sock_group = "libvirt"
+
+ # Set the UNIX socket permissions for the R/O socket. This is used
+ # for monitoring VM status only
+ #
+ # Default allows any user. If setting group ownership may want to
+ # restrict this to:
+-#unix_sock_ro_perms = "0777"
++unix_sock_ro_perms = "0770"
+
+ # Set the UNIX socket permissions for the R/W socket. This is used
+ # for full management of VMs
+@@ -95,7 +95,7 @@
+ #
+ # If not using PolicyKit and setting group ownership for access
+ # control then you may want to relax this to:
+-#unix_sock_rw_perms = "0770"
++unix_sock_rw_perms = "0770"
+
+ # Set the name of the directory in which sockets will be found/created.
+ #unix_sock_dir = "/var/run/libvirt"
+@@ -126,7 +126,7 @@
+ #
+ # To restrict monitoring of domains you may wish to enable
+ # an authentication mechanism here
+-#auth_unix_ro = "none"
++auth_unix_ro = "none"
+
+ # Set an authentication scheme for UNIX read-write sockets
+ # By default socket permissions only allow root. If PolicyKit
+@@ -135,7 +135,7 @@
+ #
+ # If the unix_sock_rw_perms are changed you may wish to enable
+ # an authentication mechanism here
+-#auth_unix_rw = "none"
++auth_unix_rw = "none"
+
+ # Change the authentication scheme for TCP sockets.
+ #
diff --git a/community/libvisual-projectm/PKGBUILD b/community/libvisual-projectm/PKGBUILD
new file mode 100644
index 000000000..ea201188d
--- /dev/null
+++ b/community/libvisual-projectm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 61634 2009-12-20 18:27:47Z andrea $
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=libvisual-projectm
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="ProjectM XMMS plugin"
+arch=('i686' 'x86_64')
+url="http://projectm.sourceforge.net/"
+license=('GPL')
+depends=('projectm>=2.0.1' 'libvisual' 'sdl')
+makedepends=('pkgconfig' 'cmake' 'libxext')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/projectm/projectM_libvisual-${pkgver}-Source.tar.gz)
+md5sums=('35e09b09210d48b437e3574bd00b15a8')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../projectM_libvisual-${pkgver}-Source \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release || return 1
+ make || return
+ make DESTDIR=${pkgdir} install || return
+}
diff --git a/community/libwapcaplet/PKGBUILD b/community/libwapcaplet/PKGBUILD
new file mode 100644
index 000000000..2eff2bc70
--- /dev/null
+++ b/community/libwapcaplet/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libwapcaplet
+pkgver=0.0.2
+pkgrel=1
+pkgdesc="A string internment library with rapid string comparison."
+arch=('i686' 'x86_64')
+url="http://www.netsurf-browser.org/projects/libwapcaplet/"
+license=('MIT')
+source=(http://www.netsurf-browser.org/projects/releases/${pkgname}-${pkgver}-src.tar.gz)
+md5sums=('c73b5ff5fce55819cc698e8cb486d5eb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make PREFIX=/usr DESTDIR=${pkgdir} install || return 1
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/libwww/PKGBUILD b/community/libwww/PKGBUILD
new file mode 100644
index 000000000..f9a798e45
--- /dev/null
+++ b/community/libwww/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Buharev Vasilij <buharev.v.p@gmail.com>
+pkgname=libwww
+pkgver=5.4.0
+pkgrel=4
+pkgdesc="A general-purpose client side WEB API"
+arch=('i686' 'x86_64')
+url="http://www.w3.org/Library/"
+license=('custom')
+depends=()
+makedepends=('gcc pkgconfig perl zlib openssl')
+options=('!libtool')
+source=(http://www.w3.org/Library/Distribution/w3c-$pkgname-$pkgver.tgz)
+md5sums=('c3734ca6caa405707e134cc8c6d7e422')
+
+build() {
+ cd "$startdir/src/w3c-$pkgname-$pkgver"
+
+ #export ac_cv_header_appkit_appkit_h=no
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --with-md5 --with-zlib --with-expat --with-regex --with-ssl
+ sed -i 's#Examples##' Library/Makefile
+ make || return 1
+ make DESTDIR="$startdir/pkg" install || return 1
+
+ install -D -m 0644 COPYRIGHT.html $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT.html
+}
diff --git a/community/libx86emu/PKGBUILD b/community/libx86emu/PKGBUILD
new file mode 100644
index 000000000..83f8429b6
--- /dev/null
+++ b/community/libx86emu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 36338 2010-12-30 20:33:39Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Gergely Imreh <imrehgATgmailDOTcom>
+
+pkgname=libx86emu
+pkgver=1.1
+_pkgver=$pkgver-9.9
+pkgrel=28
+pkgdesc='x86 emulation library'
+arch=('i686' 'x86_64')
+url='http://www.opensuse.org/'
+license=('BSD')
+depends=('glibc')
+makedepends=('rpmextract')
+source=("http://download.opensuse.org/source/factory/repo/oss/suse/src/$pkgname-$_pkgver.src.rpm")
+md5sums=('5e1b64be543002a83d910edce1659cee')
+
+build() {
+ cd "${srcdir}"
+ rpmextract.sh "${pkgname}-${_pkgver}.src.rpm"
+ tar -xjf $pkgname-$pkgver.tar.bz2
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make LIBDIR=/usr/lib
+ make LIBDIR=/usr/lib DESTDIR=$pkgdir install
+ install -Dm644 LICENSE \
+ ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/libxdg-basedir/LICENSE b/community/libxdg-basedir/LICENSE
new file mode 100644
index 000000000..42b182976
--- /dev/null
+++ b/community/libxdg-basedir/LICENSE
@@ -0,0 +1,24 @@
+/* Copyright (c) 2007 Mark Nevill
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
diff --git a/community/libxdg-basedir/PKGBUILD b/community/libxdg-basedir/PKGBUILD
new file mode 100644
index 000000000..e11b24214
--- /dev/null
+++ b/community/libxdg-basedir/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Ondrej Martinak <omartinak@gmail.com>
+
+pkgname=libxdg-basedir
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="An implementation of the XDG Base Directory specifications."
+arch=('i686' 'x86_64')
+url="http://n.ethz.ch/student/nevillm/download/libxdg-basedir"
+license=('MIT')
+depends=('glibc')
+source=(http://n.ethz.ch/student/nevillm/download/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ 'LICENSE')
+options=('!libtool')
+sha1sums=('133b2b66a6ea43560f4ac41d1235d3282e31da84'
+ 'c76efede60d0632d4241d718919d8b4ec62056b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+
+ # Install MIT license
+ install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/community/libxnvctrl/PKGBUILD b/community/libxnvctrl/PKGBUILD
new file mode 100644
index 000000000..0f1a0a2b5
--- /dev/null
+++ b/community/libxnvctrl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 21605 2010-07-16 19:59:46Z tdziedzic $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=libxnvctrl
+pkgver=1.16
+pkgrel=2
+pkgdesc='NVCtrl library'
+arch=('i686' 'x86_64')
+url='http://www.nvidia.com/'
+license=('GPL')
+makedepends=('libx11' 'xextproto' 'libxext')
+source=("ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-173.14.05.tar.gz")
+md5sums=('de4794122256d1d2a771c49ce434087a')
+
+build() {
+ cd nvidia-settings-1.0/src/libXNVCtrl
+
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+
+ make clean
+
+ make
+}
+
+package() {
+ cd nvidia-settings-1.0/src/libXNVCtrl
+
+ install -Dm644 libXNVCtrl.a ${pkgdir}/usr/lib/libXNVCtrl.a
+ install -Dm644 NVCtrl.h ${pkgdir}/usr/include/NVCtrl/NVCtrl.h
+ install -Dm644 NVCtrlLib.h ${pkgdir}/usr/include/NVCtrl/NVCtrlLib.h
+ install -Dm644 nv_control.h ${pkgdir}/usr/include/NVCtrl/nv_control.h
+}
diff --git a/community/libyaml/PKGBUILD b/community/libyaml/PKGBUILD
new file mode 100644
index 000000000..7b586ebc2
--- /dev/null
+++ b/community/libyaml/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 4881 2009-11-02 10:41:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Michal Bozon <michal.bozon__at__gmail.com>
+
+pkgname=libyaml
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="YAML 1.1 library"
+arch=('i686' 'x86_64')
+url="http://pyyaml.org/wiki/LibYAML"
+license=('MIT')
+source=(http://pyyaml.org/download/libyaml/yaml-$pkgver.tar.gz)
+md5sums=('b8ab9064e8e0330423fe640de76608cd')
+
+build() {
+ cd "$srcdir/yaml-$pkgver"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/community/libzen/PKGBUILD b/community/libzen/PKGBUILD
new file mode 100644
index 000000000..9f18d8ffa
--- /dev/null
+++ b/community/libzen/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 41750 2011-03-08 20:15:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: hydro <hydro@freenet.de>
+
+pkgname=libzen
+pkgver=0.4.18
+pkgrel=1
+pkgdesc="shared library for libmediainfo and mediainfo"
+arch=('i686' 'x86_64')
+url="http://mediainfo.sourceforge.net"
+license=('BSD')
+depends=('gcc-libs')
+makedepends=('libtool' 'automake' 'autoconf')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/zenlib/${pkgname}_${pkgver}.tar.bz2)
+md5sums=('418fd69a3351cd406bfb2afe0ce91628')
+
+build() {
+ cd $srcdir/ZenLib/Project/GNU/Library
+
+ sh ./autogen
+ ./configure --prefix=/usr --enable-shared
+ make clean
+ make
+ make DESTDIR=$pkgdir install
+
+ install -dm 755 $pkgdir/usr/include/ZenLib
+ install -m 644 $srcdir/ZenLib/Source/ZenLib/*.h $pkgdir/usr/include/ZenLib
+
+ for i in Base64 HTTP_Client Format/Html Format/Http TinyXml; do
+ install -dm 755 $pkgdir/usr/include/ZenLib/$i
+ install -m 644 $srcdir/ZenLib/Source/ZenLib/$i/*.h $pkgdir/usr/include/ZenLib/$i
+ done
+
+ install -dm 755 $pkgdir/usr/lib/pkgconfig
+ install -m 644 $srcdir/ZenLib/Project/GNU/Library/libzen.pc $pkgdir/usr/lib/pkgconfig
+ sed -i -e 's|Version: |Version: '$pkgver'|g' $pkgdir/usr/lib/pkgconfig/libzen.pc
+
+ install -D -m 644 $srcdir/ZenLib/License.txt $pkgdir/usr/share/licenses/libzen/License.txt
+}
diff --git a/community/libzrtpcpp/PKGBUILD b/community/libzrtpcpp/PKGBUILD
new file mode 100644
index 000000000..5b61a13c6
--- /dev/null
+++ b/community/libzrtpcpp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 32643 2010-11-16 09:56:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor:
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Michel Brabants <michel.brabants@euphonynet.be>
+
+pkgname=libzrtpcpp
+pkgver=1.4.2
+pkgrel=4
+pkgdesc="An extension to Real-time Transport Protocol (RTP) which describes a method of Diffie-Hellman key agreement for Secure Real-time Transport Protocol (SRTP)"
+arch=('i686' 'x86_64')
+url="http://zfoneproject.com"
+license=('GPL')
+depends=('ccrtp')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(ftp://ftp.gnu.org/gnu/ccrtp/$pkgname-$pkgver.tar.gz)
+md5sums=('2360f0f8dc0ddab3e1691ee146c4b92e')
+md5sums=('2360f0f8dc0ddab3e1691ee146c4b92e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/lightspark/PKGBUILD b/community/lightspark/PKGBUILD
new file mode 100644
index 000000000..876666175
--- /dev/null
+++ b/community/lightspark/PKGBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=lightspark
+pkgver=0.4.6.1
+pkgrel=2
+pkgdesc='An alternative Flash Player for Linux.'
+arch=('i686' 'x86_64')
+url='http://lightspark.sourceforge.net'
+license=('LGPL3')
+conflicts=('lightspark-git')
+# add libxml++ back after repos update it
+depends=('mesa' 'ftgl' 'sdl' 'gtk2' 'curl' 'zlib' 'ffmpeg' 'glew' 'pcre' 'libpulse' 'libffi' 'boost-libs' 'glibmm' 'ffmpeg' 'gtkglext' 'desktop-file-utils')
+makedepends=('cmake' 'nasm' 'xulrunner' 'llvm' 'glproto' 'boost' 'pkgconfig' 'libxml2>=2.7.7' 'fontconfig')
+optdepends=('gnash-gtk: fallback support')
+install="${pkgname}.install"
+source=("http://launchpad.net/${pkgname}/trunk/${pkgname}-${pkgver:0:5}/+download/${pkgname}-${pkgver}.tar.gz"
+ 'http://ftp.gnome.org/pub/GNOME/sources/libxml++/2.33/libxml++-2.33.1.tar.bz2')
+md5sums=('a352604c4cfe33f5e0bfec5cf27a6019'
+ '90919b5a5e92381722ef004898eba343')
+
+build() {
+ # statically link against libxml++ 2.33.1 because of constant crashes
+ # DIRTEH HACK -- reading below code may cause eye leakage
+ export CFLAGS="-fPIC ${CFLAGS}"
+ export CXXFLAGS="-fPIC ${CXXFLAGS}"
+ # need to add fPIC since liblightspark itself is a shared object
+ cd libxml++-2.33.1
+ ./configure \
+ --prefix=${srcdir}/iamsorry \
+ --enable-static \
+ --disable-shared \
+ --disable-documentation \
+ --disable-examples
+ make
+ make install
+
+ export PKG_CONFIG_PATH=${srcdir}/iamsorry/lib/pkgconfig/
+
+ cd ${srcdir}
+
+ sed -i '213iLINK_DIRECTORIES(${LIBXMLPP_LIB_DIR})' ${srcdir}/${pkgname}-${pkgver}/CMakeLists.txt
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCOMPILE_PLUGIN=1 \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DGNASH_EXE_PATH=/usr/bin/gtk-gnash \
+ -DLIBXMLPP_LIB_DIR=${srcdir}/iamsorry/lib \
+ ../${pkgname}-${pkgver}
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/lightspark/lightspark.install b/community/lightspark/lightspark.install
new file mode 100644
index 000000000..75e2b7b55
--- /dev/null
+++ b/community/lightspark/lightspark.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/lilypond/PKGBUILD b/community/lilypond/PKGBUILD
new file mode 100644
index 000000000..f6d6bd0b3
--- /dev/null
+++ b/community/lilypond/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 28189 2010-10-03 15:28:38Z foutrelis $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Andrea `BaSh` Scarpino <bash.lnx@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+
+pkgname=lilypond
+pkgver=2.12.3
+pkgrel=7
+pkgdesc="An automated music engraving system"
+arch=('i686' 'x86_64')
+url="http://lilypond.org"
+license=('GPL')
+depends=('guile' 'python2' 'texlive-core' 'ghostscript' 'pango' 'fontconfig')
+makedepends=('flex' 'bison' 'gettext' 'mftrace' 'texinfo' 'fontforge' 't1utils' 'gsfonts')
+options=('emptydirs')
+source=(http://download.linuxaudio.org/lilypond/sources/v2.12/$pkgname-$pkgver.tar.gz
+ lilypond-gcc45.patch)
+md5sums=('2303bf5f2ea8d4628f33a68f016f3866'
+ '023636ea13dc6eb2de379e5ef369b218')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # 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
+
+# libtoolize --force --copy
+# aclocal
+# autoconf
+# automake
+ ./configure --prefix=/usr --disable-gui
+ patch -p1 <$srcdir/lilypond-gcc45.patch
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/lilypond/lilypond-gcc45.patch b/community/lilypond/lilypond-gcc45.patch
new file mode 100644
index 000000000..6af391ff3
--- /dev/null
+++ b/community/lilypond/lilypond-gcc45.patch
@@ -0,0 +1,16 @@
+diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc
+index 99fe982..6949458 100644
+--- a/lily/spacing-spanner.cc
++++ b/lily/spacing-spanner.cc
+@@ -38,8 +38,8 @@ Spacing_spanner::get_columns (Grob *me_grob)
+ vsize end = binary_search (all, (Grob*) me->get_bound (RIGHT),
+ &Paper_column::less_than);
+
+- all = vector<Grob*>::vector<Grob*> (all.begin () + start,
+- all.begin () + end + 1);
++ all = vector<Grob*> (all.begin () + start,
++ all.begin () + end + 1);
+ return all;
+ }
+
+--
diff --git a/community/lilyterm/PKGBUILD b/community/lilyterm/PKGBUILD
new file mode 100644
index 000000000..a6627c72d
--- /dev/null
+++ b/community/lilyterm/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: DonVla <donvla@users.sourceforge.net>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=lilyterm
+pkgver=0.9.8
+pkgrel=1
+pkgdesc="A light and easy to use libvte based X terminal emulator"
+arch=('i686' 'x86_64')
+url="http://lilyterm.luna.com.tw/index_en.html"
+license=('GPL3')
+depends=('vte')
+makedepends=('gettext' 'intltool' 'pkgconfig>=0.16')
+source=(http://lilyterm.luna.com.tw/file/$pkgname-$pkgver.tar.gz)
+md5sums=('995f7b4634523bf5e150b529a4bdbf6f')
+
+build() {
+ cd "$srcdir/lilyterm-$pkgver"
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/lilyterm-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING \
+ "$pkgdir/usr/share/licenses/lilyterm/COPYING"
+}
diff --git a/community/lincity-ng/ChangeLog b/community/lincity-ng/ChangeLog
new file mode 100644
index 000000000..03303d1b6
--- /dev/null
+++ b/community/lincity-ng/ChangeLog
@@ -0,0 +1,15 @@
+2009-06-18 Eric Belanger <eric@archlinux.org>
+
+ * lincity-ng 2.0-2
+ * Rebuild against sdl_gfx 2.0.19
+
+2009-01-29 Eric Belanger <eric@archlinux.org>
+
+ * lincity-ng 2.0-1
+ * Upstream update
+
+2008-08-16 Eric Belanger <eric@archlinux.org>
+
+ * lincity-ng 1.1.2-3
+ * Rebuilt against physfs 1.1.1
+ * Added ChangeLog
diff --git a/community/lincity-ng/PKGBUILD b/community/lincity-ng/PKGBUILD
new file mode 100644
index 000000000..3efb1f767
--- /dev/null
+++ b/community/lincity-ng/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 17998 2010-05-29 05:58:37Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: tranquility <trankas@gmail.com>
+
+pkgname=lincity-ng
+pkgver=2.0
+pkgrel=3
+pkgdesc="A City Simulation Game. It is a polished and improved version of the classic LinCity game"
+arch=('i686' 'x86_64')
+url="http://lincity-ng.berlios.de/wiki/index.php/Main_Page"
+license=('GPL' 'custom')
+depends=('sdl_mixer' 'sdl_ttf' 'sdl_image' 'physfs' 'libxml2' 'sdl_gfx' 'gcc-libs' 'libgl')
+makedepends=('ftjam' 'mesa')
+source=(http://download.berlios.de/lincity-ng/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('1bd0f58e0f2b131d70044f4230600ed1')
+sha1sums=('2961a3f60f7481b33858d7d5ef7cf9c788d01077')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ jam || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ jam -sprefix="${pkgdir}/usr" install || return 1
+ install -D -m644 COPYING-data.txt "${pkgdir}/usr/share/licenses/${pkgname}/COPYING-data.txt" || return 1
+ install -D -m644 COPYING-fonts.txt "${pkgdir}/usr/share/licenses/${pkgname}/COPYING-fonts.txt" || return 1
+}
diff --git a/community/linphone/ChangeLog b/community/linphone/ChangeLog
new file mode 100644
index 000000000..d87628505
--- /dev/null
+++ b/community/linphone/ChangeLog
@@ -0,0 +1,33 @@
+2008-10-16 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+* v3.0.0 build for x86_64
+
+2008-08-23 Darwin Bautista <djclue917@gmail.com>
+* linphone 2.1.1-3
+* Fixed build against ffmpeg 20080715
+
+2008-04-20 Darwin Bautista <djclue917@gmail.com>
+* linphone 2.1.1-2
+* Fixed md5sums
+
+2008-02-24 Darwin Bautista <djclue917@gmail.com>
+* linphone 2.1.1-1
+* New upstream release
+* makedeps: added 'perlxml'
+* Use internal ortp
+
+2007-12-02 Darwin Bautista <djclue917@gmail.com>
+* linphone 2.0.1-1
+* New upstream release
+
+2007-11-21 Darwin Bautista <djclue917@gmail.com>
+* linphone 2.0.0-1
+* New upstream release
+* depends=(): added 'libexosip2', remove 'libosip2'
+* Bumped minimum required version of dependencies
+
+2007-11-16 Darwin Bautista <djclue917@gmail.com>
+* linphone 1.7.1-1
+* New upstream release
+* Revamped PKGBUILD
+* Fixed dependencies
+* Use external ortp
diff --git a/community/linphone/PKGBUILD b/community/linphone/PKGBUILD
new file mode 100644
index 000000000..904afdb94
--- /dev/null
+++ b/community/linphone/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 43994 2011-04-01 15:09:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Darwin Bautista <djclue917@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=linphone
+pkgver=3.4.3
+pkgrel=2
+pkgdesc="A Voice-over-IP phone"
+arch=('i686' 'x86_64')
+url="http://www.linphone.org/index.php/eng"
+license=('GPL')
+depends=('alsa-lib' 'ffmpeg' 'gtk2' 'libexosip2' 'speex' 'libv4l' 'libglade' 'v4l-utils'
+ 'libpulse' 'libxv' 'mediastreamer' 'ortp')
+makedepends=('pkgconfig' 'perlxml' 'intltool' 'sgmltools-lite')
+optdepends=('pulseaudio')
+options=('!libtool' '!emptydirs')
+source=("http://download-mirror.savannah.gnu.org/releases/linphone/3.4.x/sources/linphone-$pkgver.tar.gz"
+ "disable-v4l1.patch")
+md5sums=('66e21f36d62c2094f7b4360262c46f20'
+ '7ee15689eed1adbdcf0ddab8fadca34a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ export PKG_CONFIG=/usr/bin/pkg-config
+ unset SGML_CATALOG_FILES
+# patch -p1 <$srcdir/disable-v4l1.patch
+ ./configure --prefix=/usr --disable-static --enable-ipv6 --enable-video \
+ --enable-alsa --enable-pulseaudio --disable-artsc --disable-strict \
+ --libexecdir=/usr/lib/$pkgname \
+ --enable-external-mediastreamer --enable-external-ortp
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/linphone/disable-v4l1.patch b/community/linphone/disable-v4l1.patch
new file mode 100644
index 000000000..9f6cb84d4
--- /dev/null
+++ b/community/linphone/disable-v4l1.patch
@@ -0,0 +1,50 @@
+diff -wbBur linphone-3.4.3/mediastreamer2/src/Makefile.am linphone-3.4.3.my/mediastreamer2/src/Makefile.am
+--- linphone-3.4.3/mediastreamer2/src/Makefile.am 2011-02-09 08:43:11.000000000 +0000
++++ linphone-3.4.3.my/mediastreamer2/src/Makefile.am 2011-04-01 14:54:04.000000000 +0000
+@@ -117,7 +117,7 @@
+ endif
+
+ if BUILD_V4L
+-libmediastreamer_la_SOURCES+=msv4l.c msv4l2.c
++libmediastreamer_la_SOURCES+=msv4l2.c
+ endif
+
+ if BUILD_WIN32
+diff -wbBur linphone-3.4.3/mediastreamer2/src/Makefile.in linphone-3.4.3.my/mediastreamer2/src/Makefile.in
+--- linphone-3.4.3/mediastreamer2/src/Makefile.in 2011-03-28 18:34:07.000000000 +0000
++++ linphone-3.4.3.my/mediastreamer2/src/Makefile.in 2011-04-01 14:55:00.000000000 +0000
+@@ -54,7 +54,7 @@
+ @BUILD_MACAQSND_TRUE@am__append_12 = aqsnd.c
+ @BUILD_PULSEAUDIO_TRUE@am__append_13 = pulseaudio.c
+ @BUILD_MACOSX_TRUE@@BUILD_VIDEO_TRUE@am__append_14 = msv4m.m
+-@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__append_15 = msv4l.c msv4l2.c
++@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__append_15 = msv4l2.c
+ @BUILD_VIDEO_TRUE@@BUILD_WIN32_TRUE@am__append_16 = msdscap-mingw.cc drawdib-display.c
+ @BUILD_THEORA_TRUE@@BUILD_VIDEO_TRUE@am__append_17 = theora.c
+ @BUILD_FFMPEG_TRUE@@BUILD_VIDEO_TRUE@am__append_18 = videoenc.c \
+@@ -135,7 +135,7 @@
+ audiostream.c msspeex.c speexec.c gsm.c winsnd3.c \
+ msfileplayer_win.c msfilerec_win.c msfileplayer.c msfilerec.c \
+ msresample.c alsa.c oss.c arts.c pasnd.c macsnd.c msiounit.c \
+- aqsnd.c pulseaudio.c msv4m.m msv4l.c msv4l2.c msdscap-mingw.cc \
++ aqsnd.c pulseaudio.c msv4m.m msv4l2.c msdscap-mingw.cc \
+ drawdib-display.c theora.c videoenc.c videodec.c pixconv.c \
+ sizeconv.c nowebcam.c nowebcam.h swscale.h ffmpeg-priv.h \
+ h264dec.c jpegwriter.c videoout.c x11video.c rfc2429.h \
+@@ -156,7 +156,7 @@
+ @BUILD_MACAQSND_TRUE@am__objects_12 = aqsnd.lo
+ @BUILD_PULSEAUDIO_TRUE@am__objects_13 = pulseaudio.lo
+ @BUILD_MACOSX_TRUE@@BUILD_VIDEO_TRUE@am__objects_14 = msv4m.lo
+-@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__objects_15 = msv4l.lo msv4l2.lo
++@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__objects_15 = msv4l2.lo
+ @BUILD_VIDEO_TRUE@@BUILD_WIN32_TRUE@am__objects_16 = msdscap-mingw.lo \
+ @BUILD_VIDEO_TRUE@@BUILD_WIN32_TRUE@ drawdib-display.lo
+ @BUILD_THEORA_TRUE@@BUILD_VIDEO_TRUE@am__objects_17 = theora.lo
+@@ -600,7 +600,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mssndcard.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msspeex.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msticker.Plo@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msv4l.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msv4l2.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msv4m.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvideo.Plo@am__quote@
diff --git a/community/linuxsampler/PKGBUILD b/community/linuxsampler/PKGBUILD
new file mode 100644
index 000000000..46560fbf9
--- /dev/null
+++ b/community/linuxsampler/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 27576 2010-09-25 09:19:02Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: svoufff <svoufff at gmail dot com>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=linuxsampler
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Professional-grade audio sampler alternative to Gigasampler"
+arch=(i686 x86_64)
+url="http://www.linuxsampler.org/"
+license=('GPL' 'custom')
+depends=('libgig' 'jack' 'sqlite3')
+makedepends=('dssi' 'lv2core')
+options=('libtool') # do NOT slay libtool; required by gigedit
+source=(http://download.linuxsampler.org/packages/$pkgname-$pkgver.tar.bz2
+ license.txt)
+md5sums=('a97136791a3228d840b006e5481fc39d'
+ '746c1421eb9f6812b5fa411bfb923c75')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # install GPL exception statement
+ install -Dm644 ../license.txt \
+ "$pkgdir/usr/share/licenses/$pkgname/GPL-EXCEPTION"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/linuxsampler/license.txt b/community/linuxsampler/license.txt
new file mode 100644
index 000000000..98031bc95
--- /dev/null
+++ b/community/linuxsampler/license.txt
@@ -0,0 +1,7 @@
+LinuxSampler is licensed under the GNU GPL with the exception that
+USAGE of the source code, libraries and applications
+FOR COMMERCIAL HARDWARE OR SOFTWARE PRODUCTS IS NOT ALLOWED without
+prior written permission by the LinuxSampler authors.
+
+If you have questions on the subject, that are not yet covered by
+the FAQ, please contact us.
diff --git a/community/linuxtv-dvb-apps/PKGBUILD b/community/linuxtv-dvb-apps/PKGBUILD
new file mode 100644
index 000000000..66192edc6
--- /dev/null
+++ b/community/linuxtv-dvb-apps/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 21619 2010-07-16 20:05:39Z tdziedzic $
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Camille Moncelier <pix@devlife.org>
+
+pkgname=linuxtv-dvb-apps
+pkgver=1.1.1
+pkgrel=4
+_hgrev=68d20621d93a
+pkgdesc='Viewer programs for DVB cards'
+arch=('i686' 'x86_64')
+url='http://www.linuxtv.org/'
+license=('GPL')
+install=linuxtv-dvb-apps.install
+#source=(http://www.linuxtv.org/download/dvb/$pkgname-$pkgver.tar.bz2)
+source=("http://linuxtv.org/hg/dvb-apps/archive/${_hgrev}.tar.bz2")
+md5sums=('5b43136359d9555a567a76ba28433afc')
+
+build() {
+ cd dvb-apps-${_hgrev}
+
+ rm -rf include
+
+ make -C lib
+
+ make -C util
+}
+
+package() {
+ cd dvb-apps-${_hgrev}
+
+ make -C lib DESTDIR=${pkgdir} install
+
+ make -C util DESTDIR=${pkgdir} install
+
+ chmod 755 ${pkgdir}/usr/lib/*.so*
+}
+
diff --git a/community/linuxtv-dvb-apps/linuxtv-dvb-apps.install b/community/linuxtv-dvb-apps/linuxtv-dvb-apps.install
new file mode 100644
index 000000000..a260be22b
--- /dev/null
+++ b/community/linuxtv-dvb-apps/linuxtv-dvb-apps.install
@@ -0,0 +1,8 @@
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ echo ">>> Some initial-tuning-data files have been installed under"
+ echo ">>> /usr/share/dvb-utils/scan/"
+ echo ">>> you can use them to generate your channel.conf file"
+}
+
diff --git a/community/listen/PKGBUILD b/community/listen/PKGBUILD
new file mode 100644
index 000000000..ca594fa72
--- /dev/null
+++ b/community/listen/PKGBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Hugo Doria <hugodoria@gmail.com>
+
+pkgname=listen
+pkgver=0.6.5
+pkgrel=6
+pkgdesc="Music player and management for GNOME"
+arch=('i686' 'x86_64')
+url="http://www.listen-project.org/"
+license=('GPL2')
+depends=('python2-egg' 'python2-libgnome' 'mutagen'
+ 'gnome-icon-theme' 'gstreamer0.10-python' 'notification-daemon' 'pyxdg'
+ 'pywebkitgtk' 'pyinotify' 'gstreamer0.10-good-plugins' 'dbus-python')
+makedepends=('gettext' 'pkgconfig' 'intltool' 'docbook2x' 'docbook-xml')
+optdepends=('python-musicbrainz2: musicbrainz & cd support'
+ 'libgpod: iPod support'
+ 'hal: hal support'
+ 'python-daap: DAAP support'
+ 'tunepimp: tagging support')
+source=("http://download.listen-project.org/0.6/${pkgname}-${pkgver}.tar.gz")
+md5sums=('76cd9ad2fc9c600dbdf4808c15aeccf1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ chmod +x mmkeys/setup.py
+
+ # Fix command name
+ sed -i 's/docbook2x-man/docbook2man/' Makefile
+
+ # Point Python scripts to the python2 binary
+ sed -i -e 's/python -/python2 -/' \
+ -e 's/PYTHON = python$/\02/' \
+ Makefile
+ sed -i 's/env python$/env python2/' mmkeys/setup.py
+
+ make CHECK_DEPENDS=0 PREFIX=/usr
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} PREFIX=/usr install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/listen/listen-fix-dbus.diff b/community/listen/listen-fix-dbus.diff
new file mode 100644
index 000000000..5953352f1
--- /dev/null
+++ b/community/listen/listen-fix-dbus.diff
@@ -0,0 +1,49 @@
+Index: src/dbus_manager.py
+===================================================================
+--- src/dbus_manager.py (revision 670)
++++ src/dbus_manager.py (working copy)
+@@ -30,9 +30,18 @@
+ import dbus
+ import dbus.service
+ #Try connection du message bus
+- dbus.SessionBus()
+- if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
++ dbus_version = getattr(dbus, 'version',(0,0,0))
++ if dbus_version >= (0,41,0) and dbus_version < (0,80,0):
++ dbus.SessionBus()
+ import dbus.glib
++ elif dbus_version >= (0,80,0):
++ from dbus.mainloop.glib import DBusGMainLoop
++ DBusGMainLoop(set_as_default=True)
++ dbus.SessionBus()
++ else:
++ pass
++
++
+ except: dbus_imported = False
+ else: dbus_imported=True
+
+@@ -41,14 +50,14 @@
+
+ if not dbus_imported:
+ class ListenDBus:
+- def __init__(self,win,player,object_path="/org/gnome/listen/"):
++ def __init__(self,win,player,object_path="/org/gnome/listen"):
+ self.player = player
+ self.win = win
+ print "No dbus support"
+ else:
+
+ class ListenDBus(dbus.service.Object):
+- def __init__(self,win,player,object_path="/org/gnome/listen/"):
++ def __init__(self,win,player,object_path="/org/gnome/listen"):
+ self.player = player
+ self.win = win
+ self.bus = dbus.SessionBus()
+@@ -105,4 +114,4 @@
+ song = self.player.song
+ return str( song.get_str("title")+ " - ("+song.get_str("album")+" - "+song.get_str("artist")+")")
+ else:
+- return ""
+\ No newline at end of file
++ return ""
diff --git a/community/listen/listen-fix-encoding.diff b/community/listen/listen-fix-encoding.diff
new file mode 100644
index 000000000..9c29e155c
--- /dev/null
+++ b/community/listen/listen-fix-encoding.diff
@@ -0,0 +1,16 @@
+diff -Naur listen-0.5-orig/src/const.py listen-0.5/src/const.py
+--- listen-0.5-orig/src/const.py 2007-03-19 20:52:43.000000000 -0400
++++ listen-0.5/src/const.py 2007-03-19 20:53:41.000000000 -0400
+@@ -1,3 +1,4 @@
++# coding=utf-8
+ # vim: ts=4
+ ###
+ #
+diff -Naur listen-0.5-orig/src/song.py listen-0.5/src/song.py
+--- listen-0.5-orig/src/song.py 2007-03-19 20:52:43.000000000 -0400
++++ listen-0.5/src/song.py 2007-03-19 20:53:58.000000000 -0400
+@@ -1,3 +1,4 @@
++# coding=utf-8
+ # vim: ts=4
+ ###
+ #
diff --git a/community/llvm/PKGBUILD b/community/llvm/PKGBUILD
new file mode 100644
index 000000000..7a80e112b
--- /dev/null
+++ b/community/llvm/PKGBUILD
@@ -0,0 +1,190 @@
+# $Id: PKGBUILD 39503 2011-02-11 00:00:17Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Sebastian Nowicki <sebnow@gmail.com>
+# Contributor: Devin Cofer <ranguvar{AT]archlinux[DOT}us>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=('llvm' 'llvm-ocaml' 'clang' 'clang-analyzer')
+pkgver=2.8
+pkgrel=5
+arch=('i686' 'x86_64')
+url="http://llvm.org/"
+license=('custom:University of Illinois/NCSA Open Source License')
+makedepends=('gcc-libs' 'libffi' 'python2' 'ocaml')
+source=(http://llvm.org/releases/$pkgver/$pkgname-$pkgver.tgz
+ http://llvm.org/releases/$pkgver/clang-$pkgver.tgz
+ cpp-headers.patch
+ clang-plugin-loader-registry.patch
+ clang-2.8-cindexer-clang-path.patch
+ llvm-2.8-alignOf.patch
+ clang-2.8-alignOf.patch)
+md5sums=('220d361b4d17051ff4bb21c64abe05ba'
+ '10e14c901fc3728eecbd5b829e011b59'
+ 'a5cd48e42dbab68d4c0169802c8ae55b'
+ '02c23b4aaca3445b8bf39fddb2f9906e'
+ '338d254d6745568ebdcbe4e20b0057d5'
+ 'd923655d211191d77c4437b9c1bfa851'
+ '742a1a13cfdc1cb0a76b8bc3b19b190e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # At the present, clang must reside inside the LLVM source code tree to build
+ # See http://llvm.org/bugs/show_bug.cgi?id=4840
+ rm -rf tools/clang
+ cp -r "$srcdir/clang-$pkgver" tools/clang
+
+ # Fix symbolic links from OCaml bindings to LLVM libraries
+ sed -i 's:\$(PROJ_libdir):/usr/lib/llvm:' bindings/ocaml/Makefile.ocaml
+
+ # Fix installation directories, ./configure doesn't seem to set them right
+ sed -i -e 's:\$(PROJ_prefix)/etc/llvm:/etc/llvm:' \
+ -e 's:\$(PROJ_prefix)/lib:$(PROJ_prefix)/lib/llvm:' \
+ -e 's:\$(PROJ_prefix)/docs/llvm:$(PROJ_prefix)/share/doc/llvm:' \
+ Makefile.config.in
+
+ # Fix insecure rpath (http://bugs.archlinux.org/task/14017)
+ sed -i 's:$(RPATH) -Wl,$(\(ToolDir\|LibDir\|ExmplDir\))::g' Makefile.rules
+
+ # Update hardcoded path to C++ header files
+ patch -d tools/clang -Np1 -i "$srcdir/cpp-headers.patch"
+
+ # Get the correct list of symbols to export
+ # See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-April/008559.html
+ patch -Np1 -i "$srcdir/clang-plugin-loader-registry.patch"
+
+ # Fix C++0x name clashes (https://bugs.archlinux.org/task/22296)
+ patch -Np0 -i "$srcdir/llvm-2.8-alignOf.patch"
+ patch -d tools/clang -Np0 -i "$srcdir/clang-2.8-alignOf.patch"
+
+ # Fix clang path in CIndexer.cpp (https://bugs.archlinux.org/task/22799)
+ patch -d tools/clang -Np1 -i "$srcdir/clang-2.8-cindexer-clang-path.patch"
+
+ # Apply strip option to configure
+ _optimize_flag="--enable-optimize"
+ [ "$(check_option strip)" = "n" ] && _optimize_flag="--disable-optimize"
+
+ # Include location of libffi headers in CPPFLAGS
+ export CPPFLAGS="$CPPFLAGS $(pkg-config --cflags libffi)"
+
+ # Well, this is supposed to be the final release
+ sed -i 's/2.8rc/2.8/g' configure
+
+ ./configure --prefix=/usr --libdir=/usr/lib/llvm --sysconfdir=/etc \
+ --enable-shared --enable-libffi \
+ --enable-bindings=ocaml --enable-targets=all \
+ --disable-expensive-checks --disable-debug-runtime \
+ --disable-assertions --with-binutils-include=/usr/include \
+ $_optimize_flag
+ make
+}
+
+package_llvm() {
+ pkgdesc="Low Level Virtual Machine"
+ depends=('perl' 'libffi')
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # We move the clang directory out of the tree so it won't get installed and
+ # then we bring it back in for the clang package
+ mv tools/clang "$srcdir"
+ # -j1 is due to race conditions during the installation of the OCaml bindings
+ make -j1 DESTDIR="$pkgdir" install
+ mv "$srcdir/clang" tools
+
+ # OCaml bindings go to a separate package
+ rm -rf "$srcdir"/{ocaml,ocamldoc}
+ mv "$pkgdir"/usr/{lib/ocaml,share/doc/llvm/ocamldoc} "$srcdir"
+
+ # Remove duplicate files installed by the OCaml bindings
+ rm "$pkgdir"/usr/{lib/llvm/libllvm*,share/doc/llvm/ocamldoc.tar.gz}
+
+ # Fix permissions of static libs
+ chmod -x "$pkgdir"/usr/lib/llvm/*.a
+
+ # Fix libdir in llvm-config (http://bugs.archlinux.org/task/14487)
+ sed -i 's:\(ABS_RUN_DIR/lib\):\1/llvm:' "$pkgdir/usr/bin/llvm-config"
+
+ # Get rid of example Hello transformation
+ rm "$pkgdir"/usr/lib/llvm/*LLVMHello.*
+
+ # Symlink the gold plugin where clang expects it
+ ln -s "llvm/libLLVMgold.so" "$pkgdir/usr/lib/LLVMgold.so"
+
+ # Add ld.so.conf.d entry
+ install -d "$pkgdir/etc/ld.so.conf.d"
+ echo /usr/lib/llvm >"$pkgdir/etc/ld.so.conf.d/llvm.conf"
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+package_llvm-ocaml() {
+ pkgdesc="OCaml bindings for LLVM"
+ depends=("llvm=$pkgver-$pkgrel" 'ocaml')
+
+ cd "$srcdir/llvm-$pkgver"
+
+ install -d "$pkgdir"/{usr/lib,usr/share/doc/llvm}
+ cp -r "$srcdir/ocaml" "$pkgdir/usr/lib"
+ cp -r "$srcdir/ocamldoc" "$pkgdir/usr/share/doc/llvm"
+
+ # Remove execute bit from static libraries
+ chmod -x "$pkgdir"/usr/lib/ocaml/libllvm*.a
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/llvm-ocaml/LICENSE"
+}
+
+package_clang() {
+ pkgdesc="C language family frontend for LLVM"
+ url="http://clang.llvm.org/"
+ # It looks like clang still needs GCC to assemble and link object files
+ # See http://old.nabble.com/%22clang--v%22-shows-a-GCC-call-td28378453.html
+ depends=("llvm=$pkgver-$pkgrel" 'gcc=4.5.2')
+
+ # Fix installation path for clang docs
+ sed -i 's:$(PROJ_prefix)/share/doc/llvm:$(PROJ_prefix)/share/doc/clang:' \
+ "$srcdir/llvm-$pkgver/Makefile.config"
+
+ cd "$srcdir/llvm-$pkgver/tools/clang"
+ make DESTDIR="$pkgdir" install
+
+ # Fix permissions of static libs
+ chmod -x "$pkgdir"/usr/lib/llvm/*.a
+
+ # Revert the path change in case we want to do a repackage later
+ sed -i 's:$(PROJ_prefix)/share/doc/clang:$(PROJ_prefix)/share/doc/llvm:' \
+ "$srcdir/llvm-$pkgver/Makefile.config"
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang/LICENSE"
+}
+
+package_clang-analyzer() {
+ pkgdesc="A source code analysis framework"
+ url="http://clang-analyzer.llvm.org/"
+ depends=("clang=$pkgver-$pkgrel" 'python2')
+
+ cd "$srcdir/llvm-$pkgver/tools/clang"
+
+ install -d "$pkgdir"/usr/{bin,lib/clang-analyzer}
+ for tool in scan-{build,view}; do
+ cp -r tools/$tool "$pkgdir/usr/lib/clang-analyzer"
+ ln -s /usr/lib/clang-analyzer/$tool/$tool "$pkgdir/usr/bin"
+ done
+
+ # Use Python 2
+ sed -i 's/env python$/\02/' \
+ "$pkgdir/usr/lib/clang-analyzer/scan-view/scan-view" \
+ "$pkgdir/usr/lib/clang-analyzer/scan-build/set-xcode-analyzer"
+
+ # Compile Python scripts
+ python2 -m compileall "$pkgdir/usr/lib/clang-analyzer"
+ python2 -O -m compileall "$pkgdir/usr/lib/clang-analyzer"
+
+ install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/clang-analyzer/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/llvm/clang-2.8-alignOf.patch b/community/llvm/clang-2.8-alignOf.patch
new file mode 100644
index 000000000..77aa5219a
--- /dev/null
+++ b/community/llvm/clang-2.8-alignOf.patch
@@ -0,0 +1,199 @@
+Index: lib/Basic/IdentifierTable.cpp
+===================================================================
+--- lib/Basic/IdentifierTable.cpp (revision 117774)
++++ lib/Basic/IdentifierTable.cpp (revision 117775)
+@@ -390,7 +390,7 @@
+ unsigned Size = sizeof(MultiKeywordSelector) + nKeys*sizeof(IdentifierInfo *);
+ MultiKeywordSelector *SI =
+ (MultiKeywordSelector*)SelTabImpl.Allocator.Allocate(Size,
+- llvm::alignof<MultiKeywordSelector>());
++ llvm::alignOf<MultiKeywordSelector>());
+ new (SI) MultiKeywordSelector(nKeys, IIV);
+ SelTabImpl.Table.InsertNode(SI, InsertPos);
+ return Selector(SI);
+Index: lib/AST/ExprCXX.cpp
+===================================================================
+--- lib/AST/ExprCXX.cpp (revision 117774)
++++ lib/AST/ExprCXX.cpp (revision 117775)
+@@ -233,7 +233,7 @@
+ if (NumTemplateArgs != 0)
+ size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedLookupExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedLookupExpr>());
+ UnresolvedLookupExpr *E = new (Mem) UnresolvedLookupExpr(EmptyShell());
+ E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
+ return E;
+@@ -261,7 +261,7 @@
+ if (NumResults) {
+ Results = static_cast<DeclAccessPair *>(
+ C.Allocate(sizeof(DeclAccessPair) * NumResults,
+- llvm::alignof<DeclAccessPair>()));
++ llvm::alignOf<DeclAccessPair>()));
+ memcpy(Results, &*Begin.getIterator(),
+ NumResults * sizeof(DeclAccessPair));
+ }
+@@ -737,7 +737,7 @@
+ if (TemplateArgs)
+ size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
+ return new (Mem) CXXDependentScopeMemberExpr(C, Base, BaseType,
+ IsArrow, OperatorLoc,
+ Qualifier, QualifierRange,
+@@ -756,7 +756,7 @@
+
+ std::size_t size = sizeof(CXXDependentScopeMemberExpr) +
+ ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+- void *Mem = C.Allocate(size, llvm::alignof<CXXDependentScopeMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<CXXDependentScopeMemberExpr>());
+ CXXDependentScopeMemberExpr *E
+ = new (Mem) CXXDependentScopeMemberExpr(C, 0, QualType(),
+ 0, SourceLocation(), 0,
+@@ -812,7 +812,7 @@
+ if (TemplateArgs)
+ size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
+ return new (Mem) UnresolvedMemberExpr(C,
+ Dependent ? C.DependentTy : C.OverloadTy,
+ Dependent, HasUnresolvedUsing, Base, BaseType,
+@@ -826,7 +826,7 @@
+ if (NumTemplateArgs != 0)
+ size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+
+- void *Mem = C.Allocate(size, llvm::alignof<UnresolvedMemberExpr>());
++ void *Mem = C.Allocate(size, llvm::alignOf<UnresolvedMemberExpr>());
+ UnresolvedMemberExpr *E = new (Mem) UnresolvedMemberExpr(EmptyShell());
+ E->HasExplicitTemplateArgs = NumTemplateArgs != 0;
+ return E;
+Index: lib/AST/DeclObjC.cpp
+===================================================================
+--- lib/AST/DeclObjC.cpp (revision 117774)
++++ lib/AST/DeclObjC.cpp (revision 117775)
+@@ -711,7 +711,7 @@
+ void ObjCClassDecl::setClassList(ASTContext &C, ObjCInterfaceDecl*const*List,
+ const SourceLocation *Locs, unsigned Num) {
+ ForwardDecls = (ObjCClassRef*) C.Allocate(sizeof(ObjCClassRef)*Num,
+- llvm::alignof<ObjCClassRef>());
++ llvm::alignOf<ObjCClassRef>());
+ for (unsigned i = 0; i < Num; ++i)
+ new (&ForwardDecls[i]) ObjCClassRef(List[i], Locs[i]);
+
+Index: lib/AST/Stmt.cpp
+===================================================================
+--- lib/AST/Stmt.cpp (revision 117774)
++++ lib/AST/Stmt.cpp (revision 117775)
+@@ -416,7 +416,7 @@
+ Stmt *atFinallyStmt) {
+ unsigned Size = sizeof(ObjCAtTryStmt) +
+ (1 + NumCatchStmts + (atFinallyStmt != 0)) * sizeof(Stmt *);
+- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
+ return new (Mem) ObjCAtTryStmt(atTryLoc, atTryStmt, CatchStmts, NumCatchStmts,
+ atFinallyStmt);
+ }
+@@ -426,7 +426,7 @@
+ bool HasFinally) {
+ unsigned Size = sizeof(ObjCAtTryStmt) +
+ (1 + NumCatchStmts + HasFinally) * sizeof(Stmt *);
+- void *Mem = Context.Allocate(Size, llvm::alignof<ObjCAtTryStmt>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<ObjCAtTryStmt>());
+ return new (Mem) ObjCAtTryStmt(EmptyShell(), NumCatchStmts, HasFinally);
+ }
+
+@@ -448,7 +448,7 @@
+ std::size_t Size = sizeof(CXXTryStmt);
+ Size += ((numHandlers + 1) * sizeof(Stmt));
+
+- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
++ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
+ return new (Mem) CXXTryStmt(tryLoc, tryBlock, handlers, numHandlers);
+ }
+
+@@ -457,7 +457,7 @@
+ std::size_t Size = sizeof(CXXTryStmt);
+ Size += ((numHandlers + 1) * sizeof(Stmt));
+
+- void *Mem = C.Allocate(Size, llvm::alignof<CXXTryStmt>());
++ void *Mem = C.Allocate(Size, llvm::alignOf<CXXTryStmt>());
+ return new (Mem) CXXTryStmt(Empty, numHandlers);
+ }
+
+Index: lib/AST/Expr.cpp
+===================================================================
+--- lib/AST/Expr.cpp (revision 117774)
++++ lib/AST/Expr.cpp (revision 117775)
+@@ -257,7 +257,7 @@
+ if (TemplateArgs)
+ Size += ExplicitTemplateArgumentList::sizeFor(*TemplateArgs);
+
+- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
+ return new (Mem) DeclRefExpr(Qualifier, QualifierRange, D, NameInfo,
+ TemplateArgs, T);
+ }
+@@ -271,7 +271,7 @@
+ if (NumTemplateArgs)
+ Size += ExplicitTemplateArgumentList::sizeFor(NumTemplateArgs);
+
+- void *Mem = Context.Allocate(Size, llvm::alignof<DeclRefExpr>());
++ void *Mem = Context.Allocate(Size, llvm::alignOf<DeclRefExpr>());
+ return new (Mem) DeclRefExpr(EmptyShell());
+ }
+
+@@ -432,7 +432,7 @@
+ // any concatenated string tokens.
+ void *Mem = C.Allocate(sizeof(StringLiteral)+
+ sizeof(SourceLocation)*(NumStrs-1),
+- llvm::alignof<StringLiteral>());
++ llvm::alignOf<StringLiteral>());
+ StringLiteral *SL = new (Mem) StringLiteral(Ty);
+
+ // OPTIMIZE: could allocate this appended to the StringLiteral.
+@@ -452,7 +452,7 @@
+ StringLiteral *StringLiteral::CreateEmpty(ASTContext &C, unsigned NumStrs) {
+ void *Mem = C.Allocate(sizeof(StringLiteral)+
+ sizeof(SourceLocation)*(NumStrs-1),
+- llvm::alignof<StringLiteral>());
++ llvm::alignOf<StringLiteral>());
+ StringLiteral *SL = new (Mem) StringLiteral(QualType());
+ SL->StrData = 0;
+ SL->ByteLength = 0;
+@@ -714,7 +714,7 @@
+ if (targs)
+ Size += ExplicitTemplateArgumentList::sizeFor(*targs);
+
+- void *Mem = C.Allocate(Size, llvm::alignof<MemberExpr>());
++ void *Mem = C.Allocate(Size, llvm::alignOf<MemberExpr>());
+ MemberExpr *E = new (Mem) MemberExpr(base, isarrow, memberdecl, nameinfo, ty);
+
+ if (hasQualOrFound) {
+Index: lib/AST/DeclCXX.cpp
+===================================================================
+--- lib/AST/DeclCXX.cpp (revision 117774)
++++ lib/AST/DeclCXX.cpp (revision 117775)
+@@ -1057,7 +1057,7 @@
+ unsigned NumIndices) {
+ void *Mem = Context.Allocate(sizeof(CXXBaseOrMemberInitializer) +
+ sizeof(VarDecl *) * NumIndices,
+- llvm::alignof<CXXBaseOrMemberInitializer>());
++ llvm::alignOf<CXXBaseOrMemberInitializer>());
+ return new (Mem) CXXBaseOrMemberInitializer(Context, Member, MemberLoc,
+ L, Init, R, Indices, NumIndices);
+ }
+Index: lib/Lex/TokenLexer.cpp
+===================================================================
+--- lib/Lex/TokenLexer.cpp (revision 117774)
++++ lib/Lex/TokenLexer.cpp (revision 117775)
+@@ -287,7 +287,7 @@
+ llvm::BumpPtrAllocator &Alloc = PP.getPreprocessorAllocator();
+ Token *Res =
+ static_cast<Token *>(Alloc.Allocate(sizeof(Token)*ResultToks.size(),
+- llvm::alignof<Token>()));
++ llvm::alignOf<Token>()));
+ if (NumTokens)
+ memcpy(Res, &ResultToks[0], NumTokens*sizeof(Token));
+ Tokens = Res;
diff --git a/community/llvm/clang-2.8-cindexer-clang-path.patch b/community/llvm/clang-2.8-cindexer-clang-path.patch
new file mode 100644
index 000000000..e283009e9
--- /dev/null
+++ b/community/llvm/clang-2.8-cindexer-clang-path.patch
@@ -0,0 +1,13 @@
+diff -upr clang-2.8.orig/tools/libclang/CIndexer.cpp clang-2.8/tools/libclang/CIndexer.cpp
+--- clang-2.8.orig/tools/libclang/CIndexer.cpp 2010-05-27 23:16:37.000000000 +0300
++++ clang-2.8/tools/libclang/CIndexer.cpp 2011-02-11 01:14:20.000000000 +0200
+@@ -68,7 +68,8 @@ const llvm::sys::Path& CIndexer::getClan
+
+ // We now have the CIndex directory, locate clang relative to it.
+ CIndexPath.eraseComponent();
+- CIndexPath.appendComponent("..");
++ CIndexPath.eraseComponent();
++ CIndexPath.eraseComponent();
+ CIndexPath.appendComponent("bin");
+ CIndexPath.appendComponent("clang");
+ #endif
diff --git a/community/llvm/clang-plugin-loader-registry.patch b/community/llvm/clang-plugin-loader-registry.patch
new file mode 100644
index 000000000..f46eb9fce
--- /dev/null
+++ b/community/llvm/clang-plugin-loader-registry.patch
@@ -0,0 +1,11 @@
+diff -upr llvm-2.7.orig/autoconf/ExportMap.map llvm-2.7/autoconf/ExportMap.map
+--- llvm-2.7.orig/autoconf/ExportMap.map 2010-02-25 00:33:41.000000000 +0200
++++ llvm-2.7/autoconf/ExportMap.map 2010-05-10 14:14:22.000000000 +0300
+@@ -2,6 +2,7 @@
+ global: main;
+ __progname;
+ environ;
++ _ZN4llvm8RegistryIN5clang14FrontendActionENS_14RegistryTraitsIS2_EEE4HeadE;
+
+ local: *;
+ };
diff --git a/community/llvm/cpp-headers.patch b/community/llvm/cpp-headers.patch
new file mode 100644
index 000000000..7e32a3f5b
--- /dev/null
+++ b/community/llvm/cpp-headers.patch
@@ -0,0 +1,17 @@
+diff -uprb clang-2.7.orig/lib/Frontend/InitHeaderSearch.cpp clang-2.7/lib/Frontend/InitHeaderSearch.cpp
+--- clang-2.7.orig/lib/Frontend/InitHeaderSearch.cpp 2010-03-06 21:38:10.000000000 +0200
++++ clang-2.7/lib/Frontend/InitHeaderSearch.cpp 2010-04-30 19:05:24.000000000 +0300
+@@ -539,10 +539,10 @@ void InitHeaderSearch::AddDefaultCPlusPl
+ "i586-suse-linux", "", "", triple);
+ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
+ "x86_64-suse-linux", "", "", triple);
+- // Arch Linux 2008-06-24
+- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
++ // Arch Linux 2010-12-17
++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.5.2",
+ "i686-pc-linux-gnu", "", "", triple);
+- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.5.2",
+ "x86_64-unknown-linux-gnu", "", "", triple);
+ // Gentoo x86 2009.1 stable
+ AddGnuCPlusPlusIncludePaths(
diff --git a/community/llvm/llvm-2.8-alignOf.patch b/community/llvm/llvm-2.8-alignOf.patch
new file mode 100644
index 000000000..d48c10cd9
--- /dev/null
+++ b/community/llvm/llvm-2.8-alignOf.patch
@@ -0,0 +1,59 @@
+Index: include/llvm/ADT/StringMap.h
+===================================================================
+--- include/llvm/ADT/StringMap.h (revision 117773)
++++ include/llvm/ADT/StringMap.h (revision 117774)
+@@ -167,7 +167,7 @@
+
+ unsigned AllocSize = static_cast<unsigned>(sizeof(StringMapEntry))+
+ KeyLength+1;
+- unsigned Alignment = alignof<StringMapEntry>();
++ unsigned Alignment = alignOf<StringMapEntry>();
+
+ StringMapEntry *NewItem =
+ static_cast<StringMapEntry*>(Allocator.Allocate(AllocSize,Alignment));
+Index: include/llvm/Support/AlignOf.h
+===================================================================
+--- include/llvm/Support/AlignOf.h (revision 117773)
++++ include/llvm/Support/AlignOf.h (revision 117774)
+@@ -49,12 +49,12 @@
+
+ };
+
+-/// alignof - A templated function that returns the mininum alignment of
++/// alignOf - A templated function that returns the mininum alignment of
+ /// of a type. This provides no extra functionality beyond the AlignOf
+ /// class besides some cosmetic cleanliness. Example usage:
+-/// alignof<int>() returns the alignment of an int.
++/// alignOf<int>() returns the alignment of an int.
+ template <typename T>
+-static inline unsigned alignof() { return AlignOf<T>::Alignment; }
++static inline unsigned alignOf() { return AlignOf<T>::Alignment; }
+
+ } // end namespace llvm
+ #endif
+Index: include/llvm/Support/Allocator.h
+===================================================================
+--- include/llvm/Support/Allocator.h (revision 117773)
++++ include/llvm/Support/Allocator.h (revision 117774)
+@@ -201,7 +201,7 @@
+ char *End = Slab == Allocator.CurSlab ? Allocator.CurPtr :
+ (char *)Slab + Slab->Size;
+ for (char *Ptr = (char*)(Slab+1); Ptr < End; Ptr += sizeof(T)) {
+- Ptr = Allocator.AlignPtr(Ptr, alignof<T>());
++ Ptr = Allocator.AlignPtr(Ptr, alignOf<T>());
+ if (Ptr + sizeof(T) <= End)
+ reinterpret_cast<T*>(Ptr)->~T();
+ }
+Index: include/llvm/CodeGen/SlotIndexes.h
+===================================================================
+--- include/llvm/CodeGen/SlotIndexes.h (revision 117773)
++++ include/llvm/CodeGen/SlotIndexes.h (revision 117774)
+@@ -393,7 +393,7 @@
+ IndexListEntry *entry =
+ static_cast<IndexListEntry*>(
+ ileAllocator.Allocate(sizeof(IndexListEntry),
+- alignof<IndexListEntry>()));
++ alignOf<IndexListEntry>()));
+
+ new (entry) IndexListEntry(mi, index);
+
diff --git a/community/lmctl/PKGBUILD b/community/lmctl/PKGBUILD
new file mode 100644
index 000000000..8e8931e66
--- /dev/null
+++ b/community/lmctl/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Jeff Mickey <j@codemac.net>
+# Contributor: Shadowhand <woody.gilk@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=lmctl
+pkgver=0.3.2
+pkgrel=6
+pkgdesc="Logitech Mouse configuration program"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.bedroomlan.org/~alexios/coding_lmctl.html"
+depends=('libusb-compat')
+source=(http://www.bedroomlan.org/~alexios/files/SOFTWARE/lmctl/${pkgname}\_${pkgver}.tar.gz \
+ mx-support-cmdline.patch mx-support-man.patch mx-support.patch \
+ lmctl.rc.d lmctl.conf.d)
+md5sums=('c2acb088c95adeac68b6de8f05ddc0e4' '431521026fc07b27e21d65124dd1134f' \
+ 'cfc222209b9a9d6b203c5a00dafe57dd' '1b943fe045d8273677be43c79bfd1031'
+ 'a62ad322e93c1cbc931bba33fb0a518c' 'a77682cf2d2c9e3d1a53a6444a74ce66' )
+
+build() {
+ cd ${srcdir}/${pkgname}-0.3.1
+
+ patch -Np1 < ${srcdir}/mx-support-cmdline.patch
+ patch -Np1 < ${srcdir}/mx-support-man.patch
+ patch -Np1 < ${srcdir}/mx-support.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-0.3.1
+
+ make DESTDIR=${pkgdir} install
+
+ # install the init scripts
+ install -D -m755 ${srcdir}/lmctl.rc.d ${pkgdir}/etc/rc.d/lmctl
+ install -D -m644 ${srcdir}/lmctl.conf.d ${pkgdir}/etc/conf.d/lmctl
+}
diff --git a/community/lmctl/lmctl.conf.d b/community/lmctl/lmctl.conf.d
new file mode 100644
index 000000000..54e532e25
--- /dev/null
+++ b/community/lmctl/lmctl.conf.d
@@ -0,0 +1,6 @@
+#
+# Parameters to be passed to lmctl
+#
+# lmctl --help for more info
+#
+LMCTL_ARGS="--1600 --no-sms"
diff --git a/community/lmctl/lmctl.rc.d b/community/lmctl/lmctl.rc.d
new file mode 100644
index 000000000..e9eaf7de1
--- /dev/null
+++ b/community/lmctl/lmctl.rc.d
@@ -0,0 +1,21 @@
+#!/bin/bash
+LMCTL_ARGS=
+[ -f /etc/conf.d/lmctl ] && . /etc/conf.d/lmctl
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Setting up Logitech Mouse"
+ /usr/bin/lmctl ${LMCTL_ARGS} &>/dev/null
+ if [ $? -eq 0 ] ; then
+ stat_fail
+ else
+ stat_done
+ add_daemon lmctl
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start}"
+esac
diff --git a/community/lmctl/mx-support-cmdline.patch b/community/lmctl/mx-support-cmdline.patch
new file mode 100644
index 000000000..f2f7cf068
--- /dev/null
+++ b/community/lmctl/mx-support-cmdline.patch
@@ -0,0 +1,37 @@
+--- lmctl-org/src/cmdline.c 2004-09-07 22:40:15.000000000 +0000
++++ lmctl-0.3.1/src/cmdline.c 2005-06-29 13:36:33.000000000 +0000
+@@ -128,6 +128,10 @@
+ "Set matching devices to a resolution of 400cpi"},
+ { "800", '8', NULL, 0,
+ "Set matching devices to a resolution of 800cpi"},
++ { "1200", 'm', NULL, 0,
++ "Set matching devices to a medium resolution of 1200cpi"},
++ { "1600", 'h', NULL, 0,
++ "Set matching devices to a high resolution of 1600cpi"},
+
+ { NULL, 0, NULL, 0, _("SmartScroll/Cruise Control (SMS command set)") },
+
+@@ -227,13 +231,22 @@
+ command = cmd_set;
+ set_res = (int) (key - '0') * 100;
+ break;
++
++ case 'm':
++ command = cmd_set;
++ set_res = (int) (12) * 100;
++ break;
++ case 'h':
++ command = cmd_set;
++ set_res = (int) (16) *100;
++ break;
+
+ case '1': /* set the channel */
+ case '2':
+ command = cmd_set;
+ set_channel = (int) (key - '0');
+ break;
+-
++
+ case 'u':
+ command = cmd_set;
+ set_unlock = 1;
diff --git a/community/lmctl/mx-support-man.patch b/community/lmctl/mx-support-man.patch
new file mode 100644
index 000000000..78d4ff023
--- /dev/null
+++ b/community/lmctl/mx-support-man.patch
@@ -0,0 +1,17 @@
+--- lmctl-org/src/lmctl.1 2004-09-07 22:32:25.000000000 +0000
++++ lmctl-0.3.1/src/lmctl.1 2005-06-29 14:02:32.000000000 +0000
+@@ -116,6 +116,14 @@
+ .BR -8 ", " --800
+ Sets matching devices to a resolution of 800 cpi. Very useful on
+ certain Logitech mice (the MX500 is one of them) that boot in 400 cpi.
++.TP
++.BR -m ", " --1200
++Sets matching devices to a resolution of 1200 cpi. Very useful on
++certain Logitech mice (the MX518 is one of them) that boot in 400 cpi.
++.TP
++.BR -h ", " --1600
++Sets matching devices to a resolution of 1600 cpi. Very useful on
++certain Logitech mice (the MX518 is one of them) that boot in 400 cpi.
+ .PP
+ The following settings control SmartScroll/Cruise Control, for mice
+ that support it (i.e. include the SMS capability).
diff --git a/community/lmctl/mx-support.patch b/community/lmctl/mx-support.patch
new file mode 100644
index 000000000..9c09a9c9b
--- /dev/null
+++ b/community/lmctl/mx-support.patch
@@ -0,0 +1,29 @@
+--- lmctl-org/src/lmctl.c 2004-09-08 07:59:55.000000000 +0000
++++ lmctl-0.3.1/src/lmctl.c 2005-06-29 14:03:50.000000000 +0000
+@@ -99,6 +99,8 @@
+ {0xc00e, "Wheel Mouse Optical", "M-BJ58", 0, 1, 0, 0},
+ {0xc00f, "MouseMan Traveler", "M-BJ79", 0, 1, 0, 0},
+ {0xc012, "MouseMan Dual Optical", "M-BL63B", 0, 1, 0, 0},
++ {0xc01d, "MX510 Optical Mouse", "M-BS81A", 0, 1, 1, 0},
++ {0xc01e, "MX518 Optical Mouse", "M-BS81A", 0, 1, 0, 0},
+ {0xc024, "MX300 Optical Mouse", "M-BP82", 0, 1, 0, 0},
+ {0xc025, "MX500 Optical Mouse", "M-BP81A", 0, 1, 1, 0},
+ {0xc031, "iFeel Mouse (silver)", "M-UT58A", 0, 1, 0, 0},
+@@ -270,7 +272,7 @@
+ exit(1);
+ }
+
+- assert ((buf [0] == 3) || (buf [0] == 4));
++ assert ((buf [0] == 3) || (buf [0] == 4) || (buf [0] == 5) || (buf [0] == 6));
+
+ printf ("\tResolution (RES): %d cpi\n", (buf [0] - 2) * 400);
+ }
+@@ -355,7 +357,7 @@
+ unsigned char buf [80];
+ if (!set_res) return;
+
+- assert ((set_res == 400) || (set_res == 800));
++ assert ((set_res == 400) || (set_res == 800) || (set_res == 1200) || (set_res == 1600));
+ if (usb_control_msg (handle, 0x40, 0x02, 0x000e, (set_res / 400) + 2,
+ buf, 0, TIMEOUT) != 0) {
+ perror("Writing to USB device");
diff --git a/community/lmms/PKGBUILD b/community/lmms/PKGBUILD
new file mode 100644
index 000000000..3bd2ee9d8
--- /dev/null
+++ b/community/lmms/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 40769 2011-02-26 18:40:13Z mherych $
+# Maintainer: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Storyteller <spiralsorrow@hotmail.com>
+
+pkgname=lmms
+pkgver=0.4.10
+pkgrel=1
+pkgdesc="The Linux MultiMedia Studio"
+arch=('i686' 'x86_64')
+url="http://lmms.sourceforge.net/"
+license=('GPL')
+depends=('sdl' 'glib2' 'fluidsynth' 'libpng' 'libvorbis' 'libxft' 'libxinerama' 'qt' 'sdl_sound' 'libsamplerate' 'shared-mime-info')
+optdepends=('wine: VST support (experimental)'
+ 'fftw: SpectrumAnalyzer plugin'
+ 'stk: STK instruments plugins')
+makedepends=('cmake' 'ladspa' 'libxft' 'freetype2')
+provides=('lmms-extras')
+conflicts=('lmms-extras')
+options=('!libtool' '!makeflags')
+install=lmms.install
+source=(http://downloads.sourceforge.net/sourceforge/lmms/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('dc44dc7bc3f3fa697a78b1719288d762')
+sha1sums=('401d085f4f8e63942cd26bb0160f7009a644515c')
+
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's|lib64|lib|g' cmake/modules/DetectMachine.cmake
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/community/lmms/lmms.install b/community/lmms/lmms.install
new file mode 100644
index 000000000..11549cb5c
--- /dev/null
+++ b/community/lmms/lmms.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/lockdev/PKGBUILD b/community/lockdev/PKGBUILD
new file mode 100644
index 000000000..1074e3f75
--- /dev/null
+++ b/community/lockdev/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 21613 2010-07-16 20:02:19Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Wagner <a.wagner@stud.uni-frankfurt.de>
+
+pkgname=lockdev
+pkgver=1.0.3_1.2
+pkgrel=2
+pkgdesc="Run-time shared library for locking devices, using _both_ FSSTND and SVr4 methods"
+url="http://packages.qa.debian.org/l/lockdev.html"
+license=("GPL")
+arch=('i686' 'x86_64')
+source=("http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_1.0.3.orig.tar.gz"
+ "http://ftp.debian.org/debian/pool/main/l/${pkgname}/${pkgname}_${pkgver/_/-}.diff.gz")
+md5sums=('64b9c1b87b125fc348e892e24625524a'
+ 'afe2995ad3fc6551e107364d66a8e938')
+
+build() {
+ cd ${pkgname}-1.0.3
+
+ patch -p1 < ../${pkgname}_${pkgver/_/-}.diff
+
+ sed -i "s|CFLAGS = -g|CFLAGS = -g -fPIC|" Makefile
+
+ make shared
+
+ make static
+}
+
+package() {
+ cd ${pkgname}-1.0.3
+
+ make basedir=${pkgdir}/usr install
+}
diff --git a/community/lorcon-old-svn/PKGBUILD b/community/lorcon-old-svn/PKGBUILD
new file mode 100644
index 000000000..fedfc4e34
--- /dev/null
+++ b/community/lorcon-old-svn/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: fnord0 [fnord0 <AT> riseup <DOT> net]
+
+pkgname=lorcon-old-svn
+pkgver=197
+pkgrel=2
+makedepends=('subversion')
+pkgdesc="Loss Of Radio CONnectivity: A generic library for injecting 802.11 frames, capable of injection via multiple driver frameworks, without forcing modification of the application code."
+url="http://802.11ninja.net"
+license="GPL"
+arch=('i686' 'x86_64')
+
+_svntrunk=http://802.11ninja.net/svn/lorcon/branch/lorcon-old/
+_svnmod=lorcon-old
+
+build() {
+ cd ${srcdir}
+
+ # Fetch latest svn build
+ if [ -d ${_svnmod}/.svn ]; then
+ msg "Updating lorcon-old SVN..."
+ cd ${_svnmod} && svn up
+ else
+ msg "Checking out lorcon-old SVN..."
+ svn co ${_svntrunk} -r 224 ${_svnmod}
+ fi
+
+ msg "SVN checkout done or server timeout"
+
+ # Compile
+ cd ${srcdir}/${_svnmod}
+ msg "Starting make..."
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${_svnmod}
+
+ # Install
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/community/lrzsz/PKGBUILD b/community/lrzsz/PKGBUILD
new file mode 100644
index 000000000..eb90c46d6
--- /dev/null
+++ b/community/lrzsz/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 19892 2010-06-30 13:19:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jeremie Dimino <jeremie@dimino.org>
+# Contributor: bender02 at gmx dot com
+
+pkgname=lrzsz
+pkgver=0.12.20
+pkgrel=3
+pkgdesc="xmodem, ymodem and zmodem file transfer protocols"
+url="http://www.ohse.de/uwe/software/lrzsz.html"
+license=('GPL2')
+arch=('i686' 'x86_64')
+source=(http://www.ohse.de/uwe/releases/$pkgname-$pkgver.tar.gz
+ lrzsz.patch)
+md5sums=('b5ce6a74abc9b9eb2af94dffdfd372a4'
+ '332f6e4af9fe0266efecf9d334c4d3db')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i ../lrzsz.patch || return 1
+
+ # Rename file so they can be used with minicom
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --program-transform-name=s/l//
+ make -j1 || return 1
+ make -j1 DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/lrzsz/lrzsz.patch b/community/lrzsz/lrzsz.patch
new file mode 100644
index 000000000..8caeae54c
--- /dev/null
+++ b/community/lrzsz/lrzsz.patch
@@ -0,0 +1,40 @@
+diff -ur lrzsz-0.12.20-orig/src/Makefile.am lrzsz-0.12.20/src/Makefile.am
+--- lrzsz-0.12.20-orig/src/Makefile.am 1998-12-28 09:38:47.000000000 +0100
++++ lrzsz-0.12.20/src/Makefile.am 2007-10-13 22:48:15.000000000 +0200
+@@ -18,13 +18,13 @@
+ rm -f $(DESTDIR)/$(bindir)/`echo lsb | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lsb |sed -e '$(transform)'`
+- rm -f $(bindir)/`echo lsx | sed -e '$(transform)'`
++ rm -f $(DESTDIR)/$(bindir)/`echo lsx | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lsx |sed -e '$(transform)'`
+- rm -f $(bindir)/`echo lrb | sed -e '$(transform)'`
++ rm -f $(DESTDIR)/$(bindir)/`echo lrb | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lrz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lrb |sed -e '$(transform)'`
+- rm -f $(bindir)/`echo lrx | sed -e '$(transform)'`
++ rm -f $(DESTDIR)/$(bindir)/`echo lrx | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lrz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lrx |sed -e '$(transform)'`
+ # rm -f $(bindir)/`echo lrzszbug | sed -e '$(transform)'`
+diff -ur lrzsz-0.12.20-orig/src/Makefile.in lrzsz-0.12.20/src/Makefile.in
+--- lrzsz-0.12.20-orig/src/Makefile.in 1998-12-30 17:31:46.000000000 +0100
++++ lrzsz-0.12.20/src/Makefile.in 2007-10-13 22:47:48.000000000 +0200
+@@ -372,13 +372,13 @@
+ rm -f $(DESTDIR)/$(bindir)/`echo lsb | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lsb |sed -e '$(transform)'`
+- rm -f $(bindir)/`echo lsx | sed -e '$(transform)'`
++ rm -f $(DESTDIR)/$(bindir)/`echo lsx | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lsz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lsx |sed -e '$(transform)'`
+- rm -f $(bindir)/`echo lrb | sed -e '$(transform)'`
++ rm -f $(DESTDIR)/$(bindir)/`echo lrb | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lrz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lrb |sed -e '$(transform)'`
+- rm -f $(bindir)/`echo lrx | sed -e '$(transform)'`
++ rm -f $(DESTDIR)/$(bindir)/`echo lrx | sed -e '$(transform)'`
+ ln $(DESTDIR)/$(bindir)/`echo lrz |sed -e '$(transform)'` \
+ $(DESTDIR)/$(bindir)/`echo lrx |sed -e '$(transform)'`
+ # rm -f $(bindir)/`echo lrzszbug | sed -e '$(transform)'`
diff --git a/community/lsb-release/PKGBUILD b/community/lsb-release/PKGBUILD
new file mode 100644
index 000000000..fa910772e
--- /dev/null
+++ b/community/lsb-release/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 22635 2010-07-25 20:05:28Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Malte Rabenseifner <malte@zearan.de>
+# Contributor: John Gerritse <reaphsharc@gmail.com>
+
+pkgname=lsb-release
+pkgver=1.4
+pkgrel=10
+pkgdesc="LSB version query program"
+arch=('i686' 'x86_64')
+url="http://www.linuxbase.org/"
+license=('GPL2')
+install=lsb-release.install
+source=(http://downloads.sourceforge.net/lsb/$pkgname-$pkgver.tar.gz)
+md5sums=('30537ef5a01e0ca94b7b8eb6a36bb1e4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ install -dm755 "$pkgdir/etc"
+ echo "DISTRIB_DESCRIPTION=\"Arch Linux\"" > "$pkgdir/etc/lsb-release"
+
+ install -Dm 644 lsb_release.1.gz "$pkgdir/usr/share/man/man1/lsb_release.1.gz"
+ install -Dm 755 lsb_release "$pkgdir/usr/bin/lsb_release"
+}
diff --git a/community/lsb-release/lsb-release.install b/community/lsb-release/lsb-release.install
new file mode 100644
index 000000000..3459fe786
--- /dev/null
+++ b/community/lsb-release/lsb-release.install
@@ -0,0 +1,12 @@
+post_install() {
+ echo "Arch Linux release" >> /etc/arch-release
+}
+
+post_upgrade() {
+ sed -e "/Arch Linux release/d" -i /etc/arch-release
+ echo "Arch Linux release" >> /etc/arch-release
+}
+
+pre_remove() {
+ sed -e "/Arch Linux release/d" -i /etc/arch-release
+}
diff --git a/community/lshw/PKGBUILD b/community/lshw/PKGBUILD
new file mode 100644
index 000000000..723026e3b
--- /dev/null
+++ b/community/lshw/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 29087 2010-10-10 07:47:30Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Stefano Zamprogno <stefano dot zamprogno at gmail dot com>
+# Contributor: Chuck Yang <Chuck.Yang@gmail.com>
+
+pkgname=lshw
+pkgver=B.02.15
+pkgrel=1
+pkgdesc="A small tool to provide detailed information on the hardware configuration of the machine."
+url="http://ezix.org/project/wiki/HardwareLiSter"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gcc-libs')
+optdepends=('gtk2')
+makedepends=('gcc')
+source=(http://ezix.org/software/files/lshw-$pkgver.tar.gz
+ abi_stdlib.diff)
+md5sums=('970bd9eb05fa3ae139a24a417465c54c'
+ '7adcdd7a2be2feba956a9832cf36abdf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+# patch -Np1 -i ../abi_stdlib.diff || return 1
+
+ make || return 1
+ make gui || return 1
+ make DESTDIR=$pkgdir/ install || return 1
+ make DESTDIR=$pkgdir/ install-gui
+}
diff --git a/community/lshw/abi_stdlib.diff b/community/lshw/abi_stdlib.diff
new file mode 100644
index 000000000..ffe88d1d8
--- /dev/null
+++ b/community/lshw/abi_stdlib.diff
@@ -0,0 +1,23 @@
+diff -wbBur lshw-B.02.14/src/core/abi.cc lshw-B.02.14.my//src/core/abi.cc
+--- lshw-B.02.14/src/core/abi.cc 2009-02-12 22:53:09.000000000 +0000
++++ lshw-B.02.14.my//src/core/abi.cc 2010-05-24 14:30:18.000000000 +0000
+@@ -10,6 +10,7 @@
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <dirent.h>
++#include <stdlib.h>
+
+ __ID("@(#) $Id: mem.cc 1352 2006-05-27 23:54:13Z ezix $");
+
+diff -wbBur lshw-B.02.14/src/core/scsi.cc lshw-B.02.14.my//src/core/scsi.cc
+--- lshw-B.02.14/src/core/scsi.cc 2009-02-12 22:53:09.000000000 +0000
++++ lshw-B.02.14.my//src/core/scsi.cc 2010-05-24 14:32:13.000000000 +0000
+@@ -842,7 +842,7 @@
+
+ if (!controller)
+ {
+- controller = node.addChild(hwNode::hwNode("scsi", hw::storage));
++ controller = node.addChild(hwNode("scsi", hw::storage));
+ if (controller)
+ {
+ controller->setLogicalName(host_logicalname(number));
diff --git a/community/ltris/ChangeLog b/community/ltris/ChangeLog
new file mode 100644
index 000000000..9975da0d0
--- /dev/null
+++ b/community/ltris/ChangeLog
@@ -0,0 +1,15 @@
+2009-12-29 Eric Belanger <eric@archlinux.org>
+
+ * ltris 1.0.14-1
+ * Upstream update
+
+2009-11-07 Eric Belanger <eric@archlinux.org>
+
+ * ltris 1.0.13-1
+ * Upstream update
+
+2009-04-07 Eric Belanger <eric@archlinux.org>
+
+ * ltris 1.0.12-1
+ * Fixed score file location and permissions (close FS#13489)
+ * Added ChangeLog
diff --git a/community/ltris/PKGBUILD b/community/ltris/PKGBUILD
new file mode 100644
index 000000000..54fcd247b
--- /dev/null
+++ b/community/ltris/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 7041 2009-12-30 05:28:27Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>
+
+pkgname=ltris
+pkgver=1.0.14
+pkgrel=1
+pkgdesc="A tetris clone where you have a bowl with blocks falling down."
+arch=('i686' 'x86_64')
+url="http://lgames.sourceforge.net/index.php?project=LTris"
+license=('GPL')
+depends=('sdl_mixer')
+install=ltris.install
+source=(http://downloads.sourceforge.net/lgames/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7eff57f492bc880a02a58c64f638959e')
+sha1sums=('031262093c99376c3c7349798f099c1e7ea0867f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --localstatedir=/var/games || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 icons/ltris{16,32,48}.xpm "${pkgdir}/usr/share/pixmaps"
+
+ chown root:games "${pkgdir}/usr/bin/ltris"
+ chmod 2755 "${pkgdir}/usr/bin/ltris"
+ chown root:games "${pkgdir}/var/games"
+ chmod 775 "${pkgdir}/var/games"
+ rm "${pkgdir}/var/games/ltris.hscr"
+}
diff --git a/community/ltris/ltris.install b/community/ltris/ltris.install
new file mode 100644
index 000000000..ff4947f6e
--- /dev/null
+++ b/community/ltris/ltris.install
@@ -0,0 +1,17 @@
+post_install() {
+ touch /var/games/ltris.hscr
+ chown root:games /var/games/ltris.hscr
+ chmod 664 /var/games/ltris.hscr
+}
+
+pre_upgrade() {
+ if [ -e /var/ltris.hscr ]; then
+ install -d /var/games
+ cp /var/ltris.hscr /var/games
+ fi
+}
+
+post_upgrade() {
+ chown root:games /var/games/ltris.hscr
+ chmod 664 /var/games/ltris.hscr
+}
diff --git a/community/lua-lzlib/PKGBUILD b/community/lua-lzlib/PKGBUILD
new file mode 100644
index 000000000..2d31c5c63
--- /dev/null
+++ b/community/lua-lzlib/PKGBUILD
@@ -0,0 +1,29 @@
+# Contributor: Anders Bergh <anders1@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=lua-lzlib
+pkgver=0.4_work2
+pkgrel=4
+pkgdesc="Lua interface to zlib"
+arch=('i686' 'x86_64')
+url="http://luaforge.net/projects/lzlib/"
+license=('custom')
+depends=(lua zlib)
+# LuaForge urls have to be updated manually (the ID is different)
+source=(http://luaforge.net/frs/download.php/3826/lzlib-0.4-work2.tar.gz
+ license.txt)
+md5sums=('9d29ec26d3ccbd86ea4d95dcc602911a'
+ 'fc22ecccadddd8ad646aca9c5eb7d23a')
+build() {
+ cd ${srcdir}/lzlib-${pkgver/_/-}
+
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/lzlib-${pkgver/_/-}
+
+ install -Dm644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+ install -Dm755 zlib.so ${pkgdir}/usr/lib/lua/5.1/zlib.so || return 1
+ install -Dm644 gzip.lua ${pkgdir}/usr/share/lua/5.1/gzip.lua || return 1
+}
diff --git a/community/lua-lzlib/license.txt b/community/lua-lzlib/license.txt
new file mode 100644
index 000000000..389456d0a
--- /dev/null
+++ b/community/lua-lzlib/license.txt
@@ -0,0 +1,24 @@
+*************************************************************************
+* Author : Tiago Dionizio <tiago.dionizio@gmail.com> *
+* Library : lzlib - Lua 5.1 interface to access zlib library functions*
+* *
+* Permission is hereby granted, free of charge, to any person obtaining *
+* a copy of this software and associated documentation files (the *
+* "Software"), to deal in the Software without restriction, including *
+* without limitation the rights to use, copy, modify, merge, publish, *
+* distribute, sublicense, and/or sell copies of the Software, and to *
+* permit persons to whom the Software is furnished to do so, subject to *
+* the following conditions: *
+* *
+* The above copyright notice and this permission notice shall be *
+* included in all copies or substantial portions of the Software. *
+* *
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*
+* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY *
+* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, *
+* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE *
+* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+*************************************************************************
+
diff --git a/community/lua-yajl-git/LICENSE b/community/lua-yajl-git/LICENSE
new file mode 100644
index 000000000..89de35479
--- /dev/null
+++ b/community/lua-yajl-git/LICENSE
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/community/lua-yajl-git/PKGBUILD b/community/lua-yajl-git/PKGBUILD
new file mode 100644
index 000000000..b25bad396
--- /dev/null
+++ b/community/lua-yajl-git/PKGBUILD
@@ -0,0 +1,49 @@
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=lua-yajl-git
+pkgver=20101121
+pkgrel=1
+pkgdesc="Lua interface to yajl."
+arch=('i686' 'x86_64')
+url="http://github.com/brimworks/lua-yajl"
+license=('MIT')
+depends=('yajl' 'lua')
+makedepends=('git' 'cmake')
+options=(!libtool)
+source=(LICENSE)
+md5sums=('838c366f69b72c5df05c96dff79b35f2')
+
+_gitroot="git://github.com/brimworks/lua-yajl.git"
+_gitname="lua-yajl"
+
+build() {
+ cd ${srcdir}
+ msg 'Connecting to GIT server....'
+
+ if [ -d ${_gitname} ] ; then
+ cd ${_gitname} && git pull origin
+ msg 'The local files are updated.'
+ else
+ git clone ${_gitroot} ${_gitname}
+ fi
+
+ msg 'GIT checkout done or server timeout'
+ msg 'Starting make...'
+
+ rm -rf ${srcdir}/${_gitname}-build
+ git clone ${srcdir}/${_gitname} ${srcdir}/${_gitname}-build
+ cd ${srcdir}/${_gitname}-build
+
+ cmake . || return 1
+ make || return 1
+}
+
+package(){
+ cd ${srcdir}/${_gitname}-build
+ make DESTDIR=${pkgdir} install
+ mkdir -p ${pkgdir}/usr/lib/lua/5.1
+ mv ${pkgdir}/usr/local/share/lua/cmod/* ${pkgdir}/usr/lib/lua/5.1/
+ rm -R ${pkgdir}/usr/local
+ install -Dm644 ${srcdir}/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/lua-zlib/ChangeLog b/community/lua-zlib/ChangeLog
new file mode 100644
index 000000000..881a6885b
--- /dev/null
+++ b/community/lua-zlib/ChangeLog
@@ -0,0 +1,42 @@
+2010-02-18 Dwayne Bent <dbb.0@liqd.org>
+
+ * PKGBUILD:
+ Actually build the library
+ [b994a1eae8e4] [tip]
+
+2010-02-15 Dwayne Bent <dbb.1@liqd.org>
+
+ * .hgtags:
+ Added tag v20100215-1 for changeset 82cf8c12f58d
+ [5e6e628919ec]
+
+ * ChangeLog, PKGBUILD:
+ Added ChangeLog
+ [82cf8c12f58d] [v20100215-1]
+
+ * PKGBUILD:
+ Install license file
+ [470c65e1d08b]
+
+ * PKGBUILD:
+ Updated email address
+ [cf9fdc7b9cc5]
+
+ * PKGBUILD:
+ Change package name to reflect the type of package this actually is
+ [39b61ef661d7]
+
+ * PKGBUILD:
+ Clean up PKGBUILD
+ [183b11d1286e]
+
+2009-11-26 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v20091125-1 for changeset 8e6cc75fb38b
+ [72c8c117a64c]
+
+ * Makefile, PKGBUILD:
+ Initial commit
+ [8e6cc75fb38b] [v20091125-1]
+
diff --git a/community/lua-zlib/PKGBUILD b/community/lua-zlib/PKGBUILD
new file mode 100644
index 000000000..01ebf0eee
--- /dev/null
+++ b/community/lua-zlib/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 23493 2010-08-11 18:21:33Z lcarlier $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=lua-zlib
+pkgver=0
+pkgrel=3
+url="http://github.com/brimworks/lua-zlib"
+pkgdesc='Simple streaming interface to zlib for Lua.'
+arch=('i686' 'x86_64')
+license=('MIT')
+depends=('lua' 'zlib')
+makedepends=('cmake')
+conflicts=('lua-lzlib')
+source=("lua-zlib-$pkgver.tar.gz::http://github.com/brimworks/lua-zlib/tarball/version-0")
+md5sums=('c404284a796e2f9143629bfdcb1ba200')
+
+build() {
+ cd $srcdir/brimworks-lua-zlib-da0549e
+
+ local _luaver=5.1
+ sed -i "s#share/lua/cmod#lib/lua/${_luaver}#" CMakeLists.txt
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr .
+}
+
+package() {
+ cd $srcdir/brimworks-lua-zlib-da0549e
+
+ make DESTDIR="$pkgdir" install || return 1
+ install -D -m644 "README" "$pkgdir/usr/share/licenses/lua-zlib/README"
+}
diff --git a/community/luaexpat/PKGBUILD b/community/luaexpat/PKGBUILD
new file mode 100644
index 000000000..e0f61fa82
--- /dev/null
+++ b/community/luaexpat/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: Lucas Hermann Negri <kkndrox@gmail.com>
+pkgname='luaexpat'
+pkgver='1.1'
+pkgrel='3'
+pkgdesc='LuaExpat is a SAX XML parser based on the Expat library. LuaExpat is free software and uses the same license as Lua 5.0.'
+arch=('i686' 'x86_64')
+url='http://luaforge.net/projects/luaexpat/'
+license=('MIT')
+makedepends=('gcc' 'lua>=5.1' 'expat>=2')
+depends=('lua' 'expat')
+source=(http://luaforge.net/frs/download.php/2469/$pkgname-$pkgver.tar.gz 'newconfig')
+md5sums=('6ecb895ccf5cff1e7f2facd438b1f8d0' 'b89a09379d3e46e6496255e44cecc316')
+
+build() {
+ cd $startdir/src/
+ mv newconfig $pkgname-$pkgver/config
+ cd $pkgname-$pkgver
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ mv usr $startdir/pkg
+}
+
diff --git a/community/luaexpat/newconfig b/community/luaexpat/newconfig
new file mode 100644
index 000000000..095c0800e
--- /dev/null
+++ b/community/luaexpat/newconfig
@@ -0,0 +1,26 @@
+LUA_LIBDIR= usr/lib/lua/5.1
+LUA_DIR= usr/share/lua/5.1
+LUA_INC= /usr/include
+EXPAT_INC= /usr/include
+
+# OS dependent
+LIB_OPTION= -shared
+
+LIBNAME= $T.so.$V
+LUA_VERSION_NUM= 512
+COMPAT_DIR= ../compat/src
+
+# Compilation parameters
+CWARNS = -Wall -pedantic \
+ -Waggregate-return \
+ -Wcast-align \
+ -Wmissing-prototypes \
+ -Wstrict-prototypes \
+ -Wnested-externs \
+ -Wpointer-arith \
+ -Wshadow \
+ -Wwrite-strings
+
+CFLAGS = $(CWARNS) -ansi -O2 -I$(LUA_INC) \
+ -I$(COMPAT_DIR) -I$(EXPAT_INC) -fPIC
+CC = gcc
diff --git a/community/luafilesystem/LICENSE b/community/luafilesystem/LICENSE
new file mode 100644
index 000000000..53f2abebc
--- /dev/null
+++ b/community/luafilesystem/LICENSE
@@ -0,0 +1,22 @@
+Copyright (C) 2004-2007 The Kepler Project.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/community/luafilesystem/PKGBUILD b/community/luafilesystem/PKGBUILD
new file mode 100644
index 000000000..49266f90b
--- /dev/null
+++ b/community/luafilesystem/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 15894 2010-04-17 20:42:12Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Anders Bergh <anders1@gmail.com>
+pkgname=luafilesystem
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="File System Library for the Lua Programming Language"
+arch=('i686' 'x86_64')
+url="http://www.keplerproject.org/luafilesystem/"
+license=('MIT')
+depends=(lua)
+source=(http://github.com/downloads/keplerproject/$pkgname/$pkgname-$pkgver.tar.gz
+ LICENSE)
+
+build() {
+ install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" || return 1
+
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make || return 1
+ install -Dm755 src/lfs.so "$pkgdir/usr/lib/lua/5.1/lfs.so" || return 1
+}
+md5sums=('3cf4882bbce956e7a0b010f148f194a3'
+ 'beb2b58c4b5c2782304a5b0267a5651b')
diff --git a/community/luarocks/PKGBUILD b/community/luarocks/PKGBUILD
new file mode 100644
index 000000000..633beb5f5
--- /dev/null
+++ b/community/luarocks/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 38024 2011-01-20 16:03:49Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+
+pkgname=luarocks
+pkgver=2.0.4.1
+pkgrel=1
+pkgdesc='Deployment and management system for Lua modules'
+arch=('i686' 'x86_64')
+url="http://luarocks.org/"
+depends=('lua' 'unzip' 'zip' 'curl')
+optdepends=('cvs: for fetching sources from CVS repositories'
+ 'git: for fetching sources from git repositories'
+ 'cmake: for building rocks that use the cmake build system')
+license=('custom')
+source=(http://luarocks.org/releases/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # I added --with-downloader=curl, because luarocks already uses curl
+ # for uploading. May as well use curl for downloading.
+ ./configure --prefix=/usr --sysconfdir=/etc/luarocks --with-downloader=curl
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make install DESTDIR="$pkgdir"
+ install -D COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+md5sums=('2c7caccce3cdf236e6f9aca7bec9bdea')
diff --git a/community/luasec/ChangeLog b/community/luasec/ChangeLog
new file mode 100644
index 000000000..4a64bc6a7
--- /dev/null
+++ b/community/luasec/ChangeLog
@@ -0,0 +1,60 @@
+2010-02-15 Dwayne Bent <dbb.1@liqd.org>
+
+ * PKGBUILD:
+ Install license file
+ [ea00bf4731a9] [tip]
+
+ * PKGBUILD:
+ Updated email address
+ [7dbb9017cecc]
+
+2009-12-19 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.4-1 for changeset 91906cc7dfbd
+ [3c36a2298de6]
+
+ * PKGBUILD, luasec.patch:
+ New upstream version
+ [91906cc7dfbd] [v0.4-1]
+
+2009-08-19 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.3.3-1 for changeset 9635074f31a3
+ [e6b3934bbbba]
+
+ * PKGBUILD:
+ New upstream version
+ [9635074f31a3] [v0.3.3-1]
+
+2009-07-01 Dwayne Bent <dbb.0@liqd.org>
+
+ * PKGBUILD, luasec.patch:
+ Changed to using custom patch
+ [30893f6a9840]
+
+ * PKGBUILD:
+ Added minimum versions to dependencies
+ [b538b6270f60]
+
+2009-05-22 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.3.2-1 for changeset eacacff733b2
+ [f93b17e1495c]
+
+ * PKGBUILD:
+ New upstream version
+ [eacacff733b2] [v0.3.2-1]
+
+2009-05-11 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.3.1-1 for changeset 9f9bd46fe838
+ [9d25feaa12a5]
+
+ * PKGBUILD:
+ Initial commit.
+ [9f9bd46fe838] [v0.3.1-1]
+
diff --git a/community/luasec/PKGBUILD b/community/luasec/PKGBUILD
new file mode 100644
index 000000000..893559266
--- /dev/null
+++ b/community/luasec/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Dwayne Bent <dbb.1@liqd.org>
+# Contributor: Paul-Sebastian Manole <brokenthorn@gmail.com>
+
+pkgname=luasec
+pkgver=0.4
+pkgrel=2
+pkgdesc="Lua bindings for OpenSSL library to provide TLS/SSL communication."
+arch=('i686' 'x86_64')
+url="http://luasec.luaforge.net/"
+license=('MIT')
+depends=('openssl>=0.9.7' 'lua>=5.1' 'luasocket>=2.0.2')
+source=("http://www.inf.puc-rio.br/~brunoos/luasec/download/$pkgname-$pkgver.tar.gz"
+ 'luasec.patch')
+md5sums=('712158d60207bdbb6215fc7e07d8db24'
+ '6f607af3351454754762421b27afe7f6')
+
+build() {
+ install -d "$pkgdir/usr/share/lua/5.1" || return 1
+ install -d "$pkgdir/usr/lib/lua/5.1" || return 1
+ install -d "$pkgdir/usr/share/licenses/$pkgname" || return 1
+
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 Makefile "$startdir/luasec.patch" || return 1
+ make linux || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ install -m644 "LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" || return 1
+}
diff --git a/community/luasec/luasec.patch b/community/luasec/luasec.patch
new file mode 100644
index 000000000..96035df7a
--- /dev/null
+++ b/community/luasec/luasec.patch
@@ -0,0 +1,27 @@
+--- Makefile.orig 2009-12-19 14:54:45.000000000 -0500
++++ Makefile 2009-12-19 14:57:22.000000000 -0500
+@@ -1,11 +1,11 @@
+ # Inform the location to intall the modules
+-LUAPATH=/usr/local/share/lua/5.1
+-LUACPATH=/usr/local/lib/lua/5.1
++LUAPATH=/usr/share/lua/5.1
++LUACPATH=/usr/lib/lua/5.1
+
+ # Edit the lines below to inform new path, if necessary
+ #
+-#INCDIR=-I/usr/local/lua-5.1/include -I/usr/local/openssl-0.9.8/include
+-#LIBDIR=-L/usr/local/openssl-0.9.8/lib -R/usr/local/openssl-0.9.8/lib
++INCDIR=-I/usr/include -I/usr/include/openssl
++LIBDIR=-L/usr/lib -R/usr/lib
+
+ # For Mac OS X: set the system version
+ MACOSX_VERSION=10.4
+@@ -26,7 +26,7 @@
+ @echo " * macosx"
+
+ install:
+- @cd src ; $(MAKE) LUACPATH="$(LUACPATH)" LUAPATH="$(LUAPATH)" install
++ @cd src ; $(MAKE) LUACPATH="$(DESTDIR)$(LUACPATH)" LUAPATH="$(DESTDIR)$(LUAPATH)" install
+
+ linux:
+ @echo "---------------------"
diff --git a/community/luasocket/PKGBUILD b/community/luasocket/PKGBUILD
new file mode 100644
index 000000000..17405e25b
--- /dev/null
+++ b/community/luasocket/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 41828 2011-03-09 12:08:16Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Anders Bergh <anders1@gmail.com>
+
+pkgname=luasocket
+pkgver=2.0.2
+pkgrel=4
+pkgdesc="Luasocket is the most comprehensive networking support library for the Lua language."
+arch=('i686' 'x86_64')
+url="http://www.cs.princeton.edu/~diego/professional/luasocket/"
+license=('MIT')
+depends=(lua)
+source=(http://luaforge.net/frs/download.php/2664/luasocket-$pkgver.tar.gz
+ lua-license.html::http://www.lua.org/copyright.html
+ luasocket-arch.patch
+ luasocket-unixsocket.patch)
+md5sums=('41445b138deb7bcfe97bff957503da8e'
+ '54af76b72c22a75aa468cb688017e78e'
+ '3270f42ff374f230c6450f49132f8625'
+ '8d116bb70bd7a2fa15cbe949d4cfc35e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 < $srcdir/luasocket-arch.patch
+ patch -p1 < $srcdir/luasocket-unixsocket.patch
+ make
+ make DESTDIR="$pkgdir" install
+ install -D -m0644 $srcdir/lua-license.html $pkgdir/usr/share/licenses/$pkgname/lua-license.html
+}
diff --git a/community/luasocket/luasocket-arch.patch b/community/luasocket/luasocket-arch.patch
new file mode 100644
index 000000000..f578831eb
--- /dev/null
+++ b/community/luasocket/luasocket-arch.patch
@@ -0,0 +1,14 @@
+diff -wbBur luasocket-2.0.2/config luasocket-2.0.2.my/config
+--- luasocket-2.0.2/config 2007-10-15 08:21:05.000000000 +0400
++++ luasocket-2.0.2.my/config 2007-10-15 12:22:16.000000000 +0400
+@@ -30,8 +30,8 @@
+ #
+ #INSTALL_TOP_SHARE=/usr/local/share/lua/5.0
+ #INSTALL_TOP_LIB=/usr/local/lib/lua/5.0
+-INSTALL_TOP_SHARE=/usr/local/share/lua/5.1
+-INSTALL_TOP_LIB=/usr/local/lib/lua/5.1
++INSTALL_TOP_SHARE=$(DESTDIR)/usr/share/lua/5.1
++INSTALL_TOP_LIB=$(DESTDIR)/usr/lib/lua/5.1
+
+ INSTALL_DATA=cp
+ INSTALL_EXEC=cp
diff --git a/community/luasocket/luasocket-unixsocket.patch b/community/luasocket/luasocket-unixsocket.patch
new file mode 100644
index 000000000..07c9401fa
--- /dev/null
+++ b/community/luasocket/luasocket-unixsocket.patch
@@ -0,0 +1,33 @@
+diff -wbBur luasocket-2.0.2/makefile luasocket-2.0.2.my/makefile
+--- luasocket-2.0.2/makefile 2007-10-15 04:21:05.000000000 +0000
++++ luasocket-2.0.2.my/makefile 2011-03-09 12:00:54.000000000 +0000
+@@ -10,6 +10,8 @@
+ INSTALL_SOCKET_LIB=$(INSTALL_TOP_LIB)/socket
+ INSTALL_MIME_SHARE=$(INSTALL_TOP_SHARE)/mime
+ INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime
++#
++INSTALL_UNIX_LIB=$(INSTALL_SOCKET_LIB)
+
+ all clean:
+ cd src; $(MAKE) $@
+@@ -45,6 +47,8 @@
+ #cd src; $(INSTALL_DATA) $(TO_MIME_SHARE) $(INSTALL_MIME_SHARE)
+ cd src; mkdir -p $(INSTALL_MIME_LIB)
+ cd src; $(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_LIB)/core.$(EXT)
++ cd src; mkdir -p $(INSTALL_UNIX_LIB)
++ cd src; $(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_UNIX_LIB)/$(UNIX_SO)
+
+ #------
+ # End of makefile
+diff -wbBur luasocket-2.0.2/src/makefile luasocket-2.0.2.my/src/makefile
+--- luasocket-2.0.2/src/makefile 2007-10-15 04:21:05.000000000 +0000
++++ luasocket-2.0.2.my/src/makefile 2011-03-09 12:02:25.000000000 +0000
+@@ -47,7 +47,7 @@
+ usocket.o \
+ unix.o
+
+-all: $(SOCKET_SO) $(MIME_SO)
++all: $(SOCKET_SO) $(MIME_SO) $(UNIX_SO)
+
+ $(SOCKET_SO): $(SOCKET_OBJS)
+ $(LD) $(LDFLAGS) -o $@ $(SOCKET_OBJS)
diff --git a/community/luasql-mysql/PKGBUILD b/community/luasql-mysql/PKGBUILD
new file mode 100644
index 000000000..b5d3e95ef
--- /dev/null
+++ b/community/luasql-mysql/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 42492 2011-03-17 10:40:38Z jelle $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Anders Bergh <anders1@gmail.com>
+
+pkgname=luasql-mysql
+pkgver=2.1.1
+pkgrel=6
+pkgdesc="MySQL module for Lua"
+arch=('i686' 'x86_64')
+url="http://www.keplerproject.org/luasql/"
+license=('MIT')
+depends=('lua' 'libmysqlclient')
+# just changing the filename will make it download the old version, so change
+# this manually!
+source=(http://luaforge.net/frs/download.php/2686/luasql-$pkgver.tar.gz)
+md5sums=('63bdd57de4b9d1be336ba112d8cb69eb')
+
+build() {
+ cd "$srcdir/luasql-$pkgver"
+
+ make T=mysql PREFIX=/usr DRIVER_LIBS="$(mysql_config --libs)" \
+ DRIVER_INCS="$(mysql_config --include) -fPIC"
+ install -Dm644 src/mysql.so $pkgdir/usr/lib/lua/5.1/luasql/mysql.so
+ install -Dm644 doc/us/license.html $pkgdir/usr/share/licenses/$pkgname/license.html
+}
diff --git a/community/luminancehdr/PKGBUILD b/community/luminancehdr/PKGBUILD
new file mode 100644
index 000000000..5d7439740
--- /dev/null
+++ b/community/luminancehdr/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 40353 2011-02-23 08:02:01Z ebelanger $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Dmitry N. Shilov <stormblast@land.ru>
+
+pkgname=luminancehdr
+pkgver=2.0.1
+pkgrel=3
+pkgdesc='Open source graphical user interface application that aims to provide a workflow for HDR imaging'
+arch=('i686' 'x86_64')
+url='http://qtpfsgui.sourceforge.net/'
+license=('GPL')
+depends=('dcraw' 'exiv2' 'fftw' 'gsl' 'hicolor-icon-theme' 'libtiff' 'openexr' 'qt')
+replaces=('qtpfsgui')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/qtpfsgui/luminance-v${pkgver}.tar.gz)
+md5sums=('3d94bb4c40c7cbff2ebe8f3c15b46596')
+sha1sums=('4777912d8f70b02ff2586ea8c31a196ee265c81e')
+
+build() {
+ cd "${srcdir}/luminance-v${pkgver}"
+
+ if [ ${CARCH} = i686 ]; then
+ sed -i 's/ -msse2//' project.pro
+ fi
+
+ lrelease project.pro
+ qmake PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/luminance-v${pkgver}"
+
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/community/luminancehdr/luminancehdr.changelog b/community/luminancehdr/luminancehdr.changelog
new file mode 100644
index 000000000..fe01ee552
--- /dev/null
+++ b/community/luminancehdr/luminancehdr.changelog
@@ -0,0 +1,31 @@
+2010-XX-XX Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 2.0.2
+ * dcraw dependency added for RAW support
+
+2010-10-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * exiv2 0.20 rebuild
+
+2010-10-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 2.0.1
+
+2010-06-27 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package renamed to LuminanceHDR
+ * Update to major release 2.0.0
+
+2010-03-09 Andrea Scarpino <andrea@archlinux.org>
+ * exiv2 0.19 rebuild
+
+2009-11-02 Biru Ionut <ionut@archlinux.ro>
+ * add translation and fix segfault on old i686 procesors
+
+2009-04-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v1.9.3
+
+2009-04-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Minor version (v1.9.2-3) update caused by exiv2 upgrade.
+
+2008-11-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Minor version (v1.9.2-2) update caused by openexr upgrade.
+
+2008-09-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community]
diff --git a/community/luminancehdr/luminancehdr.install b/community/luminancehdr/luminancehdr.install
new file mode 100644
index 000000000..1e4c274b3
--- /dev/null
+++ b/community/luminancehdr/luminancehdr.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/luxrender/PKGBUILD b/community/luxrender/PKGBUILD
new file mode 100644
index 000000000..200e64475
--- /dev/null
+++ b/community/luxrender/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Initial contributor: flixie <69one@gmx.net>
+# Contributor: Imanol Celaya <ornitorrincos@archlinux-es.org>
+pkgname=luxrender
+pkgver=0.7.1
+_pkgver=9206b3ba7011
+_luxblend=f93faf8189c1
+pkgrel=4
+pkgdesc="Rendering system for physically correct, unbiased image synthesis"
+arch=('i686' 'x86_64')
+url="http://www.luxrender.net/"
+license=('GPL')
+depends=('boost-libs' 'freeimage')
+optdepends=('python2: luxblend' 'qt: Qt GUI' 'wxgtk: wxGTK GUI')
+makedepends=('cmake' 'boost' 'mesa' 'wxgtk' 'qt' 'libpng' 'openexr')
+source=(http://src.luxrender.net/lux/archive/$_pkgver.tar.bz2
+ http://src.luxrender.net/luxblend/archive/$_luxblend.tar.bz2
+ libpng.patch)
+md5sums=('44b819d37c2cccd8b1a890e6c67061a8'
+ 'daf70af98123d31303c2c037244c527c'
+ '4bbd82a31aa3f6ee2644a712bf2bfc05')
+build() {
+ cd "$srcdir"/lux-$_pkgver
+
+ patch -Np1 -i "${srcdir}/libpng.patch" || true
+
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd "$srcdir"/lux-$_pkgver
+ make DESTDIR="$pkgdir" install
+
+ # fix library path on x86_64
+ [ "$CARCH" = "x86_64" ] && mv "$pkgdir"/usr/lib64 "$pkgdir"/usr/lib
+
+ # install blender exporter
+ install -d -m755 "$pkgdir"/usr/share/blender/scripts
+ install -m644 "$srcdir"/luxblend-$_luxblend/*.py "$pkgdir"/usr/share/blender/scripts
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/luxrender/libpng.patch b/community/luxrender/libpng.patch
new file mode 100644
index 000000000..71700a7d2
--- /dev/null
+++ b/community/luxrender/libpng.patch
@@ -0,0 +1,21 @@
+diff -rupN lux-36533b0843bd/core/cimg.h lux-fixed/core/cimg.h
+--- lux-36533b0843bd/core/external/cimg.h 2009-12-19 10:39:59.000000000 +0100
++++ lux-fixed/core/external/cimg.h 2010-01-22 11:38:06.651814854 +0100
+@@ -25679,7 +25679,7 @@ namespace cimg_library {
+ png_read_info(png_ptr,info_ptr);
+ png_uint_32 W, H;
+ int bit_depth, color_type, interlace_type;
+- png_get_IHDR(png_ptr,info_ptr,&W,&H,&bit_depth,&color_type,&interlace_type,int_p_NULL,int_p_NULL);
++ png_get_IHDR(png_ptr,info_ptr,&W,&H,&bit_depth,&color_type,&interlace_type,(int *) NULL,(int *) NULL);
+ int new_bit_depth = bit_depth;
+ int new_color_type = color_type;
+
+@@ -25690,7 +25690,7 @@ namespace cimg_library {
+ new_bit_depth = 8;
+ }
+ if (new_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8){
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ new_bit_depth = 8;
+ }
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
diff --git a/community/lwm/PKGBUILD b/community/lwm/PKGBUILD
new file mode 100644
index 000000000..015928b53
--- /dev/null
+++ b/community/lwm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 6621 2009-12-18 08:13:19Z giovanni $
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Jeff Mickey <j@codemac.net>
+# Contributor: Ben Mazer <blm@groknil.org>
+
+pkgname=lwm
+pkgver=1.2.2
+pkgrel=1
+pkgdesc="a very light weight window manager"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.jfc.org.uk/software/lwm.html"
+depends=('xorg-server')
+makedepends=('imake')
+source=(http://www.jfc.org.uk/files/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('1748722a293e03d632b615275ef84498')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ xmkmf
+ make || return 1
+ strip lwm
+ install -Dm755 lwm ${pkgdir}/usr/bin/lwm
+ install -Dm644 lwm.man ${pkgdir}/usr/share/man/man1/lwm.1
+}
diff --git a/community/lwp/PKGBUILD b/community/lwp/PKGBUILD
new file mode 100644
index 000000000..cf51ab8d4
--- /dev/null
+++ b/community/lwp/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 19149 2010-06-21 08:42:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=lwp
+pkgver=2.6
+pkgrel=1
+pkgdesc="Light weight process library"
+arch=(i686 x86_64)
+url="http://www.coda.cs.cmu.edu"
+options=('!libtool')
+license=("LGPL")
+depends=(glibc)
+source=(http://www.coda.cs.cmu.edu/pub/lwp/src/lwp-$pkgver.tar.gz)
+md5sums=('65ba6faddf2c9741d4a481b0e9661a34')
+
+build() {
+ cd $srcdir/lwp-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/lxappearance/PKGBUILD b/community/lxappearance/PKGBUILD
new file mode 100644
index 000000000..c9803043b
--- /dev/null
+++ b/community/lxappearance/PKGBUILD
@@ -0,0 +1,23 @@
+#$Id: PKGBUILD 29697 2010-10-18 15:11:39Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxappearance
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="GTK+ theme switcher of the LXDE Desktop (manages icons and fonts)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'intltool')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7eabab6f4a358dbc6a84e260a0e7f6c2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
+
diff --git a/community/lxlauncher/PKGBUILD b/community/lxlauncher/PKGBUILD
new file mode 100644
index 000000000..9db05a071
--- /dev/null
+++ b/community/lxlauncher/PKGBUILD
@@ -0,0 +1,37 @@
+#$Id: PKGBUILD 12709 2010-03-12 12:03:21Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxlauncher
+pkgver=0.2.1
+pkgrel=3
+pkgdesc="Launcher for Asus EeePC (part of LXDE)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'startup-notification' 'gnome-menus' 'menu-cache' 'intltool')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz
+ lxlauncher-0.2.1-fix-SUSE-lint-warnings.patch
+ lxlauncher-0.2.1-fix-for-the-new-behavior-of-libmenu-cache-0.3-series.patch
+ lxlauncher-0.2.1-dsofix.patch
+ intltool.patch)
+md5sums=('5dbe6076eb1a411278e1fc2bccf2d75d'
+ '3a4355047d4cfb149ef6a0fa6001b990'
+ 'ab568453c9bac6848ca6c8cdcf61b371'
+ 'fa7fd2a1691c6bad86a5278770b38db1'
+ 'bd04ebee868915da9d64ec9becc1212d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # Adding patches thanks to CWickert and AndyRTR
+ patch -Np1 -i $srcdir/lxlauncher-0.2.1-fix-SUSE-lint-warnings.patch || return 1
+ patch -Np1 -i $srcdir/lxlauncher-0.2.1-fix-for-the-new-behavior-of-libmenu-cache-0.3-series.patch || return 1
+ patch -Np1 -i $srcdir/lxlauncher-0.2.1-dsofix.patch || return 1
+ #patch -Np1 -i $srcdir/01_fix_infinite_loop.dpatch || return 1
+ patch -Np1 -i $srcdir/intltool.patch || return 1
+ autoreconf || return 1
+ ./configure --sysconfdir=/etc --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/lxlauncher/intltool.patch b/community/lxlauncher/intltool.patch
new file mode 100644
index 000000000..3829806c8
--- /dev/null
+++ b/community/lxlauncher/intltool.patch
@@ -0,0 +1,16 @@
+diff -NrU5 lxlauncher-0.2.1.original/configure.in lxlauncher-0.2.1/configure.in
+--- lxlauncher-0.2.1.original/configure.in 2009-07-18 21:49:07.000000000 -0600
++++ lxlauncher-0.2.1/configure.in 2009-07-18 21:49:50.000000000 -0600
+@@ -2,10 +2,11 @@
+
+ AC_INIT(configure.in)
+ AM_INIT_AUTOMAKE(lxlauncher, 0.2.1)
+ AM_CONFIG_HEADER(config.h)
+ AM_MAINTAINER_MODE
++IT_PROG_INTLTOOL
+
+ AC_ISC_POSIX
+ AC_PROG_CC
+ AM_PROG_CC_STDC
+ AC_HEADER_STDC
+
diff --git a/community/lxlauncher/lxlauncher-0.2.1-dsofix.patch b/community/lxlauncher/lxlauncher-0.2.1-dsofix.patch
new file mode 100644
index 000000000..7ee0c1c68
--- /dev/null
+++ b/community/lxlauncher/lxlauncher-0.2.1-dsofix.patch
@@ -0,0 +1,12 @@
+diff -dur lxlauncher-0.2.1.orig/src/Makefile.in lxlauncher-0.2.1/src/Makefile.in
+--- lxlauncher-0.2.1.orig/src/Makefile.in 2009-07-07 14:46:41.000000000 +0200
++++ lxlauncher-0.2.1/src/Makefile.in 2010-02-17 13:34:43.000000000 +0100
+@@ -101,7 +101,7 @@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INSTOBJEXT = @INSTOBJEXT@
+ INTLLIBS = @INTLLIBS@
+-LDFLAGS = @LDFLAGS@
++LDFLAGS = @LDFLAGS@ -lX11
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LTLIBOBJS = @LTLIBOBJS@
diff --git a/community/lxlauncher/lxlauncher-0.2.1-fix-SUSE-lint-warnings.patch b/community/lxlauncher/lxlauncher-0.2.1-fix-SUSE-lint-warnings.patch
new file mode 100644
index 000000000..49a4b3488
--- /dev/null
+++ b/community/lxlauncher/lxlauncher-0.2.1-fix-SUSE-lint-warnings.patch
@@ -0,0 +1,32 @@
+From cb99b126dd90a8460c5bd4a837fdb7505658ba52 Mon Sep 17 00:00:00 2001
+From: martyj19 <martyj19@comcast.net>
+Date: Mon, 13 Jul 2009 16:46:09 +0000
+Subject: [PATCH 02/50] Fix SUSE lint warnings
+
+---
+ src/lxlauncher.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/src/lxlauncher.c b/src/lxlauncher.c
+index 7dab830..034d308 100644
+--- a/src/lxlauncher.c
++++ b/src/lxlauncher.c
+@@ -311,6 +311,7 @@ static gboolean on_scroll( GtkAdjustment* adj, PageData* data )
+ {
+ // Dirty hacks used to force pseudo-transparent background
+ gtk_widget_queue_draw( data->table );
++ return TRUE;
+ }
+
+ // Dirty hacks used to reduce unnecessary redrew during scroll
+@@ -674,6 +675,7 @@ gchar* get_xdg_config_file(const char *name) {
+ }
+ free(file);
+ }
++ return NULL;
+ }
+
+ int main(int argc, char** argv)
+--
+1.6.6
+
diff --git a/community/lxlauncher/lxlauncher-0.2.1-fix-for-the-new-behavior-of-libmenu-cache-0.3-series.patch b/community/lxlauncher/lxlauncher-0.2.1-fix-for-the-new-behavior-of-libmenu-cache-0.3-series.patch
new file mode 100644
index 000000000..1720d3e62
--- /dev/null
+++ b/community/lxlauncher/lxlauncher-0.2.1-fix-for-the-new-behavior-of-libmenu-cache-0.3-series.patch
@@ -0,0 +1,125 @@
+From a7dad81b883a783bc1ac4f8092a1571b7f843914 Mon Sep 17 00:00:00 2001
+From: Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
+Date: Wed, 17 Feb 2010 22:42:01 +0800
+Subject: [PATCH 50/50] Fix for the new behavior of libmenu-cache 0.3 series.
+
+---
+ src/lxlauncher.c | 67 +++++++++++++++++++++++++++++++++++++----------------
+ 1 files changed, 47 insertions(+), 20 deletions(-)
+
+diff --git a/src/lxlauncher.c b/src/lxlauncher.c
+index 6dfbbc9..3a39bc6 100644
+--- a/src/lxlauncher.c
++++ b/src/lxlauncher.c
+@@ -663,21 +663,40 @@ gchar* get_xdg_config_file(const char *name) {
+ gchar *file;
+
+ file = g_build_filename(user_dir, name, NULL);
+- if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE) {
+- return file;
+- }
++ if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE)
++ return file;
+ free(file);
+
+ for (dir = system_dirs; *dir; ++dir ) {
+- file = g_build_filename(*dir, name, NULL);
+- if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE) {
+- return file;
+- }
+- free(file);
++ file = g_build_filename(*dir, name, NULL);
++ if (g_file_test(file, G_FILE_TEST_EXISTS) == TRUE)
++ return file;
++ free(file);
+ }
+ return NULL;
+ }
+
++static void on_menu_cache_reload(MenuCache* mc, gpointer user_data)
++{
++ GMainLoop* mainloop = (GMainLoop*)user_data;
++ g_main_loop_quit(mainloop);
++}
++
++MenuCache* _menu_cache_lookup_sync( const char* menu_name )
++{
++ MenuCache* mc = menu_cache_lookup(menu_name);
++ /* ensure that the menu cache is loaded */
++ if(! menu_cache_get_root_dir(mc)) /* if it's not yet loaded */
++ {
++ GMainLoop* mainloop = g_main_loop_new(NULL, FALSE);
++ gpointer notify_id = menu_cache_add_reload_notify(mc, on_menu_cache_reload, mainloop);
++ g_main_loop_run(mainloop);
++ g_main_loop_unref(mainloop);
++ menu_cache_remove_reload_notify(mc, notify_id);
++ }
++ return mc;
++}
++
+ int main(int argc, char** argv)
+ {
+ int i;
+@@ -697,13 +716,14 @@ int main(int argc, char** argv)
+ GError *error = NULL;
+ gchar *config_file = get_xdg_config_file(CONFIG_FILE);
+ if (config_file &&
+- g_key_file_load_from_file(key_file,
+- config_file,
+- G_KEY_FILE_NONE,
+- &error)) {
+- printf("Loaded %s\n", config_file);
+- } else {
+- perror("Error loading " CONFIG_FILE);
++ g_key_file_load_from_file(key_file,
++ config_file,
++ G_KEY_FILE_NONE,
++ &error)) {
++ printf("Loaded %s\n", config_file);
++ }
++ else {
++ perror("Error loading " CONFIG_FILE);
+ }
+ if (config_file)
+ free(config_file);
+@@ -719,15 +739,17 @@ int main(int argc, char** argv)
+ gchar* gtkrc_file = get_xdg_config_file("lxlauncher/gtkrc");
+ gtk_rc_parse(gtkrc_file);
+ if (gtkrc_file) {
+- free(gtkrc_file);
++ free(gtkrc_file);
+ }
+
+ button_size = g_key_file_get_integer(key_file, "Main", "BUTTON_SIZE", NULL);
+ img_size = g_key_file_get_integer(key_file, "Main", "IMG_SIZE", NULL);
+
+ // to prevent from going without configure file
+- if(!button_size) button_size = BUTTON_SIZE_FALLBACK;
+- if(!img_size) img_size = IMG_SIZE_FALLBACK;
++ if(!button_size)
++ button_size = BUTTON_SIZE_FALLBACK;
++ if(!img_size)
++ img_size = IMG_SIZE_FALLBACK;
+
+ icon_size = gtk_icon_size_register( "ALIcon", img_size, img_size );
+
+@@ -758,9 +780,14 @@ int main(int argc, char** argv)
+ gtk_container_add( (GtkContainer*)main_window, notebook );
+
+ g_setenv("XDG_MENU_PREFIX", "lxlauncher-", TRUE);
+- menu_tree = menu_cache_lookup( "applications.menu" );
++ menu_tree = _menu_cache_lookup_sync( "applications.menu" );
++ if(!menu_tree)
++ {
++ g_print("Unable to load application menu\n");
++ return 1;
++ }
++ root_dir = menu_cache_item_ref(menu_cache_get_root_dir( menu_tree ));
+ reload_notify_id = menu_cache_add_reload_notify( menu_tree, on_menu_tree_changed, NULL );
+- root_dir = menu_cache_ref(menu_cache_get_root_dir( menu_tree ));
+
+ create_notebook_pages();
+
+--
+1.6.6
+
diff --git a/community/lxnm/PKGBUILD b/community/lxnm/PKGBUILD
new file mode 100644
index 000000000..8543678e2
--- /dev/null
+++ b/community/lxnm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 25483 2010-09-05 12:15:12Z bluewind $
+# Maintainer: Florian Pritz <flo@xinu.at>
+# Contributor: Cainã Costa <cainan.costa@gmail.com>
+
+pkgname=lxnm
+pkgver=0.2.2
+pkgrel=2
+pkgdesc="A Network Manager (Part of LXDE)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org"
+depends=('glib2')
+source=("http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd "${startdir}/src/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd "${startdir}/src/${pkgname}-${pkgver}"
+ make DESTDIR=$pkgdir/ install
+}
+
+md5sums=('2ee64e5fad4a27a522f1eb2da08dd46a')
diff --git a/community/lxrandr/PKGBUILD b/community/lxrandr/PKGBUILD
new file mode 100644
index 000000000..dd0433457
--- /dev/null
+++ b/community/lxrandr/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxrandr
+pkgver=0.1.1
+pkgrel=1
+pkgdesc="Monitor configuration tool (part of LXDE)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'xorg-server-utils')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ab2c7f6be7e4fe6d1a26e324d836453e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ [ $NOEXTRACT -eq 1 ] || ./configure --sysconfdir=/etc --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/lxtask/PKGBUILD b/community/lxtask/PKGBUILD
new file mode 100644
index 000000000..b933fc7c1
--- /dev/null
+++ b/community/lxtask/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxtask
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="Task manager of the LXDE Desktop"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2')
+makedepends=('pkgconfig' 'intltool')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
+md5sums=('eccfb69ee1a209248b22a5f0a34a4734')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ autoreconf || return 1
+ ./configure --sysconfdir=/etc --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/lxterminal/PKGBUILD b/community/lxterminal/PKGBUILD
new file mode 100644
index 000000000..42952a457
--- /dev/null
+++ b/community/lxterminal/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 25770 2010-09-11 01:42:59Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=lxterminal
+pkgver=0.1.9
+pkgrel=1
+pkgdesc="VTE-based terminal emulator (part of LXDE)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('fontconfig' 'libx11' 'glib2' 'vte' 'gtk2')
+makedepends=('pkgconfig' 'intltool')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+md5sums=('cb10cc667611dce3c141294712049c43')
diff --git a/community/macchanger/PKGBUILD b/community/macchanger/PKGBUILD
new file mode 100644
index 000000000..2b270ddd8
--- /dev/null
+++ b/community/macchanger/PKGBUILD
@@ -0,0 +1,18 @@
+# $Id: PKGBUILD 7199 2010-01-03 07:55:05Z dgriffiths $
+
+pkgname=macchanger
+pkgver=1.5.0
+pkgrel=3
+pkgdesc="A small utility to change you NIC's MAC address"
+arch=('i686' 'x86_64')
+url="http://ftp.gnu.org/gnu/macchanger"
+license=('GPL')
+source=(http://ftp.gnu.org/gnu/macchanger/$pkgname-$pkgver.tar.gz)
+md5sums=('79b7cdaeca3d8ebafa764c4b0dd03ab7')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/man
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/madman/PKGBUILD b/community/madman/PKGBUILD
new file mode 100644
index 000000000..d159c3c01
--- /dev/null
+++ b/community/madman/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 33413 2010-11-24 16:03:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+# Contributor: Zsolt Varadi <sysop_xxl@fibermail.hu>
+
+pkgname=madman
+pkgver=0.94beta1.20060611
+pkgrel=1
+pkgdesc="I-tunes like music player"
+arch=('i686' 'x86_64')
+url="http://madman.sourceforge.net/"
+license=('GPL')
+depends=('qt3' 'xmms' 'libid3tag' 'gtk')
+makedepends=('python')
+source=(http://arch.pp.ru/~sergej/dl/madman_$pkgver.orig.tar.gz
+ http://arch.pp.ru/~sergej/dl/madman_$pkgver-2.diff.gz
+ madman.desktop
+ madman_logo.png
+ madman_logo_mini.png
+ madman_logo_large.png
+ fake-g++.sh)
+md5sums=('36e7a4619ebe83ed939c7ae09c16d535'
+ '26de942ae2465fb805748d3bea9a8a17'
+ '591354b69235d5a4b5a09591d04db266'
+ 'd4546f77857a6ccdabb2036eb6a0da07'
+ '2d54bb8eceed283edc88a3e4553d2483'
+ '3c2da1b1800fb372e225ae38fa1398e8'
+ '6882bb5e67e6dea45e2f770d899514c5')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ cd $srcdir/$pkgname-$pkgver.orig
+
+ patch -p1 -i $srcdir/madman_0.94beta1.20060611-2.diff
+ mkdir -p ,build/release/designer
+ touch ,build/release/designer/tsonglistview.h \
+ ,build/release/designer/tsetlistview.h \
+ ,build/release/designer/tclickablelabel.h \
+ ,build/release/designer/tacceleratorlineedit.h \
+ ,build/release/designer/tsonglistview.h \
+ ,build/release/designer/tsetlistview.h
+ sed -i '26,1i#include <memory>' utility/base.h
+ cp $srcdir/fake-g++.sh ./g++
+ export PATH=.:$PATH
+
+ scons || return 1
+ scons prefix=$pkgdir/usr install || return 1
+
+ rm $pkgdir/usr/bin/.sconsign
+ rm $pkgdir/usr/lib/madman/plugins/.sconsign
+ mkdir -p $pkgdir/usr/share/{applications,icons}
+ mkdir -p $pkgdir/usr/share/icons/{mini,large}
+
+ cp $srcdir/madman_logo.png $pkgdir/usr/share/icons
+ cp $srcdir/madman_logo_mini.png $pkgdir/usr/share/icons/mini
+ cp $srcdir/madman_logo_large.png $pkgdir/usr/share/icons/large
+ cp $srcdir/madman.desktop $pkgdir/usr/share/applications
+}
diff --git a/community/madman/fake-g++.sh b/community/madman/fake-g++.sh
new file mode 100755
index 000000000..17da66d5a
--- /dev/null
+++ b/community/madman/fake-g++.sh
@@ -0,0 +1,7 @@
+#!/bin/sh -x
+
+Q=`echo "$*" | sed 's|- p t h r e a d|-pthread|'`
+
+echo "$Q" | grep 'lmp4ff' && Q="$Q /usr/lib/libmp4ff.a"
+
+exec /bin/g++ $Q
diff --git a/community/madman/madman.desktop b/community/madman/madman.desktop
new file mode 100644
index 000000000..c415a6ee5
--- /dev/null
+++ b/community/madman/madman.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Madman
+Comment=Music Manager
+Exec=madman
+Icon=/usr/share/icons/madman_logo.png
+Miniicon=/usr/share/icons/mini/madman_logo_mini.png
+GenericName=Music Manager
+Terminal=false
+Type=Application
+Categories=AudioVideo;Audio
diff --git a/community/madman/madman_logo.png b/community/madman/madman_logo.png
new file mode 100644
index 000000000..2128a45d2
--- /dev/null
+++ b/community/madman/madman_logo.png
Binary files differ
diff --git a/community/madman/madman_logo_large.png b/community/madman/madman_logo_large.png
new file mode 100644
index 000000000..4661b4f4f
--- /dev/null
+++ b/community/madman/madman_logo_large.png
Binary files differ
diff --git a/community/madman/madman_logo_mini.png b/community/madman/madman_logo_mini.png
new file mode 100644
index 000000000..5bf9f1083
--- /dev/null
+++ b/community/madman/madman_logo_mini.png
Binary files differ
diff --git a/community/mailutils/PKGBUILD b/community/mailutils/PKGBUILD
new file mode 100644
index 000000000..fdaa7d9b1
--- /dev/null
+++ b/community/mailutils/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 34299 2010-12-05 22:48:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=mailutils
+pkgver=2.2
+pkgrel=1
+pkgdesc="MUA command line tool (mailx)"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/mailutils/"
+license=('GPL')
+depends=(libldap tcp_wrappers pam gnutls guile)
+makedepends=('python2')
+optdepends=('python2')
+conflicts=(libsieve)
+options=(zipman !emptydirs)
+source=(http://ftp.gnu.org/gnu/mailutils/mailutils-$pkgver.tar.bz2)
+md5sums=('834d2f616b922856127ecfe6c2de7d1a')
+
+build() {
+ cd "$srcdir/mailutils-$pkgver"
+
+ export PYTHON=/usr/bin/python2
+ export PYTHON_CONFIG=/usr/bin/python2-config
+ [ -f Makefile ] || ./configure --prefix=/usr --with-gdbm --with-gnutls --libexecdir=/usr/lib/$pkgname --without-fribidi
+
+ py2=`pacman -Q python2 | cut -d\ -f2 | cut -d. -f1-2`
+ py3=`pacman -Q python | cut -d\ -f2 | cut -d. -f1-2`
+# [ -z "$py3" ] || find -type f -name Makefile -exec sed -i "s|python$py3|python$py2|" {} \;
+
+ make -j1
+ 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/mairix/PKGBUILD b/community/mairix/PKGBUILD
new file mode 100644
index 000000000..4078c4e22
--- /dev/null
+++ b/community/mairix/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 18519 2010-06-07 11:11:39Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: Giorgio Lando <patroclo7@gmail.com>
+# Contributor: Andreas Wagner <Andreas dot Wagner at em dot uni-frankfurt dot de>
+
+pkgname=mairix
+pkgver=0.22
+pkgrel=1
+pkgdesc="A program for indexing and searching emails"
+arch=('i686' 'x86_64')
+url="http://www.rpcurnow.force9.co.uk/mairix/"
+license=('GPL')
+depends=(bzip2 zlib)
+makedepends=('flex' 'bison')
+install=$pkgname.install
+source=(http://downloads.sf.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('6c6aaca19c2b2de3bf567b856705ce1a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ mkdir -p $pkgdir/usr/share/
+ mv $pkgdir/usr/man $pkgdir/usr/share/ && \
+ install -D -m 644 dotmairixrc.eg $pkgdir/etc/mairixrc.sample
+}
diff --git a/community/mairix/mairix.install b/community/mairix/mairix.install
new file mode 100644
index 000000000..9554b6ccb
--- /dev/null
+++ b/community/mairix/mairix.install
@@ -0,0 +1,14 @@
+# arg 1: the new package version
+post_install() {
+
+cat << EOM
+
+==> mairix post-install message:
+
+==> copy /etc/mairixrc.sample in ~/.mairixrc
+==> and edit it according to your needs.
+
+EOM
+
+}
+
diff --git a/community/mandvd/PKGBUILD b/community/mandvd/PKGBUILD
new file mode 100644
index 000000000..2fbc8c39a
--- /dev/null
+++ b/community/mandvd/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 24946 2010-08-29 19:08:23Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+# Contributor: Jesus Lazaro Plaza <jesuslazaro84@gmail.com>
+
+pkgname=mandvd
+pkgver=2.6
+pkgrel=1
+pkgdesc="A program to simply create DVD Video"
+arch=('i686' 'x86_64')
+url="http://www.kde-apps.org/content/show.php/ManDVD?content=83906"
+license=('GPL')
+depends=('dvd+rw-tools>=5.21.4' 'dvd-slideshow>=0.7.5' 'mjpegtools>=1.8.0' 'mplayer' 'qt3' 'xine-ui>=0.99.4')
+changelog=$pkgname.changelog
+source=(http://www.grommit.se/$pkgname/${pkgname}-${pkgver}-1.fc12.tar.gz)
+md5sums=('7b10baa97b9c74a054f432b45940f3aa')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ source /etc/profile.d/qt3.sh
+ ${QTDIR}/bin/qmake
+ sed -i "s|O2|O1|" ./Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ install -D -m755 $pkgname ${pkgdir}/usr/bin/$pkgname
+
+# Creating menu item
+ install -D -m644 mandvdico.png ${pkgdir}/usr/share/pixmaps/$pkgname.png
+ install -D -m644 $pkgname.desktop ${pkgdir}/usr/share/applications/$pkgname.desktop
+}
diff --git a/community/mandvd/mandvd.changelog b/community/mandvd/mandvd.changelog
new file mode 100644
index 000000000..47de07b66
--- /dev/null
+++ b/community/mandvd/mandvd.changelog
@@ -0,0 +1,8 @@
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * mandvd 2.6-1
+ new upstream release
+
+2009-04-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * Update to major release 2.5
diff --git a/community/mapnik/PKGBUILD b/community/mapnik/PKGBUILD
new file mode 100644
index 000000000..6dd50ad73
--- /dev/null
+++ b/community/mapnik/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 41028 2011-03-03 07:23:21Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: David Dent <thewinch@gmail.com>
+# Contributor: orbisvicis <orbisvicis@gmail.com>
+
+pkgname=mapnik
+pkgver=0.7.1
+pkgrel=8
+pkgdesc="Free Toolkit for developing mapping applications. Above all Mapnik is about rendering beautiful maps."
+arch=('i686' 'x86_64')
+url="http://mapnik.org/"
+license=('LGPL')
+depends=('boost-libs' 'icu' 'libpng' 'libjpeg' 'libtiff' 'freetype2'
+ 'libxml2' 'python2' 'proj' 'cairo' 'cairomm' 'pycairo'
+ 'postgresql-libs' 'postgis' 'gdal' 'curl' 'libtool')
+ # already in core ('zlib' 'sqlite3')
+optdepends=('libxslt: Web Map Service'
+ 'python-lxml: Web Map Service'
+ 'python-imaging: Web Map Service'
+ 'python-nose: Web Map Service'
+ 'apache: Web Map Service'
+ 'mod_fastcgi: Web Map Service - or:'
+ 'mod_fcgid: Web Map Service - or:'
+ 'mod_wsgi: Web Map Service'
+ )
+makedepends=('scons' 'boost') # already in core ('pkg-config')
+conflicts=('mapnik-svn')
+install="mapnik.install"
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('8f65fda2a792518d6f6be8a85f62fc73')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ #patch SConstruct so libs end up in /usr/lib not /usr/lib64 on X86_64
+ sed -i -e "/LIBDIR_SCHEMA=/s/lib64/lib/" SConstruct
+
+ sed -i 's/-ansi -Wall/-ansi -DBOOST_FILESYSTEM_VERSION=2 -Wall/' SConstruct
+
+ scons configure \
+ PREFIX="/usr" \
+ INPUT_PLUGINS=all \
+ DESTDIR="$pkgdir"
+ scons
+ scons install
+
+ # fix permissions on SCons-autogenerated files
+ chmod 644 "${pkgdir}/usr/lib/python2.7/site-packages/mapnik/paths.py"
+}
diff --git a/community/mapnik/mapnik.install b/community/mapnik/mapnik.install
new file mode 100644
index 000000000..46f265d5b
--- /dev/null
+++ b/community/mapnik/mapnik.install
@@ -0,0 +1,11 @@
+post_install() {
+ /sbin/ldconfig
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/mashup/PKGBUILD b/community/mashup/PKGBUILD
new file mode 100644
index 000000000..6428453bb
--- /dev/null
+++ b/community/mashup/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=mashup
+pkgver=2.9
+pkgrel=1
+pkgdesc="Adjusting images on a sheet of paper for printing"
+url="http://kornelix.squarespace.com/printoxx"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('gtk2')
+replaces=('printoxx')
+source=("http://kornelix.squarespace.com/storage/downloads/$pkgname-$pkgver.tar.gz")
+md5sums=('dc4c02063d8f9fa4a6d4806aaa5a2b07')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=/usr \
+ CFLAGS+="-c `pkg-config --cflags gtk+-2.0`" \
+ LFLAGS+="`pkg-config --libs gtk+-2.0 gthread-2.0`"
+ sed -i 's#/local##' desktop
+ sed -i 's+# ++' desktop
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -Dm644 desktop \
+ $pkgdir/usr/share/applications/$pkgname.desktop
+ make DESTDIR=$pkgdir PREFIX=/usr install
+}
diff --git a/community/matchbox-desktop/PKGBUILD b/community/matchbox-desktop/PKGBUILD
new file mode 100644
index 000000000..5d2af790e
--- /dev/null
+++ b/community/matchbox-desktop/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 21413 2010-07-16 12:00:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Henrique C. Alves <hcarvalhoalves@gmail.com>
+
+pkgname=matchbox-desktop
+pkgver=2.0
+pkgrel=2
+pkgdesc="A PDA style application launcher or 'item browser'."
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libmatchbox' 'startup-notification' 'libpng' 'gtk2')
+url="http://projects.o-hand.com/matchbox"
+options=('!libtool')
+source=(http://projects.o-hand.com/matchbox/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('b0a4a47130272e2adab4e9feb43a6c9c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --sysconfdir=/etc --prefix=/usr --enable-startup-notification
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/matchbox-keyboard/PKGBUILD b/community/matchbox-keyboard/PKGBUILD
new file mode 100644
index 000000000..2651a9a99
--- /dev/null
+++ b/community/matchbox-keyboard/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 21416 2010-07-16 12:01:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=matchbox-keyboard
+pkgver=0.1
+pkgrel=3
+pkgdesc="An on screen virtual keyboard"
+arch=('i686' 'x86_64')
+depends=('cairo' 'libfakekey' 'libxft')
+url="http://projects.o-hand.com/matchbox"
+license=('GPL')
+source=(http://projects.o-hand.com/matchbox/sources/$pkgname/0.1/$pkgname-$pkgver.tar.gz)
+md5sums=('9d1f61e0785f2ac4fc7588fa39b87e6f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/matchbox-panel/PKGBUILD b/community/matchbox-panel/PKGBUILD
new file mode 100644
index 000000000..751ec230e
--- /dev/null
+++ b/community/matchbox-panel/PKGBUILD
@@ -0,0 +1,20 @@
+# Contributor: Henrique C. Alves <hcarvalhoalves@gmail.com>
+
+pkgname=matchbox-panel
+pkgver=0.9.3
+pkgrel=4
+pkgdesc="A flexible always present 'window bar' for holding application launchers and small 'applet' style applications"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libmatchbox' 'startup-notification' 'libpng')
+url="http://projects.o-hand.com/matchbox"
+source=(http://projects.o-hand.com/matchbox/sources/$pkgname/0.9/$pkgname-$pkgver.tar.bz2)
+md5sums=('56d1807636f3919e22e51896ab7ccd2e')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --sysconfdir=/etc --prefix=/usr --enable-startup-notification
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/matchbox-window-manager/PKGBUILD b/community/matchbox-window-manager/PKGBUILD
new file mode 100644
index 000000000..5c321c4e0
--- /dev/null
+++ b/community/matchbox-window-manager/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Henrique C. Alves <hcarvalhoalves@gmail.com>
+
+pkgname=matchbox-window-manager
+pkgver=1.2
+pkgrel=2
+pkgdesc="A pretty much unique X window manager with a classic PDA management policy"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libmatchbox' 'startup-notification' 'libpng')
+url="http://projects.o-hand.com/matchbox"
+source=(http://projects.o-hand.com/matchbox/sources/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2)
+md5sums=('3e158dcf57823b55c926d95b245500fb')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --sysconfdir=/etc --prefix=/usr \
+ --enable-startup-notification --enable-session \
+ --enable-alt-input-wins --enable-expat
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/mathomatic/PKGBUILD b/community/mathomatic/PKGBUILD
new file mode 100755
index 000000000..dc064a84f
--- /dev/null
+++ b/community/mathomatic/PKGBUILD
@@ -0,0 +1,41 @@
+# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+
+pkgname=mathomatic
+pkgver=15.5.0
+pkgrel=1
+pkgdesc="General purpose Computer Algebra System written in C"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://mathomatic.orgserve.de/math/"
+depends=('readline')
+optdepends=('python2: for running /usr/share/doc/mathomatic/factorial/factorial'
+ 'bash: for running a test script'
+ 'gnuplot: for plotting')
+source=(http://mathomatic.org/$pkgname-$pkgver.tar.bz2)
+md5sums=('c04e16f5eec7b1eff500be947135cf74')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ # python2 fix
+ for file in primes/{primorial,matho-sum,matho-mult} factorial/factorial; do
+ sed -i 's_#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+
+ make READLINE=1
+ make test
+ cd "$srcdir"/$pkgname-$pkgver/primes
+ make
+ make test
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make prefix="$pkgdir"/usr install
+ cd "$srcdir"/$pkgname-$pkgver/primes
+ make prefix="$pkgdir"/usr install
+}
+
diff --git a/community/mcabber/PKGBUILD b/community/mcabber/PKGBUILD
new file mode 100644
index 000000000..eb90c52c6
--- /dev/null
+++ b/community/mcabber/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 34137 2010-12-03 13:48:45Z ttopper $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: 3ED <kas1987@o2.pl>
+
+pkgname=mcabber
+pkgver=0.10.1
+pkgrel=1
+pkgdesc="a small Jabber console client, includes features: SSL, PGP, MUC, UTF8"
+arch=('i686' 'x86_64')
+url="http://www.lilotux.net/~mikael/mcabber/"
+license=('GPL')
+depends=('ncurses' 'glib2' 'loudmouth' 'gpgme' 'libotr' 'aspell')
+makedepends=('pkgconfig')
+options=('!libtool' 'force')
+source=(http://www.lilotux.net/~mikael/mcabber/files/$pkgname-${pkgver/_/-}.tar.bz2)
+md5sums=('fe96beab30f535d5d6270fd1719659b4')
+
+build() {
+ cd ${srcdir}/$pkgname-${pkgver/_/-}
+
+ ./configure --prefix=/usr --enable-hgcset \
+ --mandir=/usr/share/man \
+ --enable-aspell --enable-otr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-${pkgver/_/-}
+
+ make DESTDIR=${pkgdir} install
+ mkdir -p ${pkgdir}/usr/share/mcabber/example
+ msg "Copying mcabberrc.example to usr/share/mcabber/example/mcabberrc"
+ cp -a ${srcdir}/$pkgname-${pkgver/_/-}/mcabberrc.example \
+ ${pkgdir}/usr/share/mcabber/example/mcabberrc
+}
+
diff --git a/community/mcdp/PKGBUILD b/community/mcdp/PKGBUILD
new file mode 100644
index 000000000..e7b0d5a37
--- /dev/null
+++ b/community/mcdp/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 5260 2009-11-07 12:48:21Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tino Reichardt <milky-archlinux@mcmilk.de>
+
+pkgname=mcdp
+pkgver=0.4a
+pkgrel=3
+pkgdesc="small console cd player"
+arch=('i686' 'x86_64')
+url="http://www.mcmilk.de/projects/mcdp/"
+license=("GPL")
+makedepends=('dietlibc')
+source=(http://www.mcmilk.de/projects/mcdp/dl/$pkgname-$pkgver.tar.bz2)
+md5sums=('d52c32df83161b46f451018aeddad0ed')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ make mcdp
+ mkdir -p $startdir/pkg/usr/bin $startdir/pkg/usr/share/man/man1
+ cp mcdp $startdir/pkg/usr/bin
+ cp mcdp.1 $startdir/pkg/usr/share/man/man1
+}
diff --git a/community/mdf2iso/ChangeLog b/community/mdf2iso/ChangeLog
new file mode 100644
index 000000000..c206c3cde
--- /dev/null
+++ b/community/mdf2iso/ChangeLog
@@ -0,0 +1,9 @@
+2007-06-29 tardo <tardo@nagi-fanboi.net>
+* Rebuilt with LFS patch
+
+2007-06-29 Georg Grabler (STiAT) <ggrabler@gmail.com>
+* Added lfs.patch (long file system support) for images > 4GB
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/mdf2iso/PKGBUILD b/community/mdf2iso/PKGBUILD
new file mode 100644
index 000000000..21370ed35
--- /dev/null
+++ b/community/mdf2iso/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 25104 2010-08-30 23:20:53Z lcarlier $
+# Contributor: Jeff Mickey <j@codemac.net>
+# Contributer: Henrik Ronellenfitsch <henrik at searinox dot de>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=mdf2iso
+pkgver=0.3.0
+pkgrel=4
+pkgdesc="Converts Alcohol 120% .mdf files into .iso files"
+arch=('i686' 'x86_64')
+url="http://mdf2iso.berlios.de"
+license=('GPL')
+depends=('glibc')
+source=(http://download.berlios.de/mdf2iso/${pkgname}-${pkgver}-src.tar.bz2 lfs.patch)
+md5sums=('a190625318476a196930ac66acd8fd07' 'a7510b8bc36d468ace80df3ecf55a3a3')
+
+build() {
+ cd ${srcdir}/${pkgname}
+
+ patch -p1 < ../lfs.patch
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/mdf2iso/lfs.patch b/community/mdf2iso/lfs.patch
new file mode 100644
index 000000000..5ff62c0ba
--- /dev/null
+++ b/community/mdf2iso/lfs.patch
@@ -0,0 +1,683 @@
+Only in mdf2iso/src: .deps
+Only in mdf2iso.new/src: .kdbgrc.mdf2iso
+diff -bur mdf2iso/src/Makefile.am mdf2iso.new/src/Makefile.am
+--- mdf2iso/src/Makefile.am 2005-05-19 11:24:11.000000000 +0200
++++ mdf2iso.new/src/Makefile.am 2005-07-31 17:47:36.000000000 +0200
+@@ -1,2 +1,3 @@
+ bin_PROGRAMS = mdf2iso
+ mdf2iso_SOURCES = mdf2iso.c
++AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -Wall
+diff -bur mdf2iso/src/Makefile.in mdf2iso.new/src/Makefile.in
+--- mdf2iso/src/Makefile.in 2005-05-22 21:42:09.000000000 +0200
++++ mdf2iso.new/src/Makefile.in 2005-07-31 17:49:16.000000000 +0200
+@@ -136,6 +136,7 @@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ mdf2iso_SOURCES = mdf2iso.c
++AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -Wall
+ all: all-am
+
+ .SUFFIXES:
+@@ -149,9 +150,9 @@
+ exit 1;; \
+ esac; \
+ done; \
+- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
+ cd $(top_srcdir) && \
+- $(AUTOMAKE) --foreign src/Makefile
++ $(AUTOMAKE) --gnu src/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+diff -bur mdf2iso/src/mdf2iso.c mdf2iso.new/src/mdf2iso.c
+--- mdf2iso/src/mdf2iso.c 2005-05-22 21:52:08.000000000 +0200
++++ mdf2iso.new/src/mdf2iso.c 2005-07-31 19:41:56.000000000 +0200
+@@ -1,4 +1,4 @@
+- /* $Id: mdf2iso.c, 22/05/05
++/* $Id: mdf2iso.c, 22/05/05
+
+ Copyright (C) 2004,2005 Salvatore Santagati <salvatore.santagati@gmail.com>
+
+@@ -16,19 +16,14 @@
+ along with this program; if not, write to the
+ Free Software Foundation, Inc.,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+- */
++*/
+
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
+
+-#define VERSION "0.3.0"
+-
+-/* Support Large File */
+-
+-#define _FILE_OFFSET_BITS 64
+-
++#define VERSION "0.3.1"
+
+
+ const char SYNC_HEADER[12] = { (char) 0x00,
+@@ -83,14 +78,21 @@
+ (char) 0x00
+ };
+
++#define ISO9660 0
++#define SYNC 1
++#define SYNC_MDF 2
++#define MDF_AUDIO 3
++#define UNKNOWN -1
+
+-void
+-toc_file (char *destfilename, int sub)
++int toc_file (char *destfilename, int sub)
+ {
+- char destfiletoc[1024], destfiledat[1024];
++ int ret=0;
++ char *destfiletoc;
++ char *destfiledat;
+ FILE *ftoc;
+- strcpy (destfiletoc, destfilename);
+- strcpy (destfiledat, destfilename);
++
++ destfiletoc=strdup(destfilename);
++ destfiledat=strdup(destfilename);
+ strcpy (destfiletoc + strlen (destfilename) - 4, ".toc");
+ strcpy (destfiledat + strlen (destfilename) - 4, ".dat");
+
+@@ -100,11 +102,8 @@
+ fprintf (ftoc, "// Track 1\n");
+ fprintf (ftoc, "TRACK MODE1_RAW");
+
+- if (sub == 1)
+- fprintf (ftoc, " RW_RAW\n");
+-
+- else
+- fprintf (ftoc, "\n");
++ if (sub == 1) fprintf (ftoc, " RW_RAW\n");
++ else fprintf (ftoc, "\n");
+
+ fprintf (ftoc, "NO COPY\n");
+ fprintf (ftoc, "DATAFILE \"%s\"\n", destfiledat);
+@@ -114,26 +113,27 @@
+ }
+ else
+ {
+- printf ("%s\n", strerror (errno));
+- exit (EXIT_FAILURE);
++ printf ("Error opening %s for output: %s\n",destfiletoc,strerror(errno));
++ ret=-1;
+ };
+-
++ free(destfiletoc);
++ free(destfiledat);
++ return ret;
+ }
+
+-int
+-number_file (char *destfilename)
++/*
++int number_file (char *destfilename)
+ {
+ int i = 1, test_mdf = 0;
+ int n_mdf;
+ char mdf[2], destfilemdf[2354];
+ FILE *fsource;
++
+ strcpy (destfilemdf, destfilename);
+ strcpy (destfilemdf + strlen (destfilename) - 1, ".0");
+ for (i = 0; test_mdf == 0; i++)
+-
+ {
+ if ((fsource = fopen (destfilemdf, "rb")) != NULL)
+-
+ {
+ printf ("\nCheck : ");
+ sprintf (mdf, "md%d", i);
+@@ -141,203 +141,219 @@
+ printf ("%s, ", destfilemdf);
+ fclose (fsource);
+ }
+-
+ else
+ {
+ test_mdf = 1;
+ }
+- };
++ }
+ printf ("\r \n");
+ n_mdf = i - 1;
+ return (n_mdf);
+ }
++*/
+
+-void
+-cuesheets (char *destfilename)
++int cuesheets (char *destfilename)
+ {
+- char destfilecue[1024], destfilebin[1024];
++ int ret=0;
++ char *destfilecue;
++ char *destfilebin;
+ FILE *fcue;
+- strcpy (destfilecue, destfilename);
+- strcpy (destfilebin, destfilename);
++
++ destfilecue=strdup(destfilename);
++ destfilebin=strdup(destfilename);
+ strcpy (destfilecue + strlen (destfilename) - 4, ".cue");
+ strcpy (destfilebin + strlen (destfilename) - 4, ".bin");
+- fcue = fopen (destfilecue, "w");
++ if ((fcue = fopen (destfilecue, "w"))!=NULL)
++ {
+ fprintf (fcue, "FILE \"%s\" BINARY\n", destfilebin);
+ fprintf (fcue, "TRACK 1 MODE1/2352\n");
+ fprintf (fcue, "INDEX 1 00:00:00\n");
+ rename (destfilename, destfilebin);
+ printf ("Create Cuesheets : %s\n", destfilecue);
+ fclose (fcue);
++ }
++ else
++ {
++ printf ("Error opening %s for output: %s\n",destfilecue,strerror(errno));
++ ret=-1;
++ }
++ return ret;
+ }
+
+-void
+-main_percent (int percent_bar)
++int previous_percent=-1;
++void main_percent (int percent_bar)
++// Prints a progress bar, takes a percentage as argument.
+ {
+- int progress_bar, progress_space;
++ //int progress_bar, progress_space;
++
++ if (percent_bar==previous_percent) return; // Nothing changed, don't waste CPU cycles.
++
++ printf("%3d%% [:%.*s>%.*s:]\r",percent_bar,20-(percent_bar/5)," ",
++ percent_bar/5,"====================");
++ /*
+ printf ("%d%% [:", percent_bar);
+- for (progress_bar = 1; progress_bar <= (int) (percent_bar / 5);
+- progress_bar++)
++ for (progress_bar = 1; progress_bar <= (int) (percent_bar / 5); progress_bar++)
+ printf ("=");
+ printf (">");
+
+- for (progress_space = 0; progress_space < (20 - progress_bar);
+- progress_space++)
+- printf (" ");
++ for (; progress_bar <= 20; ++progress_bar) printf (" ");
+ printf (":]\r");
++ */
+ }
+
+-void
+-usage ()
++void usage ()
++// Prints the command line syntax
+ {
+- printf ("mdf2iso v%s by Salvatore Santagati\n", VERSION);
+- printf ("Web : http//mdf2iso.berlios.de\n");
+- printf ("Email : salvatore.santagati@gmail.com\n");
+- printf ("Irc : irc.freenode.net #ignus\n");
+- printf ("Note : iodellavitanonhocapitouncazzo\n");
+- printf ("License : released under the GNU GPL v2 or later\n\n");
++ printf (" Web : http//mdf2iso.berlios.de\n");
++ printf (" Email : salvatore.santagati@gmail.com\n");
++ printf (" Irc : irc.freenode.net #ignus\n");
++ printf (" Note : iodellavitanonhocapitouncazzo\n\n");
+ printf ("Usage :\n");
+- printf ("mdf2iso [OPTION] [BASENAME.MDF] [DESTINATION]\n\n");
+- printf ("OPTION\n");
+- printf ("\t--toc Generate toc file\n");
+- printf ("\t--cue Generate cue file\n");
+- printf ("\t--help display this notice\n\n");
++ printf ("mdf2iso [--cue|--toc|--help] <sourcefile> [destfile]\n\n");
++ printf ("Options:\n");
++ printf (" --toc Generate toc/dat files\n");
++ printf (" --cue Generate cue/bin files\n");
++ printf (" --help Display this notice\n");
++ printf (" sourcefile\tFilename of the .mdf file to be converted\n");
++ printf (" destfile\tFilename of the target ISO9660 file.\n"\
++ "\t\tIf none given, one is derived from sourcefile.\n\n");
+ }
+
+-int
+-main (int argc, char **argv)
++char mdftype(FILE *f)
++/* returns
++ -1 for unknown
++ 0 for ISO9660
++ 1 for SYNC
++ 2 for SYNC MDF
++ 3 for MDF Audio
++ (see #defines above)
++*/
+ {
+- int seek_ecc, sector_size, seek_head, sector_data, n_mdf;
++ char buf[12];
++
++ fseek(f, 32768, SEEK_SET);
++ fread(buf, sizeof (char), 8, f);
++ if (!memcmp (ISO_9660, buf, 8)) return ISO9660; // File is ISO9660
++
++ fseek(f, 0L, SEEK_SET);
++ fread(buf, sizeof (char), 12, f);
++
++ fseek (f, 2352, SEEK_SET);
++
++ if (!memcmp (SYNC_HEADER, buf, 12)) // Has SYNC_HEADER
++ {
++ fread (buf, sizeof (char), 12, f);
++ if (!memcmp (SYNC_HEADER_MDF, buf, 12)) return SYNC_MDF; // File is SYNC MDF
++ if (!memcmp (SYNC_HEADER, buf, 12)) return SYNC; // File is SYNC
++ }
++ else // Does not have SYNC_HEADER
++ {
++ fread(buf, sizeof (char), 12, f);
++ if (!memcmp (SYNC_HEADER_MDF_AUDIO, buf, 12)) return MDF_AUDIO; // File is MDF Audio
++ }
++
++ // Reached a point where nothing else matters.
++ return UNKNOWN; // Unknown format
++}
++
++
++// === Main program code ===
++
++int main (int argc, char **argv)
++{
++ int seek_ecc, sector_size, seek_head, sector_data;//, n_mdf;
+ int cue = 0, cue_mode = 0, sub = 1, toc = 0, sub_toc = 0;
+ int opts = 0;
+- double size_iso, write_iso;
+- long percent = 0;
+- long i, source_length, progressbar;
+- char buf[2448], destfilename[2354];
++ long i, source_length;
++ char buf[2448];
++ char *destfilename=NULL;
++ char *basefilename=NULL;
+ FILE *fdest, *fsource;
+
++ // Print identification
++ printf ("mdf2iso v%s by Salvatore Santagati\n", VERSION);
++ printf ("Licensed under GPL v2 or later\n");
+
+- if (argc < 2)
+
++ // *** Process command line options ***
++
++ if (argc < 2)
+ {
+- usage ();
+- exit (EXIT_FAILURE);
++ // Not enough parameters; print help
++ usage();
++ exit(EXIT_FAILURE);
+ }
+
+- else
+-
+- {
++ // Search for options --cue and --toc
+ for (i = 0; i < argc; i++)
+-
+ {
+-
+ if (!strcmp (argv[i], "--help"))
+-
+ {
+ usage ();
+ exit (EXIT_SUCCESS);
+ }
+ if (!strcmp (argv[i], "--cue"))
+-
+ {
+ cue = 1;
+ opts++;
+ }
+ if (!strcmp (argv[i], "--toc"))
+-
+ {
+ toc = 1;
+ opts++;
+ }
+ }
+
+- if ((cue == 1) && (toc == 1))
+-
+- {
+- usage ();
+- exit (EXIT_FAILURE);
+- }
+- if ((opts == 1) && (argc <= 2))
+-
++ // Catch impossible parameter combinations
++ if (((cue == 1) && (toc == 1)) ||
++ ((opts == 1) && (argc <= 2)))
+ {
+- usage ();
+- exit (EXIT_FAILURE);
++ usage();
++ exit(EXIT_FAILURE);
+ }
+
++ // Get the base filename
++ basefilename=argv[1+opts]; // simple pointer, but makes life easier.
+
++ // Get the destination filename
+ if (argc >= (3 + opts))
+- strcpy (destfilename, argv[2 + opts]);
+-
+- else
+-
+- {
+- strcpy (destfilename, argv[1 + opts]);
+- if (strlen (argv[1 + cue]) < 5
+- || strcmp (destfilename + strlen (argv[1 + opts]) - 4, ".mdf"))
+- strcpy (destfilename + strlen (argv[1 + opts]), ".iso");
+-
++ // The destination filename is explicitly entered at the prompt
++ destfilename=strdup(argv[2 + opts]);
+ else
+- strcpy (destfilename + strlen (argv[1 + opts]) - 4, ".iso");
+- }
+- if ((fsource = fopen (argv[1 + opts], "rb")) != NULL)
+-
+ {
+- fseek (fsource, 32768, SEEK_CUR);
+- fread (buf, sizeof (char), 8, fsource);
+- if (memcmp (ISO_9660, buf, 8))
+-
++ // Derive destination filename from the basename:
++ // If basename is "*.mdf" use "*.iso" als destname
++ // otherwise simply append ".iso" to the basename to create destname.
++ destfilename=strdup(basefilename);
++ i=strlen(destfilename); // Reusing 'i' here as temporary variable
++ if (i < 5 || strcmp(destfilename + i - 4, ".mdf"))
+ {
+- fseek (fsource, 0L, SEEK_SET);
+- fread (buf, sizeof (char), 12, fsource);
+- if (!memcmp (SYNC_HEADER, buf, 12))
+-
+- {
+- fseek (fsource, 0L, SEEK_SET);
+- fseek (fsource, 2352, SEEK_CUR);
+- fread (buf, sizeof (char), 12, fsource);
+- if (!memcmp (SYNC_HEADER_MDF, buf, 12))
+-
+- {
+- if (cue == 1)
+- {
+- cue_mode = 1;
+-
+- /* BAD SECTOR TO NORMAL IMAGE */
+- seek_ecc = 96;
+- sector_size = 2448;
+- sector_data = 2352;
+- seek_head = 0;
+- }
+-
+- else if (toc == 0)
+-
+- {
+-
+- /*BAD SECTOR */
+- seek_ecc = 384;
+- sector_size = 2448;
+- sector_data = 2048;
+- seek_head = 16;
++ destfilename=realloc(destfilename,i+5);
++ strcat(destfilename, ".iso");
+ }
+-
+ else
+-
+- {
+-
+- /*BAD SECTOR */
+- seek_ecc = 0;
+- sector_size = 2448;
+- sector_data = 2448;
+- seek_head = 0;
+- sub_toc = 1;
+- }
++ strcpy(destfilename + i - 3, "iso");
+ }
+
+- else
++ // *** Preprocess basefile ***
+
++ // Try opening basefile
++ if ((fsource = fopen(basefilename, "rb")) == NULL)
+ {
+- if (!memcmp (SYNC_HEADER, buf, 12))
++ free(destfilename);
++ printf ("Could not open %s: %s\n", basefilename, strerror(errno));
++ exit (EXIT_FAILURE);
++ }
+
++ // Determine filetype & set some stuff accordingly (or exit)
++ switch (mdftype(fsource))
+ {
++ case ISO9660:
++ printf("%s is already ISO9660.\n",basefilename);
++ fclose(fsource);
++ free(destfilename);
++ exit(EXIT_SUCCESS);
++ case SYNC:
+ if (cue == 1)
+ {
+ cue_mode = 1;
+@@ -348,129 +364,134 @@
+ seek_head = 0;
+ }
+ if (toc == 0)
+-
+ {
+-
+ /*NORMAL IMAGE */
+ seek_ecc = 288;
+ sector_size = 2352;
+ sector_data = 2048;
+ seek_head = 16;
+ }
+-
+ else
+-
+ {
+ seek_ecc = 0;
+ sector_size = 2352;
+ sector_data = 2352;
+ seek_head = 0;
+ }
+- }
+-
+- else
+-
+- {
+- printf ("Sorry I don't know this format :(\n");
+- exit (EXIT_FAILURE);
+- }
+- }
+- }
+-
+- else
+-
++ break;
++ case SYNC_MDF:
++ if (cue == 1)
+ {
+- fseek (fsource, 0L, SEEK_SET);
+- fseek (fsource, 2352, SEEK_CUR);
+- fread (buf, sizeof (char), 12, fsource);
+- if (memcmp (SYNC_HEADER_MDF_AUDIO, buf, 12))
++ cue_mode = 1;
+
++ /* BAD SECTOR TO NORMAL IMAGE */
++ seek_ecc = 96;
++ sector_size = 2448;
++ sector_data = 2352;
++ seek_head = 0;
++ }
++ else if (toc == 0)
+ {
+- printf ("Sorry I don't know this format :(\n");
+- exit (EXIT_FAILURE);
++ /*BAD SECTOR */
++ seek_ecc = 384;
++ sector_size = 2448;
++ sector_data = 2048;
++ seek_head = 16;
+ }
+-
+ else
+-
+ {
+-
++ /*BAD SECTOR */
++ seek_ecc = 0;
++ sector_size = 2448;
++ sector_data = 2448;
++ seek_head = 0;
++ sub_toc = 1;
++ }
++ break;
++ case MDF_AUDIO:
+ /*BAD SECTOR AUDIO */
+ seek_head = 0;
+ sector_size = 2448;
+ seek_ecc = 96;
+ sector_data = 2352;
+ cue = 0;
++ break;
++ default:printf("Unknown format for %s.\n",basefilename);
++ fclose(fsource);
++ free(destfilename);
++ exit (EXIT_FAILURE);
+ }
+- }
+- if ((fdest = fopen (destfilename, "wb")) != NULL);
+
+- else
++ // *** Create destination file ***
++
++ // Try opening the destination file for output
++ if ((fdest = fopen (destfilename, "wb")) == NULL)
+ {
+- printf ("%s\n", strerror (errno));
++ printf ("Unable to open %s for output: %s\n",destfilename,strerror(errno));
++ free(destfilename);
++ fclose(fsource);
+ exit (EXIT_FAILURE);
+- };
++ }
++
++
+ fseek (fsource, 0L, SEEK_END);
+ source_length = ftell (fsource) / sector_size;
+- size_iso = (int) (source_length * sector_data);
+- progressbar = 100 / source_length;
+ fseek (fsource, 0L, SEEK_SET);
+-
+ {
+ for (i = 0; i < source_length; i++)
+-
+ {
+ fseek (fsource, seek_head, SEEK_CUR);
+- if (fread (buf, sizeof (char), sector_data, fsource));
+-
+- else
++ if (fread(buf, sizeof (char), sector_data, fsource)!=sector_data)
+ {
+- printf ("%s\n", strerror (errno));
++ printf ("Error reading from %s: %s\n",basefilename, strerror (errno));
++ fclose(fsource);
++ fclose(fdest);
++ remove(destfilename);
++ free(destfilename);
+ exit (EXIT_FAILURE);
+- };
+- if (fwrite (buf, sizeof (char), sector_data, fdest));
+-
+- else
++ }
++ if (fwrite (buf, sizeof (char), sector_data, fdest)!=sector_data)
+ {
+- printf ("%s\n", strerror (errno));
++ printf ("Error writing to %s: %s\n",destfilename, strerror (errno));
++ fclose(fsource);
++ fclose(fdest);
++ remove(destfilename);
++ free(destfilename);
+ exit (EXIT_FAILURE);
+- };
++ }
+ fseek (fsource, seek_ecc, SEEK_CUR);
+- write_iso = (int) (sector_data * i);
+- if (i != 0)
+- percent = (int) (write_iso * 100 / size_iso);
+- main_percent (percent);
+- }} printf ("100%%[:====================:]\n");
++ main_percent(i*100/source_length);
++ }
++ } printf ("100%% [:=====================:]\n");
+
+ fclose (fsource);
+ fclose (fdest);
+
+- if (cue == 1)
+- cuesheets (destfilename);
+- if (toc == 1)
+- toc_file (destfilename, sub_toc);
++ // *** create Toc or Cue file is requested ***
++ if (cue == 1) if (cuesheets(destfilename))
++ {
++ free(destfilename);
++ exit(EXIT_FAILURE);
++ }
++ if (toc == 1) if (toc_file(destfilename, sub_toc))
++ {
++ free(destfilename);
++ exit(EXIT_FAILURE);
++ }
+ if ((toc == 0) && (cue == 0))
+- printf ("Create iso9660: %s\n", destfilename);
++ printf("Created iso9660: %s\n", destfilename);
++
++ free(destfilename);
+
+ exit (EXIT_SUCCESS);
+- }
+
+- else
+- printf ("This is file iso9660 ;)\n");
++/*
+ n_mdf = number_file (destfilename) - 1;
+- /* if (n_mdf > 1)
+-
++ / * if (n_mdf > 1)
+ {
+ printf ("\rDetect %d md* file and now emerge this\n", n_mdf);
+ }
+- */
++ * /
+ fclose (fsource);
+- exit (EXIT_SUCCESS);
+- }
+-
+- else
+- {
+- printf ("%s\n", strerror (errno));
+- exit (EXIT_FAILURE);
+- };
+- }
++ exit (EXIT_SUCCESS);*/
+ }
diff --git a/community/me-tv/PKGBUILD b/community/me-tv/PKGBUILD
new file mode 100644
index 000000000..8d85f49c2
--- /dev/null
+++ b/community/me-tv/PKGBUILD
@@ -0,0 +1,42 @@
+#Maintainer: jakob gruber <jakob.gruber@gmail.com>
+#Contributor: gborzi
+#Previous Contributor: Vinzenz Vietzke <vinz@archlinux.us>
+#Previous Contributor: Heiko Baums <heiko@baums-on-web.de>
+#Previous Contributor: Jeff Bailes <thepizzaking@gmail.com>
+
+pkgname=me-tv
+pkgver=2.0.0
+pkgrel=1
+pkgdesc="A GTK desktop application for watching digital television services that use the DVB standard"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/me-tv"
+license=('GPL')
+depends=('glibmm' 'gtkmm' 'gconfmm' 'glib2' 'xine-lib' 'sqlite3' 'linuxtv-dvb-apps' 'libunique' 'libxml++' 'vlc' 'gstreamer0.10-base')
+makedepends=('intltool')
+install=me-tv.install
+source=(http://launchpad.net/${pkgname}/${pkgver:0:3}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+options=('!emptydirs')
+md5sums=('d4c614f113a34342ff29c1f5605cd14a')
+
+build() {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure CXXFLAGS="$CXXFLAGS -D__KERNEL_STRICT_NAMES" --prefix=/usr
+ make
+
+}
+
+package() {
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" \
+ --domain me-tv "${pkgdir}/usr/etc/gconf/schemas/${pkgname}.schemas"
+
+ rm -rf "${pkgdir}/usr/etc/"
+
+}
diff --git a/community/me-tv/me-tv.install b/community/me-tv/me-tv.install
new file mode 100644
index 000000000..f701b4754
--- /dev/null
+++ b/community/me-tv/me-tv.install
@@ -0,0 +1,17 @@
+pkgname=me-tv
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/community/mediainfo-gui/PKGBUILD b/community/mediainfo-gui/PKGBUILD
new file mode 100644
index 000000000..ad49b277a
--- /dev/null
+++ b/community/mediainfo-gui/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 41753 2011-03-08 20:16:04Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: hydro <hydro@freenet.de>
+
+pkgname=mediainfo-gui
+pkgver=0.7.42
+pkgrel=1
+pkgdesc="GUI for mediainfo"
+arch=('i686' 'x86_64')
+url="http://mediainfo.sourceforge.net"
+license=('GPL')
+depends=('libmediainfo>=0.7.35' 'wxgtk')
+makedepends=('libtool' 'automake' 'autoconf')
+install=mediainfo-gui.install
+source=(http://downloads.sourceforge.net/mediainfo/mediainfo_${pkgver}.tar.bz2)
+md5sums=('ee39fda7eee7f1e27e289acc9836439c')
+
+build() {
+ cd $srcdir/MediaInfo/Project/GNU/GUI
+ sh ./autogen
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m 644 $srcdir/MediaInfo/Source/Ressource/Image/MediaInfo.png \
+ $pkgdir/usr/share/icons/hicolor/128x128/apps/mediainfo.png
+ install -D -m 644 $srcdir/MediaInfo/Source/Ressource/Image/MediaInfo.png \
+ $pkgdir/usr/share/pixmaps/mediainfo-gui.png
+ install -D -m 644 $srcdir/MediaInfo/Project/GNU/GUI/mediainfo-gui.desktop \
+ $pkgdir/usr/share/applications/mediainfo-gui.desktop
+
+}
diff --git a/community/mediainfo-gui/mediainfo-gui.install b/community/mediainfo-gui/mediainfo-gui.install
new file mode 100644
index 000000000..28d8f7815
--- /dev/null
+++ b/community/mediainfo-gui/mediainfo-gui.install
@@ -0,0 +1,11 @@
+post_install() {
+ which gtk-update-icon-cache >/dev/null && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/mediainfo/PKGBUILD b/community/mediainfo/PKGBUILD
new file mode 100644
index 000000000..592875e35
--- /dev/null
+++ b/community/mediainfo/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 41756 2011-03-08 20:16:39Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: hydro <hydro@freenet.de>
+
+pkgname=mediainfo
+pkgver=0.7.42
+pkgrel=1
+pkgdesc="supplies technical and tag information about a video or audio file"
+arch=('i686' 'x86_64')
+url="http://mediainfo.sourceforge.net"
+license=('GPL')
+depends=('libmediainfo>=0.7.35')
+makedepends=('libtool' 'automake' 'autoconf')
+source=(http://downloads.sourceforge.net/mediainfo/${pkgname}_${pkgver}.tar.bz2)
+md5sums=('ee39fda7eee7f1e27e289acc9836439c')
+
+build() {
+ cd $srcdir/MediaInfo/Project/GNU/CLI
+ sh ./autogen
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/mediaproxy/PKGBUILD b/community/mediaproxy/PKGBUILD
new file mode 100644
index 000000000..c123cc288
--- /dev/null
+++ b/community/mediaproxy/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 33418 2010-11-24 16:05:40Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Colin Pitrat <colin.pitrat@gmail.com>
+
+pkgname=mediaproxy
+pkgver=2.4.4
+pkgrel=1
+pkgdesc="Open-source media proxy for OpenSER"
+url="http://mediaproxy.ag-projects.com/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('python2' 'libnetfilter_conntrack' 'python-application' 'python-cjson' 'python-gnutls')
+backup=('opt/mediaproxy/config.ini')
+source=("http://download.ag-projects.com/MediaProxy/mediaproxy-$pkgver.tar.gz"
+ "mediaproxy.init")
+md5sums=('4ae842662702ddd4a5a9db263d261693'
+ '64042f4686de69a9bdd27d51cbe8a548')
+
+build()
+{
+ cd $srcdir/mediaproxy-$pkgver
+ install -D -m0755 $srcdir/mediaproxy.init $pkgdir/etc/rc.d/mediaproxy
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/mediaproxy/mediaproxy.init b/community/mediaproxy/mediaproxy.init
new file mode 100755
index 000000000..c8c600aea
--- /dev/null
+++ b/community/mediaproxy/mediaproxy.init
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# mediaproxy starts and stops the SER MediaProxy server
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting mediaproxy"
+ media-dispatcher && media-relay
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mediaproxy"
+ kill `cat /var/run/mediaproxy/relay.pid`
+ kill `cat /var/run/mediaproxy/dispatcher.pid`
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
diff --git a/community/mediastreamer/PKGBUILD b/community/mediastreamer/PKGBUILD
new file mode 100644
index 000000000..4b97dc151
--- /dev/null
+++ b/community/mediastreamer/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 44001 2011-04-01 15:25:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Adrià Arrufat <swiftscythe@gmail.com>
+
+pkgname=mediastreamer
+pkgver=2.7.3
+pkgrel=1
+pkgdesc="A library written in C that allows you to create and run audio and video streams."
+arch=('i686' 'x86_64')
+url="http://www.linphone.org"
+license=('GPL')
+depends=('ortp' 'speex' 'v4l-utils' 'ffmpeg')
+makedepends=('cmake' 'automoc4')
+source=("http://download-mirror.savannah.gnu.org/releases/linphone/mediastreamer/mediastreamer-$pkgver.tar.gz"
+ "disable-v4l1.patch")
+md5sums=('5213307f557d86aa648f1a53a885138c'
+ '7ee15689eed1adbdcf0ddab8fadca34a')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver/
+ patch -p2 <$srcdir/disable-v4l1.patch
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/mediastreamer/disable-v4l1.patch b/community/mediastreamer/disable-v4l1.patch
new file mode 100644
index 000000000..9f6cb84d4
--- /dev/null
+++ b/community/mediastreamer/disable-v4l1.patch
@@ -0,0 +1,50 @@
+diff -wbBur linphone-3.4.3/mediastreamer2/src/Makefile.am linphone-3.4.3.my/mediastreamer2/src/Makefile.am
+--- linphone-3.4.3/mediastreamer2/src/Makefile.am 2011-02-09 08:43:11.000000000 +0000
++++ linphone-3.4.3.my/mediastreamer2/src/Makefile.am 2011-04-01 14:54:04.000000000 +0000
+@@ -117,7 +117,7 @@
+ endif
+
+ if BUILD_V4L
+-libmediastreamer_la_SOURCES+=msv4l.c msv4l2.c
++libmediastreamer_la_SOURCES+=msv4l2.c
+ endif
+
+ if BUILD_WIN32
+diff -wbBur linphone-3.4.3/mediastreamer2/src/Makefile.in linphone-3.4.3.my/mediastreamer2/src/Makefile.in
+--- linphone-3.4.3/mediastreamer2/src/Makefile.in 2011-03-28 18:34:07.000000000 +0000
++++ linphone-3.4.3.my/mediastreamer2/src/Makefile.in 2011-04-01 14:55:00.000000000 +0000
+@@ -54,7 +54,7 @@
+ @BUILD_MACAQSND_TRUE@am__append_12 = aqsnd.c
+ @BUILD_PULSEAUDIO_TRUE@am__append_13 = pulseaudio.c
+ @BUILD_MACOSX_TRUE@@BUILD_VIDEO_TRUE@am__append_14 = msv4m.m
+-@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__append_15 = msv4l.c msv4l2.c
++@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__append_15 = msv4l2.c
+ @BUILD_VIDEO_TRUE@@BUILD_WIN32_TRUE@am__append_16 = msdscap-mingw.cc drawdib-display.c
+ @BUILD_THEORA_TRUE@@BUILD_VIDEO_TRUE@am__append_17 = theora.c
+ @BUILD_FFMPEG_TRUE@@BUILD_VIDEO_TRUE@am__append_18 = videoenc.c \
+@@ -135,7 +135,7 @@
+ audiostream.c msspeex.c speexec.c gsm.c winsnd3.c \
+ msfileplayer_win.c msfilerec_win.c msfileplayer.c msfilerec.c \
+ msresample.c alsa.c oss.c arts.c pasnd.c macsnd.c msiounit.c \
+- aqsnd.c pulseaudio.c msv4m.m msv4l.c msv4l2.c msdscap-mingw.cc \
++ aqsnd.c pulseaudio.c msv4m.m msv4l2.c msdscap-mingw.cc \
+ drawdib-display.c theora.c videoenc.c videodec.c pixconv.c \
+ sizeconv.c nowebcam.c nowebcam.h swscale.h ffmpeg-priv.h \
+ h264dec.c jpegwriter.c videoout.c x11video.c rfc2429.h \
+@@ -156,7 +156,7 @@
+ @BUILD_MACAQSND_TRUE@am__objects_12 = aqsnd.lo
+ @BUILD_PULSEAUDIO_TRUE@am__objects_13 = pulseaudio.lo
+ @BUILD_MACOSX_TRUE@@BUILD_VIDEO_TRUE@am__objects_14 = msv4m.lo
+-@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__objects_15 = msv4l.lo msv4l2.lo
++@BUILD_V4L_TRUE@@BUILD_VIDEO_TRUE@am__objects_15 = msv4l2.lo
+ @BUILD_VIDEO_TRUE@@BUILD_WIN32_TRUE@am__objects_16 = msdscap-mingw.lo \
+ @BUILD_VIDEO_TRUE@@BUILD_WIN32_TRUE@ drawdib-display.lo
+ @BUILD_THEORA_TRUE@@BUILD_VIDEO_TRUE@am__objects_17 = theora.lo
+@@ -600,7 +600,6 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mssndcard.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msspeex.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msticker.Plo@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msv4l.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msv4l2.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msv4m.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvideo.Plo@am__quote@
diff --git a/community/mediatomb/PKGBUILD b/community/mediatomb/PKGBUILD
new file mode 100644
index 000000000..56780af99
--- /dev/null
+++ b/community/mediatomb/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 36085 2010-12-27 00:44:09Z jconder $
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Nikhil Bysani <nikron@gmail.com>
+# Contributor: Mika Hynnä <igheax@gmail.com>
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+
+pkgname=mediatomb
+pkgver=0.12.1
+pkgrel=3
+pkgdesc="Free UPnP/DLNA media server"
+arch=('i686' 'x86_64')
+url="http://mediatomb.cc/"
+license=('GPL')
+depends=('libexif' 'taglib' 'sqlite3' 'spidermonkey' 'curl' 'ffmpegthumbnailer')
+backup=('etc/conf.d/mediatomb')
+install=mediatomb.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'mediatomb.rc'
+ 'mediatomb.conf')
+md5sums=('e927dd5dc52d3cfcebd8ca1af6f0d3c2'
+ 'aa1191ec508d8bd4b3b9a5fe48efc079'
+ 'bec297e4178332a26b42bbde873b94cd')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --disable-mysql \
+ --enable-libmagic \
+ --enable-libjs \
+ --enable-ffmpeg
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -D -m0755 "$srcdir/mediatomb.rc" "$pkgdir/etc/rc.d/mediatomb"
+ install -D -m0755 "$srcdir/mediatomb.conf" "$pkgdir/etc/conf.d/mediatomb"
+ mkdir -p "$pkgdir/var/lib/mediatomb"
+}
diff --git a/community/mediatomb/mediatomb.conf b/community/mediatomb/mediatomb.conf
new file mode 100644
index 000000000..798018d2a
--- /dev/null
+++ b/community/mediatomb/mediatomb.conf
@@ -0,0 +1,23 @@
+#
+# Parameters to be passed to mediatomb
+#
+
+# Port to listen on
+MT_PORT='50500'
+
+# User and group to run as
+MT_USER='nobody'
+MT_GROUP='nobody'
+
+# Location of the PID file
+MT_PIDFILE='/var/run/mediatomb.pid'
+
+# Location of the log file
+MT_LOGFILE='/var/log/mediatomb.log'
+
+# Location of the config file/database
+MT_HOME='/var/lib/mediatomb'
+MT_CFGDIR='.mediatomb'
+
+# User defined command line options
+MT_OPTIONS=''
diff --git a/community/mediatomb/mediatomb.install b/community/mediatomb/mediatomb.install
new file mode 100644
index 000000000..56f6ef92c
--- /dev/null
+++ b/community/mediatomb/mediatomb.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo 'Warning: the MediaTomb web interface exposes your filesystem to the network'
+ echo 'For maximum security, set <ui enabled="no"> in your MediaTomb config file'
+}
+
+post_upgrade() {
+ # TODO: disable next update
+ post_install
+}
diff --git a/community/mediatomb/mediatomb.rc b/community/mediatomb/mediatomb.rc
new file mode 100644
index 000000000..7b93012cd
--- /dev/null
+++ b/community/mediatomb/mediatomb.rc
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/mediatomb
+
+MT_OPTIONS="-p $MT_PORT -u $MT_USER -g $MT_GROUP -P $MT_PIDFILE \
+ -l $MT_LOGFILE -m $MT_HOME -f $MT_CFGDIR $MT_OPTIONS"
+
+case "$1" in
+ start)
+ stat_busy "Starting Mediatomb UPnP Media Server"
+
+ chown "$MT_USER:$MT_GROUP" "$MT_HOME"
+
+ if ! pidof -o %PPID /usr/bin/mediatomb &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ fi
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -z "$PID" ] && /usr/bin/mediatomb -d $MT_OPTIONS; then
+ add_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Mediatomb UPnP Media Server"
+
+ PID="$(cat "$MT_PIDFILE" 2> /dev/null)"
+
+ if [ -n "$PID" ] && kill "$PID" &> /dev/null; then
+ rm -f "$MT_PIDFILE"
+ rm_daemon mediatomb
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ restart)
+ "$0" stop
+ sleep 1
+ "$0" start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/community/medit/PKGBUILD b/community/medit/PKGBUILD
new file mode 100644
index 000000000..797667386
--- /dev/null
+++ b/community/medit/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 40816 2011-02-28 12:02:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=medit
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="A GTK text editor"
+arch=('i686' 'x86_64')
+url="http://mooedit.sourceforge.net"
+options=('!emptydirs')
+license=('GPL')
+depends=('pygtk' 'libxml2' 'pcre' 'libsm' 'python2' 'gtk2' 'gcc-libs')
+optdepends=('ctags')
+makedepends=(pkgconfig perlxml intltool gcc-objc)
+install=medit.install
+source=(http://downloads.sourceforge.net/mooedit/medit-$pkgver.tar.bz2
+ capsule.diff)
+md5sums=('2f1a73d6e5a2d180d7634ce1f98c4821'
+ 'd3386ca02ba598c73c581bf983a15f23')
+
+build() {
+ cd $srcdir/medit-$pkgver
+ export PYTHON=/usr/bin/python2
+ patch -Np1 -i $srcdir/capsule.diff
+ [ -f Makefile ] || ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/medit-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+ cd ${pkgdir}/usr/share/medit-1/language-specs
+ sed -i "s|*.sh|*.sh;PKGBUILD|" sh.lang
+
+ rm -rf $pkgdir/usr/share/mime
+ rm -rf $pkgdir/usr/share/icons/hicolor/icon-theme.cache
+}
diff --git a/community/medit/capsule.diff b/community/medit/capsule.diff
new file mode 100644
index 000000000..7ce4edab8
--- /dev/null
+++ b/community/medit/capsule.diff
@@ -0,0 +1,47 @@
+--- medit-1.0.0.orig/moo/moopython/moopython-pygtkmod.h 2010-12-22 05:11:46.000000000 +0100
++++ medit-1.0.0/moo/moopython/moopython-pygtkmod.h 2011-02-08 16:14:10.000000000 +0100
+@@ -20,7 +20,7 @@
+ G_GNUC_UNUSED static void
+ init_pygtk_mod (void)
+ {
+- PyObject *gobject, *pygtk;
++ PyObject *gobject;
+ PyObject *mdict;
+ PyObject *cobject;
+
+@@ -29,7 +29,7 @@
+
+ mdict = PyModule_GetDict (gobject);
+ cobject = PyDict_GetItemString (mdict, "_PyGObject_API");
+-
++
+ if (!cobject || !PyCObject_Check (cobject))
+ {
+ PyErr_SetString (PyExc_RuntimeError,
+@@ -38,21 +38,13 @@
+ }
+
+ _PyGObject_API = (struct _PyGObject_Functions *) PyCObject_AsVoidPtr (cobject);
+-
+- if (!(pygtk = PyImport_ImportModule("gtk._gtk")))
+- return;
+-
+- mdict = PyModule_GetDict (pygtk);
+- cobject = PyDict_GetItemString (mdict, "_PyGtk_API");
+-
+- if (!cobject || !PyCObject_Check (cobject))
+- {
+- PyErr_SetString (PyExc_RuntimeError,
+- "could not find _PyGtk_API object");
++
++ void *capsule = PyCapsule_Import("gtk._gtk._PyGtk_API", 0);
++ if (!capsule) {
+ return;
+ }
+-
+- _PyGtk_API = (struct _PyGtk_FunctionStruct*) PyCObject_AsVoidPtr (cobject);
++
++ _PyGtk_API = (struct _PyGtk_FunctionStruct*) capsule;
+ }
+
+
diff --git a/community/medit/medit.install b/community/medit/medit.install
new file mode 100644
index 000000000..b4ee8556f
--- /dev/null
+++ b/community/medit/medit.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community/mednafen/PKGBUILD b/community/mednafen/PKGBUILD
new file mode 100755
index 000000000..7a8060e07
--- /dev/null
+++ b/community/mednafen/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: kagan <juanynie@mi.madritel.es>
+pkgname=mednafen
+pkgver=0.8.D
+pkgrel=1
+pkgdesc="A command-line multi-system gaming emulator"
+url="http://mednafen.sourceforge.net/"
+license=(GPL)
+arch=('i686' 'x86_64')
+depends=('libcdio>=0.82' 'libsamplerate' 'libogg' 'libvorbis' 'sdl' 'sdl_net' 'libsndfile' 'zlib')
+makedepends=('pkgconfig' 'mesa')
+source=(http://downloads.sourceforge.net/mednafen/$pkgname-$pkgver.tar.bz2 fix_build.diff)
+md5sums=('4c3f337f80bf54d2df0f3a0f24203141'
+ '0f44ef41b0220b66579626548d044f15')
+
+build() {
+ cd $srcdir/$pkgname
+ patch -Np1 -i $srcdir/fix_build.diff || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/mednafen/fix_build.diff b/community/mednafen/fix_build.diff
new file mode 100644
index 000000000..d91a6faf4
--- /dev/null
+++ b/community/mednafen/fix_build.diff
@@ -0,0 +1,12 @@
+diff -ruN mednafen.orig//src/pcfx/soundbox.cpp mednafen/src/pcfx/soundbox.cpp
+--- mednafen.orig//src/pcfx/soundbox.cpp 2010-06-05 09:35:40.000000000 -0400
++++ mednafen/src/pcfx/soundbox.cpp 2010-06-05 09:35:55.000000000 -0400
+@@ -416,7 +416,7 @@
+ int rolloff = (int)((double)0.90 * 21477272 * 2 / 1365 / (1 << SampleFreq) ) / 2;
+ for(int ch = 0; ch < 2; ch++)
+ for(int lr = 0; lr < 2; lr++)
+- ADPCMSynth[ch][lr].treble_eq(blip_eq_t::blip_eq_t(-1000, rolloff, FSettings.SndRate));
++ ADPCMSynth[ch][lr].treble_eq(blip_eq_t(-1000, rolloff, FSettings.SndRate));
+ LSampleFreq = SampleFreq;
+ }
+ }
diff --git a/community/megaglest/PKGBUILD b/community/megaglest/PKGBUILD
new file mode 100644
index 000000000..abc4db3b9
--- /dev/null
+++ b/community/megaglest/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 38887 2011-02-02 21:51:51Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
+
+pkgname=megaglest
+pkgver=3.4.0
+pkgrel=1
+pkgdesc="Fork of Glest, a 3D real-time strategy game in a fantastic world."
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/megaglest/"
+license=('GPL2')
+depends=('curl' 'megaglest-data' 'xerces-c' 'sdl' 'libvorbis' 'openal' 'mesa' 'lua')
+makedepends=('ftjam' 'p7zip' 'wxgtk' 'cmake')
+source=("http://downloads.sourceforge.net/project/${pkgname}/current_release/${pkgname}-source-${pkgver}.tar.bz2"
+ "http://downloads.sourceforge.net/project/${pkgname}/current_release/megaglest-data-${pkgver}.7z"
+ "megaglest.png"
+ "megaglest.desktop"
+ "megaglest.sh")
+md5sums=('904846c60369f7898c7f83d506624d5a'
+ 'e46270881f1949e0876f4c39ecbf0a05'
+ '5622ce716033d9afb62a3291b47844ed'
+ '97dc7ea865efbea5daaf300207dad518'
+ 'e3d6abbe79263d2fa5edb0bcbcf8755a')
+
+build() {
+ cd ${srcdir}/${pkgname}-source-${pkgver}/
+
+ 7z x -y ${srcdir}/megaglest-data-${pkgver}.7z
+
+ [[ -d build ]] && rm -r build
+ mkdir build && cd build
+ cmake .. \
+ -DWANT_SVN_STAMP=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release # set =Debug for debugging version
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-source-${pkgver}/
+
+ # Megaglest doesn't have a nice installer. Let's package it ourselves.
+ # Damnit, upstream.
+ install -d -m 0755 "${pkgdir}"/usr/{bin,share/${pkgname}}
+ install -m 0755 "${srcdir}"/$pkgname.sh "${pkgdir}"/usr/bin/$pkgname
+ install -m 0755 mk/linux/glest.bin "${pkgdir}"/usr/share/${pkgname}/$pkgname
+ install -m 0755 mk/linux/glest_configurator "${pkgdir}"/usr/bin/glest_configurator
+ install -m 0755 mk/linux/glest_editor "${pkgdir}"/usr/bin/glest_editor
+ install -m 0644 glest.ini glestkeys.ini servers.ini "${pkgdir}"/usr/share/$pkgname
+
+ install -D -m 0644 "${srcdir}"/${pkgname}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop
+ install -D -m 0644 "${srcdir}"/${pkgname}.png "${pkgdir}"/usr/share/pixmaps/${pkgname}.png
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community/megaglest/megaglest.desktop b/community/megaglest/megaglest.desktop
new file mode 100644
index 000000000..267dbf358
--- /dev/null
+++ b/community/megaglest/megaglest.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Categories=Application;Game;
+Name=Megaglest
+Icon=megaglest
+Exec=megaglest
+Terminal=false
+Type=Application
diff --git a/community/megaglest/megaglest.png b/community/megaglest/megaglest.png
new file mode 100644
index 000000000..65e5d9862
--- /dev/null
+++ b/community/megaglest/megaglest.png
Binary files differ
diff --git a/community/megaglest/megaglest.sh b/community/megaglest/megaglest.sh
new file mode 100644
index 000000000..571a01be7
--- /dev/null
+++ b/community/megaglest/megaglest.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+ # Wrapper script for Megaglest.
+
+ MAINDIR=/usr/share/megaglest
+ BASEDIR="$HOME/.config"
+ DIR="$BASEDIR/megaglest"
+ if [ ! -d "$DIR" ]; then
+ mkdir -p $DIR
+ fi
+ cd $DIR
+ [ -f glest.ini ] || cp /usr/share/megaglest/glest.ini .
+ [ -h megaglest ] || ln -s /usr/share/megaglest/megaglest .
+ [ -f servers.ini ] || cp $MAINDIR/servers.ini .
+ [ -f glestkeys.ini ] || cp $MAINDIR/glestkeys.ini .
+ for i in data scenarios techs tilesets tutorials; do
+ [ -h $i ] || ln -s $MAINDIR/$i .
+ done
+ [ -d maps ] || mkdir maps
+ [ -d screens ] || mkdir screens
+ cd maps
+ for i in $MAINDIR/maps/*; do
+ [ -h `basename $i` ] || ln -s $i .
+ done
+ cd ..
+
+ exec ./megaglest \ No newline at end of file
diff --git a/community/mercury/PKGBUILD b/community/mercury/PKGBUILD
new file mode 100644
index 000000000..be8e30945
--- /dev/null
+++ b/community/mercury/PKGBUILD
@@ -0,0 +1,36 @@
+#$Id: PKGBUILD 2282 2009-09-14 07:35:54Z giovanni $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: DaNiMoTh <jjdanimoth@gmail.com>
+
+pkgname=mercury
+pkgver=1.9.5
+pkgrel=2
+pkgdesc="Java Based MSN client."
+license=('custom')
+arch=('i686' 'x86_64')
+url="http://www.mercury.im"
+depends=('java-runtime' 'libxss' 'libxt')
+makedepends=('rpmextract')
+source=(http://thebachman.info/public/Versions_Ubuntu/${pkgname}-messenger-${pkgver}-2.all.rpm
+ "license.txt")
+md5sums=('7d5835cf1ac7864386efe42b9cf67d6b'
+ '6ce0e815d63db6ac55a28e8d52c3f8da')
+
+build() {
+ cd "$srcdir"
+
+ rpmextract.sh ${pkgname}-messenger-${pkgver}-2.all.rpm
+
+ install -d "$pkgdir/usr/share/java/mercury"
+ cp -r usr "$pkgdir"
+ mv "$pkgdir/usr/share/mercury" "$pkgdir/usr/share/java/"
+
+ # FS#16171
+ find ${pkgdir} -type f -exec chmod -R 644 {} \;
+ find ${pkgdir} -type d -exec chmod 755 {} \;
+ chmod 755 ${pkgdir}/usr/share/java/mercury/startup/startup_linux.sh
+
+ install -D -m644 "$srcdir/license.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ rm -rf "$pkgdir/usr/bin/mercury"
+ ln -s /usr/share/java/mercury/startup/startup_linux.sh "$pkgdir/usr/bin/mercury"
+}
diff --git a/community/mercury/license.txt b/community/mercury/license.txt
new file mode 100644
index 000000000..43e416eff
--- /dev/null
+++ b/community/mercury/license.txt
@@ -0,0 +1,8 @@
+Mercury is Freeware. It is not distributed with source code since it's closed source.
+
+You are allowed to change the setting files.
+You are allowed to redistribute Mercury.
+
+http://www.mercury.to/index.php?page=Wiki&wikipage=License
+
+
diff --git a/community/metakit/PKGBUILD b/community/metakit/PKGBUILD
new file mode 100644
index 000000000..b190002c4
--- /dev/null
+++ b/community/metakit/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 27187 2010-09-18 15:58:45Z schuay $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=metakit
+pkgver=2.4.9.7
+pkgrel=4
+pkgdesc='MetaKit is an efficient database library with a small footprint'
+arch=('i686' 'x86_64')
+url='http://www.equi4.com/metakit/'
+makedepends=('tcl' 'python2')
+license=('BSD')
+options=('!libtool')
+source=("http://www.equi4.com/pub/mk/${pkgname}-${pkgver}.tar.gz")
+md5sums=('17330257376eea657827ed632ea62c9e')
+
+build() {
+ cd ${pkgname}-${pkgver}/builds
+
+ sed -i 's_"${prefix}/include/python2.5"_"${prefix}/include/python2.7"_' ../unix/configure
+ sed -i 's_"${prefix}/lib/python2.5/site-packages"_"${prefix}/lib/python2.7/site-packages"_' ../unix/configure
+
+ ../unix/configure \
+ --prefix=/usr \
+ --with-python \
+ --with-tcl=/usr/include
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}/builds
+
+ mkdir -p ${pkgdir}/usr/lib/python2.7/site-packages
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 ../license.terms ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/metamail/PKGBUILD b/community/metamail/PKGBUILD
new file mode 100644
index 000000000..9f45530ed
--- /dev/null
+++ b/community/metamail/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 21419 2010-07-16 12:02:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sekenre <sekenre at ukfsn dot org>
+# Contributor: Daenyth <Daenyth+Arch [AT] gmail [DOT] com>
+
+pkgname=metamail
+pkgver=2.7
+pkgrel=5
+pkgdesc="Used to display and process MIME messages"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/stable/mail/metamail"
+license=('custom')
+depends=('ncurses')
+options=('!libtool')
+noextract=(metamail_$pkgver-52.diff.gz)
+source=("http://ftp.de.debian.org/debian/pool/main/m/metamail/metamail_$pkgver.orig.tar.gz" \
+ "http://ftp.de.debian.org/debian/pool/main/m/metamail/metamail_$pkgver-54.diff.gz" \
+ license)
+md5sums=('c6967e9bc5d3c919764b02df24efca01'
+ '2071dc7b9c33345443ab9a619e640a69'
+ '38be502570f3ce5b5a2bafd6a876373f')
+
+build() {
+ cd $srcdir/metamail-$pkgver.orig
+
+ zcat $srcdir/metamail_$pkgver-54.diff.gz | patch -p1
+ sed -i 's|getline|xgetline|' metamail/uue.c src/metamail/uue.c
+
+ sh ./bootstrap
+ sh ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ install -D -m0644 $srcdir/license $pkgdir/usr/share/licenses/$pkgname/license
+}
diff --git a/community/metamail/license b/community/metamail/license
new file mode 100644
index 000000000..3b186faa4
--- /dev/null
+++ b/community/metamail/license
@@ -0,0 +1,37 @@
+This is the Debian GNU/Linux prepackaged version of Metamail.
+
+This package was put together by Michael Meskes <meskes@debian.org>,
+from sources obtained from:
+ ftp.bellcore.com:/pub/nsb/mm2.7.tar.Z and /pub/nsb/contrib2.7.tar.Z
+
+This package was then worked on by Herbert Xu <herbert@debian.org>.
+
+****************************************************************
+Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore)
+
+Permission to use, copy, modify, and distribute this material
+for any purpose and without fee is hereby granted, provided
+that the above copyright notice and this permission notice
+appear in all copies, and that the name of Bellcore not be
+used in advertising or publicity pertaining to this
+material without the specific, prior written permission
+of an authorized representative of Bellcore. BELLCORE
+MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY
+OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS",
+WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
+****************************************************************
+
+Most scripts are:
+
+# Conversion from C shell to Bourne shell by Z-Code Software Corp.
+# Conversion Copyright (c) 1992 Z-Code Software Corp.
+# Permission to use, copy, modify, and distribute this material
+# for any purpose and without fee is hereby granted, provided
+# that the above copyright notice and this permission notice
+# appear in all copies, and that the name of Z-Code Software not
+# be used in advertising or publicity pertaining to this
+# material without the specific, prior written permission
+# of an authorized representative of Z-Code. Z-CODE SOFTWARE
+# MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY
+# OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS",
+# WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
diff --git a/community/mezogis/ChangeLog b/community/mezogis/ChangeLog
new file mode 100644
index 000000000..dba4cf7ec
--- /dev/null
+++ b/community/mezogis/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/mezogis/PKGBUILD b/community/mezogis/PKGBUILD
new file mode 100644
index 000000000..988d38ae9
--- /dev/null
+++ b/community/mezogis/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 27071 2010-09-17 12:26:08Z schuay $
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=mezogis
+pkgver=0.1.5
+pkgrel=4
+pkgdesc="A GIS application to query and analyse spatial data"
+arch=('i686' 'x86_64')
+url="http://www.mezogis.org"
+license=('GPL')
+depends=('pygtk' 'python-geotypes' 'postgis>=1.4')
+source=(http://www.mezogis.org/files/mezogis-$pkgver.tar.gz)
+md5sums=('1f886b849109a1a1bd3e165353b82368')
+
+build() {
+ cd $srcdir/mezogis-$pkgver
+
+ # 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
+
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/mfs/PKGBUILD b/community/mfs/PKGBUILD
new file mode 100644
index 000000000..ce0be25e3
--- /dev/null
+++ b/community/mfs/PKGBUILD
@@ -0,0 +1,98 @@
+# Maintainer: Thomas S Hatch <thatch45@gmail.com>
+pkgbase=mfs
+pkgname=('mfs-client' 'mfs-chunkserver' 'mfs-master')
+pkgver=1.6.20
+pkgrel=8
+pkgdesc="MooseFS, fault tolerant, network distributed file system"
+license=("GPL3")
+arch=('i686' 'x86_64')
+options=('!libtool')
+depends=('zlib' 'fuse' 'python2')
+url="http://www.moosefs.com/"
+source=("http://www.moosefs.org/tl_files/mfscode/mfs-$pkgver.tar.gz"
+ "mfsmaster"
+ "mfschunkserver"
+ "mfsmetalogger"
+ "mfscgiserv")
+md5sums=('c57bdb9d7d41eec57c2bee9a1ff872c2'
+ '5504cab151a1658489e5ece7ea9204c7'
+ '69c7e2d2bcaba94fecb4120272e7caf4'
+ '7e3da2f8015d54a202de99e52c88358c'
+ 'babe045a94bf8bfaea602fe515a860b0')
+
+build() {
+ cd "$srcdir"
+
+ # Build the client
+ cp -r $pkgbase-$pkgver $pkgbase-client
+ cd $pkgbase-client
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ --disable-mfschunkserver \
+ --disable-mfsmaster \
+ --disable-mfscgi \
+ --disable-mfscgiserv
+ make
+
+ cd ..
+
+ # Build the chunkserver
+ cp -r $pkgbase-$pkgver $pkgbase-chunk
+ cd $pkgbase-chunk
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ --disable-mfsmaster \
+ --disable-mfsmount \
+ --disable-mfscgi \
+ --disable-mfscgiserv
+ make
+
+ cd ..
+
+ # Build the Master
+ cp -r $pkgbase-$pkgver $pkgbase-master
+ cd $pkgbase-master
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ --disable-mfschunkserver \
+ --disable-mfsmount
+ make
+}
+
+package_mfs-client() {
+ depends=('zlib' 'fuse')
+ cd "$srcdir/$pkgbase-client"
+ make DESTDIR="$pkgdir" install
+ rm -rf $pkgdir/usr/share/man/man7
+}
+
+package_mfs-chunkserver() {
+ depends=('zlib')
+ cd "$srcdir/$pkgbase-chunk"
+ make DESTDIR="$pkgdir" install
+ rm -rf $pkgdir/usr/share/man/man7
+ install -m 755 -D $srcdir/mfschunkserver $pkgdir/etc/rc.d/mfschunkserver
+}
+
+package_mfs-master() {
+ depends=('zlib' 'python2')
+ cd "$srcdir/$pkgbase-master"
+ make DESTDIR="$pkgdir" install
+ install -D -m0644 README $pkgdir/usr/share/doc/$pkgbase/README
+ install -D -m0644 INSTALL $pkgdir/usr/share/doc/$pkgbase/INSTALL
+ install -D -m0644 NEWS $pkgdir/usr/share/doc/$pkgbase/NEWS
+ install -D -m0644 UPGRADE $pkgdir/usr/share/doc/$pkgbase/UPGRADE
+ install -m 755 -D $srcdir/mfsmaster $pkgdir/etc/rc.d/mfsmaster
+ install -m 755 -D $srcdir/mfsmetalogger $pkgdir/etc/rc.d/mfsmetalogger
+ install -m 755 -D $srcdir/mfscgiserv $pkgdir/etc/rc.d/mfscgiserv
+ find "$pkgdir" -name 'mfscgiserv' -print0 |xargs -0 \
+ sed -i -e 's,^#!/usr/bin/env python$,#!/usr/bin/env python2,' \
+ -e 's,^#!/usr/bin/python$,#!/usr/bin/python2,'
+}
+
diff --git a/community/mfs/mfscgiserv b/community/mfs/mfscgiserv
new file mode 100755
index 000000000..ea9f00145
--- /dev/null
+++ b/community/mfs/mfscgiserv
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(ps aux | grep -v grep | grep /usr/sbin/mfscgiserv | awk '{print $2}')
+case "$1" in
+ start)
+ stat_busy "Starting MooseFS CGI Web Frontend Daemon"
+ [ -z "$PID" ] && /usr/sbin/mfscgiserv &>/dev/null
+ if [ $? = 0 ]; then
+ add_daemon mfscgiserv
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MooseFS CGI Web Frontend Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mfscgiserv
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/mfs/mfschunkserver b/community/mfs/mfschunkserver
new file mode 100755
index 000000000..b9567b703
--- /dev/null
+++ b/community/mfs/mfschunkserver
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/mfschunkserver`
+case "$1" in
+ start)
+ stat_busy "Starting MooseFS Chunkserver Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/mfschunkserver start
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/mfschunkserver`
+ echo $PID > /var/run/mfsmetalogger.pid
+ add_daemon mfschunkserver
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MooseFS Chunkserver Daemon"
+ [ ! -z "$PID" ] && /usr/sbin/mfschunkserver stop &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mfschunkserver
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/mfs/mfsmaster b/community/mfs/mfsmaster
new file mode 100755
index 000000000..ee1c74c5a
--- /dev/null
+++ b/community/mfs/mfsmaster
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID -x /usr/sbin/mfsmaster`
+case "$1" in
+ start)
+ stat_busy "Starting MooseFS Master Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/mfsmaster start
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID -x /usr/sbin/mfsmaster`
+ echo $PID > /var/run/mfsmaster.pid
+ add_daemon mfsmaster
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MooseFS Master Daemon"
+ [ ! -z "$PID" ] && /usr/sbin/mfsmaster stop &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mfsmaster
+ rm /var/run/mfsmaster.pid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/mfs/mfsmetalogger b/community/mfs/mfsmetalogger
new file mode 100755
index 000000000..afa451929
--- /dev/null
+++ b/community/mfs/mfsmetalogger
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/mfsmetalogger`
+case "$1" in
+ start)
+ stat_busy "Starting MooseFS Metalogger Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/mfsmetalogger start
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/mfsmetalogger`
+ echo $PID > /var/run/mfsmetalogger.pid
+ add_daemon mfsmetalogger
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MooseFS Metalogger Daemon"
+ [ ! -z "$PID" ] && /usr/sbin/mfsmetalogger stop &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mfsmetalogger
+ rm /var/run/mfsmetalogger.pid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/mftrace/PKGBUILD b/community/mftrace/PKGBUILD
new file mode 100644
index 000000000..6d03e7608
--- /dev/null
+++ b/community/mftrace/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 43118 2011-03-24 07:48:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=mftrace
+pkgver=1.2.17
+pkgrel=1
+pkgdesc="Traces TeX bitmap fonts into PFA, PFB, or TTF"
+arch=('i686' 'x86_64')
+url="http://lilypond.org/mftrace/"
+license=("GPL")
+depends=('python2' 'potrace' 't1utils')
+source=(http://lilypond.org/download/sources/mftrace/mftrace-$pkgver.tar.gz)
+md5sums=('1a40b28e94594d215d5c4401b5ac76cb')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/mg/PKGBUILD b/community/mg/PKGBUILD
new file mode 100644
index 000000000..cdb1b05e2
--- /dev/null
+++ b/community/mg/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 39953 2011-02-18 23:29:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Hannes Rist <hrist@phreeknet.org>
+
+pkgname=mg
+pkgver=20110120
+pkgrel=1
+pkgdesc="mg is Micro GNU/emacs, this is a portable version of the mg maintained by the OpenBSD team."
+arch=('i686' 'x86_64')
+url="http://homepage.boetes.org/software/mg/"
+depends=('ncurses')
+license=('custom')
+options=(!libtool)
+source=(http://homepage.boetes.org/software/mg/mg-$pkgver.tar.gz
+ README)
+md5sums=('f2fa8016a491aa2a9d4c5698c593f31b'
+ '8cc5195ad4fabcf7c6782764f9617748')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i 's|KEYMAP\t\*curmap;|KEYMAP *curmap = NULL;|' extend.c
+
+ ./configure
+ make prefix=/usr
+
+ mkdir -p $pkgdir/usr/bin
+ make install INSTALL=/bin/install prefix=$pkgdir/usr
+
+ mkdir -p $pkgdir/usr/share/
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+ install -D -m0644 $srcdir/README $pkgdir/usr/share/licenses/$pkgname/README
+}
diff --git a/community/mg/README b/community/mg/README
new file mode 100644
index 000000000..cf2d78917
--- /dev/null
+++ b/community/mg/README
@@ -0,0 +1,74 @@
+[This is an edited version of the original mg README, updated slightly to
+reflect changes in the last 20 years.]
+
+
+Mg (mg) is a Public Domain EMACS style editor. It is "broadly"
+compatible with GNU Emacs, the latest creation of Richard M.
+Stallman, Chief GNUisance and inventor of Emacs. GNU Emacs (and other
+portions of GNU as they are released) are essentially free, (there are
+handling charges for obtaining it) and so is Mg. You may never have
+to learn another editor. (But probably will, at least long enough to
+port Mg...) Mg was formerly named MicroGnuEmacs, the name change was
+done at the request of Richard Stallman.
+
+Mg is not associated with the GNU project, and most of it does not
+have the copyright restrictions present in GNU Emacs. (However, some
+of the system dependent modules and the regular expression module do
+have copyright notices. Look at the source code for exact
+copyright restrictions.) The Mg authors individually may or may not
+agree with the opinions expressed by Richard Stallman in "The GNU
+Manifesto".
+
+This program is intended to be a small, fast, and portable editor for
+people who can't (or don't want to) run real Emacs for one reason
+or another. It is compatible with GNU because there shouldn't be
+any reason to learn more than one Emacs flavor.
+
+
+Beyond the work of Dave Conroy, author of the original public domain
+v30, the current version contains the work of:
+
+ blarson@ecla.usc.edu Bob Larson
+ mic@emx.utexas.edu Mic Kaczmarczik
+ mwm@violet.berkeley.edu Mike Meyer
+ sandra@cs.utah.edu Sandra Loosemore
+ mp1u+@andrew.cmu.edu Michael Portuesi
+ RCKG01M@CALSTATE.BITNET Stephen Walton
+ hakanson@mist.cs.orst.edu Marion Hakanson
+
+People who have worked on previous versions of Mg:
+
+ rtech!daveb@sun.com Dave Brower
+
+Currently maintained in the OpenBSD src tree, with contributions from
+many others.
+
+----------------------------------------------------------------------
+
+Known limitations:
+
+Recursive bindings may cause help and key rebinding code to go into
+an infinite loop, aborting with a stack overflow.
+
+Overwrite mode does not work in macros. (Characters are inserted
+rather than overwriting.)
+
+Dired mode has some problems: Rename does not update the buffer.
+Doing a dired again will update the buffer (whether it needs it or
+not) and will lose any marks for deletion. .. and . are not
+recognized as special cases.
+
+On systems with 16 bit integers, the kill buffer cannot exceed 32767
+bytes.
+
+
+
+New implementation oddities:
+
+insert and define-key are new commands corresponding to the mocklisp
+functions in Gnu Emacs. (Mg does not have non-command functions.)
+(Mg's insert will only insert one string.)
+
+The display wrap code does not work at all like that of GNU emacs.
+
+
diff --git a/community/mget/PKGBUILD b/community/mget/PKGBUILD
new file mode 100644
index 000000000..fb960d5cd
--- /dev/null
+++ b/community/mget/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 4928 2009-11-02 21:45:22Z ibiru $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=mget
+pkgver=1.50
+pkgrel=2
+pkgdesc="Simple script allowing to download embedded movies from various video hosting services"
+arch=('i686' 'x86_64')
+url="http://movie-get.org/"
+license=('GPL2')
+depends=('ruby' 'wget')
+optdepends=('ffmpeg: for converting movies'
+ 'mplayer: for downloading mms streams')
+source=(http://mget.googlecode.com/files/mget-$pkgver.tar.gz fix-warnings.patch)
+md5sums=('d29bbef2f4536f8697ccabe782563624'
+ '4dcb1eafc95a7893c9b0be0a4232b282')
+
+build() {
+ cd $srcdir/mget-$pkgver
+ patch -Np1 -i $srcdir/fix-warnings.patch || return 1
+
+ install -D -m755 mget.rb $pkgdir/usr/bin/mget
+ mkdir -p $pkgdir/usr/lib/ruby/1.9.1/mget
+ install -m644 lib/mget/*.rb $pkgdir/usr/lib/ruby/1.9.1/mget
+ install -D -m644 docs/mget.1 $pkgdir/usr/share/man/man1/mget.1
+}
diff --git a/community/mget/fix-warnings.patch b/community/mget/fix-warnings.patch
new file mode 100644
index 000000000..042f5e5b5
--- /dev/null
+++ b/community/mget/fix-warnings.patch
@@ -0,0 +1,40 @@
+diff -Nur mget-1.50.old/lib/mget/error_handling.rb mget-1.50/lib/mget/error_handling.rb
+--- mget-1.50.old/lib/mget/error_handling.rb 2008-06-12 19:57:11.000000000 +0300
++++ mget-1.50/lib/mget/error_handling.rb 2009-11-02 23:39:47.587497291 +0200
+@@ -48,7 +48,7 @@
+ def setTrace(string)
+ if trace?
+ @log.info(string)
+- end
++ end
+ end
+
+ def logDir()
+@@ -63,4 +63,4 @@
+ Dir.mkdir(path) unless File.exists?(path) && File.directory?(path)
+ return path
+ end
+-end
+\ No newline at end of file
++end
+diff -Nur mget-1.50.old/lib/mget/mget.rb mget-1.50/lib/mget/mget.rb
+--- mget-1.50.old/lib/mget/mget.rb 2008-06-12 19:57:11.000000000 +0300
++++ mget-1.50/lib/mget/mget.rb 2009-11-02 23:36:38.317512845 +0200
+@@ -111,7 +111,7 @@
+ else
+ @target = target
+ end
+- end
++ end
+ end
+
+ def download=(flag)
+@@ -158,7 +158,7 @@
+ self.input=fileName # force self check again, but without validation
+ end
+ return
+- end
++ end
+ setTrace("File.exists?="+fileName)
+ if File.exists? fileName
+ if File.zero? fileName
diff --git a/community/mhwaveedit/PKGBUILD b/community/mhwaveedit/PKGBUILD
new file mode 100644
index 000000000..83a9a86f2
--- /dev/null
+++ b/community/mhwaveedit/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id $
+# Maintainer: Loui Chang <louipc.ist@gmail.com>
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=mhwaveedit
+pkgver=1.4.20
+pkgrel=2
+pkgdesc="A graphical program for editing, playing and recording sound files."
+arch=('i686' 'x86_64')
+url="http://gna.org/projects/mhwaveedit"
+license=('GPL')
+depends=('libsamplerate' 'gtk2' 'jack')
+source=(http://download.gna.org/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('979ac5776a57268aed0afa74d50c70a2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i "s|Icon=mhwaveedit.xpm|Icon=mhwaveedit|" share/applications/mhwaveedit.desktop
+ ./configure --without-check-casts --without-arts --without-esound \
+ --without-portaudio --without-sun --without-sdl --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/microblog-purple/PKGBUILD b/community/microblog-purple/PKGBUILD
new file mode 100644
index 000000000..4e933b3d7
--- /dev/null
+++ b/community/microblog-purple/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 18639 2010-06-10 11:06:23Z ibiru $
+# Maintainer: Biru Ionut <biru.ionut at gmail.com>
+pkgname=microblog-purple
+pkgver=0.3.0
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='Libpurple plug-in supporting microblog services like Twitter'
+url='http://code.google.com/p/microblog-purple/'
+license=('GPL3')
+depends=('pidgin')
+source=(http://microblog-purple.googlecode.com/files/mbpurple-$pkgver.tar.gz)
+md5sums=('75def8fb2acf17f9fc25f27d7583810d')
+
+build(){
+ cd ${srcdir}/mbpurple-${pkgver}
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+}
diff --git a/community/mime-editor/PKGBUILD b/community/mime-editor/PKGBUILD
new file mode 100644
index 000000000..ca450686e
--- /dev/null
+++ b/community/mime-editor/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 27254 2010-09-18 22:01:47Z schuay $
+# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.dot.org>
+
+pkgname=mime-editor
+pkgver=0.6
+pkgrel=2
+pkgdesc='Shared-mime info database editor, useful for changing MIME-type info in rox applications'
+arch=('i686' 'x86_64')
+url='http://rox.sourceforge.net/mime_editor.html'
+license=('GPL2')
+depends=('pygtk' 'rox-lib' 'shared-mime-info')
+groups=('rox-desktop')
+source=("http://downloads.sourceforge.net/project/rox/MIME-Editor/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
+ 'mime-editor')
+md5sums=('bfa250d074b6a712c1fce936a5fcaae4'
+ '9438b0a8d591abd03099ac5961540d4a')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print) MIME-Editor/AppRun; do
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_^#!.*/usr/bin/env.*python_#!/usr/bin/env python2_' $file
+ done
+
+ mkdir -p ${pkgdir}/usr/share
+
+ cp -rp MIME-Editor ${pkgdir}/usr/share
+
+ # create a shellscript which is known in the PATH
+ install -D ${srcdir}/$pkgname ${pkgdir}/usr/bin/$pkgname
+}
diff --git a/community/mime-editor/mime-editor b/community/mime-editor/mime-editor
new file mode 100644
index 000000000..17e1acfca
--- /dev/null
+++ b/community/mime-editor/mime-editor
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/share/MIME-Editor/AppRun "$@"
diff --git a/community/mimetex/PKGBUILD b/community/mimetex/PKGBUILD
new file mode 100644
index 000000000..6a1b71b20
--- /dev/null
+++ b/community/mimetex/PKGBUILD
@@ -0,0 +1,17 @@
+pkgname=mimetex
+pkgver=1.70
+pkgrel=2
+pkgdesc="tex to gif converter"
+arch=(i686 x86_64)
+url="http://www.forkosh.com/mimetex.html"
+license=('GPL')
+depends=(glibc)
+source=(http://arch.pp.ru/~sergej/dl/mimetex.zip)
+md5sums=('c73b1dde70526edb137daaf72189024b')
+
+build() {
+ cd $srcdir
+
+ gcc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi && \
+ install -D -m0755 mimetex.cgi $pkgdir/usr/bin/mimetex.cgi
+}
diff --git a/community/minbif/PKGBUILD b/community/minbif/PKGBUILD
new file mode 100644
index 000000000..091830228
--- /dev/null
+++ b/community/minbif/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 44211 2011-04-04 13:30:46Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: AkiraYB <brunoyb!yahoo,com,br>
+
+pkgname=minbif
+pkgver=1.0.4
+pkgrel=2
+pkgdesc='An IRC gateway to IM networks that uses libpurple.'
+arch=('i686' 'x86_64')
+url='http://minbif.im/'
+license=('GPL2')
+depends=('gnutls' 'libcaca' 'libpurple')
+makedepends=('cmake')
+optdepends=('xinetd: to run minbif through xinetd')
+backup=('etc/minbif/minbif.conf'
+ 'etc/minbif/minbif.motd')
+install='minbif.install'
+source=("http://minbif.im/attachments/download/90/${pkgname}-${pkgver}.tar.gz"
+ 'minbif')
+md5sums=('25069fb6015dfb9ddc24ef2e09e74da3'
+ '307a6fab42bcaeed11a55b5fb4589778')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr CONF_PREFIX=/etc/minbif ENABLE_MINBIF=ON ENABLE_IMLIB=ON ENABLE_CACA=ON \
+ ENABLE_VIDEO=ON ENABLE_PLUGIN=OFF ENABLE_PAM=ON ENABLE_TLS=ON DEBUG=OFF
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -dm0755 "${pkgdir}/var/lib"
+ install -dm0770 -o67 -g67 "${pkgdir}/var/lib/minbif"
+ install -dm0770 -o67 -g67 "${pkgdir}/var/lib/minbif/users"
+ install -Dm0755 "${srcdir}/minbif" "${pkgdir}/etc/rc.d/minbif"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/minbif/minbif b/community/minbif/minbif
new file mode 100644
index 000000000..47888d169
--- /dev/null
+++ b/community/minbif/minbif
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/minbif`
+case "$1" in
+ start)
+ stat_busy "Starting minbif daemon"
+ if [ -z "$PID" ]; then
+ if [ ! -d /var/run/minbif ]; then
+ mkdir -p /var/run/minbif && chown minbif:minbif /var/run/minbif
+ fi
+ [ -f /var/run/minbif/minbif.pid ] && rm -f /var/run/minbif/minbif.pid
+ CMD='/usr/bin/minbif --pidfile /var/run/minbif/minbif.pid \
+ /etc/minbif/minbif.conf'
+ su -s /bin/sh -c "$CMD" minbif
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon minbif
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping minbif daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/minbif/minbif.pid
+ rm_daemon minbif
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/minbif/minbif.install b/community/minbif/minbif.install
new file mode 100644
index 000000000..264763407
--- /dev/null
+++ b/community/minbif/minbif.install
@@ -0,0 +1,18 @@
+post_install() {
+ grep -qs ^minbif: /etc/group || groupadd -g 67 minbif
+ grep -qs ^minbif: /etc/passwd || useradd -u 67 -g minbif \
+ -d /var/lib/minbif -s /bin/false minbif
+
+ chown -R minbif:minbif /var/lib/minbif
+ chmod 0770 /var/lib/minbif
+ chmod 0770 /var/lib/minbif/users
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ grep -qs ^minbif: /etc/passwd && userdel minbif
+ grep -qs ^minbif: /etc/group && groupdel minbif
+}
diff --git a/community/mingw32-binutils/PKGBUILD b/community/mingw32-binutils/PKGBUILD
new file mode 100644
index 000000000..2ead06c5e
--- /dev/null
+++ b/community/mingw32-binutils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 36142 2010-12-27 16:21:38Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ondrej Jirman <megous@megous.com>
+# Contributor: mosra <mosra@centrum.cz>
+
+pkgname=mingw32-binutils
+pkgver=2.21
+pkgrel=1
+arch=(i686 x86_64)
+url="https://sourceforge.net/projects/mingw/files/MinGW/BaseSystem/GNU-Binutils/"
+pkgdesc="A set of programs to assemble and manipulate binary and object files (mingw)"
+depends=('glibc' 'zlib')
+license=(GPL)
+source=(https://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GNU-Binutils/binutils-$pkgver/binutils-$pkgver-2-mingw32-src.tar.lzma)
+md5sums=('f75122b3d253cc9054dc82d90c10455a')
+
+build() {
+ tar --lzma -xf binutils-$pkgver-2-mingw32-src.tar.lzma
+ cd $srcdir/binutils-$pkgver
+ ./configure \
+ --target=i486-mingw32 \
+ --host=$CHOST \
+ --build=$CHOST \
+ --prefix=/usr \
+ --disable-nls \
+ --enable-shared
+ make
+ make install DESTDIR=$pkgdir
+ rm -rf $pkgdir/usr/lib
+ rm -rf $pkgdir/usr/share/{info,man}
+}
diff --git a/community/mingw32-gcc-base/PKGBUILD b/community/mingw32-gcc-base/PKGBUILD
new file mode 100644
index 000000000..43ef4c491
--- /dev/null
+++ b/community/mingw32-gcc-base/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 23584 2010-08-13 11:57:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ondrej Jirman <megous@megous.com>
+
+pkgname=mingw32-gcc-base
+pkgver=4.5.0
+_w32apiver=3.14
+_runtimever=3.18
+pkgrel=3
+arch=(i686 x86_64)
+pkgdesc="A C cross-compiler for building Windows executables on Linux"
+depends=(mingw32-binutils)
+makedepends=(p7zip mingw32-runtime mingw32-w32api)
+conflicts=(mingw32-gcc)
+options=(!strip force)
+license=(GPL LGPL)
+url="http://mingw.sf.net"
+source=(gcc-$pkgver-1-mingw32-src.tar.xz::http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-$pkgver-1/gcc-$pkgver-1-mingw32-src.tar.lzma
+ http://switch.dl.sf.net/sourceforge/mingw/w32api-${_w32apiver}-mingw32-src.tar.gz
+ http://switch.dl.sf.net/sourceforge/mingw/mingwrt-${_runtimever}-mingw32-src.tar.gz)
+md5sums=('f279430018dc379b8184c0a18b280298'
+ 'c31baedaf2a8d38874e056a112a4fbc8'
+ '34b54cb3379f871f0dcd5c20b69b0350')
+
+build()
+{
+ if [ $NOEXTRACT -ne 1 ]; then
+ # prepare headers
+ mkdir -p $srcdir/mingw/include/
+ cp -r $srcdir/w32api-${_w32apiver}-mingw32/include/* \
+ $srcdir/mingwrt-${_runtimever}-mingw32/include/* \
+ $srcdir/mingw/include/
+
+ unset CFLAGS CXXFLAGS
+
+ tar xJf gcc-$pkgver-1-mingw32-src.tar.xz
+ tar xjf gcc-$pkgver.tar.bz2
+
+ mkdir -p $srcdir/build
+ cd $srcdir/build
+
+ chmod ugo+x $srcdir/gcc-$pkgver/configure
+ chmod ugo+x $srcdir/gcc-$pkgver/move-if-change
+
+ $srcdir/gcc-$pkgver/configure \
+ --target=i486-mingw32 \
+ --host=$CHOST \
+ --build=$CHOST \
+ --prefix=/usr \
+ --enable-languages=c \
+ --enable-sjlj-exceptions \
+ --enable-hash-synchronization \
+ --disable-nls \
+ --disable-shared \
+ --disable-libssp \
+ --disable-libgomp \
+ --with-build-sysroot=$srcdir \
+ --with-headers=$srcdir/include \
+ || return 1
+ else
+ cd $srcdir/build
+ fi
+
+ make || return 1
+ make install DESTDIR=$pkgdir || return 1
+
+ cd $pkgdir
+ rm -rf usr/bin/i486-mingw32-{gcov,gccbug,gcc-*} \
+ usr/{include,lib/libiberty.a} usr/i486-mingw32 \
+ usr/share/{info,man} usr/i486-mingw32
+ strip usr/bin/*
+ strip usr/libexec/gcc/i486-mingw32/$pkgver/{cc1*,collect2}
+ i486-mingw32-strip -g usr/lib/gcc/i486-mingw32/$pkgver/*.a
+}
diff --git a/community/mingw32-gcc/PKGBUILD b/community/mingw32-gcc/PKGBUILD
new file mode 100644
index 000000000..c21c04680
--- /dev/null
+++ b/community/mingw32-gcc/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 39743 2011-02-15 21:13:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ondrej Jirman <megous@megous.com>
+
+pkgname=mingw32-gcc
+pkgver=4.5.2
+pkgrel=2
+arch=(i686 x86_64)
+pkgdesc="A C and C++ cross-compilers for building Windows executables on Linux"
+depends=(mingw32-runtime mingw32-binutils mingw32-w32api libmpc elfutils cloog-ppl gmp)
+replaces=(mingw32-gcc-base)
+provides=(mingw32-gcc-base)
+options=(!strip force)
+url="http://sourceforge.net/projects/mingw/files/MinGW/BaseSystem/GCC/Version4/"
+license=(GPL LGPL)
+source=(gcc-$pkgver-1-mingw32-src.tar.xz::http://downloads.sourceforge.net/project/mingw/MinGW/BaseSystem/GCC/Version4/gcc-$pkgver-1/gcc-$pkgver-1-mingw32-src.tar.lzma)
+md5sums=('6df4174d78285ec58910f86217b8acb1')
+
+build()
+{
+ [ $NOEXTRACT -eq 1 ] || tar xJf gcc-$pkgver-1-mingw32-src.tar.xz
+ [ $NOEXTRACT -eq 1 ] || tar xjf gcc-$pkgver.tar.bz2
+
+ mkdir -p $srcdir/build
+ cd $srcdir/build
+
+ unset CFLAGS CXXFLAGS
+
+ chmod ugo+x $srcdir/gcc-$pkgver/configure
+ chmod ugo+x $srcdir/gcc-$pkgver/move-if-change
+
+ [ $NOEXTRACT -eq 1 ] || $srcdir/gcc-$pkgver/configure \
+ --target=i486-mingw32 \
+ --host=$CHOST \
+ --build=$CHOST \
+ --prefix=/usr \
+ --enable-languages=c,c++ \
+ --enable-shared \
+ --enable-sjlj-exceptions \
+ --enable-hash-synchronization \
+ --disable-nls \
+ --disable-libssp \
+
+ make
+ make install DESTDIR=$pkgdir
+
+ make -j1 -C i486-mingw32/libgcc DESTDIR=${pkgdir} libgcc_eh.a install
+ make -j1 -C i486-mingw32/libstdc++-v3 DESTDIR=${pkgdir} install
+
+ mkdir -p $pkgdir/usr/i486-mingw32/bin/
+ mv $pkgdir/usr/bin/*.dll $pkgdir/*.dll $pkgdir/usr/i486-mingw32/bin/
+
+ cd $pkgdir
+ rm -rf usr/bin/i486-mingw32-{gcov,gccbug,gcc-*} \
+ usr/{include,lib/libiberty.a} \
+ usr/share/{info,man} \
+ usr/share/gcc-$pkgver/python
+
+ strip usr/bin/*
+ strip usr/libexec/gcc/i486-mingw32/$pkgver/{cc1*,collect2}
+ i486-mingw32-strip -g usr/lib/gcc/i486-mingw32/$pkgver/*.a
+}
diff --git a/community/mingw32-runtime/PKGBUILD b/community/mingw32-runtime/PKGBUILD
new file mode 100644
index 000000000..43ae147b4
--- /dev/null
+++ b/community/mingw32-runtime/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 39755 2011-02-15 23:16:01Z svenstaro $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Ondrej Jirman <megous@megous.com>
+
+pkgname=mingw32-runtime
+pkgver=3.18
+pkgrel=3
+arch=(i686 x86_64)
+pkgdesc="mingw32 run-time library"
+makedepends=(mingw32-w32api mingw32-gcc)
+options=(!strip)
+license=(LGPL)
+url="http://www.mingw.org/"
+source=(http://downloads.sourceforge.net/mingw/mingwrt-$pkgver-mingw32-src.tar.gz)
+md5sums=('34b54cb3379f871f0dcd5c20b69b0350')
+
+build()
+{
+ cd $srcdir/mingwrt-$pkgver-mingw32
+
+ sed -i "s%\r%%g" `find . -type f`
+ sed -i -e "s%^W32API_INCLUDE=.*%W32API_INCLUDE=-I/usr/i486-mingw32/include%" `find -type f -name 'configure'`
+
+ export CFLAGS="-mms-bitfields"
+
+ ./configure \
+ --prefix=/usr/i486-mingw32 \
+ --target=i486-mingw32 \
+ --host=i486-mingw32 \
+ --build=$CHOST
+
+ make
+ mkdir -p $pkgdir/usr/i486-mingw32/bin
+ make install prefix=$pkgdir/usr/i486-mingw32
+
+ cd $pkgdir
+ rm -rf usr/i486-mingw32/{doc,man}
+ find . -name '*.a' | xargs -rtl1 i486-mingw32-strip -g
+}
diff --git a/community/minidlna/PKGBUILD b/community/minidlna/PKGBUILD
new file mode 100644
index 000000000..3df7e5720
--- /dev/null
+++ b/community/minidlna/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 43934 2011-03-31 20:13:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer:Biginoz < biginoz AT free point fr>
+# Contributor: Ignacio Galmarino <igalmarino@gmail.com>
+# Contributor: Matthias Sobczyk <matthias.sobczyk@googlemail.com>
+
+pkgname=minidlna
+pkgver=1.0.19
+pkgrel=2
+pkgdesc="A DLNA/UPnP-AV Media server (aka ReadyDLNA)"
+arch=('i686' 'x86_64')
+url="http://minidlna.sourceforge.net"
+license=('GPL')
+depends=('libexif' 'libjpeg' 'libid3tag' 'flac' 'libvorbis' 'ffmpeg' 'sqlite3')
+conflicts=('minidlna-cvs')
+backup=('etc/minidlna.conf')
+source=(http://downloads.sourceforge.net/minidlna/minidlna_${pkgver}_src.tar.gz
+ minidlna.rc)
+md5sums=('8bb5f2c0abc009e16039d7deecf09cf6'
+ '80c423f003894ad15d7de41f3ed342c0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ DESTDIR=$pkgdir make install
+ install -D -m755 ${srcdir}/minidlna.rc ${pkgdir}/etc/rc.d/minidlna
+}
diff --git a/community/minidlna/minidlna.rc b/community/minidlna/minidlna.rc
new file mode 100755
index 000000000..e4ca0969f
--- /dev/null
+++ b/community/minidlna/minidlna.rc
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/minidlna.conf
+
+PID=`pidof -o %PPID /usr/sbin/minidlna`
+
+case "$1" in
+ start)
+ stat_busy "Starting minidlna"
+ [ -z "$PID" ] && /usr/sbin/minidlna
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon minidlna
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping minidlna"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon minidlna
+ stat_done
+ fi
+ ;;
+ clean)
+ $0 stop
+ sleep 1
+ stat_busy "Cleaning minidlna cache"
+ [ -z $db_dir ] || rm -r $db_dir/*
+ stat_done
+ sleep 1
+ $0 start
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|clean}"
+esac
+exit 0
diff --git a/community/miredo/PKGBUILD b/community/miredo/PKGBUILD
new file mode 100644
index 000000000..f69a94afa
--- /dev/null
+++ b/community/miredo/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 31503 2010-11-01 10:29:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=miredo
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="Teredo client and server."
+arch=('i686' 'x86_64')
+url="http://www.remlab.net/miredo/"
+license=('GPL')
+depends=(judy iproute2)
+backup=('etc/miredo/miredo.conf' 'etc/miredo/miredo-server.conf' 'etc/miredo/isatapd.conf')
+source=(http://www.remlab.net/files/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ isatapd.rc.d
+ miredo.install
+ miredo.rc.d
+ miredo-server.rc.d)
+md5sums=('6ba484ad5e331514a8a3452da2b144e7'
+ '51ab6d091192605ee9206944869cb2ab'
+ 'd1b655d7a851cdb46c91c3418ed1962f'
+ 'c5a9be5c3175fecec387f1710bfd2788'
+ '319aba1ae06349b76cb25fda0dba60a9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-Judy
+ make
+ make DESTDIR="$pkgdir" install
+
+ install -D -m755 $startdir/miredo.rc.d $pkgdir/etc/rc.d/miredo
+ install -D -m755 $startdir/miredo-server.rc.d $pkgdir/etc/rc.d/miredo-server
+ install -D -m755 $startdir/isatapd.rc.d $pkgdir/etc/rc.d/isatapd
+ sed -i 's#/sbin/ip#/usr/sbin/ip#' $pkgdir/etc/miredo/client-hook
+}
diff --git a/community/miredo/isatapd.rc.d b/community/miredo/isatapd.rc.d
new file mode 100644
index 000000000..fa7bbd708
--- /dev/null
+++ b/community/miredo/isatapd.rc.d
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/isatapd`
+case "$1" in
+ start)
+ stat_busy "Starting userspace ISATAP client"
+ if [ -z "$PID" ]; then
+ /usr/sbin/isatapd
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon isatapd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping userspace ISATAP client"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon isatapd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/miredo/miredo-server.rc.d b/community/miredo/miredo-server.rc.d
new file mode 100644
index 000000000..d05513b23
--- /dev/null
+++ b/community/miredo/miredo-server.rc.d
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/miredo-server`
+case "$1" in
+ start)
+ stat_busy "Starting teredo protocol server"
+ if [ -z "$PID" ]; then
+ /usr/sbin/miredo-server
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon miredo-server
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping teredo protocol server"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon miredo-server
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/miredo/miredo.install b/community/miredo/miredo.install
new file mode 100644
index 000000000..338459fb3
--- /dev/null
+++ b/community/miredo/miredo.install
@@ -0,0 +1,8 @@
+post_remove() {
+
+ # clean up just in case
+ rm -f /var/run/miredo.pid
+ rm -f /var/run/miredo-server.pid
+ rm -f /var/run/isatapd.pid
+}
+
diff --git a/community/miredo/miredo.rc.d b/community/miredo/miredo.rc.d
new file mode 100644
index 000000000..500374b12
--- /dev/null
+++ b/community/miredo/miredo.rc.d
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/miredo`
+case "$1" in
+ start)
+ stat_busy "Starting teredo protocol client"
+ if [ -z "$PID" ]; then
+ /usr/sbin/miredo
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon miredo
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping teredo protocol client"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon miredo
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/mixxx/PKGBUILD b/community/mixxx/PKGBUILD
new file mode 100644
index 000000000..3b0bc01ec
--- /dev/null
+++ b/community/mixxx/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 40367 2011-02-23 14:19:01Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Ali H. Caliskan <ali.h.caliskan AT gmail DOT com>
+# Contributor: Ryan Coyner <rcoyner@gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=mixxx
+pkgver=1.9.0
+pkgrel=1
+pkgdesc="Free, open source software for digital DJ'ing."
+arch=('i686' 'x86_64')
+url='http://www.mixxx.org'
+license=('GPL')
+depends=('fftw' 'libid3tag' 'libmad' 'libogg' 'libshout' 'libsndfile' 'portaudio' 'portmidi'
+ 'qt>=4.5' 'taglib')
+makedepends=('mesa' 'scons' 'libshout')
+source=("http://downloads.mixxx.org/${pkgname}-${pkgver}/${pkgname}-${pkgver}-src.tar.gz")
+md5sums=('ea78fc81922e6c7d85d6afffd2e526b1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"\~*
+ scons qtdir=/usr/lib/qt prefix=/usr install_root="${pkgdir}/usr"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"\~*
+ scons qtdir=/usr/lib/qt prefix=/usr install_root="${pkgdir}/usr" install
+}
diff --git a/community/mktorrent/PKGBUILD b/community/mktorrent/PKGBUILD
new file mode 100644
index 000000000..6eff9a3c4
--- /dev/null
+++ b/community/mktorrent/PKGBUILD
@@ -0,0 +1,19 @@
+# Contributor: Emil Renner Berthing <esmil@users.sourceforge.net>
+
+pkgname=mktorrent
+pkgver=1.0
+pkgrel=2
+pkgdesc='Simple command line utility to create BitTorrent metainfo files'
+arch=('i686' 'x86_64')
+url='http://mktorrent.sourceforge.net/'
+license='GPL'
+depends=('openssl')
+source=("http://downloads.sourceforge.net/mktorrent/mktorrent-${pkgver}.tar.gz")
+md5sums=('0da00209da96a0dc39efbb6eb5b4d8ff')
+
+build() {
+ cd ${srcdir}/mktorrent-${pkgver}
+ make DESTDIR=${pkgdir} PREFIX=/usr \
+ USE_PTHREADS=1 USE_OPENSSL=1 USE_LONG_OPTIONS=1 USE_LARGE_FILES=1 \
+ install
+}
diff --git a/community/mldonkey/PKGBUILD b/community/mldonkey/PKGBUILD
new file mode 100644
index 000000000..5cd449c3f
--- /dev/null
+++ b/community/mldonkey/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 40262 2011-02-22 17:18:28Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=mldonkey
+pkgver=3.0.7
+pkgrel=2
+pkgdesc="A multi-network P2P client"
+arch=('i686' 'x86_64')
+url="http://mldonkey.sourceforge.net/"
+license=('GPL')
+depends=('desktop-file-utils' 'file' 'gd' 'bzip2')
+makedepends=('lablgtk2' 'librsvg' 'ocaml')
+optdepends=('librsvg: GUI support'
+ 'libx11: GUI support')
+backup=('etc/conf.d/mldonkey')
+install=mldonkey.install
+source=(http://downloads.sourceforge.net/sourceforge/mldonkey/$pkgname-$pkgver.tar.bz2
+ mldonkeyd mldonkey.conf mldonkey.desktop)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --enable-gui=newgui2
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/$pkgname-$pkgver/icons/rsvg/type_source_normal.svg" \
+ "$pkgdir/usr/share/icons/mldonkey.svg"
+ install -Dm644 "$srcdir/mldonkey.desktop" \
+ "$pkgdir/usr/share/applications/mldonkey.desktop"
+
+ install -Dm755 "$srcdir/mldonkeyd" "$pkgdir/etc/rc.d/mldonkey"
+ install -Dm644 "$srcdir/mldonkey.conf" "$pkgdir/etc/conf.d/mldonkey"
+}
+md5sums=('162b78fc4e20335a8fe31d91e1656db2'
+ 'c42526cb7ff703b313728dfdd92dfb1e'
+ '190cbbc30b510981e0d8b0ed8bae87a4'
+ '1de3266caa49f82bee73ba891eea12cf')
diff --git a/community/mldonkey/mldonkey.conf b/community/mldonkey/mldonkey.conf
new file mode 100644
index 000000000..7aa683f1a
--- /dev/null
+++ b/community/mldonkey/mldonkey.conf
@@ -0,0 +1,8 @@
+# Username under which the daemon will run (mandatory)
+MLDUSER=""
+
+# Parameters to be passed to the daemon (default is empty)
+PARAMS=""
+
+# PID file location (defaults to "/var/lock" if empty)
+PIDDIR=""
diff --git a/community/mldonkey/mldonkey.desktop b/community/mldonkey/mldonkey.desktop
new file mode 100644
index 000000000..b307261e1
--- /dev/null
+++ b/community/mldonkey/mldonkey.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=MLDonkey GUI
+Comment=multi-protocol P2P program
+Exec=mldonkey_gui
+Icon=mldonkey
+Terminal=false
+Type=Application
+Categories=Network;P2P;
diff --git a/community/mldonkey/mldonkey.install b/community/mldonkey/mldonkey.install
new file mode 100644
index 000000000..dd8ea0407
--- /dev/null
+++ b/community/mldonkey/mldonkey.install
@@ -0,0 +1,17 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ if [ -f /etc/mldonkey.conf ]; then
+ mv /etc/mldonkey.conf /etc/conf.d/mldonkey
+ cat << EOM
+
+==> mldonkey post upgrade message:
+==> /etc/mldonkey.conf has been moved in /etc/conf.d/mldonkey
+
+EOM
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/mldonkey/mldonkeyd b/community/mldonkey/mldonkeyd
new file mode 100644
index 000000000..bbd6954c2
--- /dev/null
+++ b/community/mldonkey/mldonkeyd
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/conf.d/mldonkey
+. /etc/rc.d/functions
+
+if [ -z $MLDUSER ] ; then
+ echo "Unable to run MLDonkey. You must set a user in /etc/conf.d/mldonkey ."
+ exit 2
+fi
+
+USERDIR=$(getent passwd $MLDUSER | cut -d: -f6)
+
+if [ ! -d $USERDIR ]; then
+ echo "Unable to run MLDonkey. Home directory for ${MLDUSER} does not exist."
+ exit 2
+fi
+
+PID=$(cat $USERDIR/.mldonkey/mlnet.pid 2>/dev/null)
+
+case "$1" in
+ start)
+ stat_busy "Starting MLDonkey"
+ [ -z $PID ] && su $MLDUSER -s /bin/sh -c "/usr/bin/mlnet $PARAMS -log_to_syslog true &> /tmp/mldonkey.log &"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon mldonkey
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping MLDonkey"
+ [ ! -z $PID ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mldonkey
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/mlt/PKGBUILD b/community/mlt/PKGBUILD
new file mode 100644
index 000000000..099421f6a
--- /dev/null
+++ b/community/mlt/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 44159 2011-04-04 10:37:36Z bluewind $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Fabian Schoelzel <myfirstname.mylastname@googlemail.com>
+# Contributor: funkyou <spamopfer@nickname.berlin.de>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgbase=mlt
+pkgname=('mlt' 'mlt-python-bindings')
+pkgver=0.7.0
+pkgrel=3
+pkgdesc="An open source multimedia framework"
+arch=('i686' 'x86_64')
+url="http://www.mltframework.org"
+license=('GPL')
+makedepends=('sdl_image' 'libsamplerate' 'libdv' 'qt' 'sox' 'libxml2' 'gtk2' 'ffmpeg'
+ 'frei0r-plugins' 'swig' 'python2' "jack" "ladspa")
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('06dd5bd6f00ae8fec64d45f0b74cac88')
+
+build() {
+ # mlt
+ cd $srcdir/mlt-$pkgver
+ [ $CARCH == "i686" ] && SSE2=--disable-sse2 || SSE2=
+ msg "SSE2=$SSE2"
+ ./configure --prefix=/usr --enable-gpl \
+ --qimage-libdir=/usr/lib/ --qimage-includedir=/usr/include/Qt \
+ --avformat-vdpau \
+ --avformat-swscale $SSE2
+ make
+
+ # mlt python bindings
+ cd $srcdir/mlt-$pkgver/src/swig/python
+ sed -i 's_path=`which python_path=`which python2_' build
+ sed -i 's_`python -c_`python2 -c_' build
+ sed -i 's#python-config#python2-config#' build
+ ./build
+}
+
+package_mlt() {
+ depends=('sdl_image' 'libsamplerate' 'libdv' 'sox' 'libxml2' 'ffmpeg' 'frei0r-plugins')
+ optdepends=('jack' 'libexif' 'qt' 'gtk2' "ladspa")
+ conflicts=('mlt++<=0.3.8')
+
+ cd $srcdir/mlt-$pkgver
+ make DESTDIR=$pkgdir install
+}
+
+package_mlt-python-bindings() {
+ depends=('python2' 'mlt')
+
+ cd $srcdir/mlt-$pkgver/src/swig/python
+ mkdir -p $pkgdir/usr/lib/python2.7/
+ install -m755 mlt.py $pkgdir/usr/lib/python2.7/
+ install -m755 _mlt.so $pkgdir/usr/lib/python2.7/
+ install -m755 mlt_wrap.o $pkgdir/usr/lib/python2.7/
+}
diff --git a/community/mms_client/ChangeLog b/community/mms_client/ChangeLog
new file mode 100644
index 000000000..7fd5bbf99
--- /dev/null
+++ b/community/mms_client/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/mms_client/PKGBUILD b/community/mms_client/PKGBUILD
new file mode 100644
index 000000000..8cdb4f89b
--- /dev/null
+++ b/community/mms_client/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=mms_client
+pkgver=0.0.3
+pkgrel=4
+pkgdesc="mms protocol download utility"
+arch=('i686' 'x86_64')
+url="http://ole.tange.dk/projekter/kontroversielt/www.geocities.com/majormms/"
+license=('GPL')
+source=(http://ole.tange.dk/projekter/kontroversielt/www.geocities.com/majormms/mms_client-0.0.3.tar.gz
+ mmsclient-0.0.3-fbsd.patch \
+ mmsclient-0.0.3-r1.patch)
+md5sums=('c91171a0bbbfb94290d362e907432787' '8b1f4c95b4b13abd91d2c7c4ba51ea23'\
+ 'b85485058a26b3a0881639bc02de71cb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 -i ../mmsclient-0.0.3-fbsd.patch
+ patch -p1 -i ../mmsclient-0.0.3-r1.patch
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/mms_client/mmsclient-0.0.3-fbsd.patch b/community/mms_client/mmsclient-0.0.3-fbsd.patch
new file mode 100644
index 000000000..68904d616
--- /dev/null
+++ b/community/mms_client/mmsclient-0.0.3-fbsd.patch
@@ -0,0 +1,41 @@
+--- client.c.orig Sat Dec 29 09:40:48 2001
++++ client.c Mon Mar 4 21:42:05 2002
+@@ -277,12 +277,12 @@
+ int packet_len, command;
+ char data[BUF_SIZE];
+
+- if (!get_data (s, &packet_len, 4)) {
++ if (!get_data (s, (char *)&packet_len, 4)) {
+ printf ("packet_len read failed\n");
+ return 0;
+ }
+
+- packet_len = get_32 (&packet_len, 0) + 4;
++ packet_len = get_32 ((unsigned char *)&packet_len, 0) + 4;
+
+ printf ("command packet detected, len=%d\n",
+ packet_len);
+@@ -308,7 +308,7 @@
+ int interp_header (uint8_t *header, int header_len) {
+
+ int i;
+- int packet_length;
++ int packet_length = 0;
+
+ /*
+ * parse header
+@@ -416,12 +416,12 @@
+
+ int packet_len, command;
+
+- if (!get_data (s, &packet_len, 4)) {
++ if (!get_data (s, (char *)&packet_len, 4)) {
+ printf ("packet_len read failed\n");
+ return 0;
+ }
+
+- packet_len = get_32 (&packet_len, 0) + 4;
++ packet_len = get_32 ((unsigned char *)&packet_len, 0) + 4;
+
+ printf ("command packet detected, len=%d\n",
+ packet_len);
diff --git a/community/mms_client/mmsclient-0.0.3-r1.patch b/community/mms_client/mmsclient-0.0.3-r1.patch
new file mode 100644
index 000000000..44577643b
--- /dev/null
+++ b/community/mms_client/mmsclient-0.0.3-r1.patch
@@ -0,0 +1,92 @@
+diff -u mms_client-0.0.3/Makefile.in mms_client-0.0.4/Makefile.in
+--- mms_client-0.0.3/Makefile.in 2002-01-21 18:51:31.000000000 -0800
++++ mms_client-0.0.4/Makefile.in 2004-04-17 15:57:10.241509408 -0700
+@@ -85,7 +85,7 @@
+ mmsclient_DEPENDENCIES =
+ mmsclient_LDFLAGS =
+ CFLAGS = @CFLAGS@
+-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) "-DVERSION=\"$(VERSION)\""
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
+ HEADERS = $(noinst_HEADERS)
+diff -u mms_client-0.0.3/README mms_client-0.0.4/README
+--- mms_client-0.0.3/README 2001-10-09 16:09:36.000000000 -0700
++++ mms_client-0.0.4/README 2004-04-17 17:16:29.204037136 -0700
+@@ -0,0 +1,2 @@
++mmsclient downloads MMS (Microsoft Media Server) streams, and
++saves them to disk.
+diff -u mms_client-0.0.3/client.c mms_client-0.0.4/client.c
+--- mms_client-0.0.3/client.c 2001-12-28 19:40:48.000000000 -0800
++++ mms_client-0.0.4/client.c 2004-04-17 17:02:06.409201888 -0700
+@@ -5,6 +5,9 @@
+ * mms://193.159.244.12/n24_wmt_mid
+ */
+
++#define HELPINFO "Usage: mmsclient mms://<url>\n -v --version\n\tPrint version information\n -h --help\n\tPrint this page\nhttp://www.geocities.com/majormms/\n"
++
++
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <assert.h>
+@@ -475,23 +478,44 @@
+ char *path, *url, *file, *cp;
+
+ if (argc != 2) {
+- printf ("usage: %s url\n", argv[0]);
++ printf ("Usage: %s URL\n", argv[0]);
+ exit(1);
+ }
+-
++
++ /* check for non-url arguments (version or help ...) */
++ if (strncmp(argv[1], "mms://", 6) == 0 && argv[1][6] == 0){ /* Just typed "mms://" with no URL */
++ printf("Error: No URL\n");
++ exit(1);
++ }
++ if (strncmp(argv[1], "mms://", 6) != 0){ /* haven't typed a url */
++
++ if (strncmp(argv[1], "--version", 9) == 0 || strncmp(argv[1], "-v", 9) == 0){
++ printf("%s\n", VERSION);
++ }else if (strncmp(argv[1], "--help", 9) == 0 || strncmp(argv[1], "-h", 9) == 0){
++ printf("%s\n", HELPINFO);
++ }else{
++ printf("Error: unrecognized command %s\n", argv[1]);
++ }
++ exit(1);
++ }
++
+ /* parse url */
+
+ url = argv[1];
+ strncpy (host, &url[6], 255);
+ cp = strchr(host,'/');
+- *cp= 0;
++ if(cp == 0){ /* If they just typed a top level domain name */
++ printf("Error: Incomplete URL '%s'\n", &url[6]);
++ exit(1);
++ }
++ *cp= 0; /* Make the '/' a null */
+
+ printf ("host : >%s<\n", host);
+
+ path = strchr(&url[6], '/') +1;
+
+ printf ("path : >%s<\n", path);
+-
++
+ file = strrchr (url, '/');
+
+ printf ("file : >%s<\n", file);
+diff -u mms_client-0.0.3/configure mms_client-0.0.4/configure
+--- mms_client-0.0.3/configure 2002-01-21 18:50:51.000000000 -0800
++++ mms_client-0.0.4/configure 2004-04-17 16:47:01.126825728 -0700
+@@ -694,7 +694,7 @@
+
+ PACKAGE="mms_client"
+
+-VERSION=0.0.3
++VERSION=0.0.4
+
+ if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+ { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
diff --git a/community/mmsrip/PKGBUILD b/community/mmsrip/PKGBUILD
new file mode 100644
index 000000000..19cf7ac6a
--- /dev/null
+++ b/community/mmsrip/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 29248 2010-10-11 20:22:17Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=mmsrip
+pkgver=0.7.0
+pkgrel=3
+pkgdesc="A downloader for the proprietary protocol MMS://"
+arch=('i686' 'x86_64')
+url="http://nbenoit.tuxfamily.org/projects.php?rq=mmsrip"
+license=('GPL2')
+source=(http://nbenoit.tuxfamily.org/projects/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('498a5ec10a004481532eaceacdff3a10')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/mongodb/PKGBUILD b/community/mongodb/PKGBUILD
new file mode 100644
index 000000000..f295aee1c
--- /dev/null
+++ b/community/mongodb/PKGBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Mathias Stearn <mathias@10gen.com>
+# Contributor: Alec Thomas
+
+pkgname=mongodb
+pkgver=1.8.0
+pkgrel=2
+pkgdesc='A high-performance, open source, schema-free document-oriented database.'
+arch=('i686' 'x86_64')
+url='http://www.mongodb.org'
+license=('AGPL3')
+depends=('boost-libs' 'spidermonkey' 'pcre')
+makedepends=('scons' 'boost')
+optdepends=('libpcap: needed for mongosniff')
+backup=('etc/mongodb.conf')
+install="mongodb.install"
+source=("http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz"
+ 'mongodb.rc'
+ 'mongodb.conf')
+md5sums=('243b2776cbe8c70b3bbc402c855f4e82'
+ '859f8f9bb32ef2bd21fec55ae9a87d0a'
+ '9e0ea3f96732bb7811f0b64dace56440')
+
+build() {
+ export SCONSFLAGS="$MAKEFLAGS"
+
+ cd ${pkgname}-src-r${pkgver}
+
+ # scons is "special"
+ sed -i 's/-Wall -Wsign-compare/& -DBOOST_FILESYSTEM_VERSION=2/' SConstruct
+
+ scons \
+ all \
+ --full
+}
+
+package() {
+ cd ${pkgname}-src-r${pkgver}
+
+ scons \
+ install \
+ --full \
+ --prefix=${pkgdir}/usr
+
+ install -D -m755 ${srcdir}/mongodb.rc \
+ ${pkgdir}/etc/rc.d/mongodb
+ install -D -m644 ${srcdir}/mongodb.conf \
+ ${pkgdir}/etc/mongodb.conf
+ install -d -m700 ${pkgdir}/var/state/mongodb
+
+ if [ -d ${pkgdir}/usr/lib64 ]; then
+ mv ${pkgdir}/usr/lib64 ${pkgdir}/usr/lib
+ fi
+}
diff --git a/community/mongodb/mongodb.conf b/community/mongodb/mongodb.conf
new file mode 100644
index 000000000..60d73eae8
--- /dev/null
+++ b/community/mongodb/mongodb.conf
@@ -0,0 +1,6 @@
+# See http://www.mongodb.org/display/DOCS/File+Based+Configuration for format details
+# Run mongod --help to see a list of options
+
+bind_ip = 127.0.0.1
+quiet = true
+dbpath = /var/state/mongodb
diff --git a/community/mongodb/mongodb.install b/community/mongodb/mongodb.install
new file mode 100755
index 000000000..152f36515
--- /dev/null
+++ b/community/mongodb/mongodb.install
@@ -0,0 +1,31 @@
+# vim: syntax=sh
+
+show_msg(){
+ if [ "$(arch)" != "x86_64" ]
+ then
+ cat <<END
+###########################################################################
+# Warning: the 32 bit version of MongoDB is limited to about 2GB of data. #
+# See http://blog.mongodb.org/post/137788967/32-bit-limitations #
+###########################################################################
+END
+ fi
+}
+
+post_install() {
+ useradd -r -g daemon -d /var/state/mongodb -s /bin/false mongodb
+ chown -R mongodb:daemon /var/state/mongodb
+
+ show_msg
+}
+
+post_upgrade() {
+ chown -R mongodb:daemon /var/state/mongodb
+
+ show_msg
+}
+
+pre_remove() {
+ /etc/rc.d/mongodb stop
+ userdel mongodb
+}
diff --git a/community/mongodb/mongodb.rc b/community/mongodb/mongodb.rc
new file mode 100755
index 000000000..b808a2fb0
--- /dev/null
+++ b/community/mongodb/mongodb.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+# vim: syntax=sh
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof /usr/bin/mongod`
+case "$1" in
+ start)
+ stat_busy "Starting mongodb"
+ [ -z "$PID" ] && /bin/su mongodb -s /bin/bash -c "/usr/bin/mongod --config /etc/mongodb.conf &" > /var/log/mongod 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon mongodb
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mongodb"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mongodb
+ while [ ! -z "$(pidof /usr/bin/mongod)" ]; do
+ sleep 1;
+ done
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/monit/PKGBUILD b/community/monit/PKGBUILD
new file mode 100644
index 000000000..c38ca3931
--- /dev/null
+++ b/community/monit/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 42862 2011-03-21 21:28:35Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Marco Bartholomew <marco@marcobartholomew.com>
+
+pkgname=monit
+pkgver=5.2.4
+pkgrel=1
+pkgdesc="Utility for managing and monitoring, processes, files, directories and devices on a *NIX system"
+arch=('i686' 'x86_64')
+url="http://mmonit.com/monit/"
+license=('GPL3')
+depends=('openssl')
+backup=('etc/monitrc')
+changelog=$pkgname.changelog
+source=(http://mmonit.com/$pkgname/dist/$pkgname-$pkgver.tar.gz \
+ monitd)
+sha256sums=('feabdd2c0e3263eadaf5359841b92a9e6d4824819b1df7b2b49d9727a849b4cf'
+ 'b235b2fdeec49015d6b74f028d161b289663692f9ee2d2d78cf52d8db87ca496')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m755 ${srcdir}/monitd ${pkgdir}/etc/rc.d/monitd
+ install -D -m700 monitrc ${pkgdir}/etc/monitrc
+}
diff --git a/community/monit/monit.changelog b/community/monit/monit.changelog
new file mode 100644
index 000000000..c0a09fd7d
--- /dev/null
+++ b/community/monit/monit.changelog
@@ -0,0 +1,19 @@
+2011-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.2.4-1
+
+2010-11-24 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.2.3-1
+
+2010-09-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.2-1
+
+2010-08-30 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.1.1-2
+ * fixed FS#20666
+
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.1.1-1
+ * fixed FS#20559
+
+2009-12-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * monit 5.0.3-1
diff --git a/community/monit/monitd b/community/monit/monitd
new file mode 100644
index 000000000..61a359702
--- /dev/null
+++ b/community/monit/monitd
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+start() {
+ stat_busy "Starting Monit"
+ /usr/bin/monit &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon monitd
+ stat_done
+ fi
+}
+
+stop() {
+ stat_busy "Stopping Monit"
+ /usr/bin/monit quit &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon monitd
+ stat_done
+ fi
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/moreutils/PKGBUILD b/community/moreutils/PKGBUILD
new file mode 100644
index 000000000..50591ba03
--- /dev/null
+++ b/community/moreutils/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 44097 2011-04-02 12:06:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=moreutils
+pkgver=0.44
+pkgrel=1
+pkgdesc="A growing collection of the unix tools that nobody thought to write thirty years ago"
+arch=('i686' 'x86_64')
+url="http://kitenet.net/~joey/code/moreutils.html"
+license=('GPL')
+makedepends=('docbook2x' 'docbook-xml' 'perl-xml-sax')
+depends=('perl')
+options=('!emptydirs' 'zipman')
+replaces=(moreutils-svn)
+source=(http://ftp.de.debian.org/debian/pool/main/m/moreutils/moreutils_$pkgver.tar.gz)
+md5sums=('a3fb0b1393c381aae88d8139400c24dc')
+
+build() {
+ cd $srcdir/moreutils
+ make DOCBOOK2XMAN=docbook2man
+ make PREFIX=$pkgdir/usr install
+ chmod 0644 $pkgdir/usr/share/man/man1/*
+ mv $pkgdir/usr/share/man/man1/ts.1 $pkgdir/usr/share/man/man1/ts.1moreutils
+}
diff --git a/community/motion/PKGBUILD b/community/motion/PKGBUILD
new file mode 100644
index 000000000..dcb3828af
--- /dev/null
+++ b/community/motion/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 85176 2010-07-09 22:50:45Z eric $
+# Maintainer:
+
+pkgname=motion
+pkgver=3.2.12
+pkgrel=1
+pkgdesc="A software motion detector which grabs images from video4linux devices and/or from webcams"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome"
+depends=('ffmpeg' 'libjpeg')
+backup=('etc/motion/motion.conf')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz rc.motion)
+md5sums=('1ba0065ed50509aaffb171594c689f46' '24b6fbfa586857b72f90cda81410c14f')
+sha1sums=('dc59b36e45e7626baa65ce62c961af918fea76bd' '06f74131a9d4abc8aa05f531bd19c51a5732023f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --without-pgsql \
+ --without-mysql \
+ --sysconfdir=/etc/motion
+ make
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ mv "${pkgdir}/etc/motion/motion-dist.conf" "${pkgdir}/etc/motion/motion.conf"
+
+ install -Dm755 "${srcdir}/rc.motion" "${pkgdir}/etc/rc.d/motion"
+}
diff --git a/community/motion/rc.motion b/community/motion/rc.motion
new file mode 100755
index 000000000..6ae95d17b
--- /dev/null
+++ b/community/motion/rc.motion
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/motion`
+case "$1" in
+ start)
+ stat_busy "Starting Motion"
+ [ -z "$PID" ] && /usr/bin/motion
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon motion
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Motion"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon motion
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/mp3gain/PKGBUILD b/community/mp3gain/PKGBUILD
new file mode 100644
index 000000000..88ba47c5a
--- /dev/null
+++ b/community/mp3gain/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 27735 2010-09-27 10:44:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: keith <keith@hubbard.net>
+
+pkgname=mp3gain
+pkgver=1.5.2
+pkgrel=1
+pkgdesc="Lossless mp3 normalizer with statistical analysis "
+arch=('i686' 'x86_64')
+url="http://mp3gain.sourceforge.net"
+license=("GPL")
+depends=('glibc')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-${pkgver//./_}-src.zip
+ build-fix.patch)
+md5sums=('d888563538ec863eeea8afc8207b2739'
+ '20680cbada13ba941b0532ff94e583e1')
+
+build() {
+ cd $srcdir
+
+ mkdir -p $pkgdir/usr/bin
+ patch -p0 Makefile <$srcdir/build-fix.patch
+
+ make OSTYPE=linux
+ make OSTYPE=linux INSTALL_PATH=$pkgdir/usr/bin install
+}
diff --git a/community/mp3gain/build-fix.patch b/community/mp3gain/build-fix.patch
new file mode 100644
index 000000000..6297f0a52
--- /dev/null
+++ b/community/mp3gain/build-fix.patch
@@ -0,0 +1,22 @@
+22d21
+< ifneq ($(OSTYPE),beos)
+24,26d22
+< else
+< INSTALL_PATH= $(HOME)/config/bin
+< endif
+28,29d23
+< # BeOS doesn't have libm (it's all in libroot)
+< ifneq ($(OSTYPE),beos)
+31,34d24
+< else
+< # BeOS: without this it wants to use bcopy() :^)
+< CFLAGS+= -DHAVE_MEMCPY
+< endif
+56,58d45
+< ifeq ($(OSTYPE),beos)
+< mimeset -f mp3gain$(EXE_EXT)
+< endif
+63,65d49
+< ifeq ($(OSTYPE),beos)
+< mimeset -f "$(INSTALL_PATH)/mp3gain$(EXE_EXT)"
+< endif
diff --git a/community/mp3info/ChangeLog b/community/mp3info/ChangeLog
new file mode 100644
index 000000000..7fd5bbf99
--- /dev/null
+++ b/community/mp3info/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-26 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/mp3info/PKGBUILD b/community/mp3info/PKGBUILD
new file mode 100644
index 000000000..1acf47a00
--- /dev/null
+++ b/community/mp3info/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 17596 2010-05-24 15:32:08Z spupykin $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
+
+pkgname=mp3info
+pkgver=0.8.5a
+pkgrel=3
+pkgdesc="An MP3 technical info viewer and ID3 1.x tag editor"
+arch=('i686' 'x86_64')
+url="http://ibiblio.org/mp3info/"
+license=('GPL')
+depends=('ncurses' 'gtk2' )
+source=(http://ibiblio.org/pub/linux/apps/sound/mp3-utils/$pkgname/$pkgname-$pkgver.tgz)
+md5sums=('cb7b619a10a40aaac2113b87bb2b2ea2')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ sed -i "s:-O2:${CFLAGS}:" Makefile
+ sed -i "s:/usr/bin/install:/bin/install:" Makefile
+
+ make || return 1
+
+ install -d ${pkgdir}/usr/bin ${pkgdir}/usr/share/man/man1
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man/man1 install
+}
diff --git a/community/mp3splt-gtk/PKGBUILD b/community/mp3splt-gtk/PKGBUILD
new file mode 100644
index 000000000..31821b2f2
--- /dev/null
+++ b/community/mp3splt-gtk/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 29245 2010-10-11 18:43:38Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=mp3splt-gtk
+pkgver=0.6
+pkgrel=1
+pkgdesc="Split mp3 and ogg files without decoding"
+arch=('i686' 'x86_64')
+url="http://mp3splt.sourceforge.net/"
+license=('GPL')
+depends=('gtk2' 'libmp3splt')
+makedepends=('pkgconfig' 'desktop-file-utils')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/mp3splt/$pkgname-$pkgver.tar.gz \
+ $pkgname.desktop)
+md5sums=('0a88bf1a8928a36842a35a174ab18aa3'
+ '9e5a5748d40594e0090e7ceed903c674')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --disable-mp3splttest --disable-audacious --disable-gstreamer
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+
+#install .desktop file
+ install -D -m644 ${srcdir}/$pkgname.desktop \
+ ${pkgdir}/usr/share/applications/$pkgname.desktop
+}
diff --git a/community/mp3splt-gtk/mp3splt-gtk.changelog b/community/mp3splt-gtk/mp3splt-gtk.changelog
new file mode 100644
index 000000000..3164382a5
--- /dev/null
+++ b/community/mp3splt-gtk/mp3splt-gtk.changelog
@@ -0,0 +1,11 @@
+2010-10-11 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release O.6
+
+2010-04-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release O.5.9
+
+2009-11-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release O.5.8a
+
+2009-11-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Moved to [community] - 67 votes in AUR
diff --git a/community/mp3splt-gtk/mp3splt-gtk.desktop b/community/mp3splt-gtk/mp3splt-gtk.desktop
new file mode 100644
index 000000000..3862295bf
--- /dev/null
+++ b/community/mp3splt-gtk/mp3splt-gtk.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Type=Application
+Name=Mp3splt-gtk audio splitter
+GenericName=Sound Splitter
+Comment=Split mp3 and ogg files without decoding
+Comment[cs]=Rozdělit mp3 a ogg soubory bez dekódování
+Icon=mp3splt-gtk_ico
+Exec=mp3splt-gtk
+StartupNotify=false
+Terminal=false
+Categories=Audio;AudioVideo;AudioVideoEditing;
+MimeType=application/ogg;audio/x-mp3;
+
diff --git a/community/mp3splt-gtk/mp3splt-gtk.install b/community/mp3splt-gtk/mp3splt-gtk.install
new file mode 100644
index 000000000..de3e0f510
--- /dev/null
+++ b/community/mp3splt-gtk/mp3splt-gtk.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "Updating desktop and mime database ..."
+ update-desktop-database -q
+}
diff --git a/community/mp3unicode/PKGBUILD b/community/mp3unicode/PKGBUILD
new file mode 100644
index 000000000..15ad0a5de
--- /dev/null
+++ b/community/mp3unicode/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 22433 2010-07-21 19:17:58Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=mp3unicode
+pkgver=1.2
+pkgrel=4
+pkgdesc="A command line utility to convert ID3 tags in mp3 files between different encodings"
+arch=('i686' 'x86_64')
+url="http://mp3unicode.yellowsite.ru/"
+license=('GPL')
+depends=('taglib')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('36665ee3ed71585e377f46fda6124a09')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ #. /etc/profile.d/qt.sh
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/mpdscribble/PKGBUILD b/community/mpdscribble/PKGBUILD
new file mode 100644
index 000000000..254c0ac05
--- /dev/null
+++ b/community/mpdscribble/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: evr <evanroman at gmail>
+# Contributor: Luiz Ribeiro <luizribeiro@gmail.com>
+
+pkgname=mpdscribble
+pkgver=0.21
+pkgrel=4
+pkgdesc='An mpd client which submits track info to last.fm'
+url='http://mpd.wikia.com/wiki/Client:Mpdscribble'
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsoup' 'glib2' 'libmpdclient')
+install="${pkgname}.install"
+source=("http://downloads.sourceforge.net/musicpd/mpdscribble-${pkgver}.tar.bz2"
+ 'mpdscribble')
+md5sums=('3dc96f9179b8d7efd02cbbceb345e529'
+ 'f54c937c7b3ab8e4d39e4b903c2993fc')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-http-client=soup
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D ${srcdir}/mpdscribble \
+ ${pkgdir}/etc/rc.d/mpdscribble
+
+ # default config is really an example
+ install -m644 ${pkgdir}/etc/mpdscribble.conf \
+ ${pkgdir}/etc/mpdscribble.conf.example
+ rm -f ${pkgdir}/etc/mpdscribble.conf
+
+ install -d ${pkgdir}/var/cache/mpdscribble
+ touch ${pkgdir}/var/cache/mpdscribble/mpdscribble.cache
+}
diff --git a/community/mpdscribble/mpdscribble b/community/mpdscribble/mpdscribble
new file mode 100644
index 000000000..8071c0dbe
--- /dev/null
+++ b/community/mpdscribble/mpdscribble
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/mpdscribble`
+case "$1" in
+ start)
+ stat_busy "Starting mpdscribble"
+ [ -z "$PID" ] && /usr/bin/mpdscribble &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/mpdscribble.pid
+ add_daemon mpdscribble
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mpdscribble"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/mpdscribble.pid
+ rm_daemon mpdscribble
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/mpdscribble/mpdscribble.install b/community/mpdscribble/mpdscribble.install
new file mode 100644
index 000000000..3447b50d6
--- /dev/null
+++ b/community/mpdscribble/mpdscribble.install
@@ -0,0 +1,17 @@
+post_install() {
+ echo 'An example config is provided in /etc/mpdscribble.conf.example'
+ echo
+ echo 'For system-wide config copy this file to /etc/mpdscribble.conf'
+ echo 'For per-user config copy this file to ~/.mpdscribble/mpdscribble.conf'
+}
+
+pre_upgrade() {
+ # removed /etc/mpdscribble.conf on FEB 19 2011
+ if [ -f /etc/mpdscribble.conf ]; then
+ cp /etc/mpdscribble.conf /etc/mpdscribble.conf.oldbackup
+ echo 'The package does not provide /etc/mpdscribble.conf anymore.'
+ echo 'Copied /etc/mpdscribble.conf to /etc/mpdscribble.conf.oldbackup'
+ echo
+ echo 'The example file is now located at /etc/mpdscribble.conf.example'
+ fi
+}
diff --git a/community/mpgtx/PKGBUILD b/community/mpgtx/PKGBUILD
new file mode 100644
index 000000000..e54ebb65c
--- /dev/null
+++ b/community/mpgtx/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 5259 2009-11-07 12:46:05Z ibiru $
+# Contributor: Peter Baldwin <bald_pete@hotmail.com>
+pkgname=mpgtx
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="A command line MPEG audio/video/system toolkit"
+arch=('i686' 'x86_64')
+url="http://mpgtx.sourceforge.net"
+license=("GPL")
+depends=()
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('d628060aa04ad3b40a175bf35f5167cf')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make PREFIX=$startdir/pkg/usr install
+ mv ${pkgdir}/usr/man ${pkgdir}/usr/share/
+}
diff --git a/community/mtasc/PKGBUILD b/community/mtasc/PKGBUILD
new file mode 100644
index 000000000..2619fbd41
--- /dev/null
+++ b/community/mtasc/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Niel Drummond <niel.drummond@grumpytoad.org>
+
+pkgname=mtasc
+pkgver=20091229
+pkgrel=1
+pkgdesc="An open source flash (swf) compiler"
+arch=(i686 x86_64)
+url="http://mtasc.org/"
+license=('GPL2')
+depends=('zlib')
+makedepends=('ocaml' 'cvs')
+source=(http://www.mtasc.org/doc/mtasc/install.ml)
+md5sums=('d072094a9c3ec4384ce232d4b65dab40')
+
+build() {
+ cd $startdir/src
+ sed -i 's/anonymous@/anonymous:@/' $startdir/src/install.ml
+
+ msg "Running ocaml script..."
+ cd $startdir/src
+ ocaml $startdir/src/install.ml || return 1
+
+ msg "Done compiling..."
+
+ install -D -m755 $startdir/src/bin/${pkgname} $startdir/pkg/usr/bin/${pkgname} || return 1
+
+ for f in $( cd ocaml/mtasc/ && find ./{std,std8} -type f -iname '*.as' | grep -iv cvs ); do
+ install -D -m644 ocaml/mtasc/$f ../pkg/usr/share/mtasc/$f || return 1
+ done
+}
+
diff --git a/community/mtpaint/PKGBUILD b/community/mtpaint/PKGBUILD
new file mode 100644
index 000000000..770c55e33
--- /dev/null
+++ b/community/mtpaint/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 9274 2010-01-24 22:45:51Z foutrelis $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: yosh64 <yosh64.at.gmail.dot.com>
+
+pkgname=mtpaint
+pkgver=3.31
+pkgrel=4
+pkgdesc="A simple GTK2 painting program designed for creating icons and pixel based artwork."
+arch=('i686' 'x86_64')
+url="http://mtpaint.sourceforge.net"
+license=('GPL')
+depends=('gtk2' 'giflib' 'openjpeg')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+ libpng14.patch)
+md5sums=('fbe34eb25f96b6092403115f1f6ab387'
+ 'f84245ae1e26bd734740306b09024bb8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np1 -i "$srcdir/libpng14.patch" || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man/man1 man intl gif jpeg tiff
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/mtpaint/libpng14.patch b/community/mtpaint/libpng14.patch
new file mode 100644
index 000000000..7df3b2127
--- /dev/null
+++ b/community/mtpaint/libpng14.patch
@@ -0,0 +1,21 @@
+diff -upr mtpaint-3.31.orig/src/png.c mtpaint-3.31/src/png.c
+--- mtpaint-3.31.orig/src/png.c 2010-01-25 00:43:07.000000000 +0200
++++ mtpaint-3.31/src/png.c 2010-01-25 00:43:39.000000000 +0200
+@@ -539,7 +539,7 @@ static int load_png(char *file_name, ls_
+ if (settings->bpp == 3)
+ {
+ png_set_strip_16(png_ptr);
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ png_set_palette_to_rgb(png_ptr);
+ png_set_gray_to_rgb(png_ptr);
+
+@@ -644,7 +644,7 @@ static int load_png(char *file_name, ls_
+ png_set_strip_alpha(png_ptr);
+ png_set_packing(png_ptr);
+ if ((color_type == PNG_COLOR_TYPE_GRAY) && (bit_depth < 8))
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ for (i = 0; i < height; i++)
+ {
+ row_pointers[i] = settings->img[CHN_IMAGE] + i * width;
diff --git a/community/multiget/PKGBUILD b/community/multiget/PKGBUILD
new file mode 100644
index 000000000..2d906b7ad
--- /dev/null
+++ b/community/multiget/PKGBUILD
@@ -0,0 +1,43 @@
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=multiget
+pkgver=3
+pkgrel=1
+pkgdesc="Easy to use GUI file downloader - svn version"
+url="http://multiget.sourceforge.net"
+license=('GPL')
+depends=('wxgtk')
+makedepends=('intltool' 'svn')
+arch=('i686' 'x86_64')
+source=()
+md5sums=()
+_svntrunk=https://multiget.svn.sourceforge.net/svnroot/multiget
+_svnmod=multiget
+
+build() {
+cd "$srcdir"
+
+ if [ -d $_svnmod/.svn ]; then
+ (cd $_svnmod && svn up -r $pkgver)
+ else
+ svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+ fi
+ [ -d "$srcdir/$_svnmod-build" ] && rm -rf "$srcdir/$_svnmod-build"
+ cp -r "$srcdir/$_svnmod" "$srcdir/$_svnmod-build"
+ cd "$srcdir/$_svnmod-build"
+
+ ./autogen.sh --prefix=/usr --docdir=/usr/share/doc/${_svnmod}
+ make
+}
+package() {
+ cd ${srcdir}/$_svnmod-build
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ${srcdir}/${_svnmod}-build/data/multiget.desktop \
+ ${pkgdir}/usr/share/applications/multiget.desktop
+ install -Dm644 ${srcdir}/${_svnmod}-build/newicons/48/logo_48.xpm \
+ ${pkgdir}/usr/share/pixmaps/multiget.xpm
+ mv $pkgdir/usr/doc/${_svnmod} $pkgdir/usr/share/doc
+ rmdir $pkgdir/usr/doc
+}
diff --git a/community/multiget/gcc4.4.diff b/community/multiget/gcc4.4.diff
new file mode 100644
index 000000000..7dc016c20
--- /dev/null
+++ b/community/multiget/gcc4.4.diff
@@ -0,0 +1,75 @@
+diff -aur multiget.orig/Makefile.am multiget.new/Makefile.am
+--- multiget.orig/Makefile.am 2009-11-24 14:23:26.000000000 +0100
++++ multiget.new/Makefile.am 2009-11-24 15:29:44.000000000 +0100
+@@ -3,7 +3,7 @@
+
+ SUBDIRS = src po
+
+-multigetdocdir = ${prefix}/doc/multiget
++multigetdocdir = ${prefix}/share/doc/multiget
+ multigetdoc_DATA = \
+ README\
+ COPYING\
+diff -aur multiget.orig/src/batch.cpp multiget.new/src/batch.cpp
+--- multiget.orig/src/batch.cpp 2009-11-24 14:23:26.000000000 +0100
++++ multiget.new/src/batch.cpp 2009-11-24 14:31:58.000000000 +0100
+@@ -25,6 +25,8 @@
+ #include "batch.h"
+ #include "common.h"
+ #include <iostream>
++#include <cstdio>
++#include <cstdlib>
+
+ CBatch::CBatch( std::string str )
+ {
+diff -aur multiget.orig/src/common.cpp multiget.new/src/common.cpp
+--- multiget.orig/src/common.cpp 2009-11-24 14:23:26.000000000 +0100
++++ multiget.new/src/common.cpp 2009-11-24 14:33:22.000000000 +0100
+@@ -26,7 +26,7 @@
+ #include "speedctrl.h"
+ #include "mirroradmin.h"
+
+-
++#include <cstdlib>
+ #include <pthread.h>
+
+ #ifdef WIN32
+diff -aur multiget.orig/src/mgftpbase.cpp multiget.new/src/mgftpbase.cpp
+--- multiget.orig/src/mgftpbase.cpp 2009-11-24 14:23:26.000000000 +0100
++++ multiget.new/src/mgftpbase.cpp 2009-11-24 14:52:04.000000000 +0100
+@@ -22,6 +22,9 @@
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
++#include <cstdlib>
++#include <cstdio>
++
+ #ifdef WIN32
+ #include <winsock2.h>
+ #endif
+diff -aur multiget.orig/src/mghttpbase.cpp multiget.new/src/mghttpbase.cpp
+--- multiget.orig/src/mghttpbase.cpp 2009-11-24 14:23:26.000000000 +0100
++++ multiget.new/src/mghttpbase.cpp 2009-11-24 14:57:55.000000000 +0100
+@@ -42,6 +42,9 @@
+ -100 : app connection not established
+
+ */
++
++#include <cstdio>
++
+ #ifdef WIN32
+ #include <winsock2.h>
+ #endif
+diff -aur multiget.orig/src/mgurlparser.cpp multiget.new/src/mgurlparser.cpp
+--- multiget.orig/src/mgurlparser.cpp 2009-11-24 14:23:26.000000000 +0100
++++ multiget.new/src/mgurlparser.cpp 2009-11-24 15:05:24.000000000 +0100
+@@ -26,6 +26,9 @@
+ #include "mgurlparser.h"
+ #include "common.h"
+ #include <iostream>
++#include <cstring>
++#include <cstdlib>
++
+ extern std::string gDefFtpPass;
+
+ using namespace std;
diff --git a/community/multiget/multiget.desktop b/community/multiget/multiget.desktop
new file mode 100644
index 000000000..dd2caf52d
--- /dev/null
+++ b/community/multiget/multiget.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=MultiGet
+Exec=multiget
+Terminal=false
+Type=Application
+Icon=multiget
+StartupNotify=true
+Categories=Network;
diff --git a/community/multimux/PKGBUILD b/community/multimux/PKGBUILD
new file mode 100644
index 000000000..356757a89
--- /dev/null
+++ b/community/multimux/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+# Contributor: Shadowhand <woody.gilk@gmail.com>
+
+pkgname=multimux
+pkgver=0.2.5.2
+pkgrel=1
+pkgdesc='Combines up to 8 audio mono wave channels into one big multi channel wave file'
+url='http://panteltje.com/panteltje/dvd/'
+license=('GPL')
+arch=('i686' 'x86_64')
+source=("http://panteltje.com/panteltje/dvd/${pkgname}-${pkgver}.tgz")
+md5sums=('a16531945db4eec67563fa8bfa143193')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ install -d ${pkgdir}/usr/bin
+
+ sed -i "s|/usr/local/bin|${pkgdir}/usr/bin|g" Makefile
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make install
+}
diff --git a/community/multipath-tools/PKGBUILD b/community/multipath-tools/PKGBUILD
new file mode 100644
index 000000000..1fd153d38
--- /dev/null
+++ b/community/multipath-tools/PKGBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Thomas S Hatch <thatch45 ar gmail dot com>
+# Contributor: Michael P <ptchinster@archlinux.us>
+# Contributor: Matt Heagney <matt@heagney.com>
+pkgname=multipath-tools
+pkgver=0.4.9
+pkgrel=4
+pkgdesc="Multipath Tools For Linux"
+arch=('i686' 'x86_64')
+url="http://christophe.varoqui.free.fr/"
+license=('GPL')
+depends=('libaio' 'device-mapper')
+makedepends=()
+provides=()
+conflicts=()
+replaces=()
+backup=('etc/multipath.conf' 'etc/multipath.conf.annotated' 'etc/rc.d/multipathd' )
+install=multipath-tools.install
+source=("http://christophe.varoqui.free.fr/multipath-tools/$pkgname-$pkgver.tar.bz2"
+ "multipath.conf"
+ "multipath.conf.annotated"
+ "multipathd.rc")
+noextract=()
+md5sums=('a6d4b48afc28f1f50f5ee4b1b06d2765'
+ 'd0fb11398cc628c7997111efdc5d52e5'
+ '5a93f993ec05fc99094d5139aabd3925'
+ '1c2dcf43a6b5ae84ec1fae0fee071336')
+
+build() {
+ #Needs to be fixed upstream. Refer to
+ # https://bbs.archlinux.org/viewtopic.php?pid=793814#p793814
+ cd "$srcdir"
+
+ env LDFLAGS=${LDFLAGS//-Wl,--as-needed}\
+ make
+}
+
+package() {
+ cd $srcdir
+
+ make LIB="lib" DESTDIR="$pkgdir" install
+
+ install -D -m 644 $srcdir/multipath.conf $pkgdir/etc/multipath.conf
+ install -D -m 644 $srcdir/multipath.conf.annotated $pkgdir/etc/multipath.conf.annotated
+ install -D -m 755 $srcdir/multipathd.rc $pkgdir/etc/rc.d/multipathd
+}
+
diff --git a/community/multipath-tools/multipath-tools.install b/community/multipath-tools/multipath-tools.install
new file mode 100644
index 000000000..fa58bbc35
--- /dev/null
+++ b/community/multipath-tools/multipath-tools.install
@@ -0,0 +1,4 @@
+post_install() {
+
+ echo " * For full functonality ensure that the dm_multipath kernel module is loaded"
+}
diff --git a/community/multipath-tools/multipath.conf b/community/multipath-tools/multipath.conf
new file mode 100644
index 000000000..ba9f788ae
--- /dev/null
+++ b/community/multipath-tools/multipath.conf
@@ -0,0 +1,8 @@
+#
+# Very Basic Multipath Configuration File
+#
+
+defaults {
+ getuid_callout"/lib/udev/scsi_id -g -u -d /dev/%n"
+}
+
diff --git a/community/multipath-tools/multipath.conf.annotated b/community/multipath-tools/multipath.conf.annotated
new file mode 100644
index 000000000..e6cfe9a1a
--- /dev/null
+++ b/community/multipath-tools/multipath.conf.annotated
@@ -0,0 +1,362 @@
+##
+## This is a template multipath-tools configuration file
+## Uncomment the lines relevent to your environment
+##
+#
+##
+## name : defaults
+## desc : multipath-tools default settings
+##
+#defaults {
+# #
+# # name : udev_dir
+# # desc : directory where udev creates its device nodes
+# # default : /dev
+# #
+# udev_dir /dev
+#
+# #
+# # name : polling_interval
+# # scope : multipathd
+# # desc : interval between two path checks in seconds
+# # default : 5
+# #
+# polling_interval 10
+#
+# #
+# # name : selector
+# # scope : multipath
+# # desc : the default path selector algorithm to use
+# # these algorithms are offered by the kernel multipath target
+# # values : "round-robin 0"
+# # default : "round-robin 0"
+# #
+# selector "round-robin 0"
+#
+# #
+# # name : path_grouping_policy
+# # scope : multipath
+# # desc : the default path grouping policy to apply to unspecified
+# # multipaths
+# # default : multibus
+# #
+# path_grouping_policy multibus
+#
+# #
+# # name : getuid_callout
+# # scope : multipath
+# # desc : the default program and args to callout to obtain a unique
+# # path identifier. Absolute path required
+# # default : /lib/udev/scsi_id -g -u -s
+# #
+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n"
+#
+# #
+# # name : prio_callout
+# # scope : multipath
+# # desc : the default program and args to callout to obtain a path
+# # priority value. The ALUA bits in SPC-3 provide an
+# # exploitable prio value for example. "none" is a valid value
+# # default : (null)
+# #
+# #prio_callout "/bin/true"
+#
+# #
+# # name : path_checker
+# # scope : multipath & multipathd
+# # desc : the default method used to determine the paths' state
+# # values : readsector0|tur|emc_clariion|hp_sw|directio
+# # default : directio
+# #
+# #path_checker directio
+#
+# #
+# # name : rr_min_io
+# # scope : multipath
+# # desc : the number of IO to route to a path before switching
+# # to the next in the same path group
+# # default : 1000
+# #
+# rr_min_io 100
+#
+# #
+# # name : rr_weight
+# # scope : multipath
+# # desc : if set to priorities the multipath configurator will assign
+# # path weights as "path prio * rr_min_io"
+# # values : priorities|uniform
+# # default : uniform
+# #
+# rr_weight priorities
+#
+# #
+# # name : failback
+# # scope : multipathd
+# # desc : tell the daemon to manage path group failback, or not to.
+# # 0 means immediate failback, values >0 means deffered failback
+# # expressed in seconds.
+# # values : manual|immediate|n > 0
+# # default : immediate
+# #
+# failback manual
+#
+# #
+# # name : no_path_retry
+# # scope : multipath & multipathd
+# # desc : tell the number of retries until disable queueing, or
+# # "fail" means immediate failure (no queueing),
+# # "queue" means never stop queueing
+# # values : queue|fail|n (>0)
+# # default : (null)
+# #
+# #no_path_retry queue
+#
+# #
+# # name : user_friendly_names
+# # scope : multipath
+# # desc : If set to "yes", using the bindings file
+# # /var/lib/multipath/bindings to assign a persistent and
+# # unique alias to the multipath, in the form of mpath<n>.
+# # If set to "no" use the WWID as the alias. In either case
+# # this be will be overriden by any specific aliases in this
+# # file.
+# # values : yes|no
+# # default : no
+# user_friendly_names no
+#
+#}
+#
+##
+## name : blacklist
+## scope : multipath & multipathd
+## desc : list of device names to discard as not multipath candidates
+## default : cciss, fd, hd, md, dm, sr, scd, st, ram, raw, loop
+##
+#blacklist {
+# wwid 26353900f02796769
+# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
+# devnode "^hd[a-z][[0-9]*]"
+# devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
+# device {
+# vendor DEC.*
+# product MSA[15]00
+# }
+#}
+##
+## name : blacklist_exceptions
+## scope : multipath & multipathd
+## desc : list of device names to be treated as multipath candidates
+## even if they are on the blacklist.
+## Note: blacklist exceptions are only valid in the same class.
+## It is not possible to blacklist devices using the devnode keyword
+## and to exclude some devices of them using the wwid keyword.
+## default : -
+##
+#blacklist_exceptions {
+# devnode "^dasd[c-d]+[0-9]*"
+# wwid "IBM.75000000092461.4d00.34"
+# wwid "IBM.75000000092461.4d00.35"
+# wwid "IBM.75000000092461.4d00.36"
+#}
+#
+##
+## name : multipaths
+## scope : multipath & multipathd
+## desc : list of multipaths finest-grained settings
+##
+#multipaths {
+# #
+# # name : multipath
+# # scope : multipath & multipathd
+# # desc : container for settings that apply to one specific multipath
+# #
+# multipath {
+# #
+# # name : wwid
+# # scope : multipath & multipathd
+# # desc : index of the container
+# #
+# wwid 3600508b4000156d700012000000b0000
+#
+# #
+# # name : alias
+# # scope : multipath
+# # desc : symbolic name for the multipath
+# #
+# alias yellow
+#
+# #
+# # name : path_grouping_policy
+# # scope : multipath
+# # desc : path grouping policy to apply to this multipath
+# # values : failover, multibus, group_by_serial
+# # default : failover
+# #
+# path_grouping_policy multibus
+#
+# #
+# # name : path_checker
+# # scope : multipathd
+# # desc : path checking alorithm to use to check path state
+# # values : readsector0|tur|emc_clariion|hp_sw|directio
+# # default : directio
+# #
+# # path_checker directio
+#
+# #
+# # name : path_selector
+# # desc : the path selector algorithm to use for this mpath
+# # these algo are offered by the kernel mpath target
+# # values : "round-robin 0"
+# # default : "round-robin 0"
+# #
+# path_selector "round-robin 0"
+#
+# #
+# # name : failback
+# # scope : multipathd
+# # desc : tell the daemon to manage path group failback, or not to.
+# # 0 means immediate failback, values >0 means deffered failback
+# # expressed in seconds.
+# # values : manual|immediate|n > 0
+# # default : immediate
+# #
+# failback manual
+#
+# #
+# # name : no_path_retry
+# # scope : multipath & multipathd
+# # desc : tell the number of retries until disable queueing, or
+# # "fail" means immediate failure (no queueing),
+# # "queue" means never stop queueing
+# # values : queue|fail|n (>0)
+# # default : (null)
+# #
+# #no_path_retry queue
+#
+# #
+# # name : rr_min_io
+# # scope : multipath
+# # desc : the number of IO to route to a path before switching
+# # to the next in the same path group
+# # default : 1000
+# #
+# rr_min_io 100
+# }
+# multipath {
+# wwid 1DEC_____321816758474
+# alias red
+# rr_weight priorities
+# }
+#}
+#
+##
+## name : devices
+## scope : multipath & multipathd
+## desc : list of per storage controller settings
+## overrides default settings (device_maps block)
+## overriden by per multipath settings (multipaths block)
+##
+#devices {
+# #
+# # name : device
+# # scope : multipath & multipathd
+# # desc : settings for this specific storage controller
+# #
+# device {
+# #
+# # name : vendor, product
+# # scope : multipath & multipathd
+# # desc : index for the block
+# #
+# vendor "COMPAQ "
+# product "HSV110 (C)COMPAQ"
+#
+# #
+# # name : path_grouping_policy
+# # scope : multipath
+# # desc : path grouping policy to apply to multipath hosted
+# # by this storage controller
+# # values : failover = 1 path per priority group
+# # multibus = all valid paths in 1 priority
+# # group
+# # group_by_serial = 1 priority group per detected
+# # serial number
+# # default : failover
+# #
+# path_grouping_policy multibus
+#
+# #
+# # name : getuid_callout
+# # scope : multipath
+# # desc : the program and args to callout to obtain a unique
+# # path identifier. Absolute path required
+# # default : /lib/udev/scsi_id -g -u -s
+# #
+# getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n"
+#
+# #
+# # name : prio_callout
+# # scope : multipath
+# # desc : the program and args to callout to obtain a path
+# # weight. Weights are summed for each path group to
+# # determine the next PG to use case of failure.
+# # "none" is a valid value.
+# # default : no callout, all paths equals
+# #
+# prio_callout "/sbin/mpath_prio_balance_units %d"
+#
+# #
+# # name : path_checker
+# # scope : multipathd
+# # desc : path checking alorithm to use to check path state
+# # values : readsector0|tur|emc_clariion|hp_sw|directio
+# # default : directio
+# #
+# path_checker directio
+#
+# #
+# # name : path_selector
+# # desc : the path selector algorithm to use for this mpath
+# # these algo are offered by the kernel mpath target
+# # values : "round-robin 0"
+# # default : "round-robin 0"
+# #
+# path_selector "round-robin 0"
+#
+# #
+# # name : failback
+# # scope : multipathd
+# # desc : tell the daemon to manage path group failback, or not to.
+# # 0 means immediate failback, values >0 means deffered failback
+# # expressed in seconds.
+# # values : manual|immediate|n > 0
+# # default : immediate
+# #
+# failback 30
+#
+# #
+# # name : rr_min_io
+# # scope : multipath
+# # desc : the number of IO to route to a path before switching
+# # to the next in the same path group
+# # default : 1000
+# #
+# rr_min_io 100
+#
+# #
+# # name : product_blacklist
+# # scope : multipath & multipathd
+# # desc : product strings to blacklist for this vendor
+# # default : none
+# #
+# product_blacklist LUN_Z
+# }
+# device {
+# vendor "COMPAQ "
+# product "MSA1000 "
+# path_grouping_policy multibus
+# path_checker tur
+# rr_weight priorities
+# }
+#}
diff --git a/community/multipath-tools/multipathd.rc b/community/multipath-tools/multipathd.rc
new file mode 100644
index 000000000..21ffcaa5a
--- /dev/null
+++ b/community/multipath-tools/multipathd.rc
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting multipathd"
+ /sbin/multipathd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon multipathd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping multipathd"
+ [ -f /var/run/multipathd.pid ] && kill `cat /var/run/multipathd.pid` >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon multipathd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/mumble/PKGBUILD b/community/mumble/PKGBUILD
new file mode 100644
index 000000000..1bf5bad2e
--- /dev/null
+++ b/community/mumble/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 40148 2011-02-20 17:41:47Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Lauri Niskanen <ape@ape3000.com>
+# Contributor: Sebastian.Salich@gmx.de
+# Contributor: Doc Angelo
+
+# If you want support for your G15 Keyboard, please add 'g15daemon'
+# to the depends and delete "no-g15" in the configure line below
+
+pkgname=mumble
+pkgver=1.2.3
+pkgrel=3
+arch=('i686' 'x86_64')
+pkgdesc="A voice chat application similar to TeamSpeak"
+license=('GPL')
+depends=('qt' 'speex' 'lsb-release' 'libxi' 'avahi' 'libsndfile' 'protobuf' 'libpulse')
+makedepends=('boost' 'mesa' 'avahi')
+#optdepends=('portaudio: for portaudio back-end' 'g15daemon: G15 Keyboard support')
+options=('!libtool')
+install=mumble.install
+url="http://mumble.sourceforge.net/"
+source=("http://downloads.sourceforge.net/mumble/$pkgname-$pkgver.tar.gz" \
+ mumble11x.desktop )
+md5sums=('55804e3dfe98b16eeb40abca6c254625'
+ '70dcaa8ad2ecf68c6ba52ea03d112bcd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Building mumble
+ /usr/bin/qmake main.pro \
+ CONFIG+="bundled-celt no-bundled-speex no-speechd no-g15 no-xevie no-server \
+ no-embed-qt-translations packaged" \
+ DEFINES+="PLUGIN_PATH=/usr/lib/mumble"
+ make release
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # bin stuff
+ install -m755 -D ./release/mumble $pkgdir/usr/bin/mumble
+ install -m755 -D ./release/mumble11x $pkgdir/usr/bin/mumble11x
+ install -m755 -D ./scripts/mumble-overlay $pkgdir/usr/bin/mumble-overlay
+
+ # lib stuff
+ install -m755 -D ./release/libmumble.so.$pkgver $pkgdir/usr/lib/mumble/libmumble.so.$pkgver
+ ln -s libmumble.so.$pkgver $pkgdir/usr/lib/mumble/libmumble.so
+ ln -s libmumble.so.$pkgver $pkgdir/usr/lib/mumble/libmumble.so.1
+ ln -s libmumble.so.$pkgver $pkgdir/usr/lib/mumble/libmumble.so.1.2
+ install -m755 -D ./release/plugins/liblink.so $pkgdir/usr/lib/mumble/liblink.so
+ install -m755 -D ./release/plugins/libmanual.so $pkgdir/usr/lib/mumble/libmanual.so
+ install -m755 -D ./release/libcelt* $pkgdir/usr/lib/mumble/
+
+ # other stuff
+ install -m644 -D ./scripts/mumble.desktop $pkgdir/usr/share/applications/mumble.desktop
+ install -m644 -D $srcdir/mumble11x.desktop $pkgdir/usr/share/applications/mumble11x.desktop
+ install -m755 -d $pkgdir/usr/share/man/man1
+ install -m644 -D ./man/mum* $pkgdir/usr/share/man/man1/
+ install -m644 -D ./icons/mumble.svg $pkgdir/usr/share/icons/hicolor/scalable/apps/mumble.svg
+}
+# vim: sw=2:ts=2 et:
diff --git a/community/mumble/mumble.install b/community/mumble/mumble.install
new file mode 100644
index 000000000..547348418
--- /dev/null
+++ b/community/mumble/mumble.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/mumble/mumble11x.desktop b/community/mumble/mumble11x.desktop
new file mode 100644
index 000000000..5dba0d0c6
--- /dev/null
+++ b/community/mumble/mumble11x.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Mumble (1.1.X compatible)
+GenericName=Voice Chat
+Comment=Voice chat program (compatible with Mumble 1.1.X)
+Exec=mumble11x
+Icon=mumble
+Terminal=false
+Type=Application
+StartupNotify=false
+Categories=Network;Chat;Qt;
+Version=1.2.1
diff --git a/community/mupdf/PKGBUILD b/community/mupdf/PKGBUILD
new file mode 100644
index 000000000..69c92cbc7
--- /dev/null
+++ b/community/mupdf/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Pierre-Paul Paquin <pierrepaulpaquin@gmail.com>
+# Contributor: xduugu (.desktop and install files)
+
+pkgname=mupdf
+pkgver=0.8.15
+pkgrel=1
+pkgdesc="lightweight PDF viewer and toolkit written in portable C"
+arch=('i686' 'x86_64')
+url="http://mupdf.com"
+license=('GPL3')
+depends=('freetype2' 'libjpeg' 'jbig2dec' 'openjpeg' 'libxext')
+install=mupdf.install
+source=("http://mupdf.com/download/$pkgname-$pkgver-source.tar.gz")
+md5sums=('ba6159fab82999599d36534cda07957f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make build=release prefix="$pkgdir/usr"
+}
+
+package() {
+
+ # Install
+ cd "$srcdir/$pkgname-$pkgver"
+ make build=release prefix="${pkgdir}/usr" install
+
+ # Rename executables
+ msg "Renaming executables"
+ cd "${pkgdir}/usr/bin"
+ for i in pdf*; do
+ mv "$i" "$i-mupdf";
+ done
+
+ cd "$srcdir/$pkgname-$pkgver"
+ # Fix mupdf.desktop
+ sed -i "s/mupdf.xpm/mupdf/" debian/mupdf.desktop
+ sed -i "s/application\/x-pdf/application\/x-pdf/" debian/mupdf.desktop
+
+ # Install other stuff
+ cd "$srcdir/$pkgname-$pkgver/debian"
+ install -Dm644 mupdf.desktop "$pkgdir/usr/share/applications/mupdf.desktop"
+ install -Dm644 mupdf.xpm "$pkgdir/usr/share/pixmaps/mupdf.xpm"
+}
diff --git a/community/mupdf/mupdf.install b/community/mupdf/mupdf.install
new file mode 100644
index 000000000..7f12704ae
--- /dev/null
+++ b/community/mupdf/mupdf.install
@@ -0,0 +1,13 @@
+post_install() {
+ [ -x /usr/bin/update-desktop-database ] || return 0
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/community/mupen64plus/PKGBUILD b/community/mupen64plus/PKGBUILD
new file mode 100644
index 000000000..e9fa43eb7
--- /dev/null
+++ b/community/mupen64plus/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 35335 2010-12-18 23:49:02Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Zephyr
+
+pkgname=mupen64plus
+pkgver=1.99.4
+pkgrel=1
+pkgdesc='Nintendo64 Emulator'
+arch=('i686' 'x86_64')
+url='http://code.google.com/p/mupen64plus/'
+license=('GPL')
+depends=('mesa' 'libsamplerate' 'libpng' 'sdl' 'freetype2')
+source=("http://mupen64plus.googlecode.com/files/mupen64plus-bundle-src-${pkgver}.tar.gz")
+md5sums=('81c4f11c341d7ea4dbd81cf2f0467dc2')
+
+build() {
+ cd mupen64plus-bundle-src-${pkgver}
+
+ sh m64p_build.sh
+}
+
+package() {
+ cd mupen64plus-bundle-src-$pkgver
+
+ # set LDCONFIG since we are using fakeroot and scripts run root commands by checking the uid
+ ./m64p_install.sh DESTDIR="$pkgdir" PREFIX='/usr' MANDIR='/usr/share/man' LDCONFIG='true'
+}
+
+# vim: ts=2:sw=2:et
diff --git a/community/murmur/0003-fix-long-username-query.patch b/community/murmur/0003-fix-long-username-query.patch
new file mode 100644
index 000000000..2fc52f70c
--- /dev/null
+++ b/community/murmur/0003-fix-long-username-query.patch
@@ -0,0 +1,42 @@
+commit 6b33dda344f89e5a039b7d79eb43925040654242
+Author: Benjamin Jemlich <pcgod@users.sourceforge.net>
+Date: Tue Jun 29 14:49:14 2010 +0200
+
+ Don't crash on long usernames
+
+diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
+index f12867a..de307ea 100644
+--- a/src/murmur/Messages.cpp
++++ b/src/murmur/Messages.cpp
+@@ -1231,6 +1231,9 @@ void Server::msgQueryUsers(ServerUser *uSource, MumbleProto::QueryUsers &msg) {
+
+ for (int i=0;i<msg.names_size();++i) {
+ QString name = u8(msg.names(i));
++ if (!validateUserName(name)) {
++ continue;
++ }
+ int id = getUserID(name);
+ if (id >= 0) {
+ name = getUserName(id);
+diff --git a/src/murmur/ServerDB.cpp b/src/murmur/ServerDB.cpp
+index 11b6906..7e15def 100644
+--- a/src/murmur/ServerDB.cpp
++++ b/src/murmur/ServerDB.cpp
+@@ -810,7 +810,7 @@ int Server::authenticate(QString &name, const QString &pw, const QStringList &em
+ TransactionHolder th;
+ QSqlQuery &query = *th.qsqQuery;
+
+- SQLPREP("SELECT `user_id`,`name`,`pw` FROM `%1users` WHERE `server_id` = ? AND `name` like ?");
++ SQLPREP("SELECT `user_id`,`name`,`pw` FROM `%1users` WHERE `server_id` = ? AND LOWER(`name`) = LOWER(?)");
+ query.addBindValue(iServerNum);
+ query.addBindValue(name);
+ SQLEXEC();
+@@ -1051,7 +1051,7 @@ int Server::getUserID(const QString &name) {
+ TransactionHolder th;
+
+ QSqlQuery &query = *th.qsqQuery;
+- SQLPREP("SELECT `user_id` FROM `%1users` WHERE `server_id` = ? AND `name` like ?");
++ SQLPREP("SELECT `user_id` FROM `%1users` WHERE `server_id` = ? AND LOWER(`name`) = LOWER(?)");
+ query.addBindValue(iServerNum);
+ query.addBindValue(name);
+ SQLEXEC();
diff --git a/community/murmur/0004-fix-username-validation.patch b/community/murmur/0004-fix-username-validation.patch
new file mode 100644
index 000000000..493f78ba5
--- /dev/null
+++ b/community/murmur/0004-fix-username-validation.patch
@@ -0,0 +1,36 @@
+commit 5c40cfeb4b5f8911df926c19f2dd628703840f64
+Author: Stefan Hacker <dd0t@users.sourceforge.net>
+Date: Tue Jun 29 23:39:16 2010 +0200
+
+ Don't validate the name before we are sure it wasn't already validated by an authenticator
+
+diff --git a/src/murmur/Messages.cpp b/src/murmur/Messages.cpp
+index de307ea..f12867a 100644
+--- a/src/murmur/Messages.cpp
++++ b/src/murmur/Messages.cpp
+@@ -1231,9 +1231,6 @@ void Server::msgQueryUsers(ServerUser *uSource, MumbleProto::QueryUsers &msg) {
+
+ for (int i=0;i<msg.names_size();++i) {
+ QString name = u8(msg.names(i));
+- if (!validateUserName(name)) {
+- continue;
+- }
+ int id = getUserID(name);
+ if (id >= 0) {
+ name = getUserName(id);
+diff --git a/src/murmur/ServerDB.cpp b/src/murmur/ServerDB.cpp
+index 7e15def..70b4ca4 100644
+--- a/src/murmur/ServerDB.cpp
++++ b/src/murmur/ServerDB.cpp
+@@ -1048,6 +1048,11 @@ int Server::getUserID(const QString &name) {
+ qhUserNameCache.insert(id, name);
+ return id;
+ }
++
++ if (!validateUserName(name)) {
++ return id;
++ }
++
+ TransactionHolder th;
+
+ QSqlQuery &query = *th.qsqQuery;
diff --git a/community/murmur/ChangeLog b/community/murmur/ChangeLog
new file mode 100644
index 000000000..7537836fa
--- /dev/null
+++ b/community/murmur/ChangeLog
@@ -0,0 +1,36 @@
+2010-02-11 Otto Allmendinger <otto.allmendinger@googlemail.com>
+ * 1.2.2-1:
+ bump to version 1.2.2
+
+2010-01-09 Otto Allmendinger <otto.allmendinger@googlemail.com>
+ * 1.2.1-1:
+ bump to version 1.2.1
+
+2009-12-18 Otto Allmendinger <otto.allmendinger@googlemail.com>
+ * 1.2.0-8:
+ included dbus configuration file, changed default dbus settings
+
+ * 1.2.0-7:
+ included manfile
+ renamed binary "murmur" to "murmurd" to be consistent with manfile
+ changed murmur user shell to /bin/false (shell access not required anymore)
+
+2009-12-17 Malte Rabenseifner <malte@zearan.de>
+ * 1.2.0-6:
+ included manfile
+ using mumbles included privilige dropping
+ added some files to backup array
+ added logrotate configuration file
+
+2009-12-15 Otto Allmendinger <otto.allmendinger@googlemail.com>
+ * 1.2.0-5 :
+ simplified dependencies
+ increased visibility of install messages
+
+ * 1.2.0-4 :
+ added boost to makedepends
+
+ * 1.2.0-3 :
+ added ChangeLog
+ added post_upgrade() function
+ added x86_64 to arch
diff --git a/community/murmur/PKGBUILD b/community/murmur/PKGBUILD
new file mode 100644
index 000000000..de2865f60
--- /dev/null
+++ b/community/murmur/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 40102 2011-02-20 03:59:25Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Otto Allmendinger <otto.allmendinger@googlemail.com>
+# Contributor: Malte Rabenseifner <malte@zearan.de>
+
+pkgname=murmur
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="The voice chat application server for Mumble"
+arch=('i686' 'x86_64')
+url="http://mumble.sourceforge.net"
+license=('GPL')
+depends=('avahi' 'lsb-release' 'protobuf' 'qt>=4.4.0')
+makedepends=('boost')
+conflicts=('murmur-ice' 'murmur-static' 'murmur-git')
+backup=("etc/murmur.ini"
+ "etc/logrotate.d/murmur"
+ "etc/conf.d/murmur" )
+install="murmur.install"
+source=("http://downloads.sourceforge.net/mumble/mumble-$pkgver.tar.gz"
+ "murmur.rc.d"
+ "murmur.conf.d"
+ "murmur.dbus.conf"
+ "murmur.logrotate.d"
+)
+md5sums=('55804e3dfe98b16eeb40abca6c254625'
+ 'b99061be67c54bf0bb4a061fd1280281'
+ '11c1cc875e8021739ec2087252cf0533'
+ 'eddea4cdbd0bde4b960a67e16b5d5478'
+ 'c56726cb267ead68f37f35c28e36e6fa'
+)
+
+build() {
+ cd ${srcdir}/mumble-$pkgver
+
+ qmake main.pro CONFIG+="no-client no-ice"
+ make
+}
+
+package() {
+ cd ${srcdir}/mumble-$pkgver
+
+ sed -e "1i# vi:ft=cfg" \
+ -e "s|database=|database=/var/lib/murmur/murmur.sqlite|" \
+ -e "s|dbus=session|#dbus=system|" \
+ -e "s|#logfile=murmur.log|logfile=/var/log/murmur/murmur.log|" \
+ -e "s|#pidfile=|pidfile=/var/run/murmur/murmur.pid|" \
+ -e "s|#uname=|uname=murmur|" \
+ -i scripts/murmur.ini
+
+ install -dm755 ${pkgdir}/var/lib/murmur
+ install -dm755 ${pkgdir}/var/log/murmur
+ install -dm755 ${pkgdir}/var/run/murmur
+ install -Dm755 release/murmurd ${pkgdir}/usr/sbin/murmurd
+ install -Dm644 scripts/murmur.ini ${pkgdir}/etc/murmur.ini
+ install -Dm755 ${srcdir}/murmur.rc.d ${pkgdir}/etc/rc.d/murmur
+ install -Dm644 ${srcdir}/murmur.conf.d ${pkgdir}/etc/conf.d/murmur
+ install -Dm644 ${srcdir}/murmur.dbus.conf \
+ ${pkgdir}/etc/dbus-1/system.d/murmur.conf
+ install -Dm644 ${srcdir}/murmur.logrotate.d \
+ ${pkgdir}/etc/logrotate.d/murmur
+ install -Dm644 README ${pkgdir}/usr/share/doc/murmur/README
+ install -Dm644 man/murmurd.1 ${pkgdir}/usr/share/man/man1/murmurd.1
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community/murmur/murmur.conf.d b/community/murmur/murmur.conf.d
new file mode 100644
index 000000000..592194be9
--- /dev/null
+++ b/community/murmur/murmur.conf.d
@@ -0,0 +1,2 @@
+# Use /etc/murmur.ini as configuration file
+PARAMS="-ini /etc/murmur.ini"
diff --git a/community/murmur/murmur.dbus.conf b/community/murmur/murmur.dbus.conf
new file mode 100644
index 000000000..cf937d7b1
--- /dev/null
+++ b/community/murmur/murmur.dbus.conf
@@ -0,0 +1,22 @@
+<!-- vi: set ft=xml: -->
+<!--
+ As described in http://mumble.sourceforge.net/DBus,
+ but with different username
+-->
+<!DOCTYPE busconfig PUBLIC
+ "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+ <policy user="murmur">
+ <allow own="net.sourceforge.mumble.murmur"/>
+ </policy>
+ <policy user="root">
+ <allow own="net.sourceforge.mumble.murmur"/>
+ </policy>
+
+ <policy context="default">
+ <allow send_destination="net.sourceforge.mumble.murmur"/>
+ <allow receive_sender="net.sourceforge.mumble.murmur"/>
+ </policy>
+</busconfig>
diff --git a/community/murmur/murmur.install b/community/murmur/murmur.install
new file mode 100644
index 000000000..9e1446d2e
--- /dev/null
+++ b/community/murmur/murmur.install
@@ -0,0 +1,33 @@
+post_install() {
+
+ # bug: dbus reload here doesn't work
+ # workaround: it seems to work if you do it a few seconds later, manually
+ /etc/rc.d/dbus reload > /dev/null
+
+ /usr/bin/getent group murmur > /dev/null || /usr/sbin/groupadd murmur
+ /usr/bin/getent passwd murmur > /dev/null || \
+ /usr/sbin/useradd -d /var/lib/murmur -g murmur -s /bin/false murmur
+
+ chown -R murmur:murmur /var/lib/murmur
+ chown -R murmur:murmur /var/run/murmur
+ chown -R murmur:murmur /var/log/murmur
+
+ echo
+ echo '==> Set the SuperUser password with (as root):'
+ echo '==> murmurd -ini /etc/murmur.ini -supw PASSWORD'
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ [ -f /var/run/daemons/murmur ] && /etc/rc.d/murmur stop > /dev/null
+ killall -u murmur -5
+ sleep 1
+}
+
+post_remove() {
+ /etc/rc.d/dbus reload > /dev/null
+ /usr/sbin/userdel murmur > /dev/null
+}
diff --git a/community/murmur/murmur.logrotate.d b/community/murmur/murmur.logrotate.d
new file mode 100644
index 000000000..e113175ab
--- /dev/null
+++ b/community/murmur/murmur.logrotate.d
@@ -0,0 +1,6 @@
+/var/log/murmur/murmur.log {
+ missingok
+ postrotate
+ /bin/kill -HUP `cat /var/run/murmur/murmur.pid 2>/dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/community/murmur/murmur.rc.d b/community/murmur/murmur.rc.d
new file mode 100644
index 000000000..7a41e77da
--- /dev/null
+++ b/community/murmur/murmur.rc.d
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+CONF=/etc/conf.d/murmur
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f $CONF ] && . $CONF
+
+PID=$(pidof -o %PPID /usr/sbin/murmurd)
+case "$1" in
+ start)
+ stat_busy "Starting murmur"
+ [ -z "$PID" ] && /usr/sbin/murmurd $PARAMS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon murmur
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping murmur"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon murmur
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/musca/PKGBUILD b/community/musca/PKGBUILD
new file mode 100644
index 000000000..34ab9b843
--- /dev/null
+++ b/community/musca/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 31936 2010-11-08 00:00:11Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Murtuza Akhtari <inxsible at gmail dot com>
+
+pkgname=musca
+pkgver=0.9.24
+pkgrel=1
+pkgdesc='A simple X11 dynamic window manager with features nicked from ratpoison and dwm.'
+arch=('i686' 'x86_64')
+url='http://aerosuidae.net/musca/'
+license=('GPL3')
+depends=('libx11' 'dmenu')
+source=("http://aerosuidae.net/${pkgname}-${pkgver}.tgz")
+md5sums=('e067a8e39b1a97d62fc8e43800edee70')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -Dm755 "${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
+ install -Dm644 "${pkgname}.1" "${pkgdir}/usr/share/man/man1/${pkgname}.1"
+}
diff --git a/community/musepack-tools/ChangeLog b/community/musepack-tools/ChangeLog
new file mode 100644
index 000000000..a02319ee1
--- /dev/null
+++ b/community/musepack-tools/ChangeLog
@@ -0,0 +1,9 @@
+2010-02-04 Corrado Primier <bardo@aur.archlinux.org>
+
+ * ChangeLog: added
+
+ * PKGBUILD: removed unnecessary esd dependency; added libcuefile and
+ libreplaygain dependencies; rewritten build function to usa cmake; added
+ cmake makedepend
+
+ * math.patch: added
diff --git a/community/musepack-tools/PKGBUILD b/community/musepack-tools/PKGBUILD
new file mode 100644
index 000000000..3cb7732d0
--- /dev/null
+++ b/community/musepack-tools/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 11191 2010-02-06 17:49:24Z dgriffiths $
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+
+pkgname=musepack-tools
+pkgver=435
+pkgrel=2
+pkgdesc="Musepack decoder/encoder"
+arch=('i686' 'x86_64')
+url="http://www.musepack.net/"
+license=('LGPL')
+depends=('libcuefile' 'libreplaygain')
+makedepends=('cmake')
+source=(http://files.musepack.net/source/musepack_src_r${pkgver}.tar.gz math.patch)
+md5sums=('0e858972978fe480fd1400b7331061de' 'f9d51d2d7ba46fbdc4d038596871f9e0')
+
+build() {
+ export LDFLAGS="${LDFLAGS} -lm"
+ cd ${srcdir}/musepack_src_r${pkgver}
+
+ patch -Np0 -i ${srcdir}/math.patch || return 1
+
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SKIP_RPATH=ON .. || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ for bin in chap cut dec enc gain 2sv8; do
+ install -Dm755 ${srcdir}/musepack_src_r${pkgver}/build/mpc${bin}/mpc${bin} \
+ ${pkgdir}/usr/bin/mpc${bin}
+ done
+}
diff --git a/community/musepack-tools/math.patch b/community/musepack-tools/math.patch
new file mode 100644
index 000000000..11588cbbf
--- /dev/null
+++ b/community/musepack-tools/math.patch
@@ -0,0 +1,22 @@
+--- include/mpc/mpcmath.h.orig 2009-07-25 16:49:10.000000000 +0300
++++ include/mpc/mpcmath.h 2009-07-31 15:33:45.000000000 +0300
+@@ -16,6 +16,8 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
++#include <math.h>
++
+ #include <mpc/mpc_types.h>
+
+ typedef union mpc_floatint
+--- CMakeLists.txt.orig 2008-03-29 20:23:23.000000000 +0100
++++ CMakeLists.txt 2010-02-04 12:31:27.498930581 +0100
+@@ -9,7 +9,7 @@
+ add_definitions(-DFAST_MATH -DCVD_FASTLOG)
+
+ if(NOT MSVC)
+-set(CMAKE_C_FLAGS "-O3 -fomit-frame-pointer -pipe")
++set(CMAKE_C_FLAGS "-O3 -fomit-frame-pointer -pipe -lm")
+ endif(NOT MSVC)
+
+ add_subdirectory(libmpcdec)
diff --git a/community/musescore/PKGBUILD b/community/musescore/PKGBUILD
new file mode 100644
index 000000000..294105fbc
--- /dev/null
+++ b/community/musescore/PKGBUILD
@@ -0,0 +1,37 @@
+# Contributor: Cristian Maureira <saint [at] archlinux.cl>
+# Previous Contributor: Dr.Egg <rwhite @ archlinux . us>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de
+
+pkgname=musescore
+pkgver=1.0
+pkgrel=1
+pkgdesc="A music score editor written in Qt4"
+arch=('i686' 'x86_64')
+url="http://www.musescore.org/en/"
+license=('GPL')
+depends=('qt>=4.5.0' 'openssl' 'libsndfile' 'qtscriptgenerator')
+makedepends=('cmake' 'doxygen')
+optdepends=('portaudio' 'jack-audio-connection-kit')
+conflicts=('musescore-svn' 'mscore')
+source=(http://downloads.sourceforge.net/project/mscore/mscore/MuseScore-${pkgver}/MuseScore-${pkgver}.tar.bz2 'paths.patch')
+md5sums=('475c7c5abdaa80318b207884475de9ac'
+ 'e5011154d217f633f21b4bb70e589510')
+
+build() {
+ cd $srcdir/mscore-${pkgver}
+ export QT_PLUGINS_DIR=/usr/lib/qt/plugins
+ [ -d build ] && make clean
+ patch -p1 < $srcdir/paths.patch
+ sed -i 's+${Mscore_INSTALL_NAME}man+doc/mscore+' \
+ "$srcdir"/mscore-$pkgver/mscore/manual/CMakeLists.txt
+ make PREFIX=/usr release
+}
+package() {
+ cd $srcdir/mscore-${pkgver}
+ make DESTDIR="$pkgdir" install
+ # avoid file conflict with "qtscriptgenerator"
+ for _i in gui network core uitools xml
+ do
+ rm $pkgdir/usr/lib/qt/plugins/script/libqtscript_${_i}.so
+ done
+}
diff --git a/community/musescore/QtEvent.patch b/community/musescore/QtEvent.patch
new file mode 100644
index 000000000..d8aa1562d
--- /dev/null
+++ b/community/musescore/QtEvent.patch
@@ -0,0 +1,19 @@
+diff -Naur mscore-0.9.6.3.orig/mscore/scriptgen/qtbindings/core/qtscript_QEvent.cpp mscore-0.9.6.3.new/mscore/scriptgen/qtbindings/core/qtscript_QEvent.cpp
+--- mscore-0.9.6.3.orig/mscore/scriptgen/qtbindings/core/qtscript_QEvent.cpp 2010-10-12 22:01:35.000000000 +0200
++++ mscore-0.9.6.3.new/mscore/scriptgen/qtbindings/core/qtscript_QEvent.cpp 2010-10-12 22:03:11.000000000 +0200
+@@ -214,7 +214,6 @@
+ , QEvent::UngrabMouse
+ , QEvent::GrabKeyboard
+ , QEvent::UngrabKeyboard
+- , QEvent::CocoaRequestModal
+ , QEvent::User
+ , QEvent::MaxUser
+ };
+@@ -362,7 +361,6 @@
+ , "UngrabMouse"
+ , "GrabKeyboard"
+ , "UngrabKeyboard"
+- , "CocoaRequestModal"
+ , "User"
+ , "MaxUser"
+ };
diff --git a/community/musescore/paths.patch b/community/musescore/paths.patch
new file mode 100644
index 000000000..98bf4b3d5
--- /dev/null
+++ b/community/musescore/paths.patch
@@ -0,0 +1,22 @@
+diff -Naur musescore-svn.orig//mscore/mscore/mscore.cpp musescore-svn.new//mscore/mscore/mscore.cpp
+--- musescore-svn.orig//mscore/mscore/mscore.cpp 2010-06-16 23:10:27.000000000 +0200
++++ musescore-svn.new//mscore/mscore/mscore.cpp 2010-06-16 23:13:59.000000000 +0200
+@@ -897,15 +897,15 @@
+ if (debugMode)
+ printf("open handbook for language <%s>\n", qPrintable(lang));
+
+- QFileInfo mscoreHelp(mscoreGlobalShare + QString("man/MuseScore-") + lang + QString(".pdf"));
++ QFileInfo mscoreHelp(mscoreGlobalShare + QString("../doc/musescore/MuseScore-") + lang + QString(".pdf"));
+ if (!mscoreHelp.isReadable()) {
+ if (debugMode) {
+ printf("cannot open doc <%s>\n", qPrintable(mscoreHelp.filePath()));
+ }
+ lang = lang.left(2);
+- mscoreHelp.setFile(mscoreGlobalShare + QString("man/MuseScore-") + lang + QString(".pdf"));
++ mscoreHelp.setFile(mscoreGlobalShare + QString("../doc/mscore/MuseScore-") + lang + QString(".pdf"));
+ if(!mscoreHelp.isReadable()){
+- mscoreHelp.setFile(mscoreGlobalShare + QString("man/MuseScore-en.pdf"));
++ mscoreHelp.setFile(mscoreGlobalShare + QString("../doc/mscore/MuseScore-en.pdf"));
+ if (!mscoreHelp.isReadable()) {
+ QString info(tr("MuseScore handbook not found at: \n"));
+ info += mscoreHelp.filePath();
diff --git a/community/mxml/PKGBUILD b/community/mxml/PKGBUILD
new file mode 100644
index 000000000..e6ca08f12
--- /dev/null
+++ b/community/mxml/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 4277 2009-10-19 20:28:23Z giovanni $
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Johannes Sjolund <j.sjolund@gmail.com>
+
+pkgname=mxml
+pkgver=2.6
+pkgrel=1
+pkgdesc="A small XML parsing library "
+arch=('i686' 'x86_64')
+url="http://www.minixml.org/"
+license=('LGPL')
+depends=('glibc')
+source=(http://ftp.easysw.com/pub/mxml/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('68977789ae64985dddbd1a1a1652642e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DSTROOT=$pkgdir install
+ chmod -x $pkgdir/usr/lib/libmxml.a
+}
diff --git a/community/mygui/PKGBUILD b/community/mygui/PKGBUILD
new file mode 100644
index 000000000..0064708a5
--- /dev/null
+++ b/community/mygui/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 41951 2011-03-11 07:40:58Z ibiru $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Andrew Belitsky <belitsky.a@gmail.com>
+pkgbase=mygui
+pkgname=('mygui' 'mygui-docs')
+pkgver=3.0.1
+pkgrel=6
+pkgdesc="A multilayer and overlappable GUI System for OGRE"
+arch=('i686' 'x86_64')
+url="http://mygui.info/"
+license=('LGPL')
+depends=('boost-libs' 'ogre' 'ois')
+makedepends=('boost' 'cmake' 'doxygen' 'graphviz')
+install=mygui.install
+source=("http://downloads.sourceforge.net/project/my-gui/MyGUI/MyGUI_3.0.1/MyGUI_3.0.1_source.zip")
+md5sums=('e9e82bf60081be58fea3f64d32e2ab3a')
+
+build() {
+ cd $srcdir/MyGUI3.0
+
+ # change CMake config so demos install to /opt
+ sed -i 's:"bin:"../opt/MYGUI:' CMake/Utils/MyGUIConfigTargets.cmake
+ sed -i -e 's:../share:/usr/share:' \
+ -e 's:"bin":"../opt/MYGUI":' \
+ CMake/InstallResources.cmake
+
+ # get a clean build dir
+ [[ -d build ]] && rm -rf build
+ mkdir build
+ cd build
+
+ # generate CMake Makefile
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMYGUI_INSTALL_SAMPLES=TRUE \
+ -DMYGUI_INSTALL_TOOLS=TRUE \
+ -DMYGUI_INSTALL_DOCS=TRUE \
+ -DMYGUI_INSTALL_MEDIA=TRUE \
+ -DCMAKE_BUILD_TYPE=Release # set=Debug for debugging version
+
+ # compile
+ make
+
+ # generate docs
+ if [[ $(which dot) && $(which doxygen) ]]; then
+ make api-docs 2>/dev/null
+ fi
+}
+
+package_mygui() {
+ optdepends=('mygui-docs: documentation')
+
+ cd $srcdir/MyGUI3.0/build
+
+ # install the whole bunch
+ make DESTDIR="$pkgdir" install
+
+ # make demos work
+ chown root:users $pkgdir/opt/MYGUI
+ chmod 775 $pkgdir/opt/MYGUI
+}
+
+package_mygui-docs() {
+ pkgdesc="Documentation for mygui"
+ depends=()
+
+ cd $srcdir/MyGUI3.0
+
+ # install docs
+ install -d $pkgdir/usr/share/doc/
+ cp -r Docs/html $pkgdir/usr/share/doc/MYGUI
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/mygui/mygui.install b/community/mygui/mygui.install
new file mode 100644
index 000000000..8db799a0e
--- /dev/null
+++ b/community/mygui/mygui.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo "To view the MyGUI samples, go to /opt/MYGUI/ and run the samples individually"
+}
diff --git a/community/myodbc/PKGBUILD b/community/myodbc/PKGBUILD
new file mode 100644
index 000000000..30705c693
--- /dev/null
+++ b/community/myodbc/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 42568 2011-03-17 15:04:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=myodbc
+pkgver=5.1.8
+pkgrel=1
+pkgdesc="ODBC driver/connector for MySQL"
+arch=(i686 x86_64)
+url="http://dev.mysql.com/downloads/connector/odbc/"
+depends=('unixodbc' 'libmysqlclient')
+license=('GPL')
+options=('!libtool')
+source=("http://mysql.cce.usp.br/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-${pkgver}.tar.gz"
+ myodbc-64bit.patch
+ myodbc-add-mysys.patch
+ myodbc-my-free.patch
+ myodbc-shutdown.patch)
+md5sums=('c64d8cec9de453bdf48fcb168643b943'
+ '142a985fa0d3273df04399148ef27533'
+ '8d019f9b6a10a6a56d835e7e4e22d215'
+ '2d1636160af606323014b112c9481cf2'
+ 'ec43ad7b5c887a7de4b6024899ff886c')
+
+build() {
+ cd $srcdir/mysql-connector-odbc-${pkgver}
+
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/myodbc-64bit.patch
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/myodbc-add-mysys.patch
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/myodbc-my-free.patch
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/myodbc-shutdown.patch
+
+ [ $NOEXTRACT -eq 1 ] || CFLAGS=-DTHREAD LDFLAGS=-lmysqld ./configure --prefix=/usr --sysconfdir=/etc --with-unixODBC=/usr \
+ --with-mysql-path=/usr --without-samples --enable-thread-safe \
+ --without-x --without-qt --disable-gui --enable-shared \
+ --disable-static --disable-test
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/myodbc/myodbc-64bit.patch b/community/myodbc/myodbc-64bit.patch
new file mode 100644
index 000000000..ac62d816a
--- /dev/null
+++ b/community/myodbc/myodbc-64bit.patch
@@ -0,0 +1,85 @@
+Fix some 64-bitness issues arising from unixODBC 2.2.14 changes.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/utility.c mysql-connector-odbc-5.1.8/driver/utility.c
+--- mysql-connector-odbc-5.1.8.orig/driver/utility.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/utility.c 2010-12-23 17:15:37.516602586 -0500
+@@ -1205,7 +1205,7 @@
+ {
+ /* See comment for fill_transfer_oct_len_buff()*/
+ SQLLEN size= get_display_size(stmt, field);
+- sprintf(buff,size == SQL_NO_TOTAL ? "%d" : (sizeof(SQLLEN) == 4 ? "%lu" : "%lld"), size);
++ sprintf(buff, (size == SQL_NO_TOTAL ? "%ld" : "%lu"), size);
+
+ return size;
+ }
+@@ -1228,7 +1228,7 @@
+ */
+ SQLLEN len= get_transfer_octet_length(stmt, field);
+
+- sprintf(buff, len == SQL_NO_TOTAL ? "%d" : (sizeof(SQLLEN) == 4 ? "%lu" : "%lld"), len );
++ sprintf(buff, (len == SQL_NO_TOTAL ? "%ld" : "%lu"), len );
+
+ return len;
+ }
+@@ -1245,8 +1245,7 @@
+ SQLULEN fill_column_size_buff(char *buff, STMT *stmt, MYSQL_FIELD *field)
+ {
+ SQLULEN size= get_column_size(stmt, field);
+- sprintf(buff, (size== SQL_NO_TOTAL ? "%d" :
+- (sizeof(SQLULEN) == 4 ? "%lu" : "%llu")), size);
++ sprintf(buff, (size== SQL_NO_TOTAL ? "%ld" : "%lu"), size);
+ return size;
+ }
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/test/my_catalog.c mysql-connector-odbc-5.1.8/test/my_catalog.c
+--- mysql-connector-odbc-5.1.8.orig/test/my_catalog.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/test/my_catalog.c 2010-12-23 17:16:26.284605944 -0500
+@@ -599,7 +599,7 @@
+ fprintf(stdout, "# Column Name : %s\n", szColName);
+ fprintf(stdout, "# NameLengh : %d\n", pcbColName);
+ fprintf(stdout, "# DataType : %d\n", pfSqlType);
+- fprintf(stdout, "# ColumnSize : %d\n", pcbColDef);
++ fprintf(stdout, "# ColumnSize : %ld\n", pcbColDef);
+ fprintf(stdout, "# DecimalDigits : %d\n", pibScale);
+ fprintf(stdout, "# Nullable : %d\n", pfNullable);
+
+@@ -632,7 +632,7 @@
+
+ rc = SQLGetConnectAttr(hdbc, SQL_ATTR_CURRENT_CATALOG, db, sizeof(db), &len);
+ mycon(hdbc,rc);
+- fprintf(stdout,"current_catalog: %s (%ld)\n", db, len);
++ fprintf(stdout,"current_catalog: %s (%d)\n", db, len);
+ is_num(len, 4);
+ is_str(db, "test", 5);
+
+@@ -653,7 +653,7 @@
+
+ rc = SQLGetConnectAttr(hdbc, SQL_ATTR_CURRENT_CATALOG, db, 255, &len);
+ mycon(hdbc,rc);
+- fprintf(stdout,"current_catalog: %s (%ld)\n", db, len);
++ fprintf(stdout,"current_catalog: %s (%d)\n", db, len);
+ is_num(len, 17);
+ is_str(db, cur_db, 18);
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/test/my_cursor.c mysql-connector-odbc-5.1.8/test/my_cursor.c
+--- mysql-connector-odbc-5.1.8.orig/test/my_cursor.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/test/my_cursor.c 2010-12-23 17:12:16.632676933 -0500
+@@ -711,7 +711,7 @@
+
+ rc = SQLRowCount(hstmt1,&row_count);
+ mystmt(hstmt1,rc);
+- fprintf(stdout, "rows affected: %d\n", row_count);
++ fprintf(stdout, "rows affected: %ld\n", row_count);
+ myassert(row_count == 1);
+
+ rc = SQLExtendedFetch(hstmt,SQL_FETCH_NEXT,1,NULL,&rgfRowStatus);
+@@ -732,7 +732,7 @@
+
+ rc = SQLRowCount(hstmt1,&row_count);
+ mystmt(hstmt1,rc);
+- fprintf(stdout, "rows affected: %d\n", row_count);
++ fprintf(stdout, "rows affected: %ld\n", row_count);
+ myassert(row_count == 1);
+
+ SQLFreeStmt(hstmt,SQL_UNBIND);
diff --git a/community/myodbc/myodbc-add-mysys.patch b/community/myodbc/myodbc-add-mysys.patch
new file mode 100644
index 000000000..a30466114
--- /dev/null
+++ b/community/myodbc/myodbc-add-mysys.patch
@@ -0,0 +1,29 @@
+Add files extracted from mysql into the driver build script.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/util/Makefile.am mysql-connector-odbc-5.1.8/util/Makefile.am
+--- mysql-connector-odbc-5.1.8.orig/util/Makefile.am 2010-10-28 14:33:17.000000000 -0400
++++ mysql-connector-odbc-5.1.8/util/Makefile.am 2010-12-23 18:09:00.359695597 -0500
+@@ -10,6 +10,22 @@
+ installer.c \
+ odbcinstw.c \
+ unicode_transcode.c \
++ array.c \
++ list.c \
++ my_alloc.c \
++ my_malloc.c \
++ string.c \
++ int2str.c \
++ is_prefix.c \
++ longlong2str.c \
++ strcend.c \
++ strend.c \
++ strfill.c \
++ strmake.c \
++ strmov.c \
++ strxmov.c \
++ mysys_err.h \
++ mysys_priv.h \
+ MYODBCUtil.h \
+ MYODBCUtilAllocDataSource.c \
+ MYODBCUtilAllocDriver.c \
diff --git a/community/myodbc/myodbc-my-free.patch b/community/myodbc/myodbc-my-free.patch
new file mode 100644
index 000000000..cf7730a59
--- /dev/null
+++ b/community/myodbc/myodbc-my-free.patch
@@ -0,0 +1,253 @@
+Once again, mysql can't manage to ship a mysql-connector-odbc release
+on time ... mysql 5.5 changed the my_free() function and the released
+connector version is not up to speed. Can't use NEAR anymore, either.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/catalog.c mysql-connector-odbc-5.1.8/driver/catalog.c
+--- mysql-connector-odbc-5.1.8.orig/driver/catalog.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/catalog.c 2010-12-23 17:50:52.916552525 -0500
+@@ -94,11 +94,11 @@
+ {
+ if (stmt->result)
+ {
+- my_free((char *)stmt->result, MYF(0));
++ my_free((char *)stmt->result);
+ }
+ if (stmt->result_array)
+ {
+- my_free((char *)stmt->result_array, MYF(0));
++ my_free((char *)stmt->result_array);
+ }
+ set_mem_error(&stmt->dbc->mysql);
+ return handle_connection_error(stmt);
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/catalog_no_i_s.c mysql-connector-odbc-5.1.8/driver/catalog_no_i_s.c
+--- mysql-connector-odbc-5.1.8.orig/driver/catalog_no_i_s.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/catalog_no_i_s.c 2010-12-23 17:51:41.493551970 -0500
+@@ -269,13 +269,13 @@
+ pthread_mutex_lock(&dbc->lock);
+ if (mysql_query(mysql, select))
+ {
+- my_free(select, MYF(0));
++ my_free(select);
+ pthread_mutex_unlock(&dbc->lock);
+ return NULL;
+ }
+ result= mysql_store_result(&dbc->mysql);
+ pthread_mutex_unlock(&dbc->lock);
+- my_free(select, MYF(0));
++ my_free(select);
+
+ return result;
+ }
+@@ -1094,7 +1094,7 @@
+ SQLFORE_KEYS_FIELDS *
+ row_count,
+ MYF(0));
+- my_free((char *)tempdata, MYF(0));
++ my_free((char *)tempdata);
+
+ if (!stmt->result_array)
+ {
+@@ -1323,12 +1323,12 @@
+ && (j != mypcREMARKS)
+ && (j != mypcCOLUMN_DEF)
+ && (j != mypcIS_NULLABLE))
+- my_free(((char**)cur_params->data)[j], MYF(0));
++ my_free(((char**)cur_params->data)[j]);
+ }
+ /* cleanup the list */
+ params= list_delete_forward(params);
+- my_free(cur_params->data, MYF(0));
+- my_free(cur_params, MYF(0));
++ my_free(cur_params->data);
++ my_free(cur_params);
+ }
+ }
+ }
+@@ -1675,7 +1675,7 @@
+ }
+
+ dynstr_free(&dynQuery);
+- my_free(params_r, MYF(0));
++ my_free(params_r);
+
+ return nReturn;
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/desc.c mysql-connector-odbc-5.1.8/driver/desc.c
+--- mysql-connector-odbc-5.1.8.orig/driver/desc.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/desc.c 2010-12-23 17:51:06.532607921 -0500
+@@ -65,7 +65,7 @@
+ */
+ if (my_init_dynamic_array(&desc->records, sizeof(DESCREC), 0, 0))
+ {
+- my_free((char *)desc, MYF(0));
++ my_free((char *)desc);
+ return NULL;
+ }
+ desc->desc_type= desc_type;
+@@ -111,7 +111,7 @@
+ if (aprec->par.alloced)
+ {
+ aprec->par.alloced= FALSE;
+- my_free(aprec->par.value, MYF(0));
++ my_free(aprec->par.value);
+ }
+ }
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/driver.h mysql-connector-odbc-5.1.8/driver/driver.h
+--- mysql-connector-odbc-5.1.8.orig/driver/driver.h 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/driver.h 2010-12-23 17:50:43.017608761 -0500
+@@ -113,7 +113,7 @@
+ /* Max Primary keys in a cursor * WHERE clause */
+ #define MY_MAX_PK_PARTS 32
+
+-#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp,MYF(MY_WME+MY_FAE)); }
++#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp); }
+
+
+ /* We don't make any assumption about what the default may be. */
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/execute.c mysql-connector-odbc-5.1.8/driver/execute.c
+--- mysql-connector-odbc-5.1.8.orig/driver/execute.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/execute.c 2010-12-23 17:49:52.799552481 -0500
+@@ -96,7 +96,7 @@
+ exit:
+ pthread_mutex_unlock(&stmt->dbc->lock);
+ if ( query != stmt->query )
+- my_free(query,MYF(0));
++ my_free(query);
+
+ /*
+ If the original query was modified, we reset stmt->query so that the
+@@ -104,7 +104,7 @@
+ */
+ if (stmt->orig_query)
+ {
+- my_free(stmt->query,MYF(0));
++ my_free(stmt->query);
+ stmt->query= stmt->orig_query;
+ stmt->query_end= stmt->orig_query_end;
+ stmt->orig_query= NULL;
+@@ -625,7 +625,7 @@
+
+ out:
+ if (free_data)
+- my_free(data, MYF(0));
++ my_free(data);
+
+ *toptr= to;
+ return SQL_SUCCESS;
+@@ -1060,7 +1060,7 @@
+ if ( cbValue == SQL_NULL_DATA )
+ {
+ if ( aprec->par.alloced )
+- my_free(aprec->par.value,MYF(0));
++ my_free(aprec->par.value);
+ aprec->par.alloced= FALSE;
+ aprec->par.value= NULL;
+ return SQL_SUCCESS;
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/handle.c mysql-connector-odbc-5.1.8/driver/handle.c
+--- mysql-connector-odbc-5.1.8.orig/driver/handle.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/handle.c 2010-12-23 17:50:17.425586339 -0500
+@@ -112,7 +112,7 @@
+ GlobalUnlock(GlobalHandle((HGLOBAL) henv));
+ GlobalFree(GlobalHandle((HGLOBAL) henv));
+ #else
+- if (henv) my_free((char*) henv,MYF(0));
++ if (henv) my_free((char*) henv);
+ myodbc_end();
+ #endif /* _UNIX_ */
+ return(SQL_SUCCESS);
+@@ -251,7 +251,8 @@
+ LIST *next;
+
+ dbc->env->connections= list_delete(dbc->env->connections,&dbc->list);
+- my_free(dbc->database,MYF(MY_ALLOW_ZERO_PTR));
++ if (dbc->database)
++ my_free(dbc->database);
+ if (dbc->ds)
+ ds_delete(dbc->ds);
+ pthread_mutex_destroy(&dbc->lock);
+@@ -268,7 +269,7 @@
+ GlobalUnlock(GlobalHandle((HGLOBAL) hdbc));
+ GlobalFree(GlobalHandle((HGLOBAL) hdbc));
+ #else
+- my_free((char*) hdbc,MYF(0));
++ my_free((char*) hdbc);
+ #endif
+ return SQL_SUCCESS;
+ }
+@@ -513,7 +514,7 @@
+ GlobalUnlock(GlobalHandle ((HGLOBAL) hstmt));
+ GlobalFree(GlobalHandle((HGLOBAL) hstmt));
+ #else
+- my_free((char*) hstmt,MYF(0));
++ my_free((char*) hstmt);
+ #endif /* _UNIX_*/
+ return SQL_SUCCESS;
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/options.c mysql-connector-odbc-5.1.8/driver/options.c
+--- mysql-connector-odbc-5.1.8.orig/driver/options.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/options.c 2010-12-23 17:50:28.864604596 -0500
+@@ -301,7 +301,7 @@
+ return SQL_ERROR;
+ }
+ }
+- my_free(dbc->database,MYF(0));
++ my_free(dbc->database);
+ dbc->database= my_strdup(db,MYF(MY_WME));
+ pthread_mutex_unlock(&dbc->lock);
+ }
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/prepare.c mysql-connector-odbc-5.1.8/driver/prepare.c
+--- mysql-connector-odbc-5.1.8.orig/driver/prepare.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/prepare.c 2010-12-23 17:51:17.175676805 -0500
+@@ -93,7 +93,7 @@
+ CLEAR_STMT_ERROR(stmt);
+
+ if (stmt->query)
+- my_free(stmt->query, MYF(0));
++ my_free(stmt->query);
+
+ if (dupe && szSqlStr)
+ stmt->query= (char *)szSqlStr;
+@@ -223,7 +223,7 @@
+ {
+ aprec->par.alloced= FALSE;
+ assert(aprec->par.value);
+- my_free(aprec->par.value,MYF(0));
++ my_free(aprec->par.value);
+ aprec->par.value = NULL;
+ }
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/utility.c mysql-connector-odbc-5.1.8/driver/utility.c
+--- mysql-connector-odbc-5.1.8.orig/driver/utility.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/utility.c 2010-12-23 17:49:05.498552376 -0500
+@@ -930,7 +930,7 @@
+ ulong max_length= stmt->stmt_options.max_length;
+ ulong *offset= &stmt->getdata.src_offset;
+ #if MYSQL_VERSION_ID >= 40100
+- char NEAR _dig_vec[] =
++ char _dig_vec[] =
+ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ #endif
+
+@@ -2154,7 +2154,7 @@
+
+ my_bool reget_current_catalog(DBC FAR *dbc)
+ {
+- my_free(dbc->database,MYF(0));
++ my_free(dbc->database);
+ dbc->database= NULL;
+
+ if ( odbc_stmt(dbc, "select database()") )
+diff -Naur mysql-connector-odbc-5.1.8.orig/util/stringutil.h mysql-connector-odbc-5.1.8/util/stringutil.h
+--- mysql-connector-odbc-5.1.8.orig/util/stringutil.h 2010-10-28 14:33:17.000000000 -0400
++++ mysql-connector-odbc-5.1.8/util/stringutil.h 2010-12-23 17:51:51.848676475 -0500
+@@ -41,7 +41,7 @@
+ #include <sqlext.h>
+
+ #ifndef x_free
+-#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp,MYF(MY_WME+MY_FAE)); }
++#define x_free(A) { void *tmp= (A); if (tmp) my_free((char *) tmp); }
+ #endif
+
+ #define myodbc_min(a, b) ((a) < (b) ? (a) : (b))
diff --git a/community/myodbc/myodbc-shutdown.patch b/community/myodbc/myodbc-shutdown.patch
new file mode 100644
index 000000000..ec0cf3d36
--- /dev/null
+++ b/community/myodbc/myodbc-shutdown.patch
@@ -0,0 +1,27 @@
+myodbc_end is really only usable during Windows DLL unload, since it's not
+connection-specific and not thread-safe either. This bit of brain fade
+accounts for our bug #185343 and several bugs filed at mysql.com.
+
+Furthermore, my_end() isn't exported from libmysqlclient anymore.
+Hence, best fix is to turn the function into a no-op.
+
+
+diff -Naur mysql-connector-odbc-5.1.8.orig/driver/dll.c mysql-connector-odbc-5.1.8/driver/dll.c
+--- mysql-connector-odbc-5.1.8.orig/driver/dll.c 2010-10-28 14:33:18.000000000 -0400
++++ mysql-connector-odbc-5.1.8/driver/dll.c 2010-12-23 15:05:49.394608226 -0500
+@@ -94,6 +94,7 @@
+ */
+ void myodbc_end()
+ {
++#if 0
+ if (!--myodbc_inited)
+ {
+ my_free(decimal_point,MYF(0));
+@@ -121,6 +122,7 @@
+ my_end(0);
+ #endif
+ }
++#endif
+ }
+
+
diff --git a/community/mypaint/PKGBUILD b/community/mypaint/PKGBUILD
new file mode 100644
index 000000000..e4e86f510
--- /dev/null
+++ b/community/mypaint/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 41759 2011-03-08 20:17:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jon Nordby <jononor@gmail.com>
+
+pkgname=mypaint
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="A fast and easy painting application for digital painters, with brush dynamics"
+arch=('i686' 'x86_64')
+url="http://mypaint.intilinux.com/"
+license=('GPL' 'LGPL')
+depends=('pygtk' 'python-numpy' 'protobuf-python' 'python2')
+makedepends=('scons>=0.97' 'swig>=1.3.39')
+source=(http://download.gna.org/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('6249a16359a438d6dc658f5765b35515')
+
+build() {
+ cd $pkgname-$pkgver
+
+ # python2 fix
+ sed -i 's_python generate.py_python2 generate.py_' brushlib/SConscript
+ 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
+
+ scons
+ scons prefix="$pkgdir"/usr install
+}
diff --git a/community/mysql-ruby/PKGBUILD b/community/mysql-ruby/PKGBUILD
new file mode 100644
index 000000000..134963291
--- /dev/null
+++ b/community/mysql-ruby/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 42318 2011-03-16 11:01:28Z jelle $
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Markku <rasat@user-contributions.org>
+
+pkgname=mysql-ruby
+pkgver=2.8.2
+pkgrel=2
+pkgdesc='This is the MySQL API module for Ruby.'
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://tmtm.org/downloads/mysql/ruby'
+depends=('ruby' 'libmysqlclient')
+source=("http://tmtm.org/downloads/mysql/ruby/${pkgname}-${pkgver}.tar.gz")
+md5sums=('eb998b89b7e391cffe0a1f84bd426f9b')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ruby extconf.rb
+
+ ruby extconf.rb --with-mysql-config
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/mysql-workbench/ArchLinux.xml b/community/mysql-workbench/ArchLinux.xml
new file mode 100644
index 000000000..821490739
--- /dev/null
+++ b/community/mysql-workbench/ArchLinux.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+
+<data>
+ <value type="dict">
+ <value type="string" key="sys.config.path">/etc/mysql/my.cnf</value>
+ <value type="string" key="sys.config.section">mysqld</value>
+
+ <value type="string" key="sys.mysqld.start">/etc/rc.d/mysqld start</value>
+ <value type="string" key="sys.mysqld.stop">/etc/rc.d/mysqld stop</value>
+ <value type="string" key="sys.mysqld.status">ps -C mysqld -o pid=</value>
+ <value type="int" key="sys.usesudo">1</value>
+ <value type="int" key="sys.usesudostatus">0</value>
+ <value type="string" key="sys.sudo">/usr/bin/sudo -p EnterPasswordHere /bin/sh -c</value>
+
+ <value type="string" key="sys.system">Linux</value>
+ <value type="string" key="serverVersion">5.5</value>
+ </value>
+</data>
diff --git a/community/mysql-workbench/PKGBUILD b/community/mysql-workbench/PKGBUILD
new file mode 100644
index 000000000..7022c11b8
--- /dev/null
+++ b/community/mysql-workbench/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 42510 2011-03-17 12:19:39Z andrea $
+# Maintainer:
+# Contributor : Ionut Biru <ibiru@archlinux.org>
+# Contributor: totoloco <totoloco at gmail _dot_com>
+
+pkgname=mysql-workbench
+pkgver=5.2.33
+pkgrel=2
+pkgdesc="A cross-platform, visual database design tool developed by MySQL"
+arch=('i686' 'x86_64')
+url="http://dev.mysql.com/workbench/"
+license=('GPL2')
+depends=('libgnome' 'libzip' 'libmysqlclient' 'lua' 'gtkmm' 'libglade' 'libgl' 'libsigc++' 'python-paramiko' 'python-pexpect')
+makedepends=('boost' 'curl' 'mesa')
+options=('!libtool')
+source=(ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQLGUITools/${pkgname}-gpl-${pkgver}-src.tar.gz
+ ArchLinux.xml arch.patch python27.patch)
+md5sums=('d97a1512c8c8ad54ae83441f8ea5c4b8'
+ 'c2f986cd5737413d020c55db32713c48'
+ '23430d24400fd65c9fd872bd8e2411e5'
+ '47bc4cdfaa035a0132392e94c462ebf7')
+
+build() {
+ cd "${srcdir}/${pkgname}-gpl-${pkgver}-src"
+
+ cp "${srcdir}/ArchLinux.xml" res/mysql.profiles
+ patch -Np1 -i ${srcdir}/arch.patch
+
+ patch -Np0 -i ${srcdir}/python27.patch
+
+ #we use System provided libraries
+ rm -rf ext/curl
+ rm -rf ext/yassl
+ rm -rf ext/boost
+ rm -rf ext/libsigc++
+
+ export CPPFLAGS=$(pkg-config --cflags sigc++-2.0)
+ unset LDFLAGS
+
+ ./autogen.sh --prefix=/usr --disable-debug --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-gpl-${pkgver}-src"
+
+ make DESTDIR="${pkgdir}" install
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" $pkgdir/usr/share/mysql-workbench/sshtunnel.py
+}
diff --git a/community/mysql-workbench/arch.patch b/community/mysql-workbench/arch.patch
new file mode 100644
index 000000000..9f244e5f0
--- /dev/null
+++ b/community/mysql-workbench/arch.patch
@@ -0,0 +1,22 @@
+diff -Nur mysql-workbench-gpl-5.2.25/res/mysql.profiles/Makefile.am mysql-workbench-gpl-5.2.25a/res/mysql.profiles/Makefile.am
+--- mysql-workbench-gpl-5.2.25/res/mysql.profiles/Makefile.am 2010-06-30 11:14:27.000000000 -0500
++++ mysql-workbench-gpl-5.2.25a/res/mysql.profiles/Makefile.am 2010-07-04 21:36:34.425999721 -0500
+@@ -2,6 +2,7 @@
+ workbenchdir=$(pkgdatadir)/mysql.profiles
+
+ workbench_DATA=\
++ArchLinux.xml\
+ Fedora_Linux_(MySQL_Package).xml\
+ Fedora_Linux_(Vendor_Package).xml\
+ FreeBSD_(MySQL_Package).xml\
+diff -Nur mysql-workbench-gpl-5.2.25/res/mysql.profiles/Makefile.in mysql-workbench-gpl-5.2.25a/res/mysql.profiles/Makefile.in
+--- mysql-workbench-gpl-5.2.25/res/mysql.profiles/Makefile.in 2010-06-30 11:14:38.000000000 -0500
++++ mysql-workbench-gpl-5.2.25a/res/mysql.profiles/Makefile.in 2010-07-04 21:36:59.396862401 -0500
+@@ -213,6 +213,7 @@
+ top_srcdir = @top_srcdir@
+ workbenchdir = $(pkgdatadir)/mysql.profiles
+ workbench_DATA = \
++ArchLinux.xml\
+ Fedora_Linux_(MySQL_Package).xml\
+ Fedora_Linux_(Vendor_Package).xml\
+ FreeBSD_(MySQL_Package).xml\
diff --git a/community/mysql-workbench/python27.patch b/community/mysql-workbench/python27.patch
new file mode 100644
index 000000000..5fb215cd0
--- /dev/null
+++ b/community/mysql-workbench/python27.patch
@@ -0,0 +1,18 @@
+--- configure.in.orig 2010-12-08 16:58:57.456378836 -0800
++++ configure.in 2010-12-08 16:59:42.179715448 -0800
+@@ -280,13 +280,13 @@
+ AC_CHECK_PROG(PYTHON27, python2.7, [yes])
+ # Python headers
+ AC_MSG_CHECKING(for Python libraries)
+-PYTHON_LIBS=[$(python -c "from distutils import sysconfig
++PYTHON_LIBS=[$(python2 -c "from distutils import sysconfig
+ import os
+ cfg=sysconfig.get_config_vars()
+ lib = os.path.join(cfg['LIBDIR'], cfg['LDLIBRARY'])
+ if os.path.exists(lib):
+ print lib")]
+-PYTHON_CFLAGS=[$(python -c "from distutils import sysconfig
++PYTHON_CFLAGS=[$(python2 -c "from distutils import sysconfig
+ print sysconfig.get_python_inc()")]
+ PYTHON_CFLAGS="-I$PYTHON_CFLAGS"
+ if test "$PYTHON_LIBS" = ""; then
diff --git a/community/mythplugins/PKGBUILD b/community/mythplugins/PKGBUILD
new file mode 100644
index 000000000..45b9cb4ee
--- /dev/null
+++ b/community/mythplugins/PKGBUILD
@@ -0,0 +1,141 @@
+# $Id: PKGBUILD 42515 2011-03-17 12:34:35Z andrea $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgbase=mythplugins
+pkgname=('mythplugins-mytharchive'
+ 'mythplugins-mythbrowser'
+ 'mythplugins-mythgallery'
+ 'mythplugins-mythgame'
+ 'mythplugins-mythmusic'
+ 'mythplugins-mythnetvision'
+ 'mythplugins-mythnews'
+ 'mythplugins-mythvideo'
+ 'mythplugins-mythweather'
+ 'mythplugins-mythweb'
+ 'mythplugins-mythzoneminder')
+pkgver=0.24
+pkgrel=3
+arch=('i686' 'x86_64')
+url="http://www.mythtv.org"
+license=('GPL')
+makedepends=("mythtv>=$pkgver" 'cdrkit' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg'
+ 'python-imaging' 'libexif' 'perl-date-manip' 'zlib' 'cdparanoia'
+ 'flac' 'libcdaudio' 'libvisual' 'libvorbis' 'sdl' 'taglib'
+ 'python2-oauth' 'python-pycurl' 'mplayer' 'perl-date-manip'
+ 'perl-libwww' 'perl-soap-lite' 'perl-xml-sax' 'perl-xml-simple'
+ 'perl-xml-xpath' 'perl-image-size' 'perl-datetime-format-iso8601')
+source=("ftp://ftp.osuosl.org/pub/mythtv/$pkgbase-$pkgver.tar.bz2"
+ 'mtd.rc')
+md5sums=('2bcb195a82475648040910d7afd054d1'
+ '476c12ba074794ad7f4ae092bdf949d6')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+ find . -name '*.py' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+
+ ./configure --prefix=/usr \
+ --enable-all \
+ --python=python2
+ qmake mythplugins.pro
+ make
+}
+
+package_mythplugins-mytharchive() {
+ pkgdesc="Create DVDs or archive recorded shows in MythTV"
+ depends=("mythtv>=$pkgver" 'cdrkit' 'dvdauthor' 'dvd+rw-tools' 'ffmpeg'
+ 'python-imaging')
+
+ cd "$srcdir/$pkgbase-$pkgver/mytharchive"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythbrowser() {
+ pkgdesc="Mini web browser for MythTV"
+ depends=("mythtv>=$pkgver")
+
+ cd "$srcdir/$pkgbase-$pkgver/mythbrowser"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythgallery() {
+ pkgdesc="Image gallery plugin for MythTV"
+ depends=("mythtv>=$pkgver" 'libexif')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythgallery"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythgame() {
+ pkgdesc="Game emulator plugin for MythTV"
+ depends=("mythtv>=$pkgver")
+
+ cd "$srcdir/$pkgbase-$pkgver/mythgame"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythmusic() {
+ pkgdesc="Music playing plugin for MythTV"
+ depends=("mythtv>=$pkgver" 'cdparanoia' 'flac' 'libcdaudio' 'libvisual'
+ 'libvorbis' 'sdl' 'taglib')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythmusic"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythnetvision() {
+ pkgdesc="MythNetvision plugin for MythTV"
+ depends=("mythtv>=$pkgver" 'python2-oauth' 'python-pycurl')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythnetvision"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythnews() {
+ pkgdesc="News checking plugin for MythTV"
+ depends=("mythtv>=$pkgver")
+
+ cd "$srcdir/$pkgbase-$pkgver/mythnews"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythvideo() {
+ pkgdesc="Video playback and browsing plugin for MythTV"
+ depends=("mythtv>=$pkgver" 'mplayer')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythvideo"
+ make INSTALL_ROOT="$pkgdir" install
+
+ install -D -m755 "$srcdir/mtd.rc" "$pkgdir/etc/rc.d/mtd"
+}
+
+package_mythplugins-mythweather() {
+ pkgdesc="Weather checking plugin for MythTV"
+ depends=("mythtv>=$pkgver" 'perl-date-manip' 'perl-libwww' 'perl-soap-lite'
+ 'perl-xml-sax' 'perl-xml-simple' 'perl-xml-xpath' 'perl-image-size'
+ 'perl-datetime-format-iso8601')
+
+ cd "$srcdir/$pkgbase-$pkgver/mythweather"
+ make INSTALL_ROOT="$pkgdir" install
+}
+
+package_mythplugins-mythweb() {
+ pkgdesc="Web interface for the MythTV scheduler"
+ depends=("mythtv>=$pkgver")
+ optdepends=('php-apache'
+ 'lighttpd')
+
+ mkdir -p "$pkgdir/srv/http/mythweb"/{image_cache,php_sessions}
+ cp -R "$srcdir/$pkgbase-$pkgver/mythweb"/* "$pkgdir/srv/http/mythweb"
+ chown -R http:http "$pkgdir/srv/http/mythweb"
+ chmod g+rw "$pkgdir/srv/http/mythweb"/{image_cache,php_sessions,data}
+}
+
+package_mythplugins-mythzoneminder() {
+ pkgdesc="View CCTV footage from zoneminder in MythTV"
+ depends=("mythtv>=$pkgver")
+
+ install='mythplugins-mythzoneminder.install'
+ cd "$srcdir/$pkgbase-$pkgver/mythzoneminder"
+ make INSTALL_ROOT="$pkgdir" install
+}
diff --git a/community/mythplugins/mtd.rc b/community/mythplugins/mtd.rc
new file mode 100644
index 000000000..1f46dfed1
--- /dev/null
+++ b/community/mythplugins/mtd.rc
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/mtd`
+case "$1" in
+ start)
+ stat_busy "Starting Myth Transcoding Daemon"
+ [ -z "$PID" ] && /usr/bin/mtd -d
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/mtd.pid
+ add_daemon mythtranscode
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Myth Transcoding Daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mtd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/mythplugins/mythplugins-mythzoneminder.install b/community/mythplugins/mythplugins-mythzoneminder.install
new file mode 100644
index 000000000..142212b56
--- /dev/null
+++ b/community/mythplugins/mythplugins-mythzoneminder.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo "If you want to use this plugin, install zoneminder from AUR."
+}
diff --git a/community/mythtv/PKGBUILD b/community/mythtv/PKGBUILD
new file mode 100644
index 000000000..0ff2783ad
--- /dev/null
+++ b/community/mythtv/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 32152 2010-11-11 01:53:51Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: <kleptophobiac@gmail.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=mythtv
+pkgver=0.24
+pkgrel=1
+pkgdesc="A Homebrew PVR project"
+arch=('i686' 'x86_64')
+url="http://www.mythtv.org/"
+license=('GPL')
+depends=('lame' 'libavc1394' 'libiec61883' 'libvdpau' 'libxinerama' 'libxvmc'
+ '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')
+options=('force')
+install='mythtv.install'
+source=("ftp://ftp.osuosl.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2"
+ 'mythbackend.rc'
+ 'mythbackend.conf')
+md5sums=('1abe1d3cc72fdbde6daa4247dedbf29a'
+ 'feadcc9ad064d93d6dceab1efc0bd9ed'
+ 'bb8e4033d82428d827570fae9ba15e6a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ find 'bindings/python' 'contrib' -type f | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+
+ ARCH="${CARCH/_/-}"
+ ./configure --prefix=/usr --cpu="$ARCH" \
+ --enable-mmx \
+ --enable-audio-oss \
+ --enable-audio-alsa \
+ --disable-audio-jack \
+ --disable-audio-pulse \
+ --disable-altivec \
+ --disable-distcc \
+ --disable-ccache \
+ --enable-vdpau \
+ --enable-dvb \
+ --dvb-path=/usr/include \
+ --enable-lirc \
+ --enable-joystick-menu \
+ --enable-v4l \
+ --enable-ivtv \
+ --enable-xvmc \
+ --enable-xvmcw \
+ --enable-xvmc-vld \
+ --enable-firewire \
+ --enable-opengl-vsync \
+ --enable-xrandr \
+ --enable-xv \
+ --enable-x11 \
+ --with-bindings=perl,python --python=python2
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make INSTALL_ROOT="$pkgdir" install
+
+ install -D -m755 "$srcdir/mythbackend.rc" "$pkgdir/etc/rc.d/mythbackend"
+ install -D -m644 "$srcdir/mythbackend.conf" "$pkgdir/etc/conf.d/mythbackend"
+ install -D -m644 'database/mc.sql' "$pkgdir/usr/share/mythtv/mc.sql"
+
+ mkdir -p "$pkgdir/usr/share/mythtv"
+ cp -R 'contrib' "$pkgdir/usr/share/mythtv"
+}
diff --git a/community/mythtv/mythbackend.conf b/community/mythtv/mythbackend.conf
new file mode 100644
index 000000000..e004ae5bd
--- /dev/null
+++ b/community/mythtv/mythbackend.conf
@@ -0,0 +1,92 @@
+#!/bin/bash
+#
+# Rename this file to:
+#
+# /etc/config.d/mythbackend
+#
+###############################################################################
+#
+# Copyright (c) by the MythTV Development Team.
+#
+# Derived from work by:
+#
+# Michael Thomson <linux at m-thomson dot net>
+# Stu Tomlinson <stu at nosnilmot dot com>
+# Axel Thimm <axel.thimm at atrpms dot net>
+# Adopted for ArchLinux:
+# Jürgen Hoetzel <juergen@archinux.org>
+#
+# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+###############################################################################
+#
+# Config variables for the mythbackend startup script, which is usually
+# located in /etc/rc.d/mythbackend
+#
+# When the startup script is executed, it sources this file if it exists,
+# otherwise it will fall back on default values.
+#
+# Leave variables commented out to use default values in init script
+# (/etc/rc.d/mythbackend).
+#
+# To override defaults, uncomment the relevant variable definition and
+# edit as required.
+#
+
+#
+# User who should start the mythbackend processes
+#
+# Running mythbackend as non-root requires you to ensure that audio/video
+# devices used for recording have suitable user permissions. One way
+# to achieve this is to modify existing or create new udev rules which
+# assign these devices to a non-root group with rw permissions and add
+# your mythbackend user to that group. Be aware that console.perms can
+# also affect device permissions and may need additional configuration.
+# Running as non-root may also introduce increased process latency.
+#
+# MBE_USER='root'
+
+#
+# Directory holding the mythbackend binary (empty means autodetect).
+#
+# MBE_DIR=''
+
+#
+# Name of mythbackend binary.
+#
+# MBE_PROG='mythbackend'
+
+#
+# Other startup options for mythbackend (see 'mythbackend --help' for a list).
+#
+# MBE_OPTIONS=''
+
+#
+# Directory holding the mythbackend log file
+#
+# LOG_DIR='/var/log/mythtv'
+
+#
+# Name of mythbackend log file.
+#
+# NOTE: If you are running as non-root take care to ensure the mythbackend user
+# has permission to write to this log file.
+#
+# LOG_FILE='mythbackend.log'
+
+#
+# Logging options for mythbackend (see 'mythbackend -v help' for a list)
+#
+# LOG_OPTS=''
diff --git a/community/mythtv/mythbackend.rc b/community/mythtv/mythbackend.rc
new file mode 100644
index 000000000..410e8de41
--- /dev/null
+++ b/community/mythtv/mythbackend.rc
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# Default values to use if none are supplied in the config file.
+
+# Running mythbackend as non-root requires you to ensure that audio/video
+# devices used for recording have suitable user permissions. One way
+# to achieve this is to modify existing or create new udev rules which
+# assign these devices to a non-root group with rw permissions and add
+# your mythbackend user to that group. Be aware that console.perms can
+# also affect device permissions and may need additional configuration.
+# Running as non-root may also introduce increased process latency.
+#
+# User who should start the mythbackend processes
+MBE_USER='root'
+
+# Startup options for mythbackend
+MBE_OPTIONS=''
+
+# Name of mythbackend log file
+LOG_FILE='/var/log/mythbackend.log'
+
+# Logging options for mythbackend (empty means '-v important,general')
+LOG_OPTS=''
+
+###############################################################################
+
+CONFIG_FILE=/etc/conf.d/mythbackend
+PIDFILE=/var/run/mythbackend.pid
+
+if [[ -f ${CONFIG_FILE} ]]; then
+ . ${CONFIG_FILE}
+fi
+
+pid="$(cat ${PIDFILE} 2>/dev/null || pidof mythbackend)";
+
+# fix FS#11890
+mbe_user_home="$(getent passwd ${MBE_USER}|cut -d : -f 6)"
+
+case "$1" in
+ start)
+ stat_busy "Starting MythTV Backend"
+
+ # already running ?
+ if [[ "${pid}" -gt 0 ]] && kill -0 "${pid}"; then
+ stat_fail
+ exit 1;
+ fi
+ touch ${PIDFILE} ${LOG_FILE}
+ chown "$MBE_USER" ${PIDFILE} ${LOG_FILE}
+ if su "$MBE_USER" -c "HOME=${mbe_user_home} mythbackend \
+ --daemon \
+ --logfile $LOG_FILE $LOG_OPTS \
+ --pidfile ${PIDFILE} $MBE_OPTIONS";
+ then
+ add_daemon mythbackend
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping MythTV Backend"
+ if [[ "${pid}" -gt 0 ]] && kill $pid &>/dev/null; then
+ rm_daemon mythbackend
+ stat_done
+ rm ${PIDFILE} 2>/dev/null
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/mythtv/mythtv.install b/community/mythtv/mythtv.install
new file mode 100644
index 000000000..1e7bd936c
--- /dev/null
+++ b/community/mythtv/mythtv.install
@@ -0,0 +1,12 @@
+post_install() {
+ echo "See \"MythTV\" on the Archlinux Wiki for installation information - Extensive!!"
+}
+
+post_upgrade() {
+ echo "Make sure you rescan for audio devices (use the frontend audio settings menu)"
+ echo "See http://www.mythtv.org/wiki/Release_Notes_-_0.24 for details"
+}
+
+post_remove() {
+ echo -e "NOTE: mysql database was not removed. To remove run:\nmysql -u root -e 'drop database mythconverg;'"
+}
diff --git a/community/naev/PKGBUILD b/community/naev/PKGBUILD
new file mode 100644
index 000000000..0efa5756c
--- /dev/null
+++ b/community/naev/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 23139 2010-08-07 06:55:11Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Johan Rehnberg <cleanrock@gmail.com>
+
+pkgname=naev
+pkgver=0.4.2
+pkgrel=3
+pkgdesc='2D action/rpg space game'
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/naev/"
+license=('GPL3')
+depends=('openal' 'libvorbis' 'sdl_image' 'sdl_mixer' 'libgl' 'libxml2' 'freetype2' 'libpng' 'naev-data')
+makedepends=('freeglut')
+options=( )
+source=("http://naev.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2"
+ "naev.png" "naev.desktop")
+md5sums=('307bec2704e98f0af6f13e50f2737b0c'
+ '5945aa4fa7c0b046ad48f2fb9cbbbdd3'
+ '134032fb35eb2953e9a1bbee3a6dcf63')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --disable-debug --disable-shave --with-ndata-path=/usr/share/naev/ndata-${pkgver}
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -m644 "$srcdir/$pkgname-$pkgver/conf.example" "$pkgdir/usr/share/doc/naev/"
+
+ mkdir -p "$pkgdir/usr/share/naev/"
+
+ mkdir -p "$pkgdir/usr/share/pixmaps/"
+ install -m644 "$srcdir/naev.png" "$pkgdir/usr/share/pixmaps/"
+
+ mkdir -p "$pkgdir/usr/share/applications/"
+ install -m644 "$srcdir/naev.desktop" "$pkgdir/usr/share/applications/"
+
+ mkdir -p "$pkgdir/usr/share/licenses/naev/"
+ install -m644 "$srcdir/$pkgname-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/naev/"
+}
diff --git a/community/naev/naev.desktop b/community/naev/naev.desktop
new file mode 100644
index 000000000..b66c906d0
--- /dev/null
+++ b/community/naev/naev.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=naev
+Comment=2D action/rpg space game
+Exec=naev
+Icon=naev.png
+Terminal=false
+Type=Application
+Categories=Application;Game;
+GenericName=
diff --git a/community/naev/naev.png b/community/naev/naev.png
new file mode 100644
index 000000000..f683c3dfb
--- /dev/null
+++ b/community/naev/naev.png
Binary files differ
diff --git a/community/namazu/PKGBUILD b/community/namazu/PKGBUILD
new file mode 100644
index 000000000..f8ebdc178
--- /dev/null
+++ b/community/namazu/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Benjamin Andresen <bandresen gmail com>
+
+pkgname=namazu
+pkgver=2.0.20
+pkgrel=3
+pkgdesc="Namazu is a full-text search engine intended for easy use."
+url="http://namazu.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=(perl-file-mmagic)
+source=(http://namazu.org/stable/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+md5sums=('ecac296bfe7d4df01a097a13e34023c6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib \
+ --mandir=/usr/share/man \
+ --libexecdir=/usr/lib/namazu \
+ --libdir=/usr/lib/namazu
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/nas/PKGBUILD b/community/nas/PKGBUILD
new file mode 100644
index 000000000..b6e3fe87b
--- /dev/null
+++ b/community/nas/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 21701 2010-07-16 22:42:31Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=nas
+pkgver=1.9.2
+pkgrel=2
+pkgdesc='Network Audio System is a network transparent, client/server audio transport system'
+arch=('i686' 'x86_64')
+url='http://radscan.com/nas.html'
+license=('custom')
+depends=('libxaw')
+makedepends=('imake')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.src.tar.gz"
+ 'license.txt')
+md5sums=('ed7864f55b384452167959022cfb403b'
+ 'f11eb8c3fb83946e66e60f7532e8d5da')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ xmkmf
+
+ make World
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} USRLIBDIR=/usr/lib install
+
+ chmod 644 ${pkgdir}/usr/include/audio/*
+
+ install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license
+}
diff --git a/community/nas/license.txt b/community/nas/license.txt
new file mode 100644
index 000000000..6cfa36e6b
--- /dev/null
+++ b/community/nas/license.txt
@@ -0,0 +1,22 @@
+
+ Copyright 1995 Network Computing Devices, Inc.
+
+ Permission to use, copy, modify, distribute, and sell this software and
+ its documentation for any purpose is hereby granted without fee, provided
+ that the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name Network Computing Devices, Inc. not be
+ used in advertising or publicity pertaining to distribution of this
+ software without specific, written prior permission.
+
+ THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC.,
+ DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT
+ LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+ PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK
+ COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING
+ SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE, DATA,
+ OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS OF
+ WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Translation: You can do whatever you want with this software!
diff --git a/community/nautilus-actions/PKGBUILD b/community/nautilus-actions/PKGBUILD
new file mode 100644
index 000000000..a489e2a78
--- /dev/null
+++ b/community/nautilus-actions/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 36766 2011-01-07 20:20:52Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Tor Krill <tor@krill.nu>
+
+pkgname=nautilus-actions
+pkgver=3.0.6
+pkgrel=1
+pkgdesc="Configures programs to be launched when files are selected in Nautilus"
+arch=('i686' 'x86_64')
+url="http://gnome.org"
+license=('GPL')
+depends=('nautilus' 'libgtop' 'desktop-file-utils' )
+makedepends=('intltool' 'gnome-doc-utils>=0.20.0')
+install=nautilus-actions.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/nautilus-actions/3.0/$pkgname-$pkgver.tar.bz2)
+sha256sums=('d78d2bfb69969616475452fdcdbce1c164c34de0ac81eeb1bdf5c06b17cec105')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install
+ mkdir -p ${pkgdir}/usr/share/gconf/schemas
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas --domain nautilus-actions \
+ ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -rf ${pkgdir}/etc/gconf/schemas/
+}
diff --git a/community/nautilus-actions/nautilus-actions.install b/community/nautilus-actions/nautilus-actions.install
new file mode 100644
index 000000000..92e77d54d
--- /dev/null
+++ b/community/nautilus-actions/nautilus-actions.install
@@ -0,0 +1,24 @@
+pkgname=nautilus-actions
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
diff --git a/community/nbd/PKGBUILD b/community/nbd/PKGBUILD
new file mode 100644
index 000000000..64cf20044
--- /dev/null
+++ b/community/nbd/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 38970 2011-02-04 10:43:11Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gerhard Brauer <gerbra@archlinux.de>
+pkgname=nbd
+pkgver=2.9.20
+pkgrel=1
+pkgdesc="Tools for network block devices, allowing you to use remote block devices over TCP/IP."
+arch=('i686' 'x86_64')
+url="http://nbd.sourceforge.net"
+license=('GPL')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+ nbd.conf.d nbd)
+depends=('glib2')
+md5sums=('aec35f6beb7bb4cb2ee267fe0f72c8d6'
+ '6d746f377a28b92dd2c80f01176cb811'
+ 'ab9c431881f5e3c98a8f6c04016f0e00')
+
+build(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}"/nbd.conf.d "${pkgdir}"/etc/conf.d/nbd
+ install -D -m755 "${srcdir}"/nbd "${pkgdir}"/etc/rc.d/nbd
+}
diff --git a/community/nbd/nbd b/community/nbd/nbd
new file mode 100644
index 000000000..b2643196b
--- /dev/null
+++ b/community/nbd/nbd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/nbd
+
+PIDFILE="/var/run/nbd-server.$NBD_PORT.pid"
+PID=`cat $PIDFILE 2>/dev/null`
+case "$1" in
+ start)
+ stat_busy "Starting Network Block Device Server"
+ if [ "$PID" = "" ]; then
+ /usr/bin/nbd-server $NBD_PORT $NBD_DEV $NBD_ARGS
+ fi
+ if [ "$PID" != "" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon nbd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Network Block Device Server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ rm -f $PIDFILE
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon nbd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/nbd/nbd.conf.d b/community/nbd/nbd.conf.d
new file mode 100644
index 000000000..d89ca09b1
--- /dev/null
+++ b/community/nbd/nbd.conf.d
@@ -0,0 +1,8 @@
+#
+# Configuration for network block device (nbd) daemon
+#
+
+NBD_PORT=2000
+NBD_DEV="/srv/http/sysrcd.dat"
+NBD_ARGS="-r"
+
diff --git a/community/nbtscan/PKGBUILD b/community/nbtscan/PKGBUILD
new file mode 100755
index 000000000..f7b093267
--- /dev/null
+++ b/community/nbtscan/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Sergio Rubio <rubiojr@biondofu.net>
+
+pkgname=nbtscan
+pkgver=1.5.1
+pkgrel=4
+pkgdesc="NBTscan is a program for scanning IP networks for NetBIOS name information."
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=(glibc)
+url="http://www.inetcat.net/software/nbtscan.html"
+source=(http://www.sourcefiles.org/Networking/Tools/Miscellanenous/nbtscan-1.5.1.tar.gz)
+md5sums=('85bb085077c380b82a6ff73e0de0c154')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}a
+ ./configure --prefix=/usr
+ make || return 1
+
+ # Copy the binary
+ mkdir -p $pkgdir/usr/bin
+ cp nbtscan $pkgdir/usr/bin
+
+ cd $startdir
+ # Include the nbtscan debian man page
+ mkdir -p $pkgdir/usr/share/man/man1
+ cp nbtscan.1.gz $pkgdir/usr/share/man/man1
+}
diff --git a/community/nbtscan/nbtscan.1.gz b/community/nbtscan/nbtscan.1.gz
new file mode 100644
index 000000000..9d7aeb416
--- /dev/null
+++ b/community/nbtscan/nbtscan.1.gz
Binary files differ
diff --git a/community/ncdu/PKGBUILD b/community/ncdu/PKGBUILD
new file mode 100644
index 000000000..a9f83e671
--- /dev/null
+++ b/community/ncdu/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: lp76 <l.peduto@gmail.com>
+# Maintainer: Daenyth <Daenyth+Arch AT gmail DOT com>
+pkgname=ncdu
+pkgver=1.7
+pkgrel=1
+pkgdesc="An NCurses version of the famous old 'du' unix command"
+arch=('i686' 'x86_64')
+url="http://dev.yorhel.nl/ncdu/"
+license=('MIT')
+depends=('ncurses')
+source=(http://dev.yorhel.nl/download/$pkgname-$pkgver.tar.gz)
+md5sums=('172047c29d232724cc62e773e82e592a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/ncmpcpp/PKGBUILD b/community/ncmpcpp/PKGBUILD
new file mode 100644
index 000000000..0eee723cd
--- /dev/null
+++ b/community/ncmpcpp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 36886 2011-01-09 21:17:22Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Army <uli[dot]armbruster[at]gmail[dot]com>
+
+pkgname=ncmpcpp
+pkgver=0.5.6
+pkgrel=1
+pkgdesc="An almost exact clone of ncmpc with some new features."
+arch=('i686' 'x86_64')
+url="http://unkart.ovh.org/ncmpcpp/"
+license=('GPL')
+depends=('curl' 'libmpdclient' 'taglib' 'ncurses')
+install=ncmpcpp.install
+source=(http://unkart.ovh.org/ncmpcpp/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('cdaf82694c0a1f5e9de65bb0a191e403')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-unicode \
+ --enable-clock \
+ --with-taglib \
+ --with-curl
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ncmpcpp/ncmpcpp.install b/community/ncmpcpp/ncmpcpp.install
new file mode 100644
index 000000000..b539969ae
--- /dev/null
+++ b/community/ncmpcpp/ncmpcpp.install
@@ -0,0 +1,19 @@
+pre_install() {
+ /bin/true
+}
+post_install() {
+ echo "Example configuration files can be found in"
+ echo "/usr/share/doc/ncmpcpp"
+}
+pre_upgrade() {
+ /bin/true
+}
+post_upgrade() {
+ /bin/true
+}
+pre_remove() {
+ /bin/true
+}
+post_remove() {
+ /bin/true
+}
diff --git a/community/neatx/PKGBUILD b/community/neatx/PKGBUILD
new file mode 100644
index 000000000..003d1bebf
--- /dev/null
+++ b/community/neatx/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 27121 2010-09-17 15:17:17Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Nicolas Doualot <packages@slubman.info>
+
+pkgname=neatx
+pkgver=0.3.1
+pkgrel=10
+pkgdesc="A free NX server by google"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/neatx/"
+license=('GPL')
+depends=('nxserver' 'python-pexpect' 'python-simplejson' 'netcat' 'pygtk')
+makedepends=('docutils')
+optdepends=('xorg-xdm: if you want to use KDE or GNOME session'
+ 'xorg-fonts-misc: to use default font'
+ 'xterm: if you want console session')
+install=neatx.install
+source=(http://neatx.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ constants.archlinux.patch)
+md5sums=('5748656738d5f04fef1af01b9fe5ef20'
+ 'a5ca4aa399cc25fa8435280e8b03c5a3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -i "$srcdir/constants.archlinux.patch" -p2
+
+ ./configure --prefix=/usr --localstatedir=/var RST2HTML=/usr/bin/rst2html
+ make
+ make DESTDIR="$pkgdir/" install
+ chmod 777 "$pkgdir/var/lib/neatx/sessions"
+
+ install -d -m755 ${pkgdir}/etc/ld.so.conf.d/
+ echo -e '/usr/lib\n/opt/NX/lib' > ${pkgdir}/etc/ld.so.conf.d/neatx.conf
+}
diff --git a/community/neatx/constants.archlinux.patch b/community/neatx/constants.archlinux.patch
new file mode 100644
index 000000000..dff5e2415
--- /dev/null
+++ b/community/neatx/constants.archlinux.patch
@@ -0,0 +1,42 @@
+--- a/neatx-0.3.1/lib/constants.py 2009-06-24 21:19:55.000000000 +0200
++++ b/neatx-0.3.1/lib/constants.py 2009-07-08 10:50:30.000000000 +0200
+@@ -25,19 +25,19 @@
+ from neatx import _autoconf
+
+
+-NXDIR = "/usr/lib/nx"
++NXDIR = "/opt/NX/bin"
+
+ SYSLOG_ADDRESS = "/dev/log"
+ BASH = "/bin/bash"
+-NETCAT = "/bin/netcat"
++NETCAT = "/usr/bin/netcat"
+ XRDB = "/usr/bin/xrdb"
+ SU = "/bin/su"
+ SSH = "/usr/bin/ssh"
+ XAUTH = "/usr/bin/xauth"
+-XSESSION = "/etc/X11/Xsession"
++XSESSION = "/etc/X11/xdm/Xsession"
+
+ START_CONSOLE_COMMAND = "/usr/bin/xterm"
+-START_KDE_COMMAND = XSESSION + " startkde"
++START_KDE_COMMAND = " startkde"
+ START_GNOME_COMMAND = XSESSION + " gnome-session"
+
+ NXUSER = "nx"
+@@ -47,12 +47,13 @@
+ NXNC = _autoconf.PKGLIBDIR + "/nxnc"
+ NXDIALOG = _autoconf.PKGLIBDIR + "/nxdialog"
+ NXAGENT = NXDIR + "/nxagent"
+-NXAGENT_PKGNAME = "nxagent"
++#NXAGENT_PKGNAME = "nxagent"
++NXAGENT_PKGNAME = "nxserver"
+ FDCOPY = _autoconf.PKGLIBDIR + "/fdcopy"
+ TTYSETUP = _autoconf.PKGLIBDIR + "/ttysetup"
+
+ # Extract nxagent version using the following command.
+-NXAGENT_VERSION_COMMAND = ("dpkg-query -W --showformat='${Version}' %s" %
++NXAGENT_VERSION_COMMAND = ("pacman -Qi %s | grep Version | awk '{print $3}'" %
+ NXAGENT_PKGNAME)
+ NXAGENT_VERSION_SEP = ".-~"
+
diff --git a/community/neatx/neatx.install b/community/neatx/neatx.install
new file mode 100644
index 000000000..89356878c
--- /dev/null
+++ b/community/neatx/neatx.install
@@ -0,0 +1,18 @@
+post_install() {
+ useradd -d /opt/NX/home/nx -s /usr/lib/neatx/nxserver-login-wrapper nx &> /dev/null
+ mkdir -p ~nx/.ssh
+ cp /usr/share/neatx/authorized_keys.nomachine ~nx/.ssh/authorized_keys
+ chmod 600 ~nx/.ssh/authorized_keys
+ chown -R nx ~nx
+ post_remove
+}
+
+pre_remove() {
+ userdel nx > /dev/null 2>&1
+ rm -rf ~nx
+}
+
+post_remove() {
+ sed -e '/\/opt\/NX\/lib/d' -i etc/ld.so.conf
+ ldconfig
+}
diff --git a/community/nemesis/PKGBUILD b/community/nemesis/PKGBUILD
new file mode 100644
index 000000000..53e81480a
--- /dev/null
+++ b/community/nemesis/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 11512 2010-02-12 23:38:30Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=nemesis
+pkgver=1.4
+pkgrel=3
+pkgdesc="command-line network packet crafting and injection utility"
+arch=(i686 x86_64)
+url="http://nemesis.sourceforge.net/"
+license=('GPL')
+depends=(glibc)
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/nemesis/nemesis-$pkgver.tar.gz \
+ http://archlinux-stuff.googlecode.com/files/libnet-1.0.2a.tar.gz \
+ nemesis-proto_tcp.c.diff)
+md5sums=('acd7de57798a7f90f445f80d4d4a6e61'
+ 'ddf53f0f484184390e8c2a1bd0853667'
+ 'd802f7a12610e68124200310ad80e0ac')
+
+build() {
+ # build libnet
+ cd ${startdir}/src/Libnet-1.0.2a
+
+ # very dirty hack
+ sed -i 's#malloc(p_size)#malloc(p_size*2)#' src/libnet_packet_mem.c
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=$srcdir/libnet
+ make || return 1
+ make MAN_PREFIX=$srcdir/libnet/usr/man/man3 install || return 1
+
+ # build nemesis
+ cd ${startdir}/src/nemesis-$pkgver
+
+ export PATH="$srcdir/libnet/bin:$PATH"
+ export CFLAGS="-D__GLIBC__=0 -I$srcdir/libnet/include -DLIBNET_LIL_ENDIAN"
+ export LDFLAGS="-L$srcdir/libnet/lib"
+
+ patch -Np1 <$srcdir/nemesis-proto_tcp.c.diff
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-libnet-includes=$srcdir/libnet/include \
+ --with-libnet-libraries=$srcdir/libnet/lib
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/community/nemesis/nemesis-proto_tcp.c.diff b/community/nemesis/nemesis-proto_tcp.c.diff
new file mode 100644
index 000000000..d5a921738
--- /dev/null
+++ b/community/nemesis/nemesis-proto_tcp.c.diff
@@ -0,0 +1,46 @@
+diff -wbBur nemesis-1.4/src/nemesis-functions.c nemesis-1.4.my/src/nemesis-functions.c
+--- nemesis-1.4/src/nemesis-functions.c 2004-10-07 02:16:50.000000000 +0000
++++ nemesis-1.4.my/src/nemesis-functions.c 2009-06-19 13:51:30.000000000 +0000
+@@ -8,6 +8,8 @@
+ *
+ */
+
++#include <net/ethernet.h>
++
+ #if defined(HAVE_CONFIG_H)
+ #include "config.h"
+ #endif
+diff -wbBur nemesis-1.4/src/nemesis-proto_tcp.c nemesis-1.4.my/src/nemesis-proto_tcp.c
+--- nemesis-1.4/src/nemesis-proto_tcp.c 2003-10-31 21:29:37.000000000 +0000
++++ nemesis-1.4.my/src/nemesis-proto_tcp.c 2009-06-19 13:51:15.000000000 +0000
+@@ -16,7 +16,7 @@
+ FileData *ipod, FileData *tcpod, char *device)
+ {
+ int n;
+- u_int32_t tcp_packetlen = 0, tcp_meta_packetlen = 0;
++ u_int32_t tcp_packetlen = 0, tcp_meta_packetlen = 0, tcp_headerlen = 0, ip_headerlen = 0;
+ static u_int8_t *pkt;
+ static int sockfd = -1;
+ struct libnet_link_int *l2 = NULL;
+@@ -58,13 +58,20 @@
+ #endif
+ }
+
++ ip_headerlen = LIBNET_IP_H + ipod->file_s;
++ tcp_headerlen = LIBNET_TCP_H + tcpod->file_s;
++
+ tcp_packetlen = link_offset + LIBNET_IP_H + LIBNET_TCP_H + pd->file_s +
+ ipod->file_s + tcpod->file_s;
+
+- tcp_meta_packetlen = tcp_packetlen - (link_offset + LIBNET_IP_H);
++ tcp_meta_packetlen = LIBNET_TCP_H + pd->file_s;
+
+ #ifdef DEBUG
++ printf("DEBUG: link offsetlength %u.\n", link_offset);
++ printf("DEBUG: IP header length %u.\n", ip_headerlen);
++ printf("DEBUG: TCP header length %u.\n", tcp_headerlen);
+ printf("DEBUG: TCP packet length %u.\n", tcp_packetlen);
++ printf("DEBUG: TCP meta length %u.\n", tcp_meta_packetlen);
+ printf("DEBUG: IP options size %u.\n", ipod->file_s);
+ printf("DEBUG: TCP options size %u.\n", tcpod->file_s);
+ printf("DEBUG: TCP payload size %u.\n", pd->file_s);
diff --git a/community/nepim/PKGBUILD b/community/nepim/PKGBUILD
new file mode 100644
index 000000000..31cbe035a
--- /dev/null
+++ b/community/nepim/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=nepim
+pkgver=0.9
+pkgrel=1
+pkgdesc='A tool for measuring available bandwidth between hosts.'
+url='http://www.nongnu.org/nepim'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('liboop')
+source=("http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('7d1f2fd248a1b5fec42f92b286208fcf')
+
+build() {
+ cd ${pkgname}-${pkgver}/src
+
+ make OOP_BASE=/usr
+}
+
+package() {
+ cd ${pkgname}-${pkgver}/src
+
+ install -D ${pkgname} ${pkgdir}/usr/bin/${pkgname}
+}
diff --git a/community/nestopia/ChangeLog b/community/nestopia/ChangeLog
new file mode 100644
index 000000000..5077d00b2
--- /dev/null
+++ b/community/nestopia/ChangeLog
@@ -0,0 +1,12 @@
+2008-12-16 Tiago Pierezan Camargo <tcamargo@gmail.com>
+
+ * PKGBUILD: Minor corrections.
+
+2008-12-04 Tiago Pierezan Camargo <tcamargo@gmail.com>
+
+ * PKGBUILD (source): Package adopted.
+ Variable/version cleanup.
+ Patch to remove bogus error messages on program exit.
+ New dependency: mesa.
+ Renamed executable to nestopia.
+
diff --git a/community/nestopia/PKGBUILD b/community/nestopia/PKGBUILD
new file mode 100644
index 000000000..4ce32b29c
--- /dev/null
+++ b/community/nestopia/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 35191 2010-12-17 15:10:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tiago Pierezan Camargo <tcamargo@gmail.com>
+# Contributor: robb_force <robb_force@holybuffalo.net>
+
+pkgname=nestopia
+pkgver=1.40h
+pkgrel=3
+pkgdesc='An NES emulator featuring cycle exact emulation, a ridiculous number of mappers, and lots of custom sound chips.'
+url='http://rbelmont.mameworld.info/?page_id=200'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('sdl>=1.2.12' 'alsa-lib' 'gtk2>=2.4' 'mesa')
+makedepends=('unzip')
+# rbelmont.mameworld.info blocks some user-agents
+DLAGENTS=('http::/usr/bin/wget -c -t 3 --waitretry=3 --user-agent=Mozilla/5.0 -O %o %u'
+ 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u')
+source=("https://downloads.sourceforge.net/project/nestopia/Nestopia/v${pkgver//[a-z]/}/Nestopia${pkgver//[.a-z]/}src.zip"
+ "http://rbelmont.mameworld.info/nst${pkgver//[a.a-z]/}_lnx_release_${pkgver:${#pkgver}-1:1}.zip"
+ "nestopia"
+ "nestopia_bogus_error_on_save_settings.patch")
+md5sums=('526c99a06d2b257135e7047b0ed95ae0'
+ 'f9a9a905bada67e11dac1364612d0b35'
+ 'abc2f030dd291f58d65c9095ef024225'
+ '0160078c9afcbb1a6ac389c3989929f7')
+
+build() {
+ cd ${srcdir}
+
+ # remove a bogus error message on exit
+ patch -p0 < nestopia_bogus_error_on_save_settings.patch
+
+ make -j1
+
+ # Install the nestopia script that copies required files to ~/.nestopia
+ install -Dm755 ${srcdir}/${pkgname} ${pkgdir}/usr/bin/${pkgname}
+
+ # Older releases used a .sh file. Make a symlink to make everyone happy
+ cd ${pkgdir}/usr/bin
+ ln -s ${pkgname} ${pkgname}.sh
+
+ cd ${srcdir}
+
+ # Install the required files and executable in /usr/share
+ install -Dm755 nst ${pkgdir}/usr/bin/${pkgname}-bin
+ install -dm775 ${pkgdir}/usr/share/${pkgname}/
+ install -m644 nstcontrols ${pkgdir}/usr/share/${pkgname}/
+ install -m644 NstDatabase.xml ${pkgdir}/usr/share/${pkgname}/
+}
diff --git a/community/nestopia/nestopia b/community/nestopia/nestopia
new file mode 100644
index 000000000..52bd2b2b3
--- /dev/null
+++ b/community/nestopia/nestopia
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+if [ ! -e $HOME/.nestopia ]; then
+ echo "Running NEStopia for the first time..."
+ echo "Copying required files to ~/.nestopia..."
+ mkdir $HOME/.nestopia
+ cp /usr/share/nestopia/{nstcontrols,NstDatabase.xml} $HOME/.nestopia/
+fi
+
+nestopia-bin "$@"
diff --git a/community/nestopia/nestopia_bogus_error_on_save_settings.patch b/community/nestopia/nestopia_bogus_error_on_save_settings.patch
new file mode 100644
index 000000000..63f33bc72
--- /dev/null
+++ b/community/nestopia/nestopia_bogus_error_on_save_settings.patch
@@ -0,0 +1,11 @@
+--- source/linux/settings.cpp.old 2008-10-23 05:45:58.000000000 +0200
++++ source/linux/settings.cpp 2008-12-04 23:17:59.000000000 +0100
+@@ -16,7 +16,7 @@
+ using namespace LinuxNst;
+
+ #define READ_SETTING(x) fread(&x, sizeof(x), 1, f)
+-#define WRITE_SETTING(x) if (fwrite(&x, sizeof(x), 1, f) != sizeof(x)) std::cout << "Error writing setting!\n"
++#define WRITE_SETTING(x) if (fwrite(&x, sizeof(x), 1, f) != 1) std::cout << "Error writing setting!\n"
+
+ static int rates[4] = { 11025, 22050, 44100, 48000 };
+
diff --git a/community/net6/PKGBUILD b/community/net6/PKGBUILD
new file mode 100644
index 000000000..26d8d2eea
--- /dev/null
+++ b/community/net6/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 7956 2010-01-12 23:28:07Z giovanni $
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=net6
+pkgver=1.3.12
+pkgrel=1
+pkgdesc="A library that provides a TCP protocol abstraction for C++"
+arch=('i686' 'x86_64')
+url="http://gobby.0x539.de/"
+license=('LGPL')
+depends=('gnutls' 'libsigc++2.0')
+options=('!libtool')
+source=(http://releases.0x539.de/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('506776416d8aea2b9ea13a81f9145383')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/netbrake/PKGBUILD b/community/netbrake/PKGBUILD
new file mode 100644
index 000000000..3b2e4d053
--- /dev/null
+++ b/community/netbrake/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 17605 2010-05-24 15:33:54Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zsolt Varadi <sysop_xxl@fibermail.hu>
+
+pkgname=netbrake
+pkgver=0.2
+pkgrel=3
+pkgdesc="Netbrake is an utility to limit the bandwidth used by a process"
+arch=(i686 x86_64)
+url="http://www.hping.org/netbrake/"
+license=('GPL')
+depends=(glibc)
+makedepends=()
+source=($url/$pkgname-$pkgver.tar.gz
+ arch-x86_64.patch)
+md5sums=('42f61481cdb910bddd1105d48367bdd2'
+ 'fe9de3428ff2a2ec8766d1b2bf8acfb5')
+
+build() {
+ cd $srcdir/$pkgname
+
+ [ $CARCH == "x86_64" ] && patch -Np1 <../arch-x86_64.patch
+
+ cp Makefile.in Makefile
+ sed -i -e 's|LIBPATH=@LIBPATH@|LIBPATH=/usr/lib|g' Makefile
+ sed -i -e 's|BINPATH=@BINPATH@|BINPATH=/usr/bin|g' Makefile
+ sed -i -e 's|COMPILE_TIME=@COMPILE_TIME@|COMPILE_TIME=-DNB_HTTPFS|g' Makefile
+
+ cp netbrake.h.in netbrake.h
+ sed -i -e 's|#define LIBPATH "@LIBPATH@"|#define LIBPATH "/usr/lib"|g' netbrake.h
+
+ make || return 1
+
+ mkdir -p $pkgdir/usr/bin
+ mkdir -p $pkgdir/usr/lib
+
+ install -m 755 netbrake $pkgdir/usr/bin
+ install -m 755 libnetbrake.so.0.1 $pkgdir/usr/lib
+}
diff --git a/community/netbrake/arch-x86_64.patch b/community/netbrake/arch-x86_64.patch
new file mode 100644
index 000000000..327ffca84
--- /dev/null
+++ b/community/netbrake/arch-x86_64.patch
@@ -0,0 +1,39 @@
+diff -wbBur netbrake/libnetbrake.c netbrake.my/libnetbrake.c
+--- netbrake/libnetbrake.c 2003-12-04 09:33:00.000000000 +0300
++++ netbrake.my/libnetbrake.c 2007-10-11 13:29:22.000000000 +0400
+@@ -236,7 +236,7 @@
+ return retval;
+ }
+
+-int recv(int s, void *buf, size_t len, int flags)
++ssize_t recv(int s, void *buf, size_t len, int flags)
+ {
+ int retval;
+
+@@ -245,7 +245,7 @@
+ return retval;
+ }
+
+-int recvfrom(int s, void *buf, size_t len, int flags,
++ssize_t recvfrom(int s, void *buf, size_t len, int flags,
+ struct sockaddr *from, socklen_t *fromlen)
+ {
+ int retval;
+@@ -255,7 +255,7 @@
+ return retval;
+ }
+
+-int send(int s, const void *msg, size_t len , int flags)
++ssize_t send(int s, const void *msg, size_t len , int flags)
+ {
+ int retval;
+
+@@ -264,7 +264,7 @@
+ return retval;
+ }
+
+-int sendto(int s, const void *msg, size_t len, int flags,
++ssize_t sendto(int s, const void *msg, size_t len, int flags,
+ const struct sockaddr *to, socklen_t tolen)
+ {
+ int retval;
diff --git a/community/nethack/PKGBUILD b/community/nethack/PKGBUILD
new file mode 100644
index 000000000..fafecfd18
--- /dev/null
+++ b/community/nethack/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 36702 2011-01-06 09:48:20Z schuay $
+# Maintainer : schuay <jakob.gruber@gmail.com>
+# Contributor : kevin <kevin@archlinux.org>
+# Contributor : Christian Schmidt <mucknert@gmx.net>
+# Contributor : Markus Meissner <markus@meissna.de>
+
+pkgname=nethack
+pkgver=3.4.3
+pkgrel=5
+pkgdesc='A single player dungeon exploration game'
+arch=('i686' 'x86_64')
+url="http://www.nethack.org/index.html"
+license=('custom')
+depends=('ncurses' 'gzip')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-${pkgver//.}-src.tgz")
+md5sums=('21479c95990eefe7650df582426457f9')
+
+build(){
+ cd $srcdir/$pkgname-$pkgver/
+ sh sys/unix/setup.sh
+
+ sed -e '/define HACKDIR/ s|/usr/games/lib/nethackdir|/usr/share/nethack/|' \
+ -e '/^#define COMPRESS\s/ s|/usr/bin/compress|/bin/gzip|' \
+ -e '/^#define COMPRESS_EXTENSION/ s|".Z"|".gz"|' \
+ -e 's|^/\* \(#define DLB\) \*/|\1|' -i include/config.h
+
+ sed -e 's|^/\* \(#define LINUX\) \*/|\1|' \
+ -e 's|^/\* \(#define TIMED_DELAY\) \*/|\1|' -i include/unixconf.h
+
+ sed -e 's|^# \(WINTTYLIB = -lncurses\)|\1|' \
+ -e 's|^WINTTYLIB = -ltermlib|#&|' -i src/Makefile
+
+ # we are setting up for setgid games, so modify all necessary permissions
+ # to allow full access for groups
+
+ sed -e '/^GAMEDIR\s*=/ s|/games/.*$|/share/$(GAME)|' \
+ -e '/^GAMEUID\s*=/ s|games|root|' \
+ -e '/^GAMEGRP\s*=/ s|bin|games|' \
+ -e '/^GAMEPERM\s*=/ s|04755|02755|' \
+ -e '/^FILEPERM\s*=/ s|0644|0664|' \
+ -e '/^DIRPERM\s*=/ s|0755|0775|' \
+ -e '/^SHELLDIR\s*=/ s|/games|/bin|' -i Makefile
+
+ sed -e "/^MANDIR\s*=/s|/usr/man/man6|$pkgdir/usr/share/man/man6|" -i doc/Makefile
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/
+
+ install -dm755 $pkgdir/usr/share/{man/man6,doc/nethack}
+ make PREFIX=$pkgdir/usr install manpages
+ sed -e "s|HACKDIR=$pkgdir/usr/|HACKDIR=/usr/|" \
+ -e 's|HACK=$HACKDIR|HACK=/usr/lib/nethack|' \
+ -i $pkgdir/usr/bin/nethack
+
+ install -dm755 $pkgdir/usr/lib/nethack
+ mv $pkgdir/usr/share/nethack/{nethack,recover} $pkgdir/usr/lib/nethack/
+
+ install -Dm644 doc/Guidebook.txt $pkgdir/usr/share/doc/nethack/Guidebook.txt
+
+ install -Dm644 dat/license $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/netstat-nat/PKGBUILD b/community/netstat-nat/PKGBUILD
new file mode 100644
index 000000000..c6785d714
--- /dev/null
+++ b/community/netstat-nat/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 39342 2011-02-09 09:58:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=netstat-nat
+pkgver=1.4.10
+pkgrel=1
+pkgdesc="Small program written in C displaying NAT connections, managed by netfilter."
+url="http://tweegy.nl/projects/netstat-nat/"
+license=("GPL")
+arch=(i686 x86_64)
+depends=(iptables)
+source=(http://tweegy.nl/download/netstat-nat-$pkgver.tar.gz)
+md5sums=('c1bbb3ee9774ebfa27c440e2d9dd7286')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/netsurf/PKGBUILD b/community/netsurf/PKGBUILD
new file mode 100644
index 000000000..218a6a79f
--- /dev/null
+++ b/community/netsurf/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Contributor: Georgij Kondratjev <smpuj@bk.ru>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=netsurf
+pkgver=2.6
+pkgrel=1
+pkgdesc="Lightweight, fast web browser"
+arch=('i686' 'x86_64')
+url="http://www.netsurf-browser.org/"
+license=('GPL')
+depends=('libmng' 'librsvg' 'curl' 'libglade' 'lcms' 'libjpeg>=7'
+ 'libwapcaplet' 'libcss')
+makedepends=('re2c' 'libnsbmp' 'libnsgif' 'hubbub')
+source=("http://www.netsurf-browser.org/downloads/releases/${pkgname}-${pkgver}-src.tar.gz")
+md5sums=('8653789d2ede6dbbfe79882afc7538fc')
+
+build() {
+ cd ${srcdir}/${pkgname}
+
+ sed -i 's#GtkNotebookPage#GtkWidget#' gtk/gtk_tabs.c
+ sed -i 's#GTK_WIDGET_SET_FLAGS(GTK_WIDGET(g->layout), GTK_CAN_FOCUS);#gtk_widget_set_can_focus(GTK_WIDGET(g->layout), true);#' \
+ gtk/gtk_window.c
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+
+ make install DESTDIR=${pkgdir} PREFIX=/usr NETSURF_USE_HARU_PDF=NO
+}
diff --git a/community/netwatch/PKGBUILD b/community/netwatch/PKGBUILD
new file mode 100644
index 000000000..8078c2af7
--- /dev/null
+++ b/community/netwatch/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 17608 2010-05-24 15:34:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=netwatch
+pkgver=1.3.0
+pkgrel=2
+pkgdesc="monitor network connections"
+arch=(i686 x86_64)
+url="http://www.slctech.org/~mackay/NETWATCH/netwatch.html"
+license=('GPL')
+options=(zipman)
+depends=(ncurses)
+source=(http://www.slctech.org/~mackay/NETWATCH/netwatch-$pkgver-1.tgz)
+md5sums=('9168c20c1984e9d126d1a0ec1eb0c1d3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make || return 1
+
+ install -D -m0755 netwatch $pkgdir/usr/bin/netwatch && \
+ install -D -m0755 netresolv $pkgdir/usr/bin/netresolv && \
+ install -D -m0644 netwatch.1 $pkgdir/usr/share/man/man1/netwatch.1
+}
diff --git a/community/newsbeuter/PKGBUILD b/community/newsbeuter/PKGBUILD
new file mode 100644
index 000000000..52509e5b3
--- /dev/null
+++ b/community/newsbeuter/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 39113 2011-02-06 22:21:51Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Sven Pfleiderer <pfleidi@roothausen.de>
+
+pkgname=newsbeuter
+pkgver=2.4
+pkgrel=1
+pkgdesc="A RSS feed reader for the text console with special Podcast support"
+arch=('i686' 'x86_64')
+url="http://www.newsbeuter.org/"
+license=('custom: MIT')
+depends=('curl' 'libxml2' 'sqlite3' 'stfl')
+makedepends=('swig' 'gettext')
+optdepends=('ruby')
+options=('!libtool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://www.newsbeuter.org/downloads/$pkgname-$pkgver.tar.gz \
+ $pkgname-archlinux.patch)
+sha256sums=('62dc8a3daf2f4c1ab6ec6997df0881146b6aa3fe3b29ef70cb644c258a7d0a9a'
+ '5d76916159fd2b02eefb67e016f109edd0977df5274672685b7f8e0ec9668754')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np0 -i ${srcdir}/$pkgname-archlinux.patch
+
+ make prefix=/usr
+ make prefix=/usr DESTDIR=$pkgdir install
+
+#license
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/newsbeuter/newsbeuter-archlinux.patch b/community/newsbeuter/newsbeuter-archlinux.patch
new file mode 100644
index 000000000..3fb26b39b
--- /dev/null
+++ b/community/newsbeuter/newsbeuter-archlinux.patch
@@ -0,0 +1,14 @@
+--- src/view.cpp 2011-02-06 23:15:11.000000000 +0100
++++ src/view.cpp 2011-02-06 23:15:11.000000000 +0100
+@@ -42,3 +42,3 @@
+ #include <string.h>
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+
+--- src/controller.cpp 2011-02-06 23:14:53.000000000 +0100
++++ src/controller.cpp 2011-02-06 23:14:53.000000000 +0100
+@@ -40,3 +40,3 @@
+
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
+
diff --git a/community/newsbeuter/newsbeuter.changelog b/community/newsbeuter/newsbeuter.changelog
new file mode 100644
index 000000000..98be69352
--- /dev/null
+++ b/community/newsbeuter/newsbeuter.changelog
@@ -0,0 +1,21 @@
+2011-01-06 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * newsbeuter 2.4-1
+
+2010-06-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v2.3
+ * FS#19744 fixed - non-working locale
+
+2010-03-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v2.2
+
+2009-12-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v2.1
+
+2009-10-28 Biru Ionut <ionut@archlinux.ro>
+ * Fixed FS#16857
+
+2009-10-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Fixed FS#16850
+
+2009-06-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community] in v2.0
diff --git a/community/newsbeuter/newsbeuter.install b/community/newsbeuter/newsbeuter.install
new file mode 100644
index 000000000..f74c51bc5
--- /dev/null
+++ b/community/newsbeuter/newsbeuter.install
@@ -0,0 +1,6 @@
+post_install() {
+cat << EOF
+==> If you're not satisfied by the information "man newsbeuter" provides,
+==> have a look at /usr/share/doc/newsbeuter/newsbeuter.html
+EOF
+}
diff --git a/community/nexuiz/PKGBUILD b/community/nexuiz/PKGBUILD
new file mode 100644
index 000000000..2471fe8ec
--- /dev/null
+++ b/community/nexuiz/PKGBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Xyne
+# Contributor: Rick Chen (stuffcorpse)
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Camille Moncelier <pix@devlife.org>
+
+pkgname=nexuiz
+pkgver=2.5.2
+_zipver=252
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc="a free, open-source first person shooter"
+url="http://www.nexuiz.com/"
+license=("GPL")
+depends=('alsa-lib' 'curl' 'libjpeg>=8' 'libmodplug' 'libvorbis' 'libxpm' 'libxxf86dga' 'libxxf86vm' 'sdl' 'nexuiz-data' 'libpng>=1.4.0')
+makedepends=('mesa')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${_zipver}.zip \
+ nexuiz-dedicated nexuiz-glx nexuiz-sdl nexuiz-glx.desktop \
+ nexuiz-sdl.desktop nexuiz.png libpng14.patch)
+md5sums=('d750bc328e58df8492f8d88bdcf818cb'
+ '19bfaa6e891d3309783e8366db485474'
+ '4d0ee9282a6fe153f82f7797decfd585'
+ '3e5ea741e8d55df8e7691c797c81ffa7'
+ '310f0577c39391f2d2f17cea446ce269'
+ '4561d3c5be4801399af515faf82ebcba'
+ '442fb62670bbe0a1b5370461052051a3'
+ '60964348924ff777a92dbb171a86a1ed')
+
+build() {
+ _nexdir="$pkgdir/opt/nexuiz"
+ _enginesource_date="20091001"
+ mkdir -p "$_nexdir" || return 1
+
+ cd $srcdir/Nexuiz
+ bsdtar -x -f sources/enginesource${_enginesource_date}.zip || return 1
+ cd darkplaces
+ patch -Np1 -i ${srcdir}/libpng14.patch || return 1
+ # patch -p1 < "$srcdir/nexuiz-libjpeg-fix.patch" || return 1
+
+ # here's a working kludge to build all three binaries at once but don't use it ;)
+ # make CPUOPTIMIZATIONS="${CFLAGS}" nexuiz || make CPUOPTIMIZATIONS="${CFLAGS}" nexuiz || return 1
+
+ # build the binaries separately instead to avoid truncated files
+ make CPUOPTIMIZATIONS="${CFLAGS}" DP_LINK_TO_LIBJPEG=1 cl-nexuiz || return 1
+ make CPUOPTIMIZATIONS="${CFLAGS}" DP_LINK_TO_LIBJPEG=1 sdl-nexuiz || return 1
+ make CPUOPTIMIZATIONS="${CFLAGS}" DP_LINK_TO_LIBJPEG=1 sv-nexuiz || return 1
+
+ # install the compiled binaries
+ install -Dm755 nexuiz-glx nexuiz-sdl nexuiz-dedicated -t $_nexdir || return 1
+
+ install -dm755 $pkgdir/usr/{bin,share/applications} || return 1
+ install -Dm755 $srcdir/nexuiz-{glx,sdl,dedicated} -t $pkgdir/usr/bin || return 1
+ install -Dm644 $srcdir/*.desktop -t $pkgdir/usr/share/applications || return 1
+ install -Dm644 $srcdir/nexuiz.png $pkgdir/usr/share/pixmaps/nexuiz.png || return 1
+}
diff --git a/community/nexuiz/libpng14.patch b/community/nexuiz/libpng14.patch
new file mode 100644
index 000000000..d6ce5ea76
--- /dev/null
+++ b/community/nexuiz/libpng14.patch
@@ -0,0 +1,39 @@
+diff -Nur darkplaces.old/image_png.c darkplaces/image_png.c
+--- darkplaces.old/image_png.c 2009-09-15 06:08:02.000000000 +0300
++++ darkplaces/image_png.c 2010-01-28 01:23:24.000000000 +0200
+@@ -36,7 +36,7 @@
+ static void* (*qpng_create_info_struct) (void*);
+ static void (*qpng_read_info) (void*, void*);
+ static void (*qpng_set_expand) (void*);
+-static void (*qpng_set_gray_1_2_4_to_8) (void*);
++static void (*qpng_set_expand_gray_1_2_4_to_8) (void*);
+ static void (*qpng_set_palette_to_rgb) (void*);
+ static void (*qpng_set_tRNS_to_alpha) (void*);
+ static void (*qpng_set_gray_to_rgb) (void*);
+@@ -61,7 +61,7 @@
+ {"png_create_info_struct", (void **) &qpng_create_info_struct},
+ {"png_read_info", (void **) &qpng_read_info},
+ {"png_set_expand", (void **) &qpng_set_expand},
+- {"png_set_gray_1_2_4_to_8", (void **) &qpng_set_gray_1_2_4_to_8},
++ {"png_set_expand_gray_1_2_4_to_8", (void **) &qpng_set_expand_gray_1_2_4_to_8},
+ {"png_set_palette_to_rgb", (void **) &qpng_set_palette_to_rgb},
+ {"png_set_tRNS_to_alpha", (void **) &qpng_set_tRNS_to_alpha},
+ {"png_set_gray_to_rgb", (void **) &qpng_set_gray_to_rgb},
+@@ -110,7 +110,7 @@
+ #elif defined(MACOSX)
+ "libpng12.0.dylib",
+ #else
+- "libpng12.so.0",
++ "libpng14.so.0",
+ "libpng.so", // FreeBSD
+ #endif
+ NULL
+@@ -311,7 +311,7 @@
+ {
+ qpng_set_gray_to_rgb(png);
+ if (my_png.BitDepth < 8)
+- qpng_set_gray_1_2_4_to_8(png);
++ qpng_set_expand_gray_1_2_4_to_8(png);
+ }
+
+ if (qpng_get_valid(png, pnginfo, PNG_INFO_tRNS))
diff --git a/community/nexuiz/nexuiz-dedicated b/community/nexuiz/nexuiz-dedicated
new file mode 100644
index 000000000..bf517cce7
--- /dev/null
+++ b/community/nexuiz/nexuiz-dedicated
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/nexuiz
+./nexuiz-dedicated $@
diff --git a/community/nexuiz/nexuiz-glx b/community/nexuiz/nexuiz-glx
new file mode 100644
index 000000000..5fad4db07
--- /dev/null
+++ b/community/nexuiz/nexuiz-glx
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/nexuiz
+./nexuiz-glx $@
diff --git a/community/nexuiz/nexuiz-glx.desktop b/community/nexuiz/nexuiz-glx.desktop
new file mode 100644
index 000000000..8808c16db
--- /dev/null
+++ b/community/nexuiz/nexuiz-glx.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=2.5
+Encoding=UTF-8
+Name=Nexuiz (GLX)
+Comment=a free open-source first person shooter
+Icon=/usr/share/pixmaps/nexuiz.png
+Exec=/usr/bin/nexuiz-glx
+Terminal=false
+StartupNotify=false
+Categories=Game;
diff --git a/community/nexuiz/nexuiz-sdl b/community/nexuiz/nexuiz-sdl
new file mode 100644
index 000000000..36b6d5cc3
--- /dev/null
+++ b/community/nexuiz/nexuiz-sdl
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/nexuiz
+./nexuiz-sdl $@
diff --git a/community/nexuiz/nexuiz-sdl.desktop b/community/nexuiz/nexuiz-sdl.desktop
new file mode 100644
index 000000000..019970e61
--- /dev/null
+++ b/community/nexuiz/nexuiz-sdl.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=2.5
+Encoding=UTF-8
+Name=Nexuiz (SDL)
+Comment=a free open-source first person shooter
+Icon=/usr/share/pixmaps/nexuiz.png
+Exec=/usr/bin/nexuiz-sdl
+Terminal=false
+StartupNotify=false
+Categories=Game;
diff --git a/community/nexuiz/nexuiz.png b/community/nexuiz/nexuiz.png
new file mode 100644
index 000000000..a0ec8b3d4
--- /dev/null
+++ b/community/nexuiz/nexuiz.png
Binary files differ
diff --git a/community/nginx/ChangeLog b/community/nginx/ChangeLog
new file mode 100644
index 000000000..fb28b1717
--- /dev/null
+++ b/community/nginx/ChangeLog
@@ -0,0 +1,7 @@
+2009-05-26 sergej <pupykin.s+arch@gmail.com>
+* etc/conf.d params added
+
+2007-06-29 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Clearly the ugliest pkgbuild I've seen but the author deserves
+ kudos
diff --git a/community/nginx/PKGBUILD b/community/nginx/PKGBUILD
new file mode 100644
index 000000000..81e4dffd8
--- /dev/null
+++ b/community/nginx/PKGBUILD
@@ -0,0 +1,88 @@
+# $Id: PKGBUILD 44016 2011-04-01 16:48:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Miroslaw Szot <mss@czlug.icis.pcz.pl>
+
+_doc_root=/srv/http/nginx
+_server_root=/etc/nginx
+_conf_path=${_server_root}/conf
+_tmp_path=/var/spool/nginx
+_log_path=/var/log/nginx
+_user=http
+_group=http
+
+pkgname=nginx
+pkgver=0.8.54
+pkgrel=3
+pkgdesc="lightweight HTTP server and IMAP/POP3 proxy server"
+arch=('i686' 'x86_64')
+depends=('pcre' 'zlib' 'openssl')
+url="http://nginx.net/"
+license=('custom')
+backup=("etc/nginx/conf/nginx.conf"
+ "etc/nginx/conf/koi-win"
+ "etc/nginx/conf/koi-utf"
+ "etc/nginx/conf/win-utf"
+ "etc/nginx/conf/mime.types"
+ "etc/nginx/conf/fastcgi_params"
+ "etc/logrotate.d/nginx")
+source=(http://sysoev.ru/nginx/nginx-${pkgver}.tar.gz
+ nginx)
+md5sums=('44df4eb6a22d725021288c570789046f'
+ '837b010afcbdfe82d8e65ef00c4e14ba')
+
+build() {
+ local _src_dir=$srcdir/nginx-${pkgver}
+ local _build_dir=$_src_dir/objs
+
+ cd $_src_dir
+ ./configure \
+ --prefix=${_server_root} \
+ --sbin-path=/usr/sbin/nginx \
+ --pid-path=/var/run/nginx.pid \
+ --lock-path=/var/lock/nginx.lock \
+ --http-client-body-temp-path=${_tmp_path}/client_body_temp \
+ --http-proxy-temp-path=${_tmp_path}/proxy_temp \
+ --http-fastcgi-temp-path=${_tmp_path}/fastcgi_temp \
+ --http-log-path=${_log_path}/access.log \
+ --error-log-path=${_log_path}/error.log \
+ --user=${_user} --group=${_group} \
+ --with-imap --with-imap_ssl_module --with-http_ssl_module \
+ --with-http_stub_status_module \
+ --with-http_dav_module \
+ --with-http_gzip_static_module \
+ --with-ipv6
+
+ make
+ make DESTDIR=$pkgdir install
+
+ install -d $pkgdir/etc/logrotate.d/
+ cat <<EOF > $pkgdir/etc/logrotate.d/nginx
+ $_log_path/*log {
+ create 640 http log
+ compress
+ postrotate
+ /bin/kill -USR1 \`cat /var/run/nginx.pid 2>/dev/null\` 2> /dev/null || true
+ endscript
+ }
+EOF
+
+ sed -i -e "s/\<user\s\+\w\+;/user $_user;/g" $pkgdir/$_conf_path/nginx.conf
+
+ install -d $pkgdir/$_tmp_path
+
+ # move default document root outside server root
+ install -d $pkgdir/$_doc_root
+ mv $pkgdir/$_server_root/html/* $pkgdir/$_doc_root/
+ rm -rf $pkgdir/$_server_root/html
+ rm -f $pkgdir/$_doc_root/index.html
+
+ # let's create links for relative paths in config file
+ ln -s $_log_path $pkgdir/$_server_root/logs
+ ln -s $_doc_root $pkgdir/$_server_root/html
+
+ install -D -m755 $srcdir/nginx $pkgdir/etc/rc.d/nginx
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/nginx/LICENSE
+ mkdir -p $pkgdir/etc/conf.d
+ echo "NGINX_CONFIG=/etc/nginx/conf/nginx.conf" >$pkgdir/etc/conf.d/nginx
+ rm -rf $pkgdir/var/run
+}
diff --git a/community/nginx/nginx b/community/nginx/nginx
new file mode 100644
index 000000000..2d5a02a47
--- /dev/null
+++ b/community/nginx/nginx
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+# general config
+
+NGINX_CONFIG="/etc/nginx/conf/nginx.conf"
+
+. /etc/conf.d/nginx
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+function check_config {
+ stat_busy "Checking configuration"
+ /usr/sbin/nginx -t -q -c "$NGINX_CONFIG"
+ if [ $? -ne 0 ]; then
+ stat_die
+ else
+ stat_done
+ fi
+}
+
+case "$1" in
+ start)
+ check_config
+ $0 careless_start
+ ;;
+ careless_start)
+ stat_busy "Starting Nginx"
+ if [ -s /var/run/nginx.pid ]; then
+ stat_fail
+ # probably ;)
+ stat_busy "Nginx is already running"
+ stat_die
+ fi
+ /usr/sbin/nginx -c "$NGINX_CONFIG" &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon nginx
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Nginx"
+ kill -QUIT `cat /var/run/nginx.pid` &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ rm_daemon nginx
+ stat_done
+ fi
+ ;;
+ restart)
+ check_config
+ $0 stop
+ sleep 1
+ $0 careless_start
+ ;;
+ reload)
+ check_config
+ if [ -s /var/run/nginx.pid ]; then
+ status "Reloading Nginx Configuration" kill -HUP `cat /var/run/nginx.pid`
+ fi
+ ;;
+ check)
+ check_config
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|reload|check|careless_start}"
+esac
diff --git a/community/ngircd/PKGBUILD b/community/ngircd/PKGBUILD
new file mode 100644
index 000000000..215068dd0
--- /dev/null
+++ b/community/ngircd/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 40090 2011-02-20 00:03:13Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+pkgname=ngircd
+pkgver=17.1
+pkgrel=1
+pkgdesc="Next Generation IRC Daemon"
+arch=('i686' 'x86_64')
+backup=(etc/ngircd.conf)
+url="http://ngircd.barton.de/"
+license=('GPL')
+depends=('openssl' 'libident')
+source=(ftp://ftp.berlios.de/pub/ngircd/ngircd-$pkgver.tar.gz ngircd.sh)
+md5sums=('b4ad0b1f18875ff3f2e92f076e64496b'
+ '6d2e9f1bbb4a3a7349da0dcd3f6d8dc3')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --with-ident \
+ --with-openssl
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ install -D -m 755 ../ngircd.sh $pkgdir/etc/rc.d/ngircd
+}
diff --git a/community/ngircd/ngircd.sh b/community/ngircd/ngircd.sh
new file mode 100644
index 000000000..3947f527e
--- /dev/null
+++ b/community/ngircd/ngircd.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting ngircd IRC daemon"
+ /usr/sbin/ngircd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ add_daemon ngircd
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ngircd IRC daemon"
+ PID=`pidof -o %PPID /usr/sbin/ngircd`
+ kill $PID > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ngircd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ngrep/PKGBUILD b/community/ngrep/PKGBUILD
new file mode 100644
index 000000000..d7063e9d4
--- /dev/null
+++ b/community/ngrep/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 20363 2008-12-03 00:59:17Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=ngrep
+pkgver=1.45
+pkgrel=5
+pkgdesc="A grep-like utility that allows you to search for network packets on an interface"
+arch=('i686' 'x86_64')
+url="http://ngrep.sourceforge.net/"
+license=('custom')
+depends=('libpcap>=1.0.0')
+source=(http://downloads.sourceforge.net/sourceforge/ngrep/ngrep-${pkgver}.tar.bz2)
+md5sums=('bc8150331601f3b869549c94866b4f1c')
+sha1sums=('f26090a6ac607db66df99c6fa9aef74968f3330f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --with-pcap-includes=/usr/include/pcap
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m644 LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt
+}
diff --git a/community/ngspice/PKGBUILD b/community/ngspice/PKGBUILD
new file mode 100644
index 000000000..06a9eacd0
--- /dev/null
+++ b/community/ngspice/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 39270 2011-02-07 23:09:46Z bisson $
+# Maintainer: Abhishek Dasgupta <abhidg@gmail.com>
+# Contributor: Jason Taylor <jftaylor21@gmail.com>
+
+pkgname=ngspice
+pkgver=22
+pkgrel=1
+pkgdesc='Mixed-level/Mixed-signal circuit simulator based on Spice3f5, Ciber1b1, and Xspice.'
+url='http://ngspice.sourceforge.net'
+license=('BSD')
+arch=('i686' 'x86_64')
+depends=('libxaw' 'libedit')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgver/ngspice-$pkgver.tar.gz")
+sha1sums=('abb232613fb4859f17bcdefeef869e702bd3f0dc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --enable-xspice \
+ --with-editline=yes
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/noip/PKGBUILD b/community/noip/PKGBUILD
new file mode 100644
index 000000000..4ed673e68
--- /dev/null
+++ b/community/noip/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 5867 2009-11-21 17:42:53Z jlichtblau $
+# Contributor: Lyle Putnam <lcputnam@amerytel.net>
+# Maintainer: Daenyth
+
+pkgname=noip
+pkgver=2.1.9
+pkgrel=2
+pkgdesc="A Dynamic DNS Client Updater for no-ip.com services"
+arch=('i686' 'x86_64')
+url="http://www.no-ip.com/downloads.php?page=linux"
+license=('GPL')
+backup=('etc/no-ip2.conf')
+install=noip.install
+# Note that they have the one file for the current release, so if the md5sum breaks, it means they updated.
+source=('http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz'
+ 'noip-rc.d')
+
+md5sums=('3b0f5f2ff8637c73ab337be403252a60'
+ '63253de6f4d847015d111e5e5b20f2cf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-1
+
+ # Their Makefile is fucking horrid, do it by hand instead
+ sed -i '/^#define CONFIG_FILEPATH/s/PREFIX//' noip2.c
+ sed -i '/^#define CONFIG_FILENAME/s/PREFIX//' noip2.c
+ gcc -Wall $CLFAGS $LDFLAGS -g -Dlinux -DPREFIX="/usr" noip2.c -o noip2 || return 1
+
+ install -Dm755 noip2 $pkgdir/usr/bin/noip2
+ install -Dm755 $srcdir/noip-rc.d $pkgdir/etc/rc.d/noip
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/noip/noip-rc.d b/community/noip/noip-rc.d
new file mode 100644
index 000000000..c40b9d12a
--- /dev/null
+++ b/community/noip/noip-rc.d
@@ -0,0 +1,39 @@
+#!/bin/bash
+_DAEMON=noip
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/${_DAEMON}2`
+case "$1" in
+ start)
+ stat_busy "Starting $_DAEMON"
+ [ -z "$PID" ] && /usr/bin/${_DAEMON}2
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo `pidof -o %PPID /usr/bin/${_DAEMON}2` > /var/run/$_DAEMON.pid
+ add_daemon $_DAEMON
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping $_DAEMON"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/$_DAEMON.pid
+ rm_daemon $_DAEMON
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/noip/noip.install b/community/noip/noip.install
new file mode 100644
index 000000000..8e0252a4b
--- /dev/null
+++ b/community/noip/noip.install
@@ -0,0 +1,11 @@
+# arg 1: the new package version
+post_install() {
+ echo ""
+ echo "####################################################"
+ echo "# IMPORTANT! #"
+ echo "# BEFORE running noip2 YOU MUST CONFIGURE IT! #"
+ echo "# To configure noip2 run the command \"noip2 -C -Y\" #"
+ echo "####################################################"
+ echo ""
+ sleep 2
+}
diff --git a/community/nrg2iso/PKGBUILD b/community/nrg2iso/PKGBUILD
new file mode 100644
index 000000000..493bfb4ff
--- /dev/null
+++ b/community/nrg2iso/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 25073 2010-08-30 17:39:20Z ibiru $
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Pointer <pointer@linux-blog.de>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=nrg2iso
+pkgver=0.4
+pkgrel=7
+pkgdesc="Utility for converting CD or DVD image generated by Nero Burning Rom to ISO format"
+arch=('i686' 'x86_64')
+url="http://gregory.kokanosky.free.fr/v4/linux/nrg2iso.en.html"
+license=('GPL')
+depends=('glibc')
+source=(http://gregory.kokanosky.free.fr/v4/linux/${pkgname}-${pkgver}.tar.gz)
+md5sums=('996c38c8f1465e9c51ccad4f31ec2eee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ sed -i -e 's|gcc|gcc ${CFLAGS}|g' Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ install -D nrg2iso ${pkgdir}/usr/bin/nrg2iso
+}
+
diff --git a/community/nsd/PKGBUILD b/community/nsd/PKGBUILD
new file mode 100644
index 000000000..ef11a6dc1
--- /dev/null
+++ b/community/nsd/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 43285 2011-03-24 13:35:27Z bisson $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=nsd
+pkgver=3.2.8
+pkgrel=1
+pkgdesc='Authoritative only, high performance and simple DNS server'
+arch=('i686' 'x86_64')
+url='http://www.nlnetlabs.nl/nsd/'
+license=('BSD')
+depends=('openssl')
+makedepends=('flex')
+source=("http://www.nlnetlabs.nl/downloads/nsd/nsd-$pkgver.tar.gz")
+sha1sums=('e8db690a09f53152f0dca6e4fbfabcc89003fced')
+
+install=nsd.install
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/ --exec-prefix=/usr --datarootdir=/usr/share
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -d "$pkgdir"/{etc/rc.d,usr/share/{doc,licenses}/"$pkgname"}
+ rm doc/differences.pdf
+ install -m644 doc/* "$pkgdir"/usr/share/doc/"$pkgname"
+ ln -s ../../doc/"$pkgname"/LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+ ln -s ../../usr/sbin/nsdc "$pkgdir"/etc/rc.d/nsd
+}
diff --git a/community/nsd/nsd.install b/community/nsd/nsd.install
new file mode 100644
index 000000000..274ce0beb
--- /dev/null
+++ b/community/nsd/nsd.install
@@ -0,0 +1,20 @@
+post_install () {
+ getent group nsd &>/dev/null || groupadd -r nsd >/dev/null
+ getent passwd nsd &>/dev/null || useradd -r -g nsd -d /dev/null -s /bin/false -c nsd nsd >/dev/null
+ chown nsd:nsd /var/db/nsd
+ chmod 700 /var/db/nsd
+ install -o nsd -d /var/run/nsd
+ cat <<EOF
+==> First write a /etc/nsd/nsd.conf (see /etc/nsd/nsd.conf.sample)
+==> Next, start with: /etc/rc.d/nsd rebuild; /etc/rc.d/nsd start
+EOF
+}
+
+pre_remove() {
+ /etc/rc.d/nsd stop
+}
+
+post_remove() {
+ getent passwd nsd &>/dev/null && userdel nsd >/dev/null
+ getent group nsd &>/dev/null && groupdel nsd >/dev/null
+}
diff --git a/community/ntop/PKGBUILD b/community/ntop/PKGBUILD
new file mode 100644
index 000000000..6049cbb8f
--- /dev/null
+++ b/community/ntop/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id$
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=ntop
+pkgver=4.0.3
+pkgrel=1
+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}.tgz"
+ 'ntop'
+ 'ntop.conf.d')
+md5sums=('f064393a2090e5bda102cd49c2707789'
+ '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/ntop/ntop b/community/ntop/ntop
new file mode 100755
index 000000000..2f0dbcbdd
--- /dev/null
+++ b/community/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/ntop/ntop.conf.d b/community/ntop/ntop.conf.d
new file mode 100644
index 000000000..28e2a3166
--- /dev/null
+++ b/community/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/ntop/ntop.install b/community/ntop/ntop.install
new file mode 100644
index 000000000..8d8063751
--- /dev/null
+++ b/community/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/nut/PKGBUILD b/community/nut/PKGBUILD
new file mode 100644
index 000000000..e44333a5f
--- /dev/null
+++ b/community/nut/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Slash <demodevil5 [at] yahoo [dot] com>
+
+pkgname=nut
+pkgver=16.9
+pkgrel=1
+pkgdesc='Records what you eat and analyzes your meals for nutrient levels in terms of the Daily Value or DV which is the standard for food labeling in the US.'
+url='http://nut.sourceforge.net/'
+license=('GPL')
+arch=('i686' 'x86_64')
+source=("http://downloads.sourceforge.net/project/nut/nut/${pkgver}/nut-${pkgver}.tar.gz")
+md5sums=('1f5a56a372023f4dcfc5a31fef61f5dd')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # change install path to /usr instead of /usr/local
+ sed -i 's#local/##' Makefile
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ # Install Data
+ install -d ${pkgdir}/usr/lib/${pkgname}
+ install -m644 raw.data/* \
+ ${pkgdir}/usr/lib/${pkgname}/
+
+ # Install Binary
+ install -D ${pkgname} \
+ ${pkgdir}/usr/bin/${pkgname}
+
+ # Install Man Page
+ install -D -m644 ${pkgname}.1 \
+ ${pkgdir}/usr/share/man/man1/${pkgname}.1
+}
diff --git a/community/nvclock/PKGBUILD b/community/nvclock/PKGBUILD
new file mode 100644
index 000000000..4eda3735f
--- /dev/null
+++ b/community/nvclock/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 37680 2011-01-16 14:37:03Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Markus Meissner <markus@meissna.de>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=nvclock
+pkgver=0.8b4
+pkgrel=2
+pkgdesc='A small utility which allows users to overclock NVIDIA based video cards.'
+arch=('i686' 'x86_64')
+url='http://www.linuxhardware.org/nvclock/'
+license=('GPL')
+depends=('gtk2')
+optdepends=('gksu: to start nvclock via the desktop menu entry')
+install='nvclock.install'
+options=('!makeflags')
+source=("http://www.linuxhardware.org/${pkgname}/${pkgname}${pkgver}.tar.gz"
+ 'nvclock-0.8b4-buildfix.patch'
+ 'nvclock.desktop-use-gksu.patch')
+md5sums=('23f1b3ebf40f35d76d5fdac50f66ab11'
+ '1da24b50dd6a8c4704fa550a3e1a8b53'
+ '98fc1995721d0b0e8ff6d448869eee6d')
+
+build(){
+ cd "${srcdir}/${pkgname}${pkgver}"
+
+ # build fix from Fedora
+ patch -Np1 -i "${srcdir}/nvclock-0.8b4-buildfix.patch"
+
+ # Make ".desktop" file use gksu(1).
+ patch -Np0 -i "${srcdir}/nvclock.desktop-use-gksu.patch"
+
+ sed -i 's:${prefix}/man:${prefix}\/share\/man:' "${srcdir}/${pkgname}${pkgver}/Makefile.in"
+
+ ./configure --prefix=/usr --bindir=/usr/bin
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/nvclock/nvclock-0.8b4-buildfix.patch b/community/nvclock/nvclock-0.8b4-buildfix.patch
new file mode 100644
index 000000000..cdc9f5c88
--- /dev/null
+++ b/community/nvclock/nvclock-0.8b4-buildfix.patch
@@ -0,0 +1,16 @@
+diff -upNr nvclock0.8b4.orign/src/Makefile.in nvclock0.8b4/src/Makefile.in
+--- nvclock0.8b4.orign/src/Makefile.in 2009-01-03 18:02:54.000000000 +0100
++++ nvclock0.8b4/src/Makefile.in 2009-01-07 11:37:39.000000000 +0100
+@@ -50,8 +50,8 @@ distclean: distclean-recursive clean-app
+ install: install-recursive install-app
+ install-app:
+ mkdir -p $(bindir)
+- $(INSTALL) -c nvclock $(DESTDIR)$(bindir)/nvclock
+- $(INSTALL) -c smartdimmer $(DESTDIR)$(bindir)/smartdimmer
++ $(INSTALL) -c nvclock $(bindir)/nvclock
++ $(INSTALL) -c smartdimmer $(bindir)/smartdimmer
+
+
+ uninstall: uninstall-recursive uninstall-app
+
+
diff --git a/community/nvclock/nvclock.desktop-use-gksu.patch b/community/nvclock/nvclock.desktop-use-gksu.patch
new file mode 100644
index 000000000..a372f5de8
--- /dev/null
+++ b/community/nvclock/nvclock.desktop-use-gksu.patch
@@ -0,0 +1,11 @@
+--- nvclock.desktop.orig 2011-01-16 15:15:55.764977836 +0100
++++ nvclock.desktop 2011-01-16 15:16:07.827408839 +0100
+@@ -2,7 +2,7 @@
+ Encoding=UTF-8
+ Name=NVCLOCK
+ Comment=Overclock and Monitor NVIDIA cards
+-Exec=nvclock_gtk
++Exec=gksu nvclock_gtk
+ Icon=nvclock.png
+ Terminal=false
+ Type=Application
diff --git a/community/nvclock/nvclock.install b/community/nvclock/nvclock.install
new file mode 100644
index 000000000..d59dca6e8
--- /dev/null
+++ b/community/nvclock/nvclock.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/nvdock/PKGBUILD b/community/nvdock/PKGBUILD
new file mode 100644
index 000000000..a10edeabc
--- /dev/null
+++ b/community/nvdock/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 8929 2010-01-22 18:37:23Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Matthew Sharpe <matt.sharpe@gmail.com>
+
+pkgname=nvdock
+pkgver=1.02
+pkgrel=3
+pkgdesc="A tray icon for easy launching of the NVIDIA control panel"
+arch=('i686' 'x86_64')
+url="http://www.opsat.net/user/bob/projects/nvdock"
+license=('BSD')
+depends=('gtk2')
+makedepends=('glib')
+source=(http://bobmajdakjr.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e18c4eeff936dc3b671fd8b5a9bb5145')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make || return 1
+ install -D -m755 build/nvdock "${pkgdir}/usr/bin/nvdock" || return 1
+ install -D -m644 data/nvdock.png "${pkgdir}/usr/share/pixmaps/nvdock.png" || return 1
+ install -D -m644 data/nvdock.desktop "${pkgdir}/usr/share/applications/nvdock.desktop" || return 1
+
+ # Install license
+ install -D COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/community/nzbget/ChangeLog b/community/nzbget/ChangeLog
new file mode 100644
index 000000000..74030cd3d
--- /dev/null
+++ b/community/nzbget/ChangeLog
@@ -0,0 +1,18 @@
+2010-05-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Fixed FS#19399 - missing postprocess-example.conf file
+
+2010-05-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.7.0
+
+2009-10-11 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Dependency added (gnutls) in v0.6.0-2
+
+2008-03-20 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.6.0
+
+2008-09-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.5.1
+
+2008-09-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community]
+ * Update to major release 0.5.0
diff --git a/community/nzbget/PKGBUILD b/community/nzbget/PKGBUILD
new file mode 100644
index 000000000..8d0ac39a9
--- /dev/null
+++ b/community/nzbget/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 16899 2010-05-12 17:57:00Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=nzbget
+pkgver=0.7.0
+pkgrel=2
+pkgdesc="Downloads from Usenet using .nzb files"
+arch=('i686' 'x86_64')
+url="http://nzbget.sourceforge.net/"
+license=('GPL')
+depends=('gnutls' 'libpar2' 'libxml2' 'ncurses')
+makedepends=('autoconf' 'automake')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('27971846aba75f5e312d80dce7edbc5d')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+# autoreconf -fi || return 1
+#uudeview ("uulib") has been removed, and "it did not work well anyway"
+ ./configure --prefix=/usr --enable-parcheck || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+#other files
+ install -d ${pkgdir}/usr/share/$pkgname || return 1
+ install -m644 -t ${pkgdir}/usr/share/$pkgname \
+ AUTHORS postprocess-example.sh postprocess-example.conf \
+ ChangeLog nzbget.conf.example README || return 1
+}
diff --git a/community/obby/PKGBUILD b/community/obby/PKGBUILD
new file mode 100644
index 000000000..d10bf6798
--- /dev/null
+++ b/community/obby/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 20481 2010-07-08 11:26:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+
+pkgname=obby
+pkgver=0.4.7
+pkgrel=2
+pkgdesc="A library which provides synced document buffers"
+url="http://gobby.0x539.de"
+options=('!libtool')
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('net6' 'avahi' 'libsigc++')
+source=(http://releases.0x539.de/obby/obby-$pkgver.tar.gz)
+md5sums=('33fac4228c1efc1a1635bacf6480dc31')
+
+build() {
+ cd $srcdir/obby-$pkgver
+ ./configure --prefix=/usr --with-zeroconf --enable-ipv6
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/obexfs/PKGBUILD b/community/obexfs/PKGBUILD
new file mode 100644
index 000000000..3e1d404a1
--- /dev/null
+++ b/community/obexfs/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 20975 2010-07-13 09:53:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Packager: cs-cam - me.at.camdaniel.com
+
+pkgname=obexfs
+pkgver=0.12
+pkgrel=2
+pkgdesc="FUSE based filesystem using ObexFTP (currently beta)."
+arch=('i686' 'x86_64')
+url="http://openobex.triq.net/obexfs"
+license=('GPL')
+source=(http://triq.net/obexftp/$pkgname-$pkgver.tar.gz)
+depends=('fuse' 'obexftp>=0.22')
+md5sums=('0f505672b025cdb505e215ee707a2e2f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ export OBEXFTP_CFLAGS="-I/usr/include/obexftp -I/usr/include/multicobex -I/usr/include/bfb"
+ export OBEXFTP_LIBS="-lobexftp -lmulticobex -lbfb -lopenobex -lbluetooth"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/ocaml-extlib/PKGBUILD b/community/ocaml-extlib/PKGBUILD
new file mode 100644
index 000000000..42af092f3
--- /dev/null
+++ b/community/ocaml-extlib/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Thomas S Hatch <thatch45 at gmail dot com>
+# Contributor: Massimiliano Brocchini <brocchini@netseven.it>
+
+pkgname=ocaml-extlib
+pkgver=1.5.1
+pkgrel=4
+pkgdesc="Extends the OCaml standard library"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/ocaml-extlib/"
+license=('LGPL')
+depends=('ocaml')
+makedepends=('ocaml-findlib')
+source=(http://ocaml-extlib.googlecode.com/files/extlib-${pkgver}.tar.gz)
+md5sums=('8dc2944cbf63141347956bd353893d75')
+
+_OCAMLFIND_DESTDIR="${pkgdir}/usr/lib/ocaml"
+_DOCDIR="${pkgdir}/usr/share/doc/ocaml-extlib"
+
+build() {
+ cd ${srcdir}/extlib-${pkgver}
+ make all
+ make opt
+ sed -i 's/cp odoc_style.css/#cp odoc_style.css/g' Makefile
+ sed -i 's/ocamldoc -sort -html/ocamldoc -sort -keep-code -html -colorize-code/g' Makefile
+ make doc
+}
+
+package () {
+ cd ${srcdir}/extlib-${pkgver}
+ mkdir -p $_OCAMLFIND_DESTDIR/extlib
+ mkdir -p $_DOCDIR
+ install -m 0644 *.{a,cmxa,cma,cmi,cmo,mli,cmx,ml} $_OCAMLFIND_DESTDIR/extlib
+ install -m 0644 META.txt $_OCAMLFIND_DESTDIR/extlib/META
+ cp -r doc/* $_DOCDIR/
+}
diff --git a/community/ocaml-findlib/PKGBUILD b/community/ocaml-findlib/PKGBUILD
new file mode 100644
index 000000000..8cca5d565
--- /dev/null
+++ b/community/ocaml-findlib/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Thomas S Hatch <thatch45 at gmail dot com>
+# Contributor: Sebastian Wiesner <lunaryorn googlemail com>
+# Contributor: Benjamin Andresen <benny(at)klapmuetz(dot)org>
+# scj <scj archlinux us>
+pkgname=ocaml-findlib
+pkgver=1.2.6
+pkgrel=4
+license=('MIT')
+arch=('i686' 'x86_64')
+pkgdesc="Objective Caml (OCaml) package manager"
+url="http://projects.camlcity.org/projects/findlib.html"
+depends=('ocaml')
+source=("http://download.camlcity.org/download/findlib-${pkgver}.tar.gz")
+md5sums=('4924c8c3ef1208eb0fa9096c8b8bb72f')
+options=('!strip' 'zipman') # otherwise the bytecode gets broken
+
+build() {
+ cd ${srcdir}/findlib-${pkgver}
+ ./configure\
+ -config /etc/findlib.conf \
+ -sitelib /usr/lib/ocaml \
+ -mandir /usr/share/man
+ make all opt
+}
+
+package () {
+ cd ${srcdir}/findlib-${pkgver}
+ make prefix=${pkgdir} install
+
+ # Add the old site-lib to the path to maintain compatability with old style
+ # packages.
+ sed -i 's/path=\"\/usr\/lib\/ocaml\"/path="\/usr\/lib\/ocaml:\/usr\/lib\/ocaml\/site-lib"/' ${pkgdir}/etc/findlib.conf
+
+ install -m755 src/findlib/ocamlfind_opt "${pkgdir}/usr/bin/"
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/ocaml-ounit/PKGBUILD b/community/ocaml-ounit/PKGBUILD
new file mode 100644
index 000000000..1ac2c7445
--- /dev/null
+++ b/community/ocaml-ounit/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thomas S Hatch <thatch45 at gmail dot com>
+# Contributor: Sebastian Wiesner <lunaryorn googlemail com>
+# Contributor: Benjamin Andresen <benny(at)klapmuetz(dot)org>
+# Sylvester Johansson <syljo361(at)gmail(dot)org>
+pkgname=ocaml-ounit
+pkgver=1.1.0
+pkgrel=4
+arch=('i686' 'x86_64')
+license=('MIT')
+pkgdesc="Unit testing framework for OCaml"
+url="http://ounit.forge.ocamlcore.org/index.php"
+depends=('ocaml')
+makedepends=('ocaml-findlib')
+options=('!strip')
+source=("https://forge.ocamlcore.org/frs/download.php/495/ounit-${pkgver}.tar.gz")
+md5sums=('bf82bd7f8853cd9a1aff7be716192643')
+
+_OCAMLFIND_DESTDIR="${pkgdir}/usr/lib/ocaml"
+
+build() {
+ cd "${srcdir}/ounit-${pkgver}"
+ ocaml setup.ml -configure --destdir "${pkgdir}"
+ ocaml setup.ml -build
+}
+
+package() {
+ cd "${srcdir}/ounit-${pkgver}"
+ mkdir -p $_OCAMLFIND_DESTDIR
+ env OCAMLFIND_DESTDIR=$_OCAMLFIND_DESTDIR \
+ ocaml setup.ml -install
+ install -Dm 644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE.txt
+}
diff --git a/community/ogle-gui/PKGBUILD b/community/ogle-gui/PKGBUILD
new file mode 100644
index 000000000..60f5ef688
--- /dev/null
+++ b/community/ogle-gui/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 8473 2010-01-20 08:14:50Z ebelanger $
+# Maintainer: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Kritoke <kritoke@nospam.gamebox.net>
+
+pkgname=ogle-gui
+pkgver=0.9.2
+pkgrel=4
+pkgdesc="A gtk2 gui for ogle"
+arch=('i686' 'x86_64')
+url="http://www.dtek.chalmers.se/groups/dvd/"
+license=("GPL")
+depends=('ogle' 'libglade')
+source=(http://www.dtek.chalmers.se/groups/dvd/dist/ogle_gui-${pkgver}.tar.gz)
+md5sums=('e685aa3046f9da13532ede9300f2f794')
+sha1sums=('0d73ec30852b9cd2a9714b5088f6ab6deecf097d')
+
+build() {
+ cd "${srcdir}/ogle_gui-${pkgver}"
+ ./configure --prefix=/usr --enable-gtk2 || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/community/ogmrip/PKGBUILD b/community/ogmrip/PKGBUILD
new file mode 100644
index 000000000..cfb4e0cbd
--- /dev/null
+++ b/community/ogmrip/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 41467 2011-03-06 22:16:48Z heftig $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Daenyth
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Vrob (Markus Heuser) mheuser@mi.fu-berlin.de
+
+pkgname=ogmrip
+pkgver=0.13.6
+pkgrel=2
+pkgdesc="Libraries and GTK2 interface for DVD ripping using mencoder"
+arch=('i686' 'x86_64')
+url="http://ogmrip.sourceforge.net/"
+license=('GPL')
+depends=('libdvdread>=4.1.3' 'mplayer' 'enca' 'pkgconfig' 'gconf' 'libglade' 'libnotify' 'enchant')
+makedepends=('patch' 'intltool' 'perl-xml-parser' 'faac' 'lame' 'mkvtoolnix' 'libtheora' 'ogmtools' 'gpac' 'vorbis-tools' 'tesseract')
+optdepends=('faac: support for the AAC audio codec'
+ 'lame: support for the MP3 audio codec'
+ 'mkvtoolnix: create, alter, and inspect Matroska files'
+ 'libtheora: decode and encode Ogg Theora files'
+ 'ogmtools: support for the Ogg Media container'
+ 'gpac: support for the MP4 container'
+ 'vorbis-tools: support for the Ogg Vorbis audio codec'
+ 'gocr: support for the SRT subtitle format'
+ 'ocrad: support for the SRT subtitle format'
+ 'tesseract: support for the SRT subtitle format')
+options=('!libtool' '!makeflags')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ ogmrip-0.13.6-libnotify-0.7.patch)
+md5sums=('e094c49cdf758883293dd44513fb37e8'
+ 'a7f2c64c9f1d96664d29200e461bb36e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np0 -i "$srcdir/ogmrip-0.13.6-libnotify-0.7.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/usr/share
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/ogmrip/ogmrip-0.13.6-libnotify-0.7.patch b/community/ogmrip/ogmrip-0.13.6-libnotify-0.7.patch
new file mode 100644
index 000000000..64cfbf0ff
--- /dev/null
+++ b/community/ogmrip/ogmrip-0.13.6-libnotify-0.7.patch
@@ -0,0 +1,25 @@
+--- src/ogmrip-progress-dialog.c
++++ src/ogmrip-progress-dialog.c
+@@ -32,6 +32,9 @@
+
+ #ifdef HAVE_LIBNOTIFY_SUPPORT
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif /* HAVE_LIBNOTIFY_SUPPORT */
+
+ #define OGMRIP_PROGRESS_DIALOG_GET_PRIVATE(o) \
+@@ -418,8 +421,12 @@
+ g_signal_connect_swapped (dialog->priv->status_icon, "popup_menu",
+ G_CALLBACK (ogmrip_progress_dialog_status_icon_popup_menu), dialog);
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ /* notify_notification_new_with_status_icon was removed */
++#else
+ dialog->priv->notification = notify_notification_new_with_status_icon ("Dummy", "Dummy",
+ OGMRIP_DATA_DIR G_DIR_SEPARATOR_S OGMRIP_ICON_FILE, dialog->priv->status_icon);
++#endif
+ g_signal_connect (dialog, "window-state-event",
+ G_CALLBACK (ogmrip_progress_dialog_state_changed), NULL);
+
diff --git a/community/ogmrip/ogmrip.changelog b/community/ogmrip/ogmrip.changelog
new file mode 100644
index 000000000..79aca2bba
--- /dev/null
+++ b/community/ogmrip/ogmrip.changelog
@@ -0,0 +1,15 @@
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * ogmrip O.13.6-1
+ * new upstream release
+
+2010-06-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release O.13.5
+
+2010-04-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release O.13.4
+
+2010-01-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#17517 fixed in minor release O.13.3-2
+
+2010-01-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release O.13.3
diff --git a/community/ogre/PKGBUILD b/community/ogre/PKGBUILD
new file mode 100644
index 000000000..1ad80ba86
--- /dev/null
+++ b/community/ogre/PKGBUILD
@@ -0,0 +1,88 @@
+# $Id: PKGBUILD 40996 2011-03-03 04:00:57Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+pkgbase=ogre
+pkgname=('ogre' 'ogre-docs')
+pkgver=1.7.2
+pkgrel=5
+pkgdesc="A scene-oriented, flexible 3D engine written in C++"
+arch=('i686' 'x86_64')
+url='http://www.ogre3d.org'
+license=('custom:MIT')
+depends=('boost-libs' 'freeimage' 'freetype2' 'libxaw' 'libxrandr'
+ 'nvidia-cg-toolkit' 'mesa' 'zziplib' 'ois')
+makedepends=('boost' 'cmake' 'doxygen' 'graphviz' 'ttf-dejavu')
+optdepends=('cppunit: unit testing'
+ 'intel-tbb: better threading support'
+ 'poco: portability')
+install=ogre.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}_src_v${pkgver//./-}.tar.bz2")
+md5sums=('dd6574b8d906a74950c1e05633b2e96f')
+
+build() {
+ cd ${srcdir}/${pkgname}_src_v${pkgver//./-}
+
+ # get a clean build dir
+ [[ -d build ]] && rm -rf build
+ mkdir build
+ cd build
+
+ # generate CMake Makefile
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DOGRE_INSTALL_PLUGINS_HEADERS=TRUE \
+ -DOGRE_INSTALL_SAMPLES=TRUE \
+ -DOGRE_INSTALL_DOCS=TRUE \
+ -DOGRE_INSTALL_MEDIA=TRUE \
+ -DOGRE_INSTALL_SAMPLES_SOURCE=TRUE \
+ -DCMAKE_BUILD_TYPE=Release # set =Debug for debugging version
+
+ # compile
+ make
+
+ # generate docs
+ if [[ $(which dot) && $(which doxygen) ]]; then
+ make doc
+ fi
+}
+
+package_ogre() {
+ optdepends=('ogre-docs: documentation')
+
+ cd ${srcdir}/${pkgname}_src_v${pkgver//./-}/build
+
+ # install the bugger
+ make DESTDIR=${pkgdir} install
+
+ # fix up samples
+ install -dm775 -o root -g users ${pkgdir}/opt/OGRE/samples/
+ mv ${pkgdir}/usr/share/OGRE/*.cfg ${pkgdir}/opt/OGRE/samples/
+ mv ${pkgdir}/usr/bin/SampleBrowser ${pkgdir}/opt/OGRE/samples/
+
+ # make sample launcher
+ echo "#!/bin/bash" > ${pkgdir}/usr/bin/OgreSampleBrowser
+ echo "cd /opt/OGRE/samples && ./SampleBrowser" >> ${pkgdir}/usr/bin/OgreSampleBrowser
+ chmod +x ${pkgdir}/usr/bin/OgreSampleBrowser
+
+ # install license
+ install -Dm644 ../Docs/License.html ${pkgdir}/usr/share/licenses/${pkgname}/license.html
+
+ # move docs out of this package
+ mv ${pkgdir}/usr/share/OGRE/docs ${srcdir}/docs
+}
+
+package_ogre-docs() {
+ pkgdesc="Documentation for ogre"
+ depends=()
+ cd ${srcdir}/${pkgname}_src_v${pkgver//./-}/build
+
+ # move docs into this package
+ install -dm755 ${pkgdir}/usr/share/doc
+ mv ${srcdir}/docs ${pkgdir}/usr/share/doc/OGRE/
+
+ # symlink for docs
+ install -dm755 ${pkgdir}/usr/share/OGRE/
+ cd ${pkgdir}/usr/share
+ ln -s doc/OGRE/ OGRE/docs
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/ogre/ogre.install b/community/ogre/ogre.install
new file mode 100644
index 000000000..5db668d9e
--- /dev/null
+++ b/community/ogre/ogre.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "To view the OGRE samples just run OgreSampleBrowser or launch"
+ echo "it directly in /opt/OGRE/samples/"
+}
diff --git a/community/oidentd/PKGBUILD b/community/oidentd/PKGBUILD
new file mode 100644
index 000000000..da509f959
--- /dev/null
+++ b/community/oidentd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 24924 2010-08-29 18:14:02Z mherych $
+# Maintainer: simo <simo@archlinux.org>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=oidentd
+pkgver=2.0.8
+pkgrel=4
+pkgdesc="oidentd is an ident (rfc1413 compliant) daemon that runs on Linux"
+arch=('i686' 'x86_64')
+url="http://dev.ojnk.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/ojnk/oidentd-$pkgver.tar.gz
+ oidentd.rc
+ oidentd.default)
+md5sums=('c3d9a56255819ef8904b867284386911'
+ '93cbf742cdd0b053f67482273d715f25'
+ '603307525771724b0f55a2c34fbc3f3e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man install
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m 755 $srcdir/$pkgname.rc $pkgdir/etc/rc.d/oidentd
+ install -D -m 644 $srcdir/$pkgname.default $pkgdir/etc/conf.d/oidentd
+}
+
diff --git a/community/oidentd/oidentd.default b/community/oidentd/oidentd.default
new file mode 100644
index 000000000..5eefa80e2
--- /dev/null
+++ b/community/oidentd/oidentd.default
@@ -0,0 +1,5 @@
+USER=nobody
+GROUP=nobody
+OPTS=""
+# You will need this, when you want oidentd listen both on IPv4 and IPv6
+# OPTS="-a ::"
diff --git a/community/oidentd/oidentd.rc b/community/oidentd/oidentd.rc
new file mode 100644
index 000000000..8b3c04c45
--- /dev/null
+++ b/community/oidentd/oidentd.rc
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/oidentd
+
+# no daemon check needed for oidentd, and no pid nesecary.
+case "$1" in
+ start)
+ stat_busy "Starting oidentd Daemon..."
+ # oidentd is smart enough to only run one copy of
+ # itsself, no check nesecary, and no pidfile
+ /usr/sbin/oidentd -u ${USER} -g ${GROUP} ${OPTS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon oidentd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping oidentd Daemon..."
+ # kill the process by it's full name, or the init script
+ # will terminate as well, wreaking havok.
+ killall /usr/sbin/oidentd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon oidentd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/ois/PKGBUILD b/community/ois/PKGBUILD
new file mode 100644
index 000000000..9ba2d73e2
--- /dev/null
+++ b/community/ois/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 38882 2011-02-02 21:19:53Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: scippio <scippio@berounet.cz>
+pkgname=ois
+pkgver=1.3
+pkgrel=1
+pkgdesc="Object Oriented Input System"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/wgois"
+license=('zlib/libpng')
+makedepends=('autoconf' 'automake' 'libtool' 'gcc' 'libxaw')
+source=("http://downloads.sourceforge.net/project/wgois/Source%20Release/${pkgver}/ois_v${pkgver/./-}.tar.gz")
+md5sums=('9697fead17eac6025151cd2e1fca1518')
+
+build() {
+ cd ${srcdir}/${pkgname}-v${pkgver/./-}
+ chmod +x bootstrap
+ ./bootstrap
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-v${pkgver/./-}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/omniorb/PKGBUILD b/community/omniorb/PKGBUILD
new file mode 100644
index 000000000..0cd67c2bd
--- /dev/null
+++ b/community/omniorb/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 27121 2010-09-17 15:17:17Z schuay $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Essien Ita Essien <me@essienitaessien.com>
+# Contributor: Brice Mealier <mealier_brice@yahoo.fr>
+
+pkgname=omniorb
+pkgver=4.1.4
+pkgrel=2
+pkgdesc="A CORBA object request broker for C++ and Python."
+arch=('i686' 'x86_64')
+url="http://omniorb.sourceforge.net/"
+license=('GPL2' 'LGPL2')
+depends=('gcc-libs' 'python2' 'openssl')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/omniorb/omniORB-$pkgver.tar.gz)
+md5sums=('1f6070ff9b6339876976d61981eeaa6a')
+
+build() {
+ cd $srcdir/omniORB-$pkgver
+
+ # 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
+
+ # Fix to build with OpenSSL 1.0.0
+ sed -i 's/SSL_METHOD/const SSL_METHOD/' \
+ src/lib/omniORB/orbcore/ssl/sslContext.cc \
+ include/omniORB4/sslContext.h
+ ./configure --prefix=/usr --with-omniORB-config=/etc/omniorb/omniORB.cfg \
+ --with-omniNames-logdir=/var/log/omniORB --with-openssl=/usr
+ make
+ make DESTDIR=$pkgdir install
+ for i in man/man1/*.1; do
+ install -D -m 644 $i $pkgdir/usr/share/$i
+ done
+ chmod 755 $pkgdir/{usr,usr/bin,usr/lib,usr/share,usr/include,usr/share/idl,usr/lib/pkgconfig,usr/lib/python2.7,usr/lib/python2.7/site-packages}
+}
diff --git a/community/open-vm-tools-modules/PKGBUILD b/community/open-vm-tools-modules/PKGBUILD
new file mode 100644
index 000000000..da5b81257
--- /dev/null
+++ b/community/open-vm-tools-modules/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 39956 2011-02-18 23:30:08Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
+
+pkgname=open-vm-tools-modules
+pkgver=2011.01.24
+_pkgsubver=354108
+pkgrel=1
+pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
+arch=('i686' 'x86_64')
+url="http://open-vm-tools.sourceforge.net/"
+license=('GPL')
+makedepends=('libdnet' 'icu' 'uriparser' 'kernel26-headers')
+depends=("kernel26")
+install=$pkgname.install
+source=(http://easynews.dl.sourceforge.net/sourceforge/open-vm-tools/open-vm-tools-$pkgver-${_pkgsubver}.tar.gz)
+md5sums=('b324efa55bb3f1198100cad838e9272b')
+
+build() {
+_kernver=`pacman -Q kernel26 | cut -d . -f 3 | cut -f 1 -d -`
+depends=("kernel26>=2.6.${_kernver}" "kernel26<2.6.`expr ${_kernver} + 1`")
+
+ KERNEL_VERSION="2.6.${_kernver}-ARCH"
+ msg "Kernel = $KERNEL_VERSION"
+
+ cd "$srcdir/open-vm-tools-${pkgver}-${_pkgsubver}"
+
+ sed -i 's#-lproc-3.2.7#-lproc-3.2.8#' configure
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+
+ (cd modules && make modules)
+
+ mkdir -p $pkgdir/lib/modules/$KERNEL_VERSION/misc/
+ for MOD in `find -type f -name '*.ko'`; do
+ install -D -m644 $MOD $pkgdir/lib/modules/$KERNEL_VERSION/misc/
+ done
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='$KERNEL_VERSION'/" $startdir/$pkgname.install
+}
diff --git a/community/open-vm-tools-modules/open-vm-tools-modules.install b/community/open-vm-tools-modules/open-vm-tools-modules.install
new file mode 100644
index 000000000..19c60c520
--- /dev/null
+++ b/community/open-vm-tools-modules/open-vm-tools-modules.install
@@ -0,0 +1,35 @@
+KERNEL_VERSION='2.6.37-ARCH'
+
+post_install() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+
+ VMXNET="install pcnet32 /sbin/modprobe -q --ignore-install vmxnet;"
+ VMXNET="$VMXNET /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS;"
+ VMXNET="$VMXNET /bin/true;"
+
+ echo ">>> Enabling vmxnet driver in /etc/modprobe.d/modprobe.conf"
+ echo ">>> (this will disable pcnet32 driver)"
+ sed "$ a \\\n#VMware net driver\n$VMXNET" -i /etc/modprobe.d/modprobe.conf
+ echo
+
+ echo ">>>"
+ echo ">>> If vmxnet driver doesn't handle your NIC, you have to manually"
+ echo ">>> disable loading of pcnet32 driver by blacklisting it in /etc/rc.conf."
+ echo ">>>"
+}
+
+post_upgrade() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_remove() {
+ depmod -a -v $KERNEL_VERSION > /dev/null 2>&1
+
+ echo ">>> Disabling vmxnet driver in /etc/modprobe.d/modprobe.conf"
+ sed "/VMware net driver/,+1 d" -i /etc/modprobe.d/modprobe.conf
+
+ echo ">>>"
+ echo ">>> Remember to un-blacklist pcnet32 driver in /etc/rc.conf."
+ echo ">>>"
+}
+
diff --git a/community/open-vm-tools/PKGBUILD b/community/open-vm-tools/PKGBUILD
new file mode 100644
index 000000000..d324026d1
--- /dev/null
+++ b/community/open-vm-tools/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 39959 2011-02-18 23:30:44Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Krzysztof Raczkowski <raczkow@gmail.com>
+
+pkgname=open-vm-tools
+pkgver=2011.01.24
+_pkgsubver=354108
+pkgrel=1
+pkgdesc="The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools."
+arch=('i686' 'x86_64')
+url="http://open-vm-tools.sourceforge.net/"
+license=('LGPL')
+depends=('open-vm-tools-modules' 'libdnet' 'icu' 'procps' 'glib2' 'uriparser' 'libsigc++' 'libxss')
+makedepends=('chrpath' 'doxygen')
+optdepends=('gtkmm' 'libnotify' 'libxtst' 'fuse' 'libsm')
+options=('docs' '!libtool')
+install=$pkgname.install
+source=(http://switch.dl.sourceforge.net/$pkgname/$pkgname-$pkgver-${_pkgsubver}.tar.gz
+ scripts-network.patch
+ scripts-network-FS19541.patch
+ open-vm-tools-X11Bool.patch
+ open-vm-tools.conf.d
+ open-vm-tools.rc.d
+ tools.conf
+ vmware-guestd
+ xautostart.conf)
+md5sums=('b324efa55bb3f1198100cad838e9272b'
+ '06f7448e274db2a911f582e276088fc9'
+ 'b183ec265200d68431a5e4eb1b0c8cf5'
+ '8c333a979578bdc0c3134c1dd6bb7353'
+ '79b0a14d86191fee70a4639da8bd7785'
+ '67cb83a9e5a4dd016c1a1da2863ca36d'
+ 'b55d15e2c4be396aad709aeca91033d3'
+ '73cc1a2665b0dd62427733d62ead8b9a'
+ '75a25d83417e683957321f97a00f8465')
+
+build() {
+ cd "$srcdir/$pkgname-${pkgver}-${_pkgsubver}"
+
+# [ $NOEXTRACT -eq 1 ] || patch -Np1 -i $srcdir/open-vm-tools-X11Bool.patch
+
+ [ $NOEXTRACT -eq 1 ] || sed -i 's#3.2.7#3.2.8#' configure
+ [ $NOEXTRACT -eq 1 ] || sed -i 's#3.2.7#3.2.8#' configure.ac
+
+ unset LDFLAGS
+
+ [ -f Makefile ] || ./configure --prefix=/usr --without-kernel-modules
+ make
+ make install DESTDIR=$pkgdir
+ install -D -m 755 scripts/common/vmware-xdg-detect-de $pkgdir/usr/bin/vmware-xdg-detect-de
+ chmod 07755 $pkgdir/usr/bin/vmware-user-suid-wrapper
+
+ cd $pkgdir
+ patch -Np1 -i $srcdir/scripts-network.patch etc/vmware-tools/scripts/vmware/network
+ patch -Np1 -i $srcdir/scripts-network-FS19541.patch etc/vmware-tools/scripts/vmware/network
+
+ ln -fs /usr/sbin/mount.vmhgfs $pkgdir/sbin/mount.vmhgfs
+
+ install -D -m 755 $srcdir/open-vm-tools.rc.d $pkgdir/etc/rc.d/open-vm-tools
+ install -D -m 644 $srcdir/open-vm-tools.conf.d $pkgdir/etc/conf.d/open-vm-tools
+ install -D -m 644 $srcdir/tools.conf $pkgdir/etc/vmware-tools/tools.conf
+ install -D -m 644 $srcdir/xautostart.conf $pkgdir/etc/vmware-tools/xautostart.conf
+ install -D -m 644 $srcdir/vmware-guestd $pkgdir/etc/pam.d/vmware-guestd
+ rm -rf $pkgdir/usr/etc
+
+ cd $pkgdir && find -type f -exec sh -c "file {} | grep ELF >/dev/null && echo {} && chrpath -d {}" \;
+}
diff --git a/community/open-vm-tools/open-vm-tools-X11Bool.patch b/community/open-vm-tools/open-vm-tools-X11Bool.patch
new file mode 100644
index 000000000..f12581807
--- /dev/null
+++ b/community/open-vm-tools/open-vm-tools-X11Bool.patch
@@ -0,0 +1,15 @@
+diff -wbBur open-vm-tools-2010.08.24-292196.org/lib/include/vm_basic_types.h open-vm-tools-2010.08.24-292196/lib/include/vm_basic_types.h
+--- open-vm-tools-2010.08.24-292196.org/lib/include/vm_basic_types.h 2010-08-24 19:59:22.000000000 +0000
++++ open-vm-tools-2010.08.24-292196/lib/include/vm_basic_types.h 2010-08-30 09:38:48.000000000 +0000
+@@ -83,8 +83,11 @@
+
+ /* STRICT ANSI means the Xserver build and X defines Bool differently. */
+ #if !defined(__STRICT_ANSI__) || defined(__FreeBSD__) || defined(__MINGW32__)
++# ifndef _XTYPEDEF_BOOL
++# define _XTYPEDEF_BOOL
+ typedef char Bool;
+ #endif
++#endif
+
+ #ifndef FALSE
+ #define FALSE 0
diff --git a/community/open-vm-tools/open-vm-tools.conf.d b/community/open-vm-tools/open-vm-tools.conf.d
new file mode 100644
index 000000000..83f7864e8
--- /dev/null
+++ b/community/open-vm-tools/open-vm-tools.conf.d
@@ -0,0 +1,6 @@
+# Enable support for Drag'n'Drop
+VM_DRAG_AND_DROP="yes"
+
+# vmware-guestd settings
+GUESTD_BIN="/usr/sbin/vmware-guestd"
+PIDFILE="/var/run/vmware-guestd.pid"
diff --git a/community/open-vm-tools/open-vm-tools.install b/community/open-vm-tools/open-vm-tools.install
new file mode 100644
index 000000000..88d9b88e6
--- /dev/null
+++ b/community/open-vm-tools/open-vm-tools.install
@@ -0,0 +1,10 @@
+post_install() {
+ [ ! -d "/mnt/hgfs" ] && mkdir /mnt/hgfs
+ echo ">>>"
+ echo ">>> You can mount VMware Shared Folders via:"
+ echo ">>> mount -t vmhgfs .host:/ /mnt/hgfs"
+ echo ">>>"
+ echo ">>> or by adding this line to /etc/fstab:"
+ echo ">>> .host:/ /mnt/hgfs vmhgfs defaults 0 0"
+ echo ">>>"
+}
diff --git a/community/open-vm-tools/open-vm-tools.rc.d b/community/open-vm-tools/open-vm-tools.rc.d
new file mode 100644
index 000000000..0c9221489
--- /dev/null
+++ b/community/open-vm-tools/open-vm-tools.rc.d
@@ -0,0 +1,101 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/open-vm-tools ] && . /etc/conf.d/open-vm-tools
+
+PID=`pidof -o %PPID /usr/bin/vmtoolsd`
+case "$1" in
+ start)
+ stat_busy "Starting Open Virtual Machine Tools"
+
+ if [ "$VM_DRAG_AND_DROP" == "yes" ]; then
+ VMBLOCK=`grep -w vmblock /proc/modules`
+ [ -z "$VMBLOCK" ] && modprobe vmblock
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+
+ DND_TMPDIR="/tmp/VMwareDnD"
+ if [ ! -d "$DND_TMPDIR" ]; then
+ mkdir $DND_TMPDIR
+ chmod 1777 $DND_TMPDIR
+ fi
+
+ mount -t vmblock none /proc/fs/vmblock/mountPoint
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ fi
+
+
+ for m in vmhgfs vmsync; do
+ VMMOD=`grep -w $m /proc/modules`
+ [ -z "$VMMOD" ] && \
+ { modprobe $m
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi; }
+ done
+
+
+ [ -z "$PID" ] && /usr/bin/vmtoolsd --background $PIDFILE
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon open-vm-tools
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Open Virtual Machine Tools"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+# if [ $? -gt 0 ]; then
+# stat_fail
+# exit 1
+# fi
+
+ for m in vmhgfs vmsync vmci; do
+ VMMOD=`grep -w $m /proc/modules`
+ [ ! -z "$VMMOD" ] && rmmod $m
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 4
+ fi
+ done
+
+ if [ "$VM_DRAG_AND_DROP" == "yes" ]; then
+ MOUNTPOINT=`grep -w "none /proc/fs/vmblock/mountPoint vmblock" /proc/modules`
+ [ -z "$MOUNTPOINT" ] && umount /proc/fs/vmblock/mountPoint
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 5
+ fi
+
+ DND_TMPDIR="/tmp/VMwareDnD"
+ rm -r $DND_TMPDIR
+
+ VMBLOCK=`grep -w vmblock /proc/modules`
+ [ ! -z "$VMBLOCK" ] && rmmod vmblock
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 6
+ fi
+ fi
+
+ rm_daemon open-vm-tools
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/open-vm-tools/scripts-network-FS19541.patch b/community/open-vm-tools/scripts-network-FS19541.patch
new file mode 100644
index 000000000..1f65b9824
--- /dev/null
+++ b/community/open-vm-tools/scripts-network-FS19541.patch
@@ -0,0 +1,40 @@
+--- network 2010-04-28 12:30:51.000000000 +0200
++++ network.bak 2010-05-20 12:12:50.000000000 +0200
+@@ -76,7 +76,7 @@
+ else
+ echo `date` "[rescue_nic] activating $nic ..."
+
+- ifup $nic
++ ifconfig $nic up
+ exitCode=`expr $exitCode \| $?`
+ fi
+ done < $activeList
+@@ -103,7 +103,7 @@
+ TranquilizeNetworkManager() {
+ # `which' may be a bit noisy, so we'll shush it.
+ dbusSend=`which dbus-send 2>/dev/null`
+- if [ $? -eq 0 ]; then
++ if [ $? -eq 0 ] && [ `pidof dbus-daemon` ]; then
+ # NetworkManager 0.6
+ $dbusSend --system --dest=org.freedesktop.NetworkManager \
+ /org/freedesktop/NetworkManager \
+@@ -133,7 +133,7 @@
+ WakeNetworkManager() {
+ # `which' may be a bit noisy, so we'll shush it.
+ dbusSend=`which dbus-send 2>/dev/null`
+- if [ $? -eq 0 ]; then
++ if [ $? -eq 0 ] && [ `pidof dbus-daemon` ]; then
+ # NetworkManager 0.6
+ $dbusSend --system --dest=org.freedesktop.NetworkManager \
+ /org/freedesktop/NetworkManager \
+@@ -165,8 +165,8 @@
+
+ # XXX Are these really necessary? If so, we should have seen customer
+ # complaints by now.
+- which ifup >/dev/null 2>&1 || Panic "ifup not in search path."
+- which ifconfig >/dev/null 2>&1 || Panic "ifconfig not in search path."
++# which ifup >/dev/null 2>&1 || Panic "ifup not in search path."
++ which ifconfig >/dev/null 2>&1 || Panic "ifconfig not in search path."
+
+ case "$1" in
+ poweron-vm)
diff --git a/community/open-vm-tools/scripts-network.patch b/community/open-vm-tools/scripts-network.patch
new file mode 100644
index 000000000..13ea7f565
--- /dev/null
+++ b/community/open-vm-tools/scripts-network.patch
@@ -0,0 +1,63 @@
+--- network.org 2010-04-28 10:21:14.000000000 +0000
++++ network 2010-04-28 10:24:00.000000000 +0000
+@@ -34,51 +34,6 @@
+
+
+ #
+-# find_networking_script --
+-#
+-# Searches common Linux distro init/rc paths to find a singular network
+-# services script.
+-#
+-# Result:
+-# Returns a valid networking script path on success or "error" on failure.
+-#
+-# Side effects:
+-# None.
+-#
+-
+-find_networking_script() {
+- local script="error"
+- for dir in "/etc/init.d" "/sbin/init.d" "/etc" "/etc/rc.d" ; do
+- if [ -d "$dir/rc0.d" ] &&
+- [ -d "$dir/rc1.d" ] &&
+- [ -d "$dir/rc2.d" ] &&
+- [ -d "$dir/rc3.d" ] &&
+- [ -d "$dir/rc4.d" ] &&
+- [ -d "$dir/rc5.d" ] &&
+- [ -d "$dir/rc6.d" ]; then
+-
+- # Now find the appropriate networking script.
+- if [ -d "$dir/init.d" ]; then
+- if [ -x "$dir/init.d/network" ]; then
+- script="$dir/init.d/network"
+- elif [ -x "$dir/init.d/networking" ]; then
+- script="$dir/init.d/networking"
+- fi
+- else
+- if [ -x "$dir/network" ]; then
+- script="$dir/network"
+- elif [ -x "$dir/networking" ]; then
+- script="$dir/networking"
+- fi
+- fi
+- fi
+- done
+-
+- echo "$script"
+-}
+-
+-
+-#
+ # save_active_NIC_list --
+ #
+ # Records a list of every active NIC to /var/run/vmware-active-nics.
+@@ -205,7 +160,7 @@
+ exitCode=0
+ activeList=/var/run/vmware-active-nics
+
+- networkScript=`find_networking_script`
++ networkScript=/etc/rc.d/network
+ [ "$networkScript" != "error" ] || Panic "Cannot find system networking script."
+
+ # XXX Are these really necessary? If so, we should have seen customer
diff --git a/community/open-vm-tools/tools.conf b/community/open-vm-tools/tools.conf
new file mode 100644
index 000000000..0bb2681b1
--- /dev/null
+++ b/community/open-vm-tools/tools.conf
@@ -0,0 +1 @@
+bindir = "/usr/bin"
diff --git a/community/open-vm-tools/vmware-guestd b/community/open-vm-tools/vmware-guestd
new file mode 100644
index 000000000..ac80c0385
--- /dev/null
+++ b/community/open-vm-tools/vmware-guestd
@@ -0,0 +1,6 @@
+#%PAM-1.0
+
+auth sufficient /lib/security/pam_unix2.so shadow nullok
+auth required /lib/security/pam_unix_auth.so shadow nullok
+account sufficient /lib/security/pam_unix2.so
+account required /lib/security/pam_unix_acct.so
diff --git a/community/open-vm-tools/xautostart.conf b/community/open-vm-tools/xautostart.conf
new file mode 100644
index 000000000..829f379ce
--- /dev/null
+++ b/community/open-vm-tools/xautostart.conf
@@ -0,0 +1,6 @@
+gnome-panel
+ksmserver
+startkde
+kwrapper
+panel
+xfce4-panel
diff --git a/community/openarena/PKGBUILD b/community/openarena/PKGBUILD
new file mode 100644
index 000000000..92f486fd8
--- /dev/null
+++ b/community/openarena/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 23332 2010-08-10 01:00:21Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arkham <arkham at archlinux dot us>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=openarena
+pkgver=0.8.5
+_oldver=0.8.1
+pkgrel=2
+pkgdesc="A violent, sexy, multiplayer first person shooter based on the ioquake3 engine"
+arch=('i686' 'x86_64')
+url="http://openarena.ws/"
+license=('GPL')
+depends=('sdl' 'libvorbis' 'curl' 'openarena-data')
+makedepends=('openal' 'mesa')
+source=(http://download.tuxfamily.org/$pkgname/rel/081/oa081.zip
+ http://download.tuxfamily.org/$pkgname/rel/085/oa085p.zip
+ $url/svn/source/081/$pkgname-engine-$_oldver-1.tar.bz2
+ $pkgname.png
+ $pkgname-server.png
+ $pkgname.desktop
+ $pkgname-server.desktop)
+md5sums=('49006bcb02b4e8ea3d06749e8f4e4887'
+ 'b2a0437da751cd50dd2351ed9e0c4e9d'
+ '4ee696eacc4b0350f9dbb5588dcd74a2'
+ 'c69f824dc500d436fc631b78b6a62dc8'
+ '17e2f4fa060ed97ff6fe1eaff647bcfb'
+ '229c87648c10e48b523c25d24aba8372'
+ '00649517a4dd08cd9c6e99d6703f01f1')
+
+build() {
+ # uncomment to disable semi-nude models:
+ # rm -f $pkgname-$_oldver/baseoa/pak2-players-mature.pk3
+ # (resulting version won't work with most servers!!)
+
+ cd $srcdir/$pkgname-engine-$_oldver
+
+ make DEFAULT_BASEDIR=/usr/share/$pkgname \
+ BUILD_CLIENT_SMP=0 \
+ USE_LOCAL_HEADERS=0 \
+ GENERATE_DEPENDENCIES=0 \
+ OPTIMIZE=
+}
+
+package() {
+ cd $srcdir/$pkgname-engine-$_oldver
+
+ install -d $pkgdir/usr/{bin,share/{$pkgname,applications,pixmaps}}
+
+ make COPYDIR=$pkgdir/usr/share/$pkgname copyfiles
+
+ [ "$CARCH" = "x86_64" ] && {
+ mv -f $pkgdir/usr/share/$pkgname/$pkgname.$CARCH $pkgdir/usr/bin/$pkgname
+ mv -f $pkgdir/usr/share/$pkgname/oa_ded.$CARCH $pkgdir/usr/bin/$pkgname-server
+ } || {
+ mv -f $pkgdir/usr/share/$pkgname/$pkgname.i386 $pkgdir/usr/bin/$pkgname
+ mv -f $pkgdir/usr/share/$pkgname/oa_ded.i386 $pkgdir/usr/bin/$pkgname-server
+ }
+
+ find $pkgdir/usr/share -type f -exec chmod 644 {} +
+
+ install -m 644 $srcdir/$pkgname{,-server}.png $pkgdir/usr/share/pixmaps/
+ install -m 644 $srcdir/$pkgname{,-server}.desktop $pkgdir/usr/share/applications/
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community/openarena/openarena-server.desktop b/community/openarena/openarena-server.desktop
new file mode 100644
index 000000000..47bc786a2
--- /dev/null
+++ b/community/openarena/openarena-server.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=OpenArena Server
+Exec=openarena-server
+Icon=openarena-server
+Type=Application
+Terminal=true
+Comment=Run an OpenArena server
+Categories=Network;
diff --git a/community/openarena/openarena-server.png b/community/openarena/openarena-server.png
new file mode 100644
index 000000000..55c5177f5
--- /dev/null
+++ b/community/openarena/openarena-server.png
Binary files differ
diff --git a/community/openarena/openarena.desktop b/community/openarena/openarena.desktop
new file mode 100644
index 000000000..321461a32
--- /dev/null
+++ b/community/openarena/openarena.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=OpenArena
+Exec=openarena
+Icon=openarena
+Type=Application
+Comment=A Quake3-based FPS Game
+Categories=Game;ActionGame;
diff --git a/community/openarena/openarena.png b/community/openarena/openarena.png
new file mode 100644
index 000000000..0fa1f4ec3
--- /dev/null
+++ b/community/openarena/openarena.png
Binary files differ
diff --git a/community/openbsd-netcat/PKGBUILD b/community/openbsd-netcat/PKGBUILD
new file mode 100644
index 000000000..6c2899eb8
--- /dev/null
+++ b/community/openbsd-netcat/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
+
+pkgname="openbsd-netcat"
+pkgver=1.89
+pkgrel=4
+pkgdesc="TCP/IP swiss army knife. OpenBSD variant."
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/sid/netcat-openbsd"
+license=('BSD')
+depends=('glib2')
+makedepends=('gcc' 'make')
+source=("http://ftp.debian.org/debian/pool/main/n/netcat-openbsd/netcat-openbsd_${pkgver}.orig.tar.gz"
+ "http://ftp.debian.org/debian/pool/main/n/netcat-openbsd/netcat-openbsd_${pkgver}-${pkgrel}.diff.gz")
+md5sums=('7238ce15aae43069e96ba7faf03f153e'
+ '00c65aa22243b76998174c733cbb64cc')
+
+build() {
+ cd $srcdir/netcat-openbsd-${pkgver}.orig
+ patch -p1 < ../netcat-openbsd_${pkgver}-${pkgrel}.diff
+ for i in `cat debian/patches/series`
+ do
+ echo "** patch $i" 1>&2
+ cat "debian/patches/$i"
+ done | patch -p1
+ make CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\""
+ install -d $pkgdir/usr/bin/
+ install -d $pkgdir/usr/share/man/man1/
+ install nc $pkgdir/usr/bin/nc.openbsd
+ install nc.1 $pkgdir/usr/share/man/man1/nc.openbsd.1
+}
diff --git a/community/openlierox/PKGBUILD b/community/openlierox/PKGBUILD
new file mode 100644
index 000000000..c9fa2ff3d
--- /dev/null
+++ b/community/openlierox/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 29214 2010-10-11 15:58:28Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=openlierox
+pkgver=0.58_rc3
+pkgrel=2
+pkgdesc="A real-time excessive Worms-clone"
+arch=('i686' 'x86_64')
+url="http://www.openlierox.net/"
+license=('LGPL')
+depends=('curl' 'gcc-libs' 'sdl_image' 'sdl_mixer' 'gd' 'hawknl' 'libxml2' 'libzip')
+makedepends=('cmake')
+optdepends=('bash: for scripts support'
+ 'python: for scripts support')
+conflicts=('openlierox-beta' 'openlierox-svn')
+source=(http://downloads.sourceforge.net/$pkgname/OpenLieroX_$pkgver.src.tar.bz2)
+md5sums=('c4f7057d8f210e30bdef3cfdd75d613b')
+
+build() {
+ cd "$srcdir"/OpenLieroX
+
+ sed -i '1i #include <sys/stat.h>' src/breakpad/external/src/common/linux/file_id.cc
+ sed -i 's|/usr/share/games|/usr/share|g' include/FindFile.h
+
+ [[ -d build ]] && rm -r build
+ mkdir build
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSYSTEM_DATA_DIR=/usr/share \
+ -DHAWKNL_BUILTIN=OFF \
+ -DBREAKPAD=OFF
+ make
+}
+
+package() {
+ cd "$srcdir"/OpenLieroX
+
+ # Awesome, they are using CMake but they do not want it to also make the install.
+
+ # install binary
+ install -Dm755 bin/$pkgname "$pkgdir"/usr/bin/$pkgname
+
+ # install data
+ install -m755 -d "$pkgdir"/usr/share/OpenLieroX
+ cp -r share/gamedir/* "$pkgdir"/usr/share/OpenLieroX/
+ find "$pkgdir"/usr/share/OpenLieroX -type d -exec chmod 755 {} +
+ find "$pkgdir"/usr/share/OpenLieroX -type f -exec chmod 644 {} +
+
+ # install manual
+ install -Dm644 doc/$pkgname.6 "$pkgdir"/usr/share/man/man6/$pkgname.6
+
+ # install icon
+ install -Dm644 share/OpenLieroX.svg \
+ "$pkgdir"/usr/share/pixmaps/OpenLieroX.svg
+
+ # install .desktop file
+ install -Dm644 share/$pkgname-$pkgname.desktop \
+ "$pkgdir"/usr/share/applications/$pkgname.desktop
+}
diff --git a/community/openmotif/PKGBUILD b/community/openmotif/PKGBUILD
new file mode 100644
index 000000000..7f6be420e
--- /dev/null
+++ b/community/openmotif/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 16932 2010-05-13 22:21:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Enrico Morelli <morelli@cerm.unifi.it>
+
+_automakever=`pacman -Q automake | cut -f 2 -d \ | cut -f 1 -d -`
+
+pkgname=openmotif
+pkgver=2.3.3
+pkgrel=1
+pkgdesc="Open Motif"
+arch=('i686' 'x86_64')
+url="http://www.motifzone.org/"
+license=('GPL')
+depends=(libxext libxp libxft libxt)
+makedepends=(xbitmaps xproto printproto xextproto automake)
+conflicts=(lesstif)
+options=('!libtool')
+source=(http://www.motifzone.org/files/public_downloads/openmotif/2.3/$pkgver/openmotif-$pkgver.tar.gz)
+md5sums=('fd27cd3369d6c7d5ef79eccba524f7be')
+
+build() {
+ cd $startdir/src/openmotif-$pkgver
+
+ [ $NOEXTRACT -eq 1 ] || patch -p0 Makefile.in <<EOF
+--- Makefile.in.org 2007-06-11 09:32:01.000000000 +0400
++++ Makefile.in 2007-06-19 19:13:04.000000000 +0400
+@@ -249,8 +249,7 @@
+ include \\
+ tools \\
+ clients \\
+- doc \\
+- demos
++ doc
+
+ AUTOMAKE_OPTIONS = 1.4
+ all: all-recursive
+EOF
+
+ sed -i 's#if (!png_check_sig(sig, 8))#if (png_sig_cmp(sig, 0, 8))#' lib/Xm/Png.c
+
+ ln -s -f /usr/share/automake-${_automakever}/compile compile
+ ln -s -f /usr/share/libtool/config/config.guess config.guess
+ ln -s -f /usr/share/libtool/config/config.sub config.sub
+ ln -s -f /usr/share/automake-${_automakever}/depcomp depcomp
+ ln -s -f /usr/share/automake-${_automakever}/install-sh install-sh
+ ln -s -f /usr/share/automake-${_automakever}/missing missing
+ ln -s -f /usr/share/libtool/config/ltmain.sh ltmain.sh
+
+ [ $NOEXTRACT -eq 1 ] || autoreconf -i
+
+ [ $CARCH == "x86_64" ] && export CFLAGS="$CFLAGS -fPIC"
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --with-x --prefix=/usr
+ make -j1 || return 1
+
+ make DESTDIR=$startdir/pkg install || return 1
+ # cleanup
+ (cd $startdir/pkg/usr/share/man/man3/ && mv Shell.3 OpenMotif-Shell.3)
+}
diff --git a/community/openmovieeditor/PKGBUILD b/community/openmovieeditor/PKGBUILD
new file mode 100644
index 000000000..00bca41d7
--- /dev/null
+++ b/community/openmovieeditor/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 9280 2010-01-24 22:58:30Z foutrelis $
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+# Maintainer: Robert Emil Berge
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+pkgname=openmovieeditor
+pkgver=0.0.20090105
+pkgrel=6
+pkgdesc="A simple video editor"
+arch=('i686' 'x86_64')
+url="http://openmovieeditor.sourceforge.net/HomePage"
+license=('GPL')
+depends=('libquicktime' 'libsamplerate' 'fltk' 'jack-audio-connection-kit' 'portaudio' 'gmerlin-avdecoder')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ce4f76c0b3e90aabf9c2d5c8dd31e9b1')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ unset LDFLAGS
+
+ # Fix missing includes
+ sed -e 's|<sstream>|<sstream>\n#include <stdint.h>|' -i src/VideoViewGL.H
+ sed -e 's|<string>|<string>\n#include <stdint.h>|' -i src/WaveForm.H
+ sed -e 's|<stdint.h>|<stdint.h>\n#include <stdio.h>|' -i src/AddCommand.H
+ sed -e 's|<string>|<stdint.h>\n#include <stdio.h>|' -i src/MediaBrowser.H
+ sed -e 's|<iostream>|<iostream>\n#include <stdio.h>|' -i src/fl_font_browser.h
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/openntpd/PKGBUILD b/community/openntpd/PKGBUILD
new file mode 100644
index 000000000..3d9ba5ab7
--- /dev/null
+++ b/community/openntpd/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 31923 2010-11-07 21:40:10Z lcarlier $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+# Contributor: Giorgio Lando <patroclo7@gmail.com> (adjtimex patch)
+
+pkgname=openntpd
+pkgver=3.9p1
+pkgrel=13
+pkgdesc="Free, easy to use implementation of the Network Time Protocol."
+url="http://www.openntpd.org/"
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('openssl')
+backup=('etc/ntpd.conf' 'etc/conf.d/openntpd')
+install=openntpd.install
+source=(ftp://ftp.openbsd.org/pub/OpenBSD/OpenNTPD/$pkgname-$pkgver.tar.gz
+ 'openntpd' 'openntpd.conf' 'linux-adjtimex.patch')
+md5sums=('afc34175f38d08867c1403d9008600b3'
+ '2422b40f16acf8c92e9051e3e07fc96a'
+ 'ab38a035cbebe7a52888db6c573944a5'
+ '6e04eecf89ee794d6f1ae79f03742cf9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i ../linux-adjtimex.patch
+
+ # fixes FS#19509 - [openntpd] builds without linux-adjtimex.patch
+ autoreconf -fi
+ #autoconf
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-privsep-user=ntp \
+ --with-privsep-path=/var/run/openntpd/ \
+ --with-adjtimex
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ install -D -m755 $srcdir/openntpd $pkgdir/etc/rc.d/openntpd
+ install -D -m644 $srcdir/openntpd.conf $pkgdir/etc/conf.d/openntpd
+ install -D -m644 $srcdir/$pkgname-$pkgver/LICENCE $pkgdir/usr/share/licenses/$pkgname/LICENCE
+
+ # FS#16893
+ sed -i 's/\*/0.0.0.0/' $pkgdir/etc/ntpd.conf
+}
diff --git a/community/openntpd/linux-adjtimex.patch b/community/openntpd/linux-adjtimex.patch
new file mode 100644
index 000000000..e7b72daf9
--- /dev/null
+++ b/community/openntpd/linux-adjtimex.patch
@@ -0,0 +1,168 @@
+Only in openntpd-3.9p1.old: configure
+diff -ur --unidirectional-new-file openntpd-3.9p1.old/configure.ac openntpd-3.9p1/configure.ac
+--- openntpd-3.9p1.old/configure.ac 2006-05-14 07:29:23.000000000 +0200
++++ openntpd-3.9p1/configure.ac 2008-02-07 13:13:18.066366142 +0100
+@@ -583,6 +583,11 @@
+ [ builtin_arc4random=$withval ]
+ )
+
++AC_ARG_WITH(adjtimex,
++ [ --with-adjtimex Use adjtimex to adjust kernel skew],
++ [ AC_DEFINE(USE_ADJTIMEX, [], [Use adjust skew with adjtimex (experimental)]) ]
++ )
++
+ AC_ARG_WITH(mantype,
+ [ --with-mantype=man|cat|doc Set man page type],
+ [
+diff -ur --unidirectional-new-file openntpd-3.9p1.old/defines.h openntpd-3.9p1/defines.h
+--- openntpd-3.9p1.old/defines.h 2006-05-14 07:29:21.000000000 +0200
++++ openntpd-3.9p1/defines.h 2008-02-07 13:14:34.488711868 +0100
+@@ -20,6 +20,10 @@
+ # define setproctitle(x)
+ #endif
+
++#ifdef USE_ADJTIMEX
++# define adjtime(a,b) (_compat_adjtime((a),(b)))
++#endif
++
+ #if !defined(SA_LEN)
+ # if defined(HAVE_STRUCT_SOCKADDR_SA_LEN)
+ # define SA_LEN(x) ((x)->sa_len)
+Only in openntpd-3.9p1.old: ntpd.0
+Only in openntpd-3.9p1.old: ntpd.conf.0
+diff -ur --unidirectional-new-file openntpd-3.9p1.old/openbsd-compat/Makefile.in openntpd-3.9p1/openbsd-compat/Makefile.in
+--- openntpd-3.9p1.old/openbsd-compat/Makefile.in 2006-05-14 07:29:19.000000000 +0200
++++ openntpd-3.9p1/openbsd-compat/Makefile.in 2008-02-07 13:31:39.499728930 +0100
+@@ -9,7 +9,7 @@
+ COMPAT= atomicio.o bsd-arc4random.o bsd-misc.o bsd-poll.o \
+ bsd-snprintf.o bsd-getifaddrs.o bsd-setresuid.o \
+ bsd-setresgid.o fake-rfc2553.o
+-PORT= port-qnx.o
++PORT= port-linux.o port-qnx.o
+
+ VPATH=@srcdir@
+ CC=@CC@
+diff -ur --unidirectional-new-file openntpd-3.9p1.old/openbsd-compat/openbsd-compat.h openntpd-3.9p1/openbsd-compat/openbsd-compat.h
+--- openntpd-3.9p1.old/openbsd-compat/openbsd-compat.h 2006-05-14 07:29:19.000000000 +0200
++++ openntpd-3.9p1/openbsd-compat/openbsd-compat.h 2008-02-07 13:17:00.272366764 +0100
+@@ -46,6 +46,11 @@
+ __attribute__((__format__ (printf, 2, 3)));
+ #endif
+
++#ifdef USE_ADJTIMEX
++# include <sys/time.h>
++int _compat_adjtime(const struct timeval *, struct timeval *);
++#endif
++
+ #ifndef HAVE_INET_PTON
+ int inet_pton(int, const char *, void *);
+ #endif
+diff -ur --unidirectional-new-file openntpd-3.9p1.old/openbsd-compat/port-linux.c openntpd-3.9p1/openbsd-compat/port-linux.c
+--- openntpd-3.9p1.old/openbsd-compat/port-linux.c 1970-01-01 01:00:00.000000000 +0100
++++ openntpd-3.9p1/openbsd-compat/port-linux.c 2008-02-07 13:24:43.800366563 +0100
+@@ -0,0 +1,105 @@
++
++
++/*
++ * Copyright (c) 2004 Darren Tucker <dtucker at zip com au>
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#include "includes.h"
++
++#ifdef USE_ADJTIMEX
++#include <sys/timex.h>
++#include <errno.h>
++#ifdef adjtime
++# undef adjtime
++#endif
++
++#include "ntpd.h"
++
++/* scale factor used by adjtimex freq param. 1 ppm = 65536 */
++#define ADJTIMEX_FREQ_SCALE 65536
++
++/* maximum change to skew per adjustment, in PPM */
++#define MAX_SKEW_DELTA 5.0
++
++int
++_compat_adjtime(const struct timeval *delta, struct timeval *olddelta)
++{
++ static struct timeval tlast = {0,0};
++ static double tskew = 0;
++ static int synced = -1;
++ struct timeval tnow, tdelta;
++ double skew = 0, newskew, deltaskew, adjust, interval = 0;
++ struct timex tmx;
++ int result, saved_errno;
++
++ gettimeofday(&tnow, NULL);
++ adjust = (double)delta->tv_sec;
++ adjust += (double)delta->tv_usec / 1000000;
++
++ /* Even if the caller doesn't care about the olddelta, we do */
++ if (olddelta == NULL)
++ olddelta = &tdelta;
++
++ result = adjtime(delta, olddelta);
++ saved_errno = errno;
++
++ if (olddelta->tv_sec == 0 && olddelta->tv_usec == 0 &&
++ synced != INT_MAX)
++ synced++;
++ else
++ synced = 0;
++
++ /*
++ * do skew calculations if we have synced
++ */
++ if (synced == 0 ) {
++ tmx.modes = 0;
++ if (adjtimex(&tmx) == -1)
++ log_warn("adjtimex get failed");
++ else
++ tskew = (double)tmx.freq / ADJTIMEX_FREQ_SCALE;
++ } else if (synced >= 1) {
++ interval = (double)(tnow.tv_sec - tlast.tv_sec);
++ interval += (double)(tnow.tv_usec - tlast.tv_usec) / 1000000;
++
++ skew = (adjust * 1000000) / interval;
++ newskew = ((tskew * synced) + skew) / synced;
++ deltaskew = newskew - tskew;
++
++ if (deltaskew > MAX_SKEW_DELTA) {
++ log_info("skew change %0.3lf exceeds limit", deltaskew);
++ tskew += MAX_SKEW_DELTA;
++ } else if (deltaskew < -MAX_SKEW_DELTA) {
++ log_info("skew change %0.3lf exceeds limit", deltaskew);
++ tskew -= MAX_SKEW_DELTA;
++ } else {
++ tskew = newskew;
++ }
++
++ /* Adjust the kernel skew. */
++ tmx.freq = (long)(tskew * ADJTIMEX_FREQ_SCALE);
++ tmx.modes = ADJ_FREQUENCY;
++ if (adjtimex(&tmx) == -1)
++ log_warn("adjtimex set freq failed");
++ }
++
++ log_debug("interval %0.3lf skew %0.3lf total skew %0.3lf", interval,
++ skew, tskew);
++
++ tlast = tnow;
++ errno = saved_errno;
++ return result;
++}
++#endif
diff --git a/community/openntpd/openntpd b/community/openntpd/openntpd
new file mode 100755
index 000000000..0e630736c
--- /dev/null
+++ b/community/openntpd/openntpd
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+CONF=/etc/conf.d/openntpd
+RUNDIR=/var/run/openntpd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f $CONF ] && . $CONF
+
+PID=`pidof -o %PPID /usr/sbin/ntpd`
+case "$1" in
+ start)
+ stat_busy "Starting OpenNTPD"
+ [ -d $RUNDIR ] || mkdir $RUNDIR
+ [ -z "$PID" ] && /usr/sbin/ntpd $PARAMS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/ntpd`
+ echo $PID >/var/run/openntpd.pid
+ add_daemon openntpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenNTPD"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon openntpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/openntpd/openntpd.conf b/community/openntpd/openntpd.conf
new file mode 100644
index 000000000..a2af277f7
--- /dev/null
+++ b/community/openntpd/openntpd.conf
@@ -0,0 +1,4 @@
+# -s Set the time immediately at startup if the local clock is off by more than# 180 seconds.
+PARAMS="-s"
+
+
diff --git a/community/openntpd/openntpd.install b/community/openntpd/openntpd.install
new file mode 100644
index 000000000..837e4a1e3
--- /dev/null
+++ b/community/openntpd/openntpd.install
@@ -0,0 +1,25 @@
+post_install() {
+ if [ ! "`grep ^ntp /etc/group`" ]; then
+ echo "adding new group: ntp"
+ /usr/sbin/groupadd -g 87 ntp
+ fi
+
+ if [ ! "`grep ^ntp /etc/passwd`" ]; then
+ echo "adding new user: ntp"
+ /usr/sbin/useradd -g ntp -u 87 -d /var/empty -s /bin/false -c 'Network Time Protocol' ntp
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/community/openntpd/sync_fix_with_adjtime.patch b/community/openntpd/sync_fix_with_adjtime.patch
new file mode 100644
index 000000000..4b9956b6d
--- /dev/null
+++ b/community/openntpd/sync_fix_with_adjtime.patch
@@ -0,0 +1,24 @@
+Index: ntp.c
+===================================================================
+RCS file: /storage/1/mirror/openbsd/src/usr.sbin/ntpd/ntp.c,v
+retrieving revision 1.91
+diff -u -r1.91 ntp.c
+--- ntp.c 1 Jul 2006 18:52:46 -0000 1.91
++++ ntp.c 15 Jul 2006 07:50:05 -0000
+@@ -1,4 +1,4 @@
+-/* $OpenBSD: ntp.c,v 1.91 2006-07-01 18:52:46 otto Exp $ */
++/* $OpenBSD: ntp.c,v 1.91 2006/07/01 18:52:46 otto Exp $ */
+
+ /*
+ * Copyright (c) 2003, 2004 Henning Brauer <[EMAIL PROTECTED]>
+@@ -315,8 +315,10 @@
+ for (s = TAILQ_FIRST(&conf->ntp_sensors); s != NULL;
+ s = next_s) {
+ next_s = TAILQ_NEXT(s, entry);
+- if (s->next <= time(NULL))
++ if (s->next <= time(NULL)) {
+ sensor_query(s);
++ priv_adjtime();
++ }
+ }
+ }
diff --git a/community/openscenegraph/PKGBUILD b/community/openscenegraph/PKGBUILD
new file mode 100644
index 000000000..68cd7a829
--- /dev/null
+++ b/community/openscenegraph/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 38818 2011-02-01 11:50:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Hans Janssen <janserv@gmail.com>
+# Contributor: my64 <packages@obordes.com>
+# Contributor: Colin Pitrat <colin.pitrat@gmail.com>
+
+pkgname=openscenegraph
+pkgver=2.8.3
+pkgrel=5
+pkgdesc="An Open Source, high performance real-time graphics toolkit"
+arch=('i686' 'x86_64')
+license=('custom:OSGPL')
+url="http://www.openscenegraph.org"
+depends=('giflib' 'jasper' 'librsvg' 'xine-lib' 'curl' 'pth')
+makedepends=('cmake' 'libvncserver')
+optdepends=('libvncserver' 'gdal' 'openexr' 'poppler-glib')
+conflicts=('openthreads')
+provides=('openthreads')
+source=(http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-$pkgver/source/OpenSceneGraph-$pkgver.zip
+ build-fix.diff)
+md5sums=('dc43b9161555c4eab7f5a678dd4e01ab'
+ '0fbcd32f129f94ac4775de326775b3cf')
+
+build() {
+ cd "$srcdir/OpenSceneGraph-$pkgver"
+ [ $NOEXTRACT -eq 1 ] || cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ patch -p1 <$srcdir/build-fix.diff || true
+ make
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ [ -d "$pkgdir/usr/lib64" ] && mv "$pkgdir/usr/lib64" "$pkgdir/usr/lib" || true
+}
diff --git a/community/openscenegraph/build-fix.diff b/community/openscenegraph/build-fix.diff
new file mode 100644
index 000000000..7e9fb0baa
--- /dev/null
+++ b/community/openscenegraph/build-fix.diff
@@ -0,0 +1,137 @@
+diff -wbBur OpenSceneGraph-2.8.3/include/osg/AudioStream OpenSceneGraph-2.8.3.my/include/osg/AudioStream
+--- OpenSceneGraph-2.8.3/include/osg/AudioStream 2010-03-19 09:14:12.000000000 +0000
++++ OpenSceneGraph-2.8.3.my/include/osg/AudioStream 2011-02-01 10:50:20.000000000 +0000
+@@ -68,7 +68,7 @@
+ virtual int audioFrequency() const = 0;
+ virtual int audioNbChannels() const = 0;
+
+- enum SampleFormat
++ enum XSampleFormat
+ {
+ SAMPLE_FORMAT_U8,
+ SAMPLE_FORMAT_S16,
+@@ -76,8 +76,7 @@
+ SAMPLE_FORMAT_S32,
+ SAMPLE_FORMAT_F32
+ };
+-
+- virtual SampleFormat audioSampleFormat() const = 0;
++ virtual XSampleFormat audioSampleFormat() const = 0;
+ };
+
+ } // namespace
+diff -wbBur OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegAudioStream.cpp OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegAudioStream.cpp
+--- OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegAudioStream.cpp 2010-03-19 08:48:34.000000000 +0000
++++ OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegAudioStream.cpp 2011-02-01 10:52:42.000000000 +0000
+@@ -1,3 +1,10 @@
++#include <stdint.h>
++
++# if __WORDSIZE == 64
++# define UINT64_C(c) c ## UL
++# else
++# define UINT64_C(c) c ## ULL
++# endif
+
+ #include "FFmpegAudioStream.hpp"
+
+@@ -66,7 +71,7 @@
+
+
+
+-osg::AudioStream::SampleFormat FFmpegAudioStream::audioSampleFormat() const
++osg::AudioStream::XSampleFormat FFmpegAudioStream::audioSampleFormat() const
+ {
+ return m_decoder->audio_decoder().sampleFormat();
+ }
+diff -wbBur OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegAudioStream.hpp OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegAudioStream.hpp
+--- OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegAudioStream.hpp 2010-03-19 08:48:36.000000000 +0000
++++ OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegAudioStream.hpp 2011-02-01 10:52:33.000000000 +0000
+@@ -23,7 +23,7 @@
+
+ int audioFrequency() const;
+ int audioNbChannels() const;
+- osg::AudioStream::SampleFormat audioSampleFormat() const;
++ osg::AudioStream::XSampleFormat audioSampleFormat() const;
+
+ double duration() const;
+
+diff -wbBur OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
+--- OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp 2010-03-19 09:14:34.000000000 +0000
++++ OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp 2011-02-01 10:52:12.000000000 +0000
+@@ -80,7 +79,7 @@
+
+ m_frequency = m_context->sample_rate;
+ m_nb_channels = m_context->channels;
+- m_sample_format = osg::AudioStream::SampleFormat(m_context->sample_fmt);
++ m_sample_format = osg::AudioStream::XSampleFormat(m_context->sample_fmt);
+
+ // Check stream sanity
+ if (m_context->codec_id == CODEC_ID_NONE)
+diff -wbBur OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp
+--- OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp 2010-03-19 09:14:18.000000000 +0000
++++ OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.hpp 2011-02-01 10:51:34.000000000 +0000
+@@ -13,8 +13,7 @@
+
+ #include "BoundedMessageQueue.hpp"
+
+-
+-
++#include <libavcore/samplefmt.h>
+
+ namespace osgFFmpeg {
+
+@@ -45,7 +42,7 @@
+ bool validContext() const;
+ int frequency() const;
+ int nbChannels() const;
+- osg::AudioStream::SampleFormat sampleFormat() const;
++ osg::AudioStream::XSampleFormat sampleFormat() const;
+
+ private:
+
+@@ -71,7 +68,7 @@
+
+ int m_frequency;
+ int m_nb_channels;
+- osg::AudioStream::SampleFormat m_sample_format;
++ osg::AudioStream::XSampleFormat m_sample_format;
+
+ SinkPtr m_audio_sink;
+
+@@ -104,7 +101,7 @@
+ }
+
+
+-inline osg::AudioStream::SampleFormat FFmpegDecoderAudio::sampleFormat() const
++inline osg::AudioStream::XSampleFormat FFmpegDecoderAudio::sampleFormat() const
+ {
+ return m_sample_format;
+ }
+diff -wbBur OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
+--- OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp 2010-03-19 09:14:18.000000000 +0000
++++ OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp 2011-01-31 18:04:48.000000000 +0000
+@@ -1,3 +1,10 @@
++#include <stdint.h>
++
++# if __WORDSIZE == 64
++# define UINT64_C(c) c ## UL
++# else
++# define UINT64_C(c) c ## ULL
++# endif
+
+ #include "FFmpegImageStream.hpp"
+ #include "FFmpegAudioStream.hpp"
+diff -wbBur OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp
+--- OpenSceneGraph-2.8.3/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp 2010-03-19 09:04:40.000000000 +0000
++++ OpenSceneGraph-2.8.3.my/src/osgPlugins/ffmpeg/ReaderWriterFFmpeg.cpp 2011-01-31 17:52:59.000000000 +0000
+@@ -1,3 +1,10 @@
++#include <stdint.h>
++
++# if __WORDSIZE == 64
++# define UINT64_C(c) c ## UL
++# else
++# define UINT64_C(c) c ## ULL
++# endif
+ /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
+ *
+ * This library is open source and may be redistributed and/or modified under
diff --git a/community/opensips/PKGBUILD b/community/opensips/PKGBUILD
new file mode 100644
index 000000000..e57168aba
--- /dev/null
+++ b/community/opensips/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 43142 2011-03-24 09:42:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=opensips
+pkgver=1.6.4
+pkgrel=1
+pkgdesc="An Open Source SIP Server able to act as a SIP proxy, registrar, location server, redirect server ..."
+url="http://www.opensips.org"
+depends=('gcc-libs' 'openssl' 'db' 'attr' 'kernel-headers' 'libxml2')
+makedepends=('postgresql-libs>=8.4.1' 'unixodbc' 'libldap>=2.4.18' 'libmysqlclient' 'lynx')
+optdepends=('postgresql-libs'
+ 'unixodbc'
+ 'libldap'
+ 'libmysqlclient'
+ 'libsasl'
+ 'python2'
+ 'pcre')
+backup=("etc/opensips/opensips.cfg"
+ "etc/opensips/dictionary.radius"
+ "etc/opensips/opensipsctlrc")
+arch=('i686' 'x86_64')
+license=('GPL')
+install=opensips.install
+options=('!emptydirs' 'zipman' '!makeflags' 'docs')
+source=(#http://switch.dl.sourceforge.net/sourceforge/opensips/opensips-$pkgver-tls_src.tar.gz
+ http://opensips.org/pub/opensips/$pkgver/src/opensips-$pkgver-2-tls_src.tar.gz
+ opensips.init)
+md5sums=('e9869d9a726d70f83de4a1e77cd24d40'
+ '685fbe00826df1285b410d4610dcbb0c')
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver-2-tls/
+
+ # 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
+
+ make \
+ include_modules="ldap db_mysql db_postgres db_unixodbc presence presence_xml h350" \
+ TLS=1 DESTDIR=$pkgdir/usr LIBDIR=lib install
+
+ # Conforms to the arch packaging standards (http://wiki.archlinux.org/index.php/Arch_Packaging_Standards)
+ mkdir -p $pkgdir/etc/
+ mv $pkgdir/usr/etc/opensips/ $pkgdir/etc/
+ sed -i 's#mpath=".*lib/opensips/modules/"#mpath="/usr/lib/opensips/modules/"#' $pkgdir/etc/opensips/opensips.cfg
+
+ # Install starting script
+ mkdir -p $pkgdir/etc/rc.d/
+ cp ../opensips.init $pkgdir/etc/rc.d/opensips
+ chmod 755 $pkgdir/etc/rc.d/opensips
+
+ # fix bad paths
+ cd $pkgdir/usr/share
+ find -type f -exec sed -i "s#$pkgdir##" {} \;
+
+ cd $pkgdir/usr/lib/opensips/opensipsctl
+ find -type f -exec sed -i "s#$pkgdir##" {} \;
+
+ cd $pkgdir/usr/sbin
+ sed -i "s#$pkgdir##" opensipsctl opensipsdbctl osipsconsole
+
+ cd $pkgdir/etc
+ find -type f -exec sed -i "s#$pkgdir##" {} \;
+}
diff --git a/community/opensips/opensips.init b/community/opensips/opensips.init
new file mode 100644
index 000000000..1c883c4c2
--- /dev/null
+++ b/community/opensips/opensips.init
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+BINNAME=opensips
+OSRDIR=/usr/sbin
+OPENSIPS=$OSRDIR/$BINNAME
+
+TMPDIR=/var/tmp
+CORE=$TMPDIR/core
+
+ETC=/etc/opensips/opensips.cfg
+PIDFILE=/var/run/opensips.pid
+
+case "$1" in
+ start)
+ stat_busy "Starting OpenSIPS server"
+ cd $TMPDIR
+ $OPENSIPS -f $ETC -w $TMPDIR -P $PIDFILE 2>&1 > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon opensips
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenSIPS server"
+ if [ -r $PIDFILE ]
+ then
+ cat $PIDFILE | xargs kill
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon opensips
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/opensips/opensips.install b/community/opensips/opensips.install
new file mode 100644
index 000000000..9e8f2a47b
--- /dev/null
+++ b/community/opensips/opensips.install
@@ -0,0 +1,5 @@
+post_install()
+{
+ echo "To use MySQL, you should install mysql package and run '/usr/sbin/openser_mysql.sh create'"
+ /bin/true
+}
diff --git a/community/openssh-askpass/PKGBUILD b/community/openssh-askpass/PKGBUILD
new file mode 100644
index 000000000..8816330f7
--- /dev/null
+++ b/community/openssh-askpass/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: schuay <jakob.gruber@gmail.com>
+# Previous Maintainer: TDY <tdy@gmx.com>
+# Contributor: Massimiliano Torromeo <Massimiliano.Torromeo AT gmail DOT com>
+
+pkgname=openssh-askpass
+pkgver=1.3.1
+pkgrel=2
+pkgdesc='A plasma-like passphrase dialog for ssh'
+arch=('i686' 'x86_64')
+url='http://www.phenix.bnl.gov/WWW/publish/hpereira/software/index.php?page=package&package_list=software_list_qt4&package=openssh-askpass&full=1'
+license=('GPL')
+depends=('openssh' 'qt')
+provides=('x11-ssh-askpass')
+conflicts=('x11-ssh-askpass')
+source=("http://www.phenix.bnl.gov/WWW/publish/hpereira/software/tgz/$pkgname-$pkgver.tar.gz"
+ "$pkgname.sh")
+md5sums=('39178e7ef71a1846c0a464cef08ba38e'
+ '961738244318f3723ba99cdcaac91a21')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./autogen.sh --prefix=/usr --with-qt-dir=/usr --bindir=/usr/lib/openssh
+ make
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm755 ../$pkgname.sh "$pkgdir/etc/profile.d/$pkgname.sh"
+}
diff --git a/community/openssh-askpass/openssh-askpass.sh b/community/openssh-askpass/openssh-askpass.sh
new file mode 100644
index 000000000..552906c7e
--- /dev/null
+++ b/community/openssh-askpass/openssh-askpass.sh
@@ -0,0 +1,3 @@
+if [ -f /usr/lib/openssh/qt4-ssh-askpass ]; then
+ export SSH_ASKPASS=/usr/lib/openssh/qt4-ssh-askpass
+fi
diff --git a/community/openthreads/PKGBUILD b/community/openthreads/PKGBUILD
new file mode 100644
index 000000000..e65ef6aab
--- /dev/null
+++ b/community/openthreads/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 24579 2010-08-26 13:35:34Z lcarlier $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=openthreads
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="A minimal & complete Object-Oriented thread interface for C++ programmers"
+arch=('i686' 'x86_64')
+url="http://openthreads.sourceforge.net"
+license=("LGPL")
+depends=('gcc-libs')
+makedepends=('cmake')
+source=(http://www.openscenegraph.org/downloads/developer_releases/OpenThreads-$pkgver.zip)
+md5sums=('ab4899c9d11e3917bd5f1401d6d0af11')
+
+build() {
+ cd "$srcdir/OpenThreads-$pkgver"
+
+ sed -i 's#-lpthreads#-lpthread#' CMakeModules/FindThreads.cmake
+ sed -i 's#SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}")#SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}")#' src/OpenThreads/pthreads/CMakeLists.txt
+
+ cmake . -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ make
+}
+
+package() {
+ cd "$srcdir/OpenThreads-$pkgver"
+
+ sed -i 's#lib64#lib#' src/OpenThreads/pthreads/cmake_install.cmake
+ make DESTDIR="$pkgdir" install
+
+ install -D packaging/pkg_config/openthreads.pc ${pkgdir}/usr/lib/pkgconfig/openthreads.pc
+}
diff --git a/community/openttd/PKGBUILD b/community/openttd/PKGBUILD
new file mode 100644
index 000000000..8b6dcff05
--- /dev/null
+++ b/community/openttd/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 34331 2010-12-06 11:18:09Z lcarlier $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=openttd
+pkgver=1.0.5
+pkgrel=3
+pkgdesc='An engine for running Transport Tycoon Deluxe.'
+arch=('i686' 'x86_64')
+url='http://www.openttd.org'
+license=('GPL')
+depends=('libpng' 'sdl' 'icu' 'fontconfig' 'lzo2' 'hicolor-icon-theme' 'desktop-file-utils')
+install=openttd.install
+optdepends=('openttd-opengfx: free graphics'
+ 'openttd-opensfx: free soundset')
+source=("http://binaries.openttd.org/releases/${pkgver}/${pkgname}-${pkgver}-source.tar.bz2")
+md5sums=('fc79f788e2be140948b972c32b0f1eec')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix-dir=/usr \
+ --binary-name=${pkgname} \
+ --binary-dir=bin \
+ --data-dir=share/${pkgname} \
+ --install-dir=${pkgdir} \
+ --doc-dir=share/doc/${pkgname} \
+ --menu-name="OpenTTD" \
+ --personal-dir=.${pkgname}
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make install
+}
diff --git a/community/openttd/openttd.install b/community/openttd/openttd.install
new file mode 100644
index 000000000..85b22a1c5
--- /dev/null
+++ b/community/openttd/openttd.install
@@ -0,0 +1,17 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor > /dev/null 2>&1
+ update-desktop-database > /dev/null 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ update-desktop-database > /dev/null 2>&1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor > /dev/null 2>&1
+ update-desktop-database > /dev/null 2>&1
+}
diff --git a/community/optipng/PKGBUILD b/community/optipng/PKGBUILD
new file mode 100644
index 000000000..93c7a5653
--- /dev/null
+++ b/community/optipng/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 39226 2011-02-07 17:56:51Z shusmann $
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=optipng
+pkgver=0.6.5
+pkgrel=1
+pkgdesc='A PNG optimizer that recompresses image files to a smaller size, without losing any information'
+arch=('i686' 'x86_64')
+url='http://optipng.sourceforge.net/'
+license=('ZLIB')
+depends=('glibc')
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('9df5fa7bb45ae096ed6c6e0d8dc43dc7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir/usr" mandir="$pkgdir/usr/share/man" install
+ install -D -m644 LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/orange/PKGBUILD b/community/orange/PKGBUILD
new file mode 100644
index 000000000..c45ed2703
--- /dev/null
+++ b/community/orange/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 21425 2010-07-16 12:03:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=orange
+pkgver=0.4
+pkgrel=2
+pkgdesc="a helper tool for synce"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=("GPL")
+depends=(dynamite synce-libsynce file unshield)
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/synce/liborange-$pkgver.tar.gz)
+md5sums=('40e9ac3de389c74a60007f7493e072a5')
+
+build() {
+ cd $srcdir/liborange-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/osdbattery/PKGBUILD b/community/osdbattery/PKGBUILD
new file mode 100644
index 000000000..62eced75b
--- /dev/null
+++ b/community/osdbattery/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 7260 2010-01-03 16:12:31Z ibiru $
+# Contributor: dibblethewrecker <dibblethewrecker@jiwe.org>
+pkgname=osdbattery
+pkgver=1.4
+pkgrel=3
+pkgdesc="Displays battery information in the OSD style"
+arch=('i686' 'x86_64')
+url="http://osdbattery.sourceforge.net"
+license=("GPL2")
+depends=('xosd')
+install=osdbattery.install
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname\_$pkgver.tar.gz showbatt)
+md5sums=('43f9cc0428b6cb25baf1e6e2286e88b1' 'a786cd645135a369c8ed55b837174c92')
+
+build() {
+ cd $startdir/src/$pkgname\_$pkgver
+ make || return 1
+ install -D -m755 $startdir/src/$pkgname\_$pkgver/$pkgname $startdir/pkg/usr/bin/$pkgname
+ install -D -m755 $startdir/src/showbatt $startdir/pkg/usr/bin/showbatt
+ install -D -m644 $startdir/src/$pkgname\_$pkgver/$pkgname.cfg $startdir/pkg/etc/$pkgname/$pkgname.cfg
+}
+# vim:syntax=sh
diff --git a/community/osdbattery/osdbattery.install b/community/osdbattery/osdbattery.install
new file mode 100644
index 000000000..7c1294e9c
--- /dev/null
+++ b/community/osdbattery/osdbattery.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo " : Remember to copy /etc/osdbattery/osdbattery.cfg to a ".osdbattery" directory in your home dir"
+ echo " : mkdir ~/.osdbattery"
+ echo " : cp /etc/osdbattery/osdbattery.cfg ~/.osdbattery"
+ echo
+ echo " : The /usr/bin/showbatt script can be bound to a key combo to"
+ echo " : easily show and hide the monitor"
+}
+
diff --git a/community/osdbattery/showbatt b/community/osdbattery/showbatt
new file mode 100644
index 000000000..440de592c
--- /dev/null
+++ b/community/osdbattery/showbatt
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+# osdbattery start/stop script - best bound to a keyboard combo
+
+PID=`pidof -o %PPID /usr/bin/osdbattery`
+if [ -z "$PID" ] ; then
+ /usr/bin/osdbattery &
+ echo $PID > /var/run/osdbattery.pid
+elif [ ! -z "$PID" ] ; then
+ kill $PID &> /dev/null
+ rm /var/run/osdbattery.pid
+fi
diff --git a/community/osec/PKGBUILD b/community/osec/PKGBUILD
new file mode 100644
index 000000000..0f0a7a96d
--- /dev/null
+++ b/community/osec/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 35425 2010-12-20 11:43:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=osec
+pkgver=1.2.3
+pkgrel=1
+pkgdesc="lightweight integrity checking system"
+arch=(i686 x86_64)
+url="http://o-security.sourceforge.net/"
+license=("GPL")
+makedepends=(help2man tinycdb)
+depends=(cdbxx libcap openssl perl)
+install=osec.install
+backup=(etc/osec/dirs.conf
+ etc/osec/pipe.conf)
+source=(https://downloads.sourceforge.net/project/o-security/o-security/$pkgver/osec-$pkgver.tar.gz)
+md5sums=('b7f3612e58c7b0ff379a8ee6b79c725c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc/osec
+ make
+ make DESTDIR=$pkgdir install
+ mv $pkgdir/usr/share/pipe.conf $pkgdir/etc/osec/pipe.conf
+ mkdir -p $pkgdir/usr/share/osec
+ mv $pkgdir/usr/share/osec.cron $pkgdir/usr/share/osec/
+ install -d -m 0755 $pkgdir/var/lib/osec
+}
diff --git a/community/osec/osec.install b/community/osec/osec.install
new file mode 100644
index 000000000..6d16f9444
--- /dev/null
+++ b/community/osec/osec.install
@@ -0,0 +1,16 @@
+post_install() {
+ groupadd osecgroup
+ useradd -G osecgroup -d /var/lib/osec osec
+ chown -R osec.osecgroup /var/lib/osec
+ echo "-- Use osec -D /var/lib/osec -u osec -g osecgroup -f /etc/osec/dirs.conf | osec_reporter"
+}
+
+post_upgrade() {
+ chown -R osec.osecgroup /var/lib/osec
+ echo "-- Use osec -D /var/lib/osec -u osec -g osecgroup -f /etc/osec/dirs.conf | osec_reporter"
+}
+
+post_remove() {
+ userdel osec
+ groupdel osecgroup
+}
diff --git a/community/osiris/ChangeLog b/community/osiris/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/osiris/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/osiris/PKGBUILD b/community/osiris/PKGBUILD
new file mode 100644
index 000000000..7ce3b4ea5
--- /dev/null
+++ b/community/osiris/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 14260 2010-04-02 09:55:31Z spupykin $
+# Contributor: jlvsimoes
+
+pkgname=osiris
+pkgver=4.2.3
+pkgrel=3
+pkgdesc="A file integrity management system"
+arch=('i686' 'x86_64')
+url="http://osiris.shmoo.com/"
+license=('custom')
+depends=('openssl' 'readline')
+install=$pkgname.install
+source=(http://osiris.shmoo.com/data/osiris-$pkgver.tar.gz \
+ osirismd.init \
+ osirisd.init)
+md5sums=('1951c7dc0fe729af9ffaf58910340d12'
+ '44281b8fc30ab3d452c6f35d3539d7ff'
+ 'b859445803e4df59a4f82d7f411e1297')
+
+build()
+{
+ cd $startdir/src/$pkgname-$pkgver
+ mkdir -p $startdir/pkg/usr/share/licenses/$pkgname/
+ install -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/license.txt
+ mkdir -p $startdir/pkg/etc/rc.d
+
+ ./configure --prefix=/usr --enable-fancy-cli --with-md-root-dir=/usr/share/$pkgname
+ make all || return 1
+
+ # Arch-ify install locations
+ sed -i "s|^INSTALL_OSIRISM=0|INSTALL_OSIRISM=1|" src/install/install.sh
+ sed -i "s|^INSTALL_OSIRISD=0|INSTALL_OSIRISD=1|" src/install/install.sh
+ sed -i "s|^ROOT_GROUP=wheel|ROOT_GROUP=root|" src/install/install.sh
+
+ make DESTDIR=$startdir/pkg install || return 1
+
+ install -D -m755 $startdir/src/osirismd.init $startdir/pkg/etc/rc.d/osirismd && \
+ install -D -m755 $startdir/src/osirisd.init $startdir/pkg/etc/rc.d/osirisd && \
+ rm -rf $startdir/pkg/usr/osiris
+}
diff --git a/community/osiris/osiris.install b/community/osiris/osiris.install
new file mode 100644
index 000000000..5b139f45f
--- /dev/null
+++ b/community/osiris/osiris.install
@@ -0,0 +1,23 @@
+post_install() {
+ if [ ! `/bin/grep osiris /etc/group` ]; then
+ /usr/sbin/groupadd -g 18 osiris &>/dev/null;
+ fi
+
+ /usr/bin/id osiris &>/dev/null || \
+ /usr/sbin/useradd -u 18 -g osiris -d /var/lib/osiris -s /bin/false osiris
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ /usr/sbin/userdel osiris &> /dev/null
+ /usr/sbin/groupdel osiris &> /dev/null
+}
+
+post_remove() {
+ /bin/true
+}
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/community/osiris/osirisd.init b/community/osiris/osirisd.init
new file mode 100755
index 000000000..d38255621
--- /dev/null
+++ b/community/osiris/osirisd.init
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+LOCKFILE=/var/run/osirisd.lock
+
+case "$1" in
+ start)
+ stat_busy "Starting Osiris Scanning Daemon"
+ [ ! -f $LOCKFILE ] && [ ! $UID = 0 ] && /usr/sbin/osirisd && touch $LOCKFILE
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Osiris Scanning Daemon"
+ [ -f $LOCKFILE ] && rm $LOCKFILE && killall osirisd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/osiris/osirismd.init b/community/osiris/osirismd.init
new file mode 100755
index 000000000..3b9e38598
--- /dev/null
+++ b/community/osiris/osirismd.init
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+LOCKFILE=/var/run/osirismd.lock
+
+case "$1" in
+ start)
+ stat_busy "Starting Osiris Management Daemon"
+ [ ! -f $LOCKFILE ] && [ ! $UID = 0 ] && touch $LOCKFILE && /usr/sbin/osirismd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Osiris Management Daemon"
+ [ -f $LOCKFILE ] && rm $LOCKFILE && killall osirismd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/osmo/ChangeLog b/community/osmo/ChangeLog
new file mode 100644
index 000000000..d6c25b63f
--- /dev/null
+++ b/community/osmo/ChangeLog
@@ -0,0 +1,12 @@
+2010-04-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#18941 solved
+
+2010-04-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.2.10
+
+2009-03-26 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#13879 solved
+
+2009-03-17 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Updated to major version 0.2.6
+
diff --git a/community/osmo/PKGBUILD b/community/osmo/PKGBUILD
new file mode 100644
index 000000000..85cd6cf49
--- /dev/null
+++ b/community/osmo/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 41472 2011-03-06 22:23:29Z heftig $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Benzo <mb_benzo@yahoo.es>
+
+pkgname=osmo
+pkgver=0.2.10
+pkgrel=5
+pkgdesc="A handy personal organizer"
+arch=('i686' 'x86_64')
+url="http://clayo.org/osmo/"
+license=('GPL')
+depends=('gtk2>=2.12' 'gtkspell' 'hicolor-icon-theme' 'libical' 'libnotify' 'libgtkhtml' 'libgringotts>=1.2.1' 'libxml2')
+makedepends=('pkgconfig' 'libtar')
+optdepends=('sox: to play sounds')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/osmo-pim/$pkgname-$pkgver.tar.gz
+ osmo-0.2.10-libnotify-0.7.patch)
+md5sums=('a774db748228efee96186158d553ade9'
+ '0b146a548f2d3208dc88e6501a8f3448')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -Np0 -i "$srcdir/osmo-0.2.10-libnotify-0.7.patch"
+
+ #libical 0.4.4 workaround
+ LIBICAL_CFLAGS='-I/usr/include/libical' ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/osmo/osmo-0.2.10-libnotify-0.7.patch b/community/osmo/osmo-0.2.10-libnotify-0.7.patch
new file mode 100644
index 000000000..d626ba2f1
--- /dev/null
+++ b/community/osmo/osmo-0.2.10-libnotify-0.7.patch
@@ -0,0 +1,48 @@
+http://pkgs.fedoraproject.org/gitweb/?p=osmo.git;a=blob_plain;f=osmo-0.2.10-libnotify-0.7.0.patch;hb=HEAD
+
+--- src/check_events.c
++++ src/check_events.c
+@@ -454,9 +454,9 @@
+ a->date = 0;
+
+ if (textdesc != NULL)
+- a->notify = notify_notification_new (item->summary, textdesc, GTK_STOCK_DIALOG_WARNING, NULL);
++ a->notify = notify_notification_new (item->summary, textdesc, GTK_STOCK_DIALOG_WARNING);
+ else
+- a->notify = notify_notification_new (item->summary, text, GTK_STOCK_DIALOG_WARNING, NULL);
++ a->notify = notify_notification_new (item->summary, text, GTK_STOCK_DIALOG_WARNING);
+
+ g_free (textdesc);
+ g_free (text);
+@@ -483,9 +483,6 @@
+ #endif /* HAVE_LIBNOTIFY */
+
+ if (gtk_status_icon_get_visible (appGUI->osmo_trayicon)) {
+-#ifdef HAVE_LIBNOTIFY
+- notify_notification_attach_to_status_icon (a->notify, appGUI->osmo_trayicon);
+-#endif /* HAVE_LIBNOTIFY */
+ gtk_status_icon_set_from_stock (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_TASK);
+
+ if (config.blink_on_events) {
+@@ -532,9 +529,9 @@
+ a->time = -1;
+ a->date = 0;
+ if (textdesc != NULL)
+- a->notify = notify_notification_new (_("Alarm warning!"), textdesc, GTK_STOCK_DIALOG_INFO, NULL);
++ a->notify = notify_notification_new (_("Alarm warning!"), textdesc, GTK_STOCK_DIALOG_INFO);
+ else
+- a->notify = notify_notification_new (_("Alarm warning!"), text, GTK_STOCK_DIALOG_INFO, NULL);
++ a->notify = notify_notification_new (_("Alarm warning!"), text, GTK_STOCK_DIALOG_INFO);
+
+ notify_notification_set_timeout (a->notify, NOTIFY_EXPIRES_NEVER);
+ notify_notification_set_urgency (a->notify, NOTIFY_URGENCY_NORMAL);
+@@ -545,9 +542,6 @@
+ #endif /* HAVE_LIBNOTIFY */
+
+ if (gtk_status_icon_get_visible (appGUI->osmo_trayicon)) {
+-#ifdef HAVE_LIBNOTIFY
+- notify_notification_attach_to_status_icon (a->notify, appGUI->osmo_trayicon);
+-#endif /* HAVE_LIBNOTIFY */
+ gtk_status_icon_set_from_stock (appGUI->osmo_trayicon, OSMO_STOCK_SYSTRAY_TASK);
+
+ if (config.blink_on_events) {
diff --git a/community/osmo/osmo.install b/community/osmo/osmo.install
new file mode 100644
index 000000000..66b9463d4
--- /dev/null
+++ b/community/osmo/osmo.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
diff --git a/community/oss/PKGBUILD b/community/oss/PKGBUILD
new file mode 100644
index 000000000..c251c41b6
--- /dev/null
+++ b/community/oss/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 36678 2011-01-05 23:16:19Z bluewind $
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=oss
+pkgver=4.2_2004
+pkgrel=1
+pkgdesc="Open Sound System UNIX audio architecture"
+arch=('i686' 'x86_64')
+url="http://developer.opensound.com/"
+license=('GPL2')
+depends=('gcc' 'make' 'kernel26-headers' 'module-init-tools' 'libtool' 'sed')
+makedepends=('pkgconfig' 'gawk' 'gtk2' 'findutils')
+optdepends=('gtk2: for graphical mixer (ossxmix)'
+ 'hal: for automatic USB audio configuration')
+conflicts=('oss-linux' 'oss-linux-free' 'oss-testing' 'libflashsupport' 'libflashsupport-pulse' 'libflashsupport-oss')
+replaces=('libflashsupport-oss')
+install=oss.install
+backup=('usr/lib/oss/soundon.user')
+source=("http://www.4front-tech.com/developer/sources/stable/gpl/oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl.tar.bz2"
+ 'oss.rm-init-scripts.patch' 'oss.rc' 'oss.soundon.patch')
+md5sums=('256aba264d523fb8ee444aaacfb8d3da'
+ 'b9a380a0ac8896390d71ac13676f27e1'
+ '8ca7cdf94c56ab02890eb4aba6a4995f'
+ '65f07fe241bfbf912f76d8b6d8f276b5')
+
+build() {
+ _dir=oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl
+ cd ${srcdir}/${_dir}
+
+ # Avoid these flags conflicting with OSS build system.
+ unset CFLAGS
+ unset LDFLAGS
+ unset OSFLAGS
+ unset LIBRARIES
+ export NO_WARNING_CHECKS=yes
+
+ # Compile libflashsupport.so only in packaging time, so we avoid
+ # conflicts with other packages and ease package management.
+ msg "Building libflashsupport.so."
+ cd oss/lib
+ gcc -shared -fPIC -O2 -Wall -Werror flashsupport.c -o libflashsupport.so
+
+ msg "Preparing the build environment."
+ cd ${srcdir}
+
+ if [ ! -d build ]; then
+ # Create build directory and configure
+ mkdir build && cd build
+ ${srcdir}/${_dir}/configure --enable-libsalsa=NO
+ else
+ # Change to existing build directory
+ cd build
+ fi
+
+ msg "Building OSS."
+ make build
+
+ msg "Patching init scripts."
+ cd ${srcdir}/build/prototype
+ rm usr/lib/oss/etc/S89oss
+ patch -b -p0 < ${srcdir}/oss.rm-init-scripts.patch
+ patch -b -p0 < ${srcdir}/oss.soundon.patch
+
+}
+
+package() {
+ _dir=oss-v${pkgver/_*}-build${pkgver/*_}-src-gpl
+ cd ${srcdir}/${_dir}
+
+ msg "Copying files."
+
+ # Install libflashsupport.so
+ install -Dm755 oss/lib/libflashsupport.so \
+ ${pkgdir}/usr/lib/libflashsupport.so
+ rm -f oss/lib/{flashsupport.c,libflashsupport.so}
+
+ cd ${srcdir}/build/prototype
+ cp -a * ${pkgdir}
+ chmod -R a+r ${pkgdir} # All files can have read permission (FS#13815)
+ find ${pkgdir} -type d -exec chmod a+x '{}' \; # Make namcap happy
+ install -Dm755 ${srcdir}/oss.rc ${pkgdir}/etc/rc.d/oss
+}
+
diff --git a/community/oss/oss.install b/community/oss/oss.install
new file mode 100644
index 000000000..f665416db
--- /dev/null
+++ b/community/oss/oss.install
@@ -0,0 +1,59 @@
+_MSG_LIBOSSDIR=" Please note that OSS stores some of its configuration files
+ at /usr/lib/oss. If you are upgrading from an older OSS
+ release and it doesn't work properly, try removing that
+ directory and reinstall this package."
+
+post_install() {
+ echo "Running OSS install script..."
+ /bin/sh /usr/lib/oss/build/install.sh &> /dev/null
+ echo
+ echo "-------------------------------------------------------------"
+ echo " Open Sound System was installed. Now you should add 'oss'"
+ echo " to your DAEMONS variable at /etc/rc.conf, and start the"
+ echo " daemon by running /etc/rc.d/oss start."
+ echo
+ echo " Note that OSS can't currently work together with kernel"
+ echo " ALSA modules, so they were moved out by the OSS install"
+ echo " scripts. If you want the ALSA kernel modules back, you can"
+ echo " just remove this package using pacman."
+ echo
+ echo "${_MSG_LIBOSSDIR}"
+ echo "-------------------------------------------------------------"
+ /bin/true
+}
+
+post_upgrade() {
+ echo "Running OSS update script..."
+ /bin/sh /usr/lib/oss/build/install.sh &> /dev/null
+ echo
+ echo "-------------------------------------------------------------"
+ echo " Open Sound System was updated. Now you should restart the"
+ echo " daemon by running /etc/rc.d/oss restart."
+ echo
+ echo "${_MSG_LIBOSSDIR}"
+ echo "-------------------------------------------------------------"
+ /bin/true
+}
+
+pre_remove() {
+ # Restore any replaced ALSA drivers.
+ /bin/sh /usr/lib/oss/scripts/restore_drv.sh
+ # Remove symlinks left by the 'install.sh' script.
+ rm -f /usr/lib/hal/scripts/oss_usb-create-devices
+ rm -f /usr/share/hal/fdi/policy/20thirdparty/90-oss_usb-create-device.fdi
+ /bin/true
+}
+
+post_remove() {
+ echo
+ echo "-------------------------------------------------------------"
+ echo " Open Sound System was now removed, and the ALSA kernel"
+ echo " modules were restored."
+ echo
+ echo " Please note that OSS stores some of its configuration files"
+ echo " at /usr/lib/oss. If you don't plan to use OSS anymore, you"
+ echo " can remove this directory."
+ echo "-------------------------------------------------------------"
+ /bin/true
+}
+
diff --git a/community/oss/oss.rc b/community/oss/oss.rc
new file mode 100644
index 000000000..3f63378c6
--- /dev/null
+++ b/community/oss/oss.rc
@@ -0,0 +1,32 @@
+#!/bin/bash
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy 'Starting Open Sound System'
+ if /usr/sbin/soundon
+ then
+ add_daemon oss
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy 'Stopping Open Sound System'
+ if /usr/sbin/soundoff
+ then
+ rm_daemon oss
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+esac
diff --git a/community/oss/oss.rm-init-scripts.patch b/community/oss/oss.rm-init-scripts.patch
new file mode 100644
index 000000000..981ff605f
--- /dev/null
+++ b/community/oss/oss.rm-init-scripts.patch
@@ -0,0 +1,52 @@
+--- usr/lib/oss/build/install.sh.orig 2008-09-25 11:41:47.180167692 -0300
++++ usr/lib/oss/build/install.sh 2008-09-25 11:41:47.180167692 -0300
+@@ -290,38 +290,6 @@
+ echo
+ fi
+
+-if ! test -d /etc/init.d
+-then
+- mkdir /etc/init.d
+-fi
+-
+-rm -f /etc/init.d/oss /etc/rc.d/rc3.d/S89oss /etc/rc3.d/S89oss
+-cp -f $OSSLIBDIR/etc/S89oss /etc/init.d/oss
+-
+-chmod 744 /etc/init.d/oss
+-
+-if test -x /sbin/chkconfig
+-then
+- /sbin/chkconfig oss on > /dev/null 2>&1
+-else
+- if test -x /usr/sbin/update-rc.d
+- then
+- /usr/sbin/update-rc.d oss defaults > /dev/null 2>&1
+- else
+- if test -d etc/rc.d/rc3.d
+- then
+- rm -f /etc/rc.d/rc3.d/S89oss
+- ln -s /etc/init.d/oss /etc/rc.d/rc3.d/S89oss
+- else
+- if test -d /etc/rc3.d
+- then
+- rm -f /etc/rc3.d/S89oss
+- ln -s /etc/init.d/oss /etc/rc3.d/S89oss
+- fi
+- fi
+- fi
+-fi
+-
+ # Install ALSA interface module (Cuckoo)
+ #(cd $OSSLIBDIR/cuckoo && make clean) > /dev/null 2>&1
+ #if (cd $OSSLIBDIR/cuckoo && make install) > /var/log/cuckoo.log 2>&1
+--- usr/lib/oss/scripts/restore_drv.sh.orig 2008-09-25 11:41:47.210168487 -0300
++++ usr/lib/oss/scripts/restore_drv.sh 2008-09-25 11:41:47.210168487 -0300
+@@ -18,8 +18,6 @@
+ fi
+ fi
+
+-rm -f /etc/init.d/oss
+-
+ if ! test -d /lib/modules/`uname -r`/kernel/sound
+ then
+ if test -f /lib/modules/`uname -r`/sound-preoss.tar.bz2
diff --git a/community/oss/oss.soundon.patch b/community/oss/oss.soundon.patch
new file mode 100644
index 000000000..4702b8680
--- /dev/null
+++ b/community/oss/oss.soundon.patch
@@ -0,0 +1,28 @@
+--- usr/sbin/soundon.old 2009-09-04 06:35:26.000000000 +0100
++++ usr/sbin/soundon 2009-11-15 13:59:53.000000000 +0000
+@@ -255,7 +255,10 @@
+ then
+ if test "`uname -m` " = "x86_64 "
+ then
+- ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib64/libasound.so.2
++ # Fix for compatibility with Arch's directory structure
++ # Not that we use it, there is no $OSSLIBDIR/.libsalsa_installed
++ ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib/libasound.so.2
++ #ln -sf $OSSLIBDIR/lib/libsalsa.so.2.0.0 /usr/lib64/libasound.so.2
+ #ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64
+ else
+ if test -s /lib/libasound.so.2
+@@ -278,8 +281,11 @@
+ then
+ if test "`uname -m` " = "x86_64 "
+ then
+- ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64
+- ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib64
++ # Fix for compatibility with Arch's directory structure
++ ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib
++ ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib
++ #ln -sf $OSSLIBDIR/lib/libOSSlib.so /usr/lib64
++ #ln -sf $OSSLIBDIR/lib/libossmix.so /usr/lib64
+ else
+ if test -s /lib/libasound.so.2
+ then
diff --git a/community/ozerocdoff/PKGBUILD b/community/ozerocdoff/PKGBUILD
new file mode 100644
index 000000000..d06c022f1
--- /dev/null
+++ b/community/ozerocdoff/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 33926 2010-11-29 11:26:18Z allan $
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+
+pkgname=ozerocdoff
+pkgver=2
+pkgrel=3
+pkgdesc="Userspace driver for Option High Speed Mobile Devices"
+arch=('i686' 'x86_64')
+url="http://www.pharscape.org/ozerocdoff.html"
+depends=('bash' 'libusb-compat')
+license=('GPL2')
+source=(udev.tar.gz::"http://www.pharscape.org/forum/index.php?action=dlattach;topic=545.0;attach=4")
+md5sums=('88a78f9380d9591f8d20a657b72e3e5c')
+
+build() {
+ cd "${srcdir}/udev"
+ make clean
+ make
+}
+
+package() {
+ cd "${srcdir}/udev"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/p2c/PKGBUILD b/community/p2c/PKGBUILD
new file mode 100644
index 000000000..027f78819
--- /dev/null
+++ b/community/p2c/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 33428 2010-11-24 16:22:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: tardo <tardo@nagi-fanboi.net>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=p2c
+pkgver=1.21alpha2
+pkgrel=9
+pkgdesc="pascal to c/c++ converter"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/sid/p2c"
+license=('GPL')
+depends=('perl')
+# http://ftp.debian.org/debian/pool/main/p/p2c/p2c_$pkgver-3.diff.gz)
+source=(http://www.ccrnp.ncifcrf.gov/~toms/p2c/p2c-$pkgver.tar.gz)
+md5sums=('8340429ae80be2e0e82c01f70c0355bb')
+
+build() {
+ cd $srcdir
+# patch -Np1 <../p2c_$pkgver-3.diff
+
+ cd src
+ sed -i 's#getline#xgetline#' *.c *.hdrs
+ make \
+ BINDIR=/usr/bin \
+ MANDIR=/usr/share/man/man1 \
+ LIBDIR=/usr/lib \
+ HOMEDIR=/usr/lib/p2c \
+ INCDIR=/usr/include/p2c \
+ ABSHOMEDIR=/usr/lib/p2c \
+ ABSLIBDIR=/usr/lib \
+ ABSINCDIR=/usr/include/p2c
+
+ mkdir -p $pkgdir/usr/bin \
+ $pkgdir/usr/share/man/man1 \
+ $pkgdir/usr/lib \
+ $pkgdir/usr/include/p2c
+ make install \
+ BINDIR=$pkgdir/usr/bin \
+ MANDIR=$pkgdir/usr/share/man/man1 \
+ LIBDIR=$pkgdir/usr/lib \
+ HOMEDIR=$pkgdir/usr/lib/p2c \
+ INCDIR=$pkgdir/usr/include/p2c \
+ ABSHOMEDIR=$pkgdir/usr/lib/p2c \
+ ABSLIBDIR=$pkgdir/usr/lib \
+ ABSINCDIR=$pkgdir/usr/include/p2c
+}
diff --git a/community/p3scan/PKGBUILD b/community/p3scan/PKGBUILD
new file mode 100644
index 000000000..67dd6ca21
--- /dev/null
+++ b/community/p3scan/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 44195 2011-04-04 13:08:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: v01d <phreakuencies@gmail.com>
+
+pkgname=p3scan
+pkgver=2.3.2
+pkgrel=5
+pkgdesc="Fully transparent POP3/SMTP proxy with Anti-Virus and SPAM protection"
+arch=('i686' 'x86_64')
+url="http://p3scan.sourceforge.net/"
+depends=('pcre' 'openssl')
+license=('GPL')
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz" "rc.p3scan")
+md5sums=('9f8decc7d4701228788e3c8717096ca0' 'f6e3450c3a932477c49082559b7abef8')
+install=p3scan.install
+md5sums=('9f8decc7d4701228788e3c8717096ca0'
+ '482a783e699b6532cbc478977f429eb5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Fix CFLAGS and other options hardcoded in Makefiles
+ sed -ri "s|^CFLAGS=-Wall( -g)? -O2|CFLAGS=-Wall $CFLAGS|" Makefile ripmime/Makefile ripmime/tnef/Makefile ripmime/ripOLE/Makefile
+ sed -ri 's|^LOCATION=.+$|LOCATION=/usr|' ripmime/Makefile
+ sed -ri 's|\$\(SYSINS\) -v -m 550 --strip p3scan \$\(PREFIX\)/sbin/|$(SYSINS) -D -v -m 550 --strip p3scan $(DESTDIR)/usr/sbin/|' Makefile
+ make
+
+ # Create base dirs, the Makefile assumes they're there
+ install -d $pkgdir/usr/sbin $startdir/pkg/etc/rc.d $startdir/pkg/usr/man/man8
+
+ # install with root set on $pkgdir
+ make DESTDIR=$pkgdir install
+
+ # delete init script provided and use an arch compatible one
+ rm -f $pkgdir/etc/rc.d/rc.p3scan
+ install -D -m755 -g root -o root $srcdir/rc.p3scan $pkgdir/etc/rc.d/p3scan
+
+ # BUG?: make absolute link a relative one
+ (
+ cd $pkgdir/etc/p3scan
+ ln -sf p3scan-en.mail p3scan.mail
+ )
+
+ # BUG: fix .conf file (the license has C style comments, they should be conf-style comments)
+ sed -ri 's|^[/ ]\*/?|# |g' $pkgdir/etc/p3scan/p3scan.conf
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+ mv $pkgdir/usr/doc $pkgdir/usr/share/
+ rm -rf $pkgdir/var/run
+}
diff --git a/community/p3scan/p3scan.install b/community/p3scan/p3scan.install
new file mode 100644
index 000000000..0f139dd28
--- /dev/null
+++ b/community/p3scan/p3scan.install
@@ -0,0 +1,7 @@
+post_install() {
+ echo "==> You may want an Anti-Virus program to use with p3scan. Installing clamav is recommended."
+}
+
+post_upgrade() {
+ post_install $1 $2
+}
diff --git a/community/p3scan/rc.p3scan b/community/p3scan/rc.p3scan
new file mode 100644
index 000000000..fc8b79b22
--- /dev/null
+++ b/community/p3scan/rc.p3scan
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting p3scan"
+ [ -d /var/run/p3scan ] || mkdir -p /var/run/p3scan
+ if [ -a /var/run/p3scan/p3scan.pid ]; then stat_die; fi
+
+ # Start p3scan
+ /usr/sbin/p3scan
+ if ! [ -a /var/run/p3scan/p3scan.pid ]; then stat_die; fi
+ add_daemon p3scan
+ stat_done
+ ;;
+ stop)
+ stat_busy "Stopping p3scan"
+
+ # Stop p3scan
+ if [ -a /var/run/p3scan/p3scan.pid ]; then
+ kill `cat /var/run/p3scan/p3scan.pid` &>/dev/null || stat_die
+ rm -f /var/run/p3scan/p3scan.pid
+ rm_daemon p3scan
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 { start | stop | restart }"
+esac
+exit 0
diff --git a/community/packagekit/PKGBUILD b/community/packagekit/PKGBUILD
new file mode 100644
index 000000000..410da5d19
--- /dev/null
+++ b/community/packagekit/PKGBUILD
@@ -0,0 +1,93 @@
+# $Id: PKGBUILD 43963 2011-04-01 10:59:14Z jconder $
+# Maintainer: Jonathan Conder <jonno.conder@gmail.com>
+pkgbase='packagekit'
+pkgname=('packagekit' 'packagekit-qt' 'packagekit-python')
+pkgver=0.6.13
+pkgrel=2
+pkgdesc="A system designed to make installation and updates of packages easier."
+arch=('i686' 'x86_64')
+url="http://www.packagekit.org"
+license=('GPL')
+makedepends=('dbus-glib' 'gobject-introspection' 'gtk-doc' 'intltool'
+ 'networkmanager' 'pacman' 'pm-utils' 'polkit' 'python2' 'qt'
+ 'sqlite3')
+options=('!libtool')
+source=("http://www.packagekit.org/releases/PackageKit-$pkgver.tar.bz2"
+ 'alpm.patch')
+sha256sums=('cec67a54cd615163402b1e5100a6a9be0bd1838896d6183407b4d9274de47249'
+ '777b1cda90f8cc78eb5cf651d47b5c7b6f183a34b98ad0d93945c76973bd29de')
+
+build() {
+ cd "$srcdir/PackageKit-$pkgver"
+
+ patch -Np1 -i "$srcdir/alpm.patch"
+
+ # TODO: change to Makefile.in's and configure
+ sed -i 's@SUBDIRS = test@SUBDIRS =@' 'backends/Makefile.am'
+ sed -i 's@python @python2 @' 'lib/python/packagekit/Makefile.am'
+
+ export PYTHON=/usr/bin/python2
+ ./autogen.sh --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/PackageKit \
+ --disable-static \
+ --disable-gtk-doc \
+ --disable-tests \
+ --disable-local \
+ --disable-browser-plugin \
+ --disable-gstreamer-plugin \
+ --disable-gtk-module \
+ --disable-command-not-found \
+ --disable-cron \
+ --disable-debuginfo-install \
+ --enable-pm-utils \
+ --disable-dummy \
+ --enable-alpm \
+ --with-default-backend=alpm
+ make
+}
+
+package_packagekit() {
+ backup=('var/lib/PackageKit/transactions.db'
+ 'etc/PackageKit/alpm.d/pacman.conf'
+ 'etc/PackageKit/alpm.d/repos.list')
+ depends=('dbus-glib' 'pacman>=3.5.0' 'pacman<3.6.0' 'polkit'
+ 'shared-mime-info' 'sqlite3')
+ optdepends=('networkmanager')
+ install='packagekit.install'
+
+ cd "$srcdir/PackageKit-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ rm -rf "$pkgdir/usr/include/PackageKit/packagekit-qt"
+ rm -rf "$pkgdir/usr/lib/libpackagekit-qt.so"*
+ rm -rf "$pkgdir/usr/lib/pkgconfig/packagekit-qt.pc"
+ rm -rf "$pkgdir/usr/share/cmake"
+
+ rm -rf "$pkgdir/usr/lib/python"*
+ rm -rf "$pkgdir/usr/share/PackageKit/website"
+
+ mv "$pkgdir/etc/bash_completion.d/pk-completion.bash" \
+ "$pkgdir/etc/bash_completion.d/pkcon"
+ touch "$pkgdir/var/log/PackageKit"
+}
+
+package_packagekit-qt() {
+ depends=('packagekit' 'qt')
+ pkgdesc=('Qt bindings for PackageKit')
+
+ cd "$srcdir/PackageKit-$pkgver/lib/packagekit-qt"
+
+ make DESTDIR="$pkgdir" install
+}
+
+package_packagekit-python() {
+ depends=('packagekit' 'python2')
+ pkgdesc=('Python bindings for PackageKit')
+
+ cd "$srcdir/PackageKit-$pkgver/lib/python"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/packagekit/alpm.patch b/community/packagekit/alpm.patch
new file mode 100644
index 000000000..cc415ce9d
--- /dev/null
+++ b/community/packagekit/alpm.patch
@@ -0,0 +1,11693 @@
+diff --git a/backends/Makefile.am b/backends/Makefile.am
+index 3d53950..ba378df 100644
+--- a/backends/Makefile.am
++++ b/backends/Makefile.am
+@@ -32,10 +32,6 @@ if BACKEND_TYPE_OPKG
+ SUBDIRS += opkg
+ endif
+
+-if BACKEND_TYPE_PACMAN
+-SUBDIRS += pacman
+-endif
+-
+ if BACKEND_TYPE_RAZOR
+ SUBDIRS += razor
+ endif
+diff --git a/backends/alpm/Makefile.am b/backends/alpm/Makefile.am
+index 15749dc..a664b2c 100644
+--- a/backends/alpm/Makefile.am
++++ b/backends/alpm/Makefile.am
+@@ -1,10 +1,54 @@
+-INCLUDES = \
+- -DG_LOG_DOMAIN=\"PackageKit-Alpm\"
++PK_BACKEND_CONFIG_FILE = $(confdir)/pacman.conf
++PK_BACKEND_GROUP_FILE = $(confdir)/groups.list
++PK_BACKEND_REPO_FILE = $(confdir)/repos.list
++
++PK_BACKEND_DEFAULT_PATH = "/bin:/usr/bin:/sbin:/usr/sbin"
++PK_BACKEND_DEFAULT_ROOT = "/"
++PK_BACKEND_DEFAULT_DBPATH = $(localstatedir)/lib/pacman
++PK_BACKEND_DEFAULT_CACHEDIR = $(localstatedir)/cache/pacman/pkg
++PK_BACKEND_DEFAULT_LOGFILE = $(localstatedir)/log/pacman.log
++
++ALPM_CACHE_PATH = $(localstatedir)/lib/pacman/sync
++ALPM_PACKAGE_URL = "http://www.archlinux.org/packages/%s/%s/%s/"
++
++DEFS = -DPK_BACKEND_CONFIG_FILE=\"$(PK_BACKEND_CONFIG_FILE)\" \
++ -DPK_BACKEND_GROUP_FILE=\"$(PK_BACKEND_GROUP_FILE)\" \
++ -DPK_BACKEND_REPO_FILE=\"$(PK_BACKEND_REPO_FILE)\" \
++ -DPK_BACKEND_DEFAULT_PATH=\"$(PK_BACKEND_DEFAULT_PATH)\" \
++ -DPK_BACKEND_DEFAULT_ROOT=\"$(PK_BACKEND_DEFAULT_ROOT)\" \
++ -DPK_BACKEND_DEFAULT_DBPATH=\"$(PK_BACKEND_DEFAULT_DBPATH)\" \
++ -DPK_BACKEND_DEFAULT_CACHEDIR=\"$(PK_BACKEND_DEFAULT_CACHEDIR)\" \
++ -DPK_BACKEND_DEFAULT_LOGFILE=\"$(PK_BACKEND_DEFAULT_LOGFILE)\" \
++ -DALPM_CACHE_PATH=\"$(ALPM_CACHE_PATH)\" \
++ -DALPM_PACKAGE_URL=\"$(ALPM_PACKAGE_URL)\" \
++ -DG_LOG_DOMAIN=\"PackageKit-alpm\"
++
++confdir = $(PK_CONF_DIR)/alpm.d
++conf_DATA = groups.list \
++ pacman.conf \
++ repos.list
+
+ plugindir = $(PK_PLUGIN_DIR)
+ plugin_LTLIBRARIES = libpk_backend_alpm.la
+-libpk_backend_alpm_la_SOURCES = pk-backend-alpm.c
+-libpk_backend_alpm_la_LIBADD = $(PK_PLUGIN_LIBS) -lalpm
+-libpk_backend_alpm_la_LDFLAGS = -module -avoid-version
+-libpk_backend_alpm_la_CFLAGS = $(PK_PLUGIN_CFLAGS) $(WARNINGFLAGS_C)
+
++libpk_backend_alpm_la_SOURCES = pk-backend-alpm.c \
++ pk-backend-config.c \
++ pk-backend-databases.c \
++ pk-backend-depends.c \
++ pk-backend-error.c \
++ pk-backend-groups.c \
++ pk-backend-install.c \
++ pk-backend-packages.c \
++ pk-backend-remove.c \
++ pk-backend-search.c \
++ pk-backend-sync.c \
++ pk-backend-transaction.c \
++ pk-backend-update.c
++libpk_backend_alpm_la_LIBADD = $(PK_PLUGIN_LIBS) \
++ -lalpm
++libpk_backend_alpm_la_LDFLAGS = -module \
++ -avoid-version
++libpk_backend_alpm_la_CFLAGS = $(PK_PLUGIN_CFLAGS) \
++ $(WARNINGFLAGS_C)
++
++EXTRA_DIST = $(conf_DATA) $(libpk_backend_alpm_la_SOURCES:.c=.h)
+diff --git a/backends/alpm/TODO b/backends/alpm/TODO
+deleted file mode 100644
+index 04a827f..0000000
+--- a/backends/alpm/TODO
++++ /dev/null
+@@ -1,4 +0,0 @@
+-
+-* Fix cache refreshing. Currently throws 'unexpected error'
+-* Improve error handling by using macros. Currently 50% is very similiar error handling code.
+-* Handle transaction progress and events in the callback functions.
+diff --git a/backends/alpm/groups.list b/backends/alpm/groups.list
+new file mode 100644
+index 0000000..b2c02ae
+--- /dev/null
++++ b/backends/alpm/groups.list
+@@ -0,0 +1,65 @@
++adesklet-desklets desktop-other
++base system
++base-devel programming
++bmp-io-plugins multimedia
++bmp-plugins multimedia
++cegcc programming
++compiz desktop-other
++compiz-fusion desktop-other
++compiz-fusion-gtk desktop-gnome
++compiz-fusion-kde desktop-kde
++compiz-gnome desktop-gnome
++compiz-gtk desktop-gnome
++compiz-kde desktop-kde
++e17-extra-svn desktop-other
++e17-libs-svn desktop-other
++e17-svn desktop-other
++fprint other
++gimp-help other
++gimp-plugins other
++gnome desktop-gnome
++gnome-extra desktop-gnome
++gnustep-core desktop-other
++google-gadgets desktop-other
++gstreamer0.10-plugins multimedia
++kde desktop-kde
++kdeaccessibility desktop-kde
++kdeadmin desktop-kde
++kdeartwork desktop-kde
++kdebase desktop-kde
++kdeedu desktop-kde
++kde-extragear desktop-kde
++kdegames desktop-kde
++kdegraphics desktop-kde
++kde-l10n desktop-kde
++kde-meta desktop-kde
++kdemultimedia desktop-kde
++kdenetwork desktop-kde
++kdepim desktop-kde
++kdeplasma-addons desktop-kde
++kdesdk desktop-kde
++kdetoys desktop-kde
++kdeutils desktop-kde
++kdewebdev desktop-kde
++koffice desktop-kde
++ladspa-plugins multimedia
++lib32 other
++lxde other
++qtcurve desktop-kde
++rox-desktop desktop-other
++telepathy other
++texlive-lang other
++texlive-lang-doc other
++texlive-most other
++texlive-most-doc other
++thunderbird-i18n other
++thunderbird-spell-i18n other
++vim-plugins other
++xfce4 desktop-xfce
++xfce4-goodies desktop-xfce
++xmms-effect-plugins multimedia
++xmms-io-plugins multimedia
++xmms-plugins multimedia
++xorg desktop-other
++xorg-input-drivers desktop-other
++xorg-video-drivers desktop-other
+diff --git a/backends/alpm/pacman.conf b/backends/alpm/pacman.conf
+new file mode 100644
+index 0000000..8fdef09
+--- /dev/null
++++ b/backends/alpm/pacman.conf
+@@ -0,0 +1,12 @@
++# PackageKit configuration for the alpm backend
++# See the pacman.conf(5) manpage for option and repository directives.
++
++[options]
++
++# Use default pacman configuration initially
++#
++Include = /etc/pacman.conf
++
++# Prevent PackageKit from removing itself
++#
++HoldPkg = packagekit
+diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
+index 5513d8d..0077329 100644
+--- a/backends/alpm/pk-backend-alpm.c
++++ b/backends/alpm/pk-backend-alpm.c
+@@ -1,7 +1,8 @@
+ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+@@ -20,1678 +21,361 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+-#define _GNU_SOURCE
++#include <config.h>
++#include <glib/gstdio.h>
++#include <sys/utsname.h>
+
+-#define ALPM_CONFIG_PATH "/etc/pacman.conf"
++#include "pk-backend-alpm.h"
++#include "pk-backend-databases.h"
++#include "pk-backend-error.h"
++#include "pk-backend-groups.h"
+
+-#define ALPM_ROOT "/"
+-#define ALPM_DBPATH "/var/lib/pacman"
+-#define ALPM_CACHEDIR "/var/cache/pacman/pkg"
+-#define ALPM_LOGFILE "/var/log/pacman.log"
++PkBackend *backend = NULL;
++GCancellable *cancellable = NULL;
++static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+
+-#define ALPM_PKG_EXT ".pkg.tar.gz"
+-#define ALPM_LOCAL_DB_ALIAS "installed"
++pmdb_t *localdb = NULL;
+
+-#define ALPM_PROGRESS_UPDATE_INTERVAL 400
++gchar *xfercmd = NULL;
++alpm_list_t *holdpkgs = NULL;
++alpm_list_t *syncfirsts = NULL;
+
+-#include <gmodule.h>
+-#include <glib.h>
+-#include <string.h>
+-#include <pk-backend.h>
+-
+-#include <alpm.h>
+-#include <alpm_list.h>
+-
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include <ctype.h>
+-
+-PkBackend *backend_instance = NULL;
+-
+-GHashTable *group_map;
+-
+-alpm_list_t *syncfirst = NULL;
+-alpm_list_t *holdpkg = NULL;
+-
+-alpm_list_t *downloaded_files = NULL;
+-gchar *current_file = NULL;
+-
+-off_t trans_xfered;
+-off_t trans_total;
+-
+-int trans_subprogress;
+-
+-typedef enum {
+- PK_ALPM_SEARCH_TYPE_NULL,
+- PK_ALPM_SEARCH_TYPE_RESOLVE,
+- PK_ALPM_SEARCH_TYPE_NAME,
+- PK_ALPM_SEARCH_TYPE_DETAILS,
+- PK_ALPM_SEARCH_TYPE_GROUP,
+- PK_ALPM_SEARCH_TYPE_PROVIDES
+-} PkAlpmSearchType;
+-
+-static int
+-pkg_cmp (pmpkg_t *pkg1, pmpkg_t *pkg2) {
+- int comparison;
+- /* check for no package */
+- if (pkg1 == NULL)
+- return -1;
+- if (pkg2 == NULL)
+- return 1;
+- /* compare package names */
+- comparison = g_strcmp0 (alpm_pkg_get_name (pkg1), alpm_pkg_get_name (pkg2));
+- if (comparison != 0)
+- return comparison;
+- /* compare package versions */
+- comparison = alpm_pkg_vercmp (alpm_pkg_get_version (pkg1), alpm_pkg_get_version (pkg2));
+- if (comparison != 0)
+- return comparison;
+- /* packages are equal */
+- return 0;
+-}
+-
+-/* temporary commented to not produce compilation errors :) */
+-/*
+-static gboolean
+-pkg_equal (pmpkg_t *p1, pmpkg_t *p2)
+-{
+- if (g_strcmp0 (alpm_pkg_get_name (p1), alpm_pkg_get_name (p2)) != 0)
+- return FALSE;
+- if (g_strcmp0 (alpm_pkg_get_version (p1), alpm_pkg_get_version (p2)) != 0)
+- return FALSE;
+- return TRUE;
+-}
+-*/
+-
+-static gboolean
+-pkg_equals_to (pmpkg_t *pkg, const gchar *name, const gchar *version)
+-{
+- if (pkg == NULL)
+- return FALSE;
+- if (g_strcmp0 (alpm_pkg_get_name (pkg), name) != 0)
+- return FALSE;
+- if (version != NULL)
+- if (g_strcmp0 (alpm_pkg_get_version (pkg), version) != 0)
+- return FALSE;
+- return TRUE;
+-}
+-
+-static gchar *
+-pkg_to_package_id_str (pmpkg_t *pkg, const gchar *repo)
+-{
+- gchar *arch = (gchar *) alpm_pkg_get_arch (pkg);
+- if (arch == NULL)
+- arch = (gchar *) "unknown";
+-
+- return pk_package_id_build (alpm_pkg_get_name (pkg), alpm_pkg_get_version (pkg), arch, repo);
+-}
+-
+-static pmpkg_t *
+-pkg_from_package_id (const gchar *package_id)
+-{
+- pmdb_t *repo = NULL;
+- pmpkg_t *result;
+- gchar **package_id_data = pk_package_id_split (package_id);
+-
+- /* do all this fancy stuff */
+- if (g_strcmp0 (ALPM_LOCAL_DB_ALIAS, package_id_data[PK_PACKAGE_ID_DATA]) == 0)
+- repo = alpm_option_get_localdb ();
+- else {
+- alpm_list_t *iterator;
+- for (iterator = alpm_option_get_syncdbs (); iterator; iterator = alpm_list_next (iterator)) {
+- repo = alpm_list_getdata (iterator);
+- if (g_strcmp0 (alpm_db_get_name (repo), package_id_data[PK_PACKAGE_ID_DATA]) == 0)
+- break;
+- }
+- }
+-
+- if (repo != NULL) {
+- pmpkg_t *pkg = alpm_db_get_pkg (repo, package_id_data[PK_PACKAGE_ID_NAME]);
+- if (pkg_equals_to (pkg, package_id_data[PK_PACKAGE_ID_NAME], package_id_data[PK_PACKAGE_ID_VERSION]))
+- result = pkg;
+- else
+- result = NULL;
+- } else
+- result = NULL;
+-
+- g_strfreev (package_id_data);
+-
+- return result;
+-}
+-
+-static void
+-emit_package (PkBackend *backend, pmpkg_t *pkg, const gchar *repo, PkInfoEnum info)
+-{
+- gchar *package_id_str;
+-
+- g_debug ("alpm: emitting package with name %s", alpm_pkg_get_name (pkg));
+-
+- package_id_str = pkg_to_package_id_str (pkg, repo);
+- pk_backend_package (backend, info, package_id_str, alpm_pkg_get_desc (pkg));
+- g_free (package_id_str);
+-}
+-
+-static void
+-cb_trans_evt (pmtransevt_t event, void *data1, void *data2)
+-{
+- gchar **package_ids;
+-
+- /* TODO: add more code here */
+- switch (event) {
+- case PM_TRANS_EVT_REMOVE_START:
+- pk_backend_set_allow_cancel (backend_instance, FALSE);
+-
+- /* reset transaction subprogress */
+- trans_subprogress = -1;
+-
+- emit_package (backend_instance, data1, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_REMOVING);
+- break;
+- case PM_TRANS_EVT_ADD_START:
+- pk_backend_set_allow_cancel (backend_instance, FALSE);
+-
+- /* reset transaction subprogress */
+- trans_subprogress = -1;
+-
+- pk_backend_set_status (backend_instance, PK_STATUS_ENUM_INSTALL);
+-
+- package_ids = pk_backend_get_strv (backend_instance, "package_ids");
+- if (package_ids != NULL) {
+- unsigned int iterator;
+-
+- /* search for package in package_ids */
+- gchar *package_id_needle = pkg_to_package_id_str (data1, "");
+-
+- g_debug ("needle is %s", package_id_needle);
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator)
+- if (strstr (package_ids[iterator], package_id_needle) != NULL) {
+- pk_backend_package (backend_instance, PK_INFO_ENUM_INSTALLING, package_ids[iterator], alpm_pkg_get_desc (data1));
+- break;
+- }
+-
+- g_free (package_id_needle);
+- } else
+- /* we are installing a local file */
+- emit_package (backend_instance, data1, "local", PK_INFO_ENUM_INSTALLING);
+-
+- break;
+- case PM_TRANS_EVT_UPGRADE_START:
+- pk_backend_set_allow_cancel (backend_instance, FALSE);
+-
+- /* reset transaction subprogress */
+- trans_subprogress = -1;
+-
+- emit_package (backend_instance, data1, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_UPDATING);
+- break;
+- default: g_debug ("alpm: event %i happened", event);
+- }
+-}
+-
+-static void
+-cb_trans_conv (pmtransconv_t conv, void *data1, void *data2, void *data3, int *response)
+-{
+- /* TODO: check if some code needs to be placed there */
+-}
+-
+-static void
+-cb_trans_progress (pmtransprog_t event, const char *pkgname, int percent, int howmany, int current)
++gchar *
++pk_backend_get_description (PkBackend *self)
+ {
+- if (trans_subprogress != percent) {
+- /* avoid duplicates */
+- trans_subprogress = percent;
++ g_return_val_if_fail (self != NULL, NULL);
+
+- if (event == PM_TRANS_PROGRESS_ADD_START || event == PM_TRANS_PROGRESS_UPGRADE_START || event == PM_TRANS_PROGRESS_REMOVE_START) {
+- int trans_percent;
+-
+- g_debug ("alpm: transaction percentage for %s is %i", pkgname, percent);
+- trans_percent = (int) ((float) ((current - 1) * 100 + percent)) / ((float) (howmany * 100)) * 100;
+- pk_backend_set_sub_percentage ((PkBackend *) backend_instance, percent);
+- pk_backend_set_percentage ((PkBackend *) backend_instance, trans_percent);
+- }
+- }
++ return g_strdup ("alpm");
+ }
+
+-static void
+-cb_dl_progress (const char *filename, off_t file_xfered, off_t file_total)
++gchar *
++pk_backend_get_author (PkBackend *self)
+ {
+- int file_percent;
+- int trans_percent;
+-
+- if (g_str_has_suffix (filename, ALPM_PKG_EXT)) {
+- if (g_strcmp0 (filename, current_file) != 0) {
+- alpm_list_t *repos;
+- alpm_list_t *packages;
+- pmpkg_t *current_pkg = NULL;
+- const gchar *repo_name = NULL;
+-
+- g_free (current_file);
+- current_file = g_strdup (filename);
+-
+- /* iterate repos */
+- for (repos = alpm_option_get_syncdbs (); current_pkg == NULL && repos; repos = alpm_list_next (repos)) {
+- pmdb_t *db = alpm_list_getdata (repos);
+-
+- /* iterate pkgs */
+- for (packages = alpm_db_get_pkgcache (db); current_pkg == NULL && packages; packages = alpm_list_next (packages)) {
+- pmpkg_t *pkg = alpm_list_getdata (packages);
+-
+- /* compare package information with file name */
+- gchar *needle = g_strjoin ("-", alpm_pkg_get_name (pkg), alpm_pkg_get_version (pkg), NULL);
+- if (needle != NULL && strcmp (needle, "") != 0)
+- g_debug ("matching %s with %s", filename, needle);
+- if (g_str_has_prefix (filename, needle)) {
+- current_pkg = pkg;
+- repo_name = alpm_db_get_name (db);
+- }
+- g_free (needle);
+- }
+- }
+-
+- if (current_pkg != NULL)
+- emit_package (backend_instance, current_pkg, repo_name, PK_INFO_ENUM_DOWNLOADING);
+- }
+- }
++ g_return_val_if_fail (self != NULL, NULL);
+
+- file_percent = (int) ((float) file_xfered) / ((float) file_total) * 100;
+- trans_percent = (int) ((float) (trans_xfered + file_xfered)) / ((float) trans_total) * 100;
+- pk_backend_set_sub_percentage ((PkBackend *) backend_instance, file_percent);
+- pk_backend_set_percentage ((PkBackend *) backend_instance, trans_percent);
+-
+- if (file_xfered == file_total) {
+- downloaded_files = alpm_list_add (downloaded_files, g_strdup (filename));
+- trans_xfered = trans_xfered + file_total;
+- }
++ return g_strdup ("Jonathan Conder <jonno.conder@gmail.com>");
+ }
+
+-static void
+-cb_dl_total (off_t total)
+-{
+- trans_total = total;
+- /* zero total size means that download is finished, so clear trans_xfered */
+- if (total == 0)
+- trans_xfered = 0;
+-}
+-
+-/**
+- * strtrim:
+- * Trim whitespaces and newlines from a string
+- */
+-static char *
+-strtrim (char *str)
+-{
+- char *pch = str;
+-
+- if (str == NULL || *str == '\0')
+- /* string is empty, so we're done. */
+- return (str);
+-
+- while (isspace (*pch))
+- pch++;
+-
+- if (pch != str)
+- memmove (str, pch, (strlen (pch) + 1));
+-
+- /* check if there wasn't anything but whitespace in the string. */
+- if (*str == '\0')
+- return (str);
+-
+- pch = (str + (strlen (str) - 1));
+-
+- while (isspace (*pch))
+- pch--;
+-
+- *++pch = '\0';
+-
+- return (str);
+-}
+-
+-/**
+- * _strnadd:
+- * Helper function for strreplace
+- */
+-static void
+-_strnadd (char **str, const char *append, unsigned int count)
+-{
+- if (*str)
+- *str = realloc (*str, strlen (*str) + count + 1);
+- else
+- *str = calloc (sizeof (char), count + 1);
+-
+- strncat (*str, append, count);
+-}
+-
+-/**
+- * strreplace:
+- * Replace all occurences of 'needle' with 'replace' in 'str', returning
+- * a new string (must be free'd)
+- */
+-static char *
+-strreplace (const char *str, const char *needle, const char *replace)
+-{
+- const char *p, *q;
+- char *newstr = NULL;
+- unsigned int needlesz = strlen (needle), replacesz = strlen (replace);
+-
+- p = q = str;
+-
+- while (1) {
+- q = strstr (p, needle);
+- if (!q) {
+- /* not found */
+- if (*p) /* add the rest of 'p' */
+- _strnadd (&newstr, p, strlen (p));
+-
+- break;
+- } else { /* found match */
+- if (q > p) /* add chars between this occurance and last occurance, if any */
+- _strnadd (&newstr, p, q - p);
+-
+- _strnadd (&newstr, replace, replacesz);
+- p = q + needlesz;
+- }
+- }
+-
+- return newstr;
+-}
+-
+-/**
+- * set_repeating_option:
+- * Add repeating options such as NoExtract, NoUpgrade, etc to alpm settings.
+- * @param ptr a pointer to the start of the multiple options
+- * @param option the string (friendly) name of the option, used for messages
+- * @param optionfunc a function pointer to an alpm_option_add_* function
+- */
+-static void
+-set_repeating_option (const char *ptr, const char *option, void (*optionfunc) (const char*))
+-{
+- char *p = (char*) ptr;
+- char *q;
+-
+- while ((q = strchr (p, ' '))) {
+- *q = '\0';
+- (*optionfunc) (p);
+- g_debug ("config: %s: %s", option, p);
+- p = q;
+- p++;
+- }
+- (*optionfunc) (p);
+- g_debug ("config: %s: %s", option, p);
+-}
+-
+-/**
+- * option_add_syncfirst:
+- * Add package name to SyncFirst list
+- * @param name name of the package to be added
+- */
+-static void
+-option_add_syncfirst (const char *name) {
+- syncfirst = alpm_list_add (syncfirst, strdup (name));
+-}
+-
+-/**
+- * option_add_holdpkg:
+- * Add package name to HoldPkg list
+- * @param name name of the package to be added
+- */
+-static void
+-option_add_holdpkg (const char *name) {
+- holdpkg = alpm_list_add (holdpkg, strdup (name));
+-}
+-
+-/**
+- * parse_config:
+- * Parse config file and set all the needed options
+- * Based heavily on the pacman source code
+- * @param file full name of config file
+- * @param givensection section to start from
+- * @param givendb db to start from
+- */
+-static int
+-parse_config (const char *file, const char *givensection, pmdb_t * const givendb)
+-{
+- FILE *fp = NULL;
+- char line[PATH_MAX + 1];
+- int linenum = 0;
+- char *ptr, *section = NULL;
+- pmdb_t *db = NULL;
+-
+- /* set default options */
+- alpm_option_set_root (ALPM_ROOT);
+- alpm_option_set_dbpath (ALPM_DBPATH);
+- alpm_option_add_cachedir (ALPM_CACHEDIR);
+- alpm_option_set_logfile (ALPM_LOGFILE);
+-
+- fp = fopen (file, "r");
+- if (fp == NULL) {
+- g_error ("config file %s could not be read", file);
+- return 1;
+- }
+-
+- /* if we are passed a section, use it as our starting point */
+- if (givensection != NULL)
+- section = strdup (givensection);
+-
+- /* if we are passed a db, use it as our starting point */
+- if (givendb != NULL)
+- db = givendb;
+-
+- while (fgets (line, PATH_MAX, fp)) {
+- linenum++;
+- strtrim (line);
+-
+- if (strlen (line) == 0 || line[0] == '#')
+- continue;
+-
+- if ((ptr = strchr (line, '#')))
+- *ptr = '\0';
+-
+- if (line[0] == '[' && line[strlen (line) - 1] == ']') {
+- /* new config section, skip the '[' */
+- ptr = line;
+- ptr++;
+- if (section)
+- free (section);
+-
+- section = strdup (ptr);
+- section[strlen (section) - 1] = '\0';
+- g_debug ("config: new section '%s'", section);
+- if (!strlen (section)) {
+- g_debug ("config file %s, line %d: bad section name", file, linenum);
+- return 1;
+- }
+-
+- /* if we are not looking at the options section, register a db */
+- if (g_strcmp0 (section, "options") != 0)
+- db = alpm_db_register_sync (section);
+- } else {
+- /* directive */
+- char *key;
+- key = line;
+- ptr = line;
+- /* strsep modifies the 'line' string: 'key \0 ptr' */
+- strsep (&ptr, "=");
+- strtrim (key);
+- strtrim (ptr);
+-
+- if (key == NULL) {
+- g_error ("config file %s, line %d: syntax error in config file - missing key.", file, linenum);
+- return 1;
+- }
+- if (section == NULL) {
+- g_error ("config file %s, line %d: all directives must belong to a section.", file, linenum);
+- return 1;
+- }
+-
+- if (ptr == NULL && g_strcmp0 (section, "options") == 0) {
+- /* directives without settings, all in [options] */
+- if (g_strcmp0 (key, "UseSyslog") == 0) {
+- alpm_option_set_usesyslog (1);
+- g_debug ("config: usesyslog");
+- } else if (g_strcmp0 (key, "UseDelta") == 0) {
+- alpm_option_set_usedelta (1);
+- g_debug ("config: usedelta");
+- } else if (g_strcmp0 (key, "ILoveCandy") != 0 && g_strcmp0 (key, "ShowSize") != 0 && g_strcmp0 (key, "TotalDownload") != 0 && g_strcmp0 (key, "NoPassiveFTP") != 0) {
+- g_warning ("config file %s, line %d: directive '%s' not recognized.", file, linenum, key);
+- }
+- } else {
+- /* directives with settings */
+- if (g_strcmp0 (key, "Include") == 0) {
+- g_debug ("config: including %s", ptr);
+- parse_config (ptr, section, db);
+- /* Ignore include failures... assume non-critical */
+- } else if (g_strcmp0 (section, "options") == 0) {
+- if (g_strcmp0 (key, "NoUpgrade") == 0) {
+- set_repeating_option (ptr, "NoUpgrade", alpm_option_add_noupgrade);
+- } else if (g_strcmp0 (key, "NoExtract") == 0) {
+- set_repeating_option (ptr, "NoExtract", alpm_option_add_noextract);
+- } else if (g_strcmp0 (key, "IgnorePkg") == 0) {
+- set_repeating_option (ptr, "IgnorePkg", alpm_option_add_ignorepkg);
+- } else if (g_strcmp0 (key, "IgnoreGroup") == 0) {
+- set_repeating_option (ptr, "IgnoreGroup", alpm_option_add_ignoregrp);
+- } else if (g_strcmp0 (key, "HoldPkg") == 0) {
+- set_repeating_option (ptr, "HoldPkg", option_add_holdpkg);
+- } else if (g_strcmp0 (key, "SyncFirst") == 0) {
+- set_repeating_option (ptr, "SyncFirst", option_add_syncfirst);
+- } else if (g_strcmp0 (key, "DBPath") == 0) {
+- alpm_option_set_dbpath (ptr);
+- } else if (g_strcmp0 (key, "CacheDir") == 0) {
+- if (alpm_option_add_cachedir (ptr) != 0) {
+- g_error ("problem adding cachedir '%s' (%s)", ptr, alpm_strerrorlast ());
+- return 1;
+- }
+- g_debug ("config: cachedir: %s", ptr);
+- } else if (g_strcmp0 (key, "RootDir") == 0) {
+- alpm_option_set_root (ptr);
+- g_debug ("config: rootdir: %s", ptr);
+- } else if (g_strcmp0 (key, "LogFile") == 0) {
+- alpm_option_set_logfile (ptr);
+- g_debug ("config: logfile: %s", ptr);
+- } else if (g_strcmp0 (key, "XferCommand") != 0 && g_strcmp0 (key, "CleanMethod") != 0) {
+- g_warning ("config file %s, line %d: directive '%s' not recognized.", file, linenum, key);
+- }
+- } else if (g_strcmp0 (key, "Server") == 0) {
+- /* let's attempt a replacement for the current repo */
+- char *server = strreplace (ptr, "$repo", section);
+-
+- if (alpm_db_setserver (db, server) != 0) {
+- /* pm_errno is set by alpm_db_setserver */
+- g_error ("config file %s, line %d: could not add server URL to database (%s).", file, linenum, alpm_strerrorlast ());
+- free (server);
+- return 1;
+- }
+- free (server);
+- } else {
+- g_warning ("config file %s, line %d: directive '%s' not recognized.", file, linenum, key);
+- }
+- }
+- }
+- }
+-
+- fclose (fp);
+- if (section)
+- free (section);
+-
+- g_debug ("config: finished parsing %s", file);
+- return 0;
+-}
+-
+-/**
+- * backend_initialize:
+- */
+-static void
+-backend_initialize (PkBackend *backend)
+-{
+- /* initialize backend_instance for use in callback functions */
+- backend_instance = backend;
+-
+- g_debug ("alpm: initializing backend");
+-
+- if (alpm_initialize () == -1) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_FAILED_INITIALIZATION, "Failed to initialize package manager");
+- g_debug ("alpm: %s", alpm_strerror (pm_errno));
+- return;
+- }
+-
+- /* read options from config file */
+- if (parse_config (ALPM_CONFIG_PATH, NULL, NULL) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_FAILED_CONFIG_PARSING, "Failed to parse config file");
+- alpm_release ();
+- return;
+- }
+-
+- if (alpm_db_register_local () == NULL) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, "Failed to load local database");
+- g_debug ("alpm: %s", alpm_strerror (pm_errno));
+- alpm_release ();
+- return;
+- }
+-
+- alpm_option_set_dlcb (cb_dl_progress);
+- alpm_option_set_totaldlcb (cb_dl_total);
+-
+- /* fill in group mapping */
+- group_map = g_hash_table_new (g_str_hash, g_str_equal);
+- g_hash_table_insert (group_map, (gchar *) "gnome", (gchar *) "desktop-gnome");
+- g_hash_table_insert (group_map, (gchar *) "gnome-extra", (gchar *) "desktop-gnome");
+- g_hash_table_insert (group_map, (gchar *) "compiz-gnome", (gchar *) "desktop-gnome");
+- g_hash_table_insert (group_map, (gchar *) "kde", (gchar *) "desktop-kde");
+- g_hash_table_insert (group_map, (gchar *) "compiz-kde", (gchar *) "desktop-kde");
+- g_hash_table_insert (group_map, (gchar *) "compiz-fusion-kde", (gchar *) "desktop-kde");
+- g_hash_table_insert (group_map, (gchar *) "lxde", (gchar *) "desktop-other");
+- g_hash_table_insert (group_map, (gchar *) "rox-desktop", (gchar *) "desktop-other");
+- g_hash_table_insert (group_map, (gchar *) "e17-cvs", (gchar *) "desktop-other");
+- g_hash_table_insert (group_map, (gchar *) "e17-extra-cvs", (gchar *) "desktop-other");
+- g_hash_table_insert (group_map, (gchar *) "e17-libs-cvs", (gchar *) "desktop-other");
+- g_hash_table_insert (group_map, (gchar *) "xfce4", (gchar *) "desktop-xfce");
+- g_hash_table_insert (group_map, (gchar *) "xfce4-goodies", (gchar *) "desktop-xfce");
+- g_hash_table_insert (group_map, (gchar *) "bmp-io-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "bmp-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "bmp-visualization-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "gstreamer0.10-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "ladspa-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "pvr", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "mythtv-extras", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "xmms-effect-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "xmms-io-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "xmms-plugins", (gchar *) "multimedia");
+- g_hash_table_insert (group_map, (gchar *) "base-devel", (gchar *) "programming");
+- g_hash_table_insert (group_map, (gchar *) "texlive-lang", (gchar *) "publishing");
+- g_hash_table_insert (group_map, (gchar *) "texlive-lang-doc", (gchar *) "publishing");
+- g_hash_table_insert (group_map, (gchar *) "texlive-most", (gchar *) "publishing");
+- g_hash_table_insert (group_map, (gchar *) "texlive-most-doc", (gchar *) "publishing");
+- g_hash_table_insert (group_map, (gchar *) "texlive-most-svn", (gchar *) "publishing");
+- g_hash_table_insert (group_map, (gchar *) "base", (gchar *) "system");
+-
+- g_debug ("alpm: ready to go");
+-}
+-
+-/**
+- * backend_destroy:
+- */
+-static void
+-backend_destroy (PkBackend *backend)
+-{
+- g_hash_table_destroy (group_map);
+-
+- if (alpm_release () == -1) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_FAILED_FINALISE, "Failed to release package manager");
+- g_debug ("alpm: %s", alpm_strerror (pm_errno));
+- }
+-}
+-
+-/**
+- * backend_get_groups:
+- */
+-static PkBitfield
+-backend_get_groups (PkBackend *backend)
+-{
+- return pk_bitfield_from_enums (
+- PK_GROUP_ENUM_DESKTOP_GNOME,
+- PK_GROUP_ENUM_DESKTOP_KDE,
+- PK_GROUP_ENUM_DESKTOP_OTHER,
+- PK_GROUP_ENUM_DESKTOP_XFCE,
+- PK_GROUP_ENUM_MULTIMEDIA,
+- PK_GROUP_ENUM_OTHER,
+- PK_GROUP_ENUM_PROGRAMMING,
+- PK_GROUP_ENUM_PUBLISHING,
+- PK_GROUP_ENUM_SYSTEM,
+- -1);
+-}
+-
+-/**
+- * backend_get_filters:
+- */
+-static PkBitfield
+-backend_get_filters (PkBackend *backend)
+-{
+- return pk_bitfield_from_enums (PK_FILTER_ENUM_INSTALLED, -1);
+-}
+-
+-/**
+- * backend_get_mime_types:
+- */
+-static gchar *
+-backend_get_mime_types (PkBackend *backend)
+-{
+- return g_strdup ("application/x-compressed-tar");
+-}
+-
+-/**
+- * backend_cancel:
+- **/
+-static void
+-backend_cancel (PkBackend *backend)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_CANCEL);
+-}
+-
+-/**
+- * backend_download_packages_thread:
+- */
+ static gboolean
+-backend_download_packages_thread (PkBackend *backend)
++pk_backend_spawn (PkBackend *self, const gchar *command)
+ {
+- gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
+- const gchar *directory = pk_backend_get_string (backend, "directory");
+- unsigned int iterator;
+- alpm_list_t *list_iterator;
+- alpm_list_t *cachedirs = NULL;
+- alpm_list_t *data = NULL;
+-
+- g_debug ("alpm: downloading packages to %s", directory);
+-
+- /* old cachedirs list automatically gets freed in alpm, so make a copy */
+- for (list_iterator = alpm_option_get_cachedirs (); list_iterator; list_iterator = alpm_list_next (list_iterator))
+- cachedirs = alpm_list_add (cachedirs, g_strdup (alpm_list_getdata (list_iterator)));
+- /* set new download destination */
+- alpm_option_set_cachedirs (NULL);
+- alpm_option_add_cachedir (directory);
+-
+- /* create a new transaction */
+- if (alpm_trans_init (PM_TRANS_FLAG_NODEPS | PM_TRANS_FLAG_DOWNLOADONLY, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return FALSE;
+- }
++ int status;
++ GError *error = NULL;
+
+- /* add targets to the transaction */
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
+-
+- if (alpm_sync_target (package_id_data[PK_PACKAGE_ID_NAME]) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
+- }
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (command != NULL, FALSE);
+
+- g_strfreev (package_id_data);
++ if (!g_spawn_command_line_sync (command, NULL, NULL, &status, &error)) {
++ g_warning ("could not spawn command: %s", error->message);
++ g_error_free (error);
++ return FALSE;
+ }
+
+- /* prepare and commit transaction */
+- if (alpm_trans_prepare (&data) != 0 || alpm_trans_commit (&data) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
++ if (WIFEXITED (status) == 0) {
++ g_warning ("command did not execute correctly");
+ return FALSE;
+ }
+
+- alpm_trans_release ();
+-
+- /* emit downloaded packages */
+- for (list_iterator = downloaded_files; list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- gchar *package_id = NULL;
+- gchar *filename;
+-
+- /* TODO: optimize this? split-then-join isn't good */
+- for (iterator = 0; package_id == NULL && iterator < g_strv_length (package_ids); ++iterator) {
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
+- gchar *needle = g_strjoin ("-", package_id_data[PK_PACKAGE_ID_NAME], package_id_data[PK_PACKAGE_ID_VERSION], NULL);
+-
+- if (needle != NULL && strcmp (needle, "") != 0)
+- g_debug ("matching %s with %s", (char *) alpm_list_getdata (list_iterator), needle);
+- if (g_str_has_prefix ((char *) alpm_list_getdata (list_iterator), needle))
+- package_id = package_ids[iterator];
+-
+- g_free (needle);
+- g_strfreev (package_id_data);
+- }
+-
+- filename = g_build_filename (directory, alpm_list_getdata (list_iterator), NULL);
+- pk_backend_files (backend, package_id, filename);
+- g_free (filename);
+-
+- /* clean up list data */
+- g_free (alpm_list_getdata (list_iterator));
++ if (WEXITSTATUS (status) != EXIT_SUCCESS) {
++ gint code = WEXITSTATUS (status);
++ g_warning ("command returned error code %d", code);
++ return FALSE;
+ }
+- alpm_list_free (downloaded_files);
+
+- /* return cachedirs back */
+- alpm_option_set_cachedirs (cachedirs);
+-
+- pk_backend_finished (backend);
+ return TRUE;
+ }
+
+-/**
+- * backend_download_packages:
+- */
+-static void
+-backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar *directory)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_DOWNLOAD);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+-
+- pk_backend_thread_create (backend, backend_download_packages_thread);
+-}
+-
+-/**
+- * backend_get_depends:
+- */
+-static void
+-backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
++gint
++pk_backend_fetchcb (const gchar *url, const gchar *path, gint force)
+ {
+- unsigned int iterator;
++ GRegex *xo, *xi;
++ gchar *oldpwd, *basename, *file, *part;
++ gchar *tempcmd = NULL, *finalcmd = NULL;
++ gint result = 0;
+
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_allow_cancel (backend, FALSE);
++ g_return_val_if_fail (url != NULL, -1);
++ g_return_val_if_fail (path != NULL, -1);
++ g_return_val_if_fail (xfercmd != NULL, -1);
++ g_return_val_if_fail (backend != NULL, -1);
+
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- alpm_list_t *list_iterator;
+-
+- pmpkg_t *pkg = pkg_from_package_id (package_ids[iterator]);
+- if (pkg == NULL) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return;
+- }
+-
+- for (list_iterator = alpm_pkg_get_depends (pkg); list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- pmdepend_t *dep = alpm_list_getdata (list_iterator);
+- pmpkg_t *dep_pkg;
+- gboolean found = FALSE;
+-
+- if (!pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED)) {
+- /* search in sync dbs */
+- alpm_list_t *db_iterator;
+- for (db_iterator = alpm_option_get_syncdbs (); found == FALSE && db_iterator; db_iterator = alpm_list_next (db_iterator)) {
+- pmdb_t *syncdb = alpm_list_getdata (db_iterator);
+-
+- g_debug ("alpm: searching for %s in %s", alpm_dep_get_name (dep), alpm_db_get_name (syncdb));
+-
+- dep_pkg = alpm_db_get_pkg (syncdb, alpm_dep_get_name (dep));
+- if (dep_pkg && alpm_depcmp (dep_pkg, dep) && pkg_cmp (dep_pkg, alpm_db_get_pkg (alpm_option_get_localdb (), alpm_dep_get_name (dep))) != 0) {
+- found = TRUE;
+- emit_package (backend, dep_pkg, alpm_db_get_name (syncdb), PK_INFO_ENUM_AVAILABLE);
+- }
+- }
+- }
+-
+- if (!pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED)) {
+- g_debug ("alpm: searching for %s in local db", alpm_dep_get_name (dep));
+-
+- /* search in local db */
+- dep_pkg = alpm_db_get_pkg (alpm_option_get_localdb (), alpm_dep_get_name (dep));
+- if (dep_pkg && alpm_depcmp (dep_pkg, dep)) {
+- found = TRUE;
+- emit_package (backend, dep_pkg, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_INSTALLED);
+- }
+- }
+- }
++ oldpwd = g_get_current_dir ();
++ if (g_chdir (path) < 0) {
++ g_warning ("could not find or read directory %s", path);
++ g_free (oldpwd);
++ return -1;
+ }
+
+- pk_backend_finished (backend);
+-}
+-
+-/**
+- * backend_get_details:
+- */
+-static void
+-backend_get_details (PkBackend *backend, gchar **package_ids)
+-{
+- unsigned int iterator;
+-
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_allow_cancel (backend, FALSE);
+-
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- alpm_list_t *licenses_list;
+- GString *licenses_str;
+- gchar *licenses;
+-
+- pmpkg_t *pkg = pkg_from_package_id (package_ids[iterator]);
+- if (pkg == NULL) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return;
+- }
+-
+- licenses_list = alpm_pkg_get_licenses (pkg);
+- if (licenses_list == NULL)
+- licenses_str = g_string_new ("unknown");
+- else {
+- alpm_list_t *list_iterator;
+-
+- licenses_str = g_string_new ("");
+- for (list_iterator = licenses_list; list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- if (list_iterator != licenses_list)
+- g_string_append (licenses_str, ", ");
+- g_string_append (licenses_str, (char *) alpm_list_getdata (list_iterator));
+- }
+- }
+-
+- /* get licenses_str content to licenses array */
+- licenses = g_string_free (licenses_str, FALSE);
++ xo = g_regex_new ("%o", 0, 0, NULL);
++ xi = g_regex_new ("%u", 0, 0, NULL);
+
+- /* return details */
+- pk_backend_details (backend, package_ids[iterator], licenses, PK_GROUP_ENUM_OTHER, alpm_pkg_get_desc (pkg), alpm_pkg_get_url (pkg), alpm_pkg_get_size (pkg));
++ basename = g_path_get_basename (url);
++ file = g_strconcat (path, basename, NULL);
++ part = g_strconcat (file, ".part", NULL);
+
+- /* free licenses array as we no longer need it */
+- g_free (licenses);
++ if (force != 0 && g_file_test (part, G_FILE_TEST_EXISTS)) {
++ g_unlink (part);
+ }
+-
+- pk_backend_finished (backend);
+-}
+-
+-/**
+- * backend_get_files:
+- */
+-static void
+-backend_get_files (PkBackend *backend, gchar **package_ids)
+-{
+- unsigned int iterator;
+-
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_allow_cancel (backend, FALSE);
+-
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- alpm_list_t *files_list;
+- GString *files_str;
+- gchar *files;
+-
+- pmpkg_t *pkg = pkg_from_package_id (package_ids[iterator]);
+- if (pkg == NULL) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return;
+- }
+-
+- files_list = alpm_pkg_get_files (pkg);
+- files_str = g_string_new ("");
+- if (files_list != NULL) {
+- alpm_list_t *list_iterator;
+-
+- for (list_iterator = files_list; list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- if (list_iterator != files_list)
+- g_string_append (files_str, ";");
+- g_string_append (files_str, alpm_option_get_root ());
+- g_string_append (files_str, (char *) alpm_list_getdata (list_iterator));
+- }
+- }
+- files = g_string_free (files_str, FALSE);
+-
+- pk_backend_files (backend, package_ids[iterator], files);
++ if (force != 0 && g_file_test (file, G_FILE_TEST_EXISTS)) {
++ g_unlink (file);
+ }
+
+- pk_backend_finished (backend);
+-}
+-
+-static void
+-backend_search (PkBackend *backend, pmdb_t *repo, const gchar *needle, PkAlpmSearchType search_type) {
+- /* package cache */
+- alpm_list_t *pkg_cache;
+-
+- /* utility variables */
+- alpm_list_t *iterator;
+- const gchar *repo_name;
+- PkInfoEnum info;
+- gboolean match;
+- gboolean repo_is_local;
+-
+- if (repo == alpm_option_get_localdb ()) {
+- repo_name = ALPM_LOCAL_DB_ALIAS;
+- info = PK_INFO_ENUM_INSTALLED;
+- repo_is_local = TRUE;
+- } else {
+- repo_name = alpm_db_get_name (repo);
+- info = PK_INFO_ENUM_AVAILABLE;
+- repo_is_local = FALSE;
++ tempcmd = g_regex_replace_literal (xo, xfercmd, -1, 0, part, 0, NULL);
++ if (tempcmd == NULL) {
++ result = -1;
++ goto out;
+ }
+
+- /* get package cache for specified repo */
+- pkg_cache = alpm_db_get_pkgcache (repo);
+-
+- /* iterate package cache */
+- for (iterator = pkg_cache; iterator; iterator = alpm_list_next (iterator)) {
+- pmpkg_t *pkg = alpm_list_getdata (iterator);
+-
+- switch (search_type) {
+- alpm_list_t *provides;
+- alpm_list_t *groups;
+-
+- case PK_ALPM_SEARCH_TYPE_NULL:
+- match = TRUE;
+- break;
+- case PK_ALPM_SEARCH_TYPE_RESOLVE:
+- match = g_strcmp0 (alpm_pkg_get_name (pkg), needle) == 0;
+- break;
+- case PK_ALPM_SEARCH_TYPE_NAME:
+- match = strstr (alpm_pkg_get_name (pkg), needle) != NULL;
+- break;
+- case PK_ALPM_SEARCH_TYPE_DETAILS:
+- /* workaround for buggy packages with no description */
+- if (alpm_pkg_get_desc (pkg) == NULL)
+- match = FALSE;
+- else
+- /* TODO: strcasestr is a non-standard extension, replace it? */
+- match = strcasestr (alpm_pkg_get_desc (pkg), needle) != NULL;
+- break;
+- case PK_ALPM_SEARCH_TYPE_GROUP:
+- match = FALSE;
+- /* iterate groups */
+- for (groups = alpm_pkg_get_groups (pkg); groups && !match; groups = alpm_list_next (groups)) {
+- gchar *group = (gchar *) g_hash_table_lookup (group_map, (char *) alpm_list_getdata (groups));
+- if (group == NULL)
+- group = (gchar *) "other";
+- match = (g_strcmp0 (group, needle) == 0);
+- }
+- break;
+- case PK_ALPM_SEARCH_TYPE_PROVIDES:
+- match = FALSE;
+- /* iterate provides */
+- for (provides = alpm_pkg_get_provides (pkg); provides && !match; provides = alpm_list_next (provides))
+- match = (g_strcmp0 (needle, alpm_list_getdata (provides)) == 0);
+- break;
+- default:
+- match = FALSE;
+- }
++ finalcmd = g_regex_replace_literal (xi, tempcmd, -1, 0, url, 0, NULL);
++ if (finalcmd == NULL) {
++ result = -1;
++ goto out;
++ }
+
+- if (match && (repo_is_local || pkg_cmp (pkg, alpm_db_get_pkg (alpm_option_get_localdb (), alpm_pkg_get_name (pkg))) != 0)) {
+- /* we found what we wanted */
+- emit_package (backend, pkg, repo_name, info);
++ if (!pk_backend_spawn (backend, finalcmd)) {
++ result = -1;
++ goto out;
++ } else if (g_strrstr (xfercmd, "%o") != NULL) {
++ /* using .part filename */
++ if (g_rename (part, file) < 0) {
++ g_warning ("could not rename %s", part);
++ result = -1;
++ goto out;
+ }
+ }
+-}
+
+-/**
+- * backend_search_values:
+- */
+-static void
+-backend_search_values (PkBackend *backend, pmdb_t *repo, gchar **values, PkAlpmSearchType search_type) {
+- unsigned int iterator;
++out:
++ g_free (finalcmd);
++ g_free (tempcmd);
+
+- for (iterator = 0; iterator < g_strv_length (values); ++iterator)
+- backend_search (backend, repo, values[iterator], search_type);
+-}
+-
+-/**
+- * backend_get_packages_thread:
+- */
+-static gboolean
+-backend_get_packages_thread (PkBackend *backend)
+-{
+- PkBitfield filters = pk_backend_get_uint (backend, "filters");
+-
+- gboolean search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+- gboolean search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
++ g_free (part);
++ g_free (file);
++ g_free (basename);
+
+- if (!search_not_installed) {
+- /* search in local db */
+- backend_search (backend, alpm_option_get_localdb (), NULL, PK_ALPM_SEARCH_TYPE_NULL);
+- }
+-
+- if (!search_installed) {
+- /* search in sync repos */
+- alpm_list_t *repos;
+- /* iterate repos */
+- for (repos = alpm_option_get_syncdbs (); repos; repos = alpm_list_next (repos))
+- backend_search (backend, alpm_list_getdata (repos), NULL, PK_ALPM_SEARCH_TYPE_NULL);
+- }
++ g_regex_unref (xi);
++ g_regex_unref (xo);
+
+- pk_backend_finished (backend);
+- return TRUE;
+-}
++ g_chdir (oldpwd);
++ g_free (oldpwd);
+
+-/**
+- * backend_get_packages:
+- */
+-static void
+-backend_get_packages (PkBackend *backend, PkBitfield filters)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+-
+- pk_backend_thread_create (backend, backend_get_packages_thread);
++ return result;
+ }
+
+-/**
+- * backend_get_repo_list:
+- */
+ static void
+-backend_get_repo_list (PkBackend *backend, PkBitfield filters)
++pk_backend_logcb (pmloglevel_t level, const gchar *format, va_list args)
+ {
+- alpm_list_t *list_iterator;
+-
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
++ gchar *output;
+
+- /* iterate on repo list */
+- for (list_iterator = alpm_option_get_syncdbs (); list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- pmdb_t *db = alpm_list_getdata (list_iterator);
++ g_return_if_fail (backend != NULL);
+
+- pk_backend_repo_detail (backend, alpm_db_get_name (db), alpm_db_get_name (db), TRUE);
++ if (format != NULL && format[0] != '\0') {
++ output = g_strdup_vprintf (format, args);
++ } else {
++ return;
+ }
+
+- pk_backend_finished (backend);
+-}
+-
+-/**
+- * backend_get_update_detail:
+- */
+-static void
+-backend_get_update_detail (PkBackend *backend, gchar **package_ids)
+-{
+- unsigned int iterator;
+-
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_allow_cancel (backend, FALSE);
+-
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- /* TODO: add changelog code here */
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
+-
+- pmpkg_t *installed_pkg = alpm_db_get_pkg (alpm_option_get_localdb (), package_id_data[PK_PACKAGE_ID_NAME]);
++ /* report important output to PackageKit */
++ switch (level) {
++ case PM_LOG_DEBUG:
++ case PM_LOG_FUNCTION:
++ g_debug ("%s", output);
++ break;
+
+- gchar *installed_package_id = installed_pkg ? pkg_to_package_id_str (installed_pkg, ALPM_LOCAL_DB_ALIAS) : NULL;
+- pk_backend_update_detail (backend, package_ids[iterator], installed_package_id, "", "", "", "", PK_RESTART_ENUM_NONE,
+- installed_pkg ? "Update to latest available version" : "Install as a dependency for another update",
+- NULL, PK_UPDATE_STATE_ENUM_UNKNOWN, NULL, NULL);
+- g_free (installed_package_id);
++ case PM_LOG_WARNING:
++ g_warning ("%s", output);
++ pk_backend_output (backend, output);
++ break;
+
+- g_strfreev (package_id_data);
++ default:
++ g_warning ("%s", output);
++ break;
+ }
+
+- pk_backend_finished (backend);
++ g_free (output);
+ }
+
+-/**
+- * backend_get_updates:
+- */
+-static void
+-backend_get_updates (PkBackend *backend, PkBitfield filters)
++static gboolean
++pk_backend_initialize_alpm (PkBackend *self, GError **error)
+ {
+- alpm_list_t *list_iterator;
+-
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_allow_cancel (backend, FALSE);
+-
+- /* iterate through list of installed packages to find update for each */
+- for (list_iterator = alpm_db_get_pkgcache (alpm_option_get_localdb ()); list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- alpm_list_t *db_iterator;
+-
+- pmpkg_t *pkg = alpm_list_getdata (list_iterator);
++ struct utsname un;
++ gchar *user_agent;
+
+- for (db_iterator = alpm_option_get_syncdbs (); db_iterator; db_iterator = alpm_list_next (db_iterator)) {
+- pmdb_t *db = alpm_list_getdata (db_iterator);
+- pmpkg_t *repo_pkg = alpm_db_get_pkg (db, alpm_pkg_get_name (pkg));
++ g_return_val_if_fail (self != NULL, FALSE);
+
+- if (repo_pkg != NULL && alpm_pkg_vercmp (alpm_pkg_get_version (pkg), alpm_pkg_get_version (repo_pkg)) < 0) {
+- gchar *package_id_str = pkg_to_package_id_str (repo_pkg, alpm_db_get_name (db));
+- pk_backend_package (backend, PK_INFO_ENUM_NORMAL, package_id_str, alpm_pkg_get_desc (repo_pkg));
+- g_free (package_id_str);
++ /* PATH might have been nuked by D-Bus */
++ g_setenv ("PATH", PK_BACKEND_DEFAULT_PATH, FALSE);
+
+- break;
+- }
+- }
+- }
+-
+- pk_backend_finished (backend);
+-}
++ uname (&un);
++ user_agent = g_strdup_printf ("%s/%s (%s %s) libalpm/%s",
++ PACKAGE_TARNAME, PACKAGE_VERSION,
++ un.sysname, un.machine, alpm_version ());
++ g_setenv ("HTTP_USER_AGENT", user_agent, FALSE);
++ g_free (user_agent);
+
+-/**
+- * backend_install_files_thread:
+- */
+-static gboolean
+-backend_install_files_thread (PkBackend *backend)
+-{
+- unsigned int iterator;
+- alpm_list_t *data = NULL;
+-
+- gchar **full_paths = pk_backend_get_strv (backend, "full_paths");
+-
+- /* create a new transaction */
+- if (alpm_trans_init (0, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- pk_backend_finished (backend);
++ g_debug ("initializing");
++ if (alpm_initialize () < 0) {
++ g_set_error_literal (error, ALPM_ERROR, pm_errno,
++ alpm_strerrorlast ());
+ return FALSE;
+ }
+
+- /* add targets to the transaction */
+- for (iterator = 0; iterator < g_strv_length (full_paths); ++iterator) {
+- if (alpm_add_target (full_paths[iterator]) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
+- } else
+- g_debug ("alpm: %s added to transaction queue", full_paths[iterator]);
+- }
+-
+- /* prepare and commit transaction */
+- if (alpm_trans_prepare (&data) != 0 || alpm_trans_commit (&data) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
++ backend = self;
++ localdb = alpm_option_get_localdb ();
++ if (localdb == NULL) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s", "local",
++ alpm_strerrorlast ());
+ }
+
+- alpm_trans_release ();
++ /* set some sane defaults */
++ alpm_option_set_logcb (pk_backend_logcb);
++ alpm_option_set_root (PK_BACKEND_DEFAULT_ROOT);
++ alpm_option_set_dbpath (PK_BACKEND_DEFAULT_DBPATH);
++ alpm_option_set_logfile (PK_BACKEND_DEFAULT_LOGFILE);
+
+- pk_backend_finished (backend);
+ return TRUE;
+ }
+
+-/**
+- * backend_install_files:
+- */
+ static void
+-backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_paths)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_INSTALL);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+-
+- pk_backend_thread_create (backend, backend_install_files_thread);
+-}
+-
+-/**
+- * backend_install_packages_thread:
+- */
+-static gboolean
+-backend_install_packages_thread (PkBackend *backend)
++pk_backend_destroy_alpm (PkBackend *self)
+ {
+- unsigned int iterator;
+- alpm_list_t *data = NULL;
+-
+- /* FIXME: support only_trusted */
+- gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
+-
+- /* create a new transaction */
+- if (alpm_trans_init (0, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return FALSE;
+- }
+-
+- /* add targets to the transaction */
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
++ g_return_if_fail (self != NULL);
+
+- if (alpm_sync_target (package_id_data[PK_PACKAGE_ID_NAME]) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
++ if (backend != NULL) {
++ if (alpm_trans_get_flags () != -1) {
+ alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
+ }
+-
+- g_strfreev (package_id_data);
+- }
+-
+- /* prepare and commit transaction */
+- if (alpm_trans_prepare (&data) != 0 || alpm_trans_commit (&data) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
++ alpm_release ();
++ backend = NULL;
+ }
+
+- alpm_trans_release ();
+-
+- pk_backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_install_packages:
+- */
+-static void
+-backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+-{
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+-
+- pk_backend_thread_create (backend, backend_install_packages_thread);
++ FREELIST (syncfirsts);
++ FREELIST (holdpkgs);
++ g_free (xfercmd);
+ }
+
+-/**
+- * backend_refresh_cache_thread:
+- */
+-static gboolean
+-backend_refresh_cache_thread (PkBackend *backend)
++void
++pk_backend_initialize (PkBackend *self)
+ {
+- alpm_list_t *list_iterator;
++ GError *error = NULL;
+
+- if (alpm_trans_init (PM_TRANS_FLAG_NOSCRIPTLET, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return FALSE;
+- }
++ g_return_if_fail (self != NULL);
+
+- for (list_iterator = alpm_option_get_syncdbs (); list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- pmdb_t *db = (pmdb_t *) alpm_list_getdata (list_iterator);
+- if (alpm_db_update (FALSE, db) == -1) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return FALSE;
+- }
++ if (!pk_backend_initialize_alpm (self, &error) ||
++ !pk_backend_initialize_databases (self, &error) ||
++ !pk_backend_initialize_groups (self, &error)) {
++ g_error ("%s", error->message);
++ g_error_free (error);
+ }
+-
+- alpm_trans_release ();
+-
+- pk_backend_finished (backend);
+- return TRUE;
+ }
+
+-/**
+- * backend_refresh_cache:
+- */
+-static void
+-backend_refresh_cache (PkBackend *backend, gboolean force)
++void
++pk_backend_destroy (PkBackend *self)
+ {
+- if (!pk_backend_is_online (backend)) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_NO_NETWORK, "Can not refresh cache in offline mode");
+- pk_backend_finished (backend);
+- return;
+- }
+-
+- pk_backend_set_status (backend, PK_STATUS_ENUM_REFRESH_CACHE);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
++ g_return_if_fail (self != NULL);
+
+- pk_backend_thread_create (backend, backend_refresh_cache_thread);
++ pk_backend_destroy_groups (self);
++ pk_backend_destroy_databases (self);
++ pk_backend_destroy_alpm (self);
+ }
+
+-/**
+- * backend_remove_packages_thread:
+- */
+-static gboolean
+-backend_remove_packages_thread (PkBackend *backend)
++PkBitfield
++pk_backend_get_filters (PkBackend *self)
+ {
+- unsigned int iterator;
+- alpm_list_t *list_iterator = NULL;
+- alpm_list_t *data = NULL;
+- gchar *holdpkgs = NULL;
+-
+- gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
+- gboolean allow_deps = pk_backend_get_bool (backend, "allow_deps");
+- gboolean autoremove = pk_backend_get_bool (backend, "autoremove");
+-
+- pmtransflag_t flags = 0;
+- if (allow_deps)
+- flags |= PM_TRANS_FLAG_CASCADE;
+- if (autoremove)
+- flags |= PM_TRANS_FLAG_RECURSE;
+-
+- /* create a new transaction */
+- if (alpm_trans_init (flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return FALSE;
+- }
+-
+- /* add targets to the transaction */
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
+-
+- if (alpm_remove_target (package_id_data[PK_PACKAGE_ID_NAME]) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
+- }
+-
+- g_strfreev (package_id_data);
+- }
+-
+- /* prepare transaction */
+- if (alpm_trans_prepare (&data) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
+- }
++ g_return_val_if_fail (self != NULL, 0);
+
+- /* search for HoldPkg's in target list */
+- for (list_iterator = alpm_trans_get_remove (); list_iterator; list_iterator = alpm_list_next (list_iterator)) {
+- pmpkg_t *pkg = alpm_list_getdata (list_iterator);
+- const gchar *pkgname = alpm_pkg_get_name (pkg);
+-
+- if (alpm_list_find_str (holdpkg, pkgname) != NULL) {
+- if (holdpkgs == NULL)
+- holdpkgs = g_strdup (pkgname);
+- else {
+- gchar *new_holdpkgs = g_strdup_printf ("%s, %s", holdpkgs, pkgname);
+- g_free (holdpkgs);
+- holdpkgs = new_holdpkgs;
+- }
+- }
+- }
+-
+- /* pacman just asks for confirmation, but here we fail to be safe */
+- if (holdpkgs != NULL) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE, "The following packages are designated HoldPkg: %s", holdpkgs);
+- free (holdpkgs);
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
+- }
+-
+- /* commit transaction */
+- if (alpm_trans_commit (&data) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
+- }
+-
+- alpm_trans_release ();
+-
+- pk_backend_finished (backend);
+- return TRUE;
++ return pk_bitfield_from_enums (PK_FILTER_ENUM_INSTALLED, -1);
+ }
+
+-/**
+- * backend_remove_packages:
+- */
+-static void
+-backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
++gchar *
++pk_backend_get_mime_types (PkBackend *self)
+ {
+- pk_backend_set_status (backend, PK_STATUS_ENUM_REMOVE);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
++ g_return_val_if_fail (self != NULL, NULL);
+
+- pk_backend_thread_create (backend, backend_remove_packages_thread);
++ /* packages currently use .pkg.tar.gz and .pkg.tar.xz */
++ return g_strdup ("application/x-compressed-tar;"
++ "application/x-xz-compressed-tar");
+ }
+
+-/**
+- * backend_resolve_thread:
+- */
+-static gboolean
+-backend_resolve_thread (PkBackend *backend)
++void
++pk_backend_run (PkBackend *self, PkStatusEnum status, PkBackendThreadFunc func)
+ {
+- unsigned int iterator;
+-
+- gchar **package_ids = pk_backend_get_strv (backend, "package_ids");
+- PkBitfield filters = pk_backend_get_uint (backend, "filters");
+-
+- gboolean search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+- gboolean search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
+-
+- for (iterator = 0; iterator < g_strv_length (package_ids); ++iterator) {
+- if (pk_package_id_check (package_ids[iterator])) {
+- /* skip all the db iterations and so on - we already know everything */
+- pmpkg_t *pkg = pkg_from_package_id (package_ids[iterator]);
+-
+- if (pkg != NULL) {
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
+-
+- if (!search_not_installed && g_strcmp0 (package_id_data[PK_PACKAGE_ID_DATA], ALPM_LOCAL_DB_ALIAS) == 0)
+- emit_package (backend, pkg, ALPM_LOCAL_DB_ALIAS, PK_INFO_ENUM_INSTALLED);
+-
+- if (!search_installed && g_strcmp0 (package_id_data[PK_PACKAGE_ID_DATA], ALPM_LOCAL_DB_ALIAS) != 0)
+- emit_package (backend, pkg, package_id_data[PK_PACKAGE_ID_DATA], PK_INFO_ENUM_INSTALLED);
+-
+- g_strfreev (package_id_data);
+- }
+- } else {
+- /* good old way with backend_search */
+- /* TODO: check, is it still needed? */
+- if (!search_not_installed) {
+- /* search in local db */
+- backend_search (backend, alpm_option_get_localdb (), package_ids[iterator], PK_ALPM_SEARCH_TYPE_RESOLVE);
+- }
+-
+- if (!search_installed) {
+- /* search in sync repos */
+- alpm_list_t *repos;
+- /* iterate repos */
+- for (repos = alpm_option_get_syncdbs (); repos; repos = alpm_list_next (repos))
+- backend_search (backend, alpm_list_getdata (repos), package_ids[iterator], PK_ALPM_SEARCH_TYPE_RESOLVE);
+- }
+- }
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (func != NULL);
++
++ g_static_mutex_lock (&mutex);
++
++ if (cancellable != NULL) {
++ g_warning ("cancellable was not NULL");
++ g_object_unref (cancellable);
+ }
++ cancellable = g_cancellable_new ();
+
+- pk_backend_finished (backend);
+- return TRUE;
+-}
++ g_static_mutex_unlock (&mutex);
+
+-/**
+- * backend_resolve:
+- */
+-static void
+-backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
++ pk_backend_set_allow_cancel (self, TRUE);
+
+- pk_backend_thread_create (backend, backend_resolve_thread);
++ pk_backend_set_status (self, status);
++ pk_backend_thread_create (self, func);
+ }
+
+-/**
+- * backend_search_thread:
+- */
+-static gboolean
+-backend_search_thread (PkBackend *backend)
++void
++pk_backend_cancel (PkBackend *self)
+ {
+- gchar **values = pk_backend_get_strv (backend, "values");
+- PkBitfield filters = pk_backend_get_uint (backend, "filters");
+- PkAlpmSearchType search_type = pk_backend_get_uint (backend, "search-type");
+-
+- gboolean search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+- gboolean search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
++ g_return_if_fail (self != NULL);
+
+- if (!search_not_installed) {
+- /* search in local db */
+- backend_search_values (backend, alpm_option_get_localdb (), values, search_type);
+- }
++ g_static_mutex_lock (&mutex);
+
+- if (!search_installed) {
+- /* search in sync repos */
+- alpm_list_t *repos;
+- /* iterate repos */
+- for (repos = alpm_option_get_syncdbs (); repos; repos = alpm_list_next (repos))
+- backend_search_values (backend, alpm_list_getdata (repos), values, search_type);
++ if (cancellable != NULL) {
++ g_cancellable_cancel (cancellable);
+ }
+
+- pk_backend_finished (backend);
+- return TRUE;
++ g_static_mutex_unlock (&mutex);
+ }
+
+-/**
+- * backend_search_details:
+- */
+-static void
+-backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
++gboolean
++pk_backend_cancelled (PkBackend *self)
+ {
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+- pk_backend_set_uint (backend, "search-type", PK_ALPM_SEARCH_TYPE_DETAILS);
+- pk_backend_set_strv (backend, "values", values);
++ gboolean cancelled;
+
+- pk_backend_thread_create (backend, backend_search_thread);
+-}
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (cancellable != NULL, FALSE);
+
+-/**
+- * backend_search_groups:
+- */
+-static void
+-backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+- pk_backend_set_uint (backend, "search-type", PK_ALPM_SEARCH_TYPE_GROUP);
+- pk_backend_set_strv (backend, "values", values);
++ g_static_mutex_lock (&mutex);
+
+- pk_backend_thread_create (backend, backend_search_thread);
+-}
++ cancelled = g_cancellable_is_cancelled (cancellable);
+
+-/**
+- * backend_search_names:
+- */
+-static void
+-backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+- pk_backend_set_uint (backend, "search-type", PK_ALPM_SEARCH_TYPE_NAME);
+- pk_backend_set_strv (backend, "values", values);
++ g_static_mutex_unlock (&mutex);
+
+- pk_backend_thread_create (backend, backend_search_thread);
++ return cancelled;
+ }
+
+-/**
+- * backend_update_packages:
+- */
+-static void
+-backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
++gboolean
++pk_backend_finish (PkBackend *self, GError *error)
+ {
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
++ gboolean cancelled = FALSE;
+
+- pk_backend_thread_create (backend, backend_install_packages_thread);
+-}
++ g_return_val_if_fail (self != NULL, FALSE);
+
+-/**
+- * backend_update_system_thread:
+- */
+-static gboolean
+-backend_update_system_thread (PkBackend *backend)
+-{
+- alpm_list_t *data = NULL;
+-
+- /* FIXME: support only_trusted */
++ pk_backend_set_allow_cancel (self, FALSE);
+
+- /* create a new transaction */
+- if (alpm_trans_init (0, cb_trans_evt, cb_trans_conv, cb_trans_progress) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- pk_backend_finished (backend);
+- return FALSE;
+- }
++ g_static_mutex_lock (&mutex);
+
+- /* set action, prepare and commit transaction */
+- if (alpm_sync_sysupgrade (FALSE) != 0 || alpm_trans_prepare (&data) != 0 || alpm_trans_commit (&data) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, alpm_strerrorlast ());
+- alpm_trans_release ();
+- pk_backend_finished (backend);
+- return FALSE;
++ if (cancellable != NULL) {
++ cancelled = g_cancellable_is_cancelled (cancellable);
++ g_object_unref (cancellable);
++ cancellable = NULL;
+ }
+
+- alpm_trans_release ();
++ g_static_mutex_unlock (&mutex);
+
+- pk_backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_update_system:
+- */
+-static void
+-backend_update_system (PkBackend *backend, gboolean only_trusted)
+-{
+- pk_backend_thread_create (backend, backend_update_system_thread);
+-}
++ if (error != NULL) {
++ pk_backend_error (self, error);
++ g_error_free (error);
++ }
+
+-/**
+- * backend_what_provides:
+- */
+-static void
+-backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **values)
+-{
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+- pk_backend_set_uint (backend, "search-type", PK_ALPM_SEARCH_TYPE_PROVIDES);
+- pk_backend_set_strv (backend, "values", values);
++ if (cancelled) {
++ pk_backend_set_status (self, PK_STATUS_ENUM_CANCEL);
++ }
+
+- pk_backend_thread_create (backend, backend_search_thread);
++ pk_backend_thread_finished (self);
++ return (error == NULL);
+ }
+-
+-/* FIXME: port this away from PK_BACKEND_OPTIONS */
+-PK_BACKEND_OPTIONS (
+- "alpm", /* description */
+- "Valeriy Lyasotskiy <onestep@ukr.net>", /* author */
+- backend_initialize, /* initialize */
+- backend_destroy, /* destroy */
+- backend_get_groups, /* get_groups */
+- backend_get_filters, /* get_filters */
+- NULL, /* get_roles */
+- backend_get_mime_types, /* get_mime_types */
+- backend_cancel, /* cancel */
+- backend_download_packages, /* download_packages */
+- NULL, /* get_categories */
+- backend_get_depends, /* get_depends */
+- backend_get_details, /* get_details */
+- NULL, /* get_distro_upgrades */
+- backend_get_files, /* get_files */
+- backend_get_packages, /* get_packages */
+- backend_get_repo_list, /* get_repo_list */
+- NULL, /* get_requires */
+- backend_get_update_detail, /* get_update_detail */
+- backend_get_updates, /* get_updates */
+- backend_install_files, /* install_files */
+- backend_install_packages, /* install_packages */
+- NULL, /* install_signature */
+- backend_refresh_cache, /* refresh_cache */
+- backend_remove_packages, /* remove_packages */
+- NULL, /* repo_enable */
+- NULL, /* repo_set_data */
+- backend_resolve, /* resolve */
+- NULL, /* rollback */
+- backend_search_details, /* search_details */
+- NULL, /* search_files */
+- backend_search_groups, /* search_groups */
+- backend_search_names, /* search_names */
+- backend_update_packages, /* update_packages */
+- backend_update_system, /* update_system */
+- backend_what_provides, /* what_provides */
+- NULL, /* simulate_install_files */
+- NULL, /* simulate_install_packages */
+- NULL, /* simulate_remove_packages */
+- NULL, /* simulate_update_packages */
+- NULL, /* upgrade_system */
+- NULL, /* transaction_start */
+- NULL /* transaction_stop */
+-);
+diff --git a/backends/alpm/pk-backend-alpm.h b/backends/alpm/pk-backend-alpm.h
+new file mode 100644
+index 0000000..23a2724
+--- /dev/null
++++ b/backends/alpm/pk-backend-alpm.h
+@@ -0,0 +1,47 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <gio/gio.h>
++#include <pk-backend.h>
++
++extern PkBackend *backend;
++extern GCancellable *cancellable;
++
++extern pmdb_t *localdb;
++
++extern gchar *xfercmd;
++extern alpm_list_t *holdpkgs;
++extern alpm_list_t *syncfirsts;
++
++gint pk_backend_fetchcb (const gchar *url, const gchar *path,
++ gint force);
++
++void pk_backend_run (PkBackend *self, PkStatusEnum status,
++ PkBackendThreadFunc func);
++
++void pk_backend_cancel (PkBackend *self);
++
++gboolean pk_backend_cancelled (PkBackend *self);
++
++gboolean pk_backend_finish (PkBackend *self, GError *error);
+diff --git a/backends/alpm/pk-backend-config.c b/backends/alpm/pk-backend-config.c
+new file mode 100644
+index 0000000..21a4c54
+--- /dev/null
++++ b/backends/alpm/pk-backend-config.c
+@@ -0,0 +1,775 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <glob.h>
++#include <string.h>
++#include <sys/utsname.h>
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-config.h"
++#include "pk-backend-error.h"
++
++typedef struct {
++ gboolean checkspace, ilovecandy, showsize, totaldl, usedelta, usesyslog;
++
++ gchar *arch, *cleanmethod, *dbpath, *logfile, *root, *xfercmd;
++
++ alpm_list_t *cachedirs, *holdpkgs, *ignoregrps, *ignorepkgs,
++ *noextracts, *noupgrades, *syncfirsts;
++
++ alpm_list_t *repos;
++ GHashTable *servers;
++ GRegex *xrepo, *xarch;
++} PkBackendConfig;
++
++static PkBackendConfig *
++pk_backend_config_new (void)
++{
++ PkBackendConfig *config = g_new0 (PkBackendConfig, 1);
++ config->servers = g_hash_table_new_full (g_str_hash, g_str_equal,
++ g_free, NULL);
++ config->xrepo = g_regex_new ("\\$repo", 0, 0, NULL);
++ config->xarch = g_regex_new ("\\$arch", 0, 0, NULL);
++ return config;
++}
++
++static void
++pk_backend_config_list_free (alpm_list_t *list)
++{
++ alpm_list_free_inner (list, g_free);
++ alpm_list_free (list);
++}
++
++static gboolean
++pk_backend_config_servers_free (gpointer repo, gpointer list, gpointer data)
++{
++ pk_backend_config_list_free ((alpm_list_t *) list);
++ return TRUE;
++}
++
++static void
++pk_backend_config_free (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ g_free (config->arch);
++ g_free (config->cleanmethod);
++ g_free (config->dbpath);
++ g_free (config->logfile);
++ g_free (config->root);
++ g_free (config->xfercmd);
++
++ FREELIST (config->cachedirs);
++ FREELIST (config->holdpkgs);
++ FREELIST (config->ignoregrps);
++ FREELIST (config->ignorepkgs);
++ FREELIST (config->noextracts);
++ FREELIST (config->noupgrades);
++ FREELIST (config->syncfirsts);
++
++ pk_backend_config_list_free (config->repos);
++ g_hash_table_foreach_remove (config->servers,
++ pk_backend_config_servers_free, NULL);
++ g_hash_table_unref (config->servers);
++ g_regex_unref (config->xrepo);
++ g_regex_unref (config->xarch);
++}
++
++static void
++pk_backend_config_set_checkspace (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->checkspace = TRUE;
++}
++
++static void
++pk_backend_config_set_ilovecandy (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->ilovecandy = TRUE;
++}
++
++static void
++pk_backend_config_set_showsize (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->showsize = TRUE;
++}
++
++static void
++pk_backend_config_set_totaldl (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->totaldl = TRUE;
++}
++
++static void
++pk_backend_config_set_usedelta (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->usedelta = TRUE;
++}
++
++static void
++pk_backend_config_set_usesyslog (PkBackendConfig *config)
++{
++ g_return_if_fail (config != NULL);
++
++ config->usesyslog = TRUE;
++}
++
++typedef struct {
++ const gchar *name;
++ void (*func) (PkBackendConfig *config);
++} PkBackendConfigBoolean;
++
++/* keep this in alphabetical order */
++static const PkBackendConfigBoolean pk_backend_config_boolean_options[] = {
++ { "CheckSpace", pk_backend_config_set_checkspace },
++ { "ILoveCandy", pk_backend_config_set_ilovecandy },
++ { "ShowSize", pk_backend_config_set_showsize },
++ { "TotalDownload", pk_backend_config_set_totaldl },
++ { "UseDelta", pk_backend_config_set_usedelta },
++ { "UseSyslog", pk_backend_config_set_usesyslog },
++ { NULL, NULL }
++};
++
++static gboolean
++pk_backend_config_set_boolean (PkBackendConfig *config, const gchar *option)
++{
++ gsize i;
++
++ g_return_val_if_fail (config != NULL, FALSE);
++ g_return_val_if_fail (option != NULL, FALSE);
++
++ for (i = 0;; ++i) {
++ const gchar *name = pk_backend_config_boolean_options[i].name;
++ gint cmp = g_strcmp0 (option, name);
++
++ if (name == NULL || cmp < 0) {
++ return FALSE;
++ } else if (cmp == 0) {
++ pk_backend_config_boolean_options[i].func (config);
++ return TRUE;
++ }
++ }
++}
++
++static void
++pk_backend_config_add_cachedir (PkBackendConfig *config, const gchar *path)
++{
++ gsize length;
++ gchar *cachedir;
++
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (path != NULL);
++
++ /* allocate normally */
++ length = strlen (path) + 1;
++ cachedir = malloc (length * sizeof (gchar));
++ g_strlcpy (cachedir, path, length);
++ config->cachedirs = alpm_list_add (config->cachedirs, cachedir);
++}
++
++static void
++pk_backend_config_set_arch (PkBackendConfig *config, const gchar *arch)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (arch != NULL);
++
++ g_free (config->arch);
++ if (g_strcmp0 (arch, "auto") == 0) {
++ struct utsname un;
++ uname (&un);
++ config->arch = g_strdup (un.machine);
++ } else {
++ config->arch = g_strdup (arch);
++ }
++}
++
++static void
++pk_backend_config_set_cleanmethod (PkBackendConfig *config, const gchar *method)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (method != NULL);
++
++ g_free (config->cleanmethod);
++ config->cleanmethod = g_strdup (method);
++}
++
++static void
++pk_backend_config_set_dbpath (PkBackendConfig *config, const gchar *path)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (path != NULL);
++
++ g_free (config->dbpath);
++ config->dbpath = g_strdup (path);
++}
++
++static void
++pk_backend_config_set_logfile (PkBackendConfig *config, const gchar *filename)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (filename != NULL);
++
++ g_free (config->logfile);
++ config->logfile = g_strdup (filename);
++}
++
++static void
++pk_backend_config_set_root (PkBackendConfig *config, const gchar *path)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (path != NULL);
++
++ g_free (config->root);
++ config->root = g_strdup (path);
++}
++
++static void
++pk_backend_config_set_xfercmd (PkBackendConfig *config, const gchar *command)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (command != NULL);
++
++ g_free (config->xfercmd);
++ config->xfercmd = g_strdup (command);
++}
++
++typedef struct {
++ const gchar *name;
++ void (*func) (PkBackendConfig *config, const gchar *s);
++} PkBackendConfigString;
++
++/* keep this in alphabetical order */
++static const PkBackendConfigString pk_backend_config_string_options[] = {
++ { "Architecture", pk_backend_config_set_arch },
++ { "CacheDir", pk_backend_config_add_cachedir },
++ { "CleanMethod", pk_backend_config_set_cleanmethod },
++ { "DBPath", pk_backend_config_set_dbpath },
++ { "LogFile", pk_backend_config_set_logfile },
++ { "RootDir", pk_backend_config_set_root },
++ { "XferCommand", pk_backend_config_set_xfercmd },
++ { NULL, NULL }
++};
++
++static gboolean
++pk_backend_config_set_string (PkBackendConfig *config, const gchar *option,
++ const gchar *s)
++{
++ gsize i;
++
++ g_return_val_if_fail (config != NULL, FALSE);
++ g_return_val_if_fail (option != NULL, FALSE);
++ g_return_val_if_fail (s != NULL, FALSE);
++
++ for (i = 0;; ++i) {
++ const gchar *name = pk_backend_config_string_options[i].name;
++ gint cmp = g_strcmp0 (option, name);
++
++ if (name == NULL || cmp < 0) {
++ return FALSE;
++ } else if (cmp == 0) {
++ pk_backend_config_string_options[i].func (config, s);
++ return TRUE;
++ }
++ }
++}
++
++static void
++pk_backend_config_add_holdpkg (PkBackendConfig *config, gchar *package)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (package != NULL);
++
++ config->holdpkgs = alpm_list_add (config->holdpkgs, package);
++}
++
++static void
++pk_backend_config_add_ignoregrp (PkBackendConfig *config, gchar *group)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (group != NULL);
++
++ config->ignoregrps = alpm_list_add (config->ignoregrps, group);
++}
++
++static void
++pk_backend_config_add_ignorepkg (PkBackendConfig *config, gchar *package)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (package != NULL);
++
++ config->ignorepkgs = alpm_list_add (config->ignorepkgs, package);
++}
++
++static void
++pk_backend_config_add_noextract (PkBackendConfig *config, gchar *filename)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (filename != NULL);
++
++ config->noextracts = alpm_list_add (config->noextracts, filename);
++}
++
++static void
++pk_backend_config_add_noupgrade (PkBackendConfig *config, gchar *filename)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (filename != NULL);
++
++ config->noupgrades = alpm_list_add (config->noupgrades, filename);
++}
++
++static void
++pk_backend_config_add_syncfirst (PkBackendConfig *config, gchar *package)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (package != NULL);
++
++ config->syncfirsts = alpm_list_add (config->syncfirsts, package);
++}
++
++typedef struct {
++ const gchar *name;
++ void (*func) (PkBackendConfig *config, gchar *value);
++} PkBackendConfigList;
++
++/* keep this in alphabetical order */
++static const PkBackendConfigList pk_backend_config_list_options[] = {
++ { "HoldPkg", pk_backend_config_add_holdpkg },
++ { "IgnoreGroup", pk_backend_config_add_ignoregrp },
++ { "IgnorePkg", pk_backend_config_add_ignorepkg },
++ { "NoExtract", pk_backend_config_add_noextract },
++ { "NoUpgrade", pk_backend_config_add_noupgrade },
++ { "SyncFirst", pk_backend_config_add_syncfirst },
++ { NULL, NULL }
++};
++
++static void
++pk_backend_config_list_add (PkBackendConfig *config, gsize option,
++ const gchar *list)
++{
++ gchar *str;
++
++ for (str = strchr (list, ' '); str != NULL; str = strchr (list, ' ')) {
++ /* allocate normally */
++ gchar *value = malloc ((++str - list) * sizeof (gchar));
++ g_strlcpy (value, list, str - list);
++ pk_backend_config_list_options[option].func (config, value);
++ list = str;
++ }
++ pk_backend_config_list_options[option].func (config, strdup (list));
++}
++
++static gboolean
++pk_backend_config_set_list (PkBackendConfig *config, const gchar *option,
++ const gchar *list)
++{
++ gsize i;
++
++ g_return_val_if_fail (config != NULL, FALSE);
++ g_return_val_if_fail (option != NULL, FALSE);
++ g_return_val_if_fail (list != NULL, FALSE);
++
++ for (i = 0;; ++i) {
++ const gchar *name = pk_backend_config_list_options[i].name;
++ gint cmp = g_strcmp0 (option, name);
++
++ if (name == NULL || cmp < 0) {
++ return FALSE;
++ } else if (cmp == 0) {
++ pk_backend_config_list_add (config, i, list);
++ return TRUE;
++ }
++ }
++}
++
++static void
++pk_backend_config_add_repo (PkBackendConfig *config, const gchar *repo)
++{
++ g_return_if_fail (config != NULL);
++ g_return_if_fail (repo != NULL);
++
++ if (alpm_list_find_str (config->repos, repo) == NULL) {
++ config->repos = alpm_list_add (config->repos, g_strdup (repo));
++ }
++}
++
++static gboolean
++pk_backend_config_repo_add_server (PkBackendConfig *config, const gchar *repo,
++ const gchar *value, GError **e)
++{
++ alpm_list_t *list;
++ gchar *url;
++
++ g_return_val_if_fail (config != NULL, FALSE);
++ g_return_val_if_fail (repo != NULL, FALSE);
++ g_return_val_if_fail (alpm_list_find_str (config->repos, repo) != NULL,
++ FALSE);
++ g_return_val_if_fail (value != NULL, FALSE);
++
++ url = g_regex_replace_literal (config->xrepo, value, -1, 0, repo, 0, e);
++ if (url == NULL) {
++ return FALSE;
++ }
++
++ if (config->arch != NULL) {
++ gchar *temp = url;
++ url = g_regex_replace_literal (config->xarch, temp, -1, 0,
++ config->arch, 0, e);
++ g_free (temp);
++
++ if (url == NULL) {
++ return FALSE;
++ }
++ } else if (strstr (url, "$arch") != NULL) {
++ g_set_error (e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
++ "url contained $arch, which is not set");
++ }
++
++ list = (alpm_list_t *) g_hash_table_lookup (config->servers, repo);
++ list = alpm_list_add (list, url);
++ g_hash_table_insert (config->servers, g_strdup (repo), list);
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_config_parse (PkBackendConfig *config, const gchar *filename,
++ gchar *section, GError **error)
++{
++ GFile *file;
++ GFileInputStream *is;
++ GDataInputStream *input;
++
++ gchar *key, *str, *line = NULL;
++ guint num = 1;
++
++ GError *e = NULL;
++
++ g_return_val_if_fail (config != NULL, FALSE);
++ g_return_val_if_fail (filename != NULL, FALSE);
++
++ file = g_file_new_for_path (filename);
++ is = g_file_read (file, NULL, &e);
++
++ if (is == NULL) {
++ g_propagate_error (error, e);
++ g_object_unref (file);
++ return FALSE;
++ }
++
++ input = g_data_input_stream_new (G_INPUT_STREAM (is));
++ section = g_strdup (section);
++
++ for (;; g_free (line), ++num) {
++ line = g_data_input_stream_read_line (input, NULL, NULL, &e);
++
++ if (line != NULL) {
++ g_strstrip (line);
++ } else {
++ break;
++ }
++
++ /* skip empty lines */
++ if (*line == '\0' || *line == '#') {
++ continue;
++ }
++
++ /* remove trailing comments */
++ for (str = line; *str != '\0' && *str != '#'; ++str);
++ *str-- = '\0';
++
++ /* change sections */
++ if (*line == '[' && *str == ']') {
++ *str = '\0';
++ str = line + 1;
++
++ if (*str == '\0') {
++ g_set_error (&e, ALPM_ERROR,
++ PM_ERR_CONFIG_INVALID,
++ "empty section name");
++ break;
++ }
++
++ g_free (section);
++ section = g_strdup (str);
++
++ if (g_strcmp0 (section, "options") != 0) {
++ pk_backend_config_add_repo (config, section);
++ }
++
++ continue;
++ }
++
++ /* parse a directive */
++ if (section == NULL) {
++ g_set_error (&e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
++ "directive must belong to a section");
++ break;
++ }
++
++ str = line;
++ key = strsep (&str, "=");
++ g_strchomp (key);
++ if (str != NULL) {
++ g_strchug (str);
++ }
++
++ if (str == NULL) {
++ /* set a boolean directive */
++ if (g_strcmp0 (section, "options") == 0 &&
++ pk_backend_config_set_boolean (config, key)) {
++ continue;
++ }
++ /* report error below */
++ } else if (g_strcmp0 (key, "Include") == 0) {
++ gsize i;
++ glob_t match = { 0 };
++
++ /* ignore globbing errors */
++ if (glob (str, GLOB_NOCHECK, NULL, &match) != 0) {
++ continue;
++ }
++
++ /* parse the files that matched */
++ for (i = 0; i < match.gl_pathc; ++i) {
++ if (!pk_backend_config_parse (config,
++ match.gl_pathv[i],
++ section, &e)) {
++ break;
++ }
++ }
++
++ globfree (&match);
++ if (e != NULL) {
++ break;
++ } else {
++ continue;
++ }
++ } else if (g_strcmp0 (section, "options") == 0) {
++ /* set a string or list directive */
++ if (pk_backend_config_set_string (config, key, str) ||
++ pk_backend_config_set_list (config, key, str)) {
++ continue;
++ }
++ /* report error below */
++ } else if (g_strcmp0 (key, "Server") == 0) {
++ if (!pk_backend_config_repo_add_server (config, section,
++ str, &e)) {
++ break;
++ } else {
++ continue;
++ }
++ }
++
++ /* report errors from above */
++ g_set_error (&e, ALPM_ERROR, PM_ERR_CONFIG_INVALID,
++ "unrecognised directive '%s'", key);
++ break;
++ }
++
++ g_free (section);
++
++ g_object_unref (input);
++ g_object_unref (is);
++ g_object_unref (file);
++
++ if (e != NULL) {
++ g_propagate_prefixed_error (error, e, "%s:%u", filename, num);
++ return FALSE;
++ } else {
++ return TRUE;
++ }
++}
++
++static gboolean
++pk_backend_config_configure_paths (PkBackendConfig *config, GError **error)
++{
++ g_return_val_if_fail (config != NULL, FALSE);
++
++ if (config->root == NULL) {
++ config->root = g_strdup (PK_BACKEND_DEFAULT_ROOT);
++ }
++
++ if (alpm_option_set_root (config->root) < 0) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "RootDir: %s",
++ alpm_strerrorlast ());
++ return FALSE;
++ }
++
++ if (config->dbpath == NULL) {
++ config->dbpath = g_strconcat (alpm_option_get_root (),
++ PK_BACKEND_DEFAULT_DBPATH + 1,
++ NULL);
++ }
++
++ if (alpm_option_set_dbpath (config->dbpath) < 0) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "DBPath: %s",
++ alpm_strerrorlast ());
++ return FALSE;
++ }
++
++ if (config->logfile == NULL) {
++ config->logfile = g_strconcat (alpm_option_get_root (),
++ PK_BACKEND_DEFAULT_LOGFILE + 1,
++ NULL);
++ }
++
++ alpm_option_set_logfile (config->logfile);
++
++ if (config->cachedirs == NULL) {
++ gchar *path = g_strconcat (alpm_option_get_root (),
++ PK_BACKEND_DEFAULT_CACHEDIR + 1,
++ NULL);
++ config->cachedirs = alpm_list_add (NULL, path);
++ }
++
++ /* alpm takes ownership */
++ alpm_option_set_cachedirs (config->cachedirs);
++ config->cachedirs = NULL;
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_config_configure_repos (PkBackendConfig *config, GError **error)
++{
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (config != NULL, FALSE);
++
++ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ if (alpm_db_unregister (i->data) < 0) {
++ g_set_error_literal (error, ALPM_ERROR, pm_errno,
++ alpm_strerrorlast ());
++ return FALSE;
++ }
++ }
++
++ for (i = config->repos; i != NULL; i = i->next) {
++ const gchar *key;
++ gpointer value;
++ pmdb_t *db;
++ alpm_list_t *j;
++
++ key = (const gchar *) i->data;
++ value = g_hash_table_lookup (config->servers, key);
++
++ db = alpm_db_register_sync (key);
++ if (db == NULL) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
++ key, alpm_strerrorlast ());
++ return FALSE;
++ }
++
++ for (j = (alpm_list_t *) value; j != NULL; j = j->next) {
++ alpm_db_setserver (db, (const gchar *) j->data);
++ }
++ }
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_config_configure_alpm (PkBackendConfig *config, GError **error)
++{
++ g_return_val_if_fail (config != NULL, FALSE);
++
++ if (!pk_backend_config_configure_paths (config, error)) {
++ return FALSE;
++ }
++
++ alpm_option_set_checkspace (config->checkspace);
++ alpm_option_set_usedelta (config->usedelta);
++ alpm_option_set_usesyslog (config->usesyslog);
++ alpm_option_set_arch (config->arch);
++
++ /* backend takes ownership */
++ g_free (xfercmd);
++ xfercmd = config->xfercmd;
++ config->xfercmd = NULL;
++
++ if (xfercmd != NULL) {
++ alpm_option_set_fetchcb (pk_backend_fetchcb);
++ } else {
++ alpm_option_set_fetchcb (NULL);
++ }
++
++ /* backend takes ownership */
++ FREELIST (holdpkgs);
++ holdpkgs = config->holdpkgs;
++ config->holdpkgs = NULL;
++
++ /* backend takes ownership */
++ FREELIST (syncfirsts);
++ syncfirsts = config->syncfirsts;
++ config->syncfirsts = NULL;
++
++ /* alpm takes ownership */
++ alpm_option_set_ignoregrps (config->ignoregrps);
++ config->ignoregrps = NULL;
++
++ /* alpm takes ownership */
++ alpm_option_set_ignorepkgs (config->ignorepkgs);
++ config->ignorepkgs = NULL;
++
++ /* alpm takes ownership */
++ alpm_option_set_noextracts (config->noextracts);
++ config->noextracts = NULL;
++
++ /* alpm takes ownership */
++ alpm_option_set_noupgrades (config->noupgrades);
++ config->noupgrades = NULL;
++
++ if (!pk_backend_config_configure_repos (config, error)) {
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++gboolean
++pk_backend_configure (const gchar *filename, GError **error)
++{
++ PkBackendConfig *config;
++ gboolean result;
++
++ g_return_val_if_fail (filename != NULL, FALSE);
++
++ config = pk_backend_config_new ();
++
++ result = pk_backend_config_parse (config, filename, NULL, error) &&
++ pk_backend_config_configure_alpm (config, error);
++
++ pk_backend_config_free (config);
++ return result;
++}
+diff --git a/backends/alpm/pk-backend-config.h b/backends/alpm/pk-backend-config.h
+new file mode 100644
+index 0000000..cb8b8dc
+--- /dev/null
++++ b/backends/alpm/pk-backend-config.h
+@@ -0,0 +1,26 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <glib.h>
++
++gboolean pk_backend_configure (const gchar *filename, GError **error);
+diff --git a/backends/alpm/pk-backend-databases.c b/backends/alpm/pk-backend-databases.c
+new file mode 100644
+index 0000000..f6ab06e
+--- /dev/null
++++ b/backends/alpm/pk-backend-databases.c
+@@ -0,0 +1,346 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-config.h"
++#include "pk-backend-databases.h"
++#include "pk-backend-error.h"
++
++static GHashTable *disabled = NULL;
++
++static GHashTable *
++disabled_repos_new (GError **error)
++{
++ GHashTable *table;
++ GFile *file;
++
++ GFileInputStream *is;
++ GDataInputStream *input;
++
++ GError *e = NULL;
++
++ g_debug ("reading disabled repos from %s", PK_BACKEND_REPO_FILE);
++ file = g_file_new_for_path (PK_BACKEND_REPO_FILE);
++ is = g_file_read (file, NULL, &e);
++
++ if (is == NULL) {
++ g_object_unref (file);
++ g_propagate_error (error, e);
++ return NULL;
++ }
++
++ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
++ input = g_data_input_stream_new (G_INPUT_STREAM (is));
++
++ /* read disabled repos line by line, ignoring comments */
++ while (TRUE) {
++ gchar *line;
++
++ line = g_data_input_stream_read_line (input, NULL, NULL, &e);
++
++ if (line != NULL) {
++ g_strstrip (line);
++ } else {
++ break;
++ }
++
++ if (*line == '\0' || *line == '#') {
++ g_free (line);
++ continue;
++ }
++
++ g_hash_table_insert (table, line, GINT_TO_POINTER (1));
++ }
++
++ g_object_unref (input);
++ g_object_unref (is);
++ g_object_unref (file);
++
++ if (e != NULL) {
++ g_hash_table_unref (table);
++ g_propagate_error (error, e);
++ return NULL;
++ } else {
++ return table;
++ }
++}
++
++static void
++disabled_repos_free (GHashTable *table)
++{
++ GHashTableIter iter;
++ GFile *file;
++
++ GFileOutputStream *os;
++ GDataOutputStream *output;
++
++ const gchar *line;
++
++ g_return_if_fail (table != NULL);
++
++ g_debug ("storing disabled repos in %s", PK_BACKEND_REPO_FILE);
++ file = g_file_new_for_path (PK_BACKEND_REPO_FILE);
++ os = g_file_replace (file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL);
++
++ if (os == NULL) {
++ g_object_unref (file);
++ g_hash_table_unref (table);
++ return;
++ }
++
++ g_hash_table_iter_init (&iter, table);
++ output = g_data_output_stream_new (G_OUTPUT_STREAM (os));
++
++ /* write all disabled repos line by line */
++ while (g_hash_table_iter_next (&iter, (gpointer *) &line, NULL) &&
++ g_data_output_stream_put_string (output, line, NULL, NULL) &&
++ g_data_output_stream_put_byte (output, '\n', NULL, NULL));
++
++ g_object_unref (output);
++ g_object_unref (os);
++ g_object_unref (file);
++
++ g_hash_table_unref (table);
++}
++
++static gboolean
++disabled_repos_configure (GHashTable *table, GError **error)
++{
++ const alpm_list_t *i;
++
++ g_debug ("reading config from %s", PK_BACKEND_CONFIG_FILE);
++
++ /* read configuration from pacman.conf file */
++ if (!pk_backend_configure (PK_BACKEND_CONFIG_FILE, error)) {
++ return FALSE;
++ }
++
++ /* disable disabled repos */
++ for (i = alpm_option_get_syncdbs (); i != NULL;) {
++ pmdb_t *db = (pmdb_t *) i->data;
++ const gchar *repo = alpm_db_get_name (db);
++
++ if (g_hash_table_lookup (table, repo) == NULL) {
++ /* repo is not disabled */
++ i = i->next;
++ continue;
++ }
++
++ if (alpm_db_unregister (db) < 0) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
++ repo, alpm_strerrorlast ());
++ return FALSE;
++ }
++
++ /* start again because the list gets invalidated */
++ i = alpm_option_get_syncdbs ();
++ }
++
++ return TRUE;
++}
++
++gboolean
++pk_backend_initialize_databases (PkBackend *self, GError **error)
++{
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ disabled = disabled_repos_new (error);
++ if (disabled == NULL) {
++ return FALSE;
++ }
++
++ if (!disabled_repos_configure (disabled, error)) {
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++void
++pk_backend_destroy_databases (PkBackend *self)
++{
++ g_return_if_fail (self != NULL);
++
++ if (disabled != NULL) {
++ disabled_repos_free (disabled);
++ }
++}
++
++static gboolean
++pk_backend_repo_info (PkBackend *self, const gchar *repo, gboolean enabled)
++{
++ gchar *description;
++ gboolean result;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (repo != NULL, FALSE);
++
++ description = g_strdup_printf ("[%s]", repo);
++ result = pk_backend_repo_detail (self, repo, description, enabled);
++ g_free (description);
++
++ return result;
++}
++
++static gboolean
++pk_backend_get_repo_list_thread (PkBackend *self)
++{
++ const alpm_list_t *i;
++ GHashTableIter iter;
++ gpointer key, value;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (disabled != NULL, FALSE);
++
++ /* emit enabled repos */
++ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ pmdb_t *db = (pmdb_t *) i->data;
++ const gchar *repo = alpm_db_get_name (db);
++
++ if (pk_backend_cancelled (self)) {
++ goto out;
++ } else {
++ pk_backend_repo_info (self, repo, TRUE);
++ }
++ }
++
++ /* emit disabled repos */
++ g_hash_table_iter_init (&iter, disabled);
++ while (g_hash_table_iter_next (&iter, &key, &value)) {
++ const gchar *repo = (const gchar *) key;
++
++ if (pk_backend_cancelled (self)) {
++ goto out;
++ } else {
++ pk_backend_repo_info (self, repo, FALSE);
++ }
++ }
++
++out:
++ return pk_backend_finish (self, NULL);
++}
++
++void
++pk_backend_get_repo_list (PkBackend *self, PkBitfield filters)
++{
++ g_return_if_fail (self != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY,
++ pk_backend_get_repo_list_thread);
++}
++
++static gboolean
++pk_backend_repo_enable_thread (PkBackend *self)
++{
++ const gchar *repo;
++
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (disabled != NULL, FALSE);
++
++ repo = pk_backend_get_string (self, "repo_id");
++
++ g_return_val_if_fail (repo != NULL, FALSE);
++
++ if (g_hash_table_remove (disabled, repo)) {
++ /* reload configuration to preserve ordering */
++ if (disabled_repos_configure (disabled, &error)) {
++ pk_backend_repo_list_changed (self);
++ }
++ } else {
++ int code = PM_ERR_DB_NOT_NULL;
++ g_set_error (&error, ALPM_ERROR, code, "[%s]: %s",
++ repo, alpm_strerror (code));
++ }
++
++ if (error != NULL) {
++ pk_backend_error (self, error);
++ g_error_free (error);
++ }
++
++ pk_backend_thread_finished (self);
++ return (error == NULL);
++}
++
++static gboolean
++pk_backend_repo_disable_thread (PkBackend *self)
++{
++ const alpm_list_t *i;
++ const gchar *repo;
++
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (disabled != NULL, FALSE);
++
++ repo = pk_backend_get_string (self, "repo_id");
++
++ g_return_val_if_fail (repo != NULL, FALSE);
++
++ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ pmdb_t *db = (pmdb_t *) i->data;
++ const gchar *name = alpm_db_get_name (db);
++
++ if (g_strcmp0 (repo, name) == 0) {
++ if (alpm_db_unregister (db) < 0) {
++ g_set_error (&error, ALPM_ERROR, pm_errno,
++ "[%s]: %s", repo,
++ alpm_strerrorlast ());
++ } else {
++ g_hash_table_insert (disabled, g_strdup (repo),
++ GINT_TO_POINTER (1));
++ }
++ break;
++ }
++ }
++
++ if (i == NULL) {
++ int code = PM_ERR_DB_NULL;
++ g_set_error (&error, ALPM_ERROR, code, "[%s]: %s", repo,
++ alpm_strerror (code));
++ }
++
++ if (error != NULL) {
++ pk_backend_error (self, error);
++ g_error_free (error);
++ }
++
++ pk_backend_thread_finished (self);
++ return (error == NULL);
++}
++
++void
++pk_backend_repo_enable (PkBackend *self, const gchar *repo_id, gboolean enabled)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (repo_id != NULL);
++
++ pk_backend_set_status (self, PK_STATUS_ENUM_QUERY);
++
++ if (enabled) {
++ pk_backend_thread_create (self, pk_backend_repo_enable_thread);
++ } else {
++ pk_backend_thread_create (self, pk_backend_repo_disable_thread);
++ }
++}
+diff --git a/backends/alpm/pk-backend-databases.h b/backends/alpm/pk-backend-databases.h
+new file mode 100644
+index 0000000..f9eb2f9
+--- /dev/null
++++ b/backends/alpm/pk-backend-databases.h
+@@ -0,0 +1,30 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++
++gboolean pk_backend_initialize_databases (PkBackend *self,
++ GError **error);
++
++void pk_backend_destroy_databases (PkBackend *self);
+diff --git a/backends/alpm/pk-backend-depends.c b/backends/alpm/pk-backend-depends.c
+new file mode 100644
+index 0000000..8bb8567
+--- /dev/null
++++ b/backends/alpm/pk-backend-depends.c
+@@ -0,0 +1,269 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-depends.h"
++#include "pk-backend-error.h"
++#include "pk-backend-packages.h"
++
++static pmpkg_t *
++alpm_list_find_pkg (const alpm_list_t *pkgs, const gchar *name)
++{
++ g_return_val_if_fail (name != NULL, NULL);
++
++ for (; pkgs != NULL; pkgs = pkgs->next) {
++ if (g_strcmp0 (name, alpm_pkg_get_name (pkgs->data)) == 0) {
++ return pkgs->data;
++ }
++ }
++
++ return NULL;
++}
++
++static alpm_list_t *
++pk_backend_find_provider (PkBackend *self, alpm_list_t *pkgs,
++ const gchar *depend, GError **error)
++{
++ PkBitfield filters;
++ gboolean recursive, skip_local, skip_remote;
++
++ pmpkg_t *provider;
++ alpm_list_t *pkgcache, *syncdbs;
++
++ g_return_val_if_fail (self != NULL, pkgs);
++ g_return_val_if_fail (depend != NULL, pkgs);
++ g_return_val_if_fail (localdb != NULL, pkgs);
++
++ recursive = pk_backend_get_bool (self, "recursive");
++ filters = pk_backend_get_uint (self, "filters");
++ skip_local = pk_bitfield_contain (filters,
++ PK_FILTER_ENUM_NOT_INSTALLED);
++ skip_remote = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
++
++ if (alpm_find_satisfier (pkgs, depend) != NULL) {
++ return pkgs;
++ }
++
++ /* look for local dependencies */
++ pkgcache = alpm_db_get_pkgcache (localdb);
++ provider = alpm_find_satisfier (pkgcache, depend);
++
++ if (provider != NULL) {
++ if (!skip_local) {
++ pk_backend_pkg (self, provider, PK_INFO_ENUM_INSTALLED);
++ /* assume later dependencies will also be local */
++ if (recursive) {
++ pkgs = alpm_list_add (pkgs, provider);
++ }
++ }
++
++ return pkgs;
++ }
++
++ /* look for remote dependencies */
++ syncdbs = alpm_option_get_syncdbs ();
++ provider = alpm_find_dbs_satisfier (syncdbs, depend);
++
++ if (provider != NULL) {
++ if (!skip_remote) {
++ pk_backend_pkg (self, provider, PK_INFO_ENUM_AVAILABLE);
++ }
++ /* keep looking for local dependencies */
++ if (recursive) {
++ pkgs = alpm_list_add (pkgs, provider);
++ }
++ } else {
++ int code = PM_ERR_UNSATISFIED_DEPS;
++ g_set_error (error, ALPM_ERROR, code, "%s: %s", depend,
++ alpm_strerror (code));
++ }
++
++ return pkgs;
++}
++
++static alpm_list_t *
++pk_backend_find_requirer (PkBackend *self, alpm_list_t *pkgs, const gchar *name,
++ GError **error)
++{
++ pmpkg_t *requirer;
++
++ g_return_val_if_fail (self != NULL, pkgs);
++ g_return_val_if_fail (name != NULL, pkgs);
++ g_return_val_if_fail (localdb != NULL, pkgs);
++
++ if (alpm_list_find_pkg (pkgs, name) != NULL) {
++ return pkgs;
++ }
++
++ /* look for local requirers */
++ requirer = alpm_db_get_pkg (localdb, name);
++
++ if (requirer != NULL) {
++ pk_backend_pkg (self, requirer, PK_INFO_ENUM_INSTALLED);
++ if (pk_backend_get_bool (self, "recursive")) {
++ pkgs = alpm_list_add (pkgs, requirer);
++ }
++ } else {
++ int code = PM_ERR_PKG_NOT_FOUND;
++ g_set_error (error, ALPM_ERROR, code, "%s: %s", name,
++ alpm_strerror (code));
++ }
++
++ return pkgs;
++}
++
++static gboolean
++pk_backend_get_depends_thread (PkBackend *self)
++{
++ gchar **packages;
++ alpm_list_t *i, *pkgs = NULL;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ /* construct an initial package list */
++ for (; *packages != NULL; ++packages) {
++ pmpkg_t *pkg;
++
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ pkg = pk_backend_find_pkg (self, *packages, &error);
++ if (pkg == NULL) {
++ break;
++ }
++
++ pkgs = alpm_list_add (pkgs, pkg);
++ }
++
++ /* package list might be modified along the way but that is ok */
++ for (i = pkgs; i != NULL; i = i->next) {
++ const alpm_list_t *depends;
++
++ if (pk_backend_cancelled (self) || error != NULL) {
++ break;
++ }
++
++ depends = alpm_pkg_get_depends (i->data);
++ for (; depends != NULL; depends = depends->next) {
++ gchar *depend;
++
++ if (pk_backend_cancelled (self) || error != NULL) {
++ break;
++ }
++
++ depend = alpm_dep_compute_string (depends->data);
++ pkgs = pk_backend_find_provider (self, pkgs, depend,
++ &error);
++ g_free (depend);
++ }
++ }
++
++ alpm_list_free (pkgs);
++ return pk_backend_finish (self, NULL);
++}
++
++static gboolean
++pk_backend_get_requires_thread (PkBackend *self)
++{
++ gchar **packages;
++ alpm_list_t *i, *pkgs = NULL;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ /* construct an initial package list */
++ for (; *packages != NULL; ++packages) {
++ pmpkg_t *pkg;
++
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ pkg = pk_backend_find_pkg (self, *packages, &error);
++ if (pkg == NULL) {
++ break;
++ }
++
++ pkgs = alpm_list_add (pkgs, pkg);
++ }
++
++ /* package list might be modified along the way but that is ok */
++ for (i = pkgs; i != NULL; i = i->next) {
++ alpm_list_t *requiredby;
++
++ if (pk_backend_cancelled (self) || error != NULL) {
++ break;
++ }
++
++ requiredby = alpm_pkg_compute_requiredby (i->data);
++ for (; requiredby != NULL; requiredby = requiredby->next) {
++ if (pk_backend_cancelled (self) || error != NULL) {
++ break;
++ }
++
++ pkgs = pk_backend_find_requirer (self, pkgs,
++ requiredby->data,
++ &error);
++ }
++
++ FREELIST (requiredby);
++ }
++
++ alpm_list_free (pkgs);
++ return pk_backend_finish (self, error);
++}
++
++void
++pk_backend_get_depends (PkBackend *self, PkBitfield filters,
++ gchar **package_ids, gboolean recursive)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY,
++ pk_backend_get_depends_thread);
++}
++
++void
++pk_backend_get_requires (PkBackend *self, PkBitfield filters,
++ gchar **package_ids, gboolean recursive)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY,
++ pk_backend_get_requires_thread);
++}
+diff --git a/backends/alpm/pk-backend-depends.h b/backends/alpm/pk-backend-depends.h
+new file mode 100644
+index 0000000..368965a
+--- /dev/null
++++ b/backends/alpm/pk-backend-depends.h
+@@ -0,0 +1,22 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
+diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c
+new file mode 100644
+index 0000000..6383175
+--- /dev/null
++++ b/backends/alpm/pk-backend-error.c
+@@ -0,0 +1,203 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++
++#include "pk-backend-error.h"
++
++static void
++pk_backend_output_locked (PkBackend *self)
++{
++ gchar *output;
++
++ g_return_if_fail (self != NULL);
++
++ output = g_strdup_printf ("If you are certain no other package manager "
++ "is running, you can remove %s\n",
++ alpm_option_get_lockfile ());
++ pk_backend_output (self, output);
++ g_free (output);
++}
++
++void
++pk_backend_error (PkBackend *self, GError *error)
++{
++ PkErrorEnum code = PK_ERROR_ENUM_UNKNOWN;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (error != NULL);
++
++ if (error->domain == ALPM_ERROR) {
++ switch (error->code) {
++ case PM_ERR_MEMORY:
++ case PM_ERR_SYSTEM:
++ code = PK_ERROR_ENUM_OOM;
++ break;
++
++ case PM_ERR_BADPERMS:
++ code = PK_ERROR_ENUM_NOT_AUTHORIZED;
++ break;
++
++ case PM_ERR_NOT_A_FILE:
++ case PM_ERR_NOT_A_DIR:
++ code = PK_ERROR_ENUM_FILE_NOT_FOUND;
++ break;
++
++ case PM_ERR_WRONG_ARGS:
++ case PM_ERR_HANDLE_NULL:
++ case PM_ERR_DB_NULL:
++ case PM_ERR_TRANS_NULL:
++ case PM_ERR_TRANS_NOT_INITIALIZED:
++ case PM_ERR_TRANS_NOT_PREPARED:
++ case PM_ERR_TRANS_NOT_LOCKED:
++ case PM_ERR_INVALID_REGEX:
++ code = PK_ERROR_ENUM_INTERNAL_ERROR;
++ break;
++
++ case PM_ERR_DISK_SPACE:
++ code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE;
++ break;
++
++ case PM_ERR_HANDLE_NOT_NULL:
++ case PM_ERR_DB_NOT_NULL:
++ case PM_ERR_TRANS_NOT_NULL:
++ code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
++ break;
++
++ case PM_ERR_HANDLE_LOCK:
++ code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
++ pk_backend_output_locked (self);
++ break;
++
++ case PM_ERR_DB_OPEN:
++ case PM_ERR_DB_NOT_FOUND:
++ case PM_ERR_PKG_REPO_NOT_FOUND:
++ code = PK_ERROR_ENUM_REPO_NOT_FOUND;
++ break;
++
++ case PM_ERR_DB_CREATE:
++ code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
++ break;
++
++ case PM_ERR_DB_VERSION:
++ case PM_ERR_DB_REMOVE:
++ code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
++ break;
++
++ case PM_ERR_DB_WRITE:
++ code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
++ break;
++
++ case PM_ERR_SERVER_BAD_URL:
++ code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
++ break;
++
++ case PM_ERR_SERVER_NONE:
++ code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
++ break;
++
++ case PM_ERR_TRANS_DUP_TARGET:
++ case PM_ERR_TRANS_ABORT:
++ code = PK_ERROR_ENUM_TRANSACTION_ERROR;
++ break;
++
++ case PM_ERR_TRANS_TYPE:
++ code = PK_ERROR_ENUM_CANNOT_CANCEL;
++ break;
++
++ case PM_ERR_PKG_NOT_FOUND:
++ code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
++ break;
++
++ case PM_ERR_PKG_IGNORED:
++ code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
++ break;
++
++ case PM_ERR_PKG_INVALID:
++ case PM_ERR_PKG_OPEN:
++ case PM_ERR_PKG_INVALID_NAME:
++ case PM_ERR_DLT_INVALID:
++ code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
++ break;
++
++ case PM_ERR_PKG_CANT_REMOVE:
++ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
++ break;
++
++ case PM_ERR_PKG_INVALID_ARCH:
++ code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE;
++ break;
++
++ case PM_ERR_DLT_PATCHFAILED:
++ code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
++ break;
++
++ case PM_ERR_UNSATISFIED_DEPS:
++ code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
++ break;
++
++ case PM_ERR_CONFLICTING_DEPS:
++ code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
++ break;
++
++ case PM_ERR_FILE_CONFLICTS:
++ code = PK_ERROR_ENUM_FILE_CONFLICTS;
++ break;
++
++ case PM_ERR_RETRIEVE:
++ case PM_ERR_LIBFETCH:
++ case PM_ERR_EXTERNAL_DOWNLOAD:
++ code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
++ break;
++
++ case PM_ERR_LIBARCHIVE:
++ code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED;
++ break;
++
++ case PM_ERR_CONFIG_INVALID:
++ code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
++ break;
++
++ case PM_ERR_PKG_HELD:
++ code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
++ break;
++ }
++ }
++
++ pk_backend_error_code (self, code, "%s", error->message);
++}
++
++void
++pk_backend_output (PkBackend *self, const gchar *output)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (output != NULL);
++
++ pk_backend_message (self, PK_MESSAGE_ENUM_UNKNOWN, "%s", output);
++}
++
++GQuark
++alpm_error_quark (void)
++{
++ return g_quark_from_static_string ("alpm-error-quark");
++}
+diff --git a/backends/alpm/pk-backend-error.h b/backends/alpm/pk-backend-error.h
+new file mode 100644
+index 0000000..b01b06d
+--- /dev/null
++++ b/backends/alpm/pk-backend-error.h
+@@ -0,0 +1,37 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <pk-backend.h>
++
++#define ALPM_ERROR (alpm_error_quark ())
++
++enum {
++ PM_ERR_CONFIG_INVALID = 0x10000,
++ PM_ERR_PKG_HELD
++};
++
++void pk_backend_error (PkBackend *self, GError *error);
++
++void pk_backend_output (PkBackend *self, const gchar *output);
++
++GQuark alpm_error_quark (void);
+diff --git a/backends/alpm/pk-backend-groups.c b/backends/alpm/pk-backend-groups.c
+new file mode 100644
+index 0000000..59e304d
+--- /dev/null
++++ b/backends/alpm/pk-backend-groups.c
+@@ -0,0 +1,153 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <gio/gio.h>
++#include <string.h>
++
++#include "pk-backend-groups.h"
++
++static GHashTable *grps = NULL;
++static PkBitfield groups = 0;
++
++static GHashTable *
++group_map_new (GError **error)
++{
++ GHashTable *map;
++ GFile *file;
++
++ GFileInputStream *is;
++ GDataInputStream *input;
++
++ GError *e = NULL;
++
++ g_debug ("reading group map from %s", PK_BACKEND_GROUP_FILE);
++ file = g_file_new_for_path (PK_BACKEND_GROUP_FILE);
++ is = g_file_read (file, NULL, &e);
++
++ if (is == NULL) {
++ g_object_unref (file);
++ g_propagate_error (error, e);
++ return NULL;
++ }
++
++ map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
++ input = g_data_input_stream_new (G_INPUT_STREAM (is));
++
++ /* read groups line by line, ignoring comments */
++ while (TRUE) {
++ PkGroupEnum group;
++ gchar *key, *value;
++
++ value = g_data_input_stream_read_line (input, NULL, NULL, &e);
++
++ if (value != NULL) {
++ g_strstrip (value);
++ } else {
++ break;
++ }
++
++ if (*value == '\0' || *value == '#') {
++ g_free (value);
++ continue;
++ }
++
++ /* line format: grp (space|tab)+ group */
++ key = strsep (&value, " ");
++ g_strchomp (key);
++
++ if (value == NULL) {
++ /* safe to cast as it is never freed or modified */
++ value = (gchar *) "other";
++ group = PK_GROUP_ENUM_OTHER;
++ } else {
++ g_strchug (value);
++ group = pk_group_enum_from_string (value);
++ }
++
++ if (group != PK_GROUP_ENUM_UNKNOWN) {
++ /* key and value are allocated together */
++ g_hash_table_replace (map, key, value);
++ pk_bitfield_add (groups, group);
++ }
++ }
++
++ g_object_unref (input);
++ g_object_unref (is);
++ g_object_unref (file);
++
++ if (e != NULL) {
++ g_hash_table_unref (map);
++ g_propagate_error (error, e);
++ return NULL;
++ } else {
++ return map;
++ }
++}
++
++gboolean
++pk_backend_initialize_groups (PkBackend *self, GError **error)
++{
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ grps = group_map_new (error);
++
++ return (grps != NULL);
++}
++
++void
++pk_backend_destroy_groups (PkBackend *self)
++{
++ g_return_if_fail (self != NULL);
++
++ if (grps != NULL) {
++ g_hash_table_unref (grps);
++ }
++}
++
++const gchar *
++alpm_pkg_get_group (pmpkg_t *pkg)
++{
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (pkg != NULL, NULL);
++ g_return_val_if_fail (grps != NULL, NULL);
++
++ /* use the first group that we recognise */
++ for (i = alpm_pkg_get_groups (pkg); i != NULL; i = i->next) {
++ gpointer value = g_hash_table_lookup (grps, i->data);
++
++ if (value != NULL) {
++ return (const gchar *) value;
++ }
++ }
++
++ return "other";
++}
++
++PkBitfield
++pk_backend_get_groups (PkBackend *self)
++{
++ g_return_val_if_fail (self != NULL, 0);
++
++ return groups;
++}
+diff --git a/backends/alpm/pk-backend-groups.h b/backends/alpm/pk-backend-groups.h
+new file mode 100644
+index 0000000..28dcf65
+--- /dev/null
++++ b/backends/alpm/pk-backend-groups.h
+@@ -0,0 +1,32 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++
++gboolean pk_backend_initialize_groups (PkBackend *self,
++ GError **error);
++
++void pk_backend_destroy_groups (PkBackend *self);
++
++const gchar *alpm_pkg_get_group (pmpkg_t *pkg);
+diff --git a/backends/alpm/pk-backend-install.c b/backends/alpm/pk-backend-install.c
+new file mode 100644
+index 0000000..65a6c11
+--- /dev/null
++++ b/backends/alpm/pk-backend-install.c
+@@ -0,0 +1,124 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-error.h"
++#include "pk-backend-install.h"
++#include "pk-backend-transaction.h"
++
++static gint
++alpm_add_file (const gchar *filename)
++{
++ pmpkg_t *pkg;
++
++ g_return_val_if_fail (filename != NULL, -1);
++
++ if (alpm_pkg_load (filename, 1, &pkg) < 0) {
++ return -1;
++ }
++
++ if (alpm_add_pkg (pkg) < 0) {
++ alpm_pkg_free (pkg);
++ return -1;
++ }
++
++ return 0;
++}
++
++static gboolean
++pk_backend_transaction_add_targets (PkBackend *self, GError **error)
++{
++ gchar **paths;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ paths = pk_backend_get_strv (self, "full_paths");
++
++ g_return_val_if_fail (paths != NULL, FALSE);
++
++ for (; *paths != NULL; ++paths) {
++ if (alpm_add_file (*paths) < 0) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s",
++ *paths, alpm_strerrorlast ());
++ return FALSE;
++ }
++ }
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_simulate_install_files_thread (PkBackend *self)
++{
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ if (pk_backend_transaction_initialize (self, 0, &error) &&
++ pk_backend_transaction_add_targets (self, &error) &&
++ pk_backend_transaction_simulate (self, &error)) {
++ pk_backend_transaction_packages (self);
++ }
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++static gboolean
++pk_backend_install_files_thread (PkBackend *self)
++{
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ if (pk_backend_transaction_initialize (self, 0, &error) &&
++ pk_backend_transaction_add_targets (self, &error) &&
++ pk_backend_transaction_simulate (self, &error)) {
++ pk_backend_transaction_commit (self, &error);
++ }
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++void
++pk_backend_simulate_install_files (PkBackend *self, gchar **paths)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (paths != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_simulate_install_files_thread);
++}
++
++void
++pk_backend_install_files (PkBackend *self, gboolean only_trusted,
++ gchar **full_paths)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (full_paths != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_install_files_thread);
++}
+diff --git a/backends/alpm/pk-backend-install.h b/backends/alpm/pk-backend-install.h
+new file mode 100644
+index 0000000..368965a
+--- /dev/null
++++ b/backends/alpm/pk-backend-install.h
+@@ -0,0 +1,22 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
+diff --git a/backends/alpm/pk-backend-packages.c b/backends/alpm/pk-backend-packages.c
+new file mode 100644
+index 0000000..e9a7c94
+--- /dev/null
++++ b/backends/alpm/pk-backend-packages.c
+@@ -0,0 +1,363 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-error.h"
++#include "pk-backend-groups.h"
++#include "pk-backend-packages.h"
++
++gchar *
++alpm_pkg_build_id (pmpkg_t *pkg)
++{
++ const gchar *name, *version, *arch, *repo;
++ pmdb_t *db;
++
++ g_return_val_if_fail (pkg != NULL, NULL);
++ g_return_val_if_fail (localdb != NULL, NULL);
++
++ name = alpm_pkg_get_name (pkg);
++ version = alpm_pkg_get_version (pkg);
++
++ arch = alpm_pkg_get_arch (pkg);
++ if (arch == NULL) {
++ arch = "any";
++ }
++
++ db = alpm_pkg_get_db (pkg);
++ /* TODO: check */
++ if (db == NULL || db == localdb) {
++ repo = "installed";
++ } else {
++ repo = alpm_db_get_name (db);
++ }
++
++ return pk_package_id_build (name, version, arch, repo);
++}
++
++void
++pk_backend_pkg (PkBackend *self, pmpkg_t *pkg, PkInfoEnum info)
++{
++ gchar *package;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++
++ package = alpm_pkg_build_id (pkg);
++ pk_backend_package (self, info, package, alpm_pkg_get_desc (pkg));
++ g_free (package);
++}
++
++pmpkg_t *
++pk_backend_find_pkg (PkBackend *self, const gchar *package_id, GError **error)
++{
++ gchar **package;
++ const gchar *repo_id;
++ pmdb_t *db = NULL;
++ pmpkg_t *pkg;
++
++ g_return_val_if_fail (self != NULL, NULL);
++ g_return_val_if_fail (package_id != NULL, NULL);
++ g_return_val_if_fail (localdb != NULL, NULL);
++
++ package = pk_package_id_split (package_id);
++ repo_id = package[PK_PACKAGE_ID_DATA];
++
++ /* find the database to search in */
++ if (g_strcmp0 (repo_id, "installed") == 0) {
++ db = localdb;
++ } else {
++ const alpm_list_t *i;
++ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ const gchar *repo = alpm_db_get_name (i->data);
++
++ if (g_strcmp0 (repo, repo_id) == 0) {
++ db = i->data;
++ break;
++ }
++ }
++ }
++
++ if (db != NULL) {
++ pkg = alpm_db_get_pkg (db, package[PK_PACKAGE_ID_NAME]);
++ } else {
++ pkg = NULL;
++ }
++
++ if (pkg != NULL) {
++ const gchar *version = alpm_pkg_get_version (pkg);
++ if (g_strcmp0 (version, package[PK_PACKAGE_ID_VERSION]) != 0) {
++ pkg = NULL;
++ }
++ }
++
++ if (pkg == NULL) {
++ int code = PM_ERR_PKG_NOT_FOUND;
++ g_set_error (error, ALPM_ERROR, code, "%s: %s", package_id,
++ alpm_strerror (code));
++ }
++ g_strfreev (package);
++ return pkg;
++}
++
++static gboolean
++pk_backend_resolve_package (PkBackend *self, const gchar *package,
++ GError **error)
++{
++ pmpkg_t *pkg;
++
++ PkBitfield filters;
++ gboolean skip_local, skip_remote;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (package != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ pkg = pk_backend_find_pkg (self, package, error);
++ if (pkg == NULL) {
++ return FALSE;
++ }
++
++ filters = pk_backend_get_uint (self, "filters");
++ skip_local = pk_bitfield_contain (filters,
++ PK_FILTER_ENUM_NOT_INSTALLED);
++ skip_remote = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
++
++ if (alpm_pkg_get_db (pkg) == localdb) {
++ if (!skip_local) {
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_INSTALLED);
++ }
++ } else {
++ if (!skip_remote) {
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_AVAILABLE);
++ }
++ }
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_resolve_name (PkBackend *self, const gchar *name, GError **error)
++{
++ pmpkg_t *pkg;
++ int code;
++
++ PkBitfield filters;
++ gboolean skip_local, skip_remote;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (name != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ filters = pk_backend_get_uint (self, "filters");
++ skip_local = pk_bitfield_contain (filters,
++ PK_FILTER_ENUM_NOT_INSTALLED);
++ skip_remote = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
++
++ pkg = alpm_db_get_pkg (localdb, name);
++ if (pkg != NULL) {
++ if (!skip_local) {
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_INSTALLED);
++ return TRUE;
++ }
++ } else if (!skip_remote) {
++ const alpm_list_t *i;
++ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ pkg = alpm_db_get_pkg (i->data, name);
++ if (pkg != NULL) {
++ pk_backend_pkg (self, pkg,
++ PK_INFO_ENUM_AVAILABLE);
++ return TRUE;
++ }
++ }
++ }
++
++ code = PM_ERR_PKG_NOT_FOUND;
++ g_set_error (error, ALPM_ERROR, code, "%s: %s", name,
++ alpm_strerror (code));
++ return FALSE;
++}
++
++static gboolean
++pk_backend_resolve_thread (PkBackend *self)
++{
++ gchar **packages;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ for (; *packages != NULL; ++packages) {
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ /* find a package with the given id or name */
++ if (pk_package_id_check (*packages)) {
++ if (!pk_backend_resolve_package (self, *packages,
++ &error)) {
++ break;
++ }
++ } else {
++ if (!pk_backend_resolve_name (self, *packages,
++ &error)) {
++ break;
++ }
++ }
++ }
++
++ return pk_backend_finish (self, error);
++}
++
++void
++pk_backend_resolve (PkBackend *self, PkBitfield filters, gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY, pk_backend_resolve_thread);
++}
++
++static gboolean
++pk_backend_get_details_thread (PkBackend *self)
++{
++ gchar **packages;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ for (; *packages != NULL; ++packages) {
++ pmpkg_t *pkg;
++ const alpm_list_t *i;
++
++ GString *licenses;
++ PkGroupEnum group;
++ const gchar *desc, *url;
++ gulong size;
++
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ pkg = pk_backend_find_pkg (self, *packages, &error);
++ if (pkg == NULL) {
++ break;
++ }
++
++ licenses = g_string_new ("");
++ i = alpm_pkg_get_licenses (pkg);
++ for (; i != NULL; i = i->next) {
++ /* assume OR although it may not be correct */
++ g_string_append_printf (licenses, " or %s",
++ (const gchar *) i->data);
++ }
++ if (licenses->len == 0) {
++ g_string_append (licenses, " or Unknown");
++ }
++
++ group = pk_group_enum_from_string (alpm_pkg_get_group (pkg));
++ desc = alpm_pkg_get_desc (pkg);
++ url = alpm_pkg_get_url (pkg);
++
++ if (alpm_pkg_get_db (pkg) == localdb) {
++ size = alpm_pkg_get_isize (pkg);
++ } else {
++ size = alpm_pkg_download_size (pkg);
++ }
++
++ pk_backend_details (self, *packages, licenses->str + 4, group,
++ desc, url, size);
++ g_string_free (licenses, TRUE);
++ }
++
++ return pk_backend_finish (self, error);
++}
++
++void
++pk_backend_get_details (PkBackend *self, gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY,
++ pk_backend_get_details_thread);
++}
++
++static gboolean
++pk_backend_get_files_thread (PkBackend *self)
++{
++ gchar **packages;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ for (; *packages != NULL; ++packages) {
++ pmpkg_t *pkg;
++ const alpm_list_t *i;
++
++ GString *files;
++ const gchar *root;
++
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ pkg = pk_backend_find_pkg (self, *packages, &error);
++ if (pkg == NULL) {
++ break;
++ }
++
++ files = g_string_new ("");
++ root = alpm_option_get_root ();
++ for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
++ g_string_append_printf (files, ";%s%s", root,
++ (const gchar *) i->data);
++ }
++
++ pk_backend_files (self, *packages, files->str + 1);
++ g_string_free (files, TRUE);
++ }
++
++ return pk_backend_finish (self, error);
++}
++
++void
++pk_backend_get_files (PkBackend *self, gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY,
++ pk_backend_get_files_thread);
++}
+diff --git a/backends/alpm/pk-backend-packages.h b/backends/alpm/pk-backend-packages.h
+new file mode 100644
+index 0000000..4b2d7f8
+--- /dev/null
++++ b/backends/alpm/pk-backend-packages.h
+@@ -0,0 +1,33 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++
++gchar *alpm_pkg_build_id (pmpkg_t *pkg);
++
++void pk_backend_pkg (PkBackend *self, pmpkg_t *pkg,
++ PkInfoEnum info);
++
++pmpkg_t *pk_backend_find_pkg (PkBackend *self, const gchar *package_id,
++ GError **error);
+diff --git a/backends/alpm/pk-backend-remove.c b/backends/alpm/pk-backend-remove.c
+new file mode 100644
+index 0000000..03329b1
+--- /dev/null
++++ b/backends/alpm/pk-backend-remove.c
+@@ -0,0 +1,167 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-error.h"
++#include "pk-backend-remove.h"
++#include "pk-backend-transaction.h"
++
++static gint
++alpm_remove_local (const gchar *name)
++{
++ pmpkg_t *pkg;
++
++ g_return_val_if_fail (name != NULL, -1);
++ g_return_val_if_fail (localdb != NULL, -1);
++
++ pkg = alpm_db_get_pkg (localdb, name);
++ if (pkg == NULL) {
++ pm_errno = PM_ERR_PKG_NOT_FOUND;
++ return -1;
++ }
++
++ return alpm_remove_pkg (pkg);
++}
++
++static gboolean
++pk_backend_transaction_remove_targets (PkBackend *self, GError **error)
++{
++ gchar **packages;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ for (; *packages != NULL; ++packages) {
++ gchar **package = pk_package_id_split (*packages);
++ gchar *name = package[PK_PACKAGE_ID_NAME];
++
++ if (alpm_remove_local (name) < 0) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s",
++ name, alpm_strerrorlast ());
++ g_strfreev (package);
++ return FALSE;
++ }
++
++ g_strfreev (package);
++ }
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_transaction_remove_simulate (PkBackend *self, GError **error)
++{
++ const alpm_list_t *i;
++
++ if (!pk_backend_transaction_simulate (self, error)) {
++ return FALSE;
++ }
++
++ for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
++ const gchar *name = alpm_pkg_get_name (i->data);
++ if (alpm_list_find_str (holdpkgs, name)) {
++ g_set_error (error, ALPM_ERROR, PM_ERR_PKG_HELD,
++ "%s: %s", name,
++ "could not remove HoldPkg");
++ return FALSE;
++ }
++ }
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_simulate_remove_packages_thread (PkBackend *self)
++{
++ pmtransflag_t flags = PM_TRANS_FLAG_CASCADE;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ /* remove unneeded packages that were required by those to be removed */
++ if (pk_backend_get_bool (self, "autoremove")) {
++ flags |= PM_TRANS_FLAG_RECURSE;
++ }
++
++ if (pk_backend_transaction_initialize (self, flags, &error) &&
++ pk_backend_transaction_remove_targets (self, &error) &&
++ pk_backend_transaction_remove_simulate (self, &error)) {
++ pk_backend_transaction_packages (self);
++ }
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++static gboolean
++pk_backend_remove_packages_thread (PkBackend *self)
++{
++ pmtransflag_t flags = 0;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ /* remove packages that depend on those to be removed */
++ if (pk_backend_get_bool (self, "allow_deps")) {
++ flags |= PM_TRANS_FLAG_CASCADE;
++ }
++ /* remove unneeded packages that were required by those to be removed */
++ if (pk_backend_get_bool (self, "autoremove")) {
++ flags |= PM_TRANS_FLAG_RECURSE;
++ }
++
++ if (pk_backend_transaction_initialize (self, flags, &error) &&
++ pk_backend_transaction_remove_targets (self, &error) &&
++ pk_backend_transaction_remove_simulate (self, &error)) {
++ pk_backend_transaction_commit (self, &error);
++ }
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++void
++pk_backend_simulate_remove_packages (PkBackend *self, gchar **package_ids,
++ gboolean autoremove)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_simulate_remove_packages_thread);
++}
++
++void
++pk_backend_remove_packages (PkBackend *self, gchar **package_ids,
++ gboolean allow_deps, gboolean autoremove)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_remove_packages_thread);
++}
+diff --git a/backends/alpm/pk-backend-remove.h b/backends/alpm/pk-backend-remove.h
+new file mode 100644
+index 0000000..368965a
+--- /dev/null
++++ b/backends/alpm/pk-backend-remove.h
+@@ -0,0 +1,22 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
+diff --git a/backends/alpm/pk-backend-search.c b/backends/alpm/pk-backend-search.c
+new file mode 100644
+index 0000000..592472d
+--- /dev/null
++++ b/backends/alpm/pk-backend-search.c
+@@ -0,0 +1,450 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++#include <string.h>
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-groups.h"
++#include "pk-backend-packages.h"
++#include "pk-backend-search.h"
++
++static gpointer
++pk_backend_pattern_needle (const gchar *needle, GError **error)
++{
++ return (gpointer) needle;
++}
++
++static gpointer
++pk_backend_pattern_regex (const gchar *needle, GError **error)
++{
++ gchar *pattern;
++ GRegex *regex;
++
++ g_return_val_if_fail (needle != NULL, NULL);
++
++ pattern = g_regex_escape_string (needle, -1);
++ regex = g_regex_new (pattern, G_REGEX_CASELESS, 0, error);
++ g_free (pattern);
++
++ return regex;
++}
++
++static gpointer
++pk_backend_pattern_chroot (const gchar *needle, GError **error)
++{
++ g_return_val_if_fail (needle != NULL, NULL);
++
++ if (G_IS_DIR_SEPARATOR (*needle)) {
++ const gchar *file = needle, *root = alpm_option_get_root ();
++
++ /* adjust needle to the correct prefix */
++ for (; *file == *root; ++file, ++root) {
++ if (*root == '\0') {
++ needle = file - 1;
++ break;
++ } else if (*file == '\0') {
++ break;
++ }
++ }
++ }
++
++ return (gpointer) needle;
++}
++
++static gboolean
++pk_backend_match_all (pmpkg_t *pkg, gpointer pattern)
++{
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (pattern != NULL, FALSE);
++
++ /* match all packages */
++ return TRUE;
++}
++
++static gboolean
++pk_backend_match_details (pmpkg_t *pkg, GRegex *regex)
++{
++ const gchar *desc;
++ pmdb_t *db;
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (regex != NULL, FALSE);
++
++ /* match the name first... */
++ if (g_regex_match (regex, alpm_pkg_get_name (pkg), 0, NULL)) {
++ return TRUE;
++ }
++
++ /* ... then the description... */
++ desc = alpm_pkg_get_desc (pkg);
++ if (desc != NULL && g_regex_match (regex, desc, 0, NULL)) {
++ return TRUE;
++ }
++
++ /* ... then the database... */
++ db = alpm_pkg_get_db (pkg);
++ if (db != NULL && g_regex_match (regex, alpm_db_get_name (db),
++ G_REGEX_MATCH_ANCHORED, NULL)) {
++ return TRUE;
++ }
++
++ /* ... then the licenses */
++ for (i = alpm_pkg_get_licenses (pkg); i != NULL; i = i->next) {
++ if (g_regex_match (regex, i->data, G_REGEX_MATCH_ANCHORED,
++ NULL)) {
++ return TRUE;
++ }
++ }
++
++ return FALSE;
++}
++
++static gboolean
++pk_backend_match_file (pmpkg_t *pkg, const gchar *needle)
++{
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (needle != NULL, FALSE);
++
++ /* match any file the package contains */
++ if (G_IS_DIR_SEPARATOR (*needle)) {
++ for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
++ /* match the full path of file */
++ if (g_strcmp0 (i->data, needle + 1) == 0) {
++ return TRUE;
++ }
++ }
++ } else {
++ for (i = alpm_pkg_get_files (pkg); i != NULL; i = i->next) {
++ const gchar *file = strrchr (i->data, G_DIR_SEPARATOR);
++ if (file == NULL) {
++ file = i->data;
++ } else {
++ ++file;
++ }
++
++ /* match the basename of file */
++ if (g_strcmp0 (file, needle) == 0) {
++ return TRUE;
++ }
++ }
++ }
++
++ return FALSE;
++}
++
++static gboolean
++pk_backend_match_group (pmpkg_t *pkg, const gchar *needle)
++{
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (needle != NULL, FALSE);
++
++ /* match the group the package is in */
++ return g_strcmp0 (needle, alpm_pkg_get_group (pkg)) == 0;
++}
++
++static gboolean
++pk_backend_match_name (pmpkg_t *pkg, GRegex *regex)
++{
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (regex != NULL, FALSE);
++
++ /* match the name of the package */
++ return g_regex_match (regex, alpm_pkg_get_name (pkg), 0, NULL);
++}
++
++static gboolean
++pk_backend_match_provides (pmpkg_t *pkg, gpointer pattern)
++{
++ /* TODO: implement GStreamer codecs, Pango fonts, etc. */
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (pattern != NULL, FALSE);
++
++ /* match features provided by package */
++ for (i = alpm_pkg_get_provides (pkg); i != NULL; i = i->next) {
++ const gchar *needle = pattern, *name = i->data;
++
++ for (; *needle == *name; ++needle, ++name) {
++ if (*needle == '\0') {
++ if (*name == '\0' || *name == '=') {
++ return TRUE;
++ } else {
++ break;
++ }
++ }
++ }
++ }
++
++ return FALSE;
++}
++
++typedef enum {
++ SEARCH_TYPE_ALL,
++ SEARCH_TYPE_DETAILS,
++ SEARCH_TYPE_FILES,
++ SEARCH_TYPE_GROUP,
++ SEARCH_TYPE_NAME,
++ SEARCH_TYPE_PROVIDES,
++ SEARCH_TYPE_LAST
++} SearchType;
++
++typedef gpointer (*PatternFunc) (const gchar *needle, GError **error);
++typedef gboolean (*MatchFunc) (pmpkg_t *pkg, gpointer pattern);
++
++static PatternFunc pattern_funcs[] = {
++ pk_backend_pattern_needle,
++ pk_backend_pattern_regex,
++ pk_backend_pattern_chroot,
++ pk_backend_pattern_needle,
++ pk_backend_pattern_regex,
++ pk_backend_pattern_needle
++};
++
++static GDestroyNotify pattern_frees[] = {
++ NULL,
++ (GDestroyNotify) g_regex_unref,
++ NULL,
++ NULL,
++ (GDestroyNotify) g_regex_unref,
++ NULL
++};
++
++static MatchFunc match_funcs[] = {
++ pk_backend_match_all,
++ (MatchFunc) pk_backend_match_details,
++ (MatchFunc) pk_backend_match_file,
++ (MatchFunc) pk_backend_match_group,
++ (MatchFunc) pk_backend_match_name,
++ pk_backend_match_provides
++};
++
++static gboolean
++alpm_pkg_is_local (pmpkg_t *pkg)
++{
++ pmpkg_t *local;
++
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ /* find an installed package with the same name */
++ local = alpm_db_get_pkg (localdb, alpm_pkg_get_name (pkg));
++ if (local == NULL) {
++ return FALSE;
++ }
++
++ /* make sure the installed version is the same */
++ if (alpm_pkg_vercmp (alpm_pkg_get_version (local),
++ alpm_pkg_get_version (pkg)) != 0) {
++ return FALSE;
++ }
++
++ /* make sure the installed arch is the same */
++ if (g_strcmp0 (alpm_pkg_get_arch (local),
++ alpm_pkg_get_arch (pkg)) != 0) {
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++static void
++pk_backend_search_db (PkBackend *self, pmdb_t *db, MatchFunc match,
++ const alpm_list_t *patterns)
++{
++ const alpm_list_t *i, *j;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (db != NULL);
++ g_return_if_fail (match != NULL);
++
++ /* emit packages that match all search terms */
++ for (i = alpm_db_get_pkgcache (db); i != NULL; i = i->next) {
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ for (j = patterns; j != NULL; j = j->next) {
++ if (!match (i->data, j->data)) {
++ break;
++ }
++ }
++
++ /* all search terms matched */
++ if (j == NULL) {
++ if (db == localdb) {
++ pk_backend_pkg (self, i->data,
++ PK_INFO_ENUM_INSTALLED);
++ } else if (!alpm_pkg_is_local (i->data)) {
++ pk_backend_pkg (self, i->data,
++ PK_INFO_ENUM_AVAILABLE);
++ }
++ }
++ }
++}
++
++static gboolean
++pk_backend_search_thread (PkBackend *self)
++{
++ gchar **needles;
++ SearchType type;
++
++ PatternFunc pattern_func;
++ GDestroyNotify pattern_free;
++ MatchFunc match_func;
++
++ PkBitfield filters;
++ gboolean skip_local, skip_remote;
++
++ const alpm_list_t *i;
++ alpm_list_t *patterns = NULL;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ needles = pk_backend_get_strv (self, "search");
++ type = pk_backend_get_uint (self, "search-type");
++
++ g_return_val_if_fail (needles != NULL, FALSE);
++ g_return_val_if_fail (type < SEARCH_TYPE_LAST, FALSE);
++
++ pattern_func = pattern_funcs[type];
++ pattern_free = pattern_frees[type];
++ match_func = match_funcs[type];
++
++ g_return_val_if_fail (pattern_func != NULL, FALSE);
++ g_return_val_if_fail (match_func != NULL, FALSE);
++
++ filters = pk_backend_get_uint (self, "filters");
++ skip_local = pk_bitfield_contain (filters,
++ PK_FILTER_ENUM_NOT_INSTALLED);
++ skip_remote = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
++
++ /* convert search terms to the pattern requested */
++ for (; *needles != NULL; ++needles) {
++ gpointer pattern = pattern_func (*needles, &error);
++
++ if (pattern == NULL) {
++ goto out;
++ }
++
++ patterns = alpm_list_add (patterns, pattern);
++ }
++
++ /* find installed packages first */
++ if (!skip_local) {
++ pk_backend_search_db (self, localdb, match_func, patterns);
++ }
++
++ if (skip_remote) {
++ goto out;
++ }
++
++ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ pk_backend_search_db (self, i->data, match_func, patterns);
++ }
++
++out:
++ if (pattern_free != NULL) {
++ alpm_list_free_inner (patterns, pattern_free);
++ }
++ alpm_list_free (patterns);
++ return pk_backend_finish (self, error);
++}
++
++void
++pk_backend_get_packages (PkBackend *self, PkBitfield filters)
++{
++ g_return_if_fail (self != NULL);
++
++ /* provide a dummy needle */
++ pk_backend_set_strv (self, "search", g_strsplit ("", ";", 0));
++
++ pk_backend_set_uint (self, "search-type", SEARCH_TYPE_ALL);
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY, pk_backend_search_thread);
++}
++
++void
++pk_backend_search_details (PkBackend *self, PkBitfield filters, gchar **values)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (values != NULL);
++
++ pk_backend_set_uint (self, "search-type", SEARCH_TYPE_DETAILS);
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY, pk_backend_search_thread);
++}
++
++void
++pk_backend_search_files (PkBackend *self, PkBitfield filters, gchar **values)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (values != NULL);
++
++ /* speed up search by restricting it to local database */
++ pk_bitfield_add (filters, PK_FILTER_ENUM_INSTALLED);
++ pk_backend_set_uint (self, "filters", filters);
++
++ pk_backend_set_uint (self, "search-type", SEARCH_TYPE_FILES);
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY, pk_backend_search_thread);
++}
++
++void
++pk_backend_search_groups (PkBackend *self, PkBitfield filters, gchar **values)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (values != NULL);
++
++ pk_backend_set_uint (self, "search-type", SEARCH_TYPE_GROUP);
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY, pk_backend_search_thread);
++}
++
++void
++pk_backend_search_names (PkBackend *self, PkBitfield filters, gchar **values)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (values != NULL);
++
++ pk_backend_set_uint (self, "search-type", SEARCH_TYPE_NAME);
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY, pk_backend_search_thread);
++}
++
++void
++pk_backend_what_provides (PkBackend *self, PkBitfield filters,
++ PkProvidesEnum provides, gchar **values)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (values != NULL);
++
++ pk_backend_set_uint (self, "search-type", SEARCH_TYPE_PROVIDES);
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY, pk_backend_search_thread);
++}
+diff --git a/backends/alpm/pk-backend-search.h b/backends/alpm/pk-backend-search.h
+new file mode 100644
+index 0000000..368965a
+--- /dev/null
++++ b/backends/alpm/pk-backend-search.h
+@@ -0,0 +1,22 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
+diff --git a/backends/alpm/pk-backend-sync.c b/backends/alpm/pk-backend-sync.c
+new file mode 100644
+index 0000000..7147514
+--- /dev/null
++++ b/backends/alpm/pk-backend-sync.c
+@@ -0,0 +1,283 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++#include <string.h>
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-error.h"
++#include "pk-backend-sync.h"
++#include "pk-backend-transaction.h"
++
++static gint
++alpm_add_dbtarget (const gchar *repo, const gchar *name)
++{
++ const alpm_list_t *i;
++ pmpkg_t *pkg;
++
++ g_return_val_if_fail (repo != NULL, -1);
++ g_return_val_if_fail (name != NULL, -1);
++
++ for (i = alpm_option_get_syncdbs (); i != NULL; i = i->next) {
++ if (g_strcmp0 (alpm_db_get_name (i->data), repo) == 0) {
++ break;
++ }
++ }
++
++ if (i == NULL) {
++ pm_errno = PM_ERR_DB_NOT_FOUND;
++ return -1;
++ }
++
++ pkg = alpm_db_get_pkg (i->data, name);
++ if (pkg == NULL) {
++ pm_errno = PM_ERR_PKG_NOT_FOUND;
++ return -1;
++ }
++
++ return alpm_add_pkg (pkg);
++}
++
++static gboolean
++pk_backend_transaction_sync_targets (PkBackend *self, GError **error)
++{
++ gchar **packages;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ for (; *packages != NULL; ++packages) {
++ gchar **package = pk_package_id_split (*packages);
++ gchar *repo = package[PK_PACKAGE_ID_DATA];
++ gchar *name = package[PK_PACKAGE_ID_NAME];
++
++ if (alpm_add_dbtarget (repo, name) < 0) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "%s/%s: %s",
++ repo, name, alpm_strerrorlast ());
++ g_strfreev (package);
++ return FALSE;
++ }
++
++ g_strfreev (package);
++ }
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_download_packages_thread (PkBackend *self)
++{
++ alpm_list_t *cachedirs;
++ const gchar *directory;
++ pmtransflag_t flags = 0;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ directory = pk_backend_get_string (self, "directory");
++
++ g_return_val_if_fail (directory != NULL, FALSE);
++
++ /* download files to a PackageKit directory */
++ cachedirs = alpm_list_strdup (alpm_option_get_cachedirs ());
++ alpm_option_set_cachedirs (alpm_list_add (NULL, strdup (directory)));
++
++ flags |= PM_TRANS_FLAG_NODEPS;
++ flags |= PM_TRANS_FLAG_NOCONFLICTS;
++ flags |= PM_TRANS_FLAG_DOWNLOADONLY;
++
++ if (pk_backend_transaction_initialize (self, flags, &error) &&
++ pk_backend_transaction_sync_targets (self, &error) &&
++ pk_backend_transaction_simulate (self, &error)) {
++ pk_backend_transaction_commit (self, &error);
++ }
++
++ alpm_option_set_cachedirs (cachedirs);
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++void
++pk_backend_download_packages (PkBackend *self, gchar **package_ids,
++ const gchar *directory)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++ g_return_if_fail (directory != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_download_packages_thread);
++}
++
++static gboolean
++pk_backend_simulate_install_packages_thread (PkBackend *self)
++{
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ if (pk_backend_transaction_initialize (self, 0, &error) &&
++ pk_backend_transaction_sync_targets (self, &error) &&
++ pk_backend_transaction_simulate (self, &error)) {
++ pk_backend_transaction_packages (self);
++ }
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++static gboolean
++pk_backend_install_packages_thread (PkBackend *self)
++{
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ if (pk_backend_transaction_initialize (self, 0, &error) &&
++ pk_backend_transaction_sync_targets (self, &error) &&
++ pk_backend_transaction_simulate (self, &error)) {
++ pk_backend_transaction_commit (self, &error);
++ }
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++void
++pk_backend_simulate_install_packages (PkBackend *self, gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_simulate_install_packages_thread);
++}
++
++void
++pk_backend_install_packages (PkBackend *self, gboolean only_trusted,
++ gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_install_packages_thread);
++}
++
++static gboolean
++pk_backend_replaces_dependencies (PkBackend *self, pmpkg_t *pkg)
++{
++ const alpm_list_t *i, *replaces;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (pkg != NULL, FALSE);
++
++ replaces = alpm_pkg_get_replaces (pkg);
++ for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
++ pmpkg_t *rpkg = (pmpkg_t *) i->data;
++ const gchar *rname = alpm_pkg_get_name (rpkg);
++
++ if (pk_backend_cancelled (self)) {
++ return FALSE;
++ } else if (alpm_list_find_str (replaces, rname) == NULL) {
++ continue;
++ }
++
++ if (alpm_pkg_get_reason (rpkg) == PM_PKG_REASON_EXPLICIT) {
++ return FALSE;
++ }
++ }
++
++ return TRUE;
++}
++
++static gboolean
++pk_backend_update_packages_thread (PkBackend *self)
++{
++ const alpm_list_t *i;
++ alpm_list_t *asdeps = NULL;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ if (!pk_backend_transaction_initialize (self, 0, &error) ||
++ !pk_backend_transaction_sync_targets (self, &error) ||
++ !pk_backend_transaction_simulate (self, &error)) {
++ goto out;
++ }
++
++ /* change the install reason of packages that replace dependencies */
++ for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
++ pmpkg_t *pkg = (pmpkg_t *) i->data;
++ const gchar *name = alpm_pkg_get_name (pkg);
++
++ if (pk_backend_cancelled (self)) {
++ goto out;
++ } else if (alpm_db_get_pkg (localdb, name) != NULL) {
++ continue;
++ }
++
++ if (pk_backend_replaces_dependencies (self, pkg)) {
++ asdeps = alpm_list_add (asdeps, g_strdup (name));
++ }
++ }
++
++ if (!pk_backend_transaction_commit (self, &error)) {
++ goto out;
++ }
++
++ for (i = asdeps; i != NULL; i = i->next) {
++ const gchar *name = (const gchar *) i->data;
++ alpm_db_set_pkgreason (localdb, name, PM_PKG_REASON_DEPEND);
++ }
++
++out:
++ alpm_list_free_inner (asdeps, g_free);
++ alpm_list_free (asdeps);
++
++ return pk_backend_transaction_finish (self, error);
++}
++
++void
++pk_backend_simulate_update_packages (PkBackend *self, gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_simulate_install_packages_thread);
++}
++
++void
++pk_backend_update_packages (PkBackend *self, gboolean only_trusted,
++ gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_update_packages_thread);
++}
+diff --git a/backends/alpm/pk-backend-sync.h b/backends/alpm/pk-backend-sync.h
+new file mode 100644
+index 0000000..368965a
+--- /dev/null
++++ b/backends/alpm/pk-backend-sync.h
+@@ -0,0 +1,22 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
+diff --git a/backends/alpm/pk-backend-transaction.c b/backends/alpm/pk-backend-transaction.c
+new file mode 100644
+index 0000000..f919309
+--- /dev/null
++++ b/backends/alpm/pk-backend-transaction.c
+@@ -0,0 +1,916 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-error.h"
++#include "pk-backend-packages.h"
++#include "pk-backend-transaction.h"
++
++static off_t dcomplete = 0;
++static off_t dtotal = 0;
++
++static pmpkg_t *dpkg = NULL;
++static GString *dfiles = NULL;
++
++static gchar *
++pk_backend_resolve_path (PkBackend *self, const gchar *basename)
++{
++ const gchar *dirname;
++
++ g_return_val_if_fail (self != NULL, NULL);
++ g_return_val_if_fail (basename != NULL, NULL);
++
++ dirname = pk_backend_get_string (self, "directory");
++
++ g_return_val_if_fail (dirname != NULL, NULL);
++
++ return g_build_filename (dirname, basename, NULL);
++}
++
++static gboolean
++alpm_pkg_has_basename (pmpkg_t *pkg, const gchar *basename)
++{
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (pkg != NULL, FALSE);
++ g_return_val_if_fail (basename != NULL, FALSE);
++
++ if (g_strcmp0 (alpm_pkg_get_filename (pkg), basename) == 0) {
++ return TRUE;
++ }
++
++ if (alpm_option_get_usedelta () == 0) {
++ return FALSE;
++ }
++
++ for (i = alpm_pkg_get_deltas (pkg); i != NULL; i = i->next) {
++ const gchar *patch = alpm_delta_get_filename (i->data);
++
++ if (g_strcmp0 (patch, basename) == 0) {
++ return TRUE;
++ }
++ }
++
++ return FALSE;
++}
++
++static void
++pk_backend_transaction_download_end (PkBackend *self)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (dpkg != NULL);
++
++ pk_backend_pkg (self, dpkg, PK_INFO_ENUM_FINISHED);
++
++ /* tell DownloadPackages what files were downloaded */
++ if (dfiles != NULL) {
++ gchar *package_id;
++
++ package_id = alpm_pkg_build_id (dpkg);
++
++ pk_backend_files (self, package_id, dfiles->str);
++
++ g_free (package_id);
++ g_string_free (dfiles, TRUE);
++ }
++
++ dpkg = NULL;
++ dfiles = NULL;
++}
++
++static void
++pk_backend_transaction_download_start (PkBackend *self, const gchar *basename)
++{
++ gchar *path;
++ const alpm_list_t *i;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (basename != NULL);
++
++ /* continue or finish downloading the current package */
++ if (dpkg != NULL) {
++ if (alpm_pkg_has_basename (dpkg, basename)) {
++ if (dfiles != NULL) {
++ path = pk_backend_resolve_path (self, basename);
++ g_string_append_printf (dfiles, ";%s", path);
++ g_free (path);
++ }
++
++ return;
++ } else {
++ pk_backend_transaction_download_end (self);
++ dpkg = NULL;
++ }
++ }
++
++ /* figure out what the next package is */
++ for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
++ pmpkg_t *pkg = (pmpkg_t *) i->data;
++
++ if (alpm_pkg_has_basename (pkg, basename)) {
++ dpkg = pkg;
++ break;
++ }
++ }
++
++ if (dpkg == NULL) {
++ return;
++ }
++
++ pk_backend_pkg (self, dpkg, PK_INFO_ENUM_DOWNLOADING);
++
++ /* start collecting files for the new package */
++ if (pk_backend_get_role (self) == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
++ path = pk_backend_resolve_path (self, basename);
++ dfiles = g_string_new (path);
++ g_free (path);
++ }
++}
++
++static void
++pk_backend_transaction_totaldlcb (off_t total)
++{
++ g_return_if_fail (backend != NULL);
++
++ if (dtotal > 0 && dpkg != NULL) {
++ pk_backend_transaction_download_end (backend);
++ }
++
++ dcomplete = 0;
++ dtotal = total;
++}
++
++static void
++pk_backend_transaction_dlcb (const gchar *basename, off_t complete, off_t total)
++{
++ guint percentage = 100, sub_percentage = 100;
++
++ g_return_if_fail (basename != NULL);
++ g_return_if_fail (complete <= total);
++ g_return_if_fail (backend != NULL);
++
++ if (total > 0) {
++ sub_percentage = complete * 100 / total;
++ }
++
++ if (dtotal > 0) {
++ percentage = (dcomplete + complete) * 100 / dtotal;
++ } else if (dtotal < 0) {
++ /* database files */
++ percentage = (dcomplete * 100 + sub_percentage) / -dtotal;
++
++ if (complete == total) {
++ complete = total = 1;
++ } else {
++ complete = total + 1;
++ }
++ }
++
++ if (complete == 0) {
++ g_debug ("downloading file %s", basename);
++ pk_backend_set_status (backend, PK_STATUS_ENUM_DOWNLOAD);
++ pk_backend_transaction_download_start (backend, basename);
++ } else if (complete == total) {
++ dcomplete += complete;
++ }
++
++ pk_backend_set_sub_percentage (backend, sub_percentage);
++ pk_backend_set_percentage (backend, percentage);
++}
++
++static void
++pk_backend_transaction_progress_cb (pmtransprog_t type, const gchar *target,
++ gint percent, gsize targets, gsize current)
++{
++ static gint recent = 101;
++ gsize overall = percent + (current - 1) * 100;
++
++ /* TODO: revert when fixed upstream */
++ if (type == PM_TRANS_PROGRESS_CONFLICTS_START ||
++ type == PM_TRANS_PROGRESS_DISKSPACE_START ||
++ type == PM_TRANS_PROGRESS_INTEGRITY_START) {
++ if (current < targets) {
++ overall = percent + current++ * 100;
++ }
++ }
++
++ if (current < 1 || targets < current) {
++ g_warning ("TODO: CURRENT/TARGETS FAILED for %d", type);
++ }
++
++ g_return_if_fail (target != NULL);
++ g_return_if_fail (0 <= percent && percent <= 100);
++ g_return_if_fail (1 <= current && current <= targets);
++ g_return_if_fail (backend != NULL);
++
++ /* update transaction progress */
++ switch (type) {
++ case PM_TRANS_PROGRESS_ADD_START:
++ case PM_TRANS_PROGRESS_UPGRADE_START:
++ case PM_TRANS_PROGRESS_REMOVE_START:
++ case PM_TRANS_PROGRESS_CONFLICTS_START:
++ case PM_TRANS_PROGRESS_DISKSPACE_START:
++ case PM_TRANS_PROGRESS_INTEGRITY_START:
++ if (percent == recent) {
++ break;
++ }
++
++ pk_backend_set_sub_percentage (backend, percent);
++ pk_backend_set_percentage (backend, overall / targets);
++ recent = percent;
++
++ g_debug ("%d%% of %s complete (%zu of %zu)", percent,
++ target, current, targets);
++ break;
++
++ default:
++ g_warning ("unknown progress type %d", type);
++ break;
++ }
++}
++
++static void
++pk_backend_install_ignorepkg (PkBackend *self, pmpkg_t *pkg, gint *result)
++{
++ gchar *output;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++ g_return_if_fail (result != NULL);
++
++ switch (pk_backend_get_role (self)) {
++ case PK_ROLE_ENUM_INSTALL_PACKAGES:
++ output = g_strdup_printf ("%s: was not ignored\n",
++ alpm_pkg_get_name (pkg));
++ pk_backend_output (self, output);
++ g_free (output);
++
++ case PK_ROLE_ENUM_DOWNLOAD_PACKAGES:
++ case PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES:
++ *result = 1;
++ break;
++
++ default:
++ *result = 0;
++ break;
++ }
++}
++
++static void
++pk_backend_select_provider (PkBackend *self, pmdepend_t *dep,
++ const alpm_list_t *providers)
++{
++ gchar *output;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (dep != NULL);
++ g_return_if_fail (providers != NULL);
++
++ output = g_strdup_printf ("provider package was selected "
++ "(%s provides %s)\n",
++ alpm_pkg_get_name (providers->data),
++ alpm_dep_get_name (dep));
++ pk_backend_output (self, output);
++ g_free (output);
++}
++
++static void
++pk_backend_transaction_conv_cb (pmtransconv_t question, gpointer data1,
++ gpointer data2, gpointer data3, gint *result)
++{
++ g_return_if_fail (result != NULL);
++ g_return_if_fail (backend != NULL);
++
++ switch (question) {
++ case PM_TRANS_CONV_INSTALL_IGNOREPKG:
++ pk_backend_install_ignorepkg (backend, data1, result);
++ break;
++
++ case PM_TRANS_CONV_REPLACE_PKG:
++ case PM_TRANS_CONV_CONFLICT_PKG:
++ case PM_TRANS_CONV_CORRUPTED_PKG:
++ case PM_TRANS_CONV_LOCAL_NEWER:
++ /* these actions are mostly harmless */
++ g_debug ("safe question %d", question);
++ *result = 1;
++ break;
++
++ case PM_TRANS_CONV_REMOVE_PKGS:
++ g_debug ("unsafe question %d", question);
++ *result = 0;
++ break;
++
++ case PM_TRANS_CONV_SELECT_PROVIDER:
++ pk_backend_select_provider (backend, data1, data2);
++ *result = 0;
++ break;
++
++ default:
++ g_warning ("unknown question %d", question);
++ break;
++ }
++}
++
++static void
++pk_backend_transaction_dep_resolve (PkBackend *self)
++{
++ g_return_if_fail (self != NULL);
++
++ pk_backend_set_status (self, PK_STATUS_ENUM_DEP_RESOLVE);
++}
++
++static void
++pk_backend_transaction_test_commit (PkBackend *self)
++{
++ g_return_if_fail (self != NULL);
++
++ pk_backend_set_status (self, PK_STATUS_ENUM_TEST_COMMIT);
++}
++
++static void
++pk_backend_transaction_add_start (PkBackend *self, pmpkg_t *pkg)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++
++ pk_backend_set_status (self, PK_STATUS_ENUM_INSTALL);
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_INSTALLING);
++}
++
++static void
++pk_backend_transaction_add_done (PkBackend *self, pmpkg_t *pkg)
++{
++ const gchar *name, *version;
++ const alpm_list_t *i, *optdepends;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++
++ name = alpm_pkg_get_name (pkg);
++ version = alpm_pkg_get_version (pkg);
++
++ alpm_logaction ("installed %s (%s)\n", name, version);
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
++
++ optdepends = alpm_pkg_get_optdepends (pkg);
++ if (optdepends != NULL) {
++ GString *depends = g_string_new ("");
++
++ g_string_append_printf (depends,
++ "Optional dependencies for %s:\n",
++ name);
++
++ for (i = optdepends; i != NULL; i = i->next) {
++ g_string_append_printf (depends, "%s\n",
++ (const gchar *) i->data);
++ }
++
++ pk_backend_output (self, depends->str);
++ g_string_free (depends, TRUE);
++ }
++}
++
++static void
++pk_backend_transaction_remove_start (PkBackend *self, pmpkg_t *pkg)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++
++ pk_backend_set_status (self, PK_STATUS_ENUM_REMOVE);
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_REMOVING);
++}
++
++static void
++pk_backend_transaction_remove_done (PkBackend *self, pmpkg_t *pkg)
++{
++ const gchar *name, *version;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++
++ name = alpm_pkg_get_name (pkg);
++ version = alpm_pkg_get_version (pkg);
++
++ alpm_logaction ("removed %s (%s)\n", name, version);
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
++}
++
++static void
++pk_backend_transaction_upgrade_start (PkBackend *self, pmpkg_t *pkg,
++ pmpkg_t *old)
++{
++ PkRoleEnum role;
++ PkStatusEnum state;
++ PkInfoEnum info;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++
++ role = pk_backend_get_role (self);
++ if (role == PK_ROLE_ENUM_INSTALL_FILES ||
++ role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES) {
++ state = PK_STATUS_ENUM_INSTALL;
++ info = PK_INFO_ENUM_INSTALLING;
++ } else {
++ state = PK_STATUS_ENUM_UPDATE;
++ info = PK_INFO_ENUM_UPDATING;
++ }
++
++ pk_backend_set_status (self, state);
++ pk_backend_pkg (self, pkg, info);
++}
++
++static void
++pk_backend_transaction_upgrade_done (PkBackend *self, pmpkg_t *pkg,
++ pmpkg_t *old)
++{
++ const gchar *name, *pre, *post;
++ const alpm_list_t *i;
++ alpm_list_t *optdepends;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (pkg != NULL);
++ g_return_if_fail (old != NULL);
++
++ name = alpm_pkg_get_name (pkg);
++ pre = alpm_pkg_get_version (old);
++ post = alpm_pkg_get_version (pkg);
++
++ alpm_logaction ("upgraded %s (%s -> %s)\n", name, pre, post);
++ pk_backend_pkg (self, pkg, PK_INFO_ENUM_FINISHED);
++
++ optdepends = alpm_list_diff (alpm_pkg_get_optdepends (pkg),
++ alpm_pkg_get_optdepends (old),
++ (alpm_list_fn_cmp) g_strcmp0);
++ if (optdepends != NULL) {
++ GString *depends = g_string_new ("");
++
++ g_string_append_printf (depends,
++ "New optional dependencies for %s\n",
++ name);
++
++ for (i = optdepends; i != NULL; i = i->next) {
++ g_string_append_printf (depends, "%s\n",
++ (const gchar *) i->data);
++ }
++
++ pk_backend_output (self, depends->str);
++
++ g_string_free (depends, TRUE);
++ alpm_list_free (optdepends);
++ }
++}
++
++static void
++pk_backend_transaction_event_cb (pmtransevt_t event, gpointer data,
++ gpointer old)
++{
++ g_return_if_fail (backend != NULL);
++
++ /* figure out the backend status and package info */
++ switch (event) {
++ case PM_TRANS_EVT_CHECKDEPS_START:
++ case PM_TRANS_EVT_RESOLVEDEPS_START:
++ pk_backend_transaction_dep_resolve (backend);
++ break;
++
++ case PM_TRANS_EVT_FILECONFLICTS_START:
++ case PM_TRANS_EVT_INTERCONFLICTS_START:
++ case PM_TRANS_EVT_INTEGRITY_START:
++ case PM_TRANS_EVT_DELTA_INTEGRITY_START:
++ case PM_TRANS_EVT_DISKSPACE_START:
++ pk_backend_transaction_test_commit (backend);
++ break;
++
++ case PM_TRANS_EVT_ADD_START:
++ pk_backend_transaction_add_start (backend, data);
++ break;
++
++ case PM_TRANS_EVT_ADD_DONE:
++ pk_backend_transaction_add_done (backend, data);
++ break;
++
++ case PM_TRANS_EVT_REMOVE_START:
++ pk_backend_transaction_remove_start (backend, data);
++ break;
++
++ case PM_TRANS_EVT_REMOVE_DONE:
++ pk_backend_transaction_remove_done (backend, data);
++ break;
++
++ case PM_TRANS_EVT_UPGRADE_START:
++ pk_backend_transaction_upgrade_start (backend, data,
++ old);
++ break;
++
++ case PM_TRANS_EVT_UPGRADE_DONE:
++ pk_backend_transaction_upgrade_done (backend, data,
++ old);
++ break;
++
++ case PM_TRANS_EVT_SCRIPTLET_INFO:
++ pk_backend_output (backend, data);
++ break;
++
++ default:
++ g_debug ("unhandled event %d", event);
++ break;
++ }
++}
++
++static void
++transaction_cancelled_cb (GCancellable *object, gpointer data)
++{
++ g_return_if_fail (data != NULL);
++
++ alpm_trans_interrupt ();
++}
++
++gboolean
++pk_backend_transaction_initialize (PkBackend *self, pmtransflag_t flags,
++ GError **error)
++{
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (cancellable != NULL, FALSE);
++
++ if (alpm_trans_init (flags, pk_backend_transaction_event_cb,
++ pk_backend_transaction_conv_cb,
++ pk_backend_transaction_progress_cb) < 0) {
++ g_set_error_literal (error, ALPM_ERROR, pm_errno,
++ alpm_strerrorlast ());
++ return FALSE;
++ }
++
++ alpm_option_set_dlcb (pk_backend_transaction_dlcb);
++ alpm_option_set_totaldlcb (pk_backend_transaction_totaldlcb);
++
++ g_cancellable_connect (cancellable,
++ G_CALLBACK (transaction_cancelled_cb),
++ self, NULL);
++
++ return TRUE;
++}
++
++static gchar *
++alpm_pkg_build_list (const alpm_list_t *i)
++{
++ GString *list;
++
++ if (i == NULL) {
++ return NULL;
++ } else {
++ list = g_string_new ("");
++ }
++
++ for (; i != NULL; i = i->next) {
++ g_string_append_printf (list, "%s, ",
++ alpm_pkg_get_name (i->data));
++ }
++
++ g_string_truncate (list, list->len - 2);
++ return g_string_free (list, FALSE);
++}
++
++static gchar *
++alpm_miss_build_list (const alpm_list_t *i)
++{
++ GString *list;
++
++ if (i == NULL) {
++ return NULL;
++ } else {
++ list = g_string_new ("");
++ }
++
++ for (; i != NULL; i = i->next) {
++ pmdepend_t *dep = alpm_miss_get_dep (i->data);
++ gchar *depend = alpm_dep_compute_string (dep);
++ g_string_append_printf (list, "%s <- %s, ", depend,
++ alpm_miss_get_target (i->data));
++ free (depend);
++ }
++
++ g_string_truncate (list, list->len - 2);
++ return g_string_free (list, FALSE);
++}
++
++static void
++alpm_dep_free (gpointer dep)
++{
++ /* TODO: remove when implemented in libalpm */
++ free ((gpointer) alpm_dep_get_name (dep));
++ free ((gpointer) alpm_dep_get_version (dep));
++ free (dep);
++}
++
++static void
++alpm_miss_free (gpointer miss)
++{
++ /* TODO: remove when implemented in libalpm */
++ const gchar *temp = alpm_miss_get_causingpkg (miss);
++ if (temp != NULL) {
++ free ((gpointer) temp);
++ }
++
++ free ((gpointer) alpm_miss_get_target (miss));
++ alpm_dep_free (alpm_miss_get_dep (miss));
++ free (miss);
++}
++
++static gchar *
++alpm_conflict_build_list (const alpm_list_t *i)
++{
++ GString *list;
++
++ if (i == NULL) {
++ return NULL;
++ } else {
++ list = g_string_new ("");
++ }
++
++ for (; i != NULL; i = i->next) {
++ const gchar *first = alpm_conflict_get_package1 (i->data);
++ const gchar *second = alpm_conflict_get_package2 (i->data);
++ const gchar *reason = alpm_conflict_get_reason (i->data);
++
++ if (g_strcmp0 (first, reason) == 0 ||
++ g_strcmp0 (second, reason) == 0) {
++ g_string_append_printf (list, "%s <-> %s, ", first,
++ second);
++ } else {
++ g_string_append_printf (list, "%s <-> %s (%s), ", first,
++ second, reason);
++ }
++ }
++
++ g_string_truncate (list, list->len - 2);
++ return g_string_free (list, FALSE);
++}
++
++static void
++alpm_conflict_free (gpointer conflict)
++{
++ /* TODO: remove when implemented in libalpm */
++ free ((gpointer) alpm_conflict_get_package1 (conflict));
++ free ((gpointer) alpm_conflict_get_package2 (conflict));
++ free ((gpointer) alpm_conflict_get_reason (conflict));
++ free (conflict);
++}
++
++static gchar *
++alpm_fileconflict_build_list (const alpm_list_t *i)
++{
++ GString *list;
++
++ if (i == NULL) {
++ return NULL;
++ } else {
++ list = g_string_new ("");
++ }
++
++ for (; i != NULL; i = i->next) {
++ const gchar *target = alpm_fileconflict_get_target (i->data);
++ const gchar *file = alpm_fileconflict_get_file (i->data);
++ const gchar *ctarget = alpm_fileconflict_get_ctarget (i->data);
++ if (*ctarget != '\0') {
++ g_string_append_printf (list, "%s <-> %s (%s), ",
++ target, ctarget, file);
++ } else {
++ g_string_append_printf (list, "%s (%s), ", target,
++ file);
++ }
++ }
++
++ g_string_truncate (list, list->len - 2);
++ return g_string_free (list, FALSE);
++}
++
++static void
++alpm_fileconflict_free (gpointer conflict)
++{
++ /* TODO: remove when implemented in libalpm */
++ const gchar *temp = alpm_fileconflict_get_ctarget (conflict);
++ if (*temp != '\0') {
++ free ((gpointer) temp);
++ }
++
++ free ((gpointer) alpm_fileconflict_get_target (conflict));
++ free ((gpointer) alpm_fileconflict_get_file (conflict));
++ free (conflict);
++}
++
++gboolean
++pk_backend_transaction_simulate (PkBackend *self, GError **error)
++{
++ alpm_list_t *data = NULL;
++ gchar *prefix;
++
++ if (alpm_trans_prepare (&data) >= 0) {
++ return TRUE;
++ }
++
++ switch (pm_errno) {
++ case PM_ERR_PKG_INVALID_ARCH:
++ prefix = alpm_pkg_build_list (data);
++ alpm_list_free (data);
++ break;
++
++ case PM_ERR_UNSATISFIED_DEPS:
++ prefix = alpm_miss_build_list (data);
++ alpm_list_free_inner (data, alpm_miss_free);
++ alpm_list_free (data);
++ break;
++
++ case PM_ERR_CONFLICTING_DEPS:
++ prefix = alpm_conflict_build_list (data);
++ alpm_list_free_inner (data, alpm_conflict_free);
++ alpm_list_free (data);
++ break;
++
++ case PM_ERR_FILE_CONFLICTS:
++ prefix = alpm_fileconflict_build_list (data);
++ alpm_list_free_inner (data, alpm_fileconflict_free);
++ alpm_list_free (data);
++ break;
++
++ default:
++ prefix = NULL;
++ if (data != NULL) {
++ g_warning ("unhandled error %d", pm_errno);
++ }
++ break;
++ }
++
++ if (prefix != NULL) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s", prefix,
++ alpm_strerrorlast ());
++ g_free (prefix);
++ } else {
++ g_set_error_literal (error, ALPM_ERROR, pm_errno,
++ alpm_strerrorlast ());
++ }
++
++ return FALSE;
++}
++
++void
++pk_backend_transaction_packages (PkBackend *self)
++{
++ const alpm_list_t *i;
++ PkInfoEnum info;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (localdb != NULL);
++
++ /* emit packages that would have been installed */
++ for (i = alpm_trans_get_add (); i != NULL; i = i->next) {
++ if (pk_backend_cancelled (self)) {
++ break;
++ } else {
++ const gchar *name = alpm_pkg_get_name (i->data);
++
++ if (alpm_db_get_pkg (localdb, name) != NULL) {
++ info = PK_INFO_ENUM_UPDATING;
++ } else {
++ info = PK_INFO_ENUM_INSTALLING;
++ }
++
++ pk_backend_pkg (self, i->data, info);
++ }
++ }
++
++ switch (pk_backend_get_role (self)) {
++ case PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES:
++ info = PK_INFO_ENUM_OBSOLETING;
++ break;
++
++ default:
++ info = PK_INFO_ENUM_REMOVING;
++ break;
++ }
++
++ /* emit packages that would have been removed */
++ for (i = alpm_trans_get_remove (); i != NULL; i = i->next) {
++ if (pk_backend_cancelled (self)) {
++ break;
++ } else {
++ pk_backend_pkg (self, i->data, info);
++ }
++ }
++}
++
++static gchar *
++alpm_string_build_list (const alpm_list_t *i)
++{
++ GString *list;
++
++ if (i == NULL) {
++ return NULL;
++ } else {
++ list = g_string_new ("");
++ }
++
++ for (; i != NULL; i = i->next) {
++ g_string_append_printf (list, "%s, ", (const gchar *) i->data);
++ }
++
++ g_string_truncate (list, list->len - 2);
++ return g_string_free (list, FALSE);
++}
++
++gboolean
++pk_backend_transaction_commit (PkBackend *self, GError **error)
++{
++ alpm_list_t *data = NULL;
++ gchar *prefix;
++
++ if (pk_backend_cancelled (self)) {
++ return TRUE;
++ }
++
++ pk_backend_set_allow_cancel (self, FALSE);
++ pk_backend_set_status (self, PK_STATUS_ENUM_RUNNING);
++
++ if (alpm_trans_commit (&data) >= 0) {
++ return TRUE;
++ }
++
++ switch (pm_errno) {
++ case PM_ERR_FILE_CONFLICTS:
++ prefix = alpm_fileconflict_build_list (data);
++ alpm_list_free_inner (data, alpm_fileconflict_free);
++ alpm_list_free (data);
++ break;
++
++ case PM_ERR_PKG_INVALID:
++ case PM_ERR_DLT_INVALID:
++ prefix = alpm_string_build_list (data);
++ alpm_list_free (data);
++ break;
++
++ default:
++ prefix = NULL;
++ if (data != NULL) {
++ g_warning ("unhandled error %d", pm_errno);
++ }
++ break;
++ }
++
++ if (prefix != NULL) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "%s: %s", prefix,
++ alpm_strerrorlast ());
++ g_free (prefix);
++ } else {
++ g_set_error_literal (error, ALPM_ERROR, pm_errno,
++ alpm_strerrorlast ());
++ }
++
++ return FALSE;
++}
++
++gboolean
++pk_backend_transaction_end (PkBackend *self, GError **error)
++{
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ alpm_option_set_dlcb (NULL);
++ alpm_option_set_totaldlcb (NULL);
++
++ if (alpm_trans_release () < 0) {
++ g_set_error_literal (error, ALPM_ERROR, pm_errno,
++ alpm_strerrorlast ());
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++gboolean
++pk_backend_transaction_finish (PkBackend *self, GError *error)
++{
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ pk_backend_transaction_end (self, (error == NULL) ? &error : NULL);
++
++ return pk_backend_finish (self, error);
++}
+diff --git a/backends/alpm/pk-backend-transaction.h b/backends/alpm/pk-backend-transaction.h
+new file mode 100644
+index 0000000..7bc1af0
+--- /dev/null
++++ b/backends/alpm/pk-backend-transaction.h
+@@ -0,0 +1,43 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <pk-backend.h>
++
++gboolean pk_backend_transaction_initialize (PkBackend *self,
++ pmtransflag_t flags,
++ GError **error);
++
++gboolean pk_backend_transaction_simulate (PkBackend *self,
++ GError **error);
++
++void pk_backend_transaction_packages (PkBackend *self);
++
++gboolean pk_backend_transaction_commit (PkBackend *self,
++ GError **error);
++
++gboolean pk_backend_transaction_end (PkBackend *self,
++ GError **error);
++
++gboolean pk_backend_transaction_finish (PkBackend *self,
++ GError *error);
+diff --git a/backends/alpm/pk-backend-update.c b/backends/alpm/pk-backend-update.c
+new file mode 100644
+index 0000000..a281953
+--- /dev/null
++++ b/backends/alpm/pk-backend-update.c
+@@ -0,0 +1,443 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
++
++#include <alpm.h>
++#include <glib/gstdio.h>
++#include <pk-backend.h>
++#include <string.h>
++#include <sys/stat.h>
++
++#include "pk-backend-alpm.h"
++#include "pk-backend-error.h"
++#include "pk-backend-packages.h"
++#include "pk-backend-transaction.h"
++#include "pk-backend-update.h"
++
++static gchar *
++alpm_pkg_build_replaces (pmpkg_t *pkg)
++{
++ const alpm_list_t *i;
++ GString *string = NULL;
++
++ g_return_val_if_fail (pkg != NULL, NULL);
++ g_return_val_if_fail (localdb != NULL, NULL);
++
++ /* make a list of the packages that package replaces */
++ for (i = alpm_pkg_get_replaces (pkg); i != NULL; i = i->next) {
++ pmpkg_t *replaces = alpm_db_get_pkg (localdb, i->data);
++
++ if (replaces != NULL) {
++ gchar *package = alpm_pkg_build_id (replaces);
++ if (string == NULL) {
++ string = g_string_new (package);
++ } else {
++ g_string_append_printf (string, "&%s", package);
++ }
++ g_free (package);
++ }
++ }
++
++ if (string != NULL) {
++ return g_string_free (string, FALSE);
++ } else {
++ return NULL;
++ }
++}
++
++static gchar *
++alpm_pkg_build_urls (pmpkg_t *pkg)
++{
++ GString *string = g_string_new ("");
++#ifdef ALPM_PACKAGE_URL
++ const gchar *name, *arch, *repo, *url;
++#else
++ const gchar *url;
++#endif
++
++ g_return_val_if_fail (pkg != NULL, NULL);
++
++ /* grab the URL of the package... */
++ url = alpm_pkg_get_url (pkg);
++ if (url != NULL) {
++ g_string_append_printf (string, "%s;Package website;", url);
++ }
++
++#ifdef ALPM_PACKAGE_URL
++ /* ... and construct the distro URL if possible */
++ name = alpm_pkg_get_name (pkg);
++ arch = alpm_pkg_get_arch (pkg);
++ repo = alpm_db_get_name (alpm_pkg_get_db (pkg));
++
++ g_string_append_printf (string, ALPM_PACKAGE_URL ";Distribution page;",
++ repo, arch, name);
++#endif
++
++ g_string_truncate (string, string->len - 1);
++ return g_string_free (string, FALSE);
++}
++
++static gboolean
++alpm_pkg_same_pkgver (pmpkg_t *a, pmpkg_t *b)
++{
++ const gchar *version_a, *version_b, *last_a, *last_b;
++ gsize length_a, length_b;
++
++ g_return_val_if_fail (a != NULL, (b == NULL));
++ g_return_val_if_fail (b != NULL, FALSE);
++
++ version_a = alpm_pkg_get_version (a);
++ version_b = alpm_pkg_get_version (b);
++
++ last_a = strrchr (version_a, '-');
++ last_b = strrchr (version_b, '-');
++
++ if (last_a != NULL) {
++ length_a = last_a - version_a;
++ } else {
++ length_a = strlen (version_a);
++ }
++
++ if (last_b != NULL) {
++ length_b = last_b - version_b;
++ } else {
++ length_b = strlen (version_b);
++ }
++
++ if (length_a != length_b) {
++ return FALSE;
++ } else {
++ return strncmp (version_a, version_b, length_a) == 0;
++ }
++}
++
++static gboolean
++pk_backend_get_update_detail_thread (PkBackend *self)
++{
++ gchar **packages;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ packages = pk_backend_get_strv (self, "package_ids");
++
++ g_return_val_if_fail (packages != NULL, FALSE);
++
++ /* collect details about updates */
++ for (; *packages != NULL; ++packages) {
++ pmpkg_t *pkg, *old;
++ pmdb_t *db;
++
++ gchar *upgrades, *replaces, *urls;
++ const gchar *reason;
++
++ PkRestartEnum restart;
++ PkUpdateStateEnum state;
++
++ GTimeVal built = { 0 }, installed = { 0 };
++ gchar *issued, *updated;
++
++ if (pk_backend_cancelled (self)) {
++ break;
++ }
++
++ pkg = pk_backend_find_pkg (self, *packages, &error);
++ if (pkg == NULL) {
++ break;
++ }
++
++ old = alpm_db_get_pkg (localdb, alpm_pkg_get_name (pkg));
++ if (old != NULL) {
++ upgrades = alpm_pkg_build_id (old);
++ if (alpm_pkg_same_pkgver (pkg, old)) {
++ reason = "Update to a newer release";
++ } else {
++ reason = "Update to a new upstream version";
++ }
++ } else {
++ upgrades = NULL;
++ reason = "Install to replace an older package";
++ }
++
++ db = alpm_pkg_get_db (pkg);
++ replaces = alpm_pkg_build_replaces (pkg);
++ urls = alpm_pkg_build_urls (pkg);
++
++ if (g_str_has_prefix (alpm_pkg_get_name (pkg), "kernel")) {
++ restart = PK_RESTART_ENUM_SYSTEM;
++ } else {
++ restart = PK_RESTART_ENUM_NONE;
++ }
++
++ if (g_str_has_suffix (alpm_db_get_name (db), "testing")) {
++ state = PK_UPDATE_STATE_ENUM_TESTING;
++ } else {
++ state = PK_UPDATE_STATE_ENUM_STABLE;
++ }
++
++ built.tv_sec = alpm_pkg_get_builddate (pkg);
++ if (built.tv_sec > 0) {
++ issued = g_time_val_to_iso8601 (&built);
++ } else {
++ issued = NULL;
++ }
++
++ if (upgrades != NULL) {
++ installed.tv_sec = alpm_pkg_get_installdate (old);
++ if (installed.tv_sec > 0) {
++ updated = g_time_val_to_iso8601 (&installed);
++ } else {
++ updated = NULL;
++ }
++ } else {
++ updated = NULL;
++ }
++
++ pk_backend_update_detail (self, *packages, upgrades, replaces,
++ urls, NULL, NULL, restart, reason,
++ NULL, state, issued, updated);
++
++ g_free (issued);
++ g_free (updated);
++
++ g_free (urls);
++ g_free (replaces);
++ g_free (upgrades);
++ }
++
++ return pk_backend_finish (self, error);
++}
++
++void
++pk_backend_get_update_detail (PkBackend *self, gchar **package_ids)
++{
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (package_ids != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY,
++ pk_backend_get_update_detail_thread);
++}
++
++static gboolean
++pk_backend_update_databases (PkBackend *self, gint force, GError **error) {
++ alpm_cb_download dlcb;
++ alpm_cb_totaldl totaldlcb;
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ if (!pk_backend_transaction_initialize (self, 0, error)) {
++ return FALSE;
++ }
++
++ alpm_logaction ("synchronizing package lists\n");
++
++ dlcb = alpm_option_get_dlcb ();
++ totaldlcb = alpm_option_get_totaldlcb ();
++
++ /* set total size to minus the number of databases */
++ i = alpm_option_get_syncdbs ();
++ totaldlcb (-alpm_list_count (i));
++
++ for (; i != NULL; i = i->next) {
++ gint result;
++
++ if (pk_backend_cancelled (self)) {
++ /* pretend to be finished */
++ i = NULL;
++ break;
++ }
++
++ result = alpm_db_update (force, i->data);
++
++ if (result > 0) {
++ /* fake the download when already up to date */
++ dlcb ("", 1, 1);
++ } else if (result < 0) {
++ g_set_error (error, ALPM_ERROR, pm_errno, "[%s]: %s",
++ alpm_db_get_name (i->data),
++ alpm_strerrorlast ());
++ break;
++ }
++ }
++
++ totaldlcb (0);
++
++ if (i == NULL) {
++ return pk_backend_transaction_end (self, error);
++ } else {
++ pk_backend_transaction_end (self, NULL);
++ return FALSE;
++ }
++}
++
++static gboolean
++alpm_pkg_is_ignorepkg (pmpkg_t *pkg)
++{
++ const alpm_list_t *ignorepkgs, *ignoregrps, *i;
++
++ g_return_val_if_fail (pkg != NULL, TRUE);
++
++ ignorepkgs = alpm_option_get_ignorepkgs ();
++ if (alpm_list_find_str (ignorepkgs, alpm_pkg_get_name (pkg)) != NULL) {
++ return TRUE;
++ }
++
++ ignoregrps = alpm_option_get_ignoregrps ();
++ for (i = alpm_pkg_get_groups (pkg); i != NULL; i = i->next) {
++ if (alpm_list_find_str (ignoregrps, i->data) != NULL) {
++ return TRUE;
++ }
++ }
++
++ return FALSE;
++}
++
++static gboolean
++alpm_pkg_is_syncfirst (pmpkg_t *pkg)
++{
++ g_return_val_if_fail (pkg != NULL, FALSE);
++
++ if (alpm_list_find_str (syncfirsts, alpm_pkg_get_name (pkg)) != NULL) {
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
++static pmpkg_t *
++alpm_pkg_find_update (pmpkg_t *pkg, const alpm_list_t *dbs)
++{
++ const gchar *name;
++ const alpm_list_t *i;
++
++ g_return_val_if_fail (pkg != NULL, NULL);
++
++ name = alpm_pkg_get_name (pkg);
++
++ for (; dbs != NULL; dbs = dbs->next) {
++ pmpkg_t *update = alpm_db_get_pkg (dbs->data, name);
++
++ if (update != NULL) {
++ if (alpm_pkg_vercmp (alpm_pkg_get_version (update),
++ alpm_pkg_get_version (pkg)) > 0) {
++ return update;
++ } else {
++ return NULL;
++ }
++ }
++
++ i = alpm_db_get_pkgcache (dbs->data);
++ for (; i != NULL; i = i->next) {
++ if (alpm_list_find_str (alpm_pkg_get_replaces (i->data),
++ name) != NULL) {
++ return i->data;
++ }
++ }
++ }
++
++ return NULL;
++}
++
++static gboolean
++pk_backend_get_updates_thread (PkBackend *self)
++{
++ struct stat cache;
++ time_t one_hour_ago;
++ const alpm_list_t *i, *syncdbs;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++ g_return_val_if_fail (localdb != NULL, FALSE);
++
++ time (&one_hour_ago);
++ one_hour_ago -= 60 * 60;
++
++ /* refresh databases if they are older than an hour */
++ if (g_stat (ALPM_CACHE_PATH, &cache) < 0 ||
++ cache.st_mtime < one_hour_ago) {
++ GError *error = NULL;
++ /* show updates even if the databases could not be updated */
++ if (!pk_backend_update_databases (self, 0, &error)) {
++ g_warning ("%s", error->message);
++ }
++ } else {
++ g_debug ("databases have been refreshed recently");
++ }
++
++ /* find outdated and replacement packages */
++ syncdbs = alpm_option_get_syncdbs ();
++ for (i = alpm_db_get_pkgcache (localdb); i != NULL; i = i->next) {
++ pmpkg_t *upgrade = alpm_pkg_find_update (i->data, syncdbs);
++
++ if (pk_backend_cancelled (self)) {
++ break;
++ } else if (upgrade != NULL) {
++ PkInfoEnum info;
++
++ if (alpm_pkg_is_ignorepkg (upgrade)) {
++ info = PK_INFO_ENUM_BLOCKED;
++ } else if (alpm_pkg_is_syncfirst (upgrade)) {
++ info = PK_INFO_ENUM_IMPORTANT;
++ } else {
++ info = PK_INFO_ENUM_NORMAL;
++ }
++
++ pk_backend_pkg (self, upgrade, info);
++ }
++ }
++
++ return pk_backend_finish (self, NULL);
++}
++
++void
++pk_backend_get_updates (PkBackend *self, PkBitfield filters)
++{
++ g_return_if_fail (self != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_QUERY,
++ pk_backend_get_updates_thread);
++}
++
++static gboolean
++pk_backend_refresh_cache_thread (PkBackend *self)
++{
++ gint force;
++ GError *error = NULL;
++
++ g_return_val_if_fail (self != NULL, FALSE);
++
++ /* download databases even if they are older than current */
++ force = (gint) pk_backend_get_bool (self, "force");
++
++ pk_backend_update_databases (self, force, &error);
++ return pk_backend_finish (self, error);
++}
++
++void
++pk_backend_refresh_cache (PkBackend *self, gboolean force)
++{
++ g_return_if_fail (self != NULL);
++
++ pk_backend_run (self, PK_STATUS_ENUM_SETUP,
++ pk_backend_refresh_cache_thread);
++}
+diff --git a/backends/alpm/pk-backend-update.h b/backends/alpm/pk-backend-update.h
+new file mode 100644
+index 0000000..368965a
+--- /dev/null
++++ b/backends/alpm/pk-backend-update.h
+@@ -0,0 +1,22 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
++ *
++ * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
++ * Copyright (C) 2008-2010 Valeriy Lyasotskiy <onestep@ukr.net>
++ * Copyright (C) 2010-2011 Jonathan Conder <jonno.conder@gmail.com>
++ *
++ * Licensed under the GNU General Public License Version 2
++ *
++ * 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.
++ */
+diff --git a/backends/alpm/repos.list b/backends/alpm/repos.list
+new file mode 100644
+index 0000000..191d31d
+--- /dev/null
++++ b/backends/alpm/repos.list
+@@ -0,0 +1 @@
++# Generated by PackageKit
+diff --git a/backends/pacman/Makefile.am b/backends/pacman/Makefile.am
+deleted file mode 100644
+index 9ea0217..0000000
+--- a/backends/pacman/Makefile.am
++++ /dev/null
+@@ -1,53 +0,0 @@
+-INCLUDES = \
+- -DG_LOG_DOMAIN=\"PackageKit-Pacman\"
+-
+-PACMAN_CONFIG_FILE = $(confdir)/pacman.conf
+-PACMAN_GROUP_LIST = $(confdir)/groups.list
+-PACMAN_REPO_LIST = $(confdir)/repos.list
+-PACMAN_REPO_LIST_HEADER = "\# Generated by $(PACKAGE_NAME) - DO NOT MODIFY"
+-PACMAN_CACHE_PATH = $(localstatedir)/lib/pacman/sync
+-PACMAN_PACKAGE_URL = "http://www.archlinux.org/packages/%s/%s/%s/"
+-PACMAN_DEFAULT_PATH = "/bin:/usr/bin:/sbin:/usr/sbin"
+-
+-DEFS = -DPACMAN_CONFIG_FILE=\"$(PACMAN_CONFIG_FILE)\" \
+- -DPACMAN_GROUP_LIST=\"$(PACMAN_GROUP_LIST)\" \
+- -DPACMAN_REPO_LIST=\"$(PACMAN_REPO_LIST)\" \
+- -DPACMAN_REPO_LIST_HEADER=\"$(PACMAN_REPO_LIST_HEADER)\" \
+- -DPACMAN_CACHE_PATH=\"$(PACMAN_CACHE_PATH)\" \
+- -DPACMAN_PACKAGE_URL=\"$(PACMAN_PACKAGE_URL)\" \
+- -DPACMAN_DEFAULT_PATH=\"$(PACMAN_DEFAULT_PATH)\"
+-
+-confdir = $(PK_CONF_DIR)/pacman.d
+-conf_DATA = groups.list \
+- pacman.conf \
+- repos.list
+-
+-plugindir = $(PK_PLUGIN_DIR)
+-plugin_LTLIBRARIES = libpk_backend_pacman.la
+-
+-libpk_backend_pacman_la_SOURCES = backend-depends.c \
+- backend-error.c \
+- backend-groups.c \
+- backend-install.c \
+- backend-packages.c \
+- backend-pacman.c \
+- backend-remove.c \
+- backend-repos.c \
+- backend-search.c \
+- backend-transaction.c \
+- backend-update.c
+-libpk_backend_pacman_la_LIBADD = $(PK_PLUGIN_LIBS) \
+- $(PACMAN_LIBS)
+-libpk_backend_pacman_la_LDFLAGS = -module -avoid-version
+-libpk_backend_pacman_la_CFLAGS = $(PK_PLUGIN_CFLAGS) \
+- $(PACMAN_CFLAGS) \
+- $(WARNINGFLAGS_C)
+-
+-repos.list:
+- echo $(PACMAN_REPO_LIST_HEADER) > $@
+-
+-BUILT_SOURCES = repos.list
+-
+-EXTRA_DIST = $(conf_DATA) $(libpk_backend_pacman_la_SOURCES:.c=.h)
+-
+-CLEANFILES = $(BUILT_SOURCES)
+diff --git a/backends/pacman/backend-depends.c b/backends/pacman/backend-depends.c
+deleted file mode 100644
+index 9bd2324..0000000
+--- a/backends/pacman/backend-depends.c
++++ /dev/null
+@@ -1,298 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include "backend-packages.h"
+-#include "backend-pacman.h"
+-#include "backend-repos.h"
+-#include "backend-depends.h"
+-
+-static PacmanPackage *
+-pacman_list_find_provider (const PacmanList *packages, PacmanDependency *depend)
+-{
+- const PacmanList *list;
+-
+- g_return_val_if_fail (depend != NULL, NULL);
+-
+- /* find a package that provides depend */
+- for (list = packages; list != NULL; list = pacman_list_next (list)) {
+- PacmanPackage *provider = (PacmanPackage *) pacman_list_get (list);
+-
+- if (pacman_dependency_satisfied_by (depend, provider)) {
+- return provider;
+- }
+- }
+-
+- return NULL;
+-}
+-
+-static PacmanPackage *
+-pacman_sync_databases_find_provider (PacmanDependency *depend)
+-{
+- const PacmanList *databases;
+-
+- g_return_val_if_fail (pacman != NULL, NULL);
+- g_return_val_if_fail (depend != NULL, NULL);
+-
+- /* find the default package that provides depend */
+- for (databases = pacman_manager_get_sync_databases (pacman); databases != NULL; databases = pacman_list_next (databases)) {
+- PacmanDatabase *database = (PacmanDatabase *) pacman_list_get (databases);
+- PacmanPackage *provider = pacman_database_find_package (database, pacman_dependency_get_name (depend));
+-
+- if (provider != NULL && pacman_dependency_satisfied_by (depend, provider)) {
+- return provider;
+- }
+- }
+-
+- /* find any package that provides depend */
+- for (databases = pacman_manager_get_sync_databases (pacman); databases != NULL; databases = pacman_list_next (databases)) {
+- PacmanDatabase *database = (PacmanDatabase *) pacman_list_get (databases);
+- PacmanPackage *provider = pacman_list_find_provider (pacman_database_get_packages (database), depend);
+-
+- if (provider != NULL) {
+- return provider;
+- }
+- }
+-
+- return NULL;
+-}
+-
+-static gboolean
+-backend_get_depends_thread (PkBackend *backend)
+-{
+- guint iterator;
+- PacmanList *list, *packages = NULL;
+-
+- PkBitfield filters;
+- gchar **package_ids;
+- gboolean recursive;
+-
+- gboolean search_installed;
+- gboolean search_not_installed;
+-
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+- recursive = pk_backend_get_bool (backend, "recursive");
+-
+- g_return_val_if_fail (package_ids != NULL, FALSE);
+-
+- filters = pk_backend_get_uint (backend, "filters");
+- search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+- search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
+-
+- /* construct an initial package list */
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- PacmanPackage *package = backend_get_package (backend, package_ids[iterator]);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else if (package == NULL) {
+- pacman_list_free (packages);
+- backend_finished (backend);
+- return FALSE;
+- }
+-
+- packages = pacman_list_add (packages, package);
+- }
+-
+- /* package list might be modified along the way but that is ok */
+- for (list = packages; list != NULL; list = pacman_list_next (list)) {
+- PacmanPackage *package = (PacmanPackage *) pacman_list_get (list);
+- const PacmanList *depends;
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- for (depends = pacman_package_get_dependencies (package); depends != NULL; depends = pacman_list_next (depends)) {
+- PacmanDependency *depend = (PacmanDependency *) pacman_list_get (depends);
+- PacmanPackage *provider = pacman_list_find_provider (packages, depend);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else if (provider != NULL) {
+- continue;
+- }
+-
+- /* look for installed dependencies */
+- provider = pacman_list_find_provider (pacman_database_get_packages (local_database), depend);
+- if (provider != NULL) {
+- /* don't emit when not needed... */
+- if (!search_not_installed) {
+- backend_package (backend, provider, PK_INFO_ENUM_INSTALLED);
+- /* ... and assume installed packages also have installed dependencies */
+- if (recursive) {
+- packages = pacman_list_add (packages, provider);
+- }
+- }
+- continue;
+- }
+-
+- /* look for non-installed dependencies */
+- provider = pacman_sync_databases_find_provider (depend);
+- if (provider != NULL) {
+- /* don't emit when not needed... */
+- if (!search_installed) {
+- backend_package (backend, provider, PK_INFO_ENUM_AVAILABLE);
+- }
+- /* ... but keep looking for installed dependencies */
+- if (recursive) {
+- packages = pacman_list_add (packages, provider);
+- }
+- } else {
+- gchar *depend_id = pacman_dependency_to_string (depend);
+- pk_backend_error_code (backend, PK_ERROR_ENUM_DEP_RESOLUTION_FAILED, "Could not resolve dependency %s", depend_id);
+- g_free (depend_id);
+-
+- pacman_list_free (packages);
+- backend_finished (backend);
+- return FALSE;
+- }
+- }
+- }
+-
+- pacman_list_free (packages);
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_depends:
+- **/
+-void
+-backend_get_depends (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_get_depends_thread);
+-}
+-
+-static PacmanPackage *
+-pacman_list_find_package (const PacmanList *packages, const gchar *name)
+-{
+- const PacmanList *list;
+-
+- g_return_val_if_fail (name != NULL, NULL);
+-
+- /* find a package called name */
+- for (list = packages; list != NULL; list = pacman_list_next (list)) {
+- PacmanPackage *package = (PacmanPackage *) pacman_list_get (list);
+-
+- if (g_strcmp0 (name, pacman_package_get_name (package)) == 0) {
+- return package;
+- }
+- }
+-
+- return NULL;
+-}
+-
+-static gboolean
+-backend_get_requires_thread (PkBackend *backend)
+-{
+- guint iterator;
+- PacmanList *list, *packages = NULL;
+-
+- gchar **package_ids;
+- gboolean recursive;
+-
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+- recursive = pk_backend_get_bool (backend, "recursive");
+-
+- g_return_val_if_fail (package_ids != NULL, FALSE);
+-
+- /* construct an initial package list */
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- PacmanPackage *package = backend_get_package (backend, package_ids[iterator]);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else if (package == NULL) {
+- pacman_list_free (packages);
+- backend_finished (backend);
+- return FALSE;
+- }
+-
+- packages = pacman_list_add (packages, package);
+- }
+-
+- /* package list might be modified along the way but that is ok */
+- for (list = packages; list != NULL; list = pacman_list_next (list)) {
+- PacmanPackage *package = (PacmanPackage *) pacman_list_get (list);
+- PacmanList *requires, *required_by = pacman_package_find_required_by (package);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- for (requires = required_by; requires != NULL; requires = pacman_list_next (requires)) {
+- const gchar *name = (const gchar *) pacman_list_get (requires);
+- PacmanPackage *requirer = pacman_list_find_package (packages, name);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else if (requirer != NULL) {
+- continue;
+- }
+-
+- /* look for installed requirers */
+- requirer = pacman_database_find_package (local_database, name);
+- if (requirer == NULL) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, "Could not find package %s", name);
+-
+- pacman_list_free_full (required_by, g_free);
+- pacman_list_free (packages);
+- backend_finished (backend);
+- return FALSE;
+- }
+-
+- backend_package (backend, requirer, PK_INFO_ENUM_INSTALLED);
+- if (recursive) {
+- packages = pacman_list_add (packages, requirer);
+- }
+- }
+-
+- pacman_list_free_full (required_by, g_free);
+- }
+-
+- pacman_list_free (packages);
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_requires:
+- **/
+-void
+-backend_get_requires (PkBackend *backend, PkBitfield filters, gchar **package_ids, gboolean recursive)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_get_requires_thread);
+-}
+diff --git a/backends/pacman/backend-depends.h b/backends/pacman/backend-depends.h
+deleted file mode 100644
+index c6f7b6a..0000000
+--- a/backends/pacman/backend-depends.h
++++ /dev/null
+@@ -1,33 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pk-backend.h>
+-
+-void backend_get_depends (PkBackend *backend,
+- PkBitfield filters,
+- gchar **package_ids,
+- gboolean recursive);
+-void backend_get_requires (PkBackend *backend,
+- PkBitfield filters,
+- gchar **package_ids,
+- gboolean recursive);
+diff --git a/backends/pacman/backend-error.c b/backends/pacman/backend-error.c
+deleted file mode 100644
+index 2336508..0000000
+--- a/backends/pacman/backend-error.c
++++ /dev/null
+@@ -1,185 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include "backend-error.h"
+-
+-void
+-backend_error (PkBackend *backend, GError *error)
+-{
+- PkErrorEnum code = PK_ERROR_ENUM_INTERNAL_ERROR;
+-
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (error != NULL);
+-
+- /* convert error codes */
+- if (error->domain == PACMAN_ERROR) {
+- switch (error->code) {
+- case PACMAN_ERROR_MEMORY:
+- code = PK_ERROR_ENUM_OOM;
+- break;
+-
+- case PACMAN_ERROR_SYSTEM:
+- case PACMAN_ERROR_INVALID_ARGS:
+- case PACMAN_ERROR_NOT_INITIALIZED:
+- case PACMAN_ERROR_DATABASE_NOT_INITIALIZED:
+- case PACMAN_ERROR_SERVER_INVALID_URL:
+- case PACMAN_ERROR_REGEX_INVALID:
+- case PACMAN_ERROR_LIBARCHIVE:
+- case PACMAN_ERROR_LIBFETCH:
+- case PACMAN_ERROR_DOWNLOAD_HANDLER:
+- code = PK_ERROR_ENUM_INTERNAL_ERROR;
+- break;
+-
+- case PACMAN_ERROR_NOT_PERMITTED:
+- code = PK_ERROR_ENUM_NOT_AUTHORIZED;
+- break;
+-
+- case PACMAN_ERROR_FILE_NOT_FOUND:
+- case PACMAN_ERROR_DIRECTORY_NOT_FOUND:
+- code = PK_ERROR_ENUM_FILE_NOT_FOUND;
+- break;
+-
+- case PACMAN_ERROR_ALREADY_INITIALIZED:
+- case PACMAN_ERROR_DATABASE_ALREADY_INITIALIZED:
+- code = PK_ERROR_ENUM_FAILED_INITIALIZATION;
+- break;
+-
+- case PACMAN_ERROR_ALREADY_RUNNING:
+- code = PK_ERROR_ENUM_CANNOT_GET_LOCK;
+- break;
+-
+- case PACMAN_ERROR_DATABASE_OPEN_FAILED:
+- code = PK_ERROR_ENUM_REPO_NOT_FOUND;
+- break;
+-
+- case PACMAN_ERROR_DATABASE_CREATE_FAILED:
+- code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG;
+- break;
+-
+- case PACMAN_ERROR_DATABASE_NOT_FOUND:
+- code = PK_ERROR_ENUM_REPO_NOT_FOUND;
+- break;
+-
+- case PACMAN_ERROR_DATABASE_UPDATE_FAILED:
+- code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE;
+- break;
+-
+- case PACMAN_ERROR_DATABASE_REMOVE_FAILED:
+- code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR;
+- break;
+-
+- case PACMAN_ERROR_SERVER_NONE_AVAILABLE:
+- code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY;
+- break;
+-
+- case PACMAN_ERROR_TRANSACTION_ALREADY_INITIALIZED:
+- case PACMAN_ERROR_TRANSACTION_NOT_INITIALIZED:
+- case PACMAN_ERROR_TRANSACTION_DUPLICATE_TARGET:
+- case PACMAN_ERROR_TRANSACTION_NOT_READY:
+- case PACMAN_ERROR_TRANSACTION_NOT_PREPARED:
+- case PACMAN_ERROR_TRANSACTION_INVALID_OPERATION:
+- case PACMAN_ERROR_TRANSACTION_NOT_LOCKED:
+- code = PK_ERROR_ENUM_TRANSACTION_ERROR;
+- break;
+-
+- case PACMAN_ERROR_TRANSACTION_ABORTED:
+- code = PK_ERROR_ENUM_TRANSACTION_CANCELLED;
+- break;
+-
+- case PACMAN_ERROR_PACKAGE_NOT_FOUND:
+- code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
+- break;
+-
+- case PACMAN_ERROR_PACKAGE_IGNORED:
+- code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED;
+- break;
+-
+- case PACMAN_ERROR_DELTA_INVALID:
+- case PACMAN_ERROR_PACKAGE_INVALID:
+- code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE;
+- break;
+-
+- case PACMAN_ERROR_PACKAGE_OPEN_FAILED:
+- code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND;
+- break;
+-
+- case PACMAN_ERROR_PACKAGE_REMOVE_FAILED:
+- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE;
+- break;
+-
+- case PACMAN_ERROR_PACKAGE_UNKNOWN_FILENAME:
+- case PACMAN_ERROR_PACKAGE_DATABASE_NOT_FOUND:
+- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_CONFIGURE;
+- break;
+-
+- case PACMAN_ERROR_DELTA_PATCH_FAILED:
+- code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD;
+- break;
+-
+- case PACMAN_ERROR_DEPENDENCY_UNSATISFIED:
+- code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED;
+- break;
+-
+- case PACMAN_ERROR_CONFLICT:
+- code = PK_ERROR_ENUM_PACKAGE_CONFLICTS;
+- break;
+-
+- case PACMAN_ERROR_FILE_CONFLICT:
+- code = PK_ERROR_ENUM_FILE_CONFLICTS;
+- break;
+-
+- case PACMAN_ERROR_DOWNLOAD_FAILED:
+- code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED;
+- break;
+-
+- case PACMAN_ERROR_CONFIG_INVALID:
+- code = PK_ERROR_ENUM_FAILED_CONFIG_PARSING;
+- break;
+-
+- case PACMAN_ERROR_PACKAGE_HELD:
+- code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE;
+- break;
+- }
+- }
+-
+- pk_backend_error_code (backend, code, "%s", error->message);
+- g_error_free (error);
+-}
+-
+-void
+-backend_message (PkBackend *backend, const gchar *message)
+-{
+- guint iterator;
+- gchar **messages = g_strsplit_set (message, "\r\n", 0);
+-
+- /* display multi-line messages in a nice format */
+- for (iterator = 0; messages[iterator] != NULL; ++iterator) {
+- g_strstrip (messages[iterator]);
+- if (*messages[iterator] != '\0') {
+- pk_backend_message (backend, PK_MESSAGE_ENUM_UNKNOWN, "%s", messages[iterator]);
+- }
+- }
+-
+- g_strfreev (messages);
+-}
+diff --git a/backends/pacman/backend-error.h b/backends/pacman/backend-error.h
+deleted file mode 100644
+index 2be8021..0000000
+--- a/backends/pacman/backend-error.h
++++ /dev/null
+@@ -1,29 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pk-backend.h>
+-
+-void backend_error (PkBackend *backend,
+- GError *error);
+-void backend_message (PkBackend *backend,
+- const gchar *message);
+diff --git a/backends/pacman/backend-groups.c b/backends/pacman/backend-groups.c
+deleted file mode 100644
+index 95ebce6..0000000
+--- a/backends/pacman/backend-groups.c
++++ /dev/null
+@@ -1,150 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <string.h>
+-#include <gio/gio.h>
+-#include "backend-error.h"
+-#include "backend-groups.h"
+-
+-static GHashTable *group_map = NULL;
+-static PkBitfield groups = 0;
+-
+-static GHashTable *
+-group_map_new (GError **error)
+-{
+- GHashTable *map;
+- GFile *file;
+-
+- GFileInputStream *file_stream;
+- GDataInputStream *data_stream;
+-
+- gchar *key, *value;
+- GError *e = NULL;
+-
+- g_debug ("pacman: reading groups from %s", PACMAN_GROUP_LIST);
+- file = g_file_new_for_path (PACMAN_GROUP_LIST);
+- file_stream = g_file_read (file, NULL, &e);
+-
+- if (file_stream == NULL) {
+- g_object_unref (file);
+- g_propagate_error (error, e);
+- return NULL;
+- }
+-
+- map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+- data_stream = g_data_input_stream_new (G_INPUT_STREAM (file_stream));
+-
+- /* read groups line by line, ignoring comments */
+- while ((value = g_data_input_stream_read_line (data_stream, NULL, NULL, &e)) != NULL) {
+- PkGroupEnum group;
+-
+- g_strstrip (value);
+- if (*value == '\0' || *value == '#') {
+- g_free (value);
+- continue;
+- }
+-
+- /* line format: alpm-group (space|tab)+ packagekit-group */
+- key = strsep (&value, " ");
+- g_strchomp (key);
+-
+- if (value == NULL) {
+- /* safe to cast as it is never freed or modified */
+- value = (gchar *) "other";
+- group = PK_GROUP_ENUM_OTHER;
+- } else {
+- g_strchug (value);
+- group = pk_group_enum_from_string (value);
+- }
+-
+- if (group != PK_GROUP_ENUM_UNKNOWN) {
+- /* use replace because key and value are allocated together */
+- g_hash_table_replace (map, key, value);
+- pk_bitfield_add (groups, group);
+- }
+- }
+-
+- g_object_unref (data_stream);
+- g_object_unref (file_stream);
+- g_object_unref (file);
+-
+- if (e != NULL) {
+- g_hash_table_unref (map);
+- g_propagate_error (error, e);
+- return NULL;
+- } else {
+- return map;
+- }
+-}
+-
+-gboolean
+-backend_initialize_groups (PkBackend *backend, GError **error)
+-{
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- group_map = group_map_new (error);
+- if (group_map == NULL) {
+- return FALSE;
+- }
+-
+- return TRUE;
+-}
+-
+-void
+-backend_destroy_groups (PkBackend *backend)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- if (group_map != NULL) {
+- g_hash_table_unref (group_map);
+- }
+-}
+-
+-const gchar *
+-pacman_package_get_group (PacmanPackage *package)
+-{
+- const PacmanList *list;
+-
+- g_return_val_if_fail (group_map != NULL, NULL);
+- g_return_val_if_fail (package != NULL, NULL);
+-
+- /* use the first group that we recognise */
+- for (list = pacman_package_get_groups (package); list != NULL; list = pacman_list_next (list)) {
+- gpointer value = g_hash_table_lookup (group_map, pacman_list_get (list));
+- if (value != NULL) {
+- return (const gchar *) value;
+- }
+- }
+-
+- return "other";
+-}
+-
+-/**
+- * backend_get_groups:
+- **/
+-PkBitfield backend_get_groups (PkBackend *backend)
+-{
+- g_return_val_if_fail (backend != NULL, 0);
+-
+- return groups;
+-}
+diff --git a/backends/pacman/backend-groups.h b/backends/pacman/backend-groups.h
+deleted file mode 100644
+index 9642015..0000000
+--- a/backends/pacman/backend-groups.h
++++ /dev/null
+@@ -1,32 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include <pk-backend.h>
+-
+-gboolean backend_initialize_groups (PkBackend *backend,
+- GError **error);
+-void backend_destroy_groups (PkBackend *backend);
+-
+-const gchar *pacman_package_get_group (PacmanPackage *package);
+-PkBitfield backend_get_groups (PkBackend *backend);
+diff --git a/backends/pacman/backend-install.c b/backends/pacman/backend-install.c
+deleted file mode 100644
+index 5c188cc..0000000
+--- a/backends/pacman/backend-install.c
++++ /dev/null
+@@ -1,348 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include "backend-error.h"
+-#include "backend-pacman.h"
+-#include "backend-packages.h"
+-#include "backend-repos.h"
+-#include "backend-transaction.h"
+-#include "backend-install.h"
+-
+-static PacmanList *
+-backend_transaction_list_targets (PkBackend *backend)
+-{
+- gchar **package_ids;
+- guint iterator;
+- PacmanList *list = NULL;
+-
+- g_return_val_if_fail (backend != NULL, NULL);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+-
+- g_return_val_if_fail (package_ids != NULL, NULL);
+-
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
+- list = pacman_list_add (list, g_strdup_printf ("%s/%s", package_id_data[PK_PACKAGE_ID_DATA], package_id_data[PK_PACKAGE_ID_NAME]));
+- g_strfreev (package_id_data);
+- }
+-
+- return list;
+-}
+-
+-static gboolean
+-backend_download_packages_thread (PkBackend *backend)
+-{
+- PacmanList *list;
+- PacmanList *cache_paths;
+- const gchar *directory;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_IGNORE_DEPENDENCIES |
+- PACMAN_TRANSACTION_FLAGS_IGNORE_DEPENDENCY_CONFLICTS |
+- PACMAN_TRANSACTION_FLAGS_SYNC_DOWNLOAD_ONLY;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- directory = pk_backend_get_string (backend, "directory");
+-
+- g_return_val_if_fail (directory != NULL, FALSE);
+-
+- /* download files to a PackageKit directory */
+- cache_paths = pacman_list_strdup (pacman_manager_get_cache_paths (pacman));
+- pacman_manager_set_cache_paths (pacman, NULL);
+- pacman_manager_add_cache_path (pacman, directory);
+-
+- /* run the transaction */
+- list = backend_transaction_list_targets (backend);
+- if (list != NULL) {
+- transaction = backend_transaction_run (backend, PACMAN_TRANSACTION_SYNC, flags, list);
+- pacman_list_free_full (list, g_free);
+- }
+-
+- pacman_manager_set_cache_paths (pacman, cache_paths);
+- pacman_list_free_full (cache_paths, g_free);
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_download_packages:
+- **/
+-void
+-backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar *directory)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+- g_return_if_fail (directory != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_download_packages_thread);
+-}
+-
+-static gboolean
+-backend_install_files_thread (PkBackend *backend)
+-{
+- guint iterator;
+- PacmanList *list = NULL;
+-
+- /* FS#5331: use only_trusted */
+- gchar **full_paths;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_NONE;
+-
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- full_paths = pk_backend_get_strv (backend, "full_paths");
+-
+- g_return_val_if_fail (full_paths != NULL, FALSE);
+-
+- /* run the transaction */
+- for (iterator = 0; full_paths[iterator] != NULL; ++iterator) {
+- list = pacman_list_add (list, full_paths[iterator]);
+- }
+- if (list != NULL) {
+- transaction = backend_transaction_run (backend, PACMAN_TRANSACTION_INSTALL, flags, list);
+- pacman_list_free (list);
+- }
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_install_files:
+- **/
+-void
+-backend_install_files (PkBackend *backend, gboolean only_trusted, gchar **full_paths)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (full_paths != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_install_files_thread);
+-}
+-
+-static gboolean
+-backend_simulate_install_files_thread (PkBackend *backend)
+-{
+- guint iterator;
+- PacmanList *list = NULL;
+-
+- gchar **full_paths;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_NONE;
+-
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- full_paths = pk_backend_get_strv (backend, "full_paths");
+-
+- g_return_val_if_fail (full_paths != NULL, FALSE);
+-
+- /* prepare the transaction */
+- for (iterator = 0; full_paths[iterator] != NULL; ++iterator) {
+- list = pacman_list_add (list, full_paths[iterator]);
+- }
+- if (list != NULL) {
+- transaction = backend_transaction_simulate (backend, PACMAN_TRANSACTION_INSTALL, flags, list);
+- pacman_list_free (list);
+-
+- if (transaction != NULL) {
+- /* emit packages that would have been installed or removed */
+- backend_transaction_packages (backend, transaction);
+- }
+- }
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_install_files:
+- **/
+-void
+-backend_simulate_install_files (PkBackend *backend, gchar **full_paths)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (full_paths != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_simulate_install_files_thread);
+-}
+-
+-static gboolean
+-backend_install_packages_thread (PkBackend *backend)
+-{
+- PacmanList *list;
+- /* FS#5331: use only_trusted */
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_NONE;
+-
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- /* run the transaction */
+- list = backend_transaction_list_targets (backend);
+- if (list != NULL) {
+- transaction = backend_transaction_run (backend, PACMAN_TRANSACTION_SYNC, flags, list);
+- pacman_list_free_full (list, g_free);
+- }
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_install_packages:
+- **/
+-void
+-backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_install_packages_thread);
+-}
+-
+-static gboolean
+-backend_simulate_install_packages_thread (PkBackend *backend)
+-{
+- PacmanList *list;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_NONE;
+-
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- /* prepare the transaction */
+- list = backend_transaction_list_targets (backend);
+- if (list != NULL) {
+- transaction = backend_transaction_simulate (backend, PACMAN_TRANSACTION_SYNC, flags, list);
+- pacman_list_free_full (list, g_free);
+-
+- if (transaction != NULL) {
+- /* emit packages that would have been installed or removed */
+- backend_transaction_packages (backend, transaction);
+- }
+- }
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_simulate_install_packages:
+- **/
+-void
+-backend_simulate_install_packages (PkBackend *backend, gchar **package_ids)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_simulate_install_packages_thread);
+-}
+-
+-static gboolean
+-backend_update_packages_thread (PkBackend *backend)
+-{
+- PacmanList *list, *asdeps = NULL;
+- /* FS#5331: use only_trusted */
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags sflags = PACMAN_TRANSACTION_FLAGS_NONE, mflags = PACMAN_TRANSACTION_FLAGS_INSTALL_IMPLICIT;
+-
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- /* prepare the transaction */
+- list = backend_transaction_list_targets (backend);
+- if (list != NULL) {
+- transaction = backend_transaction_simulate (backend, PACMAN_TRANSACTION_SYNC, sflags, list);
+- pacman_list_free_full (list, g_free);
+-
+- if (transaction != NULL) {
+- const PacmanList *installs, *removes;
+-
+- /* change the install reason of for packages that replace only dependencies of other packages */
+- for (installs = pacman_transaction_get_installs (transaction); installs != NULL; installs = pacman_list_next (installs)) {
+- PacmanPackage *install = (PacmanPackage *) pacman_list_get (installs);
+- const gchar *name = pacman_package_get_name (install);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else if (pacman_database_find_package (local_database, name) == NULL) {
+- const PacmanList *replaces = pacman_package_get_replaces (install);
+-
+- for (removes = pacman_transaction_get_removes (transaction); removes != NULL; removes = pacman_list_next (removes)) {
+- PacmanPackage *remove = (PacmanPackage *) pacman_list_get (removes);
+- const gchar *replace = pacman_package_get_name (remove);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else if (pacman_list_find_string (replaces, replace)) {
+- if (pacman_package_was_explicitly_installed (remove)) {
+- break;
+- }
+- }
+- }
+-
+- /* none of the replaced packages were installed explicitly */
+- if (removes == NULL) {
+- asdeps = pacman_list_add (asdeps, g_strdup (name));
+- }
+- }
+- }
+-
+- transaction = backend_transaction_commit (backend, transaction);
+- }
+- }
+-
+- /* mark replacements as deps if required */
+- if (asdeps != NULL) {
+- if (transaction != NULL) {
+- g_object_unref (transaction);
+- transaction = backend_transaction_run (backend, PACMAN_TRANSACTION_MODIFY, mflags, asdeps);
+- }
+- pacman_list_free_full (asdeps, g_free);
+- }
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_update_packages:
+- **/
+-void
+-backend_update_packages (PkBackend *backend, gboolean only_trusted, gchar **package_ids)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_update_packages_thread);
+-}
+-
+-/**
+- * backend_simulate_update_packages:
+- **/
+-void
+-backend_simulate_update_packages (PkBackend *backend, gchar **package_ids)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_simulate_install_packages_thread);
+-}
+diff --git a/backends/pacman/backend-install.h b/backends/pacman/backend-install.h
+deleted file mode 100644
+index 0685a48..0000000
+--- a/backends/pacman/backend-install.h
++++ /dev/null
+@@ -1,45 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pk-backend.h>
+-
+-void backend_download_packages (PkBackend *backend,
+- gchar **package_ids,
+- const gchar *directory);
+-void backend_install_files (PkBackend *backend,
+- gboolean only_trusted,
+- gchar **full_paths);
+-void backend_simulate_install_files (PkBackend *backend,
+- gchar **full_paths);
+-
+-void backend_install_packages (PkBackend *backend,
+- gboolean only_trusted,
+- gchar **package_ids);
+-void backend_simulate_install_packages (PkBackend *backend,
+- gchar **package_ids);
+-
+-void backend_update_packages (PkBackend *backend,
+- gboolean only_trusted,
+- gchar **package_ids);
+-void backend_simulate_update_packages (PkBackend *backend,
+- gchar **package_ids);
+diff --git a/backends/pacman/backend-packages.c b/backends/pacman/backend-packages.c
+deleted file mode 100644
+index a00f107..0000000
+--- a/backends/pacman/backend-packages.c
++++ /dev/null
+@@ -1,345 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include "backend-groups.h"
+-#include "backend-pacman.h"
+-#include "backend-repos.h"
+-#include "backend-packages.h"
+-
+-gchar *
+-pacman_package_make_id (PacmanPackage *package)
+-{
+- const gchar *name, *version, *arch, *repo;
+- PacmanDatabase *database;
+-
+- g_return_val_if_fail (local_database != NULL, NULL);
+- g_return_val_if_fail (package != NULL, NULL);
+-
+- name = pacman_package_get_name (package);
+- version = pacman_package_get_version (package);
+-
+- arch = pacman_package_get_arch (package);
+- if (arch == NULL) {
+- arch = "any";
+- }
+-
+- /* PackageKit requires "local" for package files and "installed" for installed packages */
+- database = pacman_package_get_database (package);
+- if (database == NULL) {
+- repo = "local";
+- } else if (database == local_database) {
+- repo = "installed";
+- } else {
+- repo = pacman_database_get_name (database);
+- }
+-
+- return pk_package_id_build (name, version, arch, repo);
+-}
+-
+-void
+-backend_package (PkBackend *backend, PacmanPackage *package, PkInfoEnum info)
+-{
+- gchar *package_id;
+-
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package != NULL);
+-
+- /* build and emit package id */
+- package_id = pacman_package_make_id (package);
+- pk_backend_package (backend, info, package_id, pacman_package_get_description (package));
+- g_free (package_id);
+-}
+-
+-PacmanPackage *
+-backend_get_package (PkBackend *backend, const gchar *package_id)
+-{
+- gchar **package_id_data;
+- const gchar *repo;
+- PacmanDatabase *database;
+- PacmanPackage *package;
+-
+- g_return_val_if_fail (pacman != NULL, NULL);
+- g_return_val_if_fail (local_database != NULL, NULL);
+- g_return_val_if_fail (backend != NULL, NULL);
+- g_return_val_if_fail (package_id != NULL, NULL);
+-
+- package_id_data = pk_package_id_split (package_id);
+- repo = package_id_data[PK_PACKAGE_ID_DATA];
+-
+- /* find the database to search in */
+- if (g_strcmp0 (repo, "installed") == 0) {
+- database = local_database;
+- } else {
+- database = pacman_manager_find_sync_database (pacman, repo);
+- }
+-
+- if (database == NULL) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, "Could not find repo [%s]", repo);
+- g_strfreev (package_id_data);
+- return NULL;
+- }
+-
+- /* find the package in the database */
+- package = pacman_database_find_package (database, package_id_data[PK_PACKAGE_ID_NAME]);
+- if (package == NULL || g_strcmp0 (pacman_package_get_version (package), package_id_data[PK_PACKAGE_ID_VERSION]) != 0) {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "Could not find package with ID %s", package_id);
+- g_strfreev (package_id_data);
+- return NULL;
+- }
+-
+- g_strfreev (package_id_data);
+- return package;
+-}
+-
+-static gboolean
+-backend_resolve_thread (PkBackend *backend)
+-{
+- guint iterator;
+-
+- gchar **package_ids;
+- PkBitfield filters;
+-
+- gboolean search_installed;
+- gboolean search_not_installed;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+- filters = pk_backend_get_uint (backend, "filters");
+-
+- g_return_val_if_fail (package_ids != NULL, FALSE);
+-
+- search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+- search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
+-
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- /* find a package with the given id or name */
+- if (pk_package_id_check (package_ids[iterator])) {
+- PacmanPackage *package = backend_get_package (backend, package_ids[iterator]);
+- if (package == NULL) {
+- backend_finished (backend);
+- return FALSE;
+- }
+-
+- /* don't emit when not needed */
+- if (pacman_package_get_database (package) == local_database) {
+- if (!search_not_installed) {
+- backend_package (backend, package, PK_INFO_ENUM_INSTALLED);
+- }
+- } else {
+- if (!search_installed) {
+- backend_package (backend, package, PK_INFO_ENUM_AVAILABLE);
+- }
+- }
+- } else {
+- /* find installed packages first */
+- if (!search_not_installed) {
+- PacmanPackage *package = pacman_database_find_package (local_database, package_ids[iterator]);
+-
+- if (package != NULL) {
+- backend_package (backend, package, PK_INFO_ENUM_INSTALLED);
+- continue;
+- }
+- }
+-
+- if (!search_installed) {
+- const PacmanList *databases;
+-
+- for (databases = pacman_manager_get_sync_databases (pacman); databases != NULL; databases = pacman_list_next (databases)) {
+- PacmanDatabase *database = (PacmanDatabase *) pacman_list_get (databases);
+- PacmanPackage *package = pacman_database_find_package (database, package_ids[iterator]);
+-
+- if (package != NULL) {
+- backend_package (backend, package, PK_INFO_ENUM_AVAILABLE);
+- break;
+- }
+- }
+- }
+- }
+- }
+-
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_resolve:
+- **/
+-void
+-backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_resolve_thread);
+-}
+-
+-static gboolean
+-backend_get_details_thread (PkBackend *backend)
+-{
+- guint iterator;
+-
+- gchar **package_ids;
+-
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+-
+- g_return_val_if_fail (package_ids != NULL, FALSE);
+-
+- /* collect details about packages */
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- PacmanPackage *package;
+- const PacmanList *list;
+- GString *string;
+-
+- gchar *licenses;
+- PkGroupEnum group;
+- const gchar *description, *url;
+- gulong size;
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- package = backend_get_package (backend, package_ids[iterator]);
+- if (package == NULL) {
+- backend_finished (backend);
+- return FALSE;
+- }
+-
+- list = pacman_package_get_licenses (package);
+- if (list == NULL) {
+- string = g_string_new ("unknown");
+- } else {
+- string = g_string_new ((const gchar *) pacman_list_get (list));
+- for (list = pacman_list_next (list); list != NULL; list = pacman_list_next (list)) {
+- /* assume OR although it may not be correct */
+- g_string_append_printf (string, " or %s", (const gchar *) pacman_list_get (list));
+- }
+- }
+-
+- group = pk_group_enum_from_string (pacman_package_get_group (package));
+- description = pacman_package_get_description (package);
+- url = pacman_package_get_url (package);
+-
+- if (pacman_package_get_database (package) == local_database) {
+- size = pacman_package_get_installed_size (package);
+- } else {
+- size = pacman_package_get_download_size (package);
+- }
+-
+- licenses = g_string_free (string, FALSE);
+- pk_backend_details (backend, package_ids[iterator], licenses, group, description, url, size);
+- g_free (licenses);
+- }
+-
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_details:
+- **/
+-void
+-backend_get_details (PkBackend *backend, gchar **package_ids)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_get_details_thread);
+-}
+-
+-static gboolean
+-backend_get_files_thread (PkBackend *backend)
+-{
+- guint iterator;
+-
+- gchar **package_ids;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+-
+- g_return_val_if_fail (package_ids != NULL, FALSE);
+-
+- /* enumerate files provided by package */
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- PacmanPackage *package;
+- const PacmanList *list;
+-
+- GString *string;
+- gchar *files;
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- package = backend_get_package (backend, package_ids[iterator]);
+- if (package == NULL) {
+- backend_finished (backend);
+- return FALSE;
+- }
+-
+- list = pacman_package_get_files (package);
+- if (list == NULL) {
+- string = g_string_new ("");
+- } else {
+- const gchar *root_path = pacman_manager_get_root_path (pacman);
+- string = g_string_new (root_path);
+- g_string_append (string, (const gchar *) pacman_list_get (list));
+-
+- for (list = pacman_list_next (list); list != NULL; list = pacman_list_next (list)) {
+- g_string_append_printf (string, ";%s%s", root_path, (const gchar *) pacman_list_get (list));
+- }
+- }
+-
+- files = g_string_free (string, FALSE);
+- pk_backend_files (backend, package_ids[iterator], files);
+- g_free (files);
+- }
+-
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_files:
+- **/
+-void
+-backend_get_files (PkBackend *backend, gchar **package_ids)
+-{
+- g_return_if_fail (pacman != NULL);
+- g_return_if_fail (backend != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_get_files_thread);
+-}
+diff --git a/backends/pacman/backend-packages.h b/backends/pacman/backend-packages.h
+deleted file mode 100644
+index 2064b89..0000000
+--- a/backends/pacman/backend-packages.h
++++ /dev/null
+@@ -1,41 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include <pk-backend.h>
+-
+-gchar *pacman_package_make_id (PacmanPackage *package);
+-void backend_package (PkBackend *backend,
+- PacmanPackage *package,
+- PkInfoEnum info);
+-
+-PacmanPackage *backend_get_package (PkBackend *backend,
+- const gchar *package_id);
+-void backend_resolve (PkBackend *backend,
+- PkBitfield filters,
+- gchar **package_ids);
+-
+-void backend_get_details (PkBackend *backend,
+- gchar **package_ids);
+-void backend_get_files (PkBackend *backend,
+- gchar **package_ids);
+diff --git a/backends/pacman/backend-pacman.c b/backends/pacman/backend-pacman.c
+deleted file mode 100644
+index 1276f15..0000000
+--- a/backends/pacman/backend-pacman.c
++++ /dev/null
+@@ -1,260 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include "backend-depends.h"
+-#include "backend-error.h"
+-#include "backend-groups.h"
+-#include "backend-install.h"
+-#include "backend-packages.h"
+-#include "backend-remove.h"
+-#include "backend-repos.h"
+-#include "backend-search.h"
+-#include "backend-transaction.h"
+-#include "backend-update.h"
+-#include "backend-pacman.h"
+-
+-PacmanManager *pacman = NULL;
+-GCancellable *cancellable = NULL;
+-
+-static void
+-pacman_message_cb (const gchar *domain, GLogLevelFlags level, const gchar *message, gpointer user_data)
+-{
+- g_return_if_fail (message != NULL);
+- g_return_if_fail (user_data != NULL);
+-
+-/* disable due to recursive logging, will fix via improving alpm backend */
+-#if 0
+- /* report important output to PackageKit */
+- switch (level) {
+- case G_LOG_LEVEL_WARNING:
+- case G_LOG_LEVEL_MESSAGE:
+- g_warning ("pacman: %s", message);
+- backend_message ((PkBackend *) user_data, message);
+- break;
+-
+- case G_LOG_LEVEL_INFO:
+- case G_LOG_LEVEL_DEBUG:
+- g_debug ("pacman: %s", message);
+- break;
+-
+- default:
+- g_warning ("pacman: %s", message);
+- break;
+- }
+-#endif
+-}
+-
+-/**
+- * backend_initialize:
+- **/
+-static void
+-backend_initialize (PkBackend *backend)
+-{
+- GError *error = NULL;
+- GLogLevelFlags flags = G_LOG_LEVEL_MASK;
+-
+- g_return_if_fail (backend != NULL);
+-
+- /* handle output from pacman */
+- g_log_set_handler ("Pacman", flags, pacman_message_cb, backend);
+-
+- /* PATH needs to be set for install scriptlets */
+- g_setenv ("PATH", PACMAN_DEFAULT_PATH, FALSE);
+-
+- g_debug ("pacman: initializing");
+-
+- /* initialize pacman-glib */
+- pacman = pacman_manager_get (&error);
+- if (pacman == NULL) {
+- g_error ("pacman: %s", error->message);
+- g_error_free (error);
+- return;
+- }
+-
+- /* configure and disable the relevant databases */
+- if (!backend_initialize_databases (backend, &error)) {
+- g_error ("pacman: %s", error->message);
+- g_error_free (error);
+- return;
+- }
+-
+- /* read the group mapping from a config file */
+- if (!backend_initialize_groups (backend, &error)) {
+- g_error ("pacman: %s", error->message);
+- g_error_free (error);
+- return;
+- }
+-
+- /* setup better download progress reporting */
+- if (!backend_initialize_downloads (backend, &error)) {
+- g_error ("pacman: %s", error->message);
+- g_error_free (error);
+- return;
+- }
+-}
+-
+-/**
+- * backend_destroy:
+- **/
+-static void
+-backend_destroy (PkBackend *backend)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- g_debug ("pacman: cleaning up");
+-
+- backend_destroy_downloads (backend);
+- backend_destroy_groups (backend);
+- backend_destroy_databases (backend);
+-
+- if (pacman != NULL) {
+- g_object_unref (pacman);
+- }
+-}
+-
+-/**
+- * backend_get_filters:
+- **/
+-static PkBitfield
+-backend_get_filters (PkBackend *backend)
+-{
+- g_return_val_if_fail (backend != NULL, 0);
+-
+- return pk_bitfield_from_enums (PK_FILTER_ENUM_INSTALLED, -1);
+-}
+-
+-/**
+- * backend_get_mime_types:
+- **/
+-static gchar *
+-backend_get_mime_types (PkBackend *backend)
+-{
+- g_return_val_if_fail (backend != NULL, NULL);
+-
+- /* packages currently use .pkg.tar.gz and .pkg.tar.xz */
+- return g_strdup ("application/x-compressed-tar;application/x-xz-compressed-tar");
+-}
+-
+-void
+-backend_run (PkBackend *backend, PkStatusEnum status, PkBackendThreadFunc func)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (func != NULL);
+-
+- if (cancellable != NULL) {
+- g_warning ("pacman: cancellable was not NULL");
+- g_object_unref (cancellable);
+- }
+- cancellable = g_cancellable_new ();
+- pk_backend_set_allow_cancel (backend, TRUE);
+-
+- pk_backend_set_status (backend, status);
+- pk_backend_thread_create (backend, func);
+-}
+-
+-/**
+- * backend_cancel:
+- **/
+-static void
+-backend_cancel (PkBackend *backend)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- if (cancellable != NULL) {
+- g_cancellable_cancel (cancellable);
+- }
+-}
+-
+-gboolean
+-backend_cancelled (PkBackend *backend)
+-{
+- g_return_val_if_fail (cancellable != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- if (g_cancellable_is_cancelled (cancellable)) {
+- pk_backend_set_status (backend, PK_STATUS_ENUM_CANCEL);
+- return TRUE;
+- } else {
+- return FALSE;
+- }
+-}
+-
+-void
+-backend_finished (PkBackend *backend)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- pk_backend_set_allow_cancel (backend, FALSE);
+- if (cancellable != NULL) {
+- g_object_unref (cancellable);
+- cancellable = NULL;
+- }
+-
+- pk_backend_thread_finished (backend);
+-}
+-
+-PK_BACKEND_OPTIONS (
+- "pacman", /* description */
+- "Jonathan Conder <j@skurvy.no-ip.org>", /* author */
+- backend_initialize, /* initialize */
+- backend_destroy, /* destroy */
+- backend_get_groups, /* get_groups */
+- backend_get_filters, /* get_filters */
+- NULL, /* get_roles */
+- backend_get_mime_types, /* get_mime_types */
+- backend_cancel, /* cancel */
+- backend_download_packages, /* download_packages */
+- NULL, /* get_categories */
+- backend_get_depends, /* get_depends */
+- backend_get_details, /* get_details */
+- NULL, /* get_distro_upgrades */
+- backend_get_files, /* get_files */
+- backend_get_packages, /* get_packages */
+- backend_get_repo_list, /* get_repo_list */
+- backend_get_requires, /* get_requires */
+- backend_get_update_detail, /* get_update_detail */
+- backend_get_updates, /* get_updates */
+- backend_install_files, /* install_files */
+- backend_install_packages, /* install_packages */
+- NULL, /* install_signature */
+- backend_refresh_cache, /* refresh_cache */
+- backend_remove_packages, /* remove_packages */
+- backend_repo_enable, /* repo_enable */
+- NULL, /* repo_set_data */
+- backend_resolve, /* resolve */
+- NULL, /* rollback */
+- backend_search_details, /* search_details */
+- backend_search_files, /* search_files */
+- backend_search_groups, /* search_groups */
+- backend_search_names, /* search_names */
+- backend_update_packages, /* update_packages */
+- NULL, /* update_system */
+- backend_what_provides, /* what_provides */
+- backend_simulate_install_files, /* simulate_install_files */
+- backend_simulate_install_packages, /* simulate_install_packages */
+- backend_simulate_remove_packages, /* simulate_remove_packages */
+- backend_simulate_update_packages, /* simulate_update_packages */
+- NULL, /* upgrade_packages */
+- NULL, /* transaction_start */
+- NULL /* transaction_stop */
+-);
+diff --git a/backends/pacman/backend-pacman.h b/backends/pacman/backend-pacman.h
+deleted file mode 100644
+index 0d7b89b..0000000
+--- a/backends/pacman/backend-pacman.h
++++ /dev/null
+@@ -1,35 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <gio/gio.h>
+-#include <pacman.h>
+-#include <pk-backend.h>
+-
+-extern PacmanManager *pacman;
+-extern GCancellable *cancellable;
+-
+-void backend_run (PkBackend *backend,
+- PkStatusEnum status,
+- PkBackendThreadFunc func);
+-gboolean backend_cancelled (PkBackend *backend);
+-void backend_finished (PkBackend *backend);
+diff --git a/backends/pacman/backend-remove.c b/backends/pacman/backend-remove.c
+deleted file mode 100644
+index b31218b..0000000
+--- a/backends/pacman/backend-remove.c
++++ /dev/null
+@@ -1,142 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include "backend-error.h"
+-#include "backend-packages.h"
+-#include "backend-pacman.h"
+-#include "backend-transaction.h"
+-#include "backend-remove.h"
+-
+-static PacmanList *
+-backend_remove_list_targets (PkBackend *backend)
+-{
+- gchar **package_ids;
+- guint iterator;
+- PacmanList *list = NULL;
+-
+- g_return_val_if_fail (backend != NULL, NULL);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+-
+- g_return_val_if_fail (package_ids != NULL, NULL);
+-
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- gchar **package_id_data = pk_package_id_split (package_ids[iterator]);
+- list = pacman_list_add (list, g_strdup (package_id_data[PK_PACKAGE_ID_NAME]));
+- g_strfreev (package_id_data);
+- }
+-
+- return list;
+-}
+-
+-static gboolean
+-backend_remove_packages_thread (PkBackend *backend)
+-{
+- PacmanList *list;
+- gboolean allow_deps;
+- gboolean autoremove;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_NONE;
+-
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- allow_deps = pk_backend_get_bool (backend, "allow_deps");
+- autoremove = pk_backend_get_bool (backend, "autoremove");
+-
+- /* remove packages that depend on those to be removed */
+- if (allow_deps) {
+- flags |= PACMAN_TRANSACTION_FLAGS_REMOVE_CASCADE;
+- }
+- /* remove unneeded packages that were required by those to be removed */
+- if (autoremove) {
+- flags |= PACMAN_TRANSACTION_FLAGS_REMOVE_RECURSIVE;
+- }
+-
+- /* run the transaction */
+- list = backend_remove_list_targets (backend);
+- if (list != NULL) {
+- transaction = backend_transaction_run (backend, PACMAN_TRANSACTION_REMOVE, flags, list);
+- pacman_list_free_full (list, g_free);
+- }
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_remove_packages:
+- **/
+-void
+-backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_remove_packages_thread);
+-}
+-
+-static gboolean
+-backend_simulate_remove_packages_thread (PkBackend *backend)
+-{
+- PacmanList *list;
+- gboolean autoremove;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_REMOVE_CASCADE;
+-
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- autoremove = pk_backend_get_bool (backend, "autoremove");
+-
+- /* remove unneeded packages that were required by those to be removed */
+- if (autoremove) {
+- flags |= PACMAN_TRANSACTION_FLAGS_REMOVE_RECURSIVE;
+- }
+-
+- /* prepare the transaction */
+- list = backend_remove_list_targets (backend);
+- if (list != NULL) {
+- transaction = backend_transaction_simulate (backend, PACMAN_TRANSACTION_REMOVE, flags, list);
+- pacman_list_free_full (list, g_free);
+-
+- if (transaction != NULL) {
+- /* emit packages that would have been installed or removed */
+- backend_transaction_packages (backend, transaction);
+- }
+- }
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_simulate_remove_packages:
+- **/
+-void
+-backend_simulate_remove_packages (PkBackend *backend, gchar **package_ids, gboolean autoremove)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_simulate_remove_packages_thread);
+-}
+diff --git a/backends/pacman/backend-remove.h b/backends/pacman/backend-remove.h
+deleted file mode 100644
+index 90f0374..0000000
+--- a/backends/pacman/backend-remove.h
++++ /dev/null
+@@ -1,32 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pk-backend.h>
+-
+-void backend_remove_packages (PkBackend *backend,
+- gchar **package_ids,
+- gboolean allow_deps,
+- gboolean autoremove);
+-void backend_simulate_remove_packages (PkBackend *backend,
+- gchar **package_ids,
+- gboolean autoremove);
+diff --git a/backends/pacman/backend-repos.c b/backends/pacman/backend-repos.c
+deleted file mode 100644
+index 8ef23d9..0000000
+--- a/backends/pacman/backend-repos.c
++++ /dev/null
+@@ -1,298 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include "backend-error.h"
+-#include "backend-pacman.h"
+-#include "backend-repos.h"
+-
+-PacmanDatabase *local_database = NULL;
+-static GHashTable *disabled_repos = NULL;
+-
+-static GHashTable *
+-disabled_repos_new (GError **error)
+-{
+- GHashTable *disabled;
+- GFile *file;
+-
+- GFileInputStream *file_stream;
+- GDataInputStream *data_stream;
+-
+- gchar *line;
+- GError *e = NULL;
+-
+- g_debug ("pacman: reading disabled repos from %s", PACMAN_REPO_LIST);
+- file = g_file_new_for_path (PACMAN_REPO_LIST);
+- file_stream = g_file_read (file, NULL, &e);
+-
+- if (file_stream == NULL) {
+- g_object_unref (file);
+- g_propagate_error (error, e);
+- return NULL;
+- }
+-
+- disabled = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+- data_stream = g_data_input_stream_new (G_INPUT_STREAM (file_stream));
+-
+- /* read disabled repos line by line, ignoring comments */
+- while ((line = g_data_input_stream_read_line (data_stream, NULL, NULL, &e)) != NULL) {
+- g_strstrip (line);
+-
+- if (*line == '\0' || *line == '#') {
+- g_free (line);
+- continue;
+- }
+-
+- g_hash_table_insert (disabled, line, GINT_TO_POINTER (1));
+- }
+-
+- g_object_unref (data_stream);
+- g_object_unref (file_stream);
+- g_object_unref (file);
+-
+- if (e != NULL) {
+- g_hash_table_unref (disabled);
+- g_propagate_error (error, e);
+- return NULL;
+- } else {
+- return disabled;
+- }
+-}
+-
+-static gboolean
+-disabled_repos_configure (GHashTable *disabled, GError **error)
+-{
+- const PacmanList *databases;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+-
+- g_debug ("pacman: reading config from %s", PACMAN_CONFIG_FILE);
+-
+- /* read configuration from pacman config file */
+- if (!pacman_manager_configure (pacman, PACMAN_CONFIG_FILE, error)) {
+- return FALSE;
+- }
+-
+- local_database = pacman_manager_get_local_database (pacman);
+-
+- /* disable disabled repos */
+- for (databases = pacman_manager_get_sync_databases (pacman); databases != NULL; databases = pacman_list_next (databases)) {
+- PacmanDatabase *database = (PacmanDatabase *) pacman_list_get (databases);
+- const gchar *repo = pacman_database_get_name (database);
+-
+- if (g_hash_table_lookup (disabled, repo) != NULL) {
+- if (!pacman_manager_unregister_database (pacman, database, error)) {
+- return FALSE;
+- }
+-
+- /* start again as the list gets invalidated */
+- databases = pacman_manager_get_sync_databases (pacman);
+- }
+- }
+-
+- return TRUE;
+-}
+-
+-static void
+-disabled_repos_free (GHashTable *disabled)
+-{
+- GHashTableIter iter;
+- GFile *file;
+-
+- GFileOutputStream *file_stream;
+- GDataOutputStream *data_stream;
+-
+- const gchar *line = PACMAN_REPO_LIST_HEADER "\n";
+-
+- g_return_if_fail (disabled != NULL);
+-
+- g_debug ("pacman: storing disabled repos in %s", PACMAN_REPO_LIST);
+- file = g_file_new_for_path (PACMAN_REPO_LIST);
+- file_stream = g_file_replace (file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL);
+-
+- if (file_stream == NULL) {
+- g_object_unref (file);
+- g_hash_table_unref (disabled);
+- return;
+- }
+-
+- g_hash_table_iter_init (&iter, disabled);
+- data_stream = g_data_output_stream_new (G_OUTPUT_STREAM (file_stream));
+-
+- /* write header, then all disabled repos line by line */
+- if (g_data_output_stream_put_string (data_stream, line, NULL, NULL)) {
+- while (g_hash_table_iter_next (&iter, (gpointer *) &line, NULL) &&
+- g_data_output_stream_put_string (data_stream, line, NULL, NULL) &&
+- g_data_output_stream_put_string (data_stream, "\n", NULL, NULL));
+- }
+-
+- g_object_unref (data_stream);
+- g_object_unref (file_stream);
+- g_object_unref (file);
+- g_hash_table_unref (disabled);
+-}
+-
+-gboolean
+-backend_initialize_databases (PkBackend *backend, GError **error)
+-{
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- disabled_repos = disabled_repos_new (error);
+- if (disabled_repos == NULL) {
+- return FALSE;
+- }
+-
+- if (!disabled_repos_configure (disabled_repos, error)) {
+- return FALSE;
+- }
+-
+- return TRUE;
+-}
+-
+-void
+-backend_destroy_databases (PkBackend *backend)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- if (disabled_repos != NULL) {
+- disabled_repos_free (disabled_repos);
+- }
+-}
+-
+-static gboolean
+-backend_get_repo_list_thread (PkBackend *backend)
+-{
+- const PacmanList *databases;
+- GHashTableIter iter;
+- gpointer key, value;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (disabled_repos != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- /* emit enabled repos */
+- for (databases = pacman_manager_get_sync_databases (pacman); databases != NULL; databases = pacman_list_next (databases)) {
+- PacmanDatabase *database = (PacmanDatabase *) pacman_list_get (databases);
+- const gchar *repo = pacman_database_get_name (database);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else {
+- pk_backend_repo_detail (backend, repo, repo, TRUE);
+- }
+- }
+-
+- /* emit disabled repos */
+- g_hash_table_iter_init (&iter, disabled_repos);
+- while (g_hash_table_iter_next (&iter, &key, &value)) {
+- const gchar *repo = (const gchar *) key;
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else {
+- pk_backend_repo_detail (backend, repo, repo, FALSE);
+- }
+- }
+-
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_repo_list:
+- **/
+-void
+-backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_get_repo_list_thread);
+-}
+-
+-static gboolean
+-backend_repo_enable_thread (PkBackend *backend)
+-{
+- GError *error = NULL;
+-
+- const gchar *repo;
+- gboolean enabled;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (disabled_repos != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- repo = pk_backend_get_string (backend, "repo_id");
+- enabled = pk_backend_get_bool (backend, "enabled");
+-
+- g_return_val_if_fail (repo != NULL, FALSE);
+-
+- if (enabled) {
+- /* check that repo is indeed disabled */
+- if (g_hash_table_remove (disabled_repos, repo)) {
+- /* reload configuration to preserve the correct order */
+- if (disabled_repos_configure (disabled_repos, &error)) {
+- pk_backend_repo_list_changed (backend);
+- } else {
+- backend_error (backend, error);
+- pk_backend_thread_finished (backend);
+- return FALSE;
+- }
+- } else {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, "Could not find repo [%s]", repo);
+- pk_backend_thread_finished (backend);
+- return FALSE;
+- }
+- } else {
+- PacmanDatabase *database = pacman_manager_find_sync_database (pacman, repo);
+-
+- if (database != NULL) {
+- if (pacman_manager_unregister_database (pacman, database, &error)) {
+- g_hash_table_insert (disabled_repos, g_strdup (repo), GINT_TO_POINTER (1));
+- } else {
+- backend_error (backend, error);
+- pk_backend_thread_finished (backend);
+- return FALSE;
+- }
+- } else {
+- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, "Could not find repo [%s]", repo);
+- pk_backend_thread_finished (backend);
+- return FALSE;
+- }
+- }
+-
+- pk_backend_thread_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_repo_enable:
+- **/
+-void
+-backend_repo_enable (PkBackend *backend, const gchar *repo, gboolean enabled)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (repo != NULL);
+-
+- pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+- pk_backend_thread_create (backend, backend_repo_enable_thread);
+-}
+diff --git a/backends/pacman/backend-repos.h b/backends/pacman/backend-repos.h
+deleted file mode 100644
+index 7faba0c..0000000
+--- a/backends/pacman/backend-repos.h
++++ /dev/null
+@@ -1,37 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include <pk-backend.h>
+-
+-extern PacmanDatabase *local_database;
+-
+-gboolean backend_initialize_databases (PkBackend *backend,
+- GError **error);
+-void backend_destroy_databases (PkBackend *backend);
+-
+-void backend_get_repo_list (PkBackend *backend,
+- PkBitfield filters);
+-void backend_repo_enable (PkBackend *backend,
+- const gchar *repo,
+- gboolean enabled);
+diff --git a/backends/pacman/backend-search.c b/backends/pacman/backend-search.c
+deleted file mode 100644
+index 32b4df8..0000000
+--- a/backends/pacman/backend-search.c
++++ /dev/null
+@@ -1,479 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <string.h>
+-#include <pacman.h>
+-#include "backend-error.h"
+-#include "backend-groups.h"
+-#include "backend-packages.h"
+-#include "backend-pacman.h"
+-#include "backend-repos.h"
+-#include "backend-search.h"
+-
+-static gpointer
+-backend_pattern_needle (const gchar *needle, GError **error)
+-{
+- return (gpointer) needle;
+-}
+-
+-static gpointer
+-backend_pattern_regex (const gchar *needle, GError **error)
+-{
+- gchar *pattern;
+- GRegex *regex;
+-
+- g_return_val_if_fail (needle != NULL, NULL);
+-
+- pattern = g_regex_escape_string (needle, -1);
+- regex = g_regex_new (pattern, G_REGEX_CASELESS, 0, error);
+- g_free (pattern);
+-
+- return regex;
+-}
+-
+-static gpointer
+-backend_pattern_chroot (const gchar *needle, GError **error)
+-{
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (needle != NULL, NULL);
+-
+- if (G_IS_DIR_SEPARATOR (*needle)) {
+- const gchar *file = needle, *path = pacman_manager_get_root_path (pacman);
+-
+- /* adjust needle to the correct prefix */
+- while (*file++ == *path++) {
+- if (*path == '\0') {
+- needle = file - 1;
+- break;
+- } else if (*file == '\0') {
+- break;
+- }
+- }
+- }
+-
+- return (gpointer) needle;
+-}
+-
+-static gboolean
+-backend_match_all (PacmanPackage *package, gpointer pattern)
+-{
+- g_return_val_if_fail (package != NULL, FALSE);
+- g_return_val_if_fail (pattern != NULL, FALSE);
+-
+- /* match all packages */
+- return TRUE;
+-}
+-
+-static gboolean
+-backend_match_details (PacmanPackage *package, gpointer pattern)
+-{
+- const gchar *description;
+- PacmanDatabase *database;
+- const PacmanList *licenses;
+-
+- GRegex *regex = (GRegex *) pattern;
+-
+- g_return_val_if_fail (package != NULL, FALSE);
+- g_return_val_if_fail (regex != NULL, FALSE);
+-
+- /* match the name first... */
+- if (g_regex_match (regex, pacman_package_get_name (package), 0, NULL)) {
+- return TRUE;
+- }
+-
+- /* ... then the description... */
+- description = pacman_package_get_description (package);
+- if (description != NULL && g_regex_match (regex, description, 0, NULL)) {
+- return TRUE;
+- }
+-
+- /* ... then the database... */
+- database = pacman_package_get_database (package);
+- if (database != NULL && g_regex_match (regex, pacman_database_get_name (database), G_REGEX_MATCH_ANCHORED, NULL)) {
+- return TRUE;
+- }
+-
+- /* ... then the licenses */
+- for (licenses = pacman_package_get_licenses (package); licenses != NULL; licenses = pacman_list_next (licenses)) {
+- const gchar *license = (const gchar *) pacman_list_get (licenses);
+- if (g_regex_match (regex, license, G_REGEX_MATCH_ANCHORED, NULL)) {
+- return TRUE;
+- }
+- }
+-
+- return FALSE;
+-}
+-
+-static gboolean
+-backend_match_file (PacmanPackage *package, gpointer pattern)
+-{
+- const PacmanList *files;
+- const gchar *needle = (const gchar *) pattern;
+-
+- g_return_val_if_fail (package != NULL, FALSE);
+- g_return_val_if_fail (needle != NULL, FALSE);
+-
+- /* match any file the package contains */
+- if (G_IS_DIR_SEPARATOR (*needle)) {
+- for (files = pacman_package_get_files (package); files != NULL; files = pacman_list_next (files)) {
+- const gchar *file = (const gchar *) pacman_list_get (files);
+-
+- /* match the full path of file */
+- if (g_strcmp0 (file, needle + 1) == 0) {
+- return TRUE;
+- }
+- }
+- } else {
+- for (files = pacman_package_get_files (package); files != NULL; files = pacman_list_next (files)) {
+- const gchar *file = (const gchar *) pacman_list_get (files);
+- file = strrchr (file, G_DIR_SEPARATOR);
+-
+- /* match the basename of file */
+- if (file != NULL && g_strcmp0 (file + 1, needle) == 0) {
+- return TRUE;
+- }
+- }
+- }
+-
+- return FALSE;
+-}
+-
+-static gboolean
+-backend_match_group (PacmanPackage *package, gpointer pattern)
+-{
+- const gchar *needle = (const gchar *) pattern;
+-
+- g_return_val_if_fail (package != NULL, FALSE);
+- g_return_val_if_fail (needle != NULL, FALSE);
+-
+- /* match the group the package is in */
+- return g_strcmp0 (needle, pacman_package_get_group (package)) == 0;
+-}
+-
+-static gboolean
+-backend_match_name (PacmanPackage *package, gpointer pattern)
+-{
+- GRegex *regex = (GRegex *) pattern;
+-
+- g_return_val_if_fail (package != NULL, FALSE);
+- g_return_val_if_fail (regex != NULL, FALSE);
+-
+- /* match the name of the package */
+- return g_regex_match (regex, pacman_package_get_name (package), 0, NULL);
+-}
+-
+-static gboolean
+-backend_match_provides (PacmanPackage *package, gpointer pattern)
+-{
+- /* TODO: implement GStreamer codecs, Pango fonts, etc. */
+- const PacmanList *provides;
+-
+- g_return_val_if_fail (package != NULL, FALSE);
+- g_return_val_if_fail (pattern != NULL, FALSE);
+-
+- /* match features provided by package */
+- for (provides = pacman_package_get_provides (package); provides != NULL; provides = pacman_list_next (provides)) {
+- const gchar *needle = (const gchar *) pattern, *name = (const gchar *) pacman_list_get (provides);
+-
+- while (*needle == *name && *needle != '\0') {
+- ++needle;
+- ++name;
+- }
+-
+- if (*needle == '\0' && (*name == '\0' || *name == '=')) {
+- return TRUE;
+- }
+- }
+-
+- return FALSE;
+-}
+-
+-typedef enum {
+- SEARCH_TYPE_ALL,
+- SEARCH_TYPE_DETAILS,
+- SEARCH_TYPE_FILES,
+- SEARCH_TYPE_GROUP,
+- SEARCH_TYPE_NAME,
+- SEARCH_TYPE_PROVIDES,
+- SEARCH_TYPE_LAST
+-} SearchType;
+-
+-typedef gpointer (*PatternFunc) (const gchar *needle, GError **error);
+-typedef gboolean (*MatchFunc) (PacmanPackage *package, gpointer pattern);
+-
+-static PatternFunc pattern_funcs[] = {
+- backend_pattern_needle,
+- backend_pattern_regex,
+- backend_pattern_chroot,
+- backend_pattern_needle,
+- backend_pattern_regex,
+- backend_pattern_needle
+-};
+-
+-static GDestroyNotify pattern_frees[] = {
+- NULL,
+- (GDestroyNotify) g_regex_unref,
+- NULL,
+- NULL,
+- (GDestroyNotify) g_regex_unref,
+- NULL
+-};
+-
+-static MatchFunc match_funcs[] = {
+- backend_match_all,
+- backend_match_details,
+- backend_match_file,
+- backend_match_group,
+- backend_match_name,
+- backend_match_provides
+-};
+-
+-static gboolean
+-pacman_package_is_installed (PacmanPackage *package)
+-{
+- PacmanPackage *installed;
+-
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (package != NULL, FALSE);
+-
+- /* find an installed package with the same name */
+- installed = pacman_database_find_package (local_database, pacman_package_get_name (package));
+- if (installed == NULL) {
+- return FALSE;
+- }
+-
+- /* make sure the installed version is the same */
+- if (pacman_package_compare_version (pacman_package_get_version (installed), pacman_package_get_version (package)) != 0) {
+- return FALSE;
+- }
+-
+- /* make sure the installed arch is the same */
+- if (g_strcmp0 (pacman_package_get_arch (installed), pacman_package_get_arch (package)) != 0) {
+- return FALSE;
+- }
+-
+- return TRUE;
+-}
+-
+-static void
+-backend_search_database (PkBackend *backend, PacmanDatabase *database, MatchFunc match, const PacmanList *patterns)
+-{
+- const PacmanList *packages, *list;
+-
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (database != NULL);
+- g_return_if_fail (match != NULL);
+-
+- /* emit packages that match all search terms */
+- for (packages = pacman_database_get_packages (database); packages != NULL; packages = pacman_list_next (packages)) {
+- PacmanPackage *package = (PacmanPackage *) pacman_list_get (packages);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- for (list = patterns; list != NULL; list = pacman_list_next (list)) {
+- if (!match (package, pacman_list_get (list))) {
+- break;
+- }
+- }
+-
+- /* all search terms matched */
+- if (list == NULL) {
+- if (database == local_database) {
+- backend_package (backend, package, PK_INFO_ENUM_INSTALLED);
+- } else if (!pacman_package_is_installed (package)) {
+- backend_package (backend, package, PK_INFO_ENUM_AVAILABLE);
+- }
+- }
+- }
+-}
+-
+-static gboolean
+-backend_search_thread (PkBackend *backend)
+-{
+- gchar **search;
+- SearchType search_type;
+-
+- PatternFunc pattern_func;
+- GDestroyNotify pattern_free;
+- MatchFunc match_func;
+-
+- PkBitfield filters;
+- gboolean search_installed;
+- gboolean search_not_installed;
+-
+- guint iterator;
+- PacmanList *patterns = NULL;
+- GError *error = NULL;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- search = pk_backend_get_strv (backend, "search");
+- search_type = (SearchType) pk_backend_get_uint (backend, "search-type");
+-
+- g_return_val_if_fail (search != NULL, FALSE);
+- g_return_val_if_fail (search_type < SEARCH_TYPE_LAST, FALSE);
+-
+- pattern_func = pattern_funcs[search_type];
+- pattern_free = pattern_frees[search_type];
+- match_func = match_funcs[search_type];
+-
+- g_return_val_if_fail (pattern_func != NULL, FALSE);
+- g_return_val_if_fail (match_func != NULL, FALSE);
+-
+- filters = pk_backend_get_uint (backend, "filters");
+- search_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_INSTALLED);
+- search_not_installed = pk_bitfield_contain (filters, PK_FILTER_ENUM_NOT_INSTALLED);
+-
+- /* convert search terms to the pattern requested */
+- for (iterator = 0; search[iterator] != NULL; ++iterator) {
+- gpointer pattern = pattern_func (search[iterator], &error);
+-
+- if (pattern != NULL) {
+- patterns = pacman_list_add (patterns, pattern);
+- } else {
+- backend_error (backend, error);
+- if (pattern_free != NULL) {
+- pacman_list_free_full (patterns, pattern_free);
+- } else {
+- pacman_list_free (patterns);
+- }
+- backend_finished (backend);
+- return FALSE;
+- }
+- }
+-
+- /* find installed packages first */
+- if (!search_not_installed) {
+- backend_search_database (backend, local_database, match_func, patterns);
+- }
+-
+- if (!search_installed) {
+- const PacmanList *databases;
+-
+- for (databases = pacman_manager_get_sync_databases (pacman); databases != NULL; databases = pacman_list_next (databases)) {
+- PacmanDatabase *database = (PacmanDatabase *) pacman_list_get (databases);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- backend_search_database (backend, database, match_func, patterns);
+- }
+- }
+-
+- if (pattern_free != NULL) {
+- pacman_list_free_full (patterns, pattern_free);
+- } else {
+- pacman_list_free (patterns);
+- }
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_packages:
+- **/
+-void
+-backend_get_packages (PkBackend *backend, PkBitfield filters)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- /* provide a dummy needle */
+- pk_backend_set_strv (backend, "search", g_strsplit ("", ";", 0));
+-
+- pk_backend_set_uint (backend, "search-type", SEARCH_TYPE_ALL);
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_search_thread);
+-}
+-
+-/**
+- * backend_search_details:
+- **/
+-void
+-backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (values != NULL);
+-
+- pk_backend_set_uint (backend, "search-type", SEARCH_TYPE_DETAILS);
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_search_thread);
+-}
+-
+-/**
+- * backend_search_files:
+- **/
+-void
+-backend_search_files (PkBackend *backend, PkBitfield filters, gchar **values)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (values != NULL);
+-
+- /* speed up search by restricting it to local database */
+- pk_bitfield_add (filters, PK_FILTER_ENUM_INSTALLED);
+- pk_backend_set_uint (backend, "filters", filters);
+-
+- pk_backend_set_uint (backend, "search-type", SEARCH_TYPE_FILES);
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_search_thread);
+-}
+-
+-/**
+- * backend_search_groups:
+- **/
+-void
+-backend_search_groups (PkBackend *backend, PkBitfield filters, gchar **values)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (values != NULL);
+-
+- pk_backend_set_uint (backend, "search-type", SEARCH_TYPE_GROUP);
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_search_thread);
+-}
+-
+-/**
+- * backend_search_names:
+- **/
+-void
+-backend_search_names (PkBackend *backend, PkBitfield filters, gchar **values)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (values != NULL);
+-
+- pk_backend_set_uint (backend, "search-type", SEARCH_TYPE_NAME);
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_search_thread);
+-}
+-
+-/**
+- * backend_what_provides:
+- **/
+-void
+-backend_what_provides (PkBackend *backend, PkBitfield filters, PkProvidesEnum provides, gchar **values)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (values != NULL);
+-
+- pk_backend_set_uint (backend, "search-type", SEARCH_TYPE_PROVIDES);
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_search_thread);
+-}
+diff --git a/backends/pacman/backend-search.h b/backends/pacman/backend-search.h
+deleted file mode 100644
+index c2ce6a0..0000000
+--- a/backends/pacman/backend-search.h
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pk-backend.h>
+-
+-void backend_get_packages (PkBackend *backend,
+- PkBitfield filters);
+-void backend_search_details (PkBackend *backend,
+- PkBitfield filters,
+- gchar **values);
+-void backend_search_files (PkBackend *backend,
+- PkBitfield filters,
+- gchar **values);
+-void backend_search_groups (PkBackend *backend,
+- PkBitfield filters,
+- gchar **values);
+-void backend_search_names (PkBackend *backend,
+- PkBitfield filters,
+- gchar **values);
+-void backend_what_provides (PkBackend *backend,
+- PkBitfield filters,
+- PkProvidesEnum provides,
+- gchar **values);
+diff --git a/backends/pacman/backend-transaction.c b/backends/pacman/backend-transaction.c
+deleted file mode 100644
+index 748760b..0000000
+--- a/backends/pacman/backend-transaction.c
++++ /dev/null
+@@ -1,532 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <string.h>
+-#include "backend-error.h"
+-#include "backend-packages.h"
+-#include "backend-pacman.h"
+-#include "backend-repos.h"
+-#include "backend-transaction.h"
+-
+-typedef struct {
+- guint complete;
+- guint total;
+-
+- PacmanPackage *package;
+- GString *files;
+-} BackendDownloadData;
+-
+-static GHashTable *downloads = NULL;
+-
+-gboolean
+-backend_initialize_downloads (PkBackend *backend, GError **error)
+-{
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- downloads = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free);
+- return TRUE;
+-}
+-
+-void
+-backend_destroy_downloads (PkBackend *backend)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- if (downloads != NULL) {
+- g_hash_table_unref (downloads);
+- }
+-}
+-
+-static void
+-transaction_download_end (PacmanTransaction *transaction, BackendDownloadData *download, PkBackend *backend) {
+- g_return_if_fail (transaction != NULL);
+- g_return_if_fail (download != NULL);
+- g_return_if_fail (backend != NULL);
+-
+- /* emit the finished signal for the old package */
+- backend_package (backend, download->package, PK_INFO_ENUM_FINISHED);
+-
+- /* emit the list of files downloaded for DownloadPackages */
+- if (download->files != NULL) {
+- gchar *package_id, *files;
+-
+- package_id = pacman_package_make_id (download->package);
+- files = g_string_free (download->files, FALSE);
+-
+- pk_backend_files (backend, package_id, files);
+-
+- g_free (package_id);
+- g_free (files);
+- }
+-
+- download->package = NULL;
+- download->files = NULL;
+-}
+-
+-static gchar *
+-backend_filename_make_path (PkBackend *backend, const gchar *filename)
+-{
+- const gchar *directory;
+-
+- g_return_val_if_fail (backend != NULL, NULL);
+- g_return_val_if_fail (filename != NULL, NULL);
+-
+- directory = pk_backend_get_string (backend, "directory");
+-
+- g_return_val_if_fail (directory != NULL, NULL);
+-
+- return g_build_filename (directory, filename, NULL);
+-}
+-
+-static void
+-transaction_download_start (PacmanTransaction *transaction, BackendDownloadData *download, const gchar *filename, PkBackend *backend)
+-{
+- const PacmanList *packages;
+-
+- g_return_if_fail (transaction != NULL);
+- g_return_if_fail (download != NULL);
+- g_return_if_fail (filename != NULL);
+- g_return_if_fail (backend != NULL);
+-
+- /* continue or finish downloading the old package */
+- if (download->package != NULL) {
+- if (pacman_package_has_filename (download->package, filename)) {
+- if (download->files != NULL) {
+- gchar *path = backend_filename_make_path (backend, filename);
+- g_string_append_printf (download->files, ";%s", path);
+- g_free (path);
+- }
+- return;
+- } else {
+- transaction_download_end (transaction, download, backend);
+- }
+- }
+-
+- /* find a new package for the current file */
+- for (packages = pacman_transaction_get_installs (transaction); packages != NULL; packages = pacman_list_next (packages)) {
+- PacmanPackage *package = (PacmanPackage *) pacman_list_get (packages);
+- if (pacman_package_has_filename (package, filename)) {
+- download->package = package;
+- break;
+- }
+- }
+-
+- /* emit the downloading signal and start collecting files for the new package */
+- if (download->package != NULL) {
+- backend_package (backend, download->package, PK_INFO_ENUM_DOWNLOADING);
+-
+- /* only emit files downloaded for DownloadPackages */
+- if (pk_backend_get_role (backend) == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
+- gchar *path = backend_filename_make_path (backend, filename);
+- download->files = g_string_new (path);
+- g_free (path);
+- }
+- }
+-}
+-
+-static void
+-transaction_download_cb (PacmanTransaction *transaction, const gchar *filename, guint complete, guint total, gpointer user_data)
+-{
+- BackendDownloadData *download;
+-
+- g_return_if_fail (pacman != NULL);
+- g_return_if_fail (transaction != NULL);
+- g_return_if_fail (user_data != NULL);
+-
+- download = (BackendDownloadData *) g_hash_table_lookup (downloads, transaction);
+-
+- if (filename == NULL) {
+- if (download == NULL) {
+- /* start a new download */
+- download = g_new0 (BackendDownloadData, 1);
+- download->complete = complete;
+- download->total = total;
+- g_hash_table_insert (downloads, transaction, download);
+- } else {
+- /* finish the current download */
+- if (download->package != NULL) {
+- transaction_download_end (transaction, download, (PkBackend *) user_data);
+- }
+- g_hash_table_remove (downloads, transaction);
+- }
+- } else {
+- guint percentage = 100, sub_percentage = 100;
+-
+- g_return_if_fail (download != NULL);
+-
+- if (total > 0) {
+- sub_percentage = complete * 100 / total;
+- }
+-
+- if (strstr (filename, ".db.tar.") != NULL) {
+- const PacmanList *databases = pacman_manager_get_sync_databases (pacman);
+- guint database_total = pacman_list_length (databases);
+-
+- /* report download progress for databases */
+- if (database_total > 0) {
+- percentage = (sub_percentage + download->complete * 100) / database_total;
+- }
+-
+- if (complete == 0) {
+- g_debug ("pacman: downloading database %s", filename);
+- pk_backend_set_status ((PkBackend *) user_data, PK_STATUS_ENUM_REFRESH_CACHE);
+- }
+-
+- if (complete == total) {
+- download->complete += 1;
+- }
+- } else {
+- /* report download progress for package or delta files */
+- if (download->total > 0) {
+- percentage = (download->complete + complete) * 100 / download->total;
+- }
+-
+- if (complete == 0) {
+- g_debug ("pacman: downloading package %s", filename);
+- pk_backend_set_status ((PkBackend *) user_data, PK_STATUS_ENUM_DOWNLOAD);
+- transaction_download_start (transaction, download, filename, (PkBackend *) user_data);
+- }
+-
+- if (complete == total) {
+- download->complete += complete;
+- }
+- }
+-
+- pk_backend_set_sub_percentage ((PkBackend *) user_data, sub_percentage);
+- pk_backend_set_percentage ((PkBackend *) user_data, percentage);
+- }
+-}
+-
+-static void
+-transaction_progress_cb (PacmanTransaction *transaction, PacmanTransactionProgress type, const gchar *target, guint percent, guint current, guint targets, gpointer user_data)
+-{
+- g_return_if_fail (transaction != NULL);
+- g_return_if_fail (user_data != NULL);
+-
+- g_return_if_fail (percent >= 0);
+- g_return_if_fail (percent <= 100);
+- g_return_if_fail (current >= 1);
+- g_return_if_fail (current <= targets);
+-
+- /* update transaction progress */
+- switch (type) {
+- case PACMAN_TRANSACTION_PROGRESS_INSTALL:
+- case PACMAN_TRANSACTION_PROGRESS_UPGRADE:
+- case PACMAN_TRANSACTION_PROGRESS_REMOVE:
+- case PACMAN_TRANSACTION_PROGRESS_FILE_CONFLICT_CHECK:
+- {
+- g_debug ("pacman: progress for %s (%u of %u) is %u%%", target, current, targets, percent);
+- pk_backend_set_sub_percentage ((PkBackend *) user_data, percent);
+- pk_backend_set_percentage ((PkBackend *) user_data, (percent + (current - 1) * 100) / targets);
+- break;
+- }
+- default:
+- g_debug ("pacman: progress of type %d (%u of %u) is %u%%", type, current, targets, percent);
+- break;
+- }
+-}
+-
+-static gboolean
+-transaction_question_cb (PacmanTransaction *transaction, PacmanTransactionQuestion question, const gchar *message, gpointer user_data)
+-{
+- g_return_val_if_fail (transaction != NULL, FALSE);
+- g_return_val_if_fail (user_data != NULL, FALSE);
+-
+- switch (question) {
+- case PACMAN_TRANSACTION_QUESTION_INSTALL_IGNORE_PACKAGE:
+- {
+- PkRoleEnum role = pk_backend_get_role ((PkBackend *) user_data);
+- if (role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
+- gchar *packages = pacman_package_make_list (pacman_transaction_get_marked_packages (transaction));
+- gchar *warning = g_strdup_printf ("The following packages were marked as ignored:\n%s\n", packages);
+-
+- /* ignored packages are blocked in updates, can be explicitly installed */
+- g_warning ("pacman: %s", warning);
+- backend_message ((PkBackend *) user_data, warning);
+-
+- g_free (warning);
+- g_free (packages);
+- return TRUE;
+- } else if (role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES || role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES) {
+- return TRUE;
+- } else {
+- return FALSE;
+- }
+- }
+- case PACMAN_TRANSACTION_QUESTION_SKIP_UNRESOLVABLE_PACKAGES:
+- case PACMAN_TRANSACTION_QUESTION_REMOVE_HOLD_PACKAGES:
+- case PACMAN_TRANSACTION_QUESTION_SYNC_FIRST:
+- /* none of these actions are safe */
+- g_warning ("pacman: ignoring question '%s'", message);
+- return FALSE;
+-
+- case PACMAN_TRANSACTION_QUESTION_REPLACE_PACKAGE:
+- case PACMAN_TRANSACTION_QUESTION_REMOVE_CONFLICTING_PACKAGE:
+- case PACMAN_TRANSACTION_QUESTION_INSTALL_OLDER_PACKAGE:
+- case PACMAN_TRANSACTION_QUESTION_DELETE_CORRUPTED_PACKAGE:
+- /* these actions are mostly harmless */
+- g_warning ("pacman: confirming question '%s'", message);
+- return TRUE;
+-
+- default:
+- g_warning ("pacman: unrecognised question '%s'", message);
+- return FALSE;
+- }
+-}
+-
+-static void
+-transaction_status_cb (PacmanTransaction *transaction, PacmanTransactionStatus status, const gchar *message, gpointer user_data)
+-{
+- PkStatusEnum state;
+- PkInfoEnum info;
+-
+- g_return_if_fail (transaction != NULL);
+- g_return_if_fail (user_data != NULL);
+-
+- /* figure out the backend status and package info */
+- switch (status) {
+- case PACMAN_TRANSACTION_STATUS_INSTALL_START:
+- state = PK_STATUS_ENUM_INSTALL;
+- info = PK_INFO_ENUM_INSTALLING;
+- break;
+-
+- case PACMAN_TRANSACTION_STATUS_UPGRADE_START:
+- if (pk_backend_get_role ((PkBackend *) user_data) == PK_ROLE_ENUM_INSTALL_FILES) {
+- state = PK_STATUS_ENUM_INSTALL;
+- info = PK_INFO_ENUM_INSTALLING;
+- } else {
+- state = PK_STATUS_ENUM_UPDATE;
+- info = PK_INFO_ENUM_UPDATING;
+- }
+- break;
+-
+- case PACMAN_TRANSACTION_STATUS_REMOVE_START:
+- state = PK_STATUS_ENUM_REMOVE;
+- info = PK_INFO_ENUM_REMOVING;
+- break;
+-
+- case PACMAN_TRANSACTION_STATUS_INSTALL_END:
+- case PACMAN_TRANSACTION_STATUS_UPGRADE_END:
+- case PACMAN_TRANSACTION_STATUS_REMOVE_END:
+- state = PK_STATUS_ENUM_UNKNOWN;
+- info = PK_INFO_ENUM_FINISHED;
+- break;
+-
+- case PACMAN_TRANSACTION_STATUS_DEPENDENCY_CHECK_START:
+- case PACMAN_TRANSACTION_STATUS_DEPENDENCY_RESOLVE_START:
+- state = PK_STATUS_ENUM_DEP_RESOLVE;
+- info = PK_INFO_ENUM_UNKNOWN;
+- break;
+-
+- case PACMAN_TRANSACTION_STATUS_FILE_CONFLICT_CHECK_START:
+- case PACMAN_TRANSACTION_STATUS_CONFLICT_CHECK_START:
+- case PACMAN_TRANSACTION_STATUS_PACKAGE_INTEGRITY_CHECK_START:
+- case PACMAN_TRANSACTION_STATUS_DELTA_INTEGRITY_CHECK_START:
+- state = PK_STATUS_ENUM_TEST_COMMIT;
+- info = PK_INFO_ENUM_UNKNOWN;
+- break;
+-
+- default:
+- state = PK_STATUS_ENUM_UNKNOWN;
+- info = PK_INFO_ENUM_UNKNOWN;
+- g_debug ("pacman: %s", message);
+- break;
+- }
+-
+- /* update the backend status */
+- if (state != PK_STATUS_ENUM_UNKNOWN) {
+- pk_backend_set_status ((PkBackend *) user_data, state);
+- }
+-
+- /* update the package info */
+- if (info != PK_INFO_ENUM_UNKNOWN) {
+- const PacmanList *packages;
+-
+- for (packages = pacman_transaction_get_marked_packages (transaction); packages != NULL; packages = pacman_list_next (packages)) {
+- PacmanPackage *package;
+-
+- /* only report the old versions */
+- if (status == PACMAN_TRANSACTION_STATUS_UPGRADE_START || status == PACMAN_TRANSACTION_STATUS_UPGRADE_END) {
+- packages = pacman_list_next (packages);
+- if (packages == NULL) {
+- break;
+- }
+- }
+-
+- package = (PacmanPackage *) pacman_list_get (packages);
+- backend_package ((PkBackend *) user_data, package, info);
+- }
+- }
+-}
+-
+-static void
+-transaction_cancelled_cb (GCancellable *object, gpointer user_data)
+-{
+- g_return_if_fail (user_data != NULL);
+-
+- pacman_transaction_cancel ((PacmanTransaction *) user_data, NULL);
+-}
+-
+-PacmanTransaction *
+-backend_transaction_simulate (PkBackend *backend, PacmanTransactionType type, guint32 flags, const PacmanList *targets)
+-{
+- PacmanTransaction *transaction;
+- GError *error = NULL;
+-
+- g_return_val_if_fail (pacman != NULL, NULL);
+- g_return_val_if_fail (cancellable != NULL, NULL);
+- g_return_val_if_fail (backend != NULL, NULL);
+- g_return_val_if_fail (type < PACMAN_TRANSACTION_LAST, NULL);
+-
+- switch (type) {
+- case PACMAN_TRANSACTION_INSTALL:
+- transaction = pacman_manager_install (pacman, flags, &error);
+- break;
+- case PACMAN_TRANSACTION_MODIFY:
+- transaction = pacman_manager_modify (pacman, flags, &error);
+- break;
+- case PACMAN_TRANSACTION_REMOVE:
+- transaction = pacman_manager_remove (pacman, flags, &error);
+- break;
+- case PACMAN_TRANSACTION_SYNC:
+- transaction = pacman_manager_sync (pacman, flags, &error);
+- break;
+- case PACMAN_TRANSACTION_UPDATE:
+- transaction = pacman_manager_update (pacman, flags, &error);
+- break;
+- default:
+- g_return_val_if_reached (NULL);
+- }
+-
+- if (transaction == NULL) {
+- backend_error (backend, error);
+- return NULL;
+- }
+-
+- g_signal_connect (transaction, "download", G_CALLBACK (transaction_download_cb), backend);
+- g_signal_connect (transaction, "progress", G_CALLBACK (transaction_progress_cb), backend);
+- g_signal_connect (transaction, "question", G_CALLBACK (transaction_question_cb), backend);
+- g_signal_connect (transaction, "status", G_CALLBACK (transaction_status_cb), backend);
+-
+- if (g_cancellable_connect (cancellable, G_CALLBACK (transaction_cancelled_cb), transaction, NULL) == 0 && backend_cancelled (backend)) {
+- return transaction;
+- }
+-
+- if (!pacman_transaction_prepare (transaction, targets, &error)) {
+- backend_error (backend, error);
+- g_object_unref (transaction);
+- return NULL;
+- }
+-
+- return transaction;
+-}
+-
+-PacmanTransaction *
+-backend_transaction_run (PkBackend *backend, PacmanTransactionType type, guint32 flags, const PacmanList *targets)
+-{
+- PacmanTransaction *transaction;
+-
+- g_return_val_if_fail (backend != NULL, NULL);
+-
+- transaction = backend_transaction_simulate (backend, type, flags, targets);
+-
+- return backend_transaction_commit (backend, transaction);
+-}
+-
+-void
+-backend_transaction_packages (PkBackend *backend, PacmanTransaction *transaction)
+-{
+- const PacmanList *installs, *removes;
+- PkInfoEnum info;
+-
+- g_return_if_fail (local_database != NULL);
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (transaction != NULL);
+-
+- /* emit packages that would have been installed */
+- for (installs = pacman_transaction_get_installs (transaction); installs != NULL; installs = pacman_list_next (installs)) {
+- PacmanPackage *install = (PacmanPackage *) pacman_list_get (installs);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else {
+- const gchar *name = pacman_package_get_name (install);
+- if (pacman_database_find_package (local_database, name) != NULL) {
+- backend_package (backend, install, PK_INFO_ENUM_UPDATING);
+- } else {
+- backend_package (backend, install, PK_INFO_ENUM_INSTALLING);
+- }
+- }
+- }
+-
+- if (pk_backend_get_role (backend) == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
+- info = PK_INFO_ENUM_OBSOLETING;
+- } else {
+- info = PK_INFO_ENUM_REMOVING;
+- }
+-
+- /* emit packages that would have been removed */
+- for (removes = pacman_transaction_get_removes (transaction); removes != NULL; removes = pacman_list_next (removes)) {
+- PacmanPackage *remove = (PacmanPackage *) pacman_list_get (removes);
+-
+- if (backend_cancelled (backend)) {
+- break;
+- } else {
+- backend_package (backend, remove, info);
+- }
+- }
+-}
+-
+-PacmanTransaction *
+-backend_transaction_commit (PkBackend *backend, PacmanTransaction *transaction)
+-{
+- GError *error = NULL;
+-
+- if (transaction != NULL && !backend_cancelled (backend)) {
+- pk_backend_set_status (backend, PK_STATUS_ENUM_RUNNING);
+-
+- if (!pacman_transaction_commit (transaction, &error)) {
+- backend_error (backend, error);
+- g_hash_table_remove (downloads, transaction);
+- g_object_unref (transaction);
+- return NULL;
+- }
+- }
+-
+- return transaction;
+-}
+-
+-gboolean
+-backend_transaction_finished (PkBackend *backend, PacmanTransaction *transaction)
+-{
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- if (transaction != NULL) {
+- g_object_unref (transaction);
+- backend_finished (backend);
+- return TRUE;
+- } else {
+- backend_finished (backend);
+- return FALSE;
+- }
+-}
+diff --git a/backends/pacman/backend-transaction.h b/backends/pacman/backend-transaction.h
+deleted file mode 100644
+index a7db49a..0000000
+--- a/backends/pacman/backend-transaction.h
++++ /dev/null
+@@ -1,54 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pacman.h>
+-#include <pk-backend.h>
+-
+-typedef enum {
+- PACMAN_TRANSACTION_INSTALL,
+- PACMAN_TRANSACTION_MODIFY,
+- PACMAN_TRANSACTION_REMOVE,
+- PACMAN_TRANSACTION_SYNC,
+- PACMAN_TRANSACTION_UPDATE,
+- PACMAN_TRANSACTION_LAST
+-} PacmanTransactionType;
+-
+-gboolean backend_initialize_downloads (PkBackend *backend,
+- GError **error);
+-void backend_destroy_downloads (PkBackend *backend);
+-
+-PacmanTransaction *backend_transaction_simulate (PkBackend *backend,
+- PacmanTransactionType type,
+- guint32 flags,
+- const PacmanList *targets);
+-PacmanTransaction *backend_transaction_run (PkBackend *backend,
+- PacmanTransactionType type,
+- guint32 flags,
+- const PacmanList *targets);
+-
+-void backend_transaction_packages (PkBackend *backend,
+- PacmanTransaction *transaction);
+-PacmanTransaction *backend_transaction_commit (PkBackend *backend,
+- PacmanTransaction *transaction);
+-gboolean backend_transaction_finished (PkBackend *backend,
+- PacmanTransaction *transaction);
+diff --git a/backends/pacman/backend-update.c b/backends/pacman/backend-update.c
+deleted file mode 100644
+index a34eb05..0000000
+--- a/backends/pacman/backend-update.c
++++ /dev/null
+@@ -1,394 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <string.h>
+-#include <pacman.h>
+-#include <glib/gstdio.h>
+-#include "backend-error.h"
+-#include "backend-pacman.h"
+-#include "backend-packages.h"
+-#include "backend-repos.h"
+-#include "backend-transaction.h"
+-#include "backend-update.h"
+-
+-static gchar *
+-pacman_package_make_replaces_ids (PacmanPackage *package)
+-{
+- const PacmanList *list;
+- GString *string = NULL;
+-
+- g_return_val_if_fail (local_database != NULL, NULL);
+- g_return_val_if_fail (package != NULL, NULL);
+-
+- /* make a list of the packages that package replaces */
+- for (list = pacman_package_get_replaces (package); list != NULL; list = pacman_list_next (list)) {
+- const gchar *name = pacman_list_get (list);
+- PacmanPackage *replaces = pacman_database_find_package (local_database, name);
+-
+- if (replaces != NULL) {
+- gchar *package_id = pacman_package_make_id (replaces);
+- if (string == NULL) {
+- string = g_string_new (package_id);
+- } else {
+- g_string_append_printf (string, "&%s", package_id);
+- }
+- g_free (package_id);
+- }
+- }
+-
+- if (string != NULL) {
+- return g_string_free (string, FALSE);
+- } else {
+- return NULL;
+- }
+-}
+-
+-static gchar *
+-pacman_package_make_vendor_url (PacmanPackage *package)
+-{
+- GString *string = g_string_new ("");
+-#ifdef PACMAN_PACKAGE_URL
+- const gchar *name, *arch, *repo, *url;
+-#else
+- const gchar *url;
+-#endif
+-
+- g_return_val_if_fail (package != NULL, NULL);
+-
+- /* grab the URL of the package... */
+- url = pacman_package_get_url (package);
+- if (url != NULL) {
+- g_string_append_printf (string, "%s;Package website;", url);
+- }
+-
+-#ifdef PACMAN_PACKAGE_URL
+- /* ... and construct the distro URL if possible */
+- name = pacman_package_get_name (package);
+- arch = pacman_package_get_arch (package);
+- repo = pacman_database_get_name (pacman_package_get_database (package));
+-
+- g_string_append_printf (string, PACMAN_PACKAGE_URL ";Distribution website;", repo, arch, name);
+-#endif
+-
+- g_string_truncate (string, string->len - 1);
+- return g_string_free (string, FALSE);
+-}
+-
+-static gint
+-pacman_package_compare_pkgver (PacmanPackage *a, PacmanPackage *b)
+-{
+- gint result;
+- const gchar *version_a, *version_b, *last_a, *last_b;
+- gchar *pkgver_a, *pkgver_b;
+-
+- g_return_val_if_fail (a != NULL, (b == NULL) ? 0 : -1);
+- g_return_val_if_fail (b != NULL, 1);
+-
+- version_a = pacman_package_get_version (a);
+- version_b = pacman_package_get_version (b);
+-
+- last_a = strrchr (version_a, '-');
+- last_b = strrchr (version_b, '-');
+-
+- if (last_a != NULL) {
+- pkgver_a = g_strndup (version_a, last_a - version_a);
+- } else {
+- pkgver_a = g_strdup (version_a);
+- }
+-
+- if (last_b != NULL) {
+- pkgver_b = g_strndup (version_b, last_b - version_b);
+- } else {
+- pkgver_b = g_strdup (version_b);
+- }
+-
+- result = pacman_package_compare_version (pkgver_a, pkgver_b);
+-
+- g_free (pkgver_a);
+- g_free (pkgver_b);
+-
+- return result;
+-}
+-
+-static gboolean
+-backend_get_update_detail_thread (PkBackend *backend)
+-{
+- guint iterator;
+-
+- gchar **package_ids;
+-
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- package_ids = pk_backend_get_strv (backend, "package_ids");
+-
+- g_return_val_if_fail (package_ids != NULL, FALSE);
+-
+- /* collect details about updates */
+- for (iterator = 0; package_ids[iterator] != NULL; ++iterator) {
+- PacmanPackage *package, *upgrades;
+- PacmanDatabase *database;
+-
+- gchar *upgrades_id, *replaces_ids, *vendor_url;
+- const gchar *message;
+-
+- PkRestartEnum restart;
+- PkUpdateStateEnum state;
+-
+- GTimeVal built = { 0 }, installed = { 0 };
+- gchar *issued, *updated;
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- package = backend_get_package (backend, package_ids[iterator]);
+- if (package == NULL) {
+- backend_finished (backend);
+- return FALSE;
+- }
+-
+- upgrades = pacman_database_find_package (local_database, pacman_package_get_name (package));
+- if (upgrades != NULL) {
+- upgrades_id = pacman_package_make_id (upgrades);
+- if (pacman_package_compare_pkgver (package, upgrades) != 0) {
+- message = "Update to newest upstream version";
+- } else {
+- message = "Update to newest release";
+- }
+- } else {
+- upgrades_id = NULL;
+- message = "Install as a replacement for an older package";
+- }
+-
+- database = pacman_package_get_database (package);
+- replaces_ids = pacman_package_make_replaces_ids (package);
+- vendor_url = pacman_package_make_vendor_url (package);
+-
+- if (g_str_has_prefix (pacman_package_get_name (package), "kernel")) {
+- restart = PK_RESTART_ENUM_SYSTEM;
+- } else {
+- restart = PK_RESTART_ENUM_NONE;
+- }
+-
+- if (g_str_has_suffix (pacman_database_get_name (database), "testing")) {
+- state = PK_UPDATE_STATE_ENUM_TESTING;
+- } else {
+- state = PK_UPDATE_STATE_ENUM_STABLE;
+- }
+-
+- built.tv_sec = pacman_package_get_build_date (package);
+- if (built.tv_sec > 0) {
+- issued = g_time_val_to_iso8601 (&built);
+- } else {
+- issued = NULL;
+- }
+-
+- if (upgrades != NULL) {
+- installed.tv_sec = pacman_package_get_install_date (upgrades);
+- if (installed.tv_sec > 0) {
+- updated = g_time_val_to_iso8601 (&installed);
+- } else {
+- updated = NULL;
+- }
+- } else {
+- updated = NULL;
+- }
+-
+- pk_backend_update_detail (backend, package_ids[iterator], upgrades_id, replaces_ids, vendor_url, NULL, NULL, restart, message, NULL, state, issued, updated);
+-
+- g_free (issued);
+- g_free (updated);
+-
+- g_free (vendor_url);
+- g_free (replaces_ids);
+- g_free (upgrades_id);
+- }
+-
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_update_detail:
+- **/
+-void
+-backend_get_update_detail (PkBackend *backend, gchar **package_ids)
+-{
+- g_return_if_fail (backend != NULL);
+- g_return_if_fail (package_ids != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_get_update_detail_thread);
+-}
+-
+-static gboolean
+-pacman_package_should_ignore (PacmanPackage *package)
+-{
+- const PacmanList *groups;
+- const PacmanList *ignore_packages;
+- const PacmanList *ignore_groups;
+-
+- g_return_val_if_fail (pacman != NULL, TRUE);
+- g_return_val_if_fail (package != NULL, TRUE);
+-
+- ignore_packages = pacman_manager_get_ignore_packages (pacman);
+-
+- /* check if package is an IgnorePkg */
+- if (pacman_list_find_string (ignore_packages, pacman_package_get_name (package)) != NULL) {
+- return TRUE;
+- }
+-
+- ignore_groups = pacman_manager_get_ignore_groups (pacman);
+-
+- /* check if package is in an IgnoreGroup */
+- for (groups = pacman_package_get_groups (package); groups != NULL; groups = pacman_list_next (groups)) {
+- if (pacman_list_find_string (ignore_groups, (const gchar *) pacman_list_get (groups)) != NULL) {
+- return TRUE;
+- }
+- }
+-
+- return FALSE;
+-}
+-
+-static gboolean
+-pacman_package_should_sync_first (PacmanPackage *package)
+-{
+- const PacmanList *sync_firsts;
+-
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (package != NULL, FALSE);
+-
+- sync_firsts = pacman_manager_get_sync_firsts (pacman);
+-
+- /* check if package is in SyncFirst */
+- if (pacman_list_find_string (sync_firsts, pacman_package_get_name (package)) != NULL) {
+- return TRUE;
+- }
+-
+- return FALSE;
+-}
+-
+-static gboolean
+-backend_get_updates_thread (PkBackend *backend)
+-{
+- struct stat cache;
+- time_t one_hour_ago;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_NONE;
+-
+- const PacmanList *packages;
+-
+- g_return_val_if_fail (local_database != NULL, FALSE);
+- g_return_val_if_fail (pacman != NULL, FALSE);
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- time (&one_hour_ago);
+- one_hour_ago -= 60 * 60;
+-
+- /* refresh databases if they are older than an hour */
+- if (g_stat (PACMAN_CACHE_PATH, &cache) < 0 || cache.st_mtime < one_hour_ago) {
+- transaction = backend_transaction_run (backend, PACMAN_TRANSACTION_UPDATE, flags, NULL);
+-
+- if (transaction != NULL) {
+- g_object_unref (transaction);
+- } else {
+- backend_finished (backend);
+- return FALSE;
+- }
+- } else {
+- g_debug ("pacman: databases have been refreshed recently");
+- }
+-
+- /* find outdated and replacement packages */
+- for (packages = pacman_database_get_packages (local_database); packages != NULL; packages = pacman_list_next (packages)) {
+- PacmanPackage *package = (PacmanPackage *) pacman_list_get (packages);
+- PacmanPackage *upgrade = pacman_package_find_upgrade (package, pacman_manager_get_sync_databases (pacman));
+-
+- if (backend_cancelled (backend)) {
+- break;
+- }
+-
+- if (upgrade != NULL) {
+- PkInfoEnum info;
+-
+- if (pacman_package_should_ignore (upgrade)) {
+- info = PK_INFO_ENUM_BLOCKED;
+- } else if (pacman_package_should_sync_first (upgrade)) {
+- info = PK_INFO_ENUM_IMPORTANT;
+- } else {
+- info = PK_INFO_ENUM_NORMAL;
+- }
+-
+- backend_package (backend, upgrade, info);
+- }
+- }
+-
+- backend_finished (backend);
+- return TRUE;
+-}
+-
+-/**
+- * backend_get_updates:
+- **/
+-void
+-backend_get_updates (PkBackend *backend, PkBitfield filters)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_QUERY, backend_get_updates_thread);
+-}
+-
+-static gboolean
+-backend_refresh_cache_thread (PkBackend *backend)
+-{
+- gboolean force;
+-
+- PacmanTransaction *transaction = NULL;
+- PacmanTransactionFlags flags = PACMAN_TRANSACTION_FLAGS_NONE;
+-
+- g_return_val_if_fail (backend != NULL, FALSE);
+-
+- force = pk_backend_get_bool (backend, "force");
+-
+- /* download databases even if they are older than current */
+- if (force) {
+- flags |= PACMAN_TRANSACTION_FLAGS_UPDATE_ALLOW_DOWNGRADE;
+- }
+-
+- /* run the transaction */
+- transaction = backend_transaction_run (backend, PACMAN_TRANSACTION_UPDATE, flags, NULL);
+-
+- return backend_transaction_finished (backend, transaction);
+-}
+-
+-/**
+- * backend_refresh_cache:
+- **/
+-void
+-backend_refresh_cache (PkBackend *backend, gboolean force)
+-{
+- g_return_if_fail (backend != NULL);
+-
+- backend_run (backend, PK_STATUS_ENUM_SETUP, backend_refresh_cache_thread);
+-}
+diff --git a/backends/pacman/backend-update.h b/backends/pacman/backend-update.h
+deleted file mode 100644
+index 2a8bf02..0000000
+--- a/backends/pacman/backend-update.h
++++ /dev/null
+@@ -1,31 +0,0 @@
+-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+- *
+- * Copyright (C) 2007 Andreas Obergrusberger <tradiaz@yahoo.de>
+- * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep@ukr.net>
+- * Copyright (C) 2010 Jonathan Conder <j@skurvy.no-ip.org>
+- *
+- * Licensed under the GNU General Public License Version 2
+- *
+- * 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.
+- */
+-
+-#include <pk-backend.h>
+-
+-void backend_get_update_detail (PkBackend *backend,
+- gchar **package_ids);
+-void backend_get_updates (PkBackend *backend,
+- PkBitfield filters);
+-void backend_refresh_cache (PkBackend *backend,
+- gboolean force);
+diff --git a/backends/pacman/groups.list b/backends/pacman/groups.list
+deleted file mode 100644
+index b2c02ae..0000000
+--- a/backends/pacman/groups.list
++++ /dev/null
+@@ -1,65 +0,0 @@
+-adesklet-desklets desktop-other
+-base system
+-base-devel programming
+-bmp-io-plugins multimedia
+-bmp-plugins multimedia
+-cegcc programming
+-compiz desktop-other
+-compiz-fusion desktop-other
+-compiz-fusion-gtk desktop-gnome
+-compiz-fusion-kde desktop-kde
+-compiz-gnome desktop-gnome
+-compiz-gtk desktop-gnome
+-compiz-kde desktop-kde
+-e17-extra-svn desktop-other
+-e17-libs-svn desktop-other
+-e17-svn desktop-other
+-fprint other
+-gimp-help other
+-gimp-plugins other
+-gnome desktop-gnome
+-gnome-extra desktop-gnome
+-gnustep-core desktop-other
+-google-gadgets desktop-other
+-gstreamer0.10-plugins multimedia
+-kde desktop-kde
+-kdeaccessibility desktop-kde
+-kdeadmin desktop-kde
+-kdeartwork desktop-kde
+-kdebase desktop-kde
+-kdeedu desktop-kde
+-kde-extragear desktop-kde
+-kdegames desktop-kde
+-kdegraphics desktop-kde
+-kde-l10n desktop-kde
+-kde-meta desktop-kde
+-kdemultimedia desktop-kde
+-kdenetwork desktop-kde
+-kdepim desktop-kde
+-kdeplasma-addons desktop-kde
+-kdesdk desktop-kde
+-kdetoys desktop-kde
+-kdeutils desktop-kde
+-kdewebdev desktop-kde
+-koffice desktop-kde
+-ladspa-plugins multimedia
+-lib32 other
+-lxde other
+-qtcurve desktop-kde
+-rox-desktop desktop-other
+-telepathy other
+-texlive-lang other
+-texlive-lang-doc other
+-texlive-most other
+-texlive-most-doc other
+-thunderbird-i18n other
+-thunderbird-spell-i18n other
+-vim-plugins other
+-xfce4 desktop-xfce
+-xfce4-goodies desktop-xfce
+-xmms-effect-plugins multimedia
+-xmms-io-plugins multimedia
+-xmms-plugins multimedia
+-xorg desktop-other
+-xorg-input-drivers desktop-other
+-xorg-video-drivers desktop-other
+diff --git a/backends/pacman/pacman.conf b/backends/pacman/pacman.conf
+deleted file mode 100644
+index 40b8e4a..0000000
+--- a/backends/pacman/pacman.conf
++++ /dev/null
+@@ -1,12 +0,0 @@
+-# PackageKit configuration for the pacman backend
+-# See the pacman.conf(5) manpage for option and repository directives.
+-
+-[options]
+-
+-# Use default pacman configuration initially
+-#
+-Include = /etc/pacman.conf
+-
+-# Prevent PackageKit from removing itself
+-#
+-HoldPkg = packagekit
+diff --git a/configure.ac b/configure.ac
+index ad86e3b..6604ac5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -487,7 +487,6 @@ AC_ARG_ENABLE(conary, AS_HELP_STRING([--enable-conary],[use the CONARY backend])
+ AC_ARG_ENABLE(dummy, AS_HELP_STRING([--enable-dummy],[use the dummy backend]),enable_dummy=$enableval,enable_dummy=yes)
+ AC_ARG_ENABLE(entropy, AS_HELP_STRING([--enable-entropy],[use the entropy backend]),enable_entropy=$enableval,enable_entropy=no)
+ AC_ARG_ENABLE(opkg, AS_HELP_STRING([--enable-opkg],[use the OPKG backend]),enable_opkg=$enableval,enable_opkg=no)
+-AC_ARG_ENABLE(pacman, AS_HELP_STRING([--enable-pacman],[use the Pacman backend]),enable_pacman=$enableval,enable_pacman=no)
+ AC_ARG_ENABLE(pisi, AS_HELP_STRING([--enable-pisi],[use the PiSi backend]),enable_pisi=$enableval,enable_pisi=no)
+ AC_ARG_ENABLE(poldek, AS_HELP_STRING([--enable-poldek],[use the poldek backend]),enable_poldek=$enableval,enable_poldek=no)
+ AC_ARG_ENABLE(portage, AS_HELP_STRING([--enable-portage],[use the portage backend]),enable_portage=$enableval,enable_portage=no)
+@@ -509,7 +508,6 @@ AM_CONDITIONAL(BACKEND_TYPE_CONARY, [test x$enable_conary = xyes])
+ AM_CONDITIONAL(BACKEND_TYPE_DUMMY, [test x$enable_dummy = xyes])
+ AM_CONDITIONAL(BACKEND_TYPE_ENTROPY, [test x$enable_entropy = xyes])
+ AM_CONDITIONAL(BACKEND_TYPE_OPKG, [test x$enable_opkg = xyes])
+-AM_CONDITIONAL(BACKEND_TYPE_PACMAN, [test x$enable_pacman = xyes])
+ AM_CONDITIONAL(BACKEND_TYPE_PISI, [test x$enable_pisi = xyes])
+ AM_CONDITIONAL(BACKEND_TYPE_POLDEK, [test x$enable_poldek = xyes])
+ AM_CONDITIONAL(BACKEND_TYPE_PORTAGE, [test x$enable_portage = xyes])
+@@ -610,8 +608,6 @@ if test x$with_default_backend = x; then
+ with_default_backend=slapt
+ elif test -f /usr/bin/smart ; then
+ with_default_backend=smart
+- elif test -f /usr/lib/libpacman-glib.so ; then
+- with_default_backend=pacman
+ elif test -f /usr/bin/pisi ; then
+ with_default_backend=pisi
+ elif test -f /usr/bin/razor ; then
+@@ -710,12 +706,6 @@ if test x$enable_alpm = xyes; then
+ [AC_MSG_ERROR([No ALPM headers found])])
+ fi
+
+-if test x$enable_pacman = xyes; then
+- PKG_CHECK_MODULES(PACMAN, pacman-glib >= 3.3.0)
+- AC_SUBST(PACMAN_CFLAGS)
+- AC_SUBST(PACMAN_LIBS)
+-fi
+-
+ if test x$enable_poldek = xyes; then
+ POLDEK_CFLAGS="-I/usr/include/poldek"
+ POLDEK_LIBS="-lpoclidek -lpoldek"
+@@ -794,7 +784,6 @@ backends/conary/Makefile
+ backends/dummy/Makefile
+ backends/entropy/Makefile
+ backends/opkg/Makefile
+-backends/pacman/Makefile
+ backends/slapt/Makefile
+ backends/smart/Makefile
+ backends/test/Makefile
+@@ -870,7 +859,6 @@ echo "
+ Entropy backend: ${enable_entropy}
+ OPKG backend: ${enable_opkg}
+ Razor backend: ${enable_razor}
+- Pacman backend: ${enable_pacman}
+ PiSi backend: ${enable_pisi}
+ poldek backend: ${enable_poldek}
+ Portage backend: ${enable_portage}
+diff --git a/docs/html/pk-matrix.html b/docs/html/pk-matrix.html
+index 33f2efb..91dc2d4 100644
+--- a/docs/html/pk-matrix.html
++++ b/docs/html/pk-matrix.html
+@@ -28,7 +28,6 @@
+ <td><center>conary</center></td>
+ <td><center>entropy</center></td>
+ <td><center>opkg</center></td>
+-<td><center>pacman</center></td>
+ <td><center>pisi</center></td>
+ <td><center>poldek</center></td>
+ <td><center>portage</center></td>
+@@ -43,12 +42,11 @@
+ <td><b>Cancel</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -68,7 +66,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -88,7 +85,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -108,7 +104,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -128,7 +123,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -148,7 +142,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -168,7 +161,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -188,7 +180,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -203,12 +194,11 @@
+ <td><b>GetRequires</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -228,7 +218,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -248,7 +237,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -268,7 +256,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -288,7 +275,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -308,7 +294,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -328,7 +313,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -348,7 +332,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -363,12 +346,11 @@
+ <td><b>RepoEnable</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -388,7 +370,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -408,7 +389,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -428,7 +408,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -448,7 +427,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -463,12 +441,11 @@
+ <td><b>SearchFile</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- box -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -488,7 +465,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -508,7 +484,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -523,12 +498,11 @@
+ <td><b>SimulateInstallFiles</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -543,12 +517,11 @@
+ <td><b>SimulateInstallPackages</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -563,12 +536,11 @@
+ <td><b>SimulateRemovePackages</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -583,12 +555,11 @@
+ <td><b>SimulateUpdatePackages</b></td>
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- apt -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- aptcc -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- alpm -->
++<td><img src="img/status-good.png" alt="[yes]"/></td><!-- alpm -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- box -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -608,7 +579,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -628,7 +598,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -648,7 +617,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -672,7 +640,6 @@
+ <td><center>conary</center></td>
+ <td><center>entropy</center></td>
+ <td><center>opkg</center></td>
+-<td><center>pacman</center></td>
+ <td><center>pisi</center></td>
+ <td><center>poldek</center></td>
+ <td><center>portage</center></td>
+@@ -692,7 +659,6 @@
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-good.png" alt="[yes]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -712,7 +678,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -732,7 +697,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -752,7 +716,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -772,7 +735,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -792,7 +754,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -812,7 +773,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- poldek -->
+ <td><img src="img/status-good.png" alt="[yes]"/></td><!-- portage -->
+@@ -832,7 +792,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
+@@ -852,7 +811,6 @@
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- conary -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- entropy -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- opkg -->
+-<td><img src="img/status-bad.png" alt="[no]"/></td><!-- pacman -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- pisi -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- poldek -->
+ <td><img src="img/status-bad.png" alt="[no]"/></td><!-- portage -->
diff --git a/community/packagekit/packagekit.install b/community/packagekit/packagekit.install
new file mode 100644
index 000000000..7c8a8bd2b
--- /dev/null
+++ b/community/packagekit/packagekit.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/paco/ChangeLog b/community/paco/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/paco/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/paco/PKGBUILD b/community/paco/PKGBUILD
new file mode 100644
index 000000000..4b9462466
--- /dev/null
+++ b/community/paco/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35428 2010-12-20 11:44:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=paco
+pkgver=2.0.9
+pkgrel=1
+pkgdesc="LFS packet manager"
+arch=('i686' 'x86_64')
+url="http://paco.sourceforge.net/index.html"
+license=('GPL')
+#NOTE: You may disable gtk frontend in configure
+depends=(gtk2 gtkmm)
+backup=(etc/pacorc)
+source=(http://downloads.sourceforge.net/sourceforge/paco/$pkgname-$pkgver.tar.bz2)
+md5sums=('d2debbea1b11156470f7fd849bb93c80')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/home
+}
diff --git a/community/paintown/PKGBUILD b/community/paintown/PKGBUILD
new file mode 100644
index 000000000..8d885f949
--- /dev/null
+++ b/community/paintown/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Jschares <jacob.schares@gmail.com>
+# Contributor: celmir <scibecelmir@tuxfamily.org>
+# Contributor: Feufochmar <guill.delacourt@gmail.com>
+pkgname=paintown
+pkgver=3.4.0
+pkgrel=2
+pkgdesc="An open source fighting game in the same genre as Streets of Rage and Teenage Mutant Ninja Turtles."
+arch=('i686' 'x86_64')
+url="http://paintown.sourceforge.net/"
+license=('GPL')
+depends=('python2' 'freetype2' 'allegro')
+makedepends=('cmake')
+#install=paintown.install
+source=(http://downloads.sourceforge.net/sourceforge/paintown/$pkgname-$pkgver.tar.gz
+ paintown.png
+ paintown.desktop)
+md5sums=('f1d49ffc3149b545d95a57f99570331f'
+ 'ed547f1377212ea079cf9b0a1ad2d587'
+ '4144c695ad0bc4621e96ef9760f33b19')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+# fix python2 header
+ for file in $(find . -name '*.py' -print); do
+ sed -i "s#/usr/bin/python#/usr/bin/env python2#" $file
+ done
+# not needed as cmake is used instead of scons
+# sed -i "s#python#python2#" Makefile
+ mkdir -p build
+ cd build
+ cmake ..
+ make
+ cp bin/paintown ..
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ mkdir -p $pkgdir/usr/{bin,share/{paintown,pixmaps,applications,licenses/paintown}}
+ sh install.sh -d $pkgdir/usr/share/paintown -b $pkgdir/usr/bin
+# correct the gnerated file to remove the wrong path (because $pkgdir/usr/bin is written in the file)
+ sed -i "s#$pkgdir##g" $pkgdir/usr/bin/paintown
+ install -m644 $srcdir/paintown.desktop $pkgdir/usr/share/applications/paintown.desktop
+ install -m644 $srcdir/paintown.png $pkgdir/usr/share/pixmaps/paintown.png
+ install -m644 LICENSE $pkgdir/usr/share/licenses/paintown/LICENSE
+ install -m644 LEGAL $pkgdir/usr/share/licenses/paintown/LEGAL
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/paintown/paintown.desktop b/community/paintown/paintown.desktop
new file mode 100644
index 000000000..e729ecbd0
--- /dev/null
+++ b/community/paintown/paintown.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=PainTown
+Comment=Paintown is an open source fighting game in the same genre as Streets of Rage and Teenage Mutant Ninja Turtles.
+Exec=paintown
+Icon=paintown.png
+Terminal=false
+Type=Application
+Categories=Application;Game;
diff --git a/community/paintown/paintown.png b/community/paintown/paintown.png
new file mode 100644
index 000000000..c7e4830e4
--- /dev/null
+++ b/community/paintown/paintown.png
Binary files differ
diff --git a/community/pam-krb5/PKGBUILD b/community/pam-krb5/PKGBUILD
new file mode 100644
index 000000000..c31c91ca4
--- /dev/null
+++ b/community/pam-krb5/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 36761 2011-01-07 19:49:35Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Ryan Corder <ryanc@greengrey.org>
+
+pkgname=pam-krb5
+pkgver=4.4
+pkgrel=1
+pkgdesc='A PAM module providing Kerberos v5 support.'
+arch=('i686' 'x86_64')
+url='http://www.eyrie.org/~eagle/software/pam-krb5/'
+license=('custom')
+options=('!libtool')
+
+depends=('heimdal' 'pam')
+
+source=("http://archives.eyrie.org/software/kerberos/$pkgname-$pkgver.tar.gz")
+md5sums=('a3f9a414fef102cd815a763c965b315c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-reduced-depends
+ make; make DESTDIR=$pkgdir install
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/pam_mysql/PKGBUILD b/community/pam_mysql/PKGBUILD
new file mode 100644
index 000000000..5f1539ad9
--- /dev/null
+++ b/community/pam_mysql/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 42238 2011-03-15 20:26:27Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arjan Timmerman<arjan@archlinux.org>
+# Contributor: Manolis Tzanidakis
+pkgname=pam_mysql
+pkgver=0.7RC1
+pkgrel=3
+pkgdesc="A PAM module to authenticate users against mysql."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://pam-mysql.sourceforge.net"
+depends=('pam' 'mysql' 'openssl')
+source=(http://sourceforge.net/projects/pam-mysql/files/pam-mysql/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6177183d7e98dc12f2e444c9fbd4f13c')
+options=(!libtool)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/pam_pwcheck/PKGBUILD b/community/pam_pwcheck/PKGBUILD
new file mode 100644
index 000000000..bd5ee48d6
--- /dev/null
+++ b/community/pam_pwcheck/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 7508 2010-01-07 03:43:27Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=pam_pwcheck
+pkgver=3.9
+pkgrel=2
+pkgdesc="A password strength checking module for PAM-aware password changing programs"
+arch=(i686 x86_64)
+url="http://www.thkukuk.de/pam/pam_pwcheck/"
+depends=('pam')
+license=('GPL')
+source=(ftp://ftp.suse.com/pub/people/kukuk/pam/pam_pwcheck/pam_pwcheck-$pkgver.tar.bz2)
+md5sums=('27be63338af88d14610d182b6a161cd1')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --mandir=/usr/share
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=$startdir/pkg install
+}
diff --git a/community/panflute/PKGBUILD b/community/panflute/PKGBUILD
new file mode 100644
index 000000000..22991b45c
--- /dev/null
+++ b/community/panflute/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 31469 2010-10-31 21:20:40Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Owain Sutton <owainsutton @ gmail dot com>
+
+pkgname=panflute
+pkgver=0.7.0
+pkgrel=1
+pkgdesc="Music player interface and panel applet - successor to music-applet"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/panflute"
+license=('GPL')
+depends=('dbus-python' 'gnome-python' 'python-notify' 'pygtk' 'python-numpy' 'python-gnomeapplet')
+makedepends=('perlxml' 'gnome-doc-utils>=0.18' 'intltool' 'gnome-python-desktop' 'python-mpd')
+optdepends=('python-mpd: for mpd support')
+install=panflute.install
+source=(http://launchpad.net/${pkgname}/0.7/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('3499e5e7beb9ee737898a7f1ccff9cb2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/panflute \
+ --disable-schemas-install
+
+ make
+ make DESTDIR="${pkgdir}" install
+
+ sed -i "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find ${pkgdir}/usr/lib/python2.7/site-packages/panflute/ -name '*.py') \
+ ${pkgdir}/usr/lib/panflute/panflute-applet \
+ ${pkgdir}/usr/bin/panflute-{daemon,launch-player} \
+ ${pkgdir}/usr/bin/panflute-debugger \
+ ${pkgdir}/usr/bin/panflute-tests
+
+ install -m755 -d "${pkgdir}"/usr/share/gconf/schemas
+ gconf-merge-schema "${pkgdir}"/usr/share/gconf/schemas/${pkgname}.schemas --domain ${pkgname} \
+ "${pkgdir}"/etc/gconf/schemas/*.schemas
+
+ rm -rf "${pkgdir}"/etc/gconf
+}
diff --git a/community/panflute/panflute.install b/community/panflute/panflute.install
new file mode 100644
index 000000000..078b30c4c
--- /dev/null
+++ b/community/panflute/panflute.install
@@ -0,0 +1,17 @@
+pkgname=panflute
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/community/pantomime/PKGBUILD b/community/pantomime/PKGBUILD
new file mode 100644
index 000000000..2d0156179
--- /dev/null
+++ b/community/pantomime/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 14370 2010-04-03 00:07:53Z foutrelis $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=pantomime
+pkgver=1.2.0pre3
+pkgrel=2
+pkgdesc="A set of Objective-C classes that model a mail system"
+arch=('i686' 'x86_64')
+url="http://www.collaboration-world.com/pantomime"
+license=("LGPL" "custom")
+depends=('gnustep-back' 'openssl')
+makedepends=('gnustep-make' 'gnustep-base' 'gcc-objc')
+options=('!makeflags')
+source=(http://www.collaboration-world.com/cgi-bin/project/download.cgi/Pantomime-$pkgver.tar.gz?rid=104)
+md5sums=('b88f4634ec1f3a1ea1d5551ee10d9db7')
+
+build() {
+ source /etc/profile.d/GNUstep.sh
+ cd $startdir/src
+ mv Pantomime-$pkgver.tar.gz?rid=104 Pantomime-$pkgver.tar.gz
+ tar xfz Pantomime-$pkgver.tar.gz
+ cd $startdir/src/Pantomime
+
+ make || return 1
+ make GNUSTEP_INSTALLATION_DIR=$startdir/pkg/opt/GNUstep/System install || return 1
+ install -D -m644 Documentation/LICENSE.elm $startdir/pkg/usr/share/licenses/$pkgname/LICENSE.elm
+}
diff --git a/community/parano/ChangeLog b/community/parano/ChangeLog
new file mode 100644
index 000000000..07fc29421
--- /dev/null
+++ b/community/parano/ChangeLog
@@ -0,0 +1,6 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Changed patch to fix Makefile.in and not .am
+
+2007-08-29 Georg Grabler (STiAT) <ggrabler@gmail.com>
+* Updated to version 0.3.4
diff --git a/community/parano/PKGBUILD b/community/parano/PKGBUILD
new file mode 100644
index 000000000..5f773d17c
--- /dev/null
+++ b/community/parano/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 27187 2010-09-18 15:58:45Z schuay $
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=parano
+pkgver=0.3.5
+pkgrel=4
+pkgdesc="A GNOME frontend for creating/editing/checking MD5 and SFV files"
+arch=('i686' 'x86_64')
+url="http://parano.berlios.de"
+license=('GPL')
+depends=('gnome-python' 'shared-mime-info')
+makedepends=('intltool')
+install=parano.install
+source=(http://download.berlios.de/parano/parano-${pkgver}.tar.gz \
+ mime.diff)
+md5sums=('126cc42492c1dcf4c5e1b4a3c616acb6' \
+ '6dd541ece566505e61f6e94c91a26798')
+
+build() {
+ cd ${srcdir}/parano-${pkgver}
+
+ # 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
+
+ patch -Np0 -i ../mime.diff
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/parano-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/parano/mime.diff b/community/parano/mime.diff
new file mode 100644
index 000000000..c775e06ad
--- /dev/null
+++ b/community/parano/mime.diff
@@ -0,0 +1,15 @@
+--- mime/Makefile.in 2006-07-13 19:10:58.000000000 +0200
++++ mime/Makefile.in.new 2007-08-29 20:16:12.000000000 +0200
+@@ -407,9 +407,9 @@
+ uninstall-mimeinfoDATA
+
+
+-@UPDATE_MIME_DATABASE_TRUE@install-data-local:
+-@UPDATE_MIME_DATABASE_TRUE@ mkdir -p $(mimedir)
+-@UPDATE_MIME_DATABASE_TRUE@ update-mime-database $(datadir)/mime/
++#@UPDATE_MIME_DATABASE_TRUE@install-data-local:
++#@UPDATE_MIME_DATABASE_TRUE@ mkdir -p $(mimedir)
++#@UPDATE_MIME_DATABASE_TRUE@ update-mime-database $(datadir)/mime/
+
+ @UPDATE_MIME_DATABASE_TRUE@uninstall-local:
+ @UPDATE_MIME_DATABASE_TRUE@ update-mime-database $(datadir)/mime/
diff --git a/community/parano/parano.install b/community/parano/parano.install
new file mode 100644
index 000000000..5e31d3635
--- /dev/null
+++ b/community/parano/parano.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/paraview/PKGBUILD b/community/paraview/PKGBUILD
new file mode 100644
index 000000000..e28da76c2
--- /dev/null
+++ b/community/paraview/PKGBUILD
@@ -0,0 +1,80 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Michele Mocciola <mickele>
+# Contributor: Simon Zilliken <simon____AT____zilliken____DOT____name>
+
+pkgname=paraview
+pkgver=3.10.0
+pkgrel=2
+pkgdesc='Parallel Visualization Application using VTK.'
+arch=('i686' 'x86_64')
+url='http://www.paraview.org'
+license=('custom')
+depends=('qt' 'python2' 'libgl' 'hdf5' 'libxml2' 'unixodbc' 'postgresql-libs' 'libxt' 'libmysqlclient' 'mesa' 'openmpi')
+makedepends=('cmake' 'desktop-file-utils')
+source=("http://paraview.org/files/v${pkgver:0:4}/ParaView-${pkgver}.tar.gz"
+ "${pkgname}.profile"
+ "${pkgname}.png"
+ "${pkgname}.desktop")
+md5sums=('5369f05667f1ad8aaca7a879208aeb3c'
+ '534ef49689a7f630c98380f5ab4bf915'
+ 'db623002bc71a257ddfdd0c9c7b14c3f'
+ '4e4b7172ed18171c37446fd7c4f1e8f5')
+
+build() {
+ cd ParaView-${pkgver}
+
+ # Paraview wants to be built out of source
+ mkdir -p build
+ cd build
+
+ # use -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF \ to fix make install error: http://www.cmake.org/pipermail/paraview/2011-February/020268.html
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_USE_PTHREADS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DCMAKE_SKIP_RPATH:BOOL=YES \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF \
+ -DCMAKE_COLOR_MAKEFILE:BOOL=TRUE \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_DOCUMENTATION:BOOL=OFF \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DVTK_USE_RPATH:BOOL=OFF \
+ -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON \
+ -DVTK_USE_SYSTEM_JPEG:BOOL=ON \
+ -DVTK_USE_SYSTEM_PNG:BOOL=ON \
+ -DVTK_USE_SYSTEM_TIFF:BOOL=ON \
+ -DVTK_USE_SYSTEM_ZLIB:BOOL=ON \
+ -DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
+ -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON \
+ -DVTK_USE_BOOST:BOOL=OFF \
+ -DVTK_USE_OFFSCREEN=TRUE \
+ -DPARAVIEW_USE_SYSTEM_HDF5:BOOL=ON \
+ -DPARAVIEW_USE_MPI:BOOL=ON \
+ -DPARAVIEW_ENABLE_PYTHON:BOOL=ON \
+ -DPARAVIEW_BUILD_QT_GUI:BOOL=ON \
+ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
+ -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF \
+ ..
+
+ make
+}
+
+package() {
+ cd ParaView-${pkgver}/build
+
+ make DESTDIR=${pkgdir} install
+
+ # Install file to set PATH
+ install -D ${srcdir}/${pkgname}.profile ${pkgdir}/etc/profile.d/${pkgname}.sh
+
+ # Install license
+ install -Dm644 ${srcdir}/ParaView-${pkgver}/License_v1.2.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # Install desktop shortcuts
+ install -Dm644 ${srcdir}/paraview.png ${pkgdir}/usr/share/pixmaps/paraview.png
+ desktop-file-install --dir=${pkgdir}/usr/share/applications ${srcdir}/${pkgname}.desktop
+
+ # Removes VTK plugin for designer - if you need, you can install vtk
+ rm -rf ${pkgdir}/opt/${pkgname}/plugins
+}
diff --git a/community/paraview/paraview.desktop b/community/paraview/paraview.desktop
new file mode 100644
index 000000000..2f5b8ec69
--- /dev/null
+++ b/community/paraview/paraview.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Name=ParaView
+GenericName=Data Viewer
+Comment=ParaView allows visualization of large data sets
+Type=Application
+Terminal=false
+Icon=paraview
+Categories=Graphics;
+Exec=/usr/bin/paraview
diff --git a/community/paraview/paraview.png b/community/paraview/paraview.png
new file mode 100644
index 000000000..6e39f3d4f
--- /dev/null
+++ b/community/paraview/paraview.png
Binary files differ
diff --git a/community/paraview/paraview.profile b/community/paraview/paraview.profile
new file mode 100644
index 000000000..cb4bbde8c
--- /dev/null
+++ b/community/paraview/paraview.profile
@@ -0,0 +1 @@
+export PATH=$PATH:/opt/paraview/bin
diff --git a/community/parcellite/ChangeLog b/community/parcellite/ChangeLog
new file mode 100644
index 000000000..aff4a9e4b
--- /dev/null
+++ b/community/parcellite/ChangeLog
@@ -0,0 +1,17 @@
+2009-05-05 Biru Ionut <biru.ionut at gmail.com>
+ * parcellite-0.9.1-1:
+ New upstream release.
+
+2008-12-14 Alexander Fehr <pizzapunk gmail com>
+
+ * parcellite-0.9-1:
+ New upstream release.
+
+2008-08-14 Alexander Fehr <pizzapunk gmail com>
+
+ * parcellite-0.8-1:
+ New upstream release.
+ Changed url.
+ Added make dependency on intltool.
+ Changed download location to downloads.sourceforge.net.
+ Added ChangeLog.
diff --git a/community/parcellite/PKGBUILD b/community/parcellite/PKGBUILD
new file mode 100644
index 000000000..27c62ea86
--- /dev/null
+++ b/community/parcellite/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 42044 2011-03-12 11:31:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=parcellite
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="Lightweight GTK+ clipboard manager"
+arch=('i686' 'x86_64')
+url="http://parcellite.sourceforge.net/"
+license=('GPL3')
+depends=('gtk2')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/parcellite/parcellite-$pkgver.tar.gz)
+md5sums=('b2f1de2a424996c0eb2ff3a728a12cfc')
+
+build() {
+ cd "$srcdir/parcellite-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/pari/PKGBUILD b/community/pari/PKGBUILD
new file mode 100644
index 000000000..e9b0334ac
--- /dev/null
+++ b/community/pari/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=pari
+pkgver=2.3.5
+pkgrel=3
+pkgdesc='Computer algebra system designed for fast computations in number theory'
+arch=('i686' 'x86_64')
+url='http://pari.math.u-bordeaux.fr/'
+license=('GPL')
+depends=('gmp' 'readline')
+makedepends=('perl' 'texlive-core')
+optdepends=('perl: gphelp, tex2mail'
+ 'libx11: high precision plots')
+source=("${url}pub/pari/unix/$pkgname-$pkgver.tar.gz")
+sha1sums=('f211ccfe42a4b18dbcde832dfd1ece6f477f4966')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./Configure --prefix=/usr --with-gmp --with-readline
+ make all
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ install -m 644 -t "$pkgdir/usr/include/$pkgname/" Olinux-$CARCH/*.h
+
+ # symlink pointing to a symlink that is going to be moved by zipman
+ rm "$pkgdir"/usr/share/man/man1/pari.1
+ ln -s gp.1.gz "$pkgdir"/usr/share/man/man1/pari.1.gz
+}
diff --git a/community/parrot/ChangeLog b/community/parrot/ChangeLog
new file mode 100644
index 000000000..725287638
--- /dev/null
+++ b/community/parrot/ChangeLog
@@ -0,0 +1,5 @@
+
+2008-01-06 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Added for x86_64
+
diff --git a/community/parrot/PKGBUILD b/community/parrot/PKGBUILD
new file mode 100644
index 000000000..857f028d9
--- /dev/null
+++ b/community/parrot/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 43054 2011-03-23 21:46:21Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributer: mpie <michael.kyne-phillips1@ntlworld.com>
+
+pkgname=parrot
+pkgver=3.2.0
+_rel=devel
+#_rel=stable
+pkgrel=1
+pkgdesc="standalone virtual machine that can be used to execute bytecode compiled dynamic languages"
+arch=(i686 x86_64)
+url="http://www.parrotcode.org/"
+license=('GPL')
+depends=('gmp' 'gdbm' 'readline' 'icu' 'openssl')
+makedepends=('perl-json')
+optdepends=('freeglut')
+options=(!emptydirs !makeflags)
+source=(ftp://ftp.parrot.org/pub/parrot/releases/${_rel}/$pkgver/parrot-$pkgver.tar.gz)
+md5sums=('380c237404c513cd83f02d62dbacca03')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i 's#auto::sha1##' lib/Parrot/Configure/Step/List.pm
+ sed -i 's#auto::git_describe##' lib/Parrot/Configure/Step/List.pm
+
+ [ $NOEXTRACT -eq 1 ] || perl Configure.pl --prefix=/usr --parrot_is_shared
+
+ find -type f -name Makefile | while read F; do
+ grep "$srcdir" $F && sed -i "s#-Wl,-rpath=$srcdir/parrot-$pkgver/blib/lib##" $F || true
+ grep "$srcdir" $F && sed -i "s#-rpath=$srcdir/parrot-$pkgver/blib/lib##" $F || true
+ done
+
+ OLD_LIB_PATH=$LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$srcdir/parrot-$pkgver/blib/lib
+ make -j1 all parrot_utils docs html RPATH_BLIB=
+
+ export LD_LIBRARY_PATH=`pwd`/blib/lib
+ make -j1 DESTDIR=$pkgdir install-dev
+
+ sed -i "s#$srcdir#/usr/src#" $pkgdir/usr/lib/parrot/$pkgver/tools/lib/Parrot/Config/Generated.pm
+
+ export LD_LIBRARY_PATH=$OLD_LIB_PATH
+}
diff --git a/community/partimage/PKGBUILD b/community/partimage/PKGBUILD
new file mode 100644
index 000000000..d3923a9a3
--- /dev/null
+++ b/community/partimage/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 42823 2011-03-21 09:06:51Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Sven Kauber <celeon@gmail.com>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=partimage
+pkgver=0.6.9
+pkgrel=1
+pkgdesc='Partition Image saves partitions in many formats to an image file.'
+arch=('i686' 'x86_64')
+url='http://www.partimage.org/'
+license=('GPL')
+depends=('libnewt' 'lzo' 'bzip2' 'openssl')
+backup=('etc/partimaged/partimagedusers')
+install='partimage.install'
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'partimaged'
+ 'partimaged-gencrt')
+md5sums=('1bc046fd915c5debbafc85729464e513'
+ 'f3b517a62de5540f3b1a8b7edf65b7ec'
+ '2316b116227b07efb48266e660ca1ba1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-pam
+ make
+ make pamfile
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm0644 partimaged.pam "${pkgdir}/etc/pam.d/partimaged"
+ install -Dm0755 "${srcdir}/partimaged" "${pkgdir}/etc/rc.d/partimaged"
+ install -Dm0755 "${srcdir}/partimaged-gencrt" "${pkgdir}/usr/bin/partimaged-gencrt"
+ chmod 644 "${pkgdir}/etc/partimaged/partimagedusers"
+}
diff --git a/community/partimage/partimage.install b/community/partimage/partimage.install
new file mode 100644
index 000000000..4d403b177
--- /dev/null
+++ b/community/partimage/partimage.install
@@ -0,0 +1,22 @@
+pre_install() {
+ groupadd -g 110 partimag &> /dev/null
+ useradd -u 110 -g partimag -c "Partimage user" -d /dev/null -s /bin/false partimag &> /dev/null
+}
+
+post_install() {
+ chown partimag:partimag /etc/partimaged/partimagedusers
+}
+
+post_upgrade() {
+ if [ "$(getent group partimag | cut -d ':' -f 3)" != '110' ]; then
+ post_remove
+ pre_install
+ echo ">> partimage UID/GID has been changed"
+ echo ">> if you have some directories owned by partimage - please chown them again"
+ fi
+}
+
+post_remove() {
+ userdel partimag > /dev/null
+ groupdel partimag > /dev/null
+}
diff --git a/community/partimage/partimaged b/community/partimage/partimaged
new file mode 100644
index 000000000..da810cbb1
--- /dev/null
+++ b/community/partimage/partimaged
@@ -0,0 +1,64 @@
+#!/bin/bash
+# This file belongs in /etc/rc.d
+#
+###############################################################################
+
+#inserting certain functions (like stat_busy)
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PARTIMAGE=/usr/sbin/
+
+# Check the file is there and is executable.
+[ -x $PARTIMAGE/partimaged ] || exit 0
+
+PID=`pidof -o %PPID /usr/sbin/partimaged`
+
+# See how we were called.
+case "$1" in
+ start)
+ stat_busy "Starting Partimage Daemon "
+ if [ -z "$PID" ]; then
+ /usr/sbin/partimaged -D &>/dev/null
+ RETVAL=$? #storing the status of the last command to RETVAL
+ if [ $? -gt 0 ]; then #if the status was other than 0, the command failed
+ stat_fail
+ exit 1
+ else
+ add_daemon partimaged
+ stat_done
+ fi
+ else
+ stat_fail
+ echo ":: Daemon already started as pid $PID"
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Partimage Daemon "
+ if [ "$PID" != "" ]; then #if PID exists
+ kill -KILL $PID &>/dev/null
+ stat_done
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ RETVAL=$?
+ rm_daemon partimaged
+ fi
+ else
+ stat_fail
+ echo ":: Daemon already stopped"
+ exit 1
+ fi
+ ;;
+ restart|reload)
+ $0 stop
+ $0 start
+ RETVAL=$?
+ ;;
+ *)
+ echo "Usage: partimaged {start|stop|restart|reload}"
+ exit 1
+esac
+exit $RETVAL
diff --git a/community/partimage/partimaged-gencrt b/community/partimage/partimaged-gencrt
new file mode 100644
index 000000000..16fe5ff16
--- /dev/null
+++ b/community/partimage/partimaged-gencrt
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+if [ `whoami` != "root" ]; then
+ echo "You must be root to generate certificates."
+ exit
+fi
+
+echo -n "==> Generating certificate for Partimage/PartimageD SSL... "
+cd /etc/partimaged
+openssl req -new -x509 -outform PEM > partimaged.csr
+openssl rsa -in privkey.pem -out partimaged.key
+rm privkey.pem
+openssl x509 -in partimaged.csr -out partimaged.cert -signkey partimaged.key
+rm partimaged.csr
+chmod 600 partimaged.key
+chmod 600 partimaged.cert
+chown partimag:partimag partimaged.key
+chown partimag:partimag partimaged.cert
diff --git a/community/patchage/PKGBUILD b/community/patchage/PKGBUILD
new file mode 100644
index 000000000..fe2ca8b32
--- /dev/null
+++ b/community/patchage/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 37631 2011-01-15 21:42:41Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Max Pray a.k.a. Synthead <synthead@gmail.com>
+# Contributor: clarence <catchfire at gmail dot com>
+
+pkgname=patchage
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="A modular patch bay for audio and MIDI systems"
+arch=(i686 x86_64)
+url="http://drobilla.net/software/patchage"
+license=('GPL')
+depends=('dbus-glib' 'libglademm' 'hicolor-icon-theme'
+ 'raul' 'flowcanvas' 'jack')
+makedepends=('boost' 'python2')
+install=$pkgname.install
+source=(http://download.drobilla.net/$pkgname-$pkgver.tar.bz2)
+md5sums=('3f1c297c8c6b998563d1a2fbc215cf85')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf configure --prefix=/usr
+ python2 waf build $MAKEFLAGS
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf --destdir="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/patchage/patchage.install b/community/patchage/patchage.install
new file mode 100644
index 000000000..e4f8fd06c
--- /dev/null
+++ b/community/patchage/patchage.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/patchutils/PKGBUILD b/community/patchutils/PKGBUILD
new file mode 100644
index 000000000..3e5ae4270
--- /dev/null
+++ b/community/patchutils/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 39649 2011-02-14 10:25:55Z lcarlier $
+# Contributor: Aurelien Foret <orelien@chez.com>
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=patchutils
+pkgver=0.3.2
+pkgrel=1
+pkgdesc="A small collection of programs that operate on patch files"
+license=('GPL')
+url="http://cyberelk.net/tim/patchutils/"
+depends=('perl')
+arch=('i686' 'x86_64')
+source=(http://cyberelk.net/tim/data/patchutils/stable/$pkgname-$pkgver.tar.bz2)
+md5sums=('74607b4a28c9009c6aeeed0e91098917')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/pawm/PKGBUILD b/community/pawm/PKGBUILD
new file mode 100644
index 000000000..0755f70ee
--- /dev/null
+++ b/community/pawm/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 19617 2010-06-26 08:01:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=pawm
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="Puto Amo Window Manager is a full featured window manager, but without useless bells and whistles"
+arch=('i686' 'x86_64')
+url="http://www.pleyades.net/pawm/"
+license=("GPL")
+depends=(libxft libxpm libxrandr)
+source=(http://www.pleyades.net/pawm/files/pawm-$pkgver.tar.gz)
+md5sums=('cc004865f5b5d8118e68154857b913a2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr
+ make || return 1
+ make install DESTDIR=$pkgdir
+}
diff --git a/community/pbzip2/PKGBUILD b/community/pbzip2/PKGBUILD
new file mode 100644
index 000000000..970938dd2
--- /dev/null
+++ b/community/pbzip2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 43691 2011-03-29 08:17:25Z foutrelis $
+# Contributor: Vasco Costa <vasco dot costa at geekslot dot com>
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=pbzip2
+pkgver=1.1.3
+pkgrel=1
+pkgdesc="Parallel implementation of the bzip2 block-sorting file compressor"
+arch=(i686 x86_64)
+url="http://compression.ca/pbzip2/"
+license=('BSD')
+depends=('bzip2' 'gcc-libs')
+source=(http://compression.ca/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('beb27a8055723f5f84364182d137ed1a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+ make PREFIX="$pkgdir/usr" install
+
+ # Fix location of man pages
+ install -d "$pkgdir/usr/share"
+ mv "$pkgdir/usr/man" "$pkgdir/usr/share"
+
+ # Symlinks for useful shortcuts
+ ln -sf pbzip2 "$pkgdir/usr/bin/pbunzip2"
+ ln -sf pbzip2 "$pkgdir/usr/bin/pbzcat"
+
+ # License
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/pcb/Changelog b/community/pcb/Changelog
new file mode 100644
index 000000000..c1580a1b9
--- /dev/null
+++ b/community/pcb/Changelog
@@ -0,0 +1,22 @@
+2010-09-30 Jared Casper <jaredcasper@gmail.com>
+ * 20100929-1
+ - Version bump
+ - split build and package
+ - Remove || return 1
+ - Add -j1 to make install
+ - Use changelog variable
+
+2009-11-04 Jared Casper <jaredcasper@gmail.com>
+ * 20091103-1
+ - Version bump
+ - Added --enable-dbus to configure
+
+2008-11-28 Jared Casper <jaredcasper@gmail.com>
+ * 20081128-1
+ - Version bump
+ - added ChangeLog
+ - Fixed download URL
+ - Fixed build when tk is not installed
+ - Fixed info file handling handling
+
+
diff --git a/community/pcb/PKGBUILD b/community/pcb/PKGBUILD
new file mode 100644
index 000000000..e7a7fcf0c
--- /dev/null
+++ b/community/pcb/PKGBUILD
@@ -0,0 +1,36 @@
+# Contributor: Jared Casper <jaredcasper@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=pcb
+pkgver=20100929
+pkgrel=2
+pkgdesc="An interactive printed circuit board editor for the X11 window system."
+url="http://pcb.gpleda.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('tcl' 'gtk2' 'gd' 'perlxml' 'hicolor-icon-theme' 'shared-mime-info')
+optdepends=('tk: for the graphical QFP footprint builder')
+install=$pkgname.install
+changelog=Changelog
+source=(http://downloads.sourceforge.net/pcb/$pkgname-$pkgver.tar.gz)
+md5sums=('4c71f5d1c40ad65539957748b88eb863')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/
+ if [ ! -x /usr/bin/wish ]; then
+ config="env WISH=/usr/bin/true ./configure --enable-dbus"
+ else
+ config="./configure --enable-dbus"
+ fi
+ $config --prefix=/usr \
+ --disable-update-mime-database \
+ --disable-update-desktop-database
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/
+ make -j1 prefix=$pkgdir/usr install
+ rm $pkgdir/usr/share/info/dir
+}
+
diff --git a/community/pcb/pcb.install b/community/pcb/pcb.install
new file mode 100644
index 000000000..62ce80440
--- /dev/null
+++ b/community/pcb/pcb.install
@@ -0,0 +1,37 @@
+infodir=/usr/share/info
+filelist=(pcb.info pcb.info-1 pcb.info-2)
+
+post_install() {
+ if [ -x /usr/bin/update-mime-database ]; then
+ echo Updating mime database...
+ /usr/bin/update-mime-database /usr/share/mime
+ fi
+ if [ -x /usr/bin/update-desktop-database ]; then
+ echo Updating desktop database..
+ /usr/bin/update-desktop-database /usr/share/applications
+ fi
+ if [ -x /usr/bin/install-info ]; then
+ echo Updating info directory...
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+ fi
+ /usr/bin/gtk-update-icon-cache -f -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if [ -x /usr/bin/install-info ]; then
+ echo Updating info directory...
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+ fi
+}
+
+post_remove() {
+ /usr/bin/gtk-update-icon-cache -f -t /usr/share/icons/hicolor
+}
diff --git a/community/pcsc-perl/PKGBUILD b/community/pcsc-perl/PKGBUILD
new file mode 100644
index 000000000..0c471f585
--- /dev/null
+++ b/community/pcsc-perl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 42913 2011-03-22 16:19:32Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: neuromante <lorenzo.nizzi.grifi@gmail.com>
+# Contributor: marc0s <marc0s@fsfe.org>
+
+pkgname=pcsc-perl
+pkgver=1.4.12
+pkgrel=1
+pkgdesc="A Perl Module for PC/SC SmartCard access"
+arch=('i686' 'x86_64')
+url="http://ludovic.rousseau.free.fr/softwares/pcsc-perl/"
+license=('GPL' 'PerlArtistic')
+depends=('pcsclite' 'perl')
+makedepends=('pkgconfig')
+options=('!emptydirs')
+source=("http://ludovic.rousseau.free.fr/softwares/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('f34c5ab748815bf0b2e571362b4f8121')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/pcsc-tools/PKGBUILD b/community/pcsc-tools/PKGBUILD
new file mode 100644
index 000000000..45bd7c450
--- /dev/null
+++ b/community/pcsc-tools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 37124 2011-01-11 10:36:50Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Lorenzo Nizzi Grifi Gargiolli <lorenzo.nizzi.grifi@gmail.com>
+# Contributor: marc0s <marc0s@fsfe.org>
+
+pkgname=pcsc-tools
+pkgver=1.4.17
+pkgrel=2
+pkgdesc="PC/SC Architecture smartcard tools"
+arch=('i686' 'x86_64')
+url="http://ludovic.rousseau.free.fr/softwares/pcsc-tools/"
+license=('GPL')
+depends=('pcsclite' 'perl')
+optdepends=('gtk2-perl: required by gscriptor'
+ 'glib-perl: required by gscriptor'
+ 'pcsc-perl: required by gscriptor and scriptor')
+makedepends=('pkgconfig')
+source=(http://ludovic.rousseau.free.fr/softwares/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2767238e1e737f94d13a91bdab1174ca')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's:-Wall -O2:${CFLAGS}:g' Makefile
+
+ make || return 1
+ make DESTDIR="${pkgdir}/usr" install || return 1
+}
diff --git a/community/pcsclite/PKGBUILD b/community/pcsclite/PKGBUILD
new file mode 100644
index 000000000..687577c45
--- /dev/null
+++ b/community/pcsclite/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 43871 2011-03-30 17:08:58Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Daniel Plaza <daniel.plaza.espi@gmail.com>
+
+pkgname=pcsclite
+pkgver=1.7.1
+pkgrel=1
+pkgdesc="PC/SC Architecture smartcard middleware library"
+arch=('i686' 'x86_64')
+url="https://alioth.debian.org/projects/pcsclite/"
+license=('BSD')
+depends=('libusb')
+makedepends=('pkgconfig')
+options=('!libtool' '!docs')
+source=(https://alioth.debian.org/frs/download.php/3531/pcsc-lite-${pkgver}.tar.bz2
+ pcscd)
+md5sums=('dcd60aa6bf22c9b16dfc75e5afca5540'
+ '80d90388e4d2a551cb7aefe3bd5147bd')
+
+build() {
+ cd "${srcdir}/pcsc-lite-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --disable-libudev \
+ --enable-libusb \
+ --sysconfdir=/etc \
+ --enable-usbdropdir=/usr/lib/pcsc/drivers
+
+ make
+}
+
+package() {
+ cd "${srcdir}/pcsc-lite-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+
+ install -D ${srcdir}/pcsc-lite-${pkgver}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ install -D -m755 ${srcdir}/pcscd ${pkgdir}/etc/rc.d/pcscd
+ install -d ${pkgdir}/usr/lib/pcsc/drivers
+}
diff --git a/community/pcsclite/pcscd b/community/pcsclite/pcscd
new file mode 100644
index 000000000..93f869fd2
--- /dev/null
+++ b/community/pcsclite/pcscd
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON=/usr/sbin/pcscd
+NAME=pcscd
+DESC="PC/SC smart card daemon"
+PID_FILE=/var/run/pcscd/pcscd.pid
+PCSCD_OPTIONS=
+
+case "$1" in
+ start)
+ stat_busy "Starting $DESC"
+ $DAEMON $PCSCD_OPTIONS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $NAME
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $DESC"
+ [ -f $PID_FILE ] && kill `cat $PID_FILE` &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $NAME
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $NAME status";
+ ck_status $NAME
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+ ;;
+
+esac
+
+exit 0
+
diff --git a/community/pdf2djvu/PKGBUILD b/community/pdf2djvu/PKGBUILD
new file mode 100644
index 000000000..2fdfe1e1b
--- /dev/null
+++ b/community/pdf2djvu/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 42182 2011-03-15 10:52:31Z jelle $
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pdf2djvu
+pkgver=0.7.6
+pkgrel=4
+pkgdesc="Creates DjVu files from PDF files"
+arch=('i686' 'x86_64')
+url="http://pdf2djvu.googlecode.com"
+license=('GPL')
+depends=('poppler' 'djvulibre' 'libxslt')
+makedepends=('pstreams')
+source=("http://pdf2djvu.googlecode.com/files/${pkgname}_${pkgver}.tar.gz")
+md5sums=('fde5e9bdae4f8643a3457be5989acc83')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+ install -Dm644 doc/${pkgname}.1 ${pkgdir}/usr/share/man/man1/${pkgname}.1
+}
+md5sums=('b6ff549a4fdd0c13897ef3cc37ee3996')
diff --git a/community/pdf2svg/PKGBUILD b/community/pdf2svg/PKGBUILD
new file mode 100644
index 000000000..9e149aa3c
--- /dev/null
+++ b/community/pdf2svg/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: corvolino <corvolino@archlinux.com.br>
+# Contributor: Joel Schaerer
+
+pkgname=pdf2svg
+pkgver=0.2.1
+pkgrel=5
+pkgdesc="A pdf to svg convertor"
+arch=('i686' 'x86_64')
+url="http://www.cityinthesky.co.uk/pdf2svg.html"
+license=('GPL')
+depends=('poppler-glib')
+source=("http://www.cityinthesky.co.uk/files/$pkgname-$pkgver.tar.gz")
+md5sums=('59b3b9768166f73b77215e95d91f0a9d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+
diff --git a/community/pdfedit/PKGBUILD b/community/pdfedit/PKGBUILD
new file mode 100644
index 000000000..84b9416c7
--- /dev/null
+++ b/community/pdfedit/PKGBUILD
@@ -0,0 +1,37 @@
+# Contributor: Firmicus <firmicus α gmx δ net>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pdfedit
+pkgver=0.4.5
+pkgrel=1
+pkgdesc='Full featured editor for manipulating PDF documents'
+arch=('i686' 'x86_64')
+url='http://pdfedit.petricek.net/index_e.html'
+license=('GPL')
+depends=('qt3' 't1lib' 'gsfonts')
+makedepends=('boost' 'doxygen')
+source=(http://downloads.sourceforge.net/pdfedit/${pkgname}-${pkgver}.tar.bz2
+ 'pdfedit.png' 'pdfedit.desktop')
+md5sums=('80502ee7f08cdfb867ffdaa92d160a23'
+ '70fd938b2ef9da748a093df7e20d1d7d'
+ 'c0572c2dd54065322321718aa49ed6b8')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ export PATH=$QTDIR/bin:$PATH
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' src/xpdf/xpdf/GlobalParams.cc || return 1
+ ./configure --prefix=/usr --with-qmake=/opt/qt/bin/qmake
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} install
+
+ install -D -m644 ../pdfedit.desktop ${pkgdir}/usr/share/applications/pdfedit.desktop
+ install -D -m644 ../pdfedit.png ${pkgdir}/usr/share/pixmaps/pdfedit.png
+}
diff --git a/community/pdfedit/pdfedit.desktop b/community/pdfedit/pdfedit.desktop
new file mode 100644
index 000000000..35b8defc0
--- /dev/null
+++ b/community/pdfedit/pdfedit.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+Name=PDF Editor
+GenericName=PDF Editor
+Exec=pdfedit
+Categories=Utility;TextEditor;
+Icon=pdfedit
+Terminal=false
diff --git a/community/pdfedit/pdfedit.png b/community/pdfedit/pdfedit.png
new file mode 100644
index 000000000..3bfc3f2e9
--- /dev/null
+++ b/community/pdfedit/pdfedit.png
Binary files differ
diff --git a/community/pdftrans/PKGBUILD b/community/pdftrans/PKGBUILD
new file mode 100644
index 000000000..59a1970a2
--- /dev/null
+++ b/community/pdftrans/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=pdftrans
+pkgver=1.2
+pkgrel=7
+arch=('i686' 'x86_64')
+pkgdesc="A utility to add metadata, protect, and encrypt PDF documents"
+url="http://maddingue.free.fr/softwares/pdftrans.html.en"
+license=('GPL')
+depends=('java-runtime' 'itext' 'bcprov')
+source=(http://maddingue.free.fr/softwares/download/PDFTrans/$pkgname-$pkgver.zip \
+ $pkgname.sh)
+md5sums=('1d3677f7101ba5e27492b02843017d26' '1be06ba6669dfd895aadbd308f37715a')
+
+build() {
+ install -D $pkgname.sh $pkgdir/usr/bin/$pkgname
+
+ cd $pkgname
+
+ # fix http://bugs.archlinux.org/task/19295 FS#19295 - [pdftrans] needs updating to follow itext java class renaming
+ sed 's/lowagie/itextpdf/' -i src/PDFTrans.java
+ javac -classpath /usr/share/java/itext/itext.jar -d classes src/PDFTrans.java
+
+ install -D -m644 classes/PDFTrans.class $pkgdir/usr/share/java/$pkgname/PDFTrans.class
+ install -D -m644 doc/pdftrans.1 $pkgdir/usr/share/man/man1/pdftrans.1
+}
diff --git a/community/pdftrans/pdftrans.sh b/community/pdftrans/pdftrans.sh
new file mode 100755
index 000000000..bf6c88161
--- /dev/null
+++ b/community/pdftrans/pdftrans.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+PROG_NAME=pdftrans
+PROG_MAIN=PDFTrans
+
+CP=/usr/share/java/$PROG_NAME
+
+for jar in /usr/share/java/$PROG_NAME/*.jar; do
+ CP=$CP:$jar
+done
+
+CP=$CP:/usr/share/java/itext/itext.jar
+CP=$CP:/usr/share/java/bcprov.jar
+
+java -cp $CP $PROG_MAIN "$@"
diff --git a/community/pdmenu/ChangeLog b/community/pdmenu/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/pdmenu/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/pdmenu/PKGBUILD b/community/pdmenu/PKGBUILD
new file mode 100644
index 000000000..e483ac912
--- /dev/null
+++ b/community/pdmenu/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 43384 2011-03-25 14:16:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=pdmenu
+pkgver=1.2.99
+pkgrel=1
+pkgdesc="simple full screen menu program"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/unstable/source/pdmenu"
+license=('GPL')
+depends=('gpm' 'slang')
+optdepends=('perl')
+source=(http://ftp.debian.org/debian/pool/main/p/pdmenu/pdmenu_$pkgver.tar.gz)
+md5sums=('656d9fbfedef7018521ba0299ba7f4a4')
+
+build() {
+ cd $srcdir/pdmenu
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make INSTALL_PREFIX=$pkgdir install
+}
diff --git a/community/pdmenu/utf8.patch b/community/pdmenu/utf8.patch
new file mode 100644
index 000000000..de5508b54
--- /dev/null
+++ b/community/pdmenu/utf8.patch
@@ -0,0 +1,26 @@
+diff -wbBur pdmenu.org/src/inputbox.c pdmenu/src/inputbox.c
+--- pdmenu.org/src/inputbox.c 2006-01-25 07:58:35.000000000 +0300
++++ pdmenu/src/inputbox.c 2007-06-25 18:59:12.000000000 +0400
+@@ -110,7 +112,7 @@
+ ret->ignore=1;
+ return ret;
+ default:
+- if ((key>=32) && (key<127) && (curspos<SLtt_Screen_Cols -6)) {
++ if ((key>=32) && (curspos<SLtt_Screen_Cols-6)) {
+ ret->value[curspos++]=key;
+ ret->value[curspos]='\0';
+ }
+diff -wbBur pdmenu.org/src/pdmenu.c pdmenu/src/pdmenu.c
+--- pdmenu.org/src/pdmenu.c 2006-01-25 07:58:35.000000000 +0300
++++ pdmenu/src/pdmenu.c 2007-06-25 18:16:46.000000000 +0400
+@@ -187,7 +187,9 @@
+ Menu_Type *m;
+ int ret;
+
+- setlocale(LC_ALL, "");
++// setlocale(LC_ALL, "");
++ SLutf8_enable(1);
++
+ bindtextdomain(PACKAGE,LOCALEDIR);
+ textdomain(PACKAGE);
+
diff --git a/community/pdnsd/PKGBUILD b/community/pdnsd/PKGBUILD
new file mode 100644
index 000000000..f73b30940
--- /dev/null
+++ b/community/pdnsd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 12265 2010-02-28 22:24:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Henrik Nymann Jensen <h@henriknj.dk>
+
+pkgname=pdnsd
+pkgver=1.2.8
+pkgrel=1
+pkgdesc="Is a proxy DNS server with permanent caching"
+arch=(i686 x86_64)
+url="http://www.phys.uu.nl/~rombouts/pdnsd/"
+license=('GPL')
+depends=('glibc')
+backup=('etc/pdnsd.conf')
+source=(http://www.phys.uu.nl/~rombouts/pdnsd/releases/$pkgname-$pkgver-par.tar.gz pdnsd)
+md5sums=('779c5d19576e561fbf2455de435e5597'
+ '3670bd47c9303fbb655d9216715512de')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ mkdir -p $pkgdir/etc/rc.d && \
+ cp $srcdir/pdnsd $pkgdir/etc/rc.d/ && \
+ mkdir -p $pkgdir/usr/share/ && \
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/pdnsd/pdnsd b/community/pdnsd/pdnsd
new file mode 100755
index 000000000..34a541d18
--- /dev/null
+++ b/community/pdnsd/pdnsd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/pdnsd`
+case "$1" in
+ start)
+ stat_busy "Starting pdnsd Daemon"
+ if [ -z "$PID" ]; then
+ /usr/sbin/pdnsd -d
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pdnsd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping pdnsd Daemon"
+ [ ! -z "$PID" ] && kill -TERM $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pdnsd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/performous/PKGBUILD b/community/performous/PKGBUILD
new file mode 100644
index 000000000..3f839322c
--- /dev/null
+++ b/community/performous/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 40964 2011-03-02 22:24:28Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=performous
+pkgver=0.6.1
+pkgrel=4
+pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"'
+arch=('i686' 'x86_64')
+url="http://$pkgname.org/"
+license=('GPL')
+depends=('boost-libs>=1.46' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew' 'libxml++' 'portaudio' 'portmidi' \
+ 'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo')
+makedepends=('cmake' 'pkgconfig' 'help2man' 'boost>=1.46')
+optdepends=('performous-freesongs: free songs for performous')
+source=(http://sourceforge.net/projects/$pkgname/files/$pkgname/$pkgver/Performous-$pkgver-Source.tar.bz2)
+md5sums=('451a759de77984b5a699e91107fe52e2')
+
+build() {
+ cd ${srcdir}/Performous-${pkgver}-Source
+
+ mkdir -p build
+ cd build
+
+ # fix config loading with libxml++
+ export LDFLAGS=${LDFLAGS/-Wl,--as-needed/}
+ # fix to built against boost 1.46
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+
+ 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/perl-berkeleydb/PKGBUILD b/community/perl-berkeleydb/PKGBUILD
new file mode 100644
index 000000000..80f4f36f4
--- /dev/null
+++ b/community/perl-berkeleydb/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 39597 2011-02-12 08:57:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+# Contributor: Francois Charette <firmicus@gmx.net>
+
+pkgname=perl-berkeleydb
+pkgver=0.43
+pkgrel=4
+pkgdesc="Interface to Berkeley DB version 2, 3 or 4"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/BerkeleyDB/"
+license=('GPL' 'PerlArtistic')
+depends=('perl' 'db')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/P/PM/PMQS/BerkeleyDB-$pkgver.tar.gz)
+md5sums=('3d0cf0651ed8cd3fc36e328d5924a1e9')
+
+build() {
+_dbver=`pacman -Q db | cut -d\ -f2 | cut -d- -f1`
+depends=('perl' "db=$_dbver")
+
+ cd $srcdir/BerkeleyDB-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-class-data-inheritable/PKGBUILD b/community/perl-class-data-inheritable/PKGBUILD
new file mode 100644
index 000000000..cf54b9df0
--- /dev/null
+++ b/community/perl-class-data-inheritable/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-class-data-inheritable
+pkgver=0.08
+pkgrel=3
+pkgdesc="Inheritable, overridable class data "
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Class-Data-Inheritable"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/T/TM/TMTM/Class-Data-Inheritable-$pkgver.tar.gz)
+md5sums=('fc0fe65926eb8fb932743559feb54eb9')
+
+build() {
+ cd Class-Data-Inheritable-${pkgver}
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=${pkgdir}
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-class-factory-util/PKGBUILD b/community/perl-class-factory-util/PKGBUILD
new file mode 100644
index 000000000..3fe555c39
--- /dev/null
+++ b/community/perl-class-factory-util/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id:$
+
+pkgname=perl-class-factory-util
+_realname=Class-Factory-Util
+pkgver=1.7
+pkgrel=2
+pkgdesc="Provide utility methods for factory classes"
+arch=(i686 x86_64)
+license=('GPL' 'Artistic')
+url="http://search.cpan.org/~drolsky/Class-Factory-Util"
+options=(!emptydirs)
+depends=('perl')
+provides=('class-factory-util=1.7' 'Class::Factory::Util=1.7' 'perl-class-factory-util=1.7')
+source=(http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/Class-Factory-Util-1.7.tar.gz)
+md5sums=('aebd79da361b676a7ecd3245fc3d1b3f')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/community/perl-class-methodmaker/PKGBUILD b/community/perl-class-methodmaker/PKGBUILD
new file mode 100644
index 000000000..2a7ba1d1e
--- /dev/null
+++ b/community/perl-class-methodmaker/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35577 2010-12-21 22:43:37Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-class-methodmaker
+pkgver=2.15
+pkgrel=3
+pkgdesc="Create generic class methods"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Class-MethodMaker"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-$pkgver.tar.gz)
+md5sums=('7af92ddaee49815ade7c5886b74d5e64')
+
+build() {
+ cd $srcdir/Class-MethodMaker-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-clone/PKGBUILD b/community/perl-clone/PKGBUILD
new file mode 100644
index 000000000..04dd4f03c
--- /dev/null
+++ b/community/perl-clone/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+# Contributor: Alex Dioso <adioso->gmail*com>
+
+pkgname=perl-clone
+pkgver=0.31
+pkgrel=2
+pkgdesc='Recursive copy of nested objects.'
+arch=('i686' 'x86_64')
+url='http://search.cpan.org/~RDF/Clone'
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/R/RD/RDF/Clone-${pkgver}.tar.gz")
+md5sums=('65f34e7280d7b7dfb72ab6224e5767f5')
+
+build() {
+ cd Clone-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Clone-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-crypt-blowfish/PKGBUILD b/community/perl-crypt-blowfish/PKGBUILD
new file mode 100644
index 000000000..67622c598
--- /dev/null
+++ b/community/perl-crypt-blowfish/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35583 2010-12-21 22:46:05Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-crypt-blowfish
+pkgver=2.12
+pkgrel=2
+pkgdesc="Perl/CPAN Module Crypt::Blowfish : XSbased implementation of Blowfish"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Crypt-Blowfish"
+license=("GPL" "PerlArtistic")
+source=("http://search.cpan.org/CPAN/authors/id/D/DP/DPARIS/Crypt-Blowfish-$pkgver.tar.gz")
+md5sums=('a0eca17addc8bdaf38c044c365a8800c')
+
+build() {
+ cd $srcdir/Crypt-Blowfish-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-crypt-des/PKGBUILD b/community/perl-crypt-des/PKGBUILD
new file mode 100644
index 000000000..31c65b5f7
--- /dev/null
+++ b/community/perl-crypt-des/PKGBUILD
@@ -0,0 +1,19 @@
+#Contributor: Pete Morris <pete dot morris at gmail dot com>
+pkgname=perl-crypt-des
+pkgver=2.05
+pkgrel=2
+pkgdesc="Perl DES encryption module"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~dparis/Crypt-DES"
+license=("GPL" "PerlArtistic")
+depends=('glibc')
+source=("http://www.cpan.org/authors/id/D/DP/DPARIS/Crypt-DES-$pkgver.tar.gz")
+md5sums=('a8a0bea7064e11d2af434f3e468c17bb')
+build() {
+ cd Crypt-DES-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=${pkgdir}
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-crypt-openssl-bignum/PKGBUILD b/community/perl-crypt-openssl-bignum/PKGBUILD
new file mode 100644
index 000000000..527b39622
--- /dev/null
+++ b/community/perl-crypt-openssl-bignum/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35589 2010-12-21 22:48:24Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-crypt-openssl-bignum
+pkgver=0.04
+pkgrel=4
+pkgdesc="OpenSSL's multiprecision integer arithmetic "
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Crypt-OpenSSL-Bignum"
+depends=('perl' 'openssl')
+license=('GPL')
+option=('!emptydirs')
+source=(http://www.cpan.org/authors/id/I/IR/IROBERTS/Crypt-OpenSSL-Bignum-$pkgver.tar.gz)
+md5sums=('9369ef722b0705c0604998559988eb18')
+
+build() {
+ cd $startdir/src/Crypt-OpenSSL-Bignum-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-crypt-openssl-random/PKGBUILD b/community/perl-crypt-openssl-random/PKGBUILD
new file mode 100644
index 000000000..112f52e1e
--- /dev/null
+++ b/community/perl-crypt-openssl-random/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35592 2010-12-21 22:49:23Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-crypt-openssl-random
+pkgver=0.04
+pkgrel=4
+pkgdesc="Interface to OpenSSL PRNG methods"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Crypt-OpenSSL-Random"
+depends=('perl' 'openssl')
+license=('GPL')
+option=('!emptydirs')
+source=(http://www.cpan.org/authors/id/I/IR/IROBERTS/Crypt-OpenSSL-Random-$pkgver.tar.gz)
+md5sums=('c56ac5dbdd46122eb9b8da59613b7b0a')
+
+build() {
+ cd $startdir/src/Crypt-OpenSSL-Random-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-crypt-openssl-rsa/PKGBUILD b/community/perl-crypt-openssl-rsa/PKGBUILD
new file mode 100644
index 000000000..21ac6ce4a
--- /dev/null
+++ b/community/perl-crypt-openssl-rsa/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35595 2010-12-21 22:50:52Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-crypt-openssl-rsa
+pkgver=0.26
+pkgrel=3
+pkgdesc="Interface to OpenSSL RSA methods"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Crypt-OpenSSL-RSA"
+depends=('perl-crypt-openssl-random' 'perl-crypt-openssl-bignum')
+license=('GPL')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/I/IR/IROBERTS/Crypt-OpenSSL-RSA-$pkgver.tar.gz)
+md5sums=('baf875f01ee39b88335b8f0962fe4bbc')
+
+build() {
+ cd $startdir/src/Crypt-OpenSSL-RSA-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
+
diff --git a/community/perl-curses/PKGBUILD b/community/perl-curses/PKGBUILD
new file mode 100644
index 000000000..4d65930dc
--- /dev/null
+++ b/community/perl-curses/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 35598 2010-12-21 22:52:51Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+# Contributor: Francois Charette <firmicus@gmx.net>
+
+pkgname=perl-curses
+pkgver=1.28
+pkgrel=2
+pkgdesc="Character screen handling and windowing"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Curses"
+license=('GPL' 'PerlArtistic')
+depends=('perl' 'ncurses')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/G/GI/GIRAFFED/Curses-$pkgver.tgz)
+md5sums=('ed9f7ddf2d90f4266da91c3dc9fad9c9')
+
+build() {
+ cd $srcdir/Curses-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-data-structure-util/PKGBUILD b/community/perl-data-structure-util/PKGBUILD
new file mode 100644
index 000000000..ffffa0058
--- /dev/null
+++ b/community/perl-data-structure-util/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35601 2010-12-21 22:53:40Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-data-structure-util
+pkgver=0.15
+pkgrel=3
+pkgdesc="Perl/CPAN Module Data::Structure::Util"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Data-Structure-Util"
+license=("GPL" "PerlArtistic")
+source=("http://search.cpan.org/CPAN/authors/id/A/AN/ANDYA/Data-Structure-Util-$pkgver.tar.gz")
+md5sums=('e12ba777c0abfbd79a131de28d542359')
+
+build() {
+ cd $srcdir/Data-Structure-Util-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-datetime-format-builder/PKGBUILD b/community/perl-datetime-format-builder/PKGBUILD
new file mode 100644
index 000000000..af6e67f4d
--- /dev/null
+++ b/community/perl-datetime-format-builder/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Contributor: Caleb Cushing <xenoterracide@gmail.com>
+
+pkgname=perl-datetime-format-builder
+pkgver=0.8000
+pkgrel=4
+pkgdesc="Create DateTime parser classes and objects"
+arch=('i686' 'x86_64')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+provides=('perl-datetime-format-builder=0.80')
+depends=('perl' 'perl-class-factory-util>=1.6' 'perl-datetime>=0.12' 'perl-datetime-format-strptime>=1.04' 'perl-params-validate>=0.72')
+url='http://search.cpan.org/dist/DateTime-Format-Builder'
+source=('http://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.80.tar.gz')
+md5sums=('f6c5d5a17b5b7478ff555a2d3cce5136')
+
+build() {
+ export PERL_MM_USE_DEFAULT=1
+
+ cd "${srcdir}/DateTime-Format-Builder-0.80"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd "${srcdir}/DateTime-Format-Builder-0.80"
+ make DESTDIR="$pkgdir" install
+
+ find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
diff --git a/community/perl-datetime-format-iso8601/PKGBUILD b/community/perl-datetime-format-iso8601/PKGBUILD
new file mode 100644
index 000000000..6d5c9b6bc
--- /dev/null
+++ b/community/perl-datetime-format-iso8601/PKGBUILD
@@ -0,0 +1,31 @@
+# Contributor: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=perl-datetime-format-iso8601
+pkgver=0.07
+pkgrel=2
+pkgdesc="Parses ISO8601 formats."
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/DateTime-Format-ISO8601/"
+license=('PerlArtistic')
+depends=('perl-datetime-format-builder>=0.770.0' 'perl-datetime>=0.180.0')
+makedepends=('perl-module-build>=0.350.0')
+optdepends=('perl-file-find-rule'
+ 'perl-test-distribution'
+ 'perl-test-pod')
+options=(!emptydirs)
+source=("http://search.cpan.org/CPAN/authors/id/J/JH/JHOBLITT/DateTime-Format-ISO8601-$pkgver.tar.gz")
+md5sums=('debb51180d0318ae09cad01c544a1d7d')
+
+build() {
+ cd $srcdir/DateTime-Format-ISO8601-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/DateTime-Format-ISO8601-$pkgver
+ make install DESTDIR="${pkgdir}"
+
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/community/perl-datetime-format-mail/PKGBUILD b/community/perl-datetime-format-mail/PKGBUILD
new file mode 100644
index 000000000..3d798666c
--- /dev/null
+++ b/community/perl-datetime-format-mail/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-datetime-format-mail
+pkgver=0.3001
+pkgrel=5
+pkgdesc="Convert between DateTime and RFC2822/822 formats "
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/DateTime-Format-Mail"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0' 'perl-datetime' 'perl-params-validate>=0.67')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Mail-$pkgver.tar.gz)
+md5sums=('15e36249e866463bd0237262a8e43b16')
+
+build() {
+ cd $startdir/src/DateTime-Format-Mail-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-datetime/PKGBUILD b/community/perl-datetime/PKGBUILD
new file mode 100644
index 000000000..439c11cb6
--- /dev/null
+++ b/community/perl-datetime/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 35604 2010-12-21 22:55:11Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-datetime
+pkgver=0.66
+pkgrel=2
+pkgdesc="A complete, easy to use date and time object"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/DateTime"
+license=('GPL' 'PerlArtistic')
+depends=('perl-datetime-timezone>=0.59' 'perl-datetime-locale>=0.41' 'perl-params-validate>=0.76')
+LC_NUMERIC=C
+provides=("perl-datetime=`printf %.4f $pkgver`")
+options=('!emptydirs' 'force')
+source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-$pkgver.tar.gz)
+md5sums=('9399b5b430da65ac0b9056c0182a805b')
+
+build() {
+ cd $srcdir/DateTime-$pkgver
+
+ perl Build.PL installdirs=vendor destdir="$pkgdir/"
+ ./Build
+# ./Build test
+ ./Build install
+
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-dbd-odbc/PKGBUILD b/community/perl-dbd-odbc/PKGBUILD
new file mode 100644
index 000000000..49a980cac
--- /dev/null
+++ b/community/perl-dbd-odbc/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 35616 2010-12-21 22:59:14Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-dbd-odbc
+pkgver=1.24
+pkgrel=2
+pkgdesc="ODBC Driver for DBI"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/DBD-ODBC/"
+license=('GPL' 'PerlArtistic')
+depends=('perl-dbi>=1.52' 'perl>=5.10.0' 'unixodbc')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-$pkgver.tar.gz)
+md5sums=('2abf660489f4649725f47bd0e7507137')
+
+build() {
+ cd $srcdir/DBD-ODBC-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-dbd-pg/PKGBUILD b/community/perl-dbd-pg/PKGBUILD
new file mode 100644
index 000000000..2573b9128
--- /dev/null
+++ b/community/perl-dbd-pg/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35619 2010-12-21 23:00:16Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-dbd-pg
+pkgver=2.17.2
+pkgrel=2
+pkgdesc="Postgres Driver for DBI"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/DBD-Pg"
+license=('GPL' 'PerlArtistic')
+depends=('perl-dbi>=1.52' 'postgresql-libs')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-$pkgver.tar.gz)
+md5sums=('2cd63605a9420a63c780f627420a359a')
+
+build() {
+ cd $srcdir/DBD-Pg-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-dbd-sqlite2/PKGBUILD b/community/perl-dbd-sqlite2/PKGBUILD
new file mode 100644
index 000000000..4128c77d2
--- /dev/null
+++ b/community/perl-dbd-sqlite2/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35622 2010-12-21 23:01:28Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-dbd-sqlite2
+pkgver=0.33
+pkgrel=6
+pkgdesc="Perl/CPAN Module DBD::SQLite2"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/DBD-SQLite2"
+license=("GPL" "PerlArtistic")
+makedepends=("perl-dbi")
+depends=("perl-dbi")
+source=("http://www.cpan.org/authors/id/M/MS/MSERGEANT/DBD-SQLite2-$pkgver.tar.gz")
+md5sums=('babd83fd5eb9ba7560ad4bab4c76c0eb')
+
+build() {
+ cd $srcdir/DBD-SQLite2-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-dbd-sybase/PKGBUILD b/community/perl-dbd-sybase/PKGBUILD
new file mode 100644
index 000000000..67f8188f6
--- /dev/null
+++ b/community/perl-dbd-sybase/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35625 2010-12-21 23:02:34Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-dbd-sybase
+pkgver=1.10
+pkgrel=2
+pkgdesc="Sybase Driver for DBI"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/DBD-Sybase/"
+license=('GPL' 'PerlArtistic')
+depends=('perl-dbi>=1.52' 'perl>=5.10.0' 'freetds')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/M/ME/MEWP/DBD-Sybase-$pkgver.tar.gz)
+md5sums=('86668c8f626f5aa33620b2746c4dbcf1')
+
+build() {
+ cd $srcdir/DBD-Sybase-$pkgver
+ export SYBASE=/usr
+ echo -e "\n\n\n\n\n\n" | PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-device-serialport/PKGBUILD b/community/perl-device-serialport/PKGBUILD
new file mode 100644
index 000000000..a14834aa1
--- /dev/null
+++ b/community/perl-device-serialport/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 42422 2011-03-16 15:50:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Ross melin <rdmelin@gmail.com>
+
+pkgname=perl-device-serialport
+pkgver=1.04
+pkgrel=2
+pkgdesc="POSIX clone of Win32::SerialPort"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Device-SerialPort"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/C/CO/COOK/Device-SerialPort-$pkgver.tar.gz)
+md5sums=('82c698151f934eb28c65d1838cee7d9e')
+
+build() {
+ cd $srcdir/Device-SerialPort-$pkgver
+ eval `perl -V:archname`
+ PERL_MM_USE_DEFAULT=1 /usr/bin/perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make DESTDIR=$pkgdir install
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-digest-md5/PKGBUILD b/community/perl-digest-md5/PKGBUILD
new file mode 100644
index 000000000..e813d9ea1
--- /dev/null
+++ b/community/perl-digest-md5/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 35628 2010-12-21 23:03:54Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Ashok `ScriptDevil` Gautham <ScriptDevil@gmail.com>
+
+pkgname=perl-digest-md5
+pkgver=2.40
+pkgrel=2
+pkgdesc="Digest::MD5::Perl - Perl implementation of Ron Rivests MD5 Algorithm"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Digest-MD5"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-MD5-$pkgver.tar.gz)
+md5sums=('97051183c4ff7012bdeaf55881164f4b')
+
+build() {
+ cd "$srcdir/Digest-MD5-$pkgver"
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR="$pkgdir/"
+
+ # remove perllocal.pod and .packlist
+ find "$pkgdir" -name perllocal.pod -delete
+ find "$pkgdir" -name .packlist -delete
+}
diff --git a/community/perl-file-path-expand/PKGBUILD b/community/perl-file-path-expand/PKGBUILD
new file mode 100644
index 000000000..35f7a657b
--- /dev/null
+++ b/community/perl-file-path-expand/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35631 2010-12-21 23:05:38Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-file-path-expand
+pkgver=1.02
+pkgrel=5
+pkgdesc="Perl/CPAN Module File::Path::Expand"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/File-Path-Expand"
+license=("GPL" "PerlArtistic")
+source=("http://www.cpan.org/authors/id/R/RC/RCLAMP/File-Path-Expand-1.02.tar.gz")
+md5sums=('742aa40a4ffb26d14de01192764bd7ab')
+
+build() {
+ cd $srcdir/File-Path-Expand-1.02
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-file-slurp/PKGBUILD b/community/perl-file-slurp/PKGBUILD
new file mode 100644
index 000000000..b512315c7
--- /dev/null
+++ b/community/perl-file-slurp/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-file-slurp
+pkgver=9999.13
+pkgrel=3
+pkgdesc="Read/write/append files quickly"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/File-Slurp"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/File-Slurp-$pkgver.tar.gz)
+md5sums=('ac3cd9d466b99d1534762ff3549aaa66')
+
+build() {
+ cd $startdir/src/File-Slurp-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-fuse/PKGBUILD b/community/perl-fuse/PKGBUILD
new file mode 100644
index 000000000..9e385b0c5
--- /dev/null
+++ b/community/perl-fuse/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35637 2010-12-21 23:07:07Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=perl-fuse
+pkgver=0.09
+pkgrel=4
+pkgdesc="write filesystems in Perl using FUSE"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Fuse"
+depends=('perl' 'fuse')
+license=('GPL')
+source=(http://www.cpan.org/authors/id/D/DP/DPAVLIN/Fuse-$pkgver.tar.gz)
+md5sums=('3965c5154567f4e4ac3d3b339eadf7f5')
+
+build() {
+ cd $srcdir/Fuse-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gd/PKGBUILD b/community/perl-gd/PKGBUILD
new file mode 100644
index 000000000..8e31c238a
--- /dev/null
+++ b/community/perl-gd/PKGBUILD
@@ -0,0 +1,28 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: Sergej Pupykin <pupykin.s+aur@gmail.com>
+
+pkgname=perl-gd
+pkgver=2.44
+pkgrel=3
+pkgdesc="Interface to Gd Graphics Library"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/GD"
+license=('GPL' 'PerlArtistic')
+depends=('gd')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/L/LD/LDS/GD-$pkgver.tar.gz)
+md5sums=('9b9a4d78a5af0616a96264b0aa354859')
+
+build() {
+ cd $startdir/src/GD-$pkgver
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+ make install DESTDIR=$startdir/pkg
+
+ install -D -m0644 GD/Group.pm $pkgdir/usr/lib/perl5/vendor_perl/GD/Group.pm
+
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-getopt-argvfile/PKGBUILD b/community/perl-getopt-argvfile/PKGBUILD
new file mode 100644
index 000000000..b52c31ae3
--- /dev/null
+++ b/community/perl-getopt-argvfile/PKGBUILD
@@ -0,0 +1,25 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-getopt-argvfile
+pkgver=1.11
+pkgrel=4
+pkgdesc="Take options from files"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~JSTENZEL/Getopt-ArgvFile"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-$pkgver.tar.gz)
+md5sums=('42117db2af4a24c062b2da25d4fdf756')
+
+build() {
+ cd $startdir/src/Getopt-ArgvFile-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
+
diff --git a/community/perl-gnome2-wnck/PKGBUILD b/community/perl-gnome2-wnck/PKGBUILD
new file mode 100644
index 000000000..d9e72e446
--- /dev/null
+++ b/community/perl-gnome2-wnck/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35646 2010-12-21 23:11:34Z tdziedzic $
+# Maintainer Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=perl-gnome2-wnck
+pkgver=0.16
+pkgrel=2
+pkgdesc="Perl interface to the Window Navigator Construction Kit"
+arch=('i686' 'x86_64')
+license=("GPL" "Artistic")
+url="http://search.cpan.org/dist/Gnome2-Wnck"
+depends=('perl' 'perl-extutils-depends' 'perl-extutils-pkgconfig' 'gnome-perl' 'libwnck')
+source=(http://search.cpan.org/CPAN/authors/id/T/TS/TSCH/Gnome2-Wnck-$pkgver.tar.gz)
+md5sums=('439f4569ffd7af96ef1d3feaab23760e')
+
+build() {
+ cd $startdir/src/Gnome2-Wnck-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-graphics-colornames/PKGBUILD b/community/perl-graphics-colornames/PKGBUILD
new file mode 100644
index 000000000..d539395dc
--- /dev/null
+++ b/community/perl-graphics-colornames/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35649 2010-12-21 23:12:27Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-graphics-colornames
+pkgver=2.11
+pkgrel=3
+pkgdesc="Perl/CPAN Module Graphics::ColorNames : provides RGB values for standard color names"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/~rrwo/Graphics-ColorNames/"
+license=("GPL" "PerlArtistic")
+depends=("perl")
+source=("http://search.cpan.org/CPAN/authors/id/R/RR/RRWO/Graphics-ColorNames-$pkgver.tar.gz")
+md5sums=('047eabbb48d7c29cfebac6f9da8478f6')
+
+build() {
+ cd $srcdir/Graphics-ColorNames-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gssapi/PKGBUILD b/community/perl-gssapi/PKGBUILD
new file mode 100644
index 000000000..50c83fa41
--- /dev/null
+++ b/community/perl-gssapi/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35652 2010-12-21 23:13:32Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-gssapi
+pkgver=0.28
+pkgrel=2
+pkgdesc="Perl/CPAN Module GSSAPI"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/GSSAPI"
+license=("GPL" "PerlArtistic")
+depends=('heimdal')
+source=("http://www.cpan.org/authors/id/A/AG/AGROLMS/GSSAPI-$pkgver.tar.gz")
+md5sums=('65f00a0749212af064289c8a05e59b3f')
+
+build() {
+ cd $srcdir/GSSAPI-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gstreamer-interfaces/ChangeLog b/community/perl-gstreamer-interfaces/ChangeLog
new file mode 100644
index 000000000..5fa6b829c
--- /dev/null
+++ b/community/perl-gstreamer-interfaces/ChangeLog
@@ -0,0 +1,5 @@
+2008-04-28 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.04
+
+ * ChangeLog: added
diff --git a/community/perl-gstreamer-interfaces/PKGBUILD b/community/perl-gstreamer-interfaces/PKGBUILD
new file mode 100644
index 000000000..92ddf705c
--- /dev/null
+++ b/community/perl-gstreamer-interfaces/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 35658 2010-12-21 23:15:57Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=perl-gstreamer-interfaces
+pkgver=0.06
+pkgrel=2
+pkgdesc="GStreamer::Interfaces"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/GStreamer-Interfaces"
+license=('GPL' 'PerlArtistic')
+depends=('glib-perl>=1.180' 'gstreamer0.10-base' 'perl-extutils-pkgconfig>=1.07'
+ 'perl-gstreamer>=0.06' 'perl-extutils-depends>=0.205')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/T/TS/TSCH/GStreamer-Interfaces-$pkgver.tar.gz)
+md5sums=('aa9583a484fa6829935b360887ecda45')
+
+build() {
+ cd $srcdir/GStreamer-Interfaces-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gstreamer/ChangeLog b/community/perl-gstreamer/ChangeLog
new file mode 100644
index 000000000..adbbf82e5
--- /dev/null
+++ b/community/perl-gstreamer/ChangeLog
@@ -0,0 +1,13 @@
+2009-02-28 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.15
+
+2008-12-06 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.12
+
+2008-04-28 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.10
+
+ * ChangeLog: added
diff --git a/community/perl-gstreamer/PKGBUILD b/community/perl-gstreamer/PKGBUILD
new file mode 100644
index 000000000..752b4a856
--- /dev/null
+++ b/community/perl-gstreamer/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35655 2010-12-21 23:14:54Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=perl-gstreamer
+pkgver=0.15
+pkgrel=4
+pkgdesc="Interface to the GStreamer library"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/GStreamer"
+license=('GPL' 'PerlArtistic')
+depends=('glib-perl>=1.180' 'gstreamer0.10' 'perl-extutils-pkgconfig>=1.07' 'perl-extutils-depends>=0.205')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/T/TS/TSCH/GStreamer-$pkgver.tar.gz)
+md5sums=('a01261f5a1012f4d6763e3721f1c9de7')
+
+build() {
+ cd $srcdir/GStreamer-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gtk2-mozembed/PKGBUILD b/community/perl-gtk2-mozembed/PKGBUILD
new file mode 100644
index 000000000..fdc78ab73
--- /dev/null
+++ b/community/perl-gtk2-mozembed/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42141 2011-03-13 22:19:27Z spupykin $
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=perl-gtk2-mozembed
+pkgver=0.08
+pkgrel=4
+pkgdesc="Interface to the Mozilla embedding widget"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Gtk2-MozEmbed"
+license=('GPL' 'PerlArtistic')
+depends=('perl-extutils-pkgconfig>=1.03' 'gtk2-perl>=1.081' 'perl-extutils-depends>=0.20' 'xulrunner>1.9')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/T/TS/TSCH/Gtk2-MozEmbed-${pkgver}.tar.gz"
+ 'missing-pixbuf.patch')
+md5sums=('ddafafa0e2684050a5d8b9f2c15f6dca'
+ '82313ca5da7dafdae0a8890f031d07f9')
+
+build() {
+ # fix https://rt.cpan.org/Public/Bug/Display.html?id=61063
+ patch -Np0 -i ${srcdir}/missing-pixbuf.patch
+ cd Gtk2-MozEmbed-${pkgver}
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd Gtk2-MozEmbed-${pkgver}
+ make install DESTDIR=${pkgdir}
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perl-gtk2-mozembed/missing-pixbuf.patch b/community/perl-gtk2-mozembed/missing-pixbuf.patch
new file mode 100644
index 000000000..f78a683e3
--- /dev/null
+++ b/community/perl-gtk2-mozembed/missing-pixbuf.patch
@@ -0,0 +1,23 @@
+diff -up Gtk2-MozEmbed-0.08/Makefile.PL.pixbuf Gtk2-MozEmbed-0.08/Makefile.PL
+--- Gtk2-MozEmbed-0.08/Makefile.PL.pixbuf 2010-08-11 13:34:16.000000000 +0200
++++ Gtk2-MozEmbed-0.08/Makefile.PL 2010-08-11 13:35:36.000000000 +0200
+@@ -54,6 +54,8 @@ my %pkgcfg = ExtUtils::PkgConfig->find(
+ "firefox-gtkmozembed >= $build_reqs{'Firefox'}",
+ "mozilla-firefox-gtkmozembed >= $build_reqs{'Firefox'}");
+
++my %pkgcfg_pixbuf = ExtUtils::PkgConfig->find("gdk-pixbuf-2.0");
++
+ mkdir 'build', 0777;
+
+ our @xs_files = <xs/*.xs>;
+@@ -73,8 +75,8 @@ ExtUtils::PkgConfig->write_version_macro
+ $pkg => "GTK_MOZ_EMBED",
+ );
+
+-my $inc = $pkgcfg{cflags};
+-my $libs = $pkgcfg{libs};
++my $inc = $pkgcfg{cflags} ." ". $pkgcfg_pixbuf{cflags};
++my $libs = $pkgcfg{libs} . " ". $pkgcfg_pixbuf{libs};
+
+ if ($libs =~ m#(lib|lib64)/xulrunner-(devel|sdk)-([^/]+)#) {
+ $inc .= qq( -DGTK_MOZ_EMBED_PERL_XULRUNNER_PATH=)
diff --git a/community/perl-gtk2-sexy/PKGBUILD b/community/perl-gtk2-sexy/PKGBUILD
new file mode 100644
index 000000000..2a23b98c6
--- /dev/null
+++ b/community/perl-gtk2-sexy/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 36684 2011-01-06 04:50:07Z angvp $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Charles Mauch <cmauch@gmail.com>
+# Creator: Florian Ragwitz <http://search.cpan.org/~/>
+
+pkgname=perl-gtk2-sexy
+pkgver=0.05
+pkgrel=4
+pkgdesc="Perl/CPAN Module Gtk2::Sexy"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Gtk2-Sexy"
+license=('GPL' 'PerlArtistic')
+depends=('gtk2' 'libsexy')
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends' 'gtk2-perl')
+options=(docs !emptydirs)
+source=("http://www.cpan.org/authors/id/F/FL/FLORA/Gtk2-Sexy-$pkgver.tar.gz")
+md5sums=('3e291808250d7b956ba8443013a1b461')
+
+build() {
+ cd $srcdir/Gtk2-Sexy-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/Gtk2-Sexy-$pkgver
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gtk2-trayicon/PKGBUILD b/community/perl-gtk2-trayicon/PKGBUILD
new file mode 100644
index 000000000..d9b6e1c86
--- /dev/null
+++ b/community/perl-gtk2-trayicon/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35661 2010-12-21 23:29:25Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=perl-gtk2-trayicon
+pkgver=0.06
+pkgrel=6
+pkgdesc="Perl interface to the EggTrayIcon library"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/TrayIcon.html"
+depends=('gtk2-perl')
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+license=("GPL")
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/Gtk2-TrayIcon-$pkgver.tar.gz)
+md5sums=('522c328f14681a25d76eeaf317e05049')
+
+build() {
+ cd $srcdir/Gtk2-TrayIcon-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-gtk2-webkit/ChangeLog b/community/perl-gtk2-webkit/ChangeLog
new file mode 100644
index 000000000..9664112d0
--- /dev/null
+++ b/community/perl-gtk2-webkit/ChangeLog
@@ -0,0 +1,17 @@
+2009-04-16 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Release bump: 2
+
+2009-02-28 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.04
+
+2008-12-01 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Release bump: 2
+
+ * PKGBUILD: fixed license (Artistic -> PerlArtistic)
+
+2008-12-01 Corrado Primier <bardo@aur.archlinux.org>
+
+ * PKGBUILD: moved to [community]
diff --git a/community/perl-gtk2-webkit/PKGBUILD b/community/perl-gtk2-webkit/PKGBUILD
new file mode 100644
index 000000000..3559b26f7
--- /dev/null
+++ b/community/perl-gtk2-webkit/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35664 2010-12-21 23:31:37Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=perl-gtk2-webkit
+pkgver=0.08
+pkgrel=2
+pkgdesc="Gtk2::WebKit"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Gtk2-WebKit"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0' 'gtk2-perl' 'libwebkit' 'perl-extutils-depends' 'perl-extutils-pkgconfig')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/F/FL/FLORA/Gtk2-WebKit-$pkgver.tar.gz)
+md5sums=('5dc7e0ea470754f6e24e40e54da942ee')
+
+build() {
+ cd $srcdir/Gtk2-WebKit-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-html-strip/PKGBUILD b/community/perl-html-strip/PKGBUILD
new file mode 100644
index 000000000..558da9874
--- /dev/null
+++ b/community/perl-html-strip/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35667 2010-12-21 23:32:23Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-html-strip
+pkgver=1.06
+pkgrel=5
+pkgdesc="Perl/CPAN Module HTML::Strip"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~kilinrax/HTML-Strip/"
+license=("GPL" "PerlArtistic")
+depends=('perl')
+source=("http://www.cpan.org/authors/id/K/KI/KILINRAX/HTML-Strip-$pkgver.tar.gz")
+md5sums=('ceeacef0c7c31983e3a991e77bb58b45')
+
+build() {
+ cd $srcdir/HTML-Strip-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-html-tableextract/PKGBUILD b/community/perl-html-tableextract/PKGBUILD
new file mode 100644
index 000000000..9de3e0c26
--- /dev/null
+++ b/community/perl-html-tableextract/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35670 2010-12-21 23:33:04Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-html-tableextract
+pkgver=2.10
+pkgrel=6
+pkgdesc="Perl/CPAN Module HTML::TableExtract : Flexible HTML table extraction"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/~msisk/HTML-TableExtract/"
+license=("GPL" "PerlArtistic")
+makedepends=("perl-html-parser" "perl-html-element-extended")
+depends=("perl-html-parser" "perl-html-element-extended")
+source=("http://www.cpan.org/authors/id/M/MS/MSISK/HTML-TableExtract-2.10.tar.gz")
+md5sums=('e6e355f6049dc57706e719c5ce61ff39')
+
+build() {
+ cd $srcdir/HTML-TableExtract-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-inline-java/PKGBUILD b/community/perl-inline-java/PKGBUILD
new file mode 100644
index 000000000..d5ba906dc
--- /dev/null
+++ b/community/perl-inline-java/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 36952 2011-01-10 21:37:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+
+pkgname=perl-inline-java
+pkgver=0.53
+pkgrel=1
+pkgdesc="The Inline::Java module allows you to put Java source code directly inline in a Perl script or module."
+arch=('i686' 'x86_64')
+depends=('perl' 'perl-inline' 'java-runtime')
+makedepends=('java-environment')
+license=("GPL" "PerlArtistic")
+url="http://search.cpan.org/dist/Inline-Java"
+source=(http://search.cpan.org/CPAN/authors/id/P/PA/PATL/Inline-Java-$pkgver.tar.gz)
+md5sums=('23f96c2ac4915302c3647c0abc92916f')
+
+build() {
+ cd $srcdir/Inline-Java-$pkgver
+ yes | PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor J2SDK=$J2SDKDIR
+ make java
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-io-string/PKGBUILD b/community/perl-io-string/PKGBUILD
new file mode 100644
index 000000000..76d116f9e
--- /dev/null
+++ b/community/perl-io-string/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-io-string
+pkgver=1.08
+pkgrel=7
+pkgdesc="IO::File interface for in-core strings"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/IO-String"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/G/GA/GAAS/IO-String-$pkgver.tar.gz)
+md5sums=('250e5424f290299fc3d6b5d1e9da3835')
+
+build() {
+ cd $startdir/src/IO-String-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-io-tty/PKGBUILD b/community/perl-io-tty/PKGBUILD
new file mode 100644
index 000000000..565099f95
--- /dev/null
+++ b/community/perl-io-tty/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-io-tty
+_realname=IO-Tty
+pkgver=1.08
+pkgrel=3
+pkgdesc="Provide an interface to TTYs and PTYs"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/IO-Tty/"
+license=("GPL" "PerlArtistic")
+source=("http://www.cpan.org/authors/id/R/RG/RGIERSIG/${_realname}-$pkgver.tar.gz")
+md5sums=('e99d819a6f8c11ae105b770cc508a4fc')
+
+build() {
+ cd $startdir/src/${_realname}-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-json-xs/PKGBUILD b/community/perl-json-xs/PKGBUILD
new file mode 100644
index 000000000..d376698fd
--- /dev/null
+++ b/community/perl-json-xs/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 35682 2010-12-21 23:39:21Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tor Krill <tor@krill.nu>
+
+pkgname=perl-json-xs
+pkgver=2.3
+pkgrel=2
+pkgdesc="JSON::XS - JSON serialising/deserialising, done correctly and fast"
+url="http://search.cpan.org/dist/JSON-XS/"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('perl' 'perl-common-sense')
+options=('!emptydirs' 'force')
+LC_NUMERIC=C
+provides=("$pkgname=`printf %.4f $pkgver`")
+source=(http://search.cpan.org/CPAN/authors/id/M/ML/MLEHMANN/JSON-XS-$pkgver.tar.gz)
+md5sums=('4dc2a968e41f8cf330d46be12f221a12')
+
+build() {
+ cd $srcdir/JSON-XS-$pkgver
+ eval `perl -V:archname`
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make DESTDIR=$pkgdir install
+
+ find $pkgdir -name '.packlist' -delete && \
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-libapreq2/PKGBUILD b/community/perl-libapreq2/PKGBUILD
new file mode 100644
index 000000000..e378ce473
--- /dev/null
+++ b/community/perl-libapreq2/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 35685 2010-12-21 23:43:49Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=perl-libapreq2
+pkgver=2.12
+pkgrel=7
+pkgdesc="A safe, standards-compliant, high-performance library used for parsing HTTP cookies, query-strings and POST data."
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/libapreq2"
+depends=('mod_perl' 'apr-util')
+makedepends=('perl-extutils-xsbuilder' 'perl-version')
+license=("GPL")
+options=('!libtool' '!makeflags')
+source=(http://www.cpan.org/authors/id/J/JO/JOESUF/libapreq2-$pkgver.tar.gz)
+md5sums=('76e2acde0d82246dea6f2565f3746eec')
+
+build() {
+ cd $srcdir/libapreq2-$pkgver
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL --with-apache2-apxs=/usr/sbin/apxs
+
+ find . -type f -name Makefile -exec sed -i 's#-ldb-4.8#-ldb-5.1#' {} \;
+ sed -i 's#-ldb-4.8#-ldb-5.1#' apreq2-config
+
+ make
+ make install DESTDIR=$pkgdir
+
+ sed -i "s#$srcdir#/usr/src#" $pkgdir/usr/bin/apreq2-config
+
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-list-moreutils/PKGBUILD b/community/perl-list-moreutils/PKGBUILD
new file mode 100644
index 000000000..ffcff2b04
--- /dev/null
+++ b/community/perl-list-moreutils/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-list-moreutils
+_cpanname=List-MoreUtils
+pkgver=0.22
+pkgrel=5
+pkgdesc="Provide the stuff missing in List::Util"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/List-MoreUtils"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/V/VP/VPARSEVAL/${_cpanname}-$pkgver.tar.gz)
+md5sums=('3a6ec506f40662ab1296c48c5eb72016')
+
+build() {
+ cd $srcdir/${_cpanname}-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/${_cpanname}-$pkgver
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-mail-box-parser-c/PKGBUILD b/community/perl-mail-box-parser-c/PKGBUILD
new file mode 100644
index 000000000..f9fcf27e7
--- /dev/null
+++ b/community/perl-mail-box-parser-c/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35688 2010-12-22 01:20:44Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-mail-box-parser-c
+pkgver=3.006
+pkgrel=5
+pkgdesc="Perl/CPAN Module Mail::Box::Parser::C : extends MailBox with the speed of C"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Mail-Box-Parser-C"
+license=("GPL" "PerlArtistic")
+source=("http://www.cpan.org/authors/id/M/MA/MARKOV/Mail-Box-Parser-C-$pkgver.tar.gz")
+md5sums=('3dfb3e2729597ae33114250cbce1b884')
+
+build() {
+ cd $srcdir/Mail-Box-Parser-C-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-mail-transport-dbx/PKGBUILD b/community/perl-mail-transport-dbx/PKGBUILD
new file mode 100644
index 000000000..b5be3e8f7
--- /dev/null
+++ b/community/perl-mail-transport-dbx/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35691 2010-12-22 01:21:45Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-mail-transport-dbx
+pkgver=0.07
+pkgrel=5
+pkgdesc="Perl/CPAN Module Mail::Transport::Dbx : Parse Outlook Express mailboxes"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Mail-Transport-Dbx"
+license=("GPL" "PerlArtistic")
+source=("http://www.cpan.org/authors/id/V/VP/VPARSEVAL/Mail-Transport-Dbx-$pkgver.tar.gz")
+md5sums=('4dcf5346a67c0a7f861cb2bb51a7d14e')
+
+build() {
+ cd $srcdir/Mail-Transport-Dbx-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-net-dbus/PKGBUILD b/community/perl-net-dbus/PKGBUILD
new file mode 100644
index 000000000..ebb396310
--- /dev/null
+++ b/community/perl-net-dbus/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35694 2010-12-22 01:22:55Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Francois Charette <firmicus@gmx.net>
+
+pkgname=perl-net-dbus
+pkgver=0.33.6
+pkgrel=5
+pkgdesc="Binding for DBus messaging protocol"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Net-DBus"
+license=('GPL' 'PerlArtistic')
+depends=('dbus' 'perl-xml-twig')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DA/DANBERR/Net-DBus-$pkgver.tar.gz)
+md5sums=('a1dbce89b1b839fd0e46d74067ae2e35')
+
+build() {
+ cd $srcdir/Net-DBus-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-net-libidn/PKGBUILD b/community/perl-net-libidn/PKGBUILD
new file mode 100644
index 000000000..fd0280247
--- /dev/null
+++ b/community/perl-net-libidn/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35697 2010-12-22 01:23:45Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=perl-net-libidn
+pkgver=0.12
+pkgrel=3
+pkgdesc="Perl/CPAN Module Net::LibIDN"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Net-LibIDN/"
+license=("GPL" "PerlArtistic")
+depends=(perl libidn)
+source=("http://search.cpan.org/CPAN/authors/id/T/TH/THOR/Net-LibIDN-$pkgver.tar.gz")
+md5sums=('c3e4de2065009d67bcb1df0afb473e12')
+
+build() {
+ cd $srcdir/Net-LibIDN-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-params-validate/PKGBUILD b/community/perl-params-validate/PKGBUILD
new file mode 100644
index 000000000..72be1714c
--- /dev/null
+++ b/community/perl-params-validate/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-params-validate
+pkgver=0.95
+pkgrel=3
+pkgdesc="Validate sub params against a spec"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Params-Validate"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DR/DROLSKY/Params-Validate-$pkgver.tar.gz)
+md5sums=('f544f12357ae4ba44044cd8cb2b83a9f')
+
+build() {
+ cd $startdir/src/Params-Validate-$pkgver
+ perl ./Build.PL --installdirs=vendor
+ ./Build
+ ./Build install --destdir=$pkgdir
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-string-crc32/PKGBUILD b/community/perl-string-crc32/PKGBUILD
new file mode 100644
index 000000000..4c0e43d4f
--- /dev/null
+++ b/community/perl-string-crc32/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35703 2010-12-22 01:25:32Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-string-crc32
+pkgver=1.4
+pkgrel=5
+pkgdesc="Perl/CPAN Module String::CRC32 : ZMODEMlike CRC32 generation"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/String-CRC32"
+license=("GPL" "PerlArtistic")
+source=("http://www.cpan.org/authors/id/S/SO/SOENKE/String-CRC32-$pkgver.tar.gz")
+md5sums=('9b241bc4a482a3aa59fbb1429bc30546')
+
+build() {
+ cd $srcdir/String-CRC32-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make pure_install doc_install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-text-charwidth/PKGBUILD b/community/perl-text-charwidth/PKGBUILD
new file mode 100644
index 000000000..9250a552a
--- /dev/null
+++ b/community/perl-text-charwidth/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 35706 2010-12-22 01:26:17Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-text-charwidth
+pkgver=0.04
+pkgrel=5
+pkgdesc="Perl/CPAN Module Text::CharWidth"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Text-CharWidth"
+license=("GPL" "PerlArtistic")
+source=("http://www.cpan.org/authors/id/K/KU/KUBOTA/Text-CharWidth-$pkgver.tar.gz")
+md5sums=('37a723df0580c0758c0ee67b37336c15')
+
+build() {
+ cd $srcdir/Text-CharWidth-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-text-kakasi/ChangeLog b/community/perl-text-kakasi/ChangeLog
new file mode 100644
index 000000000..0a469fdff
--- /dev/null
+++ b/community/perl-text-kakasi/ChangeLog
@@ -0,0 +1,3 @@
+2008-10-27 Allan McRae <allan@archlinux.org>
+ * perl-text-kakasi 2.04-4
+ * fixed typo in depends
diff --git a/community/perl-text-kakasi/PKGBUILD b/community/perl-text-kakasi/PKGBUILD
new file mode 100644
index 000000000..f9813af76
--- /dev/null
+++ b/community/perl-text-kakasi/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 35709 2010-12-22 01:27:08Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-text-kakasi
+pkgver=2.04
+pkgrel=6
+pkgdesc="Perl frontend to kakasi"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Text-Kakasi"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0' 'kakasi')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/D/DA/DANKOGAI/Text-Kakasi-$pkgver.tar.gz)
+md5sums=('5a9e381cb93edfd707124a63c60f96b1')
+
+build() {
+ cd $srcdir/Text-Kakasi-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-tie-hash-indexed/PKGBUILD b/community/perl-tie-hash-indexed/PKGBUILD
new file mode 100644
index 000000000..45d51b8e5
--- /dev/null
+++ b/community/perl-tie-hash-indexed/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35712 2010-12-22 01:27:48Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Francois Charette <firmicus@gmx.net>
+
+pkgname=perl-tie-hash-indexed
+pkgver=0.05
+pkgrel=5
+pkgdesc="Ordered hashes for Perl"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Tie-Hash-Indexed"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/M/MH/MHX/Tie-Hash-Indexed-$pkgver.tar.gz)
+md5sums=('41e2d013df8cfafdd239bc65bbada014')
+
+build() {
+ cd $srcdir/Tie-Hash-Indexed-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-tk-tablematrix/PKGBUILD b/community/perl-tk-tablematrix/PKGBUILD
new file mode 100644
index 000000000..294f0bd20
--- /dev/null
+++ b/community/perl-tk-tablematrix/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 35715 2010-12-22 01:29:04Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-tk-tablematrix
+pkgver=1.23
+pkgrel=6
+pkgdesc="Display data in TableSpreadsheet format"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/Tk-TableMatrix"
+license=("GPL" "PerlArtistic")
+depends=('perl-tk')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/C/CE/CERNEY/Tk-TableMatrix-$pkgver.tar.gz")
+md5sums=('6b7653d129bf1a8327054a88b58d6364')
+
+build() {
+ cd $srcdir/Tk-TableMatrix-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+ rm -f $pkgdir/usr/lib/perl5/vendor_perl/auto/Tk/pTk/extralibs.ld
+}
diff --git a/community/perl-www-curl/PKGBUILD b/community/perl-www-curl/PKGBUILD
new file mode 100644
index 000000000..fdae94bee
--- /dev/null
+++ b/community/perl-www-curl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 35718 2010-12-22 01:29:59Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perl-www-curl
+pkgver=4.12
+pkgrel=2
+pkgdesc="Perl/CPAN Module WWW::Curl"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/WWW-Curl/"
+license=("GPL" "PerlArtistic")
+depends=("curl")
+source=("http://search.cpan.org/CPAN/authors/id/S/SZ/SZBALINT/WWW-Curl-$pkgver.tar.gz")
+md5sums=('b7f0eaf81b118d9a9b4e94b40aa40543')
+
+build() {
+ cd $srcdir/WWW-Curl-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-xml-dom/PKGBUILD b/community/perl-xml-dom/PKGBUILD
new file mode 100644
index 000000000..364031b28
--- /dev/null
+++ b/community/perl-xml-dom/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-xml-dom
+pkgver=1.44
+pkgrel=7
+pkgdesc="Implements Level 1 of W3's DOM"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/XML-DOM"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0' 'perlxml>=2.30' 'perl-xml-regexp' 'libxml-perl>=0.07' 'perl-libwww')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-DOM-$pkgver.tar.gz)
+md5sums=('1ec2032a06e5762984f7a332c199c205')
+
+build() {
+ cd $startdir/src/XML-DOM-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-xml-libxml/PKGBUILD b/community/perl-xml-libxml/PKGBUILD
new file mode 100644
index 000000000..dbfb8ca26
--- /dev/null
+++ b/community/perl-xml-libxml/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: François Charette <francois.archlinux.org>
+
+pkgname=perl-xml-libxml
+pkgver=1.70
+pkgrel=3
+pkgdesc="Interface to the libxml library"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/XML-LibXML"
+license=('GPL')
+depends=('libxml2' 'perl-xml-sax>=0.11' 'perl-xml-namespacesupport>=1.07')
+provides=('perl-libxml' 'perl-xml-libxml-common')
+replaces=('perl-libxml' 'perl-xml-libxml-common')
+conflicts=('perl-libxml' 'perl-xml-libxml-common')
+install=perl-xml-libxml.install
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/P/PA/PAJAS/XML-LibXML-$pkgver.tar.gz)
+md5sums=('33d4294f708e20c298cfe534d1166844')
+
+build() {
+ cd $srcdir/XML-LibXML-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/XML-LibXML-$pkgver
+ make pure_install doc_install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/perl-xml-libxml/perl-xml-libxml.install b/community/perl-xml-libxml/perl-xml-libxml.install
new file mode 100644
index 000000000..43c29a245
--- /dev/null
+++ b/community/perl-xml-libxml/perl-xml-libxml.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo ":: Installing SAX XML Parsers"
+ /usr/bin/perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::LibXML::SAX::Parser))->save_parsers()"
+ /usr/bin/perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::LibXML::SAX))->save_parsers()"
+}
+
+post_upgrade() {
+ libxmlcount=`grep -c XML::LibXML::SAX /usr/share/perl5/vendor_perl/XML/SAX/ParserDetails.ini`
+ if [[ $libxmlcount == 0 ]]; then
+ echo ":: Installing SAX XML Parsers"
+ /usr/bin/perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::LibXML::SAX::Parser))->save_parsers()"
+ /usr/bin/perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::LibXML::SAX))->save_parsers()"
+ fi
+}
+
diff --git a/community/perl-xml-libxslt/PKGBUILD b/community/perl-xml-libxslt/PKGBUILD
new file mode 100644
index 000000000..f982ee279
--- /dev/null
+++ b/community/perl-xml-libxslt/PKGBUILD
@@ -0,0 +1,28 @@
+# Id:$
+# Maintainer: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-xml-libxslt
+pkgver=1.70
+pkgrel=4
+pkgdesc="Interface to the gnome libxslt library "
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/XML-LibXSLT"
+license=('GPL')
+depends=('perl-xml-libxml' 'libxslt')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/P/PA/PAJAS/XML-LibXSLT-$pkgver.tar.gz)
+
+build() {
+ cd $srcdir/XML-LibXSLT-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/XML-LibXSLT-$pkgver
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
+
+md5sums=('c63a7913999de076e5c911810f69b392')
diff --git a/community/perl-xml-regexp/PKGBUILD b/community/perl-xml-regexp/PKGBUILD
new file mode 100644
index 000000000..fe5ea144c
--- /dev/null
+++ b/community/perl-xml-regexp/PKGBUILD
@@ -0,0 +1,23 @@
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-xml-regexp
+pkgver=0.03
+pkgrel=5
+pkgdesc="Regular expressions for XML tokens"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/XML-RegExp"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-RegExp-$pkgver.tar.gz)
+md5sums=('5826b24e0d05714e25c2bb04e1f1c09b')
+
+build() {
+ cd $startdir/src/XML-RegExp-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR=$startdir/pkg
+ find $startdir/pkg -name '.packlist' -delete
+ find $startdir/pkg -name '*.pod' -delete
+}
diff --git a/community/perl-xmms/PKGBUILD b/community/perl-xmms/PKGBUILD
new file mode 100644
index 000000000..050f81bda
--- /dev/null
+++ b/community/perl-xmms/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 35727 2010-12-22 01:34:30Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Georg Grabler <ggrabler@gmail.com>
+
+pkgname=perl-xmms
+pkgver=0.12
+pkgrel=5
+pkgdesc="Bundle::Xmms - Bundle for xmms remote control shell"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~dougm/Xmms-Perl/"
+depends=('perl' 'xmms' 'libxxf86dga')
+license=('GPL' 'PerlArtistic')
+source=("http://search.cpan.org/CPAN/authors/id/D/DO/DOUGM/Xmms-Perl-${pkgver}.tar.gz")
+md5sums=('d1fbf6d09330f7855dd80f3ceee8e6f7')
+
+build() {
+ cd Xmms-Perl-${pkgver}
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+
+ make
+}
+
+package() {
+ cd Xmms-Perl-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/community/perlio-eol/PKGBUILD b/community/perlio-eol/PKGBUILD
new file mode 100644
index 000000000..abf0064c4
--- /dev/null
+++ b/community/perlio-eol/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 22036 2010-07-19 14:45:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Charles Mauch <cmauch@gmail.com>
+
+pkgname=perlio-eol
+pkgver=0.14
+pkgrel=4
+pkgdesc="Perl/CPAN Module PerlIO::eol"
+arch=("i686" "x86_64")
+url="http://search.cpan.org/dist/PerlIO-eol"
+license=("GPL" "PerlArtistic")
+source=("http://www.cpan.org/authors/id/A/AU/AUDREYT/PerlIO-eol-$pkgver.tar.gz")
+md5sums=('55c5d3fafab00a511ff1c2722060235c')
+
+build() {
+ cd $srcdir/PerlIO-eol-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ make || return 1
+ make install DESTDIR=$pkgdir || return 1
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+}
diff --git a/community/pgadmin3/ChangeLog b/community/pgadmin3/ChangeLog
new file mode 100644
index 000000000..76de01d7d
--- /dev/null
+++ b/community/pgadmin3/ChangeLog
@@ -0,0 +1,28 @@
+2008-08-21 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 1.8.5
+
+2008-06-24 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated for i686 - 1.8.4
+
+2008-02-21 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated for i686 - 1.8.2
+
+2008-01-05 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated for x86_64 - 1.8.1
+ * Updated for i686 - 1.8.1
+
+2007-10-28 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated version
+
+2007-10-11 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated version
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+
+ * Built for x86_64
diff --git a/community/pgadmin3/PKGBUILD b/community/pgadmin3/PKGBUILD
new file mode 100644
index 000000000..d3f0a636b
--- /dev/null
+++ b/community/pgadmin3/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 36424 2011-01-02 00:33:59Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Benjamin Andresen <benny@klapmuetz.org>
+# Contributor: bekks <eduard.warkentin@gmx.de>
+
+pkgname=pgadmin3
+pkgver=1.12.2
+_realver=1.12.2
+pkgrel=1
+pkgdesc="A comprehensive design and management interface for PostgreSQL database"
+arch=('i686' 'x86_64')
+url="http://www.pgadmin.org"
+license=('custom')
+depends=('wxgtk' 'postgresql-libs>=8.4.1' 'libxslt')
+makedepends=('libpqxx')
+source=(ftp://ftp.de.postgresql.org/pub/packages/databases/PostgreSQL/pgadmin3/release/v${_realver}/src/pgadmin3-${_realver}.tar.gz
+ pgadmin3.desktop)
+md5sums=('5b0e7b0867c42a529ce2a41bc7f830c8'
+ 'd07ba4df54baead30b66d19d7450bcad')
+
+build() {
+ cd $srcdir/pgadmin3-${_realver}
+
+ unset LDFLAGS
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir/ install
+
+ install -D -m 644 i18n/$pkgname.lng $pkgdir/usr/share/pgadmin3/i18n
+ install -D -m 644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+ mkdir -p $pkgdir/usr/share/pgadmin3/pixmaps/
+ mkdir -p $pkgdir/usr/share/applications/
+
+ install -D -m 644 pgadmin/include/images/pgAdmin3.ico $pkgdir/usr/share/pgadmin3/pixmaps/pgAdmin3.ico
+ install -D -m 644 $srcdir/pgadmin3.desktop $pkgdir/usr/share/applications/
+}
diff --git a/community/pgadmin3/pgadmin3.desktop b/community/pgadmin3/pgadmin3.desktop
new file mode 100644
index 000000000..2e0864f60
--- /dev/null
+++ b/community/pgadmin3/pgadmin3.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=pgadmin3
+Comment=A comprehensive design and management interface for PostgreSQL database
+Exec=pgadmin3
+Terminal=false
+Type=Application
+StartupNotify=true
+Icon=/usr/share/pgadmin3/pixmaps/pgAdmin3.ico
+Categories=Application;Development;
diff --git a/community/php-geoip/PKGBUILD b/community/php-geoip/PKGBUILD
new file mode 100644
index 000000000..411d5bbf4
--- /dev/null
+++ b/community/php-geoip/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 36134 2010-12-27 13:40:37Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=php-geoip
+pkgver=1.0.7
+pkgrel=2
+pkgdesc="GeoIP module for PHP"
+arch=('i686' 'x86_64')
+url="http://pecl.php.net/package/geoip"
+license=('PHP')
+depends=('php' 'geoip')
+backup=('etc/php/conf.d/geoip.ini')
+source=(http://pecl.php.net/get/geoip-$pkgver.tgz)
+md5sums=('ca5397a1dacb62afd426c2065fc1e106')
+
+build() {
+ cd "$srcdir/geoip-$pkgver"
+
+ phpize
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/geoip-$pkgver"
+
+ make INSTALL_ROOT="$pkgdir" install
+ echo ';extension=geoip.so' >geoip.ini
+ install -Dm644 geoip.ini "$pkgdir/etc/php/conf.d/geoip.ini"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/php-memcache/PKGBUILD b/community/php-memcache/PKGBUILD
new file mode 100644
index 000000000..f60e2edc5
--- /dev/null
+++ b/community/php-memcache/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 28768 2010-10-05 18:31:24Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=php-memcache
+pkgver=3.0.5
+pkgrel=1
+pkgdesc="Memcache module for PHP"
+arch=('i686' 'x86_64')
+url="http://pecl.php.net/package/memcache"
+license=('PHP')
+depends=('php')
+backup=('etc/php/conf.d/memcache.ini')
+install=php-memcache.install
+source=(http://pecl.php.net/get/memcache-$pkgver.tgz)
+md5sums=('2c7429a2d6b861a9d4ed0b9ad3cf0231')
+
+build() {
+ cd "$srcdir/memcache-$pkgver"
+
+ phpize
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/memcache-$pkgver"
+
+ make INSTALL_ROOT="$pkgdir" install
+ echo ';extension=memcache.so' >memcache.ini
+ install -Dm644 memcache.ini "$pkgdir/etc/php/conf.d/memcache.ini"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/php-memcache/php-memcache.install b/community/php-memcache/php-memcache.install
new file mode 100644
index 000000000..fa56baf81
--- /dev/null
+++ b/community/php-memcache/php-memcache.install
@@ -0,0 +1,10 @@
+post_install() {
+ echo '
+ ==> PHP extension
+
+ A config file was stored under /etc/php/conf.d/. In order to use this
+ extension make sure to uncomment it from its config file.
+ '
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/php-memcached/PKGBUILD b/community/php-memcached/PKGBUILD
new file mode 100644
index 000000000..014647f17
--- /dev/null
+++ b/community/php-memcached/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 27604 2010-09-25 17:26:37Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=php-memcached
+pkgver=1.0.2
+pkgrel=3
+pkgdesc="PHP extension for interfacing with memcached via libmemcached library"
+arch=('i686' 'x86_64')
+url="http://pecl.php.net/package/memcached"
+license=('PHP')
+depends=('php' 'libmemcached')
+backup=('etc/php/conf.d/memcached.ini')
+source=(http://pecl.php.net/get/memcached-$pkgver.tgz)
+md5sums=('b91f815ad59086d0c3564cce022b5c4f')
+
+build() {
+ cd "$srcdir/memcached-$pkgver"
+
+ phpize
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/memcached-$pkgver"
+
+ make INSTALL_ROOT="$pkgdir" install
+ echo ';extension=memcached.so' >memcached.ini
+ install -Dm644 memcached.ini "$pkgdir/etc/php/conf.d/memcached.ini"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/php52/PKGBUILD b/community/php52/PKGBUILD
new file mode 100644
index 000000000..eee88a905
--- /dev/null
+++ b/community/php52/PKGBUILD
@@ -0,0 +1,192 @@
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=php52
+pkgver=5.2.17
+pkgrel=5
+_suhosinver=5.2.16-0.9.7
+pkgdesc='A high-level scripting language'
+arch=('i686' 'x86_64')
+license=('PHP')
+url='http://www.php.net'
+backup=('etc/php/php.ini')
+depends=('glibc' 'readline' 'ncurses' 'libxml2' 'pcre')
+makedepends=('apache' 'imap' 'postgresql-libs' 'libmysqlclient'
+ 'libldap' 'postfix' 'libpng' 'libjpeg' 'sqlite3' 'unixodbc'
+ 'net-snmp' 'mhash' 'gmp' 'libmcrypt' 'tidyhtml' 'aspell' 'libtool'
+ 'freetype2' 'curl' 'libxslt' 'pam' 'openssl' 'bzip2' 'gdbm' 'db')
+optdepends=('bzip2: bz2'
+ 'curl: curl'
+ 'gdbm: dba'
+ 'libpng: gd'
+ 'libjpeg: gd'
+ 'freetype2: gd'
+ 'pam: imap'
+ 'libldap: ldap'
+ 'libmcrypt: mcrypt'
+ 'libtool: mcrypt'
+ 'libmysqlclient: mysql/mysqli/pdo_mysql'
+ 'unixodbc: odbc/pdo_odbc'
+ 'openssl: openssl'
+ 'postgresql-libs: pgsql/pdo_pgsql'
+ 'aspell: pspell'
+ 'net-snmp: snmp'
+ 'sqlite3: pdo_sqlite'
+ 'tidyhtml: tidy'
+ 'libxslt: xsl'
+ 'mhash: mhash'
+ 'gmp: gmp')
+provides=("php=$pkgver")
+conflicts=('php')
+source=("http://php.net/distributions/php-${pkgver}.tar.bz2"
+ "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz"
+ 'php.ini'
+ 'apache.conf'
+ 'db-configure.patch'
+ 'db-5.patch'
+ 'libpng14.patch')
+md5sums=('b27947f3045220faf16e4d9158cbfe13'
+ 'd815fc99a0c25c21f5df28551fcbb001'
+ '55c09c89e34eb5c555d842a4d01590e6'
+ '96ca078be6729b665be8a865535a97bf'
+ 'f3da248d934bc99354fdfa98cdac23ad'
+ '40f3d5f546087dac33bfa21a85b79203'
+ '77ea0756996df0932fce472ff3ec2693')
+
+build() {
+ phpconfig="--prefix=/usr \
+ --sysconfdir=/etc/php \
+ --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 \
+ "
+
+ phpextensions="--with-openssl=shared \
+ --with-zlib=shared \
+ --enable-bcmath=shared \
+ --with-bz2=shared \
+ --enable-calendar=shared \
+ --with-curl=shared \
+ --enable-dba=shared \
+ --without-db2 \
+ --without-db3 \
+ --with-db4=shared \
+ --with-gdbm=shared \
+ --enable-dbase=shared \
+ --enable-exif=shared \
+ --enable-ftp=shared \
+ --with-gd=shared \
+ --enable-gd-native-ttf \
+ --with-jpeg-dir=shared,/usr \
+ --with-png-dir=shared,/usr \
+ --with-gettext=shared \
+ --with-imap=shared \
+ --with-imap-ssl=shared \
+ --with-ldap=shared \
+ --enable-mbstring=shared \
+ --with-mcrypt=shared \
+ --with-mysql=shared \
+ --with-mysql-sock=/var/run/mysqld/mysqld.sock \
+ --with-mysql=shared \
+ --with-mysqli=shared \
+ --with-ncurses=shared \
+ --with-unixODBC=shared,/usr \
+ --enable-pdo=shared \
+ --with-pdo-mysql=shared \
+ --with-pdo-sqlite=shared,/usr \
+ --with-pdo-odbc=shared,unixODBC,/usr \
+ --with-pdo-pgsql=shared \
+ --with-sqlite=shared \
+ --enable-sqlite-utf8 \
+ --with-pgsql=shared \
+ --enable-shmop=shared \
+ --with-snmp=shared \
+ --enable-soap=shared \
+ --enable-sysvmsg=shared \
+ --enable-sysvsem=shared \
+ --enable-sysvshm=shared \
+ --with-tidy=shared \
+ --with-xsl=shared \
+ --enable-zip=shared \
+ --enable-posix=shared \
+ --enable-sockets=shared \
+ --enable-xml \
+ --with-ttf=shared \
+ --enable-session=shared \
+ --with-regex=php \
+ --with-pcre-regex=/usr \
+ --enable-mbstring=all \
+ --enable-mbregex \
+ --enable-json=shared \
+ --with-iconv=shared \
+ --with-xmlrpc=shared \
+ --with-pspell=shared \
+ --with-freetype-dir=shared,/usr \
+ --with-mime-magic=shared \
+ --with-gmp=shared \
+ --with-mhash=shared \
+ "
+
+ PEAR_INSTALLDIR=/usr/share/pear
+ export PEAR_INSTALLDIR
+
+ cd ${srcdir}/php-${pkgver}
+
+ # db 5.1 fix
+ patch -p4 -i ${srcdir}/db-5.patch
+
+ # avoid linking against old db version
+ patch -p0 -i ${srcdir}/db-configure.patch
+
+ # libpng 1.4 fix
+ patch -p3 -i ${srcdir}/libpng14.patch
+
+ # gmp 5.0 fix
+ sed -i 's/__GMP_BITS_PER_MP_LIMB/GMP_LIMB_BITS/g' ext/gmp/gmp.c
+
+ # apply suhosin patch
+ patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch
+
+ # cli
+ ./configure ${phpconfig} \
+ --disable-cgi \
+ --with-readline \
+ --enable-pcntl \
+ --with-pear=/usr/share/pear \
+ ${phpextensions}
+ make
+ # make test
+ make -j1 INSTALL_ROOT=${pkgdir} install
+
+ # cleanup
+ rm -f ${pkgdir}`${pkgdir}/usr/bin/php-config --extension-dir`/*.a
+ # install php.ini
+ install -D -m644 ${srcdir}/php.ini ${pkgdir}/etc/php/php.ini
+ install -d -m755 ${pkgdir}/etc/php/conf.d/
+
+ # cgi and fcgi
+ ./configure ${phpconfig} \
+ --enable-fastcgi \
+ --enable-cgi \
+ --enable-discard-path \
+ --enable-force-cgi-redirect \
+ --disable-cli \
+ ${phpextensions}
+ make
+ install -D -m755 sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi
+
+ # mod_php
+ ./configure ${phpconfig} \
+ --with-apxs2 \
+ --disable-cli \
+ ${phpextensions}
+ make
+ install -D -m644 libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so
+ install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf
+}
diff --git a/community/php52/apache.conf b/community/php52/apache.conf
new file mode 100644
index 000000000..86344c803
--- /dev/null
+++ b/community/php52/apache.conf
@@ -0,0 +1,9 @@
+# Required modules: dir_module, php5_module
+
+<IfModule dir_module>
+ <IfModule php5_module>
+ DirectoryIndex index.php index.html
+ AddHandler application/x-httpd-php .php
+ AddHandler application/x-httpd-php-source .phps
+ </IfModule>
+</IfModule> \ No newline at end of file
diff --git a/community/php52/db-5.patch b/community/php52/db-5.patch
new file mode 100644
index 000000000..46c64c8b0
--- /dev/null
+++ b/community/php52/db-5.patch
@@ -0,0 +1,51 @@
+--- omg/kittens/everywhere/lol/configure.orig 2010-07-21 17:31:30.000000000 +0300
++++ omg/kittens/everywhere/lol/configure 2010-10-21 00:05:41.000000000 +0300
+@@ -28605,7 +28610,7 @@ if { (eval echo configure:28601: \"$ac_l
+ #include "confdefs.h"
+
+ #include "$THIS_INCLUDE"
+-#if DB_VERSION_MAJOR == 4
++#if DB_VERSION_MAJOR == 4 || DB_VERSION_MAJOR == 5
+ yes
+ #endif
+
+@@ -28649,7 +28654,7 @@ echo "configure:28647: checking for DB4
+ #include "confdefs.h"
+
+ #include "$THIS_INCLUDE"
+-#if DB_VERSION_MINOR != 1 || DB_VERSION_PATCH >= 25
++#if DB_VERSION_MINOR != 1 || (DB_VERSION_MINOR == 1 && DB_VERSION_PATCH >= 25) || DB_VERSION_MAJOR == 5
+ yes
+ #endif
+
+
+Modified: php/php-src/branches/PHP_5_3/ext/dba/dba_db4.c
+===================================================================
+--- php/php-src/branches/PHP_5_3/ext/dba/dba_db4.c 2010-06-03 06:57:47 UTC (rev 300150)
++++ php/php-src/branches/PHP_5_3/ext/dba/dba_db4.c 2010-06-03 07:03:05 UTC (rev 300151)
+@@ -37,14 +37,14 @@
+ #endif
+
+ static void php_dba_db4_errcall_fcn(
+-#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)
++#if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3))
+ const DB_ENV *dbenv,
+ #endif
+ const char *errpfx, const char *msg)
+ {
+ TSRMLS_FETCH();
+
+-#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 8 && DB_VERSION_PATCH <= 26)
++#if (DB_VERSION_MAJOR == 5 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR == 8))
+ /* Bug 51086, Berkeley DB 4.8.26 */
+ /* This code suppresses a BDB 4.8 error message that BDB incorrectly emits */
+ {
+@@ -124,7 +124,7 @@
+ if ((err=db_create(&dbp, NULL, 0)) == 0) {
+ dbp->set_errcall(dbp, php_dba_db4_errcall_fcn);
+ if (
+-#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
++#if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1))
+ (err=dbp->open(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) {
+ #else
+ (err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) {
diff --git a/community/php52/db-configure.patch b/community/php52/db-configure.patch
new file mode 100644
index 000000000..404febeaa
--- /dev/null
+++ b/community/php52/db-configure.patch
@@ -0,0 +1,59 @@
+--- configure.orig 2008-07-03 10:27:06.000000000 +0000
++++ configure 2008-07-03 10:30:56.000000000 +0000
+@@ -28399,51 +28399,15 @@
+
+ unset THIS_INCLUDE THIS_LIBS THIS_LFLAGS THIS_PREFIX THIS_RESULT
+
+- dbdp="/usr/local/BerkeleyDB.4."
+- for i in $PHP_DB4 ${dbdp}8 ${dbdp}7 ${dbdp}6 ${dbdp}5 ${dbdp}4 ${dbdp}3 ${dbdp}2 ${dbdp}1 ${dbdp}0 /usr/local /usr; do
+- if test -f "$i/db4/db.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/db4/db.h
+- break
+- elif test -f "$i/include/db4.8/db.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db4.8/db.h
+- break
+- elif test -f "$i/include/db4.7/db.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db4.7/db.h
+- break
+- elif test -f "$i/include/db4.6/db.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db4.6/db.h
+- break
+- elif test -f "$i/include/db4.5/db.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db4.5/db.h
+- break
+- elif test -f "$i/include/db4/db.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db4/db.h
+- break
+- elif test -f "$i/include/db/db4.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db/db4.h
+- break
+- elif test -f "$i/include/db4.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db4.h
+- break
+- elif test -f "$i/include/db.h"; then
+- THIS_PREFIX=$i
+- THIS_INCLUDE=$i/include/db.h
+- break
+- fi
+- done
++ if test -f "/usr/include/db.h"; then
++ THIS_PREFIX=/usr
++ THIS_INCLUDE=/usr/include/db.h
++ fi
+
+ if test -z "$THIS_INCLUDE"; then
+ { echo "configure: error: DBA: Could not find necessary header file(s)." 1>&2; exit 1; }
+ fi
+- for LIB in db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db; do
++ for LIB in db; do
+ if test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.a || test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.$SHLIB_SUFFIX_NAME; then
+ lib_found="";
+
diff --git a/community/php52/libpng14.patch b/community/php52/libpng14.patch
new file mode 100644
index 000000000..08bb4e1dd
--- /dev/null
+++ b/community/php52/libpng14.patch
@@ -0,0 +1,11 @@
+--- php/php-src/trunk/ext/gd/libgd/gd_png.c 2009/04/01 16:05:17 278124
++++ php/php-src/trunk/ext/gd/libgd/gd_png.c 2010/01/10 02:13:45 293341
+@@ -145,7 +145,7 @@
+ return NULL;
+ }
+
+- if (!png_check_sig (sig, 8)) { /* bad signature */
++ if (png_sig_cmp(sig, 0, 8) != 0) { /* bad signature */
+ return NULL;
+ }
+
diff --git a/community/php52/php.ini b/community/php52/php.ini
new file mode 100644
index 000000000..26f632bd4
--- /dev/null
+++ b/community/php52/php.ini
@@ -0,0 +1,1309 @@
+[PHP]
+
+;;;;;;;;;;;;;;;;;;;
+; About php.ini ;
+;;;;;;;;;;;;;;;;;;;
+; This file controls many aspects of PHP's behavior. In order for PHP to
+; read it, it must be named 'php.ini'. PHP looks for it in the current
+; working directory, in the path designated by the environment variable
+; PHPRC, and in the path that was defined in compile time (in that order).
+; The path in which the php.ini file is looked for can be overridden using
+; the -c argument in command line mode.
+;
+; The syntax of the file is extremely simple. Whitespace and Lines
+; beginning with a semicolon are silently ignored (as you probably guessed).
+; Section headers (e.g. [Foo]) are also silently ignored, even though
+; they might mean something in the future.
+;
+; Directives are specified using the following syntax:
+; directive = value
+; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
+;
+; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
+; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
+; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo").
+;
+; Expressions in the INI file are limited to bitwise operators and parentheses:
+; | bitwise OR
+; & bitwise AND
+; ~ bitwise NOT
+; ! boolean NOT
+;
+; Boolean flags can be turned on using the values 1, On, True or Yes.
+; They can be turned off using the values 0, Off, False or No.
+;
+; An empty string can be denoted by simply not writing anything after the equal
+; sign, or by using the None keyword:
+;
+; foo = ; sets foo to an empty string
+; foo = none ; sets foo to an empty string
+; foo = "none" ; sets foo to the string 'none'
+;
+; If you use constants in your value, and these constants belong to a
+; dynamically loaded extension (either a PHP extension or a Zend extension),
+; you may only use these constants *after* the line that loads the extension.
+;
+;
+;;;;;;;;;;;;;;;;;;;
+; About this file ;
+;;;;;;;;;;;;;;;;;;;
+; This is the recommended, PHP 5-style version of the php.ini-dist file. It
+; sets some non standard settings, that make PHP more efficient, more secure,
+; and encourage cleaner coding.
+;
+; The price is that with these settings, PHP may be incompatible with some
+; applications, and sometimes, more difficult to develop with. Using this
+; file is warmly recommended for production sites. As all of the changes from
+; the standard settings are thoroughly documented, you can go over each one,
+; and decide whether you want to use it or not.
+;
+; For general information about the php.ini file, please consult the php.ini-dist
+; file, included in your PHP distribution.
+;
+; This file is different from the php.ini-dist file in the fact that it features
+; different values for several directives, in order to improve performance, while
+; possibly breaking compatibility with the standard out-of-the-box behavior of
+; PHP. Please make sure you read what's different, and modify your scripts
+; accordingly, if you decide to use this file instead.
+;
+; - register_long_arrays = Off [Performance]
+; Disables registration of the older (and deprecated) long predefined array
+; variables ($HTTP_*_VARS). Instead, use the superglobals that were
+; introduced in PHP 4.1.0
+; - display_errors = Off [Security]
+; With this directive set to off, errors that occur during the execution of
+; scripts will no longer be displayed as a part of the script output, and thus,
+; will no longer be exposed to remote users. With some errors, the error message
+; content may expose information about your script, web server, or database
+; server that may be exploitable for hacking. Production sites should have this
+; directive set to off.
+; - log_errors = On [Security]
+; This directive complements the above one. Any errors that occur during the
+; execution of your script will be logged (typically, to your server's error log,
+; but can be configured in several ways). Along with setting display_errors to off,
+; this setup gives you the ability to fully understand what may have gone wrong,
+; without exposing any sensitive information to remote users.
+; - output_buffering = 4096 [Performance]
+; Set a 4KB output buffer. Enabling output buffering typically results in less
+; writes, and sometimes less packets sent on the wire, which can often lead to
+; better performance. The gain this directive actually yields greatly depends
+; on which Web server you're working with, and what kind of scripts you're using.
+; - register_argc_argv = Off [Performance]
+; Disables registration of the somewhat redundant $argv and $argc global
+; variables.
+; - magic_quotes_gpc = Off [Performance]
+; Input data is no longer escaped with slashes so that it can be sent into
+; SQL databases without further manipulation. Instead, you should use the
+; database vendor specific escape string function on each input element you
+; wish to send to a database.
+; - variables_order = "GPCS" [Performance]
+; The environment variables are not hashed into the $_ENV. To access
+; environment variables, you can use getenv() instead.
+; - error_reporting = E_ALL [Code Cleanliness, Security(?)]
+; By default, PHP suppresses errors of type E_NOTICE. These error messages
+; are emitted for non-critical errors, but that could be a symptom of a bigger
+; problem. Most notably, this will cause error messages about the use
+; of uninitialized variables to be displayed.
+; - allow_call_time_pass_reference = Off [Code cleanliness]
+; It's not possible to decide to force a variable to be passed by reference
+; when calling a function. The PHP 4 style to do this is by making the
+; function require the relevant argument by reference.
+; - short_open_tag = Off [Portability]
+; Using short tags is discouraged when developing code meant for redistribution
+; since short tags may not be supported on the target server.
+
+;;;;;;;;;;;;;;;;;;;;
+; Language Options ;
+;;;;;;;;;;;;;;;;;;;;
+
+; Enable the PHP scripting language engine under Apache.
+engine = On
+
+; Enable compatibility mode with Zend Engine 1 (PHP 4.x)
+zend.ze1_compatibility_mode = Off
+
+; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
+; NOTE: Using short tags should be avoided when developing applications or
+; libraries that are meant for redistribution, or deployment on PHP
+; servers which are not under your control, because short tags may not
+; be supported on the target server. For portable, redistributable code,
+; be sure not to use short tags.
+short_open_tag = Off
+
+; Allow ASP-style <% %> tags.
+asp_tags = Off
+
+; The number of significant digits displayed in floating point numbers.
+precision = 14
+
+; Enforce year 2000 compliance (will cause problems with non-compliant browsers)
+y2k_compliance = On
+
+; Output buffering allows you to send header lines (including cookies) even
+; after you send body content, at the price of slowing PHP's output layer a
+; bit. You can enable output buffering during runtime by calling the output
+; buffering functions. You can also enable output buffering for all files by
+; setting this directive to On. If you wish to limit the size of the buffer
+; to a certain size - you can use a maximum number of bytes instead of 'On', as
+; a value for this directive (e.g., output_buffering=4096).
+output_buffering = 4096
+
+; You can redirect all of the output of your scripts to a function. For
+; example, if you set output_handler to "mb_output_handler", character
+; encoding will be transparently converted to the specified encoding.
+; Setting any output handler automatically turns on output buffering.
+; Note: People who wrote portable scripts should not depend on this ini
+; directive. Instead, explicitly set the output handler using ob_start().
+; Using this ini directive may cause problems unless you know what script
+; is doing.
+; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
+; and you cannot use both "ob_gzhandler" and "zlib.output_compression".
+; Note: output_handler must be empty if this is set 'On' !!!!
+; Instead you must use zlib.output_handler.
+;output_handler =
+
+; Transparent output compression using the zlib library
+; Valid values for this option are 'off', 'on', or a specific buffer size
+; to be used for compression (default is 4KB)
+; Note: Resulting chunk size may vary due to nature of compression. PHP
+; outputs chunks that are few hundreds bytes each as a result of
+; compression. If you prefer a larger chunk size for better
+; performance, enable output_buffering in addition.
+; Note: You need to use zlib.output_handler instead of the standard
+; output_handler, or otherwise the output will be corrupted.
+zlib.output_compression = Off
+;zlib.output_compression_level = -1
+
+; You cannot specify additional output handlers if zlib.output_compression
+; is activated here. This setting does the same as output_handler but in
+; a different order.
+;zlib.output_handler =
+
+; Implicit flush tells PHP to tell the output layer to flush itself
+; automatically after every output block. This is equivalent to calling the
+; PHP function flush() after each and every call to print() or echo() and each
+; and every HTML block. Turning this option on has serious performance
+; implications and is generally recommended for debugging purposes only.
+implicit_flush = Off
+
+; The unserialize callback function will be called (with the undefined class'
+; name as parameter), if the unserializer finds an undefined class
+; which should be instantiated.
+; A warning appears if the specified function is not defined, or if the
+; function doesn't include/implement the missing class.
+; So only set this entry, if you really want to implement such a
+; callback-function.
+unserialize_callback_func=
+
+; When floats & doubles are serialized store serialize_precision significant
+; digits after the floating point. The default value ensures that when floats
+; are decoded with unserialize, the data will remain the same.
+serialize_precision = 100
+
+; Whether to enable the ability to force arguments to be passed by reference
+; at function call time. This method is deprecated and is likely to be
+; unsupported in future versions of PHP/Zend. The encouraged method of
+; specifying which arguments should be passed by reference is in the function
+; declaration. You're encouraged to try and turn this option Off and make
+; sure your scripts work properly with it in order to ensure they will work
+; with future versions of the language (you will receive a warning each time
+; you use this feature, and the argument will be passed by value instead of by
+; reference).
+allow_call_time_pass_reference = Off
+
+;
+; Safe Mode
+;
+safe_mode = Off
+
+; By default, Safe Mode does a UID compare check when
+; opening files. If you want to relax this to a GID compare,
+; then turn on safe_mode_gid.
+safe_mode_gid = Off
+
+; When safe_mode is on, UID/GID checks are bypassed when
+; including files from this directory and its subdirectories.
+; (directory must also be in include_path or full path must
+; be used when including)
+safe_mode_include_dir =
+
+; When safe_mode is on, only executables located in the safe_mode_exec_dir
+; will be allowed to be executed via the exec family of functions.
+safe_mode_exec_dir =
+
+; Setting certain environment variables may be a potential security breach.
+; This directive contains a comma-delimited list of prefixes. In Safe Mode,
+; the user may only alter environment variables whose names begin with the
+; prefixes supplied here. By default, users will only be able to set
+; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
+;
+; Note: If this directive is empty, PHP will let the user modify ANY
+; environment variable!
+safe_mode_allowed_env_vars = PHP_
+
+; This directive contains a comma-delimited list of environment variables that
+; the end user won't be able to change using putenv(). These variables will be
+; protected even if safe_mode_allowed_env_vars is set to allow to change them.
+safe_mode_protected_env_vars = LD_LIBRARY_PATH
+
+; open_basedir, if set, limits all file operations to the defined directory
+; and below. This directive makes most sense if used in a per-directory
+; or per-virtualhost web server configuration file. This directive is
+; *NOT* affected by whether Safe Mode is turned On or Off.
+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
+; *NOT* affected by whether Safe Mode is turned On or Off.
+disable_functions =
+
+; This directive allows you to disable certain classes for security reasons.
+; It receives a comma-delimited list of class names. This directive is
+; *NOT* affected by whether Safe Mode is turned On or Off.
+disable_classes =
+
+; Colors for Syntax Highlighting mode. Anything that's acceptable in
+; <span style="color: ???????"> would work.
+;highlight.string = #DD0000
+;highlight.comment = #FF9900
+;highlight.keyword = #007700
+;highlight.bg = #FFFFFF
+;highlight.default = #0000BB
+;highlight.html = #000000
+
+; If enabled, the request will be allowed to complete even if the user aborts
+; the request. Consider enabling it if executing long request, which may end up
+; being interrupted by the user or a browser timing out.
+; ignore_user_abort = On
+
+; Determines the size of the realpath cache to be used by PHP. This value should
+; be increased on systems where PHP opens many files to reflect the quantity of
+; the file operations performed.
+; realpath_cache_size=16k
+
+; Duration of time, in seconds for which to cache realpath information for a given
+; file or directory. For systems with rarely changing files, consider increasing this
+; value.
+; realpath_cache_ttl=120
+
+;
+; Misc
+;
+; Decides whether PHP may expose the fact that it is installed on the server
+; (e.g. by adding its signature to the Web server header). It is no security
+; threat in any way, but it makes it possible to determine whether you use PHP
+; on your server or not.
+expose_php = On
+
+
+;;;;;;;;;;;;;;;;;;;
+; Resource Limits ;
+;;;;;;;;;;;;;;;;;;;
+
+max_execution_time = 30 ; Maximum execution time of each script, in seconds
+max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
+;max_input_nesting_level = 64 ; Maximum input variable nesting level
+memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Error handling and logging ;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; error_reporting is a bit-field. Or each number up to get desired error
+; reporting level
+; E_ALL - All errors and warnings (doesn't include E_STRICT)
+; E_ERROR - fatal run-time errors
+; E_RECOVERABLE_ERROR - almost fatal run-time errors
+; E_WARNING - run-time warnings (non-fatal errors)
+; E_PARSE - compile-time parse errors
+; E_NOTICE - run-time notices (these are warnings which often result
+; from a bug in your code, but it's possible that it was
+; intentional (e.g., using an uninitialized variable and
+; relying on the fact it's automatically initialized to an
+; empty string)
+; E_STRICT - run-time notices, enable to have PHP suggest changes
+; to your code which will ensure the best interoperability
+; and forward compatibility of your code
+; E_CORE_ERROR - fatal errors that occur during PHP's initial startup
+; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's
+; initial startup
+; E_COMPILE_ERROR - fatal compile-time errors
+; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
+; E_USER_ERROR - user-generated error message
+; E_USER_WARNING - user-generated warning message
+; E_USER_NOTICE - user-generated notice message
+;
+; Examples:
+;
+; - Show all errors, except for notices and coding standards warnings
+;
+;error_reporting = E_ALL & ~E_NOTICE
+;
+; - Show all errors, except for notices
+;
+;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
+;
+; - Show only errors
+;
+;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
+;
+; - Show all errors, except coding standards warnings
+;
+error_reporting = E_ALL
+
+; Print out errors (as a part of the output). For production web sites,
+; you're strongly encouraged to turn this feature off, and use error logging
+; instead (see below). Keeping display_errors enabled on a production web site
+; may reveal security information to end users, such as file paths on your Web
+; server, your database schema or other information.
+;
+; possible values for display_errors:
+;
+; Off - Do not display any errors
+; stderr - Display errors to STDERR (affects only CGI/CLI binaries!)
+; On or stdout - Display errors to STDOUT (default)
+;
+; To output errors to STDERR with CGI/CLI:
+;display_errors = "stderr"
+;
+; Default
+;
+display_errors = Off
+
+; Even when display_errors is on, errors that occur during PHP's startup
+; sequence are not displayed. It's strongly recommended to keep
+; display_startup_errors off, except for when debugging.
+display_startup_errors = Off
+
+; Log errors into a log file (server-specific log, stderr, or error_log (below))
+; As stated above, you're strongly advised to use error logging in place of
+; error displaying on production web sites.
+log_errors = On
+
+; Set maximum length of log_errors. In error_log information about the source is
+; added. The default is 1024 and 0 allows to not apply any maximum length at all.
+log_errors_max_len = 1024
+
+; Do not log repeated messages. Repeated errors must occur in same file on same
+; line unless ignore_repeated_source is set true.
+ignore_repeated_errors = Off
+
+; Ignore source of message when ignoring repeated messages. When this setting
+; is On you will not log errors with repeated messages from different files or
+; source lines.
+ignore_repeated_source = Off
+
+; If this parameter is set to Off, then memory leaks will not be shown (on
+; stdout or in the log). This has only effect in a debug compile, and if
+; error reporting includes E_WARNING in the allowed list
+report_memleaks = Off
+
+;report_zend_debug = 0
+
+; Store the last error/warning message in $php_errormsg (boolean).
+track_errors = Off
+
+; Turn off normal error reporting and emit XML-RPC error XML
+;xmlrpc_errors = 0
+; An XML-RPC faultCode
+;xmlrpc_error_number = 0
+
+; Disable the inclusion of HTML tags in error messages.
+; Note: Never use this feature for production boxes.
+;html_errors = Off
+
+; If html_errors is set On PHP produces clickable error messages that direct
+; to a page describing the error or function causing the error in detail.
+; You can download a copy of the PHP manual from http://www.php.net/docs.php
+; and change docref_root to the base URL of your local copy including the
+; leading '/'. You must also specify the file extension being used including
+; the dot.
+; Note: Never use this feature for production boxes.
+;docref_root = "/phpmanual/"
+;docref_ext = .html
+
+; String to output before an error message.
+;error_prepend_string = "<font color=#ff0000>"
+
+; String to output after an error message.
+;error_append_string = "</font>"
+
+; Log errors to specified file.
+;error_log = filename
+
+; Log errors to syslog.
+;error_log = syslog
+
+
+;;;;;;;;;;;;;;;;;
+; Data Handling ;
+;;;;;;;;;;;;;;;;;
+;
+; Note - track_vars is ALWAYS enabled as of PHP 4.0.3
+
+; The separator used in PHP generated URLs to separate arguments.
+; Default is "&".
+;arg_separator.output = "&amp;"
+
+; List of separator(s) used by PHP to parse input URLs into variables.
+; Default is "&".
+; NOTE: Every character in this directive is considered as separator!
+;arg_separator.input = ";&"
+
+; This directive describes the order in which PHP registers GET, POST, Cookie,
+; Environment and Built-in variables (G, P, C, E & S respectively, often
+; referred to as EGPCS or GPC). Registration is done from left to right, newer
+; values override older values.
+variables_order = "GPCS"
+
+; Whether or not to register the EGPCS variables as global variables. You may
+; want to turn this off if you don't want to clutter your scripts' global scope
+; with user data. This makes most sense when coupled with track_vars - in which
+; case you can access all of the GPC variables through the $HTTP_*_VARS[],
+; variables.
+;
+; You should do your best to write your scripts so that they do not require
+; register_globals to be on; Using form variables as globals can easily lead
+; to possible security problems, if the code is not very well thought of.
+register_globals = Off
+
+; Whether or not to register the old-style input arrays, HTTP_GET_VARS
+; and friends. If you're not using them, it's recommended to turn them off,
+; for performance reasons.
+register_long_arrays = Off
+
+; This directive tells PHP whether to declare the argv&argc variables (that
+; would contain the GET information). If you don't use these variables, you
+; should turn it off for increased performance.
+register_argc_argv = Off
+
+; When enabled, the SERVER and ENV variables are created when they're first
+; used (Just In Time) instead of when the script starts. If these variables
+; are not used within a script, having this directive on will result in a
+; performance gain. The PHP directives register_globals, register_long_arrays,
+; and register_argc_argv must be disabled for this directive to have any affect.
+auto_globals_jit = On
+
+; Maximum size of POST data that PHP will accept.
+post_max_size = 8M
+
+; Magic quotes
+;
+
+; Magic quotes for incoming GET/POST/Cookie data.
+magic_quotes_gpc = Off
+
+; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
+magic_quotes_runtime = Off
+
+; Use Sybase-style magic quotes (escape ' with '' instead of \').
+magic_quotes_sybase = Off
+
+; Automatically add files before or after any PHP document.
+auto_prepend_file =
+auto_append_file =
+
+; As of 4.0b4, PHP always outputs a character encoding by default in
+; the Content-type: header. To disable sending of the charset, simply
+; set it to be empty.
+;
+; PHP's built-in default is text/html
+default_mimetype = "text/html"
+;default_charset = "iso-8859-1"
+
+; Always populate the $HTTP_RAW_POST_DATA variable.
+;always_populate_raw_post_data = On
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;
+; Paths and Directories ;
+;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; UNIX: "/path1:/path2"
+include_path = ".:/usr/share/pear"
+
+; The root of the PHP pages, used only if nonempty.
+; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
+; if you are running php as a CGI under any web server (other than IIS)
+; see documentation for security issues. The alternate is to use the
+; cgi.force_redirect configuration below
+doc_root =
+
+; The directory under which PHP opens the script using /~username used only
+; if nonempty.
+user_dir =
+
+; Directory in which the loadable extensions (modules) reside.
+extension_dir = "/usr/lib/php/20060613/"
+
+; Whether or not to enable the dl() function. The dl() function does NOT work
+; properly in multithreaded servers, such as IIS or Zeus, and is automatically
+; disabled on them.
+enable_dl = Off
+
+; cgi.force_redirect is necessary to provide security running PHP as a CGI under
+; most web servers. Left undefined, PHP turns this on by default. You can
+; turn it off here AT YOUR OWN RISK
+; **You CAN safely turn this off for IIS, in fact, you MUST.**
+; cgi.force_redirect = 1
+
+; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
+; every request.
+; cgi.nph = 1
+
+; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
+; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
+; will look for to know it is OK to continue execution. Setting this variable MAY
+; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
+; cgi.redirect_status_env = ;
+
+; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's
+; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
+; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
+; this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting
+; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
+; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
+; cgi.fix_pathinfo=1
+
+; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
+; security tokens of the calling client. This allows IIS to define the
+; security context that the request runs under. mod_fastcgi under Apache
+; does not currently support this feature (03/17/2002)
+; Set to 1 if running under IIS. Default is zero.
+; fastcgi.impersonate = 1;
+
+; Disable logging through FastCGI connection
+; fastcgi.logging = 0
+
+; cgi.rfc2616_headers configuration option tells PHP what type of headers to
+; use when sending HTTP response code. If it's set 0 PHP sends Status: header that
+; is supported by Apache. When this option is set to 1 PHP will send
+; RFC2616 compliant header.
+; Default is zero.
+;cgi.rfc2616_headers = 0
+
+
+;;;;;;;;;;;;;;;;
+; File Uploads ;
+;;;;;;;;;;;;;;;;
+
+; Whether to allow HTTP file uploads.
+file_uploads = On
+
+; Temporary directory for HTTP uploaded files (will use system default if not
+; specified).
+;upload_tmp_dir =
+
+; Maximum allowed size for uploaded files.
+upload_max_filesize = 2M
+
+; Maximum number of files that can be uploaded via a single request
+max_file_uploads = 20
+
+
+;;;;;;;;;;;;;;;;;;
+; Fopen wrappers ;
+;;;;;;;;;;;;;;;;;;
+
+; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
+allow_url_fopen = On
+
+; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
+allow_url_include = Off
+
+; Define the anonymous ftp password (your email address)
+;from="john@doe.com"
+
+; Define the User-Agent string
+; user_agent="PHP"
+
+; Default timeout for socket based streams (seconds)
+default_socket_timeout = 60
+
+
+;;;;;;;;;;;;;;;;;;;;;;
+; Dynamic Extensions ;
+;;;;;;;;;;;;;;;;;;;;;;
+;
+; If you wish to have an extension loaded automatically, use the following
+; syntax:
+;
+; extension=modulename.extension
+;
+; For example, under UNIX:
+;
+; extension=msql.so
+;
+; Note that it should be the name of the module only; no directory information
+; needs to go here. Specify the location of the extension with the
+; extension_dir directive above.
+
+;extension=bcmath.so
+;extension=bz2.so
+;extension=calendar.so
+;extension=curl.so
+;extension=dba.so
+;extension=dbase.so
+;extension=exif.so
+;extension=ftp.so
+;extension=gd.so
+extension=gettext.so
+;extension=gmp.so
+;extension=iconv.so
+;extension=imap.so
+;extension=json.so
+;extension=ldap.so
+;extension=mcrypt.so
+;extension=mhash.so
+;extension=mime_magic.so
+;extension=mysql.so
+;extension=mysqli.so
+;extension=ncurses.so
+;extension=odbc.so
+;extension=openssl.so
+;extension=pdo.so
+;extension=pdo_mysql.so
+;extension=pdo_odbc.so
+;extension=pdo_pgsql.so
+;extension=pdo_sqlite.so
+;extension=pgsql.so
+;extension=posix.so
+;extension=pspell.so
+extension=session.so
+;extension=shmop.so
+;extension=snmp.so
+;extension=soap.so
+;extension=sockets.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
+extension=zlib.so
+
+
+;;;;;;;;;;;;;;;;;;;
+; Module Settings ;
+;;;;;;;;;;;;;;;;;;;
+
+[Date]
+; Defines the default timezone used by the date functions
+;date.timezone =
+
+;date.default_latitude = 31.7667
+;date.default_longitude = 35.2333
+
+;date.sunrise_zenith = 90.583333
+;date.sunset_zenith = 90.583333
+
+[filter]
+;filter.default = unsafe_raw
+;filter.default_flags =
+
+[iconv]
+;iconv.input_encoding = ISO-8859-1
+;iconv.internal_encoding = ISO-8859-1
+;iconv.output_encoding = ISO-8859-1
+
+[sqlite]
+;sqlite.assoc_case = 0
+
+[Pcre]
+;PCRE library backtracking limit.
+;pcre.backtrack_limit=100000
+
+;PCRE library recursion limit.
+;Please note that if you set this value to a high number you may consume all
+;the available process stack and eventually crash PHP (due to reaching the
+;stack size limit imposed by the Operating System).
+;pcre.recursion_limit=100000
+
+[Syslog]
+; Whether or not to define the various syslog variables (e.g. $LOG_PID,
+; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In
+; runtime, you can define these variables by calling define_syslog_variables().
+define_syslog_variables = Off
+
+[mail function]
+; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
+;sendmail_path =
+
+; Force the addition of the specified parameters to be passed as extra parameters
+; to the sendmail binary. These parameters will always replace the value of
+; the 5th parameter to mail(), even in safe mode.
+;mail.force_extra_parameters =
+
+[SQL]
+sql.safe_mode = Off
+
+[ODBC]
+;odbc.default_db = Not yet implemented
+;odbc.default_user = Not yet implemented
+;odbc.default_pw = Not yet implemented
+
+; Allow or prevent persistent links.
+odbc.allow_persistent = On
+
+; Check that a connection is still valid before reuse.
+odbc.check_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+odbc.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent). -1 means no limit.
+odbc.max_links = -1
+
+; Handling of LONG fields. Returns number of bytes to variables. 0 means
+; passthru.
+odbc.defaultlrl = 4096
+
+; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
+; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
+; of uodbc.defaultlrl and uodbc.defaultbinmode
+odbc.defaultbinmode = 1
+
+[MySQL]
+; Allow or prevent persistent links.
+mysql.allow_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+mysql.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent). -1 means no limit.
+mysql.max_links = -1
+
+; Default port number for mysql_connect(). If unset, mysql_connect() will use
+; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
+; compile-time value defined MYSQL_PORT (in that order).
+mysql.default_port =
+
+; Default socket name for local MySQL connects. If empty, uses the built-in
+; MySQL defaults.
+mysql.default_socket =
+
+; Default host for mysql_connect() (doesn't apply in safe mode).
+mysql.default_host =
+
+; Default user for mysql_connect() (doesn't apply in safe mode).
+mysql.default_user =
+
+; Default password for mysql_connect() (doesn't apply in safe mode).
+; Note that this is generally a *bad* idea to store passwords in this file.
+; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
+; and reveal this password! And of course, any users with read access to this
+; file will be able to reveal the password as well.
+mysql.default_password =
+
+; Maximum time (in seconds) for connect timeout. -1 means no limit
+mysql.connect_timeout = 60
+
+; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
+; SQL-Errors will be displayed.
+mysql.trace_mode = Off
+
+[MySQLi]
+
+; Maximum number of links. -1 means no limit.
+mysqli.max_links = -1
+
+; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
+; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
+; compile-time value defined MYSQL_PORT (in that order).
+mysqli.default_port = 3306
+
+; Default socket name for local MySQL connects. If empty, uses the built-in
+; MySQL defaults.
+mysqli.default_socket =
+
+; Default host for mysql_connect() (doesn't apply in safe mode).
+mysqli.default_host =
+
+; Default user for mysql_connect() (doesn't apply in safe mode).
+mysqli.default_user =
+
+; Default password for mysqli_connect() (doesn't apply in safe mode).
+; Note that this is generally a *bad* idea to store passwords in this file.
+; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
+; and reveal this password! And of course, any users with read access to this
+; file will be able to reveal the password as well.
+mysqli.default_pw =
+
+; Allow or prevent reconnect
+mysqli.reconnect = Off
+
+[mSQL]
+; Allow or prevent persistent links.
+msql.allow_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+msql.max_persistent = -1
+
+; Maximum number of links (persistent+non persistent). -1 means no limit.
+msql.max_links = -1
+
+[OCI8]
+; enables privileged connections using external credentials (OCI_SYSOPER, OCI_SYSDBA)
+;oci8.privileged_connect = Off
+
+; Connection: The maximum number of persistent OCI8 connections per
+; process. Using -1 means no limit.
+;oci8.max_persistent = -1
+
+; Connection: The maximum number of seconds a process is allowed to
+; maintain an idle persistent connection. Using -1 means idle
+; persistent connections will be maintained forever.
+;oci8.persistent_timeout = -1
+
+; Connection: The number of seconds that must pass before issuing a
+; ping during oci_pconnect() to check the connection validity. When
+; set to 0, each oci_pconnect() will cause a ping. Using -1 disables
+; pings completely.
+;oci8.ping_interval = 60
+
+; Tuning: This option enables statement caching, and specifies how
+; many statements to cache. Using 0 disables statement caching.
+;oci8.statement_cache_size = 20
+
+; Tuning: Enables statement prefetching and sets the default number of
+; rows that will be fetched automatically after statement execution.
+;oci8.default_prefetch = 10
+
+; Compatibility. Using On means oci_close() will not close
+; oci_connect() and oci_new_connect() connections.
+;oci8.old_oci_close_semantics = Off
+
+[PostgresSQL]
+; Allow or prevent persistent links.
+pgsql.allow_persistent = On
+
+; Detect broken persistent links always with pg_pconnect().
+; Auto reset feature requires a little overheads.
+pgsql.auto_reset_persistent = Off
+
+; Maximum number of persistent links. -1 means no limit.
+pgsql.max_persistent = -1
+
+; Maximum number of links (persistent+non persistent). -1 means no limit.
+pgsql.max_links = -1
+
+; Ignore PostgreSQL backends Notice message or not.
+; Notice message logging require a little overheads.
+pgsql.ignore_notice = 0
+
+; Log PostgreSQL backends Notice message or not.
+; Unless pgsql.ignore_notice=0, module cannot log notice message.
+pgsql.log_notice = 0
+
+[Sybase]
+; Allow or prevent persistent links.
+sybase.allow_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+sybase.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent). -1 means no limit.
+sybase.max_links = -1
+
+;sybase.interface_file = "/usr/sybase/interfaces"
+
+; Minimum error severity to display.
+sybase.min_error_severity = 10
+
+; Minimum message severity to display.
+sybase.min_message_severity = 10
+
+; Compatibility mode with old versions of PHP 3.0.
+; If on, this will cause PHP to automatically assign types to results according
+; to their Sybase type, instead of treating them all as strings. This
+; compatibility mode will probably not stay around forever, so try applying
+; whatever necessary changes to your code, and turn it off.
+sybase.compatability_mode = Off
+
+[Sybase-CT]
+; Allow or prevent persistent links.
+sybct.allow_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+sybct.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent). -1 means no limit.
+sybct.max_links = -1
+
+; Minimum server message severity to display.
+sybct.min_server_severity = 10
+
+; Minimum client message severity to display.
+sybct.min_client_severity = 10
+
+[bcmath]
+; Number of decimal digits for all bcmath functions.
+bcmath.scale = 0
+
+[browscap]
+;browscap = extra/browscap.ini
+
+[Informix]
+; Default host for ifx_connect() (doesn't apply in safe mode).
+ifx.default_host =
+
+; Default user for ifx_connect() (doesn't apply in safe mode).
+ifx.default_user =
+
+; Default password for ifx_connect() (doesn't apply in safe mode).
+ifx.default_password =
+
+; Allow or prevent persistent links.
+ifx.allow_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+ifx.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent). -1 means no limit.
+ifx.max_links = -1
+
+; If on, select statements return the contents of a text blob instead of its id.
+ifx.textasvarchar = 0
+
+; If on, select statements return the contents of a byte blob instead of its id.
+ifx.byteasvarchar = 0
+
+; Trailing blanks are stripped from fixed-length char columns. May help the
+; life of Informix SE users.
+ifx.charasvarchar = 0
+
+; If on, the contents of text and byte blobs are dumped to a file instead of
+; keeping them in memory.
+ifx.blobinfile = 0
+
+; NULL's are returned as empty strings, unless this is set to 1. In that case,
+; NULL's are returned as string 'NULL'.
+ifx.nullformat = 0
+
+[Session]
+; Handler used to store/retrieve data.
+session.save_handler = files
+
+; Argument passed to save_handler. In the case of files, this is the path
+; where data files are stored.
+;
+; As of PHP 4.0.1, you can define the path as:
+;
+; session.save_path = "N;/path"
+;
+; where N is an integer. Instead of storing all the session files in
+; /path, what this will do is use subdirectories N-levels deep, and
+; store the session data in those directories. This is useful if you
+; or your OS have problems with lots of files in one directory, and is
+; a more efficient layout for servers that handle lots of sessions.
+;
+; NOTE 1: PHP will not create this directory structure automatically.
+; You can use the script in the ext/session dir for that purpose.
+; NOTE 2: See the section on garbage collection below if you choose to
+; use subdirectories for session storage
+;
+; The file storage module creates files using mode 600 by default.
+; You can change that by using
+;
+; session.save_path = "N;MODE;/path"
+;
+; where MODE is the octal representation of the mode. Note that this
+; does not overwrite the process's umask.
+;session.save_path = "/tmp"
+
+; Whether to use cookies.
+session.use_cookies = 1
+
+;session.cookie_secure =
+
+; This option enables administrators to make their users invulnerable to
+; attacks which involve passing session ids in URLs; defaults to 0.
+; session.use_only_cookies = 1
+
+; Name of the session (used as cookie name).
+session.name = PHPSESSID
+
+; Initialize session on request startup.
+session.auto_start = 0
+
+; Lifetime in seconds of cookie or, if 0, until browser is restarted.
+session.cookie_lifetime = 0
+
+; The path for which the cookie is valid.
+session.cookie_path = /
+
+; The domain for which the cookie is valid.
+session.cookie_domain =
+
+; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
+session.cookie_httponly =
+
+; Handler used to serialize data. php is the standard serializer of PHP.
+session.serialize_handler = php
+
+; Define the probability that the 'garbage collection' process is started
+; on every session initialization.
+; The probability is calculated by using gc_probability/gc_divisor,
+; e.g. 1/100 means there is a 1% chance that the GC process starts
+; on each request.
+
+session.gc_probability = 1
+session.gc_divisor = 1000
+
+; After this number of seconds, stored data will be seen as 'garbage' and
+; cleaned up by the garbage collection process.
+session.gc_maxlifetime = 1440
+
+; NOTE: If you are using the subdirectory option for storing session files
+; (see session.save_path above), then garbage collection does *not*
+; happen automatically. You will need to do your own garbage
+; collection through a shell script, cron entry, or some other method.
+; For example, the following script would is the equivalent of
+; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
+; cd /path/to/sessions; find -cmin +24 | xargs rm
+
+; PHP 4.2 and less have an undocumented feature/bug that allows you to
+; to initialize a session variable in the global scope, albeit register_globals
+; is disabled. PHP 4.3 and later will warn you, if this feature is used.
+; You can disable the feature and the warning separately. At this time,
+; the warning is only displayed, if bug_compat_42 is enabled.
+
+session.bug_compat_42 = 0
+session.bug_compat_warn = 1
+
+; Check HTTP Referer to invalidate externally stored URLs containing ids.
+; HTTP_REFERER has to contain this substring for the session to be
+; considered as valid.
+session.referer_check =
+
+; How many bytes to read from the file.
+session.entropy_length = 0
+
+; Specified here to create the session id.
+session.entropy_file =
+
+;session.entropy_length = 16
+
+;session.entropy_file = /dev/urandom
+
+; Set to {nocache,private,public,} to determine HTTP caching aspects
+; or leave this empty to avoid sending anti-caching headers.
+session.cache_limiter = nocache
+
+; Document expires after n minutes.
+session.cache_expire = 180
+
+; trans sid support is disabled by default.
+; Use of trans sid may risk your users security.
+; Use this option with caution.
+; - User may send URL contains active session ID
+; to other person via. email/irc/etc.
+; - URL that contains active session ID may be stored
+; in publically accessible computer.
+; - User may access your site with the same session ID
+; always using URL stored in browser's history or bookmarks.
+session.use_trans_sid = 0
+
+; Select a hash function
+; 0: MD5 (128 bits)
+; 1: SHA-1 (160 bits)
+session.hash_function = 0
+
+; Define how many bits are stored in each character when converting
+; the binary hash data to something readable.
+;
+; 4 bits: 0-9, a-f
+; 5 bits: 0-9, a-v
+; 6 bits: 0-9, a-z, A-Z, "-", ","
+session.hash_bits_per_character = 5
+
+; The URL rewriter will look for URLs in a defined set of HTML tags.
+; form/fieldset are special; if you include them here, the rewriter will
+; add a hidden <input> field with the info which is otherwise appended
+; to URLs. If you want XHTML conformity, remove the form entry.
+; Note that all valid entries require a "=", even if no value follows.
+url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
+
+[MSSQL]
+; Allow or prevent persistent links.
+mssql.allow_persistent = On
+
+; Maximum number of persistent links. -1 means no limit.
+mssql.max_persistent = -1
+
+; Maximum number of links (persistent+non persistent). -1 means no limit.
+mssql.max_links = -1
+
+; Minimum error severity to display.
+mssql.min_error_severity = 10
+
+; Minimum message severity to display.
+mssql.min_message_severity = 10
+
+; Compatibility mode with old versions of PHP 3.0.
+mssql.compatability_mode = Off
+
+; Connect timeout
+;mssql.connect_timeout = 5
+
+; Query timeout
+;mssql.timeout = 60
+
+; Valid range 0 - 2147483647. Default = 4096.
+;mssql.textlimit = 4096
+
+; Valid range 0 - 2147483647. Default = 4096.
+;mssql.textsize = 4096
+
+; Limits the number of records in each batch. 0 = all records in one batch.
+;mssql.batchsize = 0
+
+; Specify how datetime and datetim4 columns are returned
+; On => Returns data converted to SQL server settings
+; Off => Returns values as YYYY-MM-DD hh:mm:ss
+;mssql.datetimeconvert = On
+
+; Use NT authentication when connecting to the server
+mssql.secure_connection = Off
+
+; Specify max number of processes. -1 = library default
+; msdlib defaults to 25
+; FreeTDS defaults to 4096
+;mssql.max_procs = -1
+
+; Specify client character set.
+; If empty or not set the client charset from freetds.comf is used
+; This is only used when compiled with FreeTDS
+;mssql.charset = "ISO-8859-1"
+
+[Assertion]
+; Assert(expr); active by default.
+;assert.active = On
+
+; Issue a PHP warning for each failed assertion.
+;assert.warning = On
+
+; Don't bail out by default.
+;assert.bail = Off
+
+; User-function to be called if an assertion fails.
+;assert.callback = 0
+
+; Eval the expression with current error_reporting(). Set to true if you want
+; error_reporting(0) around the eval().
+;assert.quiet_eval = 0
+
+[COM]
+; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
+;com.typelib_file =
+; allow Distributed-COM calls
+;com.allow_dcom = true
+; autoregister constants of a components typlib on com_load()
+;com.autoregister_typelib = true
+; register constants casesensitive
+;com.autoregister_casesensitive = false
+; show warnings on duplicate constant registrations
+;com.autoregister_verbose = true
+
+[mbstring]
+; language for internal character representation.
+;mbstring.language = Japanese
+
+; internal/script encoding.
+; Some encoding cannot work as internal encoding.
+; (e.g. SJIS, BIG5, ISO-2022-*)
+;mbstring.internal_encoding = EUC-JP
+
+; http input encoding.
+;mbstring.http_input = auto
+
+; http output encoding. mb_output_handler must be
+; registered as output buffer to function
+;mbstring.http_output = SJIS
+
+; enable automatic encoding translation according to
+; mbstring.internal_encoding setting. Input chars are
+; converted to internal encoding by setting this to On.
+; Note: Do _not_ use automatic encoding translation for
+; portable libs/applications.
+;mbstring.encoding_translation = Off
+
+; automatic encoding detection order.
+; auto means
+;mbstring.detect_order = auto
+
+; substitute_character used when character cannot be converted
+; one from another
+;mbstring.substitute_character = none;
+
+; overload(replace) single byte functions by mbstring functions.
+; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
+; etc. Possible values are 0,1,2,4 or combination of them.
+; For example, 7 for overload everything.
+; 0: No overload
+; 1: Overload mail() function
+; 2: Overload str*() functions
+; 4: Overload ereg*() functions
+;mbstring.func_overload = 0
+
+; enable strict encoding detection.
+;mbstring.strict_detection = Off
+
+[FrontBase]
+;fbsql.allow_persistent = On
+;fbsql.autocommit = On
+;fbsql.show_timestamp_decimals = Off
+;fbsql.default_database =
+;fbsql.default_database_password =
+;fbsql.default_host =
+;fbsql.default_password =
+;fbsql.default_user = "_SYSTEM"
+;fbsql.generate_warnings = Off
+;fbsql.max_connections = 128
+;fbsql.max_links = 128
+;fbsql.max_persistent = -1
+;fbsql.max_results = 128
+
+[gd]
+; Tell the jpeg decode to libjpeg warnings and try to create
+; a gd image. The warning will then be displayed as notices
+; disabled by default
+;gd.jpeg_ignore_warning = 0
+
+[exif]
+; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
+; With mbstring support this will automatically be converted into the encoding
+; given by corresponding encode setting. When empty mbstring.internal_encoding
+; is used. For the decode settings you can distinguish between motorola and
+; intel byte order. A decode setting cannot be empty.
+;exif.encode_unicode = ISO-8859-15
+;exif.decode_unicode_motorola = UCS-2BE
+;exif.decode_unicode_intel = UCS-2LE
+;exif.encode_jis =
+;exif.decode_jis_motorola = JIS
+;exif.decode_jis_intel = JIS
+
+[Tidy]
+; The path to a default tidy configuration file to use when using tidy
+;tidy.default_config = /usr/local/lib/php/default.tcfg
+
+; Should tidy clean and repair output automatically?
+; WARNING: Do not use this option if you are generating non-html content
+; such as dynamic images
+tidy.clean_output = Off
+
+[soap]
+; Enables or disables WSDL caching feature.
+soap.wsdl_cache_enabled=1
+; Sets the directory name where SOAP extension will put cache files.
+soap.wsdl_cache_dir="/tmp"
+; (time to live) Sets the number of second while cached file will be used
+; instead of original one.
+soap.wsdl_cache_ttl=86400
+
+; Local Variables:
+; tab-width: 4
+; End:
diff --git a/community/picard/PKGBUILD b/community/picard/PKGBUILD
new file mode 100644
index 000000000..d63ac162d
--- /dev/null
+++ b/community/picard/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 42161 2011-03-14 16:27:36Z mherych $
+# Maintainer Mateusz Herych <heniekk@gmail.com>
+# Contributor sysrq
+
+pkgname=picard
+pkgver=0.13
+pkgrel=1
+pkgdesc="Next generation MusicBrainz tagging application (QT4 interface)"
+arch=('i686' 'x86_64')
+url="http://musicbrainz.org/doc/PicardQt"
+license=('GPL')
+depends=('python2-qt' 'mutagen' 'libofa' 'ffmpeg')
+optdepends=('libdiscid: CD-Lookup feature')
+install=picard.install
+source=(http://ftp.musicbrainz.org/pub/musicbrainz/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('bc8dc9109de218b544204669119d10c5')
+
+build() {
+ cd $srcdir/picard-$pkgver
+ python2 setup.py config
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/picard/picard.install b/community/picard/picard.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/community/picard/picard.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/community/pidgin-fonomobutton/PKGBUILD b/community/pidgin-fonomobutton/PKGBUILD
new file mode 100644
index 000000000..ec1bbda62
--- /dev/null
+++ b/community/pidgin-fonomobutton/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 5894 2009-11-22 13:10:00Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=pidgin-fonomobutton
+pkgver=0.1.6
+pkgrel=1
+pkgdesc="Adds a video-chat button to the the conversation window"
+arch=('i686' 'x86_64')
+url="http://www.fonomo.com/software/pidgin.html"
+license=('GPL')
+depends=('pidgin')
+install=pidgin-fonomobutton.install
+source=(ftp://ftp.grokthis.net/pub/fonomo/${pkgname}-${pkgver}.tar.bz2
+ pidgin-fonomobutton-0.1.6-const.patch)
+md5sums=('020673634143b2e5a3c3ea6e76c4cdce'
+ '33c266437cd6f707e8f02eda3b485406')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/pidgin-fonomobutton-0.1.6-const.patch || return 1
+ make all || return 1
+ install -Dm755 fonomobutton.so "${pkgdir}/usr/lib/pidgin/fonomobutton.so"
+ install -Dm644 camera-fonomo.png "${pkgdir}/usr/share/icons/hicolor/22x22/devices/camera-fonomo.png"
+}
diff --git a/community/pidgin-fonomobutton/pidgin-fonomobutton-0.1.6-const.patch b/community/pidgin-fonomobutton/pidgin-fonomobutton-0.1.6-const.patch
new file mode 100644
index 000000000..e57648840
--- /dev/null
+++ b/community/pidgin-fonomobutton/pidgin-fonomobutton-0.1.6-const.patch
@@ -0,0 +1,11 @@
+--- a/fonomobutton.c 2008-10-20 01:06:40.000000000 -0700
++++ b/fonomobutton.c 2009-11-22 10:40:48.000000000 -0800
+@@ -88,7 +88,7 @@
+ {
+ GtkWidget *button, *image, *sep;
+ GtkIconInfo *icoinfo;
+- gchar *iconames[]={"camera-web", "camera-fonomo"};
++ const gchar *iconames[]={"camera-web", "camera-fonomo"};
+
+ button = gtk_button_new();
+ gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
diff --git a/community/pidgin-fonomobutton/pidgin-fonomobutton.install b/community/pidgin-fonomobutton/pidgin-fonomobutton.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/community/pidgin-fonomobutton/pidgin-fonomobutton.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/pidgin-libnotify/PKGBUILD b/community/pidgin-libnotify/PKGBUILD
new file mode 100644
index 000000000..cf9378755
--- /dev/null
+++ b/community/pidgin-libnotify/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+# Contributor: Hugo Doria <hugodoria@gmail.com>
+# Contributor pidgin-libnotify: 3ED <kas1987@o2.pl>
+
+pkgname=pidgin-libnotify
+pkgver=0.14
+pkgrel=4
+arch=('i686' 'x86_64')
+pkgdesc="pidgin plugin that enables popups when someone logs in or messages you."
+url="http://gaim-libnotify.sourceforge.net/"
+license=('GPL')
+depends=('pidgin' 'libnotify' 'perlxml' 'gettext' 'notification-daemon')
+makedepends=('libtool' 'intltool')
+replaces=('gaim-libnotify')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/gaim-libnotify/$pkgname-$pkgver.tar.gz language_fixes.patch
+ pidgin-libnotify-0.14-libnotify-0.7.patch)
+md5sums=('bfb5368b69c02d429b2b17c00a6673c0'
+ 'e9bdbb3c7faa61f062fc64277457b6c0'
+ '05538625f14d9f2c12adae5fa6a1fa26')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i "$srcdir/language_fixes.patch"
+ patch -p0 -i "$srcdir/pidgin-libnotify-0.14-libnotify-0.7.patch"
+ ./configure --prefix=/usr --disable-deprecated --disable-static
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/pidgin-libnotify/language_fixes.patch b/community/pidgin-libnotify/language_fixes.patch
new file mode 100644
index 000000000..6898b0483
--- /dev/null
+++ b/community/pidgin-libnotify/language_fixes.patch
@@ -0,0 +1,536 @@
+diff -Naur pidgin-libnotify-0.14/po/de.po pidgin-libnotify-0.14/po-new/de.po
+--- pidgin-libnotify-0.14/po/de.po 2010-03-09 18:20:47.365124617 +0100
++++ pidgin-libnotify-0.14/po-new/de.po 2010-03-09 18:02:40.715216935 +0100
+@@ -48,7 +48,7 @@
+ #: src/pidgin-libnotify.c:379
+ #, c-format
+ msgid "%s signed off"
+-msgstr "%s hat sich angemeldet"
++msgstr "%s hat sich abgemeldet"
+
+ #: src/pidgin-libnotify.c:406
+ #, c-format
+diff -Naur pidgin-libnotify-0.14/po/et.po pidgin-libnotify-0.14/po-new/et.po
+--- pidgin-libnotify-0.14/po/et.po 1970-01-01 01:00:00.000000000 +0100
++++ pidgin-libnotify-0.14/po-new/et.po 2010-03-09 18:14:58.831811232 +0100
+@@ -0,0 +1,80 @@
++# Pidgin-libnotify translation to Estonian language.
++# Copyright (C) 2009 The Gnome Translation Team.
++# This file is distributed under the same license as the pidgin-libnotify package.
++# Mattias Põldaru <mahfiaz gmail com>, 2009.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: Pdgin Libnotify\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2009-03-23 11:04+0200\n"
++"PO-Revision-Date: 2009-03-23 11:09+0300\n"
++"Last-Translator: Mattias Põldaru <mahfiaz gmail com>\n"
++"Language-Team: Gnome Estonian Translation Team <gnome-et@linux.ee>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural = n!=1;\n"
++"X-Poedit-Language: Estonian\n"
++
++#: ../src/pidgin-libnotify.c:57
++msgid "New messages"
++msgstr "Uutele sõnumitele"
++
++#: ../src/pidgin-libnotify.c:62
++msgid "Only new conversations"
++msgstr "Ainult uutele vestlustele"
++
++#: ../src/pidgin-libnotify.c:67
++msgid "Ignore events from blocked users"
++msgstr "Blokitud kasutajaid eiratakse"
++
++#: ../src/pidgin-libnotify.c:72
++msgid "Buddy signs on"
++msgstr "Sõber logib sisse"
++
++#: ../src/pidgin-libnotify.c:77
++msgid "Buddy signs off"
++msgstr "Sõber logib välja"
++
++#: ../src/pidgin-libnotify.c:82
++msgid "Only when available"
++msgstr "Ainult siis, kui olekuks on saadaval"
++
++#: ../src/pidgin-libnotify.c:320
++msgid "Show"
++msgstr "Näita"
++
++#: ../src/pidgin-libnotify.c:352
++#, c-format
++msgid "%s signed on"
++msgstr "%s logis sisse"
++
++#: ../src/pidgin-libnotify.c:384
++#, c-format
++msgid "%s signed off"
++msgstr "%s logis välja"
++
++#: ../src/pidgin-libnotify.c:411
++#, c-format
++msgid "%s says:"
++msgstr "%s ütleb:"
++
++#: ../src/pidgin-libnotify.c:577
++msgid "Libnotify Popups"
++msgstr "Libnotify hüpikaknad"
++
++#: ../src/pidgin-libnotify.c:578
++msgid "Displays popups via libnotify."
++msgstr "Kuvab hüpikaknaid kasutades libnotify'd."
++
++#: ../src/pidgin-libnotify.c:579
++msgid ""
++"Pidgin-libnotify:\n"
++"Displays popups via libnotify."
++msgstr ""
++"Pidgin-libnotify:\n"
++"Kuvab hüpikaknaid kasutades libnotify'd."
++
++
++
+diff -Naur pidgin-libnotify-0.14/po/hu.po pidgin-libnotify-0.14/po-new/hu.po
+--- pidgin-libnotify-0.14/po/hu.po 2007-06-30 20:53:22.000000000 +0200
++++ pidgin-libnotify-0.14/po-new/hu.po 2010-03-09 18:13:38.721834227 +0100
+@@ -1,8 +1,7 @@
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: \n"
+-"Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2007-06-30 19:58+0000\n"
++"Project-Id-Version: pidgin-libnotify\n"
++"POT-Creation-Date: \n"
+ "PO-Revision-Date: 2006-11-01 18:33+0100\n"
+ "Last-Translator: Peter Avramucz <muczy@freestart.hu>\n"
+ "Language-Team: \n"
+@@ -11,58 +10,58 @@
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Poedit-Country: HUNGARY\n"
+
+-#: src/pidgin-libnotify.c:57
++#: src/gaim-libnotify.c:57
+ msgid "New messages"
+ msgstr "Új üzenetek"
+
+-#: src/pidgin-libnotify.c:62
++#: src/gaim-libnotify.c:62
+ msgid "Only new conversations"
+ msgstr "Csak az új beszélgetéseknél"
+
+-#: src/pidgin-libnotify.c:67
++#: src/gaim-libnotify.c:67
+ msgid "Ignore events from blocked users"
+ msgstr "Hagyja figyelmen kívűl a blokkolt felhasználókat"
+
+-#: src/pidgin-libnotify.c:72
++#: src/gaim-libnotify.c:72
+ msgid "Buddy signs on"
+ msgstr "Partner bejelentkezett"
+
+-#: src/pidgin-libnotify.c:77
++#: src/gaim-libnotify.c:77
+ msgid "Buddy signs off"
+ msgstr "Partner kijelentkezett"
+
+-#: src/pidgin-libnotify.c:315
++#: src/gaim-libnotify.c:295
+ msgid "Show"
+ msgstr "Mutasd"
+
+-#: src/pidgin-libnotify.c:347
++#: src/gaim-libnotify.c:324
+ #, c-format
+ msgid "%s signed on"
+ msgstr "%s bejelentkezett"
+
+-#: src/pidgin-libnotify.c:379
++#: src/gaim-libnotify.c:353
+ #, c-format
+ msgid "%s signed off"
+ msgstr "%s kijelentkezett"
+
+-#: src/pidgin-libnotify.c:406
++#: src/gaim-libnotify.c:380
+ #, c-format
+ msgid "%s says:"
+ msgstr "%s mondja:"
+
+-#: src/pidgin-libnotify.c:572
++#: src/gaim-libnotify.c:543
+ msgid "Libnotify Popups"
+ msgstr "Libnotify buborékok"
+
+-#: src/pidgin-libnotify.c:573
++#: src/gaim-libnotify.c:544
+ msgid "Displays popups via libnotify."
+ msgstr "Mutassa a buborékokat libnotify segítségével."
+
+-#: src/pidgin-libnotify.c:574
+-#, fuzzy
++#: src/gaim-libnotify.c:545
+ msgid ""
+-"Pidgin-libnotify:\n"
++"Gaim-libnotify:\n"
+ "Displays popups via libnotify."
+ msgstr ""
+ "Gaim-libnotify:\n"
+ "Mutassa a buborékokat libnotify segítségével."
++
+diff -Naur pidgin-libnotify-0.14/po/it.po pidgin-libnotify-0.14/po-new/it.po
+--- pidgin-libnotify-0.14/po/it.po 2007-06-30 20:53:22.000000000 +0200
++++ pidgin-libnotify-0.14/po-new/it.po 2010-03-09 18:03:34.565229551 +0100
+@@ -1,79 +1,78 @@
+ # Italian (it) translation of gaim-libnotify.
+-# Copyright (C) 2006, Marco Cabizza <marco87@gmail.com>
+-#
+ # This file is distributed under the same license as gaim-libnotify.
++# Copyright (C) 2006, Marco Cabizza <marco87@gmail.com>
++# Copyright (C) 2009, The Free Software Foundation, Inc.
++# Gruppo traduzione italiano di Ubuntu, <gruppo-traduzione@ubuntu-it.org>
++# Milo Casagrande <milo@ubuntu.com>
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: gaim-libnotify\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2007-06-30 19:58+0000\n"
+-"PO-Revision-Date: 2007-05-25 12:30-0300\n"
+-"Last-Translator: Marco Cabizza <marco87@gmail.com>\n"
++"POT-Creation-Date: 2009-09-29 16:23+0000\n"
++"PO-Revision-Date: 2009-11-04 15:15+0000\n"
++"Last-Translator: Milo Casagrande <milo@casagrande.name>\n"
+ "Language-Team: \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Plural-Forms: nplurals=2; plural=n != 1;\n"
++"X-Launchpad-Export-Date: 2009-11-11 17:20+0000\n"
++"X-Generator: Launchpad (build Unknown)\n"
+
+-#: src/pidgin-libnotify.c:57
+-#, fuzzy
++#: ../src/pidgin-libnotify.c:95
+ msgid "New messages"
+ msgstr "Nuovi messaggi"
+
+-#: src/pidgin-libnotify.c:62
++#: ../src/pidgin-libnotify.c:100
+ msgid "Only new conversations"
+-msgstr "Solo le nuove finestre"
++msgstr "Solo nuove conversazioni"
+
+-#: src/pidgin-libnotify.c:67
++#: ../src/pidgin-libnotify.c:105
+ msgid "Ignore events from blocked users"
+-msgstr "Ignora gli utenti bloccati"
++msgstr "Ignora eventi da utenti bloccati"
+
+-#: src/pidgin-libnotify.c:72
+-#, fuzzy
++#: ../src/pidgin-libnotify.c:110
+ msgid "Buddy signs on"
+-msgstr "%s entra"
++msgstr "Il conoscente si connette"
+
+-#: src/pidgin-libnotify.c:77
+-#, fuzzy
++#: ../src/pidgin-libnotify.c:115
+ msgid "Buddy signs off"
+-msgstr "%s entra"
++msgstr "Il conoscente si disconnette"
+
+-#: src/pidgin-libnotify.c:315
++#: ../src/pidgin-libnotify.c:120
++msgid "Only when available"
++msgstr "Solo quando disponibile"
++
++#: ../src/pidgin-libnotify.c:125
++msgid "Names to remove notifications for"
++msgstr "Nomi per cui rimuovere le notifiche"
++
++#: ../src/pidgin-libnotify.c:505
+ msgid "Show"
+ msgstr "Mostra"
+
+-#: src/pidgin-libnotify.c:347
+-#, c-format
+-msgid "%s signed on"
+-msgstr "%s è entrato"
+-
+-#: src/pidgin-libnotify.c:379
+-#, fuzzy, c-format
+-msgid "%s signed off"
+-msgstr "%s è entrato"
+-
+-#: src/pidgin-libnotify.c:406
+-#, c-format
+-msgid "%s says:"
+-msgstr "%s dice:"
++#: ../src/pidgin-libnotify.c:538
++msgid "is online"
++msgstr "è in linea"
++
++#: ../src/pidgin-libnotify.c:567
++msgid "is offline"
++msgstr "non è in linea"
+
+-#: src/pidgin-libnotify.c:572
++#: ../src/pidgin-libnotify.c:1399
+ msgid "Libnotify Popups"
+-msgstr "Popups di libnotify"
++msgstr "Notifiche di libnotify"
+
+-#: src/pidgin-libnotify.c:573
++#: ../src/pidgin-libnotify.c:1400
+ msgid "Displays popups via libnotify."
+-msgstr "Mostra avvisi mediante libnotify."
++msgstr "Visualizza le notifiche mediante libnotify."
+
+-#: src/pidgin-libnotify.c:574
+-#, fuzzy
++#: ../src/pidgin-libnotify.c:1401
+ msgid ""
+ "Pidgin-libnotify:\n"
+ "Displays popups via libnotify."
+ msgstr ""
+-"Gaim-libnotify:\n"
+-"Mostra avvisi mediante libnotify."
++"Pidgin-libnotify:\n"
++"Visualizza le notifiche mediante libnotify."
+
+-#~ msgid "Libnotify Interface"
+-#~ msgstr "Interfaccia libnotify"
++
+diff -Naur pidgin-libnotify-0.14/po/nl.po pidgin-libnotify-0.14/po-new/nl.po
+--- pidgin-libnotify-0.14/po/nl.po 2007-06-30 20:53:22.000000000 +0200
++++ pidgin-libnotify-0.14/po-new/nl.po 2010-03-09 18:17:48.188461774 +0100
+@@ -31,12 +31,12 @@
+
+ #: src/pidgin-libnotify.c:72
+ msgid "Buddy signs on"
+-msgstr "Contactpersoon heeft zich aangemeld"
++msgstr "Contactpersoon meldt zich aan"
+
+ #: src/pidgin-libnotify.c:77
+ #, fuzzy
+ msgid "Buddy signs off"
+-msgstr "Contactpersoon heeft zich aangemeld"
++msgstr "Contactpersoon meldt zich af"
+
+ #: src/pidgin-libnotify.c:315
+ msgid "Show"
+@@ -50,7 +50,7 @@
+ #: src/pidgin-libnotify.c:379
+ #, fuzzy, c-format
+ msgid "%s signed off"
+-msgstr "%s heeft zich aangemeld"
++msgstr "%s heeft zich afgemeld"
+
+ #: src/pidgin-libnotify.c:406
+ #, c-format
+@@ -59,7 +59,7 @@
+
+ #: src/pidgin-libnotify.c:572
+ msgid "Libnotify Popups"
+-msgstr ""
++msgstr "Libnotify Popups"
+
+ #: src/pidgin-libnotify.c:573
+ msgid "Displays popups via libnotify."
+@@ -71,7 +71,7 @@
+ "Pidgin-libnotify:\n"
+ "Displays popups via libnotify."
+ msgstr ""
+-"Gaim-libnotify:\n"
++"Pidgin-libnotify:\n"
+ "Toont popups via libnotify."
+
+ #~ msgid "Libnotify Interface"
+diff -Naur pidgin-libnotify-0.14/po/pl.po pidgin-libnotify-0.14/po-new/pl.po
+--- pidgin-libnotify-0.14/po/pl.po 2008-12-14 18:03:42.000000000 +0100
++++ pidgin-libnotify-0.14/po-new/pl.po 2010-03-09 18:09:47.555190702 +0100
+@@ -1,22 +1,18 @@
+-# Polish (pl) translation of gaim-libnotify
+-# Copyright (C) 2006, Krzysztof Rosiński <kr@post.pl>
+-# This file is distributed under the same license as the gaim-libnotify package.
++# translation of pl.po to Polish
+ # Krzysztof Rosiński <kr@post.pl>, 2006.
+ # Piotr Drąg <raven@pmail.pl>, 2007.
+ #
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: gaim-libnotify\n"
++"Project-Id-Version: pl\n"
+ "Report-Msgid-Bugs-To: \n"
+ "POT-Creation-Date: 2007-06-30 19:58+0000\n"
+-"PO-Revision-Date: 2006-03-13 19:39+ZONE\n"
++"PO-Revision-Date: 2007-06-09 19:00+0200\n"
+ "Last-Translator: Piotr Drąg <raven@pmail.pl>\n"
+ "Language-Team: Polish <pl@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+-"|| n%100>=20) ? 1 : 2);\n"
+
+ #: src/pidgin-libnotify.c:57
+ msgid "New messages"
+@@ -73,3 +69,5 @@
+ "Pidgin-libnotify:\n"
+ "Wyświetla powiadomienia przez libnotify."
+
++
++
+diff -Naur pidgin-libnotify-0.14/po/ro.po pidgin-libnotify-0.14/po-new/ro.po
+--- pidgin-libnotify-0.14/po/ro.po 2007-06-30 20:53:22.000000000 +0200
++++ pidgin-libnotify-0.14/po-new/ro.po 2010-03-09 18:14:01.732650658 +0100
+@@ -8,69 +8,66 @@
+ msgstr ""
+ "Project-Id-Version: ro\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2007-06-30 19:58+0000\n"
+-"PO-Revision-Date: 2007-01-25 22:00+0200\n"
+-"Last-Translator: Ion Alin <alyn3d@gmail.com>\n"
+-"Language-Team: <ro@li.org>\n"
++"POT-Creation-Date: 2009-04-24 10:15+0000\n"
++"PO-Revision-Date: 2009-09-10 13:40+0000\n"
++"Last-Translator: Adi Roiban <adi@roiban.ro>\n"
++"Language-Team: <ro@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+-"X-Generator: KBabel 1.11.4\n"
+-"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+-"20)) ? 1 : 2;\n"
++"X-Launchpad-Export-Date: 2009-09-10 16:28+0000\n"
++"X-Generator: Launchpad (build Unknown)\n"
+
+-#: src/pidgin-libnotify.c:57
++#: ../src/pidgin-libnotify.c:75
+ msgid "New messages"
+ msgstr "Mesaje noi"
+
+-#: src/pidgin-libnotify.c:62
++#: ../src/pidgin-libnotify.c:80
+ msgid "Only new conversations"
+-msgstr "Numai conversatii noi"
++msgstr "Doar conversațiile noi"
+
+-#: src/pidgin-libnotify.c:67
++#: ../src/pidgin-libnotify.c:85
+ msgid "Ignore events from blocked users"
+-msgstr "Ignora evenimentele de la utilizatorii blocati"
++msgstr "Ignoră evenimentele de la utilizatorii blocați"
+
+-#: src/pidgin-libnotify.c:72
++#: ../src/pidgin-libnotify.c:90
+ msgid "Buddy signs on"
+-msgstr "Userul este online"
++msgstr "Contact conectat"
+
+-#: src/pidgin-libnotify.c:77
++#: ../src/pidgin-libnotify.c:95
+ msgid "Buddy signs off"
+-msgstr "Userul este offline"
++msgstr "Contact deconectat"
+
+-#: src/pidgin-libnotify.c:315
++#: ../src/pidgin-libnotify.c:100
++msgid "Only when available"
++msgstr "Doar când sunt disponibil(ă)"
++
++#: ../src/pidgin-libnotify.c:454
+ msgid "Show"
+-msgstr "Arata"
++msgstr "Afișează"
++
++#: ../src/pidgin-libnotify.c:487
++msgid "is online"
++msgstr "s-a conectat"
+
+-#: src/pidgin-libnotify.c:347
+-#, c-format
+-msgid "%s signed on"
+-msgstr "%s este online"
+-
+-#: src/pidgin-libnotify.c:379
+-#, c-format
+-msgid "%s signed off"
+-msgstr "%s este offline"
+-
+-#: src/pidgin-libnotify.c:406
+-#, c-format
+-msgid "%s says:"
+-msgstr "%s spune:"
++#: ../src/pidgin-libnotify.c:516
++msgid "is offline"
++msgstr "s-a deconectat"
+
+-#: src/pidgin-libnotify.c:572
++#: ../src/pidgin-libnotify.c:1200
+ msgid "Libnotify Popups"
+-msgstr "Pop-up Libnotify"
++msgstr "Notificări libnotify"
+
+-#: src/pidgin-libnotify.c:573
++#: ../src/pidgin-libnotify.c:1201
+ msgid "Displays popups via libnotify."
+-msgstr "Arata popup-uri via libnotify."
++msgstr "Afișează notificări via libnotify."
+
+-#: src/pidgin-libnotify.c:574
+-#, fuzzy
++#: ../src/pidgin-libnotify.c:1202
+ msgid ""
+ "Pidgin-libnotify:\n"
+ "Displays popups via libnotify."
+ msgstr ""
+-"Gaim-libnotify:\n"
+-"Arata popup-uri via libnotify."
++"Pidgin-libnotify:\n"
++"Afișează notificări via libnotify."
++
++
+diff -Naur pidgin-libnotify-0.14/po/ru.po pidgin-libnotify-0.14/po-new/ru.po
+--- pidgin-libnotify-0.14/po/ru.po 2008-12-14 18:09:59.000000000 +0100
++++ pidgin-libnotify-0.14/po-new/ru.po 2010-03-09 18:08:58.941861562 +0100
+@@ -7,11 +7,11 @@
+ msgstr ""
+ "Project-Id-Version: gaim-libnotify\n"
+ "Report-Msgid-Bugs-To: \n"
+-"POT-Creation-Date: 2007-06-30 19:58+0000\n"
++"POT-Creation-Date: 2009-08-07 18:45+0000\n"
+ "PO-Revision-Date: 2007-11-29 12:30-0300\n"
+ "Last-Translator: Dmitry Egorkin <egorkin@gmail.com>\n"
+ "Language-Team: Russian\n"
+-"MIME-Version: 1.0\n"
++"MIME-Version: 1.1\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
+@@ -43,12 +43,12 @@
+ #: src/pidgin-libnotify.c:347
+ #, c-format
+ msgid "%s signed on"
+-msgstr "%s пришёл"
++msgstr "%s в сети"
+
+ #: src/pidgin-libnotify.c:379
+ #, c-format
+ msgid "%s signed off"
+-msgstr "%s ушёл"
++msgstr "%s не в сети"
+
+ #: src/pidgin-libnotify.c:406
+ #, c-format
+@@ -73,3 +73,5 @@
+
+ #~ msgid "Libnotify Interface"
+ #~ msgstr "Настройки libnotify"
++
++
diff --git a/community/pidgin-libnotify/pidgin-libnotify-0.14-libnotify-0.7.patch b/community/pidgin-libnotify/pidgin-libnotify-0.14-libnotify-0.7.patch
new file mode 100644
index 000000000..40e6c02b8
--- /dev/null
+++ b/community/pidgin-libnotify/pidgin-libnotify-0.14-libnotify-0.7.patch
@@ -0,0 +1,18 @@
+--- src/pidgin-libnotify.c
++++ src/pidgin-libnotify.c
+@@ -286,7 +286,15 @@
+ g_free (tr_body);
+ return;
+ }
++#ifdef NOTIFY_CHECK_VERSION
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ notification = notify_notification_new (title, tr_body, NULL);
++#else
+ notification = notify_notification_new (title, tr_body, NULL, NULL);
++#endif
++#else
++ notification = notify_notification_new (title, tr_body, NULL, NULL);
++#endif
+ purple_debug_info (PLUGIN_ID, "notify(), new: "
+ "title: '%s', body: '%s', buddy: '%s'\n",
+ title, tr_body, best_name (buddy));
diff --git a/community/pidgin-musictracker/PKGBUILD b/community/pidgin-musictracker/PKGBUILD
new file mode 100644
index 000000000..591871645
--- /dev/null
+++ b/community/pidgin-musictracker/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35447 2010-12-20 16:56:30Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor : Ionut Biru <ionut@archlinux.ro>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=pidgin-musictracker
+pkgver=0.4.22
+pkgrel=1
+pkgdesc="A plugin for Pidgin which displays the music track currently playing."
+url='http://code.google.com/p/pidgin-musictracker'
+license=('GPL2')
+depends=('pidgin' 'gtk2' 'dbus-glib')
+makedepends=('xmms2')
+arch=('i686' 'x86_64')
+source=(http://pidgin-musictracker.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+options=('!libtool')
+md5sums=('8d7225c705484db86b864cab5a536423')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/pidgin-otr/PKGBUILD b/community/pidgin-otr/PKGBUILD
new file mode 100644
index 000000000..a395b5022
--- /dev/null
+++ b/community/pidgin-otr/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 17934 2010-05-27 08:06:13Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Bug <Bug2000@gmail.com>
+# Contributor: Marcel Wysocki <maci@satgnu.net>
+
+pkgname=pidgin-otr
+pkgver=3.2.0
+pkgrel=2
+pkgdesc="Off-the-Record Messaging plugin for Pidgin"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.cypherpunks.ca/otr/"
+depends=('libotr>=3.2.0' 'pidgin' 'perlxml')
+source=("http://www.cypherpunks.ca/otr/$pkgname-$pkgver.tar.gz")
+md5sums=('8af70b654b7d7c5a5b7785699ff562f9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/pigeonhole/PKGBUILD b/community/pigeonhole/PKGBUILD
new file mode 100644
index 000000000..79b524035
--- /dev/null
+++ b/community/pigeonhole/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: Sebastian Köhler <sebkoehler@whoami.org.uk>
+
+# This must be built against the version of dovecot being used,
+# else mail delivery will fail.
+# Specify the version of dovecot to be used here:
+_dcpkgver=2.0.11
+# Make sure to bump pkgrel if changing this.
+
+pkgname=pigeonhole
+pkgver=0.2.2
+pkgrel=3
+pkgdesc="Fully rewritten Sieve implementation for Dovecot v2.0"
+arch=('i686' 'x86_64')
+url="http://pigeonhole.dovecot.org/"
+license=('LGPL')
+depends=('dovecot='$_dcpkgver)
+makedepends=()
+conflicts=('dovecot-sieve' 'pigeonhole-hg')
+source=("http://www.rename-it.nl/dovecot/2.0/dovecot-2.0-$pkgname-$pkgver.tar.gz"
+ "dovecot.conf")
+md5sums=('23b9be534c62257a0d049b1370f11a99'
+ '564b771c339f69a477c06babf53e11c2')
+options=('!libtool')
+
+build() {
+ cd "$srcdir/dovecot-2.0-$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --with-dovecot=/usr/lib/dovecot
+ make
+}
+
+package() {
+ cd "$srcdir/dovecot-2.0-$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -m 644 -D "$srcdir/dovecot.conf" "$pkgdir/etc/ld.so.conf.d/dovecot.conf"
+}
+
diff --git a/community/pigeonhole/dovecot.conf b/community/pigeonhole/dovecot.conf
new file mode 100644
index 000000000..061a50c90
--- /dev/null
+++ b/community/pigeonhole/dovecot.conf
@@ -0,0 +1 @@
+/usr/lib/dovecot
diff --git a/community/pinfo/ChangeLog b/community/pinfo/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/pinfo/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/pinfo/PKGBUILD b/community/pinfo/PKGBUILD
new file mode 100644
index 000000000..9e0791384
--- /dev/null
+++ b/community/pinfo/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 38757 2011-01-31 16:57:31Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=pinfo
+pkgver=0.6.10
+pkgrel=1
+pkgdesc="A hypertext info file viewer"
+arch=('i686' 'x86_64')
+url="http://pinfo.alioth.debian.org/"
+license=('GPL')
+depends=('ncurses' 'readline')
+source=(https://alioth.debian.org/frs/download.php/3351/$pkgname-$pkgver.tar.bz2)
+md5sums=('fe3d3da50371b1773dfe29bf870dbc5b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ unset LDFLAGS
+ [ -x configure ] || ./autogen.sh
+ [ -f Makefile ] || ./configure --prefix=/usr --sysconfdir=/etc --enable-cursor \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+ make DESTDIR=$pkgdir install
+ rm -f $pkgdir/usr/share/info/dir
+}
diff --git a/community/pingus/ChangeLog b/community/pingus/ChangeLog
new file mode 100644
index 000000000..c182f92eb
--- /dev/null
+++ b/community/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/pingus/PKGBUILD b/community/pingus/PKGBUILD
new file mode 100644
index 000000000..a0458f18a
--- /dev/null
+++ b/community/pingus/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 40956 2011-03-02 21:08:01Z lcarlier $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=pingus
+pkgver=0.7.3
+pkgrel=3
+pkgdesc="A Lemmings clone, i.e. a level-based puzzle game."
+arch=('i686' 'x86_64')
+url="http://pingus.seul.org"
+license=('GPL')
+depends=('gcc-libs' 'sdl_image' 'sdl_mixer' 'boost-libs>=1.46')
+makedepends=('scons' 'boost>=1.46')
+source=(http://pingus.seul.org/files/${pkgname}-${pkgver}.tar.bz2 pingus.desktop)
+md5sums=('7d1a0b0d658cc46dd09d6274f39acc7d'
+ 'b94efaa6e2de959de7fdb50cfc7dbdea')
+sha1sums=('ca7fe5cea65fb3392d1e81056a879831925502f2'
+ 'f35649f3b0b2bfcb01ce75085cf719dcaa609a54')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ scons prefix=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./install.sh "${pkgdir}/usr"
+ install -D -m644 "${srcdir}/pingus.desktop" "${pkgdir}/usr/share/applications/pingus.desktop"
+}
diff --git a/community/pingus/pingus.desktop b/community/pingus/pingus.desktop
new file mode 100644
index 000000000..158eaa820
--- /dev/null
+++ b/community/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/data/images/core/editor/actions.png
diff --git a/community/pinot/PKGBUILD b/community/pinot/PKGBUILD
new file mode 100644
index 000000000..2a139fcba
--- /dev/null
+++ b/community/pinot/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 40072 2011-02-19 22:02:17Z ebelanger $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pinot
+pkgver=0.97
+pkgrel=1
+pkgdesc='Personal search and metasearch tool.'
+arch=('i686' 'x86_64')
+url='http://pinot.berlios.de/'
+license=('GPL')
+depends=('gtkmm' 'xapian-core' 'libtextcat' 'sqlite3' 'libxml++' 'curl'
+ 'gmime' 'dbus-glib' 'shared-mime-info' 'libexif' 'taglib'
+ 'hicolor-icon-theme' 'cairo')
+makedepends=('boost' 'desktop-file-utils')
+optdepends=('unzip: ZIP files extraction'
+ 'poppler: PDF to text conversion'
+ 'catdvi: DVI to text conversion'
+ 'djvulibre: DjVu text extraction'
+ 'unrtf: RTF to HTML conversion'
+ 'antiword: MS Word to text conversion'
+ 'catdoc: XLS and PPT to text conversion'
+ 'deskbar-applet: Pinot Deskbar-Applet module')
+install='pinot.install'
+source=("http://download.berlios.de/pinot/pinot-${pkgver}.tar.gz")
+md5sums=('9e16fe25f021c15f28c9382a008aca8d')
+sha1sums=('680d18e8777545cbde6a117629f89630a94a6bc8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|/usr/share/libtextcat/|/usr/share/libtextcat/LM/|' textcat_conf.txt
+ sed -i -e "s|.*russian$|/usr/share/libtextcat/LM/russian-iso8859_5.lm russian-iso8859_5\n\
+/usr/share/libtextcat/LM/russian-koi8_r.lm russian-koi8_r\n\
+/usr/share/libtextcat/LM/russian-windows1251.lm russian-windows1251|" textcat_conf.txt
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ # Remove Deskbar-Applet handler
+ rm -rf "${pkgdir}/usr/lib/deskbar-applet/handlers"
+}
diff --git a/community/pinot/pinot.install b/community/pinot/pinot.install
new file mode 100644
index 000000000..55ab40426
--- /dev/null
+++ b/community/pinot/pinot.install
@@ -0,0 +1,15 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ echo "Starting with 0.63, the service is auto-started. "
+ echo "The file that enables this is located at "
+ echo "/etc/xdg/autostart/pinot-dbus-daemon.desktop"
+ echo "Delete this file if you don't want the auto-start."
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/pkgtools/PKGBUILD b/community/pkgtools/PKGBUILD
new file mode 100644
index 000000000..9328188ea
--- /dev/null
+++ b/community/pkgtools/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Daenyth <Daenyth+Arch AT gmail DOT com>
+# Contributor: Daenyth <Daenyth+Arch AT gmail DOT com>
+pkgname=pkgtools
+pkgver=22
+pkgrel=1
+pkgdesc="A collection of scripts for Arch Linux packages"
+arch=('i686' 'x86_64')
+url="http://bbs.archlinux.org/viewtopic.php?pid=384196"
+license=('GPL')
+source=(http://github.com/Daenyth/pkgtools/tarball/v$pkgver)
+backup=('etc/pkgtools/newpkg.conf' 'etc/pkgtools/pkgfile.conf' 'etc/pkgtools/spec2arch.conf')
+install=pkgtools.install
+provides=(newpkg pkgfile)
+depends=('bash>=4' 'python2' 'pcre' 'libarchive')
+optdepends=('cron: For pkgfile --update entry')
+md5sums=('37430c4fa13b4cf4afb233100706f5ae')
+
+build() {
+ cd "$srcdir/Daenyth-$pkgname"-*
+
+ make
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/pkgtools/pkgtools.install b/community/pkgtools/pkgtools.install
new file mode 100644
index 000000000..2fee961fa
--- /dev/null
+++ b/community/pkgtools/pkgtools.install
@@ -0,0 +1,62 @@
+_MSG_UPDATE=" - Make sure to run pkgfile --update before use"
+_MSG_CRON=" - An entry has been placed in /etc/cron.daily to run pkgfile --update
+ If you do not want this functionality, set UPDATE_CRON=0 in /etc/pkgtools/pkgfile.conf"
+_MSG_HOOK=" - pkgfile includes a \"command not found\" hook for both zsh and bash.
+ This will automatically run pkgfile whenever you run
+ a command which the shell cannot find. If you want
+ this functionality, set CMD_SEARCH_ENABLED to 1 in
+ /etc/pkgtools/pkgfile.conf (or per-user by copying
+ that file to \${XDG_CONFIG_HOME}/pkgtools/pkgfile.conf), then
+ in your current shell run:
+ source /etc/profile"
+
+is_update_from() {
+ res="`vercmp $1 $2`"
+ case $res in
+ '-1'|'0') return 0;;
+ '1') return 1;;
+ esac
+}
+
+## arg 1: the new package version
+post_install() {
+ echo "$_MSG_UPDATE"
+ echo "$_MSG_HOOK"
+ echo "$_MSG_CRON"
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ if is_update_from $2 11-1; then
+ echo " - All bugs related to pkgfile -b should be fixed in this update."
+ fi
+ if is_update_from $2 12-1; then
+ echo " - NOTE: pkgtools' \"command not found\" hook configuration has changed."
+ echo " Please remove any old symlinks relating to it."
+ echo "$_MSG_HOOK"
+ fi
+ if is_update_from $2 15-1; then
+ echo " - pkgtools now uses \$XDG_CONFIG_HOME for all user-specific configuration."
+ echo " run «mv ~/.pkgtools \"\$XDG_CONFIG_HOME/pkgtools\"»"
+ fi
+ if is_update_from $2 18-1; then
+ echo " - newpkg has been rewritten to be completely modular. See here for more info: http://github.com/Daenyth/pkgtools/commit/2d37197"
+ fi
+ if is_update_from $2 19-1; then
+ echo " ! This version contains an important bugfix for pkgfile. Previously, package updates would cause the pkgfile --update cron job to"
+ echo " regain +x mode, causing updates to run even when manually disabled. This version disables the cronjob by setting UPDATE_CRON=0"
+ echo " in /etc/pkgtools/pkgfile.conf"
+ echo " - This version of pkgtools contains a new tool called 'maintpkg'"
+ echo " It sets the Maintainer in a PKGBUILD to your PACKAGER while preserving old Contributors"
+ fi
+}
+
+## arg 1: the old package version
+post_remove() {
+ cat << _EOM
+ - You may want to clean /var/cache/pkgtools/lists
+_EOM
+}
+
+# vim:set ts=2 sw=2 et filetype=sh:
diff --git a/community/plan9port/PKGBUILD b/community/plan9port/PKGBUILD
new file mode 100644
index 000000000..590a0d6cc
--- /dev/null
+++ b/community/plan9port/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 33385 2010-11-24 11:34:08Z cbrannon $
+# Contributor: phrakture <aaronmgriffin--gmail--com>
+# Contributor: Fazlul Shahriar
+# Contributor: Chris Brannon <cmbrannon79@gmail.com>
+pkgname=plan9port
+pkgver=20101110
+pkgrel=1
+pkgdesc="A port of many programs from Plan 9 to Unix-like operating systems"
+arch=('i686' 'x86_64')
+url="http://swtch.com/plan9port/"
+license=('custom')
+depends=(xorg-server sh fuse)
+optdepends=('python2: for the codereview script')
+install=plan9.install
+source=(http://swtch.com/$pkgname/$pkgname-$pkgver.tgz plan9.sh)
+
+build()
+{
+ install -Dm755 "$srcdir/plan9.sh" "$pkgdir/etc/profile.d/plan9.sh" || return 1
+
+ install -dm755 "$pkgdir/opt" "$pkgdir/usr/share/doc/$pkgname" || return 1
+ mv "$srcdir/plan9" "$pkgdir/opt"
+
+ cd "$pkgdir/opt/plan9"
+ ./INSTALL || return 1
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" || return 1
+
+ # Don't need these under /opt/plan9.
+ rm -rf .hg/
+ rm -f .hgignore .hgtags
+ find . -name '.cvsignore' -print0 |xargs -0 rm -f
+ rm -f config install.log install.sum install.txt configure Makefile INSTALL \
+ LICENSE
+
+ borkedfiles=`grep -r "$pkgdir"/opt/plan9 * | grep -v Binary | cut -d\: -f1`
+ for f in $borkedfiles; do
+ echo "fixing hardcoded paths in $f"
+ sed -i "s@$pkgdir/opt/plan9@/opt/plan9@" $f || return 1
+ done
+
+ find "$pkgdir" -name '*.py' -print0 |xargs -0 \
+ sed -i -e 's,^#!/usr/bin/env python$,#!/usr/bin/env python2,' \
+ -e 's,^#!/usr/bin/python$,#!/usr/bin/python2,'
+
+ for i in CHANGES CONTRIBUTORS README TODO
+ do
+ install -m644 $i "$pkgdir/usr/share/doc/$pkgname" || return 1
+ rm -f $i
+ done
+}
+md5sums=('c9942871a4008ecc297a27e8295fdcf0'
+ '9695eb15a247e23140e8a35ff52a5c20')
diff --git a/community/plan9port/plan9.install b/community/plan9port/plan9.install
new file mode 100644
index 000000000..23d047c8c
--- /dev/null
+++ b/community/plan9port/plan9.install
@@ -0,0 +1,42 @@
+pre_install() {
+ /bin/true
+}
+
+post_install() {
+ echo "==> Decompressing man plan9 man pages"
+ for i in `find /opt/plan9/man -type f`; do
+ if [ ${i##*.} = "gz" ]; then
+# echo " ${i%%.*}..."
+ gunzip $i
+ fi
+ done
+
+ echo ""
+ echo "==> In order to use Plan9 specific apps, run them"
+ echo " as arguments to the '9' script, i.e. '9 date'"
+ echo "==> Please log off or 'source /etc/profile.d/plan9.sh'"
+ echo "==> Run '9 man 1 intro | less' to begin"
+ source /etc/profile.d/plan9.sh
+ /bin/true
+}
+
+pre_upgrade() {
+ post_remove
+ /bin/true
+}
+
+post_upgrade() {
+ post_install
+ /bin/true
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ #we had to unpack them so they won't get removed....
+ rm -rf /opt/plan9/man
+ /bin/true
+}
+
diff --git a/community/plan9port/plan9.sh b/community/plan9port/plan9.sh
new file mode 100755
index 000000000..84c3d7ef4
--- /dev/null
+++ b/community/plan9port/plan9.sh
@@ -0,0 +1,2 @@
+export PLAN9=/opt/plan9
+export PATH=$PATH:$PLAN9/bin
diff --git a/community/plib/ChangeLog b/community/plib/ChangeLog
new file mode 100644
index 000000000..552fd49e9
--- /dev/null
+++ b/community/plib/ChangeLog
@@ -0,0 +1,12 @@
+2008-10-04 Eric Belanger <eric@archlinux.org>
+
+ * plib 1.8.5-1.1
+ * Built with PIC for x86_64
+
+2008-03-20 Eric Belanger <eric@archlinux.org>
+
+ * plib 1.8.5-1
+ * Upstream update
+ * Fixed license
+ * Added makedepends
+ * Added ChangeLog
diff --git a/community/plib/PKGBUILD b/community/plib/PKGBUILD
new file mode 100644
index 000000000..80374518b
--- /dev/null
+++ b/community/plib/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 21103 2010-07-14 07:20:33Z lcarlier $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=plib
+pkgver=1.8.5
+pkgrel=2
+pkgdesc="Set of libraries to write games and other realtime interactive applications"
+arch=('i686' 'x86_64')
+url="http://plib.sourceforge.net/"
+license=('custom:LGPL')
+makedepends=('mesa' 'libxi' 'libxmu')
+source=(http://plib.sourceforge.net/dist/$pkgname-$pkgver.tar.gz)
+md5sums=('47a6fbf63668c1eed631024038b2ea90')
+sha1sums=('c2cf7e3e1e58f7b63dae4bb21e4fa82c3e4d4cfc')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ [ "$CARCH" = "x86_64" ] && export CXXFLAGS="$CXXFLAGS -fPIC"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/pmtools/PKGBUILD b/community/pmtools/PKGBUILD
new file mode 100644
index 000000000..d03108426
--- /dev/null
+++ b/community/pmtools/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 33452 2010-11-24 16:48:38Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Sebastian Pohle <naitsabes@imapmail.org>
+
+pkgname=pmtools
+pkgver=20101124
+pkgrel=1
+pkgdesc="A small collection of ACPI power management test and investigation tools"
+arch=('i686' 'x86_64')
+url="http://acpi.sourceforge.net/dsdt/index.php"
+license=('GPL2')
+depends=('perl')
+source=(http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/$pkgname-$pkgver.tar.bz2)
+md5sums=('45e62eae9aca4fce84cb102c117f5796')
+
+build() {
+ cd $srcdir/$pkgname
+ patch -p1 <<EOF
+diff -wbBur pmtools/turbostat/Makefile pmtools.my/turbostat/Makefile
+--- pmtools/turbostat/Makefile 2010-11-24 05:36:50.000000000 +0000
++++ pmtools.my/turbostat/Makefile 2010-11-24 16:42:05.000000000 +0000
+@@ -1,3 +1,5 @@
++all: turbostat
++
+ turbostat : turbostat.c
+
+ clean :
+EOF
+
+ make
+ (cd madt && make)
+
+ install -D -m755 acpidump/acpidump $pkgdir/usr/sbin/acpidump
+ install -D -m755 acpixtract/acpixtract $pkgdir/usr/sbin/acpixtract
+ install -D -m755 madt/madt $pkgdir/usr/sbin/madt
+ install -D -m755 pmtest/pmtest $pkgdir/usr/sbin/pmtest
+ install -D -m755 turbostat/turbostat $pkgdir/usr/sbin/turbostat
+}
diff --git a/community/png2ico/PKGBUILD b/community/png2ico/PKGBUILD
new file mode 100644
index 000000000..8a5f7a330
--- /dev/null
+++ b/community/png2ico/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 8479 2010-01-20 08:15:47Z dgriffiths $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+pkgname=png2ico
+pkgver=20021208
+pkgrel=4
+arch=('i686' 'x86_64')
+pkgdesc="Converts PNG files to Windows icon resource files"
+url="http://www.winterdrache.de/freeware/png2ico/"
+license=("GPL2")
+depends=('libpng' 'gcc')
+source=(http://www.winterdrache.de/freeware/png2ico/data/$pkgname-src-2002-12-08.tar.gz)
+md5sums=('9b663df81c826cd564638cba2e6bc75b')
+
+build() {
+ cd $srcdir/$pkgname
+ make || return 1
+ install -D -m755 png2ico $pkgdir/usr/bin/png2ico
+ install -D -m644 doc/png2ico.1 $pkgdir/usr/share/man/man1/png2ico.1
+}
diff --git a/community/podofo/PKGBUILD b/community/podofo/PKGBUILD
new file mode 100644
index 000000000..d6dee8ed0
--- /dev/null
+++ b/community/podofo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 42262 2011-03-15 21:34:00Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
+# Contributor: Preecha Patumchareonpol <yumyai at gmail.com>
+
+pkgname=podofo
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="A C++ library to work with the PDF file format"
+arch=('i686' 'x86_64')
+url="http://podofo.sourceforge.net"
+license=('GPL')
+depends=( 'gcc-libs' 'fontconfig' 'libpng' 'libtiff')
+makedepends=('cmake')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('2a9ac8cbb5e6575dbc00f083ad8996fb')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .. \
+ -DPODOFO_BUILD_SHARED=1 \
+ -DPODOFO_HAVE_JPEG_LIB=1 \
+ -DPODOFO_HAVE_PNG_LIB=1 \
+ -DPODOFO_HAVE_TIFF_LIB=1
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/poedit/PKGBUILD b/community/poedit/PKGBUILD
new file mode 100644
index 000000000..4ee76514e
--- /dev/null
+++ b/community/poedit/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 34005 2010-11-30 20:55:18Z lcarlier $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=poedit
+pkgver=1.4.6.1
+pkgrel=4
+pkgdesc="Cross-platform gettext catalogs (.po files) editor"
+arch=('i686' 'x86_64')
+url="http://www.poedit.net/"
+license=('custom')
+depends=('wxgtk>=2.8.11' 'gtkspell' 'db>=5.1' 'hicolor-icon-theme' 'gettext')
+makedepends=('pkgconfig')
+install=poedit.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c63ffd991b1a6085ef356a6922356e0a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/poedit/poedit.install b/community/poedit/poedit.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/community/poedit/poedit.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/pokerth/PKGBUILD b/community/pokerth/PKGBUILD
new file mode 100644
index 000000000..f320b353c
--- /dev/null
+++ b/community/pokerth/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41001 2011-03-03 04:26:22Z tdziedzic $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Vasco Costa <vasco.costa@meiodigital.com>
+
+pkgname=pokerth
+_realname=PokerTH
+pkgver=0.8.3
+pkgrel=2
+pkgdesc="Poker game written in C++/QT4"
+arch=('i686' 'x86_64')
+url="http://www.pokerth.net/"
+license=('GPL' 'custom')
+depends=('curl' 'boost-libs>=1.43.0' 'gsasl' 'gnutls' 'qt' 'sdl_mixer')
+makedepends=('boost')
+source=(http://downloads.sourceforge.net/sourceforge/pokerth/$_realname-$pkgver-src.tar.bz2)
+md5sums=('adbe56ad5f547eb255dad91de564bf1c')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver-src"
+
+ sed -i 's/QMAKE_CXXFLAGS += -std=gnu++0x/QMAKE_CXXFLAGS += -std=gnu++0x -DBOOST_FILESYSTEM_VERSION=2/' *.pro
+
+ qmake $pkgname.pro
+ make
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver-src"
+
+ make INSTALL_ROOT="$pkgdir" install
+
+ install -D $pkgname "$pkgdir/usr/bin/$pkgname"
+ install -D -m644 docs/pokerth.1 "$pkgdir/usr/share/man/man1/pokerth.1"
+
+ install -D -m644 data/data-copyright.txt "$pkgdir/usr/share/licenses/pokerth/data-copyright.txt"
+ rm -f "$pkgdir/usr/share/pokerth/data/data-copyright.txt"
+}
diff --git a/community/polipo/PKGBUILD b/community/polipo/PKGBUILD
new file mode 100644
index 000000000..d09f48478
--- /dev/null
+++ b/community/polipo/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Jelle van der Waa <jelle vdwaa nl>
+# Contributor: Thomas Holmquist <thomas@vorget.com>
+# Contributor: Jan Boehringer <ja(a)bm-boehringer.de>
+# Contributor: Alex Griffin <griffin.aj(a)gmail.com>
+
+pkgname=polipo
+pkgver=1.0.4.1
+pkgrel=1
+pkgdesc="A small and fast caching web proxy."
+arch=('i686' 'x86_64')
+url="http://www.pps.jussieu.fr/~jch/software/polipo/"
+license=('GPL')
+depends=('glibc' 'bash')
+makedepends=(texinfo)
+install=polipo.install
+source=(http://freehaven.net/~chrisd/polipo/polipo-$pkgver.tar.gz
+ polipo.cron polipo.rc.d)
+md5sums=('bfc5c85289519658280e093a270d6703'
+ 'bac0e1a871964c931eb5f7a369b3243c'
+ '443e442f7071e31dbd53fc9d810a2c3e')
+conflicts=('polipo-git' 'polipo-darcs')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make all
+
+ make PREFIX="$pkgdir/usr" \
+ MANDIR="$pkgdir/usr/share/man" \
+ INFODIR="$pkgdir/usr/share/info" \
+ LOCAL_ROOT="$pkgdir/usr/share/polipo/www" \
+ DISK_CACHE_ROOT="$pkgdir/var/cache/polipo" \
+ install
+
+
+ # install config files
+ install -Dm 644 config.sample $pkgdir/etc/polipo/config.sample
+ install -Dm 644 forbidden.sample $pkgdir/etc/polipo/forbidden.sample
+
+ # install license
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/polipo/LICENSE
+
+ # install daemon scripts / cron
+ install -Dm 755 $srcdir/polipo.rc.d $pkgdir/etc/rc.d/polipo
+ install -Dm 755 $srcdir/polipo.cron $pkgdir/usr/share/polipo/polipo.cron
+
+
+}
diff --git a/community/polipo/polipo.cron b/community/polipo/polipo.cron
new file mode 100644
index 000000000..8270d0a05
--- /dev/null
+++ b/community/polipo/polipo.cron
@@ -0,0 +1,2 @@
+#!/bin/bash
+/etc/rc.d/polipo purge >/dev/null 2>&1
diff --git a/community/polipo/polipo.install b/community/polipo/polipo.install
new file mode 100644
index 000000000..c3a4f82b9
--- /dev/null
+++ b/community/polipo/polipo.install
@@ -0,0 +1,25 @@
+infodir=/usr/share/info
+filelist=(polipo.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+
+ echo "You should create a config-file now, an example is located in /etc/polipo/."
+ echo "If you don't create a config-file, polipo will use its defaults."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/polipo/polipo.rc.d b/community/polipo/polipo.rc.d
new file mode 100644
index 000000000..f9bbd4783
--- /dev/null
+++ b/community/polipo/polipo.rc.d
@@ -0,0 +1,60 @@
+#!/bin/bash
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON=polipo
+ARGS="daemonise=true pidFile=/var/run/$DAEMON/$DAEMON.pid"
+PID=$(pidof -o %PPID /usr/bin/$DAEMON)
+
+case $1 in
+ start)
+ stat_busy "Starting $DAEMON"
+ if ck_daemon $DAEMON; then
+ [[ ! -d /var/run/$DAEMON ]] && install -d $DAEMON /var/run/$DAEMON
+ /usr/bin/$DAEMON $ARGS >/dev/null 2>&1
+ if [[ $? != 0 ]]; then
+ stat_fail
+ else
+ add_daemon polipo
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping $DAEMON"
+ if ! ck_daemon $DAEMON; then
+ kill $PID >/dev/null 2>&1
+ if [[ $? != 0 ]]; then
+ stat_fail
+ else
+ rm_daemon $DAEMON
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ purge)
+ stat_busy "Purging $DAEMON"
+ [[ ! -d /var/run/$DAEMON ]] && install -d $DAEMON /var/run/$DAEMON
+ if ! ck_daemon $DAEMON; then
+ kill -USR1 $PID >/dev/null 2>&1
+ sleep 1
+ /usr/bin/$DAEMON -x $ARGS >/dev/null 2>&1 || stat_fail
+ kill -USR2 $PID >/dev/null 2>&1
+ stat_done
+ else
+ /usr/bin/$DAEMON -x $ARGS >/dev/null 2>&1 || stat_fail
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|purge}"
+ ;;
+esac
diff --git a/community/pork/PKGBUILD b/community/pork/PKGBUILD
new file mode 100644
index 000000000..c10aec036
--- /dev/null
+++ b/community/pork/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 24954 2010-08-29 19:25:12Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=pork
+pkgver=0.99.8.1
+pkgrel=3
+pkgdesc="Console-based AOL Instant Messenger & IRC client"
+arch=('i686' 'x86_64')
+url="http://dev.ojnk.net/"
+license=('GPL')
+depends=('ncurses' 'perl')
+source=(http://downloads.sourceforge.net/sourceforge/ojnk/$pkgname-$pkgver.tar.gz)
+md5sums=('0c720db7e4e843aeee0fa53ade7cdffd')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+} \ No newline at end of file
diff --git a/community/portaudio/PKGBUILD b/community/portaudio/PKGBUILD
new file mode 100644
index 000000000..411f10437
--- /dev/null
+++ b/community/portaudio/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 22287 2010-07-20 20:56:06Z mherych $
+# Based on 'portaudio' package - Eric Belanger <eric@archlinux.org>
+# Last/Most-Recent Contributor: Darwin Bautista <djclue917@gmail.com>
+# Maintainer: Bob Finch <w9ya@qrparci.net>
+
+pkgname=portaudio
+pkgver=19_20071207
+pkgrel=3
+pkgdesc="A free, cross-platform, open source, audio I/O library"
+url="http://www.portaudio.com/"
+source=(http://www.portaudio.com/archives/pa_stable_v$pkgver.tar.gz)
+depends=('jack-audio-connection-kit')
+options=(!libtool)
+arch=('i686' 'x86_64')
+license=('custom')
+md5sums=('d2943e4469834b25afe62cc51adc025f')
+
+build() {
+ cd $startdir/src/$pkgname
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE.txt
+}
diff --git a/community/portaudio_cpp/PKGBUILD b/community/portaudio_cpp/PKGBUILD
new file mode 100644
index 000000000..0c666ed5c
--- /dev/null
+++ b/community/portaudio_cpp/PKGBUILD
@@ -0,0 +1,28 @@
+# Based on 'portaudio' package - Eric Belanger <belanger@astro.umontreal.ca>
+# Maintainer: Bob Finch <w9ya@qrparci.net>
+
+pkgname=portaudio_cpp
+pkgver=19_20071207
+pkgrel=2
+pkgdesc="PortAudio c++ bindings"
+url="http://www.portaudio.com/"
+source=(http://www.portaudio.com/archives/pa_stable_v$pkgver.tar.gz)
+depends=('portaudio=19_20071207' 'gcc-libs')
+license=('custom')
+arch=('i686' 'x86_64')
+options=('!libtool')
+md5sums=('d2943e4469834b25afe62cc51adc025f')
+
+build() {
+ cd $srcdir/portaudio
+ ./configure --prefix=/usr
+ make || return 1
+
+ install -D -m644 LICENSE.txt\
+ $pkgdir/usr/share/licenses/$pkgname/LICENSE.txt
+
+ cd $srcdir/portaudio/bindings/cpp
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/portmidi/PKGBUILD b/community/portmidi/PKGBUILD
new file mode 100644
index 000000000..255c2e077
--- /dev/null
+++ b/community/portmidi/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 31348 2010-10-30 15:46:33Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Denis Martinez <deuns.martinez AT gmail DOT com>
+
+pkgname=portmidi
+pkgver=217
+pkgrel=2
+pkgdesc="Platform independent library for real-time MIDI input/output."
+arch=('i686' 'x86_64')
+url='http://portmedia.sourceforge.net/'
+license=('GPL')
+depends=('alsa-lib')
+makedepends=('cmake' 'java-environment')
+source=("http://downloads.sourceforge.net/project/portmedia/${pkgname}/${pkgver}/${pkgname}-src-${pkgver}.zip")
+md5sums=('03f46fd3947e2ef4c8c465baaf832241')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ sed -i "s#/usr/local#/usr#" */CMakeLists.txt pm_python/setup.py
+ mkdir -p pm_java/Release
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=Release \
+ -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=Release \
+ -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=Release
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # Fix missing symlink for libporttime.so (FS#21528).
+ mv "${pkgdir}/usr/lib/libportmidi_s.a" "${pkgdir}/usr/lib/libportmidi.a"
+ ln -s "/usr/lib/libportmidi.so" "${pkgdir}/usr/lib/libporttime.so"
+ ln -s "/usr/lib/libportmidi.a" "${pkgdir}/usr/lib/libporttime.a"
+}
diff --git a/community/postgis/PKGBUILD b/community/postgis/PKGBUILD
new file mode 100644
index 000000000..dbea8cc90
--- /dev/null
+++ b/community/postgis/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 31335 2010-10-30 06:31:18Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=postgis
+pkgver=1.5.2
+pkgrel=1
+pkgdesc="Adds support for geographic objects to PostgreSQL"
+arch=('i686' 'x86_64')
+url="http://postgis.refractions.net/"
+license=('GPL')
+depends=('postgresql' 'proj' 'geos')
+changelog=$pkgname.changelog
+source=(http://postgis.refractions.net/download/$pkgname-$pkgver.tar.gz)
+md5sums=('772ec1d0f04d6800cd7e2420a97a7483')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/postgis/postgis.changelog b/community/postgis/postgis.changelog
new file mode 100644
index 000000000..86c0b336b
--- /dev/null
+++ b/community/postgis/postgis.changelog
@@ -0,0 +1,5 @@
+2010-10-30 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5.2
+
+2010-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.5.1
diff --git a/community/pound/ChangeLog b/community/pound/ChangeLog
new file mode 100644
index 000000000..1a9677113
--- /dev/null
+++ b/community/pound/ChangeLog
@@ -0,0 +1,22 @@
+
+2009-03-22 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 2.4.4
+ * Fixed an issue with the rc.d pound script
+
+2008-06-22 Mateusz Herych <heniekk@gmail.com>
+
+ * Adding for x86_64 community - 2.4.3
+
+2008-06-22 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Adding for i686 community - 2.4.3
+
+2008-05-22 Mateusz Herych <heniekk@gmail.com>
+
+ * Adding to community for x86_64
+
+2008-05-21 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Adding to community for i686
+
diff --git a/community/pound/PKGBUILD b/community/pound/PKGBUILD
new file mode 100644
index 000000000..02d82fec0
--- /dev/null
+++ b/community/pound/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 24210 2010-08-23 09:28:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=pound
+pkgver=2.5
+pkgrel=2
+pkgdesc="A reverse proxy, load balancer, and SSL wrapper"
+arch=('i686' 'x86_64')
+url="http://www.apsis.ch/pound/index_html"
+license=('GPL')
+depends=('pcre' 'openssl')
+backup=(etc/pound/pound.cfg)
+source=(http://www.apsis.ch/pound/Pound-$pkgver.tgz
+ pound.init
+ pound.runit
+ pound.cfg
+ pound-2.5-openssl.patch)
+md5sums=('8a39f5902094619afcda7d12d9d8342c'
+ '4df8548f106fca08323e8e4071beaa43'
+ '716cc0bf334b594751bece24c7d1df2d'
+ '8937808acd22c6391ebe4340af8df854'
+ 'c2c48dc395ffc045f9d35394992292d0')
+
+build() {
+ cd $srcdir/Pound-$pkgver
+ # Patch to build against OpenSSL 1.0.0 (Thanks Fedora!)
+ patch -p1 -i $srcdir/pound-2.5-openssl.patch || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc/pound
+ make || return 1
+ install -d $pkgdir/usr/sbin
+ make DESTDIR=$pkgdir install || return 1
+ chown root.root -R $pkgdir/usr
+ install -d $pkgdir/etc/rc.d
+ install -m0755 $srcdir/pound.init $pkgdir/etc/rc.d/pound
+ install -d $pkgdir/etc/sv
+ install -d $pkgdir/etc/sv/pound
+ install -m0755 $srcdir/pound.runit $pkgdir/etc/sv/pound/run
+ install -D -m0644 $srcdir/pound.cfg $pkgdir/etc/pound/pound.cfg
+}
diff --git a/community/pound/pound-2.5-openssl.patch b/community/pound/pound-2.5-openssl.patch
new file mode 100644
index 000000000..efefd5487
--- /dev/null
+++ b/community/pound/pound-2.5-openssl.patch
@@ -0,0 +1,290 @@
+diff -up Pound-2.5/config.c.openssl Pound-2.5/config.c
+--- Pound-2.5/config.c.openssl 2010-02-10 12:23:09.000000000 +0100
++++ Pound-2.5/config.c 2010-02-10 12:23:07.000000000 +0100
+@@ -431,14 +431,22 @@ t_hash(const TABNODE *e)
+ res = (res ^ *k++) * 16777619;
+ return res;
+ }
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++static IMPLEMENT_LHASH_HASH_FN(t, TABNODE)
++#else
+ static IMPLEMENT_LHASH_HASH_FN(t_hash, const TABNODE *)
++#endif
+
+ static int
+ t_cmp(const TABNODE *d1, const TABNODE *d2)
+ {
+ return strcmp(d1->key, d2->key);
+ }
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++static IMPLEMENT_LHASH_COMP_FN(t, TABNODE)
++#else
+ static IMPLEMENT_LHASH_COMP_FN(t_cmp, const TABNODE *)
++#endif
+
+ /*
+ * parse a service
+@@ -460,7 +468,11 @@ parse_service(const char *svc_name)
+ pthread_mutex_init(&res->mut, NULL);
+ if(svc_name)
+ strncpy(res->name, svc_name, KEY_SIZE);
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL)
++#else
+ if((res->sessions = lh_new(LHASH_HASH_FN(t_hash), LHASH_COMP_FN(t_cmp))) == NULL)
++#endif
+ conf_err("lh_new failed - aborted");
+ ign_case = ignore_case;
+ while(conf_fgets(lin, MAXBUF)) {
+diff -up Pound-2.5/pound.h.openssl Pound-2.5/pound.h
+--- Pound-2.5/pound.h.openssl 2010-02-02 12:49:02.000000000 +0100
++++ Pound-2.5/pound.h 2010-02-10 12:15:18.000000000 +0100
+@@ -322,6 +322,10 @@ typedef struct _tn {
+ /* maximal session key size */
+ #define KEY_SIZE 127
+
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++DECLARE_LHASH_OF(TABNODE);
++#endif
++
+ /* service definition */
+ typedef struct _service {
+ char name[KEY_SIZE + 1]; /* symbolic name */
+@@ -337,7 +341,11 @@ typedef struct _service {
+ int sess_ttl; /* session time-to-live */
+ regex_t sess_start; /* pattern to identify the session data */
+ regex_t sess_pat; /* pattern to match the session data */
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ LHASH_OF(TABNODE) *sessions; /* currently active sessions */
++#else
+ LHASH *sessions; /* currently active sessions */
++#endif
+ int dynscale; /* true if the back-ends should be dynamically rescaled */
+ int disabled; /* true if the service is disabled */
+ struct _service *next;
+diff -up Pound-2.5/svc.c.openssl Pound-2.5/svc.c
+--- Pound-2.5/svc.c.openssl 2010-02-02 12:49:02.000000000 +0100
++++ Pound-2.5/svc.c 2010-02-10 12:13:29.000000000 +0100
+@@ -27,12 +27,17 @@
+
+ #include "pound.h"
+
++#ifndef LHASH_OF
++#define LHASH_OF(x) LHASH
++#define CHECKED_LHASH_OF(type, h) h
++#endif
++
+ /*
+ * Add a new key/content pair to a hash table
+ * the table should be already locked
+ */
+ static void
+-t_add(LHASH *const tab, const char *key, const void *content, const size_t cont_len)
++t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const size_t cont_len)
+ {
+ TABNODE *t, *old;
+
+@@ -53,7 +58,11 @@ t_add(LHASH *const tab, const char *key,
+ }
+ memcpy(t->content, content, cont_len);
+ t->last_acc = time(NULL);
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) {
++#else
+ if((old = (TABNODE *)lh_insert(tab, t)) != NULL) {
++#endif
+ free(old->key);
+ free(old->content);
+ free(old);
+@@ -68,12 +77,16 @@ t_add(LHASH *const tab, const char *key,
+ * side-effect: update the time of last access
+ */
+ static void *
+-t_find(LHASH *const tab, char *const key)
++t_find(LHASH_OF(TABNODE) *const tab, char *const key)
+ {
+ TABNODE t, *res;
+
+ t.key = key;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ if((res = LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) {
++#else
+ if((res = (TABNODE *)lh_retrieve(tab, &t)) != NULL) {
++#endif
+ res->last_acc = time(NULL);
+ return res->content;
+ }
+@@ -84,12 +97,16 @@ t_find(LHASH *const tab, char *const key
+ * Delete a key
+ */
+ static void
+-t_remove(LHASH *const tab, char *const key)
++t_remove(LHASH_OF(TABNODE) *const tab, char *const key)
+ {
+ TABNODE t, *res;
+
+ t.key = key;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) {
++#else
+ if((res = (TABNODE *)lh_delete(tab, &t)) != NULL) {
++#endif
+ free(res->key);
+ free(res->content);
+ free(res);
+@@ -98,59 +115,75 @@ t_remove(LHASH *const tab, char *const k
+ }
+
+ typedef struct {
+- LHASH *tab;
++ LHASH_OF(TABNODE) *tab;
+ time_t lim;
+ void *content;
+ int cont_len;
+ } ALL_ARG;
+
+ static void
+-t_old(TABNODE *t, void *arg)
++t_old_doall_arg(TABNODE *t, ALL_ARG *a)
+ {
+- ALL_ARG *a;
+-
+- a = (ALL_ARG *)arg;
+ if(t->last_acc < a->lim)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ LHM_lh_delete(TABNODE, a->tab, t);
++#else
+ lh_delete(a->tab, t);
++#endif
+ return;
+ }
+-IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, void *)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG)
++#else
++#define t_old t_old_doall_arg
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *)
++#endif
+
+ /*
+ * Expire all old nodes
+ */
+ static void
+-t_expire(LHASH *const tab, const time_t lim)
++t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim)
+ {
+ ALL_ARG a;
+ int down_load;
+
+ a.tab = tab;
+ a.lim = lim;
+- down_load = tab->down_load;
+- tab->down_load = 0;
++ down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
++ CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a);
++#else
+ lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_old), &a);
+- tab->down_load = down_load;
++#endif
++ CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
+ return;
+ }
+
+ static void
+-t_cont(TABNODE *t, void *arg)
++t_cont_doall_arg(TABNODE *t, ALL_ARG *a)
+ {
+- ALL_ARG *a;
+-
+- a = (ALL_ARG *)arg;
+ if(memcmp(t->content, a->content, a->cont_len) == 0)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ LHM_lh_delete(TABNODE, a->tab, t);
++#else
+ lh_delete(a->tab, t);
++#endif
+ return;
+ }
+-IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE *, void *)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE, ALL_ARG)
++#else
++#define t_cont t_cont_doall_arg
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_cont, TABNODE *, ALL_ARG *)
++#endif
+
+ /*
+ * Remove all nodes with the given content
+ */
+ static void
+-t_clean(LHASH *const tab, void *const content, const size_t cont_len)
++t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len)
+ {
+ ALL_ARG a;
+ int down_load;
+@@ -158,10 +191,14 @@ t_clean(LHASH *const tab, void *const co
+ a.tab = tab;
+ a.content = content;
+ a.cont_len = cont_len;
+- down_load = tab->down_load;
+- tab->down_load = 0;
++ down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
++ CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a);
++#else
+ lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_cont), &a);
+- tab->down_load = down_load;
++#endif
++ CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
+ return;
+ }
+
+@@ -1410,13 +1447,11 @@ typedef struct {
+ } DUMP_ARG;
+
+ static void
+-t_dump(TABNODE *t, void *arg)
++t_dump_doall_arg(TABNODE *t, DUMP_ARG *a)
+ {
+- DUMP_ARG *a;
+ BACKEND *be, *bep;
+ int n_be, sz;
+
+- a = (DUMP_ARG *)arg;
+ memcpy(&bep, t->content, sizeof(bep));
+ for(n_be = 0, be = a->backends; be; be = be->next, n_be++)
+ if(be == bep)
+@@ -1432,19 +1467,28 @@ t_dump(TABNODE *t, void *arg)
+ return;
+ }
+
+-IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, void *)
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE, DUMP_ARG)
++#else
++#define t_dump t_dump_doall_arg
++IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, DUMP_ARG *)
++#endif
+
+ /*
+ * write sessions to the control socket
+ */
+ static void
+-dump_sess(const int control_sock, LHASH *const sess, BACKEND *const backends)
++dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const backends)
+ {
+ DUMP_ARG a;
+
+ a.control_sock = control_sock;
+ a.backends = backends;
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a);
++#else
+ lh_doall_arg(sess, LHASH_DOALL_ARG_FN(t_dump), &a);
++#endif
+ return;
+ }
+
diff --git a/community/pound/pound.cfg b/community/pound/pound.cfg
new file mode 100644
index 000000000..fda8a07f4
--- /dev/null
+++ b/community/pound/pound.cfg
@@ -0,0 +1,85 @@
+###############################################################################
+## Pound configration file
+###############################################################################
+##
+##
+## GLOBAL SETTINGS
+##
+## Specify the user and group Pound will run as.
+#User "http"
+#Group "http"
+##
+## Specify the directory that Pound will chroot to at runtime.
+#RootJail "/"
+##
+## Have Pound run in the foreground (if 0) or as a daemon (if 1).
+#Daemon 1
+##
+## Specify the log facility to use.
+#LogFacility daemon
+##
+## Specify the logging level.
+#LogLevel 1
+##
+## Ignore case when matching URLs.
+#IgnoreCase 0
+##
+## Enable or disable the dynamic rescaling code.
+#DynScale 0
+##
+## Specify how often Pound will check for resurected back-end hosts.
+#Alive 30
+##
+## Specify for how long Pound will wait for a client request.
+#Client 10
+##
+## How long should Pound wait for a response from the back-end.
+#TimeOut 15
+##
+## How long should Pound wait for a connection to the back-end.
+#ConnTO 15
+##
+## How long should Pound continue to answer interrupted connections.
+#Grace 30
+##
+## Use an OpenSSL hardware acceleration card.
+#SSLEngine "name"
+##
+## Set the control socket path.
+#Control "/tmp/poundctl.socket"
+##
+##
+## LISTENERS
+##
+## Configure services and backends for the HTTP reverse proxy.
+#ListenHTTP
+# Address 10.0.0.1
+# Port 80
+# Service
+# BackEnd
+# Address 127.0.0.1
+# Port 8080
+# End
+# BackEnd
+# Address 127.0.0.1
+# Port 8081
+# End
+# End
+#End
+##
+## Configure services and backends for the HTTPS reverse proxy.
+#ListenHTTPS
+# Address 10.0.0.1
+# Port 443
+# Cert "/etc/ssl/certs/pound.pem"
+# Service
+# BackEnd
+# Address 127.0.0.1
+# Port 8080
+# End
+# BackEnd
+# Address 127.0.0.1
+# Port 8081
+# End
+# End
+#End
diff --git a/community/pound/pound.init b/community/pound/pound.init
new file mode 100755
index 000000000..369d6626d
--- /dev/null
+++ b/community/pound/pound.init
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting Pound"
+ /usr/sbin/pound -f /etc/pound/pound.cfg -p /var/run/pound.pid &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pound
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Pound"
+ [ -f /var/run/pound.pid ] && kill `cat /var/run/pound.pid`
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/pound.pid
+ rm_daemon pound
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/community/pound/pound.runit b/community/pound/pound.runit
new file mode 100755
index 000000000..2e0be991e
--- /dev/null
+++ b/community/pound/pound.runit
@@ -0,0 +1,24 @@
+#!/bin/sh
+exec 2>&1
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+BIN=/usr/sbin/pound
+OPTS="-f /etc/pound/pound.cfg -p /var/run/pound.pid"
+SVC=pound
+
+PID=`pidof $BIN`
+if [ -z "$PID" ]
+then
+ if [ -f /var/run/$SVC.pid ]
+ then
+ rm /var/run/$SVC.pid
+ rm_daemon $SVC
+ fi
+ echo "Starting $SVC daemon"
+ $BIN $OPTS
+else
+ [ -z $PID ] || exec watchpid $PID
+fi
+
diff --git a/community/powertop/PKGBUILD b/community/powertop/PKGBUILD
new file mode 100644
index 000000000..83f906f85
--- /dev/null
+++ b/community/powertop/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 24103 2010-08-19 22:45:29Z heftig $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Xilon <xilonmu@gmail.com>
+
+pkgname=powertop
+pkgver=1.13
+pkgrel=2
+pkgdesc="Tool that finds the software that makes your laptop use more power than necessary"
+arch=('i686' 'x86_64')
+url="http://www.lesswatts.org/projects/powertop/"
+license=('GPL2')
+depends=('ncurses')
+source=(http://www.lesswatts.org/projects/powertop/download/$pkgname-$pkgver.tar.gz)
+md5sums=('78aa17c8f55178004223bf236654298e')
+
+build() {
+ cd "$srcdir/powertop-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/powertop-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/pppd-ldap-simple/PKGBUILD b/community/pppd-ldap-simple/PKGBUILD
new file mode 100644
index 000000000..9511d9b2d
--- /dev/null
+++ b/community/pppd-ldap-simple/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 33063 2010-11-22 11:07:15Z spupykin $
+
+pkgname=pppd-ldap-simple
+pkgver=0.12b
+pkgrel=5
+pkgdesc="pppd ldap simple plugin (based on pppd ldap, without radius, etc. Just search by uid and userPassword)"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/pppd-ldap/"
+license=('GPL')
+source=(http://archlinux-stuff.googlecode.com/files/pppd_ldap-simple-$pkgver.tar.gz)
+md5sums=('e47b7fb5119a1024e188ec22351672cd')
+
+build() {
+ _pppdver=`pacman -Q ppp | cut -d\ -f 2 | cut -f 1 -d -`
+ depends=("ppp=${_pppdver}" 'libldap>=2.4.18')
+
+ cd "$srcdir/pppd_ldap-simple-$pkgver"
+ make CFLAGS="-I/usr/include/pppd -fPIC"
+ install -D -m0755 pppd_ldap.so $pkgdir/usr/lib/pppd/${_pppdver}/pppd_ldap_simple.so
+}
diff --git a/community/pppd-ldap/PKGBUILD b/community/pppd-ldap/PKGBUILD
new file mode 100644
index 000000000..27c593d82
--- /dev/null
+++ b/community/pppd-ldap/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 2636 2009-09-19 18:21:47Z ibiru $
+
+pkgname=pppd-ldap
+pkgver=0.12b
+pkgrel=2
+pkgdesc="pppd ldap plugin"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/pppd-ldap/"
+license=('GPL')
+depends=('ppp' 'libldap>=2.4.18')
+options=(docs)
+source=(http://downloads.sourceforge.net/sourceforge/pppd-ldap/pppd_ldap-$pkgver.tgz)
+md5sums=('4d13596297c2728f3cfe0a097c97d8fc')
+
+build() {
+ cd "$srcdir/pppd_ldap-$pkgver"
+
+patch -p1 main.c <<EOF
+diff pppd_ldap-0.12b/main.c pppd_ldap-0.12b.my/main.c
+56a57,58
+> #define LDAP_FILT_MAXSIZ 1024
+>
+EOF
+
+patch -p1 utmplib.c <<EOF
+diff pppd_ldap-0.12b/utmplib.c pppd_ldap-0.12b.my/utmplib.c
+157c157
+< (char*) buf += rc;
+---
+> buf = (char*)buf + rc;
+EOF
+
+ make CFLAGS="-I/usr/include/pppd -fPIC" || return 1
+
+ install -D -m0755 pppd_ldap.so $pkgdir/usr/lib/pppd/2.4.4/pppd_ldap.so && \
+ install -D -m0755 README $pkgdir/usr/share/doc/pppd-ldap/README
+}
diff --git a/community/pptpd/ChangeLog b/community/pptpd/ChangeLog
new file mode 100644
index 000000000..53b159c09
--- /dev/null
+++ b/community/pptpd/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-29 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Added autoreconf to help with proper installation of libs
diff --git a/community/pptpd/PKGBUILD b/community/pptpd/PKGBUILD
new file mode 100644
index 000000000..04f5dbcb6
--- /dev/null
+++ b/community/pptpd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 31992 2010-11-08 21:12:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=pptpd
+pkgver=1.3.4
+pkgrel=3
+pkgdesc="Poptop server"
+arch=(i686 x86_64)
+url="http://poptop.sourceforge.net/"
+license=('GPL')
+depends=(ppp glibc)
+backup=(etc/pptpd.conf)
+source=(http://downloads.sourceforge.net/sourceforge/poptop/pptpd-$pkgver.tar.gz
+ pptpd)
+md5sums=('b38df9c431041922c997c1148bedf591'
+ 'e09f81beb5d59a0fdfba94e3a60d992b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ autoreconf -i
+ ./configure --prefix=/usr --libdir=/usr/lib --exec-prefix=/usr --mandir=/usr/share
+
+ make
+
+ sed -i 's|install -o root|install|g' plugins/Makefile
+ sed -i 's|?=|=|g' plugins/Makefile
+ make DESTDIR=$pkgdir install
+
+ mkdir -p $pkgdir/etc/
+ echo "# Read man pptpd.conf and write your pptpd configuration here" >$pkgdir/etc/pptpd.conf
+ install -D -m0755 ../pptpd $pkgdir/etc/rc.d/pptpd
+}
diff --git a/community/pptpd/pptpd b/community/pptpd/pptpd
new file mode 100755
index 000000000..08c4de496
--- /dev/null
+++ b/community/pptpd/pptpd
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting PPTP Daemon"
+ pptpd -c /etc/pptpd.conf -p /var/run/pptpd.pid
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pptpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PPTP Daemon"
+ kill `cat /var/run/pptpd.pid`
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pptpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/pragha/PKGBUILD b/community/pragha/PKGBUILD
new file mode 100755
index 000000000..6d8f520cb
--- /dev/null
+++ b/community/pragha/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 42505 2011-03-17 12:01:45Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+# Contributor: JerichoKru <jerichokru(AT)htomail.com>
+
+pkgname=pragha
+pkgver=0.94.0
+pkgrel=1
+pkgdesc="A lightweight GTK+ music manager - fork of Consonance Music Manager."
+arch=('i686' 'x86_64')
+url="http://pragha.wikispaces.com/"
+license=('GPL3')
+depends=('libnotify' 'libcdio' 'curl'
+ 'taglib' 'gstreamer0.10' 'hicolor-icon-theme'
+ 'gtk2' 'dbus-glib' 'dbus-core'
+ 'sqlite3' 'glib2')
+optdepends=('notification-daemon: OSD notification')
+replaces=('dissonance')
+install=pragha.install
+source=(http://dissonance.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+sha1sums=('985947e7066827183a9ed6eea527dffc89acc549')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ LIBS+="-ldbus-glib-1" ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ install -m 644 "data/$pkgname.desktop" "$pkgdir/usr/share/applications"
+ install -d "$pkgdir/usr/share/pixmaps"
+ install -m 644 "data/$pkgname.png" "$pkgdir/usr/share/pixmaps/"
+ install -m 644 "data/$pkgname.1" "$pkgdir/usr/share/man/man1/"
+
+}
+
+# vim:ts=2:sw=2:expandtab
+
diff --git a/community/pragha/pragha.install b/community/pragha/pragha.install
new file mode 100755
index 000000000..7db352036
--- /dev/null
+++ b/community/pragha/pragha.install
@@ -0,0 +1,8 @@
+post_install() {
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+}
+
diff --git a/community/prboom/PKGBUILD b/community/prboom/PKGBUILD
new file mode 100644
index 000000000..20417640a
--- /dev/null
+++ b/community/prboom/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 70418 2010-02-26 19:23:47Z thayer $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+# Contributor: dale <dale@archlinux.org>
+
+pkgname=prboom
+pkgver=2.5.0
+pkgrel=4
+pkgdesc="A game engine which provides a program to play Doom levels"
+url="http://prboom.sourceforge.net/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('libpng' 'mesa' 'sdl_mixer' 'sdl_net')
+source=(http://downloads.sourceforge.net/prboom/$pkgname-$pkgver.tar.gz libpng-1.4.patch)
+md5sums=('a8a15f61fa2626ab98051ab2703378c4' 'ba53474db8e747035ca2320a445e4ae0')
+sha1sums=('f17dc6ed4e72d07b85429177b00b8709ea36f5a0' 'faf858bc03a246b7f8e939679b2f0db3e4d6bc21')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 < ../libpng-1.4.patch || return 1
+ ./configure --prefix=/usr --disable-i386-asm || return 1
+ sed -i "s|/games|/bin|g" $srcdir/$pkgname-$pkgver/src/Makefile || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
+
diff --git a/community/prboom/libpng-1.4.patch b/community/prboom/libpng-1.4.patch
new file mode 100644
index 000000000..a2215e37b
--- /dev/null
+++ b/community/prboom/libpng-1.4.patch
@@ -0,0 +1,21 @@
+diff -Naur prboom-2.5.0-orig/src/SDL/i_sshot.c prboom-2.5.0/src/SDL/i_sshot.c
+--- prboom-2.5.0-orig/src/SDL/i_sshot.c 2010-01-24 23:26:03.000000000 -0500
++++ prboom-2.5.0/src/SDL/i_sshot.c 2010-01-24 23:28:42.000000000 -0500
+@@ -231,7 +231,7 @@
+ if (fp)
+ {
+ png_struct *png_ptr = png_create_write_struct(
+- PNG_LIBPNG_VER_STRING, png_error_ptr_NULL, error_fn, warning_fn);
++ PNG_LIBPNG_VER_STRING, NULL, error_fn, warning_fn);
+
+ if (png_ptr)
+ {
+@@ -279,7 +279,7 @@
+ break;
+ }
+ }
+- png_destroy_write_struct(&png_ptr, png_infopp_NULL);
++ png_destroy_write_struct(&png_ptr, NULL);
+ }
+ fclose(fp);
+ }
diff --git a/community/prelink/PKGBUILD b/community/prelink/PKGBUILD
new file mode 100644
index 000000000..25d6c1a55
--- /dev/null
+++ b/community/prelink/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 35759 2010-12-22 11:17:45Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Rouslan Solomakhin <rouslan@localnet.com>
+
+pkgname=prelink
+pkgver=20100106
+pkgrel=3
+pkgdesc='ELF prelinking utility to speed up dynamic linking.'
+arch=('i686' 'x86_64')
+url='http://people.redhat.com/jakub/prelink/'
+license=('GPL')
+depends=('elfutils')
+backup=('etc/prelink.conf')
+source=("http://people.redhat.com/jakub/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'prelink.conf'
+ 'arch-x86_64-dynamic_linker.patch')
+md5sums=('56e2a1b5a478795352bf6e4d2bc6e0ab'
+ '0793ed49e9b31c125cba4d936c333cf6'
+ 'b347580536e078b34c547742d36a3e9d')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ patch -Np0 -i ../arch-x86_64-dynamic_linker.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm0644 "${srcdir}/prelink.conf" "${pkgdir}/etc/prelink.conf"
+}
diff --git a/community/prelink/arch-x86_64-dynamic_linker.patch b/community/prelink/arch-x86_64-dynamic_linker.patch
new file mode 100644
index 000000000..bceb9b2dc
--- /dev/null
+++ b/community/prelink/arch-x86_64-dynamic_linker.patch
@@ -0,0 +1,12 @@
+diff -rup ../prelink.orig/src/arch-x86_64.c ./src/arch-x86_64.c
+--- ../prelink.orig/src/arch-x86_64.c 2010-12-22 12:03:06.725004002 +0100
++++ ./src/arch-x86_64.c 2010-12-22 12:04:08.193712039 +0100
+@@ -532,7 +532,7 @@ PL_ARCH = {
+ .R_COPY = R_X86_64_COPY,
+ .R_RELATIVE = R_X86_64_RELATIVE,
+ .rtype_class_valid = RTYPE_CLASS_VALID,
+- .dynamic_linker = "/lib64/ld-linux-x86-64.so.2",
++ .dynamic_linker = "/lib/ld-linux-x86-64.so.2",
+ .adjust_dyn = x86_64_adjust_dyn,
+ .adjust_rel = x86_64_adjust_rel,
+ .adjust_rela = x86_64_adjust_rela,
diff --git a/community/prelink/prelink.conf b/community/prelink/prelink.conf
new file mode 100644
index 000000000..a242269ad
--- /dev/null
+++ b/community/prelink/prelink.conf
@@ -0,0 +1,24 @@
+# System
+/usr/lib
+/usr/bin
+/lib
+/bin
+/usr/sbin
+
+# Gnome
+/opt/gnome/lib
+/opt/gnome/bin
+/opt/gnome/share
+
+# KDE/Qt
+/opt/qt/lib
+/opt/qt/bin
+/opt/qt/share
+/opt/kde/lib
+/opt/kde/bin
+/opt/kde/share
+
+# XFCE
+/opt/xfce4/lib
+/opt/xfce4/bin
+/opt/xfce4/share
diff --git a/community/preload/PKGBUILD b/community/preload/PKGBUILD
new file mode 100644
index 000000000..e5457727c
--- /dev/null
+++ b/community/preload/PKGBUILD
@@ -0,0 +1,38 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=preload
+pkgver=0.6.4
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc="Makes applications run faster by prefetching binaries and shared objects"
+url="http://sourceforge.net/projects/preload"
+license=('GPL2')
+makedepends=('help2man' 'pkgconfig')
+depends=('glib2')
+backup=('etc/preload.conf')
+options=('!makeflags')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/sourceforge/preload/$pkgname-$pkgver.tar.gz \
+ rc.preload)
+md5sums=('10786287b55afd3a2b433b4f898809f4'
+ 'bde0dd7867c77e7c4d10b481b5cddcd3')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --localstatedir=/var
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+
+ install -D -m755 ../rc.preload $startdir/pkg/etc/rc.d/preload
+ rm -rf $startdir/pkg/etc/rc.d/init.d
+
+ rm -rf $startdir/pkg/var/lib/preload/preload.state
+ rm -rf $startdir/pkg/var/log/preload.log
+
+ mkdir $startdir/pkg/etc/conf.d
+ mv $startdir/pkg/etc/sysconfig/* $startdir/pkg/etc/conf.d
+ rm -rf $startdir/pkg/etc/sysconfig
+
+ sed -r -i 's#^((map|exe)prefix =) (.+)$#\1 /opt;\3#' $startdir/pkg/etc/preload.conf
+}
diff --git a/community/preload/preload.install b/community/preload/preload.install
new file mode 100644
index 000000000..2c758c265
--- /dev/null
+++ b/community/preload/preload.install
@@ -0,0 +1,30 @@
+PRELOAD_STATE=/var/lib/preload/preload.state
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ if [ `vercmp $2 0.6.3-2` -lt 0 ]; then
+ echo "Backing up your state file..."
+ cp -af ${PRELOAD_STATE} ${PRELOAD_STATE}.backup
+ fi
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ `vercmp $2 0.6.3-2` -lt 0 -a -f ${PRELOAD_STATE}.backup ]; then
+ echo "Restoring the state file..."
+ mv -f ${PRELOAD_STATE}.backup ${PRELOAD_STATE}
+ fi
+}
+
+# arg 1: the old package version
+post_remove() {
+ echo
+ echo "Leaving ${PRELOAD_STATE} intact in case one day you want to"
+ echo "install preload again. If you are sure you don't need it anymore, please"
+ echo "remove it manually. Log files in /var/log have not been removed as well."
+ echo
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/preload/rc.preload b/community/preload/rc.preload
new file mode 100644
index 000000000..a3cb01ba0
--- /dev/null
+++ b/community/preload/rc.preload
@@ -0,0 +1,97 @@
+#!/bin/bash
+#
+# /etc/rc.d/init.d/preload
+#
+# Starts the preload daemon
+#
+# Heavily modified for Arch Linux by Leslie P. Polzer <polzer@gnu.org>.
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/preload`
+
+if [ -f /etc/conf.d/preload ]; then
+ . /etc/conf.d/preload
+fi
+
+MIN_MEMORY=${MIN_MEMORY:-256}
+# Check for > MIN_MEMORY MB
+free -m | awk '/Mem:/ {exit ($2 >= ('"$MIN_MEMORY"'))?0:1}' || exit 0
+
+RETVAL=0
+
+#
+# See how we were called.
+#
+
+start() {
+ if [ -z "$PID" ]; then
+ stat_busy "Starting preload daemon: "
+ /usr/sbin/preload $PRELOAD_OPTS
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ if [ -n $IONICE_OPTS ]; then
+ /usr/bin/ionice $IONICE_OPTS -p "`pidof -o %PPID /usr/sbin/preload`"
+ fi
+ add_daemon preload
+ stat_done
+ else
+ stat_fail
+ fi
+ fi
+ return $RETVAL
+}
+
+stop() {
+ stat_busy "Stopping preload daemon: "
+ kill $PID &>/dev/null
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ rm_daemon preload
+ stat_done
+ PID=""
+ else
+ stat_fail
+ fi
+ return $RETVAL
+}
+
+
+restart() {
+ $0 stop
+ sleep 1
+ $0 start
+}
+
+reload() {
+ trap "" SIGHUP
+ kill -HUP $PID
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ reload)
+ reload
+ ;;
+ restart)
+ restart
+ ;;
+ condrestart)
+ if [ ! -z $PID ]; then
+ restart
+ else
+ stat_fail
+ fi
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|condrestart|reload}"
+ exit 1
+esac
+
+exit $RETVAL
diff --git a/community/privoxy/PKGBUILD b/community/privoxy/PKGBUILD
new file mode 100644
index 000000000..7e86f05be
--- /dev/null
+++ b/community/privoxy/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id$
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Juergen Hoetzel <juergen@hoetzel.info>
+# Contributor: basilburn (basilburn), Paul Bredbury (brebs)
+
+pkgname=privoxy
+pkgver=3.0.17
+pkgrel=1
+pkgdesc='A web proxy with advanced filtering capabilities.'
+arch=('i686' 'x86_64')
+url='http://www.privoxy.org'
+license=('GPL')
+depends=('pcre' 'zlib')
+makedepends=('autoconf')
+backup=('etc/conf.d/privoxy'
+ 'etc/privoxy/'{config,trust,default.action,user.filter,default.filter}
+ 'etc/privoxy/'{match-all,user}.action
+ 'etc/logrotate.d/privoxy')
+install='privoxy.install'
+source=("http://downloads.sourceforge.net/ijbswa/${pkgname}-${pkgver}-stable-src.tar.gz"
+ 'privoxy'
+ 'privoxy.logrotate.d'
+ 'privoxy.conf.d')
+md5sums=('9d363d738a3f3d73e774d6dfeafdb15f'
+ 'a799e4d4f0ebb7f08190fa2bc961f439'
+ 'a364c34c8dc6eb78c9a6b777237932de'
+ '27830ef79418e277b90c1c1fa933f876')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+
+ autoheader
+ autoconf
+ ./configure --prefix=/usr --sysconfdir=/etc/privoxy
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+
+ make prefix="${pkgdir}/usr" MAN_DEST="${pkgdir}/usr/share/man/man1" GROUP=42 \
+ CONF_BASE="${pkgdir}/etc/privoxy" VAR_DEST="${pkgdir}/var" install
+
+ # Don't overwrite existing log files!
+ rm "${pkgdir}/var/log/privoxy/"*
+
+ install -Dm0755 "${srcdir}/privoxy" "${pkgdir}/etc/rc.d/privoxy"
+ install -Dm0644 "${srcdir}/privoxy.logrotate.d" "${pkgdir}/etc/logrotate.d/privoxy"
+ install -Dm0644 "${srcdir}/privoxy.conf.d" "${pkgdir}/etc/conf.d/privoxy"
+
+ # Fix config paths.
+ sed -i -e 's#^confdir.*$#confdir /etc/privoxy#' -e 's#^logdir.*$#logdir /var/log/privoxy#' \
+ -e '/^user-manual/s#.*#\#user-manual /usr/share/doc/privoxy/user-manual/#' \
+ "${pkgdir}/etc/privoxy/config"
+
+ # Fix group ownership and permissions.
+ chgrp -R 42 "${pkgdir}/etc/privoxy/"
+ chgrp -R 42 "${pkgdir}/var/log/privoxy/"
+
+ find "${pkgdir}/etc/privoxy/" -type d | xargs chmod 0770
+ find "${pkgdir}/etc/privoxy/" -type f | xargs chmod 0660
+ chmod 0770 "${pkgdir}/var/log/privoxy"
+}
diff --git a/community/privoxy/privoxy b/community/privoxy/privoxy
new file mode 100755
index 000000000..eb85bd5f9
--- /dev/null
+++ b/community/privoxy/privoxy
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/privoxy ] && . /etc/conf.d/privoxy
+
+PID=`pidof -o %PPID /usr/sbin/privoxy`
+
+case "$1" in
+ start)
+ stat_busy "Starting Privoxy"
+ # create missing logfiles
+ for f in logfile jarfile; do
+ touch "/var/log/privoxy/${f}"
+ chgrp "${PRIVOXY_GROUP}" "/var/log/privoxy/${f}"
+ chmod 0660 "/var/log/privoxy/${f}"
+ done
+ [ -z "$PID" ] && /usr/sbin/privoxy --user ${PRIVOXY_USER}.${PRIVOXY_GROUP} \
+ ${PRIVOXY_ARGS} ${PRIVOXY_CONF}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon privoxy
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Privoxy"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon privoxy
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/privoxy/privoxy.conf.d b/community/privoxy/privoxy.conf.d
new file mode 100644
index 000000000..9aa11cd67
--- /dev/null
+++ b/community/privoxy/privoxy.conf.d
@@ -0,0 +1,10 @@
+# Location of the config file.
+PRIVOXY_CONF='/etc/privoxy/config'
+
+# User and group that privoxy will be run as.
+PRIVOXY_USER='privoxy'
+PRIVOXY_GROUP='privoxy'
+
+# Additional arguments.
+PRIVOXY_ARGS="--pidfile /var/run/privoxy.pid"
+
diff --git a/community/privoxy/privoxy.install b/community/privoxy/privoxy.install
new file mode 100644
index 000000000..c3ed75111
--- /dev/null
+++ b/community/privoxy/privoxy.install
@@ -0,0 +1,19 @@
+post_install() {
+ groupadd -g 42 privoxy &>/dev/null
+ useradd -u 42 -g privoxy -d /var/spool/privoxy -s /bin/false privoxy &>/dev/null
+ chown -R privoxy:privoxy /etc/privoxy /var/log/privoxy
+
+ if [ ! -d /var/spool/privoxy ]; then
+ install -dm0770 -o privoxy -g privoxy /var/spool/privoxy
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ userdel privoxy &>/dev/null
+ groupdel privoxy &>/dev/null
+ rm -rf var/spool/privoxy
+}
diff --git a/community/privoxy/privoxy.logrotate.d b/community/privoxy/privoxy.logrotate.d
new file mode 100644
index 000000000..ce52108d3
--- /dev/null
+++ b/community/privoxy/privoxy.logrotate.d
@@ -0,0 +1,8 @@
+/var/log/privoxy/jarfile /var/log/privoxy/logfile {
+ create 660 root privoxy
+ notifempty
+ compress
+ postrotate
+ /bin/kill -HUP `cat /var/run/privoxy.pid 2>/dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/community/procstatd/PKGBUILD b/community/procstatd/PKGBUILD
new file mode 100644
index 000000000..5f11cecf9
--- /dev/null
+++ b/community/procstatd/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 5270 2009-11-07 13:16:35Z ibiru $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jason Chu <jason@archlinux.org>
+
+pkgname=procstatd
+pkgver=1.4.2
+pkgrel=5
+pkgdesc="A daemon that can be run either from userspace or inetd that can be queried via a simple API to parse various files in /proc"
+arch=('i686 x86_64')
+license=('GPL')
+source=(http://downloads.sourceforge.net/herdtools/$pkgname.tar.gz)
+md5sums=('1fdeaf05ca6337f5c02e76a76c53c407')
+url="http://www.phy.duke.edu/brahma/"
+
+build() {
+cd $startdir/src/$pkgname
+# Get rid of the funky mkae install forever bug
+sed -i 's/make install/echo/;s/cd watchman/echo/' Makefile
+make || return 1
+make INSTDIR=$startdir/pkg/usr install
+mkdir ${pkgdir}/usr/share
+mv ${pkgdir}/usr/man ${pkgdir}/usr/share/man
+#mkdir -p $startdir/pkg/usr/share/procstatd-extras
+#cp -R webwatch $startdir/pkg/usr/share/procstatd-extras/
+}
diff --git a/community/proj/ChangeLog b/community/proj/ChangeLog
new file mode 100644
index 000000000..017763ec9
--- /dev/null
+++ b/community/proj/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Fixed license dir | license -> licenses
diff --git a/community/proj/PKGBUILD b/community/proj/PKGBUILD
new file mode 100644
index 000000000..353b54ad5
--- /dev/null
+++ b/community/proj/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 5889 2009-11-22 12:14:56Z ibiru $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=proj
+pkgver=4.7.0
+pkgrel=1
+pkgdesc="Cartographic Projections library"
+arch=('i686' 'x86_64')
+url="http://trac.osgeo.org/proj/"
+license=('MIT')
+options=('!libtool')
+source=(http://download.osgeo.org/proj/$pkgname-$pkgver.tar.gz
+ http://download.osgeo.org/proj/$pkgname-datumgrid-1.5.zip
+ http://www.swisstopo.admin.ch/internet/swisstopo/en/home/topics/survey/lv03-lv95/chenyx06/distortion_grids.parsys.65772.downloadList.94632.DownloadFile.tmp/chenyx06antv2.zip)
+md5sums=('927d34623b52e0209ba2bfcca18fe8cd'
+ 'f5bf28a2a9c6afe9a3f670f0c0adb783'
+ 'fbbfe2b6bcbc41168fe3bdc4a6c1082a')
+
+
+build() {
+ bsdtar -xzvf ${srcdir}/${pkgname}-datumgrid-1.5.zip -C ${srcdir}/proj-${pkgver}/nad
+ bsdtar -xzvf ${srcdir}/chenyx06.zip -C ${srcdir}/proj-${pkgver}/nad CHENYX06.gsb
+
+ cd ${srcdir}/proj-${pkgver}
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ install -D COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/projectm/PKGBUILD b/community/projectm/PKGBUILD
new file mode 100644
index 000000000..74bbe8876
--- /dev/null
+++ b/community/projectm/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 78581 2010-04-26 20:01:05Z andrea $
+# Maintainer:
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=projectm
+pkgver=2.0.1
+pkgrel=2
+pkgdesc="A music visualizer which uses 3D accelerated iterative image based rendering"
+arch=('i686' 'x86_64')
+url="http://projectm.sourceforge.net/"
+license=('LGPL')
+depends=('gcc-libs' 'ftgl' 'glew' 'gtkglext')
+makedepends=('pkgconfig' 'cmake')
+source=(http://downloads.sourceforge.net/${pkgname}/projectM-${pkgver}-Source.tar.gz)
+md5sums=('f8bf795878cdbbef54784cf2390b4c89')
+
+build() {
+ cd ${srcdir}
+# sed -i 's|FTGL/FTGL.h|FTGL/ftgl.h|' Renderer.hpp || return 1
+# sed -i "s|#include <iostream>|#include <cstdio>\n#include <iostream>|" BuiltinParams.cpp || return 1
+ mkdir build
+ cd build
+ cmake ../projectM-${pkgver}-Source \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/prosody/ChangeLog b/community/prosody/ChangeLog
new file mode 100644
index 000000000..45f3a05fd
--- /dev/null
+++ b/community/prosody/ChangeLog
@@ -0,0 +1,398 @@
+2009-11-23 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.6.0-1 for changeset 6c5b7e66bee4
+ [d573d1d7a403] [tip]
+
+ * .hgtags:
+ Removed tag v0.6.0-1
+ [6c5b7e66bee4] [v0.6.0-1]
+
+ * PKGBUILD:
+ Use correct package name and version
+ [1e65e6a877d3]
+
+ * .hgtags:
+ Added tag v0.6.0-1 for changeset ad52fee15148
+ [8196689dd4c4]
+
+ * PKGBUILD, prosody.cfg.lua:
+ Included mod_compression in example configuration file
+ [ad52fee15148]
+
+ * ChangeLog:
+ Updated ChangeLog
+ [34b6046aca14]
+
+ * PKGBUILD:
+ Updated checksums
+ [3b4c28f28321]
+
+ * PKGBUILD, prosody.cfg.lua:
+ New upstream version
+ [9d201755b63d]
+
+2009-10-22 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.6.0rc1-1 for changeset c0a99ab935a8
+ [a0e2015435b6]
+
+ * ChangeLog, PKGBUILD:
+ New upstream version
+ [c0a99ab935a8] [v0.6.0rc1-1]
+
+ * PKGBUILD:
+ Removed conflicts
+ [0f0560190a81]
+
+ * PKGBUILD:
+ Removed makedepends for gcc, the base-devel group is assumed to
+ exist
+ [4160ed469fa4]
+
+ * PKGBUILD:
+ Fix typo in PKGBUILD
+ [85d988c7e4a5]
+
+2009-09-28 Dwayne Bent <dbb.0@liqd.org>
+
+ * ChangeLog, PKGBUILD:
+ New upstream version
+ [3e4ffcdc887a]
+
+2009-07-29 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.5.1-1 for changeset 1be51884e580
+ [74f32914279c]
+
+ * ChangeLog, PKGBUILD:
+ New upstream version
+ [1be51884e580] [v0.5.1-1]
+
+2009-07-20 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Corrected tag name
+ [d9662df69ab4]
+
+ * .hgtags:
+ Added tag v0.5.0 for changeset d228983b5873
+ [a350368643eb]
+
+ * PKGBUILD:
+ New upstream version
+ [d228983b5873] [v0.5.0-1]
+
+ * ChangeLog:
+ Updated ChangeLog
+ [111cf16bfc8b]
+
+2009-07-14 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.5.0rc2-1 for changeset 701e6c5ed639
+ [828bb0fc4e5e]
+
+ * PKGBUILD:
+ New upstream version
+ [701e6c5ed639] [v0.5.0rc2-1]
+
+ * ChangeLog:
+ Updated ChangeLog
+ [7616eaf8b835]
+
+ * prosody.cfg.lua:
+ Enabled PEP in default configuration
+ [c8a7c4d15e38]
+
+2009-07-11 Dwayne Bent <dbb.0@liqd.org>
+
+ * prosody.cfg.lua:
+ Cleaned up and added new modules to default configuration file
+ [07fdc8fd8ff9]
+
+ * PKGBUILD:
+ Added luasec back as hard dependency
+ [9506bff48c77]
+
+ * .hgtags:
+ Added tag v0.5.0rc1-2 for changeset a252809a03a3
+ [803ace20879a]
+
+ * ChangeLog, PKGBUILD:
+ New release version
+ [a252809a03a3] [v0.5.0rc1-2]
+
+ * PKGBUILD:
+ Added make before make install
+
+ This should fix Prosody not correctly reporting version.
+ [881eca5b8e0e]
+
+ * .hgtags:
+ Added tag v0.5.0rc1-1 for changeset f1d918d4779e
+ [1fc8dbc498d5]
+
+ * ChangeLog:
+ New upstream version
+ [f1d918d4779e] [v0.5.0rc1-1]
+
+ * PKGBUILD, prosody.rcd:
+ Redid indent alignment and silenced successful output of prosodyctl
+ [de9bdd756bd8]
+
+ * PKGBUILD, prosody-datadir.diff:
+ Converted to prosody-devel package
+ [92e5e98529dd]
+
+2009-06-30 Dwayne Bent <dbb.0@liqd.org>
+
+ * PKGBUILD, prosody.cfg.lua:
+ Moved luasec from depends to optdepends
+
+ Since luasec is not strictly required for Prosody to operate it is
+ now an optional dependency.
+ [7079ec87eef5]
+
+2009-06-27 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.4.2-4 for changeset 0345a59e8495
+ [1e488e1c03eb]
+
+ * PKGBUILD:
+ New release version
+ [0345a59e8495] [v0.4.2-4]
+
+ * prosody.install:
+ Added note about ChangeLog to install script
+ [c683ef309b6a]
+
+ * PKGBUILD, prosody.rcd:
+ Use prosodyctl to start/stop daemon
+ [eaf4c26bb29f]
+
+ * PKGBUILD, prosody.rcd:
+ Refactored start, stop, reload in rc.d script
+
+ Start, stop, reload will not display a friendly error message if
+ Prosody is not running when you attempt to stop or reload, or if
+ Prosody is already running when you attempt to start. Reload also
+ now utilizes the get_pid function.
+ [9873d5256a42]
+
+ * PKGBUILD, prosody.logrotated:
+ Use explicit log filenames in logrotate script
+
+ This fixes an issue where if you do not have olddir enabled, rotated
+ logs will be rotated again.
+ [38ea11efacb9]
+
+2009-06-22 Dwayne Bent <dbb.0@liqd.org>
+
+ * PKGBUILD, prosody.rcd:
+ Added status command to rc.d usage
+ [1b31e88d992d]
+
+ * PKGBUILD, prosody.rcd:
+ Added reload command
+ [62e3cbdff1d5]
+
+ * prosody.install:
+ Updated leftover olddir path
+ [e91b3fc2a9ee]
+
+ * PKGBUILD, prosody.rcd:
+ Use explicit source command
+ [b790c098d519]
+
+ * prosody.install:
+ Removed tab characters
+ [870316274137]
+
+2009-06-20 Dwayne Bent <dbb.0@liqd.org>
+
+ * PKGBUILD:
+ Updated md5 sums
+ [74ce2ab8a96b]
+
+ * prosody.logrotated:
+ Changed default olddir path
+ [cef8226473c2]
+
+ * prosody.rcd:
+ Removed sleep delay in restart
+ [a94167e59091]
+
+2009-06-10 Dwayne Bent <dbb.0@liqd.org>
+
+ * prosody.cfg.lua:
+ Removed per-host certificate entry in example configuration
+
+ Until Issue #30
+ [http://code.google.com/p/lxmppd/issues/detail?id=30] is fixed per-
+ host certificates have no effect.
+ [d00e35979450]
+
+2009-06-05 Dwayne Bent <dbb.0@liqd.org>
+
+ * ChangeLog:
+ Added ChangeLog
+ [7298c4da135a]
+
+2009-06-03 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.4.2-3 for changeset 028183ffeba8
+ [7dbfd040e908]
+
+ * PKGBUILD:
+ New release version
+ [028183ffeba8] [v0.4.2-3]
+
+ * PKGBUILD:
+ Removed superfluous make command
+ [3d96c98bac26]
+
+ * PKGBUILD:
+ More consistent use of quote marks
+ [f6bd5b595b2d]
+
+ * PKGBUILD, prosody.logrotated:
+ Correct PID file location in logrotate script
+ [cec60904c739]
+
+2009-05-30 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.4.2-2 for changeset 37268dd0d4fd
+ [a8a197635bb6]
+
+ * PKGBUILD:
+ New release version
+ [37268dd0d4fd] [v0.4.2-2]
+
+ * PKGBUILD:
+ Use install instead of mkdir in PKGBUILD
+ [8e48108bbe9a]
+
+ * PKGBUILD, prosody-datadir.diff:
+ Apply patch to fix world-readable data directory
+ [2c706dda941c]
+
+2009-05-23 Dwayne Bent <dbb.0@liqd.org>
+
+ * .hgtags:
+ Added tag v0.4.2-1 for changeset 1d29ea2dc519
+ [e2d2962de3f7]
+
+ * PKGBUILD:
+ New upstream release
+ [1d29ea2dc519] [v0.4.2-1]
+
+ * prosody.cfg.lua:
+ Aesthetic changes to the configuration file
+ [d5d848a58965]
+
+2009-05-22 Dwayne Bent <dbb.0@liqd.org>
+
+ * prosody.cfg.lua:
+ Removed extraneous semicolon in configuration file
+ [9a002c74edc2]
+
+ * PKGBUILD:
+ Cleaned up PKGBUILD license
+ [82cb66a84de8]
+
+2009-05-21 Dwayne Bent <dbb.0@liqd.org>
+
+ * prosody.install:
+ Changed formatting of leftover path messages.
+ [ac6069de93c9]
+
+ * prosody.install:
+ Moved prosody user removal to post_remove.
+ [2c60e27d0c13]
+
+ * PKGBUILD, prosody.cfg.lua:
+ Added comment about pidfile in prosody configuration file.
+ [8b9fa4da48ca]
+
+ * .hgtags:
+ Added tag v0.4.1-5 for changeset 69962178bcae
+ [01812099521b]
+
+ * PKGBUILD:
+ New release version.
+ [69962178bcae] [v0.4.1-5]
+
+ * PKGBUILD, prosody.cfg.lua, prosody.install, prosody.rcd:
+ Refactored rc.d daemon script.
+
+ Prosody now writes its own PID file to /var/run/prosody/prosody.pid.
+ rc.d script now uses '/bin/kill -0' to check for running process
+ instead of awkward combination of 'ps' and 'awk'.
+ [4f0e937c5148]
+
+ * prosody.install:
+ Added post_install message with link to Arch Wiki documentation.
+ [88d99267ad19]
+
+2009-05-19 Dwayne Bent <dbb.0@liqd.org>
+
+ * PKGBUILD:
+ Add logrotate script to backup array.
+ [d4f5445707f7]
+
+2009-05-11 Dwayne Bent <dbb.0@liqd.org>
+
+ * prosody.install:
+ Fixed install script attempting to add prosody group when it already
+ exists.
+ [7d7807aa5d30]
+
+ * .hgtags:
+ Added tag v0.4.1-4 for changeset 442f62077f30
+ [389c885a35c5]
+
+ * PKGBUILD:
+ New release version.
+ [442f62077f30] [v0.4.1-4]
+
+ * PKGBUILD:
+ Generated correct checksums for source files.
+ [162859c9e287]
+
+ * .hgtags:
+ Added tag v0.4.1-3 for changeset b629392e4716
+ [f3d11fbd0b45]
+
+ * PKGBUILD:
+ New release version.
+ [b629392e4716] [v0.4.1-3]
+
+ * prosody.logrotated:
+ Fixed wrong PID file path in logrotate script.
+ [0871a4a12392]
+
+2009-05-07 Dwayne Bent <dbb.0@liqd.org>
+
+ * prosody.cfg.lua, prosody.rcd:
+ Removed trailing whitespace.
+ [7c86c073650e]
+
+ * prosody.cfg.lua:
+ Added logging timestamps to default configuration.
+ [46f9111d47ce]
+
+ * .hgtags:
+ Added tag v0.4.1-2 for changeset 24b9dee19e65
+ [5240b39d76d7]
+
+ * PKGBUILD, prosody.cfg.lua, prosody.install, prosody.logrotated,
+ prosody.rcd:
+ Initial commit.
+ [24b9dee19e65] [v0.4.1-2]
+
diff --git a/community/prosody/PKGBUILD b/community/prosody/PKGBUILD
new file mode 100644
index 000000000..2bb50d9c1
--- /dev/null
+++ b/community/prosody/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 44041 2011-04-01 17:02:10Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Dwayne Bent <dbb.0@liqd.org>
+# Contributor: Paul-Sebastian Manole <brokenthorn@gmail.com>
+
+pkgname=prosody
+pkgver=0.7.0
+pkgrel=6
+pkgdesc="Lightweight and extensible Jabber/XMPP server written in Lua."
+arch=('i686' 'x86_64')
+url="http://prosody.im/"
+license=('MIT')
+depends=('lua>=5.1' 'luasocket' 'luaexpat' 'luafilesystem' 'libidn>=0.5.18' 'openssl')
+optdepends=('luasec: TLS encryption support'
+ 'lua-zlib: compression support')
+install=prosody.install
+backup=('etc/logrotate.d/prosody'
+ 'etc/prosody/prosody.cfg.lua')
+source=("http://prosody.im/depot/${pkgver}/prosody-${pkgver}.tar.gz"
+ 'prosody.rcd'
+ 'prosody.logrotated'
+ 'fix-config.patch')
+md5sums=('69cd4f4e89dbef668a6240cde419dedf'
+ 'b1b159baab8d49b9ec08afaea1f66400'
+ '26466fdbea87963a3ca6f48f76fe4a29'
+ '431f78012ff4c1d66c173e0b0b3c7c16')
+
+build() {
+ cd "$srcdir/prosody-$pkgver"
+
+ patch -p1 <$srcdir/fix-config.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc/prosody \
+ --datadir=/var/lib/prosody
+ make
+ make DESTDIR="$pkgdir" install
+
+ rm $pkgdir/etc/prosody/certs/*
+
+ install -d "$pkgdir/etc/rc.d"
+ install -d "$pkgdir/etc/logrotate.d"
+ install -d "$pkgdir/var/log/prosody"
+
+ install -o root -g root -m 755 "$srcdir/prosody.rcd" \
+ "$pkgdir/etc/rc.d/prosody"
+ install -o root -g root -m 644 "$srcdir/prosody.logrotated" \
+ "$pkgdir/etc/logrotate.d/prosody"
+
+ install -D -m0644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/prosody/fix-config.patch b/community/prosody/fix-config.patch
new file mode 100644
index 000000000..bd9a5d755
--- /dev/null
+++ b/community/prosody/fix-config.patch
@@ -0,0 +1,30 @@
+diff -wbBur prosody-0.7.0/prosody.cfg.lua.dist prosody-0.7.0.my/prosody.cfg.lua.dist
+--- prosody-0.7.0/prosody.cfg.lua.dist 2010-06-13 00:23:02.000000000 +0000
++++ prosody-0.7.0.my/prosody.cfg.lua.dist 2011-01-27 16:09:24.000000000 +0000
+@@ -21,6 +21,8 @@
+ -- (see http://prosody.im/doc/creating_accounts for info)
+ -- Example: admins = { "user1@example.com", "user2@example.net" }
+ admins = { }
++daemonize = true
++pidfile = "/var/run/prosody/prosody.pid"
+
+ -- Enable use of libevent for better performance under high load
+ -- For more information see: http://prosody.im/doc/libevent
+@@ -54,7 +56,7 @@
+ "register"; -- Allow users to register on this server using a client and change passwords
+
+ -- Other specific functionality
+- --"posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
++ "posix"; -- POSIX functionality, sends server to background, enables syslog, etc.
+ --"console"; -- Opens admin telnet interface on localhost port 5582
+ --"bosh"; -- Enable BOSH clients, aka "Jabber over HTTP"
+ --"httpserver"; -- Serve static files from a directory over HTTP
+@@ -90,7 +92,7 @@
+
+ -- Logging configuration
+ -- For advanced logging see http://prosody.im/doc/logging
+-log = "prosody.log";
++log = "/var/log/prosody/prosody.log";
+ debug = false; -- Log debug messages?
+
+ ----------- Virtual hosts -----------
diff --git a/community/prosody/prosody.install b/community/prosody/prosody.install
new file mode 100644
index 000000000..c70a78f3c
--- /dev/null
+++ b/community/prosody/prosody.install
@@ -0,0 +1,41 @@
+post_install() {
+ if [ -z "`grep '^prosody:' /etc/group`" ]; then
+ groupadd -g 412 prosody
+ fi
+ if [ -z "`grep '^prosody:' /etc/passwd`" ]; then
+ useradd -u 412 -d /var/lib/prosody -g prosody -s /bin/false prosody
+ fi
+
+ chown prosody:prosody var/lib/prosody
+ chown prosody:prosody var/log/prosody
+ chown prosody:prosody var/run/prosody
+
+cat << EOF
+
+==> Documentation: http://wiki.archlinux.org/index.php/Prosody
+==> ChangeLog: pacman -Qc prosody
+
+EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ userdel prosody
+
+ paths=(/etc/prosody /var/lib/prosody /var/log/prosody
+ /var/log/old/prosody)
+
+ first=true
+ for path in ${paths[@]}; do
+ if [ -d $path ]; then
+ if $first; then
+ first=false
+ echo "==> Leftover Paths:"
+ fi
+ echo "==> $path"
+ fi
+ done
+}
diff --git a/community/prosody/prosody.logrotated b/community/prosody/prosody.logrotated
new file mode 100644
index 000000000..5659ba01f
--- /dev/null
+++ b/community/prosody/prosody.logrotated
@@ -0,0 +1,9 @@
+/var/log/prosody/prosody.log /var/log/prosody/prosody.err {
+ # olddir /var/log/old/prosody
+ create 644 prosody prosody
+ sharedscripts
+ missingok
+ postrotate
+ /bin/kill -HUP `cat /var/run/prosody/prosody.pid 2> /dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/community/prosody/prosody.rcd b/community/prosody/prosody.rcd
new file mode 100644
index 000000000..1f873602f
--- /dev/null
+++ b/community/prosody/prosody.rcd
@@ -0,0 +1,93 @@
+#!/bin/bash
+
+daemon_name=prosody
+pid_file=/var/run/$daemon_name/$daemon_name.pid
+
+source /etc/rc.conf
+source /etc/rc.d/functions
+
+get_pid() {
+ if [ -f $pid_file ]; then
+ /bin/kill -0 $(cat $pid_file)
+ if [ $? == 0 ]; then
+ cat $pid_file
+ fi
+ fi
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ [ -d /var/run/$daemon_name ] || mkdir -p /var/run/$daemon_name
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f $pid_file ] && rm -f $pid_file
+ mkdir -p `dirname $pid_file`
+ prosodyctl start 1>/dev/null 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ printhl "$daemon_name is already running"
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ if [ ! -z "$PID" ]; then
+ prosodyctl stop 1>/dev/null 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f $pid_file &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ printhl "$daemon_name is not running"
+ exit 1
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+
+ reload)
+ stat_busy "Reloading $daemon_name"
+ PID=$(get_pid)
+ if [ ! -z "$PID" ]; then
+ /bin/kill -HUP $PID 2> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ stat_done
+ fi
+ else
+ stat_fail
+ printhl "$daemon_name is not running"
+ fi
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|reload|status}"
+ esac
+
+exit 0
diff --git a/community/protobuf/PKGBUILD b/community/protobuf/PKGBUILD
new file mode 100644
index 000000000..a91085f0b
--- /dev/null
+++ b/community/protobuf/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Thomas S Hatch <thatch45@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=protobuf
+pkgver=2.4.0a
+pkgrel=1
+pkgdesc="A way of encoding structured data in an efficient yet extensible format"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/protobuf/"
+license=('APACHE')
+depends=('gcc-libs' 'zlib')
+options=(!libtool)
+source=(http://$pkgname.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('61df3f63ec284fc6f57a68c67e4918c6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./autogen.sh
+ ./configure --prefix=/usr --disable-static
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/proxytunnel/PKGBUILD b/community/proxytunnel/PKGBUILD
new file mode 100644
index 000000000..078540f3f
--- /dev/null
+++ b/community/proxytunnel/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 14239 2010-04-02 09:44:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Georg Grabler (STiAT) <ggrabler@gmail.com>
+
+pkgname=proxytunnel
+pkgver=1.9.0
+pkgrel=2
+pkgdesc="a program that connects stdin and stdout to a server somewhere on the network, through a standard HTTPS proxy"
+arch=('i686' 'x86_64')
+url="http://proxytunnel.sourceforge.net"
+license=('GPL')
+depends=('openssl')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tgz)
+md5sums=('d74472b89c3f3b3b0abf6bd809ae34c2')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ sed -i 's|PREFIX =/usr/local|PREFIX =/usr|g' Makefile
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/psimedia/PKGBUILD b/community/psimedia/PKGBUILD
new file mode 100644
index 000000000..d44f85c08
--- /dev/null
+++ b/community/psimedia/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Vladimir Kutyavin <vlkut-at-bk-dot-ru>
+
+pkgname=psimedia
+pkgver=1.0.3
+pkgrel=5
+pkgdesc="Voice and video chat plugin for Psi-like IM clients. The implementation is based on GStreamer."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://delta.affinix.com/psimedia/"
+depends=('psi' 'speex' 'gstreamer0.10-base' 'qt' 'gstreamer0.10-good-plugins')
+makedepends=('pkgconfig')
+source=(http://delta.affinix.com/download/psimedia/$pkgname-$pkgver.tar.bz2)
+md5sums=('1be71c37d71c655ffc2c53cf86c77a7a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure
+ make || return 1
+ install -D -m644 ${srcdir}/$pkgname-$pkgver/gstprovider/libgstprovider.so ${pkgdir}/usr/lib/psi/plugins/libgstprovider.so
+}
+
diff --git a/community/pspshrink/PKGBUILD b/community/pspshrink/PKGBUILD
new file mode 100644
index 000000000..9b6ba9540
--- /dev/null
+++ b/community/pspshrink/PKGBUILD
@@ -0,0 +1,22 @@
+#$Id: PKGBUILD 6008 2009-11-25 09:49:07Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Tomas Acauan Schertel <tschertel@gmail.com>
+pkgname=pspshrink
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="PSP Shrink allows you to shrink your isos to the cso format."
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/pspshrink/"
+license=('GPL2')
+makedepends=(gtkmm)
+optdepends=('gtkmm: To use pspshrinkui ')
+install=$pkgname.install
+source=(http://pspshrink.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('c9f7dc58c983016047ceebbacb9856e9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/pspshrink/pspshrink.install b/community/pspshrink/pspshrink.install
new file mode 100644
index 000000000..f4dd28c42
--- /dev/null
+++ b/community/pspshrink/pspshrink.install
@@ -0,0 +1,19 @@
+post_install()
+{
+ echo "----------------------------------------------------------"
+ echo "PSP Shrink comes with a command line and a GUI version."
+ echo "Usage command line version:"
+ echo "pspshrink compressionlevel inputfile outputfile"
+ echo "example: pspshrink 9 image.iso image.cso"
+ echo "To use GUI version call pspshrinkui or go to Utility menu."
+ echo "----------------------------------------------------------"
+}
+
+
+post_upgrade() {
+ post_install
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/psqlodbc/PKGBUILD b/community/psqlodbc/PKGBUILD
new file mode 100644
index 000000000..176acffd9
--- /dev/null
+++ b/community/psqlodbc/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 14188 2010-04-02 00:06:50Z andrea $
+# Maintainer:
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux-br.org>
+# Contributor: Rick Rein <jeebusroxors@gmail.com>
+
+pkgname=psqlodbc
+pkgver=08.04.0100
+pkgrel=2
+pkgdesc="PostgreSQL ODBC driver"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.postgresql.org"
+depends=('unixodbc' 'postgresql-libs' 'libtool')
+makedepends=('postgresql')
+options=('!libtool')
+source=(ftp://ftp2.it.postgresql.org/mirrors/postgres//odbc/versions/src/$pkgname-$pkgver.tar.gz
+ fix-function-declarations.patch)
+md5sums=('2328c3e97e6a376620a5d317137515ff'
+ 'f1189f9c6ae0b5bfb5ee8423eaa4076f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 -i "$srcdir/fix-function-declarations.patch" || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/psqlodbc/fix-function-declarations.patch b/community/psqlodbc/fix-function-declarations.patch
new file mode 100644
index 000000000..4504661b0
--- /dev/null
+++ b/community/psqlodbc/fix-function-declarations.patch
@@ -0,0 +1,47 @@
+diff -upr psqlodbc-08.04.0100.orig/odbcapi30.c psqlodbc-08.04.0100/odbcapi30.c
+--- psqlodbc-08.04.0100.orig/odbcapi30.c 2008-10-07 00:46:09.000000000 +0300
++++ psqlodbc-08.04.0100/odbcapi30.c 2009-09-19 20:13:57.000000000 +0300
+@@ -118,13 +118,7 @@ SQLColAttribute(SQLHSTMT StatementHandle
+ SQLPOINTER CharacterAttribute,
+ SQLSMALLINT BufferLength,
+ SQLSMALLINT *StringLength,
+-#if defined(_WIN64)
+ SQLLEN *NumericAttribute
+-#elif defined(WITH_UNIXODBC) || defined(WIN32)
+- SQLPOINTER NumericAttribute
+-#else
+- SQLLEN *NumericAttribute
+-#endif
+ )
+ {
+ CSTR func = "SQLColAttribute";
+diff -upr psqlodbc-08.04.0100.orig/odbcapi30w.c psqlodbc-08.04.0100/odbcapi30w.c
+--- psqlodbc-08.04.0100.orig/odbcapi30w.c 2009-03-22 16:17:10.000000000 +0200
++++ psqlodbc-08.04.0100/odbcapi30w.c 2009-09-19 20:22:17.000000000 +0300
+@@ -262,11 +262,7 @@ SQLRETURN SQL_API SQLColAttributeW(
+ SQLPOINTER pCharAttr,
+ SQLSMALLINT cbCharAttrMax,
+ SQLSMALLINT *pcbCharAttr,
+-#if defined(WITH_UNIXODBC) || (defined(WIN32) && ! defined(_WIN64))
+- SQLPOINTER pNumAttr
+-#else
+ SQLLEN *pNumAttr
+-#endif
+ )
+ {
+ CSTR func = "SQLColAttributeW";
+diff -upr psqlodbc-08.04.0100.orig/odbcapi.c psqlodbc-08.04.0100/odbcapi.c
+--- psqlodbc-08.04.0100.orig/odbcapi.c 2008-11-23 03:00:53.000000000 +0200
++++ psqlodbc-08.04.0100/odbcapi.c 2009-09-19 20:13:56.000000000 +0300
+@@ -1111,11 +1111,7 @@ SQLExtendedFetch(
+ HSTMT hstmt,
+ SQLUSMALLINT fFetchType,
+ SQLLEN irow,
+-#ifdef WITH_UNIXODBC
+- SQLROWSETSIZE *pcrow,
+-#else
+ SQLULEN *pcrow,
+-#endif /* WITH_UNIXODBC */
+ SQLUSMALLINT *rgfRowStatus)
+ {
+ RETCODE ret;
diff --git a/community/pstreams/PKGBUILD b/community/pstreams/PKGBUILD
new file mode 100644
index 000000000..62b446587
--- /dev/null
+++ b/community/pstreams/PKGBUILD
@@ -0,0 +1,18 @@
+# Maintainer: Paulo Matias <matiasΘarchlinux-br·org>
+
+pkgname=pstreams
+pkgver=0.7.0
+pkgrel=1
+pkgdesc='C++ utility for simple IOStream-based Inter-Process Communication.'
+arch=('i686' 'x86_64')
+url='http://pstreams.sourceforge.net'
+license=('LGPL')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('6154b8df98487bd28eb50ad85d5cdba0')
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ install -D -m644 pstream.h \
+ ${pkgdir}/usr/include/pstreams/pstream.h
+}
diff --git a/community/puzzles/PKGBUILD b/community/puzzles/PKGBUILD
new file mode 100644
index 000000000..912af073d
--- /dev/null
+++ b/community/puzzles/PKGBUILD
@@ -0,0 +1,35 @@
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=puzzles
+pkgver=8951
+pkgrel=1
+pkgdesc="Simon Tatham's Portable Puzzle Collection"
+arch=('i686' 'x86_64')
+url="http://www.chiark.greenend.org.uk/~sgtatham/puzzles/"
+license=('MIT')
+makedepends=('pkgconfig')
+depends=('gtk2')
+source=(http://www.chiark.greenend.org.uk/~sgtatham/${pkgname}/${pkgname}-r${pkgver}.tar.gz)
+md5sums=('8707698a75aa052e95c9d7417b44efd0')
+
+build() {
+ cd ${srcdir}/${pkgname}-r${pkgver}
+
+ sed -i 's|\$(gamesdir)|\$(bindir)|' Makefile
+ make prefix=/usr || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-r${pkgver}
+
+ install -d ${pkgdir}/usr/{bin,share/licenses/${pkgname}}
+ install -Dm644 LICENCE ${pkgdir}/usr/share/licenses/${pkgname}/
+
+ make prefix=/usr DESTDIR=${pkgdir} install || return 1
+
+ #fix FS#14600
+ mv ${pkgdir}/usr/bin/net ${pkgdir}/usr/bin/puzzles-net || return 1
+ mv ${pkgdir}/usr/bin/cube ${pkgdir}/usr/bin/puzzles-cube || return 1
+ mv ${pkgdir}/usr/bin/blackbox ${pkgdir}/usr/bin/puzzles-blackbox || return 1
+}
diff --git a/community/pv/PKGBUILD b/community/pv/PKGBUILD
new file mode 100644
index 000000000..7f4651a3b
--- /dev/null
+++ b/community/pv/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 37958 2011-01-19 05:59:36Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=pv
+pkgver=1.2.0
+pkgrel=1
+pkgdesc='A terminal-based tool for monitoring the progress of data through a pipeline'
+arch=('i686' 'x86_64')
+url='http://www.ivarch.com/programs/pv.shtml'
+license=('custom:Artistic 2.0')
+depends=('glibc')
+source=("http://pipeviewer.googlecode.com/files/$pkgname-$pkgver.tar.gz")
+md5sums=('f7cc65c850ac98c6013cc448050eee4b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make; make DESTDIR=$pkgdir install
+ install -Dm644 doc/COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/community/pwmanager/ChangeLog b/community/pwmanager/ChangeLog
new file mode 100644
index 000000000..3bad1ddcd
--- /dev/null
+++ b/community/pwmanager/ChangeLog
@@ -0,0 +1,5 @@
+2007-07-02 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
+2007-06-25 Georg Grabler (STiAT) <ggrabler@gmail.com>
+* Added libtool option
diff --git a/community/pwmanager/PKGBUILD b/community/pwmanager/PKGBUILD
new file mode 100644
index 000000000..c94e9ba5b
--- /dev/null
+++ b/community/pwmanager/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 9064 2010-01-23 12:16:49Z foutrelis $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributors: Pointer <pointer@linux-blog.de>, tmaynard <arch@toddmaynard.com>
+
+pkgname=pwmanager
+pkgver=1.2.4
+pkgrel=4
+pkgdesc="With PwManager you can easily manage your passwords"
+arch=('i686' 'x86_64')
+url="http://passwordmanager.sourceforge.net/"
+license=('GPL')
+depends=('kdelibs3')
+options=('libtool')
+source=(http://downloads.sourceforge.net/sourceforge/passwordmanager/$pkgname-$pkgver.tar.bz2 \
+ build-fix.patch)
+md5sums=('e6f720af9b325bc0e7ea20c9c5e6039f'
+ 'bcc412cb855cba4910e51920ae38a326')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ export PATH=$QTDIR/bin:$PATH
+ cd $startdir/src/$pkgname-$pkgver
+
+ patch -p1 <$srcdir/build-fix.patch
+
+ ./configure --prefix=/opt/kde --without-arts
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+
+ # ugly libtool
+ rm $startdir/pkg/opt/kde/lib/kde3/kded_pwmanager_kwalletemu.la
+}
diff --git a/community/pwmanager/build-fix.patch b/community/pwmanager/build-fix.patch
new file mode 100644
index 000000000..b04078265
--- /dev/null
+++ b/community/pwmanager/build-fix.patch
@@ -0,0 +1,57 @@
+diff -wbBur pwmanager-1.2.4/pwmanager/base64.cpp pwmanager-1.2.4.my/pwmanager/base64.cpp
+--- pwmanager-1.2.4/pwmanager/base64.cpp 2005-11-06 01:16:51.000000000 +0000
++++ pwmanager-1.2.4.my/pwmanager/base64.cpp 2009-01-28 16:02:43.000000000 +0000
+@@ -41,6 +41,7 @@
+ * *
+ ***************************************************************************/
+
++#include <stdlib.h>
+ #include "base64.h"
+ #include "pwmexception.h"
+
+diff -wbBur pwmanager-1.2.4/pwmanager/binentrygen.cpp pwmanager-1.2.4.my/pwmanager/binentrygen.cpp
+--- pwmanager-1.2.4/pwmanager/binentrygen.cpp 2005-11-06 01:16:51.000000000 +0000
++++ pwmanager-1.2.4.my/pwmanager/binentrygen.cpp 2009-01-28 16:03:08.000000000 +0000
+@@ -8,7 +8,7 @@
+ * as published by the Free Software Foundation. *
+ * *
+ ***************************************************************************/
+-
++#include <stdlib.h>
+ #include "binentrygen.h"
+ #include "base64.h"
+ #include "pwmexception.h"
+diff -wbBur pwmanager-1.2.4/pwmanager/compressbzip2.cpp pwmanager-1.2.4.my/pwmanager/compressbzip2.cpp
+--- pwmanager-1.2.4/pwmanager/compressbzip2.cpp 2005-11-06 01:16:50.000000000 +0000
++++ pwmanager-1.2.4.my/pwmanager/compressbzip2.cpp 2009-01-28 16:03:47.000000000 +0000
+@@ -10,7 +10,7 @@
+ ***************************************************************************/
+
+ #include "compressbzip2.h"
+-
++#include <string.h>
+ #include <stdlib.h>
+
+ #define BZ_NO_STDIO
+diff -wbBur pwmanager-1.2.4/pwmanager/main.cpp pwmanager-1.2.4.my/pwmanager/main.cpp
+--- pwmanager-1.2.4/pwmanager/main.cpp 2005-11-06 01:16:51.000000000 +0000
++++ pwmanager-1.2.4.my/pwmanager/main.cpp 2009-01-28 16:05:16.000000000 +0000
+@@ -9,6 +9,7 @@
+ * *
+ ***************************************************************************/
+
++#include <stdlib.h>
+ #include <kcmdlineargs.h>
+ #include <kaboutdata.h>
+ #include <klocale.h>
+diff -wbBur pwmanager-1.2.4/pwmanager/serializer.cpp pwmanager-1.2.4.my/pwmanager/serializer.cpp
+--- pwmanager-1.2.4/pwmanager/serializer.cpp 2005-11-06 01:16:50.000000000 +0000
++++ pwmanager-1.2.4.my/pwmanager/serializer.cpp 2009-01-28 16:06:32.000000000 +0000
+@@ -9,6 +9,7 @@
+ * *
+ ***************************************************************************/
+
++#include <stdlib.h>
+ #include "serializer.h"
+ #include "configuration.h"
+ #include "pwmexception.h"
diff --git a/community/pwsafe/PKGBUILD b/community/pwsafe/PKGBUILD
new file mode 100644
index 000000000..736790f61
--- /dev/null
+++ b/community/pwsafe/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 14237 2010-04-02 09:42:35Z spupykin $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+pkgname=pwsafe
+pkgver=0.2.0
+pkgrel=6
+pkgdesc="A commandline program for managing encrypted password databases"
+arch=('i686' 'x86_64')
+url="http://nsd.dyndns.org/pwsafe/"
+license=('GPL')
+depends=('openssl' 'libxmu' 'readline')
+source=($url/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4bb36538a2772ecbf1a542bc7d4746c0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ # Make pwsafe suid root so it can seed rng as a user
+ chmod +s ${pkgdir}/usr/bin/pwsafe
+}
diff --git a/community/pyglet/PKGBUILD b/community/pyglet/PKGBUILD
new file mode 100644
index 000000000..2f795c66d
--- /dev/null
+++ b/community/pyglet/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: Ryan Coyner <rcoyner@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pyglet
+pkgver=1.1.4
+pkgrel=2
+pkgdesc="A cross-platform windowing and multimedia library for Python"
+arch=('i686' 'x86_64')
+url="http://pyglet.org/"
+license=('BSD')
+depends=('python2')
+optdepend=('avbin: provides audio&video support')
+source=(http://pyglet.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b2363642dc3832e95dc4e63a6793467f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py build
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py install --root=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/pygoocanvas/PKGBUILD b/community/pygoocanvas/PKGBUILD
new file mode 100644
index 000000000..e37d43881
--- /dev/null
+++ b/community/pygoocanvas/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 27121 2010-09-17 15:17:17Z schuay $
+# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=pygoocanvas
+pkgver=0.14.1
+pkgrel=3
+pkgdesc="GooCanvas python bindings"
+arch=('i686' 'x86_64')
+url="http://developer.berlios.de/projects/pygoocanvas"
+license=('LGPL')
+depends=('python2' 'goocanvas' 'pygtk')
+makedepends=('pkgconfig')
+options=('!libtool' 'docs' 'force')
+source=(http://ftp.gnome.org/pub/GNOME/sources/pygoocanvas/0.14/pygoocanvas-$pkgver.tar.bz2)
+md5sums=('e0e7b694af2f81a78b0838555d150252')
+
+build() {
+ cd "$srcdir/pygoocanvas-$pkgver"
+ ./configure --prefix=/usr --disable-docs
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/pyid3lib/PKGBUILD b/community/pyid3lib/PKGBUILD
new file mode 100644
index 000000000..21ddae1a1
--- /dev/null
+++ b/community/pyid3lib/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 27121 2010-09-17 15:17:17Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+# Maintainer: Jens Persson <xerxes2 at gmail.com>
+
+pkgname=pyid3lib
+pkgver=0.5.1
+pkgrel=6
+pkgdesc="A Python module for editing ID3v2 tags of MP3 audio files"
+arch=('i686' 'x86_64')
+url="http://pyid3lib.sourceforge.net/"
+license=('LGPL')
+depends=('python2' 'glibc' 'id3lib')
+source=(http://downloads.sourceforge.net/sourceforge/pyid3lib/$pkgname-$pkgver.tar.gz
+ pyid3lib-0.5.1-py25.patch)
+md5sums=('5fd37a7dda7c540f665ca5d428a28f5e'
+ '377b797acfae7411c3a70c244d3cf9b6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ [ "${CARCH}" = "x86_64" ] && patch -p1 < ../pyid3lib-0.5.1-py25.patch
+ sed -i "s#strchr( str, '/' )#strchr( (char*)str, '/' )#" pyid3lib.cc
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/pyid3lib/pyid3lib-0.5.1-py25.patch b/community/pyid3lib/pyid3lib-0.5.1-py25.patch
new file mode 100644
index 000000000..c24cfc97d
--- /dev/null
+++ b/community/pyid3lib/pyid3lib-0.5.1-py25.patch
@@ -0,0 +1,57 @@
+--- pyid3lib-0.5.1/pyid3lib.cc.orig 2007-08-08 23:53:08.000000000 +0300
++++ pyid3lib-0.5.1/pyid3lib.cc 2007-08-08 23:53:12.000000000 +0300
+@@ -10,13 +10,19 @@
+ #include <id3/id3lib_frame.h>
+ #include <id3/tag.h>
+
++#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
++typedef int Py_ssize_t;
++#define PY_SSIZE_T_MAX INT_MAX
++#define PY_SSIZE_T_MIN INT_MIN
++#endif
++
+ typedef struct
+ {
+ PyObject_HEAD
+
+ ID3_Tag* tag;
+ ID3_Frame** frames;
+- int size, alloc;
++ Py_ssize_t size, alloc;
+ } ID3Object;
+
+ typedef struct
+@@ -80,13 +86,24 @@
+
+
+ static PySequenceMethods tag_as_sequence = {
++#if PY_VERSION_HEX >= 0x02050000
++ (lenfunc)id3_length,
++#else
+ (inquiry)id3_length,
++#endif
+ NULL,
+ NULL,
++#if PY_VERSION_HEX >= 0x02050000
++ (ssizeargfunc)id3_item,
++ (ssizessizeargfunc)id3_slice,
++ (ssizeobjargproc)id3_ass_item,
++ (ssizessizeobjargproc)id3_ass_slice,
++#else
+ (intargfunc)id3_item,
+ (intintargfunc)id3_slice,
+ (intobjargproc)id3_ass_item,
+ (intintobjargproc)id3_ass_slice,
++#endif
+ (objobjproc)id3_contains,
+ NULL,
+ NULL,
+@@ -824,7 +841,7 @@
+ static ID3_Frame* frame_from_dict( ID3_FrameID fid, PyObject* dict )
+ {
+ char* data;
+- int size;
++ Py_ssize_t size;
+
+ ID3_Field* field;
+ ID3_FieldID flid;
diff --git a/community/pylibacl/PKGBUILD b/community/pylibacl/PKGBUILD
new file mode 100644
index 000000000..6e0624f12
--- /dev/null
+++ b/community/pylibacl/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 31901 2010-11-07 19:18:54Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=pylibacl
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="A python extension module that allows you to manipulate the POSIX.1e ACLs."
+arch=('i686' 'x86_64')
+url='http://pylibacl.sourceforge.net/'
+license=('GPL')
+depends=('python2')
+makedepends=('python2-distribute')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('b9d34da90e6da0813115071b3a1ab204')
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+}
diff --git a/community/pylorcon/PKGBUILD b/community/pylorcon/PKGBUILD
new file mode 100644
index 000000000..6502fdbd4
--- /dev/null
+++ b/community/pylorcon/PKGBUILD
@@ -0,0 +1,18 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributer: fnord0 <fnord0 AT riseup DOT net>
+
+pkgname=pylorcon
+pkgver=3
+pkgrel=4
+pkgdesc="Python wrapper for the C LORCON (Loss Of Radio CONnectivity) library"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/pylorcon/"
+license=('GPLv2')
+depends=('python2' 'lorcon-old-svn')
+source="http://pylorcon.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2"
+md5sums=('214d97bdf84e47131f8b55445fea1def')
+
+package() {
+ cd ${srcdir}/${pkgname}
+ python2 setup.py install --root=${pkgdir} --optimize=1
+}
diff --git a/community/pympd/ChangeLog b/community/pympd/ChangeLog
new file mode 100644
index 000000000..2ac209c7d
--- /dev/null
+++ b/community/pympd/ChangeLog
@@ -0,0 +1,2 @@
+2010-01-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release O.08.1
diff --git a/community/pympd/PKGBUILD b/community/pympd/PKGBUILD
new file mode 100644
index 000000000..742a74a63
--- /dev/null
+++ b/community/pympd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 27187 2010-09-18 15:58:45Z schuay $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: whatah <whatah@gmail.com>
+# Contributor: Andrew Conkling <andrewski@fr.st>
+
+pkgname=pympd
+pkgver=0.08.1
+pkgrel=2
+pkgdesc="A Rhythmbox-like PyGTK+ client for Music Player Daemon"
+arch=('i686' 'x86_64')
+url="http://pympd.sourceforge.net/"
+license=('GPL')
+depends=('libglade' 'pygtk>=2.6')
+makedepends=('pkgconfig')
+options=('!emptydirs')
+source=(http://pympd.sourceforge.net/files/$pkgname-$pkgver.tar.gz)
+md5sums=('388c2882ffbacffb27b491441a2b2a23')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # python2 fix
+ sed -i 's_which python_which python2_' Makefile
+ sed -i 's_python -c_python2 -c_' src/modules/tray/Makefile
+ 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
+
+ make PREFIX=/usr DESTDIR=${pkgdir} install
+}
+
diff --git a/community/pyogg/PKGBUILD b/community/pyogg/PKGBUILD
new file mode 100644
index 000000000..73c0217df
--- /dev/null
+++ b/community/pyogg/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 89164 2010-08-29 16:44:28Z remy $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=pyogg
+pkgver=1.3
+pkgrel=6
+pkgdesc="Python ogg wrapper library"
+arch=('i686' 'x86_64')
+url="http://ekyo.nerim.net/software/pyogg/index.html"
+license=('LGPL2')
+depends=('python2' 'libogg' 'glibc')
+source=(http://ekyo.nerim.net/software/pyogg/$pkgname-$pkgver.tar.gz)
+md5sums=('45a4ecc4d0600661199e4040a81ea3fe')
+sha1sums=('2811ad401e3b5fc5025958bddab3d7b8775e5acd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 ./config_unix.py --prefix=$pkgdir/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --prefix=$pkgdir/usr
+}
diff --git a/community/pypanel/PKGBUILD b/community/pypanel/PKGBUILD
new file mode 100644
index 000000000..ffb86eaa4
--- /dev/null
+++ b/community/pypanel/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 27121 2010-09-17 15:17:17Z schuay $
+# Maintainer: Jeff Mickey <j@codemac.net>
+# Contributor: Mr Green
+# Contributor: Jens Persson <xerxes2@gmail.com>
+
+pkgname=pypanel
+pkgver=2.4
+pkgrel=6
+pkgdesc="A lightweight panel/taskbar for X11 window managers written in python"
+arch=('i686' 'x86_64')
+url="http://pypanel.sourceforge.net/"
+license=('GPL')
+depends=('python2' 'x-server' 'python-xlib' 'imlib2' 'libxft')
+source=(http://downloads.sourceforge.net/sourceforge/pypanel/PyPanel-$pkgver.tar.gz)
+md5sums=('f1f9a2ed80be72ab36e748833618daba')
+
+build() {
+ cd "$srcdir/PyPanel-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+}
diff --git a/community/pyqt3/PKGBUILD b/community/pyqt3/PKGBUILD
new file mode 100644
index 000000000..862ea062e
--- /dev/null
+++ b/community/pyqt3/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 37900 2011-01-18 23:30:00Z andrea $
+# Maintainer:
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
+
+pkgname=pyqt3
+pkgver=3.18.1
+pkgrel=9
+pkgdesc="A set of Python bindings for the Qt3 toolkit"
+arch=('i686' 'x86_64')
+url="http://www.riverbankcomputing.com/software/pyqt/intro"
+depends=('python2-sip' 'qscintilla-qt3')
+license=('GPL')
+source=("http://www.riverbankcomputing.com/static/Downloads/PyQt3/PyQt-x11-gpl-${pkgver}.tar.gz")
+md5sums=('f1d120495d1aaf393819e988c0a7bb7e')
+
+build() {
+ cd ${srcdir}/PyQt-x11-gpl-${pkgver}
+
+ . /etc/profile.d/qt3.sh
+
+ echo yes | python2 configure.py -b /usr/bin \
+ -d /usr/lib/python2.7/site-packages \
+ -v /usr/share/sip
+
+ make
+}
+
+package() {
+ cd ${srcdir}/PyQt-x11-gpl-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/pysol-sound-server/PKGBUILD b/community/pysol-sound-server/PKGBUILD
new file mode 100644
index 000000000..b3f7c814c
--- /dev/null
+++ b/community/pysol-sound-server/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 25949 2010-09-12 02:51:50Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=pysol-sound-server
+pkgver=3.01
+pkgrel=7
+pkgdesc="A Python extension module that plays WAV samples together with MP3 or MOD background music"
+arch=('i686' 'x86_64')
+url="http://www.pysol.org/"
+license=('GPL' 'LGPL')
+depends=('python2' 'smpeg')
+source=(http://www.pysol.org/download/pysol/$pkgname-$pkgver.tar.bz2)
+md5sums=('5ef963dbf5d5c2f032a7e5a90afb536f')
+sha1sums=('010cc2d9634a1796fb9d44c8925b4b62c9568611')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ ./configure
+ make PYTHON=python2
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ python2 setup.py install --root="${pkgdir}"
+}
diff --git a/community/pystatgrab/PKGBUILD b/community/pystatgrab/PKGBUILD
new file mode 100644
index 000000000..5ea3fbbde
--- /dev/null
+++ b/community/pystatgrab/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 27121 2010-09-17 15:17:17Z schuay $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+
+pkgname=pystatgrab
+pkgver=0.5
+pkgrel=4
+pkgdesc="Python bindings for libstatgrab"
+arch=('i686' 'x86_64')
+url="http://www.i-scream.org/pystatgrab"
+license=('GPL')
+depends=('python2' 'libstatgrab')
+source=(ftp://ftp.uk.i-scream.org/pub/i-scream/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('b7a3451ba682ebf167fcb43f1769a121')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ python2 setup.py build
+ python2 setup.py install --prefix=${pkgdir}/usr
+}
diff --git a/community/pystatgrab/pystatgrab.changelog b/community/pystatgrab/pystatgrab.changelog
new file mode 100644
index 000000000..27f35cf6a
--- /dev/null
+++ b/community/pystatgrab/pystatgrab.changelog
@@ -0,0 +1,5 @@
+2010-07-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Rebuild for correct package naming
+
+2008-11-30 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Minor version bump (0.5-2) due the python 2.5 -> 2.6 update
diff --git a/community/python-bsddb/LICENSE b/community/python-bsddb/LICENSE
new file mode 100644
index 000000000..7d6035775
--- /dev/null
+++ b/community/python-bsddb/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2008-2009 Jesus Cea Avion
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE. \ No newline at end of file
diff --git a/community/python-bsddb/PKGBUILD b/community/python-bsddb/PKGBUILD
new file mode 100644
index 000000000..84b7c181a
--- /dev/null
+++ b/community/python-bsddb/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 40159 2011-02-21 14:49:30Z stephane $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-bsddb
+pkgver=5.1.0
+pkgrel=3
+pkgdesc="Python interface for BerkeleyDB"
+license=('MIT')
+arch=('i686' 'x86_64')
+url="http://www.jcea.es/programacion/pybsddb.htm"
+depends=('db' 'python')
+source=("http://pypi.python.org/packages/source/b/bsddb3/bsddb3-${pkgver}.tar.gz"
+ 'LICENSE')
+md5sums=('6d72d2533f0f3a4bb4b1207598624d6a'
+ 'f412b3fb37739f1c4be64c1e7a5dee67')
+
+build () {
+ cd ${srcdir}/bsddb3-${pkgver}
+ python setup.py --berkeley-db=/usr build
+}
+
+package() {
+ cd ${srcdir}/bsddb3-${pkgver}
+ python setup.py --berkeley-db=/usr install --root=${pkgdir} --optimize=1
+
+ install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/python-cheetah/PKGBUILD b/community/python-cheetah/PKGBUILD
new file mode 100755
index 000000000..020eb7869
--- /dev/null
+++ b/community/python-cheetah/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 40317 2011-02-22 19:44:06Z foutrelis $
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Todd Maynard <arch@toddmaynard.com>
+
+pkgname=python-cheetah
+pkgver=2.4.4
+pkgrel=2
+pkgdesc="A Python-powered template engine and code generator"
+arch=('i686' 'x86_64')
+url="http://www.cheetahtemplate.org/"
+license=('custom')
+depends=('python2' 'python-markdown')
+makedepends=('python2-distribute')
+optdepends=('python2-pygments: for the CodeHighlighter filter')
+provides=('cheetah')
+conflicts=('cheetah')
+source=(http://pypi.python.org/packages/source/C/Cheetah/Cheetah-${pkgver}.tar.gz)
+md5sums=('853917116e731afbc8c8a43c37e6ddba')
+
+build() {
+ cd "${srcdir}/Cheetah-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/Cheetah-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ find $pkgdir/usr/lib/python2.7/site-packages/Cheetah/ -name '*.py' | \
+ xargs sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|"
+}
diff --git a/community/python-cjson/PKGBUILD b/community/python-cjson/PKGBUILD
new file mode 100644
index 000000000..5f864b10b
--- /dev/null
+++ b/community/python-cjson/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 26256 2010-09-14 13:39:01Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Lincoln de Sousa <lincoln@archlinux-br.org>
+
+pkgname=python-cjson
+pkgver=1.0.5
+pkgrel=3
+arch=('i686' 'x86_64')
+license=('LGPL')
+pkgdesc="Fast JSON encoder/decoder for Python"
+url="http://pypi.python.org/pypi/python-cjson/"
+depends=('python2')
+source=("http://pypi.python.org/packages/source/p/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('4d55b66ecdf0300313af9d030d9644a3')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/python-daap/PKGBUILD b/community/python-daap/PKGBUILD
new file mode 100644
index 000000000..d48f8da4d
--- /dev/null
+++ b/community/python-daap/PKGBUILD
@@ -0,0 +1,17 @@
+# Contributor: Tom Shaft Jr. <d6@demetrius6.org>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+pkgname=python-daap
+pkgver=0.7.1
+pkgrel=3
+pkgdesc="Python libraries for accessing DAAP music shares"
+arch=('i686' 'x86_64')
+url="http://jerakeen.org/code/pythondaap/"
+depends=('python2')
+license=('GPL')
+source=(http://jerakeen.org/files/PythonDaap-$pkgver.tar.gz)
+md5sums=('b3db3d60b0ee83f5f23101d2c3bb99e0')
+
+build() {
+ cd $srcdir/PythonDaap-$pkgver
+ python2 setup.py install --prefix=$pkgdir/usr
+}
diff --git a/community/python-fuse/PKGBUILD b/community/python-fuse/PKGBUILD
new file mode 100644
index 000000000..1ebf70af6
--- /dev/null
+++ b/community/python-fuse/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 26095 2010-09-13 13:46:32Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk@gmail.com>
+
+pkgname=python-fuse
+pkgver=0.2.1
+pkgrel=2
+arch=('i686' 'x86_64')
+pkgdesc="Python bindings for FUSE"
+url="http://fuse.sourceforge.net/wiki/index.php/FusePython"
+license=('LGPL')
+depends=('fuse' 'python2')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/fuse/fuse-python-${pkgver}.tar.gz)
+
+build() {
+ cd "$srcdir/fuse-python-$pkgver"
+ python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
+}
+md5sums=('9d9c5c2311ac04291ce822dfece108f8')
diff --git a/community/python-galago-gtk/PKGBUILD b/community/python-galago-gtk/PKGBUILD
new file mode 100644
index 000000000..1589d3e41
--- /dev/null
+++ b/community/python-galago-gtk/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 29291 2010-10-12 16:29:20Z foutrelis $
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=python-galago-gtk
+pkgver=0.5.0
+pkgrel=5
+pkgdesc="A library of simple functions that are optimized for various CPUs"
+arch=('i686' 'x86_64')
+url="http://galago-project.org"
+options=('!libtool')
+license=('LGPL')
+depends=('libgalago-gtk' 'pygtk' 'python-galago')
+source=(http://galago-project.org/files/releases/source/galago-gtk-python/galago-gtk-python-$pkgver.tar.bz2)
+md5sums=('3eb752eaa87d986bf272cf1266528c43')
+
+build() {
+ cd $srcdir/galago-gtk-python-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/python-galago/PKGBUILD b/community/python-galago/PKGBUILD
new file mode 100644
index 000000000..b6fcaa5b9
--- /dev/null
+++ b/community/python-galago/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 26275 2010-09-14 14:29:54Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-galago
+pkgver=0.5.0
+pkgrel=4
+pkgdesc="A library of simple functions that are optimized for various CPUs"
+arch=('i686' 'x86_64')
+url="http://galago-project.org"
+options=('!libtool')
+license=('LGPL')
+depends=('libgalago' 'pygtk')
+source=(http://galago-project.org/files/releases/source/galago-python/galago-python-$pkgver.tar.bz2)
+md5sums=('27be31fcf2886aa21823caec15dc34aa')
+
+build() {
+ cd $srcdir/galago-python-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/python-gnupginterface/PKGBUILD b/community/python-gnupginterface/PKGBUILD
new file mode 100644
index 000000000..c484684b7
--- /dev/null
+++ b/community/python-gnupginterface/PKGBUILD
@@ -0,0 +1,18 @@
+# Contributer: Aaron Schaefer <aaron@elasticdog.com>
+pkgname=python-gnupginterface
+pkgver=0.3.2
+pkgrel=5
+pkgdesc="A Python interface to GNU Privacy Guard (GnuPG)"
+arch=('i686' 'x86_64')
+url="http://py-gnupg.sourceforge.net/"
+license=('GPL')
+depends=('gnupg' 'python2')
+provides=('gnupginterface')
+replaces=('gnupginterface')
+source=(http://downloads.sourceforge.net/sourceforge/py-gnupg/GnuPGInterface-$pkgver.tar.gz)
+md5sums=('d4627d83446f96bd8c22f8d15db3f7c2')
+
+build() {
+ cd "$srcdir/GnuPGInterface-$pkgver"
+ python2 setup.py install --root="$pkgdir" -O1
+}
diff --git a/community/python-gnutls/PKGBUILD b/community/python-gnutls/PKGBUILD
new file mode 100644
index 000000000..5eca1eea7
--- /dev/null
+++ b/community/python-gnutls/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 26275 2010-09-14 14:29:54Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: N3RD3X <n3rd3x@linuxmail.org>
+
+pkgname=python-gnutls
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Python wrapper for the GNUTLS library"
+arch=('i686' 'x86_64')
+url="http://cheeseshop.python.org/pypi/python-gnutls"
+depends=('python2' 'gnutls')
+license=('LGPL')
+source=(http://pypi.python.org/packages/source/p/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('18a7b92abdc1598b916d7ff5019b72bf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py install --root=${pkgdir}
+}
diff --git a/community/python-html5lib/LICENSE b/community/python-html5lib/LICENSE
new file mode 100644
index 000000000..89de35479
--- /dev/null
+++ b/community/python-html5lib/LICENSE
@@ -0,0 +1,17 @@
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/community/python-html5lib/PKGBUILD b/community/python-html5lib/PKGBUILD
new file mode 100644
index 000000000..bcd2f73b6
--- /dev/null
+++ b/community/python-html5lib/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Erol V. Aktay <e.aktay@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=python-html5lib
+pkgver=0.90
+pkgrel=1
+pkgdesc="A HTML parser/tokenizer based on the WHATWG HTML5 spec"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/html5lib/"
+license=('MIT')
+depends=('python2')
+makedepends=('unzip' 'setuptools')
+source=(http://html5lib.googlecode.com/files/html5lib-${pkgver}.zip
+ LICENSE)
+md5sums=('691e6b9ebe15b333a28280974b2ce432'
+ '838c366f69b72c5df05c96dff79b35f2')
+
+build() {
+ /bin/true
+}
+
+package() {
+ cd ${srcdir}/html5lib-${pkgver}
+
+ python2 setup.py install --root=${pkgdir}
+ install -dm755 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/python-lcms/PKGBUILD b/community/python-lcms/PKGBUILD
new file mode 100644
index 000000000..a501f1b26
--- /dev/null
+++ b/community/python-lcms/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Connor Behan <connor.behan@gmail.com>
+
+pkgname=python-lcms
+pkgver=1.19
+_mver=1.19
+pkgrel=2
+pkgdesc="LittleCMS Python bindings"
+arch=(i686 x86_64)
+license=('CUSTOM')
+depends=('libtiff' 'python2' 'lcms')
+url="http://www.littlecms.com"
+options=('!libtool' 'force')
+source=(http://downloads.sourceforge.net/project/lcms/lcms/${_mver}/lcms-$pkgver.tar.gz)
+md5sums=('8af94611baf20d9646c7c2c285859818')
+
+build() {
+ cd $srcdir/lcms-${_mver}
+
+ ./configure --prefix=/usr --with-python
+ make
+}
+package() {
+ cd $srcdir/lcms-${_mver}
+
+ make DESTDIR=$pkgdir install
+
+ install -D -m0644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING && \
+ rm -rf $pkgdir/usr/bin \
+ $pkgdir/usr/include \
+ $pkgdir/usr/lib/pkgconfig \
+ $pkgdir/usr/lib/liblcms.* \
+ $pkgdir/usr/share/man/man1/icc2ps.1 \
+ $pkgdir/usr/share/man/man1/icclink.1 \
+ $pkgdir/usr/share/man/man1/jpegicc.1 \
+ $pkgdir/usr/share/man/man1/tifficc.1 \
+ $pkgdir/usr/share/man/man1/wtpt.1
+}
diff --git a/community/python-memcached/LICENSE b/community/python-memcached/LICENSE
new file mode 100644
index 000000000..51b991c27
--- /dev/null
+++ b/community/python-memcached/LICENSE
@@ -0,0 +1,61 @@
+IMPORTANT: PLEASE READ THE FOLLOWING AGREEMENT CAREFULLY.
+
+BY CLICKING ON "ACCEPT" WHERE INDICATED BELOW, OR BY COPYING, INSTALLING OR
+OTHERWISE USING PYTHON 1.6, beta 1 SOFTWARE, YOU ARE DEEMED TO HAVE AGREED TO
+THE TERMS AND CONDITIONS OF THIS LICENSE AGREEMENT.
+
+1. This LICENSE AGREEMENT is between the Corporation for National Research
+Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191
+("CNRI"), and the Individual or Organization ("Licensee") accessing and
+otherwise using Python 1.6, beta 1 software in source or binary form and its
+associated documentation, as released at the www.python.org Internet site on
+August 4, 2000 ("Python 1.6b1").
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a non-exclusive, royalty-free, world-wide license to
+reproduce, analyze, test, perform and/or display publicly, prepare derivative
+works, distribute, and otherwise use Python 1.6b1 alone or in any derivative
+version, provided, however, that CNRIs License Agreement is retained in Python
+1.6b1, alone or in any derivative version prepared by Licensee.
+
+Alternately, in lieu of CNRIs License Agreement, Licensee may substitute the
+following text (omitting the quotes): "Python 1.6, beta 1, is made available
+subject to the terms and conditions in CNRIs License Agreement. This Agreement
+may be located on the Internet using the following unique, persistent
+identifier (known as a handle): 1895.22/1011. This Agreement may also be
+obtained from a proxy server on the Internet using the
+URL:http://hdl.handle.net/1895.22/1011".
+
+3. In the event Licensee prepares a derivative work that is based on or
+incorporates Python 1.6b1or any part thereof, and wants to make the derivative
+work available to the public as provided herein, then Licensee hereby agrees to
+indicate in any such work the nature of the modifications made to Python
+1.6b1.
+
+4. CNRI is making Python 1.6b1 available to Licensee on an "AS IS" basis.
+CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF
+EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND DISCLAIMS ANY REPRESENTATION OR
+WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF PYTHON 1.6b1WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE SOFTWARE
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
+USING, MODIFYING OR DISTRIBUTING PYTHON 1.6b1, OR ANY DERIVATIVE THEREOF, EVEN
+IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of Virginia, excluding conflict of law
+provisions. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between CNRI and
+Licensee. This License Agreement does not grant permission to use CNRI
+trademarks or trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6b1, Licensee agrees to be bound by the
+terms and conditions of this License Agreement.
+
+ACCEPT \ No newline at end of file
diff --git a/community/python-memcached/PKGBUILD b/community/python-memcached/PKGBUILD
new file mode 100644
index 000000000..cd1a154f9
--- /dev/null
+++ b/community/python-memcached/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: Nathan Jones <nathanj@insightbb.com>
+pkgname=python-memcached
+pkgver=1.47
+pkgrel=1
+pkgdesc="A Python interface to memcached"
+depends=('python2')
+makedepends=('setuptools')
+source=(ftp://ftp.tummy.com/pub/$pkgname/$pkgname-$pkgver.tar.gz LICENSE)
+url="ftp://ftp.tummy.com/pub/python-memcached/"
+license=('Python')
+arch=('i686' 'x86_64')
+md5sums=('e4e9d65e5721a1bb01f8d657ddf3f03e'
+ '5286ea4c34766a357085694e0984f116')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' memcache.py
+
+ python2 setup.py install --root=$pkgdir
+ install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/python-mpi4py/PKGBUILD b/community/python-mpi4py/PKGBUILD
new file mode 100644
index 000000000..51e5da1c5
--- /dev/null
+++ b/community/python-mpi4py/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 42202 2011-03-15 13:58:47Z andrea $
+# Maintainer : Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sebastien Binet <binet@cern.ch>
+
+pkgbase=python-mpi4py
+pkgname=('python-mpi4py' 'python2-mpi4py')
+pkgver=1.2.2
+pkgrel=4
+arch=('i686' 'x86_64')
+url="http://mpi4py.scipy.org"
+license=('BSD')
+makedepends=('python' 'python2' 'python-distribute' 'python2-distribute' 'openmpi')
+source=(http://mpi4py.googlecode.com/files/mpi4py-${pkgver}.tar.gz)
+sha1sums=('e08d09257794a85d010a22ad9bda9d1c89a6258f')
+
+build() {
+ cd "${srcdir}"
+ cp -a mpi4py-${pkgver}{,-python2}
+
+ # Build python 3 module
+ cd mpi4py-${pkgver}
+ python setup.py build
+
+ # Build python 2 module
+ cd ../mpi4py-${pkgver}-python2
+ python2 setup.py build
+}
+
+package_python-mpi4py() {
+ pkgdesc="Python bindings of the Message Passing Interface (MPI)"
+ depends=('python>=3.2' 'openmpi')
+
+ cd "${srcdir}/mpi4py-${pkgver}"
+ python setup.py install --root "${pkgdir}" --optimize=1 --skip-build
+}
+
+package_python2-mpi4py() {
+ pkgdesc="Python2 bindings of the Message Passing Interface (MPI)"
+ depends=('python2>=2.7' 'openmpi')
+
+ cd "${srcdir}/mpi4py-${pkgver}-python2"
+ python2 setup.py install --root "${pkgdir}" --optimize=1 --skip-build
+}
diff --git a/community/python-numarray/LICENSE b/community/python-numarray/LICENSE
new file mode 100644
index 000000000..30ff57fc4
--- /dev/null
+++ b/community/python-numarray/LICENSE
@@ -0,0 +1,9 @@
+Copyright (C) 2005 Association of Universities for Research in Astronomy (AURA)
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+3. The name of AURA and its representatives may not be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY AURA ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AURA BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/community/python-numarray/PKGBUILD b/community/python-numarray/PKGBUILD
new file mode 100644
index 000000000..9a27928e4
--- /dev/null
+++ b/community/python-numarray/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 34440 2010-12-07 21:07:34Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+
+pkgname=python-numarray
+pkgver=1.5.2
+pkgrel=4
+pkgdesc='Provides array manipulation and computational capabilities.'
+arch=('i686' 'x86_64')
+url='http://numpy.scipy.org/'
+license=('BSD')
+depends=('python2')
+source=("http://downloads.sourceforge.net/sourceforge/numpy/numarray-${pkgver}.tar.gz"
+ 'LICENSE')
+md5sums=('d2ecfc60fe4869c328b872540d04e0f7'
+ 'e32b4466453e530d7fb0dbeee0ca1044')
+
+build() {
+ cd "${srcdir}/numarray-${pkgver}"
+
+ # python2 fix
+ sed -i 's_#! /usr/bin/env python_#! /usr/bin/env python2_' Examples/convolve/benchmark.py
+}
+
+package() {
+ cd "${srcdir}/numarray-${pkgver}"
+
+ python2 setup.py install --root="${pkgdir}"
+ install -D ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/python-openbabel/PKGBUILD b/community/python-openbabel/PKGBUILD
new file mode 100644
index 000000000..955c95b44
--- /dev/null
+++ b/community/python-openbabel/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 40381 2011-02-23 18:15:16Z stephane $
+# Maintainer: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Michal Bozon <bozonm@vscht.cz>
+
+pkgname=python-openbabel
+pkgver=2.3.0
+pkgrel=3
+pkgdesc="Python bindings of openbabel library"
+arch=('i686' 'x86_64')
+url="http://openbabel.org/wiki/Python"
+license=('GPL')
+depends=('python' 'gcc-libs' "openbabel=${pkgver}" 'eigen')
+makedepends=('swig' 'cmake')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/openbabel/openbabel-$pkgver.tar.gz)
+md5sums=('effda01ed4a31d18d8e3d08191799608')
+
+build() {
+ cd "${srcdir}/openbabel-$pkgver"
+
+ # Create babelconfig.h
+ cmake .
+
+ # Regenerate interface with the patched swig 2.0.2
+ cd scripts
+ swig -I../include/ -python -c++ openbabel-python.i
+ mv openbabel-python_wrap.cxx python/openbabel-python.cpp
+ mv openbabel.py python/
+
+ cd python
+ sed -i '19i os.path.join("/usr/include/openbabel-2.0"),' setup.py
+}
+
+package() {
+ cd "${srcdir}/openbabel-$pkgver/scripts/python"
+ python setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1
+}
diff --git a/community/python-pexpect/PKGBUILD b/community/python-pexpect/PKGBUILD
new file mode 100644
index 000000000..323c6d536
--- /dev/null
+++ b/community/python-pexpect/PKGBUILD
@@ -0,0 +1,21 @@
+# Maintainer: Aaron Schaefer <aaron@elasticdog.com>
+pkgname=python-pexpect
+pkgver=2.3
+pkgrel=4
+pkgdesc='A pure Python Expect-like module'
+arch=('i686' 'x86_64')
+url='http://pexpect.sourceforge.net/'
+license=('MIT')
+depends=('python2')
+source=("http://downloads.sourceforge.net/sourceforge/pexpect/pexpect-$pkgver.tar.gz")
+md5sums=('bf107cf54e67bc6dec5bea1f3e6a65c3')
+
+build() {
+ cd $srcdir/pexpect-$pkgver
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' FSM.py
+
+ python2 setup.py install --root=$pkgdir
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/python-psycopg1/PKGBUILD b/community/python-psycopg1/PKGBUILD
new file mode 100755
index 000000000..f5ad4cc39
--- /dev/null
+++ b/community/python-psycopg1/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 27290 2010-09-19 04:29:33Z ebelanger $
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-psycopg1
+pkgver=1.1.21
+pkgrel=5
+pkgdesc="A PostgreSQL database adapter for Python"
+arch=('i686' 'x86_64')
+url="http://initd.org/projects/psycopg1"
+license=('GPL')
+depends=('python-egenix-mx-base' 'postgresql')
+source=(http://initd.org/pub/software/psycopg/psycopg-$pkgver.tar.gz)
+md5sums=('a31f79f68d6d32898d6f24e11369a106')
+sha1sums=('02d8a8b5dd682306117896c7c63a9a1b518997b6')
+
+build() {
+ cd "$srcdir/psycopg-$pkgver"
+ ./configure --prefix=/usr --with-python=/usr/bin/python2 \
+ --with-mxdatetime-includes=/usr/lib/python2.7/site-packages/mx/DateTime/mxDateTime
+ sed -e 's:\(echo " install -m 555 $$mod \)\($(PY_MOD_DIR)\)\("; \\\):\1${DESTDIR}\2/$$mod\3:' \
+ -e 's:\($(INSTALL) -m 555 $$mod \)\($(PY_MOD_DIR)\)\(; \\\):\1${DESTDIR}\2/$$mod\3:' \
+ -i Makefile
+ make
+}
+
+package() {
+ cd "$srcdir/psycopg-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/python-psycopg2/ChangeLog b/community/python-psycopg2/ChangeLog
new file mode 100644
index 000000000..f31be0aaa
--- /dev/null
+++ b/community/python-psycopg2/ChangeLog
@@ -0,0 +1,25 @@
+
+2009-08-05 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated to: 2.0.11
+
+2009-03-24 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 2.0.9
+
+2009-01-11 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Rebuilt for python 2.6
+
+2008-04-25 Mateusz Herych <heniekk@gmail.com>
+
+ * Built for x86_64 - 2.0.7
+
+2008-04-23 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Built for i686 - 2.0.7
+
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+
+ * Built for x86_64
+
diff --git a/community/python-psycopg2/PKGBUILD b/community/python-psycopg2/PKGBUILD
new file mode 100644
index 000000000..167dabc50
--- /dev/null
+++ b/community/python-psycopg2/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 41387 2011-03-05 16:09:10Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgbase=python-psycopg2
+pkgname=('python-psycopg2' 'python2-psycopg2')
+pkgver=2.4
+pkgrel=3
+pkgdesc="A PostgreSQL database adapter for the Python programming language."
+arch=('i686' 'x86_64')
+url="http://initd.org/projects/psycopg2"
+license=('LGPL3')
+makedepends=('python2' 'python' 'postgresql-libs>=8.4.1')
+source=(http://www.psycopg.org/psycopg/tarballs/PSYCOPG-${pkgver/./-}/psycopg2-$pkgver.tar.gz)
+md5sums=('548d549c4fc4238bf55d0510b2880f47')
+
+build() {
+ cd "$srcdir/psycopg2-$pkgver"
+ # Thanks for the tip, Xentac
+ sed -i 's/,PSYCOPG_DEBUG$//' setup.cfg
+}
+
+package_python-psycopg2() {
+ depends=('python' 'postgresql-libs>=8.4.1')
+
+ cd "$srcdir/psycopg2-$pkgver"
+ python setup.py install --root="$pkgdir"
+}
+
+package_python2-psycopg2() {
+ depends=('python2' 'postgresql-libs>=8.4.1')
+
+ cd "$srcdir/psycopg2-$pkgver"
+ python2 setup.py install --root="$pkgdir"
+}
diff --git a/community/python-pybluez/PKGBUILD b/community/python-pybluez/PKGBUILD
new file mode 100644
index 000000000..cb02defe0
--- /dev/null
+++ b/community/python-pybluez/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: cs-cam - me.at.camdaniel.com
+
+pkgname=python-pybluez
+pkgver=0.18
+pkgrel=2
+pkgdesc="Python wrapper for the BlueZ Bluetooth stack"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/pybluez/"
+license=('GPL')
+provides=('pybluez')
+conflicts=('pybluez')
+replaces=('pybluez')
+depends=('python2' 'bluez')
+source=(http://pybluez.googlecode.com/files/PyBluez-$pkgver.tar.gz)
+md5sums=('be8c8ce615c3189fda1aaf3d568314b2')
+
+build() {
+ cd $srcdir/PyBluez-$pkgver
+ python2 setup.py install --root=$pkgdir
+ ln -s bluetooth/_bluetooth.so $pkgdir/usr/lib/python2.7/site-packages/_bluetooth.so
+}
diff --git a/community/python-pychm/PKGBUILD b/community/python-pychm/PKGBUILD
new file mode 100644
index 000000000..77b8f05b8
--- /dev/null
+++ b/community/python-pychm/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: iom <pizorn@gmail.com>
+
+pkgname=python-pychm
+pkgver=0.8.4
+pkgrel=5
+pkgdesc="Python bindings for CHMLIB"
+arch=('i686' 'x86_64')
+url="http://gnochm.sourceforge.net"
+license=('GPL')
+depends=('chmlib' 'python2')
+source=(http://downloads.sourceforge.net/sourceforge/gnochm/pychm-$pkgver.tar.gz)
+md5sums=('ff7f0baf94290c44263a1618e7e6a116')
+
+build() {
+ cd $srcdir/pychm-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/python-pycurl/PKGBUILD b/community/python-pycurl/PKGBUILD
new file mode 100644
index 000000000..2ffd177d5
--- /dev/null
+++ b/community/python-pycurl/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 25898 2010-09-11 12:22:23Z andrea $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: kontrast <kontr4st@gmail.com>
+
+pkgname=python-pycurl
+pkgver=7.19.0
+pkgrel=5
+pkgdesc="A Python interface to libcurl"
+arch=('i686' 'x86_64')
+url="http://pycurl.sourceforge.net"
+license=('GPL')
+depends=('python2' 'curl')
+replaces=('pycurl')
+provides=('pycurl')
+source=("http://pycurl.sourceforge.net/download/pycurl-${pkgver}.tar.gz")
+md5sums=('919d58fe37e69fe87ce4534d8b6a1c7b')
+
+package() {
+ cd ${srcdir}/pycurl-${pkgver}
+ python2 setup.py install --curl-config=/usr/bin/curl-config --prefix ${pkgdir}/usr
+}
diff --git a/community/python-pymongo/PKGBUILD b/community/python-pymongo/PKGBUILD
new file mode 100644
index 000000000..2020f4fef
--- /dev/null
+++ b/community/python-pymongo/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Thomas S Hatch <thatch45@gmail.com>
+# Contributor: Piotr Husiatyński <phusiatynski@gmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=python-pymongo
+pkgver=1.9
+pkgrel=3
+pkgdesc="Python driver for MongoDB"
+license=("APACHE")
+url="http://pypi.python.org/pypi/pymongo/"
+depends=('python2')
+makedepends=('python2-distribute')
+source=(http://pypi.python.org/packages/source/p/pymongo/pymongo-$pkgver.tar.gz)
+arch=('i686' 'x86_64')
+md5sums=('12e12163e6cc22993808900fb9629252')
+
+package() {
+ cd $srcdir/pymongo-$pkgver
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/python-pyro/ChangeLog b/community/python-pyro/ChangeLog
new file mode 100644
index 000000000..7152cb3db
--- /dev/null
+++ b/community/python-pyro/ChangeLog
@@ -0,0 +1,16 @@
+2010-01-12 Andrea Scarpino <andrea@archlinux.org>
+
+ * update package: 3.10
+
+2009-08-24 Biru Ionut <ionut@archlinux.ro>
+
+ * update package: 3.9.1
+
+2008-12-14 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 3.8.1
+
+2008-06-03 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated and added to community - 3.8beta
+
diff --git a/community/python-pyro/PKGBUILD b/community/python-pyro/PKGBUILD
new file mode 100755
index 000000000..309105e93
--- /dev/null
+++ b/community/python-pyro/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.br>
+
+pkgname=python-pyro
+pkgver=3.10
+pkgrel=2
+pkgdesc="Python Remote Objects"
+url="http://pyro.sourceforge.net"
+arch=('i686' 'x86_64')
+license=('MIT')
+depends=('python2')
+source=(http://www.xs4all.nl/~irmen/pyro3/download/Pyro-${pkgver}.tar.gz)
+md5sums=('7fc6b8b939073d4adb0e8939c59aaf1e')
+
+build() {
+ cd $srcdir/Pyro-${pkgver}
+
+ # python2 fix
+ for file in Pyro/wxnsc.py Pyro/ext/daemonizer.py; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ python2 setup.py install --root=$pkgdir
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/python-pysfml/PKGBUILD b/community/python-pysfml/PKGBUILD
new file mode 100644
index 000000000..870960acf
--- /dev/null
+++ b/community/python-pysfml/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 40196 2011-02-21 18:40:57Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: scj <scj(at)archlinux(dot)us>
+
+pkgname=('python-pysfml' 'python2-pysfml')
+pkgbase=python-pysfml
+pkgver=1.6
+pkgrel=3
+pkgdesc="Python bindings for the SFML library"
+arch=('i686' 'x86_64')
+url="http://www.sfml-dev.org"
+makedepends=('sfml' 'python' 'python2')
+license=('zlib')
+depends=()
+replaces=('pysfml')
+source=(http://downloads.sourceforge.net/sfml/SFML-${pkgver}-python-sdk.zip)
+md5sums=('9acaf793ae9a498a51f7f6fc74307b32')
+
+build() {
+ cd "${srcdir}/SFML-${pkgver}/python"
+}
+
+package_python-pysfml() {
+ depends=('sfml' 'python')
+
+ cd "${srcdir}/SFML-${pkgver}/python"
+
+ python3 setup.py install --root=${pkgdir}
+}
+
+package_python2-pysfml() {
+ depends=('sfml' 'python2')
+
+ cd "${srcdir}/SFML-${pkgver}/python"
+
+ python2 setup.py install --root=${pkgdir}
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/python-pysqlite-legacy/PKGBUILD b/community/python-pysqlite-legacy/PKGBUILD
new file mode 100644
index 000000000..c87ce7793
--- /dev/null
+++ b/community/python-pysqlite-legacy/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : Aaron Griffin <aaron.archlinux.org>
+
+pkgname=python-pysqlite-legacy
+pkgver=1.0.1
+pkgrel=7
+pkgdesc="A Python DB-API 2.0 interface for the legacy SQLite 2"
+arch=('i686' 'x86_64')
+url="http://initd.org/tracker/pysqlite"
+license=('custom')
+depends=('python2' 'sqlite2')
+source=(http://www.mirrorservice.org/sites/www.ibiblio.org/gentoo/distfiles/pysqlite-$pkgver.tar.gz)
+md5sums=('4797b5ea7a3d96b87333e6b5af7b9979')
+
+build()
+{
+ cd ${srcdir}/pysqlite
+ python2 setup.py install --root=${pkgdir} -O1
+
+ # install custom license
+ install -Dm644 ${srcdir}/pysqlite/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/python-pyxmpp/PKGBUILD b/community/python-pyxmpp/PKGBUILD
new file mode 100644
index 000000000..0d832aefb
--- /dev/null
+++ b/community/python-pyxmpp/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 26298 2010-09-14 17:18:19Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-pyxmpp
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="A Python XMPP and Jabber implementation based on libxml2"
+arch=('i686' 'x86_64')
+url="http://pyxmpp.jajcus.net/"
+license=('LGPL')
+depends=('python-dnspython' 'libxml2' 'python-m2crypto')
+source=(http://pyxmpp.jajcus.net/downloads/pyxmpp-$pkgver.tar.gz)
+md5sums=('5f1f5472c3e2360fa49552cc49861bd4')
+
+build() {
+ cd $startdir/src/pyxmpp-$pkgver
+ python2 setup.py build
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/python-scipy/0001-FIX-define-macro-to-access-C99-extensions-from-C.patch b/community/python-scipy/0001-FIX-define-macro-to-access-C99-extensions-from-C.patch
new file mode 100644
index 000000000..c58a943b5
--- /dev/null
+++ b/community/python-scipy/0001-FIX-define-macro-to-access-C99-extensions-from-C.patch
@@ -0,0 +1,43 @@
+From 8ed781828b1d8e1692105c0c0c130858d47a28ce Mon Sep 17 00:00:00 2001
+From: Fabian Pedregosa <fabian.pedregosa@inria.fr>
+Date: Sun, 25 Jul 2010 14:35:35 +0200
+Subject: [PATCH] FIX: define macro to access C99 extensions from C++.
+
+This prevented scipy.sparse.sparsetools to compile correctly under
+python2.7, because the wrappers are C++ files but ndarraytypes.h
+references some C99 macros in inttypes.h.
+---
+ scipy/sparse/sparsetools/SConscript | 1 +
+ scipy/sparse/sparsetools/setup.py | 4 +++-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/scipy/sparse/sparsetools/SConscript b/scipy/sparse/sparsetools/SConscript
+index 1aa5557..85d9e05 100644
+--- a/scipy/sparse/sparsetools/SConscript
++++ b/scipy/sparse/sparsetools/SConscript
+@@ -3,6 +3,7 @@
+ from numscons import GetNumpyEnvironment
+
+ env = GetNumpyEnvironment(ARGUMENTS)
++env.PrependUnique(CPPDEFINES = '__STDC_FORMAT_MACROS')
+
+ for fmt in ['csr','csc','coo','bsr','dia']:
+ sources = [ fmt + '_wrap.cxx' ]
+diff --git a/scipy/sparse/sparsetools/setup.py b/scipy/sparse/sparsetools/setup.py
+index f4027a7..c4c4636 100755
+--- a/scipy/sparse/sparsetools/setup.py
++++ b/scipy/sparse/sparsetools/setup.py
+@@ -9,7 +9,9 @@ def configuration(parent_package='',top_path=None):
+ for fmt in ['csr','csc','coo','bsr','dia']:
+ sources = [ fmt + '_wrap.cxx' ]
+ depends = [ fmt + '.h' ]
+- config.add_extension('_' + fmt, sources=sources, depends=depends)
++ config.add_extension('_' + fmt, sources=sources,
++ define_macros=[('__STDC_FORMAT_MACROS', 1)],
++ depends=depends)
+
+ return config
+
+--
+1.7.1.1
+
diff --git a/community/python-scipy/ChangeLog b/community/python-scipy/ChangeLog
new file mode 100644
index 000000000..00071d2a7
--- /dev/null
+++ b/community/python-scipy/ChangeLog
@@ -0,0 +1,29 @@
+2010-07-29 Angel 'angvp' Velasquez <angvp@archlinux.org>
+ * Updated to: 0.8.0
+2009-08-05 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated to: 0.7.1
+
+2009-02-11 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updating for i686: 0.7
+
+2008-12-12 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updating for i686: 0.7.0 beta 1
+
+2008-11-07 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated to svn as scipy 0.6 wont work with python 2.6
+
+2008-02-21 Eric Belanger <eric@archlinux.org>
+
+ * Added x86_64 arch tag
+ * Added license
+
+2007-10-29 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Changed email
+ * Fixed some problems in the PKGBUILD
+ * Updated to new release - 0.6.0
+
diff --git a/community/python-scipy/PKGBUILD b/community/python-scipy/PKGBUILD
new file mode 100755
index 000000000..d0acce568
--- /dev/null
+++ b/community/python-scipy/PKGBUILD
@@ -0,0 +1,40 @@
+#$Id: PKGBUILD 27301 2010-09-19 16:29:18Z schuay $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgname=python-scipy
+pkgver=0.8.0
+pkgrel=4
+pkgdesc="SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering."
+arch=('i686' 'x86_64')
+url="http://www.scipy.org"
+license=('BSD')
+depends=('lapack' 'blas' 'python2' 'python-numpy')
+makedepends=('gcc' 'gcc-fortran')
+conflicts=('scipy' 'scipy_core')
+source=("http://downloads.sourceforge.net/scipy/scipy-${pkgver}.tar.gz"
+ '0001-FIX-define-macro-to-access-C99-extensions-from-C.patch')
+md5sums=('f0bfc6141b90e6a31555b31486602251'
+ '609759549d0571fc04d52c89b16258ed')
+
+build() {
+ unset LDFLAGS
+ unset FFLAGS
+
+ cd ${srcdir}/scipy-${pkgver}
+ #Changing the arithmetic parameter (Thanks to Fabrizio Castellano)
+ sed -i "s/\#define\ UNK\ 1/\#define\ IBMPC\ 1/" $srcdir/scipy-$pkgver/scipy/special/cephes/mconf.h
+
+ # fix build with python 2.7 (see http://projects.scipy.org/scipy/ticket/1180)
+ patch -p1 < ${srcdir}/0001-FIX-define-macro-to-access-C99-extensions-from-C.patch
+
+ # 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
+
+ python2 setup.py config_fc --fcompiler=gnu95 build
+ python2 setup.py config_fc --fcompiler=gnu95 install --prefix=/usr --root=${pkgdir}
+ install -D -m644 LICENSE.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt
+}
diff --git a/community/python-sympy/PKGBUILD b/community/python-sympy/PKGBUILD
new file mode 100644
index 000000000..bc3221a2a
--- /dev/null
+++ b/community/python-sympy/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Peter Garceau <RockyChimp@gmail.com>
+pkgname=python-sympy
+pkgver=0.6.7
+pkgrel=2
+pkgdesc="Symbolic manipulation package (Computer Algebra System), written in pure Python"
+url="http://code.google.com/p/sympy"
+license=('BSD')
+depends=('python2')
+conflicts=('sympy')
+provides=('sympy')
+arch=('i686' 'x86_64')
+source=(http://sympy.googlecode.com/files/sympy-${pkgver}.tar.gz)
+md5sums=('d73e0a5a128f38f930d566110f4b668b')
+
+build() {
+ cd "${srcdir}/sympy-${pkgver}"
+
+ # python2 fix
+ for file in sympy/galgebra/GA.py sympy/galgebra/tests/test_GA.py; do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' sympy/mpmath/tests/runtests.py
+
+ python2 setup.py install --root "${pkgdir}"
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/python-sympy/test.patch b/community/python-sympy/test.patch
new file mode 100644
index 000000000..81e00f2db
--- /dev/null
+++ b/community/python-sympy/test.patch
@@ -0,0 +1,11 @@
+--- a/setup.py
++++ b/setup.py
+@@ -216,7 +216,7 @@ setup(
+ license = 'BSD',
+ url = 'http://code.google.com/p/sympy',
+ packages = ['sympy'] + modules + tests + pyglet_packages,
+- scripts = ['bin/isympy', 'bin/test', 'bin/doctest'],
++ scripts = ['bin/isympy'],
+ ext_modules = [],
+ package_data = { 'sympy.utilities.mathml' : ['data/*.xsl'] },
+ data_files = [('share/man/man1', ['doc/man/isympy.1'])],
diff --git a/community/python-vorbissimple/PKGBUILD b/community/python-vorbissimple/PKGBUILD
new file mode 100644
index 000000000..643cebbe6
--- /dev/null
+++ b/community/python-vorbissimple/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 26332 2010-09-14 17:43:16Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-vorbissimple
+pkgver=0.0.2
+pkgrel=4
+pkgdesc="Python bindings for vorbissimple"
+arch=('i686' 'x86_64')
+url="http://kamaelia.sourceforge.net"
+license=('MPL')
+depends=('python2' 'vorbissimple')
+makedepends=('pyrex')
+source=(http://downloads.sourceforge.net/kamaelia/vorbissimple-$pkgver.tar.gz)
+md5sums=('332077b25a4c9547947ab0922361ffda')
+
+build() {
+ cd $srcdir/vorbissimple-$pkgver/python
+ sed -i 's#__new__#__cinit__#' vorbissimple.pyx
+ python2 setup.py install --root=$pkgdir
+}
diff --git a/community/python-yaml/PKGBUILD b/community/python-yaml/PKGBUILD
new file mode 100644
index 000000000..9bb69ee20
--- /dev/null
+++ b/community/python-yaml/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 44092 2011-04-02 08:52:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Michal Bozon <michal.bozon__at__gmail.com>
+
+pkgbase=python-yaml
+pkgname=(python2-yaml python-yaml)
+pkgver=3.09
+pkgrel=3
+pkgdesc="Python bindings for YAML, using fast libYAML library"
+arch=('i686' 'x86_64')
+url="http://pyyaml.org"
+license=('MIT')
+makedepends=('python' 'python2' 'libyaml')
+install='python-yaml.install'
+source=(http://pyyaml.org/download/pyyaml/PyYAML-$pkgver.tar.gz)
+md5sums=('f219af2361e87fdc5e85e95b84c11d87')
+
+build() {
+ true
+}
+
+package_python2-yaml() {
+ depends=('python2' 'libyaml')
+
+ cd $srcdir/PyYAML-$pkgver
+ python2 setup.py install --prefix=/usr --root=$pkgdir
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
+package_python-yaml() {
+ depends=('python' 'libyaml')
+
+ cd $srcdir/PyYAML-$pkgver
+ python setup.py install --prefix=/usr --root=$pkgdir
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/python-yaml/python-yaml.install b/community/python-yaml/python-yaml.install
new file mode 100644
index 000000000..e2ae0674b
--- /dev/null
+++ b/community/python-yaml/python-yaml.install
@@ -0,0 +1,7 @@
+post_install() {
+ cat << EOT
+==> Note that even though this package uses libyaml library,
+==> slower pure python implementation is used by default.
+==> See http://pyyaml.org/wiki/PyYAMLDocumentation
+EOT
+}
diff --git a/community/python2-basemap/PKGBUILD b/community/python2-basemap/PKGBUILD
new file mode 100644
index 000000000..98e999baf
--- /dev/null
+++ b/community/python2-basemap/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 40923 2011-03-01 17:22:50Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Julien Morin <jmorin@cp.dias.ie>
+
+pkgname=python2-basemap
+pkgver=1.0
+pkgrel=2
+pkgdesc="Toolkit for plotting data on map projections"
+arch=('i686' 'x86_64')
+url="http://matplotlib.sourceforge.net/basemap/doc/html/"
+license=('custom')
+depends=('python2-matplotlib' 'geos' 'shapelib' 'python2-numpy' 'python2-httplib2')
+makedepends=('python2-distribute')
+optdepends=('python-imaging: Python Imaging Library is only needed for bluemarble and warpimage methods.')
+provides=('python-matplotlib-basemap')
+replaces=('python-matplotlib-basemap')
+conflicts=('python-matplotlib-basemap')
+source=("http://downloads.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-${pkgver}/basemap-${pkgver}.tar.gz")
+sha1sums=('c1e2a9e76fdc6582dd951b86b4479cc439e8b372')
+
+build() {
+ cd "${srcdir}/basemap-${pkgver}"
+
+ # Remove the bundled librarie
+ rm -r geos-?.?.?
+ sed -i "s/lib64/lib/g" setup.py
+
+ python2 setup.py config
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/basemap-${pkgver}"
+
+ _pybasever=2.7
+
+ python2 setup.py install -O1 --skip-build --root="${pkgdir}" --prefix=/usr
+
+ # Conflict with files from python2-matplotlib
+ rm "${pkgdir}"/usr/lib/python${_pybasever}/site-packages/mpl_toolkits/__init__.{py,pyc,pyo}
+
+ # License
+ install -Dm644 LICENSE_data "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 LICENSE_pyshapelib "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 LICENSE_proj4 "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 README "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/python2-ldap/PKGBUILD b/community/python2-ldap/PKGBUILD
new file mode 100644
index 000000000..76ab81e7c
--- /dev/null
+++ b/community/python2-ldap/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 32662 2010-11-16 10:18:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Morgan LEFIEUX <comete_AT_archlinuxfr.org>
+
+pkgname=python2-ldap
+pkgver=2.3.12
+pkgrel=1
+pkgdesc="Provides an object-oriented API to access LDAP directory servers from Python programs"
+arch=('i686' 'x86_64')
+url="http://python-ldap.sourceforge.net"
+license=('custom')
+depends=('python2' 'libldap>=2.4.18')
+replaces=('python-ldap')
+source=(http://pypi.python.org/packages/source/p/python-ldap/python-ldap-$pkgver.tar.gz)
+md5sums=('2dadc521b2c2590d9b033894ba5c6f31')
+md5sums=('2dadc521b2c2590d9b033894ba5c6f31')
+
+build() {
+ cd $srcdir/python-ldap-$pkgver
+ sed -i 's|<sasl.h>|<sasl/sasl.h>|' Modules/LDAPObject.c
+ python2 setup.py build
+ python2 setup.py install --root $pkgdir
+ install -D -m644 LICENCE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/python2-ldap/setup.cfg.patch b/community/python2-ldap/setup.cfg.patch
new file mode 100644
index 000000000..77444c04a
--- /dev/null
+++ b/community/python2-ldap/setup.cfg.patch
@@ -0,0 +1,37 @@
+--- setup.cfg 2006-11-15 20:26:26.000000000 +0300
++++ setup.cfg.my 2007-06-25 16:19:24.000000000 +0400
+@@ -7,14 +7,14 @@
+ # for wrapping OpenLDAP 2 libs
+ [_ldap]
+
+-library_dirs = /usr/local/openldap-2.3/lib
+-include_dirs = /usr/local/openldap-2.3/include /usr/include/sasl
++library_dirs = /usr/lib
++include_dirs = /usr/include /usr/include/sasl
+
+ extra_compile_args =
+ extra_objects =
+
+ # Example for sparse build: basic functionality
+-#libs = ldap lber
++libs = ldap lber
+
+ # Some Linux systems might need explicitly linking with -lresolv
+ #libs = ldap lber resolv
+@@ -31,10 +31,10 @@
+ optimize = 1
+
+ # Linux distributors/packagers should adjust these settings
+-[bdist_rpm]
+-provides = python-ldap
+-requires = python libldap.so.2
++#[bdist_rpm]
++#provides = python-ldap
++#requires = python libldap.so.2
+ # distribution_name =
+-release = 0
+-packager = Michael Stroeder <michael@stroeder.com>
+-doc_files = CHANGES README INSTALL TODO Demo/
++#release = 0
++#packager = Michael Stroeder <michael@stroeder.com>
++#doc_files = CHANGES README INSTALL TODO Demo/
diff --git a/community/python2-matplotlib/PKGBUILD b/community/python2-matplotlib/PKGBUILD
new file mode 100644
index 000000000..7f19554c5
--- /dev/null
+++ b/community/python2-matplotlib/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 40554 2011-02-25 11:55:09Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgname=python2-matplotlib
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="A python plotting library, making publication quality plots"
+arch=('i686' 'x86_64')
+url="http://matplotlib.sourceforge.net/"
+backup=(usr/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc)
+depends=('python-dateutil' 'python2-pytz' 'python2-numpy' 'python2-pyparsing' 'python2-qt')
+optdepends=('pygtk: for use with the GTK or GTKAgg backend'
+ 'tk: used by the TkAgg backend'
+ 'wxpython: for use with the WXAgg backend')
+makedepends=('pygtk' 'tk' 'wxpython')
+provides=('matplotlib' "python-matplotlib=${pkgver}")
+replaces=('python-matplotlib')
+conflicts=('python-matplotlib')
+source=("http://downloads.sourceforge.net/matplotlib/matplotlib-${pkgver}.tar.gz"
+ setup.cfg)
+sha1sums=('c7a832f28a66817626e7a8af21e14ea0e15f4008'
+ 'bcb5a83db9d95c96a57ca518fa6bd1897b23558f')
+license=('custom')
+
+build() {
+ cd "${srcdir}/matplotlib-${pkgver}"
+
+ cp ../setup.cfg .
+
+ # remove internal copy of pyparsing
+ rm lib/matplotlib/pyparsing.py
+ sed -i "s/matplotlib.pyparsing/pyparsing/g" lib/matplotlib/{mathtext,fontconfig_pattern}.py
+
+ # python2 fix
+ for file in $(find . -name '*.py' -print); do
+ sed -i -e "s|^#!.*/usr/bin/python|#!/usr/bin/python2|" \
+ -e "s|^#!.*/usr/bin/env *python|#!/usr/bin/env python2|" ${file}
+ done
+
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/matplotlib-${pkgver}"
+ python2 setup.py install -O1 --skip-build --root "${pkgdir}" --prefix=/usr
+
+ install -dm755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ mv license "${pkgdir}/usr/share/licenses/${pkgname}"
+}
diff --git a/community/python2-matplotlib/setup.cfg b/community/python2-matplotlib/setup.cfg
new file mode 100644
index 000000000..4b82986e9
--- /dev/null
+++ b/community/python2-matplotlib/setup.cfg
@@ -0,0 +1,83 @@
+# Rename this file to setup.cfg to modify matplotlib's
+# build options.
+
+[egg_info]
+tag_svn_revision = 1
+
+[directories]
+# Uncomment to override the default basedir in setupext.py.
+# This can be a single directory or a space-delimited list of directories.
+#basedirlist = /usr
+
+[status]
+# To suppress display of the dependencies and their versions
+# at the top of the build log, uncomment the following line:
+#suppress = True
+#
+# Uncomment to insert lots of diagnostic prints in extension code
+#verbose = True
+
+[provide_packages]
+# By default, matplotlib checks for a few dependencies and
+# installs them if missing. This feature can be turned off
+# by uncommenting the following lines. Acceptible values are:
+# True: install, overwrite an existing installation
+# False: do not install
+# auto: install only if the package is unavailable. This
+# is the default behavior
+#
+## Date/timezone support:
+#pytz = False
+#dateutil = False
+
+[gui_support]
+# Matplotlib supports multiple GUI toolkits, including Cocoa,
+# GTK, Fltk, MacOSX, Qt, Qt4, Tk, and WX. Support for many of
+# these toolkits requires AGG, the Anti-Grain Geometry library,
+# which is provided by matplotlib and built by default.
+#
+# Some backends are written in pure Python, and others require
+# extension code to be compiled. By default, matplotlib checks
+# for these GUI toolkits during installation and, if present,
+# compiles the required extensions to support the toolkit. GTK
+# support requires the GTK runtime environment and PyGTK. Wx
+# support requires wxWidgets and wxPython. Tk support requires
+# Tk and Tkinter. The other GUI toolkits do not require any
+# extension code, and can be used as long as the libraries are
+# installed on your system.
+#
+# You can uncomment any the following lines if you know you do
+# not want to use the GUI toolkit. Acceptible values are:
+# True: build the extension. Exits with a warning if the
+# required dependencies are not available
+# False: do not build the extension
+# auto: build if the required dependencies are available,
+# otherwise skip silently. This is the default
+# behavior
+#
+gtk = True
+gtkagg = True
+tkagg = True
+wxagg = True
+macosx = False
+
+[rc_options]
+# User-configurable options
+#
+# Default backend, one of: Agg, Cairo, CocoaAgg, GTK, GTKAgg, GTKCairo,
+# FltkAgg, MacOSX, Pdf, Ps, QtAgg, Qt4Agg, SVG, TkAgg, WX, WXAgg.
+#
+# The Agg, Ps, Pdf and SVG backends do not require external
+# dependencies. Do not choose GTK, GTKAgg, GTKCairo, MacOSX, TkAgg or WXAgg
+# if you have disabled the relevent extension modules. Agg will be used
+# by default.
+#
+backend = Qt4Agg
+#
+# The numerix module was historically used to provide
+# compatibility between the Numeric, numarray, and NumPy array
+# packages. Now that NumPy has emerge as the universal array
+# package for python, numerix is not really necessary and is
+# maintained to provide backward compatibility. Do not change
+# this unless you have a compelling reason to do so.
+numerix = numpy
diff --git a/community/python2-openbabel/PKGBUILD b/community/python2-openbabel/PKGBUILD
new file mode 100644
index 000000000..8c9f73c90
--- /dev/null
+++ b/community/python2-openbabel/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 32948 2010-11-20 08:38:00Z kchen $
+# Maintainer:
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Michal Bozon <bozonm@vscht.cz>
+
+pkgname=python2-openbabel
+pkgver=2.3.0
+pkgrel=2
+pkgdesc="Python 2 bindings of openbabel library"
+arch=('i686' 'x86_64')
+url="http://openbabel.org/wiki/Python"
+license=('GPL')
+depends=('python2' 'gcc-libs' "openbabel=${pkgver}" 'eigen')
+makedepends=('swig')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/openbabel/openbabel-$pkgver.tar.gz)
+md5sums=('effda01ed4a31d18d8e3d08191799608')
+
+build() {
+ cd ${srcdir}/openbabel-$pkgver/scripts/python
+ sed -i '19i os.path.join("/usr/include/openbabel-2.0"),' setup.py
+ python2 setup.py install --prefix=/usr --root=${pkgdir}
+}
diff --git a/community/python2-poppler/PKGBUILD b/community/python2-poppler/PKGBUILD
new file mode 100644
index 000000000..5dae427ec
--- /dev/null
+++ b/community/python2-poppler/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 42185 2011-03-15 10:57:39Z jelle $
+# Maintainer: Ray Rashif <schiv@archlinux.org
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=python2-poppler
+_realname=pypoppler
+pkgver=0.12.1
+pkgrel=4
+pkgdesc="Python 2.x bindings for Poppler"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/poppler-python"
+license=('GPL')
+depends=('pygtk' 'poppler-glib')
+provides=('pypoppler' 'python-poppler')
+conflicts=('python-poppler')
+replaces=('python-poppler')
+options=(!libtool force)
+source=(http://launchpad.net/poppler-python/trunk/development/+download/$_realname-$pkgver.tar.gz
+ pypoppler-0.12.1-poppler-0.16.0.patch)
+md5sums=('1a89e5ed3042afc81bbd4d02e0cf640a'
+ '683c5b67866d56adc2494120cc329dc8')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ patch -Np0 -i "$srcdir/pypoppler-0.12.1-poppler-0.16.0.patch"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ PYTHON=python2
+ make
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/community/python2-poppler/pypoppler-0.12.1-poppler-0.16.0.patch b/community/python2-poppler/pypoppler-0.12.1-poppler-0.16.0.patch
new file mode 100644
index 000000000..0e99b57ec
--- /dev/null
+++ b/community/python2-poppler/pypoppler-0.12.1-poppler-0.16.0.patch
@@ -0,0 +1,11 @@
+--- poppler.defs.orig 2010-12-30 05:55:07.000000000 +0000
++++ poppler.defs 2010-12-30 05:55:27.000000000 +0000
+@@ -1794,7 +1794,7 @@
+
+ (define-method get_text
+ (of-object "PopplerPage")
+- (c-name "poppler_page_get_text")
++ (c-name "poppler_page_get_selected_text")
+ (return-type "char*")
+ (parameters
+ '("PopplerSelectionStyle" "style")
diff --git a/community/python2-pyopencl/LICENSE.txt b/community/python2-pyopencl/LICENSE.txt
new file mode 100644
index 000000000..3ce400f9d
--- /dev/null
+++ b/community/python2-pyopencl/LICENSE.txt
@@ -0,0 +1,20 @@
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/community/python2-pyopencl/PKGBUILD b/community/python2-pyopencl/PKGBUILD
new file mode 100644
index 000000000..94049932f
--- /dev/null
+++ b/community/python2-pyopencl/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 42723 2011-03-19 23:12:59Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+pkgname=python2-pyopencl
+pkgver=0.92
+pkgrel=2
+pkgdesc="A complete, object-oriented language binding of OpenCL to Python"
+arch=('i686' 'x86_64')
+url="http://mathema.tician.de/software/pyopencl"
+license=('custom')
+depends=('python2' 'boost' 'python2-numpy' 'libcl' 'opencl-headers')
+makedepends=('ctags' 'python2-distribute')
+provides=('pyopencl=${pkgver}')
+replaces=('pyopencl')
+conflicts=('pyopencl')
+source=("http://pypi.python.org/packages/source/p/pyopencl/pyopencl-${pkgver}.tar.gz"
+ 'LICENSE.txt')
+sha1sums=('5f683638328bc452e8ae5dceaf49c6059735fbca'
+ '2e6966b3d9b15603ce2c3ff79eeadd63c5d066b7')
+
+build() {
+ cd "${srcdir}/pyopencl-${pkgver}"
+ python2 ./configure.py --boost-inc-dir=/usr/include \
+ --boost-lib-dir=/usr/lib \
+ --boost-python-libname=boost_python \
+ --cl-inc-dir=/usr/include \
+ --cl-lib-dir=/usr/lib \
+ --cl-libname=OpenCL
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/pyopencl-${pkgver}"
+ python2 setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1 --skip-build
+
+ install -D -m644 ../LICENSE.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/pyvorbis/PKGBUILD b/community/pyvorbis/PKGBUILD
new file mode 100644
index 000000000..83ce3a8eb
--- /dev/null
+++ b/community/pyvorbis/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 89168 2010-08-29 17:00:16Z remy $
+# Contributor: Jason Chu <jason@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pyvorbis
+pkgver=1.4
+pkgrel=5
+pkgdesc="Python vorbis wrapper library"
+url="http://www.andrewchatham.com/pyogg/"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('python2' 'libvorbis' 'pyogg>=1.3-3')
+source=(http://ekyo.nerim.net/software/pyogg/${pkgname}-${pkgver}.tar.gz
+ pyvorbis-1.4-python2.5.patch
+ pyogg-ticket2-fix.patch)
+md5sums=('b4921e792c0a74f75b9d3057df10ee7c'
+ 'f971a6f0ebb6cb7fe00dfc1f778b2d0d'
+ '3547bba78916ef9030bff6fe67194714')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/pyvorbis-1.4-python2.5.patch || return 1
+ patch -Np0 -i ${srcdir}/pyogg-ticket2-fix.patch || return 1
+ python2 ./config_unix.py --prefix=/usr
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py install --root=${pkgdir}
+}
diff --git a/community/pyvorbis/pyogg-ticket2-fix.patch b/community/pyvorbis/pyogg-ticket2-fix.patch
new file mode 100644
index 000000000..b518b3638
--- /dev/null
+++ b/community/pyvorbis/pyogg-ticket2-fix.patch
@@ -0,0 +1,27 @@
+--- src/pyvorbisfile.c 2007-05-14 22:41:05.000000000 +0400
++++ src/pyvorbisfile.c.new 2007-05-14 22:45:20.000000000 +0400
+@@ -173,9 +173,7 @@
+ if (ret == NULL) {
+ PyObject_Del(newobj);
+ return NULL;
+- } else
+- Py_DECREF(ret);
+-
++ }
+ return (PyObject *) newobj;
+ }
+
+@@ -191,10 +189,10 @@
+ close */
+ Py_DECREF(py_self->py_file);
+ } else {
+- /* Otherwise, we opened the file and should close it. */
+- fclose(py_self->c_file);
++ /* Do NOT close the file -- ov_open() takes ownership of the FILE*,
++ and ov_close() is responsible for closing it. */
+ }
+-
++ free(py_self->ovf);
+ PyObject_Del(self);
+ }
+
diff --git a/community/pyvorbis/pyvorbis-1.4-python2.5.patch b/community/pyvorbis/pyvorbis-1.4-python2.5.patch
new file mode 100644
index 000000000..41386d23e
--- /dev/null
+++ b/community/pyvorbis/pyvorbis-1.4-python2.5.patch
@@ -0,0 +1,60 @@
+--- src/pyvorbisinfo.c 2007-03-13 01:23:23.000000000 +0200
++++ src/pyvorbisinfo.c.new 2007-03-13 01:29:36.000000000 +0200
+@@ -134,7 +134,7 @@
+ static void
+ py_ov_info_dealloc(PyObject *self)
+ {
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ #define CMP_RET(x) \
+@@ -418,7 +418,7 @@
+ free(ovc_self->vc);
+ }
+
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+
+--- src/pyvorbiscodec.c 2003-05-13 11:17:13.000000000 +0300
++++ src/pyvorbiscodec.c.new 2007-03-13 01:31:38.000000000 +0200
+@@ -118,7 +118,7 @@
+ {
+ vorbis_dsp_clear(PY_DSP(self));
+ Py_XDECREF(((py_dsp *)self)->parent);
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ static PyObject*
+@@ -447,7 +447,7 @@
+ {
+ vorbis_block_clear(PY_BLOCK(self));
+ Py_XDECREF(((py_block *)self)->parent);
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ static PyObject*
+--- src/pyvorbisfile.c 2003-12-19 09:11:02.000000000 +0200
++++ src/pyvorbisfile.c.new 2007-03-13 01:31:19.000000000 +0200
+@@ -171,7 +171,7 @@
+
+ ret = py_ov_open(newobj, args);
+ if (ret == NULL) {
+- PyMem_DEL(newobj);
++ PyObject_Del(newobj);
+ return NULL;
+ } else
+ Py_DECREF(ret);
+@@ -195,7 +195,7 @@
+ fclose(py_self->c_file);
+ }
+
+- PyMem_DEL(self);
++ PyObject_Del(self);
+ }
+
+ static PyObject *
diff --git a/community/pyxattr/PKGBUILD b/community/pyxattr/PKGBUILD
new file mode 100644
index 000000000..2b0603640
--- /dev/null
+++ b/community/pyxattr/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 31904 2010-11-07 19:21:57Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+
+pkgname=pyxattr
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="A python extension module that allows you to manipulate the extended attributes."
+arch=('i686' 'x86_64')
+url='http://pyxattr.sourceforge.net/'
+license=('GPL')
+depends=('python2')
+makedepends=('python2-distribute')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('0f7ab1e185087329e40f7de218517c84')
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+}
diff --git a/community/qbittorrent/PKGBUILD b/community/qbittorrent/PKGBUILD
new file mode 100644
index 000000000..d22966eed
--- /dev/null
+++ b/community/qbittorrent/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=qbittorrent
+pkgver=2.7.1
+pkgrel=1
+pkgdesc="A bittorrent client written in C++ / Qt4 using the good libtorrent library"
+arch=('i686' 'x86_64')
+url="http://www.qbittorrent.org/"
+license=('GPL')
+depends=('qt' 'libtorrent-rasterbar' 'xdg-utils')
+makedepends=('boost' 'geoip')
+optdepends=('python2: needed for search'
+ 'geoip: improves peer country resolution')
+install='qbittorrent.install'
+source=("http://downloads.sourceforge.net/sourceforge/qbittorrent/${pkgname}-${pkgver}.tar.gz"
+ 'python2.patch')
+md5sums=('ce5c84cd0edc4c182466b207b3375423'
+ 'db0d79fee8ce3470ad3741d36b02a94c')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ sed -i \
+ -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find ./ -name '*.py')
+
+ patch -Np1 -i ${srcdir}/python2.patch
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/community/qbittorrent/python2.patch b/community/qbittorrent/python2.patch
new file mode 100644
index 000000000..24ab742db
--- /dev/null
+++ b/community/qbittorrent/python2.patch
@@ -0,0 +1,33 @@
+diff -Nur qbittorrent-2.4.8.orig/src/searchengine/searchengine.cpp qbittorrent-2.4.8/src/searchengine.cpp
+--- qbittorrent-2.4.8.orig/src/searchengine/searchengine.cpp 2010-10-01 13:52:53.000000000 -0700
++++ qbittorrent-2.4.8/src/searchengine/searchengine.cpp 2010-10-25 01:20:20.046700620 -0700
+@@ -354,7 +354,7 @@
+ //on change le texte du label courrant
+ currentSearchTab->getCurrentLabel()->setText(tr("Results")+" <i>(0)</i>:");
+ // Launch search
+- searchProcess->start("python", params, QIODevice::ReadOnly);
++ searchProcess->start("python2", params, QIODevice::ReadOnly);
+ searchTimeout->start(180000); // 3min
+ }
+
+@@ -421,7 +421,7 @@
+ params << engine_url;
+ params << torrent_url;
+ // Launch search
+- downloadProcess->start("python", params, QIODevice::ReadOnly);
++ downloadProcess->start("python2", params, QIODevice::ReadOnly);
+ }
+ }
+
+diff -Nur qbittorrent-2.4.8.orig/src/searchengine/supportedengines.h qbittorrent-2.4.8/src/supportedengines.h
+--- qbittorrent-2.4.8.orig/src/searchengine/supportedengines.h 2010-10-24 01:32:39.000000000 -0700
++++ qbittorrent-2.4.8/src/searchengine/supportedengines.h 2010-10-25 01:18:42.230032834 -0700
+@@ -144,7 +144,7 @@
+ QStringList params;
+ params << misc::searchEngineLocation()+QDir::separator()+"nova2.py";
+ params << "--capabilities";
+- nova.start("python", params, QIODevice::ReadOnly);
++ nova.start("python2", params, QIODevice::ReadOnly);
+ nova.waitForStarted();
+ nova.waitForFinished();
+ QString capabilities = QString(nova.readAll());
diff --git a/community/qbittorrent/qbittorrent.install b/community/qbittorrent/qbittorrent.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/qbittorrent/qbittorrent.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/community/qc-usb-messenger/PKGBUILD b/community/qc-usb-messenger/PKGBUILD
new file mode 100644
index 000000000..aab42fbf7
--- /dev/null
+++ b/community/qc-usb-messenger/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 38937 2011-02-03 15:23:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Luiz Ribeiro <luizribeiro@gmail.com>
+
+pkgname=qc-usb-messenger
+pkgver=1.8
+pkgrel=14
+pkgdesc="QuickCam Messenger & Communicate driver for Linux"
+arch=('i686' 'x86_64')
+url="http://home.mag.cx/messenger/"
+license=('GPL')
+depends=("kernel26")
+conflicts=('qc-usb')
+install=$pkgname.install
+source=(http://home.mag.cx/messenger/source/$pkgname-$pkgver.tar.gz
+ qc-usb-messenger-kernel-2.6.33.patch
+ qc-usb-messenger-kernel-2.6.36.patch
+ qc-usb-messenger-kernel-2.6.37.patch)
+md5sums=('58dc5652a0c91e6cc2adc682ca848964'
+ 'aa4bb3f2262622d16c3827a4f23400d9'
+ 'ac2bec633194ac3f06aa683d6ff5668e'
+ '56a9f78ad1448fa870fa9ca3521fd2a7')
+
+build() {
+ _kernver=`pacman -Q kernel26 | cut -d . -f 3 | cut -f 1 -d -`
+ depends=("kernel26>=2.6.${_kernver}" "kernel26<2.6.`expr ${_kernver} + 1`")
+
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 < $srcdir/qc-usb-messenger-kernel-2.6.33.patch
+ patch -p1 < $srcdir/qc-usb-messenger-kernel-2.6.36.patch
+ patch -p1 < $srcdir/qc-usb-messenger-kernel-2.6.37.patch
+ make all
+ _kernelver=`uname -r`
+ make install PREFIX=$pkgdir/usr MODULE_DIR=$pkgdir/lib/modules/${_kernelver} LINUX_DIR=/lib/modules/${_kernelver}/build
+}
diff --git a/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.33.patch b/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.33.patch
new file mode 100644
index 000000000..b4f6f9833
--- /dev/null
+++ b/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.33.patch
@@ -0,0 +1,251 @@
+Only in qc-usb-messenger-1.8.my: input_read
+Only in qc-usb-messenger-1.8.my: modules.order
+Only in qc-usb-messenger-1.8.my: Module.symvers
+diff -wbBur qc-usb-messenger-1.8/qc-driver.c qc-usb-messenger-1.8.my/qc-driver.c
+--- qc-usb-messenger-1.8/qc-driver.c 2008-05-26 11:29:16.000000000 +0000
++++ qc-usb-messenger-1.8.my/qc-driver.c 2010-04-12 15:59:23.000000000 +0000
+@@ -49,10 +49,8 @@
+ #include <linux/quickcam.h>
+ #endif
+ #include <linux/version.h>
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)) || (HAVE_UTSRELEASE_H == 1)
+-#include <linux/utsrelease.h>
+-#endif
+-#include <linux/autoconf.h>
++#include <generated/utsrelease.h>
++#include <generated/autoconf.h>
+ #include <linux/module.h>
+
+ #include "qc-memory.h"
+@@ -1124,7 +1122,6 @@
+ PRINTK(KERN_WARNING,"Could not register procfs file entry");
+ return -ENXIO;
+ }
+- entry->owner = THIS_MODULE;
+ entry->data = qc;
+ entry->read_proc = qc_proc_read;
+ entry->write_proc = qc_proc_write;
+@@ -1137,7 +1134,6 @@
+ PRINTK(KERN_WARNING,"Could not register procfs file entry");
+ return -ENXIO;
+ }
+- entry->owner = THIS_MODULE;
+ entry->data = qc;
+ entry->read_proc = qc_proc_button_read;
+ entry->write_proc = qc_proc_write;
+@@ -1179,13 +1175,11 @@
+ PRINTK(KERN_WARNING,"Could not register procfs dir entry");
+ return -ENXIO;
+ }
+- qc_proc_video_entry->owner = THIS_MODULE;
+ qc_proc_quickcam_entry = create_proc_entry(qc_proc_quickcam_name, S_IFDIR, qc_proc_video_entry);
+ if (!qc_proc_quickcam_entry) {
+ PRINTK(KERN_WARNING,"Could not register procfs dir entry");
+ return -ENXIO;
+ }
+- qc_proc_quickcam_entry->owner = THIS_MODULE;
+ return 0;
+ }
+ /* }}} */
+@@ -2622,7 +2616,11 @@
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+ struct video_device *dev = video_devdata(file);
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
++ struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
++#else
+ struct quickcam *qc = (struct quickcam *)dev->priv;
++#endif
+ struct qc_frame_data *fd = &qc->frame_data;
+ int mask;
+
+@@ -2674,7 +2672,11 @@
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+ struct video_device *dev = video_devdata(file);
+ #endif
+- struct quickcam *qc = dev->priv;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
++ struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
++#else
++ struct quickcam *qc = (struct quickcam *)dev->priv;
++#endif
+ int r;
+
+ if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGUSER) PDEBUG("qc_v4l_open(qc=%p)", qc);
+@@ -2739,7 +2741,11 @@
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+ struct video_device *dev = video_devdata(file);
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
++ struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
++#else
+ struct quickcam *qc = (struct quickcam *)dev->priv;
++#endif
+ if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGUSER) PDEBUG("qc_v4l_close(dev=%p,qc=%p)",dev,qc);
+
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+@@ -2788,7 +2794,11 @@
+ struct video_device *dev = video_devdata(file);
+ int noblock = file->f_flags & O_NONBLOCK;
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
++ struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
++#else
+ struct quickcam *qc = (struct quickcam *)dev->priv;
++#endif
+ int frame_len;
+ unsigned char *frame;
+ long r = 0;
+@@ -2845,7 +2855,11 @@
+ const void *start = (void *)vma->vm_start;
+ unsigned long size = vma->vm_end - vma->vm_start;
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
++ struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
++#else
+ struct quickcam *qc = (struct quickcam *)dev->priv;
++#endif
+ unsigned char *frame;
+ int ret = 0, frame_size;
+ #if !HAVE_VMA && LINUX_VERSION_CODE<KERNEL_VERSION(2,6,0)
+@@ -2877,7 +2891,11 @@
+ struct video_device *dev = video_devdata(file);
+ void *argp = (void *)arg;
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
++ struct quickcam *qc = (struct quickcam *)video_get_drvdata(dev);
++#else
+ struct quickcam *qc = (struct quickcam *)dev->priv;
++#endif
+ int i, retval = 0;
+
+ if (qcdebug&QC_DEBUGLOGIC || qcdebug&QC_DEBUGUSER) PDEBUG("qc_v4l_ioctl(dev=%p,cmd=%u,arg=%p,qc=%p)",dev,cmd,argp,qc);
+@@ -2895,7 +2913,7 @@
+ if (qcdebug&QC_DEBUGUSER) PDEBUG("VIDIOCGCAP");
+ memset(&b, 0, sizeof(b));
+ strcpy(b.name, "Logitech QuickCam USB"); /* Max 31 characters */
+- b.type = qc->vdev.type;
++ b.type = qc->vdev.vfl_type;
+ b.channels = 1;
+ b.audios = 0;
+ b.maxwidth = qc->sensor_data.maxwidth;
+@@ -3484,7 +3502,7 @@
+
+ static struct video_device qc_v4l_template = {
+ name: "QuickCam USB",
+- type: VID_TYPE_CAPTURE, // | VID_TYPE_SUBCAPTURE,
++ vfl_type: VID_TYPE_CAPTURE, // | VID_TYPE_SUBCAPTURE,
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ hardware: VID_HARDWARE_QCAM_USB,
+ #endif
+@@ -3662,7 +3680,7 @@
+ #endif
+ /* Register input device for button */
+ qc->input_ptr->name = "Quickcam snapshot button";
+- qc->input_ptr->private = qc;
++ input_set_drvdata(qc->input_ptr, qc);
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+ qc->input_ptr->evbit[0] = BIT_MASK(EV_KEY);
+ qc->input_ptr->keybit[BIT_WORD(BTN_0)] = BIT_MASK(BTN_0);
+@@ -3736,7 +3754,12 @@
+
+ /* Register V4L video device */
+ memcpy(&qc->vdev, &qc_v4l_template, sizeof(qc_v4l_template));
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
++ video_set_drvdata(&qc->vdev, qc);
++#else
+ qc->vdev.priv = qc;
++#endif
+
+ mb();
+ r = video_register_device(&qc->vdev, VFL_TYPE_GRABBER, video_nr);
+Only in qc-usb-messenger-1.8.my: qc-driver.c.rej
+Only in qc-usb-messenger-1.8.my: qc-driver.o
+Only in qc-usb-messenger-1.8.my: .qc-driver.o.cmd
+Only in qc-usb-messenger-1.8.my: qc-formats.o
+Only in qc-usb-messenger-1.8.my: .qc-formats.o.cmd
+diff -wbBur qc-usb-messenger-1.8/qc-memory.c qc-usb-messenger-1.8.my/qc-memory.c
+--- qc-usb-messenger-1.8/qc-memory.c 2006-11-05 06:36:51.000000000 +0000
++++ qc-usb-messenger-1.8.my/qc-memory.c 2010-04-12 15:58:26.000000000 +0000
+@@ -27,7 +27,7 @@
+ */
+ /* }}} */
+ /* {{{ [fold] Includes */
+-#include <linux/autoconf.h>
++#include <generated/autoconf.h>
+ #include <linux/version.h>
+
+ #ifdef CONFIG_SMP
+@@ -81,12 +81,14 @@
+ #define pte_offset(pmd,adr) pte_offset_map(pmd,adr) /* Emulation for a kernel using the new rmap-vm */
+ #endif /* Fix by Michele Balistreri <brain87@gmx.net> */
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
+ #ifndef SetPageReserved
+ #define SetPageReserved(p) mem_map_reserve(p)
+ #endif
+ #ifndef ClearPageReserved
+ #define ClearPageReserved(p) mem_map_unreserve(p)
+ #endif
++#endif
+ /* }}} */
+
+ /* {{{ [fold] kvirt_to_pa(): obtain physical address from virtual address obtained by vmalloc() */
+Only in qc-usb-messenger-1.8.my: qc-memory.c.rej
+Only in qc-usb-messenger-1.8.my: qc-memory.o
+Only in qc-usb-messenger-1.8.my: .qc-memory.o.cmd
+Only in qc-usb-messenger-1.8.my: qcmessenger.ko
+Only in qc-usb-messenger-1.8.my: .qcmessenger.ko.cmd
+Only in qc-usb-messenger-1.8.my: qcmessenger.mod.c
+Only in qc-usb-messenger-1.8.my: qcmessenger.mod.o
+Only in qc-usb-messenger-1.8.my: .qcmessenger.mod.o.cmd
+Only in qc-usb-messenger-1.8.my: qcmessenger.o
+Only in qc-usb-messenger-1.8.my: .qcmessenger.o.cmd
+Only in qc-usb-messenger-1.8.my: qcset
+Only in qc-usb-messenger-1.8.my: qc-vv6450.o
+Only in qc-usb-messenger-1.8.my: .qc-vv6450.o.cmd
+diff -wbBur qc-usb-messenger-1.8/quickcam.h qc-usb-messenger-1.8.my/quickcam.h
+--- qc-usb-messenger-1.8/quickcam.h 2008-05-27 06:53:17.000000000 +0000
++++ qc-usb-messenger-1.8.my/quickcam.h 2010-04-12 15:58:33.000000000 +0000
+@@ -92,7 +92,7 @@
+
+ #include <linux/version.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)
+-#include <linux/autoconf.h>
++#include <generated/autoconf.h>
+ #else
+ #include <linux/config.h>
+ #endif
+@@ -242,7 +242,7 @@
+ #if LINUX_VERSION_CODE<KERNEL_VERSION(2,4,20) || LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,0)
+ /* Things come and go... */
+ /* Used only for debugging, so this could be actually removed if needed */
+-#define sem_getcount(sem) atomic_read(&(sem)->count)
++#define sem_getcount(sem) 0
+ #endif
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+Only in qc-usb-messenger-1.8.my: quickcam.h.rej
+diff -wbBur qc-usb-messenger-1.8/quickcam.sh qc-usb-messenger-1.8.my/quickcam.sh
+--- qc-usb-messenger-1.8/quickcam.sh 2008-05-27 06:53:16.000000000 +0000
++++ qc-usb-messenger-1.8.my/quickcam.sh 2010-04-12 15:58:18.000000000 +0000
+@@ -374,7 +374,7 @@
+ echo "[!] Can not find version.h in kernel source."
+ KERNELOK="n"
+ fi
+-if [ ! -r "$KERNEL_SOURCE/include/linux/autoconf.h" ]; then
++if [ ! -r "$KERNEL_SOURCE/include/generated/autoconf.h" ]; then
+ echo "[!] Kernel source is not configured properly."
+ KERNELOK="n"
+ fi
+@@ -414,7 +414,7 @@
+ echo "[!] Can still not find version.h in kernel source."
+ KERNELOK="n"
+ fi
+- if [ ! -r "$KERNEL_SOURCE/include/linux/autoconf.h" ]; then
++ if [ ! -r "$KERNEL_SOURCE/include/generated/autoconf.h" ]; then
+ echo "[!] Kernel source is still not configured properly."
+ KERNELOK="n"
+ fi
+Only in qc-usb-messenger-1.8.my: .tmp_versions
diff --git a/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.36.patch b/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.36.patch
new file mode 100644
index 000000000..426bf95a7
--- /dev/null
+++ b/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.36.patch
@@ -0,0 +1,12 @@
+diff -wbBur qc-usb-messenger-1.8/qc-driver.c qc-usb-messenger-1.8.my/qc-driver.c
+--- qc-usb-messenger-1.8/qc-driver.c 2008-05-26 11:29:16.000000000 +0000
++++ qc-usb-messenger-1.8.my/qc-driver.c 2010-12-16 14:08:06.000000000 +0000
+@@ -3476,7 +3494,7 @@
+ release: qc_v4l_close,
+ read: qc_v4l_read,
+ // write: qc_v4l_write,
+- ioctl: qc_v4l_ioctl,
++ compat_ioctl: qc_v4l_ioctl,
+ mmap: qc_v4l_mmap,
+ poll: qc_v4l_poll,
+ };
diff --git a/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.37.patch b/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.37.patch
new file mode 100644
index 000000000..234f21e53
--- /dev/null
+++ b/community/qc-usb-messenger/qc-usb-messenger-kernel-2.6.37.patch
@@ -0,0 +1,21 @@
+diff -wbBur qc-usb-messenger-1.8/qc-driver.c qc-usb-messenger-1.8.my/qc-driver.c
+--- qc-usb-messenger-1.8/qc-driver.c 2008-05-26 11:29:16.000000000 +0000
++++ qc-usb-messenger-1.8.my/qc-driver.c 2011-02-03 15:21:38.000000000 +0000
+@@ -225,7 +223,7 @@
+ };
+
+ static LIST_HEAD(quickcam_list); /* Linked list containing all QuickCams */
+-static DECLARE_MUTEX(quickcam_list_lock); /* Always lock first quickcam_list_lock, then qc->lock */
++static struct semaphore quickcam_list_lock; /* Always lock first quickcam_list_lock, then qc->lock */
+
+ /* Default values for user-specified lookup-table; may be overwritten by user */
+ static unsigned char userlut_contents[QC_LUT_SIZE] = {
+@@ -3588,7 +3606,7 @@
+ PDEBUG("poisoning qc in qc_usb_init");
+ POISON(*qc);
+ if (qcdebug&QC_DEBUGMUTEX) PDEBUG("init down(%p) in qc_usb_init()", qc);
+- init_MUTEX_LOCKED(&qc->lock);
++ sema_init(&qc->lock, 1);
+ qc->users = 0;
+ qc->dev = usbdev;
+ qc->iface = ifacenum;
diff --git a/community/qc-usb-messenger/qc-usb-messenger.install b/community/qc-usb-messenger/qc-usb-messenger.install
new file mode 100644
index 000000000..3f6611aea
--- /dev/null
+++ b/community/qc-usb-messenger/qc-usb-messenger.install
@@ -0,0 +1,35 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ /sbin/depmod -a
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /sbin/depmod -a
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /sbin/depmod -a
+}
+
diff --git a/community/qcad/PKGBUILD b/community/qcad/PKGBUILD
new file mode 100644
index 000000000..50853b837
--- /dev/null
+++ b/community/qcad/PKGBUILD
@@ -0,0 +1,57 @@
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Giovanni Scafora <linuxmania@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=qcad
+pkgver=2.0.5.0
+pkgrel=8
+pkgdesc="A 2D CAD package based upon Qt"
+arch=('i686' 'x86_64')
+url="http://www.ribbonsoft.com/qcad.html"
+license=('GPL2')
+depends=('qt3')
+options=(libtool)
+source=(http://www.ribbonsoft.com/archives/$pkgname/$pkgname-$pkgver-1-community.src.tar.gz
+ qcad.xpm
+ QCad.desktop
+ qcad-intptr.patch
+ qcad.patch)
+ # http://ghost1227.com/files/misc/qm.tar.gz)
+md5sums=('96b6a56027782aec953c9c4e64c5998c' \
+ 'da32fec0d2fb85d96126bf28bb0ab9ff' \
+ 'b4d1eb6724b4b41f191f1ab6fd859c39' \
+ '92f900fe1fd3a8f841232b587b49c7da' \
+ '7e6779b1e3b10da1eb4daf36d93f8479' \
+ '89f78319babd39a14679af8112f9e12c')
+
+build () {
+ export PATH="/opt/qt/bin:$PATH"
+ export QTDIR=/opt/qt
+
+ cd ${srcdir}/${pkgname}-2.0.5.0-1-community.src
+
+ #Arch64 fix - gentoo patch
+ [ "$CARCH" = "x86_64" ] && patch -p1 < ../qcad-intptr.patch
+ patch -p1 < ../qcad.patch || return 1
+ sed -i "s:"-pedantic"::g" mkspecs/defs.pro || return 1
+
+ cd scripts
+ ./build_qcad.sh notrans || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-2.0.5.0-1-community.src/qcad
+
+ install -D -m755 qcad ${pkgdir}/usr/bin/qcad || return 1
+ install -d ${pkgdir}/usr/share/{qcad,pixmaps,applications} || return 1
+ install -m644 ../../qcad.xpm ${pkgdir}/usr/share/pixmaps/qcad.xpm || return 1
+ install -m644 ../../QCad.desktop \
+ ${pkgdir}/usr/share/applications/QCad.desktop || return 1
+ cp -r fonts patterns data library machines ${pkgdir}/usr/share/qcad || return 1
+ #cp -r ${srcdir}/qm ${pkgdir}/usr/share/qcad/
+}
+md5sums=('96b6a56027782aec953c9c4e64c5998c'
+ 'da32fec0d2fb85d96126bf28bb0ab9ff'
+ 'b4d1eb6724b4b41f191f1ab6fd859c39'
+ '92f900fe1fd3a8f841232b587b49c7da'
+ '7e6779b1e3b10da1eb4daf36d93f8479')
diff --git a/community/qcad/QCad.desktop b/community/qcad/QCad.desktop
new file mode 100644
index 000000000..a55f5940f
--- /dev/null
+++ b/community/qcad/QCad.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=/usr/bin/qcad
+Icon=/usr/share/pixmaps/qcad.xpm
+Name=QCad
+StartupNotify=true
+Terminal=false
+Type=Application
+Categories=Application;Office;
diff --git a/community/qcad/qcad-intptr.patch b/community/qcad/qcad-intptr.patch
new file mode 100644
index 000000000..6d8b6acca
--- /dev/null
+++ b/community/qcad/qcad-intptr.patch
@@ -0,0 +1,24 @@
+diff -Naur qcad-2.0.4.0-1.src.orig/qcadlib/src/engine/rs_entity.cpp qcad-2.0.4.0-1.src.patched/qcadlib/src/engine/rs_entity.cpp
+--- qcad-2.0.4.0-1.src.orig/qcadlib/src/engine/rs_entity.cpp 2004-09-14 15:13:02.000000000 -0500
++++ qcad-2.0.4.0-1.src.patched/qcadlib/src/engine/rs_entity.cpp 2006-06-23 14:21:40.000000000 -0500
+@@ -849,7 +849,7 @@
+ os << " layer: NULL ";
+ } else {
+ os << " layer: " << e.layer->getName().latin1() << " ";
+- os << " layer address: " << (int)(e.layer) << " ";
++ os << " layer address: " << (intptr_t)(e.layer) << " ";
+ }
+
+ os << e.pen << "\n";
+diff -Naur qcad-2.0.4.0-1.src.orig/qcadlib/src/engine/rs_layer.cpp qcad-2.0.4.0-1.src.patched/qcadlib/src/engine/rs_layer.cpp
+--- qcad-2.0.4.0-1.src.orig/qcadlib/src/engine/rs_layer.cpp 2004-09-14 15:13:02.000000000 -0500
++++ qcad-2.0.4.0-1.src.patched/qcadlib/src/engine/rs_layer.cpp 2006-06-23 14:21:23.000000000 -0500
+@@ -57,7 +57,7 @@
+ os << " name: " << l.getName().latin1()
+ << " pen: " << l.getPen()
+ << " frozen: " << (int)l.isFrozen()
+- << " address: " << (int)(&l)
++ << " address: " << (intptr_t)(&l)
+ << std::endl;
+ return os;
+ }
diff --git a/community/qcad/qcad.patch b/community/qcad/qcad.patch
new file mode 100644
index 000000000..f051f29af
--- /dev/null
+++ b/community/qcad/qcad.patch
@@ -0,0 +1,52 @@
+diff -aur qcad-2.0.5.0-1-community.src.orig/dxflib/src/dl_writer.h qcad-2.0.5.0-1-community.src.new/dxflib/src/dl_writer.h
+--- qcad-2.0.5.0-1-community.src.orig/dxflib/src/dl_writer.h 2008-12-11 22:28:20.000000000 +0100
++++ qcad-2.0.5.0-1-community.src.new/dxflib/src/dl_writer.h 2008-12-11 22:29:51.000000000 +0100
+@@ -37,6 +37,7 @@
+ #endif
+
+ #include <iostream>
++#include <cstring>
+
+ #include "dl_attributes.h"
+ #include "dl_codes.h"
+diff -aur qcad-2.0.5.0-1-community.src.orig/qcadactions/src/rs_actionzoompan.cpp qcad-2.0.5.0-1-community.src.new/qcadactions/src/rs_actionzoompan.cpp
+--- qcad-2.0.5.0-1-community.src.orig/qcadactions/src/rs_actionzoompan.cpp 2008-12-11 22:28:20.000000000 +0100
++++ qcad-2.0.5.0-1-community.src.new/qcadactions/src/rs_actionzoompan.cpp 2008-12-11 22:29:51.000000000 +0100
+@@ -23,7 +23,7 @@
+ ** not clear to you.
+ **
+ **********************************************************************/
+-
++#include <cstdlib>
+ #include "rs_actionzoompan.h"
+ #include "rs_snapper.h"
+ #include "rs_point.h"
+Nur in qcad-2.0.5.0-1-community.src.new/qcadlib/src/engine: rs_entity.cpp.orig.rej.
+Nur in qcad-2.0.5.0-1-community.src.new/qcadlib/src/engine: rs_entity.cpp.rej.
+Nur in qcad-2.0.5.0-1-community.src.new/qcadlib/src/engine: rs_layer.cpp.orig.rej.
+Nur in qcad-2.0.5.0-1-community.src.new/qcadlib/src/engine: rs_layer.cpp.rej.
+diff -aur qcad-2.0.5.0-1-community.src.orig/qcadlib/src/information/rs_information.cpp qcad-2.0.5.0-1-community.src.new/qcadlib/src/information/rs_information.cpp
+--- qcad-2.0.5.0-1-community.src.orig/qcadlib/src/information/rs_information.cpp 2008-12-11 22:28:20.000000000 +0100
++++ qcad-2.0.5.0-1-community.src.new/qcadlib/src/information/rs_information.cpp 2008-12-11 22:30:18.000000000 +0100
+@@ -25,7 +25,7 @@
+ **********************************************************************/
+
+ #include "rs_information.h"
+-
++#include <cstdlib>
+ #include "rs_constructionline.h"
+
+
+diff -aur qcad-2.0.5.0-1-community.src.orig/scripts/build_qcad.sh qcad-2.0.5.0-1-community.src.new/scripts/build_qcad.sh
+--- qcad-2.0.5.0-1-community.src.orig/scripts/build_qcad.sh 2008-12-11 22:28:20.000000000 +0100
++++ qcad-2.0.5.0-1-community.src.new/scripts/build_qcad.sh 2008-12-11 22:31:37.000000000 +0100
+@@ -16,9 +16,6 @@
+ echo " distcc use distcc for distributed compilation. DISTCC_HOSTS must be set."
+ echo
+
+-echo "QTDIR is: $QTDIR"
+-echo "QMAKESPEC is: $QMAKESPEC"
+-
+ # detect system:
+ if [ "x$OS" == "xWindows_NT" ]
+ then
diff --git a/community/qcad/qcad.xpm b/community/qcad/qcad.xpm
new file mode 100644
index 000000000..e747fa984
--- /dev/null
+++ b/community/qcad/qcad.xpm
@@ -0,0 +1,132 @@
+/* XPM */
+static const char * qcad_xpm[] = {
+"32 32 97 2",
+" c None",
+". c #3F3F3F",
+"+ c #010180",
+"@ c #FFFFFF",
+"# c #E0E0EF",
+"$ c #41419F",
+"% c #4545A1",
+"& c #4949A3",
+"* c #4D4DA5",
+"= c #5151A7",
+"- c #5555A9",
+"; c #5959AB",
+"> c #4444A2",
+", c #3C3C9D",
+"' c #40409F",
+") c #4444A1",
+"! c #4848A3",
+"~ c #4C4CA5",
+"{ c #5050A7",
+"] c #5454A9",
+"^ c #5858AB",
+"/ c #5D5DAD",
+"( c #6161AF",
+"_ c #6565B1",
+": c #5C5CAD",
+"< c #6060AF",
+"[ c #6464B1",
+"} c #6868B3",
+"| c #6C6CB5",
+"1 c #7070B7",
+"2 c #7474B9",
+"3 c #7878BB",
+"4 c #3F3F9E",
+"5 c #4343A0",
+"6 c #4747A3",
+"7 c #4B4BA5",
+"8 c #000000",
+"9 c #7C7CBD",
+"0 c #8080BF",
+"a c #4747A2",
+"b c #4B4BA4",
+"c c #4F4FA6",
+"d c #7B7BBD",
+"e c #7F7FBF",
+"f c #8383C1",
+"g c #5353A8",
+"h c #8787C3",
+"i c #5757AA",
+"j c #8B8BC5",
+"k c #4E4EA6",
+"l c #5252A8",
+"m c #5656AA",
+"n c #5A5AAC",
+"o c #8787C2",
+"p c #8F8FC7",
+"q c #5E5EAE",
+"r c #8B8BC4",
+"s c #8F8FC6",
+"t c #9393C8",
+"u c #6262B0",
+"v c #8E8EC6",
+"w c #9292C8",
+"x c #9696CA",
+"y c #6666B2",
+"z c #9A9ACC",
+"A c #6A6AB4",
+"B c #9E9ECE",
+"C c #6565B2",
+"D c #6969B4",
+"E c #6D6DB6",
+"F c #7171B8",
+"G c #7575BA",
+"H c #9D9DCE",
+"I c #A1A1D0",
+"J c #7171B7",
+"K c #7575B9",
+"L c #7979BC",
+"M c #7D7DBE",
+"N c #8181C0",
+"O c #8585C2",
+"P c #8989C4",
+"Q c #8D8DC6",
+"R c #9191C8",
+"S c #9595CA",
+"T c #9999CC",
+"U c #A5A5D2",
+"V c #7979BB",
+"W c #7D7DBD",
+"X c #8181BF",
+"Y c #8585C1",
+"Z c #8989C3",
+"` c #A9A9D4",
+" . c #8D8DC5",
+".. c #9191C7",
+"+. c #9595C9",
+"@. c #9999CB",
+"#. c #ADADD6",
+" ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" . . . . . . . . ",
+" . . . + + + + + + + . . . ",
+" . @ . @ + + # # # # # # # + + @ . @ . @ . ",
+" . . . . . . . + # # $ % & * = - ; > > + . . . . . . . . . ",
+" . . + # , ' ) ! ~ { ] ^ / ( _ > + . . ",
+" . . + # , ' ) ! ~ { ] ^ : < [ } | > + . . ",
+" . @ + # , ' ) ! ~ { ] ^ : < [ } | 1 2 > + @ . @ . ",
+" . . . . + # ' ) ! . . . . . . . . . 1 2 3 > + . . . . . . ",
+" . + # 4 5 6 7 . @ @ @ @ @ @ @ . 8 3 9 0 > + . . ",
+" . + # 5 a b c . @ @ @ @ @ @ @ . 8 d e f > + . . ",
+" . + # a b c g . @ @ @ @ @ @ @ . 8 e f h > + . @ . ",
+" . . . + # b c g i . @ @ @ @ @ @ @ . 8 f h j > + . . . . . ",
+" . + # k l m n . @ @ @ @ @ @ @ . 8 o j p > + . . ",
+" . + # l m n q . @ @ @ @ @ @ @ . 8 r s t > + . . ",
+" . + # m n q u . @ @ @ @ @ @ @ . 8 v w x > + . @ . ",
+" . . . + # n q u y . @ @ @ @ @ @ @ . 8 w x z > + . . . . . ",
+" . + # q u y A . @ @ @ @ @ @ @ . 8 x z B > + . . ",
+" . + > C D E . . . . . . . . . 8 z B > + . . ",
+" . @ + > D E F G 8 8 8 8 8 8 8 8 8 H I > + @ . @ . ",
+" . . . . . + > J K L M N O P Q R S T H I U + . . . . . . . ",
+" . . + > V W X Y Z Q R S T H I U ` > + . . ",
+" . . + > > Y Z ...+.@.H > U ` #.#.> + . . ",
+" . @ . @ + + > > > > > > > + > #.#.#.> + . @ . ",
+" . . . . . . . . . . + + + + + + + . + > #.#.> + . . . . . ",
+" . . . . . + > > + . . ",
+" . . . . . + + . . ",
+" . @ . @ . @ . @ . @ . @ . @ . ",
+" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ",
+" ",
+" "};
diff --git a/community/qdevelop/PKGBUILD b/community/qdevelop/PKGBUILD
new file mode 100644
index 000000000..79b962488
--- /dev/null
+++ b/community/qdevelop/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Xavion <Xavion (dot) 0 (at) Gmail (dot) com>
+# Contributor: Shaika-Dzari < shaikadzari at gmail dot com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+# Contributor: Benjamin Kircher <benjamin.kircher@gmail.com>
+
+pkgname=qdevelop
+pkgver=0.28
+pkgrel=1
+pkgdesc='A free and cross-platform IDE for Qt4.'
+arch=('i686' 'x86_64')
+url="http://biord-software.org/${pkgname}"
+license=('GPL2')
+depends=('qt')
+makedepends=('unzip')
+optdepends=('ctags: for code completion and class browser'
+ 'gdb: for debugging functionalities')
+source=("http://biord-software.org/downloads/$pkgname-v$pkgver.tar.gz"
+ 'qdevelop.desktop')
+md5sums=('24e64bd80dd7407a885acd639b59a740'
+ 'ade6437139807ca68c758c10913d6594')
+
+build() {
+ cd ${srcdir}/${pkgname}-v${pkgver}
+
+ lrelease QDevelop.pro
+ qmake
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-v${pkgver}
+
+ make INSTALL_ROOT="$pkgdir" install
+
+ # Desktop
+ install -Dm644 $srcdir/${pkgname}.desktop ${pkgdir}/usr/share/applications/${pkgname}.desktop
+ install -Dm644 resources/images/logo.png ${pkgdir}/usr/share/pixmaps/${pkgname}.png
+}
diff --git a/community/qdevelop/qdevelop.desktop b/community/qdevelop/qdevelop.desktop
new file mode 100644
index 000000000..1018a8295
--- /dev/null
+++ b/community/qdevelop/qdevelop.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=QDevelop
+GenericName=An IDE for Qt4
+Comment=A free and cross-platform IDE for Qt4
+#Version=0.1
+Type=Application
+Categories=KDE;Qt;Application;Development;IDE;
+Terminal=0
+Encoding=UTF-8
+Icon=qdevelop
+Exec=qdevelop
+X-KDE-StartupNotify=true
diff --git a/community/qemu-launcher/PKGBUILD b/community/qemu-launcher/PKGBUILD
new file mode 100644
index 000000000..f3ce32d48
--- /dev/null
+++ b/community/qemu-launcher/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: cs-cam <me@camdaniel.com>
+
+pkgname=qemu-launcher
+pkgver=1.7.4
+pkgrel=2
+pkgdesc="GNOME/Gtk front-end for the Qemu x86 PC emulator"
+url="http://emeitner.f2o.org/qemu_launcher"
+license=('GPL')
+arch=('i686' 'x86_64')
+source=(http://download.gna.org/qemulaunch/1.7.x/${pkgname}_$pkgver.tar.gz)
+depends=('qemu' 'gtk2-perl' 'glade-perl' 'perl-locale-gettext' 'xdg-utils')
+makedepends=('libxml2')
+install=qemu-launcher.install
+md5sums=('bd71fd543bd2723c7ea54de81f7ccabf')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ make PREFIX=/usr DESTDIR=$startdir/pkg install
+ ln -s qemu-launcher-32x32.xpm $startdir/pkg/usr/share/pixmaps/qemu-launcher.xpm
+}
diff --git a/community/qemu-launcher/qemu-launcher.install b/community/qemu-launcher/qemu-launcher.install
new file mode 100644
index 000000000..c5571196e
--- /dev/null
+++ b/community/qemu-launcher/qemu-launcher.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/qgis/PKGBUILD b/community/qgis/PKGBUILD
new file mode 100644
index 000000000..85059c653
--- /dev/null
+++ b/community/qgis/PKGBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=qgis
+pkgver=1.6.0
+pkgrel=5
+pkgdesc='A Geographic Information System (GIS) that supports vector, raster & database formats.'
+url='http://qgis.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+# update to http://www.qgis.org/wiki/Building_QGIS_from_Source#Overview
+depends=('libmysqlclient' 'postgresql-libs' 'sqlite3' 'jasper' 'curl' 'qt' 'python2' 'python2-qt' 'giflib' 'xerces-c' 'cfitsio' 'qwt' 'gdal')
+makedepends=('grass' 'gsl' 'postgis' 'netcdf' 'cmake' 'fcgi' 'python2-sip')
+optdepends=('postgis: postgis support and SPIT plugin'
+ 'fcgi: qgis mapserver'
+ 'python2-sip: python-support'
+ 'grass: grass plugin'
+ 'gsl: georeferencer ')
+options=('!makeflags')
+source=("http://qgis.org/downloads/${pkgname}-${pkgver}.tar.bz2"
+ 'qgis.desktop'
+ 'ticket_3378.diff')
+md5sums=('9ea8a784d970f5009b0e6271820248f6'
+ '8ab66039f2aba519b92f52272ec3c13e'
+ '402f3d39a344367fd55bdaa324deb797')
+
+build() {
+ # Fix insecure RPATH is weird, but just works ;)
+# echo "os.system(\"sed -i '/^LFLAGS/s|-Wl,-rpath,.\+ ||g' gui/Makefile core/Makefile\")" >> python/configure.py.in
+
+ cd ${pkgname}-${pkgver}
+ # fix compilation error https://trac.osgeo.org/qgis/ticket/3378
+ patch -Np3 -i ${srcdir}/ticket_3378.diff
+ cd ${srcdir}
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DGRASS_PREFIX=/opt/grass \
+ -DQGIS_MANUAL_SUBDIR=share/man
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # install some freedesktop.org compatibility
+ install -D -m644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/qgis/qgis.desktop b/community/qgis/qgis.desktop
new file mode 100644
index 000000000..c3db5ad08
--- /dev/null
+++ b/community/qgis/qgis.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Quantum GIS
+GenericName="GIS"
+Comment="Geographic Information System (GIS) that supports vector, raster & database formats"
+Exec=/usr/bin/qgis
+Icon=/usr/share/qgis/images/icons/qgis-icon.png
+Terminal=false
+MultipleArgs=false
+Type=Application
+Categories=Application;Science
diff --git a/community/qgis/ticket_3378.diff b/community/qgis/ticket_3378.diff
new file mode 100644
index 000000000..0d722e4c8
--- /dev/null
+++ b/community/qgis/ticket_3378.diff
@@ -0,0 +1,38 @@
+Index: /trunk/qgis/python/core/conversions.sip
+===================================================================
+--- /trunk/qgis/python/core/conversions.sip (revision 14323)
++++ /trunk/qgis/python/core/conversions.sip (revision 14988)
+@@ -16,4 +16,5 @@
+
+ %Feature QSETINT_CONVERSION
++%Feature QSETTYPE_CONVERSION
+
+ %ModuleHeaderCode
+@@ -321,5 +322,5 @@
+ %End
+
+-
++%If (QSETTYPE_CONVERSION)
+ template <TYPE>
+ %MappedType QSet<TYPE>
+@@ -395,6 +396,5 @@
+
+ };
+-
+-
++%End
+
+ template<TYPE>
+Index: /trunk/qgis/python/CMakeLists.txt
+===================================================================
+--- /trunk/qgis/python/CMakeLists.txt (revision 14330)
++++ /trunk/qgis/python/CMakeLists.txt (revision 14988)
+@@ -44,4 +44,8 @@
+ ENDIF(NOT PYQT4_VERSION_NUM LESS 263941)
+
++IF(NOT PYQT4_VERSION_NUM LESS 264194) # 0x040802
++ SET(SIP_DISABLE_FEATURES ${SIP_DISABLE_FEATURES} QSETTYPE_CONVERSION)
++ENDIF(NOT PYQT4_VERSION_NUM LESS 264194)
++
+ # core module
+ FILE(GLOB sip_files_core core/*.sip)
diff --git a/community/qgit/PKGBUILD b/community/qgit/PKGBUILD
new file mode 100644
index 000000000..f06f20937
--- /dev/null
+++ b/community/qgit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 78123 2010-04-19 12:09:19Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Dan McGee <dan@archlinux.org>
+
+pkgname=qgit
+pkgver=2.3
+pkgrel=2
+pkgdesc="A GIT GUI viewer built on Qt/C++"
+url="http://digilander.libero.it/mcostalba/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('qt' 'git')
+options=(!makeflags !ccache) #makepkg3 options, ccache is a no-go
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'qgit.desktop' 'qgit.png')
+md5sums=('1f6cd60cc1b92973718b108d542e3270'
+ 'ecb8b35e17163a7ec6893ffa71445c40'
+ '85138f44d577b03dfc738d3f27e04992')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ qmake qgit.pro
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ install -Dm755 bin/qgit ${pkgdir}/usr/bin/qgit || return 1
+ install -Dm644 ${srcdir}/qgit.desktop ${pkgdir}/usr/share/applications/qgit.desktop || return 1
+ install -Dm644 ${srcdir}/qgit.png ${pkgdir}/usr/share/pixmaps/qgit.png || return 1
+}
diff --git a/community/qgit/qgit.desktop b/community/qgit/qgit.desktop
new file mode 100644
index 000000000..eb8cfd1cd
--- /dev/null
+++ b/community/qgit/qgit.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Categories=Development;RevisionControl;
+Name=QGit
+Comment=A GIT GUI viewer built on Qt/C++
+Icon=qgit.png
+Exec=/usr/bin/qgit
+URL=http://digilander.libero.it/mcostalba/
+StartupNotify=true
+Terminal=false
+Type=Application
diff --git a/community/qgit/qgit.png b/community/qgit/qgit.png
new file mode 100644
index 000000000..de637c060
--- /dev/null
+++ b/community/qgit/qgit.png
Binary files differ
diff --git a/community/qgo/PKGBUILD b/community/qgo/PKGBUILD
new file mode 100644
index 000000000..d9589aef6
--- /dev/null
+++ b/community/qgo/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgname=qgo
+pkgver=1.5.4
+_realver=1.5.4-r2
+pkgrel=3
+pkgdesc="qGo is a Go client and full featured SGF editor."
+arch=('i686' 'x86_64')
+url="http://qgo.sourceforge.net/"
+license=('GPL')
+depends=('qt3' 'libsm')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-${_realver}.tar.gz
+ qgo-gcc43-iostream.patch)
+
+build() {
+ . /etc/profile.d/qt3.sh
+
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/qgo-gcc43-iostream.patch || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
+md5sums=('5b83bd5ec234beabe48ca17eace3957e'
+ '148c470f6426e6d626b3105807b0c006')
diff --git a/community/qgo/qgo-gcc43-iostream.patch b/community/qgo/qgo-gcc43-iostream.patch
new file mode 100644
index 000000000..6cd9fc1ec
--- /dev/null
+++ b/community/qgo/qgo-gcc43-iostream.patch
@@ -0,0 +1,28 @@
+--- qgo-1.5.4/src/matrix.cpp.orig 2008-02-15 16:47:04.000000000 -0500
++++ qgo-1.5.4/src/matrix.cpp 2008-02-15 16:47:58.000000000 -0500
+@@ -5,7 +5,10 @@
+ #include "matrix.h"
+ #include <stdlib.h>
+ #ifndef NO_DEBUG
+-#include <iostream.h>
++#include <iostream>
++
++using namespace std;
++
+ #endif
+
+ Matrix::Matrix(int s)
+--- qgo-1.5.4/src/tree.cpp.orig 2008-02-15 17:01:49.000000000 -0500
++++ qgo-1.5.4/src/tree.cpp 2008-02-15 17:03:06.000000000 -0500
+@@ -5,7 +5,10 @@
+ #include "tree.h"
+ #include "move.h"
+ #include "qgo.h"
+-#include <iostream.h>
++#include <iostream>
++
++using namespace std;
++
+ #include <qptrstack.h>
+
+ Tree::Tree(int board_size)
diff --git a/community/qingy/PKGBUILD b/community/qingy/PKGBUILD
new file mode 100644
index 000000000..24be5d84b
--- /dev/null
+++ b/community/qingy/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 35052 2010-12-14 22:08:35Z jlichtblau $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=qingy
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A DirectFB getty replacement"
+arch=('i686' 'x86_64')
+url="http://qingy.sourceforge.net/"
+license=('GPL')
+depends=('directfb' 'pam' 'openssl' 'ncurses' 'libxss')
+backup=('etc/qingy/settings' 'etc/qingy/welcomes')
+options=('!libtool')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/sourceforge/qingy/${pkgname}-${pkgver}.tar.bz2 \
+ qingy.logrotate README)
+md5sums=('1e0912655e240adfd0ce5ced30bbc685'
+ 'a9bdfd0ac9f29380eafa97a4a056789d'
+ 'f54865d71ea34e2f68e53ef60248701b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's|/usr/share/xsessions|/etc/X11/sessions|' src/libraries/session.c
+ sed -i 's|/usr/X11R6/bin|/usr/X11R6/bin:/sbin:/usr/sbin:/opt/kde/bin:/opt/plt/bin:/usr/share/eclipse:/opt/java/bin:/opt/java/jre/bin:/opt/openoffice/program:/opt/NX/bin:/opt/qt/bin:/opt/plan9/bin:/opt/firebird/bin:/opt/glest/bin:/opt/grass/bin:/opt/maven/bin:/usr/share/netbeans/bin:/opt/qgis/bin:/opt/texlive/bin:/opt/torcs/bin:/opt/wildfire/bin|' src/libraries/session.c
+
+ ./configure --prefix=/usr --sbindir=/sbin --sysconfdir=/etc \
+ --disable-optimizations --enable-pam \
+ --disable-static-build --enable-gpm-lock --enable-emacs
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/var/lib/qingy"
+ install -D -m644 "${srcdir}/qingy.logrotate" "${pkgdir}/etc/logrotate.d/qingy"
+ install -D -m644 "${srcdir}/README" "${pkgdir}/usr/share/doc/qingy/README"
+
+# fix settings for Arch
+ sed -i 's|/var/lib/misc|/var/lib/qingy|' "${pkgdir}/etc/qingy/settings"
+ sed -i 's|/usr/X11R6/bin/XFree86|/usr/bin/Xorg|' "${pkgdir}/etc/qingy/settings"
+ sed -i 's|/usr/X11R6/bin/xinit|/usr/bin/xinit|' "${pkgdir}/etc/qingy/settings"
+ sed -i 's|session optional|#session optional|' "${pkgdir}/etc/pam.d/qingy"
+}
diff --git a/community/qingy/README b/community/qingy/README
new file mode 100644
index 000000000..aa5678475
--- /dev/null
+++ b/community/qingy/README
@@ -0,0 +1,77 @@
+Qingy README
+
+What is qingy?
+--------------
+
+Qingy is a replacement for getty. It is using DirectFB to provide a
+fast, nice GUI without the overhead of the X Windows System. It allows
+the user to log in and start the session of his choice (text console,
+gnome, kde, wmaker, ...). Running several X sessions is also
+possible.
+
+How to get qingy?
+-----------------
+
+A package is available in the [community] repo. To install:
+
+# pacman -S qingy
+
+Several extra themes are also available. In [community] repo, there is
+an Arch specific theme:
+
+# pacman -S qingy-theme-arch
+
+A package of several various themes is available in AUR:
+
+ * qingy-themes
+
+How to setup qingy?
+-------------------
+
+To use qingy, you'll need to edit /etc/inittab.
+
+Replace:
+
+c1:2345:respawn:/sbin/agetty 38400 vc/1 linux
+c2:2345:respawn:/sbin/agetty 38400 vc/2 linux
+c3:2345:respawn:/sbin/agetty 38400 vc/3 linux
+c4:2345:respawn:/sbin/agetty 38400 vc/4 linux
+c5:2345:respawn:/sbin/agetty 38400 vc/5 linux
+c6:2345:respawn:/sbin/agetty 38400 vc/6 linux
+
+by:
+
+c1:2345:respawn:/sbin/qingy tty1
+c2:2345:respawn:/sbin/qingy tty2
+c3:2345:respawn:/sbin/qingy tty3
+c4:2345:respawn:/sbin/qingy tty4
+c5:2345:respawn:/sbin/qingy tty5
+c6:2345:respawn:/sbin/agetty 38400 tty6 linux
+
+Qingy's author suggest to keep agetty on a console (here on console 6)
+as a safety measure as qingy is still beta software.
+
+When logging in an X session, qingy doesn't source your profile. The
+best solution is to add:
+[ -f /etc/profile ] && . /etc/profile
+to your ~/.xinitrc and create a .xsession symlink:
+ln -s ~/.xinitrc ~/.xsession
+(or source the profiles in your ~/.xsession depending on your setup). Then
+login in the 'Your .xsession' session.
+Otherwise, add:
+[ -f /etc/profile ] && . /etc/profile
+to your ~/.bashrc so that the profile will be sourced for each
+terminal.
+
+
+Having problems with your Synaptics touchpad?
+---------------------------------------------
+
+Qingy (and quite possibly other DirectFB applicationss) has some
+issues using Synaptics touchpad. This can be solved by adding:
+
+disable-module=linux_input
+
+to /etc/directfbrc. If the file does not exist, create it. This will
+enable you to use your touchpad, however some extra functionality like
+tapping or tap-dragging might not work.
diff --git a/community/qingy/qingy.install b/community/qingy/qingy.install
new file mode 100644
index 000000000..6f0cdaaad
--- /dev/null
+++ b/community/qingy/qingy.install
@@ -0,0 +1,21 @@
+infodir=/usr/share/info
+filelist=(qingy.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+ echo '==> To setup qingy, read /usr/share/doc/qingy/README'
+}
+
+post_upgrade() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/qingy/qingy.logrotate b/community/qingy/qingy.logrotate
new file mode 100644
index 000000000..e16fb8d2a
--- /dev/null
+++ b/community/qingy/qingy.logrotate
@@ -0,0 +1,9 @@
+/var/log/qingy.log {
+ compress
+ rotate 1
+ size=+1024k
+ notifempty
+ missingok
+ copytruncate
+ noolddir
+}
diff --git a/community/qlandkartegt/PKGBUILD b/community/qlandkartegt/PKGBUILD
new file mode 100644
index 000000000..1c39d07ee
--- /dev/null
+++ b/community/qlandkartegt/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 42859 2011-03-21 21:26:54Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Matthias Maennich <arch@maennich.net>
+# Contributor: <boenki@gmx.de>
+
+pkgname=qlandkartegt
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Use your GPS with Linux"
+arch=('i686' 'x86_64')
+url="http://www.qlandkarte.org/"
+license=('GPL')
+depends=('gdal' 'gpsd' 'libdmtx' 'libexif' 'libmysqlclient' 'mesa' 'postgresql-libs' 'qt' 'shared-mime-info')
+makedepends=('cmake' 'garmindev')
+optdepends=('garmindev: to connect garmin devices')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz \
+ $pkgname-mimetypes.xml)
+sha256sums=('0288c94edcb0af4e39bc045c8607ed9404b4692c44e5409eff64329a21b33af9'
+ 'e8d33948831f8a66edd752c71c653085d6c4d9f1969e70dd8c40b9c7ca37fba0')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ install -d ${srcdir}/$pkgname-$pkgver/build
+ cd ${srcdir}/$pkgname-$pkgver/build
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
+ make
+}
+
+package(){
+ cd ${srcdir}/$pkgname-$pkgver/build
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 ${srcdir}/$pkgname-mimetypes.xml \
+ ${pkgdir}/usr/share/mime/packages/$pkgname-mimetypes.xml
+}
diff --git a/community/qlandkartegt/qlandkartegt-mimetypes.xml b/community/qlandkartegt/qlandkartegt-mimetypes.xml
new file mode 100644
index 000000000..46d3d402c
--- /dev/null
+++ b/community/qlandkartegt/qlandkartegt-mimetypes.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
+ <mime-type type="application/vnd.qlandkartegt.qlb">
+ <comment>QLandkarteGT File</comment>
+ <glob pattern="*.qlb"/>
+ </mime-type>
+</mime-info>
diff --git a/community/qlandkartegt/qlandkartegt.changelog b/community/qlandkartegt/qlandkartegt.changelog
new file mode 100644
index 000000000..c832cc8d2
--- /dev/null
+++ b/community/qlandkartegt/qlandkartegt.changelog
@@ -0,0 +1,9 @@
+2011-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.1.1-1
+
+2011-02-23 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.1.0-1
+
+2011-02-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qlandkartegt 1.0.1-2
+ * moved to [community] with 59 AUR votes
diff --git a/community/qlandkartegt/qlandkartegt.install b/community/qlandkartegt/qlandkartegt.install
new file mode 100644
index 000000000..aacc9e6a8
--- /dev/null
+++ b/community/qlandkartegt/qlandkartegt.install
@@ -0,0 +1,7 @@
+post_install() {
+update-mime-database usr/share/mime > /dev/null
+}
+
+post_remove() {
+update-mime-database usr/share/mime > /dev/null
+}
diff --git a/community/qmc2/PKGBUILD b/community/qmc2/PKGBUILD
new file mode 100644
index 000000000..20ec9fff7
--- /dev/null
+++ b/community/qmc2/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 44152 2011-04-04 10:32:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: JJDaNiMoTh <jjdanimoth@gmail.com>
+
+pkgname=qmc2
+pkgver=0.2.b19
+pkgrel=1
+pkgdesc="Qt 4 based UNIX MAME frontend supporting SDLMAME."
+url="http://qmc2.arcadehits.net"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('qt' 'phonon' 'sdl' 'libxmu')
+makedepends=('rsync' 'mesa')
+source=("http://downloads.sourceforge.net/project/qmc2/qmc2/$pkgver/qmc2-$pkgver.tar.bz2")
+md5sums=('b9cae829540066d21154e474b24ccc62')
+
+build() {
+ cd "$srcdir/$pkgname"
+ export CTIME=0
+ make PREFIX=/usr DATADIR=/usr/share SYSCONFDIR=/etc QTDIR=/usr
+ make PREFIX=/usr DATADIR=/usr/share SYSCONFDIR=/etc QTDIR=/usr DESTDIR=$pkgdir install
+ mkdir -p $pkgdir/usr/share/{applications,pixmaps}
+ install -D -m644 "$srcdir/qmc2/data/img/mame.png" "$pkgdir/usr/share/pixmaps"
+}
diff --git a/community/qmmp/PKGBUILD b/community/qmmp/PKGBUILD
new file mode 100644
index 000000000..2a4bc1cfe
--- /dev/null
+++ b/community/qmmp/PKGBUILD
@@ -0,0 +1,35 @@
+#$Id: PKGBUILD 44116 2011-04-03 12:36:42Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=qmmp
+pkgver=0.5.0
+pkgrel=1
+pkgdesc="Qt4 based audio-player"
+arch=('i686' 'x86_64')
+url="http://qmmp.ylsoftware.com/"
+license=('GPL')
+depends=('alsa-lib' 'curl' 'hicolor-icon-theme' 'libmad' 'libvorbis' 'libogg' 'qt>=4.3' 'taglib' 'xdg-utils')
+makedepends=('cmake' 'flac' 'jack' 'libmpcdec' 'pulseaudio' 'ffmpeg' 'libsamplerate' 'libmodplug' 'libsndfile' 'wavpack')
+optdepends=('flac: native FLAC support'
+ 'jack: JACK sound output'
+ 'libmpcdec: Musepack support'
+ 'pulseaudio: PulseAudio output'
+ 'libmodplug: MOD playing library'
+ 'libsndfile: sampled sound support'
+ 'ffmpeg' 'libsamplerate' 'wavpack')
+install=$pkgname.install
+source=(http://qmmp.ylsoftware.com/files/$pkgname-$pkgver.tar.bz2)
+sha256sums=('0fc75012546744657c2cdcea7f30f1be371a9d812811b6901019faa9427f7ba9')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/qmmp/qmmp.changelog b/community/qmmp/qmmp.changelog
new file mode 100644
index 000000000..6e89defbd
--- /dev/null
+++ b/community/qmmp/qmmp.changelog
@@ -0,0 +1,41 @@
+2011-04-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.5.0-1
+
+2011-02-28 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmmp 0.4.4-1
+
+2010-11-10 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.3
+
+2010-09-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.2
+
+2010-06-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.1
+
+2010-05-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.4.0
+
+2010-04-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.4
+
+2010-03-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.3
+
+2010-01-13 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.2
+
+2009-07-11 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.3.0
+
+2009-03-30 Giovanni Scafora <giovanni@archlinux.org>
+ * Fixed x86_64 build
+
+2009-03-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.2.4
+
+2008-12-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.2.3
+
+2008-08-31 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.2.2
diff --git a/community/qmmp/qmmp.install b/community/qmmp/qmmp.install
new file mode 100644
index 000000000..b711352cb
--- /dev/null
+++ b/community/qmmp/qmmp.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/qmpdclient/PKGBUILD b/community/qmpdclient/PKGBUILD
new file mode 100644
index 000000000..4c432cf87
--- /dev/null
+++ b/community/qmpdclient/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 40012 2011-02-19 13:47:31Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
+
+pkgname=qmpdclient
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="A Qt4 client for MPD"
+arch=('i686' 'x86_64')
+url="http://bitcheese.net/wiki/QMPDClient"
+license=('GPL')
+depends=('qt' 'openssl' 'hicolor-icon-theme')
+makedepends=('cmake')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://dump.bitcheese.net/files/$pkgname-$pkgver.tar.bz2)
+sha256sums=('9d57ffbf2985c1dbc9e8856e9c5edf5171e85152d8cf58ad692e85233a9b0773')
+
+build() {
+ cd ${srcdir}
+
+ mkdir build
+ cd build
+
+ cmake ../${pkgname} -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/qmpdclient/qmpdclient.changelog b/community/qmpdclient/qmpdclient.changelog
new file mode 100644
index 000000000..2dc991d38
--- /dev/null
+++ b/community/qmpdclient/qmpdclient.changelog
@@ -0,0 +1,5 @@
+2011-02-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmpdclient 1.2.1-1
+
+2011-02-01 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * qmpdclient 1.2-1
diff --git a/community/qmpdclient/qmpdclient.install b/community/qmpdclient/qmpdclient.install
new file mode 100644
index 000000000..d44837133
--- /dev/null
+++ b/community/qmpdclient/qmpdclient.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/qoauth/PKGBUILD b/community/qoauth/PKGBUILD
new file mode 100644
index 000000000..ea7a724ec
--- /dev/null
+++ b/community/qoauth/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=qoauth
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="Support with OAuth-powered network services"
+url="http://github.com/ayoy/qoauth"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('qca')
+makedepends=('cmake' 'automoc4')
+source=("http://files.ayoy.net/qoauth/release/current/src/${pkgname}-${pkgver}-src.tar.bz2")
+md5sums=('bcb6d01e6c9a6fb22099c9e0f5889578')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}-src
+ qmake
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}-src
+ make INSTALL_ROOT=${pkgdir} install
+
+ # Move libraries from /usr/lib64 to /usr/lib
+ if [ -d ${pkgdir}/usr/lib64 ]; then
+ mv ${pkgdir}/usr/lib64 ${pkgdir}/usr/lib
+ fi
+}
diff --git a/community/qps/PKGBUILD b/community/qps/PKGBUILD
new file mode 100644
index 000000000..c1fc2b755
--- /dev/null
+++ b/community/qps/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 43435 2011-03-26 08:43:39Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: David Rosenstrauch <darose@darose.net>
+
+pkgname=qps
+pkgver=1.10.12.2
+pkgrel=1
+_dlpkgver=5843
+pkgdesc="Qps is a visual process manager, an X11 version of 'top' or 'ps'."
+url="http://qps.kldp.net/"
+depends=('qt')
+source=(http://kldp.net/frs/download.php/$_dlpkgver/qps-$pkgver.tar.bz2)
+md5sums=('26ed0f55828229dd6000d3487455e9b4')
+arch=('i686' 'x86_64')
+license="GPL"
+md5sums=('59a456fe5fc6af3743137e5bf8c25a88')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ qmake
+ make
+ install -D -m 755 qps $pkgdir/usr/bin/qps
+ install -D -m 644 qps.1 $pkgdir/usr/share/man/man1/qps.1
+ install -D -m 644 qps.desktop $pkgdir/usr/share/applications/qps.desktop
+ install -D -m 644 icon/icon.xpm $pkgdir/usr/share/pixmaps/qps.xpm
+}
diff --git a/community/qpxtool/PKGBUILD b/community/qpxtool/PKGBUILD
new file mode 100644
index 000000000..9d8987cb2
--- /dev/null
+++ b/community/qpxtool/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 15647 2010-04-13 11:41:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Krzysztof Stasiorowski <krzysiekst@gmail.com>
+
+pkgname=qpxtool
+pkgver=0.7.1_002
+pkgrel=1
+pkgdesc="Allows better controll over optical drives to include QChecks and optimization settings."
+arch=('i686' 'x86_64')
+url="http://qpxtool.sourceforge.net/"
+license=('GPL')
+depends=('qt')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('755321a0196b16d06857550aac74ff50')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Fix strict aliasing warnings
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ sed -i 's|lib64|lib|' configure
+ ./configure --prefix=/usr
+ make || return 1
+ mkdir -p $pkgdir/usr/bin
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/qrencode/PKGBUILD b/community/qrencode/PKGBUILD
new file mode 100644
index 000000000..4bba2a8ce
--- /dev/null
+++ b/community/qrencode/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Florian Pritz< flo@xinu.at>
+# Contributor: Dany Martineau <dany.luc.martineau@gmail.com>
+
+pkgname=qrencode
+pkgver=3.1.1
+pkgrel=2
+pkgdesc="C library for encoding data in a QR Code symbol."
+arch=(i686 x86_64)
+depends=('libpng>=1.4.0')
+makedepends=(sdl)
+url="http://megaui.net/fukuchi/works/qrencode/index.en.html"
+license=('GPL')
+options=(!libtool)
+source=(http://megaui.net/fukuchi/works/${pkgname}/${pkgname}-${pkgver}.tar.bz2 libpng14.diff)
+md5sums=('e7feb2c2c65d0f2f4010a14da3ecdb89' '93e87b2751b0d422a08e96ccaae4d082')
+
+build() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ patch -p1 < "$srcdir/libpng14.diff"
+ autoreconf
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+
+ make prefix="$pkgdir/usr" install
+}
diff --git a/community/qrencode/libpng14.diff b/community/qrencode/libpng14.diff
new file mode 100644
index 000000000..eadf68dde
--- /dev/null
+++ b/community/qrencode/libpng14.diff
@@ -0,0 +1,65 @@
+diff -U 3 -H -d -r -N -- qrencode-3.1.1/configure qrencode-3.1.1-ok/configure
+--- qrencode-3.1.1/configure 2010-02-02 19:43:16.000000000 -0500
++++ qrencode-3.1.1-ok/configure 2010-02-03 21:41:43.205709796 -0500
+@@ -11445,12 +11445,12 @@
+ pkg_cv_png_CFLAGS="$png_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng12\"\""; } >&5
+- ($PKG_CONFIG --exists --print-errors ""libpng12"") 2>&5
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng14\"\""; } >&5
++ ($PKG_CONFIG --exists --print-errors ""libpng14"") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+- pkg_cv_png_CFLAGS=`$PKG_CONFIG --cflags ""libpng12"" 2>/dev/null`
++ pkg_cv_png_CFLAGS=`$PKG_CONFIG --cflags ""libpng14"" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -11463,12 +11463,12 @@
+ pkg_cv_png_LIBS="$png_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng12\"\""; } >&5
+- ($PKG_CONFIG --exists --print-errors ""libpng12"") 2>&5
++ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\"libpng14\"\""; } >&5
++ ($PKG_CONFIG --exists --print-errors ""libpng14"") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+- pkg_cv_png_LIBS=`$PKG_CONFIG --libs ""libpng12"" 2>/dev/null`
++ pkg_cv_png_LIBS=`$PKG_CONFIG --libs ""libpng14"" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -11487,14 +11487,14 @@
+ _pkg_short_errors_supported=no
+ fi
+ if test $_pkg_short_errors_supported = yes; then
+- png_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors ""libpng12""`
++ png_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors ""libpng14""`
+ else
+- png_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors ""libpng12""`
++ png_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors ""libpng14""`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$png_PKG_ERRORS" >&5
+
+- as_fn_error "Package requirements (\"libpng12\") were not met:
++ as_fn_error "Package requirements (\"libpng14\") were not met:
+
+ $png_PKG_ERRORS
+
+diff -U 3 -H -d -r -N -- qrencode-3.1.1/configure.ac qrencode-3.1.1-ok/configure.ac
+--- qrencode-3.1.1/configure.ac 2010-02-02 19:42:12.000000000 -0500
++++ qrencode-3.1.1-ok/configure.ac 2010-02-03 21:42:07.202419056 -0500
+@@ -36,7 +36,7 @@
+ [build_tools=$withval], [build_tools=yes])
+ AM_CONDITIONAL(BUILD_TOOLS, [test "x$build_tools" = "xyes" ])
+ if test x$build_tools = xyes ; then
+- PKG_CHECK_MODULES(png, "libpng12")
++ PKG_CHECK_MODULES(png, "libpng14")
+ fi
+
+ dnl --with-tests
diff --git a/community/qscintilla-qt3/PKGBUILD b/community/qscintilla-qt3/PKGBUILD
new file mode 100644
index 000000000..19c554b7d
--- /dev/null
+++ b/community/qscintilla-qt3/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id$
+# Maintainer:
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: red_over_blue,Ben <ben@benmazer.net>,Kritoke <kritoke@gamebox.net>
+
+pkgname=qscintilla-qt3
+pkgver=1.7.1
+pkgrel=3
+pkgdesc="A port to Qt3 of Neil Hodgson's Scintilla C++ editor class"
+arch=('i686' 'x86_64')
+url="http://www.riverbankcomputing.co.uk/software/qscintilla/intro/"
+license=('GPL2')
+depends=('qt3')
+source=(http://www.riverbankcomputing.co.uk/static/Downloads/QScintilla1/QScintilla-1.71-gpl-$pkgver.tar.gz)
+md5sums=('dfa047b45d4f09ae8d4a8a431ba88a5a')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ cd $srcdir/QScintilla-1.71-gpl-$pkgver
+ cd qt
+ echo [STARTING sed on qscintilla.pro]
+ sed -i "s%DESTDIR.*%DESTDIR=$pkgdir/opt/qt/lib%g" qscintilla.pro
+ /opt/qt/bin/qmake qscintilla.pro
+ make
+}
+
+package() {
+ cd $srcdir/QScintilla-1.71-gpl-$pkgver
+ # installind includes
+ for i in qextscintilla*.h; do
+ install -m 644 -D $i $pkgdir/opt/qt/include/$i
+ done
+
+ #for i in qscintilla*.qm
+ #do
+ #install -m 644 -D $i $startdir/pkg/opt/qt/translations/$i
+ #done
+}
diff --git a/community/qstardict/ChangeLog b/community/qstardict/ChangeLog
new file mode 100644
index 000000000..f79486aa2
--- /dev/null
+++ b/community/qstardict/ChangeLog
@@ -0,0 +1,8 @@
+2008-02-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.13.1
+
+2008-02-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.13.0
+
+2008-10-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Moved to [community]
diff --git a/community/qstardict/PKGBUILD b/community/qstardict/PKGBUILD
new file mode 100755
index 000000000..6310c9c5e
--- /dev/null
+++ b/community/qstardict/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 14399 2010-04-03 11:38:56Z foutrelis $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+
+pkgname=qstardict
+pkgver=0.13.1
+pkgrel=3
+pkgdesc="Qt4 clone of StarDict with full support of StarDict dictionaries."
+arch=('i686' 'x86_64')
+url="http://qstardict.ylsoftware.com/index.php"
+license=('GPL2')
+depends=('qt')
+optdepends=('festival-awb-arctic: for pronouncing words, Scottish English male speaker'
+ 'festival-don: for pronouncing words, British English RP male speaker'
+ 'festival-kallpc16k: for pronouncing words, British English RP male speaker'
+ 'festival-rablpc16k: for pronouncing words, British English RP male speaker')
+provides=('stardict')
+source=(http://qstardict.ylsoftware.com/files/${pkgname}-${pkgver}.tar.bz2
+ gcc4.4.patch)
+
+md5sums=('0828c3fa01c5237db8a67d356a9d1a8c'
+ 'c6ed927f349025bdbf202f1c5a5888e8')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # This patch is commited upstream, remove on next release
+ patch -Np1 -i "$srcdir/gcc4.4.patch" || return 1
+
+ qmake ENABLED_PLUGINS="stardict web swac" || return 1
+ make || return 1
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/community/qstardict/gcc4.4.patch b/community/qstardict/gcc4.4.patch
new file mode 100644
index 000000000..5c285ac2f
--- /dev/null
+++ b/community/qstardict/gcc4.4.patch
@@ -0,0 +1,11 @@
+--- trunk/plugins/stardict/dictziplib.cpp 2009/07/10 15:01:40 446
++++ trunk/plugins/stardict/dictziplib.cpp 2009/08/06 07:32:12 447
+@@ -305,7 +305,7 @@
+
+ #ifdef Q_OS_UNIX
+ if (stat(fname.c_str(), &sb) || !S_ISREG(sb.st_mode))
+-#elif def Q_OS_WIN32
++#elif defined(Q_OS_WIN32)
+ if (_stat(fname.c_str(), &sb) || !(sb.stMode & _S_IFREG))
+ #endif
+ {
diff --git a/community/qsvn/ChangeLog b/community/qsvn/ChangeLog
new file mode 100644
index 000000000..5d2b6b37c
--- /dev/null
+++ b/community/qsvn/ChangeLog
@@ -0,0 +1,27 @@
+2009-05-31 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.8.2
+ * Release info: http://www.anrichter.net/projects/qsvn/wiki/Releases/ReleaseNotes-0.8.2
+
+2008-12-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.8.1
+ * Release info: http://www.anrichter.net/projects/qsvn/wiki/ReleaseNotes-0.8.1
+
+2008-12-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.8.0
+ * Release info: http://www.anrichter.net/projects/qsvn/wiki/ReleaseNotes-0.8.0
+
+2008-10-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.7.1
+
+2008-08-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.7.0
+ * Release info: http://www.anrichter.net/projects/qsvn/wiki/ReleaseNotes-0.7.0
+
+2008-07-30 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Fixed bug FS#10914
+
+2008-03-27 JJDaNiMoTh <jjdanimoth@gmail.com>
+ * Replaced qt4 with qt as depend
+
+2007-12-19 Georg Grabler (STiAT) <ggrabler@gmail.com>
+ * Updated to major release 0.6.0
diff --git a/community/qsvn/PKGBUILD b/community/qsvn/PKGBUILD
new file mode 100644
index 000000000..ebb582bce
--- /dev/null
+++ b/community/qsvn/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 9075 2010-01-23 12:43:08Z foutrelis $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Jakub Schmidtke <sjakub-at-gmail.com>
+
+pkgname=qsvn
+pkgver=0.8.3
+pkgrel=2
+pkgdesc="Qt4 GUI for Subversion."
+arch=('i686' 'x86_64')
+url="http://www.anrichter.net/projects/qsvn/"
+license=('GPL')
+depends=('qt' 'subversion' 'db>=4.7')
+makedepends=('cmake')
+#options=('!makeflags')
+source=(http://www.anrichter.net/projects/qsvn/chrome/site/$pkgname-$pkgver-src.tar.gz
+ lib64-fix.patch)
+md5sums=('cfdc9dab7c5f1cbf20b249901e10c04e'
+ 'f2833303f01331538d1f6f2150b58e4f')
+build() {
+ cd ${srcdir}/$pkgname-$pkgver/src
+ patch -Np2 -i $srcdir/lib64-fix.patch || return 1
+
+ cmake -D CMAKE_INSTALL_PREFIX=/usr/ -D CMAKE_BUILD_TYPE="Release" ../src || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+#desktop file
+ install -D -m644 ${srcdir}/$pkgname-$pkgver/src/$pkgname.desktop \
+ ${pkgdir}/usr/share/applications/$pkgname.desktop || return 1
+}
diff --git a/community/qsvn/lib64-fix.patch b/community/qsvn/lib64-fix.patch
new file mode 100644
index 000000000..4b7762b55
--- /dev/null
+++ b/community/qsvn/lib64-fix.patch
@@ -0,0 +1,12 @@
+diff -ru qsvn-0.8.2.orig/src/CMakeLists.txt qsvn-0.8.2/src/CMakeLists.txt
+--- qsvn-0.8.2.orig/src/CMakeLists.txt 2009-04-16 22:06:42.000000000 +0300
++++ qsvn-0.8.2/src/CMakeLists.txt 2009-05-31 18:02:59.425751548 +0300
+@@ -42,7 +42,7 @@
+ IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ SET(LIB_SUFFIX "")
+ ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4)
+- SET(LIB_SUFFIX 64)
++ SET(LIB_SUFFIX "")
+ ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ SET(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+ SET(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
diff --git a/community/qt-recordmydesktop/PKGBUILD b/community/qt-recordmydesktop/PKGBUILD
new file mode 100644
index 000000000..06eeecf79
--- /dev/null
+++ b/community/qt-recordmydesktop/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Maintainer: Daniel J Griffiths <griffithsdj@archlinux.us>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Marc poiroud <marci1 AT archlinux.fr>
+
+pkgname=qt-recordmydesktop
+pkgver=0.3.8
+pkgrel=4
+pkgdesc="Qt4 frontend for recordMyDesktop"
+arch=('i686' 'x86_64')
+url="http://recordmydesktop.sourceforge.net"
+license=('GPL')
+depends=('recordmydesktop>=0.3.8.1' 'python2-qt')
+source=(http://downloads.sourceforge.net/sourceforge/recordmydesktop/${pkgname}-${pkgver}.tar.gz)
+md5sums=('bf1525740755615ae172ae27fef68fb5')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # python2 fix
+ sed -i 's|PYQT4_VERSION=`python -c|PYQT4_VERSION=`python2 -c|' configure
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' src/qt-recordMyDesktop.in
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/qtcreator/PKGBUILD b/community/qtcreator/PKGBUILD
new file mode 100644
index 000000000..b22882fe9
--- /dev/null
+++ b/community/qtcreator/PKGBUILD
@@ -0,0 +1,91 @@
+# $Id: PKGBUILD 43503 2011-03-26 23:39:42Z andrea $
+# Maintainer: Imanol Celaya <ornitorrincos@archlinux-es.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+# Contributor: Dan Vratil <progdan@progdansoft.com>
+# Contributor: thotypous <matiasΘarchlinux-br·org>
+# Contributor: delor <bartekpiech gmail com>
+
+pkgbase=qtcreator
+pkgname=('qtcreator' 'qtcreator-todo-plugin' 'qtcreator-artisticstyle-plugin')
+pkgver=2.1.0
+pkgrel=3
+pkgdesc='Lightweight, cross-platform integrated development environment'
+arch=('i686' 'x86_64')
+url='http://qt.nokia.com/products/developer-tools'
+license=('LGPL')
+depends=('qt>=4.7.2')
+makedepends=('git' 'qt-private-headers')
+options=('docs')
+source=("http://get.qt.nokia.com/qtcreator/qt-creator-${pkgver}-src.zip"
+ 'http://download.berlios.de/astyleplugin/ArtisticStylePlugin-0.6-src.zip'
+ "ftp://ftp.archlinux.org/other/community/${pkgbase}/qt-creator-todo-plugin-git20110323.tar.bz2"
+ 'qtcreator.desktop')
+md5sums=('a6e48b4347314fb2a92b77f40b4fc9a5'
+ '4dab1bb07ba5c39ae4c975a333d32ec1'
+ '3b0f89d7a1e7dd19208998a2ba84abe1'
+ '2c3ffbd66845b37be9804f2966815a10')
+
+#_gitroot_todo="git://gitorious.org/qt-creator-todo-plugin/qt-creator-todo-plugin.git"
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+
+ qmake ${srcdir}/qt-creator-${pkgver}-src/qtcreator.pro
+ make
+
+ # Building TODO plugin
+ msg "Starting TODO plugin build...."
+ cd $srcdir/qt-creator-todo-plugin
+ sed -i "s|QTC_BUILD_DIR = /opt/qtcreator-2.0.92|QTC_BUILD_DIR = ${srcdir}/build|g" todoplugin.pro
+ sed -i "s|QTC_SOURCE_DIR = /home/vass/qt-creator-2.1.0-beta1-src|QTC_SOURCE_DIR = $srcdir/qt-creator-${pkgver}-src/|g" todoplugin.pro
+ sed -i "s|\"2.0.92\"|\"${pkgver}\"|g" todo.pluginspec
+ qmake
+ make
+
+ msg "Starting ArtisticStyle plugin build...."
+ cd $srcdir/ArtisticStylePlugin-0.6
+ qmake QTC_BUILD=$srcdir/build QTC_SOURCE=$srcdir/qt-creator-${pkgver}-src -config release
+ make
+}
+
+package_qtcreator() {
+ optdepends=('qt-doc: for the integrated Qt documentation'
+ 'gdb: for the debugger'
+ 'openssh-askpass: for ssh support'
+ 'git: for git support'
+ 'mercurial: for mercurial support')
+
+ cd ${srcdir}/build
+
+ make INSTALL_ROOT="${pkgdir}/usr/" install
+
+ install -Dm644 ${srcdir}/qtcreator.desktop \
+ ${pkgdir}/usr/share/applications/qtcreator.desktop
+ install -Dm644 ${srcdir}/qt-creator-${pkgver}-src/LGPL_EXCEPTION.TXT \
+ ${pkgdir}/usr/share/licenses/qtcreator/LGPL_EXCEPTION.TXT
+}
+
+package_qtcreator-todo-plugin() {
+ license=('BSD')
+ depends=('qtcreator=2.1.0')
+ pkgdesc='TODO plugin for QtCreator'
+ url='http://gitorious.org/qt-creator-todo-plugin'
+
+ cd $srcdir/qt-creator-todo-plugin
+ make INSTALL_ROOT=$pkgdir/usr/ install
+
+ install -Dm644 LICENSE.BSD \
+ $pkgdir/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_qtcreator-artisticstyle-plugin() {
+ license=('GPL3' 'LGPL')
+ depends=('qtcreator=2.1.0')
+ pkgdesc='ArtisticStyle plugin for QtCreator'
+ url='http://astyleplugin.berlios.de/index.php'
+
+ cd $srcdir/ArtisticStylePlugin-0.6
+ make INSTALL_ROOT=$pkgdir/usr/ install
+}
diff --git a/community/qtcreator/qtcreator.desktop b/community/qtcreator/qtcreator.desktop
new file mode 100644
index 000000000..bea68adae
--- /dev/null
+++ b/community/qtcreator/qtcreator.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=/usr/bin/qtcreator
+Name=Qt-Creator
+GenericName=C++ IDE
+X-KDE-StartupNotify=true
+Icon=/usr/share/pixmaps/qtcreator_logo_48.png
+Terminal=false
+Type=Application
+Categories=Qt;Development
diff --git a/community/qtemu/PKGBUILD b/community/qtemu/PKGBUILD
new file mode 100644
index 000000000..2a0ada7e2
--- /dev/null
+++ b/community/qtemu/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 11674 2010-02-15 18:12:08Z spupykin $
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Previous Contributor: Urs Wolfer <uwolfer @ fwo.ch>
+
+pkgname=qtemu
+pkgver=1.0.5
+pkgrel=3
+pkgdesc="Graphical user interface for QEMU written in Qt4"
+url="http://qtemu.org"
+license=("GPL")
+arch=('i686' 'x86_64')
+makedepends=('cmake')
+depends=('qemu' 'qt>=4.1')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('3b93e209dc62e52a1d94c8eb24d0b149')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ cmake -DCMAKE_INSTALL_PREFIX=/opt/qtemu . || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+ install -d "$pkgdir/usr/bin"
+ ln -s /opt/qtemu/bin/qtemu "$pkgdir/usr/bin/qtemu"
+}
diff --git a/community/qtfm/PKGBUILD b/community/qtfm/PKGBUILD
new file mode 100644
index 000000000..20314f945
--- /dev/null
+++ b/community/qtfm/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Wittfella <wittfella@wittfella.com>
+
+pkgname=qtfm
+pkgver=4.8
+pkgrel=2
+pkgdesc="A lightweight file manager"
+arch=('i686' 'x86_64')
+url="http://www.qtfm.org"
+license=('GPL')
+depends=('qt')
+source=(http://www.qtfm.org/$pkgname-$pkgver.tar.gz)
+md5sums=('af419b8681f8031620259e0ac2957e46')
+
+build() {
+ cd "$startdir/src/$pkgname-$pkgver"
+ qmake
+ make
+}
+
+package() {
+ cd "$startdir/src/$pkgname-$pkgver"
+ install -Dm 755 ${startdir}/src/$pkgname-$pkgver/qtfm ${startdir}/pkg/usr/bin/qtfm
+ install -Dm 644 ${startdir}/src/$pkgname-$pkgver/qtfm.desktop ${startdir}/pkg/usr/share/applications/qtfm.desktop
+ install -Dm 644 ${startdir}/src/$pkgname-$pkgver/images/qtfm.png ${startdir}/pkg/usr/share/pixmaps/qtfm.png
+}
+
diff --git a/community/qtoctave/PKGBUILD b/community/qtoctave/PKGBUILD
new file mode 100755
index 000000000..aa57b3b79
--- /dev/null
+++ b/community/qtoctave/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=qtoctave
+pkgver=0.10.1
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="qt frontend for octave"
+url="https://forja.rediris.es/projects/csl-qtoctave/"
+license=('GPL2')
+depends=('qt' 'octave' 'hicolor-icon-theme')
+makedepends=('cmake')
+source=(http://forja.rediris.es/frs/download.php/2054/${pkgname}-${pkgver}.tar.gz \
+ qtoctave-gcc44.patch)
+md5sums=('f23afd8eb850b950f51b65f256a83835'
+ 'ca88a01563e2ad4ad3ae4912289b501d')
+install=qtoctave.install
+options=('!libtool' '!emptydirs')
+
+build() {
+ cd ${srcdir}/${pkgname}-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_BUILD_TYPE=RELEASE .
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-$pkgver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/qtoctave/qtoctave-gcc44.patch b/community/qtoctave/qtoctave-gcc44.patch
new file mode 100644
index 000000000..d13869111
--- /dev/null
+++ b/community/qtoctave/qtoctave-gcc44.patch
@@ -0,0 +1,10 @@
+--- src/search_dialog.h.bak 2009-09-09 20:49:14.484802974 +0200
++++ src/search_dialog.h 2009-09-09 20:49:24.222481579 +0200
+@@ -26,6 +26,7 @@
+ #include <QGroupBox>
+ #include <QPushButton>
+ #include "config.h"
++#include <stdio.h>
+
+ class SearchDialog: public QDialog
+ {
diff --git a/community/qtoctave/qtoctave.install b/community/qtoctave/qtoctave.install
new file mode 100644
index 000000000..28fdb48fb
--- /dev/null
+++ b/community/qtoctave/qtoctave.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/community/qtractor/PKGBUILD b/community/qtractor/PKGBUILD
new file mode 100644
index 000000000..4f3a04605
--- /dev/null
+++ b/community/qtractor/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 37890 2011-01-18 22:57:48Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Philipp Überbacher <hollunder at gmx dot at>
+
+pkgname=qtractor
+pkgver=0.4.8
+pkgrel=1
+pkgdesc="Audio/MIDI multitrack sequencer"
+arch=('i686' 'x86_64')
+url="http://qtractor.sourceforge.net/"
+license=('GPL')
+depends=('qt' 'jack' 'slv2' 'libmad' 'liblo'
+ 'libsamplerate' 'rubberband')
+makedepends=('ladspa' 'dssi')
+[ "$CARCH" = "i686" ] && optdepends=('dssi-vst: win32 VST support')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('fef232ad6c3312e5af179cdcd2c395ae')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package () {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/qtractor/qtractor.changelog b/community/qtractor/qtractor.changelog
new file mode 100644
index 000000000..42d7c31d2
--- /dev/null
+++ b/community/qtractor/qtractor.changelog
@@ -0,0 +1,43 @@
+19 Jan 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.8-1
+ upstream release
+
+01 Oct 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.7-1
+ upstream release
+
+22 May 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.6-1
+ upstream bug-fix release
+
+24 Jan 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.5-2 (testing)
+ rebuild against testing/libpng-1.4.0-1
+
+24 Jan 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.5-1
+ upstream update
+
+21 Jan 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.4-2 (testing)
+ rebuild against testing/libpng-1.4.0-1
+
+17 Jan 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.4-1
+ upstream update
+ new deps:
+ For LV2 support
+ --| slv2
+ ----| lv2core
+
+26 Dec 2009 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.4.3-1
+ initial commit
diff --git a/community/quassel/PKGBUILD b/community/quassel/PKGBUILD
new file mode 100644
index 000000000..9c3187863
--- /dev/null
+++ b/community/quassel/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 40740 2011-02-26 12:03:19Z jlichtblau $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=quassel
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="QT4 irc client with a separated core"
+arch=('i686' 'x86_64')
+url="http://quassel-irc.org/"
+license=('GPL')
+depends=('kdelibs' 'oxygen-icons' 'hicolor-icon-theme')
+makedepends=('cmake' 'automoc4')
+install=$pkgname.install
+backup=(etc/conf.d/quassel.conf)
+source=(http://quassel-irc.org/pub/$pkgname-$pkgver.tar.bz2
+ rc.$pkgname
+ $pkgname.conf)
+sha256sums=('914a9cd21bfe4be1f78b2f6c96e54b52db7ed3c0adc4dce6bfabec38a30f7ecd'
+ '845e621448a51ec181554e9327bfcc3a3de1501ae8f70410f0b9b8991ac171b0'
+ 'f3031ea8217e01ba42cea14606169e3e27affa5918968ffd5a03c21ae92fe2b8')
+
+build() {
+ [[ ! -d build ]] && mkdir build
+ cd build
+
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr/ \
+ -DWITH_KDE=1 \
+ -DCMAKE_BUILD_TYPE="Release" \
+ ../${pkgname}-${pkgver}/ \
+ -Wno-dev
+
+ make
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ install -D ${srcdir}/rc.$pkgname \
+ ${pkgdir}/etc/rc.d/$pkgname
+ install -D -m644 ${srcdir}/$pkgname.conf \
+ ${pkgdir}/etc/conf.d/$pkgname
+}
diff --git a/community/quassel/quassel.conf b/community/quassel/quassel.conf
new file mode 100644
index 000000000..6b667d8d4
--- /dev/null
+++ b/community/quassel/quassel.conf
@@ -0,0 +1,2 @@
+QUASSEL_USER=quassel
+LISTEN=127.0.0.1
diff --git a/community/quassel/quassel.install b/community/quassel/quassel.install
new file mode 100644
index 000000000..289ecc63f
--- /dev/null
+++ b/community/quassel/quassel.install
@@ -0,0 +1,26 @@
+post_install() {
+ useradd -r -s /bin/sh -d /var/lib/quassel quassel
+ mkdir -p /var/lib/quassel && chown -R quassel:quassel /var/lib/quassel
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ [ `vercmp $2 0.5.2-1` -le 0 ] && (
+ cat <<EOF
+
+==> - quasselcore now runs as the quassel user
+==> - quasselcore now listens to port 127.0.0.1 by default
+==> - both of above are configurable: /etc/conf.d/quassel
+EOF
+ /etc/rc.d/quassel stop
+ post_install
+ ) || true
+}
+
+pre_remove() {
+ /etc/rc.d/quassel stop
+}
+
+post_remove() {
+ userdel quassel
+}
diff --git a/community/quassel/rc.quassel b/community/quassel/rc.quassel
new file mode 100644
index 000000000..99b82eec9
--- /dev/null
+++ b/community/quassel/rc.quassel
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/quassel
+
+PIDFILE=/var/run/quassel.pid
+PID=`pidof -o %PPID /usr/bin/quasselcore`
+
+case "$1" in
+ start)
+ stat_busy "Starting Quassel Core"
+ [ -z "$PID" ] && su -l -c "/usr/bin/quasselcore --configdir=/var/lib/quassel --listen=$LISTEN &" $QUASSEL_USER &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > $PIDFILE
+ add_daemon quassel
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Quassel Core"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f $PIDFILE
+ rm_daemon quassel
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/qucs/ChangeLog b/community/qucs/ChangeLog
new file mode 100644
index 000000000..dba4cf7ec
--- /dev/null
+++ b/community/qucs/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/qucs/PKGBUILD b/community/qucs/PKGBUILD
new file mode 100644
index 000000000..db22d851f
--- /dev/null
+++ b/community/qucs/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 43749 2011-03-29 15:48:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Vctor Martnez Romanos <vmromanos@gmail.com>
+
+pkgname=qucs
+pkgver=0.0.16
+pkgrel=1
+pkgdesc="An integrated circuit simulator with a graphical user interface"
+arch=('i686' 'x86_64')
+url="http://qucs.sourceforge.net"
+license=('GPL')
+depends=('qt3')
+optdepends=('freehdl: to permit digital circuit simulation'
+ 'asco: to enable circuit optimization'
+ 'perl')
+source=(http://downloads.sourceforge.net/sourceforge/qucs/$pkgname-$pkgver.tar.gz
+ qucs-gcc-4.5.1.patch)
+md5sums=('c916502171d422ab168fe5fc681b29d8'
+ '6fd31dc632cdef53f8c2566ad782901a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ . /etc/profile.d/qt3.sh
+ export PATH=$QTDIR/bin:$PATH
+
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/qucs-gcc-4.5.1.patch
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/qucs/qucs-gcc-4.5.1.patch b/community/qucs/qucs-gcc-4.5.1.patch
new file mode 100644
index 000000000..e29c11d39
--- /dev/null
+++ b/community/qucs/qucs-gcc-4.5.1.patch
@@ -0,0 +1,410 @@
+diff -wbBur qucs-0.0.16/qucs-core/src/components/spfile.cpp qucs-0.0.16.my/qucs-core/src/components/spfile.cpp
+--- qucs-0.0.16/qucs-core/src/components/spfile.cpp 2011-03-17 17:02:08.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/components/spfile.cpp 2011-03-29 15:28:06.000000000 +0000
+@@ -409,8 +411,8 @@
+ Kx * norm (1.0 - s.get (0, 0) * Sopt));
+ c.set (1, 1, norm (s.get (1, 0)) * ((Fmin - 1) + Kx * norm (Sopt)));
+ c.set (0, 1, s.get (0, 0) / s.get (1, 0) * c.get (1, 1) -
+- conj (s.get (1, 0)) * conj (Sopt) * Kx);
+- c.set (1, 0, conj (c.get (0, 1)));
++ tr1::conj (s.get (1, 0)) * tr1::conj (Sopt) * Kx);
++ c.set (1, 0, tr1::conj (c.get (0, 1)));
+ return c;
+ }
+
+@@ -422,7 +424,7 @@
+ s.getCols () == 2 && c.getCols () == 2);
+ nr_complex_t n1, n2;
+ n1 = c.get (0, 0) * norm (s.get (1, 0)) -
+- 2 * real (c.get (0, 1) * s.get (1, 0) * conj (s.get (0, 0))) +
++ 2 * real (c.get (0, 1) * s.get (1, 0) * tr1::conj (s.get (0, 0))) +
+ c.get (1, 1) * norm (s.get (0, 0));
+ n2 = 2.0 * (c.get (1, 1) * s.get (0, 0) -
+ c.get (0, 1) * s.get (1, 0)) / (c.get (1, 1) + n1);
+@@ -440,7 +442,7 @@
+
+ // equivalent noise resistance
+ Rn = real ((c (0, 0) - 2.0 *
+- real (c (0, 1) * conj ((1.0 + s (0, 0)) / s (1, 0))) +
++ real (c (0, 1) * tr1::conj ((1.0 + s (0, 0)) / s (1, 0))) +
+ c (1, 1) * norm ((1.0 + s (0, 0)) / s (1, 0))) / 4.0);
+ Rn = Rn * z0;
+
+diff -wbBur qucs-0.0.16/qucs-core/src/evaluate.cpp qucs-0.0.16.my/qucs-core/src/evaluate.cpp
+--- qucs-0.0.16/qucs-core/src/evaluate.cpp 2011-03-11 20:42:20.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/evaluate.cpp 2011-03-29 15:36:29.000000000 +0000
+@@ -1143,7 +1143,7 @@
+ constant * evaluate::conj_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (conj (*c1));
++ _RETC (tr1::conj (*c1));
+ }
+
+ constant * evaluate::conj_v (constant * args) {
+@@ -1443,7 +1443,7 @@
+ constant * evaluate::arcsin_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (asin (*c1));
++ _RETC (tr1::asin (*c1));
+ }
+
+ constant * evaluate::arcsin_v (constant * args) {
+@@ -1462,7 +1462,7 @@
+ constant * evaluate::arccos_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (acos (*c1));
++ _RETC (tr1::acos (*c1));
+ }
+
+ constant * evaluate::arccos_v (constant * args) {
+@@ -1481,7 +1481,7 @@
+ constant * evaluate::arctan_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (atan (*c1));
++ _RETC (tr1::atan (*c1));
+ }
+
+ constant * evaluate::arctan_v (constant * args) {
+@@ -1557,7 +1557,7 @@
+ constant * evaluate::arcsec_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (acos (1.0 / *c1));
++ _RETC (tr1::acos (1.0 / *c1));
+ }
+
+ constant * evaluate::arcsec_v (constant * args) {
+@@ -1595,7 +1595,7 @@
+ constant * evaluate::arccosec_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (asin (1.0 / *c1));
++ _RETC (tr1::asin (1.0 / *c1));
+ }
+
+ constant * evaluate::arccosec_v (constant * args) {
+@@ -1614,7 +1614,7 @@
+ constant * evaluate::arsinh_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (asinh (*c1));
++ _RETC (tr1::asinh (*c1));
+ }
+
+ constant * evaluate::arsinh_v (constant * args) {
+@@ -1634,7 +1634,7 @@
+ constant * evaluate::arcosech_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (asinh (1.0 / *c1));
++ _RETC (tr1::asinh (1.0 / *c1));
+ }
+
+ constant * evaluate::arcosech_v (constant * args) {
+@@ -1647,13 +1647,13 @@
+ constant * evaluate::arcosh_d (constant * args) {
+ _ARD0 (d1);
+ _DEFC ();
+- _RETC (acosh (nr_complex_t (d1)));
++ _RETC (tr1::acosh (nr_complex_t (d1)));
+ }
+
+ constant * evaluate::arcosh_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (acosh (*c1));
++ _RETC (tr1::acosh (*c1));
+ }
+
+ constant * evaluate::arcosh_v (constant * args) {
+@@ -1691,7 +1691,7 @@
+ constant * evaluate::artanh_c (constant * args) {
+ _ARC0 (c1);
+ _DEFC ();
+- _RETC (atanh (*c1));
++ _RETC (tr1::atanh (*c1));
+ }
+
+ constant * evaluate::artanh_v (constant * args) {
+@@ -2649,7 +2649,7 @@
+ _DEFD ();
+ nr_double_t k;
+ k = (1 - norm (m->get (0, 0))) /
+- (abs (m->get (1, 1) - conj (m->get (0, 0)) * det (*m)) +
++ (abs (m->get (1, 1) - tr1::conj (m->get (0, 0)) * det (*m)) +
+ abs (m->get (0, 1) * m->get (1, 0)));
+ _RETD (k);
+ }
+@@ -2669,7 +2669,7 @@
+ _DEFD ();
+ nr_double_t k;
+ k = (1 - norm (m->get (1, 1))) /
+- (abs (m->get (0, 0) - conj (m->get (1, 1)) * det (*m)) +
++ (abs (m->get (0, 0) - tr1::conj (m->get (1, 1)) * det (*m)) +
+ abs (m->get (0, 1) * m->get (1, 0)));
+ _RETD (k);
+ }
+@@ -3662,14 +3662,14 @@
+ _ARD0 (d1);
+ _ARC1 (z);
+ _DEFC ();
+- _RETC (10.0 * log10 (norm (d1) / conj (*z) / 0.001));
++ _RETC (10.0 * log10 (norm (d1) / tr1::conj (*z) / 0.001));
+ }
+
+ constant * evaluate::dbm_c_c (constant * args) {
+ _ARC0 (c1);
+ _ARC1 (z);
+ _DEFC ();
+- _RETC (10.0 * log10 (norm (*c1) / conj (*z) / 0.001));
++ _RETC (10.0 * log10 (norm (*c1) / tr1::conj (*z) / 0.001));
+ }
+
+ constant * evaluate::dbm_v_c (constant * args) {
+diff -wbBur qucs-0.0.16/qucs-core/src/math/complex.cpp qucs-0.0.16.my/qucs-core/src/math/complex.cpp
+--- qucs-0.0.16/qucs-core/src/math/complex.cpp 2011-03-11 20:42:21.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/math/complex.cpp 2011-03-29 15:21:58.000000000 +0000
+@@ -366,7 +367,7 @@
+ \return arc tangent of z
+ */
+ nr_complex_t atan2 (const nr_complex_t y, const nr_complex_t x) {
+- nr_complex_t a = atan (y / x);
++ nr_complex_t a = tr1::atan (y / x);
+ return real (x) > 0.0 ? a : -a;
+ }
+ #endif
+diff -wbBur qucs-0.0.16/qucs-core/src/math/complex.h qucs-0.0.16.my/qucs-core/src/math/complex.h
+--- qucs-0.0.16/qucs-core/src/math/complex.h 2011-03-17 17:01:42.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/math/complex.h 2011-03-29 15:29:01.000000000 +0000
+@@ -33,7 +33,6 @@
+ #elif defined HAVE_TR1_COMPLEX
+ #include <tr1/complex>
+ using namespace std;
+-using namespace std::tr1;
+ typedef std::complex<nr_double_t> nr_complex_t;
+ #else
+ #include <complex>
+diff -wbBur qucs-0.0.16/qucs-core/src/matrix.cpp qucs-0.0.16.my/qucs-core/src/matrix.cpp
+--- qucs-0.0.16/qucs-core/src/matrix.cpp 2011-03-11 20:42:20.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/matrix.cpp 2011-03-29 14:52:17.000000000 +0000
+@@ -504,7 +504,7 @@
+ matrix res (a.getRows (), a.getCols ());
+ for (int r = 0; r < a.getRows (); r++)
+ for (int c = 0; c < a.getCols (); c++)
+- res.set (r, c, conj (a.get (r, c)));
++ res.set (r, c, tr1::conj (a.get (r, c)));
+ return res;
+ }
+
+@@ -1176,12 +1176,12 @@
+
+ assert (s.getRows () >= 2 && s.getCols () >= 2);
+
+- a.set (0, 0, (conj (z1) + z1 * s (0, 0) -
+- conj (z1) * s (1, 1) - z1 * d) / n);
+- a.set (0, 1, (conj (z1) * conj (z2) + z1 * conj (z2) * s (0, 0) +
+- conj (z1) * z2 * s (1, 1) + z1 * z2 * d) / n);
++ a.set (0, 0, (tr1::conj (z1) + z1 * s (0, 0) -
++ tr1::conj (z1) * s (1, 1) - z1 * d) / n);
++ a.set (0, 1, (tr1::conj (z1) * tr1::conj (z2) + z1 * tr1::conj (z2) * s (0, 0) +
++ tr1::conj (z1) * z2 * s (1, 1) + z1 * z2 * d) / n);
+ a.set (1, 0, (1.0 - s (0, 0) - s (1, 1) + d) / n);
+- a.set (1, 1, (conj (z2) - conj (z2) * s (0, 0) +
++ a.set (1, 1, (tr1::conj (z2) - tr1::conj (z2) * s (0, 0) +
+ z2 * s (1, 1) - z2 * d) / n);
+ return a;
+ }
+@@ -1219,12 +1219,12 @@
+ assert (a.getRows () >= 2 && a.getCols () >= 2);
+
+ s.set (0, 0, (a (0, 0) * z2 + a (0, 1)
+- - a (1, 0) * conj (z1) * z2 - a (1, 1) * conj (z1)) / n);
++ - a (1, 0) * tr1::conj (z1) * z2 - a (1, 1) * tr1::conj (z1)) / n);
+ s.set (0, 1, (a (0, 0) * a (1, 1) -
+ a (0, 1) * a (1, 0)) * d / n);
+ s.set (1, 0, d / n);
+- s.set (1, 1, (a (1, 1) * z1 - a (0, 0) * conj (z2) +
+- a (0, 1) - a (1, 0) * z1 * conj (z2)) / n);
++ s.set (1, 1, (a (1, 1) * z1 - a (0, 0) * tr1::conj (z2) +
++ a (0, 1) - a (1, 0) * z1 * tr1::conj (z2)) / n);
+ return s;
+ }
+
+diff -wbBur qucs-0.0.16/qucs-core/src/spsolver.cpp qucs-0.0.16.my/qucs-core/src/spsolver.cpp
+--- qucs-0.0.16/qucs-core/src/spsolver.cpp 2011-03-11 20:42:20.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/spsolver.cpp 2011-03-29 14:54:27.000000000 +0000
+@@ -319,14 +319,14 @@
+
+ p =
+ c->getN (i1, j1) + c->getN (k, j1) * k1 + c->getN (l, j1) * k2 +
+- conj (k3) * (c->getN (i1, k) + c->getN (k, k) * k1 +
++ tr1::conj (k3) * (c->getN (i1, k) + c->getN (k, k) * k1 +
+ c->getN (l, k) * k2) +
+- conj (k4) * (c->getN (i1, l) + c->getN (k, l) * k1 +
++ tr1::conj (k4) * (c->getN (i1, l) + c->getN (k, l) * k1 +
+ c->getN (l, l) * k2);
+ result->setN (i2, j2, p);
+
+ if (i2 >= j2) break; // the other half need not be computed
+- result->setN (j2, i2, conj (p));
++ result->setN (j2, i2, tr1::conj (p));
+ i2++;
+ }
+
+@@ -378,13 +378,13 @@
+ // compute C'ij
+ p = c->getN (i1, j1) +
+ c->getN (k, j1) * d->getS (l, l) * c->getS (i1, k) * tiny2 / t +
+- c->getN (i1, k) * conj (d->getS (l, l) * c->getS (j1, k) * tiny2 / t) +
++ c->getN (i1, k) * tr1::conj (d->getS (l, l) * c->getS (j1, k) * tiny2 / t) +
+ (c->getN (k, k) * norm (d->getS (l, l)) + d->getN (l, l)) *
+- c->getS (i1, k) * conj (c->getS (j1, k)) * tiny4 / norm (t);
++ c->getS (i1, k) * tr1::conj (c->getS (j1, k)) * tiny4 / norm (t);
+
+ result->setN (i2, j2, p);
+ if (i2 >= j2) break; // the other half need not be computed
+- result->setN (j2, i2, conj (p));
++ result->setN (j2, i2, tr1::conj (p));
+ i2++;
+ }
+
+@@ -410,12 +410,12 @@
+
+ // compute C'ij
+ p = (c->getN (k, k) * d->getS (l, l) +
+- d->getN (l, l) * conj (c->getS (k, k))) *
+- c->getS (i1, k) * conj (d->getS (j1, l)) * tiny3 / norm (t) +
++ d->getN (l, l) * tr1::conj (c->getS (k, k))) *
++ c->getS (i1, k) * tr1::conj (d->getS (j1, l)) * tiny3 / norm (t) +
+ d->getN (l, j1) * c->getS (i1, k) * tiny1 / t +
+- c->getN (i1, k) * conj (d->getS (j1, l) * tiny1 / t);
++ c->getN (i1, k) * tr1::conj (d->getS (j1, l) * tiny1 / t);
+ result->setN (i2, j2, p);
+- result->setN (j2, i2, conj (p));
++ result->setN (j2, i2, tr1::conj (p));
+ i2++;
+ }
+
+@@ -428,12 +428,12 @@
+ // compute C'ij
+ p = d->getN (i1, j1) +
+ (d->getN (l, l) * norm (c->getS (k, k)) + c->getN (k, k)) *
+- d->getS (i1, l) * conj (d->getS (j1, l)) * tiny4 / norm (t) +
+- d->getN (i1, l) * conj (c->getS (k, k) * d->getS (j1, l) * tiny2 / t) +
++ d->getS (i1, l) * tr1::conj (d->getS (j1, l)) * tiny4 / norm (t) +
++ d->getN (i1, l) * tr1::conj (c->getS (k, k) * d->getS (j1, l) * tiny2 / t) +
+ d->getN (l, j1) * c->getS (k, k) * d->getS (i1, l) * tiny2 / t;
+ result->setN (i2, j2, p);
+ if (i2 >= j2) break; // the other half need not be computed
+- result->setN (j2, i2, conj (p));
++ result->setN (j2, i2, tr1::conj (p));
+ i2++;
+ }
+
+@@ -1042,7 +1042,7 @@
+ // linear noise figure
+ F = real (1.0 + c22 / norm (s21));
+ n1 =
+- c11 * norm (s21) - 2.0 * real (c12 * s21 * conj (s11)) +
++ c11 * norm (s21) - 2.0 * real (c12 * s21 * tr1::conj (s11)) +
+ c22 * norm (s11);
+ n2 = 2.0 * (c22 * s11 - c12 * s21) / (c22 + n1);
+
+@@ -1058,7 +1058,7 @@
+ norm (s21) / (1.0 + norm (Sopt)));
+
+ // equivalent noise resistance
+- Rn = real ((c11 - 2.0 * real (c12 * conj ((1.0 + s11) / s21)) +
++ Rn = real ((c11 - 2.0 * real (c12 * tr1::conj ((1.0 + s11) / s21)) +
+ c22 * norm ((1.0 + s11) / s21)) / 4.0);
+ Rn = Rn * z0;
+
+diff -wbBur qucs-0.0.16/qucs-core/src/tvector.cpp qucs-0.0.16.my/qucs-core/src/tvector.cpp
+--- qucs-0.0.16/qucs-core/src/tvector.cpp 2011-03-11 20:42:20.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/tvector.cpp 2011-03-29 15:10:09.000000000 +0000
+@@ -390,7 +390,7 @@
+ tvector<nr_type_t> conj (tvector<nr_type_t> a) {
+ int n = a.getSize ();
+ tvector<nr_type_t> res (n);
+- for (int i = 0; i < n; i++) res.set (i, conj (a.get (i)));
++ for (int i = 0; i < n; i++) res.set (i, tr1::conj (a.get (i)));
+ return res;
+ }
+
+diff -wbBur qucs-0.0.16/qucs-core/src/vector.cpp qucs-0.0.16.my/qucs-core/src/vector.cpp
+--- qucs-0.0.16/qucs-core/src/vector.cpp 2011-03-17 17:01:25.000000000 +0000
++++ qucs-0.0.16.my/qucs-core/src/vector.cpp 2011-03-29 15:33:57.000000000 +0000
+@@ -354,7 +354,7 @@
+
+ vector conj (vector v) {
+ vector result (v);
+- for (int i = 0; i < v.getSize (); i++) result.set (conj (v.get (i)), i);
++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::conj (v.get (i)), i);
+ return result;
+ }
+
+@@ -450,13 +450,13 @@
+
+ vector asin (vector v) {
+ vector result (v);
+- for (int i = 0; i < v.getSize (); i++) result.set (asin (v.get (i)), i);
++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::asin (v.get (i)), i);
+ return result;
+ }
+
+ vector acos (vector v) {
+ vector result (v);
+- for (int i = 0; i < v.getSize (); i++) result.set (acos (v.get (i)), i);
++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::acos (v.get (i)), i);
+ return result;
+ }
+
+@@ -474,7 +474,7 @@
+
+ vector atan (vector v) {
+ vector result (v);
+- for (int i = 0; i < v.getSize (); i++) result.set (atan (v.get (i)), i);
++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::atan (v.get (i)), i);
+ return result;
+ }
+
+@@ -498,7 +498,7 @@
+
+ vector asinh (vector v) {
+ vector result (v);
+- for (int i = 0; i < v.getSize (); i++) result.set (asinh (v.get (i)), i);
++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::asinh (v.get (i)), i);
+ return result;
+ }
+
+@@ -510,7 +510,7 @@
+
+ vector acosh (vector v) {
+ vector result (v);
+- for (int i = 0; i < v.getSize (); i++) result.set (acosh (v.get (i)), i);
++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::acosh (v.get (i)), i);
+ return result;
+ }
+
+@@ -528,7 +528,7 @@
+
+ vector atanh (vector v) {
+ vector result (v);
+- for (int i = 0; i < v.getSize (); i++) result.set (atanh (v.get (i)), i);
++ for (int i = 0; i < v.getSize (); i++) result.set (tr1::atanh (v.get (i)), i);
+ return result;
+ }
+
+@@ -1200,7 +1200,7 @@
+ vector dbm (vector v, const nr_complex_t z) {
+ vector result (v);
+ for (int i = 0; i < v.getSize (); i++)
+- result.set (10.0 * log10 (norm (v.get (i)) / conj (z) / 0.001), i);
++ result.set (10.0 * log10 (norm (v.get (i)) / tr1::conj (z) / 0.001), i);
+ return result;
+ }
+
diff --git a/community/quesoglc/PKGBUILD b/community/quesoglc/PKGBUILD
new file mode 100644
index 000000000..8e12b892d
--- /dev/null
+++ b/community/quesoglc/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Markus Pargmann
+
+pkgname=quesoglc
+pkgver=0.7.2
+pkgrel=1
+pkgdesc='The OpenGL Character Renderer (GLC) is a state machine that provides OpenGL programs with character rendering services via an application programming interface (API).'
+arch=('i686' 'x86_64')
+url='http://quesoglc.sourceforge.net/'
+license=('GPL')
+depends=('freetype2' 'fontconfig' 'freeglut' 'fribidi' 'mesa')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('c2697a92e2cc00c537626020e4108a4e')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/quvi/PKGBUILD b/community/quvi/PKGBUILD
new file mode 100644
index 000000000..0db615d35
--- /dev/null
+++ b/community/quvi/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 43700 2011-03-29 09:36:38Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: joyfulgirl@archlinux.us
+
+pkgname=quvi
+pkgver=0.2.14
+pkgrel=1
+pkgdesc='Command-line tool for parsing video download links.'
+arch=('i686' 'x86_64')
+url='http://quvi.googlecode.com/'
+license=('LGPL')
+depends=('curl' 'pcre' 'lua')
+options=('!libtool')
+source=("http://${pkgname}.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('9958319e82232dea781526198b98985e')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/radeontool/PKGBUILD b/community/radeontool/PKGBUILD
new file mode 100644
index 000000000..7092a9d77
--- /dev/null
+++ b/community/radeontool/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 39058 2011-02-05 20:20:24Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym AT gmail DOT com>
+
+pkgname=radeontool
+pkgver=1.6.2
+pkgrel=1
+pkgdesc="Radeontool (and avivotool) are lowlevel tools to tweak register and dump state on radeon GPUs"
+url="http://airlied.livejournal.com/"
+arch=('i686' 'x86_64')
+license=('ZLIB')
+source=(http://people.freedesktop.org/~airlied/radeontool/${pkgname}-${pkgver}.tar.gz
+ license.txt)
+depends=('libpciaccess')
+md5sums=('535cf712cd609c361291dd59ca2664aa'
+ 'cc74a55d8e998ca9a2537a0ab78bc582')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package () {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install
+ install -D ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/radeontool/license.txt
+}
diff --git a/community/radeontool/license.txt b/community/radeontool/license.txt
new file mode 100644
index 000000000..7a32525f7
--- /dev/null
+++ b/community/radeontool/license.txt
@@ -0,0 +1,22 @@
+Copyright (c) 2002-2004 Frederick Dean <software@fdd.com>
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+claim that you wrote the original software. If you use this software
+in a product, an acknowledgment in the product documentation would be
+appreciated but is not required.
+
+2. Altered source versions must be plainly marked as such, and must not be
+misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source
+distribution.
+
+
diff --git a/community/radvd/PKGBUILD b/community/radvd/PKGBUILD
new file mode 100644
index 000000000..32a668db6
--- /dev/null
+++ b/community/radvd/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 38596 2011-01-28 17:42:11Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Mark Smith <markzzzsmith@yahoo.com.au>
+
+pkgname=radvd
+pkgver=1.7
+pkgrel=1
+pkgdesc='IPv6 Router Advertisement / Router Solicitation daemon'
+url='http://www.litech.org/radvd/'
+license=('custom')
+depends=('glibc')
+arch=('i686' 'x86_64')
+install=radvd.install
+source=("${url}dist/$pkgname-$pkgver.tar.gz" 'radvd.rc.d')
+md5sums=('5ec417bde33964a07231ddf6353177c8'
+ '65a585f5850a1ac2a0c2c2a7096ec92a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man
+ make; make DESTDIR=$pkgdir install
+
+ install -Dm644 radvd.conf.example \
+ $pkgdir/usr/share/doc/radvd/radvd.conf.example
+ install -Dm644 COPYRIGHT \
+ $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT
+ install -Dm755 $srcdir/radvd.rc.d $pkgdir/etc/rc.d/radvd
+}
diff --git a/community/radvd/radvd.install b/community/radvd/radvd.install
new file mode 100644
index 000000000..fc0b7f852
--- /dev/null
+++ b/community/radvd/radvd.install
@@ -0,0 +1,28 @@
+post_install() {
+cat << EOF
+
+To use radvd you must create the configuration file
+
+ /etc/radvd.conf
+
+An example configuration file has been installed at
+
+ /usr/share/doc/radvd/radvd.conf.example
+
+radvd requires IPv6 forwarding be enabled.
+To enable IPv6 forwarding at boot time,
+add the following line to /etc/sysctl.conf:
+
+ # Enable IPv6 packet forwarding
+ net.ipv6.conf.all.forwarding = 1
+
+or manually enable forwarding using:
+
+ echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
+
+EOF
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/radvd/radvd.rc.d b/community/radvd/radvd.rc.d
new file mode 100644
index 000000000..f8c9ea571
--- /dev/null
+++ b/community/radvd/radvd.rc.d
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+### /etc/rc.d/radvd: Initscript for radvd Daemon
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/radvd`
+case "$1" in
+ start)
+ stat_busy "Starting radvd Daemon"
+ [ -z "$PID" ] && \
+ /usr/sbin/radvd &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else stat_done; add_daemon radvd
+ echo $PID > /var/run/radvd.pid
+ fi ;;
+ stop)
+ stat_busy "Stopping radvd Daemon"
+ [ ! -z "$PID" ] \
+ && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done; rm_daemon radvd
+ fi ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+
+exit 0
+
+### /etc/rc.d/radvd: Initscript for radvd Daemon
diff --git a/community/rapidsvn/PKGBUILD b/community/rapidsvn/PKGBUILD
new file mode 100644
index 000000000..cee7bf35b
--- /dev/null
+++ b/community/rapidsvn/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 34181 2010-12-04 13:42:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: AqD <aquila.deus@gmail.com>
+# Contributor: TheMadsen <arch@themadsens.dk>
+
+pkgname=rapidsvn
+pkgver=0.12.0
+pkgrel=3
+pkgdesc="A cross-platform GUI front-end for the Subversion revision system written in C++ using the wxWidgets framework."
+depends=('subversion' 'wxgtk')
+url='http://rapidsvn.tigris.org/'
+arch=('i686' 'x86_64')
+license=('GPL')
+options=('!libtool')
+source=(http://www.rapidsvn.org/download/release/0.12/rapidsvn-$pkgver-1.tar.gz
+ $pkgname.desktop)
+md5sums=('8ec54104fca32d81e396a68e25324263'
+ '349e6d9729f88868902611bb1172f134')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver-1
+
+ sed -i 's#src/tests/svncpp/Makefile##' configure
+ [ "$NOEXTRACT" == 1 ] || ./configure --prefix=/usr --with-apu-config="`which apu-1-config`" --with-apr-config="`which apr-1-config`"
+
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' tools/*.py
+ sed -i 's|python|python2|' src/locale/Makefile
+
+ make -k
+ make DESTDIR=$pkgdir install
+
+ install -Dm644 src/res/bitmaps/rapidsvn_32x32.xpm $pkgdir/usr/share/pixmaps/rapidsvn_32x32.xpm
+ install -Dm644 ../$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+}
diff --git a/community/rapidsvn/rapidsvn.desktop b/community/rapidsvn/rapidsvn.desktop
new file mode 100644
index 000000000..8adeb20e1
--- /dev/null
+++ b/community/rapidsvn/rapidsvn.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=RapidSVN
+Comment=SVN source viewer
+Exec=rapidsvn
+Icon=rapidsvn_32x32
+Terminal=false
+Type=Application
+Categories=GNOME;Application;Development;
+StartupNotify=true
diff --git a/community/raul/PKGBUILD b/community/raul/PKGBUILD
new file mode 100644
index 000000000..92f6d497b
--- /dev/null
+++ b/community/raul/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 37632 2011-01-15 21:42:56Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Max a.k.a. Synthead <synthead@gmail.com>
+# Contributor: christhemonkey <christhemonkey at gmail dot com>
+
+pkgname=raul
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="C++ Realtime Audio Utility Library"
+arch=(i686 x86_64)
+url="http://drobilla.net/software/raul/"
+depends=('glib2')
+makedepends=('boost' 'python2')
+license=('GPL')
+install=$pkgname.install
+source=(http://download.drobilla.net/$pkgname-$pkgver.tar.bz2)
+md5sums=('8fa71a20db81fbed5fb6516dea383ea8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf configure --prefix=/usr
+ python2 waf build $MAKEFLAGS
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/raul/raul.install b/community/raul/raul.install
new file mode 100644
index 000000000..46f265d5b
--- /dev/null
+++ b/community/raul/raul.install
@@ -0,0 +1,11 @@
+post_install() {
+ /sbin/ldconfig
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/raw-thumbnailer/PKGBUILD b/community/raw-thumbnailer/PKGBUILD
new file mode 100644
index 000000000..e6d85babd
--- /dev/null
+++ b/community/raw-thumbnailer/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 22594 2010-07-23 08:17:42Z lcarlier $
+# Maintainer: pressh <pressh at gmail dot com>
+# Contributor: boromil@gmail.com
+
+pkgname=raw-thumbnailer
+pkgver=0.2
+pkgrel=2
+pkgdesc="A lightweight and fast raw image thumbnailer that can be used by file managers."
+url="http://code.google.com/p/raw-thumbnailer/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('libopenraw')
+source=(http://raw-thumbnailer.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('f107575aa32a0d53802cf5beead18bf8')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/rawstudio/PKGBUILD b/community/rawstudio/PKGBUILD
new file mode 100644
index 000000000..06730f73a
--- /dev/null
+++ b/community/rawstudio/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 40356 2011-02-23 08:05:16Z ebelanger $
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: cdhotfire <cdhotfire@gmail.com>
+
+pkgname=rawstudio
+pkgver=1.2
+pkgrel=6
+pkgdesc="An open source raw-image converter written in GTK+"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://rawstudio.org/"
+depends=('gconf' 'libxml2' 'lcms' 'libjpeg' 'libtiff' 'desktop-file-utils' 'exiv2')
+install=${pkgname}.install
+source=(http://rawstudio.org/files/release/${pkgname}-${pkgver}.tar.gz
+ 'rawstudio-const.patch')
+md5sums=('25399cd80294fa44220a8940fc77689f' '6692b460e838ea56462aff7626b2dcef')
+sha1sums=('9ce96c40e0b8feaf4627c14310646782578d4da1' '95d83914d5ae156f0fe747945516ae6cc93adac5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/rawstudio-const.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install
+}
diff --git a/community/rawstudio/rawstudio-const.patch b/community/rawstudio/rawstudio-const.patch
new file mode 100644
index 000000000..00332fe88
--- /dev/null
+++ b/community/rawstudio/rawstudio-const.patch
@@ -0,0 +1,12 @@
+diff -Nur rawstudio-1.2.orig/src/dcraw.cc rawstudio-1.2/src/dcraw.cc
+--- rawstudio-1.2.orig/src/dcraw.cc 2009-04-10 00:21:45.000000000 +0300
++++ rawstudio-1.2/src/dcraw.cc 2009-07-16 00:05:28.169155134 +0300
+@@ -8510,7 +8510,7 @@
+ argv[argc] = "";
+ for (arg=1; (((opm = argv[arg][0]) - 2) | 2) == '+'; ) {
+ opt = argv[arg++][1];
+- if ((cp = strchr (sp="nbrkStqmHACg", opt)))
++ if ((cp = (char *)strchr (sp="nbrkStqmHACg", opt)))
+ for (i=0; i < "114111111422"[cp-sp]-'0'; i++)
+ if (!isdigit(argv[arg+i][0])) {
+ dcraw_message (DCRAW_ERROR,_("Non-numeric argument to \"-%c\"\n"), opt);
diff --git a/community/rawstudio/rawstudio.install b/community/rawstudio/rawstudio.install
new file mode 100644
index 000000000..5e5cfef4d
--- /dev/null
+++ b/community/rawstudio/rawstudio.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/community/rawtherapee/PKGBUILD b/community/rawtherapee/PKGBUILD
new file mode 100644
index 000000000..63813738d
--- /dev/null
+++ b/community/rawtherapee/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 36068 2010-12-26 11:58:33Z stativ $
+# Maintainer: Lukas Jirkovsky <l.jirkovsky AT gmail.com>
+# Contributor: Bogdan Szczurek <thebodzio(at)gmail.com>
+# Contributor: Vaclav Kramar <vaclav.kramar@tiscali.cz>
+# Contributor: Archie <mymaud@gmail.com>
+
+pkgname=rawtherapee
+pkgver=3.0a1_742
+pkgrel=1
+pkgdesc="RAW photo editor"
+arch=('i686' 'x86_64')
+url="http://www.rawtherapee.com/"
+license=('GPL')
+depends=('libsigc++' 'gtkmm' 'libiptcdata' 'lcms')
+makedepends=('mercurial' 'cmake')
+install=rawtherapee.install
+source=(rawtherapee.desktop rawtherapee.png)
+md5sums=('83f14b57b27f066705b0aec7ad56c53d'
+ '4e54e74684971a2f04d9396b9051570e')
+
+_root="https://rawtherapee.googlecode.com/hg/"
+_repo="rawtherapee"
+_branch="branch_3.0"
+_changeset="71045bfba97e" # changeset $pkgver
+
+build() {
+ cd "$srcdir"
+ msg "Connecting to Mercurial server...."
+
+ if [ -d $_repo ] ; then
+ cd $_repo
+ hg pull
+ hg up -r $_changeset
+ msg "The local files are updated."
+ else
+ hg clone -b $_branch -u $_changeset $_root $_repo
+ fi
+
+ msg "Mercurial checkout done or server timeout"
+ msg "Starting make..."
+
+ if [ -e "$srcdir/$_repo-build" ]; then
+ rm -rf "$srcdir/$_repo-build"
+ fi
+ mkdir "$srcdir/$_repo-build"
+ cd "$srcdir/$_repo-build"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ../$_repo
+ make
+}
+
+package() {
+ cd "$srcdir/$_repo-build"
+ make DESTDIR="$pkgdir/" install
+
+ # remove unneded rtstart script
+ # see http://code.google.com/p/rawtherapee/issues/detail?id=184
+ rm "$pkgdir"/usr/bin/rtstart
+
+ install -D -m644 "$srcdir"/rawtherapee.desktop "$pkgdir"/usr/share/applications/rawtherapee.desktop
+ install -D -m644 "$srcdir"/rawtherapee.png "$pkgdir"/usr/share/pixmaps/rawtherapee.png
+}
diff --git a/community/rawtherapee/rawtherapee.desktop b/community/rawtherapee/rawtherapee.desktop
new file mode 100644
index 000000000..3395712a8
--- /dev/null
+++ b/community/rawtherapee/rawtherapee.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=RawTherapee
+GenericName=RAW image editor
+Exec=rt
+Icon=rawtherapee
+Terminal=false
+Categories=Graphics;
+StartupNotify=true
+MimeType=image/jpeg;image/jpg;image/tiff;image/png;image/x-canon-cr2;image/x-canon-crw;image/x-nikon-nef;image/x-fuji-raf;image/x-pentax-pef;image/x-adobe-dng;image/x-sony-arw;image/x-sony-sr2;image/x-minolta-mrw;image/x-panasonic-raw;image/x-olympus-orf;image/x-kodak-kdc;
diff --git a/community/rawtherapee/rawtherapee.install b/community/rawtherapee/rawtherapee.install
new file mode 100644
index 000000000..ccf3323ae
--- /dev/null
+++ b/community/rawtherapee/rawtherapee.install
@@ -0,0 +1,24 @@
+post_upgrade() {
+
+if [ ${2%%_*} == "3.0a1" ]; then
+ TMP=${2##*_}
+ TMP=${TMP%%-*}
+
+ if [ $TMP -lt 316 ]; then
+ echo "Profile extension has changed from .pp2 to .pp3"
+ echo -e "since rawtherapee-3.0a1_54-1\n"
+ echo "If you used rawtherapee-3.0a1_54-1 or any earlier 3.0 version"
+ echo "you have to change the extension manually.\n"
+ echo "NOTE: pp2 profiles from rawtherapee 2.4 and older"
+ echo "are not compatible."
+ fi
+
+ if [ $TMP -lt 589 ]; then
+ echo "There were lots of changes to the behavior of the majority of tools."
+ echo "This may cause your files to look differently than before."
+ fi
+fi
+
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/rawtherapee/rawtherapee.png b/community/rawtherapee/rawtherapee.png
new file mode 100644
index 000000000..694f4e5da
--- /dev/null
+++ b/community/rawtherapee/rawtherapee.png
Binary files differ
diff --git a/community/rdiff-backup/ChangeLog b/community/rdiff-backup/ChangeLog
new file mode 100644
index 000000000..b6e02ffe2
--- /dev/null
+++ b/community/rdiff-backup/ChangeLog
@@ -0,0 +1,5 @@
+2008-09-27 Dragonlord <dragonlord@aur.archlinux.org>
+ * updated to major release 1.2.1
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+ * Built for x86_64
diff --git a/community/rdiff-backup/PKGBUILD b/community/rdiff-backup/PKGBUILD
new file mode 100644
index 000000000..5f4c34465
--- /dev/null
+++ b/community/rdiff-backup/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 26407 2010-09-15 11:58:40Z schuay $
+# Maintainer: Aaron Schaefer <aaron@elasticdog.com>
+# Contributor: Erwin Van de Velde <erwin.vandevelde@gmail.com>
+pkgname=rdiff-backup
+pkgver=1.2.8
+pkgrel=4
+pkgdesc='A utility for local/remote mirroring and incremental backups'
+arch=('i686' 'x86_64')
+url='http://www.nongnu.org/rdiff-backup/'
+license=('GPL')
+depends=('python2' 'librsync')
+optdepends=('pylibacl: access control list support'
+ 'pyxattr: extended attribute support')
+source=("http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('1a94dc537fcf74d6a3a80bd27808e77b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" -O1
+
+ # Fix for FS#18848
+ sed -i 's|python2|python2 -W ignore::DeprecationWarning|' ${pkgdir}/usr/bin/rdiff-backup
+}
diff --git a/community/recoll/PKGBUILD b/community/recoll/PKGBUILD
new file mode 100644
index 000000000..3c892d148
--- /dev/null
+++ b/community/recoll/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 41903 2011-03-10 21:36:50Z ebelanger $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Vladimir Chizhov <jagoterr@gmail.com>
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=recoll
+pkgver=1.15.7
+pkgrel=1
+pkgdesc="Full text search tool based on Xapian backend"
+arch=('i686' 'x86_64')
+url="http://www.lesbonscomptes.com/recoll/"
+license=('GPL')
+depends=('xapian-core>=1.0.15-1' 'qt' 'openssl' 'hicolor-icon-theme')
+optdepends=('unzip: for the OpenOffice.org documents'
+ 'xpdf: for pdf'
+ 'pstotext: for postscipt'
+ 'antiword: for msword'
+ 'catdoc: for ms excel and powerpoint'
+ 'unrtf: for RTF'
+ 'tetex: for dvi support with dvips'
+ 'djvulibre: for djvu'
+ 'id3lib: for mp3 tags support with id3info'
+ 'python2: for using some filters')
+install=recoll.install
+source=(http://www.lesbonscomptes.com/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('649ebef60a1920dc2a195211993b3489')
+sha1sums=('2494d71e4218df5a7e6a9715ef8dcee82e977ff8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # python2 fix
+ for file in filters/{rclchm,rclexecm.py,rclics,rclpython,rclzip,rclaudio,rclinfo,rclkar,rcllatinclass.py} doc/user/usermanual.html; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' desktop/hotrecoll.py
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/recoll/recoll.install b/community/recoll/recoll.install
new file mode 100644
index 000000000..0fbb3047a
--- /dev/null
+++ b/community/recoll/recoll.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/recordmydesktop/PKGBUILD b/community/recordmydesktop/PKGBUILD
new file mode 100644
index 000000000..f559b7a2b
--- /dev/null
+++ b/community/recordmydesktop/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 19250 2010-06-21 20:31:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Gilles CHAUVIN <gcnweb at gmail dot com>
+
+pkgname=recordmydesktop
+pkgver=0.3.8.1
+pkgrel=5
+pkgdesc="Produces a OGG encapsulated Theora/Vorbis recording of your desktop"
+arch=('i686' 'x86_64')
+url="http://recordmydesktop.sourceforge.net"
+license=('GPL')
+depends=('alsa-lib' 'zlib' 'libvorbis' 'libxdamage' 'libxext' 'libtheora' 'libsm' 'jack')
+makedepends=('jack-audio-connection-kit')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ shmstr-to-shmproto.patch
+ recordmydesktop-bitrate.patch)
+md5sums=('6998b165540598965499bd99d8aa0eef'
+ '211a1773f223b3f281520aa1056395e6'
+ 'b0794a769efd287e9e8c5fb8c3299b35')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 < ${srcdir}/shmstr-to-shmproto.patch
+ patch -p1 < ${srcdir}/recordmydesktop-bitrate.patch
+ ./configure --prefix=/usr --enable-jack=yes LIBS="`pkg-config --libs jack`" \
+ CFLAGS="`pkg-config --cflags jack` -DHAVE_LIBJACK" || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/recordmydesktop/recordmydesktop-bitrate.patch b/community/recordmydesktop/recordmydesktop-bitrate.patch
new file mode 100644
index 000000000..9b014486a
--- /dev/null
+++ b/community/recordmydesktop/recordmydesktop-bitrate.patch
@@ -0,0 +1,50 @@
+diff -ru recordmydesktop-0.3.8.1.old/src/rmd_initialize_data.c recordmydesktop-0.3.8.1/src/rmd_initialize_data.c
+--- recordmydesktop-0.3.8.1.old/src/rmd_initialize_data.c 2009-11-25 10:05:58.708779029 -0500
++++ recordmydesktop-0.3.8.1/src/rmd_initialize_data.c 2009-11-25 09:28:07.629507987 -0500
+@@ -224,7 +224,7 @@
+ args->channels = 1;
+ args->frequency = 22050;
+ args->buffsize = 4096;
+- args->v_bitrate = 45000;
++ args->v_bitrate = 0;
+ args->v_quality = 63;
+ args->s_quality = 10;
+
+diff -ru recordmydesktop-0.3.8.1.old/src/rmd_parseargs.c recordmydesktop-0.3.8.1/src/rmd_parseargs.c
+--- recordmydesktop-0.3.8.1.old/src/rmd_parseargs.c 2009-11-25 10:06:07.409777969 -0500
++++ recordmydesktop-0.3.8.1/src/rmd_parseargs.c 2009-11-25 09:39:32.786757292 -0500
+@@ -104,10 +104,10 @@
+ "Encoding Options\n"
+ "\t--on-the-fly-encoding\tEncode the audio-video data, while recording.\n"
+ "\t--v_quality n\t\tA number from 0 to 63 for"
+- " desired encoded video quality(default 63).\n"
++ " desired encoded video quality(default 63).\n\t (set quality to zero for bitrate controlled usage)\n"
+
+- "\t--v_bitrate n\t\tA number from 45000 to 2000000"
+- " for desired encoded video bitrate(default 45000).\n"
++ "\t--v_bitrate n\t\tA number from 0 to 200000000"
++ " for desired encoded video bitrate(default 0 = not rate controlled).\n"
+
+ "\t--s_quality n\t\tDesired audio quality(-1 to 10).\n\n"
+
+@@ -327,17 +327,17 @@
+ strcmp(argv[i], "-v_bitrate") == 0) {
+ if(i+1<argc){
+ int num=atoi(argv[i+1]);
+- if((num>=45000)&&(num<=2000000))
++ if((num>=0)&&(num<=200000000))
+ arg_return->v_bitrate=num;
+ else{
+ fprintf(stderr,"Argument Usage:"
+- " --v_bitrate n(number 45000-2000000)\n");
++ " --v_bitrate n(number 0-200000000)\n");
+ return FALSE;
+ }
+ }
+ else{
+ fprintf(stderr,"Argument Usage:"
+- " --v_bitrate n(number 45000-2000000)\n");
++ " --v_bitrate n(number 0-200000000)\n");
+ return FALSE;
+ }
+ i++;
diff --git a/community/recordmydesktop/shmstr-to-shmproto.patch b/community/recordmydesktop/shmstr-to-shmproto.patch
new file mode 100644
index 000000000..6fc446e9a
--- /dev/null
+++ b/community/recordmydesktop/shmstr-to-shmproto.patch
@@ -0,0 +1,20 @@
+--- src/rmd_getzpixmap.c 2008-12-13 17:04:10.000000000 +0100
++++ src/rmd_getzpixmap.c 2009-11-11 11:30:18.000000000 +0100
+@@ -32,7 +32,7 @@
+
+ #include <X11/Xlib.h>
+ #include <X11/Xlibint.h>
+-#include <X11/extensions/shmstr.h>
++#include <X11/extensions/shmproto.h>
+ #include <X11/extensions/XShm.h>
+
+
+--- src/rmd_update_image.c 2008-12-13 17:20:49.000000000 +0100
++++ src/rmd_update_image.c 2009-11-11 11:30:34.000000000 +0100
+@@ -32,7 +32,7 @@
+ #include "rmd_types.h"
+
+ #include <X11/Xlibint.h>
+-#include <X11/extensions/shmstr.h>
++#include <X11/extensions/shmproto.h>
+ #include <X11/extensions/XShm.h>
diff --git a/community/recoverdm/ChangeLog b/community/recoverdm/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/recoverdm/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/recoverdm/PKGBUILD b/community/recoverdm/PKGBUILD
new file mode 100644
index 000000000..4ec2d1548
--- /dev/null
+++ b/community/recoverdm/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 21972 2010-07-19 13:44:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=recoverdm
+pkgver=0.20
+pkgrel=2
+pkgdesc="helps to recover disks with bad sectors"
+arch=('i686' 'x86_64')
+url="http://www.vanheusden.com/recoverdm/"
+license=('GPL')
+depends=(glibc)
+source=(http://www.vanheusden.com/recoverdm/${pkgname}-${pkgver}.tgz)
+md5sums=('9da9ea7d44f8f94984715eb2ff1ecab4')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+ make || return 1
+ install -D -m 0755 mergebad $pkgdir/usr/bin/mergebad && \
+ install -D -m 0755 recoverdm $pkgdir/usr/bin/recoverdm
+}
diff --git a/community/redis/PKGBUILD b/community/redis/PKGBUILD
new file mode 100644
index 000000000..2f90659f0
--- /dev/null
+++ b/community/redis/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 41768 2011-03-08 20:19:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jan-Erik Rediger <badboy at archlinux dot us>
+# Contributor: nofxx <x@<nick>.com>
+
+pkgname=redis
+pkgver=2.2.2
+pkgrel=1
+pkgdesc="Advanced key-value store"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/redis"
+license=('BSD')
+depends=('bash')
+makedepends=('gcc>=3.1' 'make' 'pkgconfig')
+backup=("etc/redis.conf"
+ "etc/logrotate.d/redis")
+source=("http://redis.googlecode.com/files/${pkgname}-${pkgver}.tar.gz"
+ "redis.d"
+ "redis.logrotate")
+md5sums=('1c5b0d961da84a8f9b44a328b438549e'
+ 'bf61968d18d0e42529880f5c488ea9ed'
+ '9e2d75b7a9dc421122d673fe520ef17f')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ CFLAGS="$CFLAGS -std=c99" make
+ mkdir -p $pkgdir/usr/bin
+ make INSTALL_BIN="$pkgdir/usr/bin" PREFIX=/usr install
+
+ install -D -m755 "$srcdir/${pkgname}-${pkgver}/COPYING" "$pkgdir/usr/share/licenses/redis/COPYING"
+ install -D -m755 "$srcdir/redis.d" "$pkgdir/etc/rc.d/redis"
+ install -Dm644 "$srcdir/redis.logrotate" "$pkgdir/etc/logrotate.d/redis"
+ sed -i 's|daemonize no|daemonize yes|;s|dir \./|dir /var/lib/redis/|;s|logfile stdout|logfile /var/log/redis.log| ' $srcdir/${pkgname}-${pkgver}/redis.conf
+ install -D -m644 "$srcdir/${pkgname}-${pkgver}/redis.conf" "$pkgdir/etc/redis.conf"
+}
diff --git a/community/redis/redis.d b/community/redis/redis.d
new file mode 100644
index 000000000..333f45d6b
--- /dev/null
+++ b/community/redis/redis.d
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`cat /var/run/redis.pid 2>/dev/null`
+case "$1" in
+ start)
+ stat_busy "Starting Redis Server"
+ [ -d /var/lib/redis ] || { mkdir /var/lib/redis; }
+ if [ -z "$PID" ]; then
+ /usr/bin/redis-server /etc/redis.conf >/dev/null
+ RESULT=$?
+ else
+ REDIS_PID=`pidof redis-server`
+ if [ -z "$REDIS_PID" ]; then
+ /usr/bin/redis-server /etc/redis.conf >/dev/null
+ RESULT=$?
+ elif [ `pidof redis-server` -eq $PID ]; then
+ RESULT=1
+ else
+ /usr/bin/redis-server /etc/redis.conf >/dev/null
+ RESULT=$?
+ fi
+ fi
+
+ if [ $RESULT -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon redis
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Redis Server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/redis.pid
+ rm_daemon redis
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/redis/redis.logrotate b/community/redis/redis.logrotate
new file mode 100644
index 000000000..01d11422a
--- /dev/null
+++ b/community/redis/redis.logrotate
@@ -0,0 +1,5 @@
+/var/log/redis.log {
+ notifempty
+ copytruncate
+ missingok
+}
diff --git a/community/redshift/PKGBUILD b/community/redshift/PKGBUILD
new file mode 100644
index 000000000..fbeb4a814
--- /dev/null
+++ b/community/redshift/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 31256 2010-10-28 22:51:59Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Geoffrey Teale <tealeg@stop-squark>
+# Contributor: Mark, Huo Mian <markhuomian[at]gmail[dot]com>
+# Contributor: Biginoz <biginoz a free dot fr>
+
+pkgname=redshift
+pkgver=1.6
+pkgrel=6
+pkgdesc="Adjusts the color temperature of your screen according to your surroundings."
+arch=('i686' 'x86_64')
+url='http://jonls.dk/redshift/'
+license=('GPL3')
+depends=('gconf' 'libxxf86vm')
+optdepends=('pyxdg: for gtk-redshift')
+makedepends=('python2')
+install='redshift.install'
+source=("http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('bd75b317b8ee492a4483e91a94f2b0c1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/python/python2/' src/gtk-redshift/gtk-redshift
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/redshift/redshift.install b/community/redshift/redshift.install
new file mode 100644
index 000000000..d59dca6e8
--- /dev/null
+++ b/community/redshift/redshift.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/rekonq/PKGBUILD b/community/rekonq/PKGBUILD
new file mode 100644
index 000000000..7d308f872
--- /dev/null
+++ b/community/rekonq/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 34315 2010-12-06 10:11:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Panagiotis Papadopoulos <pano_90 AT gmx DOT net>
+
+pkgname=rekonq
+pkgver=0.6.1
+pkgrel=3
+pkgdesc='A WebKit based web browser for KDE'
+arch=('i686' 'x86_64')
+url='http://rekonq.sourceforge.net/'
+license=('GPL')
+depends=('kdebase-keditbookmarks')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('3c67de04fe21bb3cd52509e45c821da5')
+
+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/community/rekonq/rekonq.install b/community/rekonq/rekonq.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/community/rekonq/rekonq.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/community/remind/ChangeLog b/community/remind/ChangeLog
new file mode 100644
index 000000000..1feb0f052
--- /dev/null
+++ b/community/remind/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Fixed source url
diff --git a/community/remind/PKGBUILD b/community/remind/PKGBUILD
new file mode 100644
index 000000000..61fec08ad
--- /dev/null
+++ b/community/remind/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
+# Contributor: Sebastian Sontberg <ssontberg@h3c.de>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=remind
+pkgver=3.01.10
+pkgrel=1
+pkgdesc='A sophisticated calendar and alarm progam.'
+arch=('i686' 'x86_64')
+url='http://www.roaringpenguin.com/penguin/open_source_remind.php'
+license=('GPL')
+depends=('tk' 'tcllib')
+source=("http://www.roaringpenguin.com/files/download/${pkgname}-0${pkgver}.tar.gz")
+options=('!emptydirs')
+md5sums=('f6f7829d3ac92e0d6d463c59b5e6ce3f')
+
+build() {
+ cd ${pkgname}-0${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-0${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/remmina-plugins/PKGBUILD b/community/remmina-plugins/PKGBUILD
new file mode 100644
index 000000000..d4f30af3b
--- /dev/null
+++ b/community/remmina-plugins/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 42191 2011-03-15 12:35:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Stijn Segers <francesco dot borromini at gmail dot com>
+
+pkgname=remmina-plugins
+pkgver=0.9.2
+pkgrel=1
+pkgdesc="Remina plugins"
+#"Remmina supports multiple network protocols in an integrated and consistant user interface.
+# Currently RDP, VNC, XDMCP and SSH are supported."
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/remmina/"
+license=('GPL')
+conflicts=(remmina-plugins-svn)
+depends=("remmina>=0.9.0" freerdp libxkbfile telepathy-glib)
+makedepends=(intltool pkgconfig gettext perl avahi)
+install=remmina-plugins.install
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/remmina/0.9/$pkgname-$pkgver.tar.gz)
+md5sums=('6f6b7cb18f7604f3f17eeda5173ede6a')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-ssh --enable-rdp \
+ --enable-vnc --enable-xdmcp --enable-nx \
+ --enable-telepathy
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/remmina-plugins/remmina-plugins.install b/community/remmina-plugins/remmina-plugins.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/community/remmina-plugins/remmina-plugins.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/remmina/PKGBUILD b/community/remmina/PKGBUILD
new file mode 100644
index 000000000..be4e4b23b
--- /dev/null
+++ b/community/remmina/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 42194 2011-03-15 12:36:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=remmina
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="Remmina is a remote desktop client written in GTK+. "
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/remmina/"
+license=('GPL')
+provides=("grdc" "grdc=$pkgver")
+conflicts=("grdc")
+depends=('gtk2' 'zlib' 'libjpeg' 'libssh' 'libunique' 'avahi' 'vte' 'libgcrypt' 'libxdmcp')
+makedepends=('intltool' 'pkgconfig')
+optdepends=('remmina-plugins: Plugins for remmina, including xdmcp vnc telepathy rdp and nx')
+install=remmina.install
+source=($pkgname-$pkgver.tar.gz::"http://downloads.sourceforge.net/project/remmina/0.9/$pkgname-$pkgver.tar.gz")
+md5sums=('c87004a70ec62acbae732e8d47f71ba7')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr --enable-nls --disable-unique \
+ --enable-avahi --enable-vte \
+ --enable-vnc --enable-ssh --enable-gcrypt
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/remmina/remmina.install b/community/remmina/remmina.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/community/remmina/remmina.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/rep-gtk/PKGBUILD b/community/rep-gtk/PKGBUILD
new file mode 100644
index 000000000..b15e480f3
--- /dev/null
+++ b/community/rep-gtk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 42087 2011-03-13 17:54:11Z shusmann $
+# Maintainer: stefan-husmann@t-online.de
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=rep-gtk
+pkgver=0.90.5
+pkgrel=1
+pkgdesc="Binding of the GTK and GDK libraries for the librep Lisp environment"
+arch=('i686' 'x86_64')
+url="http://sawfish.wikia.com/wiki/Rep-GTK"
+license=('GPL')
+depends=('librep' 'gtk2')
+options=('libtool')
+source=(http://download.tuxfamily.org/librep/rep-gtk/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('8072e6470314555b7c894e1002d879f12be993d5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/rexima/ChangeLog b/community/rexima/ChangeLog
new file mode 100644
index 000000000..f7e20f94a
--- /dev/null
+++ b/community/rexima/ChangeLog
@@ -0,0 +1,2 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
diff --git a/community/rexima/PKGBUILD b/community/rexima/PKGBUILD
new file mode 100644
index 000000000..aa73c8752
--- /dev/null
+++ b/community/rexima/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 7502 2010-01-07 03:33:19Z dgriffiths $
+# Maintainer: Jeff Mickey <j@codemac.net>
+
+pkgname=rexima
+pkgver=1.4
+pkgrel=3
+pkgdesc="A curses-based interactive mixer."
+arch=('i686' 'x86_64')
+url="http://rus.members.beeb.net/rexima.html"
+license=('GPL')
+depends=('ncurses')
+source=(ftp://ftp.ibiblio.org/pub/Linux/apps/sound/mixers/$pkgname-$pkgver.tar.gz)
+md5sums=('333a4db26409b9cca9b9e96ddf42f44c')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make PREFIX=$startdir/pkg/usr install
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/ripperx/PKGBUILD b/community/ripperx/PKGBUILD
new file mode 100644
index 000000000..c3ce208a1
--- /dev/null
+++ b/community/ripperx/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 33870 2010-11-28 21:48:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=ripperx
+pkgver=2.7.3
+pkgrel=1
+pkgdesc="GTK program to rip and encode mp3 files"
+arch=(i686 x86_64)
+url="http://ripperx.sourceforge.net/"
+depends=('gtk2' 'id3lib')
+license=('GPL')
+source=(http://downloads.sourceforge.net/ripperx/ripperX-$pkgver.tar.gz)
+md5sums=('f07c55edf08a1cd57537f1b9379b4e4d')
+
+build() {
+ cd $srcdir/ripperX-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/rlog/ChangeLog b/community/rlog/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/rlog/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/rlog/PKGBUILD b/community/rlog/PKGBUILD
new file mode 100644
index 000000000..5479d9d03
--- /dev/null
+++ b/community/rlog/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Sven Kauber <celeon@gmail.com>
+
+pkgname=rlog
+pkgver=1.4
+pkgrel=3
+pkgdesc="A flexible message logging facility for C++ programs and libraries"
+arch=('i686' 'x86_64')
+url="http://arg0.net/wiki/rlog"
+license=('LGPL')
+depends=('gcc-libs')
+options=('!libtool')
+source=(http://rlog.googlecode.com/files/$pkgname-$pkgver.tar.gz \
+ $pkgname-section.patch)
+md5sums=('c29f74e0f50d66b20312d049b683ff82'
+ '69644989e07ceb5c265dfc0c6f770810')
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/$pkgname-section.patch || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir/ install
+}
diff --git a/community/rlog/rlog-section.patch b/community/rlog/rlog-section.patch
new file mode 100644
index 000000000..b22dfc2b7
--- /dev/null
+++ b/community/rlog/rlog-section.patch
@@ -0,0 +1,74 @@
+diff -ruN rlog-1.4.orig/rlog/common.h rlog-1.4/rlog/common.h
+--- rlog-1.4.orig/rlog/common.h 2008-06-15 07:49:52.000000000 +0200
++++ rlog-1.4/rlog/common.h 2008-06-23 19:29:16.000000000 +0200
+@@ -52,7 +52,6 @@
+
+ # define PRINTF(FMT,X) __attribute__ (( __format__ ( __printf__, FMT, X)))
+ # define HAVE_PRINTF_ATTR 1
+-# define RLOG_SECTION __attribute__ (( section("RLOG_DATA") ))
+
+ #if __GNUC__ >= 3
+ # define expect(foo, bar) __builtin_expect((foo),bar)
+@@ -77,7 +76,6 @@
+ */
+ # define PRINTF(FMT,X)
+ # define HAVE_PRINTF_ATTR 0
+-# define RLOG_SECTION
+
+ /*!
+ */
+diff -ruN rlog-1.4.orig/rlog/common.h.in rlog-1.4/rlog/common.h.in
+--- rlog-1.4.orig/rlog/common.h.in 2008-06-15 05:10:13.000000000 +0200
++++ rlog-1.4/rlog/common.h.in 2008-06-23 19:28:28.000000000 +0200
+@@ -52,7 +52,6 @@
+
+ # define PRINTF(FMT,X) __attribute__ (( __format__ ( __printf__, FMT, X)))
+ # define HAVE_PRINTF_ATTR 1
+-# define RLOG_SECTION __attribute__ (( section("RLOG_DATA") ))
+
+ #if __GNUC__ >= 3
+ # define expect(foo, bar) __builtin_expect((foo),bar)
+@@ -77,7 +76,6 @@
+ */
+ # define PRINTF(FMT,X)
+ # define HAVE_PRINTF_ATTR 0
+-# define RLOG_SECTION
+
+ /*!
+ */
+diff -ruN rlog-1.4.orig/rlog/rlog-c99.h rlog-1.4/rlog/rlog-c99.h
+--- rlog-1.4.orig/rlog/rlog-c99.h 2008-06-15 05:56:57.000000000 +0200
++++ rlog-1.4/rlog/rlog-c99.h 2008-06-23 19:28:37.000000000 +0200
+@@ -22,7 +22,7 @@
+ @internal
+ */
+ #define _rMessageDef(ID, COMPONENT) \
+- static rlog::PublishLoc ID RLOG_SECTION = {& ID ## _enabled, \
++ static rlog::PublishLoc ID = {& ID ## _enabled, \
+ &rlog::RLog_Register, 0, STR(COMPONENT), __FILE__, \
+ __FUNCTION__, __LINE__, 0};
+
+diff -ruN rlog-1.4.orig/rlog/rlog-novariadic.h rlog-1.4/rlog/rlog-novariadic.h
+--- rlog-1.4.orig/rlog/rlog-novariadic.h 2008-06-15 05:10:13.000000000 +0200
++++ rlog-1.4/rlog/rlog-novariadic.h 2008-06-23 19:28:45.000000000 +0200
+@@ -35,7 +35,7 @@
+
+ #define _rMessageDef(ID, COMPONENT) \
+ static bool ID ## _enabled = true; \
+- static rlog::PublishLoc ID RLOG_SECTION = {& ID ## _enabled, \
++ static rlog::PublishLoc ID = {& ID ## _enabled, \
+ &rlog::RLog_Register, 0, STR(COMPONENT), __FILE__, \
+ __FUNCTION__, __LINE__, 0}
+
+diff -ruN rlog-1.4.orig/rlog/rlog-prec99.h rlog-1.4/rlog/rlog-prec99.h
+--- rlog-1.4.orig/rlog/rlog-prec99.h 2008-06-15 05:59:05.000000000 +0200
++++ rlog-1.4/rlog/rlog-prec99.h 2008-06-23 19:28:06.000000000 +0200
+@@ -18,7 +18,7 @@
+
+ #define _rMessageDef(ID, COMPONENT) \
+ static bool ID ## _enabled = true; \
+- static rlog::PublishLoc ID RLOG_SECTION = {& ID ## _enabled, \
++ static rlog::PublishLoc ID = {& ID ## _enabled, \
+ &rlog::RLog_Register, 0, STR(COMPONENT), __FILE__, \
+ __FUNCTION__, __LINE__, 0};
+
diff --git a/community/rlwrap/ChangeLog b/community/rlwrap/ChangeLog
new file mode 100644
index 000000000..c28dd3ee0
--- /dev/null
+++ b/community/rlwrap/ChangeLog
@@ -0,0 +1,5 @@
+2008-03-21 partition <heniekk@gmail.com>
+* Updated to 0.30
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/rlwrap/PKGBUILD b/community/rlwrap/PKGBUILD
new file mode 100644
index 000000000..590bbe886
--- /dev/null
+++ b/community/rlwrap/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 16714 2010-05-06 11:51:51Z mherych $
+# Maintainer : wizzomafizzo <wizzomafizzo@gmail.com>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Benjamin Andresen <benny AT klapmuetz DOT org>
+# Contributor: Douglas Thrift <douglas@douglasthrift.net>
+
+pkgname=rlwrap
+pkgver=0.37
+pkgrel=1
+pkgdesc="A 'readline wrapper'"
+arch=('i686' 'x86_64')
+url="http://utopia.knoware.nl/~hlub/uck/rlwrap/"
+license=('GPL')
+depends=('readline')
+source=(http://utopia.knoware.nl/~hlub/uck/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('04cd6e2c257eb5a86b297f2ebf91dbbf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/rocksndiamonds/PKGBUILD b/community/rocksndiamonds/PKGBUILD
new file mode 100644
index 000000000..6258e1065
--- /dev/null
+++ b/community/rocksndiamonds/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 25476 2010-09-05 11:20:27Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# contributor: Jacek Poplawski <jacekpoplawski@gmail.com>
+
+pkgname=rocksndiamonds
+pkgver=3.3.0.1
+pkgrel=1
+pkgdesc="game similiar to Boulderdash with lots of levels"
+arch=(i686 x86_64)
+url="http://www.artsoft.org/rocksndiamonds/"
+license=('GPL')
+depends=('sdl' 'sdl_image' 'sdl_mixer' 'sdl_net' 'smpeg' 'rocksndiamonds-data')
+makedepends=('unzip' 'p7zip')
+options=(force)
+source=(http://www.artsoft.org/RELEASES/unix/rocksndiamonds/rocksndiamonds-$pkgver.tar.gz)
+md5sums=('813ced99d54f89db7c593c518d197d18')
+
+build() {
+ cd $srcdir
+
+ # main
+ cd $srcdir/rocksndiamonds-$pkgver
+ make clean
+ make RO_GAME_DIR=/usr/share/rocksndiamonds RW_GAME_DIR=/usr/share/rocksndiamonds || return 1
+
+ install -d $pkgdir/usr/bin && \
+ install -d $pkgdir/usr/share/man/man1 && \
+ cp $srcdir/rocksndiamonds-$pkgver/rocksndiamonds $pkgdir/usr/bin/rocksndiamonds && \
+ cp $srcdir/rocksndiamonds-$pkgver/rocksndiamonds.1 $pkgdir/usr/share/man/man1
+}
diff --git a/community/root/PKGBUILD b/community/root/PKGBUILD
new file mode 100644
index 000000000..a234d710d
--- /dev/null
+++ b/community/root/PKGBUILD
@@ -0,0 +1,79 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Sebastian Voecking <voeck@web.de>
+
+pkgname=root
+pkgver=5.28.00b
+pkgrel=1
+pkgdesc='C++ data analysis framework and interpreter from CERN.'
+arch=('i686' 'x86_64')
+url='http://root.cern.ch'
+license=('LGPL2.1')
+# TODO: add gcc-fortran to optdepends after figuring out what to describe it for
+depends=('avahi' 'desktop-file-utils' 'ftgl' 'giflib' 'glew' 'graphviz' 'gsl' 'libldap' 'libmysqlclient'
+ 'libxft' 'postgresql-libs' 'python2' 'unixodbc' 'shared-mime-info' 'xmlrpc-c' 'xorg-fonts-75dpi' 'mesa' 'gcc-fortran')
+makedepends=('fftw')
+install='root.install'
+source=("ftp://root.cern.ch/root/root_v${pkgver}.source.tar.gz"
+ 'root.sh'
+ 'rootd'
+ 'root.desktop'
+ 'root.xml')
+md5sums=('ee7e6339de8fe99b0f9c9fe1a5692fe8'
+ '0e883ad44f99da9bc7c23bc102800b62'
+ 'efd06bfa230cc2194b38e0c8939e72af'
+ 'ac61b17395d75a2705fefa2ef841a6bf'
+ 'e2cf69b204192b5889ceb5b4dedc66f7')
+
+build() {
+ cd ${pkgname}
+
+ if [ ${CARCH} == 'i686' ]; then
+ TARGET=linux;
+ else
+ TARGET=linuxx8664gcc;
+ fi
+
+ # python2 switch
+ find . -type f -exec sed -i -e 's/python -O/python2 -O/g' -e 's/python -c/python2 -c/g' {} \;
+ sed -i 's/python 2/python2 2/g' configure
+
+ ./configure \
+ ${TARGET} \
+ --prefix=/usr \
+ --disable-builtin-glew \
+ --disable-builtin-freetype \
+ --disable-builtin-ftgl \
+ --disable-builtin-pcre \
+ --disable-builtin-zlib \
+ --enable-gdml \
+ --enable-gsl-shared \
+ --enable-minuit2 \
+ --enable-soversion \
+ --enable-roofit \
+ --enable-python \
+ --with-python-incdir=/usr/include/python2.7 \
+ --with-python-libdir=/usr/lib
+ #--disable-krb5
+ # disable krb5 because of compile error
+
+ # move from aur
+ #--disable-builtin-afterimage \
+
+ #--with-python-incdir=/usr/include/python2.7/Python.h \
+ #--with-python-libdir=/usr/lib/libpython2.7.so
+
+ make
+}
+
+package() {
+ cd ${pkgname}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D ${srcdir}/root.sh ${pkgdir}/etc/profile.d/root.sh
+ install -D ${srcdir}/rootd ${pkgdir}/etc/rc.d/rootd
+ install -D -m644 ${srcdir}/root.desktop ${pkgdir}/usr/share/applications/root.desktop
+ install -D -m644 ${srcdir}/root.xml ${pkgdir}/usr/share/mime/packages/root.xml
+
+ rm -rf ${pkgdir}/etc/root/daemons
+}
diff --git a/community/root/root.desktop b/community/root/root.desktop
new file mode 100644
index 000000000..ca382111c
--- /dev/null
+++ b/community/root/root.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Exec=root
+Terminal=true
+Name=ROOT
+Name[de]=ROOT
+Comment=An object-oriented data analysis framework
+Comment[de]=Ein objektorientiertes Framework zur Datenanalyse
+StartupNotify=true
+MimeType=application/x-root;text/x-c++src
+Categories=Science;Development;Application;
diff --git a/community/root/root.install b/community/root/root.install
new file mode 100644
index 000000000..457af7314
--- /dev/null
+++ b/community/root/root.install
@@ -0,0 +1,17 @@
+post_install() {
+ if ! [ `grep '/usr/lib/root' etc/ld.so.conf` ]; then
+ echo "/usr/lib/root" >> etc/ld.so.conf
+ sbin/ldconfig -r .
+ fi
+
+ update-desktop-database >/dev/null
+
+ update-mime-database /usr/share/mime >/dev/null
+}
+
+pre_remove() {
+ cat etc/ld.so.conf | grep -v '/usr/lib/root' >/tmp/.pacroot
+ mv /tmp/.pacroot etc/ld.so.conf
+ chmod 644 etc/ld.so.conf
+ sbin/ldconfig -r .
+}
diff --git a/community/root/root.sh b/community/root/root.sh
new file mode 100644
index 000000000..685e6036b
--- /dev/null
+++ b/community/root/root.sh
@@ -0,0 +1,5 @@
+if [ $PYTHONPATH ]; then
+ export PYTHONPATH=$PYTHONPATH:/usr/lib/root;
+else
+ export PYTHONPATH=/usr/lib/root;
+fi
diff --git a/community/root/root.xml b/community/root/root.xml
new file mode 100644
index 000000000..af8dd69c5
--- /dev/null
+++ b/community/root/root.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-root">
+ <comment>ROOT file</comment>
+ <comment xml:lang="de">ROOT-Datei</comment>
+ <glob pattern="*.root"/>
+ <magic priority="80">
+ <match value="root" type="string" offset="0:64"/>
+ </magic>
+ </mime-type>
+</mime-info>
diff --git a/community/root/rootd b/community/root/rootd
new file mode 100755
index 000000000..fb2c3388c
--- /dev/null
+++ b/community/root/rootd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/rootd`
+case "$1" in
+ start)
+ stat_busy "Starting ROOT file server daemon"
+ [ -z "$PID" ] && /usr/bin/rootd >>/var/log/root.log 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/rootd`
+ echo $PID >/var/run/rootd.pid
+ add_daemon rootd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ROOT file server daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon rootd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/rote/PKGBUILD b/community/rote/PKGBUILD
new file mode 100644
index 000000000..d0043e679
--- /dev/null
+++ b/community/rote/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 21784 2010-07-17 10:23:37Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=rote
+pkgver=0.2.8
+pkgrel=2
+pkgdesc="terminal emulation library"
+arch=('i686' 'x86_64')
+url="http://rote.sourceforge.net/"
+license=('GPL')
+depends=(ncurses)
+makedepends=()
+source=(http://downloads.sourceforge.net/sourceforge/rote/rote-$pkgver.tar.gz)
+md5sums=('9e5901267d9ed239343f55a54d76e48e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ install -D -m0644 roteprivate.h $pkgdir/usr/include/rote/roteprivate.h
+}
diff --git a/community/roxterm/PKGBUILD b/community/roxterm/PKGBUILD
new file mode 100644
index 000000000..95406a443
--- /dev/null
+++ b/community/roxterm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 42205 2011-03-15 16:59:11Z ttopper $
+# Maintainer: Thorsten Töpper <atsutane-tu@freethoughts.de>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=roxterm
+pkgver=1.21.4
+pkgrel=1
+pkgdesc="Tabbed, VTE-based terminal emulator"
+arch=('i686' 'x86_64')
+url="http://roxterm.sourceforge.net/"
+license=('GPL3')
+depends=('libglade' 'dbus-glib' 'vte' 'hicolor-icon-theme' 'dbus' 'dbus-core' 'glib2')
+makedepends=('docbook-xsl' 'xmlto' 'po4a')
+install=roxterm.install
+source=(http://downloads.sourceforge.net/roxterm/roxterm-$pkgver.tar.gz)
+md5sums=('a3ac0c34ce5ae82063ff4b4b518e07c1')
+sha1sums=('0667ec61ef7ba30e6602faec80959e59e75104f0')
+
+build() {
+ cd "${srcdir}/roxterm-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/roxterm-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/community/roxterm/roxterm.install b/community/roxterm/roxterm.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/community/roxterm/roxterm.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/rpc2/PKGBUILD b/community/rpc2/PKGBUILD
new file mode 100644
index 000000000..4719cdbfb
--- /dev/null
+++ b/community/rpc2/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 21975 2010-07-19 13:44:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=rpc2
+pkgver=2.10
+pkgrel=2
+pkgdesc="Remote procedure call package for IP/UDP"
+arch=(i686 x86_64)
+url="http://www.coda.cs.cmu.edu"
+options=('!libtool')
+license=("LGPL")
+depends=('lwp' 'readline')
+source=(http://www.coda.cs.cmu.edu/pub/rpc2/src/rpc2-$pkgver.tar.gz)
+md5sums=('545066e67d95325840a79d163098096b')
+
+build() {
+ cd $srcdir/rpc2-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/rsnapshot/ChangeLog b/community/rsnapshot/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/rsnapshot/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/rsnapshot/PKGBUILD b/community/rsnapshot/PKGBUILD
new file mode 100644
index 000000000..21cdc3ba6
--- /dev/null
+++ b/community/rsnapshot/PKGBUILD
@@ -0,0 +1,23 @@
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Thorsten Tasch <tht@thorstentasch.de>
+# Contributor: JJDaNiMoTh <jjdanimoth@gmail.com>
+pkgname=rsnapshot
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="A remote filesystem snapshot utility"
+arch=('i686' 'x86_64')
+url="http://www.rsnapshot.org"
+license=('GPL')
+depends=('perl' 'rsync' 'openssh')
+backup=('etc/rsnapshot.conf')
+source=(http://www.rsnapshot.org/downloads/$pkgname-$pkgver.tar.gz rsnapshot)
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man || return 1
+ sed -i 's:/usr/bin/pod2man:/usr/bin/perlbin/core/pod2man:' Makefile
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ mv "$pkgdir"/etc/rsnapshot.conf.default "$pkgdir"/etc/rsnapshot.conf
+ install -Dm644 ${srcdir}/rsnapshot ${pkgdir}/etc/logrotate.d/rsnapshot
+}
+md5sums=('588f92995dcf60a6ea6df8d94a017e7e' '4cd16eaa51d58a652cffde945985e91c')
diff --git a/community/rsnapshot/rsnapshot b/community/rsnapshot/rsnapshot
new file mode 100644
index 000000000..190b1f512
--- /dev/null
+++ b/community/rsnapshot/rsnapshot
@@ -0,0 +1,4 @@
+/var/log/rsnapshot {
+ copytruncate
+ missingok
+}
diff --git a/community/rss-glx/PKGBUILD b/community/rss-glx/PKGBUILD
new file mode 100644
index 000000000..84479622c
--- /dev/null
+++ b/community/rss-glx/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 20029 2010-07-01 19:03:57Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Corrado 'bardo' Primier <corrado.primier@mail.polimi.it>
+# Contributor: Tate "Tatey" Johnson <tatey86@tpg.com.au>
+
+pkgname=rss-glx
+pkgver=0.9.1
+pkgrel=5
+pkgdesc="The Really Slick Screensavers port to GLX"
+arch=('i686' 'x86_64')
+url="http://rss-glx.sourceforge.net/"
+license=('GPL')
+depends=('desktop-file-utils' 'freealut' 'glew' 'imagemagick')
+optdepends=('xscreensaver: xscreensaver integration')
+install=rss-glx.install
+options=('!libtool')
+source=(http://downloads.sourceforge.net/rss-glx/${pkgname}_${pkgver}.tar.bz2
+ rss-glx-desktops.tar.bz2)
+md5sums=('a772bd143cd8d141edf4d9eff9860ab3'
+ '4211215c9a4918b0dff30a7000647dd9')
+
+build() {
+ cd ${srcdir}/${pkgname}_${pkgver}
+
+ [ "$CARCH" = "x86_64" ] && (sed -i -e 's|@LIBS@|@LIBS@ -fopenmp|g' src/Makefile.in)
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --program-transform-name='s/plasma/plasma_rss/' \
+ --with-configdir=/usr/share/xscreensaver/config \
+ --with-kdessconfigdir=/usr/share/applnk/System/ScreenSavers \
+ --enable-shared=yes --enable-static=no
+ make CFLAGS="$CFLAGS -I/usr/include/ImageMagick"
+ make DESTDIR=${pkgdir} install
+
+#FS#18300
+ install -d ${pkgdir}/usr/lib/xscreensaver/
+ list=$(ls ${pkgdir}/usr/bin --ignore rss-glx_install.pl)
+ for i in $list; do
+ ln -s "/usr/bin/$i" "$pkgdir/usr/lib/xscreensaver/"
+ done
+
+ install -d ${pkgdir}/usr/share/applications/screensavers
+ install -m644 ${srcdir}/${pkgname}-desktops/*.desktop ${pkgdir}/usr/share/applications/screensavers
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/rss-glx/rss-glx-desktops.tar.bz2 b/community/rss-glx/rss-glx-desktops.tar.bz2
new file mode 100644
index 000000000..940fd5277
--- /dev/null
+++ b/community/rss-glx/rss-glx-desktops.tar.bz2
Binary files differ
diff --git a/community/rss-glx/rss-glx.install b/community/rss-glx/rss-glx.install
new file mode 100644
index 000000000..3ffe7103c
--- /dev/null
+++ b/community/rss-glx/rss-glx.install
@@ -0,0 +1,13 @@
+post_install() {
+ cat << 'EOM'
+ --> If you want to integrate the RSS screen savers with xscreensaver
+ --> for your user, then install the xscreensaver package and launch
+ --> the command "rss-glx_install.pl"
+EOM
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
diff --git a/community/rsyslog/PKGBUILD b/community/rsyslog/PKGBUILD
new file mode 100644
index 000000000..3dea5e5e4
--- /dev/null
+++ b/community/rsyslog/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 42328 2011-03-16 11:14:22Z jelle $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=rsyslog
+pkgver=5.6.4
+pkgrel=2
+pkgdesc="An enhanced multi-threaded syslogd with a focus on security and reliability"
+url="http://www.rsyslog.com/"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('zlib')
+makedepends=('postgresql-libs>=8.4.1' 'libmysqlclient' 'net-snmp' 'gnutls')
+optdepends=('postgresql-libs: PostgreSQL Database Support'
+ 'libmysqlclient: MySQL Database Support'
+ 'net-snmp'
+ 'gnutls')
+backup=('etc/rsyslog.conf' \
+ 'etc/logrotate.d/rsyslog'
+ 'etc/conf.d/rsyslog')
+options=('strip' 'zipman' '!libtool')
+source=("http://www.rsyslog.com/files/download/rsyslog/rsyslog-$pkgver.tar.gz"
+ 'rsyslog'
+ 'rsyslog.logrotate'
+ 'rsyslog.conf.d')
+md5sums=('0530db8ca71575ef23a027e9d514aa7e'
+ 'a18bbcbb6ebdaa13a6ec6d9f3d9eb2da'
+ '8065db4bef3061a4f000ba58779f6829'
+ '1a0cd4530dd5d1439456d5ae230574d9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-mysql \
+ --enable-pgsql \
+ --enable-mail \
+ --enable-imfile \
+ --enable-imtemplate \
+ --enable-snmp \
+ --enable-gnutls \
+ --enable-inet
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # Install Daemons and Configuration Files
+ install -D -m755 ${srcdir}/${pkgname} ${pkgdir}/etc/rc.d/${pkgname}d
+ install -D -m644 ${pkgname}.conf ${pkgdir}/etc/${pkgname}.conf
+ install -D -m644 $srcdir/${pkgname}.logrotate ${pkgdir}/etc/logrotate.d/${pkgname}
+ install -D -m644 ${srcdir}/${pkgname}.conf.d ${pkgdir}/etc/conf.d/${pkgname}
+}
diff --git a/community/rsyslog/rsyslog b/community/rsyslog/rsyslog
new file mode 100755
index 000000000..ee0145418
--- /dev/null
+++ b/community/rsyslog/rsyslog
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/rsyslog
+
+PID=`pidof -o %PPID /usr/sbin/rsyslogd`
+case "$1" in
+ start)
+ stat_busy "Starting RSyslogd"
+ [ -z "$PID" ] && /usr/sbin/rsyslogd $RSYSLOGD_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon rsyslogd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping RSyslogd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/rsyslogd.pid
+ rm -f /var/rsyslogd.persist
+ rm_daemon rsyslogd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/rsyslog/rsyslog.conf.d b/community/rsyslog/rsyslog.conf.d
new file mode 100644
index 000000000..e39f8c3b9
--- /dev/null
+++ b/community/rsyslog/rsyslog.conf.d
@@ -0,0 +1,6 @@
+#
+# Parameters to be passed to rsyslogd
+# This should almost certainly include at least the current compatability
+# level, e.g. -c4
+#
+RSYSLOGD_ARGS="-c4"
diff --git a/community/rsyslog/rsyslog.logrotate b/community/rsyslog/rsyslog.logrotate
new file mode 100644
index 000000000..76306c560
--- /dev/null
+++ b/community/rsyslog/rsyslog.logrotate
@@ -0,0 +1,7 @@
+/var/log/messages /var/log/secure /var/log/maillog /var/log/cron /var/log/spooler /var/log/boot.log {
+ missingok
+ sharedscripts
+ postrotate
+ /usr/bin/killall -HUP /usr/sbin/rsyslogd
+ endscript
+}
diff --git a/community/rtorrent/PKGBUILD b/community/rtorrent/PKGBUILD
new file mode 100644
index 000000000..e106bd12c
--- /dev/null
+++ b/community/rtorrent/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daenyth <Daenyth [at] gmail [dot] com>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: sh__
+
+pkgname=rtorrent
+pkgver=0.8.6
+pkgrel=3
+pkgdesc="Ncurses BitTorrent client based on libTorrent"
+arch=('i686' 'x86_64')
+url="http://libtorrent.rakshasa.no"
+license=('GPL')
+depends=('libtorrent=0.12.6' 'curl>=7.14.3' 'xmlrpc-c>=1858')
+source=("http://libtorrent.rakshasa.no/downloads/$pkgname-$pkgver.tar.gz" \
+ ncurses58.patch)
+options=(!strip)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np0 -i $srcdir/ncurses58.patch
+
+ CXXFLAGS="$CXXFLAGS -g -fno-strict-aliasing" \
+ ./configure --prefix=/usr --enable-debug --with-xmlrpc-c
+ make
+ make DESTDIR="$pkgdir" install
+}
+
+
+# vim:set ts=2 sw=2 et:
+md5sums=('b804c45c01c40312926bcea6b55bb084'
+ 'b8fcd9b6d3385a85ff31de6f32e60e7d')
+md5sums=('b804c45c01c40312926bcea6b55bb084'
+ '1a525adddc0424c23ed9a4aa31c0164a')
diff --git a/community/rtorrent/ncurses58.patch b/community/rtorrent/ncurses58.patch
new file mode 100644
index 000000000..0f742daad
--- /dev/null
+++ b/community/rtorrent/ncurses58.patch
@@ -0,0 +1,10 @@
+--- src/display/canvas.h 2011-03-01 14:56:25.000000000 +0800
++++ src/display/canvasfix.h 2011-03-01 14:56:10.000000000 +0800
+@@ -48,7 +48,7 @@ class Canvas {
+ public:
+ typedef std::vector<Attributes> attributes_list;
+
+- Canvas(int x = 0, int y = 0, int width = 0, int height = 0) :
++ Canvas(int x = 0, int y = 0, int width = 1, int height = 1) :
+ m_window(newwin(height, width, y, x)) {}
+ ~Canvas() { delwin(m_window); } \ No newline at end of file
diff --git a/community/ruby-atk/PKGBUILD b/community/ruby-atk/PKGBUILD
new file mode 100644
index 000000000..14e59001f
--- /dev/null
+++ b/community/ruby-atk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 39907 2011-02-18 21:05:47Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
+# Contributor: kritoke <kritoke@nospam.gmail.com>
+
+pkgname=ruby-atk
+pkgver=0.90.7
+pkgrel=1
+pkgdesc="Ruby bindings for atk."
+arch=('i686' 'x86_64')
+url="http://ruby-gnome2.sourceforge.jp"
+license=('LGPL')
+depends=('ruby-glib2')
+makedepends=('ruby-glib2' 'atk' 'ruby-pkgconfig')
+source=(http://downloads.sourceforge.net/ruby-gnome2/ruby-gtk2-$pkgver.tar.gz)
+md5sums=('82ebea3ebb6fa51ffc5ec631b31d519a')
+
+build() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ ruby extconf.rb atk --topdir=$pkgdir
+ make
+}
+package() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-cairo/PKGBUILD b/community/ruby-cairo/PKGBUILD
new file mode 100644
index 000000000..4c07e6ee6
--- /dev/null
+++ b/community/ruby-cairo/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=ruby-cairo
+_pkgname=rcairo
+pkgver=1.10.0
+pkgrel=2
+pkgdesc="Ruby bindings for cairo"
+arch=('i686' 'x86_64')
+url="http://cairographics.org/rcairo/"
+license=('GPL')
+depends=('ruby' 'cairo>=1.2.0')
+makedepends=('ruby-pkgconfig')
+source=(http://cairographics.org/releases/$_pkgname-$pkgver.tar.gz)
+md5sums=('4fe76f1069d0d1ccfdf7848e3e928d9f')
+
+build() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ ruby extconf.rb
+ make
+}
+package() {
+ cd "$srcdir/$_pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-gdkpixbuf2/PKGBUILD b/community/ruby-gdkpixbuf2/PKGBUILD
new file mode 100644
index 000000000..5381edbe9
--- /dev/null
+++ b/community/ruby-gdkpixbuf2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 39912 2011-02-18 21:06:33Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
+# Contributor: kritoke <kritoke@nospam.gmail.com>
+
+pkgname=ruby-gdkpixbuf2
+pkgver=0.90.7
+pkgrel=1
+pkgdesc="Ruby bindings for gdkpixbuf2."
+arch=('i686' 'x86_64')
+url="http://ruby-gnome2.sourceforge.jp"
+license=('LGPL')
+depends=('ruby-glib2' 'gtk2')
+makedepends=('ruby-glib2' 'ruby-pkgconfig')
+source=(http://downloads.sourceforge.net/ruby-gnome2/ruby-gtk2-$pkgver.tar.gz)
+md5sums=('82ebea3ebb6fa51ffc5ec631b31d519a')
+
+build() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ ruby extconf.rb gdk_pixbuf2 --topdir=$pkgdir
+ make
+}
+package() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ mkdir -p $pkgdir/usr/lib/pkgconfig
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-gio2/PKGBUILD b/community/ruby-gio2/PKGBUILD
new file mode 100644
index 000000000..fcd704b39
--- /dev/null
+++ b/community/ruby-gio2/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 31087 2010-10-27 01:37:14Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+
+pkgname=ruby-gio2
+pkgver=0.90.7
+pkgrel=1
+pkgdesc="Ruby bindings for gio2."
+arch=('i686' 'x86_64')
+url="http://ruby-gnome2.sourceforge.jp"
+license=('LGPL')
+depends=('ruby-glib2')
+makedepends=('ruby-pkgconfig')
+source=(http://downloads.sourceforge.net/ruby-gnome2/ruby-gtk2-$pkgver.tar.gz)
+md5sums=('82ebea3ebb6fa51ffc5ec631b31d519a')
+
+build() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ ruby extconf.rb gio2 --topdir=$pkgdir
+ make
+}
+package() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-glib2/PKGBUILD b/community/ruby-glib2/PKGBUILD
new file mode 100644
index 000000000..bf9424418
--- /dev/null
+++ b/community/ruby-glib2/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 39922 2011-02-18 21:07:32Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
+# Contributor: kritoke <kritoke@nospam.gmail.com>
+
+pkgname=ruby-glib2
+pkgver=0.90.7
+pkgrel=1
+pkgdesc="Ruby bindings for glib2."
+arch=('i686' 'x86_64')
+url="http://ruby-gnome2.sourceforge.jp"
+license=('LGPL')
+depends=('ruby')
+makedepends=('ruby-pkgconfig')
+source=(http://downloads.sourceforge.net/ruby-gnome2/ruby-gtk2-$pkgver.tar.gz)
+md5sums=('82ebea3ebb6fa51ffc5ec631b31d519a')
+
+build() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ ruby extconf.rb glib2 --topdir=$pkgdir
+ make
+}
+package() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-gtk2/PKGBUILD b/community/ruby-gtk2/PKGBUILD
new file mode 100644
index 000000000..c46eff5b5
--- /dev/null
+++ b/community/ruby-gtk2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 40204 2011-02-21 19:23:54Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
+# Contributor: kritoke <kritoke@nospam.gmail.com>
+
+pkgname=ruby-gtk2
+pkgver=0.90.7
+pkgrel=2
+pkgdesc="Ruby bindings for gtk2."
+arch=('i686' 'x86_64')
+url="http://ruby-gnome2.sourceforge.jp"
+license=('LGPL')
+depends=('ruby-glib2' 'ruby-pango' 'ruby-atk' 'ruby-gdkpixbuf2')
+makedepends=('ruby-pkgconfig' 'ruby-cairo')
+source=(http://downloads.sourceforge.net/ruby-gnome2/ruby-gtk2-$pkgver.tar.gz
+ 'mkmf-gnome2.patch')
+md5sums=('82ebea3ebb6fa51ffc5ec631b31d519a'
+ '93dac3212aa8fccfc83b2cd518750cf7')
+
+build() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+
+ # Apply ruby-cairo fixes
+ patch -Np1 -i ../mkmf-gnome2.patch glib2/lib/mkmf-gnome2.rb
+
+ ruby extconf.rb gtk2 --topdir=$pkgdir
+ make
+}
+package() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-gtk2/mkmf-gnome2.patch b/community/ruby-gtk2/mkmf-gnome2.patch
new file mode 100644
index 000000000..a03ab9e4c
--- /dev/null
+++ b/community/ruby-gtk2/mkmf-gnome2.patch
@@ -0,0 +1,19 @@
+*** mkmf-gnome2.rb.orig 2011-02-21 12:41:16.563334382 -0600
+--- mkmf-gnome2.rb 2011-02-21 12:41:37.610001048 -0600
+***************
+*** 364,370 ****
+ rescue LoadError
+ end
+ end
+! return false if rcairo_source_dir.nil?
+
+ if /mingw|cygwin|mswin32/ =~ RUBY_PLATFORM
+ options = {}
+--- 364,370 ----
+ rescue LoadError
+ end
+ end
+! return false if rcairo_source_dir.nil? && !(PKGConfig.have_package('cairo') && have_header('rb_cairo.h'))
+
+ if /mingw|cygwin|mswin32/ =~ RUBY_PLATFORM
+ options = {}
diff --git a/community/ruby-pango/PKGBUILD b/community/ruby-pango/PKGBUILD
new file mode 100644
index 000000000..68eab5ac8
--- /dev/null
+++ b/community/ruby-pango/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 40199 2011-02-21 19:17:14Z bfanella $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: Bjorn Lindeijer <bjorn@lindeijer.nl>
+# Contributor: kritoke <kritoke@nospam.gmail.com>
+
+pkgname=ruby-pango
+pkgver=0.90.7
+pkgrel=2
+pkgdesc="Ruby bindings for pango."
+arch=('i686' 'x86_64')
+url="http://ruby-gnome2.sourceforge.jp"
+license=('LGPL')
+depends=('ruby-glib2' 'ruby-cairo')
+makedepends=('ruby-glib2' 'pango' 'ruby-pkgconfig' 'ruby-cairo')
+source=(http://downloads.sourceforge.net/ruby-gnome2/ruby-gtk2-$pkgver.tar.gz
+ 'mkmf-gnome2.patch')
+md5sums=('82ebea3ebb6fa51ffc5ec631b31d519a'
+ '93dac3212aa8fccfc83b2cd518750cf7')
+build() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+
+ # Apply ruby-cairo fixes
+ patch -Np1 -i ../mkmf-gnome2.patch glib2/lib/mkmf-gnome2.rb
+
+ ruby extconf.rb pango --topdir=$pkgdir
+ make
+}
+package() {
+ cd "$srcdir/ruby-gtk2-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ruby-pango/mkmf-gnome2.patch b/community/ruby-pango/mkmf-gnome2.patch
new file mode 100644
index 000000000..a03ab9e4c
--- /dev/null
+++ b/community/ruby-pango/mkmf-gnome2.patch
@@ -0,0 +1,19 @@
+*** mkmf-gnome2.rb.orig 2011-02-21 12:41:16.563334382 -0600
+--- mkmf-gnome2.rb 2011-02-21 12:41:37.610001048 -0600
+***************
+*** 364,370 ****
+ rescue LoadError
+ end
+ end
+! return false if rcairo_source_dir.nil?
+
+ if /mingw|cygwin|mswin32/ =~ RUBY_PLATFORM
+ options = {}
+--- 364,370 ----
+ rescue LoadError
+ end
+ end
+! return false if rcairo_source_dir.nil? && !(PKGConfig.have_package('cairo') && have_header('rb_cairo.h'))
+
+ if /mingw|cygwin|mswin32/ =~ RUBY_PLATFORM
+ options = {}
diff --git a/community/rusxmms/PKGBUILD b/community/rusxmms/PKGBUILD
new file mode 100644
index 000000000..8321e201b
--- /dev/null
+++ b/community/rusxmms/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 14511 2010-04-04 18:33:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=rusxmms
+pkgver=1.2.11_csa43
+_xmmsver=1.2.11
+_csaver=csa43
+pkgrel=2
+pkgdesc="XMMS with librcc"
+arch=(i686 x86_64)
+license=(GPL)
+url="http://rusxmms.sourceforge.net/"
+depends=(libsm libxxf86vm zlib gtk libvorbis esd alsa-lib libgl librcc librcd openssl)
+makedepends=(mesa patch)
+provides=(xmms)
+conflicts=(xmms)
+options=('!libtool' '!distcc')
+source=(http://xmms.org/files/1.2.x/xmms-${_xmmsver}.tar.bz2 \
+ http://dside.dyndns.org/files/rusxmms/RusXMMS2-${_csaver}.tar.bz2)
+md5sums=('f3e6dbaf0b3f571a532ab575656be506'
+ '8f387dd2e5c95f8730979e09687b6e02')
+
+build() {
+ cd ${startdir}/src/xmms-${_xmmsver}
+
+if true; then
+ ln -s $srcdir/RusXMMS2 $srcdir/xmms-${_xmmsver}/RusXMMS2
+ (cd $srcdir/xmms-${_xmmsver}/RusXMMS2 && ./apply.sh) || return 1
+
+ mv $srcdir/RusXMMS2/source/* $srcdir/xmms-${_xmmsver}/libxmms/ && \
+# sed -i 's#charset.c charset.h#charset.c charset.h rcc.h rcc.c rcc_lang.h#g' $srcdir/xmms-${_xmmsver}/libxmms/Makefile.am && \
+ aclocal && automake && autoconf || return 1
+ (cd libxmms && aclocal && automake && autoconf) || return 1
+
+ case $CARCH in
+ x86_64)
+ ./configure --prefix=/usr --disable-mikmod --disable-simd
+ ;;
+ i686)
+ ./configure --prefix=/usr --disable-mikmod --enable-simd --disable-vorbis --disable-vorbistest
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+fi
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+ mkdir -p ${startdir}/pkg/usr/share/{applications,pixmaps}
+ install -m 644 xmms/xmms.desktop ${startdir}/pkg/usr/share/applications && \
+ install -m 644 xmms/xmms_mini.xpm ${startdir}/pkg/usr/share/pixmaps/xmms.xpm || return 1
+ # don't want wmxmms
+ rm -rf $startdir/pkg/usr/bin/wmxmms $startdir/pkg/usr/share/xmms && \
+ rm -f $startdir/pkg/usr/man/man1/{gnomexmms.1,wmxmms.1}
+}
diff --git a/community/rutilt/PKGBUILD b/community/rutilt/PKGBUILD
new file mode 100644
index 000000000..1e8f78738
--- /dev/null
+++ b/community/rutilt/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 1149 2009-08-12 22:31:02Z ibiru $
+# Maintainer: Giovanni Scafora <linuxmania@gmail.com>
+# Contributor: Jesus Lazaro Plaza <jesuslazaro84@gmail.com>
+
+pkgname=rutilt
+pkgver=0.18
+pkgrel=2
+pkgdesc="Gtk2 utility that helps you configure your wireless network devices"
+arch=('i686' 'x86_64')
+url="http://bonrom.cbbknet.com"
+license=('GPL2')
+depends=('gtk2' 'xdg-utils')
+makedepends=('wireless_tools')
+install=rutilt.install
+source=(http://bonrom.cbbknet.com/files/RutilTv0.18.tar.gz)
+md5sums=('c745af9fbadd3a843b6f8273b6eb71bd')
+
+build() {
+ cd ${startdir}/src/RutilTv${pkgver}
+ ./configure.sh --prefix=/usr
+ make || return 1
+ make DESTDIR="$startdir/pkg" install
+}
diff --git a/community/rutilt/rutilt.install b/community/rutilt/rutilt.install
new file mode 100644
index 000000000..b8397905a
--- /dev/null
+++ b/community/rutilt/rutilt.install
@@ -0,0 +1,24 @@
+# arg 1: the new package version
+post_install() {
+which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+
+cat << EOF
+
+==> Remember to install "dhclient" or customize the "set_ip.sh" to match
+==> your needs, don't forget that it is executed with root privileges.
+==> Note: rutilt 0.16 doesn't read the old configs, so you have to
+==> recreate/rename it.
+
+EOF
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community/sage-mathematics/PKGBUILD b/community/sage-mathematics/PKGBUILD
new file mode 100644
index 000000000..2a321f237
--- /dev/null
+++ b/community/sage-mathematics/PKGBUILD
@@ -0,0 +1,92 @@
+# 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.6.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')
+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, in the AUR')
+options=('!makeflags')
+install="${pkgname}.install"
+source=("http://sage.math.washington.edu/home/release/sage-${pkgver}/sage-${pkgver}.tar"
+ 'SAGE-notebook.desktop')
+md5sums=('0dc2c9e9cc593685bb039085900ddfeb'
+ 'bcd01b7863794431f8f208ed96fd108d')
+
+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
+
+ # 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
+}
+
+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), and no need to compile them, put them into aur/sage-mathematics-spkgs
+ rm -f ${pkgdir}/opt/sage/spkg/base/*spkg
+ rm -f ${pkgdir}/opt/sage/spkg/standard/*spkg
+}
diff --git a/community/sage-mathematics/SAGE-notebook.desktop b/community/sage-mathematics/SAGE-notebook.desktop
new file mode 100644
index 000000000..87496030b
--- /dev/null
+++ b/community/sage-mathematics/SAGE-notebook.desktop
@@ -0,0 +1,20 @@
+[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
+Path=/opt/sage/notebook
+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/sage-mathematics/sage-mathematics.install b/community/sage-mathematics/sage-mathematics.install
new file mode 100644
index 000000000..f5c16308e
--- /dev/null
+++ b/community/sage-mathematics/sage-mathematics.install
@@ -0,0 +1,47 @@
+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
+
+ # 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
+ /| /|
+ \| \|
+ ___ __ _ __ _ ___
+/ __|/ _` |/ _` |/ _ \
+\__ \ (_| | (_| | __/
+|___/\__,_|\__, |\___|
+ |___/
+'
+
+}
+
+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
+
+ # clean up left overs
+ rm -rf /opt/sage
+}
diff --git a/community/sakura/PKGBUILD b/community/sakura/PKGBUILD
new file mode 100644
index 000000000..d9fc4a723
--- /dev/null
+++ b/community/sakura/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 40517 2011-02-25 08:55:44Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Dmitry N. Shilov <stormblast@land.ru>
+
+pkgname=sakura
+pkgver=2.4.0
+pkgrel=1
+pkgdesc="A terminal emulator based on GTK and VTE"
+arch=('i686' 'x86_64')
+url="http://pleyades.net/david/sakura.php"
+license=('GPL')
+depends=('vte' 'libxft' 'desktop-file-utils')
+makedepends=('cmake')
+source=(http://pleyades.net/david/projects/$pkgname/$pkgname-$pkgver.tar.bz2)
+install=sakura.install
+sha1sums=('417508be2551ff82e6bad8868832ef634479a432')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+
+ # Set default font size a bit smaller
+ sed -i 's|#define DEFAULT_FONT "Bitstream Vera Sans Mono 14"|#define DEFAULT_FONT "Bitstream Vera Sans Mono 10"|g' src/sakura.c
+
+ # build & install
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE .
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ # extract the keybindings from the installed documentation, rest is only relevant during build time
+ awk '/^Keybindings/{f="'${pkgdir}'/usr/share/doc/'${pkgname}'/KEYBINDINGS"} f{print > f} /^END/' \
+ ${pkgdir}/usr/share/doc/${pkgname}/INSTALL
+ rm ${pkgdir}/usr/share/doc/${pkgname}/INSTALL
+}
+
diff --git a/community/sakura/sakura.install b/community/sakura/sakura.install
new file mode 100644
index 000000000..7463b6e76
--- /dev/null
+++ b/community/sakura/sakura.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
diff --git a/community/sarg/PKGBUILD b/community/sarg/PKGBUILD
new file mode 100644
index 000000000..e2541d597
--- /dev/null
+++ b/community/sarg/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 32752 2010-11-17 21:07:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: JJDaNiMoTh <jjdanimoth.aur@gmail.com>
+# Contributor: Tino Reichardt <milky-archlinux@mcmilk.de>
+
+pkgname=sarg
+pkgver=2.3.1
+pkgrel=3
+pkgdesc="Squid Analysis Report Generator"
+arch=('i686' 'x86_64')
+url="http://sarg.sourceforge.net"
+license=('GPL')
+depends=('gd' 'libldap')
+backup=('etc/sarg/css.tpl'
+ 'etc/sarg/exclude_codes'
+ 'etc/sarg/sarg.conf'
+ 'etc/sarg/user_limit_block')
+source=(http://downloads.sourceforge.net/sourceforge/sarg/$pkgname-$pkgver.tar.gz)
+md5sums=('bf637b8a820b81e2c55e815934151b4d')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+# ./configure --prefix="/usr" \
+# --enable-sargphp="/usr/share/sarg/sarg-php" \
+# --sysconfdir="/etc/sarg" \
+# --mandir="/usr/share/man/man1"
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONFDIR=/etc/sarg -DMANDIR=/usr/share/man/man1 .
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/share/sarg $pkgdir/etc
+ make DESTDIR="$pkgdir" install
+ cp -a sarg-php ${pkgdir}/usr/share/sarg/
+ # silence namcap warnings
+ chmod -R o+r ${pkgdir}{/etc,/usr/share/sarg}
+ chmod o+x ${pkgdir}/usr/share/sarg/sarg-php
+ chmod -R o+x ${pkgdir}/usr/share/sarg/sarg-php/locale
+}
diff --git a/community/sauerbraten/PKGBUILD b/community/sauerbraten/PKGBUILD
new file mode 100644
index 000000000..2a845e88d
--- /dev/null
+++ b/community/sauerbraten/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 27049 2010-09-16 22:45:06Z lcarlier $
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Christoph Siegenthaler <csi@gmx.ch>
+# Contributor: Jesse Young <jesse@eon.jlyo.org>
+
+pkgbase=sauerbraten
+pkgname=('sauerbraten' 'sauerbraten-data')
+pkgver=2010_07_28_justice_edition
+pkgrel=2
+pkgdesc="Improved version of the Cube engine"
+arch=('i686' 'x86_64')
+url="http://www.sauerbraten.org/"
+license=('ZLIB')
+depends=('sdl_mixer' 'sdl_image' 'libgl')
+makedepends=('mesa')
+install=sauerbraten.install
+source=(http://downloads.sourceforge.net/$pkgname/${pkgname}_${pkgver}_linux.tar.bz2
+ sauerbraten-client
+ sauerbraten-server
+ sauerbraten.confd
+ sauerbraten.rcd
+ sauerbraten.desktop
+ sauerbraten.png
+ sauerbraten.install
+ license.txt)
+md5sums=('0947cb37b628873063270be1fcce27f6'
+ 'ac66ef9e80d6fc1b4b047df1c36c07c0'
+ '4a42c314d01ccdc4c76fad38d18c7434'
+ '8e26aeba1ef178c24e22723d3c48d7e1'
+ 'e0a2e0679c34b39623964ee68e6fae1e'
+ '5b528424ed46e05124420975d99370e5'
+ '3e602f421f7342cf8c3ed16314523d6f'
+ '2f7b423f49491359ff776a91414db4d8'
+ 'cf46cd0148f03b7477f7c54aec865abe')
+
+build() {
+ cd ${srcdir}/$pkgname/src
+
+ make
+
+ # remove cvs directories
+ find ${srcdir}/$pkgname -type d -name CVS -exec rm -rf '{}' \; 2> /dev/null
+}
+
+package_sauerbraten() {
+ depends=('sdl_mixer' 'sdl_image' 'libgl' 'sauerbraten-data')
+
+ cd ${srcdir}/$pkgname/src
+
+ make DESTDIR="${pkgdir}" install
+
+ cd ..
+ install -D bin_unix/native_client ${pkgdir}/opt/sauerbraten/bin/linux_client
+ install -D bin_unix/native_server ${pkgdir}/opt/sauerbraten/bin/linux_server
+
+ install -Dm755 ${srcdir}/sauerbraten-client ${pkgdir}/usr/bin/sauerbraten-client
+ install -Dm755 ${srcdir}/sauerbraten-server ${pkgdir}/usr/sbin/sauerbraten-server
+ install -Dm644 ${srcdir}/sauerbraten.confd ${pkgdir}/etc/conf.d/sauerbraten
+ install -Dm755 ${srcdir}/sauerbraten.rcd ${pkgdir}/etc/rc.d/sauerbraten
+ install -Dm644 ${srcdir}/sauerbraten.desktop ${pkgdir}/usr/share/applications/sauerbraten.desktop
+ install -Dm644 ${srcdir}/sauerbraten.png ${pkgdir}/usr/share/pixmaps/sauerbraten.png
+ install -Dm644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/sauerbraten/license.txt
+}
+
+package_sauerbraten-data() {
+ pkgdesc="Improved version of the Cube engine - datas files"
+ arch=('any')
+ depends=()
+
+ cd ${srcdir}/sauerbraten
+
+ install -d ${pkgdir}/opt/sauerbraten
+ cp -r data ${pkgdir}/opt/sauerbraten
+ cp -r packages ${pkgdir}/opt/sauerbraten
+
+ # make namcap happy
+ chmod -R go+rx ${pkgdir}/opt/sauerbraten/packages/argh
+
+ install -Dm644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}-data/license.txt
+}
diff --git a/community/sauerbraten/license.txt b/community/sauerbraten/license.txt
new file mode 100644
index 000000000..f38792c76
--- /dev/null
+++ b/community/sauerbraten/license.txt
@@ -0,0 +1,34 @@
+LICENSE
+=======
+
+Sauerbraten game engine source code, any release.
+
+Copyright (C) 2001-2006 Wouter van Oortmerssen.
+
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+
+LICENSE NOTES
+=============
+The license covers the source code found in the "src" directory of this
+archive, the included enet network library which sauerbraten uses is covered by
+an MIT-style license, which is however compatible with the above license for all
+practical purposes.
+
+Game media included in the game (maps, textures, sounds, models etc.)
+are NOT covered by this license, and may have individual copyrights and
+distribution restrictions (see individual readmes).
diff --git a/community/sauerbraten/sauerbraten-client b/community/sauerbraten/sauerbraten-client
new file mode 100755
index 000000000..8a9b354f3
--- /dev/null
+++ b/community/sauerbraten/sauerbraten-client
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+WIDTH=1024
+HEIGHT=768
+[ -f /etc/conf.d/sauerbraten ] && . /etc/conf.d/sauerbraten
+
+cd /opt/sauerbraten
+if [ -f /usr/bin/aoss ]; then
+ aoss bin/linux_client -w$WIDTH -h$HEIGHT -q${HOME}/.config/sauerbraten -r
+else
+ bin/linux_client -w$WIDTH -h$HEIGHT -q${HOME}/.config/sauerbraten -r
+fi
+
+
diff --git a/community/sauerbraten/sauerbraten-server b/community/sauerbraten/sauerbraten-server
new file mode 100755
index 000000000..b4c79cb7f
--- /dev/null
+++ b/community/sauerbraten/sauerbraten-server
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+SAUER_USER=nobody
+LOGDIR=/var/log/sauerbraten
+[ -f /etc/conf.d/sauerbraten ] && . /etc/conf.d/sauerbraten
+
+cd /opt/sauerbraten
+
+if [ "$(id -u)" == "0" ]; then
+ if [ ! -d "$LOGDIR" ]; then
+ mkdir -p "$LOGDIR"
+ chown "$SAUER_USER:log" "$LOGDIR"
+ fi
+
+ sudo -Hu "$SAUER_USER" \
+ nohup /opt/sauerbraten/bin/linux_server \
+ >> "$LOGDIR/main.log" \
+ 2>> "$LOGDIR/error.log" \
+ < /dev/null &
+else
+ bin/linux_server
+fi
diff --git a/community/sauerbraten/sauerbraten.confd b/community/sauerbraten/sauerbraten.confd
new file mode 100644
index 000000000..93cd32de7
--- /dev/null
+++ b/community/sauerbraten/sauerbraten.confd
@@ -0,0 +1,7 @@
+# Client options
+WIDTH=1024
+HEIGHT=768
+
+# Server options
+SAUER_USER=sauerbraten
+LOGDIR=/var/log/sauerbraten
diff --git a/community/sauerbraten/sauerbraten.desktop b/community/sauerbraten/sauerbraten.desktop
new file mode 100644
index 000000000..a038acfcc
--- /dev/null
+++ b/community/sauerbraten/sauerbraten.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Exec=sauerbraten-client %u
+Icon=/usr/share/pixmaps/sauerbraten.png
+Type=Application
+Categories=Application;Game;ActionGame;
+Name=Sauerbraten
+GenericName=Cube 2
+Comment=multi/single-player first person shooter
+Comment[fr]=Jeu de tir subjectif multi/simple joueur
+Terminal=false
+StartupNotify=false
diff --git a/community/sauerbraten/sauerbraten.install b/community/sauerbraten/sauerbraten.install
new file mode 100644
index 000000000..2ee7689ab
--- /dev/null
+++ b/community/sauerbraten/sauerbraten.install
@@ -0,0 +1,22 @@
+# arg 1: the new package version
+post_install() {
+ getent group sauerbraten >/dev/null 2>&1 || groupadd -r sauerbraten
+ if getent passwd sauerbraten > /dev/null 2>&1; then
+ usr/sbin/usermod -d /var/spool/sauerbraten -c 'Sauerbraten' -s /sbin/nologin sauerbraten > /dev/null 2>&1
+ else
+ usr/sbin/useradd -c 'Sauerbraten' -r -g sauerbraten -d /opt/sauerbraten -s /sbin/nologin sauerbraten
+ fi
+ passwd -l sauerbraten > /dev/null
+}
+
+# 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() {
+ getent passwd sauerbraten >/dev/null 2>&1 && userdel sauerbraten
+}
+
diff --git a/community/sauerbraten/sauerbraten.png b/community/sauerbraten/sauerbraten.png
new file mode 100644
index 000000000..5ec7606bc
--- /dev/null
+++ b/community/sauerbraten/sauerbraten.png
Binary files differ
diff --git a/community/sauerbraten/sauerbraten.rcd b/community/sauerbraten/sauerbraten.rcd
new file mode 100644
index 000000000..fb95aae16
--- /dev/null
+++ b/community/sauerbraten/sauerbraten.rcd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting sauerbraten-server"
+ [ ! -f /var/run/daemons/sauerbraten ] && /usr/sbin/sauerbraten-server
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ pgrep -of "/opt/sauerbraten/bin/linux_server" > /var/run/sauerbraten.pid
+ add_daemon sauerbraten
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping sauerbraten-server"
+ [ -f /var/run/sauerbraten.pid ] && kill `cat /var/run/sauerbraten.pid`
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon sauerbraten
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/sawfish/PKGBUILD b/community/sawfish/PKGBUILD
new file mode 100644
index 000000000..be9c48cb1
--- /dev/null
+++ b/community/sawfish/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 42090 2011-03-13 17:55:35Z shusmann $
+# Maintainer: stefan-husmann@t-online.de
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=sawfish
+pkgver=1.8.0
+pkgrel=1
+pkgdesc="An extensible window manager using a Lisp-based scripting language"
+arch=('i686' 'x86_64')
+url="http://sawfish.wikia.com/wiki/Main_Page"
+license=('GPL')
+depends=('rep-gtk' 'libsm' 'hicolor-icon-theme')
+install=${pkgname}.install
+source=(http://download.tuxfamily.org/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('522beb58635166c17eee3e47e6ebc5a39c22122a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 sawfish-session.desktop \
+ "${pkgdir}/etc/X11/sessions/${pkgname}.desktop"
+}
diff --git a/community/sawfish/sawfish.install b/community/sawfish/sawfish.install
new file mode 100644
index 000000000..340fe8596
--- /dev/null
+++ b/community/sawfish/sawfish.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+file=sawfish.info
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/scantailor/PKGBUILD b/community/scantailor/PKGBUILD
new file mode 100644
index 000000000..34d6976de
--- /dev/null
+++ b/community/scantailor/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 33966 2010-11-29 21:42:36Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Denis Terskov aka neurosurgeon <terskov.den@gmail.com>
+
+pkgname=scantailor
+pkgver=0.9.9.2
+pkgrel=1
+pkgdesc="Interactive post-processing tool for scanned pages"
+arch=(i686 x86_64)
+url="http://scantailor.sourceforge.net"
+license="GPL"
+depends=('qt')
+makedepends=('cmake boost')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('0944b12c936019fe12269c7a356d60d0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/schroot/PKGBUILD b/community/schroot/PKGBUILD
new file mode 100644
index 000000000..117a2ac93
--- /dev/null
+++ b/community/schroot/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 43438 2011-03-26 08:44:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Wagner <Andreas dot Wagner at em dot uni-frankfurt dot de>
+
+pkgname=schroot
+pkgver=1.4.21
+pkgrel=1
+pkgdesc="Allows users to execute shell commands under different root filesystems. \
+ (Successor to dchroot)."
+url="http://packages.qa.debian.org/s/schroot.html"
+license=('GPL3')
+depends=('pam' 'lockdev' 'boost>=1.41' 'e2fsprogs')
+optdepends=('btrfs-progs-unstable' 'lvm2')
+arch=('i686' 'x86_64')
+conflicts=('dchroot')
+replaces=('dchroot')
+provides=('schroot' 'sbuild' 'dchroot')
+backup=('etc/schroot/schroot.conf'
+ 'etc/schroot/script-arch32'
+ 'etc/schroot/mount-arch32'
+ 'etc/schroot/copyfiles-arch32')
+options=(!libtool)
+source=("http://ftp.debian.org/debian/pool/main/s/$pkgname/${pkgname}_${pkgver}.orig.tar.bz2"
+ 'script-arch32'
+ 'copyfiles-arch32'
+ 'mount-arch32')
+md5sums=('fbbb65213e26a0a3e2e1bac04a24d20d'
+ '8e86445e188129232e1782d978dfc967'
+ 'd4558d5691fbdaa46ce669e8f327133b'
+ 'f0d5d5b5e34a860f6f90b5628c680f46')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib --sysconfdir=/etc --localstatedir=/var \
+ --enable-dchroot --enable-lvm-snapshot --enable-btrfs-snapshot \
+ BTRFS=/sbin/btrfs \
+ BTRFSCTL=/sbin/btrfsctl \
+ LVCREATE=/sbin/lvcreate \
+ LVREMOVE=/sbin/lvremove
+# --enable-csbuild
+
+ make
+ make DESTDIR=$pkgdir install
+ install -m 644 ${srcdir}/script-arch32 ${pkgdir}/etc/schroot
+ install -m 644 ${srcdir}/mount-arch32 ${pkgdir}/etc/schroot
+ install -m 644 ${srcdir}/copyfiles-arch32 ${pkgdir}/etc/schroot
+ cat >> $pkgdir/etc/schroot/schroot.conf << EOF
+
+[Arch32]
+description=Arch32
+type=directory
+directory=/opt/arch32
+priority=1
+#users=username
+groups=users
+root-groups=root
+script-config=script-arch32
+personality=linux32
+aliases=32,default
+
+EOF
+}
diff --git a/community/schroot/copyfiles-arch32 b/community/schroot/copyfiles-arch32
new file mode 100644
index 000000000..7dd32b7d9
--- /dev/null
+++ b/community/schroot/copyfiles-arch32
@@ -0,0 +1,8 @@
+/etc/group
+/etc/hosts
+/etc/passwd
+/etc/resolv.conf
+/etc/rc.conf
+/etc/localtime
+/etc/locale.gen
+/etc/profile.d/locale.sh \ No newline at end of file
diff --git a/community/schroot/mount-arch32 b/community/schroot/mount-arch32
new file mode 100644
index 000000000..075d6e451
--- /dev/null
+++ b/community/schroot/mount-arch32
@@ -0,0 +1,12 @@
+# mount.defaults: static file system information for chroots.
+# Note that the mount point will be prefixed by the chroot path
+# (CHROOT_PATH)
+#
+# <file system> <mount point> <type> <options> <dump> <pass>
+proc /proc proc defaults 0 0
+/dev /dev none rw,bind 0 0
+#/dev/pts /dev/pts none rw,bind 0 0
+tmpfs /dev/shm tmpfs defaults 0 0
+/sys /sys none rw,bind 0 0
+/tmp /tmp none rw,bind 0 0
+/home /home none rw,bind 0 0
diff --git a/community/schroot/script-arch32 b/community/schroot/script-arch32
new file mode 100644
index 000000000..fb87b4822
--- /dev/null
+++ b/community/schroot/script-arch32
@@ -0,0 +1,15 @@
+# Default settings for chroot setup and exec scripts.
+# See schroot-script-config(5) for further details.
+
+# Filesystems to mount inside the chroot.
+FSTAB="/etc/schroot/mount-arch32"
+
+# Files to copy from the host system into the chroot.
+COPYFILES="/etc/schroot/copyfiles-arch32"
+
+# Is sbuild installed?
+if [ -x /usr/bin/sbuild ]; then
+ SBUILD="true"
+else
+ SBUILD="false"
+fi
diff --git a/community/scilab/PKGBUILD b/community/scilab/PKGBUILD
new file mode 100644
index 000000000..563d44f1d
--- /dev/null
+++ b/community/scilab/PKGBUILD
@@ -0,0 +1,82 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Simon Lipp <sloonz+aur@gmail.com>
+# Paulo Matias
+
+pkgname=scilab
+pkgver=5.3.1
+pkgrel=3
+pkgdesc='Scilab is a scientific software package for numerical computations.'
+arch=('i686' 'x86_64')
+url='http://www.scilab.org/'
+license=('custom:CeCILL')
+depends=('libxml2' 'pcre' 'lapack' 'java-batik' 'java-flexdock>=0.5.2'
+ 'jogl' 'jeuclid-core' 'fftw' 'libmatio' 'bash' 'tk' 'jrosetta'
+ 'ocaml' 'javahelp2' 'jgraphx=1_4_1_0' 'jlatexmath>=0.9.4'
+ 'jlatexmath-fop>=0.9.4' 'junit' 'java-skinlf' 'xalan-java'
+ 'java-commons-logging' 'hdf5')
+makedepends=('apache-ant' 'antlr2')
+[[ $CARCH == x86_64 ]] && \
+ source=("http://www.scilab.org/download/${pkgver}/${pkgname}-${pkgver}-src.tar.gz" \
+ "http://www.scilab.org/download/5.3.1/prerequirements-scilab-5.3.1-x86_64-src.tar.gz" \
+ 'scilab.desktop' 'classpath.xml')
+
+[[ $CARCH == i686 ]] && \
+ source=("http://www.scilab.org/download/${pkgver}/${pkgname}-${pkgver}-src.tar.gz" \
+ "http://www.scilab.org/download/5.3.1/prerequirements-scilab-5.3.1-src.tar.gz" \
+ 'scilab.desktop' 'classpath.xml')
+
+[[ $CARCH == x86_64 ]] && md5sums=('0002653e670efabb8faf9e6403367134'
+ '7c9bda373d8dfd75a4f8227a08ced588'
+ 'ad6286f324891fe8b86c60e4012a36b7'
+ 'efe6e8d06968ba5e1a3e5ab540a79667')
+[[ $CARCH == i686 ]] && md5sums=('0002653e670efabb8faf9e6403367134'
+ '7545859e4078d3b77436b7f322967f26'
+ 'ad6286f324891fe8b86c60e4012a36b7'
+ 'efe6e8d06968ba5e1a3e5ab540a79667')
+
+options=('!libtool' '!emptydirs')
+
+build() {
+ # we do not want thigs we already have in Arch Linux
+ cd ${pkgname}-${pkgver}/thirdparty
+ rm avalon* batik* commons-* flexdock* gluegen-rt* jeuclid* jgraphx* \
+ jhall* jlatexmath* jogl* jrosetta* junit* looks-2.1.1.jar xalan* \
+ xml* skinlf*
+ # fix undefined references (scilab needs to fix its cyclic dependencies)
+ LDFLAGS=${LDFLAGS/ -Wl,--as-needed}
+ # begin configuring and building
+ cd ..
+
+ ./configure \
+ --prefix=/usr \
+ --enable-build-localization \
+ --without-pvm \
+ --with-matio \
+ --without-umfpack \
+ --with-fftw \
+ --with-hdf5 \
+ --with-gfortran # Needed for 64 bits, don't hurt for 32 bits
+
+ make all doc
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install install-html
+
+ install -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -Dm644 ${srcdir}/scilab-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}
+ install -Dm644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+ sed -i 's#/jni##' ${pkgdir}/usr/share/scilab/etc/librarypath.xml
+ install -Dm644 $srcdir/classpath.xml $pkgdir/usr/share/scilab/etc/classpath.xml
+ for i in jhdf5.jar fop.jar saxon.jar
+ do
+ install -Dm644 $srcdir/$pkgname-$pkgver/thirdparty/$i \
+ $pkgdir/usr/share/java/scilab/$i
+ done
+ install -Dm644 $srcdir/$pkgname-$pkgver/bin/libjhdf5.so \
+ $pkgdir/usr/lib/libjhdf5.so
+}
diff --git a/community/scilab/classpath.xml b/community/scilab/classpath.xml
new file mode 100644
index 000000000..1bd503350
--- /dev/null
+++ b/community/scilab/classpath.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE classpaths SYSTEM "../modules/jvm/xml/classpath.dtd">
+<!-- classpath.xml -->
+<!--
+ default CLASSPATH for Scilab
+
+ @author Allan CORNET
+ @author Sylvestre LEDRU
+ @date INRIA 2007/2008
+ ===================
+ Don't touch if you do not know what you are doing
+-->
+<!-- =================== -->
+<!--
+Scilab Java dependencies can be load in different ways.
+It can be:
+* startup - Load immediatly the dep when Scilab starts (default behaviour)
+* background - After Scilab engine is loaded, load the dep in the background
+* onUse - Load the deps only when needed (once)
+
+Some deps can be also disabled only for a specific mode.
+The option is "disableUnderMode" and can be:
+* STD - Normal mode
+* NW - No Window mode (ie command line but with graphics
+* API - Scilab as an API
+-->
+
+<classpaths>
+
+<!-- Mandatory on startup -->
+<path value="/usr/share/java/flexdock/flexdock.jar"/>
+<path value="/usr/share/java/jrosetta/jrosetta-API.jar" disableUnderMode="NW"/>
+<path value="/usr/share/java/jrosetta/jrosetta-engine.jar"/>
+<path value="/usr/share/java/skinlf/skinlf.jar"/>
+<path value="/usr/share/java/jgoodies-looks/looks-2.3.1.jar"/>
+<path value="/usr/share/java/commons-logging/commons-logging.jar"/>
+<path value="/usr/share/java/javahelp/jhall.jar"/>
+
+<!-- Load when needed -->
+
+<path value="/usr/share/java/jgraphx.jar" load="onUse">
+ <load on="XCos"/>
+</path>
+
+<path value="/usr/share/java/jogl/jogl.jar" load="onUse">
+ <load on="graphics"/>
+ <load on="graphic_export"/>
+ <load on="XCos"/>
+</path>
+
+<path value="/usr/share/java/jogl/gluegen-rt.jar" load="onUse">
+ <load on="graphics"/>
+ <load on="graphic_export"/>
+ <load on="XCos"/>
+</path>
+
+<!-- XCOS -->
+<path value="/usr/share/java/scilab/jhdf5.jar" load="onUse">
+ <load on="XCos"/>
+ <load on="HDF5"/>
+</path>
+
+<!-- Temp. loaded at startup -->
+<path value="$SCILAB/modules/types/jar/org.scilab.modules.types.jar"/>
+<path value="$SCILAB/modules/output_stream/jar/org.scilab.modules.output_stream.jar" load="startup"/>
+<path value="$SCILAB/modules/hdf5/jar/org.scilab.modules.hdf5.jar" load="startup"/>
+
+<path value="$SCILAB/modules/xcos/jar/org.scilab.modules.xcos.jar" load="onUse">
+ <load on="XCos"/>
+</path>
+<!-- END -->
+
+<!-- Documentation (not mandatory) -->
+<path value="/usr/share/java/jeuclid//jeuclid-core.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="graphics_mathml_textrendering"/>
+ <load on="xcos_mathml_rendering"/>
+</path>
+
+<path value="/usr/share/java/jlatexmath-fop.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+</path>
+<path value="/usr/share/java/scilab/fop.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+</path>
+<path value="/usr/share/java/scilab/saxon.jar" load="onUse">
+ <load on="documentationGeneration"/>
+</path>
+<path value="/usr/share/java/batik//batik-all.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="graphics_mathml_textrendering"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+ <load on="XCos"/>
+</path>
+<path value="/usr/share/java/batik//xml-apis-ext.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+ <load on="XCos"/>
+</path>
+
+<!-- PDF doc generation -->
+<path value="/usr/share/java/commons-io//commons-io.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="graphics_mathml_textrendering"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+ <load on="xcos"/>
+</path>
+
+<!-- PDF doc generation (dep of jeuclid) -->
+<path value="/usr/share/java/xmlgraphics-commons//xmlgraphics-commons.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="graphics_mathml_textrendering"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+ <load on="XCos"/>
+</path>
+<path value="/usr/share/java/avalon-framework//avalon-framework.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+</path>
+
+<path value="/usr/share/java//jlatexmath.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="graphics_latex_textrendering"/>
+ <load on="pdf_ps_eps_graphic_export"/>
+ <load on="XCos"/>
+</path>
+
+<!-- helptools module doc generation -->
+<path value="$SCILAB/modules/helptools/jar/org.scilab.modules.helptools.jar" load="onUse">
+ <load on="documentationGeneration"/>
+ <load on="copyAsHTMLinScinotes"/>
+</path>
+
+<!-- Mandatory on startup -->
+<path value="$SCILAB/modules/jvm/jar/org.scilab.modules.jvm.jar"/>
+<path value="$SCILAB/modules/commons/jar/org.scilab.modules.commons.jar"/>
+
+<!-- Console GUI dep -->
+<path value="$SCILAB/modules/shell/jar/org.scilab.modules.shell.jar" disableUnderMode="NW"/>
+<path value="$SCILAB/modules/history_manager/jar/org.scilab.modules.history_manager.jar" disableUnderMode="NW"/>
+<path value="$SCILAB/modules/completion/jar/org.scilab.modules.completion.jar" disableUnderMode="NW"/>
+
+<path value="$SCILAB/modules/console/jar/org.scilab.modules.console.jar"/>
+
+<path value="$SCILAB/modules/localization/jar/org.scilab.modules.localization.jar"/>
+<path value="$SCILAB/modules/action_binding/jar/org.scilab.modules.action_binding.jar"/>
+
+<path value="$SCILAB/modules/gui/jar/org.scilab.modules.gui.jar"/>
+<path value="$SCILAB/modules/gui/etc"/> <!-- Scilab Flexdock theme -->
+<path value="$SCILAB/modules/gui/images/icons/"/> <!-- Scilab Flexdock icons -->
+
+<path value="$SCILAB/modules/renderer/jar/org.scilab.modules.renderer.jar"/>
+
+<path value="$SCILAB/modules/graphic_export/jar/org.scilab.modules.graphic_export.jar"/>
+
+<path value="$SCILAB/modules/core/jar/org.scilab.modules.core.jar"/>
+
+<!-- scinotes module -->
+<path value="$SCILAB/modules/scinotes/jar/org.scilab.modules.scinotes.jar" load="onUse">
+ <load on="SciNotes"/>
+</path>
+
+<!-- TO DO Load only when we need -->
+<path value="$SCILAB/modules/ui_data/jar/org.scilab.modules.ui_data.jar"/>
+
+<!-- TO DO Load only when we need -->
+<path value="$SCILAB/modules/graph/jar/org.scilab.modules.graph.jar"/>
+
+<path value="$SCILAB/modules/history_browser/jar/org.scilab.modules.history_browser.jar" disableUnderMode="NW"/>
+
+</classpaths>
diff --git a/community/scilab/java.patch b/community/scilab/java.patch
new file mode 100644
index 000000000..d7cd42a75
--- /dev/null
+++ b/community/scilab/java.patch
@@ -0,0 +1,217 @@
+diff -aur scilab-5.1.1.orig/configure scilab-5.1.1.new/configure
+--- scilab-5.1.1.orig/configure 2009-04-14 18:28:53.000000000 +0200
++++ scilab-5.1.1.new/configure 2009-04-14 19:57:36.000000000 +0200
+@@ -29,9 +29,6 @@
+
+ fi
+
+-
+-
+-
+ # PATH needs CR
+ # Avoid depending upon Character Ranges.
+ as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+@@ -12848,7 +12845,7 @@
+ $as_echo_n "checking flexdock... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/flexdock.jar" "$jardir/libflexdock.jar" "$jardir/libflexdock-java.jar" "$jardir/flexdock*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -12921,9 +12918,9 @@
+ $as_echo_n "checking looks... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/jgoodies-looks /usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+- for jar in "$jardir/looks.jar" "$jardir/liblooks.jar" "$jardir/liblooks-java.jar" "$jardir/looks*.jar"; do
++ for jar in "$jardir/jgoodies-looks.jar" "$jardir/liblooks.jar" "$jardir/liblooks-java.jar" "$jardir/looks*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+ # echo "protected $jar"
+ # jar_resolved=`ls $jar 2>/dev/null`
+@@ -13070,7 +13067,7 @@
+ $as_echo_n "checking skinlf... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/skinlf.jar" "$jardir/libskinlf.jar" "$jardir/libskinlf-java.jar" "$jardir/skinlf*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -13143,7 +13140,7 @@
+ $as_echo_n "checking jogl... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/jogl.jar" "$jardir/libjogl.jar" "$jardir/libjogl-java.jar" "$jardir/jogl*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -13216,7 +13213,7 @@
+ $as_echo_n "checking jhall... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/jhall.jar" "$jardir/libjhall.jar" "$jardir/libjhall-java.jar" "$jardir/jhall*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -13363,7 +13360,7 @@
+ $as_echo_n "checking gluegen-rt... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/gluegen-rt.jar" "$jardir/libgluegen-rt.jar" "$jardir/libgluegen-rt-java.jar" "$jardir/gluegen-rt*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -13436,7 +13433,7 @@
+ $as_echo_n "checking jrosetta-API... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/jrosetta-API.jar" "$jardir/libjrosetta-API.jar" "$jardir/libjrosetta-API-java.jar" "$jardir/jrosetta-API*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -13509,7 +13506,7 @@
+ $as_echo_n "checking jrosetta-engine... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/jrosetta-engine.jar" "$jardir/libjrosetta-engine.jar" "$jardir/libjrosetta-engine-java.jar" "$jardir/jrosetta-engine*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -13582,7 +13579,7 @@
+ $as_echo_n "checking commons-logging... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/commons-logging.jar" "$jardir/libcommons-logging.jar" "$jardir/libcommons-logging-java.jar" "$jardir/commons-logging*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27293,7 +27290,7 @@
+ $as_echo_n "checking batik-all... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/batik /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/batik-all.jar" "$jardir/libbatik-all.jar" "$jardir/libbatik-all-java.jar" "$jardir/batik-all*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27366,7 +27363,7 @@
+ $as_echo_n "checking batik... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/batik.jar" "$jardir/libbatik.jar" "$jardir/libbatik-java.jar" "$jardir/batik*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27441,7 +27438,7 @@
+ $as_echo_n "checking saxon... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/saxon.jar" "$jardir/libsaxon.jar" "$jardir/libsaxon-java.jar" "$jardir/saxon*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27514,7 +27511,7 @@
+ $as_echo_n "checking fop... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/fop.jar" "$jardir/libfop.jar" "$jardir/libfop-java.jar" "$jardir/fop*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27587,7 +27584,7 @@
+ $as_echo_n "checking jeuclid-core... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/jeuclid/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/jeuclid-core.jar" "$jardir/libjeuclid-core.jar" "$jardir/libjeuclid-core-java.jar" "$jardir/jeuclid-core*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27660,7 +27657,7 @@
+ $as_echo_n "checking commons-io... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/commons-io.jar" "$jardir/libcommons-io.jar" "$jardir/libcommons-io-java.jar" "$jardir/commons-io*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27733,7 +27730,7 @@
+ $as_echo_n "checking xmlgraphics-commons... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/xmlgraphics-commons.jar" "$jardir/libxmlgraphics-commons.jar" "$jardir/libxmlgraphics-commons-java.jar" "$jardir/xmlgraphics-commons*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27806,7 +27803,7 @@
+ $as_echo_n "checking xml-apis-ext... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/) "
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/xml-apis-ext.jar" "$jardir/libxml-apis-ext.jar" "$jardir/libxml-apis-ext-java.jar" "$jardir/xml-apis-ext*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+@@ -27880,7 +27877,7 @@
+ $as_echo_n "checking avalon-framework... " >&6; }
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/avalon-framework.jar" "$jardir/libavalon-framework.jar" "$jardir/libavalon-framework-java.jar" "$jardir/avalon-framework*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+Nur in scilab-5.1.1.new: configure.orig.
+Nur in scilab-5.1.1.new: configure.rej.
+diff -aur scilab-5.1.1.orig/m4/java.m4 scilab-5.1.1.new/m4/java.m4
+--- scilab-5.1.1.orig/m4/java.m4 2009-04-14 18:28:53.000000000 +0200
++++ scilab-5.1.1.new/m4/java.m4 2009-04-14 18:29:57.000000000 +0200
+@@ -745,7 +745,7 @@
+ AC_MSG_CHECKING($1)
+ found_jar=no
+ saved_ac_java_classpath=$ac_java_classpath
+- DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java"
++ DEFAULT_JAR_DIR="/usr/share/java/ /usr/lib/java/ /usr/share/java /usr/share/java/jar /opt/java/lib /usr/local/java /usr/local/java/jar /usr/local/share/java /usr/local/share/java/jar /usr/local/lib/java $(ls -d /usr/share/java/*/)"
+ for jardir in "`pwd`/thirdparty" "`pwd`/jar" $DEFAULT_JAR_DIR "$_user_libdir"; do
+ for jar in "$jardir/$1.jar" "$jardir/lib$1.jar" "$jardir/lib$1-java.jar" "$jardir/$1*.jar"; do
+ # jar=`echo $jar|sed -e 's/ /\\ /'`
+Nur in scilab-5.1.1.new/m4: java.m4.orig.
+diff -aur scilab-5.1.1.orig/modules/core/src/c/TerminateCore.c scilab-5.1.1.new/modules/core/src/c/TerminateCore.c
+--- scilab-5.1.1.orig/modules/core/src/c/TerminateCore.c 2009-04-14 18:28:54.000000000 +0200
++++ scilab-5.1.1.new/modules/core/src/c/TerminateCore.c 2009-04-14 19:01:51.000000000 +0200
+@@ -9,8 +9,6 @@
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+-#include <libxml/parser.h>
+-
+ #include "TerminateCore.h"
+ /*--------------------------------------------------------------------------*/
+ #include "realmain.h" /* Get_no_startup_flag */
+@@ -56,11 +54,6 @@
+ /* Close all scilab's files */
+ TerminateScilabFilesList();
+
+- /*
+- * Cleanup function for the XML library.
+- */
+- xmlCleanupParser();
+-
+ /** clean tmpfiles **/
+ C2F(tmpdirc)();
+
diff --git a/community/scilab/scilab.desktop b/community/scilab/scilab.desktop
new file mode 100644
index 000000000..0a363808b
--- /dev/null
+++ b/community/scilab/scilab.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Scilab
+Comment=A scientific software package for numerical computations
+Icon=scilab
+Exec=scilab
+Encoding=UTF-8
+Terminal=false
+Type=Application
+Categories=Application;Science;Math
diff --git a/community/scite/PKGBUILD b/community/scite/PKGBUILD
new file mode 100644
index 000000000..9d87ac108
--- /dev/null
+++ b/community/scite/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Thomas S Hatch <thatch45@gmail.com>
+# Contributor: Corrado 'bardo' Primier <corrado.primier@mail.polimi.it>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=scite
+pkgver=2.24
+pkgrel=1
+pkgdesc='A generally useful editor with facilities for building and running programs.'
+arch=('i686' 'x86_64')
+url='http://www.scintilla.org/SciTE.html'
+license=('custom:scite')
+depends=('desktop-file-utils' 'gtk2')
+backup=(usr/share/scite/SciTEGlobal.properties)
+install=scite.install
+source=("http://downloads.sourceforge.net/sourceforge/scintilla/${pkgname}${pkgver/\./}.tgz"
+ 'SciTE.desktop'
+ 'makefile.patch')
+md5sums=('f180cc1045e245dc0e55d3a764bd5968'
+ '48526532ef677982a4b156ae90f25b6f'
+ '87005d4c7262a1a698cde0628dc7e2a2')
+
+
+build() {
+ sed "s/CXXTFLAGS=-DNDEBUG -Os $(CXXBASEFLAGS)/CXXTFLAGS=-DNDEBUG ${CXXFLAGS} $(CXXBASEFLAGS)/" -i scite/gtk/makefile
+
+ sed "s/CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -pedantic -DGTK -DSCI_LEXER \$(INCLUDEDIRS)/CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -pedantic ${CXXFLAGS} -DGTK -DSCI_LEXER \$(INCLUDEDIRS)/" -i scintilla/gtk/makefile
+
+ sed "s/CXXFLAGS=-DNDEBUG -Os \$(CXXBASEFLAGS) \$(THREADFLAGS)/CXXFLAGS=-DNDEBUG ${CXXFLAGS} \$(CXXBASEFLAGS) \$(THREADFLAGS)/" -i scintilla/gtk/makefile
+
+ cd scintilla/gtk
+ make
+ install -Dm644 ../License.txt \
+ ${pkgdir}/usr/share/licenses/scintilla/LICENSE
+
+ cd ${srcdir}/${pkgname}/gtk
+ make
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 ../License.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ install -D -m644 ${srcdir}/SciTE.desktop \
+ ${pkgdir}/usr/share/applications/
+
+ ln -sf SciTE ${pkgdir}/usr/bin/scite
+}
diff --git a/community/scite/SciTE.desktop b/community/scite/SciTE.desktop
new file mode 100644
index 000000000..59e635de1
--- /dev/null
+++ b/community/scite/SciTE.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Version=1.0
+Name=SciTE Text Editor
+Name[es]=Editor de textos SciTE
+Name[fr]=Éditeur de texte SciTE
+Name[it]=Editor di testi SciTE
+Comment=Edit your source files
+Comment[es]=Edita especializado para programación
+Comment[fr]=Éditer des fichiers sources
+Comment[it]=Editor orientato alla programmazione
+GenericName=Text Editor
+Type=Application
+Exec=SciTE %F
+Icon=Sci48M
+Terminal=false
+StartupNotify=true
+Categories=TextEditor;Development;GTK;Utility;
+MimeType=text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-c++;text/x-chdr;text/x-csrc;text/x-c;text/x-objc;text/x-java;text/x-pascal;text/x-perl;text/x-python;text/x-php;text/x-php-source;text/x-tcl;text/x-tex;application/x-shellscript;text/xml;text/html;text/css;
diff --git a/community/scite/makefile.patch b/community/scite/makefile.patch
new file mode 100644
index 000000000..5d745e158
--- /dev/null
+++ b/community/scite/makefile.patch
@@ -0,0 +1,31 @@
+--- scite/gtk/makefile.orig 2010-07-01 02:33:19.166295432 -0500
++++ scite/gtk/makefile 2010-07-01 02:34:37.140037787 -0500
+@@ -46,7 +46,7 @@
+ ifdef DEBUG
+ CXXTFLAGS=-DDEBUG -g $(CXXBASEFLAGS)
+ else
+-CXXTFLAGS=-DNDEBUG -Os $(CXXBASEFLAGS)
++CXXTFLAGS=-DNDEBUG #ARCHCXXFLAGS# $(CXXBASEFLAGS)
+ endif
+
+ ifndef NO_LUA
+--- scintilla/gtk/makefile.orig 2010-07-01 02:35:33.288735024 -0500
++++ scintilla/gtk/makefile 2010-07-01 02:36:35.406694846 -0500
+@@ -29,7 +29,7 @@
+ vpath %.cxx ../src
+
+ INCLUDEDIRS=-I ../include -I ../src
+-CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -pedantic -DGTK -DSCI_LEXER $(INCLUDEDIRS)
++CXXBASEFLAGS=-Wall -Wno-missing-braces -Wno-char-subscripts -pedantic #ARCHCXXFLAGS# -DGTK -DSCI_LEXER $(INCLUDEDIRS)
+
+ ifdef NOTHREADS
+ THREADFLAGS=-DG_THREADS_IMPL_NONE
+@@ -40,7 +40,7 @@
+ ifdef DEBUG
+ CXXFLAGS=-DDEBUG -g $(CXXBASEFLAGS) $(THREADFLAGS)
+ else
+-CXXFLAGS=-DNDEBUG -Os $(CXXBASEFLAGS) $(THREADFLAGS)
++CXXFLAGS=-DNDEBUG $(CXXBASEFLAGS) $(THREADFLAGS)
+ endif
+
+ CONFIGFLAGS:=$(shell pkg-config --cflags gtk+-2.0)
diff --git a/community/scite/scite.install b/community/scite/scite.install
new file mode 100644
index 000000000..49135f547
--- /dev/null
+++ b/community/scite/scite.install
@@ -0,0 +1,11 @@
+post_install() {
+ echo "Updating desktop and mime database..."
+ update-desktop-database -q
+}
+
+post_remove() {
+ echo "Updating desktop and mime database..."
+ update-desktop-database -q
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/scorched3d/PKGBUILD b/community/scorched3d/PKGBUILD
new file mode 100644
index 000000000..42e9f414d
--- /dev/null
+++ b/community/scorched3d/PKGBUILD
@@ -0,0 +1,61 @@
+# Contributor: Seppo Porspakka <sporspak@paju.oulu.fi>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=scorched3d
+pkgver=43.2a
+pkgrel=1
+pkgdesc="A 3d artillery combat game"
+arch=('i686' 'x86_64')
+url="http://www.scorched3d.co.uk/"
+license=('GPL')
+depends=('sdl_net' 'wxgtk' 'freealut>=1.0.0-3' 'libvorbis' 'mesa' 'fftw' 'libjpeg>=8' 'xdg-utils')
+makedepends=('sharutils')
+install=scorched3d.install
+source=("http://downloads.sourceforge.net/${pkgname}/Scorched3D-${pkgver}-src.tar.gz"
+ 'scorched3d.desktop'
+ 'scorched3d.png.uu'
+ 'scorched3d-42.1-gcc43.patch'
+ 'scorched3d-42.1-fixups.patch'
+ 'libpng14.patch')
+md5sums=('876de173218fd83a2b0a30255ba694fa'
+ 'b951f2150004e10fdff3e6226f1a3939'
+ '178a281333006c6a5a92919865c1d7af'
+ '053769f77a38c252eef1d967b18e93e6'
+ 'dfde556559d95bca07c4a390c60790b4'
+ 'c8c03855fd3693122fd39427fa3638c1')
+
+build() {
+ cd scorched
+
+# patch -Np1 -i ${srcdir}/scorched3d-42.1-gcc43.patch
+ patch -Np1 -i ${srcdir}/scorched3d-42.1-fixups.patch
+# patch -Np0 -i ${srcdir}/libpng14.patch
+
+ WANT_WXGTK=gtk2
+ sh autogen.sh \
+ --prefix=/usr \
+ --datadir=/usr/share/scorched3d \
+ --disable-openaltest \
+ --with-wx-config=wx-config
+
+ #sed -i 's/-lz/-lz -lalut/g' src/scorched/Makefile || return 1
+ #sed -i 's|/usr/local/lib/libwx_gtk-2.4.a||' src/scorched/Makefile || return 1
+
+ make
+}
+
+package() {
+ cd scorched
+
+ make DESTDIR=${pkgdir} install
+
+ # freedesktop stuff - png and desktop file ganked from debian
+ cd ${srcdir}
+
+ uudecode --output-file=scorched3d.png scorched3d.png.uu
+
+ install -D -m644 scorched3d.png \
+ ${pkgdir}/usr/share/icons/hicolor/48x48/apps/${pkgname}.png
+ install -D -m644 scorched3d.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/scorched3d/libpng14.patch b/community/scorched3d/libpng14.patch
new file mode 100644
index 000000000..7a5a9434c
--- /dev/null
+++ b/community/scorched3d/libpng14.patch
@@ -0,0 +1,38 @@
+--- src/common/image/ImagePng.cpp 2009-02-23 04:14:20.000000000 +0100
++++ src/common/image/ImagePng.cpp_patched 2010-01-24 22:01:04.000000000 +0100
+@@ -189,7 +189,7 @@
+ info_ptr = png_create_info_struct(png_ptr);
+ if (info_ptr == NULL)
+ {
+- png_destroy_read_struct(&png_ptr, png_infopp_NULL, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, NULL, NULL);
+ return false;
+ }
+
+@@ -200,7 +200,7 @@
+ if (setjmp(png_jmpbuf(png_ptr)))
+ {
+ /* Free all of the memory associated with the png_ptr and info_ptr */
+- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+ /* If we get here, we had a problem reading the file */
+ return false;
+ }
+@@ -258,7 +258,7 @@
+ }
+ else
+ {
+- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+
+ Logger::log(S3D::formatStringBuffer(
+ "Invalid PNG format.\n"
+@@ -272,7 +272,7 @@
+ // END NEW CODE
+
+ /* clean up after the read, and free any memory allocated - REQUIRED */
+- png_destroy_read_struct(&png_ptr, &info_ptr, png_infopp_NULL);
++ png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
+
+ /* that's it */
+ return true;
diff --git a/community/scorched3d/scorched3d-42.1-fixups.patch b/community/scorched3d/scorched3d-42.1-fixups.patch
new file mode 100644
index 000000000..36a027cb6
--- /dev/null
+++ b/community/scorched3d/scorched3d-42.1-fixups.patch
@@ -0,0 +1,58 @@
+diff -ru scorched.orig/configure-al.m4 scorched/configure-al.m4
+--- scorched.orig/configure-al.m4 2008-03-03 16:17:18.000000000 -0500
++++ scorched/configure-al.m4 2009-02-15 20:43:35.000000000 -0500
+@@ -7,25 +7,9 @@
+ [ --disable-openaltest Do not try to compile and run a test OpenAL program],
+ , enable_openaltest=yes)
+ AC_MSG_CHECKING(for OpenAL support)
+-AC_PATH_PROG(OPENAL_CONFIG, openal-config, no)
+-if test x$OPENAL_CONFIG = xno; then
+- echo "*** The openal-config script installed by OpenAL could not be found"
+- echo "*** Make sure openal-config is in your path, or set the OPENAL_CONFIG"
+- echo "*** environment variable to the full path to openal-config."
+-
+- AC_MSG_ERROR([*** Can't find the openal library. Try: http://www.openal.org/])
+-else
+-
+- if test x"$use_static_openal" = x"yes"; then
+- AL_LIBS="/usr/local/lib/libopenal.a"
+- else
+- AL_LIBS="`$OPENAL_CONFIG --libs`"
+- fi
+-
+- AL_CFLAGS="`$OPENAL_CONFIG --cflags`"
+-
+- AC_MSG_RESULT(yes)
+-fi
++AL_LIBS="-lopenal"
++AL_CFLAGS="-I/usr/include/AL"
++AC_MSG_RESULT(yes)
+
+ AC_MSG_CHECKING(for Freealut support)
+ AC_PATH_PROG(FREEALUT_CONFIG, freealut-config, no)
+diff -ru scorched.orig/configure.ac scorched/configure.ac
+--- scorched.orig/configure.ac 2008-03-03 16:17:18.000000000 -0500
++++ scorched/configure.ac 2009-02-15 20:40:30.000000000 -0500
+@@ -13,22 +13,6 @@
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
+
+-LDFLAGS="-L/usr/X11R6/lib -L/usr/X11R6"
+-CPPFLAGS="-I/usr/X11R6/include -I/usr/X11R6"
+-
+-if test `uname` == Darwin; then
+-LDFLAGS="$LDFLAGS -lmx"
+-CPPFLAGS="$CPPFLAGS -DFFTW_USE_DOUBLE -D__DARWIN__ -D__MACOSX__"
+-else
+-LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+-fi
+-
+-AC_CHECK_LIB(fridge, beer, echo "Hmm?!",[
+- echo "Warning: No beer found in fridge!";
+- echo "We highly suggest that you rectify this situation immediately."
+-])
+-
+ AC_ARG_ENABLE(serveronly,
+ [ --enable-serveronly Enable server only compilation],
+ , enable_serveronly=no,
diff --git a/community/scorched3d/scorched3d-42.1-gcc43.patch b/community/scorched3d/scorched3d-42.1-gcc43.patch
new file mode 100644
index 000000000..b235f07c5
--- /dev/null
+++ b/community/scorched3d/scorched3d-42.1-gcc43.patch
@@ -0,0 +1,24 @@
+diff -ur scorched.old/src/common/common/main.h scorched/src/common/common/main.h
+--- scorched.old/src/common/common/main.h 2009-02-18 20:06:22.000000000 +0200
++++ scorched/src/common/common/main.h 2009-02-18 20:07:18.000000000 +0200
+@@ -40,7 +40,7 @@
+ void _no_storage()
+ {
+ printf("Failed to allocate memory!!");
+- std::exit(1);
++ exit(1);
+ }
+
+ void run_main(int argc, char *argv[], OptionsParameters &params)
+diff -ur scorched.old/src/common/porting/windows.h scorched/src/common/porting/windows.h
+--- scorched.old/src/common/porting/windows.h 2009-02-18 20:06:22.000000000 +0200
++++ scorched/src/common/porting/windows.h 2009-02-18 20:06:46.000000000 +0200
+@@ -20,7 +20,7 @@
+ typedef unsigned short WORD;
+ typedef unsigned char BYTE;
+
+-typedef int HWND;
++// typedef int HWND;
+ typedef void * HINSTANCE;
+ typedef int WPARAM;
+ typedef int LPARAM;
diff --git a/community/scorched3d/scorched3d.desktop b/community/scorched3d/scorched3d.desktop
new file mode 100644
index 000000000..b18d86581
--- /dev/null
+++ b/community/scorched3d/scorched3d.desktop
@@ -0,0 +1,17 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Exec=/usr/bin/scorched3d
+Icon=scorched3d.png
+Terminal=false
+Name=Scorched 3D
+Name[lt_LT]=Scorched 3D
+Comment=3D artillery game similar to Scorched Earth
+Comment[de_DE]=3D Reimplementation des Klassikers Scorched Earth
+Comment[fr_FR]=un jeu d'artillerie en 3 proche de Scorched Earth
+Comment[lt_LT]=Nuotaikingas 3D taktinis-artilerinis žaidimas, panašus į Scorched Earth
+Comment[pl_PL]=Artyleryjska gra 3D podobna do Scorched Earth
+Comment[ro_RO]=Un joc 3D cu artilerie similar cu Scorched Earth
+Categories=Game;ArcadeGame;
+StartupNotify=true
diff --git a/community/scorched3d/scorched3d.install b/community/scorched3d/scorched3d.install
new file mode 100644
index 000000000..c5571196e
--- /dev/null
+++ b/community/scorched3d/scorched3d.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/scorched3d/scorched3d.png.uu b/community/scorched3d/scorched3d.png.uu
new file mode 100644
index 000000000..4fb7e50db
--- /dev/null
+++ b/community/scorched3d/scorched3d.png.uu
@@ -0,0 +1,105 @@
+begin 600 scorched3d.png
+MB5!.1PT*&@H````-24A$4@```#`````P"`8```!7`OF'````!F)+1T0`_P#_
+M`/^@O:>3````"7!(67,```L2```+$@'2W7[\````!W1)344'TP@#%`([XJF@
+M!```$5Q)1$%4>-IEFNER9$>.I3_`W>\2$0PFF5*VI.HJ]58]2\\\W#S/O,*\
+M35LO9FU5U:62E,H4DUM$W+B+.S`__`:3.4.S(!D+G0XX<`"<X_)__O?_<EQ0
+M4R0(D@1M%$3`'35##,1!J:^[.#D;RY)9<@9`4*(H3=.0VH;4)&+3(!IPE-F4
+M;)E<9G(I+'EAR3.S%<P<UO4C2D!0P''<"U@!G\$S:@"*J**J1$0``:T_G/H0
+M'-:W$%Z^1`1$J#\$%<'7CSK@[OBZ(=SK<]8W5U/QZA"0S\NO[SOU\[;^_OE+
+M$;3N;=T#"!%M>%E1``7#7O:LNKY\>5L4$46BH0[!A&(%6RVW[)A:?6`0%2YK
+M7'SLCI9"S`JF%#.*.RZ0<<H7&[_\922@J`*BB`10):I62U0_>]P13.J.RNI>
+M\6JT**@(JG7!((&\+"S%,*_^*Z6P+`N(5+\%K2'AH":H"V%UD;O@)K@[1C7"
+M^"(H$`25@$A`D.K`]1'U$D$JH`(")EJ/4JH7Q1T10500$8(J(20\@,7"HHHL
+MF:64NA$WBF6D*$D4UNW6DW2T1@2H4$Q1##=>@L;7]X-`6/TOJA#J&<H:4((0
+M]8L8D^IAA>*">3U[4\>I[H\2""$14T,0Q=V)*:'SC,PSMAHAHC6DS!&QEVA0
+M<50+N.%:(PRM)VSV*G"L[D/EQ=;Z_!*/4LV-U>2:C+IZ^7)\944<=P=WS)6"
+MDET)*(1(%%!=CQ1A67)%%2`$)28(T590DW630K:P[BJO8`"F@E\,74,UB"`H
+M&@4)6G,7J>'FA8A51`EK=M>-U.R-"*;4V#;'33&4[$*T&L<2`DD5<4$<8A!L
+M=65J'8V@T8G!<0/+PE*$>0DLLR+FB!;4'!.P=3,:(8BNP5?#0M?C,*=^\T*\
+MQ!0&8H*8HC'4.%^-<;P:DF6%6'U!'05B4+2)A`@Q&*(9C87-KE`,<E'ZKCK<
+M#4S@>!2>'H7C(>$.^`(X&@5-]0A4:CU`P"ZG9]6A9H8!<<V=NHB!NN!>$R2(
+M$+7B+\Z*$(*+$E5I4Z!-2A.@:2$V`0V1)<.\*,L26):`E8CDZD$-H(W2=L[U
+MC='VQN%9.1TCF*&QADN%O!6:J;7,N(3R)=F%6%[5*<$1JT>-"BI*#"M<ND(`
+MUYK,0964E*81^@9V^T*W=7*.'`=E6HSC,^1%P0(3B@9!D]/T@=@4NDVFVP%)
+M*2HL4\5J"6L=7C=?S"E2/7XICK:&5OPB]0U$5YA#<6+%6JEP^)(CHDB,A*BT
+MC;#?9YJM8QIX>@Z<#LXX&%(*458(6=N0;$X^*8R*)*7=&+M]H=_!XWU@FI1<
+M!#"L&%B%<A-J&*.X644Z@YA\K7JE(H6JD41H@M)$I0G5@(H4*PY+P`BDY/1]
+M(23C/,!Q"`P'9YX-*]587YL"P0`A6,5`%\6+D*>.%`N;WI$;Y7A23L,*!%JP
+M4M"2U[XH5_A]`14G-E*K8#$C3\Z2'9%(U(@$1UP@:(6PM38Z%5YC*K3=0B[.
+MTX/R\""8%\!>"IJ9X6XKEE=@4%5<:IW)4T..1I.<JRO#$9:L+%EP@Z!>6P>L
+MPO":!W5]B*W68C2;\O[^Q"]/$[NK*Z[W6V[V6][>7K'?);8Q$3#<*RHU<:9I
+M,N[&W9UP.!CC7"MP[2"]'OUZW*I"4"&J$&)$".`!`XX'9YJ,K]_---%IDF(%
+MT$+0@FFI38)'4'`K&`7#B#5?!(F1?=<P+@:>F8:!3WGA<!I(*9%BI$F!)B7Z
+M+G)S#;$7/"GG'%B\QJE?DLXR!J@&0)A+1LQ0@5`J]H-2J+`8)J-I9V)RND8H
+MDZ(.B&.J2-0:B*:89\K:[;XT<R$J7]\HNVW+,&:F;$QYXNE\9ER,;$+3-/1]
+MS_6^PV/"FT@S1QX&R/.E1=;:2VE$-!";%@V1:3Q32J:8,2\%]Z6BC%2T"=$(
+MSX7]WNA:F#0B5F<)%<5"((IBQ2C4&B%`),::H!K8]BU7JB_]M@.+%<[CPG#.
+M#%-A*E#*PFB9/[V?>7A<.#XE^G[+?K^A2Y&NV=!WB7[;TVXVI)0HR\PTCIR'
+M,X?G`]-T)N<9UT((D%R8BX,**0EHPB0"L9Z`2VWL&JM-GH!BQ*YI$8$8(Q)J
+M@K$F]6*&B-'UB7Z[XYONBBRU"]W?9H[#3&H6NL98EL+3X<Q_?+RCY$R*@=W5
+MCNUN0]]W-*&V&FZ.F3-.QFD8&<Y';FYZWGV]HW@M5AZ@2*`00`*N^C*;!(6H
+MBJMB"'';M?4$0FVNBCMYSLQ+8<R9C-%N-ER]N>7FJ^\(38L$H]^>&2?C]@8>
+M[T=^?O\K?_CC#_SSO_X'#P_/F#G]IF.WW;#;;=AO.KJVI>LZ=KLM<\X<CD?N
+M/]WS=_(5[][=@$1$"Q(<-.$2L,M4L#:A(=0V0Z2B86S;ME8_58IY+1X8(DK3
+M=%R_N66SOZ'=7)$-IF%"-=,T`^)*TH:^ZYCGS*]W#WRZ>^+A\8EY69B73(R)
+MON^XOM[1Q$@,@;9-A)1`A.D\<7.S9YH:;F[?L-TY_::PW22PPCS/Y)()XH10
+M>R\3(XH3)!!I4^TWO-8#1`A-H&EZ9@+/H_/+TZ^<AI\XG4=4A>TF\NUWT'4=
+ML"7/&VZNKOAOO_];MEW'X],3A].)^\<#3\\GSN/,D@OC.%.6"K.I;>C[CDW7
+M`PFC(<:.%`,BA7DVAK,Q34Z,@IHCJ>9+$"?%.IM$"^O@D2&;D;,S%6?RP'')
+M_/CA$S_]_)$/'SYQGB:ZKN7F9LOW'UO>OMVQV>[QY0U-ZOB;WW[';[[]FF$<
+M:W@\///^PR<^WCTPG$>.AX'#X<0PG"C+@K>)_7[+]9LW['8W;+:WI#;@S#P?
+M'_CT,#%/$U>;!%V=RV-R0@()0A`EEIPKG!D,T\3=_9%_^_,=[^^>^7C_Q(>/
+M=QP.)Y:<Z=J6INOH?TG\_![>WD:VFX['QQU]=\6;-UNNMCW;7<]NN^'W?_<[
+M_LO??\^2"Z?AS/W]$[]^NN?CW0/G822&P&^__VO^Z;__(__T/_XGUV^_I6V=
+MP^%7'I_>\_[GCYS/`U]]=<N;ZXZ=)'I;$#=B,E0A+N?I90X=AH%?'Q[Y]S_^
+MP(>[9TZG,\=A8)XSYHZ&B$\S9H5E<8H)U_LSQ^/`I\<G?OJEI>NJ4=MMSWZW
+MH>M:FB;1Q$A*@6_^ZBN^_NH6`5*,7%WMN;W>$.5$TA^Y^S#PGW_ZP,/])Z9I
+M).?,\^&XSI4]NNG0:&A9R,M$'`]CG2_%.9T&'IX.O/]PQ]/S@`!=DP@Q4@Q"
+M#&BHY78<A6%PNKX0NY'#_<C#IPJ#(0@I**E)M&W#MN^X?;/G]LV>FYL]-]=7
+M;'<;NK:MU;:<.#[_F9AF_O*G1_[M7QXX'L]`(47E/$W(40DA$%,/ZDQS85YF
+MXO/3<VU&W7@^C8SGJ<96C!6V5`GF9*O]#-0FS0W&T3B=X/9MY&H'TRB<S[(2
+M4,*2"Z6,G,\3]T\'XH^_$&.@:Q)-T]+W+5^_W?&/_[#'PXY?'S?<?RJH))QQ
+MG4F$B)*7S.%P1*/R^&3,XYEE?B(^'0XU!XHQC#-YFHCJJ$#.1EXR2UF+&J_H
+M%73-'2%%IVV$OWJG/#XIX]E9%BB7YFBE$30(JL()Z+K`DB,I/?*'/[=\^-0Q
+MCALVW1NNMGMN;ZY9ELPT+XQSQLV9Y\S=W0,/#\\<#@?>W2;BTVFH\V1VQCE#
+MSEQU$2N%\Y0Y#3/C-'.><QWY@A""$C0PC<HX"%C@W3ME?ZVXURE[,*&XKD8(
+M(01"K".EN-$T1MLNY#+PPX_.\03G4\/O_OHW_/[O$^_>WM!WPC@OR'DB+POS
+M-//IXSU_^<M[#H<#5]TWQ-D,'$JNA.*V;_FOO_V*XL8P+?SQIWO^\Y<'GHY#
+M'3M+S2>7.GHJPFF(W#TH^^O`M]\$=E>![29@IDRSDK.2&EM[+MANG1AK-1U'
+MY7!0#@<P,W[X\0/'X\`_?/\=W__N.[YY=TLV>'X^\O/[C_ST\Z_<W3\B7LCC
+M3-1X804*%".XT,?*S*4F\NU7UPQSYCQGAO-<*_7:WQM0W+$Y,Q?A/"TL<Z!K
+M`TU2N@YP!8^D%'$32A&F43@599Z$G(5I$J:YLGXY9^9YP;)QGA:^GQ?^]F]^
+MP]PFBM7^:9XS;81ESL38=+4"ATQ>,B67VG"Y(P%NWNSX=BG,Q;B[/S%-"VY.
+M4&$Q8RX%S"C%&$[.<#2:F.EZX?K:2#'4ZJJ)4I1Y%MR5\ZA,XTJ=K+FANB;_
+MLO##./-\''@^#ESO-PSCS-/SB6G)B$`*0LZ%V&S:RJ0MB@D4@&R44LA6F>#;
+MZRTI!6ZN=QQ/(^-8Q\AA'!G.4^5ZO!+!>5DP<X;!&0;08*@:*C/%:F*+*#$$
+M8HBDF.C:1*.ALH%4DM<\\_C\Q/D/`Z?SB7DN/#T-Y#FSZ1*[7A"\AI!8_:/@
+MCKD`I?:`7CG*E!+;+4A0=IN6>2[D8LS+PC3/S'.IW>N<.9U&2JD$^9*-I13*
+M4GOXRE`Z3J$$)ZLQ+IEIF9F;R*9OB1>F3VMOEJ>9GW[^6!$Q&UT3V/21W2Y"
+M$*(2,'5$`R$X'E^Q7^Z4XH@Z(00V?4O7-!1SW&SUE#&."^<Q<SK//+>)G(UB
+MQI07AO/,.&52N-#ISIP+[E8I^>Q,,TQS1,3INY96$U$J+6_NG,\CI3@A*&VC
+M;#?*9I-`A;B"T$42X44L62EWC8JZ(U[YF(Q3IUTJ>Q8"_2[0]<Y^W_'UVQTY
+M&U/.#,/$\7CF-,RX5*1;E@SC1"DK*@4A%Z<8/)TFIL78M(5MW]$VL0HL"DF$
+MO@F\O>G8;!*ZTMIQ\4J'9RN4]6%8A<D+'Q650*!(C>E@QDH\X.*KW%1;B)`@
+MF1-SI$V13=^PS+ERI-E8EH5AG%B6\D*YG*?,>39$E9@:NKYCLVE0$8H9082^
+MB[RYZMCU+3&N6AU2#<"=[%:%":P.VJN'-2A10%01C^B*.!5\:JBLN@SF==!&
+MI`I^*;+9M)7/S%"*D4MF7!:6N9"7VL^<QIEA*D!DN^VXWK7LNE!/<BJH*M=7
+M#;?7'6U*5.G!7Y&[%_5!0A4X*E6-F%<!8I6!"I=-&-E6AMB,[%`L5RIEG7O=
+M#,OE)1Z5VL-'E&Z3UC7!<F$I1BZ5J&I2H&N4)@AF3C80=YHHI*B5`O)5Z`-B
+M2DT=XD4H6A!3I!AJ!<>1U0!<JEY0?%W8<;>7WW.)%,_5J%)'TZPU67&'^#F_
+M*O$LE6>W"X-WD5J=L(9E")!6-2JL%&NEBFJ3!T+LNPYW(^=:&'(NF&3<9>7;
+M/U/OH+A66348+SQE-J.40+:`6<:+48JS6*@<Y\J_OBQS>;*"1JC'ACI5HBJE
+MDF(X0==18'T`*R>T)O%^+633HLS+PJ(+12^48)W4[.6?VPM-:PJR2DEZT6*+
+M5_980(*!*69RV?]GA*L#R.?7W/%2_^>*"%32I"JD]H5:#*]-BGV;,#/$"V(%
+M<2&[D!%RJ8N;5;$NNU&\4H>.UUCTSYLP').:U'43CE"5%7^M=2,O^@54`UT"
+ME`H"KK7*5CG%7B1L6?6!U^Z(30R8"::*ARH!N=22CJ_)N,;Y;)EL3G%J;%?M
+MLDY5Z^+FSJNMO4C5_D74^"L1>\6/VK54[<'7JP9NM2NX2/W.NL%7!JRD5Q7C
+MRN<XN\1/A<I"MK*BSF>-BE>W%'3UV/^SM?__KL(7*2#82W)X#9MU"E,#\:I\
+M:CW;SU</UIQQA^A>U@0J-6FH@&$B>!!LI?N*5W2HWO*UT-466%]YV\)%<UL_
+MJZOZN?96_OI.A=L7]R1>3E16+<U7]5JK(7[)!G<PIY@3W3)NAE@AK)ML%`C5
+M=J$FEB`448HXQ5=5'WFY3E"/=I6"ULVY7&*\>KIVK:MH9Q7WY8M(NNC5*P^Z
+M$KK$]?4+CEDMNFI&).=U54/<JI>3U.9.A$:5%)0EE/4^Q.OCKWY7>Y7,:^R:
+MKW<GW&N..36??*TCE_!YC3#VZCZ&U@L*0:HX&%;9%;<J<'AM>?XO+.\[U&WH
+.P#``````245.1*Y"8((`
+`
+end
diff --git a/community/scponly/PKGBUILD b/community/scponly/PKGBUILD
new file mode 100644
index 000000000..cb4e89b14
--- /dev/null
+++ b/community/scponly/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 3564 2009-10-06 07:22:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=scponly
+pkgver=4.8
+pkgrel=6
+pkgdesc="A limited shell for ssh/scp"
+arch=(i686 x86_64)
+url="http://www.sublimation.org/scponly/"
+depends=('glibc')
+license=('custom')
+options=(docs)
+source=(http://downloads.sourceforge.net/sourceforge/scponly/scponly-$pkgver.tgz
+ setup_chroot.sh)
+md5sums=('139ac9abd7f3b8dbc5c5520745318f8a'
+ '3318e648c106b1e7ed7826296c296d1a')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-scp-compat --enable-winscp-compat --enable-chrooted-binary
+
+ sed -i 's|^#elif|#else|' helper.c
+
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+ install -D -m0644 COPYING $startdir/pkg/usr/share/licenses/scponly/COPYING && \
+ mv $pkgdir/usr/man $pkgdir/usr/share/ || return 1
+
+ mkdir -p $pkgdir/usr/share/doc/scponly && \
+ cp $srcdir/setup_chroot.sh config.h $pkgdir/usr/share/doc/scponly/
+}
diff --git a/community/scponly/setup_chroot.sh b/community/scponly/setup_chroot.sh
new file mode 100755
index 000000000..cd1a260eb
--- /dev/null
+++ b/community/scponly/setup_chroot.sh
@@ -0,0 +1,270 @@
+#!/bin/sh
+#
+# handy functions:
+#
+# a function to display a failure message and then exit
+fail ( ) {
+ echo -e $@
+ exit 1
+}
+
+# "get with default" function
+# this function prompts the user with a query and default reply
+# it returns the user reply
+getwd ( ) {
+ query="$1"
+ default="$2"
+ echo -en "$query [$default]" | cat >&2
+ read response
+ if [ x$response = "x" ]; then
+ response=$default
+ fi
+ echo $response
+}
+
+# "get yes no" function
+# this function prompts the user with a query and will continue to do so
+# until they reply with either "y" or "n"
+getyn ( ) {
+ query="$@"
+ echo -en $query | cat >&2
+ read response
+ while [ x$response != "xy" -a x$response != "xn" ]; do
+ echo -e "\n'y' or 'n' only please...\n" | cat >&2
+ echo -en $query | cat >&2
+ read response
+ done
+ echo $response
+}
+
+# configuration
+#
+# set defaults
+defaultusername="scponly"
+defaulthomedirprefix="/home"
+defaultwriteabledir="incoming"
+
+osname=`uname -s | tr ' ' '_'`
+# pathname to platform/OS specific setup scripts
+prescript="build_extras/arch/$osname.pre.sh"
+postscript="build_extras/arch/$osname.post.sh"
+
+# the following is a list of binaries that will be staged in the target dir
+BINARIES=`grep '#define PROG_' config.h | cut -f2 -d\" | grep -v ^cd$`
+
+# we set the install path in a variable so the presetup script can overwrite it on systems
+# which require it
+INSTALL_PATHNAME="install -c"
+
+# attempt a best guess at required libs, we can append things in the presetup script if we need to
+LDSOFOUND=0
+
+# default to useradd, not pw
+USE_PW=0
+
+if [ x/usr/bin/ldd = x ]; then
+ echo "this script requires the program ldd to determine which"
+ fail "shared libraries to copy into your chrooted dir..."
+fi
+
+if [ x`uname -s` = "xOpenBSD" ]; then
+ for bin in $BINARIES; do
+ GREP_LIST="$GREP_LIST -e $bin"
+ done
+ LIB_LIST=`ldd $BINARIES 2> /dev/null | /usr/bin/tr -s " " | cut -f5 -d" " | /usrgrep -v "^Name" | /usrgrep -v $GREP_LIST | /usr/bin/sort -u`
+else
+ LIB_LIST=`ldd $BINARIES 2> /dev/null | cut -f2 -d\> | cut -f1 -d\( | grep "^ " | sort -u`
+fi
+
+#
+# we also need to add some form of ld.so, here are some good guesses.
+#
+LDSO_LIST="/lib/ld.so /libexec/ld-elf.so /libexec/ld-elf.so.1 /usr/libexec/ld.so /lib64/ld-linux-x86-64.so.2 /lib/ld-linux.so.2 /usr/libexec/ld-elf.so.1"
+for lib in $LDSO_LIST; do
+ if [ -f $lib ]; then
+ LDSOFOUND=1;
+ LIB_LIST="$LIB_LIST $lib"
+ fi
+done
+
+#
+# TODO - i've since forgotten which OS this is for, it should be relocated to a presetup script
+#
+ls /lib/libnss_compat* > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+ LIB_LIST="$LIB_LIST /lib/libnss_compat*"
+fi
+
+# check that the configure options are correct for chrooted operation:
+
+if [ x/usr/sbin/useradd = x ]; then
+ if [ x = x ]; then
+ echo "this script requires the program useradd or pw to add your"
+ fail "chrooted scponly user."
+ else
+ USE_PW=1;
+ fi
+fi
+
+# we need to be root
+if [ `id -u` != "0" ]; then
+ fail "you must be root to run this script\n"
+fi
+
+echo
+echo Next we need to set the home directory for this scponly user.
+echo please note that the user\'s home directory MUST NOT be writeable
+echo by the scponly user. this is important so that the scponly user
+echo cannot subvert the .ssh configuration parameters.
+echo
+echo for this reason, a writeable subdirectory will be created that
+echo the scponly user can write into.
+echo
+
+if [ "$2" != "" ] ; then
+ targetuser=$2
+else
+targetuser=`getwd "Username to install" "$defaultusername"`
+fi
+username_collision=`id $targetuser > /dev/null 2> /dev/null; echo $?`
+if [ $username_collision -eq 0 ] ; then
+ fail "the user $targetuser already exists. please remove this user and their home directory and try again."
+fi
+
+if [ "$1" != "" ] ; then
+ targetdir=$1
+else
+targetdir=`getwd "home directory you wish to set for this user" "$defaulthomedirprefix/$targetuser"`
+fi
+
+if [ "$3" != "" ] ; then
+ writeabledir=$3
+else
+writeabledir=`getwd "name of the writeable subdirectory" "$defaultwriteabledir"`
+fi
+
+#
+# if you would like to overwrite/extend any of the variables above, do so in the system specific
+# presetup script.
+#
+if [ -f "$prescript" ]; then
+#
+# this system has a pre-chroot setup script, lets run it
+#
+ . "$prescript"
+fi
+
+# if neither the presetup script or the best guess could find ld.so, we have to bail here
+if [ $LDSOFOUND -eq 0 ]; then
+ fail i cant find your equivalent of ld.so
+fi
+
+#
+# ACTUAL MODIFICATIONS BEGIN HERE
+#
+
+# this part shouldnt strictly be requried, but i'll leave it in until i'm sure of it
+if [ ! -d $targetdir ]; then
+ $INSTALL_PATHNAME -d $targetdir
+ chmod 755 $targetdir
+fi
+
+if [ ! -d $targetdir/etc ]; then
+ $INSTALL_PATHNAME -d $targetdir/etc
+ chown 0:0 $targetdir/etc
+ chmod 755 $targetdir/etc
+fi
+
+# add all our binaries
+for bin in $BINARIES; do
+ $INSTALL_PATHNAME -d $targetdir/`/usr/bin/dirname $bin`
+ $INSTALL_PATHNAME $bin $targetdir$bin
+done
+
+# and the libs they require
+if [ "x$LIB_LIST" != "x" ]; then
+ for lib in $LIB_LIST; do
+ $INSTALL_PATHNAME -d $targetdir/`/usr/bin/dirname $lib`
+ $INSTALL_PATHNAME $lib $targetdir/$lib
+ done
+fi
+
+# /dev/null is needed inside the chroot
+mkdir -p $targetdir/dev
+mknod -m 666 $targetdir/dev/null c 1 3
+
+if [ "x$USE_PW" = x0 ] ; then
+ /usr/sbin/useradd -d "$targetdir" -s "/usr/sbin/scponlyc" $targetuser
+ if [ $? -ne 0 ]; then
+ fail "if this user exists, remove it and try again"
+ fi
+else
+ useradd -n $targetuser -s "/usr/sbin/scponlyc" -d "$targetdir"
+ if [ $? -ne 0 ]; then
+ fail "if this user exists, remove it and try again"
+ fi
+fi
+
+#
+# we must ensure certain directories are root owned.
+#
+chown 0:0 $targetdir
+if [ -d $targetdir/.ssh ]; then
+ chown 0:0 $targetdir/.ssh
+fi
+
+if [ ! -d $targetdir/$writeabledir ]; then
+ echo -e "\ncreating $targetdir/$writeabledir directory for uploading files"
+ $INSTALL_PATHNAME -o $targetuser -d $targetdir/$writeabledir
+fi
+
+#
+# set the perms on the writeable dir so that the new user owns it
+#
+newuid=`id -u $targetuser`
+newgid=`id -g $targetuser`
+chown $newuid:$newgid $targetdir/$writeabledir
+
+if [ -f "$postscript" ]; then
+#
+# this system has a post-chroot setup script, lets run it
+#
+ . "$postscript"
+else
+#
+# otherwise, revert to the old "best guess" system, which sucks
+#
+ echo
+ echo "Your platform ($osname) does not have a platform specific setup script."
+ echo "This install script will attempt a best guess."
+ echo "If you perform customizations, please consider sending me your changes."
+ echo "Look to the templates in build_extras/arch."
+ echo " - joe at sublimation dot org"
+ echo
+ if [ x = x ]; then
+ #
+ # ok we dont have pwd_mkdb, lets improvise:
+ #
+ grep $targetuser /etc/passwd > $targetdir/etc/passwd
+ # Debian: copy /etc/group into the jail, for /usr/bin/groups to work
+ cp /etc/group $targetdir/etc/group
+
+ else
+ #
+ # this is for systems which do have pwd_mkdb
+ #
+ grep $targetuser /etc/master.passwd > $targetdir/etc/master.passwd
+ -d "$targetdir/etc" $targetdir/etc/master.passwd
+ rm -rf $targetdir/etc/master.passwd $targetdir/etc/spwd.db
+ fi
+fi
+
+#
+# the final step is setting the password
+#
+echo "please set the password for $targetuser:"
+passwd $targetuser
+
+echo "if you experience a warning with winscp regarding groups, please install"
+echo "the provided hacked out fake groups program into your chroot, like so:"
+echo "cp groups $targetdir/bin/groups"
diff --git a/community/scummvm-tools/PKGBUILD b/community/scummvm-tools/PKGBUILD
new file mode 100644
index 000000000..e5547a145
--- /dev/null
+++ b/community/scummvm-tools/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 29577 2010-10-16 03:43:54Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Jérémie Dimino <jeremie@dimino.org>
+# Contributor: Sebastian Hase <sebastian_hase@gmx.de>
+# Contributor: Joe Davison <joe@thosedamnpeanuts.com>
+pkgname=scummvm-tools
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="A set of tools that enable you to convert, compress and decode game datafiles for ScummVM"
+url="http://www.scummvm.org/"
+license=('GPL')
+depends=('libpng' 'wxgtk' 'flac' 'libvorbis')
+arch=('i686' 'x86_64')
+source=(http://downloads.sourceforge.net/sourceforge/scummvm/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5a9992faa2c024f83d90718ce5d96cb5')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ install -d ${pkgdir}/usr/bin
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install || return 1
+
+ install -Dm 644 README ${pkgdir}/usr/share/doc/scummvm-tools/README
+ install -Dm 644 convert_dxa.sh ${pkgdir}/usr/share/doc/scummvm-tools/samples/convert_dxa.sh
+}
+#vim: sw=2 ts=2 et:
diff --git a/community/sdcc/PKGBUILD b/community/sdcc/PKGBUILD
new file mode 100644
index 000000000..d25607944
--- /dev/null
+++ b/community/sdcc/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 40227 2011-02-22 02:15:34Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jose Negron <josenj.arch@mailnull.net>
+
+pkgname=sdcc
+pkgver=3.0.0
+pkgrel=2
+pkgdesc="Retargettable ANSI C compiler (Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08)"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('bash' 'gcc-libs')
+makedepends=('gputils' 'flex' 'bison' 'patch')
+optdepends=('python')
+url="http://sdcc.sourceforge.net/"
+options=(!strip)
+source=(http://downloads.sourceforge.net/sourceforge/sdcc/$pkgname-src-$pkgver.tar.bz2)
+md5sums=('20fbd49a3421e09fe65577c45524c89e')
+
+build() {
+ cd $srcdir/$pkgname
+ LDFLAGS="-lm" ./configure --prefix=$pkgdir/usr
+ make
+ make install
+ strip $pkgdir/usr/bin/* || true
+}
diff --git a/community/sdd/PKGBUILD b/community/sdd/PKGBUILD
new file mode 100644
index 000000000..9b538c6e3
--- /dev/null
+++ b/community/sdd/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 20491 2010-07-08 14:10:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=sdd
+pkgver=1.52
+pkgrel=6
+pkgdesc="Faster replacement for a program called dd"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://freshmeat.net/projects/sdd/"
+source=(ftp://ftp.berlios.de/pub/sdd/sdd-$pkgver.tar.gz
+ build-fix.patch)
+options=(!emptydirs)
+md5sums=('efb6f2d8a39080c8ad085211e01293d6'
+ '3c7af325869c648be045f7c86431200c')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+ if [ $CARCH = "x86_64" ]; then
+ cp RULES/i686-linux-cc.rul RULES/x86_64-linux-cc.rul
+ cp RULES/i686-linux-gcc.rul RULES/x86_64-linux-gcc.rul
+ fi
+ patch -p1 <$srcdir/build-fix.patch
+ make || return 1
+ make INS_BASE=$pkgdir/usr install || return 1
+ mkdir -p $pkgdir/usr/share/man
+ rm -rf $pkgdir/usr/include/ \
+ $pkgdir/usr/lib/ \
+ $pkgdir/usr/man/man3/ \
+ $pkgdir/usr/man/man5/
+ mv $pkgdir/usr/man/* $pkgdir/usr/share/man/
+ chown -R root.root $pkgdir
+}
diff --git a/community/sdd/build-fix.patch b/community/sdd/build-fix.patch
new file mode 100644
index 000000000..daf299eb8
--- /dev/null
+++ b/community/sdd/build-fix.patch
@@ -0,0 +1,78 @@
+diff -wbBur sdd-1.52/include/schily.h sdd-1.52.my/include/schily.h
+--- sdd-1.52/include/schily.h 2004-03-05 00:30:40.000000000 +0000
++++ sdd-1.52.my/include/schily.h 2010-07-08 14:00:07.000000000 +0000
+@@ -108,14 +108,14 @@
+ /* 6th arg not const, fexecv forces av[ac] = NULL */
+ extern int fexecv __PR((const char *, FILE *, FILE *, FILE *, int,
+ char **));
+-extern int fexecve __PR((const char *, FILE *, FILE *, FILE *,
+- char * const *, char * const *));
++//extern int fexecve __PR((const char *, FILE *, FILE *, FILE *,
++// char * const *, char * const *));
+ extern int fspawnv __PR((FILE *, FILE *, FILE *, int, char * const *));
+ extern int fspawnl __PR((FILE *, FILE *, FILE *,
+ const char *, const char *, ...));
+ extern int fspawnv_nowait __PR((FILE *, FILE *, FILE *,
+ const char *, int, char *const*));
+-extern int fgetline __PR((FILE *, char *, int));
++extern int xfgetline __PR((FILE *, char *, int));
+ extern int fgetstr __PR((FILE *, char *, int));
+ extern void file_raise __PR((FILE *, int));
+ extern int fileclose __PR((FILE *));
+@@ -187,7 +187,7 @@
+ extern char *findbytes __PR((const void *, int, char));
+ extern int findline __PR((const char *, char, const char *,
+ int, char **, int));
+-extern int getline __PR((char *, int));
++extern int xgetline __PR((char *, int));
+ extern int getstr __PR((char *, int));
+ extern int breakline __PR((char *, char, char **, int));
+ extern int getallargs __PR((int *, char * const**, const char *, ...));
+diff -wbBur sdd-1.52/libschily/stdio/fgetline.c sdd-1.52.my/libschily/stdio/fgetline.c
+--- sdd-1.52/libschily/stdio/fgetline.c 2004-08-08 11:02:05.000000000 +0000
++++ sdd-1.52.my/libschily/stdio/fgetline.c 2010-07-08 14:02:08.000000000 +0000
+@@ -26,7 +26,7 @@
+ */
+
+ EXPORT int
+-fgetline(f, buf, len)
++xfgetline(f, buf, len)
+ register FILE *f;
+ char *buf;
+ register int len;
+@@ -64,9 +64,9 @@
+ }
+
+ EXPORT int
+-getline(buf, len)
++xgetline(buf, len)
+ char *buf;
+ int len;
+ {
+- return (fgetline(stdin, buf, len));
++ return (xfgetline(stdin, buf, len));
+ }
+diff -wbBur sdd-1.52/RULES/mk-gmake.id sdd-1.52.my/RULES/mk-gmake.id
+--- sdd-1.52/RULES/mk-gmake.id 2004-08-03 21:33:18.000000000 +0000
++++ sdd-1.52.my/RULES/mk-gmake.id 2010-07-08 14:00:07.000000000 +0000
+@@ -37,7 +37,7 @@
+
+ ifndef ARCH_DONE
+
+-__gmake_warn:= $(shell cat $(SRCROOT)/$(RULESDIR)/gmake.wrn 1>&2; sleep 15)
++__gmake_warn:= $(shell cat $(SRCROOT)/$(RULESDIR)/gmake.wrn 1>&2)
+
+ _MACHCMD= (mach || uname -p || true) 2> /dev/null
+ _ARCHCMD= (arch || /usr/ucb/arch || true) 2> /dev/null
+diff -wbBur sdd-1.52/sdd/sdd.c sdd-1.52.my/sdd/sdd.c
+--- sdd-1.52/sdd/sdd.c 2004-07-27 10:49:31.000000000 +0000
++++ sdd-1.52.my/sdd/sdd.c 2010-07-08 14:01:20.000000000 +0000
+@@ -850,7 +850,7 @@
+ inout, num);
+ (void) fflush(stderr);
+ ap = answer;
+- if (fgetline(tty, ap, 16) == EOF)
++ if (xfgetline(tty, ap, 16) == EOF)
+ return (FALSE);
+ while (*ap == ' ' || *ap == '\t')
+ ap++;
diff --git a/community/sensors-applet/FS9379.patch b/community/sensors-applet/FS9379.patch
new file mode 100644
index 000000000..5fee4e20f
--- /dev/null
+++ b/community/sensors-applet/FS9379.patch
@@ -0,0 +1,54 @@
+--- sensors-applet-2.2.1.orig/plugins/nvidia/nvidia-plugin.c
++++ sensors-applet-2.2.1/plugins/nvidia/nvidia-plugin.c
+@@ -81,7 +81,7 @@
+ /* create the connection to the X server */
+ if (!(nvidia_sensors_dpy = XOpenDisplay(NULL))) {
+ /* no connection to the X server avaible */
+- return;
++ return sensors;
+ }
+
+ /* check if the NV-CONTROL extension is available on this X
+only in patch2:
+unchanged:
+--- sensors-applet-2.2.1.orig/plugins/libsensors/libsensors-plugin.c
++++ sensors-applet-2.2.1/plugins/libsensors/libsensors-plugin.c
+@@ -258,7 +258,8 @@
+ * file - if neither succeed, exit */
+ if ((file = fopen (LIBSENSORS_CONFIG_FILE, "r")) == NULL) {
+ if ((file = fopen (LIBSENSORS_ALTERNATIVE_CONFIG_FILE, "r")) == NULL) {
+- return;
++ g_debug("%s: error opening libsensors config file... ", __FUNCTION__);
++ return sensors;
+ }
+ }
+
+@@ -266,7 +267,8 @@
+ * valid, close file and return */
+ if (sensors_init(file) != 0) {
+ fclose(file);
+- return;
++ g_debug("%s: error initing libsensors from config file...", __FUNCTION__);
++ return sensors;
+ }
+ fclose(file);
+
+@@ -293,7 +295,8 @@
+
+ int nr = 0;
+ if (sensors_init(NULL) != 0) {
+- return;
++ g_debug("%s: error initing libsensors", __FUNCTION__);
++ return sensors;
+ }
+ i = 0;
+ while ((chip_name = sensors_get_detected_chips(NULL, &nr)))
+@@ -502,7 +505,7 @@
+ if (regcomp(&uri_re, "^sensor://([a-z0-9-]+)/([0-9]+)$",
+ REG_EXTENDED | REG_ICASE) != 0) {
+ g_debug("Error compiling regexp...not initing libsensors sensors interface");
+- return;
++ return NULL;
+ }
+
+ return libsensors_plugin_get_sensors();
diff --git a/community/sensors-applet/PKGBUILD b/community/sensors-applet/PKGBUILD
new file mode 100644
index 000000000..2fd81dea0
--- /dev/null
+++ b/community/sensors-applet/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 41542 2011-03-07 16:09:06Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Michael Barker
+
+pkgname=sensors-applet
+pkgver=2.2.7
+pkgrel=3
+pkgdesc="An applet for the GNOME Panel to display readings from hardware sensors, including CPU temperature, fan speeds and voltage readings."
+arch=('i686' 'x86_64')
+url="http://sensors-applet.sourceforge.net/"
+license=('GPL')
+depends=('gnome-panel-bonobo' 'lm_sensors' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils>=0.18.1' 'libxnvctrl' 'libgnomeui')
+optdepends=('hddtemp: for HDD support'
+ 'libxnvctrl: for Nvidia GPU support')
+install=sensors-applet.install
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ sensors-applet-2.2.7-libnotify-0.7.patch)
+options=('!libtool')
+md5sums=('f342fab98be4f1b9a25af0689af20130'
+ '96a4393d9e75e5eb88a6e906a5a7e464')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/sensors-applet-2.2.7-libnotify-0.7.patch
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/sensors-applet \
+ --localstatedir=/var \
+ --disable-scrollkeeper \
+ --with-nvidia \
+ --enable-libnotify
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/sensors-applet/sensors-applet-2.2.7-libnotify-0.7.patch b/community/sensors-applet/sensors-applet-2.2.7-libnotify-0.7.patch
new file mode 100644
index 000000000..ea2f7803a
--- /dev/null
+++ b/community/sensors-applet/sensors-applet-2.2.7-libnotify-0.7.patch
@@ -0,0 +1,57 @@
+diff --git a/sensors-applet/active-sensor-libnotify.c b/sensors-applet/active-sensor-libnotify.c
+index e69b005..f7a7eb8 100644
+--- a/sensors-applet/active-sensor-libnotify.c
++++ b/sensors-applet/active-sensor-libnotify.c
+@@ -84,10 +84,23 @@ void active_sensor_libnotify_notify(ActiveSensor *active_sensor,
+
+ /* now create a new one */
+ g_debug("Creating new notification");
++ #ifdef NOTIFY_CHECK_VERSION
++ #if NOTIFY_CHECK_VERSION (0, 7, 1)
++ active_sensor->notification[notif_type] = notify_notification_new(summary,
++ message,
++ icon_filename);
++ #else
++ active_sensor->notification[notif_type] = notify_notification_new(summary,
++ message,
++ icon_filename,
++ attach);
++ #endif
++ #else
+ active_sensor->notification[notif_type] = notify_notification_new(summary,
+ message,
+ icon_filename,
+ attach);
++ #endif
+ g_signal_connect(active_sensor->notification[notif_type], "closed",
+ G_CALLBACK(notif_closed_cb),
+ active_sensor);
+diff --git a/sensors-applet/sensors-applet.c b/sensors-applet/sensors-applet.c
+index 9486173..81675b8 100644
+--- a/sensors-applet/sensors-applet.c
++++ b/sensors-applet/sensors-applet.c
+@@ -303,11 +303,23 @@ void sensors_applet_notify(SensorsApplet *sensors_applet,
+ message = g_strdup_printf(_("An error occurred while trying to save the current sensor configuration. "));
+ break;
+ }
+-
++ #ifdef NOTIFY_CHECK_VERSION
++ #if NOTIFY_CHECK_VERSION (0, 7, 1)
++ sensors_applet->notification = notify_notification_new(summary,
++ message,
++ GTK_STOCK_DIALOG_WARNING);
++ #else
++ sensors_applet->notification = notify_notification_new(summary,
++ message,
++ GTK_STOCK_DIALOG_WARNING,
++ GTK_WIDGET(sensors_applet->applet));
++ #endif
++ #else
+ sensors_applet->notification = notify_notification_new(summary,
+ message,
+ GTK_STOCK_DIALOG_WARNING,
+ GTK_WIDGET(sensors_applet->applet));
++ #endif
+ g_free(summary);
+ g_free(message);
+
diff --git a/community/sensors-applet/sensors-applet.install b/community/sensors-applet/sensors-applet.install
new file mode 100644
index 000000000..43ed0a554
--- /dev/null
+++ b/community/sensors-applet/sensors-applet.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/community/ser2net/PKGBUILD b/community/ser2net/PKGBUILD
new file mode 100644
index 000000000..42ab9590f
--- /dev/null
+++ b/community/ser2net/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 43441 2011-03-26 08:44:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=ser2net
+pkgver=2.7
+pkgrel=1
+pkgdesc="A proxy that allows telnet/tcp connections to be made to serial ports"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/ser2net"
+license=('GPL')
+depends=('glibc')
+backup=(etc/ser2net.conf)
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ ser2net.init)
+md5sums=('22977477789868923a5de09a85e847dd'
+ '6db420d54ce8f78464e885efe935dd18')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m 0644 ser2net.conf $pkgdir/etc/ser2net.conf
+ install -D -m 0755 ../ser2net.init $pkgdir/etc/rc.d/ser2net
+}
diff --git a/community/ser2net/ser2net.init b/community/ser2net/ser2net.init
new file mode 100644
index 000000000..f35984686
--- /dev/null
+++ b/community/ser2net/ser2net.init
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof ser2net
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting ser2net daemon"
+
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ [ -f /var/run/ser2net.pid ] && rm -f /var/run/ser2net.pid
+ ser2net
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/ser2net.pid
+ add_daemon ser2net
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping ser2net daemon"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ser2net.pid &> /dev/null
+ rm_daemon ser2net
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/sfml/PKGBUILD b/community/sfml/PKGBUILD
new file mode 100644
index 000000000..00f1d39c9
--- /dev/null
+++ b/community/sfml/PKGBUILD
@@ -0,0 +1,96 @@
+# $Id: PKGBUILD 23743 2010-08-16 10:49:18Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: scj <scj archlinux us>
+
+pkgname=sfml
+pkgver=1.6
+pkgrel=3
+pkgdesc="A simple, fast, cross-platform and object-oriented multimedia API."
+arch=('i686' 'x86_64')
+url="http://www.sfml-dev.org"
+license=('custom:zlib')
+depends=('libxrandr' 'libsndfile' 'openal' 'glew' 'libjpeg' 'libpng' 'soil' 'zlib' 'freetype2')
+optdepends=('qt: build qt-sample' 'wxgtk: build wxwidgets-sample')
+install=sfml.install
+source=(http://downloads.sourceforge.net/${pkgname}/SFML-${pkgver}-sdk-linux-64.tar.gz
+ use-system-libs.patch)
+md5sums=('7a9b3a1ef6d14cd25090e440ccdbb3a8'
+ '505ea908fb6e4b9359061d8d55373963')
+
+build() {
+ cd "${srcdir}/SFML-${pkgver}"
+
+ # apply patch to use system libs in favor of included ones (fixes many problems)
+ patch -Np1 < ../use-system-libs.patch
+
+ # compile sfml
+ make
+
+ # prepare samples
+ sed -e '/export LDFLAGS/d' -i samples/Makefile
+
+ #check optional dependencies
+ if [ ! -e "/usr/bin/wx-config" ]; then
+ sed -e 's/wxwidgets-sample //' -i samples/Makefile
+ fi
+ if [ ! -e "/usr/include/QtGui" ]; then
+ sed -e 's/qt-sample //' -i samples/Makefile
+ fi
+
+ # fix some samples
+ sed -e 's|qt4/||g' -i samples/qt/Makefile
+ sed -e '/#include <iostream>/a\#include <stdlib.h>' -i \
+ samples/sockets/Sockets.cpp \
+ samples/voip/VoIP.cpp
+
+ # fix the library softlinks for samples
+ cd lib
+ for lib in *; do
+ ln -sf $lib ${lib/.${pkgver}/}
+ done
+ cd ..
+
+ # compile samples
+ LDFLAGS="-L${srcdir}/SFML-${pkgver}/lib" make sfml-samples
+}
+
+package() {
+ cd "${srcdir}/SFML-${pkgver}"
+
+ # prepare some dirs
+ mkdir -p ${pkgdir}/usr/lib \
+ ${pkgdir}/usr/include \
+ ${pkgdir}/usr/share/sfml \
+ ${pkgdir}/usr/share/doc \
+ ${pkgdir}/opt/SFML
+
+ # install it
+ sed '/export DESTDIR/d' -i src/SFML/Makefile
+ make DESTDIR="${pkgdir}/usr" install
+
+ # fix the library softlinks - again
+ cd ${pkgdir}/usr/lib
+ rm *.so
+ for lib in *; do
+ ln -s $lib ${lib/.${pkgver}/}
+ done
+ cd "${srcdir}/SFML-${pkgver}"
+
+ # install samples
+ cp -r samples ${pkgdir}/opt/SFML/samples
+
+ # install docs
+ cp -r doc ${pkgdir}/usr/share/doc/sfml
+
+ # handy symlinks
+ cd ${pkgdir}/usr/share/sfml
+ ln -s ../../../opt/SFML/samples samples
+ ln -s ../doc/sfml docs
+
+ # install license
+ install -Dm 644 ${srcdir}/SFML-${pkgver}/license.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ # clean up
+ find "${pkgdir}/opt/SFML/samples" -name "*.o" -delete
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/sfml/sfml.install b/community/sfml/sfml.install
new file mode 100644
index 000000000..9d18b5251
--- /dev/null
+++ b/community/sfml/sfml.install
@@ -0,0 +1,3 @@
+post_install() {
+ echo "To view the SFML samples, go to /opt/SFML/samples/bin and run them individually"
+}
diff --git a/community/sfml/use-system-libs.patch b/community/sfml/use-system-libs.patch
new file mode 100644
index 000000000..5d3200225
--- /dev/null
+++ b/community/sfml/use-system-libs.patch
@@ -0,0 +1,70 @@
+Only in SFML-1.6-old/lib: libsfml-graphics.so.1.6
+Binary files SFML-1.6-old/lib/libsfml-network.so.1.6 and SFML-1.6/lib/libsfml-network.so.1.6 differ
+Binary files SFML-1.6-old/lib/libsfml-system.so.1.6 and SFML-1.6/lib/libsfml-system.so.1.6 differ
+Binary files SFML-1.6-old/lib/libsfml-window.so.1.6 and SFML-1.6/lib/libsfml-window.so.1.6 differ
+diff -ur SFML-1.6-old/src/SFML/Graphics/ImageLoader.cpp SFML-1.6/src/SFML/Graphics/ImageLoader.cpp
+--- SFML-1.6-old/src/SFML/Graphics/ImageLoader.cpp 2010-01-27 15:00:05.000000000 +0100
++++ SFML-1.6/src/SFML/Graphics/ImageLoader.cpp 2010-08-16 12:27:33.983627625 +0200
+@@ -28,10 +28,10 @@
+ #include <SFML/Graphics/ImageLoader.hpp>
+ extern "C"
+ {
+- #include <SFML/Graphics/libjpeg/jpeglib.h>
+- #include <SFML/Graphics/libjpeg/jerror.h>
++ #include <jpeglib.h>
++ #include <jerror.h>
+ }
+-#include <SFML/Graphics/libpng/png.h>
++#include <png.h>
+ #include <SFML/Graphics/SOIL/SOIL.h>
+ #include <iostream>
+
+Only in SFML-1.6-old/src/SFML/Graphics: ImageLoader.cpp.rej
+diff -ur SFML-1.6-old/src/SFML/Graphics/Makefile SFML-1.6/src/SFML/Graphics/Makefile
+--- SFML-1.6-old/src/SFML/Graphics/Makefile 2010-01-27 15:00:05.000000000 +0100
++++ SFML-1.6/src/SFML/Graphics/Makefile 2010-08-16 12:25:13.663501212 +0200
+@@ -1,15 +1,5 @@
+ SRC = $(wildcard *.cpp)
+-SRCGLEW = $(wildcard ./GLEW/*.c)
+-SRCJPEG = $(wildcard ./libjpeg/*.c)
+-SRCPNG = $(wildcard ./libpng/*.c)
+-SRCSOIL = $(wildcard ./SOIL/*.c)
+-SRCZLIB = $(wildcard ./zlib/*.c)
+ OBJ = $(SRC:.cpp=.o)
+-OBJGLEW = $(SRCGLEW:.c=.o)
+-OBJJPEG = $(SRCJPEG:.c=.o)
+-OBJPNG = $(SRCPNG:.c=.o)
+-OBJSOIL = $(SRCSOIL:.c=.o)
+-OBJZLIB = $(SRCZLIB:.c=.o)
+
+ ifeq ($(STATIC), yes)
+ LIB = libsfml-graphics-s.a
+@@ -23,22 +13,19 @@
+
+ all: $(LIB)
+
+-libsfml-graphics-s.a: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
+- $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
++libsfml-graphics-s.a: $(OBJ)
++ $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) -static -lGLEW -ljpeg -lpng -lsoil -lz -lSOIL
+
+-libsfml-graphics.so: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
+- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -lfreetype -lX11 -lGL
++libsfml-graphics.so: $(OBJ)
++ $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) -lGLEW -ljpeg -lpng -lSOIL -lz -lfreetype -lX11 -lGL
+
+ $(OBJ): %.o: %.cpp
+ $(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2
+
+-$(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB): %.o: %.c
+- $(CC) -o $@ -c $< $(CFLAGSEXT) -DSTBI_FAILURE_USERMSG
+-
+ .PHONY: clean mrproper
+
+ clean:
+- @rm -rf $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
++ @rm -rf $(OBJ)
+
+ mrproper: clean
+ @rm -rf $(LIBNAME)
+Only in SFML-1.6-old/src/SFML/Graphics: Makefile.rej
diff --git a/community/shake/PKGBUILD b/community/shake/PKGBUILD
new file mode 100644
index 000000000..cc8f72da6
--- /dev/null
+++ b/community/shake/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 43460 2011-03-26 10:32:40Z jlichtblau $
+# Maintainer : Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor : Allan McRae <allan@archlinux.org>
+# Contributor: Julien MISCHKOWITZ <wain@archlinux.fr>
+
+pkgname=shake
+pkgver=0.999
+pkgrel=1
+pkgdesc="Userspace defragmenter that can be run while system is in use"
+arch=('i686' 'x86_64')
+url="http://vleu.net/shake/"
+license=('GPL3')
+depends=('attr')
+makedepends=('cmake' 'help2man')
+install=$pkgname.install
+source=(http://download.savannah.nongnu.org/releases/$pkgname/$pkgname-$pkgver.tar.bz2)
+sha256sums=('f030d5ba5d4d2d449249c49b253a71de8c342b9b2f5e1e7d3e7ba5277e3f5e91')
+
+build() {
+ cd ${srcdir}/${pkgname}-fs-${pkgver}/build
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr ..
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-fs-${pkgver}/build
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/shake/shake.install b/community/shake/shake.install
new file mode 100644
index 000000000..572430c7f
--- /dev/null
+++ b/community/shake/shake.install
@@ -0,0 +1,8 @@
+post_install() {
+ echo "==> shake works faster if you mount your partions with the \"user_xattr\" option"
+}
+
+post_upgrade() {
+ post_install
+}
+
diff --git a/community/shapelib/LICENSE b/community/shapelib/LICENSE
new file mode 100644
index 000000000..71368d2b8
--- /dev/null
+++ b/community/shapelib/LICENSE
@@ -0,0 +1,21 @@
+Copyright
+The source for the Shapefile C Library is (c) 1998 Frank Warmerdam, and released under the following conditions. The intent is that anyone can do anything with the code, but that I do not assume any liability, nor express any warranty for this code.
+
+As of Shapelib 1.2.6 the core portions of the library are made available under two possible licenses. The licensee can choose to use the code under either the Library GNU Public License (LGPL) described in LICENSE.LGPL or under the following MIT style license. Any files in the Shapelib distribution without explicit copyright license terms (such as this documentation, the Makefile and so forth) should be considered to have the following licensing terms. Some auxilary portions of Shapelib, notably some of the components in the contrib directory come under slightly different license restrictions. Check the source files that you are actually using for conditions.
+
+Default License Terms
+Copyright (c) 1999, Frank Warmerdam
+
+This software is available under the following "MIT Style" license, or at the option of the licensee under the LGPL (see LICENSE.LGPL). This option is discussed in more detail in shapelib.html.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Shapelib Modifications
+I am pleased to receive bug fixes, and improvements for Shapelib. Unless the submissions indicate otherwise I will assume that changes submitted to me remain under the the above "dual license" terms. If changes are made to the library with the intention that those changes should be protected by the LGPL then I should be informed upon submission. Note that I will not generally incorporate changes into the core of Shapelib that are protected under the LGPL as this would effectively limit the whole file and distribution to LGPL terms.
+
+Opting for LGPL
+For licensee's opting to use Shapelib under LGPL as opposed to the MIT Style license above, and wishing to redistribute the software based on Shapelib, I would ask that all "dual license" modules be updated to indicate that only the LGPL (and not the MIT Style license) applies. This action represents opting for the LGPL, and thereafter LGPL terms apply to any redistribution and modification of the affected modules.
diff --git a/community/shapelib/PKGBUILD b/community/shapelib/PKGBUILD
new file mode 100644
index 000000000..7021f6efa
--- /dev/null
+++ b/community/shapelib/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 21347 2010-07-16 01:42:18Z tdziedzic $
+#Contributor: Bob Finch <w9ya@arrl.net>
+
+pkgname=shapelib
+pkgver=1.2.10
+pkgrel=4
+pkgdesc='simple C API for reading and writing ESRI Shapefiles'
+arch=('i686' 'x86_64')
+url='http://shapelib.maptools.org/'
+license=('LGPL' 'MIT')
+options=('!libtool')
+source=("http://dl.maptools.org/dl/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'LICENSE')
+md5sums=('4d96bd926167193d27bf14d56e2d484e'
+ '431dfe7afb1d2c082682ecfcc9ee7a34')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ sed -i -e s:'-O2':"${CFLAGS}": Makefile
+ make lib
+
+ sed -i -e s:/usr/local:${pkgdir}/usr: Makefile
+ sed -i -e s:/usr/bin/install:/bin/install: Makefile
+ make lib_install
+ install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/shell-fm/PKGBUILD b/community/shell-fm/PKGBUILD
new file mode 100644
index 000000000..d54031f18
--- /dev/null
+++ b/community/shell-fm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 15370 2010-04-10 21:42:26Z andrea $
+# Maintainer: Daenyth
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+
+pkgname=shell-fm
+pkgver=0.7
+pkgrel=3
+pkgdesc="A console based player for the streams provided by Last.FM"
+arch=('i686' 'x86_64')
+url="http://github.com/jkramer/$pkgname"
+license=('GPL')
+depends=('libmad' 'libao' 'taglib')
+source=($pkgname-$pkgver.tar.gz::http://github.com/jkramer/$pkgname/tarball/v$pkgver
+ as-needed.diff::http://bugs.gentoo.org/attachment.cgi?id=205574)
+md5sums=('3f83866622a892ee89685f1ed079eefd'
+ 'e49d91e2ee7145d8cfce8d43d0ef37c6')
+
+build() {
+ cd "$srcdir"/jkramer-$pkgname-*
+
+ patch -Np1 < "$srcdir/as-needed.diff" || return 1
+
+ make || return 1
+ make DESTDIR="$pkgdir" install
+
+ cd "$pkgdir/usr"
+ install -dm755 "$pkgdir/usr/share"
+ mv man share
+}
diff --git a/community/shfs-utils/PKGBUILD b/community/shfs-utils/PKGBUILD
new file mode 100644
index 000000000..13477b23d
--- /dev/null
+++ b/community/shfs-utils/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 24961 2010-08-29 19:56:51Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+
+pkgname=shfs-utils
+pkgver=0.35
+pkgrel=3
+pkgdesc="SHell FileSystem Linux utils"
+url="http://shfs.sourceforge.net/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('glibc' 'openssh')
+makedepends=('patch')
+source=(http://downloads.sourceforge.net/sourceforge/shfs/shfs-$pkgver.tar.gz \
+ $pkgname-make.patch)
+md5sums=('016f49d71bc32eee2b5d11fc1600cfbe'
+ '49fb94b139bc69927815127f0bf85159')
+
+build() {
+ cd ${srcdir}/shfs-$pkgver
+
+ patch -Np0 -i ${srcdir}/$pkgname-make.patch
+ make utils
+}
+
+package() {
+ cd ${srcdir}/shfs-$pkgver
+
+ make ROOT=${pkgdir} utils-install
+}
diff --git a/community/shfs-utils/shfs-utils-make.patch b/community/shfs-utils/shfs-utils-make.patch
new file mode 100644
index 000000000..7f7609558
--- /dev/null
+++ b/community/shfs-utils/shfs-utils-make.patch
@@ -0,0 +1,5 @@
+--- shfsmount/Makefile.orig 2010-08-29 21:50:47.000000000 +0200
++++ shfsmount/Makefile 2010-08-29 21:50:47.000000000 +0200
+@@ -10 +10 @@
+-SEARCHDIRS := -I- -I. -I../shfs/Linux-2.4/
++SEARCHDIRS := -I. -I../shfs/Linux-2.4/
diff --git a/community/shntool/PKGBUILD b/community/shntool/PKGBUILD
new file mode 100644
index 000000000..1d8db06de
--- /dev/null
+++ b/community/shntool/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: schuay <jakob.gruber@gmail.com>
+# Contributor: Michal Hybner <dta081@gmail.com>
+
+pkgname=shntool
+pkgver=3.0.10
+pkgrel=1
+pkgdesc="A multi-purpose WAVE data processing and reporting utility"
+arch=('i686' 'x86_64')
+url="http://www.etree.org/shnutils/shntool/"
+license=('GPL')
+options=(!emptydirs)
+depends=('glibc')
+source=("http://www.etree.org/shnutils/shntool/dist/src/${pkgname}-${pkgver}.tar.gz")
+md5sums=('5d41f8f42c3c15e3145a7a43539c3eae')
+sha1sums=('7a2bc8801e180cf582f0e39775603582e35d50d2')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd ${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/shotwell/PKGBUILD b/community/shotwell/PKGBUILD
new file mode 100644
index 000000000..9f2032eff
--- /dev/null
+++ b/community/shotwell/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 43057 2011-03-23 21:47:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
+
+pkgname=shotwell
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="A digital photo organizer designed for the GNOME desktop environment"
+arch=('i686' 'x86_64')
+url="http://yorba.org/shotwell/"
+license=('LGPL2.1')
+depends=('gconf' 'libgee' 'libgphoto2' 'libunique' 'libwebkit' 'libgexiv2' 'libraw' 'librsvg' 'json-glib'
+ 'desktop-file-utils' 'gnome-vfs')
+makedepends=('intltool' 'vala')
+install=shotwell.install
+source=(http://yorba.org/download/shotwell/0.9/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('6701d9a7c0a2f4f720fdeed1d6e54758')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas \
+ --disable-schemas-install \
+ --disable-desktop-update \
+ --disable-icon-update
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/shotwell/shotwell.install b/community/shotwell/shotwell.install
new file mode 100644
index 000000000..ceac19051
--- /dev/null
+++ b/community/shotwell/shotwell.install
@@ -0,0 +1,24 @@
+pkgname=shotwell
+
+post_install() {
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ update-desktop-database -q
+}
+
+post_remove() {
+ gtk-update-icon-cache -fq -t usr/share/icons/hicolor
+}
diff --git a/community/shp2svg/PKGBUILD b/community/shp2svg/PKGBUILD
new file mode 100644
index 000000000..5f8d1fb6e
--- /dev/null
+++ b/community/shp2svg/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 2514 2009-09-19 12:56:22Z ibiru $
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=shp2svg
+pkgver=0.5.1
+pkgrel=2
+pkgdesc="Takes the text input from shp2pgsql and converts it to SVG files"
+arch=('i686' 'x86_64')
+url="http://www.carto.net/papers/svg/utils/shp2svg/"
+license=('LGPL')
+depends=('postgis>=1.4' 'perl-math-round')
+source=(http://www.carto.net/papers/svg/utils/shp2svg/ogis2svg.pl)
+md5sums=('040103d8c83ee0d7095cad7d703d4e80')
+
+build() {
+ mkdir -p $startdir/pkg/usr/bin
+ install -m755 $startdir/src/ogis2svg.pl $startdir/pkg/usr/bin/ogis2svg.pl
+ # add a symlink because the name of the script is a little confusing.
+ ln -sf /usr/bin/ogis2svg.pl $startdir/pkg/usr/bin/shp2svg
+}
diff --git a/community/shuffle/ChangeLog b/community/shuffle/ChangeLog
new file mode 100644
index 000000000..999ca2cf9
--- /dev/null
+++ b/community/shuffle/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Got license from W3C website
diff --git a/community/shuffle/LICENSE b/community/shuffle/LICENSE
new file mode 100644
index 000000000..f695583f8
--- /dev/null
+++ b/community/shuffle/LICENSE
@@ -0,0 +1,88 @@
+W3C Intellectual Rights Notice and Legal Disclaimers
+
+This page includes notices and disclaimers related to:
+
+ 1. Copyright
+ 2. Notices
+ 3. Trademarks
+ 4. Disclaimers and Liabilities
+
+Copyright 1994-2006 W3C (Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University), All Rights Reserved.
+
+World Wide Web Consortium (W3C) web site pages may contain other proprietary notices and copyright information, the terms of which must be observed and followed. Specific notices do exist for W3C documents and software. Also, there are specific usage policies associated with some of the W3C Icons. Please see our Intellectual Rights FAQ for common questions about using materials from our site.
+Notice and Disclaimers
+
+1. Unless otherwise noted, all materials contained in this Site are copyrighted and may not be used except as provided in these terms and conditions or in the copyright notice (documents and software) or other proprietary notice provided with the relevant materials.
+
+2. The materials contained in the Site may be downloaded or copied provided that ALL copies retain the copyright and any other proprietary notices contained on the materials. No material may be modified, edited or taken out of context such that its use creates a false or misleading statement or impression as to the positions, statements or actions of W3C.
+
+3. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the Web site, its content, specifications, or software without specific, written prior permission. Title to copyright in Web site documents will at all times remain with copyright holders. Use of W3C trademarks and service marks is covered by the W3C Trademark and Servicemark License.
+
+4. Caches of W3C materials should comply with the "maximum time to live" information provided with the materials. After such materials have expired they should not be served from caches without first validating the contents of the W3C Site. Organizations that want to mirror W3C content must abide by the W3C Mirroring Policy.
+W3CTrademarks and Generic Terms
+Trademarks owned by W3C host institutions on behalf of W3C and generic terms used by the W3C
+
+5. The trademarks, logos, and service marks (collectively the "Trademarks") displayed on the Site are registered and unregistered Trademarks of the Massachusetts Institute of Technology (MIT), European Research Consortium for Informatics and Mathematics (ERCIM), or Keio University (Keio). All use of the W3C Trademarks is governed by the W3C Trademark and Servicemark License. No additional rights are granted by implication, estoppel, or otherwise. Terms which claimed as generic are not governed by any W3C license and are used as common descriptors by the W3C.
+
+The following is a list of W3C terms claimed as a trademark or generic term by MIT, ERCIM, and/or Keio on behalf of the W3C:
+
+ W3C, World Wide Web Consortium (registered in numerous countries)
+ Amaya™, a Web Browser/Editor
+ ACSS (generic), Aural Cascading Style Sheets
+ CSS (generic), Cascading Style Sheets Specification
+ DOM (generic), Document Object Model
+ DSig (generic), Digital Signature Initiative
+ HTML (generic), HyperText Markup Language
+ HTTP (generic), Hypertext Transfer Protocol
+ JEP (generic)I, Joint Electronic Payment Initiative
+ Jigsaw™, Java Web Server
+ MathML (generic), Mathematical Markup Language
+ Metadata (generic)
+ P3P, Platform for Privacy Preferences Project
+ PICS (generic), Platform for Internet Content Selection
+ PICSRules (generic), Rules Language for PICS
+ RDF (generic), Resource Description Framework
+ SMIL (generic), Synchronized Multimedia Integration Language
+ SVG (generic), Scalable Vector Graphics
+ WAI™, Web Accessibility Initiative
+ WebFonts (generic)
+ XENC (generic), XML Encryption
+ XHTML (generic), The Extensible HyperText Markup Language
+ XML (generic), Extensible Markup Language
+ XMLDSIG (generic), XML Signatures
+ XSL (generic), Extensible Stylesheet Language
+
+The absence of a product or service name or logo from this list does not constitute a waiver of MIT's, ERCIM's, or Keio's trademark, ability to use a generic term, or other intellectual rights concerning that name or logo.
+
+Any questions concerning the use, status, or standing of W3C trademarks should be directed to: site-policy@w3.org or to W3C, Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of Technology, 77 Massachusetts Ave., Cambridge, MA 02139 USA.
+Non-W3C Trademarks; Member Trademarks
+
+The trademarks, logos, and service marks not owned on behalf of the W3C and that are displayed on the Site are the registered and unregistered marks of their respective owners. No rights are granted by the W3C to use such marks, whether by implication, estoppel, or otherwise.
+
+ * "METADATA" is a trademark of the Metadata Company. W3C uses the term "metadata" in a descriptive sense, meaning "data about data". W3C is not in any way affiliated with the Metadata Company.
+
+Legal Disclaimers
+
+6. W3C has not reviewed any or all of the web sites linked to this Site and is not responsible for the content of any off-site pages or any other web sites linked to this Site. Please understand that any non-W3C web site is independent from W3C, and W3C has no control over the content on that web site. In addition, a link to a non-W3C web site does not mean that W3C endorses or accepts any responsibility for the content, or the use, of such site. It is the user's responsibility to take precautions to ensure that whatever is selected is free of such items as viruses, worms, Trojan horses and other items of a destructive nature.
+
+7. Information W3C publishes on its Site may contain references or cross references to W3C specifications, projects, programs and services that are not announced or available in your country. Such references do not imply that W3C intends to announce such specifications, projects, programs or services in your country.
+
+8. Information on this Site may contain technical inaccuracies or typographical errors. Information may be changed or updated without notice. W3C may make improvements and/or changes in the materials contained in or described on this site at any time without notice. W3C may also make changes in these Terms and Conditions without notice. User is bound by such revisions and should therefore periodically visit this page to review the then current Terms and Conditions.
+9. Limitation on Warranties.
+
+ALL MATERIALS ON THE W3C SITE ARE PROVIDED "AS IS." W3C, MIT, ERCIM, AND KEIO MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON-INFRINGEMENT. AS TO DOCUMENTS AND GRAPHICS PUBLISHED ON THIS SITE, W3C, MIT, ERCIM, AND KEIO MAKE NO REPRESENTATION OR WARRANTY THAT THE CONTENTS OF SUCH DOCUMENT OR GRAPHICS ARE FREE FROM ERROR OR SUITABLE FOR ANY PURPOSE; NOR THAT IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+Please note that some jurisdictions may not allow the exclusion of implied warranties, so some of the above exclusions may not apply to you.
+10. Limitation on Liability.
+
+IN NO EVENT WILL W3C, MIT, ERCIM, AND KEIO BE LIABLE TO ANY PARTY FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES FOR ANY USE OF THIS SITE, OR ON ANY OTHER HYPERLINKED WEB SITE, INCLUDING, WITHOUT LIMITATION, ANY LOST PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA ON YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN IF W3C, MIT, ERCIM, OR KEIO IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+______________
+
+Please see our Intellectual Rights FAQ for common questions about using materials from our site. Questions about this notice can be directed to site-policy@w3.org .
+
+Joseph Reagle <site-policy@w3.org>
+
+Last revised $Id: LICENSE,v 1.1 2007/06/28 20:55:36 tardo Exp $
+
+Copyright 1998-2006 W3C (MIT,ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
diff --git a/community/shuffle/PKGBUILD b/community/shuffle/PKGBUILD
new file mode 100644
index 000000000..35b02a375
--- /dev/null
+++ b/community/shuffle/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 17671 2010-05-24 20:38:13Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=shuffle
+pkgver=1.5
+pkgrel=2
+pkgdesc="Shuffles lines of input."
+arch=('i686' 'x86_64')
+url="http://www.w3.org/People/Bos/Shuffle/"
+license=('custom')
+depends=(glibc)
+makedepends=('gcc')
+source=(http://www.w3.org/People/Bos/Shuffle/shuffle.c LICENSE)
+md5sums=('d337c7e4db93489e3a30ffc8f89ec363'
+ '9dafa5ef909b8a6db992bb8819d3832a')
+
+build() {
+ cd $srcdir
+ gcc -o shuffle shuffle.c
+ install -D -m 755 shuffle $pkgdir/usr/bin/shuffle
+ install -D -m 644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/siege/PKGBUILD b/community/siege/PKGBUILD
new file mode 100644
index 000000000..3910b7133
--- /dev/null
+++ b/community/siege/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer: Florian Pritz <flo@xinu.at>
+# Contributor: Sven Kauber <celeon@gmail.com>
+
+pkgname=siege
+pkgver=2.70
+pkgrel=2
+arch=('i686' 'x86_64')
+license=('GPL')
+pkgdesc="An http regression testing and benchmarking utility"
+url="http://www.joedog.org/JoeDog/Siege"
+depends=('openssl')
+options=(!libtool)
+source=("ftp://sid.joedog.org/pub/siege/${pkgname}-${pkgver}.tar.gz")
+backup=(etc/siegerc etc/urls.txt)
+
+build() {
+ cd "${srcdir}/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-$pkgver"
+
+ install -d -m755 "$pkgdir/etc"
+ install -d -m755 "$pkgdir/usr/share"
+ make DESTDIR="$pkgdir" sysconfdir="$pkgdir/etc" install
+ sed -i 's/^# file =$/file = \/etc\/urls.txt/' "$pkgdir/etc/siegerc"
+}
+
+md5sums=('835c7a0606851357ebf03084ff546310')
diff --git a/community/sigil/PKGBUILD b/community/sigil/PKGBUILD
new file mode 100644
index 000000000..612d07486
--- /dev/null
+++ b/community/sigil/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 37601 2011-01-15 09:55:00Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Larry Hajali <larryhaja [at] gmail [dot] com>
+
+pkgname=sigil
+_pkgname=Sigil
+pkgver=0.3.4
+pkgrel=1
+pkgdesc="A WYSIWYG ebook editor"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/sigil/"
+license=('GPL3')
+depends=('qt')
+makedepends=('cmake')
+install=sigil.install
+source=(http://${pkgname}.googlecode.com/files/${_pkgname}-${pkgver}-Code.zip
+ ${pkgname}.desktop)
+md5sums=('6f83a8ee12d6f5918fe50b8314e63760'
+ 'fef6aa492af487ccccd6b133635cee5a')
+
+build() {
+ cd ${_pkgname}-${pkgver}-Code
+
+ mkdir build
+ cd build
+ cmake -G "Unix Makefiles" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_C_FLAGS:STRING="${CFLAGS}" \
+ -DCMAKE_CXX_FLAGS:STRING="${CXXFLAGS}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON .. || return 1
+
+ make || return 1
+}
+
+package() {
+ cd ${_pkgname}-${pkgver}-Code/build
+
+ make install DESTDIR="${pkgdir}" || return 1
+
+ install -d -m 0755 "${pkgdir}"/usr/share/applications || return 1
+ install -m 0644 "${srcdir}"/${pkgname}.desktop "${pkgdir}"/usr/share/applications || return 1
+
+ for _pic in 16 32 48 128 256; do
+ install -D -m 0644 ../src/Sigil/Resource_Files/icon/app_icon_${_pic}.png \
+ "${pkgdir}"/usr/share/icons/hicolor/${_pic}x${_pic}/apps/${pkgname}.png || return 1
+ done
+}
diff --git a/community/sigil/sigil.desktop b/community/sigil/sigil.desktop
new file mode 100755
index 000000000..4f3a14d20
--- /dev/null
+++ b/community/sigil/sigil.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Name=Sigil
+Comment=E-book reader and WYSIWYG editor
+TryExec=sigil
+Exec=sigil
+Icon=sigil
+Categories=Office;
+Terminal=false
+StartupNotify=false
diff --git a/community/sigil/sigil.install b/community/sigil/sigil.install
new file mode 100644
index 000000000..ec506fa93
--- /dev/null
+++ b/community/sigil/sigil.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/silly/PKGBUILD b/community/silly/PKGBUILD
new file mode 100644
index 000000000..390c82194
--- /dev/null
+++ b/community/silly/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 63954 2010-01-19 05:25:26Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
+
+pkgname=silly
+pkgver=0.1.0
+pkgrel=4
+pkgdesc="Simple Image Loading LibrarY, a part of the CEGUI project"
+arch=('i686' 'x86_64')
+url="http://www.cegui.org.uk/wiki/index.php/SILLY"
+license=('MIT')
+depends=('libjpeg' 'libpng' 'gcc-libs')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/crayzedsgui/SILLY-${pkgver}.tar.gz)
+md5sums=('c3721547fced7792a36ffc9ce6ec23fd')
+sha1sums=('ef5c8ed6c5c57d7d792dbb9e02006c3770334869')
+
+build() {
+ cd "${srcdir}/SILLY-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
+}
diff --git a/community/simgear/PKGBUILD b/community/simgear/PKGBUILD
new file mode 100644
index 000000000..3e745df7f
--- /dev/null
+++ b/community/simgear/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 15902 2010-04-17 20:44:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+# Contributor: Hans Janssen <hans@janserv.xs4all.nl>
+
+pkgname=simgear
+pkgver=2.0.0
+pkgrel=2
+pkgdesc="A set of open-source libraries designed to be used as building blocks for quickly assembling 3d simulations, games, and visualization applications."
+arch=(i686 x86_64)
+depends=('glut' 'freealut' 'plib' 'openscenegraph')
+makedepends=('boost')
+license=("GPL")
+url="http://www.simgear.org"
+options=('!makeflags')
+source=(ftp://mirrors.ibiblio.org/pub/mirrors/simgear/ftp/Source/SimGear-$pkgver.tar.gz)
+md5sums=('414bea545ea1e8ce17e4aa0809159cec')
+
+build() {
+ cd $startdir/src/SimGear-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/simh/LICENSE b/community/simh/LICENSE
new file mode 100644
index 000000000..5b0273020
--- /dev/null
+++ b/community/simh/LICENSE
@@ -0,0 +1,24 @@
+ Original code published in 1993-2005, written by Robert M Supnik
+ Copyright (c) 1993-2005, Robert M Supnik
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of Robert M Supnik shall not be
+ used in advertising or otherwise to promote the sale, use or other dealings
+ in this Software without prior written authorization from Robert M Supnik.
+
diff --git a/community/simh/PKGBUILD b/community/simh/PKGBUILD
new file mode 100644
index 000000000..737b69e8f
--- /dev/null
+++ b/community/simh/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 20494 2010-07-08 14:10:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: waterbear <st92.at.freeshell.org>
+
+pkgname=simh
+pkgver=3.8.1
+_pkgver=38-1
+pkgrel=2
+pkgdesc="simulator for assorted historical computers, from Altair to VAX"
+arch=('i686' 'x86_64')
+url="http://simh.trailing-edge.com"
+license=("BSD")
+depends=("libpcap" "glibc")
+makedepends=("unzip")
+install=simh.install
+source=("http://simh.trailing-edge.com/sources/simhv${_pkgver}.zip" \
+ "LICENSE")
+md5sums=('e15f65a82e21ea49e14b438326d93d5c'
+ 'd56eefa5d020ee2b77d21280fef80e3d')
+
+build() {
+ cd $srcdir/
+
+ mkdir BIN || true
+ find ./VAX -type f -exec sed -i 's#SIM_INLINE##' {} \;
+ make USE_NETWORK=1 NETWORK_OPT='-DUSE_NETWORK -isystem /usr/include /usr/lib/libpcap.a -lnl' || exit 1
+
+ mkdir -p $pkgdir/usr/bin
+ cd BIN
+ for i in *; do cp $i $pkgdir/usr/bin/simh-$i; done
+ mkdir -p $pkgdir/usr/lib/simh
+ cd ../VAX
+ cp *.bin $pkgdir/usr/lib/simh
+ mkdir -p $pkgdir/usr/share/licenses/$pkgname
+ cp $srcdir/LICENSE $pkgdir/usr/share/licenses/$pkgname
+}
diff --git a/community/simh/simh.install b/community/simh/simh.install
new file mode 100644
index 000000000..19779ad80
--- /dev/null
+++ b/community/simh/simh.install
@@ -0,0 +1,23 @@
+# arg 1: the new package version
+post_install() {
+ echo -e "-> The VAX ROM images are located in /usr/lib/simh."
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
diff --git a/community/simple-scan/PKGBUILD b/community/simple-scan/PKGBUILD
new file mode 100644
index 000000000..be7ae595f
--- /dev/null
+++ b/community/simple-scan/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Joeny Ang <ang(dot)joeny(at)gmail(dot)com>
+
+pkgname=simple-scan
+pkgver=2.32.0.1
+pkgrel=1
+pkgdesc='Simple scanning utility'
+arch=('i686' 'x86_64')
+url='http://launchpad.net/simple-scan'
+license=('GPL3')
+depends=('sane' 'gconf')
+makedepends=('gnome-doc-utils' 'intltool')
+install="${pkgname}.install"
+source=("http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver:0:4}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('9c0682f1aa6b338222b973fec6162e87')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --with-gconf-schema-file-dir=/usr/share/gconf/schemas \
+ --disable-schemas-install
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/simple-scan/simple-scan.install b/community/simple-scan/simple-scan.install
new file mode 100644
index 000000000..9893818d9
--- /dev/null
+++ b/community/simple-scan/simple-scan.install
@@ -0,0 +1,24 @@
+pkgname=simple-scan
+
+post_install() {
+ echo -n "Installing GConf schemas..."
+ usr/sbin/gconfpkg --install ${pkgname}
+
+ [ $? -eq 0 ] && echo " Done." || echo " FAILED!"
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo -n "Removing GConf schemas..."
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+
+ [ $? -eq 0 ] && echo " Done." || echo " FAILED!"
+}
+
diff --git a/community/sisctrl/PKGBUILD b/community/sisctrl/PKGBUILD
new file mode 100644
index 000000000..e691edfe2
--- /dev/null
+++ b/community/sisctrl/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 17674 2010-05-24 20:38:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: ice-man <icemanf@gmail.com>
+
+pkgname=sisctrl
+pkgver=0.0.20051202
+pkgrel=5
+arch=(i686 x86_64)
+pkgdesc="SiSCtrl is Display Control Panel for XFree86/X.org SiS driver"
+makedepends=('pkgconfig')
+depends=('gtk2' 'libxxf86vm' 'libxv')
+url="http://www.winischhofer.eu/linuxsisvga.shtml"
+license=("GPL")
+source=(http://www.winischhofer.net/sis/sisctrl-$pkgver.tar.gz)
+md5sums=('d9db755fe9fd40809b5c30d1ab286d62')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ if [ -e /usr/lib/libXv.so ]; then
+ ./configure --with-xv-path=/usr/lib
+ else
+ ./configure
+ fi
+
+ make || return 1
+
+ mkdir -p $pkgdir/usr/bin
+ mkdir -p $pkgdir/usr/man/man1/
+ mkdir -p $pkgdir/usr/share/pixmaps
+ mkdir -p $pkgdir/usr/share/applications
+
+ install -m 755 sisctrl $pkgdir/usr/bin && \
+ cp sisctrl.1x sisctrl.1; gzip sisctrl.1 && \
+ install -m 644 sisctrl.1.gz $pkgdir/usr/man/man1/ && \
+ install -m 644 icons/32x32/sisctrl.xpm $pkgdir/usr/share/pixmaps && \
+ install -m 644 icons/16x16/sisctrl.png $pkgdir/usr/share/pixmaps/sisctrl_16x16.png && \
+ install -m 644 icons/32x32/sisctrl.png $pkgdir/usr/share/pixmaps/sisctrl_32x32.png && \
+ install -m 644 icons/48x48/sisctrl.png $pkgdir/usr/share/pixmaps/sisctrl_48x48.png && \
+ install -m 644 extra/sisctrl.desktop $pkgdir/usr/share/applications || return 1
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/sk1/PKGBUILD b/community/sk1/PKGBUILD
new file mode 100644
index 000000000..551df34a5
--- /dev/null
+++ b/community/sk1/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 31273 2010-10-29 11:31:49Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: ConnorBehan <connor.behan@gmail.com>
+
+pkgname=sk1
+pkgver=0.9.1
+pkgrel=6
+pkgdesc="Fork of skencil with improved CMYK support"
+arch=(i686 x86_64)
+url="http://sk1project.org/modules.php?name=Products&product=sk1"
+depends=('tcl>=7.6' 'tk>=4.2' 'python-lcms' 'pil>=1.0' 'pyxml' 'zenity' 'sk1libs')
+license=('GPL' 'LGPL')
+source=(http://sk1project.org/downloads/sk1/${pkgver}pre_rev905/sK1-${pkgver}pre_rev905.tar.gz
+ sk1.desktop
+ build-fix.patch)
+md5sums=('43b82fd85049b078dcf98e9dd81fdc6a'
+ 'bbf6f10b8155838eede93b5abed724f5'
+ 'de144f0193cf1cd61771ce7bc782dba2')
+
+build() {
+ local _tclver=`pacman -Q tcl`
+ local _tclnum=${tclver:4:3}
+ local _tcldir='tcl'${tclnum}
+
+ cd $srcdir/sK1-${pkgver}pre
+
+ # python2 fix
+ sed -i 's_#! /usr/bin/python_#! /usr/bin/python2_' src/__init__.py
+
+ patch -p1 <$srcdir/build-fix.patch
+ python2 setup.py install --prefix=/usr --root=$pkgdir
+
+ mkdir -p $pkgdir/usr/share/pixmaps
+ mkdir -p $pkgdir/usr/share/applications
+
+ cp $pkgdir/usr/lib/python2.7/site-packages/sk1/share/icons/CrystalSVG/icon_sk1_32.png \
+ $pkgdir/usr/share/pixmaps/sk1.png
+
+ cp $srcdir/sk1.desktop $pkgdir/usr/share/applications
+
+ mkdir $pkgdir/usr/lib/${_tcldir}
+ cp -r $pkgdir/usr/lib/python2.7/site-packages/sk1/share/ttk-themes/Plastik \
+ $pkgdir/usr/lib/${_tcldir}/Plastik
+
+ sed -i 's#^python#python2#' $pkgdir/usr/bin/sk1
+}
diff --git a/community/sk1/build-fix.patch b/community/sk1/build-fix.patch
new file mode 100644
index 000000000..37bc8e135
--- /dev/null
+++ b/community/sk1/build-fix.patch
@@ -0,0 +1,14 @@
+diff -wbBur sK1-0.9.1pre/setup.py sK1-0.9.1pre.my/setup.py
+--- sK1-0.9.1pre/setup.py 2010-01-10 06:24:54.000000000 +0000
++++ sK1-0.9.1pre.my/setup.py 2010-02-24 21:19:02.000000000 +0000
+@@ -149,8 +149,8 @@
+ filter_src+'stringfilter.c', filter_src+'binfile.c', filter_src+'hexfilter.c'])
+
+ #Fix for Debian based distros
+- tcl_include_dirs = []
+- tcl_ver=''
++ tcl_include_dirs = ['/usr/include']
++ tcl_ver='8.5'
+ if os.path.isdir('/usr/include/tcl8.5'):
+ tcl_include_dirs = ['/usr/include/tcl8.5']
+ tcl_ver ='8.5'
diff --git a/community/sk1/sk1.desktop b/community/sk1/sk1.desktop
new file mode 100644
index 000000000..6e1878e6e
--- /dev/null
+++ b/community/sk1/sk1.desktop
@@ -0,0 +1,59 @@
+
+[Desktop Entry]
+Encoding=UTF-8
+Name=sk1
+GenericName=Vector-based Drawing Program
+GenericName[af]=Vector-based Teken Program
+GenericName[bg]=екоѬна гѬаи!на пѬогѬама за Ѭиђване
+GenericName[bs]=Program za vektorsko crtanje
+GenericName[ca]=Programa de dibuix basat en els vectors
+GenericName[cs]=Vektorový kreslprogram
+GenericName[da]=Vektorbaseret tegneprogram
+GenericName[de]=Vektorbasiertes Zeichenprogramm
+GenericName[el]= Rγαμμα 0γα ική αϒιϒμνη ϒε ιανϒμαα
+GenericName[eo]=Vektor-desegnilo
+GenericName[es]=Programa de dibujo vectorial
+GenericName[et]=Vektorgraafika joonistamine
+GenericName[eu]=Marazteko Programa Bektoriala
+GenericName[fa]=بر ا&!RR رس& بردارR
+GenericName[fi]=Vektoripohjainen piirto-ohjelma
+GenericName[fr]=Logiciel de dessin vectoriel
+GenericName[he]=ת": "ת צ""ר ~"ססת "ק"ר"
+GenericName[hr]=Vektorski program za crtanje
+GenericName[hu]=vektoros rajzolóprogram
+GenericName[is]=Vigrað teikniforrit
+GenericName[it]=Programma di disegno vettoriale
+GenericName[ja]="㒫0㒼㒳㒩
+GenericName[lo]=:ຣຣມວາ~າaaa໬ວັ໬"ີ
+GenericName[lt]=Vektorinio paišymo programa
+GenericName[lv]=Uz Vektoriem bztas Zīmšanas Programma
+GenericName[mk]=екоѬки базиѬан пѬогѬам за Ѭаaе
+GenericName[mn]=екоѬв ђлгђђлаан зђѬгийн пѬогѬам
+GenericName[mt]=Programm biex tpinġi b'vektori
+GenericName[nb]=Vektorbasert tegneprogram
+GenericName[nl]=vector-gebaseerd tekenprogramma
+GenericName[nn]=Vektorbasert teikneprogram
+GenericName[nso]=Lenaneo lago Taka leo le Lebisitswego ka Vector
+GenericName[pl]=Wektorowy program do rysowania
+GenericName[pt]=Programa de Desenho Vectorial
+GenericName[pt_BR]=Programa de Desenho baseado em Vetor
+GenericName[ro]=Program de desenare vectorialĒ
+GenericName[ru]=xѬогѬамма векоѬной гѬаики
+GenericName[se]=Vektorvuooduvvon sárgonprográmma
+GenericName[sk]=Vektorový kresliaci program
+GenericName[sl]=Program za vektorsko risanje
+GenericName[sv]=Vektorbaserat ritprogram
+GenericName[th]=:รรมวา า~aa๬ว๬"ุR
+GenericName[tr]=Vektor Tabanlı !izim Programı
+GenericName[uk]=xѬогѬама воѬенн векоѬни& зобѬаженR
+GenericName[ven]=Mbekanyamushumo yo olwaho sa Vekitha
+GenericName[vi]=Trình vẽ kiỒu Vector
+GenericName[xh]=Inkqubo Yomzobo Osekwe-Kwimitha Yovavanyo
+GenericName[zh_CN]=x!:9
+GenericName[zh_TW]=!繪S9
+GenericName[zu]=Uhlelo lwemisebenzi olusekelwe kwi-Vector
+Exec=/usr/bin/sk1
+Categories=Application;Graphics;
+Terminal=false
+Type=Application
+Icon=/usr/share/pixmaps/sk1.png
diff --git a/community/sk1libs/PKGBUILD b/community/sk1libs/PKGBUILD
new file mode 100644
index 000000000..e5c014b93
--- /dev/null
+++ b/community/sk1libs/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 29325 2010-10-13 10:33:39Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=sk1libs
+pkgver=0.9.1
+pkgrel=2
+pkgdesc='A set of python non-GUI extensions for sK1 Project.'
+arch=('i686' 'x86_64')
+url='http://sk1project.org/'
+license=('custom:LGPL2')
+depends=('python2' 'freetype2' 'lcms')
+source=("${pkgname}-${pkgver}.tar.gz::http://sk1project.org/dc.php?target=${pkgname}-${pkgver}.tar.gz")
+md5sums=('e18088bbc8a105e7535a96f40b80f284')
+
+build() {
+ cd ${pkgname}-${pkgver}
+ python2 setup.py build
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+ python2 setup.py install --root ${pkgdir}
+ install -D -m644 GNU_LGPL_v2 ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/skrooge/PKGBUILD b/community/skrooge/PKGBUILD
new file mode 100644
index 000000000..6805f7ae6
--- /dev/null
+++ b/community/skrooge/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 42177 2011-03-15 08:11:50Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: neuromante <lorenzo.nizzi.grifi@gmail.com>
+
+pkgname=skrooge
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="A personal finances manager for KDE"
+arch=('i686' 'x86_64')
+url="http://skrooge.org/"
+license=('GPL')
+depends=('kdebase-runtime' 'libofx' 'qca-ossl')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+install=$pkgname.install
+source=("http://skrooge.org/files/$pkgname-$pkgver.tar.bz2")
+md5sums=('417f5668d9ec07b715c8fc7023460c27')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake . -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/skrooge/skrooge.install b/community/skrooge/skrooge.install
new file mode 100644
index 000000000..7edfb0647
--- /dev/null
+++ b/community/skrooge/skrooge.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+ kbuildsycoca4 &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/skype-call-recorder/PKGBUILD b/community/skype-call-recorder/PKGBUILD
new file mode 100644
index 000000000..83f944c97
--- /dev/null
+++ b/community/skype-call-recorder/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 6063 2009-11-28 12:03:50Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Tarinaky <tarinaky@hunity.co.uk>
+
+pkgname=skype-call-recorder
+pkgver=0.8
+pkgrel=1
+pkgdesc="Open source tool that allows you to record your Skype calls on Linux"
+arch=('i686' 'x86_64')
+url="http://atdot.ch/scr/"
+license=('GPL')
+depends=('qt' 'libvorbis' 'lame' 'id3lib' 'hicolor-icon-theme')
+makedepends=('cmake')
+install=skype-call-recorder.install
+source=(http://atdot.ch/scr/files/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('937544a5245fdcfa50878d083dab706a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/skype-call-recorder/skype-call-recorder.install b/community/skype-call-recorder/skype-call-recorder.install
new file mode 100644
index 000000000..e4f8fd06c
--- /dev/null
+++ b/community/skype-call-recorder/skype-call-recorder.install
@@ -0,0 +1,13 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/sleuthkit/PKGBUILD b/community/sleuthkit/PKGBUILD
new file mode 100644
index 000000000..cf86c3ac8
--- /dev/null
+++ b/community/sleuthkit/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 32586 2010-11-15 00:28:04Z lfleischer $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=sleuthkit
+pkgver=3.2.0
+pkgrel=1
+pkgdesc='File system and media management forensic analysis tools.'
+arch=('i686' 'x86_64')
+url='http://www.sleuthkit.org/sleuthkit'
+license=('GPL2' 'CPL' 'custom:"IBM Public Licence"')
+depends=('perl')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('05517963942aa92be77c05ca1c47f0de')
+
+build() {
+ cd "${pkgname}-${pkgver}"
+
+ ./configure --without-afflib --without-ewf --prefix=/usr
+ make LDFLAGS+="-lpthread -ldl"
+}
+
+package() {
+ cd "${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # licenses
+ install -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -Dm0644 licenses/* "${pkgdir}/usr/share/licenses/${pkgname}"
+}
diff --git a/community/slimevolley/PKGBUILD b/community/slimevolley/PKGBUILD
new file mode 100644
index 000000000..0259f974e
--- /dev/null
+++ b/community/slimevolley/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 33998 2010-11-30 17:47:24Z lcarlier $
+# Maintainer : Geoffroy Carrier <gcarrier@aur.archlinux.org>
+# Contributor: Joel Schaerer <joel.schaerer@laposte.net>
+
+pkgname=slimevolley
+pkgver=2.4.2
+pkgrel=1
+pkgdesc="A simple yet fun arcade volley game"
+arch=('i686' 'x86_64')
+url="http://slime.tuxfamily.org/index.php"
+license=('GPL')
+depends=('sdl_net' 'sdl_ttf' 'sdl_image')
+makedepends=('cmake')
+source=("http://downloads.tuxfamily.org/slime/v242/${pkgname}_${pkgver}.tar.bz2")
+md5sums=('42d1287bf459c26475a9bb7a9bb167e5')
+
+build() {
+ cd "$srcdir/$pkgname"
+
+ cmake -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr .
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/sloccount/PKGBUILD b/community/sloccount/PKGBUILD
new file mode 100644
index 000000000..268e4d74b
--- /dev/null
+++ b/community/sloccount/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 17768 2010-05-25 12:20:54Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Christof Musik <christof@senfdax.de>
+
+pkgname=sloccount
+pkgver=2.26
+pkgrel=5
+pkgdesc="Tools for counting physical source lines of code"
+url="http://www.dwheeler.com/sloccount/"
+license=('GPL')
+depends=('perl')
+arch=('i686' 'x86_64')
+source=(http://www.dwheeler.com/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('09abd6e2a016ebaf7552068a1dba1249')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -dm755 "${pkgdir}/usr/bin" || return 1
+ make PREFIX="${pkgdir}/usr" install || return 1
+ mv "${pkgdir}/usr/share/doc/sloccount-2.26-1" "${pkgdir}/usr/share/doc/sloccount" || return 1
+ chmod 644 "$pkgdir/usr/share/doc/sloccount/"*
+}
diff --git a/community/slock/PKGBUILD b/community/slock/PKGBUILD
new file mode 100644
index 000000000..94d990dd0
--- /dev/null
+++ b/community/slock/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 34365 2010-12-06 15:14:05Z bluewind $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sebastian A. Liem <sebastian at liem dot se>
+
+pkgname=slock
+pkgver=0.9
+# Fix FS#21738
+_pkgver="4d3769ac5d02"
+pkgrel=6
+pkgdesc="A simple screen locker for X"
+arch=('i686' 'x86_64')
+url="http://tools.suckless.org/slock"
+license=('MIT')
+depends=('libxext')
+#http://dl.suckless.org/tools/$pkgname-$pkgver.tar.gz
+source=("slock-$pkgver.tar.bz2::http://hg.suckless.org/slock/archive/$_pkgver.tar.bz2")
+md5sums=('81ca629668cc81f41022fbd094bee3ee')
+
+build() {
+ cd "$srcdir/slock-$_pkgver"
+ make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
+}
+
+package() {
+ cd "$srcdir/slock-$_pkgver"
+
+ make PREFIX=/usr DESTDIR="$pkgdir" install
+ install -m644 -D LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/slrn/PKGBUILD b/community/slrn/PKGBUILD
new file mode 100644
index 000000000..907711e16
--- /dev/null
+++ b/community/slrn/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 14232 2010-04-02 09:39:09Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Grigorios Bouzakis <grbzks[at]gmail[dot]com>
+
+pkgname=slrn
+pkgver=0.9.9p1
+pkgrel=6
+pkgdesc="An open source text-based news client"
+arch=('i686' 'x86_64')
+url="http://www.slrn.org/"
+license=('GPL')
+depends=('openssl' 'slang')
+makedepends=('uudeview')
+optdepends=('metamail')
+options=('!makeflags' 'docs' 'zipman')
+backup=(etc/slrnrc)
+source=(http://downloads.sourceforge.net/slrn/$pkgname-$pkgver.tar.gz)
+md5sums=('6cc8ac6baaff7cc2a8b78f7fbbe3187f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-setgid-code \
+ --with-slrnpull --with-ssl --with-uu \
+ --with-uulib=/usr/lib/uudeview \
+ --with-uuinc=/usr/include/uudeview \
+ --enable-spoilers
+
+ make || return 1
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 doc/slrn.rc $pkgdir/etc/slrnrc
+}
diff --git a/community/smalltalk/PKGBUILD b/community/smalltalk/PKGBUILD
new file mode 100644
index 000000000..eaff100cd
--- /dev/null
+++ b/community/smalltalk/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 43064 2011-03-23 21:53:14Z kchen $
+# 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=1
+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; 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/smbnetfs/PKGBUILD b/community/smbnetfs/PKGBUILD
new file mode 100644
index 000000000..d03000d33
--- /dev/null
+++ b/community/smbnetfs/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 38375 2011-01-26 10:26:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=smbnetfs
+pkgver=0.5.3a
+pkgrel=3
+pkgdesc="small C program that mounts Microsoft network neighborhood in single directory."
+arch=('i686' 'x86_64')
+url="http://smbnetfs.sourceforge.net/"
+license=('GPL')
+depends=('fuse' 'smbclient')
+backup=(etc/smbnetfs/.smb/smb.conf \
+ etc/smbnetfs/.smb/smbnetfs.conf \
+ etc/smbnetfs/.smb/smbnetfs.auth \
+ etc/smbnetfs/.smb/smbnetfs.host)
+install=smbnetfs.install
+options=(force docs)
+source=(http://downloads.sourceforge.net/smbnetfs/$pkgname-$pkgver.tar.bz2 \
+ rc-smbnetfs \
+ conf-smbnetfs)
+md5sums=('66d1477ca981f5a07b4b21c6bdbdc442'
+ '68c824ba670aa9173382d17eae574e8f'
+ 'e150c4cd894cc6ade11b94c95cf17ec4')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --docdir=/usr/share/doc/smbnetfs --with-gnome-keyring=no
+ make
+ make DESTDIR=$pkgdir install
+
+ mv $pkgdir/usr/share/doc/smbnetfs* $pkgdir/usr/share/doc/smbnetfs
+
+ mkdir -p $pkgdir/etc/smbnetfs/.smb && \
+ install -D -m 0644 $srcdir/$pkgname-$pkgver/conf/* $pkgdir/etc/smbnetfs/.smb/
+# install -D -m 0644 $srcdir/$pkgname-$pkgver/doc/INSTALL $pkgdir/usr/share/doc/smbnetfs/INSTALL
+ install -D -m 0644 $srcdir/$pkgname-$pkgver/README $pkgdir/usr/share/doc/smbnetfs/README
+ install -D -m 0755 $srcdir/rc-smbnetfs $pkgdir/etc/rc.d/smbnetfs
+ install -D -m 0644 $srcdir/conf-smbnetfs $pkgdir/etc/conf.d/smbnetfs
+ touch $pkgdir/etc/smbnetfs/.smb/smb.conf
+}
diff --git a/community/smbnetfs/conf-smbnetfs b/community/smbnetfs/conf-smbnetfs
new file mode 100644
index 000000000..1d45606e7
--- /dev/null
+++ b/community/smbnetfs/conf-smbnetfs
@@ -0,0 +1 @@
+SMBNETFS_MOUNT_POINT=/mnt/smbnet
diff --git a/community/smbnetfs/rc-smbnetfs b/community/smbnetfs/rc-smbnetfs
new file mode 100644
index 000000000..3b79d6d5f
--- /dev/null
+++ b/community/smbnetfs/rc-smbnetfs
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/conf.d/smbnetfs
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ echo `pidof smbnetfs`
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting smbnetfs"
+
+ [ -f /var/run/smbnetfs.pid ] && rm -f /var/run/smbnetfs.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ cd /tmp && \
+ [ -d $SMBNETFS_MOUNT_POINT ] && \
+ su - nobody -s /bin/bash -c "HOME=/etc/smbnetfs exec smbnetfs -o allow_other $SMBNETFS_MOUNT_POINT" &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/smbnetfs.pid
+ add_daemon smbnetfs
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping smbnetfs daemon"
+
+ fusermount -u $SMBNETFS_MOUNT_POINT &> /dev/null
+ rm -f /var/run/smbnetfs.pid &> /dev/null
+ rm_daemon smbnetfs
+ stat_done
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/smbnetfs/smbnetfs.install b/community/smbnetfs/smbnetfs.install
new file mode 100644
index 000000000..d1c87406f
--- /dev/null
+++ b/community/smbnetfs/smbnetfs.install
@@ -0,0 +1,24 @@
+post_install() {
+ echo "-- To use rc-script you should:"
+ echo "-- * set user_allow_other option in /etc/fuse.conf"
+
+ chown -R nobody.nobody /etc/smbnetfs/.smb && \
+ mkdir -p /mnt/smbnet && \
+ chown nobody.nobody /mnt/smbnet && \
+ chmod 0777 /mnt/smbnet
+}
+
+pre_upgrade() {
+ /etc/rc.d/smbnetfs stop 2>/dev/null 1>/dev/null
+ /bin/true
+}
+
+post_upgrade() {
+ echo "-- You should set user_allow_other option in /etc/fuse.conf to use rc-script"
+ echo "-- * set user_allow_other option in /etc/fuse.conf"
+
+ chown -R nobody.nobody /etc/smbnetfs/.smb && \
+ mkdir -p /mnt/smbnet && \
+ chown nobody.nobody /mnt/smbnet && \
+ chmod 0777 /mnt/smbnet
+}
diff --git a/community/smc/PKGBUILD b/community/smc/PKGBUILD
new file mode 100644
index 000000000..05bdc6ea2
--- /dev/null
+++ b/community/smc/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 40953 2011-03-02 21:01:34Z lcarlier $
+# Maintainer:
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=smc
+pkgver=1.9
+pkgrel=10
+pkgdesc="Secret Maryo Chronicles"
+arch=('i686' 'x86_64')
+url="http://www.secretmaryo.org/"
+license=('GPL3')
+depends=('sdl_image' 'sdl_ttf' 'sdl_mixer' 'cegui>=0.7' 'boost-libs>=1.46' 'smc-data')
+makedepends=('autoconf' 'automake' 'boost>=1.46')
+source=(http://downloads.sourceforge.net/smclone/$pkgname-$pkgver.tar.bz2
+ smc-for-cegui-v0-7.diff
+ smc.desktop
+ smc.png)
+md5sums=('75ab7826303c49aec25b052a8b90287f'
+ '51dfea21b741ad19df14e738df52f1cf'
+ '80fe208132ff41dd7677a53ee429ecdb'
+ 'efca7580e28748625eb676c9d24ee122')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # to remove when smc will be compatible with cegui-0.7.x
+ patch -Np1 -i ${srcdir}/smc-for-cegui-v0-7.diff
+ # fix for boost-1.46
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+
+ ./autogen.sh
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make install DESTDIR=$pkgdir
+ # install some freedesktop.org compatibility
+ install -Dm644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+ install -Dm644 $srcdir/$pkgname.png $pkgdir/usr/share/pixmaps/$pkgname.png
+
+ rm -rf $pkgdir/usr/share/smc/
+}
diff --git a/community/smc/smc-for-cegui-v0-7.diff b/community/smc/smc-for-cegui-v0-7.diff
new file mode 100644
index 000000000..a99cbce6c
--- /dev/null
+++ b/community/smc/smc-for-cegui-v0-7.diff
@@ -0,0 +1,437 @@
+diff -ur smc-1.9/configure.ac smc-1.9-b/configure.ac
+--- smc-1.9/configure.ac 2009-08-17 15:59:00.000000000 +0200
++++ smc-1.9-b/configure.ac 2011-01-19 00:43:37.809884881 +0100
+@@ -53,7 +53,7 @@
+ AC_MSG_ERROR([SDL_ttf library not found]))
+
+ # Check for the CEGUI library
+-PKG_CHECK_MODULES(CEGUI, CEGUI-OPENGL >= 0.5.0)
++PKG_CHECK_MODULES(CEGUI, CEGUI-OPENGL >= 0.7.0)
+ CPPFLAGS="$CPPFLAGS $CEGUI_CFLAGS"
+ LIBS="$LIBS $CEGUI_LIBS"
+
+diff -ur smc-1.9/src/core/editor.cpp smc-1.9-b/src/core/editor.cpp
+--- smc-1.9/src/core/editor.cpp 2009-08-13 17:11:42.000000000 +0200
++++ smc-1.9-b/src/core/editor.cpp 2011-01-19 00:44:46.734328121 +0100
+@@ -118,16 +118,10 @@
+ return tmp;
+ }
+
+-void cEditor_Item_Object :: draw( const CEGUI::Vector3 &position, float alpha, const CEGUI::Rect &clipper ) const
++void cEditor_Item_Object :: draw( CEGUI::GeometryBuffer &buffer, const CEGUI::Rect &targetRect, float alpha, const CEGUI::Rect *clipper ) const
+ {
+ // draw text
+- list_text->draw( position, alpha, clipper );
+-}
+-
+-void cEditor_Item_Object :: draw( CEGUI::RenderCache &cache, const CEGUI::Rect &targetRect, float zBase, float alpha, const CEGUI::Rect *clipper ) const
+-{
+- // draw text
+- list_text->draw( cache, targetRect, zBase, alpha, clipper );
++ list_text->draw( buffer, targetRect, alpha, clipper );
+ }
+
+ void cEditor_Item_Object :: Draw_Image( void )
+@@ -533,12 +527,12 @@
+ if( editor_window->getXPosition().asRelative( 1 ) >= 0 )
+ {
+ // Listbox dimension
+- float list_posy = listbox_items->getUnclippedPixelRect().d_top * global_downscaley;
+- float list_height = listbox_items->getUnclippedPixelRect().getHeight() * global_downscaley;
++ float list_posy = listbox_items->getUnclippedOuterRect().d_top * global_downscaley;
++ float list_height = listbox_items->getUnclippedOuterRect().getHeight() * global_downscaley;
+ // Vertical ScrollBar Position
+ float scroll_pos = listbox_items->getVertScrollbar()->getScrollPosition() * global_downscaley;
+ // font height
+- float font_height = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" )->getFontHeight() * global_downscaley;
++ float font_height = CEGUI::FontManager::getSingleton().get( "bluebold_medium" ).getFontHeight() * global_downscaley;
+
+ // draw items
+ for( unsigned int i = 0; i < listbox_items->getItemCount(); i++ )
+diff -ur smc-1.9/src/core/editor.h smc-1.9-b/src/core/editor.h
+--- smc-1.9/src/core/editor.h 2009-02-18 05:21:30.000000000 +0100
++++ smc-1.9-b/src/core/editor.h 2011-01-19 00:43:37.809884881 +0100
+@@ -62,8 +62,7 @@
+ */
+ virtual CEGUI::Size getPixelSize( void ) const;
+ // draw
+- void draw( const CEGUI::Vector3 &position, float alpha, const CEGUI::Rect &clipper ) const;
+- void draw( CEGUI::RenderCache &cache, const CEGUI::Rect &targetRect, float zBase, float alpha, const CEGUI::Rect *clipper) const;
++ void draw(CEGUI::GeometryBuffer& buffer, const CEGUI::Rect& targetRect, float alpha, const CEGUI::Rect* clipper) const;
+ // draw image
+ void Draw_Image( void );
+
+diff -ur smc-1.9/src/core/game_core.cpp smc-1.9-b/src/core/game_core.cpp
+--- smc-1.9/src/core/game_core.cpp 2009-08-16 18:44:42.000000000 +0200
++++ smc-1.9-b/src/core/game_core.cpp 2011-01-19 00:59:02.668958883 +0100
+@@ -265,7 +265,7 @@
+
+
+ // align text
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ // fixme : Can't handle multiple lines of text
+ float text_width = font->getTextExtent( text ) * global_downscalex;
+
+@@ -1182,7 +1182,7 @@
+ text_default->setText( gui_text );
+
+ // align text
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ float text_width = font->getTextExtent( gui_text ) * global_downscalex;
+
+ text_default->setWidth( CEGUI::UDim( 0, ( text_width + 15 ) * global_upscalex ) );
+@@ -1190,7 +1190,7 @@
+ text_default->moveToFront();
+
+ // set window height
+- text_default->setHeight( CEGUI::UDim( 0, font->getFontHeight() * font->getFormattedLineCount( gui_text, text_default->getUnclippedInnerRect(), CEGUI::LeftAligned ) + ( 12 * global_upscaley ) ) );
++ text_default->setHeight( CEGUI::UDim( 0, font->getFontHeight() + ( 12 * global_upscaley ) ) );
+
+ while( draw )
+ {
+diff -ur smc-1.9/src/core/main.cpp smc-1.9-b/src/core/main.cpp
+--- smc-1.9/src/core/main.cpp 2009-05-12 10:36:04.000000000 +0200
++++ smc-1.9-b/src/core/main.cpp 2011-01-19 00:43:37.809884881 +0100
+@@ -444,13 +444,15 @@
+
+ if( pGuiSystem )
+ {
+- delete pGuiSystem;
++ CEGUI::ResourceProvider* rp = pGuiSystem->getResourceProvider();
++ pGuiSystem->destroy();
+ pGuiSystem = NULL;
++ delete rp;
+ }
+
+ if( pGuiRenderer )
+ {
+- delete pGuiRenderer;
++ pGuiRenderer->destroy( *pGuiRenderer );
+ pGuiRenderer = NULL;
+ }
+
+@@ -507,7 +509,7 @@
+ }
+ case SDL_VIDEORESIZE:
+ {
+- pGuiRenderer->setDisplaySize( CEGUI::Size( static_cast<float>(ev->resize.w), static_cast<float>(ev->resize.h) ) );
++ pGuiSystem->notifyDisplaySizeChanged( CEGUI::Size( static_cast<float>(ev->resize.w), static_cast<float>(ev->resize.h) ) );
+ break;
+ }
+ case SDL_KEYDOWN:
+diff -ur smc-1.9/src/gui/hud.cpp smc-1.9-b/src/gui/hud.cpp
+--- smc-1.9/src/gui/hud.cpp 2009-05-01 15:00:16.000000000 +0200
++++ smc-1.9-b/src/gui/hud.cpp 2011-01-19 00:43:37.816550365 +0100
+@@ -946,7 +946,7 @@
+ m_text_debug_text->setVisible( 1 );
+
+ // update position
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ float text_width = font->getTextExtent( gui_text ) * global_downscalex;
+
+ if( text_width > 800.0f )
+diff -ur smc-1.9/src/input/mouse.cpp smc-1.9-b/src/input/mouse.cpp
+--- smc-1.9/src/input/mouse.cpp 2009-04-24 21:16:58.000000000 +0200
++++ smc-1.9-b/src/input/mouse.cpp 2011-01-19 00:43:37.813217623 +0100
+@@ -432,17 +432,12 @@
+
+ void cMouseCursor :: Render( void ) const
+ {
+- if( !m_active )
+- {
++ CEGUI::MouseCursor *mouse = CEGUI::MouseCursor::getSingletonPtr();
++
++ if ( m_active == mouse->isVisible() )
+ return;
+- }
+
+- // Render CEGUI Mouse
+- pGuiRenderer->setQueueingEnabled( 0 );
+- CEGUI::MouseCursor *mouse = CEGUI::MouseCursor::getSingletonPtr();
+- mouse->setVisible( 1 );
+- mouse->draw();
+- mouse->setVisible( 0 );
++ mouse->setVisible( m_active );
+ }
+
+ void cMouseCursor :: Update_Position( void )
+diff -ur smc-1.9/src/level/level_settings.cpp smc-1.9-b/src/level/level_settings.cpp
+--- smc-1.9/src/level/level_settings.cpp 2009-08-07 03:04:28.000000000 +0200
++++ smc-1.9-b/src/level/level_settings.cpp 2011-01-19 01:06:59.064259070 +0100
+@@ -163,8 +163,8 @@
+ editbox->setText( int_to_string( bg_color_2.blue ).c_str() );
+ // preview window
+ CEGUI::Window *window_background_preview = CEGUI::WindowManager::getSingleton().getWindow( "window_background_preview" );
+- background_preview->Set_Pos_X( window_background_preview->getUnclippedPixelRect().d_left * global_downscalex, 1 );
+- background_preview->Set_Pos_Y( window_background_preview->getUnclippedPixelRect().d_top * global_downscaley, 1 );
++ background_preview->Set_Pos_X( window_background_preview->getUnclippedOuterRect().d_left * global_downscalex, 1 );
++ background_preview->Set_Pos_Y( window_background_preview->getUnclippedOuterRect().d_top * global_downscaley, 1 );
+
+ Update_BG_Colors( CEGUI::EventArgs() );
+
+@@ -555,8 +555,8 @@
+
+ // set default rect
+ CEGUI::Window *window_background_preview = CEGUI::WindowManager::getSingleton().getWindow( "window_background_preview" );
+- background_preview->m_rect.m_w = window_background_preview->getUnclippedPixelRect().getWidth() * global_downscalex;
+- background_preview->m_rect.m_h = window_background_preview->getUnclippedPixelRect().getHeight() * global_downscaley;
++ background_preview->m_rect.m_w = window_background_preview->getUnclippedOuterRect().getWidth() * global_downscalex;
++ background_preview->m_rect.m_h = window_background_preview->getUnclippedOuterRect().getHeight() * global_downscaley;
+
+ if( !File_Exists( filename ) )
+ {
+diff -ur smc-1.9/src/objects/sprite.cpp smc-1.9-b/src/objects/sprite.cpp
+--- smc-1.9/src/objects/sprite.cpp 2009-04-18 09:55:06.000000000 +0200
++++ smc-1.9-b/src/objects/sprite.cpp 2011-01-19 00:43:37.813217623 +0100
+@@ -1663,7 +1663,7 @@
+ window_name->setText( name );
+ window_name->setTooltipText( tooltip );
+ // get text width
+- CEGUI::Font *font = CEGUI::FontManager::getSingleton().getFont( "bluebold_medium" );
++ CEGUI::Font *font = &CEGUI::FontManager::getSingleton().get( "bluebold_medium" );
+ float text_width = 12 + font->getTextExtent( name ) * global_downscalex;
+ // all names should have the same width
+ if( text_width > m_editor_window_name_width )
+diff -ur smc-1.9/src/video/video.cpp smc-1.9-b/src/video/video.cpp
+--- smc-1.9/src/video/video.cpp 2009-07-04 11:46:56.000000000 +0200
++++ smc-1.9-b/src/video/video.cpp 2011-01-19 01:22:45.338524592 +0100
+@@ -103,15 +103,15 @@
+
+ /* *** *** *** *** *** *** *** CEGUI renderer fake class *** *** *** *** *** *** *** *** *** *** */
+
+-cFake_Renderer :: cFake_Renderer( void )
+-{
+- d_identifierString = "Fake Renderer";
+-}
++//cFake_Renderer :: cFake_Renderer( void )
++//{
++// d_identifierString = "Fake Renderer";
++//}
+
+-cFake_Renderer :: ~cFake_Renderer( void )
+-{
++//cFake_Renderer :: ~cFake_Renderer( void )
++//{
+
+-}
++//}
+
+ /* *** *** *** *** *** *** *** Video class *** *** *** *** *** *** *** *** *** *** */
+
+@@ -158,7 +158,7 @@
+ std::string log_dump_dir = "/dev/null";
+ #endif
+ // create fake system and renderer
+- pGuiSystem = new CEGUI::System( new cFake_Renderer(), rp, NULL, NULL, "", log_dump_dir );
++ pGuiSystem = &CEGUI::System::create( *new cFake_Renderer(), rp, NULL, NULL, NULL, "", log_dump_dir );
+ }
+
+ void cVideo :: Delete_CEGUI_Fake( void ) const
+@@ -166,7 +166,7 @@
+ CEGUI::ResourceProvider *rp = pGuiSystem->getResourceProvider();
+ CEGUI::Renderer *renderer = pGuiSystem->getRenderer();
+
+- delete pGuiSystem;
++ pGuiSystem->destroy();
+ pGuiSystem = NULL;
+ delete renderer;
+ delete rp;
+@@ -177,7 +177,7 @@
+ // create renderer
+ try
+ {
+- pGuiRenderer = new CEGUI::OpenGLRenderer( 0, screen->w, screen->h );
++ pGuiRenderer = &CEGUI::OpenGLRenderer::create( CEGUI::Size( screen->w, screen->h ) );
+ }
+ // catch CEGUI Exceptions
+ catch( CEGUI::Exception &ex )
+@@ -186,10 +186,10 @@
+ exit( EXIT_FAILURE );
+ }
+
+- /* create Resource Provider
+- * no need to destroy it later since it is handled by the CEGUI renderer
+- */
+- CEGUI::DefaultResourceProvider *rp = static_cast<CEGUI::DefaultResourceProvider *>(pGuiRenderer->createResourceProvider());
++ pGuiRenderer->enableExtraStateSettings(true);
++
++ // create Resource Provider
++ CEGUI::DefaultResourceProvider *rp = new CEGUI::DefaultResourceProvider;
+
+ // set Resource Provider directories
+ rp->setResourceGroupDirectory( "schemes", DATA_DIR "/" GUI_SCHEME_DIR "/" );
+@@ -215,7 +215,7 @@
+ // create system
+ try
+ {
+- pGuiSystem = new CEGUI::System( pGuiRenderer, rp, NULL, NULL, "", pResource_Manager->user_data_dir + "cegui.log" );
++ pGuiSystem = &CEGUI::System::create( *pGuiRenderer, rp, NULL, NULL, NULL, "", pResource_Manager->user_data_dir + "cegui.log" );
+ }
+ // catch CEGUI Exceptions
+ catch( CEGUI::Exception &ex )
+@@ -242,7 +242,7 @@
+ // load the scheme file, which auto-loads the imageset
+ try
+ {
+- CEGUI::SchemeManager::getSingleton().loadScheme( "TaharezLook.scheme" );
++ CEGUI::SchemeManager::getSingleton().create( "TaharezLook.scheme" );
+ }
+ // catch CEGUI Exceptions
+ catch( CEGUI::Exception &ex )
+@@ -254,9 +254,7 @@
+ // default mouse cursor
+ pGuiSystem->setDefaultMouseCursor( "TaharezLook", "MouseArrow" );
+ // force new mouse image
+- CEGUI::MouseCursor::getSingleton().setImage( &CEGUI::ImagesetManager::getSingleton().getImageset( "TaharezLook" )->getImage( "MouseArrow" ) );
+- // hide CEGUI mouse always because we render it manually
+- CEGUI::MouseCursor::getSingleton().hide();
++ CEGUI::MouseCursor::getSingleton().setImage( &CEGUI::ImagesetManager::getSingleton().get( "TaharezLook" ).getImage( "MouseArrow" ) );
+ // default tooltip
+ pGuiSystem->setDefaultTooltip( "TaharezLook/Tooltip" );
+ // create default root window
+@@ -553,7 +551,7 @@
+ pFont->Restore_Textures();
+
+ // send new size to CEGUI
+- pGuiRenderer->setDisplaySize( CEGUI::Size( static_cast<float>(screen_w), static_cast<float>(screen_h) ) );
++ pGuiSystem->notifyDisplaySizeChanged( CEGUI::Size( static_cast<float>(screen_w), static_cast<float>(screen_h) ) );
+
+ // check if CEGUI is initialized
+ bool cegui_initialized = pGuiSystem->getGUISheet() != NULL;
+diff -ur smc-1.9/src/video/video.h smc-1.9-b/src/video/video.h
+--- smc-1.9/src/video/video.h 2009-07-04 10:49:50.000000000 +0200
++++ smc-1.9-b/src/video/video.h 2011-01-19 01:16:42.791283379 +0100
+@@ -23,7 +23,7 @@
+ #include "SDL_opengl.h"
+ // CEGUI
+ #include "CEGUI.h"
+-#include "RendererModules/OpenGLGUIRenderer/openglrenderer.h"
++#include <RendererModules/OpenGL/CEGUIOpenGLRenderer.h>
+
+ namespace SMC
+ {
+@@ -129,31 +129,100 @@
+ EFFECT_IN_AMOUNT
+ };
+
+-/* *** *** *** *** *** *** *** CEGUI renderer fake class *** *** *** *** *** *** *** *** *** *** */
++/* *** *** *** *** *** *** *** CEGUI renderer fake classes *** *** *** *** *** *** *** *** *** *** */
++// CEGUI 0.7.x requires more 'fake' classes than the 0.6.x version did...
++class cFake_GeometryBuffer : public CEGUI::GeometryBuffer
++{
++ void draw() const {}
++ void setTranslation(const CEGUI::Vector3&) {}
++ void setRotation(const CEGUI::Vector3&) {}
++ void setPivot(const CEGUI::Vector3&) {}
++ void setClippingRegion(const CEGUI::Rect&) {}
++ void appendVertex(const CEGUI::Vertex&) {}
++ void appendGeometry(const CEGUI::Vertex* const, CEGUI::uint) {}
++ void setActiveTexture(CEGUI::Texture*) {}
++ void reset() {}
++ CEGUI::Texture* getActiveTexture() const { return 0; }
++ CEGUI::uint getVertexCount() const { return 0; }
++ CEGUI::uint getBatchCount() const { return 0; }
++ void setRenderEffect(CEGUI::RenderEffect*) {}
++ CEGUI::RenderEffect* getRenderEffect() { return 0; }
++};
+
+-class cFake_Renderer : public CEGUI::Renderer
++class cFake_Texture : public CEGUI::Texture
++{
++public:
++ cFake_Texture() :
++ m_size(1, 1),
++ m_scaling(1, 1) {}
++
++ const CEGUI::Size& getSize() const { return m_size; }
++ const CEGUI::Size& getOriginalDataSize() const { return m_size; }
++ const CEGUI::Vector2& getTexelScaling() const { return m_scaling; }
++ void loadFromFile(const CEGUI::String&, const CEGUI::String&) {}
++ void loadFromMemory(const void*, const CEGUI::Size&, CEGUI::Texture::PixelFormat) {}
++ void saveToMemory(void*) {}
++
++private:
++ CEGUI::Size m_size;
++ CEGUI::Vector2 m_scaling;
++};
++
++class cFake_RenderTarget : public CEGUI::RenderTarget
+ {
+ public:
+- cFake_Renderer( void );
+- virtual ~cFake_Renderer( void );
++ cFake_RenderTarget() : m_area(0, 0, 0, 0) {}
++ void draw(const CEGUI::GeometryBuffer&) {}
++ void draw(const CEGUI::RenderQueue&) {}
++ void setArea(const CEGUI::Rect&) {}
++ const CEGUI::Rect& getArea() const { return m_area; }
++ bool isImageryCache() const { return false; }
++ void activate() {}
++ void deactivate() {}
++ void unprojectPoint(const CEGUI::GeometryBuffer&, const CEGUI::Vector2&, CEGUI::Vector2&) const {}
++
++private:
++ CEGUI::Rect m_area;
++};
+
+- virtual void addQuad(const CEGUI::Rect& dest_rect, float z, const CEGUI::Texture* tex, const CEGUI::Rect& texture_rect, const CEGUI::ColourRect& colours, CEGUI::QuadSplitMode quad_split_mode) {};
+- virtual void doRender(void) {};
+- virtual void clearRenderList(void) {};
+- virtual void setQueueingEnabled(bool setting) {};
+- virtual CEGUI::Texture *createTexture(void) { return NULL; };
+- virtual CEGUI::Texture *createTexture(const CEGUI::String& filename, const CEGUI::String& resourceGroup) { return NULL; };
+- virtual CEGUI::Texture *createTexture(float size) { return NULL; };
+- virtual void destroyTexture(CEGUI::Texture* texture) {};
+- virtual void destroyAllTextures(void) {};
+- virtual bool isQueueingEnabled(void) const { return 0; };
+- virtual float getWidth(void) const { return 0; };
+- virtual float getHeight(void) const { return 0; };
+- virtual CEGUI::Size getSize(void) const { return CEGUI::Size();};
+- virtual CEGUI::Rect getRect(void) const { return CEGUI::Rect();};
+- virtual unsigned int getMaxTextureSize(void) const { return 0; };
+- virtual unsigned int getHorzScreenDPI(void) const { return 0; };
+- virtual unsigned int getVertScreenDPI(void) const { return 0; };
++class cFake_Renderer : public CEGUI::Renderer
++{
++public:
++ cFake_Renderer( void ) :
++ m_size(0, 0),
++ m_dpi(0, 0),
++ m_identifierString("Fake Renderer"),
++ m_root(m_target) {}
++ ~cFake_Renderer( void ) {}
++
++ CEGUI::RenderingRoot& getDefaultRenderingRoot() { return m_root; }
++ CEGUI::GeometryBuffer& createGeometryBuffer() { return m_geometry; }
++ void destroyGeometryBuffer(const CEGUI::GeometryBuffer&) {}
++ void destroyAllGeometryBuffers() {}
++ CEGUI::TextureTarget* createTextureTarget() { return 0; }
++ void destroyTextureTarget(CEGUI::TextureTarget*) {}
++ void destroyAllTextureTargets() {}
++ CEGUI::Texture& createTexture() { return m_texture; }
++ CEGUI::Texture& createTexture(const CEGUI::String&, const CEGUI::String&) { return m_texture; }
++ CEGUI::Texture& createTexture(const CEGUI::Size&) { return m_texture; }
++ void destroyTexture(CEGUI::Texture&) {}
++ void destroyAllTextures() {}
++ void beginRendering() {}
++ void endRendering() {}
++ void setDisplaySize(const CEGUI::Size&) {}
++ const CEGUI::Size& getDisplaySize() const { return m_size; }
++ const CEGUI::Vector2& getDisplayDPI() const {return m_dpi; }
++ CEGUI::uint getMaxTextureSize() const { return 0; }
++ const CEGUI::String& getIdentifierString() const { return m_identifierString; }
++
++private:
++ CEGUI::Size m_size;
++ CEGUI::Vector2 m_dpi;
++ CEGUI::String m_identifierString;
++ cFake_GeometryBuffer m_geometry;
++ cFake_Texture m_texture;
++ cFake_RenderTarget m_target;
++ CEGUI::RenderingRoot m_root;
+ };
+
+ /* *** *** *** *** *** *** *** Video class *** *** *** *** *** *** *** *** *** *** */
diff --git a/community/smc/smc.desktop b/community/smc/smc.desktop
new file mode 100644
index 000000000..6cfe5b018
--- /dev/null
+++ b/community/smc/smc.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Secret Maryo Chronicles
+GenericName=Arcade Game
+Exec=smc
+Icon=smc.png
+Terminal=false
+Type=Application
+Categories=Game;ArcadeGame;KidsGame;
+StartupNotify=false \ No newline at end of file
diff --git a/community/smc/smc.png b/community/smc/smc.png
new file mode 100644
index 000000000..f02af1bfc
--- /dev/null
+++ b/community/smc/smc.png
Binary files differ
diff --git a/community/smem/PKGBUILD b/community/smem/PKGBUILD
new file mode 100644
index 000000000..ee5f99ff4
--- /dev/null
+++ b/community/smem/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 41843 2011-03-09 18:16:06Z dreisner $
+# Maintainer: Dave Reisner <d@falconindy.com>
+# Contributor: Isaac Dupree <id@isaac.cedarswampstudios.org>
+# Contributor: Sebastien Duquette <ekse.0x@gmail.com>
+
+pkgname=smem
+pkgver=1.0
+pkgrel=1
+pkgdesc="Generate reports on memory usage."
+url="http://www.selenic.com/smem/"
+license=("GPL")
+depends=('python2')
+optdepends=('python-matplotlib: for chart generation')
+arch=('i686' 'x86_64')
+source=("http://www.selenic.com/smem/download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('5620f20cae4d4f0e8eb33bdc2736b0f3')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ sed -i '1s/python$/python2/' smem
+ gcc $CFLAGS $LDFLAGS smemcap.c -o smemcap
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ install -Dm755 smem $pkgdir/usr/bin/smem
+ install -Dm755 smemcap $pkgdir/usr/bin/smemcap
+ install -Dm644 smem.8 "$pkgdir"/usr/share/man/man8/smem.8
+}
+
diff --git a/community/sniffit/PKGBUILD b/community/sniffit/PKGBUILD
new file mode 100644
index 000000000..56fca9456
--- /dev/null
+++ b/community/sniffit/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 21978 2010-07-19 13:45:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+
+pkgname=sniffit
+pkgver=0.3.7.beta
+pkgrel=10
+pkgdesc="very good packet sniffer for unix with ncurses interactive mode."
+arch=('i686' 'x86_64')
+url="http://packages.ubuntu.com/source/sniffit"
+#seems the website are out, ubuntu have all sources
+#url=http://reptile.rug.ac.be/~coder/sniffit/sniffit.html"
+license=('GPL')
+depends=('ncurses' 'libpcap')
+makedepends=('libtool')
+source=("http://archive.ubuntu.com/ubuntu/pool/universe/s/${pkgname}/${pkgname}_${pkgver}.orig.tar.gz"
+ 'sniffit-fix.patch')
+md5sums=('2697cc18878480199fe6db1e61134d5a'
+ 'e66e45dac8fd088accd62160cf8b569f')
+
+build() {
+ cd "${srcdir}"
+ patch -Np0 < ${srcdir}/sniffit-fix.patch || return 1
+
+ cd "${srcdir}/${pkgname}.${pkgver}"
+
+ rm -f config.sub config.guess
+ cp /usr/share/libtool/config/config.{guess,sub} .
+
+ ./configure --prefix=/usr --no-recursion
+ make || return 1
+ install -d -m0755 -g root -o root ${pkgdir}/usr/{sbin,share/licenses/${pkgname}} || return 1
+ install -D -m0744 -g root -o root sniffit ${pkgdir}/usr/sbin/sniffit
+ install -D -m0644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}
+}
diff --git a/community/sniffit/sniffit-fix.patch b/community/sniffit/sniffit-fix.patch
new file mode 100644
index 000000000..e933c70cb
--- /dev/null
+++ b/community/sniffit/sniffit-fix.patch
@@ -0,0 +1,937 @@
+--- sniffit.0.3.7.beta.orig/sniffit.5
++++ sniffit.0.3.7.beta/sniffit.5
+@@ -122,7 +122,6 @@
+ a) Send by hosts '100.100.12.*'
+ b) Send from/to 100.100.12.2 (useless line)
+ c) deselecting all WWW packets on the subnet
+-.ni
+
+ .SH AUTHOR
+ Brecht Claerhout <coder@reptile.rug.ac.be>
+--- sniffit.0.3.7.beta.orig/sn_structs.h
++++ sniffit.0.3.7.beta/sn_structs.h
+@@ -67,7 +67,7 @@
+ struct snif_mask /* struct for mask */
+ {
+ _32_bit source_ip, destination_ip;
+- _32_bit short source_port, destination_port;
++ _16_bit source_port, destination_port;
+ };
+
+ /* (packet generation) */
+--- sniffit.0.3.7.beta.orig/sniffit.0.3.7.c
++++ sniffit.0.3.7.beta/sniffit.0.3.7.c
+@@ -48,15 +48,15 @@
+ {
+ printf (
+ "usage: %s [-xdabvnN] [-P proto] [-A char] [-p port] [(-r|-R) recordfile]\n"
+- " [-l sniflen] [-L logparam] [-F snifdevice] [-M plugin]\n"
++ " [-l sniflen] [-L logparam] [-F snifdevice] [-M plugin]\n",
++ prog_name);
+ #ifdef INCLUDE_INTERFACE
+- " [-D tty]"
++ printf ( " [-D tty]"
+ " (-t<Target IP> | -s<Source IP>)"
+- " | (-i|-I) | -c<config file>]\n",
++ " | (-i|-I) | -c<config file>]\n");
+ #else
+- " (-t<Target IP> | -s<Source IP>) | -c<config file>]\n",
++ printf ( " (-t<Target IP> | -s<Source IP>) | -c<config file>]\n");
+ #endif
+- prog_name);
+ printf ("Plugins Available:\n");
+ #ifdef PLUGIN0_NAME
+ printf (" 0 -- %s\n", PLUGIN0_NAME);
+--- sniffit.0.3.7.beta.orig/sn_analyse.c
++++ sniffit.0.3.7.beta/sn_analyse.c
+@@ -151,16 +151,18 @@
+ {
+ char workbuf1[MTU];
+ char *wb_dummy;
++ char *p;
++ size_t len = info.DATA_len <= MTU-1 ? info.DATA_len : MTU-1;
+
+- strncpy(workbuf1,data,info.DATA_len);
+- workbuf1[info.DATA_len]=0;
++ strncpy(workbuf1,data,len);
++ workbuf1[len]=0;
+ strlower(workbuf1);
+
+- if(strstr(workbuf1,"mail from")!=NULL)
++ if((p=strstr(workbuf1,"mail from"))!=NULL)
+ {
+ char workbuf2[MTU];
+
+- strcpy(workbuf2, strstr(workbuf1,"mail from"));
++ strcpy(workbuf2, p);
+ if(strchr(workbuf2,13)!=NULL) /* remove trailing enter */
+ {wb_dummy=strchr(workbuf2,13); *wb_dummy=0;}
+ if(strchr(workbuf2,10)!=NULL)
+@@ -168,11 +170,11 @@
+ print_mail(filename,workbuf2);
+ }
+
+- if(strstr(workbuf1,"rcpt to")!=NULL)
++ if((p=strstr(workbuf1,"rcpt to"))!=NULL)
+ {
+ char workbuf2[MTU];
+
+- strcpy(workbuf2, strstr(workbuf1,"rcpt to"));
++ strcpy(workbuf2, p);
+ if(strchr(workbuf2,13)!=NULL) /* remove trailing enter */
+ {wb_dummy=strchr(workbuf2,13); *wb_dummy=0;}
+ if(strchr(workbuf2,10)!=NULL)
+--- sniffit.0.3.7.beta.orig/README.FIRST
++++ sniffit.0.3.7.beta/README.FIRST
+@@ -6,7 +6,7 @@
+ * No illegal activities are encouraged! *
+ # Please read the LICENSE file #
+ * *
+-# Sniffit grew a little upon it's original intentions and is now #
++# Sniffit grew a little upon its original intentions and is now #
+ * extended for network debugging (UDP, ICMP, netload, etc.) *
+ #*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#
+ * Libpcap library *
+@@ -45,19 +45,19 @@
+
+ I hope you enjoy this beta version. Like always, I removed some bugs. There
+ is a new 'logging' feature. It is now possible to record traffic with
+-Sniffit and process it later! (it is completely different from te logging
++Sniffit and process it later! (it is completely different from the logging
+ done in the 0.3.6 version, that is known to some hardcore Sniffit users)
+ Please take a minute to skim through the text and read the passages marked
+ with a '*', these are the new features.
+ (Please read BETA-TESTING)
+
+-I use the libpcap library developped at Berkeley Laboratory, for easy
++I use the libpcap library developed at Berkeley Laboratory, for easy
+ porting (Read the licence).
+
+ 0.1 Credits and contact
+ -----------------------
+
+-Credits go to (in order of apperance on the Sniffit scene):
++Credits go to (in order of appearance on the Sniffit scene):
+ Wim Vandeputte <wvdputte@reptile.rug.ac.be>,
+ best friend and UNIX guru, for support, testing and
+ providing me with a WWW site.
+@@ -71,17 +71,17 @@
+ Qing Long, for the bash/zsh libpcap/configure script.
+ Guy Gustavson, for giving me a FreeBSD account.
+ Woju <woju@freebsd.ee.ntu.edu.tw>, for the ncurses SunOS/FreeBSD fixing,
+- and for his other effords.
++ and for his other efforts.
+ Amlan Saha <eng40607@nus.sg>, for adding Packet Generation to
+ Sniffit, and adding other features (not implemented yet).
+ I'm sure that in the near future you will see more of his
+ work in Sniffit.
+ Shudoh Kazuyuki, for changing getaddrbyname() and improving the
+ config-file interpreting.
+- Fyodor <fyodor@dhp.com>, for pointing out the hidious small
++ Fyodor <fyodor@dhp.com>, for pointing out the hideous small
+ fragments problem.
+ David O'Brien <obrien@nuxi.com>, for netbsd information.
+- everybody, who ever mailed me with sugestions help, etc...
++ everybody, who ever mailed me with suggestions help, etc...
+
+ Also a big thanks to my Beta testers (alphabetically, I hope)...
+ Charles G Stuart <charles.stuart@juno.com> IRIX / RedHat LINUX
+@@ -91,7 +91,7 @@
+
+ And many others who wish to be anonymous....
+
+-Sugestions and comments can be sent to:
++Suggestions and comments can be sent to:
+ coder@reptile.rug.ac.be
+
+ Brecht Claerhout
+@@ -99,10 +99,10 @@
+ 8700 Tielt
+ Belgium
+
+-The original distribution program can be optained from (my site):
++The original distribution program can be obtained from (my site):
+ http://sniffit.rug.ac.be/sniffit/sniffit.html
+
+-MIND YOU: this program is ran as root, and thus could easily contain
++MIND YOU: this program is run as root, and thus could easily contain
+ dangerous trojans. If you get it from the above site you can
+ safely compile and use it.
+ (no trojan versions are discovered yet.. it's just a warning)
+@@ -178,7 +178,7 @@
+ -v Show version and exit (just added because it's such a
+ wide spread option)
+ -t <IP nr/name> tells the sniffer to check out packets GOING TO <IP>
+- -s <IP nr/name> tells the sniffer to check out packets COMMING FROM <IP>
++ -s <IP nr/name> tells the sniffer to check out packets COMING FROM <IP>
+ You can use the '@' wildcard (only IP NUMBERS of course).
+ e.g. -t 199.145.@
+ -t 199.14@
+@@ -197,15 +197,15 @@
+ Parameters for all modes:
+ -F <device> force sniffit to use a network device
+ (READ 3.2 ON THIS SUBJECT, IMPORTANT)
+- -n Turn of IP checksum checking. This can show you
++ -n Turn off IP checksum checking. This can show you
+ bogus packets. (mind you ARP, RARP, other non-IP
+ packets will show up bogus too) (compatible with
+ ALL options)
+- -N Disables all functions that Sniffit has build in, usefull
++ -N Disables all functions that Sniffit has build in, useful
+ for wanting to run ONLY a plugin
+
+ Parameters for not running in -i:
+- -b does both -t and -s, doesn't mather what function you used
++ -b does both -t and -s, doesn't matter what function you used
+ (-t or -s)
+ -d Dump mode, shows the packets on the screen in bytes (not
+ like tcpdump). For test purposes. (numbers are hex)
+@@ -231,7 +231,7 @@
+ They can be combined.
+ -p <port> Logs connections on port <port>, 0 means all ports, default
+ is 0 (all), look out with that on loaded nets!
+- -l <length> Ammount of information to log (default 300 bytes).
++ -l <length> Amount of information to log (default 300 bytes).
+ Length 0 logs everything. (look out with diskspace when
+ logging everything!)
+ -M <Plugin> Activate Plugin nr. <Plugin>, for a list on all plugins
+@@ -260,7 +260,7 @@
+
+ Some examples:
+ Imagine the following setup: 2 hosts on a subnet, one is running the
+- sniffer (sniffit.com), the otherone is 66.66.66.7 (target.com).
++ sniffer (sniffit.com), the other one is 66.66.66.7 (target.com).
+ 1. You want to test if the sniffer is working:
+ sniffit:~/# sniffit -d -p 7 -t 66.66.66.7
+ and in another window:
+@@ -272,7 +272,7 @@
+ 3. Root of target.com tells me he gets strange ftp connections and
+ wants to find out the commands typed:
+ sniffit:~/# sniffit -p 21 -l 0 -t 66.66.66.7
+- 4. You want to read all incomming and outgoing mail on target.com:
++ 4. You want to read all incoming and outgoing mail on target.com:
+ sniffit:~/# sniffit -p 25 -l 0 -b -t 66.66.66.7 &
+ or
+ sniffit:~/# sniffit -p 25 -l 0 -b -s 66.66.66.7 &
+@@ -314,9 +314,9 @@
+ F5 or '5' : Start a program 'sniffit_key5' with arguments
+ <from IP> <from port> <to IP> <to port>
+ If the program doesn't exist, nothing is done. Sniffit should
+- be in the same path as sniffit was STARTED FROM (not necessarely
++ be in the same path as sniffit was STARTED FROM (not necessarily
+ the path sniffit is stored in)
+- This is usefull for interactive connection killing or extra
++ This is useful for interactive connection killing or extra
+ monitoring. A little shell script can always transform the
+ arguments given and pass them on to other programs.
+ F6 or '6' : Same as F5 or '5', but with program 'sniffit_key6'
+@@ -330,12 +330,12 @@
+ the config.h file to change this (could be needed if y'r
+ computer is slow).
+ 'g' : Generate Packets!
+- Sniffit is now able to generate some trafic load. Currently
+- this is a 'underdevelloped' feature with very few options,
++ Sniffit is now able to generate some traffic load. Currently
++ this is a 'underdeveloped' feature with very few options,
+ but it will be expanded a lot...
+ Currently only UDP packets are generated. When pressing 'G'
+- you will be asked the source/dest IP/port and how much packets
+- are needed to be transmitted.
++ you will be asked the source/dest IP/port and how many packets
++ are to be transmitted.
+ Packets contain the line: "This Packet was fired with Sniffit!"
+ 'r' : Reset.. clears all current connections from memory and restarts.
+
+@@ -348,14 +348,14 @@
+
+ When forcing network devices, sniffit tries to find out what device it is.
+ If sniffit recognises the name, everything is okay.
+-If it does not recognise the name it will set the variable
+-FORCED_HEAD_LENGHTH to the ethernet headlength. The ethernet headlength
+-is the length in bytes of an ethernet packet hearder.
+-So if you have to force a non-ethernet device, that is not recognised by
++If it does not recognise the name it will set the ethernet headlength
++according to the compiled-in value FORCED_HEAD_LENGTH. The ethernet
++headlength is the length in bytes of an ethernet packet header.
++So if you have to force a non-ethernet device that is not recognised by
+ sniffit, make sure you change that headlength correctly in the 'sn_config.h'
+ file.
+
+-The -F option was added, because I noticed devicenames can differ from
++The -F option was added, because I noticed device names can differ from
+ system to system, and because some ppl have multiple devices present.
+ When having problems with this option, please think twice before you mail me.
+
+@@ -370,7 +370,7 @@
+
+ The configfile should have lines with the following format:
+ <field1> <field2> <field3> <field4> [<field5>]
+-(seperators are spaces (any number of), NO TABS!!!)
++(separators are spaces (any number of), NO TABS!!!)
+
+ Lines that don't match this pattern are discarded, so standard unix
+ comments '#' can be used in this file... (this also means that if you
+@@ -399,10 +399,10 @@
+ host : The (de)selection criteria involves a hostname.
+ port : similar, ... a portnumber
+ mhosts : The (de)selection criteria involves multiple-hosts, like
+- with the wildcars in 0.3.0, but without the 'x'
++ with the wildcards in 0.3.0, but without the 'x'
+
+ <field4> can be:
+-* either a hostname, a portnumber, a service name or a numbet-dot partial
++* either a hostname, a portnumber, a service name or a number-dot partial
+ * notation indicating multiple hosts depending on <field3>
+ * (service names like 'ftp' are resolved as the services available
+ * present on the host that runs Sniffit, and translated into a port nr)
+@@ -411,7 +411,7 @@
+ a portnumber or service name, if <field3> was 'host' or 'mhosts'
+
+
+- Maybe it would have been wise to mention explicitely, that the config-file
++ Maybe it would have been wise to mention explicitly, that the config-file
+ currently only works with TCP packets.
+
+ examples:
+@@ -425,7 +425,7 @@
+ a) Send by host 100.100.12.2
+ b) Send by host 100.100.12.3 from port 1400
+ c) Send to coder.sniffit.com
+- d) All packets on our subnet going to or comming from a telnet port.
++ d) All packets on our subnet going to or coming from a telnet port.
+
+ 2. another example:
+ select both mhosts 100.100.12.
+@@ -436,7 +436,7 @@
+ b) EXCEPT the WWW packets
+ c) BUT showing the WWW packets concerning enemy.sniffit.com
+
+- The config file in interpreted SEQUENTIAL, so mixing up those lines
++ The config file is interpreted SEQUENTIALLY, so mixing up those lines
+ could have unwanted results e.g.:
+ select both mhosts 100.100.12.
+ select both host enemy.sniffit.org
+@@ -455,7 +455,7 @@
+ select both mhosts 2
+ deselect both mhosts 1 80
+ deselect both mhosts 2 80
+- This would show you all subnet trafic excluding WWW trafic
++ This would show you all subnet traffic excluding WWW traffic
+ (concerning port 80.)
+
+ 4. example:
+@@ -476,12 +476,12 @@
+ * you will like it more this way.
+ *
+ * Loglevels are now activated by '-L <logparam>'.
+-* The folowing <logparam>'s are valid (concatenation is alowed):
++* The following <logparam>'s are valid (concatenation is allowed):
+ *
+ * 'raw':
+ * Log all SYN, FIN, RST packets. This will give you an overview of
+-* all network (TCP) trafic in a 'RAW' way (a connection starting could
+-* gives you at least 2 SYN packets, etc...).
++* all network (TCP) traffic in a 'RAW' way (a connection starting could
++* give you at least 2 SYN packets, etc...).
+ * This is a great way to waste diskspace...
+ * Messages are:
+ * Connection initiated. (SYN)
+@@ -507,7 +507,7 @@
+ * A '~' in the login and passwords fields can be a nonprintable
+ * character (if in the beginning of a field, probably due to an early
+ * start of registration) or a '~'.
+-* This all makes it sound a little messy, but I 'testdrived' a lot and
++* This all makes it sound a little messy, but I 'test-drove' a lot and
+ * was pleased with the results after adding some funky shit (if y'r
+ * interested have a look at in function 'packethandler' in
+ * sniffit.*.c)
+@@ -521,7 +521,7 @@
+ *
+ * 'mail':
+ * Interested in who writes mail to who? Well you get all senders and
+-* recepients nicely logged with this feature (port 25 mail).
++* recipients nicely logged with this feature (port 25 mail).
+
+
+ 4. The output
+@@ -563,7 +563,7 @@
+ connections, you will need to use 'joe' or something else that can
+ support control chars (look for '-A <char>' below).
+ Telnet 'negotiates' (binary) in the beginning of every connection, and
+- 'catting' a output file, will most of the time show nothing (due to
++ 'catting' an output file, will most of the time show nothing (due to
+ control chars).
+ Of course when logging mail, there are no problems.
+ The new '-A <char>' takes care of the control characters, that way you
+@@ -612,14 +612,14 @@
+
+ - UDP Packets (not logged, displayed)
+
+- You get the package id. When using -d, -a you get the contence of the
++ You get the package id. When using -d, -a you get the contents of the
+ package. (pretty basic)
+
+
+ 4.2 Logfile
+ -----------
+
+-If you use a configfile (-c) and enable the Logging option a logfile is
++If you use a configfile (-c) and enable the Logging option, a logfile is
+ created. Unless you set 'logfile' in the config file, that file will be
+ named 'sniffit.log'.
+ It will contain lines with the following FIXED format:
+@@ -635,7 +635,7 @@
+
+ 3) Lines containing other data (future versions), will NOT begin with '['
+ and will have also easily interpretable formats.
+- Other data is e.g. packet contence
++ Other data is e.g. packet contents
+
+ I do this because I can imagine (when this is more expanded) that people
+ will use their own parsers for these logfiles. Well, if you respect those 3
+@@ -651,13 +651,13 @@
+ Some other notes:
+
+ - Sniffers can only be run by ROOT
+- - Sniffers can only log packets that 'travel' on THEIR ethernetcable.
++ - Sniffers can only log packets that 'travel' on THEIR ethernet cable.
+ So there has to be some host on your subnet involved (either as
+ sender or receiver).
+- - Working with '-d' or '-a' give you raw packets, they are still
+- packed in IP, when logging to files, only send data is logged,
++ - Working with '-d' or '-a' gives you raw packets, they are still
++ packed in IP, when logging to files, only sent data is logged,
+ the packets are 'unwrapped'.
+- - Sniffers can NORMALY not be detected by outsiders (or outsiders
++ - Sniffers can NORMALLY not be detected by outsiders (or outsiders
+ SHOULD not be able to...).
+ Unfortunately some systems contain bugs that will allow outsiders to
+ probe your network device for PROMISC mode (which is a good indication
+--- sniffit.0.3.7.beta.orig/sniffit.8
++++ sniffit.0.3.7.beta/sniffit.8
+@@ -39,7 +39,7 @@
+ is a packet sniffer for TCP/UDP/ICMP packets.
+ .B sniffit
+ is able to give you very detailed technical info on these
+-packets (SEQ, ACK, TTL, Window, ...) but also packet contence in
++packets (SEQ, ACK, TTL, Window, ...) but also packet contents in
+ different formats (hex or plain text, ...).
+ .LP
+ .B sniffit
+@@ -76,7 +76,7 @@
+
+ .IP "-t Target-IP"
+ Only process packets TO Target-IP. If Target-IP is in dot-nr notation,
+-'x' is allowed as wildcard. (e.g. '-t 157.193.x', '-t x', ...)
++\'x' is allowed as wildcard. (e.g. '-t 157.193.x', '-t x', ...)
+ .I "(NOT compatible with: '-s' '-i' '-I' '-c' '-v' '-L')"
+
+ .IP "-s Source-IP"
+@@ -84,7 +84,7 @@
+ .I "(NOT compatible with: '-t' '-i' '-I' '-c' '-v' '-L')"
+
+ .IP -b
+-'both' mode, together with '-s' or '-t', only process FROM/TO the IP
++\'both' mode, together with '-s' or '-t', only process FROM/TO the IP
+ specified by '-s' or '-t'
+ .I "(NOT compatible with: '-t' '-i' '-I' '-c' '-v' '-L')"
+
+@@ -115,7 +115,7 @@
+ .IP "-R <file>"
+ Record all traffic in
+ .I <file>
+-.This file can then be fed to Sniffit with the '-r' option.
++This file can then be fed to Sniffit with the '-r' option.
+ .I "(Needs a selection parameter like '-c' '-t' '-s')"
+ .I "(NOT compatible with '-i' '-I' '-v' '-L' '-r')"
+
+@@ -149,12 +149,12 @@
+ .I "(NOT compatible with: '-i' 'I' '-v')"
+
+ .IP -d
+-'dump mode', shows the packets on the screen (stdout) instead of logging
++\'dump mode', shows the packets on the screen (stdout) instead of logging
+ into files (default). Data is printed in bytes (hex).
+ .I "(NOT compatible with: '-i' 'I' '-v' '-L')"
+
+ .IP -a
+-'dump mode', same of '-d' but outputs ASCII. Non printable chars are
++\'dump mode', same of '-d' but outputs ASCII. Non printable chars are
+ replaced by '.'.
+ ('-d' and '-a' mix without any problem)
+ .I "(NOT compatible with: '-i' '-I' '-v' '-L')"
+@@ -193,8 +193,7 @@
+ can be found with
+ .I ifconfig
+ (see
+-.BR ifconfig (8)
+-).
++.BR ifconfig (8)).
+ .B sniffit
+ supports ethernet and PPP by default. Read
+ .B README.FIRST
+@@ -210,7 +209,7 @@
+ .B Plugin
+ , for a list on all plugins compiled in your version, just type '
+ .B sniffit
+-'. Read all about Plugins in the PLUGIN-HOWTO (READ IT!)
++\'. Read all about Plugins in the PLUGIN-HOWTO (READ IT!)
+ .I "(NOT compatible with: '-i' '-I' '-v')"
+
+ .IP "-L logparam"
+@@ -235,7 +234,7 @@
+ receiving host (port 'o').
+
+ .SH "DUMP MODE ('-d' and/or '-a')"
+-Output is dumped to stdout, the packet contence is shown in it's
++Output is dumped to stdout, the packet contents is shown in it's
+ unwrapped form (the complete IP packet).
+
+ .SH "INTERACTIVE MODE ('-i' or '-I')"
+@@ -320,7 +319,7 @@
+ .SH "IP ICMP UDP LOGGING"
+ Information on these packets is dumped to stdout. Packet
+ Filtering options only refer to TCP and UDP packets.
+-The contence of UDP packets is only shown when enabling '-a' or '-d'.
++The contents of UDP packets is only shown when enabling '-a' or '-d'.
+
+ .SH AUTHOR
+ Brecht Claerhout <coder@reptile.rug.ac.be>
+--- sniffit.0.3.7.beta.orig/sn_interface.c
++++ sniffit.0.3.7.beta/sn_interface.c
+@@ -5,6 +5,7 @@
+
+ #ifdef INCLUDE_INTERFACE
+ #include <signal.h>
++#include <termios.h>
+ #include <unistd.h>
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
+@@ -513,8 +514,11 @@
+
+ void screen_exit (void)
+ {
+-clear();
+ endwin();
++/* next line added by Edward Betts <edward@debian.org>, should not be needed
++ * because endwin should be calling it, without this the console has no echo
++ * after exiting in an xterm */
++reset_shell_mode();
+ };
+
+ void mem_exit (void)
+--- sniffit.0.3.7.beta.orig/sn_logfile.c
++++ sniffit.0.3.7.beta/sn_logfile.c
+@@ -44,42 +44,42 @@
+ void print_ftp_user (char *conn, char *user)
+ {
+ char line[250];
+-sprintf(line,"%s: USER [%s]",conn,user);
++snprintf(line,sizeof(line),"%s: USER [%s]",conn,user);
+ print_logline (line);
+ }
+
+ void print_ftp_pass(char *conn, char *pass)
+ {
+ char line[250];
+-sprintf(line,"%s: PASS [%s]",conn,pass);
++snprintf(line,sizeof(line),"%s: PASS [%s]",conn,pass);
+ print_logline (line);
+ }
+
+ void print_login (char *conn, char *login)
+ {
+ char line[250];
+-sprintf(line,"%s: login [%s]",conn,login);
++snprintf(line,sizeof(line),"%s: login [%s]",conn,login);
+ print_logline (line);
+ }
+
+ void print_mail (char *conn, char *msg)
+ {
+ char line[250];
+-sprintf(line,"%s: mail [%s]",conn,msg);
++snprintf(line,sizeof(line),"%s: mail [%s]",conn,msg);
+ print_logline (line);
+ }
+
+ void print_pwd (char *conn, char *pwd)
+ {
+ char line[250];
+-sprintf(line,"%s: password [%s]",conn,pwd);
++snprintf(line,sizeof(line),"%s: password [%s]",conn,pwd);
+ print_logline (line);
+ }
+
+ void print_conn (char *conn, char *msg)
+ {
+ char line[250];
+-sprintf(line,"%s: %s",conn,msg);
++snprintf(line,sizeof(line),"%s: %s",conn,msg);
+ print_logline (line);
+ }
+
+--- sniffit.0.3.7.beta.orig/Makefile.in
++++ sniffit.0.3.7.beta/Makefile.in
+@@ -26,9 +26,8 @@
+ @echo "Succesfull compilation..."
+
+ sniffit: $(SNIFFIT) $(DEP_FILES)
+- cd libpcap; make; cd ..
++# cd libpcap; make; cd ..
+ $(CC) $(EXE_FLAG) $(SNIFFIT) $(EXE_OBJ) $(EXE_OPT) $(LIBS) $(DEFS) $(OS_OPT)
+- strip sniffit
+
+ sn_cfgfile.o: sn_cfgfile.h sn_cfgfile.c sn_defines.h sn_structs.h sn_config.h
+ $(CC) $(OBJ_FLAG) sn_cfgfile.c $(OBJ_OPT) $(DEFS)
+@@ -52,12 +51,12 @@
+
+ #Clean up everthing...
+ clean:
+- cd libpcap; make clean; rm -f config.cache; cd ..
++# cd libpcap; make clean; rm -f config.cache; cd ..
+ rm -f Makefile
+ rm -f config.cache
+ rm -f config.status
+ rm -f config.log
+- rm -f ./libpcap/config.cache
+- rm -f ./libpcap/config.status
+- rm -f ./libpcap/config.log
++# rm -f ./libpcap/config.cache
++# rm -f ./libpcap/config.status
++# rm -f ./libpcap/config.log
+ rm -f *.o sniffit
+--- sniffit.0.3.7.beta.orig/debian/rules
++++ sniffit.0.3.7.beta/debian/rules
+@@ -0,0 +1,28 @@
++#!/usr/bin/make -f
++
++build:
++ dh build --before configure
++ cp /usr/share/misc/config.guess .
++ cp /usr/share/misc/config.sub .
++ ./configure --prefix=/usr --no-recursion
++ $(MAKE) OBJ_OPT="" EXE_OPT="-lpcap"
++ dh build --after build
++
++clean:
++ dh clean
++ rm -f config.sub config.guess
++
++install: build
++ dh install --before dh_auto_install
++ dh_install sniffit usr/sbin
++ dh_installman sniffit.5 sniffit.8
++ dh_installchangelogs HISTORY
++ dh install --after dh_auto_install
++
++binary-arch: install
++ dh binary-arch
++
++binary-indep: install
++ dh binary-indep
++
++binary: binary-arch binary-indep
+--- sniffit.0.3.7.beta.orig/debian/README
++++ sniffit.0.3.7.beta/debian/README
+@@ -0,0 +1,48 @@
++sniffit for Debian
++----------------------
++
++What follows are one of the previous maintainers, Patrick J. Edwards
++<edwards@cambridgenet.sk.ca>, thoughts on this package, and its security
++implications.
++
++Notes on Security
++-----------------
++ This program is highly dangerous, with this program hackers no
++longer need qcrack or crack for your system. Instead, they can just wait
++till a user logs in and *BAM* they have a new password. So the point is,
++this program should be promptly removed in any of the following situations:
++
++ 1. You are in doubt of the security of your system. Granted that
++ some one who has already creatively aquired (meaning hacked) root
++ can install this program his/her self there is no point in
++ pre-installing this program for them.
++
++ 2. You have a tendency to act unethically and snoop on you users for
++ no apparent reason. "Good" system admins won't do this.
++
++ 3. You don't actively search for security holes in your system. If
++ your not doing this and you box is on the Internet 24/7 perhaps you
++ should.
++
++Notes on Usage
++--------------
++ 1. Don't use this program unless you have to, and once you're done
++with it uninstall it.
++ 2. Don't scan all ports and all addresses in the hoping of catching
++a hacker cause you won't, you'll just have vast quantities of logs to search
++through and very little disk space. Instead wait till you recognize that you
++have a program user/hacker and then find out what the person is doing (how
++the hacker is trying to penetrate the system) then start using sniffit to
++collect your evidence against the offender. [I know this is flying in the
++face of traditional anti-system-terrorism policies but it leads into my next
++point]
++ 3. If you persist in using sniffit as a security net for your system
++DON'T. Plain and simple. Instead of trying to catch the hacker who has
++already hacked into your system spend your efforts security proofing your
++system (up to date versions on cron, sendmail, libraries, etc -- almost
++anything that runs as root or sudo).
++
++ The overall point is:
++ "Practice preventive medicine not reactive."
++
++ -- Edward Betts <edward@debian.org> Sun, 12 Sep 1999 11:04:08 +0100
+--- sniffit.0.3.7.beta.orig/debian/sniffit.docs
++++ sniffit.0.3.7.beta/debian/sniffit.docs
+@@ -0,0 +1,4 @@
++BETA-TESTING
++PLUGIN-HOWTO
++README.FIRST
++sniffit-FAQ
+--- sniffit.0.3.7.beta.orig/debian/compat
++++ sniffit.0.3.7.beta/debian/compat
+@@ -0,0 +1 @@
++7
+--- sniffit.0.3.7.beta.orig/debian/control
++++ sniffit.0.3.7.beta/debian/control
+@@ -0,0 +1,16 @@
++Source: sniffit
++Section: net
++Priority: optional
++Maintainer: William Vera <billy@billy.com.mx>
++Standards-Version: 3.8.0
++Build-Depends: debhelper (>= 7), libpcap-dev, libncurses5-dev, autotools-dev
++
++Package: sniffit
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: packet sniffer and monitoring tool
++ sniffit is a packet sniffer for TCP/UDP/ICMP packets.
++ sniffit is able to give you very detailed technical info
++ on these packets (SEC, ACK, TTL, Window, ...) but also
++ packet contents in different formats (hex or plain text,
++ etc. ).
+--- sniffit.0.3.7.beta.orig/debian/copyright
++++ sniffit.0.3.7.beta/debian/copyright
+@@ -0,0 +1,40 @@
++This package was debianized by Damjan Marion <dmarion@debian.org> on
++Tue, 7 Apr 1998 22:57:01 +0200.
++
++It was taken over by Edward Betts <edward@debian.org> on
++Fri, 12 Nov 1999 23:20:20 +0000
++
++It was downloaded from
++http://reptile.rug.ac.be/~coder/sniffit/files/sniffit.0.3.7.beta.tar.gz
++
++Upstream Author: Brecht Claerhout
++
++Copyright:
++
++Sniffit 0.3.7 Copyright (c) 1996-1998 Brecht Claerhout
++All rights reserved.
++
++Redistribution and use in source and binary forms, with or without
++modification, are permitted provided that the following conditions
++are met:
++1. Redistributions of source code must retain the above copyright
++ notice, this list of conditions and the following disclaimer.
++2. Redistributions in binary form must reproduce the above copyright
++ notice, this list of conditions and the following disclaimer in the
++ documentation and/or other materials provided with the distribution.
++3. The name of the author may not be used to endorse or promote products
++ derived from this software without specific prior written permission.
++4. Redistribution of source code must be conform with the 'libpcap'
++ copyright conditions, if that library is included.
++
++THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
++IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
++OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
++INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
+--- sniffit.0.3.7.beta.orig/debian/changelog
++++ sniffit.0.3.7.beta/debian/changelog
+@@ -0,0 +1,165 @@
++sniffit (0.3.7.beta-13) unstable; urgency=low
++
++ * New maintainer. (Closes: #465931).
++ * Some format corrections on the man pages (sniffit(5) sniffit(8)).
++ * Don't include config.{sub,guess} in .diff.gz
++
++ -- William Vera <billy@billy.com.mx> Sat, 07 Jun 2008 12:56:48 -0500
++
++sniffit (0.3.7.beta-12) unstable; urgency=low
++
++ * Use debhelper v7, rules file minimisation.
++ * Makefile.in: don't strip binary Closes: #438032
++ * debian/control: Updated to Standards-Version: 3.7.3, no changes needed
++
++ -- Edward Betts <edward@debian.org> Wed, 30 Apr 2008 11:00:19 +0100
++
++sniffit (0.3.7.beta-11) unstable; urgency=low
++
++ * Acknowledge NMU
++ * sn_structs.h: Sitting at Debcamp, fixing FTBFS bugs, and Alberto Gonzalez
++ Iniesta <agi@debian.org> sitting next to me points out there is one in
++ this package. Thanks to Joshua Kwan <joshk@triplehelix.org> for the patch
++ to fix it. (closes: #195548)
++ * config.{guess,sub}: updated
++ * debian/control: Updated to Standards-Version: 3.6.0, no changes needed
++ * sn_interface.c: sniffit was leaving echo turned off when exiting from the
++ interactive mode in an xterm, added reset_shell_mode() to screen_exit()
++ and it works. This should not be needed because endwin should be calling
++ it.
++
++ -- Edward Betts <edward@debian.org> Mon, 14 Jul 2003 10:50:24 +0200
++
++sniffit (0.3.7.beta-10.1) unstable; urgency=low
++
++ * Non maintainer upload
++ * Rebuilt with new libpcap to remove dependency on libpcap0, which I
++ got removed from unstable by accident. Sorry about this...
++
++ -- Torsten Landschoff <torsten@debian.org> Sat, 10 Aug 2002 11:37:33 +0200
++
++sniffit (0.3.7.beta-10) unstable; urgency=low
++
++ * README.FIRST: apply patch "James R. Van Zandt" <jrv@mitre.org> to correct
++ spelling and other mistakes in README.FIRST
++
++ -- Edward Betts <edward@debian.org> Thu, 13 Dec 2001 17:35:25 +0000
++
++sniffit (0.3.7.beta-9) unstable; urgency=low
++
++ * debian/control: Standards-Version: 3.5.5
++ * debian/rules: Support DEB_BUILD_OPTIONS
++ * config.{guess,sub}: updated files to version from libtool package
++ (Closes: Bug#103633)
++ * sniffit.c: applied patch from Bug#103633
++
++ -- Edward Betts <edward@debian.org> Thu, 5 Jul 2001 10:44:23 +0200
++
++sniffit (0.3.7.beta-8) unstable; urgency=low
++
++ * debian/control: Standards-Version: 3.5.2
++ * debian/rules: Changed to debhelper 3
++ * debian/rules: Removed dh_suidregister
++ * debian/rules: Removed dh_testversion
++ * debian/rules: Changed dh_installman to dh_installmanpages
++ * debian/rules: Support DEB_BUILD_OPTIONS
++
++ -- Edward Betts <edward@debian.org> Sun, 25 Mar 2001 04:41:39 -0700
++
++sniffit (0.3.7.beta-7) frozen unstable; urgency=high
++
++ * debian/rules: do not install pcap.3 (closes: Bug#77769).
++ * debian/control: updated Standards-Version to 3.2.1
++ * debian/control: added version to build-depends on debhelper for lintian:
++ E: sniffit: package-uses-dh_testversion-but-lacks-versioned-build-depends
++ * Package now lintian clean.
++
++ -- Edward Betts <edward@debian.org> Tue, 28 Nov 2000 07:00:24 -0700
++
++sniffit (0.3.7.beta-6.1) frozen unstable; urgency=high
++
++ * Non maintainer upload.
++ * [security] sn_logfile.c: Replaced sprintfs by snprintfs fixing a buffer
++ overflow (bugtraq).
++ * [security] sn_analyse.c: Limit length of TCP packets to the buffer
++ size (buffer overflow with MTU > 5000).
++
++ -- Torsten Landschoff <torsten@debian.org> Fri, 26 May 2000 08:40:14 +0200
++
++sniffit (0.3.7.beta-6) frozen unstable; urgency=low
++
++ * Update config.{guess,sub} to versions from the automake package.
++ Should now compile better on ARM (closes: Bug#56915).
++
++ -- Edward Betts <edward@debian.org> Thu, 3 Feb 2000 09:22:16 +0000
++
++sniffit (0.3.7.beta-5) unstable; urgency=low
++
++ * debian/control: updated Standards-Version to 3.1.1
++ * debian/control: added Build-Depends.
++ * debian/rules: rewritten.
++
++ -- Edward Betts <edward@debian.org> Thu, 6 Jan 2000 23:12:32 +0000
++
++sniffit (0.3.7.beta-4) unstable; urgency=low
++
++ * Recompile to try and fix bug #49979
++
++ -- Edward Betts <edward@debian.org> Fri, 12 Nov 1999 23:21:17 +0000
++
++sniffit (0.3.7.beta-3) unstable; urgency=low
++
++ * Changed to Debhelper 2.0
++ * Updated to Standards-Version: 3.0.1
++ * This package includes a copy of libpcap, ensured that it is not built
++ * Moved config file /etc/sniffit.cfg to
++ /usr/doc/sniffit/examples/sample_config_file
++ * Lintain clean
++
++ -- Edward Betts <edward@debian.org> Fri, 12 Nov 1999 23:20:20 +0000
++
++sniffit (0.3.7.beta-2) unstable; urgency=low
++
++ * Updated /usr/doc/sniffit/copyright from README.FIRST (fixes #39765)
++ * sniffit 0.3.7.beta is free software (BSD-like license)
++ * Changed section to main/net
++ * Added conffiles entry for /etc/sniffit.cfg
++
++ -- Hamish Moffatt <hamish@debian.org> Fri, 25 Jun 1999 22:30:00 +1000
++
++sniffit (0.3.7.beta-1) unstable; urgency=low
++
++ * QA group upload
++ * New upstream release (fixes #28510)
++ * Fixed spelling error in description (fixes #26859)
++ * Recompiled with ncurses 4.0 (fixes #37431)
++
++ -- Hamish Moffatt <hamish@debian.org> Sun, 23 May 1999 01:03:00 +1000
++
++sniffit (0.3.5-3) frozen unstable; urgency=low
++
++ * After long waiting for new copyright i must move it to non-free
++ (fixes bug #21832)
++
++ -- Damjan Marion <dmarion@debian.org> Thu, 28 May 1998 15:10:35 +0200
++
++sniffit (0.3.5-2) frozen unstable; urgency=low
++
++ * Moved to frozen (resurected from orphaned)
++ * Updated to standards 2.4.1.0
++
++ -- Damjan Marion <dmarion@debian.org> Tue, 15 Apr 1998 23:56:11 +0200
++
++sniffit (0.3.5-1) unstable; urgency=low
++
++ * New maintainer
++ * New upstream release
++ * Updated to standards 2.4.0.0
++
++ -- Damjan Marion <dmarion@debian.org> Tue, 7 Apr 1998 22:57:01 +0200
++
++sniffit (0.3.3-1) unstable; urgency=low
++
++ * Initial Release.
++
++ -- Patrick J. Edwards <edwards@cambridgenet.sk.ca> Mon, 17 Mar 1997 17:46:24 -0600
+--- sniffit.0.3.7.beta.orig/debian/sniffit.examples
++++ sniffit.0.3.7.beta/debian/sniffit.examples
+@@ -0,0 +1,3 @@
++sample_config_file
++dns_plugin.plug
++dummy_plugin.plug
+--- sniffit.0.3.7.beta.orig/debian/watch
++++ sniffit.0.3.7.beta/debian/watch
+@@ -0,0 +1,2 @@
++version=3
++http://reptile.rug.ac.be /~coder/sniffit/files/ sniffit.(.*)\.tar\.gz debian uupdate
diff --git a/community/snort/PKGBUILD b/community/snort/PKGBUILD
new file mode 100644
index 000000000..c696c48c8
--- /dev/null
+++ b/community/snort/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 39884 2011-02-18 14:29:00Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+
+pkgname=snort
+pkgver=2.9.0.4
+pkgrel=1
+pkgdesc='A lightweight network intrusion detection system.'
+arch=('i686' 'x86_64')
+url='http://www.snort.org'
+license=('GPL')
+depends=('libdaq' 'libdnet' 'libpcap' 'pcre' 'zlib')
+makedepends=('ca-certificates')
+backup=('etc/conf.d/snort'
+ 'etc/snort/snort.conf'
+ 'etc/snort/threshold.conf'
+ 'etc/snort/confreference.config'
+ 'etc/snort/classification.config')
+options=('!makeflags' '!libtool')
+install='snort.install'
+source=('http://www.snort.org/downloads/752'
+ 'snort'
+ 'snort.conf.d')
+md5sums=('1fe5639f635a96d4a2d52c8d1a94dcda'
+ '361b8b9e40b9af0164f6b3e3da2e8277'
+ 'b4fb8a68490589cd34df93de7609bfac')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc/snort --with-libpcap-includes=/usr/include/pcap \
+ --without-mysql --without-postgresql --without-oracle --without-odbc --enable-zlib \
+ --enable-ipv6
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ mkdir -p "${pkgdir}/"{etc/rc.d,etc/snort/rules}
+
+ install -d -m755 "${pkgdir}/var/log/snort"
+ install -D -m644 etc/{*.conf*,*.map} "${pkgdir}/etc/snort/"
+ install -D -m644 "${srcdir}/snort.conf.d" "${pkgdir}/etc/conf.d/snort"
+ install -D -m755 "${srcdir}/snort" "${pkgdir}/etc/rc.d/snort"
+
+ sed -i 's#/usr/local/lib/#/usr/lib/#' "${pkgdir}/etc/snort/snort.conf"
+}
diff --git a/community/snort/snort b/community/snort/snort
new file mode 100644
index 000000000..5dfa72fbf
--- /dev/null
+++ b/community/snort/snort
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/snort ] && . /etc/conf.d/snort
+
+PID=`pidof -o %PPID /usr/bin/snort`
+case "$1" in
+ start)
+ stat_busy "Starting Intrusion Database System: SNORT"
+ [ -z "$PID" ] && /usr/bin/snort ${SNORT_OPTIONS} -u ${USER} -g ${GROUP} \
+ -i ${INTERFACE} -c ${SNORT_CONF}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon snort
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Intrusion Database System: SNORT"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon snort
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/snort/snort.conf.d b/community/snort/snort.conf.d
new file mode 100644
index 000000000..86b566abc
--- /dev/null
+++ b/community/snort/snort.conf.d
@@ -0,0 +1,21 @@
+#
+# Parameters to be passed to snort
+#
+
+# options taken from Fedora
+# http://cvs.fedoraproject.org/viewcvs/devel/snort/sysconfig.snort?rev=1.2&view=markup
+
+# Where is the snort.conf file.
+SNORT_CONF="/etc/snort/snort.conf"
+
+# What user account should we run under.
+USER="snort"
+
+# What group account should we run under.
+GROUP="snort"
+
+# define the interface we listen on
+INTERFACE="eth0"
+
+# If you are using prelude, delete the '-A fast' option
+SNORT_OPTIONS="-A fast -b -l /var/log/snort -D -p"
diff --git a/community/snort/snort.install b/community/snort/snort.install
new file mode 100644
index 000000000..673f22c6c
--- /dev/null
+++ b/community/snort/snort.install
@@ -0,0 +1,26 @@
+post_install() {
+ getent group snort >/dev/null || usr/sbin/groupadd -g 29 snort
+ getent passwd snort >/dev/null || usr/sbin/useradd -c 'Snort user' -u 29 -g snort -d /var/log/snort -s /bin/false snort
+ usr/bin/passwd -l snort &>/dev/null
+
+ [ -f var/log/snort/alert ] || : >var/log/snort/alert
+ chown snort.snort var/log/snort/ -R
+
+cat << _EOF
+
+>>> You have to edit the HOME_NET variable in the /etc/snort/snort.conf file to reflect your local network.
+>>> If you do not change it, snort may not work.
+
+_EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/userdel snort &>/dev/null
+ usr/sbin/groupdel snort &>/dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/snownews/PKGBUILD b/community/snownews/PKGBUILD
new file mode 100644
index 000000000..1f7619dff
--- /dev/null
+++ b/community/snownews/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 18841 2010-06-15 19:31:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Christoph 'delmonico' Neuroth <delmonico@gmx.net>
+
+pkgname=snownews
+pkgver=1.5.12
+pkgrel=4
+pkgdesc="Text mode RSS newsreader for Linux and Unix."
+arch=(i686 x86_64)
+url="http://kiza.kcore.de/software/snownews/"
+license=('GPL')
+depends=('libxml2' 'ncurses' 'perl-xml-libxml' 'perl-xml-libxslt' 'openssl')
+source=(http://kiza.kcore.de/software/snownews/download/$pkgname-$pkgver.tar.gz)
+md5sums=('80da8943fc5aa96571924aec0087d4c0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make install DESTDIR=$pkgdir && \
+ ln -fs /usr/bin/opml2snow $pkgdir/usr/bin/snow2opml
+}
diff --git a/community/soil/PKGBUILD b/community/soil/PKGBUILD
new file mode 100644
index 000000000..ce0fae6b5
--- /dev/null
+++ b/community/soil/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 21193 2010-07-15 00:17:24Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+
+pkgname=soil
+pkgver=0708
+pkgrel=1
+pkgdesc="tiny C lib primarily for loading textures into OpenGL"
+arch=('i686' 'x86_64')
+url="http://www.lonesock.net/soil.html"
+license=('public')
+makedepends=('unzip')
+depends=('freeglut')
+#options=('!libtool')
+source=("http://www.lonesock.net/files/soil.zip")
+md5sums=('4736ac4f34fd9a41fa0197eac23bbc24')
+
+build() {
+ cd "${srcdir}/Simple OpenGL Image Library/projects/makefile"
+ [[ -d obj ]] && rm -r obj/
+ mkdir obj/
+
+ sed "s|LOCAL = /usr/local|LOCAL = ${pkgdir}/usr|g" -i makefile || return 1
+ sed "s|CXXFLAGS = |CXXFLAGS = -fPIC |g" -i makefile || return 1
+ mkdir -p ${pkgdir}/usr/{lib,include}
+ make || return 1
+ make install || return 1
+ chmod 644 ${pkgdir}/usr/lib/libSOIL.a
+}
diff --git a/community/solfege/PKGBUILD b/community/solfege/PKGBUILD
new file mode 100644
index 000000000..c69ddd790
--- /dev/null
+++ b/community/solfege/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 42458 2011-03-16 20:03:30Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: sickhate <sickhate@tux-linux.net>
+
+pkgname=solfege
+pkgver=3.18.7
+pkgrel=1
+pkgdesc="Music education and ear training software"
+arch=(i686 x86_64)
+url="http://www.solfege.org/"
+license=('GPL3')
+depends=('pygtk' 'libgtkhtml')
+makedepends=('ghostscript' 'gnome-doc-utils' 'librsvg' 'libxslt'
+ 'lilypond' 'swig' 'texinfo' 'txt2man' 'pkg-config')
+optdepends=('timidity++: Software MIDI support')
+changelog=$pkgname.changelog
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ solfege.desktop)
+md5sums=('c65df6e0eb7a724b8a81e41d23344e02'
+ '22b89dcfd9e7c98ab238942139b8a970')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # 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
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 ../$pkgname.desktop \
+ "$pkgdir/usr/share/applications/$pkgname.desktop"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/solfege/solfege.changelog b/community/solfege/solfege.changelog
new file mode 100644
index 000000000..00b82a49e
--- /dev/null
+++ b/community/solfege/solfege.changelog
@@ -0,0 +1,100 @@
+2011-03-17 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 3.18.7
+ upstream release
+
+2010-10-13 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 3.18.4
+ upstream release
+
+2010-10-10 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 3.18.3
+ upstream release
+
+
+2010-10-02 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 3.17.0
+ workaround managed for build issue
+
+2010-09-23 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 3.16.4
+ 3.17.0 does not build; upstream issue [1]
+ rebuilt for python(2)
+
+ [1] http://code.google.com/p/solfege/issues/detail?id=197
+
+2010-05-20 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 3.16.3
+
+ * solfege.desktop: fixed categories for better fit
+
+2010-04-20 Ray Rashif <schiv@archlinux.org>
+
+ * Version bump: 3.16.1
+
+ * PKGBUILD: minor changes
+
+ * solfege.install: added to remove any MIDI confusion
+
+2009-09-08 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 3.15.2
+
+ * PKGBUILD: fixed timidity++ dependency
+
+2009-07-15 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 3.14.5
+
+ * PKGBUILD: removed desktop-file-utils dependency since
+ solfege.desktop does not declare any MimeType entry; added
+ ghostscript, gnome-doc-utils, librsvg and lilypond makedepends
+
+2009-04-19 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 3.14.2
+
+ * PKGBUILD: removed old sed fix, added optdepends, moved texinfo to
+ makedepends, added swig and libxslt to makedepends
+
+ * solfege.install: removed
+
+2008-11-12 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 3.12.0
+
+ * PKGBUILD: added txt2man make dependency
+
+2008-06-15 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 3.10.4
+
+ * PKGBUILD: moved from $startdir to $srcdir/$pkgdir
+
+ * solfege.install: removed unnecessary reference to the AUR
+
+2008-03-24 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 3.10.3
+
+ * PKGBUILD: moved desktop-file-utils to depends, added pkgconfig
+ makedepend, added a sed fix to allow compilation of all files
+
+ * ChangeLog: fixed file format
+
+ * solfege.install: removed post_upgrade(), a few other small changes
+
+2007-10-20 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 3.8.2
+
+ * PKGBUILD: added desktop-file-utils to makedepends
+
+ * solfege.install: added
+
+ * solfege.desktop: added
diff --git a/community/solfege/solfege.desktop b/community/solfege/solfege.desktop
new file mode 100644
index 000000000..10c62089c
--- /dev/null
+++ b/community/solfege/solfege.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=GNU Solfege
+Exec=solfege
+Terminal=false
+Type=Application
+Icon=solfege
+Categories=Audio;Music;Education;
diff --git a/community/solfege/solfege.install b/community/solfege/solfege.install
new file mode 100644
index 000000000..003382003
--- /dev/null
+++ b/community/solfege/solfege.install
@@ -0,0 +1,10 @@
+post_install() {
+ echo "==> To get sound out of MIDI-based components like Rhythm:"
+ echo
+ echo "Preferences > Sound Setup > Use external MIDI player"
+ echo
+ echo "==> And make sure you have timidity++ installed and configured,"
+ echo "==> otherwise you need a capable hardware MIDI player to use"
+ echo "==> the ALSA/OSS MIDI devices."
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/soqt/PKGBUILD b/community/soqt/PKGBUILD
new file mode 100644
index 000000000..33f7556c9
--- /dev/null
+++ b/community/soqt/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: mickele
+# Contributor: marcus fritzsch <fritschy@googlemail.com>
+
+pkgname=soqt
+pkgver=1.5.0
+pkgrel=3
+pkgdesc='SoQt is a library which provides the glue between Coin and Qt.'
+arch=('i686' 'x86_64')
+url='http://www.coin3d.org/lib/soqt/'
+license=('GPL')
+depends=('coin' 'qt')
+makedepends=('doxygen')
+options=('!libtool')
+source=("http://ftp.coin3d.org/coin/src/all/SoQt-${pkgver}.tar.gz")
+md5sums=('9f1e582373d66f556b1db113a93ac68e')
+
+build() {
+ cd SoQt-${pkgver}
+
+ ./configure --prefix=/usr \
+ --enable-optimization \
+ --enable-man \
+ --enable-exceptions \
+ --disable-debug \
+ --disable-maintainer-mode \
+ --disable-dependency-tracking \
+ --enable-shared \
+ --disable-static \
+ --with-qt=/usr
+
+ make
+}
+
+package() {
+ cd SoQt-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/soundkonverter/PKGBUILD b/community/soundkonverter/PKGBUILD
new file mode 100644
index 000000000..9c57ef810
--- /dev/null
+++ b/community/soundkonverter/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 35231 2010-12-17 20:25:58Z mherych $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=soundkonverter
+pkgver=0.9.94rc2
+pkgrel=1
+pkgdesc="Front-end to various audio converters"
+arch=('i686' 'x86_64')
+url="http://www.kde-apps.org/content/show.php?content=29024"
+license=('GPL')
+depends=('kdemultimedia-kioslave' 'taglib')
+makedepends=('automoc4' 'cmake')
+optdepends=('cdrkit: cdda2wav backend'
+ 'faac: faac backend'
+ 'faad2: faad backend'
+ 'ffmpeg: ffmpeg backend'
+ 'flac: flac backend'
+ 'lame: lame backend'
+ 'mplayer: mplayer backend'
+ 'vorbis-tools: oggenc, oggdec backends'
+ 'speex: speexenc, speexdec backends'
+ 'vorbisgain: vorbisgain backend'
+ )
+options=('libtool')
+install=$pkgname.install
+source=(https://api.opensuse.org/public/source/home:HessiJames/soundkonverter/soundkonverter-$pkgver.tar.gz)
+md5sums=('5cc2442b26282f18ce51379dc4429f32')
+
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/soundkonverter/soundkonverter.install b/community/soundkonverter/soundkonverter.install
new file mode 100644
index 000000000..725fc0c5d
--- /dev/null
+++ b/community/soundkonverter/soundkonverter.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/community/spawn-fcgi/PKGBUILD b/community/spawn-fcgi/PKGBUILD
new file mode 100644
index 000000000..58c097e1f
--- /dev/null
+++ b/community/spawn-fcgi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 27971 2010-09-30 23:34:38Z aschaefer $
+# Maintainer: Aaron Bull Schaefer <aaron@elasticdog.com>
+# Contributor: Felix Hanley <felix@seconddrawer.com.au>
+
+pkgname=spawn-fcgi
+pkgver=1.6.3
+pkgrel=1
+pkgdesc='A FastCGI process manager for web applications'
+arch=('i686' 'x86_64')
+url='http://redmine.lighttpd.net/projects/spawn-fcgi/'
+license=('BSD')
+depends=('glibc')
+source=("http://www.lighttpd.net/download/$pkgname-$pkgver.tar.bz2")
+md5sums=('787ed2f88d2204bf1fe4fbd6e509d1d7')
+sha256sums=('e6721dc0fa59bb00e05f160406815d53c95e81ac28f7e52fbd36497584f846cd')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ install -D -m644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/community/speed-dreams/PKGBUILD b/community/speed-dreams/PKGBUILD
new file mode 100644
index 000000000..e5c547b4e
--- /dev/null
+++ b/community/speed-dreams/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 39442 2011-02-10 06:52:04Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Adrián Chaves Fernández, aka Gallaecio <adriyetichaves@gmail.com>
+# Contributor: Shahar Weiss <sweiss4@gmx.net> (build() code from his TORCS' PKGBUILD)
+pkgname=speed-dreams
+pkgver=1.4.0
+pkgver2=1.4.0-r2307 # For managing files and directories
+pkgrel=3
+pkgdesc="A racing simulator with rich graphics and physics"
+arch=('i686' 'x86_64')
+url="http://speed-dreams.sourceforge.net/"
+license=('GPL2')
+depends=('freealut' 'freeglut' 'libpng' 'libxi' 'libxmu' 'libxrandr' 'plib>=1.8.3' 'libjpeg' 'zlib' 'enet' 'speed-dreams-data')
+source=("http://sourceforge.net/projects/${pkgname}/files/1.4.0/${pkgname}-${pkgver2}-src.tar.bz2/download"
+ "${pkgname}.desktop"
+ "${pkgname}.sh")
+md5sums=('92c324c2c47a598dea9278d9a66c5b78'
+ 'f89654510f1b558054eb17e778f1af7f'
+ 'dcfd31797bacb6b3e9dc27ddb59d29c3')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}-src"
+
+ unset LDFLAGS MAKEFLAGS # How can a build system be this broken?
+
+ ./configure --prefix="/opt/${pkgname}" --x-includes=/usr/include --x-libraries=/usr/lib
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}-src"
+
+ make DESTDIR="${pkgdir}/" install datainstall
+
+ install -D -m644 "icon.png" "${pkgdir}/usr/share/pixmaps/speed-dreams.png" && \
+ install -D -m644 "../${pkgname}.desktop" "${pkgdir}/usr/share/applications/speed-dreams.desktop" && \
+ install -D -m755 "../${pkgname}.sh" "${pkgdir}/bin/${pkgname}"
+
+ find "${pkgdir}/" -type d -exec chmod 755 {} \;
+ rm -r $pkgdir/opt/${pkgname}/share
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/speed-dreams/speed-dreams.desktop b/community/speed-dreams/speed-dreams.desktop
new file mode 100644
index 000000000..fa39ed1e5
--- /dev/null
+++ b/community/speed-dreams/speed-dreams.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Speed Dreams
+Comment=The Open Racing Car Simulator Fork
+Exec=/opt/speed-dreams/bin/speed-dreams
+Icon=speed-dreams.png
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Categories=Application;Game;
diff --git a/community/speed-dreams/speed-dreams.sh b/community/speed-dreams/speed-dreams.sh
new file mode 100644
index 000000000..fa6dde97a
--- /dev/null
+++ b/community/speed-dreams/speed-dreams.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+cd /opt/speed-dreams/bin
+./speed-dreams
diff --git a/community/spidermonkey/PKGBUILD b/community/spidermonkey/PKGBUILD
new file mode 100644
index 000000000..5b0f66f55
--- /dev/null
+++ b/community/spidermonkey/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 76943 2010-04-09 06:43:22Z dgriffiths $
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=spidermonkey
+pkgver=1.7.0
+pkgrel=3
+pkgdesc="Mozilla's C implementation of JavaScript."
+url="http://www.mozilla.org/js/spidermonkey/"
+arch=('i686' 'x86_64')
+license=('MPL' 'GPL' 'LGPL')
+depends=('nspr')
+options=('!makeflags')
+source=("http://ftp.mozilla.org/pub/mozilla.org/js/js-${pkgver}.tar.gz" \
+ 'spidermonkey-1.7-threadsafe.patch' 'spidermonkey-Makefile.patch')
+md5sums=('5571134c3863686b623ebe4e6b1f6fe6'
+ 'b2ef9be017b6aa1857354b5223975a4f'
+ '161d4c0f2c604d15cba29dab60b1f7a7')
+
+build() {
+ cd ${srcdir}/js/src
+ patch -p0 < ${srcdir}/spidermonkey-Makefile.patch || return 1
+ sed -i 's|include|include/js|' rules.mk || return 1
+ # fix for the lib location
+ [ "$CARCH" = 'x86_64' ] && (sed -i -e 's|lib64|lib|g' config.mk || return 1)
+ # patch Makefile for threadsafe support with native nspr
+ patch -p2 -i ${srcdir}/spidermonkey-1.7-threadsafe.patch || return 1
+ # FS#16673
+ export CFLAGS=${CFLAGS} -DJS_C_STRINGS_ARE_UTF8
+ # build - threadsafe
+}
+
+package() {
+ cd ${srcdir}/js/src
+ make -f Makefile.ref BUILD_OPT=1 JS_THREADSAFE=1 DIST=${pkgdir}/usr all export || return 1
+}
diff --git a/community/spidermonkey/spidermonkey-1.7-threadsafe.patch b/community/spidermonkey/spidermonkey-1.7-threadsafe.patch
new file mode 100644
index 000000000..da6c78d1d
--- /dev/null
+++ b/community/spidermonkey/spidermonkey-1.7-threadsafe.patch
@@ -0,0 +1,16 @@
+--- js/src/Makefile.ref.orig 2008-05-28 19:51:32.000000000 -0400
++++ js/src/Makefile.ref 2008-05-28 19:52:17.000000000 -0400
+@@ -63,11 +63,11 @@
+
+ ifdef JS_THREADSAFE
+ DEFINES += -DJS_THREADSAFE
+-INCLUDES += -I$(DIST)/include/nspr
++INCLUDES += -I/usr/include/nspr
+ ifdef USE_MSVC
+ OTHER_LIBS += $(DIST)/lib/libnspr$(NSPR_LIBSUFFIX).lib
+ else
+-OTHER_LIBS += -L$(DIST)/lib -lnspr$(NSPR_LIBSUFFIX)
++OTHER_LIBS += -L/usr/$(LIBDIR)/nspr -lnspr${NSPR_LIBSUFFIX}
+ endif
+ endif
+
diff --git a/community/spidermonkey/spidermonkey-Makefile.patch b/community/spidermonkey/spidermonkey-Makefile.patch
new file mode 100644
index 000000000..abf1f3164
--- /dev/null
+++ b/community/spidermonkey/spidermonkey-Makefile.patch
@@ -0,0 +1,22 @@
+*** Makefile.ref.orig 2009-02-16 09:56:29.000000000 -0600
+--- Makefile.ref 2009-02-16 09:58:59.000000000 -0600
+***************
+*** 169,184 ****
+--- 169,185 ----
+ jstypes.h \
+ jsprvtd.h \
+ jspubtd.h \
+ jsregexp.h \
+ jsscan.h \
+ jsscope.h \
+ jsscript.h \
+ jsstr.h \
++ jsutil.h \
+ jsxdrapi.h \
+ jsxml.h \
+ $(NULL)
+
+ API_HFILES = \
+ jsapi.h \
+ jsdbgapi.h \
+ $(NULL)
diff --git a/community/splint/PKGBUILD b/community/splint/PKGBUILD
new file mode 100644
index 000000000..d0676e311
--- /dev/null
+++ b/community/splint/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 2039 2009-09-07 16:30:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=splint
+pkgver=3.1.2
+pkgrel=2
+pkgdesc="A tool for statically checking C programs for security vulnerabilities and coding mistakes"
+arch=('i686' 'x86_64')
+url="http://www.splint.org"
+license=('GPL')
+depends=('glibc')
+source=(http://www.splint.org/downloads/splint-$pkgver.src.tgz \
+ splint.sh)
+md5sums=('25f47d70bd9c8bdddf6b03de5949c4fd'
+ '0efb6341b384dc44590989fe3678c96c')
+
+build() {
+ cd $startdir/src/splint-$pkgver
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+
+ install -D -m755 ../splint.sh $startdir/pkg/etc/profile.d/splint.sh
+}
diff --git a/community/splint/splint.sh b/community/splint/splint.sh
new file mode 100644
index 000000000..6ff8d9181
--- /dev/null
+++ b/community/splint/splint.sh
@@ -0,0 +1,2 @@
+export LCLIMPORTDIR=/usr/share/splint/imports
+export LARCH_PATH=/usr/share/splint/lib
diff --git a/community/splix/PKGBUILD b/community/splix/PKGBUILD
new file mode 100644
index 000000000..b77e8b012
--- /dev/null
+++ b/community/splix/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 43927 2011-03-31 19:16:02Z heftig $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Francis Carroll (franciscarroll at gmail dot com)
+
+pkgname=splix
+pkgver=2.0.0
+pkgrel=8
+pkgdesc="CUPS drivers for SPL (Samsung Printer Language) printers"
+arch=('i686' 'x86_64')
+url="http://splix.ap2c.org/"
+license=('GPL')
+depends=('libcups' 'gcc-libs' 'ghostscript>=9.02')
+makedepends=('libcups' 'jbigkit')
+install=splix.install
+source=(http://downloads.sourceforge.net/splix/$pkgname-$pkgver.tar.bz2)
+md5sums=('f3aa735c22a926818b3d8b26c9964186')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ sed -i 's#const PPDFile::Value::Value #const PPDFile::Value #' src/ppdfile.cpp
+
+ make PSTORASTER=gstoraster
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -d "$pkgdir/usr/lib/cups/filter"
+ install -d "$pkgdir/usr/share/cups/model/samsung"
+
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/splix/splix.install b/community/splix/splix.install
new file mode 100644
index 000000000..ee1eb78a3
--- /dev/null
+++ b/community/splix/splix.install
@@ -0,0 +1,19 @@
+post_install() {
+ cat <<EOF
+Installation of the color profile for color printers:
+-----------------------------------------------------
+
+ Color printers needs color profile files to get better results. These
+files are provided by your printer manufacturer and you have to install them
+manually. To do that, download the linux official drivers and locate the "cms"
+directory. Install this directory to "/usr/share/cups/model/\$MANUFACTURER/cms".
+
+ Samsung color profile files are available at:
+ (Then use MANUFACTURER=samsung)
+ http://splix.ap2c.org/samsung_cms.tar.bz2
+EOF
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/community/spring/PKGBUILD b/community/spring/PKGBUILD
new file mode 100644
index 000000000..26101bb64
--- /dev/null
+++ b/community/spring/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 41178 2011-03-04 19:28:06Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arkham <arkham at archlinux dot us>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+
+pkgname=spring
+pkgver=0.82.7.1
+pkgrel=2
+pkgdesc='A free 3D real-time-strategy (RTS) game engine'
+arch=('i686' 'x86_64')
+url="http://springrts.com/"
+license=('GPL')
+depends=('openal' 'glew' 'boost-libs' 'freetype2' 'devil' 'libvorbis')
+makedepends=('boost' 'cmake' 'zip' 'lzma-utils' 'p7zip' 'python' 'java-environment')
+optdepends=('python: python-based bots'
+ 'java-runtime: java-based bots')
+source=(http://downloads.sourceforge.net/sourceforge/springrts/${pkgname}_${pkgver}_src.tar.lzma)
+md5sums=('378cf0b18a5dd5b840964e5945778503')
+
+build() {
+ bsdtar -xf ${pkgname}_${pkgver}_src.tar.lzma
+
+ cd spring_$pkgver
+
+ sed -i '1i\
+ #include <list>' rts/lib/lobby/Connection.h
+ cmake . \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DDATADIR=share/spring
+ make
+}
+
+package() {
+ cd spring_$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ install -d $pkgdir/etc/spring
+ echo '$HOME/.spring' > $pkgdir/etc/spring/datadir
+}
+
+# vim sw=2:ts=2 et:
diff --git a/community/springlobby/PKGBUILD b/community/springlobby/PKGBUILD
new file mode 100644
index 000000000..455587739
--- /dev/null
+++ b/community/springlobby/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 42784 2011-03-20 21:37:46Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: DuGi <dugi@irc.pl>
+
+pkgname=springlobby
+pkgver=0.127
+pkgrel=1
+pkgdesc="A free cross-platform lobby client for the Spring RTS project."
+arch=('i686' 'x86_64')
+url="http://springlobby.info/"
+license=('GPL2')
+depends=('wxgtk' 'curl' 'libtorrent-rasterbar' 'boost-libs')
+optdepends=('sdl' 'sdl_sound' 'sdl_mixer')
+makedepends=('boost' 'asio' 'cmake')
+source=(http://www.springlobby.info/tarballs/${pkgname}-${pkgver}.tar.bz2
+ springlobby.desktop
+ springlobby.png)
+md5sums=('4d470bebc7fef1b1a4e4189dd0bc4a89'
+ '45f8b59d033931d02e734fe3bd7777dd'
+ '1f388187539aeb0358b51995e26ed890')
+
+build() {
+ cd $srcdir/${pkgname}-$pkgver
+
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+ cp $srcdir/${pkgname}-$pkgver/tools/test-susynclib.awk $srcdir/${pkgname}-$pkgver/tools/test-susynclib.awk.bak
+ sed -e 's|/usr/bin/awk|/bin/awk|g' $srcdir/${pkgname}-$pkgver/tools/test-susynclib.awk.bak>$srcdir/${pkgname}-$pkgver/tools/test-susynclib.awk
+
+ sed -i 's/boost_system-mt/boost_system/g' $srcdir/$pkgname-$pkgver/CMakeLists.txt
+ cmake . \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DOPTION_SOUND=false
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ install -m755 -d $pkgdir/usr/share/applications
+ install -m644 $srcdir/springlobby.desktop $pkgdir/usr/share/applications
+
+ install -m755 -d -p $pkgdir/usr/share/pixmaps
+ install -m644 $srcdir/springlobby.png $pkgdir/usr/share/pixmaps
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community/springlobby/springlobby.desktop b/community/springlobby/springlobby.desktop
new file mode 100644
index 000000000..1dce96b90
--- /dev/null
+++ b/community/springlobby/springlobby.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=SpringLobby
+Comment=Lobby for Spring. An open source RTS with similar gameplay to TA
+Exec=springlobby
+Icon=springlobby.png
+Terminal=false
+Type=Application
+Categories=Application;Game;StrategyGame;
diff --git a/community/springlobby/springlobby.png b/community/springlobby/springlobby.png
new file mode 100644
index 000000000..89c7ab0ac
--- /dev/null
+++ b/community/springlobby/springlobby.png
Binary files differ
diff --git a/community/sqlite2/LICENSE b/community/sqlite2/LICENSE
new file mode 100644
index 000000000..bdd14d404
--- /dev/null
+++ b/community/sqlite2/LICENSE
@@ -0,0 +1,33 @@
+SQLite Copyright
+SQLite is in the
+Public Domain
+
+
+All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
+
+The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
+
+All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
+Obtaining An Explicit License To Use SQLite
+
+Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
+You are using SQLite in a jurisdiction that does not recognize the public domain.
+You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
+You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
+Your legal department tells you that you have to purchase a license.
+
+If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
+Contributed Code
+
+In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
+The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
+
+We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
+Hwaci
+6200 Maple Cove Lane
+Charlotte, NC 28269
+USA
+
+A template copyright release is available in PDF or HTML. You can use this release to make future changes.
+
+see http://www.sqlite.org/copyright.html
diff --git a/community/sqlite2/PKGBUILD b/community/sqlite2/PKGBUILD
new file mode 100644
index 000000000..0f8ff8f22
--- /dev/null
+++ b/community/sqlite2/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 20695 2010-07-10 22:08:38Z lcarlier $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=sqlite2
+pkgver=2.8.17
+pkgrel=4
+pkgdesc="A C library that implements an SQL database engine"
+arch=('i686' 'x86_64')
+url="http://www.sqlite.org/"
+depends=('readline>=6.0.00')
+source=(http://www.sqlite.org/sqlite-$pkgver.tar.gz 'LICENSE')
+license=('custom')
+options=('!libtool')
+md5sums=('838dbac20b56d2c4292e98848505a05b'
+ '5d3b333e59a37747284f66081660f8a1')
+
+build() {
+ cd ${srcdir}/sqlite-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/sqlite-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # install custom license
+ install -Dm644 ${srcdir}/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/sqlitebrowser/PKGBUILD b/community/sqlitebrowser/PKGBUILD
new file mode 100644
index 000000000..e5a3a5a39
--- /dev/null
+++ b/community/sqlitebrowser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 24584 2010-08-26 14:46:36Z lcarlier $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com>
+# Contributor: Michael Fellinger <m.fellinger@gmail.com>
+
+pkgname=sqlitebrowser
+pkgver=2.0b1
+_pkgrealver=200_b1
+pkgrel=1
+pkgdesc="SQLite Database browser is a light GUI editor for SQLite databases, built on top of QT"
+arch=('i686' 'x86_64')
+url="http://sqlitebrowser.sf.net"
+license=('GPL')
+depends=('qt')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/${pkgname}_${_pkgrealver}_src.tar.gz)
+md5sums=('5ca3d41cca454235b93ce72cd585dfe3')
+
+build() {
+ cd $srcdir/trunk/$pkgname
+
+ sed -i 's|getline|xgetline|' sqlitebrowser/sqlbrowser_util.c
+ qmake
+ make
+}
+
+package() {
+ cd $srcdir/trunk/$pkgname
+
+ mkdir -p $pkgdir/usr/bin
+ cp $pkgname/$pkgname $pkgdir/usr/bin/
+}
diff --git a/community/sqliteman/PKGBUILD b/community/sqliteman/PKGBUILD
new file mode 100644
index 000000000..620e86ab8
--- /dev/null
+++ b/community/sqliteman/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 44071 2011-04-01 22:02:53Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Roman Porizka <artee@beer.cz>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=sqliteman
+pkgver=1.2.2
+pkgrel=4
+pkgdesc="The best developer's and/or admin's GUI tool for Sqlite3 in the world"
+arch=('i686' 'x86_64')
+url="http://sqliteman.sf.net"
+license=('GPL')
+depends=('qt' 'qscintilla')
+makedepends=('cmake')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('5ecdf710e23606e1b924f740ea69306d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ cmake . -DCMAKE_INSTALL_PREFIX:PATH=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/squashfs-tools/PKGBUILD b/community/squashfs-tools/PKGBUILD
new file mode 100644
index 000000000..5ca67f8ca
--- /dev/null
+++ b/community/squashfs-tools/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 42134 2011-03-13 21:59:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Original TU: Jeff Mickey <j@codemac.net>
+# Contributor: ciccio.a
+
+pkgname=squashfs-tools
+pkgver=4.2
+pkgrel=1
+pkgdesc="Tools for squashfs, a highly compressed read-only filesystem for Linux."
+url="http://squashfs.sourceforge.net"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('zlib' 'lzo2' 'xz')
+source=("http://downloads.sourceforge.net/sourceforge/squashfs/squashfs${pkgver}.tar.gz")
+md5sums=('1b7a781fb4cf8938842279bd3e8ee852')
+
+build() {
+ cd ${srcdir}/squashfs${pkgver}/${pkgname}
+ sed -i 's|^#XZ_SUPPORT = 1|XZ_SUPPORT = 1|' Makefile
+ sed -i 's|^#LZO_SUPPORT = 1|LZO_SUPPORT = 1|' Makefile
+ make
+}
+
+package() {
+ cd ${srcdir}/squashfs${pkgver}/${pkgname}
+ install -Dm755 mksquashfs ${pkgdir}/sbin/mksquashfs
+ install -m755 unsquashfs ${pkgdir}/sbin/unsquashfs
+}
diff --git a/community/sshguard/ChangeLog b/community/sshguard/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/sshguard/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/sshguard/PKGBUILD b/community/sshguard/PKGBUILD
new file mode 100644
index 000000000..f98609e15
--- /dev/null
+++ b/community/sshguard/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 43444 2011-03-26 08:45:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=sshguard
+pkgver=1.5
+pkgrel=1
+pkgdesc="brute force detector for SSH, Exim, VSFTPD and more. Blocks by ip with iptables"
+arch=('i686' 'x86_64')
+#url="http://sourceforge.net/projects/sshguard/"
+url="http://www.sshguard.net/"
+license=('GPL')
+depends=('glibc')
+options=(zipman)
+install=sshguard.install
+source=("http://downloads.sourceforge.net/sourceforge/sshguard/sshguard-$pkgver.tar.bz2"
+ sshguard.rc)
+md5sums=('11b9f47f9051e25bdfe84a365c961ec1'
+ '87977af93930c3867edffe3b2018f56e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-firewall=iptables
+ make
+ make prefix=$pkgdir/usr install
+ install -D -m0755 $srcdir/sshguard.rc $pkgdir/etc/rc.d/sshguard
+}
diff --git a/community/sshguard/sshguard.install b/community/sshguard/sshguard.install
new file mode 100644
index 000000000..0821c61e0
--- /dev/null
+++ b/community/sshguard/sshguard.install
@@ -0,0 +1,8 @@
+post_install() {
+ mkdir -p /var/db/sshguard
+ echo "-- You should add chain to your firewall:"
+ echo "-- iptables -N sshguard"
+ echo "-- iptables -A INPUT -p tcp --dport 22 -j sshguard"
+ echo "-- For more information, see http://www.sshguard.net/doc/"
+ /bin/true
+}
diff --git a/community/sshguard/sshguard.rc b/community/sshguard/sshguard.rc
new file mode 100755
index 000000000..4b8dee06f
--- /dev/null
+++ b/community/sshguard/sshguard.rc
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting SSHGuard"
+ tail -n0 -F /var/log/auth.log | /usr/sbin/sshguard -b /var/db/sshguard/blacklist.db &> /dev/null &
+ add_daemon sshguard
+ stat_done
+ ;;
+ stop)
+ stat_busy "Stopping SSHGuard"
+ kill `pidof sshguard` &> /dev/null
+ rm_daemon sshguard
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+*)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/stalonetray/PKGBUILD b/community/stalonetray/PKGBUILD
new file mode 100644
index 000000000..a55e8abeb
--- /dev/null
+++ b/community/stalonetray/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 31948 2010-11-08 11:05:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=stalonetray
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="STAnd-aLONE sysTRAY. It has minimal build and run-time dependencies: the Xlib only."
+arch=('i686' 'x86_64')
+url="http://stalonetray.sourceforge.net"
+license=('GPL')
+depends=('libx11' 'libxpm')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('3bf4c7e5e3c077f26242b37a8e008774')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m644 stalonetrayrc.sample $pkgdir/etc/stalonetrayrc
+}
diff --git a/community/steghide/ChangeLog b/community/steghide/ChangeLog
new file mode 100644
index 000000000..4cdd510bf
--- /dev/null
+++ b/community/steghide/ChangeLog
@@ -0,0 +1,4 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+* Added gcc 4.2 patch, with help from gentoo bug #178134
+* Fixed erroneous buildsystem.patch that removed path to mkinstalldirs
diff --git a/community/steghide/PKGBUILD b/community/steghide/PKGBUILD
new file mode 100644
index 000000000..04c5a0f54
--- /dev/null
+++ b/community/steghide/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 9308 2010-01-25 00:27:50Z foutrelis $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jason Chu <jason@archlinux.org>
+
+pkgname=steghide
+pkgver=0.5.1
+pkgrel=4
+pkgdesc="Steghide is a steganography program which embeds a secret message \
+ in a cover file by replacing some of the least significant bits"
+arch=('i686' 'x86_64')
+url="http://steghide.sourceforge.net"
+license=('GPL')
+depends=('libmcrypt' 'mhash' 'gcc' 'libjpeg' 'zlib' 'libtool')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
+ buildsystem.patch gcc-4.2.patch $pkgname-climits.patch)
+md5sums=('5be490e24807d921045780fd8cc446b3'
+ '14f5e054d71c91262bb1140288043df8'
+ 'fd861dc5a0a392c6c94a61e85ad74f29'
+ '897ce18edd008293a3328bc3f88775b3')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -p1 < ../buildsystem.patch || return 1
+ # this patch courtesy gentoo bug tracker #178134
+ patch -Np1 -i ../gcc-4.2.patch || return 1
+ patch -Np1 -i ../steghide-climits.patch || return 1
+ autoreconf -i
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/steghide/buildsystem.patch b/community/steghide/buildsystem.patch
new file mode 100644
index 000000000..e1fc057f7
--- /dev/null
+++ b/community/steghide/buildsystem.patch
@@ -0,0 +1,10 @@
+diff -urN steghide-0.5.1/src/Makefile.am steghide-0.5.1-new/src/Makefile.am
+--- steghide-0.5.1/src/Makefile.am 2003-09-28 09:33:21.000000000 -0700
++++ steghide-0.5.1-new/src/Makefile.am 2003-10-30 21:05:40.000000000 -0800
+@@ -33,5 +33,5 @@
+ WavPCMSampleValue.cc error.cc main.cc msg.cc SMDConstructionHeuristic.cc
+ LIBS = @LIBINTL@ @LIBS@
+ localedir = $(datadir)/locale
+-LIBTOOL = $(SHELL) libtool
++LIBTOOL = /usr/bin/libtool
+ MAINTAINERCLEANFILES = Makefile.in
diff --git a/community/steghide/gcc-4.2.patch b/community/steghide/gcc-4.2.patch
new file mode 100644
index 000000000..36848dd4c
--- /dev/null
+++ b/community/steghide/gcc-4.2.patch
@@ -0,0 +1,75 @@
+diff -Naur steghide-0.5.1.orig/src/AuData.h steghide-0.5.1.new/src/AuData.h
+--- steghide-0.5.1.orig/src/AuData.h 2003-09-28 11:30:29.000000000 -0400
++++ steghide-0.5.1.new/src/AuData.h 2007-06-28 17:22:44.000000000 -0400
+@@ -26,22 +26,30 @@
+
+ // AuMuLawAudioData
+ typedef AudioDataImpl<AuMuLaw,BYTE> AuMuLawAudioData ;
++template<>
+ inline BYTE AuMuLawAudioData::readValue (BinaryIO* io) const { return (io->read8()) ; }
++template<>
+ inline void AuMuLawAudioData::writeValue (BinaryIO* io, BYTE v) const { io->write8(v) ; }
+
+ // AuPCM8AudioData
+ typedef AudioDataImpl<AuPCM8,SBYTE> AuPCM8AudioData ;
++template<>
+ inline SBYTE AuPCM8AudioData::readValue (BinaryIO* io) const { return ((SBYTE) io->read8()) ; }
++template<>
+ inline void AuPCM8AudioData::writeValue (BinaryIO* io, SBYTE v) const { io->write8((BYTE) v) ; }
+
+ // AuPCM16AudioData
+ typedef AudioDataImpl<AuPCM16,SWORD16> AuPCM16AudioData ;
++template<>
+ inline SWORD16 AuPCM16AudioData::readValue (BinaryIO* io) const { return ((SWORD16) io->read16_be()) ; }
++template<>
+ inline void AuPCM16AudioData::writeValue (BinaryIO* io, SWORD16 v) const { io->write16_be((UWORD16) v) ; }
+
+ // AuPCM32AudioData
+ typedef AudioDataImpl<AuPCM32,SWORD32> AuPCM32AudioData ;
++template<>
+ inline SWORD32 AuPCM32AudioData::readValue (BinaryIO* io) const { return ((SWORD32) io->read32_be()) ; }
++template<>
+ inline void AuPCM32AudioData::writeValue (BinaryIO* io, SWORD32 v) const { io->write32_be((UWORD32) v) ; }
+
+ #endif // ndef SH_AUDATA_H
+diff -Naur steghide-0.5.1.orig/src/AuSampleValues.cc steghide-0.5.1.new/src/AuSampleValues.cc
+--- steghide-0.5.1.orig/src/AuSampleValues.cc 2003-09-28 11:30:30.000000000 -0400
++++ steghide-0.5.1.new/src/AuSampleValues.cc 2007-06-28 17:23:52.000000000 -0400
+@@ -21,17 +21,25 @@
+ #include "AuSampleValues.h"
+
+ // AuMuLawSampleValue
++template<>
+ const BYTE AuMuLawSampleValue::MinValue = 0 ;
++template<>
+ const BYTE AuMuLawSampleValue::MaxValue = BYTE_MAX ;
+
+ // AuPCM8SampleValue
++template<>
+ const SBYTE AuPCM8SampleValue::MinValue = SBYTE_MIN ;
++template<>
+ const SBYTE AuPCM8SampleValue::MaxValue = SBYTE_MAX ;
+
+ // AuPCM16SampleValue
++template<>
+ const SWORD16 AuPCM16SampleValue::MinValue = SWORD16_MIN ;
++template<>
+ const SWORD16 AuPCM16SampleValue::MaxValue = SWORD16_MAX ;
+
+ // AuPCM32SampleValue
++template<>
+ const SWORD32 AuPCM32SampleValue::MinValue = SWORD32_MIN ;
++template<>
+ const SWORD32 AuPCM32SampleValue::MaxValue = SWORD32_MAX ;
+diff -Naur steghide-0.5.1.orig/src/MHashPP.cc steghide-0.5.1.new/src/MHashPP.cc
+--- steghide-0.5.1.orig/src/MHashPP.cc 2003-10-05 06:17:50.000000000 -0400
++++ steghide-0.5.1.new/src/MHashPP.cc 2007-06-28 17:22:44.000000000 -0400
+@@ -120,7 +120,7 @@
+
+ std::string MHashPP::getAlgorithmName (hashid id)
+ {
+- char *name = mhash_get_hash_name (id) ;
++ char *name = (char *) mhash_get_hash_name (id) ;
+ std::string retval ;
+ if (name == NULL) {
+ retval = std::string ("<algorithm not found>") ;
diff --git a/community/steghide/steghide-climits.patch b/community/steghide/steghide-climits.patch
new file mode 100644
index 000000000..a7e54f51c
--- /dev/null
+++ b/community/steghide/steghide-climits.patch
@@ -0,0 +1,11 @@
+diff -ruN steghide-0.5.1.orig/src/Graph.cc steghide-0.5.1/src/Graph.cc
+--- steghide-0.5.1.orig/src/Graph.cc 2003-10-11 23:54:26.000000000 +0200
++++ steghide-0.5.1/src/Graph.cc 2008-12-14 14:23:27.000000000 +0100
+@@ -22,6 +22,7 @@
+ #include <list>
+ #include <map>
+ #include <vector>
++#include <climits>
+
+ #include "BitString.h"
+ #include "CvrStgFile.h"
diff --git a/community/stfl/PKGBUILD b/community/stfl/PKGBUILD
new file mode 100644
index 000000000..c972edb2d
--- /dev/null
+++ b/community/stfl/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 40783 2011-02-27 01:50:59Z allan $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Sven Pfleiderer <pfleidi@roothausen.de>
+
+pkgname=stfl
+pkgver=0.21
+pkgrel=3
+pkgdesc="Library implementing a curses-based widget set for text terminals"
+arch=('i686' 'x86_64')
+url="http://clifford.at/stfl/"
+license=('GPL3')
+depends=('ncurses')
+makedepends=('patch' 'swig')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://clifford.at/stfl/$pkgname-$pkgver.tar.gz \
+ $pkgname-archlinux.patch)
+md5sums=('888502c3f332a0ee66e490690d79d404'
+ 'a6231f269038c76a54fd08d6417f3d6d')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np1 -i ${srcdir}/$pkgname-archlinux.patch
+
+ make prefix=/usr Makefile.deps
+ make prefix=/usr
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make prefix=/usr DESTDIR=${pkgdir} install
+}
diff --git a/community/stfl/stfl-archlinux.patch b/community/stfl/stfl-archlinux.patch
new file mode 100644
index 000000000..df818299a
--- /dev/null
+++ b/community/stfl/stfl-archlinux.patch
@@ -0,0 +1,24 @@
+diff -ruN0 stfl-0.21-orig//Makefile.cfg stfl-0.21/Makefile.cfg
+--- stfl-0.21-orig//Makefile.cfg 2009-05-31 20:20:39.000000000 +0200
++++ stfl-0.21/Makefile.cfg 2010-03-25 20:01:19.000000000 +0100
+@@ -22 +22 @@
+-export prefix ?= /usr/local
++export prefix ?= /usr
+@@ -26 +26 @@
+-FOUND_SPL = 1
++FOUND_SPL = 0
+@@ -38 +38 @@
+-FOUND_PERL5 = 1
++FOUND_PERL5 = 0
+@@ -44 +44 @@
+-FOUND_PYTHON = 1
++FOUND_PYTHON = 0
+@@ -50 +50 @@
+-FOUND_RUBY = 1
++FOUND_RUBY = 0
+diff -ruN0 stfl-0.21-orig//stfl_internals.h stfl-0.21/stfl_internals.h
+--- stfl-0.21-orig//stfl_internals.h 2009-06-19 19:27:33.000000000 +0200
++++ stfl-0.21/stfl_internals.h 2010-03-25 20:00:52.000000000 +0100
+@@ -31 +31 @@
+-#include <ncursesw/ncurses.h>
++#include <ncurses.h>
diff --git a/community/stfl/stfl.changelog b/community/stfl/stfl.changelog
new file mode 100644
index 000000000..ff03a6817
--- /dev/null
+++ b/community/stfl/stfl.changelog
@@ -0,0 +1,23 @@
+2010-03-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#18210 - [stfl] no language bindings without swig fixed in 0.2.1-2
+
+2009-07-11 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.2.1
+
+2009-06-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Package moved to [community]
+
+2009-05-02 by pfleidi
+ * update to 0.20
+
+2008-02-09 by hrist
+ * update to 0.18
+
+2008-01-04 by hrist
+ * fixed the make command invocation (thanks to byte for the hint)
+
+2007-09-28 by hrist
+ * removed the patch (thanks to xio for the hint)
+
+2007-06-01 by STiAT
+ * made package build (patchfile global_stfl.patch)
diff --git a/community/stk/PKGBUILD b/community/stk/PKGBUILD
new file mode 100644
index 000000000..353f5cb1e
--- /dev/null
+++ b/community/stk/PKGBUILD
@@ -0,0 +1,85 @@
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=stk
+pkgver=4.4.2
+pkgrel=5
+pkgdesc="The Synthesis ToolKit in C++"
+arch=('i686' 'x86_64')
+url="http://ccrma.stanford.edu/software/stk/"
+license=('MIT')
+depends=('gcc-libs' 'jack')
+makedepends=('pkg-config')
+optdepends=('oss: use OSSv4 output/API'
+ 'tk: run provided demos/samples')
+source=(http://ccrma.stanford.edu/software/stk/release/$pkgname-$pkgver.tar.gz
+ $pkgname.license
+ cxxflags.patch
+ runtime.patch)
+md5sums=('0b7bd1f913ca01fb8b2201ebcf853358'
+ 'a0163d75a5f516b6c93f4fc948acff73'
+ '1b09d29321d575ad670f6371651015c6'
+ '36551c348340307c765fde85d4336e73')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # fails with --as-needed
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+
+ # optimise for our target architecture(s)
+ patch -Np1 -i ../cxxflags.patch
+ autoreconf
+
+ # enable shared library
+ sed -i \
+ "s:cd src && \$(MAKE)$:& lib$pkgname.so.$pkgver:" \
+ Makefile.in
+
+ # fix demo rawwaves path
+ sed -i 's:\.\./\.\.:/usr/lib/stk:' \
+ projects/demo/demo.cpp
+
+ # run actual build
+ ./configure RAWWAVE_PATH=/usr/lib/stk/rawwaves/ \
+ --prefix=/usr \
+ --with-alsa \
+ --with-jack \
+ --with-oss
+ make
+
+ # fix executable scripts
+ patch -Np1 -i ../runtime.patch
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ mkdir -p "$pkgdir"/usr/{bin,{lib,include}/stk}
+
+ # install library
+ cp -a src/libstk.* "$pkgdir/usr/lib/"
+
+ # install headers
+ install -m644 include/* "$pkgdir/usr/include/stk/"
+ rm "$pkgdir"/usr/include/stk/*~
+
+ # install runtime files
+ cp -a rawwaves projects/demo/{demo,tcl} \
+ projects/effects/{effects,tcl} \
+ projects/ragamatic/{ragamat,tcl,rawwaves} \
+ "$pkgdir/usr/lib/stk/"
+
+ # install executables
+ install -m755 projects/{demo/StkDemo,effects/StkEffects} \
+ "$pkgdir/usr/bin/"
+
+ install -m755 projects/ragamatic/Raga \
+ "$pkgdir/usr/bin/StkRagamatic"
+
+ # install license
+ install -Dm644 ../$pkgname.license \
+ "$pkgdir/usr/share/licenses/stk/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/stk/cxxflags.patch b/community/stk/cxxflags.patch
new file mode 100644
index 000000000..bb86e929a
--- /dev/null
+++ b/community/stk/cxxflags.patch
@@ -0,0 +1,25 @@
+--- stk-4.4.2/configure.ac 2010-02-04 15:52:39.000000000 -0500
++++ configure.ac 2010-03-11 23:55:44.000000000 -0500
+@@ -51,7 +51,7 @@
+ AC_ARG_ENABLE(debug,
+ [ --enable-debug = enable various debug output],
+ [AC_SUBST( cppflag, ["-D_STK_DEBUG_ -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__"] ) AC_SUBST( cxxflag, ["-g"] ) AC_SUBST( object_path, [Debug] ) AC_MSG_RESULT(yes)],
+- [AC_SUBST( cppflag, [] ) AC_SUBST( cxxflag, [-O3] ) AC_SUBST( object_path, [Release] ) AC_MSG_RESULT(no)])
++ [AC_SUBST( cppflag, [] ) AC_SUBST( cxxflag, [] ) AC_SUBST( object_path, [Release] ) AC_MSG_RESULT(no)])
+
+ # Checks for functions
+ if test $realtime = yes; then
+@@ -63,12 +63,7 @@
+ CPPFLAGS="$CPPFLAGS $cppflag"
+
+ # For debugging and optimization ... overwrite default because it has both -g and -O2
+-CXXFLAGS="$cxxflag"
+-
+-# Check compiler and use -Wall if gnu.
+-if [test $GXX = "yes" ;] then
+- AC_SUBST( cxxflag, [-Wall] )
+-fi
++CXXFLAGS="$cxxflag $CXXFLAGS"
+
+ CXXFLAGS="$CXXFLAGS $cxxflag"
+
diff --git a/community/stk/runtime.patch b/community/stk/runtime.patch
new file mode 100644
index 000000000..da7098a81
--- /dev/null
+++ b/community/stk/runtime.patch
@@ -0,0 +1,18 @@
+diff -Naur stk-4.4.2.orig//projects/demo/StkDemo stk-4.4.2/projects/demo/StkDemo
+--- stk-4.4.2.orig//projects/demo/StkDemo 2010-09-01 08:51:05.000000000 +0800
++++ stk-4.4.2/projects/demo/StkDemo 2010-09-01 08:51:48.000000000 +0800
+@@ -1 +1,2 @@
++cd /usr/lib/stk
+ wish < tcl/Demo.tcl | ./demo Clarinet -or -ip
+diff -Naur stk-4.4.2.orig//projects/effects/StkEffects stk-4.4.2/projects/effects/StkEffects
+--- stk-4.4.2.orig//projects/effects/StkEffects 2010-09-01 08:51:05.000000000 +0800
++++ stk-4.4.2/projects/effects/StkEffects 2010-09-01 08:51:54.000000000 +0800
+@@ -1 +1,2 @@
++cd /usr/lib/stk
+ wish < tcl/Effects.tcl | ./effects -ip
+diff -Naur stk-4.4.2.orig//projects/ragamatic/Raga stk-4.4.2/projects/ragamatic/Raga
+--- stk-4.4.2.orig//projects/ragamatic/Raga 2010-09-01 08:51:05.000000000 +0800
++++ stk-4.4.2/projects/ragamatic/Raga 2010-09-01 08:52:04.000000000 +0800
+@@ -1 +1,2 @@
++cd /usr/lib/stk
+ wish < tcl/Raga.tcl | ./ragamat -ip
diff --git a/community/stone-soup/PKGBUILD b/community/stone-soup/PKGBUILD
new file mode 100644
index 000000000..889ca785a
--- /dev/null
+++ b/community/stone-soup/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Jakob Gruber <jakob.gruber@gmail.com>
+
+pkgname=stone-soup
+pkgver=0.7.2
+pkgrel=1
+pkgdesc="An open-source, single-player, role-playing roguelike game of exploration and treasure-hunting"
+arch=('i686' 'x86_64')
+url='http://crawl.develz.org/'
+depends=('lua' 'ncurses' 'sdl_image' 'sqlite3' 'libgl' 'mesa' 'freetype2')
+makedepends=('bison' 'flex')
+conflicts=('crawl' 'stone-soup-tile' 'stone-soup-git')
+license=('custom')
+install=('stone-soup.install')
+source=("http://downloads.sourceforge.net/sourceforge/crawl-ref/stone_soup-${pkgver}-nodeps.tar.bz2"
+ "${pkgname}.desktop")
+md5sums=('dbd2680a2649acc681fce3453c65975b'
+ '98be780cddb2a0915bbab15ad93644f1')
+
+build() {
+
+ cd "${srcdir}/stone_soup-${pkgver}/source"
+
+ # adjust makefile to use /usr/bin, owner root:root, disable setgid on executable
+
+ sed -i 's|bin_prefix := bin|bin_prefix := usr/bin|' makefile
+ sed -i 's/INSTALL_UGRP := games:games/INSTALL_UGRP := root:root/' makefile
+ sed -i 's|MCHMOD := 2755|MCHMOD := 755|' makefile
+
+ # first build and install tiles version
+
+ make DESTDIR="${pkgdir}" \
+ SAVEDIR="~/.stone-soup/" \
+ DATADIR="/usr/share/${pkgname}/data" \
+ USE_UNICODE=y \
+ TILES=y \
+ install
+
+ # rename tiles executable to avoid clashing with console crawl
+
+ mv "${pkgdir}/usr/bin/crawl" "${pkgdir}/usr/bin/crawl-tiles"
+
+ # then build and install console version
+
+ make DESTDIR="${pkgdir}" \
+ SAVEDIR="~/.stone-soup/" \
+ DATADIR="/usr/share/${pkgname}/data" \
+ USE_UNICODE=y \
+ install
+
+ # install crawl license
+
+ install -D -m644 ../licence.txt "${pkgdir}/usr/share/licenses/${pkgname}/license.txt"
+
+ # install icon and .desktop file
+
+ install -D -m644 dat/tiles/stone_soup_icon-32x32.png "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
+ install -D -m644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+
+}
+
+# vim: ts=4:sw=4:expandtab
diff --git a/community/stone-soup/stone-soup.desktop b/community/stone-soup/stone-soup.desktop
new file mode 100644
index 000000000..f87d084c8
--- /dev/null
+++ b/community/stone-soup/stone-soup.desktop
@@ -0,0 +1,11 @@
+#!/usr/bin/env xdg-open
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Stone Soup
+GenericName=Crawl Stone Soup
+Comment=An open-source, single-player, role-playing roguelike game of exploration and treasure-hunting
+Icon=stone-soup.png
+Exec=/usr/bin/crawl-tiles
+Categories=Game;ArcadeGame
+
diff --git a/community/stone-soup/stone-soup.install b/community/stone-soup/stone-soup.install
new file mode 100644
index 000000000..08cb7e01d
--- /dev/null
+++ b/community/stone-soup/stone-soup.install
@@ -0,0 +1,12 @@
+post_upgrade() {
+
+ [[ $(vercmp $2 0.7.1) -ge 0 ]] && return
+
+ echo "---------------------------------------------------------------------
+ stone-soup saves have moved to ~/.stone-soup.
+ if you want to keep your old saves, move /var/games/stone-soup to
+ ~/.stone-soup with your user as owner.
+
+ stone-soup now also includes the tiles version (crawl-tiles)
+---------------------------------------------------------------------"
+}
diff --git a/community/stormbaancoureur/PKGBUILD b/community/stormbaancoureur/PKGBUILD
new file mode 100644
index 000000000..484d4371f
--- /dev/null
+++ b/community/stormbaancoureur/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 12391 2010-03-03 10:54:05Z mherych $
+# Maintainer: Callan Barrett <wizzomafizzo@gmail.com>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Jacek Poplawski <jacekpoplawski@gmail.com>
+
+pkgname=stormbaancoureur
+pkgver=2.1.6
+pkgrel=1
+pkgdesc="Arcade-style car game based on physics"
+arch=('i686' 'x86_64')
+url="http://www.stolk.org/stormbaancoureur/"
+license=('GPL')
+depends=('freeglut' 'alsa-lib')
+makedepends=('ode' 'plib')
+source=(http://www.stolk.org/stormbaancoureur/download/$pkgname-$pkgver.tar.gz
+ $pkgname.desktop)
+md5sums=('c09adc441b60acd2bbf6eb6d8a994c1e'
+ '38a10794e85dd01eff09d06d0c647d97')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver/src-$pkgname
+ sed -i 's|/usr/share/games|/usr/share|g' Makefile main.cxx
+ sed -i 's|/usr/games|/usr/bin|g' Makefile
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ install -D -m644 $startdir/src/$pkgname.desktop $startdir/pkg/usr/share/applications/$pkgname.desktop
+}
+
diff --git a/community/stormbaancoureur/stormbaancoureur.desktop b/community/stormbaancoureur/stormbaancoureur.desktop
new file mode 100644
index 000000000..2453f1bc3
--- /dev/null
+++ b/community/stormbaancoureur/stormbaancoureur.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Stormbaan Coureur
+GenericName=Car Game
+Exec=stormbaancoureur
+Terminal=false
+StartupNotify=false
+Type=Application
+Categories=Application;Game;ArcadeGame;
diff --git a/community/stress/PKGBUILD b/community/stress/PKGBUILD
new file mode 100644
index 000000000..c755912fd
--- /dev/null
+++ b/community/stress/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 35321 2010-12-18 21:37:40Z ibiru $
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=stress
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="A tool that stress tests your system (CPU, memory, I/O, disks)"
+arch=('i686' 'x86_64')
+url="http://weather.ou.edu/~apw/projects/stress/"
+license=('GPL')
+options=('!emptydirs')
+source=(http://weather.ou.edu/~apw/projects/stress/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a607afa695a511765b40993a64c6e2f4')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/stunnel/Makefile.patch b/community/stunnel/Makefile.patch
new file mode 100644
index 000000000..27be911d6
--- /dev/null
+++ b/community/stunnel/Makefile.patch
@@ -0,0 +1,21 @@
+--- tools/Makefile.in 2010-03-31 04:45:09.000000000 -0500
++++ tools/Makefile.in 2010-04-11 17:17:41.000000000 -0500
+@@ -334,8 +334,7 @@
+
+ info-am:
+
+-install-data-am: install-confDATA install-data-local \
+- install-examplesDATA
++install-data-am: install-confDATA install-examplesDATA
+
+ install-dvi: install-dvi-am
+
+@@ -377,7 +376,7 @@
+ clean-local distclean distclean-generic distclean-libtool \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-confDATA install-data install-data-am \
+- install-data-local install-dvi install-dvi-am \
++ install-dvi install-dvi-am \
+ install-examplesDATA install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
diff --git a/community/stunnel/PKGBUILD b/community/stunnel/PKGBUILD
new file mode 100644
index 000000000..f617a4f3e
--- /dev/null
+++ b/community/stunnel/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 43034 2011-03-23 21:42:21Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+
+pkgname=stunnel
+pkgver=4.35
+pkgrel=1
+pkgdesc="A program that allows you to encrypt arbitrary TCP connections inside SSL"
+arch=('i686' 'x86_64')
+url="http://www.stunnel.org"
+license=('GPL')
+depends=('openssl' 'tcp_wrappers')
+install=stunnel.install
+options=('!libtool')
+source=("ftp://ftp.stunnel.org/stunnel/$pkgname-$pkgver.tar.gz"
+ 'Makefile.patch' 'stunnel.rc.d')
+md5sums=('2c8e153caee9d954fb7d00980968b50d'
+ 'f15398497e10e080c2406d2fc541660c'
+ 'cb647c71ff4cb1e035b6e515d5f13ebf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # don't create a certificate...
+ patch -p0 < $srcdir/Makefile.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-ipv6
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=$pkgdir install
+
+ for i in ca.pl importCA.sh; do
+ install -Dm755 tools/$i $pkgdir/usr/share/stunnel/$i
+ done
+ install -Dm755 $srcdir/stunnel.rc.d $pkgdir/etc/rc.d/stunnel
+ sed -e "s:/usr/var/lib/stunnel/:/var/run/stunnel:g" \
+ -e "s:/usr/etc/stunnel/:/etc/stunnel/:g" \
+ -e "s:nobody:stunnel:g" -e "s:nogroup:stunnel:g" \
+ -i ${pkgdir}/etc/stunnel/stunnel.conf-sample
+ install -Dm644 tools/stunnel.cnf $pkgdir/etc/stunnel/stunnel.cnf
+}
diff --git a/community/stunnel/stunnel.install b/community/stunnel/stunnel.install
new file mode 100644
index 000000000..f7bbbffcb
--- /dev/null
+++ b/community/stunnel/stunnel.install
@@ -0,0 +1,35 @@
+post_install() {
+ # add stunnel group
+ if [ ! `grep stunnel /etc/group` ]; then
+ groupadd -g 16 stunnel &>/dev/null
+ fi
+
+ # add stunnel user
+ id stunnel &>/dev/null || \
+ useradd -u 16 -g stunnel -d /var/run/stunnel -s /bin/false stunnel
+
+ # create chroot dir if necessary.
+ if [ ! -d /var/run/stunnel ]; then
+ install -d -m 770 -o stunnel -g stunnel /var/run/stunnel
+ fi
+
+ cat << EOF
+
+NOTE
+----
+Copy /etc/stunnel/stunnel.conf-sample to /etc/stunnel/stunnel.conf
+& edit it to match your setup before invoking the daemon (/etc/rc.d/stunnel).
+
+EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ # remove users & groups
+ userdel stunnel &> /dev/null
+ groupdel stunnel &> /dev/null
+ rm -rf /var/run/stunnel
+}
diff --git a/community/stunnel/stunnel.rc.d b/community/stunnel/stunnel.rc.d
new file mode 100644
index 000000000..15816abe8
--- /dev/null
+++ b/community/stunnel/stunnel.rc.d
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/stunnel`
+case "$1" in
+ start)
+ stat_busy "Starting stunnel"
+ [ -z "$PID" ] && /usr/bin/stunnel
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon stunnel
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping stunnel"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon stunnel
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/subtitleeditor/PKGBUILD b/community/subtitleeditor/PKGBUILD
new file mode 100644
index 000000000..bfee4dd9a
--- /dev/null
+++ b/community/subtitleeditor/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 38397 2011-01-26 20:18:42Z jelle $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=subtitleeditor
+pkgver=0.38.0
+pkgrel=1
+pkgdesc="A GTK+2 tool to edit subtitles for GNU/Linux/*BSD"
+arch=('i686' 'x86_64')
+url="http://home.gna.org/subtitleeditor/"
+license=('GPL3')
+depends=('enchant' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'gstreamermm' 'gtk2' 'gtkmm' 'hicolor-icon-theme' 'libsigc++' 'libxml++' 'xdg-utils')
+makedepends=('intltool')
+optdepends=('gstreamer0.10-ffmpeg: to be able to view movies inside the subtitleeditor'
+ 'gstreamer0.10-ugly-plugins: to be able to view movies inside the subtitleeditor'
+ 'gstreamer0.10-fluendo: to be able to view movies inside the subtitleeditor')
+options=('!libtool')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://download.gna.org/$pkgname/0.38/$pkgname-$pkgver.tar.gz)
+md5sums=('2c4d7d4bd79f45effcea279a2e06ca66')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/subtitleeditor/subtitleeditor.changelog b/community/subtitleeditor/subtitleeditor.changelog
new file mode 100644
index 000000000..d43a5264b
--- /dev/null
+++ b/community/subtitleeditor/subtitleeditor.changelog
@@ -0,0 +1,51 @@
+2010-07-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.37.1
+
+2010-07-04 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.37.0
+
+2010-04-06 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.36.2
+
+2010-03-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.36.1
+
+2010-02-02 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.36.0
+
+2009-12-31 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.35.1
+
+2009-11-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.34.0
+
+2009-06-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.33.0
+
+2009-06-03 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.32.0
+
+2009-04-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.31.0
+
+2008-12-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.30.0
+
+2008-11-22 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.26.0
+
+2008-10-14 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.25.0
+
+2008-09-23 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.24.0
+
+2008-09-05 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.23.0
+
+2008-08-31 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.22.3
+
+2008-08-12 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release v0.22.2
+ * Release info: http://home.gna.org/subtitleeditor/release-logs/0.22.0/
diff --git a/community/subtitleeditor/subtitleeditor.install b/community/subtitleeditor/subtitleeditor.install
new file mode 100644
index 000000000..b711352cb
--- /dev/null
+++ b/community/subtitleeditor/subtitleeditor.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/subtle/PKGBUILD b/community/subtle/PKGBUILD
new file mode 100644
index 000000000..c08e25119
--- /dev/null
+++ b/community/subtle/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 38833 2011-02-01 21:18:39Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: unexist <unexist@dorfelite.net>
+# Past Contributors: Abakus <java5@arcor.de>, TDY <tdy@gmx.com>, Xilon <xilonmu@gmail.com>
+pkgname=subtle
+pkgver=0.9.2573
+pkgrel=2
+pkgdesc="A grid-based manual tiling window manager with a strong focus on easy but customizable look and feel"
+arch=("i686" "x86_64")
+url="http://subtle.subforge.org"
+license=("GPL")
+depends=("libx11" "ruby")
+makedepends=("ruby" "pkg-config" "libxinerama" "libxrandr" "libxft" "libxpm")
+provides=("subtle")
+conflicts=("subtle-hg")
+backup=("etc/xdg/subtle/subtle.rb")
+source=(http://subforge.org/attachments/download/46/$pkgname-$pkgver-lambda.tbz2)
+md5sums=('afcb897307329fc2cdb0733db9cc3a79')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver-lambda"
+ rake destdir=$pkgdir install
+}
diff --git a/community/subtle/subtle.install b/community/subtle/subtle.install
new file mode 100644
index 000000000..c7ef727b7
--- /dev/null
+++ b/community/subtle/subtle.install
@@ -0,0 +1,3 @@
+post_upgrade() {
+ echo "If you have subtles on your system remember to upgrade them doing:\n\n\t sur upgrade "
+}
diff --git a/community/sunpinyin/PKGBUILD b/community/sunpinyin/PKGBUILD
new file mode 100644
index 000000000..55c909ffe
--- /dev/null
+++ b/community/sunpinyin/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+
+pkgname=sunpinyin
+pkgver=2.0.3
+pkgrel=1
+pkgdesc='SunPinYin is a Statistical Language Model based pinyin IME by Sun.'
+arch=('i686' 'x86_64')
+url='http://sunpinyin.googlecode.com'
+license=('LGPL')
+makedepends=('scons')
+source=("http://sunpinyin.googlecode.com/files/sunpinyin-${pkgver}.tar.gz")
+md5sums=('bc1cd4d7d48a73276dfe4c9f5a434cc7')
+
+build() {
+ cd sunpinyin-${pkgver}
+
+ scons \
+ --prefix=/usr
+}
+
+package() {
+ cd sunpinyin-${pkgver}
+
+ scons \
+ --prefix=/usr \
+ --install-sandbox=${pkgdir} \
+ install
+}
diff --git a/community/superswitcher/PKGBUILD b/community/superswitcher/PKGBUILD
new file mode 100644
index 000000000..e085e303c
--- /dev/null
+++ b/community/superswitcher/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 21339 2010-07-16 01:26:50Z tdziedzic $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Achraf cherti <achrafcherti@gmail.com>
+
+pkgname=superswitcher
+pkgver=0.6
+pkgrel=3
+pkgdesc='Powerful window and workspace switching using the Super key'
+arch=('i686' 'x86_64')
+url='http://code.google.com/p/superswitcher/'
+license=('GPL')
+depends=('gconf' 'libwnck' 'dbus-glib')
+makedepends=('intltool')
+source=("http://superswitcher.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('e8620c8502dccc3f3d3d84e0eb359142')
+options=('!emptydirs')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ sed -i 's/$(addsuffix .in, $(INTLTOOL_BUILT))/`addsuffix .in, $INTLTOOL_BUILT`/' Makefile.am
+ sed -i -e 's/\(^GNOME_COMPILE_WARNINGS(yes)\)/#\1/' configure.in
+ sed -i -e 's/\(AM_CFLAGS = @WARN_CFLAGS@\)/#\1/' src/Makefile.am
+
+ aclocal
+
+ autoconf
+
+ automake \
+ --add-missing
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/supertux/PKGBUILD b/community/supertux/PKGBUILD
new file mode 100644
index 000000000..48159914c
--- /dev/null
+++ b/community/supertux/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: vande198
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=supertux
+pkgver=0.3.3
+pkgrel=2
+pkgdesc="A classic 2D jump'n run sidescroller game in a style similar to the original SuperMario games"
+arch=('i686' 'x86_64')
+url="http://super-tux.sourceforge.net/"
+license=('GPL')
+depends=('sdl_image' 'curl' 'physfs' 'openal' 'libvorbis' 'libgl' 'glew')
+makedepends=('cmake' 'boost')
+source=(http://download.berlios.de/supertux/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f3f803e629ee51a9de0b366a036e393d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D INSTALL_SUBDIR_BIN=bin .
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/supertux/compile.patch b/community/supertux/compile.patch
new file mode 100644
index 000000000..05376fe91
--- /dev/null
+++ b/community/supertux/compile.patch
@@ -0,0 +1,67 @@
+diff -ruN supertux-0.3.1.orig/src/console.hpp supertux-0.3.1/src/console.hpp
+--- supertux-0.3.1.orig/src/console.hpp 2008-01-03 21:59:27.000000000 +0100
++++ supertux-0.3.1/src/console.hpp 2008-08-23 11:57:47.000000000 +0200
+@@ -27,6 +27,8 @@
+ #include <sstream>
+ #include <iostream>
+ #include <squirrel.h>
++#include <memory>
++#include <cstdlib>
+
+ class Console;
+ class ConsoleStreamBuffer;
+diff -ruN supertux-0.3.1.orig/src/lisp/lexer.cpp supertux-0.3.1/src/lisp/lexer.cpp
+--- supertux-0.3.1.orig/src/lisp/lexer.cpp 2008-01-03 21:59:26.000000000 +0100
++++ supertux-0.3.1/src/lisp/lexer.cpp 2008-08-23 13:45:58.000000000 +0200
+@@ -21,6 +21,7 @@
+ #include <sstream>
+ #include <stdexcept>
+ #include <iostream>
++#include <cstring>
+
+ #include "lexer.hpp"
+
+diff -ruN supertux-0.3.1.orig/src/sprite/sprite_manager.hpp supertux-0.3.1/src/sprite/sprite_manager.hpp
+--- supertux-0.3.1.orig/src/sprite/sprite_manager.hpp 2008-01-03 21:59:26.000000000 +0100
++++ supertux-0.3.1/src/sprite/sprite_manager.hpp 2008-08-23 13:29:34.000000000 +0200
+@@ -21,6 +21,7 @@
+ #define SUPERTUX_SPRITE_MANAGER_H
+
+ #include <map>
++#include <string>
+
+ class SpriteData;
+ class Sprite;
+diff -ruN supertux-0.3.1.orig/src/textscroller.hpp supertux-0.3.1/src/textscroller.hpp
+--- supertux-0.3.1.orig/src/textscroller.hpp 2008-01-03 21:59:27.000000000 +0100
++++ supertux-0.3.1/src/textscroller.hpp 2008-08-23 13:34:35.000000000 +0200
+@@ -24,6 +24,7 @@
+ #include <vector>
+ #include <string>
+ #include <map>
++#include <memory>
+
+ #include "screen.hpp"
+ #include "math/vector.hpp"
+diff -ruN supertux-0.3.1.orig/src/title.cpp supertux-0.3.1/src/title.cpp
+--- supertux-0.3.1.orig/src/title.cpp 2008-01-03 21:59:28.000000000 +0100
++++ supertux-0.3.1/src/title.cpp 2008-08-23 12:05:19.000000000 +0200
+@@ -32,6 +32,7 @@
+ #include <SDL.h>
+ #include <SDL_image.h>
+ #include <physfs.h>
++#include <algorithm>
+
+ #include "title.hpp"
+ #include "mainloop.hpp"
+diff -ruN supertux-0.3.1.orig/src/video/sdl_texture.hpp supertux-0.3.1/src/video/sdl_texture.hpp
+--- supertux-0.3.1.orig/src/video/sdl_texture.hpp 2008-01-03 21:59:22.000000000 +0100
++++ supertux-0.3.1/src/video/sdl_texture.hpp 2008-08-23 13:37:14.000000000 +0200
+@@ -23,6 +23,7 @@
+ #include <config.h>
+
+ #include <SDL.h>
++#include <algorithm>
+
+ #include "texture.hpp"
+ #include "color.hpp"
diff --git a/community/supertux/gcc44.patch b/community/supertux/gcc44.patch
new file mode 100644
index 000000000..b58d9c29d
--- /dev/null
+++ b/community/supertux/gcc44.patch
@@ -0,0 +1,90 @@
+diff -ruN supertux-0.3.1.orig/src/console.hpp supertux-0.3.1/src/console.hpp
+--- supertux-0.3.1.orig/src/console.hpp 2008-01-03 20:59:27.000000000 +0000
++++ supertux-0.3.1/src/console.hpp 2009-05-17 19:43:26.914307646 +0000
+@@ -27,6 +27,8 @@
+ #include <sstream>
+ #include <iostream>
+ #include <squirrel.h>
++#include <memory>
++#include <cstdlib>
+
+ class Console;
+ class ConsoleStreamBuffer;
+diff -ruN supertux-0.3.1.orig/src/lisp/lexer.cpp supertux-0.3.1/src/lisp/lexer.cpp
+--- supertux-0.3.1.orig/src/lisp/lexer.cpp 2008-01-03 20:59:26.000000000 +0000
++++ supertux-0.3.1/src/lisp/lexer.cpp 2009-05-17 19:43:27.037705317 +0000
+@@ -21,6 +21,7 @@
+ #include <sstream>
+ #include <stdexcept>
+ #include <iostream>
++#include <cstring>
+
+ #include "lexer.hpp"
+
+diff -ruN supertux-0.3.1.orig/src/lisp/lisp.cpp supertux-0.3.1/src/lisp/lisp.cpp
+--- supertux-0.3.1.orig/src/lisp/lisp.cpp 2008-01-03 20:59:26.000000000 +0000
++++ supertux-0.3.1/src/lisp/lisp.cpp 2009-05-17 19:44:29.305165638 +0000
+@@ -18,7 +18,7 @@
+ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ #include <config.h>
+-
++#include <cstdio>
+ #include "lisp.hpp"
+
+ namespace lisp
+diff -ruN supertux-0.3.1.orig/src/random_generator.cpp supertux-0.3.1/src/random_generator.cpp
+--- supertux-0.3.1.orig/src/random_generator.cpp 2008-01-03 20:59:27.000000000 +0000
++++ supertux-0.3.1/src/random_generator.cpp 2009-05-17 19:44:05.851002254 +0000
+@@ -39,6 +39,7 @@
+ #include <stdexcept>
+ #include <time.h>
+ #include <cassert>
++#include <cstdio>
+ #include "random_generator.hpp"
+
+ RandomGenerator systemRandom; // global random number generator
+diff -ruN supertux-0.3.1.orig/src/sprite/sprite_manager.hpp supertux-0.3.1/src/sprite/sprite_manager.hpp
+--- supertux-0.3.1.orig/src/sprite/sprite_manager.hpp 2008-01-03 20:59:26.000000000 +0000
++++ supertux-0.3.1/src/sprite/sprite_manager.hpp 2009-05-17 19:43:27.037705317 +0000
+@@ -21,6 +21,7 @@
+ #define SUPERTUX_SPRITE_MANAGER_H
+
+ #include <map>
++#include <string>
+
+ class SpriteData;
+ class Sprite;
+diff -ruN supertux-0.3.1.orig/src/textscroller.hpp supertux-0.3.1/src/textscroller.hpp
+--- supertux-0.3.1.orig/src/textscroller.hpp 2008-01-03 20:59:27.000000000 +0000
++++ supertux-0.3.1/src/textscroller.hpp 2009-05-17 19:43:27.037705317 +0000
+@@ -24,6 +24,7 @@
+ #include <vector>
+ #include <string>
+ #include <map>
++#include <memory>
+
+ #include "screen.hpp"
+ #include "math/vector.hpp"
+diff -ruN supertux-0.3.1.orig/src/title.cpp supertux-0.3.1/src/title.cpp
+--- supertux-0.3.1.orig/src/title.cpp 2008-01-03 20:59:28.000000000 +0000
++++ supertux-0.3.1/src/title.cpp 2009-05-17 19:43:27.041000359 +0000
+@@ -32,6 +32,7 @@
+ #include <SDL.h>
+ #include <SDL_image.h>
+ #include <physfs.h>
++#include <algorithm>
+
+ #include "title.hpp"
+ #include "mainloop.hpp"
+diff -ruN supertux-0.3.1.orig/src/video/sdl_texture.hpp supertux-0.3.1/src/video/sdl_texture.hpp
+--- supertux-0.3.1.orig/src/video/sdl_texture.hpp 2008-01-03 20:59:22.000000000 +0000
++++ supertux-0.3.1/src/video/sdl_texture.hpp 2009-05-17 19:43:27.041000359 +0000
+@@ -23,6 +23,7 @@
+ #include <config.h>
+
+ #include <SDL.h>
++#include <algorithm>
+
+ #include "texture.hpp"
+ #include "color.hpp"
diff --git a/community/supertuxkart/PKGBUILD b/community/supertuxkart/PKGBUILD
new file mode 100644
index 000000000..0cbd840c7
--- /dev/null
+++ b/community/supertuxkart/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 35517 2010-12-21 13:39:10Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Daenyth <Daenyth+Arch [AT] gmail [DOT] com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: rabyte <rabyte__gmail>
+
+pkgname=supertuxkart
+pkgver=0.7
+pkgrel=1
+pkgdesc="A kart racing game featuring Tux and his friends"
+arch=('i686' 'x86_64')
+url="http://supertuxkart.sourceforge.net/"
+license=('GPL2')
+depends=('irrlicht' 'openal' 'libvorbis')
+makedepends=()
+source=(http://downloads.sourceforge.net/project/$pkgname/SuperTuxKart/0.7/$pkgname-$pkgver-src.tar.bz2)
+md5sums=('2806f271e4d37fee5ad8ca166e1ad489')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --datadir=/usr/share
+
+ # Fix compilation failure: http://bugs.gentoo.org/283490
+ #sed -i 's/-lGL/-lGL -lGLU/' config.status
+
+ # those configure flags really mean nothing...
+ sed -i "s#/usr/local#/usr#" src/io/file_manager.cpp
+ sed -i "s#/games##" $(grep -Rl "/games" *)
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # fix executable location...
+ install -dm755 ${pkgdir}/usr/bin
+ mv ${pkgdir}/usr/supertuxkart ${pkgdir}/usr/bin/supertuxkart
+
+ sed -i "s#usr/supertuxkart#usr/bin/supertuxkart#" \
+ ${pkgdir}/usr/share/applications/supertuxkart.desktop
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/surf/PKGBUILD b/community/surf/PKGBUILD
new file mode 100644
index 000000000..2948cf361
--- /dev/null
+++ b/community/surf/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 31142 2010-10-27 11:32:19Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Pierre Chapuis <catwell at archlinux dot us>
+# Contributor: Ray Kohler <ataraxia937 at gmail dot com>
+# Contributor: Michael Witten <mfwitten>
+
+pkgname=surf
+pkgver=0.4.1
+pkgrel=1
+pkgdesc="A simple web browser based on WebKit/GTK+."
+arch=('i686' 'x86_64')
+url='http://surf.suckless.org/'
+license=('MIT')
+depends=('libwebkit')
+optdepends=('dmenu: URL-bar'
+ 'wget: default download handler')
+makedepends=('pkgconfig')
+install='surf.install'
+source=("http://dl.suckless.org/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'config.h')
+md5sums=('28ac7a6d193d25844aa6b1db77fcbafa'
+ 'a1d40e130189343a74f83166410f35d7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ cp "${srcdir}/config.h" config.h
+
+ sed -i 's/CPPFLAGS =/CPPFLAGS +=/g' config.mk
+ sed -i 's/CFLAGS =/CFLAGS +=/g' config.mk
+ sed -i 's/LDFLAGS =/LDFLAGS +=/g' config.mk
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+ install -Dm0644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/surf/config.h b/community/surf/config.h
new file mode 100644
index 000000000..c323a6239
--- /dev/null
+++ b/community/surf/config.h
@@ -0,0 +1,40 @@
+/* modifier 0 means no modifier */
+static char *useragent = "Surf/"VERSION" (X11; U; Unix; en-US) AppleWebKit/531.2+ Compatible (Safari)";
+static char *progress = "#FF0000";
+static char *progress_trust = "#00FF00";
+static char *stylefile = ".surf/style.css";
+static char *scriptfile = ".surf/script.js";
+static char *cookiefile = ".surf/cookies.txt";
+static time_t sessiontime = 3600;
+#define NOBACKGROUND 0
+
+#define SETPROP(p, q) { .v = (char *[]){ "/bin/sh", "-c", \
+ "prop=\"`xprop -id $2 $0 | cut -d '\"' -f 2 | dmenu`\" &&" \
+ "xprop -id $2 -f $1 8s -set $1 \"$prop\"", \
+ p, q, winid, NULL } }
+#define DOWNLOAD(d) { \
+ .v = (char *[]){ "/bin/sh", "-c", \
+ "xterm -e \"wget --load-cookies ~/.surf/cookies.txt '$0';\"", \
+ d, NULL } }
+#define MODKEY GDK_CONTROL_MASK
+static Key keys[] = {
+ /* modifier keyval function arg Focus */
+ { MODKEY|GDK_SHIFT_MASK,GDK_r, reload, { .b = TRUE } },
+ { MODKEY, GDK_r, reload, { .b = FALSE } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_p, print, { 0 } },
+ { MODKEY, GDK_p, clipboard, { .b = TRUE } },
+ { MODKEY, GDK_y, clipboard, { .b = FALSE } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_j, zoom, { .i = -1 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_k, zoom, { .i = +1 } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_i, zoom, { .i = 0 } },
+ { MODKEY, GDK_l, navigate, { .i = +1 } },
+ { MODKEY, GDK_h, navigate, { .i = -1 } },
+ { MODKEY, GDK_j, scroll, { .i = +1 } },
+ { MODKEY, GDK_k, scroll, { .i = -1 } },
+ { 0, GDK_Escape, stop, { 0 } },
+ { MODKEY, GDK_o, source, { 0 } },
+ { MODKEY, GDK_g, spawn, SETPROP("_SURF_URI", "_SURF_GO") },
+ { MODKEY, GDK_slash, spawn, SETPROP("_SURF_FIND", "_SURF_FIND") },
+ { MODKEY, GDK_n, find, { .b = TRUE } },
+ { MODKEY|GDK_SHIFT_MASK,GDK_n, find, { .b = FALSE } },
+};
diff --git a/community/surf/surf.install b/community/surf/surf.install
new file mode 100644
index 000000000..8511ab907
--- /dev/null
+++ b/community/surf/surf.install
@@ -0,0 +1,28 @@
+pre_install() {
+ echo "-- Edit config.h in PKGBUILD's directory (generally /var/abs/community/surf/)"
+ echo "-- and rebuild package if you want to change settings."
+ /bin/true
+}
+
+post_install() {
+ /bin/true
+}
+
+pre_upgrade() {
+ echo "-- Edit config.h in PKGBUILD's directory (generally /var/abs/community/surf/)"
+ echo "-- and rebuild package if you want to change settings."
+ /bin/true
+}
+
+post_upgrade() {
+ /bin/true
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
diff --git a/community/swarp/PKGBUILD b/community/swarp/PKGBUILD
new file mode 100644
index 000000000..31cf3ca96
--- /dev/null
+++ b/community/swarp/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 20069 2010-07-02 09:39:00Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Dag Odenhall <dag.odenhall@gmail.com>
+
+pkgname=swarp
+pkgver=0.1
+pkgrel=2
+pkgdesc="Simple pointer warp"
+license=('MIT')
+arch=(i686 x86_64)
+url="http://tools.suckless.org/"
+depends=(glibc libx11)
+source=(http://dl.suckless.org/tools/swarp-$pkgver.tar.gz
+ config.mk)
+md5sums=('b674dd2f33c45cbd789e4b6e09b7b55e'
+ '6fccb02af362a7284df689eea053a154')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cp $srcdir/config.mk .
+ sed -i "s/%VERSION%/$pkgver/g" config.mk
+ sed -i "s/%CFLAGS%/$CFLAGS/g" config.mk
+
+ make || return 1
+ make DESTDIR=$pkgdir install
+
+ install -m644 -D LICENSE $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/community/swarp/config.mk b/community/swarp/config.mk
new file mode 100644
index 000000000..12b3565be
--- /dev/null
+++ b/community/swarp/config.mk
@@ -0,0 +1,13 @@
+# Customized for Arch Linux <http://archlinux.org>
+
+VERSION = %VERSION%
+PREFIX = /usr
+MANPREFIX = ${PREFIX}/man
+X11INC = ${PREFIX}/include/X11
+X11LIB = ${PREFIX}/lib/X11
+INCS = -I. -I${PREFIX}/include -I${X11INC}
+LIBS = -L${PREFIX}/lib -lc -L${X11LIB} -lX11
+CFLAGS = %CFLAGS% ${INCS} -DVERSION=\"${VERSION}\"
+LDFLAGS = ${LIBS}
+CC = cc
+LD = ${CC}
diff --git a/community/swftools/PKGBUILD b/community/swftools/PKGBUILD
new file mode 100644
index 000000000..061a58fb1
--- /dev/null
+++ b/community/swftools/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 24938 2010-08-29 18:32:45Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
+
+pkgname=swftools
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="A collection of SWF manipulation and creation utilities"
+arch=('i686' 'x86_64')
+url="http://www.swftools.org/"
+license=('GPL')
+depends=('avifile' 'giflib' 'freeglut' 'lame' 't1lib' 'libjpeg' 'fontconfig')
+makedepends=('bison' 'flex' 'zlib')
+changelog=$pkgname.changelog
+source=(http://www.swftools.org/$pkgname-$pkgver.tar.gz)
+md5sums=('72dc4a7bf5cdf98c28f9cf9b1d8f5d7a')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make prefix=${pkgdir}/usr install
+
+ cd ${pkgdir}/usr/share/$pkgname/swfs
+ rm -f default_loader.swf default_viewer.swf
+ ln -s tessel_loader.swf default_loader.swf
+ ln -s simple_viewer.swf default_viewer.swf
+}
diff --git a/community/swftools/swftools.changelog b/community/swftools/swftools.changelog
new file mode 100644
index 000000000..71adfbca5
--- /dev/null
+++ b/community/swftools/swftools.changelog
@@ -0,0 +1,9 @@
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * swftools 0.9.1-1
+ * new upstream release
+
+2009-05-07 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * swftools 0.9.0-1
+ * new upstream release
diff --git a/community/swi-prolog/PKGBUILD b/community/swi-prolog/PKGBUILD
new file mode 100644
index 000000000..007441a52
--- /dev/null
+++ b/community/swi-prolog/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=swi-prolog
+pkgver=5.10.2
+pkgrel=2
+pkgdesc='Prolog environment'
+arch=('i686' 'x86_64')
+url='http://www.swi-prolog.org/'
+license=('GPL' 'LGPL')
+depends=('gmp' 'readline' 'openssl')
+makedepends=('libxft' 'libjpeg' 'unixodbc' 'libxpm' 'libxinerama')
+optdepends=('unixodbc: for using the odbc4pl library'
+ 'libjpeg: for using the pl2xpce library'
+ 'libxpm: for using the pl2xpce library'
+ 'libxinerama: for using the pl2xpce library'
+ 'libxft: for using the pl2xpce library')
+options=('!makeflags')
+source=("http://www.swi-prolog.org/download/stable/src/pl-${pkgver}.tar.gz")
+md5sums=('7973bcfd3854ae0cb647cc62f2faabcf')
+
+build() {
+ cd pl-${pkgver}
+
+ # enable shared because x86 doesn't build with shared libs, upstream made it intentional...
+ ./configure \
+ --prefix=/usr \
+ --with-world \
+ --enable-shared
+
+ make
+}
+
+package() {
+ cd pl-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # fix https://bugs.archlinux.org/task/20873
+ chmod +x ${pkgdir}/usr/lib/swipl-${pkgver}/library/dialect/sicstus/swipl-lfr.pl
+}
diff --git a/community/sword/PKGBUILD b/community/sword/PKGBUILD
new file mode 100644
index 000000000..853cabb1c
--- /dev/null
+++ b/community/sword/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: TripleE <eric1548@yahoo.com>
+
+pkgname=sword
+pkgver=1.6.2
+pkgrel=2
+pkgdesc="SWORD libraries for Bible programs"
+arch=('i686' 'x86_64')
+url="http://www.crosswire.org/sword/index.jsp"
+license=('GPL')
+depends=('curl' 'icu' 'clucene')
+source=(http://www.crosswire.org/ftpmirror/pub/${pkgname}/source/v1.6/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a7dc4456e20e915fec46d774b690e305')
+backup=('etc/sword.conf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --with-icu
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ make DESTDIR=${pkgdir} install_config
+}
+
diff --git a/community/sword/curl_7.20.patch b/community/sword/curl_7.20.patch
new file mode 100644
index 000000000..88763188d
--- /dev/null
+++ b/community/sword/curl_7.20.patch
@@ -0,0 +1,12 @@
+--- src/mgr/curlftpt.cpp (revision 2505)
++++ src/mgr/curlftpt.cpp (revision 2506)
+@@ -177,6 +177,9 @@
+ res = curl_easy_perform(session);
+ SWLog::getSystemLog()->logDebug("***** Finished performing curl easy action. \n");
+
++ // it seems CURL tries to use this option data later for some reason, so we unset here
++ curl_easy_setopt(session, CURLOPT_PROGRESSDATA, (void*)NULL);
++
+ if(CURLE_OK != res) {
+ retVal = -1;
+ }
diff --git a/community/synbak/PKGBUILD b/community/synbak/PKGBUILD
new file mode 100644
index 000000000..f615a51cf
--- /dev/null
+++ b/community/synbak/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 24902 2010-08-29 17:21:27Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: aeolist <aeolist@hotmail.com>
+
+pkgname=synbak
+pkgver=1.3.2
+pkgrel=1
+pkgdesc='Meant to unify several backup methods in a single application while supplying a powerful reporting system'
+arch=('i686' 'x86_64')
+url='http://www.initzero.it/products/opensource/synbak'
+license=('GPL')
+depends=('bc' 'gnu-netcat')
+changelog=$pkgname.changelog
+source=(http://www.initzero.it/products/opensource/${pkgname}/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('72212d57f4fa2675e3ced19936784a51')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/synbak/synbak.changelog b/community/synbak/synbak.changelog
new file mode 100644
index 000000000..757f1a45c
--- /dev/null
+++ b/community/synbak/synbak.changelog
@@ -0,0 +1,9 @@
+2010-08-29 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * synbak 1.3.2-1
+ * upstream release
+
+2009-11-08 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+ * synbak 1.2.2-1
+ * upstream release
diff --git a/community/synce-libmimedir/PKGBUILD b/community/synce-libmimedir/PKGBUILD
new file mode 100644
index 000000000..fd928a779
--- /dev/null
+++ b/community/synce-libmimedir/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 17680 2010-05-24 20:39:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-libmimedir
+pkgver=0.4
+pkgrel=3
+pkgdesc="provide a means of communication with a Windows CE device - library that parses MIME Directory Profile."
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/synce/libmimedir-$pkgver.tar.gz)
+md5sums=('156e1eb69377d9ae9180a09e38148ec6')
+
+build() {
+ cd $srcdir/libmimedir-$pkgver
+ if [ "$CARCH" = "x86_64" ]; then
+ sed -i -e 's|Wall|Wall -fPIC -DPIC|g' Makefile.in
+ ./configure --prefix=/usr --disable-shared --with-pic
+ else ./configure --prefix=/usr --disable-shared
+ fi
+ make || return 1
+ mkdir -p $pkgdir/usr/{include,lib}
+ make prefix=$pkgdir/usr install || return 1
+}
diff --git a/community/synce-librapi/PKGBUILD b/community/synce-librapi/PKGBUILD
new file mode 100644
index 000000000..0ffbe301f
--- /dev/null
+++ b/community/synce-librapi/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 26407 2010-09-15 11:58:40Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-librapi
+pkgver=0.15
+pkgrel=2
+pkgdesc="provide a means of communication with a Windows CE device - libraries and tools for making remote calls to pocket pc"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('synce-libsynce')
+makedepends=('pyrex')
+source=(http://downloads.sourceforge.net/sourceforge/synce/librapi2-$pkgver.tar.gz)
+md5sums=('7341571d6f6b583bb4837bae42fb5d1c')
+
+build() {
+ cd $srcdir/librapi2-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synce-libsynce/PKGBUILD b/community/synce-libsynce/PKGBUILD
new file mode 100644
index 000000000..7e9aba5de
--- /dev/null
+++ b/community/synce-libsynce/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 43060 2011-03-23 21:47:47Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-libsynce
+pkgver=0.15.1
+pkgrel=1
+pkgdesc="provide a means of communication with a Windows CE device - libraries"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'hal')
+source=(http://downloads.sourceforge.net/sourceforge/synce/libsynce-$pkgver.tar.gz)
+md5sums=('eaddc88c5f0027e89c6f0fffec34def2')
+
+build() {
+ cd $srcdir/libsynce-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synce-odccm/PKGBUILD b/community/synce-odccm/PKGBUILD
new file mode 100644
index 000000000..ff631dacf
--- /dev/null
+++ b/community/synce-odccm/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 20945 2010-07-12 20:22:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: SmackleFunky <smacklefunky@optusnet.com.au>
+
+pkgname=synce-odccm
+pkgver=0.13
+pkgrel=4
+pkgdesc="provide a means of communication with a Windows CE device - daemon to communicate with a handheld device"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('synce-libsynce' 'gnet' 'hal')
+backup=(etc/dbus/system.d/odccm.conf)
+source=(http://downloads.sourceforge.net/synce/odccm-$pkgver.tar.gz
+ synce-odccm.rc
+ dbus-error-fix.patch)
+md5sums=('8f12585398f1a79518887d5f94cf122d'
+ '5759fb86bb2af46d632c3807616c8999'
+ '4eea398fe356fe0d8c57d65d6f24b3db')
+
+build() {
+ cd $srcdir/odccm-$pkgver
+
+ patch -p1 <$srcdir/dbus-error-fix.patch
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ install -D -m 644 $srcdir/odccm-$pkgver/src/odccm.conf $pkgdir/etc/dbus-1/system.d/odccm.conf
+ install -D -m 755 $srcdir/synce-odccm.rc $pkgdir/etc/rc.d/synce-odccm
+}
diff --git a/community/synce-odccm/dbus-error-fix.patch b/community/synce-odccm/dbus-error-fix.patch
new file mode 100644
index 000000000..28af59372
--- /dev/null
+++ b/community/synce-odccm/dbus-error-fix.patch
@@ -0,0 +1,44 @@
+diff -wbBur odccm-0.13/src/odccm-device-manager.c odccm-0.13.my/src/odccm-device-manager.c
+--- odccm-0.13/src/odccm-device-manager.c 2007-11-21 20:00:26.000000000 +0000
++++ odccm-0.13.my/src/odccm-device-manager.c 2010-07-12 10:49:26.000000000 +0000
+@@ -485,9 +485,9 @@
+ int result = 0;
+
+ DBusError error;
+- dbus_error_init (&error);
+
+ /* Be sure it is a network interface */
++ dbus_error_init (&error);
+ gchar *ifname = libhal_device_get_property_string (ctx, udi, "net.interface",
+ &error);
+ if (ifname == NULL) goto DONE;
+@@ -495,11 +495,13 @@
+ libhal_free_string (ifname);
+
+ /* We'll then check some properties of its parent */
++ dbus_error_init (&error);
+ gchar *parentname = libhal_device_get_property_string (ctx, udi,
+ "info.parent", &error);
+ if (parentname == NULL) goto DONE;
+
+ /* Check the parent's device driver name (for usb-rndis-lite) */
++ dbus_error_init (&error);
+ gchar *drvname = libhal_device_get_property_string (ctx, parentname,
+ "info.linux.driver", &error);
+ if (drvname != NULL)
+@@ -509,6 +511,7 @@
+ }
+
+ /* Check pda.platform property (for usb-rndis-ng) */
++ dbus_error_init (&error);
+ gchar *pdaplatform = libhal_device_get_property_string (ctx, parentname,
+ "pda.platform", &error);
+ if (pdaplatform != NULL)
+@@ -626,6 +628,7 @@
+ if (!libhal_ctx_set_dbus_connection (priv->hal_ctx, conn))
+ goto OUT;
+
++ dbus_error_init (&error);
+ if (!libhal_ctx_init (priv->hal_ctx, &error))
+ {
+ func_name = "libhal_ctx_init";
diff --git a/community/synce-odccm/synce-odccm.rc b/community/synce-odccm/synce-odccm.rc
new file mode 100755
index 000000000..61e71a77d
--- /dev/null
+++ b/community/synce-odccm/synce-odccm.rc
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting SynCE odccm daemon"
+ /usr/sbin/odccm >/dev/null 2>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon synce-odccm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping SynCE odccm daemon"
+ PID=`pidof odccm`
+ if [ -z $PID ]; then
+ stat_fail
+ else
+ kill $PID
+ rm_daemon synce-odccm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/community/synce-rra/PKGBUILD b/community/synce-rra/PKGBUILD
new file mode 100644
index 000000000..dcc1e2f6b
--- /dev/null
+++ b/community/synce-rra/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 27254 2010-09-18 22:01:47Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-rra
+pkgver=0.14
+pkgrel=3
+pkgdesc="provide a means of communication with a Windows CE device - rra libraries for synce"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'synce-librapi' 'synce-libmimedir')
+makedepends=('python2' 'pyrex')
+source=(http://downloads.sourceforge.net/synce/librra-$pkgver.tar.gz \
+ build-fix.diff)
+md5sums=('3a608174a3a476c96dd4dd4929448fe8'
+ '8c898d226653cbbb8b778aa0587d66aa')
+
+build() {
+ cd $srcdir/librra-$pkgver
+ ./configure --prefix=/usr
+ sed -i s/-Werror// lib/Makefile src/Makefile
+# patch -p2 python/pyrra.pyx <../build-fix.diff
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synce-rra/build-fix.diff b/community/synce-rra/build-fix.diff
new file mode 100644
index 000000000..848fe2d71
--- /dev/null
+++ b/community/synce-rra/build-fix.diff
@@ -0,0 +1,51 @@
+diff -Nruad -Nruad librra-0.11.1.orig/python/pyrra.pyx librra-0.11.1/python/pyrra.pyx
+--- librra-0.11.1.orig/python/pyrra.pyx 2008-05-23 20:56:17.000000000 +0100
++++ librra-0.11.1/python/pyrra.pyx 2008-05-23 20:56:30.000000000 +0100
+@@ -132,7 +132,7 @@
+ cdef bool _CB_TypesCallback(RRA_SyncMgrTypeEvent event, uint32_t type, uint32_t count, uint32_t * ids, context):
+ ida=[]
+ cdef bool rc
+- for i from 0 <= i < count:
++ for 0 <= i < count:
+ ida.append(ids[i])
+ rc=context.CB_TypeCallback(<RRA_SyncMgrTypeEvent> event,type,ida)
+ return rc
+@@ -192,9 +192,9 @@
+ # Event processing
+ #
+
+- def SubscribeObjectEvents(self,type):
++ def SubscribeObjectEvents(self,type_id):
+ if self.connected != 0:
+- rra_syncmgr_subscribe(self.instance, type, _CB_TypesCallback, self)
++ rra_syncmgr_subscribe(self.instance, type_id, _CB_TypesCallback, self)
+ return 0
+ return -1
+
+@@ -260,7 +260,7 @@
+ c_oids = <uint32_t *>malloc(sizeof(uint32_t)*c_cnt)
+ rc=0
+ if c_oids != NULL:
+- for i from 0 <= i < c_cnt:
++ for 0 <= i < c_cnt:
+ c_oids[i] = oids[i]
+ rc= rra_syncmgr_get_multiple_objects(self.instance,type_id, c_cnt, c_oids,_CB_WriterCallback, self)
+ free(c_oids)
+@@ -291,7 +291,7 @@
+ rc = rra_syncmgr_put_multiple_objects(self.instance,type_id,c_oidcount,
+ c_oids,c_newoids,flags,_CB_ReaderCallback,self)
+ if rc == True:
+- for i from 0 <= i < c_oidcount:
++ for 0 <= i < c_oidcount:
+ newoid_array.append(c_newoids[i])
+ free(c_oids)
+ return rc
+@@ -312,7 +312,7 @@
+ # (to be overloaded by user)
+ #
+
+- def CB_TypeCallback(self, event, type, idarray):
++ def CB_TypeCallback(self, event, type_id, idarray):
+ return False
+
+ def CB_ObjectWriterCallback(self,type_id, obj_id, data):
diff --git a/community/synce-serial/PKGBUILD b/community/synce-serial/PKGBUILD
new file mode 100644
index 000000000..56375e689
--- /dev/null
+++ b/community/synce-serial/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 17689 2010-05-24 20:41:41Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-serial
+pkgver=0.11
+pkgrel=3
+pkgdesc="provide a means of communication with a Windows CE device - helper scripts for setting up a serial connection"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+depends=(sh)
+license=('GPL')
+source=(http://downloads.sourceforge.net/synce/$pkgname-$pkgver.tar.gz)
+md5sums=('a83f20eb59c845de192645158d051062')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib/$pkgname
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ sed -i 's#/usr/etc/#/etc/#' $pkgdir/usr/share/synce/synce-serial-common && \
+ sed -i 's#/usr/etc/#/etc/#' $pkgdir/usr/share/synce/synce-serial.conf
+}
diff --git a/community/synce-vdccm/PKGBUILD b/community/synce-vdccm/PKGBUILD
new file mode 100644
index 000000000..ef43928d7
--- /dev/null
+++ b/community/synce-vdccm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 17750 2010-05-24 21:46:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zhukov Pavel <gelios@gmail.com>
+
+pkgname=synce-vdccm
+pkgver=0.10.1
+pkgrel=2
+pkgdesc="provide a means of communication with a Windows CE device - daemon to communicate with a handheld device"
+arch=('i686' 'x86_64')
+url="http://synce.sourceforge.net/"
+license=('GPL')
+depends=('synce-libsynce')
+source=(http://downloads.sourceforge.net/synce/vdccm-$pkgver.tar.gz)
+md5sums=('43bca4c2fdb658f99b07549fa03832e0')
+
+build() {
+ cd $srcdir/vdccm-$pkgver
+ ./configure --prefix=/usr
+ sed -i 's#-pedantic-errors##' Makefile.in src/Makefile.in Makefile src/Makefile
+ sed -i '1,1i#include <string.h>' lib/tcpsocket.cpp lib/tcpconnectedsocket.cpp lib/tcpclientsocket.cpp lib/udpsocket.cpp src/rapiclient.cpp
+ sed -i '1,1i#include <stdint.h>' lib/udpsocket.h src/rapiclient.h
+ sed -i '1,1i#include <limits.h>' src/rapiclient.h
+ sed -i '1,1i#include <stdio.h>' src/rapiconnection.cpp
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/synergy/PKGBUILD b/community/synergy/PKGBUILD
new file mode 100644
index 000000000..7d140ded5
--- /dev/null
+++ b/community/synergy/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Jelle van der Waa <jelle vdwaa nl>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=synergy
+pkgver=1.3.6
+pkgrel=1
+pkgdesc="Share a single mouse and keyboard between multiple computers"
+url="http://synergy-foss.org"
+arch=('i686' 'x86_64')
+depends=('gcc-libs' 'libxtst' 'libxinerama' )
+license=('GPL2')
+makedepends=('libxt' 'cmake') # used by configure to test for libx11...
+backup=('etc/synergy.conf')
+source=("http://synergy.googlecode.com/files/$pkgname-$pkgver-Source.tar.gz" "${pkgname}s.rc" )
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-Source"
+
+ cmake -D CMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-Source"
+
+# make DESTDIR="$pkgdir" install # doesn't work atm
+
+ # install binary
+ install -d "$pkgdir/usr/bin/"
+ install -Dm755 synergyc $pkgdir/usr/bin/
+ install -Dm755 synergys $pkgdir/usr/bin/
+
+ # install rc.d script and config
+ install -d "${pkgdir}/etc/rc.d"
+ install -Dm644 examples/${pkgname}.conf "${pkgdir}/etc" # true
+ install -Dm755 $srcdir/${pkgname}s.rc "${pkgdir}/etc/rc.d/${pkgname}s" # true
+}
+md5sums=('7a445e97fe01850f60cdf43882d7f385'
+ '8f8c01add9bf6e3ae9f37a36ca6345b6')
diff --git a/community/synergy/synergys.rc b/community/synergy/synergys.rc
new file mode 100644
index 000000000..8f19dc5f7
--- /dev/null
+++ b/community/synergy/synergys.rc
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+daemon_name=synergys
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/synergys`
+case "$1" in
+ start)
+ stat_busy "Starting Synergy Server"
+ [ -z "$PID" ] && /usr/bin/synergys --config /etc/synergy.conf &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Synergy Server"
+ [ ! -z "$PID" ] && kill -9 $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/synfig/PKGBUILD b/community/synfig/PKGBUILD
new file mode 100644
index 000000000..ccf622c00
--- /dev/null
+++ b/community/synfig/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 36102 2010-12-27 10:40:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Franco Iacomella <yaco@gnu.org>
+
+pkgname=synfig
+pkgver=0.62.02
+pkgrel=1
+pkgdesc="Professional vector animation program (CLI renderer only)"
+arch=(i686 x86_64)
+url="http://synfig.org"
+license=('GPL2')
+depends=('libxml++' 'libsigc++2.0' 'etl' 'imagemagick' 'ffmpeg' 'fontconfig' 'libpng' 'libtiff' 'libdv' 'libmng')
+optdepends=('openexr' 'libsigc++')
+conflicts=('synfig-core')
+replaces=('synfig-core')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('e6af1aa9426cf629127d23edbd772f6d'
+ '0e983a00807c6c76c380f4f9918e6724')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ [ $NOEXTRACT -eq 1 ] || patch -p1 <$srcdir/build-fix.patch
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr --sysconfdir=/etc --with-libavcodec --with-libdv
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/synfig/build-fix.patch b/community/synfig/build-fix.patch
new file mode 100644
index 000000000..802046dab
--- /dev/null
+++ b/community/synfig/build-fix.patch
@@ -0,0 +1,74 @@
+diff -wbBur synfig-0.62.01/src/modules/mod_libavcodec/trgt_av.cpp synfig-0.62.01.my/src/modules/mod_libavcodec/trgt_av.cpp
+--- synfig-0.62.01/src/modules/mod_libavcodec/trgt_av.cpp 2010-05-31 18:12:14.000000000 +0000
++++ synfig-0.62.01.my/src/modules/mod_libavcodec/trgt_av.cpp 2010-06-03 15:56:04.000000000 +0000
+@@ -33,6 +33,10 @@
+ # include <config.h>
+ #endif
+
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
++#include <libswscale/swscale.h>
++
+ #include "trgt_av.h"
+
+ extern "C"
+@@ -118,14 +122,14 @@
+ picture = avcodec_alloc_frame();
+ if (!picture)
+ return NULL;
+- size = avpicture_get_size(pix_fmt, width, height);
++ size = avpicture_get_size((enum ::PixelFormat)pix_fmt, width, height);
+ picture_buf = (uint8_t *)malloc(size);
+ if (!picture_buf) {
+ av_free(picture);
+ return NULL;
+ }
+ avpicture_fill((AVPicture *)picture, picture_buf,
+- pix_fmt, width, height);
++ (enum ::PixelFormat)pix_fmt, width, height);
+ return picture;
+ }
+
+diff -wbBur synfig-0.62.01/src/modules/mod_png/mptr_png.cpp synfig-0.62.01.my/src/modules/mod_png/mptr_png.cpp
+--- synfig-0.62.01/src/modules/mod_png/mptr_png.cpp 2010-05-31 18:12:14.000000000 +0000
++++ synfig-0.62.01.my/src/modules/mod_png/mptr_png.cpp 2010-06-03 15:43:39.000000000 +0000
+@@ -309,7 +309,7 @@
+ float b=gamma().b_U8_to_F32((unsigned char)png_ptr->palette[row_pointers[y][x]].blue);
+ float a=1.0;
+ if(info_ptr->valid & PNG_INFO_tRNS)
+- a = (float)(unsigned char)png_ptr->trans[row_pointers[y][x]]*(1.0/255.0);
++ a = (float)(unsigned char)png_ptr->trans_alpha[row_pointers[y][x]]*(1.0/255.0);
+ surface_buffer[y][x]=Color(
+ r,
+ g,
+diff -wbBur synfig-0.62.01/src/synfig/canvas.cpp synfig-0.62.01.my/src/synfig/canvas.cpp
+--- synfig-0.62.01/src/synfig/canvas.cpp 2010-05-31 18:12:14.000000000 +0000
++++ synfig-0.62.01.my/src/synfig/canvas.cpp 2010-06-03 15:47:00.000000000 +0000
+@@ -716,7 +716,7 @@
+ Layer::LooseHandle loose_layer(x);
+
+ add_connection(loose_layer,
+- sigc::connection::connection(
++ sigc::connection(
+ x->signal_added_to_group().connect(
+ sigc::bind(
+ sigc::mem_fun(
+@@ -724,7 +724,7 @@
+ &Canvas::add_group_pair),
+ loose_layer))));
+ add_connection(loose_layer,
+- sigc::connection::connection(
++ sigc::connection(
+ x->signal_removed_from_group().connect(
+ sigc::bind(
+ sigc::mem_fun(
+diff -wbBur synfig-0.62.01/src/synfig/time.cpp synfig-0.62.01.my/src/synfig/time.cpp
+--- synfig-0.62.01/src/synfig/time.cpp 2010-05-31 18:12:14.000000000 +0000
++++ synfig-0.62.01.my/src/synfig/time.cpp 2010-06-03 15:43:39.000000000 +0000
+@@ -1,4 +1,6 @@
++#include <stdio.h>
+ /* === S Y N F I G ========================================================= */
++#include <stdio.h>
+ /*! \file time.cpp
+ ** \brief Template File
+ **
diff --git a/community/synfigstudio/PKGBUILD b/community/synfigstudio/PKGBUILD
new file mode 100644
index 000000000..73aaafa65
--- /dev/null
+++ b/community/synfigstudio/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 36099 2010-12-27 10:40:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Franco Iacomella <yaco@gnu.org>
+
+pkgname=synfigstudio
+_lpkgname=synfig
+pkgver=0.62.02
+pkgrel=1
+pkgdesc="Professional vector animation program (GUI)"
+arch=(i686 x86_64)
+url="http://synfig.org"
+license=('GPL2')
+depends=('gtkmm' 'synfig')
+install=synfigstudio.install
+source=(http://downloads.sourceforge.net/sourceforge/${_lpkgname}/$pkgname-$pkgver.tar.gz
+ images-makefile.patch)
+md5sums=('4b06f813e497072f01779f554e34c315'
+ 'f5555c14b5e530f349dd222ff4499fee')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ [ $NOEXTRACT -eq 1 ] || ./configure --prefix=/usr
+# [ $NOEXTRACT -eq 1 ] || patch -Np0 -i ../images-makefile.patch
+ sed -i 's#Gtk::IconSize::IconSize#Gtk::IconSize#' src/gui/dialogs/dialog_color.cpp
+
+ make
+ make DESTDIR=$pkgdir install
+
+ rm -f $pkgdir/usr/share/pixmaps/$pkgname/*.mng
+ install -m644 images/*.png -t $pkgdir/usr/share/pixmaps/$pkgname/
+}
diff --git a/community/synfigstudio/images-makefile.patch b/community/synfigstudio/images-makefile.patch
new file mode 100644
index 000000000..cb209b40e
--- /dev/null
+++ b/community/synfigstudio/images-makefile.patch
@@ -0,0 +1,49 @@
+--- images-old/Makefile 2008-10-22 23:16:32.000000000 -0700
++++ images/Makefile 2008-10-22 23:15:16.000000000 -0700
+@@ -223,7 +223,7 @@
+ top_builddir = ..
+ top_srcdir = ..
+ SYNFIG = synfig
+-EXT = png
++EXT = mng
+ EXTRA_DIST = installer_logo.sif installer_logo_osx.sif \
+ splash_screen.sifz splash_screen-0.61.08.sif \
+ splash_screen-0.61.07.sif about_icon.sif angle_icon.sif \
+@@ -650,31 +650,37 @@
+ $(SYNFIG) -q $< -o $@ --time 0
+ echo " File \"images\\$@\"" >>./images.nsh
+ echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh
++ mogrify -format png $@
+
+ .sifz.$(EXT):
+ $(SYNFIG) -q $< -o $@ --time 0
+ echo " File \"images\\$@\"" >>./images.nsh
+ echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh
++ mogrify -format png $@
+
+ keyframe_lock_all.$(EXT): $(srcdir)/keyframe_lock_icon.sif
+ $(SYNFIG) -q $< -o $@ --time 0
+ echo " File \"images\\$@\"" >>./images.nsh
+ echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh
++ mogrify -format png $@
+
+ keyframe_lock_past.$(EXT): $(srcdir)/keyframe_lock_icon.sif
+ $(SYNFIG) -q $< -o $@ --time 0 -c PastOnly
+ echo " File \"images\\$@\"" >>./images.nsh
+ echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh
++ mogrify -format png $@
+
+ keyframe_lock_future.$(EXT): $(srcdir)/keyframe_lock_icon.sif
+ $(SYNFIG) -q $< -o $@ --time 0 -c FutureOnly
+ echo " File \"images\\$@\"" >>./images.nsh
+ echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh
++ mogrify -format png $@
+
+ keyframe_lock_none.$(EXT): $(srcdir)/keyframe_lock_icon.sif
+ $(SYNFIG) -q $< -o $@ --time 0 -c Disabled
+ echo " File \"images\\$@\"" >>./images.nsh
+ echo " Delete \"\$$INSTDIR\\share\\pixmaps\\$@\"" >>./unimages.nsh
++ mogrify -format png $@
+
+ #.sif.png:
+ # $(SYNFIG) -q $< -o $@ --time 0
diff --git a/community/synfigstudio/synfigstudio.install b/community/synfigstudio/synfigstudio.install
new file mode 100644
index 000000000..b4ee8556f
--- /dev/null
+++ b/community/synfigstudio/synfigstudio.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community/sysprof/PKGBUILD b/community/sysprof/PKGBUILD
new file mode 100644
index 000000000..0def78052
--- /dev/null
+++ b/community/sysprof/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 34968 2010-12-14 10:32:56Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Previous Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Previous Contributor: aeolist <aeolist@hotmail.com>
+
+pkgname=sysprof
+pkgver=1.1.6
+pkgrel=1
+pkgdesc="A sampling CPU profiler that uses a Linux kernel module to profile the entire system"
+arch=('i686' 'x86_64')
+url="http://www.daimi.au.dk/~sandmann/sysprof/"
+license=("GPL")
+source=(http://www.daimi.au.dk/~sandmann/$pkgname/$pkgname-$pkgver.tar.gz)
+depends=('libglade' 'binutils')
+makedepends=('libglade' 'binutils' 'kernel26-headers')
+md5sums=('219f888777771f3709cb35a64bb008a9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/sysprof/sysprof.install b/community/sysprof/sysprof.install
new file mode 100644
index 000000000..489df2262
--- /dev/null
+++ b/community/sysprof/sysprof.install
@@ -0,0 +1,12 @@
+post_install() {
+ depmod -a
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
diff --git a/community/sysstat/PKGBUILD b/community/sysstat/PKGBUILD
new file mode 100644
index 000000000..bd1d73fcd
--- /dev/null
+++ b/community/sysstat/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 42299 2011-03-16 10:38:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Martin Devera <devik@cdi.cz>
+
+pkgname=sysstat
+pkgver=10.0.0
+pkgrel=1
+pkgdesc="a collection of performance monitoring tools (iostat,isag,mpstat,pidstat,sadf,sar)"
+arch=('i686' 'x86_64')
+url="http://pagesperso-orange.fr/sebastien.godard/"
+license=('GPL')
+depends=('glibc')
+optdepends=('tk: to use isag'
+ 'gnuplot: to use isag'
+ 'lm_sensors')
+options=(zipman)
+source=(http://pagesperso-orange.fr/sebastien.godard/$pkgname-$pkgver.tar.gz
+ sysstat)
+md5sums=('accc17cc1fa855be6b27def77dd92a0d'
+ 'ad46159609a2c13b4a46b506ff847bf6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-install-isag \
+ --disable-man-group
+ make
+ make DESTDIR=$pkgdir install
+
+ install -D -m 644 sysstat.sysconfig $pkgdir/etc/sysstat/sysstat
+ install -D -m 744 cron/sysstat.cron.hourly $pkgdir/etc/cron.hourly/sysstat
+ install -D -m 744 cron/sysstat.cron.daily $pkgdir/etc/cron.daily/sysstat
+ install -D -m 755 $srcdir/sysstat $pkgdir/etc/rc.d/sysstat
+
+ chown -R root:root $pkgdir
+}
diff --git a/community/sysstat/sysstat b/community/sysstat/sysstat
new file mode 100644
index 000000000..d8e312a18
--- /dev/null
+++ b/community/sysstat/sysstat
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Writing SysStat restart record"
+ /usr/lib/sa/sadc -L -F -
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ stop)
+ ;;
+ *)
+ echo "usage: $0 {start|stop}"
+esac
+exit 0
diff --git a/community/system-tools-backends/PKGBUILD b/community/system-tools-backends/PKGBUILD
new file mode 100644
index 000000000..dc9b3e7f8
--- /dev/null
+++ b/community/system-tools-backends/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=system-tools-backends
+pkgver=2.10.1
+pkgrel=1
+pkgdesc='Backends for Gnome System Tools.'
+arch=('i686' 'x86_64')
+url='http://system-tools-backends.freedesktop.org/'
+license=('GPL')
+depends=('perl>=5.12.1' 'perl-net-dbus' 'dbus>=1.4.0' 'polkit>=0.98' 'dbus-glib')
+makedepends=('perlxml' 'pkgconfig' 'intltool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.10/${pkgname}-${pkgver}.tar.bz2)
+install=system-tools-backends.install
+sha256sums=('0c1cfdf5f0550c0ccacbbc4f00ed059ab9ea483d48138132db44b3a20575d7b4')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr \
+ --with-dbus-sys=/etc/dbus-1/system.d \
+ --localstatedir=/var \
+ --mandir=/usr/share \
+ --disable-static
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ #clean up man
+ rm -rf $pkgdir/usr/share/system-tools-backends-2.0/modules/share/
+}
diff --git a/community/system-tools-backends/system-tools-backends.install b/community/system-tools-backends/system-tools-backends.install
new file mode 100644
index 000000000..e83a93525
--- /dev/null
+++ b/community/system-tools-backends/system-tools-backends.install
@@ -0,0 +1,12 @@
+post_install() {
+ echo "==> Daemon method deprecated. Now is starting automatically at login"
+ echo "==> Remove stbd from DAEMONS list"
+}
+
+post_upgrade() {
+ if [ `vercmp $2 2.6.1-2` -eq 0 ]; then
+ echo "Removing stb-admin group"
+ groupdel stb-admin &> /dev/null
+ fi
+ post_install $1
+}
diff --git a/community/systemd/PKGBUILD b/community/systemd/PKGBUILD
new file mode 100644
index 000000000..fb4e9f3e2
--- /dev/null
+++ b/community/systemd/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 43947 2011-04-01 02:11:49Z dreisner $
+# Maintainer: Dave Reisner <d@falconindy.com>
+
+pkgname=systemd
+pkgver=22
+pkgrel=2
+pkgdesc="Session and Startup manager"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/systemd"
+license=('GPL2')
+depends=('dbus-core' 'initscripts' 'sysvinit' 'util-linux>=2.19')
+makedepends=('docbook-xsl' 'libxslt' 'cryptsetup' 'gtk2' 'libnotify')
+optdepends=('cryptsetup: required for encrypted block devices'
+ 'initscripts-systemd: native boot and initialization scripts'
+ 'dbus-python: systemd-analyze'
+ 'gtk2: systemadm'
+ 'libnotify: systemadm'
+ 'systemd-arch-units: collection of native unit files for Arch daemon/init scripts')
+groups=('systemd')
+options=('!libtool')
+backup=(etc/systemd/system.conf
+ etc/tmpfiles.d/systemd.conf
+ etc/tmpfiles.d/x11.conf)
+install=systemd.install
+source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.bz2"
+ "os-release")
+md5sums=('79cfbca526eaa5833723b48adeb0b323'
+ 'f9922299150b4adda7b89e10bca33033')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --with-rootdir=/ \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-audit \
+ --disable-tcpwrap
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/os-release" "$pkgdir/etc/os-release"
+ install -dm755 "$pkgdir/etc/modules-load.d" "$pkgdir/run"
+ printf "d /var/run/console 755 root root\n" > "$pkgdir/etc/tmpfiles.d/console.conf"
+
+ # fix systemd-analyze for python2
+ sed -i '1s/python$/python2/' "$pkgdir/usr/bin/systemd-analyze"
+
+ # install target doesn't bring in plymouth units
+ install -m644 units/plymouth-* "$pkgdir/lib/systemd/system"
+
+ # rename man pages to avoid conflicts with sysvinit
+ cd "$pkgdir/usr/share/man/man8"
+ for manpage in telinit halt reboot poweroff runlevel shutdown; do
+ mv {,systemd.}"$manpage.8"
+ done
+}
+
diff --git a/community/systemd/os-release b/community/systemd/os-release
new file mode 100644
index 000000000..0b45d5265
--- /dev/null
+++ b/community/systemd/os-release
@@ -0,0 +1,4 @@
+NAME=Arch Linux
+ID=arch
+PRETTY_NAME=Arch Linux
+ANSI_COLOR=1;36 \ No newline at end of file
diff --git a/community/systemd/systemd.install b/community/systemd/systemd.install
new file mode 100644
index 000000000..259d09b9e
--- /dev/null
+++ b/community/systemd/systemd.install
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+checkgroups() {
+ getent group lock >/dev/null || groupadd -g 54 lock
+
+ utmpent=$(getent group utmp)
+ if [ -z $utmpent ]; then
+ getent group utmp >/dev/null || groupadd -g 32 utmp
+ elif [ $(echo $utmpent | cut -d: -f3) = '22' ]; then
+ groupmod -g 32 utmp
+ fi
+}
+
+post_install() {
+ checkgroups
+
+ [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup
+
+ # Try to read default runlevel from the old inittab if it exists
+ runlevel=$(/bin/awk -F':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
+ if [ -z "$runlevel" ]; then
+ target="/lib/systemd/system/graphical.target"
+ else
+ target="/lib/systemd/system/runlevel$runlevel.target"
+ fi
+
+ # And symlink what we found to the new-style default.target
+ /bin/ln -sf "$target" /etc/systemd/system/default.target
+
+ echo "systemd has been installed to /bin/systemd. Please ensure you append"
+ echo "init=/bin/systemd to your kernel command line in your bootloader."
+}
+
+post_upgrade() {
+ checkgroups
+
+ [ -f /etc/machine-id ] || /bin/systemd-machine-id-setup
+ /bin/systemctl daemon-reexec >/dev/null || :
+}
+
+pre_remove() {
+ /bin/rm -f /etc/systemd/system/default.target
+}
+
+post_remove() {
+ getent group lock >/dev/null && groupdel lock
+ getent group utmp >/dev/null && groupdel utmp
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/t1utils/LICENSE b/community/t1utils/LICENSE
new file mode 100644
index 000000000..43f03171f
--- /dev/null
+++ b/community/t1utils/LICENSE
@@ -0,0 +1,22 @@
+The README file includes the following notices:
+
+ Changes since version 1.2 (c) 1998-2000 Eddie Kohler, under the
+ same redistribution copyright as I. Lee Hetherington's. See below
+ for I. Lee Hetherington's original README from 1992, updated
+ slightly for today's t1utils.
+
+ Eddie Kohler
+ eddietwo@lcs.mit.edu
+
+ Copyright (c) 1992 by I. Lee Hetherington, all rights reserved.
+
+ Permission is hereby granted to use, modify, and distribute this
+ program for any purpose provided this copyright notice and the one
+ below remain intact.
+
+ Note that these tools should not be used to illegally copy type-1
+ font programs. Typeface design is an intricate art that should be
+ rewarded.
+
+ I. Lee Hetherington
+ ilh@lcs.mit.edu
diff --git a/community/t1utils/PKGBUILD b/community/t1utils/PKGBUILD
new file mode 100644
index 000000000..73d8e0204
--- /dev/null
+++ b/community/t1utils/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 43579 2011-03-27 20:40:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Simo Leone <neotuli@gmail.com>
+
+pkgname=t1utils
+pkgver=1.36
+pkgrel=1
+pkgdesc="A collection of simple Type 1 font manipulation programs"
+arch=('i686' 'x86_64')
+url="http://www.lcdf.org/~eddietwo/type/#t1utils"
+license=("custom")
+depends=('glibc')
+source=("http://www.lcdf.org/~eddietwo/type/$pkgname-$pkgver.tar.gz"
+ LICENSE)
+md5sums=('f580e78a38807bce0242b63b5da3a572'
+ '5a1334c824d21f0314c831f9fd19a587')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+# sed -i 's|getline|xgetline|' t1asm.c
+ make
+ make DESTDIR="$pkgdir" install
+ install -D -m644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/tabbed/PKGBUILD b/community/tabbed/PKGBUILD
new file mode 100644
index 000000000..1fd037b3c
--- /dev/null
+++ b/community/tabbed/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31139 2010-10-27 11:10:35Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: totoloco <totoloco at gmx>
+
+pkgname=tabbed
+pkgver=0.3
+pkgrel=1
+pkgdesc="Simple generic tabbed fronted to xembed aware applications."
+arch=('i686' 'x86_64')
+url='http://tools.suckless.org/tabbed'
+license=('custom:MIT/X')
+depends=('libx11')
+install='tabbed.install'
+source=("http://dl.suckless.org/tools/${pkgname}-${pkgver}.tar.gz"
+ 'config.h')
+md5sums=('4a30458f9adc38db549f735b8fb6451b'
+ '5aa6c1fdc7971b21363704391bea6e1b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ cp "${srcdir}/config.h" config.h
+
+ sed -i 's/CPPFLAGS =/CPPFLAGS +=/g' config.mk
+ sed -i 's/CFLAGS =/CFLAGS +=/g' config.mk
+ sed -i 's/LDFLAGS =/LDFLAGS +=/g' config.mk
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+ install -Dm0644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/tabbed/config.h b/community/tabbed/config.h
new file mode 100644
index 000000000..402cf25d1
--- /dev/null
+++ b/community/tabbed/config.h
@@ -0,0 +1,30 @@
+static const char *font = "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*";
+static const char *normbgcolor = "#cccccc";
+static const char *normfgcolor = "#000000";
+static const char *selbgcolor = "#0066ff";
+static const char *selfgcolor = "#ffffff";
+static const char *before = "<";
+static const char *after = ">";
+static const int tabwidth = 200;
+static const Bool foreground = False;
+
+#define MODKEY ControlMask
+static Key keys[] = { \
+ /* modifier key function argument */
+ { MODKEY|ShiftMask, XK_Return, focusonce, { 0 } },
+ { MODKEY|ShiftMask, XK_Return, spawn, { .v = (char*[]){ "surf", "-e", winid, NULL} } },
+ { MODKEY|ShiftMask, XK_l, rotate, { .i = +1 } },
+ { MODKEY|ShiftMask, XK_h, rotate, { .i = -1 } },
+ { MODKEY, XK_Tab, rotate, { .i = 0 } },
+ { MODKEY, XK_1, move, { .i = 0 } },
+ { MODKEY, XK_2, move, { .i = 1 } },
+ { MODKEY, XK_3, move, { .i = 2 } },
+ { MODKEY, XK_4, move, { .i = 3 } },
+ { MODKEY, XK_5, move, { .i = 4 } },
+ { MODKEY, XK_6, move, { .i = 5 } },
+ { MODKEY, XK_7, move, { .i = 6 } },
+ { MODKEY, XK_8, move, { .i = 7 } },
+ { MODKEY, XK_9, move, { .i = 8 } },
+ { MODKEY, XK_0, move, { .i = 9 } },
+ { MODKEY, XK_q, killclient, { 0 } },
+};
diff --git a/community/tabbed/tabbed.install b/community/tabbed/tabbed.install
new file mode 100644
index 000000000..c44096d56
--- /dev/null
+++ b/community/tabbed/tabbed.install
@@ -0,0 +1,28 @@
+pre_install() {
+ echo "-- Edit config.h in PKGBUILD's directory (generally /var/abs/community/tabbed/)"
+ echo "-- and rebuild package if you want to change settings."
+ /bin/true
+}
+
+post_install() {
+ /bin/true
+}
+
+pre_upgrade() {
+ echo "-- Edit config.h in PKGBUILD's directory (generally /var/abs/community/tabbed/)"
+ echo "-- and rebuild package if you want to change settings."
+ /bin/true
+}
+
+post_upgrade() {
+ /bin/true
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
diff --git a/community/taglib-rcc/PKGBUILD b/community/taglib-rcc/PKGBUILD
new file mode 100644
index 000000000..b79180cd3
--- /dev/null
+++ b/community/taglib-rcc/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 17761 2010-05-25 09:16:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=taglib-rcc
+pkgver=1.6.3
+pkgrel=1
+pkgdesc="taglib with librcc patch"
+arch=('i686' 'x86_64')
+url="http://ktown.kde.org/~wheeler/taglib.html"
+depends=('gcc-libs' 'zlib' 'bash' libxml2 db librcc)
+makedepends=(patch)
+license=('GPL')
+provides=("taglib=$pkgver")
+conflicts=("taglib")
+options=('!libtool')
+source=(http://ktown.kde.org/~wheeler/files/src/taglib-$pkgver.tar.gz \
+ http://downloads.sourceforge.net/rusxmms/taglib-csa6.tar.bz2)
+md5sums=('ddf02f4e1d2dc30f76734df806e613eb'
+ '0868d633843ecd87526c77d788b3d3b6')
+
+build() {
+ cd $srcdir/taglib-$pkgver
+ [ $NOEXTRACT -eq 1 ] || patch -Np1 <$srcdir/taglib/taglib-1.5-ds-rusxmms.patch || return 1
+ [ $NOEXTRACT -eq 1 ] || sed -i 's|#include <string>|#include <string.h>|' $srcdir/taglib-$pkgver/taglib/toolkit/rccpatch.cpp
+
+ cd ..
+ mkdir build
+ cd build
+
+ [ $NOEXTRACT -eq 1 ] || cmake ../taglib-$pkgver \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DWITH_MP4=ON \
+ -DWITH_ASF=ON
+ make VERBOSE=1 || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/community/tagpy/PKGBUILD b/community/tagpy/PKGBUILD
new file mode 100644
index 000000000..95b9e5409
--- /dev/null
+++ b/community/tagpy/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41005 2011-03-03 04:37:04Z tdziedzic $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Callan Barrett <wizzomafizzo@gmail.com>
+# Contributor: Scott Horowitz <stonecrest@gmail.com>
+
+pkgname=tagpy
+pkgver=0.94.8
+pkgrel=3
+pkgdesc="Python bindings for TagLib"
+arch=('i686' 'x86_64')
+url="http://pypi.python.org/pypi/tagpy"
+license=('MIT')
+depends=('python2' 'taglib' 'boost-libs')
+makedepends=('python2-distribute' 'boost')
+source=("http://pypi.python.org/packages/source/t/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('6baff63318cf90b9bc5a2497a0597802')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ sed -i -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find . -name '*.py')
+
+ ./configure.py --taglib-lib-dir=/usr/lib/ \
+ --taglib-inc-dir=/usr/include/taglib/ \
+ --boost-inc-dir=/usr/include/boost/ \
+ --boost-lib-dir=/usr/lib/ \
+ --boost-python-libname=boost_python
+ python2 setup.py build
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/community/tagtool/PKGBUILD b/community/tagtool/PKGBUILD
new file mode 100644
index 000000000..d5fd741c6
--- /dev/null
+++ b/community/tagtool/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Stefan Husmann <stefan-husmannt-online.de>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Contributor: Filip Wojciechowski <filip at loka dot pl>
+
+pkgname=tagtool
+pkgver=0.12.3
+pkgrel=6
+pkgdesc="Tool to edit tags in MP3 and Ogg Vorbis files"
+arch=('i686' 'x86_64')
+url="http://downloads.sourceforge.net/sourceforge/$pkgname"
+license=('GPL')
+depends=('hicolor-icon-theme' 'libglade' 'id3lib' 'libvorbis' 'gconf')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('447b3a505fee68a82f25dcda9377b676')
+install=tagtool.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --datadir=/usr/share
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema \
+ "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain \
+ tagtool ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/community/tagtool/tagtool.install b/community/tagtool/tagtool.install
new file mode 100644
index 000000000..d2af92647
--- /dev/null
+++ b/community/tagtool/tagtool.install
@@ -0,0 +1,22 @@
+pkgname=tagtool
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+} \ No newline at end of file
diff --git a/community/task/PKGBUILD b/community/task/PKGBUILD
new file mode 100644
index 000000000..afb1493ee
--- /dev/null
+++ b/community/task/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Ray Kohler <ataraxia@gmail.com>
+# Contributor: muflax <muflax@gmail.com>
+# Contributor: coolkehon <coolkehon@gmail.com>
+
+pkgname=task
+pkgver=1.9.4
+pkgrel=2
+pkgdesc="A command-line todo list manager"
+arch=('i686' 'x86_64')
+url="http://taskwarrior.org/projects/show/taskwarrior/"
+license=('GPL')
+depends=()
+makedepends=('cmake')
+optdepends=('bash-completion: for bash completion', 'python: for python export addon', 'ruby: for ruby export addon', 'perl: for perl export addon')
+source=(http://www.taskwarrior.org/download/$pkgname-$pkgver.tar.gz)
+sha1sums=('b9bae255f4fa03970eced3ac0876935271d1d7a1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$pkgdir/usr/share/doc/task/scripts/bash/task_completion.sh" "$pkgdir/etc/bash_completion.d/task_completion.sh"
+ install -Dm644 "$pkgdir/usr/share/doc/task/scripts/fish/task.fish" "$pkgdir/usr/share/fish/completions/task.fish"
+ install -Dm644 "$pkgdir/usr/share/doc/task/scripts/zsh/_task" "$pkgdir/usr/share/zsh/site-functions/_task"
+
+ install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/ftdetect/task.vim" "$pkgdir/usr/share/vim/vimfiles/ftdetect/task.vim"
+ install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/syntax/taskdata.vim" "$pkgdir/usr/share/vim/vimfiles/syntax/taskdata.vim"
+ install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/syntax/taskedit.vim" "$pkgdir/usr/share/vim/vimfiles/syntax/taskedit.vim"
+ install -Dm644 "$pkgdir/usr/share/doc/task/scripts/vim/syntax/taskrc.vim" "$pkgdir/usr/share/vim/vimfiles/syntax/taskrc.vim"
+
+}
diff --git a/community/tasks/PKGBUILD b/community/tasks/PKGBUILD
new file mode 100644
index 000000000..72875e1ca
--- /dev/null
+++ b/community/tasks/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 28839 2010-10-06 10:29:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy.carrier@aur.archlinux.org>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=tasks
+pkgver=0.18
+pkgrel=2
+pkgdesc="A simple to do list application that uses libecal"
+url="http://pimlico-project.org/tasks.html"
+license=('GPL')
+depends=('evolution-data-server>=2.32.0' 'xdg-utils' 'gtk2')
+makedepends=('intltool')
+arch=(i686 x86_64)
+install=tasks.install
+source=(http://pimlico-project.org/sources/tasks/$pkgname-$pkgver.tar.gz)
+md5sums=('d40c0227e496b51be6fde10f387215ed')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -d "$pkgdir/usr/share/pixmaps"
+ ln -sf "/usr/share/icons/hicolor/48x48/apps/tasks.png" \
+ "$pkgdir/usr/share/pixmaps/tasks.png"
+}
diff --git a/community/tasks/tasks.install b/community/tasks/tasks.install
new file mode 100644
index 000000000..c5571196e
--- /dev/null
+++ b/community/tasks/tasks.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/tcpflow/PKGBUILD b/community/tcpflow/PKGBUILD
new file mode 100644
index 000000000..cf8bbbf33
--- /dev/null
+++ b/community/tcpflow/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 7833 2010-01-11 21:41:34Z cbrannon $
+# Maintainer: Chris Brannon <cmbrannon79@gmail.com>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+
+pkgname=tcpflow
+pkgver=0.21
+pkgrel=4
+pkgdesc="Captures data transmitted as part of TCP connections then stores the data conveniently"
+arch=('i686' 'x86_64')
+url="http://www.circlemud.org/~jelson/software/tcpflow/"
+license=('GPL')
+depends=('libpcap')
+source=(http://www.circlemud.org/pub/jelson/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('45a5aef6f043312315b7f342afc4a9c5')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/tcsh/PKGBUILD b/community/tcsh/PKGBUILD
new file mode 100644
index 000000000..772cf8afc
--- /dev/null
+++ b/community/tcsh/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 34438 2010-12-07 21:04:26Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=tcsh
+pkgver=6.17.00
+pkgrel=3
+pkgdesc='Enhanced version of the Berkeley C shell.'
+arch=('i686' 'x86_64')
+url='http://www.tcsh.org/Welcome'
+license=('BSD')
+depends=('ncurses')
+backup=('etc/csh.cshrc'
+ 'etc/csh.login')
+install='tcsh.install'
+source=("ftp://ftp.astron.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'csh.cshrc'
+ 'tcsh-6.17.00-ls-colors-var.patch'
+ 'csh.login')
+md5sums=('c47de903e3d52f6824c8dd0c91eeb477'
+ '7ca0fe6d1a1b9a0093f632499d4fb112'
+ '0ed594ef77bc689265632682e18462eb'
+ '4869b9da87c79854e2cc97241f125853')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p0 < ../tcsh-6.17.00-ls-colors-var.patch
+
+ ./configure --prefix=/ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" mandir=/usr/share/man install install.man
+
+ install -Dm0644 "${srcdir}/csh.cshrc" "${pkgdir}/etc/csh.cshrc"
+ install -Dm0644 "${srcdir}/csh.login" "${pkgdir}/etc/csh.login"
+ install -Dm0644 Copyright "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ ln -s tcsh "${pkgdir}/bin/csh"
+}
diff --git a/community/tcsh/csh.cshrc b/community/tcsh/csh.cshrc
new file mode 100644
index 000000000..a6dfcad12
--- /dev/null
+++ b/community/tcsh/csh.cshrc
@@ -0,0 +1,96 @@
+#############################################################################
+##
+## Gentoo's csh.cshrc
+##
+## Based on the TCSH package (http://tcshrc.sourceforge.net)
+##
+## .tcshrc 2Sep2001, Simos Xenitellis (simos@hellug.gr)
+##
+## 2003-01-13 -- Alain Penders (alain@gentoo.org)
+## Renamed to /etc/csh.cshrc, basic cleanup work.
+##
+## 2003-01-24 -- Alain Penders (alain@gentoo.org)
+## Improved config file handling.
+##
+onintr -
+##
+
+##
+## Load the environment defaults.
+##
+if ( -r /etc/csh.env ) then
+ source /etc/csh.env
+endif
+
+
+##
+## Make sure our path includes the basic stuff for root and normal users.
+##
+if ($LOGNAME == "root") then
+ set -f path = ( $path /sbin )
+ set -f path = ( $path /usr/sbin )
+ set -f path = ( $path /usr/local/sbin )
+endif
+set -f path = ( $path /bin )
+set -f path = ( $path /usr/bin )
+set -f path = ( $path /usr/local/bin )
+set -f path = ( $path /opt/bin )
+
+
+##
+## Load our settings -- most are for interactive shells only, but not all.
+##
+if ( -e /etc/profile.d/tcsh-settings ) then
+ source /etc/profile.d/tcsh-settings
+endif
+
+
+##
+## Source extensions installed by ebuilds
+##
+if ( -d /etc/profile.d ) then
+ set _tmp=${?nonomatch}
+ set nonomatch
+ foreach _s ( /etc/profile.d/*.csh )
+ if ( -r $_s ) then
+ source $_s
+ endif
+ end
+ if ( ! ${_tmp} ) unset nonomatch
+ unset _tmp _s
+endif
+
+
+# Everything after this point is interactive shells only.
+if ( $?prompt == 0 ) goto end
+
+
+##
+## Load our aliases -- for interactive shells only
+##
+if ( -e /etc/profile.d/tcsh-aliases ) then
+ source /etc/profile.d/tcsh-aliases
+endif
+
+
+##
+## Load our key bindings -- for interactive shells only
+##
+if ( -e /etc/profile.d/tcsh-bindkey ) then
+ source /etc/profile.d/tcsh-bindkey
+endif
+
+
+##
+## Load our command completions -- for interactive shells only
+##
+if ( -e /etc/profile.d/tcsh-complete ) then
+ source /etc/profile.d/tcsh-complete
+endif
+
+
+end:
+##
+onintr
+##
+
diff --git a/community/tcsh/csh.login b/community/tcsh/csh.login
new file mode 100644
index 000000000..58501398c
--- /dev/null
+++ b/community/tcsh/csh.login
@@ -0,0 +1,71 @@
+#############################################################################
+##
+## Gentoo's csh.login
+##
+## 2003-01-13 -- Alain Penders (alain@gentoo.org)
+##
+## Initial version. Inspired by the Suse version.
+##
+
+
+##
+## Default terminal initialization
+##
+if ( -o /dev/$tty && ${?prompt} ) then
+ # Console
+ if ( ! ${?TERM} ) setenv TERM linux
+ if ( "$TERM" == "unknown" ) setenv TERM linux
+ # No tset available on SlackWare
+ if ( -x "`which stty`" ) stty sane cr0 pass8 dec
+ if ( -x "`which tset`" ) tset -I -Q
+ unsetenv TERMCAP
+ settc km yes
+endif
+
+##
+## Default UMASK
+##
+umask 022
+
+##
+## Set our SHELL variable.
+##
+setenv SHELL /bin/tcsh
+
+##
+## Setup a default MAIL variable
+##
+if ( -f /var/spool/mail/$USER ) then
+ setenv MAIL /var/spool/mail/$USER
+ set mail=$MAIL
+endif
+
+##
+## If we're root, report who's logging in and out.
+##
+if ( "$uid" == "0" ) then
+ set who=( "%n has %a %l from %M." )
+ set watch=( any any )
+endif
+
+##
+## Show the MOTD once the first time, and once after it has been changed.
+##
+## Note: if this is a SSH login, SSH will always show the MOTD, so we
+## skip it. Create ~/.hushlogin is you don't want SSH to show it.
+##
+if (-f /etc/motd ) then
+ if ( ! $?SSH_CLIENT ) then
+ cmp -s /etc/motd ~/.hushmotd
+ if ($status) then
+ tee ~/.hushmotd < /etc/motd
+ echo "((( MOTD shown only once, unless it is changed )))"
+ endif
+ endif
+endif
+
+##
+## Send us home.
+##
+cd
+
diff --git a/community/tcsh/tcsh-6.17.00-ls-colors-var.patch b/community/tcsh/tcsh-6.17.00-ls-colors-var.patch
new file mode 100644
index 000000000..9aa5198d3
--- /dev/null
+++ b/community/tcsh/tcsh-6.17.00-ls-colors-var.patch
@@ -0,0 +1,13 @@
+--- tw.color.c.orig 2008-10-17 16:57:33.000000000 -0300
++++ tw.color.c 2010-10-18 23:34:36.764372377 -0300
+@@ -86,6 +86,10 @@
+ VAR(NOS, "ow", ""), /* Other writable dir (o+w) but not sticky */
+ VAR(NOS, "st", ""), /* Sticky dir (+t) but not other writable */
+ VAR(NOS, "rs", "0"), /* Reset to normal color */
++ VAR(NOS, "hl", ""), /* Regular file with more than one link */
++ VAR(NOS, "ca", ""), /* File with capability */
++ VAR(NOS, "mh", ""), /* MULTIHARDLINK */
++ VAR(NOS, "cl", ""), /* CLRTOEOL */
+ };
+
+ enum FileType {
diff --git a/community/tcsh/tcsh.install b/community/tcsh/tcsh.install
new file mode 100644
index 000000000..023ddd115
--- /dev/null
+++ b/community/tcsh/tcsh.install
@@ -0,0 +1,25 @@
+post_install() {
+ if [ ! "`grep /bin/tcsh etc/shells`" ]; then
+ echo "updating /etc/shells... done."
+ sed -i "s|/bin/bash|/bin/bash\n/bin/tcsh\n/bin/csh|" etc/shells
+ else
+ sed -i "s|/usr/bin/tcsh|/bin/tcsh|" etc/shells
+ sed -i "s|/usr/bin/csh|/bin/csh|" etc/shells
+
+ echo ""
+ echo ">> WARNING: /usr/bin/tcsh has moved to /bin/tcsh,"
+ echo ">> WARNING: /usr/bin/csh has moved to /bin/csh,"
+ echo ">> please update your user accounts as needed"
+ echo ""
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo "updating /etc/shells... done."
+ sed -i "\|/bin/tcsh|d" etc/shells
+ sed -i "\|/bin/csh|d" etc/shells
+}
diff --git a/community/tdfsb/PKGBUILD b/community/tdfsb/PKGBUILD
new file mode 100644
index 000000000..b1fbf25b3
--- /dev/null
+++ b/community/tdfsb/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 34698 2010-12-11 21:21:17Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=tdfsb
+pkgver=0.0.10
+pkgrel=4
+pkgdesc="SDL based graphical file browser"
+arch=('i686' 'x86_64')
+url="http://www.determinate.net/webdata/seg/tdfsb.html"
+license=('GPL')
+depends=('smpeg' 'freeglut' 'sdl_image' 'libxmu')
+source=(http://www.determinate.net/webdata/data/${pkgname}-${pkgver}.tar.gz
+ tdfsb.desktop
+ tdfsb.png)
+md5sums=('8162994a7e882dc7074a5f628d2ac076'
+ '4070a7de1153c00df875384a1817e43b'
+ 'ecabb39597a3c17f9541300869873e50')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e "s:-O2:${CFLAGS} ${LDFLAGS}:g" compile.sh
+ ./compile.sh || return 1
+ install -D -m755 tdfsb "${pkgdir}/usr/bin/tdfsb"
+ # Install desktop file
+ install -D -m755 ${srcdir}/tdfsb.desktop "${pkgdir}/usr/share/applications/tdfsb.desktop" || return 1
+ # Install icon
+ install -D -m644 ${srcdir}/tdfsb.png "${pkgdir}/usr/share/pixmaps/tdfsb.png" || return 1
+}
diff --git a/community/tdfsb/tdfsb.desktop b/community/tdfsb/tdfsb.desktop
new file mode 100755
index 000000000..7167e022a
--- /dev/null
+++ b/community/tdfsb/tdfsb.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Tdfsb
+Comment=SDL based graphical file browser
+Icon=/usr/share/pixmaps/tdfsb.png
+Exec=tdfsb
+Terminal=false
+Type=Application
+Categories=System;Application;
+StartupNotify=true
diff --git a/community/tdfsb/tdfsb.png b/community/tdfsb/tdfsb.png
new file mode 100644
index 000000000..5ac3a5fe4
--- /dev/null
+++ b/community/tdfsb/tdfsb.png
Binary files differ
diff --git a/community/tdl/ChangeLog b/community/tdl/ChangeLog
new file mode 100644
index 000000000..dba4cf7ec
--- /dev/null
+++ b/community/tdl/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/tdl/PKGBUILD b/community/tdl/PKGBUILD
new file mode 100644
index 000000000..f848c12a9
--- /dev/null
+++ b/community/tdl/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 7205 2010-01-03 08:15:43Z dgriffiths $
+# Maintainer: Jeff Mickey <j@codemac.net>
+# Contributor: Jeff "codemac" Mickey <j@codemac.net>
+
+pkgname=tdl
+pkgver=1.5.2
+pkgrel=4
+pkgdesc="tdl is a to-do list manager."
+arch=('i686' 'x86_64')
+url="http://www.rc0.org.uk/tdl/"
+license=('GPL')
+depends=('ncurses')
+source=(http://www.rpcurnow.force9.co.uk/tdl/$pkgname-$pkgver.tar.gz)
+md5sums=('620cb00bf99b7e786e2b54cda6339a1e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/tea/PKGBUILD b/community/tea/PKGBUILD
new file mode 100644
index 000000000..c59f35493
--- /dev/null
+++ b/community/tea/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 44100 2011-04-02 12:07:14Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Michal Kaliszka <desmont@gmail.com>
+# Contributor: Zsolt Varadi <sysop_xxl@fibermail.hu>
+
+pkgname=tea
+pkgver=29.0.0
+pkgrel=1
+pkgdesc="A QT-based text editor for Linux and *BSD. With an ultimate small size TEA provides you hundreds of functions."
+arch=('i686' 'x86_64')
+url="http://tea-editor.sourceforge.net/"
+license=('GPL')
+depends=('qt' 'aspell' 'hunspell')
+install=tea.install
+source=(http://downloads.sourceforge.net/tea-editor/$pkgname-$pkgver.tar.bz2
+ tea.desktop)
+md5sums=('06babb64e26f2a2c925d9e47f0a7b583'
+ '377ace3363124f4c086de0babb820761')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ qmake
+ make
+ make INSTALL_ROOT=${pkgdir} install
+
+ install -Dm755 ${pkgdir}/usr/local/bin/tea \
+ ${pkgdir}/usr/bin/tea
+ rm -rf ${pkgdir}/usr/local
+
+ install -Dm644 ${srcdir}/tea.desktop \
+ ${pkgdir}/usr/share/applications/tea.desktop
+ install -Dm644 icons/tea_icon_v2.png \
+ ${pkgdir}/usr/share/pixmaps/tea.png
+}
diff --git a/community/tea/tea.desktop b/community/tea/tea.desktop
new file mode 100644
index 000000000..818704a26
--- /dev/null
+++ b/community/tea/tea.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Tea
+Comment=A small programmer's QT editor
+Exec=tea %U
+Terminal=false
+Type=Application
+StartupNotify=true
+Icon=tea.png
+Categories=Application;Utility;TextEditor;
diff --git a/community/tea/tea.install b/community/tea/tea.install
new file mode 100644
index 000000000..d7904254b
--- /dev/null
+++ b/community/tea/tea.install
@@ -0,0 +1,4 @@
+post_upgrade() {
+ echo "############################################"
+ echo "for the old GTK branch of TEA install teagtk"
+}
diff --git a/community/ted/PKGBUILD b/community/ted/PKGBUILD
new file mode 100644
index 000000000..0a62bc597
--- /dev/null
+++ b/community/ted/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 9087 2010-01-23 13:12:23Z foutrelis $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ted
+pkgver=2.21
+pkgrel=2
+pkgdesc="An easy rich text processor (with footnote support)"
+arch=('i686' 'x86_64')
+url="http://www.nllgg.nl/Ted/"
+depends=('bash' 'libtiff' 'libxmu' 'libxpm' 'libpng' 'gtk2')
+license=('GPL')
+source=(ftp://ftp.nluug.nl/pub/editors/$pkgname/$pkgname-$pkgver.src.tar.gz)
+md5sums=('34ae855938a3b364eb587cca504ba356')
+
+build() {
+ cd $srcdir/Ted-$pkgver
+ sed -i "s|--with-GTK|--with-GTK --prefix=/usr/share|g" Makefile || return 1
+ # libpng 1.4
+ sed -i "s|png_info_init|png_create_info_struct|g" bitmap/bmpng.c || return 1
+ make compile.shared || return 1
+ make package.shared || return 1
+ mkdir -p $pkgdir/usr/share/
+ cd $pkgdir/usr/share/
+ tar -zxvf $srcdir/Ted-$pkgver/tedPackage/ted-$pkgver-linux-$CARCH.tar.gz || return 1
+ mv bin ../
+ mkdir -p $pkgdir/usr/share/man/man1
+ cd $pkgdir/usr/share/Ted/
+ mv Ted.1 rtf2pdf.1 rtf2ps.1 ../../share/man/man1/ || return 1
+ sed -i "s|usr/local/afm|usr/share/Ted/afm|g" gsafm.sh
+ mv *.sh $pkgdir/usr/bin/ || return 1
+}
diff --git a/community/teeworlds/PKGBUILD b/community/teeworlds/PKGBUILD
new file mode 100644
index 000000000..12e6720c4
--- /dev/null
+++ b/community/teeworlds/PKGBUILD
@@ -0,0 +1,65 @@
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Armin 'IsSuE' Praher [issue.at.gmx.dot.at]
+# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=teeworlds
+pkgver=0.5.2
+_bamver=0.2.0
+pkgrel=2
+pkgdesc="A multiplayer 2D shooter"
+arch=('i686' 'x86_64')
+url="http://teeworlds.com"
+license=('custom')
+depends=('alsa-lib' 'mesa' 'sdl')
+makedepends=('python2')
+replaces=('teewars')
+source=(http://www.teeworlds.com/files/${pkgname}-${pkgver}-src.tar.gz
+ http://www.teeworlds.com/files/bam-${_bamver}.tar.gz
+ teeworlds.desktop
+ teeworlds.png
+ fix_datadir_search.patch)
+md5sums=('f605f6df9f1714dcda4cba1d281cc757'
+ 'd4efe74591a73c1cec8b34d76ffd1049'
+ '3944aaf7a8c19a83510b2b39c4cddf5f'
+ '44f39e398409232a0e0a431ed46d8cc8'
+ '673791ecb74274346456f0fae53b4428')
+
+build() {
+ # Build bam (used to build teewars)
+ # Now it is released separately I should make a separate package...
+ cd ${srcdir}/bam-${_bamver}
+ ./make_unix.sh
+
+ # Build teeworlds
+ cd ${srcdir}/${pkgname}-${pkgver}-src
+
+ # fix for FS 13118 which will be applied in next release
+ patch -p1 -i ../fix_datadir_search.patch
+
+ # Use Python 2
+ sed -i 's/python /python2 /' default.bam
+
+ ../bam-${_bamver}/src/bam server_release client_release
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}-src
+
+ # Install data files
+ mkdir -p ${pkgdir}/usr/share/${pkgname}/data
+ cp -r ${srcdir}/${pkgname}-${pkgver}-src/data/* \
+ ${pkgdir}/usr/share/${pkgname}/data
+
+ install -Dm755 ${srcdir}/${pkgname}-${pkgver}-src/${pkgname} \
+ ${pkgdir}/usr/bin/${pkgname}
+ install -Dm755 ${srcdir}/${pkgname}-${pkgver}-src/${pkgname}_srv \
+ ${pkgdir}/usr/bin/${pkgname}_srv
+
+ install -Dm644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+ install -Dm644 ${srcdir}/${pkgname}.png \
+ ${pkgdir}/usr/share/pixmaps/${pkgname}.png
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}-src/license.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/community/teeworlds/fix_datadir_search.patch b/community/teeworlds/fix_datadir_search.patch
new file mode 100644
index 000000000..19a4ae1e5
--- /dev/null
+++ b/community/teeworlds/fix_datadir_search.patch
@@ -0,0 +1,36 @@
+diff -r 9582fcee983b -r c1502459a920 src/engine/e_engine.c
+--- a/src/engine/e_engine.c Sun Feb 01 20:50:22 2009 +0100
++++ b/src/engine/e_engine.c Sun Feb 01 21:37:17 2009 +0100
+@@ -539,14 +539,15 @@
+ }
+
+ /* 2) use data-dir in PWD if present */
+- if(fs_is_dir("data"))
++ /* test subdir "/mapres" to reject unrelated "data" dir in PWD */
++ if(fs_is_dir("data/mapres"))
+ {
+ strcpy(datadir, "data");
+ return 0;
+ }
+
+ /* 3) use compiled-in data-dir if present */
+- if (fs_is_dir(DATA_DIR))
++ if (fs_is_dir(DATA_DIR "/mapres"))
+ {
+ strcpy(datadir, DATA_DIR);
+ return 0;
+@@ -572,9 +573,11 @@
+ /* 5) check for all default locations */
+ {
+ const char *sdirs[] = {
+- "/usr/share/teeworlds",
+- "/usr/local/share/teeworlds"
+- "/opt/teeworlds"
++ "/usr/share/teeworlds/data",
++ "/usr/share/games/teeworlds/data",
++ "/usr/local/share/teeworlds/data",
++ "/usr/local/share/games/teeworlds/data",
++ "/opt/teeworlds/data"
+ };
+ const int sdirs_count = sizeof(sdirs) / sizeof(sdirs[0]);
+
diff --git a/community/teeworlds/teeworlds.desktop b/community/teeworlds/teeworlds.desktop
new file mode 100644
index 000000000..ddfb8994d
--- /dev/null
+++ b/community/teeworlds/teeworlds.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Icon=teeworlds
+Exec=teeworlds
+Terminal=false
+StartupNotify=false
+
+Name=TeeWorlds
+GenericName=Arcade Game
+Comment=is a multiplayer 2D FPS shooter
+Comment[pl_PL]=wieloosobowa strzelanka FTP w 2D
+
+Categories=Game;ArcadeGame;
diff --git a/community/teeworlds/teeworlds.png b/community/teeworlds/teeworlds.png
new file mode 100644
index 000000000..890baaff3
--- /dev/null
+++ b/community/teeworlds/teeworlds.png
Binary files differ
diff --git a/community/tellico/PKGBUILD b/community/tellico/PKGBUILD
new file mode 100644
index 000000000..181181404
--- /dev/null
+++ b/community/tellico/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 34947 2010-12-13 22:02:05Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: mdv
+
+pkgname=tellico
+pkgver=2.3.2
+pkgrel=1
+pkgdesc="A collection manager for KDE"
+arch=('i686' 'x86_64')
+url="http://tellico-project.org/"
+license=('GPL')
+depends=('kdebase-workspace' 'yaz' 'exempi' 'kdegraphics-libs' 'taglib'
+ 'kdemultimedia-kioslave' 'poppler-qt' 'qjson')
+makedepends=('automoc4' 'cmake' 'docbook-xsl')
+install=$pkgname.install
+source=("http://tellico-project.org/files/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('3425c12055ae7ea512cd7242de73575e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake . -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # fix python 2.7 path
+ find "$pkgdir" -iname "*.py" | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/tellico/tellico.install b/community/tellico/tellico.install
new file mode 100644
index 000000000..be3fad925
--- /dev/null
+++ b/community/tellico/tellico.install
@@ -0,0 +1,14 @@
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/terminator/PKGBUILD b/community/terminator/PKGBUILD
new file mode 100644
index 000000000..3a0b50d10
--- /dev/null
+++ b/community/terminator/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 39486 2011-02-10 18:34:49Z ibiru $
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: fancris3 <fancris3 at gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=terminator
+pkgver=0.95
+pkgrel=4
+pkgdesc='an application that provides lots of terminals in a single window'
+arch=('i686' 'x86_64')
+url='http://www.tenshu.net/terminator/'
+license=('GPL2')
+depends=('vte' 'pygtk' 'xdg-utils')
+makedepends=('desktop-file-utils' 'gettext' 'intltool')
+install=terminator.install
+source=("https://launchpad.net/terminator/trunk/${pkgver}/+download/${pkgname}_${pkgver}.tar.gz")
+md5sums=('ceae5c899c71b9c80e48083c17a631ad')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # python2 fix
+ for file in terminatorlib/{,plugins/}*.py; do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ python2 setup.py build
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ python2 setup.py install --skip-build --root=${pkgdir}
+
+ rm -f ${pkgdir}/usr/share/applications/${pkgname}.desktop
+ rm -f ${pkgdir}/usr/share/icons/hicolor/icon-theme.cache
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/data/${pkgname}.desktop.in ${pkgdir}/usr/share/applications/${pkgname}.desktop
+ sed -i 's|_||' ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/terminator/terminator.install b/community/terminator/terminator.install
new file mode 100644
index 000000000..b4ee8556f
--- /dev/null
+++ b/community/terminator/terminator.install
@@ -0,0 +1,12 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
diff --git a/community/tesseract/PKGBUILD b/community/tesseract/PKGBUILD
new file mode 100644
index 000000000..9427ae468
--- /dev/null
+++ b/community/tesseract/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 28735 2010-10-05 05:30:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Hauser <andy-aur@splashground.de>
+
+pkgname=tesseract
+pkgver=3.00
+pkgrel=2
+pkgdesc="An OCR programm"
+arch=(x86_64 i686)
+url="http://code.google.com/p/tesseract-ocr"
+license=("APACHE")
+depends=(libpng libtiff libjpeg zlib gcc-libs)
+source=(http://tesseract-ocr.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ http://tesseract-ocr.googlecode.com/files/chi_tra.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/chi_sim.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/ind.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/swe.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/ron.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/slv.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/srp.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/tgl.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/tur.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/hun.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/fin.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/ita.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/nld.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/jpn.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/vie.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/spa.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/ukr.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/fra.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/slk.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/kor.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/ell.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/rus.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/por.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/bul.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/lav.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/lit.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/pol.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/dan-frak.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/deu.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/dan.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/ces.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/cat.traineddata.gz
+ http://tesseract-ocr.googlecode.com/files/eng.traineddata.gz)
+md5sums=('cc812a261088ea0c3d2da735be35d09f'
+ '06fce5f5c0221286eab591819406d91e'
+ '127e0b742b615d81c3b97a555acd8285'
+ 'f4ae2e5668f693cc51c6e3c3f57a8f1d'
+ '3787ff0fc1a07517203466830f6f868e'
+ '7b50075692e7a07ac8f59e0cde51cfb9'
+ 'defc498fa09480ef0052fde79f4f84e5'
+ 'c1e0f0ef07d26a72063802370bbfe2c9'
+ 'af86cab0da52fff7e83f9c7668617a21'
+ 'b0f4798bf1f9ee541ae73aff49f08821'
+ '966fa3ebe24d7dfade951e0a4a9f52b5'
+ '33812ef03197dce20b8c888409d8541a'
+ '9a307661a010703cd2bb265a3da5eaff'
+ '89992f69802b9f4a36fec40efd95c503'
+ 'cad3dd7c9401fa0676bf195456ba0c14'
+ 'af75c7a696b18a1d2e4f7e21a222cf95'
+ 'dd9078211127189995504f034468fcd6'
+ '56a82ac3994f0552d54fd14ff5ed6817'
+ 'e6000550883684b5e93b7e0a21016287'
+ '2e7fbf80215b38f423dcf78e396b92d7'
+ '909b811739b2e7d51cc3ca109998353a'
+ '0d3a21c18f752eb058e7b854c37b7a69'
+ 'c477b7faddc044a4595135d0378be34c'
+ 'd0b59fcfd80f9e09be890647ae93f00d'
+ 'a7501f9a48bc7ef2fa50cba8b8f0c7b1'
+ '1f366f55e5e0725deb751ec847bf42dc'
+ '1b4460ab998151f1ed8e48928ded58be'
+ 'c3d6447245663138f1d3aa4567c72192'
+ 'cfa8a81df6a34940604fafa7353ffc43'
+ 'be81a761f61800f6d39393a31435fff3'
+ '7aaeb321dbf069d14d2601dc36d3dddc'
+ '2e97c952075064834f1cad6a133970fa'
+ '308099b2b95834916ec410191c86cd48'
+ 'd91041ad156cf2db36664e91ef799451')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/share/tessdata
+ cp $srcdir/*.traineddata $pkgdir/usr/share/tessdata/
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ find $pkgdir/usr/share/tessdata -type f -exec chmod 0644 {} \;
+}
diff --git a/community/texmaker/PKGBUILD b/community/texmaker/PKGBUILD
new file mode 100644
index 000000000..0b3df6f7a
--- /dev/null
+++ b/community/texmaker/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: furester <xfurester@hotmail.com>
+# Contributor: Firmicus <firmicus gmx net>
+# Contributor: Paulo Matias <matiasΘarchlinux-br·org>
+
+pkgname=texmaker
+pkgver=3.0
+pkgrel=1
+pkgdesc='Free cross-platform latex editor'
+arch=('i686' 'x86_64')
+url="http://www.xm1math.net/texmaker/index.html"
+license=('GPL')
+depends=('poppler-qt' 'ghostscript')
+source=("http://www.xm1math.net/texmaker/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('d2802c093906b62c455ccc7944106da3')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ export INSTALL_ROOT=${pkgdir}
+
+ qmake -unix PREFIX=//usr texmaker.pro
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ export INSTALL_PATH=${pkgdir}
+
+ make install
+}
diff --git a/community/texvc/PKGBUILD b/community/texvc/PKGBUILD
new file mode 100644
index 000000000..f9da87dfd
--- /dev/null
+++ b/community/texvc/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 43585 2011-03-27 20:41:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=texvc
+pkgver=1.16.2
+pkgrel=1
+pkgdesc="tex to HTML/MathML/png converter used by mediawiki"
+arch=(i686 x86_64)
+url="http://www.mediawiki.org/"
+license=("GPL")
+depends=(imagemagick ghostscript texlive-core)
+makedepends=('ocaml')
+source=(http://download.wikimedia.org/mediawiki/1.16/mediawiki-$pkgver.tar.gz)
+md5sums=('cc477d57d3df7b60558aa50a91dbca36')
+
+build() {
+ cd $srcdir/mediawiki-$pkgver/math
+ make
+ install -d -m 0755 $pkgdir/usr/bin
+ install -m 0755 texvc $pkgdir/usr/bin
+}
diff --git a/community/thoggen/ChangeLog b/community/thoggen/ChangeLog
new file mode 100644
index 000000000..45138e297
--- /dev/null
+++ b/community/thoggen/ChangeLog
@@ -0,0 +1,6 @@
+2008-06-19 Mateusz Herych <heniekk@gmail.com>
+
+* Updated to 0.7.1
+
+2007-06-27 tardo <tardo@nagi-fanboi.net>
+* built for x86_64
diff --git a/community/thoggen/PKGBUILD b/community/thoggen/PKGBUILD
new file mode 100644
index 000000000..35230b4c0
--- /dev/null
+++ b/community/thoggen/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 22322 2010-07-20 23:22:32Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Maintainer: Robert Emil Berge <filoktetes@linuxophic.org>
+
+pkgname=thoggen
+pkgver=0.7.1
+pkgrel=5
+pkgdesc="A DVD ripper based on GStreamer and Gtk+."
+arch=('i686' 'x86_64')
+url="http://thoggen.net/"
+license=('GPL')
+depends=('libofa' 'perlxml' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'gstreamer0.10-ugly-plugins' 'gstreamer0.10-bad-plugins' 'gstreamer0.10-ffmpeg' 'libdvdread' 'hal' 'libglade')
+source=(http://downloads.sourceforge.net/sourceforge/thoggen/$pkgname-$pkgver.tar.gz)
+md5sums=('e36c1ceb098f8ed51ca6c0d1e7ae8279')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+
diff --git a/community/thunar-thumbnailers/PKGBUILD b/community/thunar-thumbnailers/PKGBUILD
new file mode 100755
index 000000000..4772f1339
--- /dev/null
+++ b/community/thunar-thumbnailers/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 35176 2010-12-16 23:26:22Z andrea $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: boromil@gmail.com
+
+pkgname=thunar-thumbnailers
+pkgver=0.4.1
+pkgrel=3
+pkgdesc="The thunar-thumbnailers project provides additional thumbnailers for Thunar, that also cover less common file formats"
+url="http://goodies.xfce.org/projects/thunar-plugins/thunar-thumbnailers/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+groups=('xfce4-goodies')
+depends=('imagemagick' 'ffmpegthumbnailer')
+optdepends=('raw-thumbnailer: support for Raw Digital Camera Images'
+ 'dcraw: support for Raw Digital Camera Image')
+makedepends=('raw-thumbnailer' 'dcraw' 'unzip')
+options=('!libtool')
+install=thunar-thumbnailers.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/0.4/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('041b8aa0576e15491661741d1868547f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --enable-ffmpeg --enable-raw \
+ --libexecdir=/usr/lib/xfce4
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/thunar-thumbnailers/thunar-thumbnailers.install b/community/thunar-thumbnailers/thunar-thumbnailers.install
new file mode 100644
index 000000000..b62faf707
--- /dev/null
+++ b/community/thunar-thumbnailers/thunar-thumbnailers.install
@@ -0,0 +1,16 @@
+post_install() {
+cat << _EOF
+==> important installation notes:
+ ----------------------------------------
+ After installing it is necessary to run:
+ /usr/lib/thunar-vfs-update-thumbnailers-cache-1
+ as a user to regenerate the cache of thumbnailers.
+ You may also need to log out and back in for the new
+ thumbnailers to work.
+_EOF
+
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/community/tig/PKGBUILD b/community/tig/PKGBUILD
new file mode 100644
index 000000000..853711c13
--- /dev/null
+++ b/community/tig/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Loui Chang <louipc dot ist at gmail company>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Nathan Jones <nathanj@insightbb.com>
+
+pkgname=tig
+pkgver=0.17
+pkgrel=1
+pkgdesc="Text-mode interface for git"
+depends=(git ncurses)
+url="http://jonas.nitro.dk/tig/"
+license=('GPL')
+arch=('i686' 'x86_64')
+source=("http://jonas.nitro.dk/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install install-doc-man
+ install -D -m644 contrib/tigrc "$pkgdir"/etc/tigrc.sample
+ install -D -m644 contrib/tig-completion.bash "$pkgdir"/etc/bash_completion.d/tig
+}
+md5sums=('f373343199422c59518776db448dec0e')
diff --git a/community/tilda/ChangeLog b/community/tilda/ChangeLog
new file mode 100644
index 000000000..443441949
--- /dev/null
+++ b/community/tilda/ChangeLog
@@ -0,0 +1,12 @@
+2008-04-29 Mateusz Herych <heniekk@gmail.com>
+
+ * Updated for x86_64 - 0.9.6
+
+2008-04-28 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated for i686 - 0.9.6
+
+2007-12-30 Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+ * Updated to newer version - 0.9.5
+
diff --git a/community/tilda/PKGBUILD b/community/tilda/PKGBUILD
new file mode 100644
index 000000000..d613e6e5f
--- /dev/null
+++ b/community/tilda/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 4131 2009-10-16 15:26:47Z ibiru $
+# Maintainer: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=tilda
+pkgver=0.9.6
+pkgrel=3
+pkgdesc="Linux terminal based on classic terminals from first person shooter games."
+arch=('i686' 'x86_64')
+url="http://tilda.sourceforge.net"
+license=('GPL')
+depends=('vte' 'confuse' 'libglade')
+makedepends=('gawk')
+source=(http://downloads.sourceforge.net/sourceforge/tilda/tilda-$pkgver.tar.gz fix.patch)
+
+build() {
+ cd $startdir/src/tilda-$pkgver
+ patch -Np1 -i $srcdir/fix.patch || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('b44ebe04fdfd312e9ddc5e0ed77f4289'
+ 'ae926cd3bb0917960c09115462f8dddb')
diff --git a/community/tilda/fix.patch b/community/tilda/fix.patch
new file mode 100644
index 000000000..cd217682e
--- /dev/null
+++ b/community/tilda/fix.patch
@@ -0,0 +1,12 @@
+diff -Nur tilda-0.9.6.orig/src/key_grabber.c tilda-0.9.6/src/key_grabber.c
+--- tilda-0.9.6.orig/src/key_grabber.c 2008-04-08 01:12:31.000000000 +0300
++++ tilda-0.9.6/src/key_grabber.c 2009-10-16 17:39:16.399679408 +0300
+@@ -190,7 +190,7 @@
+ * Overriding the user time here seems to work a lot better than calling
+ * gtk_window_present_with_time() here, or at the end of the function. I have
+ * no idea why, they should do the same thing. */
+- gdk_x11_window_set_user_time (GTK_WIDGET(tw->window)->window,
++ gdk_x11_window_set_user_time (GTK_WIDGET(tw->window),
+ tomboy_keybinder_get_current_event_time());
+ gtk_window_move (GTK_WINDOW(tw->window), config_getint ("x_pos"), config_getint ("y_pos"));
+ gtk_widget_show (GTK_WIDGET(tw->window));
diff --git a/community/tint2/PKGBUILD b/community/tint2/PKGBUILD
new file mode 100644
index 000000000..cdafa8d73
--- /dev/null
+++ b/community/tint2/PKGBUILD
@@ -0,0 +1,40 @@
+# Contributor: Blue Peppers <bluepeppers@archlinux.us>
+# Maintainer: Stefan Husmann< stefan-husmann@t-online.de>
+
+pkgname=tint2
+pkgver=0.11
+pkgrel=4
+pkgdesc="A basic, good-looking task manager for WMs"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/tint2/"
+license=('GPL2')
+conflicts=('ttm-svn' 'tint')
+replaces=('tint')
+depends=('gtk2' 'imlib2')
+optdepends=('pygtk: for using tint2conf')
+makedepends=('pygtk' 'cmake')
+provides=('tint')
+source=("http://$pkgname.googlecode.com/files/$pkgname-${pkgver}.tar.bz2"
+ 'add-power-now-support.patch')
+md5sums=('6fc5731e7425125fa84a2add5cef4bff'
+ '6cfcad028f1bd2f69812167f5395f890')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+
+ # add support for power_now battery attribute (fixes FS#21954)
+ patch -Np0 -i ../add-power-now-support.patch
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' src/tint2conf/tintwizard.py
+ sed -i 's_python _python2 _' src/tint2conf/main.c
+
+ [ -d build ] || mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr ../
+ make
+}
+package() {
+ cd $srcdir/$pkgname-${pkgver}/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/tint2/add-power-now-support.patch b/community/tint2/add-power-now-support.patch
new file mode 100644
index 000000000..5057043df
--- /dev/null
+++ b/community/tint2/add-power-now-support.patch
@@ -0,0 +1,19 @@
+diff -rup ../tint2-0.11.orig/src/battery/battery.c ./src/battery/battery.c
+--- ../tint2-0.11.orig/src/battery/battery.c 2010-12-02 23:56:11.313403140 +0100
++++ ./src/battery/battery.c 2010-12-02 23:57:22.266956142 +0100
+@@ -184,8 +184,14 @@ void init_battery()
+ }
+ g_free(path2);
+ }
+- if (path_energy_now && path_energy_full) {
++
++ path_current_now = g_build_filename(battery_dir, "power_now", NULL);
++ if (!g_file_test (path_current_now, G_FILE_TEST_EXISTS)) {
++ g_free(path_current_now);
+ path_current_now = g_build_filename(battery_dir, "current_now", NULL);
++ }
++
++ if (path_energy_now && path_energy_full) {
+ path_status = g_build_filename(battery_dir, "status", NULL);
+
+ // check file
diff --git a/community/tinycdb/PKGBUILD b/community/tinycdb/PKGBUILD
new file mode 100644
index 000000000..a56b8dc9d
--- /dev/null
+++ b/community/tinycdb/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 35507 2010-12-21 10:14:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=tinycdb
+pkgver=0.77
+pkgrel=3
+pkgdesc="very fast and simple package for creating and reading constant data bases"
+arch=(i686 x86_64)
+url="http://www.corpit.ru/mjt/tinycdb.html"
+license=("GPL")
+depends=(glibc)
+source=(http://www.corpit.ru/mjt/tinycdb/${pkgname}_$pkgver.tar.gz)
+md5sums=('c00e5fb96c30356ac3b67b2ab5d5641b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make sharedlib staticlib cdb
+
+ install -D -m 0644 cdb.h $pkgdir/usr/include/cdb.h
+ install -D -m 0644 cdb.3 $pkgdir/usr/share/man/man3/cdb.3
+ install -D -m 0644 cdb.1 $pkgdir/usr/share/man/man1/cdb.1
+ install -D -m 0644 cdb.5 $pkgdir/usr/share/man/man5/cdb.5
+ install -D -m 0755 cdb $pkgdir/usr/bin/cdb
+ install -D -m 0644 libcdb.a $pkgdir/usr/lib/libcdb.a
+ install -D -m 0644 libcdb.so $pkgdir/usr/lib/libcdb.so
+ install -D -m 0644 libcdb.so.1 $pkgdir/usr/lib/libcdb.so.1
+}
diff --git a/community/tinyproxy/PKGBUILD b/community/tinyproxy/PKGBUILD
new file mode 100644
index 000000000..ec922d418
--- /dev/null
+++ b/community/tinyproxy/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 44216 2011-04-04 13:31:34Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: Andrea Zucchelli <zukka77@gmail.com>
+
+pkgname=tinyproxy
+pkgver=1.8.2
+pkgrel=3
+pkgdesc='A light-weight HTTP proxy daemon for POSIX operating systems.'
+arch=('i686' 'x86_64')
+url='https://banu.com/tinyproxy/'
+license=('GPL')
+makedepends=('asciidoc')
+backup=('etc/tinyproxy/tinyproxy.conf')
+source=("https://banu.com/pub/${pkgname}/1.8/${pkgname}-${pkgver}.tar.bz2"
+ 'tinyproxy')
+md5sums=('edc8502193cfed4974d6a770da173755'
+ '464b5d60b1c9cbae26367fe2337c2d77')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc/tinyproxy --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm0755 "${srcdir}/tinyproxy" "${pkgdir}/etc/rc.d/tinyproxy"
+
+ install -dm0755 -o nobody -g nobody "${pkgdir}/var/log/${pkgname}"
+
+ # Provide sane defaults
+ sed -i '/^#Listen/a\Listen 127.0.0.1' "${pkgdir}/etc/tinyproxy/tinyproxy.conf"
+}
diff --git a/community/tinyproxy/tinyproxy b/community/tinyproxy/tinyproxy
new file mode 100755
index 000000000..86ba7b77c
--- /dev/null
+++ b/community/tinyproxy/tinyproxy
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/sbin/tinyproxy)
+
+start() {
+ stat_busy "Starting Tinyproxy"
+
+ if [ ! -d /var/run/tinyproxy ]; then
+ mkdir -p /var/run/tinyproxy && chown nobody:nobody /var/run/tinyproxy
+ fi
+
+ [ -z "$PID" ] && rm -f /var/run/tinyproxy.pid && \
+ /usr/sbin/tinyproxy -c /etc/tinyproxy/tinyproxy.conf 2>/dev/null
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon tinyproxy
+ stat_done
+ fi
+}
+
+stop() {
+ stat_busy "Stopping Tinyproxy"
+
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon tinyproxy
+ stat_done
+ fi
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/tipp10/PKGBUILD b/community/tipp10/PKGBUILD
new file mode 100644
index 000000000..43767818f
--- /dev/null
+++ b/community/tipp10/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 43635 2011-03-28 15:07:14Z bluewind $
+# Maintainer: Florian Pritz <flo@xinu.at>
+# Contributor: toliman <altergan@hs-albsig.de>
+
+pkgname=tipp10
+pkgver=2.1.0
+pkgrel=3
+pkgdesc="intelligent typing tutor"
+arch=('i686' 'x86_64')
+url="http://www.tipp10.com/"
+license=('GPL2')
+depends=('qt>=4.2.2')
+source=(defines.h.patch gcc-4.5.patch \
+ "http://www.tipp10.com/de/download/tipp10_source_v"${pkgver//./-}".zip")
+md5sums=('73a987123ca842026b7bde5e89370b86'
+ 'a9d388ddb17ae93f13acb915bc8eba57'
+ '38c1e1fc9c5ba183279efdd22b318b7a')
+
+_srcdir="$srcdir/tipp10_source_v${pkgver//./-}"
+
+build() {
+ cd "$_srcdir"
+
+ sed -i 's#tipp10v2.template#../share/tipp10/tipp10v2.template#' def/defines.h
+ patch -p0 < "$srcdir/defines.h.patch"
+ patch -p0 < "$srcdir/gcc-4.5.patch"
+ qmake
+ make
+}
+
+package() {
+ cd "$_srcdir"
+
+ make DESTDIR="$pkgdir" install
+
+ install -Dm755 tipp10 "$pkgdir/usr/bin/tipp10"
+ install -Dm644 release/tipp10v2.template "$pkgdir/usr/share/tipp10/tipp10v2.template"
+ install -Dm644 tipp10.png "$pkgdir/usr/share/pixmaps/tipp10.png"
+ install -Dm644 tipp10.desktop "$pkgdir/usr/share/applications/tipp10.desktop"
+}
diff --git a/community/tipp10/defines.h.patch b/community/tipp10/defines.h.patch
new file mode 100644
index 000000000..e7d057e53
--- /dev/null
+++ b/community/tipp10/defines.h.patch
@@ -0,0 +1,14 @@
+--- def/defines.h.orig 2011-03-12 22:44:51.000000000 +0100
++++ def/defines.h 2011-03-12 22:45:02.000000000 +0100
+@@ -27,9 +27,9 @@
+ #define DEFINES_H
+
+ // OS constants
+-#define APP_WIN true
++#define APP_WIN false
+ #define APP_MAC false
+-#define APP_X11 false
++#define APP_X11 true
+ #define APP_PORTABLE false //at least one of the 3 OS must be true too!
+
+ // Languages
diff --git a/community/tipp10/gcc-4.5.patch b/community/tipp10/gcc-4.5.patch
new file mode 100644
index 000000000..dfff82057
--- /dev/null
+++ b/community/tipp10/gcc-4.5.patch
@@ -0,0 +1,99 @@
+--- sql/chartablesql.cpp 2010-05-08 14:53:48.000000000 +0200
++++ sql/chartablesql.cpp 2010-05-08 14:53:59.000000000 +0200
+@@ -50,7 +50,7 @@
+ // Read the unicode value
+ unicode = value.toInt();
+ // Convert unicode to a char
+- unicodeToChar = QString::QString(QChar(unicode)); //"\'" + QString::QString(QChar(unicode)) + "\'";
++ unicodeToChar = QString(QChar(unicode)); //"\'" + QString::QString(QChar(unicode)) + "\'";
+ return unicodeToChar;
+ } else {
+ // Last column (error weight)
+--- sql/startsql.cpp 2010-05-08 14:54:24.000000000 +0200
++++ sql/startsql.cpp 2010-05-08 14:54:49.000000000 +0200
+@@ -338,7 +338,7 @@
+ for (i = 0; i < content.size(); i++) {
+ //simplifiedContent = QString::QString(
+ // content.at(i)).replace(QChar(0x27), "''", Qt::CaseSensitive).simplified();
+- simplifiedContent = trim(QString::QString(
++ simplifiedContent = trim(QString(
+ content.at(i)).replace(QChar(0x27), "''", Qt::CaseSensitive));
+
+ if (!query.exec("INSERT INTO own_content VALUES(NULL,'" +
+--- widget/lessondialog.cpp 2010-05-08 14:52:48.000000000 +0200
++++ widget/lessondialog.cpp 2010-05-08 14:53:11.000000000 +0200
+@@ -89,7 +89,7 @@
+ *lessonData = lineLessonContent->toPlainText().split("\n", QString::SkipEmptyParts);
+ // Delete empty lines
+ for (int i = 0; i < lessonData->size(); i++) {
+- if (QString::QString(lessonData->at(i).toLocal8Bit().constData()).simplified() == "") {
++ if (QString(lessonData->at(i).toLocal8Bit().constData()).simplified() == "") {
+ lessonData->removeAt(i);
+ }
+ }
+@@ -268,7 +268,7 @@
+ contentList = lineLessonContent->toPlainText().split("\n", QString::SkipEmptyParts);
+ // Delete empty lines
+ for (i = 0; i < contentList.size(); i++) {
+- if (QString::QString(contentList.at(i).toLocal8Bit().constData()).simplified() == "") {
++ if (QString(contentList.at(i).toLocal8Bit().constData()).simplified() == "") {
+ contentList.removeAt(i);
+ }
+ }
+--- widget/settingspages.cpp 2010-05-08 14:45:41.000000000 +0200
++++ widget/settingspages.cpp 2010-05-08 14:45:57.000000000 +0200
+@@ -617,7 +617,7 @@
+ QSettings settings;
+ #endif
+ settings.beginGroup("database");
+- settings.setValue("pathpro", lineDatabasePath->text() + "/" + QString::QString(APP_USER_DB));
++ settings.setValue("pathpro", lineDatabasePath->text() + "/" + QString(APP_USER_DB));
+ settings.endGroup();
+ }
+
+--- widget/tickerboard.cpp 2010-05-08 14:28:38.000000000 +0200
++++ widget/tickerboard.cpp 2010-05-08 14:44:11.000000000 +0200
+@@ -96,7 +96,7 @@
+
+ if (tickerSpeed == 50) {
+ scrollOffset = 290;
+- scroll(-290, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
++ scroll(-290, 0, QRect(10, 15, 590, 35)); //contentsRect());
+ }
+
+ startFlag = true;
+@@ -150,7 +150,7 @@
+ scrollOffset = 0;
+ } else {
+ scrollOffset = 290;
+- scroll(-290, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
++ scroll(-290, 0, QRect(10, 15, 590, 35)); //contentsRect());
+ }
+ splitLesson();
+ }
+@@ -239,7 +239,7 @@
+
+ // Move ticker 1 pixel to left
+ scrollOffset++;
+- scroll(-1, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
++ scroll(-1, 0, QRect(10, 15, 590, 35)); //contentsRect());
+
+ if ((lessonOffset - scrollOffset) <= 30) {
+ setSpeed(tickerSpeed);
+@@ -262,14 +262,14 @@
+ // 160 pixels overage (because the user must see at least the next word)
+ if ((lessonOffset - scrollOffset) > 200) {
+ scrollOffset += (lessonOffset - scrollOffset) - 200;
+- scroll(-((lessonOffset - scrollOffset) - 200), 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
++ scroll(-((lessonOffset - scrollOffset) - 200), 0, QRect(10, 15, 590, 35)); //contentsRect());
+ }
+ } else {
+ // If the user types faster than the ticker, move ticker faster after
+ // 160 pixels overage (because the user must see at least the next word)
+ if ((lessonOffset - scrollOffset) > 280) {
+ scrollOffset += 570;
+- scroll(-570, 0, QRect::QRect(10, 15, 590, 35)); //contentsRect());
++ scroll(-570, 0, QRect(10, 15, 590, 35)); //contentsRect());
+ }
+
+ }
diff --git a/community/tix/PKGBUILD b/community/tix/PKGBUILD
new file mode 100644
index 000000000..6d7ed383d
--- /dev/null
+++ b/community/tix/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 40224 2011-02-22 01:59:57Z stephane $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Brice Malier <mealier_brice@yahoo.fr>
+
+pkgname=tix
+pkgver=8.4.3
+pkgrel=2
+pkgdesc="Tk Interface eXtension, a powerful set of user interface components"
+arch=(i686 'x86_64')
+url="http://tix.sourceforge.net/"
+license=("BSD")
+depends=('tk' 'python' 'libx11')
+source=(http://downloads.sourceforge.net/tix/Tix$pkgver-src.tar.gz
+ tcl-tk-path.patch)
+md5sums=('2b8bf4b10a852264678182652f477e59'
+ 'd4df48da39dd51872d58706a51bab505')
+
+build() {
+ cd $srcdir/Tix$pkgver
+
+ patch -p1 <$srcdir/tcl-tk-path.patch
+
+ export CFLAGS="$CFLAGS -DERR_IN_PROGRESS=2"
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+ # move things around
+
+ install -m755 tools/tixindex $pkgdir/usr/bin/tixindex && \
+ rm -rf $pkgdir/usr/lib/Tix8.4/html && \
+ rm -f $pkgdir/usr/lib/Tix8.4/{README.txt,license.terms} && \
+ ln -s Tix$pkgver/libTix$pkgver.so $pkgdir/usr/lib/libTix$pkgver.so
+
+ mkdir -p $pkgdir/usr/share/man/man1 && \
+ mkdir -p $pkgdir/usr/share/man/man3 && \
+ cp -p man/tixwish.1 $pkgdir/usr/share/man/man1
+ cd $srcdir/Tix$pkgver/man
+ for i in *.n; do
+ cp -p $i $pkgdir/usr/share/man/man3/${i%n}3
+ done
+
+ mkdir -p $pkgdir/usr/share/licenses/tix && \
+ cp $srcdir/Tix$pkgver/license.terms $pkgdir/usr/share/licenses/tix/
+}
+
diff --git a/community/tix/tcl-tk-path.patch b/community/tix/tcl-tk-path.patch
new file mode 100644
index 000000000..2fc12671e
--- /dev/null
+++ b/community/tix/tcl-tk-path.patch
@@ -0,0 +1,22 @@
+diff -wbBur Tix8.4.3/configure Tix8.4.3.my/configure
+--- Tix8.4.3/configure 2008-02-28 04:35:01.000000000 +0000
++++ Tix8.4.3.my/configure 2009-12-28 10:57:33.000000000 +0000
+@@ -6645,7 +6645,7 @@
+ ;;
+ esac
+ else
+- if test ! -f "${TCL_SRC_DIR}/generic/tclInt.h" ; then
++ if test ! -f "${TCL_SRC_DIR}/tclInt.h" ; then
+ { { echo "$as_me:$LINENO: error: Cannot find private header tclInt.h in ${TCL_SRC_DIR}" >&5
+ echo "$as_me: error: Cannot find private header tclInt.h in ${TCL_SRC_DIR}" >&2;}
+ { (exit 1); exit 1; }; }
+@@ -6700,7 +6700,7 @@
+ ;;
+ esac
+ else
+- if test ! -f "${TK_SRC_DIR}/generic/tkInt.h" ; then
++ if test ! -f "${TK_SRC_DIR}/tk-private/generic/tkInt.h" ; then
+ { { echo "$as_me:$LINENO: error: Cannot find private header tkInt.h in ${TK_SRC_DIR}" >&5
+ echo "$as_me: error: Cannot find private header tkInt.h in ${TK_SRC_DIR}" >&2;}
+ { (exit 1); exit 1; }; }
+
diff --git a/community/tksystray/PKGBUILD b/community/tksystray/PKGBUILD
new file mode 100644
index 000000000..73c901237
--- /dev/null
+++ b/community/tksystray/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 9452 2010-01-25 14:27:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Pavel Borzenkov <pavel.borzenkov@gmail.com>
+
+pkgname=tksystray
+pkgver=0.1
+pkgrel=4
+pkgdesc="tksystray is compatible with freedesktop.org standarts systray for Tk"
+arch=('i686' 'x86_64')
+url="http://tkabber.jabber.ru/tksystray"
+license=("GPL")
+depends=(tcl tk imlib)
+source=(http://arch.pp.ru/~sergej/dl/tksystray_$pkgver.orig.tar.gz)
+md5sums=('d1784d2f786304bd6eaa82512fd5cf1c')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-tcl=/usr/lib --with-tk=/usr/lib
+ make || return 1
+ mkdir -p $startdir/pkg/usr/lib/$pkgname-$pkgver
+ cp -rf libtray.so $startdir/pkg/usr/lib/$pkgname-$pkgver
+ cp -rf pkgIndex.tcl $startdir/pkg/usr/lib/$pkgname-$pkgver
+}
diff --git a/community/tktheme/PKGBUILD b/community/tktheme/PKGBUILD
new file mode 100644
index 000000000..910ce9557
--- /dev/null
+++ b/community/tktheme/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 20038 2010-07-02 09:20:20Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: slubman <slubman@slubman.net>
+
+pkgname=tktheme
+pkgver=0.23
+pkgrel=6
+pkgdesc="A library to allow Tkabber docking in the system tray."
+arch=('i686' 'x86_64')
+depends=('tk' 'libxpm' 'libxmu')
+license=("GPL")
+source=(http://tkabber.jabber.ru/files/other/Tk_Theme-23.tgz)
+url="http://tkabber.jabber.ru"
+md5sums=('121c335e3b3764cbd04eea68b6a66dd3')
+
+build() {
+ cd $srcdir/Tk_Theme-23
+ tclsh configure
+ make || return 1
+ mkdir -p $pkgdir/usr/lib/tktheme && \
+ cp theme.so $pkgdir/usr/lib/tktheme/ && \
+ cp pkgIndex.tcl $pkgdir/usr/lib/tktheme/ && \
+ sed -i 's|ifneeded Tk_Theme 20|ifneeded Tk_Theme 23|' $pkgdir/usr/lib/tktheme/pkgIndex.tcl
+}
diff --git a/community/tls/PKGBUILD b/community/tls/PKGBUILD
new file mode 100644
index 000000000..426ddcfd7
--- /dev/null
+++ b/community/tls/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 14340 2010-04-02 23:21:39Z foutrelis $
+# Maintainer: Sergej Pupykin <pupykin.s@gmail.com>
+# Contributor: Mario Vazquez <mariovazq@gmail.com>
+
+pkgname=tls
+pkgver=1.6
+pkgrel=3
+pkgdesc="OpenSSL extension to Tcl"
+arch=('i686' 'x86_64')
+url="http://tls.sourceforge.net/"
+license=('GPL')
+depends=('tcl' 'openssl' 'awk')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname$pkgver-src.tar.gz)
+md5sums=('eb326ff9e6fc3b9885aa5c72fb8df3bf')
+
+build() {
+ cd $startdir/src/tls$pkgver
+
+ ./configure --prefix=/usr --with-ssl-dir=/usr
+ make || return 1
+ make test | awk '{print}/FAILED/{F=1}END{if(F)exit 1}'
+ make DESTDIR=$startdir/pkg install || return 1
+# sed -i 's|ifneeded tls 1.5|ifneeded tls 1.50|' $startdir/pkg/usr/lib/tls1.50/pkgIndex.tcl
+ ln -s tls1.6/libtls1.6.so $pkgdir/usr/lib/libtls1.6.so
+}
diff --git a/community/tls/tls.patch b/community/tls/tls.patch
new file mode 100644
index 000000000..46e70439f
--- /dev/null
+++ b/community/tls/tls.patch
@@ -0,0 +1,28 @@
+--- Makefile.in
++++ Makefile.in
+@@ -208,20 +208,20 @@
+ sed -e "s#\@RELPATH\@#$(RELPATH)#" \
+ -e "s#\@tls_LIB_FILE\@#$(tls_LIB_FILE)#" \
+ < $(srcdir)/pkgIndex.tcl.in > pkgIndex.tcl
+- $(INSTALL_DATA) pkgIndex.tcl $(pkglibdir)
++ $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir)
+
+ #========================================================================
+ # This rule installs platform-independent files, such as header files.
+ #========================================================================
+
+ install-libraries: libraries
+- $(mkinstalldirs) $(includedir)
+- @echo "Installing header files in $(includedir)"
++ $(mkinstalldirs) $(DESTDIR)$(includedir)
++ @echo "Installing header files in $(DESTDIR)$(includedir)"
+ @for i in $(GENERIC_HDRS) ; do \
+ echo "Installing $$i" ; \
+- $(INSTALL_DATA) $$i $(includedir) ; \
++ $(INSTALL_DATA) $$i $(DESTDIR)$(includedir) ; \
+ done;
+- $(INSTALL_DATA) $(srcdir)/tls.tcl $(pkglibdir)
++ $(INSTALL_DATA) $(srcdir)/tls.tcl $(DESTDIR)$(pkglibdir)
+
+ #========================================================================
+ # Install documentation. Unix manpages should go in the $(mandir)
diff --git a/community/tmux/LICENSE b/community/tmux/LICENSE
new file mode 100644
index 000000000..3ccacc76d
--- /dev/null
+++ b/community/tmux/LICENSE
@@ -0,0 +1,13 @@
+Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/community/tmux/PKGBUILD b/community/tmux/PKGBUILD
new file mode 100644
index 000000000..cc857b27b
--- /dev/null
+++ b/community/tmux/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 40748 2011-02-26 13:51:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: TDY <tdy@gmx.com>
+# Contributor: Grigorios Bouzakis <grbzks[at]gmail[dot]com>
+
+pkgname=tmux
+pkgver=1.4
+pkgrel=3
+pkgdesc="A terminal multiplexer"
+url="http://tmux.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('ncurses' 'libevent')
+source=(http://downloads.sourceforge.net/tmux/tmux-$pkgver.tar.gz
+ LICENSE)
+md5sums=('0bfc7dd9a5bab192406167589c716a21'
+ '71601bc37fa44e4395580b321963018e')
+
+build() {
+ cd "$srcdir/tmux-$pkgver"
+ ./configure
+ make PREFIX=/usr
+ make install PREFIX=/usr DESTDIR=$pkgdir
+ install -Dm644 examples/tmux.vim "$pkgdir/usr/share/vim/vimfiles/syntax/tmux.vim"
+ install -Dm644 ../LICENSE "$pkgdir/usr/share/licenses/tmux/LICENSE"
+ install -dm755 "$pkgdir/usr/share/tmux/"
+ install -m644 examples/* "$pkgdir/usr/share/tmux/"
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+ mkdir -p $pkgdir/etc/bash_completion.d/
+ mv $pkgdir/usr/share/tmux/bash_completion_tmux.sh $pkgdir/etc/bash_completion.d/tmux
+}
diff --git a/community/tmw/PKGBUILD b/community/tmw/PKGBUILD
new file mode 100644
index 000000000..7c13dbc04
--- /dev/null
+++ b/community/tmw/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 9602 2010-01-27 15:11:30Z ibiru $
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=tmw
+pkgver=0.0.29.1
+pkgrel=2
+pkgdesc="The Mana World (TMW) is a serious effort to create an innovative free and open source MMORPG."
+arch=('i686' 'x86_64')
+url="http://themanaworld.org"
+license=('GPL')
+depends=('curl' 'guichan' 'sdl_image' 'libgl' 'libxml2' 'physfs' 'sdl_mixer' 'sdl_net' 'sdl_ttf')
+makedepends=('mesa')
+source=(http://downloads.sourceforge.net/sourceforge/themanaworld/$pkgname-$pkgver.tar.gz)
+md5sums=('263de26c8545a261c6b82b7ae639f733')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/tnef/PKGBUILD b/community/tnef/PKGBUILD
new file mode 100644
index 000000000..b01fec8d4
--- /dev/null
+++ b/community/tnef/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 23480 2010-08-11 10:15:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jeffrey 'jf' Lim <jfs.world@gmail.com>
+
+pkgname=tnef
+pkgver=1.4.7
+pkgrel=1
+arch=(i686 x86_64)
+pkgdesc="Program which operates like tar to unpack the files inside an ms-tnef MIME attachment"
+url="http://sourceforge.net/projects/tnef/"
+license=('GPL')
+depends=()
+source=(http://downloads.sourceforge.net/project/tnef/tnef/v$pkgver/tnef-$pkgver.tar.gz)
+md5sums=('00978a8ad8cc79a1ee605172f882ebe9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/tnftp/PKGBUILD b/community/tnftp/PKGBUILD
new file mode 100644
index 000000000..1be576c02
--- /dev/null
+++ b/community/tnftp/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 20856 2010-07-12 13:13:46Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Previous Contributor: Baptiste Daroussin <baptiste.daroussin@gmail.com>
+
+pkgname=tnftp
+pkgver=20100108
+pkgrel=1
+pkgdesc="NetBSD FTP client with several advanced features"
+arch=('i686' 'x86_64')
+url="ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/"
+license=('BSD')
+depends=('ncurses' 'dante')
+conflicts=('inetutils')
+source=(ftp://ftp.netbsd.org/pub/NetBSD/misc/tnftp/$pkgname-$pkgver.tar.gz)
+md5sums=('192aac255abd515d7d4cc9b397dc0cba')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --enable-editcomplete
+ make || return 1
+ make install DESTDIR=$pkgdir || return 1
+ install -Dm755 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/community/toolame/PKGBUILD b/community/toolame/PKGBUILD
new file mode 100644
index 000000000..0f9fd76e3
--- /dev/null
+++ b/community/toolame/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 21306 2010-07-15 21:41:30Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Victor Martinez Romanos <vmromanos@gmail.com>
+
+pkgname=toolame
+pkgver=02l
+pkgrel=8
+pkgdesc="An optimized mpeg 1/2 layer 2 audio encoder"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/toolame"
+license=('LGPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/toolame/toolame-02l.tgz
+ toolame-02l.patch)
+md5sums=('5946e2dd78fbb57e54386b3b5d873fee'
+ '7fe02630ce8f08bd279a4bce93e64128')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p0 < ../toolame-02l.patch
+ [ "$CARCH" = "x86_64" ] && sed -i "s|-march=i686|-march=x86-64|g" Makefile
+ make || return 1
+ install -D -m755 toolame $pkgdir/usr/bin/toolame
+}
diff --git a/community/toolame/toolame-02l.patch b/community/toolame/toolame-02l.patch
new file mode 100644
index 000000000..241e89ad5
--- /dev/null
+++ b/community/toolame/toolame-02l.patch
@@ -0,0 +1,86 @@
+--- Makefile 2006-02-07 16:32:57.000000000 +0100
++++ Makefile 2006-02-07 16:39:07.000000000 +0100
+@@ -1,6 +1,3 @@
+-
+-CC = gcc
+-
+ c_sources = \
+ common.c \
+ encode.c \
+@@ -28,16 +25,16 @@
+
+ #Uncomment this if you want to do some profiling/debugging
+ #PG = -g -pg
+-PG = -fomit-frame-pointer
++PG = -pipe
+
+ # Optimize flag. 3 is about as high as you can sanely go with GCC3.2.
+-OPTIM = -O3
++OPTIM = -O2
+
+ # These flags are pretty much mandatory
+ REQUIRED = -DNDEBUG -DINLINE=inline
+
+ #pick your architecture
+-ARCH = -march=pentium
++ARCH = -march=i686
+ #Possible x86 architectures
+ #gcc3.2 => i386, i486, i586, i686, pentium, pentium-mmx
+ # pentiumpro, pentium2, pentium3, pentium4, k6, k6-2, k6-3,
+@@ -56,7 +53,7 @@
+
+ NEW_02L_FIXES = -DNEWENCODE -DNEWATAN
+
+-CC_SWITCHES = $(OPTIM) $(REQUIRED) $(ARCH) $(PG) $(TWEAKS) $(WARNINGS) $(NEW_02L_FIXES)
++CC_SWITCHES = $(OPTIM) $(REQUIRED) $(ARCH) $(PG) $(FLAGS) $(WARNINGS) $(NEW_02L_FIXES)
+
+ PGM = toolame
+
+@@ -75,16 +72,16 @@
+ $(CC) $(CC_SWITCHES) -c $< -o $@
+
+ $(PGM): $(OBJ) Makefile
+- $(CC) $(PG) -o $(PGM) $(OBJ) $(LIBS)
++ $(CC) -o $(PGM) $(OBJ) $(LIBS)
+
+ clean:
+- -rm $(OBJ) $(DEP)
++ -rm $(OBJ) $(DEP) 2>/dev/null
+
+ megaclean:
+- -rm $(OBJ) $(DEP) $(PGM) \#*\# *~
++ -rm $(OBJ) $(DEP) $(PGM) \#*\# *~ 2>/dev/null
+
+ distclean:
+- -rm $(OBJ) $(DEP) $(PGM) \#* *~ gmon.out gprof* core *shit* *.wav *.mp2 *.c.* *.mp2.* *.da *.h.* *.d *.mp3 *.pcm *.wav logfile
++ -rm $(OBJ) $(DEP) $(PGM) \#* *~ gmon.out gprof* core *shit* *.wav *.mp2 *.c.* *.mp2.* *.da *.h.* *.d *.mp3 *.pcm *.wav logfile 2>/dev/null
+
+ tags: TAGS
+
+
+--- audio_read.c 2003-03-01 17:18:30.000000000 -0800
++++ audio_read.c 2005-04-19 22:32:41.288998770 -0700
+@@ -436,7 +436,7 @@
+
+ if (pcm_aiff_data->sampleSize != sizeof (short) * BITS_IN_A_BYTE) {
+ fprintf (stderr, "Sound data is not %d bits in \"%s\".\n",
+- sizeof (short) * BITS_IN_A_BYTE, file_name);
++ (int)(sizeof (short) * BITS_IN_A_BYTE), file_name);
+ exit (1);
+ }
+
+
+--- fft.c 2003-03-01 23:14:45.000000000 -0800
++++ fft.c 2005-04-19 22:47:49.019986989 -0700
+@@ -1190,9 +1190,9 @@
+ static FLOAT atan_t[ATANSIZE];
+
+ INLINE FLOAT atan_table(FLOAT y, FLOAT x) {
+- int index;
++ unsigned int index;
+
+- index = (int)(ATANSCALE * fabs(y/x));
++ index = (unsigned int)(ATANSCALE * fabs(y/x));
+ if (index>=ATANSIZE)
+ index = ATANSIZE-1;
+
diff --git a/community/tor/PKGBUILD b/community/tor/PKGBUILD
new file mode 100644
index 000000000..db528f365
--- /dev/null
+++ b/community/tor/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 41034 2011-03-03 11:05:31Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: simo <simo@archlinux.org>
+
+pkgname=tor
+pkgver=0.2.1.30
+pkgrel=1
+pkgdesc='Anonymizing overlay network.'
+arch=('i686' 'x86_64')
+url='http://www.torproject.org/'
+license=('BSD')
+depends=('openssl' 'libevent' 'tsocks' 'bash')
+makedepends=('ca-certificates')
+backup=('etc/tor/torrc'
+ 'etc/tor/torrc-dist'
+ 'etc/tor/tor-tsocks.conf'
+ 'etc/conf.d/tor')
+install='tor.install'
+source=("http://www.torproject.org/dist/${pkgname}-${pkgver}.tar.gz"
+ 'torrc'
+ 'tor'
+ 'tor.conf.d')
+md5sums=('6c6d61e053af5969a245d025c4cfce9d'
+ '56c75d4e8a66f34167d31e38c43793dd'
+ 'f8e6868a389877346e7eebaacd1078bb'
+ '5c7c6834064b3530c442def6079ac3aa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -dm0700 "${pkgdir}/var/lib/tor"
+
+ mv "${pkgdir}/etc/tor/torrc.sample" "${pkgdir}/etc/tor/torrc-dist"
+ install -Dm0644 "${srcdir}/torrc" "${pkgdir}/etc/tor/torrc"
+ install -Dm0755 "${srcdir}/tor" "${pkgdir}/etc/rc.d/tor"
+ install -Dm0644 "${srcdir}/tor.conf.d" "${pkgdir}/etc/conf.d/tor"
+
+ install -Dm0644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/community/tor/tor b/community/tor/tor
new file mode 100644
index 000000000..522c498ce
--- /dev/null
+++ b/community/tor/tor
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/tor ] && . /etc/conf.d/tor
+
+PID=`pidof -o %PPID /usr/bin/tor`
+case "$1" in
+ start)
+ stat_busy "Starting Tor Daemon"
+ if [ -z "${TOR_MAX_FD}" ] || ulimit -n "${TOR_MAX_FD}"; then
+ [ -z "$PID" ] && /usr/bin/tor -f ${TOR_CONF} ${TOR_ARGS} &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon tor
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Tor Daemon"
+ [ ! -z "$PID" ] && kill -INT $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon tor
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+# vim: ft=sh ts=2 sw=2
diff --git a/community/tor/tor.conf.d b/community/tor/tor.conf.d
new file mode 100644
index 000000000..e9fa098e0
--- /dev/null
+++ b/community/tor/tor.conf.d
@@ -0,0 +1,9 @@
+# Location of the config file.
+TOR_CONF='/etc/tor/torrc'
+
+# Custom ulimit for maximum number of open files.
+TOR_MAX_FD=
+
+# Additional arguments.
+TOR_ARGS="--quiet"
+
diff --git a/community/tor/tor.install b/community/tor/tor.install
new file mode 100644
index 000000000..2c448d28e
--- /dev/null
+++ b/community/tor/tor.install
@@ -0,0 +1,24 @@
+post_install() {
+ echo "-> Tor has been preconfigured to run as a client only."
+ echo "-> Tor is experimental software. Do not rely on it for strong anonymity."
+ echo '-> '
+ echo '-> You can set custom file descriptor ulimits for Tor in'
+ echo '-> "/etc/conf.d/tor" using the "TOR_MAX_FD" variable.'
+ groupadd -g 43 tor &>/dev/null
+ useradd -u 43 -g tor -d /var/lib/tor -s /bin/false tor &> /dev/null
+ chown tor:tor var/lib/tor &> /dev/null
+ chmod 700 var/lib/tor &> /dev/null
+}
+
+post_upgrade() {
+ echo '-> You can now set custom file descriptor ulimits for Tor in'
+ echo '-> "/etc/conf.d/tor" using the "TOR_MAX_FD" variable.'
+ getent group tor &>/dev/null || groupadd -g 43 tor &>/dev/null
+ getent passwd tor &>/dev/null || useradd -u 43 -g tor -d /var/lib/tor -s /bin/false tor &> /dev/null
+ chown tor:tor var/lib/tor &> /dev/null
+}
+
+pre_remove() {
+ getent passwd tor &>/dev/null && userdel tor &> /dev/null
+ getent group tor &>/dev/null && groupdel tor &> /dev/null
+}
diff --git a/community/tor/torrc b/community/tor/torrc
new file mode 100644
index 000000000..3505653ab
--- /dev/null
+++ b/community/tor/torrc
@@ -0,0 +1,143 @@
+## CONFIGURED FOR ARCHLINUX
+
+## Last updated 22 July 2005 for Tor 0.1.0.13.
+## (May or may not work for older or newer versions of Tor.)
+#
+## See the man page, or http://tor.eff.org/tor-manual.html, for more
+## options you can use in this file.
+#
+# On Unix, Tor will look for this file in someplace like "~/.tor/torrc" or
+# "/etc/torrc"
+#
+# On Windows, Tor will look for the configuration file in someplace like
+# "Application Data\tor\torrc" or "Application Data\<username>\tor\torrc"
+#
+# With the default Mac OS X installer, Tor will look in ~/.tor/torrc or
+# /Library/Tor/torrc
+
+
+## Replace this with "SocksPort 0" if you plan to run Tor only as a
+## server, and not make any local application connections yourself.
+SocksPort 9050 # what port to open for local application connections
+SocksBindAddress 127.0.0.1 # accept connections only from localhost
+#SocksBindAddress 192.168.0.1:9100 # listen on a chosen IP/port too
+
+## Entry policies to allow/deny SOCKS requests based on IP address.
+## First entry that matches wins. If no SocksPolicy is set, we accept
+## all (and only) requests from SocksBindAddress.
+#SocksPolicy accept 192.168.0.1/16
+#SocksPolicy reject *
+
+## Allow no-name routers (ones that the dirserver operators don't
+## know anything about) in only these positions in your circuits.
+## Other choices (not advised) are entry,exit,introduction.
+AllowUnverifiedNodes middle,rendezvous
+
+## Logs go to stdout at level "notice" unless redirected by something
+## else, like one of the below lines. You can have as many log lines as
+## you want.
+##
+## Send all messages of level 'notice' or higher to /var/log/tor/notices.log
+#Log notice file /var/log/tor/notices.log
+## Send only debug and info messages to /var/log/tor/debug.log
+#Log debug-info file /var/log/tor/debug.log
+## Send ONLY debug messages to /var/log/tor/debug.log
+#Log debug-debug file /var/log/tor/debug.log
+## To use the system log instead of Tor's logfiles, uncomment these lines:
+Log notice syslog
+## To send all messages to stderr:
+#Log debug stderr
+
+## Uncomment this to start the process in the background... or use
+## --runasdaemon 1 on the command line.
+RunAsDaemon 1
+User tor
+Group tor
+
+## Tor only trusts directories signed with one of these keys, and
+## uses the given addresses to connect to the trusted directory
+## servers. If no DirServer lines are specified, Tor uses the built-in
+## defaults (moria1, moria2, tor26), so you can leave this alone unless
+## you need to change it.
+#DirServer 18.244.0.188:9031 FFCB 46DB 1339 DA84 674C 70D7 CB58 6434 C437 0441
+#DirServer 18.244.0.114:80 719B E45D E224 B607 C537 07D0 E214 3E2D 423E 74CF
+#DirServer 86.59.21.38:80 847B 1F85 0344 D787 6491 A548 92F9 0493 4E4E B85D
+
+## The directory for keeping all the keys/etc. By default, we store
+## things in $HOME/.tor on Unix, and in Application Data\tor on Windows.
+DataDirectory /var/lib/tor
+
+## The port on which Tor will listen for local connections from Tor controller
+## applications, as documented in control-spec.txt. NB: this feature is
+## currently experimental.
+#ControlPort 9051
+
+############### This section is just for location-hidden services ###
+
+## Look in .../hidden_service/hostname for the address to tell people.
+## HiddenServicePort x y:z says to redirect a port x request from the
+## client to y:z.
+
+#HiddenServiceDir /var/lib/tor/hidden_service/
+#HiddenServicePort 80 127.0.0.1:80
+
+#HiddenServiceDir /var/lib/tor/other_hidden_service/
+#HiddenServicePort 80 127.0.0.1:80
+#HiddenServicePort 22 127.0.0.1:22
+#HiddenServiceNodes moria1,moria2
+#HiddenServiceExcludeNodes bad,otherbad
+
+################ This section is just for servers #####################
+
+## NOTE: If you enable these, you should consider mailing your identity
+## key fingerprint to the tor-ops, so we can add you to the list of
+## servers that clients will trust. See
+## http://tor.eff.org/doc/tor-doc.html#server for details.
+
+## Required: A unique handle for this server
+#Nickname ididnteditheconfig
+
+## The IP or fqdn for this server. Leave commented out and Tor will guess.
+#Address noname.example.com
+
+## Contact info that will be published in the directory, so we can
+## contact you if you need to upgrade or if something goes wrong.
+## This is optional but recommended.
+#ContactInfo Random Person <nobody AT example dot com>
+## You might also include your PGP or GPG fingerprint if you have one:
+#ContactInfo 1234D/FFFFFFFF Random Person <nobody AT example dot com>
+
+## Required: what port to advertise for tor connections
+#ORPort 9001
+## If you want to listen on a port other than the one advertised
+## in ORPort (e.g. to advertise 443 but bind to 9090), uncomment
+## the line below. You'll need to do ipchains or other port forwarding
+## yourself to make this work.
+#ORBindAddress 0.0.0.0:9090
+
+## Uncomment this to mirror the directory for others (please do)
+#DirPort 9030 # what port to advertise for directory connections
+## If you want to listen on a port other than the one advertised
+## in DirPort (e.g. to advertise 80 but bind 9091), uncomment the line
+## below. You'll need to do ipchains or other port forwarding yourself
+## to make this work.
+#DirBindAddress 0.0.0.0:9091
+
+## A comma-separated list of exit policies. They're considered first
+## to last, and the first match wins. If you want to *replace*
+## the default exit policy, end this with either a reject *:* or an
+## accept *:*. Otherwise, you're *augmenting* (prepending to) the
+## default exit policy. Leave commented to just use the default, which is
+## available in the man page or at http://tor.eff.org/documentation.html
+##
+## Look at http://tor.eff.org/faq-abuse.html#TypicalAbuses
+## for issues you might encounter if you use the default exit policy.
+##
+## If certain IPs and ports are blocked externally, e.g. by your firewall,
+## you should update your exit policy to reflect this -- otherwise Tor
+## users will be told that those destinations are down.
+##
+#ExitPolicy accept *:6660-6667,reject *:* # allow irc ports but no more
+#ExitPolicy accept *:119 # accept nntp as well as default exit policy
+#ExitPolicy reject *:* # middleman only -- no exits allowed
+
diff --git a/community/tora/PKGBUILD b/community/tora/PKGBUILD
new file mode 100644
index 000000000..2c0b2e774
--- /dev/null
+++ b/community/tora/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 31857 2010-11-06 19:23:22Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Douglas Soares de Andrade <dsandrade@gmail.com>
+pkgname=tora
+pkgver=2.1.3
+pkgrel=1
+pkgdesc="Toolkit for databases with support for MySQL and PostgreSQL"
+arch=('i686' 'x86_64')
+url="http://tora.sourceforge.net"
+license=('GPL')
+depends=('qscintilla')
+makedepends=('cmake')
+options=('!libtool' '!emptydirs')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ea4a75a9daeaf58492413e3f7fe40293')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/tora/tora.install b/community/tora/tora.install
new file mode 100644
index 000000000..260f3960f
--- /dev/null
+++ b/community/tora/tora.install
@@ -0,0 +1,20 @@
+# Thanks to: Serge Gielkens (Teld) for this bugfix
+infodir=/usr/share/info
+filelist=(tora.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/community/torch/PKGBUILD b/community/torch/PKGBUILD
new file mode 100644
index 000000000..c9691a6f6
--- /dev/null
+++ b/community/torch/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 21793 2010-07-17 10:25:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=torch
+pkgver=3.1
+pkgrel=2
+pkgdesc="State of the art machine learning library"
+arch=(i686 x86_64)
+url="http://packages.debian.org/source/lenny/torch3"
+license=('GPL')
+depends=(gcc-libs)
+source=(http://ftp.de.debian.org/debian/pool/main/t/torch3/torch3_$pkgver.orig.tar.gz
+ http://ftp.de.debian.org/debian/pool/main/t/torch3/torch3_$pkgver-2.diff.gz)
+md5sums=('04f7dc72a1e875a12ddf8ac77ec2dcc7'
+ 'b928c4206abb3209435dca27ad3e3c22')
+
+build() {
+ cd "$srcdir/torch3-$pkgver.orig"
+
+ [ $NOEXTRACT -eq 1 ] || cat $srcdir/torch3_$pkgver-2.diff | patch -p1
+ [ $NOEXTRACT -eq 1 ] || make depend
+
+ make || return 1
+
+ mkdir -p $pkgdir/usr/{include/torch,lib}
+
+ for i in core convolutions datasets decoder distributions gradients kernels matrix nonparametrics speech; do
+ install -D -m0644 $i/*.h $pkgdir/usr/include/torch/ || return 1
+ done
+
+ install -D -m0755 lib/*.so* $pkgdir/usr/lib/ && \
+ install -D -m0644 lib/*.a $pkgdir/usr/lib/
+}
diff --git a/community/torcs/PKGBUILD b/community/torcs/PKGBUILD
new file mode 100644
index 000000000..99a01a51a
--- /dev/null
+++ b/community/torcs/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 32627 2010-11-15 22:59:24Z lcarlier $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Shahar Weiss <sweiss4@gmx.net>
+
+pkgname=torcs
+pkgver=1.3.2_test1
+pkgrel=2
+pkgdesc="A 3D racing cars simulator using OpenGL"
+url="http://torcs.sourceforge.net"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=('freeglut' 'libpng' 'freealut' 'libxi' 'libxmu' 'libxrandr' 'torcs-data')
+makedepends=('plib')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-${pkgver/_/-}.tar.bz2 \
+ torcs.desktop \
+ torcs-gcc.patch)
+md5sums=('978b908a42ff6bc235a791bba3fa66b9'
+ '328e419e9f985c3e7b69924fe299330d'
+ '5ae7e903df37300d3b8744328c756bff')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver/_/-}
+
+ export LDFLAGS=${LDFLAGS/-Wl,--as-needed/}
+ ./configure --prefix=/usr --x-includes=/usr/include --x-libraries=/usr/lib
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-${pkgver/_/-}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 Ticon.png ${pkgdir}/usr/share/pixmaps/torcs.png
+ install -D -m644 ../torcs.desktop ${pkgdir}/usr/share/applications/torcs.desktop
+
+ find ${pkgdir} -type d -exec chmod 755 {} \;
+}
diff --git a/community/torcs/torcs-gcc.patch b/community/torcs/torcs-gcc.patch
new file mode 100644
index 000000000..fcc5604e7
--- /dev/null
+++ b/community/torcs/torcs-gcc.patch
@@ -0,0 +1,74 @@
+diff -aur src.old/drivers/olethros/Trajectory.cpp src/drivers/olethros/Trajectory.cpp
+--- src.old/drivers/olethros/Trajectory.cpp 2008-04-06 22:21:31.000000000 +0200
++++ src/drivers/olethros/Trajectory.cpp 2008-04-06 22:28:52.000000000 +0200
+@@ -10,8 +10,10 @@
+ ***************************************************************************/
+ #include <cstdio>
+ #include <cstdlib>
++#include <cstring>
+ #include <cmath>
+ #include <cassert>
++#include <ctime>
+ #include <list>
+ #include <vector>
+ #include "Trajectory.h"
+diff -aur src.old/modules/simu/simuv2/SOLID-2.0/src/BBoxTree.cpp src/modules/simu/simuv2/SOLID-2.0/src/BBoxTree.cpp
+--- src.old/modules/simu/simuv2/SOLID-2.0/src/BBoxTree.cpp 2008-04-06 22:21:31.000000000 +0200
++++ src/modules/simu/simuv2/SOLID-2.0/src/BBoxTree.cpp 2008-04-06 22:22:57.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include "Transform.h"
+
+ #include <algorithm>
+-#include <new.h>
++#include <new>
+
+ class BBoxCompAxis {
+ public:
+diff -aur src.old/modules/simu/simuv2/SOLID-2.0/src/Complex.cpp src/modules/simu/simuv2/SOLID-2.0/src/Complex.cpp
+--- src.old/modules/simu/simuv2/SOLID-2.0/src/Complex.cpp 2008-04-06 22:21:31.000000000 +0200
++++ src/modules/simu/simuv2/SOLID-2.0/src/Complex.cpp 2008-04-06 22:23:11.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include "Transform.h"
+ #include "BBoxTree.h"
+
+-#include <new.h>
++#include <new>
+
+ BBoxInternal *free_node;
+
+diff -aur src.old/modules/simu/simuv2/SOLID-2.0/src/Endpoint.cpp src/modules/simu/simuv2/SOLID-2.0/src/Endpoint.cpp
+--- src.old/modules/simu/simuv2/SOLID-2.0/src/Endpoint.cpp 2008-04-06 22:21:31.000000000 +0200
++++ src/modules/simu/simuv2/SOLID-2.0/src/Endpoint.cpp 2008-04-06 22:22:29.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include "Object.h"
+ #include "Encounter.h"
+
+-#include <new.h>
++#include <new>
+
+ void addPair(ObjectPtr object1, ObjectPtr object2);
+ void removePair(ObjectPtr object1, ObjectPtr object2);
+diff -aur src.old/modules/simu/simuv2/SOLID-2.0/src/Object.cpp src/modules/simu/simuv2/SOLID-2.0/src/Object.cpp
+--- src.old/modules/simu/simuv2/SOLID-2.0/src/Object.cpp 2008-04-06 22:21:31.000000000 +0200
++++ src/modules/simu/simuv2/SOLID-2.0/src/Object.cpp 2008-04-06 22:22:40.000000000 +0200
+@@ -33,7 +33,7 @@
+ #include "Convex.h"
+ #include "Complex.h"
+
+-#include <new.h>
++#include <new>
+
+ Object::Object(DtObjectRef obj, ShapePtr shape) :
+ ref(obj),
+diff -aur src.old/modules/simu/simuv2/SOLID-2.0/src/Polyhedron.cpp src/modules/simu/simuv2/SOLID-2.0/src/Polyhedron.cpp
+--- src.old/modules/simu/simuv2/SOLID-2.0/src/Polyhedron.cpp 2008-04-06 22:21:31.000000000 +0200
++++ src/modules/simu/simuv2/SOLID-2.0/src/Polyhedron.cpp 2008-04-06 22:22:12.000000000 +0200
+@@ -37,7 +37,7 @@
+ }
+
+ #include <vector>
+-#include <new.h>
++#include <new>
+
+ typedef vector<unsigned int> IndexBuf;
+
diff --git a/community/torcs/torcs.desktop b/community/torcs/torcs.desktop
new file mode 100644
index 000000000..03d1ba010
--- /dev/null
+++ b/community/torcs/torcs.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=TORCS
+Comment=The Open Racing Car Simulator
+Exec=torcs
+Icon=torcs.png
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Categories=Application;Game;
diff --git a/community/torcs/torcs.sh b/community/torcs/torcs.sh
new file mode 100644
index 000000000..0f1b4fe8d
--- /dev/null
+++ b/community/torcs/torcs.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+export PATH=$PATH:/opt/torcs/bin
diff --git a/community/tracker/PKGBUILD b/community/tracker/PKGBUILD
new file mode 100644
index 000000000..92c7ac0e3
--- /dev/null
+++ b/community/tracker/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 43588 2011-03-27 20:42:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=tracker
+pkgver=0.10.5
+pkgrel=1
+pkgdesc="Powerful object database, tag/metadata database, search tool and indexer"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/projects/tracker/"
+license=('GPL')
+depends=('upower' 'poppler-glib' 'gstreamer0.10-base' 'libgee' 'gnome-desktop' 'libnotify' 'xdg-utils' 'gtkhtml'
+ 'libgsf' 'gnome-panel-bonobo' 'exempi' 'networkmanager')
+makedepends=('intltool' 'gnome-panel' 'nautilus' 'evolution' 'totem-plparser')
+optdepends=('nautilus'
+ 'enca'
+ 'gtkhtml'
+ 'gnome-panel'
+ 'totem-plparser'
+ 'icu'
+ 'taglib'
+ 'giflib')
+options=('!libtool')
+conflicts=('libtracker')
+provides=("libtracker")
+install=tracker.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/tracker/0.10/tracker-$pkgver.tar.bz2)
+md5sums=('6c2040ba96a34932a073317071b3da91')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # python2 fix
+ export PYTHON=`which python2`
+ for file in tests/functional-tests/*.py; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/$pkgname \
+ --enable-video-extractor=gstreamer --disable-unac --disable-hal \
+ --disable-devkit-power --disable-miner-evolution
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/tracker/tracker.install b/community/tracker/tracker.install
new file mode 100644
index 000000000..b95cc069d
--- /dev/null
+++ b/community/tracker/tracker.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/transset-df/PKGBUILD b/community/transset-df/PKGBUILD
new file mode 100644
index 000000000..5a07fa699
--- /dev/null
+++ b/community/transset-df/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 22565 2010-07-22 20:46:50Z lcarlier $
+# Contributer: Aaron Schaefer <aaron@elasticdog.com>
+
+pkgname=transset-df
+pkgver=6
+pkgrel=2
+pkgdesc="A patched version of X.Org's transset with added functionality"
+arch=('i686' 'x86_64')
+url="http://forchheimer.se/transset-df/"
+license=('GPL')
+depends=('libxcomposite' 'libxdamage' 'libxrender')
+source=(http://forchheimer.se/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('3375d570adc9d875d7fc476d1a50d5a5')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ install -D -m755 transset-df ${pkgdir}/usr/bin/transset-df
+}
diff --git a/community/trayion/PKGBUILD b/community/trayion/PKGBUILD
new file mode 100644
index 000000000..693b2095c
--- /dev/null
+++ b/community/trayion/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname="trayion"
+pkgver="0.1.2"
+pkgrel=1
+pkgdesc="FreeDesktop trayicon area for Ion3"
+url="http://code.google.com/p/trayion"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('libx11')
+makedepends=('make')
+install="$pkgname.install"
+source=("http://trayion.googlecode.com/files/$pkgname-$pkgver.tar.gz")
+md5sums=('6e1123121ed83bd7f9759a71d4ef9307')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make || return 1
+ make prefix="$pkgdir/usr" install
+}
diff --git a/community/trayion/trayion.install b/community/trayion/trayion.install
new file mode 100644
index 000000000..19562a5f6
--- /dev/null
+++ b/community/trayion/trayion.install
@@ -0,0 +1,19 @@
+post_install() {
+cat << EOF
+PLEASE NOTE:
+------------------------------------------------------------------------
+In order to get this package working correctly, disable the size hints
+kludges that come by default with Ion3. Copy /etc/ion3/cfg_kludges.lua
+to your ~/.ion3, then edit ~/.ion3/cfg_kludges.lua to comment the
+max_size and min_size kludges as below:
+
+ defwinprop{
+ is_dockapp = true,
+ statusbar = "systray",
+ -- max_size = { w = 64, h = 64},
+ -- min_size = { w = 64, h = 64},
+ }
+
+------------------------------------------------------------------------
+EOF
+}
diff --git a/community/tre/PKGBUILD b/community/tre/PKGBUILD
new file mode 100644
index 000000000..52fb14708
--- /dev/null
+++ b/community/tre/PKGBUILD
@@ -0,0 +1,28 @@
+# Contributor: Igor Galic<i.galic@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de
+pkgname=tre
+pkgver=0.8.0
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="POSIX compliant regexp matching library. Includes agrep for aproximate grepping."
+url="http://laurikari.net/tre/index.html"
+depends=('glibc')
+license=('custom:BSD')
+source=(http://laurikari.net/tre/$pkgname-$pkgver.tar.bz2)
+md5sums=('b4d3232593dadf6746f4727bdda20b41')
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr --enable-static || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -Dm644 ${srcdir}/$pkgname-$pkgver/LICENSE \
+ ${pkgdir}/usr/share/licenses/$pkgname/LICENSE || return 1
+ install -d ${pkgdir}/usr/share/doc/$pkgname
+ cd doc
+ for _i in default.css tre-api.html tre-syntax.html
+ do
+ install -Dm644 ${_i} ${pkgdir}/usr/share/doc/$pkgname/${_i}
+ done || return 1
+}
diff --git a/community/tremulous/PKGBUILD b/community/tremulous/PKGBUILD
new file mode 100644
index 000000000..b26368a8b
--- /dev/null
+++ b/community/tremulous/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 6443 2009-12-10 14:33:11Z daenyth $
+# Contributor: Slash <demodevil5[at]yahoo[dot]com>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
+# Maintainer: Daenyth <Daenyth+Arch AT gmail DOT com>
+
+pkgname=tremulous
+pkgver=1.1.0
+pkgrel=7
+pkgdesc="A completely free online team based FPS/RTS hybrid game based on the ioquake3 engine."
+url="http://tremulous.net/"
+license=("GPL")
+arch=('i686' 'x86_64')
+depends=("sdl" "openal>=1.7.411" "tremulous-data=$pkgver")
+makedepends=(subversion mesa)
+source=('tremulous.launcher' 'tremded.launcher' 'tremulous.desktop' 'tremulous.xpm'
+ "backport.patch::http://source.mercenariesguild.net/client/trunk/patches/backport-client-r1112.patch?revision=2"
+ "fixfavorites.patch::http://source.mercenariesguild.net/client/trunk/patches/slacker-fixfavorites.patch?revision=15"
+ "resolution.patch::http://source.mercenariesguild.net/client/trunk/patches/Lakitu7-backport_resolution_cvars.patch?revision=71"
+ "sortping.patch::http://source.mercenariesguild.net/client/trunk/patches/Amanieu_sortping_fix_client.patch?revision=3")
+md5sums=('5d2a7f0459affe970fe2b33b7ef18780'
+ '8775c2d5b9ec6ce9b9d85ab79ec9879d'
+ '9974bde01b95b6d967beb76c31c0e742'
+ '7e3a881608f1c7c0ccece1e07fcf92d8'
+ '7b3bf98d1ae3ea89da58e3c7775bf452'
+ '510384ba8699aceac13aaa15d722ced7'
+ '4d39ef28a0924bdc33234a01fb54f846'
+ '85315bd6d35519bd231e9771552a8e49')
+
+build() {
+ cd $srcdir
+
+ # Check out the revision recommended by the developers
+ svn co svn://svn.icculus.org/tremulous/trunk/ --config-dir ./ -r 1114 tremulous-src || return 1
+
+ # Compile Source
+ cd tremulous-src
+
+ # Add patches recommended by the developers
+ patch -Np0 -i $srcdir/backport.patch || return 1
+ patch -Np0 -i $srcdir/fixfavorites.patch || return 1
+ patch -Np0 -i $srcdir/resolution.patch || return 1
+ patch -Np0 -i $srcdir/sortping.patch || return 1
+
+ make || return 1
+}
+
+package() {
+ cd $srcdir/tremulous-src
+
+ install -dm755 $pkgdir/opt/tremulous/
+
+ # Install Binaries
+ local _arch=${CARCH/i686/x86}
+ install -m755 build/release-linux-$_arch/*.$_arch $pkgdir/opt/tremulous
+
+ cd $srcdir
+
+ # Install Client Launcher
+ install -D -m755 tremulous.launcher $pkgdir/usr/bin/tremulous
+
+ # Install Server Launcher
+ install -D -m755 tremded.launcher $pkgdir/usr/bin/tremded
+
+ # Install Desktop Icons
+ install -D -m644 tremulous.desktop $pkgdir/usr/share/applications/tremulous.desktop
+ install -D -m644 tremulous.xpm $pkgdir/usr/share/pixmaps/tremulous.xpm
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/tremulous/tremded.launcher b/community/tremulous/tremded.launcher
new file mode 100644
index 000000000..630fb5886
--- /dev/null
+++ b/community/tremulous/tremded.launcher
@@ -0,0 +1,10 @@
+#!/bin/sh
+case `uname -m` in
+ i686) arch=x86 ;;
+ x86_64) arch=x86_64 ;;
+ *) exit 1 ;;
+esac
+
+cd "/opt/tremulous"
+./tremded.$arch "$@"
+exit $?
diff --git a/community/tremulous/tremulous.desktop b/community/tremulous/tremulous.desktop
new file mode 100644
index 000000000..1d53f3aff
--- /dev/null
+++ b/community/tremulous/tremulous.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Tremulous
+GenericName=Tremulous
+Comment=Online Team-Based RTS/FPS Hybrid
+Exec=/usr/bin/tremulous
+Icon=tremulous.xpm
+StartupNotify=true
+Terminal=false
+Type=Application
+Categories=Application;Game
diff --git a/community/tremulous/tremulous.launcher b/community/tremulous/tremulous.launcher
new file mode 100644
index 000000000..1bba6f848
--- /dev/null
+++ b/community/tremulous/tremulous.launcher
@@ -0,0 +1,10 @@
+#!/bin/sh
+case `uname -m` in
+ i686) arch=x86 ;;
+ x86_64) arch=x86_64 ;;
+ *) exit 1 ;;
+esac
+
+cd "/opt/tremulous"
+./tremulous.$arch "$@"
+exit $?
diff --git a/community/tremulous/tremulous.xpm b/community/tremulous/tremulous.xpm
new file mode 100644
index 000000000..5e070c862
--- /dev/null
+++ b/community/tremulous/tremulous.xpm
@@ -0,0 +1,90 @@
+/* XPM */
+static char * tremulous_xpm[] = {
+"48 48 39 1",
+" c None",
+". c #0F0F0F",
+"+ c #181818",
+"@ c #000000",
+"# c #282828",
+"$ c #212121",
+"% c #060606",
+"& c #1D1D1D",
+"* c #252525",
+"= c #080808",
+"- c #0E0E0E",
+"; c #050505",
+"> c #0B0B0B",
+", c #0C0C0C",
+"' c #232323",
+") c #1F1F1F",
+"! c #030303",
+"~ c #0D0D0D",
+"{ c #040404",
+"] c #020202",
+"^ c #141414",
+"/ c #1E1E1E",
+"( c #131313",
+"_ c #111111",
+": c #010101",
+"< c #191919",
+"[ c #090909",
+"} c #292929",
+"| c #070707",
+"1 c #121212",
+"2 c #1B1B1B",
+"3 c #161616",
+"4 c #0A0A0A",
+"5 c #222222",
+"6 c #242424",
+"7 c #1A1A1A",
+"8 c #151515",
+"9 c #101010",
+"0 c #171717",
+" ",
+" ... ",
+" +@@@@@# ",
+" $@@@@@@% ",
+" &@@@@@@@@ * ",
+" =- ;@@@@@@@@> ,@- ",
+" @@' ;@@@@@@@@@ ,@@ ",
+" )@! ;@@@@@@@@@ ~@@; ",
+" ;@{ ]@@@@@@@@@~ ,@@; ",
+" ^@@] /@@@@@@@@@@@( -@@; ",
+" .@@; /@@@@@@@@@@@ -@@@/ ",
+" _@@] /@@@@@@@@@@@ #:@@@_ ",
+" @@@; /@@@@@@@@@@< :@@@- ",
+" :@@! ]@@@@@@@@@ @@@@- ",
+" $@@@; ;@@@@@@@@[ ~]@@@- ",
+" %@@@; }!@@@@@@@@- }|@@@@, ",
+" !@@@; 1@@@@@@@@@@ 2@@@@@~ ",
+" ;@@@% [@@@@@@@@@@@@@@@@, ",
+" @@@@{|||:@@@@@@@@@@@@@@!- ",
+" -@@@@@@@@@@@@@@@@@@@@@] ",
+" .@@@@@@@@@@@@@@@@@@@{ ",
+" ]@@@@@@@@@@@@@@@@@ ",
+" .@@@@@@@@@@@@@@@@ ",
+" +@@@@@@@@@@@@@@@@@@@@@@@@@@/ ",
+" =@@@@@@@@@@@@@@@@@@@@@@@@@/ ",
+" .=@@@@@@@@@@@@@@@@@@% ",
+" ,@@@@@@@@@@@@@@@@@@@@@ ",
+" 2>]@@@@@@@@@@@@@@@@@@@@@@@3 ",
+" *:@@@@@@@@@@@@@@@@@@@@@@@@@^ ",
+" @@@||| 4]@@@@@@@@@@@@@@@@@ ",
+" 556 _@@@@@@@@@@@@@@@@3 ",
+" >@@@@@@@@@@@@@@@@+ ",
+" ;@@@@@@@@@@@@@@@@@7 ",
+" &@@@@@@@@@@@@@@@@@@@+ ",
+" @@@@@@@@@@@@@@@@@@@@@/ ",
+" 8@@@@@@@@@@@@@@@[ =@@| ",
+" ;@@:::@@@@@@@@@[ %@@[ ",
+" @@9 (@@@@@@@4 =@@ ",
+" ,@@ {:@@: {@! ",
+" !@@ << 3@@0 ",
+" !@- 3@@6 ",
+" ]@( (@[ ",
+" 7@@ ]@ ",
+" 7@@ * ",
+" 7@} ",
+" 7@ ",
+" . ",
+" "};
diff --git a/community/trickle/PKGBUILD b/community/trickle/PKGBUILD
new file mode 100644
index 000000000..5b9844932
--- /dev/null
+++ b/community/trickle/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 39246 2011-02-07 19:18:47Z tdziedzic $
+# Contributor Romain Bouchaud-Leduc <r0m1.bl@camaris.org>
+
+pkgname=trickle
+pkgver=1.07
+pkgrel=5
+pkgdesc="Trickle - lightweight userspace bandwidth shaper"
+arch=('i686' 'x86_64')
+url="http://monkey.org/~marius/trickle"
+license=('BSD')
+depends=("libevent")
+source=("http://monkey.org/~marius/trickle/$pkgname-$pkgver.tar.gz")
+md5sums=('860ebc4abbbd82957c20a28bd9390d7d')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ sed -i "s|.*in_addr_t.*||g" config.h
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/tripwire/ChangeLog b/community/tripwire/ChangeLog
new file mode 100644
index 000000000..9fd3b124d
--- /dev/null
+++ b/community/tripwire/ChangeLog
@@ -0,0 +1,5 @@
+2009-05-09 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#13766 fixed
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+ * Built for x86_64
diff --git a/community/tripwire/PKGBUILD b/community/tripwire/PKGBUILD
new file mode 100644
index 000000000..6f87618d9
--- /dev/null
+++ b/community/tripwire/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 14337 2010-04-02 23:17:36Z foutrelis $
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: eliott <eliott@cactuswax.net>
+
+pkgname=tripwire
+pkgver=2.4.1.2
+pkgrel=2
+pkgdesc="An intrusion detection system."
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/tripwire/"
+license=('GPL')
+depends=('openssl')
+backup=('etc/tripwire/twpol.txt' 'etc/tripwire/twcfg.txt')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-src.tar.bz2 \
+ twpol.txt twcfg.txt)
+
+md5sums=('8a1147c278b528ed593023912c4b649a'
+ '82900de7500bf6a6f90d8b9f20c4ee44'
+ '4b44d8179e247a638ee2752543405753')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver-src
+
+#build package
+ ./configure --prefix=/usr --sysconfdir=/etc/tripwire
+ make || return 1
+
+ # This package doesn't have a typical make install, so we do it by hand.
+ #make DESTDIR=${pkgdir} install || return 1
+
+#create var/lib directories
+ install -d ${pkgdir}/var/lib || return 1
+ install -d -m700 ${pkgdir}/var/lib/tripwire || return 1
+ install -d -m700 ${pkgdir}/var/lib/tripwire/report || return 1
+
+#install binaries
+ install -d ${pkgdir}/usr/sbin || return 1
+ install -m755 bin/siggen ${pkgdir}/usr/sbin/ || return 1
+ install -m755 bin/tripwire ${pkgdir}/usr/sbin/ || return 1
+ install -m755 bin/twadmin ${pkgdir}/usr/sbin/ || return 1
+ install -m755 bin/twprint ${pkgdir}/usr/sbin/ || return 1
+
+#copy install files for use by user after install, and fix a path
+ install -d ${pkgdir}/usr/share/$pkgname || return 1
+ install -m755 install/install.sh ${pkgdir}/usr/share/$pkgname/ || return 1
+ install -m644 install/install.cfg ${pkgdir}/usr/share/$pkgname/ || return 1
+ sed -i 's#./install/install.cfg#./install.cfg#' ${pkgdir}/usr/share/$pkgname/install.sh || return 1
+
+#install man pages - FS#13766 fixed
+ install -d ${pkgdir}/usr/share/man/{man4,man5,man8} || return 1
+ install -m644 man/man4/*.4 ${pkgdir}/usr/share/man/man4/ || return 1
+ install -m644 man/man5/*.5 ${pkgdir}/usr/share/man/man5/ || return 1
+ install -m644 man/man8/*.8 ${pkgdir}/usr/share/man/man8/ || return 1
+
+#install configuration files
+ install -d ${pkgdir}/etc/$pkgname || return 1
+ install -m644 ${srcdir}/twpol.txt ${pkgdir}/etc/tripwire/twpol.txt || return 1
+ install -m644 ${srcdir}/twcfg.txt ${pkgdir}/etc/tripwire/twcfg.txt || return 1
+}
diff --git a/community/tripwire/tripwire.install b/community/tripwire/tripwire.install
new file mode 100644
index 000000000..6eb5fd71d
--- /dev/null
+++ b/community/tripwire/tripwire.install
@@ -0,0 +1,9 @@
+# arg 1: the new package version
+post_install() {
+/bin/cat <<END
+After installing this package, edit /usr/share/tripwire/install.sh and
+/usr/share/tripwire/install.cfg to your liking, run install.sh to
+generate cryptographic keys, and run tripwire --init to initialize the
+database.
+END
+}
diff --git a/community/tripwire/twcfg.txt b/community/tripwire/twcfg.txt
new file mode 100644
index 000000000..d4392be0b
--- /dev/null
+++ b/community/tripwire/twcfg.txt
@@ -0,0 +1,15 @@
+ROOT =/usr/sbin
+POLFILE =/etc/tripwire/tw.pol
+DBFILE =/var/lib/tripwire/$(HOSTNAME).twd
+REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
+SITEKEYFILE =/etc/tripwire/site.key
+LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key
+EDITOR =/usr/bin/vi
+LATEPROMPTING =false
+LOOSEDIRECTORYCHECKING =false
+MAILNOVIOLATIONS =true
+EMAILREPORTLEVEL =3
+REPORTLEVEL =3
+MAILMETHOD =SENDMAIL
+SYSLOGREPORTING =false
+MAILPROGRAM =/usr/sbin/sendmail -oi -t
diff --git a/community/tripwire/twpol.txt b/community/tripwire/twpol.txt
new file mode 100644
index 000000000..051804889
--- /dev/null
+++ b/community/tripwire/twpol.txt
@@ -0,0 +1,1093 @@
+ ##############################################################################
+ # ##
+############################################################################## #
+# # #
+# This is the example Tripwire Policy file. It is intended as a place to # #
+# start creating your own custom Tripwire Policy file. Referring to it as # #
+# well as the Tripwire Policy Guide should give you enough information to # #
+# make a good custom Tripwire Policy file that better covers your # #
+# configuration and security needs. A text version of this policy file is # #
+# called twpol.txt. # #
+# # #
+# Note that this file is tuned to an 'everything' install of Red Hat Linux. # #
+# If run unmodified, this file should create no errors on database # #
+# creation, or violations on a subsiquent integrity check. However, it is # #
+# impossible for there to be one policy file for all machines, so this # #
+# existing one errs on the side of security. Your Linux configuration will # #
+# most likey differ from the one our policy file was tuned to, and will # #
+# therefore require some editing of the default Tripwire Policy file. # #
+# # #
+# The example policy file is best run with 'Loose Directory Checking' # #
+# enabled. Set LOOSEDIRECTORYCHECKING=TRUE in the Tripwire Configuration # #
+# file. # #
+# # #
+# Email support is not included and must be added to this file. # #
+# Add the 'emailto=' to the rule directive section of each rule (add a comma # #
+# after the 'severity=' line and add an 'emailto=' and include the email # #
+# addresses you want the violation reports to go to). Addresses are # #
+# semi-colon delimited. # #
+# ##
+##############################################################################
+
+
+
+ ##############################################################################
+ # ##
+############################################################################## #
+# # #
+# Global Variable Definitions # #
+# # #
+# These are defined at install time by the installation script. You may # #
+# Manually edit these if you are using this file directly and not from the # #
+# installation script itself. # #
+# ##
+##############################################################################
+
+@@section GLOBAL
+TWROOT=/usr/sbin;
+TWBIN=/usr/sbin;
+TWPOL="/etc/tripwire";
+TWDB="/var/lib/tripwire";
+TWSKEY="/etc/tripwire";
+TWLKEY="/etc/tripwire";
+TWREPORT="/var/lib/tripwire/report";
+HOSTNAME=localhost;
+
+@@section FS
+SEC_CRIT = $(IgnoreNone)-SHa ; # Critical files that cannot change
+SEC_SUID = $(IgnoreNone)-SHa ; # Binaries with the SUID or SGID flags set
+SEC_BIN = $(ReadOnly) ; # Binaries that should not change
+SEC_CONFIG = $(Dynamic) ; # Config files that are changed infrequently but accessed often
+SEC_LOG = $(Growing) ; # Files that grow, but that should never change ownership
+SEC_INVARIANT = +tpug ; # Directories that should never change permission or ownership
+SIG_LOW = 33 ; # Non-critical files that are of minimal security impact
+SIG_MED = 66 ; # Non-critical files that are of significant security impact
+SIG_HI = 100 ; # Critical files that are significant points of vulnerability
+
+
+# Tripwire Binaries
+(
+ rulename = "Tripwire Binaries",
+ severity = $(SIG_HI)
+)
+{
+ $(TWBIN)/siggen -> $(SEC_BIN) ;
+ $(TWBIN)/tripwire -> $(SEC_BIN) ;
+ $(TWBIN)/twadmin -> $(SEC_BIN) ;
+ $(TWBIN)/twprint -> $(SEC_BIN) ;
+}
+
+# Tripwire Data Files - Configuration Files, Policy Files, Keys, Reports, Databases
+(
+ rulename = "Tripwire Data Files",
+ severity = $(SIG_HI)
+)
+{
+ # NOTE: We remove the inode attribute because when Tripwire creates a backup,
+ # it does so by renaming the old file and creating a new one (which will
+ # have a new inode number). Inode is left turned on for keys, which shouldn't
+ # ever change.
+
+ # NOTE: The first integrity check triggers this rule and each integrity check
+ # afterward triggers this rule until a database update is run, since the
+ # database file does not exist before that point.
+
+ $(TWDB) -> $(SEC_CONFIG) -i ;
+ $(TWPOL)/tw.pol -> $(SEC_BIN) -i ;
+ $(TWPOL)/tw.cfg -> $(SEC_BIN) -i ;
+ $(TWLKEY)/$(HOSTNAME)-local.key -> $(SEC_BIN) ;
+ $(TWSKEY)/site.key -> $(SEC_BIN) ;
+
+ #don't scan the individual reports
+ $(TWREPORT) -> $(SEC_CONFIG) (recurse=0) ;
+}
+
+
+# Tripwire HQ Connector Binaries
+#(
+# rulename = "Tripwire HQ Connector Binaries",
+# severity = $(SIG_HI)
+#)
+#{
+# $(TWBIN)/hqagent -> $(SEC_BIN) ;
+#}
+#
+# Tripwire HQ Connector - Configuration Files, Keys, and Logs
+
+ ##############################################################################
+ # ##
+############################################################################## #
+# # #
+# Note: File locations here are different than in a stock HQ Connector # #
+# installation. This is because Tripwire 2.3 uses a different path # #
+# structure than Tripwire 2.2.1. # #
+# # #
+# You may need to update your HQ Agent configuation file (or this policy # #
+# file) to correct the paths. We have attempted to support the FHS standard # #
+# here by placing the HQ Agent files similarly to the way Tripwire 2.3 # #
+# places them. # #
+# ##
+##############################################################################
+
+#(
+# rulename = "Tripwire HQ Connector Data Files",
+# severity = $(SIG_HI)
+#)
+#{
+# #############################################################################
+# ##############################################################################
+# # NOTE: Removing the inode attribute because when Tripwire creates a backup ##
+# # it does so by renaming the old file and creating a new one (which will ##
+# # have a new inode number). Leaving inode turned on for keys, which ##
+# # shouldn't ever change. ##
+# #############################################################################
+#
+# $(TWBIN)/agent.cfg -> $(SEC_BIN) -i ;
+# $(TWLKEY)/authentication.key -> $(SEC_BIN) ;
+# $(TWDB)/tasks.dat -> $(SEC_CONFIG) ;
+# $(TWDB)/schedule.dat -> $(SEC_CONFIG) ;
+#
+# # Uncomment if you have agent logging enabled.
+# #/var/log/tripwire/agent.log -> $(SEC_LOG) ;
+#}
+
+
+
+# Commonly accessed directories that should remain static with regards to owner and group
+(
+ rulename = "Invariant Directories",
+ severity = $(SIG_MED)
+)
+{
+ / -> $(SEC_INVARIANT) (recurse = 0) ;
+ /home -> $(SEC_INVARIANT) (recurse = 0) ;
+ /etc -> $(SEC_INVARIANT) (recurse = 0) ;
+}
+ ################################################
+ # ##
+################################################ #
+# # #
+# File System and Disk Administration Programs # #
+# ##
+################################################
+
+(
+ rulename = "File System and Disk Administraton Programs",
+ severity = $(SIG_HI)
+)
+{
+ /sbin/accton -> $(SEC_CRIT) ;
+ /sbin/badblocks -> $(SEC_CRIT) ;
+ /sbin/busybox -> $(SEC_CRIT) ;
+ /sbin/busybox.anaconda -> $(SEC_CRIT) ;
+ /sbin/convertquota -> $(SEC_CRIT) ;
+ /sbin/dosfsck -> $(SEC_CRIT) ;
+ /sbin/debugfs -> $(SEC_CRIT) ;
+ /sbin/debugreiserfs -> $(SEC_CRIT) ;
+ /sbin/dumpe2fs -> $(SEC_CRIT) ;
+ /sbin/dump -> $(SEC_CRIT) ;
+ /sbin/dump.static -> $(SEC_CRIT) ;
+ # /sbin/e2fsadm -> $(SEC_CRIT) ; tune2fs?
+ /sbin/e2fsck -> $(SEC_CRIT) ;
+ /sbin/e2label -> $(SEC_CRIT) ;
+ /sbin/fdisk -> $(SEC_CRIT) ;
+ /sbin/fsck -> $(SEC_CRIT) ;
+ /sbin/fsck.ext2 -> $(SEC_CRIT) ;
+ /sbin/fsck.ext3 -> $(SEC_CRIT) ;
+ /sbin/fsck.minix -> $(SEC_CRIT) ;
+ /sbin/fsck.msdos -> $(SEC_CRIT) ;
+ /sbin/fsck.vfat -> $(SEC_CRIT) ;
+ /sbin/ftl_check -> $(SEC_CRIT) ;
+ /sbin/ftl_format -> $(SEC_CRIT) ;
+ /sbin/hdparm -> $(SEC_CRIT) ;
+ #/sbin/lvchange -> $(SEC_CRIT) ;
+ #/sbin/lvcreate -> $(SEC_CRIT) ;
+ #/sbin/lvdisplay -> $(SEC_CRIT) ;
+ #/sbin/lvextend -> $(SEC_CRIT) ;
+ #/sbin/lvmchange -> $(SEC_CRIT) ;
+ #/sbin/lvmcreate_initrd -> $(SEC_CRIT) ;
+ #/sbin/lvmdiskscan -> $(SEC_CRIT) ;
+ #/sbin/lvmsadc -> $(SEC_CRIT) ;
+ #/sbin/lvmsar -> $(SEC_CRIT) ;
+ #/sbin/lvreduce -> $(SEC_CRIT) ;
+ #/sbin/lvremove -> $(SEC_CRIT) ;
+ #/sbin/lvrename -> $(SEC_CRIT) ;
+ #/sbin/lvscan -> $(SEC_CRIT) ;
+ /sbin/mkbootdisk -> $(SEC_CRIT) ;
+ /sbin/mkdosfs -> $(SEC_CRIT) ;
+ /sbin/mke2fs -> $(SEC_CRIT) ;
+ /sbin/mkfs -> $(SEC_CRIT) ;
+ /sbin/mkfs.bfs -> $(SEC_CRIT) ;
+ /sbin/mkfs.ext2 -> $(SEC_CRIT) ;
+ /sbin/mkfs.minix -> $(SEC_CRIT) ;
+ /sbin/mkfs.msdos -> $(SEC_CRIT) ;
+ /sbin/mkfs.vfat -> $(SEC_CRIT) ;
+ /sbin/mkinitrd -> $(SEC_CRIT) ;
+ #/sbin/mkpv -> $(SEC_CRIT) ;
+ /sbin/mkraid -> $(SEC_CRIT) ;
+ /sbin/mkreiserfs -> $(SEC_CRIT) ;
+ /sbin/mkswap -> $(SEC_CRIT) ;
+ #/sbin/mtx -> $(SEC_CRIT) ;
+ /sbin/pam_console_apply -> $(SEC_CRIT) ;
+ /sbin/parted -> $(SEC_CRIT) ;
+ /sbin/pcinitrd -> $(SEC_CRIT) ;
+ #/sbin/pvchange -> $(SEC_CRIT) ;
+ #/sbin/pvcreate -> $(SEC_CRIT) ;
+ #/sbin/pvdata -> $(SEC_CRIT) ;
+ #/sbin/pvdisplay -> $(SEC_CRIT) ;
+ #/sbin/pvmove -> $(SEC_CRIT) ;
+ #/sbin/pvscan -> $(SEC_CRIT) ;
+ /sbin/quotacheck -> $(SEC_CRIT) ;
+ /sbin/quotaon -> $(SEC_CRIT) ;
+ /sbin/raidstart -> $(SEC_CRIT) ;
+ /sbin/reiserfsck -> $(SEC_CRIT) ;
+ /sbin/resize2fs -> $(SEC_CRIT) ;
+ /sbin/resize_reiserfs -> $(SEC_CRIT) ;
+ /sbin/restore -> $(SEC_CRIT) ;
+ /sbin/restore.static -> $(SEC_CRIT) ;
+ /sbin/scsi_info -> $(SEC_CRIT) ;
+ /sbin/sfdisk -> $(SEC_CRIT) ;
+ /sbin/stinit -> $(SEC_CRIT) ;
+ #/sbin/tapeinfo -> $(SEC_CRIT) ;
+ /sbin/tune2fs -> $(SEC_CRIT) ;
+ /sbin/unpack -> $(SEC_CRIT) ;
+ /sbin/update -> $(SEC_CRIT) ;
+ #/sbin/vgcfgbackup -> $(SEC_CRIT) ;
+ #/sbin/vgcfgrestore -> $(SEC_CRIT) ;
+ #/sbin/vgchange -> $(SEC_CRIT) ;
+ #/sbin/vgck -> $(SEC_CRIT) ;
+ #/sbin/vgcreate -> $(SEC_CRIT) ;
+ #/sbin/vgdisplay -> $(SEC_CRIT) ;
+ #/sbin/vgexport -> $(SEC_CRIT) ;
+ #/sbin/vgextend -> $(SEC_CRIT) ;
+ #/sbin/vgimport -> $(SEC_CRIT) ;
+ #/sbin/vgmerge -> $(SEC_CRIT) ;
+ #/sbin/vgmknodes -> $(SEC_CRIT) ;
+ #/sbin/vgreduce -> $(SEC_CRIT) ;
+ #/sbin/vgremove -> $(SEC_CRIT) ;
+ #/sbin/vgrename -> $(SEC_CRIT) ;
+ #/sbin/vgscan -> $(SEC_CRIT) ;
+ #/sbin/vgsplit -> $(SEC_CRIT) ;
+ /bin/chgrp -> $(SEC_CRIT) ;
+ /bin/chmod -> $(SEC_CRIT) ;
+ /bin/chown -> $(SEC_CRIT) ;
+ /bin/cp -> $(SEC_CRIT) ;
+ /bin/cpio -> $(SEC_CRIT) ;
+ /bin/mount -> $(SEC_CRIT) ;
+ /bin/umount -> $(SEC_CRIT) ;
+ /bin/mkdir -> $(SEC_CRIT) ;
+ /bin/mknod -> $(SEC_CRIT) ;
+ /bin/mktemp -> $(SEC_CRIT) ;
+ /bin/rm -> $(SEC_CRIT) ;
+ /bin/rmdir -> $(SEC_CRIT) ;
+ /bin/touch -> $(SEC_CRIT) ;
+}
+
+ ##################################
+ # ##
+################################## #
+# # #
+# Kernel Administration Programs # #
+# ##
+##################################
+
+(
+ rulename = "Kernel Administration Programs",
+ severity = $(SIG_HI)
+)
+{
+ /sbin/adjtimex -> $(SEC_CRIT) ;
+ /sbin/ctrlaltdel -> $(SEC_CRIT) ;
+ /sbin/depmod -> $(SEC_CRIT) ;
+ /sbin/insmod -> $(SEC_CRIT) ;
+ /sbin/insmod.static -> $(SEC_CRIT) ;
+ /sbin/insmod_ksymoops_clean -> $(SEC_CRIT) ;
+ /sbin/klogd -> $(SEC_CRIT) ;
+ /sbin/ldconfig -> $(SEC_CRIT) ;
+ /sbin/minilogd -> $(SEC_CRIT) ;
+ /sbin/modinfo -> $(SEC_CRIT) ;
+ #/sbin/nuactlun -> $(SEC_CRIT) ;
+ #/sbin/nuscsitcpd -> $(SEC_CRIT) ;
+ /sbin/pivot_root -> $(SEC_CRIT) ;
+ /sbin/sndconfig -> $(SEC_CRIT) ;
+ /sbin/sysctl -> $(SEC_CRIT) ;
+}
+
+ #######################
+ # ##
+####################### #
+# # #
+# Networking Programs # #
+# ##
+#######################
+
+(
+ rulename = "Networking Programs",
+ severity = $(SIG_HI)
+)
+{
+ /etc/sysconfig/network-scripts/ifdown -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-cipcb -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-ippp -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-ipv6 -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-isdn -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-post -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-ppp -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-sit -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifdown-sl -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-aliases -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-cipcb -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-ippp -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-ipv6 -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-isdn -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-plip -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-plusb -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-post -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-ppp -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-routes -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-sit -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-sl -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/ifup-wireless -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/network-functions -> $(SEC_CRIT) ;
+ /etc/sysconfig/network-scripts/network-functions-ipv6 -> $(SEC_CRIT) ;
+ /bin/ping -> $(SEC_CRIT) ;
+ /sbin/agetty -> $(SEC_CRIT) ;
+ /sbin/arp -> $(SEC_CRIT) ;
+ /sbin/arping -> $(SEC_CRIT) ;
+ /sbin/dhcpcd -> $(SEC_CRIT) ;
+ /sbin/ether-wake -> $(SEC_CRIT) ;
+ #/sbin/getty -> $(SEC_CRIT) ;
+ /sbin/ifcfg -> $(SEC_CRIT) ;
+ /sbin/ifconfig -> $(SEC_CRIT) ;
+ /sbin/ifdown -> $(SEC_CRIT) ;
+ /sbin/ifenslave -> $(SEC_CRIT) ;
+ /sbin/ifport -> $(SEC_CRIT) ;
+ /sbin/ifup -> $(SEC_CRIT) ;
+ /sbin/ifuser -> $(SEC_CRIT) ;
+ /sbin/ip -> $(SEC_CRIT) ;
+ /sbin/ip6tables -> $(SEC_CRIT) ;
+ /sbin/ipchains -> $(SEC_CRIT) ;
+ /sbin/ipchains-restore -> $(SEC_CRIT) ;
+ /sbin/ipchains-save -> $(SEC_CRIT) ;
+ /sbin/ipfwadm -> $(SEC_CRIT) ;
+ /sbin/ipmaddr -> $(SEC_CRIT) ;
+ /sbin/iptables -> $(SEC_CRIT) ;
+ /sbin/iptables-restore -> $(SEC_CRIT) ;
+ /sbin/iptables-save -> $(SEC_CRIT) ;
+ /sbin/iptunnel -> $(SEC_CRIT) ;
+ /sbin/ipvsadm -> $(SEC_CRIT) ;
+ /sbin/ipvsadm-restore -> $(SEC_CRIT) ;
+ /sbin/ipvsadm-save -> $(SEC_CRIT) ;
+ /sbin/ipx_configure -> $(SEC_CRIT) ;
+ /sbin/ipx_interface -> $(SEC_CRIT) ;
+ /sbin/ipx_internal_net -> $(SEC_CRIT) ;
+ /sbin/iwconfig -> $(SEC_CRIT) ;
+ /sbin/iwgetid -> $(SEC_CRIT) ;
+ /sbin/iwlist -> $(SEC_CRIT) ;
+ /sbin/iwpriv -> $(SEC_CRIT) ;
+ /sbin/iwspy -> $(SEC_CRIT) ;
+ /sbin/mgetty -> $(SEC_CRIT) ;
+ /sbin/mingetty -> $(SEC_CRIT) ;
+ /sbin/nameif -> $(SEC_CRIT) ;
+ /sbin/netreport -> $(SEC_CRIT) ;
+ /sbin/plipconfig -> $(SEC_CRIT) ;
+ /sbin/portmap -> $(SEC_CRIT) ;
+ /sbin/ppp-watch -> $(SEC_CRIT) ;
+ #/sbin/rarp -> $(SEC_CRIT) ;
+ /sbin/route -> $(SEC_CRIT) ;
+ /sbin/slattach -> $(SEC_CRIT) ;
+ /sbin/tc -> $(SEC_CRIT) ;
+ #/sbin/uugetty -> $(SEC_CRIT) ;
+ /sbin/vgetty -> $(SEC_CRIT) ;
+ /sbin/ypbind -> $(SEC_CRIT) ;
+}
+
+ ##################################
+ # ##
+################################## #
+# # #
+# System Administration Programs # #
+# ##
+##################################
+
+(
+ rulename = "System Administration Programs",
+ severity = $(SIG_HI)
+)
+{
+ /sbin/chkconfig -> $(SEC_CRIT) ;
+ /sbin/fuser -> $(SEC_CRIT) ;
+ /sbin/halt -> $(SEC_CRIT) ;
+ /sbin/init -> $(SEC_CRIT) ;
+ /sbin/initlog -> $(SEC_CRIT) ;
+ /sbin/install-info -> $(SEC_CRIT) ;
+ /sbin/killall5 -> $(SEC_CRIT) ;
+ #/sbin/linuxconf -> $(SEC_CRIT) ;
+ #/sbin/linuxconf-auth -> $(SEC_CRIT) ;
+ /sbin/pam_tally -> $(SEC_CRIT) ;
+ /sbin/pwdb_chkpwd -> $(SEC_CRIT) ;
+ #/sbin/remadmin -> $(SEC_CRIT) ;
+ /sbin/rescuept -> $(SEC_CRIT) ;
+ /sbin/rmt -> $(SEC_CRIT) ;
+ /sbin/rpc.lockd -> $(SEC_CRIT) ;
+ /sbin/rpc.statd -> $(SEC_CRIT) ;
+ /sbin/rpcdebug -> $(SEC_CRIT) ;
+ /sbin/service -> $(SEC_CRIT) ;
+ /sbin/setsysfont -> $(SEC_CRIT) ;
+ /sbin/shutdown -> $(SEC_CRIT) ;
+ /sbin/sulogin -> $(SEC_CRIT) ;
+ /sbin/swapon -> $(SEC_CRIT) ;
+ /sbin/syslogd -> $(SEC_CRIT) ;
+ /sbin/unix_chkpwd -> $(SEC_CRIT) ;
+ /bin/pwd -> $(SEC_CRIT) ;
+ /bin/uname -> $(SEC_CRIT) ;
+}
+
+ ########################################
+ # ##
+######################################## #
+# # #
+# Hardware and Device Control Programs # #
+# ##
+########################################
+(
+ rulename = "Hardware and Device Control Programs",
+ severity = $(SIG_HI)
+)
+{
+ /bin/setserial -> $(SEC_CRIT) ;
+ /bin/sfxload -> $(SEC_CRIT) ;
+ /sbin/blockdev -> $(SEC_CRIT) ;
+ /sbin/cardctl -> $(SEC_CRIT) ;
+ /sbin/cardmgr -> $(SEC_CRIT) ;
+ /sbin/cbq -> $(SEC_CRIT) ;
+ /sbin/dump_cis -> $(SEC_CRIT) ;
+ /sbin/elvtune -> $(SEC_CRIT) ;
+ /sbin/hotplug -> $(SEC_CRIT) ;
+ /sbin/hwclock -> $(SEC_CRIT) ;
+ /sbin/ide_info -> $(SEC_CRIT) ;
+ #/sbin/isapnp -> $(SEC_CRIT) ;
+ #/sbin/kbdrate -> $(SEC_CRIT) ;
+ /sbin/losetup -> $(SEC_CRIT) ;
+ /sbin/lspci -> $(SEC_CRIT) ;
+ /sbin/lspnp -> $(SEC_CRIT) ;
+ /sbin/mii-tool -> $(SEC_CRIT) ;
+ /sbin/pack_cis -> $(SEC_CRIT) ;
+ #/sbin/pnpdump -> $(SEC_CRIT) ;
+ /sbin/probe -> $(SEC_CRIT) ;
+ #/sbin/pump -> $(SEC_CRIT) ;
+ /sbin/setpci -> $(SEC_CRIT) ;
+ /sbin/shapecfg -> $(SEC_CRIT) ;
+}
+
+ ###############################
+ # ##
+############################### #
+# # #
+# System Information Programs # #
+# ##
+###############################
+(
+ rulename = "System Information Programs",
+ severity = $(SIG_HI)
+)
+{
+ /sbin/consoletype -> $(SEC_CRIT) ;
+ /sbin/kernelversion -> $(SEC_CRIT) ;
+ /sbin/runlevel -> $(SEC_CRIT) ;
+}
+
+ ####################################
+ # ##
+#################################### #
+# # #
+# Application Information Programs # #
+# ##
+####################################
+
+(
+ rulename = "Application Information Programs",
+ severity = $(SIG_HI)
+)
+{
+ /sbin/genksyms -> $(SEC_CRIT) ;
+ #/sbin/genksyms.old -> $(SEC_CRIT) ;
+ /sbin/rtmon -> $(SEC_CRIT) ;
+}
+
+ ##########################
+ # ##
+########################## #
+# # #
+# Shell Related Programs # #
+# ##
+##########################
+(
+ rulename = "Shell Related Programs",
+ severity = $(SIG_HI)
+)
+{
+ /sbin/getkey -> $(SEC_CRIT) ;
+ /sbin/nash -> $(SEC_CRIT) ;
+ /sbin/sash -> $(SEC_CRIT) ;
+}
+
+
+ ################
+ # ##
+################ #
+# # #
+# OS Utilities # #
+# ##
+################
+(
+ rulename = "Operating System Utilities",
+ severity = $(SIG_HI)
+)
+{
+ /bin/arch -> $(SEC_CRIT) ;
+ /bin/ash -> $(SEC_CRIT) ;
+ /bin/ash.static -> $(SEC_CRIT) ;
+ /bin/aumix-minimal -> $(SEC_CRIT) ;
+ /bin/basename -> $(SEC_CRIT) ;
+ /bin/cat -> $(SEC_CRIT) ;
+ #/bin/consolechars -> $(SEC_CRIT) ;
+ /bin/cut -> $(SEC_CRIT) ;
+ /bin/date -> $(SEC_CRIT) ;
+ /bin/dd -> $(SEC_CRIT) ;
+ /bin/df -> $(SEC_CRIT) ;
+ /bin/dmesg -> $(SEC_CRIT) ;
+ /bin/doexec -> $(SEC_CRIT) ;
+ /bin/echo -> $(SEC_CRIT) ;
+ /bin/ed -> $(SEC_CRIT) ;
+ /bin/egrep -> $(SEC_CRIT) ;
+ /bin/false -> $(SEC_CRIT) ;
+ /bin/fgrep -> $(SEC_CRIT) ;
+ /bin/gawk -> $(SEC_CRIT) ;
+ /bin/gawk-3.1.0 -> $(SEC_CRIT) ;
+ /bin/gettext -> $(SEC_CRIT) ;
+ /bin/grep -> $(SEC_CRIT) ;
+ /bin/gunzip -> $(SEC_CRIT) ;
+ /bin/gzip -> $(SEC_CRIT) ;
+ /bin/hostname -> $(SEC_CRIT) ;
+ /bin/igawk -> $(SEC_CRIT) ;
+ /bin/ipcalc -> $(SEC_CRIT) ;
+ /bin/kill -> $(SEC_CRIT) ;
+ /bin/ln -> $(SEC_CRIT) ;
+ /bin/loadkeys -> $(SEC_CRIT) ;
+ /bin/login -> $(SEC_CRIT) ;
+ /bin/ls -> $(SEC_CRIT) ;
+ /bin/mail -> $(SEC_CRIT) ;
+ /bin/more -> $(SEC_CRIT) ;
+ /bin/mt -> $(SEC_CRIT) ;
+ /bin/mv -> $(SEC_CRIT) ;
+ /bin/netstat -> $(SEC_CRIT) ;
+ /bin/nice -> $(SEC_CRIT) ;
+ /bin/pgawk -> $(SEC_CRIT) ;
+ /bin/ps -> $(SEC_CRIT) ;
+ /bin/rpm -> $(SEC_CRIT) ;
+ /bin/sed -> $(SEC_CRIT) ;
+ /bin/sleep -> $(SEC_CRIT) ;
+ /bin/sort -> $(SEC_CRIT) ;
+ /bin/stty -> $(SEC_CRIT) ;
+ /bin/su -> $(SEC_CRIT) ;
+ /bin/sync -> $(SEC_CRIT) ;
+ /bin/tar -> $(SEC_CRIT) ;
+ /bin/true -> $(SEC_CRIT) ;
+ /bin/usleep -> $(SEC_CRIT) ;
+ /bin/vi -> $(SEC_CRIT) ;
+ /bin/zcat -> $(SEC_CRIT) ;
+ /bin/zsh -> $(SEC_CRIT) ;
+ /bin/zsh-4.0.2 -> $(SEC_CRIT) ;
+ /sbin/sln -> $(SEC_CRIT) ;
+ /usr/bin/vimtutor -> $(SEC_CRIT) ;
+}
+
+ ##############################
+ # ##
+############################## #
+# # #
+# Critical Utility Sym-Links # #
+# ##
+##############################
+(
+ rulename = "Critical Utility Sym-Links",
+ severity = $(SIG_HI)
+)
+{
+ #/sbin/askrunlevel -> $(SEC_CRIT) ;
+ /sbin/clock -> $(SEC_CRIT) ;
+ #/sbin/fixperm -> $(SEC_CRIT) ;
+ /sbin/fsck.reiserfs -> $(SEC_CRIT) ;
+ #/sbin/fsconf -> $(SEC_CRIT) ;
+ /sbin/ipfwadm-wrapper -> $(SEC_CRIT) ;
+ /sbin/kallsyms -> $(SEC_CRIT) ;
+ /sbin/ksyms -> $(SEC_CRIT) ;
+ /sbin/lsmod -> $(SEC_CRIT) ;
+ #/sbin/mailconf -> $(SEC_CRIT) ;
+ /sbin/mkfs.reiserfs -> $(SEC_CRIT) ;
+ #/sbin/modemconf -> $(SEC_CRIT) ;
+ /sbin/modprobe -> $(SEC_CRIT) ;
+ /sbin/mount.ncp -> $(SEC_CRIT) ;
+ /sbin/mount.ncpfs -> $(SEC_CRIT) ;
+ /sbin/mount.smb -> $(SEC_CRIT) ;
+ /sbin/mount.smbfs -> $(SEC_CRIT) ;
+ #/sbin/netconf -> $(SEC_CRIT) ;
+ /sbin/pidof -> $(SEC_CRIT) ;
+ /sbin/poweroff -> $(SEC_CRIT) ;
+ /sbin/quotaoff -> $(SEC_CRIT) ;
+ /sbin/raid0run -> $(SEC_CRIT) ;
+ /sbin/raidhotadd -> $(SEC_CRIT) ;
+ /sbin/raidhotgenerateerror -> $(SEC_CRIT) ;
+ /sbin/raidhotremove -> $(SEC_CRIT) ;
+ /sbin/raidstop -> $(SEC_CRIT) ;
+ /sbin/rdump -> $(SEC_CRIT) ;
+ /sbin/rdump.static -> $(SEC_CRIT) ;
+ /sbin/reboot -> $(SEC_CRIT) ;
+ /sbin/rmmod -> $(SEC_CRIT) ;
+ /sbin/rrestore -> $(SEC_CRIT) ;
+ /sbin/rrestore.static -> $(SEC_CRIT) ;
+ /sbin/swapoff -> $(SEC_CRIT) ;
+ /sbin/telinit -> $(SEC_CRIT) ;
+ #/sbin/userconf -> $(SEC_CRIT) ;
+ #/sbin/uucpconf -> $(SEC_CRIT) ;
+ #/sbin/vregistry -> $(SEC_CRIT) ;
+ /bin/awk -> $(SEC_CRIT) ;
+ /bin/bash2 -> $(SEC_CRIT) ;
+ /bin/bsh -> $(SEC_CRIT) ;
+ /bin/csh -> $(SEC_CRIT) ;
+ /bin/dnsdomainname -> $(SEC_CRIT) ;
+ /bin/domainname -> $(SEC_CRIT) ;
+ /bin/ex -> $(SEC_CRIT) ;
+ /bin/gtar -> $(SEC_CRIT) ;
+ /bin/nisdomainname -> $(SEC_CRIT) ;
+ /bin/red -> $(SEC_CRIT) ;
+ /bin/rvi -> $(SEC_CRIT) ;
+ /bin/rview -> $(SEC_CRIT) ;
+ /bin/view -> $(SEC_CRIT) ;
+ /bin/ypdomainname -> $(SEC_CRIT) ;
+}
+
+
+ #########################
+ # ##
+######################### #
+# # #
+# Temporary directories # #
+# ##
+#########################
+(
+ rulename = "Temporary directories",
+ recurse = false,
+ severity = $(SIG_LOW)
+)
+{
+ /usr/tmp -> $(SEC_INVARIANT) ;
+ /var/tmp -> $(SEC_INVARIANT) ;
+ /tmp -> $(SEC_INVARIANT) ;
+}
+
+ ###############
+ # ##
+############### #
+# # #
+# Local files # #
+# ##
+###############
+(
+ rulename = "User binaries",
+ severity = $(SIG_MED)
+)
+{
+ /sbin -> $(SEC_BIN) (recurse = 1) ;
+ /usr/bin -> $(SEC_BIN) (recurse = 1) ;
+ /usr/sbin -> $(SEC_BIN) (recurse = 1) ;
+ /usr/local/bin -> $(SEC_BIN) (recurse = 1) ;
+}
+
+(
+ rulename = "Shell Binaries",
+ severity = $(SIG_HI)
+)
+{
+ /bin/bash -> $(SEC_BIN) ;
+ /bin/ksh -> $(SEC_BIN) ;
+ # /bin/psh -> $(SEC_BIN) ; # No longer used?
+ # /bin/Rsh -> $(SEC_BIN) ; # No longer used?
+ /bin/sh -> $(SEC_BIN) ;
+ # /bin/shell -> $(SEC_SUID) ; # No longer used?
+ # /bin/tsh -> $(SEC_BIN) ; # No longer used?
+ /bin/tcsh -> $(SEC_BIN) ;
+ /sbin/nologin -> $(SEC_BIN) ;
+}
+
+(
+ rulename = "Security Control",
+ severity = $(SIG_HI)
+)
+{
+ /etc/group -> $(SEC_CRIT) ;
+ /etc/security -> $(SEC_CRIT) ;
+ #/var/spool/cron/crontabs -> $(SEC_CRIT) ; # Uncomment when this file exists
+}
+
+#(
+# rulename = "Boot Scripts",
+# severity = $(SIG_HI)
+#)
+#{
+# /etc/rc -> $(SEC_CONFIG) ;
+# /etc/rc.bsdnet -> $(SEC_CONFIG) ;
+# /etc/rc.dt -> $(SEC_CONFIG) ;
+# /etc/rc.net -> $(SEC_CONFIG) ;
+# /etc/rc.net.serial -> $(SEC_CONFIG) ;
+# /etc/rc.nfs -> $(SEC_CONFIG) ;
+# /etc/rc.powerfail -> $(SEC_CONFIG) ;
+# /etc/rc.tcpip -> $(SEC_CONFIG) ;
+# /etc/trcfmt.Z -> $(SEC_CONFIG) ;
+#}
+
+(
+ rulename = "Login Scripts",
+ severity = $(SIG_HI)
+)
+{
+ /etc/bashrc -> $(SEC_CONFIG) ;
+ /etc/csh.cshrc -> $(SEC_CONFIG) ;
+ /etc/csh.login -> $(SEC_CONFIG) ;
+ /etc/inputrc -> $(SEC_CONFIG) ;
+ # /etc/tsh_profile -> $(SEC_CONFIG) ; #Uncomment when this file exists
+ /etc/profile -> $(SEC_CONFIG) ;
+}
+
+# Libraries
+(
+ rulename = "Libraries",
+ severity = $(SIG_MED)
+)
+{
+ /usr/lib -> $(SEC_BIN) ;
+ /usr/local/lib -> $(SEC_BIN) ;
+}
+
+
+ ######################################################
+ # ##
+###################################################### #
+# # #
+# Critical System Boot Files # #
+# These files are critical to a correct system boot. # #
+# ##
+######################################################
+
+(
+ rulename = "Critical system boot files",
+ severity = $(SIG_HI)
+)
+{
+ /boot -> $(SEC_CRIT) ;
+ #/sbin/devfsd -> $(SEC_CRIT) ;
+ /sbin/grub -> $(SEC_CRIT) ;
+ /sbin/grub-install -> $(SEC_CRIT) ;
+ /sbin/grub-md5-crypt -> $(SEC_CRIT) ;
+ /sbin/installkernel -> $(SEC_CRIT) ;
+ /sbin/lilo -> $(SEC_CRIT) ;
+ /sbin/mkkerneldoth -> $(SEC_CRIT) ;
+ !/boot/System.map ;
+ !/boot/module-info ;
+ /usr/share/grub/i386-redhat/e2fs_stage1_5 -> $(SEC_CRIT) ;
+ /usr/share/grub/i386-redhat/fat_stage1_5 -> $(SEC_CRIT) ;
+ /usr/share/grub/i386-redhat/ffs_stage1_5 -> $(SEC_CRIT) ;
+ /usr/share/grub/i386-redhat/minix_stage1_5 -> $(SEC_CRIT) ;
+ /usr/share/grub/i386-redhat/reiserfs_stage1_5 -> $(SEC_CRIT) ;
+ /usr/share/grub/i386-redhat/stage1 -> $(SEC_CRIT) ;
+ /usr/share/grub/i386-redhat/stage2 -> $(SEC_CRIT) ;
+ /usr/share/grub/i386-redhat/vstafs_stage1_5 -> $(SEC_CRIT) ;
+ # other boot files may exist. Look for:
+ #/ufsboot -> $(SEC_CRIT) ;
+}
+ ##################################################
+ ###################################################
+ # These files change every time the system boots ##
+ ##################################################
+(
+ rulename = "System boot changes",
+ severity = $(SIG_HI)
+)
+{
+ !/var/run/ftp.pids-all ; # Comes and goes on reboot.
+ !/root/.enlightenment ;
+ /dev/log -> $(SEC_CONFIG) ;
+ /dev/cua0 -> $(SEC_CONFIG) ;
+ # /dev/printer -> $(SEC_CONFIG) ; # Uncomment if you have a printer device
+ /dev/console -> $(SEC_CONFIG) -u ; # User ID may change on console login/logout.
+ /dev/tty1 -> $(SEC_CONFIG) ; # tty devices
+ /dev/tty2 -> $(SEC_CONFIG) ; # tty devices
+ /dev/tty3 -> $(SEC_CONFIG) ; # are extremely
+ /dev/tty4 -> $(SEC_CONFIG) ; # variable
+ /dev/tty5 -> $(SEC_CONFIG) ;
+ /dev/tty6 -> $(SEC_CONFIG) ;
+ /dev/urandom -> $(SEC_CONFIG) ;
+ /dev/initctl -> $(SEC_CONFIG) ;
+ /var/lock/subsys -> $(SEC_CONFIG) ;
+ /var/lock/subsys/amd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/anacron -> $(SEC_CONFIG) ;
+ /var/lock/subsys/apmd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/arpwatch -> $(SEC_CONFIG) ;
+ /var/lock/subsys/atd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/autofs -> $(SEC_CONFIG) ;
+ /var/lock/subsys/bcm5820 -> $(SEC_CONFIG) ;
+ /var/lock/subsys/bgpd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/bootparamd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/canna -> $(SEC_CONFIG) ;
+ /var/lock/subsys/crond -> $(SEC_CONFIG) ;
+ /var/lock/subsys/cWnn -> $(SEC_CONFIG) ;
+ /var/lock/subsys/dhcpd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/firewall -> $(SEC_CONFIG) ;
+ /var/lock/subsys/freeWnn -> $(SEC_CONFIG) ;
+ /var/lock/subsys/gated -> $(SEC_CONFIG) ;
+ /var/lock/subsys/gpm -> $(SEC_CONFIG) ;
+ /var/lock/subsys/httpd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/identd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/innd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ipchains -> $(SEC_CONFIG) ;
+ /var/lock/subsys/iptables -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ipvsadm -> $(SEC_CONFIG) ;
+ /var/lock/subsys/irda -> $(SEC_CONFIG) ;
+ /var/lock/subsys/iscsi -> $(SEC_CONFIG) ;
+ /var/lock/subsys/isdn -> $(SEC_CONFIG) ;
+ /var/lock/subsys/junkbuster -> $(SEC_CONFIG) ;
+ /var/lock/subsys/kadmin -> $(SEC_CONFIG) ;
+ /var/lock/subsys/keytable -> $(SEC_CONFIG) ;
+ /var/lock/subsys/kprop -> $(SEC_CONFIG) ;
+ /var/lock/subsys/krb524 -> $(SEC_CONFIG) ;
+ /var/lock/subsys/krb5kdc -> $(SEC_CONFIG) ;
+ /var/lock/subsys/kudzu -> $(SEC_CONFIG) ;
+ /var/lock/subsys/kWnn -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ldap -> $(SEC_CONFIG) ;
+ /var/lock/subsys/linuxconf -> $(SEC_CONFIG) ;
+ /var/lock/subsys/lpd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/mars_nwe -> $(SEC_CONFIG) ;
+ /var/lock/subsys/mcserv -> $(SEC_CONFIG) ;
+ /var/lock/subsys/mysqld -> $(SEC_CONFIG) ;
+ /var/lock/subsys/named -> $(SEC_CONFIG) ;
+ /var/lock/subsys/netfs -> $(SEC_CONFIG) ;
+ /var/lock/subsys/network -> $(SEC_CONFIG) ;
+ /var/lock/subsys/nfs -> $(SEC_CONFIG) ;
+ /var/lock/subsys/nfslock -> $(SEC_CONFIG) ;
+ /var/lock/subsys/nscd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ntpd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ospf6d -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ospfd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/pcmcia -> $(SEC_CONFIG) ;
+ /var/lock/subsys/portmap -> $(SEC_CONFIG) ;
+ /var/lock/subsys/postgresql -> $(SEC_CONFIG) ;
+ /var/lock/subsys/pxe -> $(SEC_CONFIG) ;
+ /var/lock/subsys/radvd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/random -> $(SEC_CONFIG) ;
+ /var/lock/subsys/rarpd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/reconfig -> $(SEC_CONFIG) ;
+ /var/lock/subsys/rhnsd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ripd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ripngd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/routed -> $(SEC_CONFIG) ;
+ /var/lock/subsys/rstatd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/rusersd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/rwalld -> $(SEC_CONFIG) ;
+ /var/lock/subsys/rwhod -> $(SEC_CONFIG) ;
+ /var/lock/subsys/sendmail -> $(SEC_CONFIG) ;
+ /var/lock/subsys/smb -> $(SEC_CONFIG) ;
+ /var/lock/subsys/snmpd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/squid -> $(SEC_CONFIG) ;
+ /var/lock/subsys/sshd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/syslog -> $(SEC_CONFIG) ;
+ /var/lock/subsys/tux -> $(SEC_CONFIG) ;
+ /var/lock/subsys/tWnn -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ups -> $(SEC_CONFIG) ;
+ /var/lock/subsys/vncserver -> $(SEC_CONFIG) ;
+ /var/lock/subsys/wine -> $(SEC_CONFIG) ;
+ /var/lock/subsys/xfs -> $(SEC_CONFIG) ;
+ /var/lock/subsys/xinetd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ypbind -> $(SEC_CONFIG) ;
+ /var/lock/subsys/yppasswdd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ypserv -> $(SEC_CONFIG) ;
+ /var/lock/subsys/ypxfrd -> $(SEC_CONFIG) ;
+ /var/lock/subsys/zebra -> $(SEC_CONFIG) ;
+ /var/run -> $(SEC_CONFIG) ;
+ /var/log -> $(SEC_CONFIG) ;
+ /etc/ioctl.save -> $(SEC_CONFIG) ;
+ /etc/issue.net -> $(SEC_CONFIG) -i ; # Inode number changes
+ /etc/issue -> $(SEC_CONFIG) ;
+ /etc/mtab -> $(SEC_CONFIG) -i ; # Inode number changes on any mount/unmount
+ /lib/modules -> $(SEC_CONFIG) ;
+ /etc/.pwd.lock -> $(SEC_CONFIG) ;
+ # /lib/modules/preferred -> $(SEC_CONFIG) ; #Uncomment when this file exists
+}
+
+# These files change the behavior of the root account
+(
+ rulename = "Root config files",
+ severity = 100
+)
+{
+ /root -> $(SEC_CRIT) ; # Catch all additions to /root
+ /root/.Xresources -> $(SEC_CONFIG) ;
+ /root/.bashrc -> $(SEC_CONFIG) ;
+ /root/.bash_profile -> $(SEC_CONFIG) ;
+ /root/.bash_logout -> $(SEC_CONFIG) ;
+ /root/.cshrc -> $(SEC_CONFIG) ;
+ /root/.tcshrc -> $(SEC_CONFIG) ;
+ #/root/Mail -> $(SEC_CONFIG) ;
+ #/root/mail -> $(SEC_CONFIG) ;
+ #/root/.amandahosts -> $(SEC_CONFIG) ;
+ #/root/.addressbook.lu -> $(SEC_CONFIG) ;
+ #/root/.addressbook -> $(SEC_CONFIG) ;
+ /root/.bash_history -> $(SEC_CONFIG) ;
+ #/root/.elm -> $(SEC_CONFIG) ;
+ /root/.esd_auth -> $(SEC_CONFIG) ;
+ /root/.gnome_private -> $(SEC_CONFIG) ;
+ /root/.gnome-desktop -> $(SEC_CONFIG) ;
+ /root/.gnome -> $(SEC_CONFIG) ;
+ /root/.ICEauthority -> $(SEC_CONFIG) ;
+ #/root/.mc -> $(SEC_CONFIG) ;
+ #/root/.pinerc -> $(SEC_CONFIG) ;
+ #/root/.sawfish -> $(SEC_CONFIG) ;
+ /root/.Xauthority -> $(SEC_CONFIG) -i ; # Changes Inode number on login
+ #/root/.xauth -> $(SEC_CONFIG) ;
+ #/root/.xsession-errors -> $(SEC_CONFIG) ;
+}
+
+ ################################
+ # ##
+################################ #
+# # #
+# Critical configuration files # #
+# ##
+################################
+(
+ rulename = "Critical configuration files",
+ severity = $(SIG_HI)
+)
+{
+ #/etc/conf.linuxconf -> $(SEC_BIN) ;
+ /etc/crontab -> $(SEC_BIN) ;
+ /etc/cron.hourly -> $(SEC_BIN) ;
+ /etc/cron.daily -> $(SEC_BIN) ;
+ /etc/cron.weekly -> $(SEC_BIN) ;
+ /etc/cron.monthly -> $(SEC_BIN) ;
+ /etc/default -> $(SEC_BIN) ;
+ /etc/fstab -> $(SEC_BIN) ;
+ /etc/exports -> $(SEC_BIN) ;
+ /etc/group- -> $(SEC_BIN) ; # changes should be infrequent
+ /etc/host.conf -> $(SEC_BIN) ;
+ /etc/hosts.allow -> $(SEC_BIN) ;
+ /etc/hosts.deny -> $(SEC_BIN) ;
+ /etc/httpd/conf -> $(SEC_BIN) ; # changes should be infrequent
+ /etc/protocols -> $(SEC_BIN) ;
+ /etc/services -> $(SEC_BIN) ;
+ /etc/rc.d/init.d -> $(SEC_BIN) ;
+ /etc/rc.d -> $(SEC_BIN) ;
+ /etc/mail.rc -> $(SEC_BIN) ;
+ /etc/modules.conf -> $(SEC_BIN) ;
+ /etc/motd -> $(SEC_BIN) ;
+ /etc/named.conf -> $(SEC_BIN) ;
+ /etc/passwd -> $(SEC_CONFIG) ;
+ /etc/passwd- -> $(SEC_CONFIG) ;
+ /etc/profile.d -> $(SEC_BIN) ;
+ /var/lib/nfs/rmtab -> $(SEC_BIN) ;
+ /usr/sbin/fixrmtab -> $(SEC_BIN) ;
+ /etc/rpc -> $(SEC_BIN) ;
+ /etc/sysconfig -> $(SEC_BIN) ;
+ /etc/samba/smb.conf -> $(SEC_CONFIG) ;
+ #/etc/gettydefs -> $(SEC_BIN) ;
+ /etc/nsswitch.conf -> $(SEC_BIN) ;
+ /etc/yp.conf -> $(SEC_BIN) ;
+ /etc/hosts -> $(SEC_CONFIG) ;
+ /etc/xinetd.conf -> $(SEC_CONFIG) ;
+ /etc/inittab -> $(SEC_CONFIG) ;
+ /etc/resolv.conf -> $(SEC_CONFIG) ;
+ /etc/syslog.conf -> $(SEC_CONFIG) ;
+}
+
+ ####################
+ # ##
+#################### #
+# # #
+# Critical devices # #
+# ##
+####################
+(
+ rulename = "Critical devices",
+ severity = $(SIG_HI),
+ recurse = false
+)
+{
+ /dev/kmem -> $(Device) ;
+ /dev/mem -> $(Device) ;
+ /dev/null -> $(Device) ;
+ /dev/zero -> $(Device) ;
+ /proc/devices -> $(Device) ;
+ /proc/net -> $(Device) ;
+ /proc/sys -> $(Device) ;
+ /proc/cpuinfo -> $(Device) ;
+ /proc/modules -> $(Device) ;
+ /proc/mounts -> $(Device) ;
+ /proc/dma -> $(Device) ;
+ /proc/filesystems -> $(Device) ;
+ /proc/pci -> $(Device) ;
+ /proc/interrupts -> $(Device) ;
+ /proc/driver/rtc -> $(Device) ;
+ /proc/ioports -> $(Device) ;
+ /proc/scsi -> $(Device) ;
+ /proc/kcore -> $(Device) ;
+ /proc/self -> $(Device) ;
+ /proc/kmsg -> $(Device) ;
+ /proc/stat -> $(Device) ;
+ /proc/ksyms -> $(Device) ;
+ /proc/loadavg -> $(Device) ;
+ /proc/uptime -> $(Device) ;
+ /proc/locks -> $(Device) ;
+ /proc/version -> $(Device) ;
+ /proc/mdstat -> $(Device) ;
+ /proc/meminfo -> $(Device) ;
+ /proc/cmdline -> $(Device) ;
+ /proc/misc -> $(Device) ;
+}
+
+# Rest of critical system binaries
+(
+ rulename = "OS executables and libraries",
+ severity = $(SIG_HI)
+)
+{
+ /bin -> $(SEC_BIN) ;
+ /lib -> $(SEC_BIN) ;
+}
+
+#=============================================================================
+#
+# Copyright 2000 Tripwire, Inc. Tripwire is a registered trademark of Tripwire,
+# Inc. in the United States and other countries. All rights reserved.
+#
+# Linux is a registered trademark of Linus Torvalds.
+#
+# UNIX is a registered trademark of The Open Group.
+#
+#=============================================================================
+#
+# Permission is granted to make and distribute verbatim copies of this document
+# provided the copyright notice and this permission notice are preserved on all
+# copies.
+#
+# Permission is granted to copy and distribute modified versions of this
+# document under the conditions for verbatim copying, provided that the entire
+# resulting derived work is distributed under the terms of a permission notice
+# identical to this one.
+#
+# Permission is granted to copy and distribute translations of this document
+# into another language, under the above conditions for modified versions,
+# except that this permission notice may be stated in a translation approved by
+# Tripwire, Inc.
+#
+# DCM
diff --git a/community/tucan/PKGBUILD b/community/tucan/PKGBUILD
new file mode 100644
index 000000000..5dd2d1a95
--- /dev/null
+++ b/community/tucan/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Raul Pons Lopez <raulponslopez+aur {at} gmail {dot} com>
+
+pkgname=tucan
+pkgver=0.3.10
+pkgrel=1
+pkgdesc='Download and upload manager for hosting sites'
+arch=('i686' 'x86_64')
+url='http://tucaneando.com/index.html'
+license=('GPL3')
+depends=('python-imaging' 'python2' 'pygtk' 'tesseract' 'librsvg')
+source=("http://build-tucan-doc.googlecode.com/files/tucan-${pkgver}.tar.gz")
+md5sums=('35f49eb3f118051817d3692a13fa922c')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # python2 fix
+ sed -i 's_usr/bin/env python_usr/bin/env python2_' tucan.py
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir}/usr install
+ ln -sf /usr/share/tucan/tucan.py ${pkgdir}/usr/bin/tucan
+}
diff --git a/community/tuxcards/ChangeLog b/community/tuxcards/ChangeLog
new file mode 100644
index 000000000..716e98541
--- /dev/null
+++ b/community/tuxcards/ChangeLog
@@ -0,0 +1,15 @@
+2010-09-24 Eric Belanger <eric@archlinux.org>
+
+ * tuxcards 2.2.1-1
+ * Upstream update
+
+2010-02-20 Eric Belanger <eric@archlinux.org>
+
+ * tuxcards 2.2-1
+ * Upstream update
+ * Updated depends to qt
+ * Added .desktop file
+ * Improved description
+ * Updated url
+ * Enabled SMP build
+ * Added ChangeLog
diff --git a/community/tuxcards/PKGBUILD b/community/tuxcards/PKGBUILD
new file mode 100644
index 000000000..929269c6e
--- /dev/null
+++ b/community/tuxcards/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 27541 2010-09-25 02:00:20Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=tuxcards
+pkgver=2.2.1
+pkgrel=1
+pkgdesc="A hierarchical notebook to enter and manage notes and ideas in a structured manner"
+arch=('i686' 'x86_64')
+url="http://www.tuxcards.de"
+license=('GPL')
+depends=('qt')
+changelog=ChangeLog
+source=(http://www.tuxcards.de/src/tuxcards-${pkgver}/${pkgname}-${pkgver}.tar.gz tuxcards.desktop)
+md5sums=('e10630d0ce8038e75aeaef228e10e5d9' 'c6d9d6752b8e7affb733b0f9a46a176c')
+sha1sums=('c0410f28b51d58b4f372ffae0ce0d2a7329f2c45' '565419ac6b24d61fc038462a783cb80d44b4fe7e')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ sed -i 's|/usr/local/doc/tuxcards/flowers/|/usr/share/tuxcards/flowers/|' src/CTuxCardsConfiguration.cpp
+ qmake tuxcards.pro
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ install -D -m755 tuxcards "${pkgdir}/usr/bin/tuxcards"
+ install -D -m644 src/icons/lo16-app-tuxcards.png "${pkgdir}/usr/share/icons/locolor/16x16/apps/tuxcards.png"
+ install -D -m644 src/icons/lo32-app-tuxcards.png "${pkgdir}/usr/share/icons/locolor/32x32/apps/tuxcards.png"
+ install -D -m644 "${srcdir}/tuxcards.desktop" "${pkgdir}/usr/share/applications/tuxcards.desktop"
+ install -D -m644 src/translations/tuxcards_de.qm "${pkgdir}/usr/share/tuxcards/i18/tuxcards_de.qm"
+ install -d "${pkgdir}/usr/share/tuxcards/flowers/"
+ install -m644 src/gui/cactusbar/flowers/*.gif "${pkgdir}/usr/share/tuxcards/flowers/"
+}
diff --git a/community/tuxcards/tuxcards.desktop b/community/tuxcards/tuxcards.desktop
new file mode 100644
index 000000000..9fac1c10a
--- /dev/null
+++ b/community/tuxcards/tuxcards.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Tuxcards
+Comment=Manage notes and ideas in tree structures
+Icon=/usr/share/icons/locolor/32x32/apps/tuxcards.png
+Exec=tuxcards
+Terminal=false
+Type=Application
+StartupNotify=true
+Categories=Application;Office;Utility
+Encoding=UTF-8
diff --git a/community/tuxcmd-modules/PKGBUILD b/community/tuxcmd-modules/PKGBUILD
new file mode 100644
index 000000000..ea811c041
--- /dev/null
+++ b/community/tuxcmd-modules/PKGBUILD
@@ -0,0 +1,28 @@
+pkgname=tuxcmd-modules
+pkgver=0.6.70
+pkgrel=1
+pkgdesc='Modules for Tux Commander'
+arch=('i686' 'x86_64')
+url='http://tuxcmd.sourceforge.net/'
+license=('GPL')
+depends=('tuxcmd')
+makedepends=('sharutils')
+optdepends=('gvfs: for gvfs module')
+options=('!docs' '!emptydirs')
+source=("http://downloads.sourceforge.net/project/tuxcmd/tuxcmd/tuxcmd-dev-${pkgver}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('e3e2471f6f245d3191e9a845c73518ff')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ # fix Makefiles
+ sed -i 's|$(INSTALL) \(.*\) $(DESTDIR)/lib$(LIB_SUFFIX)/tuxcmd/|$(INSTALL) -D \1 $(DESTDIR)/lib/tuxcmd/\1|' */Makefile
+
+ make -j1
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir}/usr install
+}
diff --git a/community/tuxcmd/PKGBUILD b/community/tuxcmd/PKGBUILD
new file mode 100644
index 000000000..488cddc44
--- /dev/null
+++ b/community/tuxcmd/PKGBUILD
@@ -0,0 +1,30 @@
+pkgname=tuxcmd
+pkgver=0.6.70
+pkgrel=3
+pkgdesc='A GTK2 file manager with two panels'
+arch=('i686' 'x86_64')
+url='http://tuxcmd.sourceforge.net/'
+license=('GPL')
+depends=('gtk2')
+makedepends=('fpc' 'desktop-file-utils')
+optdepends=('gnome-vfs: support for gvfs'
+ 'tuxcmd-modules: modules for tuxcmd')
+options=('!docs' '!emptydirs')
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-dev-${pkgver}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('52e3bfa7c4118539b4c4b83e335290d1')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir}/usr install
+
+ # remove license and README file
+ rm -rf ${pkgdir}/usr/share/doc/
+}
diff --git a/community/tuxcmd/tuxcmd.install b/community/tuxcmd/tuxcmd.install
new file mode 100644
index 000000000..f3cb9db7c
--- /dev/null
+++ b/community/tuxcmd/tuxcmd.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
diff --git a/community/tuxguitar/PKGBUILD b/community/tuxguitar/PKGBUILD
new file mode 100644
index 000000000..fc9c018b9
--- /dev/null
+++ b/community/tuxguitar/PKGBUILD
@@ -0,0 +1,111 @@
+# $Id: PKGBUILD 6777 2009-12-21 17:50:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: |AhIoRoS| < ahioros@gmail.com >
+
+pkgname=tuxguitar
+pkgver=1.2
+pkgrel=4
+pkgdesc="multitrack guitar tablature editor and player"
+arch=('i686' 'x86_64')
+#url="http://www.herac.com.ar/contenidos/tuxguitar.html"
+url="http://sourceforge.net/projects/tuxguitar"
+license=('LGPL')
+depends=('java-runtime' 'swt' 'alsa-lib')
+makedepends=('unzip' 'zip' 'apache-ant' 'jack-audio-connection-kit' 'fluidsynth')
+install=tuxguitar.install
+source=(tuxguitar-src-$pkgver.tar.gz::http://sourceforge.net/projects/tuxguitar/files/TuxGuitar/TuxGuitar-$pkgver/tuxguitar-src-$pkgver.tar.gz/download
+ tuxguitar.desktop \
+ tuxguitar.xml)
+md5sums=('f41ed20e77c6c3d8968991a29c71b912'
+ 'eea5247daa70ce6fc15e95b1080af486'
+ '59ce4eb8dcc0d0dde81e6cf2820aa9b0')
+
+build() {
+ cd $srcdir/tuxguitar-src-$pkgver
+ mkdir -p $pkgdir/usr/share/tuxguitar && \
+ mkdir -p $pkgdir/usr/bin
+
+ export CLASSPATH=/usr/share/java/swt.jar:$CLASSPATH
+
+ (cd TuxGuitar/ && ant) || return 1
+ (cd TuxGuitar-alsa/ && ant) || return 1
+ (cd TuxGuitar-fluidsynth/ && ant) || return 1
+ (cd TuxGuitar-jack/ && ant) || return 1
+ (cd TuxGuitar-oss/ && ant) || return 1
+ (cd TuxGuitar-compat/ && ant) || return 1
+ (cd TuxGuitar-gtp/ && ant) || return 1
+ (cd TuxGuitar-ptb/ && ant) || return 1
+ (cd TuxGuitar-tef/ && ant) || return 1
+ (cd TuxGuitar-midi/ && ant) || return 1
+ (cd TuxGuitar-lilypond/ && ant) || return 1
+ (cd TuxGuitar-musicxml/ && ant) || return 1
+ (cd TuxGuitar-ascii/ && ant) || return 1
+ (cd TuxGuitar-converter/ && ant) || return 1
+ (cd TuxGuitar-tray/ && ant) || return 1
+ (cd TuxGuitar-community/ && ant) || return 1
+ (cd TuxGuitar-gervill/ && ant) || return 1
+ (cd TuxGuitar-jsa/ && ant) || return 1
+
+ cp -r TuxGuitar/share $pkgdir/usr/share/tuxguitar/ && \
+ find -name \*.jar -exec sh -c 'cp {} '$pkgdir'/usr/share/tuxguitar/share/plugins/`basename {}`' \; && \
+ mv $pkgdir/usr/share/tuxguitar/share/plugins/tuxguitar.jar $pkgdir/usr/share/tuxguitar/ && \
+ cp TuxGuitar/tuxguitar $pkgdir/usr/share/tuxguitar/ || return 1
+
+ # alsa
+ pushd TuxGuitar-alsa/jni
+ gcc -I/usr/lib/jvm/java-6-openjdk/include -I/usr/lib/jvm/java-6-openjdk/include/linux -fPIC \
+ -c -o org_herac_tuxguitar_player_impl_midiport_alsa_MidiSystem.o \
+ org_herac_tuxguitar_player_impl_midiport_alsa_MidiSystem.c && \
+ gcc -shared -o libtuxguitar-alsa-jni.so org_herac_tuxguitar_player_impl_midiport_alsa_MidiSystem.o -L/usr/lib -lasound && \
+ install -D -m0755 libtuxguitar-alsa-jni.so $pkgdir/usr/lib/tuxguitar/libtuxguitar-alsa-jni.so && \
+ mkdir -p $pkgdir/usr/share/tuxguitar/lib && \
+ ln -s /usr/lib/tuxguitar/libtuxguitar-alsa-jni.so $pkgdir/usr/share/tuxguitar/lib/libtuxguitar-alsa-jni.so || return 1
+ popd
+
+ # oss
+ pushd TuxGuitar-oss/jni
+ gcc -I/usr/lib/jvm/java-6-openjdk/include -I/usr/lib/jvm/java-6-openjdk/include/linux -fPIC \
+ -c -o org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem.o \
+ org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem.c && \
+ gcc -shared -o libtuxguitar-oss-jni.so org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem.o -L/usr/lib && \
+ install -D -m0755 libtuxguitar-oss-jni.so $pkgdir/usr/lib/tuxguitar/libtuxguitar-oss-jni.so && \
+ mkdir -p $pkgdir/usr/share/tuxguitar/lib && \
+ ln -s /usr/lib/tuxguitar/libtuxguitar-oss-jni.so $pkgdir/usr/share/tuxguitar/lib/libtuxguitar-oss-jni.so || return 1
+ popd
+
+ # jack
+ pushd TuxGuitar-jack/jni
+ gcc -I/usr/lib/jvm/java-6-openjdk/include -I/usr/lib/jvm/java-6-openjdk/include/linux -fPIC \
+ -c -o org_herac_tuxguitar_jack_JackClient.o \
+ org_herac_tuxguitar_jack_JackClient.c && \
+ gcc -shared -o libtuxguitar-jack-jni.so org_herac_tuxguitar_jack_JackClient.o -L/usr/lib -ljack && \
+ install -D -m0755 libtuxguitar-jack-jni.so $pkgdir/usr/lib/tuxguitar/libtuxguitar-jack-jni.so && \
+ mkdir -p $pkgdir/usr/share/tuxguitar/lib && \
+ ln -s /usr/lib/tuxguitar/libtuxguitar-jack-jni.so $pkgdir/usr/share/tuxguitar/lib/libtuxguitar-jack-jni.so || return 1
+ popd
+
+ # fluidsynth
+ pushd TuxGuitar-fluidsynth/jni
+ gcc -I/usr/lib/jvm/java-6-openjdk/include -I/usr/lib/jvm/java-6-openjdk/include/linux -fPIC \
+ -c -o org_herac_tuxguitar_player_impl_midiport_fluidsynth_MidiSynth.o \
+ org_herac_tuxguitar_player_impl_midiport_fluidsynth_MidiSynth.c && \
+ gcc -shared -o libtuxguitar-fluidsynth-jni.so org_herac_tuxguitar_player_impl_midiport_fluidsynth_MidiSynth.o -L/usr/lib -lfluidsynth && \
+ install -D -m0755 libtuxguitar-fluidsynth-jni.so $pkgdir/usr/lib/tuxguitar/libtuxguitar-fluidsynth-jni.so && \
+ mkdir -p $pkgdir/usr/share/tuxguitar/lib && \
+ ln -s /usr/lib/tuxguitar/libtuxguitar-fluidsynth-jni.so $pkgdir/usr/share/tuxguitar/lib/libtuxguitar-fluidsynth-jni.so || return 1
+ popd
+
+ cd $startdir/pkg/usr/bin
+ cat >tuxguitar << EOF
+#!/bin/sh
+export CLASSPATH=/usr/share/java/swt.jar:$CLASSPATH
+export LD_LIBRARY_PATH=lib/:$LD_LIBRARY_PATH
+cd /usr/share/$pkgname
+exec /usr/share/$pkgname/tuxguitar "\$1" "\$2" "\$3" "\$4" "\$5" "\$6" "\$7" "\$8" "\$9"
+EOF
+
+ chmod 755 tuxguitar && \
+ install -D -m0644 $srcdir/tuxguitar.xml $pkgdir/usr/share/mime/packages/tuxguitar.xml && \
+ install -D -m0644 $srcdir/tuxguitar.desktop $pkgdir/usr/share/applications/tuxguitar.desktop
+}
+
diff --git a/community/tuxguitar/tuxguitar.desktop b/community/tuxguitar/tuxguitar.desktop
new file mode 100644
index 000000000..77b8280d7
--- /dev/null
+++ b/community/tuxguitar/tuxguitar.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Name=tuxguitar
+Comment=Edit, playback guitar tablatures
+Comment[fr]=Edite, joue des tablatures de guitare
+Comment[es]=Edita, reproduce tablaturas de guitarra
+Icon=/usr/share/tuxguitar/share/skins/Lavender/icon-96x96.png
+Terminal=false
+Type=Application
+Categories=Application;AudioVideo;Audio;
+Exec=tuxguitar %F
+MimeType=audio/x-tuxguitar;audio/x-gtp;audio/x-ptb;
+#eof "$Id: tuxguitar.desktop,v 1.2 2008/09/15 07:54:28 sergej Exp $"
diff --git a/community/tuxguitar/tuxguitar.install b/community/tuxguitar/tuxguitar.install
new file mode 100644
index 000000000..50cd956c2
--- /dev/null
+++ b/community/tuxguitar/tuxguitar.install
@@ -0,0 +1,12 @@
+post_install() {
+ [ -x `which update-mime-database` ] && update-mime-database /usr/share/mime
+ [ -x `which update-desktop-database` ] && update-desktop-database
+ /bin/true
+}
+
+post_upgrade() {
+ [ -x `which update-mime-database` ] && update-mime-database /usr/share/mime
+ [ -x `which update-desktop-database` ] && update-desktop-database
+ /bin/true
+}
+
diff --git a/community/tuxguitar/tuxguitar.xml b/community/tuxguitar/tuxguitar.xml
new file mode 100644
index 000000000..3b5b2672b
--- /dev/null
+++ b/community/tuxguitar/tuxguitar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="audio/x-tuxguitar">
+ <comment>TuxGuitar file</comment>
+ <glob pattern="*.tg"/>
+ </mime-type>
+ <mime-type type="audio/x-gtp">
+ <comment>GuitarPro file</comment>
+ <glob pattern="*.gtp"/>
+ <glob pattern="*.gp3"/>
+ <glob pattern="*.gp4"/>
+ <glob pattern="*.gp5"/>
+ </mime-type>
+ <mime-type type="audio/x-ptb">
+ <comment>PowerTab file</comment>
+ <glob pattern="*.ptb"/>
+ </mime-type>
+</mime-info>
diff --git a/community/tuxpaint/PKGBUILD b/community/tuxpaint/PKGBUILD
new file mode 100644
index 000000000..782eb0534
--- /dev/null
+++ b/community/tuxpaint/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 26451 2010-09-15 18:28:06Z schuay $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Sergio Jovani Guzman <moret.sjg@gmail.com>
+# Adopted: royrocks <royrocks13@gmail.com>
+pkgname=tuxpaint
+pkgver=0.9.21
+pkgrel=4
+pkgdesc="Tux Paint is a free drawing program designed for young children."
+arch=('i686' 'x86_64')
+url="http://www.tuxpaint.org"
+license=('GPL')
+backup=('etc/tuxpaint/tuxpaint.conf')
+depends=('python2' 'fribidi' 'sdl_ttf' 'sdl_mixer' 'sdl_image' 'sdl_pango' 'libpaper' 'librsvg')
+source=(http://downloads.sourceforge.net/sourceforge/tuxpaint/$pkgname-$pkgver.tar.gz)
+md5sums=('a88401d1860648098eeed819cff038fa')
+sha1sums=('082a179a3cb44ee17af47421bc92125a890846e4')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # python2 fix
+ for file in docs/zh_tw/mkTuxpaintIM.py fonts/locale/zh_tw_docs/maketuxfont.py; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ echo "Categories=Game;KidsGame;Graphics;RasterGraphics;" >> src/tuxpaint.desktop
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=/usr DESTDIR=$startdir/pkg CONFDIR=$pkgdir/etc MAN_PREFIX=$pkgdir/usr/share/man X11_ICON_PREFIX=$pkgdir/usr/share/pixmaps KDE_PREFIX="" KDE_ICON_PREFIX="" install
+ install -D -m 644 $srcdir/$pkgname-$pkgver/src/tuxpaint.desktop $pkgdir/usr/share/applications/tuxpaint.desktop
+ chmod -R 644 $pkgdir/usr/share/doc/tuxpaint-dev/*
+ chmod 755 $pkgdir/usr/share/doc/tuxpaint-dev/html
+ mkdir -p $pkgdir/etc/tuxpaint
+ mv $pkgdir/etc/tuxpaint.conf $pkgdir/etc/tuxpaint/
+}
diff --git a/community/tuxpaint/desktop.patch b/community/tuxpaint/desktop.patch
new file mode 100644
index 000000000..78d2ed397
--- /dev/null
+++ b/community/tuxpaint/desktop.patch
@@ -0,0 +1,7 @@
+--- tuxpaint.desktop2 2008-03-20 15:45:22.000000000 +0100
++++ tuxpaint.desktop 2008-03-20 15:56:33.000000000 +0100
+@@ -205,3 +205,4 @@
+ Comment[zh_cn]=孩子的绘图程序。
+ Comment[zh_tw]=適合兒童的畫圖程式
+ Comment[zw]=Diif program paar keé men Dibuj paar biét biss
++Categories=Game;KidsGame;Graphics;RasterGraphics;
diff --git a/community/tvision/PKGBUILD b/community/tvision/PKGBUILD
new file mode 100644
index 000000000..2363dde33
--- /dev/null
+++ b/community/tvision/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 23701 2010-08-14 23:06:10Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=tvision
+pkgver=2.2.1_r1
+pkgrel=1
+pkgdesc="turbo vision library port (console interface)"
+arch=(i686 x86_64)
+url="http://tvision.sourceforge.net"
+license=("GPL")
+depends=(gpm gcc-libs libxmu allegro)
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/project/tvision/UNIX/2.2.1%20CVS20100714%20Source%20and%20Debian%205.0/rhtvision_${pkgver/_r/-}.tar.gz"
+ tvision-build-fix.patch)
+md5sums=('46b815d86bbbb2f9b112b11f63e2f5a6'
+ 'e24e3520bd7c6beb441716b8998b4c64')
+
+build() {
+ cd $srcdir/$pkgname
+
+ patch -p1 <$srcdir/tvision-build-fix.patch
+
+ ./configure --prefix=/usr --include=/usr/include
+ make || return 1
+ make prefix=$pkgdir/usr install
+}
diff --git a/community/tvision/tvision-build-fix.patch b/community/tvision/tvision-build-fix.patch
new file mode 100644
index 000000000..51fea1bda
--- /dev/null
+++ b/community/tvision/tvision-build-fix.patch
@@ -0,0 +1,13 @@
+diff -wbBur tvision/classes/x11/x11src.cc tvision.q/classes/x11/x11src.cc
+--- tvision/classes/x11/x11src.cc 2009-12-29 15:52:24.000000000 +0000
++++ tvision.q/classes/x11/x11src.cc 2010-08-14 22:52:01.000000000 +0000
+@@ -40,6 +40,9 @@
+ // That's a nasty side effect: X defines Boolean!
+ #if (defined(TVOS_UNIX) || defined(TVCompf_Cygwin)) && defined(HAVE_X11)
+ #include <X11/Xmu/Atoms.h>
++ #include <sys/types.h>
++ #include <sys/stat.h>
++ #include <fcntl.h>
+ #endif
+
+ #define Uses_stdio
diff --git a/community/tvtime/PKGBUILD b/community/tvtime/PKGBUILD
new file mode 100644
index 000000000..32ccec0c5
--- /dev/null
+++ b/community/tvtime/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer:thefatprecious <marty@loomar.com>
+
+pkgname=tvtime
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="A high quality television application for use with video capture cards"
+arch=('i686' 'x86_64')
+url='http://tvtime.sourceforge.net/'
+license=('GPL' 'LGPL')
+depends=('gcc-libs' 'libpng' 'libxml2' 'freetype2' 'libxtst' 'libxinerama' 'libxv' 'libsm' 'libxxf86vm')
+makedepends=('libxt')
+source=(http://downloads.sourceforge.net/sourceforge/tvtime/$pkgname-$pkgver.tar.gz \
+ tvtime-1.0.2+linux-headers-2.6.18.patch tvtime-1.0.2-gcc41.patch tvtime-1.0.2-locale_t.patch)
+md5sums=('4b3d03afe61be239b08b5e522cd8afed' '29b0aefd80fddae68613854b627e044a'\
+ 'c782789825dfa664e1f6fcc96ac7246c' '1069dc5b47bba8456cbf48e34cb5c0b6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 < ../tvtime-1.0.2+linux-headers-2.6.18.patch || return 1
+ patch -p1 < ../tvtime-1.0.2-gcc41.patch || return 1
+ patch -p1 < ../tvtime-1.0.2-locale_t.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man --localstatedir=/var --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -D -m644 docs/html/default.tvtime.xml $pkgdir/usr/share/tvtime/default.tvtime.xml || return 1
+}
diff --git a/community/tvtime/tvtime-1.0.2+linux-headers-2.6.18.patch b/community/tvtime/tvtime-1.0.2+linux-headers-2.6.18.patch
new file mode 100644
index 000000000..b1cfd49f1
--- /dev/null
+++ b/community/tvtime/tvtime-1.0.2+linux-headers-2.6.18.patch
@@ -0,0 +1,15 @@
+Index: tvtime-1.0.2/src/videoinput.c
+===================================================================
+--- tvtime-1.0.2.orig/src/videoinput.c
++++ tvtime-1.0.2/src/videoinput.c
+@@ -35,8 +35,8 @@
+ #ifdef HAVE_CONFIG_H
+ # include "config.h"
+ #endif
+-#include "videodev.h"
+-#include "videodev2.h"
++#include <linux/videodev.h>
++#include <linux/videodev2.h>
+ #include "videoinput.h"
+ #include "mixer.h"
+
diff --git a/community/tvtime/tvtime-1.0.2-gcc41.patch b/community/tvtime/tvtime-1.0.2-gcc41.patch
new file mode 100644
index 000000000..58e9bb204
--- /dev/null
+++ b/community/tvtime/tvtime-1.0.2-gcc41.patch
@@ -0,0 +1,57 @@
+diff -Naur tvtime-1.0.1/plugins/greedyh.asm tvtime-1.0.1-gcc41/plugins/greedyh.asm
+--- tvtime-1.0.1/plugins/greedyh.asm 2005-08-14 18:16:43.000000000 +0200
++++ tvtime-1.0.1-gcc41/plugins/greedyh.asm 2005-11-28 17:53:09.210774544 +0100
+@@ -18,7 +18,7 @@
+
+ #include "x86-64_macros.inc"
+
+-void DScalerFilterGreedyH::FUNCT_NAME(TDeinterlaceInfo* pInfo)
++void FUNCT_NAME(TDeinterlaceInfo* pInfo)
+ {
+ int64_t i;
+ bool InfoIsOdd = (pInfo->PictureHistory[0]->Flags & PICTURE_INTERLACED_ODD) ? 1 : 0;
+diff -Naur tvtime-1.0.1/plugins/tomsmocomp/TomsMoCompAll2.inc tvtime-1.0.1-gcc41/plugins/tomsmocomp/TomsMoCompAll2.inc
+--- tvtime-1.0.1/plugins/tomsmocomp/TomsMoCompAll2.inc 2004-10-20 17:31:05.000000000 +0200
++++ tvtime-1.0.1-gcc41/plugins/tomsmocomp/TomsMoCompAll2.inc 2005-11-28 17:53:33.251119856 +0100
+@@ -5,9 +5,9 @@
+ #endif
+
+ #ifdef USE_STRANGE_BOB
+-#define SEARCH_EFFORT_FUNC(n) DScalerFilterTomsMoComp::SEFUNC(n##_SB)
++#define SEARCH_EFFORT_FUNC(n) SEFUNC(n##_SB)
+ #else
+-#define SEARCH_EFFORT_FUNC(n) DScalerFilterTomsMoComp::SEFUNC(n)
++#define SEARCH_EFFORT_FUNC(n) SEFUNC(n)
+ #endif
+
+ int SEARCH_EFFORT_FUNC(0) // we don't try at all ;-)
+diff -Naur tvtime-1.0.1/plugins/tomsmocomp.cpp tvtime-1.0.1-gcc41/plugins/tomsmocomp.cpp
+--- tvtime-1.0.1/plugins/tomsmocomp.cpp 2004-10-20 19:38:04.000000000 +0200
++++ tvtime-1.0.1-gcc41/plugins/tomsmocomp.cpp 2005-11-28 17:52:53.862107896 +0100
+@@ -31,7 +31,7 @@
+
+ #define IS_MMX
+ #define SSE_TYPE MMX
+-#define FUNCT_NAME DScalerFilterTomsMoComp::filterDScaler_MMX
++#define FUNCT_NAME filterDScaler_MMX
+ #include "tomsmocomp/TomsMoCompAll.inc"
+ #undef IS_MMX
+ #undef SSE_TYPE
+@@ -39,7 +39,7 @@
+
+ #define IS_3DNOW
+ #define SSE_TYPE 3DNOW
+-#define FUNCT_NAME DScalerFilterTomsMoComp::filterDScaler_3DNOW
++#define FUNCT_NAME filterDScaler_3DNOW
+ #include "tomsmocomp/TomsMoCompAll.inc"
+ #undef IS_3DNOW
+ #undef SSE_TYPE
+@@ -47,7 +47,7 @@
+
+ #define IS_SSE
+ #define SSE_TYPE SSE
+-#define FUNCT_NAME DScalerFilterTomsMoComp::filterDScaler_SSE
++#define FUNCT_NAME filterDScaler_SSE
+ #include "tomsmocomp/TomsMoCompAll.inc"
+ #undef IS_SSE
+ #undef SSE_TYPE
diff --git a/community/tvtime/tvtime-1.0.2-locale_t.patch b/community/tvtime/tvtime-1.0.2-locale_t.patch
new file mode 100644
index 000000000..cbbb05458
--- /dev/null
+++ b/community/tvtime/tvtime-1.0.2-locale_t.patch
Binary files differ
diff --git a/community/twin/PKGBUILD b/community/twin/PKGBUILD
new file mode 100644
index 000000000..67cd4e1d6
--- /dev/null
+++ b/community/twin/PKGBUILD
@@ -0,0 +1,25 @@
+# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
+pkgname=twin
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="A text-mode window environment"
+arch=('i686' 'x86_64')
+url="http://linuz.sns.it/~max/twin/"
+license=('GPL' 'LGPL')
+depends=('ncurses' 'gpm' 'zlib' 'libtool' 'libxpm')
+optdepends=('gtk')
+#source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+source=(http://linuz.sns.it/~max/twin/twin-$pkgver.tar.gz)
+md5sums=('6211c8b2e655003eb96b1fc5dc37e7d9')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ LDFLAGS="-lX11" ./configure --prefix=/usr \
+ --enable-tt=yes \
+ --enable-tt-hw-twin=yes --enable-tt-hw-twin-tunnel=yes --enable-tt-hw-twin-detunnel=yes \
+ --enable-tt-hw-xml=yes \
+ || return 1
+
+ make -j1 || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/twinkle/PKGBUILD b/community/twinkle/PKGBUILD
new file mode 100644
index 000000000..a7e4d92ad
--- /dev/null
+++ b/community/twinkle/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 41011 2011-03-03 04:44:11Z tdziedzic $
+# Maintainer:
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
+
+pkgname=twinkle
+pkgver=1.4.2
+pkgrel=8
+pkgdesc="A softphone for voice over IP and instant messaging communications using the SIP protocol"
+arch=('i686' 'x86_64')
+url="http://www.twinklephone.com/"
+license=('GPL')
+depends=('file' 'speex' 'boost-libs' 'libsndfile' 'commoncpp2' 'libxml2' 'libx11'
+ 'qt3' 'libzrtpcpp')
+makedepends=('pkg-config' 'boost')
+source=(http://www.xs4all.nl/~mfnboer/${pkgname}/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('d70c8972f296ffd998c7fb698774705b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ . /etc/profile.d/qt3.sh
+ ./configure --prefix=/usr \
+ --without-kde \
+ --with-speex
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m644 twinkle.desktop ${pkgdir}/usr/share/applications/twinkle.desktop
+}
diff --git a/community/twinkle/twinkle.desktop b/community/twinkle/twinkle.desktop
new file mode 100644
index 000000000..e85a32e51
--- /dev/null
+++ b/community/twinkle/twinkle.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Twinkle
+Comment=A SIP softphone for Qt
+Icon=/usr/share/twinkle/twinkle48.png
+Exec=twinkle
+Terminal=false
+Type=Application
+Categories=Network;
+StartupNotify=false
diff --git a/community/typespeed/PKGBUILD b/community/typespeed/PKGBUILD
new file mode 100644
index 000000000..8c574c877
--- /dev/null
+++ b/community/typespeed/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 34838 2010-12-12 22:33:17Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+pkgname=typespeed
+pkgver=0.6.5
+pkgrel=3
+pkgdesc="Test your typing speed, and get your fingers' CPS."
+arch=('i686' 'x86_64')
+url="http://typespeed.sourceforge.net"
+license=('GPL')
+depends=('ncurses')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('578102b418c7df84903d3e90df2e7483')
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc
+ make
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/community/typespeed/typespeed.install b/community/typespeed/typespeed.install
new file mode 100644
index 000000000..3fab10e3d
--- /dev/null
+++ b/community/typespeed/typespeed.install
@@ -0,0 +1,16 @@
+post_install() {
+ getent group games > /dev/null || /usr/sbin/groupadd -g 20 games
+ /usr/bin/typespeed --makescores
+ chown root.20 /usr/share/typespeed/*
+}
+
+post_upgrade() {
+ getent group games > /dev/null || /usr/sbin/groupadd -g 20 games
+ /usr/bin/typespeed --makescores
+ chown root.20 /usr/share/typespeed/*
+}
+
+pre_remove() {
+/bin/true
+}
+
diff --git a/community/ucl/PKGBUILD b/community/ucl/PKGBUILD
new file mode 100644
index 000000000..144d9c476
--- /dev/null
+++ b/community/ucl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 20705 2010-07-10 22:26:42Z cbrannon $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Previous Contributor: arjan <arjan@archlinux.org>
+# Previous Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ucl
+pkgver=1.03
+pkgrel=4
+pkgdesc="Portable lossless data compression library written in ANSI C"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.oberhumer.com/opensource/ucl/"
+options=(!libtool)
+source=(http://www.oberhumer.com/opensource/$pkgname/download/$pkgname-$pkgver.tar.gz)
+md5sums=('852bd691d8abc75b52053465846fba34')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/ude/PKGBUILD b/community/ude/PKGBUILD
new file mode 100644
index 000000000..bf99313e3
--- /dev/null
+++ b/community/ude/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 12299 2010-03-01 11:14:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: dorphell <dorphell@gmx.net>
+
+pkgname=ude
+pkgver=0.2.10
+pkgrel=1
+pkgdesc="UDE, the Unix Desktop Environment, is a GUI desktop environment"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libjpeg' 'libxmu' 'libxpm')
+url="http://udeproject.sourceforge.net/index.shtml"
+source=(http://downloads.sourceforge.net/udeproject/uwm-$pkgver.tar.gz \
+ $pkgname.desktop)
+md5sums=('efb3392591ad976d20bd7ac6f174a5a3'
+ '84f94253ea284258c4465cd76edf599f')
+
+build() {
+ cd $srcdir/uwm-$pkgver
+ mkdir -p $pkgdir/etc/X11/sessions
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$pkgdir/usr install
+ cp $srcdir/$pkgname.desktop $pkgdir/etc/X11/sessions
+}
diff --git a/community/ude/ude.desktop b/community/ude/ude.desktop
new file mode 100644
index 000000000..48a022d0b
--- /dev/null
+++ b/community/ude/ude.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Ude
+Comment=The ude window manager
+Exec=uwm
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/community/udunits/PKGBUILD b/community/udunits/PKGBUILD
new file mode 100644
index 000000000..b4bdcbfe4
--- /dev/null
+++ b/community/udunits/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 37949 2011-01-19 05:42:10Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+
+pkgname=udunits
+pkgver=2.1.20
+pkgrel=1
+pkgdesc='A tool for calculations of physical quantities'
+arch=('i686' 'x86_64')
+url='http://www.unidata.ucar.edu/software/udunits/'
+license=('custom')
+options=('!libtool')
+depends=('glibc')
+provides=('udunits2')
+install=udunits.install
+source=("ftp://ftp.unidata.ucar.edu/pub/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('e3282ad8c055dece9d48723d58d4d4c5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make; make DESTDIR=$pkgdir install
+
+ for x in a so so.0 so.0.0.0; do
+ ln -s libudunits2.$x \
+ $pkgdir/usr/lib/libudunits.$x
+ done
+
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/udunits/udunits.install b/community/udunits/udunits.install
new file mode 100644
index 000000000..1a2fbfd7b
--- /dev/null
+++ b/community/udunits/udunits.install
@@ -0,0 +1,26 @@
+INFO_DIR=/usr/share/info
+
+INFO_FILES=(udunits2.info udunits2lib.info udunits2prog.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${INFO_FILES[@]}; do install-info \
+ $INFO_DIR/$file.gz $INFO_DIR/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${INFO_FILES[@]}; do
+ install-info --delete \
+ $INFO_DIR/$file.gz $INFO_DIR/dir 2> /dev/null
+ done
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/ufoai/PKGBUILD b/community/ufoai/PKGBUILD
new file mode 100644
index 000000000..8394eb35d
--- /dev/null
+++ b/community/ufoai/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 34218 2010-12-04 20:28:44Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+pkgname=ufoai
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="In UFO: Alien Invasion you fight aliens trying to capture Earth"
+arch=('i686' 'x86_64')
+url="http://ufoai.ninex.info/"
+license=('GPL')
+depends=('libjpeg' 'libpng' 'curl' 'sdl_image' 'sdl_mixer' 'sdl_ttf' 'xvidcore' 'ufoai-data')
+makedepends=('mesa')
+source=(http://downloads.sourceforge.net/project/ufoai/UFO_AI%202.x/$pkgver/ufoai-$pkgver-source.tar.bz2)
+md5sums=('87b3e1bf3439dc6e5413936034f47d17')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver-source
+
+ #./configure --prefix=/usr --enable-release --disable-uforadiant
+ # remove --enable-release because it causes crashes on some systems
+ mkdir base
+ ./configure --prefix=/usr --disable-uforadiant --enable-release
+ make
+ make lang
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver-source
+
+ make DESTDIR="$pkgdir" install_exec
+
+ install -D -m644 debian/ufoai.desktop "$pkgdir"/usr/share/applications/ufoai.desktop
+ install -D -m644 debian/ufoai-safe.desktop "$pkgdir"/usr/share/applications/ufoai-safe.desktop
+ install -D -m644 debian/ufoded.desktop "$pkgdir"/usr/share/applications/ufoded.desktop
+
+ sed -i 's|/usr/games/||' "$pkgdir"/usr/share/applications/*
+
+ install -D -m644 debian/ufoai.xpm "$pkgdir"/usr/share/pixmaps/ufoai.xpm
+ install -D -m644 debian/ufoded.xpm "$pkgdir"/usr/share/pixmaps/ufoded.xpm
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/community/ultimate-ircd/PKGBUILD b/community/ultimate-ircd/PKGBUILD
new file mode 100644
index 000000000..98c88e7a7
--- /dev/null
+++ b/community/ultimate-ircd/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 44022 2011-04-01 16:49:24Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ultimate-ircd
+pkgver=3.0.2
+pkgrel=3
+pkgdesc="ultimate irc server"
+arch=(i686 x86_64)
+url="http://www.shadow-realm.org/"
+license=("GPL")
+depends=(glibc)
+makedepends=(patch)
+conflicts=(ircd)
+provides=(ircd)
+backup=()
+install=ircd.install
+source=(http://downloads.sourceforge.net/sourceforge/ultimate/Ultimate$pkgver.tar.bz2 \
+ ultimate-ircd \
+ conf-fix.patch)
+md5sums=('8bc14b97d22a3ce3415cc0540ae459f6'
+ 'cf6ab14d8dd8805342b70a9beb01c9af'
+ '5e0f2a02e12675ac070a148c3234e111')
+
+build() {
+ cd $srcdir/Ultimate$pkgver
+ ./configure --prefix=/usr --enable-chinese-nick
+
+ for i in `find -type f -name Makefile`; do
+ echo Patching $i...
+ sed -i "s#prefix = /usr#prefix = $pkgdir/usr#" $i
+ sed -i "s#libexecdir = \${bindir}#libexecdir = $pkgdir/usr/lib/ircd#" $i
+ sed -i "s#sysconfdir = \${prefix}/etc#sysconfdir = $pkgdir/etc/ircd#" $i
+ sed -i "s#localstatedir = \${prefix}#localstatedir = $pkgdir/var#" $i
+ sed -i "s#networksubdir = \${prefix}/etc/networks#networksubdir = $pkgdir/etc/ircd/networks#" $i
+ sed -i "s#\$(localstatedir)/logs#\$(localstatedir)/log/ircd#" $i
+ done
+
+ cd include && patch -N <../../conf-fix.patch && cd ..
+ make || return 1
+
+ mkdir -p $pkgdir/usr/bin
+ mkdir -p $pkgdir/var/log/ircd
+ mkdir -p $pkgdir/etc/ircd/networks
+ make install
+ rm -f $pkgdir/usr/ircd
+ rm -f $pkgdir/usr/kill
+ rm -f $pkgdir/usr/rehash
+ cd $pkgdir/usr/bin
+ mv mkpasswd irc-mkpasswd
+ mv ssl-cert.sh irc-ssl-cert.sh
+ mv ssl-search.sh irc-ssl-search.sh
+ install -D -m 0755 $srcdir/ultimate-ircd $pkgdir/etc/rc.d/ultimate-ircd
+ install -d -m 0755 $pkgdir/var/lib/ircd
+}
diff --git a/community/ultimate-ircd/conf-fix.patch b/community/ultimate-ircd/conf-fix.patch
new file mode 100644
index 000000000..735d8120c
--- /dev/null
+++ b/community/ultimate-ircd/conf-fix.patch
@@ -0,0 +1,25 @@
+--- ./config.h.org 2005-04-11 10:30:55.000000000 -0700
++++ ./config.h 2006-04-26 17:42:04.000000000 -0700
+@@ -110,10 +110,12 @@
+ /* dirs */
+ #define DPATH IRCD_PREFIX
+ #define BINPATH IRCD_PREFIX "/bin/"
+-#define ETCPATH IRCD_PREFIX "/etc"
+-#define LOGPATH IRCD_PREFIX "/logs"
++#define ETCPATH "/etc/ircd"
++#define LOGPATH "/var/log/ircd"
+
+ /* files */
++#define PPATH "/var/run/ircd/ircd.pid"
++
+ #define SPATH BINPATH "/ircd" /* ircd executable */
+
+ #define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */
+@@ -125,7 +127,6 @@
+ #define SMPATH ETCPATH "/ircd.smotd" /* Short Message Of The Day */
+ #define OMPATH ETCPATH "/ircd.opermotd" /* Operator Message Of The Day */
+ #define RPATH ETCPATH "/ircd.rules" /* Rules File */
+-#define PPATH ETCPATH "/ircd.pid" /* IRCd PID */
+ #define IRCDSSL_CPATH ETCPATH "/ircd.crt" /* Client SSL */
+ #define IRCDSSL_KPATH ETCPATH "/ircd.key" /* Client SSL */
+
diff --git a/community/ultimate-ircd/ircd.install b/community/ultimate-ircd/ircd.install
new file mode 100644
index 000000000..19b76da80
--- /dev/null
+++ b/community/ultimate-ircd/ircd.install
@@ -0,0 +1,31 @@
+pre_install() {
+ /bin/true
+}
+
+post_install() {
+ groupadd irc
+ useradd -G irc -d /var/lib/ircd ircd
+ chown -R ircd.irc /var/log/ircd
+ chown -R ircd.irc /var/lib/ircd
+ chown -R ircd.irc /var/run/ircd
+}
+
+pre_upgrade() {
+ /bin/true
+}
+
+post_upgrade() {
+ chown -R ircd.irc /var/log/ircd
+ chown -R ircd.irc /var/lib/ircd
+ chown -R ircd.irc /var/run/ircd
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ userdel ircd
+ groupdel irc
+}
+
diff --git a/community/ultimate-ircd/ultimate-ircd b/community/ultimate-ircd/ultimate-ircd
new file mode 100644
index 000000000..df73d7389
--- /dev/null
+++ b/community/ultimate-ircd/ultimate-ircd
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof /usr/bin/ircd
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting Ultimate IRCd"
+
+ [ -d /var/run/ircd ] || mkdir -p /var/run/ircd
+ [ -f /var/run/ircd/ircd.pid ] && rm -f /var/run/ircd/ircd.pid
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ su -c '/usr/bin/ircd -f /etc/ircd/ircd.conf' ircd 1>>/var/log/ircd/stdout.log 2>>/var/log/ircd/sterr.log
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon ultimate-ircd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Ultimate IRCd"
+ PID=`get_pid`
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/ircd/ircd.pid &> /dev/null
+ rm_daemon ultimate-ircd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/uml_utilities/PKGBUILD b/community/uml_utilities/PKGBUILD
new file mode 100644
index 000000000..b0fc5a633
--- /dev/null
+++ b/community/uml_utilities/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Mike Sampson <mike at sambodata dot com>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=uml_utilities
+pkgver=20070815
+pkgrel=4
+pkgdesc="User Mode Linux Utilities"
+arch=(i686 x86_64)
+depends=('fuse' 'readline' 'perl')
+url="http://user-mode-linux.sourceforge.net/"
+source=(http://user-mode-linux.sourceforge.net/${pkgname}_${pkgver}.tar.bz2)
+license=('GPL2')
+md5sums=('b0468ac8b79cef53f36f5f9517907462')
+
+build() {
+ cd $srcdir/tools-$pkgver
+ sed 's|lib64|lib|g' -i Makefile
+ make all
+}
+
+package() {
+ cd $srcdir/tools-$pkgver
+ make DESTDIR=$pkgdir install
+ chown root $pkgdir/usr/bin/*
+}
diff --git a/community/unbound/PKGBUILD b/community/unbound/PKGBUILD
new file mode 100644
index 000000000..b68c81348
--- /dev/null
+++ b/community/unbound/PKGBUILD
@@ -0,0 +1,46 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Hisato Tatekura <hisato_tatekura@excentrics.net>
+# Contributor: Massimiliano Torromeo <massimiliano DOT torromeo AT google mail service>
+
+pkgname=unbound
+pkgver=1.4.9
+pkgrel=1
+pkgdesc='Validating, recursive, and caching DNS resolver'
+arch=('i686' 'x86_64')
+url='http://unbound.net/'
+license=('custom:BSD')
+options=('!libtool')
+depends=('openssl' 'ldns')
+makedepends=('expat')
+optdepends=('expat: unbound-anchor')
+backup=('etc/unbound/unbound.conf')
+source=("http://unbound.net/downloads/$pkgname-$pkgver.tar.gz"
+ 'unbound.conf'
+ 'rc.d')
+sha1sums=('f2ac7b4ef1d1b330e2dd5e2eedeb6fd2bbad8478'
+ '5d473ec2943fd85367cdb653fcd58e186f07383f'
+ 'a0c8c496d71d43ed9e09b170d3df836dfb096480')
+
+install=install
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-static=no \
+ --disable-rpath \
+ --with-conf-file=/etc/unbound/unbound.conf \
+ --with-pidfile=/var/run/unbound.pid
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D -m644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -D -m755 ../rc.d "$pkgdir/etc/rc.d/$pkgname"
+ install -D -m644 ../unbound.conf "$pkgdir/etc/unbound/unbound.conf"
+ install -D -m644 doc/example.conf.in "$pkgdir/etc/unbound/unbound.conf.example"
+}
diff --git a/community/unbound/install b/community/unbound/install
new file mode 100644
index 000000000..34e7026d1
--- /dev/null
+++ b/community/unbound/install
@@ -0,0 +1,18 @@
+post_install() {
+ getent group unbound &>/dev/null || groupadd -r unbound >/dev/null
+ getent passwd unbound &>/dev/null || useradd -r -g unbound -d /etc/unbound -s /bin/false -c unbound unbound >/dev/null
+ cat <<EOF
+==> Start with: /etc/rc.d/unbound start
+==> Then, add "nameserver 127.0.0.1" to /etc/resolv.conf.head
+EOF
+}
+
+pre_remove() {
+ /etc/rc.d/unbound stop
+}
+
+post_remove() {
+ getent passwd unbound &>/dev/null && userdel unbound >/dev/null
+ getent group unbound &>/dev/null && groupdel unbound >/dev/null
+ return 0
+}
diff --git a/community/unbound/rc.d b/community/unbound/rc.d
new file mode 100644
index 000000000..f392450ae
--- /dev/null
+++ b/community/unbound/rc.d
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+name=unbound
+prog="/usr/sbin/unbound"
+
+PID=$(pidof -o %PPID $prog)
+
+case "$1" in
+start)
+ stat_busy "Starting $name daemon"
+ [[ -z "$PID" ]] && eval $prog &>/dev/null \
+ && { add_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+stop)
+ stat_busy "Stopping $name daemon"
+ [[ -n "$PID" ]] && kill $PID &>/dev/null \
+ && { rm_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+*)
+ echo "usage: $0 {start|stop|restart|reload}"
+ exit 1
+ ;;
+esac
diff --git a/community/unbound/unbound.conf b/community/unbound/unbound.conf
new file mode 100644
index 000000000..445bceff1
--- /dev/null
+++ b/community/unbound/unbound.conf
@@ -0,0 +1,4 @@
+server:
+ username: "unbound"
+ directory: "/etc/unbound"
+ use-syslog: yes
diff --git a/community/unclutter/PKGBUILD b/community/unclutter/PKGBUILD
new file mode 100644
index 000000000..fc8f40d7b
--- /dev/null
+++ b/community/unclutter/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 20014 2010-07-01 16:52:19Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Callan Barrett <wizzomafizzo@gmail.com>
+# Contributor: Anthony Martin <ality@pbrane.org>
+
+pkgname=unclutter
+pkgver=8
+pkgrel=6
+pkgdesc="A small program for hiding the mouse cursor"
+url="http://ftp.x.org/contrib/utilities/unclutter-8.README"
+arch=('i686' 'x86_64')
+license=('Public Domain')
+depends=('libxext')
+makedepends=('imake')
+source=(http://ftp.x.org/contrib/utilities/$pkgname-$pkgver.tar.Z)
+md5sums=('83d7a6498b69078f869378f801b6a84b')
+
+build() {
+ cd ${srcdir}/$pkgname
+ xmkmf -a
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m 644 unclutter.man ${pkgdir}/usr/share/man/man1/unclutter.1
+}
diff --git a/community/uniconvertor/PKGBUILD b/community/uniconvertor/PKGBUILD
new file mode 100644
index 000000000..2196cd9aa
--- /dev/null
+++ b/community/uniconvertor/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 26525 2010-09-15 22:29:59Z schuay $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=uniconvertor
+pkgver=1.1.5
+pkgrel=3
+pkgdesc="A universal vector graphics translator using sK1 engine."
+arch=('i686' 'x86_64')
+url="http://sk1project.org/modules.php?name=Products&product=uniconvertor"
+license=('GPL')
+depends=('python2' 'pil' 'python-reportlab' 'sk1libs')
+makedepends=('gcc')
+source=(http://uniconvertor.googlecode.com/files/uniconvertor-$pkgver.tar.gz)
+md5sums=('d1272315a58304ece2ff588834e23f72')
+
+build() {
+ cd "$srcdir/uniconvertor-$pkgver"
+
+ # python2 fix
+ sed -i 's_#! /usr/bin/python_#! /usr/bin/python2_' src/__init__.py
+
+ python2 setup.py build
+ python2 setup.py install --root="$pkgdir"
+}
diff --git a/community/unifdef/PKGBUILD b/community/unifdef/PKGBUILD
new file mode 100644
index 000000000..7f6fc1122
--- /dev/null
+++ b/community/unifdef/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 1000 2009-08-11 09:12:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=unifdef
+pkgver=1.0
+pkgrel=2
+pkgdesc="Remove #ifdef'ed lines"
+arch=(i686 x86_64)
+url="http://www.cs.cmu.edu/~ajw/public/dist/"
+license=('GPL')
+depends=()
+source=(http://www.cs.cmu.edu/~ajw/public/dist/unifdef-$pkgver.tar.gz)
+md5sums=('825240622f35c7b002f11ece1af4ba22')
+
+build() {
+ cd "$startdir/src/$pkgname-$pkgver"
+
+ make clean
+ make || return 1
+
+ mkdir -p $startdir/pkg/usr/bin $startdir/pkg/usr/share/man/man1 && \
+ install -m 0755 unifdef $startdir/pkg/usr/bin/ && \
+ install -m 0644 unifdef.1 $startdir/pkg/usr/share/man/man1/
+}
diff --git a/community/units/PKGBUILD b/community/units/PKGBUILD
new file mode 100644
index 000000000..7cfab5582
--- /dev/null
+++ b/community/units/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 40288 2011-02-22 18:18:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Steve Sansom <snsansom@gmail.com>
+
+pkgname=units
+pkgver=1.88
+pkgrel=2
+pkgdesc="converts between different units"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/units/units.html"
+depends=('readline')
+license=("GPL")
+options=('!makeflags')
+install=units.install
+source=(http://ftp.gnu.org/gnu/units/$pkgname-$pkgver.tar.gz)
+md5sums=('9b2ee6e7e0e9c62741944cf33fc8a656')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --datadir=/usr/share/units
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/units/units.install b/community/units/units.install
new file mode 100644
index 000000000..7eae54377
--- /dev/null
+++ b/community/units/units.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(units.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/community/unpaper/PKGBUILD b/community/unpaper/PKGBUILD
new file mode 100644
index 000000000..ea0e42e87
--- /dev/null
+++ b/community/unpaper/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 21219 2010-07-15 09:47:52Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Hauser <andy-aur@splashground.de>
+
+pkgname=unpaper
+pkgver=0.3
+pkgrel=1
+pkgdesc="post-processing tool for scanned sheets of paper"
+url="http://$pkgname.berlios.de/"
+license="GPL"
+depends=()
+arch=('i686' 'x86_64')
+makedepends=(gcc)
+source=("http://download.berlios.de/unpaper/$pkgname-${pkgver}.tar.gz")
+md5sums=('be41eaf8556e7df39ab53939c99c4f7b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/src
+ gcc $CFLAGS -lm -funroll-all-loops -fomit-frame-pointer -ftree-vectorize -o unpaper unpaper.c
+ install -D -m0755 unpaper $pkgdir/usr/bin/unpaper
+}
diff --git a/community/unrealircd/PKGBUILD b/community/unrealircd/PKGBUILD
new file mode 100644
index 000000000..3ad0f297a
--- /dev/null
+++ b/community/unrealircd/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 33887 2010-11-29 08:54:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Zerial <fernando@zerial.org>
+
+pkgname=unrealircd
+pkgver=3.2.8.1
+pkgrel=6
+pkgdesc="Open Source IRC Server."
+arch=('i686' 'x86_64')
+url="http://unrealircd.com"
+license=('GPL2')
+depends=(openssl curl)
+conflicts=(ircd)
+provides=(ircd)
+backup=(etc/unrealircd/unrealircd.conf)
+source=(http://www.unrealircd.com/downloads/Unreal$pkgver.tar.gz
+ unrealircd.rc)
+md5sums=('7b741e94e867c0a7370553fd01506c66'
+ '0d728240132a97a2cef61be9558750b1')
+
+build() {
+ mkdir -p $pkgdir/etc/unrealircd
+ mkdir -p $pkgdir/usr/bin
+ cd $srcdir/Unreal3.2
+
+ patch src/ircd.c <<EOF
+847c847
+< #ifdef USE_SSL
+---
+> #if 0
+857c857
+< #ifdef ZIP_LINKS
+---
+> #if 0
+867c867
+< #ifdef USE_LIBCURL
+---
+> #if 0
+EOF
+
+ ./configure --with-showlistmodes \
+ --enable-hub --enable-prefixaq --with-listen=5 \
+ --with-dpath=/etc/unrealircd \
+ --with-spath=/usr/bin \
+ --with-nick-history=2000 --with-sendq=3000000 \
+ --with-bufferpool=18 --with-hostname=archlinux \
+ --with-permissions=0600 --with-fd-setsize=1024 \
+ --enable-dynamic-linking \
+ --enable-ziplinks \
+ --enable-ssl \
+ --enable-libcurl=/usr
+
+ make
+ make IRCDDIR=$pkgdir/etc/unrealircd BINDIR=$pkgdir/usr/bin install
+
+ mv $srcdir/Unreal3.2/src/ircd $pkgdir/usr/bin/unrealircd
+ mv $srcdir/Unreal3.2/doc/example.conf $pkgdir/etc/unrealircd/unrealircd.conf
+ mkdir -p $pkgdir/usr/lib/unrealircd
+ mv $pkgdir/etc/unrealircd/modules $pkgdir/usr/lib/unrealircd/
+ ln -s /usr/lib/unrealircd/modules $pkgdir/etc/unrealircd/modules
+ install -D -m0755 $srcdir/unrealircd.rc $pkgdir/etc/rc.d/unrealircd
+
+ # log
+ mkdir -p $pkgdir/var/log/unrealircd/
+ touch $pkgdir/var/log/unrealircd/ircd.log
+ ln -s /var/log/unrealircd/ircd.log $pkgdir/etc/unrealircd/ircd.log
+
+ find $pkgdir/usr -type f -exec chmod ugo+r {} \;
+ find $pkgdir/usr -type d -exec chmod ugo+rx {} \;
+}
diff --git a/community/unrealircd/unrealircd.rc b/community/unrealircd/unrealircd.rc
new file mode 100755
index 000000000..551781760
--- /dev/null
+++ b/community/unrealircd/unrealircd.rc
@@ -0,0 +1,61 @@
+#!/bin/bash
+
+daemon_name=unrealircd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof ircd unrealircd
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=`get_pid`
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ export PID_FILE="/var/run/unrealircd.pid"
+ /usr/bin/unrealircd 1>>/var/log/unrealircd/ircd.log 2>>/var/log/unrealircd/ircd.log
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `get_pid` > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=`get_pid`
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/unrtf/ChangeLog b/community/unrtf/ChangeLog
new file mode 100644
index 000000000..002e15b32
--- /dev/null
+++ b/community/unrtf/ChangeLog
@@ -0,0 +1,8 @@
+2010-01-18 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.21.1
+
+2009-05-31 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * FS#14043 fixed
+
+2009-03-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 0.21.0
diff --git a/community/unrtf/PKGBUILD b/community/unrtf/PKGBUILD
new file mode 100644
index 000000000..9797c8e52
--- /dev/null
+++ b/community/unrtf/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 8335 2010-01-18 20:36:57Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: froggie <sullivanva@gmail.com>
+
+pkgname=unrtf
+pkgver=0.21.1
+pkgrel=1
+pkgdesc="Command-line program which converts RTF documents to other formats"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/unrtf/unrtf.html"
+license=('GPL3')
+depends=('glibc')
+source=(http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('ce069646837d0a2c15b439a5529afde8')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+# bugfix FS#14043
+ sed -e 's|/usr/local|/usr|' -i src/{main.h,path.h} || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/unshield/PKGBUILD b/community/unshield/PKGBUILD
new file mode 100644
index 000000000..99cb13787
--- /dev/null
+++ b/community/unshield/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 23623 2010-08-13 18:58:07Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=unshield
+pkgver=0.6
+pkgrel=2
+pkgdesc="Extracts CAB files from InstallShield installers"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/synce/files/"
+license=('custom')
+depends=('zlib')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/synce/${pkgname}-${pkgver}.tar.gz
+ libunshield.c.patch)
+md5sums=('31a829192a255160d1f71cda4c865c9c'
+ 'aa731ca6fd7c7dfb03f8b07e232b37d3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # See http://www.mail-archive.com/synce-devel@lists.sourceforge.net/msg01796.html
+ patch -Np0 -i "${srcdir}/libunshield.c.patch" || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/unshield/LICENSE
+}
+
diff --git a/community/unshield/libunshield.c.patch b/community/unshield/libunshield.c.patch
new file mode 100644
index 000000000..e78395e20
--- /dev/null
+++ b/community/unshield/libunshield.c.patch
@@ -0,0 +1,12 @@
+--- lib/libunshield.c 2004-08-24 08:10:27.000000000 +0200
++++ lib/libunshield.c 2010-08-13 20:39:58.000000000 +0200
+@@ -271,6 +271,9 @@
+
+ header->major_version = (header->common.version >> 12) & 0xf;
+
++ if (header->common.version == 0x020004b0)
++ header->major_version = 9;
++
+ #if 0
+ if (header->major_version < 5)
+ header->major_version = 5;
diff --git a/community/uptimed/PKGBUILD b/community/uptimed/PKGBUILD
new file mode 100644
index 000000000..7b60c38b8
--- /dev/null
+++ b/community/uptimed/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 17435 2010-05-24 10:30:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Tom Killian <tomk@runbox.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=uptimed
+pkgver=0.3.16
+pkgrel=3
+pkgdesc="A system uptime record daemon"
+arch=(i686 x86_64)
+install=$pkgname.install
+url="http://podgorny.cz/uptimed/"
+license=('GPL')
+depends=('glibc')
+backup=(etc/uptimed.conf)
+source=(http://podgorny.cz/$pkgname/releases/$pkgname-$pkgver.tar.bz2
+ uptimed)
+md5sums=('f87ec2cc39039239004afa542cf99c59'
+ '4ae90bee9fc78014a889a5072effb735')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ # Change log path to Arch standard
+ for M in `ls M*`; do
+ sed -i "s|/var/spool/uptimed|$startdir/pkg/var/log/uptimed|" $M
+ done
+ sed -i 's|spool|log|' libuptimed/urec.h
+
+ autoreconf
+ libtoolize --force
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+
+ make || return 1
+ make prefix=$startdir/pkg/usr sysconfdir=$startdir/pkg/etc install
+
+ mv $startdir/pkg/etc/uptimed.conf-dist \
+ $startdir/pkg/etc/uptimed.conf
+ install -D ../uptimed $startdir/pkg/etc/rc.d/uptimed
+ find $startdir/pkg -name '*.la' -exec rm {} \;
+}
diff --git a/community/uptimed/uptimed b/community/uptimed/uptimed
new file mode 100755
index 000000000..6fe9ec3e3
--- /dev/null
+++ b/community/uptimed/uptimed
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/uptimed`
+case "$1" in
+ start)
+ stat_busy "Starting Uptimed Daemon"
+ [ -z "$PID" ] && /usr/sbin/uptimed -b # create the boot record
+ if [ $? -gt 0 ] ; then
+ stat_fail
+ else
+ add_daemon uptimed # create the 'state' dir
+ /usr/sbin/uptimed # fire up the daemon
+ if [ $? -gt 0 ]; then
+ stat_fail
+ fi
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Uptimed Daemon"
+ [ "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon uptimed # remove the 'state' dir
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/uptimed/uptimed.install b/community/uptimed/uptimed.install
new file mode 100644
index 000000000..178061706
--- /dev/null
+++ b/community/uptimed/uptimed.install
@@ -0,0 +1,7 @@
+# arg 1: the old package version
+pre_remove() {
+ # clean up after ourselves
+ #
+ /bin/rm -rf /var/log/uptimed
+}
+
diff --git a/community/upx/PKGBUILD b/community/upx/PKGBUILD
new file mode 100644
index 000000000..77b55ba50
--- /dev/null
+++ b/community/upx/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: bekks <eduard.warkentin@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=upx
+pkgver=3.07
+pkgrel=1
+pkgdesc='Ultimate executable compressor.'
+arch=('i686' 'x86_64')
+url='http://upx.sourceforge.net/'
+license=('GPL')
+depends=('zlib')
+makedepends=('ucl')
+source=("http://upx.sourceforge.net/download/${pkgname}-${pkgver}-src.tar.bz2"
+ 'http://downloads.sourceforge.net/sevenzip/lzma465.tar.bz2')
+md5sums=('8186ab103288242f7e8ecad1acd4af03'
+ '29d5ffd03a5a3e51aef6a74e9eafb759')
+
+build() {
+ cd ${pkgname}-${pkgver}-src
+
+ make UPX_LZMA_VERSION=0x465 UPX_LZMADIR=${srcdir} all
+}
+
+package() {
+ cd ${pkgname}-${pkgver}-src
+
+ install -D src/upx.out \
+ ${pkgdir}/usr/bin/upx
+
+ install -D -m644 doc/upx.1 \
+ ${pkgdir}/usr/share/man/man1/upx.1
+}
diff --git a/community/uqm/PKGBUILD b/community/uqm/PKGBUILD
new file mode 100644
index 000000000..e4991fbe8
--- /dev/null
+++ b/community/uqm/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer : Daenyth <Daenyth+Arch _AT_ gmail _DOT_ com>
+# Contributor : wizzomafizzo <wizzomafizzo@gmail.com>
+# Contributor: tochiro@no.spam.mail.berlios.de
+# Contributor: sh__
+
+pkgname=uqm
+pkgver=0.6.2
+pkgrel=5
+pkgdesc="The Ur-Quan Masters is a port of Star Control 2"
+arch=(i686 x86_64)
+url="http://sc2.sf.net/"
+license=('GPL')
+depends=('libmikmod' 'libvorbis' 'sdl_image' 'libgl')
+makedepends=('imagemagick')
+optdepends=('uqm-sound: For extra music and conversation audio')
+source=(http://downloads.sourceforge.net/sourceforge/sc2/uqm-${pkgver}-source.tgz
+ http://downloads.sourceforge.net/sourceforge/sc2/uqm-0.6.0-content.uqm
+ config.state uqm)
+md5sums=('ba4ee595b62349873d510b9827e7648d' '7e8f0ed8490e24231431420ea2ba6a03'
+ '07f0a0e74a0b1c706940cc43d5a4160c' '07e64632fce6323a14ab558d0214b885')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/sc2
+
+ cp $srcdir/config.state .
+ sed -e "/INPUT_install_prefix/ s|replaceme|$pkgdir/usr|" \
+ -i config.state
+
+ echo | ./build.sh uqm config || return 1
+
+ ./build.sh uqm || return 1
+ ./build.sh uqm install
+
+ install -Dm644 $srcdir/$pkgname-0.6.0-content.uqm \
+ $pkgdir/usr/share/uqm/content/packages/$pkgname-0.6.0-content.uqm
+
+ rm $pkgdir/usr/bin/uqm
+ install -Dm755 $srcdir/uqm $pkgdir/usr/bin/uqm
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/uqm/config.state b/community/uqm/config.state
new file mode 100644
index 000000000..1568f4a24
--- /dev/null
+++ b/community/uqm/config.state
@@ -0,0 +1,13 @@
+CHOICE_debug_VALUE='nodebug'
+CHOICE_graphics_VALUE='opengl'
+CHOICE_sound_VALUE='mixsdl'
+CHOICE_mikmod_VALUE='external'
+CHOICE_ovcodec_VALUE='standard'
+CHOICE_netplay_VALUE='full'
+CHOICE_joystick_VALUE='enabled'
+CHOICE_ioformat_VALUE='stdio_zip'
+CHOICE_accel_VALUE='asm'
+INPUT_install_prefix_VALUE='replaceme'
+INPUT_install_bindir_VALUE='$prefix/bin'
+INPUT_install_libdir_VALUE='$prefix/lib'
+INPUT_install_sharedir_VALUE='$prefix/share'
diff --git a/community/uqm/uqm b/community/uqm/uqm
new file mode 100644
index 000000000..893092074
--- /dev/null
+++ b/community/uqm/uqm
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec "/usr/lib/uqm/uqm" "--contentdir=/usr/share/uqm/content" "$@"
diff --git a/community/uriparser/PKGBUILD b/community/uriparser/PKGBUILD
new file mode 100644
index 000000000..1d8defbb9
--- /dev/null
+++ b/community/uriparser/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Juan Pablo Gonzalez Tognarelli <lord_jotape@yahoo.com.ar>
+ pkgname=uriparser
+ pkgver=0.7.5
+ pkgrel=1
+ pkgdesc="uriparser is a strictly RFC 3986 compliant URI parsing library. uriparser is cross-platform, fast, supports Unicode"
+ url="http://sourceforge.net/projects/uriparser/"
+ depends=(glibc)
+ makedepends=(doxygen)
+ source=(http://downloads.sourceforge.net/sourceforge/uriparser/$pkgname-$pkgver.tar.bz2)
+ md5sums=('4f4349085fe5de33bcae8d0f26649593')
+ arch=('i686' 'x86_64')
+ license="CUSTOM"
+ build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr --disable-test
+ ln -s ${srcdir}/$pkgname-$pkgver/doc/Doxyfile.in ${srcdir}/$pkgname-$pkgver/doc/Doxyfile
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ install -D -m644 "${srcdir}/$pkgname-$pkgver/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
+ \ No newline at end of file
diff --git a/community/usb_modeswitch/PKGBUILD b/community/usb_modeswitch/PKGBUILD
new file mode 100644
index 000000000..5bfced05d
--- /dev/null
+++ b/community/usb_modeswitch/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 42961 2011-03-22 21:16:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=usb_modeswitch
+pkgver=1.1.7
+pkgrel=1
+_pkgdata=20110227
+pkgdesc="Activating switchable USB devices on Linux."
+arch=('i686' 'x86_64')
+url="http://www.draisberghof.de/usb_modeswitch/"
+license=('GPL')
+depends=('libusb-compat' 'tcl')
+makedepends=('gcc' 'make')
+backup=("etc/$pkgname.conf")
+source=("http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-${pkgver}.tar.bz2"
+ "http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-${_pkgdata}.tar.bz2")
+md5sums=('b75e42b7b2d30e9d4cbd5c159f925247'
+ '2f5e5bfa21a97b705a22f95bec367793')
+
+build() {
+ cd $srcdir
+
+ cd $srcdir/usb-modeswitch-$pkgver/
+ mkdir -p $pkgdir/lib/udev/usb_modeswitch
+ mkdir -p $pkgdir/etc
+ mkdir -p $pkgdir/usr/share/man/man1
+
+ make clean
+ make
+ make DESTDIR=${pkgdir} install
+
+ mv ${pkgdir}/lib/udev/usb_modeswitch/usb_modeswitch.sh ${pkgdir}/lib/udev/usb_modeswitch.sh
+ rmdir ${pkgdir}/lib/udev/usb_modeswitch
+ mv ${pkgdir}/lib/udev/usb_modeswitch.sh ${pkgdir}/lib/udev/usb_modeswitch
+ cp device_reference.txt $pkgdir/etc/usb_modeswitch.setup
+
+ cd $srcdir/usb-modeswitch-data-${_pkgdata}
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/ushare/PKGBUILD b/community/ushare/PKGBUILD
new file mode 100644
index 000000000..3fb02b760
--- /dev/null
+++ b/community/ushare/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 41581 2011-03-08 01:32:14Z giovanni $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com>
+# Contributor: kastor <kastor@fobos.org.ar>
+
+pkgname=ushare
+pkgver=1.1a
+pkgrel=10
+pkgdesc="A free UPnP A/V Media Server for Linux"
+url="http://ushare.geexbox.org"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('libupnp' 'libdlna')
+backup=(etc/ushare/ushare.conf)
+source=("http://ushare.geexbox.org/releases/${pkgname}-${pkgver}.tar.bz2"
+ "ushare"
+ "upnp-build-fix.patch"
+ "ushare-config.patch")
+md5sums=('5bbcdbf1ff85a9710fa3d4e82ccaa251'
+ 'f252120bcd4362ed64111239d358851c'
+ '32c29f9f673e8b3a3d9e7bf5e60febbc'
+ '5243475c0cebc5db49296b2f3691085b')
+md5sums=('5bbcdbf1ff85a9710fa3d4e82ccaa251'
+ 'f252120bcd4362ed64111239d358851c'
+ '32c29f9f673e8b3a3d9e7bf5e60febbc'
+ '5243475c0cebc5db49296b2f3691085b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ sed -i -e \
+ "s%^INSTALL=\"/usr/bin/install -c\"$%INSTALL=\"$(which install) -c\"%" \
+ configure
+ patch -p1 <$srcdir/upnp-build-fix.patch
+ patch -p1 <$srcdir/ushare-config.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc/ushare \
+ --enable-dlna --with-libdlna-dir=/usr/include/libavformat
+
+ make
+ make DESTDIR=${pkgdir} install
+
+ rm -rf ${pkgdir}/etc/${pkgname}/init.d
+ install -m 0755 -D ${srcdir}/ushare ${pkgdir}/etc/rc.d/ushare
+ install -d -m 0755 ${pkgdir}/etc/conf.d/
+ echo "PARAMS=" > ${pkgdir}/etc/conf.d/ushare
+ install -D -m0644 src/ushare.1 $pkgdir/usr/share/man/man1/ushare.1
+}
diff --git a/community/ushare/upnp-build-fix.patch b/community/ushare/upnp-build-fix.patch
new file mode 100644
index 000000000..c3ec37a32
--- /dev/null
+++ b/community/ushare/upnp-build-fix.patch
@@ -0,0 +1,156 @@
+diff -wbBur ushare-1.1a/src/http.c ushare-1.1a.my/src/http.c
+--- ushare-1.1a/src/http.c 2007-12-09 13:03:36.000000000 +0000
++++ ushare-1.1a.my/src/http.c 2010-10-29 11:13:07.000000000 +0000
+@@ -77,8 +77,7 @@
+ info->content_type = ixmlCloneDOMString (content_type);
+ }
+
+-static int
+-http_get_info (const char *filename, struct File_Info *info)
++int http_get_info (const char *filename, struct File_Info *info)
+ {
+ extern struct ushare_t *ut;
+ struct upnp_entry_t *entry = NULL;
+@@ -197,8 +196,7 @@
+ return ((UpnpWebFileHandle) file);
+ }
+
+-static UpnpWebFileHandle
+-http_open (const char *filename, enum UpnpOpenFileMode mode)
++UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode)
+ {
+ extern struct ushare_t *ut;
+ struct upnp_entry_t *entry = NULL;
+@@ -251,8 +249,7 @@
+ return ((UpnpWebFileHandle) file);
+ }
+
+-static int
+-http_read (UpnpWebFileHandle fh, char *buf, size_t buflen)
++int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen)
+ {
+ struct web_file_t *file = (struct web_file_t *) fh;
+ ssize_t len = -1;
+@@ -286,8 +283,7 @@
+ return len;
+ }
+
+-static int
+-http_write (UpnpWebFileHandle fh __attribute__((unused)),
++int http_write (UpnpWebFileHandle fh __attribute__((unused)),
+ char *buf __attribute__((unused)),
+ size_t buflen __attribute__((unused)))
+ {
+@@ -296,8 +292,7 @@
+ return 0;
+ }
+
+-static int
+-http_seek (UpnpWebFileHandle fh, off_t offset, int origin)
++int http_seek (UpnpWebFileHandle fh, off_t offset, int origin)
+ {
+ struct web_file_t *file = (struct web_file_t *) fh;
+ off_t newpos = -1;
+@@ -371,8 +366,7 @@
+ return 0;
+ }
+
+-static int
+-http_close (UpnpWebFileHandle fh)
++int http_close (UpnpWebFileHandle fh)
+ {
+ struct web_file_t *file = (struct web_file_t *) fh;
+
+@@ -402,13 +396,3 @@
+
+ return 0;
+ }
+-
+-struct UpnpVirtualDirCallbacks virtual_dir_callbacks =
+- {
+- http_get_info,
+- http_open,
+- http_read,
+- http_write,
+- http_seek,
+- http_close
+- };
+diff -wbBur ushare-1.1a/src/http.h ushare-1.1a.my/src/http.h
+--- ushare-1.1a/src/http.h 2007-12-09 13:03:36.000000000 +0000
++++ ushare-1.1a.my/src/http.h 2010-10-29 11:13:11.000000000 +0000
+@@ -25,6 +25,13 @@
+ #include <upnp/upnp.h>
+ #include <upnp/upnptools.h>
+
+-struct UpnpVirtualDirCallbacks virtual_dir_callbacks;
++int http_close (UpnpWebFileHandle fh);
++int http_write (UpnpWebFileHandle fh __attribute__((unused)),
++ char *buf __attribute__((unused)),
++ size_t buflen __attribute__((unused)));
++int http_seek (UpnpWebFileHandle fh, off_t offset, int origin);
++UpnpWebFileHandle http_open (const char *filename, enum UpnpOpenFileMode mode);
++int http_read (UpnpWebFileHandle fh, char *buf, size_t buflen);
++int http_get_info (const char *filename, struct File_Info *info);
+
+ #endif /* _HTTP_H_ */
+diff -wbBur ushare-1.1a/src/ushare.c ushare-1.1a.my/src/ushare.c
+--- ushare-1.1a/src/ushare.c 2007-12-09 13:03:36.000000000 +0000
++++ ushare-1.1a.my/src/ushare.c 2010-10-29 11:17:45.000000000 +0000
+@@ -188,7 +188,7 @@
+ if (strcmp (request->DevUDN + 5, ut->udn))
+ return;
+
+- ip = request->CtrlPtIPAddr.s_addr;
++ ip = (*(struct sockaddr_in*)&request->CtrlPtIPAddr).sin_addr.s_addr;
+ ip = ntohl (ip);
+ sprintf (val, "%d.%d.%d.%d",
+ (ip >> 24) & 0xFF, (ip >> 16) & 0xFF, (ip >> 8) & 0xFF, ip & 0xFF);
+@@ -348,7 +348,47 @@
+
+ UpnpEnableWebserver (TRUE);
+
+- res = UpnpSetVirtualDirCallbacks (&virtual_dir_callbacks);
++ res = UpnpVirtualDir_set_WriteCallback(http_write);
++ if (res != UPNP_E_SUCCESS)
++ {
++ log_error (_("Cannot set virtual directory callbacks\n"));
++ free (description);
++ return -1;
++ }
++
++ res = UpnpVirtualDir_set_GetInfoCallback(http_get_info);
++ if (res != UPNP_E_SUCCESS)
++ {
++ log_error (_("Cannot set virtual directory callbacks\n"));
++ free (description);
++ return -1;
++ }
++
++ res = UpnpVirtualDir_set_ReadCallback(http_read);
++ if (res != UPNP_E_SUCCESS)
++ {
++ log_error (_("Cannot set virtual directory callbacks\n"));
++ free (description);
++ return -1;
++ }
++
++ res = UpnpVirtualDir_set_OpenCallback(http_open);
++ if (res != UPNP_E_SUCCESS)
++ {
++ log_error (_("Cannot set virtual directory callbacks\n"));
++ free (description);
++ return -1;
++ }
++
++ res = UpnpVirtualDir_set_SeekCallback(http_seek);
++ if (res != UPNP_E_SUCCESS)
++ {
++ log_error (_("Cannot set virtual directory callbacks\n"));
++ free (description);
++ return -1;
++ }
++
++ res = UpnpVirtualDir_set_CloseCallback(http_close);
+ if (res != UPNP_E_SUCCESS)
+ {
+ log_error (_("Cannot set virtual directory callbacks\n"));
diff --git a/community/ushare/ushare b/community/ushare/ushare
new file mode 100755
index 000000000..0e920ae0a
--- /dev/null
+++ b/community/ushare/ushare
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+DESC="uShare UPnP A/V Media Server"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -r "/etc/ushare/ushare.conf" ] && . /etc/ushare/ushare.conf
+[ -r "/etc/conf.d/ushare" ] && . /etc/conf.d/ushare
+
+# abort if no executable exists
+#[ -x $DAEMON ] || stat_fail
+
+# abort if no shared directory is defined
+#[ -z "$USHARE_DIR" ] && stat_fail
+
+#set -e
+
+#checkpid() {
+# [ -e $PIDFILE ] || touch $PIDFILE
+#}
+
+PID=`pidof -o %PPID /usr/bin/ushare`
+case "$1" in
+ start)
+ stat_busy "Starting $DESC"
+ [ -z "$PID" ] && /usr/bin/ushare -D -x $PARAMS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/bin/ushare`
+ echo $PID > /var/run/ushare.pid
+ add_daemon ushare
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping $DESC"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/ushare.pid
+ rm_daemon ushare
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/community/ushare/ushare-config.patch b/community/ushare/ushare-config.patch
new file mode 100644
index 000000000..d064db890
--- /dev/null
+++ b/community/ushare/ushare-config.patch
@@ -0,0 +1,22 @@
+--- ushare-1.1a/scripts/ushare.conf 2007-12-09 07:03:36.000000000 -0600
++++ b/scripts/ushare.conf 2010-11-15 12:09:45.000000000 -0600
+@@ -31,15 +31,15 @@ USHARE_DIR=
+ USHARE_OVERRIDE_ICONV_ERR=
+
+ # Enable Web interface (yes/no)
+-ENABLE_WEB=
++USHARE_ENABLE_WEB=
+
+ # Enable Telnet control interface (yes/no)
+-ENABLE_TELNET=
++USHARE_ENABLE_TELNET=
+
+ # Use XboX 360 compatibility mode (yes/no)
+-ENABLE_XBOX=
++USHARE_ENABLE_XBOX=
+
+ # Use DLNA profile (yes/no)
+ # This is needed for PlayStation3 to work (among other devices)
+-ENABLE_DLNA=
++USHARE_ENABLE_DLNA=
+
diff --git a/community/ussp-push/PKGBUILD b/community/ussp-push/PKGBUILD
new file mode 100644
index 000000000..673cb4718
--- /dev/null
+++ b/community/ussp-push/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 21981 2010-07-19 13:46:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Giovanni Scafora <linuxmania@gmail.com>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=ussp-push
+pkgver=0.11
+pkgrel=3
+pkgdesc="OBEX object pusher for Linux"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xmailserver.org/ussp-push.html"
+depends=('openobex')
+source=(http://xmailserver.org/$pkgname-$pkgver.tar.gz
+ ussp-push-remote-name.patch)
+md5sums=('5c44983ee27809867041feff6bb4423a'
+ '3c58795be3a977a5bf7b267f00dde660')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -p1 <$srcdir/ussp-push-remote-name.patch
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/ussp-push/ussp-push-remote-name.patch b/community/ussp-push/ussp-push-remote-name.patch
new file mode 100644
index 000000000..6cc6b7e9b
--- /dev/null
+++ b/community/ussp-push/ussp-push-remote-name.patch
@@ -0,0 +1,12 @@
+diff -dupr ussp-push-0.11.old/src/obex_socket.c ussp-push-0.11/src/obex_socket.c
+--- ussp-push-0.11.old/src/obex_socket.c 2009-05-15 11:03:34.904797689 +0200
++++ ussp-push-0.11/src/obex_socket.c 2009-05-15 11:03:45.599797286 +0200
+@@ -197,7 +197,7 @@ static int bt_sock_name2bth(int devid, c
+ for (i = 0; i < niinf; i++) {
+ char devname[128];
+
+- if (hci_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1,
++ if (hci_read_remote_name(dd, &piinf[i].bdaddr, sizeof(devname) - 1,
+ devname, 100000) >= 0) {
+ if (strcasecmp(devname, btname) == 0) {
+ *btaddr = piinf[i].bdaddr;
diff --git a/community/ustr/PKGBUILD b/community/ustr/PKGBUILD
new file mode 100644
index 000000000..9525962a1
--- /dev/null
+++ b/community/ustr/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 17701 2010-05-24 20:44:23Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=ustr
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="micro string API for C"
+arch=(i686 x86_64)
+url="http://www.and.org/ustr/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.and.org/ustr/$pkgver/ustr-$pkgver.tar.bz2)
+md5sums=('93147d9f0c9765d4cd0f04f7e44bdfce')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ mv $pkgdir/usr/share/doc/man $pkgdir/usr/share/
+}
diff --git a/community/uucp/PKGBUILD b/community/uucp/PKGBUILD
new file mode 100644
index 000000000..ffc819a91
--- /dev/null
+++ b/community/uucp/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Jick Nan <jick.nan@gmail.com>
+
+pkgname=uucp
+pkgver=1.07
+pkgrel=2
+pkgdesc="Taylor UUCP is a free implementation of UUCP and is the standard UUCP used on the GNU system"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/uucp/uucp.html"
+license=('GPL')
+makedepends=('wget' 'sed' 'grep')
+backup=('etc/uucp/config'
+ 'etc/uucp/port'
+ 'etc/uucp/sys')
+source=(http://ftp.gnu.org/gnu/uucp/${pkgname}-${pkgver}.tar.gz)
+md5sums=('64c54d43787339a7cced48390eb3e1d0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -D -m644 sample/config ${pkgdir}/etc/uucp/config && \
+ install -D -m644 sample/sys1 ${pkgdir}/etc/uucp/sys && \
+ install -D -m644 sample/port ${pkgdir}/etc/uucp/port
+
+ mv ${pkgdir}/usr/info ${pkgdir}/usr/share/
+}
+
diff --git a/community/uudeview/PKGBUILD b/community/uudeview/PKGBUILD
new file mode 100644
index 000000000..6c1c3d62c
--- /dev/null
+++ b/community/uudeview/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 7474 2010-01-07 02:52:30Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: kmaster <kmaster12@sasktel.net>
+
+pkgname=uudeview
+pkgver=0.5.20
+pkgrel=8
+pkgdesc="UUDeview helps transmitting & recieving binary files using mail or newsgroups. Includes library files."
+arch=('i686' 'x86_64')
+url="http://www.fpx.de/fp/Software/UUDeview/"
+license=('GPL')
+optdepends=('tk: for GUI')
+source=(http://www.fpx.de/fp/Software/UUDeview/download/$pkgname-$pkgver.tar.gz)
+md5sums=('0161abaec3658095044601eae82bbc5b')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share
+ make || return 1
+ make prefix=$startdir/pkg/usr install || return 1
+ mkdir -p $startdir/pkg/usr/lib/uudeview && \
+ mkdir -p $startdir/pkg/usr/include/uudeview || return 1
+
+ cd $startdir/src/uudeview-$pkgver/uulib
+ ./configure --prefix=/usr
+ make || return 1
+ cp -v *.o $startdir/pkg/usr/lib/uudeview && \
+ cp -v *.a $startdir/pkg/usr/lib/uudeview && \
+ cp -v *.h $startdir/pkg/usr/include/uudeview
+}
diff --git a/community/uzbl/PKGBUILD b/community/uzbl/PKGBUILD
new file mode 100644
index 000000000..7b0ae79cd
--- /dev/null
+++ b/community/uzbl/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 43484 2011-03-26 16:57:27Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Dieter Plaetinck <dieter@plaetinck.be>
+
+pkgbase=uzbl
+pkgname=('uzbl-core' 'uzbl-browser' 'uzbl-tabbed')
+pkgver=2011.03.17
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.uzbl.org"
+license=('GPL3')
+makedepends=('git' 'pkgconfig' 'libwebkit>=1.2.0')
+source=(uzbl-$pkgver.tar.gz::http://github.com/Dieterbe/uzbl/tarball/$pkgver)
+md5sums=('fffd69136e0c4a9dce8875e776f7e97e')
+
+build() {
+ cd "$srcdir"/Dieterbe-uzbl-*
+
+ # python2 fix
+ for file in examples/data/scripts/uzbl*; do
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find ./ -name '*.py')
+
+ make
+}
+
+package_uzbl-core() {
+ pkgdesc="Webpage interface component meant for integration with other tools and scripts"
+ depends=('libwebkit')
+ optdepends=('socat: to interface with the socket' 'dmenu: to run some of the example scripts'
+ 'zenity: to run some of the example scripts'
+ 'python2: to run some of the example scripts'
+ 'xclip: for clipboard related keybindings'
+ 'pygtk: for uzbl-tabbed')
+ install=uzbl.install
+
+ cd "$srcdir"/Dieterbe-uzbl-*
+
+ make DESTDIR="$pkgdir" PREFIX=/usr install-uzbl-core
+}
+
+package_uzbl-browser() {
+ pkgdesc="A complete browser experience based on uzbl-core"
+ depends=("uzbl-core=$pkgver" 'socat' 'zenity' 'xclip' 'dmenu' 'python2')
+
+ cd "$srcdir"/Dieterbe-uzbl-*
+
+ make DESTDIR="$pkgdir" PREFIX=/usr install-uzbl-browser
+}
+
+package_uzbl-tabbed() {
+ pkgdesc="Tabbing manager providing multiple uzbl-browser instances in 1 window"
+ depends=("uzbl-browser=$pkgver" 'pygtk')
+
+ cd "$srcdir"/Dieterbe-uzbl-*
+
+ make DESTDIR="$pkgdir" PREFIX=/usr install-uzbl-tabbed
+}
+
diff --git a/community/uzbl/uzbl.install b/community/uzbl/uzbl.install
new file mode 100644
index 000000000..ca5fc814b
--- /dev/null
+++ b/community/uzbl/uzbl.install
@@ -0,0 +1,17 @@
+post_install() {
+ /bin/true
+}
+
+post_upgrade() {
+ echo "Some incompatibily are introduced, please refer to http://www.uzbl.org/news.php?id=32"
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/vamps/PKGBUILD b/community/vamps/PKGBUILD
new file mode 100644
index 000000000..a5dd6a799
--- /dev/null
+++ b/community/vamps/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 21356 2010-07-16 05:25:17Z tdziedzic $
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Stefano Zamprogno <stefano.zamprogno@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=vamps
+pkgver=0.99.2
+pkgrel=8
+pkgdesc='Very fast requantisizing tool for backup DVDs'
+arch=('i686' 'x86_64')
+url='http://vamps.sourceforge.net'
+license=('GPL2')
+depends=('libdvdread')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('7d438185a2ae95ebb245472d9fa47d06')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ make
+
+ install -D play_cell/play_cell ${pkgdir}/usr/bin/play_cell
+
+ install ${pkgname}/${pkgname} ${pkgdir}/usr/bin/
+}
+
diff --git a/community/vdrift/PKGBUILD b/community/vdrift/PKGBUILD
new file mode 100644
index 000000000..39dae2cf6
--- /dev/null
+++ b/community/vdrift/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 27647 2010-09-26 17:36:38Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Anton Bazhenov <anton.bazhenov at gmail>
+# Contributor: Lone_Wolf lonewolf@xs4all.nl
+
+pkgname=vdrift
+pkgver=2010.06.30
+pkgrel=2
+pkgdesc="An open source driving simulation made with drift racing in mind"
+arch=('i686' 'x86_64')
+url="http://vdrift.net/"
+license=('GPL')
+depends=('sdl_gfx' 'sdl_image' 'glew' 'libvorbis' 'vdrift-data')
+makedepends=('scons' 'boost' 'asio')
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgname-${pkgver//./-}/$pkgname-${pkgver//./-}.tar.bz2
+ $pkgname.desktop)
+md5sums=('ddcaf90bb25f9ce9cc084d7f467d7b56'
+ '8bb429f37bcb4aed5e7ab1d80c5a4f93')
+
+build() {
+ cd "$srcdir"/$pkgname-${pkgver//./-}
+
+ # select arch
+ if [ `uname -m` = "x86_64" ]; then
+ _sconsarch="a64"
+ else
+ _sconsarch="686"
+ fi
+
+ # patch for crashing with bad drivers
+ sed -i 's/glGenerateMipmap/glGenerateMipmapEXT/g' src/texture.cpp
+
+ # build and install
+ scons \
+ "destdir"="$pkgdir" \
+ "arch"=$_sconsarch \
+ "release"=1 \
+ "force_feedback"=1 \
+ "prefix"=/usr \
+ "datadir"=share/$pkgname/data || return 1
+}
+
+package() {
+ cd "$srcdir"/$pkgname-${pkgver//./-}
+
+ scons install || return 1
+
+ # remove some unneeded files
+ find "$pkgdir"/usr/share/$pkgname -name SConscript -delete
+
+ # install icons
+ install -Dm644 data/textures/icons/$pkgname-16x16.png \
+ "$pkgdir"/usr/share/icons/hicolor/16x16/apps/$pkgname.png
+ install -Dm644 data/textures/icons/$pkgname-32x32.png \
+ "$pkgdir"/usr/share/icons/hicolor/32x32/apps/$pkgname.png
+ install -Dm644 data/textures/icons/$pkgname-64x64.png \
+ "$pkgdir"/usr/share/icons/hicolor/64x64/apps/$pkgname.png
+
+ # install .desktop file
+ install -Dm644 ../$pkgname.desktop \
+ "$pkgdir"/usr/share/applications/$pkgname.desktop
+
+ # delete installed data (will be provided by -data package)
+ rm -r "$pkgdir"/usr/share/$pkgname
+}
+# vim: sw=2:ts=2 et:
diff --git a/community/vdrift/vdrift.desktop b/community/vdrift/vdrift.desktop
new file mode 100644
index 000000000..7078f0d9c
--- /dev/null
+++ b/community/vdrift/vdrift.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=VDrift
+Version=2009-06-15
+GenericName=Racing Simulation
+Comment=An open source driving simulation made with drift racing in mind
+Exec=vdrift
+Icon=vdrift.png
+Terminal=false
+Categories=Game;Simulation;
diff --git a/community/vhba-module/PKGBUILD b/community/vhba-module/PKGBUILD
new file mode 100644
index 000000000..6f59b394e
--- /dev/null
+++ b/community/vhba-module/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 37578 2011-01-14 16:46:23Z mherych $
+# Maintainer: Mateusz Herych <heniekk@gmail.com>
+# Contributor: Charles Lindsay <charles@chaoslizard.org>
+
+pkgname=vhba-module
+pkgver=20100822
+_kernver='2.6.37-ARCH'
+pkgrel=3
+pkgdesc="Kernel module that emulates SCSI devices"
+arch=('i686' 'x86_64')
+url="http://cdemu.sourceforge.net/"
+license=('GPL2')
+depends=('kernel26>=2.6.37' 'kernel26<2.6.38')
+makedepends=('kernel26-headers>=2.6.37' 'git')
+install=vhba-module.install
+source=(http://downloads.sourceforge.net/cdemu/$pkgname-$pkgver.tar.gz
+ vhba-kernel2.6.37.patch)
+md5sums=('1d2f06ae33c5d15b7c29e467e4658aa2'
+ 'f0499fc54f6ef9b8d6ca0b9e940c5906')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ git apply -p2 ../vhba-kernel2.6.37.patch
+ make -j1 KDIR=/usr/src/linux-${_kernver} || return 1
+ install -D vhba.ko "$pkgdir/lib/modules/${_kernver}/extra/vhba.ko" || return 1
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/vhba-module.install"
+}
diff --git a/community/vhba-module/vhba-kernel2.6.37.patch b/community/vhba-module/vhba-kernel2.6.37.patch
new file mode 100644
index 000000000..e2b619c74
--- /dev/null
+++ b/community/vhba-module/vhba-kernel2.6.37.patch
@@ -0,0 +1,56 @@
+From 9ad7ec7fae387f05249b9f4e6accb3bc3b0b8b0f Mon Sep 17 00:00:00 2001
+From: Alexandre Rostovtsev <tetromino@gmail.com>
+Date: Thu, 6 Jan 2011 03:39:26 -0500
+Subject: [PATCH] Make vhba compatible with kernel 2.6.37 SCSI host API
+
+Due to the SCSI host lock push-down changes introduced in 2.6.37 (see
+http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f281233d3eba15fb225d21ae2e228fd4553d824a
+for more details), trying to use current vhba on 2.6.37 leads to oopses
+and kernel panics - e.g. see http://bugs.gentoo.org/show_bug.cgi?id=350753
+
+Add some #ifdefs to enable compatibility both with 2.6.37 and older API.
+Note that if future kernel versions remove the DEF_SCSI_QCMD macro, this
+issue will need to be revisited.
+
+Signed-off-by: Alexandre Rostovtsev <tetromino@gmail.com>
+---
+ vhba-module/vhba.c | 9 ++++++++-
+ 1 files changed, 8 insertions(+), 1 deletions(-)
+
+diff --git a/vhba-module/vhba.c b/vhba-module/vhba.c
+index 059f6ce..9d13016 100644
+--- a/vhba-module/vhba.c
++++ b/vhba-module/vhba.c
+@@ -27,6 +27,7 @@
+ #include <linux/miscdevice.h>
+ #include <linux/poll.h>
+ #include <linux/slab.h>
++#include <linux/version.h>
+ #ifdef CONFIG_COMPAT
+ #include <linux/compat.h>
+ #endif
+@@ -363,7 +364,7 @@ static void vhba_free_command(struct vhba_command *vcmd)
+ spin_unlock_irqrestore(&vhost->cmd_lock, flags);
+ }
+
+-static int vhba_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
++static int vhba_queuecommand_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *))
+ {
+ struct vhba_device *vdev;
+ int retval;
+@@ -388,6 +389,12 @@ static int vhba_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmn
+ return retval;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
++DEF_SCSI_QCMD(vhba_queuecommand)
++#else
++#define vhba_queuecommand vhba_queuecommand_lck
++#endif
++
+ static int vhba_abort(struct scsi_cmnd *cmd)
+ {
+ struct vhba_device *vdev;
+--
+1.7.3.4
+
diff --git a/community/vhba-module/vhba-module.install b/community/vhba-module/vhba-module.install
new file mode 100644
index 000000000..c3bcbca3f
--- /dev/null
+++ b/community/vhba-module/vhba-module.install
@@ -0,0 +1,16 @@
+post_install() {
+ echo ">> Place 'vhba' in MODULES= in /etc/rc.conf to enable vhba on system boot."
+ echo ">> This module needs to be recompiled for every kernel version upgrade."
+ KERNEL_VERSION='2.6.37-ARCH'
+ depmod $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.37-ARCH'
+ depmod $KERNEL_VERSION > /dev/null 2>&1
+}
+
diff --git a/community/viewnior/PKGBUILD b/community/viewnior/PKGBUILD
new file mode 100644
index 000000000..d53a3a382
--- /dev/null
+++ b/community/viewnior/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 35130 2010-12-16 14:14:18Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Christoph Zeiler <archNOSPAM_at_moonblade.dot.org>
+# Maintainer: M Rawash <mrawash@gmail.com>
+
+pkgname=viewnior
+pkgver=1.1
+pkgrel=1
+pkgdesc="A simple, fast and elegant image viewer program"
+arch=('i686' 'x86_64')
+url="http://xsisqox.github.com/Viewnior/"
+license=('GPL3')
+depends=('gtk2>=2.12')
+makedepends=('make' 'intltool>=0.35' 'pkgconfig>=0.9' 'perl>=5.8.1')
+install=viewnior.install
+source=(http://cloud.github.com/downloads/xsisqox/Viewnior/$pkgname-$pkgver.tar.gz)
+md5sums=('5b14c6edaf78fdd3259f148ae9d7f062')
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/viewnior/viewnior.install b/community/viewnior/viewnior.install
new file mode 100644
index 000000000..5f0358791
--- /dev/null
+++ b/community/viewnior/viewnior.install
@@ -0,0 +1,13 @@
+post_install() {
+ [ -x `which update-mime-database` ] && update-mime-database usr/share/mime
+ [ -x `which gtk-update-icon-cache` ] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ /bin/true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/community/vifm/ChangeLog b/community/vifm/ChangeLog
new file mode 100644
index 000000000..cca32deba
--- /dev/null
+++ b/community/vifm/ChangeLog
@@ -0,0 +1,2 @@
+2010-02-15 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Moved to [community] 0.5-2 (212 votes in AUR)
diff --git a/community/vifm/PKGBUILD b/community/vifm/PKGBUILD
new file mode 100644
index 000000000..abf5a134b
--- /dev/null
+++ b/community/vifm/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 40937 2011-03-01 23:43:56Z jelle $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+
+pkgname=vifm
+pkgver=0.5
+pkgrel=3
+pkgdesc="Ncurses based file manager with vi like keybindings"
+arch=('i686' 'x86_64')
+url="http://vifm.sourceforge.net/"
+license=('GPL')
+depends=('ncurses')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2 ncurses58.patch)
+options=(!strip)
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/ncurses58.patch
+
+ export CFLAGS="$CFLAGS -g"
+ export CXXFLAGS="$CXXFLAGS -g"
+ ./configure --prefix=/usr --enable-debug
+ make
+}
+package()
+{
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ '1a525adddc0424c23ed9a4aa31c0164a')
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ '4b2007548083f3dc828074706ce16024')
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ 'd2575f3ec9ead5ee0561b5ceaa23a35a')
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ '38cbc3a963346babae2f6c6edb7dec3b')
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ 'd56abb4654d344c1997eee0f5e2d5133')
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ '97837d528f4287b3f01d370a823b32d4')
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ '97f633c0afa003de34ba17b9eb68112d')
+md5sums=('76818f02d6acd4997d1f41db932438aa'
+ '49a1e1f299afd18e336cf85dcd5d67e2')
diff --git a/community/vifm/ncurses58.patch b/community/vifm/ncurses58.patch
new file mode 100644
index 000000000..68e85ca2f
--- /dev/null
+++ b/community/vifm/ncurses58.patch
@@ -0,0 +1,140 @@
+diff -aur vifm-0.5/src/keys.c vifm-0.5-new//src/keys.c
+--- vifm-0.5/src/keys.c 2009-05-05 17:49:30.000000000 -0700
++++ vifm-0.5-new//src/keys.c 2011-03-01 14:13:30.443352349 -0800
+@@ -721,7 +721,6 @@
+ redrawwin(stat_win);
+ redrawwin(status_bar);
+ redrawwin(pos_win);
+- redrawwin(lwin.title);
+ redrawwin(lwin.win);
+ redrawwin(num_win);
+ redrawwin(rborder);
+@@ -740,7 +739,6 @@
+ touchwin(num_win);
+ touchwin(rborder);
+
+- redrawwin(rwin.title);
+ redrawwin(rwin.win);
+ redrawwin(lborder);
+ redrawwin(stat_win);
+@@ -768,10 +766,8 @@
+ touchwin(num_win);
+ touchwin(rborder);
+
+- redrawwin(lwin.title);
+ redrawwin(lwin.win);
+ redrawwin(mborder);
+- redrawwin(rwin.title);
+ redrawwin(rwin.win);
+ redrawwin(lborder);
+ redrawwin(stat_win);
+diff -aur vifm-0.5/src/ui.c vifm-0.5-new//src/ui.c
+--- vifm-0.5/src/ui.c 2009-08-27 07:07:03.000000000 -0700
++++ vifm-0.5-new//src/ui.c 2011-03-01 14:09:59.646687287 -0800
+@@ -158,32 +158,32 @@
+
+ werase(stdscr);
+
+- menu_win = newwin(screen_y - 1, screen_x , 0, 0);
++ menu_win = newwin(screen_y - 1, screen_x , 1, 1);
+ wbkgdset(menu_win, COLOR_PAIR(WIN_COLOR));
+ werase(menu_win);
+
+- sort_win = newwin(NUM_SORT_OPTIONS + 3, 30, (screen_y -12)/2, (screen_x -30)/2);
++ sort_win = newwin(NUM_SORT_OPTIONS + 3, 30, (screen_y -12)/2 > 0 ? (screen_y -12/2) :1, (screen_x -30)/2 > 0 ? (screen_x -30)/2: 1);
+ wbkgdset(sort_win, COLOR_PAIR(WIN_COLOR));
+ werase(sort_win);
+
+- change_win = newwin(20, 30, (screen_y -20)/2, (screen_x -30)/2);
++ change_win = newwin(20, 30, ((screen_y -20)/2 > 0 ? (screen_y -20)/2 : 1), (screen_x -30)/2 > 0 ? (screen_x -30/2) : 1 );
+ wbkgdset(change_win, COLOR_PAIR(WIN_COLOR));
+ werase(change_win);
+
+- error_win = newwin(10, screen_x -2, (screen_y -10)/2, 1);
++ error_win = newwin(10, screen_x -2, (screen_y -10)/2 > 0 ? (screen_y -10)/2 : 1, 1);
+ wbkgdset(error_win, COLOR_PAIR(WIN_COLOR));
+ werase(error_win);
+
+- lborder = newwin(screen_y - 2, 1, 0, 0);
++ lborder = newwin(screen_y - 2, 1, 1, 1);
+
+ wbkgdset(lborder, COLOR_PAIR(BORDER_COLOR));
+
+ werase(lborder);
+
+ if (curr_stats.number_of_windows == 1)
+- lwin.title = newwin(0, screen_x -2, 0, 1);
++ lwin.title = newwin(0, screen_x -2, 1, 1);
+ else
+- lwin.title = newwin(0, screen_x/2 -1, 0, 1);
++ lwin.title = newwin(0, screen_x/2 -1, 1, 1);
+
+ wattrset(lwin.title, A_BOLD);
+ wbkgdset(lwin.title, COLOR_PAIR(BORDER_COLOR));
+@@ -204,16 +204,16 @@
+ lwin.window_rows = y -1;
+ lwin.window_width = x -1;
+
+- mborder = newwin(screen_y, 2, 0, screen_x/2 -1);
++ mborder = newwin(screen_y, 2, 1, screen_x/2 -1 > 0 ? screen_x/2 -1 : 1);
+
+ wbkgdset(mborder, COLOR_PAIR(BORDER_COLOR));
+
+ werase(mborder);
+
+ if (curr_stats.number_of_windows == 1)
+- rwin.title = newwin(0, screen_x -2 , 0, 1);
++ rwin.title = newwin(0, screen_x -2 , 1, 1);
+ else
+- rwin.title = newwin(1, screen_x/2 -1 , 0, screen_x/2 +1);
++ rwin.title = newwin(1, screen_x/2 -1 , 1, screen_x/2 +1 > 0 ? screen_x/2 +1 :1);
+
+ wbkgdset(rwin.title, COLOR_PAIR(BORDER_COLOR));
+ wattrset(rwin.title, A_BOLD);
+@@ -224,7 +224,7 @@
+ if (curr_stats.number_of_windows == 1)
+ rwin.win = newwin(screen_y - 3, screen_x -2 , 1, 1);
+ else
+- rwin.win = newwin(screen_y - 3, screen_x/2 -2 , 1, screen_x/2 +1);
++ rwin.win = newwin(screen_y - 3, screen_x/2 -2 , 1, screen_x/2 +1 > 0 ? screen_x/2 +1 : 1);
+
+ keypad(rwin.win, TRUE);
+ wattrset(rwin.win, A_BOLD);
+@@ -235,32 +235,32 @@
+ rwin.window_rows = y - 1;
+ rwin.window_width = x -1;
+
+- rborder = newwin(screen_y - 2, 1, 0, screen_x -1);
++ rborder = newwin(screen_y - 2, 1, 1, screen_x -1 > 0 ? screen_x-1 : 1);
+
+ wbkgdset(rborder, COLOR_PAIR(BORDER_COLOR));
+
+ werase(rborder);
+
+- stat_win = newwin(1, screen_x, screen_y -2, 0);
++ stat_win = newwin(1, screen_x, screen_y -2 > 0 ? screen_y -2 : 1, 1);
+
+ wbkgdset(stat_win, COLOR_PAIR(BORDER_COLOR));
+
+ werase(stat_win);
+
+- status_bar = newwin(1, screen_x - 19, screen_y -1, 0);
++ status_bar = newwin(1, screen_x - 19, screen_y -1 > 0 ? screen_y -2: 1, 1);
+ keypad(status_bar, TRUE);
+ wattrset(status_bar, A_BOLD);
+ wattron(status_bar, A_BOLD);
+ wbkgdset(status_bar, COLOR_PAIR(STATUS_BAR_COLOR));
+ werase(status_bar);
+
+- pos_win = newwin(1, 13, screen_y - 1, screen_x -13);
++ pos_win = newwin(1, 13, screen_y - 1 > 0 ? screen_y -1 : 1, screen_x -13 > 0 ? screen_x -13 : 1);
+ wattrset(pos_win, A_BOLD);
+ wattron(pos_win, A_BOLD);
+ wbkgdset(pos_win, COLOR_PAIR(STATUS_BAR_COLOR));
+ werase(pos_win);
+
+- num_win = newwin(1, 6, screen_y - 1, screen_x -19);
++ num_win = newwin(1, 6, screen_y - 1 > 0 ? screen_y -1 : 1, screen_x -19 > 0 ? screen_x -19 : 1);
+ wattrset(num_win, A_BOLD);
+ wattron(num_win, A_BOLD);
+ wbkgdset(num_win, COLOR_PAIR(STATUS_BAR_COLOR));
diff --git a/community/viking/PKGBUILD b/community/viking/PKGBUILD
new file mode 100644
index 000000000..823893a45
--- /dev/null
+++ b/community/viking/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 40427 2011-02-23 20:48:09Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Nick Østergaard <oe.nick@gmail.com>
+# Contributor: Jonny Gerold <jonny@fsk141.com>
+
+pkgname=viking
+pkgver=1.1
+pkgrel=1
+pkgdesc="GTK+2 application to manage GPS data"
+arch=('i686' 'x86_64')
+url="http://viking.sourceforge.net/"
+license=('GPL2')
+depends=('curl' 'gpsd' 'gtk2' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils')
+optdepends=('gpsbabel: for GPS management')
+options=('!emptydirs')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/viking/$pkgname-$pkgver.tar.gz)
+sha256sums=('5c34a76c09b6fda092e8170f7546606814382cf9d13174e87c4ee43fffa36743')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make
+}
+
+package(){
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/viking/viking.changelog b/community/viking/viking.changelog
new file mode 100644
index 000000000..d38e25a9e
--- /dev/null
+++ b/community/viking/viking.changelog
@@ -0,0 +1,6 @@
+2011-02-23 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * gebabbel 1.1-1
+
+2011-02-06 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * gebabbel 1.0.2-2
+ * moved to [community] with 62 AUR votes
diff --git a/community/viking/viking.install b/community/viking/viking.install
new file mode 100644
index 000000000..8de1998bf
--- /dev/null
+++ b/community/viking/viking.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/vile/PKGBUILD b/community/vile/PKGBUILD
new file mode 100644
index 000000000..3d0b1e83a
--- /dev/null
+++ b/community/vile/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 23288 2010-08-09 15:32:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=vile
+pkgver=9.8
+pkgrel=1
+pkgdesc="vi like emacs"
+arch=('i686' 'x86_64')
+url="http://invisible-island.net/vile/vile.html"
+depends=('ncurses')
+license=('custom')
+options=(!libtool)
+source=(ftp://invisible-island.net/vile/vile-$pkgver.tgz)
+md5sums=('b5a0d89165f633a662cdb4b5c57f2e2f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make install DESTDIR=$pkgdir || return 1
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+
+ mkdir -p $pkgdir/usr/share/licenses/$pkgname
+ cat <<EOF >$pkgdir/usr/share/licenses/$pkgname/license
+Copyright
+
+Vile is copyrighted by Paul G. Fox, Thomas E. Dickey and Kevin Buettner with some
+files (e.g., visvile) copyright by Clark Morgan.
+We distribute it under the terms of the GNU Public License, Version 2.
+EOF
+}
diff --git a/community/virtualbox/10-vboxdrv.rules b/community/virtualbox/10-vboxdrv.rules
new file mode 100644
index 000000000..37403ae2f
--- /dev/null
+++ b/community/virtualbox/10-vboxdrv.rules
@@ -0,0 +1,5 @@
+KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600" ENV{ACL_MANAGE}="1"
+SUBSYSTEM=="usb_device", ACTION=="add", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
diff --git a/community/virtualbox/60-vboxguest.rules b/community/virtualbox/60-vboxguest.rules
new file mode 100644
index 000000000..6285f7249
--- /dev/null
+++ b/community/virtualbox/60-vboxguest.rules
@@ -0,0 +1,2 @@
+ACTION=="add", KERNEL=="vboxguest", SUBSYSTEM=="misc", OWNER="root", MODE="0600"
+ACTION=="add", KERNEL=="vboxuser", SUBSYSTEM=="misc", OWNER="root", MODE="0666"
diff --git a/community/virtualbox/LocalConfig.kmk b/community/virtualbox/LocalConfig.kmk
new file mode 100644
index 000000000..1a17127a0
--- /dev/null
+++ b/community/virtualbox/LocalConfig.kmk
@@ -0,0 +1,17 @@
+VBOX_WITH_ADDITION_DRIVERS =
+VBOX_WITH_INSTALLER = 1
+VBOX_WITH_LINUX_ADDITIONS = 1
+VBOX_WITH_X11_ADDITIONS = 1
+VBOX_WITH_TESTCASES =
+VBOX_WITH_TESTSUITE =
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/lib/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS := /usr/share/virtualbox
+VBOX_WITH_REGISTRATION_REQUEST =
+VBOX_WITH_UPDATE_REQUEST =
+VBOX_WITH_VNC := 1
+VBOX_BLD_PYTHON = python2
+VBOX_JAVA_HOME = /opt/java
diff --git a/community/virtualbox/PKGBUILD b/community/virtualbox/PKGBUILD
new file mode 100644
index 000000000..82dcee682
--- /dev/null
+++ b/community/virtualbox/PKGBUILD
@@ -0,0 +1,211 @@
+# $Id: PKGBUILD 41913 2011-03-11 00:29:44Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgbase=virtualbox
+pkgname=('virtualbox' 'virtualbox-guest-additions' 'virtualbox-guest-modules' 'virtualbox-sdk')
+pkgver=4.0.4
+pkgrel=2
+arch=('i686' 'x86_64')
+url='http://virtualbox.org'
+license=('GPL' 'custom')
+makedepends=('libstdc++5' 'bin86' 'dev86' 'iasl' 'libxslt' 'libxml2' 'libxcursor' 'qt' 'libidl2' 'sdl_ttf' 'alsa-lib' 'libpulse' 'libxtst'
+'xalan-c' 'sdl' 'libxmu' 'curl' 'python2' 'kernel26-headers>=2.6.37' 'mesa' 'libxrandr' 'libxinerama' 'libvncserver' 'jdk' 'gsoap' 'vde2')
+[[ $CARCH == "x86_64" ]] && makedepends=("${makedepends[@]}" 'gcc-multilib' 'lib32-glibc')
+source=(http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}.tar.bz2
+ http://download.virtualbox.org/virtualbox/${pkgver}/UserManual.pdf
+ virtualbox-4-makeself-check.patch virtualbox-4-mkisofs-check.patch
+ 10-vboxdrv.rules 60-vboxguest.rules vboxdrv-reference.patch LocalConfig.kmk vboxdrv.sh)
+_kernver=2.6.37-ARCH
+
+build() {
+ cd "$srcdir/VirtualBox-${pkgver}_OSE"
+
+ patch -Np1 -i "$srcdir/virtualbox-4-makeself-check.patch"
+ patch -Np1 -i "$srcdir/virtualbox-4-mkisofs-check.patch"
+ patch -Np1 -i "$srcdir/vboxdrv-reference.patch"
+
+ cp "$srcdir/LocalConfig.kmk" .
+
+ ./configure --disable-docs \
+ --enable-webservice \
+ --enable-vde \
+ --with-linux=/usr/src/linux-${_kernver}
+ source ./env.sh
+ kmk all
+
+ export KERN_DIR=/usr/src/linux-${_kernver}
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+ make -C "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src/vboxvideo"
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' "out/linux.$BUILD_PLATFORM_ARCH/release/bin/vboxshell.py"
+}
+
+package_virtualbox() {
+ pkgdesc="Powerful x86 virtualization for enterprise as well as home use"
+ depends=('libxml2' 'libxcursor' 'libidl2' 'libxinerama' 'sdl' 'libxmu' 'curl' 'libvncserver' 'libpng' 'kernel26-headers' 'gcc' 'make')
+ optdepends=('libxt: for shared clipboard'
+ 'python2: for python support'
+ 'java-runtime: java bindings'
+ 'qt: for VirtualBox GUI'
+ 'vde2: Virtual Distributed Ethernet support'
+ 'virtualbox-sdk: developer kit')
+
+ replaces=('virtualbox-ose')
+ conflicts=('virtualbox-ose')
+ install=virtualbox.install
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+ mkdir -p "$pkgdir"/usr/{bin,lib/virtualbox/components,lib/virtualbox/ExtensionPacks,share/virtualbox/nls}
+
+ #doc
+ install -m 0644 "$srcdir/UserManual.pdf" "$pkgdir/usr/share/virtualbox/UserManual.pdf"
+
+ #Binaries and Wrapper with Launchers
+ install -m 0755 VBox.sh "$pkgdir/usr/bin/VBox"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxHeadless"
+ ln -sf VBox "$pkgdir/usr/bin/vboxheadless"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxManage"
+ ln -sf VBox "$pkgdir/usr/bin/vboxmanage"
+ ln -sf VBox "$pkgdir/usr/bin/VBoxSDL"
+ ln -sf VBox "$pkgdir/usr/bin/vboxsdl"
+ ln -sf VBox "$pkgdir/usr/bin/VirtualBox"
+ ln -sf VBox "$pkgdir/usr/bin/virtualbox"
+ ln -sf VBox "$pkgdir/usr/bin/vboxwebsrv"
+
+ install -m 0755 VBoxTunctl "$pkgdir/usr/bin"
+
+ #components
+ install -m 0755 components/* -t "$pkgdir/usr/lib/virtualbox/components"
+
+ #lib
+ install -m 0755 *.so "$pkgdir/usr/lib/virtualbox"
+ install -m 0644 *.gc *.r0 VBoxEFI*.fd "$pkgdir/usr/lib/virtualbox"
+
+ #setuid root binaries
+ install -m 4755 VBoxSDL VirtualBox VBoxHeadless VBoxNetDHCP VBoxNetAdpCtl -t "$pkgdir/usr/lib/virtualbox"
+ #other binaries
+ install -m 0755 VBoxManage VBoxSVC VBoxExtPackHelperApp VBoxXPCOMIPCD VBoxTestOGL vboxwebsrv webtest -t "$pkgdir/usr/lib/virtualbox"
+
+ #language
+ install -m 0755 nls/*.qm -t "$pkgdir/usr/share/virtualbox/nls"
+
+ #useless scripts
+ install -m 0755 VBoxCreateUSBNode.sh VBoxSysInfo.sh -t "$pkgdir/usr/share/virtualbox"
+
+ #icons
+ install -D -m 0644 VBox.png "$pkgdir/usr/share/pixmaps/VBox.png"
+
+ pushd icons
+ for i in *; do
+ install -d "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ cp $i/* "$pkgdir/usr/share/icons/hicolor/$i/mimetypes"
+ done
+ popd
+
+ #desktop
+ install -D -m 0644 virtualbox.desktop "$pkgdir/usr/share/applications/virtualbox.desktop"
+ install -D -m 0644 virtualbox.xml "$pkgdir/usr/share/mime/packages/virtualbox.xml"
+
+ #install configuration
+ mkdir -p "$pkgdir/etc/vbox"
+ echo 'INSTALL_DIR=/usr/lib/virtualbox' > "$pkgdir/etc/vbox/vbox.cfg"
+
+ #udev and licence
+ install -D -m 0644 "$srcdir/VirtualBox-${pkgver}_OSE/COPYING" \
+ "$pkgdir/usr/share/licenses/virtualbox/LICENSE"
+ install -D -m 0644 "$srcdir/10-vboxdrv.rules" \
+ "$pkgdir/lib/udev/rules.d/10-vboxdrv.rules"
+
+ #sources for modules
+ cp -r src ${pkgdir}/usr/lib/virtualbox
+ #install compilation script
+ install -D -m 755 "${srcdir}/vboxdrv.sh" "${pkgdir}/etc/rc.d/vboxdrv"
+}
+
+package_virtualbox-sdk() {
+ pkgdesc=" VirtualBox Software Developer Kit (SDK)"
+
+ mkdir -p "$pkgdir/usr/lib/virtualbox"
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin"
+
+ install -D -m 0755 vboxshell.py "$pkgdir/usr/lib/virtualbox/vboxshell.py"
+ #python sdk
+ pushd sdk/installer
+ VBOX_INSTALL_PATH="/usr/lib/virtualbox" python2 vboxapisetup.py install --root "${pkgdir}"
+ popd
+ rm -rf sdk/installer
+ mv sdk "$pkgdir/usr/lib/virtualbox"
+}
+package_virtualbox-guest-additions(){
+ pkgdesc="VirtualBox user-space tools for Linux guests"
+ depends=("virtualbox-guest-modules=$pkgver" 'gcc-libs' 'libxmu')
+ replaces=('virtualbox-ose-additions')
+ conflicts=('virtualbox-ose-additions')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions"
+
+ install -d "$pkgdir/usr/bin"
+ install -d "$pkgdir/sbin"
+ install -m755 VBoxClient VBoxControl VBoxService "$pkgdir/usr/bin"
+ install -m755 mount.vboxsf "$pkgdir/sbin"
+
+ install -m644 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/50-vboxmouse.conf \
+ "$pkgdir"/etc/X11/xorg.conf.d/50-vboxmouse.conf
+ install -m644 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/linux/installer/70-xorg-vboxmouse.rules \
+ "$pkgdir"/lib/udev/rules.d/70-xorg-vboxmouse.rules
+ install -m755 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/98vboxadd-xclient \
+ "$pkgdir"/usr/bin/VBoxClient-all
+ install -m755 -D "$srcdir"/VirtualBox-${pkgver}_OSE/src/VBox/Additions/x11/Installer/vboxclient.desktop \
+ "$pkgdir"/etc/xdg/autostart/vboxclient.desktop
+ install -D vboxmouse_drv_19.so \
+ "$pkgdir/usr/lib/xorg/modules/input/vboxmouse.so"
+ install -D vboxvideo_drv_19.so \
+ "$pkgdir/usr/lib/xorg/modules/drivers/vboxvideo.so"
+ install -d "$pkgdir/usr/lib/xorg/modules/dri"
+ install -m755 VBoxOGL*.so "$pkgdir/usr/lib"
+ ln -s /usr/lib/VBoxOGL.so "$pkgdir/usr/lib/xorg/modules/dri/vboxvideo_dri.so"
+ install -m755 -D pam_vbox.so "$pkgdir/lib/security/pam_vbox.so"
+
+}
+package_virtualbox-guest-modules(){
+ pkgdesc="VirtualBox kernel modules for Linux guests"
+ license=('GPL')
+ install=virtualbox-guest-modules.install
+ depends=('kernel26>=2.6.37' 'kernel26<2.6.38')
+ replaces=('virtualbox-ose-additions-modules')
+ conflicts=('virtualbox-ose-additions-modules')
+
+ source "$srcdir/VirtualBox-${pkgver}_OSE/env.sh"
+
+ cd "$srcdir/VirtualBox-${pkgver}_OSE/out/linux.$BUILD_PLATFORM_ARCH/release/bin/additions/src"
+
+ cd vboxguest
+ install -D -m644 vboxguest.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxguest.ko"
+
+ cd ../vboxsf
+ install -D -m644 vboxsf.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxsf.ko"
+
+ cd ../vboxvideo
+ install -D -m644 vboxvideo.ko \
+ "$pkgdir/lib/modules/$_kernver/misc/vboxvideo.ko"
+
+ install -D -m 0644 "$srcdir/60-vboxguest.rules" \
+ "$pkgdir/lib/udev/rules.d/60-vboxguest.rules"
+
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" "$startdir/virtualbox-guest-modules.install"
+}
+md5sums=('b4770ca14d1a8cbad9b3eb0e0028ff4b'
+ 'bf8007eea0042f745b3c252bbe7586c2'
+ '44efb3c4be214daa453a317d527f1f30'
+ '32a232b43852b9a08cb11a7bcd64b347'
+ '5f85710e0b8606de967716ded7b2d351'
+ 'ed1341881437455d9735875ddf455fbe'
+ '94514e006e73cc2fa90259a4e0eec04b'
+ '0f3f273cdbc54db221f737ad4f761c11'
+ '47da2e88de582bb2bab14580a3aa47b1')
diff --git a/community/virtualbox/vboxdrv-reference.patch b/community/virtualbox/vboxdrv-reference.patch
new file mode 100644
index 000000000..ed5e7f377
--- /dev/null
+++ b/community/virtualbox/vboxdrv-reference.patch
@@ -0,0 +1,43 @@
+--- VirtualBox-4.0.2_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
++++ VirtualBox-4.0.2_OSE/src/VBox/Frontends/VirtualBox/src/main.cpp
+@@ -75,9 +75,8 @@
+ "The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or "
+ "there is a permission problem with /dev/vboxdrv. Please reinstall the kernel "
+ "module by executing<br/><br/>"
+- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
+- "as root. Users of Ubuntu, Fedora or Mandriva should install the DKMS "
+- "package first. This package keeps track of Linux kernel changes and "
++ " <font color=blue>'/etc/rc.d/vboxdrv setup'</font><br/><br/>"
++ "as root. This package keeps track of Linux kernel changes and"
+ "recompiles the vboxdrv kernel module if necessary."
+ );
+
+@@ -92,7 +91,7 @@
+ "The VirtualBox kernel modules do not match this version of "
+ "VirtualBox. The installation of VirtualBox was apparently not "
+ "successful. Executing<br/><br/>"
+- " <font color=blue>'/etc/init.d/vboxdrv setup'</font><br/><br/>"
++ " <font color=blue>'/etc/rc.d/vboxdrv setup'</font><br/><br/>"
+ "may correct this. Make sure that you do not mix the "
+ "OSE version and the PUEL version of VirtualBox."
+ );
+--- VirtualBox-4.0.2_OSE/src/VBox/Installer/linux/VBox.sh
++++ VirtualBox-4.0.2_OSE/src/VBox/Installer/linux/VBox.sh
+@@ -34,7 +34,7 @@
+ available for the current kernel (`uname -r`) or it failed to
+ load. Please recompile the kernel module and install it by
+
+- sudo /etc/init.d/vboxdrv setup
++ /etc/rc.d/vboxdrv setup
+
+ You will not be able to start VMs until this problem is fixed.
+ EOF
+@@ -42,7 +42,7 @@
+ cat << EOF
+ WARNING: The character device /dev/vboxdrv does not exist. Try
+
+- sudo /etc/init.d/vboxdrv restart
++ /etc/rc.d/vboxdrv restart
+
+ and if that is not successful, try to re-install the package.
+ \ No newline at end of file
diff --git a/community/virtualbox/vboxdrv.sh b/community/virtualbox/vboxdrv.sh
new file mode 100755
index 000000000..8de14b97f
--- /dev/null
+++ b/community/virtualbox/vboxdrv.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/vbox/vbox.cfg
+
+MODLIST=()
+LOG="/var/log/vbox-install.log"
+
+if [ -n "$INSTALL_DIR" ]; then
+ VBOXMANAGE="$INSTALL_DIR/VBoxManage"
+ BUILDVBOXDRV="$INSTALL_DIR/src/vboxdrv/build_in_tmp"
+ BUILDVBOXNETFLT="$INSTALL_DIR/src/vboxnetflt/build_in_tmp"
+ BUILDVBOXNETADP="$INSTALL_DIR/src/vboxnetadp/build_in_tmp"
+else
+ echo "missing vbox.cfg"
+ exit 0
+fi
+
+case "$1" in
+ setup)
+ stat_busy "Unloading VirtualBox kernel modules"
+ for module in vbox{netflt,netadp,drv}; do
+ if grep -q "^${module}" /proc/modules; then
+ MODLIST+=($module)
+ modprobe -r $module
+ fi
+ done
+ stat_done
+ for p in /lib/modules/*; do
+ if [ ! -d "$p/kernel" ]; then
+ if [ -e "$p/misc/vboxdrv.ko" ]; then
+ stat_busy "Removing old VirtualBox kernel modules from $p"
+ rm -f "$p/misc/vbox"{drv,netadp,netflt}.ko 2>/dev/null
+ rmdir -p --ignore-fail-on-non-empty "$p/misc/" 2>/dev/null
+ stat_done
+ fi
+ fi
+ done
+ if find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|grep -q vboxnetadp; then
+ stat_busy "Removing old VirtualBox netadp kernel module"
+ find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ if find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|grep -q vboxnetflt; then
+ stat_busy "Removing old VirtualBox netflt kernel module"
+ find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ if find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|grep -q vboxdrv; then
+ stat_busy "Removing old VirtualBox kernel module"
+ find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2>/dev/null
+ stat_done
+ fi
+ stat_busy "Recompiling VirtualBox kernel modules"
+ if ! $BUILDVBOXDRV \
+ --save-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install > $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ if ! $BUILDVBOXNETFLT \
+ --use-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ if ! $BUILDVBOXNETADP \
+ --use-module-symvers /tmp/vboxdrv-Module.symvers \
+ --no-print-directory install >> $LOG 2>&1; then
+ echo "Look at $LOG to find out what went wrong"
+ fi
+ stat_done
+ stat_busy "Reloading VirtualBox kernel modules"
+ for module in "${MODLIST[@]}"; do
+ modprobe $module
+ done
+ stat_done
+ ;;
+ *)
+ echo "usage: $0 {setup}"
+esac
diff --git a/community/virtualbox/virtualbox-4-makeself-check.patch b/community/virtualbox/virtualbox-4-makeself-check.patch
new file mode 100644
index 000000000..e1fcb8c2f
--- /dev/null
+++ b/community/virtualbox/virtualbox-4-makeself-check.patch
@@ -0,0 +1,10 @@
+--- VirtualBox-4.0.0_OSE/configure
++++ VirtualBox-4.0.0_OSE/configure
+@@ -2527,7 +2527,6 @@
+ check_compiler_h
+ [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit
+ # tools/common/makeself*
+- [ $OSE -ge 1 ] && check_makeself
+ fi
+
+ [ -n "$SETUP_WINE" ] && setup_wine
diff --git a/community/virtualbox/virtualbox-4-mkisofs-check.patch b/community/virtualbox/virtualbox-4-mkisofs-check.patch
new file mode 100644
index 000000000..8b0d59123
--- /dev/null
+++ b/community/virtualbox/virtualbox-4-mkisofs-check.patch
@@ -0,0 +1,10 @@
+--- VirtualBox-4.0.0_OSE/configure
++++ VirtualBox-4.0.0_OSE/configure
+@@ -2499,7 +2499,6 @@
+ # don't check for yasm for the time beeing as 0.40 and 0.50 both have known bugs
+ # [ "$OS" != "darwin" ] && check_yasm
+ [ "$OS" != "darwin" ] && check_xsltproc
+-[ "$OS" != "darwin" ] && check_mkisofs
+
+ # the libraries
+ [ "$OS" != "darwin" ] && check_pthread
diff --git a/community/virtualbox/virtualbox-guest-modules.install b/community/virtualbox/virtualbox-guest-modules.install
new file mode 100644
index 000000000..51389ca87
--- /dev/null
+++ b/community/virtualbox/virtualbox-guest-modules.install
@@ -0,0 +1,24 @@
+KERNEL_VERSION='2.6.37-ARCH'
+
+post_install() {
+ cat << EOM
+
+===> virtualbox-guest-modules post-install message:
+===>
+===> You may want to load vboxguest, vboxsf and vboxvideo
+===>
+===> To load them automatically, add them
+===> to the MODULES array in /etc/rc.conf.
+
+EOM
+
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
+
+post_remove() {
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
+
+post_upgrade() {
+ depmod -v $KERNEL_VERSION >/dev/null 2>&1
+}
diff --git a/community/virtualbox/virtualbox.install b/community/virtualbox/virtualbox.install
new file mode 100644
index 000000000..e70757685
--- /dev/null
+++ b/community/virtualbox/virtualbox.install
@@ -0,0 +1,65 @@
+utils() {
+ if [ -x usr/bin/update-mime-database ]; then
+ update-mime-database usr/share/mime > /dev/null 2>&1
+ fi
+
+ if [ -x usr/bin/xdg-icon-resource ]; then
+ xdg-icon-resource forceupdate --theme hicolor > /dev/null 2>&1
+ fi
+
+ if [ -x usr/bin/update-desktop-database ]; then
+ usr/bin/update-desktop-database -q
+ fi
+}
+
+post_install() {
+ getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
+ /bin/cat << EOF
+
+===> In order to run VirtualBox, you have to be in the 'vboxusers' group.
+===>
+===> If you want to be able to install guest additions, you have to install
+===> 'virtualbox-additions' package.
+===>
+===> You must load vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+===>
+===> You must load vboxnetflt for Host Interface Networking:
+===> # modprobe vboxnetflt
+===>
+===> You must load vboxnetadp for Host-Only networking:
+===> # modprobe vboxnetadp
+===>
+===> To load it automatically, add vboxdrv module
+===> to the MODULES array in /etc/rc.conf.
+
+*** To compile the modules do /etc/rc.d/vboxdrv setup ***
+
+EOF
+ utils
+}
+
+post_upgrade() {
+ getent group vboxusers >> /dev/null || usr/sbin/groupadd -g 108 vboxusers
+ /bin/cat << EOF
+===> You must reload vboxdrv module before starting VirtualBox:
+===> # modprobe vboxdrv
+===>
+===> You must reload vboxnetflt for Host Interface Networking:
+===> # modprobe vboxnetflt
+===>
+===> You must reload vboxnetadp for Host-Only networking:
+===> # modprobe vboxnetadp
+===>
+===> To load it automatically, add vboxdrv module
+===> to the MODULES array in /etc/rc.conf.
+
+*** To recompile the modules do /etc/rc.d/vboxdrv setup ***
+EOF
+ utils
+}
+
+post_remove() {
+ groupdel vboxusers >/dev/null 2>&1 || true
+ utils
+}
diff --git a/community/virtviewer/PKGBUILD b/community/virtviewer/PKGBUILD
new file mode 100644
index 000000000..47ef3376f
--- /dev/null
+++ b/community/virtviewer/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 40291 2011-02-22 18:19:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jonathan Wiersma <archaur at jonw dot org>
+
+pkgname=virtviewer
+pkgver=0.3.1
+pkgrel=1
+pkgdesc="A lightweight interface for interacting with the graphical display of virtualized guest OS."
+depends=('gtk-vnc' 'libglade>=2.6.0' 'libvirt')
+url="http://virt-manager.et.redhat.com"
+arch=('i686' 'x86_64')
+license=('GPL')
+source=("http://virt-manager.et.redhat.com/download/sources/virt-viewer/virt-viewer-$pkgver.tar.gz")
+md5sums=('f7416e4d6b3e04e2d4bdfabe9ef442b2')
+
+build() {
+ cd $srcdir/virt-viewer-$pkgver
+ export LDFLAGS=-lX11
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/visitors/PKGBUILD b/community/visitors/PKGBUILD
new file mode 100644
index 000000000..797fddbbe
--- /dev/null
+++ b/community/visitors/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 7471 2010-01-07 02:49:37Z dgriffiths $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=visitors
+pkgver=0.7
+pkgrel=2
+pkgdesc='A very fast web log analyzer'
+arch=('i686' 'x86_64')
+url="http://www.hping.org/visitors/"
+license=('GPL2' 'custom')
+depends=('glibc')
+source=(http://www.hping.org/visitors/$pkgname-$pkgver.tar.gz)
+md5sums=('32ede76af83c6b1b7d2cdc5fe5178f6d')
+
+build() {
+ cd $startdir/src/${pkgname}_${pkgver}
+ make || return 1
+ install -D visitors $startdir/pkg/usr/bin/visitors
+ install -D iis2apache.pl $startdir/pkg/usr/bin/iis2apache.pl
+ gzip visitors.1
+ install -Dm644 visitors.1.gz $startdir/pkg/usr/share/man/man1/visitors.1.gz
+ install -Dm644 COPYING $startdir/pkg/usr/share/licenses/visitors/COPYING
+}
diff --git a/community/vlock/ChangeLog b/community/vlock/ChangeLog
new file mode 100644
index 000000000..61e8e1dd3
--- /dev/null
+++ b/community/vlock/ChangeLog
@@ -0,0 +1,18 @@
+2008-08-30 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 2.2.2
+
+ * PKGBUILD: fixed license (GPL -> GPL2), removed sed line in favour of
+ configure
+
+ * vlock.install: added, it creates the vlock group
+
+
+2007-09-10 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 2.1
+
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+
+ * Built for x86_64
diff --git a/community/vlock/PKGBUILD b/community/vlock/PKGBUILD
new file mode 100644
index 000000000..9ebaf1ed3
--- /dev/null
+++ b/community/vlock/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 22255 2010-07-20 05:18:40Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=vlock
+pkgver=2.2.2
+pkgrel=2
+pkgdesc="A small console locking program"
+url="http://cthulhu.c3d2.de/~toidinamai/vlock/vlock.html"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('pam')
+install=vlock.install
+source=(http://cthulhu.c3d2.de/~toidinamai/vlock/archive/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('0b26703c0aa3a9ae67bb90b9373a3b88')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/vlock/vlock.install b/community/vlock/vlock.install
new file mode 100644
index 000000000..4cf592b35
--- /dev/null
+++ b/community/vlock/vlock.install
@@ -0,0 +1,18 @@
+post_install() {
+ echo -n 'Adding vlock group... '
+ groupadd -g 129 vlock && echo 'done.'
+}
+
+post_upgrade() {
+ cut -d: -f1 /etc/group | grep ^vlock$ >/dev/null
+ if [ $? == 1 ] ; then
+ post_install
+ fi
+}
+
+post_remove() {
+ echo -n 'Removing vlock group... '
+ groupdel vlock && echo 'done.'
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/vmoviedb/PKGBUILD b/community/vmoviedb/PKGBUILD
new file mode 100644
index 000000000..cff7ee14d
--- /dev/null
+++ b/community/vmoviedb/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 20044 2010-07-02 09:21:29Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=vmoviedb
+pkgver=0.1.5
+pkgrel=4
+pkgdesc="A movie collection manager for the Gnome desktop"
+arch=('i686' 'x86_64')
+url="http://vmoviedb.sourceforge.net"
+license=('GPL')
+depends=('libgnomeui' 'gconf>=2.18.0.1-4' 'desktop-file-utils')
+makedepends=('gnome-doc-utils>=0.11.2')
+install=$pkgname.install
+options=('!libtool' '!emptydirs')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('7bfc10573bb890f3924755f2446dd3b6')
+
+build() {
+ cd $srcdir/vmoviedb-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make || return 1
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=$pkgdir install || return 1
+
+ mkdir -p $pkgdir/usr/share/gconf/schemas
+ gconf-merge-schema $pkgdir/usr/share/gconf/schemas/${pkgname}.schemas \
+ $pkgdir/etc/gconf/schemas/*.schemas
+ rm -f $pkgdir/etc/gconf/schemas/*.schemas
+ mv $pkgdir/usr/doc $pkgdir/usr/share/
+}
diff --git a/community/vmoviedb/vmoviedb.install b/community/vmoviedb/vmoviedb.install
new file mode 100644
index 000000000..c06423ab0
--- /dev/null
+++ b/community/vmoviedb/vmoviedb.install
@@ -0,0 +1,23 @@
+pkgname=vmoviedb
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
diff --git a/community/vnstat/PKGBUILD b/community/vnstat/PKGBUILD
new file mode 100644
index 000000000..c50e19e51
--- /dev/null
+++ b/community/vnstat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 20111 2010-07-02 14:00:19Z tdziedzic $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=vnstat
+pkgver=1.10
+pkgrel=5
+pkgdesc="A console-based network traffic monitor"
+arch=('i686' 'x86_64')
+url="http://humdi.net/vnstat/"
+license=('GPL')
+depends=('bash')
+makedepends=('gd')
+optdepends=('gd: image output')
+backup=(etc/vnstat.conf)
+install=vnstat.install
+source=(http://humdi.net/vnstat/$pkgname-$pkgver.tar.gz
+ http://humdi.net/vnstat/init.d/arch/vnstat)
+md5sums=('95421d968689130590348ceb80ff74a8'
+ 'e89a566dd7514ff0d2d3fc77b2d4ca7e')
+
+build() {
+ mkdir -p $pkgdir/etc
+
+ cd $srcdir/$pkgname-$pkgver
+
+ make all
+ make DESTDIR=$pkgdir install
+
+ install -D -m0755 $srcdir/vnstat $pkgdir/etc/rc.d/vnstat && \
+ install -D -m0644 examples/vnstat.cron $pkgdir/usr/share/doc/vnstat/examples/vnstat.cron && \
+ install -D -m0755 examples/vnstat.cgi $pkgdir/usr/share/doc/vnstat/examples/vnstat.cgi && \
+ sed -i 's#root##' $pkgdir/usr/share/doc/vnstat/examples/vnstat.cron
+}
diff --git a/community/vnstat/vnstat.install b/community/vnstat/vnstat.install
new file mode 100644
index 000000000..364684142
--- /dev/null
+++ b/community/vnstat/vnstat.install
@@ -0,0 +1,16 @@
+post_install() {
+ echo '==> Testing the kernel ...'
+ /usr/bin/vnstat --testkernel
+ echo '==> Every interface you want to monitor has to be introduced to vnStat!'
+ echo '==> eg. vnstat -u -i eth0'
+ echo '==> An example of a crontab to update vnStats database every 5 minutes'
+ echo '==> has been put in /usr/share/doc/vnstat/examples/vnstat.cron'
+ echo '==> Additionally, vnstat includes a daemon which can be added to your'
+ echo '==> rc.conf to update the database.'
+ echo '==> DO NOT HAVE BOTH THE CRON AND RC SCRIPTS ACTIVE AT THE SAME TIME.'
+ echo '==>'
+ echo '==> Webbased statistics can be generated using:'
+ echo '==> /usr/share/doc/vnstat/examples/vnstat.cgi'
+ /bin/true
+}
+
diff --git a/community/vobcopy/ChangeLog b/community/vobcopy/ChangeLog
new file mode 100644
index 000000000..b3f39517a
--- /dev/null
+++ b/community/vobcopy/ChangeLog
@@ -0,0 +1,5 @@
+2008-10-13 voidnull <giovanni@archlinux.org>
+* Updated to 1.1.2
+
+2008-03-13 voidnull <giovanni@archlinux.org>
+* Updated to 1.1.1
diff --git a/community/vobcopy/PKGBUILD b/community/vobcopy/PKGBUILD
new file mode 100644
index 000000000..1bffd0fad
--- /dev/null
+++ b/community/vobcopy/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 22478 2010-07-21 21:11:19Z lcarlier $
+# Maintainer: Daenyth
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tino Reichardt <milky-archlinux@mcmilk.de>
+
+pkgname=vobcopy
+pkgver=1.2.0
+pkgrel=3
+pkgdesc="Copies DVD .vob files to harddisk, decrypting them on the way"
+arch=('i686' 'x86_64')
+url="http://www.vobcopy.org"
+license=('GPL2')
+depends=('libdvdread>=4.1.3' 'libdvdcss')
+source=(http://www.vobcopy.org/download/$pkgname-$pkgver.tar.bz2)
+md5sums=('88f735ccd051093ff40dab4597bc586e')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR="$pkgdir" PREFIX=/usr/ MANDIR=/usr/share/man install
+}
diff --git a/community/vorbisgain/PKGBUILD b/community/vorbisgain/PKGBUILD
new file mode 100644
index 000000000..395187354
--- /dev/null
+++ b/community/vorbisgain/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 22308 2010-07-20 22:50:32Z mherych $
+# Maintainer: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Contributor: Cory Farmer <rbgkofi@ameritech.net>
+pkgname=vorbisgain
+pkgver=0.37
+pkgrel=2
+pkgdesc="A utility that computes the ReplayGain values for Ogg Vorbis files."
+arch=('i686' 'x86_64')
+url="http://sjeng.org/vorbisgain.html"
+license=('GPL')
+depends=('libvorbis')
+source=(http://sjeng.org/ftp/vorbis/${pkgname}-${pkgver}.tar.gz)
+md5sums=('850b05a7b2b0ee67edb5a27b8c6ac3a2')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-recursive \
+ --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/community/vorbissimple/PKGBUILD b/community/vorbissimple/PKGBUILD
new file mode 100644
index 000000000..8b9284370
--- /dev/null
+++ b/community/vorbissimple/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 20047 2010-07-02 09:22:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=vorbissimple
+pkgver=0.0.2
+pkgrel=2
+pkgdesc="A Vorbis decoder"
+arch=('i686' 'x86_64')
+url="http://kamaelia.sourceforge.net"
+license=('GPL')
+options=('!libtool')
+depends=('libvorbis')
+source=(http://downloads.sourceforge.net/kamaelia/$pkgname-$pkgver.tar.gz)
+md5sums=('332077b25a4c9547947ab0922361ffda')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/libvorbissimple
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/vtk/PKGBUILD b/community/vtk/PKGBUILD
new file mode 100644
index 000000000..b09bf289f
--- /dev/null
+++ b/community/vtk/PKGBUILD
@@ -0,0 +1,101 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: leepesjee <lpeschier at xs4all dot nl>
+# Contributor: Olivier Medoc
+# Contributor: ignotus
+# Contributor: Fabian Moser
+# Contributor: djscholl
+
+pkgname=vtk
+pkgver=5.6.1
+pkgrel=5
+pkgdesc='A software system for 3D computer graphics, image processing, and visualization which supports a wide variety of visualization algorithms and advanced modeling techniques.'
+arch=('i686' 'x86_64')
+url='http://www.vtk.org'
+license=('BSD')
+depends=('libpng' 'libtiff' 'freetype2' 'python2' 'java-runtime' 'tk' 'boost' 'ffmpeg' 'qt' 'lesstif')
+optdepends=('gnuplot: plotting tools'
+ 'graphviz: drawing tools')
+makedepends=('cmake' 'java-environment' 'doxygen' 'gnuplot' 'mesa')
+source=("http://www.vtk.org/files/release/${pkgver:0:3}/${pkgname}-${pkgver}.tar.gz"
+ "http://www.vtk.org/files/release/${pkgver:0:3}/vtkdata-${pkgver}.tar.gz")
+md5sums=('b80a76435207c5d0f74dfcab15b75181'
+ '67263bd972f923d39a60f01104368779')
+
+build() {
+ cd VTK
+
+ for _FILE in `grep -Rl "png_set_gray_1_2_4_to_8" *`
+ do
+ sed -i 's|png_set_gray_1_2_4_to_8|png_set_expand_gray_1_2_4_to_8|' ${_FILE}
+ done
+
+ cd ${srcdir}
+
+ rm -rf build
+ mkdir build
+ cd build
+
+ cmake \
+ -Wno-dev \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX:FILEPATH=/usr \
+ -DVTK_DATA_ROOT:FILEPATH=${srcdir}/VTKData \
+ -DBUILD_DOCUMENTATION:BOOL=ON \
+ -DDOCUMENTATION_HTML_HELP:BOOL=ON \
+ -DDOCUMENTATION_HTML_TARZ:BOOL=ON \
+ -DBUILD_EXAMPLES:BOOL=ON \
+ -DVTK_USE_HYBRID:BOOL=ON \
+ -DVTK_USE_PARALLEL:BOOL=ON \
+ -DVTK_USE_PATENTED:BOOL=ON \
+ -DVTK_USE_SYSTEM_EXPAT:BOOL=ON \
+ -DVTK_USE_SYSTEM_FREETYPE:BOOL=ON \
+ -DVTK_USE_SYSTEM_JPEG:BOOL=ON \
+ -DVTK_USE_SYSTEM_PNG:BOOL=ON \
+ -DVTK_USE_SYSTEM_TIFF:BOOL=ON \
+ -DVTK_USE_SYSTEM_ZLIB:BOOL=ON \
+ -DVTK_USE_SYSTEM_LIBXML2:BOOL=ON \
+ -DVTK_USE_BOOST:BOOL=ON \
+ -DVTK_USE_INFOVIS:BOOL=ON \
+ -DVTK_USE_GL2PS:BOOL=ON \
+ -DVTK_USE_FFMPEG_ENCODER:BOOL=ON \
+ -DVTK_USE_TEXT_ANALYSIS:BOOL=ON \
+ -DVTK_WRAP_JAVA:BOOL=ON \
+ -DVTK_WRAP_PYTHON:BOOL=ON \
+ -DVTK_WRAP_TCL:BOOL=ON \
+ -DVTK_PYTHON_SETUP_ARGS:STRING="--prefix=${pkgdir}/usr" \
+ -DVTK_USE_QT:BOOL=ON \
+ -DDESIRED_QT_VERSION:STRING=4 \
+ -DVTK_USE_GUISUPPORT:BOOL=ON \
+ -DCMAKE_CXX_FLAGS="-D__STDC_CONSTANT_MACROS" \
+ -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so \
+ ${srcdir}/VTK
+
+ # j1 is used because of a bug in building with multiple threads
+ make -j1
+}
+
+package() {
+ cd build
+
+ make DESTDIR=${pkgdir} install
+
+ # Move the vtk.jar to the arch-specific location
+ install -dv ${pkgdir}/usr/share/java/${pkgname}
+ mv -v ${pkgdir}/usr/lib/${pkgname}-${pkgver:0:3}/java/${pkgname}.jar \
+ ${pkgdir}/usr/share/java/${pkgname}
+
+ # Move the qt-designer plugin to the appropriate location
+ install -dv ${pkgdir}/usr/lib/qt
+ mv -v ${pkgdir}/usr/plugins \
+ ${pkgdir}/usr/lib/qt
+
+ # Install license
+ install -dv ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 ${srcdir}/VTK/Copyright.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}
+
+ # Put an entry in /etc/ld.so.conf.d
+ install -dv ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/${pkgname}-${pkgver:0:3}" > ${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf
+}
diff --git a/community/vuze/PKGBUILD b/community/vuze/PKGBUILD
new file mode 100644
index 000000000..9c3eb67dd
--- /dev/null
+++ b/community/vuze/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=vuze
+pkgver=4.6.0.2
+pkgrel=2
+pkgdesc='BitTorrent client with GUI, written in Java.'
+arch=('i686' 'x86_64')
+url='http://www.vuze.com/'
+license=('GPL')
+depends=('java-runtime')
+optdepends=('xulrunner: needed for browsing the vuze content')
+source=("http://downloads.sourceforge.net/project/azureus/vuze/Vuze_${pkgver//./}/Vuze_${pkgver//./}_linux.tar.bz2"
+ 'vuze.desktop')
+md5sums=('af80c418f0bcc718941762485c916914'
+ '345ad45b972009dcd672c4eaf52fb336')
+[[ $CARCH == 'x86_64' ]] && source[0]="http://downloads.sourceforge.net/project/azureus/vuze/Vuze_${pkgver//./}/Vuze_${pkgver//./}_linux-x86_64.tar.bz2" && md5sums[0]='22a9c2077cb686fbc00b09dc281fe5a1'
+
+package() {
+ install -d ${pkgdir}/usr/share
+ cp -r vuze ${pkgdir}/usr/share
+
+ install -Dm755 vuze/vuze ${pkgdir}/usr/bin/vuze
+ sed -i 's%#PROGRAM_DIR="/home/username/apps/azureus"%PROGRAM_DIR="/usr/share/vuze"%' ${pkgdir}/usr/bin/vuze
+
+ install -Dm644 vuze/vuze.png ${pkgdir}/usr/share/pixmaps/vuze.png
+ install -Dm644 vuze.desktop ${pkgdir}/usr/share/applications/vuze.desktop
+}
diff --git a/community/vuze/vuze.desktop b/community/vuze/vuze.desktop
new file mode 100644
index 000000000..fd31db05f
--- /dev/null
+++ b/community/vuze/vuze.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Vuze
+GenericName=BitTorrent Client
+Comment=Transfer files via Peer to Peer
+Exec=vuze %F
+Icon=vuze
+Terminal=false
+Type=Application
+MimeType=application/x-bittorrent;
+Categories=Network;FileTransfer;P2P;GTK;
+StartupNotify=true
diff --git a/community/vym/PKGBUILD b/community/vym/PKGBUILD
new file mode 100644
index 000000000..294c474ad
--- /dev/null
+++ b/community/vym/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 40005 2011-02-19 13:39:49Z jlichtblau $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: S�ren Holm <sgh@sgh.dk>
+
+pkgname=vym
+pkgver=1.12.8
+pkgrel=1
+pkgdesc="A mindmapping tool"
+arch=('i686' 'x86_64')
+url="http://www.insilmaril.de/vym/"
+license=('GPL')
+depends=('qt' 'unzip' 'zip')
+options=('!emptydirs')
+changelog=$pkgname.changelog
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 \
+ $pkgname.desktop)
+sha256sums=('0b8a40a61460bef5d6423b3d0efef07d73328f7c789e95b7f3e1ac2f725f0643'
+ 'e299c69c213e7aac3f5b5d0ab088132b4ec7cb63a391f272e75ed64f049d541b')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ qmake PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+# install files
+ make INSTALL_ROOT=${pkgdir} install
+
+# correct doc location
+ install -d ${pkgdir}/usr/share/doc/$pkgname
+ install -m644 doc/* ${pkgdir}/usr/share/doc/$pkgname
+ rm -rf ${pkgdir}/usr/share/doc/packages
+
+# .desktop and icon file
+ install -D -m644 ${srcdir}/$pkgname.desktop \
+ ${pkgdir}/usr/share/applications/$pkgname.desktop
+ install -D -m644 ${pkgdir}/usr/share/vym/icons/$pkgname.png \
+ ${pkgdir}/usr/share/pixmaps/$pkgname.png
+}
diff --git a/community/vym/vym.changelog b/community/vym/vym.changelog
new file mode 100644
index 000000000..7c4e9b3e7
--- /dev/null
+++ b/community/vym/vym.changelog
@@ -0,0 +1,8 @@
+2011-02-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * vym 1.12.8
+
+2010-03-21 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.12.7
+
+2009-12-19 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 1.12.6
diff --git a/community/vym/vym.desktop b/community/vym/vym.desktop
new file mode 100644
index 000000000..ec0cab724
--- /dev/null
+++ b/community/vym/vym.desktop
@@ -0,0 +1,38 @@
+[Desktop Entry]
+Type=Application
+Exec=vym
+Icon=vym
+MimeType=application/x-vym;
+Categories=Qt;KDE;Education;
+Name=VYM - View Your Mind
+Name[de]=VYM - View Your Mind
+Name[fi]=VYM - ohjelma miellekarttojen (MindMap) tekemiseksi
+Name[hu]=VYM - Gondolatmegjelenítő
+Name[nb]=VYM - Vis tankene dine
+Name[pa]=VYM - ਵਿਊ ਯੂਅਰ ਮਾਈਡ
+Name[ru]=VYM - загляни в себя
+Name[uk]=VYM - Перегляд вашого розуму
+Name[zh_CN]=VYM - 绘制你的思维
+Comment=Create mind maps
+Comment[ca]=Creeu mapes mentals
+Comment[de]=Mindmap erstellen
+Comment[es]=Crear mapas mentales
+Comment[fr]=Créez des cartes d'associations d'idées
+Comment[it]=Crea mappe mentali
+GenericName=Planning Tool
+GenericName[ca]=Eina de planificació
+GenericName[da]=Planlægnings- og brainstormværktøj
+GenericName[de]=Planungs- und Brainstorming-Tool
+GenericName[es]=Herramienta de planificación
+GenericName[fi]=Suunnittelu- ja aivoriihityökalu
+GenericName[fr]=Outil de plannification
+GenericName[hu]=Tervező- és ötletgyűjtési eszköz
+GenericName[it]=Strumento di pianificazione e brainstorming
+GenericName[km]=ឧបករណ៍​ធ្វើ​ផែនការ និង​បំផុស​គំនិត
+GenericName[nb]=Planleggings- og idéverktøy
+GenericName[nl]=Programma voor plannen en brainstormen
+GenericName[pl]=Planowanie i burze mózgów
+GenericName[pt]=Ferramenta de Planeamento e Tempestades de Ideias
+GenericName[ru]=Срелдство для планирования и проведения "мозгового штурма"
+GenericName[uk]=Засіб планування і занотовування ідей
+GenericName[zh_CN]=规划和头脑风暴工具
diff --git a/community/vyqchat/PKGBUILD b/community/vyqchat/PKGBUILD
new file mode 100644
index 000000000..8bffed66f
--- /dev/null
+++ b/community/vyqchat/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 14449 2010-04-03 16:01:29Z foutrelis $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=vyqchat
+pkgver=0.2.8
+pkgrel=3
+pkgdesc="vypress compatible qt chat (can work without server)"
+arch=('i686' 'x86_64')
+url="http://linux.bydg.org/~yogin/"
+license=('GPL')
+depends=('qt3' 'libao' 'libxi')
+source=(http://www.uic.unn.ru/~soed/programs/chat/$pkgname-$pkgver.tar.gz
+ build-fix.patch)
+md5sums=('67974bc5df1ed0d63785d04325444d4f' 'de3af70da3743c27929f04f72c837412')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ cd ${startdir}/src/$pkgname-${pkgver}
+ patch -Np1 <../build-fix.patch
+ # Use _LDADD to properly compile with --as-needed
+ sed -i 's/vyqchat_LDFLAGS/vyqchat_LDADD/' src/Makefile.am || return 1
+ # Correct acinclude.m4 to avoid empty else block
+ sed -i 's:# Leave bnv_qt_lib_dir defined:/bin/true:' acinclude.m4 || return 1
+ autoreconf -v || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+}
diff --git a/community/vyqchat/build-fix.patch b/community/vyqchat/build-fix.patch
new file mode 100644
index 000000000..7ad70ab2f
--- /dev/null
+++ b/community/vyqchat/build-fix.patch
@@ -0,0 +1,36 @@
+diff -wbBur vyqchat-0.2.8/src/settings.h vyqchat-0.2.8.my/src/settings.h
+--- vyqchat-0.2.8/src/settings.h 2005-07-18 22:54:08.000000000 +0400
++++ vyqchat-0.2.8.my/src/settings.h 2007-02-21 21:05:11.000000000 +0300
+@@ -88,7 +88,7 @@
+
+ //
+ // Get methods
+- const UUID& Settings::getUUID() const { return uuid; }
++ const UUID& getUUID() const { return uuid; }
+ const QString& getIconThemeName() const { return icontheme; }
+ const QString& getNick() const { return nick; }
+ char getGender() const { return gender; }
+diff -wbBur vyqchat-0.2.8/src/sound.h vyqchat-0.2.8.my/src/sound.h
+--- vyqchat-0.2.8/src/sound.h 2005-07-18 22:54:08.000000000 +0400
++++ vyqchat-0.2.8.my/src/sound.h 2007-02-21 21:04:45.000000000 +0300
+@@ -47,7 +47,7 @@
+ bool reload_samples(Settings &settings);
+ static bool init(Settings *settings);
+ static void close();
+- static const QString& Sound::error();
++ static const QString& error();
+ static void play(VyEvent evt);
+ };
+
+diff -wbBur vyqchat-0.2.8/src/user.h vyqchat-0.2.8.my/src/user.h
+--- vyqchat-0.2.8/src/user.h 2005-07-18 23:03:01.000000000 +0400
++++ vyqchat-0.2.8.my/src/user.h 2007-02-21 21:04:14.000000000 +0300
+@@ -38,7 +38,7 @@
+ }
+ return false;
+ }
+- bool User::setStatus(char s) { status=s; return true; }
++ bool setStatus(char s) { status=s; return true; }
+ void setNick(const QString &nick) { setText(nick); }
+ int incDeadCounter() { if (dcnt<1) dcnt++; return dcnt; }
+ int decDeadCounter() { return --dcnt; }
diff --git a/community/w3cam/PKGBUILD b/community/w3cam/PKGBUILD
new file mode 100644
index 000000000..a0b3016c4
--- /dev/null
+++ b/community/w3cam/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 9021 2010-01-23 03:31:31Z dgriffiths $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Christian Schmidt <mucknert@gmx.net>
+
+pkgname=w3cam
+pkgver=0.7.2
+pkgrel=9
+pkgdesc="a small and fast CGI program to retrieve images from a video4linux device."
+arch=('i686' 'x86_64')
+url="http://mpx.freeshell.net/"
+license=('GPL')
+depends=(libpng libjpeg)
+source=(http://mpx.freeshell.net/$pkgname-$pkgver.tar.gz)
+md5sums=('eec0b301b32bc8e9f65a4e54248c9868')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-device=/dev/video0 --with-ttf-inc=/usr/include/freetype
+ make || return 1
+ mkdir -p $startdir/pkg/usr/cgi-bin $startdir/pkg/usr/bin $startdir/pkg/usr/man/man1 $startdir/pkg/usr/share/
+ make prefix=$startdir/pkg/usr/ install && \
+ mkdir -p $startdir/pkg/usr/lib/w3cam/ && \
+ mv $startdir/pkg/usr/cgi-bin/* $startdir/pkg/usr/lib/w3cam/ && \
+ mv $startdir/pkg/usr/man $startdir/pkg/usr/share/man || return 1
+ rm -rf $startdir/pkg/usr/cgi-bin
+}
diff --git a/community/warmux/PKGBUILD b/community/warmux/PKGBUILD
new file mode 100644
index 000000000..aabe8ab65
--- /dev/null
+++ b/community/warmux/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 41384 2011-03-05 15:36:57Z lcarlier $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: pukyxd
+# Maintainer: Daenyth <Daenyth+Arch AT gmail DOT com>
+
+pkgname=warmux
+pkgver=11.01
+pkgrel=1
+pkgdesc="A clone of the worms game"
+arch=('i686' 'x86_64')
+url="http://www.wormux.org/"
+license=('GPL')
+depends=('libxml++' 'sdl_image' 'sdl_gfx>=2.0.19' 'sdl_ttf' 'sdl_mixer' 'sdl_net' 'curl>=7.16.2' 'gcc-libs' 'libxml2')
+makedepends=('pkgconfig')
+replaces=('wormux')
+source=(http://download.gna.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ecf98ff1a91899d35d0ba8266ace9787')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/community/warsow/PKGBUILD b/community/warsow/PKGBUILD
new file mode 100644
index 000000000..e4c11f1e0
--- /dev/null
+++ b/community/warsow/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 42571 2011-03-17 17:04:27Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Slash <demodevil5[at]yahoo[dot]com>
+# Contributor: Babets
+# Contributor: Vain
+
+pkgname=warsow
+pkgver=0.61
+pkgrel=1
+pkgdesc="a free online multiplayer competitive FPS based on the Qfusion engine"
+url="http://www.warsow.net/"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('curl' 'libjpeg' 'libvorbis' 'libxinerama' 'libxxf86dga' 'libxxf86vm' 'sdl' 'warsow-data')
+makedepends=('mesa' 'openal' 'unzip')
+optdepends=('openal: for openal audio support')
+source=('warsow.desktop' 'warsow.launcher' 'wsw-server.launcher' 'wswtv-server.launcher' \
+"http://www.zcdn.org/dl/warsow_${pkgver}_sdk.zip")
+noextract=("warsow_${pkgver}_sdk.zip")
+md5sums=('f9bf60c80820237f7097c4e50a9582cd'
+ 'ec00081d81ad9802a8ca42fc2eac5498'
+ 'f73e10c26197178df71b941b10bf83d7'
+ 'd7e4a69835bbcf801e58307e9d6b951e'
+ '04bd29a63c3a43a7e3ea3a865b75e580')
+
+build() {
+ unset CFLAGS
+ unset CXXFLAGS
+
+ # Extract Game Source Code
+ unzip -o warsow_${pkgver}_sdk.zip -d $srcdir/warsow-src
+
+ # Patch Makefile to use correct program to query for system information
+ sed -i 's:openal-config:pkg-config:g' $srcdir/warsow-src/source/Makefile
+
+ # Patch Sound Code to point to base openal library
+ sed -i 's:libopenal.so.0:libopenal.so:g' $srcdir/warsow-src/source/snd_openal/snd_main.c
+
+ # Patch for libjpeg8
+ sed -i 's/jpeg_mem_src/_jpeg_mem_src/g' $srcdir/warsow-src/source/ref_gl/r_image.c
+
+ # Patch AngelScript so it compiles correctly on i686
+ if [ "$CARCH" == "i686" ]; then
+ sed -i 's:CXXFLAGS = \(.*\):CXXFLAGS = -march=i686 \1:' \
+ $srcdir/warsow-src/libsrcs/angelscript/angelSVN/sdk/angelscript/projects/gnuc/makefile
+ fi
+
+ # Compile Warsow
+ cd $srcdir/warsow-src/source/
+ make -j1
+}
+
+package() {
+ cd $srcdir/warsow-src/source/
+
+ # Create Destination Directories
+ install -d $pkgdir/opt/warsow/
+
+ # Move Compiled Data to Destination Directory
+ cp -r $srcdir/warsow-src/source/release/* \
+ $pkgdir/opt/warsow
+
+ # Install Client Game Launcher
+ install -D -m 0755 $srcdir/warsow.launcher \
+ $pkgdir/usr/bin/warsow
+
+ # Install Server Game Launcher
+ install -D -m 0755 $srcdir/wsw-server.launcher \
+ $pkgdir/usr/bin/wsw-server
+
+ # Install WSWTV Server Launcher
+ install -D -m 0755 $srcdir/wswtv-server.launcher \
+ $pkgdir/usr/bin/wswtv-server
+
+ # Install Client Desktop Shortcut
+ install -D -m 0644 $srcdir/warsow.desktop \
+ $pkgdir/usr/share/applications/warsow.desktop
+
+ # Install Icon
+ install -D -m 0644 $srcdir/warsow-src/source/win32/warsow.ico \
+ $pkgdir/usr/share/pixmaps/warsow.ico
+}
+
+# vim: ts=2:sw=2
diff --git a/community/warsow/warsow.desktop b/community/warsow/warsow.desktop
new file mode 100644
index 000000000..839e13e02
--- /dev/null
+++ b/community/warsow/warsow.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Warsow
+GenericName=Warsow
+Comment=Online Multiplayer Competitive FPS
+Icon=/usr/share/pixmaps/warsow.ico
+Exec=/usr/bin/warsow
+Terminal=false
+Type=Application
+Categories=Application;Game
+StartupNotify=true
diff --git a/community/warsow/warsow.launcher b/community/warsow/warsow.launcher
new file mode 100644
index 000000000..64dac4188
--- /dev/null
+++ b/community/warsow/warsow.launcher
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+cd "/opt/warsow"
+./warsow $*
+exit $?
diff --git a/community/warsow/wsw-server.launcher b/community/warsow/wsw-server.launcher
new file mode 100644
index 000000000..5035253e6
--- /dev/null
+++ b/community/warsow/wsw-server.launcher
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+cd "/opt/warsow"
+./wsw_server $*
+exit $?
diff --git a/community/warsow/wswtv-server.launcher b/community/warsow/wswtv-server.launcher
new file mode 100644
index 000000000..10f70a234
--- /dev/null
+++ b/community/warsow/wswtv-server.launcher
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+cd "/opt/warsow"
+./wswtv_server $*
+exit $?
diff --git a/community/warzone2100/PKGBUILD b/community/warzone2100/PKGBUILD
new file mode 100644
index 000000000..32746ffbf
--- /dev/null
+++ b/community/warzone2100/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 39013 2011-02-05 01:04:18Z lcarlier $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+
+pkgname=warzone2100
+pkgver=2.3.7
+pkgrel=1
+pkgdesc="3D realtime strategy game on a future Earth"
+url="http://wz2100.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('sdl_net' 'libgl' 'openal' 'libjpeg' 'libpng' 'libvorbis' 'libtheora' 'libmad' 'physfs' 'mesa' 'quesoglc' 'popt' 'ttf-dejavu')
+makedepends=('gawk' 'bison' 'flex' 'zip' 'unzip')
+source=("http://downloads.sourceforge.net/project/warzone2100/releases/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('67c2bb506fc59336eb830ff50303745d')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/wavegain/ChangeLog b/community/wavegain/ChangeLog
new file mode 100644
index 000000000..a348c0cc3
--- /dev/null
+++ b/community/wavegain/ChangeLog
@@ -0,0 +1,19 @@
+2009-02-28 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 1.2.8
+
+ * PKGBUILD: some cleanup
+
+ * rename.patch: removed
+
+2008-05-03 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Release bump: -2
+
+ * PKGBUILD: corrected a wrong description (stupid me)
+
+2008-05-03 Corrado Primier <bardo@aur.archlinux.org>
+
+ * PKGBUILD: created (wavegain is needed by gnormalize)
+
+ * ChangeLog: added
diff --git a/community/wavegain/PKGBUILD b/community/wavegain/PKGBUILD
new file mode 100644
index 000000000..8811cbd61
--- /dev/null
+++ b/community/wavegain/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 22383 2010-07-21 16:08:04Z lcarlier $
+# Maintainer: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=wavegain
+pkgver=1.2.8
+pkgrel=2
+pkgdesc="A command line tool to normalize sound files"
+arch=('i686' 'x86_64')
+url="http://rarewares.org/others.php"
+license=('LGPL')
+depends=('glibc' 'libsndfile')
+source=(http://www.rarewares.org/files/others/${pkgname}-${pkgver}srcs.zip)
+md5sums=('bc9b412400dbfb69bcbf961ed4e6eb06')
+
+build() {
+ cd ${srcdir}/WaveGain-${pkgver}
+
+ make -f Makefile.linux
+}
+
+package() {
+ cd ${srcdir}/WaveGain-${pkgver}
+
+ install -Dm755 ${srcdir}/WaveGain-${pkgver}/wavegain ${pkgdir}/usr/bin/wavegain
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/wbar/ChangeLog b/community/wbar/ChangeLog
new file mode 100644
index 000000000..710f62f34
--- /dev/null
+++ b/community/wbar/ChangeLog
@@ -0,0 +1,3 @@
+2008-10-13 Allan McRae <allan@archlinux.org>
+ * wbar 1.3.3-2
+ * Moved to [community] repo
diff --git a/community/wbar/PKGBUILD b/community/wbar/PKGBUILD
new file mode 100644
index 000000000..d02fa85b2
--- /dev/null
+++ b/community/wbar/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 38239 2011-01-23 22:13:38Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=wbar
+pkgver=2.1.1
+pkgrel=1
+arch=('i686' 'x86_64')
+depends=('imlib2' 'gcc-libs')
+optdepends=('libglade')
+pkgdesc="A quick launch bar developed with speed in mind."
+url="http://code.google.com/p/wbar"
+license=('GPL')
+source=(http://wbar.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('637433fc2995a0e45e644fd992e970f6')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --exec_prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/wdm/PKGBUILD b/community/wdm/PKGBUILD
new file mode 100644
index 000000000..26775681b
--- /dev/null
+++ b/community/wdm/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 44025 2011-04-01 16:50:02Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: eric <eric@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=wdm
+pkgver=1.28
+pkgrel=5
+pkgdesc="An replacement X window display manager similar to, and based on XDM"
+arch=(i686 x86_64)
+depends=('windowmaker' 'pam' 'bash' 'libxmu')
+license=('GPL')
+source=(http://voins.program.ru/$pkgname/$pkgname-$pkgver.tar.bz2)
+url="http://voins.program.ru/wdm/"
+md5sums=('4da8ffe3af233305786d9b6aab78b838')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-nlsdir=/usr/share/locale \
+ --sysconfdir=/etc/wdm --with-wdmdir=/etc/wdm --mandir=/usr/share/man \
+ --with-fakehome=/var/empty
+ make
+ make DESTDIR=$pkgdir install
+ # used /etc/pam.d/xscreensaver as an example
+ #
+ echo "auth required pam_unix_auth.so" > $pkgdir/etc/pam.d/wdm
+ chmod 0644 $pkgdir/etc/wdm/wdm-config
+ chmod 0755 $pkgdir/etc/wdm/authdir
+}
diff --git a/community/webfs/PKGBUILD b/community/webfs/PKGBUILD
new file mode 100644
index 000000000..c114dd27e
--- /dev/null
+++ b/community/webfs/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 14331 2010-04-02 23:04:21Z foutrelis $
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Mark Rosenstand <mark@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=webfs
+pkgver=1.21
+pkgrel=5
+pkgdesc="Simple http server for mostly static content."
+arch=(i686 x86_64)
+url="http://linux.bytesex.org/misc/webfs.html"
+license=("GPL")
+depends=('openssl')
+backup=(etc/conf.d/webfsd)
+source=(http://dl.bytesex.org/releases/webfs/webfs-${pkgver}.tar.gz
+ webfsd.rc webfsd.conf webfs.patch)
+md5sums=('6dc125fe160479404147e7bbfc781dbc' '3ae9fcdcf79b193aa88e386055e9ebd7'
+ 'b2c1ab041a82acd8391b06dc38d986be' '7294edcec2589df04bb775270d56536e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -i ${srcdir}/webfs.patch || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make prefix=/usr DESTDIR=${pkgdir} install
+ install -Dm755 ${srcdir}/webfsd.rc ${pkgdir}/etc/rc.d/webfsd
+ install -Dm644 ${srcdir}/webfsd.conf ${pkgdir}/etc/conf.d/webfsd
+}
diff --git a/community/webfs/webfs.patch b/community/webfs/webfs.patch
new file mode 100644
index 000000000..fca51a630
--- /dev/null
+++ b/community/webfs/webfs.patch
@@ -0,0 +1,250 @@
+# This patch performs the following:
+#
+# 1) user/group names my now be set to the system maximum using
+# sysconf(_SC_LOGIN_NAME_MAX). They were previously hardcoded to 16 chars.
+#
+# 2) supplementary groups are now set according to the user webfs is running as.
+# previously they were left as the calling user, which could be dangerous
+# ex: sudo webfsd -u nobody, would leave webfsd with all of root's groups!
+#
+# 3) the supplementary group list is no longer made empty when using -g
+#
+# 4) supplementary groups are now checked for read access when generating
+# directory listings
+#
+# 5) in ls.c/ls() changed type of uid and gid to uid_t and gid_t
+#
+# 6) in ls.c/ls() fixed a problem where the uid of the file was being compared
+# to the gid of the user to check for readability
+#
+# 7) added a -G option to ignore/remove all supplementary groups
+#
+# 8) updated man page to reflect -G option
+#
+# 9) when the uid is 0, all files are now displayed as readable.
+#
+
+diff -urp webfs-1.21-orig/httpd.h webfs-1.21/httpd.h
+--- webfs-1.21-orig/httpd.h 2004-06-10 05:45:50.000000000 -0400
++++ webfs-1.21/httpd.h 2010-03-27 14:57:07.631540000 -0400
+@@ -169,6 +169,8 @@ extern int lifespan;
+ extern int no_listing;
+ extern time_t now;
+ extern int have_tty;
++extern gid_t *grp_list;
++extern int grp_num;
+
+ #ifdef USE_SSL
+ extern int with_ssl;
+diff -urp webfs-1.21-orig/ls.c webfs-1.21/ls.c
+--- webfs-1.21-orig/ls.c 2004-06-10 05:45:50.000000000 -0400
++++ webfs-1.21/ls.c 2010-03-28 10:52:09.449259926 -0400
+@@ -194,7 +194,9 @@ ls(time_t now, char *hostname, char *fil
+ struct myfile **files = NULL;
+ struct myfile **re1;
+ char *h1,*h2,*re2,*buf = NULL;
+- int count,len,size,i,uid,gid;
++ int count,len,size,i;
++ uid_t uid;
++ gid_t gid;
+ char line[1024];
+ char *pw = NULL, *gr = NULL;
+
+@@ -241,14 +243,23 @@ ls(time_t now, char *hostname, char *fil
+ files[count]->r = 0;
+ if (S_ISDIR(files[count]->s.st_mode) ||
+ S_ISREG(files[count]->s.st_mode)) {
+- if (files[count]->s.st_uid == uid &&
++ if (uid == 0)
++ files[count]->r = 1;
++ else if (files[count]->s.st_uid == uid &&
+ files[count]->s.st_mode & 0400)
+ files[count]->r = 1;
+- else if (files[count]->s.st_uid == gid &&
++ else if (files[count]->s.st_gid == gid &&
+ files[count]->s.st_mode & 0040)
+- files[count]->r = 1; /* FIXME: check additional groups */
++ files[count]->r = 1;
+ else if (files[count]->s.st_mode & 0004)
+ files[count]->r = 1;
++ else {
++ for (i = 0; i < grp_num; i++) {
++ if (files[count]->s.st_gid == grp_list[i] &&
++ files[count]->s.st_mode & 0400)
++ files[count]->r = 1;
++ }
++ }
+ }
+ }
+ closedir(dir);
+diff -urp webfs-1.21-orig/webfsd.c webfs-1.21/webfsd.c
+--- webfs-1.21-orig/webfsd.c 2004-06-10 05:45:50.000000000 -0400
++++ webfs-1.21/webfsd.c 2010-03-28 10:36:33.992517000 -0400
+@@ -42,8 +42,8 @@ char *listen_port = "8000";
+ int virtualhosts = 0;
+ int canonicalhost = 0;
+ char server_host[256];
+-char user[17];
+-char group[17];
++char *user;
++char *group;
+ char *mimetypes = MIMEFILE;
+ char *pidfile = NULL;
+ char *logfile = NULL;
+@@ -57,6 +57,9 @@ int have_tty = 1;
+ int max_conn = 32;
+ int lifespan = -1;
+ int no_listing = 0;
++int setsupgroups = 1;
++gid_t *grp_list = NULL;
++int grp_num = 0;
+
+ time_t now;
+ int slisten;
+@@ -167,6 +170,7 @@ usage(char *name)
+ gr = getgrgid(getgid());
+ fprintf(stderr,
+ " -u user run as user >user< [%s]\n"
++ " -G set supplementary group list to empty\n"
+ " -g group run as group >group< [%s]\n",
+ pw ? pw->pw_name : "???",
+ gr ? gr->gr_name : "???");
+@@ -189,6 +193,7 @@ fix_ug(void)
+ {
+ struct passwd *pw = NULL;
+ struct group *gr = NULL;
++ int numgroupsmax, i;
+
+ /* root is allowed to use any uid/gid,
+ * others will get their real uid/gid */
+@@ -214,6 +219,20 @@ fix_ug(void)
+ exit(1);
+ }
+
++ /* get supplementary groups */
++ if (setsupgroups) {
++ numgroupsmax = sysconf(_SC_NGROUPS_MAX) + 1;
++ grp_list = (gid_t*) malloc(numgroupsmax * sizeof(gid_t));
++
++ if (grp_list != NULL) {
++ grp_num = getgrouplist(pw->pw_name, pw->pw_gid,
++ grp_list, &numgroupsmax);
++ } else {
++ xerror(LOG_ERR, "failed to get group list - "
++ "removing all sup groups", NULL);
++ }
++ }
++
+ /* chroot to $DOCUMENT_ROOT (must be done here as getpwuid needs
+ /etc and chroot works as root only) */
+ if (do_chroot) {
+@@ -227,14 +246,22 @@ fix_ug(void)
+ /* set group */
+ if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
+ setgid(gr->gr_gid);
+- setgroups(0, NULL);
+ }
+ if (getegid() != gr->gr_gid || getgid() != gr->gr_gid) {
+ xerror(LOG_ERR,"setgid failed",NULL);
+ exit(1);
+ }
+- strncpy(group,gr->gr_name,16);
++
++ if (strlen(gr->gr_name) < sysconf(_SC_LOGIN_NAME_MAX))
++ strcpy(group,gr->gr_name);
++ else
++ xerror(LOG_ERR,"groupname too long",NULL);
+
++ /* set supplementary groups */
++ if (geteuid() == 0)
++ if (setgroups(grp_num, grp_list) != 0)
++ xerror(LOG_ERR, "failed to set supplementary groups", NULL);
++
+ /* set user */
+ if (geteuid() != pw->pw_uid || getuid() != pw->pw_uid)
+ setuid(pw->pw_uid);
+@@ -242,11 +269,23 @@ fix_ug(void)
+ xerror(LOG_ERR,"setuid failed",NULL);
+ exit(1);
+ }
+- strncpy(user,pw->pw_name,16);
+-
+- if (debug)
+- fprintf(stderr,"fix_ug: uid=%d euid=%d / gid=%d egid=%d\n",
++
++ if (strlen(pw->pw_name) < sysconf(_SC_LOGIN_NAME_MAX))
++ strcpy(user,pw->pw_name);
++ else
++ xerror(LOG_ERR,"username too long",NULL);
++
++ if (debug) {
++ fprintf(stderr,"fix_ug: uid=%d euid=%d / gid=%d egid=%d / gids: ",
+ getuid(),geteuid(),getgid(),getegid());
++
++ for (i = 0; i < grp_num; i++) {
++ fprintf(stderr, "%d ", grp_list[i]);
++ }
++
++ fprintf(stderr, "\n");
++ }
++
+ }
+
+ /* ---------------------------------------------------------------------- */
+@@ -687,6 +726,10 @@ main(int argc, char *argv[])
+ char serv[16];
+ char mypid[12];
+
++ /* allocate space for user/group names. _SC_LOGIN_NAME_MAX includes \0 */
++ user = (char *)malloc(sizeof(char) * sysconf(_SC_LOGIN_NAME_MAX));
++ group = (char *)malloc(sizeof(char) * sysconf(_SC_LOGIN_NAME_MAX));
++
+ uid = getuid();
+ euid = geteuid();
+ if (uid != euid)
+@@ -702,7 +745,7 @@ main(int argc, char *argv[])
+ /* parse options */
+ for (;;) {
+ if (-1 == (c = getopt(argc,argv,"hvsdF46jS"
+- "r:R:f:p:n:N:i:t:c:a:u:g:l:L:m:y:b:k:e:x:C:P:~:")))
++ "r:R:f:p:n:N:i:t:c:a:u:Gg:l:L:m:y:b:k:e:x:C:P:~:")))
+ break;
+ switch (c) {
+ case 'h':
+@@ -759,10 +802,19 @@ main(int argc, char *argv[])
+ max_dircache = atoi(optarg);
+ break;
+ case 'u':
+- strncpy(user,optarg,16);
++ if (strlen(optarg) < sysconf(_SC_LOGIN_NAME_MAX))
++ strcpy(user,optarg);
++ else
++ xerror(LOG_ERR,"username too long",NULL);
++ break;
++ case 'G':
++ setsupgroups = 0;
+ break;
+ case 'g':
+- strncpy(group,optarg,16);
++ if (strlen(optarg) < sysconf(_SC_LOGIN_NAME_MAX))
++ strcpy(group,optarg);
++ else
++ xerror(LOG_ERR,"groupname too long",NULL);
+ break;
+ case 'L':
+ flushlog = 1;
+diff -urp webfs-1.21-orig/webfsd.man webfs-1.21/webfsd.man
+--- webfs-1.21-orig/webfsd.man 2004-06-08 08:52:02.000000000 -0400
++++ webfs-1.21/webfsd.man 2010-03-28 10:37:09.495798000 -0400
+@@ -95,6 +95,9 @@ Use >file< as pidfile.
+ Set \fBu\fPid to >user< (after binding to the tcp port). This
+ option is allowed for root only.
+ .TP
++.B -G
++Set the supplementary group list to empty.
++.TP
+ .B -g group
+ Set \fBg\fPid to >group< (after binding to the tcp port). This
+ option is allowed for root only.
+
+
diff --git a/community/webfs/webfsd.conf b/community/webfs/webfsd.conf
new file mode 100644
index 000000000..96986f37a
--- /dev/null
+++ b/community/webfs/webfsd.conf
@@ -0,0 +1,5 @@
+#
+# Parameters passed to webfsd(1)
+#
+
+WEBFSD_ARGS="-p 8080 -u nobody -R /var/www/htdocs -f index.html"
diff --git a/community/webfs/webfsd.rc b/community/webfs/webfsd.rc
new file mode 100644
index 000000000..1c854ebdb
--- /dev/null
+++ b/community/webfs/webfsd.rc
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# source application-specific settings
+[ -f /etc/conf.d/webfsd ] && . /etc/conf.d/webfsd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID webfsd`
+case "$1" in
+ start)
+ stat_busy "Starting webfsd"
+ [ -z "$PID" ] && /usr/bin/webfsd ${WEBFSD_ARGS} &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon webfsd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping webfsd"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon webfsd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/widelands/PKGBUILD b/community/widelands/PKGBUILD
new file mode 100644
index 000000000..a461e2041
--- /dev/null
+++ b/community/widelands/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 23368 2010-08-10 09:00:13Z lcarlier $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Arkham <arkham at archlinux dot us>
+# Contributor: Christoph Zeiler <rabyte*gmail>
+
+pkgname=widelands
+pkgver=15
+_realver=build15
+pkgrel=3
+pkgdesc="A realtime strategy game with emphasis on economy and transport"
+arch=('i686' 'x86_64')
+url="http://widelands.org/"
+license=('GPL')
+depends=('sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'sdl_gfx' 'ggz-client-libs' 'lua')
+makedepends=('cmake' 'boost')
+source=(http://launchpad.net/$pkgname/build15/$_realver/+download/$pkgname-$_realver-src.tar.bz2
+ widelands-build15-gcc-4.5-patch
+ $pkgname.desktop
+ $pkgname.png
+ $pkgname.sh)
+md5sums=('5b2e2d0913272f66055e424f91360b1d'
+ '61fbc78aeb3c177a76264f255b435c77'
+ '15820bf099fd6f16251fe70a75c534bb'
+ '3dfda7e9ca76ca00dd98d745d0ceb328'
+ '7cae50aba5ed0cd2cfeea79124637b46')
+
+build() {
+ cd $srcdir/$pkgname-$_realver-src
+ patch -Np1 -i ../widelands-build15-gcc-4.5-patch
+
+ mkdir -p build/compile && cd build/compile
+
+ cmake ../.. -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWL_INSTALL_PREFIX=/usr \
+ -DWL_INSTALL_DATADIR=share/$pkgname \
+ -DWL_INSTALL_BINDIR=bin
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$_realver-src/build/compile
+
+ make DESTDIR="$pkgdir" install
+
+ # Install bin, icon and desktop file
+ #install -Dm 755 src/$pkgname $pkgdir/usr/share/$pkgname/$pkgname
+ #install -Dm 755 $srcdir/$pkgname.sh $pkgdir/usr/bin/$pkgname
+ install -Dm644 $srcdir/$pkgname.png $pkgdir/usr/share/pixmaps/$pkgname.png
+ install -Dm644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop
+}
diff --git a/community/widelands/widelands-build15-gcc-4.5-patch b/community/widelands/widelands-build15-gcc-4.5-patch
new file mode 100644
index 000000000..6ba313358
--- /dev/null
+++ b/community/widelands/widelands-build15-gcc-4.5-patch
@@ -0,0 +1,51 @@
+diff -Naur widelands-from/src/editor/ui_menus/editor_main_menu_new_map.cc widelands-to/src/editor/ui_menus/editor_main_menu_new_map.cc
+--- widelands-from/src/editor/ui_menus/editor_main_menu_new_map.cc 2010-04-16 15:41:22.000000000 +0000
++++ widelands-to/src/editor/ui_menus/editor_main_menu_new_map.cc 2010-07-01 21:15:56.000000000 +0000
+@@ -113,7 +113,7 @@
+ posx, posy, width, height,
+ g_gr->get_picture(PicMod_UI, "pics/but1.png"),
+ &Main_Menu_New_Map::button_clicked, *this, 4,
+- Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name());
++ Widelands::World(m_worlds[m_currentworld].c_str()).get_name());
+
+ posy += height + spacing + spacing + spacing;
+
+@@ -142,7 +142,7 @@
+ if (m_currentworld == m_worlds.size())
+ m_currentworld = 0;
+ m_world->set_title
+- (Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name
++ (Widelands::World(m_worlds[m_currentworld].c_str()).get_name
+ ());
+ break;
+ }
+diff -Naur widelands-from/src/editor/ui_menus/editor_main_menu_random_map.cc widelands-to/src/editor/ui_menus/editor_main_menu_random_map.cc
+--- widelands-from/src/editor/ui_menus/editor_main_menu_random_map.cc 2010-04-16 15:41:22.000000000 +0000
++++ widelands-to/src/editor/ui_menus/editor_main_menu_random_map.cc 2010-07-01 21:17:39.000000000 +0000
+@@ -272,7 +272,7 @@
+ posx, posy, width, height,
+ g_gr->get_picture(PicMod_UI, "pics/but1.png"),
+ &Main_Menu_New_Random_Map::button_clicked, *this, 8,
+- Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name());
++ Widelands::World(m_worlds[m_currentworld].c_str()).get_name());
+
+ posy += height + spacing + spacing + spacing;
+
+@@ -343,7 +343,7 @@
+ if (m_currentworld == m_worlds.size())
+ m_currentworld = 0;
+ m_world->set_title
+- (Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name());
++ (Widelands::World(m_worlds[m_currentworld].c_str()).get_name());
+ break;
+ case 9:
+ break;
+@@ -476,7 +476,7 @@
+ (strcmp(mapInfo.worldName.c_str(), m_worlds[m_currentworld].c_str()))
+ ++m_currentworld;
+ m_world->set_title
+- (Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name());
++ (Widelands::World(m_worlds[m_currentworld].c_str()).get_name());
+
+ button_clicked(-1); // Update other values in UI as well
+
diff --git a/community/widelands/widelands.desktop b/community/widelands/widelands.desktop
new file mode 100644
index 000000000..9715d816c
--- /dev/null
+++ b/community/widelands/widelands.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Widelands
+GenericName=Widelands
+Comment=Realtime strategy game
+Icon=widelands
+Exec=widelands
+Type=Application
+Categories=Game;StrategyGame;
diff --git a/community/widelands/widelands.png b/community/widelands/widelands.png
new file mode 100644
index 000000000..c329cf667
--- /dev/null
+++ b/community/widelands/widelands.png
Binary files differ
diff --git a/community/widelands/widelands.sh b/community/widelands/widelands.sh
new file mode 100644
index 000000000..0b21a1694
--- /dev/null
+++ b/community/widelands/widelands.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /usr/share/widelands
+./widelands $*
diff --git a/community/wifi-radar/PKGBUILD b/community/wifi-radar/PKGBUILD
new file mode 100644
index 000000000..11ff48cc2
--- /dev/null
+++ b/community/wifi-radar/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 31375 2010-10-31 12:54:04Z lfleischer $
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dtw <dibble.at.thewrecker.dot.net>
+# Contributor: shawnifoley http://bbs.archlinux.org/viewtopic.php?t=11492
+# Contributor: sebastien le guillerm <geekitus@tele2.fr>
+
+pkgname=wifi-radar
+pkgver=2.0.s08
+pkgrel=2
+pkgdesc="A PyGTK2 utility for managing WiFi profiles"
+arch=('i686' 'x86_64')
+url="http://wifi-radar.berlios.de/"
+license=('GPL')
+depends=('pygtk' 'wireless_tools' 'sudo')
+backup=('etc/wifi-radar.conf')
+install=$pkgname.install
+source=(http://download.berlios.de/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('cbad24805d5dc6696e38dc1df619c819')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # python2 fix
+ sed -i 's_^#!.*/usr/bin/python_#!/usr/bin/python2_' wifi-radar
+
+# Fix iwlist and iwconfig path
+ sed -i 's|/sbin/iwlist|/usr/sbin/iwlist|' $pkgname
+ sed -i 's|/sbin/iwconfig|/usr/sbin/iwconfig|' $pkgname
+
+ make || return 1
+ make DESTDIR=${pkgdir}/usr sysconfdir=${pkgdir}/etc install
+}
diff --git a/community/wifi-radar/wifi-radar.install b/community/wifi-radar/wifi-radar.install
new file mode 100644
index 000000000..91f62bd14
--- /dev/null
+++ b/community/wifi-radar/wifi-radar.install
@@ -0,0 +1,4 @@
+post_remove(){
+ rm etc/wifi-radar.conf &> /dev/null
+ rm var/log/wifi-radar.log &> /dev/null
+}
diff --git a/community/windowlab/PKGBUILD b/community/windowlab/PKGBUILD
new file mode 100644
index 000000000..80237ed83
--- /dev/null
+++ b/community/windowlab/PKGBUILD
@@ -0,0 +1,24 @@
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: phrakture <aaronmgriffin -at- gmail.dot.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=windowlab
+pkgver=1.40
+pkgrel=1
+pkgdesc="A small and simple window manager."
+arch=('i686' 'x86_64')
+url="http://www.nickgravgaard.com/windowlab"
+license=('GPL')
+depends=('xorg-server' 'libxft')
+source=(http://www.nickgravgaard.com/windowlab/${pkgname}-${pkgver}.tar)
+md5sums=('346f8c187838a446b4cbb2326d035577')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make PREFIX=/usr || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make PREFIX=/usr CONFPREFIX="" MANDIR=${pkgdir}/usr/share/man DESTDIR=${pkgdir} install
+}
diff --git a/community/winefish/PKGBUILD b/community/winefish/PKGBUILD
new file mode 100644
index 000000000..c692791b8
--- /dev/null
+++ b/community/winefish/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 23711 2010-08-15 05:56:23Z shusmann $
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Claudio Riva <firetux83@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=winefish
+pkgver=1.3.3
+pkgrel=9
+pkgdesc="LaTeX editor based on Bluefish with auto-completion and syntax highlighting"
+url="http://winefish.berlios.de/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libgnomeui')
+makedepends=('pkgconfig')
+optdepends=('aspell: for spell check')
+install=$pkgname.install
+source=(http://download.berlios.de/$pkgname/$pkgname-$pkgver.tgz)
+md5sums=('63531e4dde7a53ab3a74e1152c7af1e9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-update-databases \
+ --with-freedesktop_org-menu=/usr/share/applications \
+ --with-icon-path=/usr/share/pixmaps --mandir=/usr/share/man
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/winefish/winefish.install b/community/winefish/winefish.install
new file mode 100644
index 000000000..8ae71b3e6
--- /dev/null
+++ b/community/winefish/winefish.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_remove() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
diff --git a/community/winegame/PKGBUILD b/community/winegame/PKGBUILD
new file mode 100644
index 000000000..e38cd9255
--- /dev/null
+++ b/community/winegame/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 25462 2010-09-05 08:42:22Z lcarlier $
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=winegame
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="An interface to install windows programs in Wine"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/winegame/"
+license=('GPL3')
+depends=('libnotify' 'winestuff')
+makedepends=('cmake')
+source=(http://winegame.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('631dd218707c6efb2901ef1206092538')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ mkdir -p build
+ cd build
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr ..
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/build"
+
+ make DESTDIR="$pkgdir/" install
+}
+
diff --git a/community/winestuff/PKGBUILD b/community/winestuff/PKGBUILD
new file mode 100644
index 000000000..0a1e18ea3
--- /dev/null
+++ b/community/winestuff/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=winestuff
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Library utility for winegame"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/winegame/"
+license=('LGPL2.1')
+depends=('qt' 'fuseiso' 'winetricks')
+makedepends=('cmake')
+source=(http://winegame.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('a01f55d30bd0e1dcee3a44aa0fa5369d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ mkdir -p build
+ cd build
+
+ cmake -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr ..
+
+ make translations
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver/build"
+
+ make DESTDIR="$pkgdir/" install
+}
+
diff --git a/community/wkhtmltopdf/PKGBUILD b/community/wkhtmltopdf/PKGBUILD
new file mode 100644
index 000000000..bff273d88
--- /dev/null
+++ b/community/wkhtmltopdf/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 19347 2010-06-22 14:11:07Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+
+pkgname=wkhtmltopdf
+pkgver=0.9.9
+pkgrel=1
+pkgdesc="Simple shell utility to convert html to pdf using the webkit rendering engine, and qt"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/wkhtmltopdf/"
+license=('GPL3')
+depends=('qt')
+optdepends=('xorg-server: wkhtmltopdf needs X or Xvfb to operate')
+source=(http://wkhtmltopdf.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+sha1sums=('41f598c0103326e7c13101391447b0284b4ba3cb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ qmake wkhtmltopdf.pro
+ make || return 1
+ make INSTALL_ROOT="$pkgdir/usr" install || return 1
+
+ # Generate and install man page
+ install -d "$pkgdir/usr/share/man/man1"
+ ./wkhtmltopdf --manpage >"$pkgdir/usr/share/man/man1/wkhtmltopdf.1"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/wmctrl/PKGBUILD b/community/wmctrl/PKGBUILD
new file mode 100644
index 000000000..a4cb2b48f
--- /dev/null
+++ b/community/wmctrl/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 37711 2011-01-16 22:48:09Z andrea $
+# Maintainer:
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: Dalius <dagis@takas.lt>
+
+pkgname=wmctrl
+pkgver=1.07
+pkgrel=2
+pkgdesc="Control your EWMH compliant window manager from command line"
+url="http://sweb.cz/tripie/utils/wmctrl/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=(libxmu glib2)
+source=(http://sweb.cz/tripie/utils/wmctrl/dist/$pkgname-$pkgver.tar.gz
+ get_property-x86_64.patch::http://patch-tracking.debian.net/patch/misc/dl/wmctrl/1.07-6/main.c)
+md5sums=('1fe3c7a2caa6071e071ba34f587e1555'
+ '0d0173fa96e8ff318ea391dffa51235a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 -i "$srcdir/get_property-x86_64.patch"
+
+ ./configure --prefix=/usr --mandir=$pkgdir/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir/usr" install
+}
+
diff --git a/community/wmii/PKGBUILD b/community/wmii/PKGBUILD
new file mode 100644
index 000000000..a411b5048
--- /dev/null
+++ b/community/wmii/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 89676 2010-09-03 07:28:11Z remy $
+# Maintainer:
+# Contributor: Jeffrey 'jf' Lim <jfs.world@gmail.com>
+
+pkgname=wmii
+pkgver=3.9.2
+pkgrel=2
+pkgdesc="A small, dynamic window manager for X11"
+arch=('i686' 'x86_64')
+license=('MIT')
+url="http://wmii.suckless.org/"
+depends=('libxft' 'libxrandr' 'libxinerama' 'dash')
+options=('!makeflags')
+source=(http://dl.suckless.org/${pkgname}/${pkgname}+ixp-${pkgver}.tbz
+ 'fix-freetype-include.patch')
+md5sums=('3d480502b7b1e2a405d941df67f16bcf'
+ '97febd4a1df80aa4afbd126de1f36496')
+
+build() {
+ cd ${srcdir}/${pkgname}+ixp-${pkgver}
+
+ patch -Np1 -i ${srcdir}/fix-freetype-include.patch
+
+ sed -i 's|PREFIX = /usr/local|PREFIX = /usr|' config.mk
+ sed -i 's|ETC = $(PREFIX)/etc|ETC = /etc|' config.mk
+ sed -i 's# !=#!=#' mk/hdr.mk
+ sed -i 's#env python#env python2#' alternative_wmiircs/python/wmiirc
+
+ export MAKEFLAGS="-j1"
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}+ixp-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 debian/file/wmii.desktop ${pkgdir}/usr/share/xsessions/${pkgname}.desktop
+
+ install -Dm644 LICENSE $pkgdir/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/wmii/fix-freetype-include.patch b/community/wmii/fix-freetype-include.patch
new file mode 100644
index 000000000..309d56d06
--- /dev/null
+++ b/community/wmii/fix-freetype-include.patch
@@ -0,0 +1,11 @@
+--- wmii+ixp-3.9.2/config.mk 2010-06-23 20:31:44.171778303 +0200
++++ wmii+ixp-3.9.2/config.mk~ 2010-06-23 20:28:03.285253275 +0200
+@@ -10,7 +10,7 @@
+ INCLUDE = $(PREFIX)/include
+
+ # Includes and libs
+-INCLUDES = -I. -I$(ROOT)/include -I$(INCLUDE) -I/usr/include
++INCLUDES = -I. -I$(ROOT)/include -I$(INCLUDE) -I/usr/include/ -I/usr/include/freetype2
+ LIBS = -L$(ROOT)/lib -L/usr/lib
+
+ TERMINAL = xterm
diff --git a/community/wml/PKGBUILD b/community/wml/PKGBUILD
new file mode 100644
index 000000000..e5ec882a6
--- /dev/null
+++ b/community/wml/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 30972 2010-10-24 14:22:26Z ibiru $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=wml
+pkgver=2.0.11
+pkgrel=5
+pkgdesc="The Website Meta Language"
+arch=('i686' 'x86_64')
+url="http://thewml.org/"
+license=('GPL')
+depends=('perl' 'libpng' 'gdbm' 'db>=4.8.24' 'ncurses')
+makedepends=('lynx')
+source=("http://thewml.org/distrib/${pkgname}-${pkgver}.tar.gz")
+md5sums=('a26feebf4e59e9a6940f54c69dde05b5')
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # missing Perl modules fix
+ sed -i 's/PREFIX=$(libdir)\/perl/DESTDIR=\.\.\/\.\.\/\.\.\/\.\.\/pkg\/ PREFIX=$(libdir)\/perl/' wml_common/Makefile.in
+ sed -i 's/$(MAKE) pure_perl_install $(MM_INSTALL_OPTS)/$(MAKE) pure_perl_install/' wml_common/Makefile.in
+
+ unset LDFLAGS
+ ./configure --prefix=/usr
+
+ # compile fixhack
+ sed -i 's#/usr/lib/perl5/core_perl/auto/DynaLoader/DynaLoader.a##' wml_backend/p3_eperl/Makefile
+ sed -i 's/extern struct option options\[\]\;//' ${srcdir}/${pkgname}-${pkgver}/wml_backend/p3_eperl/eperl_proto.h
+ sed -i 's|strip $dsttmp|#strip $dsttmp|' etc/shtool
+ mkdir -p ${pkgdir}/usr/bin ${pkgdir}/usr/lib/wml/exec ${pkgdir}/usr/man/man{1,3,7} ${pkgdir}/usr/man/cat{1,7}
+
+# make clean || return 1
+ make
+ make prefix=${pkgdir}/usr install
+
+ [ -d ${pkgdir}/usr/man ] && mkdir -p ${pkgdir}/usr/share && mv ${pkgdir}/usr/man ${pkgdir}/usr/share
+}
diff --git a/community/wmname/PKGBUILD b/community/wmname/PKGBUILD
new file mode 100644
index 000000000..83887bce0
--- /dev/null
+++ b/community/wmname/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributer: Vincent Kriek <vincent@vincentkriek.nl>
+
+pkgname=wmname
+pkgver=0.1
+pkgrel=1
+pkgdesc="A utility to set the name of your window manager"
+url="http://www.suckless.org/programs/wmname.html"
+license=('custom')
+depends=(libx11)
+arch=('i686' 'x86_64')
+source=('http://code.suckless.org/dl/tools/wmname-0.1.tar.gz')
+md5sums=('6903d299f84d335e529fbd2c1d6e49fe')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr
+ make || return 1
+ make PREFIX=$startdir/pkg/usr install || return 1
+ install -Dm0644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/wol/PKGBUILD b/community/wol/PKGBUILD
new file mode 100644
index 000000000..87bfc7005
--- /dev/null
+++ b/community/wol/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 17446 2010-05-24 10:42:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Anders Bergh <anders1@gmail.com>
+# Contributor: Markus Volkmann <mcfock@counterstrike.de>
+
+pkgname=wol
+pkgver=0.7.1
+pkgrel=4
+arch=('i686' 'x86_64')
+pkgdesc="wol implements Wake On LAN functionality in a small program. It wakes up hardware that is Magic Packet compliant."
+license=("GPL")
+depends=(sh)
+url="http://ahh.sourceforge.net/wol/"
+install=wol.install
+source=(http://downloads.sourceforge.net/ahh/wol-$pkgver.tar.gz)
+md5sums=('c2fa9d7e771134ac8c89d56b8197d4ca')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install || return 1
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/ && \
+ mv $pkgdir/usr/info $pkgdir/usr/share/ && \
+ rm $pkgdir/usr/share/info/dir
+}
diff --git a/community/wol/wol.install b/community/wol/wol.install
new file mode 100644
index 000000000..500ea57c0
--- /dev/null
+++ b/community/wol/wol.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(wol.info)
+
+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/workrave/PKGBUILD b/community/workrave/PKGBUILD
new file mode 100644
index 000000000..92b4aa2bf
--- /dev/null
+++ b/community/workrave/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 40294 2011-02-22 18:20:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: William Rea <sillywilly@gmail.com>
+
+pkgname=workrave
+pkgver=1.9.3
+pkgrel=1
+pkgdesc="a tool to help RSI"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://workrave.org"
+depends=('libgnomeuimm' 'gnet' 'gnome-panel' 'dbus' 'libxmu' 'gdome2' 'python-cheetah' 'libsigc++'
+ 'libxtst' 'python-cheetah')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/workrave/workrave-$pkgver.tar.gz)
+md5sums=('d1992f54750f3241797aa809de5a0753')
+
+build() {
+ cd $srcdir/workrave-$pkgver
+ export PYTHON=python2
+ ./configure --prefix=/usr --enable-dbus --sysconfdir=/etc --libexecdir=/usr/lib/workrave \
+ --disable-pulse
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/wput/PKGBUILD b/community/wput/PKGBUILD
new file mode 100644
index 000000000..e6fbbfd61
--- /dev/null
+++ b/community/wput/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 43594 2011-03-27 20:43:25Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Aurelien Gateau <aurelien.gateau@free.fr>
+
+pkgname=wput
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="A command line tool to upload files to FTP site, the opposite to wget"
+arch=('i686' 'x86_64')
+url="http://wput.sourceforge.net/"
+depends=('gnutls>=2.4.1')
+license=('GPL')
+source=("http://downloads.sourceforge.net/sourceforge/wput/wput-${pkgver}.tgz")
+md5sums=('a14c4c13d91d04d6119bdc977e8a8bdf')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+# sed -i -e 's/gnutls.h,/gnutls.h/' configure
+ ./configure --prefix=/usr
+ make
+ install -m755 -d ${pkgdir}/usr/bin
+ install -m755 -d ${pkgdir}/usr/share/man/man1
+ make prefix=${pkgdir}/usr install
+ ln -sf wput $pkgdir/usr/bin/wdel
+}
diff --git a/community/wtf/LICENSE b/community/wtf/LICENSE
new file mode 100644
index 000000000..dd912d4eb
--- /dev/null
+++ b/community/wtf/LICENSE
@@ -0,0 +1,10 @@
+Copyright (c) 2005, peter
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/community/wtf/PKGBUILD b/community/wtf/PKGBUILD
new file mode 100644
index 000000000..6434f8aad
--- /dev/null
+++ b/community/wtf/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 1265 2009-08-14 05:26:40Z ebelanger $
+# Maintainer: Jeff Mickey <j@codemac.net>
+
+pkgname=wtf
+pkgver=20071004
+pkgrel=2
+pkgdesc="ancronym dictionary"
+arch=('i686' 'x86_64')
+url="http://www.mu.org/~mux/wtf/"
+license=('BSD')
+source=(http://www.mu.org/~mux/wtf/$pkgname-$pkgver.tar.gz LICENSE)
+md5sums=('25944e275cc858e30cacea341509d19b' 'abac213cf24e9d5cab4e8115441eb717')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ install -D -m644 $pkgname.6 $startdir/pkg/usr/share/man/man6/$pkgname.6
+ install -D -m755 $pkgname $startdir/pkg/usr/bin/$pkgname
+ mkdir -p $startdir/pkg/usr/share/misc/
+ install -m644 acronyms acronyms.comp $startdir/pkg/usr/share/misc/
+ install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/wxsvg/PKGBUILD b/community/wxsvg/PKGBUILD
new file mode 100644
index 000000000..f4520f9be
--- /dev/null
+++ b/community/wxsvg/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 43527 2011-03-27 08:14:30Z ebelanger $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=wxsvg
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="C++ library to create, manipulate and render SVG files"
+arch=('i686' 'x86_64')
+url="http://wxsvg.sourceforge.net/"
+license=('custom:wxWindows')
+depends=('wxgtk' 'libart-lgpl' 'ffmpeg')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/project/wxsvg/wxsvg/${pkgver}/wxsvg-${pkgver}-1.tar.bz2")
+md5sums=('81b1b4e9f86b74850d56df6cc3a44faa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-1"
+
+ #sed -i 's|avformat.h|libavformat/avformat.h|' src/mediadec_ffmpeg.cpp
+ #sed -i 's|swscale.h|libswscale/swscale.h|' src/mediadec_ffmpeg.cpp
+
+ ./autogen.sh
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-1"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 COPYING \
+ "${pkgdir}/usr/share/licenses/wxsvg/COPYING"
+}
diff --git a/community/wyrd/PKGBUILD b/community/wyrd/PKGBUILD
new file mode 100644
index 000000000..e93adb06e
--- /dev/null
+++ b/community/wyrd/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Maintainer: Daniel J Griffiths <griffithsdj@archlinux.us>
+
+pkgname=wyrd
+pkgver=1.4.5
+pkgrel=1
+pkgdesc="A text-based front-end to Remind."
+arch=('i686' 'x86_64')
+url="http://pessimization.com/software/wyrd/"
+license=('GPL')
+depends=('remind' 'ncurses')
+makedepends=('ocaml')
+source=(http://pessimization.com/software/wyrd/${pkgname}-${pkgver}.tar.gz)
+md5sums=('3f39fa83a54d2d890823094aba9ca3cc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-utf8
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/xalan-c/1.11.0_pre797991-as-needed.patch b/community/xalan-c/1.11.0_pre797991-as-needed.patch
new file mode 100644
index 000000000..e8a9cc9d0
--- /dev/null
+++ b/community/xalan-c/1.11.0_pre797991-as-needed.patch
@@ -0,0 +1,108 @@
+diff -Naur xml-xalan.orig/c/src/xalanc/Makefile.in xml-xalan/c/src/xalanc/Makefile.in
+--- xml-xalan.orig/c/src/xalanc/Makefile.in 2009-07-27 00:23:08.411122528 +0200
++++ xml-xalan/c/src/xalanc/Makefile.in 2009-07-27 00:45:09.514777553 +0200
+@@ -174,7 +174,7 @@
+
+ "//'$(LOADSAMP)(${BATCH_XALAN_UTIL_NAME})'": ${XSL_OBJ_DIR}/XalanExe.o
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $^ -o $@
++ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(XALAN_LIB) $(ALLLIBS)
+ ${XSL_OBJ_DIR}/XalanExe.o: $(XALANEXE_DIR)/XalanExe.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+
+@@ -182,7 +182,7 @@
+
+ "//'$(LOADSAMP)(${BATCH_TEST_UTIL_NAME})'": ${XSL_OBJ_DIR}/process.o
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $^ -o $@
++ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(XALAN_LIB) $(ALLLIBS)
+ ${XSL_OBJ_DIR}/process.o: $(TESTXSLT_DIR)/process.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+
+@@ -192,7 +192,7 @@
+
+ $(XSL_BIN_DIR)/Xalan: ${XSL_OBJ_DIR}/XalanExe.o
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $^ -o $@ $(OTHER_LINK_PARAMETERS)
++ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
+ ${XSL_OBJ_DIR}/XalanExe.o: $(XALANEXE_DIR)/XalanExe.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+ endif
+@@ -201,7 +201,7 @@
+
+ $(XSL_BIN_DIR)/testXSLT: ${XSL_OBJ_DIR}/process.o
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $^ -o $@ $(OTHER_LINK_PARAMETERS)
++ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
+ ${XSL_OBJ_DIR}/process.o: $(TESTXSLT_DIR)/process.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+
+@@ -209,7 +209,7 @@
+
+ $(XSL_BIN_DIR)/testXPath: ${XSL_OBJ_DIR}/TestXPath.o ${XSL_OBJ_DIR}/NodeNameTreeWalker.o
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS)
++ ${EXTRA_LINK_OPTIONS} $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
+ ${XSL_OBJ_DIR}/%.o:$(TESTXPATH_DIR)/%.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+
+@@ -222,7 +222,7 @@
+
+ ${BATCH_TARGET}: $(ALL_OBJECTS)
+ @echo Building ${BATCH_TARGET}
+- $(MAKE_SHARED) $(ALLLIBS) $^ -o $@
++ $(MAKE_SHARED) $^ -o $@ $(ALLLIBS)
+
+ else
+
+@@ -232,7 +232,7 @@
+ $(MAKE) -C Utils $@
+
+ $(XSL_LIB_DIR)/$(LIB): $(ALL_OBJECTS)
+- $(MAKE_SHARED) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(LINK_SONAME) $(ALLLIBS) $^ -o $@ $(OTHER_LINK_LIB_PARAMETERS)
++ $(MAKE_SHARED) $(PLATFORM_LIBRARIES) $(EXTRA_LINK_OPTIONS) $(LINK_SONAME) $^ -o $@ $(OTHER_LINK_LIB_PARAMETERS) $(ALLLIBS)
+ ifeq ($(PLATFORM), OS390)
+ mv *.x ${XSL_LIB_DIR}
+ else
+diff -Naur xml-xalan.orig/c/src/xalanc/Utils/MsgCreator/Makefile.in xml-xalan/c/src/xalanc/Utils/MsgCreator/Makefile.in
+--- xml-xalan.orig/c/src/xalanc/Utils/MsgCreator/Makefile.in 2009-07-27 00:23:08.431122558 +0200
++++ xml-xalan/c/src/xalanc/Utils/MsgCreator/Makefile.in 2009-07-27 00:43:47.674693543 +0200
+@@ -29,7 +29,7 @@
+
+ $(XSL_BIN_DIR)/MsgCreator : $(MSG_CREATOR_OBJECTS)
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} ${LIBRARY_SEARCH_PATHS} \
+- ${EXTRA_LINK_OPTIONS} $(LIBS) $(XERCES_LIB) $^ -o $@ $(LOC_OTHER_LINK_PARAMETERS)
++ ${EXTRA_LINK_OPTIONS} $^ -o $@ $(LIBS) $(XERCES_LIB) $(LOC_OTHER_LINK_PARAMETERS)
+
+ $(XSL_OBJ_DIR)/%.o : $(MSG_CREATOR_SRC)/%.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+diff -Naur xml-xalan.orig/c/Tests/Makefile.in xml-xalan/c/Tests/Makefile.in
+--- xml-xalan.orig/c/Tests/Makefile.in 2009-07-27 00:23:08.514445103 +0200
++++ xml-xalan/c/Tests/Makefile.in 2009-07-27 00:45:50.541094978 +0200
+@@ -62,7 +62,7 @@
+
+ $(XSL_BIN_DIR)/ThreadTest: ${XSL_OBJ_DIR}/ThreadTest.o
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS)
++ ${EXTRA_LINK_OPTIONS} $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
+ ${XSL_OBJ_DIR}/%.o:$(TESTS_DIR)/Threads/%.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+
+@@ -70,7 +70,7 @@
+
+ $(XSL_BIN_DIR)/Conf: ${XSL_OBJ_DIR}/conf.o
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS)
++ ${EXTRA_LINK_OPTIONS} $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
+ ${XSL_OBJ_DIR}/%.o:$(TESTS_DIR)/Conf/%.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
+
+@@ -92,7 +92,7 @@
+
+ $(XSL_BIN_DIR)/Perf: $(PERF_OBJECTS)
+ ${LINK} $(XSL_BUILD_OPTIONS) ${PLATFORM_LIB_LINK_OPTIONS} \
+- ${EXTRA_LINK_OPTIONS} $(XALAN_LIB) $(ALLLIBS) $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS)
++ ${EXTRA_LINK_OPTIONS} $(CXXFLAGS) $^ -o $@ $(OTHER_LINK_PARAMETERS) $(XALAN_LIB) $(ALLLIBS)
+
+ ${XSL_OBJ_DIR}/%.o:$(TESTS_DIR)/Performance/%.cpp
+ $(CC1) $(XSL_BUILD_OPTIONS) -c $(XSL_INCL) $(EXTRA_COMPILE_OPTIONS) -o $@ $<
diff --git a/community/xalan-c/1.11.0_pre797991-bugfixes.patch b/community/xalan-c/1.11.0_pre797991-bugfixes.patch
new file mode 100644
index 000000000..d86f1bd45
--- /dev/null
+++ b/community/xalan-c/1.11.0_pre797991-bugfixes.patch
@@ -0,0 +1,50 @@
+diff -Naur xml-xalan.orig/c/src/xalanc/PlatformSupport/XalanNLSMessageLoader.cpp xml-xalan/c/src/xalanc/PlatformSupport/XalanNLSMessageLoader.cpp
+--- xml-xalan.orig/c/src/xalanc/PlatformSupport/XalanNLSMessageLoader.cpp 2009-07-27 00:23:08.507787691 +0200
++++ xml-xalan/c/src/xalanc/PlatformSupport/XalanNLSMessageLoader.cpp 2009-07-27 00:53:50.781756249 +0200
+@@ -28,7 +28,7 @@
+ #include <xalanc/PlatformSupport/DOMStringHelper.hpp>
+
+ #include <cstring>
+-
++#include <cstdio>
+ #include <cerrno>
+
+ XALAN_CPP_NAMESPACE_BEGIN
+@@ -44,7 +44,7 @@
+
+ XalanNLSMessageLoader::~XalanNLSMessageLoader()
+ {
+- if ((int)m_catalogHandle != -1)
++ if ((long)m_catalogHandle != -1)
+ {
+ catclose(m_catalogHandle);
+ }
+@@ -77,7 +77,7 @@
+ */
+ m_catalogHandle = catopen(fileName, 0);
+
+- if (reinterpret_cast<int>(m_catalogHandle) == -1)
++ if (reinterpret_cast<long>(m_catalogHandle) == -1)
+ {
+ // Probably have to call panic here
+ // the user will get an error with retrieving messages
+@@ -87,8 +87,8 @@
+
+ bool
+ XalanNLSMessageLoader::loadMsg(
+- XalanMessages::Codes msgToLoad
+- XalanDOMChar* toFill
++ XalanMessages::Codes msgToLoad,
++ XalanDOMChar* toFill,
+ XalanSize_t maxChars)
+ {
+
+@@ -99,7 +99,7 @@
+ return bRetValue;
+ }
+
+- if (static_cast<int>(m_catalogHandle) == -1)
++ if (reinterpret_cast<long>(m_catalogHandle) == -1)
+ {
+ // for transcoding to Unicode
+ const XalanDOMString errorMsg("Message can't be retrieved: the message catalog is not open.", m_memoryManager );
diff --git a/community/xalan-c/PKGBUILD b/community/xalan-c/PKGBUILD
new file mode 100644
index 000000000..2de7fb30b
--- /dev/null
+++ b/community/xalan-c/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 11866 2010-02-20 10:45:04Z dgriffiths $
+# Maintainer: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=xalan-c
+pkgver=1.11_pre797991
+pkgrel=2
+pkgdesc="A XSLT processor for transforming XML documents"
+arch=('i686' 'x86_64')
+url="http://xml.apache.org/xalan-c"
+license=('APACHE')
+depends=('xerces-c')
+options=('!makeflags')
+#source=(http://www.axint.net/apache/xml/xalan-c/source/Xalan-C_1_10_0-src.tar.gz)
+source=(http://mirrors.kernel.org/gentoo/distfiles/Xalan-C_r797991-src.tar.gz
+ 1.11.0_pre797991-as-needed.patch 1.11.0_pre797991-bugfixes.patch)
+
+build() {
+ export XALANCROOT=${srcdir}/xml-xalan/c
+ unset LDFLAGS
+
+ cd ${srcdir}/xml-xalan/c
+ patch -Np2 -i ${srcdir}/1.11.0_pre797991-as-needed.patch || return 1
+ patch -Np2 -i ${srcdir}/1.11.0_pre797991-bugfixes.patch || return 1
+
+ ./runConfigure -p linux -c gcc -x g++ -P/usr
+ #./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('cc54971e92f308bcc326f4bba542eeeb'
+ '7040fb617e26fbdadc423948d3a23558'
+ 'fe7af1f3a9e02ad813481f0e1a84f16c')
diff --git a/community/xapian-core/PKGBUILD b/community/xapian-core/PKGBUILD
new file mode 100644
index 000000000..5b589388f
--- /dev/null
+++ b/community/xapian-core/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=xapian-core
+pkgver=1.2.4
+pkgrel=1
+pkgdesc='Open source search engine library.'
+arch=('i686' 'x86_64')
+url='http://www.xapian.org/'
+license=('GPL')
+depends=('sh' 'gcc-libs' 'zlib')
+# xapian config requires libxapian.la
+#options=('!libtool')
+source=("http://oligarchy.co.uk/xapian/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('9715684900547649e0cbec42e6a157e9')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/xautolock/PKGBUILD b/community/xautolock/PKGBUILD
new file mode 100644
index 000000000..a2b394e59
--- /dev/null
+++ b/community/xautolock/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 25423 2010-09-04 20:38:54Z bluewind $
+# Maintainer: Florian Pritz <f-p@gmx.at>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=xautolock
+pkgver=2.2
+pkgrel=2
+pkgdesc="An automatic X screen-locker/screen-saver"
+arch=(i686 x86_64)
+url="ftp://ibiblio.org/pub/Linux/X11/screensavers/"
+license=('GPL2')
+depends=('libxss')
+makedepends=('imake')
+source=(ftp://ibiblio.org/pub/Linux/X11/screensavers/$pkgname-$pkgver.tgz)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ xmkmf
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=${pkgdir}/ install
+ make DESTDIR=${pkgdir}/ install.man
+}
+md5sums=('9526347a202694ad235d731d9d3de91f')
diff --git a/community/xboard/PKGBUILD b/community/xboard/PKGBUILD
new file mode 100644
index 000000000..cfadc0d02
--- /dev/null
+++ b/community/xboard/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 42695 2011-03-19 21:22:32Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=xboard
+pkgver=4.5.1
+pkgrel=1
+pkgdesc="A graphical user interfaces for chess"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/xboard/"
+license=('GPL3')
+depends=('libxaw' 'gnuchess' 'texinfo' 'xdg-utils')
+install=${pkgname}.install
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ 'xboard.desktop')
+md5sums=('704cd7be87aada1f24c33e616b3ec2b5'
+ '1d9d4a7864465a703fe4a215e83f4806')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/fairymax/gnuchess/' xboard.h
+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/community/xboard/xboard.desktop b/community/xboard/xboard.desktop
new file mode 100644
index 000000000..ff79ab684
--- /dev/null
+++ b/community/xboard/xboard.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Name=XBoard
+Comment=An X Window System graphical chessboard
+Exec=xboard
+Icon=xboard
+Terminal=false
+Categories=Game;BoardGame
diff --git a/community/xboard/xboard.install b/community/xboard/xboard.install
new file mode 100644
index 000000000..2f8c493c9
--- /dev/null
+++ b/community/xboard/xboard.install
@@ -0,0 +1,15 @@
+post_install() {
+ install-info usr/share/info/xboard.info.gz usr/share/info/dir 2>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ true
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ install-info --delete usr/share/info/xboard.info.gz usr/share/info/dir 2>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+ true
+}
diff --git a/community/xchat-systray-integration/PKGBUILD b/community/xchat-systray-integration/PKGBUILD
new file mode 100644
index 000000000..78317d324
--- /dev/null
+++ b/community/xchat-systray-integration/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 3695 2009-10-07 08:53:45Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tuxbubling <tuxbubling)jabber.fr>
+
+pkgname=xchat-systray-integration
+pkgver=2.4.5
+pkgrel=2
+pkgdesc="Systray integration for xchat"
+arch=(i686 x86_64)
+url="http://www.blight.tk/"
+license=("GPL")
+depends=('xchat' 'gtk2')
+makedepends=('gcc' 'gtk2' 'gdk-pixbuf')
+source=(http://downloads.sourceforge.net/sourceforge/xchat2-plugins/$pkgname-$pkgver-src.tar.gz \
+ default-icons.patch \
+ segfault-fix.patch)
+md5sums=('f7068053ff7cc63d5bf2fd8cfabe0c82'
+ '9f7924b9423d5dd78ca8832026c9bb8e'
+ 'f9fec2befb2bf0b3888f017d37a36a17')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -Np1 <$startdir/src/default-icons.patch
+ patch -Np1 <$startdir/src/segfault-fix.patch
+ if [ "$CARCH" == "x86_64" ] ; then
+ sed -re 's/-Wall/-fPIC -Wall/' -i Makefile
+ fi
+ make || return 1
+
+ mkdir -p $startdir/pkg/usr/lib/xchat/plugins/
+ cp $startdir/src/$pkgname-$pkgver/systray.so $startdir/pkg/usr/lib/xchat/plugins || return 1
+ mkdir -p $startdir/pkg/usr/share/xchat-systray-integration
+ cp -r src/images/{GTKTray,Menu} $startdir/pkg/usr/share/xchat-systray-integration || return 1
+
+ chmod 0644 $startdir/pkg/usr/share/xchat-systray-integration/{GTKTray,Menu}/* && \
+ find $pkgdir -type d -exec chmod 0755 {} \;
+}
diff --git a/community/xchat-systray-integration/default-icons.patch b/community/xchat-systray-integration/default-icons.patch
new file mode 100644
index 000000000..db1f6bea5
--- /dev/null
+++ b/community/xchat-systray-integration/default-icons.patch
@@ -0,0 +1,37 @@
+diff -Nur xchat-systray-integration-2.4.5.orig/src/menu.c xchat-systray-integration-2.4.5/src/menu.c
+--- xchat-systray-integration-2.4.5.orig/src/menu.c 2004-04-30 12:38:10.000000000 +0000
++++ xchat-systray-integration-2.4.5/src/menu.c 2005-06-09 16:30:54.609907253 +0000
+@@ -91,8 +91,8 @@
+ char temp[200];
+ if (filename)
+ {
+- if (imagepath) sprintf(temp,"%s/Menu/%s", imagepath ,filename);
+- else sprintf(temp,"%s/Menu/%s", xchat_get_info(ph, "xchatdir"),filename);
++ if (imagepath && 0 == access(imagepath, X_OK)) sprintf(temp,"%s/Menu/%s", imagepath ,filename);
++ else sprintf(temp,"/usr/share/xchat-systray-integration/Menu/%s", filename);
+ tempbuffer= gdk_pixbuf_new_from_file(temp,NULL);
+ return tempbuffer;
+ }
+diff -Nur xchat-systray-integration-2.4.5.orig/src/systray.c xchat-systray-integration-2.4.5/src/systray.c
+--- xchat-systray-integration-2.4.5.orig/src/systray.c 2004-04-30 12:38:10.000000000 +0000
++++ xchat-systray-integration-2.4.5/src/systray.c 2005-06-09 16:30:47.170967680 +0000
+@@ -117,7 +117,7 @@
+ edit=TRUE;
+ go_change=TRUE;
+ go_identify=TRUE;
+- strcpy(imagepath,xchat_get_info(ph, "xchatdir"));
++ strcpy(imagepath, "/usr/share/xchat-systray-integration");
+
+ }
+ // events handling
+@@ -190,8 +190,8 @@
+ char temp[200];
+ if (filename && type)
+ {
+- if (imagepath) sprintf(temp,"%s/%s/%s", imagepath ,type,filename);
+- else sprintf(temp,"%s/%s/%s", xchat_get_info(ph, "xchatdir"),type,filename);
++ if (imagepath && 0 == access(imagepath, X_OK)) sprintf(temp,"%s/%s/%s", imagepath ,type,filename);
++ else sprintf(temp,"/usr/share/xchat-systray-integration/%s/%s", type,filename);
+ #ifdef _WIN32_
+ tempbuffer= ((HICON)LoadImage( tray_inst, temp, IMAGE_ICON, 16, 16, LR_LOADFROMFILE ));
+ #else
diff --git a/community/xchat-systray-integration/segfault-fix.patch b/community/xchat-systray-integration/segfault-fix.patch
new file mode 100644
index 000000000..c824f4a1e
--- /dev/null
+++ b/community/xchat-systray-integration/segfault-fix.patch
@@ -0,0 +1,27 @@
+diff -Nur xchat-systray-integration-2.4.5/src/menu.c xchat-systray-integration-2.4.5-segfault-fix/src/menu.c
+--- xchat-systray-integration-2.4.5/src/menu.c 2004-04-30 14:38:10.000000000 +0200
++++ xchat-systray-integration-2.4.5-segfault-fix/src/menu.c 2004-08-25 00:34:04.321825360 +0200
+@@ -10,7 +10,6 @@
+ char command[156]="exec ";
+ strcat(command, bpath);
+ xchat_command( ph, command );
+- g_free(command);
+
+ }
+
+@@ -20,7 +19,6 @@
+ char command[156]="exec ";
+ strcat(command, epath);
+ xchat_command( ph, command );
+- g_free(command);
+
+ }
+
+@@ -30,7 +28,6 @@
+ char command[156]="exec ";
+ strcat(command, ppath);
+ xchat_command( ph, command );
+- g_free(command);
+
+ }
+
diff --git a/community/xcircuit/PKGBUILD b/community/xcircuit/PKGBUILD
new file mode 100644
index 000000000..40482de28
--- /dev/null
+++ b/community/xcircuit/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 43609 2011-03-27 20:50:31Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Giovanni Scafora <linuxmania@gmail.com>
+# Contributor: simo <simo@archlinux.org>
+
+pkgname=xcircuit
+pkgver=3.6.168
+pkgrel=1
+pkgdesc="A program for drawing publishable-quality electrical circuit schematic diagrams"
+arch=('i686' 'x86_64')
+url="http://opencircuitdesign.com/xcircuit"
+license=('GPL2')
+depends=('tk' 'libxpm' 'zlib')
+makedepends=('chrpath')
+source=(http://opencircuitdesign.com/xcircuit/archive/$pkgname-$pkgver.tgz)
+md5sums=('240cc5a2f9934430b4438052eafb96c5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's|am__api_version="1.9"|am__api_version="1.11"|' configure
+ ./configure prefix=/usr --with-tcl=/usr/lib --with-tk=/usr/lib --mandir=/usr/share/man
+ make
+ make DESTDIR=$pkgdir install
+ mkdir -p $pkgdir/usr/share/man/man1
+ mv $pkgdir/usr/lib/xcircuit-3.6/man/* $pkgdir/usr/share/man/man1/
+ rm -rf $pkgdir/usr/lib/xcircuit-3.6/man/
+ chrpath -d $pkgdir/usr/lib/xcircuit-3.6/xcircexec
+}
diff --git a/community/xdebug/PKGBUILD b/community/xdebug/PKGBUILD
new file mode 100644
index 000000000..942ee4a41
--- /dev/null
+++ b/community/xdebug/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 43879 2011-03-30 18:59:05Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Jonathan Wiersma <arch aur at jonw dot org>
+# Contributor: Jonathan Wiersma <arch aur at jonw dot org>
+# Contributor: sracker <smb.sac@gmail.com>
+
+pkgname=xdebug
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="PHP debugging extension"
+arch=('i686' 'x86_64')
+url="http://www.xdebug.org"
+license=('GPL')
+depends=('php')
+install="${pkgname}.install"
+backup=('etc/php/conf.d/xdebug.ini')
+source=(http://www.xdebug.org/files/$pkgname-$pkgver.tgz
+ xdebug-5.2.ini
+ xdebug.ini)
+md5sums=('fcdf078e715f44b77f13bac721ad63ce'
+ '6b7fdbbe0bf381bda40e77e29981f439'
+ '68de800943369d4c76bdf7eb35c8463b')
+
+build() {
+ local PHPVER=$(php -r 'echo phpversion();')
+
+ cd $srcdir/$pkgname-$pkgver || return 1
+ phpize || return 1
+ ./configure --prefix=/usr --enable-xdebug || return 1
+ make || return 1
+
+ cd debugclient || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ cd $srcdir/$pkgname-$pkgver || return 1
+ if [ "$PHPVER" \< "5.3.0" ] ; then
+ install -D -m 744 modules/xdebug.so $pkgdir/usr/lib/php/xdebug.so || return 1
+ install -D -m 644 $srcdir/xdebug-5.2.ini $pkgdir/etc/php/conf.d/xdebug.ini || return 1
+ else
+ install -D -m 744 modules/xdebug.so $pkgdir/usr/lib/php/modules/xdebug.so || return 1
+ install -D -m 644 $srcdir/xdebug.ini $pkgdir/etc/php/conf.d/xdebug.ini || return 1
+ fi
+}
diff --git a/community/xdebug/xdebug-5.2.ini b/community/xdebug/xdebug-5.2.ini
new file mode 100644
index 000000000..9beb7fc30
--- /dev/null
+++ b/community/xdebug/xdebug-5.2.ini
@@ -0,0 +1,5 @@
+zend_extension=/usr/lib/php/xdebug.so
+;xdebug.remote_enable=on
+;xdebug.remote_host=127.0.0.1
+;xdebug.remote_port=9000
+;xdebug.remote_handler=dbgp
diff --git a/community/xdebug/xdebug.ini b/community/xdebug/xdebug.ini
new file mode 100644
index 000000000..c6c9222ea
--- /dev/null
+++ b/community/xdebug/xdebug.ini
@@ -0,0 +1,5 @@
+zend_extension=/usr/lib/php/modules/xdebug.so
+;xdebug.remote_enable=on
+;xdebug.remote_host=127.0.0.1
+;xdebug.remote_port=9000
+;xdebug.remote_handler=dbgp
diff --git a/community/xdebug/xdebug.install b/community/xdebug/xdebug.install
new file mode 100644
index 000000000..fc2fcbc84
--- /dev/null
+++ b/community/xdebug/xdebug.install
@@ -0,0 +1,50 @@
+pre_upgrade() {
+ local _configfile=/etc/php/conf.d/xdebug.ini
+
+ if [ $2 \< "2.0.4-2" -a -f $_configfile ] ; then
+ mv -f $_configfile $_configfile.pacold
+ fi
+ /bin/true
+}
+
+post_install() {
+ local _configfile=/etc/php/conf.d/xdebug.ini
+ echo " ==> You may wish to uncomment/change the settings found in "
+ echo " $_configfile"
+ echo ""
+ /bin/true
+}
+
+post_upgrade() {
+ local _configfile=/etc/php/conf.d/xdebug.ini
+ local PHPVER=$(php -r 'echo phpversion();')
+ post_install $1
+
+ if [ $2 \< "2.0.4-2" ] ; then
+ if [ -f $_configfile.pacold ] ; then
+ mv $_configfile $_configfile.pacnew
+ mv $_configfile.pacold $_configfile
+ echo " ==> There is a new xdebug.ini at $_configfile.pacnew."
+ echo " You may wish to copy it or modify your existing file: "
+ echo " $_configfile."
+ echo ""
+ else
+ echo " ==> A configuration file for xdebug has been placed at:"
+ echo " $_configfile."
+ echo " Please remove the following lines from /etc/php/php.ini and move them"
+ echo " to $_configfile:"
+ echo " zend_extension=/usr/lib/php/xdebug.so"
+ echo " xdebug.remote_enable=on"
+ echo " xdebug.remote_host=<ip address>"
+ echo " xdebug.remote_port=<port>"
+ echo " xdebug.remote_handler=dbgp"
+ echo ""
+ fi
+ fi
+
+ if [ "$PHPVER" \< "5.3" ] ; then
+ echo " ==> You are currenty running a version of php < 5.3."
+ echo " When/if you upgrade php to a version >= 5.3, you will need to reinstall $pkgname."
+ echo ""
+ fi
+}
diff --git a/community/xdg-user-dirs/PKGBUILD b/community/xdg-user-dirs/PKGBUILD
new file mode 100644
index 000000000..6a595dbd8
--- /dev/null
+++ b/community/xdg-user-dirs/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: <mathieu.clabaut@gmail.com>
+
+pkgname=xdg-user-dirs
+pkgver=0.13
+pkgrel=1
+pkgdesc="tool to help manage 'well known' user directories like the desktop folder and the music folder. It also handles localization (i.e. translation) of the filenames. "
+arch=('i686' 'x86_64')
+depends=('sh')
+makedepends=('gawk')
+url="http://www.freedesktop.org/wiki/Software/xdg-user-dirs"
+license=('GPL')
+source=(http://user-dirs.freedesktop.org/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('a061edec56d59aa932d53fb1d994fad2')
+backup=('etc/xdg/user-dirs.conf' 'etc/xdg/user-dirs.defaults')
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/xdialog/PKGBUILD b/community/xdialog/PKGBUILD
new file mode 100644
index 000000000..750a99ff1
--- /dev/null
+++ b/community/xdialog/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 38975 2011-02-04 14:16:55Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=xdialog
+pkgver=2.3.1
+pkgrel=5
+pkgdesc="A drop-in replacement for the 'dialog' or 'cdialog' programs"
+url="http://xdialog.dyns.net/"
+arch=('i686' 'x86_64')
+depends=('gtk2')
+license=('GPL')
+source=("http://xdialog.free.fr/Xdialog-${pkgver}.tar.bz2"
+ "xdialog-2.3.1-gtk2.patch")
+md5sums=('0671f8353717513bf1f0ebc80e9710f6'
+ '1785edbb50316ba07c3ab68f061bf766')
+
+build() {
+ cd $srcdir/Xdialog-$pkgver
+
+ patch -p1 <../xdialog-$pkgver-gtk2.patch
+
+ ./configure --prefix=/usr \
+ --mandir=${pkgdir}/usr/share/man --with-gtk2
+
+ # Fix bugs in automake - see Xdialog.spec
+ /bin/sed -i -e "s:RANLIB = @RANLIB@:RANLIB = /usr/bin/ranlib:" lib/Makefile
+ /bin/sed -i -e "s;XGETTEXT = :;XGETTEXT = /usr/bin/xgettext;" po/Makefile
+
+ make
+}
+
+package() {
+ cd ${srcdir}/Xdialog-${pkgver}
+ make prefix=${pkgdir}/usr install
+}
diff --git a/community/xdialog/xdialog-2.3.1-gtk2.patch b/community/xdialog/xdialog-2.3.1-gtk2.patch
new file mode 100644
index 000000000..ffee78dc2
--- /dev/null
+++ b/community/xdialog/xdialog-2.3.1-gtk2.patch
@@ -0,0 +1,58 @@
+diff -Naur Xdialog-2.3.1-orig/src/interface.c Xdialog-2.3.1/src/interface.c
+--- Xdialog-2.3.1-orig/src/interface.c 2006-08-18 18:13:12.000000000 +0200
++++ Xdialog-2.3.1/src/interface.c 2006-10-17 21:33:45.000000000 +0200
+@@ -183,6 +183,11 @@
+ /* Open a new GTK top-level window */
+ window = Xdialog.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+
++ /* Set window icon (in GTK2 mode only) */
++ #ifdef USE_GTK2
++ gtk_window_set_icon_name(window, Xdialog.icon_file);
++ #endif
++
+ /* Apply the custom GTK+ theme, if any. */
+ parse_rc_file();
+
+@@ -276,9 +281,6 @@
+ {
+ GtkWidget *label;
+ GtkWidget *hbox;
+- GdkBitmap *mask;
+- GdkColor transparent;
+- GdkPixmap *pixmap;
+ GtkWidget *icon;
+ gchar text[MAX_LABEL_LENGTH];
+ int icon_width = 0;
+@@ -287,6 +289,22 @@
+ gtk_box_pack_start(Xdialog.vbox, hbox, expand, TRUE, ymult/3);
+
+ if (Xdialog.icon) {
++
++#ifdef USE_GTK2
++ if (Xdialog.icon_file != NULL) {
++ icon = gtk_image_new_from_icon_name (Xdialog.icon_file, GTK_ICON_SIZE_DIALOG);
++ /*icon = gtk_image_new_from_file (Xdialog.icon_file);*/
++
++ gtk_box_pack_start(GTK_BOX(hbox), icon, FALSE, FALSE, 2);
++ gtk_widget_show(icon);
++ icon_width = 60;
++ }
++
++#else
++
++ GdkBitmap *mask;
++ GdkColor transparent;
++ GdkPixmap *pixmap;
+ pixmap = gdk_pixmap_create_from_xpm(Xdialog.window->window,
+ &mask, &transparent,
+ Xdialog.icon_file);
+@@ -298,6 +316,9 @@
+ gtk_widget_show(icon);
+ icon_width = icon->requisition.width + 4;
+ }
++
++#endif
++
+ }
+
+ trim_string(label_text, text, MAX_LABEL_LENGTH);
diff --git a/community/xdiskusage/PKGBUILD b/community/xdiskusage/PKGBUILD
new file mode 100644
index 000000000..f73231f15
--- /dev/null
+++ b/community/xdiskusage/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 2038 2009-09-07 16:25:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=xdiskusage
+pkgver=1.48
+pkgrel=5
+pkgdesc="xdiskusage is a user-friendly program to show you what is using up all your disk space"
+arch=('i686' 'x86_64')
+depends=('fltk')
+license=('GPL')
+url="http://xdiskusage.sourceforge.net"
+options=(!emptydirs)
+source=(http://xdiskusage.sourceforge.net/$pkgname-$pkgver.tgz
+ 'stdin-is-null.patch')
+md5sums=('a902aa9d73761ade98256c3cd5c1f533'
+ '0181b66b44e382e44c91602d8de9a7b6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i 's/-lGL -lGLU/-lXft/' makeinclude.in
+
+ patch -Np1 -i "$srcdir/stdin-is-null.patch"
+
+ [ $CARCH == "x86_64" ] && patch xdiskusage.C <<EOF
+991c991
+< switch ((int)v) {
+---
+> switch ((long long)v) {
+1004c1004
+< int n = (int)v;
+---
+> int n = (long long)v;
+EOF
+
+ ./configure --prefix=/usr
+ install -d "$pkgdir/usr/bin" "$pkgdir/usr/share/man/man1"
+ LDFLAGS=-lXi make || return 1
+ make prefix="$pkgdir/usr" mandir="$pkgdir/usr/share/man" install || return 1
+ chmod 0644 $pkgdir/usr/share/man/man1/*
+}
diff --git a/community/xdiskusage/stdin-is-null.patch b/community/xdiskusage/stdin-is-null.patch
new file mode 100644
index 000000000..e70789c13
--- /dev/null
+++ b/community/xdiskusage/stdin-is-null.patch
@@ -0,0 +1,31 @@
+--- xdiskusage-1.48/xdiskusage.C 2004-09-21 07:23:14.000000000 +0200
++++ xdiskusage-1.48.carles/xdiskusage.C 2007-07-30 23:42:05.000000000 +0200
+@@ -223,6 +223,19 @@
+ return 1;
+ }
+
++// returns true if stdin is /dev/null
++// To fix Debian bug #276193
++// Technically could be possible that returns "true" and is not "true",
++// because same device ID is used across file systems. But is the best
++// solutions that I have
++int isstdinnull() {
++ struct stat ststdin,stnull;
++ stat("/dev/null",&stnull);
++ fstat(0,&ststdin);
++
++ return (ststdin.st_rdev==stnull.st_rdev);
++}
++
+ int main(int argc, char**argv) {
+ #if FL_MAJOR_VERSION < 2
+ // Make fltk look more like KDE/Windoze:
+@@ -253,7 +266,7 @@
+ OutputWindow* d = OutputWindow::make(argv[n++]);
+ if (d) d->show(argc,argv);
+ }
+- } else if (!isatty(0)) {
++ } else if (!isatty(0) && !isstdinnull()) {
+ // test for pipe, if so read stdin:
+ OutputWindow* d = OutputWindow::make(0);
+ if (d) d->show(argc,argv);
diff --git a/community/xdotool/PKGBUILD b/community/xdotool/PKGBUILD
new file mode 100644
index 000000000..85ee141ea
--- /dev/null
+++ b/community/xdotool/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 29296 2010-10-12 16:34:27Z foutrelis $
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Rttommy <rttommy@gmail.com>
+
+pkgname=xdotool
+pkgver=2.20101012.3049
+pkgrel=1
+pkgdesc="Command-line X11 automation tool"
+arch=('i686' 'x86_64')
+url="http://www.semicomplete.com/projects/xdotool/"
+license=('BSD')
+depends=('libxtst')
+source=(http://semicomplete.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+sha1sums=('b57e9b63123f326f0d1c8c43ff66678753d3da0c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+ make PREFIX="$pkgdir/usr" INSTALLMAN="$pkgdir/usr/share/man" install
+
+ # License
+ install -Dm644 COPYRIGHT "$pkgdir/usr/share/licenses/xdotool/COPYRIGHT"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/xemacs/PKGBUILD b/community/xemacs/PKGBUILD
new file mode 100644
index 000000000..2dcde06ee
--- /dev/null
+++ b/community/xemacs/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 96361 2010-10-19 23:18:53Z stephane $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor : Stéphane Gaudreault <stephane@archlinux.org>
+
+pkgname=xemacs
+pkgver=21.5.29
+pkgrel=3
+pkgdesc="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>=1.20.4' 'bash' 'ncurses>=5.6-7' 'desktop-file-utils' 'libxaw' 'libjpeg')
+optdepends=('xorg-fonts-75dpi: X bitmap fonts needed for the interface'
+ 'xorg-fonts-100dpi: X bitmap fonts needed for the interface')
+makedepends=('giflib' 'xbitmaps')
+install=xemacs.install
+source=(http://ftp.xemacs.org/pub/xemacs/beta/$pkgname-$pkgver.tar.gz
+ xemacs.desktop
+ xemacs-21.5.29-large-images.patch
+ xemacs-21.5.29-optimization-bug.patch
+ xemacs-21.5.29-vcdiff.patch)
+md5sums=('5364192ae0d3de23d9f4ce197e6493b5'
+ 'a4d3d5c0aa2c7ce7bec491f809ca3694'
+ '23ca5a7c50fe7ebebd9fc4525882cdf1'
+ 'eb061b10ea3bbe1026df5326ae1618e3'
+ '4ada657a351b226cdd557f9faaeab075')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Fix security issue in vcdiff script
+ patch -Np0 -i ../xemacs-21.5.29-vcdiff.patch
+
+ # 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
+
+ # Fix for security bug
+ # See http://bugs.gentoo.org/show_bug.cgi?id=275397
+ patch -Np1 -i ../xemacs-21.5.29-large-images.patch
+
+ ./configure --build="${CHOST}" --prefix=/usr --with-dynamic \
+ --with-x11 --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,rcs-checkin}
+ rm ${pkgdir}/usr/share/man/man1/{ctags.1,etags.1}
+
+ # fix FS#7927
+ install -d -m755 "${pkgdir}/usr/share/pixmaps"
+ install -d -m755 "${pkgdir}/usr/share/applications"
+ install -m644 "${srcdir}/${pkgname}.desktop" ${pkgdir}/usr/share/applications/ || return 1
+ ln -sf /usr/lib/xemacs-21.5-b28/etc/xemacs-icon.xpm "${pkgdir}/usr/share/pixmaps/" || return 1
+
+ # correct permissions
+ chown -R root:root "${pkgdir}"
+
+ rm ${pkgdir}/usr/share/info/dir
+ gzip ${pkgdir}/usr/share/info/*
+ rm ${pkgdir}/usr/share/info/{info.info.gz,texinfo.info-2.gz,cl.info.gz,texinfo.info-1.gz,texinfo.info.gz,standards.info.gz,widget.info.gz}
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/community/xemacs/xemacs-21.5.29-large-images.patch b/community/xemacs/xemacs-21.5.29-large-images.patch
new file mode 100644
index 000000000..535c87186
--- /dev/null
+++ b/community/xemacs/xemacs-21.5.29-large-images.patch
@@ -0,0 +1,96 @@
+APPROVE COMMIT 21.5
+
+This patch has been committed. When trying to open very large image
+files (or image files with header files that claim the image is very
+large), we multiply length times width to get the number of pixels in
+the image (and possibly multiply that number if a pixel occupies more
+than 1 byte). The multiplication can overflow, resulting in passing
+negative or insufficiently positive size values to malloc. This patch
+checks whether the multiplication will overflow. If so, XEmacs
+refuses to attempt to load the image.
+
+(Patch taken from upstream, already applied there)
+
+--- a/src/glyphs-eimage.c Mon Jun 29 08:20:47 2009 -0600
++++ b/src/glyphs-eimage.c Wed Jul 01 15:42:54 2009 -0600
+@@ -409,6 +409,7 @@
+ */
+
+ {
++ UINT_64_BIT pixels_sq;
+ int jpeg_gray = 0; /* if we're dealing with a grayscale */
+ /* Step 4: set parameters for decompression. */
+
+@@ -431,7 +432,10 @@
+ jpeg_start_decompress (&cinfo);
+
+ /* Step 6: Read in the data and put into EImage format (8bit RGB triples)*/
+-
++ pixels_sq =
++ (UINT_64_BIT) cinfo.output_width * (UINT_64_BIT) cinfo.output_height;
++ if (pixels_sq > ((size_t) -1) / 3)
++ signal_image_error ("JPEG image too large to instantiate", instantiator);
+ unwind.eimage =
+ xnew_binbytes (cinfo.output_width * cinfo.output_height * 3);
+ if (!unwind.eimage)
+@@ -677,6 +681,7 @@
+ {
+ ColorMapObject *cmo = unwind.giffile->SColorMap;
+ int i, j, row, pass, interlace, slice;
++ UINT_64_BIT pixels_sq;
+ Binbyte *eip;
+ /* interlaced gifs have rows in this order:
+ 0, 8, 16, ..., 4, 12, 20, ..., 2, 6, 10, ..., 1, 3, 5, ... */
+@@ -685,6 +690,9 @@
+
+ height = unwind.giffile->SHeight;
+ width = unwind.giffile->SWidth;
++ pixels_sq = (UINT_64_BIT) width * (UINT_64_BIT) height;
++ if (pixels_sq > ((size_t) -1) / (3 * unwind.giffile->ImageCount))
++ signal_image_error ("GIF image too large to instantiate", instantiator);
+ unwind.eimage =
+ xnew_binbytes (width * height * 3 * unwind.giffile->ImageCount);
+ if (!unwind.eimage)
+@@ -948,11 +956,15 @@
+ {
+ int y;
+ Binbyte **row_pointers;
++ UINT_64_BIT pixels_sq;
+ height = info_ptr->height;
+ width = info_ptr->width;
++ pixels_sq = (UINT_64_BIT) width * (UINT_64_BIT) height;
++ if (pixels_sq > ((size_t) -1) / 3)
++ signal_image_error ("PNG image too large to instantiate", instantiator);
+
+ /* Wow, allocate all the memory. Truly, exciting. */
+- unwind.eimage = xnew_array_and_zero (Binbyte, width * height * 3);
++ unwind.eimage = xnew_array_and_zero (Binbyte, (size_t) (pixels_sq * 3));
+ /* libpng expects that the image buffer passed in contains a
+ picture to draw on top of if the png has any transparencies.
+ This could be a good place to pass that in... */
+@@ -1299,6 +1311,7 @@
+
+ uint32 *raster;
+ Binbyte *ep;
++ UINT_64_BIT pixels_sq;
+
+ assert (!NILP (data));
+
+@@ -1321,12 +1334,15 @@
+
+ TIFFGetField (unwind.tiff, TIFFTAG_IMAGEWIDTH, &width);
+ TIFFGetField (unwind.tiff, TIFFTAG_IMAGELENGTH, &height);
+- unwind.eimage = xnew_binbytes (width * height * 3);
++ pixels_sq = (UINT_64_BIT) width * (UINT_64_BIT) height;
++ if (pixels_sq >= 1 << 29)
++ signal_image_error ("TIFF image too large to instantiate", instantiator);
++ unwind.eimage = xnew_binbytes (pixels_sq * 3);
+
+ /* #### This is little more than proof-of-concept/function testing.
+ It needs to be reimplemented via scanline reads for both memory
+ compactness. */
+- raster = (uint32*) _TIFFmalloc (width * height * sizeof (uint32));
++ raster = (uint32*) _TIFFmalloc ((tsize_t) (pixels_sq * sizeof (uint32)));
+ if (raster != NULL)
+ {
+ int i, j;
diff --git a/community/xemacs/xemacs-21.5.29-optimization-bug.patch b/community/xemacs/xemacs-21.5.29-optimization-bug.patch
new file mode 100644
index 000000000..32a1a02c2
--- /dev/null
+++ b/community/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/xemacs/xemacs-21.5.29-vcdiff.patch b/community/xemacs/xemacs-21.5.29-vcdiff.patch
new file mode 100644
index 000000000..105eb549e
--- /dev/null
+++ b/community/xemacs/xemacs-21.5.29-vcdiff.patch
@@ -0,0 +1,19 @@
+--- lib-src/vcdiff.~1~ 1996-12-18 23:42:33.000000000 +0100
++++ lib-src/vcdiff 2008-04-09 08:20:36.000000000 +0200
+@@ -79,14 +79,14 @@
+ case $f in
+ s.* | */s.*)
+ if
+- rev1=/tmp/geta$$
++ rev1=`mktemp /tmp/geta.XXXXXXXX`
+ get -s -p -k $sid1 "$f" > $rev1 &&
+ case $sid2 in
+ '')
+ workfile=`expr " /$f" : '.*/s.\(.*\)'`
+ ;;
+ *)
+- rev2=/tmp/getb$$
++ rev2=`mktemp /tmp/getb.XXXXXXXX`
+ get -s -p -k $sid2 "$f" > $rev2
+ workfile=$rev2
+ esac
diff --git a/community/xemacs/xemacs.desktop b/community/xemacs/xemacs.desktop
new file mode 100644
index 000000000..257c56947
--- /dev/null
+++ b/community/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/xemacs/xemacs.install b/community/xemacs/xemacs.install
new file mode 100644
index 000000000..2cdf5e488
--- /dev/null
+++ b/community/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/xerces-c/PKGBUILD b/community/xerces-c/PKGBUILD
new file mode 100644
index 000000000..dc42d09e5
--- /dev/null
+++ b/community/xerces-c/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 29167 2010-10-11 08:11:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: pukyxd
+
+pkgname=xerces-c
+pkgver=3.1.1
+pkgrel=2
+pkgdesc="A validating XML parser written in a portable subset of C++."
+arch=('i686' 'x86_64')
+url="http://xerces.apache.org/xerces-c"
+license=("APACHE")
+depends=('gcc-libs' 'curl')
+options=('!libtool')
+source=("http://apache.osuosl.org/xerces/c/3/sources/xerces-c-${pkgver}.tar.gz")
+md5sums=('6a8ec45d83c8cfb1584c5a5345cb51ae')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR=${pkgdir}/ install || return 1
+}
diff --git a/community/xfe/PKGBUILD b/community/xfe/PKGBUILD
new file mode 100644
index 000000000..e0f55d3b7
--- /dev/null
+++ b/community/xfe/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 43121 2011-03-24 07:49:15Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Ravi Desai <ravster3@hotmail.com>
+
+pkgname=xfe
+pkgver=1.32.3
+pkgrel=1
+pkgdesc="X File Explorer (Xfe) is an MS-Explorer like file manager for X."
+arch=('i686' 'x86_64')
+url="http://roland65.free.fr/xfe"
+license=("GPL")
+depends=('fox')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('f9fe72a2a9cf55fb36ac2f9d20f8210a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ sed -i 's|inline||' src/xfeutils.cpp
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/xfmedia/PKGBUILD b/community/xfmedia/PKGBUILD
new file mode 100644
index 000000000..7c56c80fe
--- /dev/null
+++ b/community/xfmedia/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 38810 2011-02-01 11:14:57Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer : Tom Killian <tomk@runbox.com>
+# Contributor: Spider.007 <archPackage@spider007.net>
+
+pkgname=xfmedia
+pkgver=0.9.2
+pkgrel=9
+pkgdesc="xfce media player"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://spuriousinterrupt.org/projects/xfmedia/"
+depends=('xine-lib' 'taglib' 'exo' 'libxtst' 'libxss' 'libxfcegui4' 'dbus-glib')
+makedepends=('intltool' 'libxt')
+install=(xfmedia.install)
+source=(http://spuriousinterrupt.org/files/$pkgname/$pkgname-$pkgver.tar.bz2
+ xfmedia-dbus-0.6-support.patch
+ xfmedia-empty-prev-next-fix.patch
+ xfmedia-exo-0.6.patch)
+md5sums=('6eb8bd1f67201f829e0f45e733c02bd5'
+ '8f2aa12eea584de65d8ed28179e56b51'
+ '650f8cb9e2ddd9a8a2a03748b8757110'
+ 'f5e17fcdf2056dcc8ca8aae8600c0132')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np1 -i ../xfmedia-dbus-0.6-support.patch
+ patch -Np1 -i ../xfmedia-empty-prev-next-fix.patch
+ patch -Np1 -i ../xfmedia-exo-0.6.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/xfmedia/xfmedia-dbus-0.6-support.patch b/community/xfmedia/xfmedia-dbus-0.6-support.patch
new file mode 100644
index 000000000..9b1eb3678
--- /dev/null
+++ b/community/xfmedia/xfmedia-dbus-0.6-support.patch
@@ -0,0 +1,14 @@
+diff -Naur xfmedia-0.9.1.orig/src/remote.c xfmedia-0.9.1/src/remote.c
+--- xfmedia-0.9.1.orig/src/remote.c 2005-09-05 00:56:37.000000000 -0400
++++ xfmedia-0.9.1/src/remote.c 2006-04-08 00:27:18.000000000 -0400
+@@ -55,6 +55,10 @@
+ #define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER DBUS_SERVICE_REPLY_PRIMARY_OWNER
+ #endif
+
++#ifndef DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
++#define DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT DBUS_NAME_FLAG_DO_NOT_QUEUE
++#endif
++
+ #endif /* HAVE_DBUS */
+
+ #include <libxfce4util/libxfce4util.h>
diff --git a/community/xfmedia/xfmedia-empty-prev-next-fix.patch b/community/xfmedia/xfmedia-empty-prev-next-fix.patch
new file mode 100644
index 000000000..e2d0d8166
--- /dev/null
+++ b/community/xfmedia/xfmedia-empty-prev-next-fix.patch
@@ -0,0 +1,25 @@
+diff -wbBur xfmedia-0.9.2/src/mainwin.c xfmedia-0.9.2.my/src/mainwin.c
+--- xfmedia-0.9.2/src/mainwin.c 2006-11-27 07:21:23.000000000 +0000
++++ xfmedia-0.9.2.my/src/mainwin.c 2010-11-01 13:01:17.000000000 +0000
+@@ -1865,6 +1865,10 @@
+ gboolean use_playlist_q = xfmedia_playlist_queue_n_entries(mwin->playlist_q);
+ gboolean ret = FALSE;
+
++ if(xfmedia_playlist_get_n_entries(mwin->plist) == 0)
++// if(xfmedia_playlist_queue_is_empty(mwin->plist))
++ return;
++
+ if(mwin->cur_playing
+ && xfmedia_settings_get_bool("/xfmedia/playlist/shuffle")
+ && !use_playlist_q )
+@@ -1899,6 +1903,10 @@
+ {
+ gint tot_items, idx = -1;
+
++ if(xfmedia_playlist_get_n_entries(mwin->plist) == 0)
++// if(xfmedia_playlist_queue_is_empty(mwin->plist))
++ return;
++
+ if(xfmedia_settings_get_bool("/xfmedia/playlist/shuffle")) {
+ XfmediaPlaylistEntryRef *ref = NULL;
+ gboolean playing = FALSE;
diff --git a/community/xfmedia/xfmedia-exo-0.6.patch b/community/xfmedia/xfmedia-exo-0.6.patch
new file mode 100644
index 000000000..1de611c82
--- /dev/null
+++ b/community/xfmedia/xfmedia-exo-0.6.patch
@@ -0,0 +1,196 @@
+diff -wbBur xfmedia-0.9.2/configure xfmedia-0.9.2.my/configure
+--- xfmedia-0.9.2/configure 2006-11-27 20:20:59.000000000 +0000
++++ xfmedia-0.9.2.my/configure 2011-01-31 17:15:58.000000000 +0000
+@@ -27417,7 +27417,7 @@
+
+
+ if test x"$xdt_cv_EXO_check" = x"yes"; then
+- if $PKG_CONFIG --exists "exo-0.3 >= 0.3.0" >/dev/null 2>&1; then
++ if $PKG_CONFIG --exists "exo-1 >= 0.3.0" >/dev/null 2>&1; then
+
+
+ # minimum supported version of pkg-config
+@@ -27501,22 +27501,22 @@
+ fi
+
+
+- { echo "$as_me:$LINENO: checking for exo-0.3 >= 0.3.0" >&5
+-echo $ECHO_N "checking for exo-0.3 >= 0.3.0... $ECHO_C" >&6; }
+- if $PKG_CONFIG "--atleast-version=0.3.0" "exo-0.3" >/dev/null 2>&1; then
+- EXO_VERSION=`$PKG_CONFIG --modversion "exo-0.3"`
++ { echo "$as_me:$LINENO: checking for exo-1 >= 0.3.0" >&5
++echo $ECHO_N "checking for exo-1 >= 0.3.0... $ECHO_C" >&6; }
++ if $PKG_CONFIG "--atleast-version=0.3.0" "exo-1" >/dev/null 2>&1; then
++ EXO_VERSION=`$PKG_CONFIG --modversion "exo-1"`
+ { echo "$as_me:$LINENO: result: $EXO_VERSION" >&5
+ echo "${ECHO_T}$EXO_VERSION" >&6; }
+
+ { echo "$as_me:$LINENO: checking EXO_CFLAGS" >&5
+ echo $ECHO_N "checking EXO_CFLAGS... $ECHO_C" >&6; }
+- EXO_CFLAGS=`$PKG_CONFIG --cflags "exo-0.3"`
++ EXO_CFLAGS=`$PKG_CONFIG --cflags "exo-1"`
+ { echo "$as_me:$LINENO: result: $EXO_CFLAGS" >&5
+ echo "${ECHO_T}$EXO_CFLAGS" >&6; }
+
+ { echo "$as_me:$LINENO: checking EXO_LIBS" >&5
+ echo $ECHO_N "checking EXO_LIBS... $ECHO_C" >&6; }
+- EXO_LIBS=`$PKG_CONFIG --libs "exo-0.3"`
++ EXO_LIBS=`$PKG_CONFIG --libs "exo-1"`
+ { echo "$as_me:$LINENO: result: $EXO_LIBS" >&5
+ echo "${ECHO_T}$EXO_LIBS" >&6; }
+
+@@ -27535,15 +27535,15 @@
+
+ EXO_FOUND="yes"
+
+- elif $PKG_CONFIG --exists "exo-0.3" >/dev/null 2>&1; then
+- xdt_cv_version=`$PKG_CONFIG --modversion "exo-0.3"`
++ elif $PKG_CONFIG --exists "exo-1" >/dev/null 2>&1; then
++ xdt_cv_version=`$PKG_CONFIG --modversion "exo-1"`
+ { echo "$as_me:$LINENO: result: found, but $xdt_cv_version" >&5
+ echo "${ECHO_T}found, but $xdt_cv_version" >&6; }
+
+
+- echo "*** The required package exo-0.3 was found on your system,"
++ echo "*** The required package exo-1 was found on your system,"
+ echo "*** but the installed version ($xdt_cv_version) is too old."
+- echo "*** Please upgrade exo-0.3 to atleast version 0.3.0, or adjust"
++ echo "*** Please upgrade exo-1 to atleast version 0.3.0, or adjust"
+ echo "*** the PKG_CONFIG_PATH environment variable if you installed"
+ echo "*** the new version of the package in a nonstandard prefix so"
+ echo "*** pkg-config is able to find it."
+@@ -27554,8 +27554,8 @@
+ echo "${ECHO_T}not found" >&6; }
+
+
+- echo "*** The required package exo-0.3 was not found on your system."
+- echo "*** Please install exo-0.3 (atleast version 0.3.0) or adjust"
++ echo "*** The required package exo-1 was not found on your system."
++ echo "*** Please install exo-1 (atleast version 0.3.0) or adjust"
+ echo "*** the PKG_CONFIG_PATH environment variable if you"
+ echo "*** installed the package in a nonstandard prefix so that"
+ echo "*** pkg-config is able to find it."
+@@ -27564,14 +27564,14 @@
+ fi
+
+ else
+- { echo "$as_me:$LINENO: checking for optional package exo-0.3 >= 0.3.0" >&5
+-echo $ECHO_N "checking for optional package exo-0.3 >= 0.3.0... $ECHO_C" >&6; }
++ { echo "$as_me:$LINENO: checking for optional package exo-1 >= 0.3.0" >&5
++echo $ECHO_N "checking for optional package exo-1 >= 0.3.0... $ECHO_C" >&6; }
+ { echo "$as_me:$LINENO: result: not found" >&5
+ echo "${ECHO_T}not found" >&6; }
+ fi
+ else
+- { echo "$as_me:$LINENO: checking for optional package exo-0.3" >&5
+-echo $ECHO_N "checking for optional package exo-0.3... $ECHO_C" >&6; }
++ { echo "$as_me:$LINENO: checking for optional package exo-1" >&5
++echo $ECHO_N "checking for optional package exo-1... $ECHO_C" >&6; }
+ { echo "$as_me:$LINENO: result: disabled" >&5
+ echo "${ECHO_T}disabled" >&6; }
+ fi
+diff -wbBur xfmedia-0.9.2/src/main.c xfmedia-0.9.2.my/src/main.c
+--- xfmedia-0.9.2/src/main.c 2006-11-27 07:21:23.000000000 +0000
++++ xfmedia-0.9.2.my/src/main.c 2011-02-01 11:08:02.000000000 +0000
+@@ -388,6 +388,23 @@
+ return optind;
+ }
+
++/**
++ * exo_str_get_md5_str:
++ * @contents : The string to create a digest of.
++ *
++ * Creates a character array MD5 digestof the string
++ * @contents.
++ *
++ * Return value: A newly-allocated character array which
++ * should be free with g_free() when no
++ * longer needed.
++ **/
++gchar*
++exo_str_get_md5_str (const gchar *contents)
++{
++ return g_compute_checksum_for_string (G_CHECKSUM_MD5, contents, -1);
++}
++
+ int
+ main(int argc, char **argv)
+ {
+diff -wbBur xfmedia-0.9.2/src/mediamarks.c xfmedia-0.9.2.my/src/mediamarks.c
+--- xfmedia-0.9.2/src/mediamarks.c 2006-11-27 07:21:23.000000000 +0000
++++ xfmedia-0.9.2.my/src/mediamarks.c 2011-02-01 11:04:42.000000000 +0000
+@@ -684,9 +684,9 @@
+
+ render = exo_cell_renderer_ellipsized_text_new();
+ if(gtk_major_version == 2 && gtk_minor_version >= 6)
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END, NULL);
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+ else {
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END,
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE, NULL);
+ }
+ gtk_tree_view_column_pack_start(col, render, TRUE);
+@@ -1693,9 +1693,9 @@
+
+ render = exo_cell_renderer_ellipsized_text_new();
+ if(gtk_major_version == 2 && gtk_minor_version >= 6)
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END, NULL);
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+ else {
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END,
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE, NULL);
+ }
+ gtk_tree_view_column_pack_start(col, render, TRUE);
+@@ -1705,9 +1705,9 @@
+
+ render = exo_cell_renderer_ellipsized_text_new();
+ if(gtk_major_version == 2 && gtk_minor_version >= 6)
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END, NULL);
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+ else {
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END,
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE, NULL);
+ }
+ col = gtk_tree_view_column_new_with_attributes(_("Location"), render,
+diff -wbBur xfmedia-0.9.2/src/playlist.c xfmedia-0.9.2.my/src/playlist.c
+--- xfmedia-0.9.2/src/playlist.c 2006-11-27 07:21:22.000000000 +0000
++++ xfmedia-0.9.2.my/src/playlist.c 2011-02-01 11:04:47.000000000 +0000
+@@ -1409,9 +1409,9 @@
+
+ render = exo_cell_renderer_ellipsized_text_new();
+ if(gtk_major_version == 2 && gtk_minor_version >= 6)
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END, NULL);
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END, NULL);
+ else {
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END,
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE, NULL);
+ }
+ col = gtk_tree_view_column_new_with_attributes(_("Title"), render, "text",
+diff -wbBur xfmedia-0.9.2/src/settings-dialog.c xfmedia-0.9.2.my/src/settings-dialog.c
+--- xfmedia-0.9.2/src/settings-dialog.c 2006-11-27 07:21:23.000000000 +0000
++++ xfmedia-0.9.2.my/src/settings-dialog.c 2011-02-01 11:04:53.000000000 +0000
+@@ -552,7 +552,7 @@
+ render = exo_cell_renderer_ellipsized_text_new();
+ col = gtk_tree_view_column_new_with_attributes("name", render,
+ "text", PLUGINS_NAME, NULL);
+- g_object_set(G_OBJECT(render), "ellipsize", EXO_PANGO_ELLIPSIZE_END,
++ g_object_set(G_OBJECT(render), "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE, NULL);
+ gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), col);
+
+diff -wbBur xfmedia-0.9.2/src/xfmedia-playlist-queue.c xfmedia-0.9.2.my/src/xfmedia-playlist-queue.c
+--- xfmedia-0.9.2/src/xfmedia-playlist-queue.c 2006-11-27 07:21:22.000000000 +0000
++++ xfmedia-0.9.2.my/src/xfmedia-playlist-queue.c 2011-02-01 11:04:57.000000000 +0000
+@@ -171,7 +171,7 @@
+
+ render = exo_cell_renderer_ellipsized_text_new();
+ g_object_set(G_OBJECT(render),
+- "ellipsize", EXO_PANGO_ELLIPSIZE_END,
++ "ellipsize", PANGO_ELLIPSIZE_END,
+ "ellipsize-set", TRUE,
+ NULL);
+ col = gtk_tree_view_column_new_with_attributes("display-name", render,
diff --git a/community/xfmedia/xfmedia.install b/community/xfmedia/xfmedia.install
new file mode 100644
index 000000000..b95cc069d
--- /dev/null
+++ b/community/xfmedia/xfmedia.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/xiphos/PKGBUILD b/community/xiphos/PKGBUILD
new file mode 100755
index 000000000..d992f4341
--- /dev/null
+++ b/community/xiphos/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: TripleE <eric1548@yahoo.com>
+
+pkgname=xiphos
+pkgver=3.1.4
+pkgrel=7
+pkgdesc="A Bible study tool for gtk"
+arch=('i686' 'x86_64')
+url="http://xiphos.org"
+license=('GPL')
+depends=('libgsf' 'libglade' 'gtkhtml' 'sword' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils' 'intltool' 'python2')
+conflicts=('gnomesword')
+provides=('gnomesword')
+replaces=('gnomesword')
+install=$pkgname.install
+source=("http://downloads.sourceforge.net/sourceforge/gnomesword/$pkgname-$pkgver.tar.gz")
+md5sums=('4d6f7805c4c8185f5c4ac3bd95fc705a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i '1s/python/python2/' waf
+ ./waf configure --prefix=/usr --enable-gtkhtml
+ ./waf build --prefix=/usr
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 ./waf install --destdir=$pkgdir
+}
diff --git a/community/xiphos/xiphos.install b/community/xiphos/xiphos.install
new file mode 100644
index 000000000..ada2ca2f2
--- /dev/null
+++ b/community/xiphos/xiphos.install
@@ -0,0 +1,13 @@
+pkgname=xiphos
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/xkbsel/PKGBUILD b/community/xkbsel/PKGBUILD
new file mode 100644
index 000000000..181c09ea3
--- /dev/null
+++ b/community/xkbsel/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 19405 2010-06-23 09:07:11Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xkbsel
+pkgver=0.13
+pkgrel=4
+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')
+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 || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/community/xkbsel/build-fix.patch b/community/xkbsel/build-fix.patch
new file mode 100644
index 000000000..02021db47
--- /dev/null
+++ b/community/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/xkeycaps/PKGBUILD b/community/xkeycaps/PKGBUILD
new file mode 100644
index 000000000..8c9a1c9f5
--- /dev/null
+++ b/community/xkeycaps/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 20050 2010-07-02 09:22:39Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Patrick Leslie Polzer <leslie.polzer@gmx.net>
+
+pkgname=xkeycaps
+pkgver=2.46
+pkgrel=5
+arch=('i686' 'x86_64')
+pkgdesc="XKeyCaps is a graphical front-end to xmodmap."
+url="http://www.jwz.org/xkeycaps/"
+license=('custom')
+depends=('libxaw')
+makedepends=('imake')
+source=(http://www.jwz.org/$pkgname/$pkgname-$pkgver.tar.Z
+ license.txt)
+md5sums=('6792f828db6538f44f7696a8783b44ac'
+ '6d44b50641d2e7898aebcc668d204751')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ xmkmf || return 1
+ make MANPATH=/usr/share/man || return 1
+ make DESTDIR=$pkgdir install || return 1
+ make DESTDIR=$pkgdir MANPATH=/usr/share/man install.man || return 1
+ install -Dm644 ../license.txt \
+ $pkgdir/usr/share/licenses/$pkgname/license.txt
+}
diff --git a/community/xkeycaps/license.txt b/community/xkeycaps/license.txt
new file mode 100644
index 000000000..09b3b3ff2
--- /dev/null
+++ b/community/xkeycaps/license.txt
@@ -0,0 +1,54 @@
+COPYRIGHT Copyright © 1991-1999 by Jamie Zawinski. Permission to use,
+ copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee,
+ provided that the above copyright notice appear in all copies and
+ that both that copyright notice and this permission notice appear
+ in supporting documentation. No representations are made about the
+ suitability of this software for any purpose. It is provided "as
+ is" without express or implied warranty.
+
+AUTHOR
+ Jamie Zawinski <jwz@jwz.org>, 10-nov-91.
+
+ XKeyCaps is no longer maintained. See http://www.jwz.org/xkeycaps/
+ for details.
+
+ Thanks to everyone who contributed keyboard definitions over the years:
+
+ Jonathan Abbey, Alon Albert, Vladimir Alexiev, David Arnold, David
+ Axmark, Ruediger Back, Pedro Bayon, Corne Beerse, Eric Benson,
+ Christoph Berg, Markus Berndt, Roger Binns, Stefan Bj|rnelund,
+ black@westford.ccur.com, Mark Borges, Volker Bosch, Dave Brooks,
+ Lorenzo M. Catucci, Michel Catudal, Francois Regis Colin, John
+ Coppens, Cesar Crusius, Bart Van Cutsem, Matthew Davey,
+ Christopher Davis, Albrecht Dress, Kristian Ejvind, Michael Elbel,
+ Joe English, Eric Fischer, Morgan Fletcher, Olivier Galibert,
+ Carson Gaspar, Andre Gerhard, Daniel Glastonbury, Christian
+ F. Goetze, Dan R. Greening, Edgar Greuter, John Gotts, Berthold
+ Gunreben, Jens Hafsteinsson, Adam Hamilton, Magnus Hammerin,
+ Kenneth Harker, Ben Harris, Mikael Hedin, Tom Ivar Helbekkmo, Mick
+ Hellstrom, Neil Hendin, Andre Heynatz, Mike Hicks, Alan Ho, Hide
+ Horiuchi, Dirk Jablonowski, Alan Jaffray, Anders Wegge Jakobsen,
+ Chris Jones, Jorgen Jonsson, Peter Kaiser, Heikki Kantola, Tufan
+ Karadere, Benedikt Kessler, Philippe Kipfer, Edwin Klement, John
+ Knox, Haavard Kvaalen, Frederic Leguern, Simon Leinen, Michael
+ Lemke, Tor Lillqvist, Torbj|rn Lindgren, Tony Lindstrom, Richard
+ Lloyd, Ulric Longyear, Ulf Magnusson, Cliff Marcellus, John
+ A. Martin, Tom McConnell, Grant McDorman, Hein Meling, Jason
+ Merrill, Aleksandar Milivojevic, Manuel Moreno, Ken Nakata, Pekka
+ Nikander, Todd Nix, Leif Nixon, Christian Nybo, Antoni Pamies
+ Olive, Edgar Bonet Orozco, Steven W. Orr, Martin Ouwehand, Daniel
+ Packman, John Palmieri, Chris Paulson-Ellis, Eduardo Perez,
+ Michael Piotrowski, Andrej Presern, Jeremy Prior, Dominique
+ Quatravaux, Matthias Rabe, Garst R. Reese, Peter Remmers, Todd
+ Richmond, Ken Rose, Pavel Rosendorf, Gael Roualland, Lucien
+ Saviot, Johannes Schmidt-Fischer, Andreas Schuch, Larry Schwimmer,
+ Joe Siegrist, Jarrod Smith, Tom Spindler, Robin Stephenson, Joerg
+ Stippa, D. Stolte, A. A. Stoorvogel, Juergen Stuber, Markus
+ Stumpf, Jeffrey Templon, Jay Thorne, Anthony Thyssen, Christoph
+ Tietz, tkil@scrye.com, Juha Vainikka, Poonlap Veeratanabutr, Ivo
+ Vollrath, Gord Vreugdenhil, Ronan Waide, Jan Wedekind, Bj|rn
+ Wennberg, Mats Wichmann, Stephen Williams, Barry Warsaw, Steven
+ Winikoff, Carl Witty, Stephen Wray, Endre Witzoe, Kazutaka Yokota,
+ Yair Zadik, and Robert Zwickenpflug.
+
diff --git a/community/xl2tpd/PKGBUILD b/community/xl2tpd/PKGBUILD
new file mode 100644
index 000000000..ab66948f0
--- /dev/null
+++ b/community/xl2tpd/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 44028 2011-04-01 16:50:43Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Hengfu <rhfcaesar@gmail.com>
+
+pkgname=xl2tpd
+pkgver=1.2.8
+pkgrel=2
+pkgdesc="an open source implementation of the L2TP maintained by Xelerance Corporation"
+arch=('i686' 'x86_64')
+url="http://www.xelerance.com"
+license=('GPL')
+depends=('ppp')
+options=(emptydirs zipman docs)
+backup=(etc/ppp/options.l2tpd)
+source=(ftp://ftp.xelerance.com/$pkgname/$pkgname-$pkgver.tar.gz
+ xl2tpd.rc
+ xl2tpd.conf.client-example
+ xl2tpd.conf.server-example
+ options.l2tpd
+ as-needed.patch
+ ipparam.patch)
+md5sums=('8748ac5e2f5289963d9a908eede546b5'
+ '1439d13084fc09c2a19c97b24a834345'
+ '5f0ae07026e61a3dd15a76fd4144a6d5'
+ '16ed0886115d4dcc21072cfb847250bb'
+ 'ed57eb67335cdf246251285dad502cc7'
+ '867ec7085f61ae129748325a08561776'
+ '4d258a58cc109d5c4d96af8f81d481cf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+# patch -p0 <$srcdir/as-needed.patch
+ patch -p1 <$srcdir/ipparam.patch
+
+ make KERNELSRC=/usr/src/linux-`uname -r` PREFIX=/usr
+ make KERNELSRC=/usr/src/linux-`uname -r` PREFIX=/usr DESTDIR=$pkgdir install
+
+ install -D -m0755 $srcdir/xl2tpd.rc $pkgdir/etc/rc.d/xl2tpd
+ install -D -m0644 $srcdir/xl2tpd.conf.client-example $pkgdir/etc/xl2tpd/xl2tpd.conf.client-example
+ install -D -m0644 $srcdir/xl2tpd.conf.server-example $pkgdir/etc/xl2tpd/xl2tpd.conf.server-example
+ install -D -m0644 $srcdir/options.l2tpd $pkgdir/etc/ppp/options.l2tpd
+}
diff --git a/community/xl2tpd/as-needed.patch b/community/xl2tpd/as-needed.patch
new file mode 100644
index 000000000..8976d298f
--- /dev/null
+++ b/community/xl2tpd/as-needed.patch
@@ -0,0 +1,12 @@
+--- ./Makefile_orig 2010-10-08 15:28:50.310000058 +0400
++++ ./Makefile 2010-10-08 15:29:57.666666723 +0400
+@@ -113,8 +113,7 @@
+
+ pfc:
+ $(CC) $(CFLAGS) -c contrib/pfc.c
+- $(CC) $(LDFLAGS) -lpcap $(LDLIBS) -o pfc pfc.o
+-
++ $(CC) $(LDFLAGS) -o pfc pfc.o -lpcap $(LDLIBS)
+ romfs:
+ $(ROMFSINST) /bin/$(EXEC)
+
diff --git a/community/xl2tpd/ipparam.patch b/community/xl2tpd/ipparam.patch
new file mode 100644
index 000000000..9c2fd8400
--- /dev/null
+++ b/community/xl2tpd/ipparam.patch
@@ -0,0 +1,36 @@
+diff -wbBur xl2tpd-1.2.8/control.c xl2tpd-1.2.8.my/control.c
+--- xl2tpd-1.2.8/control.c 2011-02-23 08:10:21.000000000 +0300
++++ xl2tpd-1.2.8.my/control.c 2011-03-25 21:29:29.896518014 +0300
+@@ -892,8 +892,8 @@
+ po = add_opt (po, c->lac->pppoptfile);
+ }
+ };
+- po = add_opt (po, "ipparam");
+- po = add_opt (po, IPADDY (t->peer.sin_addr));
++// po = add_opt (po, "ipparam");
++// po = add_opt (po, IPADDY (t->peer.sin_addr));
+ start_pppd (c, po);
+ opt_destroy (po);
+ if (c->lac)
+@@ -966,8 +966,8 @@
+ po = add_opt (po, "file");
+ po = add_opt (po, c->lns->pppoptfile);
+ }
+- po = add_opt (po, "ipparam");
+- po = add_opt (po, IPADDY (t->peer.sin_addr));
++// po = add_opt (po, "ipparam");
++// po = add_opt (po, IPADDY (t->peer.sin_addr));
+ start_pppd (c, po);
+ opt_destroy (po);
+ l2tp_log (LOG_NOTICE,
+@@ -1026,8 +1026,8 @@
+ po = add_opt (po, c->lac->pppoptfile);
+ }
+ };
+- po = add_opt (po, "ipparam");
+- po = add_opt (po, IPADDY (t->peer.sin_addr));
++// po = add_opt (po, "ipparam");
++// po = add_opt (po, IPADDY (t->peer.sin_addr));
+ start_pppd (c, po);
+
+ /* jz: just show some information */
diff --git a/community/xl2tpd/options.l2tpd b/community/xl2tpd/options.l2tpd
new file mode 100644
index 000000000..3030af4a7
--- /dev/null
+++ b/community/xl2tpd/options.l2tpd
@@ -0,0 +1,24 @@
+login
+lcp-echo-interval 10
+lcp-echo-failure 2
+noipx
+
+refuse-pap
+refuse-chap
+refuse-mschap
+
+require-mppe
+require-mschap-v2
+
+nodefaultroute
+proxyarp
+
+#bsdcomp
+#deflate
+#accomp
+#noccp
+#nopcomp
+#nopredictor1
+#novj
+#novjccomp
+#debug 7
diff --git a/community/xl2tpd/xl2tpd.conf.client-example b/community/xl2tpd/xl2tpd.conf.client-example
new file mode 100644
index 000000000..7420f940d
--- /dev/null
+++ b/community/xl2tpd/xl2tpd.conf.client-example
@@ -0,0 +1,19 @@
+[global]
+access control = no
+auth file = /etc/ppp/chap-secrets
+debug avp = no
+debug network = no
+debug packet = no
+debug state = no
+debug tunnel = no
+
+[lac <name>]
+lns = <host>
+redial = yes
+redial timeout = 5
+require chap = yes
+require authentication = no
+ppp debug = no
+pppoptfile = /etc/ppp/peers/<ppp-opts>
+require pap = no
+autodial = yes
diff --git a/community/xl2tpd/xl2tpd.conf.server-example b/community/xl2tpd/xl2tpd.conf.server-example
new file mode 100644
index 000000000..a967a3d5f
--- /dev/null
+++ b/community/xl2tpd/xl2tpd.conf.server-example
@@ -0,0 +1,21 @@
+[global]
+access control = yes
+auth file = /etc/ppp/chap-secrets
+debug avp = no
+debug network = no
+debug packet = no
+debug state = no
+debug tunnel = no
+
+[lns <name>]
+require chap = yes
+ppp debug = no
+pppoptfile = /etc/ppp/options.l2tpd
+require pap = no
+assign ip = yes
+hostname = <hostname>
+ip range = <range>
+local ip = <ip>
+challenge = no
+lac = <lacs>
+require authentication = no
diff --git a/community/xl2tpd/xl2tpd.rc b/community/xl2tpd/xl2tpd.rc
new file mode 100755
index 000000000..a06e0d41e
--- /dev/null
+++ b/community/xl2tpd/xl2tpd.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ [ -d /var/run/xl2tpd ] || mkdir -p /var/run/xl2tpd
+ stat_busy "Starting xl2tpd"
+ /usr/sbin/xl2tpd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon xl2tpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping xl2tpd"
+ [ -f /var/run/xl2tpd.pid ] && kill `cat /var/run/xl2tpd.pid`
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/xl2tpd.pid
+ rm_daemon xl2tpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/community/xloadimage/PKGBUILD b/community/xloadimage/PKGBUILD
new file mode 100644
index 000000000..b1a2a4aaf
--- /dev/null
+++ b/community/xloadimage/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 39571 2011-02-11 16:14:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=xloadimage
+pkgver=4.1
+pkgrel=11
+pkgdesc="An utility to view many different types of images under X11"
+arch=(i686 x86_64)
+#url="http://world.std.com/~jimf/xloadimage.html"
+url="http://sioseis.ucsd.edu/xloadimage.html"
+license=("MIT")
+depends=('libtiff' 'libpng' 'libx11' 'libxext')
+makedepends=('patch')
+source=(http://archlinux-stuff.googlecode.com/files/xloadimage.$pkgver-1.tar.gz
+ license.txt
+ enable-image-types.patch)
+md5sums=('86b42b1b628a9c00008b7deec21e1175'
+ 'cc16a51aeb5083b8ff07939dfe244130'
+ '33eadf10ce627cc1bf0db351a49e6cca')
+
+build() {
+ cd $srcdir/$pkgname.$pkgver
+
+ patch -p1 <$srcdir/enable-image-types.patch
+ xmkmf
+ make
+
+ install -D -m755 xloadimage $pkgdir/usr/bin/xloadimage
+ install -D -m755 uufilter $pkgdir/usr/bin/uufilter
+ install -D -m644 xloadimagerc $pkgdir/etc/xloadimagerc.example
+ install -D -m644 xloadimage.man $pkgdir/usr/man/man1/xloadimage.1x
+ install -D -m644 uufilter.man $pkgdir/usr/man/man1/uufilter.1x
+ install -D -m644 $srcdir/license.txt $pkgdir/usr/share/licenses/$pkgname/license.txt
+ ln -s /usr/bin/xloadimage $pkgdir/usr/bin/xsetbg
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/xloadimage/enable-image-types.patch b/community/xloadimage/enable-image-types.patch
new file mode 100644
index 000000000..c720c7dd1
--- /dev/null
+++ b/community/xloadimage/enable-image-types.patch
@@ -0,0 +1,63 @@
+diff -wbBur xloadimage.4.1/imagetypes.h xloadimage.4.1.my/imagetypes.h
+--- xloadimage.4.1/imagetypes.h 2011-02-11 11:47:37.000000000 +0000
++++ xloadimage.4.1.my/imagetypes.h 2011-02-11 16:04:35.000000000 +0000
+@@ -94,15 +94,9 @@
+ {niffIdent, niffLoad, niffDump, "niff", "Native Image File Format (NIFF)"},
+ {sunRasterIdent, sunRasterLoad, NULL, "sunraster", "Sun Rasterfile"},
+ {gifIdent, gifLoad, NULL, "gif", "GIF Image"},
+-#ifdef HAVE_LIBJPEG
+ {jpegIdent, jpegLoad, jpegDump, "jpeg", "JFIF-style JPEG Image"},
+-#endif
+-#ifdef HAVE_LIBTIFF
+ {tiffIdent, tiffLoad, tiffDump, "tiff", "TIFF image"},
+-#endif
+-#ifdef HAVE_LIBPNG
+ {pngIdent, pngLoad, NULL, "png", "PNG image"},
+-#endif
+ {fbmIdent, fbmLoad, NULL, "fbm", "FBM Image"},
+ {cmuwmIdent, cmuwmLoad, NULL, "cmuraster", "CMU WM Raster"},
+ {pbmIdent, pbmLoad, pbmDump, "pbm", "Portable Bit Map (PBM, PGM, PPM)"},
+diff -wbBur xloadimage.4.1/Imakefile xloadimage.4.1.my/Imakefile
+--- xloadimage.4.1/Imakefile 2011-02-11 12:05:53.000000000 +0000
++++ xloadimage.4.1.my/Imakefile 2011-02-11 16:06:21.000000000 +0000
+@@ -40,7 +40,7 @@
+ PNG_SRC = png.c
+ PNG_OBJ = png.o
+
+- EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS)
++ EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS) -DHAVE_LIBJPEG -DHAVE_LIBTIFF -DHAVE_LIBPNG
+ LOCAL_LIBRARIES = $(TIFF_LIB) $(JPEG_LIB) $(PNG_LIB) $(XLIB)
+
+ SRCS = new.c niff.c value.c zio.c cmuwmraster.c faces.c fbm.c gif.c imagetypes.c img.c mac.c mcidas.c mc_tables.c pbm.c pcx.c pdsuncomp.c rle.c rlelib.c sunraster.c vff.c vicar.c xbitmap.c xpixmap.c xwd.c bright.c clip.c compress.c dither.c fill.c halftone.c merge.c reduce.c rotate.c smooth.c undither.c zoom.c config.c misc.c options.c root.c send.c window.c xloadimage.c $(TIFF_SRC) $(JPEG_SRC) $(PNG_SRC)
+diff -wbBur xloadimage.4.1/Makefile xloadimage.4.1.my/Makefile
+--- xloadimage.4.1/Makefile 2011-02-11 12:06:16.000000000 +0000
++++ xloadimage.4.1.my/Makefile 2011-02-11 16:06:24.000000000 +0000
+@@ -2,7 +2,7 @@
+ # $Xorg: imake.c,v 1.6 2001/02/09 02:03:15 xorgcvs Exp $
+
+ # ----------------------------------------------------------------------
+-# Makefile generated from "Imake.tmpl" and </tmp/IIf.yUZBVe>
++# Makefile generated from "Imake.tmpl" and </tmp/IIf.7u155R>
+ # $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
+ # $XdotOrg: xc/config/cf/Imake.tmpl,v 1.9 2005/01/24 06:37:31 daniels Exp $
+ #
+@@ -1063,7 +1063,7 @@
+ PNG_SRC = png.c
+ PNG_OBJ = png.o
+
+- EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS)
++ EXTRA_DEFINES = $(TIFF_DEFS) $(JPEG_DEFS) $(PNG_DEFS) -DHAVE_LIBJPEG -DHAVE_LIBTIFF -DHAVE_LIBPNG
+ LOCAL_LIBRARIES = $(TIFF_LIB) $(JPEG_LIB) $(PNG_LIB) $(XLIB)
+
+ SRCS = new.c niff.c value.c zio.c cmuwmraster.c faces.c fbm.c gif.c imagetypes.c img.c mac.c mcidas.c mc_tables.c pbm.c pcx.c pdsuncomp.c rle.c rlelib.c sunraster.c vff.c vicar.c xbitmap.c xpixmap.c xwd.c bright.c clip.c compress.c dither.c fill.c halftone.c merge.c reduce.c rotate.c smooth.c undither.c zoom.c config.c misc.c options.c root.c send.c window.c xloadimage.c $(TIFF_SRC) $(JPEG_SRC) $(PNG_SRC)
+diff -wbBur xloadimage.4.1/png.c xloadimage.4.1.my/png.c
+--- xloadimage.4.1/png.c 2011-02-11 11:47:37.000000000 +0000
++++ xloadimage.4.1.my/png.c 2011-02-11 16:06:50.000000000 +0000
+@@ -18,6 +18,7 @@
+ *
+ */
+
++#define _GETOPT_H
+
+ #include "image.h" /* xloadimage declarations */
+ #ifdef HAVE_LIBPNG
diff --git a/community/xloadimage/license.txt b/community/xloadimage/license.txt
new file mode 100644
index 000000000..be7eec597
--- /dev/null
+++ b/community/xloadimage/license.txt
@@ -0,0 +1,19 @@
+/*
+ * Copyright 1989, 1993 Jim Frost
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. The author makes no representations
+ * about the suitability of this software for any purpose. It is
+ * provided "as is" without express or implied warranty.
+ *
+ * THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
+ * USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
diff --git a/community/xlockmore/LICENSE b/community/xlockmore/LICENSE
new file mode 100644
index 000000000..f0b9aa9c6
--- /dev/null
+++ b/community/xlockmore/LICENSE
@@ -0,0 +1,18 @@
+/*-
+ * xscreensaver compatibility layer for xlockmore modules.
+ * xscreensaver, Copyright (c) 1997, 1998 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * This file, along with xlockmore.h, make it possible to compile an xlockmore
+ * module into a standalone program, and thus use it with xscreensaver.
+ * By Jamie Zawinski <jwz@jwz.org> on 10-May-97; based on the ideas
+ * in the older xlock.h by Charles Hannum <mycroft@ai.mit.edu>. (I had
+ * to redo it, since xlockmore has diverged so far from xlock...)
+ */
diff --git a/community/xlockmore/PKGBUILD b/community/xlockmore/PKGBUILD
new file mode 100644
index 000000000..c2a39a992
--- /dev/null
+++ b/community/xlockmore/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42698 2011-03-19 21:23:28Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=xlockmore
+pkgver=5.33
+pkgrel=1
+pkgdesc="screen saver / locker for the X Window System"
+arch=(i686 x86_64)
+license=('BSD')
+depends=(freetype2 gtk2 libxpm lesstif pam mesa esound libxmu)
+url="http://www.tux.org/~bagleyd/xlockmore.html"
+options=('!makeflags')
+source=(http://www.tux.org/~bagleyd/xlock/xlockmore-$pkgver/xlockmore-$pkgver.tar.bz2 \
+ LICENSE)
+md5sums=('8ae31d03f836e768cd888198c5f1a5f8'
+ 'a64afab4283f53972a6702c2e59850d7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --disable-setuid \
+ --enable-appdefaultdir=/usr/share/X11/app-defaults \
+ --enable-pam --with-gtk2 --with-esound --without-ftgl
+ make
+ make xapploaddir=$pkgdir/usr/share/X11/app-defaults \
+ mandir=$pkgdir/usr/man/man1 \
+ prefix=$pkgdir/usr install
+
+ install -D -m644 ../LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/xmlrpc-c/PKGBUILD b/community/xmlrpc-c/PKGBUILD
new file mode 100644
index 000000000..f14eae4e0
--- /dev/null
+++ b/community/xmlrpc-c/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Vitaliy Berdinskikh <skipper13@root.ua>
+# Maintainer: Daenyth <Daenyth+Arch [at] gmail [dot] com>
+
+pkgname=xmlrpc-c
+pkgver=1858
+pkgrel=1
+pkgdesc='This library provides a modular implementation of XML-RPC for C and C++'
+arch=('i686' 'x86_64')
+url='http://xmlrpc-c.sourceforge.net/'
+license=('custom:xmlrpc-c')
+depends=('curl' 'libxml2' 'gcc-libs' 'zlib')
+makedepends=('libtool')
+options=('!makeflags' '!libtool')
+source=("ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('2bd41d1827ebd12ca8f0b9ef0b015228')
+
+build() {
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+
+ cd $srcdir/$pkgname
+ ./configure --prefix=/usr \
+ --enable-libxml2-backend \
+ --disable-cgi-server \
+ --disable-abyss-server \
+ --disable-libwww-client \
+ --disable-wininet-client
+
+ make CFLAGS_PERSONAL="${CFLAGS}" || return 1
+ make DESTDIR=$pkgdir install
+
+ install -m 644 -D doc/COPYING $pkgdir/usr/share/licenses/${pkgname}/COPYING
+ mv $pkgdir/usr/man $pkgdir/usr/share/man
+}
+# vim:set ts=2 sw=2 et:
diff --git a/community/xmms-imms/PKGBUILD b/community/xmms-imms/PKGBUILD
new file mode 100644
index 000000000..6e6fe309b
--- /dev/null
+++ b/community/xmms-imms/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 18268 2010-06-02 09:55:31Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Kritoke <kritoke@nospam.gmail.com>
+# Contributor: Kritoke <kritoke@nospam.gmail.com>
+
+pkgname=xmms-imms
+pkgver=3.1.0_rc8
+pkgrel=2
+pkgdesc="An intelligent playlist plug-in for XMMS that tracks your listening patterns and dynamically adapts to your taste."
+arch=(i686 x86_64)
+license=("GPL")
+url="http://imms.luminal.org/"
+depends=('xmms' 'pcre' 'sqlite3' 'taglib' 'glib2' 'sox' 'torch' 'libxss' 'fftw')
+replaces=('imms')
+source=(http://imms.googlecode.com/files/imms-${pkgver/_/-}.tar.bz2)
+md5sums=('31b77cbc2dba334b039c5618bbbf203e')
+
+build() {
+ cd $srcdir/imms-${pkgver/_/-}
+
+ if [ $NOEXTRACT -ne 1 ]; then
+ autoheader
+ aclocal
+ autoconf
+ ./configure --prefix=/usr --disable-immsremote
+ fi
+
+ make || return 1
+ mkdir -p $pkgdir/usr/bin
+ make prefix=$pkgdir/usr DESTDIR=$startdir/pkg/usr/lib/xmms/General \
+ BMPDESTDIR=$pkgdir/usr/lib/bmp/General install || return 1
+}
diff --git a/community/xmms-pulse/ChangeLog b/community/xmms-pulse/ChangeLog
new file mode 100644
index 000000000..66fe9bdd3
--- /dev/null
+++ b/community/xmms-pulse/ChangeLog
@@ -0,0 +1,4 @@
+2007-11-13 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Adopted
+ * Release bump to 0.9.4
diff --git a/community/xmms-pulse/PKGBUILD b/community/xmms-pulse/PKGBUILD
new file mode 100644
index 000000000..7d54aae91
--- /dev/null
+++ b/community/xmms-pulse/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 17281 2010-05-22 17:51:17Z heftig $
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=xmms-pulse
+pkgver=0.9.4
+pkgrel=2
+pkgdesc="An XMMS output plugin for the PulseAudio sound server"
+arch=('i686' 'x86_64')
+url="http://0pointer.de/lennart/projects/xmms-pulse"
+license=('GPL')
+depends=('xmms' 'pulseaudio')
+groups=('xmms-plugins' 'xmms-io-plugins')
+options=('!libtool')
+source=(http://0pointer.de/lennart/projects/xmms-pulse/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c879939a6242f07b69298b30bcdeb6c5')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-lynx
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/xmms-volnorm/PKGBUILD b/community/xmms-volnorm/PKGBUILD
new file mode 100644
index 000000000..2d8003258
--- /dev/null
+++ b/community/xmms-volnorm/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 18019 2010-05-29 09:10:47Z ebelanger $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: forest76 <forestt@poczta.onet.pl>
+
+pkgname=xmms-volnorm
+pkgver=0.8.3
+pkgrel=4
+pkgdesc="A XMMS plug-in to normalize the volume"
+arch=('i686' 'x86_64')
+url="http://volnorm.sourceforge.net/"
+license=('GPL')
+options=('!libtool')
+depends=('glibc' 'xmms')
+groups=('xmms-plugins' 'xmms-effect-plugins')
+source=(http://downloads.sourceforge.net/volnorm/volnorm-${pkgver}.tar.gz)
+md5sums=('369e6b814143a94ff4d6666734e6af9a')
+sha1sums=('6c5ba86aed257514c6f94febeea1668f1b18a04d')
+
+build() {
+ cd "${srcdir}/volnorm-${pkgver}"
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/volnorm-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+# removing useless executables
+ rm -r "${pkgdir}/usr/bin"
+}
diff --git a/community/xmms2/PKGBUILD b/community/xmms2/PKGBUILD
new file mode 100644
index 000000000..85d5ba1ae
--- /dev/null
+++ b/community/xmms2/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 33390 2010-11-24 12:54:10Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xmms2
+pkgver=0.7DrNo
+pkgrel=8
+pkgdesc="complete rewrite of the popular music player"
+arch=('i686' 'x86_64')
+url="http://xmms2.org/"
+license=('LGPL')
+backup=('etc/conf.d/xmms2d.conf')
+depends=('sqlite3' 'libmad')
+makedepends=('alsa-lib' 'boost' 'curl' 'faad2' 'ffmpeg' 'fftw' 'flac' 'glib' # avahi
+ 'jack' 'libao' 'libmms' 'libmpcdec' 'libofa' 'libsamplerate' 'libshout'
+ 'libvorbis' 'libxml2' 'mpg123' 'oss' 'perl' 'pulseaudio' 'pyrex'
+ 'ruby' 'smbclient' 'speex' 'wavpack' 'libmodplug')
+optdepends=('alsa-lib: ALSA audio output'
+ 'avahi: announce xmms2d via bonjour/mDNS/zeroconf'
+ 'boost: C++ language bindings'
+ 'curl: play HTTP streams'
+ 'faad2: AAC support'
+ 'ffmpeg: WMA, avcodec & avformat support'
+ 'fftw: calculations for visualization'
+ 'flac: FLAC support'
+ 'jack: JACK audio output'
+ 'libao: liboa audio output'
+ 'libofa: MusicDNS fingerprinting'
+ 'libmms: play MMS streams'
+ 'libmodplug: to play MOD files'
+ 'libmpcdec: Musepack support'
+ 'libsamplerate: vocoder support'
+ 'libshout: Icecast audio output'
+ 'libvorbis: Ogg Vorbis support'
+ 'libxml2: XSPF and podcast support'
+ 'mpg123: alternative MP3 plugin'
+ 'oss: OSS audio output'
+ 'perl: Perl language bindings'
+ 'pulseaudio: PulseAudio audio output'
+ 'pyrex: Python language bindings'
+ 'ruby: Ruby language bindings'
+# 'sidplay: to play a Commodore 64 music files AKA zaks'
+# we do not have sidplay 2 series in repos; also it's
+# somehow connected with resid i guess(not in repos also)
+ 'smbclient: direct CIFS/SMB access'
+ 'speex: Speex support'
+ 'wavpack: WavPack support')
+conflicts=('xmms2-devel')
+install=xmms2.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ xmms2d.conf
+ xmms2d.rc
+ xmms2-helpers.patch
+ xmms2-ruby-1.9.patch
+ vorbis-albumart.patch)
+md5sums=('60e50b591078acb6a85cd83de0f2b077'
+ 'af13c937bf3c86b77ae6820107aab9b8'
+ '893371ba4dc7b428322e44329683211f'
+ 'eddb800ebcc495b8574044a110a34add'
+ '017eff634d755c98dd037cd41aecd652'
+ 'c5a16da0c5a6ebe5e7f58afb6edfa87e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 < ${srcdir}/xmms2-helpers.patch
+# patch -Np1 < ${srcdir}/xmms2-ruby-1.9.patch
+# sed -i -e 's#avcodec.h#libavcodec/avcodec.h#' src/plugins/avcodec/avcodec.c
+
+ # python2 fix
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' waf
+
+ patch -p1 <$srcdir/vorbis-albumart.patch
+
+ ./waf configure --prefix=/usr \
+ --with-optionals=python,cli,launcher,xmmsclient++,xmmsclient++-glib,perl,ruby,nycli
+ ./waf build
+ ./waf --destdir=${pkgdir} install
+
+ install -D -m 0755 ../xmms2d.rc ${pkgdir}/etc/rc.d/xmms2d
+ install -D -m 0644 ../xmms2d.conf ${pkgdir}/etc/conf.d/xmms2d.conf
+}
diff --git a/community/xmms2/vorbis-albumart.patch b/community/xmms2/vorbis-albumart.patch
new file mode 100644
index 000000000..de4305f6f
--- /dev/null
+++ b/community/xmms2/vorbis-albumart.patch
@@ -0,0 +1,200 @@
+From f38882beb1c9b4f3e3c63ac7d65603ad5917cd9d Mon Sep 17 00:00:00 2001
+From: Brad Jorsch <anomie@users.sourceforge.net>
+Date: Tue, 09 Mar 2010 15:41:33 +0000
+Subject: OTHER: Add support for METADATA_BLOCK_PICTURE in Vorbis plugin
+
+Bug-Debian: http://bugs.debian.org/565479
+---
+diff --git a/src/plugins/vorbis_common/common.c b/src/plugins/vorbis_common/common.c
+index c1f4ef9..fc4ff1b 100644
+--- a/src/plugins/vorbis_common/common.c
++++ b/src/plugins/vorbis_common/common.c
+@@ -243,6 +243,74 @@ get_replaygain (xmms_xform_t *xform, vorbis_comment *vc)
+ }
+ }
+
++static void
++handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
++{
++ guint32 typ, mime_len, desc_len, img_len;
++ guchar *pos, *end, *mime_data, *img_data;
++ gchar hash[33];
++
++ pos = value;
++ end = value + len;
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ typ = GUINT32_FROM_BE (*(guint32 *)pos);
++ if (typ != 0 && typ != 3) {
++ XMMS_DBG ("Picture type %d not handled", typ);
++ return;
++ }
++ pos += 4;
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ mime_len = GUINT32_FROM_BE (*(guint32 *)pos);
++ pos += 4;
++ mime_data = pos;
++ pos += mime_len;
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ desc_len = GUINT32_FROM_BE (*(guint32 *)pos);
++ pos += 4;
++ pos += desc_len;
++
++ pos += 4; /* width */
++ pos += 4; /* height */
++ pos += 4; /* depth */
++ pos += 4; /* indexed palette length */
++
++ if (pos + 4 > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++ img_len = GUINT32_FROM_BE (*(guint32 *)pos);
++ pos += 4;
++ img_data = pos;
++
++ if (img_data + img_len > end) {
++ XMMS_DBG ("Malformed picture comment");
++ return;
++ }
++
++ if (xmms_bindata_plugin_add ((const guchar *)img_data, img_len, hash)) {
++ const gchar *metakey;
++
++ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT;
++ xmms_xform_metadata_set_str (xform, metakey, hash);
++
++ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT_MIME;
++ mime_data[mime_len] = '\0';
++ xmms_xform_metadata_set_str (xform, metakey, mime_data);
++ }
++}
++
+ /* note that "key" is NOT NUL-terminated here,
+ * but "value" is.
+ */
+@@ -253,6 +321,14 @@ handle_comment (xmms_xform_t *xform,
+ {
+ gint i;
+
++ if (!g_ascii_strncasecmp (key, "METADATA_BLOCK_PICTURE", key_len)) {
++ gsize dlen;
++ gchar *dvalue = g_base64_decode (value, &dlen);
++ handle_image_comment (xform, dvalue, dlen);
++ g_free (dvalue);
++ return;
++ }
++
+ for (i = 0; i < G_N_ELEMENTS (properties); i++) {
+ if (key_len != strlen (properties[i].vname))
+ continue;
+--
+cgit v0.8.3.4
+
+
+From d8273630bd92ecea581240ae93c6795cc538d076 Mon Sep 17 00:00:00 2001
+From: Erik Massop <e.massop@hccnet.nl>
+Date: Tue, 09 Mar 2010 15:45:03 +0000
+Subject: OTHER: Add Brad Jorsch to AUTHORS, disable Vorbis albumart for glib < 2.12
+
+(Name found using e-mail address at http://sourceforge.net/users/anomie )
+---
+diff --git a/AUTHORS b/AUTHORS
+index f2ef9af..7331d4b 100644
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -146,6 +146,10 @@ N: Johannes Jordan
+ E: ypnos@lanrules.de
+ D: Visualization
+
++N: Brad Jorsch
++E: anomie@users.sourceforge.net
++D: Support for front picture from Vorbis.
++
+ N: Daniel Kamiński
+ E: maniel.rulez@gmail.com
+ D: mlib remove command in cli, Ruby fixes.
+diff --git a/src/plugins/vorbis_common/common.c b/src/plugins/vorbis_common/common.c
+index fc4ff1b..ab1dc75 100644
+--- a/src/plugins/vorbis_common/common.c
++++ b/src/plugins/vorbis_common/common.c
+@@ -27,6 +27,7 @@
+ #include "xmms/xmms_sample.h"
+ #include "xmms/xmms_log.h"
+ #include "xmms/xmms_medialib.h"
++#include "xmms/xmms_bindata.h"
+
+ #include <glib.h>
+
+@@ -244,12 +245,22 @@ get_replaygain (xmms_xform_t *xform, vorbis_comment *vc)
+ }
+
+ static void
+-handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
++handle_image_comment (xmms_xform_t *xform, const gchar *encoded_value)
+ {
++ gsize len;
++ guchar *value;
++
+ guint32 typ, mime_len, desc_len, img_len;
+ guchar *pos, *end, *mime_data, *img_data;
+ gchar hash[33];
+
++#if GLIB_CHECK_VERSION(2,12,0)
++ value = g_base64_decode (encoded_value, &len);
++#else
++ /* TODO: Implement/backport base64 decoding */
++ return;
++#endif
++
+ pos = value;
+ end = value + len;
+
+@@ -299,7 +310,7 @@ handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
+ return;
+ }
+
+- if (xmms_bindata_plugin_add ((const guchar *)img_data, img_len, hash)) {
++ if (xmms_bindata_plugin_add (img_data, img_len, hash)) {
+ const gchar *metakey;
+
+ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT;
+@@ -307,8 +318,10 @@ handle_image_comment (xmms_xform_t *xform, const gchar *value, gsize len)
+
+ metakey = XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT_MIME;
+ mime_data[mime_len] = '\0';
+- xmms_xform_metadata_set_str (xform, metakey, mime_data);
++ xmms_xform_metadata_set_str (xform, metakey, (gchar *)mime_data);
+ }
++
++ g_free (value);
+ }
+
+ /* note that "key" is NOT NUL-terminated here,
+@@ -322,10 +335,7 @@ handle_comment (xmms_xform_t *xform,
+ gint i;
+
+ if (!g_ascii_strncasecmp (key, "METADATA_BLOCK_PICTURE", key_len)) {
+- gsize dlen;
+- gchar *dvalue = g_base64_decode (value, &dlen);
+- handle_image_comment (xform, dvalue, dlen);
+- g_free (dvalue);
++ handle_image_comment (xform, value);
+ return;
+ }
+
+--
+cgit v0.8.3.4
+
+
diff --git a/community/xmms2/xmms2-helpers.patch b/community/xmms2/xmms2-helpers.patch
new file mode 100644
index 000000000..f6e6aa49e
--- /dev/null
+++ b/community/xmms2/xmms2-helpers.patch
@@ -0,0 +1,13 @@
+diff -wbBur xmms2-0.5DrLecter/src/include/xmmsclient/xmmsclient++/helpers.h xmms2-0.5DrLecter.my/src/include/xmmsclient/xmmsclient++/helpers.h
+--- xmms2-0.5DrLecter/src/include/xmmsclient/xmmsclient++/helpers.h 2008-06-15 21:31:38.000000000 +0400
++++ xmms2-0.5DrLecter.my/src/include/xmmsclient/xmmsclient++/helpers.h 2008-06-18 14:22:24.000000000 +0400
+@@ -33,6 +33,8 @@
+ #include <list>
+ #include <vector>
+
++#include <linux/limits.h>
++
+ namespace Xmms
+ {
+
+
diff --git a/community/xmms2/xmms2-ruby-1.9.patch b/community/xmms2/xmms2-ruby-1.9.patch
new file mode 100644
index 000000000..6316ace61
--- /dev/null
+++ b/community/xmms2/xmms2-ruby-1.9.patch
@@ -0,0 +1,59 @@
+diff -wbBur xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_collection.c xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_collection.c
+--- xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_collection.c 2009-04-21 17:51:11.000000000 +0000
++++ xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_collection.c 2009-09-14 09:13:19.000000000 +0000
+@@ -241,10 +241,10 @@
+ COLL_METHOD_HANDLER_HEADER
+
+ rb_ary = RARRAY (ids);
+- ary = malloc (sizeof (unsigned int *) * (rb_ary->len + 1));
++ ary = malloc (sizeof (unsigned int *) * (RARRAYLEN(rb_ary) + 1));
+
+- for (i = 0; i < rb_ary->len; i++)
+- ary[i] = NUM2UINT (rb_ary->ptr[i]);
++ for (i = 0; i < RARRAYLEN(rb_ary); i++)
++ ary[i] = NUM2UINT (RARRAY_PTR(rb_ary)[i]);
+
+ ary[i] = 0;
+
+diff -wbBur xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_xmmsclient.c xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_xmmsclient.c
+--- xmms2-0.6DrMattDestruction/src/clients/lib/ruby/rb_xmmsclient.c 2009-04-21 17:51:11.000000000 +0000
++++ xmms2-0.6DrMattDestruction.my/src/clients/lib/ruby/rb_xmmsclient.c 2009-09-14 09:14:51.000000000 +0000
+@@ -1421,10 +1421,10 @@
+ if (!NIL_P (rb_check_array_type (value))) {
+ struct RArray *ary = RARRAY (value);
+
+- ret = malloc (sizeof (char *) * (ary->len + 1));
++ ret = malloc (sizeof (char *) * (RARRAYLEN(ary) + 1));
+
+- for (i = 0; i < ary->len; i++)
+- ret[i] = StringValuePtr (ary->ptr[i]);
++ for (i = 0; i < RARRAYLEN(ary); i++)
++ ret[i] = StringValuePtr (RARRAY_PTR(ary)[i]);
+
+ ret[i] = NULL;
+ } else {
+@@ -1451,10 +1451,10 @@
+ struct RArray *ary = RARRAY (value);
+ int i;
+
+- for (i = 0; i < ary->len; i++) {
++ for (i = 0; i < RARRAYLEN(ary); i++) {
+ xmmsv_t *elem;
+
+- elem = xmmsv_new_string (StringValuePtr (ary->ptr[i]));
++ elem = xmmsv_new_string (StringValuePtr (RARRAY_PTR(ary)[i]));
+ xmmsv_list_append (list, elem);
+ xmmsv_unref (elem);
+ }
+diff -wbBur xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/helpers.h xmms2-0.6DrMattDestruction.my/src/include/xmmsclient/xmmsclient++/helpers.h
+--- xmms2-0.6DrMattDestruction/src/include/xmmsclient/xmmsclient++/helpers.h 2009-04-21 17:51:11.000000000 +0000
++++ xmms2-0.6DrMattDestruction.my/src/include/xmmsclient/xmmsclient++/helpers.h 2009-09-14 09:00:11.000000000 +0000
+@@ -33,6 +33,8 @@
+ #include <list>
+ #include <vector>
+
++#include <linux/limits.h>
++
+ namespace Xmms
+ {
+
diff --git a/community/xmms2/xmms2.install b/community/xmms2/xmms2.install
new file mode 100644
index 000000000..2205a3492
--- /dev/null
+++ b/community/xmms2/xmms2.install
@@ -0,0 +1,3 @@
+pre_install() {
+ echo "-- DO NOT FORGET edit /etc/conf.d/xmms2.conf!"
+}
diff --git a/community/xmms2/xmms2d.conf b/community/xmms2/xmms2d.conf
new file mode 100644
index 000000000..c8304fe1d
--- /dev/null
+++ b/community/xmms2/xmms2d.conf
@@ -0,0 +1,31 @@
+#
+# xmms2-launcher cmdline parameters
+#
+XMMS2_PARAMETERS=""
+
+#
+# xmms2 user
+# You may want to add user to run xmms or use your username
+#
+XMMS2_USER="xmms2user"
+
+#
+# If you set XMMS2_USER to a different user than the one who will be controlling
+# xmms2d using xmms2 clients, make sure that the clients are aware of the path to
+# xmms2d's IPC socket, or they might not be able to connect. On failure to connect
+# some clients will try to run xmms2d themselves. These xmms2d instances will of
+# course run as the user running the client, and not as the one configured below.
+#
+# If an IPC path is specified on the command line to xmms2d (using
+# XMMS2_PARAMETERS="-i tcp://127.0.0.1:9667"
+# for instance) that will be used. If not, xmms2d will use the path from its
+# configuration file which is typically in ~/.config/xmms2/xmms2.conf. If this
+# fails, a unix socket at /tmp/xmms-ipc-[username] will be used, where username
+# is of the user starting xmms2d.
+#
+# Clients typically try to get the ipc path from the XMMS_PATH environment variable,
+# (which might be set by adding say 'export XMMS_PATH="tcp://127.0.0.1:9667"' to
+# ~/.profile). If this fails they can check their configuration file (if they have
+# one) and finally use unix:///tmp/xmms-ipc-[username], where username is of the user
+# starting the client. Upon failing to connect some will try to start xmms2d themselves.
+#
diff --git a/community/xmms2/xmms2d.rc b/community/xmms2/xmms2d.rc
new file mode 100755
index 000000000..af931ec0a
--- /dev/null
+++ b/community/xmms2/xmms2d.rc
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/conf.d/xmms2d.conf
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof xmms2d xmms2-et`
+case "$1" in
+ start)
+ stat_busy "Starting xmms2d"
+ [ -z "$PID" ] && su -c 'xmms2-launcher $XMMS2_PARAMETERS 1>/dev/null 2>/dev/null' - $XMMS2_USER
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon xmms2d
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping xmms2d"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon xmms2d
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/xmmsctrl/PKGBUILD b/community/xmmsctrl/PKGBUILD
new file mode 100644
index 000000000..beb2c90f7
--- /dev/null
+++ b/community/xmmsctrl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 21568 2010-07-16 16:29:20Z lcarlier $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: FJ <joostef@gmail.com>
+
+pkgname=xmmsctrl
+pkgver=1.9
+pkgrel=2
+pkgdesc="An XMMS console control application"
+arch=('i686' 'x86_64')
+url="http://www.cs.aau.dk/~adavid/utils/"
+license=("GPL")
+depends=('xmms')
+source=("http://www.cs.aau.dk/~adavid/utils/$pkgname-$pkgver.tar.gz")
+md5sums=('7da9cb73daeeec99bfdaa93dd2862ea6')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ install -D -m 755 xmmsctrl ${pkgdir}/usr/bin/xmmsctrl
+}
+
diff --git a/community/xmobar/PKGBUILD b/community/xmobar/PKGBUILD
new file mode 100644
index 000000000..e611eb780
--- /dev/null
+++ b/community/xmobar/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 43764 2011-03-29 17:22:35Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.4
+
+pkgname=xmobar
+pkgver=0.13
+pkgrel=2
+pkgdesc="A Minimalistic Text Based Status Bar"
+url="http://hackage.haskell.org/package/xmobar"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('gmp' 'libxft' 'libxinerama' 'wireless_tools')
+makedepends=('ghc>=7.0.2' 'haskell-x11>=1.3.0' 'haskell-x11-xft>=0.2' 'haskell-utf8-string'
+ 'haskell-stm' 'haskell-parsec>=3' 'haskell-mtl>=2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/xmobar/$pkgver/xmobar-$pkgver.tar.gz)
+md5sums=('f7946236c068b1e7944f16b7c0732857')
+
+build() {
+ cd ${srcdir}/xmobar-$pkgver
+# runhaskell Setup configure --disable-optimization --prefix=/usr --flags="with_xft with_alsa with_inotify with_iwlib"
+ runhaskell Setup configure --disable-optimization --prefix=/usr --flags="with_xft with_iwlib"
+ runhaskell Setup build
+}
+
+package() {
+ cd ${srcdir}/xmobar-$pkgver
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/community/xmonad-contrib/PKGBUILD b/community/xmonad-contrib/PKGBUILD
new file mode 100644
index 000000000..1e43ff570
--- /dev/null
+++ b/community/xmonad-contrib/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 41293 2011-03-04 23:37:55Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: orbisvicis <gmail.com>
+
+pkgname=xmonad-contrib
+pkgver=0.9.2
+pkgrel=1.2
+pkgdesc="Add-ons for xmonad"
+arch=('i686' 'x86_64')
+url="http://xmonad.org/"
+license=('BSD')
+depends=('ghc=7.0.2' 'xmonad=0.9.2' 'sh' 'haskell-x11=1.5.0.0'
+ 'haskell-x11-xft=0.3' 'haskell-utf8-string=0.3.6')
+install='xmonad-contrib.install'
+source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('616cbc632bbde5cd4cdb643ee47e74d2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ runhaskell Setup.lhs configure --ghc --enable-split-objs --prefix=/usr -fuse_xft \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m744 register.sh $pkgdir/usr/share/haskell/$pkgname/register.sh
+ install -m744 unregister.sh $pkgdir/usr/share/haskell/$pkgname/unregister.sh
+ runhaskell Setup.lhs copy --destdir=$pkgdir
+ install -D LICENSE $pkgdir/usr/share/licenses/xmonad-contrib/LICENSE
+}
diff --git a/community/xmonad-contrib/xmonad-contrib.install b/community/xmonad-contrib/xmonad-contrib.install
new file mode 100644
index 000000000..e9208c833
--- /dev/null
+++ b/community/xmonad-contrib/xmonad-contrib.install
@@ -0,0 +1,17 @@
+HS_DIR=usr/share/haskell/xmonad-contrib
+
+post_install() {
+ ${HS_DIR}/register.sh
+}
+
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+
+post_upgrade() {
+ ${HS_DIR}/register.sh
+}
+
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
diff --git a/community/xmonad-log-applet/PKGBUILD b/community/xmonad-log-applet/PKGBUILD
new file mode 100644
index 000000000..86bc9cb50
--- /dev/null
+++ b/community/xmonad-log-applet/PKGBUILD
@@ -0,0 +1,33 @@
+# Contributor: Alexander Kreuzer <alex@freesources.org>
+# Maintainer: Jelle van der Waa <jelle vdwaa nl>
+
+pkgname=xmonad-log-applet
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="Gnome Applet that display xmonad log message through DBus"
+arch=('i686' 'x86_64')
+url="http://uhsure.com/xmonad-log-applet.html"
+license=('custom')
+groups=()
+install=$pkgname.install
+depends=(dbus-core gnome-panel-bonobo hicolor-icon-theme)
+makedepends=()
+optdepends=("haskell-dbus: for xmonad integration see http://uhsure.com/xmonad-log-applet.html" )
+source=(http://uhsure.com/xmonad-log-applet/$pkgname-$pkgver.tar.gz)
+noextract=()
+
+build() {
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -d $pkgdir/usr/libexec $pkgdir/usr/lib/bonobo/servers $pkgdir/usr/share/icons/hicolor/48x48/apps
+ make DESTDIR=$pkgdir install
+ install -D LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+
+}
+
+md5sums=('31219f21cb9075b33d3880e2eb5a2b80')
diff --git a/community/xmonad-log-applet/xmonad-log-applet.install b/community/xmonad-log-applet/xmonad-log-applet.install
new file mode 100644
index 000000000..2e96975d1
--- /dev/null
+++ b/community/xmonad-log-applet/xmonad-log-applet.install
@@ -0,0 +1,3 @@
+post_install() {
+ gtk-update-icon-cache /usr/share/icons/hicolor
+}
diff --git a/community/xmonad/PKGBUILD b/community/xmonad/PKGBUILD
new file mode 100644
index 000000000..63bad6732
--- /dev/null
+++ b/community/xmonad/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 41283 2011-03-04 23:20:31Z remy $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: shild <shildv@gmail.com>
+
+pkgname=xmonad
+pkgver=0.9.2
+pkgrel=1.2
+pkgdesc="A lightweight X11 tiled window manager written in Haskell"
+arch=('i686' 'x86_64')
+url="http://xmonad.org/"
+license=('BSD')
+depends=('ghc=7.0.2' 'gmp' 'haskell-x11=1.5.0.0' 'sh' 'haskell-mtl=2.0.1.0' 'haskell-utf8-string=0.3.6')
+install='xmonad.install'
+source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz
+ xmonad.desktop xmonad.svg)
+md5sums=('5a4117f798664d772d2a834ea6c90f1c'
+ 'f61961459f190b6d948f1f2782afa7a7'
+ '72bfa5e62e4e44fe7fa59b6a7593d993')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ runhaskell Setup.lhs configure --ghc --enable-split-objs --prefix=/usr \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m744 register.sh $pkgdir/usr/share/haskell/$pkgname/register.sh
+ install -m744 unregister.sh $pkgdir/usr/share/haskell/$pkgname/unregister.sh
+ runhaskell Setup.lhs copy --destdir=$pkgdir
+# runhaskell util/GenerateManpage.hs
+
+ install -D -m644 man/xmonad.1 $pkgdir/usr/share/man/man1/xmonad.1
+
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/xmonad/LICENSE
+
+ install -D -m644 $srcdir/xmonad.desktop $pkgdir/usr/share/applications/xmonad.desktop
+ mkdir -p $pkgdir/etc/X11/sessions
+ ln -s /usr/share/applications/xmonad.desktop $pkgdir/etc/X11/sessions/xmonad.desktop
+ install -D -m644 $srcdir/xmonad.svg $pkgdir/usr/share/pixmaps/xmonad.svg
+}
diff --git a/community/xmonad/xmonad.desktop b/community/xmonad/xmonad.desktop
new file mode 100644
index 000000000..a99be19f9
--- /dev/null
+++ b/community/xmonad/xmonad.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=xmonad
+Icon=/usr/share/pixmaps/xmonad.svg
+Comment=This session starts xmonad
+Exec=/usr/bin/xmonad
+Type=Application
+NoDisplay=true
+X-GNOME-WMName=Xmonad
+X-GNOME-Autostart-Phase=WindowManager
+X-GNOME-Provides=windowmanager
+X-GNOME-Autostart-Notify=false
diff --git a/community/xmonad/xmonad.install b/community/xmonad/xmonad.install
new file mode 100644
index 000000000..6659247db
--- /dev/null
+++ b/community/xmonad/xmonad.install
@@ -0,0 +1,22 @@
+HS_DIR=/usr/share/haskell/xmonad
+
+post_install() {
+ ${HS_DIR}/register.sh
+ echo "xmonad now has dynamic configuration via ~/.xmonad/xmonad.hs"
+ echo "See http://haskell.org/haskellwiki/Xmonad/Config_archive for examples"
+ echo
+ echo "If you would like to run xmonad as a window manager inside GNOME, please see"
+ echo "http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Setting_up_Gnome_to_use_Xmonad"
+}
+
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+
+post_upgrade() {
+ ${HS_DIR}/register.sh
+}
+
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
diff --git a/community/xmonad/xmonad.png b/community/xmonad/xmonad.png
new file mode 100644
index 000000000..d957f62f8
--- /dev/null
+++ b/community/xmonad/xmonad.png
Binary files differ
diff --git a/community/xmonad/xmonad.svg b/community/xmonad/xmonad.svg
new file mode 100644
index 000000000..5fc884213
--- /dev/null
+++ b/community/xmonad/xmonad.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2211"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ width="47"
+ height="73"
+ version="1.0"
+ sodipodi:docbase="/home/sjanssen/xmonad-web/images"
+ sodipodi:docname="logo.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/home/sjanssen/xmonad-web/images/logo.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata2216">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2214" />
+ <sodipodi:namedview
+ inkscape:window-height="778"
+ inkscape:window-width="1278"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="1"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="4"
+ inkscape:cx="23.5"
+ inkscape:cy="22.689137"
+ inkscape:window-x="0"
+ inkscape:window-y="20"
+ inkscape:current-layer="g3208" />
+ <g
+ id="g3208"
+ transform="translate(-44.517797,4.0967298)">
+ <g
+ id="g3212"
+ transform="matrix(1.0216109,0,0,1.0127041,45.533715,-4.3577662)">
+ <path
+ style="font-size:73.7244339px;font-style:normal;font-weight:normal;fill:#aeaeae;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ d="M 22.62043,20.307707 L 36.04778,0.32867349 L 43.859402,0.32867349 L 26.580238,26.139425 L 22.080456,31.215179 L 6.8531925,54.074074 L -0.9944279,54.074074 L 18.192644,25.383462"
+ id="text2220"
+ sodipodi:nodetypes="cccccccc" />
+ <path
+ id="path3206"
+ d="M 1.4534537,0.32867349 L 9.2650758,0.32867349 L 45.011347,54.074074 L 37.199725,54.074074 L 22.080456,31.215179 L 6.8531925,54.074074 L -0.9944279,54.074074 L 18.192644,25.383462 L 1.4534537,0.32867349"
+ style="font-size:73.7244339px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ sodipodi:nodetypes="ccccccccc" />
+ </g>
+ <path
+ style="font-size:28.207407px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#ee0a00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans Mono"
+ d="M 44.517797,65.480602 L 55.836194,59.828049 L 44.517797,54.228655 L 44.517797,51.056847 L 58.809298,58.321883 L 58.809298,61.298776 L 44.517797,68.652411 M 44.517797,68.652411 L 44.517797,65.480602 M 73.929389,61.298776 L 59.637889,68.652411 L 59.637889,65.480602 L 70.956287,59.828049 L 59.637889,54.228655 L 59.637889,51.056847 L 73.929389,58.321883 L 73.929389,61.298776 z M 91.517797,57.382744 L 77.270452,57.382744 L 77.270452,54.405851 L 91.517797,54.405851 L 91.517797,57.382744 z M 91.517797,65.267967 L 77.270452,65.267967 L 77.270452,62.291073 L 91.517797,62.291073 L 91.517797,65.267967 z "
+ id="text3216"
+ sodipodi:nodetypes="ccccccccccccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/community/xmoto/PKGBUILD b/community/xmoto/PKGBUILD
new file mode 100644
index 000000000..3a51a3c78
--- /dev/null
+++ b/community/xmoto/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 64796 2010-01-22 08:19:26Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Denis (dtonator@gmail.com)
+
+pkgname=xmoto
+pkgver=0.5.5
+pkgrel=1
+pkgdesc="A challenging 2D motocross platform game, where physics play an important role."
+arch=('i686' 'x86_64')
+url="http://xmoto.tuxfamily.org"
+license=('GPL')
+depends=('bzip2' 'libjpeg' 'libpng' 'lua' 'sdl_mixer' 'ode=0.11.1' 'curl'
+ 'mesa' 'sqlite3' 'sdl_ttf' 'desktop-file-utils' 'sdl_net' 'libxdg-basedir')
+install=xmoto.install
+source=("http://download.tuxfamily.org/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}-src.tar.gz"
+ "libpng-14.patch")
+sha1sums=('4deb6f27fc8100cd66e1d655da7ca0e94dacf198'
+ '005015ecbd2dcedcc865dd085e1d8c49d96270fd')
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 -i ${srcdir}/libpng-14.patch
+
+ # build and install
+ ./configure LDFLAGS="-L/usr/lib" --prefix=/usr --disable-sdltest
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} mangdir=/usr/share/man/man6 install
+
+ # install desktop file
+ install -Dm0644 ${srcdir}/${pkgname}-${pkgver}/extra/xmoto.desktop \
+ ${pkgdir}/usr/share/applications/xmoto.desktop
+
+ # install icon for desktop file
+ install -Dm0644 ${srcdir}/${pkgname}-${pkgver}/extra/xmoto.xpm \
+ ${pkgdir}/usr/share/pixmaps/xmoto.xpm
+}
diff --git a/community/xmoto/libpng-14.patch b/community/xmoto/libpng-14.patch
new file mode 100644
index 000000000..6e4eb2cd8
--- /dev/null
+++ b/community/xmoto/libpng-14.patch
@@ -0,0 +1,11 @@
+--- xmoto-0.5.3/src/image/tim_png.cpp.old 2010-05-19 21:13:09.401802546 +0200
++++ xmoto-0.5.3/src/image/tim_png.cpp 2010-05-19 21:15:13.008451656 +0200
+@@ -166,7 +166,7 @@
+ png_set_palette_to_rgb(PngPtr);
+
+ if(nColorType==PNG_COLOR_TYPE_GRAY && nBitDepth<8)
+- png_set_gray_1_2_4_to_8(PngPtr);
++ png_set_expand_gray_1_2_4_to_8(PngPtr);
+
+ if(png_get_valid(PngPtr,InfoPtr,PNG_INFO_tRNS))
+ png_set_tRNS_to_alpha(PngPtr);
diff --git a/community/xmoto/xmoto.desktop b/community/xmoto/xmoto.desktop
new file mode 100644
index 000000000..5ae6fe226
--- /dev/null
+++ b/community/xmoto/xmoto.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Icon=/usr/share/xmoto/xmoto_icone_x.ico
+Exec=/usr/bin/xmoto
+Terminal=false
+StartupNotify=false
+
+Name=XMoto
+GenericName=Game
+Comment=is a 2D physics-based motocross game.
+
+Categories=Game;
diff --git a/community/xmoto/xmoto.install b/community/xmoto/xmoto.install
new file mode 100644
index 000000000..52399d4c1
--- /dev/null
+++ b/community/xmoto/xmoto.install
@@ -0,0 +1,15 @@
+post_install() {
+ /usr/bin/update-desktop-database
+}
+
+post_upgrade() {
+ /usr/bin/update-desktop-database
+}
+
+post_remove() {
+ /usr/bin/update-desktop-database
+}
+
+op=$1
+shift
+$op $*
diff --git a/community/xmove/PKGBUILD b/community/xmove/PKGBUILD
new file mode 100644
index 000000000..cc7393078
--- /dev/null
+++ b/community/xmove/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 32120 2010-11-10 15:38:22Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Benjamin Andresen <benny AT klapmuetz DOT org>
+
+pkgname=xmove
+pkgver=2.0beta2
+pkgrel=4
+pkgdesc="A tool to move X windows to different X servers, something like a GNU screen for X."
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/archlinux-stuff/"
+license=('custom')
+depends=('libx11')
+makedepends=('imake')
+source=(http://archlinux-stuff.googlecode.com/files/xmove-$pkgver.tar.gz)
+md5sums=('32b8db5bdbe71b8604e4f89c9eb2975b')
+
+build() {
+ cd $srcdir/xmove-$pkgver/xmove
+ xmkmf
+ echo xmove.man:: >> Makefile
+ make
+
+ cd $srcdir/xmove-$pkgver/xmovectrl
+ xmkmf
+ echo xmovectrl.man:: >> Makefile
+ make
+
+ chmod 755 $srcdir/xmove-$pkgver/man/man1
+}
+
+package() {
+ mkdir -p $pkgdir/usr/share/man
+ cp -r $srcdir/xmove-$pkgver/man/man1 $pkgdir/usr/share/man/
+ install -D -m0755 $srcdir/xmove-$pkgver/xmove/xmove $pkgdir/usr/bin/xmove
+ install -D -m0755 $srcdir/xmove-$pkgver/xmovectrl/xmovectrl $pkgdir/usr/bin/xmovectrl
+ install -D -m0644 $srcdir/xmove-$pkgver/xmove.copyright $pkgdir/usr/share/licenses/xmove/COPYRIGHT
+}
diff --git a/community/xnc/PKGBUILD b/community/xnc/PKGBUILD
new file mode 100644
index 000000000..fe520c655
--- /dev/null
+++ b/community/xnc/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 8981 2010-01-23 01:17:11Z foutrelis $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xnc
+pkgver=5.0.4
+pkgrel=3
+pkgdesc="X nortern captain file manager"
+arch=(i686 x86_64)
+url="http://xnc.jinr.ru/"
+license=('GPL')
+depends=('gcc-libs' 'libpng' 'libtiff' 'libsm' 'libxext' 'libjpeg>=7')
+makedepends=('libxt')
+options=('!makeflags')
+source=(http://xnc.jinr.ru/src-5/xnc-$pkgver.src.tar.gz xnc-gcc44.patch)
+md5sums=('62446cdfdf5730f125fb351a658c0bd3' '60673809f2db3a8d9939e9f38ade59d2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p0 < ../xnc-gcc44.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/community/xnc/xnc-gcc44.patch b/community/xnc/xnc-gcc44.patch
new file mode 100644
index 000000000..5ce977850
--- /dev/null
+++ b/community/xnc/xnc-gcc44.patch
@@ -0,0 +1,56 @@
+--- src/lib/tool/commonfuncs.cxx.orig 2009-07-15 21:19:42.000000000 -0400
++++ src/lib/tool/commonfuncs.cxx 2009-07-15 21:23:58.000000000 -0400
+@@ -117,9 +117,9 @@
+ }
+
+ //Get first content of dirname
+-char* get_first_content(const char *curdir, char *cont)
++const char* get_first_content(const char *curdir, char *cont)
+ {
+- char *b=strchr(curdir,'/');
++ const char *b=strchr(curdir,'/');
+ if(b)
+ {
+ strncpy(cont,curdir,b-curdir);
+--- src/include/commonfuncs.h.orig 2009-07-15 21:24:37.000000000 -0400
++++ src/include/commonfuncs.h 2009-07-15 21:25:04.000000000 -0400
+@@ -15,7 +15,7 @@
+ extern int path_to_fullpath(char* dest, char *srcdir);
+ extern void add_path_content(char *curdir, const char *cont, int vms_host=0);
+ extern void upper_path(char *curdir, int vms_host=0);
+-extern char* get_first_content(const char *curdir, char *cont);
++extern const char* get_first_content(const char *curdir, char *cont);
+ extern void get_last_content(char *curdir, char *cont);
+ extern void get_last_and_rest_content(char* curdir, char* last, char* rest);
+ extern void str_swap(char *str1, char *str2);
+--- src/lib/vfs/afs.cxx.orig 2009-07-15 21:47:44.000000000 -0400
++++ src/lib/vfs/afs.cxx 2009-07-15 21:50:02.000000000 -0400
+@@ -29,7 +29,7 @@
+ // The return value is static, so copy it before using the
+ // method again!
+
+-char *create_dirs(char *rootdir, char* dirlist)
++char *create_dirs(char *rootdir, const char* dirlist)
+ {
+ char str[L_MAXPATH];
+ char cont[FLIST_NAME];
+@@ -1350,7 +1350,7 @@
+ add_path_content(curdir, to_dir);
+ } else //If we here then we doing cd not to subdir but to subdir/subdir...
+ {
+- char *s=to_dir;
++ const char *s=to_dir;
+ if(*s)
+ {
+ do
+--- src/lib/vfs/ftpfs.cxx.orig 2009-07-15 21:50:48.000000000 -0400
++++ src/lib/vfs/ftpfs.cxx 2009-07-15 21:54:26.000000000 -0400
+@@ -1413,7 +1413,7 @@
+ return;
+ if(strcmp(dir,"/"))
+ {
+- char *s=dir;
++ const char *s=dir;
+ if(*s=='/') //Skip leading '/'
+ s++;
+ do
diff --git a/community/xnee/ChangeLog b/community/xnee/ChangeLog
new file mode 100644
index 000000000..062ec3b32
--- /dev/null
+++ b/community/xnee/ChangeLog
@@ -0,0 +1,2 @@
+2009-12-25 Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+ * Update to major release 3.05
diff --git a/community/xnee/PKGBUILD b/community/xnee/PKGBUILD
new file mode 100644
index 000000000..25effed5e
--- /dev/null
+++ b/community/xnee/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+
+pkgname=xnee
+pkgver=3.05
+pkgrel=1
+pkgdesc="A program to record, distribute, and replay X (X11) protocol data"
+arch=('i686' 'x86_64')
+url="http://www.sandklef.com/xnee/"
+license=('GPL3')
+depends=('gtk2' 'libgnomeui' 'libxtst')
+makedepends=('texinfo')
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('0ba4ea4f6102bcc0b478f4a6fe787b0b')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --disable-gnome-applet
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/community/xonotic/PKGBUILD b/community/xonotic/PKGBUILD
new file mode 100644
index 000000000..676240162
--- /dev/null
+++ b/community/xonotic/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id$
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Alexander Suhoverhov <cy at ngs dot ru>
+pkgname=xonotic
+pkgver=0.1.0
+pkgrel=2
+pkgdesc="A free, fast-paced crossplatform first-person shooter"
+arch=('i686' 'x86_64')
+url="http://xonotic.org"
+license=('GPL')
+depends=('alsa-lib' 'curl' 'libjpeg>=8' 'libmodplug' 'libvorbis' 'libxpm' 'libxxf86dga' 'libxxf86vm' 'sdl' 'libpng>=1.4.0' 'xonotic-data')
+makedepends=('unzip' 'mesa')
+source=('http://dl.xonotic.org/xonotic-0.1.0preview.zip'
+ 'xonotic-dedicated.sh'
+ 'xonotic-glx.sh'
+ 'xonotic-sdl.sh'
+ 'xonotic-glx.desktop'
+ 'xonotic-sdl.desktop')
+md5sums=('aafb43893aa66e01488c817e3a60d96d'
+ '2c0aef8104fa34aef58d368d994abca3'
+ 'd2f357eab92db585448476470bbf9c1c'
+ 'fdb9b96cd2b700ea9e8a7d6a1ab3505e'
+ '914c7b9163e92b35f0ab57fdb1653ac5'
+ 'da7d812ff231c9332cd694b39757adda')
+
+build() {
+ # le compiling
+ cd $srcdir/Xonotic/source/darkplaces
+
+ # build the binaries separately instead to avoid truncated files
+ make CPUOPTIMIZATIONS="${CFLAGS}" DP_LINK_TO_LIBJPEG=1 cl-nexuiz
+ make CPUOPTIMIZATIONS="${CFLAGS}" DP_LINK_TO_LIBJPEG=1 sdl-nexuiz
+ make CPUOPTIMIZATIONS="${CFLAGS}" DP_LINK_TO_LIBJPEG=1 sv-nexuiz
+}
+
+package() {
+ cd $srcdir/Xonotic
+
+ # binaries
+ install -Dm755 source/darkplaces/nexuiz-dedicated $pkgdir/opt/xonotic/xonotic-dedicated
+ install -Dm755 source/darkplaces/nexuiz-glx $pkgdir/opt/xonotic/xonotic-glx
+ install -Dm755 source/darkplaces/nexuiz-sdl $pkgdir/opt/xonotic/xonotic-sdl
+
+ # convenience files
+ mkdir -p $pkgdir/usr/share/applications
+ install -Dm644 $srcdir/*.desktop -t $pkgdir/usr/share/applications
+ install -Dm755 $srcdir/xonotic-dedicated.sh $pkgdir/usr/bin/xonotic-dedicated
+ install -Dm755 $srcdir/xonotic-glx.sh $pkgdir/usr/bin/xonotic-glx
+ install -Dm755 $srcdir/xonotic-sdl.sh $pkgdir/usr/bin/xonotic-sdl
+ install -Dm644 $srcdir/Xonotic/misc/logos/icons_png/xonotic_512.png $pkgdir/usr/share/pixmaps/xonotic.png
+}
+
+# vim: ts=2:sw=2 et:
diff --git a/community/xonotic/xonotic-dedicated.sh b/community/xonotic/xonotic-dedicated.sh
new file mode 100644
index 000000000..b9998ca3c
--- /dev/null
+++ b/community/xonotic/xonotic-dedicated.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/xonotic
+./xonotic-dedicated $@
diff --git a/community/xonotic/xonotic-glx.desktop b/community/xonotic/xonotic-glx.desktop
new file mode 100644
index 000000000..9f9e78cc1
--- /dev/null
+++ b/community/xonotic/xonotic-glx.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=2.5
+Encoding=UTF-8
+Name=Xonotic (GLX)
+Comment=a free open-source first person shooter
+Icon=/usr/share/pixmaps/xonotic.png
+Exec=/usr/bin/xonotic-glx
+Terminal=false
+StartupNotify=false
+Categories=Game;
diff --git a/community/xonotic/xonotic-glx.sh b/community/xonotic/xonotic-glx.sh
new file mode 100644
index 000000000..e52a99c9f
--- /dev/null
+++ b/community/xonotic/xonotic-glx.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/xonotic
+./xonotic-glx $@
diff --git a/community/xonotic/xonotic-sdl.desktop b/community/xonotic/xonotic-sdl.desktop
new file mode 100644
index 000000000..32b37f2c5
--- /dev/null
+++ b/community/xonotic/xonotic-sdl.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Type=Application
+Version=2.5
+Encoding=UTF-8
+Name=Xonotic (SDL)
+Comment=a free open-source first person shooter
+Icon=/usr/share/pixmaps/xonotic.png
+Exec=/usr/bin/xonotic-sdl
+Terminal=false
+StartupNotify=false
+Categories=Game;
diff --git a/community/xonotic/xonotic-sdl.sh b/community/xonotic/xonotic-sdl.sh
new file mode 100644
index 000000000..976d3ccf5
--- /dev/null
+++ b/community/xonotic/xonotic-sdl.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+cd /opt/xonotic
+./xonotic-sdl $@
diff --git a/community/xosd/PKGBUILD b/community/xosd/PKGBUILD
new file mode 100644
index 000000000..688f6f92b
--- /dev/null
+++ b/community/xosd/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 41448 2009-06-04 02:08:19Z eric $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=xosd
+pkgver=2.2.14
+pkgrel=3
+pkgdesc="XOSD displays text on your screen. On-Screen-Display-libs for some tools."
+arch=("i686" "x86_64")
+license=('GPL2')
+url="http://www.ignavus.net/software.html"
+depends=('libxt' 'libxinerama')
+makedepends=('xmms' 'bmp' 'gdk-pixbuf')
+optdepends=('gdk-pixbuf: for using the bmp or xmms plugin')
+options=(!libtool)
+#source=("http://www.ignavus.net/xosd-$pkgver.tar.bz2")
+source=("http://ftp.de.debian.org/debian/pool/main/x/xosd/xosd_$pkgver.orig.tar.gz")
+md5sums=('4b349fe930e4eee2f504d6c02673e24d')
+
+build() {
+ cd "$srcdir/xosd-$pkgver"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+ sed -i 's/AC_DEFUN(AM_PATH_LIBXOSD,/AC_DEFUN([AM_PATH_LIBXOSD],/' \
+ "$pkgdir/usr/share/aclocal/libxosd.m4" || return 1
+}
+
+
diff --git a/community/xpacman/PKGBUILD b/community/xpacman/PKGBUILD
new file mode 100644
index 000000000..ccefd846b
--- /dev/null
+++ b/community/xpacman/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 17716 2010-05-24 20:47:33Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xpacman
+pkgver=0.11
+pkgrel=5
+pkgdesc="X pacman game (use z x / ' q keys)"
+arch=(i686 x86_64)
+url="http://www.ibiblio.org/pub/X11/contrib/games/"
+license=('custom')
+depends=(libx11)
+source=(http://www.ibiblio.org/pub/X11/contrib/games/xpacman.tar.gz \
+ http://www.ibiblio.org/pub/X11/contrib/games/xpacman.README)
+md5sums=('b0ad824c4c0ea5c4d1f8f3e7b31f32f9'
+ '620c226d6d91461ac0d91e88655c9cbf')
+
+build() {
+ cd $srcdir/$pkgname
+
+ patch -Np1 <<EOF
+diff -wbBur xpacman-0.11.orig/xpacman.c xpacman-0.11.orig.my/xpacman.c
+--- xpacman-0.11.orig/xpacman.c 1996-08-14 16:08:12.000000000 +0400
++++ xpacman-0.11.orig.my/xpacman.c 2007-07-03 18:59:05.000000000 +0400
+@@ -85,7 +85,7 @@
+ void update_image_from_map(Window ,GC),update_image(Window, GC);
+ void setup_map_memory(void),free_memory(void),print_usage(void);
+ void reset_display_map(void),setup_maze(void);
+-void maze_draw(int,int,int,int),draw_maze_point(int,int,enum mtype);
++void maze_draw(int,int,int,int),draw_maze_point(int,int,enum dtype);
+ void draw_maze_edges(void),draw_x_line(XImage *,int,int,int,int);
+ void setup_pill(XImage *),add_pills(int,int),setup_pacmen(void);
+ void setup_pacmanu(void),setup_pacman(XImage *),plot_pacman(Window,GC);
+EOF
+
+ gcc -o xpacman xpacman.c -lX11 && \
+ install -D -m 0755 xpacman $pkgdir/usr/bin/xpacman && \
+ install -D -m 0755 $srcdir/xpacman.README $pkgdir/usr/share/licenses/xpacman/README
+}
diff --git a/community/xpacman2/PKGBUILD b/community/xpacman2/PKGBUILD
new file mode 100644
index 000000000..93d4ad8ec
--- /dev/null
+++ b/community/xpacman2/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 17713 2010-05-24 20:46:58Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xpacman2
+pkgver=1.002
+_xpkgver=1_002
+pkgrel=3
+pkgdesc="another X pacman game"
+arch=('i686' 'x86_64')
+url="ftp://ftp.nvg.unit.no/pub/pacman/"
+license=('GPL')
+depends=(libx11 ncurses gcc-libs)
+makedepends=()
+source=(ftp://ftp.nvg.unit.no/pub/pacman/pacman-$_xpkgver.tar.gz \
+ build-fix.patch)
+md5sums=('afcbc268d1eff6ea3a834c7a5f715f77' '4faf33134a2a74f284059a2971833fa1')
+noextract=()
+
+build() {
+ cd $srcdir/pacman-$_xpkgver
+
+ patch -Np1 <../build-fix.patch
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ (cd $pkgdir/usr/bin/ && mv pacman xpacman2)
+}
diff --git a/community/xpacman2/build-fix.patch b/community/xpacman2/build-fix.patch
new file mode 100644
index 000000000..f9f27f717
--- /dev/null
+++ b/community/xpacman2/build-fix.patch
@@ -0,0 +1,37 @@
+diff -wbBur pacman-1_002/ghost.cc pacman-1_002.my/ghost.cc
+--- pacman-1_002/ghost.cc 1995-07-21 19:35:30.000000000 +0400
++++ pacman-1_002.my/ghost.cc 2007-07-03 19:18:56.000000000 +0400
+@@ -165,7 +165,7 @@
+ }
+ }
+
+-Ghost::go(Pacman *pac) { //go for pacman: do ghost code
++int Ghost::go(Pacman *pac) { //go for pacman: do ghost code
+ typ w; //what type is at next coordinates
+ int i=1; //moved or not?
+ int xx,yy; //coordinates
+diff -wbBur pacman-1_002/ghost.h pacman-1_002.my/ghost.h
+--- pacman-1_002/ghost.h 1995-04-07 21:02:34.000000000 +0400
++++ pacman-1_002.my/ghost.h 2007-07-03 19:19:01.000000000 +0400
+@@ -31,7 +31,7 @@
+ Ghost(COLOURTYPE,int,int); //constructor with coordinates
+ ~Ghost(); //destructor
+ void draw(void); //draw the ghost
+-go(Pacman*); //go for pacman: do ghost code
++int go(Pacman*); //go for pacman: do ghost code
+ typ is_a(void) {return classGhost;}
+ void eat(void); //when pacman eats ghost
+ void getxy(int*,int*);
+diff -wbBur pacman-1_002/point.cc pacman-1_002.my/point.cc
+--- pacman-1_002/point.cc 1995-02-28 13:41:08.000000000 +0300
++++ pacman-1_002.my/point.cc 2007-07-03 19:19:16.000000000 +0400
+@@ -1,7 +1,7 @@
+ #include"point.h"
+ Point::Point(int xx=0,int yy=0) { x=xx; y=yy; };
+-Point::val_x() { return x; };
+-Point::val_y() { return y; };
++int Point::val_x() { return x; };
++int Point::val_y() { return y; };
+ void Point::set_x(int xx) { x=xx; };
+ void Point::set_y(int yy) { y=yy; };
+ void Point::set_xy(int xx,int yy) { x=xx; y=yy; };
diff --git a/community/xpad/PKGBUILD b/community/xpad/PKGBUILD
new file mode 100644
index 000000000..b16213f4a
--- /dev/null
+++ b/community/xpad/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 15560 2010-04-12 15:32:43Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=xpad
+pkgver=4.0
+pkgrel=5
+pkgdesc="Stickies-like notes program"
+arch=(i686 x86_64)
+depends=('gtk2' 'libsm' 'librsvg')
+url="http://mterry.name/xpad/"
+license=('GPL')
+install=xpad.install
+source=(http://launchpad.net/xpad/trunk/$pkgver/+download/xpad-$pkgver.tar.bz2
+ xpad-gtk-2.20.patch)
+md5sums=('a77bbabb4917c7da9b5d097d9a4e59a7'
+ '6a3d2952b469d65ec333714991ba8284')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -p1 <$srcdir/xpad-gtk-2.20.patch
+ ./configure --prefix=/usr
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=$startdir/pkg install
+}
diff --git a/community/xpad/xpad-gtk-2.20.patch b/community/xpad/xpad-gtk-2.20.patch
new file mode 100644
index 000000000..54612b6db
--- /dev/null
+++ b/community/xpad/xpad-gtk-2.20.patch
@@ -0,0 +1,98 @@
+Only in xpad-4.0.my/autopackage: default.apspec
+Only in xpad-4.0.my/autopackage: Makefile
+Only in xpad-4.0.my: config.h
+Only in xpad-4.0.my: config.log
+Only in xpad-4.0.my: config.status
+Only in xpad-4.0.my/doc: Makefile
+Only in xpad-4.0.my/images: Makefile
+Only in xpad-4.0.my: Makefile
+Only in xpad-4.0.my/po: af.gmo
+Only in xpad-4.0.my/po: bg.gmo
+Only in xpad-4.0.my/po: cs.gmo
+Only in xpad-4.0.my/po: da.gmo
+Only in xpad-4.0.my/po: de.gmo
+Only in xpad-4.0.my/po: en_GB.gmo
+Only in xpad-4.0.my/po: es.gmo
+Only in xpad-4.0.my/po: et.gmo
+Only in xpad-4.0.my/po: fi.gmo
+Only in xpad-4.0.my/po: fr.gmo
+Only in xpad-4.0.my/po: ga.gmo
+Only in xpad-4.0.my/po: hr.gmo
+Only in xpad-4.0.my/po: hu.gmo
+Only in xpad-4.0.my/po: .intltool-merge-cache
+Only in xpad-4.0.my/po: it.gmo
+Only in xpad-4.0.my/po: ja.gmo
+Only in xpad-4.0.my/po: ko.gmo
+Only in xpad-4.0.my/po: lv.gmo
+Only in xpad-4.0.my/po: Makefile
+Only in xpad-4.0.my/po: Makefile.in
+Only in xpad-4.0.my/po: nl.gmo
+Only in xpad-4.0.my/po: POTFILES
+Only in xpad-4.0.my/po: pt.gmo
+Only in xpad-4.0.my/po: ro.gmo
+Only in xpad-4.0.my/po: ru.gmo
+Only in xpad-4.0.my/po: rw.gmo
+Only in xpad-4.0.my/po: stamp-it
+Only in xpad-4.0.my/po: sv.gmo
+Only in xpad-4.0.my/po: th.gmo
+Only in xpad-4.0.my/po: tr.gmo
+Only in xpad-4.0.my/po: vi.gmo
+Only in xpad-4.0.my/po: zh_CN.gmo
+Only in xpad-4.0.my/po: zh_TW.gmo
+Only in xpad-4.0.my/src: .deps
+Only in xpad-4.0.my/src: fio.o
+Only in xpad-4.0.my/src: help.o
+Only in xpad-4.0.my/src: Makefile
+Only in xpad-4.0.my/src: prefix.o
+Only in xpad-4.0.my/src: xpad
+Only in xpad-4.0.my/src: xpad-app.o
+Only in xpad-4.0.my/src: xpad-grip-tool-item.o
+diff -wbBur xpad-4.0/src/xpad-pad.c xpad-4.0.my/src/xpad-pad.c
+--- xpad-4.0/src/xpad-pad.c 2009-05-11 01:44:09.000000000 +0000
++++ xpad-4.0.my/src/xpad-pad.c 2010-04-12 15:25:24.000000000 +0000
+@@ -268,18 +268,22 @@
+ NULL));
+ gtk_container_child_set (GTK_CONTAINER (vbox), pad->priv->toolbar, "expand", FALSE, NULL);
+
+- g_object_set (G_OBJECT (pad),
+- "decorated", xpad_settings_get_has_decorations (xpad_settings ()),
+- "default-height", xpad_settings_get_height (xpad_settings ()),
+- "default-width", xpad_settings_get_width (xpad_settings ()),
+- "gravity", GDK_GRAVITY_STATIC, /* static gravity makes saving pad x,y work */
+- "skip-pager-hint", !xpad_settings_get_has_decorations (xpad_settings ()),
+- "skip-taskbar-hint", !xpad_settings_get_has_decorations (xpad_settings ()),
+- "type", GTK_WINDOW_TOPLEVEL,
+- "type-hint", GDK_WINDOW_TYPE_HINT_NORMAL,
+- "window-position", GTK_WIN_POS_MOUSE,
+- "child", vbox,
+- NULL);
++// g_object_set (G_OBJECT (pad),
++// "default-height", xpad_settings_get_height (xpad_settings ()),
++// "default-width", xpad_settings_get_width (xpad_settings ()),
++// "gravity", GDK_GRAVITY_STATIC, /* static gravity makes saving pad x,y work */
++// "skip-pager-hint", !xpad_settings_get_has_decorations (xpad_settings ()),
++// "skip-taskbar-hint", !xpad_settings_get_has_decorations (xpad_settings ()),
++// "type", GTK_WINDOW_TOPLEVEL,
++// "window-position", GTK_WIN_POS_MOUSE,
++// "child", vbox,
++// NULL);
++
++ gtk_window_set_type_hint (GTK_WINDOW (pad), GDK_WINDOW_TYPE_HINT_NORMAL);
++ gtk_window_set_decorated (GTK_WINDOW (pad), xpad_settings_get_has_decorations (xpad_settings ()));
++ gtk_window_set_resizable (GTK_WINDOW (pad), TRUE);
++ gtk_container_add (GTK_CONTAINER (pad), vbox);
++
+
+ xpad_pad_notify_has_scrollbar (pad);
+
+Only in xpad-4.0.my/src: xpad-pad-group.o
+Only in xpad-4.0.my/src: xpad-pad.o
+Only in xpad-4.0.my/src: xpad-pad-properties.o
+Only in xpad-4.0.my/src: xpad-preferences.o
+Only in xpad-4.0.my/src: xpad-session-manager.o
+Only in xpad-4.0.my/src: xpad-settings.o
+Only in xpad-4.0.my/src: xpad-text-buffer.o
+Only in xpad-4.0.my/src: xpad-text-view.o
+Only in xpad-4.0.my/src: xpad-toolbar.o
+Only in xpad-4.0.my/src: xpad-tray.o
+Only in xpad-4.0.my: stamp-h1
diff --git a/community/xpad/xpad.install b/community/xpad/xpad.install
new file mode 100644
index 000000000..b95cc069d
--- /dev/null
+++ b/community/xpad/xpad.install
@@ -0,0 +1,11 @@
+post_install() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ which xdg-icon-resource 1>/dev/null 2>/dev/null && xdg-icon-resource forceupdate || true
+}
diff --git a/community/xplanet/PKGBUILD b/community/xplanet/PKGBUILD
new file mode 100644
index 000000000..6f6aec1dd
--- /dev/null
+++ b/community/xplanet/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 8986 2010-01-23 01:24:16Z foutrelis $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=xplanet
+pkgver=1.2.1
+pkgrel=3
+pkgdesc="An Xearth wannabe"
+arch=(i686 x86_64)
+url="http://xplanet.sourceforge.net/"
+license=('GPL')
+depends=('pango' 'libungif' 'libtiff' 'perl' 'libxss')
+source=(http://kent.dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('5dca0369ca64fa3c006b616b72b5e1cf')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ sed -i '1,2i#include <stdio.h>' src/Satellite.cpp
+ sed -i '1,2i#include <stdio.h>' src/Separation.cpp
+
+ ./configure --prefix=/usr --with-freetype
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+}
diff --git a/community/xrestop/ChangeLog b/community/xrestop/ChangeLog
new file mode 100644
index 000000000..d60dd0088
--- /dev/null
+++ b/community/xrestop/ChangeLog
@@ -0,0 +1,4 @@
+
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/xrestop/PKGBUILD b/community/xrestop/PKGBUILD
new file mode 100644
index 000000000..4aa47dbd5
--- /dev/null
+++ b/community/xrestop/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 23510 2010-08-11 21:54:23Z lcarlier $
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=xrestop
+pkgver=0.4
+pkgrel=3
+pkgdesc="Uses the X-Resource extension to provide 'top' like statistics"
+arch=('i686' 'x86_64')
+url="http://freedesktop.org/wiki/Software/xrestop"
+license=('GPL')
+depends=('libxres' 'ncurses')
+source=(http://projects.o-hand.com/sources/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('d8a54596cbaf037e62b80c4585a3ca9b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
diff --git a/community/xsel/PKGBUILD b/community/xsel/PKGBUILD
new file mode 100644
index 000000000..5a71a94a2
--- /dev/null
+++ b/community/xsel/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 17449 2010-05-24 10:42:48Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xsel
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="XSel is a command-line program for getting and setting the contents of the X selection"
+arch=(i686 x86_64)
+url="http://www.vergenet.net/~conrad/software/xsel/"
+license=("GPL")
+depends=(libxext libsm)
+source=(http://www.vergenet.net/~conrad/software/xsel/download/$pkgname-$pkgver.tar.gz)
+md5sums=('75983f143ce83dc259796c6eaf85c8f5')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/community/xsensors/PKGBUILD b/community/xsensors/PKGBUILD
new file mode 100644
index 000000000..012474a55
--- /dev/null
+++ b/community/xsensors/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 21366 2010-07-16 09:09:09Z lcarlier $
+# Maintainer : Laurent Carlier <lordheavym@gmail.com>
+# Contributor: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xsensors
+pkgver=0.70
+pkgrel=2
+pkgdesc="X11 interface to lm_sensors"
+arch=('i686' 'x86_64')
+url="http://www.linuxhardware.org/xsensors/"
+license=('GPL')
+depends=('gtk2' 'lm_sensors')
+changelog=$pkgname.changelog
+source=(http://www.linuxhardware.org/xsensors/$pkgname-$pkgver.tar.gz
+ fix-deprecated-GTK_WIDGET_STATE-call.diff
+ xsensors.desktop)
+md5sums=('4f8fb83cfd03c0cc34967a73c6021531'
+ 'e5ac8e58f0dd27501234692587c01b76'
+ 'fe1369d2b61eed1a25002e2247617357')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ patch -Np1 -i ${srcdir}/fix-deprecated-GTK_WIDGET_STATE-call.diff
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ make DESTDIR="${pkgdir}" install
+ install -D ${srcdir}/xsensors.desktop \
+ ${pkgdir}/usr/share/applications/xsensors.desktop
+}
diff --git a/community/xsensors/fix-deprecated-GTK_WIDGET_STATE-call.diff b/community/xsensors/fix-deprecated-GTK_WIDGET_STATE-call.diff
new file mode 100644
index 000000000..9e95c8e38
--- /dev/null
+++ b/community/xsensors/fix-deprecated-GTK_WIDGET_STATE-call.diff
@@ -0,0 +1,39 @@
+diff -U 3 -d -r -N -- xsensors-0.70/src/gui.c xsensors-0.70-fixed/src/gui.c
+--- xsensors-0.70/src/gui.c 2010-02-03 04:55:57.000000000 +0100
++++ xsensors-0.70-fixed/src/gui.c 2010-07-14 10:51:42.161429477 +0200
+@@ -84,7 +84,7 @@
+ while ( *digit ) {
+ get_pm_location( *digit, &x, &y, &w );
+ gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
++ widget->style->fg_gc[ gtk_widget_get_state
+ (widget) ], theme, x, y + highLow,
+ pos, 0, w, 30 );
+ pos += w;
+@@ -121,7 +121,7 @@
+
+ /* Display RPM */
+ gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
++ widget->style->fg_gc[ gtk_widget_get_state
+ (widget) ], theme, 0, 120 + highLow,
+ 90, 0, 57, 30 );
+ break;
+@@ -142,7 +142,7 @@
+ else
+ x = 57;
+ gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
++ widget->style->fg_gc[ gtk_widget_get_state
+ (widget) ], theme, x, 60 + highLow,
+ 96, 0, 57, 30 );
+
+@@ -158,7 +158,7 @@
+
+ /* Display V */
+ gdk_draw_drawable( widget->window,
+- widget->style->fg_gc[ GTK_WIDGET_STATE
++ widget->style->fg_gc[ gtk_widget_get_state
+ (widget) ], theme, 114, 60 + highLow,
+ 96, 0, 57, 30 );
+
diff --git a/community/xsensors/xsensors.changelog b/community/xsensors/xsensors.changelog
new file mode 100644
index 000000000..e0c2227ca
--- /dev/null
+++ b/community/xsensors/xsensors.changelog
@@ -0,0 +1,11 @@
+2010-07-16 Laurent Carlier <lcarlier@aur.archlinux.org>
+
+ * Long overdue update to 0.70
+
+2007-12-02 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Recompiled with xsensors-0.60-libsensors-3.patch, necessary to work
+ with lm_sensors 3
+ * Added xsensors-0.60-gui-segfault.patch by DaNiMoTh, which fixes a
+ segmentation fault
+ * Cosmetic changes to PKGBUILD
diff --git a/community/xsensors/xsensors.desktop b/community/xsensors/xsensors.desktop
new file mode 100644
index 000000000..a516b5437
--- /dev/null
+++ b/community/xsensors/xsensors.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=XSensors
+GenericName=Hardware Monitor
+Comment=View hardware health
+Icon=/usr/share/pixmaps/xsensors/default.xpm
+Exec=/usr/bin/xsensors
+Terminal=false
+Categories=System;
diff --git a/community/xsettings-client/PKGBUILD b/community/xsettings-client/PKGBUILD
new file mode 100644
index 000000000..ec8a667f2
--- /dev/null
+++ b/community/xsettings-client/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 17719 2010-05-24 20:48:07Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Alois Belaska <lloyd@centrum.cz>
+
+pkgname=xsettings-client
+pkgver=0.10
+pkgrel=5
+pkgdesc="Provides cross toolkit configuration settings such as theme parameters"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://projects.o-hand.com/matchbox/sources"
+depends=(glibc)
+options=('!libtool')
+source=(http://projects.o-hand.com/matchbox/sources/optional-dependencies/Xsettings-client-$pkgver.tar.gz)
+md5sums=('c14aa9db6c097e0306dac97fb7da1add')
+
+build() {
+ cd $srcdir/Xsettings-client-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/community/xskat/PKGBUILD b/community/xskat/PKGBUILD
new file mode 100644
index 000000000..af88fc66e
--- /dev/null
+++ b/community/xskat/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 36462 2009-04-23 02:18:44Z eric $
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgname=xskat
+pkgver=4.0
+pkgrel=4
+pkgdesc="The card game Skat as defined by the official Skat Order"
+arch=('i686' 'x86_64')
+url="http://www.xskat.de/xskat.html"
+license=('custom')
+depends=('libx11')
+makedepends=('imake')
+source=(http://www.xskat.de/$pkgname-$pkgver.tar.gz xskat.desktop xskat.png)
+md5sums=('6744cea48a890771736b75083e7ea2b5'
+ 'd188d7db99e76e38ce4567bff0def99e'
+ '79770f35f6d811c73919d521ec5fa7b0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir MANPATH=/usr/share/man install install.man
+ install -Dm644 $srcdir/$pkgname-$pkgver/README \
+ $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 $srcdir/$pkgname.desktop \
+ $pkgdir/usr/share/applications/$pkgname.desktop
+ install -Dm644 $srcdir/$pkgname.png \
+ $pkgdir/usr/share/icons/$pkgname.png
+}
diff --git a/community/xskat/xskat.desktop b/community/xskat/xskat.desktop
new file mode 100644
index 000000000..7805aebb0
--- /dev/null
+++ b/community/xskat/xskat.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Encoding=UTF-8
+Name=xskat
+GenericName=german card game Skat
+GenericName[en]=german card game Skat
+Exec=xskat
+Terminal=false
+StartupNotify=false
+Categories=Game;Cardgame
+Icon=/usr/share/xskat/icons/xskat
diff --git a/community/xskat/xskat.png b/community/xskat/xskat.png
new file mode 100644
index 000000000..d73085179
--- /dev/null
+++ b/community/xskat/xskat.png
Binary files differ
diff --git a/community/xtmsplit/PKGBUILD b/community/xtmsplit/PKGBUILD
new file mode 100644
index 000000000..46bc8b101
--- /dev/null
+++ b/community/xtmsplit/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 21560 2010-07-16 16:18:53Z lcarlier $
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+
+pkgname=xtmsplit
+pkgver=0.2
+pkgrel=2
+pkgdesc="Xtremsplit-compliant file splitter/merger"
+arch=('i686' 'x86_64')
+url="http://www.software.caelistis.be/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.software.caelistis.be/$pkgname-$pkgver.tar.gz)
+md5sums=('e284694d67d5715b3a8cb46222bcc789')
+
+build() {
+ cd ${srcdir}/$pkgname
+
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd ${srcdir}/$pkgname
+
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/community/xulrunner-oss/PKGBUILD b/community/xulrunner-oss/PKGBUILD
new file mode 100644
index 000000000..b36ba73e9
--- /dev/null
+++ b/community/xulrunner-oss/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 114705 2011-03-15 15:11:28Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=xulrunner-oss
+pkgver=2.0
+_ffoxver=4.0
+pkgrel=2
+pkgdesc="Mozilla Runtime Environment compiled with OSS support"
+arch=('i686' 'x86_64')
+license=('MPL' 'GPL' 'LGPL')
+depends=('gtk2' 'gcc-libs' 'libidl2' 'mozilla-common' 'nss' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'libevent' 'sqlite3>=3.7.4' 'libnotify')
+makedepends=('zip' 'pkg-config' 'diffutils' 'python2' 'wireless_tools' 'yasm' 'mesa' 'autoconf2.13')
+url="http://wiki.mozilla.org/XUL:Xul_Runner"
+source=(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${_ffoxver}/source/firefox-${_ffoxver}.source.tar.bz2
+ mozconfig
+ mozilla-pkgconfig.patch
+ xulrunner-version.patch
+ xulrunner-omnijar.patch
+ port_gnomevfs_to_gio.patch
+ oss.patch)
+options=('!emptydirs')
+conflicts=('xulrunner')
+provides=("xulrunner=${pkgver}")
+md5sums=('3468a2c463b4fc2788ba621e4b511c30'
+ '2358a2ddd35bcdd62ff42442dfe548d9'
+ '639ea80e823543dd415b90c0ee804186'
+ 'a0236f6c3e55f60b7888d8cf137ff209'
+ 'dea8c2a57a588bf5f6198ce7b4155655'
+ '42f83468b296452fb754a81a4317ca64'
+ '81032ce49c2a5ac15d62155bcc42d3ed')
+build() {
+ cd "${srcdir}/mozilla-2.0"
+ cp "${srcdir}/mozconfig" .mozconfig
+
+ #fix libdir/sdkdir - fedora
+ patch -Np1 -i "${srcdir}/mozilla-pkgconfig.patch"
+
+ #Force installation to the same path for every version
+ patch -Np1 -i "${srcdir}/xulrunner-version.patch"
+
+ patch -Np1 -i "${srcdir}/xulrunner-omnijar.patch"
+
+ patch -Np1 -i "${srcdir}/port_gnomevfs_to_gio.patch"
+
+ patch -Np0 -i "${srcdir}/oss.patch"
+ sed -i 's/sydney_audio_alsa/sydney_audio_oss/' media/libsydneyaudio/src/Makefile.in
+ sed -i '/EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)/d' layout/build/Makefile.in
+ sed -i '/EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)/d' toolkit/library/libxul-config.mk
+
+ unset CFLAGS
+ unset CXXFLAGS
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+}
+
+package() {
+ cd "${srcdir}/mozilla-2.0"
+ make -j1 -f client.mk DESTDIR="${pkgdir}" install
+
+ #Remove included dictionaries, add symlink to system myspell path.
+ #Note: this will cause file conflicts when users have installed dictionaries in the old location
+ rm -rf "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
+ ln -sf /usr/share/myspell/dicts "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
+
+ # add xulrunner library path to ld.so.conf
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/xulrunner-2.0" > ${pkgdir}/etc/ld.so.conf.d/xulrunner.conf
+}
diff --git a/community/xulrunner-oss/mozconfig b/community/xulrunner-oss/mozconfig
new file mode 100644
index 000000000..03a352920
--- /dev/null
+++ b/community/xulrunner-oss/mozconfig
@@ -0,0 +1,56 @@
+. $topsrcdir/xulrunner/config/mozconfig
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-cairo
+ac_add_options --with-pthreads
+
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-extensions=default
+ac_add_options --enable-startup-notification
+ac_add_options --enable-pango
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --enable-smil
+ac_add_options --enable-canvas3d
+ac_add_options --enable-places
+ac_add_options --enable-shared-js
+ac_add_options --enable-url-classifier
+
+ac_add_options --enable-optimize
+ac_add_options --enable-strip
+ac_add_options --enable-install-strip
+ac_add_options --enable-jemalloc
+ac_add_options --enable-xterm-updates
+ac_add_options --enable-printing
+ac_add_options --enable-xinerama
+
+ac_add_options --disable-javaxpcom
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-xprint
+ac_add_options --disable-mochitest
+ac_add_options --disable-debug
+ac_add_options --disable-installer
+ac_add_options --disable-pedantic
+
+ac_add_options --enable-gio
+ac_add_options --disable-gnomevfs
+ac_add_options --enable-gconf
+ac_add_options --enable-libnotify
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/community/xulrunner-oss/mozilla-pkgconfig.patch b/community/xulrunner-oss/mozilla-pkgconfig.patch
new file mode 100644
index 000000000..2203efcde
--- /dev/null
+++ b/community/xulrunner-oss/mozilla-pkgconfig.patch
@@ -0,0 +1,60 @@
+diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in 2011-03-13 03:25:12.350027359 -0700
+@@ -6,5 +6,6 @@
+ Name: libxul-embedding
+ Description: Static library for version-independent embedding of the Mozilla runtime
+ Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib -lxpcomglue -ldl
+ Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
+diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul.pc.in mozilla-2.0/xulrunner/installer/libxul.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/libxul.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/libxul.pc.in 2011-03-13 03:25:28.010027359 -0700
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+ idldir=%idldir%
+
+diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
+--- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 03:25:55.570027359 -0700
+@@ -121,6 +121,7 @@
+ -e "s|%includedir%|$(includedir)|" \
+ -e "s|%idldir%|$(idldir)|" \
+ -e "s|%sdkdir%|$(sdkdir)|" \
++ -e "s|%libdir%|$(installdir)|" \
+ -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
+ -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
+ -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
+diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-13 03:26:18.676694023 -0700
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-13 03:26:41.566694025 -0700
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in mozilla-2.0/xulrunner/installer/mozilla-js.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/mozilla-js.pc.in 2011-03-13 03:27:19.680027357 -0700
+@@ -7,4 +7,4 @@
+ Version: %MOZILLA_VERSION%
+ Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
+-Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE
diff --git a/community/xulrunner-oss/oss.patch b/community/xulrunner-oss/oss.patch
new file mode 100644
index 000000000..ca79879fd
--- /dev/null
+++ b/community/xulrunner-oss/oss.patch
@@ -0,0 +1,31 @@
+--- configure.in 2011-03-16 04:58:10.640027357 -0700
++++ configure.in.orig 2011-03-16 04:58:39.313360691 -0700
+@@ -6266,20 +6266,6 @@
+ AC_DEFINE(MOZ_TREMOR)
+ fi
+
+-dnl ========================================================
+-dnl = Check alsa availability on Linux if using sydneyaudio
+-dnl ========================================================
+-
+-dnl If using sydneyaudio with Linux, ensure that the alsa library is available
+-if test -n "$MOZ_SYDNEYAUDIO"; then
+- case "$target_os" in
+-linux*)
+- PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
+- [echo "$MOZ_ALSA_PKG_ERRORS"
+- AC_MSG_ERROR([Need alsa for Ogg, Wave or WebM decoding on Linux. Disable with --disable-ogg --disable-wave --disable-webm. (On Ubuntu, you might try installing the package libasound2-dev.)])])
+- ;;
+- esac
+-fi
+
+ dnl ========================================================
+ dnl Splashscreen
+@@ -9294,7 +9280,6 @@
+ AC_SUBST(MOZ_TREMOR)
+ AC_SUBST(MOZ_WEBM)
+ AC_SUBST(MOZ_OGG)
+-AC_SUBST(MOZ_ALSA_LIBS)
+ AC_SUBST(VPX_AS)
+ AC_SUBST(VPX_ASFLAGS)
+ AC_SUBST(VPX_DASH_C_FLAG)
diff --git a/community/xulrunner-oss/port_gnomevfs_to_gio.patch b/community/xulrunner-oss/port_gnomevfs_to_gio.patch
new file mode 100644
index 000000000..797baff42
--- /dev/null
+++ b/community/xulrunner-oss/port_gnomevfs_to_gio.patch
@@ -0,0 +1,1316 @@
+diff -r 49a1b2aa43c5 extensions/gio/Makefile.in
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/extensions/gio/Makefile.in Tue Jan 11 11:17:52 2011 +0100
+@@ -0,0 +1,69 @@
++# vim:set ts=8 sw=8 sts=8 noet:
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# The contents of this file are subject to the Mozilla Public License Version
++# 1.1 (the "License"); you may not use this file except in compliance with
++# the License. You may obtain a copy of the License at
++# http://www.mozilla.org/MPL/
++#
++# Software distributed under the License is distributed on an "AS IS" basis,
++# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++# for the specific language governing rights and limitations under the
++# License.
++#
++# The Original Code is the Mozilla gnome-vfs extension.
++#
++# The Initial Developer of the Original Code is IBM Corporation.
++#
++# Portions created by IBM Corporation are Copyright (C) 2004
++# IBM Corporation. All Rights Reserved.
++#
++# Contributor(s):
++# Darin Fisher <darin@meer.net>
++# Jan Horak <jhorak@redhat.com>
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++DEPTH = ../..
++topsrcdir = @top_srcdir@
++srcdir = @srcdir@
++VPATH = @srcdir@
++
++include $(DEPTH)/config/autoconf.mk
++
++MODULE = nkgio
++LIBRARY_NAME = nkgio
++SHORT_LIBNAME = nkgio
++IS_COMPONENT = 1
++
++CPPSRCS = \
++ nsGIOProtocolHandler.cpp \
++ $(NULL)
++
++LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS)
++
++EXTRA_DSO_LDOPTS = \
++ $(XPCOM_GLUE_LDOPTS) \
++ $(NSPR_LIBS) \
++ $(MOZ_GIO_LIBS) \
++ $(NULL)
++
++# make sure this component is never statically linked into the main
++# application. this is necessary since we don't want to force users
++# to install gio in order to use the rest of mozilla ;-)
++FORCE_SHARED_LIB= 1
++
++include $(topsrcdir)/config/rules.mk
+diff -r 49a1b2aa43c5 extensions/gio/makefiles.sh
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/extensions/gio/makefiles.sh Tue Jan 11 11:17:52 2011 +0100
+@@ -0,0 +1,41 @@
++#! /bin/sh
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# The contents of this file are subject to the Mozilla Public License Version
++# 1.1 (the "License"); you may not use this file except in compliance with
++# the License. You may obtain a copy of the License at
++# http://www.mozilla.org/MPL/
++#
++# Software distributed under the License is distributed on an "AS IS" basis,
++# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++# for the specific language governing rights and limitations under the
++# License.
++#
++# The Original Code is Mozilla Build System
++#
++# The Initial Developer of the Original Code is
++# Ben Turner <mozilla@songbirdnest.com>
++#
++# Portions created by the Initial Developer are Copyright (C) 2007
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++add_makefiles "
++ extensions/gio/Makefile
++"
+diff -r 49a1b2aa43c5 extensions/gio/nsGIOProtocolHandler.cpp
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/extensions/gio/nsGIOProtocolHandler.cpp Tue Jan 11 11:17:52 2011 +0100
+@@ -0,0 +1,1163 @@
++/* vim:set ts=2 sw=2 et cindent: */
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * The contents of this file are subject to the Mozilla Public License Version
++ * 1.1 (the "License"); you may not use this file except in compliance with
++ * the License. You may obtain a copy of the License at
++ * http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an "AS IS" basis,
++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++ * for the specific language governing rights and limitations under the
++ * License.
++ *
++ * The Original Code is the Mozilla gnome-vfs extension.
++ *
++ * The Initial Developer of the Original Code is IBM Corporation.
++ *
++ * Portions created by IBM Corporation are Copyright (C) 2004
++ * IBM Corporation. All Rights Reserved.
++ *
++ * Contributor(s):
++ * Darin Fisher <darin@meer.net>
++ * Jan Horak <jhorak@redhat.com>
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++/*
++ * This code is based on original Mozilla gnome-vfs extension. It implements
++ * input stream provided by GVFS/GIO.
++*/
++#include "mozilla/ModuleUtils.h"
++#include "nsIPrefService.h"
++#include "nsIPrefBranch2.h"
++#include "nsIObserver.h"
++#include "nsThreadUtils.h"
++#include "nsProxyRelease.h"
++#include "nsIStringBundle.h"
++#include "nsIStandardURL.h"
++#include "nsMimeTypes.h"
++#include "nsNetUtil.h"
++#include "mozilla/Monitor.h"
++#include <gio/gio.h>
++
++#define MOZ_GIO_SCHEME "moz-gio"
++#define MOZ_GIO_SUPPORTED_PROTOCOLS "network.gio.supported-protocols"
++
++//-----------------------------------------------------------------------------
++
++// NSPR_LOG_MODULES=gio:5
++#ifdef PR_LOGGING
++static PRLogModuleInfo *sGIOLog;
++#define LOG(args) PR_LOG(sGIOLog, PR_LOG_DEBUG, args)
++#else
++#define LOG(args)
++#endif
++
++
++//-----------------------------------------------------------------------------
++static nsresult
++MapGIOResult(gint code)
++{
++ switch (code)
++ {
++ case G_IO_ERROR_NOT_FOUND: return NS_ERROR_FILE_NOT_FOUND; // shows error
++ case G_IO_ERROR_INVALID_ARGUMENT: return NS_ERROR_INVALID_ARG;
++ case G_IO_ERROR_NOT_SUPPORTED: return NS_ERROR_NOT_AVAILABLE;
++ case G_IO_ERROR_NO_SPACE: return NS_ERROR_FILE_NO_DEVICE_SPACE;
++ case G_IO_ERROR_READ_ONLY: return NS_ERROR_FILE_READ_ONLY;
++ case G_IO_ERROR_PERMISSION_DENIED: return NS_ERROR_FILE_ACCESS_DENIED; // wrong password/login
++ case G_IO_ERROR_CLOSED: return NS_BASE_STREAM_CLOSED; // was EOF
++ case G_IO_ERROR_NOT_DIRECTORY: return NS_ERROR_FILE_NOT_DIRECTORY;
++ case G_IO_ERROR_PENDING: return NS_ERROR_IN_PROGRESS;
++ case G_IO_ERROR_EXISTS: return NS_ERROR_FILE_ALREADY_EXISTS;
++ case G_IO_ERROR_IS_DIRECTORY: return NS_ERROR_FILE_IS_DIRECTORY;
++ case G_IO_ERROR_NOT_MOUNTED: return NS_ERROR_NOT_CONNECTED; // shows error
++ case G_IO_ERROR_HOST_NOT_FOUND: return NS_ERROR_UNKNOWN_HOST; // shows error
++ case G_IO_ERROR_CANCELLED: return NS_ERROR_ABORT;
++ case G_IO_ERROR_NOT_EMPTY: return NS_ERROR_FILE_DIR_NOT_EMPTY;
++ case G_IO_ERROR_FILENAME_TOO_LONG: return NS_ERROR_FILE_NAME_TOO_LONG;
++ case G_IO_ERROR_INVALID_FILENAME: return NS_ERROR_FILE_INVALID_PATH;
++ case G_IO_ERROR_TIMED_OUT: return NS_ERROR_NET_TIMEOUT; // shows error
++ case G_IO_ERROR_WOULD_BLOCK: return NS_BASE_STREAM_WOULD_BLOCK;
++ case G_IO_ERROR_FAILED_HANDLED: return NS_ERROR_ABORT; // Cancel on login dialog
++
++/* unhandled:
++ G_IO_ERROR_NOT_REGULAR_FILE,
++ G_IO_ERROR_NOT_SYMBOLIC_LINK,
++ G_IO_ERROR_NOT_MOUNTABLE_FILE,
++ G_IO_ERROR_TOO_MANY_LINKS,
++ G_IO_ERROR_ALREADY_MOUNTED,
++ G_IO_ERROR_CANT_CREATE_BACKUP,
++ G_IO_ERROR_WRONG_ETAG,
++ G_IO_ERROR_WOULD_RECURSE,
++ G_IO_ERROR_BUSY,
++ G_IO_ERROR_WOULD_MERGE,
++ G_IO_ERROR_TOO_MANY_OPEN_FILES
++*/
++ // Make GCC happy
++ default:
++ return NS_ERROR_FAILURE;
++ }
++
++ return NS_ERROR_FAILURE;
++}
++
++static nsresult
++MapGIOResult(GError *result)
++{
++ if (!result)
++ return NS_OK;
++ else
++ return MapGIOResult(result->code);
++}
++/** Return values for mount operation.
++ * These enums are used as mount operation return values.
++ */
++typedef enum {
++ MOUNT_OPERATION_IN_PROGRESS, /** \enum operation in progress */
++ MOUNT_OPERATION_SUCCESS, /** \enum operation successful */
++ MOUNT_OPERATION_FAILED /** \enum operation not successful */
++} MountOperationResult;
++//-----------------------------------------------------------------------------
++/**
++ * Sort function compares according to file type (directory/file)
++ * and alphabethical order
++ * @param a pointer to GFileInfo object to compare
++ * @param b pointer to GFileInfo object to compare
++ * @return -1 when first object should be before the second, 0 when equal,
++ * +1 when second object should be before the first
++ */
++static gint
++FileInfoComparator(gconstpointer a, gconstpointer b)
++{
++ GFileInfo *ia = ( GFileInfo *) a;
++ GFileInfo *ib = ( GFileInfo *) b;
++ if (g_file_info_get_file_type(ia) == G_FILE_TYPE_DIRECTORY
++ && g_file_info_get_file_type(ib) != G_FILE_TYPE_DIRECTORY)
++ return -1;
++ if (g_file_info_get_file_type(ib) == G_FILE_TYPE_DIRECTORY
++ && g_file_info_get_file_type(ia) != G_FILE_TYPE_DIRECTORY)
++ return 1;
++
++ return strcasecmp(g_file_info_get_name(ia), g_file_info_get_name(ib));
++}
++
++/* Declaration of mount callback functions */
++static void mount_enclosing_volume_finished (GObject *source_object,
++ GAsyncResult *res,
++ gpointer user_data);
++static void mount_operation_ask_password (GMountOperation *mount_op,
++ const char *message,
++ const char *default_user,
++ const char *default_domain,
++ GAskPasswordFlags flags,
++ gpointer user_data);
++//-----------------------------------------------------------------------------
++
++class nsGIOInputStream : public nsIInputStream
++{
++ public:
++ NS_DECL_ISUPPORTS
++ NS_DECL_NSIINPUTSTREAM
++
++ nsGIOInputStream(const nsCString &uriSpec)
++ : mSpec(uriSpec)
++ , mChannel(nsnull)
++ , mHandle(nsnull)
++ , mStream(nsnull)
++ , mBytesRemaining(PR_UINT32_MAX)
++ , mStatus(NS_OK)
++ , mDirList(nsnull)
++ , mDirListPtr(nsnull)
++ , mDirBufCursor(0)
++ , mDirOpen(PR_FALSE)
++ , mMonitorMountInProgress("GIOInputStream::MountFinished") { }
++
++ ~nsGIOInputStream() { Close(); }
++
++ void SetChannel(nsIChannel *channel)
++ {
++ // We need to hold an owning reference to our channel. This is done
++ // so we can access the channel's notification callbacks to acquire
++ // a reference to a nsIAuthPrompt if we need to handle an interactive
++ // mount operation.
++ //
++ // However, the channel can only be accessed on the main thread, so
++ // we have to be very careful with ownership. Moreover, it doesn't
++ // support threadsafe addref/release, so proxying is the answer.
++ //
++ // Also, it's important to note that this likely creates a reference
++ // cycle since the channel likely owns this stream. This reference
++ // cycle is broken in our Close method.
++
++ NS_ADDREF(mChannel = channel);
++ }
++ void SetMountResult(MountOperationResult result, gint error_code);
++ private:
++ nsresult DoOpen();
++ nsresult DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead);
++ nsresult SetContentTypeOfChannel(const char *contentType);
++ nsresult MountVolume();
++ nsresult DoOpenDirectory();
++ nsresult DoOpenFile(GFileInfo *info);
++ nsCString mSpec;
++ nsIChannel *mChannel; // manually refcounted
++ GFile *mHandle;
++ GFileInputStream *mStream;
++ PRUint64 mBytesRemaining;
++ nsresult mStatus;
++ GList *mDirList;
++ GList *mDirListPtr;
++ nsCString mDirBuf;
++ PRUint32 mDirBufCursor;
++ PRPackedBool mDirOpen;
++ MountOperationResult mMountRes;
++ mozilla::Monitor mMonitorMountInProgress;
++ gint mMountErrorCode;
++};
++/**
++ * Set result of mount operation and notify monitor waiting for results.
++ * This method is called in main thread as long as it is used only
++ * in mount_enclosing_volume_finished function.
++ * @param result Result of mount operation
++ */
++void
++nsGIOInputStream::SetMountResult(MountOperationResult result, gint error_code)
++{
++ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
++ mMountRes = result;
++ mMountErrorCode = error_code;
++ mon.Notify();
++}
++
++/**
++ * Start mount operation and wait in loop until it is finished. This method is
++ * called from thread which is trying to read from location.
++ */
++nsresult
++nsGIOInputStream::MountVolume() {
++ GMountOperation* mount_op = g_mount_operation_new();
++ g_signal_connect (mount_op, "ask-password",
++ G_CALLBACK (mount_operation_ask_password), mChannel);
++ mMountRes = MOUNT_OPERATION_IN_PROGRESS;
++ /* g_file_mount_enclosing_volume uses a dbus request to mount the volume.
++ Callback mount_enclosing_volume_finished is called in main thread
++ (not this thread on which this method is called). */
++ g_file_mount_enclosing_volume(mHandle,
++ G_MOUNT_MOUNT_NONE,
++ mount_op,
++ NULL,
++ mount_enclosing_volume_finished,
++ this);
++ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
++ /* Waiting for finish of mount operation thread */
++ while (mMountRes == MOUNT_OPERATION_IN_PROGRESS)
++ mon.Wait();
++
++ g_object_unref(mount_op);
++
++ if (mMountRes == MOUNT_OPERATION_FAILED) {
++ return MapGIOResult(mMountErrorCode);
++ } else {
++ return NS_OK;
++ }
++}
++
++/**
++ * Create list of infos about objects in opened directory
++ * Return: NS_OK when list obtained, otherwise error code according
++ * to failed operation.
++ */
++nsresult
++nsGIOInputStream::DoOpenDirectory()
++{
++ GError *error = NULL;
++
++ GFileEnumerator *f_enum = g_file_enumerate_children(mHandle,
++ "standard::*,time::*",
++ G_FILE_QUERY_INFO_NONE,
++ NULL,
++ &error);
++ if (!f_enum) {
++ nsresult rv = MapGIOResult(error);
++ g_warning("Cannot read from directory: %s", error->message);
++ g_error_free(error);
++ return rv;
++ }
++ // fill list of file infos
++ GFileInfo *info = g_file_enumerator_next_file(f_enum, NULL, &error);
++ while (info) {
++ mDirList = g_list_append(mDirList, info);
++ info = g_file_enumerator_next_file(f_enum, NULL, &error);
++ }
++ g_object_unref(f_enum);
++ if (error) {
++ g_warning("Error reading directory content: %s", error->message);
++ nsresult rv = MapGIOResult(error);
++ g_error_free(error);
++ return rv;
++ }
++ mDirOpen = PR_TRUE;
++
++ // Sort list of file infos by using FileInfoComparator function
++ mDirList = g_list_sort(mDirList, FileInfoComparator);
++ mDirListPtr = mDirList;
++
++ // Write base URL (make sure it ends with a '/')
++ mDirBuf.Append("300: ");
++ mDirBuf.Append(mSpec);
++ if (mSpec.get()[mSpec.Length() - 1] != '/')
++ mDirBuf.Append('/');
++ mDirBuf.Append('\n');
++
++ // Write column names
++ mDirBuf.Append("200: filename content-length last-modified file-type\n");
++
++ // Write charset (assume UTF-8)
++ // XXX is this correct?
++ mDirBuf.Append("301: UTF-8\n");
++ SetContentTypeOfChannel(APPLICATION_HTTP_INDEX_FORMAT);
++ return NS_OK;
++}
++
++/**
++ * Create file stream and set mime type for channel
++ * @param info file info used to determine mime type
++ * @return NS_OK when file stream created successfuly, error code otherwise
++ */
++nsresult
++nsGIOInputStream::DoOpenFile(GFileInfo *info)
++{
++ GError *error = NULL;
++
++ mStream = g_file_read(mHandle, NULL, &error);
++ if (!mStream) {
++ nsresult rv = MapGIOResult(error);
++ g_warning("Cannot read from file: %s", error->message);
++ g_error_free(error);
++ return rv;
++ }
++
++ const char * content_type = g_file_info_get_content_type(info);
++ if (content_type) {
++ char *mime_type = g_content_type_get_mime_type(content_type);
++ if (mime_type) {
++ if (strcmp(mime_type, APPLICATION_OCTET_STREAM) != 0) {
++ SetContentTypeOfChannel(mime_type);
++ }
++ g_free(mime_type);
++ }
++ } else {
++ g_warning("Missing content type.");
++ }
++
++ mBytesRemaining = g_file_info_get_size(info);
++ // Update the content length attribute on the channel. We do this
++ // synchronously without proxying. This hack is not as bad as it looks!
++ mChannel->SetContentLength(mBytesRemaining);
++
++ return NS_OK;
++}
++
++/**
++ * Start file open operation, mount volume when needed and according to file type
++ * create file output stream or read directory content.
++ * @return NS_OK when file or directory opened successfully, error code otherwise
++ */
++nsresult
++nsGIOInputStream::DoOpen()
++{
++ nsresult rv;
++ GError *error = NULL;
++
++ NS_ASSERTION(mHandle == nsnull, "already open");
++
++ mHandle = g_file_new_for_uri( mSpec.get() );
++
++ GFileInfo *info = g_file_query_info(mHandle,
++ "standard::*",
++ G_FILE_QUERY_INFO_NONE,
++ NULL,
++ &error);
++
++ if (error) {
++ if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_NOT_MOUNTED) {
++ // location is not yet mounted, try to mount
++ g_error_free(error);
++ if (NS_IsMainThread())
++ return NS_ERROR_NOT_CONNECTED;
++ error = NULL;
++ rv = MountVolume();
++ if (rv != NS_OK) {
++ return rv;
++ }
++ // get info again
++ info = g_file_query_info(mHandle,
++ "standard::*",
++ G_FILE_QUERY_INFO_NONE,
++ NULL,
++ &error);
++ // second try to get file info from remote files after media mount
++ if (!info) {
++ g_warning("Unable to get file info: %s", error->message);
++ rv = MapGIOResult(error);
++ g_error_free(error);
++ return rv;
++ }
++ } else {
++ g_warning("Unable to get file info: %s", error->message);
++ rv = MapGIOResult(error);
++ g_error_free(error);
++ return rv;
++ }
++ }
++ // Get file type to handle directories and file differently
++ GFileType f_type = g_file_info_get_file_type(info);
++ if (f_type == G_FILE_TYPE_DIRECTORY) {
++ // directory
++ rv = DoOpenDirectory();
++ } else if (f_type != G_FILE_TYPE_UNKNOWN) {
++ // file
++ rv = DoOpenFile(info);
++ } else {
++ g_warning("Unable to get file type.");
++ rv = NS_ERROR_FILE_NOT_FOUND;
++ }
++ if (info)
++ g_object_unref(info);
++ return rv;
++}
++
++/**
++ * Read content of file or create file list from directory
++ * @param aBuf read destination buffer
++ * @param aCount length of destination buffer
++ * @param aCountRead number of read characters
++ * @return NS_OK when read successfully, NS_BASE_STREAM_CLOSED when end of file,
++ * error code otherwise
++ */
++nsresult
++nsGIOInputStream::DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead)
++{
++ nsresult rv = NS_ERROR_NOT_AVAILABLE;
++ if (mStream) {
++ // file read
++ GError *error = NULL;
++ PRUint32 bytes_read = g_input_stream_read(G_INPUT_STREAM(mStream),
++ aBuf,
++ aCount,
++ NULL,
++ &error);
++ if (error) {
++ rv = MapGIOResult(error);
++ *aCountRead = 0;
++ g_warning("Cannot read from file: %s", error->message);
++ g_error_free(error);
++ return rv;
++ }
++ *aCountRead = bytes_read;
++ mBytesRemaining -= *aCountRead;
++ return NS_OK;
++ }
++ else if (mDirOpen) {
++ // directory read
++ while (aCount && rv != NS_BASE_STREAM_CLOSED)
++ {
++ // Copy data out of our buffer
++ PRUint32 bufLen = mDirBuf.Length() - mDirBufCursor;
++ if (bufLen)
++ {
++ PRUint32 n = PR_MIN(bufLen, aCount);
++ memcpy(aBuf, mDirBuf.get() + mDirBufCursor, n);
++ *aCountRead += n;
++ aBuf += n;
++ aCount -= n;
++ mDirBufCursor += n;
++ }
++
++ if (!mDirListPtr) // Are we at the end of the directory list?
++ {
++ rv = NS_BASE_STREAM_CLOSED;
++ }
++ else if (aCount) // Do we need more data?
++ {
++ GFileInfo *info = (GFileInfo *) mDirListPtr->data;
++
++ // Prune '.' and '..' from directory listing.
++ const char * fname = g_file_info_get_name(info);
++ if (fname && fname[0] == '.' &&
++ (fname[1] == '\0' || (fname[1] == '.' && fname[2] == '\0')))
++ {
++ mDirListPtr = mDirListPtr->next;
++ continue;
++ }
++
++ mDirBuf.Assign("201: ");
++
++ // The "filename" field
++ nsCString escName;
++ nsCOMPtr<nsINetUtil> nu = do_GetService(NS_NETUTIL_CONTRACTID);
++ if (nu && fname) {
++ nu->EscapeString(nsDependentCString(fname),
++ nsINetUtil::ESCAPE_URL_PATH, escName);
++
++ mDirBuf.Append(escName);
++ mDirBuf.Append(' ');
++ }
++
++ // The "content-length" field
++ // XXX truncates size from 64-bit to 32-bit
++ mDirBuf.AppendInt(PRInt32(g_file_info_get_size(info)));
++ mDirBuf.Append(' ');
++
++ // The "last-modified" field
++ //
++ // NSPR promises: PRTime is compatible with time_t
++ // we just need to convert from seconds to microseconds
++ GTimeVal gtime;
++ g_file_info_get_modification_time(info, &gtime);
++
++ PRExplodedTime tm;
++ PRTime pt = ((PRTime) gtime.tv_sec) * 1000000;
++ PR_ExplodeTime(pt, PR_GMTParameters, &tm);
++ {
++ char buf[64];
++ PR_FormatTimeUSEnglish(buf, sizeof(buf),
++ "%a,%%20%d%%20%b%%20%Y%%20%H:%M:%S%%20GMT ", &tm);
++ mDirBuf.Append(buf);
++ }
++
++ // The "file-type" field
++ switch (g_file_info_get_file_type(info))
++ {
++ case G_FILE_TYPE_REGULAR:
++ mDirBuf.Append("FILE ");
++ break;
++ case G_FILE_TYPE_DIRECTORY:
++ mDirBuf.Append("DIRECTORY ");
++ break;
++ case G_FILE_TYPE_SYMBOLIC_LINK:
++ mDirBuf.Append("SYMBOLIC-LINK ");
++ break;
++ default:
++ break;
++ }
++ mDirBuf.Append('\n');
++
++ mDirBufCursor = 0;
++ mDirListPtr = mDirListPtr->next;
++ }
++ }
++ }
++ return rv;
++}
++
++/**
++ * This class is used to implement SetContentTypeOfChannel.
++ */
++class nsGIOSetContentTypeEvent : public nsRunnable
++{
++ public:
++ nsGIOSetContentTypeEvent(nsIChannel *channel, const char *contentType)
++ : mChannel(channel), mContentType(contentType)
++ {
++ // stash channel reference in mChannel. no AddRef here! see note
++ // in SetContentTypeOfchannel.
++ }
++
++ NS_IMETHOD Run()
++ {
++ mChannel->SetContentType(mContentType);
++ return NS_OK;
++ }
++
++ private:
++ nsIChannel *mChannel;
++ nsCString mContentType;
++};
++
++nsresult
++nsGIOInputStream::SetContentTypeOfChannel(const char *contentType)
++{
++ // We need to proxy this call over to the main thread. We post an
++ // asynchronous event in this case so that we don't delay reading data, and
++ // we know that this is safe to do since the channel's reference will be
++ // released asynchronously as well. We trust the ordering of the main
++ // thread's event queue to protect us against memory corruption.
++
++ nsresult rv;
++ nsCOMPtr<nsIRunnable> ev =
++ new nsGIOSetContentTypeEvent(mChannel, contentType);
++ if (!ev)
++ {
++ rv = NS_ERROR_OUT_OF_MEMORY;
++ }
++ else
++ {
++ rv = NS_DispatchToMainThread(ev);
++ }
++ return rv;
++}
++
++NS_IMPL_THREADSAFE_ISUPPORTS1(nsGIOInputStream, nsIInputStream)
++
++/**
++ * Free all used memory and close stream.
++ */
++NS_IMETHODIMP
++nsGIOInputStream::Close()
++{
++ if (mStream)
++ {
++ g_object_unref(mStream);
++ mStream = nsnull;
++ }
++
++ if (mHandle)
++ {
++ g_object_unref(mHandle);
++ mHandle = nsnull;
++ }
++
++ if (mDirList)
++ {
++ // Destroy the list of GIOFileInfo objects...
++ g_list_foreach(mDirList, (GFunc) g_object_unref, nsnull);
++ g_list_free(mDirList);
++ mDirList = nsnull;
++ mDirListPtr = nsnull;
++ }
++
++ if (mChannel)
++ {
++ nsresult rv = NS_OK;
++
++ nsCOMPtr<nsIThread> thread = do_GetMainThread();
++ if (thread)
++ rv = NS_ProxyRelease(thread, mChannel);
++
++ NS_ASSERTION(thread && NS_SUCCEEDED(rv), "leaking channel reference");
++ mChannel = nsnull;
++ }
++
++ mSpec.Truncate(); // free memory
++
++ // Prevent future reads from re-opening the handle.
++ if (NS_SUCCEEDED(mStatus))
++ mStatus = NS_BASE_STREAM_CLOSED;
++
++ return NS_OK;
++}
++
++/**
++ * Return number of remaining bytes available on input
++ * @param aResult remaining bytes
++ */
++NS_IMETHODIMP
++nsGIOInputStream::Available(PRUint32 *aResult)
++{
++ if (NS_FAILED(mStatus))
++ return mStatus;
++
++ /* When remaining bytes are bigger than max PRUint32 value an aResult must
++ be set to PRUint32 maximum */
++ if (mBytesRemaining > PR_UINT32_MAX)
++ *aResult = PR_UINT32_MAX;
++ else
++ *aResult = mBytesRemaining;
++
++ return NS_OK;
++}
++
++/**
++ * Trying to read from stream. When location is not available it tries to mount it.
++ * @param aBuf buffer to put read data
++ * @param aCount length of aBuf
++ * @param aCountRead number of bytes actually read
++ */
++NS_IMETHODIMP
++nsGIOInputStream::Read(char *aBuf,
++ PRUint32 aCount,
++ PRUint32 *aCountRead)
++{
++ *aCountRead = 0;
++ // Check if file is already opened, otherwise open it
++ if (!mStream && !mDirOpen && mStatus == NS_OK) {
++ mStatus = DoOpen();
++ if (NS_FAILED(mStatus)) {
++ return mStatus;
++ }
++ }
++
++ mStatus = DoRead(aBuf, aCount, aCountRead);
++ // Check if all data has been read
++ if (mStatus == NS_BASE_STREAM_CLOSED)
++ return NS_OK;
++
++ // Check whenever any error appears while reading
++ return mStatus;
++}
++
++NS_IMETHODIMP
++nsGIOInputStream::ReadSegments(nsWriteSegmentFun aWriter,
++ void *aClosure,
++ PRUint32 aCount,
++ PRUint32 *aResult)
++{
++ // There is no way to implement this using GnomeVFS, but fortunately
++ // that doesn't matter. Because we are a blocking input stream, Necko
++ // isn't going to call our ReadSegments method.
++ NS_NOTREACHED("nsGIOInputStream::ReadSegments");
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++NS_IMETHODIMP
++nsGIOInputStream::IsNonBlocking(PRBool *aResult)
++{
++ *aResult = PR_FALSE;
++ return NS_OK;
++}
++
++//-----------------------------------------------------------------------------
++
++/**
++ * Called when finishing mount operation. Result of operation is set in
++ * nsGIOInputStream. This function is called in main thread as an async request
++ * typically from dbus.
++ * @param source_object GFile object which requested the mount
++ * @param res result object
++ * @param user_data pointer to nsGIOInputStream
++ */
++static void
++mount_enclosing_volume_finished (GObject *source_object,
++ GAsyncResult *res,
++ gpointer user_data)
++{
++ GError *error = NULL;
++
++ nsGIOInputStream* istream = static_cast<nsGIOInputStream*>(user_data);
++
++ g_file_mount_enclosing_volume_finish(G_FILE (source_object), res, &error);
++
++ if (error) {
++ g_warning("Mount failed: %s %d", error->message, error->code);
++ istream->SetMountResult(MOUNT_OPERATION_FAILED, error->code);
++ g_error_free(error);
++ } else {
++ istream->SetMountResult(MOUNT_OPERATION_SUCCESS, 0);
++ }
++}
++
++/**
++ * This function is called when username or password are requested from user.
++ * This function is called in main thread as async request from dbus.
++ * @param mount_op mount operation
++ * @param message message to show to user
++ * @param default_user preffered user
++ * @param default_domain domain name
++ * @param flags what type of information is required
++ * @param user_data nsIChannel
++ */
++static void
++mount_operation_ask_password (GMountOperation *mount_op,
++ const char *message,
++ const char *default_user,
++ const char *default_domain,
++ GAskPasswordFlags flags,
++ gpointer user_data)
++{
++ nsIChannel *channel = (nsIChannel *) user_data;
++ if (!channel) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // We can't handle request for domain
++ if (flags & G_ASK_PASSWORD_NEED_DOMAIN) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++
++ nsCOMPtr<nsIAuthPrompt> prompt;
++ NS_QueryNotificationCallbacks(channel, prompt);
++
++ // If no auth prompt, then give up. We could failover to using the
++ // WindowWatcher service, but that might defeat a consumer's purposeful
++ // attempt to disable authentication (for whatever reason).
++ if (!prompt) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // Parse out the host and port...
++ nsCOMPtr<nsIURI> uri;
++ channel->GetURI(getter_AddRefs(uri));
++ if (!uri) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++
++ nsCAutoString scheme, hostPort;
++ uri->GetScheme(scheme);
++ uri->GetHostPort(hostPort);
++
++ // It doesn't make sense for either of these strings to be empty. What kind
++ // of funky URI is this?
++ if (scheme.IsEmpty() || hostPort.IsEmpty()) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // Construct the single signon key. Altering the value of this key will
++ // cause people's remembered passwords to be forgotten. Think carefully
++ // before changing the way this key is constructed.
++ nsAutoString key, realm;
++
++ NS_ConvertUTF8toUTF16 dispHost(scheme);
++ dispHost.Append(NS_LITERAL_STRING("://"));
++ dispHost.Append(NS_ConvertUTF8toUTF16(hostPort));
++
++ key = dispHost;
++ if (*default_domain != '\0')
++ {
++ // We assume the realm string is ASCII. That might be a bogus assumption,
++ // but we have no idea what encoding GnomeVFS is using, so for now we'll
++ // limit ourselves to ISO-Latin-1. XXX What is a better solution?
++ realm.Append('"');
++ realm.Append(NS_ConvertASCIItoUTF16(default_domain));
++ realm.Append('"');
++ key.Append(' ');
++ key.Append(realm);
++ }
++ // Construct the message string...
++ //
++ // We use Necko's string bundle here. This code really should be encapsulated
++ // behind some Necko API, after all this code is based closely on the code in
++ // nsHttpChannel.cpp.
++ nsCOMPtr<nsIStringBundleService> bundleSvc =
++ do_GetService(NS_STRINGBUNDLE_CONTRACTID);
++ if (!bundleSvc) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ nsCOMPtr<nsIStringBundle> bundle;
++ bundleSvc->CreateBundle("chrome://global/locale/commonDialogs.properties",
++ getter_AddRefs(bundle));
++ if (!bundle) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ nsAutoString nsmessage;
++
++ if (flags & G_ASK_PASSWORD_NEED_PASSWORD) {
++ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
++ if (!realm.IsEmpty()) {
++ const PRUnichar *strings[] = { realm.get(), dispHost.get() };
++ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterLoginForRealm").get(),
++ strings, 2, getter_Copies(nsmessage));
++ } else {
++ const PRUnichar *strings[] = { dispHost.get() };
++ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterUserPasswordFor").get(),
++ strings, 1, getter_Copies(nsmessage));
++ }
++ } else {
++ NS_ConvertUTF8toUTF16 userName(default_user);
++ const PRUnichar *strings[] = { userName.get(), dispHost.get() };
++ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterPasswordFor").get(),
++ strings, 2, getter_Copies(nsmessage));
++ }
++ } else {
++ g_warning("Unknown mount operation request (flags: %x)", flags);
++ }
++
++ if (nsmessage.IsEmpty()) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // Prompt the user...
++ nsresult rv;
++ PRBool retval = PR_FALSE;
++ PRUnichar *user = nsnull, *pass = nsnull;
++ if (default_user) {
++ // user will be freed by PromptUsernameAndPassword
++ user = ToNewUnicode(NS_ConvertUTF8toUTF16(default_user));
++ }
++ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
++ rv = prompt->PromptUsernameAndPassword(nsnull, nsmessage.get(),
++ key.get(),
++ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
++ &user, &pass, &retval);
++ } else {
++ rv = prompt->PromptPassword(nsnull, nsmessage.get(),
++ key.get(),
++ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
++ &pass, &retval);
++ }
++ if (NS_FAILED(rv) || !retval) { // was || user == '\0' || pass == '\0'
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ /* GIO should accept UTF8 */
++ g_mount_operation_set_username(mount_op, NS_ConvertUTF16toUTF8(user).get());
++ g_mount_operation_set_password(mount_op, NS_ConvertUTF16toUTF8(pass).get());
++ nsMemory::Free(user);
++ nsMemory::Free(pass);
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_HANDLED);
++}
++
++//-----------------------------------------------------------------------------
++
++class nsGIOProtocolHandler : public nsIProtocolHandler
++ , public nsIObserver
++{
++ public:
++ NS_DECL_ISUPPORTS
++ NS_DECL_NSIPROTOCOLHANDLER
++ NS_DECL_NSIOBSERVER
++
++ nsresult Init();
++
++ private:
++ void InitSupportedProtocolsPref(nsIPrefBranch *prefs);
++ PRBool IsSupportedProtocol(const nsCString &spec);
++
++ nsCString mSupportedProtocols;
++};
++
++NS_IMPL_ISUPPORTS2(nsGIOProtocolHandler, nsIProtocolHandler, nsIObserver)
++
++nsresult
++nsGIOProtocolHandler::Init()
++{
++#ifdef PR_LOGGING
++ sGIOLog = PR_NewLogModule("gio");
++#endif
++
++ nsCOMPtr<nsIPrefBranch2> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
++ if (prefs)
++ {
++ InitSupportedProtocolsPref(prefs);
++ prefs->AddObserver(MOZ_GIO_SUPPORTED_PROTOCOLS, this, PR_FALSE);
++ }
++
++ return NS_OK;
++}
++
++void
++nsGIOProtocolHandler::InitSupportedProtocolsPref(nsIPrefBranch *prefs)
++{
++ // Get user preferences to determine which protocol is supported.
++ // Gvfs/GIO has a set of supported protocols like obex, network, archive,
++ // computer, dav, cdda, gphoto2, trash, etc. Some of these seems to be
++ // irrelevant to process by browser. By default accept only smb and sftp
++ // protocols so far.
++ nsresult rv = prefs->GetCharPref(MOZ_GIO_SUPPORTED_PROTOCOLS,
++ getter_Copies(mSupportedProtocols));
++ if (NS_SUCCEEDED(rv)) {
++ mSupportedProtocols.StripWhitespace();
++ ToLowerCase(mSupportedProtocols);
++ }
++ else
++ mSupportedProtocols.Assign("smb:,sftp:"); // use defaults
++
++ LOG(("gio: supported protocols \"%s\"\n", mSupportedProtocols.get()));
++}
++
++PRBool
++nsGIOProtocolHandler::IsSupportedProtocol(const nsCString &aSpec)
++{
++ const char *specString = aSpec.get();
++ const char *colon = strchr(specString, ':');
++ if (!colon)
++ return PR_FALSE;
++
++ PRUint32 length = colon - specString + 1;
++
++ // <scheme> + ':'
++ nsCString scheme(specString, length);
++
++ char *found = PL_strcasestr(mSupportedProtocols.get(), scheme.get());
++ if (!found)
++ return PR_FALSE;
++
++ if (found[length] != ',' && found[length] != '\0')
++ return PR_FALSE;
++
++ return PR_TRUE;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::GetScheme(nsACString &aScheme)
++{
++ aScheme.Assign(MOZ_GIO_SCHEME);
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::GetDefaultPort(PRInt32 *aDefaultPort)
++{
++ *aDefaultPort = -1;
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::GetProtocolFlags(PRUint32 *aProtocolFlags)
++{
++ // Is URI_STD true of all GnomeVFS URI types?
++ *aProtocolFlags = URI_STD | URI_DANGEROUS_TO_LOAD;
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::NewURI(const nsACString &aSpec,
++ const char *aOriginCharset,
++ nsIURI *aBaseURI,
++ nsIURI **aResult)
++{
++ const nsCString flatSpec(aSpec);
++ LOG(("gio: NewURI [spec=%s]\n", flatSpec.get()));
++
++ if (!aBaseURI)
++ {
++ // XXX Is it good to support all GIO protocols?
++ if (!IsSupportedProtocol(flatSpec))
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++
++ PRInt32 colon_location = flatSpec.FindChar(':');
++ if (colon_location <= 0)
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++
++ // Verify that GIO supports this URI scheme.
++ PRBool uri_scheme_supported = PR_FALSE;
++
++ GVfs *gvfs = g_vfs_get_default();
++
++ if (!gvfs) {
++ g_warning("Cannot get GVfs object.");
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++ }
++
++ const gchar* const * uri_schemes = g_vfs_get_supported_uri_schemes(gvfs);
++
++ while (*uri_schemes != NULL) {
++ // While flatSpec ends with ':' the uri_scheme does not. Therefore do not
++ // compare last character.
++ if (StringHead(flatSpec, colon_location).Equals(*uri_schemes)) {
++ uri_scheme_supported = PR_TRUE;
++ break;
++ }
++ uri_schemes++;
++ }
++
++ if (!uri_scheme_supported) {
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++ }
++ }
++
++ nsresult rv;
++ nsCOMPtr<nsIStandardURL> url =
++ do_CreateInstance(NS_STANDARDURL_CONTRACTID, &rv);
++ if (NS_FAILED(rv))
++ return rv;
++
++ rv = url->Init(nsIStandardURL::URLTYPE_STANDARD, -1, flatSpec,
++ aOriginCharset, aBaseURI);
++ if (NS_SUCCEEDED(rv))
++ rv = CallQueryInterface(url, aResult);
++ return rv;
++
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::NewChannel(nsIURI *aURI, nsIChannel **aResult)
++{
++ NS_ENSURE_ARG_POINTER(aURI);
++ nsresult rv;
++
++ nsCAutoString spec;
++ rv = aURI->GetSpec(spec);
++ if (NS_FAILED(rv))
++ return rv;
++
++ nsRefPtr<nsGIOInputStream> stream = new nsGIOInputStream(spec);
++ if (!stream)
++ {
++ rv = NS_ERROR_OUT_OF_MEMORY;
++ }
++ else
++ {
++ // start out assuming an unknown content-type. we'll set the content-type
++ // to something better once we open the URI.
++ rv = NS_NewInputStreamChannel(aResult,
++ aURI,
++ stream,
++ NS_LITERAL_CSTRING(UNKNOWN_CONTENT_TYPE));
++ if (NS_SUCCEEDED(rv))
++ stream->SetChannel(*aResult);
++ }
++ return rv;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::AllowPort(PRInt32 aPort,
++ const char *aScheme,
++ PRBool *aResult)
++{
++ // Don't override anything.
++ *aResult = PR_FALSE;
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::Observe(nsISupports *aSubject,
++ const char *aTopic,
++ const PRUnichar *aData)
++{
++ if (strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID) == 0) {
++ nsCOMPtr<nsIPrefBranch> prefs = do_QueryInterface(aSubject);
++ InitSupportedProtocolsPref(prefs);
++ }
++ return NS_OK;
++}
++
++//-----------------------------------------------------------------------------
++
++#define NS_GIOPROTOCOLHANDLER_CID \
++{ /* ee706783-3af8-4d19-9e84-e2ebfe213480 */ \
++ 0xee706783, \
++ 0x3af8, \
++ 0x4d19, \
++ {0x9e, 0x84, 0xe2, 0xeb, 0xfe, 0x21, 0x34, 0x80} \
++}
++
++NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGIOProtocolHandler, Init)
++NS_DEFINE_NAMED_CID(NS_GIOPROTOCOLHANDLER_CID);
++
++static const mozilla::Module::CIDEntry kVFSCIDs[] = {
++ { &kNS_GIOPROTOCOLHANDLER_CID, false, NULL, nsGIOProtocolHandlerConstructor },
++ { NULL }
++};
++
++static const mozilla::Module::ContractIDEntry kVFSContracts[] = {
++ { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX MOZ_GIO_SCHEME, &kNS_GIOPROTOCOLHANDLER_CID },
++ { NULL }
++};
++
++static const mozilla::Module kVFSModule = {
++ mozilla::Module::kVersion,
++ kVFSCIDs,
++ kVFSContracts
++};
++
++NSMODULE_DEFN(nsGIOModule) = &kVFSModule;
+diff -r 49a1b2aa43c5 netwerk/base/src/nsIOService.cpp
+--- a/netwerk/base/src/nsIOService.cpp Tue Dec 21 12:42:59 2010 +0100
++++ b/netwerk/base/src/nsIOService.cpp Tue Jan 11 11:17:52 2011 +0100
+@@ -454,6 +454,27 @@
+ }
+
+ #ifdef MOZ_X11
++ // check to see whether GVFS can handle this URI scheme. if it can
++ // create a nsIURI for the "scheme:", then we assume it has support for
++ // the requested protocol. otherwise, we failover to using the default
++ // protocol handler.
++
++ rv = CallGetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX"moz-gio",
++ result);
++ if (NS_SUCCEEDED(rv)) {
++ nsCAutoString spec(scheme);
++ spec.Append(':');
++
++ nsIURI *uri;
++ rv = (*result)->NewURI(spec, nsnull, nsnull, &uri);
++ if (NS_SUCCEEDED(rv)) {
++ NS_RELEASE(uri);
++ return rv;
++ }
++
++ NS_RELEASE(*result);
++ }
++
+ // check to see whether GnomeVFS can handle this URI scheme. if it can
+ // create a nsIURI for the "scheme:", then we assume it has support for
+ // the requested protocol. otherwise, we failover to using the default
diff --git a/community/xulrunner-oss/xulrunner-omnijar.patch b/community/xulrunner-oss/xulrunner-omnijar.patch
new file mode 100644
index 000000000..05b665afd
--- /dev/null
+++ b/community/xulrunner-oss/xulrunner-omnijar.patch
@@ -0,0 +1,1737 @@
+# HG changeset patch
+# Parent a7dea879b4b445a23186f438900562155bb39e99
+Bug 620931 part 1 - Use chrome manifest to register resource://gre-resources/
+
+diff --git a/layout/style/jar.mn b/layout/style/jar.mn
+--- a/layout/style/jar.mn
++++ b/layout/style/jar.mn
+@@ -1,8 +1,10 @@
+ toolkit.jar:
+ * res/ua.css (ua.css)
+ res/html.css (html.css)
+ res/quirk.css (quirk.css)
+ res/viewsource.css (viewsource.css)
+ * res/forms.css (forms.css)
+ res/arrow.gif (arrow.gif)
+ res/arrowd.gif (arrowd.gif)
++
++% resource gre-resources %res/
+diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
+--- a/netwerk/protocol/res/nsResProtocolHandler.cpp
++++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
+@@ -75,17 +75,16 @@ static nsResProtocolHandler *gResHandler
+ //
+ // this enables PR_LOG_ALWAYS level information and places all output in
+ // the file log.txt
+ //
+ static PRLogModuleInfo *gResLog;
+ #endif
+
+ #define kGRE NS_LITERAL_CSTRING("gre")
+-#define kGRE_RESOURCES NS_LITERAL_CSTRING("gre-resources")
+
+ //----------------------------------------------------------------------------
+ // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
+ //----------------------------------------------------------------------------
+
+ nsresult
+ nsResURL::EnsureFile()
+ {
+@@ -197,28 +196,16 @@ nsResProtocolHandler::Init()
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
+ // make resource://gre/ point to the GRE directory
+ //
+ rv = AddSpecialDir(NS_GRE_DIR, kGRE);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+- // make resource://gre-resources/ point to gre toolkit[.jar]/res
+- nsCOMPtr<nsIURI> greURI;
+- nsCOMPtr<nsIURI> greResURI;
+- GetSubstitution(kGRE, getter_AddRefs(greURI));
+-#ifdef MOZ_CHROME_FILE_FORMAT_JAR
+- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "jar:chrome/toolkit.jar!/res/");
+-#else
+- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "chrome/toolkit/res/");
+-#endif
+- rv = mIOService->NewURI(strGRE_RES_URL, nsnull, greURI,
+- getter_AddRefs(greResURI));
+- SetSubstitution(kGRE_RESOURCES, greResURI);
+ //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
+ // but once I finish multiple chrome registration I'm not sure that it is needed
+
+ // XXX dveditz: resource://pchrome/ defeats profile directory salting
+ // if web content can load it. Tread carefully.
+
+ return rv;
+ }
+@@ -242,22 +229,16 @@ nsResProtocolHandler::Init(nsIFile *aOmn
+ // these entries should be kept in sync with the normal Init function
+
+ // resource:/// points to jar:omni.jar!/
+ SetSubstitution(EmptyCString(), uri);
+
+ // resource://gre/ points to jar:omni.jar!/
+ SetSubstitution(kGRE, uri);
+
+- urlStr += "chrome/toolkit/res/";
+- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- // resource://gre-resources/ points to jar:omni.jar!/chrome/toolkit/res/
+- SetSubstitution(kGRE_RESOURCES, uri);
+ return NS_OK;
+ }
+ #endif
+
+ #ifdef MOZ_IPC
+ static PLDHashOperator
+ EnumerateSubstitution(const nsACString& aKey,
+ nsIURI* aURI,
+# HG changeset patch
+# Parent 3038cccba1a071d6b418e15442d0f2d9f3dcb11d
+Bug 620931 part 2 - When building --with-libxul-sdk, use the right preferences directory
+
+diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
+--- a/browser/locales/Makefile.in
++++ b/browser/locales/Makefile.in
+@@ -183,17 +183,17 @@ install:: $(addsuffix .xml,$(SEARCH_PLUG
+ $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/searchplugins
+
+
+ libs-%:
+ $(NSINSTALL) -D $(DIST)/install
+ @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
+ @$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+ @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+- @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
++ @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
+ @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+
+
+ repackage-win32-installer: WIN32_INSTALLER_OUT="$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe"
+ repackage-win32-installer: $(WIN32_INSTALLER_IN) $(SUBMAKEFILES)
+ @echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
+ $(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY) export
+ $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/setup.exe l10ngen/7zSD.sfx
+diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
+--- a/toolkit/mozapps/installer/packager.mk
++++ b/toolkit/mozapps/installer/packager.mk
+@@ -307,17 +307,17 @@ OMNIJAR_FILES = \
+ res \
+ defaults \
+ greprefs.js \
+ jsloader \
+ $(NULL)
+
+ NON_OMNIJAR_FILES += \
+ chrome/icons/\* \
+- defaults/pref/channel-prefs.js \
++ $(PREF_DIR)/channel-prefs.js \
+ res/cursors/\* \
+ res/MainMenu.nib/\* \
+ $(NULL)
+
+ PACK_OMNIJAR = \
+ rm -f omni.jar components/binary.manifest && \
+ grep -h '^binary-component' components/*.manifest > binary.manifest ; \
+ sed -e 's/^binary-component/\#binary-component/' components/components.manifest > components.manifest && \
+# HG changeset patch
+# Parent cd8df8030f7ad7530692bd7c4391a8009df56a02
+Bug 620931 part 3 - Allow GRE and XUL application to use omni.jar independently
+
+We now store two independent locations for an omni.jar, allowing GRE/XRE and
+XUL application to each have their own omni.jar. And since xulrunner setups
+are very independent from the XUL applications, we implement support for both
+omni.jar and non omni.jar cases in the same runtime, with the side effect of
+allowing to switch from one to the other manually without rebuilding the
+binaries.
+
+We let the mozilla::Omnijar API handle both cases, so that callers don't need
+too much work to support them.
+
+We also make the preferences service load the same set of preferences in all
+the various cases (unified vs. separate, omni.jar vs. no omni.jar).
+
+The child process launcher for IPC is modified to pass the base directories
+needed for the mozilla::Omnijar API initialization in the child process.
+
+Finally, the startupcache file name canonicalization is modified to separate
+APP and GRE resources.
+
+diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
+--- a/ipc/glue/GeckoChildProcessHost.cpp
++++ b/ipc/glue/GeckoChildProcessHost.cpp
+@@ -440,26 +440,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
+ // other end of the socketpair() from us
+
+ std::vector<std::string> childArgv;
+
+ childArgv.push_back(exePath.value());
+
+ childArgv.insert(childArgv.end(), aExtraOpts.begin(), aExtraOpts.end());
+
+-#ifdef MOZ_OMNIJAR
+ // Make sure the child process can find the omnijar
+ // See XRE_InitCommandLine in nsAppRunner.cpp
+- nsCAutoString omnijarPath;
+- if (mozilla::OmnijarPath()) {
+- mozilla::OmnijarPath()->GetNativePath(omnijarPath);
+- childArgv.push_back("-omnijar");
+- childArgv.push_back(omnijarPath.get());
++ nsCAutoString path;
++ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
++ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
++ childArgv.push_back("-grebase");
++ childArgv.push_back(path.get());
+ }
+-#endif
++ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
++ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
++ childArgv.push_back("-appbase");
++ childArgv.push_back(path.get());
++ }
+
+ childArgv.push_back(pidstring);
+
+ #if defined(MOZ_CRASHREPORTER)
+ # if defined(OS_LINUX)
+ int childCrashFd, childCrashRemapFd;
+ if (!CrashReporter::CreateNotificationPipeForChild(
+ &childCrashFd, &childCrashRemapFd))
+@@ -552,26 +555,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
+ for (std::vector<std::string>::iterator it = aExtraOpts.begin();
+ it != aExtraOpts.end();
+ ++it) {
+ cmdLine.AppendLooseValue(UTF8ToWide(*it));
+ }
+
+ cmdLine.AppendLooseValue(std::wstring(mGroupId.get()));
+
+-#ifdef MOZ_OMNIJAR
+ // Make sure the child process can find the omnijar
+ // See XRE_InitCommandLine in nsAppRunner.cpp
+- nsAutoString omnijarPath;
+- if (mozilla::OmnijarPath()) {
+- mozilla::OmnijarPath()->GetPath(omnijarPath);
+- cmdLine.AppendLooseValue(UTF8ToWide("-omnijar"));
+- cmdLine.AppendLooseValue(omnijarPath.get());
++ nsAutoString path;
++ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
++ if (file && NS_SUCCEEDED(file->GetPath(path))) {
++ cmdLine.AppendLooseValue(UTF8ToWide("-grebase"));
++ cmdLine.AppendLooseValue(path.get());
+ }
+-#endif
++ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
++ if (file && NS_SUCCEEDED(file->GetPath(path))) {
++ cmdLine.AppendLooseValue(UTF8ToWide("-appbase"));
++ cmdLine.AppendLooseValue(path.get());
++ }
+
+ cmdLine.AppendLooseValue(UTF8ToWide(pidstring));
+
+ #if defined(MOZ_CRASHREPORTER)
+ cmdLine.AppendLooseValue(
+ UTF8ToWide(CrashReporter::GetChildNotificationPipe()));
+ #endif
+
+diff --git a/js/src/xpconnect/loader/mozJSComponentLoader.cpp b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
+--- a/js/src/xpconnect/loader/mozJSComponentLoader.cpp
++++ b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
+@@ -81,16 +81,17 @@
+ #include "nsIConsoleService.h"
+ #include "nsIStorageStream.h"
+ #include "nsIStringStream.h"
+ #include "prmem.h"
+ #if defined(XP_WIN)
+ #include "nsILocalFileWin.h"
+ #endif
+ #include "xpcprivate.h"
++#include "nsIResProtocolHandler.h"
+
+ #ifdef MOZ_ENABLE_LIBXUL
+ #include "mozilla/scache/StartupCache.h"
+ #include "mozilla/scache/StartupCacheUtils.h"
+ #endif
+ #include "mozilla/Omnijar.h"
+
+ #include "jsdbgapi.h"
+@@ -621,34 +622,21 @@ mozJSComponentLoader::LoadModule(nsILoca
+
+ const mozilla::Module*
+ mozJSComponentLoader::LoadModuleFromJAR(nsILocalFile *aJarFile,
+ const nsACString &aComponentPath)
+ {
+ #if !defined(XPCONNECT_STANDALONE)
+ nsresult rv;
+
+- nsCAutoString fullSpec;
+-
+-#ifdef MOZ_OMNIJAR
+- PRBool equal;
+- rv = aJarFile->Equals(mozilla::OmnijarPath(), &equal);
+- if (NS_SUCCEEDED(rv) && equal) {
+- fullSpec = "resource://gre/";
+- } else {
+-#endif
+- nsCAutoString fileSpec;
+- NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
+- fullSpec = "jar:";
+- fullSpec += fileSpec;
+- fullSpec += "!/";
+-#ifdef MOZ_OMNIJAR
+- }
+-#endif
+-
++ nsCAutoString fullSpec, fileSpec;
++ NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
++ fullSpec = "jar:";
++ fullSpec += fileSpec;
++ fullSpec += "!/";
+ fullSpec += aComponentPath;
+
+ nsCOMPtr<nsIURI> uri;
+ rv = NS_NewURI(getter_AddRefs(uri), fullSpec);
+ if (NS_FAILED(rv))
+ return NULL;
+
+ nsAutoString hashstring;
+@@ -833,57 +821,138 @@ class JSScriptHolder
+ JSScriptHolder(JSContext *cx, JSScript *script)
+ : mCx(cx), mScript(script) {}
+ ~JSScriptHolder() { ::JS_DestroyScript(mCx, mScript); }
+ private:
+ JSContext *mCx;
+ JSScript *mScript;
+ };
+
++static const char baseName[2][5] = { "gre/", "app/" };
++
++static inline PRBool
++canonicalizeBase(nsCAutoString &spec, nsACString &out, mozilla::Omnijar::Type aType)
++{
++ nsCAutoString base;
++ nsresult rv = mozilla::Omnijar::GetURIString(aType, base);
++
++ if (NS_FAILED(rv) || !base.Length())
++ return PR_FALSE;
++
++ if (base.Compare(spec.get(), PR_FALSE, base.Length()))
++ return PR_FALSE;
++
++ out.Append("/resource/");
++ out.Append(baseName[aType]);
++ out.Append(Substring(spec, base.Length()));
++ return PR_TRUE;
++}
+ /**
+ * PathifyURI transforms mozilla .js uris into useful zip paths
+ * to make it makes it easier to manipulate startup cache entries
+ * using standard zip tools.
+ * Transformations applied:
+- * * jsloader/<scheme> prefix is used to group mozJSComponentLoader cache entries in
++ * * jsloader/ prefix is used to group mozJSComponentLoader cache entries in
+ * a top-level zip directory.
+- * * In MOZ_OMNIJAR case resource:/// and resource://gre/ URIs refer to the same path
+- * so treat both of them as resource://gre/
++ * * resource:// URIs are resolved to their corresponding file/jar URI to
++ * canonicalize resources URIs other than gre and app.
++ * * Paths under GRE or APP directory have their base path replaced with
++ * resource/gre or resource/app to avoid depending on install location.
++ * * jar:file:///path/to/file.jar!/sub/path urls are replaced with
++ * /path/to/file.jar/sub/path
+ * * .bin suffix is added to the end of the path to indicate that jsloader/ entries
+ * are binary representations of JS source.
+ * For example:
+- * resource://gre/modules/XPCOMUtils.jsm becomes
+- * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
++ * resource://gre/modules/XPCOMUtils.jsm or
++ * file://$GRE_DIR/modules/XPCOMUtils.jsm or
++ * jar:file://$GRE_DIR/omni.jar!/modules/XPCOMUtils.jsm become
++ * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
++ * file://$PROFILE_DIR/extensions/{uuid}/components/component.js becomes
++ * jsloader/$PROFILE_DIR/extensions/%7Buuid%7D/components/component.js.bin
++ * jar:file://$PROFILE_DIR/extensions/some.xpi!/components/component.js becomes
++ * jsloader/$PROFILE_DIR/extensions/some.xpi/components/component.js.bin
+ */
+ static nsresult
+ PathifyURI(nsIURI *in, nsACString &out)
+ {
+- out = "jsloader/";
+- nsCAutoString scheme;
+- nsresult rv = in->GetScheme(scheme);
+- NS_ENSURE_SUCCESS(rv, rv);
+- out.Append(scheme);
+- nsCAutoString host;
+- // OK for GetHost to fail since it's not implemented sometimes
+- in->GetHost(host);
+-#ifdef MOZ_OMNIJAR
+- if (scheme.Equals("resource") && host.Length() == 0){
+- host = "gre";
+- }
+-#endif
+- if (host.Length()) {
+- out.Append("/");
+- out.Append(host);
+- }
+- nsCAutoString path;
+- rv = in->GetPath(path);
+- NS_ENSURE_SUCCESS(rv, rv);
+- out.Append(path);
+- out.Append(".bin");
+- return NS_OK;
++ PRBool equals;
++ nsresult rv;
++ nsCOMPtr<nsIURI> uri = in;
++ nsCAutoString spec;
++
++ out = "jsloader";
++
++ // Resolve resource:// URIs. At the end of this if/else block, we
++ // have both spec and uri variables identifying the same URI.
++ if (NS_SUCCEEDED(in->SchemeIs("resource", &equals)) && equals) {
++ nsCOMPtr<nsIIOService> ioService = do_GetIOService(&rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIProtocolHandler> ph;
++ rv = ioService->GetProtocolHandler("resource", getter_AddRefs(ph));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIResProtocolHandler> irph(do_QueryInterface(ph, &rv));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = irph->ResolveURI(in, spec);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = ioService->NewURI(spec, nsnull, nsnull, getter_AddRefs(uri));
++ NS_ENSURE_SUCCESS(rv, rv);
++ } else {
++ rv = in->GetSpec(spec);
++ NS_ENSURE_SUCCESS(rv, rv);
++ }
++
++ if (!canonicalizeBase(spec, out, mozilla::Omnijar::GRE) &&
++ !canonicalizeBase(spec, out, mozilla::Omnijar::APP)) {
++ if (NS_SUCCEEDED(uri->SchemeIs("file", &equals)) && equals) {
++ nsCOMPtr<nsIFileURL> baseFileURL;
++ baseFileURL = do_QueryInterface(uri, &rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCAutoString path;
++ rv = baseFileURL->GetPath(path);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ out.Append(path);
++ } else if (NS_SUCCEEDED(uri->SchemeIs("jar", &equals)) && equals) {
++ nsCOMPtr<nsIJARURI> jarURI = do_QueryInterface(uri, &rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIURI> jarFileURI;
++ rv = jarURI->GetJARFile(getter_AddRefs(jarFileURI));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIFileURL> jarFileURL;
++ jarFileURL = do_QueryInterface(jarFileURI, &rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCAutoString path;
++ rv = jarFileURL->GetPath(path);
++ NS_ENSURE_SUCCESS(rv, rv);
++ out.Append(path);
++
++ rv = jarURI->GetJAREntry(path);
++ NS_ENSURE_SUCCESS(rv, rv);
++ out.Append("/");
++ out.Append(path);
++ } else { // Very unlikely
++ nsCAutoString spec;
++ rv = uri->GetSpec(spec);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ out.Append("/");
++ out.Append(spec);
++ }
++ }
++
++ out.Append(".bin");
++ return NS_OK;
+ }
+
+ /* static */
+ #ifdef MOZ_ENABLE_LIBXUL
+ nsresult
+ mozJSComponentLoader::ReadScript(StartupCache* cache, nsIURI *uri,
+ JSContext *cx, JSScript **script)
+ {
+diff --git a/modules/libjar/nsJAR.cpp b/modules/libjar/nsJAR.cpp
+--- a/modules/libjar/nsJAR.cpp
++++ b/modules/libjar/nsJAR.cpp
+@@ -170,26 +170,23 @@ nsJAR::Open(nsIFile* zipFile)
+ NS_ENSURE_ARG_POINTER(zipFile);
+ if (mLock) return NS_ERROR_FAILURE; // Already open!
+
+ mZipFile = zipFile;
+
+ mLock = PR_NewLock();
+ NS_ENSURE_TRUE(mLock, NS_ERROR_OUT_OF_MEMORY);
+
+-#ifdef MOZ_OMNIJAR
+ // The omnijar is special, it is opened early on and closed late
+ // this avoids reopening it
+- PRBool equals;
+- nsresult rv = zipFile->Equals(mozilla::OmnijarPath(), &equals);
+- if (NS_SUCCEEDED(rv) && equals) {
+- mZip = mozilla::OmnijarReader();
++ nsZipArchive *zip = mozilla::Omnijar::GetReader(zipFile);
++ if (zip) {
++ mZip = zip;
+ return NS_OK;
+ }
+-#endif
+ return mZip->OpenArchive(zipFile);
+ }
+
+ NS_IMETHODIMP
+ nsJAR::OpenInner(nsIZipReader *aZipReader, const char *aZipEntry)
+ {
+ NS_ENSURE_ARG_POINTER(aZipReader);
+ NS_ENSURE_ARG_POINTER(aZipEntry);
+@@ -234,23 +231,22 @@ nsJAR::Close()
+ }
+
+ mParsedManifest = PR_FALSE;
+ mManifestData.Reset();
+ mGlobalStatus = JAR_MANIFEST_NOT_PARSED;
+ mTotalItemsInManifest = 0;
+ mOuterZipEntry.Truncate(0);
+
+-#ifdef MOZ_OMNIJAR
+- if (mZip == mozilla::OmnijarReader()) {
++ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
++ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP))) {
+ mZip.forget();
+ mZip = new nsZipArchive();
+ return NS_OK;
+ }
+-#endif
+ return mZip->CloseArchive();
+ }
+
+ NS_IMETHODIMP
+ nsJAR::Test(const char *aEntryName)
+ {
+ return mZip->Test(aEntryName);
+ }
+@@ -391,22 +387,21 @@ nsJAR::GetInputStreamWithSpec(const nsAC
+ NS_IMETHODIMP
+ nsJAR::GetCertificatePrincipal(const char* aFilename, nsIPrincipal** aPrincipal)
+ {
+ //-- Parameter check
+ if (!aPrincipal)
+ return NS_ERROR_NULL_POINTER;
+ *aPrincipal = nsnull;
+
+-#ifdef MOZ_OMNIJAR
+ // Don't check signatures in the omnijar - this is only
+ // interesting for extensions/XPIs.
+- if (mZip == mozilla::OmnijarReader())
++ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
++ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)))
+ return NS_OK;
+-#endif
+
+ //-- Parse the manifest
+ nsresult rv = ParseManifest();
+ if (NS_FAILED(rv)) return rv;
+ if (mGlobalStatus == JAR_NO_MANIFEST)
+ return NS_OK;
+
+ PRInt16 requestedStatus;
+diff --git a/modules/libpref/src/nsPrefService.cpp b/modules/libpref/src/nsPrefService.cpp
+--- a/modules/libpref/src/nsPrefService.cpp
++++ b/modules/libpref/src/nsPrefService.cpp
+@@ -67,20 +67,18 @@
+
+ #include "prefapi.h"
+ #include "prefread.h"
+ #include "prefapi_private_data.h"
+ #include "PrefTuple.h"
+
+ #include "nsITimelineService.h"
+
+-#ifdef MOZ_OMNIJAR
+ #include "mozilla/Omnijar.h"
+ #include "nsZipArchive.h"
+-#endif
+
+ // Definitions
+ #define INITIAL_PREF_FILES 10
+ static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
+
+ // Prototypes
+ static nsresult openPrefFile(nsIFile* aFile);
+ static nsresult pref_InitInitialObjects(void);
+@@ -793,124 +791,144 @@ static nsresult pref_LoadPrefsInDirList(
+ pref_LoadPrefsInDir(dir, nsnull, 0);
+ }
+ }
+ }
+ }
+ return NS_OK;
+ }
+
+-//----------------------------------------------------------------------------------------
+-// Initialize default preference JavaScript buffers from
+-// appropriate TEXT resources
+-//----------------------------------------------------------------------------------------
+-static nsresult pref_InitDefaults()
+-{
+- nsCOMPtr<nsIFile> greprefsFile;
+- nsresult rv;
+-
+- rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- rv = openPrefFile(greprefsFile);
+- if (NS_FAILED(rv)) {
+- NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
+- }
+-
+- return NS_OK;
+-}
+-
+-#ifdef MOZ_OMNIJAR
+ static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
+ {
+ nsZipItemPtr<char> manifest(jarReader, name, true);
+ NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
+
+ PrefParseState ps;
+ PREF_InitParseState(&ps, PREF_ReaderCallback, NULL);
+ nsresult rv = PREF_ParseBuf(&ps, manifest, manifest.Length());
+ PREF_FinalizeParseState(&ps);
+
+ return rv;
+ }
+
+-static nsresult pref_InitAppDefaultsFromOmnijar()
+-{
+- nsresult rv;
+-
+- nsZipArchive* jarReader = mozilla::OmnijarReader();
+- if (!jarReader)
+- return pref_InitDefaults();
+-
+- rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- nsZipFind *findPtr;
+- rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- nsAutoPtr<nsZipFind> find(findPtr);
+-
+- nsTArray<nsCString> prefEntries;
+- const char *entryName;
+- PRUint16 entryNameLen;
+- while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
+- prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
+- }
+-
+- prefEntries.Sort();
+- for (PRUint32 i = prefEntries.Length(); i--; ) {
+- rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
+- if (NS_FAILED(rv))
+- NS_WARNING("Error parsing preferences.");
+- }
+-
+- return NS_OK;
+-}
+-#endif
+-
++//----------------------------------------------------------------------------------------
++// Initialize default preference JavaScript buffers from
++// appropriate TEXT resources
++//----------------------------------------------------------------------------------------
+ static nsresult pref_InitInitialObjects()
+ {
+ nsresult rv;
+
+- // first we parse the GRE default prefs. This also works if we're not using a GRE,
+-#ifdef MOZ_OMNIJAR
+- rv = pref_InitAppDefaultsFromOmnijar();
+-#else
+- rv = pref_InitDefaults();
+-#endif
+- NS_ENSURE_SUCCESS(rv, rv);
++ // In omni.jar case, we load the following prefs:
++ // - jar:$gre/omni.jar!/greprefs.js
++ // - jar:$gre/omni.jar!/defaults/pref/*.js
++ // In non omni.jar case, we load:
++ // - $gre/greprefs.js
++ //
++ // When $app == $gre, we additionally load, in all cases:
++ // - $gre/defaults/pref/*.js
++ // This is kept for bug 591866 (channel-prefs.js should not be in omni.jar).
++ // We load all files instead of channel-prefs.js only to have the same
++ // behaviour as $app != $gre.
++ //
++ // When $app != $gre, we additionally load, in omni.jar case:
++ // - jar:$app/omni.jar!/defaults/preferences/*.js
++ // - $app/defaults/preferences/*.js
++ // and in non omni.jar case:
++ // - $app/defaults/preferences/*.js
+
+- nsCOMPtr<nsIFile> defaultPrefDir;
+- // now parse the "application" default preferences
+- rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
+- NS_ENSURE_SUCCESS(rv, rv);
++ nsZipFind *findPtr;
++ nsAutoPtr<nsZipFind> find;
++ nsTArray<nsCString> prefEntries;
++ const char *entryName;
++ PRUint16 entryNameLen;
+
+- /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
+- static const char* specialFiles[] = {
++ nsZipArchive* jarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
++ if (jarReader) {
++ // Load jar:$gre/omni.jar!/greprefs.js
++ rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ // Load jar:$gre/omni.jar!/defaults/pref/*.js
++ rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ find = findPtr;
++ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
++ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
++ }
++
++ prefEntries.Sort();
++ for (PRUint32 i = prefEntries.Length(); i--; ) {
++ rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing preferences.");
++ }
++ } else {
++ // Load $gre/greprefs.js
++ nsCOMPtr<nsIFile> greprefsFile;
++ rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = openPrefFile(greprefsFile);
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
++ }
++
++ if (!mozilla::Omnijar::HasOmnijar(mozilla::Omnijar::APP)) {
++ // Load $gre/defaults/pref/*.js
++ nsCOMPtr<nsIFile> defaultPrefDir;
++
++ rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
++ static const char* specialFiles[] = {
+ #if defined(XP_MAC) || defined(XP_MACOSX)
+ "macprefs.js"
+ #elif defined(XP_WIN)
+ "winpref.js"
+ #elif defined(XP_UNIX)
+ "unix.js"
+-#if defined(_AIX)
++#if defined(VMS)
++ , "openvms.js"
++#elif defined(_AIX)
+ , "aix.js"
+ #endif
+ #elif defined(XP_OS2)
+ "os2pref.js"
++#elif defined(XP_BEOS)
++ "beos.js"
+ #endif
+- };
++ };
+
+- rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
+- if (NS_FAILED(rv)) {
+- NS_WARNING("Error parsing application default preferences.");
++ rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing application default preferences.");
++ }
++
++ // Load jar:$app/omni.jar!/defaults/preferences/*.js
++ nsZipArchive *appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
++ if (appJarReader) {
++ rv = appJarReader->FindInit("defaults/preferences/*.js$", &findPtr);
++ NS_ENSURE_SUCCESS(rv, rv);
++ find = findPtr;
++ prefEntries.Clear();
++ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
++ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
++ }
++ prefEntries.Sort();
++ for (PRUint32 i = prefEntries.Length(); i--; ) {
++ rv = pref_ReadPrefFromJar(appJarReader, prefEntries[i].get());
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing preferences.");
++ }
+ }
+
+ rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID,
+ nsnull, NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID);
+
+diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
+--- a/netwerk/protocol/res/nsResProtocolHandler.cpp
++++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
+@@ -152,97 +152,62 @@ nsResProtocolHandler::nsResProtocolHandl
+ }
+
+ nsResProtocolHandler::~nsResProtocolHandler()
+ {
+ gResHandler = nsnull;
+ }
+
+ nsresult
+-nsResProtocolHandler::AddSpecialDir(const char* aSpecialDir, const nsACString& aSubstitution)
+-{
+- nsCOMPtr<nsIFile> file;
+- nsresult rv = NS_GetSpecialDirectory(aSpecialDir, getter_AddRefs(file));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- nsCOMPtr<nsIURI> uri;
+- rv = mIOService->NewFileURI(file, getter_AddRefs(uri));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- return SetSubstitution(aSubstitution, uri);
+-}
+-
+-nsresult
+ nsResProtocolHandler::Init()
+ {
+ if (!mSubstitutions.Init(32))
+ return NS_ERROR_UNEXPECTED;
+
+ nsresult rv;
+
+ mIOService = do_GetIOService(&rv);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+-#ifdef MOZ_OMNIJAR
+- nsCOMPtr<nsIFile> omniJar(mozilla::OmnijarPath());
+- if (omniJar)
+- return Init(omniJar);
+-#endif
+-
+- // these entries should be kept in sync with the omnijar Init function
++ nsCAutoString appURI, greURI;
++ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::APP, appURI);
++ NS_ENSURE_SUCCESS(rv, rv);
++ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::GRE, greURI);
++ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
+- // make resource:/// point to the application directory
++ // make resource:/// point to the application directory or omnijar
+ //
+- rv = AddSpecialDir(NS_OS_CURRENT_PROCESS_DIR, EmptyCString());
++ nsCOMPtr<nsIURI> uri;
++ rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = SetSubstitution(EmptyCString(), uri);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
+ // make resource://gre/ point to the GRE directory
+ //
+- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
++ if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
++ rv = NS_NewURI(getter_AddRefs(uri), greURI);
++ NS_ENSURE_SUCCESS(rv, rv);
++ }
++
++ rv = SetSubstitution(kGRE, uri);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
+ // but once I finish multiple chrome registration I'm not sure that it is needed
+
+ // XXX dveditz: resource://pchrome/ defeats profile directory salting
+ // if web content can load it. Tread carefully.
+
+ return rv;
+ }
+
+-#ifdef MOZ_OMNIJAR
+-nsresult
+-nsResProtocolHandler::Init(nsIFile *aOmniJar)
+-{
+- nsresult rv;
+- nsCOMPtr<nsIURI> uri;
+- nsCAutoString omniJarSpec;
+- NS_GetURLSpecFromActualFile(aOmniJar, omniJarSpec, mIOService);
+-
+- nsCAutoString urlStr("jar:");
+- urlStr += omniJarSpec;
+- urlStr += "!/";
+-
+- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- // these entries should be kept in sync with the normal Init function
+-
+- // resource:/// points to jar:omni.jar!/
+- SetSubstitution(EmptyCString(), uri);
+-
+- // resource://gre/ points to jar:omni.jar!/
+- SetSubstitution(kGRE, uri);
+-
+- return NS_OK;
+-}
+-#endif
+-
+ #ifdef MOZ_IPC
+ static PLDHashOperator
+ EnumerateSubstitution(const nsACString& aKey,
+ nsIURI* aURI,
+ void* aArg)
+ {
+ nsTArray<ResourceMapping>* resources =
+ static_cast<nsTArray<ResourceMapping>*>(aArg);
+diff --git a/startupcache/StartupCache.cpp b/startupcache/StartupCache.cpp
+--- a/startupcache/StartupCache.cpp
++++ b/startupcache/StartupCache.cpp
+@@ -237,27 +237,36 @@ StartupCache::GetBuffer(const char* id,
+ nsZipItemPtr<char> zipItem(mArchive, id, true);
+ if (zipItem) {
+ *outbuf = zipItem.Forget();
+ *length = zipItem.Length();
+ return NS_OK;
+ }
+ }
+
+-#ifdef MOZ_OMNIJAR
+- if (mozilla::OmnijarReader()) {
++ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)) {
+ // no need to checksum omnijarred entries
+- nsZipItemPtr<char> zipItem(mozilla::OmnijarReader(), id);
++ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::APP), id);
+ if (zipItem) {
+ *outbuf = zipItem.Forget();
+ *length = zipItem.Length();
+ return NS_OK;
+ }
+ }
+-#endif
++
++ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) {
++ // no need to checksum omnijarred entries
++ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE), id);
++ if (zipItem) {
++ *outbuf = zipItem.Forget();
++ *length = zipItem.Length();
++ return NS_OK;
++ }
++ }
++
+ return NS_ERROR_NOT_AVAILABLE;
+ }
+
+ // Makes a copy of the buffer, client retains ownership of inbuf.
+ nsresult
+ StartupCache::PutBuffer(const char* id, const char* inbuf, PRUint32 len)
+ {
+ WaitOnWriteThread();
+diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
+--- a/toolkit/xre/nsAppRunner.cpp
++++ b/toolkit/xre/nsAppRunner.cpp
+@@ -3897,35 +3897,45 @@ XRE_InitCommandLine(int aArgc, char* aAr
+ CommandLine::Init(aArgc, canonArgs);
+
+ for (int i = 0; i < aArgc; ++i)
+ free(canonArgs[i]);
+ delete[] canonArgs;
+ #endif
+ #endif
+
+-#ifdef MOZ_OMNIJAR
+- const char *omnijarPath = nsnull;
+- ArgResult ar = CheckArg("omnijar", PR_FALSE, &omnijarPath);
++ const char *path = nsnull;
++ ArgResult ar = CheckArg("grebase", PR_FALSE, &path);
+ if (ar == ARG_BAD) {
+- PR_fprintf(PR_STDERR, "Error: argument -omnijar requires an omnijar path\n");
++ PR_fprintf(PR_STDERR, "Error: argument -grebase requires a path argument\n");
+ return NS_ERROR_FAILURE;
+ }
+
+- if (!omnijarPath)
++ if (!path)
+ return rv;
+
+- nsCOMPtr<nsILocalFile> omnijar;
+- rv = NS_NewNativeLocalFile(nsDependentCString(omnijarPath), PR_TRUE,
+- getter_AddRefs(omnijar));
+- if (NS_SUCCEEDED(rv))
+- mozilla::SetOmnijar(omnijar);
+-#endif
+-
+- return rv;
++ nsCOMPtr<nsILocalFile> greBase;
++ rv = XRE_GetFileFromPath(path, getter_AddRefs(greBase));
++ if (NS_FAILED(rv))
++ return rv;
++
++ ar = CheckArg("appbase", PR_FALSE, &path);
++ if (ar == ARG_BAD) {
++ PR_fprintf(PR_STDERR, "Error: argument -appbase requires a path argument\n");
++ return NS_ERROR_FAILURE;
++ }
++
++ nsCOMPtr<nsILocalFile> appBase;
++ if (path) {
++ rv = XRE_GetFileFromPath(path, getter_AddRefs(appBase));
++ if (NS_FAILED(rv))
++ return rv;
++ }
++
++ return mozilla::Omnijar::SetBase(greBase, appBase);
+ }
+
+ nsresult
+ XRE_DeinitCommandLine()
+ {
+ nsresult rv = NS_OK;
+
+ #if defined(MOZ_IPC)
+diff --git a/toolkit/xre/nsEmbedFunctions.cpp b/toolkit/xre/nsEmbedFunctions.cpp
+--- a/toolkit/xre/nsEmbedFunctions.cpp
++++ b/toolkit/xre/nsEmbedFunctions.cpp
+@@ -512,19 +512,17 @@ XRE_InitChildProcess(int aArgc,
+ }
+
+ // Run the UI event loop on the main thread.
+ uiMessageLoop.MessageLoop::Run();
+
+ // Allow ProcessChild to clean up after itself before going out of
+ // scope and being deleted
+ process->CleanUp();
+-#ifdef MOZ_OMNIJAR
+- mozilla::SetOmnijar(nsnull);
+-#endif
++ mozilla::Omnijar::SetBase(nsnull, nsnull);
+ }
+ }
+
+ NS_LogTerm();
+ return XRE_DeinitCommandLine();
+ }
+
+ MessageLoop*
+diff --git a/xpcom/build/Makefile.in b/xpcom/build/Makefile.in
+--- a/xpcom/build/Makefile.in
++++ b/xpcom/build/Makefile.in
+@@ -64,28 +64,25 @@ CSRCS = \
+ $(NULL)
+
+ CPPSRCS = \
+ $(XPCOM_GLUE_SRC_LCPPSRCS) \
+ $(XPCOM_GLUENS_SRC_LCPPSRCS) \
+ nsXPComInit.cpp \
+ nsXPCOMStrings.cpp \
+ Services.cpp \
++ Omnijar.cpp \
+ $(NULL)
+
+ ifndef MOZ_ENABLE_LIBXUL
+ ifeq (,$(filter-out WINNT WINCE OS2,$(OS_ARCH)))
+ CPPSRCS += dlldeps.cpp
+ endif
+ endif
+
+-ifdef MOZ_OMNIJAR
+-CPPSRCS += Omnijar.cpp
+-endif
+-
+ SHARED_LIBRARY_LIBS = \
+ $(DEPTH)/chrome/src/$(LIB_PREFIX)chrome_s.$(LIB_SUFFIX) \
+ ../ds/$(LIB_PREFIX)xpcomds_s.$(LIB_SUFFIX) \
+ ../io/$(LIB_PREFIX)xpcomio_s.$(LIB_SUFFIX) \
+ ../components/$(LIB_PREFIX)xpcomcomponents_s.$(LIB_SUFFIX) \
+ ../threads/$(LIB_PREFIX)xpcomthreads_s.$(LIB_SUFFIX) \
+ ../proxy/src/$(LIB_PREFIX)xpcomproxy_s.$(LIB_SUFFIX) \
+ ../base/$(LIB_PREFIX)xpcombase_s.$(LIB_SUFFIX) \
+diff --git a/xpcom/build/Omnijar.cpp b/xpcom/build/Omnijar.cpp
+--- a/xpcom/build/Omnijar.cpp
++++ b/xpcom/build/Omnijar.cpp
+@@ -16,16 +16,17 @@
+ *
+ * The Initial Developer of the Original Code is
+ * Mozilla Foundation.
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Michael Wu <mwu@mozilla.com>
++ * Mike Hommey <mh@glandium.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+@@ -33,69 +34,175 @@
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+ #include "Omnijar.h"
+
+-#include "nsILocalFile.h"
+-#include "nsXULAppAPI.h"
++#include "nsIFile.h"
+ #include "nsZipArchive.h"
++#include "nsNetUtil.h"
+
+-static nsILocalFile* sOmnijarPath = nsnull;
+-static nsZipArchive* sOmnijarReader = nsnull;
++namespace mozilla {
+
+-static void
+-SetupReader()
++nsIFile *Omnijar::sPath[2] = { nsnull, nsnull };
++PRBool Omnijar::sIsOmnijar[2] = { PR_FALSE, PR_FALSE };
++
++#ifdef MOZ_ENABLE_LIBXUL
++nsZipArchive *Omnijar::sReader[2] = { nsnull, nsnull };
++#endif
++
++static already_AddRefed<nsIFile>
++ComputePath(nsIFile *aPath, PRBool &aIsOmnijar)
+ {
+- if (!sOmnijarPath) {
+- return;
++ PRBool isDir;
++ aIsOmnijar = PR_FALSE;
++ if (!aPath || NS_FAILED(aPath->IsDirectory(&isDir)) || !isDir)
++ return nsnull;
++
++ nsCOMPtr<nsIFile> path;
++#ifdef MOZ_ENABLE_LIBXUL
++ // Search for omni.jar in the given directory
++ if (!isDir || NS_FAILED(aPath->Clone(getter_AddRefs(path))))
++ return nsnull;
++
++ if (NS_FAILED(path->AppendNative(NS_LITERAL_CSTRING("omni.jar"))))
++ return nsnull;
++
++ if (NS_FAILED(path->Exists(&aIsOmnijar)))
++ return nsnull;
++#endif
++
++ if (!aIsOmnijar && NS_FAILED(aPath->Clone(getter_AddRefs(path))))
++ return nsnull;
++
++ return path.forget();
++}
++
++nsresult
++Omnijar::SetBase(nsIFile *aGrePath, nsIFile *aAppPath)
++{
++ NS_ABORT_IF_FALSE(aGrePath || !aAppPath, "Omnijar::SetBase(NULL, something) call forbidden");
++
++#ifdef MOZ_ENABLE_LIBXUL
++ if (sReader[GRE]) {
++ sReader[GRE]->CloseArchive();
++ delete sReader[GRE];
++ }
++ if (sReader[APP]) {
++ sReader[APP]->CloseArchive();
++ delete sReader[APP];
++ }
++ sReader[APP] = sReader[GRE] = nsnull;
++#endif
++
++ nsresult rv;
++ PRBool equals;
++ if (aAppPath) {
++ rv = aAppPath->Equals(aGrePath, &equals);
++ NS_ENSURE_SUCCESS(rv, rv);
++ } else {
++ equals = PR_TRUE;
+ }
+
+- nsZipArchive* zipReader = new nsZipArchive();
+- if (!zipReader) {
+- NS_IF_RELEASE(sOmnijarPath);
+- return;
++ nsCOMPtr<nsIFile> grePath = ComputePath(aGrePath, sIsOmnijar[GRE]);
++ nsCOMPtr<nsIFile> appPath = ComputePath(equals ? nsnull : aAppPath, sIsOmnijar[APP]);
++
++ NS_IF_RELEASE(sPath[GRE]);
++ sPath[GRE] = grePath;
++ NS_IF_ADDREF(sPath[GRE]);
++
++ NS_IF_RELEASE(sPath[APP]);
++ sPath[APP] = appPath;
++ NS_IF_ADDREF(sPath[APP]);
++
++ return NS_OK;
++}
++
++already_AddRefed<nsIFile>
++Omnijar::GetBase(Type aType)
++{
++ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
++
++ if (!sIsOmnijar[aType]) {
++ NS_IF_ADDREF(sPath[aType]);
++ return sPath[aType];
+ }
+
+- if (NS_FAILED(zipReader->OpenArchive(sOmnijarPath))) {
++ nsCOMPtr<nsIFile> file, path;
++ if (NS_FAILED(sPath[aType]->Clone(getter_AddRefs(file))))
++ return nsnull;
++
++ if (NS_FAILED(file->GetParent(getter_AddRefs(path))))
++ return nsnull;
++ return path.forget();
++}
++
++#ifdef MOZ_ENABLE_LIBXUL
++nsZipArchive *
++Omnijar::GetReader(Type aType)
++{
++ if (!sIsOmnijar[aType])
++ return nsnull;
++
++ if (sReader[aType])
++ return sReader[aType];
++
++ nsZipArchive* zipReader = new nsZipArchive();
++ if (!zipReader)
++ return nsnull;
++
++ if (NS_FAILED(zipReader->OpenArchive(sPath[aType]))) {
+ delete zipReader;
+- NS_IF_RELEASE(sOmnijarPath);
+- return;
++ return nsnull;
+ }
+
+- sOmnijarReader = zipReader;
++ return (sReader[aType] = zipReader);
+ }
+
+-nsILocalFile*
+-mozilla::OmnijarPath()
++nsZipArchive *
++Omnijar::GetReader(nsIFile *aPath)
+ {
+- if (!sOmnijarReader)
+- SetupReader();
++ PRBool equals;
++ nsresult rv;
+
+- return sOmnijarPath;
++ if (sIsOmnijar[GRE]) {
++ rv = sPath[GRE]->Equals(aPath, &equals);
++ if (NS_SUCCEEDED(rv) && equals)
++ return GetReader(GRE);
++ }
++ if (sIsOmnijar[APP]) {
++ rv = sPath[APP]->Equals(aPath, &equals);
++ if (NS_SUCCEEDED(rv) && equals)
++ return GetReader(APP);
++ }
++ return nsnull;
++}
++#endif
++
++nsresult
++Omnijar::GetURIString(Type aType, nsCString &result)
++{
++ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
++
++ result = "";
++
++ if ((aType == APP) && (!sPath[APP]))
++ return NS_OK;
++
++ nsCAutoString omniJarSpec;
++ nsresult rv = NS_GetURLSpecFromActualFile(sPath[aType], omniJarSpec);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ if (sIsOmnijar[aType]) {
++ result = "jar:";
++ result += omniJarSpec;
++ result += "!";
++ } else {
++ result = omniJarSpec;
++ }
++ result += "/";
++ return NS_OK;
+ }
+
+-nsZipArchive*
+-mozilla::OmnijarReader()
+-{
+- if (!sOmnijarReader)
+- SetupReader();
+-
+- return sOmnijarReader;
+-}
+-
+-void
+-mozilla::SetOmnijar(nsILocalFile* aPath)
+-{
+- NS_IF_RELEASE(sOmnijarPath);
+- if (sOmnijarReader) {
+- sOmnijarReader->CloseArchive();
+- delete sOmnijarReader;
+- sOmnijarReader = nsnull;
+- }
+-
+- sOmnijarPath = aPath;
+- NS_IF_ADDREF(sOmnijarPath);
+-}
+-
++} /* namespace mozilla */
+diff --git a/xpcom/build/Omnijar.h b/xpcom/build/Omnijar.h
+--- a/xpcom/build/Omnijar.h
++++ b/xpcom/build/Omnijar.h
+@@ -16,16 +16,17 @@
+ *
+ * The Initial Developer of the Original Code is
+ * Mozilla Foundation.
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Michael Wu <mwu@mozilla.com>
++ * Mike Hommey <mh@glandium.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+@@ -34,29 +35,137 @@
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+ #ifndef mozilla_Omnijar_h
+ #define mozilla_Omnijar_h
+
+-class nsILocalFile;
++#include "nscore.h"
++#include "nsTArray.h"
++#include "nsCOMPtr.h"
++#include "nsString.h"
++
++class nsIFile;
+ class nsZipArchive;
+-
+-#ifdef MOZ_OMNIJAR
++class nsIURI;
+
+ namespace mozilla {
+
++#ifdef MOZ_ENABLE_LIBXUL
++#define OMNIJAR_EXPORT
++#else
++#define OMNIJAR_EXPORT NS_EXPORT
++#endif
++
++class OMNIJAR_EXPORT Omnijar {
++private:
+ /**
+- * This returns the path to the omnijar.
+- * If the omnijar isn't available, this function will return null.
+- * Callers should fallback to flat packaging if null.
++ * Store an nsIFile for either a base directory when there is no omni.jar,
++ * or omni.jar itself. We can store two paths here, one for GRE
++ * (corresponding to resource://gre/) and one for APP
++ * (corresponding to resource:/// and resource://app/), but only
++ * store one when both point to the same location (unified).
+ */
+-nsILocalFile *OmnijarPath();
+-nsZipArchive *OmnijarReader();
+-void SetOmnijar(nsILocalFile* aPath);
++static nsIFile *sPath[2];
++/**
++ * Store whether the corresponding sPath is an omni.jar or a directory
++ */
++static PRBool sIsOmnijar[2];
++
++#ifdef MOZ_ENABLE_LIBXUL
++/**
++ * Cached nsZipArchives for the corresponding sPath
++ */
++static nsZipArchive *sReader[2];
++#endif
++
++public:
++enum Type {
++ GRE = 0,
++ APP = 1
++};
++
++/**
++ * Returns whether SetBase has been called at least once with
++ * a valid nsIFile
++ */
++static PRBool
++IsInitialized()
++{
++ // GRE path is always set after initialization.
++ return sPath[0] != nsnull;
++}
++
++/**
++ * Sets the base directories for GRE and APP. APP base directory
++ * may be nsnull, in case the APP and GRE directories are the same.
++ */
++static nsresult SetBase(nsIFile *aGrePath, nsIFile *aAppPath);
++
++/**
++ * Returns an nsIFile pointing to the omni.jar file for GRE or APP.
++ * Returns nsnull when there is no corresponding omni.jar.
++ * Also returns nsnull for APP in the unified case.
++ */
++static already_AddRefed<nsIFile>
++GetPath(Type aType)
++{
++ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
++
++ if (sIsOmnijar[aType]) {
++ NS_IF_ADDREF(sPath[aType]);
++ return sPath[aType];
++ }
++ return nsnull;
++}
++
++/**
++ * Returns whether GRE or APP use an omni.jar. Returns PR_False when
++ * using an omni.jar in the unified case.
++ */
++static PRBool
++HasOmnijar(Type aType)
++{
++ return sIsOmnijar[aType];
++}
++
++/**
++ * Returns the base directory for GRE or APP. In the unified case,
++ * returns nsnull for APP.
++ */
++static already_AddRefed<nsIFile> GetBase(Type aType);
++
++/**
++ * Returns a nsZipArchive pointer for the omni.jar file for GRE or
++ * APP. Returns nsnull in the same cases GetPath() would.
++ */
++#ifdef MOZ_ENABLE_LIBXUL
++static nsZipArchive *GetReader(Type aType);
++#else
++static nsZipArchive *GetReader(Type aType) { return nsnull; }
++#endif
++
++/**
++ * Returns a nsZipArchive pointer for the given path IAOI the given
++ * path is the omni.jar for either GRE or APP.
++ */
++#ifdef MOZ_ENABLE_LIBXUL
++static nsZipArchive *GetReader(nsIFile *aPath);
++#else
++static nsZipArchive *GetReader(nsIFile *aPath) { return nsnull; }
++#endif
++
++/**
++ * Returns the URI string corresponding to the omni.jar or directory
++ * for GRE or APP. i.e. jar:/path/to/omni.jar!/ for omni.jar and
++ * /path/to/base/dir/ otherwise. Returns an empty string for APP in
++ * the unified case.
++ * The returned URI is guaranteed to end with a slash.
++ */
++static nsresult GetURIString(Type aType, nsCString &result);
++
++}; /* class Omnijar */
+
+ } /* namespace mozilla */
+
+-#endif /* MOZ_OMNIJAR */
+-
+ #endif /* mozilla_Omnijar_h */
+diff --git a/xpcom/build/nsXPComInit.cpp b/xpcom/build/nsXPComInit.cpp
+--- a/xpcom/build/nsXPComInit.cpp
++++ b/xpcom/build/nsXPComInit.cpp
+@@ -462,35 +462,35 @@ NS_InitXPCOM2(nsIServiceManager* *result
+ nsDirectoryService::gService->Set(NS_XPCOM_LIBRARY_FILE, xpcomLib);
+ }
+
+ if (appFileLocationProvider) {
+ rv = nsDirectoryService::gService->RegisterProvider(appFileLocationProvider);
+ if (NS_FAILED(rv)) return rv;
+ }
+
+-#ifdef MOZ_OMNIJAR
+ NS_TIME_FUNCTION_MARK("Next: Omnijar init");
+
+- if (!mozilla::OmnijarPath()) {
+- nsCOMPtr<nsILocalFile> omnijar;
++ if (!mozilla::Omnijar::IsInitialized()) {
++ nsCOMPtr<nsILocalFile> greDir, appDir;
+ nsCOMPtr<nsIFile> file;
+
+- rv = NS_ERROR_FAILURE;
+ nsDirectoryService::gService->Get(NS_GRE_DIR,
+ NS_GET_IID(nsIFile),
+ getter_AddRefs(file));
+- if (file)
+- rv = file->Append(NS_LITERAL_STRING("omni.jar"));
+- if (NS_SUCCEEDED(rv))
+- omnijar = do_QueryInterface(file);
+- if (NS_SUCCEEDED(rv))
+- mozilla::SetOmnijar(omnijar);
++ greDir = do_QueryInterface(file);
++
++ nsDirectoryService::gService->Get(NS_XPCOM_CURRENT_PROCESS_DIR,
++ NS_GET_IID(nsIFile),
++ getter_AddRefs(file));
++ appDir = do_QueryInterface(file);
++
++ rv = mozilla::Omnijar::SetBase(greDir, appDir);
++ NS_ENSURE_SUCCESS(rv, rv);
+ }
+-#endif
+
+ #ifdef MOZ_IPC
+ if ((sCommandLineWasInitialized = !CommandLine::IsInitialized())) {
+ NS_TIME_FUNCTION_MARK("Next: IPC command line init");
+
+ #ifdef OS_WIN
+ CommandLine::Init(0, nsnull);
+ #else
+@@ -769,18 +769,16 @@ ShutdownXPCOM(nsIServiceManager* servMgr
+ sCommandLineWasInitialized = false;
+ }
+ if (sExitManager) {
+ delete sExitManager;
+ sExitManager = nsnull;
+ }
+ #endif
+
+-#ifdef MOZ_OMNIJAR
+- mozilla::SetOmnijar(nsnull);
+-#endif
++ mozilla::Omnijar::SetBase(nsnull, nsnull);
+
+ NS_LogTerm();
+
+ return NS_OK;
+ }
+
+ } // namespace mozilla
+diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp
+--- a/xpcom/components/nsComponentManager.cpp
++++ b/xpcom/components/nsComponentManager.cpp
+@@ -175,18 +175,16 @@ NS_DEFINE_CID(kCategoryManagerCID, NS_CA
+ #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) \
+ NS_TIME_FUNCTION_MIN_FMT(5, "%s (line %d) (contractid: %s)", MOZ_FUNCTION_NAME, \
+ __LINE__, (cid))
+ #else
+ #define COMPMGR_TIME_FUNCTION_CID(cid) do {} while (0)
+ #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) do {} while (0)
+ #endif
+
+-#define kOMNIJAR_PREFIX NS_LITERAL_CSTRING("resource:///")
+-
+ nsresult
+ nsGetServiceFromCategory::operator()(const nsIID& aIID, void** aInstancePtr) const
+ {
+ nsresult rv;
+ nsXPIDLCString value;
+ nsCOMPtr<nsICategoryManager> catman;
+ nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager;
+ if (!compMgr) {
+@@ -390,47 +388,44 @@ nsresult nsComponentManagerImpl::Init()
+
+ nsCategoryManager::GetSingleton()->SuppressNotifications(true);
+
+ RegisterModule(&kXPCOMModule, NULL);
+
+ for (PRUint32 i = 0; i < sStaticModules->Length(); ++i)
+ RegisterModule((*sStaticModules)[i], NULL);
+
+-#ifdef MOZ_OMNIJAR
+- if (mozilla::OmnijarPath()) {
+- nsCOMPtr<nsIZipReader> omnijarReader = new nsJAR();
+- rv = omnijarReader->Open(mozilla::OmnijarPath());
+- if (NS_SUCCEEDED(rv))
+- RegisterJarManifest(omnijarReader, "chrome.manifest", false);
++ nsCOMPtr<nsIFile> appOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::APP);
++ if (appOmnijar) {
++ cl = sModuleLocations->InsertElementAt(1); // Insert after greDir
++ cl->type = NS_COMPONENT_LOCATION;
++ cl->location = do_QueryInterface(appOmnijar);
++ cl->jar = true;
+ }
+-#endif
++ nsCOMPtr<nsIFile> greOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::GRE);
++ if (greOmnijar) {
++ cl = sModuleLocations->InsertElementAt(0);
++ cl->type = NS_COMPONENT_LOCATION;
++ cl->location = do_QueryInterface(greOmnijar);
++ cl->jar = true;
++ }
+
+ for (PRUint32 i = 0; i < sModuleLocations->Length(); ++i) {
+ ComponentLocation& l = sModuleLocations->ElementAt(i);
+ if (!l.jar) {
+ RegisterManifestFile(l.type, l.location, false);
+ continue;
+ }
+
+ nsCOMPtr<nsIZipReader> reader = do_CreateInstance(kZipReaderCID, &rv);
+ rv = reader->Open(l.location);
+ if (NS_SUCCEEDED(rv))
+ RegisterJarManifest(reader, "chrome.manifest", false);
+ }
+
+-#ifdef MOZ_OMNIJAR
+- if (mozilla::OmnijarPath()) {
+- cl = sModuleLocations->InsertElementAt(0);
+- cl->type = NS_COMPONENT_LOCATION;
+- cl->location = mozilla::OmnijarPath();
+- cl->jar = true;
+- }
+-#endif
+-
+ nsCategoryManager::GetSingleton()->SuppressNotifications(false);
+
+ mStatus = NORMAL;
+
+ return NS_OK;
+ }
+
+ void
+# HG changeset patch
+# Parent ff1b810f78226d7f4010909d3cde05a57fdcf20c
+Bug 620931 part 4 - Fix resource://app/ to always point to the same as resource:///
+
+diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
+--- a/netwerk/protocol/res/nsResProtocolHandler.cpp
++++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
+@@ -74,16 +74,17 @@ static nsResProtocolHandler *gResHandler
+ // set NSPR_LOG_FILE=log.txt
+ //
+ // this enables PR_LOG_ALWAYS level information and places all output in
+ // the file log.txt
+ //
+ static PRLogModuleInfo *gResLog;
+ #endif
+
++#define kAPP NS_LITERAL_CSTRING("app")
+ #define kGRE NS_LITERAL_CSTRING("gre")
+
+ //----------------------------------------------------------------------------
+ // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
+ //----------------------------------------------------------------------------
+
+ nsresult
+ nsResURL::EnsureFile()
+@@ -179,16 +180,22 @@ nsResProtocolHandler::Init()
+ nsCOMPtr<nsIURI> uri;
+ rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = SetSubstitution(EmptyCString(), uri);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
++ // make resource://app/ point to the application directory or omnijar
++ //
++ rv = SetSubstitution(kAPP, uri);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ //
+ // make resource://gre/ point to the GRE directory
+ //
+ if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
+ rv = NS_NewURI(getter_AddRefs(uri), greURI);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
+
+ rv = SetSubstitution(kGRE, uri);
+diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
+--- a/toolkit/xre/nsXREDirProvider.cpp
++++ b/toolkit/xre/nsXREDirProvider.cpp
+@@ -300,19 +300,16 @@ nsXREDirProvider::GetFile(const char* aP
+ }
+ }
+ else if (!strcmp(aProperty, XRE_EXECUTABLE_FILE) && gArgv[0]) {
+ nsCOMPtr<nsILocalFile> lf;
+ rv = XRE_GetBinaryPath(gArgv[0], getter_AddRefs(lf));
+ if (NS_SUCCEEDED(rv))
+ file = lf;
+ }
+- else if (!strcmp(aProperty, "resource:app")) {
+- rv = GetAppDir()->Clone(getter_AddRefs(file));
+- }
+
+ else if (!strcmp(aProperty, NS_APP_PROFILE_DIR_STARTUP) && mProfileDir) {
+ return mProfileDir->Clone(aFile);
+ }
+ else if (!strcmp(aProperty, NS_APP_PROFILE_LOCAL_DIR_STARTUP)) {
+ if (mProfileLocalDir)
+ return mProfileLocalDir->Clone(aFile);
+
+# HG changeset patch
+# Parent 7d2228db71a299afca60babff632a967d2d6c456
+Bug 620931 part 5 - Enable omni.jar by default on xulrunner
+
+diff --git a/xulrunner/confvars.sh b/xulrunner/confvars.sh
+--- a/xulrunner/confvars.sh
++++ b/xulrunner/confvars.sh
+@@ -36,15 +36,16 @@
+ #
+ # ***** END LICENSE BLOCK *****
+
+ MOZ_APP_NAME=xulrunner
+ MOZ_APP_DISPLAYNAME=XULRunner
+ MOZ_UPDATER=1
+ MOZ_XULRUNNER=1
+ MOZ_ENABLE_LIBXUL=1
++MOZ_CHROME_FILE_FORMAT=omni
+ MOZ_STATIC_BUILD_UNSUPPORTED=1
+ MOZ_APP_VERSION=$MOZILLA_VERSION
+ if test "$MOZ_STORAGE"; then
+ MOZ_PLACES=1
+ fi
+ MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
+ MOZ_URL_CLASSIFIER=1
diff --git a/community/xulrunner-oss/xulrunner-version.patch b/community/xulrunner-oss/xulrunner-version.patch
new file mode 100644
index 000000000..8e81b23ea
--- /dev/null
+++ b/community/xulrunner-oss/xulrunner-version.patch
@@ -0,0 +1,12 @@
+diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
+--- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 01:58:19.663360705 -0800
+@@ -44,6 +44,8 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
++MOZ_APP_VERSION="2.0"
++
+ NO_PKG_FILES = \
+ xulrunner-config \
+ regchrome* \
diff --git a/community/xvidcap/PKGBUILD b/community/xvidcap/PKGBUILD
new file mode 100644
index 000000000..476d1d192
--- /dev/null
+++ b/community/xvidcap/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 63169 2010-01-15 14:58:38Z giovanni $
+# Maintainer: Thorsten Töpper <atsutane at freethoughts dot de>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: red_over_blue, Abaddon <kukububu@go2.pl>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=xvidcap
+pkgver=1.1.7
+pkgrel=3
+pkgdesc="A small tool to capture things going on on an X-Windows display to either individual frames or an MPEG video"
+arch=("i686" "x86_64")
+license=('GPL')
+url="http://xvidcap.sourceforge.net/"
+depends=('dbus-glib' 'lame' 'libxmu' 'libglade' 'ffmpeg' 'dbus')
+makedepends=('perlxml' 'rarian')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ 'xextproto-7.1.1.patch'
+ 'xvidcap-ffmpeg.patch')
+md5sums=('b39a682d3ef9fcbf424af771936780e2'
+ 'fbde2b076c5ea05723883b87f3ef2a65'
+ 'f18817da1c0dada05fa791ae53193b2c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 -i ${srcdir}/xextproto-7.1.1.patch
+ patch -Np0 -i ${srcdir}/xvidcap-ffmpeg.patch || return 1
+
+ ./configure --prefix=/usr \
+ --with-x \
+ --with-gtk2 \
+ --enable-libmp3lame \
+ --without-forced-embedded-ffmpeg
+ make || return 1
+ make prefix=${pkgdir}/usr install || return 1
+}
+
diff --git a/community/xvidcap/xextproto-7.1.1.patch b/community/xvidcap/xextproto-7.1.1.patch
new file mode 100644
index 000000000..b65da0ee7
--- /dev/null
+++ b/community/xvidcap/xextproto-7.1.1.patch
@@ -0,0 +1,11 @@
+--- xvidcap-1.1.7/src/capture.c.orig 2008-05-26 02:01:53.000000000 +0400
++++ xvidcap-1.1.7/src/capture.c 2009-12-12 00:12:31.368260518 +0300
+@@ -65,7 +65,7 @@
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
+ #include <X11/extensions/XShm.h>
+-#include <X11/extensions/shmstr.h>
++#include <X11/extensions/shmproto.h>
+ #ifndef SOLARIS
+ #include <X11/extensions/extutil.h>
+ #endif // SOLARIS
diff --git a/community/xvidcap/xvidcap-ffmpeg.patch b/community/xvidcap/xvidcap-ffmpeg.patch
new file mode 100644
index 000000000..3a74bf508
--- /dev/null
+++ b/community/xvidcap/xvidcap-ffmpeg.patch
@@ -0,0 +1,105 @@
+Index: src/codecs.c
+===================================================================
+--- src/codecs.c (revision 319)
++++ src/codecs.c (working copy)
+@@ -43,8 +43,8 @@
+ #include <locale.h>
+
+ #ifdef USE_FFMPEG
+-#include <ffmpeg/avcodec.h>
+-#include <ffmpeg/avformat.h>
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
+ #endif // USE_FFMPEG
+
+ #include "app_data.h"
+Index: src/xtoffmpeg.c
+===================================================================
+--- src/xtoffmpeg.c (revision 319)
++++ src/xtoffmpeg.c (working copy)
+@@ -56,13 +56,13 @@
+ #include "xvidcap-intl.h"
+
+ // ffmpeg stuff
+-#include <ffmpeg/avcodec.h>
+-#include <ffmpeg/avformat.h>
+-#include <ffmpeg/avdevice.h>
++#include <libavcodec/avcodec.h>
++#include <libavformat/avformat.h>
++#include <libavdevice/avdevice.h>
+ //#include <ffmpeg/dsputil.h>
+-#include <ffmpeg/swscale.h>
+-#include <ffmpeg/rgb2rgb.h>
+-#include <ffmpeg/fifo.h>
++#include <libswscale/swscale.h>
++#include <libavutil/pixfmt.h>
++#include <libavutil/fifo.h>
+ #define swscale_isRGB(x) ((x)==PIX_FMT_BGR32 || (x)==PIX_FMT_RGB24 \
+ || (x)==PIX_FMT_RGB565 || (x)==PIX_FMT_RGB555 \
+ || (x)==PIX_FMT_RGB8 || (x)==PIX_FMT_RGB4 \
+@@ -96,9 +96,10 @@
+ || (x)==PIX_FMT_YUVJ420P || (x)==PIX_FMT_YUVJ422P \
+ || (x)==PIX_FMT_YUVJ444P)
+
+-#define PIX_FMT_ARGB32 PIX_FMT_RGBA32 /* this is just my personal
+- * convenience */
++#define PIX_FMT_ARGB32 PIX_FMT_RGB32 /* this is just my personal
++ * convenience */
+
++
+ /*
+ * file globals
+ */
+@@ -1248,7 +1249,11 @@
+ st->codec->flags |= CODEC_FLAG2_FAST;
+ // there is no trellis quantiser in libav* for mjpeg
+ if (st->codec->codec_id != CODEC_ID_MJPEG)
++#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+ st->codec->flags |= CODEC_FLAG_TRELLIS_QUANT;
++#else
++ st->codec->trellis = 1;
++#endif
+ st->codec->flags &= ~CODEC_FLAG_OBMC;
+ // some formats want stream headers to be seperate
+ if (oc->oformat->flags & AVFMT_GLOBALHEADER)
+@@ -1498,11 +1503,10 @@
+ // add the video stream and initialize the codecs
+ //
+ // prepare stream
+- out_st =
+- add_video_stream (output_file, image,
+- (input_pixfmt ==
+- PIX_FMT_PAL8 ? PIX_FMT_RGB24 : input_pixfmt),
+- xvc_codecs[job->targetCodec].ffmpeg_id, job);
++ fprintf(stderr, "The current pixfmt is %d, but the choosen one is %d\n", input_pixfmt, (input_pixfmt == PIX_FMT_PAL8 ? PIX_FMT_RGB24 : input_pixfmt));
++ out_st = add_video_stream (output_file, image,
++ (input_pixfmt == PIX_FMT_PAL8 ? PIX_FMT_RGB24 : input_pixfmt),
++ xvc_codecs[job->targetCodec].ffmpeg_id, job);
+
+ // FIXME: set params
+ // memset (p_fParams, 0, sizeof(*p_fParams));
+Index: src/main.c
+===================================================================
+--- src/main.c (revision 319)
++++ src/main.c (working copy)
+@@ -45,7 +45,7 @@
+ #include <locale.h>
+
+ #ifdef USE_FFMPEG
+-#include <ffmpeg/avcodec.h>
++#include <libavcodec/avcodec.h>
+ #endif // USE_FFMPEG
+
+ #include "control.h"
+@@ -217,9 +217,6 @@
+
+ if (app)
+ xvc_appdata_free (app);
+-#ifdef USE_FFMPEG
+- av_free_static ();
+-#endif
+ }
+
+ /**
+
+
diff --git a/community/xvkbd/PKGBUILD b/community/xvkbd/PKGBUILD
new file mode 100644
index 000000000..b6384fd1d
--- /dev/null
+++ b/community/xvkbd/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 21233 2010-07-15 11:20:17Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Benjamin Andresen <benny@klapmuetz.org>
+# Contributor: Mikko Seppдlд <t-r-a-y@mbnet.fi>
+
+pkgname=xvkbd
+pkgver=3.2
+pkgrel=1
+pkgdesc="virtual (graphical) keyboard program for X Window System"
+arch=('i686' 'x86_64')
+url="http://homepage3.nifty.com/tsato/xvkbd/"
+license=('GPL')
+depends=('libxmu' 'xaw3d' 'glibc' 'libxt' 'libxtst' 'libxp')
+makedepends=('imake')
+source=(http://homepage3.nifty.com/tsato/xvkbd/xvkbd-$pkgver.tar.gz)
+md5sums=('1bce8d6c27e6e7df92ec09b414f82dad')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+# patch xvkbd.c <<EOF
+#diff xvkbd-2.8/xvkbd.c xvkbd-2.8.my/xvkbd.c
+#45a46
+#> #include <X11/extensions/XKB.h>
+#1988a1990
+#> XkbLockGroup(dpy, XkbUseCoreKbd, (shift_state & altgr_mask) ? 1 : 0);
+#EOF
+
+ xmkmf
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ # fix
+ rm -f $pkgdir/usr/lib/X11/app-defaults && \
+ mkdir -p $pkgdir/usr/lib/X11 && \
+ mv $pkgdir/etc/X11/app-defaults $pkgdir/usr/lib/X11/ && \
+ rm -rf $pkgdir/etc/
+}
diff --git a/community/xwax/PKGBUILD b/community/xwax/PKGBUILD
new file mode 100644
index 000000000..aa9d8f971
--- /dev/null
+++ b/community/xwax/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 32173 2010-11-11 09:30:57Z lfleischer $
+# Maintainer: Lukas Fleischer <archlinux at cryptocrack dot de>
+# Contributor: sputnick <gilles DOT quenot AT gmail DOT com>
+
+pkgname=xwax
+pkgver=0.8
+pkgrel=1
+pkgdesc="Open-source vinyl emulation software for Linux."
+arch=('i686' 'x86_64')
+url='http://www.xwax.co.uk/'
+license=('GPL')
+depends=('alsa-lib' 'sdl_ttf' 'ttf-dejavu')
+optdepends=('vorbis-tools: for OGG import'
+ 'faad2: for AAC import'
+ 'cdparanoia: for CD import'
+ 'mpg123: for MP3 import'
+ 'flac: for FLAC import'
+ 'ffmpeg: for video fallback import')
+source=("http://www.xwax.co.uk/releases/${pkgname}-${pkgver}.tar.gz")
+md5sums=('e015363e96412d0e6702596cfa6a3485')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Patch "rig.c" to use Arch Linux's default rtprio value
+ sed -i 's/^#define REALTIME_PRIORITY 80/#define REALTIME_PRIORITY 65/' rig.c
+
+ # Patch installation path for "xwax-scan" and "xwax-import"
+ sed -i "s#^EXECDIR = \$(PREFIX)/libexec#EXECDIR = \$(PREFIX)/share/${pkgname}#" Makefile
+
+ ./configure --enable-alsa --prefix /usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX="${pkgdir}/usr" install
+}
diff --git a/community/xxkb/PKGBUILD b/community/xxkb/PKGBUILD
new file mode 100644
index 000000000..c093c1b81
--- /dev/null
+++ b/community/xxkb/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 1001 2009-08-11 09:14:06Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=xxkb
+pkgver=1.11
+pkgrel=3
+pkgdesc="keyboard layout switcher/indicator"
+arch=(i686 x86_64)
+url="http://sf.net/projects/xxkb/"
+license=(PerlArtistic)
+depends=(libxpm)
+makedepends=(patch imake)
+source=(http://downloads.sourceforge.net/xxkb/xxkb-$pkgver-src.tar.gz
+ XXkb \
+ en22.xpm \
+ ru22.xpm)
+md5sums=('c2e5c7f3285033f0e26b358ef95a7c89'
+ 'f181b7a017d3d2524ecf10638317d341'
+ '649c6d378fe12853d457b768bd273dc5'
+ 'f1692f0be5fc697b3b792d0098bdb42f')
+
+build() {
+ cd $srcdir/xxkb
+ xmkmf
+ make PROJECTROOT=/usr PIXMAPDIR=/usr/share/$pkgname LOCAL_LIBRARIES='-lXext -lXt -lXpm' || return 1
+
+ install -d $pkgdir/usr/bin
+ install -d $pkgdir/usr/share/$pkgname
+ install -d $pkgdir/usr/man/man1
+ install -d $pkgdir/usr/share/X11/app-defaults
+
+ install -m 0755 xxkb $pkgdir/usr/bin && \
+ install -m 0644 ../XXkb $pkgdir/usr/share/X11/app-defaults/XXkb && \
+ install -m 0644 pixmaps/*.xpm $pkgdir/usr/share/$pkgname && \
+ install -m 0644 $pkgname.man $pkgdir/usr/man/man1/$pkgname.1 && \
+ install -m 0644 ../*.xpm $pkgdir/usr/share/$pkgname/ || return 1
+
+ mv $pkgdir/usr/man $pkgdir/usr/share/
+}
diff --git a/community/xxkb/XXkb b/community/xxkb/XXkb
new file mode 100644
index 000000000..ce1eeb3bb
--- /dev/null
+++ b/community/xxkb/XXkb
@@ -0,0 +1,16 @@
+XXkb.controls.add_when_start: yes
+XXkb.controls.add_when_create: yes
+XXkb.controls.add_when_change: yes
+XXkb.controls.focusout: yes
+XXkb.controls.two_state: yes
+XXkb.controls.button_delete: yes
+XXkb.controls.button_delete_and_forget: no
+XXkb.controls.mainwindow_delete: no
+XXkb.group.base: 1
+XXkb.group.alt: 2
+XXkb.bell.enable: no
+XXkb.mainwindow.enable: no
+XXkb.button.enable: no
+XXkb.ignore.reverse: no
+XXkb.mousebutton.1.reverse: no
+XXkb.mousebutton.3.reverse: no
diff --git a/community/xxkb/en22.xpm b/community/xxkb/en22.xpm
new file mode 100644
index 000000000..8ddf284f7
--- /dev/null
+++ b/community/xxkb/en22.xpm
@@ -0,0 +1,105 @@
+/* XPM */
+static char * en48_xpm[] = {
+"22 22 80 1",
+" c None",
+". c #FF4949",
+"+ c #ECE4F7",
+"@ c #3232FF",
+"# c #0000FF",
+"$ c #4A4AFF",
+"% c #FF9F9F",
+"& c #FF0000",
+"* c #FF2A2A",
+"= c #BFBFFF",
+"- c #FF1313",
+"; c #FF4F4F",
+"> c #E7DBF3",
+", c #3535FF",
+"' c #FFCDCD",
+") c #FF1818",
+"! c #FF5252",
+"~ c #E6D9F2",
+"{ c #3434FF",
+"] c #7C7CFF",
+"^ c #FFCACA",
+"/ c #FF1919",
+"( c #FF5151",
+"_ c #E9DEF4",
+": c #2F2FFF",
+"< c #0303FF",
+"[ c #7B7BFF",
+"} c #FFCBCB",
+"| c #FF1616",
+"1 c #FF4D4D",
+"2 c #EAE6FB",
+"3 c #2C2CFF",
+"4 c #0202FF",
+"5 c #FDCDD0",
+"6 c #FF1515",
+"7 c #FBCFD3",
+"8 c #7E7EFF",
+"9 c #E4E4FF",
+"0 c #FFF2F2",
+"a c #C2C2FF",
+"b c #FF4A4A",
+"c c #FFD2D2",
+"d c #FF6464",
+"e c #FF1B1B",
+"f c #FF0707",
+"g c #DFDFFF",
+"h c #FFF7F7",
+"i c #FFBFBF",
+"j c #FFEFEF",
+"k c #2323FF",
+"l c #E0DCFB",
+"m c #FF5F5F",
+"n c #FF1212",
+"o c #FFD4D4",
+"p c #DEDEFF",
+"q c #FF5D5D",
+"r c #FF0D0D",
+"s c #CECEFF",
+"t c #FFFFFF",
+"u c #2525FF",
+"v c #FF0B0B",
+"w c #FEC4C5",
+"x c #8E8EFF",
+"y c #4D4DFF",
+"z c #2727FF",
+"A c #E0D8F7",
+"B c #DFD6F6",
+"C c #FF6262",
+"D c #E2DCF9",
+"E c #FF6161",
+"F c #FFBCBC",
+"G c #8D8DFF",
+"H c #FF1010",
+"I c #FFBDBD",
+"J c #8C8CFF",
+"K c #0505FF",
+"L c #FF0A0A",
+"M c #FFC1C1",
+"N c #8F8FFF",
+"O c #0404FF",
+".+@#####$%&&*=#####@+.",
+"-;>,####$%&&*=####,>;-",
+"')!~{###$%&&*=###{~!)'",
+"]^/(_:##$%&&*=##:_(/^]",
+"<[}|123#$%&&*=#321|}[<",
+"#4[56.2:$%&&*=:2.65[4#",
+"###[761_8%&&*9_167[###",
+"####[5|(0%&&*0(|5[####",
+"$$$$$a}bc%&&*cb}a$$$$$",
+"%%%%%%%%%d&&e%%%%%%%%%",
+"&&&&&&&&&&&&&&&&&&&&&&",
+"&&&&&&&&&&&&&&&&&&&&&&",
+"*********e&&f*********",
+"=====ghij%&&*jihg=====",
+"####klmno%&&*onmlk####",
+"###kpqris%&&*tirqpk###",
+"##ulqvwxy%&&*axwvqlu##",
+"#zAmrwx#$%&&*=#xwrmAz#",
+"zBCnix##$%&&*=##xinCBz",
+"DE-FG<##$%&&*=##<GF-ED",
+"qHIJK###$%&&*=###KJIHq",
+"LMNO####$%&&*=####ONML"};
diff --git a/community/xxkb/ru22.xpm b/community/xxkb/ru22.xpm
new file mode 100644
index 000000000..e1e1aeec8
--- /dev/null
+++ b/community/xxkb/ru22.xpm
@@ -0,0 +1,31 @@
+/* XPM */
+static char * ru22_xpm[] = {
+"22 22 6 1",
+" c None",
+". c #FFFFFF",
+"+ c #DFDFFF",
+"@ c #0000FF",
+"# c #5500AA",
+"$ c #FF0000",
+"......................",
+"......................",
+"......................",
+"......................",
+"......................",
+"......................",
+"++++++++++++++++++++++",
+"@@@@@@@@@@@@@@@@@@@@@@",
+"@@@@@@@@@@@@@@@@@@@@@@",
+"@@@@@@@@@@@@@@@@@@@@@@",
+"@@@@@@@@@@@@@@@@@@@@@@",
+"@@@@@@@@@@@@@@@@@@@@@@",
+"@@@@@@@@@@@@@@@@@@@@@@",
+"@@@@@@@@@@@@@@@@@@@@@@",
+"######################",
+"$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$",
+"$$$$$$$$$$$$$$$$$$$$$$"};
diff --git a/community/xylib/PKGBUILD b/community/xylib/PKGBUILD
new file mode 100644
index 000000000..d9e22e4da
--- /dev/null
+++ b/community/xylib/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+
+pkgname=xylib
+pkgver=0.8
+pkgrel=1
+pkgdesc='xylib is a portable C++ library for reading files that contain x-y data from powder diffraction, spectroscopy or other experimental methods.'
+arch=('i686' 'x86_64')
+url='http://www.unipress.waw.pl/fityk/xylib/'
+license=('LGPL')
+makedepends=('boost')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('b6f9ddc48da2833dcb95d958bf93ba92')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure \
+ --prefix=/usr
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/community/yacpi/ChangeLog b/community/yacpi/ChangeLog
new file mode 100644
index 000000000..811f87d4f
--- /dev/null
+++ b/community/yacpi/ChangeLog
@@ -0,0 +1,3 @@
+2007-06-28 tardo <tardo@nagi-fanboi.net>
+* Built for x86_64
+
diff --git a/community/yacpi/PKGBUILD b/community/yacpi/PKGBUILD
new file mode 100644
index 000000000..23f2c152a
--- /dev/null
+++ b/community/yacpi/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 17725 2010-05-24 20:49:16Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sebastian A. Liem <sebastian@liem.se>
+
+pkgname=yacpi
+pkgver=3.0.1
+pkgrel=2
+pkgdesc="ncurses-based acpi monitor."
+arch=('i686' 'x86_64')
+url="http://www.ngolde.de/yacpi.html"
+license=('GPL')
+depends=(ncurses libacpi)
+source=(http://www.ngolde.de/download/$pkgname-$pkgver.tar.gz)
+md5sums=('1b03394ee3b916f686cdc3e2c05ddb7a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make || return 1
+ install -d $pkgdir/usr/bin
+ install -D -m 755 $pkgname $pkgdir/usr/bin/
+}
diff --git a/community/yajl/PKGBUILD b/community/yajl/PKGBUILD
new file mode 100644
index 000000000..71c3c1ee0
--- /dev/null
+++ b/community/yajl/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Thomas Dziedzic < gostrc at gmail >
+# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
+
+pkgname=yajl
+pkgver=1.0.11
+pkgrel=3
+pkgdesc='Yet Another JSON Library.'
+arch=('i686' 'x86_64')
+url='http://lloyd.github.com/yajl/'
+license=('BSD')
+makedepends=('cmake')
+source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/lloyd/${pkgname}/tarball/${pkgver}")
+md5sums=('5b60f4d59b3b1fb42d7808d08460fb12')
+
+build() {
+ cd lloyd-${pkgname}-f4baae0
+
+ cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ .
+
+ make
+}
+
+package() {
+ cd lloyd-${pkgname}-f4baae0
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m644 COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/yaws/ChangeLog b/community/yaws/ChangeLog
new file mode 100644
index 000000000..887b62a4f
--- /dev/null
+++ b/community/yaws/ChangeLog
@@ -0,0 +1,7 @@
+2007-06-29 Dragonlord <dragonlord@aur.archlinux.org>
+ * updated to major version 1.77
+ * added backup of /etc/yaws.conf
+
+2007-06-29 tardo <tardo@nagi-fanboi.net>
+ * Built for x86_64
+ * Moved to /usr, removed profile
diff --git a/community/yaws/PKGBUILD b/community/yaws/PKGBUILD
new file mode 100644
index 000000000..977c56fb5
--- /dev/null
+++ b/community/yaws/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 26124 2010-09-13 17:23:11Z schuay $
+# Maintainer:
+
+pkgname=yaws
+pkgver=1.88
+pkgrel=3
+pkgdesc='Yet Another Web Server -- The pure Erlang HTTP server/framework'
+arch=('i686' 'x86_64')
+url='http://yaws.hyber.org'
+license=('BSD')
+depends=('pam' 'erlang')
+backup=('etc/yaws/yaws.conf')
+source=("http://yaws.hyber.org/download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('950f8199592c6490556632e20e59a353')
+
+build() {
+ cd ${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+
+ # python2 fix
+ for file in www/cgi.yaws www/cgi-bin/foo.py; do
+ sed -i 's_#!/usr/bin/python_#!/usr/bin/python2_' $file
+ done
+
+ make
+}
+
+package() {
+ cd ${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -d ${pkgdir}/usr/lib/erlang/lib
+ ln -s /usr/lib/yaws ${pkgdir}/usr/lib/erlang/lib/${pkgname}-${pkgver}
+
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/community/yaws/yaws.profile b/community/yaws/yaws.profile
new file mode 100644
index 000000000..57303c1f8
--- /dev/null
+++ b/community/yaws/yaws.profile
@@ -0,0 +1 @@
+export PATH=$PATH:/opt/yaws/bin
diff --git a/community/yaz/PKGBUILD b/community/yaz/PKGBUILD
new file mode 100644
index 000000000..fc9a2d712
--- /dev/null
+++ b/community/yaz/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 43397 2011-03-25 16:19:23Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Robert Emil Berge <filoktetes@linuxophic.org>
+
+pkgname=yaz
+pkgver=4.1.7
+pkgrel=1
+pkgdesc="A toolkit supporting the development of Z39.50/SRW/SRU clients and servers"
+arch=('i686' 'x86_64')
+license=('BSD')
+url="http://www.indexdata.dk/yaz"
+depends=('openssl' 'libxslt' 'icu')
+options=('!libtool')
+source=("http://ftp.indexdata.dk/pub/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('d4b94fc70bfc105fc034c4b51b7b5cae')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --enable-shared=yaz \
+ --with-openssl=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 LICENSE \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/community/zathura/PKGBUILD b/community/zathura/PKGBUILD
new file mode 100644
index 000000000..f7b59df10
--- /dev/null
+++ b/community/zathura/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 43267 2011-03-24 12:25:34Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: ML <neldoreth>
+
+pkgname=zathura
+pkgver=0.0.8.3
+pkgrel=1
+pkgdesc="a PDF viewer"
+arch=('i686' 'x86_64')
+url="http://zathura.pwmt.org"
+license=('custom')
+depends=('poppler-glib' 'gtk2' 'cairo')
+install=zathura.install
+DLAGENTS=('http::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
+ 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u')
+source=(https://pwmt.org/download/zathura-$pkgver.tar.gz
+ zathura.desktop
+ zathura-poppler-0.16.patch)
+md5sums=('95b1d02593e7055f08da3825ad54954d'
+ '53da4968621934e7d9812380a3a37ee1'
+ 'fa9f43b1a785743b4f9b840d1f234bae')
+
+build() {
+ cd $srcdir/zathura-$pkgver
+# patch -Np1 -i $srcdir/zathura-poppler-0.16.patch
+ make
+ install -D -m775 zathura "$pkgdir/usr/bin/zathura"
+ install -D -m664 zathura.1 "$pkgdir/usr/share/man/man1/zathura.1"
+ install -D -m664 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -D -m664 $srcdir/zathura.desktop "$pkgdir/usr/share/applications/zathura.desktop"
+}
diff --git a/community/zathura/zathura-poppler-0.16.patch b/community/zathura/zathura-poppler-0.16.patch
new file mode 100644
index 000000000..79c22bb28
--- /dev/null
+++ b/community/zathura/zathura-poppler-0.16.patch
@@ -0,0 +1,13 @@
+patch that fixes poppler-0.16 compatibility
+
+http://pkgs.fedoraproject.org/gitweb/?p=zathura.git;a=blob;f=zathura-0.0.8.1-poppler-0.15-fix.patch;h=1e586b3cca2be43c7f70c7c2532ea4b2371892e8;hb=master
+--- zathura-0.0.8.1/zathura.c.poppler15
++++ zathura-0.0.8.1/zathura.c
+@@ -4300,7 +4300,7 @@ cb_view_button_release(GtkWidget* widget
+
+ /* get selected text */
+ g_static_mutex_lock(&(Zathura.Lock.pdflib_lock));
+- char* selected_text = poppler_page_get_text(
++ char* selected_text = poppler_page_get_selected_text(
+ Zathura.PDF.pages[Zathura.PDF.page_number]->page,SELECTION_STYLE,
+ &rectangle);
diff --git a/community/zathura/zathura.desktop b/community/zathura/zathura.desktop
new file mode 100644
index 000000000..9dea21e75
--- /dev/null
+++ b/community/zathura/zathura.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=Zathura
+Comment=A minimalistic PDF viewer
+Exec=zathura
+Terminal=false
+Type=Application
+Categories=Office;
+MimeType=application/pdf;
diff --git a/community/zathura/zathura.install b/community/zathura/zathura.install
new file mode 100644
index 000000000..f450cf9b8
--- /dev/null
+++ b/community/zathura/zathura.install
@@ -0,0 +1,13 @@
+post_install() {
+ which gtk-update-icon-cache >/dev/null && \
+ [ -d usr/share/icons/hicolor ] && \
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/community/zaz/PKGBUILD b/community/zaz/PKGBUILD
new file mode 100644
index 000000000..8954f7386
--- /dev/null
+++ b/community/zaz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 25431 2010-09-04 20:59:53Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Adrián Chaves Fernández (aka Gallaecio) <adriyetichaves@gmail.com>
+# Contributor: Todd Partridge (aka Gen2ly) <toddrpartridge@gmail.com>
+
+pkgname=zaz
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Puzzle game where the player has to arrange balls in triplets."
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/zaz/"
+license=('GPL3' 'custom:CCBYSA')
+depends=('ftgl' 'sdl' 'sdl_image' 'libvorbis' 'libtheora')
+source=(http://download.sourceforge.net/sourceforge/zaz/files/$pkgname-$pkgver.tar.bz2)
+md5sums=('d92a043780d06c699da0ba04aab32a6b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 data/copyright.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE_DATA
+}
diff --git a/community/zeromq/PKGBUILD b/community/zeromq/PKGBUILD
new file mode 100644
index 000000000..e7c729562
--- /dev/null
+++ b/community/zeromq/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+pkgname=zeromq
+pkgver=2.1.3
+pkgrel=1
+pkgdesc="Fast messaging system built on sockets, C and C++ bindings. aka 0MQ, ZMQ."
+arch=('i686' 'x86_64')
+url="http://www.zeromq.org"
+license=('LGPL')
+depends=('gcc-libs' 'util-linux-ng')
+makedepends=()
+source=(http://download.zeromq.org/$pkgname-$pkgver.tar.gz)
+md5sums=('ab794a174210b9e8096a4efd1d1a4d42')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure prefix="$pkgdir/usr"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make install
+}
+
+md5sums=('ae681af2df1b7191aeecfcb23bb73864')
diff --git a/community/znc/PKGBUILD b/community/znc/PKGBUILD
new file mode 100644
index 000000000..fcbfea36a
--- /dev/null
+++ b/community/znc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 32285 2010-11-13 03:23:05Z kchen $
+# Maintainer: Kaiting Chen <kaitocracy@gmail.com>
+# Contributor: mickael9 <mickael9 at gmail dot com>
+
+pkgname=znc
+pkgver=0.096
+pkgrel=2
+pkgdesc='An IRC proxy (bouncer) with modules & scripts support'
+url='http://en.znc.in/wiki/index.php/ZNC'
+license=('GPL2')
+arch=('i686' 'x86_64')
+
+depends=('c-ares' 'gcc-libs' 'openssl')
+makedepends=('swig' 'tcl' 'perl' 'cyrus-sasl')
+optdepends=('tcl: modtcl module'
+ 'perl: modperl module'
+ 'cyrus-sasl: saslauth module')
+
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('38eec4f1911a68b4d2fc704170e7cbf6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-sasl \
+ --enable-tcl \
+ --enable-perl \
+ --enable-extra
+ make; make DESTDIR="$pkgdir" install
+}
diff --git a/community/zziplib/PKGBUILD b/community/zziplib/PKGBUILD
new file mode 100644
index 000000000..b54fb1dfd
--- /dev/null
+++ b/community/zziplib/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 38805 2011-02-01 07:57:10Z andrea $
+# Maintainer:
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+
+pkgname=zziplib
+pkgver=0.13.58
+pkgrel=2
+pkgdesc="A lightweight library that offers the ability to easily extract data from files archived in a single zip file"
+arch=('i686' 'x86_64')
+url="http://zziplib.sourceforge.net"
+license=('LGPL' 'MPL')
+depends=('zlib')
+makedepends=('python2')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a0f743a5a42ca245b2003ecaea958487')
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ #fix permission
+ chmod -s ${pkgdir}/usr/share/man/man3
+ chmod 644 ${pkgdir}/usr/share/man/man3/*
+ chown -R root:root ${pkgdir}/usr/share/man/man3
+}
diff --git a/core/acl/PKGBUILD b/core/acl/PKGBUILD
new file mode 100644
index 000000000..bfee4e73f
--- /dev/null
+++ b/core/acl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 105458 2011-01-09 04:03:58Z stephane $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=acl
+pkgver=2.2.49
+pkgrel=2
+pkgdesc="Access control list utilities, libraries and headers"
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/acl"
+license=('LGPL')
+depends=('attr>=2.4.41')
+replaces=('xfsacl')
+provides=('xfsacl')
+conflicts=('xfsacl')
+options=('!libtool')
+source=(http://mirrors.zerg.biz/nongnu/${pkgname}/${pkgname}-${pkgver}.src.tar.gz)
+sha256sums=('b9c7f4752e4ef4930a62fa5aa0d7efe1cba2b5a3a2d6ee2b45c0a70c72b7e5d5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export INSTALL_USER=root INSTALL_GROUP=root
+ ./configure --prefix=/usr --libdir=/lib --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DIST_ROOT="${pkgdir}" install install-lib install-dev
+
+ rm ${pkgdir}/lib/libacl.a
+ chmod 0755 ${pkgdir}/lib/libacl.so.*.*.*
+}
diff --git a/core/attr/PKGBUILD b/core/attr/PKGBUILD
new file mode 100644
index 000000000..f8b942259
--- /dev/null
+++ b/core/attr/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 115738 2011-03-20 22:30:28Z allan $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=attr
+pkgver=2.4.44
+pkgrel=3
+pkgdesc="Extended attribute support library for ACL support"
+arch=('i686' 'x86_64')
+url="http://oss.sgi.com/projects/xfs/"
+license=('LGPL')
+depends=('glibc')
+makedepends=('gettext')
+replaces=('xfsattr')
+provides=('xfsattr')
+conflicts=('xfsattr')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/attr/attr-${pkgver}.src.tar.gz)
+sha256sums=('e01fa00686072a02dddf994e6217be950f51c1dc0852ad2e210c48b6e8de793a')
+
+build() {
+ cd $srcdir/attr-$pkgver
+
+ # prevent binaries being owned by nobody:nobody
+ sed -i 's#-o $(PKG_USER) -g $(PKG_GROUP)##' include/buildmacros
+
+ autoconf
+ ./configure --prefix=/usr
+ sed -i -e 's/man2//g' man/Makefile
+ make
+}
+
+package() {
+ cd $srcdir/attr-$pkgver
+ make prefix=${pkgdir}/usr install install-lib install-dev
+
+ # tidy up
+ cd "${pkgdir}"
+
+ install -dm755 lib
+ mv -v usr/lib/libattr.so* lib/
+ ln -sv ../../lib/libattr.so.1 usr/lib/libattr.so
+
+ mv -v usr/libexec/libattr.{a,la} usr/lib/
+ rm -rvf usr/libexec
+}
diff --git a/core/bash/PKGBUILD b/core/bash/PKGBUILD
new file mode 100644
index 000000000..b02b49641
--- /dev/null
+++ b/core/bash/PKGBUILD
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 114694 2011-03-15 13:55:01Z allan $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=bash
+_basever=4.2
+_patchlevel=008 #prepare for some patches
+pkgver=$_basever.$_patchlevel
+pkgrel=1
+pkgdesc="The GNU Bourne Again shell"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnu.org/software/bash/bash.html"
+groups=('base')
+backup=(etc/bash.bash{rc,_logout} etc/skel/.bash{rc,_profile,_logout})
+depends=('readline>=6.1' 'glibc')
+provides=('sh')
+install=bash.install
+source=(http://ftp.gnu.org/gnu/bash/bash-$_basever.tar.gz
+ dot.bashrc
+ dot.bash_profile
+ dot.bash_logout
+ system.bashrc
+ system.bash_logout)
+if [ $_patchlevel -gt 000 ]; then
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ source=(${source[@]} http://ftp.gnu.org/gnu/bash/bash-$_basever-patches/bash${_basever//./}-$(printf "%03d" $p))
+ done
+fi
+
+build() {
+ cd ${srcdir}/${pkgname}-$_basever
+ for p in ../bash${_basever//./}-*; do
+ [[ -e "$p" ]] || continue
+ msg "applying patch ${p}"
+ patch -Np0 -i ${p}
+ done
+
+ _bashconfig=(-DDEFAULT_PATH_VALUE=\'\"/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin\"\'
+ -DSTANDARD_UTILS_PATH=\'\"/usr/bin:/bin:/usr/sbin:/sbin\"\'
+ -DSYS_BASHRC=\'\"/etc/bash.bashrc\"\'
+ -DSYS_BASH_LOGOUT=\'\"/etc/bash.bash_logout\"\')
+ export CFLAGS="${CFLAGS} ${_bashconfig[@]}"
+
+ ./configure --prefix=/usr --with-curses --enable-readline \
+ --without-bash-malloc --with-installed-readline \
+ --bindir=/bin --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-$_basever
+ make DESTDIR=${pkgdir} install
+
+ # for now, bash is our default /bin/sh
+ cd ${pkgdir}/bin
+ ln -s bash sh
+
+ install -dm755 ${pkgdir}/etc/skel/
+
+ # system-wide configuration files
+ install -m644 ${srcdir}/system.bashrc ${pkgdir}/etc/bash.bashrc
+ install -m644 ${srcdir}/system.bash_logout ${pkgdir}/etc/bash.bash_logout
+
+ # user configuration file skeletons
+ install -m644 ${srcdir}/dot.bashrc ${pkgdir}/etc/skel/.bashrc
+ install -m644 ${srcdir}/dot.bash_profile ${pkgdir}/etc/skel/.bash_profile
+ install -m644 ${srcdir}/dot.bash_logout ${pkgdir}/etc/skel/.bash_logout
+}
+
+md5sums=('3fb927c7c33022f1c327f14a81c0d4b0'
+ '027d6bd8f5f6a06b75bb7698cb478089'
+ '2902e0fee7a9168f3a4fd2ccd60ff047'
+ '42f4400ed2314bd7519c020d0187edc5'
+ 'fe5d3a367f7d5f754214dc05e3d958ab'
+ '472f536d7c9e8250dc4568ec4cfaf294'
+ '1100bc1dda2cdc06ac44d7e5d17864a3'
+ '30e7948079921d3261efcc6a40722135'
+ '9ea06decec43a198f3d7cf29acc602f8'
+ 'fb48f6134d7b013135929476aa0c250c'
+ 'e70e45de33426b38153b390be0dbbcd4'
+ 'ce4e5c484993705b27daa151eca242c2'
+ '88d1f96db29461767602e2546803bda7'
+ '24c574bf6d6a581e300823d9c1276af6')
diff --git a/core/bash/bash.install b/core/bash/bash.install
new file mode 100644
index 000000000..bc75e9b6a
--- /dev/null
+++ b/core/bash/bash.install
@@ -0,0 +1,20 @@
+info_dir=usr/share/info
+info_files=(bash.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/core/bash/dot.bash_logout b/core/bash/dot.bash_logout
new file mode 100644
index 000000000..0e4e4f184
--- /dev/null
+++ b/core/bash/dot.bash_logout
@@ -0,0 +1,3 @@
+#
+# ~/.bash_logout
+#
diff --git a/core/bash/dot.bash_profile b/core/bash/dot.bash_profile
new file mode 100644
index 000000000..5545f007e
--- /dev/null
+++ b/core/bash/dot.bash_profile
@@ -0,0 +1,5 @@
+#
+# ~/.bash_profile
+#
+
+[[ -f ~/.bashrc ]] && . ~/.bashrc
diff --git a/core/bash/dot.bashrc b/core/bash/dot.bashrc
new file mode 100644
index 000000000..a355b0cd3
--- /dev/null
+++ b/core/bash/dot.bashrc
@@ -0,0 +1,9 @@
+#
+# ~/.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+alias ls='ls --color=auto'
+PS1='[\u@\h \W]\$ '
diff --git a/core/bash/system.bash_logout b/core/bash/system.bash_logout
new file mode 100644
index 000000000..a76e48e4a
--- /dev/null
+++ b/core/bash/system.bash_logout
@@ -0,0 +1,3 @@
+#
+# /etc/bash.bash_logout
+#
diff --git a/core/bash/system.bashrc b/core/bash/system.bashrc
new file mode 100644
index 000000000..84de2898c
--- /dev/null
+++ b/core/bash/system.bashrc
@@ -0,0 +1,23 @@
+#
+# /etc/bash.bashrc
+#
+
+# If not running interactively, don't do anything
+[[ $- != *i* ]] && return
+
+PS1='[\u@\h \W]\$ '
+PS2='> '
+PS3='> '
+PS4='+ '
+
+case ${TERM} in
+ xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
+ PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
+
+ ;;
+ screen)
+ PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
+ ;;
+esac
+
+[ -r /etc/bash_completion ] && . /etc/bash_completion
diff --git a/core/bin86/PKGBUILD b/core/bin86/PKGBUILD
new file mode 100644
index 000000000..b068ab833
--- /dev/null
+++ b/core/bin86/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 87909 2010-08-18 18:45:21Z andyrtr $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=bin86
+pkgver=0.16.17
+pkgrel=5
+pkgdesc="A complete 8086 assembler and loader"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.debath.co.uk/"
+depends=('glibc')
+source=(http://homepage.ntlworld.com/robert.debath/dev86/$pkgname-$pkgver.tar.gz
+ bin86-0.16.17-x86_64-1.patch)
+md5sums=('c9e8d72dd2e7457b52d0e3164fc199a1' '92bdce7b0655cd2e9f83c83fc56d128e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ if [ "$CARCH" = "x86_64" ]; then
+ patch -Np1 -i ../bin86-0.16.17-x86_64-1.patch || return 1
+ fi
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/bin $pkgdir/usr/share/man/man1
+ make PREFIX=$pkgdir/usr MANDIR=$pkgdir/usr/share/man/man1 install
+}
diff --git a/core/bin86/bin86-0.16.17-x86_64-1.patch b/core/bin86/bin86-0.16.17-x86_64-1.patch
new file mode 100644
index 000000000..152413ee7
--- /dev/null
+++ b/core/bin86/bin86-0.16.17-x86_64-1.patch
@@ -0,0 +1,44 @@
+Submitted By: Ken Moffat <ken@kenmoffat.uklinux.net>
+Date: 2005-06-28
+Initial Package Version: 0.16.14
+Upstream Status: Submitted Upstream
+Origin: from ROCK Linux
+Description: Allows bin86 to compile on x86_64, which permits lilo to
+ be used in a 64-bit system. I'm dubious about ROCK's attempts to
+ automatically add dual-licensing to all their patches, but bin86 is
+ already GPL'd. I've heard from the maintainer that this will be
+ included in the next upload.
+
+
+# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
+#
+# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
+# Please add additional copyright information _after_ the line containing
+# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
+# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
+#
+# ROCK Linux: rock-src/package/x86/bin86/x86_64.patch
+# ROCK Linux is Copyright (C) 1998 - 2005 Clifford Wolf
+#
+# This patch file is dual-licensed. It is available under the license the
+# patched project is licensed under, as long as it is an OpenSource license
+# as defined at http://www.opensource.org/ (e.g. BSD, X11) or 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.
+#
+# --- ROCK-COPYRIGHT-NOTE-END ---
+
+diff -urN bin86-0.16.14-orig/ld/x86_aout.h bin86-0.16.14/ld/x86_aout.h
+--- bin86-0.16.14-orig/ld/x86_aout.h 2004-11-07 20:07:31.506442000 +0100
++++ bin86-0.16.14/ld/x86_aout.h 2004-11-07 20:07:41.106982496 +0100
+@@ -12,6 +12,9 @@
+ #if defined(i386) || defined(__BCC__) || defined(MSDOS)
+ typedef long Long;
+ #define __OUT_OK 1
++#elif defined(__x86_64__)
++typedef int Long;
++#define __OUT_OK 1
+ #else
+ typedef char Long[4];
+ #endif
diff --git a/core/binutils/PKGBUILD b/core/binutils/PKGBUILD
new file mode 100644
index 000000000..da43e8b5e
--- /dev/null
+++ b/core/binutils/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 109378 2011-02-09 08:54:49Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils
+pkgver=2.21
+pkgrel=4
+_date=20110209
+pkgdesc="A set of programs to assemble and manipulate binary and object files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('base')
+depends=('glibc>=2.13' 'zlib')
+makedepends=('dejagnu')
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2
+ binutils.git-39637246.patch)
+md5sums=('673ef8f4fc0b497232b4458982e76179'
+ 'dd72cb6df5467bc6237cff2a886099d0')
+
+mksource() {
+ mkdir ${pkgname}-${_date}
+ cd ${pkgname}-${_date}
+ export _TAG=binutils-2_21-branch
+ export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
+ cvs -z9 co -r $_TAG binutils || return 1
+ mv src binutils
+ tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/*
+}
+
+build() {
+ cd ${srcdir}/binutils
+ patch -Np1 -i ${srcdir}/binutils.git-39637246.patch
+
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib"
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared $CONFIGFLAG
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/core/binutils/binutils.git-39637246.patch b/core/binutils/binutils.git-39637246.patch
new file mode 100644
index 000000000..460450e43
--- /dev/null
+++ b/core/binutils/binutils.git-39637246.patch
@@ -0,0 +1,700 @@
+diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
+index 777d7cf..c4c34a1 100644
+--- a/gas/config/tc-i386.c
++++ b/gas/config/tc-i386.c
+@@ -1060,7 +1060,6 @@ i386_align_code (fragS *fragP, int count)
+ else
+ patt = f32_patt;
+ break;
+- case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_PENTIUM4:
+ case PROCESSOR_NOCONA:
+ case PROCESSOR_CORE:
+@@ -1080,6 +1079,7 @@ i386_align_code (fragS *fragP, int count)
+ case PROCESSOR_I386:
+ case PROCESSOR_I486:
+ case PROCESSOR_PENTIUM:
++ case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_GENERIC32:
+ patt = f32_patt;
+ break;
+diff --git a/gas/testsuite/gas/i386/nops-1-i686.d b/gas/testsuite/gas/i386/nops-1-i686.d
+index 7752ee2..137d5c2 100644
+--- a/gas/testsuite/gas/i386/nops-1-i686.d
++++ b/gas/testsuite/gas/i386/nops-1-i686.d
+@@ -10,25 +10,41 @@ Disassembly of section .text:
+
+ 0+ <nop15>:
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0d jmp 10 <nop14>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+10 <nop14>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+20 <nop13>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+30 <nop12>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bf 00 00 00 00 lea 0x0\(%edi\),%edi
+
+ 0+40 <nop11>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -36,7 +52,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+50 <nop10>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -45,7 +62,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+60 <nop9>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -55,7 +73,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 89 f6 mov %esi,%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+70 <nop8>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -66,7 +85,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+80 <nop7>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -78,7 +98,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+90 <nop6>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -91,7 +111,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
+
+ 0+a0 <nop5>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -105,7 +125,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+b0 <nop4>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -120,7 +141,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+c0 <nop3>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -136,7 +157,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
+
+ 0+d0 <nop2>:
+ [ ]*[a-f0-9]+: 90 nop
+diff --git a/gas/testsuite/gas/i386/nops-3-i686.d b/gas/testsuite/gas/i386/nops-3-i686.d
+index 30d2627..5c114f4 100644
+--- a/gas/testsuite/gas/i386/nops-3-i686.d
++++ b/gas/testsuite/gas/i386/nops-3-i686.d
+@@ -9,9 +9,37 @@ Disassembly of section .text:
+
+ 0+ <nop>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop\+0x20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ [ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+ #pass
+diff --git a/gas/testsuite/gas/i386/nops-4-i686.d b/gas/testsuite/gas/i386/nops-4-i686.d
+index 3d8420b..c61f08d 100644
+--- a/gas/testsuite/gas/i386/nops-4-i686.d
++++ b/gas/testsuite/gas/i386/nops-4-i686.d
+@@ -9,30 +9,135 @@ Disassembly of section .text:
+
+ 0+ <nop31>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop30>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+
+ 0+20 <nop30>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1c jmp 40 <nop29>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+40 <nop29>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1b jmp 60 <nop28>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+60 <nop28>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1a jmp 80 <nop27>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+80 <nop27>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -40,8 +145,32 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 19 jmp a0 <nop26>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+a0 <nop26>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -50,8 +179,31 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 18 jmp c0 <nop25>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+c0 <nop25>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -61,8 +213,30 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 17 jmp e0 <nop24>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+e0 <nop24>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -73,8 +247,29 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 16 jmp 100 <nop23>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+100 <nop23>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -86,8 +281,28 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 15 jmp 120 <nop22>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+120 <nop22>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -100,8 +315,27 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 14 jmp 140 <nop21>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+140 <nop21>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -115,8 +349,26 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 13 jmp 160 <nop20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+160 <nop20>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -131,8 +383,25 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 12 jmp 180 <nop19>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+180 <nop19>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -148,8 +417,24 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 11 jmp 1a0 <nop18>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1a0 <nop18>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -166,8 +451,23 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 10 jmp 1c0 <nop17>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1c0 <nop17>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -185,8 +485,22 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0f jmp 1e0 <nop16>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1e0 <nop16>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -205,6 +519,19 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 0e jmp 200 <align>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ #pass
diff --git a/core/binutils/binutils.install b/core/binutils/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/core/binutils/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+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/core/bison/ChangeLog b/core/bison/ChangeLog
new file mode 100644
index 000000000..5bb22be1d
--- /dev/null
+++ b/core/bison/ChangeLog
@@ -0,0 +1,19 @@
+2010-03-25 Eric Belanger <eric@archlinux.org>
+
+ * bison 2.4.2-1
+ * Upstream update
+ * Removed texinfo dependency in install scriptlet
+ * Updated license
+ * Added sh depends
+
+2008-12-11 Eric Belanger <eric@archlinux.org>
+
+ * bison 2.4.1-1
+ * Upstream update
+
+2008-11-08 Eric Belanger <eric@archlinux.org>
+
+ * bison 2.4-1
+ * Upstream update
+ * Added info file support
+ * Added ChangeLog
diff --git a/core/bison/PKGBUILD b/core/bison/PKGBUILD
new file mode 100644
index 000000000..1e04f381e
--- /dev/null
+++ b/core/bison/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 87221 2010-08-11 03:29:16Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+
+pkgname=bison
+pkgver=2.4.3
+pkgrel=1
+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)
+md5sums=('c1d3ea81bc370dbd43b6f0b2cd21287e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --datadir=/usr/share
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/bison/bison.install b/core/bison/bison.install
new file mode 100644
index 000000000..890eb0366
--- /dev/null
+++ b/core/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/core/bridge-utils/PKGBUILD b/core/bridge-utils/PKGBUILD
new file mode 100644
index 000000000..75993cfa7
--- /dev/null
+++ b/core/bridge-utils/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 112055 2011-03-03 12:52:38Z stephane $
+# Maintainer:
+# Contributor: Judd Vinet <judd@archlinux.org>
+
+pkgname=bridge-utils
+pkgver=1.4
+pkgrel=4
+pkgdesc="Utilities for configuring the Linux ethernet bridge"
+arch=('i686' 'x86_64')
+url="http://www.linuxfoundation.org/en/Net:Bridge"
+license=('GPL2')
+backup=('etc/conf.d/bridges')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/bridge/bridge-utils-$pkgver.tar.gz
+ bridges.conf.d)
+md5sums=('0182fcac3a2b307113bbec34e5f1c673'
+ 'f5d691282653580dd5fd4a1092ef365b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ aclocal
+ autoconf
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # install config file
+ install -Dm644 ../bridges.conf.d "${pkgdir}/etc/conf.d/bridges"
+}
diff --git a/core/bridge-utils/bridges.conf.d b/core/bridge-utils/bridges.conf.d
new file mode 100644
index 000000000..2609cf51f
--- /dev/null
+++ b/core/bridge-utils/bridges.conf.d
@@ -0,0 +1,27 @@
+#
+# Settings for layer-2 bridges
+#
+# For each bridge interface declared in INTERFACES (in rc.conf), declare
+# a bridge_${IF} variable that contains the real ethernet interfaces that
+# should be bridged togeether.
+#
+# Then list the bridge interface name in the BRIDGE_INTERFACES array.
+#
+
+# example:
+#
+# in /etc/rc.conf:
+# eth0="eth0 up"
+# eth1="eth1 up"
+# br0="br0 192.168.0.2 netmask 255.255.255.0 up"
+# INTERFACES=(lo eth0 eth1 br0)
+#
+# in /etc/conf.d/bridges
+# bridge_br0="eth0 eth1"
+# BRIDGE_INTERFACES=(br0)
+#
+
+
+#bridge_br0="eth0 eth1"
+#BRIDGE_INTERFACES=(br0)
+
diff --git a/core/btrfs-progs-unstable/PKGBUILD b/core/btrfs-progs-unstable/PKGBUILD
new file mode 100644
index 000000000..466829f8c
--- /dev/null
+++ b/core/btrfs-progs-unstable/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 107578 2011-01-26 20:59:54Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=btrfs-progs-unstable
+pkgver=0.19.20101006
+pkgrel=1
+pkgdesc="btrfs filesystem utilities"
+arch=(i686 x86_64)
+depends=('glibc' 'e2fsprogs')
+source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.bz2)
+url="http://btrfs.wiki.kernel.org/"
+license=('GPL2')
+
+build() {
+ cd $srcdir/$pkgname
+ make CFLAGS="$CFLAGS" all convert
+}
+
+package() {
+ cd $srcdir/$pkgname
+ make prefix=$pkgdir/usr bindir=$pkgdir/sbin install
+ # fix manpage
+ mkdir -p $pkgdir/usr/share/
+ mv $pkgdir/usr/man $pkgdir/usr/share/man
+}
+md5sums=('6bce610ed1720e6b9dc9fa96cbd8b73e')
diff --git a/core/btrfs-progs-unstable/btrfs-progs-build-fixes.patch b/core/btrfs-progs-unstable/btrfs-progs-build-fixes.patch
new file mode 100644
index 000000000..d189c5a77
--- /dev/null
+++ b/core/btrfs-progs-unstable/btrfs-progs-build-fixes.patch
@@ -0,0 +1,32 @@
+--- btrfs-progs-0.19/btrfsck.c
++++ btrfs-progs-0.19/btrfsck.c
+@@ -21,6 +21,9 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <fcntl.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <unistd.h>
+ #include "kerncompat.h"
+ #include "ctree.h"
+ #include "disk-io.h"
+--- btrfs-progs-0.19/mkfs.c
++++ btrfs-progs-0.19/mkfs.c
+@@ -341,7 +341,7 @@ int main(int ac, char **av)
+ u64 alloc_start = 0;
+ u64 metadata_profile = BTRFS_BLOCK_GROUP_RAID1 | BTRFS_BLOCK_GROUP_DUP;
+ u64 data_profile = BTRFS_BLOCK_GROUP_RAID0;
+- u32 leafsize = getpagesize();
++ u32 leafsize = sysconf(_SC_PAGESIZE);
+ u32 sectorsize = 4096;
+ u32 nodesize = leafsize;
+ u32 stripesize = 4096;
+@@ -398,7 +398,7 @@ int main(int ac, char **av)
+ print_usage();
+ }
+ }
+- sectorsize = max(sectorsize, (u32)getpagesize());
++ sectorsize = max(sectorsize, (u32)sysconf(_SC_PAGESIZE));
+ if (leafsize < sectorsize || (leafsize & (sectorsize - 1))) {
+ fprintf(stderr, "Illegal leafsize %u\n", leafsize);
+ exit(1);
diff --git a/core/bzip2/PKGBUILD b/core/bzip2/PKGBUILD
new file mode 100644
index 000000000..26634ee4a
--- /dev/null
+++ b/core/bzip2/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 91051 2010-09-21 12:28:55Z ibiru $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=bzip2
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="A high-quality data compression program"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://sources.redhat.com/bzip2"
+groups=('base')
+depends=('glibc')
+source=(http://www.bzip.org/$pkgver/bzip2-$pkgver.tar.gz)
+md5sums=('00b516f4704d4a7cb50a1d97e6e8e15b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # add large-file support
+ sed -e 's/^CFLAGS=\(.*\)$/CFLAGS=\1 \$(BIGFILES)/' -i ./Makefile-libbz2_so
+
+ # use our optimization
+ sed -i "s|-O2|${CFLAGS}|g" Makefile
+ sed -i "s|-O2|${CFLAGS}|g" Makefile-libbz2_so
+
+ make -f Makefile-libbz2_so
+ make bzip2recover libbz2.a
+
+ install -dm755 $pkgdir/bin
+ install -m755 bzip2-shared $pkgdir/bin/bzip2
+ install -m755 bzip2recover $pkgdir/bin
+ ln -sf bzip2 $pkgdir/bin/bunzip2
+ ln -sf bzip2 $pkgdir/bin/bzcat
+
+ install -dm755 $pkgdir/usr/bin
+ install -m755 bzdiff bzgrep bzmore $pkgdir/usr/bin
+
+ install -Dm755 libbz2.so.1.0.6 $pkgdir/lib/libbz2.so.1.0.6
+ ln -s libbz2.so.1.0.6 $pkgdir/lib/libbz2.so
+ ln -s libbz2.so.1.0.6 $pkgdir/lib/libbz2.so.1
+ ln -s libbz2.so.1.0.6 $pkgdir/lib/libbz2.so.1.0
+
+ install -Dm644 libbz2.a ${pkgdir}/usr/lib/libbz2.a
+ ln -sf ../../lib/libbz2.so ${pkgdir}/usr/lib/libbz2.so
+
+ install -Dm644 bzlib.h $pkgdir/usr/include/bzlib.h
+
+ install -Dm644 bzip2.1 $pkgdir/usr/share/man/man1/bzip2.1
+ ln -sf bzip2.1 $pkgdir/usr/share/man/man1/bunzip2.1
+ ln -sf bzip2.1 $pkgdir/usr/share/man/man1/bzcat.1
+ ln -sf bzip2.1 $pkgdir/usr/share/man/man1/bzip2recover.1
+
+ install -Dm644 $srcdir/${pkgname}-${pkgver}/LICENSE \
+ $pkgdir/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/core/cloog-ppl/PKGBUILD b/core/cloog-ppl/PKGBUILD
new file mode 100644
index 000000000..c5d01e5b3
--- /dev/null
+++ b/core/cloog-ppl/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 104416 2011-01-02 12:23:31Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: ezzetabi <ezzetabi at gawab dot com>
+
+pkgname=cloog-ppl
+pkgver=0.15.10
+pkgrel=2
+pkgdesc="Library that generates loops for scanning polyhedra"
+arch=('i686' 'x86_64')
+url="http://www.cloog.org/"
+license=('GPL')
+depends=('ppl>=0.11')
+options=('!libtool')
+source=(ftp://gcc.gnu.org/pub/gcc/infrastructure/${pkgname}-${pkgver}.tar.gz)
+md5sums=('04aa756179b6d850d9ffa50f61b91895')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ ./autogen.sh
+ ./configure --prefix=/usr --includedir=/usr/include/cloog-ppl \
+ --with-bits=gmp --with-ppl=/usr
+ make
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir/ install
+ mv $pkgdir/usr/bin/cloog{,-ppl}
+}
diff --git a/core/coreutils/PKGBUILD b/core/coreutils/PKGBUILD
new file mode 100644
index 000000000..a994defcf
--- /dev/null
+++ b/core/coreutils/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 108936 2011-02-04 23:03:34Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=coreutils
+pkgver=8.10
+pkgrel=1
+pkgdesc="The basic file, shell and text manipulation utilities of the GNU operating system"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/coreutils"
+groups=('base')
+depends=('glibc' 'shadow' 'pam' 'acl' 'gmp' 'libcap')
+replaces=('mktemp')
+backup=('etc/pam.d/su')
+install=${pkgname}.install
+options=('!emptydirs')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz
+ coreutils-uname.patch
+ coreutils-pam.patch
+ su.pam)
+md5sums=('4bb81c051da6e5436fc1ad9a67ae44fe'
+ 'c4fcca138b6abf6d443d48a6f0cd8833'
+ 'aad79a2aa6d566c375d7bdd1b0767278'
+ 'fa85e5cce5d723275b14365ba71a8aad')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # added su wheel group pam patch (from fedora git)
+ patch -Np1 -i ${srcdir}/coreutils-pam.patch
+
+ # linux specific uname improvement (from gentoo portage)
+ patch -Np1 -i ${srcdir}/coreutils-uname.patch
+
+ autoreconf -v
+ ./configure --prefix=/usr \
+ --enable-install-program=su \
+ --enable-no-install-program=groups,hostname,kill,uptime \
+ --enable-pam
+ make
+ make RUN_EXPENSIVE_TESTS=yes check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ cd ${pkgdir}/usr/bin
+ install -dm755 ${pkgdir}/{bin,usr/sbin}
+
+ # binaries required by FHS
+ _fhs="cat chgrp chmod chown cp date dd df echo false ln ls \
+ mkdir mknod mv pwd rm rmdir stty su sync true uname"
+ mv ${_fhs} ${pkgdir}/bin
+
+ # binaries required by various Arch scripts
+ _bin="cut dir dircolors du install mkfifo readlink shred \
+ sleep touch tr vdir"
+ mv ${_bin} ${pkgdir}/bin
+ ln -sf /bin/sleep ${pkgdir}/usr/bin/sleep
+
+ mv chroot ${pkgdir}/usr/sbin
+ install -Dm644 ${srcdir}/su.pam ${pkgdir}/etc/pam.d/su
+}
diff --git a/core/coreutils/coreutils-pam.patch b/core/coreutils/coreutils-pam.patch
new file mode 100644
index 000000000..e61908f3f
--- /dev/null
+++ b/core/coreutils/coreutils-pam.patch
@@ -0,0 +1,428 @@
+diff -urNp coreutils-8.4-orig/configure.ac coreutils-8.4/configure.ac
+--- coreutils-8.4-orig/configure.ac 2010-01-11 18:20:42.000000000 +0100
++++ coreutils-8.4/configure.ac 2010-02-12 10:17:46.000000000 +0100
+@@ -126,6 +126,13 @@ if test "$gl_gcc_warnings" = yes; then
+ AC_SUBST([GNULIB_WARN_CFLAGS])
+ fi
+
++dnl Give the chance to enable PAM
++AC_ARG_ENABLE(pam, dnl
++[ --enable-pam Enable use of the PAM libraries],
++[AC_DEFINE(USE_PAM, 1, [Define if you want to use PAM])
++LIB_PAM="-ldl -lpam -lpam_misc"
++AC_SUBST(LIB_PAM)])
++
+ AC_FUNC_FORK
+
+ optional_bin_progs=
+diff -urNp coreutils-8.4-orig/doc/coreutils.texi coreutils-8.4/doc/coreutils.texi
+--- coreutils-8.4-orig/doc/coreutils.texi 2010-01-03 18:06:20.000000000 +0100
++++ coreutils-8.4/doc/coreutils.texi 2010-02-12 10:17:46.000000000 +0100
+@@ -15081,8 +15081,11 @@ to certain shells, etc.).
+ @findex syslog
+ @command{su} can optionally be compiled to use @code{syslog} to report
+ failed, and optionally successful, @command{su} attempts. (If the system
+-supports @code{syslog}.) However, GNU @command{su} does not check if the
+-user is a member of the @code{wheel} group; see below.
++supports @code{syslog}.)
++
++This version of @command{su} has support for using PAM for
++authentication. You can edit @file{/etc/pam.d/su} to customize its
++behaviour.
+
+ The program accepts the following options. Also see @ref{Common options}.
+
+@@ -15124,6 +15127,8 @@ environment variables except @env{TERM},
+ @env{PATH} to a compiled-in default value. Change to @var{user}'s home
+ directory. Prepend @samp{-} to the shell's name, intended to make it
+ read its login startup file(s).
++Additionaly @env{DISPLAY} and @env{XAUTHORITY} environment variables
++are preserved as well for PAM functionality.
+
+ @item -m
+ @itemx -p
+@@ -15163,33 +15168,6 @@ Exit status:
+ the exit status of the subshell otherwise
+ @end display
+
+-@cindex wheel group, not supported
+-@cindex group wheel, not supported
+-@cindex fascism
+-@subsection Why GNU @command{su} does not support the @samp{wheel} group
+-
+-(This section is by Richard Stallman.)
+-
+-@cindex Twenex
+-@cindex MIT AI lab
+-Sometimes a few of the users try to hold total power over all the
+-rest. For example, in 1984, a few users at the MIT AI lab decided to
+-seize power by changing the operator password on the Twenex system and
+-keeping it secret from everyone else. (I was able to thwart this coup
+-and give power back to the users by patching the kernel, but I
+-wouldn't know how to do that in Unix.)
+-
+-However, occasionally the rulers do tell someone. Under the usual
+-@command{su} mechanism, once someone learns the root password who
+-sympathizes with the ordinary users, he or she can tell the rest. The
+-``wheel group'' feature would make this impossible, and thus cement the
+-power of the rulers.
+-
+-I'm on the side of the masses, not that of the rulers. If you are
+-used to supporting the bosses and sysadmins in whatever they do, you
+-might find this idea strange at first.
+-
+-
+ @node timeout invocation
+ @section @command{timeout}: Run a command with a time limit
+
+diff -urNp coreutils-8.4-orig/src/Makefile.am coreutils-8.4/src/Makefile.am
+--- coreutils-8.4-orig/src/Makefile.am 2010-01-03 18:06:20.000000000 +0100
++++ coreutils-8.4/src/Makefile.am 2010-02-12 10:17:46.000000000 +0100
+@@ -361,7 +361,7 @@ factor_LDADD += $(LIB_GMP)
+ uptime_LDADD += $(GETLOADAVG_LIBS)
+
+ # for crypt
+-su_LDADD += $(LIB_CRYPT)
++su_LDADD += $(LIB_CRYPT) @LIB_PAM@
+
+ # for various ACL functions
+ copy_LDADD += $(LIB_ACL)
+diff -urNp coreutils-8.4-orig/src/su.c coreutils-8.4/src/su.c
+--- coreutils-8.4-orig/src/su.c 2010-02-12 10:15:15.000000000 +0100
++++ coreutils-8.4/src/su.c 2010-02-12 10:24:29.000000000 +0100
+@@ -37,6 +37,16 @@
+ restricts who can su to UID 0 accounts. RMS considers that to
+ be fascist.
+
++#ifdef USE_PAM
++
++ Actually, with PAM, su has nothing to do with whether or not a
++ wheel group is enforced by su. RMS tries to restrict your access
++ to a su which implements the wheel group, but PAM considers that
++ to be fascist, and gives the user/sysadmin the opportunity to
++ enforce a wheel group by proper editing of /etc/pam.conf
++
++#endif
++
+ Compile-time options:
+ -DSYSLOG_SUCCESS Log successful su's (by default, to root) with syslog.
+ -DSYSLOG_FAILURE Log failed su's (by default, to root) with syslog.
+@@ -53,6 +63,15 @@
+ #include <pwd.h>
+ #include <grp.h>
+
++#ifdef USE_PAM
++# include <signal.h>
++# include <sys/wait.h>
++# include <sys/fsuid.h>
++# include <unistd.h>
++# include <security/pam_appl.h>
++# include <security/pam_misc.h>
++#endif /* USE_PAM */
++
+ #include "system.h"
+ #include "getpass.h"
+
+@@ -120,10 +139,17 @@
+ /* The user to become if none is specified. */
+ #define DEFAULT_USER "root"
+
++#ifndef USE_PAM
+ char *crypt (char const *key, char const *salt);
++#endif
+
+-static void run_shell (char const *, char const *, char **, size_t)
++static void run_shell (char const *, char const *, char **, size_t,
++ const struct passwd *)
++#ifdef USE_PAM
++ ;
++#else
+ ATTRIBUTE_NORETURN;
++#endif
+
+ /* If true, pass the `-f' option to the subshell. */
+ static bool fast_startup;
+@@ -209,7 +235,26 @@ log_su (struct passwd const *pw, bool su
+ }
+ #endif
+
++#ifdef USE_PAM
++static pam_handle_t *pamh = NULL;
++static int retval;
++static struct pam_conv conv = {
++ misc_conv,
++ NULL
++};
++
++#define PAM_BAIL_P if (retval) { \
++ pam_end(pamh, PAM_SUCCESS); \
++ return 0; \
++}
++#define PAM_BAIL_P_VOID if (retval) { \
++ pam_end(pamh, PAM_SUCCESS); \
++return; \
++}
++#endif
++
+ /* Ask the user for a password.
++ If PAM is in use, let PAM ask for the password if necessary.
+ Return true if the user gives the correct password for entry PW,
+ false if not. Return true without asking for a password if run by UID 0
+ or if PW has an empty password. */
+@@ -217,6 +262,44 @@ log_su (struct passwd const *pw, bool su
+ static bool
+ correct_password (const struct passwd *pw)
+ {
++#ifdef USE_PAM
++ struct passwd *caller;
++ char *tty_name, *ttyn;
++ retval = pam_start(PROGRAM_NAME, pw->pw_name, &conv, &pamh);
++ PAM_BAIL_P;
++
++ if (getuid() != 0 && !isatty(0)) {
++ fprintf(stderr, "standard in must be a tty\n");
++ exit(1);
++ }
++
++ caller = getpwuid(getuid());
++ if(caller != NULL && caller->pw_name != NULL) {
++ retval = pam_set_item(pamh, PAM_RUSER, caller->pw_name);
++ PAM_BAIL_P;
++ }
++
++ ttyn = ttyname(0);
++ if (ttyn) {
++ if (strncmp(ttyn, "/dev/", 5) == 0)
++ tty_name = ttyn+5;
++ else
++ tty_name = ttyn;
++ retval = pam_set_item(pamh, PAM_TTY, tty_name);
++ PAM_BAIL_P;
++ }
++ retval = pam_authenticate(pamh, 0);
++ PAM_BAIL_P;
++ retval = pam_acct_mgmt(pamh, 0);
++ if (retval == PAM_NEW_AUTHTOK_REQD) {
++ /* password has expired. Offer option to change it. */
++ retval = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
++ PAM_BAIL_P;
++ }
++ PAM_BAIL_P;
++ /* must be authenticated if this point was reached */
++ return 1;
++#else /* !USE_PAM */
+ char *unencrypted, *encrypted, *correct;
+ #if HAVE_GETSPNAM && HAVE_STRUCT_SPWD_SP_PWDP
+ /* Shadow passwd stuff for SVR3 and maybe other systems. */
+@@ -241,6 +324,7 @@ correct_password (const struct passwd *p
+ encrypted = crypt (unencrypted, correct);
+ memset (unencrypted, 0, strlen (unencrypted));
+ return STREQ (encrypted, correct);
++#endif /* !USE_PAM */
+ }
+
+ /* Update `environ' for the new shell based on PW, with SHELL being
+@@ -254,12 +338,18 @@ modify_environment (const struct passwd
+ /* Leave TERM unchanged. Set HOME, SHELL, USER, LOGNAME, PATH.
+ Unset all other environment variables. */
+ char const *term = getenv ("TERM");
++ char const *display = getenv ("DISPLAY");
++ char const *xauthority = getenv ("XAUTHORITY");
+ if (term)
+ term = xstrdup (term);
+ environ = xmalloc ((6 + !!term) * sizeof (char *));
+ environ[0] = NULL;
+ if (term)
+ xsetenv ("TERM", term);
++ if (display)
++ xsetenv ("DISPLAY", display);
++ if (xauthority)
++ xsetenv ("XAUTHORITY", xauthority);
+ xsetenv ("HOME", pw->pw_dir);
+ xsetenv ("SHELL", shell);
+ xsetenv ("USER", pw->pw_name);
+@@ -292,8 +382,13 @@ change_identity (const struct passwd *pw
+ {
+ #ifdef HAVE_INITGROUPS
+ errno = 0;
+- if (initgroups (pw->pw_name, pw->pw_gid) == -1)
++ if (initgroups (pw->pw_name, pw->pw_gid) == -1) {
++#ifdef USE_PAM
++ pam_close_session(pamh, 0);
++ pam_end(pamh, PAM_ABORT);
++#endif
+ error (EXIT_CANCELED, errno, _("cannot set groups"));
++ }
+ endgrent ();
+ #endif
+ if (setgid (pw->pw_gid))
+@@ -302,6 +397,31 @@ change_identity (const struct passwd *pw
+ error (EXIT_CANCELED, errno, _("cannot set user id"));
+ }
+
++#ifdef USE_PAM
++static int caught=0;
++/* Signal handler for parent process later */
++static void su_catch_sig(int sig)
++{
++ ++caught;
++}
++
++int
++pam_copyenv (pam_handle_t *pamh)
++{
++ char **env;
++
++ env = pam_getenvlist(pamh);
++ if(env) {
++ while(*env) {
++ if (putenv (*env))
++ xalloc_die ();
++ env++;
++ }
++ }
++ return(0);
++}
++#endif
++
+ /* Run SHELL, or DEFAULT_SHELL if SHELL is empty.
+ If COMMAND is nonzero, pass it to the shell with the -c option.
+ Pass ADDITIONAL_ARGS to the shell as more arguments; there
+@@ -309,17 +429,49 @@ change_identity (const struct passwd *pw
+
+ static void
+ run_shell (char const *shell, char const *command, char **additional_args,
+- size_t n_additional_args)
++ size_t n_additional_args, const struct passwd *pw)
+ {
+ size_t n_args = 1 + fast_startup + 2 * !!command + n_additional_args + 1;
+ char const **args = xnmalloc (n_args, sizeof *args);
+ size_t argno = 1;
++#ifdef USE_PAM
++ int child;
++ sigset_t ourset;
++ int status;
++
++ retval = pam_open_session(pamh,0);
++ if (retval != PAM_SUCCESS) {
++ fprintf (stderr, "could not open session\n");
++ exit (1);
++ }
++
++/* do this at the last possible moment, because environment variables may
++ be passed even in the session phase
++*/
++ if(pam_copyenv(pamh) != PAM_SUCCESS)
++ fprintf (stderr, "error copying PAM environment\n");
++
++ /* Credentials should be set in the parent */
++ if (pam_setcred(pamh, PAM_ESTABLISH_CRED) != PAM_SUCCESS) {
++ pam_close_session(pamh, 0);
++ fprintf(stderr, "could not set PAM credentials\n");
++ exit(1);
++ }
++
++ child = fork();
++ if (child == 0) { /* child shell */
++ change_identity (pw);
++ pam_end(pamh, 0);
++#endif
+
+ if (simulate_login)
+ {
+ char *arg0;
+ char *shell_basename;
+
++ if(chdir(pw->pw_dir))
++ error(0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
++
+ shell_basename = last_component (shell);
+ arg0 = xmalloc (strlen (shell_basename) + 2);
+ arg0[0] = '-';
+@@ -344,6 +496,67 @@ run_shell (char const *shell, char const
+ error (0, errno, "%s", shell);
+ exit (exit_status);
+ }
++#ifdef USE_PAM
++ } else if (child == -1) {
++ fprintf(stderr, "can not fork user shell: %s", strerror(errno));
++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
++ pam_close_session(pamh, 0);
++ pam_end(pamh, PAM_ABORT);
++ exit(1);
++ }
++ /* parent only */
++ sigfillset(&ourset);
++ if (sigprocmask(SIG_BLOCK, &ourset, NULL)) {
++ fprintf(stderr, "%s: signal malfunction\n", PROGRAM_NAME);
++ caught = 1;
++ }
++ if (!caught) {
++ struct sigaction action;
++ action.sa_handler = su_catch_sig;
++ sigemptyset(&action.sa_mask);
++ action.sa_flags = 0;
++ sigemptyset(&ourset);
++ if (sigaddset(&ourset, SIGTERM)
++ || sigaddset(&ourset, SIGALRM)
++ || sigaction(SIGTERM, &action, NULL)
++ || sigprocmask(SIG_UNBLOCK, &ourset, NULL)) {
++ fprintf(stderr, "%s: signal masking malfunction\n", PROGRAM_NAME);
++ caught = 1;
++ }
++ }
++ if (!caught) {
++ do {
++ int pid;
++
++ pid = waitpid(-1, &status, WUNTRACED);
++
++ if (((pid_t)-1 != pid) && (0 != WIFSTOPPED (status))) {
++ kill(getpid(), WSTOPSIG(status));
++ /* once we get here, we must have resumed */
++ kill(pid, SIGCONT);
++ }
++ } while (0 != WIFSTOPPED(status));
++ }
++
++ if (caught) {
++ fprintf(stderr, "\nSession terminated, killing shell...");
++ kill (child, SIGTERM);
++ }
++ /* Not checking retval on this because we need to call close session */
++ pam_setcred(pamh, PAM_DELETE_CRED | PAM_SILENT);
++ retval = pam_close_session(pamh, 0);
++ PAM_BAIL_P_VOID;
++ retval = pam_end(pamh, PAM_SUCCESS);
++ PAM_BAIL_P_VOID;
++ if (caught) {
++ sleep(2);
++ kill(child, SIGKILL);
++ fprintf(stderr, " ...killed.\n");
++ exit(-1);
++ }
++ exit ((0 != WIFEXITED (status)) ? WEXITSTATUS (status)
++ : WTERMSIG (status) + 128);
++#endif /* USE_PAM */
+ }
+
+ /* Return true if SHELL is a restricted shell (one not returned by
+@@ -511,9 +724,9 @@ main (int argc, char **argv)
+ shell = xstrdup (shell ? shell : pw->pw_shell);
+ modify_environment (pw, shell);
+
++#ifndef USE_PAM
+ change_identity (pw);
+- if (simulate_login && chdir (pw->pw_dir) != 0)
+- error (0, errno, _("warning: cannot change directory to %s"), pw->pw_dir);
++#endif
+
+ /* error() flushes stderr, but does not check for write failure.
+ Normally, we would catch this via our atexit() hook of
+@@ -523,5 +736,5 @@ main (int argc, char **argv)
+ if (ferror (stderr))
+ exit (EXIT_CANCELED);
+
+- run_shell (shell, command, argv + optind, MAX (0, argc - optind));
++ run_shell (shell, command, argv + optind, MAX (0, argc - optind), pw);
+ }
diff --git a/core/coreutils/coreutils-uname.patch b/core/coreutils/coreutils-uname.patch
new file mode 100644
index 000000000..b458abeba
--- /dev/null
+++ b/core/coreutils/coreutils-uname.patch
@@ -0,0 +1,173 @@
+On linux platforms, grok /proc/cpuinfo for the CPU/vendor info.
+
+Prob not suitable for upstream seeing as how it's 100% linux-specific
+http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00063.html
+
+Patch originally by Carlos E. Gorges <carlos@techlinux.com.br>, but
+heavily reworked to suck less.
+
+To add support for additional platforms, check out the show_cpuinfo()
+func in the linux/arch/<ARCH>/ source tree of the kernel.
+
+--- coreutils/src/uname.c
++++ coreutils/src/uname.c
+@@ -50,6 +50,11 @@
+ # include <mach-o/arch.h>
+ #endif
+
++#if defined(__linux__)
++# define USE_PROCINFO
++# define UNAME_HARDWARE_PLATFORM
++#endif
++
+ #include "system.h"
+ #include "error.h"
+ #include "quote.h"
+@@ -138,6 +143,117 @@
+ exit (status);
+ }
+
++#if defined(USE_PROCINFO)
++
++# if defined(__s390__) || defined(__s390x__)
++# define CPUINFO_FILE "/proc/sysinfo"
++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c"
++# else
++# define CPUINFO_FILE "/proc/cpuinfo"
++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c"
++# endif
++
++# define PROCINFO_PROCESSOR 0
++# define PROCINFO_HARDWARE_PLATFORM 1
++
++static void __eat_cpuinfo_space(char *buf)
++{
++ /* first eat trailing space */
++ char *tmp = buf + strlen(buf) - 1;
++ while (tmp > buf && isspace(*tmp))
++ *tmp-- = '\0';
++ /* then eat leading space */
++ tmp = buf;
++ while (*tmp && isspace(*tmp))
++ tmp++;
++ if (tmp != buf)
++ memmove(buf, tmp, strlen(tmp)+1);
++ /* finally collapse whitespace */
++ tmp = buf;
++ while (tmp[0] && tmp[1]) {
++ if (isspace(tmp[0]) && isspace(tmp[1])) {
++ memmove(tmp, tmp+1, strlen(tmp));
++ continue;
++ }
++ ++tmp;
++ }
++}
++
++static int __linux_procinfo(int x, char *fstr, size_t s)
++{
++ FILE *fp;
++
++ char *procinfo_keys[] = {
++ /* --processor --hardware-platform */
++ #if defined(__alpha__)
++ "cpu model", "system type"
++ #elif defined(__arm__)
++ "Processor", "Hardware"
++ #elif defined(__avr32__)
++ "processor", "cpu family"
++ #elif defined(__bfin__)
++ "CPU", "BOARD Name"
++ #elif defined(__cris__)
++ "cpu", "cpu model"
++ #elif defined(__frv__)
++ "CPU-Core", "System"
++ #elif defined(__i386__) || defined(__x86_64__)
++ "model name", "vendor_id"
++ #elif defined(__ia64__)
++ "family", "vendor"
++ #elif defined(__hppa__)
++ "cpu", "model"
++ #elif defined(__m68k__)
++ "CPU", "MMU"
++ #elif defined(__mips__)
++ "cpu model", "system type"
++ #elif defined(__powerpc__) || defined(__powerpc64__)
++ "cpu", "machine"
++ #elif defined(__s390__) || defined(__s390x__)
++ "Type", "Manufacturer"
++ #elif defined(__sh__)
++ "cpu type", "machine"
++ #elif defined(sparc) || defined(__sparc__)
++ "type", "cpu"
++ #elif defined(__vax__)
++ "cpu type", "cpu"
++ #else
++ "unknown", "unknown"
++ #endif
++ };
++
++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
++ char key[65], value[257], eol, *ret = NULL;
++
++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
++ __eat_cpuinfo_space(key);
++ if (!strcmp(key, procinfo_keys[x])) {
++ __eat_cpuinfo_space(value);
++ ret = value;
++ break;
++ }
++ if (eol != '\n') {
++ /* we need two fscanf's here in case the previous
++ * length limit caused us to read right up to the
++ * newline ... doing "%*[^\n]\n" wont eat the newline
++ */
++ fscanf(fp, "%*[^\n]");
++ fscanf(fp, "\n");
++ }
++ }
++ fclose(fp);
++
++ if (ret) {
++ strncpy(fstr, ret, s);
++ return 0;
++ }
++ }
++
++ return -1;
++}
++
++#endif
++
+ /* Print ELEMENT, preceded by a space if something has already been
+ printed. */
+
+@@ -250,10 +344,14 @@ main (int argc, char **argv)
+ if (toprint & PRINT_PROCESSOR)
+ {
+ char const *element = unknown;
+-#if HAVE_SYSINFO && defined SI_ARCHITECTURE
++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
+ {
+ static char processor[257];
++#if defined(USE_PROCINFO)
++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor))
++#else
+ if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
++#endif
+ element = processor;
+ }
+ #endif
+@@ -306,9 +404,13 @@ main (int argc, char **argv)
+ if (element == unknown)
+ {
+ static char hardware_platform[257];
++#if defined(USE_PROCINFO)
++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform))
++#else
+ size_t s = sizeof hardware_platform;
+ static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
+ if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
++#endif
+ element = hardware_platform;
+ }
+ #endif
diff --git a/core/coreutils/coreutils.install b/core/coreutils/coreutils.install
new file mode 100644
index 000000000..8caae6686
--- /dev/null
+++ b/core/coreutils/coreutils.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(coreutils.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/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
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/core/coreutils/su.pam b/core/coreutils/su.pam
new file mode 100644
index 000000000..cf15f40f1
--- /dev/null
+++ b/core/coreutils/su.pam
@@ -0,0 +1,9 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+# Uncomment the following line to implicitly trust users in the "wheel" group.
+#auth sufficient pam_wheel.so trust use_uid
+# Uncomment the following line to require a user to be in the "wheel" group.
+#auth required pam_wheel.so use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/core/cracklib/PKGBUILD b/core/cracklib/PKGBUILD
new file mode 100644
index 000000000..fb91d8651
--- /dev/null
+++ b/core/cracklib/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 106685 2011-01-17 20:46:24Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
+
+pkgname=cracklib
+pkgver=2.8.18
+pkgrel=1
+pkgdesc="Password Checking Library"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://sourceforge.net/projects/cracklib"
+depends=('glibc' 'zlib')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('79053ad8bc714a44cd660cb12116211b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --without-python
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ install -Dm644 dicts/cracklib-small $pkgdir/usr/share/dict/cracklib-small
+ sh ./util/cracklib-format dicts/cracklib-small \
+ | sh ./util/cracklib-packer $pkgdir/usr/share/cracklib/pw_dict
+}
diff --git a/core/crda/PKGBUILD b/core/crda/PKGBUILD
new file mode 100644
index 000000000..4fbb20111
--- /dev/null
+++ b/core/crda/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 79865 2010-05-08 15:22:52Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=crda
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Central Regulatory Domain Agent"
+arch=(i686 x86_64)
+url="http://wireless.kernel.org/en/developers/Regulatory/CRDA"
+license=('custom')
+depends=('wireless-regdb' 'libnl' 'libgcrypt' 'udev' 'iw')
+makedepends=('python-m2crypto')
+install=crda.install
+source=(http://wireless.kernel.org/download/crda/${pkgname}-${pkgver}.tar.bz2
+ crda.rc)
+md5sums=('5fc77af68b3e21736b8ef2f8b061c810'
+ '014eef3f8655e9a130064ec6891317fc')
+
+build() {
+ # Install crda, regdbdump and udev rules
+ msg "Compiling and installing crda ..."
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make crda regdbdump || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ # This rule automatically sets the regulatory domain when cfg80211 is loaded
+ echo 'ACTION=="add" SUBSYSTEM=="module", DEVPATH=="/module/cfg80211", RUN+="/etc/rc.d/wireless-regdom start >/dev/null"' >> ${pkgdir}/lib/udev/rules.d/85-regulatory.rules || return 1
+
+ msg "Installing license ..."
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/LICENSE ${pkgdir}/usr/share/licenses/crda/LICENSE || return 1
+
+ msg "Installing boot script ..."
+ install -D -m755 ${srcdir}/crda.rc ${pkgdir}/etc/rc.d/wireless-regdom || return 1
+}
diff --git a/core/crda/crda.install b/core/crda/crda.install
new file mode 100644
index 000000000..c18e15f71
--- /dev/null
+++ b/core/crda/crda.install
@@ -0,0 +1,18 @@
+## arg 1: the new package version
+post_install() {
+ echo "Uncomment the right regulatory domain in /etc/conf.d/wireless-regdom."
+ echo "It will automatically be set when necessary."
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ # In an upgrade from 1.0.1-1 or older, the wireless-regdom file moves from the crda package
+ # to the new wireless-regdb package. If the user changed the file, it is save to overwrite the one
+ # from wireless-regdb by the user-defined one
+ if [ $(vercmp $2 1.0.1-2) -lt 0 ]; then
+ if [ -f /etc/conf.d/wireless-regdom.pacorig -a -n "$(grep -v ^# /etc/conf.d/wireless-regdom.pacorig 2>/dev/null | grep -v ^$)" ]; then
+ mv /etc/conf.d/wireless-regdom.pacorig /etc/conf.d/wireless-regdom
+ fi
+ fi
+}
diff --git a/core/crda/crda.rc b/core/crda/crda.rc
new file mode 100755
index 000000000..13dbd870e
--- /dev/null
+++ b/core/crda/crda.rc
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/wireless-regdom
+
+case "$1" in
+ start)
+ if [ -n "${WIRELESS_REGDOM}" ]; then
+ stat_busy "Setting wireless regulatory domain: ${WIRELESS_REGDOM}"
+ if iw reg set ${WIRELESS_REGDOM}; then
+ stat_done
+ else
+ stat_fail
+ fi
+ fi
+ ;;
+ stop)
+ ;;
+ restart)
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 start"
+esac
+exit 0
diff --git a/core/cryptsetup/PKGBUILD b/core/cryptsetup/PKGBUILD
new file mode 100644
index 000000000..67006a82a
--- /dev/null
+++ b/core/cryptsetup/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 103928 2010-12-23 22:10:05Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=cryptsetup
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://code.google.com/p/cryptsetup/"
+groups=('base')
+depends=('device-mapper' 'libgcrypt' 'popt')
+conflicts=('mkinitcpio<0.5.99')
+options=('!libtool' '!emptydirs')
+source=(http://cryptsetup.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2
+ encrypt_hook
+ encrypt_install)
+sha256sums=('411129817ff29e6a957bcbdcd9a2c4c953c1539acd8af912c383262ba901b5ea'
+ '64601eae6fbf3e3afceccec5877557aa208a82497c33cc94ad0a686b4022b5dc'
+ '8e4920bb4b5ce96508aa0c42b9b07326b70daf630519f1aa1d8082bca709c12a')
+
+build() {
+ cd $srcdir/$pkgname-${pkgver}
+ ./configure --prefix=/usr --disable-static --sbindir=/sbin --libdir=/lib
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-${pkgver}
+ make DESTDIR=$pkgdir install
+ # install hook
+ install -D -m644 $srcdir/encrypt_hook $pkgdir/lib/initcpio/hooks/encrypt
+ install -D -m644 $srcdir/encrypt_install $pkgdir/lib/initcpio/install/encrypt
+ # Fix pkgconfig location
+ install -d -m755 $pkgdir/usr/lib
+ mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib/
+}
diff --git a/core/cryptsetup/encrypt_hook b/core/cryptsetup/encrypt_hook
new file mode 100644
index 000000000..e84bc6ed7
--- /dev/null
+++ b/core/cryptsetup/encrypt_hook
@@ -0,0 +1,131 @@
+# vim: set ft=sh:
+# TODO this one needs some work to work with lots of different
+# encryption schemes
+run_hook ()
+{
+ /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
+ if [ -e "/sys/class/misc/device-mapper" ]; then
+ if [ ! -e "/dev/mapper/control" ]; then
+ /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
+ fi
+ [ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
+
+ # Get keyfile if specified
+ ckeyfile="/crypto_keyfile.bin"
+ if [ "x${cryptkey}" != "x" ]; then
+ ckdev="$(echo "${cryptkey}" | cut -d: -f1)"
+ ckarg1="$(echo "${cryptkey}" | cut -d: -f2)"
+ ckarg2="$(echo "${cryptkey}" | cut -d: -f3)"
+ if poll_device "${ckdev}" ${rootdelay}; then
+ case ${ckarg1} in
+ *[!0-9]*)
+ # Use a file on the device
+ # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path
+ mkdir /ckey
+ mount -r -t ${ckarg1} ${ckdev} /ckey
+ dd if=/ckey/${ckarg2} of=${ckeyfile} >/dev/null 2>&1
+ umount /ckey
+ ;;
+ *)
+ # Read raw data from the block device
+ # ckarg1 is numeric: ckarg1=offset, ckarg2=length
+ dd if=${ckdev} of=${ckeyfile} bs=1 skip=${ckarg1} count=${ckarg2} >/dev/null 2>&1
+ ;;
+ esac
+ fi
+ [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase."
+ fi
+
+ if [ -n "${cryptdevice}" ]; then
+ DEPRECATED_CRYPT=0
+ cryptdev="$(echo "${cryptdevice}" | cut -d: -f1)"
+ cryptname="$(echo "${cryptdevice}" | cut -d: -f2)"
+ else
+ DEPRECATED_CRYPT=1
+ cryptdev="${root}"
+ cryptname="root"
+ fi
+
+ warn_deprecated() {
+ echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
+ echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
+ }
+
+ if poll_device "${cryptdev}" ${rootdelay}; then
+ if /sbin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then
+ [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
+ dopassphrase=1
+ # If keyfile exists, try to use that
+ if [ -f ${ckeyfile} ]; then
+ if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
+ dopassphrase=0
+ else
+ echo "Invalid keyfile. Reverting to passphrase."
+ fi
+ fi
+ # Ask for a passphrase
+ if [ ${dopassphrase} -gt 0 ]; then
+ echo ""
+ echo "A password is required to access the ${cryptname} volume:"
+
+ #loop until we get a real password
+ while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do
+ sleep 2;
+ done
+ fi
+ if [ -e "/dev/mapper/${cryptname}" ]; then
+ if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
+ export root="/dev/mapper/root"
+ fi
+ else
+ err "Password succeeded, but ${cryptname} creation failed, aborting..."
+ exit 1
+ fi
+ elif [ -n "${crypto}" ]; then
+ [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
+ msg "Non-LUKS encrypted device found..."
+ if [ $# -ne 5 ]; then
+ err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip"
+ err "Non-LUKS decryption not attempted..."
+ return 1
+ fi
+ exe="/sbin/cryptsetup create ${cryptname} ${cryptdev}"
+ tmp=$(echo "${crypto}" | cut -d: -f1)
+ [ -n "${tmp}" ] && exe="${exe} --hash \"${tmp}\""
+ tmp=$(echo "${crypto}" | cut -d: -f2)
+ [ -n "${tmp}" ] && exe="${exe} --cipher \"${tmp}\""
+ tmp=$(echo "${crypto}" | cut -d: -f3)
+ [ -n "${tmp}" ] && exe="${exe} --key-size \"${tmp}\""
+ tmp=$(echo "${crypto}" | cut -d: -f4)
+ [ -n "${tmp}" ] && exe="${exe} --offset \"${tmp}\""
+ tmp=$(echo "${crypto}" | cut -d: -f5)
+ [ -n "${tmp}" ] && exe="${exe} --skip \"${tmp}\""
+ if [ -f ${ckeyfile} ]; then
+ exe="${exe} --key-file ${ckeyfile}"
+ else
+ exe="${exe} --verify-passphrase"
+ echo ""
+ echo "A password is required to access the ${cryptname} volume:"
+ fi
+ eval "${exe} ${CSQUIET}"
+
+ if [ $? -ne 0 ]; then
+ err "Non-LUKS device decryption failed. verify format: "
+ err " crypto=hash:cipher:keysize:offset:skip"
+ exit 1
+ fi
+ if [ -e "/dev/mapper/${cryptname}" ]; then
+ if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
+ export root="/dev/mapper/root"
+ fi
+ else
+ err "Password succeeded, but ${cryptname} creation failed, aborting..."
+ exit 1
+ fi
+ else
+ err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."
+ fi
+ fi
+ rm -f ${ckeyfile}
+ fi
+}
diff --git a/core/cryptsetup/encrypt_install b/core/cryptsetup/encrypt_install
new file mode 100644
index 000000000..9446e6864
--- /dev/null
+++ b/core/cryptsetup/encrypt_install
@@ -0,0 +1,26 @@
+# vim: set ft=sh:
+
+install ()
+{
+ if [ -z "${CRYPTO_MODULES}" ]; then
+ MODULES=" dm-crypt $(all_modules "/crypto/") "
+ else
+ MODULES=" dm-crypt ${CRYPTO_MODULES} "
+ fi
+ FILES=""
+ SCRIPT="encrypt"
+ add_dir "/dev/mapper"
+ [ -f "/sbin/cryptsetup" ] && add_binary "/sbin/cryptsetup" "/sbin/cryptsetup"
+ [ -f "/usr/sbin/cryptsetup" ] && add_binary "/usr/sbin/cryptsetup" "/sbin/cryptsetup"
+ add_binary "/sbin/dmsetup"
+ add_file "/lib/udev/rules.d/10-dm.rules"
+ add_file "/lib/udev/rules.d/13-dm-disk.rules"
+ add_file "/lib/udev/rules.d/95-dm-notify.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook allows for an encrypted root device.
+HELPEOF
+}
diff --git a/core/dash/PKGBUILD b/core/dash/PKGBUILD
new file mode 100644
index 000000000..578f4b17f
--- /dev/null
+++ b/core/dash/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 105861 2011-01-13 15:23:08Z stephane $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgname=dash
+pkgver=0.5.6.1
+pkgrel=2
+pkgdesc="A POSIX compliant shell that aims to be as small as possible"
+arch=('i686' 'x86_64')
+url="http://gondor.apana.org.au/~herbert/dash/"
+license=('BSD')
+groups=('base')
+depends=('glibc')
+source=("http://gondor.apana.org.au/~herbert/dash/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('1c846f4f5a33c0050b2045a6f7037e56')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --exec-prefix=""
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # license
+ install -m644 -D COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/core/db/PKGBUILD b/core/db/PKGBUILD
new file mode 100644
index 000000000..c9e1369f6
--- /dev/null
+++ b/core/db/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 108790 2011-02-03 13:05:02Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=db
+pkgver=5.1.25
+_basever=5.1.25
+pkgrel=1
+pkgdesc="The Berkeley DB embedded database system"
+arch=('i686' 'x86_64')
+url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
+license=('custom')
+depends=('gcc-libs' 'sh')
+options=('!libtool')
+install=db.install
+source=(http://download-uk.oracle.com/berkeley-db/db-${_basever}.tar.gz)
+md5sums=('06656429bfc1abb6c0498eaeff70cd04')
+
+build() {
+ cd ${srcdir}/$pkgname-${_basever}/build_unix
+ ../dist/configure --prefix=/usr --enable-compat185 \
+ --enable-shared --enable-static --enable-cxx --enable-dbm
+ make LIBSO_LIBS=-lpthread
+}
+
+package() {
+ cd ${srcdir}/$pkgname-${_basever}/build_unix
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/docs
+ install -Dm644 ${srcdir}/${pkgname}-${_basever}/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/db/db.install b/core/db/db.install
new file mode 100644
index 000000000..03b64042d
--- /dev/null
+++ b/core/db/db.install
@@ -0,0 +1,5 @@
+post_upgrade() {
+ if [ "$(vercmp $2 5.1)" -lt 0 ]; then
+ echo " >> Major version update. Consider running db_upgrade on Berkeley DB databases."
+ fi
+}
diff --git a/core/dbus-core/PKGBUILD b/core/dbus-core/PKGBUILD
new file mode 100644
index 000000000..99df87de7
--- /dev/null
+++ b/core/dbus-core/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 103698 2010-12-22 15:04:52Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+#
+pkgname=dbus-core
+pkgver=1.4.1
+pkgrel=1
+pkgdesc="Freedesktop.org message bus system"
+url="http://www.freedesktop.org/Software/dbus"
+arch=(i686 x86_64)
+license=('GPL' 'custom')
+depends=('expat>=2.0.1' 'coreutils' 'filesystem')
+conflicts=('dbus<1.2.3-2')
+options=(!libtool)
+install=dbus.install
+source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz
+ dbus)
+md5sums=('99cb057700c0455fb68f8d57902f77ac'
+ '08f93dd19cffd1b45ab05c1fd4efb560')
+
+build() {
+ cd "${srcdir}/dbus-${pkgver}"
+ ECHO="echo" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
+ --with-system-pid-file=/var/run/dbus.pid \
+ --enable-inotify --disable-dnotify \
+ --disable-verbose-mode --disable-static \
+ --disable-tests --disable-asserts --without-x \
+ --with-systemdsystemunitdir=/lib/systemd/system
+ make
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/bin/dbus-launch"
+ rm -f "${pkgdir}/usr/share/man/man1/dbus-launch.1"
+
+ chown 81:81 "${pkgdir}/var/run/dbus"
+
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 "${srcdir}/dbus" "${pkgdir}/etc/rc.d/"
+
+ #Fix configuration file
+ sed -i -e 's|<user>81</user>|<user>dbus</user>|' "${pkgdir}/etc/dbus-1/system.conf"
+
+ #install .keep files so pacman doesn't delete empty dirs
+ touch "${pkgdir}/usr/share/dbus-1/services/.keep"
+ touch "${pkgdir}/usr/share/dbus-1/system-services/.keep"
+ touch "${pkgdir}/etc/dbus-1/session.d/.keep"
+ touch "${pkgdir}/etc/dbus-1/system.d/.keep"
+
+ rmdir "${pkgdir}/usr/lib/dbus-1.0/dbus-1"
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/dbus-core"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/dbus-core/"
+}
diff --git a/core/dbus-core/dbus b/core/dbus-core/dbus
new file mode 100644
index 000000000..66b84cae0
--- /dev/null
+++ b/core/dbus-core/dbus
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting D-BUS system messagebus"
+ if [ ! -x /var/run/dbus ] ; then
+ install -m755 -g 81 -o 81 -d /var/run/dbus
+ fi
+ if [ -x /usr/bin/dbus-uuidgen ] ; then
+ /usr/bin/dbus-uuidgen --ensure
+ fi
+
+ /usr/bin/dbus-daemon --system
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dbus
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping D-BUS system messagebus"
+ [ -f /var/run/dbus.pid ] && kill `cat /var/run/dbus.pid` >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/dbus.pid
+ rm_daemon dbus
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ reload)
+ stat_busy "Reloading D-BUS configuration"
+ [ -f /var/run/dbus.pid ] && /usr/bin/dbus-send \
+ --system --type=method_call \
+ --dest=org.freedesktop.DBus \
+ / org.freedesktop.DBus.ReloadConfig
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|reload}"
+ ;;
+esac
+exit 0
diff --git a/core/dbus-core/dbus.install b/core/dbus-core/dbus.install
new file mode 100644
index 000000000..44f4475ee
--- /dev/null
+++ b/core/dbus-core/dbus.install
@@ -0,0 +1,24 @@
+post_install() {
+ getent group dbus >/dev/null || usr/sbin/groupadd -g 81 dbus
+ getent passwd dbus >/dev/null || usr/sbin/useradd -c 'System message bus' -u 81 -g dbus -d '/' -s /bin/false dbus
+ usr/bin/passwd -l dbus &>/dev/null
+ dbus-uuidgen --ensure
+}
+
+post_upgrade() {
+ post_install
+
+ #Make sure new rc script can shutdown running dbus
+ if [ -f var/run/dbus/pid ]; then
+ mv var/run/dbus/pid var/run/dbus.pid
+ fi
+}
+
+post_remove() {
+ if getent passwd dbus >/dev/null; then
+ usr/sbin/userdel dbus
+ fi
+ if getent group dbus >/dev/null; then
+ usr/sbin/groupdel dbus
+ fi
+}
diff --git a/core/dcron/PKGBUILD b/core/dcron/PKGBUILD
new file mode 100644
index 000000000..61999c950
--- /dev/null
+++ b/core/dcron/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Paul Mattal <paul.archlinux.org>
+
+pkgname=dcron
+pkgver=4.4
+pkgrel=2
+pkgdesc="dillon's lightweight cron daemon"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.jimpryor.net/linux/dcron"
+backup=(var/spool/cron/root etc/conf.d/crond)
+depends=('glibc')
+provides=('cron')
+groups=('base')
+source=("http://www.jimpryor.net/linux/releases/${pkgname}-${pkgver}.tar.gz"
+ 'dcron-logname.patch'
+ 'dcron.rc.d'
+ 'dcron.conf.d')
+md5sums=('02d848ba043a9df5bf2102a9f4bc04bd'
+ 'c6054421b48100f7a2a7a36e2d33c92a'
+ '73693cdd59df526e729cdec99c5ed8fb'
+ '5bfa07beb54d0beaf3f38225e4d5a9fa')
+optdepends=('smtp-server: sending cron job output via email')
+install=$pkgname.install
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}" || return 1
+
+ # patch to add LOGNAME environment variable
+ patch -p1 -i $srcdir/dcron-logname.patch || return 1
+
+ # by default, any member of group "users" can edit their own crontab
+ make \
+ PREFIX=/usr \
+ CRONTAB_GROUP=users \
+ CRONTABS=/var/spool/cron \
+ CRONSTAMPS=/var/spool/cronstamps \
+ || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ # install standard configuration and scripts
+ install -d -m755 "$pkgdir/etc/cron."{hourly,daily,weekly,monthly} \
+ || return 1
+ install -D -m755 extra/run-cron "$pkgdir/usr/sbin/run-cron" || return 1
+ install -D -m0600 extra/root.crontab "$pkgdir/var/spool/cron/root" \
+ || return 1
+
+ # install Arch configuration and launch scripts
+ install -D -m755 "$srcdir/dcron.rc.d" "$pkgdir/etc/rc.d/crond" || return 1
+ install -D -m0644 "$srcdir/dcron.conf.d" "$pkgdir/etc/conf.d/crond" || return 1
+}
diff --git a/core/dcron/dcron-logname.patch b/core/dcron/dcron-logname.patch
new file mode 100644
index 000000000..c37c5f45f
--- /dev/null
+++ b/core/dcron/dcron-logname.patch
@@ -0,0 +1,25 @@
+diff -aur dcron-4.4/chuser.c dcron-4.4.logname/chuser.c
+--- dcron-4.4/chuser.c 2010-02-15 11:18:13.111967483 +0100
++++ dcron-4.4.logname/chuser.c 2010-02-15 11:18:29.615531204 +0100
+@@ -25,6 +25,7 @@
+ return(-1);
+ }
+ setenv("USER", pas->pw_name, 1);
++ setenv("LOGNAME", pas->pw_name, 1);
+ setenv("HOME", pas->pw_dir, 1);
+ setenv("SHELL", "/bin/sh", 1);
+
+diff -aur dcron-4.4/crontab.1 dcron-4.4.logname/crontab.1
+--- dcron-4.4/crontab.1 2010-02-15 11:18:13.111967483 +0100
++++ dcron-4.4.logname/crontab.1 2010-02-15 11:19:48.295707950 +0100
+@@ -57,8 +57,8 @@
+ .PP
+ Nor does it do any special environment handling.
+ A shell script is better-suited to doing that than a cron daemon.
+-This cron daemon sets up only three environment variables: USER,
+-HOME, and SHELL.
++This cron daemon sets up only four environment variables: USER,
++LOGNAME, HOME, and SHELL.
+ .PP
+ Our crontab format is roughly similar to that used by vixiecron.
+ Individual fields may contain a time, a time range, a time range
diff --git a/core/dcron/dcron.conf.d b/core/dcron/dcron.conf.d
new file mode 100644
index 000000000..763c71263
--- /dev/null
+++ b/core/dcron/dcron.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to crond
+#
+CROND_ARGS="-S -l info"
diff --git a/core/dcron/dcron.install b/core/dcron/dcron.install
new file mode 100644
index 000000000..ba08b3af1
--- /dev/null
+++ b/core/dcron/dcron.install
@@ -0,0 +1,10 @@
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ if [ "`vercmp $2 4.0`" -lt 0 ]
+ then
+ echo "Restart crond, since you're upgrading to the dcron 4.x series."
+ fi
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/dcron/dcron.rc.d b/core/dcron/dcron.rc.d
new file mode 100644
index 000000000..b1a5770e6
--- /dev/null
+++ b/core/dcron/dcron.rc.d
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/crond
+
+PID=$(pidof -o %PPID /usr/sbin/crond)
+case $1 in
+start)
+ stat_busy "Starting Cron Daemon"
+
+ # defaults to using syslog, and sendmail-ing cron output to local user
+ # to mail output to remote address instead, add "-m user@host"
+ # to CROND_ARGS in /etc/conf.d/crond
+ if [[ -z $PID ]] && /usr/sbin/crond $CROND_ARGS; then
+
+ PID=$(pidof -o %PPID /usr/sbin/crond)
+ echo "$PID" > /var/run/crond.pid
+ add_daemon crond
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+stop)
+ stat_busy "Stopping Cron Daemon"
+ if [[ ! -z $PID ]] && kill "$PID" &>/dev/null; then
+ rm_daemon crond
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "Usage: $0 {start|stop|restart}" >&2
+ exit 1
+
+esac
diff --git a/core/dhcpcd/PKGBUILD b/core/dhcpcd/PKGBUILD
new file mode 100644
index 000000000..e4fb4b8cd
--- /dev/null
+++ b/core/dhcpcd/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 111279 2011-02-25 16:37:08Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Tom Killian <tom.archlinux.org>
+# Contributor: Judd Vinet <jvinet.zeroflux.org>
+
+pkgname=dhcpcd
+pkgver=5.2.11
+pkgrel=1
+pkgdesc="RFC2131 compliant DHCP client daemon"
+url="http://roy.marples.name/dhcpcd/"
+arch=('i686' 'x86_64')
+license=('BSD')
+groups=('base')
+depends=('glibc' 'sh')
+backup=('etc/conf.d/dhcpcd' 'etc/dhcpcd.conf')
+options=('emptydirs') # We Need the Empty /var/lib/dhcpcd Directory
+source=("http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2" \
+ 'dhcpcd.conf.d')
+sha1sums=('3b170b45af314f84008650bb7447320655969241'
+ 'b67b9ce6a2faaca75fea356966a16be2283b7db0')
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # configure variables
+ ./configure --libexecdir=/usr/lib/dhcpcd --dbdir=/var/lib/dhcpcd
+
+ # Build
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Create Binary Symlink
+ install -d ${pkgdir}/usr/sbin
+ ln -sf /sbin/dhcpcd ${pkgdir}/usr/sbin/dhcpcd
+
+ # Install Configuration File used in /etc/rc.d/network
+ install -D -m644 ../dhcpcd.conf.d $pkgdir/etc/conf.d/$pkgname
+
+ # Install License
+ install -d $pkgdir/usr/share/licenses/$pkgname
+ awk '{if(FNR<27)print $0}' ${srcdir}/${pkgname}-${pkgver}/configure.h \
+ >> ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # Set Options in /etc/dhcpcd.conf
+ echo noipv4ll >> ${pkgdir}/etc/dhcpcd.conf # Disable ip4vall
+}
diff --git a/core/dhcpcd/dhcpcd.conf.d b/core/dhcpcd/dhcpcd.conf.d
new file mode 100644
index 000000000..83c6f14ad
--- /dev/null
+++ b/core/dhcpcd/dhcpcd.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to the DHCP client daemon
+#
+
+DHCPCD_ARGS="-q"
+
diff --git a/core/dialog/PKGBUILD b/core/dialog/PKGBUILD
new file mode 100644
index 000000000..b9f4f68ba
--- /dev/null
+++ b/core/dialog/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 113956 2011-03-10 22:08:22Z eric $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=dialog
+pkgver=1.1_20110302
+pkgrel=1
+pkgdesc="A tool to display dialog boxes from shell scripts"
+arch=('i686' 'x86_64')
+url="http://invisible-island.net/dialog/"
+license=('LGPL2.1')
+depends=('ncurses')
+source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver/_/-}.tgz)
+md5sums=('2eaa82055b86006e205d2c3f74d9b800')
+sha1sums=('ba4e79abaf579e0d23f247ae65196437f8d8e031')
+
+build() {
+ cd "${srcdir}/$pkgname-${pkgver/_/-}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-ncursesw --enable-nls
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-${pkgver/_/-}"
+ make DESTDIR="${pkgdir}" install install-lib
+}
diff --git a/core/diffutils/PKGBUILD b/core/diffutils/PKGBUILD
new file mode 100644
index 000000000..a5cec46b3
--- /dev/null
+++ b/core/diffutils/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 102649 2010-12-09 13:50:53Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=diffutils
+pkgver=3.0
+pkgrel=2
+pkgdesc="Utility programs used for creating patch files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/diffutils"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'sh')
+install=diffutils.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+md5sums=('7624eb7e6b53ea3ce38958a092d2216e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/diffutils/diffutils.install b/core/diffutils/diffutils.install
new file mode 100644
index 000000000..3ebec2831
--- /dev/null
+++ b/core/diffutils/diffutils.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(diff.info)
+
+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/core/dmraid/PKGBUILD b/core/dmraid/PKGBUILD
new file mode 100644
index 000000000..4161a74b1
--- /dev/null
+++ b/core/dmraid/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 77425 2010-04-12 20:48:57Z thomas $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+#Contributor: Urs Wolfer <uwolfer @ fwo.ch>
+
+pkgname=dmraid
+pkgver=1.0.0.rc16+CVS
+pkgrel=2
+pkgdesc="Device mapper RAID interface"
+url="http://people.redhat.com/~heinzm/sw/dmraid/"
+depends=('device-mapper>=2.0.54')
+arch=('i686' 'x86_64')
+license=('GPL')
+source=(ftp://ftp.archlinux.org/other/dmraid/$pkgname-$pkgver.tar.bz2
+ #http://people.redhat.com/~heinzm/sw/dmraid/src/$pkgname-$pkgver.tar.bz2
+ dmraid_install
+ dmraid_hook)
+install=dmraid.install
+md5sums=('c0de87073de96b311d26ab0170b2a753'
+ 'd01908b414e1686c0f3233ff37de78a5'
+ '0a748b6e78b156f2f9dda45fc629651f')
+
+build() {
+ cd "$srcdir"/$pkgname/$pkgver
+
+ ./configure --enable-led --enable-intel_led
+ make || return 1
+ make DESTDIR="$pkgdir" mandir=/usr/share/man includedir=/usr/include install || return 1
+ mkdir -p "$pkgdir"/var/lock/dmraid
+ chmod 1777 "$pkgdir"/var/lock/
+ install -D -m644 "$srcdir"/dmraid_install "$pkgdir"/lib/initcpio/install/dmraid
+ install -D -m644 "$srcdir"/dmraid_hook "$pkgdir"/lib/initcpio/hooks/dmraid
+ # fix permissions
+ chmod 644 "$pkgdir"/lib/libdmraid.a
+ chmod 644 "$pkgdir"/usr/include/dmraid/*
+}
diff --git a/core/dmraid/dmraid.install b/core/dmraid/dmraid.install
new file mode 100644
index 000000000..64899e785
--- /dev/null
+++ b/core/dmraid/dmraid.install
@@ -0,0 +1,14 @@
+post_upgrade() {
+ if [ "$(vercmp $2 1.0.0.rc15)" -lt 0 ]; then
+ # important upgrade notice
+ echo ">>>"
+ echo ">>> IMPORTANT DMRAID UPGRADE NOTICE"
+ echo ">>> -------------------------------"
+ echo ">>> Version 1.0.0.rc15 and greater introduce a new name scheme:"
+ echo ">>> You need to add an additional 'p' in front of your number."
+ echo ">>> e.g. <yourname><number> --> <yourname>p<number>"
+ echo ">>> firsthd1 --> firsthdp1"
+ echo ">>> Please change your bootloader and fstab accordingly."
+ echo ">>>"
+ fi
+}
diff --git a/core/dmraid/dmraid_hook b/core/dmraid/dmraid_hook
new file mode 100644
index 000000000..d4e758c34
--- /dev/null
+++ b/core/dmraid/dmraid_hook
@@ -0,0 +1,18 @@
+# vim: set ft=sh:
+run_hook ()
+{
+ /sbin/modprobe -q dm-mod >/dev/null 2>&1
+ /sbin/modprobe -q dm-mirror >/dev/null 2>&1
+ if [ -e "/sys/class/misc/device-mapper" ]; then
+ if [ ! -e "/dev/mapper/control" ]; then
+ /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
+ fi
+ msg ":: Activating dmraid arrays..."
+ # prevent any event monitoring calls with -I
+ if [ "${quiet}" = "y" ]; then
+ /sbin/dmraid -ay -I -Z >/dev/null
+ else
+ /sbin/dmraid -ay -I -Z
+ fi
+ fi
+}
diff --git a/core/dmraid/dmraid_install b/core/dmraid/dmraid_install
new file mode 100644
index 000000000..a20960aed
--- /dev/null
+++ b/core/dmraid/dmraid_install
@@ -0,0 +1,20 @@
+# vim: set ft=sh:
+
+install ()
+{
+ MODULES=" dm-mod dm-mirror "
+ BINARIES="/sbin/dmraid /sbin/dmsetup"
+ FILES=""
+ SCRIPT="dmraid"
+ add_dir "/dev/mapper"
+ add_file "/lib/udev/rules.d/10-dm.rules"
+ add_file "/lib/udev/rules.d/13-dm-disk.rules"
+ add_file "/lib/udev/rules.d/95-dm-notify.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook loads the necessary modules for a dmraid root device.
+HELPEOF
+}
diff --git a/core/dnsutils/PKGBUILD b/core/dnsutils/PKGBUILD
new file mode 100644
index 000000000..345f04e7c
--- /dev/null
+++ b/core/dnsutils/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 112955 2011-03-08 00:16:14Z bisson $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: mario <mario_vazq@hotmail.com>
+
+pkgname=dnsutils
+
+# Use a period and not a hyphen before the patch level for proper versioning.
+pkgver=9.8.0
+_pkgver=9.8.0
+pkgrel=1
+
+pkgdesc='Various DNS utilities - dig host nslookup nsupdate'
+arch=('i686' 'x86_64')
+url='https://www.isc.org/software/bind'
+license=('custom:ISC')
+depends=('openssl' 'idnkit')
+replaces=('bind-tools' 'host')
+options=('!makeflags')
+source=("http://ftp.isc.org/isc/bind9/${_pkgver}/bind-${_pkgver}.tar.gz"
+ 'tools-only.patch')
+sha1sums=('33019694ef3119d9daa1e8ff5117a6688e188528'
+ 'ac88c89e25c26d73095a3dd85e1ca1070d184ded')
+
+build() {
+ cd "${srcdir}/bind-${_pkgver}"
+ patch -p1 < ../tools-only.patch
+ export STD_CDEFINES='-DDIG_SIGCHASE'
+ ./configure \
+ --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --with-openssl=yes --with-idn=yes --disable-linux-caps
+ make
+}
+
+package() {
+ cd "${srcdir}/bind-${_pkgver}/bin"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 ../COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/core/dnsutils/tools-only.patch b/core/dnsutils/tools-only.patch
new file mode 100644
index 000000000..b46b71f60
--- /dev/null
+++ b/core/dnsutils/tools-only.patch
@@ -0,0 +1,25 @@
+diff -Naur bind-9.7.1-P2.orig/bin/Makefile.in bind-9.7.1-P2/bin/Makefile.in
+--- bind-9.7.1-P2.orig/bin/Makefile.in 2009-10-05 08:07:08.000000000 -0400
++++ bind-9.7.1-P2/bin/Makefile.in 2010-07-22 15:55:00.000000000 -0400
+@@ -19,8 +19,7 @@
+ VPATH = @srcdir@
+ top_srcdir = @top_srcdir@
+
+-SUBDIRS = named rndc dig dnssec tests tools nsupdate \
+- check confgen @PKCS11_TOOLS@
++SUBDIRS = dig nsupdate
+ TARGETS =
+
+ @BIND9_MAKE_RULES@
+diff -Naur bind-9.7.1-P2.orig/lib/Makefile.in bind-9.7.1-P2/lib/Makefile.in
+--- bind-9.7.1-P2.orig/lib/Makefile.in 2007-06-19 19:47:13.000000000 -0400
++++ bind-9.7.1-P2/lib/Makefile.in 2010-07-22 15:56:29.000000000 -0400
+@@ -23,7 +23,7 @@
+ # Attempt to disable parallel processing.
+ .NOTPARALLEL:
+ .NO_PARALLEL:
+-SUBDIRS = isc isccc dns isccfg bind9 lwres tests
++SUBDIRS = isc dns isccfg bind9 lwres
+ TARGETS =
+
+ @BIND9_MAKE_RULES@
diff --git a/core/e2fsprogs/MIT-LICENSE b/core/e2fsprogs/MIT-LICENSE
new file mode 100644
index 000000000..d849b28f2
--- /dev/null
+++ b/core/e2fsprogs/MIT-LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2003-2007 Theodore Ts'o <tytso@mit.edu>
+Copyright (c) 1997-2003 Yann Dirson <dirson@debian.org>
+Copyright (c) 2001 Alcove <http://www.alcove.com/>
+Copyright (c) 1997 Klee Dienes
+Copyright (c) 1995-1996 Michael Nonweiler <mrn20@cam.ac.uk>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject
+to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/core/e2fsprogs/PKGBUILD b/core/e2fsprogs/PKGBUILD
new file mode 100644
index 000000000..09fa0f395
--- /dev/null
+++ b/core/e2fsprogs/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 104009 2010-12-25 10:42:37Z allan $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=e2fsprogs
+pkgver=1.41.14
+pkgrel=1
+pkgdesc="Ext2/3/4 filesystem utilities"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'MIT')
+url="http://e2fsprogs.sourceforge.net"
+groups=('base')
+depends=('sh' 'util-linux-ng')
+makedepends=('bc')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'MIT-LICENSE')
+backup=('etc/mke2fs.conf')
+install=${pkgname}.install
+sha1sums=('24f9364fa3d4c0d7d00cb627b819d0e51055d6c5'
+ 'f4a0d5b0cdb980e3fedd6f5e7dde0b0ffb7bbdfb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Remove unnecessary init.d directory
+ sed -i '/init\.d/s|^|#|' misc/Makefile.in
+
+ ./configure --prefix=/usr --with-root-prefix="" --enable-elf-shlibs \
+ --disable-fsck --disable-uuidd \
+ --disable-libuuid --disable-libblkid
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install install-libs
+
+ sed -i -e 's/^AWK=.*/AWK=awk/' "${pkgdir}/usr/bin/compile_et"
+
+ # remove references to build directory
+ sed -i -e 's#^SS_DIR=.*#SS_DIR="/usr/share/ss"#' "${pkgdir}/usr/bin/mk_cmds"
+ sed -i -e 's#^ET_DIR=.*#ET_DIR="/usr/share/et"#' "${pkgdir}/usr/bin/compile_et"
+
+ # install MIT license
+ install -Dm644 "${srcdir}/MIT-LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/MIT-LICENSE"
+}
diff --git a/core/e2fsprogs/e2fsprogs.install b/core/e2fsprogs/e2fsprogs.install
new file mode 100644
index 000000000..1a7fe20d7
--- /dev/null
+++ b/core/e2fsprogs/e2fsprogs.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libext2fs.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/e2fsprogs/mke2fs.conf b/core/e2fsprogs/mke2fs.conf
new file mode 100644
index 000000000..92464e3b4
--- /dev/null
+++ b/core/e2fsprogs/mke2fs.conf
@@ -0,0 +1,26 @@
+[defaults]
+ base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
+ blocksize = 4096
+ inode_size = 128
+ inode_ratio = 16384
+
+[fs_types]
+ small = {
+ blocksize = 1024
+ inode_size = 128
+ inode_ratio = 4096
+ }
+ floppy = {
+ blocksize = 1024
+ inode_size = 128
+ inode_ratio = 8192
+ }
+ news = {
+ inode_ratio = 4096
+ }
+ largefile = {
+ inode_ratio = 1048576
+ }
+ largefile4 = {
+ inode_ratio = 4194304
+ }
diff --git a/core/ed/PKGBUILD b/core/ed/PKGBUILD
new file mode 100644
index 000000000..a644e33fa
--- /dev/null
+++ b/core/ed/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 108145 2011-01-30 11:04:13Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=ed
+pkgver=1.5
+pkgrel=2
+pkgdesc="A POSIX-compliant line editor"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnu.org/software/ed/ed.html"
+install=ed.install
+depends=('glibc' 'sh')
+options=('!emptydirs')
+source=(ftp://ftp.gnu.org/gnu/ed/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e66c03d7e4c67b025d5b6093ec678267')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/ \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ cd ${pkgdir}/usr/share/info
+ ln ed.info red.info
+}
diff --git a/core/ed/ed.install b/core/ed/ed.install
new file mode 100644
index 000000000..637807f96
--- /dev/null
+++ b/core/ed/ed.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(ed.info red.info)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/elfutils/PKGBUILD b/core/elfutils/PKGBUILD
new file mode 100644
index 000000000..7aef0c8f6
--- /dev/null
+++ b/core/elfutils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 114401 2011-03-13 10:05:11Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andrej Gelenberg <andrej.gelenberg@udo.edu>
+
+pkgname=elfutils
+pkgver=0.152
+pkgrel=1
+pkgdesc="Collection of libraries and utilities for working with ELF object files and DWARF debugging information"
+arch=('i686' 'x86_64')
+url="https://fedorahosted.org/elfutils/"
+license=('GPL2')
+depends=('glibc')
+#optdepends=('zlib' 'xz' 'bzip2')
+provides=('libelf')
+replaces=('libelf')
+conflicts=('libelf')
+source=(https://fedorahosted.org/releases/e/l/elfutils/${pkgver}/elfutils-${pkgver}.tar.bz2)
+md5sums=('39739ed58a0fa1862eff8735f111fe5c')
+
+build()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --program-prefix="eu-"
+ make
+ make check
+}
+
+package()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/eventlog/ChangeLog b/core/eventlog/ChangeLog
new file mode 100644
index 000000000..f2f386dfe
--- /dev/null
+++ b/core/eventlog/ChangeLog
@@ -0,0 +1,10 @@
+2010-07-10 Dan McGee <dan@archlinux.org>
+
+ * Updated PKGBUILD to be in line with standard style
+ * Upstream update
+
+2009-01-03 Eric Belanger <eric@archlinux.org>
+
+ * eventlog 0.2.9-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/core/eventlog/PKGBUILD b/core/eventlog/PKGBUILD
new file mode 100644
index 000000000..36f657b40
--- /dev/null
+++ b/core/eventlog/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 85218 2010-07-10 21:39:54Z dan $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=eventlog
+pkgver=0.2.12
+pkgrel=1
+pkgdesc="A new API to format and send structured log messages"
+arch=('i686' 'x86_64')
+url="http://www.balabit.com/support/community/products/"
+license=('BSD')
+depends=('glibc')
+options=('!libtool')
+changelog=ChangeLog
+source=(http://www.balabit.com/downloads/files/eventlog/${pkgver%.*}/eventlog_${pkgver}.tar.gz)
+md5sums=('3d6ebda8a161d36cb40d09328f78786b')
+sha1sums=('3e35a634e7de029ab9d36995a085bfcb00ed6a4d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/expat/CVE-2009-3560.patch b/core/expat/CVE-2009-3560.patch
new file mode 100644
index 000000000..5fe9c36c8
--- /dev/null
+++ b/core/expat/CVE-2009-3560.patch
@@ -0,0 +1,13 @@
+diff -urNad trunk~/lib/xmlparse.c trunk/lib/xmlparse.c
+--- trunk~/lib/xmlparse.c 2007-05-08 04:25:35.000000000 +0200
++++ trunk/lib/xmlparse.c 2009-12-29 21:57:22.141732904 +0100
+@@ -3703,6 +3703,9 @@
+ return XML_ERROR_UNCLOSED_TOKEN;
+ case XML_TOK_PARTIAL_CHAR:
+ return XML_ERROR_PARTIAL_CHAR;
++ case -XML_TOK_PROLOG_S:
++ tok = -tok;
++ break;
+ case XML_TOK_NONE:
+ #ifdef XML_DTD
+ /* for internal PE NOT referenced between declarations */
diff --git a/core/expat/CVE-2009-3720.patch b/core/expat/CVE-2009-3720.patch
new file mode 100644
index 000000000..65d16431f
--- /dev/null
+++ b/core/expat/CVE-2009-3720.patch
@@ -0,0 +1,12 @@
+diff -urNad trunk~/lib/xmltok_impl.c trunk/lib/xmltok_impl.c
+--- trunk~/lib/xmltok_impl.c 2006-11-26 18:34:46.000000000 +0100
++++ trunk/lib/xmltok_impl.c 2009-10-22 21:42:41.000000000 +0200
+@@ -1744,7 +1744,7 @@
+ const char *end,
+ POSITION *pos)
+ {
+- while (ptr != end) {
++ while (ptr < end) {
+ switch (BYTE_TYPE(enc, ptr)) {
+ #define LEAD_CASE(n) \
+ case BT_LEAD ## n: \
diff --git a/core/expat/PKGBUILD b/core/expat/PKGBUILD
new file mode 100644
index 000000000..9daf035ad
--- /dev/null
+++ b/core/expat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 102953 2010-12-13 13:44:48Z stephane $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=expat
+pkgver=2.0.1
+pkgrel=6
+pkgdesc="An XML parser library"
+arch=('i686' 'x86_64')
+url="http://expat.sourceforge.net"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/expat/${pkgname}-${pkgver}.tar.gz
+ CVE-2009-3560.patch
+ CVE-2009-3720.patch)
+md5sums=('ee8b492592568805593f81f8cdf2a04c'
+ '50603cac0f03aabc7087415251f592be'
+ 'f3eeb796f28945899216b815e5901996')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i $srcdir/CVE-2009-3560.patch
+ patch -Np1 -i $srcdir/CVE-2009-3720.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/core/fakeroot/PKGBUILD b/core/fakeroot/PKGBUILD
new file mode 100644
index 000000000..c3962c2f8
--- /dev/null
+++ b/core/fakeroot/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 102182 2010-12-06 14:43:36Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=fakeroot
+pkgver=1.14.5
+pkgrel=1
+pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://packages.debian.org/fakeroot"
+groups=('base-devel')
+install=fakeroot.install
+depends=('glibc' 'filesystem' 'grep' 'sed' 'sh')
+options=('!libtool')
+source=(http://ftp.debian.org/debian/pool/main/f/${pkgname}/${pkgname}_${pkgver}.orig.tar.bz2)
+md5sums=('659a1f3a36554abfc2a3eaad2fdc0604')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot \
+ --disable-static --with-ipc=sysv
+ # --with-ipc=tcp is currently broken and no option on smp systems
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+
+ install -dm755 ${pkgdir}/etc/ld.so.conf.d/
+ echo '/usr/lib/libfakeroot' > ${pkgdir}/etc/ld.so.conf.d/fakeroot.conf
+
+ # install README for sysv/tcp usage
+ install -Dm644 $srcdir/$pkgname-$pkgver/README $pkgdir/usr/share/doc/$pkgname/README
+}
diff --git a/core/fakeroot/fakeroot.install b/core/fakeroot/fakeroot.install
new file mode 100644
index 000000000..986c91b06
--- /dev/null
+++ b/core/fakeroot/fakeroot.install
@@ -0,0 +1,14 @@
+post_install() {
+ sbin/ldconfig -r .
+}
+
+post_upgrade() {
+ if [ "$(vercmp $2 1.14.4-2)" -lt 0 ]; then
+ sed -i -e '/\/usr\/lib\/libfakeroot/d' etc/ld.so.conf
+ fi
+ sbin/ldconfig -r .
+}
+
+pre_remove() {
+ sbin/ldconfig -r .
+}
diff --git a/core/file/PKGBUILD b/core/file/PKGBUILD
new file mode 100644
index 000000000..e81c14eb9
--- /dev/null
+++ b/core/file/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 111169 2011-02-24 15:25:47Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=file
+pkgver=5.05
+pkgrel=2
+pkgdesc="File type identification utility"
+arch=('i686' 'x86_64')
+license=('custom')
+groups=('base')
+url="http://www.darwinsys.com/file/"
+depends=('glibc' 'zlib')
+options=('!libtool')
+source=(ftp://ftp.astron.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ file-5.05-zip64.patch
+ file-5.05-python-3.2.patch)
+md5sums=('0b429063710457be2bd17a18389cb018'
+ '385f020467debd98bd2d8df6143f93d0'
+ '3f5e147be5b9c36c74323a1317328538')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's#\$(datadir)/misc#\$(datadir)#' configure
+
+ # identify zip64 files
+ patch -Np1 -i ${srcdir}/file-5.05-zip64.patch
+
+ # identify python 3.2 files
+ patch -Np1 -i ../file-5.05-python-3.2.patch
+
+ ./configure --prefix=/usr --datadir=/usr/share/file
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ install -dm755 ${pkgdir}/usr/share/misc
+ ln -s ../file/magic.mgc ${pkgdir}/usr/share/misc
+
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/core/file/file-5.05-python-3.2.patch b/core/file/file-5.05-python-3.2.patch
new file mode 100644
index 000000000..355eb08a6
--- /dev/null
+++ b/core/file/file-5.05-python-3.2.patch
@@ -0,0 +1,11 @@
+diff -Naur file-5.05.ori/magic/Magdir/python file-5.05/magic/Magdir/python
+--- file-5.05.ori/magic/Magdir/python 2010-12-31 10:15:28.000000000 -0800
++++ file-5.05/magic/Magdir/python 2011-02-24 07:07:36.030004467 -0800
+@@ -20,6 +20,7 @@
+ 0 belong 0x03f30d0a python 2.7 byte-compiled
+ 0 belong 0x3b0c0d0a python 3.0 byte-compiled
+ 0 belong 0x4f0c0d0a python 3.1 byte-compiled
++0 belong 0x6c0c0d0a python 3.2 byte-compiled
+
+ 0 search/1/w #!\ /usr/bin/python Python script text executable
+ !:mime text/x-python
diff --git a/core/file/file-5.05-zip64.patch b/core/file/file-5.05-zip64.patch
new file mode 100644
index 000000000..2c9aede5f
--- /dev/null
+++ b/core/file/file-5.05-zip64.patch
@@ -0,0 +1,11 @@
+diff -Naur file-5.05-old//magic/Magdir/archive file-5.05/magic/Magdir/archive
+--- file-5.05-old//magic/Magdir/archive 2011-01-08 06:24:25.000000000 +1000
++++ file-5.05/magic/Magdir/archive 2011-01-19 14:37:47.766673895 +1000
+@@ -688,6 +688,7 @@
+ >>4 byte 0x0b \b, at least v1.1 to extract
+ >>0x161 string WINZIP \b, WinZIP self-extracting
+ >>4 byte 0x14 \b, at least v2.0 to extract
++>>4 byte 0x2d \b, at least v3.0 to extract
+
+ # Zoo archiver
+ 20 lelong 0xfdc4a7dc Zoo archive data
diff --git a/core/findutils/PKGBUILD b/core/findutils/PKGBUILD
new file mode 100644
index 000000000..9eb4dcd00
--- /dev/null
+++ b/core/findutils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 100218 2010-11-21 23:38:22Z stephane $
+# Maintainer:
+
+pkgname=findutils
+pkgver=4.4.2
+pkgrel=3
+pkgdesc="GNU utilities to locate files"
+arch=('i686' 'x86_64')
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'sh')
+url="http://www.gnu.org/software/findutils"
+source=(ftp://ftp.gnu.org/pub/gnu/findutils/${pkgname}-${pkgver}.tar.gz)
+install=findutils.install
+sha1sums=('e8dd88fa2cc58abffd0bfc1eddab9020231bb024')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Don't build or install locate because we use mlocate,
+ # which is a secure version of locate.
+ sed -i '/^SUBDIRS/s/locate//' Makefile.in
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=$pkgdir install
+}
diff --git a/core/findutils/findutils.install b/core/findutils/findutils.install
new file mode 100644
index 000000000..e42d782e2
--- /dev/null
+++ b/core/findutils/findutils.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(find-maint.info find.info)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/flex/PKGBUILD b/core/flex/PKGBUILD
new file mode 100644
index 000000000..039b11897
--- /dev/null
+++ b/core/flex/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 91170 2010-09-23 14:30:47Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=flex
+pkgver=2.5.35
+pkgrel=4
+pkgdesc="A tool for generating text-scanning programs"
+arch=('i686' 'x86_64')
+url="http://flex.sourceforge.net"
+license=('custom')
+groups=('base-devel')
+depends=('glibc' 'm4' 'sh')
+install=flex.install
+source=(http://downloads.sourceforge.net/sourceforge/flex/flex-$pkgver.tar.bz2
+ flex-2.5.35-gcc44.patch
+ flex-2.5.35-hardening.patch
+ flex-2.5.35-missing-prototypes.patch
+ flex-2.5.35-sign.patch
+ lex.sh)
+md5sums=('10714e50cea54dc7a227e3eddcd44d57'
+ 'e4444ef5c07db71a43280be74139bdea'
+ 'de952b3ed7cc074bc8c3e6ab73634048'
+ '6b83f56b1b654c6a321cdc530a3ec68d'
+ 'd87fd9e9762ba7e230d516bdcf1c8c6f'
+ 'f725259ec23a9e87ee29e2ef82eda9a5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ patch -Np1 -i $srcdir/flex-2.5.35-gcc44.patch
+ patch -Np1 -i $srcdir/flex-2.5.35-hardening.patch
+ patch -Np1 -i $srcdir/flex-2.5.35-missing-prototypes.patch
+ patch -Np1 -i $srcdir/flex-2.5.35-sign.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make prefix=$pkgdir/usr \
+ mandir=$pkgdir/usr/share/man \
+ infodir=$pkgdir/usr/share/info \
+ install
+ install -Dm755 $srcdir/lex.sh $pkgdir/usr/bin/lex
+
+ install -Dm644 COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/license.txt
+
+}
+
diff --git a/core/flex/flex-2.5.35-gcc44.patch b/core/flex/flex-2.5.35-gcc44.patch
new file mode 100644
index 000000000..7929fc092
--- /dev/null
+++ b/core/flex/flex-2.5.35-gcc44.patch
@@ -0,0 +1,22 @@
+diff -urNp flex-2.5.35.orig/flex.skl flex-2.5.35/flex.skl
+--- flex-2.5.35.orig/flex.skl 2009-04-20 03:09:46.000000000 +0530
++++ flex-2.5.35/flex.skl 2009-04-20 07:46:58.000000000 +0530
+@@ -217,6 +217,7 @@ m4preproc_include(`flexint.h')
+ /* begin standard C++ headers. */
+ #include <iostream>
+ #include <errno.h>
++#include <cstdio>
+ #include <cstdlib>
+ #include <cstring>
+ /* end standard C++ headers. */
+diff -urNp flex-2.5.35.orig/skel.c flex-2.5.35/skel.c
+--- flex-2.5.35.orig/skel.c 2009-04-20 03:09:46.000000000 +0530
++++ flex-2.5.35/skel.c 2009-04-20 07:46:40.000000000 +0530
+@@ -284,6 +284,7 @@ const char *skel[] = {
+ "/* begin standard C++ headers. */",
+ "#include <iostream> ",
+ "#include <errno.h>",
++ "#include <cstdio>",
+ "#include <cstdlib>",
+ "#include <cstring>",
+ "/* end standard C++ headers. */",
diff --git a/core/flex/flex-2.5.35-hardening.patch b/core/flex/flex-2.5.35-hardening.patch
new file mode 100644
index 000000000..7d608ea23
--- /dev/null
+++ b/core/flex/flex-2.5.35-hardening.patch
@@ -0,0 +1,36 @@
+diff -u flex-2.5.35/scan.c flex-2.5.35/scan.c
+--- flex-2.5.35/scan.c
++++ flex-2.5.35/scan.c
+@@ -2096,7 +2096,7 @@
+ /* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+-#define ECHO fwrite( yytext, yyleng, 1, yyout )
++#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+ #endif
+
+ /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
+diff -u flex-2.5.35/flex.skl flex-2.5.35/flex.skl
+--- flex-2.5.35/flex.skl
++++ flex-2.5.35/flex.skl
+@@ -1075,7 +1075,7 @@
+ /* This used to be an fputs(), but since the string might contain NUL's,
+ * we now use fwrite().
+ */
+-#define ECHO fwrite( yytext, yyleng, 1, yyout )
++#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+ %endif
+ %if-c++-only C++ definition
+ #define ECHO LexerOutput( yytext, yyleng )
+diff -u flex-2.5.35/skel.c flex-2.5.35/skel.c
+--- flex-2.5.35/skel.c
++++ flex-2.5.35/skel.c
+@@ -1142,7 +1142,7 @@
+ "/* This used to be an fputs(), but since the string might contain NUL's,",
+ " * we now use fwrite().",
+ " */",
+- "#define ECHO fwrite( yytext, yyleng, 1, yyout )",
++ "#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)",
+ "%endif",
+ "%if-c++-only C++ definition",
+ "#define ECHO LexerOutput( yytext, yyleng )",
diff --git a/core/flex/flex-2.5.35-missing-prototypes.patch b/core/flex/flex-2.5.35-missing-prototypes.patch
new file mode 100644
index 000000000..5cde0660e
--- /dev/null
+++ b/core/flex/flex-2.5.35-missing-prototypes.patch
@@ -0,0 +1,53 @@
+diff -up flex-2.5.35/flex.skl\~ flex-2.5.35/flex.skl
+--- flex-2.5.35/flex.skl~ 2010-07-13 17:18:43.000000000 +0200
++++ flex-2.5.35/flex.skl 2010-07-13 17:23:49.000000000 +0200
+@@ -960,6 +960,22 @@ m4_ifdef( [[M4_YY_NO_SET_LINENO]],,
+ void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );
+ ]])
+
++m4_ifdef( [[M4_YY_REENTRANT]],
++[[
++m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,
++[[
++int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
++]])
++]])
++
++m4_ifdef( [[M4_YY_REENTRANT]],
++[[
++m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,
++[[
++void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );
++]])
++]])
++
+ %if-bison-bridge
+ m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
+ [[
+
+Diff finished. Tue Jul 13 17:27:50 2010
+--- flex-2.5.35/skel.c~ 2010-07-14 13:15:42.000000000 +0200
++++ flex-2.5.35/skel.c 2010-07-14 13:16:05.000000000 +0200
+@@ -1027,6 +1027,22 @@
+ "void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );",
+ "]])",
+ "",
++ "m4_ifdef( [[M4_YY_REENTRANT]],",
++ "[[",
++ "m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,",
++ "[[",
++ "int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );",
++ "]])",
++ "]])",
++ "",
++ "m4_ifdef( [[M4_YY_REENTRANT]],",
++ "[[",
++ "m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,",
++ "[[",
++ "void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );",
++ "]])",
++ "]])",
++ "",
+ "%if-bison-bridge",
+ "m4_ifdef( [[M4_YY_NO_GET_LVAL]],,",
+ "[[",
diff --git a/core/flex/flex-2.5.35-sign.patch b/core/flex/flex-2.5.35-sign.patch
new file mode 100644
index 000000000..fbee18bde
--- /dev/null
+++ b/core/flex/flex-2.5.35-sign.patch
@@ -0,0 +1,11 @@
+--- flex-2.5.35/gen.c-orig 2008-04-30 22:51:08.000000000 +0200
++++ flex-2.5.35/gen.c 2008-04-30 22:51:14.000000000 +0200
+@@ -1890,7 +1890,7 @@
+ outn ("\tif ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \\");
+ outn ("\t\t{ \\");
+ outn ("\t\tint c = '*'; \\");
+- outn ("\t\tint n; \\");
++ outn ("\t\tunsigned n; \\");
+ outn ("\t\tfor ( n = 0; n < max_size && \\");
+ outn ("\t\t\t (c = getc( yyin )) != EOF && c != '\\n'; ++n ) \\");
+ outn ("\t\t\tbuf[n] = (char) c; \\");
diff --git a/core/flex/flex.install b/core/flex/flex.install
new file mode 100644
index 000000000..5b328c722
--- /dev/null
+++ b/core/flex/flex.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(flex.info{,-1,-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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/flex/lex.sh b/core/flex/lex.sh
new file mode 100644
index 000000000..13e7de692
--- /dev/null
+++ b/core/flex/lex.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec /usr/bin/flex -l "$@"
diff --git a/core/gawk/PKGBUILD b/core/gawk/PKGBUILD
new file mode 100644
index 000000000..81af6681c
--- /dev/null
+++ b/core/gawk/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 100064 2010-11-20 03:46:49Z allan $
+# Maintainer:
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gawk
+pkgver=3.1.8
+pkgrel=2
+pkgdesc="Gnu version of awk"
+arch=(i686 x86_64)
+url="http://www.gnu.org/directory/GNU/gawk.html"
+license=('GPL')
+groups=('base')
+provides=('awk')
+install=gawk.install
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+depends=('sh' 'glibc')
+md5sums=('35937a0f83f0efe7a8c2dee635624784')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ mv ${pkgdir}/usr/libexec ${pkgdir}/usr/lib
+ install -dm755 ${pkgdir}/bin
+ mv ${pkgdir}/usr/bin/gawk* ${pkgdir}/bin/
+ mv ${pkgdir}/usr/bin/awk ${pkgdir}/bin/
+ cd ${pkgdir}/usr/bin/
+ ln -sf /bin/gawk gawk
+}
diff --git a/core/gawk/gawk.install b/core/gawk/gawk.install
new file mode 100644
index 000000000..95973e40a
--- /dev/null
+++ b/core/gawk/gawk.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(gawk.info.gz gawkinet.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/gcc/PKGBUILD b/core/gcc/PKGBUILD
new file mode 100644
index 000000000..a88cd0a4f
--- /dev/null
+++ b/core/gcc/PKGBUILD
@@ -0,0 +1,228 @@
+# $Id: PKGBUILD 107993 2011-01-28 20:01:16Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada')
+pkgver=4.5.2
+pkgrel=6
+_snapshot=4.5-20110127
+_libstdcppmanver=4.5.2 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils>=2.21' 'libmpc' 'cloog-ppl>=0.15.9-2' 'elfutils' 'gcc-ada' 'dejagnu')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada,testsuite}-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada,testsuite}-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api-${_libstdcppmanver}.man.tar.bz2
+ gcc_pure64.patch
+ gcc-hash-style-both.patch)
+md5sums=('7dbdf06186dc98955221b2f7b987645b'
+ '4893036a98d8bedf44fe0741dfec6e1f'
+ 'c741c614e975c858cffb9e78b0b5124f'
+ 'b141fadc984cc0c1c0f15feb16db14e5'
+ '067672b640d0b912298791c1837606bc'
+ 'daffd2ba5917a263cdff5f38dcf8c323'
+ '2776eab5ebb7f9cc62dd2199a3a24382'
+ '4030ee1c08dd1e843c0225b772360e76'
+ '6fd395bacbd7b6e47c7b74854b478363')
+
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ cd ${_basedir}
+
+ # "Add" ppl-0.11 compatibility
+ sed -i "/ppl_minor_version=/s#10#11#" configure
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ fi
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+ ${_basedir}/configure --prefix=/usr \
+ --enable-languages=c,c++,fortran,objc,obj-c++,ada \
+ --enable-shared --enable-threads=posix --enable-__cxa_atexit \
+ --enable-clocale=gnu --enable-gnu-unique-object \
+ --enable-lto --enable-plugin \
+ --enable-gold --with-plugin-ld=ld.gold \
+ --disable-multilib --disable-libstdcxx-pch \
+ --with-system-zlib --with-ppl \
+ --with-cloog --with-cloog-include=/usr/include/cloog-ppl \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC"
+ groups=('base')
+ depends=('glibc>=2.11.1-2')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+ # I thought I said to only install the lib...
+ rm -rf ${pkgdir}/usr/lib/gcc/
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends"
+ depends=('binutils>=2.20.1' 'libmpc>=0.8.1-2' 'cloog-ppl>=0.15.9-2' 'elfutils')
+ groups=('base-devel')
+ install=gcc.install
+
+ cd gcc-build
+
+ # much, much easier to install the lot and clean-up the mess
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{*gfortran,gnat*}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}/*
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,libgfortranbegin.a}
+ rm $pkgdir/usr/lib/{*.so*,lib{gfortran,objc}.a}
+ rm $pkgdir/usr/share/info/{gfortran,gnat*,libgomp}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/gfortran.1
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/libstdc++-api-${_libstdcppmanver}.man/man3/* \
+ ${pkgdir}/usr/share/man/man3/
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran()
+{
+ pkgdesc="Fortran front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}/usr/lib/libgfortran.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc()
+{
+ pkgdesc="Objective-C front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}/usr/lib/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada()
+{
+ pkgdesc="Ada front-end for GCC (GNAT)"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-ada.install
+
+ cd gcc-build/gcc
+ make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
+}
+
diff --git a/core/gcc/gcc-ada.install b/core/gcc/gcc-ada.install
new file mode 100644
index 000000000..81794685f
--- /dev/null
+++ b/core/gcc/gcc-ada.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/gcc/gcc-fortran.install b/core/gcc/gcc-fortran.install
new file mode 100644
index 000000000..2aeab7123
--- /dev/null
+++ b/core/gcc/gcc-fortran.install
@@ -0,0 +1,18 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/gcc/gcc-hash-style-both.patch b/core/gcc/gcc-hash-style-both.patch
new file mode 100644
index 000000000..fbb210598
--- /dev/null
+++ b/core/gcc/gcc-hash-style-both.patch
@@ -0,0 +1,163 @@
+#! /bin/sh -e
+
+# DP: Link using --hash-style=both (alpha, amd64, ia64, i386, powerpc, ppc64, s390, sparc)
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ #cd ${dir}gcc && autoconf
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ #rm ${dir}gcc/configure
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+2006-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/linux.h (LINK_SPEC): Add --hash-style=both.
+ * config/i386/linux64.h (LINK_SPEC): Likewise.
+ * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise.
+ * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
+ LINK_OS_LINUX_SPEC64): Likewise.
+ * config/s390/linux.h (LINK_SPEC): Likewise.
+ * config/ia64/linux.h (LINK_SPEC): Likewise.
+ * config/sparc/linux.h (LINK_SPEC): Likewise.
+ * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC,
+ LINK_ARCH64_SPEC): Likewise.
+ * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
+
+--- gcc/config/alpha/linux-elf.h.orig 2007-08-04 08:55:58.000000000 +0200
++++ gcc/config/alpha/linux-elf.h 2007-09-01 15:47:26.605865578 +0200
+@@ -39,7 +39,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/s390/linux.h.orig 2007-08-04 08:55:59.000000000 +0200
++++ gcc/config/s390/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux.h.orig 2007-08-04 08:56:01.000000000 +0200
++++ gcc/config/sparc/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -132,7 +132,7 @@
+
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!ibcs: \
+--- gcc/config/sparc/linux64.h.orig 2007-08-04 08:56:01.000000000 +0200
++++ gcc/config/sparc/linux64.h 2007-09-01 15:47:26.605865578 +0200
+@@ -166,7 +166,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+@@ -175,7 +175,7 @@
+ %{static:-static}}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+@@ -256,7 +256,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2007-08-04 08:56:07.000000000 +0200
++++ gcc/config/i386/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -108,7 +108,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+--- gcc/config/i386/linux64.h.orig 2007-08-04 08:56:07.000000000 +0200
++++ gcc/config/i386/linux64.h 2007-09-01 15:48:27.336781690 +0200
+@@ -65,7 +65,7 @@
+ #endif
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/ia64/linux.h.orig 2006-12-12 18:59:53.000000000 +0100
++++ gcc/config/ia64/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -40,7 +40,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/sysv4.h.orig 2007-08-08 23:37:49.000000000 +0200
++++ gcc/config/rs6000/sysv4.h 2007-09-01 15:47:26.615865729 +0200
+@@ -901,7 +901,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+
+--- gcc/config/rs6000/linux64.h.orig 2007-08-04 08:56:12.000000000 +0200
++++ gcc/config/rs6000/linux64.h 2007-09-01 15:47:26.615865729 +0200
+@@ -354,11 +354,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
+
diff --git a/core/gcc/gcc-libs.install b/core/gcc/gcc-libs.install
new file mode 100644
index 000000000..b5fbf9211
--- /dev/null
+++ b/core/gcc/gcc-libs.install
@@ -0,0 +1,14 @@
+infodir=usr/share/info
+file="libgomp.info"
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/gcc/gcc.install b/core/gcc/gcc.install
new file mode 100644
index 000000000..a7a405288
--- /dev/null
+++ b/core/gcc/gcc.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/gcc/gcc_pure64.patch b/core/gcc/gcc_pure64.patch
new file mode 100644
index 000000000..8c0baf8e2
--- /dev/null
+++ b/core/gcc/gcc_pure64.patch
@@ -0,0 +1,26 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,8 +49,8 @@
+ When the -shared link option is used a final link is not being
+ done. */
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/core/gdbm/PKGBUILD b/core/gdbm/PKGBUILD
new file mode 100644
index 000000000..e3c8a2449
--- /dev/null
+++ b/core/gdbm/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 105198 2011-01-07 13:58:42Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=gdbm
+pkgver=1.8.3
+pkgrel=8
+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.8.3-zeroheaders.patch
+ gdbm-1.8.3-fhs.patch)
+options=('!libtool' '!makeflags')
+install=gdbm.install
+md5sums=('1d1b1d5c0245b1c00aff92da751e9aa1'
+ 'a2ed344be9258775bd718074cf2e4ec6'
+ '66a7c235416c136dc89efc7d03352514')
+
+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.8.3-zeroheaders.patch
+
+ # Make gdbm buildable.
+ patch -Np1 -i ../gdbm-1.8.3-fhs.patch
+
+ libtoolize --force --copy
+ aclocal
+ autoconf
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
+
+ # flock does not work on nfs, we use fcntl instead
+ # https://bugzilla.redhat.com/show_bug.cgi?id=477300
+ echo "/* We use fcntl locking (POSIX) instead of flock (BSD) */" >> autoconf.h
+ echo "#undef HAVE_FLOCK" >> autoconf.h
+
+ make prefix=/usr
+}
+
+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 install-compat
+
+ ln -sf gdbm/gdbm.h $pkgdir/usr/include
+}
diff --git a/core/gdbm/gdbm-1.8.3-fhs.patch b/core/gdbm/gdbm-1.8.3-fhs.patch
new file mode 100644
index 000000000..58ce4de0b
--- /dev/null
+++ b/core/gdbm/gdbm-1.8.3-fhs.patch
@@ -0,0 +1,138 @@
+diff -up gdbm-1.8.3/Makefile.in.fhs gdbm-1.8.3/Makefile.in
+--- gdbm-1.8.3/Makefile.in.fhs 2002-10-08 18:09:12.000000000 +0200
++++ gdbm-1.8.3/Makefile.in 2010-03-10 15:41:01.516025096 +0100
+@@ -1,7 +1,7 @@
+ #### Start of system configuration section. ####
+
+ srcdir = @srcdir@
+-top_builddir = .
++top_builddir = @top_builddir@
+ VPATH = @srcdir@
+
+ CC = @CC@
+@@ -14,17 +14,13 @@ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_DATA = @INSTALL_DATA@
+
+-# File ownership and group
+-BINOWN = bin
+-BINGRP = bin
+-
+ MAKEINFO = makeinfo
+ TEXI2DVI = texi2dvi
+
+-DEFS =
++DEFS = @DEFS@
+
+ # Where the system [n]dbm routines are...
+-LIBS = @LIBS@ -lc
++LIBS = @LIBS@
+
+ CFLAGS = @CFLAGS@
+ LDFLAGS = @LDFLAGS@
+@@ -32,16 +28,17 @@ LDFLAGS = @LDFLAGS@
+ # Common prefix for installation directories
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+-binprefix = $(exec_prefix)
+-manprefix = $(prefix)
++datarootdir = @datarootdir@
+
+ # Directory in which to put libgdbm.a.
+ libdir = @libdir@
+ # The include directory for gdbm.h and dbm.h.
+ includedir = @includedir@
++pkgincludedir = $(includedir)/gdbm
+ # Info and man directories.
+ infodir = @infodir@
+-man3dir = @mandir@/man3
++mandir = @mandir@
++man3dir = $(mandir)/man3
+ manext = 3
+
+ #### End of system configuration section. ####
+@@ -57,7 +54,7 @@ manext = 3
+
+ SHELL = /bin/sh
+
+-PROGS = libgdbm.la testgdbm testdbm testndbm tndbm tdbm conv2gdbm
++PROGS = libgdbm.la testgdbm testdbm testndbm conv2gdbm
+
+ DBM_CF = dbminit.c delete.c fetch.c store.c seq.c close.c
+
+@@ -127,26 +124,17 @@ all: libgdbm.la libgdbm_compat.la
+ progs: $(PROGS)
+
+ install: libgdbm.la gdbm.h gdbm.info
+- $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \
+- $(INSTALL_ROOT)$(includedir) $(INSTALL_ROOT)$(man3dir) \
+- $(INSTALL_ROOT)$(infodir)
+- $(LIBTOOL) $(INSTALL) -c libgdbm.la $(INSTALL_ROOT)$(libdir)/libgdbm.la
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) gdbm.h \
+- $(INSTALL_ROOT)$(includedir)/gdbm.h
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.3 \
+- $(INSTALL_ROOT)$(man3dir)/gdbm.3
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.info \
+- $(INSTALL_ROOT)$(infodir)/gdbm.info
++ $(srcdir)/mkinstalldirs $(libdir) $(pkgincludedir) $(man3dir) $(infodir)
++ $(LIBTOOL) install install libgdbm.la $(libdir)/libgdbm.la
++ $(INSTALL_DATA) gdbm.h $(pkgincludedir)/gdbm.h
++ $(INSTALL_DATA) $(srcdir)/gdbm.3 $(man3dir)/gdbm.3
++ $(INSTALL_DATA) $(srcdir)/gdbm.info $(infodir)/gdbm.info
+
+ install-compat:
+- $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \
+- $(INSTALL_ROOT)$(includedir)
+- $(LIBTOOL) $(INSTALL) -c libgdbm_compat.la \
+- $(INSTALL_ROOT)$(libdir)/libgdbm_compat.la
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/dbm.h \
+- $(INSTALL_ROOT)$(includedir)/dbm.h
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/ndbm.h \
+- $(INSTALL_ROOT)$(includedir)/ndbm.h
++ $(srcdir)/mkinstalldirs $(libdir) $(pkgincludedir)
++ $(LIBTOOL) install install libgdbm_compat.la $(libdir)/libgdbm_compat.la
++ $(INSTALL_DATA) $(srcdir)/dbm.h $(pkgincludedir)/dbm.h
++ $(INSTALL_DATA) $(srcdir)/ndbm.h $(pkgincludedir)/ndbm.h
+
+ #libgdbm.a: $(OBJS) gdbm.h
+ # rm -f libgdbm.a
+@@ -161,7 +149,7 @@ libgdbm.la: $(LOBJS) gdbm.h
+ libgdbm_compat.la: $(C_LOBJS) gdbm.h
+ rm -f libgdbm_compat.la
+ $(LIBTOOL) --mode=link $(CC) -o libgdbm_compat.la -rpath $(libdir) \
+- -version-info $(SHLIB_VER) $(C_LOBJS)
++ -version-info $(SHLIB_VER) $(C_LOBJS) -lgdbm
+
+ gdbm.h: gdbm.proto gdbmerrno.h gdbm.proto2
+ rm -f gdbm.h
+@@ -172,10 +160,10 @@ gdbm.h: gdbm.proto gdbmerrno.h gdbm.prot
+ chmod -w gdbm.h
+
+ testgdbm: testgdbm.o libgdbm.la @LIBOBJS@
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o testgdbm testgdbm.o libgdbm.la @LIBOBJS@
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o testgdbm testgdbm.o libgdbm.la @LIBOBJS@
+
+ testdbm: testdbm.o libgdbm.la libgdbm_compat.la
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o testdbm testdbm.o libgdbm.la libgdbm_compat.la
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o testdbm testdbm.o $(LIBS) libgdbm_compat.la
+
+ tdbm: testdbm.o
+ $(CC) $(LDFLAGS) -o tdbm testdbm.o $(LIBS)
+@@ -184,7 +172,7 @@ testndbm.o: testndbm.c
+ $(CC) -c -I. -I$(srcdir) $(CFLAGS) $(DEFS) -DGNU $(srcdir)/testndbm.c
+
+ testndbm: testndbm.o libgdbm.la libgdbm_compat.la
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o testndbm testndbm.o libgdbm.la libgdbm_compat.la
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o testndbm testndbm.o libgdbm_compat.la
+
+ tndbm.o: testndbm.c
+ cp $(srcdir)/testndbm.c ./tndbm.c
+@@ -195,7 +183,7 @@ tndbm: tndbm.o
+ $(CC) $(LDFLAGS) -o tndbm tndbm.o $(LIBS)
+
+ conv2gdbm: conv2gdbm.o libgdbm.la @LIBOBJS@
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o conv2gdbm conv2gdbm.o $(LIBS) libgdbm.la @LIBOBJS@
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o conv2gdbm conv2gdbm.o $(LIBS) libgdbm_compat.la @LIBOBJS@
+
+ lintgdbm:
+ lint $(DEFS) $(LFLAGS) $(DBM_CF) $(NDBM_CF) $(GDBM_CF) testgdbm.c
diff --git a/core/gdbm/gdbm-1.8.3-zeroheaders.patch b/core/gdbm/gdbm-1.8.3-zeroheaders.patch
new file mode 100644
index 000000000..088956aef
--- /dev/null
+++ b/core/gdbm/gdbm-1.8.3-zeroheaders.patch
@@ -0,0 +1,44 @@
+02_zero-headers.patch by Jeff Johnson <jbj@redhat.com> and Colin Watson <cjwatson@debian.org>
+
+diff -urNad a/falloc.c b/falloc.c
+--- a/falloc.c 2001-02-28 06:52:33.000000000 +0000
++++ b/falloc.c 2003-09-08 23:58:43.000000000 +0100
+@@ -272,7 +272,7 @@
+
+
+ /* 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 -urNad a/gdbmopen.c b/gdbmopen.c
+--- a/gdbmopen.c 2003-09-08 23:58:01.000000000 +0100
++++ b/gdbmopen.c 2003-09-08 23:58:43.000000000 +0100
+@@ -212,7 +212,7 @@
+ file_block_size = block_size;
+
+ /* Get space for the file header. */
+- dbf->header = (gdbm_file_header *) malloc (file_block_size);
++ dbf->header = (gdbm_file_header *) calloc (1, file_block_size);
+ if (dbf->header == NULL)
+ {
+ gdbm_close (dbf);
+@@ -256,7 +256,7 @@
+ (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);
+@@ -420,7 +420,7 @@
+ 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/core/gdbm/gdbm.install b/core/gdbm/gdbm.install
new file mode 100644
index 000000000..2d1ce2c5a
--- /dev/null
+++ b/core/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/core/gen-init-cpio/Makefile b/core/gen-init-cpio/Makefile
new file mode 100644
index 000000000..1ebe76373
--- /dev/null
+++ b/core/gen-init-cpio/Makefile
@@ -0,0 +1,42 @@
+
+DESTDIR =
+PREFIX = /
+
+MKDIR = /bin/mkdir
+INSTALL = /bin/install -c -m 755
+
+CC = /usr/bin/gcc
+LD = /usr/bin/gcc
+
+CFLAGS += -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \
+ -Wpointer-arith -Wcast-align -Wsign-compare
+
+#pretty print!
+E = @echo
+Q = @
+
+all: gen_init_cpio
+.PHONY: all
+.DEFAULT: all
+
+%.o: %.c
+ $(E) " compile " $@
+ $(Q) $(CC) -c $(CFLAGS) $< -o $@
+
+gen_init_cpio: gen_init_cpio.o
+ $(E) ">>build " $@
+ $(Q) $(LD) $(LDFLAGS) $@.o -o $@ $(LIB_OBJS)
+
+clean:
+ $(E) " clean "
+ $(Q) rm -f gen_init_cpio *.o
+.PHONY: clean
+
+install: all
+ $(MKDIR) -p $(DESTDIR)$(PREFIX)sbin/
+ $(INSTALL) gen_init_cpio $(DESTDIR)$(PREFIX)sbin/
+.PHONY: install
+
+uninstall:
+ rm $(DESTDIR)$(PREFIX)sbin/gen_init_cpio
+.PHONY: uninstall
diff --git a/core/gen-init-cpio/PKGBUILD b/core/gen-init-cpio/PKGBUILD
new file mode 100644
index 000000000..5551ae1b3
--- /dev/null
+++ b/core/gen-init-cpio/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 102143 2010-12-06 09:37:46Z allan $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=gen-init-cpio
+pkgver=2.6.36
+pkgrel=1
+pkgdesc="Program to compress initramfs images"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.kernel.org/"
+depends=('glibc')
+source=(Makefile
+ gen_init_cpio.c)
+md5sums=('8e3a142a522d65121c3bead41013be98'
+ 'c0c0844d9e2e2c1bfb948201dc7b4c97')
+
+build()
+{
+ cd $srcdir
+ make
+}
+
+package() {
+ cd $srcdir
+ make DESTDIR=$pkgdir install
+}
diff --git a/core/gen-init-cpio/gen_init_cpio.c b/core/gen-init-cpio/gen_init_cpio.c
new file mode 100644
index 000000000..b2b3c2d1c
--- /dev/null
+++ b/core/gen-init-cpio/gen_init_cpio.c
@@ -0,0 +1,595 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <unistd.h>
+#include <time.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <ctype.h>
+#include <limits.h>
+
+/*
+ * Original work by Jeff Garzik
+ *
+ * External file lists, symlink, pipe and fifo support by Thayne Harbaugh
+ * Hard link support by Luciano Rocha
+ */
+
+#define xstr(s) #s
+#define str(s) xstr(s)
+
+static unsigned int offset;
+static unsigned int ino = 721;
+
+struct file_handler {
+ const char *type;
+ int (*handler)(const char *line);
+};
+
+static void push_string(const char *name)
+{
+ unsigned int name_len = strlen(name) + 1;
+
+ fputs(name, stdout);
+ putchar(0);
+ offset += name_len;
+}
+
+static void push_pad (void)
+{
+ while (offset & 3) {
+ putchar(0);
+ offset++;
+ }
+}
+
+static void push_rest(const char *name)
+{
+ unsigned int name_len = strlen(name) + 1;
+ unsigned int tmp_ofs;
+
+ fputs(name, stdout);
+ putchar(0);
+ offset += name_len;
+
+ tmp_ofs = name_len + 110;
+ while (tmp_ofs & 3) {
+ putchar(0);
+ offset++;
+ tmp_ofs++;
+ }
+}
+
+static void push_hdr(const char *s)
+{
+ fputs(s, stdout);
+ offset += 110;
+}
+
+static void cpio_trailer(void)
+{
+ char s[256];
+ const char name[] = "TRAILER!!!";
+
+ sprintf(s, "%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ 0, /* ino */
+ 0, /* mode */
+ (long) 0, /* uid */
+ (long) 0, /* gid */
+ 1, /* nlink */
+ (long) 0, /* mtime */
+ 0, /* filesize */
+ 0, /* major */
+ 0, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ (unsigned)strlen(name)+1, /* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_rest(name);
+
+ while (offset % 512) {
+ putchar(0);
+ offset++;
+ }
+}
+
+static int cpio_mkslink(const char *name, const char *target,
+ unsigned int mode, uid_t uid, gid_t gid)
+{
+ char s[256];
+ time_t mtime = time(NULL);
+
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino++, /* ino */
+ S_IFLNK | mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ 1, /* nlink */
+ (long) mtime, /* mtime */
+ (unsigned)strlen(target)+1, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ (unsigned)strlen(name) + 1,/* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_string(name);
+ push_pad();
+ push_string(target);
+ push_pad();
+ return 0;
+}
+
+static int cpio_mkslink_line(const char *line)
+{
+ char name[PATH_MAX + 1];
+ char target[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ int rc = -1;
+
+ if (5 != sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX) "s %o %d %d", name, target, &mode, &uid, &gid)) {
+ fprintf(stderr, "Unrecognized dir format '%s'", line);
+ goto fail;
+ }
+ rc = cpio_mkslink(name, target, mode, uid, gid);
+ fail:
+ return rc;
+}
+
+static int cpio_mkgeneric(const char *name, unsigned int mode,
+ uid_t uid, gid_t gid)
+{
+ char s[256];
+ time_t mtime = time(NULL);
+
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino++, /* ino */
+ mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ 2, /* nlink */
+ (long) mtime, /* mtime */
+ 0, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ (unsigned)strlen(name) + 1,/* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_rest(name);
+ return 0;
+}
+
+enum generic_types {
+ GT_DIR,
+ GT_PIPE,
+ GT_SOCK
+};
+
+struct generic_type {
+ const char *type;
+ mode_t mode;
+};
+
+static struct generic_type generic_type_table[] = {
+ [GT_DIR] = {
+ .type = "dir",
+ .mode = S_IFDIR
+ },
+ [GT_PIPE] = {
+ .type = "pipe",
+ .mode = S_IFIFO
+ },
+ [GT_SOCK] = {
+ .type = "sock",
+ .mode = S_IFSOCK
+ }
+};
+
+static int cpio_mkgeneric_line(const char *line, enum generic_types gt)
+{
+ char name[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ int rc = -1;
+
+ if (4 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d", name, &mode, &uid, &gid)) {
+ fprintf(stderr, "Unrecognized %s format '%s'",
+ line, generic_type_table[gt].type);
+ goto fail;
+ }
+ mode |= generic_type_table[gt].mode;
+ rc = cpio_mkgeneric(name, mode, uid, gid);
+ fail:
+ return rc;
+}
+
+static int cpio_mkdir_line(const char *line)
+{
+ return cpio_mkgeneric_line(line, GT_DIR);
+}
+
+static int cpio_mkpipe_line(const char *line)
+{
+ return cpio_mkgeneric_line(line, GT_PIPE);
+}
+
+static int cpio_mksock_line(const char *line)
+{
+ return cpio_mkgeneric_line(line, GT_SOCK);
+}
+
+static int cpio_mknod(const char *name, unsigned int mode,
+ uid_t uid, gid_t gid, char dev_type,
+ unsigned int maj, unsigned int min)
+{
+ char s[256];
+ time_t mtime = time(NULL);
+
+ if (dev_type == 'b')
+ mode |= S_IFBLK;
+ else
+ mode |= S_IFCHR;
+
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08X%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino++, /* ino */
+ mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ 1, /* nlink */
+ (long) mtime, /* mtime */
+ 0, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ maj, /* rmajor */
+ min, /* rminor */
+ (unsigned)strlen(name) + 1,/* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_rest(name);
+ return 0;
+}
+
+static int cpio_mknod_line(const char *line)
+{
+ char name[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ char dev_type;
+ unsigned int maj;
+ unsigned int min;
+ int rc = -1;
+
+ if (7 != sscanf(line, "%" str(PATH_MAX) "s %o %d %d %c %u %u",
+ name, &mode, &uid, &gid, &dev_type, &maj, &min)) {
+ fprintf(stderr, "Unrecognized nod format '%s'", line);
+ goto fail;
+ }
+ rc = cpio_mknod(name, mode, uid, gid, dev_type, maj, min);
+ fail:
+ return rc;
+}
+
+static int cpio_mkfile(const char *name, const char *location,
+ unsigned int mode, uid_t uid, gid_t gid,
+ unsigned int nlinks)
+{
+ char s[256];
+ char *filebuf = NULL;
+ struct stat buf;
+ long size;
+ int file = -1;
+ int retval;
+ int rc = -1;
+ int namesize;
+ int i;
+
+ mode |= S_IFREG;
+
+ retval = stat (location, &buf);
+ if (retval) {
+ fprintf (stderr, "File %s could not be located\n", location);
+ goto error;
+ }
+
+ file = open (location, O_RDONLY);
+ if (file < 0) {
+ fprintf (stderr, "File %s could not be opened for reading\n", location);
+ goto error;
+ }
+
+ filebuf = malloc(buf.st_size);
+ if (!filebuf) {
+ fprintf (stderr, "out of memory\n");
+ goto error;
+ }
+
+ retval = read (file, filebuf, buf.st_size);
+ if (retval < 0) {
+ fprintf (stderr, "Can not read %s file\n", location);
+ goto error;
+ }
+
+ size = 0;
+ for (i = 1; i <= nlinks; i++) {
+ /* data goes on last link */
+ if (i == nlinks) size = buf.st_size;
+
+ namesize = strlen(name) + 1;
+ sprintf(s,"%s%08X%08X%08lX%08lX%08X%08lX"
+ "%08lX%08X%08X%08X%08X%08X%08X",
+ "070701", /* magic */
+ ino, /* ino */
+ mode, /* mode */
+ (long) uid, /* uid */
+ (long) gid, /* gid */
+ nlinks, /* nlink */
+ (long) buf.st_mtime, /* mtime */
+ size, /* filesize */
+ 3, /* major */
+ 1, /* minor */
+ 0, /* rmajor */
+ 0, /* rminor */
+ namesize, /* namesize */
+ 0); /* chksum */
+ push_hdr(s);
+ push_string(name);
+ push_pad();
+
+ if (size) {
+ if (fwrite(filebuf, size, 1, stdout) != 1) {
+ fprintf(stderr, "writing filebuf failed\n");
+ goto error;
+ }
+ offset += size;
+ push_pad();
+ }
+
+ name += namesize;
+ }
+ ino++;
+ rc = 0;
+
+error:
+ if (filebuf) free(filebuf);
+ if (file >= 0) close(file);
+ return rc;
+}
+
+static char *cpio_replace_env(char *new_location)
+{
+ char expanded[PATH_MAX + 1];
+ char env_var[PATH_MAX + 1];
+ char *start;
+ char *end;
+
+ for (start = NULL; (start = strstr(new_location, "${")); ) {
+ end = strchr(start, '}');
+ if (start < end) {
+ *env_var = *expanded = '\0';
+ strncat(env_var, start + 2, end - start - 2);
+ strncat(expanded, new_location, start - new_location);
+ strncat(expanded, getenv(env_var), PATH_MAX);
+ strncat(expanded, end + 1, PATH_MAX);
+ strncpy(new_location, expanded, PATH_MAX);
+ } else
+ break;
+ }
+
+ return new_location;
+}
+
+
+static int cpio_mkfile_line(const char *line)
+{
+ char name[PATH_MAX + 1];
+ char *dname = NULL; /* malloc'ed buffer for hard links */
+ char location[PATH_MAX + 1];
+ unsigned int mode;
+ int uid;
+ int gid;
+ int nlinks = 1;
+ int end = 0, dname_len = 0;
+ int rc = -1;
+
+ if (5 > sscanf(line, "%" str(PATH_MAX) "s %" str(PATH_MAX)
+ "s %o %d %d %n",
+ name, location, &mode, &uid, &gid, &end)) {
+ fprintf(stderr, "Unrecognized file format '%s'", line);
+ goto fail;
+ }
+ if (end && isgraph(line[end])) {
+ int len;
+ int nend;
+
+ dname = malloc(strlen(line));
+ if (!dname) {
+ fprintf (stderr, "out of memory (%d)\n", dname_len);
+ goto fail;
+ }
+
+ dname_len = strlen(name) + 1;
+ memcpy(dname, name, dname_len);
+
+ do {
+ nend = 0;
+ if (sscanf(line + end, "%" str(PATH_MAX) "s %n",
+ name, &nend) < 1)
+ break;
+ len = strlen(name) + 1;
+ memcpy(dname + dname_len, name, len);
+ dname_len += len;
+ nlinks++;
+ end += nend;
+ } while (isgraph(line[end]));
+ } else {
+ dname = name;
+ }
+ rc = cpio_mkfile(dname, cpio_replace_env(location),
+ mode, uid, gid, nlinks);
+ fail:
+ if (dname_len) free(dname);
+ return rc;
+}
+
+static void usage(const char *prog)
+{
+ fprintf(stderr, "Usage:\n"
+ "\t%s <cpio_list>\n"
+ "\n"
+ "<cpio_list> is a file containing newline separated entries that\n"
+ "describe the files to be included in the initramfs archive:\n"
+ "\n"
+ "# a comment\n"
+ "file <name> <location> <mode> <uid> <gid> [<hard links>]\n"
+ "dir <name> <mode> <uid> <gid>\n"
+ "nod <name> <mode> <uid> <gid> <dev_type> <maj> <min>\n"
+ "slink <name> <target> <mode> <uid> <gid>\n"
+ "pipe <name> <mode> <uid> <gid>\n"
+ "sock <name> <mode> <uid> <gid>\n"
+ "\n"
+ "<name> name of the file/dir/nod/etc in the archive\n"
+ "<location> location of the file in the current filesystem\n"
+ " expands shell variables quoted with ${}\n"
+ "<target> link target\n"
+ "<mode> mode/permissions of the file\n"
+ "<uid> user id (0=root)\n"
+ "<gid> group id (0=root)\n"
+ "<dev_type> device type (b=block, c=character)\n"
+ "<maj> major number of nod\n"
+ "<min> minor number of nod\n"
+ "<hard links> space separated list of other links to file\n"
+ "\n"
+ "example:\n"
+ "# A simple initramfs\n"
+ "dir /dev 0755 0 0\n"
+ "nod /dev/console 0600 0 0 c 5 1\n"
+ "dir /root 0700 0 0\n"
+ "dir /sbin 0755 0 0\n"
+ "file /sbin/kinit /usr/src/klibc/kinit/kinit 0755 0 0\n",
+ prog);
+}
+
+struct file_handler file_handler_table[] = {
+ {
+ .type = "file",
+ .handler = cpio_mkfile_line,
+ }, {
+ .type = "nod",
+ .handler = cpio_mknod_line,
+ }, {
+ .type = "dir",
+ .handler = cpio_mkdir_line,
+ }, {
+ .type = "slink",
+ .handler = cpio_mkslink_line,
+ }, {
+ .type = "pipe",
+ .handler = cpio_mkpipe_line,
+ }, {
+ .type = "sock",
+ .handler = cpio_mksock_line,
+ }, {
+ .type = NULL,
+ .handler = NULL,
+ }
+};
+
+#define LINE_SIZE (2 * PATH_MAX + 50)
+
+int main (int argc, char *argv[])
+{
+ FILE *cpio_list;
+ char line[LINE_SIZE];
+ char *args, *type;
+ int ec = 0;
+ int line_nr = 0;
+
+ if (2 != argc) {
+ usage(argv[0]);
+ exit(1);
+ }
+
+ if (!strcmp(argv[1], "-"))
+ cpio_list = stdin;
+ else if (! (cpio_list = fopen(argv[1], "r"))) {
+ fprintf(stderr, "ERROR: unable to open '%s': %s\n\n",
+ argv[1], strerror(errno));
+ usage(argv[0]);
+ exit(1);
+ }
+
+ while (fgets(line, LINE_SIZE, cpio_list)) {
+ int type_idx;
+ size_t slen = strlen(line);
+
+ line_nr++;
+
+ if ('#' == *line) {
+ /* comment - skip to next line */
+ continue;
+ }
+
+ if (! (type = strtok(line, " \t"))) {
+ fprintf(stderr,
+ "ERROR: incorrect format, could not locate file type line %d: '%s'\n",
+ line_nr, line);
+ ec = -1;
+ break;
+ }
+
+ if ('\n' == *type) {
+ /* a blank line */
+ continue;
+ }
+
+ if (slen == strlen(type)) {
+ /* must be an empty line */
+ continue;
+ }
+
+ if (! (args = strtok(NULL, "\n"))) {
+ fprintf(stderr,
+ "ERROR: incorrect format, newline required line %d: '%s'\n",
+ line_nr, line);
+ ec = -1;
+ }
+
+ for (type_idx = 0; file_handler_table[type_idx].type; type_idx++) {
+ int rc;
+ if (! strcmp(line, file_handler_table[type_idx].type)) {
+ if ((rc = file_handler_table[type_idx].handler(args))) {
+ ec = rc;
+ fprintf(stderr, " line %d\n", line_nr);
+ }
+ break;
+ }
+ }
+
+ if (NULL == file_handler_table[type_idx].type) {
+ fprintf(stderr, "unknown file type line %d: '%s'\n",
+ line_nr, line);
+ }
+ }
+ if (ec == 0)
+ cpio_trailer();
+
+ exit(ec);
+}
diff --git a/core/gettext/PKGBUILD b/core/gettext/PKGBUILD
new file mode 100644
index 000000000..f00a1c31a
--- /dev/null
+++ b/core/gettext/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 112865 2011-03-07 11:27:12Z stephane $
+# Maintainer:
+
+pkgname=gettext
+pkgver=0.18.1.1
+pkgrel=3
+pkgdesc="GNU internationalization library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gettext/"
+license=('GPL')
+groups=('base')
+depends=('gcc-libs' 'acl' 'sh' 'glib2')
+optdepends=('cvs: for autopoint tool')
+options=(!libtool)
+install=gettext.install
+source=(ftp://ftp.gnu.org/pub/gnu/gettext/${pkgname}-${pkgver}.tar.gz)
+md5sums=('3dd55b952826d2b32f51308f2f91aa89')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's/libexpat.so.0/libexpat.so.1/' gettext-tools/src/x-glade.c
+ ./configure --prefix=/usr --enable-csharp
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/gettext/gettext.install b/core/gettext/gettext.install
new file mode 100644
index 000000000..0ff52942f
--- /dev/null
+++ b/core/gettext/gettext.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(gettext.info.gz autosprintf.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/glib2/PKGBUILD b/core/glib2/PKGBUILD
new file mode 100644
index 000000000..f1738b76b
--- /dev/null
+++ b/core/glib2/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 99447 2010-11-14 19:35:34Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=glib2
+pkgver=2.26.1
+pkgrel=1
+pkgdesc="Common C routines used by GTK+ 2.4 and other libs"
+url="http://www.gtk.org/"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('pcre>=8.02')
+makedepends=('pkgconfig' 'python2')
+options=('!libtool' '!docs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.26/glib-${pkgver}.tar.bz2
+ glib2.sh
+ glib2.csh)
+sha256sums=('7a74ff12b6b9dee1f2d0e520b56b68b621920c4f4250bdf23468e515625c28d5'
+ '9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
+ '8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
+
+build() {
+ cd "${srcdir}/glib-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-pcre=system \
+ --disable-fam
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/etc/profile.d"
+ install -m755 "${srcdir}/glib2.sh" "${pkgdir}/etc/profile.d/"
+ install -m755 "${srcdir}/glib2.csh" "${pkgdir}/etc/profile.d/"
+
+ for _i in "${pkgdir}/etc/bash_completion.d/"*; do
+ chmod -x "${_i}"
+ done
+}
diff --git a/core/glib2/glib2.csh b/core/glib2/glib2.csh
new file mode 100644
index 000000000..7aa3a2ffa
--- /dev/null
+++ b/core/glib2/glib2.csh
@@ -0,0 +1 @@
+setenv G_BROKEN_FILENAMES 1
diff --git a/core/glib2/glib2.sh b/core/glib2/glib2.sh
new file mode 100644
index 000000000..96a056e1e
--- /dev/null
+++ b/core/glib2/glib2.sh
@@ -0,0 +1 @@
+export G_BROKEN_FILENAMES=1
diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD
new file mode 100644
index 000000000..6ae2db02f
--- /dev/null
+++ b/core/glibc/PKGBUILD
@@ -0,0 +1,164 @@
+# $Id: PKGBUILD 110236 2011-02-18 04:46:54Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each new glibc version
+
+pkgname=glibc
+pkgver=2.13
+pkgrel=4
+_glibcdate=20110117
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=2.6.37' 'tzdata')
+makedepends=('gcc>=4.4')
+backup=(etc/locale.gen
+ etc/nscd.conf)
+options=('!strip')
+install=glibc.install
+source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.1-static-shared-getpagesize.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.13-prelink.patch
+ nscd
+ locale.gen.txt
+ locale-gen)
+md5sums=('b7b17d9c6b5b71b5e5322e04ca63c190'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '24dfab6fd244f3773523412588ecc52c'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+
+mksource() {
+ git clone git://sourceware.org/git/glibc.git
+ pushd glibc
+ git checkout -b glibc-2.13-arch origin/release/2.13/master
+ popd
+ tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/*
+}
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+ patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+ # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+ patch -Np1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
+ # using Fedora "fix" as patch in that bug report causes breakages...
+ patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
+
+ # http://www.exploit-db.com/exploits/15274/
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12489
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=25b3aada (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.13-prelink.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12403
+ if [[ $CARCH == "x86_64" ]]; then
+ sed -i '/__ASSUME_PRIVATE_FUTEX/d' $srcdir/glibc/sysdeps/unix/sysv/linux/kernel-features.h
+ fi
+
+ install -dm755 ${pkgdir}/etc
+ touch ${pkgdir}/etc/ld.so.conf
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ if [[ ${CARCH} = "i686" ]]; then
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --disable-multi-arch
+
+ make
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm ${pkgdir}/etc/ld.so.{cache,conf}
+
+ install -dm755 ${pkgdir}/etc/rc.d
+ install -dm755 ${pkgdir}/usr/sbin
+ install -dm755 ${pkgdir}/usr/lib/locale
+ install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+ install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
+ install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
+ install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+ sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
+
+ # create /etc/locale.gen
+ install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+ sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED
+ cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+ sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
+
+ if [[ ${CARCH} = "x86_64" ]]; then
+ # fix for the linker
+ sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd
+ # Comply with multilib binaries, they look for the linker in /lib64
+ mkdir ${pkgdir}/lib64
+ cd ${pkgdir}/lib64
+ ln -v -s ../lib/ld* .
+ fi
+
+ # manually strip files as stripping libpthread-*.so and libthread_db.so
+ # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+ # valgrind on x86_64
+
+ cd $pkgdir
+ strip $STRIP_BINARIES sbin/{ldconfig,sln} \
+ usr/bin/{gencat,getconf,getent,iconv,locale} \
+ usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \
+ usr/lib/getconf/* \
+ usr/sbin/{iconvconfig,nscd,rpcinfo}
+ [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
+
+ strip $STRIP_STATIC usr/lib/*.a \
+ lib/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ lib/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib/{pt_chown,gconv/*.so}
+}
diff --git a/core/glibc/glibc-2.10-bz4781.patch b/core/glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/core/glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/core/glibc/glibc-2.10-dont-build-timezone.patch b/core/glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/core/glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/core/glibc/glibc-2.12.1-static-shared-getpagesize.patch b/core/glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/core/glibc/glibc-2.12.1-static-shared-getpagesize.patch
@@ -0,0 +1,11 @@
+--- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+ #else
diff --git a/core/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/core/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/core/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
@@ -0,0 +1,26 @@
+From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH 1/1] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 22a1635..7674d49 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.2
diff --git a/core/glibc/glibc-2.13-prelink.patch b/core/glibc/glibc-2.13-prelink.patch
new file mode 100644
index 000000000..bef7998a8
--- /dev/null
+++ b/core/glibc/glibc-2.13-prelink.patch
@@ -0,0 +1,26 @@
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 9a560b3..201c9cf 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2168,6 +2168,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ we need it in the memory handling later. */
+ GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
+
++ /* Remember the last search directory added at startup, now that
++ malloc will no longer be the one from dl-minimal.c. */
++ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
++
+ if (prelinked)
+ {
+ if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
+@@ -2288,10 +2292,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lossage);
+ }
+
+- /* Remember the last search directory added at startup, now that
+- malloc will no longer be the one from dl-minimal.c. */
+- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+-
+ if (! prelinked && rtld_multiple_ref)
+ {
+ /* There was an explicit ref to the dynamic linker as a shared lib.
diff --git a/core/glibc/glibc-__i686.patch b/core/glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/core/glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/core/glibc/glibc.install b/core/glibc/glibc.install
new file mode 100644
index 000000000..7f85ade96
--- /dev/null
+++ b/core/glibc/glibc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
+
+post_upgrade() {
+ sbin/ldconfig -r .
+ [ -x sbin/init ] && sbin/init u
+ usr/sbin/locale-gen
+
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/glibc/locale-gen b/core/glibc/locale-gen
new file mode 100755
index 000000000..5aff344c4
--- /dev/null
+++ b/core/glibc/locale-gen
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+ unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+ if [ -n "$locale" -a -n "$charset" ] ; then
+ true
+ else
+ echo "error: Bad entry '$locale $charset'"
+ false
+ fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+ case $locale in \#*) continue;; "") continue;; esac; \
+ is_entry_ok || continue
+ echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+ echo -n ".$charset"; \
+ echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+ echo -n '...'; \
+ if [ -f $LOCALES/$locale ]; then input=$locale; else \
+ input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+ localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+ echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."
diff --git a/core/glibc/locale.gen.txt b/core/glibc/locale.gen.txt
new file mode 100644
index 000000000..ccdd81734
--- /dev/null
+++ b/core/glibc/locale.gen.txt
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+# <locale> <charset>
+#
+# where <locale> is one of the locales given in /usr/share/i18n/locales
+# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+# Examples:
+# en_US ISO-8859-1
+# en_US.UTF-8 UTF-8
+# de_DE ISO-8859-1
+# de_DE@euro ISO-8859-15
+#
+# The locale-gen command will generate all the locales,
+# placing them in /usr/lib/locale.
+#
+# A list of supported locales is included in this file.
+# Uncomment the ones you need.
+#
diff --git a/core/glibc/nscd b/core/glibc/nscd
new file mode 100755
index 000000000..8b14f2a3f
--- /dev/null
+++ b/core/glibc/nscd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/nscd`
+case "$1" in
+ start)
+ stat_busy "Starting nscd"
+ # create necessary directories if they don't already exist
+ mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null
+ # remove stale files
+ rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null
+ [ -z "$PID" ] && /usr/sbin/nscd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon nscd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping nscd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon nscd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/gmp/PKGBUILD b/core/gmp/PKGBUILD
new file mode 100644
index 000000000..234f18ad8
--- /dev/null
+++ b/core/gmp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 105599 2011-01-10 18:34:30Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gmp
+pkgver=5.0.1
+pkgrel=2
+pkgdesc="A free library for arbitrary precision arithmetic"
+arch=('i686' 'x86_64')
+url="http://gmplib.org/"
+depends=('gcc-libs' 'sh')
+license=('LGPL3')
+options=(!libtool)
+install=gmp.install
+source=(ftp://ftp.gnu.org/gnu/gmp/gmp-${pkgver}.tar.bz2)
+md5sums=('6bac6df75c192a13419dfd71d19240a7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ [ "${CARCH}" = "i686" ] && export ABI="32"
+ ./configure --build=${CHOST} \
+ --prefix=/usr --infodir=/usr/share/info \
+ --enable-cxx
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/gmp/gmp.install b/core/gmp/gmp.install
new file mode 100644
index 000000000..1c31ab365
--- /dev/null
+++ b/core/gmp/gmp.install
@@ -0,0 +1,20 @@
+info_dir=/usr/share/info
+info_files=(gmp.info gmp.info-1 gmp.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/core/gpm/PKGBUILD b/core/gpm/PKGBUILD
new file mode 100644
index 000000000..f0284fc2e
--- /dev/null
+++ b/core/gpm/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 100083 2010-11-20 08:19:49Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=gpm
+pkgver=1.20.6
+pkgrel=6
+pkgdesc="A mouse server for the console and xterm"
+arch=('i686' 'x86_64')
+url="http://www.nico.schottelius.org/software/gpm/"
+license=('GPL')
+depends=('ncurses' 'bash')
+backup=('etc/conf.d/gpm')
+options=('!makeflags')
+install=gpm.install
+source=(http://www.nico.schottelius.org/software/gpm/archives/${pkgname}-${pkgver}.tar.bz2 \
+ gpm gpm.conf.d gpm.sh)
+md5sums=('6b534da16dc1b28ba828dea89e520f6f' '945ecde0836687e05c13ea837092ea6c'\
+ 'f436a1277571f2ae8bfa9bf2ef32f7a5' 'e391fe4599ce102615f9cd449c380d41')
+sha1sums=('f3bb9272878b7934968381c8b25edab359114150' '19e1feb1493373512a77801699df012d186336ea'\
+ '4c31cb7dd51cee4d16d3f7a8956e6d87fac1ad86' '88fe5ff10916c68a87abc8418a56eb0073f69fa9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m755 ../gpm "${pkgdir}/etc/rc.d/gpm"
+ install -D -m644 ../gpm.conf.d "${pkgdir}/etc/conf.d/gpm"
+ install -D -m755 ../gpm.sh "${pkgdir}/etc/profile.d/gpm.sh"
+
+# library fixes
+ cd "${pkgdir}/usr/lib/"
+ ln -s libgpm.so.2.* libgpm.so
+ chmod 755 "${pkgdir}"/usr/lib/libgpm.so.*
+}
diff --git a/core/gpm/gpm b/core/gpm/gpm
new file mode 100755
index 000000000..7b5213dd7
--- /dev/null
+++ b/core/gpm/gpm
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# source application-specific settings
+GPM_ARGS=
+[ -f /etc/conf.d/gpm ] && . /etc/conf.d/gpm
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/sbin/gpm)
+case "$1" in
+ start)
+ stat_busy "Starting GPM Daemon"
+ [ -z "$PID" ] && /usr/sbin/gpm ${GPM_ARGS}
+ PID=$(pidof -o %PPID /usr/sbin/gpm)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ add_daemon gpm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping GPM Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon gpm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/gpm/gpm.conf.d b/core/gpm/gpm.conf.d
new file mode 100644
index 000000000..ab43bb7eb
--- /dev/null
+++ b/core/gpm/gpm.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to gpm
+#
+GPM_ARGS="-m /dev/input/mice -t imps2"
diff --git a/core/gpm/gpm.install b/core/gpm/gpm.install
new file mode 100644
index 000000000..2a1519a6c
--- /dev/null
+++ b/core/gpm/gpm.install
@@ -0,0 +1,16 @@
+infodir=/usr/share/info
+file=gpm.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/core/gpm/gpm.sh b/core/gpm/gpm.sh
new file mode 100755
index 000000000..af35a5f33
--- /dev/null
+++ b/core/gpm/gpm.sh
@@ -0,0 +1,3 @@
+case $( /usr/bin/tty ) in
+ /dev/tty[0-9]*) [ -n "$(pgrep gpm)" ] && /usr/bin/disable-paste ;;
+esac
diff --git a/core/grep/PKGBUILD b/core/grep/PKGBUILD
new file mode 100644
index 000000000..a2c47a73c
--- /dev/null
+++ b/core/grep/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 91020 2010-09-21 03:26:36Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=grep
+pkgver=2.7
+pkgrel=1
+pkgdesc="A string search utility"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/grep/grep.html"
+groups=('base')
+depends=('glibc' 'pcre' 'sh')
+makedepends=('texinfo')
+install=${pkgname}.install
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz)
+md5sums=('6dd9931a52501519d7779a27cf953326')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --bindir=/bin --without-included-regex
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/grep/grep.install b/core/grep/grep.install
new file mode 100644
index 000000000..ba97d8994
--- /dev/null
+++ b/core/grep/grep.install
@@ -0,0 +1,21 @@
+infodir=/usr/share/info
+filelist=(grep.info)
+
+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/core/groff/PKGBUILD b/core/groff/PKGBUILD
new file mode 100644
index 000000000..73e68b3a6
--- /dev/null
+++ b/core/groff/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 104541 2011-01-03 22:33:16Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=groff
+pkgver=1.21
+pkgrel=1
+pkgdesc="GNU troff text-formatting system"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/groff/groff.html"
+license=('GPL')
+depends=('perl' 'gcc-libs' 'texinfo')
+makedepends=('netpbm' 'psutils' 'ghostscript')
+optdepends=('netpbm: for use together with man -H command interaction in browsers'
+ 'psutils: for use together with man -H command interaction in browsers')
+source=(ftp://ftp.gnu.org/gnu/groff/groff-$pkgver.tar.gz
+ site.tmac)
+options=('!makeflags')
+install=groff.install
+md5sums=('8b8cd29385b97616a0f0d96d0951c5bf'
+ 'a1fedafd7863b37968d32ad9ae1d8c13')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --without-x
+ mkdir -p $pkgdir/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+ cd $pkgdir/usr/bin
+ # needed for xman
+ ln -s eqn geqn
+ ln -s tbl gtbl
+ ln -s soelim zsoelim
+ rm -rf $pkgdir/usr/lib/groff/site-tmac
+ # Fix some issues when encoding to utf8 man pages
+ # The output chars don't match keyboard chars...
+ cat $srcdir/site.tmac >> \
+ $pkgdir/usr/share/groff/site-tmac/man.local
+ cat $srcdir/site.tmac >> \
+ $pkgdir/usr/share/groff/site-tmac/mdoc.local
+}
diff --git a/core/groff/groff.install b/core/groff/groff.install
new file mode 100644
index 000000000..6807e4bef
--- /dev/null
+++ b/core/groff/groff.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(groff.info groff.info-1 groff.info-2 groff.info-3)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/groff/site.tmac b/core/groff/site.tmac
new file mode 100644
index 000000000..8ef1040ca
--- /dev/null
+++ b/core/groff/site.tmac
@@ -0,0 +1,16 @@
+.
+.if n \{\
+. \" Character translations for non-keyboard
+. \" characters - to make them searchable
+. if '\*[.T]'utf8' \{\
+. char \- \N'45'
+. char - \N'45'
+. char ' \N'39'
+. char \' \N'39'
+. \}
+.
+. \" Shut off SGR by default (groff colors)
+. \" Require GROFF_SGR envvar defined to turn it on
+. if '\V[GROFF_SGR]'' \
+. output x X tty: sgr 0
+.\}
diff --git a/core/gzip/PKGBUILD b/core/gzip/PKGBUILD
new file mode 100644
index 000000000..135dafaa6
--- /dev/null
+++ b/core/gzip/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 100035 2010-11-20 01:15:49Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=gzip
+pkgver=1.4
+pkgrel=2
+pkgdesc="GNU compression utility"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gzip/"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'bash')
+makedepends=('patch')
+install=gzip.install
+source=(ftp://ftp.gnu.org/pub/gnu/gzip/gzip-$pkgver.tar.gz)
+md5sums=('e381b8506210c794278f5527cba0e765')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # By default Gzip uses assembly code. While this may preform better,
+ # it is not position independent. The DEFS environment variable is
+ # set to use only C code.
+ export DEFS="NO_ASM"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=${pkgdir}/usr install
+
+ install -dm755 ${pkgdir}/bin
+ mv ${pkgdir}/usr/bin/{gunzip,gzip,uncompress,zcat} ${pkgdir}/bin/
+ cd $pkgdir/bin
+ ln -sf ${pkgname} compress
+}
diff --git a/core/gzip/gzip.install b/core/gzip/gzip.install
new file mode 100644
index 000000000..636f91011
--- /dev/null
+++ b/core/gzip/gzip.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gzip.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/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
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/hdparm/PKGBUILD b/core/hdparm/PKGBUILD
new file mode 100644
index 000000000..680cf51c9
--- /dev/null
+++ b/core/hdparm/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 111559 2011-02-27 18:01:17Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=hdparm
+pkgver=9.37
+pkgrel=1
+pkgdesc="A shell utility for manipulating Linux IDE drive/driver parameters"
+arch=(i686 x86_64)
+depends=('glibc')
+optdepends=('sh: required by idectl and ultrabayd')
+source=(http://downloads.sourceforge.net/sourceforge/hdparm/${pkgname}-${pkgver}.tar.gz
+ wiper.sh.2_6.max-ranges.patch)
+license=('BSD')
+url="http://sourceforge.net/projects/hdparm/"
+optdepends=('bash: for wiper.sh script')
+options=('emptydirs')
+md5sums=('0bb94ddd1bedd5c02b1ca62f1caaf6de'
+ '74e368f384166a7710b447573cda120a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # Fix Range input/output error when wiping Intel G2 and OCZ drives
+ patch -Np1 -i $srcdir/wiper.sh.2_6.max-ranges.patch
+
+ # build
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # install
+ mkdir -p ${pkgdir}/{usr,sbin}
+ make DESTDIR=${pkgdir} install
+ install -m755 contrib/idectl ${pkgdir}/sbin
+ install -m755 contrib/ultrabayd ${pkgdir}/sbin
+
+ install -D -m 0644 $srcdir/$pkgname-$pkgver/wiper/README.txt $pkgdir/usr/share/doc/wiper/README.txt
+ install -D -m 0755 $srcdir/$pkgname-$pkgver/wiper/wiper.sh $pkgdir/usr/sbin/wiper.sh
+
+ #install license file
+ install -D -m 644 LICENSE.TXT $pkgdir/usr/share/licenses/hdparm/LICENSE.TXT
+}
diff --git a/core/hdparm/wiper.sh.2_6.max-ranges.patch b/core/hdparm/wiper.sh.2_6.max-ranges.patch
new file mode 100644
index 000000000..c55f7b149
--- /dev/null
+++ b/core/hdparm/wiper.sh.2_6.max-ranges.patch
@@ -0,0 +1,84 @@
+--- hdparm-9.28/wiper/wiper.sh.orig 2010-03-09 06:17:37.000000000 -0800
+--- hdparm-9.28/wiper/wiper.sh 2010-05-15 03:08:02.182856971 -0700
+@@ -29,7 +29,7 @@
+ function usage_error(){
+ echo >&2
+ echo "Linux tune-up (TRIM) utility for SATA SSDs"
+- echo "Usage: $0 [--verbose] [--commit] <mount_point|block_device>" >&2
++ echo "Usage: $0 [--max-ranges <num>] [--verbose] [--commit] <mount_point|block_device>" >&2
+ echo " Eg: $0 /dev/sda1" >&2
+ echo >&2
+ exit 1
+@@ -44,6 +44,7 @@
+
+ export verbose=0
+ commit=""
++max_ranges=-1
+ destroy_me=""
+ argc=$#
+ arg=""
+@@ -51,6 +52,10 @@
+ commit=yes
+ elif [ "$1" = "--verbose" ]; then
+ verbose=$((verbose + 1))
++ elif [ "$1" = "--max-ranges" -a $argc -gt 1 ]; then
++ max_ranges=$2
++ argc=$((argc - 1))
++ shift
+ elif [ "$1" = "" ]; then
+ usage_error
+ else
+@@ -499,6 +550,18 @@
+ fi
+ fi
+
++## Different SSD's have a different maximum number of ranges they'll accept
++## in a single TRIM command.
++if [ $max_ranges -le 0 ] ; then
++ model=`$HDPARM -I $rawdev | $GAWK '/Model Number/ { print $NF }'`
++ case "$model" in
++ SSDSA[12]*) max_ranges=512 ;; # Intel X18-M/X25-M
++ OCZ-VERTEX2) max_ranges=64 ;; # OCZ Vertex2
++ *) max_ranges=65535
++ esac
++fi
++[ $verbose -gt 0 ] && echo "max-ranges = $max_ranges"
++
+ ## All ready. Now let the user know exactly what we intend to do:
+ ##
+ mountstatus="$fstype non-mounted"
+@@ -608,7 +671,7 @@
+ nsectors += count;
+ while (count > 0) {
+ this_count = (count > 65535) ? 65535 : count
+- printf "%u:%u ", lba, this_count
++ printf "%u:%u \n", lba, this_count
+ if (verbose > 1)
+ printf "%u:%u ", lba, this_count > "/dev/stderr"
+ lba += this_count
+@@ -695,6 +758,22 @@
+ -v verbose="$verbose" \
+ -v xfs_blksects="$xfs_blksects" \
+ -v xfs_agoffsets="$xfs_agoffsets" \
+- "$GAWKPROG" | $TRIM
++ "$GAWKPROG" | (
++ i=0
++ while read range ; do
++ ranges=$ranges" "$range
++ ((i++))
++ if [ $i -ge $max_ranges ] ; then
++ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++ echo $ranges | $TRIM
++ ranges=""
++ i=0
++ fi
++ done
++ if [ $i -gt 0 ] ; then
++ [ $verbose -gt 0 ] && echo -e "Trim ranges:"$ranges"\n"
++ echo $ranges | $TRIM
++ fi
++ )
+
+ do_cleanup $?
+
+
diff --git a/core/heimdal/001_all_heimdal-no_libedit.patch b/core/heimdal/001_all_heimdal-no_libedit.patch
new file mode 100644
index 000000000..a551bdce1
--- /dev/null
+++ b/core/heimdal/001_all_heimdal-no_libedit.patch
@@ -0,0 +1,10 @@
+--- cf/krb-readline.m4 2005-06-16 18:28:32.000000000 +0200
++++ cf/krb-readline.m4 2005-06-27 23:17:06.000000000 +0200
+@@ -6,7 +6,6 @@
+ dnl el_init
+
+ AC_DEFUN([KRB_READLINE],[
+-AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
+ if test "$ac_cv_func_el_init" = yes ; then
+ AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
diff --git a/core/heimdal/002_all_heimal-fPIC.patch b/core/heimdal/002_all_heimal-fPIC.patch
new file mode 100644
index 000000000..c67dbae76
--- /dev/null
+++ b/core/heimdal/002_all_heimal-fPIC.patch
@@ -0,0 +1,12 @@
+--- lib/editline/Makefile.am 2005-06-16 18:28:44.000000000 +0200
++++ lib/editline/Makefile.am 2005-06-27 23:21:02.000000000 +0200
+@@ -41,6 +41,9 @@
+
+ EXTRA_DIST = $(man_MANS)
+
++$(libeditline_la_OBJECTS): %.lo: %.c
++ $(LTCOMPILE) -fPIC -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
++
+ snprintf.c:
+ $(LN_S) $(srcdir)/../roken/snprintf.c .
+ strdup.c:
diff --git a/core/heimdal/003_all_heimdal-rxapps.patch b/core/heimdal/003_all_heimdal-rxapps.patch
new file mode 100644
index 000000000..40fc05f08
--- /dev/null
+++ b/core/heimdal/003_all_heimdal-rxapps.patch
@@ -0,0 +1,22 @@
+--- appl/kx/rxtelnet.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxtelnet.in 2005-06-27 23:21:34.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxtelnet.in,v 1.31 2004/03/07 17:22:06 lha Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-fF] [-t args_to_telnet] [-x args_to_xterm] [-K args_to_kx] [-w term_emulator] [-b telnet_binary] [-n] [-v] [-h | --help] [--version] host [port]"
+-binary=telnet
++binary=ktelnet
+ term=
+ kx_args=-P
+ while true
+--- appl/kx/rxterm.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxterm.in 2005-06-27 23:21:55.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxterm.in,v 1.23 2002/03/18 17:37:34 joda Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-f] [-r rsh_args] [-x xterm_args] [-K kx_args] [-w term_emulator] [-b rsh_binary][-v] [-h | --help] [--version] host"
+-binary=rsh
++binary=krsh
+ term=xterm
+ while true
+ do
diff --git a/core/heimdal/005_all_heimdal-suid_fix.patch b/core/heimdal/005_all_heimdal-suid_fix.patch
new file mode 100644
index 000000000..35a9ed9f6
--- /dev/null
+++ b/core/heimdal/005_all_heimdal-suid_fix.patch
@@ -0,0 +1,20 @@
+--- appl/su/Makefile.am 2005-06-16 18:27:46.000000000 +0200
++++ appl/su/Makefile.am 2005-06-27 23:25:21.000000000 +0200
+@@ -7,6 +7,7 @@
+ bin_PROGRAMS = su
+ bin_SUIDS = su
+ su_SOURCES = su.c supaths.h
++su_LDFLAGS = -Wl,-z,now
+ man_MANS = su.1
+
+ LDADD = $(LIB_kafs) \
+--- appl/otp/Makefile.am 2005-06-16 18:28:46.000000000 +0200
++++ appl/otp/Makefile.am 2005-06-27 23:25:40.000000000 +0200
+@@ -8,6 +8,7 @@
+ bin_SUIDS = otp
+ otp_SOURCES = otp.c otp_locl.h
+ otpprint_SOURCES = otpprint.c otp_locl.h
++otp_LDFLAGS = -Wl,-z,now
+
+ man_MANS = otp.1 otpprint.1
+
diff --git a/core/heimdal/012_all_heimdal-berkdb.patch b/core/heimdal/012_all_heimdal-berkdb.patch
new file mode 100644
index 000000000..46762c220
--- /dev/null
+++ b/core/heimdal/012_all_heimdal-berkdb.patch
@@ -0,0 +1,124 @@
+Binary files heimdal-0.7-old/cf/.find-func-no-libs2.m4.swp and heimdal-0.7/cf/.find-func-no-libs2.m4.swp differ
+Index: heimdal/cf/db.m4
+===================================================================
+--- heimdal.orig/cf/db.m4
++++ heimdal/cf/db.m4
+@@ -18,24 +18,13 @@ db_type=unknown
+
+ if test "$enable_berkeley_db" != no; then
+
+- AC_CHECK_HEADERS([ \
+- db4/db.h \
+- db3/db.h \
+- db.h \
+- db_185.h \
+- ])
++ AC_CHECK_HEADERS([db.h])
+
+ dnl db_create is used by db3 and db4
+
+- AC_FIND_FUNC_NO_LIBS(db_create, db4 db3 db, [
++ AC_FIND_FUNC_NO_LIBS(db_create, db, [
+ #include <stdio.h>
+- #ifdef HAVE_DB4_DB_H
+- #include <db4/db.h>
+- #elif defined(HAVE_DB3_DB_H)
+- #include <db3/db.h>
+- #else
+ #include <db.h>
+- #endif
+ ],[NULL, NULL, 0])
+
+ if test "$ac_cv_func_db_create" = "yes"; then
+@@ -50,17 +39,9 @@ dnl db_create is used by db3 and db4
+
+ dnl dbopen is used by db1/db2
+
+- AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
++ AC_FIND_FUNC_NO_LIBS(dbopen, db, [
+ #include <stdio.h>
+- #if defined(HAVE_DB2_DB_H)
+- #include <db2/db.h>
+- #elif defined(HAVE_DB_185_H)
+- #include <db_185.h>
+- #elif defined(HAVE_DB_H)
+ #include <db.h>
+- #else
+- #error no db.h
+- #endif
+ ],[NULL, 0, 0, 0, NULL])
+
+ if test "$ac_cv_func_dbopen" = "yes"; then
+Index: heimdal/lib/hdb/db.c
+===================================================================
+--- heimdal.orig/lib/hdb/db.c
++++ heimdal/lib/hdb/db.c
+@@ -37,11 +37,7 @@ RCSID("$Id: db.c 20215 2007-02-09 21:59:
+
+ #if HAVE_DB1
+
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/hdb/db3.c
+===================================================================
+--- heimdal.orig/lib/hdb/db3.c
++++ heimdal/lib/hdb/db3.c
+@@ -37,13 +37,7 @@ RCSID("$Id: db3.c 21610 2007-07-17 07:10
+
+ #if HAVE_DB3
+
+-#ifdef HAVE_DB4_DB_H
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/roken/getcap.c
+===================================================================
+--- heimdal.orig/lib/roken/getcap.c
++++ heimdal/lib/roken/getcap.c
+@@ -38,11 +38,13 @@
+ #include "roken.h"
+ RCSID("$Id: getcap.c 16561 2006-01-13 14:25:32Z lha $");
+
++#if defined(HAVE_DBOPEN) && defined(HAVE_DB_H)
++#define USE_DB
++#endif
++
+ #include <sys/types.h>
+ #include <ctype.h>
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
++#ifdef USE_DB
+ #include <db.h>
+ #endif
+ #include <errno.h>
+Index: heimdal/lib/roken/ndbm_wrap.c
+===================================================================
+--- heimdal.orig/lib/roken/ndbm_wrap.c
++++ heimdal/lib/roken/ndbm_wrap.c
+@@ -37,13 +37,7 @@ RCSID("$Id: ndbm_wrap.c 21634 2007-07-17
+ #endif
+
+ #include "ndbm_wrap.h"
+-#if defined(HAVE_DB4_DB_H)
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/core/heimdal/013_all_heimdal-pthread-lib.patch b/core/heimdal/013_all_heimdal-pthread-lib.patch
new file mode 100644
index 000000000..19f879407
--- /dev/null
+++ b/core/heimdal/013_all_heimdal-pthread-lib.patch
@@ -0,0 +1,11 @@
+--- heimdal-0.7.1/cf/pthreads.m4.old 2005-09-09 12:12:28.000000000 +0000
++++ heimdal-0.7.1/cf/pthreads.m4 2005-09-17 22:23:23.000000000 +0000
+@@ -32,7 +32,7 @@
+ 2.*)
+ native_pthread_support=yes
+ PTHREADS_CFLAGS=-pthread
+- PTHREADS_LIBS=-pthread
++ PTHREADS_LIBS=-lpthread
+ ;;
+ esac
+ ;;
diff --git a/core/heimdal/014_all_heimdal-path.patch b/core/heimdal/014_all_heimdal-path.patch
new file mode 100644
index 000000000..36a86f1f9
--- /dev/null
+++ b/core/heimdal/014_all_heimdal-path.patch
@@ -0,0 +1,50 @@
+--- appl/rcp/rcp.c.old 2006-05-03 13:31:59.398493625 +0200
++++ appl/rcp/rcp.c 2006-05-03 13:32:04.494485981 +0200
+@@ -34,7 +34,7 @@
+ #include "rcp_locl.h"
+ #include <getarg.h>
+
+-#define RSH_PROGRAM "rsh"
++#define RSH_PROGRAM "krsh"
+
+ struct passwd *pwd;
+ uid_t userid;
+--- appl/rcp/rcp_locl.h.old 2006-05-03 02:30:31.602025409 +0200
++++ appl/rcp/rcp_locl.h 2006-05-03 02:30:35.886018983 +0200
+@@ -64,4 +64,4 @@
+ #define _PATH_CP "/bin/cp"
+ #endif
+ #undef _PATH_RSH
+-#define _PATH_RSH BINDIR "/rsh"
++#define _PATH_RSH BINDIR "/krsh"
+--- appl/telnet/telnetd/telnetd.h.old 2006-05-03 02:23:14.582680939 +0200
++++ appl/telnet/telnetd/telnetd.h 2006-05-03 02:23:23.746667193 +0200
+@@ -192,7 +192,7 @@
+ #endif
+
+ #undef _PATH_LOGIN
+-#define _PATH_LOGIN BINDIR "/login"
++#define _PATH_LOGIN BINDIR "/klogin"
+
+ /* fallbacks */
+
+--- appl/login/shadow.c.old 2006-05-05 06:31:29.517138115 +0200
++++ appl/login/shadow.c 2006-05-05 06:32:26.433052741 +0200
+@@ -38,7 +38,7 @@
+ #ifdef HAVE_SHADOW_H
+
+ #ifndef _PATH_CHPASS
+-#define _PATH_CHPASS "/usr/bin/passwd"
++#define _PATH_CHPASS "/usr/bin/kpasswd"
+ #endif
+
+ static int
+@@ -52,7 +52,7 @@
+ printf("fork /bin/passwd");
+ exit(1);
+ case 0:
+- execlp(_PATH_CHPASS, "passwd", who->pw_name, (char *) 0);
++ execlp(_PATH_CHPASS, "kpasswd", who->pw_name, (char *) 0);
+ exit(1);
+ default:
+ waitpid(pid, &status, 0);
diff --git a/core/heimdal/PKGBUILD b/core/heimdal/PKGBUILD
new file mode 100644
index 000000000..55f7acf34
--- /dev/null
+++ b/core/heimdal/PKGBUILD
@@ -0,0 +1,113 @@
+# $Id: PKGBUILD 101969 2010-12-03 09:59:28Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+#
+### Attention: remove old pkg before building - it links against itself! ###
+#
+
+pkgname=heimdal
+pkgver=1.3.3
+pkgrel=4
+pkgdesc="Implementation of Kerberos V5 libraries"
+arch=('i686' 'x86_64')
+url="http://www.h5l.org/"
+license=('custom')
+depends=('db' 'openssl' 'sqlite3' 'e2fsprogs' 'libldap')
+backup=(etc/krb5.conf)
+options=('!libtool' '!emptydirs')
+install=heimdal.install
+source=(http://www.h5l.org/dist/src/${pkgname}-${pkgver}.tar.gz
+ 001_all_heimdal-no_libedit.patch
+ 002_all_heimal-fPIC.patch
+ 003_all_heimdal-rxapps.patch
+ 005_all_heimdal-suid_fix.patch
+ 012_all_heimdal-berkdb.patch
+ 013_all_heimdal-pthread-lib.patch
+ 014_all_heimdal-path.patch
+ heimdal-kdc.rc
+ kadmind.rc
+ kpasswd.rc)
+md5sums=('963c09f1b14c41660be70b55fae9f163'
+ '98e28f11f906c967aac22d6184102c9e'
+ '6d5571bdedba2e2423b90bccdbac2c0a'
+ '2feec3924ee5230b54175b4d4000c872'
+ '45aeb207f360f9f4e9e0fabc8bfeecbc'
+ '56f5d10d0ec40f2fda82ef144ffac1e0'
+ '1b8665b771c4eb6b56ea8582c96e56e3'
+ '8208ae8c0b6ff5ab4f64af1693e9e396'
+ 'e59650992b9541a30dfce727a194f6e0'
+ '1f2f86a67bbfddb7af581d35fdca9627'
+ 'f8f1eca95b9d3f2b4ebf2417b71b81cf')
+
+build() {
+ cd ${srcdir}/heimdal-${pkgver}
+ patch -Np0 -i ${srcdir}/001_all_heimdal-no_libedit.patch
+ patch -Np0 -i ${srcdir}/002_all_heimal-fPIC.patch
+ patch -Np0 -i ${srcdir}/003_all_heimdal-rxapps.patch
+ patch -Np0 -i ${srcdir}/005_all_heimdal-suid_fix.patch
+ patch -Np1 -i ${srcdir}/012_all_heimdal-berkdb.patch
+ patch -Np1 -i ${srcdir}/013_all_heimdal-pthread-lib.patch
+ patch -Np0 -i ${srcdir}/014_all_heimdal-path.patch
+
+ sed -i -e 's|var/heimdal|var/lib/heimdal|g' configure.in \
+ doc/setup.texi doc/heimdal.info kadmin/kadmind.8 kdc/kdc.8 \
+ lib/hdb/hdb.h lib/krb5/krb5.conf.5 lib/krb5/krb5.conf.cat5
+
+ sed -i 's|$(LIB_NDBM)|$(LIB_NDBM) $(LIB_db_create)|' lib/otp/Makefile.am
+
+ libtoolize --force
+ aclocal -I cf
+ autoconf
+ automake
+
+ ./configure --prefix=/usr --enable-shared=yes --without-x \
+ --sysconfdir=/etc --mandir=/usr/share/man \
+ --datadir=/var/lib/heimdal \
+ --localstatedir=/var/lib/heimdal \
+ --with-openssl=/usr \
+ --with-readline-lib=/usr/lib \
+ --with-readline-include=/usr/include/readline \
+ --with-sqlite3-lib=/usr/lib \
+ --with-sqlite3-include=/usr/include \
+ --with-openldap=/usr \
+ --libexecdir=/usr/sbin
+
+ make
+}
+
+package() {
+ cd ${srcdir}/heimdal-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Rename daemons and their manpages
+ for i in telnetd ftpd rshd; do
+ mv ${pkgdir}/usr/share/man/man8/{,k}${i}.8
+ mv ${pkgdir}/usr/sbin/{,k}${i}
+ done
+
+ # Rename clients and their manpages
+ for i in rcp rsh telnet ftp su login; do
+ if [ -f ${pkgdir}/usr/share/man/man1/${i}.1 ]; then
+ mv ${pkgdir}/usr/share/man/man1/{,k}${i}.1
+ fi
+ mv ${pkgdir}/usr/bin/{,k}${i}
+ done
+ rm -rf ${pkgdir}/usr/share/man/cat{1,3,5,8}
+
+ # Arch could be a KDC too
+ install -d ${pkgdir}/etc/rc.d
+ install -m644 ${srcdir}/heimdal-${pkgver}/krb5.conf ${pkgdir}/etc/
+ for i in heimdal-kdc kadmind kpasswd; do
+ install -m755 ${srcdir}/${i}.rc ${pkgdir}/etc/rc.d/${i}
+ done
+
+ # Remove conflicts
+ rm ${pkgdir}/usr/share/man/man5/ftpusers.5* # man-pages
+ rm ${pkgdir}/usr/share/man/man3/{DES,DH,EVP,OpenSSL,RAND,RSA}* # openssl (a bit overzealous...)
+ rm ${pkgdir}/usr/share/man/man3/os.3* # erlang
+
+ # Install the license
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/heimdal/heimdal-kdc.rc b/core/heimdal/heimdal-kdc.rc
new file mode 100644
index 000000000..b2a3b5fcf
--- /dev/null
+++ b/core/heimdal/heimdal-kdc.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kdc`
+case "$1" in
+ start)
+ stat_busy "Starting heimdal kdc"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kdc --detach
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon heimdal-kdc
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping heimdal kdc"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon heimdal-kdc
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/heimdal/heimdal.install b/core/heimdal/heimdal.install
new file mode 100644
index 000000000..b4fd19000
--- /dev/null
+++ b/core/heimdal/heimdal.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(heimdal hx509)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.info.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.info.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/heimdal/kadmind.rc b/core/heimdal/kadmind.rc
new file mode 100644
index 000000000..0f3b8c7c4
--- /dev/null
+++ b/core/heimdal/kadmind.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kadmind`
+case "$1" in
+ start)
+ stat_busy "Starting heimdal admin server"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kadmind &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kadmind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping heimdal admin server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kadmind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/heimdal/kpasswd.rc b/core/heimdal/kpasswd.rc
new file mode 100644
index 000000000..3697322b9
--- /dev/null
+++ b/core/heimdal/kpasswd.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/kpasswdd`
+case "$1" in
+ start)
+ stat_busy "Starting heimdal kpasswdd"
+ if [ -z "$PID" ]; then
+ /usr/sbin/kpasswdd &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kpasswd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping heimdal kpasswdd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kpasswd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/core/heirloom-mailx/PKGBUILD b/core/heirloom-mailx/PKGBUILD
new file mode 100644
index 000000000..028d593a3
--- /dev/null
+++ b/core/heirloom-mailx/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 113975 2011-03-11 00:21:09Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Andreas Wagner <Andreas dot Wagner at em dot uni-frankfurt dot de>
+
+pkgname=heirloom-mailx
+pkgver=12.5
+pkgrel=1
+pkgdesc="A commandline utility for sending and receiving email"
+arch=('i686' 'x86_64')
+url="http://heirloom.sourceforge.net/mailx.html"
+license=('custom')
+groups=('base')
+depends=('openssl')
+optdepends=('smtp-forwarder: for sending mail')
+replaces=('mailx' 'mailx-heirloom')
+provides=('mailx' 'mailx-heirloom')
+conflicts=('mailx' 'mailx-heirloom')
+backup=(etc/mail.rc)
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz)
+sha1sums=('1998dd6168a68400e533712ae7163c72b6a7c056')
+options=('!makeflags') # Does not build with MAKEFLAGS=-jX, X>1
+
+# source PKGBUILD && mksource
+mksource() {
+ export CVSROOT=:pserver:anonymous@nail.cvs.sourceforge.net:/cvsroot/nail
+ D=nail
+ [ -d "${D}" ] && cvs up "${D}" || cvs co "${D}"
+
+ _dirname=${pkgname}-${pkgver}
+ mv $D ${_dirname}
+ tar -cJv --exclude=CVS -f ${_dirname}.tar.xz ${dirname}
+ rm -r ${_dirname}
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's|/etc/nail.rc|/etc/mail.rc|g' mailx.1
+
+ # For Linux and BSD, this should be set.
+ echo "set bsdcompat" >> nail.rc
+
+ sed -i "s/pg/less/" cmd1.c
+
+ echo PREFIX=/usr \
+ MAILRC=/etc/mail.rc \
+ SENDMAIL=/usr/sbin/sendmail \
+ MAILSPOOL=/var/spool/mail \
+ UCBINSTALL=/bin/install > makeflags
+
+ make `cat makeflags` IPv6=-DHAVE_IPv6_FUNCS
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" `cat makeflags` install
+
+ # For compatibility with the old mailx program
+ ln -sf mailx "${pkgdir}"/usr/bin/mail
+ ln -sf mailx.1.gz "${pkgdir}"/usr/share/man/man1/mail.1.gz
+
+ install -D -m0644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/idnkit/PKGBUILD b/core/idnkit/PKGBUILD
new file mode 100644
index 000000000..3dd1e0833
--- /dev/null
+++ b/core/idnkit/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Igor Nemilentsev <trezorg@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=idnkit
+pkgver=1.0
+pkgrel=1
+pkgdesc='Provides functionalities about Internationalized Domain Name processing'
+arch=('i686' 'x86_64')
+url='http://www.nic.ad.jp/ja/idn/idnkit/download/'
+license=('custom:BSD')
+options=('!makeflags' '!libtool')
+source=("http://www.nic.ad.jp/ja/idn/idnkit/download/sources/idnkit-${pkgver}-src.tar.gz")
+sha1sums=('7d843ffcf9843b7af02079e5a160520f28c75048')
+
+backup=('etc/idnalias.conf' 'etc/idn.conf')
+
+build() {
+ cd "${srcdir}/idnkit-${pkgver}-src"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/share/man \
+ --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/idnkit-${pkgver}-src"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/core/ifenslave/PKGBUILD b/core/ifenslave/PKGBUILD
new file mode 100644
index 000000000..516eba638
--- /dev/null
+++ b/core/ifenslave/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 108480 2011-01-31 14:27:02Z dan $
+# Maintainer:
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=ifenslave
+pkgver=1.1.0
+pkgrel=6
+pkgdesc="Utility for bonding ethernet interfaces"
+arch=('i686' 'x86_64')
+url="http://www.linuxfoundation.org/en/Net:Bonding"
+license=('GPL2')
+depends=('glibc')
+makedepends=('linux-api-headers')
+backup=('etc/conf.d/bonding')
+source=(ifenslave.c::'http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=Documentation/networking/ifenslave.c;h=2bac96'
+ bonding.conf.d)
+md5sums=('41a23dc9ac3522ac2af23396ba70bcc4'
+ '397fccbf574d5082c7a3c8d3793dc000')
+
+build() {
+ cd $srcdir
+ gcc -Wall -Wstrict-prototypes $CFLAGS $LDFLAGS ifenslave.c -o ifenslave
+}
+
+package() {
+ cd $srcdir
+ install -Dm755 ifenslave $pkgdir/sbin/ifenslave
+ install -Dm644 bonding.conf.d $pkgdir/etc/conf.d/bonding
+}
diff --git a/core/ifenslave/bonding.conf.d b/core/ifenslave/bonding.conf.d
new file mode 100644
index 000000000..3092c5e95
--- /dev/null
+++ b/core/ifenslave/bonding.conf.d
@@ -0,0 +1,12 @@
+#
+# Settings for ethernet bonding
+#
+# For each bond interface declared in INTERFACES (in rc.conf), declare
+# a bond_${IF} variable that contains the real ethernet interfaces that
+# should be bonded to the bond interface with the ifenslave utility.
+# Then list the bond interface name in the BOND_INTERFACES array.
+#
+
+#bond_bond0="eth0 eth1"
+#BOND_INTERFACES=(bond0)
+
diff --git a/core/inetutils/PKGBUILD b/core/inetutils/PKGBUILD
new file mode 100644
index 000000000..4e8debe7d
--- /dev/null
+++ b/core/inetutils/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 102693 2010-12-09 22:50:13Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=inetutils
+pkgver=1.8
+pkgrel=2
+pkgdesc="A collection of common network programs"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/inetutils/"
+license=('GPL')
+depends=('readline' 'ncurses' 'pam' 'tcp_wrappers')
+provides=('netkit-ftp' 'netkit-rsh' 'netkit-telnet' 'netkit-ntalk')
+conflicts=('netkit-ftp' 'netkit-rsh' 'netkit-telnet' 'netkit-ntalk')
+replaces=('netkit-ftp' 'netkit-rsh' 'netkit-telnet' 'netkit-ntalk')
+backup=('etc/conf.d/ftpd' 'etc/xinetd.d/telnet' 'etc/xinetd.d/talk' \
+ 'etc/xinetd.d/rexec' 'etc/xinetd.d/rlogin' 'etc/xinetd.d/rsh')
+options=('!emptydirs')
+install=inetutils.install
+source=(http://ftp.gnu.org/gnu/inetutils/${pkgname}-${pkgver}.tar.gz \
+ ftpd.rc ftpd.conf telnet.xinetd talk.xinetd rexec.xinetd rlogin.xinetd rsh.xinetd)
+md5sums=('ad8fdcdf1797b9ca258264a6b04e48fd' 'c167200f6faeb64659e69ced2a9d672a'\
+ 'e6e6e5990a2e8159a276fef8fbf54c04' '8596208d119045543c5fb644e1d713d5'\
+ '2c3655985cf122591d71d031af84ff90' 'c490ea36751ac5f1d61d2c014959a3d1'\
+ 'c25d8382a994de84d9c6962d804f689b' 'c3aa508a9d1293a787341108cd49c1b7')
+sha1sums=('598445859b511f73681e4d74a41d65cd6ae0f83e' '84dc802b5e57b5e04c847572225a3b9612017155'\
+ '68a590083b45997dfdb80e666b2de762f494ba74' 'bfad98a4a62f1fff8779f076c6019ed07f9111af'\
+ '27d99b910eec0fc26bd79ccc2c1de26608330298' '87aa4f38ebee9dac5dcaa04cbc3f2f0906bec605'\
+ '81f10b3b688e3952f793b35bcef63b5bf257a92b' '81f4a8da823cf0bb14284fc71ee6108849691eda')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexec=/usr/sbin --localstatedir=/var \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-wrap --with-pam \
+ --enable-ftp --enable-ftpd \
+ --enable-telnet --enable-telnetd \
+ --enable-talk --enable-talkd \
+ --enable-rlogin --enable-rlogind \
+ --enable-rsh --enable-rshd \
+ --enable-rexec --enable-rexecd \
+ --enable-rcp \
+ --disable-tftp --disable-tftpd \
+ --disable-ping --disable-ping6 \
+ --disable-logger --disable-syslogd \
+ --disable-inetd --disable-whois \
+ --disable-uucpd --disable-hostname \
+ --disable-ifconfig --disable-traceroute
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m755 "${srcdir}/ftpd.rc" "${pkgdir}/etc/rc.d/ftpd"
+ install -D -m644 "${srcdir}/ftpd.conf" "${pkgdir}/etc/conf.d/ftpd"
+ install -D -m644 "${srcdir}/telnet.xinetd" "${pkgdir}/etc/xinetd.d/telnet"
+ install -D -m644 "${srcdir}/talk.xinetd" "${pkgdir}/etc/xinetd.d/talk"
+ install -D -m644 "${srcdir}/rexec.xinetd" "${pkgdir}/etc/xinetd.d/rexec"
+ install -D -m644 "${srcdir}/rlogin.xinetd" "${pkgdir}/etc/xinetd.d/rlogin"
+ install -D -m644 "${srcdir}/rsh.xinetd" "${pkgdir}/etc/xinetd.d/rsh"
+}
diff --git a/core/inetutils/ftpd.conf b/core/inetutils/ftpd.conf
new file mode 100644
index 000000000..f660f0035
--- /dev/null
+++ b/core/inetutils/ftpd.conf
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to ftpd
+#
+FTPD_ARGS=""
diff --git a/core/inetutils/ftpd.rc b/core/inetutils/ftpd.rc
new file mode 100644
index 000000000..3d0d34421
--- /dev/null
+++ b/core/inetutils/ftpd.rc
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ftpd
+
+PID=$(pidof -o %PPID /usr/sbin/ftpd)
+case "$1" in
+ start)
+ stat_busy "Starting ftpd"
+ [ -z "$PID" ] && /usr/sbin/ftpd -D $FTPD_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ftpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ftpd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ftpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/inetutils/inetutils.install b/core/inetutils/inetutils.install
new file mode 100644
index 000000000..b338fa498
--- /dev/null
+++ b/core/inetutils/inetutils.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(inetutils.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/inetutils/rexec.xinetd b/core/inetutils/rexec.xinetd
new file mode 100644
index 000000000..4659e4745
--- /dev/null
+++ b/core/inetutils/rexec.xinetd
@@ -0,0 +1,10 @@
+service exec
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/rexecd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/core/inetutils/rlogin.xinetd b/core/inetutils/rlogin.xinetd
new file mode 100644
index 000000000..5c72f86df
--- /dev/null
+++ b/core/inetutils/rlogin.xinetd
@@ -0,0 +1,10 @@
+service login
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/rlogind
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/core/inetutils/rsh.xinetd b/core/inetutils/rsh.xinetd
new file mode 100644
index 000000000..a13738c31
--- /dev/null
+++ b/core/inetutils/rsh.xinetd
@@ -0,0 +1,10 @@
+service shell
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/rshd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/core/inetutils/talk.xinetd b/core/inetutils/talk.xinetd
new file mode 100644
index 000000000..6abef359c
--- /dev/null
+++ b/core/inetutils/talk.xinetd
@@ -0,0 +1,10 @@
+service ntalk
+{
+ flags = REUSE
+ socket_type = dgram
+ wait = yes
+ user = root
+ server = /usr/sbin/talkd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/core/inetutils/telnet.xinetd b/core/inetutils/telnet.xinetd
new file mode 100644
index 000000000..bd3a5e4b1
--- /dev/null
+++ b/core/inetutils/telnet.xinetd
@@ -0,0 +1,10 @@
+service telnet
+{
+ flags = REUSE
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/telnetd
+ log_on_failure += USERID
+ disable = yes
+}
diff --git a/core/iproute2/PKGBUILD b/core/iproute2/PKGBUILD
new file mode 100644
index 000000000..fa31f11ed
--- /dev/null
+++ b/core/iproute2/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 107230 2011-01-22 18:51:34Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=iproute2
+pkgver=2.6.37
+pkgrel=1
+pkgdesc="IP Routing Utilities"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.linux-foundation.org/en/Net:Iproute2"
+depends=('linux-atm' 'perl')
+provides=('iproute')
+conflicts=('iproute')
+replaces=('iproute')
+options=('!makeflags')
+backup=('etc/iproute2/ematch_map' 'etc/iproute2/rt_dsfield' 'etc/iproute2/rt_protos' \
+ 'etc/iproute2/rt_realms' 'etc/iproute2/rt_scopes' 'etc/iproute2/rt_tables')
+source=(http://devresources.linux-foundation.org/dev/iproute2/download/iproute2-${pkgver}.tar.bz2
+ 'iproute2-fhs.patch')
+sha1sums=('7852fb66fb745dc3c1fabee24d7d8ff017c48d36'
+ '2416b11252364d7a6c742eabb4a6924a75637a46')
+
+build() {
+ cd $srcdir/iproute2-${pkgver}
+
+ # set correct fhs structure
+ patch -Np1 -i ${srcdir}/iproute2-fhs.patch
+
+ ./configure
+
+ make
+}
+
+package() {
+ cd $srcdir/iproute2-${pkgver}
+
+ make DESTDIR=$pkgdir install
+
+ # libnetlink isn't installed, install it FS#19385
+ install -Dm644 include/libnetlink.h ${pkgdir}/usr/include/libnetlink.h
+ install -Dm644 lib/libnetlink.a ${pkgdir}/usr/lib/libnetlink.a
+}
diff --git a/core/iproute2/iproute2-fhs.patch b/core/iproute2/iproute2-fhs.patch
new file mode 100644
index 000000000..2608414db
--- /dev/null
+++ b/core/iproute2/iproute2-fhs.patch
@@ -0,0 +1,84 @@
+diff -Naur iproute2.old/Makefile iproute2-2.6.29/Makefile
+--- iproute2.old/Makefile 2009-11-11 22:05:21.251407668 +0100
++++ iproute2-2.6.29/Makefile 2009-11-11 22:07:09.891833516 +0100
+@@ -1,11 +1,12 @@
+ DESTDIR=/usr/
+ ROOTDIR=$(DESTDIR)
+ LIBDIR=/usr/lib/
+-SBINDIR=/sbin
++SBINDIR=/usr/sbin
+ CONFDIR=/etc/iproute2
+-DOCDIR=/share/doc/iproute2
+-MANDIR=/share/man
++DOCDIR=/usr/share/doc/iproute2
++MANDIR=/usr/share/man
+ ARPDDIR=/var/lib/arpd
++SHAREDIR=/usr/share
+
+ # Path to db_185.h include
+ DBM_INCLUDE:=$(ROOTDIR)/usr/include
+diff -Naur iproute2.old/tc/tc_util.c iproute2-2.6.29/tc/tc_util.c
+--- iproute2.old/tc/tc_util.c 2009-11-11 22:05:21.298076943 +0100
++++ iproute2-2.6.29/tc/tc_util.c 2009-11-11 22:09:32.865152646 +0100
+@@ -24,8 +24,8 @@
+ #include "utils.h"
+ #include "tc_util.h"
+
+-#ifndef LIBDIR
+-#define LIBDIR "/usr/lib/"
++#ifndef SHAREDIR
++#define SHAREDIR "/usr/share"
+ #endif
+
+ const char *get_tc_lib(void)
+@@ -34,7 +34,7 @@
+
+ lib_dir = getenv("TC_LIB_DIR");
+ if (!lib_dir)
+- lib_dir = LIBDIR "/tc/";
++ lib_dir = SHAREDIR "/tc/";
+
+ return lib_dir;
+ }
+diff -Naur iproute2.old/netem/Makefile iproute2-2.6.35/netem/Makefile
+--- iproute2.old/netem/Makefile 2010-08-06 11:30:48.640940183 +0200
++++ iproute2-2.6.35/netem/Makefile 2010-08-06 11:32:34.210908892 +0200
+@@ -20,9 +20,9 @@
+ $(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm
+
+ install: all
+- mkdir -p $(DESTDIR)$(LIBDIR)/tc
++ mkdir -p $(DESTDIR)$(SHAREDIR)/tc
+ for i in $(DISTDATA); \
+- do install -m 644 $$i $(DESTDIR)$(LIBDIR)/tc; \
++ do install -m 644 $$i $(DESTDIR)$(SHAREDIR)/tc; \
+ done
+
+ clean:
+diff -Naur iproute2.old/tc/Makefile iproute2-2.6.35/tc/Makefile
+--- iproute2.old/tc/Makefile 2010-08-06 11:48:35.607472252 +0200
++++ iproute2-2.6.35/tc/Makefile 2010-08-06 11:49:36.977473380 +0200
+@@ -99,18 +99,11 @@
+ $(AR) rcs $@ $(TCLIB)
+
+ install: all
+- mkdir -p $(MODDESTDIR)
+- install -m 0755 tc $(DESTDIR)$(SBINDIR)
+- for i in $(TCSO); \
+- do install -m 755 $$i $(MODDESTDIR); \
+- done
+- if [ ! -f $(MODDESTDIR)/m_ipt.so ]; then \
+- if [ -f $(MODDESTDIR)/m_xt.so ]; \
+- then ln -s m_xt.so $(MODDESTDIR)/m_ipt.so ; \
+- elif [ -f $(MODDESTDIR)/m_xt_old.so ]; \
+- then ln -s m_xt_old.so $(MODDESTDIR)/m_ipt.so ; \
+- fi; \
+- fi
++ mkdir -p $(DESTDIR)$(LIBDIR)/tc
++ install -m 0755 tc $(DESTDIR)$(SBINDIR)
++ for i in $(TCSO); \
++ do install -m 755 $$i $(DESTDIR)$(LIBDIR)/tc; \
++ done
+
+ clean:
+ rm -f $(TCOBJ) $(TCLIB) libtc.a tc *.so emp_ematch.yacc.h; \
diff --git a/core/iptables/PKGBUILD b/core/iptables/PKGBUILD
new file mode 100644
index 000000000..c2b812f85
--- /dev/null
+++ b/core/iptables/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 102057 2010-12-04 09:52:03Z allan $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=iptables
+pkgver=1.4.10
+pkgrel=1
+pkgdesc="A Linux kernel packet control tool"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.netfilter.org/"
+depends=('glibc' 'bash')
+options=('!libtool')
+source=(http://www.iptables.org/projects/iptables/files/${pkgname}-${pkgver}.tar.bz2
+ iptables
+ ip6tables
+ empty.rules
+ simple_firewall.rules
+ iptables.conf.d)
+backup=(etc/conf.d/iptables)
+sha1sums=('8190b8c9714a3eec825317e8ac1deeb3d11c6d29'
+ 'd7540316581bb66c5594885882a14ba394e95098'
+ '70d70113e3a23f0fe99404c5536507a887a4ca5c'
+ '83b3363878e3660ce23b2ad325b53cbd6c796ecf'
+ '9907f9e815592837abc7fa3264a401567b7606ab'
+ '1c52444ffbecc09f56bb325db49e924dd32f9213')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # http://bugs.archlinux.org/task/17046
+ sed -i '87 i libxt_RATEEST.so: libxt_RATEEST.oo' extensions/GNUmakefile.in
+ sed -i '88 i \\t${AM_VERBOSE_CCLD} ${CCLD} ${AM_LDFLAGS} -lm -shared ${LDFLAGS} -o $@ $<;\n' extensions/GNUmakefile.in
+
+ ./configure --prefix=/usr --with-kernel=usr/src/linux-$(uname -r) \
+ --libexecdir=/usr/lib/iptables --sysconfdir=/etc \
+ --with-xtlibdir=/usr/lib/iptables \
+ --enable-devel --enable-libipq
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ install -D -m755 ../iptables ${pkgdir}/etc/rc.d/iptables
+ install -D -m755 ../ip6tables ${pkgdir}/etc/rc.d/ip6tables
+ install -D -m644 ../empty.rules ${pkgdir}/etc/iptables/empty.rules
+ install -D -m644 ../simple_firewall.rules ${pkgdir}/etc/iptables/simple_firewall.rules
+ install -D -m644 ../iptables.conf.d ${pkgdir}/etc/conf.d/iptables
+}
diff --git a/core/iptables/empty.rules b/core/iptables/empty.rules
new file mode 100644
index 000000000..e24e1aa30
--- /dev/null
+++ b/core/iptables/empty.rules
@@ -0,0 +1,6 @@
+# Empty iptables rule file
+*filter
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+COMMIT
diff --git a/core/iptables/ip6tables b/core/iptables/ip6tables
new file mode 100755
index 000000000..1733db281
--- /dev/null
+++ b/core/iptables/ip6tables
@@ -0,0 +1,97 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/iptables ] && . /etc/conf.d/iptables
+
+# Set defaults if settings are missing
+[ -z "$IP6TABLES" ] && IP6TABLES=/usr/sbin/ip6tables
+[ -z "$IP6TABLES_CONF" ] && IP6TABLES_CONF=/etc/iptables/ip6tables.rules
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ if [ ! -f $IP6TABLES_CONF ]; then
+ echo "Cannot load iptables rules: $IP6TABLES_CONF is missing!" >&2
+ exit 1
+ fi
+ stat_busy "Starting IP6 Tables"
+ if [ "$IPTABLES_FORWARD" = "1" ]; then
+ echo 1 >/proc/sys/net/ipv6/conf/default/forwarding
+ echo 1 >/proc/sys/net/ipv6/conf/all/forwarding
+ fi
+ if ck_daemon ip6tables; then
+ /usr/sbin/ip6tables-restore < $IP6TABLES_CONF
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ip6tables
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping IP6 Tables"
+ echo 0 >/proc/sys/net/ipv6/conf/all/forwarding
+ echo 0 >/proc/sys/net/ipv6/conf/default/forwarding
+ if ! ck_daemon ip6tables; then
+ fail=0
+ for table in $(cat /proc/net/ip6_tables_names); do
+ $IP6TABLES -t $table -F &>/dev/null && \
+ $IP6TABLES -t $table -X &>/dev/null && \
+ $IP6TABLES -t $table -Z &>/dev/null
+ [ $? -gt 0 ] && fail=1
+ done
+ if [ $fail -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ip6tables
+ # reset policies
+ for table in filter mangle raw; do
+ if grep -qw $table /proc/net/ip6_tables_names; then
+ $IP6TABLES -t $table -P OUTPUT ACCEPT
+ fi
+ done
+ for table in filter mangle; do
+ if grep -qw $table /proc/net/ip6_tables_names; then
+ $IP6TABLES -t $table -P INPUT ACCEPT
+ $IP6TABLES -t $table -P FORWARD ACCEPT
+ fi
+ done
+ for table in mangle raw; do
+ if grep -qw $table /proc/net/ip6_tables_names; then
+ $IP6TABLES -t $table -P PREROUTING ACCEPT
+ fi
+ done
+ for table in mangle; do
+ if grep -qw $table /proc/net/ip6_tables_names; then
+ $IP6TABLES -t $table -P POSTROUTING ACCEPT
+ fi
+ done
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ save)
+ stat_busy "Saving IP6 Tables"
+ /usr/sbin/ip6tables-save >$IP6TABLES_CONF
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|save}"
+esac
+exit 0
diff --git a/core/iptables/iptables b/core/iptables/iptables
new file mode 100755
index 000000000..50c13d5c1
--- /dev/null
+++ b/core/iptables/iptables
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/iptables ] && . /etc/conf.d/iptables
+
+# Set defaults if settings are missing
+[ -z "$IPTABLES" ] && IPTABLES=/usr/sbin/iptables
+[ -z "$IPTABLES_CONF" ] && IPTABLES_CONF=/etc/iptables/iptables.rules
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ if [ ! -f $IPTABLES_CONF ]; then
+ echo "Cannot load iptables rules: $IPTABLES_CONF is missing!" >&2
+ exit 1
+ fi
+ stat_busy "Starting IP Tables"
+ if [ "$IPTABLES_FORWARD" = "1" ]; then
+ echo 1 >/proc/sys/net/ipv4/ip_forward
+ fi
+ if ck_daemon iptables; then
+ /usr/sbin/iptables-restore < $IPTABLES_CONF
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon iptables
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping IP Tables"
+ echo 0 >/proc/sys/net/ipv4/ip_forward
+ if ! ck_daemon iptables; then
+ fail=0
+ for table in $(cat /proc/net/ip_tables_names); do
+ $IPTABLES -t $table -F &>/dev/null && \
+ $IPTABLES -t $table -X &>/dev/null && \
+ $IPTABLES -t $table -Z &>/dev/null
+ [ $? -gt 0 ] && fail=1
+ done
+ if [ $fail -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon iptables
+ # reset policies
+ for table in filter nat mangle raw; do
+ if grep -qw $table /proc/net/ip_tables_names; then
+ $IPTABLES -t $table -P OUTPUT ACCEPT
+ fi
+ done
+ for table in filter mangle; do
+ if grep -qw $table /proc/net/ip_tables_names; then
+ $IPTABLES -t $table -P INPUT ACCEPT
+ $IPTABLES -t $table -P FORWARD ACCEPT
+ fi
+ done
+ for table in nat mangle raw; do
+ if grep -qw $table /proc/net/ip_tables_names; then
+ $IPTABLES -t $table -P PREROUTING ACCEPT
+ fi
+ done
+ for table in nat mangle; do
+ if grep -qw $table /proc/net/ip_tables_names; then
+ $IPTABLES -t $table -P POSTROUTING ACCEPT
+ fi
+ done
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ save)
+ stat_busy "Saving IP Tables"
+ /usr/sbin/iptables-save >$IPTABLES_CONF
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|save}"
+esac
+exit 0
diff --git a/core/iptables/iptables.conf.d b/core/iptables/iptables.conf.d
new file mode 100644
index 000000000..07bc11aa1
--- /dev/null
+++ b/core/iptables/iptables.conf.d
@@ -0,0 +1,8 @@
+# Configuration for iptables rules
+
+IPTABLES=/usr/sbin/iptables
+IP6TABLES=/usr/sbin/ip6tables
+
+IPTABLES_CONF=/etc/iptables/iptables.rules
+IP6TABLES_CONF=/etc/iptables/ip6tables.rules
+IPTABLES_FORWARD=0 # enable IP forwarding?
diff --git a/core/iptables/simple_firewall.rules b/core/iptables/simple_firewall.rules
new file mode 100644
index 000000000..e1604cc36
--- /dev/null
+++ b/core/iptables/simple_firewall.rules
@@ -0,0 +1,11 @@
+*filter
+:INPUT DROP [0:0]
+:FORWARD DROP [0:0]
+:OUTPUT ACCEPT [0:0]
+-A INPUT -p icmp -j ACCEPT
+-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
+-A INPUT -i lo -j ACCEPT
+-A INPUT -p tcp -j REJECT --reject-with tcp-reset
+-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
+-A INPUT -j REJECT --reject-with icmp-proto-unreachable
+COMMIT
diff --git a/core/iputils/PKGBUILD b/core/iputils/PKGBUILD
new file mode 100644
index 000000000..4de06deed
--- /dev/null
+++ b/core/iputils/PKGBUILD
@@ -0,0 +1,65 @@
+# $Id: PKGBUILD 107536 2011-01-26 17:38:04Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=iputils
+pkgver=20101006
+_traceroutever=1.4a12
+pkgrel=1
+pkgdesc="IP Configuration Utilities (and Ping)"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.linuxfoundation.org/en/Net:Iputils"
+groups=('base')
+depends=('glibc' 'openssl' 'sysfsutils')
+conflicts=('netkit-base' 'arping' 'netkit-tftpd' 'traceroute')
+replaces=('netkit-base' 'traceroute')
+source=(http://www.skbuff.net/${pkgname}/${pkgname}-s${pkgver}.tar.bz2
+ ftp://ftp.ee.lbl.gov/traceroute-${_traceroutever}.tar.gz
+ 'permission-fix.patch'
+ 'iputils-s20101006-manpages.patch')
+options=('!makeflags')
+md5sums=('a36c25e9ec17e48be514dc0485e7376c'
+ '964d599ef696efccdeebe7721cd4828d'
+ '66109966cad06e425bb12a78bab85b70'
+ 'd02dffac6f16e841921a9fc73bd2d3bd')
+
+build() {
+ #build iptuils
+ cd "${srcdir}/${pkgname}-s${pkgver}"
+
+ # Doc fails to build (see FS#20251)
+ # As a temporary workaround, we use these man pages from Fedora & LFS
+ patch -Np1 -i ../iputils-s20101006-manpages.patch
+ make
+
+ # build traceroute
+ # this is combined in this package because it's awkward as a separate package
+ cd "${srcdir}/traceroute-${_traceroutever}"
+ patch -Np1 -i ../permission-fix.patch
+ ./configure --prefix=/usr \
+ --sbindir=/bin \
+ --mandir=/usr/share/man
+ make CFLAGS="${CFLAGS} -Ilinux-include/"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-s${pkgver}"
+ for i in arping clockdiff rarpd rdisc tftpd tracepath tracepath6; do
+ install -D -m755 $i "${pkgdir}/usr/sbin/$i"
+ done
+ for i in ping ping6 traceroute6; do
+ install -D -m4755 $i "${pkgdir}/bin/$i"
+ done
+
+ install -dm755 "${pkgdir}/usr/share/man/man8"
+ install -m644 doc/{arping,clockdiff,ping,rarpd,rdisc,tftpd,tracepath,traceroute6}.8 \
+ "${pkgdir}/usr/share/man/man8/"
+
+ cd "${pkgdir}/usr/share/man/man8"
+ ln -sf ping.8.gz ping6.8.gz
+ ln -sf tracepath.8.gz tracepath6.8.gz
+
+ cd "${srcdir}/traceroute-${_traceroutever}"
+ make DESTDIR="${pkgdir}" install install-man
+}
diff --git a/core/iputils/iputils-s20101006-manpages.patch b/core/iputils/iputils-s20101006-manpages.patch
new file mode 100644
index 000000000..764d0d36d
--- /dev/null
+++ b/core/iputils/iputils-s20101006-manpages.patch
@@ -0,0 +1,1044 @@
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/arping.8 2011-01-19 04:10:18.000000000 -0500
+@@ -0,0 +1,110 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "ARPING" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++arping \- send ARP REQUEST to a neighbour host
++.SH SYNOPSIS
++
++\fBarping\fR [ \fB-AbDfhqUV\fR] [ \fB-c \fIcount\fB\fR] [ \fB-w \fIdeadline\fB\fR] [ \fB-s \fIsource\fB\fR] \fB-I \fIinterface\fB\fR \fB\fIdestination\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++Ping \fIdestination\fR on device \fIinterface\fR by ARP packets,
++using source address \fIsource\fR.
++.SH "OPTIONS"
++.TP
++\fB-A\fR
++The same as \fB-U\fR, but ARP REPLY packets used instead
++of ARP REQUEST.
++.TP
++\fB-b\fR
++Send only MAC level broadcasts. Normally \fBarping\fR starts
++from sending broadcast, and switch to unicast after reply received.
++.TP
++\fB-c \fIcount\fB\fR
++Stop after sending \fIcount\fR ARP REQUEST
++packets. With
++\fIdeadline\fR
++option, \fBarping\fR waits for
++\fIcount\fR ARP REPLY packets, until the timeout expires.
++.TP
++\fB-D\fR
++Duplicate address detection mode (DAD). See
++RFC2131, 4.4.1.
++Returns 0, if DAD succeeded i.e. no replies are received
++.TP
++\fB-f\fR
++Finish after the first reply confirming that target is alive.
++.TP
++\fB-I \fIinterface\fB\fR
++Name of network device where to send ARP REQUEST packets. This option
++is required.
++.TP
++\fB-h\fR
++Print help page and exit.
++.TP
++\fB-q\fR
++Quiet output. Nothing is displayed.
++.TP
++\fB-s \fIsource\fB\fR
++IP source address to use in ARP packets.
++If this option is absent, source address is:
++.RS
++.TP 0.2i
++\(bu
++In DAD mode (with option \fB-D\fR) set to 0.0.0.0.
++.TP 0.2i
++\(bu
++In Unsolicited ARP mode (with options \fB-U\fR or \fB-A\fR)
++set to \fIdestination\fR.
++.TP 0.2i
++\(bu
++Otherwise, it is calculated from routing tables.
++.RE
++.TP
++\fB-U\fR
++Unsolicited ARP mode to update neighbours' ARP caches.
++No replies are expected.
++.TP
++\fB-V\fR
++Print version of the program and exit.
++.TP
++\fB-w \fIdeadline\fB\fR
++Specify a timeout, in seconds, before
++\fBarping\fR
++exits regardless of how many
++packets have been sent or received. In this case
++\fBarping\fR
++does not stop after
++\fIcount\fR
++packet are sent, it waits either for
++\fIdeadline\fR
++expire or until
++\fIcount\fR
++probes are answered.
++.SH "SEE ALSO"
++.PP
++\fBping\fR(8),
++\fBclockdiff\fR(8),
++\fBtracepath\fR(8).
++.SH "AUTHOR"
++.PP
++\fBarping\fR was written by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SECURITY"
++.PP
++\fBarping\fR requires CAP_NET_RAWIO capability
++to be executed. It is not recommended to be used as set-uid root,
++because it allows user to modify ARP caches of neighbour hosts.
++.SH "AVAILABILITY"
++.PP
++\fBarping\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/clockdiff.8 2011-01-19 04:10:19.000000000 -0500
+@@ -0,0 +1,81 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "CLOCKDIFF" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++clockdiff \- measure clock difference between hosts
++.SH SYNOPSIS
++
++\fBclockdiff\fR [ \fB-o\fR] [ \fB-o1\fR] \fB\fIdestination\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++\fBclockdiff\fR Measures clock difference between us and
++\fIdestination\fR with 1 msec resolution using ICMP TIMESTAMP
++[2]
++packets or, optionally, IP TIMESTAMP option
++[3]
++option added to ICMP ECHO.
++[1]
++.SH "OPTIONS"
++.TP
++\fB-o\fR
++Use IP TIMESTAMP with ICMP ECHO instead of ICMP TIMESTAMP
++messages. It is useful with some destinations, which do not support
++ICMP TIMESTAMP (f.e. Solaris <2.4).
++.TP
++\fB-o1\fR
++Slightly different form of \fB-o\fR, namely it uses three-term
++IP TIMESTAMP with prespecified hop addresses instead of four term one.
++What flavor works better depends on target host. Particularly,
++\fB-o\fR is better for Linux.
++.SH "WARNINGS"
++.TP 0.2i
++\(bu
++Some nodes (Cisco) use non-standard timestamps, which is allowed
++by RFC, but makes timestamps mostly useless.
++.TP 0.2i
++\(bu
++Some nodes generate messed timestamps (Solaris>2.4), when
++run \fBxntpd\fR. Seems, its IP stack uses a corrupted clock source,
++which is synchronized to time-of-day clock periodically and jumps
++randomly making timestamps mostly useless. Good news is that you can
++use NTP in this case, which is even better.
++.TP 0.2i
++\(bu
++\fBclockdiff\fR shows difference in time modulo 24 days.
++.SH "SEE ALSO"
++.PP
++\fBping\fR(8),
++\fBarping\fR(8),
++\fBtracepath\fR(8).
++.SH "REFERENCES"
++.PP
++[1] ICMP ECHO,
++RFC0792, page 14.
++.PP
++[2] ICMP TIMESTAMP,
++RFC0792, page 16.
++.PP
++[3] IP TIMESTAMP option,
++RFC0791, 3.1, page 16.
++.SH "AUTHOR"
++.PP
++\fBclockdiff\fR was compiled by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>. It was based on code borrowed
++from BSD \fBtimed\fR daemon.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SECURITY"
++.PP
++\fBclockdiff\fR requires CAP_NET_RAWIO capability
++to be executed. It is safe to be used as set-uid root.
++.SH "AVAILABILITY"
++.PP
++\fBclockdiff\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/ping.8 2011-01-19 04:10:19.000000000 -0500
+@@ -0,0 +1,408 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "PING" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++ping, ping6 \- send ICMP ECHO_REQUEST to network hosts
++.SH SYNOPSIS
++
++\fBping\fR [ \fB-LRUbdfnqrvVaAB\fR] [ \fB-c \fIcount\fB\fR] [ \fB-m \fImark\fB\fR] [ \fB-i \fIinterval\fB\fR] [ \fB-l \fIpreload\fB\fR] [ \fB-p \fIpattern\fB\fR] [ \fB-s \fIpacketsize\fB\fR] [ \fB-t \fIttl\fB\fR] [ \fB-w \fIdeadline\fB\fR] [ \fB-F \fIflowlabel\fB\fR] [ \fB-I \fIinterface\fB\fR] [ \fB-M \fIhint\fB\fR] [ \fB-N \fInioption\fB\fR] [ \fB-Q \fItos\fB\fR] [ \fB-S \fIsndbuf\fB\fR] [ \fB-T \fItimestamp option\fB\fR] [ \fB-W \fItimeout\fB\fR] [ \fB\fIhop\fB\fR\fI ...\fR] \fB\fIdestination\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++\fBping\fR uses the ICMP protocol's mandatory ECHO_REQUEST
++datagram to elicit an ICMP ECHO_RESPONSE from a host or gateway.
++ECHO_REQUEST datagrams (``pings'') have an IP and ICMP
++header, followed by a struct timeval and then an arbitrary
++number of ``pad'' bytes used to fill out the packet.
++.PP
++\fBping6\fR can also send Node Information Queries (RFC4620).
++.SH "OPTIONS"
++.TP
++\fB-a\fR
++Audible ping.
++.TP
++\fB-A\fR
++Adaptive ping. Interpacket interval adapts to round-trip time, so that
++effectively not more than one (or more, if preload is set) unanswered probes
++present in the network. Minimal interval is 200msec for not super-user.
++On networks with low rtt this mode is essentially equivalent to flood mode.
++.TP
++\fB-b\fR
++Allow pinging a broadcast address.
++.TP
++\fB-B\fR
++Do not allow \fBping\fR to change source address of probes.
++The address is bound to one selected when \fBping\fR starts.
++.TP
++\fB-m \fImark\fB\fR
++use \fImark\fR to tag the packets going out. This is useful
++for variety of reasons within the kernel such as using policy
++routing to select specific outbound processing.
++.TP
++\fB-c \fIcount\fB\fR
++Stop after sending \fIcount\fR ECHO_REQUEST
++packets. With
++\fIdeadline\fR
++option, \fBping\fR waits for
++\fIcount\fR ECHO_REPLY packets, until the timeout expires.
++.TP
++\fB-d\fR
++Set the SO_DEBUG option on the socket being used.
++Essentially, this socket option is not used by Linux kernel.
++.TP
++\fB-F \fIflow label\fB\fR
++Allocate and set 20 bit flow label on echo request packets.
++(Only \fBping6\fR). If value is zero, kernel allocates random flow label.
++.TP
++\fB-f\fR
++Flood ping. For every ECHO_REQUEST sent a period ``.'' is printed,
++while for ever ECHO_REPLY received a backspace is printed.
++This provides a rapid display of how many packets are being dropped.
++If interval is not given, it sets interval to zero and
++outputs packets as fast as they come back or one hundred times per second,
++whichever is more.
++Only the super-user may use this option with zero interval.
++.TP
++\fB-i \fIinterval\fB\fR
++Wait \fIinterval\fR seconds between sending each packet.
++The default is to wait for one second between each packet normally,
++or not to wait in flood mode. Only super-user may set interval
++to values less 0.2 seconds.
++.TP
++\fB-I \fIinterface address\fB\fR
++Set source address to specified interface address. Argument
++may be numeric IP address or name of device. When pinging IPv6
++link-local address this option is required.
++.TP
++\fB-l \fIpreload\fB\fR
++If \fIpreload\fR is specified,
++\fBping\fR sends that many packets not waiting for reply.
++Only the super-user may select preload more than 3.
++.TP
++\fB-L\fR
++Suppress loopback of multicast packets. This flag only applies if the ping
++destination is a multicast address.
++.TP
++\fB-N \fInioption\fB\fR
++Send ICMPv6 Node Information Queries (RFC4620), instead of Echo Request.
++.RS
++.TP
++\fBname\fR
++Queries for Node Names.
++.RE
++.RS
++.TP
++\fBipv6\fR
++Queries for IPv6 Addresses. There are several IPv6 specific flags.
++.RS
++.TP
++\fBipv6-global\fR
++Request IPv6 global-scope addresses.
++.RE
++.RS
++.TP
++\fBipv6-sitelocal\fR
++Request IPv6 site-local addresses.
++.RE
++.RS
++.TP
++\fBipv6-linklocal\fR
++Request IPv6 link-local addresses.
++.RE
++.RS
++.TP
++\fBipv6-all\fR
++Request IPv6 addresses on other interfaces.
++.RE
++.RE
++.RS
++.TP
++\fBipv4\fR
++Queries for IPv4 Addresses. There is one IPv4 specific flag.
++.RS
++.TP
++\fBipv4-all\fR
++Request IPv4 addresses on other interfaces.
++.RE
++.RE
++.RS
++.TP
++\fBsubject-ipv6=\fIipv6addr\fB\fR
++IPv6 subject address.
++.RE
++.RS
++.TP
++\fBsubject-ipv4=\fIipv4addr\fB\fR
++IPv4 subject address.
++.RE
++.RS
++.TP
++\fBsubject-name=\fInodename\fB\fR
++Subject name. If it contains more than one dot,
++fully-qualified domain name is assumed.
++.RE
++.RS
++.TP
++\fBsubject-fqdn=\fInodename\fB\fR
++Subject name. Fully-qualified domain name is
++always assumed.
++.RE
++.TP
++\fB-n\fR
++Numeric output only.
++No attempt will be made to lookup symbolic names for host addresses.
++.TP
++\fB-p \fIpattern\fB\fR
++You may specify up to 16 ``pad'' bytes to fill out the packet you send.
++This is useful for diagnosing data-dependent problems in a network.
++For example, \fB-p ff\fR will cause the sent packet
++to be filled with all ones.
++.TP
++\fB-D\fR
++Print timestamp (unix time + microseconds as in gettimeofday) before
++each line.
++.TP
++\fB-Q \fItos\fB\fR
++Set Quality of Service -related bits in ICMP datagrams.
++\fItos\fR can be either decimal or hex number.
++Traditionally (RFC1349), these have been interpreted as: 0 for reserved
++(currently being redefined as congestion control), 1-4 for Type of Service
++and 5-7 for Precedence.
++Possible settings for Type of Service are: minimal cost: 0x02,
++reliability: 0x04, throughput: 0x08, low delay: 0x10. Multiple TOS bits
++should not be set simultaneously. Possible settings for
++special Precedence range from priority (0x20) to net control (0xe0). You
++must be root (CAP_NET_ADMIN capability) to use Critical or
++higher precedence value. You cannot set
++bit 0x01 (reserved) unless ECN has been enabled in the kernel.
++In RFC2474, these fields has been redefined as 8-bit Differentiated
++Services (DS), consisting of: bits 0-1 of separate data (ECN will be used,
++here), and bits 2-7 of Differentiated Services Codepoint (DSCP).
++.TP
++\fB-q\fR
++Quiet output.
++Nothing is displayed except the summary lines at startup time and
++when finished.
++.TP
++\fB-R\fR
++Record route.
++Includes the RECORD_ROUTE option in the ECHO_REQUEST
++packet and displays the route buffer on returned packets.
++Note that the IP header is only large enough for nine such routes.
++Many hosts ignore or discard this option.
++.TP
++\fB-r\fR
++Bypass the normal routing tables and send directly to a host on an attached
++interface.
++If the host is not on a directly-attached network, an error is returned.
++This option can be used to ping a local host through an interface
++that has no route through it provided the option \fB-I\fR is also
++used.
++.TP
++\fB-s \fIpacketsize\fB\fR
++Specifies the number of data bytes to be sent.
++The default is 56, which translates into 64 ICMP
++data bytes when combined with the 8 bytes of ICMP header data.
++.TP
++\fB-S \fIsndbuf\fB\fR
++Set socket sndbuf. If not specified, it is selected to buffer
++not more than one packet.
++.TP
++\fB-t \fIttl\fB\fR
++Set the IP Time to Live.
++.TP
++\fB-T \fItimestamp option\fB\fR
++Set special IP timestamp options.
++\fItimestamp option\fR may be either
++\fItsonly\fR (only timestamps),
++\fItsandaddr\fR (timestamps and addresses) or
++\fItsprespec host1 [host2 [host3 [host4]]]\fR
++(timestamp prespecified hops).
++.TP
++\fB-M \fIhint\fB\fR
++Select Path MTU Discovery strategy.
++\fIhint\fR may be either \fIdo\fR
++(prohibit fragmentation, even local one),
++\fIwant\fR (do PMTU discovery, fragment locally when packet size
++is large), or \fIdont\fR (do not set DF flag).
++.TP
++\fB-U\fR
++Print full user-to-user latency (the old behaviour). Normally
++\fBping\fR
++prints network round trip time, which can be different
++f.e. due to DNS failures.
++.TP
++\fB-v\fR
++Verbose output.
++.TP
++\fB-V\fR
++Show version and exit.
++.TP
++\fB-w \fIdeadline\fB\fR
++Specify a timeout, in seconds, before
++\fBping\fR
++exits regardless of how many
++packets have been sent or received. In this case
++\fBping\fR
++does not stop after
++\fIcount\fR
++packet are sent, it waits either for
++\fIdeadline\fR
++expire or until
++\fIcount\fR
++probes are answered or for some error notification from network.
++.TP
++\fB-W \fItimeout\fB\fR
++Time to wait for a response, in seconds. The option affects only timeout
++in absense of any responses, otherwise \fBping\fR waits for two RTTs.
++.PP
++When using \fBping\fR for fault isolation, it should first be run
++on the local host, to verify that the local network interface is up
++and running. Then, hosts and gateways further and further away should be
++``pinged''. Round-trip times and packet loss statistics are computed.
++If duplicate packets are received, they are not included in the packet
++loss calculation, although the round trip time of these packets is used
++in calculating the minimum/average/maximum round-trip time numbers.
++When the specified number of packets have been sent (and received) or
++if the program is terminated with a
++SIGINT, a brief summary is displayed. Shorter current statistics
++can be obtained without termination of process with signal
++SIGQUIT.
++.PP
++If \fBping\fR does not receive any reply packets at all it will
++exit with code 1. If a packet
++\fIcount\fR
++and
++\fIdeadline\fR
++are both specified, and fewer than
++\fIcount\fR
++packets are received by the time the
++\fIdeadline\fR
++has arrived, it will also exit with code 1.
++On other error it exits with code 2. Otherwise it exits with code 0. This
++makes it possible to use the exit code to see if a host is alive or
++not.
++.PP
++This program is intended for use in network testing, measurement and
++management.
++Because of the load it can impose on the network, it is unwise to use
++\fBping\fR during normal operations or from automated scripts.
++.SH "ICMP PACKET DETAILS"
++.PP
++An IP header without options is 20 bytes.
++An ICMP ECHO_REQUEST packet contains an additional 8 bytes worth
++of ICMP header followed by an arbitrary amount of data.
++When a \fIpacketsize\fR is given, this indicated the size of this
++extra piece of data (the default is 56). Thus the amount of data received
++inside of an IP packet of type ICMP ECHO_REPLY will always be 8 bytes
++more than the requested data space (the ICMP header).
++.PP
++If the data space is at least of size of struct timeval
++\fBping\fR uses the beginning bytes of this space to include
++a timestamp which it uses in the computation of round trip times.
++If the data space is shorter, no round trip times are given.
++.SH "DUPLICATE AND DAMAGED PACKETS"
++.PP
++\fBping\fR will report duplicate and damaged packets.
++Duplicate packets should never occur, and seem to be caused by
++inappropriate link-level retransmissions.
++Duplicates may occur in many situations and are rarely (if ever) a
++good sign, although the presence of low levels of duplicates may not
++always be cause for alarm.
++.PP
++Damaged packets are obviously serious cause for alarm and often
++indicate broken hardware somewhere in the
++\fBping\fR packet's path (in the network or in the hosts).
++.SH "TRYING DIFFERENT DATA PATTERNS"
++.PP
++The (inter)network layer should never treat packets differently depending
++on the data contained in the data portion.
++Unfortunately, data-dependent problems have been known to sneak into
++networks and remain undetected for long periods of time.
++In many cases the particular pattern that will have problems is something
++that doesn't have sufficient ``transitions'', such as all ones or all
++zeros, or a pattern right at the edge, such as almost all zeros.
++It isn't necessarily enough to specify a data pattern of all zeros (for
++example) on the command line because the pattern that is of interest is
++at the data link level, and the relationship between what you type and
++what the controllers transmit can be complicated.
++.PP
++This means that if you have a data-dependent problem you will probably
++have to do a lot of testing to find it.
++If you are lucky, you may manage to find a file that either can't be sent
++across your network or that takes much longer to transfer than other
++similar length files.
++You can then examine this file for repeated patterns that you can test
++using the \fB-p\fR option of \fBping\fR.
++.SH "TTL DETAILS"
++.PP
++The TTL value of an IP packet represents the maximum number of IP routers
++that the packet can go through before being thrown away.
++In current practice you can expect each router in the Internet to decrement
++the TTL field by exactly one.
++.PP
++The TCP/IP specification states that the TTL field for TCP
++packets should be set to 60, but many systems use smaller values
++(4.3 BSD uses 30, 4.2 used 15).
++.PP
++The maximum possible value of this field is 255, and most Unix systems set
++the TTL field of ICMP ECHO_REQUEST packets to 255.
++This is why you will find you can ``ping'' some hosts, but not reach them
++with
++\fBtelnet\fR(1)
++or
++\fBftp\fR(1).
++.PP
++In normal operation ping prints the ttl value from the packet it receives.
++When a remote system receives a ping packet, it can do one of three things
++with the TTL field in its response:
++.TP 0.2i
++\(bu
++Not change it; this is what Berkeley Unix systems did before the
++4.3BSD Tahoe release. In this case the TTL value in the received packet
++will be 255 minus the number of routers in the round-trip path.
++.TP 0.2i
++\(bu
++Set it to 255; this is what current Berkeley Unix systems do.
++In this case the TTL value in the received packet will be 255 minus the
++number of routers in the path \fBfrom\fR
++the remote system \fBto\fR the \fBping\fRing host.
++.TP 0.2i
++\(bu
++Set it to some other value. Some machines use the same value for
++ICMP packets that they use for TCP packets, for example either 30 or 60.
++Others may use completely wild values.
++.SH "BUGS"
++.TP 0.2i
++\(bu
++Many Hosts and Gateways ignore the RECORD_ROUTE option.
++.TP 0.2i
++\(bu
++The maximum IP header length is too small for options like
++RECORD_ROUTE to be completely useful.
++There's not much that that can be done about this, however.
++.TP 0.2i
++\(bu
++Flood pinging is not recommended in general, and flood pinging the
++broadcast address should only be done under very controlled conditions.
++.SH "SEE ALSO"
++.PP
++\fBnetstat\fR(1),
++\fBifconfig\fR(8).
++.SH "HISTORY"
++.PP
++The \fBping\fR command appeared in 4.3BSD.
++.PP
++The version described here is its descendant specific to Linux.
++.SH "SECURITY"
++.PP
++\fBping\fR requires CAP_NET_RAWIO capability
++to be executed. It may be used as set-uid root.
++.SH "AVAILABILITY"
++.PP
++\fBping\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/rdisc.8 2011-01-19 04:10:20.000000000 -0500
+@@ -0,0 +1,110 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "RDISC" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++rdisc \- network router discovery daemon
++.SH SYNOPSIS
++
++\fBrdisc\fR [ \fB-abdfstvV\fR] [ \fB\fIsend_address\fB\fR] [ \fB\fIreceive_address\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++\fBrdisc\fR implements client side of the ICMP router discover protocol.
++\fBrdisc\fR is invoked at boot time to populate the network
++routing tables with default routes.
++.PP
++\fBrdisc\fR listens on the ALL_HOSTS (224.0.0.1) multicast address
++(or \fIreceive_address\fR provided it is given)
++for ROUTER_ADVERTISE messages from routers. The received
++messages are handled by first ignoring those listed router addresses
++with which the host does not share a network. Among the remaining addresses
++the ones with the highest preference are selected as default routers
++and a default route is entered in the kernel routing table
++for each one of them.
++.PP
++Optionally, \fBrdisc\fR can avoid waiting for routers to announce
++themselves by sending out a few ROUTER_SOLICITATION messages
++to the ALL_ROUTERS (224.0.0.2) multicast address
++(or \fIsend_address\fR provided it is given)
++when it is started.
++.PP
++A timer is associated with each router address and the address will
++no longer be considered for inclusion in the the routing tables if the
++timer expires before a new
++\fBadvertise\fR message is received from the router.
++The address will also be excluded from consideration if the host receives an
++\fBadvertise\fR
++message with the preference being maximally negative.
++.PP
++Server side of router discovery protocol is supported by Cisco IOS
++and by any more or less complete UNIX routing daemon, f.e \fBgated\fR.
++.SH "OPTIONS"
++.TP
++\fB-a\fR
++Accept all routers independently of the preference they have in their
++\fBadvertise\fR messages.
++Normally \fBrdisc\fR only accepts (and enters in the kernel routing
++tables) the router or routers with the highest preference.
++.TP
++\fB-b\fR
++Opposite to \fB-a\fR, i.e. install only router with the best
++preference value. It is default behaviour.
++.TP
++\fB-d\fR
++Send debugging messages to syslog.
++.TP
++\fB-f\fR
++Run \fBrdisc\fR forever even if no routers are found.
++Normally \fBrdisc\fR gives up if it has not received any
++\fBadvertise\fR message after after soliciting three times,
++in which case it exits with a non-zero exit code.
++If \fB-f\fR is not specified in the first form then
++\fB-s\fR must be specified.
++.TP
++\fB-s\fR
++Send three \fBsolicitation\fR messages initially to quickly discover
++the routers when the system is booted.
++When \fB-s\fR is specified \fBrdisc\fR
++exits with a non-zero exit code if it can not find any routers.
++This can be overridden with the \fB-f\fR option.
++.TP
++\fB-t\fR
++Test mode. Do not go to background.
++.TP
++\fB-v\fR
++Be verbose i.e. send lots of debugging messages to syslog.
++.TP
++\fB-V\fR
++Print version and exit.
++.SH "HISTORY"
++.PP
++This program was developed by Sun Microsystems (see copyright
++notice in source file). It was ported to Linux by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SEE ALSO"
++.PP
++\fBicmp\fR(7),
++\fBinet\fR(7),
++\fBping\fR(8).
++.SH "REFERENCES"
++.PP
++Deering, S.E.,ed "ICMP Router Discovery Messages",
++RFC1256, Network Information Center, SRI International,
++Menlo Park, Calif., September 1991.
++.SH "SECURITY"
++.PP
++\fBrdisc\fR requires CAP_NET_RAWIO to listen
++and send ICMP messages and capability CAP_NET_ADMIN
++to update routing tables.
++.SH "AVAILABILITY"
++.PP
++\fBrdisc\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/tracepath.8 2011-01-19 04:10:20.000000000 -0500
+@@ -0,0 +1,97 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "TRACEPATH" "8" "19 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++tracepath, tracepath6 \- traces path to a network host discovering MTU along this path
++.SH SYNOPSIS
++
++\fBtracepath\fR [ \fB-n\fR] [ \fB-b\fR] [ \fB-l \fIpktlen\fB\fR] \fB\fIdestination\fB\fR [ \fB\fIport\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++It traces path to \fIdestination\fR discovering MTU along this path.
++It uses UDP port \fIport\fR or some random port.
++It is similar to \fBtraceroute\fR, only does not require superuser
++privileges and has no fancy options.
++.PP
++\fBtracepath6\fR is good replacement for \fBtraceroute6\fR
++and classic example of application of Linux error queues.
++The situation with IPv4 is worse, because commercial
++IP routers do not return enough information in icmp error messages.
++Probably, it will change, when they will be updated.
++For now it uses Van Jacobson's trick, sweeping a range
++of UDP ports to maintain trace history.
++.SH "OPTIONS"
++.TP
++\fB-n\fR
++Print primarily IP addresses numerically.
++.TP
++\fB-b\fR
++Print both of host names and IP addresses.
++.TP
++\fB-l\fR
++Sets the initial packet length to \fIpktlen\fR instead of
++65536 for \fBtracepath\fR or 128000 for \fBtracepath6\fR.
++.SH "OUTPUT"
++.PP
++
++.nf
++root@mops:~ # tracepath6 3ffe:2400:0:109::2
++ 1?: [LOCALHOST] pmtu 1500
++ 1: dust.inr.ac.ru 0.411ms
++ 2: dust.inr.ac.ru asymm 1 0.390ms pmtu 1480
++ 2: 3ffe:2400:0:109::2 463.514ms reached
++ Resume: pmtu 1480 hops 2 back 2
++.fi
++.PP
++The first column shows TTL of the probe, followed by colon.
++Usually value of TTL is obtained from reply from network,
++but sometimes reply does not contain necessary information and
++we have to guess it. In this case the number is followed by ?.
++.PP
++The second column shows the network hop, which replied to the probe.
++It is either address of router or word [LOCALHOST], if
++the probe was not sent to the network.
++.PP
++The rest of line shows miscellaneous information about path to
++the correspinding hetwork hop. As rule it contains value of RTT.
++Additionally, it can show Path MTU, when it changes.
++If the path is asymmetric
++or the probe finishes before it reach prescribed hop, difference
++between number of hops in forward and backward direction is shown
++following keyword async. This information is not reliable.
++F.e. the third line shows asymmetry of 1, it is because the first probe
++with TTL of 2 was rejected at the first hop due to Path MTU Discovery.
++.PP
++The last line summarizes information about all the path to the destination,
++it shows detected Path MTU, amount of hops to the destination and our
++guess about amount of hops from the destination to us, which can be
++different when the path is asymmetric.
++.SH "SEE ALSO"
++.PP
++\fBtraceroute\fR(8),
++\fBtraceroute6\fR(8),
++\fBping\fR(8).
++.SH "AUTHOR"
++.PP
++\fBtracepath\fR was written by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++.SH "SECURITY"
++.PP
++No security issues.
++.PP
++This lapidary deserves to be elaborated.
++\fBtracepath\fR is not a privileged program, unlike
++\fBtraceroute\fR, \fBping\fR and other beasts of this kind.
++\fBtracepath\fR may be executed by everyone who has some access
++to network, enough to send UDP datagrams to investigated destination
++using given port.
++.SH "AVAILABILITY"
++.PP
++\fBtracepath\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+diff -Naur /dev/null iputils-s20101006/doc/rarpd.8
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/rarpd.8 2011-01-08 20:09:51.270811811 -0500
+@@ -0,0 +1,84 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "RARPD" "8" "08 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++rarpd \- answer RARP REQUESTs
++.SH SYNOPSIS
++
++\fBarping\fR [\fB-aAvde\fR] [\fB-b \fIbootdir\fB\fR] [\fB\fIinterface\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++Listens
++RARP
++requests from clients. Provided MAC address of client
++is found in \fI/etc/ethers\fR database and
++obtained host name is resolvable to an IP address appropriate
++for attached network, \fBrarpd\fR answers to client with RARPD
++reply carrying an IP address.
++.PP
++To allow multiple boot servers on the network \fBrarpd\fR
++optionally checks for presence Sun-like bootable image in TFTP directory.
++It should have form \fBHexadecimal_IP.ARCH\fR, f.e. to load
++sparc 193.233.7.98 \fIC1E90762.SUN4M\fR is linked to
++an image appropriate for SUM4M in directory \fI/etc/tftpboot\fR.
++.SH "WARNING"
++.PP
++This facility is deeply obsoleted by
++BOOTP
++and later
++DHCP protocols.
++However, some clients really still need this to boot.
++.SH "OPTIONS"
++.TP
++\fB-a\fR
++Listen on all the interfaces. Currently it is an internal
++option, its function is overridden with \fIinterface\fR
++argument. It should not be used.
++.TP
++\fB-A\fR
++Listen not only RARP but also ARP messages, some rare clients
++use ARP by some unknown reason.
++.TP
++\fB-v\fR
++Be verbose.
++.TP
++\fB-d\fR
++Debug mode. Do not go to background.
++.TP
++\fB-e\fR
++Do not check for presence of a boot image, reply if MAC address
++resolves to a valid IP address using \fI/etc/ethers\fR
++database and DNS.
++.TP
++\fB-b \fIbootdir\fB\fR
++TFTP boot directory. Default is \fI/etc/tftpboot\fR
++.SH "SEE ALSO"
++.PP
++\fBarping\fR(8),
++\fBtftpd\fR(8).
++.SH "AUTHOR"
++.PP
++\fBrarpd\fR was written by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>.
++It is now maintained by
++YOSHIFUJI Hideaki
++<yoshfuji@skbuff.net>.
++.SH "SECURITY"
++.PP
++\fBrarpd\fR requires CAP_NET_RAWIO capability
++to listen and send RARP and ARP packets. It also needs CAP_NET_ADMIN
++to give to kernel hint for ARP resolution; this is not strictly required,
++but some (most of, to be more exact) clients are so badly broken that
++are not able to answer ARP before they are finally booted. This is
++not wonderful taking into account that clients using RARPD in 2002
++are all unsupported relic creatures of 90's and even earlier.
++.SH "AVAILABILITY"
++.PP
++\fBrarpd\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+diff -Naur /dev/null iputils-s20101006/doc/tftpd.8
+--- /dev/null 2011-01-26 09:02:28.396666668 -0500
++++ iputils-s20101006/doc/tftpd.8 2011-01-08 20:09:51.723407498 -0500
+@@ -0,0 +1,85 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "TFTPD" "8" "08 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++tftpd \- Trivial File Transfer Protocol server
++.SH SYNOPSIS
++
++\fBtftpd\fR \fB\fIdirectory\fB\fR
++
++.SH "DESCRIPTION"
++.PP
++\fBtftpd\fR is a server which supports the DARPA
++Trivial File Transfer Protocol
++(RFC1350).
++The TFTP server is started
++by \fBinetd\fR(8).
++.PP
++\fIdirectory\fR is required argument; if it is not given
++\fBtftpd\fR aborts. This path is prepended to any file name requested
++via TFTP protocol, effectively chrooting \fBtftpd\fR to this directory.
++File names are validated not to escape out of this directory, however
++administrator may configure such escape using symbolic links.
++.PP
++It is in difference of variants of \fBtftpd\fR usually distributed
++with unix-like systems, which take a list of directories and match
++file names to start from one of given prefixes or to some random
++default, when no arguments were given. There are two reasons not to
++behave in this way: first, it is inconvenient, clients are not expected
++to know something about layout of filesystem on server host.
++And second, TFTP protocol is not a tool for browsing of server's filesystem,
++it is just an agent allowing to boot dumb clients.
++.PP
++In the case when \fBtftpd\fR is used together with
++\fBrarpd\fR(8),
++tftp directories in these services should coincide and it is expected
++that each client booted via TFTP has boot image corresponding
++its IP address with an architecture suffix following Sun Microsystems
++conventions. See
++\fBrarpd\fR(8)
++for more details.
++.SH "SECURITY"
++.PP
++TFTP protocol does not provide any authentication.
++Due to this capital flaw \fBtftpd\fR is not able to restrict
++access to files and will allow only publically readable
++files to be accessed. Files may be written only if they already
++exist and are publically writable.
++.PP
++Impact is evident, directory exported via TFTP \fBmust not\fR
++contain sensitive information of any kind, everyone is allowed
++to read it as soon as a client is allowed. Boot images do not contain
++such information as rule, however you should think twice before
++publishing f.e. Cisco IOS config files via TFTP, they contain
++\fBunencrypted\fR passwords and may contain some information
++about the network, which you were not going to make public.
++.PP
++The \fBtftpd\fR server should be executed by \fBinetd\fR
++with dropped root privileges, namely with a user ID giving minimal
++access to files published in tftp directory. If it is executed
++as superuser occasionally, \fBtftpd\fR drops its UID and GID
++to 65534, which is most likely not the thing which you expect.
++However, this is not very essential; remember, only files accessible
++for everyone can be read or written via TFTP.
++.SH "SEE ALSO"
++.PP
++\fBrarpd\fR(8),
++\fBtftp\fR(1),
++\fBinetd\fR(8).
++.SH "HISTORY"
++.PP
++The \fBtftpd\fR command appeared in 4.2BSD. The source in iputils
++is cleaned up both syntactically (ANSIized) and semantically (UDP socket IO).
++.PP
++It is distributed with iputils mostly as good demo of an interesting feature
++(MSG_CONFIRM) allowing to boot long images by dumb clients
++not answering ARP requests until they are finally booted.
++However, this is full functional and can be used in production.
++.SH "AVAILABILITY"
++.PP
++\fBtftpd\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
+diff -Naur /dev/null iputils-s20101006/doc/traceroute6.8
+--- /dev/null 1969-12-31 19:00:00.000000000 -0500
++++ iputils-s20101006/doc/traceroute6.8 2011-01-08 20:09:52.114781859 -0500
+@@ -0,0 +1,42 @@
++.\" This manpage has been automatically generated by docbook2man
++.\" from a DocBook document. This tool can be found at:
++.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
++.\" Please send any bug reports, improvements, comments, patches,
++.\" etc. to Steve Cheng <steve@ggi-project.org>.
++.TH "TRACEROUTE6" "8" "08 January 2011" "iputils-101006" "System Manager's Manual: iputils"
++.SH NAME
++traceroute6 \- traces path to a network host
++.SH SYNOPSIS
++
++\fBtraceroute6\fR [\fB-dnrvV\fR] [\fB-i \fIinterface\fB\fR] [\fB-m \fImax_ttl\fB\fR] [\fB-p \fIport\fB\fR] [\fB-q \fImax_probes\fB\fR] [\fB-s \fIsource\fB\fR] [\fB-w \fIwait time\fB\fR] \fB\fIdestination\fB\fR [\fB\fIsize\fB\fR]
++
++.SH "DESCRIPTION"
++.PP
++Description can be found in
++\fBtraceroute\fR(8),
++all the references to IP replaced to IPv6. It is needless to copy
++the description from there.
++.SH "SEE ALSO"
++.PP
++\fBtraceroute\fR(8),
++\fBtracepath\fR(8),
++\fBping\fR(8).
++.SH "HISTORY"
++.PP
++This program has long history. Author of \fBtraceroute\fR
++is Van Jacobson and it first appeared in 1988. This clone is
++based on a port of \fBtraceroute\fR to IPv6 published
++in NRL IPv6 distribution in 1996. In turn, it was ported
++to Linux by Pedro Roque. After this it was kept in sync by
++Alexey Kuznetsov
++<kuznet@ms2.inr.ac.ru>. And eventually entered
++\fBiputils\fR package.
++.SH "SECURITY"
++.PP
++\fBtracepath6\fR requires CAP_NET_RAWIO capability
++to be executed. It is safe to be used as set-uid root.
++.SH "AVAILABILITY"
++.PP
++\fBtraceroute6\fR is part of \fIiputils\fR package
++and the latest versions are available in source form at
++http://www.skbuff.net/iputils/iputils-current.tar.bz2.
diff --git a/core/iputils/permission-fix.patch b/core/iputils/permission-fix.patch
new file mode 100644
index 000000000..c47636f84
--- /dev/null
+++ b/core/iputils/permission-fix.patch
@@ -0,0 +1,15 @@
+--- traceroute-1.4a12/Makefile.in.old 2000-11-23 21:05:29.000000000 +0100
++++ traceroute-1.4a12/Makefile.in 2008-09-27 20:04:30.000000000 +0200
+@@ -90,10 +90,10 @@
+ sed -e 's/.*/char version[] = "&";/' $(srcdir)/VERSION > $@
+
+ install: force
+- $(INSTALL) -m 4555 -o root -g bin traceroute $(DESTDIR)$(BINDEST)
++ $(INSTALL) -m 4555 -o root -g root traceroute $(DESTDIR)$(BINDEST)
+
+ install-man: force
+- $(INSTALL) -m 444 -o bin -g bin traceroute.8 $(DESTDIR)$(MANDEST)/man8
++ $(INSTALL) -m 644 -o root -g root traceroute.8 $(DESTDIR)$(MANDEST)/man8
+
+ lint: $(GENSRC) force
+ lint -hbxn $(SRC) | \
diff --git a/core/isdn4k-utils/PKGBUILD b/core/isdn4k-utils/PKGBUILD
new file mode 100644
index 000000000..3db35097e
--- /dev/null
+++ b/core/isdn4k-utils/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 102060 2010-12-04 10:48:14Z allan $
+# Contributor: Dennis "Gyroplast" Herbrich <dennis@archlinux.org>
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=isdn4k-utils
+pkgver=3.2p1
+pkgrel=6
+pkgdesc="User space administration programs and tools for ISDN"
+arch=('i686' 'x86_64')
+url="http://www.isdn4linux.de/"
+license=('GPL')
+depends=('ncurses')
+backup=(etc/isdn/{callerid.conf,isdn.conf,rate.conf,isdnlog.isdnctrl0.options})
+options=('!makeflags')
+source=(ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/${pkgname}.v${pkgver}.tar.bz2
+ isdn4k-utils-3.2p1-build.patch
+ config)
+md5sums=('d347afa462e46eccfd1284aebae227b6'
+ '7f056ddac093c77d8be4e076d0e9421c'
+ '3429894039f33c114fef5ef9f866920e')
+
+build() {
+ cd $srcdir/$pkgname
+ patch -Np1 -i $srcdir/isdn4k-utils-3.2p1-build.patch
+ cp $srcdir/config ./.config
+ make subconfig
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname
+ install -dm755 $pkgdir/sbin
+ make DESTDIR=$pkgdir install
+}
diff --git a/core/isdn4k-utils/config b/core/isdn4k-utils/config
new file mode 100644
index 000000000..fe0810209
--- /dev/null
+++ b/core/isdn4k-utils/config
@@ -0,0 +1,100 @@
+#
+# Automatically generated by make menuconfig: don't edit
+#
+
+#
+# Code maturity level options
+#
+# CONFIG_EXPERIMENTAL is not set
+
+#
+# General configuration
+#
+# CONFIG_BUILDX11 is not set
+CONFIG_KERNELDIR='/usr/src/linux'
+CONFIG_BINDIR='/usr/bin'
+CONFIG_SBINDIR='/sbin'
+CONFIG_MANDIR='/usr/share/man'
+CONFIG_RUNDIR='/var/run'
+CONFIG_LOCKDIR='/var/lock'
+CONFIG_LOCKFILE='LCK..'
+CONFIG_I4LCONFDIR='/etc/isdn'
+CONFIG_CONFFILE='isdn.conf'
+CONFIG_CALLERIDFILE='callerid.conf'
+CONFIG_USERCONFFILE='~/.isdn'
+CONFIG_COUNTRYCODE='49'
+CONFIG_AREACODE=''
+CONFIG_COUNTRY_PREFIX='+'
+CONFIG_AREA_PREFIX='0'
+CONFIG_DATADIR='/usr/lib/isdn'
+
+#
+# Runtime configuration tools
+#
+CONFIG_ISDNCTRL=y
+CONFIG_ISDNCTRL_CONF=y
+# CONFIG_ISDNCTRL_TIMRU is not set
+# CONFIG_IPROFD is not set
+# CONFIG_DIVERTCTRL is not set
+
+#
+# Card configuration tools
+#
+CONFIG_HISAXCTRL=y
+CONFIG_ICNCTRL=y
+# CONFIG_ICNCTRL_DEBUG is not set
+CONFIG_PCBITCTL=y
+# CONFIG_AVMCAPICTRL is not set
+# CONFIG_EICONCTRL is not set
+
+#
+# Tools for monitoring activity
+#
+CONFIG_IMON=y
+CONFIG_IMONTTY=y
+CONFIG_ISDNLOG=y
+
+#
+# Options for isdnlog package
+#
+CONFIG_ISDNLOG_SERV_PORT=20011
+CONFIG_ISDNLOG_USERFILE='isdnlog.users'
+CONFIG_ISDNLOG_CHARGEFILE='charge.dat'
+CONFIG_ISDNLOG_LOGFILE='/var/log/isdn.log'
+CONFIG_ISDNLOG_RELOADCMD='reload'
+CONFIG_ISDNLOG_STOPCMD='stop'
+CONFIG_ISDNLOG_REBOOTCMD='/sbin/reboot'
+CONFIG_ISDNLOG_OLDI4LCONFDIR='/etc/isdnlog'
+CONFIG_ISDNLOG_OLDI4LCONFFILE='isdnlog.conf'
+# CONFIG_ISDNLOG_POSTGRES is not set
+# CONFIG_ISDNLOG_MYSQLDB is not set
+# CONFIG_ISDNLOG_ORACLE is not set
+CONFIG_ISDN_LOG_DE=y
+CONFIG_ISDN_LOG_CC_DE=y
+CONFIG_ISDN_LOG_DEST_DE=y
+CONFIG_ISDN_LOG_DEST_AT=y
+CONFIG_ISDN_LOG_DEST_NL=y
+CONFIG_ISDN_LOG_DEST_CH=y
+CONFIG_IPPPSTATS=y
+# CONFIG_XISDNLOAD is not set
+# CONFIG_XMONISDN is not set
+
+#
+# Applications
+#
+# CONFIG_VBOX is not set
+CONFIG_IPPPD=y
+
+#
+# Options for ipppd
+#
+# CONFIG_IPPPD_MSCHAP is not set
+# CONFIG_IPPPD_RADIUS is not set
+# CONFIG_RADIUS_WTMP_LOGGING is not set
+RADIUS_CLIENT_CONFIG_FILE=''
+
+#
+# Documentation
+#
+CONFIG_GENMAN=y
+# CONFIG_FAQ is not set
diff --git a/core/isdn4k-utils/isdn4k-utils-3.2p1-build.patch b/core/isdn4k-utils/isdn4k-utils-3.2p1-build.patch
new file mode 100644
index 000000000..63239fcad
--- /dev/null
+++ b/core/isdn4k-utils/isdn4k-utils-3.2p1-build.patch
@@ -0,0 +1,2028 @@
+diff -Naur isdn4k-utils-orig//eicon/eiconctrl.c isdn4k-utils/eicon/eiconctrl.c
+--- isdn4k-utils-orig//eicon/eiconctrl.c 2001-06-22 02:34:45.000000000 +1000
++++ isdn4k-utils/eicon/eiconctrl.c 2010-12-04 20:44:11.093338893 +1000
+@@ -1970,7 +1970,7 @@
+ val = strtol(p, &q, 16);
+ p = q;
+ val = strtol(p, &q, 16);
+- (unsigned short) *buffer = (unsigned short) val;
++ *buffer = (unsigned short) val;
+ pos = 2;
+ while ((p != q) && (*q != 0)) {
+ p = q;
+diff -Naur isdn4k-utils-orig//hisax/hisaxctrl.c isdn4k-utils/hisax/hisaxctrl.c
+--- isdn4k-utils-orig//hisax/hisaxctrl.c 2000-06-30 19:37:38.000000000 +1000
++++ isdn4k-utils/hisax/hisaxctrl.c 2010-12-04 20:44:11.093338893 +1000
+@@ -43,7 +43,8 @@
+ fprintf(stderr, "cannot open file %s\n", fname);
+ exit(-1);
+ }
+- p = (int *) buffer = (unsigned char *) malloc(MAX_SIZE+4);
++ buffer = (unsigned char *) malloc(MAX_SIZE+4);
++ p = (int *) buffer;
+ if (!buffer) {
+ fprintf(stderr, "cannot get %d byte memory\n", MAX_SIZE+4);
+ exit(-1);
+diff -Naur isdn4k-utils-orig//hisax/Makefile.in isdn4k-utils/hisax/Makefile.in
+--- isdn4k-utils-orig//hisax/Makefile.in 2002-07-20 05:03:51.000000000 +1000
++++ isdn4k-utils/hisax/Makefile.in 2010-12-04 20:44:03.726672225 +1000
+@@ -30,7 +30,7 @@
+ #.SUFFIXES:
+ #.SUFFIXES: .c .o
+
+-%.8: %.man
++%.8: %.man.in
+ cp $< $@
+
+ all: $(PROGRAMS) $(MANPAGES)
+diff -Naur isdn4k-utils-orig//ipppd/main.c isdn4k-utils/ipppd/main.c
+--- isdn4k-utils-orig//ipppd/main.c 2002-07-18 10:06:21.000000000 +1000
++++ isdn4k-utils/ipppd/main.c 2010-12-04 20:44:11.093338893 +1000
+@@ -1041,9 +1041,14 @@
+ static char line[256]; /* line to be logged accumulated here */
+ static char *linep;
+
++#ifdef __STDC__
++static void pr_log(void *arg, char *fmt, ...);
++#else /* __STDC__ */
++static void pr_log(arg, fmt, va_alist);
++#endif
++
+ void log_packet(u_char *p,int len,char *prefix,int linkunit)
+ {
+- static void pr_log __P((void *, char *, ...));
+
+ int i, n;
+ u_short proto;
+diff -Naur isdn4k-utils-orig//ipppd/options.c isdn4k-utils/ipppd/options.c
+--- isdn4k-utils-orig//ipppd/options.c 2002-07-06 10:34:08.000000000 +1000
++++ isdn4k-utils/ipppd/options.c 2010-12-04 20:43:57.890005560 +1000
+@@ -479,26 +479,24 @@
+ #define IMPLEMENTATION ""
+ #endif
+
+-static char *usage_string = "\
+-ipppd version %s patch level %d%s\n\
+-Usage: %s [ options ], where options are:\n\
+-\t<device> Communicate over the named device\n\
++static char *usage_string = "ipppd version %s patch level %d%s\n"
++"Usage: %s [ options ], where options are:\n"
++"\t<device> Communicate over the named device\n"
+ #ifdef INCLUDE_OBSOLETE_FEATURES
+-\tcrtscts Use hardware RTS/CTS flow control\n\
+-\t<speed> Set the baud rate to <speed>\n\
+-\tmodem Use modem control lines\n\
++"\tcrtscts Use hardware RTS/CTS flow control\n"
++"\t<speed> Set the baud rate to <speed>\n"
++"\tmodem Use modem control lines\n"
+ #endif
+-\t<loc>:<rem> Set the local and/or remote interface IP\n\
+-\t\taddresses. (you also may use the option 'useifip' to get IPs).\n\
+-\tasyncmap <n> Set the desired async map to hex <n>\n\
+-\tauth Require authentication from peer\n\
+-\tconnect <p> Invoke shell command <p> to set up the serial line\n\
+-\tdefaultroute Add default route through interface\n\
+-\tfile <f> Take options from file <f>\n\
+-\tmru <n> Set MRU value to <n> for negotiation\n\
+-\tnetmask <n> Set interface netmask to <n>\n\
+-See ipppd(8) for more options.\n\
+-";
++"\t<loc>:<rem> Set the local and/or remote interface IP\n"
++"\t\t\taddresses. (you also may use the option 'useifip' to get IPs).\n"
++"\tasyncmap <n> Set the desired async map to hex <n>\n"
++"\tauth Require authentication from peer\n"
++"\tconnect <p> Invoke shell command <p> to set up the serial line\n"
++"\tdefaultroute Add default route through interface\n"
++"\tfile <f> Take options from file <f>\n"
++"\tmru <n> Set MRU value to <n> for negotiation\n"
++"\tnetmask <n> Set interface netmask to <n>\n"
++"See ipppd(8) for more options.\n";
+
+ static char *current_option; /* the name of the option being parsed */
+
+diff -Naur isdn4k-utils-orig//isdnlog/isdnlog/isdnlog.h isdn4k-utils/isdnlog/isdnlog/isdnlog.h
+--- isdn4k-utils-orig//isdnlog/isdnlog/isdnlog.h 2001-06-22 02:34:56.000000000 +1000
++++ isdn4k-utils/isdnlog/isdnlog/isdnlog.h 2010-12-04 20:44:03.780005559 +1000
+@@ -460,7 +460,7 @@
+
+ _EXTERN void dotrace(void);
+ _EXTERN int morectrl(int card);
+-_EXTERN void moreinfo(void);
++extern void moreinfo(void);
+ _EXTERN void morekbd(void);
+ _EXTERN void processcint(void);
+ _EXTERN void processflow(void);
+diff -Naur isdn4k-utils-orig//isdnlog/isdnlog/processor.c isdn4k-utils/isdnlog/isdnlog/processor.c
+--- isdn4k-utils-orig//isdnlog/isdnlog/processor.c 2002-04-02 04:06:10.000000000 +1000
++++ isdn4k-utils/isdnlog/isdnlog/processor.c 2010-12-04 20:44:03.783338893 +1000
+@@ -5293,7 +5293,7 @@
+ tei = BROADCAST; /* Wenn nach einer tei-Zeile keine hex:-Zeile kommt, tei ungueltig machen! */
+
+ if ((type == SETUP) && !replay) { /* fetch additional info from "/dev/isdninfo" */
+- static void moreinfo(); /* soviel zu Objektorientiertem Denken ;-) */
++ /*static void moreinfo(); */ /* soviel zu Objektorientiertem Denken ;-) */
+ moreinfo();
+ } /* if */
+
+diff -Naur isdn4k-utils-orig//isdnlog/Makefile.in isdn4k-utils/isdnlog/Makefile.in
+--- isdn4k-utils-orig//isdnlog/Makefile.in 2002-07-20 05:03:55.000000000 +1000
++++ isdn4k-utils/isdnlog/Makefile.in 2010-12-04 20:44:03.730005560 +1000
+@@ -1842,9 +1842,6 @@
+ $(INSTALL_DATA) $$f $(DESTDIR)$(DATADIR); \
+ echo Installing $(DESTDIR)$(DATADIR)/$$f; \
+ done
+- @(grep isdnlog $(SERVICEFILE) >/dev/null) || \
+- (echo "";echo "";echo "Add a line to the file $(SERVICEFILE)" ;echo "";echo ""; \
+- echo "isdnlog $(SERV_PORT)/tcp isdnlog" >> $(SERVICEFILE))
+
+ install-strip:
+ $(MAKE) INSTALL_BIN='$(INSTALL_BIN) -s' \
+diff -Naur isdn4k-utils-orig//isdnlog/tools/cdb/cdbmake.c isdn4k-utils/isdnlog/tools/cdb/cdbmake.c
+--- isdn4k-utils-orig//isdnlog/tools/cdb/cdbmake.c 2002-02-22 21:10:25.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/cdb/cdbmake.c 2010-12-04 20:44:03.786672226 +1000
+@@ -3,8 +3,6 @@
+ #include "freecdbmake.h"
+ #include <unistd.h>
+
+-extern char *malloc();
+-
+ void diesys(why) char *why; { perror(why); exit(111); }
+
+ void writeerror() { diesys("cdbmake: fatal: unable to write"); }
+diff -Naur isdn4k-utils-orig//isdnlog/tools/isdnrate.c isdn4k-utils/isdnlog/tools/isdnrate.c
+--- isdn4k-utils-orig//isdnlog/tools/isdnrate.c 2001-06-22 02:34:56.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/isdnrate.c 2010-12-04 20:44:11.096672226 +1000
+@@ -304,7 +304,7 @@
+
+ static void print_header(void);
+
+-static char *myname, *myshortname;
++char *myname, *myshortname;
+ static char options[] = "ab:d:f:h:l:op:st:v::x:CD::G:HLNP:O:S:TUVX::Z";
+ static char usage[] = "%s: usage: %s [ -%s ] Destination ...\n";
+
+@@ -313,7 +313,7 @@
+ static int usestat = 0;
+ static int duration = LCR_DURATION;
+ static time_t start;
+-static int day, month, year, hour, min, sec;
++int day, month, year, hour, min, sec;
+ static char ignore[MAXPROVIDER];
+ static char *fromarea = 0;
+ static char wanted_day;
+diff -Naur isdn4k-utils-orig//isdnlog/tools/isdnrate.c.orig isdn4k-utils/isdnlog/tools/isdnrate.c.orig
+--- isdn4k-utils-orig//isdnlog/tools/isdnrate.c.orig 1970-01-01 10:00:00.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/isdnrate.c.orig 2001-06-22 02:34:56.000000000 +1000
+@@ -0,0 +1,1806 @@
++/* $Id: isdnrate.c,v 1.38 2001/03/01 14:59:16 paul Exp $
++
++ * ISDN accounting for isdn4linux. (rate evaluation)
++ *
++ * Copyright 1995 .. 2000 by Andreas Kool (akool@isdn4linux.de)
++ *
++ * 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
++ *
++ * $Log: isdnrate.c,v $
++ * Revision 1.38 2001/03/01 14:59:16 paul
++ * Various patches to fix errors when using the newest glibc,
++ * replaced use of insecure tempnam() function
++ * and to remove warnings etc.
++ *
++ * Revision 1.37 2000/07/17 16:34:23 akool
++ * isdnlog-4.32
++ * - added new Prefixes 0160 (D1) and 0162 (D2) to "country-de.dat"
++ * - corrected all german mobil phone numbers (many thank's to
++ * Tobias Becker <i4l-projects@talypso.de> for the tool "fix_rates.pl")
++ * - isdnlog/tools/rate.c ... New R:-tag
++ * - isdnlog/tools/isdnrate.c ... print warnings from getRate if verbose
++ * - isdnlog/tools/rate-files.man ... New R:-tag
++ * - isdnlog/tools/NEWS ... New R:-tag
++ * - isdnlog/README ... New R:-tag
++ * - isdnlog/samples/rtest.dat ... example rate-file for testing R:
++ *
++ * Revision 1.36 2000/03/09 18:50:03 akool
++ * isdnlog-4.16
++ * - isdnlog/samples/isdn.conf.no ... changed VBN
++ * - isdnlog/isdnlog/isdnlog.c .. ciInterval
++ * - isdnlog/isdnlog/processor.c .. ciInterval
++ * - isdnlog/tools/tools.h .. ciInterval, abclcr conf option
++ * - isdnlog/tools/isdnconf.c .. ciInterval, abclcr conf option
++ * - isdnlog/tools/isdnrate.c .. removed a warning
++ * - isdnlog/NEWS ... updated
++ * - isdnlog/README ... updated
++ * - isdnlog/isdnlog/isdnlog.8.in ... updated
++ * - isdnlog/isdnlog/isdnlog.5.in ... updated
++ * - isdnlog/samples/provider ... NEW
++ *
++ * ==> Please run a make clean, and be sure to read isdnlog/NEWS for changes
++ * ==> and new features.
++ *
++ * Revision 1.35 2000/03/06 07:03:21 akool
++ * isdnlog-4.15
++ * - isdnlog/tools/tools.h ... moved one_call, sum_calls to isdnrep.h
++ * ==> DO A 'make clean' PLEASE
++ * - isdnlog/tools/telnum.c ... fixed a small typo
++ * - isdnlog/isdnrep/rep_main.c ... incl. dest.h
++ * - isdnlog/isdnrep/isdnrep.c ... fixed %l, %L
++ * - isdnlog/isdnrep/isdnrep.h ... struct one_call, sum_calls are now here
++ *
++ * Support for Norway added. Many thanks to Tore Ferner <torfer@pvv.org>
++ * - isdnlog/rate-no.dat ... NEW
++ * - isdnlog/holiday-no.dat ... NEW
++ * - isdnlog/samples/isdn.conf.no ... NEW
++ * - isdnlog/samples/rate.conf.no ... NEW
++ *
++ * Revision 1.34 2000/02/28 19:53:56 akool
++ * isdnlog-4.14
++ * - Patch from Roland Rosenfeld <roland@spinnaker.de> fix for isdnrep
++ * - isdnlog/tools/rate.c ... epnum
++ * - isdnlog/tools/rate-at.c ... new rates
++ * - isdnlog/rate-at.dat
++ * - isdnlog/tools/rate-files.man ... %.3f
++ * - doc/Configure.help ... unknown cc
++ * - isdnlog/configure.in ... unknown cc
++ * - isdnlog/.Config.in ... unknown cc
++ * - isdnlog/Makefile.in ... unknown cc
++ * - isdnlog/tools/dest/Makefile.in ... LANG => DEST_LANG
++ * - isdnlog/samples/rate.conf.pl ... NEW
++ * - isdnlog/samples/isdn.conf.pl ... NEW
++ * - isdnlog/rate-pl.dat ... NEW
++ * - isdnlog/tools/isdnrate.c ... fixed -P pid_dir, restarts on HUP now
++ * - isdnlog/tools/isdnrate.man ... SIGHUP documented
++ *
++ * Revision 1.33 2000/02/12 16:40:24 akool
++ * isdnlog-4.11
++ * - isdnlog/Makefile.in ... sep install-targets, installs samples, no isdnconf
++ * - isdnlog/samples/rate.conf.{lu,nl} ... NEW
++ * - isdnlog/samples/isdn.conf.lu ... chg provider
++ * - isdnlog/samples/stop ... chg \d,\d => \d.\d
++ * - isdnlog/samples/isdnlog.isdnctrl0.options ... NEW
++ * - isdnlog/samples/isdnlog.users ... NEW
++ * - isdnlog/country-de.dat ... _DEMF again
++ * - isdnlog/isdnlog/processor.c ... LCR
++ * - isdnlog/tools/isdnrate.c ... fmt of s
++ *
++ * Old config is not installed anymore, to acomplish this do
++ *
++ * make install-old-conf
++ * make install
++ *
++ * A running isdnlog is now HUP-ed not KILL-ed
++ *
++ * Revision 1.32 2000/02/03 18:24:51 akool
++ * isdnlog-4.08
++ * isdnlog/tools/rate.c ... LCR patch again
++ * isdnlog/tools/isdnrate.c ... LCR patch again
++ * isdnbill enhanced/fixed
++ * DTAG AktivPlus fixed
++ *
++ * Revision 1.31 1999/12/31 13:57:20 akool
++ * isdnlog-4.00 (Millenium-Edition)
++ * - Oracle support added by Jan Bolt (Jan.Bolt@t-online.de)
++ * - resolved *any* warnings against rate-de.dat
++ * - Many new rates
++ * - CREDITS file added
++ *
++ * Revision 1.30 1999/12/24 14:17:05 akool
++ * isdnlog-3.81
++ * - isdnlog/tools/NEWS
++ * - isdnlog/tools/telrate/info.html.in ... bugfix
++ * - isdnlog/tools/telrate/telrate.cgi.in ... new Service query
++ * - isdnlog/tools/telrate/Makefile.in ... moved tmp below telrate
++ * - isdnlog/samples/rate.conf.at ... fixed
++ * - isdnlog/tools/rate-at.c ... some changes
++ * - isdnlog/rate-at.dat ... ditto
++ * - isdnlog/tools/Makefile ... added path to pp_rate
++ * - isdnlog/tools/rate.{c,h} ... getServiceNames, Date-Range in T:-Tag
++ * - isdnlog/tools/isdnrate.c ... fixed sorting of services, -X52 rets service names
++ * - isdnlog/tools/rate-files.man ... Date-Range in T:-Tag, moved from doc
++ * - isdnlog/tools/isdnrate.man ... moved from doc
++ * - doc/Makefile.in ... moved man's from doc to tools
++ * - isdnlog/Makefile.in ... man's, install isdn.conf.5
++ * - isdnlog/configure{,.in} ... sed, awk for man's
++ * - isdnlog/tools/zone/Makefile.in ... dataclean
++ * - isdnlog/tools/dest/Makefile.in ... dataclean
++ * - isdnlog/isdnlog/isdnlog.8.in ... upd
++ * - isdnlog/isdnlog/isdn.conf.5.in ... upd
++ *
++ * Revision 1.29 1999/12/17 22:51:55 akool
++ * isdnlog-3.79
++ * - isdnlog/isdnrep/isdnrep.{c,h} ... error -handling, print_msg
++ * - isdnlog/isdnrep/rep_main.c
++ * - isdnlog/isdnrep/isdnrep.1.in
++ * - isdnlog/tools/rate.c ... dupl entry in rate.conf
++ * - isdnlog/tools/NEWS
++ * - isdnlog/tools/isdnrate.c
++ * - isdnlog/tools/dest/configure{,.in}
++ * - isdnlog/tools/zone/configure{,.in}
++ *
++ * Revision 1.28 1999/12/16 23:08:28 akool
++ * isdnlog-3.78
++ * - isdnlog/tools/isdnrate.c ... new sOcket option
++ * - isdnlog/tools/NEWS ... new sOcket option
++ * - doc/isdnrate.man ... ditto
++ * - isdnlog/tools/telrate/config.in ... ditto
++ * - isdnlog/tools/telrate/telrate.cgi.in ... ditto
++ * - isdnlog/tools/telrate/README-telrate ditto
++ *
++ * Revision 1.27 1999/12/02 19:28:02 akool
++ * isdnlog-3.73
++ * - isdnlog/tools/telrate/telrate.cgi.in faster
++ * - doc/isdnrate.man ... -P
++ * - isdnlog/tools/isdnrate.c ... -P
++ * - isdnlog/tools/NEWS ... -P
++ * - isdnlog/tools/rate-at.c ... 194040
++ * - isdnlog/rate-at.dat
++ * - isdnlog/tools/rate.c ... SIGSEGV
++ *
++ * Revision 1.26 1999/12/01 21:47:25 akool
++ * isdnlog-3.72
++ * - new rates for 01051
++ * - next version of isdnbill
++ *
++ * - isdnlog/tools/telnum.c ... cleanup
++ * - isdnlog/tools/isdnrate.c ... -s Service
++ * - isdnlog/tools/rate.{c,h} ... -s
++ * - isdnlog/tools/NEWS ... -s
++ * - doc/isdnrate.man .. updated -o, -s
++ * - doc/rate-files.man ... updated
++ * - isdnlog/tools/dest/README.makedest ... updt.
++ * - isdnlog/isdnlog/isdnlog.8.in .. updt.
++ *
++ * Telrate
++ * - isdnlog/tools/telrate/README-telrate
++ * - isdnlog/tools/telrate/config.in NEW
++ * - isdnlog/tools/telrate/configure NEW
++ * - isdnlog/tools/telrate/Makefile.in NEW
++ * - isdnlog/tools/telrate/index.html.in was index.html
++ * - isdnlog/tools/telrate/info.html.in was info.html
++ * - isdnlog/tools/telrate/telrate.cgi.in was telrate.cgi
++ * - isdnlog/tools/telrate/leo.sample NEW sample config
++ * - isdnlog/tools/telrate/alex.sample NEW sample config
++ *
++ * Revision 1.25 1999/11/08 21:09:41 akool
++ * isdnlog-3.65
++ * - added "B:" Tag to "rate-xx.dat"
++ *
++ * Revision 1.24 1999/11/07 13:29:28 akool
++ * isdnlog-3.64
++ * - new "Sonderrufnummern" handling
++ *
++ * Revision 1.22 1999/10/26 18:17:14 akool
++ * isdnlog-3.62
++ * - many new rates
++ * - next try to fix "Sonderrufnummern"
++ *
++ * isdnlog-3.58
++ * - big cleanup ( > 1.3 Mb removed!)
++ * - v0.02 of destination support - better, but not perfect
++ * (does't work with gcc-2.7.2.3 yet - use egcs!)
++ *
++ * Revision 1.21 1999/10/25 18:30:03 akool
++ * isdnlog-3.57
++ * WARNING: Experimental version!
++ * Please use isdnlog-3.56 for production systems!
++ *
++ * Revision 1.20 1999/09/19 14:16:27 akool
++ * isdnlog-3.53
++ *
++ * Revision 1.19 1999/09/16 20:27:21 akool
++ * isdnlog-3.52
++ *
++ * Revision 1.18 1999/09/13 09:09:44 akool
++ * isdnlog-3.51
++ * - changed getProvider() to not return NULL on unknown providers
++ * many thanks to Matthias Eder <mateder@netway.at>
++ * - corrected zone-processing when doing a internal -> world call
++ *
++ * Revision 1.17 1999/09/09 11:21:05 akool
++ * isdnlog-3.49
++ *
++ * Revision 1.16 1999/08/04 23:06:52 akool
++ * Better codeall for .at
++ *
++ * Revision 1.15 1999/07/31 09:25:36 akool
++ * getRate() speedup
++ *
++ * Revision 1.14 1999/07/26 16:28:41 akool
++ * getRate() speedup from Leo
++ *
++ * Revision 1.13 1999/07/25 15:57:46 akool
++ * isdnlog-3.43
++ * added "telnum" module
++ *
++ * Revision 1.12 1999/07/24 08:45:17 akool
++ * isdnlog-3.42
++ * rate-de.dat 1.02-Germany [18-Jul-1999 10:44:21]
++ * better Support for Ackermann Euracom
++ * WEB-Interface for isdnrate
++ * many small fixes
++ *
++ * Revision 1.11 1999/07/15 16:42:04 akool
++ * small enhancement's and fixes
++ *
++ * Revision 1.10 1999/07/07 19:44:07 akool
++ * patches from Michael and Leo
++ *
++ * Revision 1.9 1999/07/04 20:47:05 akool
++ * rate-de.dat V:1.02-Germany [04-Jul-1999 22:56:37]
++ *
++ * Revision 1.8 1999/07/03 10:24:14 akool
++ * fixed Makefile
++ *
++ * Revision 1.7 1999/07/02 19:18:00 akool
++ * rate-de.dat V:1.02-Germany [02-Jul-1999 21:27:20]
++ *
++ * Revision 1.6 1999/07/02 18:20:50 akool
++ * rate-de.dat V:1.02-Germany [02-Jul-1999 20:29:21]
++ * country-de.dat V:1.02-Germany [02-Jul-1999 19:13:54]
++ *
++ * Revision 1.5 1999/07/01 20:40:07 akool
++ * isdnrate optimized
++ *
++ * Revision 1.4 1999/06/30 20:53:28 akool
++ * added "-t" option to "isdnrate"
++ *
++ * Revision 1.3 1999/06/30 17:17:37 akool
++ * isdnlog Version 3.39
++ *
++ * Revision 1.2 1999/06/29 20:11:25 akool
++ * now compiles with ndbm
++ * (many thanks to Nima <nima_ghasseminejad@public.uni-hamburg.de>)
++ *
++ * Revision 1.1 1999/06/28 19:16:33 akool
++ * isdnlog Version 3.38
++ * - new utility "isdnrate" started
++ *
++ */
++
++#include "isdnlog.h"
++#include "tools/zone.h"
++#include <unistd.h>
++#include "dest.h"
++
++#define WIDTH 19
++#define _MAXLAST 20 /* the real max */
++#define MAXLAST ((best>=_MAXLAST||best<=2)?5:best)
++
++
++static void print_header(void);
++
++static char *myname, *myshortname;
++static char options[] = "ab:d:f:h:l:op:st:v::x:CD::G:HLNP:O:S:TUVX::Z";
++static char usage[] = "%s: usage: %s [ -%s ] Destination ...\n";
++
++static int header = 0, best = MAXPROVIDER, table = 0, explain = 0;
++int verbose = 0;
++static int usestat = 0;
++static int duration = LCR_DURATION;
++static time_t start;
++static int day, month, year, hour, min, sec;
++static char ignore[MAXPROVIDER];
++static char *fromarea = 0;
++static char wanted_day;
++static int list = 0;
++static char *comment;
++static char **providers = 0; /* incl these */
++static int n_providers = 0;
++static int business = 0;
++static char **xproviders = 0; /* excl these */
++static int nx_providers = 0;
++static int xbusiness = 0;
++static int all = 0;
++static int booked = 0;
++static int service = 0;
++
++#define SOCKNAME "/tmp/isdnrate"
++static int is_daemon = 0;
++static int is_client = 0;
++static int we_are_daemon = 0;
++static int takt = 99999;
++static char sortby;
++static int need_dest;
++static int h_param = 0;
++static int lcr = 0;
++static TELNUM srcnum, destnum;
++static char *pid_dir = 0;
++static char *pid_file = 0;
++static char *socket_file = 0;
++static char **hup_argv; /* args to restart with */
++
++typedef struct {
++ int prefix;
++ double rate;
++ char *name;
++ char *explain;
++} SORT;
++
++typedef struct {
++ int weight;
++ int index;
++} SORT2;
++
++static SORT sort[MAXPROVIDER];
++
++#undef MAXPROVIDER
++#define MAXPROVIDER getNProvider()
++
++#undef BUFSIZ /* sorry but 8192 is too much for me */
++#define BUFSIZ 256
++
++int print_msg(int Level, const char *fmt,...)
++{
++ auto va_list ap;
++ auto char String[BUFSIZ * 3];
++
++ if ((Level > PRT_ERR && !verbose) || (Level > PRT_WARN && verbose < 2))
++ return (1);
++
++ va_start(ap, fmt);
++ (void) vsnprintf(String, BUFSIZ * 3, fmt, ap);
++ va_end(ap);
++
++ fprintf(stderr, "%s", String);
++
++ return (0);
++} /* print_msg */
++
++
++static void init()
++{
++ auto char *version, **message;
++
++ if (readconfig(myshortname) < 0)
++ exit(1);
++
++ if (verbose)
++ message = &version;
++ else
++ message = NULL;
++
++ initHoliday(holifile, message);
++
++ if (verbose && *version)
++ print_msg(PRT_V, "%s\n", version);
++ initDest(destfile, message);
++ if (verbose && *version)
++ print_msg(PRT_V, "%s\n", version);
++
++ initRate(rateconf, ratefile, zonefile, message);
++
++ if (verbose && *version)
++ print_msg(PRT_V, "%s\n", version);
++
++} /* init */
++
++#if 0
++static void deinit(void)
++{
++ exitRate();
++ exitDest();
++ exitHoliday();
++}
++#endif
++
++/* calc a day/time W | E | H */
++static void get_day(char d)
++{
++ struct tm *tm;
++ bitfield mask;
++ int what = 0;
++
++ tm = localtime(&start); /* now */
++ switch (d) {
++ case 'W': /* we need a normal weekday, so we take
++ today and inc. day if today is
++ holiday */
++ what = WORKDAY;
++ if (!h_param)
++ hour = 10;
++ break;
++ case 'N':
++ what = WORKDAY;
++ if (!h_param)
++ hour = 23;
++ break;
++ case 'E':
++ what = SUNDAY;
++ if (!h_param)
++ hour = 10;
++ break;
++ }
++ mask = 1 << what;
++ while (isDay(tm, mask, 0) != what) {
++ tm->tm_mday++;
++ }
++ min = sec = 0;
++ day = tm->tm_mday;
++ month = tm->tm_mon + 1;
++ year = tm->tm_year + 1900;
++}
++
++static void post_init()
++{
++
++ clearNum(&srcnum);
++ if (fromarea) {
++ Strncpy(srcnum.area, fromarea, TN_MAX_AREA_LEN);
++ free(fromarea);
++ fromarea = 0;
++ }
++ initNum(&srcnum);
++
++ if (wanted_day)
++ get_day(wanted_day);
++} /* post_init */
++
++static int opts(int argc, char *argv[])
++{
++ register int c;
++ register char *p;
++ int x;
++
++ h_param = 0;
++
++ optind = 0; /* make it repeatable */
++ need_dest = 1;
++ while ((c = getopt(argc, argv, options)) != EOF) {
++ switch (c) {
++ case 'a': /* all rates old/newer */
++ all++;
++ break;
++ case 'b':
++ best = strtol(optarg, NIL, 0);
++ break;
++
++/* case 'c': country */
++ break;
++
++ case 'd':
++ for (p = optarg; *p && isspace(*p); p++) ;
++ if (isdigit(*p)) {
++ wanted_day = '\0';
++ day = atoi(optarg);
++ if ((p = strchr(optarg, '.'))) {
++ month = atoi(p + 1);
++ if ((p = strchr(p + 1, '.'))) {
++ year = atoi(p + 1);
++ if (year < 50)
++ year += 2000;
++ else if (year < 100)
++ year += 1900;
++ }
++ }
++ } /* isdigit */
++ else {
++ wanted_day = *p;
++ }
++ break;
++
++ case 'f':
++ if (optarg) { /* from */
++ for (p = optarg; (isspace(*p) || *p == '0') && *p; p++) ;
++ fromarea = strdup(p);
++ }
++ break;
++
++ case 'h':
++ hour = atoi(optarg);
++ h_param++;
++ sec = 0;
++ if ((p = strchr(optarg + 1, ':'))) {
++ min = atoi(p + 1);
++ if ((p = strchr(p + 1, ':')))
++ sec = atoi(p + 1);
++ }
++ else
++ min = 0;
++ break;
++
++ case 'l':
++ duration = strtol(optarg, NIL, 0); /* l wie lt */
++ break;
++
++ case 'o': /* booked only */
++ booked++;
++ break;
++
++ case 's': /* service */
++ service++;
++ break;
++
++ case 't':
++ x = strtol(optarg, NIL, 0);
++ if (x > 0)
++ takt = x;
++ break;
++
++ case 'x': /* eXclude Poviders */
++ {
++ char *arg = strdup(optarg);
++
++ p = strtok(arg, ",");
++ while (p) {
++ if (*p == 'B') { /* Business Provider */
++ xbusiness = 1;
++ p = strtok(0, ",");
++ continue;
++ }
++ xproviders = realloc(xproviders, (nx_providers + 1) * sizeof(char *));
++
++ xproviders[nx_providers] = strdup(p);
++ p = strtok(0, ",");
++ nx_providers++;
++ }
++ free(arg);
++ }
++ break;
++
++ case 'p': /* Providers ... */
++ {
++ char *arg = strdup(optarg);
++
++ p = strtok(arg, ",");
++ while (p) {
++ if (*p == 'B') { /* Business Provider */
++ business = 1;
++ p = strtok(0, ",");
++ continue;
++ }
++ providers = realloc(providers, (n_providers + 1) * sizeof(char *));
++
++ providers[n_providers] = strdup(p);
++ p = strtok(0, ",");
++ n_providers++;
++ }
++ free(arg);
++ }
++ break;
++
++ case 'v':
++ verbose++;
++ if (optarg && (x = atoi(optarg)))
++ verbose = x;
++ break;
++/* Uppercase options are for output format */
++
++ case 'C':
++ is_client = 1;
++ break;
++
++ case 'D':
++ is_daemon = 1;
++ need_dest = 0;
++ if (optarg) {
++ x = atoi(optarg);
++ is_daemon = x;
++ if (we_are_daemon && x == 3) {
++ kill(getppid(), SIGTERM);
++ exit(EXIT_SUCCESS);
++ }
++ }
++ break;
++
++ case 'G':
++ explain = atoi(optarg);
++ break;
++ case 'H':
++ header++;
++ break;
++ case 'L':
++ list++;
++ explain = 9;
++ break;
++ case 'N':
++ explain = 55;
++ break;
++ case 'P':
++ pid_dir = strdup(optarg);
++ break;
++ case 'O':
++ free(socket_file);
++ socket_file = strdup(optarg);
++ break;
++ case 'S':
++ sortby = *optarg;
++ break;
++ case 'T':
++ table++;
++ break;
++/* Fixme: check/warn illegal kombinations of options */
++ case 'U':
++ usestat++;
++ break;
++
++ case 'V':
++ print_version(myshortname);
++ exit(0);
++
++ case 'X':
++ if (explain == 0) {
++ explain++;
++ if (optarg && isdigit(*optarg) && (x = atoi(optarg))) {
++ explain = x;
++ if (x == 50 || x == 51 || x == 52)
++ need_dest = 0;
++ }
++ else if (optarg) {
++ comment = strdup(optarg);
++ explain = 8;
++ need_dest = 0;
++ }
++ break;
++ }
++ /* fallthrough */
++ case '?':
++ print_msg(PRT_A, usage, myshortname, myshortname, options);
++ break;
++
++ case 'Z':
++ lcr++;
++ break;
++ } /* switch */
++ } /* while */
++ if (is_client && is_daemon != 3 && is_daemon) {
++ is_daemon = 0;
++ print_msg(PRT_V, "Conflicting options, -D disabled\n");
++ }
++ if (list && table) {
++ table = 0;
++ print_msg(PRT_V, "Conflicting options, -T disabled\n");
++ }
++ if (usestat && !table)
++ print_msg(PRT_V, "Conflicting options, -U ignored\n");
++ if ((list || table) && explain >= 10) {
++ list = table = 0;
++ print_msg(PRT_V, "Conflicting options, -T, -L disabled\n");
++ }
++ if (best < 1) {
++ best = MAXPROVIDER;
++ print_msg(PRT_V, "Illegal options, -b ignored\n");
++ }
++ if ((explain == 50 || explain == 51 || explain == 52) && header) {
++ print_msg(PRT_V, "Conflicting options, -H ignored\n");
++ }
++ if (explain >= 10 && service) {
++ print_msg(PRT_V, "Conflicting options, -s ignored\n");
++ service = 0;
++ }
++ if (argc > optind)
++ return (optind);
++ else
++ return (0);
++} /* opts */
++
++
++static int (*compare_func) (const void *s1, const void *s2);
++static int compare(const void *s1, const void *s2)
++{
++ return (((SORT *) s1)->rate > ((SORT *) s2)->rate);
++} /* compare */
++static int compare_vbn(const void *s1, const void *s2)
++{
++ return (((SORT *) s1)->prefix > ((SORT *) s2)->prefix);
++}
++static int compare_name(const void *s1, const void *s2)
++{
++ return strcasecmp(((SORT *) s1)->name, ((SORT *) s2)->name);
++}
++
++static int compare2(const void *s1, const void *s2)
++{
++ return (((SORT2 *) s1)->weight < ((SORT2 *) s2)->weight);
++} /* compare2 */
++
++char *short_explainRate(RATE * Rate)
++{
++
++ static char buffer[BUFSIZ];
++ char *p = buffer;
++
++ if (service && Rate->dst[1] && *Rate->dst[1])
++ p += sprintf(p, "%s, ", Rate->dst[1]);
++
++ if (Rate->Zone && *Rate->Zone)
++ p += sprintf(p, "%s", Rate->Zone);
++ else
++ p += sprintf(p, "Zone %d", Rate->zone);
++
++ if (!Rate->domestic && Rate->Country && *Rate->Country)
++ p += sprintf(p, " (%s)", Rate->Country);
++
++ if (Rate->Day && *Rate->Day)
++ p += sprintf(p, ", %s", Rate->Day);
++
++ if (Rate->Hour && *Rate->Hour)
++ p += sprintf(p, ", %s", Rate->Hour);
++
++ return buffer;
++}
++
++static char *printrate(RATE * Rate)
++{
++ static char message[BUFSIZ];
++
++ if (Rate->Basic > 0)
++ sprintf(message, "%s + %s/%.1fs = %s + %s/Min (%s)",
++ printRate(Rate->Basic),
++ printRate(Rate->Price),
++ Rate->Duration,
++ printRate(Rate->Basic),
++ printRate(60 * Rate->Price / Rate->Duration),
++ short_explainRate(Rate));
++ else
++ sprintf(message, "%s/%.1fs = %s/Min (%s)",
++ printRate(Rate->Price),
++ Rate->Duration,
++ printRate(60 * Rate->Price / Rate->Duration),
++ short_explainRate(Rate));
++
++ return (message);
++} /* printrate */
++
++
++static void buildtime()
++{
++ auto struct tm tm;
++
++ tm.tm_sec = sec;
++ tm.tm_min = min;
++ tm.tm_hour = hour;
++ tm.tm_mday = day;
++ tm.tm_mon = month - 1;
++ tm.tm_year = year - 1900; /* ja, ja, ich wei ;-) */
++ tm.tm_isdst = -1;
++
++ start = mktime(&tm);
++} /* buildtime */
++
++
++static void splittime()
++{
++ auto struct tm *tm;
++
++ tm = localtime(&start);
++ sec = tm->tm_sec;
++ min = tm->tm_min;
++ hour = tm->tm_hour;
++ day = tm->tm_mday;
++ month = tm->tm_mon + 1;
++ year = tm->tm_year + 1900;
++} /* splittime */
++
++static char *Provider(int prefix)
++{
++ register char *p, *p1;
++ register int l;
++ static char s[BUFSIZ];
++ char prov[TN_MAX_PROVIDER_LEN];
++
++ if (prefix == UNKNOWN)
++ return ("?");
++
++ p = getProvider(prefix);
++
++ l = max(WIDTH, strlen(p)) - strlen(p);
++
++ p1 = prefix2provider_variant(prefix, prov);
++
++ l += (8 - strlen(p1));
++
++ sprintf(s, "%s:%s%*s", p1, p, l, "");
++
++ return (s);
++} /* Provider */
++
++static char *takt_str(RATE * Rate)
++{
++ static char s[BUFSIZ];
++
++ if (floor(Rate->Rhythm[0]) == Rate->Rhythm[0])
++ sprintf(s, "%.0f/", Rate->Rhythm[0]);
++ else
++ sprintf(s, "%.3f/", Rate->Rhythm[0]);
++ if (floor(Rate->Rhythm[1]) == Rate->Rhythm[1])
++ sprintf(s + strlen(s), "%.0f", Rate->Rhythm[1]);
++ else
++ sprintf(s + strlen(s), "%.3f", Rate->Rhythm[1]);
++ return s;
++}
++
++static inline char *P_EMPTY(char *s)
++{
++ char *p = s;
++
++ return p ? p : "";
++}
++
++#define DEL ';'
++static int compute(char *num)
++{
++ register int i, n = 0;
++ register int low = 0, high = MAXPROVIDER - 1;
++ auto RATE Rate;
++ auto char s[BUFSIZ];
++ struct tm *tm;
++ char prov[TN_MAX_PROVIDER_LEN];
++ int first = 1;
++ static char BUSINESS[] = "Business"; /* in C:GT:Tag */
++
++ if (destnum.nprovider != UNKNOWN) {
++ low = high = destnum.nprovider;
++ } /* if */
++ compare_func = compare;
++ switch (sortby) {
++ case 'v':
++ compare_func = compare_vbn;
++ break;
++ case 'n':
++ compare_func = compare_name;
++ break;
++ }
++
++ buildtime();
++ if (explain == 98 || explain == 97) { /* Minutenpreis fuer
++ diese Woche */
++ tm = localtime(&start);
++ tm->tm_hour = 0;
++ tm->tm_min = 1;
++ tm->tm_sec = 0;
++ start = mktime(tm);
++ if (explain == 98) {
++ while (tm->tm_wday) { /* find last monday */
++ start -= (60 * 60 * 24);
++ tm = localtime(&start);
++ } /* while */
++ start += (60 * 60 * 24);
++ }
++ }
++ if (service) {
++ num = getServiceNum(num);
++ if (!num || !*num) {
++ return 0;
++ }
++ }
++ do {
++ for (i = low; i <= high; i++) {
++ int found, p;
++ char *t;
++
++ if (ignore[i]) /* Fixme: */
++ continue;
++ if (booked && !isProviderBooked(i))
++ continue;
++ if (!all && !isProviderValid(i, start))
++ continue;
++ t = getProvider(i);
++ if (!t || t[strlen(t) - 1] == '?') /* UNKNOWN Provider */
++ continue;
++
++ t = getComment(i, "GT"); /* get Geb. Text comment */
++ if (business) { /* only business wanted */
++ if (t == 0)
++ continue;
++ else if (strstr(t, BUSINESS) == 0)
++ continue;
++ }
++ if (xbusiness) { /* no business wanted */
++ if (t && strstr(t, BUSINESS) > 0)
++ continue;
++ }
++ found = 0;
++ if (n_providers) {
++ for (p = 0; p < n_providers; p++)
++ if (pnum2prefix_variant(providers[p], start) == i) {
++ found = 1;
++ break;
++ }
++ if (!found)
++ continue;
++ }
++ if (nx_providers) {
++ for (p = 0; p < nx_providers; p++)
++ if (pnum2prefix_variant(xproviders[p], start) == i) {
++ found = 1;
++ break;
++ }
++ if (found)
++ continue;
++ }
++ clearRate(&Rate);
++ Rate.src[0] = srcnum.country;
++ Rate.src[1] = srcnum.area;
++ Rate.src[2] = "";
++
++ destnum.nprovider = i;
++ Strncpy(destnum.provider, getProvider(i), TN_MAX_PROVIDER_LEN);
++ if (normalizeNumber(num, &destnum, TN_ALL) == UNKNOWN) {
++ continue;
++ }
++
++ Rate.dst[0] = destnum.country;
++ Rate.dst[1] = destnum.area;
++ Rate.dst[2] = destnum.msn;
++ /* Rate.Service = "Internet by call"; */
++
++ Rate.prefix = i;
++
++ Rate.start = start;
++ Rate.now = start + duration - 1;
++ if (explain == 99) {
++ int j;
++ double oldCharge = -1.0;
++
++ if (first && header)
++ print_header();
++ first = 0;
++ printf("@ %s\n", prefix2provider_variant(Rate.prefix, prov));
++ Rate.now = start + 1;
++ for (j = 1; j < duration; j++) {
++ if (!getRate(&Rate, NULL) && (Rate.Price != 99.99)) {
++ if (Rate.Charge != oldCharge || j == duration - 1) {
++ printf("%d %.4f\n", j, Rate.Charge);
++ oldCharge = Rate.Charge;
++ }
++ }
++ else
++ break;
++ Rate.now++;
++ }
++ if (Rate.Duration <= takt)
++ printf("@----- %s %s\n", currency, Rate.Provider);
++ }
++ if (explain == 98 || explain == 97) { /* Minutenpreis fuer
++ diese Woche/Tag */
++ int j;
++
++ if (first && header)
++ print_header();
++ first = 0;
++ printf("@ %s\n", prefix2provider_variant(Rate.prefix, prov));
++ for (j = 0; j < (explain == 98 ? 7 * 24 : 24); j++) {
++ if (!getRate(&Rate, NULL) && (Rate.Price != 99.99)) {
++ printf("%d %.4f\n", j, Rate.Charge);
++ }
++ else
++ break;
++ Rate.now += 3600;
++ Rate.start += 3600;
++ }
++ if (Rate.Duration <= takt)
++ printf("@----- %s %s\n", currency, Rate.Provider);
++ }
++ else if (explain == 50 || explain == 51) {
++ int fi = 1;
++
++ while (getZoneRate(&Rate, explain - 50, fi) == 0) {
++ double cpm = Rate.Duration > 0 ? 60 * Rate.Price / Rate.Duration : 99.99;
++
++ if (Rate.Price == 0)
++ cpm = Rate.Basic;
++
++ fi = 0;
++ if (Rate.Price != 99.99)
++ printf("%s%c%s%c%s%c%.2f%c%.2f%c%s\n", prefix2provider(Rate.prefix, prov), DEL,
++ Rate.Provider, DEL, currency, DEL, Rate.Charge, DEL, cpm, DEL,
++ P_EMPTY(Rate.Country));
++ free(Rate.Country);
++ }
++ }
++ else {
++ /* kludge to suppress "impossible" Rates */
++ char **message, *msg;
++ if(verbose)
++ message = &msg;
++ else
++ message = NULL;
++ if (!getRate(&Rate, message) && (Rate.Price != 99.99)) {
++ if (!(Rate.Duration <= takt))
++ continue;
++ sort[n].prefix = Rate.prefix;
++ sort[n].rate = Rate.Charge;
++ sort[n].name = Rate.Provider;
++ switch (explain) {
++ case 1:
++ if (service)
++ sprintf(s, " (%s, %s)", P_EMPTY(Rate.dst[1]), Rate.Zone);
++ else
++ sprintf(s, " (%s)", Rate.Zone);
++ sort[n].explain = strdup(s);
++ break;
++ case 2:
++ sprintf(s, " (%s)", printrate(&Rate));
++ sort[n].explain = strdup(s);
++ break;
++ case 8:
++ sort[n].explain = strdup(P_EMPTY(getComment(i, comment)));
++ break;
++ case 9: /* used by list */
++ {
++ double cpm = Rate.Duration > 0 ? 60 * Rate.Price / Rate.Duration : 99.99;
++
++ if (Rate.Price == 0)
++ cpm = Rate.Basic;
++
++ sprintf(s, "%s%c"
++ "%s%c%s%c%s%c%s%c"
++ "%s%c"
++ "%.3f%c%.4f%c%.4f%c%.2f%c%.3f%c"
++ "%s%c%.2f",
++ prefix2provider_variant(Rate.prefix, prov), DEL,
++ Rate.Provider, DEL, P_EMPTY(Rate.Zone), DEL, P_EMPTY(Rate.Day), DEL, P_EMPTY(Rate.Hour), DEL,
++ currency, DEL, /* Fixme: global or per
++ Provider?? wg. EURO */
++ Rate.Charge, DEL, Rate.Basic, DEL, Rate.Price, DEL, Rate.Duration, DEL, cpm, DEL,
++ takt_str(&Rate), DEL, Rate.Sales);
++ sort[n].explain = strdup(s);
++ }
++ break;
++ default:
++ sort[n].explain = strdup("");
++ break;
++ }
++
++ n++;
++ } /* if */
++ else if(verbose && *msg)
++ print_msg(PRT_V, "%s\n", msg);
++
++ } /* else 99 */
++ } /* for i */
++ if (service)
++ num = getServiceNum(0); /* get next service num */
++ else
++ num = 0;
++ } while (num && *num);
++ if (explain < 10) {
++ qsort((void *) sort, n, sizeof(SORT), compare_func);
++ if (lcr && n) {
++ RATE Cheap;
++ int res = getLeastCost(&Rate, &Cheap, booked, -1);
++
++ if (res != UNKNOWN) {
++ sort[n].prefix = Cheap.prefix;
++ sort[n].rate = Cheap.Charge;
++ sort[n].name = Cheap.Provider;
++ sprintf(s, "(Cheapest: %s %s %s %s)", Cheap.dst[0], Cheap.dst[1], Cheap.dst[2], P_EMPTY(Cheap.Zone));
++ sort[n].explain = strdup(s);
++ n++;
++ } /* res */
++ } /* lcr */
++ } /* explain */
++ return (n);
++} /* compute */
++
++static void print_header(void)
++{
++ printf("Eine %d Sekunden lange Verbindung von %s nach %s kostet am %s\n",
++ duration, formatNumber("%F", &srcnum), formatNumber("%F", &destnum),
++ ctime(&start));
++}
++
++static void printList(int n)
++{
++ int i;
++
++ if (header)
++ print_header();
++ if (n > best)
++ n = best;
++
++ for (i = 0; i < n; i++)
++ printf("%s\n", sort[i].explain);
++}
++
++static void result(int n)
++{
++
++ register int i;
++
++ if (header)
++ print_header();
++
++ if (n > best)
++ n = best;
++ for (i = 0; i < n; i++)
++ printf("%s %s %8.3f %s\n",
++ Provider(sort[i].prefix), currency, sort[i].rate, sort[i].explain);
++} /* result */
++
++
++static void purge(int n)
++{
++ register int i;
++
++ for (i = 0; i < n; i++)
++ if (sort[i].explain)
++ free(sort[i].explain);
++} /* purge */
++
++/*
++ Werktag
++ Wochenende
++ Ortszone
++ Regionalzone
++ Fernzone
++ Handy
++ Internet
++ 0..23 Uhr
++ */
++
++#define STARTHOUR 8
++
++static void printTable(char *num)
++{
++ register int n, d, i, h, lasthour;
++ auto struct tm *tm;
++ auto SORT last[_MAXLAST];
++ auto int used[MAXPROVIDER];
++ auto int hours[MAXPROVIDER];
++ auto int weight[MAXPROVIDER];
++ auto int useds = 0, maxhour;
++ auto SORT2 wsort[MAXPROVIDER];
++ static int firsttime = 1;
++ int first;
++ int prefix;
++
++ memset(used, 0, sizeof(used));
++ memset(hours, 0, sizeof(hours));
++ memset(weight, 0, sizeof(weight));
++
++ for (d = 0; d < 3; d++) { /* Werktag, Samstag, Sonntag */
++ last[0].prefix = UNKNOWN;
++ lasthour = UNKNOWN;
++
++ buildtime();
++ tm = localtime(&start);
++
++ if (!d) { /* first time */
++ while (tm->tm_wday != 5) { /* find next Friday */
++ start += (60 * 60 * 24);
++ tm = localtime(&start);
++ } /* while */
++ }
++ else /* erst Samstag, dann */
++ start += (60 * 60 * 24); /* Sonntag */
++
++ splittime();
++ buildtime();
++
++ hour = STARTHOUR;
++ min = 0;
++
++ first = 1;
++
++ while (1) {
++ destnum.nprovider = UNKNOWN;
++ if (provider2prefix(num, &prefix)) /* set provider if it is in number */
++ normalizeNumber(num, &destnum, TN_PROVIDER);
++ n = compute(num);
++
++ if (header && first && d == 0 && firsttime)
++ print_header();
++
++ if (header && first) {
++ switch (d) {
++ case 0 : printf("\nWerktag:\n"); break;
++ case 1 : printf("\nSamstag:\n"); break;
++ case 2 : printf("\nSonntag:\n"); break;
++ } /* switch */
++
++ first = 0;
++ } /* if */
++
++ if (last[0].prefix == UNKNOWN) {
++ for (i = 0; i < min(n, MAXLAST); i++) {
++ if (sort[i].prefix) {
++ last[i].prefix = sort[i].prefix;
++ last[i].rate = sort[i].rate;
++ last[i].explain = strdup(sort[i].explain);
++ } /* if */
++ } /* for */
++ } /* if */
++
++ if (lasthour == UNKNOWN)
++ lasthour = hour;
++
++ if (sort[0].prefix != last[0].prefix) {
++ for (i = 0; i < min(n, MAXLAST); i++) {
++
++ if (!i)
++ printf(" %02d:00 .. %02d:59 %s = %s %s%s\n",
++ lasthour, hour - 1, Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ else
++ printf(" %s = %s %s%s\n",
++ Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ } /* for */
++
++ used[last[0].prefix]++;
++
++ if (lasthour >= hour)
++ h = ((24 - lasthour) + hour);
++ else
++ h = hour - lasthour;
++
++ hours[last[0].prefix] += h;
++
++ if ((lasthour > 8) && (lasthour < 21))
++ h *= 2;
++
++ weight[last[0].prefix] += h * (d ? 1 : 5);
++
++ for (i = 0; i < min(n, MAXLAST); i++) {
++ last[i].prefix = sort[i].prefix;
++ last[i].rate = sort[i].rate;
++ last[i].explain = strdup(sort[i].explain);
++ } /* for */
++
++ lasthour = hour;
++ } /* if */
++
++ purge(n);
++
++ hour++;
++
++ if (hour == 24)
++ hour = 0;
++ else if (hour == STARTHOUR)
++ break;
++ } /* while */
++
++ for (i = 0; i < min(n, MAXLAST); i++) {
++
++ if (!i) {
++ if ((lasthour == STARTHOUR) && (hour == STARTHOUR))
++ printf(" immer %s = %s %s%s\n",
++ Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ else
++ printf(" %02d:00 .. %02d:59 %s = %s %s%s\n",
++ lasthour, hour - 1, Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ }
++ else
++ printf(" %s = %s %s%s\n",
++ Provider(last[i].prefix),
++ currency,
++ double2str(last[i].rate, 5, 3, DEB),
++ last[i].explain);
++ } /* for */
++
++ used[last[0].prefix]++;
++
++ if (lasthour >= hour)
++ h = ((24 - lasthour) + hour);
++ else
++ h = hour - lasthour;
++
++ hours[last[0].prefix] += h;
++
++ if ((lasthour > 8) && (lasthour < 21))
++ h *= 2;
++
++ weight[last[0].prefix] += h * (d ? 1 : 5);
++
++ } /* for */
++
++ if (usestat) {
++ printf("\nProvider(s) used:\n");
++
++ maxhour = 9999999;
++ useds = 0;
++
++ for (i = 0; i < MAXPROVIDER; i++)
++ if (used[i]) {
++ printf("%s %d times, %d hours, weight = %d\n",
++ Provider(i), used[i], hours[i], weight[i]);
++
++ wsort[useds].weight = weight[i];
++ wsort[useds].index = i;
++
++ useds++;
++
++ if (hours[i] < maxhour)
++ maxhour = hours[i];
++ } /* if */
++
++ if ((best < MAXPROVIDER) && (best < useds)) {
++ printf("Retrying with only %d provider(s), eliminating %d provider(s)\n", best, useds - best);
++
++ qsort((void *) wsort, useds, sizeof(SORT2), compare2);
++
++ for (i = 0; i < useds; i++) {
++ printf("%s %d times, %d hours, weight = %d\n",
++ Provider(wsort[i].index), used[wsort[i].index], hours[wsort[i].index], weight[wsort[i].index]);
++
++ if (i == best - 1)
++ printf("\n");
++
++ if (i >= best - 1)
++ ignore[wsort[i].index]++;
++ } /* for */
++
++ if (firsttime)
++ printTable(num);
++
++ firsttime = 0;
++
++ } /* if */
++ } /* if */
++} /* printTable */
++
++
++static void clean_up()
++{
++ if (providers)
++ free(providers);
++ providers = 0;
++ fromarea = 0;
++ table = list = header = explain = 0;
++ usestat = 0;
++ duration = LCR_DURATION;
++ wanted_day = '\0';
++ takt = 99999;
++ if (comment)
++ free(comment);
++ comment = 0;
++ sortby = 0;
++ need_dest = 1;
++}
++
++static char * sub_sp(char *p)
++{
++ char *o = p;
++ int allupper=1;
++ for (; *p; p++)
++ if(!isupper(*p) && *p != '_' && !isdigit(*p)) { /* e.g. _DEMD1 */
++ allupper = 0;
++ break;
++ }
++ if (!allupper)
++ for (p = o; *p; p++)
++ if(*p == '_')
++ *p = ' ';
++ return o;
++}
++static void doit(int i, int argc, char *argv[])
++{
++ int n;
++ int prefix;
++ char *num;
++
++ post_init();
++ memset(ignore, 0, sizeof(ignore));
++ if (!need_dest && i == 0) {
++ i = 0;
++ argc = 1;
++ argv[0] = "2345";
++ }
++ while (i < argc) {
++ num = sub_sp(argv[i]);
++ if (explain == 55) {
++ if (n_providers) {
++ destnum.nprovider = pnum2prefix_variant(providers[0], 0);
++ Strncpy(destnum.provider, getProvider(destnum.nprovider), TN_MAX_PROVIDER_LEN);
++ normalizeNumber(num, &destnum, TN_NO_PROVIDER);
++ }
++ else
++ normalizeNumber(num, &destnum, TN_ALL);
++ printf("%s => %s \n", num, formatNumber("%l - %p", &destnum));
++ i++;
++ continue;
++ }
++ else if (explain == 52) { // enum Servce names
++
++ int first = 1;
++ char *p;
++
++ do {
++ p = getServiceNames(first);
++ if (p)
++ printf("%s\n", p);
++ first = 0;
++ }
++ while (p);
++ return;
++ }
++ destnum.nprovider = UNKNOWN;
++ if (provider2prefix(num, &prefix)) /* set provider if it is in
++ number */
++ normalizeNumber(num, &destnum, TN_PROVIDER);
++ if (table)
++ printTable(num);
++ else {
++ n = compute(num);
++ if (list)
++ printList(n);
++ else if (explain < 10)
++ result(n);
++ purge(n);
++ }
++ i++;
++ } /* while */
++ clean_up();
++}
++
++static void err(char *s)
++{
++ print_msg(PRT_A, "%s - '%s'\n", s, strerror(errno));
++ if (is_daemon == 2)
++ kill(getppid(), SIGTERM);
++ exit(2);
++}
++
++static int handle_client(int fd)
++{
++ char buffer[BUFSIZ];
++ int argc, n, i;
++ char **argv;
++ char *p;
++
++ if ((n = read(fd, buffer, BUFSIZ)) < 0)
++ err("Read");
++ if (n) {
++ argv = calloc(sizeof(char *), 20);
++
++ buffer[n] = '\0';
++ if (verbose)
++ fprintf(stderr, "got '%s'\n", buffer);
++ argc = 0;
++ argv[argc++] = strdup(myname);
++ p = strtok(buffer, "\t\n ");
++ while (p) {
++ argv[argc++] = strdup(p);
++ p = strtok(0, "\t\n ");
++ if (argc >= 20)
++ break;
++ }
++ time(&start); /* set time of call */
++ splittime(); /* date time my be overridden by opts */
++ we_are_daemon = 1;
++ if ((i = opts(argc, argv)) || need_dest == 0) {
++ if (shutdown(fd, 0) < 0) /* no read any more */
++ err("shutdown");
++ if (dup2(fd, STDOUT_FILENO) < 0) /* stdout to sock */
++ err("dup");
++ doit(i, argc, argv);
++ fflush(stdout);
++ fclose(stdout);
++ }
++ for (i = 0; i < argc; i++)
++ free(argv[i]);
++ free(argv);
++ }
++ return n == 0 ? -1 : 0;
++}
++
++void catch_sig(int sig)
++{
++ print_msg(PRT_A, "Signal %d\n", sig);
++ unlink(socket_file);
++ if (pid_dir)
++ unlink(pid_file);
++ err("Sig");
++}
++
++static void del_sock(void)
++{
++ if (getppid() > 0) {
++ unlink(socket_file);
++ if (pid_dir)
++ unlink(pid_file);
++ }
++}
++
++static volatile sig_atomic_t stopped = 0;
++static volatile sig_atomic_t reinit = 0;
++
++static void catch_term(int sig)
++{
++ stopped = 1;
++}
++
++static void catch_hup(int sig)
++{
++ print_msg(PRT_A, "Signal %d restarting %s\n", sig, myname);
++ del_sock();
++ execvp(myname, hup_argv);
++ print_msg(PRT_A, "- failed\n");
++}
++
++static void do_reinit(void)
++{
++ /* deinit(), init() doesn't */
++ reinit=0;
++}
++
++/* thank's to Jochen Erwied for this: */
++#ifndef TEMP_FAILURE_RETRY
++#define TEMP_FAILURE_RETRY(expression) \
++ (__extension__ \
++ ({ long int __result; \
++ do __result = (long int) (expression); \
++ while (__result == -1L && errno == EINTR); \
++ __result; })) \
++
++#endif
++
++static void setup_daemon()
++{
++ int sock;
++ struct sockaddr_un sa;
++ struct sockaddr_in client;
++ fd_set active_fd_set, read_fd_set;
++ char *sock_name = socket_file;
++ socklen_t size;
++ struct stat stat_buf;
++ int i;
++ pid_t pid;
++ char pidname[] = "isdnrate.pid";
++ FILE *fp;
++
++ if (verbose)
++ fprintf(stderr, "Setup sockets\n");
++ signal(SIGTERM, catch_term);
++ signal(SIGINT, catch_sig);
++ signal(SIGHUP, catch_hup);
++
++ if (is_daemon == 2) { /* go background */
++
++ fprintf(stderr, "Going background\n");
++ verbose = 0;
++ pid = fork();
++ if (pid < 0)
++ err("Going bg failed");
++ else if (pid > 0) {
++ exit(EXIT_SUCCESS);
++ }
++ }
++ if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
++ err("Can't open socket");
++ sa.sun_family = AF_UNIX;
++ strcpy(sa.sun_path, sock_name);
++ size = offsetof(struct sockaddr_un, sun_path) + strlen(sa.sun_path) + 1;
++
++ if (bind(sock, (struct sockaddr *) &sa, size) < 0)
++ err("Can't bind sock");
++
++ stat(sock_name, &stat_buf);
++ chmod(sock_name, stat_buf.st_mode | S_IWOTH | S_IWGRP);
++/* should better have perm wwwrun.nogroup */
++
++ if (listen(sock, SOMAXCONN) < 0)
++ err("Can't listen");
++ if (pid_dir) {
++ pid_file = malloc(strlen(pid_dir) + strlen(pidname) + 2);
++ strcpy(pid_file, pid_dir);
++ if (pid_file[strlen(pid_file) - 1] != '/')
++ strcat(pid_file, "/");
++ strcat(pid_file, pidname);
++ if ((fp = fopen(pid_file, "w")) == 0)
++ fprintf(stderr, "Can't write %s\n", pid_file);
++ else {
++ fprintf(fp, "%d\n", getpid());
++ fclose(fp);
++ }
++ }
++ atexit(del_sock);
++ FD_ZERO(&active_fd_set);
++ FD_SET(sock, &active_fd_set);
++ while (!stopped) {
++ if (reinit)
++ do_reinit();
++ read_fd_set = active_fd_set;
++ if (TEMP_FAILURE_RETRY(select(FD_SETSIZE, &read_fd_set, 0, 0, 0)) < 0)
++ err("select");
++ for (i = 0; i < FD_SETSIZE; i++)
++ if (FD_ISSET(i, &read_fd_set)) {
++ if (i == sock) { /* request on orig */
++ int new;
++
++ size = sizeof(client);
++ if ((new = accept(sock, (struct sockaddr *) &client, &size)) < 0)
++ err("accept");
++ if (verbose)
++ fprintf(stderr, "Accepted %d\n", new);
++ FD_SET(new, &active_fd_set);
++ }
++ else { /* already connected */
++ pid_t pid;
++ int status;
++
++ if (verbose)
++ fprintf(stderr, "Handle client %d\n", i);
++ pid = fork();
++ if (pid == 0) {
++ handle_client(i);
++ _exit(EXIT_SUCCESS);
++ }
++ else if (pid < 0)
++ err("fork");
++ else {
++ if (waitpid(pid, &status, 0) != pid)
++ err("waitpid");
++ close(i);
++ FD_CLR(i, &active_fd_set);
++ }
++ } /* if i */
++ } /* if ISSET */
++ } /* while */
++ del_sock();
++ exit(EXIT_SUCCESS);
++}
++
++static int connect_2_daemon(int argc, char *argv[])
++{
++ int sock;
++ struct sockaddr_un sa;
++ char *sock_name = socket_file;
++ size_t size;
++ int i, c, len;
++ char *p, *q, buffer[BUFSIZ];
++
++ if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
++ err("Can't open socket");
++ sa.sun_family = AF_UNIX;
++ strcpy(sa.sun_path, sock_name);
++ size = offsetof(struct sockaddr_un, sun_path) + strlen(sa.sun_path) + 1;
++
++ if (connect(sock, (struct sockaddr *) &sa, size) < 0)
++ err("Can't connect sock");
++ p = buffer;
++ optind = 0; /* reinit */
++ len = 0;
++ while ((c = getopt(argc, argv, options)) != EOF && len < BUFSIZ - 10) {
++ switch (c) {
++ case '?':
++ case 'C':
++ break;
++ case 'D':
++ if (optarg && atoi(optarg) == 3) ; /* goon, kill a running
++ daemon */
++ else
++ break;
++ default:
++ *p++ = '-';
++ *p++ = c;
++ len += 3;
++ if (optarg)
++ for (q = optarg; *q && len < BUFSIZ - 10; len++)
++ *p++ = *q++;
++ *p++ = ' ';
++ break;
++ }
++ }
++ for (i = optind; i < argc; i++) {
++ for (q = argv[i]; *q && len < BUFSIZ - 10; len++)
++ *p++ = *q++;
++ *p++ = ' ';
++ len++;
++ }
++ *--p = '\x0';
++ i = write(sock, buffer, strlen(buffer) + 1);
++ if (i < 0)
++ err("Write sock");
++ while ((i = read(sock, buffer, BUFSIZ)) > 0)
++ write(1, buffer, i);
++ close(sock);
++ return EXIT_SUCCESS;
++}
++
++
++int main(int argc, char *argv[], char *envp[])
++{
++ register int i;
++ sigset_t unblock_set;
++
++ myname = argv[0];
++ myshortname = basename(myname);
++
++ time(&start);
++ splittime();
++ socket_file = strdup(SOCKNAME);
++ /* borrowed from isdnlog.c, thanks */
++ hup_argv = argv;
++ sigemptyset(&unblock_set);
++ sigaddset(&unblock_set, SIGHUP);
++ sigprocmask(SIG_UNBLOCK, &unblock_set, NULL);
++
++ if ((i = opts(argc, argv)) || need_dest == 0) {
++ if (is_client)
++ exit(connect_2_daemon(argc, argv));
++ else
++ init();
++ if (is_daemon) {
++ clean_up();
++ setup_daemon();
++ }
++ else
++ doit(i, argc, argv);
++ }
++ else {
++ print_msg(PRT_A, usage, myshortname, myshortname, options);
++ print_msg(PRT_A, "\n");
++ print_msg(PRT_A, "\t-a \tall=show old and newer rates (default actual only)\n", MAXPROVIDER);
++ print_msg(PRT_A, "\t-b best\tshow only the first <best> provider(s) (default %d)\n", MAXPROVIDER);
++ print_msg(PRT_A, "\t-d d[.m[.y]] | {W|N|E}\tstart date of call (default now)\n");
++ print_msg(PRT_A, "\t-f areacode\tyou are calling from <areacode>\n");
++ print_msg(PRT_A, "\t-h h[:m[:s]]\tstart time of call (default now)\n");
++ print_msg(PRT_A, "\t-l duration\tduration of call in seconds (default %d seconds)\n", LCR_DURATION);
++ print_msg(PRT_A, "\t-o \t show only booked providers\n");
++ print_msg(PRT_A, "\t-p prov|B[,prov...]\t show only these providers\n");
++ print_msg(PRT_A, "\t-s \t consider 'Destination' as a service name\n");
++ print_msg(PRT_A, "\t-t takt\t\tshow providers if chargeduration<=takt\n");
++ print_msg(PRT_A, "\t-v [level]\tverbose\n");
++ print_msg(PRT_A, "\t-x prov|B[,prov...]\t exclude these providers\n");
++
++ print_msg(PRT_A, "\tOutput and run options\n");
++ print_msg(PRT_A, "\t-C\trun as client, connecting to a running daemon\n");
++ print_msg(PRT_A, "\t-CD3\tkill a running daemon\n");
++ print_msg(PRT_A, "\t-D\trun as daemon\n");
++ print_msg(PRT_A, "\t-D2\trun as daemon & go background\n");
++ print_msg(PRT_A, "\t-G which\tshow raw data\n");
++ print_msg(PRT_A, "\t-H\tshow a header\n");
++ print_msg(PRT_A, "\t-L\tshow a detailed list\n");
++ print_msg(PRT_A, "\t-O sOcket-path\twrite socket to this file (def:tmp/isdnrate)\n");
++ print_msg(PRT_A, "\t-P pid-dir\twrite own PID to pid-dir/isdnrate.pid\n");
++ print_msg(PRT_A, "\t-N\tparse the given telefon numbers\n");
++ print_msg(PRT_A, "\t-S[v|n]\tsort by v=VBN, n=Name, default=Charge\n");
++ print_msg(PRT_A, "\t-T\tshow a table of day/night week/weekend\n");
++ print_msg(PRT_A, "\t-U\tshow usage stats for table\n");
++ print_msg(PRT_A, "\t-V\tshow version info\n");
++ print_msg(PRT_A, "\t-X\texplain each rate\n");
++ print_msg(PRT_A, "\t-X2\texplain more\n");
++ print_msg(PRT_A, "\t-X comment\tprint <comment> from C:tag\n");
++ print_msg(PRT_A, "\t-Z show entry from getLeastCost\n");
++ print_msg(PRT_A, "\n\te.g.\t%s -b5 -f30 -TH -t1 Zaire\n", myshortname);
++ } /* else */
++/* deinit(); Fixme: this SIGSEGVs in exitHoliday */
++ return (0);
++} /* isdnrate */
+diff -Naur isdn4k-utils-orig//isdnlog/tools/rate.c isdn4k-utils/isdnlog/tools/rate.c
+--- isdn4k-utils-orig//isdnlog/tools/rate.c 2002-07-06 09:22:33.000000000 +1000
++++ isdn4k-utils/isdnlog/tools/rate.c 2010-12-04 20:44:03.786672226 +1000
+@@ -1773,6 +1773,7 @@
+ number=realloc(number, numbers*sizeof(int));
+ number[numbers-1]=i;
+ skip:
++ ;
+ }
+
+ while (isblank(*s)) s++;
+@@ -2344,6 +2345,7 @@
+ }
+ return UNKNOWN;
+ done:
++ ;
+ }
+ }
+ }
+diff -Naur isdn4k-utils-orig//lib/libtools.c isdn4k-utils/lib/libtools.c
+--- isdn4k-utils-orig//lib/libtools.c 1999-11-04 02:13:36.000000000 +1000
++++ isdn4k-utils/lib/libtools.c 2010-12-04 20:44:03.786672226 +1000
+@@ -711,6 +711,7 @@
+ case 'r': _mode |= R_OK;
+ break;
+ default :
++ ;
+ }
+ }
+
+diff -Naur isdn4k-utils-orig//Makefile isdn4k-utils/Makefile
+--- isdn4k-utils-orig//Makefile 2002-07-20 05:03:49.000000000 +1000
++++ isdn4k-utils/Makefile 2010-12-04 20:43:57.890005560 +1000
+@@ -132,12 +132,6 @@
+
+ install: rootperm
+ set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i install; done
+- @if [ -c $(DESTDIR)/dev/isdnctrl0 ] && ls -l $(DESTDIR)/dev/isdnctrl0 | egrep "[[:space:]]45,[[:space:]]+64[[:space:]]" > /dev/null; \
+- then \
+- /bin/echo -e '(some) ISDN devices already exist, not creating them.\nUse scripts/makedev.sh manually if necessary.'; \
+- else \
+- sh scripts/makedev.sh $(DESTDIR) ; \
+- fi
+
+ uninstall: rootperm
+ set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i uninstall; done
diff --git a/core/iw/PKGBUILD b/core/iw/PKGBUILD
new file mode 100644
index 000000000..67cc374ca
--- /dev/null
+++ b/core/iw/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 111467 2011-02-27 10:05:15Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=iw
+pkgver=0.9.22
+pkgrel=1
+pkgdesc="nl80211 based CLI configuration utility for wireless devices"
+arch=("i686" "x86_64")
+url="http://wireless.kernel.org/en/users/Documentation/iw"
+license=("GPL")
+depends=("libnl")
+makedepends=("kernel-headers")
+source=(http://wireless.kernel.org/download/$pkgname/$pkgname-$pkgver.tar.bz2)
+sha256sums=('138ce4dc827d8b0af55fe1c444e749b985c1540d791b27922aad880d12908bb1')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/core/jfsutils/PKGBUILD b/core/jfsutils/PKGBUILD
new file mode 100644
index 000000000..1d99ac5d3
--- /dev/null
+++ b/core/jfsutils/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 100375 2010-11-23 01:27:06Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=jfsutils
+pkgver=1.1.14
+pkgrel=2
+pkgdesc="JFS filesystem utilities"
+arch=(i686 x86_64)
+url="http://jfs.sourceforge.net"
+license=('GPL')
+groups=('base')
+depends=('util-linux-ng')
+source=(http://jfs.sourceforge.net/project/pub/${pkgname}-${pkgver}.tar.gz)
+md5sums=('05150840987176d5e8438066b80add1a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --sbindir=/sbin
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/core/kbd/PKGBUILD b/core/kbd/PKGBUILD
new file mode 100644
index 000000000..c3be3a65b
--- /dev/null
+++ b/core/kbd/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 82650 2010-06-15 05:16:19Z allan $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kbd
+pkgver=1.15.2
+pkgrel=1
+pkgdesc="Keytable files and keyboard utilities"
+arch=('i686' 'x86_64')
+url="ftp://ftp.altlinux.org/pub/people/legion/kbd/"
+license=('GPL')
+depends=('glibc')
+source=(ftp://ftp.altlinux.org/pub/people/legion/kbd/${pkgname}-${pkgver}.tar.gz)
+md5sums=('77d0b51454522bc6c170bbdc6e31202a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # rename keymap files with the same names
+ # this is needed because when only name of keymap is specified
+ # loadkeys loads the first keymap it can find, which is bad (see FS#13837)
+ # this should be removed when upstream adopts the change
+ mv data/keymaps/i386/qwertz/cz{,-qwertz}.map
+ mv data/keymaps/i386/olpc/es{,-olpc}.map
+ mv data/keymaps/i386/olpc/pt{,-olpc}.map
+ mv data/keymaps/i386/dvorak/no{,-dvorak}.map
+ mv data/keymaps/i386/fgGIod/trf{,-fgGIod}.map
+
+ ./configure --prefix=/usr --datadir=/usr/share/kbd --mandir=/usr/share/man
+ make KEYCODES_PROGS=yes RESIZECONS_PROGS=yes || return 1
+ make KEYCODES_PROGS=yes RESIZECONS_PROGS=yes DESTDIR=${pkgdir} install
+
+ # this is needed because initscripts call /bin/loadkeys
+ # remove this when next versions of kbd
+ # and initscripts with /usr/bin/loadkeys usage will be released
+ mkdir ${pkgdir}/bin
+ ln -s /usr/bin/loadkeys ${pkgdir}/bin/loadkeys
+}
diff --git a/core/less/PKGBUILD b/core/less/PKGBUILD
new file mode 100644
index 000000000..c84d7d787
--- /dev/null
+++ b/core/less/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 100030 2010-11-20 00:42:11Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=less
+pkgver=436
+pkgrel=2
+pkgdesc="A terminal based program for viewing text files"
+license=('GPL3')
+arch=('i686' 'x86_64')
+url="http://www.greenwoodsoftware.com/less"
+groups=('base')
+depends=('ncurses' 'pcre')
+source=(http://www.greenwoodsoftware.com/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('817bf051953ad2dea825a1cdf460caa4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --with-regex=pcre
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=${pkgdir}/usr install
+ install -dm755 ${pkgdir}/bin
+ mv ${pkgdir}/usr/bin/${pkgname} ${pkgdir}/bin
+}
diff --git a/core/less/zless b/core/less/zless
new file mode 100644
index 000000000..93d560bc5
--- /dev/null
+++ b/core/less/zless
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+: ${PAGER=less}
+export PAGER
+
+PATH="/usr/bin:$PATH"
+export PATH
+
+exec zmore ${1+"$@"}
diff --git a/core/libarchive/PKGBUILD b/core/libarchive/PKGBUILD
new file mode 100644
index 000000000..e01ef2861
--- /dev/null
+++ b/core/libarchive/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 96831 2010-10-25 06:09:56Z pierre $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+pkgname=libarchive
+pkgver=2.8.4
+pkgrel=2
+pkgdesc="library that can create and read several streaming archive formats"
+arch=('i686' 'x86_64')
+url="http://libarchive.googlecode.com/"
+license=('BSD')
+depends=('zlib' 'bzip2' 'xz>=5.0.0' 'acl' 'openssl>=1.0.0' 'expat')
+source=("http://libarchive.googlecode.com/files/libarchive-${pkgver}.tar.gz")
+md5sums=('83b237a542f27969a8d68ac217dc3796')
+sha256sums=('86cffa3eaa28d3116f5d0b20284026c3762cf4a2b52b9844df2b494d4a89f688')
+
+# pacman.static build fails unless we keep the libtool files (or unless we link
+# the missing symbols inside the libarchive .a static lib, but that is dirty)
+options=('libtool')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --without-xml2
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/libarchive/COPYING
+}
diff --git a/core/libcap/PKGBUILD b/core/libcap/PKGBUILD
new file mode 100644
index 000000000..4a30e4009
--- /dev/null
+++ b/core/libcap/PKGBUILD
@@ -0,0 +1,26 @@
+#$Id: PKGBUILD 107283 2011-01-23 06:26:22Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=libcap
+pkgver=2.20
+pkgrel=1
+pkgdesc="POSIX 1003.1e capabilities"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/linux/libs/security/linux-privs/"
+license=('GPL')
+depends=('glibc' 'attr')
+source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8ce6905851ffdde287d00d8269775ade')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=/usr DESTDIR=${pkgdir} LIBDIR=${pkgdir}/lib RAISE_SETFCAP=no install
+ rm ${pkgdir}/lib/*.a
+ chmod 755 ${pkgdir}/lib/libcap.so.${pkgver}
+}
diff --git a/core/libedit/PKGBUILD b/core/libedit/PKGBUILD
new file mode 100644
index 000000000..fb9152883
--- /dev/null
+++ b/core/libedit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 112952 2011-03-07 23:45:40Z bisson $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Roman Cheplyaka <roma@ro-che.info>
+
+pkgname=libedit
+pkgver=20110227_3.0
+pkgrel=1
+pkgdesc='Command line editor library providing generic line editing, history, and tokenization functions'
+arch=('i686' 'x86_64')
+url='http://www.thrysoee.dk/editline/'
+license=('BSD')
+depends=('ncurses')
+source=("http://www.thrysoee.dk/editline/libedit-${pkgver/_/-}.tar.gz")
+sha1sums=('afe84b9e16fc903d5a3eceda90013d7ad03db794')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}/$pkgname-${pkgver/_/-}"
+ ./configure --prefix=/usr --enable-widec --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-${pkgver/_/-}"
+ make prefix="$pkgdir"/usr install
+
+ cp "$pkgdir"/usr/share/man/man3/editline.3 "$pkgdir"/usr/share/man/man3/el.3
+ install -D -m0644 COPYING "$pkgdir"/usr/share/licenses/libedit/LICENSE
+}
diff --git a/core/libevent/PKGBUILD b/core/libevent/PKGBUILD
new file mode 100644
index 000000000..61c39c3a7
--- /dev/null
+++ b/core/libevent/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 109275 2011-02-07 15:11:49Z ibiru $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=libevent
+pkgver=2.0.10
+pkgrel=1
+pkgdesc="An event notification library"
+license=('GPL2')
+arch=('i686' 'x86_64')
+url="http://www.monkey.org/~provos/libevent/"
+depends=('openssl')
+source=("http://www.monkey.org/~provos/libevent-$pkgver-stable.tar.gz")
+options=('!libtool')
+md5sums=('a37401d26cbbf28185211d582741a3d4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+ sed -i 's#python#python2#' event_rpcgen.py
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}-stable"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/libfetch/Makefile b/core/libfetch/Makefile
new file mode 100644
index 000000000..53bcee9c4
--- /dev/null
+++ b/core/libfetch/Makefile
@@ -0,0 +1,89 @@
+prefix = /usr
+DESTDIR =
+DEBUG = false
+FETCH_WITH_INET6 = true
+FETCH_WITH_OPENSSL = true
+
+WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \
+ -Wpointer-arith -Wcast-align
+CFLAGS = -O2 -pipe -I. -fPIC $(WARNINGS) \
+ -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES
+
+CFLAGS += -DFTP_COMBINE_CWDS -DNETBSD
+
+ifeq ($(strip $(FETCH_WITH_INET6)), true)
+CFLAGS+= -DINET6
+endif
+
+ifeq ($(strip $(FETCH_WITH_OPENSSL)), true)
+CFLAGS+= -DWITH_SSL
+LDFLAGS= -lssl -lcrypto
+endif
+
+ifeq ($(strip $(DEBUG)), true)
+CFLAGS += -g -DDEBUG
+else
+CFLAGS += -UDEBUG
+endif
+
+CC = gcc
+LD = gcc
+AR = ar
+RANLIB = ranlib
+INSTALL = install -c -D
+
+OBJS= fetch.o common.o ftp.o http.o file.o
+INCS= fetch.h common.h
+GEN = ftperr.h httperr.h
+MAN = libdownload.3
+
+#pretty print!
+E = @/bin/echo
+Q = @
+
+all: libfetch.so libfetch.a
+.PHONY: all
+
+%.o: %.c $(INCS) $(GEN)
+ $(E) " compile " $@
+ $(Q) $(CC) $(CFLAGS) -c $<
+
+ftperr.h: ftp.errors Makefile errlist.sh
+ $(E) " generate " $@
+ $(Q) ./errlist.sh ftp_errlist FTP ftp.errors > $@
+
+httperr.h: http.errors Makefile errlist.sh
+ $(E) " generate " $@
+ $(Q) ./errlist.sh http_errlist HTTP http.errors > $@
+
+libfetch.so: $(GEN) $(INCS) $(OBJS)
+ $(E) " build " $@
+ $(Q) rm -f $@
+ $(Q) $(LD) $(LDFLAGS) *.o -shared -o $@
+ $(E) " built with: " $(CFLAGS)
+
+libfetch.a: $(GEN) $(INCS) $(OBJS)
+ $(E) " build " $@
+ $(Q) rm -f $@
+ $(Q) $(AR) rcs $@ *.o
+ $(Q) $(RANLIB) $@
+ $(E) " built with: " $(CFLAGS)
+
+clean:
+ $(E) " clean "
+ $(Q) rm -f libfetch.so libfetch.a *.o $(GEN)
+.PHONY: clean
+
+install: all
+ $(Q) $(INSTALL) -m 755 libfetch.so $(DESTDIR)$(prefix)/lib/libfetch.so
+ $(Q) $(INSTALL) -m 644 libfetch.a $(DESTDIR)$(prefix)/lib/libfetch.a
+ $(Q) $(INSTALL) -m 644 fetch.h $(DESTDIR)$(prefix)/include/fetch.h
+ $(Q) $(INSTALL) -m 644 fetch.3 $(DESTDIR)$(prefix)/share/man/man3/fetch.3
+.PHONY: install
+
+uninstall:
+ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.so
+ $(Q) rm -f $(DESTDIR)$(prefix)/lib/libfetch.a
+ $(Q) rm -f $(DESTDIR)$(prefix)/include/fetch.h
+ $(Q) rm -f $(DESTDIR)$(prefix)/share/man/man3/fetch.3
+.PHONY: uninstall
diff --git a/core/libfetch/PKGBUILD b/core/libfetch/PKGBUILD
new file mode 100644
index 000000000..641e7d42c
--- /dev/null
+++ b/core/libfetch/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id$
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Xavier Chantry <shiningxc@gmail.com>
+
+pkgname=libfetch
+pkgver=2.33
+pkgrel=1
+pkgdesc="URL based download library"
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('openssl>=1.0.0')
+url="http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/net/libfetch/"
+source=(Makefile
+ ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('5167d18db7660228e75290fc7d25fe56'
+ 'a176b94f7f30344ef8a71c047ca2136b')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+# source PKGBUILD && mksource
+mksource() {
+ export CVSROOT=:pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
+ D=pkgsrc/net/libfetch
+ [ -d "$D" ] && cvs up "$D" || cvs co "$D"
+ pushd "$D"
+ dirname=$(sed -n 's/DISTNAME=.*\(libfetch-.*$\)/\1/p' Makefile)
+ cp -r files $dirname
+ tar -czv --exclude=CVS -f ../../../$dirname.tar.gz $dirname
+ rm -r $dirname
+ popd
+}
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cp $srcdir/Makefile .
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ licdir=$pkgdir/usr/share/licenses/libfetch/
+ mkdir -p $licdir
+ sed -n -e '/Copyright (c)/,/SUCH DAMAGE\./p' common.c | cut -c '4-' > $licdir/LICENSE
+}
diff --git a/core/libgcrypt/PKGBUILD b/core/libgcrypt/PKGBUILD
new file mode 100644
index 000000000..c26270001
--- /dev/null
+++ b/core/libgcrypt/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 85547 2010-07-15 21:16:57Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libgcrypt
+pkgver=1.4.6
+pkgrel=1
+pkgdesc="a general purpose crypto library based on the code used"
+arch=(i686 x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('libgpg-error>=1.7')
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${pkgname}-${pkgver}.tar.bz2
+)
+md5sums=('dbf99425a4fe9217c84ce3a35d938634')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # keep static library for , needed for cryptsetup
+ ./configure --prefix=/usr --disable-padlock-support
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Move dynamic libraries to /lib
+ install -d -m755 "${pkgdir}"/lib/ || return 1
+ mv "${pkgdir}"/usr/lib/libgcrypt.so* "${pkgdir}"/lib/ || return 1
+ ln -sf /lib/libgcrypt.so "${pkgdir}"/usr/lib/libgcrypt.so || return 1
+}
diff --git a/core/libgcrypt/libgcrypt.install b/core/libgcrypt/libgcrypt.install
new file mode 100644
index 000000000..81547f57f
--- /dev/null
+++ b/core/libgcrypt/libgcrypt.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(gcrypt.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/libgpg-error/PKGBUILD b/core/libgpg-error/PKGBUILD
new file mode 100644
index 000000000..ed2a30da9
--- /dev/null
+++ b/core/libgpg-error/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 87301 2010-08-12 05:22:29Z andyrtr $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+pkgname=libgpg-error
+pkgver=1.9
+pkgrel=2
+pkgdesc="Support library for libgcrypt"
+arch=(i686 x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('glibc' 'sh')
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2)
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('521b98aa9395e7eaf0ef2236233a0796')
+
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}/" install
+
+ # Move dynamic libraries to /lib
+ install -d -m755 "${pkgdir}"/lib/
+ mv "${pkgdir}"/usr/lib/libgpg-error.so* "${pkgdir}"/lib/
+ ln -sf /lib/libgpg-error.so "${pkgdir}"/usr/lib/libgpg-error.so
+}
diff --git a/core/libgssglue/PKGBUILD b/core/libgssglue/PKGBUILD
new file mode 100644
index 000000000..85ed0d2e0
--- /dev/null
+++ b/core/libgssglue/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 102146 2010-12-06 09:49:56Z allan $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libgssglue
+pkgver=0.1
+pkgrel=3
+pkgdesc="Exports a gssapi interface which calls other random gssapi libraries"
+arch=('i686' 'x86_64')
+url="http://www.citi.umich.edu/projects/nfsv4/linux/"
+license=('BSD')
+depends=('glibc')
+makedepends=('pkgconfig' 'autoconf')
+backup=(etc/gssapi_mech.conf)
+options=('!libtool')
+source=(http://www.citi.umich.edu/projects/nfsv4/linux/$pkgname/$pkgname-$pkgver.tar.gz
+ gssapi_mech.conf)
+md5sums=('ce1b4c758e6de01b712d154c5c97e540'
+ '234b9cca75a33af98eda3f1683756879')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir/" install
+
+ # Configuration
+ install -Dm644 "$srcdir"/gssapi_mech.conf "$pkgdir/"etc/gssapi_mech.conf
+ # install license
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/libgssglue/COPYING
+}
diff --git a/core/libgssglue/gssapi_mech.conf b/core/libgssglue/gssapi_mech.conf
new file mode 100644
index 000000000..f71aca08e
--- /dev/null
+++ b/core/libgssglue/gssapi_mech.conf
@@ -0,0 +1,22 @@
+# Example /etc/gssapi_mech.conf file
+#
+# GSSAPI Mechanism Definitions
+#
+# This configuration file determines which GSS-API mechanisms
+# the gssd code should use
+#
+# NOTE:
+# The initiaiization function "mechglue_internal_krb5_init"
+# is used for the MIT krb5 gssapi mechanism. This special
+# function name indicates that an internal function should
+# be used to determine the entry points for the MIT gssapi
+# mechanism funtions.
+#
+# library initialization function
+# ================================ ==========================
+# The MIT K5 gssapi library, use special function for initialization.
+#/usr/lib/libgssapi_krb5.so mechglue_internal_krb5_init
+/usr/lib/libgssapi.so mechglue_internal_krb5_init
+#
+# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize.
+# /usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize
diff --git a/core/libldap/PKGBUILD b/core/libldap/PKGBUILD
new file mode 100644
index 000000000..1461603b5
--- /dev/null
+++ b/core/libldap/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 109954 2011-02-14 13:17:18Z andrea $
+# Maintainer:
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=libldap
+pkgver=2.4.24
+pkgrel=1
+pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.openldap.org/"
+backup=(etc/openldap/ldap.conf)
+depends=('libsasl' 'openssl')
+makedepends=('tcp_wrappers' 'groff')
+options=('!libtool')
+source=("ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-${pkgver}.tgz"
+ 'ntlm.patch')
+md5sums=('116fe1e23a7b67686d5e62274367e6c0'
+ 'dfa9eb6f2fd9d0a3dab0e1860923489e')
+
+build() {
+ cd ${srcdir}/openldap-${pkgver}
+
+ patch -Np1 -i ${srcdir}/ntlm.patch
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/sbin \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var/lib/openldap \
+ --enable-crypt \
+ --enable-dynamic \
+ --with-threads \
+ --enable-wrappers \
+ --enable-spasswd \
+ --with-cyrus-sasl \
+ --disable-bdb \
+ --disable-hdb
+
+ cd include
+ make
+
+ cd ../libraries
+ make depend
+ make
+
+ cd ../doc/man/man3
+ make
+
+ cd ../man5
+ make
+}
+
+package() {
+ cd ${srcdir}/openldap-${pkgver}
+
+ cd include
+ make DESTDIR=${pkgdir} install
+
+ cd ../libraries
+ make DESTDIR=${pkgdir} install
+
+ cd ../doc/man/man3
+ make DESTDIR=${pkgdir} install
+
+ cd ../man5
+ install -Dm644 ldap.conf.5.tmp \
+ ${pkgdir}/usr/share/man/man5/ldap.conf.5
+
+ # get rid of duplicate default conf files
+ rm ${pkgdir}/etc/openldap/*.default
+
+ ln -sf liblber.so ${pkgdir}/usr/lib/liblber.so.2
+ ln -sf libldap.so ${pkgdir}/usr/lib/libldap.so.2
+
+ install -Dm644 ${srcdir}/openldap-${pkgver}/LICENSE \
+ ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/core/libldap/ntlm.patch b/core/libldap/ntlm.patch
new file mode 100644
index 000000000..a4fe4d45a
--- /dev/null
+++ b/core/libldap/ntlm.patch
@@ -0,0 +1,230 @@
+Patch from evolution-exchange (2.10.3). The ldap_ntlm_bind function is
+actually called by evolution-data-server, checked at version 1.12.2.
+Without this patch, the Exchange addressbook integration uses simple binds
+with cleartext passwords.
+
+Russ checked with openldap-software for upstream's opinion on this patch
+on 2007-12-21. Upstream had never received it as a patch submission and
+given that it's apparently only for older Exchange servers that can't do
+SASL and DIGEST-MD5, it's not very appealing.
+
+Bug#457374 filed against evolution-data-server asking if this support is
+still required on 2007-12-21.
+
+Index: trunk/include/ldap.h
+===================================================================
+--- trunk.orig/include/ldap.h
++++ trunk/include/ldap.h
+@@ -2461,5 +2461,25 @@
+ LDAPControl **ctrls,
+ LDAPDerefRes **drp ));
+
++/*
++ * hacks for NTLM
++ */
++#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
++#define LDAP_AUTH_NTLM_RESPONSE ((ber_tag_t) 0x8bU)
++LDAP_F( int )
++ldap_ntlm_bind LDAP_P((
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp ));
++LDAP_F( int )
++ldap_parse_ntlm_bind_result LDAP_P((
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge));
++
+ LDAP_END_DECL
+ #endif /* _LDAP_H */
+Index: trunk/libraries/libldap/ntlm.c
+===================================================================
+--- /dev/null
++++ trunk/libraries/libldap/ntlm.c
+@@ -0,0 +1,138 @@
++/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */
++/*
++ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
++ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
++ */
++
++/* Mostly copied from sasl.c */
++
++#include "portable.h"
++
++#include <stdlib.h>
++#include <stdio.h>
++
++#include <ac/socket.h>
++#include <ac/string.h>
++#include <ac/time.h>
++#include <ac/errno.h>
++
++#include "ldap-int.h"
++
++int
++ldap_ntlm_bind(
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp )
++{
++ BerElement *ber;
++ int rc;
++ ber_int_t id;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_ntlm_bind\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( msgidp != NULL );
++
++ if( msgidp == NULL ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ /* create a message to send */
++ if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ assert( LBER_VALID( ber ) );
++
++ LDAP_NEXT_MSGID( ld, id );
++ rc = ber_printf( ber, "{it{istON}" /*}*/,
++ id, LDAP_REQ_BIND,
++ ld->ld_version, dn, tag,
++ cred );
++
++ /* Put Server Controls */
++ if( ldap_int_put_controls( ld, sctrls, ber ) != LDAP_SUCCESS ) {
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
++ ld->ld_errno = LDAP_ENCODING_ERROR;
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ /* send the message */
++ *msgidp = ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber, id );
++
++ if(*msgidp < 0)
++ return ld->ld_errno;
++
++ return LDAP_SUCCESS;
++}
++
++int
++ldap_parse_ntlm_bind_result(
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge)
++{
++ ber_int_t errcode;
++ ber_tag_t tag;
++ BerElement *ber;
++ ber_len_t len;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_parse_ntlm_bind_result\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( res != NULL );
++
++ if ( ld == NULL || res == NULL ) {
++ return LDAP_PARAM_ERROR;
++ }
++
++ if( res->lm_msgtype != LDAP_RES_BIND ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ if ( ld->ld_error ) {
++ LDAP_FREE( ld->ld_error );
++ ld->ld_error = NULL;
++ }
++ if ( ld->ld_matched ) {
++ LDAP_FREE( ld->ld_matched );
++ ld->ld_matched = NULL;
++ }
++
++ /* parse results */
++
++ ber = ber_dup( res->lm_ber );
++
++ if( ber == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ tag = ber_scanf( ber, "{ioa" /*}*/,
++ &errcode, challenge, &ld->ld_error );
++ ber_free( ber, 0 );
++
++ if( tag == LBER_ERROR ) {
++ ld->ld_errno = LDAP_DECODING_ERROR;
++ return ld->ld_errno;
++ }
++
++ ld->ld_errno = errcode;
++
++ return( ld->ld_errno );
++}
++
+Index: trunk/libraries/libldap/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap/Makefile.in
++++ trunk/libraries/libldap/Makefile.in
+@@ -27,7 +27,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c
+
+ OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \
+@@ -40,7 +40,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo
+
+ LDAP_INCDIR= ../../include
+Index: trunk/libraries/libldap_r/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap_r/Makefile.in
++++ trunk/libraries/libldap_r/Makefile.in
+@@ -29,7 +29,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c
+ SRCS = threads.c rdwr.c rmutex.c tpool.c rq.c \
+ thr_posix.c thr_cthreads.c thr_thr.c thr_lwp.c thr_nt.c \
+@@ -47,7 +47,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo
+
+ LDAP_INCDIR= ../../include
diff --git a/core/libmpc/PKGBUILD b/core/libmpc/PKGBUILD
new file mode 100644
index 000000000..f06279f85
--- /dev/null
+++ b/core/libmpc/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 111157 2011-02-24 12:31:09Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=libmpc
+pkgver=0.9
+pkgrel=1
+pkgdesc="Library for the arithmetic of complex numbers with arbitrarily high precision"
+arch=('i686' 'x86_64')
+url="http://www.multiprecision.org/"
+license=('LGPL')
+depends=('mpfr>=3.0.0')
+options=('!libtool')
+install=libmpc.install
+source=(http://www.multiprecision.org/mpc/download/mpc-${pkgver/_/-}.tar.gz
+ libmpc-0.9-configure_cflags_egrep_issue.patch)
+md5sums=('0d6acab8d214bd7d1fbbc593e83dd00d'
+ '35d5bb02dc6c1153e581b7c34a738a08')
+
+build() {
+ cd "${srcdir}/mpc-${pkgver}"
+
+ # http://lists.gforge.inria.fr/pipermail/mpc-discuss/2011-February/000805.html
+ patch -Np1 -i $srcdir/libmpc-0.9-configure_cflags_egrep_issue.patch
+ autoreconf
+
+ ./configure --prefix=/usr
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/mpc-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ mv ${pkgdir}/usr/share/info/{mpc,libmpc}.info
+}
diff --git a/core/libmpc/libmpc-0.9-configure_cflags_egrep_issue.patch b/core/libmpc/libmpc-0.9-configure_cflags_egrep_issue.patch
new file mode 100644
index 000000000..3bf324728
--- /dev/null
+++ b/core/libmpc/libmpc-0.9-configure_cflags_egrep_issue.patch
@@ -0,0 +1,63 @@
+--- trunk/configure.ac 2011/02/21 12:18:31 932
++++ trunk/configure.ac 2011/02/21 16:41:09 936
+@@ -33,7 +33,7 @@
+ AC_CANONICAL_HOST
+ AC_CONFIG_MACRO_DIR([m4])
+
+-dnl Extra arguments to configure
++# Extra arguments to configure
+ AC_ARG_WITH([mpfr_include],
+ [AC_HELP_STRING([--with-mpfr-include=DIR],
+ [MPFR include directory])],
+@@ -85,18 +85,19 @@
+ )
+
+
+-dnl Setup CC and CFLAGS
++# Setup CC and CFLAGS
++AC_PROG_CC
++AC_LANG(C)
+
+-dnl Check for user specification of CC or CFLAGS
++# Set up LibTool
++AC_PROG_LIBTOOL
++
++# Check for user specification of CC or CFLAGS
+ if test -n "$CFLAGS" || test -n "$CC" ; then
+ user_redefine_cc=yes
+ fi
+
+-# Check for programs
+-AC_PROG_CC
+-AC_LANG(C)
+-
+-dnl Check GMP Header
++# Check GMP Header
+ AC_MSG_CHECKING(for gmp.h)
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #include "gmp.h"
+@@ -105,22 +106,19 @@
+ AC_MSG_ERROR([gmp.h can't be found, or is unusable.])
+ ])
+
+-dnl Check for GMP CFLAGS in gmp.h
++# Check for GMP CFLAGS in gmp.h
+ if test -z "$user_redefine_cc" ; then
+ MPC_GMP_CC_CFLAGS
+ fi
+
+
+-dnl Configs for Windows DLLs
++# Configs for Windows DLLs
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ MPC_WINDOWS
+ esac
+
+
+-dnl Finally set up LibTool
+-AC_PROG_LIBTOOL
+-
+ # Checks for header files.
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS([complex.h locale.h inttypes.h stdint.h limits.h unistd.h sys/time.h])
diff --git a/core/libmpc/libmpc.install b/core/libmpc/libmpc.install
new file mode 100644
index 000000000..b0718c745
--- /dev/null
+++ b/core/libmpc/libmpc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libmpc.info)
+
+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/core/libnl/PKGBUILD b/core/libnl/PKGBUILD
new file mode 100644
index 000000000..2c835283b
--- /dev/null
+++ b/core/libnl/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 77938 2010-04-19 05:37:53Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libnl
+pkgver=1.1
+pkgrel=2
+pkgdesc="Library for applications dealing with netlink sockets"
+arch=('i686' 'x86_64')
+url="http://www.infradead.org/~tgr/libnl/"
+license=('GPL')
+depends=('glibc')
+source=(ftp://ftp.archlinux.org/other/libnl/${pkgname}-${pkgver}.tar.gz
+ fix-compilation.patch)
+md5sums=('ae970ccd9144e132b68664f98e7ceeb1'
+ 'e1f5e82c8aa1b3ad025c7b588178de1e')
+
+build() {
+ cd ${srcdir}/libnl-${pkgver}
+ patch -Np1 -i ${srcdir}/fix-compilation.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/libnl-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/core/libnl/fix-compilation.patch b/core/libnl/fix-compilation.patch
new file mode 100644
index 000000000..891562a39
--- /dev/null
+++ b/core/libnl/fix-compilation.patch
@@ -0,0 +1,10 @@
+--- libnl-1.1.orig/include/netlink-local.h 2008-01-14 16:48:45.000000000 +0100
++++ libnl-1.1/include/netlink-local.h 2009-06-26 11:15:33.186011844 +0200
+@@ -26,6 +26,7 @@
+ #include <sys/socket.h>
+ #include <inttypes.h>
+ #include <assert.h>
++#include <limits.h>
+
+ #include <arpa/inet.h>
+ #include <netdb.h>
diff --git a/core/libpcap/PKGBUILD b/core/libpcap/PKGBUILD
new file mode 100644
index 000000000..845ff13bf
--- /dev/null
+++ b/core/libpcap/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 103439 2010-12-19 15:40:24Z andyrtr $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=libpcap
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="A system-independent interface for user-level packet capture"
+arch=('i686' 'x86_64')
+url="http://www.tcpdump.org/"
+license=('BSD')
+depends=('glibc' 'libnl' 'sh')
+makedepends=('flex')
+source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz)
+sha256sums=('508cca15547e55d1318498b838456a21770c450beb2dc7d7d4a96d90816e5a85')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-ipv6
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -d -m755 ${pkgdir}/usr/bin
+ make DESTDIR=${pkgdir} install
+ # remove static library
+ rm -rf ${pkgdir}/usr/lib/libpcap.a
+
+ # backwards compatibility, programs often look for net/bpf.h
+ mkdir -p ${pkgdir}/usr/include/net
+ cd ${pkgdir}/usr/include/net
+ ln -s ../pcap-bpf.h bpf.h
+
+ #install the license
+ install -D -m644 ${srcdir}/$pkgname-$pkgver/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/core/librpcsecgss/PKGBUILD b/core/librpcsecgss/PKGBUILD
new file mode 100644
index 000000000..56cfae7cf
--- /dev/null
+++ b/core/librpcsecgss/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 109603 2011-02-11 00:48:10Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andrew Krawchyk <krawch_a@denison.edu>, Marco Lima <cipparello gmail com>
+
+pkgname=librpcsecgss
+pkgver=0.19
+pkgrel=4
+pkgdesc="Library for RPCSECGSS support"
+arch=('i686' 'x86_64')
+url="http://www.citi.umich.edu/projects/nfsv4/linux/"
+license=('GPL')
+depends=('glibc' 'heimdal')
+makedepends=('pkg-config' 'autoconf')
+options=('!libtool')
+source=("http://www.citi.umich.edu/projects/nfsv4/linux/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ librpcsecgss-0.18-heimdal.patch)
+md5sums=('b45ed565bdc3099023aa35830ec92997'
+ '0cfe088551d5776f5bc08c1741a34346')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Patch from gentoo for heimdal compatibility Bug #231395
+ # http://bugs.gentoo.org/show_bug.cgi?id=231395
+ patch -Np1 -i $srcdir/librpcsecgss-0.18-heimdal.patch
+
+ rm -f config.guess config.sub ltmain.sh
+ autoreconf -i
+
+ GSSAPI_CFLAGS='-I/usr/include/gssapi' \
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/core/librpcsecgss/librpcsecgss-0.18-heimdal.patch b/core/librpcsecgss/librpcsecgss-0.18-heimdal.patch
new file mode 100644
index 000000000..deb039123
--- /dev/null
+++ b/core/librpcsecgss/librpcsecgss-0.18-heimdal.patch
@@ -0,0 +1,33 @@
+diff -NaurwB librpcsecgss-0.18.orig/configure.in librpcsecgss-0.18/configure.in
+--- librpcsecgss-0.18.orig/configure.in 2008-04-09 00:05:40.000000000 +0200
++++ librpcsecgss-0.18/configure.in 2008-06-12 19:05:51.000000000 +0200
+@@ -12,10 +12,15 @@
+ AC_PROG_RANLIB
+
+ # Checks for libraries.
+-PKG_CHECK_MODULES([GSSGLUE], [libgssglue >= 0.1], [],
++PKG_CHECK_MODULES([GSSGLUE], [libgssglue >= 0.1],
++ [echo GSSGLUE found; GSSAPI_IMPLEMENTATION=libgssglue],
++ [PKG_CHECK_MODULES([GSSGLUE], [heimdal-gssapi],
++ [echo HEIMDAL found; GSSAPI_IMPLEMENTATION=heimdal-gssapi],
+ [AC_MSG_ERROR([Unable to locate information required to use libgssglue.
+ If you have pkgconfig installed, you might try setting environment
+- variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])])
++ variable PKG_CONFIG_PATH to /usr/local/lib/pkgconfig])])])
++
++AC_SUBST([GSSAPI_IMPLEMENTATION])
+
+ # Checks for header files.
+ AC_HEADER_STDC
+diff -NaurwB librpcsecgss-0.18.orig/librpcsecgss.pc.in librpcsecgss-0.18/librpcsecgss.pc.in
+--- librpcsecgss-0.18.orig/librpcsecgss.pc.in 2007-09-06 17:39:04.000000000 +0200
++++ librpcsecgss-0.18/librpcsecgss.pc.in 2008-06-12 19:06:40.000000000 +0200
+@@ -5,7 +5,7 @@
+
+ Name: librpcsecgss
+ Description: Library that implements rpcsec_gss interface.
+-Requires: libgssglue
++Requires: @GSSAPI_IMPLEMENTATION@
+ Version: @PACKAGE_VERSION@
+ Libs: -L@libdir@ -lrpcsecgss
+ Cflags: -I@includedir@/rpcsecgss
diff --git a/core/libsasl/PKGBUILD b/core/libsasl/PKGBUILD
new file mode 100644
index 000000000..e5ba8e935
--- /dev/null
+++ b/core/libsasl/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 96213 2010-10-19 11:41:43Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libsasl
+pkgver=2.1.23
+pkgrel=5
+pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
+arch=('i686' 'x86_64')
+url="http://cyrusimap.web.cmu.edu/downloads.html#sasl"
+license=('custom')
+depends=('db>=4.8')
+optdepends=('cyrus-sasl: saslauthd'
+ 'cyrus-sasl-plugins: authentication plugins other than sasldb')
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
+ cyrus-sasl-2.1.19-checkpw.c.patch
+ cyrus-sasl-db.patch)
+options=('!makeflags')
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ 'e27ddff076342e7a3041c4759817d04b'
+ '0658201497aad359c0d66b0ab8032859')
+
+build() {
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ patch -Np0 -i ${srcdir}/cyrus-sasl-2.1.19-checkpw.c.patch
+ patch -Np1 -i ${srcdir}/cyrus-sasl-db.patch
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-anon \
+ --disable-cram \
+ --disable-digest \
+ --disable-gssapi \
+ --enable-login \
+ --disable-otp \
+ --enable-plain \
+ --mandir=/usr/share/man
+ for dir in include lib sasldb plugins utils; do
+ pushd ${dir}
+ make
+ popd
+ done
+}
+
+package() {
+ cd "${srcdir}/cyrus-sasl-${pkgver}"
+ for dir in include lib sasldb plugins utils; do
+ pushd ${dir} || return 1
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+
+ # install license
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/core/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch b/core/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch
new file mode 100644
index 000000000..f7bf44b79
--- /dev/null
+++ b/core/libsasl/cyrus-sasl-2.1.19-checkpw.c.patch
@@ -0,0 +1,170 @@
+diff -ur ../cyrus-sasl-2.1.19.orig/lib/Makefile.in ./lib/Makefile.in
+--- ../cyrus-sasl-2.1.19.orig/lib/Makefile.in 2004-07-02 21:40:15.000000000 +0200
++++ ./lib/Makefile.in 2004-09-07 13:21:22.746680576 +0200
+@@ -120,7 +120,7 @@
+ JAVA_TRUE = @JAVA_TRUE@
+ LDFLAGS = @LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
++LIBS = -lcrypt @LIBS@
+ LIBTOOL = @LIBTOOL@
+ LIB_CRYPT = @LIB_CRYPT@
+ LIB_DES = @LIB_DES@
+diff -ur ../cyrus-sasl-2.1.19.orig/lib/checkpw.c ./lib/checkpw.c
+--- ../cyrus-sasl-2.1.19.orig/lib/checkpw.c 2004-03-17 14:58:13.000000000 +0100
++++ ./lib/checkpw.c 2004-09-07 13:21:12.645916147 +0200
+@@ -94,6 +94,23 @@
+ # endif
+ #endif
+
++/******************************
++ * crypt(3) patch start *
++ ******************************/
++char *crypt(const char *key, const char *salt);
++
++/* cleartext password formats */
++#define PASSWORD_FORMAT_CLEARTEXT 1
++#define PASSWORD_FORMAT_CRYPT 2
++#define PASSWORD_FORMAT_CRYPTTRAD 3
++#define PASSWORD_SALT_BUF_LEN 22
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format);
++
++/******************************
++ * crypt(3) patch stop *
++ ******************************/
+
+ /* we store the following secret to check plaintext passwords:
+ *
+@@ -143,7 +160,51 @@
+ "*cmusaslsecretPLAIN",
+ NULL };
+ struct propval auxprop_values[3];
+-
++
++ /******************************
++ * crypt(3) patch start *
++ * for password format check *
++ ******************************/
++ sasl_getopt_t *getopt;
++ void *context;
++ const char *p = NULL;
++ /**
++ * MD5: 12 char salt
++ * BLOWFISH: 16 char salt
++ */
++ char salt[PASSWORD_SALT_BUF_LEN];
++ int password_format;
++
++ /* get password format from auxprop configuration */
++ if (_sasl_getcallback(conn, SASL_CB_GETOPT, &getopt, &context) == SASL_OK) {
++ getopt(context, NULL, "password_format", &p, NULL);
++ }
++
++ /* set password format */
++ if (p) {
++ /*
++ memset(pass_format_str, '\0', PASSWORD_FORMAT_STR_LEN);
++ strncpy(pass_format_str, p, (PASSWORD_FORMAT_STR_LEN - 1));
++ */
++ /* modern, modular crypt(3) */
++ if (strncmp(p, "crypt", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPT;
++ /* traditional crypt(3) */
++ else if (strncmp(p, "crypt_trad", 11) == 0)
++ password_format = PASSWORD_FORMAT_CRYPTTRAD;
++ /* cleartext password */
++ else
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ } else {
++ /* cleartext password */
++ password_format = PASSWORD_FORMAT_CLEARTEXT;
++ }
++
++ /******************************
++ * crypt(3) patch stop *
++ * for password format check *
++ ******************************/
++
+ if (!conn || !userstr)
+ return SASL_BADPARAM;
+
+@@ -180,14 +241,31 @@
+ goto done;
+ }
+
+- /* At the point this has been called, the username has been canonified
+- * and we've done the auxprop lookup. This should be easy. */
+- if(auxprop_values[0].name
+- && auxprop_values[0].values
+- && auxprop_values[0].values[0]
+- && !strcmp(auxprop_values[0].values[0], passwd)) {
+- /* We have a plaintext version and it matched! */
+- return SASL_OK;
++
++ /******************************
++ * crypt(3) patch start *
++ ******************************/
++
++ /* get salt */
++ _sasl_get_salt(salt, (char *) auxprop_values[0].values[0], password_format);
++
++ /* crypt(3)-ed password? */
++ if (password_format != PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare password */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(crypt(passwd, salt), auxprop_values[0].values[0]) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ }
++ else if (password_format == PASSWORD_FORMAT_CLEARTEXT) {
++ /* compare passwords */
++ if (auxprop_values[0].name && auxprop_values[0].values && auxprop_values[0].values[0] && strcmp(auxprop_values[0].values[0], passwd) == 0)
++ return SASL_OK;
++ else
++ ret = SASL_BADAUTH;
++ /******************************
++ * crypt(3) patch stop *
++ ******************************/
+ } else if(auxprop_values[1].name
+ && auxprop_values[1].values
+ && auxprop_values[1].values[0]) {
+@@ -975,3 +1053,37 @@
+ #endif
+ { NULL, NULL }
+ };
++
++/* weeds out crypt(3) password's salt */
++int _sasl_get_salt (char *dest, char *src, int format) {
++ int num; /* how many characters is salt long? */
++ switch (format) {
++ case PASSWORD_FORMAT_CRYPT:
++ /* md5 crypt */
++ if (src[1] == '1')
++ num = 12;
++ /* blowfish crypt */
++ else if (src[1] == '2')
++ num = (src[1] == '2' && src[2] == 'a') ? 17 : 16;
++ /* traditional crypt */
++ else
++ num = 2;
++ break;
++
++ case PASSWORD_FORMAT_CRYPTTRAD:
++ num = 2;
++ break;
++
++ default:
++ return 1;
++ }
++
++ /* destroy destination */
++ memset(dest, '\0', (num + 1));
++
++ /* copy salt to destination */
++ strncpy(dest, src, num);
++
++ return 1;
++}
++
diff --git a/core/libsasl/cyrus-sasl-db.patch b/core/libsasl/cyrus-sasl-db.patch
new file mode 100644
index 000000000..08758ab85
--- /dev/null
+++ b/core/libsasl/cyrus-sasl-db.patch
@@ -0,0 +1,34 @@
+diff -urN aaa/cyrus-sasl-2.1.22/cmulocal/berkdb.m4 cyrus-sasl-2.1.22/cmulocal/berkdb.m4
+--- aaa/cyrus-sasl-2.1.22/cmulocal/berkdb.m4 2005-04-26 21:14:07.000000000 +0200
++++ cyrus-sasl-2.1.22/cmulocal/berkdb.m4 2006-10-02 20:36:17.137852392 +0200
+@@ -213,7 +213,7 @@
+ fi
+
+ saved_LIBS=$LIBS
+- for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
++ for dbname in db-5.1 db-5.0 db-4.8 db-4.7 db-4.6 db-4.5 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
+ do
+ LIBS="$saved_LIBS -l$dbname"
+ AC_TRY_LINK([#include <db.h>],
+--- cyrus-sasl-2.1.23/sasldb/db_berkeley.c.orig 2009-04-28 17:09:18.000000000 +0200
++++ cyrus-sasl-2.1.23/sasldb/db_berkeley.c 2010-05-18 21:02:20.418940098 +0200
+@@ -100,7 +100,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR > 4) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
+--- cyrus-sasl-2.1.23/utils/dbconverter-2.c.orig 2003-02-13 20:56:17.000000000 +0100
++++ cyrus-sasl-2.1.23/utils/dbconverter-2.c 2010-05-18 21:11:09.982932556 +0200
+@@ -214,7 +214,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR > 4) || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);
diff --git a/core/libtirpc/PKGBUILD b/core/libtirpc/PKGBUILD
new file mode 100644
index 000000000..952640dcb
--- /dev/null
+++ b/core/libtirpc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 97756 2010-11-01 19:49:14Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=libtirpc
+pkgver=0.2.1
+pkgrel=2
+pkgdesc="Transport Independent RPC library (SunRPC replacement)"
+arch=(i686 x86_64)
+depends=('glibc' 'libgssglue' 'heimdal')
+url="http://libtirpc.sourceforge.net/"
+license=('GPL2')
+source=(http://downloads.sourceforge.net/sourceforge/libtirpc/$pkgname-$pkgver.tar.bz2
+ libtirpc-0.2.1-fortify.patch)
+backup=('etc/netconfig')
+options=(!libtool)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # fix http://bugs.gentoo.org/293593
+ # https://bugs.archlinux.org/task/20082
+ patch -Np1 -i ../libtirpc-0.2.1-fortify.patch
+ ./configure --prefix=/usr --enable-gss
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ # install netconfig
+ install -D -m644 doc/etc_netconfig $pkgdir/etc/netconfig
+}
+md5sums=('d77eb15f464bf9d6e66259eaf78b2a4e'
+ '2e5c067f1651469dfbbdc91d3c9c60e8')
diff --git a/core/libtirpc/libtirpc-0.2.1-fortify.patch b/core/libtirpc/libtirpc-0.2.1-fortify.patch
new file mode 100644
index 000000000..7375bf83e
--- /dev/null
+++ b/core/libtirpc/libtirpc-0.2.1-fortify.patch
@@ -0,0 +1,18 @@
+Index: libtirpc-0.2.1/src/getrpcport.c
+===================================================================
+--- libtirpc-0.2.1.orig/src/getrpcport.c
++++ libtirpc-0.2.1/src/getrpcport.c
+@@ -54,11 +54,11 @@ getrpcport(host, prognum, versnum, proto
+
+ if ((hp = gethostbyname(host)) == NULL)
+ return (0);
++ if (hp->h_length != sizeof(addr.sin_addr.s_addr))
++ return (0);
+ memset(&addr, 0, sizeof(addr));
+ addr.sin_family = AF_INET;
+ addr.sin_port = 0;
+- if (hp->h_length > sizeof(addr))
+- hp->h_length = sizeof(addr);
+ memcpy(&addr.sin_addr.s_addr, hp->h_addr, (size_t)hp->h_length);
+ /* Inconsistent interfaces need casts! :-( */
+ return (pmap_getport(&addr, (u_long)prognum, (u_long)versnum,
diff --git a/core/libtool/PKGBUILD b/core/libtool/PKGBUILD
new file mode 100644
index 000000000..1ce394098
--- /dev/null
+++ b/core/libtool/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 103285 2010-12-17 05:56:05Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuilt with each new gcc version
+
+pkgname=libtool
+pkgver=2.4
+pkgrel=2
+pkgdesc="A generic library support script"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+depends=('sh' 'tar' 'texinfo')
+groups=('base-devel')
+options=('!libtool')
+install=libtool.install
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.xz)
+md5sums=('4e6144439d95d7332dc50ace6dd24c55')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/libtool/libtool.install b/core/libtool/libtool.install
new file mode 100644
index 000000000..424c8cb88
--- /dev/null
+++ b/core/libtool/libtool.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(libtool.info libtool.info-1 libtool.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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/libusb-compat/PKGBUILD b/core/libusb-compat/PKGBUILD
new file mode 100644
index 000000000..b2b16ced6
--- /dev/null
+++ b/core/libusb-compat/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 101197 2010-11-28 15:10:38Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=libusb-compat
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="Library to enable user space application programs to communicate with USB devices"
+arch=('i686' 'x86_64')
+depends=('libusb' 'sh')
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+source=(http://downloads.sourceforge.net/libusb/libusb-compat-0.1/$pkgname-$pkgver/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+md5sums=('570ac2ea085b80d1f74ddc7c6a93c0eb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/libusb/PKGBUILD b/core/libusb/PKGBUILD
new file mode 100644
index 000000000..947361b3d
--- /dev/null
+++ b/core/libusb/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 101194 2010-11-28 15:05:41Z tpowa $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libusb
+pkgver=1.0.8
+pkgrel=1
+depends=('glibc')
+pkgdesc="Library to enable user space application programs to communicate with USB devices."
+arch=(i686 x86_64)
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+source=(http://downloads.sourceforge.net/libusb/libusb-${pkgver}.tar.bz2)
+options=(!libtool)
+replaces=(libusb1)
+md5sums=('37d34e6eaa69a4b645a19ff4ca63ceef')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/lilo/PKGBUILD b/core/lilo/PKGBUILD
new file mode 100644
index 000000000..c2de0f4ed
--- /dev/null
+++ b/core/lilo/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 101453 2010-11-29 09:41:45Z andrea $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=lilo
+pkgver=23.1
+pkgrel=2
+pkgdesc="A bootloader for Linux"
+arch=('i686' 'x86_64')
+url="https://alioth.debian.org/projects/lilo/"
+license=('BSD')
+# While lilo should stay in the base category,
+# it usually makes no sense if it is installed
+# with pacman -S base, therefore, don't add
+# the base group here.
+#groups=('base')
+backup=('etc/lilo.conf')
+depends=('device-mapper' 'coreutils')
+makedepends=('bin86' 'sharutils')
+optdepends=('perl: to use keytab-lilo')
+install=lilo.install
+options=('!makeflags')
+source=("http://lilo.alioth.debian.org/ftp/upstream/sources/${pkgname}-${pkgver}.tar.gz"
+ 'lilo.conf')
+md5sums=('36139c1b8f4dc835fc7775e59ee4b20c'
+ 'a3a4c90bead3f9b8672bd384ff9f8db1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export LC_ALL=C
+ make all
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 "${srcdir}/lilo.conf" "${pkgdir}/etc/lilo.conf"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/core/lilo/lilo.conf b/core/lilo/lilo.conf
new file mode 100644
index 000000000..0e31e77a5
--- /dev/null
+++ b/core/lilo/lilo.conf
@@ -0,0 +1,28 @@
+#
+# /etc/lilo.conf
+#
+
+boot=/dev/hda
+# This line often fixes L40 errors on bootup
+# disk=/dev/hda bios=0x80
+
+default=arch
+timeout=50
+lba32
+prompt
+
+image=/boot/vmlinuz26
+ label=arch
+ root=/dev/hda3
+ initrd=/boot/kernel26.img
+ read-only
+
+image=/boot/vmlinuz26
+ label=arch-fallback
+ root=/dev/hda3
+ initrd=/boot/kernel26-fallback.img
+ read-only
+
+#other=/dev/hda1
+# label=dos
+
diff --git a/core/lilo/lilo.install b/core/lilo/lilo.install
new file mode 100644
index 000000000..7375fddf8
--- /dev/null
+++ b/core/lilo/lilo.install
@@ -0,0 +1,5 @@
+post_upgrade() {
+ echo
+ echo "If you use the LILO bootloader, you should run 'lilo' after upgrading."
+ echo
+}
diff --git a/core/links/PKGBUILD b/core/links/PKGBUILD
new file mode 100644
index 000000000..aca8da456
--- /dev/null
+++ b/core/links/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 102993 2010-12-13 20:58:28Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=links
+pkgver=2.3pre1
+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)
+md5sums=('76cff0c716cd2a710abb078f859cfe9b' '7c47b15aaef51f1de129ff3a2afb7eac')
+sha1sums=('6d420a5c4514b45ee245fd3933d2a8cfa6eae76d' '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/core/links/links.desktop b/core/links/links.desktop
new file mode 100644
index 000000000..9d6338a5b
--- /dev/null
+++ b/core/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/core/linux-api-headers/PKGBUILD b/core/linux-api-headers/PKGBUILD
new file mode 100644
index 000000000..27dfd88f7
--- /dev/null
+++ b/core/linux-api-headers/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 106756 2011-01-19 00:34:07Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=linux-api-headers
+pkgver=2.6.37
+_basever=2.6.37
+pkgrel=1
+pkgdesc="Kernel headers sanitized for use in userspace"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL2')
+provides=("kernel-headers=${pkgver}")
+conflicts=('kernel-headers')
+replaces=('kernel-headers')
+source=(http://www.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2)
+ #http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2)
+md5sums=('c8ee37b4fdccdb651e0603d35350b434')
+
+build() {
+ cd ${srcdir}/linux-${_basever}
+ #patch -Np1 -i ${srcdir}/patch-${pkgver}
+
+ make mrproper
+ make headers_check
+}
+
+package() {
+ cd ${srcdir}/linux-${_basever}
+ make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
+
+ # use headers from libdrm
+ rm -rf ${pkgdir}/usr/include/drm
+
+ # clean-up unnecessary files generated during install
+ find ${pkgdir} -name .install -or -name ..install.cmd | xargs rm -f
+}
diff --git a/core/linux-atm/PKGBUILD b/core/linux-atm/PKGBUILD
new file mode 100644
index 000000000..2a7f7c7e0
--- /dev/null
+++ b/core/linux-atm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 107943 2011-01-28 01:46:01Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Surain Mallawa Arachchi <mas@crc32.net>
+
+pkgname=linux-atm
+pkgver=2.5.1
+pkgrel=2
+pkgdesc="Drivers and tools to support ATM networking under Linux."
+arch=('i686' 'x86_64')
+depends=('glibc')
+url="http://linux-atm.sourceforge.net/"
+license=(GPL)
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tgz
+ man-pages.patch)
+md5sums=('9560b0e1f410a05b849dfdab465dd758'
+ '181390736336cdb615ae32f1ae5acfa6')
+options=(!libtool !makeflags)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../man-pages.patch
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/core/linux-atm/man-pages.patch b/core/linux-atm/man-pages.patch
new file mode 100644
index 000000000..c504cfe87
--- /dev/null
+++ b/core/linux-atm/man-pages.patch
@@ -0,0 +1,45 @@
+diff -up linux-atm-2.5.1/src/led/zeppelin.8.fixman linux-atm-2.5.1/src/led/zeppelin.8
+--- linux-atm-2.5.1/src/led/zeppelin.8.fixman 2003-05-02 19:35:04.000000000 +0200
++++ linux-atm-2.5.1/src/led/zeppelin.8 2010-10-13 12:58:18.000000000 +0200
+@@ -99,7 +99,7 @@ Ring and ATM parts of the ELAN, so using
+ recommended. Token Ring support has received less testing than its
+ Ethernet counterpart.
+ .SH FILES
+-.IP \fI/var/run/lec[interface number].pid\fP
++\fI/var/run/lec[interface number].pid\fP
+ The file containing the process id of zeppelin.
+ .SH BUGS
+ John Bonham died 1980 and Led Zeppelin broke.
+diff -up linux-atm-2.5.1/src/mpoad/mpcd.8.fixman linux-atm-2.5.1/src/mpoad/mpcd.8
+--- linux-atm-2.5.1/src/mpoad/mpcd.8.fixman 2001-10-10 00:33:07.000000000 +0200
++++ linux-atm-2.5.1/src/mpoad/mpcd.8 2010-10-13 12:59:14.000000000 +0200
+@@ -28,7 +28,7 @@ mpcd \- ATM MPOA (Multi\-Protocol Over A
+ .B ]]
+ .SH DESCRIPTION
+ MPOA client
+-.SM(MPC) is responsible for creating and receiving
++.SM (MPC) is responsible for creating and receiving
+ internetwork layer shortcuts. Using these shortcuts MPCs forward
+ unicast internetwork layer packets effectively over ATM without need
+ for routing protocols.
+@@ -43,7 +43,7 @@ accepts shortcuts and packets arriving o
+ shortcuts is done with the help of
+ .SM MPOA
+ server
+-.SM(MPS).
++.SM (MPS).
+ .PP
+ Just as the Linux
+ .SM LAN
+diff -up linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman linux-atm-2.5.1/src/sigd/atmsigd.conf.4
+--- linux-atm-2.5.1/src/sigd/atmsigd.conf.4.fixman 2001-10-10 00:33:07.000000000 +0200
++++ linux-atm-2.5.1/src/sigd/atmsigd.conf.4 2010-10-13 12:58:49.000000000 +0200
+@@ -125,7 +125,7 @@ a comment. The `#' character cannot be e
+ .P
+ If an option is specified in \fBatmsigd.conf\fP and on the command
+ line, the command line has priority.
+-.COMPATIBILITY
++.SH COMPATIBILITY
+ Certain options used by past versions of \fBatmsigd\fP but no longer documented
+ on the man page are still recognized and supported, but they also yield a
+ warning message. Future versions of \fBatmsigd\fP will not recognize those
diff --git a/core/logrotate/PKGBUILD b/core/logrotate/PKGBUILD
new file mode 100644
index 000000000..1cb10e4bd
--- /dev/null
+++ b/core/logrotate/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 92736 2010-09-30 15:38:29Z allan $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=logrotate
+pkgver=3.7.9
+pkgrel=1
+pkgdesc="Rotates system logs automatically"
+url='https://fedorahosted.org/logrotate/'
+arch=('i686' 'x86_64')
+license=('GPL')
+groups=('base')
+depends=('popt' 'cron' 'gzip')
+backup=('etc/logrotate.conf')
+source=(https://fedorahosted.org/releases/l/o/logrotate/logrotate-${pkgver}.tar.gz
+ logrotate.conf
+ logrotate.cron.daily)
+md5sums=('eeba9dbca62a9210236f4b83195e4ea5'
+ '462a5f364717461537eb2ae6394ad23e'
+ '8e23d5d4cc29b1e055b24df87e355cdc')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+
+ sed -i 's|#define DEFAULT_MAIL_COMMAND .*|#define DEFAULT_MAIL_COMMAND "/usr/bin/mail"|'\
+ config.h
+ sed -i "s|CFLAGS = -Wall|CFLAGS = -Wall $CFLAGS|" Makefile
+ sed -i 's|$(BASEDIR)/man|$(BASEDIR)/share/man|' Makefile
+
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+ make PREFIX=$pkgdir install
+
+ install -Dm644 $srcdir/logrotate.conf $pkgdir/etc/logrotate.conf
+ install -Dm744 $srcdir/logrotate.cron.daily $pkgdir/etc/cron.daily/logrotate
+}
diff --git a/core/logrotate/logrotate.conf b/core/logrotate/logrotate.conf
new file mode 100644
index 000000000..88b4935cd
--- /dev/null
+++ b/core/logrotate/logrotate.conf
@@ -0,0 +1,31 @@
+# see "man logrotate" for details
+# rotate log files weekly
+weekly
+
+# keep 4 weeks worth of backlogs
+rotate 4
+
+# restrict maximum size of log files
+#size 20M
+
+# create new (empty) log files after rotating old ones
+create
+
+# uncomment this if you want your log files compressed
+#compress
+
+# Logs are moved into directory for rotation
+# olddir /var/log/archive
+
+# Ignore pacman saved files
+tabooext + .pacorig .pacnew .pacsave
+
+# Arch packages drop log rotation information into this directory
+include /etc/logrotate.d
+
+/var/log/wtmp {
+ monthly
+ create 0664 root root
+ rotate 1
+}
+
diff --git a/core/logrotate/logrotate.cron.daily b/core/logrotate/logrotate.cron.daily
new file mode 100755
index 000000000..e8ab921ea
--- /dev/null
+++ b/core/logrotate/logrotate.cron.daily
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/sbin/logrotate /etc/logrotate.conf
diff --git a/core/lvm2/PKGBUILD b/core/lvm2/PKGBUILD
new file mode 100644
index 000000000..3a946ff04
--- /dev/null
+++ b/core/lvm2/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 109502 2011-02-10 10:44:18Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgbase=lvm2
+pkgname=('lvm2' 'device-mapper')
+pkgver=2.02.84
+_pkgverlvm=${pkgver}
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://sourceware.org/lvm2/"
+license=('GPL2' 'LGPL2.1')
+groups=('base')
+conflicts=('mkinitcpio<0.5.99')
+source=(ftp://sources.redhat.com/pub/lvm2/LVM2.${_pkgverlvm}.tgz
+ lvm2_install
+ lvm2_hook)
+md5sums=('8b4e0897ee48f02c0dff11940e44e23b' 'e29bc80d636ed17b617d9b384a5f3aa0'\
+ '7103e3fef1180478811ac4e32aec540d')
+sha1sums=('6d92f4474f93c7d3824a0eb3469c7e4f9ef8f1d4' '662fc54ce291fd79bd09701e4c3e10854f325282'\
+ '769767d84c73674cbb68c765460e57c428c314a0')
+
+build() {
+ cd "${srcdir}/LVM2.${_pkgverlvm}"
+ sed -i 's|/usr/bin/tr|/bin/tr|' scripts/lvmdump.sh
+ unset LDFLAGS
+ ./configure --prefix= --sysconfdir=/etc --localstatedir=/var --datarootdir=/usr/share \
+ --includedir=/usr/include --with-usrlibdir=/usr/lib \
+ --enable-pkgconfig --enable-readline --enable-dmeventd --enable-cmdlib --enable-applib \
+ --with-udevdir=/lib/udev/rules.d/ --enable-udev_sync --enable-udev_rules
+ make
+}
+
+package_device-mapper() {
+ pkgdesc="Device mapper userspace library and tools"
+ url="http://sourceware.org/dm/"
+ depends=('glibc' 'udev')
+
+ cd "${srcdir}/LVM2.${_pkgverlvm}"
+ make DESTDIR="${pkgdir}" install_device-mapper
+}
+
+package_lvm2() {
+ pkgdesc="Logical Volume Manager 2 utilities"
+ depends=('bash' "device-mapper>=${pkgver}" 'udev' 'readline')
+ conflicts=('lvm' 'mkinitcpio<0.5.99')
+ backup=('etc/lvm/lvm.conf')
+ options=('!makeflags')
+
+ cd "${srcdir}/LVM2.${_pkgverlvm}"
+ make DESTDIR="${pkgdir}" install_lvm2
+ # install applib
+ cd liblvm
+ make DESTDIR="${pkgdir}" install
+ cd ..
+ # /etc directories
+ install -d "${pkgdir}"/etc/lvm/{archive,backup}
+ # mkinitcpio hook
+ install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/lib/initcpio/hooks/lvm2"
+ install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/lib/initcpio/install/lvm2"
+}
diff --git a/core/lvm2/lvm2_hook b/core/lvm2/lvm2_hook
new file mode 100644
index 000000000..d6d1c1f94
--- /dev/null
+++ b/core/lvm2/lvm2_hook
@@ -0,0 +1,23 @@
+# vim:set ft=sh:
+run_hook ()
+{
+ /sbin/modprobe -q dm-mod >/dev/null 2>&1
+ if [ -e "/sys/class/misc/device-mapper" ]; then
+ if [ ! -e "/dev/mapper/control" ]; then
+ /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
+ fi
+
+ # If the lvmwait= parameter has been specified on the command line
+ # wait for the device(s) before trying to activate the volume group(s)
+ if [ -n "${lvmwait}" ]; then
+ for pvdev in $(echo ${lvmwait} | sed 's|,| |g'); do
+ poll_device ${pvdev} ${rootdelay}
+ done
+ fi
+
+ [ "${quiet}" = "y" ] && LVMQUIET=">/dev/null"
+
+ msg "Activating logical volumes..."
+ eval /sbin/lvm vgchange --sysinit -a y $LVMQUIET
+ fi
+}
diff --git a/core/lvm2/lvm2_install b/core/lvm2/lvm2_install
new file mode 100644
index 000000000..0c01ce69c
--- /dev/null
+++ b/core/lvm2/lvm2_install
@@ -0,0 +1,29 @@
+# vim: set ft=sh:
+
+install ()
+{
+ MODULES=" dm-mod dm-snapshot dm-mirror"
+ BINARIES=""
+ FILES=""
+ SCRIPT="lvm2"
+
+ add_dir "/dev/mapper"
+ add_binary "/sbin/lvm"
+ add_binary "/sbin/dmsetup"
+ add_file "/lib/udev/rules.d/10-dm.rules"
+ add_file "/lib/udev/rules.d/13-dm-disk.rules"
+ add_file "/lib/udev/rules.d/95-dm-notify.rules"
+ add_file "/lib/udev/rules.d/11-dm-lvm.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook loads the necessary modules for an LVM2 root device.
+
+ The optional lvmwait= parameter followed by a comma-separated
+ list of device names can be given on the command line.
+ It will cause the hook to wait until all given devices exist
+ before trying to scan and activate any volume groups.
+HELPEOF
+}
diff --git a/core/lzo2/PKGBUILD b/core/lzo2/PKGBUILD
new file mode 100644
index 000000000..4f2889baf
--- /dev/null
+++ b/core/lzo2/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 100405 2010-11-23 12:35:30Z stephane $
+# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=lzo2
+pkgver=2.04
+pkgrel=1
+pkgdesc="Portable lossless data compression library"
+arch=('i686' 'x86_64')
+url="http://www.oberhumer.com/opensource/lzo"
+license=('GPL')
+depends=('glibc')
+source=(http://www.oberhumer.com/opensource/lzo/download/lzo-${pkgver}.tar.gz)
+options=(!libtool)
+sha1sums=('f5bf5c7ae4116e60513e5788d156ef78946677e7')
+
+build() {
+ cd "${srcdir}/lzo-${pkgver}"
+
+ ./configure --prefix=/usr --enable-shared
+ make
+
+ # build minilzo
+ gcc $CFLAGS -fpic -Iinclude/lzo -o minilzo/minilzo.o -c minilzo/minilzo.c
+ gcc -g -shared -o libminilzo.so.0 -Wl,-soname,libminilzo.so.0 minilzo/minilzo.o
+}
+
+package() {
+ cd "${srcdir}/lzo-${pkgver}"
+ make DESTDIR=${pkgdir} install
+
+ # install minilzo
+ install -m 755 libminilzo.so.0 ${pkgdir}/usr/lib
+ install -p -m 644 minilzo/minilzo.h ${pkgdir}/usr/include/lzo
+ cd ${pkgdir}/usr/lib
+ ln -s libminilzo.so.0 libminilzo.so
+}
diff --git a/core/m4/PKGBUILD b/core/m4/PKGBUILD
new file mode 100644
index 000000000..aec43611b
--- /dev/null
+++ b/core/m4/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 111924 2011-03-02 03:59:52Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=m4
+pkgver=1.4.16
+pkgrel=1
+pkgdesc="The GNU macro processor"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/m4"
+license=('GPL3')
+groups=('base-devel')
+depends=('glibc' 'bash')
+install=m4.install
+source=(ftp://ftp.gnu.org/gnu/m4/$pkgname-$pkgver.tar.xz)
+md5sums=('7548ec061a1ba993790159764f522d0e')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make prefix=${pkgdir}/usr install
+}
diff --git a/core/m4/m4.install b/core/m4/m4.install
new file mode 100644
index 000000000..be4138170
--- /dev/null
+++ b/core/m4/m4.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(m4.info m4.info-1 m4.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/core/make/PKGBUILD b/core/make/PKGBUILD
new file mode 100644
index 000000000..8ac07413b
--- /dev/null
+++ b/core/make/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 77792 2010-04-18 03:42:45Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=make
+pkgver=3.81
+pkgrel=5
+pkgdesc="GNU make utility to maintain groups of programs"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/make"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc' 'sh')
+install=$pkgname.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a4e9494ac6dc3f6b0c5ff75c5d52abba')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/make/make.install b/core/make/make.install
new file mode 100644
index 000000000..0c2da13c3
--- /dev/null
+++ b/core/make/make.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(make.info make.info-1 make.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/core/man-db/PKGBUILD b/core/man-db/PKGBUILD
new file mode 100644
index 000000000..05265fdc1
--- /dev/null
+++ b/core/man-db/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 99794 2010-11-17 19:07:22Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+
+pkgname=man-db
+pkgver=2.5.9
+pkgrel=1
+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')
+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
+ #http://launchpad.net/man-db/main/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz
+ convert-mans man-db.cron.daily)
+md5sums=('9841394f5c5fe7e2dd2e0c5fb4766d0f'
+ '2b7662a7d5b33fe91f9f3e034361a2f6'
+ 'd30c39ae47560304471b5461719e0f03')
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./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
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ # 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/core/man-db/convert-mans b/core/man-db/convert-mans
new file mode 100644
index 000000000..58a0224b0
--- /dev/null
+++ b/core/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/core/man-db/man-db.cron.daily b/core/man-db/man-db.cron.daily
new file mode 100755
index 000000000..53e66e1e9
--- /dev/null
+++ b/core/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/core/man-db/man-db.install b/core/man-db/man-db.install
new file mode 100644
index 000000000..6a0f36b67
--- /dev/null
+++ b/core/man-db/man-db.install
@@ -0,0 +1,18 @@
+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
+}
+
+post_remove() {
+ rm -rf /var/cache/man
+}
+
diff --git a/core/mdadm/PKGBUILD b/core/mdadm/PKGBUILD
new file mode 100644
index 000000000..94c209616
--- /dev/null
+++ b/core/mdadm/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 116698 2011-03-25 08:21:55Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+pkgname=mdadm
+pkgver=3.1.5
+pkgrel=1
+pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.cse.unsw.edu.au/~neilb/source/mdadm/"
+groups=('base')
+conflicts=('mkinitcpio<0.5.99')
+depends=('glibc')
+backup=('etc/mdadm.conf')
+source=(ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.bz2
+ mdadm
+ mdadm.conf
+ mdadm_install
+ mdadm_hook)
+install=mdadm.install
+replaces=('raidtools')
+md5sums=('a7575707a5f2d1ed6d408446eabcb19b'
+ '7bff0e506fb6017510c8ec4a01896952'
+ '00cbed931db4f15b6ce49e3e7d433966'
+ '865c3d39e5f5dae58388160b563981f1'
+ '1a3eb63832cecd6550f5b0a21d58cfdb')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make CXFLAGS="$CFLAGS"
+ make INSTALL=/bin/install DESTDIR=$pkgdir install
+ install -D -m644 ../mdadm.conf $pkgdir/etc/mdadm.conf
+ install -D -m755 ../mdadm $pkgdir/etc/rc.d/mdadm
+ install -D -m644 ../mdadm_install $pkgdir/lib/initcpio/install/mdadm
+ install -D -m644 ../mdadm_hook $pkgdir/lib/initcpio/hooks/mdadm
+ # symlink for backward compatibility
+ ln -sf /lib/initcpio/hooks/mdadm $pkgdir/lib/initcpio/hooks/raid
+ # build static mdassemble for Arch's initramfs
+ make MDASSEMBLE_AUTO=1 mdassemble
+ install -D -m755 mdassemble $pkgdir/sbin/mdassemble
+}
diff --git a/core/mdadm/mdadm b/core/mdadm/mdadm
new file mode 100755
index 000000000..918a62537
--- /dev/null
+++ b/core/mdadm/mdadm
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /sbin/mdadm`
+case "$1" in
+ start)
+ stat_busy "Starting mdadm RAID Monitor"
+ if [ -z "$PID" ]; then
+ /sbin/mdadm --monitor --scan -i /var/run/mdadm.pid -f
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ mdadm --monitor --oneshot --scan
+ add_daemon mdadm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mdadm RAID Monitor"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mdadm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/core/mdadm/mdadm.conf b/core/mdadm/mdadm.conf
new file mode 100644
index 000000000..57bd4c683
--- /dev/null
+++ b/core/mdadm/mdadm.conf
@@ -0,0 +1,67 @@
+# mdadm configuration file
+#
+# mdadm will function properly without the use of a configuration file,
+# but this file is useful for keeping track of arrays and member disks.
+# In general, a mdadm.conf file is created, and updated, after arrays
+# are created. This is the opposite behavior of /etc/raidtab which is
+# created prior to array construction.
+#
+#
+# the config file takes two types of lines:
+#
+# DEVICE lines specify a list of devices of where to look for
+# potential member disks
+#
+# ARRAY lines specify information about how to identify arrays so
+# so that they can be activated
+#
+
+
+# You can have more than one device line and use wild cards. The first
+# example includes SCSI the first partition of SCSI disks /dev/sdb,
+# /dev/sdc, /dev/sdd, /dev/sdj, /dev/sdk, and /dev/sdl. The second
+# line looks for array slices on IDE disks.
+#
+#DEVICE /dev/sd[bcdjkl]1
+#DEVICE /dev/hda1 /dev/hdb1
+#
+# The designation "partitions" will scan all partitions found in
+# /proc/partitions
+DEVICE partitions
+
+
+# ARRAY lines specify an array to assemble and a method of identification.
+# Arrays can currently be identified by using a UUID, superblock minor number,
+# or a listing of devices.
+#
+# super-minor is usually the minor number of the metadevice
+# UUID is the Universally Unique Identifier for the array
+# Each can be obtained using
+#
+# mdadm -D <md>
+#
+# To capture the UUIDs for all your RAID arrays to this file, run these:
+# to get a list of running arrays:
+# # mdadm -D --scan >>/etc/mdadm.conf
+# to get a list from superblocks:
+# # mdadm -E --scan >>/etc/mdadm.conf
+#
+#ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
+#ARRAY /dev/md1 super-minor=1
+#ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
+#
+# ARRAY lines can also specify a "spare-group" for each array. mdadm --monitor
+# will then move a spare between arrays in a spare-group if one array has a
+# failed drive but no spare
+#ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df spare-group=group1
+#ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977 spare-group=group1
+#
+
+
+# When used in --follow (aka --monitor) mode, mdadm needs a
+# mail address and/or a program. To start mdadm's monitor mode, add
+# "mdadm" to your DAEMONS array in /etc/rc.conf
+#
+# If the lines are not found, mdadm will exit quietly
+#MAILADDR root@mydomain.tld
+#PROGRAM /usr/sbin/handle-mdadm-events
diff --git a/core/mdadm/mdadm.install b/core/mdadm/mdadm.install
new file mode 100644
index 000000000..e8404c260
--- /dev/null
+++ b/core/mdadm/mdadm.install
@@ -0,0 +1,10 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_upgrade() {
+ if [ "$(vercmp $2 2.6.8-2)" -lt 0 -a "$(grep raid_partitions /etc/mkinitcpio.conf)" ]; then
+ echo "Attention mdadm update:"
+ echo "raid_partitions hook has been replaced by the more powerfull mdadm hook."
+ echo "Please update your /etc/mkinitcpio.conf accordingly."
+ fi
+}
diff --git a/core/mdadm/mdadm_hook b/core/mdadm/mdadm_hook
new file mode 100755
index 000000000..57799d3b8
--- /dev/null
+++ b/core/mdadm/mdadm_hook
@@ -0,0 +1,44 @@
+# vim: set ft=sh:
+run_hook ()
+{
+ input="$(cat /proc/cmdline)"
+ mdconfig="/etc/mdadm.conf"
+ # for partitionable raid, we need to load md_mod first!
+ modprobe md_mod 2>/dev/null
+ # If md is specified on commandline, create config file from those parameters.
+ if [ "$(echo $input | grep "md=")" ]; then
+ #Create initial mdadm.conf
+ # scan all devices in /proc/partitions
+ echo DEVICE partitions > $mdconfig
+ for i in $input; do
+ case $i in
+ # raid
+ md=[0-9]*,/*)
+ device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=||g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device devices=$array" >> $mdconfig
+ ;;
+ # partitionable raid
+ md=d[0-9]*,/*)
+ device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=|_|g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device devices=$array" >> $mdconfig
+ ;;
+ # raid UUID
+ md=[0-9]*,[0-9,a-z]*)
+ device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=||g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device UUID=$array" >> $mdconfig
+ ;;
+ # partitionable raid UUID
+ md=d[0-9]*,[0-9,a-z]*)
+ device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=|_|g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device UUID=$array" >> $mdconfig
+ ;;
+ esac
+ done
+ fi
+ # assemble everything
+ [ -e $mdconfig ] && /sbin/mdassemble
+} \ No newline at end of file
diff --git a/core/mdadm/mdadm_install b/core/mdadm/mdadm_install
new file mode 100644
index 000000000..b7a57ea4e
--- /dev/null
+++ b/core/mdadm/mdadm_install
@@ -0,0 +1,46 @@
+# vim: set ft=sh:
+
+install ()
+{
+ MODULES=" $(checked_modules "drivers/md/*" | grep -v "dm-") "
+ BINARIES=""
+ FILES=""
+ SCRIPT="mdadm"
+ # check if a custom mdadm.conf exists
+ if grep -q ^ARRAY /etc/mdadm.conf; then
+ echo "Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays."
+ add_file "/etc/mdadm.conf"
+ fi
+ add_binary "/sbin/mdassemble"
+ add_file "/lib/udev/rules.d/64-md-raid.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook loads the necessary modules for any raid root device,
+ and assembles the raid device when run.
+
+ If arrays are defined in /etc/mdadm.conf, the file will be used instead
+ of command line assembling.
+
+ Command Line Setup:
+ - for raid arrays with persistent superblocks:
+ md=<md device no.>,dev0,dev1,...,devn
+ md=<md device no.>,uuid
+ - for partitionable raid arrays with persistent superblocks:
+ md=d<md device no.>,dev0,dev1,...,devn
+ md=d<md device no.>,uuid
+
+ Parameters:
+ - <md device no.> = the number of the md device:
+ 0 means md0, 1 means md1, ...
+ - <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1
+ or 0900878d:f95f6057:c39a36e9:55efa60a
+ Examples:
+ - md=d0,/dev/sda3,/dev/sda4 md=d1,/dev/hda1,/dev/hdb1
+ This will setup 2 md partitionable arrays.
+ - md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1
+ This will setup 2 md arrays with persistent superblocks.
+HELPEOF
+}
diff --git a/core/mkinitcpio-busybox/PKGBUILD b/core/mkinitcpio-busybox/PKGBUILD
new file mode 100644
index 000000000..574435eef
--- /dev/null
+++ b/core/mkinitcpio-busybox/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 107680 2011-01-26 22:30:45Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=mkinitcpio-busybox
+pkgver=1.18.2
+pkgrel=1
+pkgdesc="base initramfs tools"
+arch=('i686' 'x86_64')
+url="http://www.busybox.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://busybox.net/downloads/busybox-${pkgver}.tar.bz2
+ config)
+sha256sums=('aa7e1cec8cd9c7f4e56098b9e4bb2ab5d593d5a35f766ad9e6a312289bf57080'
+ 'dd6dca08fbc335f1394e0f1b619df6895349c759d0c6e43456aed411e16d4194')
+
+build() {
+ cd "${srcdir}/busybox-${pkgver}"
+
+ unset CFLAGS CXXFLAGS
+ if [ ${CARCH} = "x86_64" ]; then
+ sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=x86-64 -mtune=generic -Os -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
+ else
+ sed 's|^CONFIG_EXTRA_CFLAGS=.*|CONFIG_EXTRA_CFLAGS="-march=i686 -mtune=generic -Os -pipe -fno-strict-aliasing"|' "${srcdir}/config" > .config
+ fi
+ make
+}
+
+package() {
+ install -D -m755 "${srcdir}/busybox-${pkgver}"/busybox "${pkgdir}/lib/initcpio/busybox"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/core/mkinitcpio-busybox/config b/core/mkinitcpio-busybox/config
new file mode 100644
index 000000000..1aa333faf
--- /dev/null
+++ b/core/mkinitcpio-busybox/config
@@ -0,0 +1,986 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.18.2
+# Wed Jan 26 23:08:18 2011
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_DESKTOP is not set
+# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_INCLUDE_SUSv2 is not set
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+# CONFIG_FEATURE_VERBOSE_USAGE is not set
+# CONFIG_FEATURE_COMPRESS_USAGE is not set
+CONFIG_FEATURE_INSTALLER=y
+# CONFIG_INSTALL_NO_USR is not set
+# CONFIG_LOCALE_SUPPORT is not set
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_WTMP is not set
+# CONFIG_FEATURE_UTMP is not set
+# CONFIG_FEATURE_PIDFILE is not set
+CONFIG_FEATURE_SUID=y
+# CONFIG_FEATURE_SUID_CONFIG is not set
+# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/bin/busybox"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+# CONFIG_STATIC is not set
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+CONFIG_EXTRA_CFLAGS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+
+#
+# Installation Options ("make install" behavior)
+#
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=3
+CONFIG_FEATURE_FAST_TOP=y
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+# CONFIG_FEATURE_USE_TERMIOS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+# CONFIG_FEATURE_EDITING_VI is not set
+CONFIG_FEATURE_EDITING_HISTORY=15
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
+CONFIG_FEATURE_NON_POSIX_CP=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_FEATURE_SEAMLESS_XZ is not set
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+# CONFIG_FEATURE_SEAMLESS_BZ2 is not set
+# CONFIG_FEATURE_SEAMLESS_GZ is not set
+# CONFIG_FEATURE_SEAMLESS_Z is not set
+# CONFIG_AR is not set
+# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
+# CONFIG_FEATURE_AR_CREATE is not set
+# CONFIG_BUNZIP2 is not set
+# CONFIG_BZIP2 is not set
+# CONFIG_CPIO is not set
+# CONFIG_FEATURE_CPIO_O is not set
+# CONFIG_FEATURE_CPIO_P is not set
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+# CONFIG_GUNZIP is not set
+# CONFIG_GZIP is not set
+# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
+# CONFIG_LZOP is not set
+# CONFIG_LZOP_COMPR_HIGH is not set
+# CONFIG_RPM2CPIO is not set
+# CONFIG_RPM is not set
+# CONFIG_TAR is not set
+# CONFIG_FEATURE_TAR_CREATE is not set
+# CONFIG_FEATURE_TAR_AUTODETECT is not set
+# CONFIG_FEATURE_TAR_FROM is not set
+# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
+# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
+# CONFIG_FEATURE_TAR_TO_COMMAND is not set
+# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
+# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
+# CONFIG_FEATURE_TAR_SELINUX is not set
+# CONFIG_UNCOMPRESS is not set
+# CONFIG_UNLZMA is not set
+# CONFIG_FEATURE_LZMA_FAST is not set
+# CONFIG_LZMA is not set
+# CONFIG_UNXZ is not set
+# CONFIG_XZ is not set
+# CONFIG_UNZIP is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+# CONFIG_DATE is not set
+# CONFIG_FEATURE_DATE_ISOFMT is not set
+# CONFIG_FEATURE_DATE_NANO is not set
+# CONFIG_FEATURE_DATE_COMPAT is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+# CONFIG_TR is not set
+# CONFIG_FEATURE_TR_CLASSES is not set
+# CONFIG_FEATURE_TR_EQUIV is not set
+# CONFIG_BASE64 is not set
+# CONFIG_CAL is not set
+# CONFIG_CATV is not set
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
+CONFIG_CHROOT=y
+# CONFIG_CKSUM is not set
+# CONFIG_COMM is not set
+CONFIG_CP=y
+# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
+CONFIG_CUT=y
+CONFIG_DD=y
+# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+# CONFIG_FEATURE_DD_IBS_OBS is not set
+CONFIG_DF=y
+# CONFIG_FEATURE_DF_FANCY is not set
+CONFIG_DIRNAME=y
+# CONFIG_DOS2UNIX is not set
+# CONFIG_UNIX2DOS is not set
+CONFIG_DU=y
+# CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K is not set
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+# CONFIG_EXPAND is not set
+# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+# CONFIG_FOLD is not set
+# CONFIG_FSYNC is not set
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+# CONFIG_HOSTID is not set
+# CONFIG_ID is not set
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+# CONFIG_LENGTH is not set
+CONFIG_LN=y
+# CONFIG_LOGNAME is not set
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+# CONFIG_FEATURE_LS_COLOR is not set
+# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
+# CONFIG_MD5SUM is not set
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+# CONFIG_NICE is not set
+# CONFIG_NOHUP is not set
+# CONFIG_OD is not set
+# CONFIG_PRINTENV is not set
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+# CONFIG_REALPATH is not set
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y
+CONFIG_SEQ=y
+# CONFIG_SHA1SUM is not set
+# CONFIG_SHA256SUM is not set
+# CONFIG_SHA512SUM is not set
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_FEATURE_FLOAT_SLEEP=y
+CONFIG_SORT=y
+# CONFIG_FEATURE_SORT_BIG is not set
+# CONFIG_SPLIT is not set
+# CONFIG_FEATURE_SPLIT_FANCY is not set
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+# CONFIG_STTY is not set
+# CONFIG_SUM is not set
+# CONFIG_SYNC is not set
+# CONFIG_TAC is not set
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+# CONFIG_TEE is not set
+# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
+CONFIG_TOUCH=y
+CONFIG_TRUE=y
+# CONFIG_TTY is not set
+CONFIG_UNAME=y
+# CONFIG_UNEXPAND is not set
+# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
+CONFIG_UNIQ=y
+# CONFIG_USLEEP is not set
+# CONFIG_UUDECODE is not set
+# CONFIG_UUENCODE is not set
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+# CONFIG_WHO is not set
+# CONFIG_WHOAMI is not set
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set
+
+#
+# Console Utilities
+#
+# CONFIG_CHVT is not set
+# CONFIG_FGCONSOLE is not set
+# CONFIG_CLEAR is not set
+# CONFIG_DEALLOCVT is not set
+# CONFIG_DUMPKMAP is not set
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+# CONFIG_RESET is not set
+# CONFIG_RESIZE is not set
+# CONFIG_FEATURE_RESIZE_PRINT is not set
+# CONFIG_SETCONSOLE is not set
+# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
+CONFIG_SETFONT=y
+# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
+CONFIG_DEFAULT_SETFONT_DIR=""
+# CONFIG_SETKEYCODES is not set
+# CONFIG_SETLOGCONS is not set
+# CONFIG_SHOWKEY is not set
+
+#
+# Common options for loadfont and setfont
+#
+CONFIG_FEATURE_LOADFONT_PSF2=y
+CONFIG_FEATURE_LOADFONT_RAW=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+# CONFIG_PIPE_PROGRESS is not set
+# CONFIG_RUN_PARTS is not set
+# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
+# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
+# CONFIG_START_STOP_DAEMON is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+# CONFIG_WHICH is not set
+
+#
+# Editors
+#
+# CONFIG_PATCH is not set
+CONFIG_AWK=y
+# CONFIG_FEATURE_AWK_LIBM is not set
+# CONFIG_CMP is not set
+# CONFIG_DIFF is not set
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+# CONFIG_FEATURE_DIFF_DIR is not set
+# CONFIG_ED is not set
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=4096
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+# CONFIG_FEATURE_ALLOW_EXEC is not set
+
+#
+# Finding Utilities
+#
+# CONFIG_FIND is not set
+# CONFIG_FEATURE_FIND_PRINT0 is not set
+# CONFIG_FEATURE_FIND_MTIME is not set
+# CONFIG_FEATURE_FIND_MMIN is not set
+# CONFIG_FEATURE_FIND_PERM is not set
+# CONFIG_FEATURE_FIND_TYPE is not set
+# CONFIG_FEATURE_FIND_XDEV is not set
+# CONFIG_FEATURE_FIND_MAXDEPTH is not set
+# CONFIG_FEATURE_FIND_NEWER is not set
+# CONFIG_FEATURE_FIND_INUM is not set
+# CONFIG_FEATURE_FIND_EXEC is not set
+# CONFIG_FEATURE_FIND_USER is not set
+# CONFIG_FEATURE_FIND_GROUP is not set
+# CONFIG_FEATURE_FIND_NOT is not set
+# CONFIG_FEATURE_FIND_DEPTH is not set
+# CONFIG_FEATURE_FIND_PAREN is not set
+# CONFIG_FEATURE_FIND_SIZE is not set
+# CONFIG_FEATURE_FIND_PRUNE is not set
+# CONFIG_FEATURE_FIND_DELETE is not set
+# CONFIG_FEATURE_FIND_PATH is not set
+# CONFIG_FEATURE_FIND_REGEX is not set
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+# CONFIG_FEATURE_FIND_LINKS is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+# CONFIG_FEATURE_GREP_FGREP_ALIAS is not set
+# CONFIG_FEATURE_GREP_CONTEXT is not set
+# CONFIG_XARGS is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
+
+#
+# Init Utilities
+#
+# CONFIG_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+CONFIG_HALT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+# CONFIG_INIT is not set
+# CONFIG_FEATURE_USE_INITTAB is not set
+# CONFIG_FEATURE_KILL_REMOVED is not set
+CONFIG_FEATURE_KILL_DELAY=0
+# CONFIG_FEATURE_INIT_SCTTY is not set
+# CONFIG_FEATURE_INIT_SYSLOG is not set
+# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_INIT_TERMINAL_TYPE=""
+# CONFIG_MESG is not set
+
+#
+# Login/Password Management Utilities
+#
+# CONFIG_ADD_SHELL is not set
+# CONFIG_REMOVE_SHELL is not set
+# CONFIG_FEATURE_SHADOWPASSWDS is not set
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+# CONFIG_USE_BB_CRYPT is not set
+# CONFIG_USE_BB_CRYPT_SHA is not set
+# CONFIG_ADDUSER is not set
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+# CONFIG_FEATURE_CHECK_NAMES is not set
+CONFIG_FIRST_SYSTEM_ID=0
+CONFIG_LAST_SYSTEM_ID=0
+# CONFIG_ADDGROUP is not set
+# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
+# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
+# CONFIG_DELUSER is not set
+# CONFIG_DELGROUP is not set
+# CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
+# CONFIG_GETTY is not set
+# CONFIG_LOGIN is not set
+# CONFIG_PAM is not set
+# CONFIG_LOGIN_SCRIPTS is not set
+# CONFIG_FEATURE_NOLOGIN is not set
+# CONFIG_FEATURE_SECURETTY is not set
+# CONFIG_PASSWD is not set
+# CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
+# CONFIG_CRYPTPW is not set
+# CONFIG_CHPASSWD is not set
+# CONFIG_SU is not set
+# CONFIG_FEATURE_SU_SYSLOG is not set
+# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
+# CONFIG_SULOGIN is not set
+# CONFIG_VLOCK is not set
+
+#
+# Linux Ext2 FS Progs
+#
+# CONFIG_CHATTR is not set
+# CONFIG_FSCK is not set
+# CONFIG_LSATTR is not set
+# CONFIG_TUNE2FS is not set
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODINFO=y
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+CONFIG_INSMOD=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+# CONFIG_MODPROBE is not set
+# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
+# CONFIG_DEPMOD is not set
+
+#
+# Options common to multiple modutils
+#
+# CONFIG_FEATURE_2_4_MODULES is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+# CONFIG_FEATURE_MODUTILS_ALIAS is not set
+# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
+CONFIG_DEFAULT_MODULES_DIR=""
+CONFIG_DEFAULT_DEPMOD_FILE=""
+
+#
+# Linux System Utilities
+#
+# CONFIG_BLOCKDEV is not set
+# CONFIG_REV is not set
+# CONFIG_ACPID is not set
+# CONFIG_FEATURE_ACPID_COMPAT is not set
+# CONFIG_BLKID is not set
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+# CONFIG_FBSET is not set
+# CONFIG_FEATURE_FBSET_FANCY is not set
+# CONFIG_FEATURE_FBSET_READMODE is not set
+# CONFIG_FDFLUSH is not set
+# CONFIG_FDFORMAT is not set
+# CONFIG_FDISK is not set
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+# CONFIG_FEATURE_FDISK_WRITABLE is not set
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+# CONFIG_FEATURE_OSF_LABEL is not set
+# CONFIG_FEATURE_GPT_LABEL is not set
+# CONFIG_FEATURE_FDISK_ADVANCED is not set
+# CONFIG_FINDFS is not set
+# CONFIG_FLOCK is not set
+# CONFIG_FREERAMDISK is not set
+# CONFIG_FSCK_MINIX is not set
+# CONFIG_MKFS_EXT2 is not set
+# CONFIG_MKFS_MINIX is not set
+# CONFIG_FEATURE_MINIX2 is not set
+# CONFIG_MKFS_REISER is not set
+# CONFIG_MKFS_VFAT is not set
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=y
+CONFIG_HEXDUMP=y
+# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
+# CONFIG_HD is not set
+# CONFIG_HWCLOCK is not set
+# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
+# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+# CONFIG_IPCRM is not set
+# CONFIG_IPCS is not set
+CONFIG_LOSETUP=y
+# CONFIG_LSPCI is not set
+# CONFIG_LSUSB is not set
+# CONFIG_MDEV is not set
+# CONFIG_FEATURE_MDEV_CONF is not set
+# CONFIG_FEATURE_MDEV_RENAME is not set
+# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
+# CONFIG_FEATURE_MDEV_EXEC is not set
+# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+# CONFIG_MKSWAP is not set
+# CONFIG_FEATURE_MKSWAP_UUID is not set
+# CONFIG_MORE is not set
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+CONFIG_FEATURE_MOUNT_VERBOSE=y
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+# CONFIG_PIVOT_ROOT is not set
+# CONFIG_RDATE is not set
+# CONFIG_RDEV is not set
+# CONFIG_READPROFILE is not set
+# CONFIG_RTCWAKE is not set
+# CONFIG_SCRIPT is not set
+# CONFIG_SCRIPTREPLAY is not set
+# CONFIG_SETARCH is not set
+# CONFIG_SWAPONOFF is not set
+# CONFIG_FEATURE_SWAPON_PRI is not set
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
+# CONFIG_FEATURE_MTAB_SUPPORT is not set
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+# CONFIG_FEATURE_VOLUMEID_EXT is not set
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
+# CONFIG_FEATURE_VOLUMEID_FAT is not set
+# CONFIG_FEATURE_VOLUMEID_HFS is not set
+# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_XFS is not set
+# CONFIG_FEATURE_VOLUMEID_NTFS is not set
+# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
+# CONFIG_FEATURE_VOLUMEID_UDF is not set
+# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
+# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
+# CONFIG_FEATURE_VOLUMEID_SYSV is not set
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+# CONFIG_ADJTIMEX is not set
+# CONFIG_BBCONFIG is not set
+# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+# CONFIG_BEEP is not set
+CONFIG_FEATURE_BEEP_FREQ=0
+CONFIG_FEATURE_BEEP_LENGTH_MS=0
+# CONFIG_CHAT is not set
+# CONFIG_FEATURE_CHAT_NOFAIL is not set
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+# CONFIG_FEATURE_CHAT_IMPLICIT_CR is not set
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+# CONFIG_CHRT is not set
+# CONFIG_CROND is not set
+# CONFIG_FEATURE_CROND_D is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR=""
+# CONFIG_CRONTAB is not set
+# CONFIG_DC is not set
+# CONFIG_FEATURE_DC_LIBM is not set
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+# CONFIG_DEVMEM is not set
+# CONFIG_EJECT is not set
+# CONFIG_FEATURE_EJECT_SCSI is not set
+# CONFIG_FBSPLASH is not set
+# CONFIG_FLASHCP is not set
+# CONFIG_FLASH_LOCK is not set
+# CONFIG_FLASH_UNLOCK is not set
+# CONFIG_FLASH_ERASEALL is not set
+# CONFIG_IONICE is not set
+# CONFIG_INOTIFYD is not set
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_SMALL is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+# CONFIG_FEATURE_LESS_MARKS is not set
+# CONFIG_FEATURE_LESS_REGEXP is not set
+# CONFIG_FEATURE_LESS_WINCH is not set
+# CONFIG_FEATURE_LESS_DASHCMD is not set
+# CONFIG_FEATURE_LESS_LINENUMS is not set
+# CONFIG_HDPARM is not set
+# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
+# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
+# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
+# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+# CONFIG_MAKEDEVS is not set
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+# CONFIG_MOUNTPOINT is not set
+# CONFIG_MT is not set
+# CONFIG_RAIDAUTORUN is not set
+# CONFIG_READAHEAD is not set
+# CONFIG_RFKILL is not set
+# CONFIG_RUNLEVEL is not set
+# CONFIG_RX is not set
+# CONFIG_SETSID is not set
+CONFIG_STRINGS=y
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+# CONFIG_TIME is not set
+# CONFIG_TIMEOUT is not set
+# CONFIG_TTYSIZE is not set
+# CONFIG_VOLNAME is not set
+# CONFIG_WALL is not set
+# CONFIG_WATCHDOG is not set
+
+#
+# Networking Utilities
+#
+# CONFIG_NBDCLIENT is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_FEATURE_IPV6=y
+# CONFIG_FEATURE_UNIX_LOCAL is not set
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+# CONFIG_ARP is not set
+# CONFIG_ARPING is not set
+# CONFIG_BRCTL is not set
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+# CONFIG_DNSD is not set
+# CONFIG_ETHER_WAKE is not set
+# CONFIG_FAKEIDENTD is not set
+# CONFIG_FTPD is not set
+# CONFIG_FEATURE_FTP_WRITE is not set
+# CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
+# CONFIG_FTPGET is not set
+# CONFIG_FTPPUT is not set
+# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
+# CONFIG_HOSTNAME is not set
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+# CONFIG_FEATURE_HTTPD_GZIP is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+# CONFIG_IFENSLAVE is not set
+# CONFIG_IFPLUGD is not set
+# CONFIG_IFUPDOWN is not set
+CONFIG_IFUPDOWN_IFSTATE_PATH=""
+# CONFIG_FEATURE_IFUPDOWN_IP is not set
+# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
+# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
+# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
+# CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP is not set
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+# CONFIG_IPCALC is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
+# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_NAMEIF is not set
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NETSTAT=y
+CONFIG_FEATURE_NETSTAT_WIDE=y
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_PSCAN is not set
+CONFIG_ROUTE=y
+# CONFIG_SLATTACH is not set
+# CONFIG_TCPSVD is not set
+CONFIG_TELNET=y
+# CONFIG_FEATURE_TELNET_TTYPE is not set
+# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
+# CONFIG_TELNETD is not set
+# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+
+#
+# Common options for tftp/tftpd
+#
+CONFIG_FEATURE_TFTP_GET=y
+# CONFIG_FEATURE_TFTP_PUT is not set
+# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
+# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
+# CONFIG_TFTP_DEBUG is not set
+# CONFIG_TRACEROUTE is not set
+# CONFIG_TRACEROUTE6 is not set
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_TUNCTL is not set
+# CONFIG_FEATURE_TUNCTL_UG is not set
+# CONFIG_UDHCPD is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+# CONFIG_UDPSVD is not set
+# CONFIG_VCONFIG is not set
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+# CONFIG_ZCIP is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+# CONFIG_LPR is not set
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+# CONFIG_MAKEMIME is not set
+CONFIG_FEATURE_MIME_CHARSET=""
+# CONFIG_POPMAILDIR is not set
+# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
+# CONFIG_REFORMIME is not set
+# CONFIG_FEATURE_REFORMIME_COMPAT is not set
+# CONFIG_SENDMAIL is not set
+
+#
+# Process Utilities
+#
+# CONFIG_IOSTAT is not set
+# CONFIG_MPSTAT is not set
+# CONFIG_PMAP is not set
+# CONFIG_POWERTOP is not set
+# CONFIG_SMEMCAP is not set
+CONFIG_FREE=y
+# CONFIG_FUSER is not set
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+# CONFIG_KILLALL5 is not set
+# CONFIG_NMETER is not set
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+# CONFIG_PKILL is not set
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+# CONFIG_FEATURE_PS_TIME is not set
+# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+# CONFIG_RENICE is not set
+# CONFIG_BB_SYSCTL is not set
+# CONFIG_TOP is not set
+# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
+# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set
+# CONFIG_FEATURE_TOP_SMP_CPU is not set
+# CONFIG_FEATURE_TOP_DECIMALS is not set
+# CONFIG_FEATURE_TOP_SMP_PROCESS is not set
+# CONFIG_FEATURE_TOPMEM is not set
+# CONFIG_FEATURE_SHOW_THREADS is not set
+CONFIG_UPTIME=y
+# CONFIG_WATCH is not set
+
+#
+# Runit Utilities
+#
+# CONFIG_RUNSV is not set
+# CONFIG_RUNSVDIR is not set
+# CONFIG_FEATURE_RUNSVDIR_LOG is not set
+# CONFIG_SV is not set
+CONFIG_SV_DEFAULT_SERVICE_DIR=""
+# CONFIG_SVLOGD is not set
+# CONFIG_CHPST is not set
+# CONFIG_SETUIDGID is not set
+# CONFIG_ENVUIDGID is not set
+# CONFIG_ENVDIR is not set
+# CONFIG_SOFTLIMIT is not set
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Shells
+#
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+# CONFIG_ASH_MAIL is not set
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+# CONFIG_ASH_RANDOM_SUPPORT is not set
+CONFIG_ASH_EXPAND_PRMT=y
+CONFIG_CTTYHACK=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_BRACE_EXPANSION is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_SAVEHISTORY is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_MODE_X is not set
+# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
+CONFIG_SH_MATH_SUPPORT=y
+# CONFIG_SH_MATH_SUPPORT_64 is not set
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+
+#
+# System Logging Utilities
+#
+# CONFIG_SYSLOGD is not set
+# CONFIG_FEATURE_ROTATE_LOGFILE is not set
+# CONFIG_FEATURE_REMOTE_LOG is not set
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
+# CONFIG_FEATURE_IPC_SYSLOG is not set
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
+# CONFIG_LOGREAD is not set
+# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
+# CONFIG_KLOGD is not set
+# CONFIG_FEATURE_KLOGD_KLOGCTL is not set
+# CONFIG_LOGGER is not set
diff --git a/core/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch b/core/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch
new file mode 100644
index 000000000..a7592de09
--- /dev/null
+++ b/core/mkinitcpio-busybox/loadfont-setfont-optional-psf2-font-support.patch
@@ -0,0 +1,453 @@
+From 8ce1dc03c1b2b61e51527b987579c09c991cc4b2 Mon Sep 17 00:00:00 2001
+From: Harald Becker <ralda@gmx.de>
+Date: Sun, 21 Feb 2010 12:10:26 +0000
+Subject: loadfont/setfont: optional PSF2 font support
+
+Signed-off-by: Harald Becker <ralda@gmx.de>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+diff --git a/console-tools/Config.in b/console-tools/Config.in
+index cd0a931..195685b 100644
+--- a/console-tools/Config.in
++++ b/console-tools/Config.in
+@@ -135,4 +135,21 @@ config SHOWKEY
+ help
+ Shows keys pressed.
+
++comment "Common options for loadfont and setfont"
++ depends on LOADFONT || SETFONT
++
++config FEATURE_LOADFONT_PSF2
++ bool "Support for PSF2 console fonts"
++ default n
++ depends on LOADFONT || SETFONT
++ help
++ Support PSF2 console fonts.
++
++config FEATURE_LOADFONT_RAW
++ bool "Support for old (raw) console fonts"
++ default n
++ depends on LOADFONT || SETFONT
++ help
++ Support old (raw) console fonts.
++
+ endmenu
+diff --git a/console-tools/loadfont.c b/console-tools/loadfont.c
+index e833474..e51142c 100644
+--- a/console-tools/loadfont.c
++++ b/console-tools/loadfont.c
+@@ -13,7 +13,7 @@
+ #include <sys/kd.h>
+
+ #ifndef KDFONTOP
+-#define KDFONTOP 0x4B72
++# define KDFONTOP 0x4B72
+ struct console_font_op {
+ unsigned op; /* KD_FONT_OP_* */
+ unsigned flags; /* KD_FONT_FLAG_* */
+@@ -21,91 +21,137 @@ struct console_font_op {
+ unsigned charcount;
+ unsigned char *data; /* font data with height fixed to 32 */
+ };
+-
+-#define KD_FONT_OP_SET 0 /* Set font */
+-#define KD_FONT_OP_GET 1 /* Get font */
+-#define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default,
+- data points to name / NULL */
+-#define KD_FONT_OP_COPY 3 /* Copy from another console */
+-
+-#define KD_FONT_FLAG_OLD 0x80000000 /* Invoked via old interface */
+-#define KD_FONT_FLAG_DONT_RECALC 1 /* Don't call adjust_height() */
++# define KD_FONT_OP_SET 0 /* Set font */
++# define KD_FONT_OP_GET 1 /* Get font */
++# define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default, data points to name / NULL */
++# define KD_FONT_OP_COPY 3 /* Copy from another console */
++# define KD_FONT_FLAG_OLD 0x80000000 /* Invoked via old interface */
++# define KD_FONT_FLAG_DONT_RECALC 1 /* Don't call adjust_height() */
+ /* (Used internally for PIO_FONT support) */
+ #endif /* KDFONTOP */
+
+
+ enum {
+- PSF_MAGIC1 = 0x36,
+- PSF_MAGIC2 = 0x04,
+-
+- PSF_MODE512 = 0x01,
+- PSF_MODEHASTAB = 0x02,
+- PSF_MAXMODE = 0x03,
+- PSF_SEPARATOR = 0xffff
++ PSF1_MAGIC0 = 0x36,
++ PSF1_MAGIC1 = 0x04,
++ PSF1_MODE512 = 0x01,
++ PSF1_MODEHASTAB = 0x02,
++ PSF1_MODEHASSEQ = 0x04,
++ PSF1_MAXMODE = 0x05,
++ PSF1_STARTSEQ = 0xfffe,
++ PSF1_SEPARATOR = 0xffff,
+ };
+
+-struct psf_header {
+- unsigned char magic1, magic2; /* Magic number */
++struct psf1_header {
++ unsigned char magic[2]; /* Magic number */
+ unsigned char mode; /* PSF font mode */
+ unsigned char charsize; /* Character size */
+ };
+
+-#define PSF_MAGIC_OK(x) ((x)->magic1 == PSF_MAGIC1 && (x)->magic2 == PSF_MAGIC2)
++#define psf1h(x) ((struct psf1_header*)(x))
++
++#define PSF1_MAGIC_OK(x) ( \
++ (x)->magic[0] == PSF1_MAGIC0 \
++ && (x)->magic[1] == PSF1_MAGIC1 \
++)
++
++#if ENABLE_FEATURE_LOADFONT_PSF2
++enum {
++ PSF2_MAGIC0 = 0x72,
++ PSF2_MAGIC1 = 0xb5,
++ PSF2_MAGIC2 = 0x4a,
++ PSF2_MAGIC3 = 0x86,
++ PSF2_HAS_UNICODE_TABLE = 0x01,
++ PSF2_MAXVERSION = 0,
++ PSF2_STARTSEQ = 0xfe,
++ PSF2_SEPARATOR = 0xff
++};
++
++struct psf2_header {
++ unsigned char magic[4];
++ unsigned int version;
++ unsigned int headersize; /* offset of bitmaps in file */
++ unsigned int flags;
++ unsigned int length; /* number of glyphs */
++ unsigned int charsize; /* number of bytes for each character */
++ unsigned int height; /* max dimensions of glyphs */
++ unsigned int width; /* charsize = height * ((width + 7) / 8) */
++};
++
++#define psf2h(x) ((struct psf2_header*)(x))
++
++#define PSF2_MAGIC_OK(x) ( \
++ (x)->magic[0] == PSF2_MAGIC0 \
++ && (x)->magic[1] == PSF2_MAGIC1 \
++ && (x)->magic[2] == PSF2_MAGIC2 \
++ && (x)->magic[3] == PSF2_MAGIC3 \
++)
++#endif /* ENABLE_FEATURE_LOADFONT_PSF2 */
+
+-static void do_loadfont(int fd, unsigned char *inbuf, int unit, int fontsize)
++
++static void do_loadfont(int fd, unsigned char *inbuf, int height, int width, int charsize, int fontsize)
+ {
+- char *buf;
++ unsigned char *buf;
++ int charwidth = 32 * ((width+7)/8);
+ int i;
+
+- if (unit < 1 || unit > 32)
+- bb_error_msg_and_die("bad character size %d", unit);
++ if (height < 1 || height > 32 || width < 1 || width > 32)
++ bb_error_msg_and_die("bad character size %dx%d", height, width);
+
+- buf = xzalloc(16 * 1024);
++ buf = xzalloc(charwidth * ((fontsize < 128) ? 128 : fontsize));
+ for (i = 0; i < fontsize; i++)
+- memcpy(buf + (32 * i), inbuf + (unit * i), unit);
++ memcpy(buf + (i*charwidth), inbuf + (i*charsize), charsize);
+
+ { /* KDFONTOP */
+ struct console_font_op cfo;
+-
+ cfo.op = KD_FONT_OP_SET;
+ cfo.flags = 0;
+- cfo.width = 8;
+- cfo.height = unit;
++ cfo.width = width;
++ cfo.height = height;
+ cfo.charcount = fontsize;
+- cfo.data = (void*)buf;
+-#if 0
+- if (!ioctl_or_perror(fd, KDFONTOP, &cfo, "KDFONTOP ioctl failed (will try PIO_FONTX)"))
+- goto ret; /* success */
+-#else
++ cfo.data = buf;
+ xioctl(fd, KDFONTOP, &cfo);
+-#endif
+ }
+
+-#if 0
+-/* These ones do not honour -C tty (they set font on current tty regardless)
+- * On x86, this distinction is visible on framebuffer consoles
+- * (regular character consoles may have only one shared font anyway)
+- */
+-#if defined(PIO_FONTX) && !defined(__sparc__)
+- {
+- struct consolefontdesc cfd;
+-
+- cfd.charcount = fontsize;
+- cfd.charheight = unit;
+- cfd.chardata = buf;
+-
+- if (!ioctl_or_perror(fd, PIO_FONTX, &cfd, "PIO_FONTX ioctl failed (will try PIO_FONT)"))
+- goto ret; /* success */
+- }
+-#endif
+- xioctl(fd, PIO_FONT, buf);
+- ret:
+-#endif /* 0 */
+ free(buf);
+ }
+
+-static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize)
++/*
++ * Format of the Unicode information:
++ *
++ * For each font position <uc>*<seq>*<term>
++ * where <uc> is a 2-byte little endian Unicode value (PSF1)
++ * or an UTF-8 coded value (PSF2),
++ * <seq> = <ss><uc><uc>*, <ss> = psf1 ? 0xFFFE : 0xFE,
++ * <term> = psf1 ? 0xFFFF : 0xFF.
++ * and * denotes zero or more occurrences of the preceding item.
++ *
++ * Semantics:
++ * The leading <uc>* part gives Unicode symbols that are all
++ * represented by this font position. The following sequences
++ * are sequences of Unicode symbols - probably a symbol
++ * together with combining accents - also represented by
++ * this font position.
++ *
++ * Example:
++ * At the font position for a capital A-ring glyph, we
++ * may have:
++ * 00C5,212B,FFFE,0041,030A,FFFF
++ * Some font positions may be described by sequences only,
++ * namely when there is no precomposed Unicode value for the glyph.
++ */
++#if !ENABLE_FEATURE_LOADFONT_PSF2
++#define do_loadtable(fd, inbuf, tailsz, fontsize, psf2) \
++ do_loadtable(fd, inbuf, tailsz, fontsize)
++#endif
++static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize, int psf2)
+ {
++#if !ENABLE_FEATURE_LOADFONT_PSF2
++/* gcc 4.3.1 code size: */
++# define psf2 0 /* +0 bytes */
++// const int psf2 = 0; /* +8 bytes */
++// enum { psf2 = 0 }; /* +13 bytes */
++#endif
+ struct unimapinit advice;
+ struct unimapdesc ud;
+ struct unipair *up;
+@@ -114,15 +160,48 @@ static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize)
+ uint16_t unicode;
+
+ maxct = tailsz; /* more than enough */
+- up = xmalloc(maxct * sizeof(struct unipair));
++ up = xmalloc(maxct * sizeof(*up));
+
+ for (glyph = 0; glyph < fontsize; glyph++) {
+- while (tailsz >= 2) {
+- unicode = (((uint16_t) inbuf[1]) << 8) + inbuf[0];
+- tailsz -= 2;
+- inbuf += 2;
+- if (unicode == PSF_SEPARATOR)
+- break;
++ while (tailsz > 0) {
++ if (!psf2) { /* PSF1 */
++ unicode = (((uint16_t) inbuf[1]) << 8) + inbuf[0];
++ tailsz -= 2;
++ inbuf += 2;
++ if (unicode == PSF1_SEPARATOR)
++ break;
++ } else { /* PSF2 */
++#if ENABLE_FEATURE_LOADFONT_PSF2
++ --tailsz;
++ unicode = *inbuf++;
++ if (unicode == PSF2_SEPARATOR) {
++ break;
++ } else if (unicode == PSF2_STARTSEQ) {
++ bb_error_msg_and_die("unicode sequences not implemented");
++ } else if (unicode >= 0xC0) {
++ if (unicode >= 0xFC)
++ unicode &= 0x01, maxct = 5;
++ else if (unicode >= 0xF8)
++ unicode &= 0x03, maxct = 4;
++ else if (unicode >= 0xF0)
++ unicode &= 0x07, maxct = 3;
++ else if (unicode >= 0xE0)
++ unicode &= 0x0F, maxct = 2;
++ else
++ unicode &= 0x1F, maxct = 1;
++ do {
++ if (tailsz <= 0 || *inbuf < 0x80 || *inbuf > 0xBF)
++ bb_error_msg_and_die("illegal UTF-8 character");
++ --tailsz;
++ unicode = (unicode << 6) + (*inbuf++ & 0x3F);
++ } while (--maxct > 0);
++ } else if (unicode >= 0x80) {
++ bb_error_msg_and_die("illegal UTF-8 character");
++ }
++#else
++ return;
++#endif
++ }
+ up[ct].unicode = unicode;
+ up[ct].fontpos = glyph;
+ ct++;
+@@ -139,58 +218,78 @@ static void do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize)
+ ud.entry_ct = ct;
+ ud.entries = up;
+ xioctl(fd, PIO_UNIMAP, &ud);
++#undef psf2
+ }
+
+-static void do_load(int fd, struct psf_header *psfhdr, size_t len)
++static void do_load(int fd, unsigned char *buffer, size_t len)
+ {
+- int unit;
+- int fontsize;
+- int hastable;
+- unsigned head0, head = head;
+-
+- /* test for psf first */
+- if (len >= sizeof(struct psf_header) && PSF_MAGIC_OK(psfhdr)) {
+- if (psfhdr->mode > PSF_MAXMODE)
++ int height;
++ int width = 8;
++ int charsize;
++ int fontsize = 256;
++ int has_table = 0;
++ unsigned char *font = buffer;
++ unsigned char *table;
++
++ if (len >= sizeof(struct psf1_header) && PSF1_MAGIC_OK(psf1h(buffer))) {
++ if (psf1h(buffer)->mode > PSF1_MAXMODE)
+ bb_error_msg_and_die("unsupported psf file mode");
+- fontsize = ((psfhdr->mode & PSF_MODE512) ? 512 : 256);
+-#if !defined(PIO_FONTX) || defined(__sparc__)
+- if (fontsize != 256)
+- bb_error_msg_and_die("only fontsize 256 supported");
++ if (psf1h(buffer)->mode & PSF1_MODE512)
++ fontsize = 512;
++ if (psf1h(buffer)->mode & PSF1_MODEHASTAB)
++ has_table = 1;
++ height = charsize = psf1h(buffer)->charsize;
++ font += sizeof(struct psf1_header);
++ } else
++#if ENABLE_FEATURE_LOADFONT_PSF2
++ if (len >= sizeof(struct psf2_header) && PSF2_MAGIC_OK(psf2h(buffer))) {
++ if (psf2h(buffer)->version > PSF2_MAXVERSION)
++ bb_error_msg_and_die("unsupported psf file version");
++ fontsize = psf2h(buffer)->length;
++ if (psf2h(buffer)->flags & PSF2_HAS_UNICODE_TABLE)
++ has_table = 2;
++ charsize = psf2h(buffer)->charsize;
++ height = psf2h(buffer)->height;
++ width = psf2h(buffer)->width;
++ font += psf2h(buffer)->headersize;
++ } else
+ #endif
+- hastable = (psfhdr->mode & PSF_MODEHASTAB);
+- unit = psfhdr->charsize;
+- head0 = sizeof(struct psf_header);
+-
+- head = head0 + fontsize * unit;
+- if (head > len || (!hastable && head != len))
+- bb_error_msg_and_die("input file: bad length");
+- } else {
+- /* file with three code pages? */
+- if (len == 9780) {
+- head0 = 40;
+- unit = 16;
+- } else {
+- /* bare font */
+- if (len & 0377)
+- bb_error_msg_and_die("input file: bad length");
+- head0 = 0;
+- unit = len / 256;
+- }
+- fontsize = 256;
+- hastable = 0;
++#if ENABLE_FEATURE_LOADFONT_RAW
++ if (len == 9780) { /* file with three code pages? */
++ charsize = height = 16;
++ font += 40;
++ } else if ((len & 0377) == 0) { /* bare font */
++ charsize = height = len / 256;
++ } else
++#endif
++ {
++ bb_error_msg_and_die("input file: bad length or unsupported font type");
+ }
+
+- do_loadfont(fd, (unsigned char *)psfhdr + head0, unit, fontsize);
+- if (hastable)
+- do_loadtable(fd, (unsigned char *)psfhdr + head, len - head, fontsize);
++#if !defined(PIO_FONTX) || defined(__sparc__)
++ if (fontsize != 256)
++ bb_error_msg_and_die("only fontsize 256 supported");
++#endif
++
++ table = font + fontsize * charsize;
++ buffer += len;
++
++ if (table > buffer || (!has_table && table != buffer))
++ bb_error_msg_and_die("input file: bad length");
++
++ do_loadfont(fd, font, height, width, charsize, fontsize);
++
++ if (has_table)
++ do_loadtable(fd, table, buffer - table, fontsize, has_table - 1);
+ }
+
++
+ #if ENABLE_LOADFONT
+ int loadfont_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int loadfont_main(int argc UNUSED_PARAM, char **argv)
+ {
+ size_t len;
+- struct psf_header *psfhdr;
++ unsigned char *buffer;
+
+ // no arguments allowed!
+ opt_complementary = "=0";
+@@ -202,11 +301,11 @@ int loadfont_main(int argc UNUSED_PARAM, char **argv)
+ * just read the entire file.
+ */
+ len = 32*1024; // can't be larger
+- psfhdr = xmalloc_read(STDIN_FILENO, &len);
++ buffer = xmalloc_read(STDIN_FILENO, &len);
+ // xmalloc_open_zipped_read_close(filename, &len);
+- if (!psfhdr)
++ if (!buffer)
+ bb_perror_msg_and_die("error reading input font");
+- do_load(get_console_fd_or_die(), psfhdr, len);
++ do_load(get_console_fd_or_die(), buffer, len);
+
+ return EXIT_SUCCESS;
+ }
+@@ -269,7 +368,7 @@ int setfont_main(int argc UNUSED_PARAM, char **argv)
+ size_t len;
+ unsigned opts;
+ int fd;
+- struct psf_header *psfhdr;
++ unsigned char *buffer;
+ char *mapfilename;
+ const char *tty_name = CURRENT_TTY;
+
+@@ -287,10 +386,10 @@ int setfont_main(int argc UNUSED_PARAM, char **argv)
+ }
+ // load font
+ len = 32*1024; // can't be larger
+- psfhdr = xmalloc_open_zipped_read_close(*argv, &len);
+- if (!psfhdr)
++ buffer = xmalloc_open_zipped_read_close(*argv, &len);
++ if (!buffer)
+ bb_simple_perror_msg_and_die(*argv);
+- do_load(fd, psfhdr, len);
++ do_load(fd, buffer, len);
+
+ // load the screen map, if any
+ if (opts & 1) { // -m
+--
+cgit v0.8.2.1
diff --git a/core/mkinitcpio-nfs-utils/PKGBUILD b/core/mkinitcpio-nfs-utils/PKGBUILD
new file mode 100644
index 000000000..962bb33ef
--- /dev/null
+++ b/core/mkinitcpio-nfs-utils/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 68748 2010-02-14 10:45:02Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=mkinitcpio-nfs-utils
+pkgver=0.2
+pkgrel=1
+pkgdesc="ipconfig and nfsmount tools for NFS root support in mkinitcpio"
+arch=('i686' 'x86_64')
+url="http://www.archlinux.org/"
+license=('GPL2')
+depends=('glibc')
+source=(ftp://ftp.archlinux.org/other/mkinitcpio/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('3f2839f21a420cd732d34e58f84534acdb7fc29f69381dbba3f00e3424201cd3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/mlocate/PKGBUILD b/core/mlocate/PKGBUILD
new file mode 100644
index 000000000..62f7864c3
--- /dev/null
+++ b/core/mlocate/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 97017 2010-10-26 01:53:05Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: lydgate
+
+pkgname=mlocate
+pkgver=0.23.1
+pkgrel=2
+pkgdesc="Faster merging drop-in for slocate"
+arch=('i686' 'x86_64')
+url="http://carolina.mff.cuni.cz/~trmac/blog/mlocate"
+license=('GPL')
+conflicts=('slocate')
+provides=('slocate')
+replaces=('slocate')
+depends=('glibc' 'coreutils' 'sh')
+backup=('etc/updatedb.conf'
+ 'etc/cron.daily/updatedb')
+install=mlocate.install
+source=(https://fedorahosted.org/releases/m/l/mlocate/mlocate-$pkgver.tar.xz
+ updatedb.conf
+ updatedb.cron.daily)
+md5sums=('db48f27fae91c754c46d8046919803c5'
+ 'c374ff223f2e07b5e602ba22359f2335'
+ 'cde5da81bebad2de556ef2e43d895e13')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Build!
+ sed -i '/^groupname /s/mlocate/locate/' Makefile.in
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib
+ make
+ make check
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Set up a default updatedb.conf and a daily cronjob
+ install -Dm644 ${srcdir}/updatedb.conf $pkgdir/etc/updatedb.conf
+ install -Dm744 ${srcdir}/updatedb.cron.daily $pkgdir/etc/cron.daily/updatedb
+
+ # Install Mlocate
+ make DESTDIR=$pkgdir install
+
+ ln -sv locate $pkgdir/usr/bin/slocate
+ chgrp -v 21 $pkgdir/usr/bin/locate
+ chmod -v 2755 $pkgdir/usr/bin/locate
+
+ install -dm755 $pkgdir/var/lib
+ install -d -m750 -g21 $pkgdir/var/lib/locate
+}
diff --git a/core/mlocate/mlocate.install b/core/mlocate/mlocate.install
new file mode 100644
index 000000000..c7b7f9cf7
--- /dev/null
+++ b/core/mlocate/mlocate.install
@@ -0,0 +1,18 @@
+post_install() {
+ post_upgrade "$1" "$1"
+ echo "mlocate command is technically locate, but slocate is symlinked and still works."
+ echo "You should run updatedb as root."
+}
+
+post_upgrade() {
+ # This can be removed after {m,x}locate have both been updated
+ getent group slocate &>/dev/null && usr/sbin/groupdel slocate &>/dev/null
+ getent group mlocate &>/dev/null && usr/sbin/groupdel mlocate &>/dev/null
+
+ getent group locate &>/dev/null || usr/sbin/groupadd -g 21 locate &>/dev/null
+ chown -R root:locate var/lib/mlocate
+}
+
+pre_remove() {
+ getent group locate &>/dev/null && usr/sbin/groupdel locate &>/dev/null
+}
diff --git a/core/mlocate/updatedb.conf b/core/mlocate/updatedb.conf
new file mode 100644
index 000000000..722b04205
--- /dev/null
+++ b/core/mlocate/updatedb.conf
@@ -0,0 +1,5 @@
+# directories to exclude from the slocate database:
+PRUNEPATHS="/media /mnt /tmp /var/tmp /var/cache /var/lock /var/run /var/spool"
+
+# filesystems to exclude from the slocate database:
+PRUNEFS="afs auto autofs binfmt_misc cifs coda configfs cramfs debugfs devpts devtmpfs ftpfs iso9660 mqueue ncpfs nfs nfs4 proc ramfs securityfs shfs smbfs sshfs sysfs tmpfs udf usbfs vboxsf"
diff --git a/core/mlocate/updatedb.cron.daily b/core/mlocate/updatedb.cron.daily
new file mode 100755
index 000000000..cac9bb063
--- /dev/null
+++ b/core/mlocate/updatedb.cron.daily
@@ -0,0 +1,29 @@
+#!/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
+
+UPDATEDB="/usr/bin/updatedb"
+
+if [ -x /usr/bin/nice ]; then
+ UPDATEDB="/usr/bin/nice -n ${NICE:-19} ${UPDATEDB}"
+fi
+
+if [ -x /usr/bin/ionice ]; then
+ UPDATEDB="/usr/bin/ionice -c ${IONICE_CLASS:-2} -n ${IONICE_PRIORITY:-7} ${UPDATEDB}"
+fi
+
+# Update the "locate" database
+if [ -x /usr/bin/updatedb ]; then
+ if [ -f /etc/updatedb.conf ]; then
+ ${UPDATEDB}
+ else
+ ${UPDATEDB} -f proc
+ fi
+fi
diff --git a/core/module-init-tools/PKGBUILD b/core/module-init-tools/PKGBUILD
new file mode 100644
index 000000000..9cf28c18d
--- /dev/null
+++ b/core/module-init-tools/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 105077 2011-01-06 02:59:10Z allan $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=module-init-tools
+pkgver=3.12
+pkgrel=2
+pkgdesc="utilities needed by Linux systems for managing loadable kernel modules"
+arch=('i686' 'x86_64')
+url="http://kerneltools.org"
+license=('GPL')
+depends=('glibc')
+backup=('etc/modprobe.d/modprobe.conf')
+source=(http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-$pkgver.tar.bz2
+ modprobe.conf)
+md5sums=('8b2257ce9abef74c4a44d825d23140f3'
+ '316f1bda4c21af02b30252eb014a0a55')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # do not regenerate man pages
+ touch *.{5,8}
+
+ ./configure --prefix=/usr --exec-prefix=/ --enable-zlib
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ # Install our custom (read: empty) modprobe.conf
+ install -Dm644 $srcdir/modprobe.conf $pkgdir/etc/modprobe.d/modprobe.conf
+
+ # fix man page (FS#17559)
+ sed -i "s#mod#man5/mod#" $pkgdir/usr/share/man/man5/modprobe.d.5
+}
diff --git a/core/module-init-tools/modprobe.conf b/core/module-init-tools/modprobe.conf
new file mode 100644
index 000000000..83865a3af
--- /dev/null
+++ b/core/module-init-tools/modprobe.conf
@@ -0,0 +1,3 @@
+#
+# /etc/modprobe.d/modprobe.conf (for v2.6 kernels)
+#
diff --git a/core/mpfr/PKGBUILD b/core/mpfr/PKGBUILD
new file mode 100644
index 000000000..89a3b1b25
--- /dev/null
+++ b/core/mpfr/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 101731 2010-12-01 03:50:59Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=mpfr
+_basever=3.0.0
+_patchlevel=p8
+pkgver=${_basever}.${_patchlevel}
+pkgrel=1
+pkgdesc="Multiple-precision floating-point library"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://www.mpfr.org/"
+depends=('gmp>=5.0')
+options=('!libtool')
+install=mpfr.install
+source=(http://www.mpfr.org/mpfr-current/mpfr-${_basever}.tar.xz
+ mpfr-${_basever}-${_patchlevel}.patch)
+md5sums=('8ab3bef2864b8c6e6a291f5603141bbd'
+ 'ac4591dea9abdd7573cd05a2fce2bb14')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_basever}"
+ patch -Np1 -i ${srcdir}/${pkgname}-${_basever}-${_patchlevel}.patch
+ ./configure --prefix=/usr --enable-thread-safe --enable-shared
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_basever}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/mpfr/mpfr-3.0.0-p8.patch b/core/mpfr/mpfr-3.0.0-p8.patch
new file mode 100644
index 000000000..e21571b52
--- /dev/null
+++ b/core/mpfr/mpfr-3.0.0-p8.patch
@@ -0,0 +1,1945 @@
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-06-23 11:02:49.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-06-23 11:03:36.000000000 +0000
+@@ -0,0 +1 @@
++mpfr_out_str
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-06-23 11:03:20.000000000 +0000
+@@ -1 +1 @@
+-3.0.0
++3.0.0-p1
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-06-23 11:03:20.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0"
++#define MPFR_VERSION_STRING "3.0.0-p1"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.0-a/mpfr.texi mpfr-3.0.0-b/mpfr.texi
+--- mpfr-3.0.0-a/mpfr.texi 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.texi 2010-06-23 11:03:12.000000000 +0000
+@@ -2050,7 +2050,7 @@
+ are printed. If @var{base} is greater than 10, @samp{@@} will be used
+ instead of @samp{e} as exponent delimiter.
+
+-Return the number of bytes written, or if an error occurred, return 0.
++Return the number of characters written, or if an error occurred, return 0.
+ @end deftypefun
+
+ @deftypefun size_t mpfr_inp_str (mpfr_t @var{rop}, FILE *@var{stream}, int @var{base}, mpfr_rnd_t @var{rnd})
+diff -Naurd mpfr-3.0.0-a/out_str.c mpfr-3.0.0-b/out_str.c
+--- mpfr-3.0.0-a/out_str.c 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/out_str.c 2010-06-23 11:03:12.000000000 +0000
+@@ -22,6 +22,16 @@
+
+ #include "mpfr-impl.h"
+
++/* Warning! S should not contain "%". */
++#define OUT_STR_RET(S) \
++ do \
++ { \
++ int r; \
++ r = fprintf (stream, (S)); \
++ return r < 0 ? 0 : r; \
++ } \
++ while (0)
++
+ size_t
+ mpfr_out_str (FILE *stream, int base, size_t n_digits, mpfr_srcptr op,
+ mpfr_rnd_t rnd_mode)
+@@ -29,6 +39,7 @@
+ char *s, *s0;
+ size_t l;
+ mpfr_exp_t e;
++ int err;
+
+ MPFR_ASSERTN (base >= 2 && base <= 62);
+
+@@ -36,37 +47,16 @@
+ if (stream == NULL)
+ stream = stdout;
+
+- if (MPFR_IS_NAN(op))
+- {
+- fprintf (stream, "@NaN@");
+- return 3;
+- }
+-
+- if (MPFR_IS_INF(op))
+- {
+- if (MPFR_SIGN(op) > 0)
+- {
+- fprintf (stream, "@Inf@");
+- return 3;
+- }
+- else
+- {
+- fprintf (stream, "-@Inf@");
+- return 4;
+- }
+- }
+-
+- if (MPFR_IS_ZERO(op))
++ if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (op)))
+ {
+- if (MPFR_SIGN(op) > 0)
+- {
+- fprintf(stream, "0");
+- return 1;
+- }
++ if (MPFR_IS_NAN (op))
++ OUT_STR_RET ("@NaN@");
++ else if (MPFR_IS_INF (op))
++ OUT_STR_RET (MPFR_IS_POS (op) ? "@Inf@" : "-@Inf@");
+ else
+ {
+- fprintf(stream, "-0");
+- return 2;
++ MPFR_ASSERTD (MPFR_IS_ZERO (op));
++ OUT_STR_RET (MPFR_IS_POS (op) ? "0" : "-0");
+ }
+ }
+
+@@ -77,21 +67,31 @@
+
+ l = strlen (s) + 1; /* size of allocated block returned by mpfr_get_str
+ - may be incorrect, as only an upper bound? */
+- if (*s == '-')
+- fputc (*s++, stream);
+
+- /* outputs mantissa */
+- fputc (*s++, stream); e--; /* leading digit */
+- fputc ((unsigned char) MPFR_DECIMAL_POINT, stream);
+- fputs (s, stream); /* rest of mantissa */
++ /* outputs possible sign and significand */
++ err = (*s == '-' && fputc (*s++, stream) == EOF)
++ || fputc (*s++, stream) == EOF /* leading digit */
++ || fputc ((unsigned char) MPFR_DECIMAL_POINT, stream) == EOF
++ || fputs (s, stream) == EOF; /* trailing significand */
+ (*__gmp_free_func) (s0, l);
++ if (MPFR_UNLIKELY (err))
++ return 0;
++
++ e--; /* due to the leading digit */
+
+ /* outputs exponent */
+ if (e)
+ {
++ int r;
++
+ MPFR_ASSERTN(e >= LONG_MIN);
+ MPFR_ASSERTN(e <= LONG_MAX);
+- l += fprintf (stream, (base <= 10 ? "e%ld" : "@%ld"), (long) e);
++
++ r = fprintf (stream, (base <= 10 ? "e%ld" : "@%ld"), (long) e);
++ if (MPFR_UNLIKELY (r < 0))
++ return 0;
++
++ l += r;
+ }
+
+ return l;
+diff -Naurd mpfr-3.0.0-a/tests/tout_str.c mpfr-3.0.0-b/tests/tout_str.c
+--- mpfr-3.0.0-a/tests/tout_str.c 2010-06-10 11:00:13.000000000 +0000
++++ mpfr-3.0.0-b/tests/tout_str.c 2010-06-23 11:03:12.000000000 +0000
+@@ -46,22 +46,54 @@
+ special (void)
+ {
+ mpfr_t x;
++ unsigned int n;
+
+ mpfr_init (x);
+
+ mpfr_set_nan (x);
+- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ if (n != 5)
++ {
++ printf ("Error: mpfr_out_str (file, 10, 0, NaN, MPFR_RNDN) wrote %u "
++ "characters instead of 5.\n", n);
++ exit (1);
++ }
+
+ mpfr_set_inf (x, 1);
+- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ if (n != 5)
++ {
++ printf ("Error: mpfr_out_str (file, 10, 0, +Inf, MPFR_RNDN) wrote %u "
++ "characters instead of 5.\n", n);
++ exit (1);
++ }
+
+ mpfr_set_inf (x, -1);
+- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ if (n != 6)
++ {
++ printf ("Error: mpfr_out_str (file, 10, 0, -Inf, MPFR_RNDN) wrote %u "
++ "characters instead of 6.\n", n);
++ exit (1);
++ }
+
+ mpfr_set_ui (x, 0, MPFR_RNDN);
+- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ if (n != 1)
++ {
++ printf ("Error: mpfr_out_str (file, 10, 0, +0, MPFR_RNDN) wrote %u "
++ "characters instead of 1.\n", n);
++ exit (1);
++ }
++
+ mpfr_neg (x, x, MPFR_RNDN);
+- mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ n = mpfr_out_str (fout, 10, 0, x, MPFR_RNDN);
++ if (n != 2)
++ {
++ printf ("Error: mpfr_out_str (file, 10, 0, -0, MPFR_RNDN) wrote %u "
++ "characters instead of 2.\n", n);
++ exit (1);
++ }
+
+ mpfr_clear (x);
+ }
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-06-23 11:03:20.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0";
++ return "3.0.0-p1";
+ }
+diff -Naurd mpfr-3.0.0-a/Makefile.in mpfr-3.0.0-b/Makefile.in
+--- mpfr-3.0.0-a/Makefile.in 2010-06-10 11:00:52.000000000 +0000
++++ mpfr-3.0.0-b/Makefile.in 2010-06-10 11:00:52.000000000 +0000
+@@ -239,6 +239,7 @@
+ distuninstallcheck_listfiles = find . -type f -print
+ distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
++ALLOCA = @ALLOCA@
+ AMTAR = @AMTAR@
+ AR = @AR@
+ AS = @AS@
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-06-23 11:03:36.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-06-25 13:23:13.000000000 +0000
+@@ -0,0 +1 @@
++alloca
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-06-23 11:03:20.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-06-25 13:23:13.000000000 +0000
+@@ -1 +1 @@
+-3.0.0-p1
++3.0.0-p2
+diff -Naurd mpfr-3.0.0-a/acinclude.m4 mpfr-3.0.0-b/acinclude.m4
+--- mpfr-3.0.0-a/acinclude.m4 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/acinclude.m4 2010-06-10 11:00:14.000000000 +0000
+@@ -59,6 +59,9 @@
+ dnl sys/fpu.h - MIPS specific
+ AC_CHECK_HEADERS([sys/time.h sys/fpu.h])
+
++dnl Check how to get `alloca'
++AC_FUNC_ALLOCA
++
+ dnl SIZE_MAX macro
+ gl_SIZE_MAX
+
+diff -Naurd mpfr-3.0.0-a/configure mpfr-3.0.0-b/configure
+--- mpfr-3.0.0-a/configure 2010-06-10 11:00:51.000000000 +0000
++++ mpfr-3.0.0-b/configure 2010-06-25 13:23:05.000000000 +0000
+@@ -783,6 +783,7 @@
+ OBJDUMP
+ DLLTOOL
+ AS
++ALLOCA
+ MPFR_LIBM
+ ANSI2KNR
+ U
+@@ -5622,6 +5623,197 @@
+ done
+
+
++# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
++# for constant arguments. Useless!
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
++$as_echo_n "checking for working alloca.h... " >&6; }
++if test "${ac_cv_working_alloca_h+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#include <alloca.h>
++int
++main ()
++{
++char *p = (char *) alloca (2 * sizeof (int));
++ if (p) return 0;
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++ ac_cv_working_alloca_h=yes
++else
++ ac_cv_working_alloca_h=no
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
++$as_echo "$ac_cv_working_alloca_h" >&6; }
++if test $ac_cv_working_alloca_h = yes; then
++
++$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
++
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
++$as_echo_n "checking for alloca... " >&6; }
++if test "${ac_cv_func_alloca_works+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#ifdef __GNUC__
++# define alloca __builtin_alloca
++#else
++# ifdef _MSC_VER
++# include <malloc.h>
++# define alloca _alloca
++# else
++# ifdef HAVE_ALLOCA_H
++# include <alloca.h>
++# else
++# ifdef _AIX
++ #pragma alloca
++# else
++# ifndef alloca /* predefined by HP cc +Olibcalls */
++char *alloca ();
++# endif
++# endif
++# endif
++# endif
++#endif
++
++int
++main ()
++{
++char *p = (char *) alloca (1);
++ if (p) return 0;
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_link "$LINENO"; then :
++ ac_cv_func_alloca_works=yes
++else
++ ac_cv_func_alloca_works=no
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
++$as_echo "$ac_cv_func_alloca_works" >&6; }
++
++if test $ac_cv_func_alloca_works = yes; then
++
++$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
++
++else
++ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
++# that cause trouble. Some versions do not even contain alloca or
++# contain a buggy version. If you still want to use their alloca,
++# use ar to extract alloca.o from them instead of compiling alloca.c.
++
++ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
++
++$as_echo "#define C_ALLOCA 1" >>confdefs.h
++
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
++$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
++if test "${ac_cv_os_cray+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#if defined CRAY && ! defined CRAY2
++webecray
++#else
++wenotbecray
++#endif
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++ $EGREP "webecray" >/dev/null 2>&1; then :
++ ac_cv_os_cray=yes
++else
++ ac_cv_os_cray=no
++fi
++rm -f conftest*
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
++$as_echo "$ac_cv_os_cray" >&6; }
++if test $ac_cv_os_cray = yes; then
++ for ac_func in _getb67 GETB67 getb67; do
++ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
++ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
++eval as_val=\$$as_ac_var
++ if test "x$as_val" = x""yes; then :
++
++cat >>confdefs.h <<_ACEOF
++#define CRAY_STACKSEG_END $ac_func
++_ACEOF
++
++ break
++fi
++
++ done
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
++$as_echo_n "checking stack direction for C alloca... " >&6; }
++if test "${ac_cv_c_stack_direction+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++else
++ if test "$cross_compiling" = yes; then :
++ ac_cv_c_stack_direction=0
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++$ac_includes_default
++int
++find_stack_direction ()
++{
++ static char *addr = 0;
++ auto char dummy;
++ if (addr == 0)
++ {
++ addr = &dummy;
++ return find_stack_direction ();
++ }
++ else
++ return (&dummy > addr) ? 1 : -1;
++}
++
++int
++main ()
++{
++ return find_stack_direction () < 0;
++}
++_ACEOF
++if ac_fn_c_try_run "$LINENO"; then :
++ ac_cv_c_stack_direction=1
++else
++ ac_cv_c_stack_direction=-1
++fi
++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
++ conftest.$ac_objext conftest.beam conftest.$ac_ext
++fi
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
++$as_echo "$ac_cv_c_stack_direction" >&6; }
++cat >>confdefs.h <<_ACEOF
++#define STACK_DIRECTION $ac_cv_c_stack_direction
++_ACEOF
++
++
++fi
++
++
+
+ for ac_header in stdint.h
+ do :
+@@ -7564,13 +7756,13 @@
+ else
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+- (eval echo "\"\$as_me:7567: $ac_compile\"" >&5)
++ (eval echo "\"\$as_me:7759: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+- (eval echo "\"\$as_me:7570: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
++ (eval echo "\"\$as_me:7762: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+- (eval echo "\"\$as_me:7573: output\"" >&5)
++ (eval echo "\"\$as_me:7765: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+@@ -8772,7 +8964,7 @@
+ ;;
+ *-*-irix6*)
+ # Find out which ABI we are using.
+- echo '#line 8775 "configure"' > conftest.$ac_ext
++ echo '#line 8967 "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+@@ -10032,11 +10224,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:10035: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:10227: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:10039: \$? = $ac_status" >&5
++ echo "$as_me:10231: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -10371,11 +10563,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:10374: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:10566: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+- echo "$as_me:10378: \$? = $ac_status" >&5
++ echo "$as_me:10570: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+@@ -10476,11 +10668,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:10479: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:10671: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:10483: \$? = $ac_status" >&5
++ echo "$as_me:10675: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -10531,11 +10723,11 @@
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+- (eval echo "\"\$as_me:10534: $lt_compile\"" >&5)
++ (eval echo "\"\$as_me:10726: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+- echo "$as_me:10538: \$? = $ac_status" >&5
++ echo "$as_me:10730: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+@@ -12915,7 +13107,7 @@
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 12918 "configure"
++#line 13110 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+@@ -13011,7 +13203,7 @@
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+-#line 13014 "configure"
++#line 13206 "configure"
+ #include "confdefs.h"
+
+ #if HAVE_DLFCN_H
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-06-23 11:03:20.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-06-25 13:23:13.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0-p1"
++#define MPFR_VERSION_STRING "3.0.0-p2"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.0-a/tests/Makefile.in mpfr-3.0.0-b/tests/Makefile.in
+--- mpfr-3.0.0-a/tests/Makefile.in 2010-06-10 11:00:52.000000000 +0000
++++ mpfr-3.0.0-b/tests/Makefile.in 2010-06-10 11:00:52.000000000 +0000
+@@ -960,6 +960,7 @@
+ red=; grn=; lgn=; blu=; std=
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
++ALLOCA = @ALLOCA@
+ AMTAR = @AMTAR@
+ AR = @AR@
+ AS = @AS@
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-06-23 11:03:20.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-06-25 13:23:13.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0-p1";
++ return "3.0.0-p2";
+ }
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-07-10 00:11:19.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-07-10 00:12:50.000000000 +0000
+@@ -0,0 +1 @@
++gamma_underflow
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-06-25 13:23:13.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-07-10 00:11:53.000000000 +0000
+@@ -1 +1 @@
+-3.0.0-p2
++3.0.0-p3
+diff -Naurd mpfr-3.0.0-a/gamma.c mpfr-3.0.0-b/gamma.c
+--- mpfr-3.0.0-a/gamma.c 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/gamma.c 2010-07-10 00:11:46.000000000 +0000
+@@ -274,7 +274,7 @@
+ /* we want an upper bound for x * [log(2-x)-1].
+ since x < 0, we need a lower bound on log(2-x) */
+ mpfr_ui_sub (xp, 2, x, MPFR_RNDD);
+- mpfr_log (xp, xp, MPFR_RNDD);
++ mpfr_log2 (xp, xp, MPFR_RNDD);
+ mpfr_sub_ui (xp, xp, 1, MPFR_RNDD);
+ mpfr_mul (xp, xp, x, MPFR_RNDU);
+
+@@ -303,8 +303,8 @@
+ {
+ mpfr_sub (tmp, tmp, tmp2, MPFR_RNDZ); /* low bnd on |sin(Pi*(2-x))| */
+ mpfr_ui_div (tmp, 12, tmp, MPFR_RNDU); /* upper bound */
+- mpfr_log (tmp, tmp, MPFR_RNDU);
+- mpfr_add (tmp, tmp, xp, MPFR_RNDU);
++ mpfr_log2 (tmp, tmp, MPFR_RNDU);
++ mpfr_add (xp, tmp, xp, MPFR_RNDU);
+ underflow = mpfr_cmp_si (xp, expo.saved_emin - 2) <= 0;
+ }
+
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-06-25 13:23:13.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-07-10 00:11:53.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0-p2"
++#define MPFR_VERSION_STRING "3.0.0-p3"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.0-a/tests/tgamma.c mpfr-3.0.0-b/tests/tgamma.c
+--- mpfr-3.0.0-a/tests/tgamma.c 2010-06-10 11:00:13.000000000 +0000
++++ mpfr-3.0.0-b/tests/tgamma.c 2010-07-10 00:11:46.000000000 +0000
+@@ -461,6 +461,20 @@
+ mpfr_clear (x);
+ }
+
++/* bug found by Stathis, only occurs on 32-bit machines */
++static void
++test20100709 (void)
++{
++ mpfr_t x;
++ int inex;
++
++ mpfr_init2 (x, 100);
++ mpfr_set_str (x, "-4.6308260837372266e+07", 10, MPFR_RNDN);
++ inex = mpfr_gamma (x, x, MPFR_RNDN);
++ MPFR_ASSERTN(MPFR_IS_ZERO(x) && MPFR_IS_NEG(x) && inex > 0);
++ mpfr_clear (x);
++}
++
+ int
+ main (int argc, char *argv[])
+ {
+@@ -471,6 +485,7 @@
+ test_generic (2, 100, 2);
+ gamma_integer ();
+ test20071231 ();
++ test20100709 ();
+
+ data_check ("data/gamma", mpfr_gamma, "mpfr_gamma");
+
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-06-25 13:23:13.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-07-10 00:11:53.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0-p2";
++ return "3.0.0-p3";
+ }
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-09-07 08:44:01.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-09-07 08:48:46.000000000 +0000
+@@ -0,0 +1 @@
++mpfr_cmp/set_ui/si
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-07-10 00:11:53.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-09-07 08:46:06.000000000 +0000
+@@ -1 +1 @@
+-3.0.0-p3
++3.0.0-p4
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-07-10 00:11:53.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-09-07 08:46:06.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0-p3"
++#define MPFR_VERSION_STRING "3.0.0-p4"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+@@ -798,35 +798,45 @@
+ anyway. Checking with other ICC versions is needed. Possibly detect
+ whether warnings are produced or not with a configure test.
+ + Remove C++ too, since it complains too much. */
++/* Added casts to improve robustness in case of undefined behavior and
++ compiler extensions based on UB (in particular -fwrapv). MPFR doesn't
++ use such extensions, but these macros will be used by 3rd-party code,
++ where such extensions may be required.
++ Moreover casts to unsigned long have been added to avoid warnings in
++ programs that use MPFR and are compiled with -Wconversion; such casts
++ are OK since if X is a constant expression, then (unsigned long) X is
++ also a constant expression, so that the optimizations still work. */
+ #if defined (__GNUC__) && !defined(__ICC) && !defined(__cplusplus)
+ #if (__GNUC__ >= 2)
+ #undef mpfr_cmp_ui
+-/* We use the fact that mpfr_sgn on NaN sets the erange flag and returns 0. */
+-#define mpfr_cmp_ui(_f,_u) \
+- (__builtin_constant_p (_u) && (_u) == 0 ? \
+- mpfr_sgn (_f) : \
+- mpfr_cmp_ui_2exp ((_f),(_u),0))
++/* We use the fact that mpfr_sgn on NaN sets the erange flag and returns 0.
++ But warning! mpfr_sgn is specified as a macro in the API, thus the macro
++ mustn't be used if side effects are possible, like here. */
++#define mpfr_cmp_ui(_f,_u) \
++ (__builtin_constant_p (_u) && (unsigned long) (_u) == 0 ? \
++ (mpfr_sgn) (_f) : \
++ mpfr_cmp_ui_2exp ((_f), (unsigned long) (_u), 0))
+ #undef mpfr_cmp_si
+-#define mpfr_cmp_si(_f,_s) \
+- (__builtin_constant_p (_s) && (_s) >= 0 ? \
+- mpfr_cmp_ui ((_f), (_s)) : \
+- mpfr_cmp_si_2exp ((_f), (_s), 0))
++#define mpfr_cmp_si(_f,_s) \
++ (__builtin_constant_p (_s) && (long) (_s) >= 0 ? \
++ mpfr_cmp_ui ((_f), (unsigned long) (long) (_s)) : \
++ mpfr_cmp_si_2exp ((_f), (long) (_s), 0))
+ #if __GNUC__ > 2 || __GNUC_MINOR__ >= 95
+ #undef mpfr_set_ui
+-#define mpfr_set_ui(_f,_u,_r) \
+- (__builtin_constant_p (_u) && (_u) == 0 ? \
+- __extension__ ({ \
+- mpfr_ptr _p = (_f); \
+- _p->_mpfr_sign = 1; \
+- _p->_mpfr_exp = __MPFR_EXP_ZERO; \
+- (void) (_r); 0; }) : \
+- mpfr_set_ui_2exp ((_f), (_u), 0, (_r)))
++#define mpfr_set_ui(_f,_u,_r) \
++ (__builtin_constant_p (_u) && (unsigned long) (_u) == 0 ? \
++ __extension__ ({ \
++ mpfr_ptr _p = (_f); \
++ _p->_mpfr_sign = 1; \
++ _p->_mpfr_exp = __MPFR_EXP_ZERO; \
++ (void) (_r); 0; }) : \
++ mpfr_set_ui_2exp ((_f), (unsigned long) (_u), 0, (_r)))
+ #endif
+ #undef mpfr_set_si
+-#define mpfr_set_si(_f,_s,_r) \
+- (__builtin_constant_p (_s) && (_s) >= 0 ? \
+- mpfr_set_ui ((_f), (_s), (_r)) : \
+- mpfr_set_si_2exp ((_f), (_s), 0, (_r)))
++#define mpfr_set_si(_f,_s,_r) \
++ (__builtin_constant_p (_s) && (long) (_s) >= 0 ? \
++ mpfr_set_ui ((_f), (unsigned long) (long) (_s), (_r)) : \
++ mpfr_set_si_2exp ((_f), (long) (_s), 0, (_r)))
+ #endif
+ #endif
+
+diff -Naurd mpfr-3.0.0-a/tests/tcmp_ui.c mpfr-3.0.0-b/tests/tcmp_ui.c
+--- mpfr-3.0.0-a/tests/tcmp_ui.c 2010-06-10 11:00:13.000000000 +0000
++++ mpfr-3.0.0-b/tests/tcmp_ui.c 2010-09-07 08:45:12.000000000 +0000
+@@ -88,6 +88,126 @@
+ mpfr_clear (x);
+ }
+
++/* Since mpfr_cmp_ui and mpfr_cmp_si are also implemented by a macro
++ with __builtin_constant_p for GCC, check that side effects are
++ handled correctly. */
++static void
++check_macros (void)
++{
++ mpfr_t x;
++ int c;
++
++ mpfr_init2 (x, 32);
++
++ c = 0;
++ mpfr_set_ui (x, 17, MPFR_RNDN);
++ if (mpfr_cmp_ui (x, 17) != 0)
++ {
++ printf ("Error 1 on mpfr_cmp_ui(x,17) in check_macros\n");
++ exit (1);
++ }
++ if (mpfr_cmp_ui (x, (c++, 17)) != 0)
++ {
++ printf ("Error 2 on mpfr_cmp_ui(x,17) in check_macros\n");
++ exit (1);
++ }
++ if (c != 1)
++ {
++ printf ("Error 3 on mpfr_cmp_ui(x,17) in check_macros\n"
++ "(c = %d instead of 1)\n", c);
++ exit (1);
++ }
++ if (mpfr_cmp_si (x, 17) != 0)
++ {
++ printf ("Error 1 on mpfr_cmp_si(x,17) in check_macros\n");
++ exit (1);
++ }
++ if (mpfr_cmp_si (x, (c++, 17)) != 0)
++ {
++ printf ("Error 2 on mpfr_cmp_si(x,17) in check_macros\n");
++ exit (1);
++ }
++ if (c != 2)
++ {
++ printf ("Error 3 on mpfr_cmp_si(x,17) in check_macros\n"
++ "(c = %d instead of 2)\n", c);
++ exit (1);
++ }
++
++ c = 0;
++ mpfr_set_ui (x, 0, MPFR_RNDN);
++ if (mpfr_cmp_ui (x, 0) != 0)
++ {
++ printf ("Error 1 on mpfr_cmp_ui(x,0) in check_macros\n");
++ exit (1);
++ }
++ if (mpfr_cmp_ui (x, (c++, 0)) != 0)
++ {
++ printf ("Error 2 on mpfr_cmp_ui(x,0) in check_macros\n");
++ exit (1);
++ }
++ if (c != 1)
++ {
++ printf ("Error 3 on mpfr_cmp_ui(x,0) in check_macros\n"
++ "(c = %d instead of 1)\n", c);
++ exit (1);
++ }
++ if (mpfr_cmp_si (x, 0) != 0)
++ {
++ printf ("Error 1 on mpfr_cmp_si(x,0) in check_macros\n");
++ exit (1);
++ }
++ if (mpfr_cmp_si (x, (c++, 0)) != 0)
++ {
++ printf ("Error 2 on mpfr_cmp_si(x,0) in check_macros\n");
++ exit (1);
++ }
++ if (c != 2)
++ {
++ printf ("Error 3 on mpfr_cmp_si(x,0) in check_macros\n"
++ "(c = %d instead of 2)\n", c);
++ exit (1);
++ }
++
++ mpfr_clear (x);
++}
++
++/* Bug in r7114 */
++static void
++test_macros (void)
++{
++ mpfr_t x[3];
++ mpfr_ptr p;
++
++ mpfr_inits (x[0], x[1], x[2], (mpfr_ptr) 0);
++ mpfr_set_ui (x[0], 0, MPFR_RNDN);
++ p = x[0];
++ if (mpfr_cmp_ui (p++, 0) != 0)
++ {
++ printf ("Error in mpfr_cmp_ui macro: result should be 0.\n");
++ exit (1);
++ }
++ if (p != x[1])
++ {
++ printf ("Error in mpfr_cmp_ui macro: p - x[0] = %d (expecting 1)\n",
++ (int) (p - x[0]));
++ exit (1);
++ }
++ p = x[0];
++ if (mpfr_cmp_si (p++, 0) != 0)
++ {
++ printf ("Error in mpfr_cmp_si macro: result should be 0.\n");
++ exit (1);
++ }
++ if (p != x[1])
++ {
++ printf ("Error in mpfr_cmp_si macro: p - x[0] = %d (expecting 1)\n",
++ (int) (p - x[0]));
++ exit (1);
++ }
++ mpfr_clears (x[0], x[1], x[2], (mpfr_ptr) 0);
++}
++
+ int
+ main (void)
+ {
+@@ -216,6 +336,8 @@
+ mpfr_clear (x);
+
+ check_nan ();
++ check_macros ();
++ test_macros ();
+
+ tests_end_mpfr ();
+ return 0;
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-07-10 00:11:53.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-09-07 08:46:06.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0-p3";
++ return "3.0.0-p4";
+ }
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-10-21 20:28:38.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-10-21 20:28:38.000000000 +0000
+@@ -0,0 +1 @@
++tcan_round
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-09-07 08:46:06.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-10-21 20:28:38.000000000 +0000
+@@ -1 +1 @@
+-3.0.0-p4
++3.0.0-p5
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-09-07 08:46:06.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-10-21 20:28:38.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0-p4"
++#define MPFR_VERSION_STRING "3.0.0-p5"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.0-a/tests/tcan_round.c mpfr-3.0.0-b/tests/tcan_round.c
+--- mpfr-3.0.0-a/tests/tcan_round.c 2010-06-10 11:00:13.000000000 +0000
++++ mpfr-3.0.0-b/tests/tcan_round.c 2010-10-21 20:28:38.000000000 +0000
+@@ -41,7 +41,7 @@
+ /* avoid mpn_random which leaks memory */
+ for (i = 0; i < n; i++)
+ buf[i] = randlimb ();
+- p = (mpfr_prec_t) randlimb() % ((n-1) * GMP_NUMB_BITS) + MPFR_PREC_MIN;
++ p = randlimb() % ((n-1) * GMP_NUMB_BITS) + MPFR_PREC_MIN;
+ err = p + randlimb () % GMP_NUMB_BITS;
+ r1 = mpfr_round_p (buf, n, err, p);
+ r2 = mpfr_can_round_raw (buf, n, MPFR_SIGN_POS, err,
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-09-07 08:46:06.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-10-21 20:28:38.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0-p4";
++ return "3.0.0-p5";
+ }
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-10-21 20:59:32.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-10-21 20:59:32.000000000 +0000
+@@ -0,0 +1 @@
++mpfr_sub1
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-10-21 20:28:38.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-10-21 20:59:32.000000000 +0000
+@@ -1 +1 @@
+-3.0.0-p5
++3.0.0-p6
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-10-21 20:28:38.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-10-21 20:59:32.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0-p5"
++#define MPFR_VERSION_STRING "3.0.0-p6"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.0-a/sub1.c mpfr-3.0.0-b/sub1.c
+--- mpfr-3.0.0-a/sub1.c 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/sub1.c 2010-10-21 20:59:32.000000000 +0000
+@@ -37,7 +37,9 @@
+ mp_size_t cancel2, an, bn, cn, cn0;
+ mp_limb_t *ap, *bp, *cp;
+ mp_limb_t carry, bb, cc, borrow = 0;
+- int inexact, shift_b, shift_c, is_exact = 1, down = 0, add_exp = 0;
++ int inexact, shift_b, shift_c, add_exp = 0;
++ int cmp_low = 0; /* used for rounding to nearest: 0 if low(b) = low(c),
++ negative if low(b) < low(c), positive if low(b)>low(c) */
+ int sh, k;
+ MPFR_TMP_DECL(marker);
+
+@@ -196,7 +198,8 @@
+ }
+
+ #ifdef DEBUG
+- printf ("shift_b=%d shift_c=%d diffexp=%lu\n", shift_b, shift_c,
++ printf ("rnd=%s shift_b=%d shift_c=%d diffexp=%lu\n",
++ mpfr_print_rnd_mode (rnd_mode), shift_b, shift_c,
+ (unsigned long) diff_exp);
+ #endif
+
+@@ -307,17 +310,18 @@
+ {
+ if (MPFR_LIKELY(sh))
+ {
+- is_exact = (carry == 0);
+ /* can decide except when carry = 2^(sh-1) [middle]
+ or carry = 0 [truncate, but cannot decide inexact flag] */
+- down = (carry < (MPFR_LIMB_ONE << (sh - 1)));
+ if (carry > (MPFR_LIMB_ONE << (sh - 1)))
+ goto add_one_ulp;
+- else if ((0 < carry) && down)
++ else if ((0 < carry) && (carry < (MPFR_LIMB_ONE << (sh - 1))))
+ {
+ inexact = -1; /* result if smaller than exact value */
+ goto truncate;
+ }
++ /* now carry = 2^(sh-1), in which case cmp_low=2,
++ or carry = 0, in which case cmp_low=0 */
++ cmp_low = (carry == 0) ? 0 : 2;
+ }
+ }
+ else /* directed rounding: set rnd_mode to RNDZ iff toward zero */
+@@ -344,12 +348,32 @@
+ cn -= (long int) an + cancel2;
+
+ #ifdef DEBUG
+- printf ("last %d bits from a are %lu, bn=%ld, cn=%ld\n",
++ printf ("last sh=%d bits from a are %lu, bn=%ld, cn=%ld\n",
+ sh, (unsigned long) carry, (long) bn, (long) cn);
+ #endif
+
++ /* for rounding to nearest, we couldn't conclude up to here in the following
++ cases:
++ 1. sh = 0, then cmp_low=0: we can either truncate, subtract one ulp
++ or add one ulp: -1 ulp < low(b)-low(c) < 1 ulp
++ 2. sh > 0 but the low sh bits from high(b)-high(c) equal 2^(sh-1):
++ -0.5 ulp <= -1/2^sh < low(b)-low(c)-0.5 < 1/2^sh <= 0.5 ulp
++ we can't decide the rounding, in that case cmp_low=2:
++ either we truncate and flag=-1, or we add one ulp and flag=1
++ 3. the low sh>0 bits from high(b)-high(c) equal 0: we know we have to
++ truncate but we can't decide the ternary value, here cmp_low=0:
++ -0.5 ulp <= -1/2^sh < low(b)-low(c) < 1/2^sh <= 0.5 ulp
++ we always truncate and inexact can be any of -1,0,1
++ */
++
++ /* note: here cn might exceed cn0, in which case we consider a zero limb */
+ for (k = 0; (bn > 0) || (cn > 0); k = 1)
+ {
++ /* if cmp_low < 0, we know low(b) - low(c) < 0
++ if cmp_low > 0, we know low(b) - low(c) > 0
++ (more precisely if cmp_low = 2, low(b) - low(c) = 0.5 ulp so far)
++ if cmp_low = 0, so far low(b) - low(c) = 0 */
++
+ /* get next limbs */
+ bb = (bn > 0) ? bp[--bn] : 0;
+ if ((cn > 0) && (cn-- <= cn0))
+@@ -357,76 +381,115 @@
+ else
+ cc = 0;
+
+- /* down is set when low(b) < low(c) */
+- if (down == 0)
+- down = (bb < cc);
++ /* cmp_low compares low(b) and low(c) */
++ if (cmp_low == 0) /* case 1 or 3 */
++ cmp_low = (bb < cc) ? -2+k : (bb > cc) ? 1 : 0;
++
++ /* Case 1 for k=0 splits into 7 subcases:
++ 1a: bb > cc + half
++ 1b: bb = cc + half
++ 1c: 0 < bb - cc < half
++ 1d: bb = cc
++ 1e: -half < bb - cc < 0
++ 1f: bb - cc = -half
++ 1g: bb - cc < -half
++
++ Case 2 splits into 3 subcases:
++ 2a: bb > cc
++ 2b: bb = cc
++ 2c: bb < cc
++
++ Case 3 splits into 3 subcases:
++ 3a: bb > cc
++ 3b: bb = cc
++ 3c: bb < cc
++ */
+
+ /* the case rounding to nearest with sh=0 is special since one couldn't
+ subtract above 1/2 ulp in the trailing limb of the result */
+- if ((rnd_mode == MPFR_RNDN) && sh == 0 && k == 0)
++ if (rnd_mode == MPFR_RNDN && sh == 0 && k == 0) /* case 1 for k=0 */
+ {
+ mp_limb_t half = MPFR_LIMB_HIGHBIT;
+
+- is_exact = (bb == cc);
+-
+ /* add one ulp if bb > cc + half
+ truncate if cc - half < bb < cc + half
+ sub one ulp if bb < cc - half
+ */
+
+- if (down)
++ if (cmp_low < 0) /* bb < cc: -1 ulp < low(b) - low(c) < 0,
++ cases 1e, 1f and 1g */
+ {
+ if (cc >= half)
+ cc -= half;
+- else
++ else /* since bb < cc < half, bb+half < 2*half */
+ bb += half;
++ /* now we have bb < cc + half:
++ we have to subtract one ulp if bb < cc,
++ and truncate if bb > cc */
+ }
+- else /* bb >= cc */
++ else if (cmp_low >= 0) /* bb >= cc, cases 1a to 1d */
+ {
+ if (cc < half)
+ cc += half;
+- else
++ else /* since bb >= cc >= half, bb - half >= 0 */
+ bb -= half;
++ /* now we have bb > cc - half: we have to add one ulp if bb > cc,
++ and truncate if bb < cc */
++ if (cmp_low > 0)
++ cmp_low = 2;
+ }
+ }
+
+ #ifdef DEBUG
+- printf (" bb=%lu cc=%lu down=%d is_exact=%d\n",
+- (unsigned long) bb, (unsigned long) cc, down, is_exact);
++ printf ("k=%u bb=%lu cc=%lu cmp_low=%d\n", k,
++ (unsigned long) bb, (unsigned long) cc, cmp_low);
+ #endif
+- if (bb < cc)
++ if (cmp_low < 0) /* low(b) - low(c) < 0: either truncate or subtract
++ one ulp */
+ {
+ if (rnd_mode == MPFR_RNDZ)
+- goto sub_one_ulp;
++ goto sub_one_ulp; /* set inexact=-1 */
+ else if (rnd_mode != MPFR_RNDN) /* round away */
+ {
+ inexact = 1;
+ goto truncate;
+ }
+- else /* round to nearest: special case here since for sh=k=0
+- bb = bb0 - MPFR_LIMB_HIGHBIT */
++ else /* round to nearest */
+ {
+- if (is_exact && sh == 0)
+- {
+- /* For k=0 we can't decide exactness since it may depend
+- from low order bits.
+- For k=1, the first low limbs matched: low(b)-low(c)<0. */
+- if (k)
+- {
+- inexact = 1;
+- goto truncate;
+- }
+- }
+- else if (down && sh == 0)
+- goto sub_one_ulp;
+- else
+- {
+- inexact = (is_exact) ? 1 : -1;
++ /* If cmp_low < 0 and bb > cc, then -0.5 ulp < low(b)-low(c) < 0,
++ whatever the value of sh.
++ If sh>0, then cmp_low < 0 implies that the initial neglected
++ sh bits were 0 (otherwise cmp_low=2 initially), thus the
++ weight of the new bits is less than 0.5 ulp too.
++ If k > 0 (and sh=0) this means that either the first neglected
++ limbs bb and cc were equal (thus cmp_low was 0 for k=0),
++ or we had bb - cc = -0.5 ulp or 0.5 ulp.
++ The last case is not possible here since we would have
++ cmp_low > 0 which is sticky.
++ In the first case (where we have cmp_low = -1), we truncate,
++ whereas in the 2nd case we have cmp_low = -2 and we subtract
++ one ulp.
++ */
++ if (bb > cc || sh > 0 || cmp_low == -1)
++ { /* -0.5 ulp < low(b)-low(c) < 0,
++ bb > cc corresponds to cases 1e and 1f1
++ sh > 0 corresponds to cases 3c and 3b3
++ cmp_low = -1 corresponds to case 1d3 (also 3b3) */
++ inexact = 1;
+ goto truncate;
+ }
++ else if (bb < cc) /* here sh = 0 and low(b)-low(c) < -0.5 ulp,
++ this corresponds to cases 1g and 1f3 */
++ goto sub_one_ulp;
++ /* the only case where we can't conclude is sh=0 and bb=cc,
++ i.e., we have low(b) - low(c) = -0.5 ulp (up to now), thus
++ we don't know if we must truncate or subtract one ulp.
++ Note: for sh=0 we can't have low(b) - low(c) = -0.5 ulp up to
++ now, since low(b) - low(c) > 1/2^sh */
+ }
+ }
+- else if (bb > cc)
++ else if (cmp_low > 0) /* 0 < low(b) - low(c): either truncate or
++ add one ulp */
+ {
+ if (rnd_mode == MPFR_RNDZ)
+ {
+@@ -437,34 +500,70 @@
+ goto add_one_ulp;
+ else /* round to nearest */
+ {
+- if (is_exact)
++ if (bb > cc)
+ {
+- inexact = -1;
+- goto truncate;
++ /* if sh=0, then bb>cc means that low(b)-low(c) > 0.5 ulp,
++ and similarly when cmp_low=2 */
++ if (cmp_low == 2) /* cases 1a, 1b1, 2a and 2b1 */
++ goto add_one_ulp;
++ /* sh > 0 and cmp_low > 0: this implies that the sh initial
++ neglected bits were 0, and the remaining low(b)-low(c)>0,
++ but its weight is less than 0.5 ulp */
++ else /* 0 < low(b) - low(c) < 0.5 ulp, this corresponds to
++ cases 3a, 1d1 and 3b1 */
++ {
++ inexact = -1;
++ goto truncate;
++ }
+ }
+- else if (down)
++ else if (bb < cc) /* 0 < low(b) - low(c) < 0.5 ulp, cases 1c,
++ 1b3, 2b3 and 2c */
+ {
+- inexact = 1;
++ inexact = -1;
+ goto truncate;
+ }
+- else
+- goto add_one_ulp;
++ /* the only case where we can't conclude is bb=cc, i.e.,
++ low(b) - low(c) = 0.5 ulp (up to now), thus we don't know
++ if we must truncate or add one ulp. */
+ }
+ }
++ /* after k=0, we cannot conclude in the following cases, we split them
++ according to the values of bb and cc for k=1:
++ 1b. sh=0 and cmp_low = 1 and bb-cc = half [around 0.5 ulp]
++ 1b1. bb > cc: add one ulp, inex = 1
++ 1b2: bb = cc: cannot conclude
++ 1b3: bb < cc: truncate, inex = -1
++ 1d. sh=0 and cmp_low = 0 and bb-cc = 0 [around 0]
++ 1d1: bb > cc: truncate, inex = -1
++ 1d2: bb = cc: cannot conclude
++ 1d3: bb < cc: truncate, inex = +1
++ 1f. sh=0 and cmp_low = -1 and bb-cc = -half [around -0.5 ulp]
++ 1f1: bb > cc: truncate, inex = +1
++ 1f2: bb = cc: cannot conclude
++ 1f3: bb < cc: sub one ulp, inex = -1
++ 2b. sh > 0 and cmp_low = 2 and bb=cc [around 0.5 ulp]
++ 2b1. bb > cc: add one ulp, inex = 1
++ 2b2: bb = cc: cannot conclude
++ 2b3: bb < cc: truncate, inex = -1
++ 3b. sh > 0 and cmp_low = 0 [around 0]
++ 3b1. bb > cc: truncate, inex = -1
++ 3b2: bb = cc: cannot conclude
++ 3b3: bb < cc: truncate, inex = +1
++ */
+ }
+
+- if ((rnd_mode == MPFR_RNDN) && !is_exact)
++ if ((rnd_mode == MPFR_RNDN) && cmp_low != 0)
+ {
+ /* even rounding rule */
+ if ((ap[0] >> sh) & 1)
+ {
+- if (down)
++ if (cmp_low < 0)
+ goto sub_one_ulp;
+ else
+ goto add_one_ulp;
+ }
+ else
+- inexact = (down) ? 1 : -1;
++ inexact = (cmp_low > 0) ? -1 : 1;
+ }
+ else
+ inexact = 0;
+diff -Naurd mpfr-3.0.0-a/tests/tfma.c mpfr-3.0.0-b/tests/tfma.c
+--- mpfr-3.0.0-a/tests/tfma.c 2010-06-10 11:00:13.000000000 +0000
++++ mpfr-3.0.0-b/tests/tfma.c 2010-10-21 20:59:32.000000000 +0000
+@@ -337,6 +337,94 @@
+ mpfr_clears (x, y, z, r, (mpfr_ptr) 0);
+ }
+
++static void
++bug20101018 (void)
++{
++ mpfr_t x, y, z, t, u;
++ int i;
++
++ mpfr_init2 (x, 64);
++ mpfr_init2 (y, 64);
++ mpfr_init2 (z, 64);
++ mpfr_init2 (t, 64);
++ mpfr_init2 (u, 64);
++
++ mpfr_set_str (x, "0xf.fffffffffffffffp-14766", 16, MPFR_RNDN);
++ mpfr_set_str (y, "-0xf.fffffffffffffffp+317", 16, MPFR_RNDN);
++ mpfr_set_str (z, "0x8.3ffffffffffe3ffp-14443", 16, MPFR_RNDN);
++ mpfr_set_str (t, "0x8.7ffffffffffc7ffp-14444", 16, MPFR_RNDN);
++ i = mpfr_fma (u, x, y, z, MPFR_RNDN);
++ if (mpfr_cmp (u, t) != 0)
++ {
++ printf ("Wrong result in bug20101018 (a)\n");
++ printf ("Expected ");
++ mpfr_out_str (stdout, 16, 0, t, MPFR_RNDN);
++ printf ("\nGot ");
++ mpfr_out_str (stdout, 16, 0, u, MPFR_RNDN);
++ printf ("\n");
++ exit (1);
++ }
++ if (i <= 0)
++ {
++ printf ("Wrong ternary value in bug20101018 (a)\n");
++ printf ("Expected > 0\n");
++ printf ("Got %d\n", i);
++ exit (1);
++ }
++
++ mpfr_set_str (x, "-0xf.fffffffffffffffp-11420", 16, MPFR_RNDN);
++ mpfr_set_str (y, "0xf.fffffffffffffffp+9863", 16, MPFR_RNDN);
++ mpfr_set_str (z, "0x8.fffff80ffffffffp-1551", 16, MPFR_RNDN);
++ mpfr_set_str (t, "0x9.fffff01ffffffffp-1552", 16, MPFR_RNDN);
++ i = mpfr_fma (u, x, y, z, MPFR_RNDN);
++ if (mpfr_cmp (u, t) != 0)
++ {
++ printf ("Wrong result in bug20101018 (b)\n");
++ printf ("Expected ");
++ mpfr_out_str (stdout, 16, 0, t, MPFR_RNDN);
++ printf ("\nGot ");
++ mpfr_out_str (stdout, 16, 0, u, MPFR_RNDN);
++ printf ("\n");
++ exit (1);
++ }
++ if (i <= 0)
++ {
++ printf ("Wrong ternary value in bug20101018 (b)\n");
++ printf ("Expected > 0\n");
++ printf ("Got %d\n", i);
++ exit (1);
++ }
++
++ mpfr_set_str (x, "0xf.fffffffffffffffp-2125", 16, MPFR_RNDN);
++ mpfr_set_str (y, "-0xf.fffffffffffffffp-6000", 16, MPFR_RNDN);
++ mpfr_set_str (z, "0x8p-8119", 16, MPFR_RNDN);
++ mpfr_set_str (t, "0x8.000000000000001p-8120", 16, MPFR_RNDN);
++ i = mpfr_fma (u, x, y, z, MPFR_RNDN);
++ if (mpfr_cmp (u, t) != 0)
++ {
++ printf ("Wrong result in bug20101018 (c)\n");
++ printf ("Expected ");
++ mpfr_out_str (stdout, 16, 0, t, MPFR_RNDN);
++ printf ("\nGot ");
++ mpfr_out_str (stdout, 16, 0, u, MPFR_RNDN);
++ printf ("\n");
++ exit (1);
++ }
++ if (i <= 0)
++ {
++ printf ("Wrong ternary value in bug20101018 (c)\n");
++ printf ("Expected > 0\n");
++ printf ("Got %d\n", i);
++ exit (1);
++ }
++
++ mpfr_clear (x);
++ mpfr_clear (y);
++ mpfr_clear (z);
++ mpfr_clear (t);
++ mpfr_clear (u);
++}
++
+ int
+ main (int argc, char *argv[])
+ {
+@@ -345,6 +433,8 @@
+
+ tests_start_mpfr ();
+
++ bug20101018 ();
++
+ mpfr_init (x);
+ mpfr_init (s);
+ mpfr_init (y);
+diff -Naurd mpfr-3.0.0-a/tests/tsub.c mpfr-3.0.0-b/tests/tsub.c
+--- mpfr-3.0.0-a/tests/tsub.c 2010-06-10 11:00:13.000000000 +0000
++++ mpfr-3.0.0-b/tests/tsub.c 2010-10-21 20:59:32.000000000 +0000
+@@ -201,6 +201,8 @@
+ if (mpfr_cmp (z, x))
+ {
+ printf ("Error in mpfr_sub (2)\n");
++ printf ("Expected "); mpfr_print_binary (x); puts ("");
++ printf ("Got "); mpfr_print_binary (z); puts ("");
+ exit (1);
+ }
+ mpfr_set_str_binary (x, "1.1110111011110001110111011111111111101000011001011100101100101101");
+@@ -478,6 +480,156 @@
+ mpfr_clear (u);
+ }
+
++/* Bug found by Jakub Jelinek
++ * http://bugzilla.redhat.com/643657
++ * https://gforge.inria.fr/tracker/index.php?func=detail&aid=11301
++ * The consequence can be either an assertion failure (i = 2 in the
++ * testcase below, in debug mode) or an incorrectly rounded value.
++ */
++static void
++bug20101017 (void)
++{
++ mpfr_t a, b, c;
++ int inex;
++ int i;
++
++ mpfr_init2 (a, GMP_NUMB_BITS * 2);
++ mpfr_init2 (b, GMP_NUMB_BITS);
++ mpfr_init2 (c, GMP_NUMB_BITS);
++
++ /* a = 2^(2N) + k.2^(2N-1) + 2^N and b = 1
++ with N = GMP_NUMB_BITS and k = 0 or 1.
++ c = a - b should round to the same value as a. */
++
++ for (i = 2; i <= 3; i++)
++ {
++ mpfr_set_ui_2exp (a, i, GMP_NUMB_BITS - 1, MPFR_RNDN);
++ mpfr_add_ui (a, a, 1, MPFR_RNDN);
++ mpfr_mul_2ui (a, a, GMP_NUMB_BITS, MPFR_RNDN);
++ mpfr_set_ui (b, 1, MPFR_RNDN);
++ inex = mpfr_sub (c, a, b, MPFR_RNDN);
++ mpfr_set (b, a, MPFR_RNDN);
++ if (! mpfr_equal_p (c, b))
++ {
++ printf ("Error in bug20101017 for i = %d.\n", i);
++ printf ("Expected ");
++ mpfr_out_str (stdout, 16, 0, b, MPFR_RNDN);
++ putchar ('\n');
++ printf ("Got ");
++ mpfr_out_str (stdout, 16, 0, c, MPFR_RNDN);
++ putchar ('\n');
++ exit (1);
++ }
++ if (inex >= 0)
++ {
++ printf ("Error in bug20101017 for i = %d: bad inex value.\n", i);
++ printf ("Expected negative, got %d.\n", inex);
++ exit (1);
++ }
++ }
++
++ mpfr_set_prec (a, 64);
++ mpfr_set_prec (b, 129);
++ mpfr_set_prec (c, 2);
++ mpfr_set_str_binary (b, "0.100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001E65");
++ mpfr_set_str_binary (c, "0.10E1");
++ inex = mpfr_sub (a, b, c, MPFR_RNDN);
++ if (mpfr_cmp_ui_2exp (a, 1, 64) != 0 || inex >= 0)
++ {
++ printf ("Error in mpfr_sub for b-c for b=2^64+1+2^(-64), c=1\n");
++ printf ("Expected result 2^64 with inex < 0\n");
++ printf ("Got "); mpfr_print_binary (a);
++ printf (" with inex=%d\n", inex);
++ exit (1);
++ }
++
++ mpfr_clears (a, b, c, (mpfr_ptr) 0);
++}
++
++/* hard test of rounding */
++static void
++check_rounding (void)
++{
++ mpfr_t a, b, c, res;
++ mpfr_prec_t p;
++ long k, l;
++ int i;
++
++#define MAXKL (2 * GMP_NUMB_BITS)
++ for (p = MPFR_PREC_MIN; p <= GMP_NUMB_BITS; p++)
++ {
++ mpfr_init2 (a, p);
++ mpfr_init2 (res, p);
++ mpfr_init2 (b, p + 1 + MAXKL);
++ mpfr_init2 (c, MPFR_PREC_MIN);
++
++ /* b = 2^p + 1 + 2^(-k), c = 2^(-l) */
++ for (k = 0; k <= MAXKL; k++)
++ for (l = 0; l <= MAXKL; l++)
++ {
++ mpfr_set_ui_2exp (b, 1, p, MPFR_RNDN);
++ mpfr_add_ui (b, b, 1, MPFR_RNDN);
++ mpfr_mul_2ui (b, b, k, MPFR_RNDN);
++ mpfr_add_ui (b, b, 1, MPFR_RNDN);
++ mpfr_div_2ui (b, b, k, MPFR_RNDN);
++ mpfr_set_ui_2exp (c, 1, -l, MPFR_RNDN);
++ i = mpfr_sub (a, b, c, MPFR_RNDN);
++ /* b - c = 2^p + 1 + 2^(-k) - 2^(-l), should be rounded to
++ 2^p for l <= k, and 2^p+2 for l < k */
++ if (l <= k)
++ {
++ if (mpfr_cmp_ui_2exp (a, 1, p) != 0)
++ {
++ printf ("Wrong result in check_rounding\n");
++ printf ("p=%lu k=%ld l=%ld\n", p, k, l);
++ printf ("b="); mpfr_print_binary (b); puts ("");
++ printf ("c="); mpfr_print_binary (c); puts ("");
++ printf ("Expected 2^%lu\n", p);
++ printf ("Got "); mpfr_print_binary (a); puts ("");
++ exit (1);
++ }
++ if (i >= 0)
++ {
++ printf ("Wrong ternary value in check_rounding\n");
++ printf ("p=%lu k=%ld l=%ld\n", p, k, l);
++ printf ("b="); mpfr_print_binary (b); puts ("");
++ printf ("c="); mpfr_print_binary (c); puts ("");
++ printf ("a="); mpfr_print_binary (a); puts ("");
++ printf ("Expected < 0, got %d\n", i);
++ exit (1);
++ }
++ }
++ else /* l < k */
++ {
++ mpfr_set_ui_2exp (res, 1, p, MPFR_RNDN);
++ mpfr_add_ui (res, res, 2, MPFR_RNDN);
++ if (mpfr_cmp (a, res) != 0)
++ {
++ printf ("Wrong result in check_rounding\n");
++ printf ("b="); mpfr_print_binary (b); puts ("");
++ printf ("c="); mpfr_print_binary (c); puts ("");
++ printf ("Expected "); mpfr_print_binary (res); puts ("");
++ printf ("Got "); mpfr_print_binary (a); puts ("");
++ exit (1);
++ }
++ if (i <= 0)
++ {
++ printf ("Wrong ternary value in check_rounding\n");
++ printf ("b="); mpfr_print_binary (b); puts ("");
++ printf ("c="); mpfr_print_binary (c); puts ("");
++ printf ("Expected > 0, got %d\n", i);
++ exit (1);
++ }
++ }
++ }
++
++ mpfr_clear (a);
++ mpfr_clear (res);
++ mpfr_clear (b);
++ mpfr_clear (c);
++ }
++}
++
+ #define TEST_FUNCTION test_sub
+ #define TWO_ARGS
+ #define RAND_FUNCTION(x) mpfr_random2(x, MPFR_LIMB_SIZE (x), randlimb () % 100, RANDS)
+@@ -491,6 +643,8 @@
+
+ tests_start_mpfr ();
+
++ bug20101017 ();
++ check_rounding ();
+ check_diverse ();
+ check_inexact ();
+ bug_ddefour ();
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-10-21 20:28:38.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-10-21 20:59:32.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0-p5";
++ return "3.0.0-p6";
+ }
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-10-21 21:18:26.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-10-21 21:18:26.000000000 +0000
+@@ -0,0 +1 @@
++mpfr_set_ld
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-10-21 20:59:32.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-10-21 21:18:26.000000000 +0000
+@@ -1 +1 @@
+-3.0.0-p6
++3.0.0-p7
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-10-21 20:59:32.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-10-21 21:18:26.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0-p6"
++#define MPFR_VERSION_STRING "3.0.0-p7"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.0-a/set_ld.c mpfr-3.0.0-b/set_ld.c
+--- mpfr-3.0.0-a/set_ld.c 2010-06-10 11:00:14.000000000 +0000
++++ mpfr-3.0.0-b/set_ld.c 2010-10-21 21:18:26.000000000 +0000
+@@ -102,21 +102,25 @@
+ {
+ x /= div13; /* exact */
+ shift_exp += 8192;
++ mpfr_div_2si (t, t, 8192, MPFR_RNDZ);
+ }
+ if (ABS (x) >= div12)
+ {
+ x /= div12; /* exact */
+ shift_exp += 4096;
++ mpfr_div_2si (t, t, 4096, MPFR_RNDZ);
+ }
+ if (ABS (x) >= div11)
+ {
+ x /= div11; /* exact */
+ shift_exp += 2048;
++ mpfr_div_2si (t, t, 2048, MPFR_RNDZ);
+ }
+ if (ABS (x) >= div10)
+ {
+ x /= div10; /* exact */
+ shift_exp += 1024;
++ mpfr_div_2si (t, t, 1024, MPFR_RNDZ);
+ }
+ /* warning: we may have DBL_MAX=2^1024*(1-2^(-53)) < x < 2^1024,
+ therefore we have one extra exponent reduction step */
+@@ -124,9 +128,10 @@
+ {
+ x /= div9; /* exact */
+ shift_exp += 512;
++ mpfr_div_2si (t, t, 512, MPFR_RNDZ);
+ }
+ } /* Check overflow of double */
+- else
++ else /* no overflow on double */
+ {
+ long double div9, div10, div11;
+
+@@ -149,29 +154,34 @@
+ {
+ x /= div13; /* exact */
+ shift_exp -= 8192;
++ mpfr_mul_2si (t, t, 8192, MPFR_RNDZ);
+ }
+ if (ABS (x) <= div12)
+ {
+ x /= div12; /* exact */
+ shift_exp -= 4096;
++ mpfr_mul_2si (t, t, 4096, MPFR_RNDZ);
+ }
+ if (ABS (x) <= div11)
+ {
+ x /= div11; /* exact */
+ shift_exp -= 2048;
++ mpfr_mul_2si (t, t, 2048, MPFR_RNDZ);
+ }
+ if (ABS (x) <= div10)
+ {
+ x /= div10; /* exact */
+ shift_exp -= 1024;
++ mpfr_mul_2si (t, t, 1024, MPFR_RNDZ);
+ }
+ if (ABS(x) <= div9)
+ {
+ x /= div9; /* exact */
+ shift_exp -= 512;
++ mpfr_mul_2si (t, t, 512, MPFR_RNDZ);
+ }
+ }
+- else
++ else /* no underflow */
+ {
+ inexact = mpfr_set_d (u, (double) x, MPFR_RNDZ);
+ MPFR_ASSERTD (inexact == 0);
+diff -Naurd mpfr-3.0.0-a/tests/tset_ld.c mpfr-3.0.0-b/tests/tset_ld.c
+--- mpfr-3.0.0-a/tests/tset_ld.c 2010-06-10 11:00:13.000000000 +0000
++++ mpfr-3.0.0-b/tests/tset_ld.c 2010-10-21 21:18:26.000000000 +0000
+@@ -147,12 +147,39 @@
+ test_fixed_bugs (void)
+ {
+ mpfr_t x;
+- long double d;
++ long double l, m;
+
+ /* bug found by Steve Kargl (2009-03-14) */
+ mpfr_init2 (x, 64);
+ mpfr_set_ui_2exp (x, 1, -16447, MPFR_RNDN);
+- d = mpfr_get_ld (x, MPFR_RNDN); /* an assertion failed in init2.c:50 */
++ mpfr_get_ld (x, MPFR_RNDN); /* an assertion failed in init2.c:50 */
++
++ /* bug reported by Jakub Jelinek (2010-10-17)
++ https://gforge.inria.fr/tracker/?func=detail&aid=11300 */
++ mpfr_set_prec (x, MPFR_LDBL_MANT_DIG);
++ /* l = 0x1.23456789abcdef0123456789abcdp-914L; */
++ l = 8.215640181713713164092636634579e-276;
++ mpfr_set_ld (x, l, MPFR_RNDN);
++ m = mpfr_get_ld (x, MPFR_RNDN);
++ if (m != l)
++ {
++ printf ("Error in get_ld o set_ld for l=%Le\n", l);
++ printf ("Got m=%Le instead of l\n", m);
++ exit (1);
++ }
++
++ /* another similar test which failed with extended double precision and the
++ generic code for mpfr_set_ld */
++ /* l = 0x1.23456789abcdef0123456789abcdp-968L; */
++ l = 4.560596445887084662336528403703e-292;
++ mpfr_set_ld (x, l, MPFR_RNDN);
++ m = mpfr_get_ld (x, MPFR_RNDN);
++ if (m != l)
++ {
++ printf ("Error in get_ld o set_ld for l=%Le\n", l);
++ printf ("Got m=%Le instead of l\n", m);
++ exit (1);
++ }
+
+ mpfr_clear (x);
+ }
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-10-21 20:59:32.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-10-21 21:18:26.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0-p6";
++ return "3.0.0-p7";
+ }
+diff -Naurd mpfr-3.0.0-a/PATCHES mpfr-3.0.0-b/PATCHES
+--- mpfr-3.0.0-a/PATCHES 2010-11-09 15:15:07.000000000 +0000
++++ mpfr-3.0.0-b/PATCHES 2010-11-09 15:15:07.000000000 +0000
+@@ -0,0 +1 @@
++macros
+diff -Naurd mpfr-3.0.0-a/VERSION mpfr-3.0.0-b/VERSION
+--- mpfr-3.0.0-a/VERSION 2010-10-21 21:18:26.000000000 +0000
++++ mpfr-3.0.0-b/VERSION 2010-11-09 15:15:07.000000000 +0000
+@@ -1 +1 @@
+-3.0.0-p7
++3.0.0-p8
+diff -Naurd mpfr-3.0.0-a/mpfr.h mpfr-3.0.0-b/mpfr.h
+--- mpfr-3.0.0-a/mpfr.h 2010-10-21 21:18:26.000000000 +0000
++++ mpfr-3.0.0-b/mpfr.h 2010-11-09 15:15:07.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 0
+-#define MPFR_VERSION_STRING "3.0.0-p7"
++#define MPFR_VERSION_STRING "3.0.0-p8"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+@@ -67,6 +67,16 @@
+ # define _MPFR_H_HAVE_INTMAX_T 1
+ #endif
+
++/* Avoid some problems with macro expansion if the user defines macros
++ with the same name as keywords. By convention, identifiers and macro
++ names starting with mpfr_ are reserved by MPFR. */
++typedef void mpfr_void;
++typedef int mpfr_int;
++typedef unsigned int mpfr_uint;
++typedef long mpfr_long;
++typedef unsigned long mpfr_ulong;
++typedef size_t mpfr_size_t;
++
+ /* Definition of rounding modes (DON'T USE MPFR_RNDNA!).
+ Warning! Changing the contents of this enum should be seen as an
+ interface change since the old and the new types are not compatible
+@@ -136,7 +146,7 @@
+ typedef mp_exp_t mpfr_exp_t;
+
+ /* Definition of the standard exponent limits */
+-#define MPFR_EMAX_DEFAULT ((mpfr_exp_t) (((unsigned long) 1 << 30) - 1))
++#define MPFR_EMAX_DEFAULT ((mpfr_exp_t) (((mpfr_ulong) 1 << 30) - 1))
+ #define MPFR_EMIN_DEFAULT (-(MPFR_EMAX_DEFAULT))
+
+ /* Definition of the main structure */
+@@ -725,13 +735,13 @@
+ unexpected results with future compilers and aggressive optimisations.
+ Why not working only with signed types, using INT_MIN and LONG_MIN? */
+ #if __GMP_MP_SIZE_T_INT
+-#define __MPFR_EXP_NAN ((mpfr_exp_t)((~((~(unsigned int)0)>>1))+2))
+-#define __MPFR_EXP_ZERO ((mpfr_exp_t)((~((~(unsigned int)0)>>1))+1))
+-#define __MPFR_EXP_INF ((mpfr_exp_t)((~((~(unsigned int)0)>>1))+3))
++#define __MPFR_EXP_NAN ((mpfr_exp_t)((~((~(mpfr_uint)0)>>1))+2))
++#define __MPFR_EXP_ZERO ((mpfr_exp_t)((~((~(mpfr_uint)0)>>1))+1))
++#define __MPFR_EXP_INF ((mpfr_exp_t)((~((~(mpfr_uint)0)>>1))+3))
+ #else
+-#define __MPFR_EXP_NAN ((mpfr_exp_t)((~((~(unsigned long)0)>>1))+2))
+-#define __MPFR_EXP_ZERO ((mpfr_exp_t)((~((~(unsigned long)0)>>1))+1))
+-#define __MPFR_EXP_INF ((mpfr_exp_t)((~((~(unsigned long)0)>>1))+3))
++#define __MPFR_EXP_NAN ((mpfr_exp_t)((~((~(mpfr_ulong)0)>>1))+2))
++#define __MPFR_EXP_ZERO ((mpfr_exp_t)((~((~(mpfr_ulong)0)>>1))+1))
++#define __MPFR_EXP_INF ((mpfr_exp_t)((~((~(mpfr_ulong)0)>>1))+3))
+ #endif
+
+ /* Define MPFR_USE_EXTENSION to avoid "gcc -pedantic" warnings. */
+@@ -760,9 +770,9 @@
+ #define mpfr_inf_p(_x) ((_x)->_mpfr_exp == __MPFR_EXP_INF)
+ #define mpfr_zero_p(_x) ((_x)->_mpfr_exp == __MPFR_EXP_ZERO)
+ #define mpfr_regular_p(_x) ((_x)->_mpfr_exp > __MPFR_EXP_INF)
+-#define mpfr_sgn(_x) \
+- ((_x)->_mpfr_exp < __MPFR_EXP_INF ? \
+- (mpfr_nan_p (_x) ? mpfr_set_erangeflag () : (void) 0), 0 : \
++#define mpfr_sgn(_x) \
++ ((_x)->_mpfr_exp < __MPFR_EXP_INF ? \
++ (mpfr_nan_p (_x) ? mpfr_set_erangeflag () : (mpfr_void) 0), 0 : \
+ MPFR_SIGN (_x))
+
+ /* Prevent them from using as lvalues */
+@@ -805,7 +815,19 @@
+ Moreover casts to unsigned long have been added to avoid warnings in
+ programs that use MPFR and are compiled with -Wconversion; such casts
+ are OK since if X is a constant expression, then (unsigned long) X is
+- also a constant expression, so that the optimizations still work. */
++ also a constant expression, so that the optimizations still work. The
++ warnings are probably related to the following two bugs:
++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210
++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38470 (possibly a variant)
++ and the casts could be removed once these bugs are fixed.
++ Casts shouldn't be used on the generic calls (to the ..._2exp functions),
++ where implicit conversions are performed. Indeed, having at least one
++ implicit conversion in the macro allows the compiler to emit diagnostics
++ when normally expected, for instance in the following call:
++ mpfr_set_ui (x, "foo", MPFR_RNDN);
++ If this is not possible (for future macros), one of the tricks described
++ on http://groups.google.com/group/comp.std.c/msg/e92abd24bf9eaf7b could
++ be used. */
+ #if defined (__GNUC__) && !defined(__ICC) && !defined(__cplusplus)
+ #if (__GNUC__ >= 2)
+ #undef mpfr_cmp_ui
+@@ -813,45 +835,45 @@
+ But warning! mpfr_sgn is specified as a macro in the API, thus the macro
+ mustn't be used if side effects are possible, like here. */
+ #define mpfr_cmp_ui(_f,_u) \
+- (__builtin_constant_p (_u) && (unsigned long) (_u) == 0 ? \
++ (__builtin_constant_p (_u) && (mpfr_ulong) (_u) == 0 ? \
+ (mpfr_sgn) (_f) : \
+- mpfr_cmp_ui_2exp ((_f), (unsigned long) (_u), 0))
++ mpfr_cmp_ui_2exp ((_f), (_u), 0))
+ #undef mpfr_cmp_si
+-#define mpfr_cmp_si(_f,_s) \
+- (__builtin_constant_p (_s) && (long) (_s) >= 0 ? \
+- mpfr_cmp_ui ((_f), (unsigned long) (long) (_s)) : \
+- mpfr_cmp_si_2exp ((_f), (long) (_s), 0))
++#define mpfr_cmp_si(_f,_s) \
++ (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ? \
++ mpfr_cmp_ui ((_f), (mpfr_ulong) (mpfr_long) (_s)) : \
++ mpfr_cmp_si_2exp ((_f), (_s), 0))
+ #if __GNUC__ > 2 || __GNUC_MINOR__ >= 95
+ #undef mpfr_set_ui
+ #define mpfr_set_ui(_f,_u,_r) \
+- (__builtin_constant_p (_u) && (unsigned long) (_u) == 0 ? \
++ (__builtin_constant_p (_u) && (mpfr_ulong) (_u) == 0 ? \
+ __extension__ ({ \
+ mpfr_ptr _p = (_f); \
+ _p->_mpfr_sign = 1; \
+ _p->_mpfr_exp = __MPFR_EXP_ZERO; \
+- (void) (_r); 0; }) : \
+- mpfr_set_ui_2exp ((_f), (unsigned long) (_u), 0, (_r)))
++ (mpfr_void) (_r); 0; }) : \
++ mpfr_set_ui_2exp ((_f), (_u), 0, (_r)))
+ #endif
+ #undef mpfr_set_si
+ #define mpfr_set_si(_f,_s,_r) \
+- (__builtin_constant_p (_s) && (long) (_s) >= 0 ? \
+- mpfr_set_ui ((_f), (unsigned long) (long) (_s), (_r)) : \
+- mpfr_set_si_2exp ((_f), (long) (_s), 0, (_r)))
++ (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ? \
++ mpfr_set_ui ((_f), (mpfr_ulong) (mpfr_long) (_s), (_r)) : \
++ mpfr_set_si_2exp ((_f), (_s), 0, (_r)))
+ #endif
+ #endif
+
+ /* Macro version of mpfr_stack interface for fast access */
+-#define mpfr_custom_get_size(p) ((size_t) \
++#define mpfr_custom_get_size(p) ((mpfr_size_t) \
+ (((p)+GMP_NUMB_BITS-1)/GMP_NUMB_BITS*sizeof (mp_limb_t)))
+ #define mpfr_custom_init(m,p) do {} while (0)
+-#define mpfr_custom_get_significand(x) ((void*)((x)->_mpfr_d))
++#define mpfr_custom_get_significand(x) ((mpfr_void*)((x)->_mpfr_d))
+ #define mpfr_custom_get_exp(x) ((x)->_mpfr_exp)
+ #define mpfr_custom_move(x,m) do { ((x)->_mpfr_d = (mp_limb_t*)(m)); } while (0)
+ #define mpfr_custom_init_set(x,k,e,p,m) do { \
+ mpfr_ptr _x = (x); \
+ mpfr_exp_t _e; \
+ mpfr_kind_t _t; \
+- int _s, _k; \
++ mpfr_int _s, _k; \
+ _k = (k); \
+ if (_k >= 0) { \
+ _t = (mpfr_kind_t) _k; \
+@@ -868,11 +890,13 @@
+ _x->_mpfr_exp = _e; \
+ _x->_mpfr_d = (mp_limb_t*) (m); \
+ } while (0)
+-#define mpfr_custom_get_kind(x) \
+- ( (x)->_mpfr_exp > __MPFR_EXP_INF ? (int)MPFR_REGULAR_KIND*MPFR_SIGN (x) \
+- : (x)->_mpfr_exp == __MPFR_EXP_INF ? (int)MPFR_INF_KIND*MPFR_SIGN (x) \
+- : (x)->_mpfr_exp == __MPFR_EXP_NAN ? (int)MPFR_NAN_KIND \
+- : (int) MPFR_ZERO_KIND * MPFR_SIGN (x) )
++#define mpfr_custom_get_kind(x) \
++ ( (x)->_mpfr_exp > __MPFR_EXP_INF ? \
++ (mpfr_int) MPFR_REGULAR_KIND * MPFR_SIGN (x) \
++ : (x)->_mpfr_exp == __MPFR_EXP_INF ? \
++ (mpfr_int) MPFR_INF_KIND * MPFR_SIGN (x) \
++ : (x)->_mpfr_exp == __MPFR_EXP_NAN ? (mpfr_int) MPFR_NAN_KIND \
++ : (mpfr_int) MPFR_ZERO_KIND * MPFR_SIGN (x) )
+
+
+ #endif /* MPFR_USE_NO_MACRO */
+diff -Naurd mpfr-3.0.0-a/version.c mpfr-3.0.0-b/version.c
+--- mpfr-3.0.0-a/version.c 2010-10-21 21:18:26.000000000 +0000
++++ mpfr-3.0.0-b/version.c 2010-11-09 15:15:07.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.0-p7";
++ return "3.0.0-p8";
+ }
diff --git a/core/mpfr/mpfr.install b/core/mpfr/mpfr.install
new file mode 100644
index 000000000..d6dd0475b
--- /dev/null
+++ b/core/mpfr/mpfr.install
@@ -0,0 +1,20 @@
+info_dir=usr/share/info
+info_files=(mpfr.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/core/nano/PKGBUILD b/core/nano/PKGBUILD
new file mode 100644
index 000000000..ab760c2df
--- /dev/null
+++ b/core/nano/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 101599 2010-11-29 19:19:03Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Judd <judd@archlinux.org>
+
+pkgname=nano
+pkgver=2.2.6
+pkgrel=1
+pkgdesc="Pico editor clone with enhancements"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.nano-editor.org"
+groups=('base')
+depends=('ncurses' 'sh')
+backup=('etc/nanorc')
+install=nano.install
+source=(http://www.nano-editor.org/dist/v2.2/${pkgname}-${pkgver}.tar.gz)
+md5sums=('03233ae480689a008eb98feb1b599807')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-color \
+ --enable-nanorc \
+ --enable-multibuffer \
+ --disable-wrapping-as-root
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -DTm644 ${srcdir}/${pkgname}-${pkgver}/doc/nanorc.sample ${pkgdir}/etc/nanorc
+}
diff --git a/core/nano/nano.install b/core/nano/nano.install
new file mode 100644
index 000000000..a320c40d8
--- /dev/null
+++ b/core/nano/nano.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(nano.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/ncurses/PKGBUILD b/core/ncurses/PKGBUILD
new file mode 100644
index 000000000..abe1cede5
--- /dev/null
+++ b/core/ncurses/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 111464 2011-02-27 00:26:17Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=ncurses
+pkgver=5.8
+pkgrel=1
+pkgdesc="System V Release 4.0 curses emulation library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/ncurses/"
+license=('MIT')
+depends=('glibc')
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('20ed3fa7599937f0ca268d9088837a64')
+
+build() {
+ cd ${srcdir}/
+ mkdir ncurses{,w}-build
+
+ cd ${srcdir}/ncursesw-build
+ ../${pkgname}-${pkgver}/configure --prefix=/usr --mandir=/usr/share/man \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} --enable-widec
+ # add --enable-ext-colors with next soname bump
+ make
+
+ # libncurses.so.5 for external binary support
+ cd ${srcdir}/ncurses-build
+ [ $CARCH = "x86_64" ] && CONFIGFLAG="--with-chtype=long"
+ ../${pkgname}-${pkgver}/configure --prefix=/usr \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} $CONFIGFLAG
+ make
+}
+
+package() {
+ cd ${srcdir}/ncursesw-build
+ make install
+
+ # move libraries needed for boot to /lib (we call tput in initscripts)
+ install -dm755 ${pkgdir}/lib
+ mv ${pkgdir}/usr/lib/libncursesw.so.5* ${pkgdir}/lib
+ ln -sf ../../lib/libncursesw.so.5 ${pkgdir}/usr/lib/libncursesw.so
+
+ # Fool packages looking to link to non-wide-character ncurses libraries
+ for lib in curses ncurses form panel menu; do
+ rm -f ${pkgdir}/usr/lib/lib${lib}.so
+ echo "INPUT(-l${lib}w)" >${pkgdir}/usr/lib/lib${lib}.so
+ ln -sf lib${lib}w.a ${pkgdir}/usr/lib/lib${lib}.a
+ done
+ ln -sf libncurses++w.a ${pkgdir}/usr/lib/libncurses++.a
+
+ # install tput to /bin
+ install -dm755 ${pkgdir}/bin/
+ mv ${pkgdir}/usr/bin/tput ${pkgdir}/bin/tput
+
+ # Some packages look for -lcurses during build
+ rm -f ${pkgdir}/usr/lib/libcursesw.so
+ echo "INPUT(-lncursesw)" >${pkgdir}/usr/lib/libcursesw.so
+ ln -sf libncurses.so ${pkgdir}/usr/lib/libcurses.so
+ ln -sf libncursesw.a ${pkgdir}/usr/lib/libcursesw.a
+ ln -sf libncurses.a ${pkgdir}/usr/lib/libcurses.a
+
+ # non-widec compatibility library
+ cd ${srcdir}/ncurses-build
+ install -Dm755 lib/libncurses.so.${pkgver} ${pkgdir}/usr/lib/libncurses.so.${pkgver}
+ ln -sf libncurses.so.${pkgver} ${pkgdir}/usr/lib/libncurses.so.5
+
+ # install license, rip it from the readme
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/share/licenses/$pkgname
+ grep -B 100 '$Id' README > ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/core/ncurses/set_field_buffer.patch b/core/ncurses/set_field_buffer.patch
new file mode 100644
index 000000000..a2132043e
--- /dev/null
+++ b/core/ncurses/set_field_buffer.patch
@@ -0,0 +1,9 @@
+--- src/ncurses-5.7/form/frm_driver.c 2008/10/18 16:25:00 1.88
++++ src/ncurses-5.7/form/frm_driver.c 2008/12/06 23:08:12
+@@ -4366,6 +4366,7 @@
+ delwin(field->working);
+ field->working = newpad(field->drows, field->dcols);
+ }
++ len = Buffer_Length(field);
+ wclear(field->working);
+ mvwaddstr(field->working, 0, 0, value);
diff --git a/core/net-tools/PKGBUILD b/core/net-tools/PKGBUILD
new file mode 100644
index 000000000..b50b5669d
--- /dev/null
+++ b/core/net-tools/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 38718 2009-05-10 07:37:29Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=net-tools
+pkgver=1.60
+pkgrel=14
+pkgdesc="Configuration tools for Linux networking"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.tazenda.demon.co.uk/phil/net-tools"
+groups=('base')
+depends=('glibc')
+backup=('etc/conf.d/nisdomainname')
+source=(http://www.tazenda.demon.co.uk/phil/$pkgname/$pkgname-$pkgver.tar.bz2
+ net-tools.patch gcc340.patch net-tools-1.60-2.6-compilefix.patch
+ net-tools-1.60-miiioctl.patch nisdomainname.conf.d
+ net-tools-1.60-nameif.patch
+ net-tools-1.60-nameif_strncpy.patch)
+options=(!makeflags)
+md5sums=('888774accab40217dde927e21979c165'
+ '7ef8d0c6818faa0fdeea94970a20e3fb'
+ 'b52d899cba9956bb0055150506f41ac1'
+ '51de6eabe2d6d6dc860f72c41cee636b'
+ 'c16109863bc63f3dad4ef35305a340bb'
+ 'af3eef5d4837939f7858eec692aa4671'
+ '29a32617382fab1735acba4d920f1fcd'
+ 'e66466b9304dac85eb42b32f1ec3b284')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i ../net-tools.patch || return 1
+ patch -Np1 -i ../net-tools-1.60-2.6-compilefix.patch || return 1
+ patch -Np1 -i ../net-tools-1.60-miiioctl.patch || return 1
+ patch -Np1 -i ../gcc340.patch || return 1
+ patch -Np1 -i ${srcdir}/net-tools-1.60-nameif.patch || return 1
+ patch -Np1 -i ${srcdir}/net-tools-1.60-nameif_strncpy.patch || return 1
+ yes "" | make || return 1
+ make BASEDIR=$pkgdir update
+ install -D -m644 ../nisdomainname.conf.d \
+ $pkgdir/etc/conf.d/nisdomainname
+}
diff --git a/core/net-tools/gcc340.patch b/core/net-tools/gcc340.patch
new file mode 100644
index 000000000..8089bf217
--- /dev/null
+++ b/core/net-tools/gcc340.patch
@@ -0,0 +1,46 @@
+diff -Naur net-tools-1.60-orig/hostname.c net-tools-1.60/hostname.c
+--- net-tools-1.60-orig/hostname.c 2001-04-08 10:04:23.000000000 -0700
++++ net-tools-1.60/hostname.c 2004-05-07 17:22:14.000000000 -0700
+@@ -78,6 +78,7 @@
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+ default:
++ ;
+ }
+ exit(1);
+ }
+@@ -98,6 +99,7 @@
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+ default:
++ ;
+ }
+ exit(1);
+ };
+@@ -117,6 +119,7 @@
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+ default:
++ ;
+ }
+ exit(1);
+ };
+@@ -174,6 +177,7 @@
+ printf("%s\n", hp->h_name);
+ break;
+ default:
++ ;
+ }
+ }
+
+diff -Naur net-tools-1.60-orig/lib/inet_sr.c net-tools-1.60/lib/inet_sr.c
+--- net-tools-1.60-orig/lib/inet_sr.c 2000-02-20 13:46:45.000000000 -0800
++++ net-tools-1.60/lib/inet_sr.c 2004-05-07 17:20:14.000000000 -0700
+@@ -105,6 +105,7 @@
+ case 2:
+ isnet = 0; break;
+ default:
++ ;
+ }
+
+ /* Fill in the other fields. */
diff --git a/core/net-tools/net-tools-1.60-2.6-compilefix.patch b/core/net-tools/net-tools-1.60-2.6-compilefix.patch
new file mode 100644
index 000000000..92ce90128
--- /dev/null
+++ b/core/net-tools/net-tools-1.60-2.6-compilefix.patch
@@ -0,0 +1,23 @@
+diff -ruN net-tools-1.60.orig/lib/x25_sr.c net-tools-1.60/lib/x25_sr.c
+--- net-tools-1.60.orig/lib/x25_sr.c 2000-05-20 15:38:10.000000000 +0200
++++ net-tools-1.60/lib/x25_sr.c 2003-10-18 20:33:31.927574928 +0200
+@@ -22,6 +22,7 @@
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <linux/x25.h>
++#include <linux/version.h>
+ #include <ctype.h>
+ #include <errno.h>
+ #include <netdb.h>
+@@ -77,7 +78,11 @@
+ rt.sigdigits=sigdigits;
+
+ /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+ memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
++#else
++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(struct x25_address));
++#endif
+
+ while (*args) {
+ if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
diff --git a/core/net-tools/net-tools-1.60-miiioctl.patch b/core/net-tools/net-tools-1.60-miiioctl.patch
new file mode 100644
index 000000000..4859273ed
--- /dev/null
+++ b/core/net-tools/net-tools-1.60-miiioctl.patch
@@ -0,0 +1,17 @@
+--- net-tools-1.60/include/mii.h.bar Tue Jul 31 11:49:39 2001
++++ net-tools-1.60/include/mii.h Tue Jul 31 11:49:33 2001
+@@ -11,11 +11,9 @@
+
+ /* network interface ioctl's for MII commands */
+ #ifndef SIOCGMIIPHY
+-#define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */
+-#define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */
+-#define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */
+-#define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */
+-#define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */
++#define SIOCGMIIPHY 0x8947 /* Read from current PHY */
++#define SIOCGMIIREG 0x8948 /* Read any PHY register */
++#define SIOCSMIIREG 0x8949 /* Write any PHY register */
+ #endif
+
+ #include <linux/types.h>
diff --git a/core/net-tools/net-tools-1.60-nameif.patch b/core/net-tools/net-tools-1.60-nameif.patch
new file mode 100644
index 000000000..54def00c2
--- /dev/null
+++ b/core/net-tools/net-tools-1.60-nameif.patch
@@ -0,0 +1,58 @@
+--- net-tools-1.60/nameif.c.nameif 2000-10-18 19:26:29.000000000 +0200
++++ net-tools-1.60/nameif.c 2003-03-19 11:02:01.000000000 +0100
+@@ -117,7 +117,8 @@
+ }
+
+ struct change {
+- struct change *next,**pprev;
++ struct change *next;
++ int found;
+ char ifname[IFNAMSIZ+1];
+ unsigned char mac[6];
+ };
+@@ -139,10 +140,7 @@
+ ch->ifname, pos);
+ if (parsemac(p,ch->mac) < 0)
+ complain(_("cannot parse MAC `%s' at %s"), p, pos);
+- if (clist)
+- clist->pprev = &ch->next;
+ ch->next = clist;
+- ch->pprev = &clist;
+ clist = ch;
+ return 0;
+ }
+@@ -200,7 +198,7 @@
+
+ void usage(void)
+ {
+- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}"));
++ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n"));
+ exit(1);
+ }
+
+@@ -277,21 +275,21 @@
+ ch = lookupmac(mac);
+ if (!ch)
+ continue;
+-
+- *ch->pprev = ch->next;
++
++ ch->found = 1;
+ if (strcmp(p, ch->ifname)) {
+ if (setname(p, ch->ifname) < 0)
+ complain(_("cannot change name of %s to %s: %s"),
+ p, ch->ifname, strerror(errno));
+ }
+- free(ch);
+ }
+ fclose(ifh);
+
+ while (clist) {
+ struct change *ch = clist;
+ clist = clist->next;
+- warning(_("interface '%s' not found"), ch->ifname);
++ if (!ch->found)
++ warning(_("interface '%s' not found"), ch->ifname);
+ free(ch);
+ }
+
diff --git a/core/net-tools/net-tools-1.60-nameif_strncpy.patch b/core/net-tools/net-tools-1.60-nameif_strncpy.patch
new file mode 100644
index 000000000..7568e21a2
--- /dev/null
+++ b/core/net-tools/net-tools-1.60-nameif_strncpy.patch
@@ -0,0 +1,13 @@
+--- net-tools-1.60/nameif.c.ncpy 2006-10-03 14:24:21.000000000 +0200
++++ net-tools-1.60/nameif.c 2006-10-03 14:22:43.000000000 +0200
+@@ -100,8 +100,8 @@
+ struct ifreq ifr;
+ opensock();
+ memset(&ifr,0,sizeof(struct ifreq));
+- strcpy(ifr.ifr_name, oldname);
+- strcpy(ifr.ifr_newname, newname);
++ strncpy(ifr.ifr_name, oldname, IF_NAMESIZE);
++ strncpy(ifr.ifr_newname, newname, IF_NAMESIZE);
+ return ioctl(ctl_sk, SIOCSIFNAME, &ifr);
+ }
+
diff --git a/core/net-tools/net-tools.patch b/core/net-tools/net-tools.patch
new file mode 100644
index 000000000..87e062eb2
--- /dev/null
+++ b/core/net-tools/net-tools.patch
@@ -0,0 +1,52 @@
+diff -Naur net-tools-1.60-orig/config.in net-tools-1.60/config.in
+--- net-tools-1.60-orig/config.in 2000-05-21 07:32:12.000000000 -0700
++++ net-tools-1.60/config.in 2004-05-31 12:36:00.000000000 -0700
+@@ -49,7 +49,7 @@
+ *
+ bool 'UNIX protocol family' HAVE_AFUNIX y
+ bool 'INET (TCP/IP) protocol family' HAVE_AFINET y
+-bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n
++bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y
+ bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y
+ bool 'Appletalk DDP protocol family' HAVE_AFATALK y
+ bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y
+@@ -86,6 +86,6 @@
+ *
+ * Other Features.
+ *
+-bool 'IP Masquerading support' HAVE_FW_MASQUERADE n
+-bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n
+-bool 'Build mii-tool' HAVE_MII n
++bool 'IP Masquerading support' HAVE_FW_MASQUERADE y
++bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y
++bool 'Build mii-tool' HAVE_MII y
+diff -Naur net-tools-1.60-orig/mii-tool.c net-tools-1.60/mii-tool.c
+--- net-tools-1.60-orig/mii-tool.c 2000-05-21 07:31:17.000000000 -0700
++++ net-tools-1.60/mii-tool.c 2004-05-31 12:35:21.000000000 -0700
+@@ -379,16 +379,16 @@
+ /*--------------------------------------------------------------------*/
+
+ const char *usage =
+-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
+- -V, --version display version information
+- -v, --verbose more verbose output
+- -R, --reset reset MII to poweron state
+- -r, --restart restart autonegotiation
+- -w, --watch monitor for link status changes
+- -l, --log with -w, write events to syslog
+- -A, --advertise=media,... advertise only specified media
+- -F, --force=media force specified media technology
+-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
++"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n\
++ -V, --version display version information\n\
++ -v, --verbose more verbose output\n\
++ -R, --reset reset MII to poweron state\n\
++ -r, --restart restart autonegotiation\n\
++ -w, --watch monitor for link status changes\n\
++ -l, --log with -w, write events to syslog\n\
++ -A, --advertise=media,... advertise only specified media\n\
++ -F, --force=media force specified media technology\n\
++media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,\n\
+ (to advertise both HD and FD) 100baseTx, 10baseT\n";
+
+ int main(int argc, char **argv)
diff --git a/core/net-tools/nisdomainname.conf.d b/core/net-tools/nisdomainname.conf.d
new file mode 100644
index 000000000..6033ecf1c
--- /dev/null
+++ b/core/net-tools/nisdomainname.conf.d
@@ -0,0 +1,3 @@
+# Set your NIS domain name here
+NISDOMAINNAME=""
+
diff --git a/core/nfs-utils/PKGBUILD b/core/nfs-utils/PKGBUILD
new file mode 100644
index 000000000..339d9a32a
--- /dev/null
+++ b/core/nfs-utils/PKGBUILD
@@ -0,0 +1,87 @@
+# $Id: PKGBUILD 109322 2011-02-08 08:33:56Z ibiru $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: dibblethewrecker <dibblethewrecker.at.jiwe.org>
+# Contributor: abelstr <abel@pinklf.eu>
+# Contributor: Marco Lima <cipparello gmail com>
+
+pkgname=nfs-utils
+pkgver=1.2.2
+pkgrel=6
+pkgdesc="Support programs for Network File Systems"
+arch=('i686' 'x86_64')
+url='http://nfs.sourceforge.net'
+license=('GPL')
+backup=(etc/{exports,idmapd.conf} etc/conf.d/{nfs-common.conf,nfs-server.conf})
+depends=('glibc' 'tcp_wrappers' 'e2fsprogs' 'rpcbind' 'libtirpc>=0.2.1' 'librpcsecgss>=0.19-2' 'nfsidmap' 'libevent>=2.0.10' 'libgssglue')
+makedepends=('pkgconfig' 'autoconf' 'automake')
+source=(http://downloads.sourceforge.net/project/nfs/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ nfs-common
+ nfs-common.conf
+ nfs-server
+ nfs-server.conf
+ exports
+ idmapd.conf
+ start-statd.patch
+ nfs-utils-1.1.2-kerberos-ac.patch
+ nfs-utils-1.1.6-no_libgssapi.patch
+ nfs-utils-1.1.6-heimdal_functions.patch
+ nfs-utils-1.1.4-mtab-sym.patch
+ nfs-utils-1.1.4-no-exec.patch)
+install=nfs-utils.install
+md5sums=('dad92f64db3266c7757f71bb53ee8f35'
+ 'fc508e10cdf5e8ddd80373b1b2bc99a1'
+ 'f73f197a16b02c3e248488ec35c4cf43'
+ '5ae080f6117cef3140f02bc162bdc755'
+ 'b9b334414baec31b97f0431d9ecdcfb9'
+ 'ff585faf410a62c4333a027c50b56bae'
+ 'eb4f4027fab6fc1201f1ca04f5954c76'
+ 'e24f81a8c8657672e262c61235d34b4a'
+ 'f3be115d392d9f9bb0f056e8d4341a14'
+ '20c6fae1c771b9d8e91c4973f16372e3'
+ 'e6fd3a8acfe97970a53db1b902c34f45'
+ '7674106eaaa4c149bccd4f05fe3604e9'
+ '4f4827dfc93008dfadd0a530ad0872b2')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ # Patches from gentoo for heimdal compatibility Bug 231396
+ # http://bugs.gentoo.org/show_bug.cgi?id=231396
+ patch -Np1 -i ../nfs-utils-1.1.2-kerberos-ac.patch
+ patch -Np1 -i ../nfs-utils-1.1.6-no_libgssapi.patch
+ patch -Np0 -i ../nfs-utils-1.1.6-heimdal_functions.patch
+ patch -Np1 -i ../nfs-utils-1.1.4-mtab-sym.patch
+ patch -Np1 -i ../nfs-utils-1.1.4-no-exec.patch
+
+ # arch specific patch
+ patch -Np0 -i $srcdir/start-statd.patch
+
+ rm -f config.guess config.sub ltmain.sh
+ autoreconf -i
+
+ export GSSGLUE_CFLAGS='-I/usr/include/gssapi'
+ export GSSGLUE_LIBS='-lgssapi -ldl'
+
+ ./configure --prefix=/usr --enable-nfsv3 --enable-nfsv4 --enable-gss \
+ --with-tcp-wrappers --with-statedir=/var/lib/nfs --enable-ipv6 --sysconfdir=/etc
+
+ unset LDFLAGS
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+ make DESTDIR=$pkgdir install
+
+ # NFS & NFSv4 init scripts
+ install -D -m 755 ../nfs-common "$pkgdir/"etc/rc.d/nfs-common
+ install -D -m 755 ../nfs-server "$pkgdir/"etc/rc.d/nfs-server
+ # Configuration
+ install -D -m 644 ../exports "$pkgdir/"etc/exports
+ install -D -m 644 ../idmapd.conf "$pkgdir/"etc/idmapd.conf
+ install -D -m 644 ../nfs-common.conf "$pkgdir/"etc/conf.d/nfs-common.conf
+ install -D -m 644 ../nfs-server.conf "$pkgdir/"etc/conf.d/nfs-server.conf
+ # directories
+ mkdir "$pkgdir/"var/lib/nfs/rpc_pipefs
+ mkdir "$pkgdir/"var/lib/nfs/v4recovery
+}
diff --git a/core/nfs-utils/exports b/core/nfs-utils/exports
new file mode 100644
index 000000000..8f4aac598
--- /dev/null
+++ b/core/nfs-utils/exports
@@ -0,0 +1,15 @@
+# /etc/exports
+#
+# List of directories exported to NFS clients. See exports(5).
+# Use exportfs -arv to reread.
+#
+# Example for NFSv2 and NFSv3:
+# /srv/home hostname1(rw,sync) hostname2(ro,sync)
+#
+# Example for NFSv4:
+# /srv/nfs4 hostname1(rw,sync,fsid=0)
+# /srv/nfs4/home hostname1(rw,sync,nohide)
+# Using Kerberos and integrity checking:
+# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
+# /srv/nfs4/home gss/krb5i(rw,sync,nohide)
+#
diff --git a/core/nfs-utils/idmapd.conf b/core/nfs-utils/idmapd.conf
new file mode 100644
index 000000000..b1b23afe9
--- /dev/null
+++ b/core/nfs-utils/idmapd.conf
@@ -0,0 +1,14 @@
+[General]
+
+Verbosity = 0
+Pipefs-Directory = /var/lib/nfs/rpc_pipefs
+Domain = localdomain
+
+[Mapping]
+
+Nobody-User = nobody
+Nobody-Group = nobody
+
+[Translation]
+
+Method = nsswitch
diff --git a/core/nfs-utils/nfs-common b/core/nfs-utils/nfs-common
new file mode 100644
index 000000000..13742bde3
--- /dev/null
+++ b/core/nfs-utils/nfs-common
@@ -0,0 +1,319 @@
+#!/bin/bash
+
+daemon_name=nfs-common
+
+# daemon dependencies
+DAEMON_DEPENDS=('rpcbind')
+
+NEED_STATD=
+STATD_OPTS=
+NEED_IDMAPD=
+IDMAPD_OPTS=
+NEED_GSSD=
+GSSD_OPTS=
+PIPEFS_MOUNTPOINT=
+PIPEFS_MOUNTOPTS=
+
+# rpc.statd daemon & binary location
+STATD_DAEMON_NAME=rpc.statd
+STATD="/usr/sbin/rpc.statd"
+
+# rpc.idmapd daemon & binary location
+IDMAPD_DAEMON_NAME=rpc.idmapd
+IDMAPD="/usr/sbin/rpc.idmapd"
+
+# rpc.gssd daemon & binary location
+GSSD_DAEMON_NAME=rpc.gssd
+GSSD="/usr/sbin/rpc.gssd"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/$daemon_name.conf
+
+# Default mountpoint and options for rpc_pipefs filesystem
+[ -z "$PIPEFS_MOUNTPOINT" ] && PIPEFS_MOUNTPOINT="/var/lib/nfs/rpc_pipefs"
+[ -z "$PIPEFS_MOUNTOPTS" ] && PIPEFS_MOUNTOPTS="defaults"
+
+# Parse the fstab file, and determine whether we need idmapd and gssd. (The
+# /etc/conf.d/nfs-common settings, if any, will override our autodetection.)
+AUTO_NEED_IDMAPD=no
+AUTO_NEED_GSSD=no
+
+if [ -f /etc/fstab ]; then
+ exec 9<&0 </etc/fstab
+
+ while read DEV MTPT FSTYPE OPTS REST; do
+ if [ "$FSTYPE" = "nfs4" ]; then
+ AUTO_NEED_IDMAPD=yes
+ fi
+ case "$OPTS" in
+ sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
+ AUTO_NEED_GSSD=yes
+ ;;
+ esac
+ done
+
+ exec 0<&9 9<&-
+fi
+
+# We also need idmapd if we run an NFSv4 server. It's fairly difficult
+# to autodetect whether there are NFSv4 exports or not, and idmapd is not a
+# particularily heavy daemon, so we auto-enable it if we find an /etc/exports
+# file. This does not mean that there are NFSv4 or other mounts active (or
+# even that nfs-kernel-server is installed), but it matches what the "start"
+# condition in nfs-kernel-server's init script does, which has a value in
+# itself.
+if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
+ AUTO_NEED_IDMAPD=yes
+fi
+
+case "$NEED_STATD" in
+ yes|no)
+ ;;
+ *)
+ NEED_STATD=yes
+ ;;
+esac
+
+case "$NEED_IDMAPD" in
+ yes|no)
+ ;;
+ *)
+ NEED_IDMAPD=$AUTO_NEED_IDMAPD
+ ;;
+esac
+
+case "$NEED_GSSD" in
+ yes|no)
+ ;;
+ *)
+ NEED_GSSD=$AUTO_NEED_GSSD
+ ;;
+esac
+
+do_modprobe() {
+ if [ -x /sbin/modprobe -a -f /proc/modules ]; then
+ modprobe -q "$1" || true
+ fi
+}
+
+do_mount() {
+ if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then
+ return 1
+ fi
+
+ if grep -vw "$1" /proc/mounts &> /dev/null ; then
+ if ! mountpoint -q "$2" ; then
+ mount -t "$1" "$1" "$2" -o "$3"
+ return
+ fi
+ fi
+ return 0
+}
+
+do_umount() {
+ if mountpoint -q "$1" ; then
+ umount "$1"
+ fi
+ return 0
+}
+
+get_pid() {
+ pidof -o %PPID "$1"
+}
+
+case "$1" in
+ start)
+ ck_depends ${DAEMON_DEPENDS[@]}
+
+ rc=0
+ if [ "$NEED_STATD" = yes ]; then
+ stat_busy "Starting $STATD_DAEMON_NAME daemon"
+ PID=$(get_pid $STATD)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$STATD_DAEMON_NAME.pid ] && rm -f /var/run/$STATD_DAEMON_NAME.pid
+ # RUN
+ $STATD $STATD_OPTS
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ echo $(get_pid $STATD) > /var/run/$STATD_DAEMON_NAME.pid
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ # Run sm-notify
+ /usr/sbin/sm-notify $SMNOTIFY_OPTS
+ fi
+
+ if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then
+ stat_busy "Mounting pipefs filesystem"
+ do_modprobe sunrpc
+ do_modprobe nfs
+ do_modprobe nfsd
+ do_mount rpc_pipefs "$PIPEFS_MOUNTPOINT" "$PIPEFS_MOUNTOPTS"
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ stat_done
+ fi
+
+ if [ "$NEED_IDMAPD" = yes ]; then
+ stat_busy "Starting $IDMAPD_DAEMON_NAME daemon"
+ PID=$(get_pid $IDMAPD)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$IDMAPD_DAEMON_NAME.pid ] && rm -f /var/run/$IDMAPD_DAEMON_NAME.pid
+ # RUN
+ $IDMAPD $IDMAPD_OPTS
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ echo $(get_pid $IDMAPD) > /var/run/$IDMAPD_DAEMON_NAME.pid
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ fi
+
+ if [ "$NEED_GSSD" = yes ]; then
+ do_modprobe rpcsec_gss_krb5
+ stat_busy "Starting $GSSD_DAEMON_NAME daemon"
+ PID=$(get_pid $GSSD)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$GSSD_DAEMON_NAME.pid ] && rm -f /var/run/$GSSD_DAEMON_NAME.pid
+ # RUN
+ $GSSD $GSSD_OPTS
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ echo $(get_pid $GSSD) > /var/run/$GSSD_DAEMON_NAME.pid
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ fi
+ fi
+
+ add_daemon $daemon_name
+ ;;
+
+ stop)
+ rc=0
+ if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]; then
+
+ if [ "$NEED_GSSD" = yes ]; then
+ stat_busy "Stopping $GSSD_DAEMON_NAME daemon"
+ PID=$(get_pid $GSSD)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ rm -f /var/run/$GSSD_DAEMON_NAME.pid &> /dev/null
+ stat_done
+ fi
+ fi
+
+ if [ "$NEED_IDMAPD" = yes ]; then
+ stat_busy "Stopping $IDMAPD_DAEMON_NAME daemon"
+ PID=$(get_pid $IDMAPD)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ rm -f /var/run/$IDMAPD_DAEMON_NAME.pid &> /dev/null
+ stat_done
+ fi
+ fi
+ do_umount "$PIPEFS_MOUNTPOINT" 2>/dev/null || true
+ fi
+
+ if [ "$NEED_STATD" = yes ]; then
+ stat_busy "Stopping $STATD_DAEMON_NAME daemon"
+ PID=$(get_pid $STATD)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ rm -f /var/run/$STATD_DAEMON_NAME.pid &> /dev/null
+ stat_done
+ fi
+ fi
+
+ rm_daemon $daemon_name
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+
+ if [ "$NEED_STATD" = yes ]; then
+ stat_busy "Daemon $STATD_DAEMON_NAME running"
+ PID=$(get_pid $STATD)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+
+ if [ "$NEED_GSSD" = yes ]; then
+ stat_busy "Daemon $GSSD_DAEMON_NAME running"
+ PID=$(get_pid $GSSD)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+
+ if [ "$NEED_IDMAPD" = yes ]; then
+ stat_busy "Daemon $IDMAPD_DAEMON_NAME running"
+ PID=$(get_pid $IDMAPD)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+ echo
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|status|restart}"
+esac
+exit 0
+
diff --git a/core/nfs-utils/nfs-common.conf b/core/nfs-utils/nfs-common.conf
new file mode 100644
index 000000000..12466b3e5
--- /dev/null
+++ b/core/nfs-utils/nfs-common.conf
@@ -0,0 +1,40 @@
+# Parameters to be passed to nfs-common (nfs clients & server) init script.
+#
+
+# If you do not set values for the NEED_ options, they will be attempted
+# autodetected; this should be sufficient for most people. Valid alternatives
+# for the NEED_ options are "yes" and "no".
+
+# Do you want to start the statd daemon? It is not needed for NFSv4.
+NEED_STATD=""
+
+# Options to pass to rpc.statd.
+# See rpc.statd(8) for more details.
+# N.B. statd normally runs on both client and server, and run-time
+# options should be specified accordingly.
+# STATD_OPTS="-p 32765 -o 32766"
+STATD_OPTS=""
+
+# Options to pass to sm-notify
+# e.g. SMNOTIFY_OPTS="-p 32764"
+SMNOTIFY_OPTS=""
+
+# Do you want to start the idmapd daemon? It is only needed for NFSv4.
+NEED_IDMAPD=""
+
+# Options to pass to rpc.idmapd.
+# See rpc.idmapd(8) for more details.
+IDMAPD_OPTS=""
+
+# Do you want to start the gssd daemon? It is required for Kerberos mounts.
+NEED_GSSD=""
+
+# Options to pass to rpc.gssd.
+# See rpc.gssd(8) for more details.
+GSSD_OPTS=""
+
+# Where to mount rpc_pipefs filesystem; the default is "/var/lib/nfs/rpc_pipefs".
+PIPEFS_MOUNTPOINT=""
+
+# Options used to mount rpc_pipefs filesystem; the default is "defaults".
+PIPEFS_MOUNTOPTS=""
diff --git a/core/nfs-utils/nfs-server b/core/nfs-utils/nfs-server
new file mode 100644
index 000000000..9574cbc12
--- /dev/null
+++ b/core/nfs-utils/nfs-server
@@ -0,0 +1,303 @@
+#!/bin/bash
+
+daemon_name=nfs-server
+
+# daemon dependencies
+DAEMON_DEPENDS=('nfs-common')
+
+NFSD_COUNT=
+NFSD_OPTS=
+NEED_SVCGSSD=
+SVCGSSD_OPTS=
+MOUNTD_OPTS=
+PROCNFSD_MOUNTPOINT=
+PROCNFSD_MOUNTOPTS=
+
+# rpc.nfsd daemon & binary location
+NFSD_PROCESS_NAME=nfsd
+NFSD_DAEMON_NAME=rpc.nfsd
+NFSD="/usr/sbin/rpc.nfsd"
+
+# rpc.svcgssd daemon & binary location
+SVCGSSD_DAEMON_NAME=rpc.svcgssd
+SVCGSSD="/usr/sbin/rpc.svcgssd"
+
+# rpc.idmapd daemon & binary location
+IDMAPD_DAEMON_NAME=rpc.idmapd
+IDMAPD="/usr/sbin/rpc.idmapd"
+
+# rpc.mountd daemon & binary location
+MOUNTD_DAEMON_NAME=rpc.mountd
+MOUNTD="/usr/sbin/rpc.mountd"
+
+# exortfs binary location
+EXPORTFS="/usr/sbin/exportfs"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/$daemon_name.conf
+
+# Default number of nfsd servers
+[ -z "$NFSD_COUNT" ] && NFSD_COUNT=8
+
+# Default mountpoint and options for nfsd filesystem
+[ -z "$PROCNFSD_MOUNTPOINT" ] && PROCNFSD_MOUNTPOINT="/proc/fs/nfsd"
+[ -z "$PROCNFSD_MOUNTOPTS" ] && PROCNFSD_MOUNTOPTS="rw,nodev,noexec,nosuid"
+
+case "$NEED_SVCGSSD" in
+ yes|no)
+ ;;
+ *)
+ NEED_SVCGSSD=no
+ ;;
+esac
+
+do_modprobe() {
+ if [ -x /sbin/modprobe -a -f /proc/modules ]; then
+ modprobe -q "$1" || true
+ fi
+}
+
+do_mount() {
+ if ! grep -E "$1\$" /proc/filesystems &> /dev/null ; then
+ return 1
+ fi
+
+ if grep -vw "$1" /proc/mounts &> /dev/null ; then
+ if ! mountpoint -q "$2" ; then
+ mount -t "$1" "$1" "$2" -o "$3"
+ return
+ fi
+ fi
+ return 0
+}
+
+do_umount() {
+ if mountpoint -q "$1" ; then
+ umount "$1"
+ fi
+ return 0
+}
+
+get_pid() {
+ pidof -o %PPID "$1"
+}
+
+case "$1" in
+ start)
+ ck_depends ${DAEMON_DEPENDS[@]}
+
+ rc=0
+ stat_busy "Mounting nfsd filesystem"
+ do_modprobe nfsd
+ do_mount nfsd "$PROCNFSD_MOUNTPOINT" "$PROCNFSD_MOUNTOPTS"
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ stat_done
+ fi
+
+ stat_busy "Exporting all directories"
+ $EXPORTFS -r
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ stat_done
+ fi
+
+ stat_busy "Starting $NFSD_DAEMON_NAME daemon"
+ PID=$(get_pid $NFSD_PROCESS_NAME)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$NFSD_DAEMON_NAME.pid ] && rm -f /var/run/$NFSD_DAEMON_NAME.pid
+ # RUN
+ $NFSD $NFSD_OPTS $NFSD_COUNT
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ echo $(get_pid $NFSD_PROCESS_NAME) > /var/run/$NFSD_DAEMON_NAME.pid
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+
+ if [ "$NEED_SVCGSSD" = yes ]; then
+ do_modprobe rpcsec_gss_krb5
+ stat_busy "Starting $SVCGSSD_DAEMON_NAME daemon"
+ PID=$(get_pid $SVCGSSD)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$SVCGSSD_DAEMON_NAME.pid ] && rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid
+ # RUN
+ $SVCGSSD $SVCGSSD_OPTS
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ echo $(get_pid $SVCGSSD) > /var/run/$SVCGSSD_DAEMON_NAME.pid
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ fi
+
+ PID=$(get_pid $IDMAPD)
+ [ ! -z "$PID" ] && kill -SIGHUP $IDMAPD_DAEMON_NAME &> /dev/null
+
+ stat_busy "Starting $MOUNTD_DAEMON_NAME daemon"
+ PID=$(get_pid $MOUNTD)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$MOUNTD_DAEMON_NAME.pid ] && rm -f /var/run/$MOUNTD_DAEMON_NAME.pid
+ # RUN
+ $MOUNTD $MOUNTD_OPTS
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ echo $(get_pid $MOUNTD) > /var/run/$MOUNTD_DAEMON_NAME.pid
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+
+ add_daemon $daemon_name
+ ;;
+
+ stop)
+ rc=0
+ stat_busy "Stopping $MOUNTD_DAEMON_NAME daemon"
+ PID=$(get_pid $MOUNTD)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ rm -f /var/run/$MOUNTD_DAEMON_NAME.pid &> /dev/null
+ stat_done
+ fi
+
+ if [ "$NEED_SVCGSSD" = yes ]; then
+ stat_busy "Stopping $SVCGSSD_DAEMON_NAME daemon"
+ PID=$(get_pid $SVCGSSD)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ rm -f /var/run/$SVCGSSD_DAEMON_NAME.pid &> /dev/null
+ stat_done
+ fi
+ fi
+
+ stat_busy "Stopping $NFSD_DAEMON_NAME daemon"
+ PID=$(get_pid $NFSD_PROCESS_NAME)
+ # KILL (SIGINT)
+ [ ! -z "$PID" ] && kill -2 $PID &> /dev/null
+ #
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ sleep 1
+ PID=$(get_pid $NFSD_PROCESS_NAME)
+ # KILL (KILL) - just to be sure
+ [ ! -z "$PID" ] && kill -9 $PID &> /dev/null
+ #
+ rm -f /var/run/$NFSD_DAEMON_NAME.pid &> /dev/null
+ stat_done
+ fi
+
+ stat_busy "Unexporting all directories"
+ $EXPORTFS -au
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ stat_done
+ fi
+
+ # flush everything out of the kernels export table
+ if mountpoint -q "$PROCNFSD_MOUNTPOINT" ; then
+ $EXPORTFS -f
+ fi
+ do_umount "$PROCNFSD_MOUNTPOINT" 2>/dev/null || true
+ rm_daemon $daemon_name
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+
+ stat_busy "Daemon $NFSD_DAEMON_NAME running"
+ PID=$(get_pid $NFSD_PROCESS_NAME)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+
+ stat_busy "Daemon $MOUNTD_DAEMON_NAME running"
+ PID=$(get_pid $MOUNTD)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+
+ if [ "$NEED_SVCGSSD" = yes ]; then
+ stat_busy "Daemon $SVCGSSD_DAEMON_NAME running"
+ PID=$(get_pid $SVCGSSD)
+ if [ -z "$PID" ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+ echo
+ ;;
+
+ reload)
+ rc=0
+ stat_busy "Re-exporting all directories"
+ $EXPORTFS -r
+ rc=$(($rc+$?))
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ exit $rc
+ else
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|status|reload|restart}"
+esac
+exit 0
diff --git a/core/nfs-utils/nfs-server.conf b/core/nfs-utils/nfs-server.conf
new file mode 100644
index 000000000..cf75fb6f9
--- /dev/null
+++ b/core/nfs-utils/nfs-server.conf
@@ -0,0 +1,29 @@
+# Parameters to be passed to nfs-server init script.
+#
+
+# Options to pass to rpc.nfsd.
+# See rpc.nfsd(8) for more details.
+NFSD_OPTS=""
+
+# Number of servers to start up; the default is 8 servers.
+NFSD_COUNT=""
+
+# Where to mount nfsd filesystem; the default is "/proc/fs/nfsd".
+PROCNFSD_MOUNTPOINT=""
+
+# Options used to mount nfsd filesystem; the default is "rw,nodev,noexec,nosuid".
+PROCNFSD_MOUNTOPTS=""
+
+# Options for rpc.mountd.
+# If you have a port-based firewall, you might want to set up
+# a fixed port here using the --port option.
+# See rpc.mountd(8) for more details.
+MOUNTD_OPTS="--no-nfs-version 1 --no-nfs-version 2"
+
+# Do you want to start the svcgssd daemon? It is only required for Kerberos
+# exports. Valid alternatives are "yes" and "no"; the default is "no".
+NEED_SVCGSSD=""
+
+# Options to pass to rpc.svcgssd.
+# See rpc.svcgssd(8) for more details.
+SVCGSSD_OPTS=""
diff --git a/core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch b/core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch
new file mode 100644
index 000000000..4a5a138e7
--- /dev/null
+++ b/core/nfs-utils/nfs-utils-1.1.2-kerberos-ac.patch
@@ -0,0 +1,138 @@
+diff -NaurwB nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 nfs-utils-1.1.2/aclocal/kerberos5.m4
+--- nfs-utils-1.1.2.orig/aclocal/kerberos5.m4 2008-03-14 16:46:29.000000000 +0100
++++ nfs-utils-1.1.2/aclocal/kerberos5.m4 2008-06-12 17:13:51.000000000 +0200
+@@ -1,112 +1,48 @@
+-dnl Checks for Kerberos
+-dnl NOTE: while we intend to do generic gss-api, currently we
+-dnl have a requirement to get an initial Kerberos machine
+-dnl credential. Thus, the requirement for Kerberos.
+-dnl The Kerberos gssapi library will be dynamically loaded?
+ AC_DEFUN([AC_KERBEROS_V5],[
++ K5CONFIG="krb5-config"
+ AC_MSG_CHECKING(for Kerberos v5)
+- AC_ARG_WITH(krb5,
+- [AC_HELP_STRING([--with-krb5=DIR], [use Kerberos v5 installation in DIR])],
++ AC_ARG_WITH(krb5-config,
++ [AC_HELP_STRING([--with-krb5-config=PATH], [Full Path to krb5-config.])],
+ [ case "$withval" in
+ yes|no)
+- krb5_with=""
++ K5CONFIG="krb5-config"
+ ;;
+ *)
+- krb5_with="$withval"
++ K5CONFIG="$withval"
+ ;;
+ esac ]
+ )
+
+- for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
+- /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do
+- dnl This ugly hack brought on by the split installation of
+- dnl MIT Kerberos on Fedora Core 1
+- K5CONFIG=""
+- if test -f $dir/bin/krb5-config; then
+- K5CONFIG=$dir/bin/krb5-config
+- elif test -f "/usr/kerberos/bin/krb5-config"; then
+- K5CONFIG="/usr/kerberos/bin/krb5-config"
+- elif test -f "/usr/lib/mit/bin/krb5-config"; then
+- K5CONFIG="/usr/lib/mit/bin/krb5-config"
+- fi
+ if test "$K5CONFIG" != ""; then
+ KRBCFLAGS=`$K5CONFIG --cflags`
+ KRBLIBS=`$K5CONFIG --libs gssapi`
+- K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($(4),v,"."); if (v@<:@"3"@:>@ == "") v@<:@"3"@:>@ = "0"; print v@<:@"1"@:>@v@<:@"2"@:>@v@<:@"3"@:>@ }'`
+- AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
+- if test -f $dir/include/gssapi/gssapi_krb5.h -a \
+- \( -f $dir/lib/libgssapi_krb5.a -o \
+- -f $dir/lib64/libgssapi_krb5.a -o \
+- -f $dir/lib64/libgssapi_krb5.so -o \
+- -f $dir/lib/libgssapi_krb5.so \) ; then
++ if $K5CONFIG --version | grep -q -e heimdal; then
++ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f2 -d ' ' | tr -d '.'`
++ AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
++ gssapi_lib=gssapi
++ KRBIMPL="heimdal"
++ elif $K5CONFIG --version | grep -q -e mit; then
++ K5VERS=`$K5CONFIG --version | head -n 1 | cut -f4 -d ' ' | tr -d '.'`
+ AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
+- KRBDIR="$dir"
+- dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the
+- dnl private function (gss_krb5_ccache_name) to get correct
+- dnl behavior of changing the ccache used by gssapi.
+- dnl Starting in 1.3.2, we *DO NOT* want to use
+- dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME
+- dnl to get gssapi to use a different ccache
+ if test $K5VERS -le 131; then
+ AC_DEFINE(USE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the private function, gss_krb5_cache_name, must be used to tell the Kerberos library which credentials cache to use. Otherwise, this is done by setting the KRB5CCNAME environment variable])
+ fi
+ gssapi_lib=gssapi_krb5
+- break
+- dnl The following ugly hack brought on by the split installation
+- dnl of Heimdal Kerberos on SuSe
+- elif test \( -f $dir/include/heim_err.h -o\
+- -f $dir/include/heimdal/heim_err.h \) -a \
+- -f $dir/lib/libroken.a; then
+- AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
+- KRBDIR="$dir"
+- gssapi_lib=gssapi
+- break
+- fi
+- fi
+- done
+- dnl We didn't find a usable Kerberos environment
+- if test "x$KRBDIR" = "x"; then
+- if test "x$krb5_with" = "x"; then
+- AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=)
++ KRBIMPL="mit-krb5"
+ else
+- AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with)
+- fi
++ AC_MSG_ERROR(Unknown Kerberos 5 Implementation. Is neither heimdal or mit-krb5.)
++ KRBIMPL="unknown"
+ fi
+- AC_MSG_RESULT($KRBDIR)
+-
+- dnl Check if -rpath=$(KRBDIR)/lib is needed
+- echo "The current KRBDIR is $KRBDIR"
+- if test "$KRBDIR/lib" = "/lib" -o "$KRBDIR/lib" = "/usr/lib" \
+- -o "$KRBDIR/lib" = "//lib" -o "$KRBDIR/lib" = "/usr//lib" ; then
+- KRBLDFLAGS="";
+- elif /sbin/ldconfig -p | grep > /dev/null "=> $KRBDIR/lib/"; then
+- KRBLDFLAGS="";
+- else
+- KRBLDFLAGS="-Wl,-rpath=$KRBDIR/lib"
++ AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
+ fi
++ AC_MSG_RESULT($KRBIMPL)
+
+- dnl Now check for functions within gssapi library
+- AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context,
+- AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
+- AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes,
+- AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
+- AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name,
+- AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
+-
+- dnl Check for newer error message facility
+- AC_CHECK_LIB($gssapi_lib, krb5_get_error_message,
+- AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
++ AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context, AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIBS)
++ AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes, AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIBS)
++ AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name, AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIBS)
++ AC_CHECK_LIB($gssapi_lib, krb5_get_error_message, AC_DEFINE(HAVE_KRB5_GET_ERROR_MESSAGE, 1, [Define this if the function krb5_get_error_message is available]), ,$KRBLIBS)
++ AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless, AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
+
+- dnl Check for function to specify addressless tickets
+- AC_CHECK_LIB($gssapi_lib, krb5_get_init_creds_opt_set_addressless,
+- AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_SET_ADDRESSLESS, 1, [Define this if the function krb5_get_init_creds_opt_set_addressless is available]), ,$KRBLIBS)
+-
+- dnl If they specified a directory and it didn't work, give them a warning
+- if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
+- AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!)
+- fi
+-
+- AC_SUBST([KRBDIR])
+ AC_SUBST([KRBLIBS])
+ AC_SUBST([KRBCFLAGS])
+ AC_SUBST([KRBLDFLAGS])
diff --git a/core/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch b/core/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch
new file mode 100644
index 000000000..c9e60afc7
--- /dev/null
+++ b/core/nfs-utils/nfs-utils-1.1.4-mtab-sym.patch
@@ -0,0 +1,39 @@
+ripped from Debian
+
+--- nfs-utils-1.1.4/utils/mount/fstab.c
++++ nfs-utils-1.1.4/utils/mount/fstab.c
+@@ -57,7 +57,7 @@ mtab_does_not_exist(void) {
+ return var_mtab_does_not_exist;
+ }
+
+-static int
++int
+ mtab_is_a_symlink(void) {
+ get_mtab_info();
+ return var_mtab_is_a_symlink;
+--- nfs-utils-1.1.4/utils/mount/fstab.h
++++ nfs-utils-1.1.4/utils/mount/fstab.h
+@@ -7,6 +7,7 @@
+ #define _PATH_FSTAB "/etc/fstab"
+ #endif
+
++int mtab_is_a_symlink(void);
+ int mtab_is_writable(void);
+ int mtab_does_not_exist(void);
+ void reset_mtab_info(void);
+--- nfs-utils-1.1.4/utils/mount/mount.c
++++ nfs-utils-1.1.4/utils/mount/mount.c
+@@ -230,6 +230,13 @@ create_mtab (void) {
+ int flags;
+ mntFILE *mfp;
+
++ /* Avoid writing if the mtab is a symlink to /proc/mounts, since
++ that would create a file /proc/mounts in case the proc filesystem
++ is not mounted, and the fchmod below would also fail. */
++ if (mtab_is_a_symlink()) {
++ return EX_SUCCESS;
++ }
++
+ lock_mtab();
+
+ mfp = nfs_setmntent (MOUNTED, "a+");
diff --git a/core/nfs-utils/nfs-utils-1.1.4-no-exec.patch b/core/nfs-utils/nfs-utils-1.1.4-no-exec.patch
new file mode 100644
index 000000000..ea50a21d8
--- /dev/null
+++ b/core/nfs-utils/nfs-utils-1.1.4-no-exec.patch
@@ -0,0 +1,15 @@
+ripped from Debian
+
+--- nfs-utils-1.1.2/utils/mount/mount.c
++++ nfs-utils-1.1.2/utils/mount/mount.c
+@@ -381,10 +381,6 @@
+ mount_error(NULL, mount_point, ENOTDIR);
+ return 1;
+ }
+- if (access(mount_point, X_OK) < 0) {
+- mount_error(NULL, mount_point, errno);
+- return 1;
+- }
+
+ return 0;
+ }
diff --git a/core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch b/core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch
new file mode 100644
index 000000000..7f6c7a751
--- /dev/null
+++ b/core/nfs-utils/nfs-utils-1.1.6-heimdal_functions.patch
@@ -0,0 +1,69 @@
+diff -Naur nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c nfs-utils-1.1.6/utils/gssd/krb5_util.c
+--- utils/gssd/krb5_util.c 2009-04-20 19:32:50.000000000 +0200
++++ utils/gssd/krb5_util.c 2009-04-20 20:57:31.000000000 +0200
+@@ -940,9 +940,37 @@
+ {
+ krb5_error_code ret;
+ krb5_creds creds;
+- krb5_cc_cursor cur;
+ int found = 0;
+
++#ifdef HAVE_HEIMDAL
++ krb5_creds pattern;
++ krb5_realm *client_realm;
++
++ krb5_cc_clear_mcred(&pattern);
++
++ client_realm = krb5_princ_realm (context, principal);
++
++ ret = krb5_make_principal (context, &pattern.server,
++ *client_realm, KRB5_TGS_NAME, *client_realm,
++ NULL);
++ if (ret)
++ krb5_err (context, 1, ret, "krb5_make_principal");
++ pattern.client = principal;
++
++ ret = krb5_cc_retrieve_cred (context, ccache, 0, &pattern, &creds);
++ krb5_free_principal (context, pattern.server);
++ if (ret) {
++ if (ret == KRB5_CC_END)
++ return 1;
++ krb5_err (context, 1, ret, "krb5_cc_retrieve_cred");
++ }
++
++ found = creds.times.endtime > time(NULL);
++
++ krb5_free_cred_contents (context, &creds);
++#else
++ krb5_cc_cursor cur;
++
+ ret = krb5_cc_start_seq_get(context, ccache, &cur);
+ if (ret)
+ return 0;
+@@ -962,6 +990,7 @@
+ krb5_free_cred_contents(context, &creds);
+ }
+ krb5_cc_end_seq_get(context, ccache, &cur);
++#endif
+
+ return found;
+ }
+@@ -1008,6 +1037,9 @@
+ }
+ krb5_free_principal(context, principal);
+ err_princ:
++#ifdef HAVE_HEIMDAL
++#define KRB5_TC_OPENCLOSE 0x00000001
++#endif
+ krb5_cc_set_flags(context, ccache, KRB5_TC_OPENCLOSE);
+ krb5_cc_close(context, ccache);
+ err_cache:
+@@ -1262,7 +1294,7 @@
+ if (context != NULL) {
+ origmsg = krb5_get_error_message(context, code);
+ msg = strdup(origmsg);
+- krb5_free_error_message(context, origmsg);
++ krb5_free_error_string(context, origmsg);
+ }
+ #endif
+ if (msg != NULL)
diff --git a/core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch b/core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch
new file mode 100644
index 000000000..917136a8c
--- /dev/null
+++ b/core/nfs-utils/nfs-utils-1.1.6-no_libgssapi.patch
@@ -0,0 +1,57 @@
+Index: nfs-utils-1.1.6/utils/gssd/context_lucid.c
+===================================================================
+--- nfs-utils-1.1.6.orig/utils/gssd/context_lucid.c
++++ nfs-utils-1.1.6/utils/gssd/context_lucid.c
+@@ -51,8 +51,10 @@
+ #include "context.h"
+
+ #ifndef OM_uint64
++#ifndef GSSAPI_GSSAPI_H_
+ typedef uint64_t OM_uint64;
+ #endif
++#endif
+
+ static int
+ write_lucid_keyblock(char **p, char *end, gss_krb5_lucid_key_t *key)
+@@ -177,10 +179,10 @@
+ int retcode = 0;
+
+ printerr(2, "DEBUG: serialize_krb5_ctx: lucid version!\n");
+- maj_stat = gss_export_lucid_sec_context(&min_stat, &ctx,
++ maj_stat = gss_krb5_export_lucid_sec_context(&min_stat, &ctx,
+ 1, &return_ctx);
+ if (maj_stat != GSS_S_COMPLETE) {
+- pgsserr("gss_export_lucid_sec_context",
++ pgsserr("gss_krb5_export_lucid_sec_context",
+ maj_stat, min_stat, &krb5oid);
+ goto out_err;
+ }
+@@ -204,9 +206,9 @@
+ else
+ retcode = prepare_krb5_rfc_cfx_buffer(lctx, buf, endtime);
+
+- maj_stat = gss_free_lucid_sec_context(&min_stat, ctx, return_ctx);
++ maj_stat = gss_krb5_free_lucid_sec_context(&min_stat, ctx);
+ if (maj_stat != GSS_S_COMPLETE) {
+- pgsserr("gss_export_lucid_sec_context",
++ pgsserr("gss_krb5_export_lucid_sec_context",
+ maj_stat, min_stat, &krb5oid);
+ printerr(0, "WARN: failed to free lucid sec context\n");
+ }
+Index: nfs-utils-1.1.6/utils/gssd/krb5_util.c
+===================================================================
+--- nfs-utils-1.1.6.orig/utils/gssd/krb5_util.c
++++ nfs-utils-1.1.6/utils/gssd/krb5_util.c
+@@ -332,10 +332,10 @@
+ return -1;
+ }
+
+- maj_stat = gss_set_allowable_enctypes(&min_stat, credh, &krb5oid,
++ maj_stat = gss_krb5_set_allowable_enctypes(&min_stat, credh,
+ num_enctypes, &enctypes);
+ if (maj_stat != GSS_S_COMPLETE) {
+- pgsserr("gss_set_allowable_enctypes",
++ pgsserr("gss_krb5_set_allowable_enctypes",
+ maj_stat, min_stat, &krb5oid);
+ gss_release_cred(&min_stat, &credh);
+ return -1;
diff --git a/core/nfs-utils/nfs-utils.install b/core/nfs-utils/nfs-utils.install
new file mode 100644
index 000000000..7dcdf9575
--- /dev/null
+++ b/core/nfs-utils/nfs-utils.install
@@ -0,0 +1,32 @@
+## arg 1: the new package version
+post_install() {
+cat << 'EOM'
+ ==> PLEASE NOTE:
+ ==> Extended configuration options for NFS (clients & server) are available in
+ ==> /etc/conf.d/nfs-common.conf and in /etc/conf.d/nfs-server.conf
+ ==>
+ ==> Please refer to http://wiki.archlinux.org/index.php/Nfs
+ ==> for further information on NFS; for NFSv4, refer to
+ ==> http://wiki.archlinux.org/index.php/NFSv4
+EOM
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ if [ "$(vercmp $2 1.2.0-2)" -lt 0 ]; then
+cat << 'EOM'
+ ==> IMPORTANT NFS UTILS CHANGES:
+ ==> This is a rather important upgrade, you are going to have to change config files.
+ ==> /etc/rc.conf daemons changes:
+ ==> Change portmap to rpcbind
+ ==> Change nfslock to nfs-common
+ ==> Change nfsd to nfs-server
+ ==>
+ ==> Extended configuration options for NFS (clients & server) are available in:
+ ==> /etc/conf.d/nfs-common
+ ==> /etc/conf.d/nfs-server
+ ==> Please change them to your needs.
+EOM
+ fi
+}
diff --git a/core/nfs-utils/start-statd.patch b/core/nfs-utils/start-statd.patch
new file mode 100644
index 000000000..38c60a784
--- /dev/null
+++ b/core/nfs-utils/start-statd.patch
@@ -0,0 +1,22 @@
+--- utils/statd/start-statd 2007-05-11 04:40:57.000000000 +0100
++++ utils/statd/start-statd.new 2007-09-21 17:11:34.000000000 +0100
+@@ -1,9 +1,16 @@
+-#!/bin/sh -p
++#!/bin/sh
++
++# Original script provided by the NFS project
++# Modified for Arch Linux by Tom Killian
++
+ # nfsmount calls this script when mounting a filesystem with locking
+ # enabled, but when statd does not seem to be running (based on
+ # /var/run/rpc.statd.pid).
+ # It should run run statd with whatever flags are apropriate for this
+ # site.
+-PATH=/sbin:/usr/sbin
+-exec rpc.statd --no-notify
++
++# source application-specific settings
++[ -f /etc/conf.d/nfs-common.conf ] && . /etc/conf.d/nfs-common.conf
++
++exec /usr/sbin/rpc.statd $STATD_OPTS
+
diff --git a/core/nfsidmap/PKGBUILD b/core/nfsidmap/PKGBUILD
new file mode 100644
index 000000000..f744598ce
--- /dev/null
+++ b/core/nfsidmap/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 111577 2011-02-27 18:55:50Z tpowa $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=nfsidmap
+pkgver=0.24
+pkgrel=2
+pkgdesc="Library to help mapping IDs, mainly for NFSv4"
+arch=('i686' 'x86_64')
+url="http://www.citi.umich.edu/projects/nfsv4/linux/"
+depends=('glibc' 'libldap>=2.4.18')
+license=('custom:nfsidmap')
+options=(!libtool)
+source=(http://www.citi.umich.edu/projects/nfsv4/linux/libnfsidmap/libnfsidmap-$pkgver.tar.gz)
+md5sums=('d71a1ee9881d5b5814ff3ec41256937d')
+
+build() {
+ cd $srcdir/lib$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd $srcdir/lib$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # remove idmap manpage provided by nfs-utils!
+ rm $pkgdir/usr/share/man/man5/idmapd.conf.5
+
+ # install license
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/nfsidmap/LICENSE
+}
diff --git a/core/nilfs-utils/PKGBUILD b/core/nilfs-utils/PKGBUILD
new file mode 100644
index 000000000..12571ea11
--- /dev/null
+++ b/core/nilfs-utils/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 107520 2011-01-26 13:39:05Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+pkgname=nilfs-utils
+pkgver=2.0.21
+pkgrel=1
+pkgdesc="A log-structured file system supporting continuous snapshotting (userspace utils)"
+arch=('i686' 'x86_64')
+url="http://www.nilfs.org/"
+license=('GPL2' 'LGPL2.1')
+backup=('etc/nilfs_cleanerd.conf')
+depends=('util-linux-ng')
+options=(!libtool)
+source=(http://www.nilfs.org/download/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7f970f35950b429ac490df594c9d8fc1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --libdir=/lib
+ make
+ make DESTDIR="${pkgdir}" install LDCONFIG=/bin/true
+}
diff --git a/core/openssh/PKGBUILD b/core/openssh/PKGBUILD
new file mode 100644
index 000000000..389d009c8
--- /dev/null
+++ b/core/openssh/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 108830 2011-02-04 07:33:09Z bisson $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=openssh
+pkgver=5.8p1
+pkgrel=1
+pkgdesc='Free version of the SSH connectivity tools'
+arch=('i686' 'x86_64')
+license=('custom:BSD')
+url='http://www.openssh.org/portable.html'
+backup=('etc/ssh/ssh_config' 'etc/ssh/sshd_config' 'etc/pam.d/sshd' 'etc/conf.d/sshd')
+depends=('tcp_wrappers' 'heimdal' 'libedit')
+source=("ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver}.tar.gz"
+ 'sshd.confd'
+ 'sshd.pam'
+ 'sshd')
+sha1sums=('adebb2faa9aba2a3a3c8b401b2b19677ab53f0de'
+ 'ec102deb69cad7d14f406289d2fc11fee6eddbdd'
+ '660092c57bde28bed82078f74011f95fc51c2293'
+ '6b7f8ebf0c1cc37137a7d9a53447ac8a0ee6a2b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib/ssh \
+ --sysconfdir=/etc/ssh --with-tcp-wrappers --with-privsep-user=nobody \
+ --with-md5-passwords --with-pam --with-mantype=man --mandir=/usr/share/man \
+ --with-xauth=/usr/bin/xauth --with-kerberos5=/usr --with-ssl-engine \
+ --with-libedit=/usr/lib --disable-strip # stripping is done by makepkg
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm755 ../sshd "${pkgdir}"/etc/rc.d/sshd
+ install -Dm644 ../sshd.pam "${pkgdir}"/etc/pam.d/sshd
+ install -Dm644 ../sshd.confd "${pkgdir}"/etc/conf.d/sshd
+ install -Dm644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENCE"
+
+ rm "${pkgdir}"/usr/share/man/man1/slogin.1
+ ln -sf ssh.1.gz "${pkgdir}"/usr/share/man/man1/slogin.1.gz
+
+ # additional contrib scripts that we like
+ install -Dm755 contrib/findssl.sh "${pkgdir}"/usr/bin/findssl.sh
+ install -Dm755 contrib/ssh-copy-id "${pkgdir}"/usr/bin/ssh-copy-id
+ install -Dm644 contrib/ssh-copy-id.1 "${pkgdir}"/usr/share/man/man1/ssh-copy-id.1
+
+ # PAM is a common, standard feature to have
+ sed -i -e '/^#ChallengeResponseAuthentication yes$/c ChallengeResponseAuthentication no' \
+ -e '/^#UsePAM no$/c UsePAM yes' \
+ "$pkgdir"/etc/ssh/sshd_config
+}
diff --git a/core/openssh/sshd b/core/openssh/sshd
new file mode 100755
index 000000000..2ee1091f0
--- /dev/null
+++ b/core/openssh/sshd
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/sshd
+
+PIDFILE=/var/run/sshd.pid
+PID=$(cat $PIDFILE 2>/dev/null)
+if ! readlink -q /proc/$PID/exe | grep -q '^/usr/sbin/sshd'; then
+ PID=
+ rm $PIDFILE 2>/dev/null
+fi
+
+case "$1" in
+ start)
+ stat_busy "Starting Secure Shell Daemon"
+ [ -f /etc/ssh/ssh_host_key ] || { /usr/bin/ssh-keygen -t rsa1 -N "" -f /etc/ssh/ssh_host_key >/dev/null; }
+ [ -f /etc/ssh/ssh_host_rsa_key ] || { /usr/bin/ssh-keygen -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key >/dev/null; }
+ [ -f /etc/ssh/ssh_host_dsa_key ] || { /usr/bin/ssh-keygen -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key >/dev/null; }
+ [ -f /etc/ssh/ssh_host_ecdsa_key ] || { /usr/bin/ssh-keygen -t ecdsa -N "" -f /etc/ssh/ssh_host_ecdsa_key >/dev/null; }
+ [ -d /var/empty ] || mkdir -p /var/empty
+ [ -z "$PID" ] && /usr/sbin/sshd $SSHD_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon sshd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Secure Shell Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon sshd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/openssh/sshd.confd b/core/openssh/sshd.confd
new file mode 100644
index 000000000..5ce7c0079
--- /dev/null
+++ b/core/openssh/sshd.confd
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to sshd
+#
+SSHD_ARGS=""
diff --git a/core/openssh/sshd.pam b/core/openssh/sshd.pam
new file mode 100644
index 000000000..ae028ceb5
--- /dev/null
+++ b/core/openssh/sshd.pam
@@ -0,0 +1,10 @@
+#%PAM-1.0
+#auth required pam_securetty.so #Disable remote root
+auth required pam_unix.so
+auth required pam_env.so
+account required pam_nologin.so
+account required pam_unix.so
+account required pam_time.so
+password required pam_unix.so
+session required pam_unix_session.so
+session required pam_limits.so
diff --git a/core/openssl/PKGBUILD b/core/openssl/PKGBUILD
new file mode 100644
index 000000000..756338040
--- /dev/null
+++ b/core/openssl/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 109351 2011-02-08 19:05:04Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=openssl
+_ver=1.0.0d
+# use a pacman compatible version scheme
+pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgrel=1
+pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security'
+arch=('i686' 'x86_64')
+url='https://www.openssl.org'
+license=('custom:BSD')
+depends=('perl')
+optdepends=('ca-certificates')
+options=('!makeflags')
+backup=('etc/ssl/openssl.cnf')
+source=("https://www.openssl.org/source/${pkgname}-${_ver}.tar.gz"
+ 'fix-manpages.patch'
+ 'no-rpath.patch'
+ 'ca-dir.patch')
+md5sums=('40b6ea380cc8a5bf9734c2f8bf7e701e'
+ '5bbc0655bda2af95bc8eb568963ce8ba'
+ 'dc78d3d06baffc16217519242ce92478'
+ '3bf51be3a1bbd262be46dc619f92aa90')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+ cd $srcdir/$pkgname-$_ver
+
+ # avoid conflicts with other man pages
+ # see http://www.linuxfromscratch.org/patches/downloads/openssl/
+ patch -p1 -i $srcdir/fix-manpages.patch
+ # remove rpath: http://bugs.archlinux.org/task/14367
+ patch -p0 -i $srcdir/no-rpath.patch
+ # set ca dir to /etc/ssl by default
+ patch -p0 -i $srcdir/ca-dir.patch
+ # mark stack as non-executable: http://bugs.archlinux.org/task/12434
+ ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib \
+ shared zlib enable-md2 -Wa,--noexecstack
+
+ make
+
+ # the test fails due to missing write permissions in /etc/ssl
+ # revert this patch for make test
+ #patch -p0 -R -i $srcdir/ca-dir.patch
+ #make test
+ #patch -p0 -i $srcdir/ca-dir.patch
+}
+
+package() {
+ cd $srcdir/$pkgname-$_ver
+ make INSTALL_PREFIX=$pkgdir MANDIR=/usr/share/man install
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/core/openssl/ca-dir.patch b/core/openssl/ca-dir.patch
new file mode 100644
index 000000000..41d1386d3
--- /dev/null
+++ b/core/openssl/ca-dir.patch
@@ -0,0 +1,33 @@
+--- apps/CA.pl.in 2006-04-28 02:30:49.000000000 +0200
++++ apps/CA.pl.in 2010-04-01 00:35:02.600553509 +0200
+@@ -53,7 +53,7 @@
+ $X509="$openssl x509";
+ $PKCS12="$openssl pkcs12";
+
+-$CATOP="./demoCA";
++$CATOP="/etc/ssl";
+ $CAKEY="cakey.pem";
+ $CAREQ="careq.pem";
+ $CACERT="cacert.pem";
+--- apps/CA.sh 2009-10-15 19:27:47.000000000 +0200
++++ apps/CA.sh 2010-04-01 00:35:02.600553509 +0200
+@@ -68,7 +68,7 @@
+ X509="$OPENSSL x509"
+ PKCS12="openssl pkcs12"
+
+-if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
++if [ -z "$CATOP" ] ; then CATOP=/etc/ssl ; fi
+ CAKEY=./cakey.pem
+ CAREQ=./careq.pem
+ CACERT=./cacert.pem
+--- apps/openssl.cnf 2009-04-04 20:09:43.000000000 +0200
++++ apps/openssl.cnf 2010-04-01 00:35:02.607220681 +0200
+@@ -39,7 +39,7 @@
+ ####################################################################
+ [ CA_default ]
+
+-dir = ./demoCA # Where everything is kept
++dir = /etc/ssl # Where everything is kept
+ certs = $dir/certs # Where the issued certs are kept
+ crl_dir = $dir/crl # Where the issued crl are kept
+ database = $dir/index.txt # database index file.
diff --git a/core/openssl/fix-manpages.patch b/core/openssl/fix-manpages.patch
new file mode 100644
index 000000000..0a300f3b9
--- /dev/null
+++ b/core/openssl/fix-manpages.patch
@@ -0,0 +1,1920 @@
+Submitted By: Robert Connolly <robert at linuxfromscratch dot org>
+Date: 2005-11-13
+Initial Package Version: 0.9.8a
+Upstream Status: Submitted upstream
+Origin: Anderson Lizardo
+Description: This patch fixes conflicts between man pages
+ installed by OpenSSL and those found on other
+ packages (particulary Shadow, Perl, and
+ Man-pages). It also fixes syntax errors on some
+ POD files that generates slightly broken man
+ pages. Rediffed for 1.0.0a by Ken Moffat
+
+diff -Naur openssl-1.0.0a.orig//crypto/rand/md_rand.c openssl-1.0.0a/crypto/rand/md_rand.c
+--- openssl-1.0.0a.orig//crypto/rand/md_rand.c 2009-01-03 09:25:32.000000000 +0000
++++ openssl-1.0.0a/crypto/rand/md_rand.c 2010-09-01 19:36:31.604126440 +0100
+@@ -196,7 +196,7 @@
+ int do_not_lock;
+
+ /*
+- * (Based on the rand(3) manpage)
++ * (Based on the openssl_rand(3) manpage)
+ *
+ * The input is chopped up into units of 20 bytes (or less for
+ * the last block). Each of these blocks is run through the hash
+@@ -361,7 +361,7 @@
+ num_ceil = (1 + (num-1)/(MD_DIGEST_LENGTH/2)) * (MD_DIGEST_LENGTH/2);
+
+ /*
+- * (Based on the rand(3) manpage:)
++ * (Based on the openssl_rand(3) manpage)
+ *
+ * For each group of 10 bytes (or less), we do the following:
+ *
+diff -Naur openssl-1.0.0a.orig//doc/apps/openssl-passwd.pod openssl-1.0.0a/doc/apps/openssl-passwd.pod
+--- openssl-1.0.0a.orig//doc/apps/openssl-passwd.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/apps/openssl-passwd.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -0,0 +1,82 @@
++=pod
++
++=head1 NAME
++
++openssl-passwd - compute password hashes
++
++=head1 SYNOPSIS
++
++B<openssl passwd>
++[B<-crypt>]
++[B<-1>]
++[B<-apr1>]
++[B<-salt> I<string>]
++[B<-in> I<file>]
++[B<-stdin>]
++[B<-noverify>]
++[B<-quiet>]
++[B<-table>]
++{I<password>}
++
++=head1 DESCRIPTION
++
++The B<passwd> command computes the hash of a password typed at
++run-time or the hash of each password in a list. The password list is
++taken from the named file for option B<-in file>, from stdin for
++option B<-stdin>, or from the command line, or from the terminal otherwise.
++The Unix standard algorithm B<crypt> and the MD5-based BSD password
++algorithm B<1> and its Apache variant B<apr1> are available.
++
++=head1 OPTIONS
++
++=over 4
++
++=item B<-crypt>
++
++Use the B<crypt> algorithm (default).
++
++=item B<-1>
++
++Use the MD5 based BSD password algorithm B<1>.
++
++=item B<-apr1>
++
++Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
++
++=item B<-salt> I<string>
++
++Use the specified salt.
++When reading a password from the terminal, this implies B<-noverify>.
++
++=item B<-in> I<file>
++
++Read passwords from I<file>.
++
++=item B<-stdin>
++
++Read passwords from B<stdin>.
++
++=item B<-noverify>
++
++Don't verify when reading a password from the terminal.
++
++=item B<-quiet>
++
++Don't output warnings when passwords given at the command line are truncated.
++
++=item B<-table>
++
++In the output list, prepend the cleartext password and a TAB character
++to each password hash.
++
++=back
++
++=head1 EXAMPLES
++
++B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
++
++B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
++
++B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/apps/openssl.pod openssl-1.0.0a/doc/apps/openssl.pod
+--- openssl-1.0.0a.orig//doc/apps/openssl.pod 2010-01-21 18:46:28.000000000 +0000
++++ openssl-1.0.0a/doc/apps/openssl.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -163,7 +163,7 @@
+
+ Online Certificate Status Protocol utility.
+
+-=item L<B<passwd>|passwd(1)>
++=item L<B<passwd>|openssl-passwd(1)>
+
+ Generation of hashed passwords.
+
+@@ -401,7 +401,7 @@
+ L<dhparam(1)|dhparam(1)>, L<dsa(1)|dsa(1)>, L<dsaparam(1)|dsaparam(1)>,
+ L<enc(1)|enc(1)>, L<gendsa(1)|gendsa(1)>, L<genpkey(1)|genpkey(1)>,
+ L<genrsa(1)|genrsa(1)>, L<nseq(1)|nseq(1)>, L<openssl(1)|openssl(1)>,
+-L<passwd(1)|passwd(1)>,
++L<openssl-passwd(1)|openssl-passwd(1)>,
+ L<pkcs12(1)|pkcs12(1)>, L<pkcs7(1)|pkcs7(1)>, L<pkcs8(1)|pkcs8(1)>,
+ L<rand(1)|rand(1)>, L<req(1)|req(1)>, L<rsa(1)|rsa(1)>,
+ L<rsautl(1)|rsautl(1)>, L<s_client(1)|s_client(1)>,
+diff -Naur openssl-1.0.0a.orig//doc/apps/passwd.pod openssl-1.0.0a/doc/apps/passwd.pod
+--- openssl-1.0.0a.orig//doc/apps/passwd.pod 2002-10-04 13:59:00.000000000 +0100
++++ openssl-1.0.0a/doc/apps/passwd.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,82 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-passwd - compute password hashes
+-
+-=head1 SYNOPSIS
+-
+-B<openssl passwd>
+-[B<-crypt>]
+-[B<-1>]
+-[B<-apr1>]
+-[B<-salt> I<string>]
+-[B<-in> I<file>]
+-[B<-stdin>]
+-[B<-noverify>]
+-[B<-quiet>]
+-[B<-table>]
+-{I<password>}
+-
+-=head1 DESCRIPTION
+-
+-The B<passwd> command computes the hash of a password typed at
+-run-time or the hash of each password in a list. The password list is
+-taken from the named file for option B<-in file>, from stdin for
+-option B<-stdin>, or from the command line, or from the terminal otherwise.
+-The Unix standard algorithm B<crypt> and the MD5-based BSD password
+-algorithm B<1> and its Apache variant B<apr1> are available.
+-
+-=head1 OPTIONS
+-
+-=over 4
+-
+-=item B<-crypt>
+-
+-Use the B<crypt> algorithm (default).
+-
+-=item B<-1>
+-
+-Use the MD5 based BSD password algorithm B<1>.
+-
+-=item B<-apr1>
+-
+-Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
+-
+-=item B<-salt> I<string>
+-
+-Use the specified salt.
+-When reading a password from the terminal, this implies B<-noverify>.
+-
+-=item B<-in> I<file>
+-
+-Read passwords from I<file>.
+-
+-=item B<-stdin>
+-
+-Read passwords from B<stdin>.
+-
+-=item B<-noverify>
+-
+-Don't verify when reading a password from the terminal.
+-
+-=item B<-quiet>
+-
+-Don't output warnings when passwords given at the command line are truncated.
+-
+-=item B<-table>
+-
+-In the output list, prepend the cleartext password and a TAB character
+-to each password hash.
+-
+-=back
+-
+-=head1 EXAMPLES
+-
+-B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
+-
+-B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
+-
+-B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/BN_generate_prime.pod openssl-1.0.0a/doc/crypto/BN_generate_prime.pod
+--- openssl-1.0.0a.orig//doc/crypto/BN_generate_prime.pod 2003-01-13 13:18:22.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/BN_generate_prime.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -90,7 +90,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/bn.pod openssl-1.0.0a/doc/crypto/bn.pod
+--- openssl-1.0.0a.orig//doc/crypto/bn.pod 2008-07-03 20:59:24.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/bn.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -167,7 +167,7 @@
+ =head1 SEE ALSO
+
+ L<bn_internal(3)|bn_internal(3)>,
+-L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<BN_new(3)|BN_new(3)>, L<BN_CTX_new(3)|BN_CTX_new(3)>,
+ L<BN_copy(3)|BN_copy(3)>, L<BN_swap(3)|BN_swap(3)>, L<BN_num_bytes(3)|BN_num_bytes(3)>,
+ L<BN_add(3)|BN_add(3)>, L<BN_add_word(3)|BN_add_word(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/BN_rand.pod openssl-1.0.0a/doc/crypto/BN_rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/BN_rand.pod 2002-09-25 14:33:26.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/BN_rand.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -45,7 +45,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<RAND_add(3)|RAND_add(3)>, L<RAND_bytes(3)|RAND_bytes(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/CONF_modules_free.pod openssl-1.0.0a/doc/crypto/CONF_modules_free.pod
+--- openssl-1.0.0a.orig//doc/crypto/CONF_modules_free.pod 2006-12-21 21:13:27.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/CONF_modules_free.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -37,7 +37,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_modules_load_file(3), CONF_modules_load_file(3)>
++L<CONF_modules_load_file(3)|CONF_modules_load_file(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/CONF_modules_load_file.pod openssl-1.0.0a/doc/crypto/CONF_modules_load_file.pod
+--- openssl-1.0.0a.orig//doc/crypto/CONF_modules_load_file.pod 2004-03-02 13:31:32.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/CONF_modules_load_file.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -51,7 +51,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
+-L<CONF_free(3), CONF_free(3)>, L<err(3),err(3)>
++L<CONF_free(3)|CONF_free(3)>, L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/crypto.pod openssl-1.0.0a/doc/crypto/crypto.pod
+--- openssl-1.0.0a.orig//doc/crypto/crypto.pod 2002-10-06 13:59:25.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/crypto.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -46,7 +46,7 @@
+
+ =item AUXILIARY FUNCTIONS
+
+-L<err(3)|err(3)>, L<threads(3)|threads(3)>, L<rand(3)|rand(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<openssl_threads(3)|openssl_threads(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<OPENSSL_VERSION_NUMBER(3)|OPENSSL_VERSION_NUMBER(3)>
+
+ =item INPUT/OUTPUT, DATA ENCODING
+diff -Naur openssl-1.0.0a.orig//doc/crypto/des.pod openssl-1.0.0a/doc/crypto/des.pod
+--- openssl-1.0.0a.orig//doc/crypto/des.pod 2003-10-01 16:02:45.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/des.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -115,7 +115,7 @@
+ the key; it is used to speed the encryption process.
+
+ DES_random_key() generates a random key. The PRNG must be seeded
+-prior to using this function (see L<rand(3)|rand(3)>). If the PRNG
++prior to using this function (see L<openssl_rand(3)|openssl_rand(3)>). If the PRNG
+ could not generate a secure key, 0 is returned.
+
+ Before a DES key can be used, it must be converted into the
+@@ -317,7 +317,7 @@
+
+ =head1 SEE ALSO
+
+-crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<rand(3)|rand(3)>
++crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DH_generate_key.pod openssl-1.0.0a/doc/crypto/DH_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/DH_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DH_generate_key.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -40,7 +40,7 @@
+
+ =head1 SEE ALSO
+
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<DH_size(3)|DH_size(3)>
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<DH_size(3)|DH_size(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DH_generate_parameters.pod openssl-1.0.0a/doc/crypto/DH_generate_parameters.pod
+--- openssl-1.0.0a.orig//doc/crypto/DH_generate_parameters.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DH_generate_parameters.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DH_free(3)|DH_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/dh.pod openssl-1.0.0a/doc/crypto/dh.pod
+--- openssl-1.0.0a.orig//doc/crypto/dh.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/dh.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -67,8 +67,8 @@
+
+ =head1 SEE ALSO
+
+-L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<err(3)|err(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
++L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<openssl_err(3)|openssl_err(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
+ L<DH_set_method(3)|DH_set_method(3)>, L<DH_new(3)|DH_new(3)>,
+ L<DH_get_ex_new_index(3)|DH_get_ex_new_index(3)>,
+ L<DH_generate_parameters(3)|DH_generate_parameters(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_do_sign.pod openssl-1.0.0a/doc/crypto/DSA_do_sign.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_do_sign.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_do_sign.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -36,7 +36,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_SIG_new(3)|DSA_SIG_new(3)>,
+ L<DSA_sign(3)|DSA_sign(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_generate_key.pod openssl-1.0.0a/doc/crypto/DSA_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_generate_key.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -24,7 +24,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_generate_parameters(3)|DSA_generate_parameters(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_generate_parameters.pod openssl-1.0.0a/doc/crypto/DSA_generate_parameters.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_generate_parameters.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_generate_parameters.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -90,7 +90,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_free(3)|DSA_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/dsa.pod openssl-1.0.0a/doc/crypto/dsa.pod
+--- openssl-1.0.0a.orig//doc/crypto/dsa.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/dsa.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -100,7 +100,7 @@
+
+ =head1 SEE ALSO
+
+-L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>,
++L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<rsa(3)|rsa(3)>, L<sha(3)|sha(3)>, L<engine(3)|engine(3)>,
+ L<DSA_new(3)|DSA_new(3)>,
+ L<DSA_size(3)|DSA_size(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/DSA_sign.pod openssl-1.0.0a/doc/crypto/DSA_sign.pod
+--- openssl-1.0.0a.orig//doc/crypto/DSA_sign.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/DSA_sign.pod 2010-09-01 19:36:31.608126088 +0100
+@@ -55,7 +55,7 @@
+
+ =head1 SEE ALSO
+
+-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
++L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<DSA_do_sign(3)|DSA_do_sign(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/engine.pod openssl-1.0.0a/doc/crypto/engine.pod
+--- openssl-1.0.0a.orig//doc/crypto/engine.pod 2007-11-19 09:18:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/engine.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -594,6 +594,6 @@
+
+ =head1 SEE ALSO
+
+-L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_clear_error.pod openssl-1.0.0a/doc/crypto/ERR_clear_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_clear_error.pod 2000-02-01 01:36:58.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_clear_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -20,7 +20,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_error_string.pod openssl-1.0.0a/doc/crypto/ERR_error_string.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_error_string.pod 2004-11-14 15:11:37.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_error_string.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -60,7 +60,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+ L<ERR_print_errors(3)|ERR_print_errors(3)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_get_error.pod openssl-1.0.0a/doc/crypto/ERR_get_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_get_error.pod 2002-11-29 14:21:54.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_get_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -61,7 +61,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_GET_LIB.pod openssl-1.0.0a/doc/crypto/ERR_GET_LIB.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_GET_LIB.pod 2000-02-01 01:36:58.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_GET_LIB.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -41,7 +41,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_load_crypto_strings.pod openssl-1.0.0a/doc/crypto/ERR_load_crypto_strings.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_load_crypto_strings.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_load_crypto_strings.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -35,7 +35,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_load_strings.pod openssl-1.0.0a/doc/crypto/ERR_load_strings.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_load_strings.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_load_strings.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -43,7 +43,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/err.pod openssl-1.0.0a/doc/crypto/err.pod
+--- openssl-1.0.0a.orig//doc/crypto/err.pod 2002-07-10 20:35:46.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/err.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,187 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-err - error codes
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/err.h>
+-
+- unsigned long ERR_get_error(void);
+- unsigned long ERR_peek_error(void);
+- unsigned long ERR_get_error_line(const char **file, int *line);
+- unsigned long ERR_peek_error_line(const char **file, int *line);
+- unsigned long ERR_get_error_line_data(const char **file, int *line,
+- const char **data, int *flags);
+- unsigned long ERR_peek_error_line_data(const char **file, int *line,
+- const char **data, int *flags);
+-
+- int ERR_GET_LIB(unsigned long e);
+- int ERR_GET_FUNC(unsigned long e);
+- int ERR_GET_REASON(unsigned long e);
+-
+- void ERR_clear_error(void);
+-
+- char *ERR_error_string(unsigned long e, char *buf);
+- const char *ERR_lib_error_string(unsigned long e);
+- const char *ERR_func_error_string(unsigned long e);
+- const char *ERR_reason_error_string(unsigned long e);
+-
+- void ERR_print_errors(BIO *bp);
+- void ERR_print_errors_fp(FILE *fp);
+-
+- void ERR_load_crypto_strings(void);
+- void ERR_free_strings(void);
+-
+- void ERR_remove_state(unsigned long pid);
+-
+- void ERR_put_error(int lib, int func, int reason, const char *file,
+- int line);
+- void ERR_add_error_data(int num, ...);
+-
+- void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
+- unsigned long ERR_PACK(int lib, int func, int reason);
+- int ERR_get_next_error_library(void);
+-
+-=head1 DESCRIPTION
+-
+-When a call to the OpenSSL library fails, this is usually signalled
+-by the return value, and an error code is stored in an error queue
+-associated with the current thread. The B<err> library provides
+-functions to obtain these error codes and textual error messages.
+-
+-The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
+-access error codes.
+-
+-Error codes contain information about where the error occurred, and
+-what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
+-extract this information. A method to obtain human-readable error
+-messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
+-
+-L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
+-error queue.
+-
+-Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
+-avoid memory leaks when threads are terminated.
+-
+-=head1 ADDING NEW ERROR CODES TO OPENSSL
+-
+-See L<ERR_put_error(3)> if you want to record error codes in the
+-OpenSSL error system from within your application.
+-
+-The remainder of this section is of interest only if you want to add
+-new error codes to OpenSSL or add error codes from external libraries.
+-
+-=head2 Reporting errors
+-
+-Each sub-library has a specific macro XXXerr() that is used to report
+-errors. Its first argument is a function code B<XXX_F_...>, the second
+-argument is a reason code B<XXX_R_...>. Function codes are derived
+-from the function names; reason codes consist of textual error
+-descriptions. For example, the function ssl23_read() reports a
+-"handshake failure" as follows:
+-
+- SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
+-
+-Function and reason codes should consist of upper case characters,
+-numbers and underscores only. The error file generation script translates
+-function codes into function names by looking in the header files
+-for an appropriate function name, if none is found it just uses
+-the capitalized form such as "SSL23_READ" in the above example.
+-
+-The trailing section of a reason code (after the "_R_") is translated
+-into lower case and underscores changed to spaces.
+-
+-When you are using new function or reason codes, run B<make errors>.
+-The necessary B<#define>s will then automatically be added to the
+-sub-library's header file.
+-
+-Although a library will normally report errors using its own specific
+-XXXerr macro, another library's macro can be used. This is normally
+-only done when a library wants to include ASN1 code which must use
+-the ASN1err() macro.
+-
+-=head2 Adding new libraries
+-
+-When adding a new sub-library to OpenSSL, assign it a library number
+-B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
+-name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
+-C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
+-(in B<crypto/err/err_all.c>). Finally, add an entry
+-
+- L XXX xxx.h xxx_err.c
+-
+-to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
+-Running B<make errors> will then generate a file B<xxx_err.c>, and
+-add all error codes used in the library to B<xxx.h>.
+-
+-Additionally the library include file must have a certain form.
+-Typically it will initially look like this:
+-
+- #ifndef HEADER_XXX_H
+- #define HEADER_XXX_H
+-
+- #ifdef __cplusplus
+- extern "C" {
+- #endif
+-
+- /* Include files */
+-
+- #include <openssl/bio.h>
+- #include <openssl/x509.h>
+-
+- /* Macros, structures and function prototypes */
+-
+-
+- /* BEGIN ERROR CODES */
+-
+-The B<BEGIN ERROR CODES> sequence is used by the error code
+-generation script as the point to place new error codes, any text
+-after this point will be overwritten when B<make errors> is run.
+-The closing #endif etc will be automatically added by the script.
+-
+-The generated C error code file B<xxx_err.c> will load the header
+-files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
+-header file must load any additional header files containing any
+-definitions it uses.
+-
+-=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
+-
+-It is also possible to use OpenSSL's error code scheme in external
+-libraries. The library needs to load its own codes and call the OpenSSL
+-error code insertion script B<mkerr.pl> explicitly to add codes to
+-the header file and generate the C error code file. This will normally
+-be done if the external library needs to generate new ASN1 structures
+-but it can also be used to add more general purpose error code handling.
+-
+-TBA more details
+-
+-=head1 INTERNALS
+-
+-The error queues are stored in a hash table with one B<ERR_STATE>
+-entry for each pid. ERR_get_state() returns the current thread's
+-B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
+-codes. When more error codes are added, the old ones are overwritten,
+-on the assumption that the most recent errors are most important.
+-
+-Error strings are also stored in hash table. The hash tables can
+-be obtained by calling ERR_get_err_state_table(void) and
+-ERR_get_string_table(void) respectively.
+-
+-=head1 SEE ALSO
+-
+-L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
+-L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
+-L<ERR_get_error(3)|ERR_get_error(3)>,
+-L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
+-L<ERR_clear_error(3)|ERR_clear_error(3)>,
+-L<ERR_error_string(3)|ERR_error_string(3)>,
+-L<ERR_print_errors(3)|ERR_print_errors(3)>,
+-L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+-L<ERR_remove_state(3)|ERR_remove_state(3)>,
+-L<ERR_put_error(3)|ERR_put_error(3)>,
+-L<ERR_load_strings(3)|ERR_load_strings(3)>,
+-L<SSL_get_error(3)|SSL_get_error(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_print_errors.pod openssl-1.0.0a/doc/crypto/ERR_print_errors.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_print_errors.pod 2000-02-01 01:36:59.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_print_errors.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -38,7 +38,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
++L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
+ L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
+ L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_put_error.pod openssl-1.0.0a/doc/crypto/ERR_put_error.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_put_error.pod 2000-02-24 11:55:08.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/ERR_put_error.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -34,7 +34,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
++L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/ERR_remove_state.pod openssl-1.0.0a/doc/crypto/ERR_remove_state.pod
+--- openssl-1.0.0a.orig//doc/crypto/ERR_remove_state.pod 2000-05-19 08:54:42.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/ERR_remove_state.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -25,7 +25,7 @@
+
+ =head1 SEE ALSO
+
+-L<err(3)|err(3)>
++L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_BytesToKey.pod openssl-1.0.0a/doc/crypto/EVP_BytesToKey.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_BytesToKey.pod 2004-11-25 17:47:30.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/EVP_BytesToKey.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_OpenInit.pod openssl-1.0.0a/doc/crypto/EVP_OpenInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_OpenInit.pod 2000-09-23 08:16:14.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_OpenInit.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -54,7 +54,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_SealInit(3)|EVP_SealInit(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_SealInit.pod openssl-1.0.0a/doc/crypto/EVP_SealInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_SealInit.pod 2005-03-29 18:50:08.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_SealInit.pod 2010-09-01 19:36:31.612125737 +0100
+@@ -74,7 +74,7 @@
+
+ =head1 SEE ALSO
+
+-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
++L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
+ L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
+ L<EVP_OpenInit(3)|EVP_OpenInit(3)>
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_SignInit.pod openssl-1.0.0a/doc/crypto/EVP_SignInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_SignInit.pod 2006-07-12 13:31:29.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_SignInit.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -89,7 +89,7 @@
+ =head1 SEE ALSO
+
+ L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/EVP_VerifyInit.pod openssl-1.0.0a/doc/crypto/EVP_VerifyInit.pod
+--- openssl-1.0.0a.orig//doc/crypto/EVP_VerifyInit.pod 2006-07-12 13:31:30.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/EVP_VerifyInit.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -80,7 +80,7 @@
+
+ L<evp(3)|evp(3)>,
+ L<EVP_SignInit(3)|EVP_SignInit(3)>,
+-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
++L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
+ L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
+ L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
+ L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
+diff -Naur openssl-1.0.0a.orig//doc/crypto/OPENSSL_config.pod openssl-1.0.0a/doc/crypto/OPENSSL_config.pod
+--- openssl-1.0.0a.orig//doc/crypto/OPENSSL_config.pod 2005-06-03 00:19:56.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/OPENSSL_config.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -73,7 +73,7 @@
+ =head1 SEE ALSO
+
+ L<conf(5)|conf(5)>, L<CONF_load_modules_file(3)|CONF_load_modules_file(3)>,
+-L<CONF_modules_free(3),CONF_modules_free(3)>
++L<CONF_modules_free(3)|CONF_modules_free(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_err.pod openssl-1.0.0a/doc/crypto/openssl_err.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_err.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_err.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,187 @@
++=pod
++
++=head1 NAME
++
++openssl_err - error codes
++
++=head1 SYNOPSIS
++
++ #include <openssl/err.h>
++
++ unsigned long ERR_get_error(void);
++ unsigned long ERR_peek_error(void);
++ unsigned long ERR_get_error_line(const char **file, int *line);
++ unsigned long ERR_peek_error_line(const char **file, int *line);
++ unsigned long ERR_get_error_line_data(const char **file, int *line,
++ const char **data, int *flags);
++ unsigned long ERR_peek_error_line_data(const char **file, int *line,
++ const char **data, int *flags);
++
++ int ERR_GET_LIB(unsigned long e);
++ int ERR_GET_FUNC(unsigned long e);
++ int ERR_GET_REASON(unsigned long e);
++
++ void ERR_clear_error(void);
++
++ char *ERR_error_string(unsigned long e, char *buf);
++ const char *ERR_lib_error_string(unsigned long e);
++ const char *ERR_func_error_string(unsigned long e);
++ const char *ERR_reason_error_string(unsigned long e);
++
++ void ERR_print_errors(BIO *bp);
++ void ERR_print_errors_fp(FILE *fp);
++
++ void ERR_load_crypto_strings(void);
++ void ERR_free_strings(void);
++
++ void ERR_remove_state(unsigned long pid);
++
++ void ERR_put_error(int lib, int func, int reason, const char *file,
++ int line);
++ void ERR_add_error_data(int num, ...);
++
++ void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
++ unsigned long ERR_PACK(int lib, int func, int reason);
++ int ERR_get_next_error_library(void);
++
++=head1 DESCRIPTION
++
++When a call to the OpenSSL library fails, this is usually signalled
++by the return value, and an error code is stored in an error queue
++associated with the current thread. The B<err> library provides
++functions to obtain these error codes and textual error messages.
++
++The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
++access error codes.
++
++Error codes contain information about where the error occurred, and
++what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
++extract this information. A method to obtain human-readable error
++messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
++
++L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
++error queue.
++
++Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
++avoid memory leaks when threads are terminated.
++
++=head1 ADDING NEW ERROR CODES TO OPENSSL
++
++See L<ERR_put_error(3)> if you want to record error codes in the
++OpenSSL error system from within your application.
++
++The remainder of this section is of interest only if you want to add
++new error codes to OpenSSL or add error codes from external libraries.
++
++=head2 Reporting errors
++
++Each sub-library has a specific macro XXXerr() that is used to report
++errors. Its first argument is a function code B<XXX_F_...>, the second
++argument is a reason code B<XXX_R_...>. Function codes are derived
++from the function names; reason codes consist of textual error
++descriptions. For example, the function ssl23_read() reports a
++"handshake failure" as follows:
++
++ SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
++
++Function and reason codes should consist of upper case characters,
++numbers and underscores only. The error file generation script translates
++function codes into function names by looking in the header files
++for an appropriate function name, if none is found it just uses
++the capitalized form such as "SSL23_READ" in the above example.
++
++The trailing section of a reason code (after the "_R_") is translated
++into lower case and underscores changed to spaces.
++
++When you are using new function or reason codes, run B<make errors>.
++The necessary B<#define>s will then automatically be added to the
++sub-library's header file.
++
++Although a library will normally report errors using its own specific
++XXXerr macro, another library's macro can be used. This is normally
++only done when a library wants to include ASN1 code which must use
++the ASN1err() macro.
++
++=head2 Adding new libraries
++
++When adding a new sub-library to OpenSSL, assign it a library number
++B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
++name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
++C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
++(in B<crypto/err/err_all.c>). Finally, add an entry
++
++ L XXX xxx.h xxx_err.c
++
++to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
++Running B<make errors> will then generate a file B<xxx_err.c>, and
++add all error codes used in the library to B<xxx.h>.
++
++Additionally the library include file must have a certain form.
++Typically it will initially look like this:
++
++ #ifndef HEADER_XXX_H
++ #define HEADER_XXX_H
++
++ #ifdef __cplusplus
++ extern "C" {
++ #endif
++
++ /* Include files */
++
++ #include <openssl/bio.h>
++ #include <openssl/x509.h>
++
++ /* Macros, structures and function prototypes */
++
++
++ /* BEGIN ERROR CODES */
++
++The B<BEGIN ERROR CODES> sequence is used by the error code
++generation script as the point to place new error codes, any text
++after this point will be overwritten when B<make errors> is run.
++The closing #endif etc will be automatically added by the script.
++
++The generated C error code file B<xxx_err.c> will load the header
++files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
++header file must load any additional header files containing any
++definitions it uses.
++
++=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
++
++It is also possible to use OpenSSL's error code scheme in external
++libraries. The library needs to load its own codes and call the OpenSSL
++error code insertion script B<mkerr.pl> explicitly to add codes to
++the header file and generate the C error code file. This will normally
++be done if the external library needs to generate new ASN1 structures
++but it can also be used to add more general purpose error code handling.
++
++TBA more details
++
++=head1 INTERNALS
++
++The error queues are stored in a hash table with one B<ERR_STATE>
++entry for each pid. ERR_get_state() returns the current thread's
++B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
++codes. When more error codes are added, the old ones are overwritten,
++on the assumption that the most recent errors are most important.
++
++Error strings are also stored in hash table. The hash tables can
++be obtained by calling ERR_get_err_state_table(void) and
++ERR_get_string_table(void) respectively.
++
++=head1 SEE ALSO
++
++L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
++L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>,
++L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
++L<ERR_clear_error(3)|ERR_clear_error(3)>,
++L<ERR_error_string(3)|ERR_error_string(3)>,
++L<ERR_print_errors(3)|ERR_print_errors(3)>,
++L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
++L<ERR_remove_state(3)|ERR_remove_state(3)>,
++L<ERR_put_error(3)|ERR_put_error(3)>,
++L<ERR_load_strings(3)|ERR_load_strings(3)>,
++L<SSL_get_error(3)|SSL_get_error(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_rand.pod openssl-1.0.0a/doc/crypto/openssl_rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_rand.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_rand.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,175 @@
++=pod
++
++=head1 NAME
++
++openssl_rand - pseudo-random number generator
++
++=head1 SYNOPSIS
++
++ #include <openssl/rand.h>
++
++ int RAND_set_rand_engine(ENGINE *engine);
++
++ int RAND_bytes(unsigned char *buf, int num);
++ int RAND_pseudo_bytes(unsigned char *buf, int num);
++
++ void RAND_seed(const void *buf, int num);
++ void RAND_add(const void *buf, int num, int entropy);
++ int RAND_status(void);
++
++ int RAND_load_file(const char *file, long max_bytes);
++ int RAND_write_file(const char *file);
++ const char *RAND_file_name(char *file, size_t num);
++
++ int RAND_egd(const char *path);
++
++ void RAND_set_rand_method(const RAND_METHOD *meth);
++ const RAND_METHOD *RAND_get_rand_method(void);
++ RAND_METHOD *RAND_SSLeay(void);
++
++ void RAND_cleanup(void);
++
++ /* For Win32 only */
++ void RAND_screen(void);
++ int RAND_event(UINT, WPARAM, LPARAM);
++
++=head1 DESCRIPTION
++
++Since the introduction of the ENGINE API, the recommended way of controlling
++default implementations is by using the ENGINE API functions. The default
++B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
++RAND_get_rand_method(), is only used if no ENGINE has been set as the default
++"rand" implementation. Hence, these two functions are no longer the recommened
++way to control defaults.
++
++If an alternative B<RAND_METHOD> implementation is being used (either set
++directly or as provided by an ENGINE module), then it is entirely responsible
++for the generation and management of a cryptographically secure PRNG stream. The
++mechanisms described below relate solely to the software PRNG implementation
++built in to OpenSSL and used by default.
++
++These functions implement a cryptographically secure pseudo-random
++number generator (PRNG). It is used by other library functions for
++example to generate random keys, and applications can use it when they
++need randomness.
++
++A cryptographic PRNG must be seeded with unpredictable data such as
++mouse movements or keys pressed at random by the user. This is
++described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
++(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
++seeding process whenever the application is started.
++
++L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
++PRNG.
++
++=head1 INTERNALS
++
++The RAND_SSLeay() method implements a PRNG based on a cryptographic
++hash function.
++
++The following description of its design is based on the SSLeay
++documentation:
++
++First up I will state the things I believe I need for a good RNG.
++
++=over 4
++
++=item 1
++
++A good hashing algorithm to mix things up and to convert the RNG 'state'
++to random numbers.
++
++=item 2
++
++An initial source of random 'state'.
++
++=item 3
++
++The state should be very large. If the RNG is being used to generate
++4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
++If your RNG state only has 128 bits, you are obviously limiting the
++search space to 128 bits, not 2048. I'm probably getting a little
++carried away on this last point but it does indicate that it may not be
++a bad idea to keep quite a lot of RNG state. It should be easier to
++break a cipher than guess the RNG seed data.
++
++=item 4
++
++Any RNG seed data should influence all subsequent random numbers
++generated. This implies that any random seed data entered will have
++an influence on all subsequent random numbers generated.
++
++=item 5
++
++When using data to seed the RNG state, the data used should not be
++extractable from the RNG state. I believe this should be a
++requirement because one possible source of 'secret' semi random
++data would be a private key or a password. This data must
++not be disclosed by either subsequent random numbers or a
++'core' dump left by a program crash.
++
++=item 6
++
++Given the same initial 'state', 2 systems should deviate in their RNG state
++(and hence the random numbers generated) over time if at all possible.
++
++=item 7
++
++Given the random number output stream, it should not be possible to determine
++the RNG state or the next random number.
++
++=back
++
++The algorithm is as follows.
++
++There is global state made up of a 1023 byte buffer (the 'state'), a
++working hash value ('md'), and a counter ('count').
++
++Whenever seed data is added, it is inserted into the 'state' as
++follows.
++
++The input is chopped up into units of 20 bytes (or less for
++the last block). Each of these blocks is run through the hash
++function as follows: The data passed to the hash function
++is the current 'md', the same number of bytes from the 'state'
++(the location determined by in incremented looping index) as
++the current 'block', the new key data 'block', and 'count'
++(which is incremented after each use).
++The result of this is kept in 'md' and also xored into the
++'state' at the same locations that were used as input into the
++hash function. I
++believe this system addresses points 1 (hash function; currently
++SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
++function and xor).
++
++When bytes are extracted from the RNG, the following process is used.
++For each group of 10 bytes (or less), we do the following:
++
++Input into the hash function the local 'md' (which is initialized from
++the global 'md' before any bytes are generated), the bytes that are to
++be overwritten by the random bytes, and bytes from the 'state'
++(incrementing looping index). From this digest output (which is kept
++in 'md'), the top (up to) 10 bytes are returned to the caller and the
++bottom 10 bytes are xored into the 'state'.
++
++Finally, after we have finished 'num' random bytes for the caller,
++'count' (which is incremented) and the local and global 'md' are fed
++into the hash function and the results are kept in the global 'md'.
++
++I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
++into the 'state' the 'old' data from the caller that is about to be
++overwritten) and 7 (by not using the 10 bytes given to the caller to
++update the 'state', but they are used to update 'md').
++
++So of the points raised, only 2 is not addressed (but see
++L<RAND_add(3)|RAND_add(3)>).
++
++=head1 SEE ALSO
++
++L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<RAND_bytes(3)|RAND_bytes(3)>,
++L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
++L<RAND_cleanup(3)|RAND_cleanup(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/openssl_threads.pod openssl-1.0.0a/doc/crypto/openssl_threads.pod
+--- openssl-1.0.0a.orig//doc/crypto/openssl_threads.pod 1970-01-01 01:00:00.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/openssl_threads.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -0,0 +1,175 @@
++=pod
++
++=head1 NAME
++
++CRYPTO_set_locking_callback, CRYPTO_set_id_callback, CRYPTO_num_locks,
++CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
++CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
++CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
++
++=head1 SYNOPSIS
++
++ #include <openssl/crypto.h>
++
++ void CRYPTO_set_locking_callback(void (*locking_function)(int mode,
++ int n, const char *file, int line));
++
++ void CRYPTO_set_id_callback(unsigned long (*id_function)(void));
++
++ int CRYPTO_num_locks(void);
++
++
++ /* struct CRYPTO_dynlock_value needs to be defined by the user */
++ struct CRYPTO_dynlock_value;
++
++ void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
++ (*dyn_create_function)(char *file, int line));
++ void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
++ (int mode, struct CRYPTO_dynlock_value *l,
++ const char *file, int line));
++ void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
++ (struct CRYPTO_dynlock_value *l, const char *file, int line));
++
++ int CRYPTO_get_new_dynlockid(void);
++
++ void CRYPTO_destroy_dynlockid(int i);
++
++ void CRYPTO_lock(int mode, int n, const char *file, int line);
++
++ #define CRYPTO_w_lock(type) \
++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_w_unlock(type) \
++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
++ #define CRYPTO_r_lock(type) \
++ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_r_unlock(type) \
++ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
++ #define CRYPTO_add(addr,amount,type) \
++ CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
++
++=head1 DESCRIPTION
++
++OpenSSL can safely be used in multi-threaded applications provided
++that at least two callback functions are set.
++
++locking_function(int mode, int n, const char *file, int line) is
++needed to perform locking on shared data structures.
++(Note that OpenSSL uses a number of global data structures that
++will be implicitly shared whenever multiple threads use OpenSSL.)
++Multi-threaded applications will crash at random if it is not set.
++
++locking_function() must be able to handle up to CRYPTO_num_locks()
++different mutex locks. It sets the B<n>-th lock if B<mode> &
++B<CRYPTO_LOCK>, and releases it otherwise.
++
++B<file> and B<line> are the file number of the function setting the
++lock. They can be useful for debugging.
++
++id_function(void) is a function that returns a thread ID, for example
++pthread_self() if it returns an integer (see NOTES below). It isn't
++needed on Windows nor on platforms where getpid() returns a different
++ID for each thread (see NOTES below).
++
++Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
++of OpenSSL need it for better performance. To enable this, the following
++is required:
++
++=over 4
++
++=item *
++Three additional callback function, dyn_create_function, dyn_lock_function
++and dyn_destroy_function.
++
++=item *
++A structure defined with the data that each lock needs to handle.
++
++=back
++
++struct CRYPTO_dynlock_value has to be defined to contain whatever structure
++is needed to handle locks.
++
++dyn_create_function(const char *file, int line) is needed to create a
++lock. Multi-threaded applications might crash at random if it is not set.
++
++dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
++is needed to perform locking off dynamic lock numbered n. Multi-threaded
++applications might crash at random if it is not set.
++
++dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
++needed to destroy the lock l. Multi-threaded applications might crash at
++random if it is not set.
++
++CRYPTO_get_new_dynlockid() is used to create locks. It will call
++dyn_create_function for the actual creation.
++
++CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
++dyn_destroy_function for the actual destruction.
++
++CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
++describing what should be done with the lock. n is the number of the
++lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
++from the following values. These values are pairwise exclusive, with
++undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
++should not be used together):
++
++ CRYPTO_LOCK 0x01
++ CRYPTO_UNLOCK 0x02
++ CRYPTO_READ 0x04
++ CRYPTO_WRITE 0x08
++
++=head1 RETURN VALUES
++
++CRYPTO_num_locks() returns the required number of locks.
++
++CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
++
++The other functions return no values.
++
++=head1 NOTES
++
++You can find out if OpenSSL was configured with thread support:
++
++ #define OPENSSL_THREAD_DEFINES
++ #include <openssl/opensslconf.h>
++ #if defined(OPENSSL_THREADS)
++ // thread support enabled
++ #else
++ // no thread support
++ #endif
++
++Also, dynamic locks are currently not used internally by OpenSSL, but
++may do so in the future.
++
++Defining id_function(void) has it's own issues. Generally speaking,
++pthread_self() should be used, even on platforms where getpid() gives
++different answers in each thread, since that may depend on the machine
++the program is run on, not the machine where the program is being
++compiled. For instance, Red Hat 8 Linux and earlier used
++LinuxThreads, whose getpid() returns a different value for each
++thread. Red Hat 9 Linux and later use NPTL, which is
++Posix-conformant, and has a getpid() that returns the same value for
++all threads in a process. A program compiled on Red Hat 8 and run on
++Red Hat 9 will therefore see getpid() returning the same value for
++all threads.
++
++There is still the issue of platforms where pthread_self() returns
++something other than an integer. This is a bit unusual, and this
++manual has no cookbook solution for that case.
++
++=head1 EXAMPLES
++
++B<crypto/threads/mttest.c> shows examples of the callback functions on
++Solaris, Irix and Win32.
++
++=head1 HISTORY
++
++CRYPTO_set_locking_callback() and CRYPTO_set_id_callback() are
++available in all versions of SSLeay and OpenSSL.
++CRYPTO_num_locks() was added in OpenSSL 0.9.4.
++All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
++
++=head1 SEE ALSO
++
++L<crypto(3)|crypto(3)>
++
++=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_add.pod openssl-1.0.0a/doc/crypto/RAND_add.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_add.pod 2000-03-22 15:30:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_add.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -65,7 +65,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+ L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_bytes.pod openssl-1.0.0a/doc/crypto/RAND_bytes.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_bytes.pod 2007-09-24 12:01:18.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RAND_bytes.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -38,7 +38,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
+ L<RAND_add(3)|RAND_add(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_cleanup.pod openssl-1.0.0a/doc/crypto/RAND_cleanup.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_cleanup.pod 2000-01-27 01:25:06.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_cleanup.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -20,7 +20,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>
++L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_egd.pod openssl-1.0.0a/doc/crypto/RAND_egd.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_egd.pod 2008-11-10 11:26:44.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_egd.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -72,7 +72,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+ L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_load_file.pod openssl-1.0.0a/doc/crypto/RAND_load_file.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_load_file.pod 2001-03-21 15:25:56.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_load_file.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -43,7 +43,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/rand.pod openssl-1.0.0a/doc/crypto/rand.pod
+--- openssl-1.0.0a.orig//doc/crypto/rand.pod 2002-08-05 17:27:01.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/rand.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,175 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-rand - pseudo-random number generator
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/rand.h>
+-
+- int RAND_set_rand_engine(ENGINE *engine);
+-
+- int RAND_bytes(unsigned char *buf, int num);
+- int RAND_pseudo_bytes(unsigned char *buf, int num);
+-
+- void RAND_seed(const void *buf, int num);
+- void RAND_add(const void *buf, int num, int entropy);
+- int RAND_status(void);
+-
+- int RAND_load_file(const char *file, long max_bytes);
+- int RAND_write_file(const char *file);
+- const char *RAND_file_name(char *file, size_t num);
+-
+- int RAND_egd(const char *path);
+-
+- void RAND_set_rand_method(const RAND_METHOD *meth);
+- const RAND_METHOD *RAND_get_rand_method(void);
+- RAND_METHOD *RAND_SSLeay(void);
+-
+- void RAND_cleanup(void);
+-
+- /* For Win32 only */
+- void RAND_screen(void);
+- int RAND_event(UINT, WPARAM, LPARAM);
+-
+-=head1 DESCRIPTION
+-
+-Since the introduction of the ENGINE API, the recommended way of controlling
+-default implementations is by using the ENGINE API functions. The default
+-B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
+-RAND_get_rand_method(), is only used if no ENGINE has been set as the default
+-"rand" implementation. Hence, these two functions are no longer the recommened
+-way to control defaults.
+-
+-If an alternative B<RAND_METHOD> implementation is being used (either set
+-directly or as provided by an ENGINE module), then it is entirely responsible
+-for the generation and management of a cryptographically secure PRNG stream. The
+-mechanisms described below relate solely to the software PRNG implementation
+-built in to OpenSSL and used by default.
+-
+-These functions implement a cryptographically secure pseudo-random
+-number generator (PRNG). It is used by other library functions for
+-example to generate random keys, and applications can use it when they
+-need randomness.
+-
+-A cryptographic PRNG must be seeded with unpredictable data such as
+-mouse movements or keys pressed at random by the user. This is
+-described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
+-(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
+-seeding process whenever the application is started.
+-
+-L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
+-PRNG.
+-
+-=head1 INTERNALS
+-
+-The RAND_SSLeay() method implements a PRNG based on a cryptographic
+-hash function.
+-
+-The following description of its design is based on the SSLeay
+-documentation:
+-
+-First up I will state the things I believe I need for a good RNG.
+-
+-=over 4
+-
+-=item 1
+-
+-A good hashing algorithm to mix things up and to convert the RNG 'state'
+-to random numbers.
+-
+-=item 2
+-
+-An initial source of random 'state'.
+-
+-=item 3
+-
+-The state should be very large. If the RNG is being used to generate
+-4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
+-If your RNG state only has 128 bits, you are obviously limiting the
+-search space to 128 bits, not 2048. I'm probably getting a little
+-carried away on this last point but it does indicate that it may not be
+-a bad idea to keep quite a lot of RNG state. It should be easier to
+-break a cipher than guess the RNG seed data.
+-
+-=item 4
+-
+-Any RNG seed data should influence all subsequent random numbers
+-generated. This implies that any random seed data entered will have
+-an influence on all subsequent random numbers generated.
+-
+-=item 5
+-
+-When using data to seed the RNG state, the data used should not be
+-extractable from the RNG state. I believe this should be a
+-requirement because one possible source of 'secret' semi random
+-data would be a private key or a password. This data must
+-not be disclosed by either subsequent random numbers or a
+-'core' dump left by a program crash.
+-
+-=item 6
+-
+-Given the same initial 'state', 2 systems should deviate in their RNG state
+-(and hence the random numbers generated) over time if at all possible.
+-
+-=item 7
+-
+-Given the random number output stream, it should not be possible to determine
+-the RNG state or the next random number.
+-
+-=back
+-
+-The algorithm is as follows.
+-
+-There is global state made up of a 1023 byte buffer (the 'state'), a
+-working hash value ('md'), and a counter ('count').
+-
+-Whenever seed data is added, it is inserted into the 'state' as
+-follows.
+-
+-The input is chopped up into units of 20 bytes (or less for
+-the last block). Each of these blocks is run through the hash
+-function as follows: The data passed to the hash function
+-is the current 'md', the same number of bytes from the 'state'
+-(the location determined by in incremented looping index) as
+-the current 'block', the new key data 'block', and 'count'
+-(which is incremented after each use).
+-The result of this is kept in 'md' and also xored into the
+-'state' at the same locations that were used as input into the
+-hash function. I
+-believe this system addresses points 1 (hash function; currently
+-SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
+-function and xor).
+-
+-When bytes are extracted from the RNG, the following process is used.
+-For each group of 10 bytes (or less), we do the following:
+-
+-Input into the hash function the local 'md' (which is initialized from
+-the global 'md' before any bytes are generated), the bytes that are to
+-be overwritten by the random bytes, and bytes from the 'state'
+-(incrementing looping index). From this digest output (which is kept
+-in 'md'), the top (up to) 10 bytes are returned to the caller and the
+-bottom 10 bytes are xored into the 'state'.
+-
+-Finally, after we have finished 'num' random bytes for the caller,
+-'count' (which is incremented) and the local and global 'md' are fed
+-into the hash function and the results are kept in the global 'md'.
+-
+-I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
+-into the 'state' the 'old' data from the caller that is about to be
+-overwritten) and 7 (by not using the 10 bytes given to the caller to
+-update the 'state', but they are used to update 'md').
+-
+-So of the points raised, only 2 is not addressed (but see
+-L<RAND_add(3)|RAND_add(3)>).
+-
+-=head1 SEE ALSO
+-
+-L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
+-L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
+-L<RAND_bytes(3)|RAND_bytes(3)>,
+-L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
+-L<RAND_cleanup(3)|RAND_cleanup(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RAND_set_rand_method.pod openssl-1.0.0a/doc/crypto/RAND_set_rand_method.pod
+--- openssl-1.0.0a.orig//doc/crypto/RAND_set_rand_method.pod 2007-11-19 09:18:03.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RAND_set_rand_method.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -67,7 +67,7 @@
+
+ =head1 SEE ALSO
+
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_blinding_on.pod openssl-1.0.0a/doc/crypto/RSA_blinding_on.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_blinding_on.pod 2000-02-24 11:55:10.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RSA_blinding_on.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -34,7 +34,7 @@
+
+ =head1 SEE ALSO
+
+-L<rsa(3)|rsa(3)>, L<rand(3)|rand(3)>
++L<rsa(3)|rsa(3)>, L<openssl_rand(3)|openssl_rand(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_generate_key.pod openssl-1.0.0a/doc/crypto/RSA_generate_key.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_generate_key.pod 2002-09-25 14:33:27.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RSA_generate_key.pod 2010-09-01 19:36:31.616125383 +0100
+@@ -59,7 +59,7 @@
+
+ =head1 SEE ALSO
+
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_free(3)|RSA_free(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/rsa.pod openssl-1.0.0a/doc/crypto/rsa.pod
+--- openssl-1.0.0a.orig//doc/crypto/rsa.pod 2002-08-04 22:08:36.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/rsa.pod 2010-09-01 19:36:31.624124669 +0100
+@@ -108,7 +108,7 @@
+ =head1 SEE ALSO
+
+ L<rsa(1)|rsa(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>,
+-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
+ L<RSA_public_encrypt(3)|RSA_public_encrypt(3)>,
+ L<RSA_sign(3)|RSA_sign(3)>, L<RSA_size(3)|RSA_size(3)>,
+ L<RSA_generate_key(3)|RSA_generate_key(3)>,
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_public_encrypt.pod openssl-1.0.0a/doc/crypto/RSA_public_encrypt.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_public_encrypt.pod 2004-03-23 21:01:34.000000000 +0000
++++ openssl-1.0.0a/doc/crypto/RSA_public_encrypt.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -73,7 +73,7 @@
+
+ =head1 SEE ALSO
+
+-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
++L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
+ L<RSA_size(3)|RSA_size(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod openssl-1.0.0a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod
+--- openssl-1.0.0a.orig//doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2002-09-25 14:33:28.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -48,7 +48,7 @@
+ =head1 SEE ALSO
+
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<objects(3)|objects(3)>,
+-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
++L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
+ L<RSA_verify(3)|RSA_verify(3)>
+
+ =head1 HISTORY
+diff -Naur openssl-1.0.0a.orig//doc/crypto/threads.pod openssl-1.0.0a/doc/crypto/threads.pod
+--- openssl-1.0.0a.orig//doc/crypto/threads.pod 2009-10-01 00:40:52.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/threads.pod 1970-01-01 01:00:00.000000000 +0100
+@@ -1,210 +0,0 @@
+-=pod
+-
+-=head1 NAME
+-
+-CRYPTO_THREADID_set_callback, CRYPTO_THREADID_get_callback,
+-CRYPTO_THREADID_current, CRYPTO_THREADID_cmp, CRYPTO_THREADID_cpy,
+-CRYPTO_THREADID_hash, CRYPTO_set_locking_callback, CRYPTO_num_locks,
+-CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
+-CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
+-CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
+-
+-=head1 SYNOPSIS
+-
+- #include <openssl/crypto.h>
+-
+- /* Don't use this structure directly. */
+- typedef struct crypto_threadid_st
+- {
+- void *ptr;
+- unsigned long val;
+- } CRYPTO_THREADID;
+- /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */
+- void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val);
+- void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr);
+- int CRYPTO_THREADID_set_callback(void (*threadid_func)(CRYPTO_THREADID *));
+- void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *);
+- void CRYPTO_THREADID_current(CRYPTO_THREADID *id);
+- int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a,
+- const CRYPTO_THREADID *b);
+- void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest,
+- const CRYPTO_THREADID *src);
+- unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id);
+-
+- int CRYPTO_num_locks(void);
+-
+- /* struct CRYPTO_dynlock_value needs to be defined by the user */
+- struct CRYPTO_dynlock_value;
+-
+- void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
+- (*dyn_create_function)(char *file, int line));
+- void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
+- (int mode, struct CRYPTO_dynlock_value *l,
+- const char *file, int line));
+- void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
+- (struct CRYPTO_dynlock_value *l, const char *file, int line));
+-
+- int CRYPTO_get_new_dynlockid(void);
+-
+- void CRYPTO_destroy_dynlockid(int i);
+-
+- void CRYPTO_lock(int mode, int n, const char *file, int line);
+-
+- #define CRYPTO_w_lock(type) \
+- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_w_unlock(type) \
+- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
+- #define CRYPTO_r_lock(type) \
+- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_r_unlock(type) \
+- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
+- #define CRYPTO_add(addr,amount,type) \
+- CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
+-
+-=head1 DESCRIPTION
+-
+-OpenSSL can safely be used in multi-threaded applications provided
+-that at least two callback functions are set, locking_function and
+-threadid_func.
+-
+-locking_function(int mode, int n, const char *file, int line) is
+-needed to perform locking on shared data structures.
+-(Note that OpenSSL uses a number of global data structures that
+-will be implicitly shared whenever multiple threads use OpenSSL.)
+-Multi-threaded applications will crash at random if it is not set.
+-
+-locking_function() must be able to handle up to CRYPTO_num_locks()
+-different mutex locks. It sets the B<n>-th lock if B<mode> &
+-B<CRYPTO_LOCK>, and releases it otherwise.
+-
+-B<file> and B<line> are the file number of the function setting the
+-lock. They can be useful for debugging.
+-
+-threadid_func(CRYPTO_THREADID *id) is needed to record the currently-executing
+-thread's identifier into B<id>. The implementation of this callback should not
+-fill in B<id> directly, but should use CRYPTO_THREADID_set_numeric() if thread
+-IDs are numeric, or CRYPTO_THREADID_set_pointer() if they are pointer-based.
+-If the application does not register such a callback using
+-CRYPTO_THREADID_set_callback(), then a default implementation is used - on
+-Windows and BeOS this uses the system's default thread identifying APIs, and on
+-all other platforms it uses the address of B<errno>. The latter is satisfactory
+-for thread-safety if and only if the platform has a thread-local error number
+-facility.
+-
+-Once threadid_func() is registered, or if the built-in default implementation is
+-to be used;
+-
+-=over 4
+-
+-=item *
+-CRYPTO_THREADID_current() records the currently-executing thread ID into the
+-given B<id> object.
+-
+-=item *
+-CRYPTO_THREADID_cmp() compares two thread IDs (returning zero for equality, ie.
+-the same semantics as memcmp()).
+-
+-=item *
+-CRYPTO_THREADID_cpy() duplicates a thread ID value,
+-
+-=item *
+-CRYPTO_THREADID_hash() returns a numeric value usable as a hash-table key. This
+-is usually the exact numeric or pointer-based thread ID used internally, however
+-this also handles the unusual case where pointers are larger than 'long'
+-variables and the platform's thread IDs are pointer-based - in this case, mixing
+-is done to attempt to produce a unique numeric value even though it is not as
+-wide as the platform's true thread IDs.
+-
+-=back
+-
+-Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
+-of OpenSSL need it for better performance. To enable this, the following
+-is required:
+-
+-=over 4
+-
+-=item *
+-Three additional callback function, dyn_create_function, dyn_lock_function
+-and dyn_destroy_function.
+-
+-=item *
+-A structure defined with the data that each lock needs to handle.
+-
+-=back
+-
+-struct CRYPTO_dynlock_value has to be defined to contain whatever structure
+-is needed to handle locks.
+-
+-dyn_create_function(const char *file, int line) is needed to create a
+-lock. Multi-threaded applications might crash at random if it is not set.
+-
+-dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
+-is needed to perform locking off dynamic lock numbered n. Multi-threaded
+-applications might crash at random if it is not set.
+-
+-dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
+-needed to destroy the lock l. Multi-threaded applications might crash at
+-random if it is not set.
+-
+-CRYPTO_get_new_dynlockid() is used to create locks. It will call
+-dyn_create_function for the actual creation.
+-
+-CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
+-dyn_destroy_function for the actual destruction.
+-
+-CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
+-describing what should be done with the lock. n is the number of the
+-lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
+-from the following values. These values are pairwise exclusive, with
+-undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
+-should not be used together):
+-
+- CRYPTO_LOCK 0x01
+- CRYPTO_UNLOCK 0x02
+- CRYPTO_READ 0x04
+- CRYPTO_WRITE 0x08
+-
+-=head1 RETURN VALUES
+-
+-CRYPTO_num_locks() returns the required number of locks.
+-
+-CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
+-
+-The other functions return no values.
+-
+-=head1 NOTES
+-
+-You can find out if OpenSSL was configured with thread support:
+-
+- #define OPENSSL_THREAD_DEFINES
+- #include <openssl/opensslconf.h>
+- #if defined(OPENSSL_THREADS)
+- // thread support enabled
+- #else
+- // no thread support
+- #endif
+-
+-Also, dynamic locks are currently not used internally by OpenSSL, but
+-may do so in the future.
+-
+-=head1 EXAMPLES
+-
+-B<crypto/threads/mttest.c> shows examples of the callback functions on
+-Solaris, Irix and Win32.
+-
+-=head1 HISTORY
+-
+-CRYPTO_set_locking_callback() is
+-available in all versions of SSLeay and OpenSSL.
+-CRYPTO_num_locks() was added in OpenSSL 0.9.4.
+-All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
+-B<CRYPTO_THREADID> and associated functions were introduced in OpenSSL 1.0.0
+-to replace (actually, deprecate) the previous CRYPTO_set_id_callback(),
+-CRYPTO_get_id_callback(), and CRYPTO_thread_id() functions which assumed
+-thread IDs to always be represented by 'unsigned long'.
+-
+-=head1 SEE ALSO
+-
+-L<crypto(3)|crypto(3)>
+-
+-=cut
+diff -Naur openssl-1.0.0a.orig//doc/crypto/X509_NAME_ENTRY_get_object.pod openssl-1.0.0a/doc/crypto/X509_NAME_ENTRY_get_object.pod
+--- openssl-1.0.0a.orig//doc/crypto/X509_NAME_ENTRY_get_object.pod 2006-05-14 12:27:59.000000000 +0100
++++ openssl-1.0.0a/doc/crypto/X509_NAME_ENTRY_get_object.pod 2010-09-01 19:36:31.620125025 +0100
+@@ -65,7 +65,7 @@
+ =head1 SEE ALSO
+
+ L<ERR_get_error(3)|ERR_get_error(3)>, L<d2i_X509_NAME(3)|d2i_X509_NAME(3)>,
+-L<OBJ_nid2obj(3),OBJ_nid2obj(3)>
++L<OBJ_nid2obj(3)|OBJ_nid2obj(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/ssl/SSL_get_error.pod openssl-1.0.0a/doc/ssl/SSL_get_error.pod
+--- openssl-1.0.0a.orig//doc/ssl/SSL_get_error.pod 2005-03-30 12:50:14.000000000 +0100
++++ openssl-1.0.0a/doc/ssl/SSL_get_error.pod 2010-09-01 19:36:40.259360162 +0100
+@@ -105,7 +105,7 @@
+
+ =head1 SEE ALSO
+
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>
+
+ =head1 HISTORY
+
+diff -Naur openssl-1.0.0a.orig//doc/ssl/SSL_want.pod openssl-1.0.0a/doc/ssl/SSL_want.pod
+--- openssl-1.0.0a.orig//doc/ssl/SSL_want.pod 2005-03-30 12:50:14.000000000 +0100
++++ openssl-1.0.0a/doc/ssl/SSL_want.pod 2010-09-01 19:36:40.259360162 +0100
+@@ -72,6 +72,6 @@
+
+ =head1 SEE ALSO
+
+-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
++L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
+
+ =cut
+diff -Naur openssl-1.0.0a.orig//FAQ openssl-1.0.0a/FAQ
+--- openssl-1.0.0a.orig//FAQ 2010-06-01 14:31:36.000000000 +0100
++++ openssl-1.0.0a/FAQ 2010-09-01 19:39:19.677244857 +0100
+@@ -724,7 +724,7 @@
+ CRYPTO_set_id_callback(), for all versions of OpenSSL up to and
+ including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback()
+ and associated APIs are deprecated by CRYPTO_THREADID_set_callback()
+-and friends. This is described in the threads(3) manpage.
++and friends. This is described in the openssl_threads(3) manpage.
+
+ * I've compiled a program under Windows and it crashes: why?
+
diff --git a/core/openssl/no-rpath.patch b/core/openssl/no-rpath.patch
new file mode 100644
index 000000000..ebd95e23d
--- /dev/null
+++ b/core/openssl/no-rpath.patch
@@ -0,0 +1,11 @@
+--- Makefile.shared.no-rpath 2005-06-23 22:47:54.000000000 +0200
++++ Makefile.shared 2005-11-16 22:35:37.000000000 +0100
+@@ -153,7 +153,7 @@
+ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
+
+-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
++DO_GNU_APP=LDFLAGS="$(CFLAGS)"
+
+ #This is rather special. It's a special target with which one can link
+ #applications without bothering with any features that have anything to
diff --git a/core/openvpn/PKGBUILD b/core/openvpn/PKGBUILD
new file mode 100644
index 000000000..3926f5f1c
--- /dev/null
+++ b/core/openvpn/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 98730 2010-11-13 13:55:32Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=openvpn
+pkgver=2.1.4
+pkgrel=1
+pkgdesc="An easy-to-use, robust, and highly configurable VPN (Virtual Private Network)"
+arch=(i686 x86_64)
+url="http://openvpn.net/index.php/open-source.html"
+depends=('openssl' 'lzo2')
+license=('custom')
+backup=(usr/share/openvpn/easy-rsa/vars
+ usr/share/openvpn/easy-rsa/openssl.cnf
+ etc/conf.d/openvpn-tapdev)
+source=(http://swupdate.openvpn.net/community/releases/openvpn-${pkgver}.tar.gz
+ openvpn.rc
+ openvpn-tapdev.rc
+ openvpn-tapdev.conf)
+md5sums=('96a11868082685802489254f03ff3bde'
+ 'a3809b9727f0c2af2d0770f5c7442db2'
+ 'd2c48e970088d679dd3c2afd914ff731'
+ '722f483c9e3ce2ec66d3301aaf7cf3d5')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # Build openvpn
+ CFLAGS="$CFLAGS -DPLUGIN_LIBDIR=\\\"/usr/lib/openvpn\\\"" ./configure --prefix=/usr --enable-password-save --mandir=/usr/share/man
+ make
+
+ # Build plugins
+ for plug in auth-pam down-root; do
+ cd $srcdir/$pkgname-$pkgver/plugin/$plug
+ make
+ done
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ # Install openvpn
+ make DESTDIR=$pkgdir install
+ install -d -m755 $pkgdir/etc/openvpn
+ # Install examples
+ install -d -m755 $pkgdir/usr/share/openvpn
+ cp -r sample-config-files $pkgdir/usr/share/openvpn/examples
+ find $pkgdir/usr/share/openvpn -type f -exec chmod 644 {} \;
+ find $pkgdir/usr/share/openvpn -type d -exec chmod 755 {} \;
+ # Install license
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+ # Install plugins
+ for plug in auth-pam down-root; do
+ cd $srcdir/$pkgname-$pkgver/plugin/$plug
+ install -D -m755 openvpn-$plug.so $pkgdir/usr/lib/openvpn/openvpn-$plug.so
+ done
+ # Install easy-rsa
+ cd $srcdir/$pkgname-$pkgver
+ make -C easy-rsa/2.0 install DESTDIR=$pkgdir PREFIX=usr/share/openvpn/easy-rsa
+ # Install rc scripts
+ install -D -m755 $srcdir/openvpn.rc $pkgdir/etc/rc.d/openvpn
+ install -D -m755 $srcdir/openvpn-tapdev.rc $pkgdir/etc/rc.d/openvpn-tapdev
+ install -D -m644 $srcdir/openvpn-tapdev.conf $pkgdir/etc/conf.d/openvpn-tapdev
+}
diff --git a/core/openvpn/openvpn-tapdev.conf b/core/openvpn/openvpn-tapdev.conf
new file mode 100644
index 000000000..afa5586dd
--- /dev/null
+++ b/core/openvpn/openvpn-tapdev.conf
@@ -0,0 +1,12 @@
+#
+# /etc/conf.d/openvpn-tapdev
+#
+# Place openvpn-tapdev before network into your DAEMONS array
+# This will create permanent tap devices which you can use for bridging
+#
+# Example:
+# TAPDEVS="work home"
+# Will create two tap devices "work" and "home"
+#
+
+TAPDEVS=""
diff --git a/core/openvpn/openvpn-tapdev.rc b/core/openvpn/openvpn-tapdev.rc
new file mode 100755
index 000000000..2c51f8248
--- /dev/null
+++ b/core/openvpn/openvpn-tapdev.rc
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+. /etc/conf.d/openvpn-tapdev
+
+case "$1" in
+ start)
+ stat_busy "Creating tap devices for OpenVPN ... "
+ success=0
+ for tapdev in ${TAPDEVS}; do
+ stat_append "${tapdev} "
+ /usr/sbin/openvpn --mktun --dev-type tap --dev ${tapdev} >/dev/null 2>&1 || success=$?
+ done
+ if [ $success -eq 0 ]; then
+ add_daemon openvpn-tapdev
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Destroying tap devices for OpenVPN ..."
+ for tapdev in ${TAPDEVS}; do
+ stat_append "${tapdev} "
+ /usr/sbin/openvpn --rmtun --dev-type tap --dev ${tapdev} >/dev/null 2>&1 || success=$?
+ done
+ rm_daemon openvpn-tapdev
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/openvpn/openvpn.rc b/core/openvpn/openvpn.rc
new file mode 100755
index 000000000..96c28b641
--- /dev/null
+++ b/core/openvpn/openvpn.rc
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+CFGDIR="/etc/openvpn"
+STATEDIR="/var/run/openvpn"
+
+case "$1" in
+ start)
+ stat_busy "Starting OpenVPN ... "
+ success=0
+ mkdir -p "${STATEDIR}"
+ for cfg in "${CFGDIR}"/*.conf; do
+ stat_append "$(basename "${cfg}" .conf) "
+ /usr/sbin/openvpn --daemon --writepid "${STATEDIR}"/"$(basename "${cfg}" .conf)".pid --cd "${CFGDIR}" --config "${cfg}" || success=$?
+ done
+ if [ $success -eq 0 ]; then
+ add_daemon openvpn
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenVPN ..."
+ for pidfile in "${STATEDIR}"/*.pid; do
+ stat_append "$(basename "${pidfile}" .pid) "
+ kill $(cat "${pidfile}" 2>/dev/null) 2>/dev/null
+ rm -f "${pidfile}"
+ done
+ rm_daemon openvpn
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/pacman/PKGBUILD b/core/pacman/PKGBUILD
new file mode 100644
index 000000000..d8513e4e6
--- /dev/null
+++ b/core/pacman/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 116411 2011-03-23 16:23:20Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgname=pacman
+pkgver=3.5.1
+pkgrel=1
+pkgdesc="A library-based package manager with dependency support"
+arch=('i686' 'x86_64')
+url="http://www.archlinux.org/pacman/"
+license=('GPL')
+groups=('base')
+depends=('bash' 'libarchive>=2.8.4' 'libfetch>=2.28' 'pacman-mirrorlist')
+optdepends=('fakeroot: for makepkg usage as normal user'
+ 'curl: for rankmirrors usage')
+backup=(etc/pacman.conf etc/makepkg.conf)
+install=pacman.install
+options=(!libtool)
+source=(ftp://ftp.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz
+ pacman.conf
+ pacman.conf.x86_64
+ makepkg.conf)
+md5sums=('6e609a6cf0af2a49a0f8b35fc2459131'
+ 'e99eb721b6b704f68c5f47468507c102'
+ '28e6a1f97ed3c47a3961ad00d2a43822'
+ 'a8684989d3dfad5a6e1bcf95af3e571b')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --enable-doc
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # install Arch specific stuff
+ mkdir -p $pkgdir/etc
+ case "$CARCH" in
+ i686)
+ install -m644 $srcdir/pacman.conf $pkgdir/etc/pacman.conf
+ mycarch="i686"
+ mychost="i686-pc-linux-gnu"
+ myflags="-march=i686 "
+ ;;
+ x86_64)
+ install -m644 $srcdir/pacman.conf.x86_64 $pkgdir/etc/pacman.conf
+ mycarch="x86_64"
+ mychost="x86_64-unknown-linux-gnu"
+ myflags="-march=x86-64 "
+ ;;
+ esac
+ install -m644 $srcdir/makepkg.conf $pkgdir/etc/
+ # set things correctly in the default conf file
+ sed -i $pkgdir/etc/makepkg.conf \
+ -e "s|@CARCH[@]|$mycarch|g" \
+ -e "s|@CHOST[@]|$mychost|g" \
+ -e "s|@CARCHFLAGS[@]|$myflags|g"
+
+ # install completion files
+ mkdir -p $pkgdir/etc/bash_completion.d/
+ install -m644 contrib/bash_completion $pkgdir/etc/bash_completion.d/pacman
+ mkdir -p $pkgdir/usr/share/zsh/site-functions/
+ install -m644 contrib/zsh_completion $pkgdir/usr/share/zsh/site-functions/_pacman
+}
+
+# vim: set ts=2 sw=2 et:
diff --git a/core/pacman/makepkg.conf b/core/pacman/makepkg.conf
new file mode 100644
index 000000000..a655e935f
--- /dev/null
+++ b/core/pacman/makepkg.conf
@@ -0,0 +1,114 @@
+#
+# /etc/makepkg.conf
+#
+
+#########################################################################
+# SOURCE ACQUISITION
+#########################################################################
+#
+#-- The download utilities that makepkg should use to acquire sources
+# Format: 'protocol::agent'
+DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
+ 'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u'
+ 'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u'
+ 'rsync::/usr/bin/rsync -z %u %o'
+ 'scp::/usr/bin/scp -C %u %o')
+
+# Other common tools:
+# /usr/bin/snarf
+# /usr/bin/lftpget -c
+# /usr/bin/curl
+
+#########################################################################
+# ARCHITECTURE, COMPILE FLAGS
+#########################################################################
+#
+CARCH="@CARCH@"
+CHOST="@CHOST@"
+
+#-- Exclusive: will only run on @CARCH@
+# -march (or -mcpu) builds exclusively for an architecture
+# -mtune optimizes for an architecture, but builds for whole processor family
+CFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe"
+CXXFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe"
+LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"
+#-- Make Flags: change this for DistCC/SMP systems
+#MAKEFLAGS="-j2"
+
+#########################################################################
+# BUILD ENVIRONMENT
+#########################################################################
+#
+# Defaults: BUILDENV=(fakeroot !distcc color !ccache check)
+# A negated environment option will do the opposite of the comments below.
+#
+#-- fakeroot: Allow building packages as a non-root user
+#-- distcc: Use the Distributed C/C++/ObjC compiler
+#-- color: Colorize output messages
+#-- ccache: Use ccache to cache compilation
+#-- check: Run the check() function if present in the PKGBUILD
+#
+BUILDENV=(fakeroot !distcc color !ccache check)
+#
+#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
+#-- specify a space-delimited list of hosts running in the DistCC cluster.
+#DISTCC_HOSTS=""
+
+#########################################################################
+# GLOBAL PACKAGE OPTIONS
+# These are default values for the options=() settings
+#########################################################################
+#
+# Default: OPTIONS=(strip docs libtool emptydirs zipman purge)
+# A negated option will do the opposite of the comments below.
+#
+#-- strip: Strip symbols from binaries/libraries
+#-- docs: Save doc directories specified by DOC_DIRS
+#-- libtool: Leave libtool (.la) files in packages
+#-- emptydirs: Leave empty directories in packages
+#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
+#-- purge: Remove files specified by PURGE_TARGETS
+#
+OPTIONS=(strip docs libtool emptydirs zipman purge)
+
+#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
+INTEGRITY_CHECK=(md5)
+#-- Options to be used when stripping binaries. See `man strip' for details.
+STRIP_BINARIES="--strip-all"
+#-- Options to be used when stripping shared libraries. See `man strip' for details.
+STRIP_SHARED="--strip-unneeded"
+#-- Options to be used when stripping static libraries. See `man strip' for details.
+STRIP_STATIC="--strip-debug"
+#-- Manual (man and info) directories to compress (if zipman is specified)
+MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
+#-- Doc directories to remove (if !docs is specified)
+DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
+#-- Files to be removed from all packages (if purge is specified)
+PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
+
+#########################################################################
+# PACKAGE OUTPUT
+#########################################################################
+#
+# Default: put built package and cached source in build directory
+#
+#-- Destination: specify a fixed directory where all packages will be placed
+#PKGDEST=/home/packages
+#-- Source cache: specify a fixed directory where source files will be cached
+#SRCDEST=/home/sources
+#-- Source packages: specify a fixed directory where all src packages will be placed
+#SRCPKGDEST=/home/srcpackages
+#-- Packager: name/email of the person or organization building packages
+#PACKAGER="John Doe <john@doe.com>"
+
+#########################################################################
+# EXTENSION DEFAULTS
+#########################################################################
+#
+# WARNING: Do NOT modify these variables unless you know what you are
+# doing.
+#
+PKGEXT='.pkg.tar.xz'
+SRCEXT='.src.tar.gz'
+
+# vim: set ft=sh ts=2 sw=2 et:
diff --git a/core/pacman/pacman.conf b/core/pacman/pacman.conf
new file mode 100644
index 000000000..206ab23b4
--- /dev/null
+++ b/core/pacman/pacman.conf
@@ -0,0 +1,80 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+HoldPkg = pacman glibc
+# If upgrades are available for these packages they will be asked for first
+SyncFirst = pacman
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#XferCommand = /usr/bin/curl -C - -f %u > %o
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options (all disabled by default)
+#UseSyslog
+#ShowSize
+#UseDelta
+#TotalDownload
+#CheckSpace
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#Server = file:///home/custompkgs
+
diff --git a/core/pacman/pacman.conf.x86_64 b/core/pacman/pacman.conf.x86_64
new file mode 100644
index 000000000..a5bb2db61
--- /dev/null
+++ b/core/pacman/pacman.conf.x86_64
@@ -0,0 +1,85 @@
+#
+# /etc/pacman.conf
+#
+# See the pacman.conf(5) manpage for option and repository directives
+
+#
+# GENERAL OPTIONS
+#
+[options]
+# The following paths are commented out with their default values listed.
+# If you wish to use different paths, uncomment and update the paths.
+#RootDir = /
+#DBPath = /var/lib/pacman/
+#CacheDir = /var/cache/pacman/pkg/
+#LogFile = /var/log/pacman.log
+HoldPkg = pacman glibc
+# If upgrades are available for these packages they will be asked for first
+SyncFirst = pacman
+#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
+#XferCommand = /usr/bin/curl -C - -f %u > %o
+#CleanMethod = KeepInstalled
+Architecture = auto
+
+# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
+#IgnorePkg =
+#IgnoreGroup =
+
+#NoUpgrade =
+#NoExtract =
+
+# Misc options (all disabled by default)
+#UseSyslog
+#ShowSize
+#UseDelta
+#TotalDownload
+#CheckSpace
+
+#
+# REPOSITORIES
+# - can be defined here or included from another file
+# - pacman will search repositories in the order defined here
+# - local/custom mirrors can be added here or in separate files
+# - repositories listed first will take precedence when packages
+# have identical names, regardless of version number
+# - URLs will have $repo replaced by the name of the current repo
+# - URLs will have $arch replaced by the name of the architecture
+#
+# Repository entries are of the format:
+# [repo-name]
+# Server = ServerName
+# Include = IncludePath
+#
+# The header [repo-name] is crucial - it must be present and
+# uncommented to enable the repo.
+#
+
+# The testing repositories are disabled by default. To enable, uncomment the
+# repo name header and Include lines. You can add preferred servers immediately
+# after the header, and they will be used before the default mirrors.
+
+#[testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[core]
+Include = /etc/pacman.d/mirrorlist
+
+[extra]
+Include = /etc/pacman.d/mirrorlist
+
+#[community-testing]
+#Include = /etc/pacman.d/mirrorlist
+
+[community]
+Include = /etc/pacman.d/mirrorlist
+
+# If you want to run 32 bit applications on your x86_64 system,
+# enable the multilib repository here.
+#[multilib]
+#Include = /etc/pacman.d/mirrorlist
+
+# An example of a custom package repository. See the pacman manpage for
+# tips on creating your own repositories.
+#[custom]
+#Server = file:///home/custompkgs
+
diff --git a/core/pacman/pacman.install b/core/pacman/pacman.install
new file mode 100644
index 000000000..0e598bb4b
--- /dev/null
+++ b/core/pacman/pacman.install
@@ -0,0 +1,62 @@
+#!/bin/sh
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ # one time stuff for md5sum issue with older pacman versions
+ if [ "$(vercmp $2 3.0.2)" -lt 0 ]; then
+ _resetbackups
+ fi
+ if [ "$(vercmp $2 3.5.0)" -lt 0 ]; then
+ _warnupgrade
+ fi
+}
+
+_warnupgrade() {
+ echo ">>> The pacman database format has changed as of pacman 3.5.0."
+ echo ">>> You will need to run \`pacman-db-upgrade\` as root."
+ echo ">>>"
+}
+
+_resetbackups() {
+ echo ">>> Performing one-time reset of NoUpgrade md5sums. After this reset"
+ echo ">>> you are able to remove all NoUpgrade lines of already protected"
+ echo ">>> files from pacman.conf."
+ echo ">>>"
+
+ # path variables
+ pacconf="/etc/pacman.conf"
+ dbpath="/var/lib/pacman/local"
+
+ # get a list of NoUpgrade files from the user's pacman.conf
+ echo ">>> Retrieving pacman.conf NoUpgrade list..."
+ config=$(grep "^NoUpgrade" $pacconf | cut -d'=' -f2)
+ # add the standard list of files, even if they are already above
+ config="$config \
+ etc/passwd etc/group etc/shadow etc/sudoers \
+ etc/fstab etc/raidtab etc/ld.so.conf \
+ etc/rc.conf etc/rc.local \
+ etc/modprobe.conf etc/modules.conf \
+ etc/lilo.conf boot/grub/menu.lst"
+
+ # blank md5sum for use in sed expression
+ zeroes='00000000000000000000000000000000'
+
+ for file in $config; do
+ echo ">>> -> finding owner of /$file..."
+ line=$(LC_ALL=C LANG=C pacman -Qo /$file 2>/dev/null)
+ # if file is owned by a package, go find its incorrectly stored sum
+ if [ ! -z "$line" ]; then
+ # get the name and version of the package owning file
+ name=$(echo $line | awk '{print $5}')
+ version=$(echo $line | awk '{print $6}')
+ # set the path to the backup array holding the md5sum
+ path="$dbpath/$name-$version/files"
+ # run a sed on the path to reset the line containing $file
+ # NOTE: literal tab characters in sed expression after $file
+ echo ">>> -> resetting sum of /$file..."
+ sed -i "s#$file [0-9a-fA-F]*#$file $zeroes#" $path
+ else
+ echo ">>> -> $file is unowned."
+ fi
+ done
+}
diff --git a/core/pam/PKGBUILD b/core/pam/PKGBUILD
new file mode 100644
index 000000000..3fe44d8aa
--- /dev/null
+++ b/core/pam/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 104544 2011-01-03 22:58:23Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=pam
+pkgver=1.1.3
+pkgrel=1
+pkgdesc="PAM (Pluggable Authentication Modules) library"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.kernel.org/pub/linux/libs/pam/"
+depends=('glibc' 'db' 'cracklib')
+makedepends=('flex' 'w3m' 'docbook-xml>=4.4' 'docbook-xsl')
+backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/pam.d/other etc/default/passwd etc/environment)
+source=(http://www.kernel.org/pub/linux/libs/pam/library/Linux-PAM-$pkgver.tar.bz2
+ ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2/pam_unix2-2.6.tar.bz2
+ other)
+options=('!libtool' '!emptydirs')
+md5sums=('6db7fcb5db6253350e3a4648ceac40e7'
+ 'e2788389a6c59224110a45fcff30e02b'
+ '6e6c8719e5989d976a14610f340bd33a')
+
+build() {
+ cd $srcdir/Linux-PAM-$pkgver
+ ./configure --sysconfdir=/etc DESTDIR=$pkgdir --libdir=/lib
+ make
+}
+
+package() {
+ cd $srcdir/Linux-PAM-$pkgver
+ make INSTALL=/bin/install DESTDIR=$pkgdir install
+ install -D -m644 ../other $pkgdir/etc/pam.d/other
+ # build pam_unix2 module
+ # source ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2
+ cd $srcdir/pam_unix2-2.6
+ ./configure
+ make
+ make DESTDIR=$pkgdir install
+ # add the realtime permissions for audio users
+ sed -i 's|# End of file||' $pkgdir/etc/security/limits.conf
+ cat >>$pkgdir/etc/security/limits.conf <<_EOT
+* - rtprio 0
+* - nice 0
+@audio - rtprio 65
+@audio - nice -10
+@audio - memlock 40000
+_EOT
+ # fix some missing symlinks from old pam for compatibility
+ cd $pkgdir/lib/security
+ ln -s pam_unix.so pam_unix_acct.so
+ ln -s pam_unix.so pam_unix_auth.so
+ ln -s pam_unix.so pam_unix_passwd.so
+ ln -s pam_unix.so pam_unix_session.so
+ # set unix_chkpwd uid
+ chmod +s $pkgdir/sbin/unix_chkpwd
+}
diff --git a/core/pam/other b/core/pam/other
new file mode 100644
index 000000000..08498b423
--- /dev/null
+++ b/core/pam/other
@@ -0,0 +1,5 @@
+#%PAM-1.0
+auth required pam_unix.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
diff --git a/core/pam/pam.install b/core/pam/pam.install
new file mode 100644
index 000000000..9d4588084
--- /dev/null
+++ b/core/pam/pam.install
@@ -0,0 +1,12 @@
+# arg 1: the new package version
+post_install() {
+ # need to run this immediately -- pacman only runs it at the end of
+ # all package installs
+ /sbin/ldconfig -r .
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
diff --git a/core/patch/PKGBUILD b/core/patch/PKGBUILD
new file mode 100644
index 000000000..c51ae2eed
--- /dev/null
+++ b/core/patch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 99945 2010-11-19 15:36:41Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=patch
+pkgver=2.6.1
+pkgrel=2
+pkgdesc="A utility to apply patch files to original sources"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/patch/patch.html"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc')
+optdepends=('ed: Interpret the patch as an ed script; for patch -e functionality(deprecated)')
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz patch-2.6.1-get-arg.patch)
+md5sums=('d758eb96d3f75047efc004a720d33daf' '45cd5709adbbcdcb3ab95dc43559c07c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Fixed argument type for --get
+ # see https://bugzilla.redhat.com/show_bug.cgi?id=553624
+ patch -Np1 -i ../patch-2.6.1-get-arg.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+}
diff --git a/core/patch/patch-2.6.1-get-arg.patch b/core/patch/patch-2.6.1-get-arg.patch
new file mode 100644
index 000000000..45f3bc8a5
--- /dev/null
+++ b/core/patch/patch-2.6.1-get-arg.patch
@@ -0,0 +1,12 @@
+diff -up patch-2.6.1/src/patch.c.get-arg patch-2.6.1/src/patch.c
+--- patch-2.6.1/src/patch.c.get-arg 2010-07-27 18:05:26.217150510 +0100
++++ patch-2.6.1/src/patch.c 2010-07-27 18:05:47.464150892 +0100
+@@ -558,7 +558,7 @@ static struct option const longopts[] =
+ {"remove-empty-files", no_argument, NULL, 'E'},
+ {"force", no_argument, NULL, 'f'},
+ {"fuzz", required_argument, NULL, 'F'},
+- {"get", no_argument, NULL, 'g'},
++ {"get", required_argument, NULL, 'g'},
+ {"input", required_argument, NULL, 'i'},
+ {"ignore-whitespace", no_argument, NULL, 'l'},
+ #ifdef ENABLE_MERGE
diff --git a/core/pciutils/PKGBUILD b/core/pciutils/PKGBUILD
new file mode 100644
index 000000000..84717cd2e
--- /dev/null
+++ b/core/pciutils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 107583 2011-01-26 21:07:38Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pciutils
+pkgver=3.1.7
+pkgrel=3
+pkgdesc="PCI bus configuration space access library and tools"
+arch=(i686 x86_64)
+license=('GPL2')
+groups=('base')
+url="http://mj.ucw.cz/pciutils.html"
+optdepends=('sh: required by update-pciids')
+makedepends=('wget')
+depends=('glibc')
+source=(ftp://ftp.kernel.org/pub/software/utils/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('35222edb86b50a6641352c66fe829b2e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./update-pciids.sh
+ make OPT="$CFLAGS -fPIC -DPIC" ZLIB=no PREFIX=/usr SHAREDIR=/usr/share/hwdata MANDIR=/usr/share/man all
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=${pkgdir}/usr SHAREDIR=${pkgdir}/usr/share/hwdata MANDIR=${pkgdir}/usr/share/man install
+ install -d ${pkgdir}/usr/lib
+ install -m644 lib/libpci.a ${pkgdir}/usr/lib
+ for i in config.h header.h pci.h types.h; do
+ install -D -m 644 lib/${i} ${pkgdir}/usr/include/pci/${i}
+ done
+}
diff --git a/core/pcmciautils/60-pcmcia.rules b/core/pcmciautils/60-pcmcia.rules
new file mode 100644
index 000000000..aa3c1a2d3
--- /dev/null
+++ b/core/pcmciautils/60-pcmcia.rules
@@ -0,0 +1,30 @@
+# PCMCIA devices:
+#
+ACTION!="add", GOTO="pcmciautils_end"
+# modprobe $env{MODALIAS} loads all possibly appropriate modules
+SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \
+ RUN+="/lib/udev/load-modules.sh $env{MODALIAS}"
+
+# Very few CIS firmware entries (which we use for matching)
+# are so broken that we need to read out random bytes of it
+# instead of the manufactor, card or product ID. Then the
+# matching is done in userspace.
+SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \
+ RUN+="/lib/udev/pcmcia-check-broken-cis"
+
+# However, the "weak" matching by func_id is only allowed _after_ modprobe
+# returns, so that "strong" matches have a higher priority.
+SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", ATTR{allow_func_id_match}="1"
+
+# PCMCIA sockets:
+#
+# modprobe the pcmcia bus module so that 16-bit PCMCIA devices work
+SUBSYSTEM=="pcmcia_socket", \
+ RUN+="/lib/udev/load-modules.sh pcmcia"
+
+# if this is a PCMCIA socket which needs a resource database,
+# pcmcia-socket-startup sets it up
+SUBSYSTEM=="pcmcia_socket", \
+ RUN+="/lib/udev/pcmcia-socket-startup"
+
+LABEL="pcmciautils_end"
diff --git a/core/pcmciautils/PKGBUILD b/core/pcmciautils/PKGBUILD
new file mode 100644
index 000000000..8744b8392
--- /dev/null
+++ b/core/pcmciautils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 113400 2011-03-08 14:24:47Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pcmciautils
+pkgver=017
+pkgrel=2
+pkgdesc="Utilities for inserting and removing PCMCIA cards"
+arch=(i686 x86_64)
+url="http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html"
+license=('GPL')
+groups=('base')
+depends=('glibc' 'sysfsutils' 'module-init-tools>=3.2pre9')
+conflicts=('pcmcia-cs')
+source=(http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmciautils-${pkgver}.tar.bz2
+ 60-pcmcia.rules)
+options=(!makeflags)
+md5sums=('5245af28eeba57ec0606a874d44d10f7'
+ 'f88ac464ab9c75fe1565af551e6553a2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's,/usr/bin/install,/bin/install,g' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ # fix lspcmcia symlink
+ ln -sf pccardctl "${pkgdir}"/sbin/lspcmcia
+ # add fixed rules file
+ install -D -m644 "${srcdir}"/60-pcmcia.rules "${pkgdir}"/lib/udev/rules.d/
+}
diff --git a/core/pcre/PKGBUILD b/core/pcre/PKGBUILD
new file mode 100644
index 000000000..c765d79a3
--- /dev/null
+++ b/core/pcre/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 106454 2011-01-17 12:49:41Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=pcre
+pkgver=8.12
+pkgrel=1
+pkgdesc="A library that implements Perl 5-style regular expressions"
+arch=('i686' 'x86_64')
+url="http://www.pcre.org/"
+license=('BSD')
+depends=('gcc-libs')
+options=('!libtool')
+source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f14a9fef3c92f3fc6c5ac92d7a2c7eb3')
+sha1sums=('2219b372bff53ee29a7e44ecf5977ad15df01cea')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+ ./configure --prefix=/usr --enable-utf8 --enable-unicode-properties
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+
+ # grep uses pcre, so we need the libs in /lib
+ install -dm755 "${pkgdir}"/lib
+ mv "${pkgdir}"/usr/lib/libpcre.so.* "${pkgdir}"/lib/
+ ln -sf /lib/libpcre.so.0 "${pkgdir}"/usr/lib/libpcre.so
+
+ install -Dm644 LICENCE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/perl/ChangeLog b/core/perl/ChangeLog
new file mode 100644
index 000000000..2de069d5d
--- /dev/null
+++ b/core/perl/ChangeLog
@@ -0,0 +1,50 @@
+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/core/perl/PKGBUILD b/core/perl/PKGBUILD
new file mode 100644
index 000000000..37f3a0e91
--- /dev/null
+++ b/core/perl/PKGBUILD
@@ -0,0 +1,208 @@
+# $Id: PKGBUILD 107935 2011-01-27 21:58:49Z angvp $
+# Maintainer: kevin <kevin.archlinux.org>
+# Contributor: judd <jvinet.zeroflux.org>
+# Contributor: francois <francois.archlinux.org>
+pkgname=perl
+pkgver=5.12.3
+pkgrel=1
+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>=4.8' 'coreutils' 'glibc' 'sh')
+changelog=ChangeLog
+source=(http://www.cpan.org/src/5.0/perl-${pkgver}.tar.bz2 perlbin.sh fix-h2ph-and-tests.patch)
+install=perl.install
+provides=(
+perl-archive-extract=0.38
+perl-archive-tar=1.54
+perl-attribute-handlers=0.87
+perl-autodie=2.06_01
+perl-autoloader=5.70
+perl-base=2.15
+perl-b-debug=1.12
+perl-bignum=0.23
+perl-b-lint=1.11_01
+perl-cgi=3.49
+perl-class-isa=0.36
+perl-compress-raw-bzip2=2.024
+perl-compress-raw-zlib=2.024
+perl-constant=1.20
+perl-cpan=1.94_56
+perl-cpanplus=0.90
+perl-cpanplus-dist-build=0.46
+perl-data-dumper=2.125
+perl-db_file=1.820
+perl-devel-dprof=20080331.00
+perl-devel-peek=1.04
+perl-devel-ppport=3.19
+perl-digest=1.16
+perl-digest-md5=2.39
+perl-digest-sha=5.47
+perl-encode=2.39
+perl-encoding-warnings=0.11
+perl-exporter=5.64_01
+perl-extutils-cbuilder=0.27
+perl-extutils-command=1.16
+perl-extutils-constant=0.22
+perl-extutils-embed=1.28
+perl-extutils-install=1.55
+perl-extutils-makemaker=6.56
+perl-extutils-manifest=1.57
+perl-extutils-parsexs=2.21
+perl-file-fetch=0.24
+perl-file-path=2.08_01
+perl-file-temp=0.22
+perl-filter=1.37
+perl-filter-simple=0.84
+perl-getopt-long=2.38
+perl-if=0.05
+perl-io=1.25_02
+perl-io-compress=2.024
+perlio-via-quotedprint=0.06
+perl-io-zlib=1.10
+perl-ipc-cmd=0.54
+perl-ipc-sysv=2.01
+perl-libnet=1.22
+perl-locale-codes=2.07
+perl-locale-maketext=1.14
+perl-locale-maketext-simple=0.21
+perl-log-message=0.02
+perl-log-message-simple=0.06
+perl-math-bigint=1.89_01
+perl-math-bigint-fastcalc=0.19
+perl-math-bigrat=0.24
+perl-math-complex=1.56
+perl-memoize=1.01_03
+perl-mime-base64=3.08
+perl-module-build=0.3603
+perl-module-corelist=2.29
+perl-module-load=0.16
+perl-module-load-conditional=0.34
+perl-module-loaded=0.06
+perl-module-pluggable=3.9
+perl-net-ping=2.36
+perl-next=0.64
+perl-object-accessor=0.36
+perl-package-constants=0.02
+perl-params-check=0.26
+perl-parent=0.223
+perl-parse-cpan-meta=1.40
+perl-pathtools=3.31
+perl-pod-escapes=1.04
+perl-pod-latex=0.58
+perl-podlators=2.3.1
+perl-pod-parser=1.37
+perl-pod-perldoc=3.15_02
+perl-pod-plainer=1.02
+perl-pod-simple=3.14
+perl-safe=2.27
+perl-scalar-list-utils=1.22
+perl-selfloader=1.17
+perl-shell=0.72_01
+perl-storable=2.22
+perl-switch=2.16
+perl-sys-syslog=0.27
+perl-term-ansicolor=2.02
+perl-term-cap=1.12
+perl-term-ui=0.20
+perl-test=1.25_02
+perl-test-harness=3.17
+perl-test-simple=0.94
+perl-text-balanced=2.02
+perl-text-parsewords=3.27
+perl-text-soundex=3.03_01
+perl-text-tabs+wraps=2009.0305
+perl-thread-queue=2.11
+perl-threads=1.75
+perl-thread-semaphore=2.09
+perl-threads-shared=1.32
+perl-tie-file=0.97_02
+perl-tie-refhash=1.38
+perl-time-hires=1.9719
+perl-time-local=1.1901_01
+perl-time-piece=1.15_01
+perl-unicode-collate=0.52_01
+perl-unicode-normalize=1.03
+perl-version=0.82
+perl-win32=0.39
+perl-win32api-file=0.1101
+perl-xsloader=0.10
+)
+options=('!makeflags' '!purge')
+
+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}
+ #-Dotherlibdirs=/usr/lib/perl5/site_perl/5.10.1:/usr/share/perl5/site_perl/5.10.1:/usr/lib/perl5/current:/usr/lib/perl5/site_perl/current \
+ patch -Np1 -i $srcdir/fix-h2ph-and-tests.patch
+ make
+}
+package() {
+ 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 so set paths to perl scripts.
+ install -D -m755 ${srcdir}/perlbin.sh \
+ ${pkgdir}/etc/profile.d/perlbin.sh
+
+ (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
+}
+md5sums=('72f3f7e1c700e79bbf9d9279ca5b42d9'
+ 'f86eb0dba1638ca6d1c8fff1b06c2a71'
+ '294b5311cbfc50e7dcffbee85854da38')
diff --git a/core/perl/fix-h2ph-and-tests.patch b/core/perl/fix-h2ph-and-tests.patch
new file mode 100644
index 000000000..a2d176ec6
--- /dev/null
+++ b/core/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/core/perl/perl.install b/core/perl/perl.install
new file mode 100644
index 000000000..3f7d58f23
--- /dev/null
+++ b/core/perl/perl.install
@@ -0,0 +1,18 @@
+# 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
+}
+
+post_upgrade() {
+ echo '- The directories /usr/lib/perl5/current, /usr/lib/perl5/site_perl/current,'
+ echo ' /usr/lib/perl5/site_perl/5.10.1, and /usr/share/perl5/site_perl/5.10.1'
+ echo ' have been removed from @INC.'
+
+ echo '- The script/binary directories are now /usr/bin/*_perl instead of'
+ echo ' /usr/lib/perl5/*_perl/bin which will be eventually removed.'
+}
diff --git a/core/perl/perlbin.sh b/core/perl/perlbin.sh
new file mode 100755
index 000000000..09811a8b4
--- /dev/null
+++ b/core/perl/perlbin.sh
@@ -0,0 +1,23 @@
+# 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/core/pkg-config/PKGBUILD b/core/pkg-config/PKGBUILD
new file mode 100644
index 000000000..b432af63e
--- /dev/null
+++ b/core/pkg-config/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 102636 2010-12-09 12:15:21Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=pkg-config
+pkgver=0.25
+pkgrel=3
+pkgdesc="A system for managing library compile/link flags"
+arch=('i686' 'x86_64')
+url="http://pkgconfig.freedesktop.org/wiki/"
+license=('GPL')
+groups=('base-devel')
+depends=('glibc' 'popt' 'glib2')
+provides=("pkgconfig=${pkgver}")
+conflicts=('pkgconfig')
+replaces=('pkgconfig')
+source=(http://pkgconfig.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+ autoconf-2.66.patch)
+md5sums=('a3270bab3f4b69b7dc6dbdacbcae9745'
+ '0fbfc1a5088f792bbeec7b5090e449f1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i $srcdir/autoconf-2.66.patch
+ # Use system popt and glib
+ ./configure --prefix=/usr --with-installed-glib --with-installed-popt
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/pkg-config/autoconf-2.66.patch b/core/pkg-config/autoconf-2.66.patch
new file mode 100644
index 000000000..14cabdf9f
--- /dev/null
+++ b/core/pkg-config/autoconf-2.66.patch
@@ -0,0 +1,12 @@
+diff -Naur pkg-config-0.25-old//pkg.m4 pkg-config-0.25/pkg.m4
+--- pkg-config-0.25-old//pkg.m4 2009-12-07 06:39:02.000000000 +1000
++++ pkg-config-0.25/pkg.m4 2010-07-15 14:44:37.466942978 +1000
+@@ -135,7 +135,7 @@
+ Consider adjusting the PKG_CONFIG_PATH environment variable if you
+ installed software in a non-standard prefix.
+
+-_PKG_TEXT])dnl
++_PKG_TEXT])[]dnl
+ ])
+ elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
diff --git a/core/popt/PKGBUILD b/core/popt/PKGBUILD
new file mode 100644
index 000000000..4445eb0a1
--- /dev/null
+++ b/core/popt/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 105825 2011-01-12 14:39:27Z stephane $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=popt
+pkgver=1.16
+pkgrel=3
+pkgdesc="A commandline option parser"
+arch=('i686' 'x86_64')
+url="http://rpm5.org"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://rpm5.org/files/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('3743beefa3dd6247a73f8f7a32c14c33')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # move libs in /lib
+ install -Dm755 ${pkgdir}/usr/lib/libpopt.so.0.0.0 \
+ ${pkgdir}/lib/libpopt.so.0.0.0
+
+ rm ${pkgdir}/usr/lib/libpopt.so*
+ ln -sf /lib/libpopt.so ${pkgdir}/usr/lib/libpopt.so
+ ln -sf libpopt.so.0 ${pkgdir}/lib/libpopt.so
+ ln -sf libpopt.so.0.0.0 ${pkgdir}/lib/libpopt.so.0
+
+ # install license
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/ppl/PKGBUILD b/core/ppl/PKGBUILD
new file mode 100644
index 000000000..230b48de4
--- /dev/null
+++ b/core/ppl/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 111674 2011-02-28 10:47:00Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: ezzetabi <ezzetabi at gawab dot com>
+
+pkgname=ppl
+pkgver=0.11.2
+pkgrel=1
+pkgdesc="A modern library for convex polyhedra and other numerical abstractions."
+arch=('i686' 'x86_64')
+url="http://www.cs.unipr.it/ppl"
+license=('GPL3')
+depends=('gmp>=5.0')
+options=('!docs' '!libtool')
+source=(http://www.cs.unipr.it/ppl/Download/ftp/releases/$pkgver/ppl-$pkgver.tar.gz)
+md5sums=('ce014f153a28006009db207ca953a984')
+
+build() {
+ cd $srcdir/ppl-$pkgver
+ ./configure --prefix=/usr --enable-interfaces="c,cxx"
+ make
+ make check
+}
+
+package() {
+ cd $srcdir/ppl-$pkgver
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/core/ppp/PKGBUILD b/core/ppp/PKGBUILD
new file mode 100644
index 000000000..6d283d52a
--- /dev/null
+++ b/core/ppp/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 109460 2011-02-09 19:24:24Z stephane $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgname=ppp
+pkgver=2.4.5
+pkgrel=2
+pkgdesc="A daemon which implements the Point-to-Point Protocol for dial-up networking"
+arch=(i686 x86_64)
+url="http://www.samba.org/ppp/"
+license=('custom:GPL/BSD')
+groups=('base')
+depends=('glibc' 'libpcap>=1.0.0')
+backup=(etc/ppp/{chap-secrets,pap-secrets,options,ip-up,ip-down})
+source=(ftp://ftp.samba.org/pub/ppp/ppp-${pkgver}.tar.gz
+ options
+ pon
+ poff
+ ppp
+ plog
+ pon.1
+ ip-up
+ ip-down
+ ip-up.d.dns.sh
+ ip-down.d.dns.sh)
+md5sums=('4621bc56167b6953ec4071043fe0ec57'
+ '7a9259a8f038073eeea7e4552ff1849f'
+ '48c024f73a80c8b69c4def22f86902cc'
+ '2d811f8470ccdea3b8c4505a438483e9'
+ '7561c73b557292d5ba1a9c5dbd270fde'
+ '86cdaf133f7a79fb464f02d83afc7734'
+ '44cc662ba9aa61dd9add3ddd4c5ded57'
+ 'e4beb16ed600b61336d50b2bd2df7cd5'
+ '2fa0671f40711e69194ccf60979f8b33'
+ '4a074d74c29625b254a1db720cb87b99'
+ '8d1be5af8e46393ba6eb273377831e38')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # fix CFLAGS
+ # -D_GNU_SOURCE is needed for IPv6 to work apparently
+ export CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ sed -i "s:-O2 -pipe -Wall -g:${CFLAGS}:" pppd/Makefile.linux
+ sed -i "s:-g -O2:${CFLAGS}:" pppd/plugins/Makefile.linux
+ sed -i "s:-O2:${CFLAGS}:" pppstats/Makefile.linux
+ sed -i "s:-O2 -g -pipe:${CFLAGS}:" chat/Makefile.linux
+ sed -i "s:-O:${CFLAGS}:" pppdump/Makefile.linux
+
+ # enable active filter
+ sed -i "s:^#FILTER=y:FILTER=y:" pppd/Makefile.linux
+ # enable ipv6 support
+ sed -i "s:^#HAVE_INET6=y:HAVE_INET6=y:" pppd/Makefile.linux
+ # Enable Microsoft proprietary Callback Control Protocol
+ sed -i "s:^#CBCP=y:CBCP=y:" pppd/Makefile.linux
+
+ # Fix build error with recent kernels
+ rm include/linux/if_pppol2tp.h
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/usr" install
+ install -D -m644 ../options "${pkgdir}/etc/ppp/options"
+ install -D -m755 ../ip-up "${pkgdir}/etc/ppp/ip-up"
+ install -D -m755 ../ip-down "${pkgdir}/etc/ppp/ip-down"
+ install -d -m755 "${pkgdir}/etc/ppp/ip-up.d"
+ install -d -m755 "${pkgdir}/etc/ppp/ip-down.d"
+ install -m755 ../ip-up.d.dns.sh "${pkgdir}/etc/ppp/ip-up.d/00-dns.sh"
+ install -m755 ../ip-down.d.dns.sh "${pkgdir}/etc/ppp/ip-down.d/00-dns.sh"
+ install -D -m755 ../pon "${pkgdir}/usr/bin/pon"
+ install -D -m755 ../poff "${pkgdir}/usr/bin/poff"
+ install -D -m755 ../plog "${pkgdir}/usr/sbin/plog"
+ install -D -m600 etc.ppp/pap-secrets "${pkgdir}/etc/ppp/pap-secrets"
+ install -D -m600 etc.ppp/chap-secrets "${pkgdir}/etc/ppp/chap-secrets"
+ install -D -m755 ${srcdir}/ppp "${pkgdir}/etc/rc.d/ppp"
+ install -D -m644 ${srcdir}/pon.1 "${pkgdir}/usr/share/man/man1/pon.1"
+ install -d -m755 "${pkgdir}/etc/ppp/peers"
+ chmod 0755 "${pkgdir}/usr/lib/pppd/${pkgver}"/*.so
+}
diff --git a/core/ppp/ip-down b/core/ppp/ip-down
new file mode 100644
index 000000000..301f3ab9b
--- /dev/null
+++ b/core/ppp/ip-down
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# This script is run by pppd after the connection has ended.
+#
+
+# Execute all scripts in /etc/ppp/ip-up.d/
+for ipdown in /etc/ppp/ip-down.d/*.sh; do
+ if [ -x $ipdown ]; then
+ # Parameters: interface-name tty-device speed local-IP-address remote-IP-address ipparam
+ $ipdown "$@"
+ fi
+done
diff --git a/core/ppp/ip-down.d.dns.sh b/core/ppp/ip-down.d.dns.sh
new file mode 100644
index 000000000..9e19f7d1b
--- /dev/null
+++ b/core/ppp/ip-down.d.dns.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+[ -e /etc/resolv.conf.backup.${IFNAME} ] && mv /etc/resolv.conf.backup.${IFNAME} /etc/resolv.conf
diff --git a/core/ppp/ip-up b/core/ppp/ip-up
new file mode 100644
index 000000000..20473d73a
--- /dev/null
+++ b/core/ppp/ip-up
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# This script is run by pppd when there's a successful ppp connection.
+#
+
+# Execute all scripts in /etc/ppp/ip-up.d/
+for ipup in /etc/ppp/ip-up.d/*.sh; do
+ if [ -x $ipup ]; then
+ # Parameters: interface-name tty-device speed local-IP-address remote-IP-address ipparam
+ $ipup "$@"
+ fi
+done
diff --git a/core/ppp/ip-up.d.dns.sh b/core/ppp/ip-up.d.dns.sh
new file mode 100644
index 000000000..f9df543a4
--- /dev/null
+++ b/core/ppp/ip-up.d.dns.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ "$USEPEERDNS" = "1" -a -f /etc/ppp/resolv.conf ]; then
+ [ -e /etc/resolv.conf ] && mv /etc/resolv.conf /etc/resolv.conf.backup.${IFNAME}
+ mv /etc/ppp/resolv.conf /etc/resolv.conf
+ chmod 644 /etc/resolv.conf
+fi
diff --git a/core/ppp/options b/core/ppp/options
new file mode 100644
index 000000000..63691842c
--- /dev/null
+++ b/core/ppp/options
@@ -0,0 +1,352 @@
+# /etc/ppp/options
+#
+# Originally created by Jim Knoble <jmknoble@mercury.interpath.net>
+# Modified for Debian by alvar Bray <alvar@meiko.co.uk>
+# Modified for PPP Server setup by Christoph Lameter <clameter@debian.org>
+# Modified for ArchLinux by Manolis Tzanidakis <manolis@archlinux.org>
+#
+# To quickly see what options are active in this file, use this command:
+# egrep -v '#|^ *$' /etc/ppp/options
+
+# Specify which DNS Servers the incoming Win95 or WinNT Connection should use
+# Two Servers can be remotely configured
+# ms-dns 192.168.1.1
+# ms-dns 192.168.1.2
+
+# Specify which WINS Servers the incoming connection Win95 or WinNT should use
+# ms-wins 192.168.1.50
+# ms-wins 192.168.1.51
+
+# Run the executable or shell command specified after pppd has
+# terminated the link. This script could, for example, issue commands
+# to the modem to cause it to hang up if hardware modem control signals
+# were not available.
+#disconnect "chat -- \d+++\d\c OK ath0 OK"
+
+# async character map -- 32-bit hex; each bit is a character
+# that needs to be escaped for pppd to receive it. 0x00000001
+# represents '\x01', and 0x80000000 represents '\x1f'.
+asyncmap 0
+
+# Require the peer to authenticate itself before allowing network
+# packets to be sent or received.
+# Please do not disable this setting. It is expected to be standard in
+# future releases of pppd. Use the call option (see manpage) to disable
+# authentication for specific peers.
+auth
+
+# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
+# on the serial port.
+crtscts
+
+# Use software flow control (i.e. XON/XOFF) to control the flow of data
+# on the serial port.
+#xonxoff
+
+# Specifies that certain characters should be escaped on transmission
+# (regardless of whether the peer requests them to be escaped with its
+# async control character map). The characters to be escaped are
+# specified as a list of hex numbers separated by commas. Note that
+# almost any character can be specified for the escape option, unlike
+# the asyncmap option which only allows control characters to be
+# specified. The characters which may not be escaped are those with hex
+# values 0x20 - 0x3f or 0x5e.
+#escape 11,13,ff
+
+# Don't use the modem control lines.
+#local
+
+# Specifies that pppd should use a UUCP-style lock on the serial device
+# to ensure exclusive access to the device.
+lock
+
+# Don't show the passwords when logging the contents of PAP packets.
+# This is the default.
+hide-password
+
+# When logging the contents of PAP packets, this option causes pppd to
+# show the password string in the log message.
+#show-password
+
+# Use the modem control lines. On Ultrix, this option implies hardware
+# flow control, as for the crtscts option. (This option is not fully
+# implemented.)
+modem
+
+# Set the MRU [Maximum Receive Unit] value to <n> for negotiation. pppd
+# will ask the peer to send packets of no more than <n> bytes. The
+# minimum MRU value is 128. The default MRU value is 1500. A value of
+# 296 is recommended for slow links (40 bytes for TCP/IP header + 256
+# bytes of data).
+#mru 542
+
+# Set the interface netmask to <n>, a 32 bit netmask in "decimal dot"
+# notation (e.g. 255.255.255.0).
+#netmask 255.255.255.0
+
+# Disables the default behaviour when no local IP address is specified,
+# which is to determine (if possible) the local IP address from the
+# hostname. With this option, the peer will have to supply the local IP
+# address during IPCP negotiation (unless it specified explicitly on the
+# command line or in an options file).
+#noipdefault
+
+# Enables the "passive" option in the LCP. With this option, pppd will
+# attempt to initiate a connection; if no reply is received from the
+# peer, pppd will then just wait passively for a valid LCP packet from
+# the peer (instead of exiting, as it does without this option).
+#passive
+
+# With this option, pppd will not transmit LCP packets to initiate a
+# connection until a valid LCP packet is received from the peer (as for
+# the "passive" option with old versions of pppd).
+#silent
+
+# Don't request or allow negotiation of any options for LCP and IPCP
+# (use default values).
+#-all
+
+# Disable Address/Control compression negotiation (use default, i.e.
+# address/control field disabled).
+#-ac
+
+# Disable asyncmap negotiation (use the default asyncmap, i.e. escape
+# all control characters).
+#-am
+
+# Don't fork to become a background process (otherwise pppd will do so
+# if a serial device is specified).
+#-detach
+
+# Disable IP address negotiation (with this option, the remote IP
+# address must be specified with an option on the command line or in
+# an options file).
+#-ip
+
+# Disable IPCP negotiation and IP communication. This option should
+# only be required if the peer is buggy and gets confused by requests
+# from pppd for IPCP negotiation.
+#noip
+
+# Disable magic number negotiation. With this option, pppd cannot
+# detect a looped-back line.
+#-mn
+
+# Disable MRU [Maximum Receive Unit] negotiation (use default, i.e.
+# 1500).
+#-mru
+
+# Disable protocol field compression negotiation (use default, i.e.
+# protocol field compression disabled).
+#-pc
+
+# Require the peer to authenticate itself using PAP.
+#+pap
+
+# Don't agree to authenticate using PAP.
+#-pap
+
+# Require the peer to authenticate itself using CHAP [Cryptographic
+# Handshake Authentication Protocol] authentication.
+#+chap
+
+# Don't agree to authenticate using CHAP.
+#-chap
+
+# Disable negotiation of Van Jacobson style IP header compression (use
+# default, i.e. no compression).
+#-vj
+
+# Increase debugging level (same as -d). If this option is given, pppd
+# will log the contents of all control packets sent or received in a
+# readable form. The packets are logged through syslog with facility
+# daemon and level debug. This information can be directed to a file by
+# setting up /etc/syslog.conf appropriately (see syslog.conf(5)). (If
+# pppd is compiled with extra debugging enabled, it will log messages
+# using facility local2 instead of daemon).
+#debug
+
+# Append the domain name <d> to the local host name for authentication
+# purposes. For example, if gethostname() returns the name porsche,
+# but the fully qualified domain name is porsche.Quotron.COM, you would
+# use the domain option to set the domain name to Quotron.COM.
+#domain <d>
+
+# Enable debugging code in the kernel-level PPP driver. The argument n
+# is a number which is the sum of the following values: 1 to enable
+# general debug messages, 2 to request that the contents of received
+# packets be printed, and 4 to request that the contents of transmitted
+# packets be printed.
+#kdebug n
+
+# Set the MTU [Maximum Transmit Unit] value to <n>. Unless the peer
+# requests a smaller value via MRU negotiation, pppd will request that
+# the kernel networking code send data packets of no more than n bytes
+# through the PPP network interface.
+#mtu <n>
+
+# Set the name of the local system for authentication purposes to <n>.
+# This is a privileged option. With this option, pppd will use lines in the
+# secrets files which have <n> as the second field when looking for a
+# secret to use in authenticating the peer. In addition, unless overridden
+# with the user option, <n> will be used as the name to send to the peer
+# when authenticating the local system to the peer. (Note that pppd does
+# not append the domain name to <n>.)
+#name <n>
+
+# Enforce the use of the hostname as the name of the local system for
+# authentication purposes (overrides the name option).
+#usehostname
+
+# Set the assumed name of the remote system for authentication purposes
+# to <n>.
+#remotename <n>
+
+# Add an entry to this system's ARP [Address Resolution Protocol]
+# table with the IP address of the peer and the Ethernet address of this
+# system.
+proxyarp
+
+# Use the system password database for authenticating the peer using
+# PAP. Note: mgetty already provides this option. If this is specified
+# then dialin from users using a script under Linux to fire up ppp wont work.
+# login
+
+# If this option is given, pppd will send an LCP echo-request frame to the
+# peer every n seconds. Normally the peer should respond to the echo-request
+# by sending an echo-reply. This option can be used with the
+# lcp-echo-failure option to detect that the peer is no longer connected.
+lcp-echo-interval 30
+
+# If this option is given, pppd will presume the peer to be dead if n
+# LCP echo-requests are sent without receiving a valid LCP echo-reply.
+# If this happens, pppd will terminate the connection. Use of this
+# option requires a non-zero value for the lcp-echo-interval parameter.
+# This option can be used to enable pppd to terminate after the physical
+# connection has been broken (e.g., the modem has hung up) in
+# situations where no hardware modem control lines are available.
+lcp-echo-failure 4
+
+# Set the LCP restart interval (retransmission timeout) to <n> seconds
+# (default 3).
+#lcp-restart <n>
+
+# Set the maximum number of LCP terminate-request transmissions to <n>
+# (default 3).
+#lcp-max-terminate <n>
+
+# Set the maximum number of LCP configure-request transmissions to <n>
+# (default 10).
+#lcp-max-configure <n>
+
+# Set the maximum number of LCP configure-NAKs returned before starting
+# to send configure-Rejects instead to <n> (default 10).
+#lcp-max-failure <n>
+
+# Set the IPCP restart interval (retransmission timeout) to <n>
+# seconds (default 3).
+#ipcp-restart <n>
+
+# Set the maximum number of IPCP terminate-request transmissions to <n>
+# (default 3).
+#ipcp-max-terminate <n>
+
+# Set the maximum number of IPCP configure-request transmissions to <n>
+# (default 10).
+#ipcp-max-configure <n>
+
+# Set the maximum number of IPCP configure-NAKs returned before starting
+# to send configure-Rejects instead to <n> (default 10).
+#ipcp-max-failure <n>
+
+# Set the PAP restart interval (retransmission timeout) to <n> seconds
+# (default 3).
+#pap-restart <n>
+
+# Set the maximum number of PAP authenticate-request transmissions to
+# <n> (default 10).
+#pap-max-authreq <n>
+
+# Set the maximum time that pppd will wait for the peer to authenticate
+# itself with PAP to <n> seconds (0 means no limit).
+#pap-timeout <n>
+
+# Set the CHAP restart interval (retransmission timeout for
+# challenges) to <n> seconds (default 3).
+#chap-restart <n>
+
+# Set the maximum number of CHAP challenge transmissions to <n>
+# (default 10).
+#chap-max-challenge
+
+# If this option is given, pppd will rechallenge the peer every <n>
+# seconds.
+#chap-interval <n>
+
+# With this option, pppd will accept the peer's idea of our local IP
+# address, even if the local IP address was specified in an option.
+#ipcp-accept-local
+
+# With this option, pppd will accept the peer's idea of its (remote) IP
+# address, even if the remote IP address was specified in an option.
+#ipcp-accept-remote
+
+# Disable the IPXCP and IPX protocols.
+# To let pppd pass IPX packets comment this out --- you'll probably also
+# want to install ipxripd, and have the Internal IPX Network option enabled
+# in your kernel. /usr/doc/HOWTO/IPX-HOWTO.gz contains more info.
+noipx
+
+# Exit once a connection has been made and terminated. This is the default,
+# unless the `persist' or `demand' option has been specified.
+#nopersist
+
+# Do not exit after a connection is terminated; instead try to reopen
+# the connection.
+#persist
+
+# Terminate after n consecutive failed connection attempts.
+# A value of 0 means no limit. The default value is 10.
+#maxfail <n>
+
+# Initiate the link only on demand, i.e. when data traffic is present.
+# With this option, the remote IP address must be specified by the user on
+# the command line or in an options file. Pppd will initially configure
+# the interface and enable it for IP traffic without connecting to the peer.
+# When traffic is available, pppd will connect to the peer and perform
+# negotiation, authentication, etc. When this is completed, pppd will
+# commence passing data packets (i.e., IP packets) across the link.
+#demand
+
+# Specifies that pppd should disconnect if the link is idle for <n> seconds.
+# The link is idle when no data packets (i.e. IP packets) are being sent or
+# received. Note: it is not advisable to use this option with the persist
+# option without the demand option. If the active-filter option is given,
+# data packets which are rejected by the specified activity filter also
+# count as the link being idle.
+#idle <n>
+
+# Specifies how many seconds to wait before re-initiating the link after
+# it terminates. This option only has any effect if the persist or demand
+# option is used. The holdoff period is not applied if the link was
+# terminated because it was idle.
+#holdoff <n>
+
+# Wait for up n milliseconds after the connect script finishes for a valid
+# PPP packet from the peer. At the end of this time, or when a valid PPP
+# packet is received from the peer, pppd will commence negotiation by
+# sending its first LCP packet. The default value is 1000 (1 second).
+# This wait period only applies if the connect or pty option is used.
+#connect-delay <n>
+
+# Packet filtering: for more information, see pppd(8)
+# Any packets matching the filter expression will be interpreted as link
+# activity, and will cause a "demand" connection to be activated, and reset
+# the idle connection timer. (idle option)
+# The filter expression is akin to that of tcpdump(1)
+#active-filter <filter-expression>
+
+# uncomment the line below this if you use PPPoE
+#plugin /usr/lib/pppd/plugins/pppoe.so
+
+# ---<End of File>---
diff --git a/core/ppp/plog b/core/ppp/plog
new file mode 100644
index 000000000..84d2c7340
--- /dev/null
+++ b/core/ppp/plog
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if [ -s /var/log/ppp.log ]; then
+ exec tail "$@" /var/log/ppp.log
+else
+ exec tail "$@" /var/log/syslog | grep ' \(pppd\|chat\)\['
+fi
diff --git a/core/ppp/poff b/core/ppp/poff
new file mode 100644
index 000000000..8b4dffc59
--- /dev/null
+++ b/core/ppp/poff
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+# Written by John Hasler <john@dhh.gt.org> and based on work
+# by Phil Hands <phil@hands.com>. Distributed under the GNU GPL
+
+if [ -x /usr/bin/kill ]; then
+ KILL="/usr/bin/kill"
+else
+ KILL="/bin/kill"
+fi
+SIG=TERM
+DONE="stopped"
+MODE=""
+
+usage ()
+{
+ cat <<!EOF!
+usage: $0 [option] [provider]
+options:
+ -r Cause pppd to drop the line and redial.
+ -d Toggle the state of pppd's debug option.
+ -c Cause pppd to renegotiate compression.
+ -a Stop all pppd's. 'provider' will be ignored.
+ -h Print this help summary and exit.
+ -v Print version and exit.
+ none Stop pppd.
+
+Options may not be combined.
+
+If 'provider' is omitted pppd will be stopped or signalled if and only if
+there is exactly one running unless the '-a' option was given. If
+'provider' is supplied the pppd controlling the connection to that
+provider will be stopped or signalled.
+!EOF!
+}
+
+# Get option. If there are none replace the "?" that getopts puts in
+# FLAG on error with "null".
+getopts rdcavh FLAG
+if [ "$?" -ne 0 ]; then
+ FLAG="null"
+fi
+
+# Check for additional options. Should be none.
+getopts :rdcavh DUMMY
+if [ "$?" -eq 0 ]; then
+ echo "$0: Illegal option -- ${OPTARG}."
+ exit 1
+fi
+
+case $FLAG in
+ "r") SIG=HUP; DONE=signalled; shift ;;
+ "d") SIG=USR1; DONE=signalled; shift ;;
+ "c") SIG=USR2; DONE=signalled; shift ;;
+ "a") MODE="all"; shift ;;
+ "v") echo "$0$Revision: 1.1 $_TrickToPrint_RCS_Revision"; exit 0 ;;
+ "h") usage; exit 0 ;;
+ "?") exit 1;
+esac
+
+# Get the PIDs of all the pppds running. Could also get these from
+# /var/run, but pppd doesn't create .pid files until ppp is up.
+PIDS=`pidof pppd`
+
+# poff is pointless if pppd isn't running.
+if test -z "$PIDS"; then
+ echo "$0: No pppd is running. None ${DONE}."
+ exit 1
+fi
+
+# Find out how many pppd's are running.
+N=`echo "$PIDS" | wc -w`
+
+# If there are no arguments we can't do anything if there is more than one
+# pppd running.
+if test "$#" -eq 0 -a "$N" -gt 1 -a $FLAG != "a" ; then
+ echo "$0: More than one pppd running and no "-a" option and
+no arguments supplied. Nothing ${DONE}."
+ exit 1
+fi
+
+# If either there are no arguments or '-a' was specified kill all the
+# pppd's.
+if test "$#" -eq 0 -o "$MODE" = "all" ; then
+ $KILL -$SIG $PIDS || {
+ echo "$0: $KILL failed. None ${DONE}."
+ exit 1
+ }
+ exit 0
+fi
+
+# There is an argument, so kill the pppd started on that provider.
+PID=`ps axw | grep "[ /]pppd call $1 *\$" | awk '{print $1}'`
+if test -n "$PID" ; then
+ $KILL -$SIG $PID || {
+ echo "$0: $KILL failed. None ${DONE}."
+ exit 1
+ }
+else
+ echo "$0: I could not find a pppd process for provider '$1'. None ${DONE}."
+ exit 1
+fi
+exit 0
diff --git a/core/ppp/pon b/core/ppp/pon
new file mode 100644
index 000000000..36885050b
--- /dev/null
+++ b/core/ppp/pon
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+case "$1" in
+ -*) echo "
+Usage: pon [provider] [arguments]
+
+If you specify one argument, a PPP connection will be started using
+settings from the appropriate file in the /etc/ppp/peers/ directory, and
+any additional arguments supplied will be passed as extra arguments to
+pppd.
+"
+ exit 0
+ ;;
+esac
+
+if [ -z "$1" -a ! -f /etc/ppp/peers/provider ]; then
+ echo "
+Please configure /etc/ppp/peers/provider or use a command line argument to
+use another file in /etc/ppp/peers/ directory.
+"
+ exit 1
+fi
+
+if [ "$1" -a ! -f "/etc/ppp/peers/$1" ]; then
+ echo "
+The file /etc/ppp/peers/$1 does not exist.
+"
+ exit 1
+fi
+
+exec /usr/sbin/pppd call ${@:-provider}
+
diff --git a/core/ppp/pon.1 b/core/ppp/pon.1
new file mode 100644
index 000000000..bb3220564
--- /dev/null
+++ b/core/ppp/pon.1
@@ -0,0 +1,121 @@
+.\" This manual is published under the GPL.
+.\" All guidelines specified in the GPL apply here.
+.\" To get an ascii file:
+.\" groff -man -Tascii pon.1 > pon.txt
+.\"
+.TH PON 1 "July 2000" "Debian Project" "Debian PPPD"
+.SH NAME
+pon, poff, plog \- starts up, shuts down or lists the log of PPP connections
+.SH SYNOPSIS
+.B pon
+[ isp-name [ options ] ]
+.br
+.B poff
+[ -r ] [ -d ] [ -c ] [ -a ] [ -h ] [ isp-name ]
+.br
+.B plog
+[ arguments ]
+.SH DESCRIPTION
+This manual page describes the \fBpon\fP, \fBplog\fP and \fBpoff\fP
+scripts, which allow users to control PPP connections.
+..
+.SS pon
+\fBpon\fP, invoked without arguments, runs the \fI/etc/ppp/ppp_on_boot\fP
+file, if it exists and is executable. Otherwise, a PPP connection will be
+started using configuration from \fI/etc/ppp/peers/provider\fP.
+This is the default behaviour unless an \fBisp-name\fP argument is given.
+.PP
+For instance, to use ISP configuration "myisp" run:
+.IP
+pon myisp
+.PP
+\fBpon\fP will then use the options file \fI/etc/ppp/peers/myisp\fP.
+You can pass additional \fBoptions\fP after the ISP name, too.
+\fBpon\fP can be used to run multiple, simultaneous PPP connections.
+..
+.SS poff
+\fBpoff\fP closes a PPP connection. If more than one PPP connection exists,
+the one named in the argument to \fBpoff\fP will be killed, e.g.
+.IP
+poff myprovider2
+.PP
+will terminate the connection to myprovider2, and leave the PPP connections
+to e.g. "myprovider1" or "myprovider3" up and running.
+.PP
+\fBpoff\fP takes the following command line options:
+.RS
+.TP
+.B "\-r"
+causes the connection to be redialed after it is dropped.
+.TP
+.B "\-d"
+toggles the state of pppd's debug option.
+.TP
+.B "\-c"
+causes
+.BR pppd (8)
+to renegotiate compression.
+.TP
+.B "\-a"
+stops all running ppp connections. If the argument \fBisp-name\fP
+is given it will be ignored.
+.TP
+.B "\-h"
+displays help information.
+.TP
+.B "\-v"
+prints the version and exits.
+.PP
+If no argument is given, \fBpoff\fP will stop or signal pppd if and only
+if there is exactly one running. If more than one connection is active,
+it will exit with an error code of 1.
+..
+.SS plog
+\fBplog\fP shows you the last few lines of \fI/var/log/ppp.log\fP. If that
+file doesn't exist, it shows you the last few lines of your
+\fI/var/log/syslog\fP file, but excluding the lines not generated by pppd.
+This script makes use of the
+.BR tail (1)
+command, so arguments that can be passed to
+.BR tail (1)
+can also be passed to \fBplog\fP.
+.PP
+Note: the \fBplog\fP script can only be used by root or another system
+administrator in group "adm", due to security reasons. Also, to have all
+pppd-generated information in one logfile, that plog can show, you need the
+following line in your \fI/etc/syslog.conf\fP file:
+.PP
+local2.* -/var/log/ppp.log
+.RE
+.SH FILES
+.TP
+.I /etc/ppp/options
+PPPd system options file.
+.TP
+.I /etc/ppp/pap-secrets
+System PAP passwords file.
+.TP
+.I /etc/ppp/chap-secrets
+System CHAP passwords file.
+.TP
+.I /etc/ppp/peers/
+Directory holding the peer options files. The default file is called
+\fIprovider\fP.
+.TP
+.I /etc/chatscripts/provider
+The chat script invoked from the default \fI/etc/ppp/peers/provider\fP.
+.TP
+.I /var/log/ppp.log
+The default PPP log file.
+.SH AUTHORS
+The p-commands were written by Christoph Lameter <clameter@debian.org>.
+Updated and revised by Philip Hands <phil@hands.com>.
+.br
+This manual was written by Othmar Pasteka <othmar@tron.at>. Modified
+by Rob Levin <lilo@openprojects.net>, with some extensions taken from
+the old p-commands manual written by John Hasler <jhasler@debian.org>.
+.SH "SEE ALSO"
+.BR pppd (8),
+.BR chat (8),
+.BR tail (1).
+
diff --git a/core/ppp/ppp b/core/ppp/ppp
new file mode 100644
index 000000000..16e01bad7
--- /dev/null
+++ b/core/ppp/ppp
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/pppd`
+case "$1" in
+ start)
+ stat_busy "Starting PPP daemon"
+ [ -z "$PID" ] && /usr/bin/pon
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ppp
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PPP daemon"
+ [ ! -z "$PID" ] && poff -a &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ppp
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/pptpclient/PKGBUILD b/core/pptpclient/PKGBUILD
new file mode 100644
index 000000000..85bf0544e
--- /dev/null
+++ b/core/pptpclient/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 99891 2010-11-19 12:45:55Z allan $
+# Maintainer: Daniel Isenmann <daniel @ archlinux.org>
+# Contributor: Mark Nikkel <mnikkel@gmail.com>
+
+pkgname=pptpclient
+pkgver=1.7.2
+pkgrel=3
+pkgdesc="Client for the proprietary Microsoft Point-to-Point Tunneling Protocol, PPTP."
+arch=('i686' 'x86_64')
+url="http://pptpclient.sourceforge.net/"
+license=('GPL')
+depends=('ppp' 'iproute2')
+backup=(etc/ppp/options.pptp)
+source=(http://downloads.sourceforge.net/sourceforge/pptpclient/pptp-$pkgver.tar.gz)
+md5sums=('4c3d19286a37459a632c7128c92a9857')
+
+build() {
+ cd $srcdir/pptp-$pkgver
+
+ # use our CFLAGS and LDFLAGS
+ sed -i -e "/CFLAGS =/ c\CFLAGS = ${CFLAGS}" Makefile
+ sed -i -e "/LDFLAGS =/ c\LDFLAGS = ${LDFLAGS}" Makefile
+
+ # adjust ip path
+ sed -i 's#/bin/ip#/usr/sbin/ip#' routing.c
+
+ make
+}
+
+package() {
+ cd $srcdir/pptp-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/core/procinfo-ng/PKGBUILD b/core/procinfo-ng/PKGBUILD
new file mode 100644
index 000000000..f908879af
--- /dev/null
+++ b/core/procinfo-ng/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 102696 2010-12-09 23:17:33Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+pkgname=procinfo-ng
+pkgver=2.0.304
+pkgrel=2
+pkgdesc="Displays useful information from /proc"
+arch=('i686' 'x86_64')
+url="http://procinfo-ng.sourceforge.net/"
+license=('GPL2' 'LGPL2.1')
+depends=('ncurses' 'perl')
+provides=('procinfo')
+conflicts=('procinfo')
+replaces=('procinfo')
+source=(http://downloads.sourceforge.net/project/procinfo-ng/procinfo-ng/2.0.304/${pkgname}-${pkgver}.tar.bz2
+ ftp://ftp.archlinux.org/other/procinfo-ng/procinfo-18.tar.gz)
+md5sums=('ed018fe37becc36ceb1ebe3ed909c4d2' '27658d0a69040aca05a65b9888599d50')
+sha1sums=('da2176a505bcdf65c4eadcf5a2e056fb7a3f84af' '8bc75669cbd27775c3a837209425c5ce76238ebc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # install tools from old procinfo package
+ cd "${srcdir}/procinfo-18"
+ install -m755 lsdev.pl "${pkgdir}/usr/bin/lsdev"
+ install -m755 socklist.pl "${pkgdir}/usr/bin/socklist"
+ install -m644 lsdev.8 "${pkgdir}/usr/share/man/man8/lsdev.8"
+ install -m644 socklist.8 "${pkgdir}/usr/share/man/man8/socklist.8"
+}
diff --git a/core/procps/PKGBUILD b/core/procps/PKGBUILD
new file mode 100644
index 000000000..225e4db6f
--- /dev/null
+++ b/core/procps/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 102904 2010-12-12 23:53:18Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=procps
+pkgver=3.2.8
+pkgrel=3
+pkgdesc="Utilities for monitoring your system and processes on your system"
+arch=('i686' 'x86_64')
+url="http://procps.sourceforge.net/"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('ncurses')
+backup=('etc/sysctl.conf')
+source=(http://procps.sourceforge.net/procps-${pkgver}.tar.gz sysctl.conf\
+ groff-top-manpage.patch procps-3.2.7-free-hlmem.patch\
+ procps-3.2.7-longcmd.patch procps-3.2.7-ps-man-fmt.patch\
+ procps-3.2.7-psman.patch procps-3.2.7-slabtop-once.patch\
+ procps-3.2.7-top-clrscr.patch procps-3.2.7-top-cpu0.patch\
+ procps-3.2.7-top-env-cpuloop.patch procps-3.2.7-top-manpage.patch\
+ procps-3.2.7-top-remcpu.patch procps-3.2.7-top-sorthigh.patch\
+ procps-3.2.7-watch-unicode.patch procps-3.2.7-w-best.patch\
+ procps-3.2.8+gmake-3.82.patch procps-3.2.8-setlocale.patch\
+ procps-3.2.8-threads.patch procps-3.2.8-linux-ver-init.patch)
+md5sums=('9532714b6846013ca9898984ba4cd7e0' '9be3a131a7068aae11418e6dd99e2221'\
+ '111f33c3fd8fab2fed36c279065fefff' '81ac7fb50fcdb03e57055c7b763bb275'\
+ 'cb020bfd46689908b56bf3fc5a55828a' '8d74603be1e426037a1e2c2743ef7345'\
+ 'bfb7530e248b86f1abf32bca09f28b68' '9a8c81aee89531b4a72f4e4e44fb055d'\
+ '511023a3f39a90aa6efcf77120d32eb6' 'f29ef0b3a74767469651c9c335f09403'\
+ 'd49673c19fa1a70f8e03fc1c24233458' '669955ca7fa7688e1c3ae7e723e0a567'\
+ 'f77626450619b4bebbd67b9e164f1857' 'c71b853144b4d22b861e435362845091'\
+ '105fbbf179e63b7ca960a2dd2e5fab5b' '7f2540d2d4a2a1a6af70e9a980835753'\
+ '8d1025ae906bf0320ad9bb5095f1b970' '2e6cce598f11d75becebbe58dbe9cbd4'\
+ 'e2e5393d49034435c68469d008d56489' '6f46c8ea37c447a2d478883e89bf4d25')
+sha1sums=('a0c86790569dec26b5d9037e8868ca907acc9829' '9b9a314010d042b5aa487893c06f361531525e6a'\
+ 'bdd627f602ed2e38994d49309de0edbd90b41aff' 'da1b9e61f8df4a8e23a7032b245dd99e32e2c01c'\
+ '1a656d8094be41e019b2a9598b07c8a3d47f9de3' 'ba9ad9f0bde3e84484b5a0238e53534438e924be'\
+ '9944224ed2f5bd7d7fb505127bd71d6f01d88373' '954026785a9e6c90d796e93563fcea2a693691e8'\
+ '8582cd15346fa939f3fd01081620de0ffc617335' '80e31310da53baf095e905d94485324932e433df'\
+ '15fe886a2b4bed5885e6d457954e1145d1dcd2a2' '16737700b22eec8f4e8d16bce099f4b1662501e2'\
+ 'bce21809ee0cb917ddf5b0c0bf2a91ea50feb0c6' '1be00d71e8e16ff2d656e5dd1f9988f2f3c0d5a0'\
+ '52068a433535ec3d5d974141be3d6d3b6a41725a' '3a8f1ba912112d7520becb28746e97b11d9b0c86'\
+ '3a4908ed8dbc936e39cb9094af8098ef9e656581' '09b1f6a3f9691b9f1432549a7a74a90ee5cfbdde'\
+ '926b92913201f21c45d48436c0902cffc059ce27' '171d5352940200c209e0c2d43c17f01c02173a66')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../groff-top-manpage.patch
+ patch -p1 < ../procps-3.2.7-top-manpage.patch
+ patch -p1 < ../procps-3.2.7-free-hlmem.patch
+ patch -p1 < ../procps-3.2.7-ps-man-fmt.patch
+ patch -p1 < ../procps-3.2.7-psman.patch
+ patch -p1 < ../procps-3.2.7-longcmd.patch
+ patch -p1 < ../procps-3.2.7-slabtop-once.patch
+ patch -p1 < ../procps-3.2.7-top-clrscr.patch
+ patch -p1 < ../procps-3.2.7-top-cpu0.patch
+ patch -p1 < ../procps-3.2.7-top-env-cpuloop.patch
+ patch -p1 < ../procps-3.2.7-top-remcpu.patch
+ patch -p1 < ../procps-3.2.7-top-sorthigh.patch
+ patch -p1 < ../procps-3.2.7-watch-unicode.patch
+ patch -p1 < ../procps-3.2.7-w-best.patch
+ patch -p1 < ../procps-3.2.8+gmake-3.82.patch
+ patch -p1 < ../procps-3.2.8-setlocale.patch
+ patch -p1 < ../procps-3.2.8-threads.patch
+ patch -p0 < ../procps-3.2.8-linux-ver-init.patch
+ sed -i "s:\$(lib64):lib:" Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" ldconfig=/bin/true install
+ install -D -m644 "${srcdir}/sysctl.conf" "${pkgdir}/etc/sysctl.conf"
+ install -d "${pkgdir}/usr/include/proc"
+ install -m644 proc/*.h "${pkgdir}/usr/include/proc"
+}
diff --git a/core/procps/groff-top-manpage.patch b/core/procps/groff-top-manpage.patch
new file mode 100644
index 000000000..625053c72
--- /dev/null
+++ b/core/procps/groff-top-manpage.patch
@@ -0,0 +1,39 @@
+diff -Naur procps-3.2.8-orig//top.1 procps-3.2.8/top.1
+--- procps-3.2.8-orig//top.1 2010-11-19 00:43:13.000000000 -0500
++++ procps-3.2.8/top.1 2010-11-19 00:44:06.000000000 -0500
+@@ -42,7 +42,7 @@
+ .ds EM \ \fB\-\-\ \fR
+ \# - these two are for chuckles, makes great grammar
+ .ds Me top
+-.ds ME \fBtop\fR
++.ds MM \fBtop\fR
+ \# - other misc strings for consistent usage/emphasis
+ .ds F \fIOff\fR
+ .ds O \fIOn\fR
+@@ -85,7 +85,7 @@
+ .\" ----------------------------------------------------------------------
+ .SH SYNOPSIS
+ .\" ----------------------------------------------------------------------
+-\*(ME \-\fBhv\fR | \-\fBbcHisS\fR \-\fBd\fI delay\fR \-\fBn\fI
++\*(MM \-\fBhv\fR | \-\fBbcHisS\fR \-\fBd\fI delay\fR \-\fBn\fI
+ iterations\fR \-\fBp\fI pid\fR [,\fI pid\fR ...]
+
+ The traditional switches '-' and whitespace are optional.
+@@ -94,7 +94,7 @@
+ .\" ----------------------------------------------------------------------
+ .SH DESCRIPTION
+ .\" ----------------------------------------------------------------------
+-The \*(ME program provides a dynamic real-time view of a running system.
++The \*(MM program provides a dynamic real-time view of a running system.
+ It can display\fB system\fR summary information as well as a list of\fB
+ tasks\fR currently being managed by the Linux kernel.
+ The types of system summary information shown and the types, order and
+@@ -104,7 +104,7 @@
+ The program provides a limited interactive interface for process
+ manipulation as well as a much more extensive interface for personal
+ configuration \*(EM encompassing every aspect of its operation.
+-And while \*(ME is referred to throughout this document, you are free
++And while \*(MM is referred to throughout this document, you are free
+ to name the program anything you wish.
+ That new name, possibly an alias, will then be reflected on \*(Me's display
+ and used when reading and writing a \*(CF.
diff --git a/core/procps/procps-3.2.7-free-hlmem.patch b/core/procps/procps-3.2.7-free-hlmem.patch
new file mode 100644
index 000000000..c5ef9cc4c
--- /dev/null
+++ b/core/procps/procps-3.2.7-free-hlmem.patch
@@ -0,0 +1,23 @@
+diff -up procps-3.2.7/free.1.hlmem procps-3.2.7/free.1
+--- procps-3.2.7/free.1.hlmem 2009-02-24 10:54:35.000000000 +0100
++++ procps-3.2.7/free.1 2009-02-24 11:00:26.000000000 +0100
+@@ -7,7 +7,7 @@ free \- Display amount of free and used
+ .SH SYNOPSIS
+ .BR "free " [ "\-b" " | " "\-k" " | " "\-m" "] [" "\-o" "] [" "\-s"
+ .I delay
+-.RB "] [" "\-t" "] [" "\-V" ]
++.RB "] [" "\-t" "] [" "\-l" "] [" "\-V" "]
+ .SH DESCRIPTION
+ \fBfree\fP displays the total amount of free and used physical and swap
+ memory in the system, as well as the buffers used by the kernel.
+@@ -28,7 +28,9 @@ may actually specify any floating point
+ .BR usleep (3)
+ is used for microsecond resolution delay times.
+ .PP
+-The \fB\-V\fP displays version information.
++The \fB-l\fP switch shows detailed low and high memory statistics.
++.PP
++The \fB\-V\fP switch displays version information.
+ .SH FILES
+ .ta
+ .IR /proc/meminfo "\-\- memory information"
diff --git a/core/procps/procps-3.2.7-longcmd.patch b/core/procps/procps-3.2.7-longcmd.patch
new file mode 100644
index 000000000..7c4fdca36
--- /dev/null
+++ b/core/procps/procps-3.2.7-longcmd.patch
@@ -0,0 +1,22 @@
+--- procps-3.2.7/proc/readproc.c.kzak 2006-06-16 10:18:13.000000000 +0200
++++ procps-3.2.7/proc/readproc.c 2006-09-27 11:25:13.000000000 +0200
+@@ -432,14 +432,17 @@
+ if(fd==-1) return NULL;
+
+ /* read whole file into a memory buffer, allocating as we go */
+- while ((n = read(fd, buf, sizeof buf - 1)) > 0) {
++ while ((n = read(fd, buf, sizeof buf - 1)) >= 0) {
+ if (n < (int)(sizeof buf - 1))
+ end_of_file = 1;
+- if (n == 0 && rbuf == 0)
++ if (n == 0 && rbuf == 0) {
++ close(fd);
+ return NULL; /* process died between our open and read */
++ }
+ if (n < 0) {
+ if (rbuf)
+ free(rbuf);
++ close(fd);
+ return NULL; /* read error */
+ }
+ if (end_of_file && buf[n-1]) /* last read char not null */
diff --git a/core/procps/procps-3.2.7-ps-man-fmt.patch b/core/procps/procps-3.2.7-ps-man-fmt.patch
new file mode 100644
index 000000000..f3a80dca7
--- /dev/null
+++ b/core/procps/procps-3.2.7-ps-man-fmt.patch
@@ -0,0 +1,12 @@
+diff -up procps-3.2.7/ps/ps.1.ps-man-fmt procps-3.2.7/ps/ps.1
+--- procps-3.2.7/ps/ps.1.ps-man-fmt 2008-09-01 11:43:18.000000000 +0200
++++ procps-3.2.7/ps/ps.1 2008-09-01 11:43:41.000000000 +0200
+@@ -30,7 +30,7 @@
+ .\" the space needed for the 1st two columns.
+ .\" Making it messy: inches, ens, points, scaled points...
+ .\"
+-.nr ColSize ((\n(.lu-\n(.iu/\n(.Hu-20u)n)
++.nr ColSize ((\n[.l] - \n[.i]) / 1n - 20)
+ .\"
+ .\" This is for command options
+ .nr OptSize (16u)
diff --git a/core/procps/procps-3.2.7-psman.patch b/core/procps/procps-3.2.7-psman.patch
new file mode 100644
index 000000000..7ba6cff34
--- /dev/null
+++ b/core/procps/procps-3.2.7-psman.patch
@@ -0,0 +1,22 @@
+--- procps-3.2.7/ps/ps.1.psman 2007-06-20 08:30:47.000000000 +0200
++++ procps-3.2.7/ps/ps.1 2007-06-20 08:50:10.000000000 +0200
+@@ -21,8 +21,8 @@
+ .\" See /usr/share/groff/current/tmac/an-old.tmac for what these do.
+ .\" Setting them to zero provides extra space, but only do that for
+ .\" plain text output. PostScript and such will remain indented.
+-.if n .nr IN 0n
+-.if n .nr an-prevailing-indent 0n
++.\" .if n .nr IN 0n
++.\" .if n .nr an-prevailing-indent 0n
+ .\"
+ .\"
+ .\" ColSize is used for the format spec table.
+@@ -838,6 +838,8 @@
+ .\" lB1 lB1 lBw(5.5i)
+ .\" lB1 l1 l.
+ .\"
++.RE
++
+ .TS
+ expand;
+ lB1 lB1 lBw(\n[ColSize]n)
diff --git a/core/procps/procps-3.2.7-slabtop-once.patch b/core/procps/procps-3.2.7-slabtop-once.patch
new file mode 100644
index 000000000..d3319cfe7
--- /dev/null
+++ b/core/procps/procps-3.2.7-slabtop-once.patch
@@ -0,0 +1,113 @@
+diff -up procps-3.2.7/slabtop.c.once procps-3.2.7/slabtop.c
+--- procps-3.2.7/slabtop.c.once 2008-12-11 13:24:52.000000000 +0100
++++ procps-3.2.7/slabtop.c 2008-12-11 13:33:12.000000000 +0100
+@@ -268,9 +268,24 @@ static void parse_input(char c)
+ }
+ }
+
++/*printw or printf depending on the context*/
++static void printwf(int once, const char *s,...)
++{
++va_list va;
++
++va_start(va,s);
++if(once)
++ vprintf(s,va);
++else
++ vwprintw(stdscr, s, va);
++va_end(va);
++}
++
++
+ int main(int argc, char *argv[])
+ {
+ int o;
++ int once = 0;
+ unsigned short old_rows;
+ struct slab_info *slab_list = NULL;
+
+@@ -307,6 +322,7 @@ int main(int argc, char *argv[])
+ break;
+ case 'o':
+ delay = 0;
++ once = 1;
+ break;
+ case 'V':
+ display_version();
+@@ -322,12 +338,18 @@ int main(int argc, char *argv[])
+ if (tcgetattr(0, &saved_tty) == -1)
+ perror("tcgetattr");
+
+- initscr();
+- term_size(0);
+- old_rows = rows;
+- resizeterm(rows, cols);
+- signal(SIGWINCH, term_size);
+- signal(SIGINT, sigint_handler);
++ if(!once) {
++ initscr();
++ term_size(0);
++ old_rows = rows;
++ resizeterm(rows, cols);
++ signal(SIGWINCH, term_size);
++ signal(SIGINT, sigint_handler);
++ } else {
++ old_rows = rows;
++ rows = 80;
++ cols = 24;
++ }
+
+ do {
+ struct slab_info *curr;
+@@ -341,12 +363,12 @@ int main(int argc, char *argv[])
+ break;
+
+ if (old_rows != rows) {
+- resizeterm(rows, cols);
++ if(!once) resizeterm(rows, cols);
+ old_rows = rows;
+ }
+
+ move(0,0);
+- printw( " Active / Total Objects (%% used) : %d / %d (%.1f%%)\n"
++ printwf(once, " Active / Total Objects (%% used) : %d / %d (%.1f%%)\n"
+ " Active / Total Slabs (%% used) : %d / %d (%.1f%%)\n"
+ " Active / Total Caches (%% used) : %d / %d (%.1f%%)\n"
+ " Active / Total Size (%% used) : %.2fK / %.2fK (%.1f%%)\n"
+@@ -360,15 +382,15 @@ int main(int argc, char *argv[])
+
+ slab_list = slabsort(slab_list);
+
+- attron(A_REVERSE);
+- printw( "%6s %6s %4s %8s %6s %8s %10s %-23s\n",
++ if(!once) attron(A_REVERSE);
++ printwf(once, "%6s %6s %4s %8s %6s %8s %10s %-23s\n",
+ "OBJS", "ACTIVE", "USE", "OBJ SIZE", "SLABS",
+ "OBJ/SLAB", "CACHE SIZE", "NAME");
+- attroff(A_REVERSE);
++ if(!once) attroff(A_REVERSE);
+
+ curr = slab_list;
+ for (i = 0; i < rows - 8 && curr->next; i++) {
+- printw("%6u %6u %3u%% %7.2fK %6u %8u %9uK %-23s\n",
++ printwf(once, "%6u %6u %3u%% %7.2fK %6u %8u %9uK %-23s\n",
+ curr->nr_objs, curr->nr_active_objs, curr->use,
+ curr->obj_size / 1024.0, curr->nr_slabs,
+ curr->objs_per_slab, (unsigned)(curr->cache_size / 1024),
+@@ -376,7 +398,7 @@ int main(int argc, char *argv[])
+ curr = curr->next;
+ }
+
+- refresh();
++ if(!once) refresh();
+ put_slabinfo(slab_list);
+
+ FD_ZERO(&readfds);
+@@ -392,6 +414,6 @@ int main(int argc, char *argv[])
+
+ tcsetattr(0, TCSAFLUSH, &saved_tty);
+ free_slabinfo(slab_list);
+- endwin();
++ if(!once) endwin();
+ return 0;
+ }
diff --git a/core/procps/procps-3.2.7-top-clrscr.patch b/core/procps/procps-3.2.7-top-clrscr.patch
new file mode 100644
index 000000000..8a0256846
--- /dev/null
+++ b/core/procps/procps-3.2.7-top-clrscr.patch
@@ -0,0 +1,19 @@
+diff -up procps-3.2.7/top.c.clrscr procps-3.2.7/top.c
+--- procps-3.2.7/top.c.clrscr 2008-04-08 08:49:48.000000000 +0200
++++ procps-3.2.7/top.c 2008-04-08 08:50:07.000000000 +0200
+@@ -2109,6 +2109,7 @@ static void fields_sort (void)
+ *p = x + 'A';
+ Curwin->rc.sortindx = x;
+ putp(Cap_curs_norm);
++ putp(Cap_clr_scr);
+ }
+
+
+@@ -2134,6 +2135,7 @@ static void fields_toggle (void)
+ *p = i + 'A';
+ }
+ putp(Cap_curs_norm);
++ putp(Cap_clr_scr);
+ }
+
+ /*###### Windows/Field Groups support #################################*/
diff --git a/core/procps/procps-3.2.7-top-cpu0.patch b/core/procps/procps-3.2.7-top-cpu0.patch
new file mode 100644
index 000000000..eb81121c5
--- /dev/null
+++ b/core/procps/procps-3.2.7-top-cpu0.patch
@@ -0,0 +1,20 @@
+--- procps-3.2.7/top.c.orig 2007-09-07 21:28:41.000000000 +0100
++++ procps-3.2.7/top.c 2007-09-07 21:29:15.000000000 +0100
+@@ -959,8 +959,15 @@
+
+ // and just in case we're 2.2.xx compiled without SMP support...
+ if (Cpu_tot == 1) {
+- cpus[1].id = 0;
+- memcpy(cpus, &cpus[1], sizeof(CPU_t));
++ cpus[0].id = cpus[1].id = 0;
++ cpus[0].u = cpus[1].u;
++ cpus[0].n = cpus[1].n;
++ cpus[0].s = cpus[1].s;
++ cpus[0].i = cpus[1].i;
++ cpus[0].w = cpus[1].w;
++ cpus[0].x = cpus[1].x;
++ cpus[0].y = cpus[1].y;
++ cpus[0].z = cpus[1].z;
+ }
+
+ // now value each separate cpu's tics
diff --git a/core/procps/procps-3.2.7-top-env-cpuloop.patch b/core/procps/procps-3.2.7-top-env-cpuloop.patch
new file mode 100644
index 000000000..0034dcafb
--- /dev/null
+++ b/core/procps/procps-3.2.7-top-env-cpuloop.patch
@@ -0,0 +1,84 @@
+diff -up procps-3.2.7/top.c.p15 procps-3.2.7/top.c
+--- procps-3.2.7/top.c.p15 2008-09-01 11:37:51.000000000 +0200
++++ procps-3.2.7/top.c 2008-09-01 11:37:51.000000000 +0200
+@@ -121,6 +121,7 @@ static int No_ksyms = -1, // set t
+ Batch = 0, // batch mode, collect no input, dumb output
+ Loops = -1, // number of iterations, -1 loops forever
+ Secure_mode = 0; // set if some functionality restricted
++static int CPU_loop = 0; // wait for reliable CPU data
+
+ /* Some cap's stuff to reduce runtime calls --
+ to accomodate 'Batch' mode, they begin life as empty strings */
+@@ -1679,6 +1680,9 @@ static void before (char *me)
+ Fieldstab[P_PPD].fmts = pid_fmt;
+ Fieldstab[P_PPD].head = " PPID" + 10 - pid_digits;
+ }
++
++ if (( getenv("CPULOOP")) && ( atoi(getenv("CPULOOP")) == 1 ))
++ CPU_loop = 1;
+ }
+
+
+@@ -2978,6 +2981,7 @@ static proc_t **summary_show (void)
+ {
+ static proc_t **p_table = NULL;
+ static CPU_t *smpcpu = NULL;
++ static int first = 0;
+
+ // whoa first time, gotta' prime the pump...
+ if (!p_table) {
+@@ -3025,6 +3029,28 @@ static proc_t **summary_show (void)
+
+ smpcpu = cpus_refresh(smpcpu);
+
++ if (first==0 && CPU_loop)
++ {
++ int i;
++ CPU_t *cpu;
++ for (i = 0; i < Cpu_tot; i++) {
++ cpu = &smpcpu[i];
++ cpu->u_sav = cpu->u;
++ cpu->s_sav = cpu->s;
++ cpu->n_sav = cpu->n;
++ cpu->i_sav = cpu->i;
++ cpu->w_sav = cpu->w;
++ cpu->x_sav = cpu->x;
++ cpu->y_sav = cpu->y;
++ cpu->z_sav = cpu->z;
++ }
++ tv.tv_sec = Rc.delay_time;
++ tv.tv_usec = (Rc.delay_time - (int)Rc.delay_time) * 1000000;
++ select(0, NULL, NULL, NULL, &tv);
++
++ smpcpu = cpus_refresh(smpcpu);
++ }
++
+ if (CHKw(Curwin, View_CPUSUM)) {
+ // display just the 1st /proc/stat line
+ summaryhlp(&smpcpu[Cpu_tot], "Cpu(s):");
+@@ -3050,6 +3076,8 @@ static proc_t **summary_show (void)
+ }
+
+ SETw(Curwin, NEWFRAM_cwo);
++
++ first = 1;
+ return p_table;
+ }
+
+diff -up procps-3.2.7/top.1.p15 procps-3.2.7/top.1
+--- procps-3.2.7/top.1.p15 2008-09-01 11:37:51.000000000 +0200
++++ procps-3.2.7/top.1 2008-09-01 11:37:51.000000000 +0200
+@@ -1183,6 +1183,13 @@ Then ponder this:
+ Send bug reports to:
+ Albert D\. Cahalan, <albert@users.sf.net>
+
++The top command calculates Cpu(s) by looking at the change in CPU time values
++between samples. When you first run it, it has no previous sample to compare
++to, so these initial values are the percentages since boot. It means you need
++at least two loops or you have to ignore summary output from the first loop.
++This is problem for example for batch mode. There is a possible workaround if
++you define the CPULOOP=1 environment variable. The top command will be run one
++extra hidden loop for CPU data before standard output.
+
+ .\" ----------------------------------------------------------------------
+ .SH 8. HISTORY Former top
diff --git a/core/procps/procps-3.2.7-top-manpage.patch b/core/procps/procps-3.2.7-top-manpage.patch
new file mode 100644
index 000000000..4ce077946
--- /dev/null
+++ b/core/procps/procps-3.2.7-top-manpage.patch
@@ -0,0 +1,32 @@
+diff -up procps-3.2.7/top.1.cpudesc procps-3.2.7/top.1
+--- procps-3.2.7/top.1.cpudesc 2008-01-18 08:04:19.000000000 +0100
++++ procps-3.2.7/top.1 2008-01-18 08:15:49.000000000 +0100
+@@ -121,6 +121,7 @@
+ 2. FIELDS / Columns
+ a. DESCRIPTIONS of Fields
+ b. SELECTING and ORDERING Columns
++ c. SUMMARY Area Fields
+ 3. INTERACTIVE Commands
+ a. GLOBAL Commands
+ b. SUMMARY Area Commands
+@@ -540,6 +540,20 @@ You\fI move\fR a field to the\fB left\fR
+ upper case\fR letter and to the\fB right\fR with the\fB lower case\fR
+ letter.
+
++.\" ......................................................................
++.SS 2c. SUMMARY Area Fields
++.\" ----------------------------------------------------------------------
++The summary area fields describing CPU statistics are abbreviated. They provide
++information about times spent in:
++ \fR us = user mode
++ \fR sy = system mode
++ \fR ni = low priority user mode (nice)
++ \fR id = idle task
++ \fR wa = I/O waiting
++ \fR hi = servicing IRQs
++ \fR si = servicing soft IRQs
++ \fR st = steal (time given to other DomU instances)
++
+
+ .\" ----------------------------------------------------------------------
+ .SH 3. INTERACTIVE Commands
diff --git a/core/procps/procps-3.2.7-top-remcpu.patch b/core/procps/procps-3.2.7-top-remcpu.patch
new file mode 100644
index 000000000..88d14ef0a
--- /dev/null
+++ b/core/procps/procps-3.2.7-top-remcpu.patch
@@ -0,0 +1,98 @@
+--- procps-3.2.7/top.c.remcpu 2006-07-10 10:41:11.000000000 +0200
++++ procps-3.2.7/top.c 2006-07-10 10:41:35.000000000 +0200
+@@ -912,6 +912,7 @@
+ static CPU_t *cpus_refresh (CPU_t *cpus)
+ {
+ static FILE *fp = NULL;
++ static int cpu_max;
+ int i;
+ int num;
+ // enough for a /proc/stat CPU line (not the intr line)
+@@ -926,24 +927,29 @@
+ can hold tics representing the /proc/stat cpu summary (the first
+ line read) -- that slot supports our View_CPUSUM toggle */
+ cpus = alloc_c((1 + Cpu_tot) * sizeof(CPU_t));
++ cpu_max = Cpu_tot;
+ }
++ else if (cpu_max > Cpu_tot)
++ /* move saved CUPs summary to cpu_max possition */
++ memcpy(&cpus[cpu_max], &cpus[Cpu_tot], sizeof(CPU_t));
++
+ rewind(fp);
+ fflush(fp);
+
+ // first value the last slot with the cpu summary line
+ if (!fgets(buf, sizeof(buf), fp)) std_err("failed /proc/stat read");
+- cpus[Cpu_tot].x = 0; // FIXME: can't tell by kernel version number
+- cpus[Cpu_tot].y = 0; // FIXME: can't tell by kernel version number
+- cpus[Cpu_tot].z = 0; // FIXME: can't tell by kernel version number
++ cpus[cpu_max].x = 0; // FIXME: can't tell by kernel version number
++ cpus[cpu_max].y = 0; // FIXME: can't tell by kernel version number
++ cpus[cpu_max].z = 0; // FIXME: can't tell by kernel version number
+ num = sscanf(buf, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu",
+- &cpus[Cpu_tot].u,
+- &cpus[Cpu_tot].n,
+- &cpus[Cpu_tot].s,
+- &cpus[Cpu_tot].i,
+- &cpus[Cpu_tot].w,
+- &cpus[Cpu_tot].x,
+- &cpus[Cpu_tot].y,
+- &cpus[Cpu_tot].z
++ &cpus[cpu_max].u,
++ &cpus[cpu_max].n,
++ &cpus[cpu_max].s,
++ &cpus[cpu_max].i,
++ &cpus[cpu_max].w,
++ &cpus[cpu_max].x,
++ &cpus[cpu_max].y,
++ &cpus[cpu_max].z
+ );
+ if (num < 4)
+ std_err("failed /proc/stat read");
+@@ -955,7 +961,7 @@
+ }
+
+ // now value each separate cpu's tics
+- for (i = 0; 1 < Cpu_tot && i < Cpu_tot; i++) {
++ for (i = 0; ; i++) {
+ if (!fgets(buf, sizeof(buf), fp)) std_err("failed /proc/stat read");
+ cpus[i].x = 0; // FIXME: can't tell by kernel version number
+ cpus[i].y = 0; // FIXME: can't tell by kernel version number
+@@ -964,9 +970,35 @@
+ &cpus[i].id,
+ &cpus[i].u, &cpus[i].n, &cpus[i].s, &cpus[i].i, &cpus[i].w, &cpus[i].x, &cpus[i].y, &cpus[i].z
+ );
+- if (num < 4)
+- std_err("failed /proc/stat read");
++ if (num < 4) {
++ Cpu_tot = i;
++ break;
++ }
++ if (i == cpu_max - 1) {
++ // Bump cpu_max and extend cpus
++ cpu_max++;
++ cpus = realloc(cpus, (1 + cpu_max) * sizeof(CPU_t));
++ if (!cpus) std_err("realloc failed");
++ memcpy(&cpus[cpu_max], &cpus[cpu_max-1], sizeof(CPU_t));
++ }
++ }
++
++ if (cpu_max > Cpu_tot)
++ memcpy(&cpus[Cpu_tot], &cpus[cpu_max], sizeof(CPU_t));
++
++ // and just in case we're 2.2.xx compiled without SMP support...
++ if (Cpu_tot == 1) {
++ cpus[0].id = cpus[1].id = 0;
++ cpus[0].u = cpus[1].u;
++ cpus[0].n = cpus[1].n;
++ cpus[0].s = cpus[1].s;
++ cpus[0].i = cpus[1].i;
++ cpus[0].w = cpus[1].w;
++ cpus[0].x = cpus[1].x;
++ cpus[0].y = cpus[1].y;
++ cpus[0].z = cpus[1].z;
+ }
++
+ return cpus;
+ }
+
diff --git a/core/procps/procps-3.2.7-top-sorthigh.patch b/core/procps/procps-3.2.7-top-sorthigh.patch
new file mode 100644
index 000000000..e17df1e22
--- /dev/null
+++ b/core/procps/procps-3.2.7-top-sorthigh.patch
@@ -0,0 +1,37 @@
+--- procps-3.2.7/top.c.sorthigh 2007-02-05 09:06:34.000000000 +0100
++++ procps-3.2.7/top.c 2007-02-05 09:09:35.000000000 +0100
+@@ -3121,6 +3121,7 @@
+ unsigned w = Fieldstab[i].width;
+
+ int advance = (x==0) && !Rc.mode_altscr;
++ f += advance;
+
+ switch (i) {
+ case P_CMD:
+@@ -3179,7 +3180,7 @@
+ break;
+ case P_PRI:
+ if (unlikely(-99 > p->priority) || unlikely(999 < p->priority)) {
+- f = " RT";
++ f = advance ? " RT" : " RT";
+ MKCOL("");
+ } else
+ MKCOL((int)p->priority);
+@@ -3227,7 +3228,7 @@
+ break;
+ case P_WCH:
+ if (No_ksyms) {
+- f = " %08lx ";
++ f = advance ? "%08lx " : " %08lx ";
+ MKCOL((long)p->wchan);
+ } else {
+ MKCOL(lookup_wchan(p->wchan, p->XXXID));
+@@ -3236,7 +3237,7 @@
+
+ } /* end: switch 'procflag' */
+
+- rp = scat(rp, cbuf+advance);
++ rp = scat(rp, cbuf);
+ } /* end: for 'maxpflgs' */
+
+ PUFF(
diff --git a/core/procps/procps-3.2.7-w-best.patch b/core/procps/procps-3.2.7-w-best.patch
new file mode 100644
index 000000000..86b3e9328
--- /dev/null
+++ b/core/procps/procps-3.2.7-w-best.patch
@@ -0,0 +1,16 @@
+--- procps-3.2.7/w.c.kzak 2007-04-02 23:58:30.000000000 +0200
++++ procps-3.2.7/w.c 2007-04-03 00:09:15.000000000 +0200
+@@ -149,11 +149,11 @@
+ const proc_t *restrict const tmp = *pptr;
+ if(unlikely(tmp->tgid == u->ut_pid)) {
+ *found_utpid = 1;
+- best = tmp;
++ if (!best)
++ best = tmp;
+ }
+ if(tmp->tty != line) continue;
+ (*jcpu) += tmp->utime + tmp->stime;
+- secondbest = tmp;
+ /* same time-logic here as for "best" below */
+ if(! (secondbest && tmp->start_time <= secondbest->start_time) ){
+ secondbest = tmp;
diff --git a/core/procps/procps-3.2.7-watch-unicode.patch b/core/procps/procps-3.2.7-watch-unicode.patch
new file mode 100644
index 000000000..1b3d97488
--- /dev/null
+++ b/core/procps/procps-3.2.7-watch-unicode.patch
@@ -0,0 +1,139 @@
+diff -u procps-3.2.7/Makefile procps/Makefile
+--- procps-3.2.7/Makefile 2007-01-16 17:24:49.000000000 +0100
++++ procps/Makefile 2007-01-16 17:29:27.000000000 +0100
+@@ -67,7 +67,7 @@
+ # plus the top-level Makefile to make it work stand-alone.
+ _TARFILES := Makefile
+
+-CURSES := -lncurses
++CURSES := -lncursesw
+
+ # This seems about right for the dynamic library stuff.
+ # Something like this is probably needed to make the SE Linux
+diff -u procps-3.2.7/watch.c procps/watch.c
+--- procps-3.2.7/watch.c 2007-01-16 17:24:49.000000000 +0100
++++ procps/watch.c 2007-01-16 18:06:57.000000000 +0100
+@@ -28,6 +28,8 @@
+ #include <termios.h>
+ #include <locale.h>
+ #include "proc/procps.h"
++#include <wchar.h>
++#include <wctype.h>
+
+ #ifdef FORCE_8BIT
+ #undef isprint
+@@ -137,6 +139,27 @@
+ }
+ }
+
++static wint_t
++readwc(FILE *stream, mbstate_t *mbs)
++{
++ for (;;) {
++ int chr;
++ char c;
++ wchar_t wc;
++ size_t len;
++
++ chr = getc(stream);
++ if (chr == EOF)
++ return WEOF;
++ c = chr;
++ len = mbrtowc(&wc, &c, 1, mbs);
++ if (len == (size_t)-1)
++ memset(mbs, 0, sizeof(*mbs));
++ else if (len != (size_t)-2)
++ return wc;
++ }
++}
++
+ int
+ main(int argc, char *argv[])
+ {
+@@ -243,6 +266,7 @@
+ FILE *p;
+ int x, y;
+ int oldeolseen = 1;
++ mbstate_t mbs;
+
+ if (screen_size_changed) {
+ get_terminal_size();
+@@ -276,49 +300,63 @@
+ do_exit(2);
+ }
+
++ memset(&mbs, 0, sizeof(mbs));
+ for (y = show_title; y < height; y++) {
+ int eolseen = 0, tabpending = 0;
+ for (x = 0; x < width; x++) {
+- int c = ' ';
+- int attr = 0;
++ wint_t c = L' ';
++ int attr = 0, c_width;
++ cchar_t cc;
++ wchar_t wstr[2];
+
+ if (!eolseen) {
+ /* if there is a tab pending, just spit spaces until the
+ next stop instead of reading characters */
+ if (!tabpending)
+ do
+- c = getc(p);
+- while (c != EOF && !isprint(c)
+- && c != '\n'
+- && c != '\t');
+- if (c == '\n')
++ c = readwc(p, &mbs);
++ while (c != WEOF && !iswprint(c)
++ && c != L'\n'
++ && c != L'\t');
++ if (c == L'\n')
+ if (!oldeolseen && x == 0) {
+ x = -1;
+ continue;
+ } else
+ eolseen = 1;
+- else if (c == '\t')
++ else if (c == L'\t')
+ tabpending = 1;
+- if (c == EOF || c == '\n' || c == '\t')
+- c = ' ';
++ if (c == WEOF || c == L'\n' || c == L'\t')
++ c = L' ';
+ if (tabpending && (((x + 1) % 8) == 0))
+ tabpending = 0;
+ }
++ wstr[0] = c;
++ wstr[1] = 0;
++ setcchar (&cc, wstr, 0, 0, NULL);
+ move(y, x);
+ if (option_differences) {
+- chtype oldch = inch();
+- char oldc = oldch & A_CHARTEXT;
++ cchar_t oldc;
++ wchar_t oldwstr[2];
++ attr_t attrs;
++ short colors;
++
++ in_wch(&oldc);
++ getcchar(&oldc, oldwstr, &attrs, &colors, NULL);
+ attr = !first_screen
+- && ((char)c != oldc
++ && (wstr[0] != oldwstr[0]
+ ||
+ (option_differences_cumulative
+- && (oldch & A_ATTRIBUTES)));
++ && attrs));
+ }
+ if (attr)
+ standout();
+- addch(c);
++ add_wch(&cc);
+ if (attr)
+ standend();
++ c_width = wcwidth(c);
++ if (c_width > 1)
++ x += c_width - 1;
+ }
+ oldeolseen = eolseen;
+ }
diff --git a/core/procps/procps-3.2.8+gmake-3.82.patch b/core/procps/procps-3.2.8+gmake-3.82.patch
new file mode 100644
index 000000000..87ab13ea4
--- /dev/null
+++ b/core/procps/procps-3.2.8+gmake-3.82.patch
@@ -0,0 +1,14 @@
+Index: procps-3.2.8/Makefile
+===================================================================
+--- procps-3.2.8.orig/Makefile
++++ procps-3.2.8/Makefile
+@@ -174,7 +174,8 @@ INSTALL := $(BINFILES) $(MANFILES)
+ # want this rule first, use := on ALL, and ALL not filled in yet
+ all: do_all
+
+--include */module.mk
++-include proc/module.mk
++-include ps/module.mk
+
+ do_all: $(ALL)
+
diff --git a/core/procps/procps-3.2.8-linux-ver-init.patch b/core/procps/procps-3.2.8-linux-ver-init.patch
new file mode 100644
index 000000000..6d4039c91
--- /dev/null
+++ b/core/procps/procps-3.2.8-linux-ver-init.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/303120
+
+make sure the linux version constructor runs before the libproc constructor
+since the latter uses variables setup by the former
+
+fix by Chris Coleman
+
+Index: proc/version.c
+===================================================================
+RCS file: /cvsroot/procps/procps/proc/version.c,v
+retrieving revision 1.7
+diff -u -p -r1.7 version.c
+--- proc/version.c 9 Feb 2003 07:27:16 -0000 1.7
++++ proc/version.c 14 Nov 2010 00:22:44 -0000
+@@ -33,7 +33,7 @@ void display_version(void) {
+
+ int linux_version_code;
+
+-static void init_Linux_version(void) __attribute__((constructor));
++static void init_Linux_version(void) __attribute__((constructor(100)));
+ static void init_Linux_version(void) {
+ static struct utsname uts;
+ int x = 0, y = 0, z = 0; /* cleared in case sscanf() < 3 */
diff --git a/core/procps/procps-3.2.8-setlocale.patch b/core/procps/procps-3.2.8-setlocale.patch
new file mode 100644
index 000000000..c197fd38a
--- /dev/null
+++ b/core/procps/procps-3.2.8-setlocale.patch
@@ -0,0 +1,66 @@
+diff -Nur procps-3.2.8-orig/proc/sysinfo.c procps-3.2.8/proc/sysinfo.c
+--- procps-3.2.8-orig/proc/sysinfo.c 2008-03-24 05:33:43.000000000 +0100
++++ procps-3.2.8/proc/sysinfo.c 2009-12-18 22:50:52.000000000 +0100
+@@ -74,17 +74,19 @@
+ /***********************************************************************/
+ int uptime(double *restrict uptime_secs, double *restrict idle_secs) {
+ double up=0, idle=0;
+- char *restrict savelocale;
++ char *savelocale;
+
+ FILE_TO_BUF(UPTIME_FILE,uptime_fd);
+- savelocale = setlocale(LC_NUMERIC, NULL);
++ savelocale = strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC,"C");
+ if (sscanf(buf, "%lf %lf", &up, &idle) < 2) {
+ setlocale(LC_NUMERIC,savelocale);
++ free(savelocale);
+ fputs("bad data in " UPTIME_FILE "\n", stderr);
+ return 0;
+ }
+ setlocale(LC_NUMERIC,savelocale);
++ free(savelocale);
+ SET_IF_DESIRED(uptime_secs, up);
+ SET_IF_DESIRED(idle_secs, idle);
+ return up; /* assume never be zero seconds in practice */
+@@ -128,9 +130,9 @@
+ double up_1, up_2, seconds;
+ unsigned long long jiffies;
+ unsigned h;
+- char *restrict savelocale;
++ char *savelocale;
+
+- savelocale = setlocale(LC_NUMERIC, NULL);
++ savelocale = strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "C");
+ do{
+ FILE_TO_BUF(UPTIME_FILE,uptime_fd); sscanf(buf, "%lf", &up_1);
+@@ -141,6 +143,7 @@
+ /* uptime(&up_2, NULL); */
+ } while((long long)( (up_2-up_1)*1000.0/up_1 )); /* want under 0.1% error */
+ setlocale(LC_NUMERIC, savelocale);
++ free(savelocale);
+ jiffies = user_j + nice_j + sys_j + other_j;
+ seconds = (up_1 + up_2) / 2;
+ h = (unsigned)( (double)jiffies/seconds/smp_num_cpus );
+@@ -303,16 +306,18 @@
+ /***********************************************************************/
+ void loadavg(double *restrict av1, double *restrict av5, double *restrict av15) {
+ double avg_1=0, avg_5=0, avg_15=0;
+- char *restrict savelocale;
++ char *savelocale;
+
+ FILE_TO_BUF(LOADAVG_FILE,loadavg_fd);
+- savelocale = setlocale(LC_NUMERIC, NULL);
++ savelocale = strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "C");
+ if (sscanf(buf, "%lf %lf %lf", &avg_1, &avg_5, &avg_15) < 3) {
+ fputs("bad data in " LOADAVG_FILE "\n", stderr);
++ free(savelocale);
+ exit(1);
+ }
+ setlocale(LC_NUMERIC, savelocale);
++ free(savelocale);
+ SET_IF_DESIRED(av1, avg_1);
+ SET_IF_DESIRED(av5, avg_5);
+ SET_IF_DESIRED(av15, avg_15);
diff --git a/core/procps/procps-3.2.8-threads.patch b/core/procps/procps-3.2.8-threads.patch
new file mode 100644
index 000000000..2491aa4c0
--- /dev/null
+++ b/core/procps/procps-3.2.8-threads.patch
@@ -0,0 +1,49 @@
+diff -up procps-3.2.8/top.c.threads procps-3.2.8/top.c
+--- procps-3.2.8/top.c.threads 2009-10-01 07:14:43.000000000 -0400
++++ procps-3.2.8/top.c 2009-10-05 14:05:00.000000000 -0400
+@@ -1138,6 +1138,7 @@ static proc_t **procs_refresh (proc_t **
+ #define ENTsz sizeof(proc_t)
+ static unsigned savmax = 0; // first time, Bypass: (i)
+ proc_t *ptsk = (proc_t *)-1; // first time, Force: (ii)
++ proc_t *saved_ptsk;
+ unsigned curmax = 0; // every time (jeeze)
+ PROCTAB* PT;
+ static int show_threads_was_enabled = 0; // optimization
+@@ -1172,6 +1173,10 @@ static proc_t **procs_refresh (proc_t **
+ while (curmax < savmax) {
+ proc_t *ttsk;
+ if (unlikely(!(ptsk = readproc(PT, NULL)))) break;
++ if(!show_threads_was_enabled)
++ saved_ptsk = ptsk;
++ else
++ saved_ptsk = NULL;
+ show_threads_was_enabled = 1;
+ while (curmax < savmax) {
+ unsigned idx;
+@@ -1189,7 +1194,7 @@ static proc_t **procs_refresh (proc_t **
+ prochlp(ttsk);
+ ++curmax;
+ }
+- free(ptsk); // readproc() proc_t not used
++ if(!saved_ptsk) free(ptsk); // readproc() proc_t not used
+ }
+ }
+
+@@ -1208,7 +1213,8 @@ static proc_t **procs_refresh (proc_t **
+ else { // show each thread in a process separately
+ while (ptsk) {
+ proc_t *ttsk;
+- if (likely(ptsk = readproc(PT, NULL))) {
++ if (likely(ptsk = readproc(PT, NULL)) ||
++ unlikely(saved_ptsk && (ptsk = saved_ptsk)) ) {
+ show_threads_was_enabled = 1;
+ while (1) {
+ table = alloc_r(table, (curmax + 1) * PTRsz);
+@@ -1216,6 +1222,7 @@ static proc_t **procs_refresh (proc_t **
+ prochlp(ttsk);
+ table[curmax++] = ttsk;
+ }
++ saved_ptsk = NULL;
+ free(ptsk); // readproc() proc_t not used
+ }
+ }
diff --git a/core/procps/sysctl.conf b/core/procps/sysctl.conf
new file mode 100644
index 000000000..e3ebc7bad
--- /dev/null
+++ b/core/procps/sysctl.conf
@@ -0,0 +1,13 @@
+#
+# Kernel sysctl configuration
+#
+
+# Disable packet forwarding
+net.ipv4.ip_forward=0
+
+# Disable the magic-sysrq key (console security issues)
+kernel.sysrq = 0
+
+# Enable TCP SYN Cookie Protection
+net.ipv4.tcp_syncookies = 1
+
diff --git a/core/psmisc/ChangeLog b/core/psmisc/ChangeLog
new file mode 100644
index 000000000..d9fa6dfa5
--- /dev/null
+++ b/core/psmisc/ChangeLog
@@ -0,0 +1,40 @@
+2010-09-06 Eric Belanger <eric@archlinux.org>
+
+ * psmisc 22.13-1
+ * Upstream update
+
+2010-08-03 Eric Belanger <eric@archlinux.org>
+
+ * psmisc 22.12-1
+ * Upstream update
+ * Updated psmisc.checkregs.fix.patch
+
+2010-04-30 Eric Belanger <eric@archlinux.org>
+
+ * psmisc 22.11-1
+ * Upstream update
+
+2010-01-12 Eric Belanger <eric@archlinux.org>
+
+ * psmisc 22.10-1
+ * Upstream update
+
+2009-07-31 Eric Belanger <eric@archlinux.org>
+
+ * psmisc 22.8-1
+ * Upstream update
+
+2009-05-14 Eric Belanger <eric@archlinux.org>
+
+ * psmisc 22.7-1
+ * Upstream update
+
+2009-04-30 Eric Belanger <eric@archlinux.org>
+
+ * psmisc 22.6-2.1
+ * Added peekfd in x86_64 package (close FS#14514)
+
+2008-10-19 Eric Belanger <eric@archlinux.org>
+
+ * Updated url
+ * Added ChangeLog
diff --git a/core/psmisc/PKGBUILD b/core/psmisc/PKGBUILD
new file mode 100644
index 000000000..98e542a3a
--- /dev/null
+++ b/core/psmisc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 90063 2010-09-07 03:39:08Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=psmisc
+pkgver=22.13
+pkgrel=1
+pkgdesc="Miscellaneous procfs tools"
+arch=('i686' 'x86_64')
+url="http://psmisc.sourceforge.net/index.html"
+license=('GPL')
+groups=('base')
+depends=('glibc' 'ncurses')
+changelog=ChangeLog
+source=(http://downloads.sourceforge.net/psmisc/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e2c339e6b65b730042084023784a729e')
+sha1sums=('5d53c8bb5a279176be3515c07d833cdf116dd516')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/readline/PKGBUILD b/core/readline/PKGBUILD
new file mode 100644
index 000000000..0ed221910
--- /dev/null
+++ b/core/readline/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 111803 2011-03-01 02:29:23Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=readline
+_basever=6.2
+_patchlevel=001 #prepare for some patches
+pkgver=$_basever.$_patchlevel
+pkgrel=1
+pkgdesc="GNU readline library"
+arch=('i686' 'x86_64')
+url="http://tiswww.case.edu/php/chet/readline/rltop.html"
+license=('GPL')
+depends=('glibc' 'ncurses')
+backup=('etc/inputrc')
+source=(http://ftp.gnu.org/gnu/readline/readline-$_basever.tar.gz
+ inputrc)
+if [ $_patchlevel -gt 00 ]; then
+ for (( p=1; p<=$((10#${_patchlevel})); p++ )); do
+ source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-$_basever-patches/readline${_basever//./}-$(printf "%03d" $p))
+ done
+fi
+md5sums=('67948acb2ca081f23359d0256e9a271c'
+ '58d54966c1191db45973cb3191ac621a'
+ '83287d52a482f790dfb30ec0a8746669')
+
+build() {
+ cd ${srcdir}/${pkgname}-$_basever
+ for p in ../readline${_basever//./}-*; do
+ [ -e "$p" ] || continue
+ msg "applying patch ${p}"
+ patch -Np0 -i ${p}
+ done
+
+ # Remove RPATH from shared objects (FS#14366)
+ sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
+
+ # build with -fPIC for x86_64 (FS#15634)
+ [ $CARCH == "x86_64" ] && CFLAGS="$CFLAGS -fPIC"
+
+ ./configure --prefix=/usr --libdir=/lib
+ make SHLIB_LIBS=-lncurses
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-$_basever
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ${srcdir}/inputrc ${pkgdir}/etc/inputrc
+
+ # FHS recommends only shared libs in /lib
+ install -dm755 $pkgdir/usr/lib
+ mv $pkgdir/lib/*.a $pkgdir/usr/lib
+
+ # to make the linker find the shared lib and fix compile issues
+ cd ${pkgdir}/usr/lib
+ ln -sv /lib/libreadline.so .
+ ln -sv /lib/libhistory.so .
+}
diff --git a/core/readline/inputrc b/core/readline/inputrc
new file mode 100644
index 000000000..fd13a673b
--- /dev/null
+++ b/core/readline/inputrc
@@ -0,0 +1,36 @@
+# do not bell on tab-completion
+#set bell-style none
+
+set meta-flag on
+set input-meta on
+set convert-meta off
+set output-meta on
+
+$if mode=emacs
+
+# for linux console and RH/Debian xterm
+"\e[1~": beginning-of-line
+"\e[4~": end-of-line
+"\e[5~": beginning-of-history
+"\e[6~": end-of-history
+"\e[7~": beginning-of-line
+"\e[3~": delete-char
+"\e[2~": quoted-insert
+"\e[5C": forward-word
+"\e[5D": backward-word
+"\e\e[C": forward-word
+"\e\e[D": backward-word
+"\e[1;5C": forward-word
+"\e[1;5D": backward-word
+
+# for rxvt
+"\e[8~": end-of-line
+
+# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
+"\eOH": beginning-of-line
+"\eOF": end-of-line
+
+# for freebsd console
+"\e[H": beginning-of-line
+"\e[F": end-of-line
+$endif
diff --git a/core/readline/readline.install b/core/readline/readline.install
new file mode 100644
index 000000000..a8ffe80c6
--- /dev/null
+++ b/core/readline/readline.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(history.info readline.info rluserman.info)
+
+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/core/reiserfsprogs/PKGBUILD b/core/reiserfsprogs/PKGBUILD
new file mode 100644
index 000000000..6b7beb8f6
--- /dev/null
+++ b/core/reiserfsprogs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 102064 2010-12-04 10:58:12Z allan $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=reiserfsprogs
+pkgver=3.6.21
+pkgrel=3
+pkgdesc="Reiserfs utilities"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/linux/utils/fs/reiserfs/README"
+license=('GPL')
+groups=('base')
+depends=('util-linux-ng>=2.16')
+source=(http://www.kernel.org/pub/linux/utils/fs/reiserfs/reiserfsprogs-${pkgver}.tar.bz2)
+md5sums=('0639cefac8f8150536cfa7531c2aa2d2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sbindir=/sbin
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ ln -s reiserfsck "${pkgdir}/sbin/fsck.reiserfs"
+ ln -s mkreiserfs "${pkgdir}/sbin/mkfs.reiserfs"
+}
diff --git a/core/rfkill/60-rfkill.rules b/core/rfkill/60-rfkill.rules
new file mode 100644
index 000000000..bc98a3bef
--- /dev/null
+++ b/core/rfkill/60-rfkill.rules
@@ -0,0 +1 @@
+KERNEL=="rfkill", GROUP="rfkill", MODE="0664"
diff --git a/core/rfkill/PKGBUILD b/core/rfkill/PKGBUILD
new file mode 100644
index 000000000..bf8259e65
--- /dev/null
+++ b/core/rfkill/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 109452 2011-02-09 18:22:15Z stephane $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=rfkill
+pkgver=0.4
+pkgrel=2
+pkgdesc="A tool for enabling and disabling wireless devices"
+arch=('i686' 'x86_64')
+url="http://linuxwireless.org/en/users/Documentation/rfkill"
+license=('custom')
+depends=('glibc' 'filesystem>=2010.01')
+source=(http://wireless.kernel.org/download/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ 60-rfkill.rules
+ rfkill.conf.d
+ rfkill.rc.d)
+backup=(etc/conf.d/rfkill)
+md5sums=('727892c0fb35c80ee3849fbe89b45350'
+ '63f9bf9264911242e430867a41e8918c'
+ '398e7cadf023e05e3e0c323aa33575b9'
+ '793f0510e26547eb2632efce7d16e50e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ # License
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ # Udev rule
+ install -Dm644 "${srcdir}/60-rfkill.rules" "${pkgdir}/lib/udev/rules.d/60-rfkill.rules"
+ # Init script
+ install -Dm644 "${srcdir}/rfkill.conf.d" "${pkgdir}/etc/conf.d/rfkill"
+ install -Dm755 "${srcdir}/rfkill.rc.d" "${pkgdir}/etc/rc.d/rfkill"
+}
diff --git a/core/rfkill/rfkill.conf.d b/core/rfkill/rfkill.conf.d
new file mode 100644
index 000000000..4483da26c
--- /dev/null
+++ b/core/rfkill/rfkill.conf.d
@@ -0,0 +1,20 @@
+#
+# /etc/conf.d/rfkill
+# Configuration for the rfkill startup script
+#
+
+# List of devices to block on startup (space-separated)
+RFKILL_BLOCK=""
+
+# List of devices to unblock on startup (space-separated)
+RFKILL_UNBLOCK="all"
+
+# Supported device names are: all, wifi, bluetooth, umb, wimax, wwan, gps and specific device names like phy0, hci0, ...
+# See "rfkill list" for available devices
+# Examples:
+#
+# Block all bluetooth devices:
+# RFKILL_BLOCK="bluetooth"
+#
+# Unblock the phy0 wifi device and all wwan devices:
+# RFKILL_UNBLOCK="phy0 wwan"
diff --git a/core/rfkill/rfkill.rc.d b/core/rfkill/rfkill.rc.d
new file mode 100755
index 000000000..ce90ee150
--- /dev/null
+++ b/core/rfkill/rfkill.rc.d
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/rfkill
+
+case "$1" in
+ start)
+ for device in ${RFKILL_BLOCK}; do
+ stat_busy "Blocking rfkill device: ${device}"
+ /usr/sbin/rfkill block ${device}
+ if [ $? -eq 0 ]; then
+ stat_done
+ else
+ stat_fail
+ fi
+ done
+ for device in ${RFKILL_UNBLOCK}; do
+ stat_busy "Unblocking rfkill device: ${device}"
+ /usr/sbin/rfkill unblock ${device}
+ if [ $? -eq 0 ]; then
+ stat_done
+ else
+ stat_fail
+ fi
+ done
+ ;;
+ stop)
+ ;;
+ restart)
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start}"
+ exit 1
+ ;;
+esac
+exit 0
diff --git a/core/rp-pppoe/PKGBUILD b/core/rp-pppoe/PKGBUILD
new file mode 100644
index 000000000..2d701aef0
--- /dev/null
+++ b/core/rp-pppoe/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 77813 2010-04-18 07:47:31Z allan $
+# Contributor: orelien <aurelien.foret@wanadoo.fr>
+# Maintainer:
+
+pkgname=rp-pppoe
+pkgver=3.10
+pkgrel=5
+pkgdesc="Roaring Penguin's Point-to-Point Protocol over Ethernet client"
+arch=('i686' 'x86_64')
+url="http://www.roaringpenguin.com/pppoe/"
+license=('GPL')
+groups=('base')
+depends=('ppp>=2.4.5' 'sh')
+options=('!makeflags')
+backup=(etc/ppp/pppoe.conf etc/ppp/firewall-standalone etc/ppp/firewall-masq etc/ppp/pppoe-server-options)
+source=(http://www.roaringpenguin.com/files/download/rp-pppoe-$pkgver.tar.gz adsl)
+install=rp-pppoe.install
+md5sums=('d58a13cc4185bca6121a606ff456dec0'
+ 'adace1ad441aa88dcb3db52fb7f9c97f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/src
+ ./configure --prefix=/usr --enable-plugin=/ppp-2.4.4
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/src
+ make DESTDIR=$pkgdir install
+
+ #moving .so files to /usr/lib according to FS#13876
+ mkdir -p ${pkgdir}/usr/lib/rp-pppoe
+ mv ${pkgdir}/etc/ppp/plugins/rp-pppoe.so ${pkgdir}/usr/lib/rp-pppoe/
+ #not necessary after moving the plugin
+ rm -rf ${pkgdir}/etc/ppp/plugins
+ #changing config to the new path
+ #sed -i 's/LINUX_PLUGIN=/LINUX_PLUGIN=\/usr\/lib\/rp-pppoe\/rp-pppoe.so/g' ${pkgdir}/etc/ppp/pppoe.conf
+
+ install -Dm755 $srcdir/adsl $pkgdir/etc/rc.d/adsl
+}
diff --git a/core/rp-pppoe/adsl b/core/rp-pppoe/adsl
new file mode 100755
index 000000000..33bd91839
--- /dev/null
+++ b/core/rp-pppoe/adsl
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting ADSL Connection"
+ /usr/sbin/pppoe-start &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon adsl
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ADSL Connection"
+ /usr/sbin/pppoe-stop &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon adsl
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/rp-pppoe/rp-pppoe.install b/core/rp-pppoe/rp-pppoe.install
new file mode 100644
index 000000000..1d4bccce2
--- /dev/null
+++ b/core/rp-pppoe/rp-pppoe.install
@@ -0,0 +1,12 @@
+#arg 1: the new package version
+post_install() {
+echo ">>> The kernel-mode plugin has a new place."
+echo ">>> It's now located under /usr/lib/rp-pppoe/rp-pppoe.so"
+echo ">>> Change LINUX_PLUGIN to the new path in your /etc/ppp/pppoe.conf"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
diff --git a/core/rpcbind/PKGBUILD b/core/rpcbind/PKGBUILD
new file mode 100644
index 000000000..9120c7d3c
--- /dev/null
+++ b/core/rpcbind/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 103509 2010-12-20 18:40:07Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=rpcbind
+pkgver=0.2.0
+pkgrel=3
+pkgdesc="portmap replacement which supports RPC over various protocols"
+arch=(i686 x86_64)
+depends=('bash' 'glibc' 'libtirpc')
+url="http://rpcbind.sourceforge.net"
+license=('custom')
+replaces=('portmap')
+source=(http://downloads.sourceforge.net/sourceforge/rpcbind/rpcbind-0.2.0.tar.bz2
+ rpcbind-sunrpc.patch
+ rpcbind)
+md5sums=('1a77ddb1aaea8099ab19c351eeb26316'
+ 'c02ac36a98baac70b8a26190524b7b73'
+ '78a963654f57cbb209e228884767836e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # patch for iana services file
+ patch -Np1 -i ../rpcbind-sunrpc.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # install missing man page - https://bugs.archlinux.org/task/21271
+ install -m644 man/rpcinfo.8 $pkgdir/usr/share/man/man8/
+ # install daemon
+ install -D -m755 $srcdir/rpcbind $pkgdir/etc/rc.d/rpcbind
+ # install license
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/rpcbind/COPYING
+}
diff --git a/core/rpcbind/rpcbind b/core/rpcbind/rpcbind
new file mode 100755
index 000000000..87c5b50da
--- /dev/null
+++ b/core/rpcbind/rpcbind
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID="$(pidof -o %PPID /usr/bin/rpcbind)"
+case "$1" in
+ start)
+ stat_busy "Starting rpcbind"
+ [ -z "$PID" ] && /usr/bin/rpcbind &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=$(pidof -o %PPID /usr/bin/rpcbind)
+ echo $PID > /var/run/rpcbind.pid
+ add_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping rpcbind"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/rpcbind.pid
+ rm_daemon rpcbind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/rpcbind/rpcbind-sunrpc.patch b/core/rpcbind/rpcbind-sunrpc.patch
new file mode 100644
index 000000000..76cf54ba9
--- /dev/null
+++ b/core/rpcbind/rpcbind-sunrpc.patch
@@ -0,0 +1,22 @@
+--- rpcbind-0.1.7/src/rpcbind.c.orig 2008-11-19 14:17:34.000000000 +0100
++++ rpcbind-0.1.7/src/rpcbind.c 2010-01-07 13:03:37.416632894 +0100
+@@ -114,7 +114,7 @@
+ char *udp_uaddr; /* Universal UDP address */
+ char *tcp_uaddr; /* Universal TCP address */
+ #endif
+-static char servname[] = "rpcbind";
++static char servname[] = "sunrpc";
+ static char superuser[] = "superuser";
+
+ int main __P((int, char *[]));
+--- rpcbind-0.1.7/src/rpcinfo.c~ 2010-01-08 16:14:24.592156602 +0000
++++ rpcbind-0.1.7/src/rpcinfo.c 2010-01-08 16:14:31.578838609 +0000
+@@ -633,7 +633,7 @@
+ {
+ memset (&hints, 0, sizeof hints);
+ hints.ai_family = AF_INET;
+- if ((error = getaddrinfo (host, "rpcbind", &hints, &res)) != 0 &&
++ if ((error = getaddrinfo (host, "sunrpc", &hints, &res)) != 0 &&
+ (error = getaddrinfo (host, "portmapper", &hints, &res)) != 0)
+ {
+ fprintf (stderr, "rpcinfo: %s: %s\n",
diff --git a/core/run-parts/PKGBUILD b/core/run-parts/PKGBUILD
new file mode 100644
index 000000000..4de6f4b41
--- /dev/null
+++ b/core/run-parts/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 100361 2010-11-23 00:00:38Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=run-parts
+pkgver=3.4.1
+pkgrel=1
+pkgdesc='run scripts or programs in a directory'
+arch=('i686' 'x86_64')
+url='http://packages.qa.debian.org/d/debianutils.html'
+license=('GPL')
+depends=('glibc')
+source=("ftp://ftp.archlinux.org/other/run-parts/debianutils_${pkgver}.tar.gz")
+md5sums=('d488563ad7ea356d83f848becb1a3a4a')
+
+build() {
+ cd $srcdir/debianutils-$pkgver
+ ./configure --prefix=/usr
+ make run-parts
+}
+
+package() {
+ cd $srcdir/debianutils-$pkgver
+ install -D -m755 run-parts $pkgdir/usr/bin/run-parts
+ install -D -m644 run-parts.8 $pkgdir/usr/share/man/man8/run-parts.8
+}
diff --git a/core/sdparm/PKGBUILD b/core/sdparm/PKGBUILD
new file mode 100644
index 000000000..f1ff5950a
--- /dev/null
+++ b/core/sdparm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 99522 2010-11-14 22:33:34Z andrea $
+# Maintainer:
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: grimi@poczta.fm
+
+pkgname=sdparm
+pkgver=1.06
+pkgrel=1
+pkgdesc="An utility similar to hdparm but for SCSI devices"
+arch=('i686' 'x86_64')
+url="http://sg.danny.cz/sg/sdparm.html"
+license=('BSD')
+depends=('glibc')
+source=("http://sg.danny.cz/sg/p/${pkgname}-${pkgver}.tgz")
+md5sums=('5e19913658bb4f9849ddd909e0f47cde')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir}/ install
+
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/core/sed/PKGBUILD b/core/sed/PKGBUILD
new file mode 100644
index 000000000..e6e0000a3
--- /dev/null
+++ b/core/sed/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 100052 2010-11-20 03:28:20Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=sed
+pkgver=4.2.1
+pkgrel=3
+pkgdesc="GNU stream editor"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/sed"
+license=('GPL3')
+groups=('base')
+depends=('acl' 'sh')
+makedepends=('gettext')
+install=sed.install
+source=(ftp://ftp.gnu.org/pub/gnu/sed/${pkgname}-${pkgver}.tar.gz)
+md5sums=('f0fd4d7da574d4707e442285fd2d3b86')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --bindir=/bin --without-included-regex
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/core/sed/sed.install b/core/sed/sed.install
new file mode 100644
index 000000000..c0524038b
--- /dev/null
+++ b/core/sed/sed.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(sed.info)
+
+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/core/shadow/PKGBUILD b/core/shadow/PKGBUILD
new file mode 100644
index 000000000..738acfdf9
--- /dev/null
+++ b/core/shadow/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 111984 2011-03-02 21:59:18Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=shadow
+pkgver=4.1.4.3
+pkgrel=1
+pkgdesc="Shadow password file utilities"
+arch=('i686' 'x86_64')
+url='http://pkg-shadow.alioth.debian.org/'
+license=('custom')
+groups=('base')
+depends=('bash' 'pam')
+backup=(etc/login.defs
+ etc/pam.d/{chage,login,passwd,shadow,useradd,usermod,userdel}
+ etc/pam.d/{chpasswd,newusers,groupadd,groupdel,groupmod}
+ etc/pam.d/{chfn,chgpasswd,groupmems,chsh}
+ etc/default/useradd)
+options=('!libtool')
+install=shadow.install
+source=(ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/shadow-$pkgver.tar.bz2
+ useradd.defaults login passwd chgpasswd chpasswd newusers defaults.pam
+ login.defs adduser shadow.cron.daily xstrdup.patch shadow-4.1.4.2-groupmod-pam-check.patch)
+md5sums=('b8608d8294ac88974f27b20f991c0e79' 'beb64d09256ea46a4d96a783f096447f'\
+ 'bf137fac19884d71dc55c24b6d08e16c' 'b84204ab731bd02dca49d0637d44ebec'\
+ '65e9ebce249a5b9ed021e2790452b9e1' '453a98456b297d2a69ca7e9b5f40d10b'\
+ '453a98456b297d2a69ca7e9b5f40d10b' 'a31374fef2cba0ca34dfc7078e2969e4'\
+ 'fad9a7116366f7775b1099290be840da' '6ce67e423ee19c87ae64f661310b2408'\
+ '1d64b4113e1d402746d9dd65f28a2c6f' '0eebe9d13065bec4b5d7ccf3bf46c509'\
+ '7b747f7dca38b0b6e8ee56434378baae')
+sha1sums=('ad9b85b5531ce8e68f4695efc4ac53ba7266269e' '9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19'\
+ '0b2d98a0ee3bfde8551ade48d4d35cc20ec702a1' '6f183bc7709b0a8d20ad17481a4ad025cf6e5056'\
+ '4ad0e059406a305c8640ed30d93c2a1f62c2f4ad' 'd66096ed9477bd7242e8d2cc28eaa23170269788'\
+ 'd66096ed9477bd7242e8d2cc28eaa23170269788' '0e56fed7fc93572c6bf0d8f3b099166558bb46f1'\
+ 'fceb6defbf959f9bee5598e89378a49297968d1a' '78ec184a499f9708adcfcf0b7a3b22a60bf39f91'\
+ '5d83ba7e11c765c951867cbe00b0ae7ff57148fa' '6010fffeed1fc6673ad9875492e1193b1a847b53'\
+ '5823f38c0085b27e7e4327ab17ecc13563a43650')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ #Ugh, force this to build shared libraries, for god's sake
+ sed -i "s/noinst_LTLIBRARIES/lib_LTLIBRARIES/g" lib/Makefile.am
+ libtoolize
+ autoreconf
+ export LDFLAGS="$LDFLAGS -lcrypt"
+
+ patch -Np1 -i "$srcdir/xstrdup.patch"
+ patch -Np1 -i "$srcdir/shadow-4.1.4.2-groupmod-pam-check.patch"
+
+ # supress etc/pam.d/*, we provide our own
+ sed -i '/^SUBDIRS/s/pam.d//' etc/Makefile.in
+
+ ./configure \
+ --prefix=/usr --libdir=/lib \
+ --mandir=/usr/share/man --sysconfdir=/etc \
+ --enable-shared --disable-static \
+ --with-libpam --without-selinux
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # license
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/shadow/COPYING"
+
+ # interactive useradd
+ install -Dm755 "$srcdir/adduser" "$pkgdir/usr/sbin/adduser"
+
+ # useradd defaults
+ install -Dm644 "$srcdir/useradd.defaults" "$pkgdir/etc/default/useradd"
+
+ # cron job
+ install -Dm744 "$srcdir/shadow.cron.daily" "$pkgdir/etc/cron.daily/shadow"
+
+ # login.defs
+ install -Dm644 "$srcdir/login.defs" "$pkgdir/etc/login.defs"
+
+ # PAM config - cutsom
+ install -Dm644 "$srcdir/login" "$pkgdir/etc/pam.d/login"
+ install -Dm644 "$srcdir/passwd" "$pkgdir/etc/pam.d/passwd"
+ install -Dm644 "$srcdir/chgpasswd" "$pkgdir/etc/pam.d/chgpasswd"
+ install -Dm644 "$srcdir/chpasswd" "$pkgdir/etc/pam.d/chpasswd"
+ install -Dm644 "$srcdir/newusers" "$pkgdir/etc/pam.d/newusers"
+ # PAM config - from tarball
+ install -Dm644 etc/pam.d/groupmems "$pkgdir/etc/pam.d/groupmems"
+
+ # we use the 'useradd' PAM file for other similar utilities
+ for file in chage chfn chsh groupadd groupdel groupmod shadow \
+ useradd usermod userdel; do
+ install -Dm644 "$srcdir/defaults.pam" "$pkgdir/etc/pam.d/$file"
+ done
+
+ # Remove su - using su from coreutils instead
+ rm -v "$pkgdir/bin/su"
+ find "$pkgdir/usr/share/man" -name 'su.1' -exec rm -v {} \;
+}
diff --git a/core/shadow/adduser b/core/shadow/adduser
new file mode 100644
index 000000000..a5d7fd4fa
--- /dev/null
+++ b/core/shadow/adduser
@@ -0,0 +1,399 @@
+#!/bin/bash
+#
+# Copyright 1995 Hrvoje Dogan, Croatia.
+# Copyright 2002, 2003, 2004 Stuart Winter, West Midlands, England, UK.
+# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+##########################################################################
+# Program: /usr/sbin/adduser
+# Purpose: Interactive front end to /usr/sbin/useradd for Slackware Linux
+# Author : Stuart Winter <stuart@polplex.co.uk>
+# Based on the original Slackware adduser by Hrvoje Dogan
+# with modifications by Patrick Volkerding
+# Version: 1.09
+##########################################################################
+# Usage..: adduser [<new_user_name>]
+##########################################################################
+# History #
+###########
+# v1.09 - 07/06/04
+# * Added standard Slackware script licence to the head of this file.
+# v1.08 - 25/04/04
+# * Disallow user names that begin with a numeric because useradd
+# (from shadow v4.03) does not allow them. <sw>
+# v1.07 - 07/03/03
+# * When supplying a null string for the uid (meaning 'Choose next available'),
+# if there were file names in the range 'a-z' in the pwd then the
+# egrep command considered these files rather than the null string.
+# The egrep expression is now in quotes.
+# Reported & fixed by Vadim O. Ustiansky <sw>
+# v1.06 - 31/03/03
+# * Ask to chown user.group the home directory if it already exists.
+# This helps reduce later confusion when adding users whose home dir
+# already exists (mounted partition for example) and is owned
+# by a user other than the user to which the directory is being
+# assigned as home. Default is not to chown.
+# Brought to my attention by mRgOBLIN. <sw>
+# v1.05 - 04/01/03
+# * Advise & prevent users from creating logins with '.' characters
+# in the user name. <sw>
+# * Made pending account creation info look neater <sw>
+# v1.04 - 09/06/02
+# * Catered for shadow-4.0.3's 'useradd' binary that no longer
+# will let you create a user that has any uppercase chars in it
+# This was reported on the userlocal.org forums
+# by 'xcp' - thanks. <sw,pjv>
+# v1.03 - 20/05/02
+# * Support 'broken' (null lines in) /etc/passwd and
+# /etc/group files <sw>
+# * For recycling UIDs (default still 'off'), we now look in
+# /etc/login.defs for the UID_MIN value and use it
+# If not found then default to 1000 <sw>
+# v1.02 - 10/04/02
+# * Fix user-specified UID bug. <pjv>
+# v1.01 - 23/03/02
+# * Match Slackware indenting style, simplify. <pjv>
+# v1.00 - 22/03/02
+# * Created
+#######################################################################
+
+# Path to files
+pfile=/etc/passwd
+gfile=/etc/group
+sfile=/etc/shells
+
+# Paths to binaries
+useradd=/usr/sbin/useradd
+chfn=/usr/bin/chfn
+passwd=/usr/bin/passwd
+
+# Defaults
+defhome=/home
+defshell=/bin/bash
+defgroup=users
+
+# Determine what the minimum UID is (for UID recycling)
+# (we ignore it if it's not at the beginning of the line (i.e. commented out with #))
+export recycleUIDMIN="$(grep ^UID_MIN /etc/login.defs | awk '{print $2}' 2>/dev/null)"
+# If we couldn't find it, set it to the default of 1000
+if [ -z "$recycleUIDMIN" ]; then
+ export recycleUIDMIN=1000 # this is the default from Slackware's /etc/login.defs
+fi
+
+
+# This setting enables the 'recycling' of older unused UIDs.
+# When you userdel a user, it removes it from passwd and shadow but it will
+# never get used again unless you specify it expliticly -- useradd (appears to) just
+# look at the last line in passwd and increment the uid. I like the idea of
+# recycling uids but you may have very good reasons not to (old forgotten
+# confidential files still on the system could then be owned by this new user).
+# We'll set this to no because this is what the original adduser shell script
+# did and it's what users expect.
+recycleuids=no
+
+# Function to read keyboard input.
+# bash1 is broken (even ash will take read -ep!), so we work around
+# it (even though bash1 is no longer supported on Slackware).
+function get_input() {
+ local output
+ if [ "`echo $BASH_VERSION | cut -b1`" = "1" ]; then
+ echo -n "${1} " >&2 # fudge for use with bash v1
+ read output
+ else # this should work with any other /bin/sh
+ read -ep "${1} " output
+ fi
+ echo $output
+}
+
+# Function to display the account info
+function display () {
+ local goose
+ goose="$(echo $2 | cut -d ' ' -f 2-)" # lop off the prefixed argument useradd needs
+ echo -n "$1 "
+ # If it's null then display the 'other' information
+ if [ -z "$goose" -a ! -z "$3" ]; then
+ echo "$3"
+ else
+ echo "$goose"
+ fi
+}
+
+# Function to check whether groups exist in the /etc/group file
+function check_group () {
+ local got_error group
+ if [ ! -z "$@" ]; then
+ for group in $@ ; do
+ local uid_not_named="" uid_not_num=""
+ grep -v "$^" $gfile | awk -F: '{print $1}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_named=yes
+ grep -v "$^" $gfile | awk -F: '{print $3}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_num=yes
+ if [ ! -z "$uid_not_named" -a ! -z "$uid_not_num" ]; then
+ echo "- Group '$group' does not exist"
+ got_error=yes
+ fi
+ done
+ fi
+ # Return exit code of 1 if at least one of the groups didn't exist
+ if [ ! -z "$got_error" ]; then
+ return 1
+ fi
+}
+
+#: Read the login name for the new user :#
+#
+# Remember that most Mail Transfer Agents are case independant, so having
+# 'uSer' and 'user' may cause confusion/things to break. Because of this,
+# useradd from shadow-4.0.3 no longer accepts usernames containing uppercase,
+# and we must reject them, too.
+
+# Set the login variable to the command line param
+echo
+LOGIN="$1"
+needinput=yes
+while [ ! -z $needinput ]; do
+ if [ -z "$LOGIN" ]; then
+ while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")" ; done
+ fi
+ grep "^${LOGIN}:" $pfile >/dev/null 2>&1 # ensure it's not already used
+ if [ $? -eq 0 ]; then
+ echo "- User '$LOGIN' already exists; please choose another"
+ unset LOGIN
+ elif [ ! -z "$( echo $LOGIN | grep "^[0-9]" )" ]; then
+ echo "- User names cannot begin with a number; please choose another"
+ unset LOGIN
+ elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]; then # useradd does not allow uppercase
+ echo "- User '$LOGIN' contains illegal characters (uppercase); please choose another"
+ unset LOGIN
+ elif [ ! -z "$( echo $LOGIN | grep '\.' )" ]; then
+ echo "- User '$LOGIN' contains illegal characters (period/dot); please choose another"
+ unset LOGIN
+ else
+ unset needinput
+ fi
+done
+
+# Display the user name passed from the shell if it hasn't changed
+if [ "$1" = "$LOGIN" ]; then
+ echo "Login name for new user: $LOGIN"
+fi
+
+#: Get the UID for the user & ensure it's not already in use :#
+#
+# Whilst we _can_ allow users with identical UIDs, it's not a 'good thing' because
+# when you change password for the uid, it finds the first match in /etc/passwd
+# which isn't necessarily the correct user
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ _UID="$(get_input "User ID ('UID') [ defaults to next available ]:")"
+ grep -v "^$" $pfile | awk -F: '{print $3}' | grep "^${_UID}$" >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ echo "- That UID is already in use; please choose another"
+ elif [ ! -z "$(echo $_UID | egrep '[A-Za-z]')" ]; then
+ echo "- UIDs are numerics only"
+ else
+ unset needinput
+ fi
+done
+# If we were given a UID, then syntax up the variable to pass to useradd
+if [ ! -z "$_UID" ]; then
+ U_ID="-u ${_UID}"
+else
+ # Will we be recycling UIDs?
+ if [ "$recycleuids" = "yes" ]; then
+ U_ID="-u $(awk -F: '{uid[$3]=1} END { for (i=ENVIRON["recycleUIDMIN"];i in uid;i++);print i}' $pfile)"
+ fi
+fi
+
+#: Get the initial group for the user & ensure it exists :#
+#
+# We check /etc/group for both the text version and the group ID number
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ GID="$(get_input "Initial group [ ${defgroup} ]:")"
+ check_group "$GID"
+ if [ $? -gt 0 ]; then
+ echo "- Please choose another"
+ else
+ unset needinput
+ fi
+done
+# Syntax the variable ready for useradd
+if [ -z "$GID" ]; then
+ GID="-g ${defgroup}"
+else
+ GID="-g ${GID}"
+fi
+
+#: Get additional groups for the user :#
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ AGID="$(get_input "Additional groups (comma separated) []:")"
+ AGID="$(echo "$AGID" | tr -d ' ' | tr , ' ')" # fix up for parsing
+ if [ ! -z "$AGID" ]; then
+ check_group "$AGID" # check all groups at once (treated as N # of params)
+ if [ $? -gt 0 ]; then
+ echo "- Please re-enter the group(s)"
+ else
+ unset needinput # we found all groups specified
+ AGID="-G $(echo "$AGID" | tr ' ' ,)"
+ fi
+ else
+ unset needinput # we don't *have* to have additional groups
+ fi
+done
+
+#: Get the new user's home dir :#
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ HME="$(get_input "Home directory [ ${defhome}/${LOGIN} ]")"
+ if [ -z "$HME" ]; then
+ HME="${defhome}/${LOGIN}"
+ fi
+ # Warn the user if the home dir already exists
+ if [ -d "$HME" ]; then
+ echo "- Warning: '$HME' already exists !"
+ getyn="$(get_input " Do you wish to change the home directory path ? (Y/n) ")"
+ if [ "$(echo $getyn | grep -i "n")" ]; then
+ unset needinput
+ # You're most likely going to only do this if you have the dir *mounted* for this user's $HOME
+ getyn="$(get_input " Do you want to chown $LOGIN.$( echo $GID | awk '{print $2}') $HME ? (y/N) ")"
+ if [ "$(echo $getyn | grep -i "y")" ]; then
+ CHOWNHOMEDIR=$HME # set this to the home directory
+ fi
+ fi
+ else
+ unset needinput
+ fi
+done
+HME="-d ${HME}"
+
+#: Get the new user's shell :#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ unset got_error
+ SHL="$(get_input "Shell [ ${defshell} ]")"
+ if [ -z "$SHL" ]; then
+ SHL="${defshell}"
+ fi
+ # Warn the user if the shell doesn't exist in /etc/shells or as a file
+ if [ -z "$(grep "^${SHL}$" $sfile)" ]; then
+ echo "- Warning: ${SHL} is not in ${sfile} (potential problem using FTP)"
+ got_error=yes
+ fi
+ if [ ! -f "$SHL" ]; then
+ echo "- Warning: ${SHL} does not exist as a file"
+ got_error=yes
+ fi
+ if [ ! -z "$got_error" ]; then
+ getyn="$(get_input " Do you wish to change the shell ? (Y/n) ")"
+ if [ "$(echo $getyn | grep -i "n")" ]; then
+ unset needinput
+ fi
+ else
+ unset needinput
+ fi
+done
+SHL="-s ${SHL}"
+
+#: Get the expiry date :#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ EXP="$(get_input "Expiry date (YYYY-MM-DD) []:")"
+ if [ ! -z "$EXP" ]; then
+ # Check to see whether the expiry date is in the valid format
+ if [ -z "$(echo "$EXP" | grep "^[[:digit:]]\{4\}[-]\?[[:digit:]]\{2\}[-]\?[[:digit:]]\{2\}$")" ]; then
+ echo "- That is not a valid expiration date"
+ else
+ unset needinput
+ EXP="-e ${EXP}"
+ fi
+ else
+ unset needinput
+ fi
+done
+
+# Display the info about the new impending account
+echo
+echo "New account will be created as follows:"
+echo
+echo "---------------------------------------"
+display "Login name.......: " "$LOGIN"
+display "UID..............: " "$_UID" "[ Next available ]"
+display "Initial group....: " "$GID"
+display "Additional groups: " "$AGID" "[ None ]"
+display "Home directory...: " "$HME"
+display "Shell............: " "$SHL"
+display "Expiry date......: " "$EXP" "[ Never ]"
+echo
+
+echo "This is it... if you want to bail out, hit Control-C. Otherwise, press"
+echo "ENTER to go ahead and make the account."
+read junk
+
+echo
+echo "Creating new account..."
+echo
+echo
+
+# Add the account to the system
+CMD="$useradd "$HME" -m "$EXP" "$U_ID" "$GID" "$AGID" "$SHL" "$LOGIN""
+$CMD
+
+if [ $? -gt 0 ]; then
+ echo "- Error running useradd command -- account not created!"
+ echo "(cmd: $CMD)"
+ exit 1
+fi
+
+# chown the home dir ? We can only do this once the useradd has
+# completed otherwise the user name doesn't exist.
+if [ ! -z "${CHOWNHOMEDIR}" ]; then
+ chown "$LOGIN"."$( echo $GID | awk '{print $2}')" "${CHOWNHOMEDIR}"
+fi
+
+# Set the finger information
+$chfn "$LOGIN"
+if [ $? -gt 0 ]; then
+ echo "- Warning: an error occurred while setting finger information"
+fi
+
+# Set a password
+$passwd "$LOGIN"
+if [ $? -gt 0 ]; then
+ echo "* WARNING: An error occured while setting the password for"
+ echo " this account. Please manually investigate this *"
+ exit 1
+fi
+
+echo
+echo
+echo "Account setup complete."
+exit 0
+
diff --git a/core/shadow/chage b/core/shadow/chage
new file mode 100644
index 000000000..a7bf8a4a5
--- /dev/null
+++ b/core/shadow/chage
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
diff --git a/core/shadow/chgpasswd b/core/shadow/chgpasswd
new file mode 100644
index 000000000..8f49f5cc8
--- /dev/null
+++ b/core/shadow/chgpasswd
@@ -0,0 +1,4 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+account required pam_permit.so
+password include system-auth
diff --git a/core/shadow/chpasswd b/core/shadow/chpasswd
new file mode 100644
index 000000000..bc14857dc
--- /dev/null
+++ b/core/shadow/chpasswd
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_unix.so md5 shadow
diff --git a/core/shadow/chsh b/core/shadow/chsh
new file mode 100644
index 000000000..a7bf8a4a5
--- /dev/null
+++ b/core/shadow/chsh
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
diff --git a/core/shadow/defaults.pam b/core/shadow/defaults.pam
new file mode 100644
index 000000000..a7bf8a4a5
--- /dev/null
+++ b/core/shadow/defaults.pam
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
diff --git a/core/shadow/login b/core/shadow/login
new file mode 100644
index 000000000..51ff96a4a
--- /dev/null
+++ b/core/shadow/login
@@ -0,0 +1,20 @@
+#%PAM-1.0
+auth required pam_securetty.so
+auth requisite pam_nologin.so
+auth required pam_unix.so nullok
+auth required pam_tally.so onerr=succeed file=/var/log/faillog
+# use this to lockout accounts for 10 minutes after 3 failed attempts
+#auth required pam_tally.so deny=2 unlock_time=600 onerr=succeed file=/var/log/faillog
+account required pam_access.so
+account required pam_time.so
+account required pam_unix.so
+#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
+#password required pam_unix.so md5 shadow use_authtok
+session required pam_unix.so
+session required pam_env.so
+session required pam_motd.so
+session required pam_limits.so
+session optional pam_mail.so dir=/var/spool/mail standard
+session optional pam_lastlog.so
+session optional pam_loginuid.so
+-session optional pam_ck_connector.so nox11
diff --git a/core/shadow/login.defs b/core/shadow/login.defs
new file mode 100644
index 000000000..653e14e4f
--- /dev/null
+++ b/core/shadow/login.defs
@@ -0,0 +1,218 @@
+#
+# /etc/login.defs - Configuration control definitions for the login package.
+#
+# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH.
+# If unspecified, some arbitrary (and possibly incorrect) value will
+# be assumed. All other items are optional - if not specified then
+# the described action or option will be inhibited.
+#
+# Comment lines (lines beginning with "#") and blank lines are ignored.
+#
+# Modified for Linux. --marekm
+
+#
+# Delay in seconds before being allowed another attempt after a login failure
+#
+FAIL_DELAY 3
+
+#
+# Enable display of unknown usernames when login failures are recorded.
+#
+LOG_UNKFAIL_ENAB no
+
+#
+# Enable logging of successful logins
+#
+LOG_OK_LOGINS no
+
+#
+# Enable "syslog" logging of su activity - in addition to sulog file logging.
+# SYSLOG_SG_ENAB does the same for newgrp and sg.
+#
+SYSLOG_SU_ENAB yes
+SYSLOG_SG_ENAB yes
+
+#
+# If defined, either full pathname of a file containing device names or
+# a ":" delimited list of device names. Root logins will be allowed only
+# upon these devices.
+#
+CONSOLE /etc/securetty
+#CONSOLE console:tty01:tty02:tty03:tty04
+
+#
+# If defined, all su activity is logged to this file.
+#
+#SULOG_FILE /var/log/sulog
+
+#
+# If defined, file which maps tty line to TERM environment parameter.
+# Each line of the file is in a format something like "vt100 tty01".
+#
+#TTYTYPE_FILE /etc/ttytype
+
+#
+# If defined, the command name to display when running "su -". For
+# example, if this is defined as "su" then a "ps" will display the
+# command is "-su". If not defined, then "ps" would display the
+# name of the shell actually being run, e.g. something like "-sh".
+#
+SU_NAME su
+
+#
+# *REQUIRED*
+# Directory where mailboxes reside, _or_ name of file, relative to the
+# home directory. If you _do_ define both, MAIL_DIR takes precedence.
+# QMAIL_DIR is for Qmail
+#
+#QMAIL_DIR Maildir
+MAIL_DIR /var/spool/mail
+
+#
+# If defined, file which inhibits all the usual chatter during the login
+# sequence. If a full pathname, then hushed mode will be enabled if the
+# user's name or shell are found in the file. If not a full pathname, then
+# hushed mode will be enabled if the file exists in the user's home directory.
+#
+HUSHLOGIN_FILE .hushlogin
+#HUSHLOGIN_FILE /etc/hushlogins
+
+#
+# *REQUIRED* The default PATH settings, for superuser and normal users.
+#
+# (they are minimal, add the rest in the shell startup files)
+ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ENV_PATH PATH=/bin:/usr/bin
+
+#
+# Terminal permissions
+#
+# TTYGROUP Login tty will be assigned this group ownership.
+# TTYPERM Login tty will be set to this permission.
+#
+# If you have a "write" program which is "setgid" to a special group
+# which owns the terminals, define TTYGROUP to the group number and
+# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign
+# TTYPERM to either 622 or 600.
+#
+TTYGROUP tty
+TTYPERM 0600
+
+#
+# Login configuration initializations:
+#
+# ERASECHAR Terminal ERASE character ('\010' = backspace).
+# KILLCHAR Terminal KILL character ('\025' = CTRL/U).
+# UMASK Default "umask" value.
+#
+# The ERASECHAR and KILLCHAR are used only on System V machines.
+# The ULIMIT is used only if the system supports it.
+# (now it works with setrlimit too; ulimit is in 512-byte units)
+#
+# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
+#
+ERASECHAR 0177
+KILLCHAR 025
+UMASK 077
+
+#
+# Password aging controls:
+#
+# PASS_MAX_DAYS Maximum number of days a password may be used.
+# PASS_MIN_DAYS Minimum number of days allowed between password changes.
+# PASS_WARN_AGE Number of days warning given before a password expires.
+#
+PASS_MAX_DAYS 99999
+PASS_MIN_DAYS 0
+PASS_WARN_AGE 7
+
+#
+# Min/max values for automatic uid selection in useradd
+#
+UID_MIN 1000
+UID_MAX 60000
+# System accounts
+SYS_UID_MIN 500
+SYS_UID_MAX 999
+
+#
+# Min/max values for automatic gid selection in groupadd
+#
+GID_MIN 1000
+GID_MAX 60000
+# System accounts
+SYS_GID_MIN 500
+SYS_GID_MAX 999
+
+#
+# Max number of login retries if password is bad
+#
+LOGIN_RETRIES 5
+
+#
+# Max time in seconds for login
+#
+LOGIN_TIMEOUT 60
+
+#
+# Which fields may be changed by regular users using chfn - use
+# any combination of letters "frwh" (full name, room number, work
+# phone, home phone). If not defined, no changes are allowed.
+# For backward compatibility, "yes" = "rwh" and "no" = "frwh".
+#
+CHFN_RESTRICT rwh
+
+#
+# List of groups to add to the user's supplementary group set
+# when logging in on the console (as determined by the CONSOLE
+# setting). Default is none.
+#
+# Use with caution - it is possible for users to gain permanent
+# access to these groups, even when not logged in on the console.
+# How to do it is left as an exercise for the reader...
+#
+#CONSOLE_GROUPS floppy:audio:cdrom
+
+#
+# Should login be allowed if we can't cd to the home directory?
+# Default in no.
+#
+DEFAULT_HOME yes
+
+#
+# If defined, this command is run when removing a user.
+# It should remove any at/cron/print jobs etc. owned by
+# the user to be removed (passed as the first argument).
+#
+#USERDEL_CMD /usr/sbin/userdel_local
+
+#
+# When prompting for password without echo, getpass() can optionally
+# display a random number (in the range 1 to GETPASS_ASTERISKS) of '*'
+# characters for each character typed. This feature is designed to
+# confuse people looking over your shoulder when you enter a password :-).
+# Also, the new getpass() accepts both Backspace (8) and Delete (127)
+# keys to delete previous character (to cope with different terminal
+# types), Control-U to delete all characters, and beeps when there are
+# no more characters to delete, or too many characters entered.
+#
+# Setting GETPASS_ASTERISKS to 1 results in more traditional behaviour -
+# exactly one '*' displayed for each character typed.
+#
+# Setting GETPASS_ASTERISKS to 0 disables the '*' characters (Backspace,
+# Delete, Control-U and beep continue to work as described above).
+#
+# Setting GETPASS_ASTERISKS to -1 reverts to the traditional getpass()
+# without any new features. This is the default.
+#
+#GETPASS_ASTERISKS 1
+
+#
+# Enable setting of the umask group bits to be the same as owner bits
+# (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is
+# the same as gid, and username is the same as the primary group name.
+#
+# This also enables userdel to remove user groups if no members exist.
+#
+USERGROUPS_ENAB yes
+
diff --git a/core/shadow/newusers b/core/shadow/newusers
new file mode 100644
index 000000000..bc14857dc
--- /dev/null
+++ b/core/shadow/newusers
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_unix.so md5 shadow
diff --git a/core/shadow/passwd b/core/shadow/passwd
new file mode 100644
index 000000000..1ffd1bdd8
--- /dev/null
+++ b/core/shadow/passwd
@@ -0,0 +1,4 @@
+#%PAM-1.0
+#password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
+#password required pam_unix.so md5 shadow use_authtok
+password required pam_unix.so md5 shadow nullok
diff --git a/core/shadow/shadow b/core/shadow/shadow
new file mode 100644
index 000000000..a7bf8a4a5
--- /dev/null
+++ b/core/shadow/shadow
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
+password required pam_permit.so
diff --git a/core/shadow/shadow-4.1.4.2-groupmod-pam-check.patch b/core/shadow/shadow-4.1.4.2-groupmod-pam-check.patch
new file mode 100644
index 000000000..f25c4e10f
--- /dev/null
+++ b/core/shadow/shadow-4.1.4.2-groupmod-pam-check.patch
@@ -0,0 +1,21 @@
+http://bugs.gentoo.org/300790
+http://lists.alioth.debian.org/pipermail/pkg-shadow-devel/2009-November/007850.html
+
+2009-11-05 Nicolas François <nicolas.francois@centraliens.net>
+
+ * NEWS, src/groupmod.c: Fixed groupmod when configured with
+ --enable-account-tools-setuid.
+
+diff --git a/src/groupmod.c b/src/groupmod.c
+index 4205df2..da6d77f 100644
+--- a/src/groupmod.c
++++ b/src/groupmod.c
+@@ -724,7 +724,7 @@ int main (int argc, char **argv)
+ {
+ struct passwd *pampw;
+ pampw = getpwuid (getuid ()); /* local, no need for xgetpwuid */
+- if (NULL == pamh) {
++ if (NULL == pampw) {
+ fprintf (stderr,
+ _("%s: Cannot determine your user name.\n"),
+ Prog);
diff --git a/core/shadow/shadow.cron.daily b/core/shadow/shadow.cron.daily
new file mode 100755
index 000000000..1931a793e
--- /dev/null
+++ b/core/shadow/shadow.cron.daily
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Verify integrity of password and group files
+/usr/sbin/pwck -r
+/usr/sbin/grpck -r
+
diff --git a/core/shadow/shadow.install b/core/shadow/shadow.install
new file mode 100644
index 000000000..c1bd1066b
--- /dev/null
+++ b/core/shadow/shadow.install
@@ -0,0 +1,8 @@
+post_upgrade() {
+ grpck -r &>/dev/null
+ if [ $? -eq 2 ]; then
+ echo "Fixing gshadow file ..."
+ while :; do echo "y"; done | grpck &>/dev/null
+ fi
+ return 0
+}
diff --git a/core/shadow/useradd.defaults b/core/shadow/useradd.defaults
new file mode 100644
index 000000000..b800b1777
--- /dev/null
+++ b/core/shadow/useradd.defaults
@@ -0,0 +1,9 @@
+# useradd defaults file for ArchLinux
+# original changes by TomK
+GROUP=100
+HOME=/home
+INACTIVE=-1
+EXPIRE=
+SHELL=/bin/bash
+SKEL=/etc/skel
+CREATE_MAIL_SPOOL=no
diff --git a/core/shadow/xstrdup.patch b/core/shadow/xstrdup.patch
new file mode 100644
index 000000000..bce434264
--- /dev/null
+++ b/core/shadow/xstrdup.patch
@@ -0,0 +1,9 @@
+--- shadow-4.1.2.1/libmisc/xmalloc.c 2008-08-30 21:55:44.000000000 -0500
++++ shadow-4.1.2.1/libmisc/xmalloc.c.new 2008-08-30 21:55:36.000000000 -0500
+@@ -61,5 +61,6 @@
+
+ char *xstrdup (const char *str)
+ {
++ if(str == NULL) return NULL;
+ return strcpy (xmalloc (strlen (str) + 1), str);
+ }
diff --git a/core/sqlite3/PKGBUILD b/core/sqlite3/PKGBUILD
new file mode 100644
index 000000000..c2155562a
--- /dev/null
+++ b/core/sqlite3/PKGBUILD
@@ -0,0 +1,93 @@
+# $Id: PKGBUILD 108579 2011-02-01 18:59:24Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase="sqlite3"
+pkgname=('sqlite3' 'sqlite3-tcl' 'sqlite3-doc')
+_amalgamationver=3070500
+_amalgamationver2=${_amalgamationver/00/}
+pkgver=${_amalgamationver2//0/.}
+pkgrel=1
+pkgdesc="A C library that implements an SQL database engine"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.sqlite.org/"
+makedepends=('tcl' 'readline>=6.0.00')
+source=( #http://www.sqlite.org/sqlite-src-${_amalgamationver}.zip - # the no more recommended ZIP archive of the complete source tree for SQLite - Makefile and configure script in this tarball are not supported
+ http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz # tarball containing the amalgamation for SQLite 3.7.5 together with an configure script and makefile for building it.
+ http://www.sqlite.org/sqlite-tea-$_amalgamationver.tar.gz # tarball of the amalgamation together with a Tcl Extension Architecture (TEA) compatible configure script and makefile
+ http://www.sqlite.org/sqlite-doc-${_amalgamationver}.zip
+ license.txt)
+options=('!libtool' '!emptydirs')
+md5sums=('a9604a82613ade2e7f4c303f233e477f'
+ '3413e8cfb7990e39260bf45dca017bf0'
+ '74f9b304143a76e3da8c0063888770ee'
+ 'c1cdbc5544034d9012e421e75a5e4890')
+
+build() {
+# cd ${srcdir}/sqlite-src-${_amalgamationver}
+# export LTLINK_EXTRAS="-ldl"
+# export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
+# ./configure --prefix=/usr \
+# --enable-threadsafe \
+# --enable-cross-thread-connections \
+# --disable-static \
+# --enable-load-extension
+
+ # rpath removal
+# sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+# sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+# make
+
+ export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
+
+ # build sqlite
+ cd "$srcdir"/sqlite-autoconf-$_amalgamationver
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+
+ # build the tcl extension
+ cd "$srcdir"/sqlite-tea-$_amalgamationver
+ ./configure --prefix=/usr \
+ --with-system-sqlite
+ make
+
+}
+
+package_sqlite3() {
+
+ pkgdesc="A C library that implements an SQL database engine"
+ depends=('readline>=6.0.00')
+ conflicts=('sqlite')
+ replaces=('sqlite')
+
+# cd ${srcdir}/sqlite-src-${_amalgamationver}
+# make DESTDIR=${pkgdir} install
+# install -Dm0644 sqlite3.1 ${pkgdir}/usr/share/man/man1/sqlite3.1
+
+ cd ${srcdir}/sqlite-autoconf-$_amalgamationver
+ make DESTDIR=${pkgdir} install
+
+ # license
+ install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
+
+package_sqlite3-tcl() {
+
+ pkgdesc="sqlite3 Tcl Extension Architecture (TEA)"
+ depends=('sqlite3>=3.7.5')
+
+ cd ${srcdir}/sqlite-tea-$_amalgamationver
+ make DESTDIR=${pkgdir} install
+}
+
+package_sqlite3-doc() {
+ pkgdesc="most of the static HTML files that comprise this website, including all of the SQL Syntax and the C/C++ interface specs and other miscellaneous documentation"
+ #arch=('any') - not yet supported
+
+ cd ${srcdir}/sqlite-doc-${_amalgamationver}
+ mkdir -p ${pkgdir}/usr/share/doc/${pkgbase}
+ cp -R * ${pkgdir}/usr/share/doc/${pkgbase}/
+}
diff --git a/core/sqlite3/license.txt b/core/sqlite3/license.txt
new file mode 100644
index 000000000..118c5d5e6
--- /dev/null
+++ b/core/sqlite3/license.txt
@@ -0,0 +1,33 @@
+SQLite Copyright
+SQLite is in the
+Public Domain
+
+
+All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
+
+The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
+
+All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
+Obtaining An Explicit License To Use SQLite
+
+Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
+You are using SQLite in a jurisdiction that does not recognize the public domain.
+You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
+You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
+Your legal department tells you that you have to purchase a license.
+
+If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
+Contributed Code
+
+In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
+The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
+
+We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
+Hwaci
+6200 Maple Cove Lane
+Charlotte, NC 28269
+USA
+
+A template copyright release is available in PDF or HTML. You can use this release to make future changes.
+
+see http://www.sqlite.org/copyright.html \ No newline at end of file
diff --git a/core/sudo/PKGBUILD b/core/sudo/PKGBUILD
new file mode 100644
index 000000000..7281b56b0
--- /dev/null
+++ b/core/sudo/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 113374 2011-03-08 13:08:35Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sudo
+_ver=1.8.0
+pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgrel=4
+pkgdesc="Give certain users the ability to run some commands as root"
+arch=('i686' 'x86_64')
+url="http://www.sudo.ws/sudo/"
+license=('custom')
+depends=('glibc' 'pam')
+backup=('etc/sudoers' 'etc/pam.d/sudo')
+source=(ftp://ftp.sudo.ws/pub/sudo/$pkgname-$_ver.tar.gz
+ sudo_l.patch
+ sudo_validate_exitval.patch
+ sudo_noninteractive.patch
+ sudo.pam)
+options=('!libtool' '!makeflags')
+md5sums=('fa0a35330691af14cb1869f64a65aebc'
+ '29656b2f2365e14fa0f8eb94e61f3690'
+ '4751aa5557fe43fd8e03e0c7b5affcfc'
+ '47d152ade2c9a726684fa1227e46bfe3'
+ '4e7ad4ec8f2fe6a40e12bcb2c0b256e3')
+
+build() {
+ cd $srcdir/$pkgname-$_ver
+
+ # http://www.sudo.ws/bugs/show_bug.cgi?id=474
+ patch -Np1 -i $srcdir/sudo_l.patch
+
+ # http://www.sudo.ws/bugs/show_bug.cgi?id=479
+ patch -Np1 -i $srcdir/sudo_validate_exitval.patch
+
+ # http://www.sudo.ws/bugs/show_bug.cgi?id=478
+ patch -Np1 -i $srcdir/sudo_noninteractive.patch
+
+ ./configure --prefix=/usr --with-pam --libexecdir=/usr/lib \
+ --with-env-editor --with-all-insults --with-logfac=auth
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$_ver
+ install -dm755 $pkgdir/var/lib
+
+ make DESTDIR=$pkgdir install
+ install -Dm644 $srcdir/sudo.pam $pkgdir/etc/pam.d/sudo
+
+ install -Dm644 doc/LICENSE $pkgdir/usr/share/licenses/sudo/LICENSE
+}
diff --git a/core/sudo/sudo.pam b/core/sudo/sudo.pam
new file mode 100644
index 000000000..4e586cd22
--- /dev/null
+++ b/core/sudo/sudo.pam
@@ -0,0 +1,3 @@
+#%PAM-1.0
+auth required pam_unix.so
+auth required pam_nologin.so
diff --git a/core/sudo/sudo_l.patch b/core/sudo/sudo_l.patch
new file mode 100644
index 000000000..2115ed760
--- /dev/null
+++ b/core/sudo/sudo_l.patch
@@ -0,0 +1,21 @@
+diff -r df1bb67fb168 plugins/sudoers/sudo_nss.c
+--- a/plugins/sudoers/sudo_nss.c Wed Mar 02 12:39:11 2011 -0500
++++ b/plugins/sudoers/sudo_nss.c Thu Mar 03 09:37:48 2011 -0500
+@@ -309,6 +309,7 @@
+ /*
+ * Check user_cmnd against sudoers and print the matching entry if the
+ * command is allowed.
++ * Returns TRUE if the command is allowed, else FALSE.
+ */
+ int
+ display_cmnd(struct sudo_nss_list *snl, struct passwd *pw)
+@@ -320,7 +321,7 @@
+
+ tq_foreach_fwd(snl, nss) {
+ if (nss->display_cmnd(nss, pw) == 0)
+- return 0;
++ return TRUE;
+ }
+- return 1;
++ return FALSE;
+ }
diff --git a/core/sudo/sudo_noninteractive.patch b/core/sudo/sudo_noninteractive.patch
new file mode 100644
index 000000000..c0c4c4515
--- /dev/null
+++ b/core/sudo/sudo_noninteractive.patch
@@ -0,0 +1,15 @@
+diff -r fc3dd3be67e9 plugins/sudoers/sudoers.c
+--- a/plugins/sudoers/sudoers.c Sat Mar 05 15:34:30 2011 -0500
++++ b/plugins/sudoers/sudoers.c Sun Mar 06 15:35:39 2011 -0500
+@@ -1172,6 +1172,11 @@
+ SET(flags, MODE_IGNORE_TICKET);
+ continue;
+ }
++ if (MATCHES(*cur, "noninteractive=")) {
++ if (atobool(*cur + sizeof("noninteractive=") - 1) == TRUE)
++ SET(flags, MODE_NONINTERACTIVE);
++ continue;
++ }
+ if (MATCHES(*cur, "sudoedit=")) {
+ if (atobool(*cur + sizeof("sudoedit=") - 1) == TRUE)
+ SET(flags, MODE_EDIT);
diff --git a/core/sudo/sudo_validate_exitval.patch b/core/sudo/sudo_validate_exitval.patch
new file mode 100644
index 000000000..ccda68921
--- /dev/null
+++ b/core/sudo/sudo_validate_exitval.patch
@@ -0,0 +1,15 @@
+diff -r 172f29597bd2 plugins/sudoers/sudoers.c
+--- a/plugins/sudoers/sudoers.c Sun Mar 06 15:38:02 2011 -0500
++++ b/plugins/sudoers/sudoers.c Sun Mar 06 15:52:06 2011 -0500
+@@ -546,8 +546,10 @@
+ if (def_group_plugin)
+ group_plugin_unload();
+
+- if (ISSET(sudo_mode, (MODE_VALIDATE|MODE_CHECK|MODE_LIST)))
++ if (ISSET(sudo_mode, (MODE_VALIDATE|MODE_CHECK|MODE_LIST))) {
++ rval = TRUE;
+ goto done;
++ }
+
+ /*
+ * Set umask based on sudoers.
diff --git a/core/sysfsutils/PKGBUILD b/core/sysfsutils/PKGBUILD
new file mode 100644
index 000000000..9749d29b4
--- /dev/null
+++ b/core/sysfsutils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 108847 2011-02-04 11:49:39Z stephane $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=sysfsutils
+pkgver=2.1.0
+pkgrel=6
+pkgdesc="System Utilities Based on Sysfs"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+url="http://linux-diag.sourceforge.net/Sysfsutils.html"
+groups=('base')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/linux-diag/${pkgname}-${pkgver}.tar.gz)
+md5sums=('14e7dcd0436d2f49aa403f67e1ef7ddc')
+options=(!libtool)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ cd "${pkgdir}"
+ mkdir -v lib
+ mv -v usr/lib/libsysfs.so.2* lib/
+ ln -svf ../../lib/libsysfs.so.2 usr/lib/libsysfs.so
+}
diff --git a/core/syslinux/PKGBUILD b/core/syslinux/PKGBUILD
new file mode 100644
index 000000000..bfbd1f2c9
--- /dev/null
+++ b/core/syslinux/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 112767 2011-03-06 16:24:51Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=syslinux
+pkgver=4.03
+pkgrel=4
+arch=('i686' 'x86_64')
+pkgdesc="Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE"
+url="http://syslinux.zytor.com/"
+license=('GPL2')
+depends=('perl' 'glibc')
+optdepends=('perl-passwd-md5: For md5pass'
+ 'perl-digest-sha1: For sha1pass'
+ 'mtools: For mkdiskimage and syslinux'
+ )
+makedepends=('nasm')
+backup=('boot/syslinux/syslinux.cfg')
+install=syslinux.install
+source=(http://www.kernel.org/pub/linux/utils/boot/syslinux/$pkgname-${pkgver}.tar.bz2
+ syslinux-dont-build-dos-windows-targets.patch
+ syslinux.cfg
+ syslinux-install_update)
+sha256sums=('c65567e324f9d1f7f794ae8f9578a0292bbd47d7b8d895a004d2f0152d0bda38'
+ '7e9301e37113d8bcddadc3a7d2fd6f3f433ef20ef6fa6df9fe9e256fa8868753'
+ 'b4ba8f9daa67ec35da6e05adb610469bc8c4facf488468c1ec3e5860ba75313d'
+ '49573a3b65362326c8b1e9bfa49e83225e0bf9d3710454de4070abc9481c614c')
+
+build() {
+ # Do not try to build syslinux with our default LDFLAGS, it will fail
+ unset LDFLAGS
+ cd "$srcdir"/$pkgname-${pkgver}
+ # Do not try to build the Windows or DOS installers
+ patch -p1 -i "$srcdir"/syslinux-dont-build-dos-windows-targets.patch
+ # Fix FHS manpage path
+ sed 's|/usr/man|/usr/share/man|g' -i MCONFIG
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-${pkgver}
+ make INSTALLROOT="$pkgdir" AUXDIR=/usr/lib/syslinux install
+
+ # Install the default configuration
+ install -D -m644 "$srcdir"/syslinux.cfg "$pkgdir"/boot/syslinux/syslinux.cfg
+ # Install the installation and update script
+ # This script is maintained at git://gist.github.com/772138.git
+ install -D -m755 "$srcdir"/syslinux-install_update "$pkgdir"/usr/sbin/syslinux-install_update
+}
diff --git a/core/syslinux/syslinux-dont-build-dos-windows-targets.patch b/core/syslinux/syslinux-dont-build-dos-windows-targets.patch
new file mode 100644
index 000000000..2bac55185
--- /dev/null
+++ b/core/syslinux/syslinux-dont-build-dos-windows-targets.patch
@@ -0,0 +1,12 @@
+diff -Nur syslinux-4.02.orig//Makefile syslinux-4.02//Makefile
+--- syslinux-4.02.orig//Makefile 2010-07-21 21:33:13.000000000 +0200
++++ syslinux-4.02//Makefile 2010-07-22 11:14:03.325522937 +0200
+@@ -55,7 +55,7 @@
+ # files that depend only on the B phase, but may have to be regenerated
+ # for "make installer".
+ BSUBDIRS = codepage com32 lzo core memdisk modules mbr memdump gpxe sample \
+- libinstaller dos win32 win64 dosutil
++ libinstaller
+ ITARGET =
+ IOBJECTS = $(ITARGET) \
+ utils/gethostip utils/isohybrid utils/mkdiskimage \
diff --git a/core/syslinux/syslinux-install_update b/core/syslinux/syslinux-install_update
new file mode 100644
index 000000000..f7cd123e1
--- /dev/null
+++ b/core/syslinux/syslinux-install_update
@@ -0,0 +1,459 @@
+#!/bin/bash
+#
+# Sylinux Installer / Updater Scripts
+# Copyright (C) 2011 Matthew Gyurgyik <pyther@pyther.net>
+#
+# 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.
+#
+#-----------------
+# Exit Codes:
+# 1 - get_boot_device or other function failed
+# 2 - install/update failed
+# 3 - set_active failed
+# 4 - install_mbr failed
+#
+shopt -s nullglob
+
+libpath="/usr/lib/syslinux"
+bootpath="/boot/syslinux"
+extlinux="/sbin/extlinux"
+
+autoupdate_file=/boot/syslinux/SYSLINUX_AUTOUPDATE
+com32_files=(menu.c32 vesamenu.c32 chain.c32 hdt.c32 reboot.c32 poweroff.com)
+pciids_file=/usr/share/hwdata/pci.ids
+
+## Helper functions ##
+# Taken from libui-sh
+# $1 needle
+# $2 set (array) haystack
+check_is_in() {
+ local needle="$1" element
+ shift
+ for element; do
+ [[ $element = $needle ]] && return 0
+ done
+ return 1
+}
+
+# return true when blockdevice is an md raid, otherwise return a unset value
+# get all devices that are part of raid device $1
+device_is_raid() {
+ [[ $1 && -f /proc/mdstat ]] || return 1
+ local devmajor=$(stat -c %t "$1")
+ (( devmajor == 9 ))
+}
+
+mdraid_all_slaves() {
+ local slave slaves
+ for slave in /sys/class/block/${1##*/}/slaves/*; do
+ source "$slave/uevent"
+ slaves="$slaves/dev/$DEVNAME "
+ unset DEVNAME
+ done
+ echo $slaves
+}
+
+# Check /sys/block to see if device is partitioned
+# If we have a partitioned block device (sda1) /sys/block/sda1/dev will not exist
+# However, if we have an unpartitioned block device (sda) /sys/block/sda/dev will exist
+dev_is_part() {
+ # $1 - blockdevice
+ local dev=$1
+
+ # If block device uevent file should be found
+ # If a partition is passed in path shouldn't exist
+ if [[ $dev = *cciss* ]]; then
+ [[ -f /sys/block/cciss\!${dev##*/}/dev ]] && return 1
+ elif [[ $dev = *ida* ]]; then
+ [[ -f /sys/block/ida\!${dev##*/}/dev ]] && return 1
+ else
+ [[ -f /sys/block/${dev##*/}/dev ]] && return 1
+ fi
+
+ return 0
+}
+
+# If EFI PART is present in the first 8 bytes then it must be a GPT disk
+device_is_gpt() {
+ local partsig=$(dd if="$1" skip=64 bs=8 count=1 2>/dev/null)
+ [[ $partsig = "EFI PART" ]]
+}
+
+clear_gpt_attr2() {
+ # $1 - Block Device, no partitions
+ local disk=$1
+
+ # Special Exception for cciss controllers
+ if [[ $disk = *cciss* ]]; then
+ for part in /dev/cciss/${disk##*/}*p*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ # Smart 2 Controllers
+ elif [[ $disk = *ida* ]]; then
+ for part in /dev/ida/${disk##*/}*p*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ else
+ for part in /sys/block/${disk##*/}/${disk##*/}*; do
+ local partnum="${part##*[[:alpha:]]}"
+ sgdisk "$disk" --attributes="$partnum":clear:2 &>/dev/null
+ done
+ fi
+ return 0
+}
+
+usage() {
+cat << EOF
+usage: $0 options
+
+This script will install or upgrade Syslinux
+
+OPTIONS:
+ -h Show this message
+ -i Install Syslinux
+ -u Update Syslinux
+ -a Set Boot flag on boot partiton
+ -m Install Syslinux MBR
+ -s Updates Syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
+
+ Arguments Required:
+ -c Chroot install (ex: -c /mnt)
+
+Example Usage: syslinux-install_update.sh -i -a -m (install, set boot flag, install mbr)
+ syslinux-install_update.sh -u (update)
+EOF
+}
+
+# Trys to find the partition that /boot resides on
+# This will either be on /boot or / (root)
+getBoot() {
+ if [[ ! -d "$bootpath" ]]; then
+ echo "Could not find $bootpath"
+ echo "Is boot mounted? Is Syslinux installed?"
+ exit 1
+ fi
+
+ syslinux_fs=(ext2 ext3 ext4 btrfs vfat)
+
+ # Use DATA from findmnt see rc.sysint for more info
+ if [[ -f /proc/self/mountinfo ]]; then
+ read rootdev rootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/")
+ read bootdev bootfs < <(findmnt -run -t noautofs -o SOURCE,FSTYPE "$CHROOT/boot")
+ else
+ echo "Could not find /proc/self/mountinfo"
+ echo "Are you running a kernel greater than 2.6.24?"
+ exit 1
+ fi
+
+ if [[ $bootfs ]]; then
+ if ! check_is_in "$bootfs" "${syslinux_fs[@]}"; then
+ echo "/boot file system is not supported by Syslinux"
+ exit 1
+ fi
+ boot="boot"
+ bootpart="$bootdev"
+ elif [[ $rootfs ]]; then
+ if ! check_is_in "$rootfs" "${syslinux_fs[@]}"; then
+ echo "/ (root) file system is not supported by Syslinux"
+ exit 1
+ fi
+ boot="root"
+ bootpart="$rootdev"
+ else
+ echo "Could not find filesystem on / (root) or /boot."
+ exit 1
+ fi
+}
+
+# We store the partition table type either gpt or mbr in var ptb
+# In rare cases a user could have one raid disk using mbr and another using gpt
+# In such cases we accept that the output may be incomplete
+
+# Calls get_ptb() for $bootpart or for all device in RAID
+declare -A bootdevs
+get_boot_devices() {
+ if device_is_raid "$bootpart"; then
+ slaves=$(mdraid_all_slaves "$bootpart")
+
+ for slave in ${slaves[@]}; do
+ local disk="${slave%%[[:digit:]]*}"
+ device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
+ bootdevs[$slave]="$ptb"
+ done
+ else
+ local disk="${bootpart%%[[:digit:]]*}"
+ device_is_gpt "$disk" && local ptb="GPT" || local ptb="MBR"
+ bootdevs[$bootpart]="$ptb"
+ fi
+}
+
+# Function Assumes the boot partition should be marked as active
+# All other partitions should not have the boot flag set
+set_active() {
+ # If any bootdev is a block device without partitions bail
+ # we want to set the boot flag on partitioned disk
+ for dev in "${!bootdevs[@]}"; do
+ dev_is_part $dev || { echo "$dev - is a block device. Aborting set_active!"; return 1; }
+ done
+
+ # Clear BIOS Bootable Legacy Attribute for GPT drives
+ # In rare cases where a RAID device has slaves on the same block device
+ # Attribute 2 will be cleared for each partition multiple times
+ for dev in "${!bootdevs[@]}"; do
+ local ptb="${bootdevs[$dev]}"
+ if [[ "$ptb" = GPT ]]; then
+ local disk="${dev%%[[:digit:]]*}" #ex: /dev/sda
+ clear_gpt_attr2 "$disk"
+ fi
+ done
+
+ # Set the boot flag on bootdevs (generated from get_boot_devices)
+ for part in "${!bootdevs[@]}"; do
+ local ptb="${bootdevs[$part]}"
+ local partnum="${part##*[[:alpha:]]}"
+ case "$part" in
+ *[[:digit:]]p[[:digit:]]*)
+ local disk="${part%%p$partnum}" # get everything before p1
+ ;;
+ *)
+ local disk="${part%%[[:digit:]]*}"
+ ;;
+ esac
+
+ if [[ "$ptb" = MBR ]]; then
+ if sfdisk "$disk" -A "$partnum" &>/dev/null; then
+ echo "Boot Flag Set - $part"
+ else
+ echo "FAILED to Set the boot flag on $part"
+ exit 3
+ fi
+ elif [[ "$ptb" = GPT ]]; then
+ if sgdisk "$disk" --attributes="$partnum":set:2 &>/dev/null; then
+ echo "Attribute Legacy Bios Bootable Set - $part"
+ else
+ echo "FAILED to set attribute Legacy BIOS Bootable on $part"
+ exit 3
+ fi
+ fi
+ done
+ return 0
+}
+
+install_mbr() {
+ # If any bootdev is a block device without partitions bail
+ # we want to install the mbr to a partitioned disk
+ for dev in "${!bootdevs[@]}"; do
+ dev_is_part "$dev" || { echo "$dev - is a block device. Aborting MBR install"; return 1; }
+ done
+
+ for part in "${!bootdevs[@]}"; do
+ local partnum="${part##*[[:alpha:]]}"
+ case "$part" in
+ *[[:digit:]]p[[:digit:]]*)
+ local disk="${part%%p$partnum}" # get everything before p1
+ ;;
+ *)
+ local disk="${part%%[[:digit:]]*}"
+ ;;
+ esac
+ local ptb="${bootdevs[$part]}"
+
+ # We want to install to the root of the block device
+ # If the device is a partition - ABORT!
+ dev_is_part "$disk" && \
+ { echo "ABORT! MBR installation to partition ($disk)!"; exit 4;}
+
+ if [[ "$ptb" = MBR ]]; then
+ mbrfile="$libpath/mbr.bin"
+ elif [[ "$ptb" = GPT ]]; then
+ mbrfile="$libpath/gptmbr.bin"
+ fi
+
+ if dd bs=440 count=1 conv=notrunc if="$mbrfile" of="$disk" &> /dev/null; then
+ echo "Installed MBR ($mbrfile) to $disk"
+ else
+ echo "Error Installing MBR ($mbrfile) to $disk"
+ exit 4
+ fi
+ done
+ return 0
+}
+
+_install() {
+ # Copy files to /boot
+ for file in "${com32_files[@]}"; do
+ # Symlink files even if links exist
+ if [[ "$boot" = root ]]; then
+ ln -s "${libpath#$CHROOT}/$file" "$bootpath/$file" &> /dev/null
+ elif [[ "$boot" = boot ]]; then
+ cp "$libpath/$file" "$bootpath/$file"
+ fi
+ done
+
+ # Copy / Symlink pci.ids if we copy the com32 module and if pci.ids exists in the FS
+ if check_is_in "hdt.c32" "${com32_files[@]}" && [[ -f $pciids_file ]]; then
+ if [[ "$boot" = root ]]; then
+ ln -s "$pciids_file" "$bootpath/pci.ids" &> /dev/null
+ elif [[ "$boot" = boot ]]; then
+ cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null
+ fi
+ fi
+
+ if device_is_raid "$bootpart"; then
+ echo "Detected RAID on /boot - installing Syslinux with --raid"
+ "$extlinux" --install "$bootpath" -r > /dev/null 2>&1
+ else
+ "$extlinux" --install "$bootpath" > /dev/null 2>&1
+ fi
+
+ if (( $? )); then
+ echo "Syslinux install failed"
+ exit 2
+ else
+ echo "Syslinux install successful"
+ fi
+
+ touch "$CHROOT/$autoupdate_file"
+}
+
+update() {
+ # Update any com and c32 files in /boot
+ if [[ "$boot" = boot ]]; then
+ for file in "$bootpath"/*.{c32,com}; do
+ file=$(basename "$file")
+ cp "$libpath/$file" "$bootpath/$file" &> /dev/null
+ done
+ if [[ -f "$bootpath/pci.ids" ]]; then
+ cp "$pciids_file" "$bootpath/pci.ids" &> /dev/null
+ fi
+ fi
+
+ if device_is_raid $bootpart; then
+ echo "Detected RAID on /boot - installing Syslinux with --raid"
+ "$extlinux" --update "$bootpath" -r &> /dev/null
+ else
+ "$extlinux" --update "$bootpath" &> /dev/null
+ fi
+
+ if (($?)); then
+ echo "Syslinux update failed"
+ exit 2
+ else
+ echo "Syslinux update successful"
+ fi
+}
+
+# Make sure only root can run our script
+if (( $(id -u) != 0 )); then
+ echo "This script must be run as root" 1>&2
+ exit 1
+fi
+
+if (( $# == 0 )); then
+ usage
+ exit 1
+fi
+
+while getopts "c:uihmas" opt; do
+ case $opt in
+ c)
+ CHROOT=$(readlink -e "$OPTARG")
+ if [[ -z $CHROOT ]]; then
+ echo "error: chroot path ``$OPTARG does not exist";
+ exit 1
+ fi
+ ;;
+ h)
+ usage
+ exit 0
+ ;;
+ i)
+ INSTALL="True"
+ ;;
+ u)
+ UPDATE="True"
+ ;;
+ m)
+ MBR="True"
+ ;;
+ a)
+ SET_ACTIVE="True"
+ ;;
+ s)
+ # If AUTOUPDATE_FILE does not exist exit the script
+ if [[ -f $autoupdate_file ]]; then
+ UPDATE="True"
+ else
+ exit 0
+ fi
+ ;;
+ *)
+ usage
+ exit 1
+ ;;
+ esac
+done
+
+# Display Usage Information if both Install and Update are passed
+if [[ $INSTALL && $UPDATE ]]; then
+ usage
+ exit 1
+fi
+
+# If a chroot dir is path set variables to reflect chroot
+if [[ "$CHROOT" ]]; then
+ libpath="$CHROOT$libpath"
+ bootpath="$CHROOT$bootpath"
+ extlinux="$CHROOT$extlinux"
+fi
+
+# Exit if no /boot path exists
+if ( f=("$bootpath"/*); (( ! ${#f[@]} )) ); then
+ echo "Error: $bootpath is empty!"
+ echo "Is /boot mounted?"
+ exit 1
+fi
+
+# Get the boot device if any of these options are passed
+if [[ $INSTALL || $UPDATE || $SET_ACTIVE || $MBR ]]; then
+ getBoot
+fi
+
+# Install or Update
+if [[ $INSTALL ]]; then
+ _install || exit
+elif [[ $UPDATE ]]; then
+ update || exit
+fi
+
+
+# SET_ACTIVE and MBR
+if [[ $SET_ACTIVE ]] || [[ $MBR ]]; then
+ get_boot_devices
+
+ if [[ $SET_ACTIVE ]]; then
+ set_active || exit
+ fi
+
+ if [[ $MBR ]]; then
+ install_mbr || exit
+ fi
+fi
+
+exit 0
+
+# vim: set et sw=4:
diff --git a/core/syslinux/syslinux.cfg b/core/syslinux/syslinux.cfg
new file mode 100644
index 000000000..2212283a8
--- /dev/null
+++ b/core/syslinux/syslinux.cfg
@@ -0,0 +1,79 @@
+# Config file for Syslinux -
+# /boot/syslinux/syslinux.cfg
+#
+# Comboot modules:
+# * menu.c32 - provides a text menu
+# * vesamenu.c32 - provides a graphical menu
+# * chain.c32 - chainload MBRs, partition boot sectors, Windows bootloaders
+# * hdt.c32 - hardware detection tool
+# * reboot.c32 - reboots the system
+# * poweroff.com - shutdown the system
+#
+# To Use: Copy the respective files from /usr/lib/syslinux to /boot/syslinux.
+# If /usr and /boot are on the same file system, symlink the files instead
+# of copying them.
+#
+# If you do not use a menu, a 'boot:' prompt will be shown and the system
+# will boot automatically after 5 seconds.
+#
+# Please review the wiki: https://wiki.archlinux.org/index.php/Syslinux
+# The wiki provides further configuration examples
+
+DEFAULT arch
+PROMPT 0 # Change to 1 if you do not want to use a menu
+TIMEOUT 50
+# You can create syslinux keymaps with the keytab-lilo tool
+#KBDMAP de.ktl
+
+# Menu Configuration
+# Either menu.c32 or vesamenu32.c32 must be copied to /boot/syslinux
+UI menu.c32
+#UI vesamenu.c32
+
+# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+MENU TITLE Arch Linux
+#MENU BACKGROUND splash.png
+MENU COLOR border 30;44 #40ffffff #a0000000 std
+MENU COLOR title 1;36;44 #9033ccff #a0000000 std
+MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all
+MENU COLOR unsel 37;44 #50ffffff #a0000000 std
+MENU COLOR help 37;40 #c0ffffff #a0000000 std
+MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
+MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
+MENU COLOR msg07 37;40 #90ffffff #a0000000 std
+MENU COLOR tabmsg 31;40 #30ffffff #00000000 std
+
+# boot sections follow
+#
+# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
+#
+#-*
+
+LABEL arch
+ MENU LABEL Arch Linux
+ LINUX ../vmlinuz26
+ APPEND root=/dev/sda3 ro
+ INITRD ../kernel26.img
+
+LABEL archfallback
+ MENU LABEL Arch Linux Fallback
+ LINUX ../vmlinuz26
+ APPEND root=/dev/sda3 ro
+ INITRD ../kernel26-fallback.img
+
+#LABEL windows
+# MENU LABEL Windows
+# COM32 chain.c32
+# APPEND hd0 1
+
+LABEL hdt
+ MENU LABEL HDT (Hardware Detection Tool)
+ COM32 hdt.c32
+
+LABEL reboot
+ MENU LABEL Reboot
+ COM32 reboot.c32
+
+LABEL off
+ MENU LABEL Power Off
+ COMBOOT poweroff.com
diff --git a/core/syslinux/syslinux.install b/core/syslinux/syslinux.install
new file mode 100644
index 000000000..0dc0ece36
--- /dev/null
+++ b/core/syslinux/syslinux.install
@@ -0,0 +1,13 @@
+post_install() {
+ echo "==> If you want to use syslinux as your bootloader"
+ echo "==> edit /boot/syslinux/syslinux.cfg and run"
+ echo "==> # /usr/sbin/syslinux-install_update -i -a -m"
+ echo "==> to install it."
+}
+
+post_upgrade() {
+ # auto-update syslinux if /boot/syslinux/SYSLINUX_AUTOUPDATE exists
+ /usr/sbin/syslinux-install_update -s
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/core/syslog-ng/PKGBUILD b/core/syslog-ng/PKGBUILD
new file mode 100644
index 000000000..3f55ee147
--- /dev/null
+++ b/core/syslog-ng/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 109435 2011-02-09 17:44:22Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=syslog-ng
+pkgver=3.2.2
+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' 'tcp_wrappers' 'openssl' 'libcap')
+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)
+md5sums=('ed8ebe559d52a63fb61e3e2db566643f' '344dddfff946300f5576b13a7e8ea19f'\
+ '735636090be4582885974542d2a75855' '9bd98250cfa49e13fa3fa731b6040549')
+sha1sums=('3a340f8e72b460cc0bc1ec1d4c86b74678912dd6' 'b9eb8c61f7cccda543fc5c97fe1d40a8d15e713f'\
+ 'ac997b25d7d8e69e66782d3771a0e12aff55ae7f' '65ba6f0b92b8acc8ec97bb381762f5fbef4d1beb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc/syslog-ng \
+ --libexecdir=/usr/lib --localstatedir=/var/lib/syslog-ng \
+ --enable-tcp-wrapper \
+ --with-pidfile-dir=/var/run \
+ --disable-spoof-source
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make 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/core/syslog-ng/syslog-ng.conf b/core/syslog-ng/syslog-ng.conf
new file mode 100644
index 000000000..6e3362681
--- /dev/null
+++ b/core/syslog-ng/syslog-ng.conf
@@ -0,0 +1,92 @@
+@version: 3.2
+#
+# /etc/syslog-ng/syslog-ng.conf
+#
+
+options {
+ stats_freq (0);
+ flush_lines (0);
+ time_reopen (10);
+ log_fifo_size (1000);
+ long_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/core/syslog-ng/syslog-ng.logrotate b/core/syslog-ng/syslog-ng.logrotate
new file mode 100644
index 000000000..e0e6929f2
--- /dev/null
+++ b/core/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 /var/run/syslog-ng.pid 2>/dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/core/syslog-ng/syslog-ng.rc b/core/syslog-ng/syslog-ng.rc
new file mode 100755
index 000000000..f9d14c7f6
--- /dev/null
+++ b/core/syslog-ng/syslog-ng.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/syslog-ng`
+case "$1" in
+ start)
+ stat_busy "Starting Syslog-NG"
+ [ -z "$PID" ] && /usr/sbin/syslog-ng
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon syslog-ng
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Syslog-NG"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/syslog-ng.pid
+# Removing stale syslog-ng.persist file. It's new location, as of 2.0.6-1, is /var/lib/syslog-ng/
+ rm -f /var/syslog-ng.persist
+ rm_daemon syslog-ng
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/sysvinit/PKGBUILD b/core/sysvinit/PKGBUILD
new file mode 100644
index 000000000..308393932
--- /dev/null
+++ b/core/sysvinit/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 92996 2010-10-02 19:26:38Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=sysvinit
+pkgver=2.88
+pkgrel=2
+pkgdesc="Linux System V Init"
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/sysvinit"
+license=('GPL')
+groups=('base')
+depends=('shadow' 'util-linux' 'coreutils' 'glibc' 'awk')
+install=sysvinit.install
+source=(http://download.savannah.gnu.org/releases/sysvinit/${pkgname}-${pkgver}dsf.tar.bz2)
+md5sums=('6eda8a97b86e0a6f59dabbf25202aa6f')
+sha1sums=('f2ca149df1314a91f3007cccd7a0aa47d990de26')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}dsf"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}dsf"
+ make ROOT="${pkgdir}" install
+}
diff --git a/core/sysvinit/sysvinit.install b/core/sysvinit/sysvinit.install
new file mode 100644
index 000000000..2f0e62e74
--- /dev/null
+++ b/core/sysvinit/sysvinit.install
@@ -0,0 +1,3 @@
+post_upgrade() {
+ [ -x sbin/init ] && sbin/init u
+}
diff --git a/core/tar/PKGBUILD b/core/tar/PKGBUILD
new file mode 100644
index 000000000..de8610670
--- /dev/null
+++ b/core/tar/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 114404 2011-03-13 10:37:30Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=tar
+pkgver=1.26
+pkgrel=1
+pkgdesc="Utility used to store, backup, and transport files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/tar/tar.html"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'sh')
+options=('!emptydirs')
+install=tar.install
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz
+ tar.1)
+md5sums=('0ced6f20b9fa1bea588005b5ad4b52c1'
+ 'e0538778516a284e3558c454b2576c2f')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib/tar --bindir=/bin
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+ install -Dm644 ${srcdir}/tar.1 ${pkgdir}/usr/share/man/man1/tar.1
+}
diff --git a/core/tar/tar.1 b/core/tar/tar.1
new file mode 100644
index 000000000..872c8dcec
--- /dev/null
+++ b/core/tar/tar.1
@@ -0,0 +1,364 @@
+.\" generated by script on Wed Mar 10 17:01:09 2010
+.Dd Mar 10, 2010
+.Dt TAR 1
+.Sh NAME
+.Nm tar
+.Nd The GNU version of the tar archiving utility
+.Sh SYNOPSIS
+.Nm tar
+.Oo Fl Oc Cm A Fl \-catenate \-concatenate Cm \||\| c Fl \-create Cm \||\| d Fl \-diff \-compare Cm \||\| Fl \-delete Cm \||\| r Fl \-append Cm \||\| t Fl \-list Cm \||\| Fl \-test\-label Cm \||\| u Fl \-update Cm \||\| x Fl \-extract \-get
+.Op Ar options
+.Op Ar pathname ...
+.Sh DESCRIPTION
+.Nm Tar
+stores and extracts files from a tape or disk archive.
+.Pp
+The first argument to
+tar
+should be a function; either one of the letters
+.Cm Acdrtux ,
+or one of the long function names.
+A function letter need not be prefixed with ``\-'', and may be combined
+with other single-letter options.
+A long function name must be prefixed with
+.Cm \\-\\- .
+Some options take a parameter; with the single-letter form
+these must be given as separate arguments.
+With the long form, they may be given by appending
+.Cm = Ns Ar value
+to the option.
+.Sh FUNCTION LETTERS
+Main operation mode:
+.Bl -tag -width flag
+.It Fl A , Fl \-catenate , Fl \-concatenate
+append tar files to an archive
+.It Fl c , Fl \-create
+create a new archive
+.It Fl d , Fl \-diff , Fl \-compare
+find differences between archive and file system
+.It Fl \-delete
+delete from the archive (not on mag tapes!)
+.It Fl r , Fl \-append
+append files to the end of an archive
+.It Fl t , Fl \-list
+list the contents of an archive
+.It Fl \-test\-label
+test the archive volume label and exit
+.It Fl u , Fl \-update
+only append files newer than copy in archive
+.It Fl x , Fl \-extract , Fl \-get
+extract files from an archive
+.El
+.Sh OTHER OPTIONS
+Operation modifiers:
+.Bl -tag -width flag
+.It \-[0\-7][lmh]
+specify drive and density
+.It Fl a , Fl \-auto\-compress
+use archive suffix to determine the compression program
+.It Fl \-add\-file Ns \= Ns Ar FILE
+add given FILE to the archive (useful if its name starts with a dash)
+.It Fl \-anchored
+patterns match file name start
+.It Fl \-no\-anchored
+patterns match after any `/' (default for exclusion)
+.It Fl \-atime\-preserve
+preserve access times on dumped files, either by restoring the times
+.It Fl \-no\-auto\-compress
+do not use archive suffix to determine the compression program
+.It Fl b , Fl \-blocking\-factor Ar BLOCKS
+BLOCKS x 512 bytes per record
+.It Fl B , Fl \-read\-full\-records
+reblock as we read (for 4.2BSD pipes)
+.It Fl \-backup
+backup before removal, choose version CONTROL
+.It Fl C , Fl \-directory Ar DIR
+change to directory DIR
+.It Fl \-check\-device
+check device numbers when creating incremental archives (default)
+.It Fl \-no\-check\-device
+do not check device numbers when creating incremental archives
+.It Fl \-checkpoint
+display progress messages every NUMBERth record (default 10)
+.It Fl \-checkpoint\-action Ns \= Ns Ar ACTION
+execute ACTION on each checkpoint
+.It Fl \-delay\-directory\-restore
+delay setting modification times and permissions of extracted
+.It Fl \-no\-delay\-directory\-restore
+cancel the effect of --delay-directory-restore option
+.It Fl \-exclude Ns \= Ns Ar PATTERN
+exclude files, given as a PATTERN
+.It Fl \-exclude\-backups
+exclude backup and lock files
+.It Fl \-exclude\-caches
+exclude contents of directories containing CACHEDIR.TAG,
+.It Fl \-exclude\-caches\-all
+exclude directories containing CACHEDIR.TAG
+.It Fl \-exclude\-caches\-under
+exclude everything under directories containing CACHEDIR.TAG
+.It Fl \-exclude\-tag Ns \= Ns Ar FILE
+exclude contents of directories containing FILE, except
+.It Fl \-exclude\-tag\-all Ns \= Ns Ar FILE
+exclude directories containing FILE
+.It Fl \-exclude\-tag\-under Ns \= Ns Ar FILE
+exclude everything under directories containing FILE
+.It Fl \-exclude\-vcs
+exclude version control system directories
+.It Fl f , Fl \-file Ar ARCHIVE
+use archive file or device ARCHIVE
+.It Fl F , Fl \-info\-script , Fl \-new\-volume\-script Ar NAME
+run script at end of each tape (implies -M)
+.It Fl \-force\-local
+archive file is local even if it has a colon
+.It Fl g , Fl \-listed\-incremental Ar FILE
+handle new GNU-format incremental backup
+.It Fl G , Fl \-incremental
+handle old GNU-format incremental backup
+.It Fl \-group Ns \= Ns Ar NAME
+force NAME as group for added files
+.It Fl h , Fl \-dereference
+follow symlinks; archive and dump the files they point to
+.It Fl H , Fl \-format Ar FORMAT
+create archive of the given formatFORMAT is one of the following:
+.Bl -tag -width flag
+.It Fl \-format=gnu
+GNU tar 1.13.x format
+.It Fl \-format=oldgnu
+GNU format as per tar <= 1.12
+.It Fl \-format=pax
+POSIX 1003.1-2001 (pax) format
+.It Fl \-format=posix
+same as pax
+.It Fl \-format=ustar
+POSIX 1003.1-1988 (ustar) format
+.It Fl \-format=v7
+old V7 tar format
+.El
+.It Fl \-hard\-dereference
+follow hard links; archive and dump the files they refer to
+.It Fl i , Fl \-ignore\-zeros
+ignore zeroed blocks in archive (means EOF)
+.It Fl I , Fl \-use\-compress\-program Ar PROG
+filter through PROG (must accept -d)
+.It Fl \-ignore\-case
+ignore case
+.It Fl \-no\-ignore\-case
+case sensitive matching (default)
+.It Fl \-ignore\-command\-error
+ignore exit codes of children
+.It Fl \-no\-ignore\-command\-error
+treat non-zero exit codes of children as error
+.It Fl \-ignore\-failed\-read
+do not exit with nonzero on unreadable files
+.It Fl \-index\-file Ns \= Ns Ar FILE
+send verbose output to FILE
+.It Fl j , Fl \-bzip2
+
+.It Fl J , Fl \-xz
+
+.It Fl k , Fl \-keep\-old\-files
+don't replace existing files when extracting
+.It Fl K , Fl \-starting\-file Ar MEMBER-NAME
+begin at member MEMBER-NAME in the archive
+.It Fl \-keep\-newer\-files
+don't replace existing files that are newer than their archive copies
+.It Fl l , Fl \-check\-links
+print a message if not all links are dumped
+.It Fl L , Fl \-tape\-length Ar NUMBER
+change tape after writing NUMBER x 1024 bytes
+.It Fl \-level Ns \= Ns Ar NUMBER
+dump level for created listed-incremental archive
+.It Fl \-lzip
+
+.It Fl \-lzma
+
+.It Fl \-lzop
+
+.It Fl m , Fl \-touch
+don't extract file modified time
+.It Fl M , Fl \-multi\-volume
+create/list/extract multi-volume archive
+.It Fl \-mode Ns \= Ns Ar CHANGES
+force (symbolic) mode CHANGES for added files
+.It Fl \-mtime Ns \= Ns Ar DATE-OR-FILE
+set mtime for added files from DATE-OR-FILE
+.It Fl n , Fl \-seek
+archive is seekable
+.It Fl N , Fl \-newer , Fl \-after\-date Ar DATE-OR-FILE
+only store files newer than DATE-OR-FILE
+.It Fl \-newer\-mtime Ns \= Ns Ar DATE
+compare date and time when data changed only
+.It Fl \-null
+-T reads null-terminated names, disable -C
+.It Fl \-no\-null
+disable the effect of the previous --null option
+.It Fl \-numeric\-owner
+always use numbers for user/group names
+.It Fl O , Fl \-to\-stdout
+extract files to standard output
+.It Fl \-occurrence
+process only the NUMBERth occurrence of each file in the archive;
+.It Fl \-old\-archive , Fl \-portability
+same as --format=v7
+.It Fl \-one\-file\-system
+stay in local file system when creating archive
+.It Fl \-overwrite
+overwrite existing files when extracting
+.It Fl \-overwrite\-dir
+overwrite metadata of existing directories when extracting (default)
+.It Fl \-no\-overwrite\-dir
+preserve metadata of existing directories
+.It Fl \-owner Ns \= Ns Ar NAME
+force NAME as owner for added files
+.It Fl p , Fl \-preserve\-permissions , Fl \-same\-permissions
+extract information about file permissions (default for superuser)
+.It Fl P , Fl \-absolute\-names
+don't strip leading `/'s from file names
+.It Fl \-pax\-option Ns \= Ns Ar keyword[[:]=value][,keyword[[:]=value]]...
+control pax keywords
+.It Fl \-posix
+same as --format=posix
+.It Fl \-preserve
+same as both -p and -s
+.It Fl \-quote\-chars Ns \= Ns Ar STRING
+additionally quote characters from STRING
+.It Fl \-no\-quote\-chars Ns \= Ns Ar STRING
+disable quoting for characters from STRING
+.It Fl \-quoting\-style Ns \= Ns Ar STYLE
+set name quoting style; see below for valid STYLE values
+.It Fl R , Fl \-block\-number
+show block number within archive with each message
+.It Fl \-record\-size Ns \= Ns Ar NUMBER
+NUMBER of bytes per record, multiple of 512
+.It Fl \-recursion
+recurse into directories (default)
+.It Fl \-no\-recursion
+avoid descending automatically in directories
+.It Fl \-recursive\-unlink
+empty hierarchies prior to extracting directory
+.It Fl \-remove\-files
+remove files after adding them to the archive
+.It Fl \-restrict
+disable use of some potentially harmful options
+.It Fl \-rmt\-command Ns \= Ns Ar COMMAND
+use given rmt COMMAND instead of rmt
+.It Fl \-rsh\-command Ns \= Ns Ar COMMAND
+use remote COMMAND instead of rsh
+.It Fl s , Fl \-preserve\-order , Fl \-same\-order
+sort names to extract to match archive
+.It Fl S , Fl \-sparse
+handle sparse files efficiently
+.It Fl \-same\-owner
+try extracting files with the same ownership as exists in the archive (default for superuser)
+.It Fl \-no\-same\-owner
+extract files as yourself (default for ordinary users)
+.It Fl \-no\-same\-permissions
+apply the user's umask when extracting permissions from the archive (default for ordinary users)
+.It Fl \-no\-seek
+archive is not seekable
+.It Fl \-show\-defaults
+show tar defaults
+.It Fl \-show\-omitted\-dirs
+when listing or extracting, list each directory that does not match search criteria
+.It Fl \-show\-transformed\-names , Fl \-show\-stored\-names
+show file or archive names after transformation
+.It Fl \-sparse\-version Ns \= Ns Ar MAJOR[.MINOR]
+set version of the sparse format to use (implies --sparse)
+.It Fl \-strip\-components Ns \= Ns Ar NUMBER
+strip NUMBER leading components from file names on extraction
+.It Fl \-suffix Ns \= Ns Ar STRING
+backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)
+.It Fl T , Fl \-files\-from Ar FILE
+get names to extract or create from FILE
+.It Fl \-to\-command Ns \= Ns Ar COMMAND
+pipe extracted files to another program
+.It Fl \-totals
+print total bytes after processing the archive;
+.It Fl \-transform , Fl \-xform Ar EXPRESSION
+use sed replace EXPRESSION to transform file names
+.It Fl U , Fl \-unlink\-first
+remove each file prior to extracting over it
+.It Fl \-unquote
+unquote filenames read with -T (default)
+.It Fl \-no\-unquote
+do not unquote filenames read with -T
+.It Fl \-utc
+print file modification dates in UTC
+.It Fl v , Fl \-verbose
+verbosely list files processed
+.It Fl V , Fl \-label Ar TEXT
+create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name
+.It Fl \-volno\-file Ns \= Ns Ar FILE
+use/update the volume number in FILE
+.It Fl w , Fl \-interactive , Fl \-confirmation
+ask for confirmation for every action
+.It Fl W , Fl \-verify
+attempt to verify the archive after writing it
+.It Fl \-warning Ns \= Ns Ar KEYWORD
+warning control
+.It Fl \-wildcards
+use wildcards (default for exclusion)
+.It Fl \-wildcards\-match\-slash
+wildcards match `/' (default for exclusion)
+.It Fl \-no\-wildcards\-match\-slash
+wildcards do not match `/'
+.It Fl \-no\-wildcards
+verbatim string matching
+.It Fl X , Fl \-exclude\-from Ar FILE
+exclude patterns listed in FILE
+.It Fl z , Fl \-gzip , Fl \-gunzip Fl \-ungzip
+
+.It Fl Z , Fl \-compress , Fl \-uncompress
+
+.El
+.Sh ENVIRONMENT
+The behavior of tar is controlled by the following environment variables,
+among others:
+.Bl -tag -width Ds
+.It Ev SIMPLE_BACKUP_SUFFIX
+Backup prefix to use when extracting, if
+.Fl \-suffix
+is not specified.
+The backup suffix defaults to `~' if neither is specified.
+.It Ev TAR_OPTIONS
+Options to prepend to those specified on the command line, separated by
+whitespace. Embedded backslashes may be used to escape whitespace or
+backslashes within an option.
+.It Ev TAPE
+Device or file to use for the archive if
+.Fl \-file
+is not specified.
+If this environment variable is unset, use stdin or stdout instead.
+.El
+.Sh EXAMPLES
+Create archive.tar from files foo and bar.
+.Bd -literal -offset indent -compact
+tar \-cf archive.tar foo bar
+.Ed
+List all files in archive.tar verbosely.
+.Bd -literal -offset indent -compact
+tar \-tvf archive.tar
+.Ed
+Extract all files from archive.tar.
+.Bd -literal -offset indent -compact
+tar \-xf archive.tar
+.Ed
+.Sh SEE ALSO
+.\" libarchive
+.Xr tar 5 ,
+.\" man-pages
+.Xr symlink 7 ,
+.Xr rmt 8
+.Sh HISTORY
+The
+.Nm tar
+command appeared in
+.At v7 .
+.Sh BUGS
+The GNU folks, in general, abhor man pages, and create info documents instead.
+Unfortunately, the info document describing tar is licensed under the GFDL with
+invariant cover texts, which makes it impossible to include any text
+from that document in this man page.
+Most of the text in this document was automatically extracted from the usage
+text in the source.
+It may not completely describe all features of the program.
diff --git a/core/tar/tar.install b/core/tar/tar.install
new file mode 100644
index 000000000..8de1f9766
--- /dev/null
+++ b/core/tar/tar.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(tar.info tar.info-1 tar.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/core/tcp_wrappers/01_all_redhat-bug11881.patch b/core/tcp_wrappers/01_all_redhat-bug11881.patch
new file mode 100644
index 000000000..0c869b4a4
--- /dev/null
+++ b/core/tcp_wrappers/01_all_redhat-bug11881.patch
@@ -0,0 +1,35 @@
+--- tcp_wrappers_7.6/tcpd.c.bug11881 Thu Jul 27 15:39:27 2000
++++ tcp_wrappers_7.6/tcpd.c Thu Jul 27 15:41:54 2000
+@@ -60,10 +60,10 @@
+ */
+
+ if (argv[0][0] == '/') {
+- strcpy(path, argv[0]);
++ strncpy(path, argv[0], sizeof(path));
+ argv[0] = strrchr(argv[0], '/') + 1;
+ } else {
+- sprintf(path, "%s/%s", REAL_DAEMON_DIR, argv[0]);
++ snprintf(path, sizeof(path), "%s/%s", REAL_DAEMON_DIR, argv[0]);
+ }
+
+ /*
+--- tcp_wrappers_7.6/eval.c.bug11881 Thu Jul 27 15:39:53 2000
++++ tcp_wrappers_7.6/eval.c Thu Jul 27 15:40:51 2000
+@@ -111,7 +111,7 @@
+ return (hostinfo);
+ #endif
+ if (STR_NE(eval_user(request), unknown)) {
+- sprintf(both, "%s@%s", request->user, hostinfo);
++ snprintf(both, sizeof(both), "%s@%s", request->user, hostinfo);
+ return (both);
+ } else {
+ return (hostinfo);
+@@ -128,7 +128,7 @@
+ char *daemon = eval_daemon(request);
+
+ if (STR_NE(host, unknown)) {
+- sprintf(both, "%s@%s", daemon, host);
++ snprintf(both, sizeof(both), "%s@%s", daemon, host);
+ return (both);
+ } else {
+ return (daemon);
diff --git a/core/tcp_wrappers/02_all_redhat-bug17795.patch b/core/tcp_wrappers/02_all_redhat-bug17795.patch
new file mode 100644
index 000000000..ff0ec455b
--- /dev/null
+++ b/core/tcp_wrappers/02_all_redhat-bug17795.patch
@@ -0,0 +1,49 @@
+--- hosts_access.c Wed Feb 12 03:13:23 1997
++++ hosts_access.c Wed Jul 19 08:37:02 2000
+@@ -240,6 +255,26 @@
+ }
+ }
+
++/* hostfile_match - look up host patterns from file */
++
++static int hostfile_match(path, host)
++char *path;
++struct hosts_info *host;
++{
++ char tok[BUFSIZ];
++ int match = NO;
++ FILE *fp;
++
++ if ((fp = fopen(path, "r")) != 0) {
++ while (fscanf(fp, "%s", tok) == 1 && !(match = host_match(tok, host)))
++ /* void */ ;
++ fclose(fp);
++ } else if (errno != ENOENT) {
++ tcpd_warn("open %s: %m", path);
++ }
++ return (match);
++}
++
+ /* host_match - match host name and/or address against pattern */
+
+ static int host_match(tok, host)
+@@ -267,6 +302,8 @@
+ tcpd_warn("netgroup support is disabled"); /* not tcpd_jump() */
+ return (NO);
+ #endif
++ } else if (tok[0] == '/') { /* /file hack */
++ return (hostfile_match(tok, host));
+ } else if (STR_EQ(tok, "KNOWN")) { /* check address and name */
+ char *name = eval_hostname(host);
+ return (STR_NE(eval_hostaddr(host), unknown) && HOSTNAME_KNOWN(name));
+--- hosts_access.5 2003-08-03 19:09:56.000000000 +0000
++++ hosts_access.5 2003-08-03 19:13:32.000000000 +0000
+@@ -91,0 +92,7 @@
++.IP \(bu
++A string that begins with a `/\' character is treated as a file
++name. A host name or address is matched if it matches any host name
++or address pattern listed in the named file. The file format is
++zero or more lines with zero or more host name or address patterns
++separated by whitespace. A file name pattern can be used anywhere
++a host name or address pattern can be used.
+
diff --git a/core/tcp_wrappers/03_all_wildcard.patch b/core/tcp_wrappers/03_all_wildcard.patch
new file mode 100644
index 000000000..44eec476e
--- /dev/null
+++ b/core/tcp_wrappers/03_all_wildcard.patch
@@ -0,0 +1,93 @@
+--- /tmp/hosts_access.c 2003-08-03 22:18:00.000000000 +0000
++++ hosts_access.c 2003-08-03 22:39:44.000000000 +0000
+@@ -289,6 +289,17 @@
+ {
+ int n;
+
++#ifndef DISABLE_WILDCARD_MATCHING
++ if (strchr(tok, '*') || strchr(tok,'?')) { /* contains '*' or '?' */
++ /* we must convert the both to lowercase as match_pattern_ylo is case-sensitive */
++ for (n = 0; n < strlen(tok); n++)
++ tok[n] = isupper(tok[n]) ? tolower(tok[n]) : tok[n];
++ for (n = 0; n < strlen(string); n++)
++ string[n] = isupper(string[n]) ? tolower(string[n]) : string[n];
++ return (match_pattern_ylo(string,tok));
++ } else
++#endif
++
+ if (tok[0] == '.') { /* suffix */
+ n = strlen(string) - strlen(tok);
+ return (n > 0 && STR_EQ(tok, string + n));
+@@ -329,3 +340,72 @@
+ }
+ return ((addr & mask) == net);
+ }
++
++#ifndef DISABLE_WILDCARD_MATCHING
++/* Note: this feature has been adapted in a pretty straightforward way
++ from Tatu Ylonen's last SSH version under free license by
++ Pekka Savola <pekkas@netcore.fi>.
++
++ Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
++*/
++
++/* Returns true if the given string matches the pattern (which may contain
++ ? and * as wildcards), and zero if it does not match. */
++
++int match_pattern_ylo(const char *s, const char *pattern)
++{
++ while (1)
++ {
++ /* If at end of pattern, accept if also at end of string. */
++ if (!*pattern)
++ return !*s;
++
++ /* Process '*'. */
++ if (*pattern == '*')
++ {
++ /* Skip the asterisk. */
++ pattern++;
++
++ /* If at end of pattern, accept immediately. */
++ if (!*pattern)
++ return 1;
++
++ /* If next character in pattern is known, optimize. */
++ if (*pattern != '?' && *pattern != '*')
++ {
++ /* Look instances of the next character in pattern, and try
++ to match starting from those. */
++ for (; *s; s++)
++ if (*s == *pattern &&
++ match_pattern_ylo(s + 1, pattern + 1))
++ return 1;
++ /* Failed. */
++ return 0;
++ }
++
++ /* Move ahead one character at a time and try to match at each
++ position. */
++ for (; *s; s++)
++ if (match_pattern_ylo(s, pattern))
++ return 1;
++ /* Failed. */
++ return 0;
++ }
++
++ /* There must be at least one more character in the string. If we are
++ at the end, fail. */
++ if (!*s)
++ return 0;
++
++ /* Check if the next character of the string is acceptable. */
++ if (*pattern != '?' && *pattern != *s)
++ return 0;
++
++ /* Move to the next character, both in string and in pattern. */
++ s++;
++ pattern++;
++ }
++ /*NOTREACHED*/
++}
++#endif /* DISABLE_WILDCARD_MATCHING */
++
diff --git a/core/tcp_wrappers/04_all_fixgethostbyname.patch b/core/tcp_wrappers/04_all_fixgethostbyname.patch
new file mode 100644
index 000000000..57c7acf78
--- /dev/null
+++ b/core/tcp_wrappers/04_all_fixgethostbyname.patch
@@ -0,0 +1,27 @@
+--- tcp_wrappers_7.6/socket.c.fixgethostbyname Fri Mar 21 13:27:25 1997
++++ tcp_wrappers_7.6/socket.c Mon Feb 5 14:09:40 2001
+@@ -52,7 +52,8 @@
+ char *name;
+ {
+ char dot_name[MAXHOSTNAMELEN + 1];
+-
++ struct hostent *hp;
++
+ /*
+ * Don't append dots to unqualified names. Such names are likely to come
+ * from local hosts files or from NIS.
+@@ -61,8 +62,12 @@
+ if (strchr(name, '.') == 0 || strlen(name) >= MAXHOSTNAMELEN - 1) {
+ return (gethostbyname(name));
+ } else {
+- sprintf(dot_name, "%s.", name);
+- return (gethostbyname(dot_name));
++ sprintf(dot_name, "%s.", name);
++ hp = gethostbyname(dot_name);
++ if (hp)
++ return hp;
++ else
++ return (gethostbyname(name));
+ }
+ }
+
diff --git a/core/tcp_wrappers/07_all_sig.patch b/core/tcp_wrappers/07_all_sig.patch
new file mode 100644
index 000000000..e7341a0bc
--- /dev/null
+++ b/core/tcp_wrappers/07_all_sig.patch
@@ -0,0 +1,39 @@
+--- tcp_wrappers_7.6/hosts_access.c.sig 2003-02-10 16:18:31.000000000 +0100
++++ tcp_wrappers_7.6/hosts_access.c 2003-02-10 16:50:38.000000000 +0100
+@@ -66,6 +66,7 @@
+
+ #define YES 1
+ #define NO 0
++#define ERR -1
+
+ /*
+ * These variables are globally visible so that they can be redirected in
+@@ -106,7 +107,6 @@
+ struct request_info *request;
+ {
+ int verdict;
+-
+ /*
+ * If the (daemon, client) pair is matched by an entry in the file
+ * /etc/hosts.allow, access is granted. Otherwise, if the (daemon,
+@@ -129,9 +129,9 @@
+ return (verdict == AC_PERMIT);
+ if (table_match(hosts_allow_table, request))
+ return (YES);
+- if (table_match(hosts_deny_table, request))
+- return (NO);
+- return (YES);
++ if (table_match(hosts_deny_table, request) == NO)
++ return (YES);
++ return (NO);
+ }
+
+ /* table_match - match table entries with (daemon, client) pair */
+@@ -175,6 +175,7 @@
+ (void) fclose(fp);
+ } else if (errno != ENOENT) {
+ tcpd_warn("cannot open %s: %m", table);
++ match = ERR;
+ }
+ if (match) {
+ if (hosts_access_verbose > 1)
diff --git a/core/tcp_wrappers/08_all_strerror.patch b/core/tcp_wrappers/08_all_strerror.patch
new file mode 100644
index 000000000..426791a8f
--- /dev/null
+++ b/core/tcp_wrappers/08_all_strerror.patch
@@ -0,0 +1,27 @@
+--- tcp-wrappers-7.6/percent_m.c
++++ tcp-wrappers-7.6/percent_m.c
+@@ -13,7 +13,7 @@
+ #include <string.h>
+
+ extern int errno;
+-#ifndef SYS_ERRLIST_DEFINED
++#if !defined(SYS_ERRLIST_DEFINED) && !defined(HAVE_STRERROR)
+ extern char *sys_errlist[];
+ extern int sys_nerr;
+ #endif
+@@ -29,11 +29,15 @@
+
+ while (*bp = *cp)
+ if (*cp == '%' && cp[1] == 'm') {
++#ifdef HAVE_STRERROR
++ strcpy(bp, strerror(errno));
++#else
+ if (errno < sys_nerr && errno > 0) {
+ strcpy(bp, sys_errlist[errno]);
+ } else {
+ sprintf(bp, "Unknown error %d", errno);
+ }
++#endif
+ bp += strlen(bp);
+ cp += 2;
+ } else {
diff --git a/core/tcp_wrappers/09_all_gcc-3.4.patch b/core/tcp_wrappers/09_all_gcc-3.4.patch
new file mode 100644
index 000000000..30d105915
--- /dev/null
+++ b/core/tcp_wrappers/09_all_gcc-3.4.patch
@@ -0,0 +1,12 @@
+diff -udrN tcp_wrappers_7.6/scaffold.c tcp_wrappers_7.6_modified/scaffold.c
+--- tcp_wrappers_7.6/scaffold.c 2004-04-20 23:35:41.971925008 +0000
++++ tcp_wrappers_7.6_modified/scaffold.c 2004-04-20 23:44:28.553872384 +0000
+@@ -25,7 +25,7 @@
+ #define INADDR_NONE (-1) /* XXX should be 0xffffffff */
+ #endif
+
+-extern char *malloc();
++
+
+ /* Application-specific. */
+
diff --git a/core/tcp_wrappers/10_all_more-headers.patch b/core/tcp_wrappers/10_all_more-headers.patch
new file mode 100644
index 000000000..7a43c6ceb
--- /dev/null
+++ b/core/tcp_wrappers/10_all_more-headers.patch
@@ -0,0 +1,209 @@
+--- tcp_wrappers_7.6/options.c
++++ tcp_wrappers_7.6/options.c
+@@ -34,6 +34,8 @@
+
+ /* System libraries. */
+
++#include <unistd.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/param.h>
+ #include <sys/socket.h>
+--- tcp_wrappers_7.6/safe_finger.c
++++ tcp_wrappers_7.6/safe_finger.c
+@@ -20,6 +20,10 @@
+
+ /* System libraries */
+
++#include <unistd.h>
++#include <fcntl.h>
++#include <stdlib.h>
++#include <sys/wait.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <signal.h>
+@@ -27,7 +31,7 @@
+ #include <ctype.h>
+ #include <pwd.h>
+
+-extern void exit();
++int pipe_stdin(char **argv);
+
+ /* Local stuff */
+
+--- tcp_wrappers_7.6/scaffold.c
++++ tcp_wrappers_7.6/scaffold.c
+@@ -10,6 +10,7 @@
+
+ /* System libraries. */
+
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/socket.h>
+--- tcp_wrappers_7.6/shell_cmd.c
++++ tcp_wrappers_7.6/shell_cmd.c
+@@ -14,6 +14,10 @@
+
+ /* System libraries. */
+
++#include <unistd.h>
++#include <stdlib.h>
++#include <fcntl.h>
++#include <sys/wait.h>
+ #include <sys/types.h>
+ #include <sys/param.h>
+ #include <signal.h>
+@@ -25,8 +25,6 @@
+ #include <syslog.h>
+ #include <string.h>
+
+-extern void exit();
+-
+ /* Local stuff. */
+
+ #include "tcpd.h"
+--- tcp_wrappers_7.6/tcpdchk.c
++++ tcp_wrappers_7.6/tcpdchk.c
+@@ -20,6 +20,8 @@
+
+ /* System libraries. */
+
++#include <unistd.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #ifdef INET6
+@@ -35,11 +36,6 @@
+ #include <netdb.h>
+ #include <string.h>
+
+-extern int errno;
+-extern void exit();
+-extern int optind;
+-extern char *optarg;
+-
+ #ifndef INADDR_NONE
+ #define INADDR_NONE (-1) /* XXX should be 0xffffffff */
+ #endif
+--- tcp_wrappers_7.6/clean_exit.c
++++ tcp_wrappers_7.6/clean_exit.c
+@@ -13,8 +13,8 @@
+ #endif
+
+ #include <stdio.h>
+-
+-extern void exit();
++#include <unistd.h>
++#include <stdlib.h>
+
+ #include "tcpd.h"
+
+--- tcp_wrappers_7.6/hosts_access.c
++++ tcp_wrappers_7.6/hosts_access.c
+@@ -23,6 +23,7 @@
+
+ /* System libraries. */
+
++#include <stdlib.h>
+ #include <sys/types.h>
+ #ifdef INT32_T
+ typedef uint32_t u_int32_t;
+@@ -43,8 +44,7 @@
+ #include <netdb.h>
+ #endif
+
+-extern char *fgets();
+-extern int errno;
++int match_pattern_ylo(const char *s, const char *pattern);
+
+ #ifndef INADDR_NONE
+ #define INADDR_NONE (-1) /* XXX should be 0xffffffff */
+--- tcp_wrappers_7.6/inetcf.c
++++ tcp_wrappers_7.6/inetcf.c
+@@ -9,15 +9,14 @@
+ static char sccsid[] = "@(#) inetcf.c 1.7 97/02/12 02:13:23";
+ #endif
+
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <stdio.h>
+ #include <errno.h>
+ #include <string.h>
+
+-extern int errno;
+-extern void exit();
+-
++#include "scaffold.h"
+ #include "tcpd.h"
+ #include "inetcf.h"
+
+--- tcp_wrappers_7.6/percent_x.c
++++ tcp_wrappers_7.6/percent_x.c
+@@ -16,12 +16,12 @@
+
+ /* System libraries. */
+
++#include <unistd.h>
++#include <stdlib.h>
+ #include <stdio.h>
+ #include <syslog.h>
+ #include <string.h>
+
+-extern void exit();
+-
+ /* Local stuff. */
+
+ #include "tcpd.h"
+--- tcp_wrappers_7.6/rfc931.c
++++ tcp_wrappers_7.6/rfc931.c
+@@ -15,6 +15,7 @@
+
+ /* System libraries. */
+
++#include <unistd.h>
+ #include <stdio.h>
+ #include <syslog.h>
+ #include <sys/types.h>
+--- tcp_wrappers_7.6/tcpd.c
++++ tcp_wrappers_7.6/tcpd.c
+@@ -16,6 +16,7 @@
+
+ /* System libraries. */
+
++#include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/param.h>
+ #include <sys/stat.h>
+--- tcp_wrappers_7.6/tcpdmatch.c
++++ tcp_wrappers_7.6/tcpdmatch.c
+@@ -19,6 +19,8 @@
+
+ /* System libraries. */
+
++#include <unistd.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/socket.h>
+@@ -30,9 +32,6 @@
+ #include <setjmp.h>
+ #include <string.h>
+
+-extern void exit();
+-extern int optind;
+-extern char *optarg;
+
+ #ifndef INADDR_NONE
+ #define INADDR_NONE (-1) /* XXX should be 0xffffffff */
+--- tcp_wrappers_7.6/update.c
++++ tcp_wrappers_7.6/update.c
+@@ -19,6 +19,7 @@
+
+ /* System libraries */
+
++#include <unistd.h>
+ #include <stdio.h>
+ #include <syslog.h>
+ #include <string.h>
diff --git a/core/tcp_wrappers/11_inet6_fixes.patch b/core/tcp_wrappers/11_inet6_fixes.patch
new file mode 100644
index 000000000..a2c7d99a5
--- /dev/null
+++ b/core/tcp_wrappers/11_inet6_fixes.patch
@@ -0,0 +1,41 @@
+--- Makefile.old 2009-10-28 10:37:40.138328073 +0100
++++ Makefile 2009-10-28 10:37:57.014326831 +0100
+@@ -154,7 +154,7 @@
+ @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
+ LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \
+ NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \
+- EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DHAVE_WEAKSYMS -D_REENTRANT"
++ EXTRA_CFLAGS="-DINET6 -DSYS_ERRLIST_DEFINED -DHAVE_WEAKSYMS -D_REENTRANT"
+
+ gnu:
+ @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
+--- tcpd.h.old 2009-10-28 10:48:19.285326834 +0100
++++ tcpd.h 2009-10-28 10:47:32.951325793 +0100
+@@ -91,7 +91,11 @@
+
+ extern void shell_cmd __P((char *)); /* execute shell command */
+ extern char *percent_x __P((char *, int, char *, struct request_info *)); /* do %<char> expansion */
++#ifdef INET6
++extern void rfc931 __P((struct sockaddr *, struct sockaddr *, char *)); /* client name from RFC 931 daemon */
++#else
+ extern void rfc931 __P((struct sockaddr_in *, struct sockaddr_in *, char *)); /* client name from RFC 931 daemon */
++#endif
+ extern void clean_exit __P((struct request_info *)); /* clean up and exit */
+ extern void refuse __P((struct request_info *)); /* clean up and exit */
+ extern char *xgets __P((char *, int, FILE *)); /* fgets() on steroids */
+--- scaffold.c.old 2009-10-28 10:50:13.584449353 +0100
++++ scaffold.c 2009-10-28 10:52:53.765443023 +0100
+@@ -182,8 +237,13 @@
+ /* ARGSUSED */
+
+ void rfc931(rmt_sin, our_sin, dest)
++#ifdef INET6
++struct sockaddr *rmt_sin;
++struct sockaddr *our_sin;
++#else
+ struct sockaddr_in *rmt_sin;
+ struct sockaddr_in *our_sin;
++#endif
+ char *dest;
+ {
+ strcpy(dest, unknown);
diff --git a/core/tcp_wrappers/PKGBUILD b/core/tcp_wrappers/PKGBUILD
new file mode 100644
index 000000000..9373e9239
--- /dev/null
+++ b/core/tcp_wrappers/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 89099 2010-08-29 11:15:05Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=tcp_wrappers
+pkgver=7.6
+pkgrel=12
+pkgdesc="Monitors and Controls incoming TCP connections"
+arch=(i686 x86_64)
+url="ftp://ftp.porcupine.org/pub/security/index.html"
+license=('custom')
+groups=('base')
+backup=(etc/hosts.allow etc/hosts.deny)
+depends=('bash' 'glibc')
+source=(ftp://ftp.porcupine.org/pub/security/${pkgname}_$pkgver.tar.gz
+ hosts.allow
+ hosts.deny
+ try-from.8
+ safe_finger.8
+ shared_lib_plus_plus-1.patch
+ 01_all_redhat-bug11881.patch
+ 02_all_redhat-bug17795.patch
+ 03_all_wildcard.patch
+ 04_all_fixgethostbyname.patch
+ 07_all_sig.patch
+ 08_all_strerror.patch
+ 09_all_gcc-3.4.patch
+ 10_all_more-headers.patch
+ 11_inet6_fixes.patch
+ tcp-wrappers-7.6-ipv6-1.14.patch)
+md5sums=('e6fa25f71226d090f34de3f6b122fb5a'
+ '32cfeeed797161034f62bb45f3167baa'
+ 'e4743ca604a1749c7312f9283b4bb0d1'
+ '4a8f40f9a69f0848df92b232072e8561'
+ '1a6d7b11abb1fd69ace775d02a1c72cf'
+ '99345104130b91cb151af9d87eee1449'
+ 'e7ac7ae271703eacf175d597d329e11a'
+ '2790301fbf1b4711e75d5b799b6d4ac8'
+ 'd286da9fca993f8afa89631133312151'
+ '97d4d81faaecf0958eeb52c45df71e34'
+ '374b8179b8d5c71979008c6a775d658e'
+ '801292cacf14a92e2784b925e72a1db1'
+ '0978932f49aae33834a46e189ace7d77'
+ '68b1c7f82fed60b446b00f6de27c3b9f'
+ 'bd0af9dedcacd594e0715de800fc1b57'
+ '9154c38e3fb69d12b5bfb2fc5284314f')
+
+build() {
+ cd $srcdir/${pkgname}_$pkgver
+ # add gentoo / fedora / redhat patches
+ patch -Np1 -i ../shared_lib_plus_plus-1.patch
+ patch -Np1 -i ../01_all_redhat-bug11881.patch
+ patch -Np0 -i ../02_all_redhat-bug17795.patch
+ patch -Np0 -i ../03_all_wildcard.patch
+ patch -Np1 -i ../04_all_fixgethostbyname.patch
+ patch -Np1 -i ../07_all_sig.patch
+ patch -Np1 -i ../09_all_gcc-3.4.patch
+ patch -Np1 -i ../10_all_more-headers.patch
+ patch -Np0 -i ../11_inet6_fixes.patch
+ patch -Np2 -i ../tcp-wrappers-7.6-ipv6-1.14.patch
+
+ make REAL_DAEMON_DIR=/usr/sbin STYLE=-DPROCESS_OPTIONS linux
+ # dumb makefile
+ mkdir -p $pkgdir/usr/{include,lib,sbin}
+ mkdir -p $pkgdir/usr/share/man/man{3,5,8}
+ make DESTDIR=$pkgdir install
+ install -D -m644 ../hosts.allow $pkgdir/etc/hosts.allow
+ install -D -m644 ../hosts.deny $pkgdir/etc/hosts.deny
+ # add manpage symlinks for hosts.deny and hosts.allow
+ cd $pkgdir/usr/share/man/man5
+ ln -s hosts_access.5.gz hosts.allow.5.gz
+ ln -s hosts_access.5.gz hosts.deny.5.gz
+ # install license
+ mkdir -p $pkgdir/usr/share/licenses/$pkgname
+ install -m644 $srcdir/${pkgname}_$pkgver/DISCLAIMER $pkgdir/usr/share/licenses/$pkgname/license.txt
+}
diff --git a/core/tcp_wrappers/hosts.allow b/core/tcp_wrappers/hosts.allow
new file mode 100644
index 000000000..e5c035d65
--- /dev/null
+++ b/core/tcp_wrappers/hosts.allow
@@ -0,0 +1,5 @@
+#
+# /etc/hosts.allow
+#
+
+# End of file
diff --git a/core/tcp_wrappers/hosts.deny b/core/tcp_wrappers/hosts.deny
new file mode 100644
index 000000000..cbb00b29d
--- /dev/null
+++ b/core/tcp_wrappers/hosts.deny
@@ -0,0 +1,7 @@
+#
+# /etc/hosts.deny
+#
+
+ALL: ALL
+
+# End of file
diff --git a/core/tcp_wrappers/safe_finger.8 b/core/tcp_wrappers/safe_finger.8
new file mode 100644
index 000000000..875616b9e
--- /dev/null
+++ b/core/tcp_wrappers/safe_finger.8
@@ -0,0 +1,34 @@
+.TH SAFE_FINGER 8 "21th June 1997" Linux "Linux Programmer's Manual"
+.SH NAME
+safe_finger \- finger client wrapper that protects against nasty stuff
+from finger servers
+.SH SYNOPSIS
+.B safe_finger [finger_options]
+.SH DESCRIPTION
+The
+.B safe_finger
+command protects against nasty stuff from finger servers. Use this
+program for automatic reverse finger probes from the
+.B tcp_wrapper
+.B (tcpd)
+, not the raw finger command. The
+.B safe_finger
+command makes sure that the finger client is not run with root
+privileges. It also runs the finger client with a defined PATH
+environment.
+.B safe_finger
+will also protect you from problems caused by the output of some
+finger servers. The problem: some programs may react to stuff in
+the first column. Other programs may get upset by thrash anywhere
+on a line. File systems may fill up as the finger server keeps
+sending data. Text editors may bomb out on extremely long lines.
+The finger server may take forever because it is somehow wedged.
+.B safe_finger
+takes care of all this badness.
+.SH SEE ALSO
+.BR hosts_access (5),
+.BR hosts_options (5),
+.BR tcpd (8)
+.SH AUTHOR
+Wietse Venema, Eindhoven University of Technology, The Netherlands.
+
diff --git a/core/tcp_wrappers/shared_lib_plus_plus-1.patch b/core/tcp_wrappers/shared_lib_plus_plus-1.patch
new file mode 100644
index 000000000..b714899a0
--- /dev/null
+++ b/core/tcp_wrappers/shared_lib_plus_plus-1.patch
@@ -0,0 +1,784 @@
+diff -Naur tcp_wrappers_7.6/Makefile tcp_wrappers_7.6.gimli/Makefile
+--- tcp_wrappers_7.6/Makefile 1997-03-21 12:27:21.000000000 -0600
++++ tcp_wrappers_7.6.gimli/Makefile 2002-07-15 16:07:21.000000000 -0500
+@@ -1,5 +1,10 @@
++GLIBC=$(shell grep -s -c __GLIBC__ /usr/include/features.h)
++
+ # @(#) Makefile 1.23 97/03/21 19:27:20
+
++# unset the HOSTNAME environment variable
++HOSTNAME =
++
+ what:
+ @echo
+ @echo "Usage: edit the REAL_DAEMON_DIR definition in the Makefile then:"
+@@ -19,7 +24,7 @@
+ @echo " generic (most bsd-ish systems with sys5 compatibility)"
+ @echo " 386bsd aix alpha apollo bsdos convex-ultranet dell-gcc dgux dgux543"
+ @echo " dynix epix esix freebsd hpux irix4 irix5 irix6 isc iunix"
+- @echo " linux machten mips(untested) ncrsvr4 netbsd next osf power_unix_211"
++ @echo " linux gnu machten mips(untested) ncrsvr4 netbsd next osf power_unix_211"
+ @echo " ptx-2.x ptx-generic pyramid sco sco-nis sco-od2 sco-os5 sinix sunos4"
+ @echo " sunos40 sunos5 sysv4 tandem ultrix unicos7 unicos8 unixware1 unixware2"
+ @echo " uts215 uxp"
+@@ -43,8 +48,8 @@
+ # Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx
+ #REAL_DAEMON_DIR=/usr/etc
+ #
+-# SysV.4 Solaris 2.x OSF AIX
+-#REAL_DAEMON_DIR=/usr/sbin
++# SysV.4 Solaris 2.x OSF AIX Linux
++REAL_DAEMON_DIR=/usr/sbin
+ #
+ # BSD 4.4
+ #REAL_DAEMON_DIR=/usr/libexec
+@@ -141,10 +146,21 @@
+ LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP= TLI= \
+ EXTRA_CFLAGS=-DSYS_ERRLIST_DEFINED VSYSLOG= all
+
++ifneq ($(GLIBC),0)
++MYLIB=-lnsl
++endif
++
+ linux:
+ @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
+- LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \
+- NETGROUP= TLI= EXTRA_CFLAGS="-DBROKEN_SO_LINGER" all
++ LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \
++ NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \
++ EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DHAVE_WEAKSYMS -D_REENTRANT"
++
++gnu:
++ @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
++ LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \
++ NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \
++ EXTRA_CFLAGS="-DHAVE_STRERROR -DHAVE_WEAKSYMS -D_REENTRANT"
+
+ # This is good for many SYSV+BSD hybrids with NIS, probably also for HP-UX 7.x.
+ hpux hpux8 hpux9 hpux10:
+@@ -391,7 +407,7 @@
+ # the ones provided with this source distribution. The environ.c module
+ # implements setenv(), getenv(), and putenv().
+
+-AUX_OBJ= setenv.o
++#AUX_OBJ= setenv.o
+ #AUX_OBJ= environ.o
+ #AUX_OBJ= environ.o strcasecmp.o
+
+@@ -454,7 +470,8 @@
+ # host name aliases. Compile with -DSOLARIS_24_GETHOSTBYNAME_BUG to work
+ # around this. The workaround does no harm on other Solaris versions.
+
+-BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK
++BUGS =
++#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK
+ #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DINET_ADDR_BUG
+ #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DSOLARIS_24_GETHOSTBYNAME_BUG
+
+@@ -464,7 +481,7 @@
+ # If your system supports NIS or YP-style netgroups, enable the following
+ # macro definition. Netgroups are used only for host access control.
+ #
+-#NETGROUP= -DNETGROUP
++NETGROUP= -DNETGROUP
+
+ ###############################################################
+ # System dependencies: whether or not your system has vsyslog()
+@@ -491,7 +508,7 @@
+ # Uncomment the next definition to turn on the language extensions
+ # (examples: allow, deny, banners, twist and spawn).
+ #
+-#STYLE = -DPROCESS_OPTIONS # Enable language extensions.
++STYLE = -DPROCESS_OPTIONS # Enable language extensions.
+
+ ################################################################
+ # Optional: Changing the default disposition of logfile records
+@@ -514,7 +531,7 @@
+ #
+ # The LOG_XXX names below are taken from the /usr/include/syslog.h file.
+
+-FACILITY= LOG_MAIL # LOG_MAIL is what most sendmail daemons use
++FACILITY= LOG_DAEMON # LOG_MAIL is what most sendmail daemons use
+
+ # The syslog priority at which successful connections are logged.
+
+@@ -610,7 +627,7 @@
+ # Paranoid mode implies hostname lookup. In order to disable hostname
+ # lookups altogether, see the next section.
+
+-PARANOID= -DPARANOID
++#PARANOID= -DPARANOID
+
+ ########################################
+ # Optional: turning off hostname lookups
+@@ -623,7 +640,7 @@
+ # In order to perform selective hostname lookups, disable paranoid
+ # mode (see previous section) and comment out the following definition.
+
+-HOSTNAME= -DALWAYS_HOSTNAME
++#HOSTNAME= -DALWAYS_HOSTNAME
+
+ #############################################
+ # Optional: Turning on host ADDRESS checking
+@@ -649,28 +666,46 @@
+ # source-routed traffic in the kernel. Examples: 4.4BSD derivatives,
+ # Solaris 2.x, and Linux. See your system documentation for details.
+ #
+-# KILL_OPT= -DKILL_IP_OPTIONS
++KILL_OPT= -DKILL_IP_OPTIONS
+
+ ## End configuration options
+ ############################
+
+ # Protection against weird shells or weird make programs.
+
++CC = gcc
+ SHELL = /bin/sh
+-.c.o:; $(CC) $(CFLAGS) -c $*.c
++.c.o:; $(CC) $(CFLAGS) -o $*.o -c $*.c
++
++SOMAJOR = 0
++SOMINOR = 7.6
++
++LIB = libwrap.a
++SHLIB = shared/libwrap.so.$(SOMAJOR).$(SOMINOR)
++SHLIBSOMAJ= shared/libwrap.so.$(SOMAJOR)
++SHLIBSO = shared/libwrap.so
++SHLIBFLAGS = -Lshared -lwrap
+
+-CFLAGS = -O -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \
++shared/%.o: %.c
++ $(CC) $(CFLAGS) $(SHCFLAGS) -c $< -o $@
++
++CFLAGS = -O2 -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \
+ $(BUGS) $(SYSTYPE) $(AUTH) $(UMASK) \
+ -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" $(STYLE) $(KILL_OPT) \
+ -DSEVERITY=$(SEVERITY) -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) \
+ $(UCHAR) $(TABLES) $(STRINGS) $(TLI) $(EXTRA_CFLAGS) $(DOT) \
+ $(VSYSLOG) $(HOSTNAME)
+
++SHLINKFLAGS = -shared -Xlinker -soname -Xlinker libwrap.so.$(SOMAJOR) -lc $(LIBS)
++SHCFLAGS = -fPIC -shared -D_REENTRANT
++
+ LIB_OBJ= hosts_access.o options.o shell_cmd.o rfc931.o eval.o \
+ hosts_ctl.o refuse.o percent_x.o clean_exit.o $(AUX_OBJ) \
+ $(FROM_OBJ) fix_options.o socket.o tli.o workarounds.o \
+ update.o misc.o diag.o percent_m.o myvsyslog.o
+
++SHLIB_OBJ= $(addprefix shared/, $(LIB_OBJ));
++
+ FROM_OBJ= fromhost.o
+
+ KIT = README miscd.c tcpd.c fromhost.c hosts_access.c shell_cmd.c \
+@@ -684,46 +719,80 @@
+ refuse.c tcpdchk.8 setenv.c inetcf.c inetcf.h scaffold.c \
+ scaffold.h tcpdmatch.8 README.NIS
+
+-LIB = libwrap.a
+-
+-all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk
++all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk $(LIB)
+
+ # Invalidate all object files when the compiler options (CFLAGS) have changed.
+
+ config-check:
+ @set +e; test -n "$(REAL_DAEMON_DIR)" || { make; exit 1; }
+- @set +e; echo $(CFLAGS) >/tmp/cflags.$$$$ ; \
+- if cmp cflags /tmp/cflags.$$$$ ; \
+- then rm /tmp/cflags.$$$$ ; \
+- else mv /tmp/cflags.$$$$ cflags ; \
++ @set +e; echo $(CFLAGS) >cflags.new ; \
++ if cmp cflags cflags.new ; \
++ then rm cflags.new ; \
++ else mv cflags.new cflags ; \
+ fi >/dev/null 2>/dev/null
++ @if [ ! -d shared ]; then mkdir shared; fi
+
+ $(LIB): $(LIB_OBJ)
+ rm -f $(LIB)
+ $(AR) $(ARFLAGS) $(LIB) $(LIB_OBJ)
+ -$(RANLIB) $(LIB)
+
+-tcpd: tcpd.o $(LIB)
+- $(CC) $(CFLAGS) -o $@ tcpd.o $(LIB) $(LIBS)
++$(SHLIB): $(SHLIB_OBJ)
++ rm -f $(SHLIB)
++ $(CC) -o $(SHLIB) $(SHLINKFLAGS) $(SHLIB_OBJ)
++ ln -s $(notdir $(SHLIB)) $(SHLIBSOMAJ)
++ ln -s $(notdir $(SHLIBSOMAJ)) $(SHLIBSO)
++
++tcpd: tcpd.o $(SHLIB)
++ $(CC) $(CFLAGS) -o $@ tcpd.o $(SHLIBFLAGS)
+
+-miscd: miscd.o $(LIB)
+- $(CC) $(CFLAGS) -o $@ miscd.o $(LIB) $(LIBS)
++miscd: miscd.o $(SHLIB)
++ $(CC) $(CFLAGS) -o $@ miscd.o $(SHLIBFLAGS)
+
+-safe_finger: safe_finger.o $(LIB)
+- $(CC) $(CFLAGS) -o $@ safe_finger.o $(LIB) $(LIBS)
++safe_finger: safe_finger.o $(SHLIB)
++ $(CC) $(CFLAGS) -o $@ safe_finger.o $(SHLIBFLAGS)
+
+ TCPDMATCH_OBJ = tcpdmatch.o fakelog.o inetcf.o scaffold.o
+
+-tcpdmatch: $(TCPDMATCH_OBJ) $(LIB)
+- $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(LIB) $(LIBS)
++tcpdmatch: $(TCPDMATCH_OBJ) $(SHLIB)
++ $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(SHLIBFLAGS)
+
+-try-from: try-from.o fakelog.o $(LIB)
+- $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(LIB) $(LIBS)
++try-from: try-from.o fakelog.o $(SHLIB)
++ $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(SHLIBFLAGS)
+
+ TCPDCHK_OBJ = tcpdchk.o fakelog.o inetcf.o scaffold.o
+
+-tcpdchk: $(TCPDCHK_OBJ) $(LIB)
+- $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(LIB) $(LIBS)
++tcpdchk: $(TCPDCHK_OBJ) $(SHLIB)
++ $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(SHLIBFLAGS)
++
++install: install-lib install-bin install-dev
++
++install-lib:
++ install -o root -g root -m 0755 $(SHLIB) ${DESTDIR}/usr/lib/
++ ln -sf $(notdir $(SHLIB)) ${DESTDIR}/usr/lib/$(notdir $(SHLIBSOMAJ))
++ ln -sf $(notdir $(SHLIBSOMAJ)) ${DESTDIR}/usr/lib/$(notdir $(SHLIBSO))
++
++install-bin:
++ install -o root -g root -m 0755 tcpd ${DESTDIR}/usr/sbin/
++ install -o root -g root -m 0755 tcpdchk ${DESTDIR}/usr/sbin/
++ install -o root -g root -m 0755 tcpdmatch ${DESTDIR}/usr/sbin/
++ install -o root -g root -m 0755 try-from ${DESTDIR}/usr/sbin/
++ install -o root -g root -m 0755 safe_finger ${DESTDIR}/usr/sbin/
++ install -o root -g root -m 0644 tcpd.8 ${DESTDIR}/usr/share/man/man8/
++ install -o root -g root -m 0644 tcpdchk.8 ${DESTDIR}/usr/share/man/man8/
++ install -o root -g root -m 0644 try-from.8 ${DESTDIR}/usr/share/man/man8/
++ install -o root -g root -m 0644 tcpdmatch.8 ${DESTDIR}/usr/share/man/man8/
++ install -o root -g root -m 0644 safe_finger.8 ${DESTDIR}/usr/share/man/man8/
++ install -o root -g root -m 0644 hosts_access.5 ${DESTDIR}/usr/share/man/man5/
++ install -o root -g root -m 0644 hosts_options.5 ${DESTDIR}/usr/share/man/man5/
++
++install-dev:
++ install -o root -g root -m 0644 hosts_access.3 ${DESTDIR}/usr/share/man/man3/
++ install -o root -g root -m 0644 tcpd.h ${DESTDIR}/usr/include/
++ install -o root -g root -m 0644 $(LIB) ${DESTDIR}/usr/lib/
++ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/hosts_ctl.3
++ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_init.3
++ ln -sf hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_set.3
+
+ shar: $(KIT)
+ @shar $(KIT)
+@@ -739,7 +808,8 @@
+
+ clean:
+ rm -f tcpd miscd safe_finger tcpdmatch tcpdchk try-from *.[oa] core \
+- cflags
++ cflags libwrap*.so*
++ rm -rf shared
+
+ tidy: clean
+ chmod -R a+r .
+@@ -885,5 +955,6 @@
+ update.o: mystdarg.h
+ update.o: tcpd.h
+ vfprintf.o: cflags
++weak_symbols.o: tcpd.h
+ workarounds.o: cflags
+ workarounds.o: tcpd.h
+diff -Naur tcp_wrappers_7.6/hosts_access.3 tcp_wrappers_7.6.gimli/hosts_access.3
+--- tcp_wrappers_7.6/hosts_access.3 1996-02-11 10:01:27.000000000 -0600
++++ tcp_wrappers_7.6.gimli/hosts_access.3 2002-01-07 08:50:19.000000000 -0600
+@@ -3,7 +3,7 @@
+ hosts_access, hosts_ctl, request_init, request_set \- access control library
+ .SH SYNOPSIS
+ .nf
+-#include "tcpd.h"
++#include <tcpd.h>
+
+ extern int allow_severity;
+ extern int deny_severity;
+diff -Naur tcp_wrappers_7.6/hosts_options.5 tcp_wrappers_7.6.gimli/hosts_options.5
+--- tcp_wrappers_7.6/hosts_options.5 1994-12-28 10:42:29.000000000 -0600
++++ tcp_wrappers_7.6.gimli/hosts_options.5 2002-01-07 08:50:19.000000000 -0600
+@@ -58,12 +58,12 @@
+ Execute, in a child process, the specified shell command, after
+ performing the %<letter> expansions described in the hosts_access(5)
+ manual page. The command is executed with stdin, stdout and stderr
+-connected to the null device, so that it won\'t mess up the
++connected to the null device, so that it won't mess up the
+ conversation with the client host. Example:
+ .sp
+ .nf
+ .ti +3
+-spawn (/some/where/safe_finger -l @%h | /usr/ucb/mail root) &
++spawn (/usr/sbin/safe_finger -l @%h | /usr/bin/mail root) &
+ .fi
+ .sp
+ executes, in a background child process, the shell command "safe_finger
+diff -Naur tcp_wrappers_7.6/options.c tcp_wrappers_7.6.gimli/options.c
+--- tcp_wrappers_7.6/options.c 1996-02-11 10:01:32.000000000 -0600
++++ tcp_wrappers_7.6.gimli/options.c 2002-01-07 08:50:19.000000000 -0600
+@@ -473,6 +473,9 @@
+ #ifdef LOG_CRON
+ "cron", LOG_CRON,
+ #endif
++#ifdef LOG_FTP
++ "ftp", LOG_FTP,
++#endif
+ #ifdef LOG_LOCAL0
+ "local0", LOG_LOCAL0,
+ #endif
+diff -Naur tcp_wrappers_7.6/percent_m.c tcp_wrappers_7.6.gimli/percent_m.c
+--- tcp_wrappers_7.6/percent_m.c 1994-12-28 10:42:37.000000000 -0600
++++ tcp_wrappers_7.6.gimli/percent_m.c 2002-01-07 08:50:19.000000000 -0600
+@@ -13,7 +13,7 @@
+ #include <string.h>
+
+ extern int errno;
+-#ifndef SYS_ERRLIST_DEFINED
++#if !defined(SYS_ERRLIST_DEFINED) && !defined(HAVE_STRERROR)
+ extern char *sys_errlist[];
+ extern int sys_nerr;
+ #endif
+@@ -29,11 +29,15 @@
+
+ while (*bp = *cp)
+ if (*cp == '%' && cp[1] == 'm') {
++#ifdef HAVE_STRERROR
++ strcpy(bp, strerror(errno));
++#else
+ if (errno < sys_nerr && errno > 0) {
+ strcpy(bp, sys_errlist[errno]);
+ } else {
+ sprintf(bp, "Unknown error %d", errno);
+ }
++#endif
+ bp += strlen(bp);
+ cp += 2;
+ } else {
+diff -Naur tcp_wrappers_7.6/rfc931.c tcp_wrappers_7.6.gimli/rfc931.c
+--- tcp_wrappers_7.6/rfc931.c 1995-01-02 09:11:34.000000000 -0600
++++ tcp_wrappers_7.6.gimli/rfc931.c 2002-01-07 08:50:19.000000000 -0600
+@@ -33,7 +33,7 @@
+
+ int rfc931_timeout = RFC931_TIMEOUT;/* Global so it can be changed */
+
+-static jmp_buf timebuf;
++static sigjmp_buf timebuf;
+
+ /* fsocket - open stdio stream on top of socket */
+
+@@ -62,7 +62,7 @@
+ static void timeout(sig)
+ int sig;
+ {
+- longjmp(timebuf, sig);
++ siglongjmp(timebuf, sig);
+ }
+
+ /* rfc931 - return remote user name, given socket structures */
+@@ -99,7 +99,7 @@
+ * Set up a timer so we won't get stuck while waiting for the server.
+ */
+
+- if (setjmp(timebuf) == 0) {
++ if (sigsetjmp(timebuf,1) == 0) {
+ signal(SIGALRM, timeout);
+ alarm(rfc931_timeout);
+
+diff -Naur tcp_wrappers_7.6/safe_finger.8 tcp_wrappers_7.6.gimli/safe_finger.8
+--- tcp_wrappers_7.6/safe_finger.8 1969-12-31 18:00:00.000000000 -0600
++++ tcp_wrappers_7.6.gimli/safe_finger.8 2002-01-07 08:50:19.000000000 -0600
+@@ -0,0 +1,34 @@
++.TH SAFE_FINGER 8 "21th June 1997" Linux "Linux Programmer's Manual"
++.SH NAME
++safe_finger \- finger client wrapper that protects against nasty stuff
++from finger servers
++.SH SYNOPSIS
++.B safe_finger [finger_options]
++.SH DESCRIPTION
++The
++.B safe_finger
++command protects against nasty stuff from finger servers. Use this
++program for automatic reverse finger probes from the
++.B tcp_wrapper
++.B (tcpd)
++, not the raw finger command. The
++.B safe_finger
++command makes sure that the finger client is not run with root
++privileges. It also runs the finger client with a defined PATH
++environment.
++.B safe_finger
++will also protect you from problems caused by the output of some
++finger servers. The problem: some programs may react to stuff in
++the first column. Other programs may get upset by thrash anywhere
++on a line. File systems may fill up as the finger server keeps
++sending data. Text editors may bomb out on extremely long lines.
++The finger server may take forever because it is somehow wedged.
++.B safe_finger
++takes care of all this badness.
++.SH SEE ALSO
++.BR hosts_access (5),
++.BR hosts_options (5),
++.BR tcpd (8)
++.SH AUTHOR
++Wietse Venema, Eindhoven University of Technology, The Netherlands.
++
+diff -Naur tcp_wrappers_7.6/safe_finger.c tcp_wrappers_7.6.gimli/safe_finger.c
+--- tcp_wrappers_7.6/safe_finger.c 1994-12-28 10:42:42.000000000 -0600
++++ tcp_wrappers_7.6.gimli/safe_finger.c 2002-01-07 08:50:19.000000000 -0600
+@@ -26,21 +26,24 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <pwd.h>
++#include <syslog.h>
+
+ extern void exit();
+
+ /* Local stuff */
+
+-char path[] = "PATH=/bin:/usr/bin:/usr/ucb:/usr/bsd:/etc:/usr/etc:/usr/sbin";
++char path[] = "PATH=/bin:/usr/bin:/sbin:/usr/sbin";
+
+ #define TIME_LIMIT 60 /* Do not keep listinging forever */
+ #define INPUT_LENGTH 100000 /* Do not keep listinging forever */
+ #define LINE_LENGTH 128 /* Editors can choke on long lines */
+ #define FINGER_PROGRAM "finger" /* Most, if not all, UNIX systems */
+ #define UNPRIV_NAME "nobody" /* Preferred privilege level */
+-#define UNPRIV_UGID 32767 /* Default uid and gid */
++#define UNPRIV_UGID 65534 /* Default uid and gid */
+
+ int finger_pid;
++int allow_severity = SEVERITY;
++int deny_severity = LOG_WARNING;
+
+ void cleanup(sig)
+ int sig;
+diff -Naur tcp_wrappers_7.6/scaffold.c tcp_wrappers_7.6.gimli/scaffold.c
+--- tcp_wrappers_7.6/scaffold.c 1997-03-21 12:27:24.000000000 -0600
++++ tcp_wrappers_7.6.gimli/scaffold.c 2002-01-07 08:50:19.000000000 -0600
+@@ -180,10 +180,12 @@
+
+ /* ARGSUSED */
+
+-void rfc931(request)
+-struct request_info *request;
++void rfc931(rmt_sin, our_sin, dest)
++struct sockaddr_in *rmt_sin;
++struct sockaddr_in *our_sin;
++char *dest;
+ {
+- strcpy(request->user, unknown);
++ strcpy(dest, unknown);
+ }
+
+ /* check_path - examine accessibility */
+diff -Naur tcp_wrappers_7.6/tcpd.8 tcp_wrappers_7.6.gimli/tcpd.8
+--- tcp_wrappers_7.6/tcpd.8 1996-02-21 09:39:16.000000000 -0600
++++ tcp_wrappers_7.6.gimli/tcpd.8 2002-01-07 08:50:19.000000000 -0600
+@@ -94,7 +94,7 @@
+ .PP
+ The example assumes that the network daemons live in /usr/etc. On some
+ systems, network daemons live in /usr/sbin or in /usr/libexec, or have
+-no `in.\' prefix to their name.
++no `in.' prefix to their name.
+ .SH EXAMPLE 2
+ This example applies when \fItcpd\fR expects that the network daemons
+ are left in their original place.
+@@ -110,26 +110,26 @@
+ becomes:
+ .sp
+ .ti +5
+-finger stream tcp nowait nobody /some/where/tcpd in.fingerd
++finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd
+ .sp
+ .fi
+ .PP
+ The example assumes that the network daemons live in /usr/etc. On some
+ systems, network daemons live in /usr/sbin or in /usr/libexec, the
+-daemons have no `in.\' prefix to their name, or there is no userid
++daemons have no `in.' prefix to their name, or there is no userid
+ field in the inetd configuration file.
+ .PP
+ Similar changes will be needed for the other services that are to be
+-covered by \fItcpd\fR. Send a `kill -HUP\' to the \fIinetd\fR(8)
++covered by \fItcpd\fR. Send a `kill -HUP' to the \fIinetd\fR(8)
+ process to make the changes effective. AIX users may also have to
+-execute the `inetimp\' command.
++execute the `inetimp' command.
+ .SH EXAMPLE 3
+ In the case of daemons that do not live in a common directory ("secret"
+ or otherwise), edit the \fIinetd\fR configuration file so that it
+ specifies an absolute path name for the process name field. For example:
+ .nf
+ .sp
+- ntalk dgram udp wait root /some/where/tcpd /usr/local/lib/ntalkd
++ ntalk dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.ntalkd
+ .sp
+ .fi
+ .PP
+diff -Naur tcp_wrappers_7.6/tcpd.h tcp_wrappers_7.6.gimli/tcpd.h
+--- tcp_wrappers_7.6/tcpd.h 1996-03-19 09:22:25.000000000 -0600
++++ tcp_wrappers_7.6.gimli/tcpd.h 2002-01-07 08:50:19.000000000 -0600
+@@ -4,6 +4,25 @@
+ * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
+ */
+
++#ifndef _TCPWRAPPERS_TCPD_H
++#define _TCPWRAPPERS_TCPD_H
++
++/* someone else may have defined this */
++#undef __P
++
++/* use prototypes if we have an ANSI C compiler or are using C++ */
++#if defined(__STDC__) || defined(__cplusplus)
++#define __P(args) args
++#else
++#define __P(args) ()
++#endif
++
++/* Need definitions of struct sockaddr_in and FILE. */
++#include <netinet/in.h>
++#include <stdio.h>
++
++__BEGIN_DECLS
++
+ /* Structure to describe one communications endpoint. */
+
+ #define STRING_LENGTH 128 /* hosts, users, processes */
+@@ -25,10 +44,10 @@
+ char pid[10]; /* access via eval_pid(request) */
+ struct host_info client[1]; /* client endpoint info */
+ struct host_info server[1]; /* server endpoint info */
+- void (*sink) (); /* datagram sink function or 0 */
+- void (*hostname) (); /* address to printable hostname */
+- void (*hostaddr) (); /* address to printable address */
+- void (*cleanup) (); /* cleanup function or 0 */
++ void (*sink) __P((int)); /* datagram sink function or 0 */
++ void (*hostname) __P((struct host_info *)); /* address to printable hostname */
++ void (*hostaddr) __P((struct host_info *)); /* address to printable address */
++ void (*cleanup) __P((struct request_info *)); /* cleanup function or 0 */
+ struct netconfig *config; /* netdir handle */
+ };
+
+@@ -61,25 +80,30 @@
+ /* Global functions. */
+
+ #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
+-extern void fromhost(); /* get/validate client host info */
++extern void fromhost __P((struct request_info *)); /* get/validate client host info */
+ #else
+ #define fromhost sock_host /* no TLI support needed */
+ #endif
+
+-extern int hosts_access(); /* access control */
+-extern void shell_cmd(); /* execute shell command */
+-extern char *percent_x(); /* do %<char> expansion */
+-extern void rfc931(); /* client name from RFC 931 daemon */
+-extern void clean_exit(); /* clean up and exit */
+-extern void refuse(); /* clean up and exit */
+-extern char *xgets(); /* fgets() on steroids */
+-extern char *split_at(); /* strchr() and split */
+-extern unsigned long dot_quad_addr(); /* restricted inet_addr() */
++extern void shell_cmd __P((char *)); /* execute shell command */
++extern char *percent_x __P((char *, int, char *, struct request_info *)); /* do %<char> expansion */
++extern void rfc931 __P((struct sockaddr_in *, struct sockaddr_in *, char *)); /* client name from RFC 931 daemon */
++extern void clean_exit __P((struct request_info *)); /* clean up and exit */
++extern void refuse __P((struct request_info *)); /* clean up and exit */
++extern char *xgets __P((char *, int, FILE *)); /* fgets() on steroids */
++extern char *split_at __P((char *, int)); /* strchr() and split */
++extern unsigned long dot_quad_addr __P((char *)); /* restricted inet_addr() */
+
+ /* Global variables. */
+
++#ifdef HAVE_WEAKSYMS
++extern int allow_severity __attribute__ ((weak)); /* for connection logging */
++extern int deny_severity __attribute__ ((weak)); /* for connection logging */
++#else
+ extern int allow_severity; /* for connection logging */
+ extern int deny_severity; /* for connection logging */
++#endif
++
+ extern char *hosts_allow_table; /* for verification mode redirection */
+ extern char *hosts_deny_table; /* for verification mode redirection */
+ extern int hosts_access_verbose; /* for verbose matching mode */
+@@ -92,9 +116,14 @@
+ */
+
+ #ifdef __STDC__
++extern int hosts_access(struct request_info *request);
++extern int hosts_ctl(char *daemon, char *client_name, char *client_addr,
++ char *client_user);
+ extern struct request_info *request_init(struct request_info *,...);
+ extern struct request_info *request_set(struct request_info *,...);
+ #else
++extern int hosts_access();
++extern int hosts_ctl();
+ extern struct request_info *request_init(); /* initialize request */
+ extern struct request_info *request_set(); /* update request structure */
+ #endif
+@@ -117,27 +146,31 @@
+ * host_info structures serve as caches for the lookup results.
+ */
+
+-extern char *eval_user(); /* client user */
+-extern char *eval_hostname(); /* printable hostname */
+-extern char *eval_hostaddr(); /* printable host address */
+-extern char *eval_hostinfo(); /* host name or address */
+-extern char *eval_client(); /* whatever is available */
+-extern char *eval_server(); /* whatever is available */
++extern char *eval_user __P((struct request_info *)); /* client user */
++extern char *eval_hostname __P((struct host_info *)); /* printable hostname */
++extern char *eval_hostaddr __P((struct host_info *)); /* printable host address */
++extern char *eval_hostinfo __P((struct host_info *)); /* host name or address */
++extern char *eval_client __P((struct request_info *)); /* whatever is available */
++extern char *eval_server __P((struct request_info *)); /* whatever is available */
+ #define eval_daemon(r) ((r)->daemon) /* daemon process name */
+ #define eval_pid(r) ((r)->pid) /* process id */
+
+ /* Socket-specific methods, including DNS hostname lookups. */
+
+-extern void sock_host(); /* look up endpoint addresses */
+-extern void sock_hostname(); /* translate address to hostname */
+-extern void sock_hostaddr(); /* address to printable address */
++/* look up endpoint addresses */
++extern void sock_host __P((struct request_info *));
++/* translate address to hostname */
++extern void sock_hostname __P((struct host_info *));
++/* address to printable address */
++extern void sock_hostaddr __P((struct host_info *));
++
+ #define sock_methods(r) \
+ { (r)->hostname = sock_hostname; (r)->hostaddr = sock_hostaddr; }
+
+ /* The System V Transport-Level Interface (TLI) interface. */
+
+ #if defined(TLI) || defined(PTX) || defined(TLI_SEQUENT)
+-extern void tli_host(); /* look up endpoint addresses etc. */
++extern void tli_host __P((struct request_info *)); /* look up endpoint addresses etc. */
+ #endif
+
+ /*
+@@ -178,7 +211,7 @@
+ * behavior.
+ */
+
+-extern void process_options(); /* execute options */
++extern void process_options __P((char *, struct request_info *)); /* execute options */
+ extern int dry_run; /* verification flag */
+
+ /* Bug workarounds. */
+@@ -217,3 +250,7 @@
+ #define strtok my_strtok
+ extern char *my_strtok();
+ #endif
++
++__END_DECLS
++
++#endif /* tcpd.h */
+diff -Naur tcp_wrappers_7.6/tcpdchk.c tcp_wrappers_7.6.gimli/tcpdchk.c
+--- tcp_wrappers_7.6/tcpdchk.c 1997-02-11 19:13:25.000000000 -0600
++++ tcp_wrappers_7.6.gimli/tcpdchk.c 2002-01-07 08:50:19.000000000 -0600
+@@ -350,6 +350,8 @@
+ {
+ if (pat[0] == '@') {
+ tcpd_warn("%s: daemon name begins with \"@\"", pat);
++ } else if (pat[0] == '/') {
++ tcpd_warn("%s: daemon name begins with \"/\"", pat);
+ } else if (pat[0] == '.') {
+ tcpd_warn("%s: daemon name begins with dot", pat);
+ } else if (pat[strlen(pat) - 1] == '.') {
+@@ -382,6 +384,8 @@
+ {
+ if (pat[0] == '@') { /* @netgroup */
+ tcpd_warn("%s: user name begins with \"@\"", pat);
++ } else if (pat[0] == '/') {
++ tcpd_warn("%s: user name begins with \"/\"", pat);
+ } else if (pat[0] == '.') {
+ tcpd_warn("%s: user name begins with dot", pat);
+ } else if (pat[strlen(pat) - 1] == '.') {
+@@ -402,8 +406,13 @@
+ static int check_host(pat)
+ char *pat;
+ {
++ char buf[BUFSIZ];
+ char *mask;
+ int addr_count = 1;
++ FILE *fp;
++ struct tcpd_context saved_context;
++ char *cp;
++ char *wsp = " \t\r\n";
+
+ if (pat[0] == '@') { /* @netgroup */
+ #ifdef NO_NETGRENT
+@@ -422,6 +431,21 @@
+ tcpd_warn("netgroup support disabled");
+ #endif
+ #endif
++ } else if (pat[0] == '/') { /* /path/name */
++ if ((fp = fopen(pat, "r")) != 0) {
++ saved_context = tcpd_context;
++ tcpd_context.file = pat;
++ tcpd_context.line = 0;
++ while (fgets(buf, sizeof(buf), fp)) {
++ tcpd_context.line++;
++ for (cp = strtok(buf, wsp); cp; cp = strtok((char *) 0, wsp))
++ check_host(cp);
++ }
++ tcpd_context = saved_context;
++ fclose(fp);
++ } else if (errno != ENOENT) {
++ tcpd_warn("open %s: %m", pat);
++ }
+ } else if (mask = split_at(pat, '/')) { /* network/netmask */
+ if (dot_quad_addr(pat) == INADDR_NONE
+ || dot_quad_addr(mask) == INADDR_NONE)
+diff -Naur tcp_wrappers_7.6/try-from.8 tcp_wrappers_7.6.gimli/try-from.8
+--- tcp_wrappers_7.6/try-from.8 1969-12-31 18:00:00.000000000 -0600
++++ tcp_wrappers_7.6.gimli/try-from.8 2002-01-07 08:50:19.000000000 -0600
+@@ -0,0 +1,28 @@
++.TH TRY-FROM 8 "21th June 1997" Linux "Linux Programmer's Manual"
++.SH NAME
++try-from \- test program for the tcp_wrapper
++.SH SYNOPSIS
++.B try-from
++.SH DESCRIPTION
++The
++.B try-from
++command can be called via a remote shell command to find out
++if the hostname and address are properly recognized
++by the
++.B tcp_wrapper
++library, if username lookup works, and (SysV only) if the TLI
++on top of IP heuristics work. Diagnostics are reported through
++.BR syslog (3)
++and redirected to stderr.
++
++Example:
++
++rsh host /some/where/try-from
++
++.SH SEE ALSO
++.BR hosts_access (5),
++.BR hosts_options (5),
++.BR tcpd (8)
++.SH AUTHOR
++Wietse Venema, Eindhoven University of Technology, The Netherlands.
++
+diff -Naur tcp_wrappers_7.6/weak_symbols.c tcp_wrappers_7.6.gimli/weak_symbols.c
+--- tcp_wrappers_7.6/weak_symbols.c 1969-12-31 18:00:00.000000000 -0600
++++ tcp_wrappers_7.6.gimli/weak_symbols.c 2002-01-07 08:50:19.000000000 -0600
+@@ -0,0 +1,11 @@
++ /*
++ * @(#) weak_symbols.h 1.5 99/12/29 23:50
++ *
++ * Author: Anthony Towns <ajt@debian.org>
++ */
++
++#ifdef HAVE_WEAKSYMS
++#include <syslog.h>
++int deny_severity = LOG_WARNING;
++int allow_severity = SEVERITY;
++#endif
diff --git a/core/tcp_wrappers/tcp-wrappers-7.6-ipv6-1.14.patch b/core/tcp_wrappers/tcp-wrappers-7.6-ipv6-1.14.patch
new file mode 100644
index 000000000..c1593d051
--- /dev/null
+++ b/core/tcp_wrappers/tcp-wrappers-7.6-ipv6-1.14.patch
@@ -0,0 +1,1233 @@
+;; IPv6 patch for tcp_wrappers_7.6 1.14
+;; Dec 29, 2001 by Hajimu UMEMOTO <ume@mahoroba.org>
+;;
+;; This patch supports IPv4/IPv6 dual stack and IPv4-mapped IPv6 address.
+;; You can replace stock tcpd or libwrap.a with this.
+;; IPv6 address pattern is as a `[net]/prefixlen' pair.
+;; This patch was tested on KAME/FreeBSD, KAME/FreeBSD3, KAME/NetBSD,
+;; RedHat 5.1 with kernel 2.1.126, and RedHat 6.0 with kernel 2.2.10.
+;; Solaris 8 is now supported. Thanks Alexander Gall <gall@switch.ch>
+;; and Shigechika AIKAWA <shige@cin.nihon-u.ac.jp>.
+;;
+;; This version is using getaddrinfo()/getnameinfo() instead of
+;; getipnode*() to support scoped address. Use of
+;; getaddrinfo()/getnameinfo() and scoped address support is only
+;; tested on KAME.
+;;
+;; CAUTION:
+;; Back out change for field separater. Now, field separater is `:'
+;; not `|'. To specify IPv6 address, enclose IPv6 address with `['
+;; and `]'.
+;;
+;; For Linux users:
+;; If your libc doesn't have sockaddr_storage, try target `linux-old'.
+diff -u src/tcp_wrappers/fix_options.c:1.1.1.1 src/tcp_wrappers/fix_options.c:1.4
+--- src/tcp_wrappers/fix_options.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/fix_options.c Tue Sep 28 04:13:19 1999
+@@ -11,6 +11,9 @@
+
+ #include <sys/types.h>
+ #include <sys/param.h>
++#ifdef INET6
++#include <sys/socket.h>
++#endif
+ #include <netinet/in.h>
+ #include <netinet/in_systm.h>
+ #include <netinet/ip.h>
+@@ -41,6 +44,22 @@
+ unsigned int opt;
+ int optlen;
+ struct in_addr dummy;
++#ifdef INET6
++ struct sockaddr_storage ss;
++ int sslen;
++
++ /*
++ * check if this is AF_INET socket
++ * XXX IPv6 support?
++ */
++ sslen = sizeof(ss);
++ if (getsockname(fd, (struct sockaddr *)&ss, &sslen) < 0) {
++ syslog(LOG_ERR, "getpeername: %m");
++ clean_exit(request);
++ }
++ if (ss.ss_family != AF_INET)
++ return;
++#endif
+
+ if ((ip = getprotobyname("ip")) != 0)
+ ipproto = ip->p_proto;
+Index: src/tcp_wrappers/inetcf.c
+diff -u src/tcp_wrappers/inetcf.c:1.1.1.1 src/tcp_wrappers/inetcf.c:1.2
+--- src/tcp_wrappers/inetcf.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/inetcf.c Tue May 4 21:58:36 1999
+@@ -26,6 +26,9 @@
+ * guesses. Shorter names follow longer ones.
+ */
+ char *inet_files[] = {
++#ifdef INET6
++ "/usr/local/v6/etc/inet6d.conf", /* KAME */
++#endif
+ "/private/etc/inetd.conf", /* NEXT */
+ "/etc/inet/inetd.conf", /* SYSV4 */
+ "/usr/etc/inetd.conf", /* IRIX?? */
+Index: src/tcp_wrappers/misc.c
+diff -u src/tcp_wrappers/misc.c:1.1.1.1 src/tcp_wrappers/misc.c:1.4
+--- src/tcp_wrappers/misc.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/misc.c Mon Aug 23 01:32:43 1999
+@@ -58,9 +58,31 @@
+ {
+ char *cp;
+
++#ifdef INET6
++ int bracket = 0;
++
++ for (cp = string; cp && *cp; cp++) {
++ switch (*cp) {
++ case '[':
++ bracket++;
++ break;
++ case ']':
++ bracket--;
++ break;
++ default:
++ if (bracket == 0 && *cp == delimiter) {
++ *cp++ = 0;
++ return cp;
++ }
++ break;
++ }
++ }
++ return (NULL);
++#else
+ if ((cp = strchr(string, delimiter)) != 0)
+ *cp++ = 0;
+ return (cp);
++#endif
+ }
+
+ /* dot_quad_addr - convert dotted quad to internal form */
+Index: src/tcp_wrappers/refuse.c
+diff -u src/tcp_wrappers/refuse.c:1.1.1.1 src/tcp_wrappers/refuse.c:1.2
+--- src/tcp_wrappers/refuse.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/refuse.c Tue May 4 21:58:36 1999
+@@ -25,7 +25,12 @@
+ void refuse(request)
+ struct request_info *request;
+ {
++#ifdef INET6
++ syslog(deny_severity, "refused connect from %s (%s)",
++ eval_client(request), eval_hostaddr(request->client));
++#else
+ syslog(deny_severity, "refused connect from %s", eval_client(request));
++#endif
+ clean_exit(request);
+ /* NOTREACHED */
+ }
+Index: src/tcp_wrappers/rfc931.c
+diff -u src/tcp_wrappers/rfc931.c:1.1.1.1 src/tcp_wrappers/rfc931.c:1.7
+--- src/tcp_wrappers/rfc931.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/rfc931.c Mon Aug 23 01:32:43 1999
+@@ -68,20 +68,50 @@
+ /* rfc931 - return remote user name, given socket structures */
+
+ void rfc931(rmt_sin, our_sin, dest)
++#ifdef INET6
++struct sockaddr *rmt_sin;
++struct sockaddr *our_sin;
++#else
+ struct sockaddr_in *rmt_sin;
+ struct sockaddr_in *our_sin;
++#endif
+ char *dest;
+ {
+ unsigned rmt_port;
+ unsigned our_port;
++#ifdef INET6
++ struct sockaddr_storage rmt_query_sin;
++ struct sockaddr_storage our_query_sin;
++ int alen;
++#else
+ struct sockaddr_in rmt_query_sin;
+ struct sockaddr_in our_query_sin;
++#endif
+ char user[256]; /* XXX */
+ char buffer[512]; /* XXX */
+ char *cp;
+ char *result = unknown;
+ FILE *fp;
+
++#ifdef INET6
++ /* address family must be the same */
++ if (rmt_sin->sa_family != our_sin->sa_family) {
++ STRN_CPY(dest, result, STRING_LENGTH);
++ return;
++ }
++ switch (our_sin->sa_family) {
++ case AF_INET:
++ alen = sizeof(struct sockaddr_in);
++ break;
++ case AF_INET6:
++ alen = sizeof(struct sockaddr_in6);
++ break;
++ default:
++ STRN_CPY(dest, result, STRING_LENGTH);
++ return;
++ }
++#endif
++
+ /*
+ * Use one unbuffered stdio stream for writing to and for reading from
+ * the RFC931 etc. server. This is done because of a bug in the SunOS
+@@ -92,7 +122,11 @@
+ * sockets.
+ */
+
++#ifdef INET6
++ if ((fp = fsocket(our_sin->sa_family, SOCK_STREAM, 0)) != 0) {
++#else
+ if ((fp = fsocket(AF_INET, SOCK_STREAM, 0)) != 0) {
++#endif
+ setbuf(fp, (char *) 0);
+
+ /*
+@@ -112,6 +146,25 @@
+ * addresses from the query socket.
+ */
+
++#ifdef INET6
++ memcpy(&our_query_sin, our_sin, alen);
++ memcpy(&rmt_query_sin, rmt_sin, alen);
++ switch (our_sin->sa_family) {
++ case AF_INET:
++ ((struct sockaddr_in *)&our_query_sin)->sin_port = htons(ANY_PORT);
++ ((struct sockaddr_in *)&rmt_query_sin)->sin_port = htons(RFC931_PORT);
++ break;
++ case AF_INET6:
++ ((struct sockaddr_in6 *)&our_query_sin)->sin6_port = htons(ANY_PORT);
++ ((struct sockaddr_in6 *)&rmt_query_sin)->sin6_port = htons(RFC931_PORT);
++ break;
++ }
++
++ if (bind(fileno(fp), (struct sockaddr *) & our_query_sin,
++ alen) >= 0 &&
++ connect(fileno(fp), (struct sockaddr *) & rmt_query_sin,
++ alen) >= 0) {
++#else
+ our_query_sin = *our_sin;
+ our_query_sin.sin_port = htons(ANY_PORT);
+ rmt_query_sin = *rmt_sin;
+@@ -121,6 +174,7 @@
+ sizeof(our_query_sin)) >= 0 &&
+ connect(fileno(fp), (struct sockaddr *) & rmt_query_sin,
+ sizeof(rmt_query_sin)) >= 0) {
++#endif
+
+ /*
+ * Send query to server. Neglect the risk that a 13-byte
+@@ -129,8 +183,13 @@
+ */
+
+ fprintf(fp, "%u,%u\r\n",
++#ifdef INET6
++ ntohs(((struct sockaddr_in *)rmt_sin)->sin_port),
++ ntohs(((struct sockaddr_in *)our_sin)->sin_port));
++#else
+ ntohs(rmt_sin->sin_port),
+ ntohs(our_sin->sin_port));
++#endif
+ fflush(fp);
+
+ /*
+@@ -144,8 +203,13 @@
+ && ferror(fp) == 0 && feof(fp) == 0
+ && sscanf(buffer, "%u , %u : USERID :%*[^:]:%255s",
+ &rmt_port, &our_port, user) == 3
++#ifdef INET6
++ && ntohs(((struct sockaddr_in *)rmt_sin)->sin_port) == rmt_port
++ && ntohs(((struct sockaddr_in *)our_sin)->sin_port) == our_port) {
++#else
+ && ntohs(rmt_sin->sin_port) == rmt_port
+ && ntohs(our_sin->sin_port) == our_port) {
++#endif
+
+ /*
+ * Strip trailing carriage return. It is part of the
+Index: src/tcp_wrappers/scaffold.c
+diff -u src/tcp_wrappers/scaffold.c:1.1.1.1 src/tcp_wrappers/scaffold.c:1.12
+--- src/tcp_wrappers/scaffold.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/scaffold.c Fri May 5 18:54:46 2000
+@@ -39,6 +41,7 @@
+ int deny_severity = LOG_WARNING;
+ int rfc931_timeout = RFC931_TIMEOUT;
+
++#ifndef INET6
+ /* dup_hostent - create hostent in one memory block */
+
+ static struct hostent *dup_hostent(hp)
+@@ -73,9 +76,46 @@
+ }
+ return (&hb->host);
+ }
++#endif
+
+ /* find_inet_addr - find all addresses for this host, result to free() */
+
++#ifdef INET6
++struct addrinfo *find_inet_addr(host)
++char *host;
++{
++ struct addrinfo hints, *res;
++
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = PF_UNSPEC;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
++ if (getaddrinfo(host, NULL, &hints, &res) == 0)
++ return (res);
++
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = PF_UNSPEC;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_CANONNAME;
++ if (getaddrinfo(host, NULL, &hints, &res) != 0) {
++ tcpd_warn("%s: host not found", host);
++ return (0);
++ }
++ if (res->ai_family != AF_INET6 && res->ai_family != AF_INET) {
++ tcpd_warn("%d: not an internet host", res->ai_family);
++ freeaddrinfo(res);
++ return (0);
++ }
++ if (!res->ai_canonname) {
++ tcpd_warn("%s: hostname alias", host);
++ tcpd_warn("(cannot obtain official name)", res->ai_canonname);
++ } else if (STR_NE(host, res->ai_canonname)) {
++ tcpd_warn("%s: hostname alias", host);
++ tcpd_warn("(official name: %.*s)", STRING_LENGTH, res->ai_canonname);
++ }
++ return (res);
++}
++#else
+ struct hostent *find_inet_addr(host)
+ char *host;
+ {
+@@ -118,6 +158,7 @@
+ }
+ return (dup_hostent(hp));
+ }
++#endif
+
+ /* check_dns - give each address thorough workout, return address count */
+
+@@ -125,8 +166,13 @@
+ char *host;
+ {
+ struct request_info request;
++#ifdef INET6
++ struct sockaddr_storage sin;
++ struct addrinfo *hp, *res;
++#else
+ struct sockaddr_in sin;
+ struct hostent *hp;
++#endif
+ int count;
+ char *addr;
+
+@@ -134,11 +180,18 @@
+ return (0);
+ request_init(&request, RQ_CLIENT_SIN, &sin, 0);
+ sock_methods(&request);
++#ifndef INET6
+ memset((char *) &sin, 0, sizeof(sin));
+ sin.sin_family = AF_INET;
++#endif
+
++#ifdef INET6
++ for (res = hp, count = 0; res; res = res->ai_next, count++) {
++ memcpy(&sin, res->ai_addr, res->ai_addrlen);
++#else
+ for (count = 0; (addr = hp->h_addr_list[count]) != 0; count++) {
+ memcpy((char *) &sin.sin_addr, addr, sizeof(sin.sin_addr));
++#endif
+
+ /*
+ * Force host name and address conversions. Use the request structure
+@@ -151,7 +204,11 @@
+ tcpd_warn("host address %s->name lookup failed",
+ eval_hostaddr(request.client));
+ }
++#ifdef INET6
++ freeaddrinfo(hp);
++#else
+ free((char *) hp);
++#endif
+ return (count);
+ }
+
+Index: src/tcp_wrappers/scaffold.h
+diff -u src/tcp_wrappers/scaffold.h:1.1.1.1 src/tcp_wrappers/scaffold.h:1.2
+--- src/tcp_wrappers/scaffold.h:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/scaffold.h Fri May 5 18:28:13 2000
+@@ -4,6 +4,10 @@
+ * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands.
+ */
+
++#ifdef INET6
++extern struct addrinfo *find_inet_addr();
++#else
+ extern struct hostent *find_inet_addr();
++#endif
+ extern int check_dns();
+ extern int check_path();
+Index: src/tcp_wrappers/socket.c
+diff -u src/tcp_wrappers/socket.c:1.1.1.1 src/tcp_wrappers/socket.c:1.20
+--- src/tcp_wrappers/socket.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/socket.c Thu Jul 5 05:26:07 2001
+@@ -24,13 +24,22 @@
+ #include <sys/types.h>
+ #include <sys/param.h>
+ #include <sys/socket.h>
++#ifdef INT32_T
++typedef uint32_t u_int32_t;
++#endif
+ #include <netinet/in.h>
+ #include <netdb.h>
+ #include <stdio.h>
+ #include <syslog.h>
+ #include <string.h>
+
++#ifdef INET6
++#ifndef NI_WITHSCOPEID
++#define NI_WITHSCOPEID 0
++#endif
++#else
+ extern char *inet_ntoa();
++#endif
+
+ /* Local stuff. */
+
+@@ -74,8 +83,13 @@
+ void sock_host(request)
+ struct request_info *request;
+ {
++#ifdef INET6
++ static struct sockaddr_storage client;
++ static struct sockaddr_storage server;
++#else
+ static struct sockaddr_in client;
+ static struct sockaddr_in server;
++#endif
+ int len;
+ char buf[BUFSIZ];
+ int fd = request->fd;
+@@ -104,7 +118,11 @@
+ memset(buf, 0 sizeof(buf));
+ #endif
+ }
++#ifdef INET6
++ request->client->sin = (struct sockaddr *)&client;
++#else
+ request->client->sin = &client;
++#endif
+
+ /*
+ * Determine the server binding. This is used for client username
+@@ -117,7 +135,11 @@
+ tcpd_warn("getsockname: %m");
+ return;
+ }
++#ifdef INET6
++ request->server->sin = (struct sockaddr *)&server;
++#else
+ request->server->sin = &server;
++#endif
+ }
+
+ /* sock_hostaddr - map endpoint address to printable form */
+@@ -125,10 +147,26 @@
+ void sock_hostaddr(host)
+ struct host_info *host;
+ {
++#ifdef INET6
++ struct sockaddr *sin = host->sin;
++ int salen;
++
++ if (!sin)
++ return;
++#ifdef SIN6_LEN
++ salen = sin->sa_len;
++#else
++ salen = (sin->sa_family == AF_INET) ? sizeof(struct sockaddr_in)
++ : sizeof(struct sockaddr_in6);
++#endif
++ getnameinfo(sin, salen, host->addr, sizeof(host->addr),
++ NULL, 0, NI_NUMERICHOST | NI_WITHSCOPEID);
++#else
+ struct sockaddr_in *sin = host->sin;
+
+ if (sin != 0)
+ STRN_CPY(host->addr, inet_ntoa(sin->sin_addr), sizeof(host->addr));
++#endif
+ }
+
+ /* sock_hostname - map endpoint address to host name */
+@@ -136,6 +174,160 @@
+ void sock_hostname(host)
+ struct host_info *host;
+ {
++#ifdef INET6
++ struct sockaddr *sin = host->sin;
++ struct sockaddr_in sin4;
++ struct addrinfo hints, *res, *res0 = NULL;
++ int salen, alen, err = 1;
++ char *ap = NULL, *rap, hname[NI_MAXHOST];
++
++ if (sin != NULL) {
++ if (sin->sa_family == AF_INET6) {
++ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sin;
++
++ if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) {
++ memset(&sin4, 0, sizeof(sin4));
++#ifdef SIN6_LEN
++ sin4.sin_len = sizeof(sin4);
++#endif
++ sin4.sin_family = AF_INET;
++ sin4.sin_port = sin6->sin6_port;
++ sin4.sin_addr.s_addr = *(u_int32_t *)&sin6->sin6_addr.s6_addr[12];
++ sin = (struct sockaddr *)&sin4;
++ }
++ }
++ switch (sin->sa_family) {
++ case AF_INET:
++ ap = (char *)&((struct sockaddr_in *)sin)->sin_addr;
++ alen = sizeof(struct in_addr);
++ salen = sizeof(struct sockaddr_in);
++ break;
++ case AF_INET6:
++ ap = (char *)&((struct sockaddr_in6 *)sin)->sin6_addr;
++ alen = sizeof(struct in6_addr);
++ salen = sizeof(struct sockaddr_in6);
++ break;
++ default:
++ break;
++ }
++ if (ap)
++ err = getnameinfo(sin, salen, hname, sizeof(hname),
++ NULL, 0, NI_WITHSCOPEID | NI_NAMEREQD);
++ }
++ if (!err) {
++
++ STRN_CPY(host->name, hname, sizeof(host->name));
++
++ /* reject numeric addresses */
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = sin->sa_family;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST;
++ if ((err = getaddrinfo(host->name, NULL, &hints, &res0)) == 0) {
++ freeaddrinfo(res0);
++ res0 = NULL;
++ tcpd_warn("host name/name mismatch: "
++ "reverse lookup results in non-FQDN %s",
++ host->name);
++ strcpy(host->name, paranoid); /* name is bad, clobber it */
++ }
++ err = !err;
++ }
++ if (!err) {
++ /* we are now sure that this is non-numeric */
++
++ /*
++ * Verify that the address is a member of the address list returned
++ * by gethostbyname(hostname).
++ *
++ * Verify also that gethostbyaddr() and gethostbyname() return the same
++ * hostname, or rshd and rlogind may still end up being spoofed.
++ *
++ * On some sites, gethostbyname("localhost") returns "localhost.domain".
++ * This is a DNS artefact. We treat it as a special case. When we
++ * can't believe the address list from gethostbyname("localhost")
++ * we're in big trouble anyway.
++ */
++
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = sin->sa_family;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_CANONNAME;
++ if (getaddrinfo(host->name, NULL, &hints, &res0) != 0) {
++
++ /*
++ * Unable to verify that the host name matches the address. This
++ * may be a transient problem or a botched name server setup.
++ */
++
++ tcpd_warn("can't verify hostname: getaddrinfo(%s, %s) failed",
++ host->name,
++ (sin->sa_family == AF_INET) ? "AF_INET" : "AF_INET6");
++
++ } else if ((res0->ai_canonname == NULL
++ || STR_NE(host->name, res0->ai_canonname))
++ && STR_NE(host->name, "localhost")) {
++
++ /*
++ * The gethostbyaddr() and gethostbyname() calls did not return
++ * the same hostname. This could be a nameserver configuration
++ * problem. It could also be that someone is trying to spoof us.
++ */
++
++ tcpd_warn("host name/name mismatch: %s != %.*s",
++ host->name, STRING_LENGTH,
++ (res0->ai_canonname == NULL) ? "" : res0->ai_canonname);
++
++ } else {
++
++ /*
++ * The address should be a member of the address list returned by
++ * gethostbyname(). We should first verify that the h_addrtype
++ * field is AF_INET, but this program has already caused too much
++ * grief on systems with broken library code.
++ */
++
++ for (res = res0; res; res = res->ai_next) {
++ if (res->ai_family != sin->sa_family)
++ continue;
++ switch (res->ai_family) {
++ case AF_INET:
++ rap = (char *)&((struct sockaddr_in *)res->ai_addr)->sin_addr;
++ break;
++ case AF_INET6:
++ /* need to check scope_id */
++ if (((struct sockaddr_in6 *)sin)->sin6_scope_id !=
++ ((struct sockaddr_in6 *)res->ai_addr)->sin6_scope_id) {
++ continue;
++ }
++ rap = (char *)&((struct sockaddr_in6 *)res->ai_addr)->sin6_addr;
++ break;
++ default:
++ continue;
++ }
++ if (memcmp(rap, ap, alen) == 0) {
++ freeaddrinfo(res0);
++ return; /* name is good, keep it */
++ }
++ }
++
++ /*
++ * The host name does not map to the initial address. Perhaps
++ * someone has messed up. Perhaps someone compromised a name
++ * server.
++ */
++
++ getnameinfo(sin, salen, hname, sizeof(hname),
++ NULL, 0, NI_NUMERICHOST | NI_WITHSCOPEID);
++ tcpd_warn("host name/address mismatch: %s != %.*s",
++ hname, STRING_LENGTH,
++ (res0->ai_canonname == NULL) ? "" : res0->ai_canonname);
++ }
++ strcpy(host->name, paranoid); /* name is bad, clobber it */
++ if (res0)
++ freeaddrinfo(res0);
++ }
++#else /* INET6 */
+ struct sockaddr_in *sin = host->sin;
+ struct hostent *hp;
+ int i;
+@@ -215,6 +407,7 @@
+ }
+ strcpy(host->name, paranoid); /* name is bad, clobber it */
+ }
++#endif /* INET6 */
+ }
+
+ /* sock_sink - absorb unreceived IP datagram */
+@@ -223,7 +416,11 @@
+ int fd;
+ {
+ char buf[BUFSIZ];
++#ifdef INET6
++ struct sockaddr_storage sin;
++#else
+ struct sockaddr_in sin;
++#endif
+ int size = sizeof(sin);
+
+ /*
+Index: src/tcp_wrappers/tcpd.c
+diff -u src/tcp_wrappers/tcpd.c:1.1.1.1 src/tcp_wrappers/tcpd.c:1.2
+--- src/tcp_wrappers/tcpd.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/tcpd.c Tue May 4 21:58:36 1999
+@@ -120,7 +120,12 @@
+
+ /* Report request and invoke the real daemon program. */
+
++#ifdef INET6
++ syslog(allow_severity, "connect from %s (%s)",
++ eval_client(&request), eval_hostaddr(request.client));
++#else
+ syslog(allow_severity, "connect from %s", eval_client(&request));
++#endif
+ closelog();
+ (void) execv(path, argv);
+ syslog(LOG_ERR, "error: cannot execute %s: %m", path);
+Index: src/tcp_wrappers/tcpd.h
+diff -u src/tcp_wrappers/tcpd.h:1.1.1.1 src/tcp_wrappers/tcpd.h:1.7
+--- src/tcp_wrappers/tcpd.h:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/tcpd.h Mon Aug 23 01:32:43 1999
+@@ -11,7 +11,11 @@
+ struct host_info {
+ char name[STRING_LENGTH]; /* access via eval_hostname(host) */
+ char addr[STRING_LENGTH]; /* access via eval_hostaddr(host) */
++#ifdef INET6
++ struct sockaddr *sin; /* socket address or 0 */
++#else
+ struct sockaddr_in *sin; /* socket address or 0 */
++#endif
+ struct t_unitdata *unit; /* TLI transport address or 0 */
+ struct request_info *request; /* for shared information */
+ };
+Index: src/tcp_wrappers/tcpdchk.c
+diff -u src/tcp_wrappers/tcpdchk.c:1.1.1.1 src/tcp_wrappers/tcpdchk.c:1.5
+--- src/tcp_wrappers/tcpdchk.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/tcpdchk.c Fri May 5 18:28:13 2000
+@@ -22,6 +22,9 @@
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#ifdef INET6
++#include <sys/socket.h>
++#endif
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <stdio.h>
+@@ -397,6 +400,31 @@
+ }
+ }
+
++#ifdef INET6
++static int is_inet6_addr(pat)
++ char *pat;
++{
++ struct addrinfo hints, *res;
++ int len, ret;
++ char ch;
++
++ if (*pat != '[')
++ return (0);
++ len = strlen(pat);
++ if ((ch = pat[len - 1]) != ']')
++ return (0);
++ pat[len - 1] = '\0';
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = AF_INET6;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
++ if ((ret = getaddrinfo(pat + 1, NULL, &hints, &res)) == 0)
++ freeaddrinfo(res);
++ pat[len - 1] = ch;
++ return (ret == 0);
++}
++#endif
++
+ /* check_host - criticize host pattern */
+
+ static int check_host(pat)
+@@ -423,14 +451,27 @@
+ #endif
+ #endif
+ } else if (mask = split_at(pat, '/')) { /* network/netmask */
++#ifdef INET6
++ int mask_len;
++
++ if ((dot_quad_addr(pat) == INADDR_NONE
++ || dot_quad_addr(mask) == INADDR_NONE)
++ && (!is_inet6_addr(pat)
++ || ((mask_len = atoi(mask)) < 0 || mask_len > 128)))
++#else
+ if (dot_quad_addr(pat) == INADDR_NONE
+ || dot_quad_addr(mask) == INADDR_NONE)
++#endif
+ tcpd_warn("%s/%s: bad net/mask pattern", pat, mask);
+ } else if (STR_EQ(pat, "FAIL")) { /* obsolete */
+ tcpd_warn("FAIL is no longer recognized");
+ tcpd_warn("(use EXCEPT or DENY instead)");
+ } else if (reserved_name(pat)) { /* other reserved */
+ /* void */ ;
++#ifdef INET6
++ } else if (is_inet6_addr(pat)) { /* IPv6 address */
++ addr_count = 1;
++#endif
+ } else if (NOT_INADDR(pat)) { /* internet name */
+ if (pat[strlen(pat) - 1] == '.') {
+ tcpd_warn("%s: domain or host name ends in dot", pat);
+Index: src/tcp_wrappers/tcpdmatch.c
+diff -u src/tcp_wrappers/tcpdmatch.c:1.1.1.1 src/tcp_wrappers/tcpdmatch.c:1.7
+--- src/tcp_wrappers/tcpdmatch.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/tcpdmatch.c Fri May 5 19:06:40 2000
+@@ -57,7 +57,11 @@
+ int argc;
+ char **argv;
+ {
++#ifdef INET6
++ struct addrinfo hints, *hp, *res;
++#else
+ struct hostent *hp;
++#endif
+ char *myname = argv[0];
+ char *client;
+ char *server;
+@@ -68,8 +72,13 @@
+ int ch;
+ char *inetcf = 0;
+ int count;
++#ifdef INET6
++ struct sockaddr_storage server_sin;
++ struct sockaddr_storage client_sin;
++#else
+ struct sockaddr_in server_sin;
+ struct sockaddr_in client_sin;
++#endif
+ struct stat st;
+
+ /*
+@@ -172,13 +181,20 @@
+ if (NOT_INADDR(server) == 0 || HOSTNAME_KNOWN(server)) {
+ if ((hp = find_inet_addr(server)) == 0)
+ exit(1);
++#ifndef INET6
+ memset((char *) &server_sin, 0, sizeof(server_sin));
+ server_sin.sin_family = AF_INET;
++#endif
+ request_set(&request, RQ_SERVER_SIN, &server_sin, 0);
+
++#ifdef INET6
++ for (res = hp, count = 0; res; res = res->ai_next, count++) {
++ memcpy(&server_sin, res->ai_addr, res->ai_addrlen);
++#else
+ for (count = 0; (addr = hp->h_addr_list[count]) != 0; count++) {
+ memcpy((char *) &server_sin.sin_addr, addr,
+ sizeof(server_sin.sin_addr));
++#endif
+
+ /*
+ * Force evaluation of server host name and address. Host name
+@@ -194,7 +210,11 @@
+ fprintf(stderr, "Please specify an address instead\n");
+ exit(1);
+ }
++#ifdef INET6
++ freeaddrinfo(hp);
++#else
+ free((char *) hp);
++#endif
+ } else {
+ request_set(&request, RQ_SERVER_NAME, server, 0);
+ }
+@@ -208,6 +228,18 @@
+ tcpdmatch(&request);
+ exit(0);
+ }
++#ifdef INET6
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = AF_INET6;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
++ if (getaddrinfo(client, NULL, &hints, &res) == 0) {
++ freeaddrinfo(res);
++ request_set(&request, RQ_CLIENT_ADDR, client, 0);
++ tcpdmatch(&request);
++ exit(0);
++ }
++#endif
+
+ /*
+ * Perhaps they are testing special client hostname patterns that aren't
+@@ -229,6 +261,34 @@
+ */
+ if ((hp = find_inet_addr(client)) == 0)
+ exit(1);
++#ifdef INET6
++ request_set(&request, RQ_CLIENT_SIN, &client_sin, 0);
++
++ for (res = hp, count = 0; res; res = res->ai_next, count++) {
++ memcpy(&client_sin, res->ai_addr, res->ai_addrlen);
++
++ /*
++ * getnameinfo() doesn't do reverse lookup against link-local
++ * address. So, we pass through host name evaluation against
++ * such addresses.
++ */
++ if (res->ai_family != AF_INET6 ||
++ !IN6_IS_ADDR_LINKLOCAL(&((struct sockaddr_in6 *)res->ai_addr)->sin6_addr)) {
++ /*
++ * Force evaluation of client host name and address. Host name
++ * conflicts will be reported while eval_hostname() does its job.
++ */
++ request_set(&request, RQ_CLIENT_NAME, "", RQ_CLIENT_ADDR, "", 0);
++ if (STR_EQ(eval_hostname(request.client), unknown))
++ tcpd_warn("host address %s->name lookup failed",
++ eval_hostaddr(request.client));
++ }
++ tcpdmatch(&request);
++ if (res->ai_next)
++ printf("\n");
++ }
++ freeaddrinfo(hp);
++#else
+ memset((char *) &client_sin, 0, sizeof(client_sin));
+ client_sin.sin_family = AF_INET;
+ request_set(&request, RQ_CLIENT_SIN, &client_sin, 0);
+@@ -250,6 +310,7 @@
+ printf("\n");
+ }
+ free((char *) hp);
++#endif
+ exit(0);
+ }
+
+Index: src/tcp_wrappers/tli.c
+diff -u src/tcp_wrappers/tli.c:1.1.1.1 src/tcp_wrappers/tli.c:1.4
+--- src/tcp_wrappers/tli.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/tli.c Fri May 5 19:15:09 2000
+@@ -65,8 +65,13 @@
+ void tli_host(request)
+ struct request_info *request;
+ {
++#ifdef INET6
++ static struct sockaddr_storage client;
++ static struct sockaddr_storage server;
++#else
+ static struct sockaddr_in client;
+ static struct sockaddr_in server;
++#endif
+
+ /*
+ * If we discover that we are using an IP transport, pretend we never
+@@ -76,14 +81,29 @@
+
+ tli_endpoints(request);
+ if ((request->config = tli_transport(request->fd)) != 0
++#ifdef INET6
++ && (STR_EQ(request->config->nc_protofmly, "inet") ||
++ STR_EQ(request->config->nc_protofmly, "inet6"))) {
++#else
+ && STR_EQ(request->config->nc_protofmly, "inet")) {
++#endif
+ if (request->client->unit != 0) {
++#ifdef INET6
++ client = *(struct sockaddr_storage *) request->client->unit->addr.buf;
++ request->client->sin = (struct sockaddr *) &client;
++#else
+ client = *(struct sockaddr_in *) request->client->unit->addr.buf;
+ request->client->sin = &client;
++#endif
+ }
+ if (request->server->unit != 0) {
++#ifdef INET6
++ server = *(struct sockaddr_storage *) request->server->unit->addr.buf;
++ request->server->sin = (struct sockaddr *) &server;
++#else
+ server = *(struct sockaddr_in *) request->server->unit->addr.buf;
+ request->server->sin = &server;
++#endif
+ }
+ tli_cleanup(request);
+ sock_methods(request);
+@@ -187,7 +207,15 @@
+ }
+ while (config = getnetconfig(handlep)) {
+ if (stat(config->nc_device, &from_config) == 0) {
++#ifdef NO_CLONE_DEVICE
++ /*
++ * If the network devices are not cloned (as is the case for
++ * Solaris 8 Beta), we must compare the major device numbers.
++ */
++ if (major(from_config.st_rdev) == major(from_client.st_rdev))
++#else
+ if (minor(from_config.st_rdev) == major(from_client.st_rdev))
++#endif
+ break;
+ }
+ }
+Index: src/tcp_wrappers/update.c
+diff -u src/tcp_wrappers/update.c:1.1.1.1 src/tcp_wrappers/update.c:1.3
+--- src/tcp_wrappers/update.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/update.c Mon Aug 23 01:32:43 1999
+@@ -46,10 +46,18 @@
+ request->fd = va_arg(ap, int);
+ continue;
+ case RQ_CLIENT_SIN:
++#ifdef INET6
++ request->client->sin = va_arg(ap, struct sockaddr *);
++#else
+ request->client->sin = va_arg(ap, struct sockaddr_in *);
++#endif
+ continue;
+ case RQ_SERVER_SIN:
++#ifdef INET6
++ request->server->sin = va_arg(ap, struct sockaddr *);
++#else
+ request->server->sin = va_arg(ap, struct sockaddr_in *);
++#endif
+ continue;
+
+ /*
+Index: src/tcp_wrappers/workarounds.c
+diff -u src/tcp_wrappers/workarounds.c:1.1.1.1 src/tcp_wrappers/workarounds.c:1.3
+--- src/tcp_wrappers/workarounds.c:1.1.1.1 Tue May 4 21:56:04 1999
++++ src/tcp_wrappers/workarounds.c Mon Aug 23 01:32:43 1999
+@@ -166,11 +166,22 @@
+ int *len;
+ {
+ int ret;
++#ifdef INET6
++ struct sockaddr *sin = sa;
++#else
+ struct sockaddr_in *sin = (struct sockaddr_in *) sa;
++#endif
+
+ if ((ret = getpeername(sock, sa, len)) >= 0
++#ifdef INET6
++ && ((sin->su_si.si_family == AF_INET6
++ && IN6_IS_ADDR_UNSPECIFIED(&sin->su_sin6.sin6_addr))
++ || (sin->su_si.si_family == AF_INET
++ && sin->su_sin.sin_addr.s_addr == 0))) {
++#else
+ && sa->sa_family == AF_INET
+ && sin->sin_addr.s_addr == 0) {
++#endif
+ errno = ENOTCONN;
+ return (-1);
+ } else {
+--- src/tcp_wrappers/hosts_access.c 2003-08-04 21:36:20.000000000 +0000
++++ src/tcp_wrappers/hosts_access.c 2003-08-04 21:45:59.000000000 +0000
+@@ -24,7 +24,13 @@
+ /* System libraries. */
+
+ #include <sys/types.h>
++#ifdef INT32_T
++ typedef uint32_t u_int32_t;
++#endif
+ #include <sys/param.h>
++#ifdef INET6
++#include <sys/socket.h>
++#endif
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <stdio.h>
+@@ -33,6 +39,9 @@
+ #include <errno.h>
+ #include <setjmp.h>
+ #include <string.h>
++#ifdef INET6
++#include <netdb.h>
++#endif
+
+ extern char *fgets();
+ extern int errno;
+@@ -83,6 +92,10 @@
+ static int host_match();
+ static int string_match();
+ static int masked_match();
++#ifdef INET6
++static int masked_match4();
++static int masked_match6();
++#endif
+
+ /* Size of logical line buffer. */
+
+@@ -312,6 +325,13 @@
+ {
+ int n;
+
++#ifdef INET6
++ /* convert IPv4 mapped IPv6 address to IPv4 address */
++ if (STRN_EQ(string, "::ffff:", 7)
++ && dot_quad_addr(string + 7) != INADDR_NONE) {
++ string += 7;
++ }
++#endif
+ #ifndef DISABLE_WILDCARD_MATCHING
+ if (strchr(tok, '*') || strchr(tok,'?')) { /* contains '*' or '?' */
+ /* we must convert the both to lowercase as match_pattern_ylo is case-sensitive */
+@@ -333,21 +353,72 @@
+ } else if (tok[(n = strlen(tok)) - 1] == '.') { /* prefix */
+ return (STRN_EQ(tok, string, n));
+ } else { /* exact match */
++#ifdef INET6
++ struct addrinfo hints, *res;
++ struct sockaddr_in6 pat, addr;
++ int len, ret;
++ char ch;
++
++ len = strlen(tok);
++ if (*tok == '[' && tok[len - 1] == ']') {
++ ch = tok[len - 1];
++ tok[len - 1] = '\0';
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = AF_INET6;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
++ if ((ret = getaddrinfo(tok + 1, NULL, &hints, &res)) == 0) {
++ memcpy(&pat, res->ai_addr, sizeof(pat));
++ freeaddrinfo(res);
++ }
++ tok[len - 1] = ch;
++ if (ret != 0 || getaddrinfo(string, NULL, &hints, &res) != 0)
++ return NO;
++ memcpy(&addr, res->ai_addr, sizeof(addr));
++ freeaddrinfo(res);
++#ifdef NI_WITHSCOPEID
++ if (pat.sin6_scope_id != 0 &&
++ addr.sin6_scope_id != pat.sin6_scope_id)
++ return NO;
++#endif
++ return (!memcmp(&pat.sin6_addr, &addr.sin6_addr,
++ sizeof(struct in6_addr)));
++ return (ret);
++ }
++#endif
+ return (STR_EQ(tok, string));
+ }
+ }
+
+ /* masked_match - match address against netnumber/netmask */
+
++#ifdef INET6
+ static int masked_match(net_tok, mask_tok, string)
+ char *net_tok;
+ char *mask_tok;
+ char *string;
+ {
++ return (masked_match4(net_tok, mask_tok, string) ||
++ masked_match6(net_tok, mask_tok, string));
++}
++
++static int masked_match4(net_tok, mask_tok, string)
++#else
++static int masked_match(net_tok, mask_tok, string)
++#endif
++char *net_tok;
++char *mask_tok;
++char *string;
++{
++#ifdef INET6
++ u_int32_t net;
++ u_int32_t mask;
++ u_int32_t addr;
++#else
+ unsigned long net;
+ unsigned long mask;
+ unsigned long addr;
+-
++#endif
+ /*
+ * Disallow forms other than dotted quad: the treatment that inet_addr()
+ * gives to forms with less than four components is inconsistent with the
+@@ -358,12 +429,81 @@
+ return (NO);
+ if ((net = dot_quad_addr(net_tok)) == INADDR_NONE
+ || (mask = dot_quad_addr(mask_tok)) == INADDR_NONE) {
++#ifndef INET6
+ tcpd_warn("bad net/mask expression: %s/%s", net_tok, mask_tok);
++#endif
+ return (NO); /* not tcpd_jump() */
+ }
+ return ((addr & mask) == net);
+ }
+
++#ifdef INET6
++static int masked_match6(net_tok, mask_tok, string)
++char *net_tok;
++char *mask_tok;
++char *string;
++{
++ struct addrinfo hints, *res;
++ struct sockaddr_in6 net, addr;
++ u_int32_t mask;
++ int len, mask_len, i = 0;
++ char ch;
++
++ /*
++ * Behavior of getaddrinfo() against IPv4-mapped IPv6 address is
++ * different between KAME and Solaris8. While KAME returns
++ * AF_INET6, Solaris8 returns AF_INET. So, we avoid this here.
++ */
++ if (STRN_EQ(string, "::ffff:", 7)
++ && dot_quad_addr(string + 7) != INADDR_NONE)
++ return (masked_match4(net_tok, mask_tok, string + 7));
++
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = AF_INET6;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
++ if (getaddrinfo(string, NULL, &hints, &res) != 0)
++ return NO;
++ memcpy(&addr, res->ai_addr, sizeof(addr));
++ freeaddrinfo(res);
++
++ /* match IPv6 address against netnumber/prefixlen */
++ len = strlen(net_tok);
++ if (*net_tok != '[' || net_tok[len - 1] != ']')
++ return NO;
++ ch = net_tok[len - 1];
++ net_tok[len - 1] = '\0';
++ if (getaddrinfo(net_tok + 1, NULL, &hints, &res) != 0) {
++ net_tok[len - 1] = ch;
++ return NO;
++ }
++ memcpy(&net, res->ai_addr, sizeof(net));
++ freeaddrinfo(res);
++ net_tok[len - 1] = ch;
++ if ((mask_len = atoi(mask_tok)) < 0 || mask_len > 128)
++ return NO;
++
++#ifdef NI_WITHSCOPEID
++ if (net.sin6_scope_id != 0 && addr.sin6_scope_id != net.sin6_scope_id)
++ return NO;
++#endif
++ while (mask_len > 0) {
++ if (mask_len < 32) {
++ mask = htonl(~(0xffffffff >> mask_len));
++ if ((*(u_int32_t *)&addr.sin6_addr.s6_addr[i] & mask) != (*(u_int32_t *)&net.sin6_addr.s6_addr[i] & mask))
++ return NO;
++ break;
++ }
++ if (*(u_int32_t *)&addr.sin6_addr.s6_addr[i] != *(u_int32_t *)&net.sin6_addr.s6_addr[i])
++ return NO;
++ i += 4;
++ mask_len -= 32;
++ }
++ return YES;
++}
++#endif /* INET6 */
++
++
+ #ifndef DISABLE_WILDCARD_MATCHING
+ /* Note: this feature has been adapted in a pretty straightforward way
+ from Tatu Ylonen's last SSH version under free license by
+--- src/tcp_wrappers/hosts_access.5 2003-08-04 21:52:29.000000000 +0000
++++ src/tcp_wrappers/hosts_access.5 2003-08-04 21:53:39.000000000 +0000
+@@ -85,7 +85,7 @@
+ for daemon process names or for client user names.
+ .IP \(bu
+ An expression of the form `n.n.n.n/m.m.m.m\' is interpreted as a
+-`net/mask\' pair. A host address is matched if `net\' is equal to the
++`net/mask\' pair. A IPv4 host address is matched if `net\' is equal to the
+ bitwise AND of the address and the `mask\'. For example, the net/mask
+ pattern `131.155.72.0/255.255.254.0\' matches every address in the
+ range `131.155.72.0\' through `131.155.73.255\'.
+@@ -96,6 +96,13 @@
+ zero or more lines with zero or more host name or address patterns
+ separated by whitespace. A file name pattern can be used anywhere
+ a host name or address pattern can be used.
++.IP \(bu
++An expression of the form `[n:n:n:n:n:n:n:n]/m\' is interpreted as a
++`[net]/prefixlen\' pair. A IPv6 host address is matched if
++`prefixlen\' bits of `net\' is equal to the `prefixlen\' bits of the
++address. For example, the [net]/prefixlen pattern
++`[3ffe:505:2:1::]/64\' matches every address in the range
++`3ffe:505:2:1::\' through `3ffe:505:2:1:ffff:ffff:ffff:ffff\'.
+ .SH WILDCARDS
+ The access control language supports explicit wildcards:
+ .IP ALL
diff --git a/core/tcp_wrappers/try-from.8 b/core/tcp_wrappers/try-from.8
new file mode 100644
index 000000000..9c8f30543
--- /dev/null
+++ b/core/tcp_wrappers/try-from.8
@@ -0,0 +1,28 @@
+.TH TRY-FROM 8 "21th June 1997" Linux "Linux Programmer's Manual"
+.SH NAME
+try-from \- test program for the tcp_wrapper
+.SH SYNOPSIS
+.B try-from
+.SH DESCRIPTION
+The
+.B try-from
+command can be called via a remote shell command to find out
+if the hostname and address are properly recognized
+by the
+.B tcp_wrapper
+library, if username lookup works, and (SysV only) if the TLI
+on top of IP heuristics work. Diagnostics are reported through
+.BR syslog (3)
+and redirected to stderr.
+
+Example:
+
+rsh host /some/where/try-from
+
+.SH SEE ALSO
+.BR hosts_access (5),
+.BR hosts_options (5),
+.BR tcpd (8)
+.SH AUTHOR
+Wietse Venema, Eindhoven University of Technology, The Netherlands.
+
diff --git a/core/texinfo/PKGBUILD b/core/texinfo/PKGBUILD
new file mode 100644
index 000000000..c660deb2e
--- /dev/null
+++ b/core/texinfo/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 102128 2010-12-06 05:33:18Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=texinfo
+pkgver=4.13a
+pkgrel=5
+pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/texinfo/"
+license=('GPL3')
+groups=('base')
+depends=('ncurses' 'findutils' 'gzip')
+install=texinfo.install
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('71ba711519209b5fb583fed2b3d86fcb')
+
+build() {
+ cd ${srcdir}/${pkgname}-4.13
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-4.13
+ make DESTDIR=${pkgdir} install
+
+ # fix this here as it prevent make from trying to rebuild manual pages
+ sed -i 's#A-z#A-Za-z#' ${pkgdir}/usr/bin/texi2dvi
+}
diff --git a/core/texinfo/texinfo.install b/core/texinfo/texinfo.install
new file mode 100644
index 000000000..f1554e4f4
--- /dev/null
+++ b/core/texinfo/texinfo.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(info.info info-stnd.info texinfo texinfo-1 texinfo-2 texinfo-3)
+
+post_install() {
+ # Scan *all* info files on install
+ for file in $(find $infodir -type f ! -name dir); do
+ install-info $file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/tzdata/Makefile.patch b/core/tzdata/Makefile.patch
new file mode 100644
index 000000000..e88f9d907
--- /dev/null
+++ b/core/tzdata/Makefile.patch
@@ -0,0 +1,140 @@
+diff -Naur src/Makefile src-p/Makefile
+--- src/Makefile 2007-08-20 16:47:41.000000000 +0200
++++ src-p/Makefile 2007-10-02 04:07:44.000000000 +0200
+@@ -34,17 +34,17 @@
+
+ # Everything gets put in subdirectories of. . .
+
+-TOPDIR= /usr/local
++TOPDIR= $(DESTDIR)/usr
+
+ # "Compiled" time zone information is placed in the "TZDIR" directory
+ # (and subdirectories).
+ # Use an absolute path name for TZDIR unless you're just testing the software.
+
+-TZDIR= $(TOPDIR)/etc/zoneinfo
++TZDIR= $(TOPDIR)/share/zoneinfo
+
+ # The "tzselect", "zic", and "zdump" commands get installed in. . .
+
+-ETCDIR= $(TOPDIR)/etc
++SBINDIR= $(TOPDIR)/sbin
+
+ # If you "make INSTALL", the "date" command gets installed in. . .
+
+@@ -52,7 +52,7 @@
+
+ # Manual pages go in subdirectories of. . .
+
+-MANDIR= $(TOPDIR)/man
++MANDIR= $(TOPDIR)/share/man
+
+ # Library functions are put in an archive in LIBDIR.
+
+@@ -83,7 +83,7 @@
+
+ # Non-default libraries needed to link.
+ # Add -lintl if you want to use `gettext' on Solaris.
+-LDLIBS=
++LDLIBS=$(LDFLAGS)
+
+ # Add the following to the end of the "CFLAGS=" line as needed.
+ # -Dconst= if `const' does not work (SunOS 4.x cc, OSF1 V5.0 cc)
+@@ -211,7 +211,7 @@
+ # before the first Monday in January when a "%V" format is used and January 1
+ # falls on a Friday, Saturday, or Sunday.
+
+-CFLAGS=
++CFLAGS += -std=gnu99
+
+ # If you want zic's -s option used when installing, uncomment the next line
+ # ZFLAGS= -s
+@@ -220,7 +220,7 @@
+ ZIC= $(zic) $(ZFLAGS)
+
+ # The name of a Posix-compliant `awk' on your system.
+-AWK= nawk
++AWK= awk
+
+ # The path where SGML DTDs are kept.
+ SGML_SEARCH_PATH= $(TOPDIR)/share/doc/sgml-lib/REC-html401-19991224/
+@@ -241,8 +241,10 @@
+
+ ###############################################################################
+
+-cc= cc
+-CC= $(cc) -DTZDIR=\"$(TZDIR)\"
++CC+= -DTZDIR=\"$(TZDIR)\"
++ifeq ($(NLS),1)
++CC += -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\"
++endif
+
+ TZCSRCS= zic.c localtime.c asctime.c scheck.c ialloc.c
+ TZCOBJS= zic.o localtime.o asctime.o scheck.o ialloc.o
+@@ -282,14 +284,16 @@
+
+ ALL: all date
+
+-install: all $(DATA) $(REDO) $(TZLIB) $(MANS) $(TABDATA)
++install: all $(DATA) $(REDO) $(MANS) $(TABDATA)
+ $(ZIC) -y $(YEARISTYPE) \
+ -d $(TZDIR) -l $(LOCALTIME) -p $(POSIXRULES)
+ -rm -f $(TZDIR)/iso3166.tab $(TZDIR)/zone.tab
+ cp iso3166.tab zone.tab $(TZDIR)/.
+- -mkdir $(TOPDIR) $(ETCDIR)
+- cp tzselect zic zdump $(ETCDIR)/.
+- -mkdir $(TOPDIR) $(MANDIR) \
++ -mkdir -p $(TOPDIR) $(SBINDIR)
++ cp zic zdump $(SBINDIR)/.
++ -mkdir -p $(TOPDIR) $(BINDIR)
++ cp tzselect $(BINDIR)/.
++ -mkdir -p $(TOPDIR) $(MANDIR) \
+ $(MANDIR)/man3 $(MANDIR)/man5 $(MANDIR)/man8
+ -rm -f $(MANDIR)/man3/newctime.3 \
+ $(MANDIR)/man3/newtzset.3 \
+@@ -298,13 +302,11 @@
+ $(MANDIR)/man8/zdump.8 \
+ $(MANDIR)/man8/zic.8
+ cp newctime.3 newtzset.3 $(MANDIR)/man3/.
+- cp tzfile.5 $(MANDIR)/man5/.
+- cp tzselect.8 zdump.8 zic.8 $(MANDIR)/man8/.
+
+ INSTALL: ALL install date.1
+- -mkdir $(TOPDIR) $(BINDIR)
++ -mkdir -p $(TOPDIR) $(BINDIR)
+ cp date $(BINDIR)/.
+- -mkdir $(TOPDIR) $(MANDIR) $(MANDIR)/man1
++ -mkdir -p $(TOPDIR) $(MANDIR) $(MANDIR)/man1
+ -rm -f $(MANDIR)/man1/date.1
+ cp date.1 $(MANDIR)/man1/.
+
+@@ -334,9 +336,9 @@
+ # You must replace all of $(TZDIR) to switch from not using leap seconds
+ # to using them, or vice versa.
+ other_two: zic leapseconds $(TDATA)
+- $(ZIC) -y $(YEARISTYPE) -d $(TZDIR)-posix -L /dev/null $(TDATA)
++ $(ZIC) -y $(YEARISTYPE) -d $(TZDIR)/posix -L /dev/null $(TDATA)
+ $(ZIC) -y $(YEARISTYPE) \
+- -d $(TZDIR)-leaps -L leapseconds $(TDATA)
++ -d $(TZDIR)/right -L leapseconds $(TDATA)
+
+ posix_right: posix_only other_two
+
+@@ -367,7 +369,7 @@
+ <$? >$@
+ chmod +x $@
+
+-check: check_tables check_web
++check: check_tables
+
+ check_tables: checktab.awk $(PRIMARY_YDATA)
+ $(AWK) -f checktab.awk $(PRIMARY_YDATA)
+diff -Naur src/tzselect.ksh src-p/tzselect.ksh
+--- src/tzselect.ksh 2007-08-20 16:47:42.000000000 +0200
++++ src-p/tzselect.ksh 2007-10-02 04:07:44.000000000 +0200
+@@ -1,4 +1,4 @@
+-#! /bin/ksh
++#! /bin/bash
+
+ # '@(#)tzselect.ksh 8.1'
+
diff --git a/core/tzdata/PKGBUILD b/core/tzdata/PKGBUILD
new file mode 100644
index 000000000..2815732c9
--- /dev/null
+++ b/core/tzdata/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 114729 2011-03-15 19:46:03Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=tzdata
+pkgver=2011d
+pkgrel=1
+_tzcode=2011d
+_tzdata=2011d
+pkgdesc="Sources for time zone and daylight saving time data"
+arch=('i686' 'x86_64')
+url="http://www.twinsun.com/tz/tz-link.htm"
+license=('GPL')
+depends=()
+makedepends=()
+optdepends=('sh: required by tzselect')
+options=('!emptydirs')
+source=(ftp://elsie.nci.nih.gov/pub/tzcode${_tzcode}.tar.gz \
+ ftp://elsie.nci.nih.gov/pub/${pkgname}${_tzdata}.tar.gz \
+ Makefile.patch)
+md5sums=('95095242ee368e6a7e107f154590ac11'
+ '03c5793502b7c41985edd73146bf7e36'
+ 'a64ed97d1fc03c66ee8612c0d9f40507')
+
+build() {
+ cd ${srcdir}
+
+ tar -xf tzcode${_tzcode}.tar.gz
+ tar -xf ${pkgname}${_tzdata}.tar.gz
+
+ patch -Np1 -i "${srcdir}/Makefile.patch"
+
+ make
+}
+
+package() {
+ cd ${srcdir}
+ make DESTDIR="${pkgdir}" install
+
+ rm "${pkgdir}/usr/share/zoneinfo/localtime"
+}
diff --git a/core/udev/80-drivers.rules b/core/udev/80-drivers.rules
new file mode 100644
index 000000000..56ac06cb4
--- /dev/null
+++ b/core/udev/80-drivers.rules
@@ -0,0 +1,14 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION=="remove", GOTO="drivers_end"
+
+DRIVER!="?*", ENV{MODALIAS}=="?*", RUN+="/lib/udev/load-modules.sh $env{MODALIAS}"
+SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="SD", RUN+="/lib/udev/load-modules.sh tifm_sd"
+SUBSYSTEM=="tifm", ENV{TIFM_CARD_TYPE}=="MS", RUN+="/lib/udev/load-modules.sh tifm_ms"
+SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh ms_block"
+SUBSYSTEM=="memstick", RUN+="/lib/udev/load-modules.sh mspro_block"
+SUBSYSTEM=="i2o", RUN+="/lib/udev/load-modules.sh i2o_block"
+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST!="[module/sg]", RUN+="/lib/udev/load-modules.sh sg"
+SUBSYSTEM=="module", KERNEL=="parport_pc", RUN+="/lib/udev/load-modules.sh ppdev"
+
+LABEL="drivers_end"
diff --git a/core/udev/81-arch.rules b/core/udev/81-arch.rules
new file mode 100644
index 000000000..21127a729
--- /dev/null
+++ b/core/udev/81-arch.rules
@@ -0,0 +1,138 @@
+# Udev rules for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
+# do not edit this file, it will be overwritten on update
+#
+# There are a number of modifiers that are allowed to be used in some
+# of the different fields. They provide the following subsitutions:
+#
+# %n the "kernel number" of the device.
+# For example, 'sda3' has a "kernel number" of '3'
+# %k the kernel name for the device.
+# %M the kernel major number for the device
+# %m the kernel minor number for the device
+# %b the bus id for the device
+# %c the string returned by the PROGRAM
+# %s{filename} the content of a sysfs attribute.
+# %% the '%' char itself.
+#
+# There are a number of modifiers that are allowed to be used in some of the
+# fields. See the udev man page for a full description of them.
+# global stuff
+#
+
+#####################################
+###### Hotplug rules - begin
+# Only additional modules,
+# which are not detectable,
+# are loaded here!
+#####################################
+# check if the device has already been claimed by a driver
+ACTION!="add", GOTO="drivers_end"
+
+# SOUND addon modules
+SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-pcm-oss"
+SUBSYSTEM=="sound", RUN+="/lib/udev/load-modules.sh snd-seq-oss"
+
+#PNP addon modules
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP0800", RUN+="/lib/udev/load-modules.sh pcspkr"
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="*PNP051[01]*", RUN+="/lib/udev/load-modules.sh irtty-sir"
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNPb02f", RUN+="/lib/udev/load-modules.sh analog"
+
+# PARPORT addon modules
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh lp"
+SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", ATTRS{id}=="PNP040*", RUN+="/lib/udev/load-modules.sh ppdev"
+
+# fix ide cdrom detection on old proliant servers
+SUBSYSTEM=="pci", ENV{MODALIAS}=="pci:v00000E11d00000001sv00000000sd00000000bc06sc02i00", RUN+="/lib/udev/load-modules.sh ide-generic"
+
+LABEL="drivers_end"
+#####################################
+##### Hotplug rules - end
+#####################################
+
+#####################################
+###### CD/DVD symlinks - begin
+#####################################
+ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", IMPORT="cdrom_id --export $tempnode"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", IMPORT="cdrom_id --export $tempnode"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="scd[a-z]", IMPORT="cdrom_id --export $tempnode"
+ENV{ID_CDROM}=="?*", SYMLINK+="cd/cdrom-%b"
+ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cd/cdrw-%b"
+ENV{ID_CDROM_DVD}=="?*", SYMLINK+="cd/dvd-%b"
+ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="cd/dvdrw-%b"
+ACTION=="add|change", SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", RUN+="cdsymlinks.sh"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
+ACTION=="add|change", SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", RUN+="cdsymlinks.sh"
+ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="hd[a-z]", RUN+="cdsymlinks.sh"
+ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sr[0-9]*", RUN+="cdsymlinks.sh"
+ACTION=="remove", SUBSYSTEMS=="block", KERNEL=="sg[0-9]*", RUN+="cdsymlinks.sh"
+#####################################
+###### CD/DVD symlinks - end
+#####################################
+
+#####################################
+# Additional Archlinux
+# Permissions and Symlinks - begin
+#####################################
+
+# permission for sg devices
+KERNEL=="sg[0-9]*", ATTRS{type}!="3|6", GROUP="disk", MODE="0660"
+
+# permissions for IDE CD devices
+SUBSYSTEMS=="ide", KERNEL=="hd[a-z]", ATTR{removable}=="1", ATTRS{media}=="cdrom*", GROUP="optical"
+
+# permissions for SCSI CD devices
+SUBSYSTEMS=="scsi", KERNEL=="sr[0-9]*", ATTRS{type}=="5", SYMLINK+="scd%n", GROUP="optical"
+SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="5", GROUP="optical"
+
+# permissions for removable devices like cardreaders or sticks
+KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="0", GROUP="storage"
+
+# permissions for firewire external drives
+KERNEL=="sd*", ATTRS{scsi_level}=="5", GROUP="storage"
+
+# permissions for usb to scsi external adapters
+KERNEL=="sd*", ATTRS{scsi_level}=="3", ATTRS{type}=="7", GROUP="storage"
+
+# permissions for ide storage like pcmcia card readers
+ACTION!="add", GOTO="pcmcia_end"
+SUBSYSTEM!="block", GOTO="pcmcia_end"
+KERNEL=="hd*[!0-9]", IMPORT{program}="ata_id --export $tempnode"
+KERNEL=="hd*", IMPORT{parent}=="ID_*"
+KERNEL=="hd*", ENV{ID_TYPE}=="generic", GROUP="storage"
+LABEL="pcmcia_end"
+
+# permissions for SCSI scanners
+SUBSYSTEMS=="scsi", KERNEL=="sg[0-9]*", ATTRS{type}=="6", GROUP="scanner"
+
+# mem
+KERNEL=="ram0", SYMLINK+="ramdisk"
+KERNEL=="ram1", SYMLINK+="ram"
+
+# video4linux
+
+KERNEL=="vbi0", SYMLINK+="vbi"
+KERNEL=="radio0", SYMLINK+="radio"
+KERNEL=="radio[0-9]*", GROUP="video"
+KERNEL=="video0", SYMLINK+="video"
+KERNEL=="vtx0", SYMLINK+="vtx"
+
+# video devices
+### xorg resets those permissions, adjust your xorg.conf!
+KERNEL=="3dfx*", GROUP="video"
+KERNEL=="fb[0-9]*", GROUP="video"
+
+# misc
+KERNEL=="sgi_fetchop", MODE="0666"
+KERNEL=="sonypi", MODE="0666"
+
+# USB devices
+KERNEL=="legousbtower*", MODE="0666"
+
+# kbd devices
+KERNEL=="kbd", MODE="0664"
+
+# miscellaneous
+KERNEL=="rtc|rtc0", GROUP="audio", MODE="0664"
+#######################################
+# Permissions and Symlinks - end
+#######################################
diff --git a/core/udev/PKGBUILD b/core/udev/PKGBUILD
new file mode 100644
index 000000000..5f64aaaa7
--- /dev/null
+++ b/core/udev/PKGBUILD
@@ -0,0 +1,112 @@
+# $Id: PKGBUILD 109960 2011-02-14 14:00:15Z tpowa $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgbase="udev"
+pkgname=('udev' 'udev-compat')
+pkgver=166
+pkgrel=2
+arch=(i686 x86_64)
+url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
+license=('GPL')
+groups=('base')
+# older initscripts versions required start_udev
+options=(!makeflags !libtool)
+makedepends=('glibc' 'coreutils' 'util-linux' 'pciutils' 'libusb-compat' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection')
+source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgname-$pkgver.tar.bz2
+ 80-drivers.rules
+ 81-arch.rules
+ load-modules.sh
+ cdsymlinks.sh)
+md5sums=('4db27d73fdbe94f47fd89fdd105c2dfb'
+ '4427855146513a4703ab5c7eb8a0156e'
+ 'f17c99779173ddc79f866cf3a5de5e68'
+ 'f91fddc67609b45b244a624977c4247b'
+ '2e808ee78d237c478b57af2a68d43769')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\
+ --sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system
+ make
+}
+
+package_udev() {
+ pkgdesc="The userspace dev tools (udev)"
+ depends=('glibc' 'coreutils' 'util-linux' 'libusb-compat' 'glib2'
+ 'module-init-tools>=3.11' 'pciutils')
+ install=udev.install
+ backup=(etc/udev/udev.conf
+ etc/modprobe.d/framebuffer_blacklist.conf)
+ conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07')
+ replaces=('devfsd')
+
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+ # Replace original 80-drivers.rules with custom one.
+ install -D -m644 $srcdir/80-drivers.rules $pkgdir/lib/udev/rules.d/80-drivers.rules
+ # Install our rule for permissions and symlinks
+ install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules
+ # install our module loading subsystem
+ install -D -m755 $srcdir/load-modules.sh $pkgdir/lib/udev/load-modules.sh
+ # install cdsymlinks.sh
+ install -D -m755 $srcdir/cdsymlinks.sh $pkgdir/lib/udev/cdsymlinks.sh
+ # disable error logging to prevent startup failures printed to vc on boot
+ sed -i -e 's|udev_log="err"|udev_log="0"|g' $pkgdir/etc/udev/udev.conf
+ # disable persistent cdromsymlinks and network by default
+ # and move it to /etc/udev/rules.d
+ mv $pkgdir/lib/udev/rules.d/75-persistent-net-generator.rules \
+ $pkgdir/etc/udev/rules.d/75-persistent-net-generator.rules.optional
+ mv $pkgdir/lib/udev/rules.d/75-cd-aliases-generator.rules \
+ $pkgdir/etc/udev/rules.d/75-cd-aliases-generator.rules.optional
+
+ # create framebuffer blacklist
+ mkdir -p $pkgdir/etc/modprobe.d/
+ for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko.gz' -exec basename {} .ko.gz \;); do
+ echo "blacklist $mod"
+ done | sort -u > $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf
+
+ # create static devices in /lib/udev/devices/
+ mkdir ${pkgdir}/lib/udev/devices/pts
+ mkdir ${pkgdir}/lib/udev/devices/shm
+
+ mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1
+ mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3
+ mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5
+ mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11
+
+ ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd
+ ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin
+ ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout
+ ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr
+ ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core
+
+ # these static devices are created for convenience, to autoload the modules if necessary
+ # /dev/loop0
+ mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0
+ chgrp disk ${pkgdir}/lib/udev/devices/loop0
+ # /dev/net/tun
+ mkdir ${pkgdir}/lib/udev/devices/net
+ mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200
+ # /dev/fuse
+ mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229
+ # /dev/ppp
+ mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0
+
+ # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
+ for i in $pkgdir/lib/udev/rules.d/*.rules; do
+ sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g;
+ s#GROUP="tape"#GROUP="storage"#g;
+ s#GROUP="cdrom"#GROUP="optical"#g' $i
+ done
+}
+
+package_udev-compat() {
+ pkgdesc="The userspace dev tools (udev) - additional rules for older kernels"
+ depends=('udev')
+ groups=('')
+ cd $srcdir/$pkgname-$pkgver
+ install -d -m755 ${pkgdir}/lib/${pkgname}/rules.d
+ install -D -m644 ${srcdir}/${pkgname}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
+}
diff --git a/core/udev/cdsymlinks.sh b/core/udev/cdsymlinks.sh
new file mode 100755
index 000000000..498abda4a
--- /dev/null
+++ b/core/udev/cdsymlinks.sh
@@ -0,0 +1,44 @@
+#! /bin/sh
+# Creates cdsymlinks in /dev
+# for Archlinux by Tobias Powalowski <tpowa@archlinux.org>
+
+# check on cd/dvd drives and if persistant rules file is used
+if [ -d /dev/cd -a ! -e /etc/udev/rules.d/75-persistent-cd.rules ]; then
+ # remove existing device files
+ rm /dev/cdrom*
+ rm /dev/cdrw*
+ rm /dev/dvd*
+ rm /dev/dvdrw*
+ # start creating symlinks
+ for i in /dev/cd/cdrom-*; do
+ if [ -h $i ]; then
+ [ "$CD_NUMBER" = "" ] && ln -s $i /dev/cdrom
+ [ "$CD_NUMBER" = "" ] && CD_NUMBER="-1"
+ ! [ "$CD_NUMBER" = "" ] && CD_NUMBER="$((CD_NUMBER+1))" && ln -s $i /dev/cdrom$CD_NUMBER
+ fi
+ done
+
+ for i in /dev/cd/cdrw-*; do
+ if [ -h $i ]; then
+ [ "$CDRW_NUMBER" = "" ] && ln -s $i /dev/cdrw
+ [ "$CDRW_NUMBER" = "" ] && CDRW_NUMBER="-1"
+ ! [ "$CDRW_NUMBER" = "" ] && CDRW_NUMBER="$((CDRW_NUMBER+1))" && ln -s $i /dev/cdrw$CDRW_NUMBER
+ fi
+ done
+
+ for i in /dev/cd/dvd-*; do
+ if [ -h $i ]; then
+ [ "$DVD_NUMBER" = "" ] && ln -s $i /dev/dvd
+ [ "$DVD_NUMBER" = "" ] && DVD_NUMBER="-1"
+ ! [ "$DVD_NUMBER" = "" ] && DVD_NUMBER="$((DVD_NUMBER+1))" && ln -s $i /dev/dvd$DVD_NUMBER
+ fi
+ done
+
+ for i in /dev/cd/dvdrw-*; do
+ if [ -h $i ]; then
+ [ "$DVDRW_NUMBER" = "" ] && ln -s $i /dev/dvdrw
+ [ "$DVDRW_NUMBER" = "" ] && DVDRW_NUMBER="-1"
+ ! [ "$DVDRW_NUMBER" = "" ] && DVDRW_NUMBER="$((DVDRW_NUMBER+1))" && ln -s $i /dev/dvdrw$DVDRW_NUMBER
+ fi
+ done
+fi
diff --git a/core/udev/load-modules.sh b/core/udev/load-modules.sh
new file mode 100755
index 000000000..1e2af913e
--- /dev/null
+++ b/core/udev/load-modules.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+# Implement blacklisting for udev-loaded modules
+
+[ $# -ne 1 ] && exit 1
+
+. /etc/rc.conf
+
+# grab modules from rc.conf
+BLACKLIST="${MOD_BLACKLIST[@]}"
+MODPROBE="/sbin/modprobe"
+LOGGER="/usr/bin/logger"
+RESOLVEALIAS="${MODPROBE} --resolve-alias"
+USEBLACKLIST="--use-blacklist"
+
+if [ -f /proc/cmdline ]; then
+ for cmd in $(cat /proc/cmdline); do
+ case $cmd in
+ disablemodules=*) eval $cmd ;;
+ load_modules=off) exit ;;
+ esac
+ done
+ #parse cmdline entries of the form "disablemodules=x,y,z"
+ if [ -n "$disablemodules" ]; then
+ BLACKLIST="$BLACKLIST $(echo $disablemodules | sed 's|,| |g')"
+ fi
+fi
+
+#MODULES entries in rc.conf that begin with ! are blacklisted
+for mod in ${MODULES[@]}; do
+ if [ "${mod}" != "${mod#!}" ]; then
+ BLACKLIST="$BLACKLIST ${mod#!}"
+ fi
+done
+
+if [ "$MOD_AUTOLOAD" = "yes" -o "$MOD_AUTOLOAD" = "YES" ]; then
+ if [ -n "${BLACKLIST}" ]; then
+ # If an alias name is on the blacklist, load no modules for this device
+ if echo "${BLACKLIST}" | /bin/grep -q -e " $1 " -e "^$1 " -e " $1\$"; then
+ $LOGGER -p info -t "$(basename $0)" "Not loading module alias '$1' because it is blacklisted"
+ exit
+ fi
+ #sanitize the blacklist
+ BLACKLIST="$(echo "$BLACKLIST" | sed -e 's|-|_|g')"
+ # Try to find all modules for the alias
+ mods=$($RESOLVEALIAS $1)
+ # If no modules could be found, try if the alias name is a module name
+ # In that case, omit the --use-blacklist parameter to imitate normal modprobe behaviour
+ [ -z "${mods}" ] && $MODPROBE -qni $1 && mods="$1" && USEBLACKLIST=""
+ [ -z "${mods}" ] && $LOGGER -p local0.debug -t "$(basename $0)" "'$1' is not a valid module or alias name"
+ for mod in ${mods}; do
+ # Find the module and all its dependencies
+ deps="$($MODPROBE -i --show-depends ${mod})"
+ [ $? -ne 0 ] && continue
+
+ #sanitize the module names
+ deps="$(echo "$deps" | sed \
+ -e "s#^insmod /lib.*/\(.*\)\.ko.*#\1#g" \
+ -e 's|-|_|g')"
+
+ # If the module or any of its dependencies is blacklisted, don't load it
+ for dep in $deps; do
+ if echo "${BLACKLIST}" | /bin/grep -q -e " ${dep} " -e "^${dep} " -e " ${dep}\$"; then
+ if [ "${dep}" = "${mod}" ]; then
+ $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because it is blacklisted"
+ else
+ $LOGGER -p local0.info -t "$(basename $0)" "Not loading module '${mod}' for alias '$1' because its dependency '${dep}' is blacklisted"
+ fi
+ continue 2
+ fi
+ done
+ # modprobe usually uses the "blacklist" statements from modprobe.conf only to blacklist all aliases
+ # of a module, but not the module itself. We use --use-blacklist here so that modprobe also blacklists
+ # module names if we resolved alias names manually above
+ $MODPROBE $USEBLACKLIST ${mod}
+ done
+ else
+ $MODPROBE $USEBLACKLIST $1
+ fi
+fi
+# vim: set et ts=4:
diff --git a/core/udev/udev.install b/core/udev/udev.install
new file mode 100644
index 000000000..e953ec743
--- /dev/null
+++ b/core/udev/udev.install
@@ -0,0 +1,38 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_upgrade() {
+ if [ "$(vercmp $2 100)" -lt 0 ]; then
+ echo "ATTENTION UDEV:"
+ echo "----------"
+ echo "udev >=098 rules syntax has changed, please update your own rules."
+ echo "udev >=099 Added persistent network and CD/DVD Symlink generator rules."
+ echo "Please read the instructions carefully before reboot."
+ echo "They are located in /etc/udev/readme-udev-arch.txt"
+ echo "----------"
+ fi
+}
+
+post_install() {
+ # If a ramfs is mounted, we still need to make sure that /dev/{console,null,zero} exist
+ # The Archlinux installer bind-mounts /dev to /mnt/dev, thus making the real /dev invisible
+ ROOTDIR=""
+ [ "$(stat -c %D /)" != "$(stat -c %D /dev)" ] && ROOTDIR=$(mktemp -d /tmp/udevinstall.XXXXXX)
+ [ -n "${ROOTDIR}" ] && mount --bind / ${ROOTDIR}
+ if [ ! -c ${ROOTDIR}/dev/console ]; then
+ rm -f ${ROOTDIR}/dev/console
+ mknod -m600 ${ROOTDIR}/dev/console c 5 1
+ fi
+ if [ ! -c ${ROOTDIR}/dev/null ]; then
+ rm -f ${ROOTDIR}/dev/null
+ mknod -m644 ${ROOTDIR}/dev/null c 1 3
+ fi
+ if [ ! -c ${ROOTDIR}/dev/zero ]; then
+ rm -f ${ROOTDIR}/dev/zero
+ mknod -m644 ${ROOTDIR}/dev/zero c 1 5
+ fi
+ if [ -n "${ROOTDIR}" ]; then
+ umount ${ROOTDIR}
+ rmdir ${ROOTDIR}
+ fi
+}
diff --git a/core/usbutils/PKGBUILD b/core/usbutils/PKGBUILD
new file mode 100644
index 000000000..ef1a8c541
--- /dev/null
+++ b/core/usbutils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 104566 2011-01-04 08:28:48Z tpowa $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Curtis Campbell <curtisjamescampbell@hotmail.com>
+pkgname=usbutils
+pkgver=001
+pkgrel=2
+pkgdesc="USB Device Utilities"
+arch=(i686 x86_64)
+license=('GPL')
+groups=('base')
+makedepends=('wget')
+depends=('glibc' 'libusb')
+url="http://linux-usb.sourceforge.net/"
+source=(http://www.kernel.org/pub/linux/utils/usb/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('3ecdcb42f08ef0d63e2638feb06ececc')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ rm usb.ids
+ wget http://www.linux-usb.org/usb.ids
+ ./configure --prefix=/usr --datadir=/usr/share/hwdata --disable-zlib
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # fix pkgconfig file
+ mkdir -p $pkgdir/usr/lib
+ mv $pkgdir/usr/share/pkgconfig $pkgdir/usr/lib/
+}
diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD
new file mode 100644
index 000000000..63866fdff
--- /dev/null
+++ b/core/util-linux/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 111132 2011-02-24 11:12:49Z ibiru $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=util-linux
+pkgver=2.19
+pkgrel=4
+pkgdesc="Miscellaneous system utilities for Linux"
+url="http://userweb.kernel.org/~kzak/util-linux-ng/"
+arch=('i686' 'x86_64')
+groups=('base')
+depends=('bash' 'ncurses>=5.7' 'zlib' 'filesystem')
+replaces=('linux32' 'util-linux-ng')
+conflicts=('linux32' 'util-linux-ng' 'e2fsprogs<1.41.8-2')
+provides=('linux32' "util-linux-ng=${pkgver}")
+license=('GPL2')
+options=('!libtool')
+source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.19/${pkgname}-${pkgver}.tar.bz2)
+optdepends=('perl: for chkdupexe support')
+md5sums=('590ca71aad0b254e2631d84401f28255')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # hardware clock
+ sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c
+ ./configure --enable-arch --enable-write --enable-raw --disable-wall --enable-partx
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ mkdir -p "${pkgdir}/var/lib/hwclock"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/core/vi/PKGBUILD b/core/vi/PKGBUILD
new file mode 100644
index 000000000..379a2ca5a
--- /dev/null
+++ b/core/vi/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 109425 2011-02-09 15:16:39Z stephane $
+# Maintainer: tobias [ tobias at archlinux org ]
+
+pkgname=vi
+pkgver=050325
+pkgrel=4
+pkgdesc='The original ex/vi text editor.'
+arch=('i686' 'x86_64')
+url='http://ex-vi.sourceforge.net/'
+license=('custom:ex')
+depends=('ncurses')
+optdepends=('mailx: used by the preserve command for notification')
+groups=('base')
+options=(force strip !libtool emptydirs)
+source=(http://downloads.sourceforge.net/sourceforge/ex-vi/ex-${pkgver}.tar.bz2
+ exrc.sample
+ navkeys.patch
+ increase-tube.patch
+ preserve_dir.patch)
+md5sums=('e668595254233e4d96811083a3e4e2f3'
+ 'd3b483c994d859232ce369b82a4b5668'
+ 'aac133930047eafa4f28736cfaf976b3'
+ 'e596e05a00a24187b576e389fa1de45d'
+ '419a8755e0dd16e95542bc107e6d2b24')
+
+build() {
+ cd "${srcdir}/ex-${pkgver}"
+
+ # apply patches
+ patch -Np1 -i ../navkeys.patch
+ patch -Np0 -i ../increase-tube.patch
+ # FS#20653
+ patch -Np1 -i ../preserve_dir.patch
+
+ make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \
+ 'FEATURES=-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8' TERMLIB=ncurses
+}
+
+package() {
+ cd "${srcdir}/ex-${pkgver}"
+
+ make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex INSTALL=/bin/install \
+ DESTDIR="$pkgdir" install
+
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/core/vi/exrc.sample b/core/vi/exrc.sample
new file mode 100644
index 000000000..44b3045fd
--- /dev/null
+++ b/core/vi/exrc.sample
@@ -0,0 +1,5 @@
+" A sample .exrc file. Copy it to your home dir as ~/.exrc in order to work.
+set showmode
+set noflash
+set autoindent
+set shiftwidth=2
diff --git a/core/vi/increase-tube.patch b/core/vi/increase-tube.patch
new file mode 100644
index 000000000..5010798ce
--- /dev/null
+++ b/core/vi/increase-tube.patch
@@ -0,0 +1,13 @@
+--- config.h 2005-02-19 05:25:39.000000000 -0500
++++ config.h.fixed 2010-01-04 22:02:01.000000000 -0500
+@@ -95,8 +95,8 @@
+ #define TUBESIZE 6000 /* Maximum screen size for visual */
+ #else /* VMUNIX */
+ #define TUBELINES 100
+-#define TUBECOLS 160
+-#define TUBESIZE 16000
++#define TUBECOLS 320
++#define TUBESIZE 32000
+ #endif /* VMUNIX */
+
+ /*
diff --git a/core/vi/navkeys.patch b/core/vi/navkeys.patch
new file mode 100644
index 000000000..46924379c
--- /dev/null
+++ b/core/vi/navkeys.patch
@@ -0,0 +1,55 @@
+diff -ru ex-050325/ex_tty.c ex-050325-du/ex_tty.c
+--- ex-050325/ex_tty.c 2005-03-04 13:42:58.000000000 +0100
++++ ex-050325-du/ex_tty.c 2009-06-25 20:06:57.000000000 +0200
+@@ -132,7 +132,8 @@
+ &ED, &EI, &F0, &F1, &F2, &F3, &F4, &F5, &F6, &F7, &F8, &F9,
+ &HO, &IC, &IM, &IP, &KD, &KE, &KH, &KL, &KR, &KS, &KU, &LL, &ND, &xNL,
+ &xPC, &RC, &SC, &SE, &SF, &SO, &SR, &TA, &TE, &TI, &UP, &VB, &VS, &VE,
+- &AL_PARM, &DL_PARM, &UP_PARM, &DOWN_PARM, &LEFT_PARM, &RIGHT_PARM
++ &AL_PARM, &DL_PARM, &UP_PARM, &DOWN_PARM, &LEFT_PARM, &RIGHT_PARM,
++ &kI, &kD, &kh, &at7, &kP, &kN
+ };
+ bool *sflags[] = {
+ &AM, &BS, &DA, &DB, &EO, &HC,
+@@ -170,7 +171,12 @@
+ addmac1(KD, "j", "down", arrows, 1);
+ addmac1(KL, "h", "left", arrows, 1);
+ addmac1(KR, "l", "right", arrows, 1);
+- addmac1(KH, "H", "home", arrows, 1);
++ addmac1(kI, "i", "insert", arrows, 1);
++ addmac1(kD, "x", "delete", arrows, 1);
++ addmac1(kh, "^", "home", arrows, 1);
++ addmac1(at7, "$", "end", arrows, 1);
++ addmac1(kP, "", "pgup", arrows, 1);
++ addmac1(kN, "", "pgdn", arrows, 1);
+
+ /*
+ * Handle funny termcap capabilities
+@@ -341,7 +347,7 @@
+ *(*fp++) = flag;
+ namp += 2;
+ } while (*namp);
+- namp = "albcbtcdceclcmcrcsdcdldmdoedeik0k1k2k3k4k5k6k7k8k9hoicimipkdkekhklkrkskullndnlpcrcscsesfsosrtatetiupvbvsveALDLUPDOLERI";
++ namp = "albcbtcdceclcmcrcsdcdldmdoedeik0k1k2k3k4k5k6k7k8k9hoicimipkdkekhklkrkskullndnlpcrcscsesfsosrtatetiupvbvsveALDLUPDOLERIkIkDkh@7kPkN";
+ sp = sstrs;
+ do {
+ string = tgetstr(namp, &aoftspace);
+diff -ru ex-050325/ex_tty.h ex-050325-du/ex_tty.h
+--- ex-050325/ex_tty.h 2004-12-01 19:21:06.000000000 +0100
++++ ex-050325-du/ex_tty.h 2009-06-25 20:06:05.000000000 +0200
+@@ -183,6 +183,15 @@
+ var bool XX; /* Tektronix 4025 insert line */
+ /* X? is reserved for severely nauseous glitches */
+ /* If there are enough of these we may need bit masks! */
++/*
++ * Insert, Delete, Home, End, PgUp an PgDown keys
++ */
++var char *kI;
++var char *kD;
++var char *kh;
++var char *at7;
++var char *kP;
++var char *kN;
+
+ /*
+ * From the tty modes...
diff --git a/core/vi/preserve_dir.patch b/core/vi/preserve_dir.patch
new file mode 100644
index 000000000..5209f7b02
--- /dev/null
+++ b/core/vi/preserve_dir.patch
@@ -0,0 +1,81 @@
+diff -Naur ex-050325.ori/ex.1 ex-050325/ex.1
+--- ex-050325.ori/ex.1 2005-02-17 07:39:36.000000000 -0500
++++ ex-050325/ex.1 2011-02-01 16:21:51.496666674 -0500
+@@ -1950,7 +1950,7 @@
+ .B /var/tmp/Rx\fInnnnnnnnnn\fP
+ named buffer temporary
+ .TP
+-.B /var/preserve
++.B /var/lib/ex
+ preservation directory
+ .SH DOCUMENTATION
+ The document
+diff -Naur ex-050325.ori/expreserve.c ex-050325/expreserve.c
+--- ex-050325.ori/expreserve.c 2005-03-04 07:44:46.000000000 -0500
++++ ex-050325/expreserve.c 2011-02-01 16:22:06.583333342 -0500
+@@ -272,7 +272,7 @@
+ #ifdef notdef
+ char pattern[] = "/usr/preserve/Exaa`XXXXX";
+ #else
+-char pattern[] = "/var/preserve/Exa`XXXXXXXXXX";
++char pattern[] = "/var/lib/ex/Exa`XXXXXXXXXX";
+ #endif
+
+ /*
+@@ -296,7 +296,7 @@
+ timestamp = ctime(&time);
+ timestamp[16] = 0; /* blast from seconds on */
+ putenv("MAILRC=/dev/null");
+- sprintf(cmd, "/bin/mail %s", pp->pw_name);
++ sprintf(cmd, "/usr/bin/mail %s", pp->pw_name);
+ setuid(getuid());
+ mf = popen(cmd, "w");
+ if (mf == NULL)
+diff -Naur ex-050325.ori/exrecover.c ex-050325/exrecover.c
+--- ex-050325.ori/exrecover.c 2005-03-04 07:44:46.000000000 -0500
++++ ex-050325/exrecover.c 2011-02-01 16:21:51.496666674 -0500
+@@ -167,7 +167,7 @@
+ #ifdef notdef
+ char mydir[] = "/usr/preserve";
+ #else
+-char mydir[] = "/var/preserve";
++char mydir[] = "/var/lib/ex";
+ #endif
+
+ /*
+diff -Naur ex-050325.ori/ex.spec ex-050325/ex.spec
+--- ex-050325.ori/ex.spec 2005-03-24 18:50:09.000000000 -0500
++++ ex-050325/ex.spec 2011-02-01 16:21:51.496666674 -0500
+@@ -20,7 +20,7 @@
+ %define libexecdir %{prefix}/5lib
+ %define mandir %{prefix}/share/man/5man
+
+-%define preservedir /var/preserve
++%define preservedir /var/lib/ex
+
+ # install command
+ %define ucbinstall install
+diff -Naur ex-050325.ori/Makefile ex-050325/Makefile
+--- ex-050325.ori/Makefile 2005-03-24 18:50:09.000000000 -0500
++++ ex-050325/Makefile 2011-02-01 16:21:51.496666674 -0500
+@@ -83,7 +83,7 @@
+ BINDIR = $(PREFIX)/bin
+ LIBEXECDIR = $(PREFIX)/libexec
+ MANDIR = $(PREFIX)/share/man
+-PRESERVEDIR = /var/preserve
++PRESERVEDIR = /var/lib/ex
+
+ #
+ # DESTDIR is prepended to the installation paths. It is mostly useful
+diff -Naur ex-050325.ori/vi.1 ex-050325/vi.1
+--- ex-050325.ori/vi.1 2005-02-17 07:39:36.000000000 -0500
++++ ex-050325/vi.1 2011-02-01 16:21:51.496666674 -0500
+@@ -979,7 +979,7 @@
+ .B /var/tmp/Rx\fInnnnnnnnnn\fP
+ named buffer temporary
+ .TP
+-.B /var/preserve
++.B /var/lib/ex
+ preservation directory
+ .SH SEE ALSO
+ ex(1),
diff --git a/core/vpnc/PKGBUILD b/core/vpnc/PKGBUILD
new file mode 100644
index 000000000..d14842636
--- /dev/null
+++ b/core/vpnc/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 100076 2010-11-20 04:16:25Z pierre $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=vpnc
+pkgver=0.5.3
+pkgrel=3
+pkgdesc="VPN client for cisco3000 VPN Concentrators"
+url="http://www.unix-ag.uni-kl.de/~massar/vpnc/"
+license=('GPL')
+depends=('libgcrypt' 'openssl' 'iproute2')
+arch=('i686' 'x86_64')
+source=("http://www.unix-ag.uni-kl.de/~massar/vpnc/$pkgname-$pkgver.tar.gz"
+ 'vpnc.conf' 'vpnc.rc')
+backup=('etc/vpnc/default.conf')
+md5sums=('4378f9551d5b077e1770bbe09995afb3'
+ 'a3f4e0cc682f437e310a1c86ae198e45'
+ 'c5885162ac198eaa36da9a01e7c0c55b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Build hybrid support
+ sed -i 's|^#OPENSSL|OPENSSL|g' Makefile
+
+ make PREFIX=/usr
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir PREFIX=/usr install
+
+ install -D -m644 $srcdir/vpnc.conf $pkgdir/etc/vpnc/default.conf
+ install -D -m755 $srcdir/vpnc.rc $pkgdir/etc/rc.d/vpnc
+ rm -f $pkgdir/etc/vpnc/vpnc.conf
+}
diff --git a/core/vpnc/vpnc.conf b/core/vpnc/vpnc.conf
new file mode 100644
index 000000000..914f827fd
--- /dev/null
+++ b/core/vpnc/vpnc.conf
@@ -0,0 +1,17 @@
+# example vpnc configuration file
+# see vpnc --long-help for details
+
+#Interface name tun0
+#IKE DH Group dh2
+#Perfect Forward Secrecy nopfs
+
+# You may replace this script with something better
+#Script /etc/vpnc/vpnc-script
+# Enable this option for NAT traversal
+#UDP Encapsulate
+
+#IPSec gateway my.gateway.com
+#IPSec ID someid
+#IPSec secret somesecret
+#Xauth username myusername
+#Xauth password mypassword
diff --git a/core/vpnc/vpnc.rc b/core/vpnc/vpnc.rc
new file mode 100644
index 000000000..972ed3211
--- /dev/null
+++ b/core/vpnc/vpnc.rc
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Connecting to VPN"
+ /usr/sbin/vpnc
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon vpnc
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Disconnecting from VPN"
+ /usr/sbin/vpnc-disconnect
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon vpnc
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/wget/PKGBUILD b/core/wget/PKGBUILD
new file mode 100644
index 000000000..ca9407c22
--- /dev/null
+++ b/core/wget/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 110655 2011-02-21 09:03:23Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=wget
+pkgver=1.12
+pkgrel=5
+pkgdesc="A network utility to retrieve files from the Web"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/wget/wget.html"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'openssl')
+optdepends=('ca-certificates: HTTPS downloads')
+backup=('etc/wgetrc')
+install=wget.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ wget-1.12-CVE-2010-2252.patch)
+md5sums=('141461b9c04e454dc8933c9d1f2abf83'
+ '2c8bc23eff98fd4efc3f96394fc8e61e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Fix arbitrary file overwrite via 3xx redirect (CVE-2010-2252)
+ patch -Np1 -i ../wget-1.12-CVE-2010-2252.patch
+
+ ./configure -with-ssl --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ cat >> "$pkgdir/etc/wgetrc" <<EOF
+
+# default root certs location
+ca_certificate=/etc/ssl/certs/ca-certificates.crt
+EOF
+
+}
diff --git a/core/wget/wget-1.12-CVE-2010-2252.patch b/core/wget/wget-1.12-CVE-2010-2252.patch
new file mode 100644
index 000000000..d1d797a2c
--- /dev/null
+++ b/core/wget/wget-1.12-CVE-2010-2252.patch
@@ -0,0 +1,155 @@
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' wget~/doc/wget.texi wget/doc/wget.texi
+--- wget~/doc/wget.texi 2010-09-05 15:32:44.000000000 +0200
++++ wget/doc/wget.texi 2010-09-05 15:32:44.000000000 +0200
+@@ -1487,6 +1487,13 @@
+ @code{Content-Disposition} headers to describe what the name of a
+ downloaded file should be.
+
++@cindex Trust server names
++@item --trust-server-names
++
++If this is set to on, on a redirect the last component of the
++redirection URL will be used as the local file name. By default it is
++used the last component in the original URL.
++
+ @cindex authentication
+ @item --auth-no-challenge
+
+@@ -2797,6 +2804,10 @@
+ Turn on recognition of the (non-standard) @samp{Content-Disposition}
+ HTTP header---if set to @samp{on}, the same as @samp{--content-disposition}.
+
++@item trust_server_names = on/off
++If set to on, use the last component of a redirection URL for the local
++file name.
++
+ @item continue = on/off
+ If set to on, force continuation of preexistent partially retrieved
+ files. See @samp{-c} before setting it.
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' wget~/src/http.c wget/src/http.c
+--- wget~/src/http.c 2010-09-05 15:30:22.000000000 +0200
++++ wget/src/http.c 2010-09-05 15:32:44.000000000 +0200
+@@ -2410,8 +2410,9 @@
+ /* The genuine HTTP loop! This is the part where the retrieval is
+ retried, and retried, and retried, and... */
+ uerr_t
+-http_loop (struct url *u, char **newloc, char **local_file, const char *referer,
+- int *dt, struct url *proxy, struct iri *iri)
++http_loop (struct url *u, struct url *original_url, char **newloc,
++ char **local_file, const char *referer, int *dt, struct url *proxy,
++ struct iri *iri)
+ {
+ int count;
+ bool got_head = false; /* used for time-stamping and filename detection */
+@@ -2457,7 +2458,8 @@
+ }
+ else if (!opt.content_disposition)
+ {
+- hstat.local_file = url_file_name (u);
++ hstat.local_file =
++ url_file_name (opt.trustservernames ? u : original_url);
+ got_name = true;
+ }
+
+@@ -2497,7 +2499,7 @@
+
+ /* Send preliminary HEAD request if -N is given and we have an existing
+ * destination file. */
+- file_name = url_file_name (u);
++ file_name = url_file_name (opt.trustservernames ? u : original_url);
+ if (opt.timestamping
+ && !opt.content_disposition
+ && file_exists_p (file_name))
+@@ -2852,9 +2854,9 @@
+
+ /* Remember that we downloaded the file for later ".orig" code. */
+ if (*dt & ADDED_HTML_EXTENSION)
+- downloaded_file(FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED, hstat.local_file);
++ downloaded_file (FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED, hstat.local_file);
+ else
+- downloaded_file(FILE_DOWNLOADED_NORMALLY, hstat.local_file);
++ downloaded_file (FILE_DOWNLOADED_NORMALLY, hstat.local_file);
+
+ ret = RETROK;
+ goto exit;
+@@ -2885,9 +2887,9 @@
+
+ /* Remember that we downloaded the file for later ".orig" code. */
+ if (*dt & ADDED_HTML_EXTENSION)
+- downloaded_file(FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED, hstat.local_file);
++ downloaded_file (FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED, hstat.local_file);
+ else
+- downloaded_file(FILE_DOWNLOADED_NORMALLY, hstat.local_file);
++ downloaded_file (FILE_DOWNLOADED_NORMALLY, hstat.local_file);
+
+ ret = RETROK;
+ goto exit;
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' wget~/src/http.h wget/src/http.h
+--- wget~/src/http.h 2010-09-05 15:30:22.000000000 +0200
++++ wget/src/http.h 2010-09-05 15:32:44.000000000 +0200
+@@ -33,8 +33,8 @@
+
+ struct url;
+
+-uerr_t http_loop (struct url *, char **, char **, const char *, int *,
+- struct url *, struct iri *);
++uerr_t http_loop (struct url *, struct url *, char **, char **, const char *,
++ int *, struct url *, struct iri *);
+ void save_cookies (void);
+ void http_cleanup (void);
+ time_t http_atotm (const char *);
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' wget~/src/init.c wget/src/init.c
+--- wget~/src/init.c 2010-09-05 15:30:22.000000000 +0200
++++ wget/src/init.c 2010-09-05 15:32:44.000000000 +0200
+@@ -243,6 +243,7 @@
+ { "timeout", NULL, cmd_spec_timeout },
+ { "timestamping", &opt.timestamping, cmd_boolean },
+ { "tries", &opt.ntry, cmd_number_inf },
++ { "trustservernames", &opt.trustservernames, cmd_boolean },
+ { "useproxy", &opt.use_proxy, cmd_boolean },
+ { "user", &opt.user, cmd_string },
+ { "useragent", NULL, cmd_spec_useragent },
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' wget~/src/main.c wget/src/main.c
+--- wget~/src/main.c 2010-09-05 15:30:22.000000000 +0200
++++ wget/src/main.c 2010-09-05 15:32:44.000000000 +0200
+@@ -266,6 +266,7 @@
+ { "timeout", 'T', OPT_VALUE, "timeout", -1 },
+ { "timestamping", 'N', OPT_BOOLEAN, "timestamping", -1 },
+ { "tries", 't', OPT_VALUE, "tries", -1 },
++ { "trust-server-names", 0, OPT_BOOLEAN, "trustservernames", -1 },
+ { "user", 0, OPT_VALUE, "user", -1 },
+ { "user-agent", 'U', OPT_VALUE, "useragent", -1 },
+ { "verbose", 'v', OPT_BOOLEAN, "verbose", -1 },
+@@ -675,6 +676,8 @@
+ N_("\
+ -I, --include-directories=LIST list of allowed directories.\n"),
+ N_("\
++ --trust-server-names use the name specified by the redirection url last component.\n"),
++ N_("\
+ -X, --exclude-directories=LIST list of excluded directories.\n"),
+ N_("\
+ -np, --no-parent don't ascend to the parent directory.\n"),
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' wget~/src/options.h wget/src/options.h
+--- wget~/src/options.h 2010-09-05 15:30:22.000000000 +0200
++++ wget/src/options.h 2010-09-05 15:32:44.000000000 +0200
+@@ -242,6 +242,7 @@
+ char *encoding_remote;
+ char *locale;
+
++ bool trustservernames;
+ #ifdef __VMS
+ int ftp_stmlf; /* Force Stream_LF format for binary FTP. */
+ #endif /* def __VMS */
+diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' wget~/src/retr.c wget/src/retr.c
+--- wget~/src/retr.c 2010-09-05 15:30:22.000000000 +0200
++++ wget/src/retr.c 2010-09-05 15:32:44.000000000 +0200
+@@ -689,7 +689,8 @@
+ #endif
+ || (proxy_url && proxy_url->scheme == SCHEME_HTTP))
+ {
+- result = http_loop (u, &mynewloc, &local_file, refurl, dt, proxy_url, iri);
++ result = http_loop (u, orig_parsed, &mynewloc, &local_file, refurl, dt,
++ proxy_url, iri);
+ }
+ else if (u->scheme == SCHEME_FTP)
+ {
diff --git a/core/wget/wget.install b/core/wget/wget.install
new file mode 100644
index 000000000..171533352
--- /dev/null
+++ b/core/wget/wget.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(wget.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/which/PKGBUILD b/core/which/PKGBUILD
new file mode 100644
index 000000000..c9a7b1abf
--- /dev/null
+++ b/core/which/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 100049 2010-11-20 03:27:58Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=which
+pkgver=2.20
+pkgrel=4
+pkgdesc="A utility to show the full path of commands"
+arch=('i686' 'x86_64')
+url="http://www.xs4all.nl/~carlo17/which"
+license=('GPL3')
+groups=('base')
+depends=('glibc' 'sh')
+install=which.install
+source=(http://www.xs4all.nl/~carlo17/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('95be0501a466e515422cde4af46b2744')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/core/which/which.install b/core/which/which.install
new file mode 100644
index 000000000..167e2506e
--- /dev/null
+++ b/core/which/which.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(which.info)
+
+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 $infodir/dir 2> /dev/null
+ done
+}
diff --git a/core/wireless_tools/PKGBUILD b/core/wireless_tools/PKGBUILD
new file mode 100644
index 000000000..a60b8b2a6
--- /dev/null
+++ b/core/wireless_tools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 100106 2010-11-20 11:19:34Z pierre $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributer: Jason Chu <jchu@xentac.net>
+
+pkgname=wireless_tools
+pkgver=29
+pkgrel=4
+pkgdesc="Wireless Tools"
+arch=('i686' 'x86_64')
+url="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html"
+license=('GPL')
+depends=('glibc')
+source=("http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.${pkgver}.tar.gz")
+md5sums=('e06c222e186f7cc013fd272d023710cb')
+
+build() {
+ cd ${srcdir}/wireless_tools.${pkgver}
+ make
+}
+
+package() {
+ cd ${srcdir}/wireless_tools.${pkgver}
+ make INSTALL_DIR="${pkgdir}/usr/sbin" \
+ INSTALL_LIB="${pkgdir}/usr/lib" \
+ INSTALL_INC="${pkgdir}/usr/include" \
+ INSTALL_MAN="${pkgdir}/usr/share/man" install
+}
diff --git a/core/wpa_actiond/PKGBUILD b/core/wpa_actiond/PKGBUILD
new file mode 100644
index 000000000..7701e4c8f
--- /dev/null
+++ b/core/wpa_actiond/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 112297 2011-03-04 15:33:07Z stephane $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=wpa_actiond
+pkgver=1.1
+pkgrel=2
+pkgdesc="Daemon that connects to wpa_supplicant and handles connect and disconnect events"
+arch=('i686' 'x86_64')
+url="http://projects.archlinux.org/wpa_actiond.git/"
+license=('GPL')
+depends=('glibc' 'wpa_supplicant')
+source=(ftp://ftp.archlinux.org/other/wpa_actiond/${pkgname}-${pkgver}.tar.xz)
+sha256sums=('d50a49cb5d56c31345d18e58f017b4ff923e8959a7e4e709abd156744f1668c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make CFLAGS="${CFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -D -m755 wpa_actiond "${pkgdir}/usr/sbin/wpa_actiond"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/core/wpa_supplicant/PKGBUILD b/core/wpa_supplicant/PKGBUILD
new file mode 100644
index 000000000..c2a1ac2d5
--- /dev/null
+++ b/core/wpa_supplicant/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 112948 2011-03-07 23:26:54Z heftig $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=wpa_supplicant
+pkgver=0.7.3
+pkgrel=3
+pkgdesc="A utility providing key negotiation for WPA wireless networks"
+url="http://hostap.epitest.fi/wpa_supplicant"
+arch=('i686' 'x86_64')
+depends=('openssl' 'dbus-core>=1.2.4' 'readline>=6.0' 'libnl')
+optdepends=('wpa_supplicant_gui: wpa_gui program')
+license=('GPL')
+groups=('base')
+backup=('etc/wpa_supplicant.conf')
+source=(http://hostap.epitest.fi/releases/wpa_supplicant-$pkgver.tar.gz
+ config dbus.patch)
+sha256sums=('d0cd50caa85346ccc376dcda5ed3c258eef19a93b3cade39d25760118ad59443'
+ '6a0837f18e5ff179ccd6954f7952dfc2e6aa69f353194ee4cb29c1ed2ef68c5d'
+ '13effa9ed6a1bb940ffc056a3eabcf64c8cc057069eca5cc1822b98ed769812a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/${pkgname}"
+ # Required by NetworkManager 0.8.995
+ patch -Np2 -i "$srcdir/dbus.patch"
+ cp "${srcdir}/config" ./.config
+ sed -i 's@/usr/local@$(PREFIX)@g' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/${pkgname}"
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc"
+ install -m644 wpa_supplicant.conf "${pkgdir}/etc/wpa_supplicant.conf"
+ install -d -m755 "${pkgdir}/usr/share/man/man"{5,8}
+ install -m644 doc/docbook/*.5 "${pkgdir}/usr/share/man/man5/"
+ install -m644 doc/docbook/*.8 "${pkgdir}/usr/share/man/man8/"
+ rm -f "${pkgdir}/usr/share/man/man8/wpa_"{priv,gui}.8
+
+ install -m755 -d "${pkgdir}/usr/share/dbus-1/system-services"
+ install -m644 dbus/{fi.epitest.hostap.WPASupplicant.service,fi.w1.wpa_supplicant1.service} "${pkgdir}/usr/share/dbus-1/system-services/"
+ sed -e 's/sbin/usr\/sbin/' -i "${pkgdir}/usr/share/dbus-1/system-services/"*.service
+ install -m755 -d "${pkgdir}/etc/dbus-1/system.d"
+ install -m644 dbus/dbus-wpa_supplicant.conf "${pkgdir}/etc/dbus-1/system.d/wpa_supplicant.conf"
+}
diff --git a/core/wpa_supplicant/config b/core/wpa_supplicant/config
new file mode 100644
index 000000000..192e338f2
--- /dev/null
+++ b/core/wpa_supplicant/config
@@ -0,0 +1,404 @@
+# Example wpa_supplicant build time configuration
+#
+# This file lists the configuration options that are used when building the
+# hostapd binary. All lines starting with # are ignored. Configuration option
+# lines must be commented out complete, if they are not to be included, i.e.,
+# just setting VARIABLE=n is not disabling that variable.
+#
+# This file is included in Makefile, so variables like CFLAGS and LIBS can also
+# be modified from here. In most cases, these lines should use += in order not
+# to override previous values of the variables.
+
+
+# Uncomment following two lines and fix the paths if you have installed OpenSSL
+# or GnuTLS in non-default location
+#CFLAGS += -I/usr/local/openssl/include
+#LIBS += -L/usr/local/openssl/lib
+
+# Some Red Hat versions seem to include kerberos header files from OpenSSL, but
+# the kerberos files are not in the default include path. Following line can be
+# used to fix build issues on such systems (krb5.h not found).
+#CFLAGS += -I/usr/include/kerberos
+
+# Example configuration for various cross-compilation platforms
+
+#### sveasoft (e.g., for Linksys WRT54G) ######################################
+#CC=mipsel-uclibc-gcc
+#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
+#CFLAGS += -Os
+#CPPFLAGS += -I../src/include -I../../src/router/openssl/include
+#LIBS += -L/opt/brcm/hndtools-mipsel-uclibc-0.9.19/lib -lssl
+###############################################################################
+
+#### openwrt (e.g., for Linksys WRT54G) #######################################
+#CC=mipsel-uclibc-gcc
+#CC=/opt/brcm/hndtools-mipsel-uclibc/bin/mipsel-uclibc-gcc
+#CFLAGS += -Os
+#CPPFLAGS=-I../src/include -I../openssl-0.9.7d/include \
+# -I../WRT54GS/release/src/include
+#LIBS = -lssl
+###############################################################################
+
+
+# Driver interface for Host AP driver
+#CONFIG_DRIVER_HOSTAP=y
+
+# Driver interface for Agere driver
+#CONFIG_DRIVER_HERMES=y
+# Change include directories to match with the local setup
+#CFLAGS += -I../../hcf -I../../include -I../../include/hcf
+#CFLAGS += -I../../include/wireless
+
+# Driver interface for madwifi driver
+# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
+#CONFIG_DRIVER_MADWIFI=y
+# Set include directory to the madwifi source tree
+#CFLAGS += -I../../madwifi
+
+# Driver interface for ndiswrapper
+# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
+#CONFIG_DRIVER_NDISWRAPPER=y
+
+# Driver interface for Atmel driver
+#CONFIG_DRIVER_ATMEL=y
+
+# Driver interface for old Broadcom driver
+# Please note that the newer Broadcom driver ("hybrid Linux driver") supports
+# Linux wireless extensions and does not need (or even work) with the old
+# driver wrapper. Use CONFIG_DRIVER_WEXT=y with that driver.
+#CONFIG_DRIVER_BROADCOM=y
+# Example path for wlioctl.h; change to match your configuration
+#CFLAGS += -I/opt/WRT54GS/release/src/include
+
+# Driver interface for Intel ipw2100/2200 driver
+# Deprecated; use CONFIG_DRIVER_WEXT=y instead.
+#CONFIG_DRIVER_IPW=y
+
+# Driver interface for Ralink driver
+#CONFIG_DRIVER_RALINK=y
+
+# Driver interface for generic Linux wireless extensions
+CONFIG_DRIVER_WEXT=y
+
+# Driver interface for Linux drivers using the nl80211 kernel interface
+CONFIG_DRIVER_NL80211=y
+
+# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
+#CONFIG_DRIVER_BSD=y
+#CFLAGS += -I/usr/local/include
+#LIBS += -L/usr/local/lib
+#LIBS_p += -L/usr/local/lib
+#LIBS_c += -L/usr/local/lib
+
+# Driver interface for Windows NDIS
+#CONFIG_DRIVER_NDIS=y
+#CFLAGS += -I/usr/include/w32api/ddk
+#LIBS += -L/usr/local/lib
+# For native build using mingw
+#CONFIG_NATIVE_WINDOWS=y
+# Additional directories for cross-compilation on Linux host for mingw target
+#CFLAGS += -I/opt/mingw/mingw32/include/ddk
+#LIBS += -L/opt/mingw/mingw32/lib
+#CC=mingw32-gcc
+# By default, driver_ndis uses WinPcap for low-level operations. This can be
+# replaced with the following option which replaces WinPcap calls with NDISUIO.
+# However, this requires that WZC is disabled (net stop wzcsvc) before starting
+# wpa_supplicant.
+# CONFIG_USE_NDISUIO=y
+
+# Driver interface for development testing
+#CONFIG_DRIVER_TEST=y
+
+# Include client MLME (management frame processing) for test driver
+# This can be used to test MLME operations in hostapd with the test interface.
+# space.
+#CONFIG_CLIENT_MLME=y
+
+# Driver interface for wired Ethernet drivers
+CONFIG_DRIVER_WIRED=y
+
+# Driver interface for the Broadcom RoboSwitch family
+#CONFIG_DRIVER_ROBOSWITCH=y
+
+# Driver interface for no driver (e.g., WPS ER only)
+#CONFIG_DRIVER_NONE=y
+
+# Enable IEEE 802.1X Supplicant (automatically included if any EAP method is
+# included)
+CONFIG_IEEE8021X_EAPOL=y
+
+# EAP-MD5
+CONFIG_EAP_MD5=y
+
+# EAP-MSCHAPv2
+CONFIG_EAP_MSCHAPV2=y
+
+# EAP-TLS
+CONFIG_EAP_TLS=y
+
+# EAL-PEAP
+CONFIG_EAP_PEAP=y
+
+# EAP-TTLS
+CONFIG_EAP_TTLS=y
+
+# EAP-FAST
+# Note: Default OpenSSL package does not include support for all the
+# functionality needed for EAP-FAST. If EAP-FAST is enabled with OpenSSL,
+# the OpenSSL library must be patched (openssl-0.9.8d-tls-extensions.patch)
+# to add the needed functions.
+#CONFIG_EAP_FAST=y
+
+# EAP-GTC
+CONFIG_EAP_GTC=y
+
+# EAP-OTP
+CONFIG_EAP_OTP=y
+
+# EAP-SIM (enable CONFIG_PCSC, if EAP-SIM is used)
+#CONFIG_EAP_SIM=y
+
+# EAP-PSK (experimental; this is _not_ needed for WPA-PSK)
+#CONFIG_EAP_PSK=y
+
+# EAP-PAX
+#CONFIG_EAP_PAX=y
+
+# LEAP
+CONFIG_EAP_LEAP=y
+
+# EAP-AKA (enable CONFIG_PCSC, if EAP-AKA is used)
+#CONFIG_EAP_AKA=y
+
+# EAP-AKA' (enable CONFIG_PCSC, if EAP-AKA' is used).
+# This requires CONFIG_EAP_AKA to be enabled, too.
+#CONFIG_EAP_AKA_PRIME=y
+
+# Enable USIM simulator (Milenage) for EAP-AKA
+#CONFIG_USIM_SIMULATOR=y
+
+# EAP-SAKE
+#CONFIG_EAP_SAKE=y
+
+# EAP-GPSK
+#CONFIG_EAP_GPSK=y
+# Include support for optional SHA256 cipher suite in EAP-GPSK
+#CONFIG_EAP_GPSK_SHA256=y
+
+# EAP-TNC and related Trusted Network Connect support (experimental)
+#CONFIG_EAP_TNC=y
+
+# Wi-Fi Protected Setup (WPS)
+CONFIG_WPS=y
+
+# EAP-IKEv2
+#CONFIG_EAP_IKEV2=y
+
+# PKCS#12 (PFX) support (used to read private key and certificate file from
+# a file that usually has extension .p12 or .pfx)
+CONFIG_PKCS12=y
+
+# Smartcard support (i.e., private key on a smartcard), e.g., with openssl
+# engine.
+CONFIG_SMARTCARD=y
+
+# PC/SC interface for smartcards (USIM, GSM SIM)
+# Enable this if EAP-SIM or EAP-AKA is included
+#CONFIG_PCSC=y
+
+# Development testing
+#CONFIG_EAPOL_TEST=y
+
+# Select control interface backend for external programs, e.g, wpa_cli:
+# unix = UNIX domain sockets (default for Linux/*BSD)
+# udp = UDP sockets using localhost (127.0.0.1)
+# named_pipe = Windows Named Pipe (default for Windows)
+# y = use default (backwards compatibility)
+# If this option is commented out, control interface is not included in the
+# build.
+CONFIG_CTRL_IFACE=y
+
+# Include support for GNU Readline and History Libraries in wpa_cli.
+# When building a wpa_cli binary for distribution, please note that these
+# libraries are licensed under GPL and as such, BSD license may not apply for
+# the resulting binary.
+CONFIG_READLINE=y
+
+# Remove debugging code that is printing out debug message to stdout.
+# This can be used to reduce the size of the wpa_supplicant considerably
+# if debugging code is not needed. The size reduction can be around 35%
+# (e.g., 90 kB).
+#CONFIG_NO_STDOUT_DEBUG=y
+
+# Remove WPA support, e.g., for wired-only IEEE 802.1X supplicant, to save
+# 35-50 kB in code size.
+#CONFIG_NO_WPA=y
+
+# Remove WPA2 support. This allows WPA to be used, but removes WPA2 code to
+# save about 1 kB in code size when building only WPA-Personal (no EAP support)
+# or 6 kB if building for WPA-Enterprise.
+#CONFIG_NO_WPA2=y
+
+# Remove IEEE 802.11i/WPA-Personal ASCII passphrase support
+# This option can be used to reduce code size by removing support for
+# converting ASCII passphrases into PSK. If this functionality is removed, the
+# PSK can only be configured as the 64-octet hexstring (e.g., from
+# wpa_passphrase). This saves about 0.5 kB in code size.
+#CONFIG_NO_WPA_PASSPHRASE=y
+
+# Disable scan result processing (ap_mode=1) to save code size by about 1 kB.
+# This can be used if ap_scan=1 mode is never enabled.
+#CONFIG_NO_SCAN_PROCESSING=y
+
+# Select configuration backend:
+# file = text file (e.g., wpa_supplicant.conf; note: the configuration file
+# path is given on command line, not here; this option is just used to
+# select the backend that allows configuration files to be used)
+# winreg = Windows registry (see win_example.reg for an example)
+CONFIG_BACKEND=file
+
+# Remove configuration write functionality (i.e., to allow the configuration
+# file to be updated based on runtime configuration changes). The runtime
+# configuration can still be changed, the changes are just not going to be
+# persistent over restarts. This option can be used to reduce code size by
+# about 3.5 kB.
+#CONFIG_NO_CONFIG_WRITE=y
+
+# Remove support for configuration blobs to reduce code size by about 1.5 kB.
+#CONFIG_NO_CONFIG_BLOBS=y
+
+# Select program entry point implementation:
+# main = UNIX/POSIX like main() function (default)
+# main_winsvc = Windows service (read parameters from registry)
+# main_none = Very basic example (development use only)
+#CONFIG_MAIN=main
+
+# Select wrapper for operatins system and C library specific functions
+# unix = UNIX/POSIX like systems (default)
+# win32 = Windows systems
+# none = Empty template
+#CONFIG_OS=unix
+
+# Select event loop implementation
+# eloop = select() loop (default)
+# eloop_win = Windows events and WaitForMultipleObject() loop
+# eloop_none = Empty template
+#CONFIG_ELOOP=eloop
+
+# Select layer 2 packet implementation
+# linux = Linux packet socket (default)
+# pcap = libpcap/libdnet/WinPcap
+# freebsd = FreeBSD libpcap
+# winpcap = WinPcap with receive thread
+# ndis = Windows NDISUIO (note: requires CONFIG_USE_NDISUIO=y)
+# none = Empty template
+#CONFIG_L2_PACKET=linux
+
+# PeerKey handshake for Station to Station Link (IEEE 802.11e DLS)
+CONFIG_PEERKEY=y
+
+# IEEE 802.11w (management frame protection)
+# This version is an experimental implementation based on IEEE 802.11w/D1.0
+# draft and is subject to change since the standard has not yet been finalized.
+# Driver support is also needed for IEEE 802.11w.
+#CONFIG_IEEE80211W=y
+
+# Select TLS implementation
+# openssl = OpenSSL (default)
+# gnutls = GnuTLS (needed for TLS/IA, see also CONFIG_GNUTLS_EXTRA)
+# internal = Internal TLSv1 implementation (experimental)
+# none = Empty template
+#CONFIG_TLS=openssl
+
+# Whether to enable TLS/IA support, which is required for EAP-TTLSv1.
+# You need CONFIG_TLS=gnutls for this to have any effect. Please note that
+# even though the core GnuTLS library is released under LGPL, this extra
+# library uses GPL and as such, the terms of GPL apply to the combination
+# of wpa_supplicant and GnuTLS if this option is enabled. BSD license may not
+# apply for distribution of the resulting binary.
+#CONFIG_GNUTLS_EXTRA=y
+
+# If CONFIG_TLS=internal is used, additional library and include paths are
+# needed for LibTomMath. Alternatively, an integrated, minimal version of
+# LibTomMath can be used. See beginning of libtommath.c for details on benefits
+# and drawbacks of this option.
+#CONFIG_INTERNAL_LIBTOMMATH=y
+#ifndef CONFIG_INTERNAL_LIBTOMMATH
+#LTM_PATH=/usr/src/libtommath-0.39
+#CFLAGS += -I$(LTM_PATH)
+#LIBS += -L$(LTM_PATH)
+#LIBS_p += -L$(LTM_PATH)
+#endif
+# At the cost of about 4 kB of additional binary size, the internal LibTomMath
+# can be configured to include faster routines for exptmod, sqr, and div to
+# speed up DH and RSA calculation considerably
+#CONFIG_INTERNAL_LIBTOMMATH_FAST=y
+
+# Include NDIS event processing through WMI into wpa_supplicant/wpasvc.
+# This is only for Windows builds and requires WMI-related header files and
+# WbemUuid.Lib from Platform SDK even when building with MinGW.
+#CONFIG_NDIS_EVENTS_INTEGRATED=y
+#PLATFORMSDKLIB="/opt/Program Files/Microsoft Platform SDK/Lib"
+
+# Add support for old DBus control interface
+# (fi.epitest.hostap.WPASupplicant)
+CONFIG_CTRL_IFACE_DBUS=y
+
+# Add support for new DBus control interface
+# (fi.w1.hostap.wpa_supplicant1)
+CONFIG_CTRL_IFACE_DBUS_NEW=y
+
+# Add introspection support for new DBus control interface
+CONFIG_CTRL_IFACE_DBUS_INTRO=y
+
+# Add support for loading EAP methods dynamically as shared libraries.
+# When this option is enabled, each EAP method can be either included
+# statically (CONFIG_EAP_<method>=y) or dynamically (CONFIG_EAP_<method>=dyn).
+# Dynamic EAP methods are build as shared objects (eap_*.so) and they need to
+# be loaded in the beginning of the wpa_supplicant configuration file
+# (see load_dynamic_eap parameter in the example file) before being used in
+# the network blocks.
+#
+# Note that some shared parts of EAP methods are included in the main program
+# and in order to be able to use dynamic EAP methods using these parts, the
+# main program must have been build with the EAP method enabled (=y or =dyn).
+# This means that EAP-TLS/PEAP/TTLS/FAST cannot be added as dynamic libraries
+# unless at least one of them was included in the main build to force inclusion
+# of the shared code. Similarly, at least one of EAP-SIM/AKA must be included
+# in the main build to be able to load these methods dynamically.
+#
+# Please also note that using dynamic libraries will increase the total binary
+# size. Thus, it may not be the best option for targets that have limited
+# amount of memory/flash.
+#CONFIG_DYNAMIC_EAP_METHODS=y
+
+# IEEE Std 802.11r-2008 (Fast BSS Transition)
+#CONFIG_IEEE80211R=y
+
+# Add support for writing debug log to a file (/tmp/wpa_supplicant-log-#.txt)
+CONFIG_DEBUG_FILE=y
+
+# Enable privilege separation (see README 'Privilege separation' for details)
+#CONFIG_PRIVSEP=y
+
+# Enable mitigation against certain attacks against TKIP by delaying Michael
+# MIC error reports by a random amount of time between 0 and 60 seconds
+#CONFIG_DELAYED_MIC_ERROR_REPORT=y
+
+# Enable tracing code for developer debugging
+# This tracks use of memory allocations and other registrations and reports
+# incorrect use with a backtrace of call (or allocation) location.
+#CONFIG_WPA_TRACE=y
+# For BSD, comment out these.
+#LIBS += -lexecinfo
+#LIBS_p += -lexecinfo
+#LIBS_c += -lexecinfo
+
+# Use libbfd to get more details for developer debugging
+# This enables use of libbfd to get more detailed symbols for the backtraces
+# generated by CONFIG_WPA_TRACE=y.
+#CONFIG_WPA_TRACE_BFD=y
+# For BSD, comment out these.
+#LIBS += -lbfd -liberty -lz
+#LIBS_p += -lbfd -liberty -lz
+#LIBS_c += -lbfd -liberty -lz
diff --git a/core/wpa_supplicant/dbus.patch b/core/wpa_supplicant/dbus.patch
new file mode 100644
index 000000000..4c5002003
--- /dev/null
+++ b/core/wpa_supplicant/dbus.patch
@@ -0,0 +1,61 @@
+From b80b5639935d37b95d00f86b57f2844a9c775f57 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw@redhat.com>
+Date: Fri, 17 Dec 2010 15:56:01 +0200
+Subject: [PATCH] dbus: Emit property changed events when adding/removing BSSes
+
+The supplicant was not emitting property changed events when the BSSs
+property changed.
+
+Signed-off-by: Dan Williams <dcbw@redhat.com>
+(cherry picked from commit 1e6288df6b07a353a9246b77e0de2a840b5f2c72)
+---
+ wpa_supplicant/dbus/dbus_new.c | 6 ++++++
+ wpa_supplicant/dbus/dbus_new.h | 1 +
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c
+index bdfbbac..c66640a 100644
+--- a/wpa_supplicant/dbus/dbus_new.c
++++ b/wpa_supplicant/dbus/dbus_new.c
+@@ -691,6 +691,10 @@ void wpas_dbus_signal_prop_changed(struct wpa_supplicant *wpa_s,
+ wpas_dbus_getter_current_network;
+ prop = "CurrentNetwork";
+ break;
++ case WPAS_DBUS_PROP_BSSS:
++ getter = (WPADBusPropertyAccessor) wpas_dbus_getter_bsss;
++ prop = "BSSs";
++ break;
+ default:
+ wpa_printf(MSG_ERROR, "dbus: %s: Unknown Property value %d",
+ __func__, property);
+@@ -1199,6 +1203,7 @@ int wpas_dbus_unregister_bss(struct wpa_supplicant *wpa_s,
+ }
+
+ wpas_dbus_signal_bss_removed(wpa_s, bss_obj_path);
++ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS);
+
+ return 0;
+ }
+@@ -1263,6 +1268,7 @@ int wpas_dbus_register_bss(struct wpa_supplicant *wpa_s,
+ }
+
+ wpas_dbus_signal_bss_added(wpa_s, bss_obj_path);
++ wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_BSSS);
+
+ return 0;
+
+diff --git a/wpa_supplicant/dbus/dbus_new.h b/wpa_supplicant/dbus/dbus_new.h
+index 80ea98c..9cdefcb 100644
+--- a/wpa_supplicant/dbus/dbus_new.h
++++ b/wpa_supplicant/dbus/dbus_new.h
+@@ -30,6 +30,7 @@ enum wpas_dbus_prop {
+ WPAS_DBUS_PROP_STATE,
+ WPAS_DBUS_PROP_CURRENT_BSS,
+ WPAS_DBUS_PROP_CURRENT_NETWORK,
++ WPAS_DBUS_PROP_BSSS,
+ };
+
+ enum wpas_dbus_bss_prop {
+--
+1.7.4-rc1
+
diff --git a/core/xfsprogs/PKGBUILD b/core/xfsprogs/PKGBUILD
new file mode 100644
index 000000000..6f6cf6e16
--- /dev/null
+++ b/core/xfsprogs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 100477 2010-11-23 17:28:22Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=xfsprogs
+pkgver=3.1.4
+pkgrel=1
+pkgdesc="XFS filesystem utilities"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://oss.sgi.com/projects/xfs/"
+groups=('base')
+depends=('util-linux-ng>=2.16')
+options=('!makeflags' '!libtool')
+# We mirror the sources as upstream tends to move them once a new release is out
+source=("ftp://ftp.archlinux.org/other/xfsprogs/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export OPTIMIZER="-march=${CARCH/_/-} -O1"
+ export DEBUG=-DNDEBUG
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DIST_ROOT="${pkgdir}" install install-dev
+ chown -R root $pkgdir
+ chgrp -R root $pkgdir
+}
+md5sums=('74081975f148bcabcab26c4c3496ede9')
diff --git a/core/xinetd/PKGBUILD b/core/xinetd/PKGBUILD
new file mode 100644
index 000000000..395cad6f1
--- /dev/null
+++ b/core/xinetd/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 99899 2010-11-19 13:00:23Z allan $
+# Maintainer:
+# Contributor: Judd <jvinet@zeroflux.org>
+
+pkgname=xinetd
+pkgver=2.3.14
+pkgrel=6
+pkgdesc="a secure replacement for inetd"
+arch=('i686' 'x86_64')
+url="http://www.xinetd.org/"
+license=('custom')
+depends=('tcp_wrappers')
+optdepends=('perl: for xconv.pl script')
+backup=('etc/xinetd.conf' 'etc/xinetd.d/servers' 'etc/xinetd.d/services')
+source=(http://www.xinetd.org/xinetd-$pkgver.tar.gz
+ xinetd.conf
+ xinetd
+ servers
+ services)
+md5sums=('567382d7972613090215c6c54f9b82d9'
+ 'f109f699a07bc8cfb5791060f5e87f9e'
+ 'ea37a2794f202e6b953d9b6956dad16a'
+ '21f47b4aa20921cfaddddd9f9a407f81'
+ '9fa2061dc7dd738c8424251deb86f81e')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i "s#${prefix}/man#${prefix}/share/man#" configure
+ ./configure --prefix=/usr --with-libwrap
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+
+ install -Dm755 $srcdir/xinetd $pkgdir/etc/rc.d/xinetd
+ install -Dm644 $srcdir/xinetd.conf $pkgdir/etc/xinetd.conf
+ install -Dm644 $srcdir/servers $pkgdir/etc/xinetd.d/servers
+ install -Dm644 $srcdir/services $pkgdir/etc/xinetd.d/services
+
+ # install license
+ install -Dm644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT
+}
diff --git a/core/xinetd/servers b/core/xinetd/servers
new file mode 100644
index 000000000..f064c8d7a
--- /dev/null
+++ b/core/xinetd/servers
@@ -0,0 +1,10 @@
+service servers
+{
+ type = INTERNAL UNLISTED
+ port = 9099
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ disable = yes
+ only_from = 127.0.0.1
+}
diff --git a/core/xinetd/services b/core/xinetd/services
new file mode 100644
index 000000000..4ea304c4f
--- /dev/null
+++ b/core/xinetd/services
@@ -0,0 +1,10 @@
+service services
+{
+ type = INTERNAL UNLISTED
+ port = 9098
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ disable = yes
+ only_from = 127.0.0.1
+}
diff --git a/core/xinetd/xinetd b/core/xinetd/xinetd
new file mode 100755
index 000000000..4b8fa369a
--- /dev/null
+++ b/core/xinetd/xinetd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/xinetd`
+case "$1" in
+ start)
+ stat_busy "Starting xinetd"
+ [ -z "$PID" ] && /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/xinetd.pid
+ add_daemon xinetd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping xinetd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/xinetd.pid
+ rm_daemon xinetd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/core/xinetd/xinetd.conf b/core/xinetd/xinetd.conf
new file mode 100644
index 000000000..b15d9f649
--- /dev/null
+++ b/core/xinetd/xinetd.conf
@@ -0,0 +1,14 @@
+#
+# /etc/xinetd.conf
+#
+
+defaults
+{
+ instances = 60
+ log_type = SYSLOG authpriv
+ log_on_success = HOST PID
+ log_on_failure = HOST
+ cps = 25 30
+}
+
+includedir /etc/xinetd.d
diff --git a/core/xz/PKGBUILD b/core/xz/PKGBUILD
new file mode 100644
index 000000000..98dbf5c9c
--- /dev/null
+++ b/core/xz/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 117398 2011-04-01 14:53:42Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: François Charette <firmicus@gmx.net>
+
+pkgname=xz
+pkgver=5.0.1
+pkgrel=1
+pkgdesc='Library and command line tools for XZ and LZMA compressed files'
+arch=('i686' 'x86_64')
+url='http://tukaani.org/xz/'
+license=('GPL' 'LGPL' 'custom')
+depends=('sh')
+provides=('lzma' 'lzma-utils' 'xz-utils')
+replaces=('lzma' 'lzma-utils' 'xz-utils')
+conflicts=('lzma' 'lzma-utils' 'xz-utils')
+options=('!libtool')
+source=("http://tukaani.org/${pkgname}/${pkgname}-${pkgver}.tar.xz")
+md5sums=('85d15b01a405616a888d09e19fb40f31')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --disable-rpath \
+ --enable-werror
+ sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -d -m755 ${pkgdir}/usr/share/licenses/xz/
+ ln -sf /usr/share/doc/xz/COPYING ${pkgdir}/usr/share/licenses/xz/
+ ln -sf /usr/share/licenses/common/GPL2/license.txt ${pkgdir}/usr/share/doc/xz/COPYING.GPLv2
+}
diff --git a/core/zlib/PKGBUILD b/core/zlib/PKGBUILD
new file mode 100644
index 000000000..ee91eff75
--- /dev/null
+++ b/core/zlib/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 100000 2010-11-19 17:40:38Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=zlib
+pkgver=1.2.5
+pkgrel=3
+pkgdesc='Compression library implementing the deflate compression method found in gzip and PKZIP'
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.zlib.net/"
+depends=('glibc')
+options=('!makeflags')
+source=("http://zlib.net/zlib-${pkgver}.tar.gz"
+ 'zlib-1.2.5-lfs-decls.patch')
+md5sums=('c735eab2d659a96e5a594c9e8541ad63'
+ '4cb279ea3beab621f3526bf7b7ab99e5')
+
+build() {
+ cd ${srcdir}/zlib-$pkgver
+ # see http://bugs.archlinux.org/task/19280
+ patch -p1 -i ${srcdir}/zlib-1.2.5-lfs-decls.patch || return 1
+ # work around gcc bug; see https://bugs.archlinux.org/task/20647
+ export CFLAGS="${CFLAGS/-O2/-O3} -fno-tree-vectorize -DUNALIGNED_OK"
+ ./configure --prefix=/usr
+ make
+
+ grep -A 24 '^ Copyright' zlib.h > LICENSE
+}
+
+package() {
+ cd ${srcdir}/zlib-$pkgver
+ make install DESTDIR=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/zlib/LICENSE
+}
diff --git a/core/zlib/zlib-1.2.5-lfs-decls.patch b/core/zlib/zlib-1.2.5-lfs-decls.patch
new file mode 100644
index 000000000..36e26af03
--- /dev/null
+++ b/core/zlib/zlib-1.2.5-lfs-decls.patch
@@ -0,0 +1,13 @@
+Index: zlib-1.2.5/zlib.h
+===================================================================
+--- zlib-1.2.5.orig/zlib.h
++++ zlib-1.2.5/zlib.h
+@@ -1578,7 +1578,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF(
+ # define gzoffset gzoffset64
+ # define adler32_combine adler32_combine64
+ # define crc32_combine crc32_combine64
+-# ifdef _LARGEFILE64_SOURCE
++# ifndef _LARGEFILE64_SOURCE
+ ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
+ ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
+ ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
diff --git a/extra/a2ps/ChangeLog b/extra/a2ps/ChangeLog
new file mode 100644
index 000000000..fda664602
--- /dev/null
+++ b/extra/a2ps/ChangeLog
@@ -0,0 +1,10 @@
+2009-03-22 Eric Belanger <eric@archlinux.org>
+
+ * a2ps 4.14-1
+ * Upstream update
+ * Added/Removed patches
+ * Updated license
+ * Added backup array
+ * Added gperf makedepends
+ * Added install scriptlet to handle info pages
+ * Added ChangeLog
diff --git a/extra/a2ps/PKGBUILD b/extra/a2ps/PKGBUILD
new file mode 100644
index 000000000..81912e2d3
--- /dev/null
+++ b/extra/a2ps/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 31025 2009-03-24 03:24:37Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=a2ps
+pkgver=4.14
+pkgrel=1
+pkgdesc="a2ps is an Any to PostScript filter"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/a2ps/"
+license=('GPL3')
+depends=('ghostscript' 'psutils' 'imagemagick' 'perl')
+makedepends=('gperf')
+replaces=('a2ps-lprng')
+provides=('a2ps-lprng')
+backup=('etc/a2ps/a2ps.cfg' 'etc/a2ps/a2ps-site.cfg')
+options=('!libtool')
+install=a2ps.install
+source=(ftp://ftp.gnu.org/gnu/a2ps/${pkgname}-${pkgver}.tar.gz \
+ a2ps-4.13c-fnmatch-replacement.patch a2ps-4.13c-emacs.patch a2ps-4.13-manpage-chmod.patch \
+ a2ps-4.14-check-mempcpy.patch a2ps-4.14-fix-stpcpy-proto.patch)
+md5sums=('781ac3d9b213fa3e1ed0d79f986dc8c7' '93011b58e9f20a7fafa31287a51884a4'\
+ '2e493d0bc00d71eb3e8a9b6febc52b69' '09cc5ed4d3d8ff1b2103e519191e8286'\
+ '42aa39b74f6da8cf6e94185c4fc3e601' '066f9327fee6b6eca3a57d657d1097d1')
+sha1sums=('365abbbe4b7128bf70dad16d06e23c5701874852' '8783952d3410d8d59ed953e1db45e2ef1a0b8f65'\
+ '94e35a6ad9268161bec22a56d4cfb696d635994a' '2bb3d0a2ef2f3ff9262723e35c742a80ab0235ce'\
+ '6aed29c1399e79f3914b408059610f9e7c0fc38e' '58fa90134f1027e3f05aeb08212cbcc10f420738')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p1 < ../a2ps-4.13c-fnmatch-replacement.patch || return 1
+ patch -p1 < ../a2ps-4.13c-emacs.patch || return 1
+ patch -p1 < ../a2ps-4.13-manpage-chmod.patch || return 1
+ patch -p1 < ../a2ps-4.14-check-mempcpy.patch || return 1
+ patch -p0 < ../a2ps-4.14-fix-stpcpy-proto.patch || return 1
+ libtoolize --force --copy || return 1
+ autoreconf -I m4 || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc/a2ps \
+ --includedir=/usr/include --enable-nls || return 1
+ export LANG=C
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ sed -i "s:^countdictstack: \0:" ${pkgdir}/usr/bin/psset || return 1
+ rm ${pkgdir}/usr/share/info/dir
+ gzip ${pkgdir}/usr/share/info/*
+}
diff --git a/extra/a2ps/a2ps-4.13-manpage-chmod.patch b/extra/a2ps/a2ps-4.13-manpage-chmod.patch
new file mode 100644
index 000000000..e0c61124e
--- /dev/null
+++ b/extra/a2ps/a2ps-4.13-manpage-chmod.patch
@@ -0,0 +1,12 @@
+diff -ur a2ps-4.13.orig/man/Makefile.maint a2ps-4.13/man/Makefile.maint
+--- a2ps-4.13.orig/man/Makefile.maint 2002-03-04 20:46:26.000000000 +0200
++++ a2ps-4.13/man/Makefile.maint 2007-02-19 21:50:29.000000000 +0200
+@@ -20,7 +20,7 @@
+ --include=$(basename $@).x \
+ --include=common.x \
+ $(executable) > $@-t || exit 1; \
+- chmod -w $@-t || exit 1; \
++ chmod a-w $@-t || exit 1; \
+ rm -f $@ || exit 1; \
+ mv $@-t $@ || exit 1; \
+ else \
diff --git a/extra/a2ps/a2ps-4.13c-emacs.patch b/extra/a2ps/a2ps-4.13c-emacs.patch
new file mode 100644
index 000000000..f1cd5d9eb
--- /dev/null
+++ b/extra/a2ps/a2ps-4.13c-emacs.patch
@@ -0,0 +1,10 @@
+--- a2ps-4.13/contrib/emacs/a2ps-print.el.orig 2005-12-05 08:03:48.000000000 +0100
++++ a2ps-4.13/contrib/emacs/a2ps-print.el 2005-12-06 16:38:14.000000000 +0100
+@@ -93,6 +93,7 @@
+ (concat "--center-title=" name)
+ (concat "--footer=" (concat name " Emacs buffer"))
+ (concat "--pretty-print=" filetype)
++ (concat "-d")
+ ;Uncommenting the following gives a print preview (only):
+ ; (concat "--output=/tmp/foo.ps")
+ )
diff --git a/extra/a2ps/a2ps-4.13c-fnmatch-replacement.patch b/extra/a2ps/a2ps-4.13c-fnmatch-replacement.patch
new file mode 100644
index 000000000..c49ab78c9
--- /dev/null
+++ b/extra/a2ps/a2ps-4.13c-fnmatch-replacement.patch
@@ -0,0 +1,43 @@
+diff -Naurp a2ps-4.13.orig/lib/fnmatch.c a2ps-4.13/lib/fnmatch.c
+--- a2ps-4.13.orig/lib/fnmatch.c 2002-03-04 12:46:25 -0600
++++ a2ps-4.13/lib/fnmatch.c 2006-05-27 11:41:15 -0500
+@@ -27,18 +27,6 @@
+ #include <fnmatch.h>
+ #include <ctype.h>
+
+-
+-/* Comment out all this code if we are using the GNU C Library, and are not
+- actually compiling the library itself. This code is part of the GNU C
+- Library, but also included in many other GNU distributions. Compiling
+- and linking in this code is a waste when using the GNU C library
+- (especially if it is a shared library). Rather than having every GNU
+- program understand `configure --with-gnu-libc' and omit the object files,
+- it is simpler to just do this in the source for each such file. */
+-
+-#if defined _LIBC || !defined __GNU_LIBRARY__
+-
+-
+ # if defined STDC_HEADERS || !defined isascii
+ # define ISASCII(c) 1
+ # else
+@@ -52,10 +40,13 @@
+ extern int errno;
+ # endif
+
++/* fnmatch replacement taken from the GNU C Library for systems that
++ provide a broken implementation. */
++
+ /* Match STRING against the filename pattern PATTERN, returning zero if
+ it matches, nonzero if not. */
+ int
+-fnmatch (const char *pattern, const char *string, int flags)
++rpl_fnmatch (const char *pattern, const char *string, int flags)
+ {
+ register const char *p = pattern, *n = string;
+ register char c;
+@@ -233,5 +224,3 @@ fnmatch (const char *pattern, const char
+
+ # undef FOLD
+ }
+-
+-#endif /* _LIBC or not __GNU_LIBRARY__. */
diff --git a/extra/a2ps/a2ps-4.14-check-mempcpy.patch b/extra/a2ps/a2ps-4.14-check-mempcpy.patch
new file mode 100644
index 000000000..7b820cead
--- /dev/null
+++ b/extra/a2ps/a2ps-4.14-check-mempcpy.patch
@@ -0,0 +1,12 @@
+--- a2ps-4.14-orig/configure.in 2008-04-16 08:36:03.000000000 +0200
++++ a2ps-4.14/configure.in 2008-04-16 08:36:29.000000000 +0200
+@@ -137,7 +137,8 @@
+ ad_REPLACE_FUNC_STRCASECMP
+ ad_REPLACE_FUNC_STRNCASECMP
+ ad_REPLACE_FUNC_RENAME
+-AC_CHECK_FUNCS(uname strchr strerror strerror_r getcwd bcopy bzero tempnam strsignal psignal setlocale)
++AC_CHECK_FUNCS(uname strchr strerror strerror_r getcwd bcopy bzero \
++ tempnam strsignal psignal setlocale mempcpy)
+ ad_FUNC_SYSTEMPAPERNAME
+ ad_FUNC_ATEXIT
+ ad_FUNC_STRFTIME
diff --git a/extra/a2ps/a2ps-4.14-fix-stpcpy-proto.patch b/extra/a2ps/a2ps-4.14-fix-stpcpy-proto.patch
new file mode 100644
index 000000000..7c3c69076
--- /dev/null
+++ b/extra/a2ps/a2ps-4.14-fix-stpcpy-proto.patch
@@ -0,0 +1,17 @@
+=== modified file 'lib/xstrrpl.c'
+--- lib/xstrrpl.c 2008-04-14 18:04:50 +0000
++++ lib/xstrrpl.c 2008-04-14 18:20:20 +0000
+@@ -20,12 +20,10 @@
+
+ #include "system.h"
+ #include <assert.h>
+ #include "xstrrpl.h"
+
+-extern char * stpcpy();
+-
+ /* Perform subsitutions in string. Result is malloc'd
+ E.g., result = xstrrrpl ("1234", subst) gives result = "112333"
+ where subst = { {"1", "11"}, {"3", "333"}, { "4", ""}}
+ */
+ char *
+
diff --git a/extra/a2ps/a2ps.install b/extra/a2ps/a2ps.install
new file mode 100644
index 000000000..30f12c285
--- /dev/null
+++ b/extra/a2ps/a2ps.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(a2ps.info.gz ogonkify.info.gz regex.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/a52dec/PKGBUILD b/extra/a52dec/PKGBUILD
new file mode 100644
index 000000000..8ab0cfeb4
--- /dev/null
+++ b/extra/a52dec/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 5600 2008-07-18 22:05:50Z jgc $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=a52dec
+pkgver=0.7.4
+pkgrel=4
+pkgdesc="liba52 is a free library for decoding ATSC A/52 streams."
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('glibc')
+options=(!libtool)
+source=(http://liba52.sourceforge.net/files/${pkgname}-${pkgver}.tar.gz
+ a52dec-0.7.4-build.patch)
+url="http://liba52.sourceforge.net/"
+md5sums=('caa9f5bc44232dc8aeea773fea56be80' 'fa16f224a7dceb7613824380abef0052')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/a52dec-0.7.4-build.patch || return 1
+ ./bootstrap || return 1
+ ./configure --prefix=/usr --enable-shared || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ install -m644 liba52/a52_internal.h $startdir/pkg/usr/include/a52dec/ || return 1
+}
diff --git a/extra/a52dec/a52dec-0.7.4-build.patch b/extra/a52dec/a52dec-0.7.4-build.patch
new file mode 100644
index 000000000..f3a29f303
--- /dev/null
+++ b/extra/a52dec/a52dec-0.7.4-build.patch
@@ -0,0 +1,27 @@
+diff -Naur a52dec-0.7.4.orig/liba52/Makefile.am a52dec-0.7.4/liba52/Makefile.am
+--- a52dec-0.7.4.orig/liba52/Makefile.am 2002-01-27 20:36:48.000000000 -0800
++++ a52dec-0.7.4/liba52/Makefile.am 2004-11-05 01:10:21.317401872 -0800
+@@ -1,4 +1,3 @@
+-CFLAGS = @CFLAGS@ @LIBA52_CFLAGS@
+
+ lib_LTLIBRARIES = liba52.la
+
+diff -Naur a52dec-0.7.4.orig/liba52/configure.incl a52dec-0.7.4/liba52/configure.incl
+--- a52dec-0.7.4.orig/liba52/configure.incl 2002-01-27 20:36:48.000000000 -0800
++++ a52dec-0.7.4/liba52/configure.incl 2004-11-05 01:11:38.172672216 -0800
+@@ -2,7 +2,6 @@
+ AC_SUBST([LIBA52_LIBS])
+
+ dnl avoid -fPIC when possible
+-LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic"
+
+ AC_ARG_ENABLE([double],
+ [ --enable-double use double-precision samples])
+diff -Naur a52dec-0.7.4.orig/src/Makefile.am a52dec-0.7.4/src/Makefile.am
+--- a52dec-0.7.4.orig/src/Makefile.am 2002-06-22 18:51:57.000000000 -0700
++++ a52dec-0.7.4/src/Makefile.am 2004-11-05 01:10:21.320401375 -0800
+@@ -1,4 +1,3 @@
+-CFLAGS = @A52DEC_CFLAGS@
+
+ bin_PROGRAMS = a52dec extract_a52
+ a52dec_SOURCES = a52dec.c getopt.c gettimeofday.c
diff --git a/extra/aalib/PKGBUILD b/extra/aalib/PKGBUILD
new file mode 100644
index 000000000..d86d8220c
--- /dev/null
+++ b/extra/aalib/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110751 2011-02-22 01:17:25Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=aalib
+pkgver=1.4rc5
+pkgrel=8
+pkgdesc="A portable ASCII art graphic library"
+arch=('i686' 'x86_64')
+url="http://aa-project.sourceforge.net/aalib/"
+license=('LGPL')
+depends=('glibc' 'ncurses' 'gpm' 'libx11')
+makedepends=('libxt')
+options=('!libtool')
+install=aalib.install
+source=(http://downloads.sourceforge.net/sourceforge/aa-project/${pkgname}-${pkgver}.tar.gz
+ aclocal-fixes.patch)
+md5sums=('9801095c42bba12edebd1902bcf0a990' '863a96a6689aa7ee073ca448bc2f133d')
+sha1sums=('a23269e950a249d2ef93625837cace45ddbce03b' '98d8c5a13672a8107945d694ff4520e0bc87d3e9')
+
+build() {
+ cd "${srcdir}/${pkgname}-1.4.0"
+ patch -p0 -i "${srcdir}/aclocal-fixes.patch"
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-1.4.0"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/aalib/aalib.install b/extra/aalib/aalib.install
new file mode 100644
index 000000000..9e99b62cd
--- /dev/null
+++ b/extra/aalib/aalib.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file=aalib.info
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/extra/aalib/aclocal-fixes.patch b/extra/aalib/aclocal-fixes.patch
new file mode 100644
index 000000000..3f1919a22
--- /dev/null
+++ b/extra/aalib/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- aalib.m4.orig 2006-03-05 13:58:21.000000000 +0000
++++ aalib.m4 2006-03-05 13:58:32.000000000 +0000
+@@ -9,7 +9,7 @@
+ dnl AM_PATH_AALIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+ dnl Test for AALIB, and define AALIB_CFLAGS and AALIB_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_AALIB,
++AC_DEFUN([AM_PATH_AALIB],
+ [dnl
+ dnl Get the cflags and libraries from the aalib-config script
+ dnl
diff --git a/extra/abiword/PKGBUILD b/extra/abiword/PKGBUILD
new file mode 100644
index 000000000..4448b28b5
--- /dev/null
+++ b/extra/abiword/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 102234 2010-12-06 22:32:25Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Maël Lavault <moimael@neuf.fr>
+
+pkgbase=abiword
+pkgname=('abiword' 'abiword-plugins')
+pkgver=2.8.6
+pkgrel=4
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.abisource.com"
+makedepends=('pkgconfig' 'asio' 'boost' 'fribidi' 'goffice' 'libwmf' 'wv' 'link-grammar' 'gtkmathview' 'aiksaurus' 'libxslt' 'enchant' 'libots' 'libwpg' 'librsvg' 'loudmouth' 'libsoup')
+options=('!makeflags' '!libtool')
+source=("http://www.abisource.com/downloads/${pkgbase}/${pkgver}/source/${pkgbase}-${pkgver}.tar.gz"
+ compat_libwpg_0_9.patch)
+sha1sums=('998f69d038000b3fc027d4259548f02d67c8d0df'
+ 'e5374f439e3d9b63a4bbd2cd39146c67cf1e85ea')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/compat_libwpg_0_9.patch"
+ libtoolize --force
+ autoreconf
+
+ ./configure --prefix=/usr --enable-clipart --enable-templates --enable-collab-backend-xmpp --enable-collab-backend-tcp --enable-collab-backend-service --disable-collab-backend-sugar --enable-plugins --without-gnomevfs --with-gio --with-goffice --disable-static --with-psiconv-config=/nothere
+ make
+}
+
+package_abiword() {
+ pkgdesc="A fully-featured word processor"
+ depends=('fribidi' 'wv' 'goffice' 'librsvg' 'enchant')
+ optdepends=('abiword-plugins')
+ conflicts=("abiword-plugins<${pkgver}-${pkgrel}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i plugins/Makefile \
+ -e 's/ collab / /' \
+ -e 's/ wpg / /' \
+ -e 's/ wmf / /' \
+ -e 's/ grammar / /' \
+ -e 's/ mathview / /' \
+ -e 's/ aiksaurus / /' \
+ -e 's/ latex / /' \
+ -e 's/ ots / /' \
+ -e 's/ wordperfect / /'
+ make DESTDIR="${pkgdir}" install
+}
+
+package_abiword-plugins() {
+ pkgdesc="Additional plugins for Abiword"
+ depends=("abiword=${pkgver}-${pkgrel}" 'loudmouth' 'libwpg' 'libwmf' 'link-grammar' 'gtkmathview' 'aiksaurus' 'libxslt' 'libsoup' 'libots')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/plugins"
+ for dir in collab wpg wmf grammar mathview aiksaurus latex ots wordperfect; do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+}
diff --git a/extra/abiword/compat_libwpg_0_9.patch b/extra/abiword/compat_libwpg_0_9.patch
new file mode 100644
index 000000000..cf36e188e
--- /dev/null
+++ b/extra/abiword/compat_libwpg_0_9.patch
@@ -0,0 +1,371 @@
+diff -Nur abiword-2.8.6.orig//plugin-configure.m4 abiword-2.8.6/plugin-configure.m4
+--- abiword-2.8.6.orig//plugin-configure.m4 2010-06-13 14:17:27.000000000 -0700
++++ abiword-2.8.6/plugin-configure.m4 2010-12-06 13:59:43.083048588 -0800
+@@ -794,7 +794,7 @@
+ AC_SUBST([OPENXML_LIBS])
+
+
+-wpg_pkgs="$gsf_req libwpg-0.1 >= 0.1.0 libwpd-0.8 >= 0.8.0"
++wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0"
+ wpg_deps="no"
+
+ if test "$enable_wpg" != ""; then
+@@ -1497,8 +1497,8 @@
+ AC_SUBST([EML_LIBS])
+
+
+-wordperfect_pkgs="libwpd-0.8 >= 0.8.0 $gsf_req"
+-wordperfect_wps_pkgs='libwps-0.1 >= 0.1.0'
++wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
++wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0'
+ wordperfect_deps="no"
+
+ WORDPERFECT_CFLAGS=
+diff -Nur abiword-2.8.6.orig//plugins/wordperfect/plugin.m4 abiword-2.8.6/plugins/wordperfect/plugin.m4
+--- abiword-2.8.6.orig//plugins/wordperfect/plugin.m4 2010-05-30 07:50:46.000000000 -0700
++++ abiword-2.8.6/plugins/wordperfect/plugin.m4 2010-12-06 13:59:53.929715254 -0800
+@@ -1,6 +1,6 @@
+
+-wordperfect_pkgs="libwpd-0.8 >= 0.8.0 $gsf_req"
+-wordperfect_wps_pkgs='libwps-0.1 >= 0.1.0'
++wordperfect_pkgs="libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0 $gsf_req"
++wordperfect_wps_pkgs='libwps-0.2 >= 0.1.0'
+ wordperfect_deps="no"
+
+ WORDPERFECT_CFLAGS=
+diff -Nur abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.cpp abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.cpp
+--- abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.cpp 2010-02-06 13:06:11.000000000 -0800
++++ abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.cpp 2010-12-06 13:59:53.926381921 -0800
+@@ -60,7 +60,7 @@
+
+ // Stream class
+
+-#include <libwpd/WPXStream.h>
++#include <libwpd-stream/libwpd-stream.h>
+
+ #include <gsf/gsf-input.h>
+ #include <gsf/gsf-infile.h>
+@@ -70,12 +70,7 @@
+ #include <libwps/libwps.h>
+ #endif
+
+-class AbiWordperfectInputStream :
+-#ifdef HAVE_LIBWPS
+- public WPSInputStream
+-#else
+- public WPXInputStream
+-#endif
++class AbiWordperfectInputStream : public WPXInputStream
+ {
+ public:
+ AbiWordperfectInputStream(GsfInput *input);
+@@ -86,7 +81,7 @@
+
+ virtual WPXInputStream * getDocumentOLEStream(const char * name);
+
+- virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
++ virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
+ virtual int seek(long offset, WPX_SEEK_TYPE seekType);
+ virtual long tell();
+ virtual bool atEOS();
+@@ -98,11 +93,7 @@
+ };
+
+ AbiWordperfectInputStream::AbiWordperfectInputStream(GsfInput *input) :
+-#ifdef HAVE_LIBWPS
+- WPSInputStream(),
+-#else
+- WPXInputStream(true),
+-#endif
++ WPXInputStream(),
+ m_input(input),
+ m_ole(NULL)
+ {
+@@ -117,9 +108,9 @@
+ g_object_unref(G_OBJECT(m_input));
+ }
+
+-const uint8_t * AbiWordperfectInputStream::read(size_t numBytes, size_t &numBytesRead)
++const unsigned char * AbiWordperfectInputStream::read(unsigned long numBytes, unsigned long &numBytesRead)
+ {
+- const uint8_t *buf = gsf_input_read(m_input, numBytes, NULL);
++ const unsigned char *buf = gsf_input_read(m_input, numBytes, NULL);
+
+ if (buf == NULL)
+ numBytesRead = 0;
+@@ -256,19 +247,12 @@
+ {
+ AbiWordperfectInputStream gsfInput(input);
+
+- WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput, true);
++ WPDConfidence confidence = WPDocument::isFileFormatSupported(&gsfInput);
+
+ switch (confidence)
+ {
+ case WPD_CONFIDENCE_NONE:
+- // libwpd > 0.7.1 reports POOR if the text file is plain text (that _could_ be a WP4x document)
+- // however, we'll let the text importer handle such cases
+- case WPD_CONFIDENCE_POOR:
+ return UT_CONFIDENCE_ZILCH;
+- case WPD_CONFIDENCE_LIKELY:
+- return UT_CONFIDENCE_SOSO;
+- case WPD_CONFIDENCE_GOOD:
+- return UT_CONFIDENCE_GOOD;
+ case WPD_CONFIDENCE_EXCELLENT:
+ return UT_CONFIDENCE_PERFECT;
+ default:
+@@ -328,7 +312,7 @@
+ UT_Error IE_Imp_WordPerfect::_loadFile(GsfInput * input)
+ {
+ AbiWordperfectInputStream gsfInput(input);
+- WPDResult error = WPDocument::parse(&gsfInput, static_cast<WPXHLListenerImpl *>(this));
++ WPDResult error = WPDocument::parse(&gsfInput, static_cast<WPXDocumentInterface *>(this), NULL);
+
+ if (error != WPD_OK)
+ {
+@@ -381,9 +365,9 @@
+ float marginLeft = 1.0f, marginRight = 1.0f;
+
+ if (propList["fo:margin-left"])
+- marginLeft = propList["fo:margin-left"]->getFloat();
++ marginLeft = propList["fo:margin-left"]->getDouble();
+ if (propList["fo:margin-right"])
+- marginRight = propList["fo:margin-right"]->getFloat();
++ marginRight = propList["fo:margin-right"]->getDouble();
+
+ if (marginLeft != m_leftPageMargin || marginRight != m_rightPageMargin /* || */
+ /* marginTop != m_marginBottom || marginBottom != m_marginBottom */ )
+@@ -456,15 +440,15 @@
+ float marginTop = 0.0f, marginBottom = 0.0f;
+ float marginLeft = 0.0f, marginRight = 0.0f, textIndent = 0.0f;
+ if (propList["fo:margin-top"])
+- marginTop = propList["fo:margin-top"]->getFloat();
++ marginTop = propList["fo:margin-top"]->getDouble();
+ if (propList["fo:margin-bottom"])
+- marginBottom = propList["fo:margin-bottom"]->getFloat();
++ marginBottom = propList["fo:margin-bottom"]->getDouble();
+ if (propList["fo:margin-left"])
+- marginLeft = propList["fo:margin-left"]->getFloat();
++ marginLeft = propList["fo:margin-left"]->getDouble();
+ if (propList["fo:margin-right"])
+- marginRight = propList["fo:margin-right"]->getFloat();
++ marginRight = propList["fo:margin-right"]->getDouble();
+ if (propList["fo:text-indent"])
+- textIndent = propList["fo:text-indent"]->getFloat();
++ textIndent = propList["fo:text-indent"]->getDouble();
+
+ m_topMargin = marginTop;
+ m_bottomMargin = marginBottom;
+@@ -487,7 +471,7 @@
+
+ float lineSpacing = 1.0f;
+ if (propList["fo:line-height"])
+- lineSpacing = propList["fo:line-height"]->getFloat();
++ lineSpacing = propList["fo:line-height"]->getDouble();
+
+ UT_String tmpBuffer;
+ UT_String_sprintf(tmpBuffer, "; margin-top:%.4fin; margin-bottom:%.4fin; margin-left:%.4fin; margin-right:%.4fin; text-indent:%.4fin; line-height:%.4f",
+@@ -504,7 +488,7 @@
+ propBuffer += tmpBuffer;
+ if (i()["style:position"])
+ {
+- UT_String_sprintf(tmpBuffer, "%.4fin", i()["style:position"]->getFloat());
++ UT_String_sprintf(tmpBuffer, "%.4fin", i()["style:position"]->getDouble());
+ propBuffer += tmpBuffer;
+ }
+
+@@ -640,9 +624,9 @@
+
+ // TODO: support spaceAfter
+ if (propList["fo:margin-left"])
+- marginLeft = propList["fo:margin-left"]->getFloat();
++ marginLeft = propList["fo:margin-left"]->getDouble();
+ if (propList["fo:margin-right"])
+- marginRight = propList["fo:margin-right"]->getFloat();
++ marginRight = propList["fo:margin-right"]->getDouble();
+
+ if (marginLeft != m_leftSectionMargin || marginRight != m_rightSectionMargin || m_sectionColumnsCount != columnsCount)
+ m_bSectionChanged = true;
+@@ -709,9 +693,9 @@
+ if (propList["style:num-format"])
+ listType = propList["style:num-format"]->getStr().cstr()[0];
+ if (propList["text:space-before"])
+- listLeftOffset = propList["text:space-before"]->getFloat();
++ listLeftOffset = propList["text:space-before"]->getDouble();
+ if (propList["text:min-label-width"])
+- listMinLabelWidth = propList["text:min-label-width"]->getFloat();
++ listMinLabelWidth = propList["text:min-label-width"]->getDouble();
+
+ if (!m_pCurrentListDefinition ||
+ m_pCurrentListDefinition->getOutlineHash() != listID ||
+@@ -749,9 +733,9 @@
+ if (propList["libwpd:level"])
+ level = propList["libwpd:level"]->getInt();
+ if (propList["text:space-before"])
+- listLeftOffset = propList["text:space-before"]->getFloat();
++ listLeftOffset = propList["text:space-before"]->getDouble();
+ if (propList["text:min-label-width"])
+- listMinLabelWidth = propList["text:min-label-width"]->getFloat();
++ listMinLabelWidth = propList["text:min-label-width"]->getDouble();
+
+ if (!m_pCurrentListDefinition || m_pCurrentListDefinition->getOutlineHash() != listID)
+ {
+@@ -871,10 +855,10 @@
+
+ UT_String_sprintf(tempBuffer, "margin-left:%.4fin; ", m_pCurrentListDefinition->getListLeftOffset(m_iCurrentListLevel)
+ + m_pCurrentListDefinition->getListMinLabelWidth(m_iCurrentListLevel)
+- - (propList["fo:text-indent"] ? propList["fo:text-indent"]->getFloat() : 0.0f));
++ - (propList["fo:text-indent"] ? propList["fo:text-indent"]->getDouble() : 0.0f));
+ propBuffer += tempBuffer;
+ UT_String_sprintf(tempBuffer, "text-indent:%.4fin", - m_pCurrentListDefinition->getListMinLabelWidth(m_iCurrentListLevel)
+- + (propList["fo:text-indent"] ? propList["fo:text-indent"]->getFloat() : 0.0f));
++ + (propList["fo:text-indent"] ? propList["fo:text-indent"]->getDouble() : 0.0f));
+ propBuffer += tempBuffer;
+
+ listAttribs[attribsCount++] = PT_PROPS_ATTRIBUTE_NAME;
+@@ -1263,7 +1247,7 @@
+ virtual UT_Error _loadFile(GsfInput * input)
+ {
+ AbiWordperfectInputStream gsfInput(input);
+- WPSResult error = WPSDocument::parse(&gsfInput, static_cast<WPXHLListenerImpl *>(this));
++ WPSResult error = WPSDocument::parse(&gsfInput, static_cast<WPXDocumentInterface *>(this));
+
+ if (error != WPS_OK)
+ {
+@@ -1302,18 +1286,12 @@
+ {
+ AbiWordperfectInputStream gsfInput(input);
+
+- WPSConfidence confidence = WPSDocument::isFileFormatSupported(&gsfInput, true);
++ WPSConfidence confidence = WPSDocument::isFileFormatSupported(&gsfInput);
+
+ switch (confidence)
+ {
+ case WPS_CONFIDENCE_NONE:
+ return UT_CONFIDENCE_ZILCH;
+- case WPS_CONFIDENCE_POOR:
+- return UT_CONFIDENCE_POOR;
+- case WPS_CONFIDENCE_LIKELY:
+- return UT_CONFIDENCE_SOSO;
+- case WPS_CONFIDENCE_GOOD:
+- return UT_CONFIDENCE_GOOD;
+ case WPS_CONFIDENCE_EXCELLENT:
+ return UT_CONFIDENCE_PERFECT;
+ default:
+diff -Nur abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.h abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.h
+--- abiword-2.8.6.orig//plugins/wordperfect/xp/ie_imp_WordPerfect.h 2009-06-19 01:55:49.000000000 -0700
++++ abiword-2.8.6/plugins/wordperfect/xp/ie_imp_WordPerfect.h 2010-12-06 13:59:53.929715254 -0800
+@@ -30,13 +30,7 @@
+ #define IE_IMP_WP_H
+
+ #include <stdio.h>
+-#ifdef _WIN32
+-#define POINT WPX_POINT
+-#endif
+ #include <libwpd/libwpd.h>
+-#ifdef _WIN32
+-#undef POINT
+-#endif
+ #include "ie_imp.h"
+ #include "ut_string.h"
+ #include "ut_string_class.h"
+@@ -98,7 +92,7 @@
+ IE_Imp ** ppie);
+ };
+
+-class IE_Imp_WordPerfect : public IE_Imp, public WPXHLListenerImpl
++class IE_Imp_WordPerfect : public IE_Imp, public WPXDocumentInterface
+ {
+ public:
+ IE_Imp_WordPerfect(PD_Document * pDocument);
+@@ -154,6 +148,21 @@
+ virtual void insertCoveredTableCell(const WPXPropertyList & /*propList*/) {}
+ virtual void closeTable();
+
++ virtual void definePageStyle(const WPXPropertyList&) {}
++ virtual void defineParagraphStyle(const WPXPropertyList&, const WPXPropertyListVector&) {}
++ virtual void defineCharacterStyle(const WPXPropertyList&) {}
++ virtual void defineSectionStyle(const WPXPropertyList&, const WPXPropertyListVector&) {}
++ virtual void insertSpace() {}
++ virtual void insertField(const WPXString&, const WPXPropertyList&) {}
++ virtual void openComment(const WPXPropertyList&) {}
++ virtual void closeComment() {}
++ virtual void openTextBox(const WPXPropertyList&) {}
++ virtual void closeTextBox() {}
++ virtual void openFrame(const WPXPropertyList&) {}
++ virtual void closeFrame() {}
++ virtual void insertBinaryObject(const WPXPropertyList&, const WPXBinaryData&) {}
++ virtual void insertEquation(const WPXPropertyList&, const WPXString&) {}
++
+
+ protected:
+ virtual UT_Error _loadFile(GsfInput * input);
+diff -Nur abiword-2.8.6.orig//plugins/wpg/plugin.m4 abiword-2.8.6/plugins/wpg/plugin.m4
+--- abiword-2.8.6.orig//plugins/wpg/plugin.m4 2010-05-30 07:50:46.000000000 -0700
++++ abiword-2.8.6/plugins/wpg/plugin.m4 2010-12-06 13:59:53.929715254 -0800
+@@ -1,5 +1,5 @@
+
+-wpg_pkgs="$gsf_req libwpg-0.1 >= 0.1.0 libwpd-0.8 >= 0.8.0"
++wpg_pkgs="$gsf_req libwpg-0.2 >= 0.2.0 libwpd-0.9 >= 0.9.0 libwpd-stream-0.9 >= 0.9.0"
+ wpg_deps="no"
+
+ if test "$enable_wpg" != ""; then
+diff -Nur abiword-2.8.6.orig//plugins/wpg/xp/ie_impGraphic_WPG.cpp abiword-2.8.6/plugins/wpg/xp/ie_impGraphic_WPG.cpp
+--- abiword-2.8.6.orig//plugins/wpg/xp/ie_impGraphic_WPG.cpp 2008-08-15 14:52:32.000000000 -0700
++++ abiword-2.8.6/plugins/wpg/xp/ie_impGraphic_WPG.cpp 2010-12-06 13:59:53.923048588 -0800
+@@ -31,11 +31,10 @@
+ #include <gsf/gsf-input-memory.h>
+ #include <gsf/gsf-input-stdio.h>
+ #include <gsf/gsf-infile-msole.h>
+-#include <libwpd/WPXStream.h>
++#include <libwpd-stream/libwpd-stream.h>
+ #include "xap_Module.h"
+
+ using libwpg::WPGraphics;
+-using libwpg::WPGString;
+
+ ABI_PLUGIN_DECLARE("WPG")
+
+@@ -48,7 +47,7 @@
+ virtual bool isOLEStream();
+ virtual WPXInputStream * getDocumentOLEStream();
+ virtual WPXInputStream * getDocumentOLEStream(const char * name);
+- virtual const uint8_t *read(size_t numBytes, size_t &numBytesRead);
++ virtual const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
+ virtual int seek(long offset, WPX_SEEK_TYPE seekType);
+ virtual long tell();
+ virtual bool atEOS();
+@@ -60,7 +59,7 @@
+ };
+
+ AbiWordPerfectGraphicsInputStream::AbiWordPerfectGraphicsInputStream(GsfInput *input) :
+- WPXInputStream(true),
++ WPXInputStream(),
+ m_input(input),
+ m_ole(NULL)
+ {
+@@ -75,9 +74,9 @@
+ g_object_unref(G_OBJECT(m_input));
+ }
+
+-const uint8_t * AbiWordPerfectGraphicsInputStream::read(size_t numBytes, size_t &numBytesRead)
++const unsigned char * AbiWordPerfectGraphicsInputStream::read(unsigned long numBytes, unsigned long &numBytesRead)
+ {
+- const uint8_t *buf = gsf_input_read(m_input, numBytes, NULL);
++ const unsigned char *buf = gsf_input_read(m_input, numBytes, NULL);
+
+ if (buf == NULL)
+ numBytesRead = 0;
+@@ -245,10 +244,10 @@
+ UT_Error IE_Imp_WordPerfectGraphics::importGraphic(GsfInput *input, FG_Graphic **ppfg)
+ {
+ AbiWordPerfectGraphicsInputStream gsfInput(input);
+- WPGString svgOutput;
++ WPXString svgOutput;
+ if (WPGraphics::generateSVG(&gsfInput, svgOutput))
+ {
+- GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.length(), false);
++ GsfInput * svgInput = gsf_input_memory_new((const guint8*)svgOutput.cstr(), svgOutput.len(), false);
+ UT_Error result = IE_ImpGraphic::loadGraphic(svgInput, IE_ImpGraphic::fileTypeForSuffix(".svg"), ppfg);
+ g_object_unref(svgInput);
+ return result;
diff --git a/extra/abook/PKGBUILD b/extra/abook/PKGBUILD
new file mode 100644
index 000000000..33832c165
--- /dev/null
+++ b/extra/abook/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 110746 2011-02-22 00:31:00Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=abook
+pkgver=0.6.0pre2
+pkgrel=3
+pkgdesc='Text-based addressbook designed for use with Mutt'
+arch=('i686' 'x86_64')
+url='http://abook.sourceforge.net/'
+license=('GPL2')
+depends=('readline')
+source=("http://abook.sourceforge.net/devel/abook-${pkgver}.tar.gz")
+sha1sums=('42a939fba43e51aa011fa185113c12ec4bc1e1ec')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/acpi/PKGBUILD b/extra/acpi/PKGBUILD
new file mode 100644
index 000000000..10d25d391
--- /dev/null
+++ b/extra/acpi/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 107523 2011-01-26 15:33:37Z thomas $
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=acpi
+pkgver=1.5
+pkgrel=1
+pkgdesc="Linux ACPI client providing battery, AC power, and thermal readings"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/acpiclient"
+depends=('glibc')
+source=(http://downloads.sourceforge.net/acpiclient/$pkgname-$pkgver.tar.gz)
+license=('GPL2')
+sha256sums=('57ff91cb5bef9e6d158c5b231a553a3a77c9ccfd0e4fad42958d1e61241060dd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/acpid/PKGBUILD b/extra/acpid/PKGBUILD
new file mode 100644
index 000000000..fd927c84c
--- /dev/null
+++ b/extra/acpid/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 65410 2010-01-28 20:47:17Z ibiru $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+# Contributor: Manolis Tzanidakis
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=acpid
+pkgver=1.0.10
+pkgrel=3
+pkgdesc="A daemon for delivering ACPI power management events"
+arch=('i686' 'x86_64')
+url="http://acpid.sourceforge.net"
+license=('GPL')
+depends=(glibc)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
+ acpid
+ acpid.conf.d
+ anything
+ handler.sh)
+backup=('etc/acpi/handler.sh' 'etc/acpi/events/anything' 'etc/conf.d/acpid')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ /usr/bin/make || return 1
+ /bin/install -d -m0755 $pkgdir/usr/bin || return 1
+ /usr/bin/make INSTPREFIX=$pkgdir \
+ MAN8DIR=$pkgdir/usr/share/man/man8 install || return 1
+
+ # install our supplementary scripts
+ /bin/install -D -m0755 $srcdir/acpid $pkgdir/etc/rc.d/acpid || return 1
+ /bin/install -D -m0644 $srcdir/acpid.conf.d $pkgdir/etc/conf.d/acpid || return 1
+ /bin/install -D -m0644 $srcdir/anything $pkgdir/etc/acpi/events/anything || return 1
+ /bin/install -D -m0755 $srcdir/handler.sh $pkgdir/etc/acpi/handler.sh || return 1
+
+ # set world readable bit on the acpid binary
+ /bin/chmod 755 $pkgdir/usr/sbin/acpid || return 1
+}
+
+md5sums=('61156ef32015c56dc0f2e3317f4ae09e'
+ 'd9ca7f71f520238a0448fab105a23fe9'
+ '91fdb3709c878eed757d192a420251a1'
+ '2d37b98d6e74bab815604b8b48c6cfd4'
+ '0e8dd13793b1baa79a745f4034888367')
diff --git a/extra/acpid/acpid b/extra/acpid/acpid
new file mode 100644
index 000000000..9a4ab8ac7
--- /dev/null
+++ b/extra/acpid/acpid
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f /etc/conf.d/acpid ] && . /etc/conf.d/acpid
+
+PID=`pidof -o %PPID /usr/sbin/acpid`
+case "$1" in
+ start)
+ stat_busy "Starting acpid"
+ [ -z "$PID" ] && /usr/sbin/acpid $ACPID_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon acpid
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping acpid"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon acpid
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/acpid/acpid.conf.d b/extra/acpid/acpid.conf.d
new file mode 100644
index 000000000..25c9cc1ef
--- /dev/null
+++ b/extra/acpid/acpid.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to the acpid daemon
+#
+
+ACPID_ARGS=""
+
diff --git a/extra/acpid/anything b/extra/acpid/anything
new file mode 100644
index 000000000..d1828989b
--- /dev/null
+++ b/extra/acpid/anything
@@ -0,0 +1,3 @@
+# Pass all events to our one handler script
+event=.*
+action=/etc/acpi/handler.sh %e
diff --git a/extra/acpid/handler.sh b/extra/acpid/handler.sh
new file mode 100644
index 000000000..ad31d1aa9
--- /dev/null
+++ b/extra/acpid/handler.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+# Default acpi script that takes an entry for all actions
+
+# NOTE: This is a 2.6-centric script. If you use 2.4.x, you'll have to
+# modify it to not use /sys
+
+minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`
+maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`
+setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"
+
+set $*
+
+case "$1" in
+ button/power)
+ #echo "PowerButton pressed!">/dev/tty5
+ case "$2" in
+ PWRF) logger "PowerButton pressed: $2" ;;
+ *) logger "ACPI action undefined: $2" ;;
+ esac
+ ;;
+ button/sleep)
+ case "$2" in
+ SLPB) echo -n mem >/sys/power/state ;;
+ *) logger "ACPI action undefined: $2" ;;
+ esac
+ ;;
+ ac_adapter)
+ case "$2" in
+ AC)
+ case "$4" in
+ 00000000)
+ echo -n $minspeed >$setspeed
+ #/etc/laptop-mode/laptop-mode start
+ ;;
+ 00000001)
+ echo -n $maxspeed >$setspeed
+ #/etc/laptop-mode/laptop-mode stop
+ ;;
+ esac
+ ;;
+ *) logger "ACPI action undefined: $2" ;;
+ esac
+ ;;
+ battery)
+ case "$2" in
+ BAT0)
+ case "$4" in
+ 00000000) #echo "offline" >/dev/tty5
+ ;;
+ 00000001) #echo "online" >/dev/tty5
+ ;;
+ esac
+ ;;
+ CPU0)
+ ;;
+ *) logger "ACPI action undefined: $2" ;;
+ esac
+ ;;
+ button/lid)
+ #echo "LID switched!">/dev/tty5
+ ;;
+ *)
+ logger "ACPI group/action undefined: $1 / $2"
+ ;;
+esac
diff --git a/extra/aiksaurus/PKGBUILD b/extra/aiksaurus/PKGBUILD
new file mode 100644
index 000000000..7990bebb4
--- /dev/null
+++ b/extra/aiksaurus/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 45575 2009-07-12 17:51:06Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=aiksaurus
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="A cross-platform, open-source thesaurus"
+url="http://aiksaurus.sourceforge.net/"
+license=('GPL')
+arch=('i686' 'x86_64')
+options=('!libtool')
+depends=('gtk2')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ 'aiksaurus-gcc44.patch')
+md5sums=('3eae03b7c49843ccc9262e52846ea6b4'
+ '7f94749172116b1529fc21b718ee7636')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # gcc44 build patch
+ patch -Np0 -i ${srcdir}/aiksaurus-gcc44.patch || return 1
+
+ ./configure --prefix=/usr --with-gtk
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/aiksaurus/aiksaurus-gcc44.patch b/extra/aiksaurus/aiksaurus-gcc44.patch
new file mode 100644
index 000000000..7146d5307
--- /dev/null
+++ b/extra/aiksaurus/aiksaurus-gcc44.patch
@@ -0,0 +1,31 @@
+--- base/aiksaurus.t.cpp~ 2003-06-26 21:44:38.000000000 -0400
++++ base/aiksaurus.t.cpp 2009-05-31 20:02:29.172988678 -0400
+@@ -22,6 +22,7 @@
+ #include "Aiksaurus.h"
+ #include "AsciiCompare.h"
+ #include "config.h"
++#include <cstdlib>
+ #include <iostream>
+ #include <string>
+ using namespace std;
+
+--- ./gtk/src/Display.cpp~ 2003-05-27 19:56:54.000000000 -0400
++++ ./gtk/src/Display.cpp 2009-06-02 18:09:36.198627551 -0400
+@@ -22,6 +22,7 @@
+ #include "Meaning.h"
+ #include "DialogMediator.h"
+ #include "Exception.h"
++#include <cstring>
+ using namespace std;
+
+ namespace AiksaurusGTK_impl
+--- ./gtk/src/gtkAiksaur.t.cpp~ 2002-01-11 21:02:12.000000000 -0500
++++ ./gtk/src/gtkAiksaur.t.cpp 2009-06-02 18:12:06.815277325 -0400
+@@ -21,6 +21,7 @@
+ #include <AiksaurusGTK.h>
+ #include "config.h"
+ #include <gtk/gtk.h>
++#include <cstdlib>
+ #include <iostream>
+ #include <string>
+ using namespace std;
diff --git a/extra/akonadi/PKGBUILD b/extra/akonadi/PKGBUILD
new file mode 100644
index 000000000..2cc9fbb3f
--- /dev/null
+++ b/extra/akonadi/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 115515 2011-03-18 09:32:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=akonadi
+pkgver=1.5.1
+pkgrel=2
+pkgdesc="PIM layer, which provides an asynchronous API to access all kind of PIM data"
+arch=('i686' 'x86_64')
+url='http://pim.kde.org/akonadi'
+license=('LGPL')
+depends=('shared-mime-info' 'boost-libs' 'mysql' 'soprano')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost')
+install="${pkgname}.install"
+source=("http://download.akonadi-project.org/${pkgname}-${pkgver}.tar.bz2"
+ 'qt-plugins-path.patch')
+md5sums=('4225b064cac6553c22cbeca9a8f93c25'
+ '9e8ad893d8e8d7af2c4f89429e32e367')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/qt-plugins-path.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/extra/akonadi/akonadi.install b/extra/akonadi/akonadi.install
new file mode 100644
index 000000000..7c8a8bd2b
--- /dev/null
+++ b/extra/akonadi/akonadi.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/akonadi/qt-plugins-path.patch b/extra/akonadi/qt-plugins-path.patch
new file mode 100644
index 000000000..cba420122
--- /dev/null
+++ b/extra/akonadi/qt-plugins-path.patch
@@ -0,0 +1,24 @@
+--- akonadi-1.5.1/libs/xdgbasedirs.cpp~ 2011-03-18 02:18:19.543333786 -0700
++++ akonadi-1.5.1/libs/xdgbasedirs.cpp 2011-03-18 02:19:15.893335157 -0700
+@@ -313,7 +313,7 @@
+ QString XdgBaseDirs::findPluginFile( const QString &relPath, const QStringList &searchPath )
+ {
+ if ( instance()->mPluginDirs.isEmpty() ) {
+- QStringList pluginDirs = instance()->systemPathList( "QT_PLUGIN_PATH", AKONADILIB ":" AKONADILIB "/qt4/plugins/:" AKONADILIB "/kde4/:" AKONADILIB "/kde4/plugins/:/usr/lib/qt4/plugins/" );
++ QStringList pluginDirs = instance()->systemPathList( "QT_PLUGIN_PATH", AKONADILIB ":" AKONADILIB "/qt/plugins/:" AKONADILIB "/kde4/:" AKONADILIB "/kde4/plugins/:/usr/lib/qt/plugins/" );
+
+ if ( QCoreApplication::instance() != 0 ) {
+ foreach ( const QString &libraryPath, QCoreApplication::instance()->libraryPaths() ) {
+--- akonadi-1.5.1/qsqlite/CMakeLists.txt~ 2011-03-18 02:22:50.976674875 -0700
++++ akonadi-1.5.1/qsqlite/CMakeLists.txt 2011-03-18 02:23:07.370000620 -0700
+@@ -14,8 +14,8 @@
+ if (INSTALL_QSQLITE_IN_QT_PREFIX)
+ set(QSQLITE_INSTALL_PREFIX "${QT_PLUGINS_DIR}/sqldrivers")
+ else()
+- set(QSQLITE_INSTALL_PREFIX "${LIB_INSTALL_DIR}/qt4/plugins/sqldrivers")
+- message(STATUS "Make sure that you add ${LIB_INSTALL_DIR}/qt4/plugins to your QT_PLUGIN_PATH environment variable.")
++ set(QSQLITE_INSTALL_PREFIX "${LIB_INSTALL_DIR}/qt/plugins/sqldrivers")
++ message(STATUS "Make sure that you add ${LIB_INSTALL_DIR}/qt/plugins to your QT_PLUGIN_PATH environment variable.")
+ endif()
+
+ add_definitions(-Wall)
diff --git a/extra/alex/PKGBUILD b/extra/alex/PKGBUILD
new file mode 100644
index 000000000..7d1e975ba
--- /dev/null
+++ b/extra/alex/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 114116 2011-03-11 04:57:17Z vesa $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Philip Nilsson <pnilsson@nullref.se>
+
+pkgname=alex
+pkgver=2.3.5
+pkgrel=1.1
+pkgdesc='a lexical analyser generator for Haskell'
+arch=('i686' 'x86_64')
+url='http://www.haskell.org/alex/'
+license=('custom:BSD3')
+depends=('gmp')
+makedepends=('ghc=7.0.2')
+source=("http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz")
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ runghc Setup.lhs configure --prefix=/usr --datasubdir=$pkgname
+ runghc Setup.lhs build
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ runghc Setup.lhs copy --destdir=$pkgdir
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/alex/BSD3
+
+ # doc/ contains only license which already installed into proper place
+ rm -rf $pkgdir/usr/share/doc
+}
+md5sums=('5e08c688ded0dcff98eaad6fc03a9402')
diff --git a/extra/allegro/LICENSE b/extra/allegro/LICENSE
new file mode 100644
index 000000000..497c56a8f
--- /dev/null
+++ b/extra/allegro/LICENSE
@@ -0,0 +1,26 @@
+===================================
+============ Copyright ============
+===================================
+
+ Allegro is gift-ware. It was created by a number of people working in
+ cooperation, and is given to you freely as a gift. You may use, modify,
+ redistribute, and generally hack it about in any way you like, and you do
+ not have to give us anything in return. However, if you like this product
+ you are encouraged to thank us by making a return gift to the Allegro
+ community. This could be by writing an add-on package, providing a useful
+ bug report, making an improvement to the library, or perhaps just
+ releasing the sources of your program so that other people can learn from
+ them. If you redistribute parts of this code or make a game using it, it
+ would be nice if you mentioned Allegro somewhere in the credits, but you
+ are not required to do this. We trust you not to abuse our generosity.
+
+ Disclaimer:
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+ SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+
diff --git a/extra/allegro/PKGBUILD b/extra/allegro/PKGBUILD
new file mode 100644
index 000000000..c7083b60f
--- /dev/null
+++ b/extra/allegro/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 91255 2010-09-25 13:05:55Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=allegro
+pkgver=4.4.1.1
+pkgrel=2
+pkgdesc="Portable library mainly aimed at video game and multimedia programming"
+arch=('i686' 'x86_64')
+url="http://alleg.sourceforge.net/"
+license=('custom')
+depends=('jack' 'libxpm' 'libxxf86vm' 'libxxf86dga' 'libxcursor' 'libpng')
+makedepends=('cmake')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/alleg/${pkgname}-${pkgver}.tar.gz
+ LICENSE)
+md5sums=('0f1cfff8f2cf88e5c91a667d9fd386ec'
+ 'cd97e2992e8e66b9e6a449d832dc9c7a')
+
+build() {
+ cd "${srcdir}"
+ mkdir build && cd build
+
+ cmake "../${pkgname}-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWANT_DOCS=OFF
+
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/alpine/2.00-lpam.patch b/extra/alpine/2.00-lpam.patch
new file mode 100644
index 000000000..69e66d7ef
--- /dev/null
+++ b/extra/alpine/2.00-lpam.patch
@@ -0,0 +1,13 @@
+--- alpine-2.00.orig/alpine/Makefile.in
++++ alpine-2.00/alpine/Makefile.in
+@@ -169,7 +169,7 @@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
++LIBS = @LIBS@ -lpam
+ LIBTOOL = @LIBTOOL@
+ LN = @LN@
+ LN_S = @LN_S@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
diff --git a/extra/alpine/CVE-2008-5514.patch b/extra/alpine/CVE-2008-5514.patch
new file mode 100644
index 000000000..594bea0b2
--- /dev/null
+++ b/extra/alpine/CVE-2008-5514.patch
@@ -0,0 +1,20 @@
+--- alpine-2.00/imap/src/c-client/rfc822.c
++++ alpine-2.00/imap/src/c-client/rfc822.c
+@@ -1351,6 +1351,7 @@
+
+ static long rfc822_output_char (RFC822BUFFER *buf,int c)
+ {
++ if ((buf->cur == buf->end) && !rfc822_output_flush (buf)) return NIL;
+ *buf->cur++ = c; /* add character, soutr buffer if full */
+ return (buf->cur == buf->end) ? rfc822_output_flush (buf) : LONGT;
+ }
+@@ -1374,7 +1375,8 @@
+ len -= i;
+ }
+ /* soutr buffer now if full */
+- if (len && !rfc822_output_flush (buf)) return NIL;
++ if ((len || (buf->cur == buf->end)) && !rfc822_output_flush (buf))
++ return NIL;
+ }
+ return LONGT;
+ }
diff --git a/extra/alpine/PKGBUILD b/extra/alpine/PKGBUILD
new file mode 100644
index 000000000..ec3edad56
--- /dev/null
+++ b/extra/alpine/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 104455 2011-01-03 05:46:57Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=alpine
+pkgver=2.00
+pkgrel=12
+_patchlevel=79
+pkgdesc="The Apache-licensed PINE (a tool for reading, sending, and managing electronic messages)"
+arch=('i686' 'x86_64')
+url="http://www.washington.edu/alpine/"
+license=('APACHE')
+depends=('libldap' 'heimdal' 'gettext')
+optdepends=('aspell: for spell-checking support')
+provides=('pine')
+conflicts=('pine')
+replaces=('pine')
+options=('!makeflags')
+source=(ftp://ftp.cac.washington.edu/${pkgname}/${pkgname}.tar.bz2 \
+ http://staff.washington.edu/chappa/alpine/patches/alpine-${pkgver}/all_${_patchlevel}.patch.gz \
+ 2.00-lpam.patch CVE-2008-5514.patch)
+md5sums=('84e44cbf71ed674800a5d57eed9c1c52' 'd7dffd121c9a1cac4c458c0ff71df1ce'\
+ 'cd3911c16fc6a072e853c0ccfc35857c' '1b52a54a656979116c09fb1d948a4325')
+sha1sums=('dcbd3c5419954f484ccf706feaba31ce48cdebc4' 'd3acbf0e46c50feb2e822ef3bdc0a0f43c007294'\
+ '1b39525f91ebd5a9de5a1e04f5554f6fa5f58ae3' 'bc61d76a237ff42b00b3f60f2e6fc5c45e261dbb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../all_${_patchlevel}.patch
+ patch -p1 < ../2.00-lpam.patch
+ patch -p1 < ../CVE-2008-5514.patch
+ ./configure --prefix=/usr --without-passfile --without-tcl \
+ --disable-shared --with-system-pinerc=/etc/alpine.d/pine.conf \
+ --with-system-fixed-pinerc=/etc/alpine.d/pine.conf.fixed
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/alsa-lib/PKGBUILD b/extra/alsa-lib/PKGBUILD
new file mode 100644
index 000000000..b5f7fda08
--- /dev/null
+++ b/extra/alsa-lib/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 110694 2011-02-21 17:46:05Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+pkgname=alsa-lib
+pkgver=1.0.24.1
+pkgrel=1
+pkgdesc="An alternative implementation of Linux sound support"
+arch=('i686' 'x86_64')
+url="http://www.alsa-project.org"
+depends=('glibc')
+optdepends=('python2: for python smixer plugin')
+makedepends=('python2')
+license=('GPL')
+options=(!libtool)
+source=(ftp://ftp.alsa-project.org/pub/lib/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-pythonlibs="-lpthread -lm -ldl -lpython2.7" --with-pythonincludes=-I/usr/include/python2.7
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+md5sums=('7cc05f25e1d5b65da8fb3fdcd540f226')
diff --git a/extra/alsa-oss/PKGBUILD b/extra/alsa-oss/PKGBUILD
new file mode 100644
index 000000000..14050f70b
--- /dev/null
+++ b/extra/alsa-oss/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 13735 2008-09-28 09:02:32Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=alsa-oss
+pkgver=1.0.17
+pkgrel=1
+pkgdesc="OSS compatibility library"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.alsa-project.org"
+options=(!libtool)
+depends=('glibc' 'alsa-lib>=1.0.17a')
+source=(ftp://ftp.alsa-project.org/pub/oss-lib/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('1b1850c2fc91476a73d50f537cbd402f')
diff --git a/extra/alsa-plugins/PKGBUILD b/extra/alsa-plugins/PKGBUILD
new file mode 100644
index 000000000..28724f9eb
--- /dev/null
+++ b/extra/alsa-plugins/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 110785 2011-02-22 08:10:56Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Daniel Ehlers <danielehlers@mindeye.net>
+
+pkgname=alsa-plugins
+pkgver=1.0.24
+pkgrel=1
+pkgdesc="Extra alsa plugins"
+arch=(i686 x86_64)
+url="http://www.alsa-project.org"
+license=(GPL)
+depends=(alsa-lib)
+makedepends=(libpulse jack ffmpeg)
+optdepends=('libpulse: PulseAudio plugin'
+ 'jack: Jack plugin'
+ 'ffmpeg: libavcodec resampling plugin'
+ 'libsamplerate: libsamplerate resampling plugin'
+ 'speex: libspeexdsp resampling plugin')
+options=('!libtool')
+source=("ftp://ftp.alsa-project.org/pub/plugins/$pkgname-$pkgver.tar.bz2")
+md5sums=('e4d4c90e11ab9d1a117afbbc1edd2b16')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/alsa-utils/90alsa b/extra/alsa-utils/90alsa
new file mode 100755
index 000000000..9f18bef24
--- /dev/null
+++ b/extra/alsa-utils/90alsa
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+# 90alsa: suspend/wakeup ALSA devices
+
+case "$1" in
+hibernate|suspend)
+;;
+thaw|resume)
+aplay -d 1 /dev/zero
+;;
+*) exit $NA
+;;
+esac
diff --git a/extra/alsa-utils/PKGBUILD b/extra/alsa-utils/PKGBUILD
new file mode 100644
index 000000000..f71ae7d95
--- /dev/null
+++ b/extra/alsa-utils/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 110704 2011-02-21 18:04:49Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=alsa-utils
+pkgver=1.0.24.2
+pkgrel=1
+pkgdesc="An alternative implementation of Linux sound support"
+arch=('i686' 'x86_64')
+url="http://www.alsa-project.org"
+#can not use >=$pkgver due to use of letters in alsa-lib update versioning
+depends=("alsa-lib>1.0.24" 'dialog' 'pciutils' 'ncurses' 'psmisc')
+makedepends=('xmlto' 'docbook-xsl')
+license=('GPL')
+source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-${pkgver}.tar.bz2
+ alsa
+ alsaconf.patch
+ alsa.conf.d
+ 90alsa)
+backup=(etc/conf.d/alsa)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ../alsaconf.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m755 ../alsa ${pkgdir}/etc/rc.d/alsa
+ install -D -m644 ../alsa.conf.d ${pkgdir}/etc/conf.d/alsa
+ install -D -m755 ../90alsa ${pkgdir}/etc/pm/sleep.d/90alsa
+ # dir where to save ALSA state
+ install -d ${pkgdir}/var/lib/alsa
+}
+md5sums=('8238cd57cb301d1c36bcf0ecb59ce6b2'
+ '2ba1a1cbf653bf1a69f8a720fd6549da'
+ '62ebef77d5617d0036012cc541dcf23c'
+ '4c8ae9f976c7df5e271a4cb91ccc7767'
+ '529216f6a46e61a546640e08ea7a0879')
diff --git a/extra/alsa-utils/alsa b/extra/alsa-utils/alsa
new file mode 100755
index 000000000..1e7b57fa3
--- /dev/null
+++ b/extra/alsa-utils/alsa
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/conf.d/alsa
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Restoring ALSA Levels"
+ if [[ ! -e /var/lib/alsa/asound.state ]]; then
+ /usr/sbin/alsactl $ALSA_ARGS store || { stat_fail; exit 1; }
+ fi
+ if /usr/sbin/alsactl $ALSA_ARGS restore; then
+ stat_done
+ add_daemon alsa
+ else
+ stat_fail
+ exit 1
+ fi
+
+ POWERSAVE=${POWERSAVE:-0}
+ if [[ -e /sys/module/snd_ac97_codec/parameters/power_save ]] \
+ && (( $POWERSAVE )); then
+ echo $POWERSAVE > /sys/module/snd_ac97_codec/parameters/power_save
+ [[ -c /dev/dsp ]] && echo 1 > /dev/dsp
+ fi
+ if [[ -e /sys/module/snd_hda_intel/parameters/power_save ]] \
+ && (( $POWERSAVE )); then
+ echo $POWERSAVE > /sys/module/snd_hda_intel/parameters/power_save
+ [[ -c /dev/dsp ]] && echo 1 > /dev/dsp
+ fi
+ ;;
+ stop)
+ SAVE_VOLUME=${SAVE_VOLUME:-yes}
+ if [[ "$SAVE_VOLUME" = "yes" ]]; then
+ stat_busy "Saving ALSA Levels"
+ /usr/sbin/alsactl $ALSA_ARGS store || { stat_fail; exit 1; }
+ else
+ stat_busy "Stopping ALSA"
+ fi
+ if [ "$MUTE_VOLUME" == "yes" ]; then
+ /usr/bin/amixer -q set Master 0 mute || { stat_fail; exit 1; }
+ fi
+ stat_done
+ rm_daemon alsa
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ force-restart)
+ stat_busy "Trying to TERM or KILL processes that are blocking ALSA..."
+ FILES="$(ls -1 /dev/snd/* | grep -vi control)"
+ fuser -k -SIGTERM $FILES
+ fuser -k $FILES
+ stat_done
+ $0 restart
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|force-restart}"
+esac
diff --git a/extra/alsa-utils/alsa.conf.d b/extra/alsa-utils/alsa.conf.d
new file mode 100644
index 000000000..bd50dcca2
--- /dev/null
+++ b/extra/alsa-utils/alsa.conf.d
@@ -0,0 +1,15 @@
+# Arguments for alsactl
+# example: ALSA_ARGS="--file /var/lib/alsa/asound.state"
+ALSA_ARGS="--file /var/lib/alsa/asound.state"
+
+# Enables powersaving mode for AC97 and hda_intel audio chips.
+# Set to 1 to enable powersaving.
+# Set to 0 to disable powersaving (default).
+POWERSAVE=0
+
+# Whether to save volume levels when stopped ("yes" or "no").
+SAVE_VOLUME="yes"
+
+# Whether to mute the master volume when stopped ("yes" or "no").
+# Useful for bad audio cards which make a noise on system poweroff.
+MUTE_VOLUME="no"
diff --git a/extra/alsa-utils/alsaconf.patch b/extra/alsa-utils/alsaconf.patch
new file mode 100644
index 000000000..ec79fe93f
--- /dev/null
+++ b/extra/alsa-utils/alsaconf.patch
@@ -0,0 +1,32 @@
+diff -Naur alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in alsa-utils-1.0.9a/alsaconf/alsaconf.in
+--- alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in 2005-03-24 00:24:52.000000000 -0800
++++ alsa-utils-1.0.9a/alsaconf/alsaconf.in 2005-07-18 09:25:02.000000000 -0700
+@@ -58,6 +58,8 @@
+ distribution="redhat"
+ elif test -f /etc/fedora-release && grep -q "Fedora" /etc/fedora-release; then
+ distribution="fedora"
++elif test -f /etc/arch-release && grep -q "Arch" /etc/arch-release; then
++ distribution="arch"
+ elif [ -f /etc/slackware-version -o -f /etc/slamd64-version ]; then
+ distribution="slackware"
+ else
+@@ -382,6 +384,8 @@
+ rcalsasound=/etc/rc.d/init.d/alsasound
+ elif [ -x /etc/init.d/alsa ]; then
+ rcalsasound=/etc/init.d/alsa
++elif [ -x /etc/rc.d/alsa ]; then
++ rcalsasound=/etc/rc.d/alsa
+ else
+ rcalsasound=rcalsasound
+ fi
+--- alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in 2010-01-03 19:44:08.000000000 +0100
++++ alsa-utils-1.0.9a-orig/alsaconf/alsaconf.in 2010-01-03 19:44:08.000000000 +0100
+@@ -315,7 +315,7 @@
+ 3.[789]*)
+ ;;
+ *)
+- cfgout="/etc/modprobe.d/sound"
++ cfgout="/etc/modprobe.d/sound.conf"
+ cfgoldout=""
+ ;;
+ esac
diff --git a/extra/alsaplayer/PKGBUILD b/extra/alsaplayer/PKGBUILD
new file mode 100644
index 000000000..4bfaafa01
--- /dev/null
+++ b/extra/alsaplayer/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 98445 2010-11-09 00:59:46Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=alsaplayer
+pkgver=0.99.81
+pkgrel=1
+pkgdesc="A heavily multi-threaded PCM player that tries to excercise the ALSA library and driver quite a bit"
+arch=('i686' 'x86_64')
+url="http://www.alsaplayer.org/"
+license=('GPL')
+depends=('gcc-libs')
+makedepends=('gtk2' 'libid3tag' 'libvorbis' 'libmad' 'libmikmod' 'jack' 'esound' 'mesa')
+optdepends=('gtk2: for the gtk2 GUI interface' \
+ 'libgl: for the OpenGL visual plugins' \
+ 'esound: for ESD audio server output support' \
+ 'jack: for JACK audio server output support' \
+ 'audiofile: for support of various audio formats like AIFF, WAVE, .snd/.au' \
+ 'libid3tag: for flac support' 'flac: for flac support' 'libmad: for MPEG support' \
+ 'libsndfile: for sndfile support' 'libvorbis: for ogg vorbis support' \
+ 'libmikmod: for mod, s3m, it and xm formats supports')
+options=('!libtool')
+source=(http://www.alsaplayer.org/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('845c53975791ba342e316ceac8aa1527')
+sha1sums=('25817ebd1e5c36da31a88363315a1bf7a945ddfd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-audiofile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/amarok/PKGBUILD b/extra/amarok/PKGBUILD
new file mode 100644
index 000000000..0c27e8ee9
--- /dev/null
+++ b/extra/amarok/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 115423 2011-03-17 21:56:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=amarok
+replaces=('amarok-base' 'amarok-engine-xine' 'amarok-base-mysqlfree')
+pkgver=2.4.0
+pkgrel=4
+pkgdesc="A media player for KDE"
+arch=("i686" "x86_64")
+url="http://amarok.kde.org"
+license=('GPL2' 'LGPL2' 'FDL')
+depends=('kdebase-runtime' 'mysql' 'qtscriptgenerator' 'taglib-extras'
+ 'liblastfm' 'ffmpeg' 'libofa')
+makedepends=('pkgconfig' 'automoc4' 'cmake' 'libgpod' 'libmtp' 'loudmouth')
+optdepends=("libgpod: support for Apple iPod audio devices"
+ "libmtp: support for portable media devices"
+ "loudmouth: backend needed by mp3tunes for syncing"
+ "ifuse: support for Apple iPod Touch and iPhone")
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('bdb6ddc8e38d0982a0786ff8ac96d923')
+
+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/extra/amarok/amarok.install b/extra/amarok/amarok.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/amarok/amarok.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/extra/amule/PKGBUILD b/extra/amule/PKGBUILD
new file mode 100644
index 000000000..c2451cb91
--- /dev/null
+++ b/extra/amule/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 117693 2011-04-04 16:32:27Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Henrik Ronellenfitsch <searinox@web.de>
+# Contributor: Alessio Sergi <sergi.alessio {at} gmail.com>
+# Contributor: Dario 'Dax' Vilardi <dax [at] deelab [dot] org>
+
+pkgname=amule
+pkgver=10515
+pkgrel=1
+pkgdesc="An eMule-like client for ed2k p2p network"
+arch=('i686' 'x86_64')
+url="http://www.amule.org"
+license=('GPL')
+depends=('wxgtk' 'gd' 'geoip' 'libupnp' 'crypto++' 'libsm')
+source=("http://amule.sourceforge.net/tarballs/aMule-SVN-r${pkgver}.tar.bz2")
+md5sums=('68bb769089615e5b3a1b3e88fc5da0c6')
+
+build() {
+ cd "${srcdir}/aMule-SVN-r${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-cas \
+ --enable-wxcas \
+ --enable-amule-daemon \
+ --enable-amulecmd \
+ --enable-amule-gui \
+ --enable-alc \
+ --enable-alcc \
+ --enable-webserver \
+ --disable-debug \
+ --enable-optimize \
+ --enable-ccache \
+ --enable-geoip \
+ --enable-upnp
+
+ make
+}
+
+package() {
+ cd "${srcdir}/aMule-SVN-r${pkgver}"
+ make DESTDIR=${pkgdir}/ install
+}
diff --git a/extra/anjuta-extras/PKGBUILD b/extra/anjuta-extras/PKGBUILD
new file mode 100644
index 000000000..0d1eea2e5
--- /dev/null
+++ b/extra/anjuta-extras/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 105124 2011-01-06 17:19:56Z ibiru $
+# Mantainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=anjuta-extras
+pkgver=2.32.1.1
+pkgrel=1
+pkgdesc="Anjuta Integrated Development Environment extra plugins"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('anjuta>=2.32.0.0' 'libgnomecanvas>=2.30.2' 'graphviz>=2.26.3' 'valgrind')
+makedepends=('intltool')
+install=anjuta-extras.install
+url="http://anjuta.sourceforge.net/"
+source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool' '!emptydirs')
+sha256sums=('0461b78eaa11b7a930001024c4db2484863b35f5f52acaa23c568bc6355414a4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain anjuta-extras ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/anjuta-extras/anjuta-extras.install b/extra/anjuta-extras/anjuta-extras.install
new file mode 100644
index 000000000..2c23edf15
--- /dev/null
+++ b/extra/anjuta-extras/anjuta-extras.install
@@ -0,0 +1,17 @@
+pkgname=anjuta
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/anjuta/PKGBUILD b/extra/anjuta/PKGBUILD
new file mode 100644
index 000000000..18a54f830
--- /dev/null
+++ b/extra/anjuta/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 104220 2010-12-30 21:23:10Z ibiru $
+# Mantainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Harley Laue <losinggeneration@yahoo.com>
+
+pkgname=anjuta
+pkgver=2.32.1.1
+pkgrel=1
+pkgdesc="Anjuta Integrated Development Environment (IDE)"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libunique>=1.1.6' 'gconf>=2.32.0' 'vte>=0.26.2' 'gdl>=2.30.1' 'autogen>=5.9.9' 'devhelp>=2.32.0' 'gtksourceview2>=2.10.5' 'glade>=3.6.7' 'libgda>=4.2.1' 'subversion>=1.6.9' 'gnome-icon-theme>=2.31.0' 'hicolor-icon-theme' 'vala>=0.10.1' 'graphviz>=2.6.23' 'perl-locale-gettext')
+makedepends=('gnome-doc-utils>=0.20.2' 'intltool')
+url="http://anjuta.sourceforge.net/"
+install=anjuta.install
+source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool' '!emptydirs')
+sha256sums=('f2b67609890a45d907ab5b42fd5963ba7cb41193d4a0dd2543584eca2ec5db58')
+
+build() {
+ cd "${srcdir}/anjuta-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package(){
+ cd "${srcdir}/anjuta-${pkgver}"
+
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ sed -i "s|#!/usr/bin/python$|#!/usr/bin/python2|" \
+ $pkgdir/usr/share/anjuta/project/{pygtk,python}/src/main.py
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain anjuta ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/anjuta/anjuta.install b/extra/anjuta/anjuta.install
new file mode 100644
index 000000000..98f44a08f
--- /dev/null
+++ b/extra/anjuta/anjuta.install
@@ -0,0 +1,28 @@
+pkgname=anjuta
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-mime-database usr/share/mime > /dev/null
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-mime-database usr/share/mime > /dev/null
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+ update-desktop-database -q
+}
diff --git a/extra/anthy/PKGBUILD b/extra/anthy/PKGBUILD
new file mode 100644
index 000000000..c38e8ba48
--- /dev/null
+++ b/extra/anthy/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 111076 2011-02-23 21:51:47Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=anthy
+pkgver=9100h
+_filecode=37536
+pkgrel=2
+pkgdesc='Hiragana text to Kana Kanji mixed text Japanese input method'
+arch=('i686' 'x86_64')
+url='http://sourceforge.jp/projects/anthy/'
+license=('LGPL' 'GPL')
+options=('!libtool')
+source=("http://dl.sourceforge.jp/anthy/${_filecode}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('bfea9e74e208c4b976b6bd7ac6784cd290c636fd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make EMACS=emacs DESTDIR="${pkgdir}" install
+}
diff --git a/extra/antlr2/PKGBUILD b/extra/antlr2/PKGBUILD
new file mode 100644
index 000000000..021da9bb4
--- /dev/null
+++ b/extra/antlr2/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: George Giorgidze <giorgidze (at) gmail.com>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+
+pkgbase=antlr2
+pkgname=('antlr2' 'python-antlr2')
+pkgver=2.7.7
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.antlr2.org/"
+license=('custom')
+makedepends=('java-environment' 'python2' 'sh')
+source=("http://www.antlr2.org/download/antlr-${pkgver}.tar.gz"
+ 'runantlr2.sh'
+ 'gcc4.4.patch')
+md5sums=('01cc9a2a454dd33dcd8c856ec89af090'
+ 'e4aa827cf78f97c4e5fae086831192d6'
+ '8574c93f40e6477e83c29f9b07de49da')
+
+build() {
+ cd "${srcdir}/antlr-${pkgver}"
+
+ patch -Np0 -i ${srcdir}/gcc4.4.patch
+
+ ./configure --prefix=/usr \
+ --disable-examples \
+ --disable-csharp
+ make
+}
+
+package_antlr2() {
+ pkgdesc="ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing C++ or Java actions"
+ depends=('java-runtime' 'sh')
+ replaces=('antlr')
+ conflicts=('antlr')
+ provides=("antlr=${pkgver}")
+
+ cd ${srcdir}/antlr-${pkgver}/lib/cpp
+ make prefix="${pkgdir}/usr" install
+
+ install -Dm644 ${srcdir}/antlr-${pkgver}/antlr/antlr.jar \
+ "${pkgdir}/usr/share/java/antlr2.jar"
+ install -Dm755 ${srcdir}/runantlr2.sh ${pkgdir}/usr/bin/runantlr2
+ install -Dm644 ${srcdir}/antlr-${pkgver}/LICENSE.txt \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_python-antlr2() {
+ pkgdesc="ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing C++ or Java actions (Python version)"
+ depends=('antlr2' 'python2')
+ replaces=('python-antlr')
+ conflicts=('python-antlr')
+ provides=("python-antlr=${pkgver}")
+
+ cd ${srcdir}/antlr-${pkgver}/lib/python
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+}
diff --git a/extra/antlr2/gcc4.4.patch b/extra/antlr2/gcc4.4.patch
new file mode 100644
index 000000000..de8de9d3f
--- /dev/null
+++ b/extra/antlr2/gcc4.4.patch
@@ -0,0 +1,21 @@
+diff -Naur antlr-2.7.7.orig/lib/cpp/antlr/CharScanner.hpp antlr-2.7.7/lib/cpp/antlr/CharScanner.hpp
+--- lib/cpp/antlr/CharScanner.hpp 2006-11-01 22:37:17.000000000 +0100
++++ lib/cpp/antlr/CharScanner.hpp 2008-03-19 20:09:21.000000000 +0100
+@@ -10,6 +10,7 @@
+
+ #include <antlr/config.hpp>
+
++#include <cstring>
+ #include <map>
+
+ #ifdef HAS_NOT_CCTYPE_H
+--- lib/cpp/antlr/CharScanner.hpp~ 2008-11-11 21:24:02.000000000 +0000
++++ lib/cpp/antlr/CharScanner.hpp 2008-11-11 21:24:33.000000000 +0000
+@@ -10,6 +10,7 @@
+
+ #include <antlr/config.hpp>
+
++#include <cstdio>
+ #include <cstring>
+ #include <map>
+
diff --git a/extra/antlr2/runantlr2.sh b/extra/antlr2/runantlr2.sh
new file mode 100644
index 000000000..716f6f887
--- /dev/null
+++ b/extra/antlr2/runantlr2.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+echo Running 'java antlr.Tool $*' with /usr/share/java/antlr2.jar appended to the CLASSPATH variable
+export CLASSPATH
+CLASSPATH=$CLASSPATH:/usr/share/java/antlr2.jar
+java antlr.Tool $*
diff --git a/extra/apache-ant/PKGBUILD b/extra/apache-ant/PKGBUILD
new file mode 100644
index 000000000..7eec5c172
--- /dev/null
+++ b/extra/apache-ant/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 107828 2011-01-27 04:37:07Z paul $
+# Contributor: Andrew Wright <andreww@photism.org>
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=apache-ant
+pkgver=1.8.2
+pkgrel=1
+pkgdesc="A java-based build tool."
+arch=('i686' 'x86_64')
+license=('APACHE')
+url="http://ant.apache.org/"
+depends=('java-runtime')
+optdepends=('junit: to jave junit on the classpath in javac tasks')
+source=(http://archive.apache.org/dist/ant/binaries/${pkgname}-${pkgver}-bin.tar.bz2
+ ${pkgname}.sh
+ ant_diagnostics.patch)
+md5sums=('9e9ae9fc7352960191489a1286fb0928'
+ '593ee6ebd9b8ec321534a028e686880f'
+ 'cbaab423be40a6e63f0fde901b91eb50')
+
+build() {
+ # install profile.d script
+ install -dm755 ${pkgdir}/etc/profile.d || return 1
+ install -m755 ${srcdir}/${pkgname}.sh ${pkgdir}/etc/profile.d/ || return 1
+
+ # Get the ANT_HOME env var
+ source ${srcdir}/${pkgname}.sh || return 1
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/${ANT_HOME}/{bin,lib} || return 1
+
+ install -m644 ./lib/*.jar ${pkgdir}/${ANT_HOME}/lib || return 1
+ cp -Rp ./etc ${pkgdir}/${ANT_HOME} || return 1
+
+ # Do not copy Windows .bat/.cmd files
+ find ./bin -type f -a ! -name \*.bat -a ! -name \*.cmd \
+ -exec install -m755 {} ${pkgdir}/${ANT_HOME}/bin \; || return 1
+
+ # symlink to junit so it's on the javac build path for ant
+ # matches behavior on ubuntu 9 and makes sense for compatibility
+ # http://bugs.archlinux.org/task/15229
+ cd $startdir/pkg/usr/share/java/apache-ant/lib || return 1
+ ln -s ../../junit.jar . || return 1
+ cd - || return 1
+
+ # The license says the NOTICE file should be redistributed for derivative
+ # works, so lets supply it.
+ install -dm755 ${pkgdir}/usr/share/licenses/${pkgname} || return 1
+ install -m644 LICENSE NOTICE ${pkgdir}/usr/share/licenses/${pkgname} || return 1
+}
+
diff --git a/extra/apache-ant/ant_diagnostics.patch b/extra/apache-ant/ant_diagnostics.patch
new file mode 100644
index 000000000..38148b45c
--- /dev/null
+++ b/extra/apache-ant/ant_diagnostics.patch
@@ -0,0 +1,23 @@
+--- a/src/main/org/apache/tools/ant/Diagnostics.java
++++ b/src/main/org/apache/tools/ant/Diagnostics.java
+@@ -179,7 +179,10 @@
+ * @param clazz the class to get the information from.
+ * @since Ant 1.8.0
+ */
+- private static URL getClassLocation(Class clazz) {
++ private static URL getClassLocation(Class clazz) {
++ if (clazz.getProtectionDomain().getCodeSource() == null) {
++ return null;
++ }
+ return clazz.getProtectionDomain().getCodeSource().getLocation();
+ }
+
+@@ -241,7 +244,7 @@
+ }
+ Transformer transformer = null;
+ try {
+- transformer = transformerFactory.newTransformer();
++ transformer = transformerFactory.newTransformer();
+ } catch (Exception e) {
+ // ignore
+ ignoreThrowable(e);
diff --git a/extra/apache-ant/apache-ant.sh b/extra/apache-ant/apache-ant.sh
new file mode 100644
index 000000000..ab602fb28
--- /dev/null
+++ b/extra/apache-ant/apache-ant.sh
@@ -0,0 +1,3 @@
+export ANT_HOME=/usr/share/java/apache-ant
+export PATH=$PATH:$ANT_HOME/bin
+
diff --git a/extra/apache/PKGBUILD b/extra/apache/PKGBUILD
new file mode 100644
index 000000000..7afa2ad23
--- /dev/null
+++ b/extra/apache/PKGBUILD
@@ -0,0 +1,139 @@
+# $Id: PKGBUILD 96448 2010-10-21 09:16:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=apache
+pkgver=2.2.17
+pkgrel=1
+pkgdesc='A high performance Unix-based HTTP server'
+arch=('i686' 'x86_64')
+options=('!libtool')
+url='http://www.apache.org/dist/httpd'
+license=('APACHE')
+backup=(etc/conf.d/apache etc/httpd/conf/httpd.conf
+ etc/httpd/conf/extra/httpd-{autoindex,dav,default,info,languages}.conf
+ etc/httpd/conf/extra/httpd-{manual,mpm,multilang-errordoc}.conf
+ etc/httpd/conf/extra/httpd-{ssl,userdir,vhosts}.conf
+ etc/logrotate.d/httpd)
+depends=('openssl' 'zlib' 'apr-util' 'pcre')
+optdepends=('lynx: apachectl status')
+_itkurl=http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.11-02
+source=(http://www.apache.org/dist/httpd/httpd-${pkgver}.tar.bz2
+ ${_itkurl}/02-rename-prefork-to-itk.patch
+ ${_itkurl}/03-add-mpm-to-build-system.patch
+ ${_itkurl}/04-correct-output-makefile-location.patch
+ ${_itkurl}/05-add-copyright.patch
+ ${_itkurl}/06-hook-just-after-merging-perdir-config.patch
+ ${_itkurl}/07-base-functionality.patch
+ ${_itkurl}/08-max-clients-per-vhost.patch
+ ${_itkurl}/09-capabilities.patch
+ ${_itkurl}/10-nice.patch
+ apachectl-confd.patch
+ apache.conf.d
+ httpd.logrotate
+ httpd
+ arch.layout)
+md5sums=('16eadc59ea6b38af33874d300973202e'
+ 'db42cfcc18ae1c32aaaff2347e35b79d'
+ '131408ad4dc7b18547b4e062e7e495ab'
+ 'ee488f391054d528547c3a372faa2aa7'
+ 'b202944761b2f0516196488b12504236'
+ '78fa15f8ca3a284b7d71f942e24e47fb'
+ 'd33e39350e987721d50e6fb8e164ab6b'
+ '9f7a8935f9cabc7b46d0052906634cef'
+ '1b28e3363e1b0d05b738a21e7ddd264f'
+ 'd9667fcd2ffecc63e446edd4d6666731'
+ '4ac64df6e019edbe137017cba1ff2f51'
+ '08b3c875f6260644f2f52b4056d656b0'
+ '6382331e9700ed9e8cc78ea51887b537'
+ 'c7e300a287ef7e2e066ac7639536f87e'
+ '3d659d41276ba3bfcb20c231eb254e0c')
+
+build() {
+ cd "${srcdir}/httpd-${pkgver}"
+
+ patch -Np0 -i "${srcdir}/apachectl-confd.patch"
+
+ # set default user
+ sed -e 's#User daemon#User http#' \
+ -e 's#Group daemon#Group http#' \
+ -i docs/conf/httpd.conf.in
+
+ cat "${srcdir}/arch.layout" >> config.layout
+
+ for mpm in prefork worker itk; do
+ if [ "${mpm}" = "itk" ]; then
+ mkdir -p server/mpm/experimental/itk
+ cp -r server/mpm/prefork/* server/mpm/experimental/itk/
+ mv server/mpm/experimental/itk/prefork.c server/mpm/experimental/itk/itk.c
+
+ patch -Np1 -i "${srcdir}/02-rename-prefork-to-itk.patch"
+ patch -Np1 -i "${srcdir}/03-add-mpm-to-build-system.patch"
+ patch -Np1 -i "${srcdir}/04-correct-output-makefile-location.patch"
+ patch -Np1 -i "${srcdir}/05-add-copyright.patch"
+ patch -Np1 -i "${srcdir}/06-hook-just-after-merging-perdir-config.patch"
+ patch -Np1 -i "${srcdir}/07-base-functionality.patch"
+ patch -Np1 -i "${srcdir}/08-max-clients-per-vhost.patch"
+ patch -Np1 -i "${srcdir}/09-capabilities.patch"
+ patch -Np1 -i "${srcdir}/10-nice.patch"
+
+ autoconf
+ fi
+ mkdir build-${mpm}
+ pushd build-${mpm}
+ ../configure --enable-layout=Arch \
+ --enable-modules=all \
+ --enable-mods-shared=all \
+ --enable-so \
+ --enable-suexec \
+ --with-suexec-caller=http \
+ --with-suexec-docroot=/srv/http \
+ --with-suexec-logfile=/var/log/httpd/suexec.log \
+ --with-suexec-bin=/usr/sbin/suexec \
+ --with-suexec-uidmin=99 --with-suexec-gidmin=99 \
+ --enable-ldap --enable-authnz-ldap \
+ --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache \
+ --enable-ssl --with-ssl \
+ --enable-deflate --enable-cgid \
+ --enable-proxy --enable-proxy-connect \
+ --enable-proxy-http --enable-proxy-ftp \
+ --enable-dbd \
+ --with-apr=/usr/bin/apr-1-config \
+ --with-apr-util=/usr/bin/apu-1-config \
+ --with-pcre=/usr \
+ --with-mpm=${mpm}
+ make
+ if [ "${mpm}" = "prefork" ]; then
+ make DESTDIR="${pkgdir}" install
+ else
+ install -m755 httpd "${pkgdir}/usr/sbin/httpd.${mpm}"
+ fi
+ popd
+ done
+
+ install -D -m755 "${srcdir}/httpd" "${pkgdir}/etc/rc.d/httpd"
+ install -D -m644 "${srcdir}/httpd.logrotate" "${pkgdir}/etc/logrotate.d/httpd"
+ install -D -m644 "${srcdir}/apache.conf.d" "${pkgdir}/etc/conf.d/apache"
+
+ # symlinks for /etc/httpd
+ ln -fs /var/log/httpd "${pkgdir}/etc/httpd/logs"
+ ln -fs /var/run/httpd "${pkgdir}/etc/httpd/run"
+ ln -fs /usr/lib/httpd/modules "${pkgdir}/etc/httpd/modules"
+ ln -fs /usr/lib/httpd/build "${pkgdir}/etc/httpd/build"
+
+ # set sane defaults
+ sed -e 's#/usr/lib/httpd/modules/#modules/#' \
+ -e 's|#\(Include conf/extra/httpd-multilang-errordoc.conf\)|\1|' \
+ -e 's|#\(Include conf/extra/httpd-autoindex.conf\)|\1|' \
+ -e 's|#\(Include conf/extra/httpd-languages.conf\)|\1|' \
+ -e 's|#\(Include conf/extra/httpd-userdir.conf\)|\1|' \
+ -e 's|#\(Include conf/extra/httpd-default.conf\)|\1|' \
+ -i "${pkgdir}/etc/httpd/conf/httpd.conf"
+
+ # cleanup
+ rm -rf "${pkgdir}/usr/share/httpd/manual"
+ rm -rf "${pkgdir}/etc/httpd/conf/original"
+ rm -rf "${pkgdir}/srv/"
+ rm -rf "${pkgdir}/usr/bin"
+}
diff --git a/extra/apache/apache.conf.d b/extra/apache/apache.conf.d
new file mode 100644
index 000000000..c6d0ebf52
--- /dev/null
+++ b/extra/apache/apache.conf.d
@@ -0,0 +1,15 @@
+# Configuration file for the httpd service.
+
+#
+# The default processing model (MPM) is the process-based
+# 'prefork' model. A thread-based model, 'worker', is also
+# available, but does not work with some modules (such as PHP).
+# The service must be stopped before changing this variable.
+#
+#HTTPD=/usr/sbin/httpd.worker
+
+#
+# To pass additional options (for instance, -D definitions) to the
+# httpd binary at startup, set OPTIONS here.
+#
+#OPTIONS=
diff --git a/extra/apache/apachectl-confd.patch b/extra/apache/apachectl-confd.patch
new file mode 100644
index 000000000..d0f4b699e
--- /dev/null
+++ b/extra/apache/apachectl-confd.patch
@@ -0,0 +1,15 @@
+--- support/apachectl.in.orig 2010-03-06 18:09:11.000000000 +0100
++++ support/apachectl.in 2010-03-06 18:12:31.000000000 +0100
+@@ -56,6 +56,12 @@
+ # the URL to your server's mod_status status page. If you do not
+ # have one, then status and fullstatus will not work.
+ STATUSURL="http://localhost:@PORT@/server-status"
++
++# Source /etc/conf.d/apache for $HTTPD setting, etc.
++if [ -r /etc/conf.d/apache ]; then
++ . /etc/conf.d/apache
++fi
++
+ #
+ # Set this variable to a command that increases the maximum
+ # number of file descriptors allowed per child process. This is
diff --git a/extra/apache/arch.layout b/extra/apache/arch.layout
new file mode 100644
index 000000000..ab59db84b
--- /dev/null
+++ b/extra/apache/arch.layout
@@ -0,0 +1,22 @@
+<Layout Arch>
+ prefix: /etc/httpd
+ exec_prefix: /usr
+ bindir: /usr/bin
+ sbindir: /usr/sbin
+ libdir: /usr/lib/httpd
+ libexecdir: /usr/lib/httpd/modules
+ mandir: /usr/share/man
+ sysconfdir: /etc/httpd/conf
+ datadir: /usr/share/httpd
+ installbuilddir: /usr/lib/httpd/build
+ errordir: /usr/share/httpd/error
+ iconsdir: /usr/share/httpd/icons
+ htdocsdir: /srv/http
+ manualdir: /usr/share/httpd/manual
+ cgidir: /srv/http/cgi-bin
+ includedir: /usr/include/httpd
+ localstatedir: /var
+ runtimedir: /var/run/httpd
+ logfiledir: /var/log/httpd
+ proxycachedir: /var/cache/httpd
+</Layout> \ No newline at end of file
diff --git a/extra/apache/httpd b/extra/apache/httpd
new file mode 100755
index 000000000..6fa9c3cc7
--- /dev/null
+++ b/extra/apache/httpd
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+daemon_name=httpd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+APACHECTL=/usr/sbin/apachectl
+
+case "$1" in
+ start)
+ stat_busy "Starting Apache Web Server"
+ [ ! -d /var/run/httpd ] && install -d /var/run/httpd
+ if $APACHECTL start >/dev/null ; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Apache Web Server"
+ if $APACHECTL stop >/dev/null ; then
+ rm_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ reload)
+ stat_busy "Reloading Apache Web Server"
+ if $APACHECTL graceful >/dev/null ; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ restart)
+ stat_busy "Restarting Apache Web Server"
+ if $APACHECTL restart >/dev/null ; then
+ add_daemon $daemon_name
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ status)
+ stat_busy "Checking Apache Web Server status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|reload|restart|status}"
+esac
+
+exit 0
diff --git a/extra/apache/httpd.logrotate b/extra/apache/httpd.logrotate
new file mode 100644
index 000000000..a723d20d2
--- /dev/null
+++ b/extra/apache/httpd.logrotate
@@ -0,0 +1,6 @@
+/var/log/httpd/*log {
+ missingok
+ postrotate
+ /bin/kill -HUP `cat /var/run/httpd/httpd.pid 2>/dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/extra/apr-util/PKGBUILD b/extra/apr-util/PKGBUILD
new file mode 100644
index 000000000..2ea584661
--- /dev/null
+++ b/extra/apr-util/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 96364 2010-10-20 01:39:57Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=apr-util
+pkgver=1.3.10
+pkgrel=2
+pkgdesc="The Apache Portable Runtime"
+arch=('i686' 'x86_64')
+url="http://apr.apache.org/"
+depends=('apr>=1.4.2' 'gdbm' 'expat' 'db' 'libldap' 'unixodbc')
+options=('!libtool')
+license=('APACHE')
+source=("http://www.apache.org/dist/apr/apr-util-${pkgver}.tar.bz2")
+md5sums=('6a6f501a1b2a45166b8ffd6df29204bb')
+
+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
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/apr/PKGBUILD b/extra/apr/PKGBUILD
new file mode 100644
index 000000000..b0d3f4d96
--- /dev/null
+++ b/extra/apr/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 72235 2010-03-13 20:22:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=apr
+pkgver=1.4.2
+pkgrel=1
+pkgdesc="The Apache Portable Runtime"
+arch=('i686' 'x86_64')
+url="http://apr.apache.org/"
+depends=('util-linux-ng>=2.16')
+options=('!libtool')
+license=('APACHE')
+source=(http://www.apache.org/dist/apr/apr-${pkgver}.tar.bz2)
+md5sums=('4b00e8f70c067893d075577962656b35')
+
+build() {
+ cd "${srcdir}/apr-${pkgver}"
+ export apr_cv_epoll_create1=no
+ export apr_cv_dup3=no
+ export apr_cv_accept4=no
+ export apr_cv_sock_cloexec=no
+
+ ./configure --prefix=/usr --includedir=/usr/include/apr-1 \
+ --with-installbuilddir=/usr/share/apr-1/build \
+ --enable-nonportable-atomics \
+ --with-devrandom=/dev/urandom || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/apricots/PKGBUILD b/extra/apricots/PKGBUILD
new file mode 100644
index 000000000..76edd3871
--- /dev/null
+++ b/extra/apricots/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 27259 2009-02-18 02:43:34Z eric $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=apricots
+pkgver=0.2.6
+pkgrel=3
+pkgdesc="A simple 2D flying/bombing game similar to basic side scrollers"
+arch=("i686" "x86_64")
+license=('GPL')
+url="http://www.fishies.org.uk/apricots.html"
+depends=('gcc-libs' 'openal>=1.6.372' 'sdl' 'freealut>=1.1.0')
+source=("http://www.fishies.org.uk/$pkgname-$pkgver.tar.gz" \
+ "apricots-0.2.6-freealut.patch")
+md5sums=('910828d717e46d8cbd9c24f702d09fbc' '5f9f74082dfe162ab3ba51f6ec628f99')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np0 -i $startdir/src/apricots-0.2.6-freealut.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make prefix=$pkgdir/usr install || return 1
+}
diff --git a/extra/apricots/apricots-0.2.6-freealut.patch b/extra/apricots/apricots-0.2.6-freealut.patch
new file mode 100644
index 000000000..4f6630713
--- /dev/null
+++ b/extra/apricots/apricots-0.2.6-freealut.patch
@@ -0,0 +1,65 @@
+--- apricots/apricots.cpp
++++ apricots/apricots.cpp
+@@ -16,6 +16,7 @@
+ int main(int, char**){
+ #endif
+
++atexit(SDL_Quit);
+ // Initialize data
+ gamedata g;
+ init_data(g);
+
+--- apricots/sampleio.cpp
++++ apricots/sampleio.cpp
+@@ -74,12 +74,9 @@
+ alListenerfv(AL_ORIENTATION, front );
+
+ // Load in samples
+- ALvoid* data = malloc(5 * (512 * 3) * 1024);
+ alGenBuffers(numsamples, samples);
+
+ for (int i = 0; i < numsamples; i++){
+- ALsizei freq;
+- ALboolean fileok;
+ // Evil OpenAL portability fix done here
+ #ifdef _WIN32
+ ALenum format;
+@@ -87,15 +84,12 @@
+ alutLoadWAVFile(filenames[i],&format,&data,&filelen,&freq,&trash);
+ fileok = (alGetError() == AL_NO_ERROR);
+ #else
+- ALsizei format;
+- ALsizei trash;
+- fileok = alutLoadWAV(filenames[i],&data,&format,&filelen,&trash,&freq);
++ samples[i] = alutCreateBufferFromFile(filenames[i]);
+ #endif
+- if (!fileok){
++ if (samples[i] == AL_NONE){
+ cerr << "sampleio: could not open " << filenames[i] << endl;
+ exit(1);
+ }
+- alBufferData(samples[i], format, data, filelen, freq);
+ }
+
+ // Generate Sources
+@@ -107,7 +101,6 @@
+ alSourcefv(sources[j], AL_ORIENTATION, back );
+ }
+
+- free(data);
+
+ }
+
+
+--- configure.in
++++ configure.in
+@@ -100,7 +100,8 @@
+
+ dnl Check for OpenAL
+ AC_CHECK_HEADER(AL/al.h,[CXXFLAGS="$CXXFLAGS -DAP_AUDIO_OPENAL"])
+-AC_CHECK_LIB( openal, alutInit)
++AC_CHECK_LIB( openal, alGetError)
++AC_CHECK_LIB( alut, alutInit)
+
+ KDE_CHECK_EXTRA_LIBS
+ all_libraries="$all_libraries $USER_LDFLAGS"
diff --git a/extra/archboot/PKGBUILD b/extra/archboot/PKGBUILD
new file mode 100644
index 000000000..fd2534453
--- /dev/null
+++ b/extra/archboot/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 102962 2010-12-13 17:55:11Z tpowa $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=archboot
+pkgver=2010.12
+pkgrel=1
+pkgdesc="Advanced, modular arch boot/install image creation utility"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.archlinux.org/"
+depends=('mkinitcpio>=0.6.7-1' 'mksyslinux>=2010.08-1' 'mkpxelinux>=2010.08-1' 'mkisolinux>=2010.08-1' 'initscripts>=2010.07-2' 'subversion>=1.6.13-1' 'wget>=1.12-2' 'bash>=4.1.009-3' 'coreutils>=8.7-1' 'cryptsetup>=1.1.3-1' 'dialog>=1.1_20100428-2' 'e2fsprogs>=1.41.12-1' 'findutils>=4.4.2-3' 'gawk>=3.1.8-2' 'grep>=2.7-1' 'iputils>=20100214-2' 'jfsutils>=1.1.14-2' 'less>=436-2' 'lvm2>=2.02.77-1' 'mdadm>=3.1.4-1' 'module-init-tools>=3.12-1' 'nano>=2.2.6-1' 'ncurses>=5.7-4' 'net-tools>=1.60-14' 'gnu-netcat>=0.7.1-3' 'ntfsprogs>=2.0.0-4' 'pcmciautils>=017-1' 'procps>=3.2.8-2' 'psmisc>=22.13-1' 'reiserfsprogs>=3.6.21-3' 'sed>=4.2.1-3' 'snarf>=7.0-4' 'syslog-ng>=3.2.1-1' 'sysvinit>=2.88-2' 'tar>=1.25-1' 'util-linux-ng>=2.18-3' 'which>=2.20-4' 'kbd>=1.15.2-1' 'wireless_tools>=29-4' 'xfsprogs>=3.1.4-1' 'dnsutils>=9.7.1.P2-1' 'hdparm>=9.36-1' 'memtest86+>=4.10-1' 'grub>=0.97-17' 'inetutils>=1.8-2' 'openssh>=5.6p1-1' 'hwdetect>=2010.08-1' 'shadow>=4.1.4.2-3' 'bridge-utils>=1.4-3' 'ifenslave>=1.1.0-5' 'cpufrequtils>=008-1' 'links>=2.2-4' 'tcp_wrappers>=7.6-12' 'dosfstools>=3.0.10-1' 'glibc>=2.12.1-4' 'linux-api-headers>=2.6.34-1' 'kernel26>=2.6.36.2-1' 'kernel26-lts>=2.6.32.27-1' 'xinetd>=2.3.14-6' 'kexec-tools>=2.0.2-2' 'ppp>=2.4.5-1' 'rp-pppoe>=3.10-5' 'lilo>=23.1-2' 'iptables>=1.4.10-1' 'capi4k-utils>=050718-7' 'isdn4k-utils>=3.2p1-6' 'ntfs-3g>=2010.10.2-1' 'pciutils>=3.1.7-1' 'usbutils>=0.91-4' 'vpnc>=0.5.3-3' 'openvpn>=2.1.4-1' 'b43-fwcutter>=013-2' 'wpa_supplicant>=0.7.3-1' 'rsync>=3.0.7-1' 'gzip>=1.4-2' 'libarchive>=2.8.4-2' 'device-mapper>=2.02.77-1' 'screen>=4.0.3-10' 'elfutils>=0.149-2' 'pam>=1.1.1-2' 'cracklib>=2.8.16-1' 'nfs-utils>=1.2.2-4' 'nfsidmap>=0.23-4' 'readline>=6.1.002-2' 'acl>=2.2.49-1' 'attr>=2.4.44-2' 'pcre>=8.11-1' 'cpio>=2.11-2' 'fuse>=2.8.5-1' 'libusb>=1.0.8-1' 'vim>=7.3.69-2' 'lzo2>=2.04-1' 'libsasl>=2.1.23-5' 'libldap>=2.4.23-1' 'gpm>=1.20.6-6' 'libevent>=1.4.14b-2' 'gcc-libs>=4.5.1-2' 'sdparm>=1.06-1' 'licenses>=2.6-1' 'pptpclient>=1.7.2-3' 'ndiswrapper>=1.56-6' 'ndiswrapper-utils>=1.56-2' 'zd1211-firmware>=1.4-4' 'ipw2100-fw>=1.3-5' 'ipw2200-fw>=3.1-3' 'smbclient>=3.5.6-1' 'bittorrent>=5.2.2-3' 'dhcpcd>=5.2.9-1' 'openssl>=1.0.0.c-1' 'git>=1.7.3.3-1' 'dmraid>=1.0.0.rc16+CVS-2' 'linux-atm>=2.5.1-1' 'netcfg>=2.5.4-1' 'tiacx>=20080210-18' 'tiacx-firmware>=2-3' 'parted>=2.3-1' 'tzdata>=2010o-1' 'ntp>=4.2.6.p2-1' 'libgcrypt>=1.4.6-1' 'iw>=0.9.20-1' 'crda>=1.1.1-1' 'libnl>=1.1-2' 'iproute2>=2.6.35-4' 'wireless-regdb>=2010.11.24-1' 'v86d>=0.1.9-11' 'dhclient>=4.2.0.1-1' 'syslinux>=4.03-1' 'mtools>=4.0.14-1' 'fsarchiver>=0.6.10-2' 'xz>=5.0.0-1' 'libtirpc>=0.2.1-2' 'librpcsecgss>=0.19-3' 'rpcbind>=0.2.0-2' 'testdisk>=6.11.3-3' 'wipe>=2.3.0-1' 'clamav>=0.96.5-1' 'ddrescue>=1.13-1' 'udev>=164-3' 'ifplugd>=0.28-7' 'wpa_actiond>=1.1-1' 'nouveau-firmware>=20091212-4' 'rfkill>=0.4-1' 'libgssglue>=0.1-3' 'mkinitcpio-nfs-utils>=0.2-1' 'gdisk>=0.6.13-1' 'nilfs-utils>=2.0.20-1' 'btrfs-progs-unstable>=0.19.20100607-3' 'ndiswrapper-lts>=1.56-3' 'nouveau-drm-lts>=0.0.16_20100313-4' 'linux-firmware>=20101108-1' 'iana-etc>=2.30-1' 'libusb-compat>=0.1.3-1')
+source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver-$pkgrel.tar.bz2 vmware-detect.c)
+backup=('etc/archboot/allinone.conf'
+ 'etc/archboot/allinone-lts.conf'
+ 'etc/archboot/default.conf'
+ 'etc/archboot/default-ftp.conf'
+ 'etc/archboot/default-pxelinux.conf'
+ 'etc/archboot/default-ftp-pxelinux.conf'
+ 'etc/archboot/presets/allinone'
+ 'etc/archboot/presets/allinone-lts'
+ 'etc/archboot/presets/isolinux'
+ 'etc/archboot/presets/isolinux-ftp'
+ 'etc/archboot/presets/syslinux'
+ 'etc/archboot/presets/syslinux-ftp'
+ 'etc/archboot/presets/pxelinux'
+ 'etc/archboot/presets/pxelinux-ftp'
+)
+install=archboot.install
+
+### to bump the depends list use this:
+#for i in $(grep ^depends= PKGBUILD | sed -e 's/depends=(//g' -e 's/)//g'); do sed -i -e "s/$(echo $i)/$(echo $i | sed -e "s/>=.*/>=$(pacman -Qi $(echo $i | sed -e "s/'//g" -e 's/>=.*//g') | grep ^Version | sed -e 's/.*: //g')'/g")/g" PKGBUILD; done
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver-$pkgrel
+ mv * $pkgdir/
+ # vmware-detect
+ cd $startdir/src
+ gcc -o vmware-detect vmware-detect.c
+ install -D -m 755 vmware-detect $startdir/pkg/usr/bin/vmware-detect
+}
+md5sums=('c122578bfa40e4d11f570ab066a98abf'
+ '7e2b03463747cb22ab388e79a09fa0cb')
diff --git a/extra/archboot/archboot.install b/extra/archboot/archboot.install
new file mode 100644
index 000000000..25d9c88d4
--- /dev/null
+++ b/extra/archboot/archboot.install
@@ -0,0 +1,24 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+post_install() {
+ cat << EOF
+ARCHBOOT usage:
+---------------
+--> Main config files were installed to '/etc/archboot/'.
+ Preset files were installed to '/etc/archboot/presets'.
+ Modify them to your needs.
+--> Use the preset files as config file of your build tool:
+ mkisolinux, mksyslinux or mkpxelinux
+--> For Allinone ISOs use archboot-allinone.sh
+EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
diff --git a/extra/archboot/vmware-detect.c b/extra/archboot/vmware-detect.c
new file mode 100644
index 000000000..d242a388d
--- /dev/null
+++ b/extra/archboot/vmware-detect.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+int main() {
+ unsigned char idtr[6];
+ asm("sidt %0" : "=m" (idtr));
+ if(0xff==idtr[5])
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+}
diff --git a/extra/ardour/PKGBUILD b/extra/ardour/PKGBUILD
new file mode 100644
index 000000000..eb512207f
--- /dev/null
+++ b/extra/ardour/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 101421 2010-11-29 06:10:19Z allan $
+# Maintainer: tobias <tobias@archlinux.org>
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+# ardour, liblrdf and raptor are heavily dependent on each other. Updating of
+# one package mostly will require an update of all the other packages. I vote
+# for fixed dependencies speaking in terms of versions
+
+pkgname=ardour
+pkgver=2.8.11
+pkgrel=2
+pkgdesc="A multichannel hard disk recorder and digital audio workstation"
+arch=('i686' 'x86_64')
+url="http://ardour.org"
+license=('GPL')
+depends=('liblrdf' 'liblo' 'aubio' 'libusb-compat'
+ 'slv2' 'rubberband' 'libgnomecanvas')
+makedepends=('scons' 'boost' 'pkg-config')
+changelog=${pkgname}.changelog
+source=(ftp://ftp.archlinux.org/other/ardour/${pkgname}-${pkgver}.tar.bz2
+ ${pkgname}.desktop)
+md5sums=('f451a8d0abc133a1700c3932e07a5612'
+ '8aeaf433ebf781733db48e5a16b0c4da')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i '/-O3/d' SConstruct
+
+ scons ${MAKEFLAGS} ARCH="${CFLAGS}" \
+ PREFIX="/usr" \
+ DIST_LIBDIR="lib" \
+ FREEDESKTOP=0 \
+ FREESOUND=1 \
+ DESTDIR="${pkgdir}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ scons PREFIX="/usr" \
+ FREEDESKTOP=0 \
+ FREESOUND=1 \
+ DESTDIR="${pkgdir}" install
+
+ # install some freedesktop.org compatibility
+ install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/ardour/ardour.changelog b/extra/ardour/ardour.changelog
new file mode 100644
index 000000000..6da0d9f57
--- /dev/null
+++ b/extra/ardour/ardour.changelog
@@ -0,0 +1,22 @@
+9 Aug 2010 (GMT+8) Ray Rashif <schivmeister@gmail.com>
+
+ * 2.8.11-1 :
+ Testing build.
+ Updated to latest upstream release.
+ Removed libgnomecanvasmm depend (ardour internal).
+ Removed soundtouch makedepend (ardour internal, unneded).
+ Added new depends
+ - slv2 ("LV2" plug-ins support)
+ - rubberband (can "do more" than soundtouch)
+ - libgnomecanvas
+ Not using SYSLIBS because upstream does not support it.
+ Namcap warnings can be ignored; they're ardour internals.
+
+ * PKGBUILD :
+ Minor cosmetic ammendments.
+
+ * ardour.changelog :
+ Added this changelog.
+
+ * ardour.install :
+ Removed install scriptlet; old and deprecated information.
diff --git a/extra/ardour/ardour.desktop b/extra/ardour/ardour.desktop
new file mode 100644
index 000000000..b50f6c952
--- /dev/null
+++ b/extra/ardour/ardour.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Ardour
+Comment=Multitrack hard disk recorder
+Exec=ardour2
+Icon=/usr/share/ardour2/icons/ardour_icon_48px.png
+Terminal=false
+Type=Application
+X-MultipleArgs=false
+Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
diff --git a/extra/aria2/PKGBUILD b/extra/aria2/PKGBUILD
new file mode 100644
index 000000000..ebf763ca5
--- /dev/null
+++ b/extra/aria2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117352 2011-03-31 07:19:05Z eric $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=aria2
+pkgver=1.11.1
+pkgrel=1
+pkgdesc="Download utility that supports HTTP(S), FTP, BitTorrent, and Metalink"
+arch=('i686' 'x86_64')
+url="http://aria2.sourceforge.net/"
+license=('GPL')
+depends=('gnutls' 'libxml2' 'sqlite3' 'c-ares' 'ca-certificates')
+source=(http://downloads.sourceforge.net/aria2/aria2-${pkgver}.tar.bz2)
+md5sums=('da785645a6d92450b0a54f384202ba6b')
+sha1sums=('b3b37cc7363305d55e86dcd74a73dc493ecfa530')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/arj/001_arches_align.patch b/extra/arj/001_arches_align.patch
new file mode 100644
index 000000000..c55d17ec4
--- /dev/null
+++ b/extra/arj/001_arches_align.patch
@@ -0,0 +1,34 @@
+#DPATCHLEVEL=1
+diff -Naur arj-3.10.19.orig/arj_proc.c arj-3.10.19/arj_proc.c
+--- arj-3.10.19.orig/arj_proc.c 2004-02-20 14:18:52.000000000 +0100
++++ arj-3.10.22/arj_proc.c 2004-04-08 14:06:58.000000000 +0200
+@@ -2898,7 +2898,7 @@
+ }
+ #endif
+
+-#if defined(WORDS_BIGENDIAN)&&!defined(ARJDISP)&&!defined(REGISTER)
++#if (defined(WORDS_BIGENDIAN) || defined(ALIGN_POINTERS)) && !defined(ARJDISP) && !defined(REGISTER)
+ /* Model-independent routine to get 2 bytes from far RAM */
+
+ unsigned int mget_word(char FAR *p)
+diff -Naur arj-3.10.19.orig/arj_proc.h arj-3.10.19/arj_proc.h
+--- arj-3.10.19.orig/arj_proc.h 2004-01-25 01:40:00.000000000 +0100
++++ arj-3.10.22/arj_proc.h 2004-04-08 14:07:18.000000000 +0200
+@@ -12,7 +12,7 @@
+
+ #define mget_byte(p) (*(unsigned char FAR *)(p)&0xFF)
+ #define mput_byte(c, p) *(unsigned char FAR *)(p)=(unsigned char)(c)
+-#ifndef WORDS_BIGENDIAN
++#if !defined(ALIGN_POINTERS) && !defined(WORDS_BIGENDIAN)
+ #define mget_word(p) (*(unsigned short *)(p)&0xFFFF)
+ #define mput_word(w,p) (*(unsigned short *)(p)=(unsigned short)(w))
+ #define mget_dword(p) (*(unsigned long *)(p))
+@@ -60,7 +60,7 @@
+ void unpack_mem(struct mempack *mempack);
+ void strip_lf(char *str);
+ char *ltrim(char *str);
+-#ifdef WORDS_BIGENDIAN
++#if defined(ALIGN_POINTERS) || defined(WORDS_BIGENDIAN)
+ unsigned int mget_word(char FAR *p);
+ unsigned long mget_dword(char FAR *p);
+ void mput_word(unsigned int w, char FAR *p);
diff --git a/extra/arj/002_no_remove_static_const.patch b/extra/arj/002_no_remove_static_const.patch
new file mode 100644
index 000000000..3656ba504
--- /dev/null
+++ b/extra/arj/002_no_remove_static_const.patch
@@ -0,0 +1,20 @@
+#DPATCHLEVEL=1
+diff -Naur arj-3.10.22.orig/gnu/makefile.in arj-3.10.22/gnu/makefile.in
+--- arj-3.10.22.orig/gnu/makefile.in 2004-04-17 14:28:06.000000000 +0300
++++ arj-3.10.22/gnu/makefile.in 2005-08-04 21:50:24.000000000 +0300
+@@ -192,6 +192,15 @@
+ dispose:
+
+ #
++# XXX: Do not use -O2, it removes the static const variable with gcc 4.x
++#
++
++INTEGR_DIRS = $(ARJ_DIR) $(REARJ_DIR) $(ARJCRYPT_DIR) $(REGISTER_DIR)
++
++$(patsubst %,%/integr.o, $(INTEGR_DIRS)): $(SRC_DIR)/integr.c
++ $(CC) -Wall -g -c -o$@ $<
++
++#
+ # The tools
+ #
+
diff --git a/extra/arj/003_64_bit_clean.patch b/extra/arj/003_64_bit_clean.patch
new file mode 100644
index 000000000..7cd602ea5
--- /dev/null
+++ b/extra/arj/003_64_bit_clean.patch
@@ -0,0 +1,194 @@
+#DPATCHLEVEL=1
+diff -Naur -x .svn -x CVS arj-3.10.22.orig/arj_arcv.c arj-3.10.22/arj_arcv.c
+--- arj-3.10.22.orig/arj_arcv.c 2005-06-21 22:53:12.000000000 +0300
++++ arj-3.10.22/arj_arcv.c 2005-11-24 02:50:31.000000000 +0200
+@@ -59,27 +59,27 @@
+ #define setup_hput(ptr) (tmp_hptr=(ptr))
+
+ #define hget_byte() (*(tmp_hptr++)&0xFF)
+-#define hput_byte(c) (*(tmp_hptr++)=(char) (c))
++#define hput_byte(c) (*(tmp_hptr++)=(uint8_t) (c))
+
+ /* Reads two bytes from the header, incrementing the pointer */
+
+-static unsigned int hget_word()
++static uint16_t hget_word()
+ {
+- unsigned int result;
++ uint16_t result;
+
+ result=mget_word(tmp_hptr);
+- tmp_hptr+=sizeof(short);
++ tmp_hptr+=sizeof(uint16_t);
+ return result;
+ }
+
+ /* Reads four bytes from the header, incrementing the pointer */
+
+-static unsigned long hget_longword()
++static uint32_t hget_longword()
+ {
+- unsigned long result;
++ uint32_t result;
+
+ result=mget_dword(tmp_hptr);
+- tmp_hptr+=sizeof(unsigned long);
++ tmp_hptr+=sizeof(uint32_t);
+ return result;
+ }
+
+@@ -87,18 +87,18 @@
+
+ /* Writes two bytes to the header, incrementing the pointer */
+
+-static void hput_word(unsigned int w)
++static void hput_word(uint16_t w)
+ {
+ mput_word(w,tmp_hptr);
+- tmp_hptr+=sizeof(unsigned short);
++ tmp_hptr+=sizeof(uint16_t);
+ }
+
+ /* Writes four bytes to the header, incrementing the pointer */
+
+-static void hput_longword(unsigned long l)
++static void hput_longword(uint32_t l)
+ {
+ mput_dword(l,tmp_hptr);
+- tmp_hptr+=sizeof(unsigned long);
++ tmp_hptr+=sizeof(uint32_t);
+ }
+
+ /* Calculates and stores the basic header size */
+diff -Naur -x .svn -x CVS arj-3.10.22.orig/arj_proc.c arj-3.10.22/arj_proc.c
+--- arj-3.10.22.orig/arj_proc.c 2005-11-24 02:50:19.000000000 +0200
++++ arj-3.10.22/arj_proc.c 2005-11-24 02:50:31.000000000 +0200
+@@ -585,7 +585,7 @@
+ /* Returns the exact amount of data that could be safely written to the
+ destination volume */
+
+-unsigned long get_volfree(unsigned int increment)
++unsigned long get_volfree(unsigned long increment)
+ {
+ unsigned long pvol;
+ unsigned int arjsec_overhead;
+@@ -605,7 +605,7 @@
+ remain=volume_limit-ftell(aostream)-pvol-(long)arjsec_overhead-
+ (long)out_bytes-(long)cpos-(long)ext_voldata-
+ MULTIVOLUME_RESERVE-t_volume_offset;
+- return((unsigned long)min(remain, (unsigned long)increment));
++ return((unsigned long)min(remain, increment));
+ }
+
+ /* Performs various checks when multivolume data is packed to predict an
+@@ -2466,14 +2466,14 @@
+ *tsptr='\0';
+ endptr=tsptr;
+ tsptr=sptr;
+- while((unsigned int)tsptr<(unsigned int)endptr&&patterns<SEARCH_STR_MAX)
++ while((intptr_t)tsptr<(intptr_t)endptr&&patterns<SEARCH_STR_MAX)
+ {
+ while(*tsptr=='\0')
+ tsptr++;
+- if((unsigned int)tsptr<(unsigned int)endptr)
++ if((intptr_t)tsptr<(intptr_t)endptr)
+ {
+ search_str[patterns++]=tsptr;
+- while(*tsptr!='\0'&&(unsigned int)tsptr<(unsigned int)endptr)
++ while(*tsptr!='\0'&&(intptr_t)tsptr<(intptr_t)endptr)
+ tsptr++;
+ }
+ }
+@@ -2901,9 +2901,9 @@
+ #if (defined(WORDS_BIGENDIAN) || defined(ALIGN_POINTERS)) && !defined(ARJDISP) && !defined(REGISTER)
+ /* Model-independent routine to get 2 bytes from far RAM */
+
+-unsigned int mget_word(char FAR *p)
++uint16_t mget_word(char FAR *p)
+ {
+- unsigned int b0, b1;
++ uint16_t b0, b1;
+
+ b0=mget_byte(p);
+ b1=mget_byte(p+1);
+@@ -2912,9 +2912,9 @@
+
+ /* Model-independent routine to get 4 bytes from far RAM */
+
+-unsigned long mget_dword(char FAR *p)
++uint32_t mget_dword(char FAR *p)
+ {
+- unsigned long w0, w1;
++ uint32_t w0, w1;
+
+ w0=mget_word(p);
+ w1=mget_word(p+2);
+@@ -2923,7 +2923,7 @@
+
+ /* Model-independent routine to store 2 bytes in far RAM */
+
+-void mput_word(unsigned int w, char FAR *p)
++void mput_word(uint16_t w, char FAR *p)
+ {
+ mput_byte(w&0xFF, p);
+ mput_byte(w>>8 , p+1);
+@@ -2931,7 +2931,7 @@
+
+ /* Model-independent routine to store 4 bytes in far RAM */
+
+-void mput_dword(unsigned long d, char FAR *p)
++void mput_dword(uint32_t d, char FAR *p)
+ {
+ mput_word(d&0xFFFF, p);
+ mput_word(d>>16 , p+2);
+diff -Naur -x .svn -x CVS arj-3.10.22.orig/arj_proc.h arj-3.10.22/arj_proc.h
+--- arj-3.10.22.orig/arj_proc.h 2005-11-24 02:50:19.000000000 +0200
++++ arj-3.10.22/arj_proc.h 2005-11-24 03:17:25.000000000 +0200
+@@ -8,15 +8,17 @@
+ #ifndef ARJ_PROC_INCLUDED
+ #define ARJ_PROC_INCLUDED
+
++#include <stdint.h>
++
+ /* Helper macros */
+
+-#define mget_byte(p) (*(unsigned char FAR *)(p)&0xFF)
+-#define mput_byte(c, p) *(unsigned char FAR *)(p)=(unsigned char)(c)
++#define mget_byte(p) (*(uint8_t FAR *)(p)&0xFF)
++#define mput_byte(c, p) *(uint8_t FAR *)(p)=(uint8_t)(c)
+ #if !defined(ALIGN_POINTERS) && !defined(WORDS_BIGENDIAN)
+-#define mget_word(p) (*(unsigned short *)(p)&0xFFFF)
+-#define mput_word(w,p) (*(unsigned short *)(p)=(unsigned short)(w))
+-#define mget_dword(p) (*(unsigned long *)(p))
+-#define mput_dword(w,p) (*(unsigned long *)(p)=(unsigned long)(w))
++#define mget_word(p) (*(uint16_t *)(p)&0xFFFF)
++#define mput_word(w,p) (*(uint16_t *)(p)=(uint16_t)(w))
++#define mget_dword(p) (*(uint32_t *)(p))
++#define mput_dword(w,p) (*(uint32_t *)(p)=(uint32_t)(w))
+ #endif
+
+ /* Prototypes */
+@@ -31,7 +33,7 @@
+ int translate_path(char *name);
+ void restart_proc(char *dest);
+ int search_for_extension(char *name, char *ext_list);
+-unsigned long get_volfree(unsigned int increment);
++unsigned long get_volfree(unsigned long increment);
+ unsigned int check_multivolume(unsigned int increment);
+ void store();
+ void hollow_encode();
+@@ -61,10 +63,10 @@
+ void strip_lf(char *str);
+ char *ltrim(char *str);
+ #if defined(ALIGN_POINTERS) || defined(WORDS_BIGENDIAN)
+-unsigned int mget_word(char FAR *p);
+-unsigned long mget_dword(char FAR *p);
+-void mput_word(unsigned int w, char FAR *p);
+-void mput_dword(unsigned long d, char FAR *p);
++uint16_t mget_word(char FAR *p);
++uint32_t mget_dword(char FAR *p);
++void mput_word(uint16_t w, char FAR *p);
++void mput_dword(uint32_t d, char FAR *p);
+ #endif
+
+ #endif
diff --git a/extra/arj/PKGBUILD b/extra/arj/PKGBUILD
new file mode 100644
index 000000000..34012adae
--- /dev/null
+++ b/extra/arj/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 49803 2009-08-16 14:37:35Z jgc $
+# Maintainer: Travis Willard <travisw@wmpub.ca>
+# Contributor: Gergely Tamas <dice@mfa.kfki.hu>
+
+pkgname=arj
+pkgver=3.10.22
+pkgrel=5
+pkgdesc="Free and portable clone of the ARJ archiver"
+url="http://arj.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc')
+makedepends=('autoconf')
+options=(!makeflags)
+source=(http://downloads.sourceforge.net/sourceforge/arj/$pkgname-$pkgver.tar.gz
+ 001_arches_align.patch
+ 002_no_remove_static_const.patch
+ 003_64_bit_clean.patch
+ arj-3.10.22-custom-printf.patch)
+md5sums=('f263bf3cf6d42a8b7e85b4fb514336d3'
+ '550bc972d825036f17f202a2b11b35c2'
+ '395dfa8cc500ffae648777f8f241be88'
+ '56b3cf96ec485b0d824761457417fcc0'
+ '4630a7254dfc6c8d8c7e696aa4a58f4a')
+sha1sums=('e8470f480e9eee14906e5485a8898e5c24738c8b'
+ '7f8904f8c89bacbbeec8c431d627efbb8da2f259'
+ '919a3c02a1e039803502c21175d69f7703d13026'
+ 'd506338e34b40ef5cac6ec14c858fd651a354aaf'
+ '4c9481a4b196c4f56fb44fcd3b9362222d6cbe58')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Add gentoo patches
+ patch -Np1 -i "${srcdir}/001_arches_align.patch" || return 1
+ patch -Np1 -i "${srcdir}/002_no_remove_static_const.patch" || return 1
+ patch -Np1 -i "${srcdir}/003_64_bit_clean.patch" || return 1
+ patch -Np1 -i "${srcdir}/arj-3.10.22-custom-printf.patch" || return 1
+
+ # Build!
+ cd gnu
+ aclocal || return 1
+ autoconf || return 1
+ rm -f config.{guess,sub}
+ _autover=$(automake --version | head -n1 | awk '{ print $4 }')
+ cp /usr/share/automake-${_autover}/config.{guess,sub} . || return 1
+ ./configure --prefix=/usr || return 1
+ cd ..
+ make prepare || return 1
+ make || return 1
+
+ # Install!
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/arj/arj-3.10.22-custom-printf.patch b/extra/arj/arj-3.10.22-custom-printf.patch
new file mode 100644
index 000000000..b789dd5c7
--- /dev/null
+++ b/extra/arj/arj-3.10.22-custom-printf.patch
@@ -0,0 +1,15 @@
+Patch by Lubomir Rintel <lkundrak@v3.sk> for arj >= 3.10.22, which disables
+the custom printf to avoid conflicting strnlen definition with the glibc
+headers. By using custom printf (as in the past), we're completely loosing
+all the _FORTIFY_SOURCE printf protections.
+
+--- arj-3.10.22/fardata.c 2004-04-17 13:39:42.000000000 +0200
++++ arj-3.10.22/fardata.c.printf 2009-04-18 16:23:52.000000000 +0200
+@@ -13,7 +13,6 @@
+ /* ASR fix 02/05/2003: need that regardless of COLOR_OUTPUT to support -jp
+ correctly */
+ #if SFX_LEVEL>=ARJ
+- #define CUSTOM_PRINTF
+ #define CHUNK_SIZE 512 /* Size of the output block */
+ #define CHUNK_THRESHOLD (CHUNK_SIZE-256) /* Safety bound */
+ #endif
diff --git a/extra/arora/PKGBUILD b/extra/arora/PKGBUILD
new file mode 100644
index 000000000..9bcf87b01
--- /dev/null
+++ b/extra/arora/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 110242 2011-02-18 07:44:40Z andrea $
+# Maintainer:
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=arora
+pkgver=0.11.0
+pkgrel=2
+pkgdesc='A cross platform web browser built using Qt and WebKit'
+arch=('i686' 'x86_64')
+url='http://www.arora-browser.org'
+license=('GPL')
+depends=('qt' 'desktop-file-utils')
+install='arora.install'
+source=("http://arora.googlecode.com/files/arora-${pkgver}.tar.gz")
+md5sums=('64334ce4198861471cad9316d841f0cb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ qmake PREFIX="/usr" "CONFIG-=debug" -r
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/extra/arora/arora.install b/extra/arora/arora.install
new file mode 100644
index 000000000..5787df72f
--- /dev/null
+++ b/extra/arora/arora.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/extra/asio/PKGBUILD b/extra/asio/PKGBUILD
new file mode 100644
index 000000000..add8358e0
--- /dev/null
+++ b/extra/asio/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115985 2011-03-22 15:04:08Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=asio
+pkgver=1.4.8
+pkgrel=1
+pkgdesc="Cross-platform C++ library for ASynchronous network I/O"
+arch=('i686' 'x86_64')
+url="http://asio.sourceforge.net"
+license=('custom')
+depends=('boost')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2")
+md5sums=('bc2ca8ea37892870d194421154df122f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ #license
+ install -D -m644 LICENSE_1_0.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/aspell-de/PKGBUILD b/extra/aspell-de/PKGBUILD
new file mode 100644
index 000000000..4e2c6febf
--- /dev/null
+++ b/extra/aspell-de/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 116607 2011-03-24 12:52:36Z andrea $
+# Maintainer:
+# Contributor: Simo Leone <simo@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=aspell-de
+pkgver=20100727
+pkgrel=3
+pkgdesc="German dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://j3e.de/ispell/igerman98/index.html"
+license=('GPL2')
+depends=('aspell')
+source=(http://j3e.de/ispell/igerman98/dict/igerman98-${pkgver}.tar.bz2)
+md5sums=('53a66eccaf15fa92d4e5085e7938ee69')
+sha1sums=('7cfde06b3086b03b9d400998a7254598a5b72564')
+
+build() {
+ cd "${srcdir}/igerman98-${pkgver}"
+
+ LANGS="de_DE de_AT de_CH"
+ for l in ${LANGS}; do
+ make aspell/${l}.rws
+ done
+}
+
+package() {
+ cd "${srcdir}/igerman98-${pkgver}/aspell"
+
+ install -d "${pkgdir}/usr/lib/aspell-0.60"
+
+ LANGS="de_DE de_AT de_CH"
+ for l in ${LANGS}; do
+ install -m644 ${l}.alias ${l}.dat ${l}_affix.dat ${l}.multi ${l}.rws \
+ "${pkgdir}/usr/lib/aspell-0.60/"
+ done
+
+ echo "add de_DE.multi" > "${pkgdir}/usr/lib/aspell-0.60/deutsch.alias"
+ echo "add de_DE.multi" > "${pkgdir}/usr/lib/aspell-0.60/german.alias"
+ echo "add de_CH.multi" > "${pkgdir}/usr/lib/aspell-0.60/swiss.alias"
+}
diff --git a/extra/aspell-en/PKGBUILD b/extra/aspell-en/PKGBUILD
new file mode 100644
index 000000000..6ac72bed5
--- /dev/null
+++ b/extra/aspell-en/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 109832 2011-02-13 04:35:52Z eric $
+
+pkgname=aspell-en
+pkgver=7.1
+pkgrel=1
+pkgdesc="English dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('custom')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-$pkgver-0.tar.bz2)
+md5sums=('beba5e8f3afd3ed1644653bb685b2dfb')
+sha1sums=('d45ccda0c03e2a679c2936487ec851a1896b8150')
+
+build() {
+ cd "$srcdir/aspell6-en-$pkgver-0"
+ ./configure
+ make
+}
+
+package() {
+ cd "$srcdir/aspell6-en-$pkgver-0"
+ make DESTDIR="$pkgdir" install
+
+ install -D -m644 Copyright "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/aspell-es/PKGBUILD b/extra/aspell-es/PKGBUILD
new file mode 100644
index 000000000..81a93400e
--- /dev/null
+++ b/extra/aspell-es/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 116610 2011-03-24 12:57:43Z andrea $
+# Maintainer:
+# Contributor: Simo Leone <simo@archlinux.org>
+# Contributor: Juan Pablo Len <jp_leon@gmx.net>
+
+pkgname=aspell-es
+pkgver=1.11
+pkgrel=4
+pkgdesc="Spanish dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('GPL')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell6-es-$pkgver-2.tar.bz2)
+md5sums=('8406336a89c64e47e96f4153d0af70c4')
+
+build() {
+ cd $srcdir/aspell6-es-$pkgver-2
+ ./configure
+ make
+}
+
+package() {
+ cd $srcdir/aspell6-es-$pkgver-2
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/aspell-fr/PKGBUILD b/extra/aspell-fr/PKGBUILD
new file mode 100644
index 000000000..ef91b7513
--- /dev/null
+++ b/extra/aspell-fr/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 116613 2011-03-24 13:03:29Z andrea $
+# Maintainer:
+# Contributor: Simo Leone <simo@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=aspell-fr
+pkgver=0.50.3
+pkgrel=5
+pkgdesc="French dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('GPL')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/fr/$pkgname-0.50-3.tar.bz2)
+md5sums=('53a2d05c4e8f7fabd3cefe24db977be7')
+
+build() {
+ cd $srcdir/$pkgname-0.50-3
+ ./configure
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-0.50-3
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/aspell-hu/PKGBUILD b/extra/aspell-hu/PKGBUILD
new file mode 100644
index 000000000..748f3b129
--- /dev/null
+++ b/extra/aspell-hu/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 116616 2011-03-24 13:05:39Z andrea $
+# Maintainer:
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=aspell-hu
+pkgver=0.99.4.2
+pkgrel=2
+pkgdesc="Hungarian spellcheck dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('GPL')
+depends=('aspell')
+source=("ftp://ftp.gnu.org/gnu/aspell/dict/hu/aspell6-hu-${pkgver}-0.tar.bz2")
+md5sums=('4f4e1e98019a89d0ebf43ec59ae68254')
+
+build() {
+ cd "${srcdir}/aspell6-hu-${pkgver}-0"
+
+ ./configure
+ make
+}
+
+package() {
+ cd "${srcdir}/aspell6-hu-${pkgver}-0"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/aspell-it/PKGBUILD b/extra/aspell-it/PKGBUILD
new file mode 100644
index 000000000..f577080e1
--- /dev/null
+++ b/extra/aspell-it/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 116619 2011-03-24 13:07:52Z andrea $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=aspell-it
+pkgver=2.2_20050523
+pkgrel=3
+pkgdesc="Italian dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('GPL2')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/it/aspell6-it-${pkgver}-0.tar.bz2)
+md5sums=('b1217299a0b67d1e121494d7ec18a88d')
+
+build() {
+ cd "${srcdir}/aspell6-it-${pkgver}-0"
+ ./configure
+ make
+}
+
+package() {
+ cd "${srcdir}/aspell6-it-${pkgver}-0"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/aspell-nl/PKGBUILD b/extra/aspell-nl/PKGBUILD
new file mode 100644
index 000000000..d0bb9a4af
--- /dev/null
+++ b/extra/aspell-nl/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 116622 2011-03-24 13:11:26Z andrea $
+# Maintainer:
+# Contributor: Simo Leone <simo@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=aspell-nl
+pkgver=0.50.2
+pkgrel=1
+pkgdesc="Dutch dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('custom')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/nl/$pkgname-0.50-2.tar.bz2)
+md5sums=('c3ef9fd7dc4c47d816eee9ef5149c76a')
+
+build() {
+ cd $srcdir/$pkgname-0.50-2
+ ./configure
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-0.50-2
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 Copyright $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/aspell-pt/PKGBUILD b/extra/aspell-pt/PKGBUILD
new file mode 100644
index 000000000..6fac241b7
--- /dev/null
+++ b/extra/aspell-pt/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 116625 2011-03-24 13:14:15Z andrea $
+# Maintainer:
+# Contributor: Simo Leone <simo@archlinux.org>
+# Contributor: jlvsimoes <jlvsimoes@oninet.pt>
+
+pkgname=aspell-pt
+_pkgverPT=20070510
+_pkgverBR=20090702
+pkgver=$_pkgverBR
+pkgrel=2
+pkgdesc="Portuguese and Brazilian Portuguese dictionary for aspell"
+arch=('i686' 'x86_64')
+url="http://aspell.net/"
+license=('GPL2')
+depends=('aspell')
+conflicts=('aspell-pt_br')
+replaces=('aspell-pt_br')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/pt_BR/aspell6-pt_BR-$_pkgverBR-0.tar.bz2
+ ftp://ftp.gnu.org/gnu/aspell/dict/pt_PT/aspell6-pt_PT-$_pkgverPT-0.tar.bz2)
+md5sums=('e082a8956882eb94a67c12e1b8c4a324' 'a54267ce8f91de6e6a1baf1e8048cba0')
+sha1sums=('add1db9a6a908dccaad13a7fd85c3b202299ff26' 'e136c2f411b582897437b06b9068c98ee333be41')
+
+build() {
+ cd "$srcdir/aspell6-pt_BR-$_pkgverBR-0"
+ ./configure
+ make
+
+ cd "$srcdir/aspell6-pt_PT-$_pkgverPT-0"
+ ./configure
+ make
+}
+
+package() {
+ cd "$srcdir/aspell6-pt_BR-$_pkgverBR-0"
+ make DESTDIR="$pkgdir" install
+
+ cd "$srcdir/aspell6-pt_PT-$_pkgverPT-0"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/aspell-ru/PKGBUILD b/extra/aspell-ru/PKGBUILD
new file mode 100644
index 000000000..23b286b01
--- /dev/null
+++ b/extra/aspell-ru/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 106233 2011-01-15 15:11:50Z andrea $
+# Maintainer:
+# Contributor: Simo Leone <simo@archlinux.org>
+# Contributor: Rouslan Solomakhin <rouslan@localnet.com>
+
+pkgname=aspell-ru
+pkgver=0.99f7
+pkgrel=4
+pkgdesc="Russian dictionary for aspell"
+arch=('i686' 'x86_64') #We cannot use 'any' see FS#22443
+url="http://aspell.net/"
+license=('custom')
+depends=('aspell')
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/ru/aspell6-ru-$pkgver-1.tar.bz2)
+md5sums=('c4c98eaa5e77ad3adccbc5c96cb57cb3')
+
+build() {
+ cd $srcdir/aspell6-ru-$pkgver-1
+ ./configure
+ make
+}
+
+package() {
+ cd $srcdir/aspell6-ru-$pkgver-1
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 Copyright $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/aspell/PKGBUILD b/extra/aspell/PKGBUILD
new file mode 100644
index 000000000..7e224400a
--- /dev/null
+++ b/extra/aspell/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 107951 2011-01-28 03:53:36Z eric $
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=aspell
+pkgver=0.60.6
+_pkgmajorver=0.60
+pkgrel=5
+pkgdesc="A spell checker designed to eventually replace Ispell"
+url="http://aspell.net/"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gcc-libs' 'ncurses>=5.6-7')
+optdepends=('perl: to import old dictionaries')
+options=('!libtool')
+install=aspell.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('bc80f0198773d5c05086522be67334eb')
+sha1sums=('335bcb560e00f59d89ec9e4c4114c325fb0e65f4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ ln -s ${pkgname}-${_pkgmajorver} \
+ "${pkgdir}/usr/lib/${pkgname}"
+}
diff --git a/extra/aspell/aspell.install b/extra/aspell/aspell.install
new file mode 100644
index 000000000..5a128ae41
--- /dev/null
+++ b/extra/aspell/aspell.install
@@ -0,0 +1,24 @@
+infodir=/usr/share/info
+filelist=(aspell.info aspell-dev.info)
+
+post_install() {
+ echo "==> aspell comes with no default dictionary"
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/asymptote/PKGBUILD b/extra/asymptote/PKGBUILD
new file mode 100644
index 000000000..57bc2bddd
--- /dev/null
+++ b/extra/asymptote/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 110553 2011-02-19 22:20:32Z remy $
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Firmicus <francois.archlinux.org>
+# Contributor: bender02 at gmx dot com
+
+pkgname=asymptote
+pkgver=2.08
+pkgrel=1
+pkgdesc="A vector graphics language (like metapost)"
+arch=('i686' 'x86_64')
+url="http://asymptote.sourceforge.net/"
+license=("GPL3")
+depends=('texlive-core' 'gc' 'freeglut' 'gsl' 'fftw')
+makedepends=('ghostscript' 'imagemagick')
+optdepends=('python2: for the xasy GUI'
+ 'python-imaging: for the xasy GUI'
+ 'tix: for the xasy GUI')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.src.tgz)
+install=texlive.install
+sha1sums=(6b81336727458f7fdcc3db972f1e63b3bfc1a93b)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --enable-gc=/usr \
+ --prefix=/usr \
+ --with-latex=/usr/share/texmf/tex/latex \
+ --with-context=/usr/share/texmf/tex/context
+ make all
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-all
+ sed -i -e 's@env python@env python2@' ${pkgdir}/usr/share/asymptote/GUI/*.py
+ # this dir contains png files that are already embedded in the pdf documentation:
+ rm -rf ${pkgdir}/usr/share/info/asymptote
+}
diff --git a/extra/asymptote/texlive.install b/extra/asymptote/texlive.install
new file mode 100644
index 000000000..a7e61f209
--- /dev/null
+++ b/extra/asymptote/texlive.install
@@ -0,0 +1,20 @@
+info_dir=usr/share/info
+
+post_install() {
+ install-info ${info_dir}/asy-faq.info.gz ${info_dir}/dir
+ echo ">>> updating the filename database for texlive..."
+ mktexlsr --quiet usr/share/texmf
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ install-info --delete ${info_dir}/asy-faq.info.gz ${info_dir}/dir
+}
+
+post_remove() {
+ echo ">>> updating the filename database for texlive..."
+ mktexlsr --quiet usr/share/texmf
+}
diff --git a/extra/at-spi/PKGBUILD b/extra/at-spi/PKGBUILD
new file mode 100644
index 000000000..1efc2cc0c
--- /dev/null
+++ b/extra/at-spi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 92799 2010-10-01 11:04:27Z allan $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=at-spi
+pkgver=1.32.0
+pkgrel=2
+pkgdesc="Assistive Technology Service Provider Interface"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libbonobo>=2.32.0' 'libxtst' 'gtk2>=2.22.0' 'gconf>=2.31.91')
+makedepends=('pkgconfig' 'python2' 'intltool' 'libice' 'libsm')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=at-spi.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('cc841dea746413eebadf0710dabec741450b37a06821c34526f505fe9d027039')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/at-spi
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain at-spi ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/at-spi/at-spi.install b/extra/at-spi/at-spi.install
new file mode 100644
index 000000000..b4c75b51c
--- /dev/null
+++ b/extra/at-spi/at-spi.install
@@ -0,0 +1,17 @@
+pkgname=at-spi
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/at-spi2-atk/PKGBUILD b/extra/at-spi2-atk/PKGBUILD
new file mode 100644
index 000000000..2b890258f
--- /dev/null
+++ b/extra/at-spi2-atk/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 98652 2010-11-12 00:22:02Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=at-spi2-atk
+pkgver=0.4.0
+pkgrel=2
+pkgdesc="A GTK+ module that bridges ATK to D-Bus at-spi"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('dbus-core>=1.4.0' 'dbus-glib>=0.92' 'atk>=1.32.0' 'gconf>=2.32.0')
+makedepends=('intltool')
+install=at-spi2-atk.install
+options=('!libtool')
+source=(http://download.gnome.org/sources/${pkgname}/0.4/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2e2308cd67fe256e08085e499808f6e41b8d4967d91831ff7f25953898fc5b46')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-schemas-install
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain at-spi2-atk ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/at-spi2-atk/at-spi2-atk.install b/extra/at-spi2-atk/at-spi2-atk.install
new file mode 100644
index 000000000..c0df41a2a
--- /dev/null
+++ b/extra/at-spi2-atk/at-spi2-atk.install
@@ -0,0 +1,17 @@
+pkgname=at-spi2-atk
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/at-spi2-core/PKGBUILD b/extra/at-spi2-core/PKGBUILD
new file mode 100644
index 000000000..73239a514
--- /dev/null
+++ b/extra/at-spi2-core/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 98644 2010-11-12 00:18:31Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=at-spi2-core
+pkgver=0.4.0
+pkgrel=2
+pkgdesc="Protocol definitions and daemon for D-Bus at-spi"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('dbus-core>=1.4.0' 'dbus-glib>=0.92' 'libxtst' 'libxevie')
+source=(http://download.gnome.org/sources/${pkgname}/0.4/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('a579b628cc8c6036c3a57dabed89e2bffb61df1af011bddae68b5d3a9279a66c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/at-spi2-core
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/at/PKGBUILD b/extra/at/PKGBUILD
new file mode 100644
index 000000000..a5ddc81e5
--- /dev/null
+++ b/extra/at/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 67220 2010-02-04 22:36:24Z giovanni $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Todd Musall <tmusall@comcast.net>
+
+pkgname=at
+pkgver=3.1.12
+pkgrel=1
+pkgdesc="AT and batch delayed command scheduling utility and daemon."
+arch=('i686' 'x86_64')
+url="http://www.debian.org"
+license=('GPL')
+depends=('pam')
+makedepends=('ssmtp')
+backup=('etc/at.deny')
+source=(http://ftp.debian.org/debian/pool/main/a/at/at_${pkgver}.orig.tar.gz
+ atd)
+md5sums=('1e67991776148fb319fd77a2e599a765'
+ '35574e34829e7df07a3269d4ab646a29')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-jobdir=/var/spool/atd \
+ --with-atspool=/var/spool/atd || return 1
+ make || return 1
+ make IROOT="${pkgdir}" docdir=/usr/share/doc install || return 1
+ install -D -m755 ${srcdir}/atd "${pkgdir}/etc/rc.d/atd" || return 1
+}
diff --git a/extra/at/atd b/extra/at/atd
new file mode 100644
index 000000000..d10a46a3b
--- /dev/null
+++ b/extra/at/atd
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/atd`
+case "$1" in
+ start)
+ stat_busy "Starting ATD Daemon"
+ [ -z "$PID" ] && /usr/sbin/atd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon atd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ATD Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon atd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/aterm/ChangeLog b/extra/aterm/ChangeLog
new file mode 100644
index 000000000..f099aa027
--- /dev/null
+++ b/extra/aterm/ChangeLog
@@ -0,0 +1,6 @@
+2009-07-28 Eric Belanger <eric@archlinux.org>
+
+ * aterm 1.0.1-2
+ * FHS man pages
+ * Added libxt makedepends
+ * Added ChangeLog
diff --git a/extra/aterm/PKGBUILD b/extra/aterm/PKGBUILD
new file mode 100644
index 000000000..f68bb3065
--- /dev/null
+++ b/extra/aterm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 47932 2009-07-29 18:24:49Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=aterm
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="An xterm replacement with transparency support"
+arch=('i686' 'x86_64')
+url="http://aterm.sourceforge.net/"
+license=('GPL')
+depends=('libxext' 'libsm')
+makedepends=('libxt')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('c2eede028e1011e0ec7035cf319c9b5a')
+sha1sums=('a975753b415306a0734efc3773de8a86129bb54b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-transparency=yes \
+ --enable-background-image --enable-fading --enable-menubar \
+ --enable-graphics || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/atk/PKGBUILD b/extra/atk/PKGBUILD
new file mode 100644
index 000000000..372fb19bc
--- /dev/null
+++ b/extra/atk/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 91408 2010-09-27 08:07:52Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=atk
+pkgver=1.32.0
+pkgrel=1
+pkgdesc="A library providing a set of interfaces for accessibility"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('glib2>=2.25.17')
+makedepends=('pkgconfig' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.32/${pkgname}-${pkgver}.tar.bz2)
+url='http://www.gtk.org/'
+sha256sums=('e9a3e598f75c4db1af914f8b052dd9f7e89e920a96cc187c18eb06b8339cb16e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/atkmm/PKGBUILD b/extra/atkmm/PKGBUILD
new file mode 100644
index 000000000..9c484f6bf
--- /dev/null
+++ b/extra/atkmm/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 79583 2010-05-04 15:21:15Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgbase=atkmm
+pkgname=(atkmm atkmm-docs)
+pkgver=2.22.2
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('atk>=1.32.0' 'glibmm>=2.24.2' 'glibmm-docs>=2.24.2' 'libsigc++')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.22/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('b94666ae0acebea53241fa0b2444468ff66e8a7790dfc7491489a9ad2eeefa34')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_atkmm() {
+ pkgdesc="C++ bindings for atk"
+ depends=('atk>=1.32.0' 'glibmm>=2.24.2' 'libsigc++')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+ make DESTDIR="${pkgdir}" install
+}
+
+package_atkmm-docs() {
+ pkgdesc="Developer documentation for atkmm"
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C doc DESTDIR="${pkgdir}" install
+}
diff --git a/extra/attica/PKGBUILD b/extra/attica/PKGBUILD
new file mode 100644
index 000000000..66000ef1f
--- /dev/null
+++ b/extra/attica/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=attica
+pkgver=0.2.0
+pkgrel=1
+pkgdesc='A library to access Open Collaboration Service providers'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('LGPL')
+depends=('qt')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('df3dcea0229cfa31539bdd427976e15b')
+
+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/extra/aubio/PKGBUILD b/extra/aubio/PKGBUILD
new file mode 100644
index 000000000..4d9498afb
--- /dev/null
+++ b/extra/aubio/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 12257 2008-09-12 03:03:42Z eric $
+# Maintainer: Tobias Kieslich tobias [funnychar] archlinux org
+# AUR-Maintainer: Andrea Scarpino <bash.lnx@gmail.com>
+# Contributor: Peter Baldwin <bald_pete@hotmail.com>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+
+pkgname=aubio
+pkgver=0.3.2
+pkgrel=3
+pkgdesc="A library for audio labelling"
+arch=('i686' 'x86_64')
+url="http://aubio.piem.org/"
+license=('GPL')
+depends=('libsamplerate' 'fftw' 'jack-audio-connection-kit')
+options=('!libtool')
+source=(http://aubio.piem.org/pub/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ffc3e5e4880fec67064f043252263a44')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/extra/audacious/PKGBUILD b/extra/audacious/PKGBUILD
new file mode 100644
index 000000000..7fd520906
--- /dev/null
+++ b/extra/audacious/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 111201 2011-02-24 23:45:10Z bisson $
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=audacious
+pkgver=2.4.4
+pkgrel=1
+pkgdesc='Lightweight, GTK2-based advanced audio player focused on audio quality'
+arch=('i686' 'x86_64')
+url='http://audacious-media-player.org/'
+license=('GPL3')
+depends=('gtk2' 'libmcs' 'dbus-glib' 'libguess' 'audacious-plugins' 'desktop-file-utils' 'hicolor-icon-theme')
+optdepends=('unzip: zipped skins support')
+provides=('audacious-player')
+replaces=('audacious-player')
+install=audacious.install
+source=("http://distfiles.atheme.org/$pkgname-$pkgver.tgz")
+sha1sums=('697b2cc217cef9785cf7ec0c4ee617bc174fbe98')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ [[ $CARCH == x86_64 ]] && extraopts='' || extraopts='--disable-sse2'
+ ./configure --prefix=/usr $extraopts
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/audacious/audacious.install b/extra/audacious/audacious.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/extra/audacious/audacious.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/audacity/ChangeLog b/extra/audacity/ChangeLog
new file mode 100644
index 000000000..3482dda5b
--- /dev/null
+++ b/extra/audacity/ChangeLog
@@ -0,0 +1,45 @@
+2010-04-10 Andrea Scarpino <andrea@archlinux.org>
+
+ * audacity 1.3.12-2
+ * fixed soundtouch dependence
+
+2010-04-10 Andrea Scarpino <andrea@archlinux.org>
+
+ * audacity 1.3.12-1
+ * Upstream update
+
+2010-01-23 Eric Belanger <eric@archlinux.org>
+
+ * audacity 1.3.11-1
+ * Upstream update
+
+2009-12-03 Eric Belanger <eric@archlinux.org>
+
+ * audacity 1.3.10-1
+ * Upstream update
+
+2009-09-02 Eric Belanger <eric@archlinux.org>
+
+ * audacity 1.3.9-1
+ * Upstream update
+ * Fixed icon location
+
+2009-07-17 Eric Belanger <eric@archlinux.org>
+
+ * audacity 1.3.8-1
+ * Upstream update
+ * Updated source url
+ * Improved description
+
+2009-01-30 Eric Belanger <eric@archlinux.org>
+
+ * audacity 1.3.7-1
+ * Upstream update
+ * Updated source url
+
+2008-12-07 Eric Belanger <eric@archlinux.org>
+
+ * audacity 1.3.6-2
+ * Added install scriptlet to update mime database (close FS#11398)
+ * Added soundtouch support (close FS#9056)
+ * Added ChangeLog
diff --git a/extra/audacity/PKGBUILD b/extra/audacity/PKGBUILD
new file mode 100644
index 000000000..b91871346
--- /dev/null
+++ b/extra/audacity/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 77505 2010-04-15 00:21:38Z dgriffiths $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=audacity
+pkgver=1.3.12
+pkgrel=3
+pkgdesc="A program that lets you manipulate digital audio waveforms"
+arch=('i686' 'x86_64')
+url="http://audacity.sourceforge.net/"
+license=('GPL')
+depends=('libvorbis' 'libmad' 'libid3tag' 'wxgtk' 'libsamplerate' 'lame'
+ 'shared-mime-info' 'desktop-file-utils' 'redland' 'jack' 'soundtouch')
+makedepends=('zip' 'python' 'pkgconfig')
+options=('!makeflags')
+install=${pkgname}.install
+source=(http://audacity.googlecode.com/files/${pkgname}-minsrc-${pkgver}-beta.tar.bz2
+ audacity-ffmpeg.patch)
+md5sums=('76996fec67181ca82ba191e012518b57'
+ '52cd58c39078d78a96e972df4c3c41f6')
+
+build() {
+ cd ${srcdir}/${pkgname}-src-${pkgver}-beta
+
+ patch -p0 < ${srcdir}/audacity-ffmpeg.patch || return 1
+
+ WX_CONFIG=/usr/bin/wx-config \
+ ./configure --prefix=/usr \
+ --with-portaudio=v19 --with-libsamplerate=system \
+ --without-libresample --with-libmad=system \
+ --with-id3tag=system --with-flac=system \
+ --with-vorbis=system --with-libexpat=system \
+ --with-libsndfile=system --with-soundtouch \
+ --enable-unicode --without-taglib || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-src-${pkgver}-beta
+
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/audacity/audacity-ffmpeg.patch b/extra/audacity/audacity-ffmpeg.patch
new file mode 100644
index 000000000..cf0103c61
--- /dev/null
+++ b/extra/audacity/audacity-ffmpeg.patch
@@ -0,0 +1,31 @@
+--- src/FFmpeg.cpp.original 2010-04-14 14:59:48.000000000 +0200
++++ src/FFmpeg.cpp 2010-04-14 15:25:52.136755669 +0200
+@@ -341,7 +341,7 @@
+ }
+ // Otherwize, resort to extension matching if available
+ else if (fmt1->extensions) {
+- if (FFmpegLibsInst->match_ext(filename, fmt1->extensions)) {
++ if (FFmpegLibsInst->av_match_ext(filename, fmt1->extensions)) {
+ score = 50;
+ }
+ }
+@@ -814,7 +814,7 @@
+ INITDYN(avformat,av_open_input_file);
+ INITDYN(avformat,av_open_input_stream);
+ INITDYN(avformat,get_buffer);
+- INITDYN(avformat,match_ext);
++ INITDYN(avformat,av_match_ext);
+
+ #if FFMPEG_STABLE
+ INITDYN(avformat,av_init_packet);
+--- src/FFmpeg.h.original 2010-04-14 14:59:48.000000000 +0200
++++ src/FFmpeg.h 2010-04-14 15:26:39.932590241 +0200
+@@ -222,7 +222,7 @@
+ AVStream* (*av_new_stream) (AVFormatContext *s, int id);
+ AVFormatContext* (*av_alloc_format_context) (void);
+ AVOutputFormat* (*guess_format) (const char *short_name, const char *filename, const char *mime_type);
+- int (*match_ext) (const char *filename, const char *extensions);
++ int (*av_match_ext) (const char *filename, const char *extensions);
+ int (*av_write_trailer) (AVFormatContext *s);
+ int (*av_interleaved_write_frame) (AVFormatContext *s, AVPacket *pkt);
+ int (*av_write_frame) (AVFormatContext *s, AVPacket *pkt);
diff --git a/extra/audacity/audacity.install b/extra/audacity/audacity.install
new file mode 100644
index 000000000..41f09f887
--- /dev/null
+++ b/extra/audacity/audacity.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/audiofile/PKGBUILD b/extra/audiofile/PKGBUILD
new file mode 100644
index 000000000..70d3364d9
--- /dev/null
+++ b/extra/audiofile/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 78833 2010-04-28 13:14:52Z jgc $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=audiofile
+pkgver=0.2.7
+pkgrel=1
+pkgdesc="Silicon Graphics Audio File Library"
+arch=('i686' 'x86_64')
+url="http://www.68k.org/~michael/audiofile/"
+license=('LGPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('61efd278627415b5468426fc9e52aef32ea0fdac12b56bcdd72734c2ece5945e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/aufs2-util/PKGBUILD b/extra/aufs2-util/PKGBUILD
new file mode 100644
index 000000000..232c167e7
--- /dev/null
+++ b/extra/aufs2-util/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 107424 2011-01-24 19:08:46Z tpowa $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Paul Mattal <pjmattal@elys.com>
+pkgname=aufs2-util
+pkgver=20110124
+pkgrel=1
+pkgdesc="Another Unionfs Implementation that supports NFS branches"
+arch=('i686' 'x86_64')
+url="http://aufs.sourceforge.net/"
+license=('GPL2')
+depends=('glibc')
+makedepends=('aufs2>=2.6.37_20110124' 'kernel26-headers')
+replaces=('aufs-utils')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+md5sums=('6272b6f28477bb8bf90ed43e66564e7a')
diff --git a/extra/aufs2-util/create-tarball.sh b/extra/aufs2-util/create-tarball.sh
new file mode 100755
index 000000000..dbd7c50bf
--- /dev/null
+++ b/extra/aufs2-util/create-tarball.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+GITSNAPSHOT=20110124
+# aufs2 (no -xx) for the latest -rc version.
+git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-util.git aufs2-util.git
+cd aufs2-util.git
+#git checkout origin/aufs2${AUFS2VERSION}
+git checkout origin/aufs2.1
+cd ..
+rm -rf aufs2-util-${GITSNAPSHOT}
+cp -a aufs2-util.git aufs2-util-${GITSNAPSHOT}
+tar -czf aufs2-util-${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-util-${GITSNAPSHOT}
diff --git a/extra/autogen/PKGBUILD b/extra/autogen/PKGBUILD
new file mode 100644
index 000000000..86b53662c
--- /dev/null
+++ b/extra/autogen/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 54699 2009-10-11 18:34:42Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@soufly.nl>
+# Contributor: Tor Krill
+
+pkgname=autogen
+pkgver=5.9.9
+pkgrel=1
+pkgdesc="A tool designed to simplify the creation and maintenance of programs that contain large amounts of repetitious text"
+arch=(i686 x86_64)
+url="http://autogen.sourceforge.net/"
+license=('GPL3')
+depends=('guile>=1.8.6' 'libxml2>=2.7.3' 'libtool>=2.2.6a')
+options=('!libtool' '!makeflags')
+install=autogen.install
+source=(http://downloads.sourceforge.net/autogen/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('da6c6185473d8b2d7c83e583f4213018')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/autogen/autogen.install b/extra/autogen/autogen.install
new file mode 100644
index 000000000..181c2567c
--- /dev/null
+++ b/extra/autogen/autogen.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(autogen.info autogen.info-1 autogen.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/${file}.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/${file}.gz $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/automoc4/PKGBUILD b/extra/automoc4/PKGBUILD
new file mode 100644
index 000000000..f62279efd
--- /dev/null
+++ b/extra/automoc4/PKGBUILD
@@ -0,0 +1,28 @@
+# $ Id: $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=automoc4
+pkgver=0.9.88
+pkgrel=1
+pkgdesc="KDE automoc4"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('custom')
+depends=('qt>=4.4')
+makedepends=('pkgconfig' 'cmake')
+source=("ftp://ftp.archlinux.org/other/automoc4/automoc4-${pkgver}.tar.bz2")
+md5sums=('adffb45ea2b550f284b1e3455f525176')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+ make DESTDIR=$pkgdir install
+
+ grep -A 21 '^ Copyright' ${srcdir}/${pkgname}-${pkgver}/kde4automoc.cpp > license.txt
+ install -D license.txt ${pkgdir}/usr/share/licenses/automoc4/license.txt
+}
diff --git a/extra/autopano-sift-c/PKGBUILD b/extra/autopano-sift-c/PKGBUILD
new file mode 100644
index 000000000..35a5d7fdc
--- /dev/null
+++ b/extra/autopano-sift-c/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 96768 2010-10-24 16:49:43Z ibiru $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=autopano-sift-c
+pkgver=2.5.1
+pkgrel=2
+pkgdesc="Identify key feature points within arbitrary images"
+arch=('i686' 'x86_64')
+url="http://hugin.sourceforge.net/"
+license=('GPL2')
+depends=('libxml2' 'libpano13>=2.9.17' 'gcc-libs')
+makedepends=('cmake')
+provides=('autopano-sift')
+conflicts=('autopano-sift')
+replaces=('autopano-sift')
+source=(http://downloads.sourceforge.net/sourceforge/hugin/autopano-sift-C-${pkgver}.tar.gz)
+md5sums=('b9bade07e8c4f2ea383c22a082c260e0')
+
+build() {
+ cd "${srcdir}/autopano-sift-C-${pkgver}"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr .
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/avahi/ChangeLog b/extra/avahi/ChangeLog
new file mode 100644
index 000000000..57984a3b2
--- /dev/null
+++ b/extra/avahi/ChangeLog
@@ -0,0 +1,17 @@
+
+2009-04-23 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 0.6.25
+
+2009-03-21 Eric Belanger <eric@archlinux.org>
+
+ * Added optdepends for avahi-discover (close FS#11250)
+
+2009-01-04 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 0.6.24
+
+2008-07-22 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 0.6.23
+
diff --git a/extra/avahi/PKGBUILD b/extra/avahi/PKGBUILD
new file mode 100644
index 000000000..cc9bf71af
--- /dev/null
+++ b/extra/avahi/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 113561 2011-03-09 18:23:43Z bisson $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=avahi
+pkgver=0.6.29
+pkgrel=1
+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=('gtk2: avahi-discover-standalone, bshell, bssh, bvnc'
+ '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')
+backup=(etc/avahi/avahi-daemon.conf etc/avahi/services/{sftp-,}ssh.service)
+install=avahi.install
+conflicts=('howl' 'mdnsresponder')
+provides=('howl' 'mdnsresponder')
+replaces=('howl' 'mdnsresponder')
+options=('!libtool')
+source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz
+ avahi-daemon-dbus.patch
+ gnome-nettool.png)
+sha1sums=('af13ae6fdb3cd61b2eafa25a108773156d88b362'
+ '41e9f23efa0b5a5f7b0f14a86cfb0677ece84c61'
+ 'cf56387c88aed246b9f435efc182ef44de4d52f3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
+ patch -Np0 -i "${srcdir}/avahi-daemon-dbus.patch"
+
+ # pygtk requires python2; make it explicit in case other python are installed: FS#21865
+ PYTHON=python2 \
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-gtk3 \
+ --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
+
+ # howl and mdnsresponder compatability
+ cd "${pkgdir}"/usr/include
+ ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h
+ ln -s avahi-compat-howl howl
+ cd "${pkgdir}"/usr/lib/pkgconfig
+ ln -s avahi-compat-howl.pc howl.pc
+
+ sed -i '1c #!/usr/bin/python2' "$pkgdir"/usr/bin/avahi-{bookmarks,discover}
+
+ install -D -m 644 "${srcdir}"/gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
+}
diff --git a/extra/avahi/avahi-daemon-dbus.patch b/extra/avahi/avahi-daemon-dbus.patch
new file mode 100644
index 000000000..a168f0387
--- /dev/null
+++ b/extra/avahi/avahi-daemon-dbus.patch
@@ -0,0 +1,11 @@
+--- initscript/archlinux/avahi-daemon.in 2010-08-17 22:23:46.510293144 +0200
++++ initscript/archlinux/avahi-daemon.in 2010-08-17 22:46:58.110163026 +0200
+@@ -33,6 +35,8 @@
+
+ case "$1" in
+ start)
++ ck_daemon dbus && /etc/rc.d/dbus start
++ modprobe capability &> /dev/null
+ stat_busy "Starting $DESC"
+ $DAEMON -D > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
diff --git a/extra/avahi/avahi.install b/extra/avahi/avahi.install
new file mode 100644
index 000000000..7c75c3dd4
--- /dev/null
+++ b/extra/avahi/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/extra/avahi/gnome-nettool.png b/extra/avahi/gnome-nettool.png
new file mode 100644
index 000000000..227d0678a
--- /dev/null
+++ b/extra/avahi/gnome-nettool.png
Binary files differ
diff --git a/extra/avfs/PKGBUILD b/extra/avfs/PKGBUILD
new file mode 100644
index 000000000..a647b1185
--- /dev/null
+++ b/extra/avfs/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 104091 2010-12-28 18:22:31Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: K. Piche <kpiche@rogers.com>
+
+pkgname=avfs
+pkgver=0.9.9
+pkgrel=1
+pkgdesc="A virtual filesystem which enables programs to look inside archived or compressed files, or access remote files"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://avf.sourceforge.net/"
+source=(http://downloads.sourceforge.net/sourceforge/avf/${pkgname}-${pkgver}.tar.bz2)
+options=(!emptydirs !libtool)
+depends=('fuse' 'sh')
+md5sums=('3e0df074188a6c4ed9df082f61cc6bf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-library --enable-fuse --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/avidemux/2.5.4_audioDevice.patch b/extra/avidemux/2.5.4_audioDevice.patch
new file mode 100644
index 000000000..9f1dd1e84
--- /dev/null
+++ b/extra/avidemux/2.5.4_audioDevice.patch
@@ -0,0 +1,12 @@
+--- cmake/config.h.cmake.orig 2010-10-29 12:51:05.000000000 -0400
++++ cmake/config.h.cmake 2010-10-29 12:51:48.000000000 -0400
+@@ -76,9 +76,7 @@
+ /* use Nvwa memory leak detector */
+ #cmakedefine FIND_LEAKS
+
+-#if defined(OSS_SUPPORT) || defined (USE_ARTS) || defined(USE_SDL) || defined(__APPLE__) || defined(__WIN32) || defined(ALSA_SUPPORT)
+ #define HAVE_AUDIO
+-#endif
+
+ #define HAVE_ENCODER
+
diff --git a/extra/avidemux/PKGBUILD b/extra/avidemux/PKGBUILD
new file mode 100644
index 000000000..3f34eaf4f
--- /dev/null
+++ b/extra/avidemux/PKGBUILD
@@ -0,0 +1,121 @@
+# $Id: PKGBUILD 117286 2011-03-30 16:57:22Z ibiru $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgbase=avidemux
+pkgname=('avidemux-cli' 'avidemux-gtk' 'avidemux-qt')
+pkgver=2.5.4
+pkgrel=4
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://fixounet.free.fr/avidemux/"
+makedepends=('cmake' 'libxslt' 'gtk2' 'qt' 'jack' 'esound' 'libvorbis' 'sdl' 'libxv' \
+ 'alsa-lib' 'lame' 'xvidcore' 'faad2' 'faac' 'x264' 'libsamplerate' \
+ 'opencore-amr' 'yasm' 'mesa' 'libvpx')
+source=(http://downloads.sourceforge.net/avidemux/avidemux_${pkgver}.tar.gz 2.5.4_audioDevice.patch
+ x264.patch)
+md5sums=('b849460f6480df92bfd72d1a3dc288d4'
+ 'ef375051a12c911c6bd8a7bf85b76330'
+ '0d01294b8171a856f718ab8131bea074')
+
+build() {
+ cd "${srcdir}/${pkgbase}_${pkgver}"
+
+ #gcc 4.6 workaround
+ export CXXFLAGS="$CXXFLAGS -fpermissive"
+ patch -p0 < ../2.5.4_audioDevice.patch
+ patch -Np1 -i "${srcdir}/x264.patch"
+ mkdir build
+ cd build
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_RPATH=ON -D GTK=1 -D QT4=1 ..
+ make
+
+# plugin build expects libraries to be already installed; we fake a prefix
+# in build/ by symlinking all libraries to build/lib/
+ mkdir -p lib
+ cd lib
+ find ../avidemux -name '*.so*' | xargs ln -sft .
+ cd ../../plugins
+ mkdir build
+ cd build
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D AVIDEMUX_SOURCE_DIR=${srcdir}/avidemux_${pkgver} \
+ -D AVIDEMUX_CORECONFIG_DIR=${srcdir}/avidemux_${pkgver}/build/config \
+ -D AVIDEMUX_INSTALL_PREFIX=${srcdir}/avidemux_${pkgver}/build \
+ -D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_RPATH=ON ..
+ make
+}
+
+package_avidemux-cli() {
+ pkgdesc="A graphical tool to edit video (filter/re-encode/split)"
+ depends=('libxml2' 'sdl' 'fontconfig' 'libvpx')
+ optdepends=('lame: for the corresponding audio encoder plugin'
+ 'faac: for the corresponding audio encoder plugin'
+ 'faad2: for the corresponding audio decoder plugin'
+ 'opencore-amr: for the corresponding audio decoder plugin'
+ 'esound: for the corresponding audio device plugin'
+ 'jack: for the corresponding audio device plugin'
+ 'sdl: for the corresponding audio device plugin'
+ 'x264: for the corresponding video encoder plugin'
+ 'xvidcore: for the corresponding video encoder plugin')
+ provides=('avidemux')
+ conflicts=('avidemux')
+ replaces=('avidemux')
+
+ cd "${srcdir}/${pkgbase}_${pkgver}/build"
+ make DESTDIR="${pkgdir}" install
+
+ cd "${srcdir}/${pkgbase}_${pkgver}/plugins/build"
+ make DESTDIR="${pkgdir}" install
+ rm -r "${pkgdir}"/usr/share/avidemux
+ rm "${pkgdir}"/usr/bin/avidemux2_{gtk,qt4}
+ rm "${pkgdir}"/usr/lib/*{_gtk,_qt4,Gtk,QT4}.so
+ rm "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/x264/*{Gtk,Qt}.so
+ rm "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/xvid/*{Gtk,Qt}.so
+ rm "${pkgdir}"/usr/lib/ADM_plugins/videoFilter/*{_gtk,_qt4}.so
+
+ ln -s /usr/lib/ADM_plugins/videoEncoder/libADM_vidEnc_xvid.so "${pkgdir}/usr/lib/libADM_vidEnc_xvid.so"
+ ln -s /usr/lib/ADM_plugins/videoEncoder/libADM_vidEnc_x264.so "${pkgdir}/usr/lib/libADM_vidEnc_x264.so"
+
+ install -D -m644 ../../avidemux_icon.png "${pkgdir}/usr/share/pixmaps/avidemux.png"
+ install -D -m644 ../../man/avidemux.1 "${pkgdir}/usr/share/man/man1/avidemux.1"
+}
+
+package_avidemux-gtk() {
+ pkgdesc="A graphical tool to edit video (filter/re-encode/split) - GTK GUI"
+ depends=("avidemux-cli=${pkgver}" 'gtk2' 'libxv')
+
+ cd "${srcdir}/${pkgbase}_${pkgver}"
+ install -D -m755 build/avidemux/avidemux2_gtk "${pkgdir}/usr/bin/avidemux2_gtk"
+
+ install -d "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/{x264,xvid}
+ install -d "${pkgdir}"/usr/lib/ADM_plugins/videoFilter
+
+ install -D -m755 build/lib/*{_gtk,Gtk}.so "${pkgdir}/usr/lib"
+ install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_x264/gtk/*Gtk.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/x264"
+ install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_xvid/gtk/*Gtk.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/xvid"
+ install -D -m755 plugins/build/ADM_videoFilters/*/*_gtk.so "${pkgdir}/usr/lib/ADM_plugins/videoFilter"
+
+ install -D -m644 avidemux2-gtk.desktop "${pkgdir}/usr/share/applications/avidemux-gtk.desktop"
+ sed -i "s|\[\$e\]||" "${pkgdir}/usr/share/applications/avidemux-gtk.desktop"
+}
+
+package_avidemux-qt() {
+ pkgdesc="A graphical tool to edit video (filter/re-encode/split) - QT GUI"
+ depends=("avidemux-cli=${pkgver}" 'qt')
+
+ cd "${srcdir}/${pkgbase}_${pkgver}"
+ install -D -m755 build/avidemux/avidemux2_qt4 "${pkgdir}/usr/bin/avidemux2_qt4"
+ install -d "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/{x264,xvid}
+ install -d "${pkgdir}"/usr/lib/ADM_plugins/videoFilter
+
+ install -D -m755 build/lib/*{_qt4,QT4}.so "${pkgdir}/usr/lib"
+ install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_x264/qt4/*Qt.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/x264"
+ install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_xvid/qt4/*Qt.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/xvid"
+ install -D -m755 plugins/build/ADM_videoFilters/*/*_qt4.so "${pkgdir}/usr/lib/ADM_plugins/videoFilter"
+
+ install -d "${pkgdir}/usr/share/avidemux/i18n"
+ install -D -m644 build/po/*.qm "${pkgdir}/usr/share/avidemux/i18n"
+
+ install -D -m644 avidemux2.desktop "${pkgdir}/usr/share/applications/avidemux-qt.desktop"
+ sed -i 's/Name=avidemux2/Name=avidemux (QT)/' "${pkgdir}/usr/share/applications/avidemux-qt.desktop"
+ sed -i 's/avidemux2_gtk/avidemux2_qt4/' "${pkgdir}/usr/share/applications/avidemux-qt.desktop"
+}
diff --git a/extra/avidemux/x264.patch b/extra/avidemux/x264.patch
new file mode 100644
index 000000000..7200153d1
--- /dev/null
+++ b/extra/avidemux/x264.patch
@@ -0,0 +1,21 @@
+diff -Nur avidemux_2.5.4.orig/plugins/ADM_videoEncoder/ADM_vidEnc_x264/x264Options.cpp avidemux_2.5.4/plugins/ADM_videoEncoder/ADM_vidEnc_x264/x264Options.cpp
+--- avidemux_2.5.4.orig/plugins/ADM_videoEncoder/ADM_vidEnc_x264/x264Options.cpp 2010-10-10 06:45:42.000000000 -0700
++++ avidemux_2.5.4/plugins/ADM_videoEncoder/ADM_vidEnc_x264/x264Options.cpp 2011-01-16 07:16:48.283341102 -0800
+@@ -1386,7 +1386,7 @@
+ case X264_WEIGHTP_NONE:
+ strcpy((char*)xmlBuffer, "none");
+ break;
+- case X264_WEIGHTP_BLIND:
++ case X264_WEIGHTP_SIMPLE:
+ strcpy((char*)xmlBuffer, "blind");
+ break;
+ case X264_WEIGHTP_SMART:
+@@ -1896,7 +1896,7 @@
+ int weightedPredPFrames = X264_WEIGHTP_NONE;
+
+ if (strcmp(content, "blind") == 0)
+- weightedPredPFrames = X264_WEIGHTP_BLIND;
++ weightedPredPFrames = X264_WEIGHTP_SIMPLE;
+ else if (strcmp(content, "smart") == 0)
+ weightedPredPFrames = X264_WEIGHTP_SMART;
+
diff --git a/extra/avogadro/PKGBUILD b/extra/avogadro/PKGBUILD
new file mode 100644
index 000000000..bd8023903
--- /dev/null
+++ b/extra/avogadro/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 111981 2011-03-02 21:41:10Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+
+pkgname=avogadro
+pkgver=1.0.1
+pkgrel=8
+pkgdesc="An advanced molecular editor based on Qt"
+arch=('i686' 'x86_64')
+url="http://avogadro.openmolecules.net/wiki/Main_Page"
+license=('GPL2')
+depends=('eigen' 'openbabel' 'python2-qt' 'boost-libs' 'glew' 'python2-numpy')
+makedepends=('cmake' 'boost')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'sip-4.11.patch'
+ 'fix-pycapsule.patch')
+md5sums=('0d5c391197101f0aab7be6b59f81e6fd'
+ 'e78c3f96d0dc702947f75de1c094f580'
+ '45b0f3be5913575311e92b74a5520966')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/sip-4.11.patch
+ patch -Np1 -i ${srcdir}/fix-pycapsule.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+
+ # use the cmake module in system to enable python 2.7 support
+ rm ../${pkgname}-${pkgver}/cmake/modules/FindPythonLibs.cmake
+
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/cmake/modules/FindAvogadro.cmake \
+ ${pkgdir}/usr/share/cmake-2.8/Modules/FindAvogadro.cmake
+}
diff --git a/extra/avogadro/fix-pycapsule.patch b/extra/avogadro/fix-pycapsule.patch
new file mode 100644
index 000000000..de4e2ca75
--- /dev/null
+++ b/extra/avogadro/fix-pycapsule.patch
@@ -0,0 +1,23 @@
+--- avogadro-1.0.1/libavogadro/src/python/sip.cpp 2010-05-02 17:31:22.000000000 +0100
++++ avogadro-1.0.1-pycapsule/libavogadro/src/python/sip.cpp 2010-11-23 19:00:09.000000000 +0000
+@@ -62,12 +62,20 @@ bool init_sip_api()
+ return false;
+ }
+
++#ifdef SIP_USE_PYCAPSULE
++ if (!PyCapsule_IsValid(sip_capi_obj.ptr(), "sip._C_API")) {
++#else
+ if (!PyCObject_Check(sip_capi_obj.ptr())) {
++#endif
+ std::cout << "The _C_API object in the sip python module is invalid." << std::endl;
+ return false;
+ }
+
++#ifdef SIP_USE_PYCAPSULE
++ sip_API = reinterpret_cast<const sipAPIDef*>(PyCapsule_GetPointer(sip_capi_obj.ptr(), "sip._C_API"));
++#else
+ sip_API = reinterpret_cast<const sipAPIDef*>(PyCObject_AsVoidPtr(sip_capi_obj.ptr()));
++#endif
+
+ return true;
+ }
diff --git a/extra/avogadro/sip-4.11.patch b/extra/avogadro/sip-4.11.patch
new file mode 100644
index 000000000..0cd1e5b94
--- /dev/null
+++ b/extra/avogadro/sip-4.11.patch
@@ -0,0 +1,34 @@
+diff -ur avogadro-1.0.1/cmake/modules/PythonDeps.cmake avogadro-1.0.1-sip411/cmake/modules/PythonDeps.cmake
+--- avogadro-1.0.1/cmake/modules/PythonDeps.cmake 2010-05-02 18:31:22.000000000 +0200
++++ avogadro-1.0.1-sip411/cmake/modules/PythonDeps.cmake 2010-09-14 19:11:50.000000000 +0200
+@@ -59,10 +59,13 @@
+ if (EXISTS ${PYTHON_INCLUDE_PATH}/sip.h)
+ message(STATUS "Found sip.h header...")
+ execute_process(COMMAND sip -V OUTPUT_VARIABLE SIP_VERSION)
+- if (${SIP_VERSION} VERSION_GREATER "4.8")
++ if (NOT ${SIP_VERSION} VERSION_LESS "4.11")
++ message(STATUS "using sip version 4.11 or above...")
++ add_definitions( -DSIP_4_11 -DSIP_4_8 )
++ elseif (NOT ${SIP_VERSION} VERSION_LESS "4.8")
+ message(STATUS "using sip version 4.8 or above...")
+ add_definitions( -DSIP_4_8 )
+- endif (${SIP_VERSION} VERSION_GREATER "4.8")
++ endif (NOT ${SIP_VERSION} VERSION_LESS "4.11")
+ else (EXISTS ${PYTHON_INCLUDE_PATH}/sip.h)
+ message(STATUS "sip.h header NOT found - Python support disabled")
+ # message(STATUS "debian/ubuntu: install the python-sip4-dev package.")
+diff -ur avogadro-1.0.1/libavogadro/src/python/sip.cpp avogadro-1.0.1-sip411/libavogadro/src/python/sip.cpp
+--- avogadro-1.0.1/libavogadro/src/python/sip.cpp 2010-05-02 18:31:22.000000000 +0200
++++ avogadro-1.0.1-sip411/libavogadro/src/python/sip.cpp 2010-09-14 19:13:31.000000000 +0200
+@@ -204,7 +204,11 @@
+ sipWrapper *wrapper = reinterpret_cast<sipWrapper*>(obj_ptr);
+ #endif
+ // return the C++ pointer
++#ifdef SIP_4_11
++ return sip_API->api_get_address(wrapper);
++#else
+ return wrapper->u.cppPtr;
++#endif
+ }
+
+ QClass_converters()
diff --git a/extra/babl/PKGBUILD b/extra/babl/PKGBUILD
new file mode 100644
index 000000000..f8db47877
--- /dev/null
+++ b/extra/babl/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 108536 2011-02-01 06:59:18Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=babl
+pkgver=0.1.4
+pkgrel=1
+pkgdesc="Dynamic, any to any, pixel format conversion library"
+arch=('i686' 'x86_64')
+url="http://gegl.org/babl/"
+license=('LGPL3')
+depends=('glibc')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gimp.org/pub/babl/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('1deaf8188b200b10d98a343a7e712b2b')
+sha1sums=('9f7186e5d968a4c9d81a63b20836b163f56df616')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/banshee/PKGBUILD b/extra/banshee/PKGBUILD
new file mode 100644
index 000000000..fb5bb5f2a
--- /dev/null
+++ b/extra/banshee/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 110386 2011-02-19 06:36:31Z eric $
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=banshee
+_pkgname=banshee-1
+pkgver=1.8.1
+pkgrel=1
+pkgdesc="Music management and playback for GNOME"
+arch=('i686' 'x86_64')
+url="http://banshee.fm/"
+license=('MIT')
+depends=('libxxf86vm' 'gnome-desktop>=2.28' 'mono-addins>=0.3.1' 'notify-sharp-svn' 'boo>=0.8.1' 'libwebkit>=1.2.2' 'gdata-sharp>=1.4' 'gtk-sharp-beans' 'gudev-sharp' 'gkeyfile-sharp' 'taglib-sharp>=2.0.3.7' 'gnome-sharp' 'libmtp>=0.2.0' 'libgpod>=0.7.95' 'mono-zeroconf>=0.8.0' 'gstreamer0.10-base-plugins>=0.10.25.2' 'desktop-file-utils' 'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('intltool>=0.35.0' 'gnome-doc-utils>=0.17.3')
+optdepends=('gstreamer0.10-good-plugins: Extra media codecs'
+ 'gstreamer0.10-ugly-plugins: Extra media codecs'
+ 'gstreamer0.10-bad-plugins: Extra media codecs'
+ 'gstreamer0.10-ffmpeg: Extra media codecs'
+ 'brasero: CD burning')
+options=('!libtool')
+install=$pkgname.install
+source=(http://download.banshee.fm/$pkgname/stable/$pkgver/$_pkgname-$pkgver.tar.bz2)
+md5sums=('15311add4f943300701d7da3b488452e')
+sha1sums=('534f42be30f875560c95ab059cec6d46254df9ba')
+
+build() {
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$_pkgname-$pkgver"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-docs \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-ipod --disable-hal \
+ --with-vendor-build-id=ArchLinux
+ make
+}
+
+package() {
+ export MONO_SHARED_DIR="$srcdir/.wabi"
+ mkdir -p "$MONO_SHARED_DIR"
+
+ cd "$srcdir/$_pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ install -m755 -d "$pkgdir"/usr/share/licenses/"$pkgname"
+ install -m644 COPYING "$pkgdir"/usr/share/licenses/${pkgname}/
+}
diff --git a/extra/banshee/banshee.install b/extra/banshee/banshee.install
new file mode 100644
index 000000000..1d0fd332b
--- /dev/null
+++ b/extra/banshee/banshee.install
@@ -0,0 +1,15 @@
+pkgname=banshee
+
+post_install() {
+ update-desktop-database -q
+ update-mime-database usr/share/mime &> /dev/null
+ xdg-icon-resource forceupdate
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/barcode/PKGBUILD b/extra/barcode/PKGBUILD
new file mode 100644
index 000000000..99dcd7755
--- /dev/null
+++ b/extra/barcode/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115997 2011-03-22 15:15:09Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=barcode
+pkgver=0.98
+pkgrel=3
+pkgdesc="A tool to convert text strings to printed bars"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/barcode/"
+license=('GPL')
+depends=('glibc')
+install=barcode.install
+source=("ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('7f10c3307b84a19a4ab2fa4b3f2974da')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" MAN1DIR="${pkgdir}/usr/share/man/man1" \
+ MAN3DIR="${pkgdir}/usr/share/man/man3" INFODIR="${pkgdir}/usr/share/info" install || return 1
+ gzip ${pkgdir}/usr/share/info/barcode.info
+}
diff --git a/extra/barcode/barcode.install b/extra/barcode/barcode.install
new file mode 100644
index 000000000..2f566fcfd
--- /dev/null
+++ b/extra/barcode/barcode.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(barcode.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/basket/PKGBUILD b/extra/basket/PKGBUILD
new file mode 100644
index 000000000..0ad964ea1
--- /dev/null
+++ b/extra/basket/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 94445 2010-10-07 10:25:17Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: lucke <lucke at o2 dot pl>
+
+pkgname=basket
+pkgver=1.81
+pkgrel=1
+pkgdesc="All-purpose notes taker for KDE."
+arch=('i686' 'x86_64')
+url="http://basket.kde.org/"
+depends=('kdelibs' 'gpgme' 'qimageblitz' 'hicolor-icon-theme')
+makedepends=('cmake' 'automoc4')
+install=$pkgname.install
+license=('GPL')
+source=(http://basket.kde.org/downloads/$pkgname-$pkgver.tar.bz2)
+md5sums=('cbb1bc5ca7c2ad1485c433c00a8f65a1')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/extra/basket/basket.install b/extra/basket/basket.install
new file mode 100644
index 000000000..3e1f2f1f5
--- /dev/null
+++ b/extra/basket/basket.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/extra/bc/PKGBUILD b/extra/bc/PKGBUILD
new file mode 100644
index 000000000..7c7337580
--- /dev/null
+++ b/extra/bc/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 58245 2009-11-06 14:34:42Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=bc
+pkgver=1.06
+pkgrel=7
+pkgdesc="An arbitrary precision calculator language"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/bc/"
+license=('GPL')
+depends=('readline')
+replaces=('bc-readline')
+conflicts=('bc-readline')
+install=bc.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ build-fix.patch bc-1.06-info-dir-entry.patch)
+md5sums=('d44b5dddebd8a7a7309aea6c36fda117' 'fc7ecbd9e55ef04c6d3a495692626116'\
+ 'b6fe9869830aca0d34badf810fe0cfb3')
+sha1sums=('c8f258a7355b40a485007c40865480349c157292' '3af67c59e2232b9329ff0c1cf49d1a8a1cf87cd7'\
+ 'c15c2a301ba80cf4d3c03a6e164f4e57fa86e4a2')
+
+build() {
+ CFLAGS="$CFLAGS -O3"
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/build-fix.patch" || return 1
+ patch -p1 -i "${srcdir}/bc-1.06-info-dir-entry.patch" || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --infodir=/usr/share/info --with-readline || return 1
+ make LEX="flex -I" || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/bc/bc-1.06-info-dir-entry.patch b/extra/bc/bc-1.06-info-dir-entry.patch
new file mode 100644
index 000000000..8c1344c82
--- /dev/null
+++ b/extra/bc/bc-1.06-info-dir-entry.patch
@@ -0,0 +1,11 @@
+--- bc-1.06/doc/bc.info.info-dir-entry 2000-10-03 20:36:31.000000000 +0200
++++ bc-1.06/doc/bc.info 2003-01-06 14:07:40.000000000 +0100
+@@ -1,5 +1,8 @@
+ This is bc.info, produced by makeinfo version 4.0 from bc.texi.
+
++START-INFO-DIR-ENTRY
++* bc: (bc). Arbritrary precision calculator language.
++END-INFO-DIR-ENTRY
+ 
+ File: bc.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
+
diff --git a/extra/bc/bc.install b/extra/bc/bc.install
new file mode 100644
index 000000000..e1e2eaa00
--- /dev/null
+++ b/extra/bc/bc.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(bc.info.gz dc.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/bc/build-fix.patch b/extra/bc/build-fix.patch
new file mode 100644
index 000000000..98a40820a
--- /dev/null
+++ b/extra/bc/build-fix.patch
@@ -0,0 +1,13 @@
+diff -wbBur bc-1.06/bc/scan.l bc-1.06.my/bc/scan.l
+--- bc-1.06/bc/scan.l 2000-09-13 22:25:47 +0400
++++ bc-1.06.my/bc/scan.l 2006-12-25 12:39:34 +0300
+@@ -143,7 +143,9 @@
+
+ /* Definitions for readline access. */
+ extern FILE *rl_instream;
++#if 0
+ _PROTOTYPE(char *readline, (char *));
++#endif
+
+ /* rl_input puts upto MAX characters into BUF with the number put in
+ BUF placed in *RESULT. If the yy input file is the same as
diff --git a/extra/bdf-unifont/LICENSE b/extra/bdf-unifont/LICENSE
new file mode 100644
index 000000000..066ea1699
--- /dev/null
+++ b/extra/bdf-unifont/LICENSE
@@ -0,0 +1,60 @@
+CENSE
+-------
+Roman Czyborra released his work (Perl scripts and font .hex files)
+under the following terms:
+
+ All of my works you find here are freeware. You may
+ freely copy, use, quote, modify or redistribute them
+ as long as you properly attribute my contribution and
+ have given a quick thought about whether Roman might
+ perhaps be interested to read what you did with his
+ stuff. Horizontal rules don't apply.
+
+David Starner released what in this package is named "hex2bdf-split"
+under the same license as Roman Czyborra's work.
+
+License for all of Paul Hardy's work (except "johab2ucs2" and
+"blanks.hex", mentioned separately), Makefile and debian/ mods
+by Anthony Fok, and modified software from Luis Gonzalez Miranda
+(with permission granted to Paul Hardy):
+
+ These are released under the terms of the GNU General Public
+ License version 2, or (at your option) a later version.
+
+License for Fonts:
+
+ Any fonts using glyphs from the "wqy-cjk.hex" file (including
+ the default TrueType font) are bound by the terms of the Wen
+ Quan Yi font license. Those fonts are released under the terms
+ of the GNU General Public License (GPL) versionn 2, with the
+ exception that embedding the font in a document does not by
+ itself bind that document to the terms of the GNU GPL.
+
+ Any fonts that do not use glyphs from the "wqy-cjk.hex" file
+ fall under the above "License for all of Roman Czyborra's work".
+
+ The fonts in "./font/precompiled" do use wqy-cjk.hex, and so
+ are licensed under the GNU GPL version 2, with the exception
+ that embedding the font in a document does not in itself bind
+ that document to the terms of the GNU GPL. The following
+ paragraphs explaining the exception is taken from the Wen
+ Quan Yi font distribution:
+
+ ** GPL v2.0 license with font embedding exception:
+
+ As a special exception, if you create a document which
+ uses this font, and embed this font or unaltered portions
+ of this font into the document, this font does not by
+ itself cause the resulting document to be covered by
+ the GNU General Public License. This exception does not
+ however invalidate any other reasons why the document
+ might be covered by the GNU General Public License.
+ If you modify this font, you may extend this exception
+ to your version of the font, but you are not obligated
+ to do so. If you do not wish to do so, delete this
+ exception statement from your version.
+
+License for "blanks.hex":
+
+ There is one exception to the above rules: Paul Hardy earlier
+ released the "blanks.hex" file into the public domain.
diff --git a/extra/bdf-unifont/PKGBUILD b/extra/bdf-unifont/PKGBUILD
new file mode 100644
index 000000000..2df7993e6
--- /dev/null
+++ b/extra/bdf-unifont/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD,v 1.5 2008/09/24 07:16:54 ronald Exp $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=bdf-unifont
+pkgver=5.1.20080820
+pkgrel=1
+pkgdesc="GNU Unifont Glyphs"
+arch=('i686' 'x86_64')
+license=('custom' 'GPL2')
+url="http://unifoundry.com/unifont.html"
+depends=('fontconfig' 'xorg-fonts-encodings' 'xorg-font-utils')
+install=unifont.install
+source=('http://unifoundry.com/unifont-5.1.20080820.bdf.gz' 'LICENSE')
+md5sums=('6b8263ceccef33bd633aa019d74b7943'
+ '64da5a96d6789d29d485cd67a43bc547')
+
+build() {
+ install -Dm644 ${srcdir}/unifont-5.1.20080820.bdf \
+ ${pkgdir}/usr/share/fonts/misc/unifont.bdf
+
+ # install LICENSE file
+ install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/extra/bdf-unifont/unifont.install b/extra/bdf-unifont/unifont.install
new file mode 100644
index 000000000..7d21ab51b
--- /dev/null
+++ b/extra/bdf-unifont/unifont.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/misc
+ mkfontdir /usr/share/fonts/misc
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/beagle/PKGBUILD b/extra/beagle/PKGBUILD
new file mode 100644
index 000000000..37bfe2b29
--- /dev/null
+++ b/extra/beagle/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 102373 2010-12-07 14:55:37Z jgc $
+# Maintainer: Daniel Isenmann <daniel @ archlinux.org>
+# Contributor: Shadowhand <woody.gilk@gmail.com>
+
+pkgname=beagle
+pkgver=0.3.9
+pkgrel=4
+pkgdesc="Search tool that ransacks your personal information space to find whatever you are looking for."
+arch=(i686 x86_64)
+url="http://beagle-project.org/"
+license=('custom')
+depends=('gnome-sharp>=2.24.1' 'gmime>=2.4.10' 'evolution-sharp>=0.20.0' 'libexif' 'librsvg>=2.26.0' 'sqlite3>=3.6.13' 'libxss' 'wv>=1.2.4' 'chmlib' 'gsf-sharp>=0.8.1' 'libsm' 'xdg-utils' 'ndesk-dbus-glib' 'mono>=2.4' 'taglib-sharp')
+makedepends=('intltool' 'zip' 'pkgconfig')
+options=('!libtool')
+backup=('etc/beagle/crawl-rules/crawl-manpages'
+ 'etc/beagle/crawl-rules/crawl-windows'
+ 'etc/beagle/crawl-rules/crawl-applications'
+ 'etc/beagle/crawl-rules/crawl-documentation'
+ 'etc/beagle/crawl-rules/crawl-monodoc'
+ 'etc/beagle/crawl-rules/crawl-executables')
+install=beagle.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2
+ beagle-0.3.9-spew.patch
+ beagle-0.3.9-gmime24.patch
+ beagle-0.3.9-mono-data-sqlite-2.patch
+ mono-2.8.patch)
+md5sums=('b73c12423d2d67133dbb05933f4c8fe1'
+ '003ada7acc2724e94e0218e4a6705b4a'
+ '73b5a5ea03dc3a7ca71ed41772e4dd82'
+ 'd99a93730485b7f9a5e2111a8b2bf440'
+ '7ef884a29c17b73a20cb09fac0536a47')
+
+build() {
+ export "MONO_SHARED_DIR=${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's/CRAWL_USER=beagleindex/CRAWL_USER=beaglidx/' tools/beagle-crawl-system.in
+ sed -i -e 's/libchm.so.1/libchm.so.0/' Util/ChmFile.cs
+ sed -i -e 's/libgnome-desktop-2.so.2/libgnome-desktop-2.so.17/' search/Beagle.Search.exe.config
+ sed -i -e 's/python/python2/' tools/keygrabber.py
+
+ patch -Np1 -i "${srcdir}/beagle-0.3.9-spew.patch"
+ patch -Np1 -i "${srcdir}/beagle-0.3.9-mono-data-sqlite-2.patch"
+ patch -Np1 -i "${srcdir}/beagle-0.3.9-gmime24.patch"
+ patch -Np1 -i "${srcdir}/mono-2.8.patch"
+
+ libtoolize --force
+ autoreconf
+
+ sed -i -e 's/gmime-sharp/gmime-sharp-2.4/' configure
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --enable-inotify \
+ --disable-static \
+ --disable-docs
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/var/cache/beagle/indexes"
+ chown -R 86:86 "${pkgdir}/var/cache/beagle"
+ install -m755 -d "${pkgdir}/usr/share/licenses/beagle"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/beagle/"
+}
diff --git a/extra/beagle/beagle-0.3.9-gmime24.patch b/extra/beagle/beagle-0.3.9-gmime24.patch
new file mode 100644
index 000000000..7d943dabf
--- /dev/null
+++ b/extra/beagle/beagle-0.3.9-gmime24.patch
@@ -0,0 +1,703 @@
+diff -upNr beagle-0.3.9.orign/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs beagle-0.3.9/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs
+--- beagle-0.3.9.orign/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs 2008-04-25 20:17:04.000000000 +0200
++++ beagle-0.3.9/beagled/EvolutionMailQueryable/EvolutionMailIndexableGenerator.cs 2009-01-28 12:33:17.000000000 +0100
+@@ -333,28 +333,46 @@ namespace Beagle.Daemon.EvolutionMailQue
+ indexable.AddProperty (Property.NewUnsearched ("fixme:folder", this.folder_name));
+
+ GMime.InternetAddressList addrs;
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.To);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent") {
++ addrs = message.GetRecipients (GMime.RecipientType.To);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.Cc);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent") {
++ addrs = message.GetRecipients (GMime.RecipientType.Cc);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (message.Sender));
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (this.folder_name != "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", ia.Addr));
++
++ if (this.folder_name != "Sent") {
++ addrs = GMime.InternetAddressList.Parse (message.Sender);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
++
+ if (this.folder_name == "Sent")
+ indexable.AddProperty (Property.NewFlag ("fixme:isSent"));
+
+@@ -750,48 +768,54 @@ namespace Beagle.Daemon.EvolutionMailQue
+ }
+
+ GMime.InternetAddressList addrs;
+- addrs = GMime.InternetAddressList.ParseString (messageInfo.to);
++ addrs = GMime.InternetAddressList.Parse (messageInfo.to);
+ foreach (GMime.InternetAddress ia in addrs) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
+ if (!have_content) {
+ indexable.AddProperty (Property.NewUnsearched ("fixme:to", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.New ("fixme:to_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.New ("fixme:to_address", mailbox.Address));
++
+ indexable.AddProperty (Property.New ("fixme:to_name", ia.Name));
+ }
+-
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent" && ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (messageInfo.cc);
++ addrs = GMime.InternetAddressList.Parse (messageInfo.cc);
+ foreach (GMime.InternetAddress ia in addrs) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
+ if (!have_content) {
+ indexable.AddProperty (Property.NewUnsearched ("fixme:cc", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.New ("fixme:cc_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.New ("fixme:cc_address", mailbox.Address));
++
+ indexable.AddProperty (Property.New ("fixme:cc_name", ia.Name));
+ }
+-
+- if (this.folder_name == "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", ia.Addr));
++
++ if (this.folder_name == "Sent" && ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.NewUnsearched ("fixme:sentTo", mailbox.Address));
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (messageInfo.from);
++ addrs = GMime.InternetAddressList.Parse (messageInfo.from);
+ foreach (GMime.InternetAddress ia in addrs) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
+ if (!have_content) {
+ indexable.AddProperty (Property.NewUnsearched ("fixme:from", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.New ("fixme:from_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.New ("fixme:from_address", mailbox.Address));
++
+ indexable.AddProperty (Property.New ("fixme:from_name", ia.Name));
+ }
+
+- if (this.folder_name != "Sent" && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", ia.Addr));
++ if (this.folder_name != "Sent" && ia is GMime.InternetAddressMailbox)
++ indexable.AddProperty (Property.NewUnsearched ("fixme:gotFrom", mailbox.Address));
+ }
+ addrs.Dispose ();
+
+diff -upNr beagle-0.3.9.orign/beagled/GoogleBackends/GMailSearchDriver.cs beagle-0.3.9/beagled/GoogleBackends/GMailSearchDriver.cs
+--- beagle-0.3.9.orign/beagled/GoogleBackends/GMailSearchDriver.cs 2008-04-25 21:26:19.000000000 +0200
++++ beagle-0.3.9/beagled/GoogleBackends/GMailSearchDriver.cs 2009-01-28 12:33:17.000000000 +0100
+@@ -322,38 +322,47 @@ namespace Beagle.Daemon.GoogleBackend {
+ hit.AddProperty (Property.NewDate ("fixme:date", message.Date.ToUniversalTime ()));
+
+ GMime.InternetAddressList addrs;
+- addrs = message.GetRecipients (GMime.Message.RecipientType.To);
++ addrs = message.GetRecipients (GMime.RecipientType.To);
+ foreach (GMime.InternetAddress ia in addrs) {
+ hit.AddProperty (Property.NewUnsearched ("fixme:to", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- hit.AddProperty (Property.New ("fixme:to_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ hit.AddProperty (Property.New ("fixme:to_address", mailbox.Address));
++ }
++
+ hit.AddProperty (Property.New ("fixme:to_name", ia.Name));
+ }
+ addrs.Dispose ();
+
+- addrs = message.GetRecipients (GMime.Message.RecipientType.Cc);
++ addrs = message.GetRecipients (GMime.RecipientType.Cc);
+ foreach (GMime.InternetAddress ia in addrs) {
+ hit.AddProperty (Property.NewUnsearched ("fixme:cc", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- hit.AddProperty (Property.New ("fixme:cc_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ hit.AddProperty (Property.New ("fixme:cc_address", mailbox.Address));
++ }
++
+ hit.AddProperty (Property.New ("fixme:cc_name", ia.Name));
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (message.Sender));
++ addrs = GMime.InternetAddressList.Parse (message.Sender);
+ foreach (GMime.InternetAddress ia in addrs) {
+ hit.AddProperty (Property.NewUnsearched ("fixme:from", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- hit.AddProperty (Property.New ("fixme:from_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ hit.AddProperty (Property.New ("fixme:from_address", mailbox.Address));
++ }
++
+ hit.AddProperty (Property.New ("fixme:from_name", ia.Name));
+ }
+ addrs.Dispose ();
+
+ foreach (GMime.References refs in message.References)
+- hit.AddProperty (Property.NewUnsearched ("fixme:reference", refs.Msgid));
++ hit.AddProperty (Property.NewUnsearched ("fixme:reference", refs.MessageId));
+
+ string list_id = message.GetHeader ("List-Id");
+ if (list_id != null)
+diff -upNr beagle-0.3.9.orign/beagled/KMailQueryable/KMailIndexer.cs beagle-0.3.9/beagled/KMailQueryable/KMailIndexer.cs
+--- beagle-0.3.9.orign/beagled/KMailQueryable/KMailIndexer.cs 2008-02-10 21:24:19.000000000 +0100
++++ beagle-0.3.9/beagled/KMailQueryable/KMailIndexer.cs 2009-01-28 12:33:17.000000000 +0100
+@@ -407,28 +407,46 @@ namespace Beagle.Daemon.KMailQueryable {
+ indexable.AddProperty (Property.NewUnsearched ("fixme:folder", folder_name));
+
+ GMime.InternetAddressList addrs;
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.To);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (folder_name == Queryable.SentMailFolderName && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", ia.Addr));
+- }
+- addrs.Dispose ();
+-
+- addrs = message.GetRecipients (GMime.Message.RecipientType.Cc);
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (folder_name == Queryable.SentMailFolderName && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", ia.Addr));
+- }
+- addrs.Dispose ();
+-
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (message.Sender));
+- foreach (GMime.InternetAddress ia in addrs) {
+- if (folder_name != Queryable.SentMailFolderName && ia.AddressType != GMime.InternetAddressType.Group)
+- indexable.AddProperty (Property.NewKeyword ("fixme:gotFrom", ia.Addr));
++
++ if (folder_name == Queryable.SentMailFolderName) {
++ addrs = message.GetRecipients (GMime.RecipientType.To);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
+ }
+- addrs.Dispose ();
+-
++
++ if (folder_name == Queryable.SentMailFolderName) {
++ addrs = message.GetRecipients (GMime.RecipientType.Cc);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewKeyword ("fixme:sentTo", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
++ }
++
++ if (folder_name != Queryable.SentMailFolderName) {
++ addrs = GMime.InternetAddressList.Parse (message.Sender);
++ foreach (GMime.InternetAddress ia in addrs) {
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ indexable.AddProperty (Property.NewKeyword ("fixme:gotFrom", mailbox.Address));
++ }
++ }
++
++ addrs.Dispose ();
++ }
++
+ if (folder_name == Queryable.SentMailFolderName)
+ indexable.AddProperty (Property.NewFlag ("fixme:isSent"));
+ else {
+diff -upNr beagle-0.3.9.orign/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs beagle-0.3.9/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs
+--- beagle-0.3.9.orign/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs 2008-07-18 16:27:59.000000000 +0200
++++ beagle-0.3.9/beagled/ThunderbirdQueryable/ThunderbirdQueryable.cs 2009-01-28 12:33:17.000000000 +0100
+@@ -367,9 +367,14 @@ namespace Beagle.Daemon.ThunderbirdQuery
+ message.Subject = Mime.HeaderDecodeText (GetText (document, "Subject"));
+ message.Sender = Mime.HeaderDecodePhrase (GetText (document, "Author"));
+ message.MessageId = GetText (document, "MessageId");
+- message.SetDate (DateTimeUtil.UnixToDateTimeUtc (Convert.ToInt64 (GetText (document, "Date"))), 0);
+- message.AddRecipientsFromString ("To", Mime.HeaderDecodePhrase (GetText (document, "Recipients")));
+-
++ message.Date = DateTimeUtil.UnixToDateTimeUtc (Convert.ToInt64 (GetText (document, "Date")));
++
++ string str = GetText (document, "Recipients");
++ GMime.InternetAddressList recipients = GMime.InternetAddressList.Parse (str);
++ foreach (GMime.InternetAddress ia in recipients)
++ message.To.Add (ia);
++ recipients.Dispose ();
++
+ return message;
+ }
+
+@@ -434,7 +439,7 @@ namespace Beagle.Daemon.ThunderbirdQuery
+
+ // We _know_ that the stream comes from a StreamReader, which uses UTF8 by
+ // default. So we use that here when parsing our string.
+- return (str != null ? Encoding.UTF8.GetString (str, 0, pos) : string.Empty);
++ return (str != null ? System.Text.Encoding.UTF8.GetString (str, 0, pos) : string.Empty);
+ }
+
+ // This spell "charset="
+@@ -462,7 +467,7 @@ namespace Beagle.Daemon.ThunderbirdQuery
+ // instead of UTF-8 in some cases and that will really mess things up.
+ byte[] buffer = null;
+ int c, header_length = 0, newlines = 0, charset_pos = 0;
+- Encoding enc = Encoding.UTF8;
++ System.Text.Encoding enc = System.Text.Encoding.UTF8;
+ try {
+ do {
+ c = stream.BaseStream.ReadByte ();
+@@ -491,7 +496,7 @@ namespace Beagle.Daemon.ThunderbirdQuery
+ stream.BaseStream.Read (buffer, 0, buffer.Length);
+
+ // We need to use correct encoding
+- enc = Encoding.GetEncoding (encoding_str);
++ enc = System.Text.Encoding.GetEncoding (encoding_str);
+ } catch {
+ } finally {
+ stream.Close ();
+diff -upNr beagle-0.3.9.orign/configure beagle-0.3.9/configure
+--- beagle-0.3.9.orign/configure 2008-07-19 13:20:36.000000000 +0200
++++ beagle-0.3.9/configure 2009-01-28 12:35:43.000000000 +0100
+@@ -2791,7 +2791,7 @@ MONODOC_REQUIRED=1.2.4
+ NDESK_DBUS_REQUIRED=0.5.2
+ NDESK_DBUS_GLIB_REQUIRED=0.3.0
+ GTK_SHARP_REQUIRED=2.10.0
+-GMIME_SHARP_REQUIRED=2.2.0
++GMIME_SHARP_REQUIRED=2.4.0
+ EVOLUTION_SHARP_REQUIRED=0.13.3
+ GSF_SHARP_REQUIRED=0.6
+ GTK_REQUIRED=2.10.0
+@@ -25660,7 +25660,7 @@ if test -n "$PKG_CONFIG"; then
+ glade-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+- gmime-sharp >= \$GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED
+ \"") >&5
+ ($PKG_CONFIG --exists --print-errors "
+ gtk-sharp-2.0 >= $GTK_SHARP_REQUIRED
+@@ -25668,7 +25668,7 @@ if test -n "$PKG_CONFIG"; then
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ ") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+@@ -25679,7 +25679,7 @@ if test -n "$PKG_CONFIG"; then
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ " 2>/dev/null`
+ else
+ pkg_failed=yes
+@@ -25699,7 +25699,7 @@ if test -n "$PKG_CONFIG"; then
+ glade-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+- gmime-sharp >= \$GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED
+ \"") >&5
+ ($PKG_CONFIG --exists --print-errors "
+ gtk-sharp-2.0 >= $GTK_SHARP_REQUIRED
+@@ -25707,7 +25707,7 @@ if test -n "$PKG_CONFIG"; then
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ ") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+@@ -25718,7 +25718,7 @@ if test -n "$PKG_CONFIG"; then
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ " 2>/dev/null`
+ else
+ pkg_failed=yes
+@@ -25744,7 +25744,7 @@ fi
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ "`
+ else
+ BEAGLE_UI_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
+@@ -25753,7 +25753,7 @@ fi
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ "`
+ fi
+ # Put the nasty error message in config.log where it belongs
+@@ -25765,7 +25765,7 @@ fi
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ ) were not met:
+
+ $BEAGLE_UI_PKG_ERRORS
+@@ -25783,7 +25783,7 @@ echo "$as_me: error: Package requirement
+ glade-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ gnome-vfs-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ ) were not met:
+
+ $BEAGLE_UI_PKG_ERRORS
+@@ -26167,18 +26167,18 @@ if test -n "$PKG_CONFIG"; then
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evolution-sharp >= \$EVOLUTION_SHARP_REQUIRED \\
+ gconf-sharp-2.0 >= \$GTK_SHARP_REQUIRED \\
+ glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+- gmime-sharp >= \$GMIME_SHARP_REQUIRED\"") >&5
++ gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED\"") >&5
+ ($PKG_CONFIG --exists --print-errors "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED \
+ gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED \
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED") 2>&5
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_EVO_CFLAGS=`$PKG_CONFIG --cflags "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED \
+ gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED \
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -26194,18 +26194,18 @@ if test -n "$PKG_CONFIG"; then
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"evolution-sharp >= \$EVOLUTION_SHARP_REQUIRED \\
+ gconf-sharp-2.0 >= \$GTK_SHARP_REQUIRED \\
+ glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+- gmime-sharp >= \$GMIME_SHARP_REQUIRED\"") >&5
++ gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED\"") >&5
+ ($PKG_CONFIG --exists --print-errors "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED \
+ gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED \
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED") 2>&5
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_EVO_LIBS=`$PKG_CONFIG --libs "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED \
+ gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED \
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED" 2>/dev/null`
+ else
+ pkg_failed=yes
+ fi
+@@ -26227,12 +26227,12 @@ fi
+ EVO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED \
+ gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED \
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED"`
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED"`
+ else
+ EVO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "evolution-sharp >= $EVOLUTION_SHARP_REQUIRED \
+ gconf-sharp-2.0 >= $GTK_SHARP_REQUIRED \
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+- gmime-sharp >= $GMIME_SHARP_REQUIRED"`
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$EVO_PKG_ERRORS" >&5
+@@ -26781,12 +26781,12 @@ if test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"
+ shared-mime-info
+- gmime-sharp >= \$GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ \"") >&5
+ ($PKG_CONFIG --exists --print-errors "
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ") 2>&5
+ ac_status=$?
+@@ -26794,7 +26794,7 @@ if test -n "$PKG_CONFIG"; then
+ (exit $ac_status); }; then
+ pkg_cv_BEAGLED_CFLAGS=`$PKG_CONFIG --cflags "
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ " 2>/dev/null`
+ else
+@@ -26811,12 +26811,12 @@ if test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"
+ shared-mime-info
+- gmime-sharp >= \$GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= \$GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= \$GTK_SHARP_REQUIRED
+ \"") >&5
+ ($PKG_CONFIG --exists --print-errors "
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ") 2>&5
+ ac_status=$?
+@@ -26824,7 +26824,7 @@ if test -n "$PKG_CONFIG"; then
+ (exit $ac_status); }; then
+ pkg_cv_BEAGLED_LIBS=`$PKG_CONFIG --libs "
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ " 2>/dev/null`
+ else
+@@ -26847,13 +26847,13 @@ fi
+ if test $_pkg_short_errors_supported = yes; then
+ BEAGLED_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ "`
+ else
+ BEAGLED_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ "`
+ fi
+@@ -26862,7 +26862,7 @@ fi
+
+ { { echo "$as_me:$LINENO: error: Package requirements (
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ) were not met:
+
+@@ -26877,7 +26877,7 @@ See the pkg-config man page for more det
+ " >&5
+ echo "$as_me: error: Package requirements (
+ shared-mime-info
+- gmime-sharp >= $GMIME_SHARP_REQUIRED
++ gmime-sharp-2.4 >= $GMIME_SHARP_REQUIRED
+ glib-sharp-2.0 >= $GTK_SHARP_REQUIRED
+ ) were not met:
+
+@@ -26924,7 +26924,7 @@ BEAGLED_LIBS="$BEAGLED_LIBS $GSF_SHARP_L
+
+
+ GSF_SHARP_PREFIX=`$PKG_CONFIG --variable=prefix gsf-sharp`
+-GMIME_SHARP_PREFIX=`$PKG_CONFIG --variable=prefix gmime-sharp`
++GMIME_SHARP_PREFIX=`$PKG_CONFIG --variable=prefix gmime-sharp-2.4`
+
+
+ # Check whether --enable-epiphany-extension was given.
+diff -upNr beagle-0.3.9.orign/Filters/FilterMail.cs beagle-0.3.9/Filters/FilterMail.cs
+--- beagle-0.3.9.orign/Filters/FilterMail.cs 2008-06-12 02:20:07.000000000 +0200
++++ beagle-0.3.9/Filters/FilterMail.cs 2009-01-28 12:33:17.000000000 +0100
+@@ -126,7 +126,7 @@ namespace Beagle.Filters {
+
+ // Messages that are multipart/alternative shouldn't be considered as having
+ // attachments. Unless of course they do.
+- if (mime_part is GMime.Multipart && mime_part.ContentType.Subtype.ToLower () != "alternative")
++ if (mime_part is GMime.Multipart && mime_part.ContentType.MediaSubtype.ToLower () != "alternative")
+ return true;
+
+ return false;
+@@ -140,34 +140,43 @@ namespace Beagle.Filters {
+ AddProperty (Property.NewDate ("fixme:date", message.Date.ToUniversalTime ()));
+
+ GMime.InternetAddressList addrs;
+- addrs = this.message.GetRecipients (GMime.Message.RecipientType.To);
++ addrs = this.message.GetRecipients (GMime.RecipientType.To);
+ foreach (GMime.InternetAddress ia in addrs) {
+ AddProperty (Property.NewUnsearched ("fixme:to", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- AddProperty (Property.New ("fixme:to_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ AddProperty (Property.New ("fixme:to_address", mailbox.Address));
++ }
++
+ AddProperty (Property.New ("fixme:to_name", ia.Name));
+ AddEmailLink (ia);
+ }
+ addrs.Dispose ();
+
+- addrs = this.message.GetRecipients (GMime.Message.RecipientType.Cc);
++ addrs = this.message.GetRecipients (GMime.RecipientType.Cc);
+ foreach (GMime.InternetAddress ia in addrs) {
+ AddProperty (Property.NewUnsearched ("fixme:cc", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- AddProperty (Property.New ("fixme:cc_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ AddProperty (Property.New ("fixme:cc_address", mailbox.Address));
++ }
++
+ AddProperty (Property.New ("fixme:cc_name", ia.Name));
+ AddEmailLink (ia);
+ }
+ addrs.Dispose ();
+
+- addrs = GMime.InternetAddressList.ParseString (GMime.Utils.HeaderDecodePhrase (this.message.Sender));
++ addrs = GMime.InternetAddressList.Parse (this.message.Sender);
+ foreach (GMime.InternetAddress ia in addrs) {
+ AddProperty (Property.NewUnsearched ("fixme:from", ia.ToString (false)));
+- if (ia.AddressType != GMime.InternetAddressType.Group)
+- AddProperty (Property.New ("fixme:from_address", ia.Addr));
+-
++ if (ia is GMime.InternetAddressMailbox) {
++ GMime.InternetAddressMailbox mailbox = ia as GMime.InternetAddressMailbox;
++
++ AddProperty (Property.New ("fixme:from_address", mailbox.Address));
++ }
++
+ AddProperty (Property.New ("fixme:from_name", ia.Name));
+ AddEmailLink (ia);
+ }
+@@ -184,7 +193,7 @@ namespace Beagle.Filters {
+ AddProperty (Property.NewUnsearched ("fixme:msgid", GMime.Utils.DecodeMessageId (msgid)));
+
+ foreach (GMime.References refs in this.message.References)
+- AddProperty (Property.NewUnsearched ("fixme:reference", refs.Msgid));
++ AddProperty (Property.NewUnsearched ("fixme:reference", refs.MessageId));
+
+ string list_id = this.message.GetHeader ("List-Id");
+ if (list_id != null)
+@@ -345,16 +354,15 @@ namespace Beagle.Filters {
+ }
+ } else if (mime_part is GMime.Multipart) {
+ GMime.Multipart multipart = (GMime.Multipart) mime_part;
+-
+- int num_parts = multipart.Number;
++ int num_parts = multipart.Count;
+
+ // If the mimetype is multipart/alternative, we only want to index
+ // one part -- the richest one we can filter.
+- if (mime_part.ContentType.Subtype.ToLower () == "alternative") {
++ if (mime_part.ContentType.MediaSubtype.ToLower () == "alternative") {
+ // The richest formats are at the end, so work from there
+ // backward.
+ for (int i = num_parts - 1; i >= 0; i--) {
+- GMime.Object subpart = multipart.GetPart (i);
++ GMime.Object subpart = multipart[i];
+
+ if (IsMimeTypeHandled (subpart.ContentType.ToString ())) {
+ part = subpart;
+@@ -370,7 +378,7 @@ namespace Beagle.Filters {
+ // the parts, treat them like a bunch of attachments.
+ if (part == null) {
+ for (int i = 0; i < num_parts; i++) {
+- using (GMime.Object subpart = multipart.GetPart (i))
++ using (GMime.Object subpart = multipart[i])
+ this.OnEachPart (subpart);
+ }
+ }
+@@ -400,7 +408,7 @@ namespace Beagle.Filters {
+ } else if (mime_type == "text/html") {
+ no_child_needed = true;
+ html_part = true;
+- string enc = part.GetContentTypeParameter ("charset");
++ string enc = part.ContentType.GetParameter ("charset");
+ // DataWrapper.Stream is a very limited stream
+ // and does not allow Seek or Tell
+ // HtmlFilter requires Stream.Position=0.
+@@ -473,7 +481,7 @@ namespace Beagle.Filters {
+ if (length != -1)
+ child.AddProperty (Property.NewUnsearched ("fixme:filesize", length));
+
+- if (part.ContentType.Type.ToLower () == "text")
++ if (part.ContentType.MediaType.ToLower () == "text")
+ child.SetTextReader (new StreamReader (stream));
+ else
+ child.SetBinaryStream (stream);
diff --git a/extra/beagle/beagle-0.3.9-mono-data-sqlite-2.patch b/extra/beagle/beagle-0.3.9-mono-data-sqlite-2.patch
new file mode 100644
index 000000000..ef090be9e
--- /dev/null
+++ b/extra/beagle/beagle-0.3.9-mono-data-sqlite-2.patch
@@ -0,0 +1,81 @@
+--- beagle-0.3.9/Util/FSpotTools.cs.orig 2010-01-30 14:45:38.000000000 +0100
++++ beagle-0.3.9/Util/FSpotTools.cs 2010-01-30 14:47:00.000000000 +0100
+@@ -85,8 +85,12 @@
+ while (reader == null) {
+ try {
+ reader = command.ExecuteReader ();
+- } catch (SqliteBusyException) {
+- Thread.Sleep (50);
++ } catch (SqliteException e) {
++ if (e.ErrorCode == SQLiteErrorCode.Busy) {
++ Thread.Sleep (50);
++ } else {
++ throw;
++ }
+ }
+ }
+ reader.Close ();
+--- beagle-0.3.9/beagled/SqliteUtils.cs.orig 2010-01-30 14:47:14.000000000 +0100
++++ beagle-0.3.9/beagled/SqliteUtils.cs 2010-01-30 14:53:16.000000000 +0100
+@@ -55,8 +55,13 @@
+ try {
+ ret = command.ExecuteNonQuery ();
+ break;
+- } catch (SqliteBusyException ex) {
+- Thread.Sleep (50);
++ } catch (SqliteException ex) {
++ if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++ Thread.Sleep (50);
++ } else {
++ Log.Error(ex, "SQL that caused the exception: {0}", command_text);
++ throw;
++ }
+ } catch (Exception e) {
+ Log.Error (e, "SQL that caused the exception: {0}", command_text);
+ throw;
+@@ -79,8 +84,13 @@
+ try {
+ ret = command.ExecuteNonQuery ();
+ break;
+- } catch (SqliteBusyException ex) {
+- Thread.Sleep (50);
++ } catch (SqliteException ex) {
++ if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++ Thread.Sleep (50);
++ } else {
++ Log.Error(ex, "SQL that caused the exception: {0}", command.CommandText);
++ throw;
++ }
+ } catch (Exception e) {
+ Log.Error ( e, "SQL that caused the exception: {0}", command.CommandText);
+ throw;
+@@ -96,8 +106,12 @@
+ while (reader == null) {
+ try {
+ reader = command.ExecuteReader ();
+- } catch (SqliteBusyException ex) {
+- Thread.Sleep (50);
++ } catch (SqliteException ex) {
++ if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++ Thread.Sleep (50);
++ } else {
++ throw;
++ }
+ }
+ }
+ return reader;
+@@ -108,8 +122,12 @@
+ while (true) {
+ try {
+ return reader.Read ();
+- } catch (SqliteBusyException ex) {
+- Thread.Sleep (50);
++ } catch (SqliteException ex) {
++ if (ex.ErrorCode == SQLiteErrorCode.Busy) {
++ Thread.Sleep (50);
++ } else {
++ throw;
++ }
+ }
+ }
+ }
diff --git a/extra/beagle/beagle-0.3.9-spew.patch b/extra/beagle/beagle-0.3.9-spew.patch
new file mode 100644
index 000000000..6e31c964c
--- /dev/null
+++ b/extra/beagle/beagle-0.3.9-spew.patch
@@ -0,0 +1,12 @@
+diff -upNr beagle-0.3.9.orign/beagled/BeagleDaemon.cs beagle-0.3.9/beagled/BeagleDaemon.cs
+--- beagle-0.3.9.orign/beagled/BeagleDaemon.cs 2008-06-11 20:42:20.000000000 +0200
++++ beagle-0.3.9/beagled/BeagleDaemon.cs 2009-01-31 12:44:23.000000000 +0100
+@@ -456,7 +456,7 @@ namespace Beagle.Daemon {
+ // debugging this code, after all...
+ // arg_debug ? LogLevel.Debug : LogLevel.Warn
+
+- Log.Initialize (PathFinder.LogDir, "Beagle", LogLevel.Debug, arg_fg);
++ Log.Initialize (PathFinder.LogDir, "Beagle", arg_debug ? LogLevel.Debug : LogLevel.Warn, arg_fg);
+ Log.Always ("Starting Beagle Daemon (version {0})", ExternalStringsHack.Version);
+ Log.Always ("Running on {0}", SystemInformation.MonoRuntimeVersion);
+ Log.Always ("Command Line: {0}",
diff --git a/extra/beagle/beagle.install b/extra/beagle/beagle.install
new file mode 100644
index 000000000..bfc90ecd1
--- /dev/null
+++ b/extra/beagle/beagle.install
@@ -0,0 +1,8 @@
+post_install() {
+ getent group beaglidx >/dev/null || usr/sbin/groupadd -g 86 beaglidx
+ getent passwd beaglidx >/dev/null || usr/sbin/useradd -c 'User for Beagle indexing' -u 86 -g beaglidx -d '/' -s /bin/false beaglidx
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/beagle/mono-2.8.patch b/extra/beagle/mono-2.8.patch
new file mode 100644
index 000000000..503243444
--- /dev/null
+++ b/extra/beagle/mono-2.8.patch
@@ -0,0 +1,152 @@
+Patch to enable compilation against mono-2.8
+
+* Mono-2.8 uses mono-2.pc instead of mono.pc for setting cflags and libs.
+* Mono-2.8 disables direct access to struct MonoType fields; use accessors
+instead (mono_type_get_type and mono_field_get_flags have been present in
+the API since at least mono-1.2, so we do not need any version ifdefs).
+* Cast FSpot.MetadataStore to IEnumerable in foreach() to prevent CS1640
+errors (non-unique enumeration of the type) with mono-2.8's gmcs.
+
+diff -ru beagle-0.3.9-orig/configure.in beagle-0.3.9/configure.in
+--- beagle-0.3.9-orig/configure.in 2010-10-16 01:30:03.807825004 -0400
++++ beagle-0.3.9/configure.in 2010-10-16 01:30:10.385825003 -0400
+@@ -59,11 +59,20 @@
+ AC_MSG_ERROR([You need to install the Mono gmcs compiler])
+ fi
+
+-AC_MSG_CHECKING([for mono.pc])
+-if test -z `$PKG_CONFIG --variable=prefix mono`; then
+- AC_MSG_ERROR([missing the mono.pc file, usually found in the mono-devel package])
++# mono-2.8 and higher uses mono-2.pc instead of mono.pc for cflags and libs
++AC_MSG_CHECKING([for mono-2.pc])
++if test -z `$PKG_CONFIG --variable=prefix mono-2`; then
++ AC_MSG_RESULT([not found])
++ AC_MSG_CHECKING([for mono.pc])
++ if test -z `$PKG_CONFIG --variable=prefix mono`; then
++ AC_MSG_ERROR([missing the mono.pc file, usually found in the mono-devel package])
++ else
++ AC_MSG_RESULT([found])
++ mono_pc=mono
++ fi
+ else
+ AC_MSG_RESULT([found])
++ mono_pc=mono-2
+ fi
+
+ BEAGLE_DEFINES=""
+@@ -71,10 +80,10 @@
+ # check that we have the require version of mono
+
+ # Temporary: check for mono-1.9
+-PKG_CHECK_MODULES(MONO, mono >= 1.9, mono_1_9=yes, mono_1_9=no)
++PKG_CHECK_MODULES(MONO, $mono_pc >= 1.9, mono_1_9=yes, mono_1_9=no)
+ if test "x$mono_1_9" = "xno"; then
+ AC_MSG_RESULT([missing mono >= 1.9. Searching for mono >= 1.2.4])
+- PKG_CHECK_MODULES(MONO, mono >= $MONO_REQUIRED)
++ PKG_CHECK_MODULES(MONO, $mono_pc >= $MONO_REQUIRED)
+ else
+ AC_MSG_RESULT([found mono >= 1.9])
+ BEAGLE_DEFINES="$BEAGLE_DEFINES -define:MONO_1_9"
+@@ -84,7 +93,7 @@
+ needed_dlls="Mono.Data.Sqlite Mono.Posix System.Data System.Web ICSharpCode.SharpZipLib"
+ for i in $needed_dlls; do
+ AC_MSG_CHECKING([for $i.dll])
+- if test ! -e `$PKG_CONFIG --variable=prefix mono`/lib/mono/2.0/$i.dll; then
++ if test ! -e `$PKG_CONFIG --variable=prefix $mono_pc`/lib/mono/2.0/$i.dll; then
+ AC_MSG_ERROR([missing required mono DLL: $i.dll])
+ else
+ AC_MSG_RESULT([found])
+@@ -195,7 +204,7 @@
+ if test "x$enable_google" = "xyes"; then
+ i="System.Security"
+ AC_MSG_CHECKING([for $i.dll (needed by Google backends)])
+- if test ! -e `$PKG_CONFIG --variable=prefix mono`/lib/mono/2.0/$i.dll; then
++ if test ! -e `$PKG_CONFIG --variable=prefix $mono_pc`/lib/mono/2.0/$i.dll; then
+ AC_MSG_ERROR([missing required mono DLL: $i.dll])
+ else
+ AC_MSG_RESULT([found])
+@@ -560,7 +569,7 @@
+ if test "x$enable_qt" != "xno" -a "x$has_qyoto" = "xno"; then
+ i="qt-dotnet"
+ AC_MSG_CHECKING([for $i.dll])
+- if test ! -e `$PKG_CONFIG --variable=prefix mono`/lib/mono/2.0/$i.dll; then
++ if test ! -e `$PKG_CONFIG --variable=prefix $mono_pc`/lib/mono/2.0/$i.dll; then
+ AC_MSG_ERROR([missing required mono DLL: $i.dll])
+ else
+ AC_MSG_RESULT([found])
+Only in beagle-0.3.9: configure.in.orig
+diff -ru beagle-0.3.9-orig/Filters/FilterImage.cs beagle-0.3.9/Filters/FilterImage.cs
+--- beagle-0.3.9-orig/Filters/FilterImage.cs 2008-04-13 15:24:13.000000000 -0400
++++ beagle-0.3.9/Filters/FilterImage.cs 2010-10-16 02:08:10.755825005 -0400
+@@ -141,7 +141,7 @@
+ Resource rights_anon = null;
+ Resource title_anon = null;
+
+- foreach (Statement stmt in xmp.Store) {
++ foreach (Statement stmt in (IEnumerable)xmp.Store) {
+ if (stmt.Predicate == MetadataStore.Namespaces.Resolve ("dc:subject")) {
+ //Console.WriteLine ("found subject");
+ subject_anon = stmt.Object;
+@@ -163,7 +163,7 @@
+ }
+ }
+
+- foreach (Statement stmt in xmp.Store) {
++ foreach (Statement stmt in (IEnumerable)xmp.Store) {
+ if (stmt.Subject == subject_anon &&
+ stmt.Predicate != MetadataStore.Namespaces.Resolve ("rdf:type")) {
+ AddProperty (Beagle.Property.New ("dc:subject", ((Literal)stmt.Object).Value));
+diff -ru beagle-0.3.9-orig/Filters/FilterPdf.cs beagle-0.3.9/Filters/FilterPdf.cs
+--- beagle-0.3.9-orig/Filters/FilterPdf.cs 2008-04-13 15:31:18.000000000 -0400
++++ beagle-0.3.9/Filters/FilterPdf.cs 2010-10-16 02:22:09.528825003 -0400
+@@ -8,6 +8,7 @@
+ //
+
+ using System;
++using System.Collections;
+ using System.IO;
+ using System.Diagnostics;
+
+@@ -220,7 +221,7 @@
+ Resource rights_anon = null;
+ Resource title_anon = null;
+
+- foreach (Statement stmt in xmp.Store) {
++ foreach (Statement stmt in (IEnumerable)xmp.Store) {
+ if (stmt.Predicate == MetadataStore.Namespaces.Resolve ("dc:subject")) {
+ //Console.WriteLine ("found subject");
+ subject_anon = stmt.Object;
+@@ -239,7 +240,7 @@
+ }
+ }
+
+- foreach (Statement stmt in xmp.Store) {
++ foreach (Statement stmt in (IEnumerable)xmp.Store) {
+ if (stmt.Subject == subject_anon &&
+ stmt.Predicate != MetadataStore.Namespaces.Resolve ("rdf:type")) {
+ AddProperty (Beagle.Property.New ("dc:subject", ((Literal)stmt.Object).Value));
+diff -ru beagle-0.3.9-orig/glue/mono-glue.c beagle-0.3.9/glue/mono-glue.c
+--- beagle-0.3.9-orig/glue/mono-glue.c 2007-11-26 20:50:05.000000000 -0500
++++ beagle-0.3.9/glue/mono-glue.c 2010-10-16 01:04:19.839825010 -0400
+@@ -79,18 +79,18 @@
+ type = mono_class_get_type (klass);
+
+ /* This is an array, so drill down into it */
+- if (type->type == MONO_TYPE_SZARRAY)
++ if (mono_type_get_type (type) == MONO_TYPE_SZARRAY)
+ total += memory_usage_array ((MonoArray *) obj, visited);
+
+ while ((field = mono_class_get_fields (klass, &iter)) != NULL) {
+ MonoType *ftype = mono_field_get_type (field);
+ gpointer value;
+
+- if ((ftype->attrs & (FIELD_ATTRIBUTE_STATIC | FIELD_ATTRIBUTE_HAS_FIELD_RVA)) != 0)
++ if ((mono_field_get_flags (field) & (FIELD_ATTRIBUTE_STATIC | FIELD_ATTRIBUTE_HAS_FIELD_RVA)) != 0)
+ continue;
+
+ /* FIXME: There are probably other types we need to drill down into */
+- switch (ftype->type) {
++ switch (mono_type_get_type (ftype)) {
+
+ case MONO_TYPE_CLASS:
+ case MONO_TYPE_OBJECT:
diff --git a/extra/beep/PKGBUILD b/extra/beep/PKGBUILD
new file mode 100644
index 000000000..bee2afc6d
--- /dev/null
+++ b/extra/beep/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 90320 2010-09-10 17:01:06Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=beep
+pkgver=1.3
+pkgrel=1
+pkgdesc="Advanced PC speaker beeping program"
+arch=('i686' 'x86_64')
+url="http://www.johnath.com/beep"
+license=('GPL2')
+depends=('glibc')
+source=(http://www.johnath.com/beep/${pkgname}-${pkgver}.tar.gz)
+md5sums=('49c340ceb95dbda3f97b2daafac7892a')
+sha1sums=('8cba283e507dc9e401da011a9c92a2e24ea2bf70')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i "s:-Wall:${CFLAGS}:" Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -D -m755 beep "${pkgdir}/usr/bin/beep"
+ install -D -m644 beep.1.gz "${pkgdir}/usr/share/man/man1/beep.1.gz"
+}
diff --git a/extra/bftpd/PKGBUILD b/extra/bftpd/PKGBUILD
new file mode 100644
index 000000000..fb9c4aa1a
--- /dev/null
+++ b/extra/bftpd/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 95186 2010-10-16 23:03:07Z thomas $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=bftpd
+pkgver=3.1
+pkgrel=1
+pkgdesc="Small, easy-to-configure FTP server"
+arch=(i686 x86_64)
+url="http://bftpd.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'pam')
+install=bftpd.install
+backup=(etc/bftpd.conf etc/logrotate.d/bftpd etc/pam.d/bftpd)
+source=(http://downloads.sourceforge.net/sourceforge/bftpd/bftpd-$pkgver.tar.gz
+ bftpd.rc bftpd.logrotate bftpd.pam)
+md5sums=('1aeda6f3da2b10dcf5dca1b1d8466c48'
+ '56a1bf7738a6db2b2cff89e611f4f11a'
+ '853680dad0df39d0b4d2fb43d4be430a'
+ '96f82c38f3f540b53f3e5144900acf17')
+
+build() {
+ cd ${srcdir}/$pkgname
+ ./configure --prefix=/usr --enable-pam --mandir=/usr/share/man
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/$pkgname
+ install -d -m755 ${pkgdir}/usr/{sbin,share/man/man8}
+ install -d -m755 ${pkgdir}/var/run/bftpd
+ install -d -m755 ${pkgdir}/var/log
+ install -D -m644 ${srcdir}/bftpd.logrotate ${pkgdir}/etc/logrotate.d/bftpd || return 1
+ install -D -m755 ${srcdir}/bftpd.rc ${pkgdir}/etc/rc.d/bftpd || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ rm -f ${pkgdir}/var/log/bftpd.log
+ rmdir ${pkgdir}/var/log
+ mkdir -p ${pkgdir}/etc/pam.d
+ cp ${srcdir}/bftpd.pam ${pkgdir}/etc/pam.d/bftpd || return 1
+}
diff --git a/extra/bftpd/bftpd.install b/extra/bftpd/bftpd.install
new file mode 100644
index 000000000..25ebfa58b
--- /dev/null
+++ b/extra/bftpd/bftpd.install
@@ -0,0 +1,11 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_install () {
+ [ ! -f /var/log/bftpd.log ] && touch /var/log/bftpd.log
+ true
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/bftpd/bftpd.logrotate b/extra/bftpd/bftpd.logrotate
new file mode 100644
index 000000000..c0f0b3393
--- /dev/null
+++ b/extra/bftpd/bftpd.logrotate
@@ -0,0 +1,5 @@
+/var/log/bftpd.log {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/extra/bftpd/bftpd.pam b/extra/bftpd/bftpd.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/extra/bftpd/bftpd.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/extra/bftpd/bftpd.rc b/extra/bftpd/bftpd.rc
new file mode 100755
index 000000000..2f31cf50c
--- /dev/null
+++ b/extra/bftpd/bftpd.rc
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PIDFILE="/var/run/bftpd.pid"
+
+case "$1" in
+ start)
+ stat_busy "Starting bftpd Server"
+ PID="$(pidof -o %PPID /usr/sbin/bftpd)"
+ if [ -z "$PID" ]; then
+ /usr/sbin/bftpd -d
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ # wait until it forks
+ sleep 2
+ echo $(pidof -o %PPID /usr/sbin/bftpd) > $PIDFILE
+ add_daemon bftpd
+ stat_done
+ fi
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping bftpd Server"
+ if [ -f $PIDFILE ] && kill -0 $(cat $PIDFILE); then
+ kill -15 $(cat $PIDFILE)
+ rm $PIDFILE
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/bigloo/PKGBUILD b/extra/bigloo/PKGBUILD
new file mode 100644
index 000000000..079a142aa
--- /dev/null
+++ b/extra/bigloo/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 110532 2011-02-19 18:50:57Z ibiru $
+# Maintainer: Jürgen Hötzel <juergen@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+
+pkgname=bigloo
+_pkgver=3.6a
+pkgver=${_pkgver/-/_}
+pkgrel=2
+pkgdesc="Fast scheme compiler"
+arch=('i686' 'x86_64')
+url="http://www-sop.inria.fr/mimosa/fp/Bigloo/"
+license=('GPL' 'LGPL')
+depends=('openssl' 'sqlite3')
+makedepends=('jdk' 'emacs')
+optdepends=('emacs')
+options=('!makeflags')
+install=bigloo.install
+source=(ftp://ftp-sop.inria.fr/indes/fp/Bigloo/${pkgname}${_pkgver}.tar.gz)
+md5sums=('484c09cd0e0f84c96999d889de35cd1e')
+
+build() {
+ cd "${srcdir}/${pkgname}${_pkgver}"
+ ./configure --prefix=/usr \
+ --enable-ssl \
+ --enable-sqlite \
+ --disable-gstreamer \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --docdir=/usr/share/doc/bigloo \
+ --dotnet=no \
+ --javaprefix=/opt/java/bin
+ make build compile-bee
+}
+
+package() {
+ cd "${srcdir}/${pkgname}${_pkgver}"
+ make DESTDIR="${pkgdir}" install install-bee
+ make -C manuals DESTDIR="${pkgdir}" install-bee
+ chmod 644 "${pkgdir}"/usr/lib/bigloo/${_pkgver%-*}/*.a
+}
diff --git a/extra/bigloo/bigloo.install b/extra/bigloo/bigloo.install
new file mode 100644
index 000000000..fd7a64edb
--- /dev/null
+++ b/extra/bigloo/bigloo.install
@@ -0,0 +1,21 @@
+infodir=/usr/share/info
+filelist=(bigloo.info bdb.info)
+
+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/extra/bind/127.0.0.zone b/extra/bind/127.0.0.zone
new file mode 100644
index 000000000..509c311f6
--- /dev/null
+++ b/extra/bind/127.0.0.zone
@@ -0,0 +1,11 @@
+$ORIGIN 0.0.127.in-addr.arpa.
+
+@ 1D IN SOA localhost. root.localhost. (
+ 42 ; serial (yyyymmdd##)
+ 3H ; refresh
+ 15M ; retry
+ 1W ; expiry
+ 1D ) ; minimum ttl
+
+ 1D IN NS localhost.
+1 1D IN PTR localhost.
diff --git a/extra/bind/ChangeLog b/extra/bind/ChangeLog
new file mode 100644
index 000000000..fac736994
--- /dev/null
+++ b/extra/bind/ChangeLog
@@ -0,0 +1,15 @@
+
+2010-03-27 kevin <kevin@archlinux.org>
+
+ * bind 9.7.0.P1-1
+ - Patch addresses excessive query traffic generated when there is a break
+ in the DNSSEC trust chain as a result of a configuration error
+
+2010-01-22 kevin <kevin@archlinux.org>
+
+ * bind 9.6.1.P3-1
+ - Fix for CVE-2010-0097, VU#360341, BIND 9 DNSSEC validation code could
+ cause bogus NXDOMAIN responses
+ - Updated fix for CVE-2009-4022, VU#418861, BIND 9 Cache Update from
+ Additional Section
+
diff --git a/extra/bind/PKGBUILD b/extra/bind/PKGBUILD
new file mode 100644
index 000000000..851c25f4e
--- /dev/null
+++ b/extra/bind/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 112958 2011-03-08 00:19:22Z bisson $
+# Maintainer: judd <jvinet@zeroflux.org>
+# Contributor: Mario Vazquez <mario_vazq@hotmail.com>
+
+pkgname=bind
+
+# Use a period and not a hyphen before the patch level for proper versioning.
+pkgver=9.8.0
+_pkgver=9.8.0
+pkgrel=1
+
+pkgdesc='Berkeley Internet Name Daemon (BIND) is the reference implementation of the Domain Name System (DNS) protocols'
+arch=('i686' 'x86_64')
+url='http://www.isc.org/software/bind/'
+license=('custom:ISC')
+provides=('dns-server')
+backup=('etc/logrotate.d/named'
+ 'etc/conf.d/named'
+ 'etc/named.conf'
+ 'etc/rndc.key')
+depends=('openssl' 'libxml2')
+options=('!makeflags' '!libtool')
+source=("http://ftp.isc.org/isc/bind9/${_pkgver}/${pkgname}-${_pkgver}.tar.gz"
+ 'ftp://ftp.rs.internic.net/domain/db.cache'
+ 'so_bsdcompat.patch'
+ 'notools.patch'
+ 'named'
+ 'named.conf'
+ 'named.conf.d'
+ 'named.logrotate'
+ 'localhost.zone'
+ '127.0.0.zone')
+sha1sums=('33019694ef3119d9daa1e8ff5117a6688e188528'
+ 'ee52947062c1582858187716b776afa3613608fb'
+ '2f737f4e81186447ac2ef370fa8dcea0b3abec31'
+ '5277cf4d6fbc5728c55b51c77c9347d28393fb7c'
+ '02b0e20a542663d27af4faa4d2e397ae2764276e'
+ '5ca7a5f2a132548a090a045a2df3acea6b35d9eb'
+ '7848edbfb9a848843f57c11c02b0289eefd42d00'
+ '9ffb5c3f72390a517aeae557e32349d5d278cb63'
+ '76a0d4cd1b913db177a5a375bebc47e5956866ec'
+ '53be0f1437ebe595240d8dbdd819939582b97fb9')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+
+ patch -p1 -i "${srcdir}"/so_bsdcompat.patch
+ patch -p1 -i "${srcdir}"/notools.patch
+
+ ./configure \
+ --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --with-libtool --enable-static=no --disable-linux-caps \
+ --with-openssl=yes --with-libxml2=yes
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ install -d "${pkgdir}"/usr/share/doc/bind
+ install ./doc/arm/*.html "${pkgdir}"/usr/share/doc/bind/
+
+ install -D -m755 ../named "${pkgdir}"/etc/rc.d/named
+ install -D -m644 ../named.conf.d "${pkgdir}"/etc/conf.d/named
+ install -D -m600 ../named.logrotate "${pkgdir}"/etc/logrotate.d/named
+ install -D -m640 -o 0 -g 40 ../named.conf "${pkgdir}"/etc/named.conf
+
+ install -d -m750 -o 0 -g 40 "${pkgdir}"/var/named
+ install -d -m755 -o 40 -g 40 "${pkgdir}"/var/run/named
+ install -m640 -o 0 -g 40 ../db.cache "${pkgdir}"/var/named/root.hint
+ install -m640 -o 0 -g 40 ../127.0.0.zone "${pkgdir}"/var/named/
+ install -m640 -o 0 -g 40 ../localhost.zone "${pkgdir}"/var/named/
+}
diff --git a/extra/bind/install b/extra/bind/install
new file mode 100644
index 000000000..e3a1397cb
--- /dev/null
+++ b/extra/bind/install
@@ -0,0 +1,21 @@
+post_install() {
+ getent group named >/dev/null || groupadd -g 40 named
+ getent passwd named >/dev/null || useradd -u 40 -c "BIND DNS Server" -g named -d /var/named -s /bin/false named
+ passwd -l named &>/dev/null
+
+ touch var/log/named.log
+ chown named:named var/log/named.log
+
+ # create an rndc.key if it doesn't already exist
+ if [ ! -s etc/rndc.key ]; then
+ usr/sbin/rndc-confgen -r /dev/urandom -b 256 | head -n 5 >>etc/rndc.key
+ chown root:named etc/rndc.key
+ chmod 640 etc/rndc.key
+ fi
+}
+
+pre_remove() {
+ getent passwd named &>/dev/null && userdel named >/dev/null
+ getent group named &>/dev/null && groupdel named >/dev/null
+ return 0
+}
diff --git a/extra/bind/localhost.zone b/extra/bind/localhost.zone
new file mode 100644
index 000000000..e3ff9641c
--- /dev/null
+++ b/extra/bind/localhost.zone
@@ -0,0 +1,10 @@
+$ORIGIN localhost.
+@ 1D IN SOA @ root (
+ 42 ; serial (yyyymmdd##)
+ 3H ; refresh
+ 15M ; retry
+ 1W ; expiry
+ 1D ) ; minimum ttl
+
+ 1D IN NS @
+ 1D IN A 127.0.0.1
diff --git a/extra/bind/named b/extra/bind/named
new file mode 100755
index 000000000..3be558f27
--- /dev/null
+++ b/extra/bind/named
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+NAMED_ARGS=
+[ -f /etc/conf.d/named ] && . /etc/conf.d/named
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/named`
+case "$1" in
+ start)
+ stat_busy "Starting BIND"
+ [ -z "$PID" ] && /usr/sbin/named ${NAMED_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon named
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping BIND"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon named
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ reload)
+ stat_busy "Reloading BIND"
+ [ ! -z "$PID" ] && rndc reload &>/dev/null || kill -HUP $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|stop|reload|restart}"
+esac
+exit 0
diff --git a/extra/bind/named.conf b/extra/bind/named.conf
new file mode 100644
index 000000000..38fb12cbe
--- /dev/null
+++ b/extra/bind/named.conf
@@ -0,0 +1,64 @@
+//
+// /etc/named.conf
+//
+
+options {
+ directory "/var/named";
+ pid-file "/var/run/named/named.pid";
+ auth-nxdomain yes;
+ datasize default;
+// Uncomment these to enable IPv6 connections support
+// IPv4 will still work:
+// listen-on-v6 { any; };
+// Add this for no IPv4:
+// listen-on { none; };
+
+ // Default security settings.
+ allow-recursion { 127.0.0.1; };
+ allow-transfer { none; };
+ allow-update { none; };
+ version none;
+ hostname none;
+ server-id none;
+};
+
+zone "localhost" IN {
+ type master;
+ file "localhost.zone";
+ allow-transfer { any; };
+};
+
+zone "0.0.127.in-addr.arpa" IN {
+ type master;
+ file "127.0.0.zone";
+ allow-transfer { any; };
+};
+
+zone "." IN {
+ type hint;
+ file "root.hint";
+};
+
+//zone "example.org" IN {
+// type slave;
+// file "example.zone";
+// masters {
+// 192.168.1.100;
+// };
+// allow-query { any; };
+// allow-transfer { any; };
+//};
+
+logging {
+ channel xfer-log {
+ file "/var/log/named.log";
+ print-category yes;
+ print-severity yes;
+ print-time yes;
+ severity info;
+ };
+ category xfer-in { xfer-log; };
+ category xfer-out { xfer-log; };
+ category notify { xfer-log; };
+};
+
diff --git a/extra/bind/named.conf.d b/extra/bind/named.conf.d
new file mode 100644
index 000000000..aecbd2307
--- /dev/null
+++ b/extra/bind/named.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to BIND
+#
+NAMED_ARGS="-u named"
diff --git a/extra/bind/named.logrotate b/extra/bind/named.logrotate
new file mode 100644
index 000000000..ef1a2d032
--- /dev/null
+++ b/extra/bind/named.logrotate
@@ -0,0 +1,6 @@
+/var/log/named.log {
+ missingok
+ postrotate
+ /bin/kill -HUP `cat /var/run/named/named.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/extra/bind/notools.patch b/extra/bind/notools.patch
new file mode 100644
index 000000000..2d16fdcd5
--- /dev/null
+++ b/extra/bind/notools.patch
@@ -0,0 +1,11 @@
+--- bind-9.7.0/bin/Makefile.in.orig 2010-03-14 21:19:23.000000000 -0400
++++ bind-9.7.0/bin/Makefile.in 2010-03-14 21:19:37.000000000 -0400
+@@ -19,7 +19,7 @@
+ VPATH = @srcdir@
+ top_srcdir = @top_srcdir@
+
+-SUBDIRS = named rndc dig dnssec tests tools nsupdate \
++SUBDIRS = named rndc dnssec tests tools \
+ check confgen @PKCS11_TOOLS@
+ TARGETS =
+
diff --git a/extra/bind/so_bsdcompat.patch b/extra/bind/so_bsdcompat.patch
new file mode 100644
index 000000000..cae2b835c
--- /dev/null
+++ b/extra/bind/so_bsdcompat.patch
@@ -0,0 +1,13 @@
+diff -aur old/lib/isc/unix/socket.c new/lib/isc/unix/socket.c
+--- old/lib/isc/unix/socket.c 2010-03-12 04:25:20.000000000 +0100
++++ new/lib/isc/unix/socket.c 2011-01-22 21:07:52.410000038 +0100
+@@ -681,6 +681,8 @@
+ isc_sockstatscounter_fdwatchrecvfail
+ };
+
++#undef SO_BSDCOMPAT
++
+ static void
+ manager_log(isc__socketmgr_t *sockmgr,
+ isc_logcategory_t *category, isc_logmodule_t *module, int level,
+Only in new/lib/isc/unix: socket.c.orig
diff --git a/extra/bitlbee/PKGBUILD b/extra/bitlbee/PKGBUILD
new file mode 100644
index 000000000..15d0d5ae2
--- /dev/null
+++ b/extra/bitlbee/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 113245 2011-03-08 11:01:22Z bisson $
+# Contributor: FUBAR <mrfubar@gmail.com>
+# Contributor: simo <simo@archlinux.org>
+# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=bitlbee
+pkgver=3.0.2
+pkgrel=1
+pkgdesc='Brings instant messaging (XMPP, MSN, Yahoo!, AIM, ICQ, Twitter) to IRC'
+arch=('i686' 'x86_64')
+url='http://www.bitlbee.org/'
+license=('GPL')
+depends=('gnutls' 'glib2' 'libotr')
+optdepends=('xinetd: to run bitlbee through xinetd')
+source=("http://get.bitlbee.org/src/${pkgname}-${pkgver}.tar.gz"
+ 'bitlbee.xinetd'
+ 'bitlbee.rcd')
+sha1sums=('59113b1dc440ebd775e6cf324d1cfb698fb20cfc'
+ '5e0af27ba9cc4fe455e3381c75fc49a9326e2f17'
+ '299776783902cc2e20be49e2fe729572ca656383')
+
+backup=('etc/bitlbee/bitlbee.conf' 'etc/bitlbee/motd.txt' 'etc/xinetd.d/bitlbee')
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --etcdir=/etc/bitlbee \
+ --pidfile=/var/run/bitlbee/bitlbee.pid \
+ --ipcsocket=/var/run/bitlbee/bitlbee.sock \
+ --strip=0 \
+ --otr=1 \
+ --ssl=gnutls
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -dm755 "${pkgdir}"/var/{lib,run}
+ install -o65 -g65 -dm770 "${pkgdir}"/var/lib/bitlbee
+ install -o65 -g65 -dm755 "${pkgdir}"/var/run/bitlbee
+ install -Dm644 "${srcdir}"/bitlbee.xinetd "${pkgdir}"/etc/xinetd.d/bitlbee
+ install -Dm755 "${srcdir}"/bitlbee.rcd "${pkgdir}"/etc/rc.d/bitlbee
+
+ make DESTDIR="${pkgdir}" install
+ make DESTDIR="${pkgdir}" install-etc
+ make DESTDIR="${pkgdir}" install-dev
+}
diff --git a/extra/bitlbee/bitlbee.rcd b/extra/bitlbee/bitlbee.rcd
new file mode 100644
index 000000000..9597b4ab9
--- /dev/null
+++ b/extra/bitlbee/bitlbee.rcd
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof -o %PPID /usr/sbin/bitlbee
+}
+
+case "$1" in
+ start)
+ stat_busy 'Starting Bitlbee'
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/bitlbee/bitlbee.pid ] && rm -f /var/run/bitlbee/bitlbee.pid
+ su -s /bin/sh -c '/usr/sbin/bitlbee -F' 'bitlbee'
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon bitlbee
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy 'Stopping Bitlbee'
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/bitlbee/bitlbee.pid &> /dev/null
+ rm_daemon bitlbee
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/bitlbee/bitlbee.xinetd b/extra/bitlbee/bitlbee.xinetd
new file mode 100644
index 000000000..d671a8cfc
--- /dev/null
+++ b/extra/bitlbee/bitlbee.xinetd
@@ -0,0 +1,12 @@
+service bitlbee
+{
+ type = UNLISTED
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = bitlbee
+ group = bitlbee
+ server = /usr/sbin/bitlbee
+ port = 6667
+ disable = yes
+}
diff --git a/extra/bitlbee/install b/extra/bitlbee/install
new file mode 100644
index 000000000..0e1caa93f
--- /dev/null
+++ b/extra/bitlbee/install
@@ -0,0 +1,14 @@
+post_install() {
+ echo '==> Bitlbee can run through xinetd or as a daemon for now.'
+ getent group bitlbee &>/dev/null || groupadd -r -g 65 bitlbee >/dev/null
+ getent passwd bitlbee &>/dev/null || useradd -r -u 65 -g bitlbee -d /var/lib/bitlbee -s /bin/false -c bitlbee bitlbee >/dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ getent passwd bitlbee &>/dev/null && userdel bitlbee >/dev/null
+ getent group bitlbee &>/dev/null && groupdel bitlbee >/dev/null
+}
diff --git a/extra/blender/PKGBUILD b/extra/blender/PKGBUILD
new file mode 100644
index 000000000..9def1bfa1
--- /dev/null
+++ b/extra/blender/PKGBUILD
@@ -0,0 +1,143 @@
+# $Id: PKGBUILD 101917 2010-12-02 16:14:10Z ibiru $
+# Contributor: John Sowiak <john@archlinux.org>
+# Maintainer: tobias <tobias@archlinux.org>
+
+# TODO:
+# - consider switching to scons when it is better supported
+
+# Apparently, the blender guys refuse to release source tarballs for
+# intermediate releases that deal mainly with binaries but incorporate tiny
+# minor changes from cvs. Since I'm sick and tired of the urges of users that
+# look for release numbers only we make a messy PKGBUILD that can checkout cvs
+# tags if necessary.
+#cvs=true
+cvs=false
+
+pkgname=blender
+pkgver=2.49b
+pkgrel=2
+pkgdesc="A fully integrated 3D graphics creation suite"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.blender.org"
+depends=('libjpeg' 'libpng' 'openexr' 'sdl' 'python2' 'desktop-file-utils' \
+ 'gettext' 'libxi' 'libxmu' 'mesa' 'freetype2' 'openal')
+makedepends=('freeglut' 'libtiff' 'librsvg' 'yasm' 'csv')
+options=('!makeflags')
+install=blender.install
+source=($pkgname.desktop $pkgname.svg)
+if [ ! $cvs -o $cvs = false ]; then
+ makedepends=('freeglut' 'libtiff' 'librsvg' 'yasm')
+ source=(${source[@]} http://download.blender.org/source/$pkgname-$pkgver.tar.gz)
+ md5sums=('b5b9720b9430b1f5e2aa0b2df533fed8'
+ '0e53299444ff5570639c8f59372bc98c'
+ '718eef6a4ff377989e829b92a886cc5b')
+ sha1sums=('9ae82b5df21b4803f981e3df4a256b4be7137273'
+ '1e5452f56f590d5ce1af8c174113f0e639714c0c'
+ '43f71e7de4efe79c518d45f4b5a04e03c28d5fc5')
+fi
+
+build() {
+ if [ $cvs = true ]; then
+ cd "$srcdir/"
+ #cvs -d:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender login
+ cvs -z3 -d:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender checkout $pkgname
+ _cvsrel=$pkgname-$(echo $pkgver | sed 's/\./-/')-release
+ cvs -d:pserver:anonymous@cvs.blender.org:/cvsroot/bf-blender update -r $_cvsrel
+ find $pkgname/{bin,release/scripts} -name 'CVS' -exec rm -rf {} \; 2> /dev/null
+ cd $pkgname
+ else
+ cd "$srcdir/$pkgname-$pkgver"
+ fi
+
+ rm -f user-def.mk
+
+ ##########################################################################
+ # tweak the makefiles to prepare build for ArchLinux
+ # disable static binaries and enable blenderplayer binary
+ sed -i "s|^.*\(BINTARGETS += blenderstatic\)| #\1|g" source/Makefile
+ sed -i "s|^#\(.*BINTARGETS += blenderplayer\)|\1|g" source/Makefile
+ # link freetype and openal dynamically
+ sed -i 's|LOPTS)|LOPTS) -lfreetype -lopenal|g' source/Makefile
+ sed -i 's|COMLIB.*libfreetype\.a|#\0|g' source/Makefile
+ sed -i 's|NAN_SND_LIBS.*libopenal\.a|#\0|g' source/Makefile
+ # make ode (alternative physics engine)
+ # does not work for Arch64
+ #[ "$CARCH" = "i686" ] && sed -i 's|^\(DIRS.*\)$|\1 ode|' extern/Makefile
+ # make the nan_makefiles happy
+ export NAN_PYTHON_VERSION=2.7
+ export INTERNATIONAL=true
+ export WITH_FREETYPE2=true
+ export NAN_FREETYPE=/usr
+ export WITH_ICONV=true
+
+ export NAN_NO_PLUGIN=true
+
+ export NAN_OPENAL=/usr
+ export NAN_FMOD=/usr
+ export NAN_JPEG=/usr
+ export NAN_PNG=/usr
+ export WITH_OPENEXR=true
+ export NAN_OPENEXR=/usr
+ export NAN_ODE=/usr
+ export NAN_OPENEXR_LIBS=$(pkg-config --libs-only-l OpenEXR)
+
+ export NAN_SDL=/usr
+ export NAN_ZLIB=/usr
+ export NAN_MESA=/usr
+
+ export NAN_USE_BULLET=true
+ export NAN_USE_FFMPEG_CONFIG=true
+ export WITH_BF_VERSE=true
+ export WITH_VERSE=true
+ export WITH_BF_OPENMP=true
+ # there is an issue with a file
+ export NAN_DEBUG=-O
+ ###########################################################################
+ # build
+ LDFLAGS="-Wl,--hash-style=gnu"
+ make
+ ###########################################################################
+}
+
+package() {
+ if [ $cvs = true ]; then
+ cd "$srcdir/$pkgname"
+ else
+ cd "$srcdir/$pkgname-$pkgver"
+ fi
+
+ cd obj/linux-glibc2*/bin
+
+# common part
+
+ mkdir -p "$pkgdir/usr/share/"
+
+ # install binaries
+ install -Dm755 blender "$pkgdir/usr/bin/blender"
+ install -Dm755 blenderplayer "$pkgdir/usr/bin/blenderplayer"
+
+ # install internationalization support
+ cd ../../../bin/.blender
+ install -D -m644 .Blanguages \
+ "$pkgdir/usr/share/$pkgname/.Blanguages"
+ install -D -m644 .bfont.ttf \
+ "$pkgdir/usr/share/$pkgname/.bfont.ttf"
+
+ cp -R locale "$pkgdir/usr/share/"
+
+ # install scripts
+ cd ../../release/
+ cp -R scripts "$pkgdir/usr/share/$pkgname/"
+sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' "$pkgdir/usr/share/blender/scripts/bpymodules/blend2renderinfo.py"
+
+ # install all additional stuff
+ # install a freedesktop.org compliant menu entry
+ install -Dm644 "$srcdir/$pkgname.desktop" "$pkgdir/usr/share/applications/$pkgname.desktop"
+ # install some freedesktop.org compatibility
+ install -D -m644 "$srcdir/$pkgname.svg" "$pkgdir/usr/share/pixmaps/$pkgname.svg"
+ # finally we render a png as fallback for not svg aware menu applications
+ # Attention: always make sure you check the dimensions of the source-svg,
+ # you can read the dimensions via inkscape's export function
+ rsvg -w 64 -h 64 -f png "$pkgdir/usr/share/pixmaps/$pkgname.svg" "$pkgdir/usr/share/pixmaps/$pkgname.png"
+}
diff --git a/extra/blender/blender.desktop b/extra/blender/blender.desktop
new file mode 100644
index 000000000..71893dc4a
--- /dev/null
+++ b/extra/blender/blender.desktop
@@ -0,0 +1,19 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Blender
+Name[da]=Blender
+Name[nl]=Blender
+Name[no]=Blender
+Name[de]=Blender
+Name[es]=Blender
+Comment=A 3D program
+Comment[es]=Un programa de 3D
+Comment[no]=Et 3d-program
+Comment[da]=Et program til 3d-modelering
+Exec=blender
+Icon=blender
+Terminal=false
+X-MultipleArgs=false
+Type=Application
+Categories=Application;Graphics;3DGraphics;
+MimeType=application/blender;application/x-blender;
diff --git a/extra/blender/blender.install b/extra/blender/blender.install
new file mode 100644
index 000000000..0cc7aef46
--- /dev/null
+++ b/extra/blender/blender.install
@@ -0,0 +1,28 @@
+post_install() {
+ cat << EOF
+
+NOTE
+----
+blender is using the NAN makefiles to build, so we can access some better
+features:
+ - i18n support
+ - anti-aliased interface fonts
+ - gameplayer
+We also ship the plugins, but most of these features can be accessed only
+from the users home directory. Therefore, you wanna copy everything from
+/usr/share/blender to ~/.blender (some are hidden files!). The browser-
+plugin builds but is using an old mozilla API, this is why it doesn't work
+and we don't ship it.
+Happy blending!
+
+EOF
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/extra/blender/blender.svg b/extra/blender/blender.svg
new file mode 100644
index 000000000..ab61cc362
--- /dev/null
+++ b/extra/blender/blender.svg
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ id="svg1573"
+ sodipodi:version="0.32"
+ inkscape:version="0.39"
+ width="100.00000pt"
+ height="100.00000pt"
+ sodipodi:docbase="/home/build/abs/extra/multimedia/blender"
+ sodipodi:docname="blender.svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs
+ id="defs1575">
+ <linearGradient
+ id="linearGradient1792">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.42937854;"
+ offset="0.0000000"
+ id="stop1793" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.12429378;"
+ offset="0.63222224"
+ id="stop1795" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1794" />
+ </linearGradient>
+ <radialGradient
+ xlink:href="#linearGradient1792"
+ id="radialGradient1950"
+ cx="0.50000000"
+ cy="0.50000000"
+ r="0.50000000"
+ fx="0.67944252"
+ fy="0.19298245" />
+ <linearGradient
+ id="linearGradient1606">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.0000000"
+ id="stop1607" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1608" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="7.9999998"
+ inkscape:cx="50.134523"
+ inkscape:cy="35.997949"
+ inkscape:window-width="1272"
+ inkscape:window-height="1002"
+ showgrid="true"
+ snaptogrid="false"
+ gridspacingy="10.000000pt"
+ gridspacingx="10.000000pt"
+ gridoriginy="0.0000000pt"
+ gridoriginx="0.0000000pt"
+ gridtolerance="2.0000000px"
+ inkscape:grid-bbox="true"
+ inkscape:grid-points="true"
+ inkscape:window-x="1282"
+ inkscape:window-y="0" />
+ <metadata
+ id="metadata1576">
+ <rdf:RDF
+ id="RDF1577">
+ <cc:Work
+ rdf:about=""
+ id="Work1578">
+ <dc:description
+ id="description1579">Created with Inkscape
+http://www.inkscape.org/</dc:description>
+ <dc:format
+ id="format1581">image/svg+xml</dc:format>
+ <dc:type
+ id="type1583"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title
+ id="title1606">ML-Term Icon</dc:title>
+ <dc:date
+ id="date1608">2004-07-14</dc:date>
+ <dc:creator
+ id="creator1610">
+ <cc:Agent
+ id="Agent1611">
+ <dc:title
+ id="title1612">Tobias Kieslich</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:coverage
+ id="coverage1614" />
+ <cc:license
+ id="license1616"
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/"
+ id="License1624">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction"
+ id="permits1625" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution"
+ id="permits1626" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice"
+ id="requires1627" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks"
+ id="permits1628" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike"
+ id="requires1629" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode"
+ id="requires1630" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient1950);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;"
+ id="path1827"
+ sodipodi:cx="29.010935"
+ sodipodi:cy="58.727592"
+ sodipodi:rx="23.157850"
+ sodipodi:ry="23.157850"
+ d="M 52.168785 58.727592 A 23.157850 23.157850 0 1 0 5.8530846,58.727592 A 23.157850 23.157850 0 1 0 52.168785 58.727592 z"
+ transform="matrix(2.556262,0.000000,0.000000,0.770827,-8.357083,60.08188)" />
+ <g
+ id="g1084"
+ transform="matrix(4.277757,0.000000,0.000000,4.277757,-244.4442,-256.4384)">
+ <path
+ style="fill:#e79100;fill-rule:evenodd;stroke:#000000;stroke-width:2.5581360;"
+ d="M 70.183754,64.486103 C 70.970246,65.122765 71.746941,65.771669 72.540115,66.399985 C 69.453580,66.550314 66.336707,66.536916 63.267234,66.751339 C 61.553800,66.933280 62.119503,69.750024 63.656883,69.617641 C 64.925860,69.617641 66.194837,69.617641 67.463814,69.617641 C 64.899642,71.537080 62.334113,73.454704 59.769421,75.373447 C 57.974777,76.830324 59.759220,79.624301 61.528139,78.790956 C 62.843668,78.218932 63.672855,76.918567 64.775590,76.029244 C 65.272386,75.762533 66.061744,74.237148 66.195454,75.421789 C 66.812356,77.527269 68.113458,79.532317 70.023285,80.657078 C 78.453997,86.618341 88.293096,75.890516 82.467250,70.321032 C 81.347167,68.630878 79.527221,67.572142 77.996121,66.287702 C 76.220705,64.972085 74.509428,63.515316 72.695293,62.285243 C 70.961182,60.910865 68.645443,63.114782 70.183754,64.486103 z "
+ id="path1829"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ style="fill:#e79100;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.63953400pt;"
+ d="M 70.479501,64.479682 C 71.265993,65.116344 72.042688,65.765247 72.835862,66.393564 C 69.749327,66.543893 66.632454,66.530495 63.562981,66.744917 C 61.849547,66.926859 62.415250,69.743603 63.952630,69.611219 C 65.221607,69.611219 66.490584,69.611219 67.759561,69.611219 C 65.195389,71.530659 62.629860,73.448283 60.065168,75.367025 C 58.270524,76.823903 60.054967,79.617880 61.823886,78.784535 C 63.139415,78.212510 63.968602,76.912146 65.071337,76.022823 C 65.568133,75.756111 66.357491,74.230727 66.491201,75.415368 C 67.108103,77.520848 68.409205,79.525896 70.319032,80.650657 C 78.749744,86.611920 88.588843,75.884095 82.762997,70.314611 C 81.642914,68.624457 79.822968,67.565721 78.291868,66.281281 C 76.516452,64.965664 74.805175,63.508895 72.991040,62.278821 C 71.256929,60.904444 68.941190,63.108361 70.479501,64.479682 z "
+ id="path1831"
+ sodipodi:nodetypes="cccccccccccccc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:#345c87;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.4483387;"
+ id="path1832"
+ sodipodi:cx="28.791338"
+ sodipodi:cy="24.460691"
+ sodipodi:rx="5.3983760"
+ sodipodi:ry="5.0384841"
+ d="M 34.189714 24.460691 A 5.3983760 5.0384841 0 1 0 23.392962,24.460691 A 5.3983760 5.0384841 0 1 0 34.189714 24.460691 z"
+ transform="matrix(0.822413,0.000000,0.000000,0.822413,51.33976,53.33570)" />
+ </g>
+</svg>
diff --git a/extra/bluedevil/PKGBUILD b/extra/bluedevil/PKGBUILD
new file mode 100644
index 000000000..eb2a7f48e
--- /dev/null
+++ b/extra/bluedevil/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116735 2011-03-25 15:41:57Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=bluedevil
+pkgver=1.0.3
+pkgrel=1
+pkgdesc='KDE bluetooth framework'
+arch=('i686' 'x86_64')
+url="https://projects.kde.org/projects/extragear/base/bluedevil"
+license=('GPL')
+depends=('kdebase-workspace' 'libbluedevil' 'obex-data-server' 'obexd-client')
+makedepends=('cmake' 'automoc4')
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('a2d4aa126f86dbc1f429a3aa9e95671d')
+
+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/extra/bluedevil/bluedevil.install b/extra/bluedevil/bluedevil.install
new file mode 100644
index 000000000..8652c4ad4
--- /dev/null
+++ b/extra/bluedevil/bluedevil.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/bluefish/PKGBUILD b/extra/bluefish/PKGBUILD
new file mode 100644
index 000000000..e0e160d4d
--- /dev/null
+++ b/extra/bluefish/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110956 2011-02-23 10:09:47Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=bluefish
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="A powerful HTML editor for experienced web designers and programmers"
+arch=('i686' 'x86_64')
+url="http://bluefish.openoffice.nl/"
+license=('GPL3')
+depends=('pcre' 'gtk2' 'enchant' 'desktop-file-utils' 'shared-mime-info')
+makedepends=('gucharmap' 'intltool')
+optdepends=('gucharmap: for using the charmap plugin')
+options=('!libtool')
+install=bluefish.install
+source=(http://www.bennewitz.com/bluefish/stable/source/bluefish-${pkgver}.tar.bz2)
+md5sums=('4c062fcb1f90f91a35687b877d37d6dd')
+sha1sums=('ab6b16d50faca169c25001d5a26ca8b84ddb1019')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --enable-spell-check --disable-update-databases --disable-xml-catalog-update
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/bluefish/bluefish.install b/extra/bluefish/bluefish.install
new file mode 100644
index 000000000..c5464fa9d
--- /dev/null
+++ b/extra/bluefish/bluefish.install
@@ -0,0 +1,28 @@
+post_install() {
+ if [ ! -d etc/xml ]; then
+ mkdir -p etc/xml
+ fi
+ if [ ! -e etc/xml/catalog ]; then
+ xmlcatalog --noout --create etc/xml/catalog
+ fi
+ xmlcatalog --noout --add 'delegateURI' \
+ 'http://bluefish.openoffice.nl/ns/bflang/2.0/' /usr/share/xml/bluefish \
+ etc/xml/catalog
+
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ post_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ xmlcatalog --noout --del \
+ /usr/share/xml/bluefish etc/xml/catalog
+}
diff --git a/extra/bluez-hcidump/PKGBUILD b/extra/bluez-hcidump/PKGBUILD
new file mode 100644
index 000000000..a7ad9827c
--- /dev/null
+++ b/extra/bluez-hcidump/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 108242 2011-01-30 15:00:57Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy carrier <geoffroy@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=bluez-hcidump
+pkgver=2.0
+pkgrel=1
+pkgdesc="Bluetooth HCI package analyzer"
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('glibc' 'bluez')
+source=(http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5c2e3ef0a68b2845047867ba51ff8ac9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/bluez/PKGBUILD b/extra/bluez/PKGBUILD
new file mode 100644
index 000000000..d281822c3
--- /dev/null
+++ b/extra/bluez/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 115264 2011-03-17 15:35:14Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+
+pkgname=bluez
+pkgver=4.90
+pkgrel=1
+pkgdesc="Libraries and tools for the Bluetooth protocol stack"
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('dbus-core')
+makedepends=('gstreamer0.10-base' 'libusb-compat' 'libnl' 'libsndfile')
+optdepends=("gstreamer0.10-base: bluetooth GStreamer support"
+ "alsa-lib: Audio bluetooth devices support"
+ "dbus-python: to run bluez-simple-agent"
+ "pygobject: to run bluez-simple-agent"
+ "libusb-compat: USB adapters support"
+ "cups: CUPS backend"
+ "libnl: netlink plugin")
+conflicts=('bluez-libs' 'bluez-utils')
+provides=('bluez-libs' 'bluez-utils')
+replaces=('bluez-libs' 'bluez-utils')
+options=('!libtool')
+backup=(etc/bluetooth/{main,rfcomm,audio,network,input,serial}.conf
+ 'etc/conf.d/bluetooth' 'etc/dbus-1/system.d/bluetooth.conf')
+source=("http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.bz2"
+ 'bluetooth.conf.d'
+ 'rc.bluetooth')
+md5sums=('b111de22ff0f5c2b31f62b6be44dca00'
+ '8f60a5eb9d84b9c64c478d63e1c24b10'
+ 'ca4c39eb4bb201bd2eacad01492cd735')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/lib \
+ --enable-gstreamer \
+ --enable-alsa \
+ --enable-usb \
+ --enable-tools \
+ --enable-bccmd \
+ --enable-dfutool \
+ --enable-hidd \
+ --enable-pand \
+ --enable-dund \
+ --enable-cups \
+ --enable-udevrules \
+ --enable-configfiles
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -Dm755 ${srcdir}/rc.bluetooth ${pkgdir}/etc/rc.d/bluetooth
+
+ install -d ${pkgdir}/etc/bluetooth
+ install -m644 network/network.conf \
+ input/input.conf \
+ audio/audio.conf \
+ serial/serial.conf \
+ ${pkgdir}/etc/bluetooth/
+
+ install -Dm644 ${srcdir}/bluetooth.conf.d \
+ ${pkgdir}/etc/conf.d/bluetooth
+
+ install -Dm755 test/simple-agent ${pkgdir}/usr/bin/bluez-simple-agent
+ sed -i 's#/usr/bin/python#/usr/bin/python2#' \
+ ${pkgdir}/usr/bin/bluez-simple-agent
+}
diff --git a/extra/bluez/bluetooth.conf.d b/extra/bluez/bluetooth.conf.d
new file mode 100644
index 000000000..6648740eb
--- /dev/null
+++ b/extra/bluez/bluetooth.conf.d
@@ -0,0 +1,30 @@
+# Bluetooth configuraton file
+
+# Bluetooth services (allowed values are "true" and "false")
+
+# Run the bluetoothd daemon (default: true)
+#DAEMON_ENABLE="false"
+
+# Run the sdp daemon (default: false)
+# If this is disabled, hcid's internal sdp daemon will be used
+#SDPD_ENABLE="true"
+
+# Run the bluetooth HID daemon (default: false)
+#HIDD_ENABLE="true"
+
+# Activate rfcomm ports (default: false)
+#RFCOMM_ENABLE="true"
+
+# Run bluetooth dial-up networking daemon (default: false)
+#DUND_ENABLE="true"
+
+# Run bluetooth PAN daemon (default: false)
+#PAND_ENABLE="true"
+
+# rfcomm configuration file (default: /etc/bluetooth/rfcomm.conf)
+#RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
+
+# Options for hidd, dund and pand (default: none)
+#HIDD_OPTIONS=""
+#DUND_OPTIONS=""
+#PAND_OPTIONS=""
diff --git a/extra/bluez/rc.bluetooth b/extra/bluez/rc.bluetooth
new file mode 100644
index 000000000..096242011
--- /dev/null
+++ b/extra/bluez/rc.bluetooth
@@ -0,0 +1,100 @@
+#!/bin/bash
+#
+# Start/stop the Bluetooth daemons
+#
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON_NAME="bluetoothd"
+HIDD_NAME="hidd"
+RFCOMM_NAME="rfcomm"
+PAND_NAME="pand"
+DUND_NAME="dund"
+
+DAEMON_EXEC="/usr/sbin/bluetoothd"
+HIDD_EXEC="/usr/bin/hidd"
+RFCOMM_EXEC="/usr/bin/rfcomm"
+PAND_EXEC="/usr/bin/pand"
+DUND_EXEC="/usr/bin/dund"
+
+DAEMON_ENABLE="true"
+HIDD_ENABLE="false"
+RFCOMM_ENABLE="false"
+DUND_ENABLE="false"
+PAND_ENABLE="false"
+
+RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
+
+HIDD_OPTIONS=""
+DUND_OPTIONS=""
+PAND_OPTIONS=""
+
+[ -f /etc/conf.d/bluetooth ] && . /etc/conf.d/bluetooth
+
+case "$1" in
+ start)
+ stat_busy "Starting bluetooth subsystem:"
+ if [ "$DAEMON_ENABLE" = "true" -a -x "$DAEMON_EXEC" ] ; then
+ stat_append " $DAEMON_NAME"
+ $DAEMON_EXEC
+ sleep 1
+ fi
+ if [ "$SDPD_ENABLE" = "true" -a -x "$SDPD_EXEC" ] ; then
+ stat_append " $SDPD_NAME"
+ $SDPD_EXEC
+ fi
+ if [ "$HIDD_ENABLE" = "true" -a -x "$HIDD_EXEC" ]; then
+ stat_append " $HIDD_NAME"
+ $HIDD_EXEC $HIDD_OPTIONS --server
+ fi
+ if [ "$RFCOMM_ENABLE" = "true" -a -x "$RFCOMM_EXEC" -a -f "$RFCOMM_CONFIG" ]; then
+ stat_append " $RFCOMM_NAME"
+ $RFCOMM_EXEC -f $RFCOMM_CONFIG bind all
+ fi
+ if [ "$DUND_ENABLE" = "true" -a -x "$DUND_EXEC" -a -n "$DUND_OPTIONS" ]; then
+ stat_append " $DUND_NAME"
+ $DUND_EXEC $DUND_OPTIONS
+ fi
+ if [ "$PAND_ENABLE" = "true" -a -x "$PAND_EXEC" -a -n "$PAND_OPTIONS" ]; then
+ stat_append " $PAND_NAME"
+ $PAND_EXEC $PAND_OPTIONS
+ fi
+ add_daemon bluetooth
+ stat_done
+ ;;
+ stop)
+ stat_busy "Stopping bluetooth subsystem:"
+
+ stat_append " $PAND_NAME"
+ killall $PAND_NAME >/dev/null 2>&1
+
+ stat_append " $DUND_NAME"
+ killall $DUND_NAME >/dev/null 2>&1
+
+ if [ -x "$RFCOMM_EXEC" ]; then
+ stat_append " $RFCOMM_NAME"
+ $RFCOMM_EXEC release all >/dev/null 2>&1
+ fi
+
+ stat_append " $HIDD_NAME"
+ killall $HIDD_NAME >/dev/null 2>&1
+
+ stat_append " $SDPD_NAME"
+ killall $SDPD_NAME >/dev/null 2>&1
+
+ stat_append " $DAEMON_NAME"
+ killall $DAEMON_NAME >/dev/null 2>&1
+
+ rm_daemon bluetooth
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/bmp-musepack/PKGBUILD b/extra/bmp-musepack/PKGBUILD
new file mode 100644
index 000000000..2cd7d1898
--- /dev/null
+++ b/extra/bmp-musepack/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 30184 2009-03-17 03:27:59Z eric $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Nikos Kouremenos <nk@ebox.gr>
+
+pkgname=bmp-musepack
+pkgver=1.2
+pkgrel=3
+pkgdesc="A BMP plugin for playing sounds in Musepack (MPC) format"
+arch=(i686 x86_64)
+url="http://musepack.net/"
+license=('BSD')
+depends=('bmp' 'libmpcdec>=1.2.5' 'taglib')
+groups=('bmp-plugins' 'bmp-io-plugins')
+options=('!libtool')
+source=(http://files.musepack.net/linux/plugins/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('5fe0c9d341ca37d05c780a478f829a5f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/bmp-wma/PKGBUILD b/extra/bmp-wma/PKGBUILD
new file mode 100644
index 000000000..edf54ae20
--- /dev/null
+++ b/extra/bmp-wma/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 49817 2009-08-16 16:08:10Z jgc $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Ewoud Nuyts <ewoud.nuyts@gmail.com>
+
+pkgname=bmp-wma
+pkgver=0.1.1
+pkgrel=3
+pkgdesc="WMA plugin for Beep Media Player"
+url="http://bmp-plugins.berlios.de/novelian/project.php?p=bmp-wma"
+license=('GPL')
+arch=('x86_64' 'i686')
+depends=('bmp')
+groups=('bmp-plugins' 'bmp-io-plugins')
+options=(!libtool !emptydirs)
+source=(http://download.berlios.de/bmp-plugins/${pkgname}-${pkgver}.tar.gz
+ bmp-wma-gcc4.patch)
+md5sums=('8dcf3fcdb10e8e2e386f70745812412b'
+ '730eba8f41e989dd8b56c18bcc826cc4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/bmp-wma-gcc4.patch" || return 1
+ if [ "${CARCH}" = "x86_64" ]; then
+ export CFLAGS="${CFLAGS} -fPIC"
+ fi
+ ./configure --prefix=/usr --disable-static || return 1
+ echo '#define HAVE_LRINTF 1' >> config.h
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/bmp-wma/bmp-wma-gcc4.patch b/extra/bmp-wma/bmp-wma-gcc4.patch
new file mode 100644
index 000000000..9d773e89e
--- /dev/null
+++ b/extra/bmp-wma/bmp-wma-gcc4.patch
@@ -0,0 +1,98 @@
+--- src/libffwma/avcodec.h.orig 2005-10-07 11:49:36.000000000 -0400
++++ src/libffwma/avcodec.h 2005-10-07 11:51:09.000000000 -0400
+@@ -11,6 +11,43 @@
+ extern "C" {
+ #endif
+
++
++/**
++ * AVOption.
++ */
++typedef struct AVOption {
++ /** options' name */
++ const char *name; /* if name is NULL, it indicates a link to next */
++ /** short English text help or const struct AVOption* subpointer */
++ const char *help; // const struct AVOption* sub;
++ /** offset to context structure where the parsed value should be stored */
++ int offset;
++ /** options' type */
++ int type;
++#define FF_OPT_TYPE_BOOL 1 ///< boolean - true,1,on (or simply presence)
++#define FF_OPT_TYPE_DOUBLE 2 ///< double
++#define FF_OPT_TYPE_INT 3 ///< integer
++#define FF_OPT_TYPE_STRING 4 ///< string (finished with \0)
++#define FF_OPT_TYPE_MASK 0x1f ///< mask for types - upper bits are various flags
++//#define FF_OPT_TYPE_EXPERT 0x20 // flag for expert option
++#define FF_OPT_TYPE_FLAG (FF_OPT_TYPE_BOOL | 0x40)
++#define FF_OPT_TYPE_RCOVERRIDE (FF_OPT_TYPE_STRING | 0x80)
++ /** min value (min == max -> no limits) */
++ double min;
++ /** maximum value for double/int */
++ double max;
++ /** default boo [0,1]l/double/int value */
++ double defval;
++ /**
++ * default string value (with optional semicolon delimited extra option-list
++ * i.e. option1;option2;option3
++ * defval might select other then first argument as default
++ */
++ const char *defstr;
++#define FF_OPT_MAX_DEPTH 10
++} AVOption;
++
++
+ #include "common.h"
+ #include <sys/types.h> /* size_t */
+
+@@ -1396,41 +1433,6 @@
+
+
+ /**
+- * AVOption.
+- */
+-typedef struct AVOption {
+- /** options' name */
+- const char *name; /* if name is NULL, it indicates a link to next */
+- /** short English text help or const struct AVOption* subpointer */
+- const char *help; // const struct AVOption* sub;
+- /** offset to context structure where the parsed value should be stored */
+- int offset;
+- /** options' type */
+- int type;
+-#define FF_OPT_TYPE_BOOL 1 ///< boolean - true,1,on (or simply presence)
+-#define FF_OPT_TYPE_DOUBLE 2 ///< double
+-#define FF_OPT_TYPE_INT 3 ///< integer
+-#define FF_OPT_TYPE_STRING 4 ///< string (finished with \0)
+-#define FF_OPT_TYPE_MASK 0x1f ///< mask for types - upper bits are various flags
+-//#define FF_OPT_TYPE_EXPERT 0x20 // flag for expert option
+-#define FF_OPT_TYPE_FLAG (FF_OPT_TYPE_BOOL | 0x40)
+-#define FF_OPT_TYPE_RCOVERRIDE (FF_OPT_TYPE_STRING | 0x80)
+- /** min value (min == max -> no limits) */
+- double min;
+- /** maximum value for double/int */
+- double max;
+- /** default boo [0,1]l/double/int value */
+- double defval;
+- /**
+- * default string value (with optional semicolon delimited extra option-list
+- * i.e. option1;option2;option3
+- * defval might select other then first argument as default
+- */
+- const char *defstr;
+-#define FF_OPT_MAX_DEPTH 10
+-} AVOption;
+-
+-/**
+ * Parse option(s) and sets fields in passed structure
+ * @param strct structure where the parsed results will be written
+ * @param list list with AVOptions
+--- src/libffwma/dsputil.h.orig 2005-10-07 11:51:59.000000000 -0400
++++ src/libffwma/dsputil.h 2005-10-07 11:52:17.000000000 -0400
+@@ -28,7 +28,6 @@
+ #ifndef DSPUTIL_H
+ #define DSPUTIL_H
+
+-#include "common.h"
+ #include "avcodec.h"
+
+
diff --git a/extra/bmp/0.9.7.1-visualization.patch b/extra/bmp/0.9.7.1-visualization.patch
new file mode 100644
index 000000000..ac03323f6
--- /dev/null
+++ b/extra/bmp/0.9.7.1-visualization.patch
@@ -0,0 +1,12 @@
+--- beep/vis.c 2004-12-04 10:04:29.000000000 +0100
++++ beep/vis.c 2005-02-17 12:02:25.391044008 +0100
+@@ -223,7 +223,8 @@ vis_draw(Widget * w)
+ /* FIXME: The check "shouldn't" be neccessary? */
+ /* if (GTK_IS_WINDOW(vis->vs_window)) { */
+ GDK_THREADS_ENTER();
+- gdk_draw_indexed_image(vis->vs_window, vis->vs_widget.gc,
++ if (GDK_IS_DRAWABLE(vis->vs_window))
++ gdk_draw_indexed_image(vis->vs_window, vis->vs_widget.gc,
+ vis->vs_widget.x, vis->vs_widget.y,
+ vis->vs_widget.width, vis->vs_widget.height,
+ GDK_RGB_DITHER_NORMAL, (guchar *) rgb_data,
diff --git a/extra/bmp/PKGBUILD b/extra/bmp/PKGBUILD
new file mode 100644
index 000000000..1cb44d79c
--- /dev/null
+++ b/extra/bmp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 30185 2009-03-17 03:43:05Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=bmp
+pkgver=0.9.7.1
+pkgrel=5
+pkgdesc="gtk2 port of xmms"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/beepmp/"
+license=('GPL')
+depends=('esound' 'id3lib' 'libglade' 'libsm' 'libvorbis' 'unzip')
+makedepends=('libxt')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/beepmp/${pkgname}-${pkgver}.tar.gz ${pkgver}-visualization.patch bmp-${pkgver}-crossfade-0.3.9.patch)
+md5sums=('c25d5a8d49cc5851d13d525a20023c4c' 'fa1bdf5a8d03e8539a6bed5caa471176'\
+ '42ad4109ddb66024d4c6d1f3e572ab86')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 -i ../${pkgver}-visualization.patch || return 1
+ patch -p1 -i ../${pkgname}-${pkgver}-crossfade-0.3.9.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/bmp/bmp-0.9.7.1-crossfade-0.3.9.patch b/extra/bmp/bmp-0.9.7.1-crossfade-0.3.9.patch
new file mode 100644
index 000000000..4c1e46da9
--- /dev/null
+++ b/extra/bmp/bmp-0.9.7.1-crossfade-0.3.9.patch
@@ -0,0 +1,108 @@
+Patch taken from xmms-crossfade 3.10 tarball. Required for crossfade to
+work. http://www.eisenlohr.org/xmms-crossfade/
+
+diff -ur bmp-0.9.7.1/beep/mainwin.c bmp-0.9.7.1.patched/beep/mainwin.c
+--- bmp-0.9.7.1/beep/mainwin.c 2005-05-09 10:45:39.000000000 +0200
++++ bmp-0.9.7.1.patched/beep/mainwin.c 2005-11-25 00:03:59.000000000 +0100
+@@ -655,9 +655,11 @@
+ mainwin_set_shade(!cfg.player_shaded);
+ }
+
++gboolean is_quitting = FALSE;
+ void
+ mainwin_quit_cb(void)
+ {
++ is_quitting = TRUE;
+ gtk_widget_hide(equalizerwin);
+ gtk_widget_hide(playlistwin);
+ gtk_widget_hide(mainwin);
+@@ -1318,7 +1320,7 @@
+ change_song(guint pos)
+ {
+ if (bmp_playback_get_playing())
+- bmp_playback_stop();
++ bmp_playback_stop_for_restart();
+
+ playlist_set_position(pos);
+ bmp_playback_initiate();
+diff -ur bmp-0.9.7.1/beep/playback.c bmp-0.9.7.1.patched/beep/playback.c
+--- bmp-0.9.7.1/beep/playback.c 2005-01-26 06:56:15.000000000 +0100
++++ bmp-0.9.7.1.patched/beep/playback.c 2005-11-25 00:03:59.000000000 +0100
+@@ -89,7 +89,7 @@
+ return;
+
+ if (bmp_playback_get_playing())
+- bmp_playback_stop();
++ bmp_playback_stop_for_restart();
+
+ vis_clear_data(mainwin_vis);
+ vis_clear_data(playlistwin_vis);
+@@ -135,6 +135,15 @@
+ get_current_input_plugin()->pause(ip_data.paused);
+ }
+
++gboolean input_stopped_for_restart = FALSE;
++void
++bmp_playback_stop_for_restart(void)
++{
++ input_stopped_for_restart = TRUE;
++ bmp_playback_stop();
++ input_stopped_for_restart = FALSE;
++}
++
+ void
+ bmp_playback_stop(void)
+ {
+diff -ur bmp-0.9.7.1/beep/playback.h bmp-0.9.7.1.patched/beep/playback.h
+--- bmp-0.9.7.1/beep/playback.h 2004-12-04 10:04:26.000000000 +0100
++++ bmp-0.9.7.1.patched/beep/playback.h 2005-11-25 00:03:59.000000000 +0100
+@@ -26,6 +26,7 @@
+ void bmp_playback_initiate(void);
+ void bmp_playback_pause(void);
+ void bmp_playback_stop(void);
++void bmp_playback_stop_for_restart(void);
+ gboolean bmp_playback_play_file(const gchar * filename);
+ gboolean bmp_playback_get_playing(void);
+ gboolean bmp_playback_get_paused(void);
+diff -ur bmp-0.9.7.1/beep/playlist.c bmp-0.9.7.1.patched/beep/playlist.c
+--- bmp-0.9.7.1/beep/playlist.c 2005-08-11 09:25:51.000000000 +0200
++++ bmp-0.9.7.1.patched/beep/playlist.c 2005-11-25 00:03:59.000000000 +0100
+@@ -817,7 +817,7 @@
+ if (bmp_playback_get_playing()) {
+ /* We need to stop before changing playlist_position */
+ PLAYLIST_UNLOCK();
+- bmp_playback_stop();
++ bmp_playback_stop_for_restart();
+ PLAYLIST_LOCK();
+ restart_playing = TRUE;
+ }
+@@ -868,7 +868,7 @@
+ if (bmp_playback_get_playing()) {
+ /* We need to stop before changing playlist_position */
+ PLAYLIST_UNLOCK();
+- bmp_playback_stop();
++ bmp_playback_stop_for_restart();
+ PLAYLIST_LOCK();
+ restart_playing = TRUE;
+ }
+@@ -1018,7 +1018,7 @@
+ if (bmp_playback_get_playing()) {
+ /* We need to stop before changing playlist_position */
+ PLAYLIST_UNLOCK();
+- bmp_playback_stop();
++ bmp_playback_stop_for_restart();
+ PLAYLIST_LOCK();
+ restart_playing = TRUE;
+ }
+@@ -1047,7 +1047,10 @@
+ {
+ GList *plist_pos_list;
+
+- bmp_playback_stop();
++ if (cfg.repeat)
++ bmp_playback_stop_for_restart();
++ else
++ bmp_playback_stop();
+
+ PLAYLIST_LOCK();
+ plist_pos_list = find_playlist_position_list();
diff --git a/extra/bochs/2.4.5-fetchcode.patch b/extra/bochs/2.4.5-fetchcode.patch
new file mode 100644
index 000000000..ef980a340
--- /dev/null
+++ b/extra/bochs/2.4.5-fetchcode.patch
@@ -0,0 +1,45 @@
+--- cpu/fetchdecode.cc.orig 2010-04-16 15:52:44.000000000 -0400
++++ cpu/fetchdecode.cc 2010-10-07 13:23:06.000000000 -0400
+@@ -1,5 +1,5 @@
+ /////////////////////////////////////////////////////////////////////////
+-// $Id: fetchdecode.cc,v 1.266 2010/04/16 19:52:44 sshwarts Exp $
++// $Id: fetchdecode.cc,v 1.267 2010/04/29 21:04:23 sshwarts Exp $
+ /////////////////////////////////////////////////////////////////////////
+ //
+ // Copyright (C) 2001-2009 The Bochs Project
+@@ -474,7 +474,7 @@
+ /* 0F 0D /wr */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel
+ /* 0F 0E /wr */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS
+ #if BX_SUPPORT_3DNOW
+- /* 0F 0F /wr */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo },
++ /* 0F 0F /wr */ { BxImmediate_Ib, BX_IA_ERROR },
+ #else
+ /* 0F 0F /wr */ { 0, BX_IA_ERROR },
+ #endif
+@@ -1025,7 +1025,7 @@
+ /* 0F 0D /dr */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel
+ /* 0F 0E /dr */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS
+ #if BX_SUPPORT_3DNOW
+- /* 0F 0F /dr */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo },
++ /* 0F 0F /dr */ { BxImmediate_Ib, BX_IA_ERROR },
+ #else
+ /* 0F 0F /dr */ { 0, BX_IA_ERROR },
+ #endif
+@@ -1583,7 +1583,7 @@
+ /* 0F 0D /wm */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel
+ /* 0F 0E /wm */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS
+ #if BX_SUPPORT_3DNOW
+- /* 0F 0F /wm */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo },
++ /* 0F 0F /wm */ { BxImmediate_Ib, BX_IA_ERROR },
+ #else
+ /* 0F 0F /wm */ { 0, BX_IA_ERROR },
+ #endif
+@@ -2134,7 +2134,7 @@
+ /* 0F 0D /dm */ { 0, BX_IA_PREFETCHW }, // 3DNow! PREFETCH on AMD, NOP on Intel
+ /* 0F 0E /dm */ { 0, BX_IA_FEMMS }, // 3DNow! FEMMS
+ #if BX_SUPPORT_3DNOW
+- /* 0F 0F /dm */ { BxImmediate_Ib, BX_IA_ERROR, Bx3DNowOpcodeInfo },
++ /* 0F 0F /dm */ { BxImmediate_Ib, BX_IA_ERROR },
+ #else
+ /* 0F 0F /dm */ { 0, BX_IA_ERROR },
+ #endif
diff --git a/extra/bochs/PKGBUILD b/extra/bochs/PKGBUILD
new file mode 100644
index 000000000..7106ce9d9
--- /dev/null
+++ b/extra/bochs/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 94642 2010-10-09 04:04:21Z kevin $
+#Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=bochs
+pkgver=2.4.5
+pkgrel=1
+pkgdesc="A portable x86 PC emulation software package"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://bochs.sourceforge.net/"
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+2.4.5-fetchcode.patch)
+depends=('gcc-libs' 'libxpm')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/2.4.5-fetchcode.patch
+ ./configure --prefix=/usr --enable-vbe --without-wx --enable-cpu-level=6 \
+ --enable-fpu --enable-3dnow
+ make || return 1
+ make prefix=${pkgdir}/usr install
+ install -D -m 644 .bochsrc ${pkgdir}/etc/bochsrc-sample.txt
+}
+sha256sums=('b948622a364c2e7da4221a6a4640ba2efa68422e1411ac377c69d37f46f67616'
+ '3dba808614da7d0fa1a3d6ddaceabf027a873d1f45fb90ec43b8dce876baa8ff')
diff --git a/extra/bogofilter/PKGBUILD b/extra/bogofilter/PKGBUILD
new file mode 100644
index 000000000..d973643f2
--- /dev/null
+++ b/extra/bogofilter/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 110357 2011-02-18 23:42:09Z allan $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+
+pkgname=bogofilter
+pkgver=1.2.2
+pkgrel=2
+pkgdesc="A fast Bayesian spam filtering tool"
+arch=('i686' 'x86_64')
+license=(GPL3)
+url="http://bogofilter.sourceforge.net"
+depends=('db' 'perl' 'gsl')
+backup=(etc/bogofilter/bogofilter.cf)
+source=(http://sourceforge.net/projects/${pkgname}/files/${pkgname}-current/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4bcabdf8c5e7efefcb508eda7e80eebc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/bogofilter \
+ --localstatedir=/var \
+ --enable-transactions
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ mv ${pkgdir}/etc/bogofilter/bogofilter.cf.example ${pkgdir}/etc/bogofilter/bogofilter.cf
+
+ install -dm755 ${pkgdir}/usr/share/${pkgname}/contrib
+ install -m644 contrib/* ${pkgdir}/usr/share/${pkgname}/contrib/
+}
diff --git a/extra/boo/PKGBUILD b/extra/boo/PKGBUILD
new file mode 100644
index 000000000..b9fcee689
--- /dev/null
+++ b/extra/boo/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 110402 2011-02-19 07:26:29Z eric $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Contributor: Brice Carpentier <brice@dlfp.org>
+
+pkgname=boo
+pkgver=0.9.4.9
+pkgrel=1
+pkgdesc="A wrist friendly language for the CLI"
+arch=('i686' 'x86_64')
+url="http://boo.codehaus.org/"
+license=('GPL')
+depends=('sh' 'mono' 'shared-mime-info')
+options=('!makeflags')
+install=boo.install
+source=(http://dist.codehaus.org/boo/distributions/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e8b04c63d4c983f82e8a2b2d49115c80')
+sha1sums=('fdd0f91ae1b2917d83fc8fa7f4610e3c22c06bf9')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p $MONO_SHARED_DIR
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's|/lib|/lib/mono|' extras/boo.pc.in
+ ./configure --prefix=/usr --libdir=/usr/lib
+ make VERBOSE=1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}/share/"
+ rm -rf "${pkgdir}/usr/share/gtksourceview-1.0/language-specs/boo.lang"
+}
diff --git a/extra/boo/boo.install b/extra/boo/boo.install
new file mode 100644
index 000000000..8652c4ad4
--- /dev/null
+++ b/extra/boo/boo.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/boost/4994-compile-fix-for-Python32-v2.patch b/extra/boost/4994-compile-fix-for-Python32-v2.patch
new file mode 100644
index 000000000..22613b3f2
--- /dev/null
+++ b/extra/boost/4994-compile-fix-for-Python32-v2.patch
@@ -0,0 +1,16 @@
+Index: libs/python/src/converter/builtin_converters.cpp
+===================================================================
+--- libs/python/src/converter/builtin_converters.cpp (revision 67279)
++++ libs/python/src/converter/builtin_converters.cpp (working copy)
+@@ -431,7 +431,11 @@
+ if (!result.empty())
+ {
+ int err = PyUnicode_AsWideChar(
++#if PY_VERSION_HEX >= 0x03020000
++ intermediate
++#else
+ (PyUnicodeObject *)intermediate
++#endif
+ , &result[0]
+ , result.size());
+
diff --git a/extra/boost/PKGBUILD b/extra/boost/PKGBUILD
new file mode 100644
index 000000000..d4f0c9c78
--- /dev/null
+++ b/extra/boost/PKGBUILD
@@ -0,0 +1,112 @@
+# $Id: PKGBUILD 114691 2011-03-15 13:50:13Z andrea $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+# Contributor: Luca Roccia <little_rock@users.sourceforge.net>
+
+pkgbase=boost
+pkgname=('boost-libs' 'boost')
+pkgver=1.46.0
+_boostver=${pkgver//./_}
+pkgrel=4
+arch=('i686' 'x86_64')
+url="http://www.boost.org/"
+makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgbase}/${pkgbase}_${_boostver}.tar.gz
+ 4994-compile-fix-for-Python32-v2.patch
+ boost-1.46.0-spirit.patch)
+license=('custom')
+md5sums=('820393d5746553c192db7b81ba0e53fe'
+ 'cb59e8adbf2a45ef9264a2f4ab92b849'
+ '9d6e2f13fef23bf27d7bdddc104e182a')
+
+_stagedir="${srcdir}/stagedir"
+
+build() {
+ # set python path for bjam
+ cd "${srcdir}/${pkgbase}_${_boostver}/tools"
+ echo "using python : 2.7 : /usr/bin/python2 ;" >> build/v2/user-config.jam
+ echo "using python : 3.2 : /usr/bin/python : /usr/include/python3.2mu : /usr/lib ;" >> build/v2/user-config.jam
+ echo "using mpi ;" >> build/v2/user-config.jam
+
+ # build bjam
+ cd "${srcdir}/${pkgbase}_${_boostver}/tools/build/v2/engine/src"
+ ./build.sh cc
+
+ _bindir="bin.linuxx86"
+ [ "${CARCH}" = "x86_64" ] && _bindir="bin.linuxx86_64"
+
+ install -d "${_stagedir}"/usr/bin
+ install ${_bindir}/bjam "${_stagedir}"/usr/bin/bjam
+
+ # build bcp
+ cd "${srcdir}/${pkgbase}_${_boostver}/tools/bcp"
+ ../build/v2/engine/src/${_bindir}/bjam --toolset=gcc
+ install -m755 "${srcdir}/${pkgbase}_${_boostver}/dist/bin/bcp" \
+ ${_stagedir}/usr/bin/bcp
+
+ # build libs
+ cd "${srcdir}/${pkgbase}_${_boostver}"
+ #python 3.2 support
+ #https://svn.boost.org/trac/boost/ticket/4994
+ patch -Np0 -i "${srcdir}/4994-compile-fix-for-Python32-v2.patch"
+ patch -Np0 -i "${srcdir}/boost-1.46.0-spirit.patch"
+
+ # default "minimal" install: "release link=shared,static
+ # runtime-link=shared threading=single,multi"
+ # --layout=tagged will add the "-mt" suffix for multithreaded libraries
+ # and installs includes in /usr/include/boost.
+ # --layout=system no longer adds the -mt suffix for multi-threaded libs.
+ # install to ${_stagedir} in preparation for split packaging
+
+ ./tools/build/v2/engine/src/${_bindir}/bjam \
+ release debug-symbols=off threading=multi \
+ runtime-link=shared link=shared,static \
+ cflags=-fno-strict-aliasing \
+ toolset=gcc \
+ --prefix="${_stagedir}" \
+ -sTOOLS=gcc \
+ --layout=system \
+ ${MAKEFLAGS} \
+ install
+
+ # pyste is unmaintained: http://www.boost.org/doc/libs/1_46_0/libs/python/doc/index.html
+ # build pyste
+ #cd "${srcdir}/${pkgbase}_${_boostver}/libs/python/pyste/install"
+ #python2 setup.py install --root=${_stagedir} --optimize=1
+}
+
+package_boost() {
+ pkgdesc="Free peer-reviewed portable C++ source libraries - Development"
+ depends=("boost-libs=${pkgver}")
+ optdepends=('python: for python bindings'
+ 'python2: for python2 bindings')
+
+ install -d "${pkgdir}"/usr/{include,lib}
+ # headers/source files
+ cp -r "${_stagedir}"/include/ "${pkgdir}"/usr/
+
+ # static libs
+ cp -r "${_stagedir}"/lib/*.a "${pkgdir}"/usr/lib/
+
+ # utilities (bjam, bcp, pyste)
+ cp -r "${_stagedir}"/usr/* "${pkgdir}"/usr/
+
+ # license
+ install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
+ "${pkgdir}"/usr/share/licenses/boost/LICENSE_1_0.txt
+}
+
+package_boost-libs() {
+ pkgdesc="Free peer-reviewed portable C++ source libraries - Runtime"
+ depends=('gcc-libs' 'bzip2' 'zlib' 'icu')
+ optdepends=('openmpi: for mpi support')
+
+ install -d "${pkgdir}/usr/lib"
+ #shared libs
+ cp -r "${_stagedir}"/lib/*.so{,.*} "${pkgdir}/usr/lib/"
+
+ # license
+ install -D -m644 "${srcdir}/${pkgbase}_${_boostver}/LICENSE_1_0.txt" \
+ "${pkgdir}"/usr/share/licenses/boost-libs/LICENSE_1_0.txt
+}
diff --git a/extra/boost/boost-1.46.0-spirit.patch b/extra/boost/boost-1.46.0-spirit.patch
new file mode 100644
index 000000000..6fae331ee
--- /dev/null
+++ b/extra/boost/boost-1.46.0-spirit.patch
@@ -0,0 +1,59 @@
+Index: boost/spirit/home/qi/nonterminal/detail/parameterized.hpp
+===================================================================
+--- boost/spirit/home/qi/nonterminal/detail/parameterized.hpp (revision 68724)
++++ boost/spirit/home/qi/nonterminal/detail/parameterized.hpp (revision 68725)
+@@ -14,6 +14,7 @@
+
+ #include <boost/ref.hpp>
+
++#include <boost/spirit/home/support/handles_container.hpp>
+ #include <boost/spirit/home/qi/parser.hpp>
+
+ namespace boost { namespace spirit { namespace qi
+@@ -59,4 +60,16 @@ namespace boost { namespace spirit { nam
+ };
+ }}}
+
++namespace boost { namespace spirit { namespace traits
++{
++ ///////////////////////////////////////////////////////////////////////////
++ template <typename Subject, typename Params, typename Attribute
++ , typename Context, typename Iterator>
++ struct handles_container<qi::parameterized_nonterminal<Subject, Params>
++ , Attribute, Context, Iterator>
++ : handles_container<typename remove_const<Subject>::type
++ , Attribute, Context, Iterator>
++ {};
++}}}
++
+ #endif
+Index: boost/spirit/home/karma/nonterminal/detail/parameterized.hpp
+===================================================================
+--- boost/spirit/home/karma/nonterminal/detail/parameterized.hpp (revision 68724)
++++ boost/spirit/home/karma/nonterminal/detail/parameterized.hpp (revision 68725)
+@@ -14,6 +14,7 @@
+
+ #include <boost/ref.hpp>
+
++#include <boost/spirit/home/support/handles_container.hpp>
+ #include <boost/spirit/home/karma/generator.hpp>
+
+ namespace boost { namespace spirit { namespace karma
+@@ -60,4 +61,17 @@ namespace boost { namespace spirit { nam
+ };
+ }}}
+
++
++namespace boost { namespace spirit { namespace traits
++{
++ ///////////////////////////////////////////////////////////////////////////
++ template <typename Subject, typename Params, typename Attribute
++ , typename Context, typename Iterator>
++ struct handles_container<karma::parameterized_nonterminal<Subject, Params>
++ , Attribute, Context, Iterator>
++ : handles_container<typename remove_const<Subject>::type
++ , Attribute, Context, Iterator>
++ {};
++}}}
++
+ #endif
diff --git a/extra/botan/PKGBUILD b/extra/botan/PKGBUILD
new file mode 100644
index 000000000..89e0dd396
--- /dev/null
+++ b/extra/botan/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 98518 2010-11-10 20:05:00Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: d'Ronin <daronin@2600.com>
+pkgname=botan
+pkgver=1.8.11
+pkgrel=1
+pkgdesc="BSD-licensed crypto library written in C++"
+license=('BSD')
+arch=('i686' 'x86_64')
+url="http://botan.randombit.net/"
+depends=('gcc-libs' 'sh')
+makedepends=('python2')
+source=(http://files.randombit.net/botan/Botan-${pkgver}.tgz)
+options=('force')
+md5sums=('ccb2c3cb8a324214a89b45a03422870b')
+
+build() {
+ cd ${srcdir}/Botan-${pkgver}
+ sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' configure.py
+ ./configure.py --prefix=/usr
+ make
+ make DESTDIR=${pkgdir}/usr install
+}
+
diff --git a/extra/brasero/PKGBUILD b/extra/brasero/PKGBUILD
new file mode 100644
index 000000000..623e8bfaa
--- /dev/null
+++ b/extra/brasero/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD,v 1.31 2009/03/14 02:03:57 allan Exp $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=brasero
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="A disc burning application for Gnome"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/projects/brasero"
+license=('GPL')
+options=('!libtool' '!emptydirs')
+depends=('gstreamer0.10-base-plugins>=0.10.30' 'totem-plparser>=2.32.0' 'libbeagle>=0.3.9' 'cdrkit' 'cdrdao' 'desktop-file-utils' 'hicolor-icon-theme' 'libunique>=1.1.6' 'libcanberra>=0.25' 'dvd+rw-tools' 'dconf')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool' 'libburn' 'libisofs' 'nautilus' 'gobject-introspection' 'namcap')
+optdepends=('libburn: alternative back-end'
+ 'libisofs: libburn back-end'
+ 'dvdauthor: video project'
+ 'gstreamer0.10-bad-plugins: video project'
+ 'vcdimager: video project')
+replaces=('nautilus-cd-burner')
+install=brasero.install
+source=(http://ftp.gnome.org/pub/gnome/sources/brasero/2.32/brasero-${pkgver}.tar.bz2)
+sha256sums=('7b1056b6f19398912d51e3e583bc1b4d2a75ce2a8e15a96e1514fe6edb79df3b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-caches \
+ --disable-schemas-compile
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/brasero/brasero.install b/extra/brasero/brasero.install
new file mode 100644
index 000000000..b6c57055e
--- /dev/null
+++ b/extra/brasero/brasero.install
@@ -0,0 +1,14 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/brltty/PKGBUILD b/extra/brltty/PKGBUILD
new file mode 100644
index 000000000..431cf11ec
--- /dev/null
+++ b/extra/brltty/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 102193 2010-12-06 16:20:30Z andrea $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=brltty
+pkgver=4.2
+pkgrel=3
+pkgdesc="Braille display driver for Linux/Unix"
+arch=('i686' 'x86_64')
+url="http://mielke.cc/brltty"
+license=('GPL' 'LGPL')
+depends=('libxaw' 'at-spi' 'gpm' 'icu' 'python2' 'tcl' 'atk' 'libxtst')
+makedepends=('pyrex' 'bluez')
+optdepends=('bluez: bluetooth support')
+backup=(etc/brltty.conf etc/conf.d/brltty.conf)
+options=('!makeflags' '!emptydirs')
+source=(http://mielke.cc/${pkgname}/releases/${pkgname}-${pkgver}.tar.gz
+ 'brltty-4.2-S_ISCHR.patch'
+ 'brltty'
+ 'brltty.conf')
+md5sums=('192af5e634210616928496645e392097'
+ '5954b289efaf2ff17676d06de9a88854'
+ '831ebaf0c56091702929c68805d20c4f'
+ 'a8ab8b3dd059e96e1734bc9cdcf844fc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ CFLAGS+="${CFLAGS} -D_GNU_SOURCE" \
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --enable-gpm \
+ --disable-java-bindings \
+ --disable-caml-bindings \
+ PYTHON=/usr/bin/python2
+
+ patch -Np1 -i ${srcdir}/brltty-4.2-S_ISCHR.patch
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}" install
+ install -D -m755 ${srcdir}/brltty ${pkgdir}/etc/rc.d/brltty
+ install -D -m644 ${srcdir}/brltty.conf ${pkgdir}/etc/conf.d/brltty.conf
+ install -D -m644 Documents/brltty.conf ${pkgdir}/etc/brltty.conf
+}
diff --git a/extra/brltty/brltty b/extra/brltty/brltty
new file mode 100755
index 000000000..5ed21a52d
--- /dev/null
+++ b/extra/brltty/brltty
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+daemon_name=brltty
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/$daemon_name.conf
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name $brltty_args
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/extra/brltty/brltty-4.2-S_ISCHR.patch b/extra/brltty/brltty-4.2-S_ISCHR.patch
new file mode 100644
index 000000000..eddac9616
--- /dev/null
+++ b/extra/brltty/brltty-4.2-S_ISCHR.patch
@@ -0,0 +1,11 @@
+diff -up brltty-4.2/Programs/sys_linux.c.BAD brltty-4.2/Programs/sys_linux.c
+--- brltty-4.2/Programs/sys_linux.c.BAD 2010-05-21 09:04:10.003122084 -0400
++++ brltty-4.2/Programs/sys_linux.c 2010-05-21 09:04:19.376198268 -0400
+@@ -23,6 +23,7 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
++#include <sys/stat.h>
+ #include <linux/kd.h>
+
+ #ifdef HAVE_LINUX_INPUT_H
diff --git a/extra/brltty/brltty.conf b/extra/brltty/brltty.conf
new file mode 100644
index 000000000..94115e1d5
--- /dev/null
+++ b/extra/brltty/brltty.conf
@@ -0,0 +1,2 @@
+# Specify any arguments to pass to brltty here.
+brltty_args="" \ No newline at end of file
diff --git a/extra/bs/PKGBUILD b/extra/bs/PKGBUILD
new file mode 100644
index 000000000..e15c29aca
--- /dev/null
+++ b/extra/bs/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 69354 2010-02-20 11:19:53Z allan $
+# Maintainer:
+# Contributor damir <damir@archlinux.org>
+
+pkgname=bs
+pkgver=2.7
+pkgrel=2
+pkgdesc="The classic game of Battleships against the computer. Ncurses."
+arch=('i686' 'x86_64')
+url="http://www.catb.org/~esr/bs/"
+license=('GPL2')
+depends=('ncurses')
+source=($url/$pkgname-$pkgver.tar.gz)
+md5sums=('5786c6006e503d100e65139dadb5d5a7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -Dm755 bs $pkgdir/usr/bin/bs
+ install -Dm644 bs.6 $pkgdir/usr/share/man/man6/bs.6
+}
diff --git a/extra/bug-buddy/PKGBUILD b/extra/bug-buddy/PKGBUILD
new file mode 100644
index 000000000..871b6e10e
--- /dev/null
+++ b/extra/bug-buddy/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 91665 2010-09-27 15:48:02Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=bug-buddy
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="A bug reporting tool for GNOME"
+arch=(i686 x86_64)
+install=bug-buddy.install
+depends=('evolution-data-server>=2.32.0' 'libgtop>=2.28.1' 'elfutils' 'hicolor-icon-theme' 'libbonobo>=2.32.0')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.1')
+groups=('gnome-extra')
+license=(GPL)
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('ffdc70fe4a59c0aef42b5b0b72b08f17db2b1d9f49ba2b68722334ddbee5e3ca')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain bug-buddy ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/bug-buddy/bug-buddy.install b/extra/bug-buddy/bug-buddy.install
new file mode 100644
index 000000000..eec3336ba
--- /dev/null
+++ b/extra/bug-buddy/bug-buddy.install
@@ -0,0 +1,24 @@
+pkgname=bug-buddy
+
+post_install() {
+ usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/bzflag/PKGBUILD b/extra/bzflag/PKGBUILD
new file mode 100644
index 000000000..1589b32e7
--- /dev/null
+++ b/extra/bzflag/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 84161 2010-06-26 23:01:03Z kevin $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=bzflag
+pkgver=2.0.16
+pkgrel=1
+pkgdesc="A multiplayer 3D tank battle game"
+depends=('curl' 'mesa' 'sdl')
+arch=('i686' 'x86_64')
+license=('LGPL')
+options=(!libtool)
+url="http://www.bzflag.org"
+source=(http://downloads.sourceforge.net/sourceforge/bzflag/$pkgname-$pkgver.tar.bz2)
+md5sums=('161b973bee586d43ebff4695dfb8c359')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ # gnome menu entry and icon.
+ cd misc
+ make || return 1
+ mkdir -p ${pkgdir}/usr/share/{applications,pixmaps}
+ install -m644 bzflag.desktop $pkgdir/usr/share/applications/bzflag.desktop
+ install -m644 ../data/bzflag-48x48.png $pkgdir/usr/share/pixmaps/bzflag-48x48.png
+}
diff --git a/extra/bzr/PKGBUILD b/extra/bzr/PKGBUILD
new file mode 100644
index 000000000..69ad7b709
--- /dev/null
+++ b/extra/bzr/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110425 2011-02-19 09:14:39Z eric $
+# Maintainer :
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=bzr
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="A decentralized revision control system (bazaar)"
+arch=('i686' 'x86_64')
+url="http://www.bazaar-vcs.org"
+license=('GPL')
+depends=('python2')
+optdepends=('python-paramiko: for sftp support')
+source=(http://launchpad.net/bzr/${pkgver%.*}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2d8bc55d43209189a209361178d9d372')
+sha1sums=('42a5b270e75a57883ead3cee9e623e087f16afd8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|man/man1|share/man/man1|' setup.py
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --prefix=/usr --root="${pkgdir}"
+
+ # bash-completion
+ install -D -m644 contrib/bash/bzr "${pkgdir}/etc/bash_completion.d/bzr"
+}
diff --git a/extra/c-ares/LICENSE b/extra/c-ares/LICENSE
new file mode 100644
index 000000000..e3f5b64fe
--- /dev/null
+++ b/extra/c-ares/LICENSE
@@ -0,0 +1,10 @@
+Copyright 1998 by the Massachusetts Institute of Technology.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and that
+the name of M.I.T. not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+M.I.T. makes no representations about the suitability of this software for any
+purpose. It is provided "as is" without express or implied warranty.
diff --git a/extra/c-ares/PKGBUILD b/extra/c-ares/PKGBUILD
new file mode 100644
index 000000000..d16d11ce9
--- /dev/null
+++ b/extra/c-ares/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 104396 2011-01-02 08:09:16Z dgriffiths $
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=c-ares
+pkgver=1.7.4
+pkgrel=1
+pkgdesc='C library that performs DNS requests and name resolves asynchronously'
+arch=('i686' 'x86_64')
+url='http://c-ares.haxx.se/'
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://c-ares.haxx.se/${pkgname}-${pkgver}.tar.gz
+ LICENSE)
+md5sums=('dd71e8f07d9f3c837e12a5416d1b7f73'
+ 'c69f2042941b708ce3e7121424d0b7e6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --enable-shared || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ install -Dm644 ${srcdir}/LICENSE \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+}
diff --git a/extra/cabal-install/PKGBUILD b/extra/cabal-install/PKGBUILD
new file mode 100644
index 000000000..78c9c8902
--- /dev/null
+++ b/extra/cabal-install/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+pkgname=cabal-install
+pkgver=0.10.2
+pkgrel=1
+pkgdesc="The command-line interface for Cabal and Hackage."
+url="http://hackage.haskell.org/package/cabal-install"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=('ghc=7.0.2' 'haskell-http>=4000.1.1' 'haskell-zlib')
+depends=('gmp' zlib)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/cabal-install/$pkgver/cabal-install-$pkgver.tar.gz)
+
+build() {
+ cd $srcdir/cabal-install-$pkgver
+ runhaskell Setup configure --enable-shared --enable-split-objs --enable-executable-stripping --prefix=/usr
+ runhaskell Setup build
+}
+
+package() {
+ cd $srcdir/cabal-install-$pkgver
+ runhaskell Setup copy --destdir=$pkgdir
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
+md5sums=('bc906ef0bed79cbb33fdb36b73514281')
diff --git a/extra/cagibi/PKGBUILD b/extra/cagibi/PKGBUILD
new file mode 100644
index 000000000..396793f7f
--- /dev/null
+++ b/extra/cagibi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=cagibi
+pkgver=0.1.1
+pkgrel=1
+pkgdesc='A cache/proxy daemon for SSDP (the discovery part of UPnP)'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('LGPL')
+depends=('qt')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('2db2424dc436bc436011185de09be9da')
+
+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/extra/cairo-perl/PKGBUILD b/extra/cairo-perl/PKGBUILD
new file mode 100644
index 000000000..aa8a93a81
--- /dev/null
+++ b/extra/cairo-perl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 104389 2011-01-02 04:22:32Z kevin $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cairo-perl
+_realname=Cairo
+pkgver=1.061
+pkgrel=3
+pkgdesc="Perl wrappers for cairo"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+options=('!emptydirs')
+depends=('cairo>=1.8.10' 'perl>=5.12.1')
+makedepends=('perl-extutils-depends' 'perl-extutils-pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('08cd5e847f61858651fc4de769066e88')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/cairo/PKGBUILD b/extra/cairo/PKGBUILD
new file mode 100644
index 000000000..9c80110a0
--- /dev/null
+++ b/extra/cairo/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 114393 2011-03-13 08:22:31Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Brice Carpentier <brice@daknet.org>
+
+pkgname=cairo
+pkgver=1.10.2
+pkgrel=2
+pkgdesc="Cairo vector graphics library"
+arch=(i686 x86_64)
+license=('LGPL' 'MPL')
+url="http://cairographics.org/"
+depends=('libpng>=1.4.0' 'libxrender' 'fontconfig>=2.8.0' 'pixman>=0.18.4' 'glib2>=2.24.0' 'sh')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://cairographics.org/releases/${pkgname}-${pkgver}.tar.gz
+ cairo-1.10.0-buggy_gradients.patch)
+sha1sums=('ccce5ae03f99c505db97c286a0c9a90a926d3c6e'
+ '8b843a9934e5112b6188e5bcf4adfc1fdaf9fa04')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/cairo-1.10.0-buggy_gradients.patch"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-tee
+ make
+ make check || /bin/true # 248 Passed, 65 Failed [2 crashed, 8 expected], 28 Skipped
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/cairo/cairo-1.10.0-buggy_gradients.patch b/extra/cairo/cairo-1.10.0-buggy_gradients.patch
new file mode 100644
index 000000000..368e356d3
--- /dev/null
+++ b/extra/cairo/cairo-1.10.0-buggy_gradients.patch
@@ -0,0 +1,13 @@
+--- a/src/cairo-xlib-display.c.ubuntu 2010-08-04 11:57:49.000000000 +0200
++++ b/src/cairo-xlib-display.c 2010-08-04 11:58:28.000000000 +0200
+@@ -353,11 +353,7 @@
+ /* Prior to Render 0.10, there is no protocol support for gradients and
+ * we call function stubs instead, which would silently consume the drawing.
+ */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+ display->buggy_gradients = TRUE;
+-#else
+- display->buggy_gradients = FALSE;
+-#endif
+ display->buggy_pad_reflect = FALSE;
+ display->buggy_repeat = FALSE;
diff --git a/extra/cairomm/PKGBUILD b/extra/cairomm/PKGBUILD
new file mode 100644
index 000000000..c35321230
--- /dev/null
+++ b/extra/cairomm/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 102350 2010-12-07 11:34:03Z jgc $
+# Maintainer: Kevin <kevin@archlinux.org>
+# Contributor: criminy <criminy@gmail.com>
+
+pkgname=cairomm
+pkgver=1.8.6
+pkgrel=1
+pkgdesc="C++ bindings to Cairo vector graphics library"
+arch=('i686' 'x86_64')
+url="http://www.cairographics.org"
+license=('LGPL' 'MPL')
+depends=('cairo' 'libsigc++')
+makedepends=('pkgconfig')
+source=(http://www.cairographics.org/releases/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool' '!emptydirs')
+md5sums=('39af0fd0c111bb74307f9860653046ce')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/camsource/PKGBUILD b/extra/camsource/PKGBUILD
new file mode 100644
index 000000000..5c6221769
--- /dev/null
+++ b/extra/camsource/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 68022 2010-02-10 14:13:39Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=camsource
+pkgver=0.7.0
+pkgrel=6
+pkgdesc="Grabs images from a v4l and v4l2 webcam devices"
+arch=('i686' 'x86_64')
+url="http://camsource.sourceforge.net/"
+license=('GPL')
+depends=('libxml2' 'libjpeg>=8')
+backup=('etc/camsource.conf')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+ mod_handle.c.patch)
+md5sums=('ffd824f13f99011984399fc3b7526c71'
+ 'a8fabaf271b6f575c6e957573908c529')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i $srcdir/mod_handle.c.patch || return 1
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ mv ${pkgdir}/etc/camsource.conf.example ${pkgdir}/etc/camsource.conf
+}
diff --git a/extra/camsource/mod_handle.c.patch b/extra/camsource/mod_handle.c.patch
new file mode 100644
index 000000000..25e2d52fc
--- /dev/null
+++ b/extra/camsource/mod_handle.c.patch
@@ -0,0 +1,14 @@
+--- src/mod_handle.c.old 2005-01-31 11:16:10.000000000 +0000
++++ src/mod_handle.c 2005-01-31 11:27:25.000000000 +0000
+@@ -303,10 +303,9 @@
+ for (i = 0; i < MAX_MODULES; i++)
+ {
+ if (modules[i].dlhand == dlh)
+- goto inuse; /* break */
++ break;
+ }
+ dlclose(dlh);
+-inuse:
+ }
+ }
+
diff --git a/extra/capi4hylafax/PKGBUILD b/extra/capi4hylafax/PKGBUILD
new file mode 100644
index 000000000..039ea496d
--- /dev/null
+++ b/extra/capi4hylafax/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 84286 2010-06-28 14:07:57Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=capi4hylafax
+pkgver=010300
+pkgrel=4
+pkgdesc="capi plugin for hylafax to enable isdn faxing"
+arch=(i686 x86_64)
+url="ftp://ftp.avm.de/tools"
+license=('GPL')
+depends=('glibc' 'capi4k-utils' 'hylafax' 'gcc-libs' 'libtiff')
+source=(ftp://ftp.avm.de/tools/capi4hylafax.linux/capi4hylafax-01.03.00.tar.gz
+ config.faxCAPI capi4hylafax.rc)
+install=capi4hylafax.install
+backup=(var/spool/hylafax/etc/config.faxCAPI)
+build() {
+ cd $srcdir/$pkgname-01.03.00
+# fix config file
+ sed -i -e 's#/etc/config.faxCAPI#/var/spool/hylafax/etc/config.faxCAPI#g' src/defaults.h.in || return 1
+ ./configure || return 1
+ make || return 1
+ install -m755 -D src/faxsend/c2faxsend $pkgdir/usr/bin/c2faxsend
+ install -m755 -D src/faxrecv/c2faxrecv $pkgdir/usr/bin/c2faxrecv
+ install -m755 -D setupconffile $pkgdir/usr/bin/c2faxaddmodem
+ install -m644 -D $srcdir/config.faxCAPI $pkgdir/var/spool/hylafax/etc/config.faxCAPI
+ install -m755 -D $srcdir/capi4hylafax.rc $pkgdir/etc/rc.d/capi4hylafax
+# adding FIFO
+ mkfifo $pkgdir/var/spool/hylafax/FIFO.faxCAPI
+ chown 10 $pkgdir/var/spool/hylafax/FIFO.faxCAPI
+ chgrp 14 $pkgdir/var/spool/hylafax/FIFO.faxCAPI
+ chmod 0600 $pkgdir/var/spool/hylafax/FIFO.faxCAPI
+# fix /var/spool/hylafax permission
+ chown 10 $pkgdir/var/spool/hylafax
+ chgrp 14 $pkgdir/var/spool/hylafax
+# adding udev rule
+ mkdir -p $pkgdir/lib/udev/rules.d
+cat << EOF >> $pkgdir/lib/udev/rules.d/53-capi4hylafax.rules
+# CAPI devices
+SUBSYSTEM=="capi", KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20", GROUP="uucp"
+SUBSYSTEM=="tty" KERNEL=="capi[0-9]*", NAME="capi/%n", GROUP="uucp"
+
+EOF
+# fix c2faxadd
+ sed -i -e 's#/etc/config.faxCAPI#/var/spool/hylafax/etc/config.faxCAPI#g' $pkgdir/usr/bin/c2faxaddmodem || return 1
+ echo "main_config_dialog" >> $pkgdir/usr/bin/c2faxaddmodem
+}
+md5sums=('d37dc652ac80d1525ef8693be55ee67f'
+ '653b60695d21c128f020a86274ca9192'
+ '1fe40c58289fa3ba625ce6fe2fdb3d07')
diff --git a/extra/capi4hylafax/capi4hylafax.install b/extra/capi4hylafax/capi4hylafax.install
new file mode 100644
index 000000000..20c2d8f63
--- /dev/null
+++ b/extra/capi4hylafax/capi4hylafax.install
@@ -0,0 +1,16 @@
+post_install() {
+cat << EOF
+For more information about setting up the package, please have a look here:
+"http://wiki.archlinux.org/index.php/capi4hylafax"
+EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+cat << EOF
+Please remove your additions to /var/spool/hylafax/etc/config
+EOF
+}
diff --git a/extra/capi4hylafax/capi4hylafax.rc b/extra/capi4hylafax/capi4hylafax.rc
new file mode 100755
index 000000000..51025b020
--- /dev/null
+++ b/extra/capi4hylafax/capi4hylafax.rc
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/c2faxrecv`
+case "$1" in
+ start)
+ stat_busy "Starting capi4hylafax"
+ if [ -z "$PID" ]; then
+ /usr/bin/c2faxrecv > /dev/null &
+ faxmodem faxCAPI
+ fi
+ if [ ! -f /var/run/faxq.pid ]; then
+ stat_fail
+ echo "ERROR: hylafax is not running"
+ exit 1
+ fi
+ if [ ! -f /var/run/hfaxd.pid ]; then
+ stat_fail
+ echo "ERROR: hylafax is not running"
+ exit 1
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon capi4hylafax
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping capi4hylafax"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon capi4hylafax
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/capi4hylafax/config.faxCAPI b/extra/capi4hylafax/config.faxCAPI
new file mode 100644
index 000000000..b2137757a
--- /dev/null
+++ b/extra/capi4hylafax/config.faxCAPI
@@ -0,0 +1,397 @@
+#
+# EDIT THIS CONFIGURATION TO REFLECT YOUR SETUP
+#
+
+# Grundstzliches:
+# - Es gibt fr jeden Wert einen Standardzustand (default), sodass jede Zeile
+# der Datei oder auch das komplette Configfile ausgelassen werden kann.
+# - Es gibt ausschlielich ein Configfile, in dem alle ntigen Angaben fr
+# "c2faxsend/-receive" eingetragen werden knnen.
+# - Werden fr HylaFAX mehrere virtuelle Gerte (devices) angelegt, muss es
+# fr jedes Device ein Configfile im Format config.[DeviceName] geben.
+# Dessen Existenz wird von HylaFAX berprft. Ohne dieses File kann die
+# Arbeit mit dem Device nicht aufgenommen werden. Die Existenz einer
+# solchen Datei kann am einfachsten durch einen Link auf dieses ConfigFile
+# oder ein minimales "dummy"-ConfigFile nachgewiesen werden.
+#
+# Basics:
+# - There is a default condition for each value, such that each line of the
+# file or the complete configfile can be left out.
+# - There is only one configfile in which all information required for
+# "c2faxsend/-receive" can be entered.
+# - If multiple virtual devices are created for HylaFAX, there must be a
+# Configfile in the format config.[DeviceName] for each device. HylaFAX
+# checks that this file exists. Without this file, it is not possible to
+# start working with the device. The easiest way to establish the existence
+# of such a file is to create a link to this ConfigFile or a minimum
+# "dummy" ConfigFile.
+
+
+# "SpoolDir" gibt den Pfad an, unter dem im HylaFAX-kompatiblen Betrieb die
+# HylaFAX-Dateien zu finden sind oder unter dem im Stand-Alone-Betrieb die
+# empfangenen Faxe gespeichert werden sollen. Im HylaFAX-kompatiblen Betrieb
+# werden die Faxe im Verzeichnis $(SpoolDir)/recvq gespeichert.
+#
+# "SpoolDir" indicates the path in which the HylaFAX are located in HylaFAX-
+# compatible operation or in which received faxes are to be saved in
+# stand-alone operation. In HylaFAX-compatible operation, faxes are saved in
+# the directory $(SpoolDir)/recvq.
+#
+# default /var/spool/hylafax
+#
+SpoolDir: /var/spool/hylafax
+
+
+# "FaxRcvdCmd" gibt das Skript an, das ausgefhrt wird, sobald ein Fax
+# empfangen wurde. Im Stand-Alone-Betrieb werden andere Parameter
+# bergeben als fr HylaFAX (mehr dazu im sample_faxrcvd).
+#
+# "FaxRcvdCmd" indicates the script performed whenever a fax is
+# received. Parameters other than the ones for HylaFAX are returned in
+# stand-alone operation (see sample_faxrcvd for more information).
+#
+# default /var/spool/hylafax/bin/faxrcvd
+#
+FaxRcvdCmd: /var/spool/hylafax/bin/faxrcvd
+
+
+# "PollRcvdCmd" gibt das Skript an, das ausgefhrt wird, sobald ein
+# Fax per Faxabruf empfangen wurde. Im Stand-Alone-Betrieb werden
+# andereParameter bergeben als fr HylaFAX (mehr dazu im
+# sample_faxrcvd).
+#
+# "PollRcvdCmd" indicates the script performed whenever a fax was
+# received by fax polling. Parameters other than the ones for HylaFAX
+# are returned in stand-alone operation (see sample_faxrcvd for more
+# information).
+#
+# default /var/spool/hylafax/bin/pollrcvd
+#
+PollRcvdCmd: /var/spool/hylafax/bin/pollrcvd
+
+
+# "FaxReceiveUser" ist der User, als der c2faxrecv ausgefhrt wird.
+# Die nderung des Users kann nur vom Superuser bzw. "root" erfolgen. Sollte
+# c2faxrecv von einem anderen User gestartet werden, wird dieser Eintrag
+# ignoriert. Hier einen anderen als den Hylafax-Standardwert "uucp"
+# einzutragen ist dann sinnvoll, wenn beispielsweise die Rechte von
+# /dev/capi20 nicht gendert werden sollen oder Ihre Linux-Distribution einen
+# anderen User voraussetzt.
+#
+# "FaxReceiveUser" is the user when c2faxrecv is run. This user can be
+# changed only by the Superuser or "root" user. If c2faxrecv is started by
+# another user, this entry will be ignored. Here it is a good idea to enter a
+# value other than the hylafax default value "uucp", for instance, if the
+# rights of /dev/capi20 are not to be changed or your Linux distribution
+# requires another user.
+#
+# default ""
+#
+FaxReceiveUser: uucp
+FaxReceiveGroup: uucp
+
+
+# Im "LogFile" werden Informationen ber den Faxablauf abgespeichert.
+#
+# Information about the order of events in faxing are saved in the "LogFile".
+#
+# default ""
+#
+LogFile: /var/spool/hylafax/log/capi4hylafax
+
+
+# Der Befehl "LogTraceLevel" gibt die Menge der Daten an, die in ein LogFile
+# geschrieben werden. Die Spanne reicht von 0 = nichts bis 4 = vieles.
+#
+# The "LogTraceLevel" command indicates the amount of data written in a
+# LogFile. The range goes from 0 = nothing to 4 = many.
+#
+# default 0
+#
+LogTraceLevel: 0
+
+
+# "LogFileMode" sind die Angaben (mode), aufgrund derer sowohl das gerade
+# erwhnte LogFile als auch die LogFiles fr HylaFAX angelegt werden.
+#
+# "LogFileMode" is the mode, on the basis of which both the LogFile just
+# mentioned and the LogFiles for HylaFAX are generated.
+#
+# default 0600
+#
+LogFileMode: 0600
+
+
+# Die geschweiften Klammern geben Anfang und Ende einer Section an.
+# Jede Section darf eine oder mehrere SubSections enthalten.
+# SubSubSections sind nicht erlaubt.
+# Dabei enthlt die Section Angaben zu einem virtuellen Device;
+# die Subsection die Angaben fr die Rufannahme jedes Controllers.
+# Es knnen beliebig viele Sections und, darin enthalten, jeweils beliebig
+# viele Subsections erzeugt werden.
+# Jede Section muss aber einen anderen HylafaxDeviceName erhalten;
+# zustzlich muss in jeder Subsection innerhalb einer Section ein anderer
+# Controller aufgefhrt werden. Beim Stand-Alone-Betrieb ist eine Section mit
+# entsprechend vielen Subsections ausreichend, da in diesem Betriebsmodus die
+# virtuellen DeviceNamen keine Rolle spielen.
+#
+# The curved brackets indicate the beginning and end of a section.
+# Each section may contain one or more subsections.
+# SubSubSections are not permitted.
+# The section contains information about a virtual device; the subsection the
+# call acceptance information for each controller.
+# Any number of sections containing any number of subsections may be
+# generated, but each section must receive a different HylafaxDeviceName; and
+# a different controller must be listed in every subsection within a section.
+# For stand-alone operation, it is sufficient to have just one section with
+# as many subsections as required, since virtual DeviceNames do not play
+# any role in this mode of operation.
+#
+{
+
+ # "HylafaxDeviceName" ist der Name, unter dem sich C4H bei HylaFAX als
+ # "virtuelles Modem" anmeldet. Sollen fr HylaFAX mehrere dieser "Modems"
+ # erzeugt werden, legen Sie einfach eine neue Section mit einem anderen
+ # HylafaxDeviceName an.
+ #
+ # "HylafaxDeviceName" is the name, under which C4H registers in HylaFAX as
+ # a "virtual modem". If multiple "modems" are to be generated for HylaFAX,
+ # simply create a new section with another HylafaxDeviceName.
+ #
+ # default faxCAPI
+ #
+ HylafaxDeviceName: faxCAPI
+
+
+ # "RecvFileMode" ist der Mode, in dem empfangene Faxe abgespeichert
+ # werden. User und Group der Datei wird durch FaxReceiveUser (s.o.)
+ # festgelegt.
+ #
+ # "RecvFileMode" is the mode, in which received faxes are saved. User and
+ # Group of the file are determined by the FaxReceiveUser (see above).
+ #
+ # default 0600
+ #
+ RecvFileMode: 0600
+
+
+ # "FAXNumber" ist die eigene Nummer des Computers und wird der Gegenseite
+ # mitgeteilt (sichtbar z. B. im Fax-Journal).
+ #
+ # "FAXNumber" is the fax number of the computer itself and is transmitted
+ # to the remote site (visible in the Fax Journal).
+ #
+ # default ""
+ #
+ FAXNumber: +49.00.00000
+
+
+ # "LocalIdentifier" ist der von CAPI aus konfigurierbare Teil der
+ # Kopfzeile. Ein leerer Eintrag fhrt dazu, dass keine Fax-Kopfzeile
+ # eingefgt wird.
+ #
+ # "LocalIdentifier" is the part of the fax header which can be configured
+ # from CAPI. An empty entry specifies an empty header.
+ #
+ # default ""
+ #
+ LocalIdentifier: "AVM CAPI4HylaFAX"
+
+
+ # Die maximale Anzahl von gleichzeitig empfangbaren Faxen kann
+ # durch "MaxConcurrentRecvs" angepat werden. Diese Anzahl wird
+ # durch die Anzahl der durch die Hardware zur Verfgung
+ # gestellten B-Kanle begrenzt.
+ #
+ # The maximum number of faxes that can be received at the same
+ # time can be adjusted using "MaxConcurrentRecvs". This number
+ # is limited by the number of B channels provided by the hardware.
+ #
+ # default 2
+ #
+ MaxConcurrentRecvs: 2
+
+
+ # ----------- outgoing params -----------
+
+ # "OutgoingController" gibt den Controller an, ber den eine externe
+ # Verbindung aufgebaut werden soll.
+ #
+ # "OutgoingController" indicates the controller which is to be used to
+ # establish an external connection.
+ #
+ # default 1
+ #
+ OutgoingController: 1
+
+
+ # Die "OutgoingMSN" ist die MSN, die fr ausgehenden Faxe benutzt wird.
+ #
+ # The "OutgoingMSN" is the MSN used for outgoing faxes.
+ #
+ # default ""
+ #
+ OutgoingMSN:
+
+
+ # CLIR (Rufnummernunterdrckung) kann ber "SuppressMSN" und den Wert (0)
+ # abgeschaltet oder mit dem Wert (1) erneut angeschaltet werden.
+ #
+ # CLIR (Calling Line Identification Restriction) can be switched off using
+ # the value (0) or switched back on by entering the value (1).
+ #
+ # default 0
+ #
+ SuppressMSN: 0
+
+
+ # "NumberPrefix" wird vor jede Telefonnummer gestellt. Dies ist bei
+ # Nebenstellenanlagen wichtig, bei denen fr den Aufbau einer externen
+ # Verbindung eine Ziffer vorgewhlt werden muss.
+ #
+ # "NumberPrefix" is set to precede each telephone number. This is
+ # important for PBX systems which require that a number be dialed to
+ # obtain an outside line.
+ #
+ # default ""
+ #
+ NumberPrefix:
+
+
+ # Wenn der Wert in "UseISDNFaxService" = 1 ist, wird ein ausgehender Ruf
+ # mit der ISDN-FAX-G3 Dienstekennung aufgebaut. Bei 0 wird eine 3.1kHz
+ # Audio-Verbindung hergestellt.
+ #
+ # When in "UseISDNFaxService" the value is = 1, an outoing call will be
+ # established using the ISDN-FAX-G3 service indicator. For 0, a 3.1kHz
+ # audio connection is established.
+ #
+ # default 0
+ #
+ UseISDNFaxService: 0
+
+
+ # Gibt die Dauer in Sekunden an, die auf eine Verbindungsannahme durch die
+ # Gegenseite gewartet wird. So wird beim Faxversand nicht automatisch die
+ # gesamte von der Telekom vorgegebene Wartezeit genutzt. Eine Angabe des
+ # Wertes 0 nutzt die gesamte Wartezeit.
+ #
+ # The duration in seconds you wait for the remote site to accept your
+ # outgoing call In this way you do not have to use the entire ringing
+ # duration preset by the telephone company. The default value 0 uses the
+ # entire ringing duration.
+ #
+ # default 0
+ #
+ RingingDuration: 0
+
+
+ # ----------- incoming params -----------
+ {
+
+ # Controller, fr den diese Subsection gilt.
+ #
+ # Controller for which this subsection is valid.
+ #
+ # default 1
+ #
+ Controller: 1
+
+
+ # Wenn "AcceptSpeech" auf 1 steht, wird auch die Dienstekennung
+ # "Sprache" angenommen.
+ #
+ # If "AcceptSpeech" is set to 1, the service indicator "Voice" also
+ # will be accepted.
+ #
+ # default 0
+ #
+ AcceptSpeech: 1
+
+
+ # Sofern man DDI nutzen will, sollte man "UseDDI" auf 1 stellen.
+ #
+ # If DDI is to be used, "UseDDI" should be set to a value of 1.
+ #
+ # default 0
+ #
+ UseDDI: 0
+
+
+ # Die DDI-Stammnummer wird bei "DDIOffset" eingetragen.
+ # Der Standardwert fhrt zu keinem korrekten Ergebnis und
+ # sollte, sofern "UseDDI" auf 1 gestellt wurde, immer
+ # verndert werden.
+ #
+ # "DDIOffset" indicates the DDI offset number which precedes
+ # extension number. Because the default value can't guarantee
+ # a correct result, this value should be modified whenever
+ # "UseDDI" is set to 1.
+ #
+ # default ""
+ #
+ DDIOffset: "12345"
+
+
+ # "DDILength" gibt die Anzahl der Durchwahlziffern an. (Diese Ziffern
+ # werden lediglich als Teil der Empfngernummer mitgeteilt.) Der
+ # Standardwert sollte bei Verwendung von DDI ebenfalls angepasst
+ # werden.
+ #
+ # "DDILength" indicates the number of digits in the extension. (These
+ # numbers are only used as a component of the recipient's number.) The
+ # default value should be adapted whenever DDI is used.
+ #
+ # default 0
+ #
+ DDILength: 3
+
+
+ # Bei "IncomingDDIs" knnen in einer durch Komma getrennten Liste alle
+ # Durchwahlziffern (DDIs) angegeben werden, fr die Rufe angenommen
+ # werden sollen. Eine Bereichsangabe ist auch mglich (z.B. 100-300),
+ # wobei aber keine offenen Bereiche (z.B. -100) erlaubt sind.
+ # Sofern IncommingDDIs gesetzt ist, wird DDILength ignoriert.
+ #
+ # In "IncomingDDIs", all extension numbers (DDIs) for which calls are
+ # to be accepted may be listed, separated by commas. It is also
+ # possible to specify a range (e.g. 100-300); here no open ranges are
+ # permitted (e.g. -100). When the "IncomingDDIs" switch is set, the
+ # parameters for DDILength will be ignored.
+ #
+ # default ""
+ #
+ IncomingDDIs:
+
+
+ # Bei "IncomingMSNs" knnen in einer durch Komma getrennten Liste alle
+ # MSNs angegeben werden, fr die Rufe angenommen werden sollen. Ist
+ # die Liste leer, werden alle Rufe auf ISDN FAX G3, 3,1kHz Audio und
+ # eventuell "Sprache" angenommen.
+ # Wenn "UseDDI" auf 1 gestellt ist, wird "IncomingMSNs" ignoriert.
+ #
+ # In "IncomingMSNs", all MSNs for which calls are to be accepted may
+ # be listed, separated by commas. When the list is empty, all calls
+ # are accepted for ISDN FAX G3, 3,1kHz audio and perhaps "Voice".
+ # When "UseDDI" is set to 1, "IncomingMSNs" is ignored.
+ #
+ # default ""
+ #
+ IncomingMSNs:
+
+
+ # Wenn "AcceptGlobalCall" auf 1 steht, werden auch Calls ohne
+ # Zielrufnummer (ohne MSN) angenommen.
+ # Notwendig hinter einigen Telefonanlagen, die keine Zielrufnummer
+ # senden.
+ #
+ # If "AcceptGlobalCall" is set to 1, calls without Called Party
+ # Number also will be accepted.
+ # Needed on internal ports of some PBX.
+ #
+ # default 1
+ #
+ AcceptGlobalCall: 1
+ }
+}
+
diff --git a/extra/capi4k-utils/PKGBUILD b/extra/capi4k-utils/PKGBUILD
new file mode 100644
index 000000000..a2610a96f
--- /dev/null
+++ b/extra/capi4k-utils/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 39034 2009-05-11 08:28:48Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=capi4k-utils
+pkgver=050718
+pkgrel=7
+pkgdesc="capi utils for isdn cards"
+arch=(i686 x86_64)
+license=('GPL2')
+url="ftp://ftp.in-berlin.de/pub/capi4linux/"
+makedepends=('ppp')
+depends=('glibc' 'bash')
+backup=(etc/capi.conf)
+source=(ftp://ftp.in-berlin.de/pub/capi4linux/capi4k-utils-2005-07-18.tar.gz
+ ppp-2.4.4.patch
+ config
+ capi.conf
+ capiinit.rc
+ capi-compile.patch)
+options=(!libtool)
+md5sums=('c745759b6b3d64e19763727176648cdf'
+ 'c5416b8b1b76a82c4bcaad76140369e1'
+ '146aa9e06588511c447d7e81dafec86a'
+ 'c88940f0ace5759b7a0e8b267ca77ce2'
+ 'aa59439a70299290a4d9bcdfaeafed72'
+ '4fa27c5b7b1ee60524fce875bb54bca8')
+
+build() {
+ cd $srcdir/$pkgname
+ patch -Np1 -i ../ppp-2.4.4.patch || return 1
+ # fix compiling with gcc 4.2
+ patch -Np1 -i ../capi-compile.patch || return 1
+ cp ../config .config
+ # fix pppd plugin
+ sed -i -e 's/2.3.11 2.4.0 2.4.1 2.4.1b1 2.4.1b2 2.4.2b3 2.4.2 2.4.3/2.4.4/g' $startdir/src/$pkgname/pppdcapiplugin/Makefile
+ # patch all Makefile.* and Rules.make to use our CFLAGS
+ sed -i -e "s:^\(CFLAGS.*\)-O2:\1${CFLAGS}:g" */Makefile.* */Rules.make
+ # Arch64 fix from Gentoo
+ # patch capi20/Makefile.* to use -fPIC for shared library
+ [ "$CARCH" = "x86_64" ] && (sed -i -e "s:^\(CFLAGS.*\):\1 -fPIC:g" capi20/Makefile.* || return 1)
+ cd capi20
+ aclocal
+ libtoolize --copy --force
+ cd $srcdir/$pkgname
+ make subconfig || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -m755 -D $srcdir/capiinit.rc $pkgdir/etc/rc.d/capiinit
+ install -m644 $srcdir/capi.conf $pkgdir/etc
+ cd $pkgdir/usr/lib
+ ln -s libcapi20 libcapi20.so.2
+ # fix wrong manpage permission
+ chmod 644 $pkgdir/usr/share/man/man8/capiplugin.8
+}
diff --git a/extra/capi4k-utils/capi-compile.patch b/extra/capi4k-utils/capi-compile.patch
new file mode 100644
index 000000000..e6b3acb3b
--- /dev/null
+++ b/extra/capi4k-utils/capi-compile.patch
@@ -0,0 +1,10 @@
+--- capi4k-utils/capi20/capi20.h~ 2000-11-19 11:15:01.000000000 +0100
++++ capi4k-utils/capi20/capi20.h 2007-11-12 12:07:30.000000000 +0100
+@@ -21,6 +21,7 @@
+ #define __CAPI20_H__
+
+ #include <sys/time.h>
++#include <sys/types.h>
+
+ #ifdef __cplusplus
+ extern "C" {
diff --git a/extra/capi4k-utils/capi.conf b/extra/capi4k-utils/capi.conf
new file mode 100644
index 000000000..c6b35751f
--- /dev/null
+++ b/extra/capi4k-utils/capi.conf
@@ -0,0 +1,14 @@
+# card file proto io irq mem cardnr options
+#b1isa b1.t4 DSS1 0x150 7 - - P2P
+#b1pci b1.t4 DSS1 - - - -
+#c4 c4.bin DSS1 - - - -
+#c4 - DSS1 - - - -
+#c4 - DSS1 - - - - P2P
+#c4 - DSS1 - - - - P2P
+#c2 c2.bin DSS1 - - - -
+#c2 - DSS1 - - - -
+#t1isa t1.t4 DSS1 0x340 9 - 0
+#t1pci t1.t4 DSS1 - - - -
+#fcpci - - - - - -
+#fcclassic - - 0x150 10 - -
+#fcpcmcia - - - - - - \ No newline at end of file
diff --git a/extra/capi4k-utils/capiinit.rc b/extra/capi4k-utils/capiinit.rc
new file mode 100755
index 000000000..841be67f3
--- /dev/null
+++ b/extra/capi4k-utils/capiinit.rc
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/capiinit`
+case "$1" in
+ start)
+ stat_busy "Starting capiinit"
+ [ -f /proc/capi/capi20 ] || /sbin/modprobe -s capi
+
+ CNT=0 # wait for udev
+ while [ ! -e /dev/capi20 -a $CNT -lt 10 ]; do
+ sleep 1; : $((CNT++))
+ done
+
+ if [ -z "$PID" ]; then
+ /usr/sbin/capiinit 2>/dev/null start
+ fi
+
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon capiinit
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping capiinit"
+ /usr/sbin/capiinit 2>/dev/null stop
+ /sbin/modprobe -sqr capi
+ rm_daemon capiinit
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/capi4k-utils/config b/extra/capi4k-utils/config
new file mode 100644
index 000000000..6ca0dfd61
--- /dev/null
+++ b/extra/capi4k-utils/config
@@ -0,0 +1,11 @@
+#
+# Automatically generated by make menuconfig: don't edit
+#
+CONFIG_KERNELDIR='/usr/src/$(uname -r)'
+CONFIG_BINDIR='/usr/bin'
+CONFIG_SBINDIR='/usr/sbin'
+CONFIG_MANDIR='/usr/share/man'
+CONFIG_AVMCAPICTRL=y
+CONFIG_CAPIFAX=y
+CONFIG_RCAPID=y
+CONFIG_PPPDCAPIPLUGIN=y
diff --git a/extra/capi4k-utils/ppp-2.4.4.patch b/extra/capi4k-utils/ppp-2.4.4.patch
new file mode 100644
index 000000000..24a06a63b
--- /dev/null
+++ b/extra/capi4k-utils/ppp-2.4.4.patch
@@ -0,0 +1,1874 @@
+diff -auNr capi4k-utils/pppdcapiplugin/ppp-2.4.4/Makefile capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4/Makefile
+--- capi4k-utils/pppdcapiplugin/ppp-2.4.4/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4/Makefile 2006-12-30 16:14:35.000000000 +0100
+@@ -0,0 +1,14 @@
++# Makefile for the capiplugin for pppd(8).
++#
++# Copyright 2000 Carsten Paeth (calle@calle.in-berlin.de)
++# Copyright 2000 AVM GmbH Berlin (info@avm.de)
++#
++# 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.
++
++PLUGINDIR=${DESTDIR}/usr/lib/pppd/$(PPPVERSION)
++
++include $(TOPDIR)/Rules.make
++
+diff -auNr capi4k-utils/pppdcapiplugin/ppp-2.4.4/pppd/patchlevel.h capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4/pppd/patchlevel.h
+--- capi4k-utils/pppdcapiplugin/ppp-2.4.4/pppd/patchlevel.h 1970-01-01 01:00:00.000000000 +0100
++++ capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4/pppd/patchlevel.h 2006-12-30 16:14:35.000000000 +0100
+@@ -0,0 +1,4 @@
++/* $Id: ppp-2.4.4.patch,v 1.1 2007/01/01 15:17:26 tpowa Exp $ */
++
++#define VERSION "2.4.4"
++#define DATE "28 June 2006"
+diff -auNr capi4k-utils/pppdcapiplugin/ppp-2.4.4/pppd/pppd.h capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4/pppd/pppd.h
+--- capi4k-utils/pppdcapiplugin/ppp-2.4.4/pppd/pppd.h 1970-01-01 01:00:00.000000000 +0100
++++ capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4/pppd/pppd.h 2006-12-30 16:14:35.000000000 +0100
+@@ -0,0 +1,909 @@
++/*
++ * pppd.h - PPP daemon global declarations.
++ *
++ * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ *
++ * 3. The name "Carnegie Mellon University" must not be used to
++ * endorse or promote products derived from this software without
++ * prior written permission. For permission or any legal
++ * details, please contact
++ * Office of Technology Transfer
++ * Carnegie Mellon University
++ * 5000 Forbes Avenue
++ * Pittsburgh, PA 15213-3890
++ * (412) 268-4387, fax: (412) 268-7395
++ * tech-transfer@andrew.cmu.edu
++ *
++ * 4. Redistributions of any form whatsoever must retain the following
++ * acknowledgment:
++ * "This product includes software developed by Computing Services
++ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
++ *
++ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
++ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ *
++ * $Id: ppp-2.4.4.patch,v 1.1 2007/01/01 15:17:26 tpowa Exp $
++ */
++
++/*
++ * TODO:
++ */
++
++#ifndef __PPPD_H__
++#define __PPPD_H__
++
++#include <stdio.h> /* for FILE */
++#include <limits.h> /* for NGROUPS_MAX */
++#include <sys/param.h> /* for MAXPATHLEN and BSD4_4, if defined */
++#include <sys/types.h> /* for u_int32_t, if defined */
++#include <sys/time.h> /* for struct timeval */
++#include <net/ppp_defs.h>
++#include "patchlevel.h"
++
++#if defined(__STDC__)
++#include <stdarg.h>
++#define __V(x) x
++#else
++#include <varargs.h>
++#define __V(x) (va_alist) va_dcl
++#define const
++#define volatile
++#endif
++
++#ifdef INET6
++#include "eui64.h"
++#endif
++
++/*
++ * Limits.
++ */
++
++#define NUM_PPP 1 /* One PPP interface supported (per process) */
++#define MAXWORDLEN 1024 /* max length of word in file (incl null) */
++#define MAXARGS 1 /* max # args to a command */
++#define MAXNAMELEN 256 /* max length of hostname or name for auth */
++#define MAXSECRETLEN 256 /* max length of password or secret */
++
++/*
++ * Option descriptor structure.
++ */
++
++typedef unsigned char bool;
++
++enum opt_type {
++ o_special_noarg = 0,
++ o_special = 1,
++ o_bool,
++ o_int,
++ o_uint32,
++ o_string,
++ o_wild
++};
++
++typedef struct {
++ char *name; /* name of the option */
++ enum opt_type type;
++ void *addr;
++ char *description;
++ unsigned int flags;
++ void *addr2;
++ int upper_limit;
++ int lower_limit;
++ const char *source;
++ short int priority;
++ short int winner;
++} option_t;
++
++/* Values for flags */
++#define OPT_VALUE 0xff /* mask for presupplied value */
++#define OPT_HEX 0x100 /* int option is in hex */
++#define OPT_NOARG 0x200 /* option doesn't take argument */
++#define OPT_OR 0x400 /* OR in argument to value */
++#define OPT_INC 0x800 /* increment value */
++#define OPT_A2OR 0x800 /* for o_bool, OR arg to *(u_char *)addr2 */
++#define OPT_PRIV 0x1000 /* privileged option */
++#define OPT_STATIC 0x2000 /* string option goes into static array */
++#define OPT_LLIMIT 0x4000 /* check value against lower limit */
++#define OPT_ULIMIT 0x8000 /* check value against upper limit */
++#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
++#define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */
++#define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */
++#define OPT_A2LIST 0x10000 /* for o_special, keep list of values */
++#define OPT_A2CLRB 0x10000 /* o_bool, clr val bits in *(u_char *)addr2 */
++#define OPT_NOINCR 0x20000 /* value mustn't be increased */
++#define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */
++#define OPT_PRIO 0x80000 /* process option priorities for this option */
++#define OPT_PRIOSUB 0x100000 /* subsidiary member of priority group */
++#define OPT_ALIAS 0x200000 /* option is alias for previous option */
++#define OPT_A2COPY 0x400000 /* addr2 -> second location to rcv value */
++#define OPT_ENABLE 0x800000 /* use *addr2 as enable for option */
++#define OPT_A2CLR 0x1000000 /* clear *(bool *)addr2 */
++#define OPT_PRIVFIX 0x2000000 /* user can't override if set by root */
++#define OPT_INITONLY 0x4000000 /* option can only be set in init phase */
++#define OPT_DEVEQUIV 0x8000000 /* equiv to device name */
++#define OPT_DEVNAM (OPT_INITONLY | OPT_DEVEQUIV)
++#define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */
++#define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */
++#define OPT_NOPRINT 0x40000000 /* don't print this option at all */
++
++#define OPT_VAL(x) ((x) & OPT_VALUE)
++
++/* Values for priority */
++#define OPRIO_DEFAULT 0 /* a default value */
++#define OPRIO_CFGFILE 1 /* value from a configuration file */
++#define OPRIO_CMDLINE 2 /* value from the command line */
++#define OPRIO_SECFILE 3 /* value from options in a secrets file */
++#define OPRIO_ROOT 100 /* added to priority if OPT_PRIVFIX && root */
++
++#ifndef GIDSET_TYPE
++#define GIDSET_TYPE gid_t
++#endif
++
++/* Structure representing a list of permitted IP addresses. */
++struct permitted_ip {
++ int permit; /* 1 = permit, 0 = forbid */
++ u_int32_t base; /* match if (addr & mask) == base */
++ u_int32_t mask; /* base and mask are in network byte order */
++};
++
++/*
++ * Unfortunately, the linux kernel driver uses a different structure
++ * for statistics from the rest of the ports.
++ * This structure serves as a common representation for the bits
++ * pppd needs.
++ */
++struct pppd_stats {
++ unsigned int bytes_in;
++ unsigned int bytes_out;
++ unsigned int pkts_in;
++ unsigned int pkts_out;
++};
++
++/* Used for storing a sequence of words. Usually malloced. */
++struct wordlist {
++ struct wordlist *next;
++ char *word;
++};
++
++/* An endpoint discriminator, used with multilink. */
++#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
++struct epdisc {
++ unsigned char class;
++ unsigned char length;
++ unsigned char value[MAX_ENDP_LEN];
++};
++
++/* values for epdisc.class */
++#define EPD_NULL 0 /* null discriminator, no data */
++#define EPD_LOCAL 1
++#define EPD_IP 2
++#define EPD_MAC 3
++#define EPD_MAGIC 4
++#define EPD_PHONENUM 5
++
++typedef void (*notify_func) __P((void *, int));
++
++struct notifier {
++ struct notifier *next;
++ notify_func func;
++ void *arg;
++};
++
++/*
++ * Global variables.
++ */
++
++extern int hungup; /* Physical layer has disconnected */
++extern int ifunit; /* Interface unit number */
++extern char ifname[]; /* Interface name */
++extern char hostname[]; /* Our hostname */
++extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
++extern int devfd; /* fd of underlying device */
++extern int fd_ppp; /* fd for talking PPP */
++extern int phase; /* Current state of link - see values below */
++extern int baud_rate; /* Current link speed in bits/sec */
++extern char *progname; /* Name of this program */
++extern int redirect_stderr;/* Connector's stderr should go to file */
++extern char peer_authname[];/* Authenticated name of peer */
++extern int auth_done[NUM_PPP]; /* Methods actually used for auth */
++extern int privileged; /* We were run by real-uid root */
++extern int need_holdoff; /* Need holdoff period after link terminates */
++extern char **script_env; /* Environment variables for scripts */
++extern int detached; /* Have detached from controlling tty */
++extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
++extern int ngroups; /* How many groups valid in groups */
++extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
++extern int link_stats_valid; /* set if link_stats is valid */
++extern unsigned link_connect_time; /* time the link was up for */
++extern int using_pty; /* using pty as device (notty or pty opt.) */
++extern int log_to_fd; /* logging to this fd as well as syslog */
++extern bool log_default; /* log_to_fd is default (stdout) */
++extern char *no_ppp_msg; /* message to print if ppp not in kernel */
++extern volatile int status; /* exit status for pppd */
++extern bool devnam_fixed; /* can no longer change devnam */
++extern int unsuccess; /* # unsuccessful connection attempts */
++extern int do_callback; /* set if we want to do callback next */
++extern int doing_callback; /* set if this is a callback */
++extern int error_count; /* # of times error() has been called */
++extern char ppp_devnam[MAXPATHLEN];
++extern char remote_number[MAXNAMELEN]; /* Remote telephone number, if avail. */
++extern int ppp_session_number; /* Session number (eg PPPoE session) */
++extern int fd_devnull; /* fd open to /dev/null */
++
++extern int listen_time; /* time to listen first (ms) */
++extern bool doing_multilink;
++extern bool multilink_master;
++extern bool bundle_eof;
++extern bool bundle_terminating;
++
++extern struct notifier *pidchange; /* for notifications of pid changing */
++extern struct notifier *phasechange; /* for notifications of phase changes */
++extern struct notifier *exitnotify; /* for notification that we're exiting */
++extern struct notifier *sigreceived; /* notification of received signal */
++extern struct notifier *ip_up_notifier; /* IPCP has come up */
++extern struct notifier *ip_down_notifier; /* IPCP has gone down */
++extern struct notifier *auth_up_notifier; /* peer has authenticated */
++extern struct notifier *link_down_notifier; /* link has gone down */
++extern struct notifier *fork_notifier; /* we are a new child process */
++
++/* Values for do_callback and doing_callback */
++#define CALLBACK_DIALIN 1 /* we are expecting the call back */
++#define CALLBACK_DIALOUT 2 /* we are dialling out to call back */
++
++/*
++ * Variables set by command-line options.
++ */
++
++extern int debug; /* Debug flag */
++extern int kdebugflag; /* Tell kernel to print debug messages */
++extern int default_device; /* Using /dev/tty or equivalent */
++extern char devnam[MAXPATHLEN]; /* Device name */
++extern int crtscts; /* Use hardware flow control */
++extern bool modem; /* Use modem control lines */
++extern int inspeed; /* Input/Output speed requested */
++extern u_int32_t netmask; /* IP netmask to set on interface */
++extern bool lockflag; /* Create lock file to lock the serial dev */
++extern bool nodetach; /* Don't detach from controlling tty */
++extern bool updetach; /* Detach from controlling tty when link up */
++extern char *initializer; /* Script to initialize physical link */
++extern char *connect_script; /* Script to establish physical link */
++extern char *disconnect_script; /* Script to disestablish physical link */
++extern char *welcomer; /* Script to welcome client after connection */
++extern char *ptycommand; /* Command to run on other side of pty */
++extern int maxconnect; /* Maximum connect time (seconds) */
++extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */
++extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */
++extern bool auth_required; /* Peer is required to authenticate */
++extern bool persist; /* Reopen link after it goes down */
++extern bool uselogin; /* Use /etc/passwd for checking PAP */
++extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */
++extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
++extern bool explicit_remote;/* remote_name specified with remotename opt */
++extern bool demand; /* Do dial-on-demand */
++extern char *ipparam; /* Extra parameter for ip up/down scripts */
++extern bool cryptpap; /* Others' PAP passwords are encrypted */
++extern int idle_time_limit;/* Shut down link if idle for this long */
++extern int holdoff; /* Dead time before restarting */
++extern bool holdoff_specified; /* true if user gave a holdoff value */
++extern bool notty; /* Stdin/out is not a tty */
++extern char *pty_socket; /* Socket to connect to pty */
++extern char *record_file; /* File to record chars sent/received */
++extern bool sync_serial; /* Device is synchronous serial device */
++extern int maxfail; /* Max # of unsuccessful connection attempts */
++extern char linkname[MAXPATHLEN]; /* logical name for link */
++extern bool tune_kernel; /* May alter kernel settings as necessary */
++extern int connect_delay; /* Time to delay after connect script */
++extern int max_data_rate; /* max bytes/sec through charshunt */
++extern int req_unit; /* interface unit number to use */
++extern char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
++extern char path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
++extern bool multilink; /* enable multilink operation */
++extern bool noendpoint; /* don't send or accept endpt. discrim. */
++extern char *bundle_name; /* bundle name for multilink */
++extern bool dump_options; /* print out option values */
++extern bool dryrun; /* check everything, print options, exit */
++extern int child_wait; /* # seconds to wait for children at end */
++
++#ifdef MAXOCTETS
++extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */
++extern int maxoctets_dir; /* Direction :
++ 0 - in+out (default)
++ 1 - in
++ 2 - out
++ 3 - max(in,out) */
++extern int maxoctets_timeout; /* Timeout for check of octets limit */
++#define PPP_OCTETS_DIRECTION_SUM 0
++#define PPP_OCTETS_DIRECTION_IN 1
++#define PPP_OCTETS_DIRECTION_OUT 2
++#define PPP_OCTETS_DIRECTION_MAXOVERAL 3
++/* same as previos, but little different on RADIUS side */
++#define PPP_OCTETS_DIRECTION_MAXSESSION 4
++#endif
++
++#ifdef PPP_FILTER
++extern struct bpf_program pass_filter; /* Filter for pkts to pass */
++extern struct bpf_program active_filter; /* Filter for link-active pkts */
++#endif
++
++#ifdef MSLANMAN
++extern bool ms_lanman; /* Use LanMan password instead of NT */
++ /* Has meaning only with MS-CHAP challenges */
++#endif
++
++/* Values for auth_pending, auth_done */
++#define PAP_WITHPEER 0x1
++#define PAP_PEER 0x2
++#define CHAP_WITHPEER 0x4
++#define CHAP_PEER 0x8
++#define EAP_WITHPEER 0x10
++#define EAP_PEER 0x20
++
++/* Values for auth_done only */
++#define CHAP_MD5_WITHPEER 0x40
++#define CHAP_MD5_PEER 0x80
++#define CHAP_MS_SHIFT 8 /* LSB position for MS auths */
++#define CHAP_MS_WITHPEER 0x100
++#define CHAP_MS_PEER 0x200
++#define CHAP_MS2_WITHPEER 0x400
++#define CHAP_MS2_PEER 0x800
++
++extern char *current_option; /* the name of the option being parsed */
++extern int privileged_option; /* set iff the current option came from root */
++extern char *option_source; /* string saying where the option came from */
++extern int option_priority; /* priority of current options */
++
++/*
++ * Values for phase.
++ */
++#define PHASE_DEAD 0
++#define PHASE_INITIALIZE 1
++#define PHASE_SERIALCONN 2
++#define PHASE_DORMANT 3
++#define PHASE_ESTABLISH 4
++#define PHASE_AUTHENTICATE 5
++#define PHASE_CALLBACK 6
++#define PHASE_NETWORK 7
++#define PHASE_RUNNING 8
++#define PHASE_TERMINATE 9
++#define PHASE_DISCONNECT 10
++#define PHASE_HOLDOFF 11
++#define PHASE_MASTER 12
++
++/*
++ * The following struct gives the addresses of procedures to call
++ * for a particular protocol.
++ */
++struct protent {
++ u_short protocol; /* PPP protocol number */
++ /* Initialization procedure */
++ void (*init) __P((int unit));
++ /* Process a received packet */
++ void (*input) __P((int unit, u_char *pkt, int len));
++ /* Process a received protocol-reject */
++ void (*protrej) __P((int unit));
++ /* Lower layer has come up */
++ void (*lowerup) __P((int unit));
++ /* Lower layer has gone down */
++ void (*lowerdown) __P((int unit));
++ /* Open the protocol */
++ void (*open) __P((int unit));
++ /* Close the protocol */
++ void (*close) __P((int unit, char *reason));
++ /* Print a packet in readable form */
++ int (*printpkt) __P((u_char *pkt, int len,
++ void (*printer) __P((void *, char *, ...)),
++ void *arg));
++ /* Process a received data packet */
++ void (*datainput) __P((int unit, u_char *pkt, int len));
++ bool enabled_flag; /* 0 iff protocol is disabled */
++ char *name; /* Text name of protocol */
++ char *data_name; /* Text name of corresponding data protocol */
++ option_t *options; /* List of command-line options */
++ /* Check requested options, assign defaults */
++ void (*check_options) __P((void));
++ /* Configure interface for demand-dial */
++ int (*demand_conf) __P((int unit));
++ /* Say whether to bring up link for this pkt */
++ int (*active_pkt) __P((u_char *pkt, int len));
++};
++
++/* Table of pointers to supported protocols */
++extern struct protent *protocols[];
++
++/*
++ * This struct contains pointers to a set of procedures for
++ * doing operations on a "channel". A channel provides a way
++ * to send and receive PPP packets - the canonical example is
++ * a serial port device in PPP line discipline (or equivalently
++ * with PPP STREAMS modules pushed onto it).
++ */
++struct channel {
++ /* set of options for this channel */
++ option_t *options;
++ /* find and process a per-channel options file */
++ void (*process_extra_options) __P((void));
++ /* check all the options that have been given */
++ void (*check_options) __P((void));
++ /* get the channel ready to do PPP, return a file descriptor */
++ int (*connect) __P((void));
++ /* we're finished with the channel */
++ void (*disconnect) __P((void));
++ /* put the channel into PPP `mode' */
++ int (*establish_ppp) __P((int));
++ /* take the channel out of PPP `mode', restore loopback if demand */
++ void (*disestablish_ppp) __P((int));
++ /* set the transmit-side PPP parameters of the channel */
++ void (*send_config) __P((int, u_int32_t, int, int));
++ /* set the receive-side PPP parameters of the channel */
++ void (*recv_config) __P((int, u_int32_t, int, int));
++ /* cleanup on error or normal exit */
++ void (*cleanup) __P((void));
++ /* close the device, called in children after fork */
++ void (*close) __P((void));
++};
++
++extern struct channel *the_channel;
++
++/*
++ * Prototypes.
++ */
++
++/* Procedures exported from main.c. */
++void set_ifunit __P((int)); /* set stuff that depends on ifunit */
++void detach __P((void)); /* Detach from controlling tty */
++void die __P((int)); /* Cleanup and exit */
++void quit __P((void)); /* like die(1) */
++void novm __P((char *)); /* Say we ran out of memory, and die */
++void timeout __P((void (*func)(void *), void *arg, int s, int us));
++ /* Call func(arg) after s.us seconds */
++void untimeout __P((void (*func)(void *), void *arg));
++ /* Cancel call to func(arg) */
++void record_child __P((int, char *, void (*) (void *), void *));
++pid_t safe_fork __P((int, int, int)); /* Fork & close stuff in child */
++int device_script __P((char *cmd, int in, int out, int dont_wait));
++ /* Run `cmd' with given stdin and stdout */
++pid_t run_program __P((char *prog, char **args, int must_exist,
++ void (*done)(void *), void *arg, int wait));
++ /* Run program prog with args in child */
++void reopen_log __P((void)); /* (re)open the connection to syslog */
++void print_link_stats __P((void)); /* Print stats, if available */
++void reset_link_stats __P((int)); /* Reset (init) stats when link goes up */
++void update_link_stats __P((int)); /* Get stats at link termination */
++void script_setenv __P((char *, char *, int)); /* set script env var */
++void script_unsetenv __P((char *)); /* unset script env var */
++void new_phase __P((int)); /* signal start of new phase */
++void add_notifier __P((struct notifier **, notify_func, void *));
++void remove_notifier __P((struct notifier **, notify_func, void *));
++void notify __P((struct notifier *, int));
++int ppp_send_config __P((int, int, u_int32_t, int, int));
++int ppp_recv_config __P((int, int, u_int32_t, int, int));
++const char *protocol_name __P((int));
++void remove_pidfiles __P((void));
++void lock_db __P((void));
++void unlock_db __P((void));
++
++/* Procedures exported from tty.c. */
++void tty_init __P((void));
++
++/* Procedures exported from utils.c. */
++void log_packet __P((u_char *, int, char *, int));
++ /* Format a packet and log it with syslog */
++void print_string __P((char *, int, void (*) (void *, char *, ...),
++ void *)); /* Format a string for output */
++int slprintf __P((char *, int, char *, ...)); /* sprintf++ */
++int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */
++size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */
++size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */
++void dbglog __P((char *, ...)); /* log a debug message */
++void info __P((char *, ...)); /* log an informational message */
++void notice __P((char *, ...)); /* log a notice-level message */
++void warn __P((char *, ...)); /* log a warning message */
++void error __P((char *, ...)); /* log an error message */
++void fatal __P((char *, ...)); /* log an error message and die(1) */
++void init_pr_log __P((char *, int)); /* initialize for using pr_log */
++void pr_log __P((void *, char *, ...)); /* printer fn, output to syslog */
++void end_pr_log __P((void)); /* finish up after using pr_log */
++void dump_packet __P((const char *, u_char *, int));
++ /* dump packet to debug log if interesting */
++ssize_t complete_read __P((int, void *, size_t));
++ /* read a complete buffer */
++
++/* Procedures exported from auth.c */
++void link_required __P((int)); /* we are starting to use the link */
++void start_link __P((int)); /* bring the link up now */
++void link_terminated __P((int)); /* we are finished with the link */
++void link_down __P((int)); /* the LCP layer has left the Opened state */
++void upper_layers_down __P((int));/* take all NCPs down */
++void link_established __P((int)); /* the link is up; authenticate now */
++void start_networks __P((int)); /* start all the network control protos */
++void continue_networks __P((int)); /* start network [ip, etc] control protos */
++void np_up __P((int, int)); /* a network protocol has come up */
++void np_down __P((int, int)); /* a network protocol has gone down */
++void np_finished __P((int, int)); /* a network protocol no longer needs link */
++void auth_peer_fail __P((int, int));
++ /* peer failed to authenticate itself */
++void auth_peer_success __P((int, int, int, char *, int));
++ /* peer successfully authenticated itself */
++void auth_withpeer_fail __P((int, int));
++ /* we failed to authenticate ourselves */
++void auth_withpeer_success __P((int, int, int));
++ /* we successfully authenticated ourselves */
++void auth_check_options __P((void));
++ /* check authentication options supplied */
++void auth_reset __P((int)); /* check what secrets we have */
++int check_passwd __P((int, char *, int, char *, int, char **));
++ /* Check peer-supplied username/password */
++int get_secret __P((int, char *, char *, char *, int *, int));
++ /* get "secret" for chap */
++int get_srp_secret __P((int unit, char *client, char *server, char *secret,
++ int am_server));
++int auth_ip_addr __P((int, u_int32_t));
++ /* check if IP address is authorized */
++int auth_number __P((void)); /* check if remote number is authorized */
++int bad_ip_adrs __P((u_int32_t));
++ /* check if IP address is unreasonable */
++
++/* Procedures exported from demand.c */
++void demand_conf __P((void)); /* config interface(s) for demand-dial */
++void demand_block __P((void)); /* set all NPs to queue up packets */
++void demand_unblock __P((void)); /* set all NPs to pass packets */
++void demand_discard __P((void)); /* set all NPs to discard packets */
++void demand_rexmit __P((int, u_int32_t)); /* retransmit saved frames for an NP*/
++int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
++int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
++
++/* Procedures exported from multilink.c */
++#ifdef HAVE_MULTILINK
++void mp_check_options __P((void)); /* Check multilink-related options */
++int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
++void mp_exit_bundle __P((void)); /* have disconnected our link from bundle */
++void mp_bundle_terminated __P((void));
++char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
++int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
++#else
++#define mp_bundle_terminated() /* nothing */
++#define mp_exit_bundle() /* nothing */
++#define doing_multilink 0
++#define multilink_master 0
++#endif
++
++/* Procedures exported from sys-*.c */
++void sys_init __P((void)); /* Do system-dependent initialization */
++void sys_cleanup __P((void)); /* Restore system state before exiting */
++int sys_check_options __P((void)); /* Check options specified */
++void sys_close __P((void)); /* Clean up in a child before execing */
++int ppp_available __P((void)); /* Test whether ppp kernel support exists */
++int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
++int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
++int tty_establish_ppp __P((int)); /* Turn serial port into a ppp interface */
++void tty_disestablish_ppp __P((int)); /* Restore port to normal operation */
++void generic_disestablish_ppp __P((int dev_fd)); /* Restore device setting */
++int generic_establish_ppp __P((int dev_fd)); /* Make a ppp interface */
++void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
++int bundle_attach __P((int)); /* Attach link to existing bundle */
++void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
++void destroy_bundle __P((void)); /* Tell driver to destroy bundle */
++void clean_check __P((void)); /* Check if line was 8-bit clean */
++void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
++void restore_tty __P((int)); /* Restore port's original parameters */
++void setdtr __P((int, int)); /* Raise or lower port's DTR line */
++void output __P((int, u_char *, int)); /* Output a PPP packet */
++void wait_input __P((struct timeval *));
++ /* Wait for input, with timeout */
++void add_fd __P((int)); /* Add fd to set to wait for */
++void remove_fd __P((int)); /* Remove fd from set to wait for */
++int read_packet __P((u_char *)); /* Read PPP packet */
++int get_loop_output __P((void)); /* Read pkts from loopback */
++void tty_send_config __P((int, u_int32_t, int, int));
++ /* Configure i/f transmit parameters */
++void tty_set_xaccm __P((ext_accm));
++ /* Set extended transmit ACCM */
++void tty_recv_config __P((int, u_int32_t, int, int));
++ /* Configure i/f receive parameters */
++int ccp_test __P((int, u_char *, int, int));
++ /* Test support for compression scheme */
++void ccp_flags_set __P((int, int, int));
++ /* Set kernel CCP state */
++int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
++int get_idle_time __P((int, struct ppp_idle *));
++ /* Find out how long link has been idle */
++int get_ppp_stats __P((int, struct pppd_stats *));
++ /* Return link statistics */
++void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
++int netif_get_mtu __P((int)); /* Get PPP interface MTU */
++int sifvjcomp __P((int, int, int, int));
++ /* Configure VJ TCP header compression */
++int sifup __P((int)); /* Configure i/f up for one protocol */
++int sifnpmode __P((int u, int proto, enum NPmode mode));
++ /* Set mode for handling packets for proto */
++int sifdown __P((int)); /* Configure i/f down for one protocol */
++int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t));
++ /* Configure IPv4 addresses for i/f */
++int cifaddr __P((int, u_int32_t, u_int32_t));
++ /* Reset i/f IP addresses */
++#ifdef INET6
++int sif6addr __P((int, eui64_t, eui64_t));
++ /* Configure IPv6 addresses for i/f */
++int cif6addr __P((int, eui64_t, eui64_t));
++ /* Remove an IPv6 address from i/f */
++#endif
++int sifdefaultroute __P((int, u_int32_t, u_int32_t, bool replace_default_rt));
++ /* Create default route through i/f */
++int cifdefaultroute __P((int, u_int32_t, u_int32_t));
++ /* Delete default route through i/f */
++int sifproxyarp __P((int, u_int32_t));
++ /* Add proxy ARP entry for peer */
++int cifproxyarp __P((int, u_int32_t));
++ /* Delete proxy ARP entry for peer */
++u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
++int lock __P((char *)); /* Create lock file for device */
++int relock __P((int)); /* Rewrite lock file with new pid */
++void unlock __P((void)); /* Delete previously-created lock file */
++void logwtmp __P((const char *, const char *, const char *));
++ /* Write entry to wtmp file */
++int get_host_seed __P((void)); /* Get host-dependent random number seed */
++int have_route_to __P((u_int32_t)); /* Check if route to addr exists */
++#ifdef PPP_FILTER
++int set_filters __P((struct bpf_program *pass, struct bpf_program *active));
++ /* Set filter programs in kernel */
++#endif
++#ifdef IPX_CHANGE
++int sipxfaddr __P((int, unsigned long, unsigned char *));
++int cipxfaddr __P((int));
++#endif
++int get_if_hwaddr __P((u_char *addr, char *name));
++char *get_first_ethernet __P((void));
++
++/* Procedures exported from options.c */
++int setipaddr __P((char *, char **, int)); /* Set local/remote ip addresses */
++int parse_args __P((int argc, char **argv));
++ /* Parse options from arguments given */
++int options_from_file __P((char *filename, int must_exist, int check_prot,
++ int privileged));
++ /* Parse options from an options file */
++int options_from_user __P((void)); /* Parse options from user's .ppprc */
++int options_for_tty __P((void)); /* Parse options from /etc/ppp/options.tty */
++int options_from_list __P((struct wordlist *, int privileged));
++ /* Parse options from a wordlist */
++int getword __P((FILE *f, char *word, int *newlinep, char *filename));
++ /* Read a word from a file */
++void option_error __P((char *fmt, ...));
++ /* Print an error message about an option */
++int int_option __P((char *, int *));
++ /* Simplified number_option for decimal ints */
++void add_options __P((option_t *)); /* Add extra options */
++void check_options __P((void)); /* check values after all options parsed */
++int override_value __P((const char *, int, const char *));
++ /* override value if permitted by priority */
++void print_options __P((void (*) __P((void *, char *, ...)), void *));
++ /* print out values of all options */
++
++int parse_dotted_ip __P((char *, u_int32_t *));
++
++/*
++ * Hooks to enable plugins to change various things.
++ */
++extern int (*new_phase_hook) __P((int));
++extern int (*idle_time_hook) __P((struct ppp_idle *));
++extern int (*holdoff_hook) __P((void));
++extern int (*pap_check_hook) __P((void));
++extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
++ struct wordlist **paddrs,
++ struct wordlist **popts));
++extern void (*pap_logout_hook) __P((void));
++extern int (*pap_passwd_hook) __P((char *user, char *passwd));
++extern int (*allowed_address_hook) __P((u_int32_t addr));
++extern void (*ip_up_hook) __P((void));
++extern void (*ip_down_hook) __P((void));
++extern void (*ip_choose_hook) __P((u_int32_t *));
++
++extern int (*chap_check_hook) __P((void));
++extern int (*chap_passwd_hook) __P((char *user, char *passwd));
++
++/* Let a plugin snoop sent and received packets. Useful for L2TP */
++extern void (*snoop_recv_hook) __P((unsigned char *p, int len));
++extern void (*snoop_send_hook) __P((unsigned char *p, int len));
++
++/*
++ * Inline versions of get/put char/short/long.
++ * Pointer is advanced; we assume that both arguments
++ * are lvalues and will already be in registers.
++ * cp MUST be u_char *.
++ */
++#define GETCHAR(c, cp) { \
++ (c) = *(cp)++; \
++}
++#define PUTCHAR(c, cp) { \
++ *(cp)++ = (u_char) (c); \
++}
++
++
++#define GETSHORT(s, cp) { \
++ (s) = *(cp)++ << 8; \
++ (s) |= *(cp)++; \
++}
++#define PUTSHORT(s, cp) { \
++ *(cp)++ = (u_char) ((s) >> 8); \
++ *(cp)++ = (u_char) (s); \
++}
++
++#define GETLONG(l, cp) { \
++ (l) = *(cp)++ << 8; \
++ (l) |= *(cp)++; (l) <<= 8; \
++ (l) |= *(cp)++; (l) <<= 8; \
++ (l) |= *(cp)++; \
++}
++#define PUTLONG(l, cp) { \
++ *(cp)++ = (u_char) ((l) >> 24); \
++ *(cp)++ = (u_char) ((l) >> 16); \
++ *(cp)++ = (u_char) ((l) >> 8); \
++ *(cp)++ = (u_char) (l); \
++}
++
++#define INCPTR(n, cp) ((cp) += (n))
++#define DECPTR(n, cp) ((cp) -= (n))
++
++/*
++ * System dependent definitions for user-level 4.3BSD UNIX implementation.
++ */
++
++#define TIMEOUT(r, f, t) timeout((r), (f), (t), 0)
++#define UNTIMEOUT(r, f) untimeout((r), (f))
++
++#define BCOPY(s, d, l) memcpy(d, s, l)
++#define BZERO(s, n) memset(s, 0, n)
++#define BCMP(s1, s2, l) memcmp(s1, s2, l)
++
++#define PRINTMSG(m, l) { info("Remote message: %0.*v", l, m); }
++
++/*
++ * MAKEHEADER - Add Header fields to a packet.
++ */
++#define MAKEHEADER(p, t) { \
++ PUTCHAR(PPP_ALLSTATIONS, p); \
++ PUTCHAR(PPP_UI, p); \
++ PUTSHORT(t, p); }
++
++/*
++ * Exit status values.
++ */
++#define EXIT_OK 0
++#define EXIT_FATAL_ERROR 1
++#define EXIT_OPTION_ERROR 2
++#define EXIT_NOT_ROOT 3
++#define EXIT_NO_KERNEL_SUPPORT 4
++#define EXIT_USER_REQUEST 5
++#define EXIT_LOCK_FAILED 6
++#define EXIT_OPEN_FAILED 7
++#define EXIT_CONNECT_FAILED 8
++#define EXIT_PTYCMD_FAILED 9
++#define EXIT_NEGOTIATION_FAILED 10
++#define EXIT_PEER_AUTH_FAILED 11
++#define EXIT_IDLE_TIMEOUT 12
++#define EXIT_CONNECT_TIME 13
++#define EXIT_CALLBACK 14
++#define EXIT_PEER_DEAD 15
++#define EXIT_HANGUP 16
++#define EXIT_LOOPBACK 17
++#define EXIT_INIT_FAILED 18
++#define EXIT_AUTH_TOPEER_FAILED 19
++#ifdef MAXOCTETS
++#define EXIT_TRAFFIC_LIMIT 20
++#endif
++#define EXIT_CNID_AUTH_FAILED 21
++
++/*
++ * Debug macros. Slightly useful for finding bugs in pppd, not particularly
++ * useful for finding out why your connection isn't being established.
++ */
++#ifdef DEBUGALL
++#define DEBUGMAIN 1
++#define DEBUGFSM 1
++#define DEBUGLCP 1
++#define DEBUGIPCP 1
++#define DEBUGIPV6CP 1
++#define DEBUGUPAP 1
++#define DEBUGCHAP 1
++#endif
++
++#ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */
++#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
++ || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
++ || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
++#define LOG_PPP LOG_LOCAL2
++#else
++#define LOG_PPP LOG_LOCAL2
++#endif
++#endif /* LOG_PPP */
++
++#ifdef DEBUGMAIN
++#define MAINDEBUG(x) if (debug) dbglog x
++#else
++#define MAINDEBUG(x)
++#endif
++
++#ifdef DEBUGSYS
++#define SYSDEBUG(x) if (debug) dbglog x
++#else
++#define SYSDEBUG(x)
++#endif
++
++#ifdef DEBUGFSM
++#define FSMDEBUG(x) if (debug) dbglog x
++#else
++#define FSMDEBUG(x)
++#endif
++
++#ifdef DEBUGLCP
++#define LCPDEBUG(x) if (debug) dbglog x
++#else
++#define LCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPCP
++#define IPCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPV6CP
++#define IPV6CPDEBUG(x) if (debug) dbglog x
++#else
++#define IPV6CPDEBUG(x)
++#endif
++
++#ifdef DEBUGUPAP
++#define UPAPDEBUG(x) if (debug) dbglog x
++#else
++#define UPAPDEBUG(x)
++#endif
++
++#ifdef DEBUGCHAP
++#define CHAPDEBUG(x) if (debug) dbglog x
++#else
++#define CHAPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPXCP
++#define IPXCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPXCPDEBUG(x)
++#endif
++
++#ifndef SIGTYPE
++#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
++#define SIGTYPE void
++#else
++#define SIGTYPE int
++#endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */
++#endif /* SIGTYPE */
++
++#ifndef MIN
++#define MIN(a, b) ((a) < (b)? (a): (b))
++#endif
++#ifndef MAX
++#define MAX(a, b) ((a) > (b)? (a): (b))
++#endif
++
++#ifndef offsetof
++#define offsetof(type, member) ((size_t) &((type *)0)->member)
++#endif
++
++#endif /* __PPP_H__ */
+diff -auNr capi4k-utils/pppdcapiplugin/ppp-2.4.4b1/Makefile capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4b1/Makefile
+--- capi4k-utils/pppdcapiplugin/ppp-2.4.4b1/Makefile 1970-01-01 01:00:00.000000000 +0100
++++ capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4b1/Makefile 2006-12-30 16:14:35.000000000 +0100
+@@ -0,0 +1,14 @@
++# Makefile for the capiplugin for pppd(8).
++#
++# Copyright 2000 Carsten Paeth (calle@calle.in-berlin.de)
++# Copyright 2000 AVM GmbH Berlin (info@avm.de)
++#
++# 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.
++
++PLUGINDIR=${DESTDIR}/usr/lib/pppd/$(PPPVERSION)
++
++include $(TOPDIR)/Rules.make
++
+diff -auNr capi4k-utils/pppdcapiplugin/ppp-2.4.4b1/pppd/patchlevel.h capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4b1/pppd/patchlevel.h
+--- capi4k-utils/pppdcapiplugin/ppp-2.4.4b1/pppd/patchlevel.h 1970-01-01 01:00:00.000000000 +0100
++++ capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4b1/pppd/patchlevel.h 2006-12-30 16:14:35.000000000 +0100
+@@ -0,0 +1,4 @@
++/* $Id: ppp-2.4.4.patch,v 1.1 2007/01/01 15:17:26 tpowa Exp $ */
++
++#define VERSION "2.4.4b1"
++#define DATE "5 December 2005"
+diff -auNr capi4k-utils/pppdcapiplugin/ppp-2.4.4b1/pppd/pppd.h capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4b1/pppd/pppd.h
+--- capi4k-utils/pppdcapiplugin/ppp-2.4.4b1/pppd/pppd.h 1970-01-01 01:00:00.000000000 +0100
++++ capi4k-utils_patched/pppdcapiplugin/ppp-2.4.4b1/pppd/pppd.h 2006-12-30 16:14:35.000000000 +0100
+@@ -0,0 +1,905 @@
++/*
++ * pppd.h - PPP daemon global declarations.
++ *
++ * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ *
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ *
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in
++ * the documentation and/or other materials provided with the
++ * distribution.
++ *
++ * 3. The name "Carnegie Mellon University" must not be used to
++ * endorse or promote products derived from this software without
++ * prior written permission. For permission or any legal
++ * details, please contact
++ * Office of Technology Transfer
++ * Carnegie Mellon University
++ * 5000 Forbes Avenue
++ * Pittsburgh, PA 15213-3890
++ * (412) 268-4387, fax: (412) 268-7395
++ * tech-transfer@andrew.cmu.edu
++ *
++ * 4. Redistributions of any form whatsoever must retain the following
++ * acknowledgment:
++ * "This product includes software developed by Computing Services
++ * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
++ *
++ * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
++ * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
++ * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
++ * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ *
++ * $Id: ppp-2.4.4.patch,v 1.1 2007/01/01 15:17:26 tpowa Exp $
++ */
++
++/*
++ * TODO:
++ */
++
++#ifndef __PPPD_H__
++#define __PPPD_H__
++
++#include <stdio.h> /* for FILE */
++#include <limits.h> /* for NGROUPS_MAX */
++#include <sys/param.h> /* for MAXPATHLEN and BSD4_4, if defined */
++#include <sys/types.h> /* for u_int32_t, if defined */
++#include <sys/time.h> /* for struct timeval */
++#include <net/ppp_defs.h>
++#include "patchlevel.h"
++
++#if defined(__STDC__)
++#include <stdarg.h>
++#define __V(x) x
++#else
++#include <varargs.h>
++#define __V(x) (va_alist) va_dcl
++#define const
++#define volatile
++#endif
++
++#ifdef INET6
++#include "eui64.h"
++#endif
++
++/*
++ * Limits.
++ */
++
++#define NUM_PPP 1 /* One PPP interface supported (per process) */
++#define MAXWORDLEN 1024 /* max length of word in file (incl null) */
++#define MAXARGS 1 /* max # args to a command */
++#define MAXNAMELEN 256 /* max length of hostname or name for auth */
++#define MAXSECRETLEN 256 /* max length of password or secret */
++
++/*
++ * Option descriptor structure.
++ */
++
++typedef unsigned char bool;
++
++enum opt_type {
++ o_special_noarg = 0,
++ o_special = 1,
++ o_bool,
++ o_int,
++ o_uint32,
++ o_string,
++ o_wild
++};
++
++typedef struct {
++ char *name; /* name of the option */
++ enum opt_type type;
++ void *addr;
++ char *description;
++ unsigned int flags;
++ void *addr2;
++ int upper_limit;
++ int lower_limit;
++ const char *source;
++ short int priority;
++ short int winner;
++} option_t;
++
++/* Values for flags */
++#define OPT_VALUE 0xff /* mask for presupplied value */
++#define OPT_HEX 0x100 /* int option is in hex */
++#define OPT_NOARG 0x200 /* option doesn't take argument */
++#define OPT_OR 0x400 /* OR in argument to value */
++#define OPT_INC 0x800 /* increment value */
++#define OPT_A2OR 0x800 /* for o_bool, OR arg to *(u_char *)addr2 */
++#define OPT_PRIV 0x1000 /* privileged option */
++#define OPT_STATIC 0x2000 /* string option goes into static array */
++#define OPT_LLIMIT 0x4000 /* check value against lower limit */
++#define OPT_ULIMIT 0x8000 /* check value against upper limit */
++#define OPT_LIMITS (OPT_LLIMIT|OPT_ULIMIT)
++#define OPT_ZEROOK 0x10000 /* 0 value is OK even if not within limits */
++#define OPT_HIDE 0x10000 /* for o_string, print value as ?????? */
++#define OPT_A2LIST 0x10000 /* for o_special, keep list of values */
++#define OPT_A2CLRB 0x10000 /* o_bool, clr val bits in *(u_char *)addr2 */
++#define OPT_NOINCR 0x20000 /* value mustn't be increased */
++#define OPT_ZEROINF 0x40000 /* with OPT_NOINCR, 0 == infinity */
++#define OPT_PRIO 0x80000 /* process option priorities for this option */
++#define OPT_PRIOSUB 0x100000 /* subsidiary member of priority group */
++#define OPT_ALIAS 0x200000 /* option is alias for previous option */
++#define OPT_A2COPY 0x400000 /* addr2 -> second location to rcv value */
++#define OPT_ENABLE 0x800000 /* use *addr2 as enable for option */
++#define OPT_A2CLR 0x1000000 /* clear *(bool *)addr2 */
++#define OPT_PRIVFIX 0x2000000 /* user can't override if set by root */
++#define OPT_INITONLY 0x4000000 /* option can only be set in init phase */
++#define OPT_DEVEQUIV 0x8000000 /* equiv to device name */
++#define OPT_DEVNAM (OPT_INITONLY | OPT_DEVEQUIV)
++#define OPT_A2PRINTER 0x10000000 /* *addr2 is a fn for printing option */
++#define OPT_A2STRVAL 0x20000000 /* *addr2 points to current string value */
++#define OPT_NOPRINT 0x40000000 /* don't print this option at all */
++
++#define OPT_VAL(x) ((x) & OPT_VALUE)
++
++/* Values for priority */
++#define OPRIO_DEFAULT 0 /* a default value */
++#define OPRIO_CFGFILE 1 /* value from a configuration file */
++#define OPRIO_CMDLINE 2 /* value from the command line */
++#define OPRIO_SECFILE 3 /* value from options in a secrets file */
++#define OPRIO_ROOT 100 /* added to priority if OPT_PRIVFIX && root */
++
++#ifndef GIDSET_TYPE
++#define GIDSET_TYPE gid_t
++#endif
++
++/* Structure representing a list of permitted IP addresses. */
++struct permitted_ip {
++ int permit; /* 1 = permit, 0 = forbid */
++ u_int32_t base; /* match if (addr & mask) == base */
++ u_int32_t mask; /* base and mask are in network byte order */
++};
++
++/*
++ * Unfortunately, the linux kernel driver uses a different structure
++ * for statistics from the rest of the ports.
++ * This structure serves as a common representation for the bits
++ * pppd needs.
++ */
++struct pppd_stats {
++ unsigned int bytes_in;
++ unsigned int bytes_out;
++ unsigned int pkts_in;
++ unsigned int pkts_out;
++};
++
++/* Used for storing a sequence of words. Usually malloced. */
++struct wordlist {
++ struct wordlist *next;
++ char *word;
++};
++
++/* An endpoint discriminator, used with multilink. */
++#define MAX_ENDP_LEN 20 /* maximum length of discriminator value */
++struct epdisc {
++ unsigned char class;
++ unsigned char length;
++ unsigned char value[MAX_ENDP_LEN];
++};
++
++/* values for epdisc.class */
++#define EPD_NULL 0 /* null discriminator, no data */
++#define EPD_LOCAL 1
++#define EPD_IP 2
++#define EPD_MAC 3
++#define EPD_MAGIC 4
++#define EPD_PHONENUM 5
++
++typedef void (*notify_func) __P((void *, int));
++
++struct notifier {
++ struct notifier *next;
++ notify_func func;
++ void *arg;
++};
++
++/*
++ * Global variables.
++ */
++
++extern int hungup; /* Physical layer has disconnected */
++extern int ifunit; /* Interface unit number */
++extern char ifname[]; /* Interface name */
++extern char hostname[]; /* Our hostname */
++extern u_char outpacket_buf[]; /* Buffer for outgoing packets */
++extern int devfd; /* fd of underlying device */
++extern int fd_ppp; /* fd for talking PPP */
++extern int phase; /* Current state of link - see values below */
++extern int baud_rate; /* Current link speed in bits/sec */
++extern char *progname; /* Name of this program */
++extern int redirect_stderr;/* Connector's stderr should go to file */
++extern char peer_authname[];/* Authenticated name of peer */
++extern int auth_done[NUM_PPP]; /* Methods actually used for auth */
++extern int privileged; /* We were run by real-uid root */
++extern int need_holdoff; /* Need holdoff period after link terminates */
++extern char **script_env; /* Environment variables for scripts */
++extern int detached; /* Have detached from controlling tty */
++extern GIDSET_TYPE groups[NGROUPS_MAX]; /* groups the user is in */
++extern int ngroups; /* How many groups valid in groups */
++extern struct pppd_stats link_stats; /* byte/packet counts etc. for link */
++extern int link_stats_valid; /* set if link_stats is valid */
++extern unsigned link_connect_time; /* time the link was up for */
++extern int using_pty; /* using pty as device (notty or pty opt.) */
++extern int log_to_fd; /* logging to this fd as well as syslog */
++extern bool log_default; /* log_to_fd is default (stdout) */
++extern char *no_ppp_msg; /* message to print if ppp not in kernel */
++extern volatile int status; /* exit status for pppd */
++extern bool devnam_fixed; /* can no longer change devnam */
++extern int unsuccess; /* # unsuccessful connection attempts */
++extern int do_callback; /* set if we want to do callback next */
++extern int doing_callback; /* set if this is a callback */
++extern int error_count; /* # of times error() has been called */
++extern char ppp_devnam[MAXPATHLEN];
++extern char remote_number[MAXNAMELEN]; /* Remote telephone number, if avail. */
++extern int ppp_session_number; /* Session number (eg PPPoE session) */
++extern int fd_devnull; /* fd open to /dev/null */
++
++extern int listen_time; /* time to listen first (ms) */
++extern bool doing_multilink;
++extern bool multilink_master;
++extern bool bundle_eof;
++extern bool bundle_terminating;
++
++extern struct notifier *pidchange; /* for notifications of pid changing */
++extern struct notifier *phasechange; /* for notifications of phase changes */
++extern struct notifier *exitnotify; /* for notification that we're exiting */
++extern struct notifier *sigreceived; /* notification of received signal */
++extern struct notifier *ip_up_notifier; /* IPCP has come up */
++extern struct notifier *ip_down_notifier; /* IPCP has gone down */
++extern struct notifier *auth_up_notifier; /* peer has authenticated */
++extern struct notifier *link_down_notifier; /* link has gone down */
++extern struct notifier *fork_notifier; /* we are a new child process */
++
++/* Values for do_callback and doing_callback */
++#define CALLBACK_DIALIN 1 /* we are expecting the call back */
++#define CALLBACK_DIALOUT 2 /* we are dialling out to call back */
++
++/*
++ * Variables set by command-line options.
++ */
++
++extern int debug; /* Debug flag */
++extern int kdebugflag; /* Tell kernel to print debug messages */
++extern int default_device; /* Using /dev/tty or equivalent */
++extern char devnam[MAXPATHLEN]; /* Device name */
++extern int crtscts; /* Use hardware flow control */
++extern bool modem; /* Use modem control lines */
++extern int inspeed; /* Input/Output speed requested */
++extern u_int32_t netmask; /* IP netmask to set on interface */
++extern bool lockflag; /* Create lock file to lock the serial dev */
++extern bool nodetach; /* Don't detach from controlling tty */
++extern bool updetach; /* Detach from controlling tty when link up */
++extern char *initializer; /* Script to initialize physical link */
++extern char *connect_script; /* Script to establish physical link */
++extern char *disconnect_script; /* Script to disestablish physical link */
++extern char *welcomer; /* Script to welcome client after connection */
++extern char *ptycommand; /* Command to run on other side of pty */
++extern int maxconnect; /* Maximum connect time (seconds) */
++extern char user[MAXNAMELEN];/* Our name for authenticating ourselves */
++extern char passwd[MAXSECRETLEN]; /* Password for PAP or CHAP */
++extern bool auth_required; /* Peer is required to authenticate */
++extern bool persist; /* Reopen link after it goes down */
++extern bool uselogin; /* Use /etc/passwd for checking PAP */
++extern char our_name[MAXNAMELEN];/* Our name for authentication purposes */
++extern char remote_name[MAXNAMELEN]; /* Peer's name for authentication */
++extern bool explicit_remote;/* remote_name specified with remotename opt */
++extern bool demand; /* Do dial-on-demand */
++extern char *ipparam; /* Extra parameter for ip up/down scripts */
++extern bool cryptpap; /* Others' PAP passwords are encrypted */
++extern int idle_time_limit;/* Shut down link if idle for this long */
++extern int holdoff; /* Dead time before restarting */
++extern bool holdoff_specified; /* true if user gave a holdoff value */
++extern bool notty; /* Stdin/out is not a tty */
++extern char *pty_socket; /* Socket to connect to pty */
++extern char *record_file; /* File to record chars sent/received */
++extern bool sync_serial; /* Device is synchronous serial device */
++extern int maxfail; /* Max # of unsuccessful connection attempts */
++extern char linkname[MAXPATHLEN]; /* logical name for link */
++extern bool tune_kernel; /* May alter kernel settings as necessary */
++extern int connect_delay; /* Time to delay after connect script */
++extern int max_data_rate; /* max bytes/sec through charshunt */
++extern int req_unit; /* interface unit number to use */
++extern bool multilink; /* enable multilink operation */
++extern bool noendpoint; /* don't send or accept endpt. discrim. */
++extern char *bundle_name; /* bundle name for multilink */
++extern bool dump_options; /* print out option values */
++extern bool dryrun; /* check everything, print options, exit */
++extern int child_wait; /* # seconds to wait for children at end */
++
++#ifdef MAXOCTETS
++extern unsigned int maxoctets; /* Maximum octetes per session (in bytes) */
++extern int maxoctets_dir; /* Direction :
++ 0 - in+out (default)
++ 1 - in
++ 2 - out
++ 3 - max(in,out) */
++extern int maxoctets_timeout; /* Timeout for check of octets limit */
++#define PPP_OCTETS_DIRECTION_SUM 0
++#define PPP_OCTETS_DIRECTION_IN 1
++#define PPP_OCTETS_DIRECTION_OUT 2
++#define PPP_OCTETS_DIRECTION_MAXOVERAL 3
++/* same as previos, but little different on RADIUS side */
++#define PPP_OCTETS_DIRECTION_MAXSESSION 4
++#endif
++
++#ifdef PPP_FILTER
++extern struct bpf_program pass_filter; /* Filter for pkts to pass */
++extern struct bpf_program active_filter; /* Filter for link-active pkts */
++#endif
++
++#ifdef MSLANMAN
++extern bool ms_lanman; /* Use LanMan password instead of NT */
++ /* Has meaning only with MS-CHAP challenges */
++#endif
++
++/* Values for auth_pending, auth_done */
++#define PAP_WITHPEER 0x1
++#define PAP_PEER 0x2
++#define CHAP_WITHPEER 0x4
++#define CHAP_PEER 0x8
++#define EAP_WITHPEER 0x10
++#define EAP_PEER 0x20
++
++/* Values for auth_done only */
++#define CHAP_MD5_WITHPEER 0x40
++#define CHAP_MD5_PEER 0x80
++#define CHAP_MS_SHIFT 8 /* LSB position for MS auths */
++#define CHAP_MS_WITHPEER 0x100
++#define CHAP_MS_PEER 0x200
++#define CHAP_MS2_WITHPEER 0x400
++#define CHAP_MS2_PEER 0x800
++
++extern char *current_option; /* the name of the option being parsed */
++extern int privileged_option; /* set iff the current option came from root */
++extern char *option_source; /* string saying where the option came from */
++extern int option_priority; /* priority of current options */
++
++/*
++ * Values for phase.
++ */
++#define PHASE_DEAD 0
++#define PHASE_INITIALIZE 1
++#define PHASE_SERIALCONN 2
++#define PHASE_DORMANT 3
++#define PHASE_ESTABLISH 4
++#define PHASE_AUTHENTICATE 5
++#define PHASE_CALLBACK 6
++#define PHASE_NETWORK 7
++#define PHASE_RUNNING 8
++#define PHASE_TERMINATE 9
++#define PHASE_DISCONNECT 10
++#define PHASE_HOLDOFF 11
++#define PHASE_MASTER 12
++
++/*
++ * The following struct gives the addresses of procedures to call
++ * for a particular protocol.
++ */
++struct protent {
++ u_short protocol; /* PPP protocol number */
++ /* Initialization procedure */
++ void (*init) __P((int unit));
++ /* Process a received packet */
++ void (*input) __P((int unit, u_char *pkt, int len));
++ /* Process a received protocol-reject */
++ void (*protrej) __P((int unit));
++ /* Lower layer has come up */
++ void (*lowerup) __P((int unit));
++ /* Lower layer has gone down */
++ void (*lowerdown) __P((int unit));
++ /* Open the protocol */
++ void (*open) __P((int unit));
++ /* Close the protocol */
++ void (*close) __P((int unit, char *reason));
++ /* Print a packet in readable form */
++ int (*printpkt) __P((u_char *pkt, int len,
++ void (*printer) __P((void *, char *, ...)),
++ void *arg));
++ /* Process a received data packet */
++ void (*datainput) __P((int unit, u_char *pkt, int len));
++ bool enabled_flag; /* 0 iff protocol is disabled */
++ char *name; /* Text name of protocol */
++ char *data_name; /* Text name of corresponding data protocol */
++ option_t *options; /* List of command-line options */
++ /* Check requested options, assign defaults */
++ void (*check_options) __P((void));
++ /* Configure interface for demand-dial */
++ int (*demand_conf) __P((int unit));
++ /* Say whether to bring up link for this pkt */
++ int (*active_pkt) __P((u_char *pkt, int len));
++};
++
++/* Table of pointers to supported protocols */
++extern struct protent *protocols[];
++
++/*
++ * This struct contains pointers to a set of procedures for
++ * doing operations on a "channel". A channel provides a way
++ * to send and receive PPP packets - the canonical example is
++ * a serial port device in PPP line discipline (or equivalently
++ * with PPP STREAMS modules pushed onto it).
++ */
++struct channel {
++ /* set of options for this channel */
++ option_t *options;
++ /* find and process a per-channel options file */
++ void (*process_extra_options) __P((void));
++ /* check all the options that have been given */
++ void (*check_options) __P((void));
++ /* get the channel ready to do PPP, return a file descriptor */
++ int (*connect) __P((void));
++ /* we're finished with the channel */
++ void (*disconnect) __P((void));
++ /* put the channel into PPP `mode' */
++ int (*establish_ppp) __P((int));
++ /* take the channel out of PPP `mode', restore loopback if demand */
++ void (*disestablish_ppp) __P((int));
++ /* set the transmit-side PPP parameters of the channel */
++ void (*send_config) __P((int, u_int32_t, int, int));
++ /* set the receive-side PPP parameters of the channel */
++ void (*recv_config) __P((int, u_int32_t, int, int));
++ /* cleanup on error or normal exit */
++ void (*cleanup) __P((void));
++ /* close the device, called in children after fork */
++ void (*close) __P((void));
++};
++
++extern struct channel *the_channel;
++
++/*
++ * Prototypes.
++ */
++
++/* Procedures exported from main.c. */
++void set_ifunit __P((int)); /* set stuff that depends on ifunit */
++void detach __P((void)); /* Detach from controlling tty */
++void die __P((int)); /* Cleanup and exit */
++void quit __P((void)); /* like die(1) */
++void novm __P((char *)); /* Say we ran out of memory, and die */
++void timeout __P((void (*func)(void *), void *arg, int s, int us));
++ /* Call func(arg) after s.us seconds */
++void untimeout __P((void (*func)(void *), void *arg));
++ /* Cancel call to func(arg) */
++void record_child __P((int, char *, void (*) (void *), void *));
++pid_t safe_fork __P((int, int, int)); /* Fork & close stuff in child */
++int device_script __P((char *cmd, int in, int out, int dont_wait));
++ /* Run `cmd' with given stdin and stdout */
++pid_t run_program __P((char *prog, char **args, int must_exist,
++ void (*done)(void *), void *arg));
++ /* Run program prog with args in child */
++void reopen_log __P((void)); /* (re)open the connection to syslog */
++void print_link_stats __P((void)); /* Print stats, if available */
++void reset_link_stats __P((int)); /* Reset (init) stats when link goes up */
++void update_link_stats __P((int)); /* Get stats at link termination */
++void script_setenv __P((char *, char *, int)); /* set script env var */
++void script_unsetenv __P((char *)); /* unset script env var */
++void new_phase __P((int)); /* signal start of new phase */
++void add_notifier __P((struct notifier **, notify_func, void *));
++void remove_notifier __P((struct notifier **, notify_func, void *));
++void notify __P((struct notifier *, int));
++int ppp_send_config __P((int, int, u_int32_t, int, int));
++int ppp_recv_config __P((int, int, u_int32_t, int, int));
++void remove_pidfiles __P((void));
++void lock_db __P((void));
++void unlock_db __P((void));
++
++/* Procedures exported from tty.c. */
++void tty_init __P((void));
++
++/* Procedures exported from utils.c. */
++void log_packet __P((u_char *, int, char *, int));
++ /* Format a packet and log it with syslog */
++void print_string __P((char *, int, void (*) (void *, char *, ...),
++ void *)); /* Format a string for output */
++int slprintf __P((char *, int, char *, ...)); /* sprintf++ */
++int vslprintf __P((char *, int, char *, va_list)); /* vsprintf++ */
++size_t strlcpy __P((char *, const char *, size_t)); /* safe strcpy */
++size_t strlcat __P((char *, const char *, size_t)); /* safe strncpy */
++void dbglog __P((char *, ...)); /* log a debug message */
++void info __P((char *, ...)); /* log an informational message */
++void notice __P((char *, ...)); /* log a notice-level message */
++void warn __P((char *, ...)); /* log a warning message */
++void error __P((char *, ...)); /* log an error message */
++void fatal __P((char *, ...)); /* log an error message and die(1) */
++void init_pr_log __P((char *, int)); /* initialize for using pr_log */
++void pr_log __P((void *, char *, ...)); /* printer fn, output to syslog */
++void end_pr_log __P((void)); /* finish up after using pr_log */
++void dump_packet __P((const char *, u_char *, int));
++ /* dump packet to debug log if interesting */
++ssize_t complete_read __P((int, void *, size_t));
++ /* read a complete buffer */
++
++/* Procedures exported from auth.c */
++void link_required __P((int)); /* we are starting to use the link */
++void link_terminated __P((int)); /* we are finished with the link */
++void link_down __P((int)); /* the LCP layer has left the Opened state */
++void upper_layers_down __P((int));/* take all NCPs down */
++void link_established __P((int)); /* the link is up; authenticate now */
++void start_networks __P((int)); /* start all the network control protos */
++void continue_networks __P((int)); /* start network [ip, etc] control protos */
++void np_up __P((int, int)); /* a network protocol has come up */
++void np_down __P((int, int)); /* a network protocol has gone down */
++void np_finished __P((int, int)); /* a network protocol no longer needs link */
++void auth_peer_fail __P((int, int));
++ /* peer failed to authenticate itself */
++void auth_peer_success __P((int, int, int, char *, int));
++ /* peer successfully authenticated itself */
++void auth_withpeer_fail __P((int, int));
++ /* we failed to authenticate ourselves */
++void auth_withpeer_success __P((int, int, int));
++ /* we successfully authenticated ourselves */
++void auth_check_options __P((void));
++ /* check authentication options supplied */
++void auth_reset __P((int)); /* check what secrets we have */
++int check_passwd __P((int, char *, int, char *, int, char **));
++ /* Check peer-supplied username/password */
++int get_secret __P((int, char *, char *, char *, int *, int));
++ /* get "secret" for chap */
++int get_srp_secret __P((int unit, char *client, char *server, char *secret,
++ int am_server));
++int auth_ip_addr __P((int, u_int32_t));
++ /* check if IP address is authorized */
++int auth_number __P((void)); /* check if remote number is authorized */
++int bad_ip_adrs __P((u_int32_t));
++ /* check if IP address is unreasonable */
++
++/* Procedures exported from demand.c */
++void demand_conf __P((void)); /* config interface(s) for demand-dial */
++void demand_block __P((void)); /* set all NPs to queue up packets */
++void demand_unblock __P((void)); /* set all NPs to pass packets */
++void demand_discard __P((void)); /* set all NPs to discard packets */
++void demand_rexmit __P((int)); /* retransmit saved frames for an NP */
++int loop_chars __P((unsigned char *, int)); /* process chars from loopback */
++int loop_frame __P((unsigned char *, int)); /* should we bring link up? */
++
++/* Procedures exported from multilink.c */
++#ifdef HAVE_MULTILINK
++void mp_check_options __P((void)); /* Check multilink-related options */
++int mp_join_bundle __P((void)); /* join our link to an appropriate bundle */
++void mp_exit_bundle __P((void)); /* have disconnected our link from bundle */
++void mp_bundle_terminated __P((void));
++char *epdisc_to_str __P((struct epdisc *)); /* string from endpoint discrim. */
++int str_to_epdisc __P((struct epdisc *, char *)); /* endpt disc. from str */
++#else
++#define mp_bundle_terminated() /* nothing */
++#define mp_exit_bundle() /* nothing */
++#define doing_multilink 0
++#define multilink_master 0
++#endif
++
++/* Procedures exported from sys-*.c */
++void sys_init __P((void)); /* Do system-dependent initialization */
++void sys_cleanup __P((void)); /* Restore system state before exiting */
++int sys_check_options __P((void)); /* Check options specified */
++void sys_close __P((void)); /* Clean up in a child before execing */
++int ppp_available __P((void)); /* Test whether ppp kernel support exists */
++int get_pty __P((int *, int *, char *, int)); /* Get pty master/slave */
++int open_ppp_loopback __P((void)); /* Open loopback for demand-dialling */
++int tty_establish_ppp __P((int)); /* Turn serial port into a ppp interface */
++void tty_disestablish_ppp __P((int)); /* Restore port to normal operation */
++void generic_disestablish_ppp __P((int dev_fd)); /* Restore device setting */
++int generic_establish_ppp __P((int dev_fd)); /* Make a ppp interface */
++void make_new_bundle __P((int, int, int, int)); /* Create new bundle */
++int bundle_attach __P((int)); /* Attach link to existing bundle */
++void cfg_bundle __P((int, int, int, int)); /* Configure existing bundle */
++void destroy_bundle __P((void)); /* Tell driver to destroy bundle */
++void clean_check __P((void)); /* Check if line was 8-bit clean */
++void set_up_tty __P((int, int)); /* Set up port's speed, parameters, etc. */
++void restore_tty __P((int)); /* Restore port's original parameters */
++void setdtr __P((int, int)); /* Raise or lower port's DTR line */
++void output __P((int, u_char *, int)); /* Output a PPP packet */
++void wait_input __P((struct timeval *));
++ /* Wait for input, with timeout */
++void add_fd __P((int)); /* Add fd to set to wait for */
++void remove_fd __P((int)); /* Remove fd from set to wait for */
++int read_packet __P((u_char *)); /* Read PPP packet */
++int get_loop_output __P((void)); /* Read pkts from loopback */
++void tty_send_config __P((int, u_int32_t, int, int));
++ /* Configure i/f transmit parameters */
++void tty_set_xaccm __P((ext_accm));
++ /* Set extended transmit ACCM */
++void tty_recv_config __P((int, u_int32_t, int, int));
++ /* Configure i/f receive parameters */
++int ccp_test __P((int, u_char *, int, int));
++ /* Test support for compression scheme */
++void ccp_flags_set __P((int, int, int));
++ /* Set kernel CCP state */
++int ccp_fatal_error __P((int)); /* Test for fatal decomp error in kernel */
++int get_idle_time __P((int, struct ppp_idle *));
++ /* Find out how long link has been idle */
++int get_ppp_stats __P((int, struct pppd_stats *));
++ /* Return link statistics */
++void netif_set_mtu __P((int, int)); /* Set PPP interface MTU */
++int netif_get_mtu __P((int)); /* Get PPP interface MTU */
++int sifvjcomp __P((int, int, int, int));
++ /* Configure VJ TCP header compression */
++int sifup __P((int)); /* Configure i/f up for one protocol */
++int sifnpmode __P((int u, int proto, enum NPmode mode));
++ /* Set mode for handling packets for proto */
++int sifdown __P((int)); /* Configure i/f down for one protocol */
++int sifaddr __P((int, u_int32_t, u_int32_t, u_int32_t));
++ /* Configure IPv4 addresses for i/f */
++int cifaddr __P((int, u_int32_t, u_int32_t));
++ /* Reset i/f IP addresses */
++#ifdef INET6
++int sif6addr __P((int, eui64_t, eui64_t));
++ /* Configure IPv6 addresses for i/f */
++int cif6addr __P((int, eui64_t, eui64_t));
++ /* Remove an IPv6 address from i/f */
++#endif
++int sifdefaultroute __P((int, u_int32_t, u_int32_t));
++ /* Create default route through i/f */
++int cifdefaultroute __P((int, u_int32_t, u_int32_t));
++ /* Delete default route through i/f */
++int sifproxyarp __P((int, u_int32_t));
++ /* Add proxy ARP entry for peer */
++int cifproxyarp __P((int, u_int32_t));
++ /* Delete proxy ARP entry for peer */
++u_int32_t GetMask __P((u_int32_t)); /* Get appropriate netmask for address */
++int lock __P((char *)); /* Create lock file for device */
++int relock __P((int)); /* Rewrite lock file with new pid */
++void unlock __P((void)); /* Delete previously-created lock file */
++void logwtmp __P((const char *, const char *, const char *));
++ /* Write entry to wtmp file */
++int get_host_seed __P((void)); /* Get host-dependent random number seed */
++int have_route_to __P((u_int32_t)); /* Check if route to addr exists */
++#ifdef PPP_FILTER
++int set_filters __P((struct bpf_program *pass, struct bpf_program *active));
++ /* Set filter programs in kernel */
++#endif
++#ifdef IPX_CHANGE
++int sipxfaddr __P((int, unsigned long, unsigned char *));
++int cipxfaddr __P((int));
++#endif
++int get_if_hwaddr __P((u_char *addr, char *name));
++char *get_first_ethernet __P((void));
++
++/* Procedures exported from options.c */
++int setipaddr __P((char *, char **, int)); /* Set local/remote ip addresses */
++int parse_args __P((int argc, char **argv));
++ /* Parse options from arguments given */
++int options_from_file __P((char *filename, int must_exist, int check_prot,
++ int privileged));
++ /* Parse options from an options file */
++int options_from_user __P((void)); /* Parse options from user's .ppprc */
++int options_for_tty __P((void)); /* Parse options from /etc/ppp/options.tty */
++int options_from_list __P((struct wordlist *, int privileged));
++ /* Parse options from a wordlist */
++int getword __P((FILE *f, char *word, int *newlinep, char *filename));
++ /* Read a word from a file */
++void option_error __P((char *fmt, ...));
++ /* Print an error message about an option */
++int int_option __P((char *, int *));
++ /* Simplified number_option for decimal ints */
++void add_options __P((option_t *)); /* Add extra options */
++void check_options __P((void)); /* check values after all options parsed */
++int override_value __P((const char *, int, const char *));
++ /* override value if permitted by priority */
++void print_options __P((void (*) __P((void *, char *, ...)), void *));
++ /* print out values of all options */
++
++int parse_dotted_ip __P((char *, u_int32_t *));
++
++/*
++ * Hooks to enable plugins to change various things.
++ */
++extern int (*new_phase_hook) __P((int));
++extern int (*idle_time_hook) __P((struct ppp_idle *));
++extern int (*holdoff_hook) __P((void));
++extern int (*pap_check_hook) __P((void));
++extern int (*pap_auth_hook) __P((char *user, char *passwd, char **msgp,
++ struct wordlist **paddrs,
++ struct wordlist **popts));
++extern void (*pap_logout_hook) __P((void));
++extern int (*pap_passwd_hook) __P((char *user, char *passwd));
++extern int (*allowed_address_hook) __P((u_int32_t addr));
++extern void (*ip_up_hook) __P((void));
++extern void (*ip_down_hook) __P((void));
++extern void (*ip_choose_hook) __P((u_int32_t *));
++
++extern int (*chap_check_hook) __P((void));
++extern int (*chap_passwd_hook) __P((char *user, char *passwd));
++
++/* Let a plugin snoop sent and received packets. Useful for L2TP */
++extern void (*snoop_recv_hook) __P((unsigned char *p, int len));
++extern void (*snoop_send_hook) __P((unsigned char *p, int len));
++
++/*
++ * Inline versions of get/put char/short/long.
++ * Pointer is advanced; we assume that both arguments
++ * are lvalues and will already be in registers.
++ * cp MUST be u_char *.
++ */
++#define GETCHAR(c, cp) { \
++ (c) = *(cp)++; \
++}
++#define PUTCHAR(c, cp) { \
++ *(cp)++ = (u_char) (c); \
++}
++
++
++#define GETSHORT(s, cp) { \
++ (s) = *(cp)++ << 8; \
++ (s) |= *(cp)++; \
++}
++#define PUTSHORT(s, cp) { \
++ *(cp)++ = (u_char) ((s) >> 8); \
++ *(cp)++ = (u_char) (s); \
++}
++
++#define GETLONG(l, cp) { \
++ (l) = *(cp)++ << 8; \
++ (l) |= *(cp)++; (l) <<= 8; \
++ (l) |= *(cp)++; (l) <<= 8; \
++ (l) |= *(cp)++; \
++}
++#define PUTLONG(l, cp) { \
++ *(cp)++ = (u_char) ((l) >> 24); \
++ *(cp)++ = (u_char) ((l) >> 16); \
++ *(cp)++ = (u_char) ((l) >> 8); \
++ *(cp)++ = (u_char) (l); \
++}
++
++#define INCPTR(n, cp) ((cp) += (n))
++#define DECPTR(n, cp) ((cp) -= (n))
++
++/*
++ * System dependent definitions for user-level 4.3BSD UNIX implementation.
++ */
++
++#define TIMEOUT(r, f, t) timeout((r), (f), (t), 0)
++#define UNTIMEOUT(r, f) untimeout((r), (f))
++
++#define BCOPY(s, d, l) memcpy(d, s, l)
++#define BZERO(s, n) memset(s, 0, n)
++#define BCMP(s1, s2, l) memcmp(s1, s2, l)
++
++#define PRINTMSG(m, l) { info("Remote message: %0.*v", l, m); }
++
++/*
++ * MAKEHEADER - Add Header fields to a packet.
++ */
++#define MAKEHEADER(p, t) { \
++ PUTCHAR(PPP_ALLSTATIONS, p); \
++ PUTCHAR(PPP_UI, p); \
++ PUTSHORT(t, p); }
++
++/*
++ * Exit status values.
++ */
++#define EXIT_OK 0
++#define EXIT_FATAL_ERROR 1
++#define EXIT_OPTION_ERROR 2
++#define EXIT_NOT_ROOT 3
++#define EXIT_NO_KERNEL_SUPPORT 4
++#define EXIT_USER_REQUEST 5
++#define EXIT_LOCK_FAILED 6
++#define EXIT_OPEN_FAILED 7
++#define EXIT_CONNECT_FAILED 8
++#define EXIT_PTYCMD_FAILED 9
++#define EXIT_NEGOTIATION_FAILED 10
++#define EXIT_PEER_AUTH_FAILED 11
++#define EXIT_IDLE_TIMEOUT 12
++#define EXIT_CONNECT_TIME 13
++#define EXIT_CALLBACK 14
++#define EXIT_PEER_DEAD 15
++#define EXIT_HANGUP 16
++#define EXIT_LOOPBACK 17
++#define EXIT_INIT_FAILED 18
++#define EXIT_AUTH_TOPEER_FAILED 19
++#ifdef MAXOCTETS
++#define EXIT_TRAFFIC_LIMIT 20
++#endif
++#define EXIT_CNID_AUTH_FAILED 21
++
++/*
++ * Debug macros. Slightly useful for finding bugs in pppd, not particularly
++ * useful for finding out why your connection isn't being established.
++ */
++#ifdef DEBUGALL
++#define DEBUGMAIN 1
++#define DEBUGFSM 1
++#define DEBUGLCP 1
++#define DEBUGIPCP 1
++#define DEBUGIPV6CP 1
++#define DEBUGUPAP 1
++#define DEBUGCHAP 1
++#endif
++
++#ifndef LOG_PPP /* we use LOG_LOCAL2 for syslog by default */
++#if defined(DEBUGMAIN) || defined(DEBUGFSM) || defined(DEBUGSYS) \
++ || defined(DEBUGLCP) || defined(DEBUGIPCP) || defined(DEBUGUPAP) \
++ || defined(DEBUGCHAP) || defined(DEBUG) || defined(DEBUGIPV6CP)
++#define LOG_PPP LOG_LOCAL2
++#else
++#define LOG_PPP LOG_DAEMON
++#endif
++#endif /* LOG_PPP */
++
++#ifdef DEBUGMAIN
++#define MAINDEBUG(x) if (debug) dbglog x
++#else
++#define MAINDEBUG(x)
++#endif
++
++#ifdef DEBUGSYS
++#define SYSDEBUG(x) if (debug) dbglog x
++#else
++#define SYSDEBUG(x)
++#endif
++
++#ifdef DEBUGFSM
++#define FSMDEBUG(x) if (debug) dbglog x
++#else
++#define FSMDEBUG(x)
++#endif
++
++#ifdef DEBUGLCP
++#define LCPDEBUG(x) if (debug) dbglog x
++#else
++#define LCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPCP
++#define IPCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPCPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPV6CP
++#define IPV6CPDEBUG(x) if (debug) dbglog x
++#else
++#define IPV6CPDEBUG(x)
++#endif
++
++#ifdef DEBUGUPAP
++#define UPAPDEBUG(x) if (debug) dbglog x
++#else
++#define UPAPDEBUG(x)
++#endif
++
++#ifdef DEBUGCHAP
++#define CHAPDEBUG(x) if (debug) dbglog x
++#else
++#define CHAPDEBUG(x)
++#endif
++
++#ifdef DEBUGIPXCP
++#define IPXCPDEBUG(x) if (debug) dbglog x
++#else
++#define IPXCPDEBUG(x)
++#endif
++
++#ifndef SIGTYPE
++#if defined(sun) || defined(SYSV) || defined(POSIX_SOURCE)
++#define SIGTYPE void
++#else
++#define SIGTYPE int
++#endif /* defined(sun) || defined(SYSV) || defined(POSIX_SOURCE) */
++#endif /* SIGTYPE */
++
++#ifndef MIN
++#define MIN(a, b) ((a) < (b)? (a): (b))
++#endif
++#ifndef MAX
++#define MAX(a, b) ((a) > (b)? (a): (b))
++#endif
++
++#ifndef offsetof
++#define offsetof(type, member) ((size_t) &((type *)0)->member)
++#endif
++
++#endif /* __PPP_H__ */
diff --git a/extra/capseo/PKGBUILD b/extra/capseo/PKGBUILD
new file mode 100644
index 000000000..6b4664a0d
--- /dev/null
+++ b/extra/capseo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 49837 2009-08-16 16:56:46Z jgc $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=capseo
+pkgver=0.3
+pkgrel=1
+pkgdesc="Capseo video codec"
+arch=('i686' 'x86_64')
+url="http://dev.gentoo.org/~trapni/capseo/"
+license=('GPL2')
+depends=('libgl' 'gcc-libs')
+options=('force' '!libtool')
+makedepends=('pkgconfig' 'mesa' 'libogg')
+source=(ftp://ftp.archlinux.org/other/capseo/${pkgname}-${pkgver}.tar.gz)
+md5sums=('bd869e8c9b1081e90a44567092ea8c5e')
+
+build() {
+ # start building
+ cd "${srcdir}"
+ ./autogen.sh || return 1
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/catdoc/PKGBUILD b/extra/catdoc/PKGBUILD
new file mode 100644
index 000000000..2b46013c6
--- /dev/null
+++ b/extra/catdoc/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 31735 2009-03-28 03:50:45Z eric $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Paulius Palevicius <paulius@birzai.com>
+
+pkgname=catdoc
+pkgver=0.94.2
+pkgrel=2
+pkgdesc="A convertor for Microsoft Word, Excel, PowerPoint and RTF Files to text"
+arch=(i686 x86_64)
+url="http://www.wagner.pp.ru/~vitus/software/catdoc/"
+license=('GPL')
+depends=('glibc')
+optdepends=('tk: for using wordview')
+options=('!makeflags')
+source=(http://ftp.wagner.pp.ru/pub/catdoc/$pkgname-$pkgver.tar.gz)
+md5sums=('243e1680bb3e703616f5adecfee24491')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-wish=/usr/bin/wish || return 1
+ make || return 1
+ make installroot=$pkgdir mandir=/usr/share/man/man1 install || return 1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/ccache/PKGBUILD b/extra/ccache/PKGBUILD
new file mode 100644
index 000000000..09a7487fb
--- /dev/null
+++ b/extra/ccache/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 105538 2011-01-10 11:06:14Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ccache
+pkgver=3.1.4
+pkgrel=1
+pkgdesc="A compiler cache"
+url="http://ccache.samba.org/"
+source=(http://samba.org/ftp/${pkgname}/$pkgname-$pkgver.tar.bz2)
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('zlib')
+md5sums=('676fda8a9a5e02574435c32b22942abd')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ install -Dm 755 ccache ${pkgdir}/usr/bin/ccache
+ install -Dm 644 ccache.1 ${pkgdir}/usr/share/man/man1/ccache.1
+
+ mkdir -p ${pkgdir}/usr/lib/ccache/bin
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/cc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/gcc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/g++
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/cpp
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/c++
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-cc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-gcc
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-g++
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-cpp
+ ln -sf /usr/bin/ccache ${pkgdir}/usr/lib/ccache/bin/${CHOST}-c++
+}
diff --git a/extra/cd-discid/PKGBUILD b/extra/cd-discid/PKGBUILD
new file mode 100644
index 000000000..d00e1459b
--- /dev/null
+++ b/extra/cd-discid/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 32259 2009-03-29 22:10:04Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=cd-discid
+pkgver=0.9
+pkgrel=2
+pkgdesc="cd-discid is a backend utility to get CDDB discid information from a CD-ROM disc."
+arch=(i686 x86_64)
+url="http://lly.org/~rcw/cd-discid/"
+license=('GPL')
+depends=('glibc')
+source=(http://lly.org/~rcw/$pkgname/$pkgname\_$pkgver.orig.tar.gz)
+md5sums=('64677b8b63d1db0db015043f5455171a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make || return 1
+ make DESTDIR=$pkgdir INSTALL=/bin/install install || return 1
+}
diff --git a/extra/cdargs/PKGBUILD b/extra/cdargs/PKGBUILD
new file mode 100644
index 000000000..987321e06
--- /dev/null
+++ b/extra/cdargs/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 104930 2011-01-05 15:27:14Z andrea $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=cdargs
+pkgver=1.35
+pkgrel=2
+pkgdesc="A replacement for 'cd' that includes bookmarks/browsing for faster navigation"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.skamphausen.de/cgi-bin/ska/CDargs"
+depends=('ncurses' 'gcc-libs')
+source=("http://www.skamphausen.de/downloads/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+install=${pkgname}.install
+md5sums=('50be618d67f0b9f2439526193c69c567')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+
+ cd contrib
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # install helper scripts
+ cd contrib
+ make DESTDIR=${pkgdir} install
+
+ install -d ${pkgdir}/usr/share/cdargs
+ install $pkgname-{tcsh.csh,bash.sh} ${pkgdir}/usr/share/cdargs
+}
diff --git a/extra/cdargs/cdargs.install b/extra/cdargs/cdargs.install
new file mode 100644
index 000000000..b1a5c1d9d
--- /dev/null
+++ b/extra/cdargs/cdargs.install
@@ -0,0 +1,7 @@
+post_install() {
+ echo "cdargs: helper scripts are in /usr/share/cdargs/"
+}
+
+post_upgrade() {
+ echo "cdargs: helper scripts are in /usr/share/cdargs/"
+}
diff --git a/extra/cdparanoia/ChangeLog b/extra/cdparanoia/ChangeLog
new file mode 100644
index 000000000..a1a1d4df4
--- /dev/null
+++ b/extra/cdparanoia/ChangeLog
@@ -0,0 +1,23 @@
+2008-09-15 Alexander Fehr <pizzapunk gmail com>
+
+ * cdparanoia-10.2-1:
+ New upstream release.
+
+2008-08-07 Alexander Fehr <pizzapunk gmail com>
+
+ * cdparanoia-10.1-1:
+ New upstream release.
+ Changed license to GPL.
+ Added !makeflags option.
+
+2008-07-07 Alexander Fehr <pizzapunk gmail com>
+
+ * cdparanoia-10.0-1:
+ New upstream release.
+ New maintainer.
+ Added arch variable.
+ Changed license to GPL3.
+ Fixed man page location.
+ Removed cdparanoia.patch.
+ Removed gcc34.patch.
+ Added ChangeLog.
diff --git a/extra/cdparanoia/PKGBUILD b/extra/cdparanoia/PKGBUILD
new file mode 100644
index 000000000..870136f91
--- /dev/null
+++ b/extra/cdparanoia/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 53529 2009-10-02 03:47:22Z eric $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=cdparanoia
+pkgver=10.2
+pkgrel=2
+pkgdesc="Compact Disc Digital Audio extraction tool"
+arch=('i686' 'x86_64')
+url="http://www.xiph.org/paranoia/"
+license=('GPL')
+depends=('glibc')
+options=('!makeflags')
+source=(http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-$pkgver.src.tgz gcc.patch)
+md5sums=('b304bbe8ab63373924a744eac9ebc652' '12da14958d2b84c6719fe69890436445')
+sha1sums=('1901e20d3a370ca6afa4c76a9ef30d3f03044320' '67faaf0e3eed2e3de6f66d8168604bc6c7295921')
+
+build() {
+ cd "$srcdir/cdparanoia-III-$pkgver"
+ patch -p0 -i ${srcdir}/gcc.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make prefix="$pkgdir/usr" MANDIR="$pkgdir/usr/share/man" install || return 1
+}
diff --git a/extra/cdparanoia/gcc.patch b/extra/cdparanoia/gcc.patch
new file mode 100644
index 000000000..b157353e2
--- /dev/null
+++ b/extra/cdparanoia/gcc.patch
@@ -0,0 +1,582 @@
+Index: interface/test_interface.c
+===================================================================
+--- interface/test_interface.c (Revision 15337)
++++ interface/test_interface.c (Revision 15340)
+@@ -66,9 +66,9 @@
+ if(!fd)fd=fdopen(d->cdda_fd,"r");
+
+ if(begin<lastread)
+- d->private->last_milliseconds=20;
++ d->private_data->last_milliseconds=20;
+ else
+- d->private->last_milliseconds=sectors;
++ d->private_data->last_milliseconds=sectors;
+
+ #ifdef CDDA_TEST_UNDERRUN
+ sectors-=1;
+Index: interface/cdda_interface.h
+===================================================================
+--- interface/cdda_interface.h (Revision 15337)
++++ interface/cdda_interface.h (Revision 15340)
+@@ -84,7 +84,7 @@
+ int is_atapi;
+ int is_mmc;
+
+- cdda_private_data_t *private;
++ cdda_private_data_t *private_data;
+ void *reserved;
+ unsigned char inqbytes[4];
+
+Index: interface/interface.c
+===================================================================
+--- interface/interface.c (Revision 15337)
++++ interface/interface.c (Revision 15340)
+@@ -39,9 +39,9 @@
+ if(d->drive_model)free(d->drive_model);
+ if(d->cdda_fd!=-1)close(d->cdda_fd);
+ if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd);
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->private_data){
++ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
++ free(d->private_data);
+ }
+
+ free(d);
+@@ -127,7 +127,7 @@
+ }
+ }
+ }
+- if(ms)*ms=d->private->last_milliseconds;
++ if(ms)*ms=d->private_data->last_milliseconds;
+ return(sectors);
+ }
+
+Index: interface/scsi_interface.c
+===================================================================
+--- interface/scsi_interface.c (Revision 15337)
++++ interface/scsi_interface.c (Revision 15340)
+@@ -15,13 +15,13 @@
+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->private_data->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->private_data->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+ }
+@@ -96,7 +96,7 @@
+ static void clear_garbage(cdrom_drive *d){
+ fd_set fdset;
+ struct timeval tv;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->private_data->sg_hd;
+ int flag=0;
+
+ /* clear out any possibly preexisting garbage */
+@@ -185,7 +185,7 @@
+ struct timespec tv2;
+ int tret1,tret2;
+ int status = 0;
+- struct sg_header *sg_hd=d->private->sg_hd;
++ struct sg_header *sg_hd=d->private_data->sg_hd;
+ long writebytes=SG_OFF+cmd_len+in_size;
+
+ /* generic scsi device services */
+@@ -195,7 +195,7 @@
+
+ memset(sg_hd,0,sizeof(sg_hd));
+ memset(sense_buffer,0,SG_MAX_SENSE);
+- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size);
++ memcpy(d->private_data->sg_buffer,cmd,cmd_len+in_size);
+ sg_hd->twelve_byte = cmd_len == 12;
+ sg_hd->result = 0;
+ sg_hd->reply_len = SG_OFF + out_size;
+@@ -209,7 +209,7 @@
+ tell if the command failed. Scared yet? */
+
+ if(bytecheck && out_size>in_size){
+- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
++ memset(d->private_data->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size);
+ /* the size does not remove cmd_len due to the way the kernel
+ driver copies buffers */
+ writebytes+=(out_size-in_size);
+@@ -243,7 +243,7 @@
+ }
+
+ sigprocmask (SIG_BLOCK, &(d->sigset), NULL );
+- tret1=clock_gettime(d->private->clock,&tv1);
++ tret1=clock_gettime(d->private_data->clock,&tv1);
+ errno=0;
+ status = write(d->cdda_fd, sg_hd, writebytes );
+
+@@ -289,7 +289,7 @@
+ }
+ }
+
+- tret2=clock_gettime(d->private->clock,&tv2);
++ tret2=clock_gettime(d->private_data->clock,&tv2);
+ errno=0;
+ status = read(d->cdda_fd, sg_hd, SG_OFF + out_size);
+ sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL );
+@@ -313,7 +313,7 @@
+ if(bytecheck && in_size+cmd_len<out_size){
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->private_data->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+ }
+@@ -326,9 +326,9 @@
+
+ errno=0;
+ if(tret1<0 || tret2<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000;
+ }
+ return(0);
+ }
+@@ -347,7 +347,7 @@
+
+ memset(&hdr,0,sizeof(hdr));
+ memset(sense,0,sizeof(sense));
+- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size);
++ memcpy(d->private_data->sg_buffer,cmd+cmd_len,in_size);
+
+ hdr.cmdp = cmd;
+ hdr.cmd_len = cmd_len;
+@@ -355,7 +355,7 @@
+ hdr.mx_sb_len = SG_MAX_SENSE;
+ hdr.timeout = 50000;
+ hdr.interface_id = 'S';
+- hdr.dxferp = d->private->sg_buffer;
++ hdr.dxferp = d->private_data->sg_buffer;
+ hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */
+
+ /* scary buffer fill hack */
+@@ -400,7 +400,7 @@
+ if(bytecheck && in_size<out_size){
+ long i,flag=0;
+ for(i=in_size;i<out_size;i++)
+- if(d->private->sg_buffer[i]!=bytefill){
++ if(d->private_data->sg_buffer[i]!=bytefill){
+ flag=1;
+ break;
+ }
+@@ -412,7 +412,7 @@
+ }
+
+ /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */
+- /* d->private->last_milliseconds = hdr.duration; */
++ /* d->private_data->last_milliseconds = hdr.duration; */
+
+ errno = 0;
+ return 0;
+@@ -445,9 +445,9 @@
+
+ handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense);
+
+- key = d->private->sg_buffer[2] & 0xf;
+- ASC = d->private->sg_buffer[12];
+- ASCQ = d->private->sg_buffer[13];
++ key = d->private_data->sg_buffer[2] & 0xf;
++ ASC = d->private_data->sg_buffer[12];
++ ASCQ = d->private_data->sg_buffer[13];
+
+ if(key == 2 && ASC == 4 && ASCQ == 1) return 0;
+ return 1;
+@@ -492,7 +492,7 @@
+ if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1);
+
+ {
+- unsigned char *b=d->private->sg_buffer;
++ unsigned char *b=d->private_data->sg_buffer;
+ if(b[0])return(1); /* Handles only up to 256 bytes */
+ if(b[6])return(1); /* Handles only up to 256 bytes */
+
+@@ -604,8 +604,8 @@
+ static unsigned int get_orig_sectorsize(cdrom_drive *d){
+ if(mode_sense(d,12,0x01))return(-1);
+
+- d->orgdens = d->private->sg_buffer[4];
+- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]);
++ d->orgdens = d->private_data->sg_buffer[4];
++ return(d->orgsize = ((int)(d->private_data->sg_buffer[10])<<8)+d->private_data->sg_buffer[11]);
+ }
+
+ /* switch CDROM scsi drives to given sector size */
+@@ -664,8 +664,8 @@
+ return(-4);
+ }
+
+- first=d->private->sg_buffer[2];
+- last=d->private->sg_buffer[3];
++ first=d->private_data->sg_buffer[2];
++ last=d->private_data->sg_buffer[3];
+ tracks=last-first+1;
+
+ if (last > MAXTRK || first > MAXTRK || last<0 || first<0) {
+@@ -683,7 +683,7 @@
+ return(-5);
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+ d->disc_toc[i-first].bTrack=i;
+@@ -704,7 +704,7 @@
+ return(-2);
+ }
+ {
+- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4);
++ scsi_TOC *toc=(scsi_TOC *)(d->private_data->sg_buffer+4);
+
+ d->disc_toc[i-first].bFlags=toc->bFlags;
+ d->disc_toc[i-first].bTrack=0xAA;
+@@ -738,7 +738,7 @@
+ }
+
+ /* copy to our structure and convert start sector */
+- tracks = d->private->sg_buffer[1];
++ tracks = d->private_data->sg_buffer[1];
+ if (tracks > MAXTRK) {
+ cderror(d,"003: CDROM reporting illegal number of tracks\n");
+ return(-3);
+@@ -754,33 +754,33 @@
+ return(-5);
+ }
+
+- d->disc_toc[i].bFlags = d->private->sg_buffer[10];
++ d->disc_toc[i].bFlags = d->private_data->sg_buffer[10];
+ d->disc_toc[i].bTrack = i + 1;
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- (((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]));
++ (((signed char)(d->private_data->sg_buffer[2])<<24) |
++ (d->private_data->sg_buffer[3]<<16)|
++ (d->private_data->sg_buffer[4]<<8)|
++ (d->private_data->sg_buffer[5]));
+ }
+
+ d->disc_toc[i].bFlags = 0;
+ d->disc_toc[i].bTrack = i + 1;
+- memcpy (&foo, d->private->sg_buffer+2, 4);
+- memcpy (&bar, d->private->sg_buffer+6, 4);
++ memcpy (&foo, d->private_data->sg_buffer+2, 4);
++ memcpy (&bar, d->private_data->sg_buffer+6, 4);
+ d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) +
+ be32_to_cpu(bar));
+
+ d->disc_toc[i].dwStartSector= d->adjust_ssize *
+- ((((signed char)(d->private->sg_buffer[2])<<24) |
+- (d->private->sg_buffer[3]<<16)|
+- (d->private->sg_buffer[4]<<8)|
+- (d->private->sg_buffer[5]))+
++ ((((signed char)(d->private_data->sg_buffer[2])<<24) |
++ (d->private_data->sg_buffer[3]<<16)|
++ (d->private_data->sg_buffer[4]<<8)|
++ (d->private_data->sg_buffer[5]))+
+
+- ((((signed char)(d->private->sg_buffer[6])<<24) |
+- (d->private->sg_buffer[7]<<16)|
+- (d->private->sg_buffer[8]<<8)|
+- (d->private->sg_buffer[9]))));
++ ((((signed char)(d->private_data->sg_buffer[6])<<24) |
++ (d->private_data->sg_buffer[7]<<16)|
++ (d->private_data->sg_buffer[8]<<8)|
++ (d->private_data->sg_buffer[9]))));
+
+
+ d->cd_extra = FixupTOC(d,tracks+1);
+@@ -817,7 +817,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -836,7 +836,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -854,7 +854,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -872,7 +872,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -890,7 +890,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -908,7 +908,7 @@
+ cmd[9] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -922,7 +922,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -936,7 +936,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -950,7 +950,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -964,7 +964,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -978,7 +978,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -992,7 +992,7 @@
+ cmd[8] = sectors;
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1026,7 +1026,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1039,7 +1039,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1052,7 +1052,7 @@
+
+ if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense)))
+ return(ret);
+- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW);
++ if(p)memcpy(p,d->private_data->sg_buffer,sectors*CD_FRAMESIZE_RAW);
+ return(0);
+ }
+
+@@ -1275,7 +1275,7 @@
+ static int count_2352_bytes(cdrom_drive *d){
+ long i;
+ for(i=2351;i>=0;i--)
+- if(d->private->sg_buffer[i]!=(unsigned char)'\177')
++ if(d->private_data->sg_buffer[i]!=(unsigned char)'\177')
+ return(((i+3)>>2)<<2);
+
+ return(0);
+@@ -1284,7 +1284,7 @@
+ static int verify_nonzero(cdrom_drive *d){
+ long i,flag=0;
+ for(i=0;i<2352;i++)
+- if(d->private->sg_buffer[i]!=0){
++ if(d->private_data->sg_buffer[i]!=0){
+ flag=1;
+ break;
+ }
+@@ -1621,7 +1621,7 @@
+ d->is_mmc=0;
+ if(mode_sense(d,22,0x2A)==0){
+
+- b=d->private->sg_buffer;
++ b=d->private_data->sg_buffer;
+ b+=b[3]+4;
+
+ if((b[0]&0x3F)==0x2A){
+@@ -1669,7 +1669,7 @@
+ cderror(d,"008: Unable to identify CDROM model\n");
+ return(NULL);
+ }
+- return (d->private->sg_buffer);
++ return (d->private_data->sg_buffer);
+ }
+
+ int scsi_init_drive(cdrom_drive *d){
+@@ -1725,8 +1725,8 @@
+ check_cache(d);
+
+ d->error_retry=1;
+- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->private_data->sg_hd=realloc(d->private_data->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128);
++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
+ d->report_all=1;
+ return(0);
+ }
+Index: interface/cooked_interface.c
+===================================================================
+--- interface/cooked_interface.c (Revision 15337)
++++ interface/cooked_interface.c (Revision 15340)
+@@ -13,13 +13,13 @@
+ static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){
+ struct timespec tv1;
+ struct timespec tv2;
+- int ret1=clock_gettime(d->private->clock,&tv1);
++ int ret1=clock_gettime(d->private_data->clock,&tv1);
+ int ret2=ioctl(fd, command,arg);
+- int ret3=clock_gettime(d->private->clock,&tv2);
++ int ret3=clock_gettime(d->private_data->clock,&tv2);
+ if(ret1<0 || ret3<0){
+- d->private->last_milliseconds=-1;
++ d->private_data->last_milliseconds=-1;
+ }else{
+- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
++ d->private_data->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.;
+ }
+ return ret2;
+ }
+Index: interface/scan_devices.c
+===================================================================
+--- interface/scan_devices.c (Revision 15337)
++++ interface/scan_devices.c (Revision 15340)
+@@ -264,11 +264,11 @@
+ d->interface=COOKED_IOCTL;
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description);
+ return(d);
+@@ -674,15 +674,15 @@
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+ d->messagedest = messagedest;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ {
+ /* goddamnit */
+ struct timespec tv;
+- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
++ d->private_data->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC);
+ }
+ if(use_sgio){
+ d->interface=SGIO_SCSI;
+- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
++ d->private_data->sg_buffer=(unsigned char *)(d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE));
+ g_fd=d->cdda_fd=dup(d->ioctl_fd);
+ }else{
+ version=verify_SG_version(d,messagedest,messages);
+@@ -696,8 +696,8 @@
+ }
+
+ /* malloc our big buffer for scsi commands */
+- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
+- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF;
++ d->private_data->sg_hd=malloc(MAX_BIG_BUFF_SIZE);
++ d->private_data->sg_buffer=((unsigned char *)d->private_data->sg_hd)+SG_OFF;
+ }
+
+ {
+@@ -772,9 +772,9 @@
+ if(i_fd!=-1)close(i_fd);
+ if(g_fd!=-1)close(g_fd);
+ if(d){
+- if(d->private){
+- if(d->private->sg_hd)free(d->private->sg_hd);
+- free(d->private);
++ if(d->private_data){
++ if(d->private_data->sg_hd)free(d->private_data->sg_hd);
++ free(d->private_data);
+ }
+ free(d);
+ }
+@@ -821,7 +821,7 @@
+ d->interface=TEST_INTERFACE;
+ d->bigendianp=-1; /* We don't know yet... */
+ d->nsectors=-1;
+- d->private=calloc(1,sizeof(*d->private));
++ d->private_data=calloc(1,sizeof(*d->private_data));
+ d->drive_model=copystring("File based test interface");
+ idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model);
+
diff --git a/extra/cdrdao/PKGBUILD b/extra/cdrdao/PKGBUILD
new file mode 100644
index 000000000..4474dce28
--- /dev/null
+++ b/extra/cdrdao/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 102363 2010-12-07 13:51:12Z jgc $
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgbase=('cdrdao')
+pkgname=('cdrdao' 'gcdmaster')
+pkgver=1.2.3
+pkgrel=5
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://cdrdao.sourceforge.net/"
+makedepends=('gcc-libs' 'lame' 'libmad' 'libvorbis' 'libao' 'libgnomeuimm')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ cdrdao-1.2.3-autoconf-update.patch
+ cdrdao-1.2.3-k3b.patch
+ cdrdao-1.2.3-stat.patch)
+md5sums=('8d15ba6280bb7ba2f4d6be31d28b3c0c'
+ '8e53dfc174f7c0882194caa05e68b85e'
+ '696f6ca01e1eeb9b6a5be88e535d9398'
+ '0fce05542ebad283f36fa1c4d62992a0')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/cdrdao-1.2.3-autoconf-update.patch"
+ patch -Np1 -i "${srcdir}/cdrdao-1.2.3-k3b.patch"
+ patch -Np1 -i "${srcdir}/cdrdao-1.2.3-stat.patch"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc \
+ --with-xdao --with-lame \
+ --with-ogg-support --with-mp3-support
+ make
+}
+
+package_cdrdao() {
+ pkgdesc='Records audio/data CD-Rs in disk-at-once (DAO) mode'
+ depends=('gcc-libs' 'lame' 'libmad' 'libvorbis' 'libao')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ for dir in trackdb utils paranoia dao
+ do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+}
+
+package_gcdmaster() {
+ pkgdesc='GUI frontend for creating audio CDs using cdrdao'
+ depends=('libgnomeuimm' "cdrdao=${pkgver}")
+ install=gcdmaster.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C xdao GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ mv "${pkgdir}/etc/gconf" "${pkgdir}/usr/share/"
+ rmdir "${pkgdir}/etc"
+}
diff --git a/extra/cdrdao/cdrdao-1.2.3-autoconf-update.patch b/extra/cdrdao/cdrdao-1.2.3-autoconf-update.patch
new file mode 100644
index 000000000..4eb1ade7e
--- /dev/null
+++ b/extra/cdrdao/cdrdao-1.2.3-autoconf-update.patch
@@ -0,0 +1,52 @@
+--- cdrdao-1.2.3rc2/acinclude.m4.orig 2009-02-21 11:30:02.000000000 +0100
++++ cdrdao-1.2.3rc2/acinclude.m4 2009-05-22 22:38:15.448770972 +0200
+@@ -1,5 +1,49 @@
++dnl AM_GCONF_SOURCE_2
++dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas
++dnl (i.e. pass to gconftool-2
++dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where
++dnl you should install foo.schemas files
++dnl
++
++AC_DEFUN([AM_GCONF_SOURCE_2],
++[
++ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then
++ GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source`
++ else
++ GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE
++ fi
++
++ AC_ARG_WITH([gconf-source],
++ AC_HELP_STRING([--with-gconf-source=sourceaddress],
++ [Config database for installing schema files.]),
++ [GCONF_SCHEMA_CONFIG_SOURCE="$withval"],)
++
++ AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE)
++ AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation])
++
++ if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then
++ GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas'
++ fi
++
++ AC_ARG_WITH([gconf-schema-file-dir],
++ AC_HELP_STRING([--with-gconf-schema-file-dir=dir],
++ [Directory for installing schema files.]),
++ [GCONF_SCHEMA_FILE_DIR="$withval"],)
++
++ AC_SUBST(GCONF_SCHEMA_FILE_DIR)
++ AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files])
++
++ AC_ARG_ENABLE(schemas-install,
++ AC_HELP_STRING([--disable-schemas-install],
++ [Disable the schemas installation]),
++ [case ${enableval} in
++ yes|no) ;;
++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-install]) ;;
++ esac])
++ AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no])
++])
+ # Configure paths for GTK--
+ # Erik Andersen 30 May 1998
+ # Modified by Tero Pulkkinen (added the compiler checks... I hope they work..)
+
+ dnl Check and configure include and link paths for lame library
diff --git a/extra/cdrdao/cdrdao-1.2.3-k3b.patch b/extra/cdrdao/cdrdao-1.2.3-k3b.patch
new file mode 100644
index 000000000..3de655d54
--- /dev/null
+++ b/extra/cdrdao/cdrdao-1.2.3-k3b.patch
@@ -0,0 +1,11 @@
+--- cdrdao/dao/main.cc~ 2009-04-16 15:34:27.000000000 +0200
++++ cdrdao/dao/main.cc 2009-04-16 15:34:38.000000000 +0200
+@@ -207,7 +207,7 @@
+
+ static void printVersion()
+ {
+- log_message(2, "Cdrdao version %s - (C) Andreas Mueller <andreas@daneb.de>",
++ log_message(0, "Cdrdao version %s - (C) Andreas Mueller <andreas@daneb.de>",
+ VERSION);
+
+ std::list<std::string> list;
diff --git a/extra/cdrdao/cdrdao-1.2.3-stat.patch b/extra/cdrdao/cdrdao-1.2.3-stat.patch
new file mode 100644
index 000000000..5a68e7130
--- /dev/null
+++ b/extra/cdrdao/cdrdao-1.2.3-stat.patch
@@ -0,0 +1,13 @@
+diff -up cdrdao-1.2.3/dao/ScsiIf-linux.cc.stat cdrdao-1.2.3/dao/ScsiIf-linux.cc
+--- cdrdao-1.2.3/dao/ScsiIf-linux.cc.stat 2010-01-20 20:11:36.000000000 +0100
++++ cdrdao-1.2.3/dao/ScsiIf-linux.cc 2010-01-20 20:14:07.000000000 +0100
+@@ -19,6 +19,9 @@
+
+ #include <config.h>
+
++#include <sys/types.h>
++#include <sys/stat.h>
++
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <unistd.h>
diff --git a/extra/cdrdao/gcdmaster.install b/extra/cdrdao/gcdmaster.install
new file mode 100644
index 000000000..ed2efc6aa
--- /dev/null
+++ b/extra/cdrdao/gcdmaster.install
@@ -0,0 +1,22 @@
+pkgname=gcdmaster
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-mime-database usr/share/mime
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-mime-database usr/share/mime
+}
diff --git a/extra/cdrkit/PKGBUILD b/extra/cdrkit/PKGBUILD
new file mode 100644
index 000000000..b4814cf6e
--- /dev/null
+++ b/extra/cdrkit/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 103376 2010-12-18 15:46:10Z andyrtr $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=cdrkit
+pkgver=1.1.11
+pkgrel=1
+pkgdesc="Suite of programs for CD/DVD recording, ISO image creation, and audio CD extraction"
+arch=('i686' 'x86_64')
+url="http://cdrkit.org/"
+license=('GPL2')
+depends=('file' 'bzip2' 'perl')
+makedepends=('cmake')
+provides=('cdrtools')
+conflicts=('cdrtools')
+source=(http://cdrkit.org/releases/$pkgname-$pkgver.tar.gz)
+md5sums=('efe08e2f3ca478486037b053acd512e9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make PREFIX="$pkgdir/usr" install
+
+ # Make symlinks for cdrtools compatibility
+ cd "$pkgdir/usr/bin"
+ ln -s wodim cdrecord
+ ln -s readom readcd
+ ln -s genisoimage mkisofs
+ ln -s genisoimage mkhybrid
+ ln -s icedax cdda2wav
+
+ cd "$pkgdir/usr/share/man/man1"
+ ln -s wodim.1 cdrecord.1
+ ln -s readom.1 readcd.1
+ ln -s genisoimage.1 mkisofs.1
+ ln -s genisoimage.1 mkhybrid.1
+ ln -s icedax.1 cdda2wav.1
+}
diff --git a/extra/celestia/PKGBUILD b/extra/celestia/PKGBUILD
new file mode 100644
index 000000000..87c4af8a6
--- /dev/null
+++ b/extra/celestia/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 63841 2010-01-18 21:47:42Z ibiru $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=celestia
+pkgver=1.6.0
+pkgrel=2
+pkgdesc="Real-time space simulation"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.shatters.net/celestia/"
+depends=('gtk2' 'libtheora' 'lua' 'gtkglext' 'glut' 'libxmu' 'mesa' 'libjpeg>=8')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/celestia/${pkgname}-${pkgver}.tar.gz
+ celestia-1.5.1-gcc44.patch libpng14.patch)
+md5sums=('9b96a8e7666ab5a26f032b9d605e023d'
+ '0c606dbd3a641afb1b0725428db854c8'
+ '829c0860659272a9f55aedf096ee4216')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # build patch
+ patch -Np0 < ${srcdir}/celestia-1.5.1-gcc44.patch || return 1
+ patch -Np1 -i ${srcdir}/libpng14.patch || return 1
+
+ ./configure --prefix=/usr \
+ --with-lua=/usr \
+ --datadir=/usr/share \
+ --with-gtk
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
+
diff --git a/extra/celestia/celestia-1.5.1-gcc44.patch b/extra/celestia/celestia-1.5.1-gcc44.patch
new file mode 100644
index 000000000..b1ee896f0
--- /dev/null
+++ b/extra/celestia/celestia-1.5.1-gcc44.patch
@@ -0,0 +1,20 @@
+--- src/celengine/overlay.h.orig 2009-07-08 02:27:08.000000000 -0400
++++ src/celengine/overlay.h 2009-07-08 02:27:28.000000000 -0400
+@@ -10,6 +10,7 @@
+ #ifndef _OVERLAY_H_
+ #define _OVERLAY_H_
+
++#include <cstdio>
+ #include <string>
+ #include <iostream>
+ #include <celtxf/texturefont.h>
+--- src/celengine/star.cpp.orig 2009-07-08 02:40:52.000000000 -0400
++++ src/celengine/star.cpp 2009-07-08 02:41:08.000000000 -0400
+@@ -8,6 +8,7 @@
+ // of the License, or (at your option) any later version.
+
+ #include <celmath/mathlib.h>
++#include <cstdio>
+ #include <cstring>
+ #include <cassert>
+ #include "celestia.h"
diff --git a/extra/celestia/libpng14.patch b/extra/celestia/libpng14.patch
new file mode 100644
index 000000000..1d47637b9
--- /dev/null
+++ b/extra/celestia/libpng14.patch
@@ -0,0 +1,12 @@
+diff -Nur celestia-1.6.0.orig/src/celengine/image.cpp celestia-1.6.0/src/celengine/image.cpp
+--- celestia-1.6.0.orig/src/celengine/image.cpp 2009-06-22 18:44:08.000000000 +0300
++++ celestia-1.6.0/src/celengine/image.cpp 2010-01-18 23:27:55.000000000 +0200
+@@ -737,7 +737,7 @@
+
+ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
+ {
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
diff --git a/extra/cfitsio/PKGBUILD b/extra/cfitsio/PKGBUILD
new file mode 100644
index 000000000..e99bbd0d4
--- /dev/null
+++ b/extra/cfitsio/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117363 2011-03-31 21:07:25Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=cfitsio
+pkgver=3.270
+_pkgver=3270
+pkgrel=1
+pkgdesc="A library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format"
+arch=('i686' 'x86_64')
+url="http://heasarc.gsfc.nasa.gov/docs/software/fitsio/fitsio.html"
+license=('GPL2')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=("ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/${pkgname}${_pkgver}.tar.gz")
+md5sums=('2a72b323de3f40ad1a671f2167500336')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ ./configure --prefix=/usr
+ make shared
+}
+
+package() {
+ cd ${srcdir}/${pkgname}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/cheese/PKGBUILD b/extra/cheese/PKGBUILD
new file mode 100644
index 000000000..bb1aade2f
--- /dev/null
+++ b/extra/cheese/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 91839 2010-09-28 08:08:33Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cheese
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Use your webcam to take photos and videos, apply fancy special effects and share the fun with others"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gnome-desktop>=2.32.0' 'gstreamer0.10-base-plugins>=0.10.30' 'gstreamer0.10-good-plugins>=0.10.24' 'librsvg>=2.32.0' 'gnome-icon-theme>=2.31.0' 'libcanberra>=0.25')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.1' 'intltool')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org/projects/cheese/"
+install=cheese.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8debc47113d9889247f411d256a8eca0d8da49e5ab5909c200923945b8d5e087')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib \
+ --disable-scrollkeeper --disable-static
+ make
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain cheese ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/cheese/cheese.install b/extra/cheese/cheese.install
new file mode 100644
index 000000000..2ee180576
--- /dev/null
+++ b/extra/cheese/cheese.install
@@ -0,0 +1,22 @@
+pkgname=cheese
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/chemtool/PKGBUILD b/extra/chemtool/PKGBUILD
new file mode 100644
index 000000000..b3992140d
--- /dev/null
+++ b/extra/chemtool/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 78228 2010-04-20 03:46:15Z dgriffiths $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=chemtool
+pkgver=1.6.12
+pkgrel=3
+pkgdesc="A small program for drawing chemical structures"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://ruby.chemie.uni-freiburg.de/~martin/chemtool/chemtool.html"
+depends=('gtk2')
+options=(!libtool)
+source=(http://ruby.chemie.uni-freiburg.de/~martin/${pkgname}/${pkgname}-${pkgver}.tar.gz chemtool.desktop)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir}/ install
+ install -D -m644 gnome/chemtool.png ${pkgdir}/usr/share/pixmaps/chemtool.png
+ install -D -m644 ${srcdir}/chemtool.desktop ${pkgdir}/usr/share/applications/chemtool.desktop
+}
+md5sums=('f9e0633cbda09fcfe5a4ea4c56bcd460'
+ '8cbb6f7021bd5aaa6f6a31fc4d95a06e')
diff --git a/extra/chemtool/chemtool.desktop b/extra/chemtool/chemtool.desktop
new file mode 100644
index 000000000..a93770aea
--- /dev/null
+++ b/extra/chemtool/chemtool.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Name=Chemtool
+Comment=Molecules 2D drawing
+Name[cs_CZ.ISO8859-2]=Chemtool
+Comment[cs_CZ.ISO8859-2]=Editor molekul
+Comment[de_DE.ISO8859-1]=Moleküleditor
+Exec=chemtool
+Icon=chemtool.png
+Terminal=false
+MultipleArgs=false
+Type=Application
+Categories=Application;Graphics;2DGraphics;GTK;
+MimeType=application/x-chemtool;
diff --git a/extra/chkrootkit/PKGBUILD b/extra/chkrootkit/PKGBUILD
new file mode 100644
index 000000000..e47387bcc
--- /dev/null
+++ b/extra/chkrootkit/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 52041 2009-09-14 15:18:27Z giovanni $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+
+pkgname=chkrootkit
+pkgver=0.49
+pkgrel=1
+pkgdesc="Locally checks for signs of a rootkit."
+arch=('i686' 'x86_64')
+url="http://www.chkrootkit.org"
+depends=('bash')
+license=('BSD')
+source=(ftp://ftp.pangeia.com.br/pub/seg/pac/${pkgname}.tar.gz fix-tools-path.patch)
+md5sums=('304d840d52840689e0ab0af56d6d3a18' '6a2f3038114b8b14e1ad74e30fe44eee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 < ${srcdir}/fix-tools-path.patch
+ chown root:root *
+ make sense || return 1
+ find ${srcdir}/${pkgname}-${pkgver} -perm /u+x -type f \
+ -execdir install -D -m755 "{}" ${pkgdir}/usr/bin/"{}" ";"
+ install -D -m644 COPYRIGHT $startdir/pkg/usr/share/licenses/$pkgname/LICENSE.txt
+}
diff --git a/extra/chkrootkit/fix-tools-path.patch b/extra/chkrootkit/fix-tools-path.patch
new file mode 100644
index 000000000..2f3c38528
--- /dev/null
+++ b/extra/chkrootkit/fix-tools-path.patch
@@ -0,0 +1,161 @@
+--- chkrootkit 2008-01-19 11:01:15.000000000 +0100
++++ chkrootkit 2008-11-01 13:11:14.000000000 +0100
+@@ -158,23 +158,23 @@
+ fi
+
+ if [ "${EXPERT}" = "t" ]; then
+- expertmode_output "./ifpromisc" -v
++ expertmode_output "/usr/bin/ifpromisc" -v
+ return 5
+ fi
+- if [ ! -x ./ifpromisc ]; then
+- echo "not tested: can't exec ./ifpromisc"
++ if [ ! -x /usr/bin/ifpromisc ]; then
++ echo "not tested: can't exec /usr/bin/ifpromisc"
+ return ${NOT_TESTED}
+ else
+- [ "${QUIET}" != "t" ] && ./ifpromisc -v || ./ifpromisc -q
++ [ "${QUIET}" != "t" ] && /usr/bin/ifpromisc -v || /usr/bin/ifpromisc -q
+ fi
+ }
+
+ chkutmp() {
+- if [ ! -x ./chkutmp ]; then
+- echo "not tested: can't exec ./chkutmp"
++ if [ ! -x /usr/bin/chkutmp ]; then
++ echo "not tested: can't exec /usr/bin/chkutmp"
+ return ${NOT_TESTED}
+ fi
+- if ./chkutmp
++ if /usr/bin/chkutmp
+ then
+ if [ "${QUIET}" != "t" ]; then echo "chkutmp: nothing deleted"; fi
+ fi
+@@ -182,8 +182,8 @@
+ }
+
+ z2 () {
+- if [ ! -x ./chklastlog ]; then
+- echo "not tested: can't exec ./chklastlog"
++ if [ ! -x /usr/bin/chklastlog ]; then
++ echo "not tested: can't exec /usr/bin/chklastlog"
+ return ${NOT_TESTED}
+ fi
+
+@@ -196,32 +196,32 @@
+ fi
+
+ if [ "${EXPERT}" = "t" ]; then
+- expertmode_output "./chklastlog -f ${WTMP} -l ${LASTLOG}"
++ expertmode_output "/usr/bin/chklastlog -f ${WTMP} -l ${LASTLOG}"
+ return 5
+ fi
+
+- if ./chklastlog -f ${WTMP} -l ${LASTLOG}
++ if /usr/bin/chklastlog -f ${WTMP} -l ${LASTLOG}
+ then
+ if [ "${QUIET}" != "t" ]; then echo "chklastlog: nothing deleted"; fi
+ fi
+ }
+
+ wted () {
+- if [ ! -x ./chkwtmp ]; then
+- echo "not tested: can't exec ./chkwtmp"
++ if [ ! -x /usr/bin/chkwtmp ]; then
++ echo "not tested: can't exec /usr/bin/chkwtmp"
+ return ${NOT_TESTED}
+ fi
+
+ if [ "$SYSTEM" = "SunOS" ]; then
+- if [ ! -x ./check_wtmpx ]; then
+- echo "not tested: can't exec ./check_wtmpx"
++ if [ ! -x /usr/bin/check_wtmpx ]; then
++ echo "not tested: can't exec /usr/bin/check_wtmpx"
+ else
+ if [ "${EXPERT}" = "t" ]; then
+- expertmode_output "./check_wtmpx"
++ expertmode_output "/usr/bin/check_wtmpx"
+ return 5
+ fi
+ if [ -f ${ROOTDIR}var/adm/wtmp ]; then
+- if ./check_wtmpx
++ if /usr/bin/check_wtmpx
+ then
+ if [ "${QUIET}" != "t" ]; then \
+ echo "check_wtmpx: nothing deleted in /var/adm/wtmpx"; fi
+@@ -232,12 +232,12 @@
+ WTMP=`loc wtmp wtmp "${ROOTDIR}var/log ${ROOTDIR}var/adm"`
+
+ if [ "${EXPERT}" = "t" ]; then
+- expertmode_output "./chkwtmp -f ${WTMP}"
++ expertmode_output "/usr/bin/chkwtmp -f ${WTMP}"
+ return 5
+ fi
+ fi
+
+- if ./chkwtmp -f ${WTMP}
++ if /usr/bin/chkwtmp -f ${WTMP}
+ then
+ if [ "${QUIET}" != "t" ]; then echo "chkwtmp: nothing deleted"; fi
+ fi
+@@ -275,8 +275,8 @@
+ prog=""
+ if [ \( "${SYSTEM}" = "Linux" -o \( "${SYSTEM}" = "FreeBSD" -a \
+ `echo ${V} | ${awk} '{ if ($1 > 4.3 || $1 < 6.0) print 1; else print 0 }'` -eq 1 \) \) -a "${ROOTDIR}" = "/" ]; then
+- [ -x ./chkproc -a "`find /proc | wc -l`" -gt 1 ] && prog="./chkproc"
+- [ -x ./chkdirs ] && prog="$prog ./chkdirs"
++ [ -x /usr/bin/chkproc -a "`find /proc | wc -l`" -gt 1 ] && prog="/usr/bin/chkproc"
++ [ -x /usr/bin/chkdirs ] && prog="$prog /usr/bin/chkdirs"
+ if [ "$prog" = "" ]; then
+ echo "not tested: can't exec $prog"
+ return ${NOT_TESTED}
+@@ -288,7 +288,7 @@
+ PV=`$ps -V 2>/dev/null| $cut -d " " -f 3 |${awk} -F . '{ print $1 "." $2 $3 }' | ${awk} '{ if ($0 > 3.19) print 3; else if ($0 < 2.015) print 1; else print 2 }'`
+ [ "$PV" = "" ] && PV=2
+ [ "${SYSTEM}" = "SunOS" ] && PV=0
+- expertmode_output "./chkproc -v -v -p $PV"
++ expertmode_output "/usr/bin/chkproc -v -v -p $PV"
+ return 5
+ fi
+
+@@ -315,7 +315,7 @@
+ if [ "${DEBUG}" = "t" ]; then
+ ${echo} "*** PV=$PV ***"
+ fi
+- if ./chkproc -p ${PV}; then
++ if /usr/bin/chkproc -p ${PV}; then
+ if [ "${QUIET}" != "t" ]; then echo "chkproc: nothing detected"; fi
+ else
+ echo "chkproc: Warning: Possible LKM Trojan installed"
+@@ -324,7 +324,7 @@
+ for i in /usr/share /usr/bin /usr/sbin /lib; do
+ [ -d $i ] && dirs="$dirs $i"
+ done
+- if ./chkdirs $dirs; then
++ if /usr/bin/chkdirs $dirs; then
+ if [ "${QUIET}" != "t" ]; then echo "chkdirs: nothing detected"; fi
+ else
+ echo "chkdirs: Warning: Possible LKM Trojan installed"
+@@ -1690,18 +1690,18 @@
+
+ if [ "${SYSTEM}" = "Linux" ]
+ then
+- if [ ! -x ./strings-static ]; then
+- printn "can't exec ./strings-static, "
++ if [ ! -x /usr/bin/strings-static ]; then
++ printn "can't exec /usr/bin/strings-static, "
+ return ${NOT_TESTED}
+ fi
+
+ if [ "${EXPERT}" = "t" ]; then
+- expertmode_output "./strings-static -a ${CMD}"
++ expertmode_output "/usr/bin/strings-static -a ${CMD}"
+ return 5
+ fi
+
+ ### strings must be a statically linked binary.
+- if ./strings-static -a ${CMD} > /dev/null 2>&1
++ if /usr/bin/strings-static -a ${CMD} > /dev/null 2>&1
+ then
+ STATUS=${INFECTED}
+ fi
diff --git a/extra/chmlib/PKGBUILD b/extra/chmlib/PKGBUILD
new file mode 100644
index 000000000..1c91a1985
--- /dev/null
+++ b/extra/chmlib/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 42201 2009-06-11 18:45:59Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alexander 'dma147' Mieland <dma147@linux-stats.org>
+# Contributor: Simon Morgan <simon@16hz.net>
+
+pkgname=chmlib
+pkgver=0.40
+pkgrel=1
+pkgdesc="Library for dealing with Microsoft ITSS/CHM format files"
+arch=('i686' 'x86_64')
+url="http://morte.jedrea.com/~jedwin/projects/chmlib/"
+options=('!libtool' '!emptydirs')
+license=('LGPL')
+depends=('glibc')
+source=(http://morte.jedrea.com/~jedwin/projects/chmlib/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7ea49ed8c335215c1edc6fae83e6b912')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-examples=yes
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/extra/cifs-utils/PKGBUILD b/extra/cifs-utils/PKGBUILD
new file mode 100644
index 000000000..729822c12
--- /dev/null
+++ b/extra/cifs-utils/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 117241 2011-03-30 13:34:45Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=cifs-utils
+pkgver=4.9
+pkgrel=2
+pkgdesc="CIFS filesystem user-space tools"
+arch=(i686 x86_64)
+url="http://wiki.samba.org/index.php/LinuxCIFS_utils"
+license=('GPL')
+depends=('libcap' 'keyutils' 'heimdal')
+source=(ftp://ftp.samba.org/pub/linux-cifs/cifs-utils/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ rm -r $pkgdir/usr/bin
+ # set mount.cifs uid, to enable none root mounting form fstab
+ chmod +s $pkgdir/sbin/mount.cifs
+}
+md5sums=('908d904e6b9e58f09f530de151a88ef8')
diff --git a/extra/cinepaint/PKGBUILD b/extra/cinepaint/PKGBUILD
new file mode 100644
index 000000000..c60484af5
--- /dev/null
+++ b/extra/cinepaint/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 89858 2010-09-04 14:16:02Z remy $
+# Maintainer: tobias [tobias.archlinux.org]
+# Contributor: tobias [tobias.justdreams.de]
+
+pkgname=cinepaint
+_srcver=0.22-1
+pkgver=${_srcver/-/.}
+pkgrel=7
+pkgdesc="sophisticated graphics manipulation programm supporting >8bit pictures"
+arch=(i686 x86_64)
+license=('LGPL' 'GPL' 'MIT-OSI')
+url=(http://cinepaint.org.sourceforge.net/)
+depends=('gtk2>=2.18.6' 'openexr>=1.6.1' 'lcms>=1.18' 'libxmu>=1.0.4' 'libxpm>=3.5.7' 'fltk>=1.1.9' 'desktop-file-utils' 'ftgl>=2.1.3rc5' 'libjpeg>=8')
+makedepends=('python2' 'gutenprint>=5.2.3')
+optdepends=('python2' 'gutenprint')
+options=('!libtool')
+install=cinepaint.install
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${_srcver}.tar.gz
+ cinepaint-0.22.1-gcc43.patch
+ cinepaint-0.22.1-multiple_parameters_named.patch
+ cinepaint-0.22.1-ambiguousawake.patch
+ cinepaint-0.22-gcc44.patch)
+md5sums=('f360587240db6b6d2f0bfd94c420c492' 'f05e17a16d0018e5301aff0e1fa597b0'\
+ '0876510a5ce3d581ebdde7e18199c09f' '4586aa153a0d3cac36120afc1f95a880'\
+ '368e820c27f525e3569d43388f1c119a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_srcver}"
+ # FIXES
+ patch -Np1 -i "${srcdir}/cinepaint-0.22.1-gcc43.patch" || return 1
+ patch -Np1 -i "${srcdir}/cinepaint-0.22-gcc44.patch" || return 1
+ patch -Np1 -i "${srcdir}/cinepaint-0.22.1-multiple_parameters_named.patch" || return 1
+ patch -Np0 -i "${srcdir}/cinepaint-0.22.1-ambiguousawake.patch" || return 1
+ find plug-ins/pygimp -type f -exec sed -i 's#env python#env python2#' {} +
+ find plug-ins/print -type f -exec \
+ sed -i "s:gutenprintui/gutenprintui:gutenprintui2/gutenprintui:" {} \;
+ # Fix insecure rpath
+ sed '/-rpath/d' -i plug-ins/icc_examin/icc_examin/configure
+
+ # build
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --enable-gtk2 --enable-pygimp \
+ --with-python=/usr/bin/python2
+ # FIXES
+ sed -i 's/^\(X_LIBS.*\)$/\1 -lpthread/' plug-ins/openexr/Makefile
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${_srcver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/applications"
+ install -m755 -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 cinepaint.desktop "${pkgdir}/usr/share/applications/" || return 1
+ install -m644 cinepaint.png "${pkgdir}/usr/share/pixmaps/" || return 1
+}
diff --git a/extra/cinepaint/cinepaint-0.22-gcc44.patch b/extra/cinepaint/cinepaint-0.22-gcc44.patch
new file mode 100644
index 000000000..340057834
--- /dev/null
+++ b/extra/cinepaint/cinepaint-0.22-gcc44.patch
@@ -0,0 +1,22 @@
+diff -Nru cinepaint-0.22-1.orig/plug-ins/collect/collect.cpp cinepaint-0.22-1/plug-ins/collect/collect.cpp
+--- cinepaint-0.22-1.orig/plug-ins/collect/collect.cpp 2007-03-30 11:11:33.000000000 +0200
++++ cinepaint-0.22-1/plug-ins/collect/collect.cpp 2009-05-21 14:54:45.000000000 +0200
+@@ -301,7 +301,7 @@
+ return -1;
+
+ // renaming the layer to the original filename
+- gimp_layer_set_name (layers[0], strrchr(fc->value(1),'/')+1);
++ gimp_layer_set_name (layers[0], strrchr((char *)fc->value(1),'/')+1);
+ GPrecisionType image_base_prec = gimp_drawable_precision (layers[0]);
+ int base_gray = gimp_drawable_gray (layers[0]);
+
+@@ -341,7 +341,7 @@
+ #endif
+ gimp_image_add_layer (image_ID, layers[0], 0); DBG
+ // set layer name to filename
+- gimp_layer_set_name(layers[0], strrchr(fc->value(i),'/')+1);
++ gimp_layer_set_name(layers[0], strrchr((char *)fc->value(i),'/')+1);
+
+ // searching max dimensions
+ if (gimp_image_width(load_image_ID) > max_w)
+
diff --git a/extra/cinepaint/cinepaint-0.22.1-ambiguousawake.patch b/extra/cinepaint/cinepaint-0.22.1-ambiguousawake.patch
new file mode 100644
index 000000000..f1d09fa27
--- /dev/null
+++ b/extra/cinepaint/cinepaint-0.22.1-ambiguousawake.patch
@@ -0,0 +1,11 @@
+--- plug-ins/icc_examin/icc_examin/icc_helfer_fltk.cpp.orig 2008-09-03 02:07:08.000000000 +0200
++++ plug-ins/icc_examin/icc_examin/icc_helfer_fltk.cpp 2008-09-03 02:08:02.000000000 +0200
+@@ -226,7 +226,7 @@
+
+ int awake(void)
+ {
+- Fl::awake(0);
++ Fl::awake((void *)0);
+ return 0;
+ }
+ int leerWait(void) { return 0; }
diff --git a/extra/cinepaint/cinepaint-0.22.1-gcc43.patch b/extra/cinepaint/cinepaint-0.22.1-gcc43.patch
new file mode 100644
index 000000000..64ba76099
--- /dev/null
+++ b/extra/cinepaint/cinepaint-0.22.1-gcc43.patch
@@ -0,0 +1,73 @@
+Index: cinepaint-0.22-1/plug-ins/bracketing_to_hdr/br_core/ResponseSolver.hpp
+===================================================================
+--- cinepaint-0.22-1.orig/plug-ins/bracketing_to_hdr/br_core/ResponseSolver.hpp
++++ cinepaint-0.22-1/plug-ins/bracketing_to_hdr/br_core/ResponseSolver.hpp
+@@ -34,6 +34,7 @@
+
+
+ #include <fstream>
++#include <cstring>
+ #include "TNT/tnt_misc.hpp" // proof_least_square_fit()
+ #include "TNT/tnt_stopwatch.hpp"
+ #include "TNT/jama_qr.hpp" // JAMA::QR
+Index: cinepaint-0.22-1/plug-ins/bracketing_to_hdr/br_core/br_Image.cpp
+===================================================================
+--- cinepaint-0.22-1.orig/plug-ins/bracketing_to_hdr/br_core/br_Image.cpp
++++ cinepaint-0.22-1/plug-ins/bracketing_to_hdr/br_core/br_Image.cpp
+@@ -26,6 +26,7 @@
+ */
+ #include <iostream>
+ #include <cmath> // pow()
++#include <cstring>
+
+ #include "br_types.hpp" // ImageID
+ #include "br_enums.hpp" // DataType, ReportWhat
+Index: cinepaint-0.22-1/plug-ins/icc_examin/icc_examin/icc_oyranos_extern.cpp
+===================================================================
+--- cinepaint-0.22-1.orig/plug-ins/icc_examin/icc_examin/icc_oyranos_extern.cpp
++++ cinepaint-0.22-1/plug-ins/icc_examin/icc_examin/icc_oyranos_extern.cpp
+@@ -29,6 +29,7 @@
+
+ #include "icc_utils.h"
+ #include "icc_fenster.h"
++#include <cstdlib>
+
+ using namespace icc_examin_ns;
+
+Index: cinepaint-0.22-1/plug-ins/icc_examin/icc_examin/icc_speicher.h
+===================================================================
+--- cinepaint-0.22-1.orig/plug-ins/icc_examin/icc_examin/icc_speicher.h
++++ cinepaint-0.22-1/plug-ins/icc_examin/icc_examin/icc_speicher.h
+@@ -33,6 +33,8 @@
+
+ #include "icc_utils.h"
+ #include <string>
++#include <cstdlib>
++#include <cstring>
+
+ #define DBG_SPEICHER_START if(icc_debug >= 3) DBG_PROG_START
+ #define DBG_SPEICHER_ENDE if(icc_debug >= 3) DBG_PROG_ENDE
+Index: cinepaint-0.22-1/plug-ins/icc_examin/icc_examin/threads.cpp
+===================================================================
+--- cinepaint-0.22-1.orig/plug-ins/icc_examin/icc_examin/threads.cpp
++++ cinepaint-0.22-1/plug-ins/icc_examin/icc_examin/threads.cpp
+@@ -42,6 +42,7 @@
+ #include <iostream>
+ # if HAVE_PTHREAD_H
+ // Use POSIX threading...
++#include <climits>
+
+ int fl_create_thread(Fl_Thread& t, void *(*f) (void *), void* p)
+ {
+Index: cinepaint-0.22-1/plug-ins/pdf/pdf.cpp
+===================================================================
+--- cinepaint-0.22-1.orig/plug-ins/pdf/pdf.cpp
++++ cinepaint-0.22-1/plug-ins/pdf/pdf.cpp
+@@ -39,6 +39,7 @@
+
+ #include "pdf.h"
+ #include "pdf_dialog.h"
++#include <cstring>
+
+ extern "C" {
+ #include <gtk/gtk.h>
diff --git a/extra/cinepaint/cinepaint-0.22.1-multiple_parameters_named.patch b/extra/cinepaint/cinepaint-0.22.1-multiple_parameters_named.patch
new file mode 100644
index 000000000..e030593c2
--- /dev/null
+++ b/extra/cinepaint/cinepaint-0.22.1-multiple_parameters_named.patch
@@ -0,0 +1,42 @@
+--- ./plug-ins/icc_examin/icc_examin/icc_oyranos.h.orig 2008-06-27 19:28:52.000000000 +0200
++++ ./plug-ins/icc_examin/icc_examin/icc_oyranos.h 2008-06-27 19:31:34.000000000 +0200
+@@ -142,9 +142,6 @@
+
+ // colour transformations
+ ColourTransformKey erzeugeTrafo (
+- const char* eingangs_profil__geraet,
+- int byte,
+- int kanaele,
+ const char* ausgangs_profil__geraet,
+ int byte,
+ int kanaele,
+@@ -152,9 +149,6 @@
+ const char* cmm, // 4 bytes 'lcms' 'APPL'
+ int cmm_optionen); // BPC, precission
+ ColourTransformKey erzeugeTrafo (
+- const char* eingangs_profil__geraet,
+- int byte,
+- int kanaele,
+ const char* ausgangs_profil__geraet,
+ int byte,
+ int kanaele,
+@@ -163,9 +157,6 @@
+ int cmm_optionen,
+ std::list<const char*> &profile );
+ ColourTransformKey erzeugeTrafo (
+- const char* eingangs_profil__geraet,
+- int byte,
+- int kanaele,
+ const char* ausgangs_profil__geraet,
+ int byte,
+ int kanaele,
+@@ -181,9 +172,6 @@
+ std::string cmm;
+ private:
+ ColourTransformKey erzeugeSchluessel_ (
+- const char* eingangs_profil__geraet,
+- int byte,
+- int kanaele,
+ const char* ausgangs_profil__geraet,
+ int byte,
+ int kanaele,
diff --git a/extra/cinepaint/cinepaint.install b/extra/cinepaint/cinepaint.install
new file mode 100644
index 000000000..5e5cfef4d
--- /dev/null
+++ b/extra/cinepaint/cinepaint.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/extra/clamav/PKGBUILD b/extra/clamav/PKGBUILD
new file mode 100644
index 000000000..983458e51
--- /dev/null
+++ b/extra/clamav/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 109346 2011-02-08 18:56:38Z bisson $
+# Maintainer: Dale Blount <dale@archlinux.org>
+# Contributor: Gregor Ibic <gregor.ibic@intelicom.si>
+
+pkgname=clamav
+pkgver=0.97
+pkgrel=1
+pkgdesc='Anti-virus toolkit for Unix'
+arch=('i686' 'x86_64')
+depends=('bzip2' 'zlib' 'libtool')
+options=('!libtool')
+install="$pkgname.install"
+license=('GPL')
+backup=('etc/clamav/clamd.conf' 'etc/clamav/freshclam.conf' 'etc/conf.d/clamav')
+url='http://www.clamav.net/'
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'clamav'
+ 'clamav.confd'
+ 'clamav.logrotate'
+ 'config.patch')
+
+sha1sums=('68f5a6736b3f67d608c4064ef839777877f09115'
+ '7f15f0b13a1c11235bc99ef0add01efd8a442f07'
+ 'cb116cdab49a810381a515cbcfb6a6c148547f07'
+ 'be3310d2b41a68ce06e33c84ab68ffe59fdce104'
+ '701a61571788d10ff7af01597785835c6bfea918')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 < ../config.patch
+ ./configure --prefix=/usr --sysconfdir=/etc/clamav \
+ --with-dbdir=/var/lib/clamav --disable-clamav
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # make sure conf files get installed, cause make install
+ # doesn't do that if clamav is already installed upon building.
+ install -D -m644 etc/clamd.conf "$pkgdir/etc/clamav/clamd.conf"
+ install -D -m644 etc/freshclam.conf "$pkgdir/etc/clamav/freshclam.conf"
+
+ install -D -m644 ../clamav.logrotate "$pkgdir/etc/logrotate.d/clamav"
+ install -D -m644 ../clamav.confd "$pkgdir/etc/conf.d/clamav"
+ install -D -m755 ../clamav "$pkgdir/etc/rc.d/clamav"
+
+ # un-distribute databases to require freshclam
+ rm "$pkgdir"/var/lib/clamav/*.cvd
+}
diff --git a/extra/clamav/clamav b/extra/clamav/clamav
new file mode 100644
index 000000000..8e9c6afa9
--- /dev/null
+++ b/extra/clamav/clamav
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/clamav ] && . /etc/conf.d/clamav
+
+PID_FC=`pidof -o %PPID /usr/bin/freshclam`
+PID_CD=`pidof -o %PPID /usr/sbin/clamd`
+
+case "$1" in
+ start)
+ # if clamd isn't started first, notifyclamd fails at times
+ if [ "$START_CLAMD" == "yes" ]; then
+ stat_busy "Starting ClamD"
+ [ -z "$PID_CD" ] && /usr/sbin/clamd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon clamav
+ stat_done
+ fi
+ fi
+
+ # give clamd enough time to start
+ sleep 1
+
+ if [ "$START_FRESHCLAM" == "yes" ]; then
+ stat_busy "Starting FreshClam"
+ [ -z "$PID_FC" ] && /usr/bin/freshclam -p /var/run/clamav/freshclam.pid -d $FRESHCLAM_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon clamav
+ stat_done
+ fi
+ fi
+ ;;
+ stop)
+ if [ "$START_CLAMD" == "yes" ]; then
+ stat_busy "Stopping ClamD"
+ [ -n "$PID_CD" ] && kill $PID_CD &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon clamav
+ stat_done
+ fi
+ fi
+
+ if [ "$START_FRESHCLAM" == "yes" ]; then
+ stat_busy "Stopping FreshClam"
+ [ -n "$PID_FC" ] && kill $PID_FC &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon clamav
+ stat_done
+ fi
+ fi
+ ;;
+ restart)
+ $0 stop
+ # will not start if not fully stopped, so sleep
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/clamav/clamav.confd b/extra/clamav/clamav.confd
new file mode 100644
index 000000000..9cd44d9f8
--- /dev/null
+++ b/extra/clamav/clamav.confd
@@ -0,0 +1,8 @@
+# clamav startup script config options
+
+# change these to "yes" to start
+START_FRESHCLAM="no"
+START_CLAMD="no"
+
+# Options to pass to freshclam (man freshclam for more info).
+FRESHCLAM_OPTS="-c 12"
diff --git a/extra/clamav/clamav.install b/extra/clamav/clamav.install
new file mode 100644
index 000000000..9116dc394
--- /dev/null
+++ b/extra/clamav/clamav.install
@@ -0,0 +1,14 @@
+post_install() {
+ getent group clamav &>/dev/null || groupadd -r -g 64 clamav >/dev/null
+ getent passwd clamav &>/dev/null || useradd -r -u 64 -g clamav -d /dev/null -s /bin/false -c "Clam AntiVirus" clamav >/dev/null
+
+ install -d /var/{log,run}/clamav
+ chown clamav:root /var/{log,run}/clamav
+ chown -R clamav:clamav /var/lib/clamav
+}
+
+post_remove() {
+ getent passwd clamav &>/dev/null && userdel clamav >/dev/null
+ getent group clamav &>/dev/null && groupdel clamav >/dev/null
+ return 0
+}
diff --git a/extra/clamav/clamav.logrotate b/extra/clamav/clamav.logrotate
new file mode 100644
index 000000000..d1dc94dce
--- /dev/null
+++ b/extra/clamav/clamav.logrotate
@@ -0,0 +1,8 @@
+/var/log/clamav/clamd.log /var/log/clamav/freshclam.log {
+ create 644 clamav clamav
+ sharedscripts
+ postrotate
+ /bin/kill -HUP `cat /var/run/clamav/clamd.pid 2>/dev/null` 2> /dev/null || true
+ /bin/kill -HUP `cat /var/run/clamav/freshclam.pid 2>/dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/extra/clamav/config.patch b/extra/clamav/config.patch
new file mode 100644
index 000000000..a0105bd48
--- /dev/null
+++ b/extra/clamav/config.patch
@@ -0,0 +1,30 @@
+diff -arU 0 old/etc/clamd.conf new/etc/clamd.conf
+--- old/etc/clamd.conf 2010-12-02 19:31:21.773357389 +0100
++++ new/etc/clamd.conf 2010-12-02 19:31:45.873357389 +0100
+@@ -14 +14 @@
+-#LogFile /tmp/clamd.log
++LogFile /var/log/clamav/clamd.log
+@@ -34 +34 @@
+-#LogTime yes
++LogTime yes
+@@ -61 +61 @@
+-#PidFile /var/run/clamd.pid
++PidFile /var/run/clamav/clamd.pid
+@@ -65 +65 @@
+-#TemporaryDirectory /var/tmp
++TemporaryDirectory /tmp
+@@ -80 +80 @@
+-#LocalSocket /tmp/clamd.socket
++LocalSocket /var/lib/clamav/clamd.sock
+@@ -190 +190 @@
+-#User clamav
++User clamav
+diff -arU 0 old/etc/freshclam.conf new/etc/freshclam.conf
+--- old/etc/freshclam.conf 2010-12-02 19:31:21.773357389 +0100
++++ new/etc/freshclam.conf 2010-12-02 19:31:51.190024057 +0100
+@@ -17 +17 @@
+-#UpdateLogFile /var/log/freshclam.log
++UpdateLogFile /var/log/clamav/freshclam.log
+@@ -121 +121 @@
+-#NotifyClamd /path/to/clamd.conf
++NotifyClamd /etc/clamav/clamd.conf
diff --git a/extra/claws-mail-extra-plugins/PKGBUILD b/extra/claws-mail-extra-plugins/PKGBUILD
new file mode 100644
index 000000000..97451d37b
--- /dev/null
+++ b/extra/claws-mail-extra-plugins/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 112792 2011-03-06 22:47:24Z heftig $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Mildred <mildred593 at online dot fr>
+
+pkgname=claws-mail-extra-plugins
+pkgver=3.7.8
+pkgrel=2
+pkgdesc="Extra plugins for claws-mail"
+url="http://www.claws-mail.org/plugins.php?branch=EXT"
+license=('GPL3')
+arch=('i686' 'x86_64')
+depends=('claws-mail>=3.7.8')
+makedepends=('make' 'bc' 'perl>=5.10.1-5' 'libgtkhtml>=2.11.1-2' 'libnotify>=0.7'
+ 'libxml2>=2.7.6' 'curl>=7.19.7' 'libytnef>=1.5-2' 'libwebkit>=1.1.15.4-2'
+ 'pygtk>=2.16.0' 'libsoup-gnome' 'libcanberra')
+optdepends=('libgtkhtml: for gtkhtml2_viewer plugin'
+ 'perl: for perl plugin'
+ 'libnotify: for notification plugin'
+ 'libcanberra: for notification plugin'
+ 'dbus-core: for notification plugin'
+ 'libxml2: for gtkhtml2_viewer and rssyl plugins'
+ 'curl: for gtkhtml2_viewer, vcalendar, rssyl and spamreport plugins'
+ 'libarchive: for archive plugin'
+ 'libytnef: for tnef_parse plugin'
+ 'libwebkit: for the fancy webkit html plugin'
+ 'libsoup-gnome: for the fancy webkit html plugin'
+ 'python2: for python plugin')
+conflicts=('claws-gtkhtml2_viewer' 'claws-mail-acpinotifier-plugin'
+ 'sylpheed-claws-gtkhtml2-plugin' 'sylpheed-claws-rssyl-plugin'
+ 'sylpheed-claws-extra-plugins' 'claws-tnef-plugin'
+ 'claws-webkit-plugin-svn' 'claws-mayflower-plugin-svn')
+replaces=('sylpheed-claws-extra-plugins')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/project/sylpheed-claws/extra%20plugins/$pkgver/claws-mail-extra-plugins-$pkgver.tar.bz2
+ claws-mail-notification-0.26-libnotify-0.7.patch)
+md5sums=('8a67a00598262f8ca07a4af5cd43361d'
+ 'b76e1cdbff7af46d6594c34646c06fd0')
+
+build() {
+ cd "$srcdir/claws-mail-extra-plugins-$pkgver"
+
+ # fix for python2
+ export PYTHON="/usr/bin/python2"
+
+ for dir in */; do
+ [[ $dir != geolocation_plugin-* ]] && (
+ cd $dir
+
+ [[ $dir == notification_plugin-* ]] &&
+ patch -Np0 -i "$srcdir/claws-mail-notification-0.26-libnotify-0.7.patch"
+
+ ./configure --prefix=/usr --disable-static
+ make
+ )
+ done
+}
+
+package() {
+ cd "$srcdir/claws-mail-extra-plugins-$pkgver"
+ for dir in */; do
+ [[ $dir != geolocation_plugin-* ]] &&
+ make -C $dir DESTDIR="$pkgdir" install
+ done
+
+ # fix fileconflict with libical, #11485
+ rm -f "$pkgdir/usr/include/ical.h"
+}
diff --git a/extra/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch b/extra/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch
new file mode 100644
index 000000000..6159d139c
--- /dev/null
+++ b/extra/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch
@@ -0,0 +1,50 @@
+--- src/notification_popup.c
++++ src/notification_popup.c
+@@ -339,7 +339,16 @@
+ break;
+ }
+
++#ifdef NOTIFY_CHECK_VERSION
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ ppopup->notification = notify_notification_new(summary, utf8_str, NULL);
++#else
+ ppopup->notification = notify_notification_new(summary, utf8_str, NULL, NULL);
++#endif
++#else
++ ppopup->notification = notify_notification_new(summary, utf8_str, NULL, NULL);
++#endif
++
+ g_free(utf8_str);
+ if(ppopup->notification == NULL) {
+ debug_print("Notification Plugin: Failed to create a new "
+--- src/notification_trayicon.c
++++ src/notification_trayicon.c
+@@ -61,6 +61,10 @@
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ typedef struct {
+ gint count;
+ gint num_mail;
+@@ -601,8 +605,17 @@
+ summary = notification_trayicon_popup_assemble_summary();
+ utf8_str = notification_trayicon_popup_assemble_body(msginfo);
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ popup.notification = notify_notification_new(summary, utf8_str, NULL);
++#else
+ popup.notification = notify_notification_new(summary, utf8_str, NULL, NULL);
++#endif
++
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ /* notify_notification_attach_to_status_icon function was removed */
++#else
+ notify_notification_attach_to_status_icon(popup.notification, trayicon);
++#endif
+
+ g_free(summary);
+ g_free(utf8_str);
diff --git a/extra/claws-mail/PKGBUILD b/extra/claws-mail/PKGBUILD
new file mode 100644
index 000000000..9771cb21d
--- /dev/null
+++ b/extra/claws-mail/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 102090 2010-12-05 20:57:04Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=claws-mail
+pkgver=3.7.8
+pkgrel=1
+pkgdesc="A GTK+ based e-mail client."
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.claws-mail.org"
+depends=('gtk2>=2.18.5' 'gnutls>=2.8.5' 'startup-notification>=0.10' 'pilot-link>=0.12.4' 'enchant>=1.5.0-2'
+ 'gpgme>=1.2.0' 'libetpan>=1.0' 'libsm>=1.1.1' 'db' 'dbus-glib>=0.82-2' 'hicolor-icon-theme')
+makedepends=('compface' 'spamassassin' 'bogofilter' 'valgrind')
+optdepends=('python2: needed for some tools'
+ 'perl: needed for some tools'
+ 'spamassassin: adds support for spamfiltering'
+ 'bogofilter: adds support for spamfiltering'
+ 'html2ps: AUR pkg - adds support for printing html mails together with html plugins')
+replaces=('sylpheed-claws')
+provides=('claws')
+options=(!libtool)
+install=claws-mail.install
+source=(http://downloads.sourceforge.net/sourceforge/sylpheed-claws/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e8c516f67df195ee605ed5e5408b2a42')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's@^#!.*python.*@#!/usr/bin/python2@' tools/*.py
+ ./configure --prefix=/usr --disable-static \
+ --enable-enchant \
+ --enable-gnutls \
+ --enable-ldap \
+ --disable-dillo-viewer-plugin \
+ --enable-crash-dialog \
+ --enable-pgpmime-plugin \
+ --enable-spamassassin-plugin \
+ --enable-bogofilter-plugin \
+ --enable-jpilot
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # build and install extra tools
+ cd tools
+ make
+ # all executables and .conf files ; only top directory
+ find -maxdepth 1 -type f -and -perm /111 -or -name '*.conf' | while read i ; do
+ install -D -m755 ${i} \
+ ${pkgdir}/usr/lib/claws-mail/tools/${i}
+ done
+}
diff --git a/extra/claws-mail/claws-mail.install b/extra/claws-mail/claws-mail.install
new file mode 100644
index 000000000..5f3cb0109
--- /dev/null
+++ b/extra/claws-mail/claws-mail.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/extra/clisp/PKGBUILD b/extra/clisp/PKGBUILD
new file mode 100644
index 000000000..a6451270c
--- /dev/null
+++ b/extra/clisp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 90068 2010-09-07 13:27:59Z juergen $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=clisp
+pkgver=2.49
+pkgrel=1
+pkgdesc="ANSI Common Lisp interpreter, compiler and debugger"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://clisp.cons.org/"
+depends=('readline' 'libsigsegv')
+provides=('common-lisp')
+makedepends=('ffcall')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/clisp/clisp-${pkgver}.tar.bz2)
+md5sums=('1962b99d5e530390ec3829236d168649')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ unset CFLAGS CXXFLAGS
+ ./configure --prefix=/usr --with-readline --with-ffcall src
+ cd src
+ ./makemake --prefix=/usr --with-readline --with-ffcall --with-dynamic-ffi > Makefile
+ make || return 1
+ sed -i 's,http://www.lisp.org/HyperSpec/,http://www.lispworks.com/reference/HyperSpec/,g' config.lisp
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/cln/PKGBUILD b/extra/cln/PKGBUILD
new file mode 100644
index 000000000..2fb8e57f5
--- /dev/null
+++ b/extra/cln/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 108622 2011-02-02 01:45:45Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=cln
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="Class library for numbers"
+arch=('i686' 'x86_64')
+url="http://www.ginac.de/CLN/"
+license=('GPL')
+depends=('gmp')
+makedepends=('texlive-core')
+options=('!libtool')
+install=cln.install
+source=(ftp://ftpthep.physik.uni-mainz.de/pub/gnu/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ede584cb1cafa66d56f42a3cf420469d')
+sha1sums=('351506da9bd7b0b3cefd3a5424823797fb589acc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make all html pdf
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install install-html install-pdf
+}
diff --git a/extra/cln/cln.install b/extra/cln/cln.install
new file mode 100644
index 000000000..7706dea0c
--- /dev/null
+++ b/extra/cln/cln.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(cln.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/clucene/PKGBUILD b/extra/clucene/PKGBUILD
new file mode 100644
index 000000000..825cbefa3
--- /dev/null
+++ b/extra/clucene/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 20266 2008-12-01 21:26:10Z tpowa $
+# Contributor: Alois Nespor <alois.nespor@gmail.com>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=clucene
+pkgver=0.9.21b
+pkgrel=1
+pkgdesc="CLucene is a C++ port of Lucene: A high-performance, full-featured text search engine."
+arch=('i686' 'x86_64')
+url="http://clucene.sourceforge.net"
+license=('APACHE' 'LGPL')
+depends=('gcc-libs')
+makedepends=('libtool' 'autoconf' 'automake' 'doxygen')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-core-$pkgver.tar.bz2)
+options=(!libtool)
+
+build() {
+ cd ${srcdir}/$pkgname-core-$pkgver
+ # fix for some packages
+ CXXFLAGS="$CXXFLAGS -fPIC"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('ba1a8f764a2ca19c66ad907dddd88352')
diff --git a/extra/clutter-gtk/PKGBUILD b/extra/clutter-gtk/PKGBUILD
new file mode 100644
index 000000000..afb02ad17
--- /dev/null
+++ b/extra/clutter-gtk/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 92411 2010-09-29 20:04:35Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=clutter-gtk
+pkgver=0.10.8
+pkgrel=2
+pkgdesc="GTK clutter widget"
+arch=('i686' 'x86_64')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('clutter>=1.4.0' 'gtk2>=2.22.0')
+makedepends=('gobject-introspection' 'gtk-doc')
+source=(http://www.clutter-project.org/sources/${pkgname}/0.10/${pkgname}-${pkgver}.tar.bz2
+ fix-gir.patch)
+sha256sums=('7867f951568871d9f68cbe8a3644fd53d2138f725b7ba61ffc0053eb64e80814'
+ 'a134d7154f71c995ae09cd606dcf811e1d317818c13a1167b3850c3104dadbd4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-gir.patch"
+ gtkdocize
+ autoreconf -vi
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/clutter-gtk/fix-gir.patch b/extra/clutter-gtk/fix-gir.patch
new file mode 100644
index 000000000..54935aea2
--- /dev/null
+++ b/extra/clutter-gtk/fix-gir.patch
@@ -0,0 +1,93 @@
+From 4de105a2bbd201c8e60f3e8777794a4cd532afdc Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@linux.intel.com>
+Date: Tue, 28 Sep 2010 13:52:25 +0000
+Subject: build: Add common CFLAGS to the introspection scanner
+
+---
+diff --git a/clutter-gtk/Makefile.am b/clutter-gtk/Makefile.am
+index 6e267b4..cec5cce 100644
+--- a/clutter-gtk/Makefile.am
++++ b/clutter-gtk/Makefile.am
+@@ -15,6 +15,8 @@ AM_CPPFLAGS = \
+ -DCLUTTER_DISABLE_DEPRECATED \
+ $(CLUTTER_GTK_DEBUG_CFLAGS)
+
++common_cflags = $(CLUTTER_CFLAGS) $(GTK_CFLAGS)
++
+ # please, keep these lists sorted alphabetically
+ sources_c = \
+ $(srcdir)/gtk-clutter-embed.c \
+@@ -36,7 +38,7 @@ lib_LTLIBRARIES = libclutter-gtk-@CLUTTER_GTK_API_VERSION@.la
+ libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_SOURCES = $(sources_c)
+ libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LIBADD = $(CLUTTER_LIBS) $(GTK_LIBS)
+ libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LDFLAGS = $(CLUTTER_LT_LDFLAGS)
+-libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_CFLAGS = $(MAINTAINER_CFLAGS) $(GTK_CFLAGS) $(CLUTTER_CFLAGS)
++libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_CFLAGS = $(common_cflags) $(MAINTAINER_CFLAGS)
+
+ cluttergtkheadersdir = $(includedir)/clutter-1.0/clutter-gtk
+ cluttergtkheaders_HEADERS = $(sources_h) $(srcdir)/clutter-gtk.h
+@@ -48,7 +50,7 @@ GtkClutter-@CLUTTER_GTK_API_VERSION@.gir: $(INTROSPECTION_SCANNER) Makefile libc
+ $(AM_V_GEN)$(INTROSPECTION_SCANNER) -v \
+ --namespace GtkClutter --nsversion=@CLUTTER_GTK_API_VERSION@ \
+ --strip-prefix=GtkClutter \
+- $(INCLUDES) $(AM_CPPFLAGS) \
++ $(INCLUDES) $(AM_CPPFLAGS) $(common_cflags) \
+ --add-include-path=$(srcdir) --add-include=path=. \
+ --include=Clutter-1.0 \
+ --include=GdkPixbuf-2.0 \
+--
+cgit v0.8.3.1-30-gff3a
+From 0d77c7c965dcebcec0dae6b6244c3a057b398b59 Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@linux.intel.com>
+Date: Tue, 28 Sep 2010 13:58:17 +0000
+Subject: Add introspection annotations for gtk_clutter_init*
+
+---
+diff --git a/clutter-gtk/gtk-clutter-util.c b/clutter-gtk/gtk-clutter-util.c
+index 8cf4116..50bca6b 100644
+--- a/clutter-gtk/gtk-clutter-util.c
++++ b/clutter-gtk/gtk-clutter-util.c
+@@ -603,8 +603,9 @@ gtk_clutter_texture_set_from_icon_name (ClutterTexture *texture,
+
+ /**
+ * gtk_clutter_init:
+- * @argc: pointer to the arguments count, or %NULL
+- * @argv: pointer to the arguments vector, or %NULL
++ * @argc: (inout): pointer to the arguments count, or %NULL
++ * @argv: (array length=argc) (inout) (allow-none): pointer to the
++ * arguments vector, or %NULL
+ *
+ * This function should be called instead of clutter_init() and
+ * gtk_init().
+@@ -633,17 +634,18 @@ gtk_clutter_init (int *argc,
+
+ /**
+ * gtk_clutter_init_with_args:
+- * @argc: a pointer to the number of command line arguments.
+- * @argv: a pointer to the array of command line arguments.
+- * @parameter_string: a string which is displayed in
+- * the first line of <option>--help</option> output, after
+- * <literal><replaceable>programname</replaceable> [OPTION...]</literal>
+- * @entries: a %NULL-terminated array of #GOptionEntry<!-- -->s
+- * describing the options of your program
+- * @translation_domain: a translation domain to use for translating
+- * the <option>--help</option> output for the options in @entries
+- * with gettext(), or %NULL
+- * @error: a return location for errors
++ * @argc: (inout): a pointer to the number of command line arguments.
++ * @argv: (array length=argc) (inout) (allow-none): a pointer to the array
++ * of command line arguments.
++ * @parameter_string: (allow-none): a string which is displayed in
++ * the first line of <option>--help</option> output, after
++ * <literal><replaceable>programname</replaceable> [OPTION...]</literal>
++ * @entries: (allow-none): a %NULL-terminated array of #GOptionEntry<!-- -->s
++ * describing the options of your program, or %NULL
++ * @translation_domain: (allow-none): a translation domain to use for
++ * translating the <option>--help</option> output for the options
++ * in @entries with gettext(), or %NULL
++ * @error: (allow-none): a return location for errors, or %NULL
+ *
+ * This function should be called instead of clutter_init() and
+ * gtk_init_with_args().
+--
+cgit v0.8.3.1-30-gff3a
diff --git a/extra/clutter/PKGBUILD b/extra/clutter/PKGBUILD
new file mode 100644
index 000000000..0cbc434db
--- /dev/null
+++ b/extra/clutter/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 111588 2011-02-27 19:49:35Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=clutter
+pkgver=1.6.6
+pkgrel=1
+pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces"
+arch=('i686' 'x86_64')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('gdk-pixbuf2' 'json-glib' 'atk' 'pango' 'mesa' 'libxcomposite' 'libxi')
+makedepends=('gobject-introspection' 'gtk-doc')
+source=(http://www.clutter-project.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8499fef3019c00bb06354ebe6d3277d26c84a8aa1d964b7edf6d327cd4d9d886')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/cmake/PKGBUILD b/extra/cmake/PKGBUILD
new file mode 100644
index 000000000..b2124ff83
--- /dev/null
+++ b/extra/cmake/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 110150 2011-02-16 19:31:21Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Konstantinos Pachnis <kpachnis@mes-direct.com>
+
+pkgname=cmake
+pkgver=2.8.4
+pkgrel=1
+pkgdesc="A cross-platform open-source make system"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.cmake.org"
+depends=('expat' 'curl' 'gcc-libs' 'shared-mime-info')
+makedepends=('qt')
+optdepends=('qt: cmake-gui')
+install="${pkgname}.install"
+source=("http://www.cmake.org/files/v2.8/${pkgname}-${pkgver}.tar.gz")
+md5sums=('209b7d1d04b2e00986538d74ba764fcf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./bootstrap --prefix=/usr \
+ --mandir=/share/man \
+ --docdir=/share/doc/cmake \
+ --system-libs \
+ --qt-gui \
+ --parallel=2
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ vimpath="$pkgdir/usr/share/vim/vimfiles"
+ install -Dm644 Docs/cmake-indent.vim ${vimpath}/indent/cmake-indent.vim
+ install -Dm644 Docs/cmake-syntax.vim ${vimpath}/syntax/cmake-syntax.vim
+ install -Dm644 Docs/cmake-mode.el ${pkgdir}/usr/share/emacs/site-lisp/cmake-mode.el
+ install -Dm644 Copyright.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/cmake/cmake.install b/extra/cmake/cmake.install
new file mode 100644
index 000000000..7c8a8bd2b
--- /dev/null
+++ b/extra/cmake/cmake.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/cmatrix/PKGBUILD b/extra/cmatrix/PKGBUILD
new file mode 100644
index 000000000..ad4ad301c
--- /dev/null
+++ b/extra/cmatrix/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 53887 2009-10-03 18:54:48Z eric $
+# Contributor: john
+
+pkgname=cmatrix
+pkgver=1.2a
+pkgrel=5
+pkgdesc="Let you see the matrix code in your console"
+arch=('i686' 'x86_64')
+url="http://www.asty.org/cmatrix/"
+license=('GPL')
+depends=('ncurses' 'fontconfig')
+install=$pkgname.install
+source=(http://www.asty.org/cmatrix/dist/$pkgname-$pkgver.tar.gz)
+md5sums=('ebfb5733104a258173a9ccf2669968a1')
+sha1sums=('ca078c10322a47e327f07a44c9a42b52eab5ad93')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ install -Dm644 mtx.pcf "$pkgdir/usr/share/fonts/misc/mtx.pcf" || return 1
+ install -Dm644 matrix.fnt "$pkgdir/usr/share/kbd/consolefonts/matrix.fnt" || return 1
+ install -m644 matrix.psf.gz "$pkgdir/usr/share/kbd/consolefonts" || return 1
+}
diff --git a/extra/cmatrix/cmatrix.install b/extra/cmatrix/cmatrix.install
new file mode 100644
index 000000000..c46fe4469
--- /dev/null
+++ b/extra/cmatrix/cmatrix.install
@@ -0,0 +1,3 @@
+post_install() {
+ fc-cache
+}
diff --git a/extra/cmt/PKGBUILD b/extra/cmt/PKGBUILD
new file mode 100644
index 000000000..764b691b5
--- /dev/null
+++ b/extra/cmt/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 49841 2009-08-16 18:10:08Z jgc $
+#Maintainer: Damir Perisa <damir.perisa@bluewin.ch>
+#Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=cmt
+pkgver=1.16
+pkgrel=2
+pkgdesc="CMT for LADSPA"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.ladspa.org"
+depends=('ladspa' 'gcc-libs')
+groups=('ladspa-plugins')
+source=(http://www.ladspa.org/download/${pkgname}_src_${pkgver}.tgz)
+md5sums=('15a875e5aaf79c209c223babfb41cb1c')
+
+build() {
+ cd "${srcdir}/${pkgname}/src"
+ sed -e "/^CFLAGS/ s/-O3/${CFLAGS}/" \
+ -e 's|-Werror||g' \
+ -i makefile || return 1
+ make || return 1
+ install -m755 -d "${pkgdir}/usr/lib/ladspa"
+ install -m755 ../plugins/cmt.so "${pkgdir}/usr/lib/ladspa/" || return 1
+}
diff --git a/extra/cmus/PKGBUILD b/extra/cmus/PKGBUILD
new file mode 100644
index 000000000..b58abb66d
--- /dev/null
+++ b/extra/cmus/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 111610 2011-02-27 20:41:37Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=cmus
+pkgver=2.3.4
+pkgrel=2
+pkgdesc="A very feature-rich ncurses-based music player"
+arch=('i686' 'x86_64')
+url="http://cmus.sourceforge.net/"
+license=('GPL')
+depends=('ncurses')
+makedepends=('libao' 'libmpcdec' 'ffmpeg' 'flac' 'libmad' 'faad2' 'libmodplug' 'libvorbis' 'libpulse' 'wavpack')
+optdepends=('alsa-lib: for ALSA output plugin support'
+ 'libao: for AO output plugin support'
+ 'libpulse: for PulseAudio output plugin support'
+ 'ffmpeg: for ffmpeg input plugin support'
+ 'libmodplug: for modplug input plugin support'
+ 'faad2: for input AAC plugin support'
+ 'libmad: for mp3 input plugin support'
+ 'libmpcdec: for musepack input plugin support'
+ 'wavpack: for wavpack input plugin support'
+ 'libvorbis: for vorbis input plugin support'
+ 'flac: for flac input plugin support')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-v$pkgver.tar.bz2")
+md5sums=('10629719fd0bff2d3c322ac24834af35')
+sha1sums=('d980781c47937da6c3faf910043967e28b9450d6')
+
+build() {
+ cd "$srcdir/$pkgname-v$pkgver"
+ sed -i 's|ffmpeg/avcodec.h|libavcodec/avcodec.h|' configure ffmpeg.c
+ sed -i 's|ffmpeg/avformat.h|libavformat/avformat.h|' ffmpeg.c
+ sed -i 's|ffmpeg/avio.h|libavformat/avio.h|' ffmpeg.c
+ ./configure prefix=/usr CONFIG_ARTS=n
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-v$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D -m 644 contrib/_cmus "$pkgdir/usr/share/zsh/site-functions/_cmus"
+}
diff --git a/extra/compface/LICENSE b/extra/compface/LICENSE
new file mode 100644
index 000000000..4e8119b8f
--- /dev/null
+++ b/extra/compface/LICENSE
@@ -0,0 +1,94 @@
+Extracted from Debian GNU/Linux's package:
+
+[...]
+
+Compface - 48x48x1 image compression and decompression
+Copyright (c) James Ashton 1990.
+Written 89/11/11
+
+Feel free to distribute this source at will so long as the above
+message and this message are included in full.
+
+This copyright message dosn't specify whether modified version is allowed,
+but the following mail from the author does allow them:
+
+> From: James Ashton <James.Ashton@syseng.anu.edu.au>
+> Subject: Re: Bug#72019: compface not DFSG
+> Date: Wed, 20 Sep 2000 09:48:34 +1100 (EST)
+>
+> >On Tue, Sep 19, 2000 at 08:58:43AM -0400, Raul Miller wrote:
+> >> Package: compface
+> >> Version: 1989.11.11-17.1
+> >> Severity: important
+> >>
+> >> compface's copyright doesn't grant permission to
+> >> distribute modified versions
+> >
+> >The compface copyright says:
+> >
+> >Feel free to distribute this source at will so long as the above
+> >message and this message are included in full.
+> >
+> >
+> >Which could be interpretated as it is allowed to distribute modified
+> >versions of it. James Ashton is the original author, would you care to
+> >clairify the matter, mr Ashton?
+>
+> I don't mind modified versions being distributed. Please included the
+> original copyright notices as specified and also prominently note, if
+> it is a modified version, the nature and author(s) of the
+> modifications.
+> --
+> James Ashton VK1XJA System Administrator
+> http://wwwsyseng.anu.edu.au/~jaa Department of Systems Engineering
+> Voice +61 2 6279 8675 Research School of Information Sciences and Engineering
+> FAX +61 2 6279 8688 Australian National University
+> Email James.Ashton@anu.edu.au Canberra ACT 0200 Australia
+>
+
+Another peoblem with the copyright of this source code is that the
+copyright message in the source files and in the readme file is conflicting.
+The following mail from the author should clear that up:
+
+> From: James Ashton <James.Ashton@syseng.anu.edu.au>
+> Subject: Re: libcompface license (again)
+> Date: Thu, 22 Feb 2001 09:32:23 +1100 (EST)
+>
+> >Hi,
+> >I'm maintaining the debian pkg of your compface lib, and I've talket to you
+> >before about it's license. And now ouer legal people have found another
+> >problem. The sourcefiles contains a diffrent copyright notice than the
+> >redmefile. They say:
+> >
+
+/*
+ * Compface - 48x48x1 image compression and decompression
+ *
+ * Copyright (c) James Ashton - Sydney University - June 1990.
+ *
+ * Written 11th November 1989.
+ *
+ * Permission is given to distribute these sources, as long as the
+ * copyright messages are not removed, and no monies are exchanged.
+ *
+ * No responsibility is taken for any errors on inaccuracies inherent
+ * either to the comments or the code of this program, but if reported
+ * to me, then an attempt will be made to fix them.
+ */
+
+> >
+> >The problem is the last part "no monies are exchanged". As you probably=20
+> >know we do allow third party companies to produce debian CDs and sell them.
+> >So this statement would inmply that we can't have your libcompface in
+> debian
+> >at all.
+>
+> I'm happy to remove the phrase no monies are exchanged' from the
+> source and allow distribution as per the README file. Do you need more
+> from me than just this email?
+> --
+> James Ashton VK1XJA System Administrator
+> http://wwwsyseng.anu.edu.au/~jaa Department of Systems Engineering
+> Voice +61 2 6125 8675 Research School of Information Sciences and Engineering
+> FAX +61 2 6125 8660 Australian National University
+> Email James.Ashton@anu.edu.au Canberra ACT 0200 Australia
diff --git a/extra/compface/PKGBUILD b/extra/compface/PKGBUILD
new file mode 100644
index 000000000..dd108a6df
--- /dev/null
+++ b/extra/compface/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 32263 2009-03-29 22:19:00Z eric $
+# Maintainer: simo <simo@archlinux.org>
+# Contributor: Manolis Tzanidakis
+#
+
+pkgname=compface
+pkgver=1.5.2
+pkgrel=2
+pkgdesc="Utils & libs to convert from/to X-Face format."
+arch=(i686 x86_64)
+url="http://ftp.xemacs.org/pub/xemacs/aux/"
+license=('custom')
+depends=('glibc')
+source=($url/$pkgname-$pkgver.tar.gz LICENSE)
+md5sums=('62f4f79c0861ad292ba3cf77b4c48319' '27a0d5a4d695e68b4d3eebe17db77189')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make BINDIR=$pkgdir/usr/bin LIBDIR=$pkgdir/usr/lib MANDIR=$pkgdir/usr/share/man \
+ INCLUDEDIR=$pkgdir/usr/include install || return 1
+ install -D -m644 ../LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/compface/compface-1.4-errno.patch.bz2 b/extra/compface/compface-1.4-errno.patch.bz2
new file mode 100644
index 000000000..bfc47425d
--- /dev/null
+++ b/extra/compface/compface-1.4-errno.patch.bz2
Binary files differ
diff --git a/extra/conky/PKGBUILD b/extra/conky/PKGBUILD
new file mode 100644
index 000000000..b9468817f
--- /dev/null
+++ b/extra/conky/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 102220 2010-12-06 21:41:49Z bisson $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Partha Chowdhury <kira.laucas@gmail.com>
+
+pkgname=conky
+pkgver=1.8.1
+pkgrel=2
+pkgdesc='An advanced, highly configurable system monitor for X based on torsmo'
+arch=('i686' 'x86_64')
+url='http://conky.sourceforge.net/'
+license=('custom')
+replaces=('torsmo')
+depends=('alsa-lib' 'libxml2' 'curl' 'wireless_tools' 'libxft' 'glib2' 'libxdamage' 'imlib2')
+makedepends=('pkg-config')
+backup=('etc/conky/conky.conf' 'etc/conky/conky_no_x11.conf')
+source=("http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+ 'current-power.patch')
+
+sha1sums=('06bbe9b7eed8603fa7a971b27c5c61f38424ac6f'
+ '2eeef0cc5a0b612826b2a7f0b43b7a3b7e10bf0b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 < ../current-power.patch # See FS#21984
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-wlan \
+ --enable-rss \
+ --enable-ibm \
+ --enable-imlib2 \
+ --disable-lua
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/conky/current-power.patch b/extra/conky/current-power.patch
new file mode 100644
index 000000000..1e7cf5a23
--- /dev/null
+++ b/extra/conky/current-power.patch
@@ -0,0 +1,12 @@
+diff -aur old/src/linux.c new/src/linux.c
+--- old/src/linux.c 2010-10-05 23:29:36.000000000 +0200
++++ new/src/linux.c 2010-12-06 22:18:59.346667183 +0100
+@@ -1671,6 +1671,8 @@
+ the tradition! */
+ else if (strncmp(buf, "POWER_SUPPLY_CURRENT_NOW=", 25) == 0)
+ sscanf(buf, "POWER_SUPPLY_CURRENT_NOW=%d", &present_rate);
++ else if (strncmp(buf, "POWER_SUPPLY_POWER_NOW=", 23) == 0)
++ sscanf(buf, "POWER_SUPPLY_POWER_NOW=%d", &present_rate);
+ else if (strncmp(buf, "POWER_SUPPLY_ENERGY_NOW=", 24) == 0)
+ sscanf(buf, "POWER_SUPPLY_ENERGY_NOW=%d", &remaining_capacity);
+ else if (strncmp(buf, "POWER_SUPPLY_ENERGY_FULL=", 25) == 0)
diff --git a/extra/consolekit/PKGBUILD b/extra/consolekit/PKGBUILD
new file mode 100644
index 000000000..79f9d831a
--- /dev/null
+++ b/extra/consolekit/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 108600 2011-02-01 20:16:14Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=consolekit
+pkgver=0.4.3
+pkgrel=2
+pkgdesc="A framework for defining and tracking users, login sessions, and seats"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/ConsoleKit"
+license=('GPL')
+depends=('polkit>=0.99' 'zlib' 'libx11>=1.4.1' 'dbus-glib>=0.92')
+makedepends=('pkgconfig' 'xmlto' 'docbook-xsl')
+options=(!libtool)
+source=(http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${pkgver}.tar.bz2
+ pam-foreground-compat.ck consolekit.logrotate)
+md5sums=('4c39c6eacc75334b890f21eead1d2945'
+ 'a8a4de71d9b0549b8143e5f6c2a36fc7'
+ '6fefa451d9fe2fc6d6269629d3529793')
+
+build() {
+ cd "${srcdir}/ConsoleKit-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/ConsoleKit \
+ --enable-pam-module \
+ --enable-docbook-docs
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 "${srcdir}/pam-foreground-compat.ck" "${pkgdir}/usr/lib/ConsoleKit/run-session.d/"
+
+ # install the logrotate config
+ install -D -m644 ${srcdir}/consolekit.logrotate ${pkgdir}/etc/logrotate.d/consolekit
+}
diff --git a/extra/consolekit/consolekit.logrotate b/extra/consolekit/consolekit.logrotate
new file mode 100644
index 000000000..7c5346ef8
--- /dev/null
+++ b/extra/consolekit/consolekit.logrotate
@@ -0,0 +1,5 @@
+/var/log/ConsoleKit/history {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/extra/consolekit/pam-foreground-compat.ck b/extra/consolekit/pam-foreground-compat.ck
new file mode 100644
index 000000000..7f6b122d5
--- /dev/null
+++ b/extra/consolekit/pam-foreground-compat.ck
@@ -0,0 +1,16 @@
+#!/bin/sh
+TAGDIR=/var/run/console
+
+[ -n "$CK_SESSION_USER_UID" ] || exit 1
+
+TAGFILE="$TAGDIR/`getent passwd $CK_SESSION_USER_UID | cut -f 1 -d:`"
+
+if [ "$1" = "session_added" ]; then
+ mkdir -p "$TAGDIR"
+ echo "$CK_SESSION_ID" >> "$TAGFILE"
+fi
+
+if [ "$1" = "session_removed" ] && [ -e "$TAGFILE" ]; then
+ sed -i "\%^$CK_SESSION_ID\$%d" "$TAGFILE"
+ [ -s "$TAGFILE" ] || rm -f "$TAGFILE"
+fi
diff --git a/extra/convmv/PKGBUILD b/extra/convmv/PKGBUILD
new file mode 100644
index 000000000..4601b7cf3
--- /dev/null
+++ b/extra/convmv/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 26708 2009-02-11 17:18:18Z tpowa $
+# Maintainer : Aaron Griffin <aaron@archlinux.org>
+
+pkgname=convmv
+pkgver=1.14
+pkgrel=1
+pkgdesc="Tool for converting encodings on filesystems"
+license=('GPL2')
+arch=(i686 x86_64)
+url="http://j3e.de/linux/convmv/"
+depends=('perl')
+source=(http://j3e.de/linux/convmv/$pkgname-$pkgver.tar.gz)
+
+build()
+{
+ cd $startdir/src/$pkgname-$pkgver
+ make
+ make PREFIX=$startdir/pkg/usr install || return 1
+}
+md5sums=('d41238051c13b2e6c0cc2310a8f69d68')
diff --git a/extra/cowsay/ChangeLog b/extra/cowsay/ChangeLog
new file mode 100644
index 000000000..ca646a273
--- /dev/null
+++ b/extra/cowsay/ChangeLog
@@ -0,0 +1,7 @@
+2008-12-08 Eric Belanger <eric@archlinux.org>
+
+ * cowsay 3.03-6
+ * Added license
+ * FHS man pages
+ * Added arch tag
+ * Added ChangeLog
diff --git a/extra/cowsay/PKGBUILD b/extra/cowsay/PKGBUILD
new file mode 100644
index 000000000..7f71b15e7
--- /dev/null
+++ b/extra/cowsay/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 21051 2008-12-09 04:32:04Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=cowsay
+pkgver=3.03
+pkgrel=6
+pkgdesc="Add speaking and thinking cows (and a few other creatures) to anything"
+arch=('i686' 'x86_64')
+url="http://www.nog.net/~tony/warez/cowsay.shtml"
+license=('PerlArtistic' 'GPL')
+depends=('perl')
+source=(http://www.nog.net/~tony/warez/${pkgname}-${pkgver}.tar.gz cowsay.patch)
+md5sums=('b29169797359420dadb998079021a494' '7091f9a6d97006299a1f27a665b638b6')
+sha1sums=('cc65a9b13295c87df94a58caa8a9176ce5ec4a27' '0da25fd2f80de4d92096c5d1ece2c6dcc05bea75')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p1 < ../cowsay.patch
+ sed -i 's|/man/|/share/man/|' install.sh
+ echo "${pkgdir}/usr" | ./install.sh
+}
diff --git a/extra/cowsay/cowsay.patch b/extra/cowsay/cowsay.patch
new file mode 100644
index 000000000..299d52895
--- /dev/null
+++ b/extra/cowsay/cowsay.patch
@@ -0,0 +1,11 @@
+--- cowsay-3.03/install.sh 1999-11-01 21:19:21.000000000 +0100
++++ cowsay-3.03-new/install.sh 2003-08-15 17:14:23.000000000 +0200
+@@ -67,7 +67,7 @@
+ echo Okay, time to install this puppy.
+
+ echo s,%BANGPERL%,!$usethisperl,\; > install.pl
+-echo s,%PREFIX%,$PREFIX,\; >> install.pl
++echo s,%PREFIX%,/usr,\; >> install.pl
+ set -x
+ mkdir -p $PREFIX/bin || (mkdir $PREFIX; mkdir $PREFIX/bin)
+ $usethisperl -p install.pl cowsay > $PREFIX/bin/cowsay
diff --git a/extra/cpio/PKGBUILD b/extra/cpio/PKGBUILD
new file mode 100644
index 000000000..9f34c4500
--- /dev/null
+++ b/extra/cpio/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 76085 2010-04-07 18:00:10Z tpowa $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=cpio
+pkgver=2.11
+pkgrel=2
+pkgdesc="A tool to copy files into or out of a cpio or tar archive"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnu.org/software/cpio"
+depends=('glibc')
+source=(ftp://ftp.gnu.org/gnu/cpio/cpio-${pkgver}.tar.gz)
+install=cpio.install
+md5sums=('1112bb6c45863468b5496ba128792f6c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ rm -f ${pkgdir}/usr/bin/mt ${pkgdir}/pkg/usr/share/man/man1/mt.1
+ mv ${pkgdir}/usr/bin ${pkgdir}/bin
+ rm -rf ${pkgdir}/usr/libexec
+ # remove mt manpage it conflicts with mt-st from extra
+ rm $pkgdir/usr/share/man/man1/mt.1 || return 1
+ # remove infodir
+ rm $pkgdir/usr/share/info/dir
+}
diff --git a/extra/cpio/cpio-gcc43.patch b/extra/cpio/cpio-gcc43.patch
new file mode 100644
index 000000000..0057b8da4
--- /dev/null
+++ b/extra/cpio/cpio-gcc43.patch
@@ -0,0 +1,139 @@
+http://bugs.gentoo.org/198817
+
+from upstream gnulib for "extern inline" changes
+
+diff --git a/lib/argp-fmtstream.h b/lib/argp-fmtstream.h
+index 93fa651..50f1387 100644
+--- a/lib/argp-fmtstream.h
++++ b/lib/argp-fmtstream.h
+@@ -1,5 +1,5 @@
+ /* Word-wrapping and line-truncating streams.
+- Copyright (C) 1997, 2006 Free Software Foundation, Inc.
++ Copyright (C) 1997, 2006-2007 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Written by Miles Bader <miles@gnu.ai.mit.edu>.
+
+@@ -134,6 +134,7 @@ extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs,
+ const char *__fmt, ...)
+ __attribute__ ((__format__ (printf, 2, 3)));
+
++#if _LIBC || !defined __OPTIMIZE__
+ extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+ extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+
+@@ -144,6 +145,7 @@ extern size_t __argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len);
+ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len);
++#endif
+
+ /* Access macros for various bits of state. */
+ #define argp_fmtstream_lmargin(__fs) ((__fs)->lmargin)
+@@ -153,6 +155,7 @@ extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
+ #define __argp_fmtstream_rmargin argp_fmtstream_rmargin
+ #define __argp_fmtstream_wmargin argp_fmtstream_wmargin
+
++#if _LIBC || !defined __OPTIMIZE__
+ /* Set __FS's left margin to LMARGIN and return the old value. */
+ extern size_t argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
+ size_t __lmargin);
+@@ -174,6 +177,7 @@ extern size_t __argp_fmtstream_set_wmargin (argp_fmtstream_t __fs,
+ /* Return the column number of the current output point in __FS. */
+ extern size_t argp_fmtstream_point (argp_fmtstream_t __fs);
+ extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs);
++#endif
+
+ /* Internal routines. */
+ extern void _argp_fmtstream_update (argp_fmtstream_t __fs);
+@@ -197,7 +201,28 @@ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
+ #endif
+
+ #ifndef ARGP_FS_EI
+-#define ARGP_FS_EI extern inline
++# ifdef __GNUC__
++ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
++ inline semantics, unless -fgnu89-inline is used. It defines a macro
++ __GNUC_STDC_INLINE__ to indicate this situation or a macro
++ __GNUC_GNU_INLINE__ to indicate the opposite situation.
++ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
++ semantics but warns, unless -fgnu89-inline is used:
++ warning: C99 inline functions are not supported; using GNU89
++ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
++ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
++# if defined __GNUC_STDC_INLINE__
++# define ARGP_FS_EI inline
++# elif defined __GNUC_GNU_INLINE__
++# define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__))
++# else
++# define ARGP_FS_EI extern inline
++# endif
++# else
++ /* With other compilers, assume the ISO C99 meaning of 'inline', if
++ the compiler supports 'inline' at all. */
++# define ARGP_FS_EI inline
++# endif
+ #endif
+
+ ARGP_FS_EI size_t
+diff --git a/lib/argp.h b/lib/argp.h
+index fb11de6..aa76eb4 100644
+--- a/lib/argp.h
++++ b/lib/argp.h
+@@ -520,9 +520,11 @@ extern void __argp_state_help (const struct argp_state *__restrict __state,
+ FILE *__restrict __stream,
+ unsigned int __flags);
+
++#if _LIBC || !defined __USE_EXTERN_INLINES
+ /* Possibly output the standard usage message for ARGP to stderr and exit. */
+ extern void argp_usage (const struct argp_state *__state);
+ extern void __argp_usage (const struct argp_state *__state);
++#endif
+
+ /* If appropriate, print the printf string FMT and following args, preceded
+ by the program name and `:', to stderr, and followed by a `Try ... --help'
+@@ -551,6 +553,7 @@ extern void __argp_failure (const struct argp_state *__restrict __state,
+ const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 4, 5)));
+
++#if _LIBC || !defined __USE_EXTERN_INLINES
+ /* Returns true if the option OPT is a valid short option. */
+ extern int _option_is_short (const struct argp_option *__opt) __THROW;
+ extern int __option_is_short (const struct argp_option *__opt) __THROW;
+@@ -559,6 +562,7 @@ extern int __option_is_short (const struct argp_option *__opt) __THROW;
+ options array. */
+ extern int _option_is_end (const struct argp_option *__opt) __THROW;
+ extern int __option_is_end (const struct argp_option *__opt) __THROW;
++#endif
+
+ /* Return the input field for ARGP in the parser corresponding to STATE; used
+ by the help routines. */
+@@ -579,7 +583,28 @@ extern void *__argp_input (const struct argp *__restrict __argp,
+ # endif
+
+ # ifndef ARGP_EI
+-# define ARGP_EI extern __inline__
++# ifdef __GNUC__
++ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
++ inline semantics, unless -fgnu89-inline is used. It defines a macro
++ __GNUC_STDC_INLINE__ to indicate this situation or a macro
++ __GNUC_GNU_INLINE__ to indicate the opposite situation.
++ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
++ semantics but warns, unless -fgnu89-inline is used:
++ warning: C99 inline functions are not supported; using GNU89
++ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
++ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
++# if defined __GNUC_STDC_INLINE__
++# define ARGP_EI __inline__
++# elif defined __GNUC_GNU_INLINE__
++# define ARGP_EI extern __inline__ __attribute__ ((__gnu_inline__))
++# else
++# define ARGP_EI extern __inline__
++# endif
++# else
++ /* With other compilers, assume the ISO C99 meaning of 'inline', if
++ the compiler supports 'inline' at all. */
++# define ARGP_EI inline
++# endif
+ # endif
+
+ ARGP_EI void
diff --git a/extra/cpio/cpio.install b/extra/cpio/cpio.install
new file mode 100644
index 000000000..e5502ca96
--- /dev/null
+++ b/extra/cpio/cpio.install
@@ -0,0 +1,21 @@
+infodir=/usr/share/info
+filelist=(cpio.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/extra/cpufrequtils/PKGBUILD b/extra/cpufrequtils/PKGBUILD
new file mode 100644
index 000000000..d5b92095b
--- /dev/null
+++ b/extra/cpufrequtils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 85780 2010-07-19 14:39:52Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: phrakture <aaronmgriffin+gmail+com>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+pkgname=cpufrequtils
+pkgver=008
+pkgrel=1
+pkgdesc="Userspace tools for the kernel cpufreq subsystem"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html"
+license=('GPL')
+depends=('sysfsutils')
+backup=('etc/conf.d/cpufreq')
+source=(http://www.kernel.org/pub/linux/utils/kernel/cpufreq/${pkgname}-${pkgver}.tar.bz2
+ cpufreq.rcd
+ cpufreq.confd)
+options=(!libtool)
+md5sums=('c59b71c044d463896f3247e8dd83dd7e'
+ '7f2b5085df44d2df3e7c2d0b9f6dab08'
+ 'baae1f2abffc6bef2bd32a8dd8263c09')
+
+build()
+{
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make -j1 || return 1
+ make INSTALL="/bin/install -c" mandir=/usr/share/man DESTDIR="${pkgdir}" install || return 1
+
+ install -D -m755 ${srcdir}/cpufreq.rcd "${pkgdir}/etc/rc.d/cpufreq" || return 1
+ install -D -m644 ${srcdir}/cpufreq.confd "${pkgdir}/etc/conf.d/cpufreq" || return 1
+}
diff --git a/extra/cpufrequtils/cpufreq.confd b/extra/cpufrequtils/cpufreq.confd
new file mode 100644
index 000000000..218909748
--- /dev/null
+++ b/extra/cpufrequtils/cpufreq.confd
@@ -0,0 +1,14 @@
+#configuration for cpufreq control
+
+# valid governors:
+# ondemand, performance, powersave,
+# conservative, userspace
+#governor="ondemand"
+
+# limit frequency range (optional)
+# valid suffixes: Hz, kHz (default), MHz, GHz, THz
+#min_freq="2.25GHz"
+#max_freq="3GHz"
+
+# use freq to set up the exact cpu frequency using it with userspace governor
+#freq=
diff --git a/extra/cpufrequtils/cpufreq.rcd b/extra/cpufrequtils/cpufreq.rcd
new file mode 100644
index 000000000..9bc19b117
--- /dev/null
+++ b/extra/cpufrequtils/cpufreq.rcd
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/cpufreq ] && . /etc/conf.d/cpufreq
+
+case "$1" in
+ start)
+ stat_busy "Setting cpufreq governing rules"
+
+ params=""
+ if [ -n "$governor" ]; then
+ mod="cpufreq_$governor"
+ params="-g $governor"
+ grep -qw "$governor" /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors || modprobe -q $mod
+ if [ $? -eq 0 ]; then
+ if [ "$min_freq" != "" ]; then
+ params="$params -d $min_freq"
+ fi
+ if [ "$max_freq" != "" ]; then
+ params="$params -u $max_freq"
+ fi
+ else
+ stat_busy " Cannot load governor module '$governor'"
+ stat_fail
+ exit
+ fi
+ fi
+
+ if [ "$params" != "" ]; then
+ CPUS=$(sed -ne 's/^processor.* \([0-9]\+\)$/\1/p' /proc/cpuinfo)
+ stat_append ", cpu"
+ for cpu in $CPUS; do
+ stat_append " $cpu"
+ cpufreq-set -c $cpu $params
+ if [ "$freq" != "" ]; then
+ cpufreq-set -c $cpu -f $freq
+ fi
+ done
+ stat_done
+ else
+ stat_busy " Invalid configuration in /etc/conf.d/cpufreq"
+ stat_fail
+ fi
+ ;;
+ stop)
+ # nothing to do
+ ;;
+ restart)
+ $0 start
+ ;;
+ set)
+ # TODO: make callable... "cpufreq set 800MHz"
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/crypto++/PKGBUILD b/extra/crypto++/PKGBUILD
new file mode 100644
index 000000000..855573288
--- /dev/null
+++ b/extra/crypto++/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 112753 2011-03-06 14:15:54Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+# Contributor: jlvsimoes <jlvsimoes@oninet.pt>
+
+pkgname=crypto++
+pkgver=5.6.1
+_srcver=561
+pkgrel=2
+pkgdesc="A free C++ class library of cryptographic schemes."
+arch=('i686' 'x86_64')
+url="http://www.cryptopp.com/"
+license=('custom')
+depends=('gcc-libs')
+makedepends=('unzip')
+source=(http://www.cryptopp.com/cryptopp${_srcver}.zip
+ libcrypto++.pc)
+md5sums=('96cbeba0907562b077e26bcffb483828'
+ '2337c6edbc552d9142cae8e0854715e7')
+
+build() {
+ cd ${srcdir}
+ sed -i -e 's/^CXXFLAGS/#CXXFLAGS/' GNUmakefile
+ export CXXFLAGS="${CXXFLAGS} -DNDEBUG -fPIC"
+ make -f GNUmakefile
+ make libcryptopp.so
+ install -d ${pkgdir}/usr/{lib/pkgconfig,include/cryptopp}
+ install -m644 *.h ${pkgdir}/usr/include/cryptopp/
+ install -m644 libcryptopp.a ${pkgdir}/usr/lib/libcryptopp.a
+ install -m644 libcryptopp.so ${pkgdir}/usr/lib/libcryptopp.so
+ install -m644 ${srcdir}/libcrypto++.pc "${pkgdir}/usr/lib/pkgconfig/libcrypto++.pc"
+ install -D -m644 License.txt ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/crypto++/libcrypto++.pc b/extra/crypto++/libcrypto++.pc
new file mode 100644
index 000000000..698d761a7
--- /dev/null
+++ b/extra/crypto++/libcrypto++.pc
@@ -0,0 +1,11 @@
+# Written by Alexander Rødseth <rodseth@gmail.com>
+
+prefix=/usr
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: libcrypto++-5.6.1
+Description: Class library of cryptographic schemes
+Version: 5.6.1
+Libs: -L${libdir} -lcryptopp
+Cflags: -I${includedir}
diff --git a/extra/cscope/PKGBUILD b/extra/cscope/PKGBUILD
new file mode 100644
index 000000000..b480a8166
--- /dev/null
+++ b/extra/cscope/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 67119 2010-02-03 17:32:32Z andrea $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=cscope
+pkgver=15.7a
+pkgrel=2
+pkgdesc="A developers tool for browsing program code"
+arch=('i686' 'x86_64')
+url="http://cscope.sourceforge.net/index.html"
+license=('BSD')
+depends=('ncurses' 'sh')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('da43987622ace8c36bbf14c15a350ec1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|/usr/local/lib/cs|/usr/lib/cs|' contrib/ocs || return 1
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -d "${pkgdir}/usr/lib/cs"
+
+ cd contrib/xcscope
+ install -Dm644 xcscope.el ${pkgdir}/usr/share/emacs/site-lisp/xcscope.el || return 1
+ install -m755 cscope-indexer $pkgdir/usr/bin || return 1
+
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/COPYING \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/ctags/PKGBUILD b/extra/ctags/PKGBUILD
new file mode 100644
index 000000000..be4e9e20d
--- /dev/null
+++ b/extra/ctags/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 101099 2010-11-27 21:03:01Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=ctags
+pkgver=5.8
+pkgrel=2
+pkgdesc="Generates an index file of language objects found in source files"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc')
+url="http://ctags.sourceforge.net/"
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c00f82ecdcc357434731913e5b48630d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --disable-external-sort
+ make || return 1
+ make prefix=${pkgdir}/usr install
+}
diff --git a/extra/cups-pdf/PKGBUILD b/extra/cups-pdf/PKGBUILD
new file mode 100644
index 000000000..c613ca4e3
--- /dev/null
+++ b/extra/cups-pdf/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 30278 2009-03-18 07:31:03Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: Thomas Baechler <thomas.baechler@rwth-aachen.de>
+
+pkgname=cups-pdf
+pkgver=2.5.0
+pkgrel=1
+pkgdesc="PDF printer for cups"
+arch=(i686 x86_64)
+depends=('cups' 'ghostscript')
+install=cups-pdf.install
+url="http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf"
+license=('GPL2')
+source=(http://cip.physik.uni-wuerzburg.de/~vrbehr/cups-pdf/src/cups-pdf_$pkgver.tar.gz)
+backup=(etc/cups/cups-pdf.conf)
+md5sums=('9194af099a8c0e9aa213505b29ec6818')
+
+build() {
+ # Build and install
+ cd $srcdir/$pkgname-$pkgver/src
+ [ -z "$CC" ] && CC=gcc
+ $CC $CFLAGS -Wall -o cups-pdf cups-pdf.c || return 1
+ install -D -m700 cups-pdf $pkgdir/usr/lib/cups/backend/cups-pdf || return 1
+
+ # Install Postscript Color printer
+ cd ../extra
+ install -D -m644 CUPS-PDF.ppd $pkgdir/usr/share/cups/model/CUPS-PDF.ppd || return 1
+
+ # Install config file
+ install -D -m644 cups-pdf.conf $startdir/pkg/etc/cups/cups-pdf.conf || return 1
+}
diff --git a/extra/cups-pdf/cups-pdf.install b/extra/cups-pdf/cups-pdf.install
new file mode 100644
index 000000000..0ef82189a
--- /dev/null
+++ b/extra/cups-pdf/cups-pdf.install
@@ -0,0 +1,20 @@
+post_install() {
+ cat << "EOF"
+-------------------------------------------------
+To use cups-pdf, restart cups and visit the cups
+web interface at http://localhost:631/
+
+You can now add a "Virtual Printer (PDF Printer)"
+and use the Postscript/Generic postscript color
+printer driver.
+
+Note that cups-pdf has a configuration
+file in /etc/cups. The default location for
+pdf output is /var/spool/cups-pdf/$username.
+-------------------------------------------------
+EOF
+}
+
+op=$1
+shift
+$op $*
diff --git a/extra/cups/PKGBUILD b/extra/cups/PKGBUILD
new file mode 100644
index 000000000..ebf7f6ca7
--- /dev/null
+++ b/extra/cups/PKGBUILD
@@ -0,0 +1,108 @@
+# $Id: PKGBUILD 105161 2011-01-07 06:36:34Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="cups"
+pkgname=('libcups' 'cups')
+pkgver=1.4.6
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.cups.org/"
+makedepends=('libtiff>=3.9.2-2' 'libpng>=1.4.0' 'acl' 'openslp' 'pam' 'xdg-utils' 'heimdal>=1.3.1' 'gnutls>=2.8.3' 'poppler>=0.12.3'
+ 'xinetd' 'gzip' 'autoconf' 'php' 'libusb-compat' 'dbus-core' 'avahi' 'hicolor-icon-theme')
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2
+ cups-avahi.patch
+ cups cups.logrotate cups.pam)
+#options=('!emptydirs')
+md5sums=('de8fb5a29c36554925c0c6a6e2c0dae1'
+ '8ebd390197501ffd709f0ee546937fd5'
+ '5c85b7d8d2ddd02c2c64955cebbf55ea'
+ 'f861b18f4446c43918c8643dcbbd7f6d'
+ '96f82c38f3f540b53f3e5144900acf17')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ # Avahi support in the dnssd backend. patch from Fedora
+ patch -Np1 -i ${srcdir}/cups-avahi.patch || return 1
+
+ # Rebuild configure script for --enable-avahi.
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --with-logdir=/var/log/cups -with-docdir=/usr/share/cups/doc \
+ --with-cups-user=daemon --with-cups-group=lp --enable-pam=yes \
+ --disable-ldap --libdir=/usr/lib --enable-raw-printing \
+ --enable-dbus --with-dbusdir=/etc/dbus-1 --enable-ssl=yes --enable-gnutls --disable-threads --enable-avahi\
+ --with-php=/usr/bin/php-cgi --with-pdftops=pdftops --with-optim="$CFLAGS"
+ make || return 1
+}
+
+package_libcups() {
+pkgdesc="The CUPS Printing System - client libraries and headers"
+depends=('gnutls>=2.8.3' 'libtiff>=3.9.2-2' 'libpng>=1.4.0' 'heimdal>=1.3.1' 'avahi')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-headers install-libs || return 1
+ # put this into the libs pkg to make other software find the libs(no pkg-config file included)
+ mkdir -p ${pkgdir}/usr/bin
+ install -m755 ${srcdir}/${pkgbase}-${pkgver}/cups-config ${pkgdir}/usr/bin/cups-config
+}
+
+package_cups() {
+pkgdesc="The CUPS Printing System - deamon package"
+install=cups.install
+backup=(etc/cups/cupsd.conf
+ etc/cups/mime.convs
+ etc/cups/mime.types
+ etc/cups/snmp.conf
+ etc/cups/printers.conf
+ etc/cups/classes.conf
+ etc/cups/client.conf
+ etc/cups/subscriptions.conf
+ etc/dbus-1/system.d/cups.conf
+ etc/logrotate.d/cups
+ etc/pam.d/cups
+ etc/xinetd.d/cups-lpd)
+depends=('acl' 'openslp' 'pam' "libcups>=${pkgver}" 'xdg-utils' 'poppler>=0.12.3' 'libusb-compat' 'dbus-core' 'hicolor-icon-theme')
+optdepends=('php: for included phpcups.so module')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make BUILDROOT=${pkgdir} install-data install-exec || return 1
+
+ # this one we ship in the libcups pkg
+ rm -f ${pkgdir}/usr/bin/cups-config
+
+ # kill the sysv stuff
+ rm -rf ${pkgdir}/etc/rc*.d
+ rm -rf ${pkgdir}/etc/init.d
+ install -D -m755 ../cups ${pkgdir}/etc/rc.d/cups
+ install -D -m644 ../cups.logrotate ${pkgdir}/etc/logrotate.d/cups
+ install -D -m644 ../cups.pam ${pkgdir}/etc/pam.d/cups
+
+ # fix perms on /var/spool and /etc
+ chmod 755 ${pkgdir}/var/spool
+ chmod 755 ${pkgdir}/etc
+
+ # serial backend needs to run as root (http://bugs.archlinux.org/task/20396)
+ chmod 700 ${pkgdir}/usr/lib/cups/backend/serial
+
+ # install ssl directory where to store the certs, solves some samba issues
+ install -dm700 -g lp ${pkgdir}/etc/cups/ssl
+ install -dm511 -g lp ${pkgdir}/var/run/cups/certs
+
+ # install some more configuration files that will get filled by cupsd
+ touch ${pkgdir}/etc/cups/printers.conf
+ touch ${pkgdir}/etc/cups/classes.conf
+ touch ${pkgdir}/etc/cups/client.conf
+ echo "# see 'man client.conf'" >> ${pkgdir}/etc/cups/client.conf
+ echo "ServerName /var/run/cups/cups.sock # alternative: ServerName hostname-or-ip-address[:port] of a remote server" >> ${pkgdir}/etc/cups/client.conf
+ touch ${pkgdir}/etc/cups/subscriptions.conf
+ chgrp lp ${pkgdir}/etc/cups/{printers.conf,classes.conf,client.conf,subscriptions.conf}
+
+ # fix .desktop file
+ sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' ${pkgdir}/usr/share/applications/cups.desktop
+
+ # compress some driver files, adopted from Fedora
+ find ${pkgdir}/usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+}
diff --git a/extra/cups/cups b/extra/cups/cups
new file mode 100755
index 000000000..4afaf5a7c
--- /dev/null
+++ b/extra/cups/cups
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/cupsd`
+case "$1" in
+ start)
+ stat_busy "Starting CUPS Daemon"
+ [ -z "$PID" ] && /usr/sbin/cupsd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $(pidof -o %PPID -x /usr/sbin/cupsd) > /var/run/cups.pid
+ add_daemon cups
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping CUPS Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/cups.pid
+ rm_daemon cups
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/cups/cups-avahi.patch b/extra/cups/cups-avahi.patch
new file mode 100644
index 000000000..cf1056a75
--- /dev/null
+++ b/extra/cups/cups-avahi.patch
@@ -0,0 +1,1089 @@
+diff -up cups-1.4.5/backend/dnssd.c.avahi cups-1.4.5/backend/dnssd.c
+--- cups-1.4.5/backend/dnssd.c.avahi 2009-08-08 00:27:12.000000000 +0200
++++ cups-1.4.5/backend/dnssd.c 2010-11-12 13:13:31.000000000 +0100
+@@ -22,6 +22,7 @@
+ * exec_backend() - Execute the backend that corresponds to the
+ * resolved service name.
+ * get_device() - Create or update a device.
++* find_device()
+ * query_callback() - Process query data.
+ * sigterm_handler() - Handle termination signals...
+ * unquote() - Unquote a name string.
+@@ -33,7 +34,18 @@
+
+ #include "backend-private.h"
+ #include <cups/array.h>
+-#include <dns_sd.h>
++#ifdef HAVE_DNSSD
++# include <dns_sd.h>
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++# include <avahi-common/domain.h>
++# include <avahi-common/error.h>
++# include <avahi-common/malloc.h>
++#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -52,7 +64,12 @@ typedef enum
+
+ typedef struct
+ {
++#ifdef HAVE_DNSSD
+ DNSServiceRef ref; /* Service reference for resolve */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ int resolved; /* Did we resolve the device? */
++#endif /* HAVE_AVAHI */
+ char *name, /* Service name */
+ *domain, /* Domain name */
+ *fullName, /* Full name */
+@@ -64,6 +81,20 @@ typedef struct
+ sent; /* Did we list the device? */
+ } cups_device_t;
+
++typedef struct
++{
++ char key[256];
++ char value[256];
++
++#ifdef HAVE_DNSSD
++ const uint8_t *data;
++ const uint8_t *datanext;
++ const uint8_t *dataend;
++#else /* HAVE_AVAHI */
++ AvahiStringList *txt;
++#endif /* HAVE_DNSSD */
++} cups_txt_records_t;
++
+
+ /*
+ * Local globals...
+@@ -77,6 +108,7 @@ static int job_canceled = 0;
+ * Local functions...
+ */
+
++#ifdef HAVE_DNSSD
+ static void browse_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -92,12 +124,6 @@ static void browse_local_callback(DNSSe
+ const char *regtype,
+ const char *replyDomain,
+ void *context);
+-static int compare_devices(cups_device_t *a, cups_device_t *b);
+-static void exec_backend(char **argv);
+-static cups_device_t *get_device(cups_array_t *devices,
+- const char *serviceName,
+- const char *regtype,
+- const char *replyDomain);
+ static void query_callback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ uint32_t interfaceIndex,
+@@ -106,9 +132,111 @@ static void query_callback(DNSServiceRe
+ uint16_t rrclass, uint16_t rdlen,
+ const void *rdata, uint32_t ttl,
+ void *context);
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++static void avahi_client_callback (AvahiClient *client,
++ AvahiClientState state,
++ void *context);
++static void avahi_browse_callback (AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
++
++static cups_device_t * find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey);
++static int compare_devices(cups_device_t *a, cups_device_t *b);
++static void exec_backend(char **argv);
++static cups_device_t *get_device(cups_array_t *devices,
++ const char *serviceName,
++ const char *regtype,
++ const char *replyDomain);
+ static void sigterm_handler(int sig);
+ static void unquote(char *dst, const char *src, size_t dstsize);
+
++#ifdef HAVE_AVAHI
++static AvahiSimplePoll *simple_poll = NULL;
++static int avahi_got_callback;
++#endif /* HAVE_AVAHI */
++
++
++/*
++ * cups_txt_records_t access functions
++ */
++static cups_txt_records_t *
++next_txt_record (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ txt->data = txt->datanext;
++#else /* HAVE_AVAHI */
++ txt->txt = avahi_string_list_get_next (txt->txt);
++ if (txt->txt == NULL)
++ return NULL;
++#endif /* HAVE_DNSSD */
++
++ return txt;
++}
++
++static int
++parse_txt_record_pair (cups_txt_records_t *txt)
++{
++#ifdef HAVE_DNSSD
++ uint8_t datalen;
++ uint8_t *data = txt->data;
++ char *ptr;
++
++ /*
++ * Read a key/value pair starting with an 8-bit length. Since the
++ * length is 8 bits and the size of the key/value buffers is 256, we
++ * don't need to check for overflow...
++ */
++
++ datalen = *data++;
++ if (!datalen || (data + datalen) >= txt->dataend)
++ return NULL;
++ txt->datanext = data + datalen;
++
++ for (ptr = txt->key; data < txt->datanext && *data != '='; data ++)
++ *ptr++ = *data;
++ *ptr = '\0';
++
++ if (data < txt->datanext && *data == '=')
++ {
++ data++;
++
++ if (data < datanext)
++ memcpy (txt->value, data, txt->datanext - data);
++ value[txt->datanext - data] = '\0';
++ }
++ else
++ return 1;
++#else /* HAVE_AVAHI */
++ char *key, *value;
++ size_t len;
++ avahi_string_list_get_pair (txt->txt, &key, &value, &len);
++ if (len > sizeof (txt->value) - 1)
++ len = sizeof (txt->value) - 1;
++
++ memcpy (txt->value, value, len);
++ txt->value[len] = '\0';
++ len = strlen (key);
++ if (len > sizeof (txt->key) - 1)
++ len = sizeof (txt->key) - 1;
++
++ memcpy (txt->key, key, len);
++ txt->key[len] = '\0';
++ avahi_free (key);
++ avahi_free (value);
++#endif /* HAVE_AVAHI */
++
++ return 0;
++}
+
+ /*
+ * 'main()' - Browse for printers.
+@@ -119,6 +247,13 @@ main(int argc, /* I - Number of comm
+ char *argv[]) /* I - Command-line arguments */
+ {
+ const char *name; /* Backend name */
++ cups_array_t *devices; /* Device array */
++ cups_device_t *device; /* Current device */
++ char uriName[1024]; /* Unquoted fullName for URI */
++#ifdef HAVE_DNSSD
++ int fd; /* Main file descriptor */
++ fd_set input; /* Input set for select() */
++ struct timeval timeout; /* Timeout for select() */
+ DNSServiceRef main_ref, /* Main service reference */
+ fax_ipp_ref, /* IPP fax service reference */
+ ipp_ref, /* IPP service reference */
+@@ -130,12 +265,11 @@ main(int argc, /* I - Number of comm
+ pdl_datastream_ref, /* AppSocket service reference */
+ printer_ref, /* LPD service reference */
+ riousbprint_ref; /* Remote IO service reference */
+- int fd; /* Main file descriptor */
+- fd_set input; /* Input set for select() */
+- struct timeval timeout; /* Timeout for select() */
+- cups_array_t *devices; /* Device array */
+- cups_device_t *device; /* Current device */
+- char uriName[1024]; /* Unquoted fullName for URI */
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ AvahiClient *client;
++ int error;
++#endif /* HAVE_AVAHI */
+ #if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
+ struct sigaction action; /* Actions for POSIX signals */
+ #endif /* HAVE_SIGACTION && !HAVE_SIGSET */
+@@ -194,6 +328,49 @@ main(int argc, /* I - Number of comm
+ * Browse for different kinds of printers...
+ */
+
++#ifdef HAVE_AVAHI
++ if ((simple_poll = avahi_simple_poll_new ()) == NULL)
++ {
++ perror ("ERROR: Unable to create avahi simple poll object");
++ return (1);
++ }
++
++ client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_client_callback, NULL, &error);
++ if (!client)
++ {
++ perror ("ERROR: Unable to create avahi client");
++ return (1);
++ }
++
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_fax-ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_ipp-tls._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_pdl-datastream._tcp",
++ NULL, 0,
++ avahi_browse_callback,
++ devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_printer._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++ avahi_service_browser_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC,
++ "_riousbprint._tcp", NULL, 0,
++ avahi_browse_callback, devices);
++#endif /* HAVE_AVAHI */
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
+ {
+ perror("ERROR: Unable to create service connection");
+@@ -245,6 +422,7 @@ main(int argc, /* I - Number of comm
+ riousbprint_ref = main_ref;
+ DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
+ "_riousbprint._tcp", NULL, browse_callback, devices);
++#endif /* HAVE_DNSSD */
+
+ /*
+ * Loop until we are killed...
+@@ -252,6 +430,9 @@ main(int argc, /* I - Number of comm
+
+ while (!job_canceled)
+ {
++ int announce = 0;
++
++#ifdef HAVE_DNSSD
+ FD_ZERO(&input);
+ FD_SET(fd, &input);
+
+@@ -271,11 +452,35 @@ main(int argc, /* I - Number of comm
+ }
+ else
+ {
++ announce = 1;
++ }
++#else /* HAVE_AVAHI */
++ int r;
++ avahi_got_callback = 0;
++ r = avahi_simple_poll_iterate (simple_poll, 1);
++ if (r != 0 && r != EINTR)
++ {
++ /*
++ * We've been told to exit the loop. Perhaps the connection to
++ * avahi failed.
++ */
++
++ break;
++ }
++
++ if (avahi_got_callback)
++ announce = 1;
++#endif /* HAVE_DNSSD */
++
++ if (announce)
++ {
+ /*
+ * Announce any devices we've found...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceErrorType status; /* DNS query status */
++#endif /* HAVE_DNSSD */
+ cups_device_t *best; /* Best matching device */
+ char device_uri[1024]; /* Device URI */
+ int count; /* Number of queries */
+@@ -285,6 +490,7 @@ main(int argc, /* I - Number of comm
+ best = NULL, count = 0;
+ device;
+ device = (cups_device_t *)cupsArrayNext(devices))
++#ifdef HAVE_DNSSD
+ if (!device->ref && !device->sent)
+ {
+ /*
+@@ -313,14 +519,23 @@ main(int argc, /* I - Number of comm
+ count ++;
+ }
+ }
+- else if (!device->sent)
++ else
++#endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++ if (!device->resolved)
++ continue;
++ else
++#endif /* HAVE_AVAHI */
++ if (!device->sent)
+ {
++#ifdef HAVE_DNSSD
+ /*
+ * Got the TXT records, now report the device...
+ */
+
+ DNSServiceRefDeallocate(device->ref);
+ device->ref = 0;
++#endif /* HAVE_DNSSD */
+
+ if (!best)
+ best = device;
+@@ -372,6 +587,7 @@ main(int argc, /* I - Number of comm
+ * 'browse_callback()' - Browse devices.
+ */
+
++#ifdef HAVE_DNSSD
+ static void
+ browse_callback(
+ DNSServiceRef sdRef, /* I - Service reference */
+@@ -405,12 +621,14 @@ browse_callback(
+
+ get_device((cups_array_t *)context, serviceName, regtype, replyDomain);
+ }
++#endif /* HAVE_DNSSD */
+
+
+ /*
+ * 'browse_local_callback()' - Browse local devices.
+ */
+
++#ifdef HAVE_DNSSD
+ static void
+ browse_local_callback(
+ DNSServiceRef sdRef, /* I - Service reference */
+@@ -456,6 +674,7 @@ browse_local_callback(
+ device->fullName);
+ device->sent = 1;
+ }
++#endif /* HAVE_DNSSD */
+
+
+ /*
+@@ -528,6 +747,32 @@ exec_backend(char **argv) /* I - Comman
+ exit(CUPS_BACKEND_STOP);
+ }
+
++static int
++device_type (const char *regtype)
++{
++#ifdef HAVE_AVAHI
++ if (!strcmp(regtype, "_ipp._tcp") ||
++ !strcmp(regtype, "_ipp-tls._tcp"))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_fax-ipp._tcp"))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp"))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#else
++ if (!strcmp(regtype, "_ipp._tcp.") ||
++ !strcmp(regtype, "_ipp-tls._tcp."))
++ return (CUPS_DEVICE_IPP);
++ else if (!strcmp(regtype, "_fax-ipp._tcp."))
++ return (CUPS_DEVICE_FAX_IPP);
++ else if (!strcmp(regtype, "_printer._tcp."))
++ return (CUPS_DEVICE_PRINTER);
++ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
++ return (CUPS_DEVICE_PDL_DATASTREAM);
++#endif /* HAVE_AVAHI */
++
++ return (CUPS_DEVICE_RIOUSBPRINT);
++}
++
+
+ /*
+ * 'get_device()' - Create or update a device.
+@@ -550,18 +795,7 @@ get_device(cups_array_t *devices, /* I -
+ */
+
+ key.name = (char *)serviceName;
+-
+- if (!strcmp(regtype, "_ipp._tcp.") ||
+- !strcmp(regtype, "_ipp-tls._tcp."))
+- key.type = CUPS_DEVICE_IPP;
+- else if (!strcmp(regtype, "_fax-ipp._tcp."))
+- key.type = CUPS_DEVICE_FAX_IPP;
+- else if (!strcmp(regtype, "_printer._tcp."))
+- key.type = CUPS_DEVICE_PRINTER;
+- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
+- key.type = CUPS_DEVICE_PDL_DATASTREAM;
+- else
+- key.type = CUPS_DEVICE_RIOUSBPRINT;
++ key.type = device_type (regtype);
+
+ for (device = cupsArrayFind(devices, &key);
+ device;
+@@ -581,8 +815,14 @@ get_device(cups_array_t *devices, /* I -
+ free(device->domain);
+ device->domain = strdup(replyDomain);
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, device->name, regtype,
+ replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ free(device->fullName);
+ device->fullName = strdup(fullName);
+ }
+@@ -602,6 +842,9 @@ get_device(cups_array_t *devices, /* I -
+ device->domain = strdup(replyDomain);
+ device->type = key.type;
+ device->priority = 50;
++#ifdef HAVE_AVAHI
++ device->resolved = 0;
++#endif /* HAVE_AVAHI */
+
+ cupsArrayAdd(devices, device);
+
+@@ -609,7 +852,13 @@ get_device(cups_array_t *devices, /* I -
+ * Set the "full name" of this service, which is used for queries...
+ */
+
++#ifdef HAVE_DNSSD
+ DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
++#else /* HAVE_AVAHI */
++ avahi_service_name_join (fullName, kDNSServiceMaxDomainName,
++ serviceName, regtype, replyDomain);
++#endif /* HAVE_DNSSD */
++
+ device->fullName = strdup(fullName);
+
+ return (device);
+@@ -620,6 +869,7 @@ get_device(cups_array_t *devices, /* I -
+ * 'query_callback()' - Process query data.
+ */
+
++#ifdef HAVE_DNSSD
+ static void
+ query_callback(
+ DNSServiceRef sdRef, /* I - Service reference */
+@@ -639,7 +889,7 @@ query_callback(
+ *ptr; /* Pointer into string */
+ cups_device_t dkey, /* Search key */
+ *device; /* Device */
+-
++ cups_txt_records_t txt;
+
+ fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
+ "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
+@@ -673,84 +923,212 @@ query_callback(
+ if ((ptr = strstr(name, "._")) != NULL)
+ *ptr = '\0';
+
+- if (strstr(fullName, "_ipp._tcp.") ||
+- strstr(fullName, "_ipp-tls._tcp."))
+- dkey.type = CUPS_DEVICE_IPP;
+- else if (strstr(fullName, "_fax-ipp._tcp."))
+- dkey.type = CUPS_DEVICE_FAX_IPP;
+- else if (strstr(fullName, "_printer._tcp."))
+- dkey.type = CUPS_DEVICE_PRINTER;
+- else if (strstr(fullName, "_pdl-datastream._tcp."))
+- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
++ dkey.type = device_type (fullName);
++
++ txt.data = rdata;
++ txt.dataend = rdata + rdlen;
++ device = find_device ((cups_array_t *) context, &txt, &dkey);
++ if (!device)
++ fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++}
++#endif /* HAVE_DNSSD */
++
++#ifdef HAVE_AVAHI
++static void
++avahi_client_callback(AvahiClient *client,
++ AvahiClientState state,
++ void *context)
++{
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ {
++ fprintf (stderr, "ERROR: Avahi connection failed\n");
++ avahi_simple_poll_quit (simple_poll);
++ }
++}
++
++static void
++avahi_query_callback(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client;
++ cups_device_t key,
++ *device;
++ char uqname[1024],
++ *ptr;
++ cups_txt_records_t txtr;
++
++ client = avahi_service_resolver_get_client (resolver);
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ if (event == AVAHI_RESOLVER_FAILURE)
++ {
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ }
++
++ avahi_service_resolver_free (resolver);
++ return;
++ }
++
++ /*
++ * Set search key for device.
++ */
++
++ key.name = uqname;
++ unquote (uqname, name, sizeof (uqname));
++ if ((ptr = strstr(name, "._")) != NULL)
++ *ptr = '\0';
++
++ key.domain = (char *) domain;
++ key.type = device_type (type);
++
++ /*
++ * Find the device and the the TXT information.
++ */
++
++ txtr.txt = txt;
++ device = find_device ((cups_array_t *) context, &txtr, &key);
++ if (device)
++ {
++ /*
++ * Let the main loop know to announce the device.
++ */
++
++ device->resolved = 1;
++ avahi_got_callback = 1;
++ }
+ else
+- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
++ fprintf (stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", name);
++
++ avahi_service_resolver_free (resolver);
++}
++
++static void
++avahi_browse_callback(AvahiServiceBrowser *browser,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiBrowserEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ AvahiClient *client = avahi_service_browser_get_client (browser);
++
++ switch (event)
++ {
++ case AVAHI_BROWSER_FAILURE:
++ fprintf (stderr, "ERROR: %s\n",
++ avahi_strerror (avahi_client_errno (client)));
++ avahi_simple_poll_quit (simple_poll);
++ return;
++
++ case AVAHI_BROWSER_NEW:
++ /*
++ * This object is new on the network.
++ */
++
++ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
++ {
++ /*
++ * This comes from the local machine so ignore it.
++ */
++
++ fprintf (stderr, "DEBUG: ignoring local service %s\n", name);
++ }
++ else
++ {
++ /*
++ * Create a device entry for it if it doesn't yet exist.
++ */
++
++ get_device ((cups_array_t *)context, name, type, domain);
++
++ /*
++ * Now look for a TXT entry.
++ */
++
++ if (avahi_service_resolver_new (client, interface, protocol,
++ name, type, domain,
++ AVAHI_PROTO_UNSPEC, 0,
++ avahi_query_callback, context) == NULL)
++ {
++ fprintf (stderr, "ERROR: failed to resolve service %s: %s\n",
++ name, avahi_strerror (avahi_client_errno (client)));
++ }
++ }
++
++ break;
+
+- for (device = cupsArrayFind(devices, &dkey);
++ case AVAHI_BROWSER_REMOVE:
++ case AVAHI_BROWSER_ALL_FOR_NOW:
++ case AVAHI_BROWSER_CACHE_EXHAUSTED:
++ break;
++ }
++}
++#endif /* HAVE_AVAHI */
++
++static cups_device_t *
++find_device (cups_array_t *devices,
++ cups_txt_records_t *txt,
++ cups_device_t *dkey)
++{
++ cups_device_t *device;
++ char *ptr;
++
++ for (device = cupsArrayFind(devices, dkey);
+ device;
+ device = cupsArrayNext(devices))
+ {
+- if (strcasecmp(device->name, dkey.name) ||
+- strcasecmp(device->domain, dkey.domain))
++ if (strcasecmp(device->name, dkey->name) ||
++ strcasecmp(device->domain, dkey->domain))
+ {
+ device = NULL;
+ break;
+ }
+- else if (device->type == dkey.type)
++ else if (device->type == dkey->type)
+ {
+ /*
+ * Found it, pull out the priority and make and model from the TXT
+ * record and save it...
+ */
+
+- const uint8_t *data, /* Pointer into data */
+- *datanext, /* Next key/value pair */
+- *dataend; /* End of entire TXT record */
+- uint8_t datalen; /* Length of current key/value pair */
+- char key[256], /* Key string */
+- value[256], /* Value string */
+- make_and_model[512],
++ char make_and_model[512],
+ /* Manufacturer and model */
+ model[256], /* Model */
+- device_id[2048];/* 1284 device ID */
+-
++ device_id[2048]; /* 1284 device ID */
+
+ device_id[0] = '\0';
+ make_and_model[0] = '\0';
+
+ strcpy(model, "Unknown");
+
+- for (data = rdata, dataend = data + rdlen;
+- data < dataend;
+- data = datanext)
++ for (;;)
+ {
+- /*
+- * Read a key/value pair starting with an 8-bit length. Since the
+- * length is 8 bits and the size of the key/value buffers is 256, we
+- * don't need to check for overflow...
+- */
+-
+- datalen = *data++;
+-
+- if (!datalen || (data + datalen) >= dataend)
+- break;
+-
+- datanext = data + datalen;
++ char *key;
++ char *value;
+
+- for (ptr = key; data < datanext && *data != '='; data ++)
+- *ptr++ = *data;
+- *ptr = '\0';
+-
+- if (data < datanext && *data == '=')
+- {
+- data ++;
+-
+- if (data < datanext)
+- memcpy(value, data, datanext - data);
+- value[datanext - data] = '\0';
+- }
+- else
+- continue;
++ if (parse_txt_record_pair (txt))
++ goto next;
+
++ key = txt->key;
++ value = txt->value;
+ if (!strncasecmp(key, "usb_", 4))
+ {
+ /*
+@@ -805,6 +1183,10 @@ query_callback(
+ if (device->type == CUPS_DEVICE_PRINTER)
+ device->sent = 1;
+ }
++
++ next:
++ if (next_txt_record (txt) == NULL)
++ break;
+ }
+
+ if (device->device_id)
+@@ -854,11 +1236,9 @@ query_callback(
+ }
+ }
+
+- if (!device)
+- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
++ return device;
+ }
+
+-
+ /*
+ * 'sigterm_handler()' - Handle termination signals...
+ */
+diff -up cups-1.4.5/config.h.in.avahi cups-1.4.5/config.h.in
+--- cups-1.4.5/config.h.in.avahi 2010-08-13 06:11:46.000000000 +0200
++++ cups-1.4.5/config.h.in 2010-11-12 13:13:31.000000000 +0100
+@@ -344,6 +344,13 @@
+
+
+ /*
++ * Do we have Avahi for DNS Service Discovery?
++ */
++
++#undef HAVE_AVAHI
++
++
++/*
+ * Do we have <sys/ioctl.h>?
+ */
+
+diff -up cups-1.4.5/config-scripts/cups-dnssd.m4.avahi cups-1.4.5/config-scripts/cups-dnssd.m4
+--- cups-1.4.5/config-scripts/cups-dnssd.m4.avahi 2009-08-29 00:54:34.000000000 +0200
++++ cups-1.4.5/config-scripts/cups-dnssd.m4 2010-11-12 13:13:31.000000000 +0100
+@@ -27,6 +27,21 @@ AC_ARG_WITH(dnssd-includes, [ --with-dn
+ DNSSDLIBS=""
+ DNSSD_BACKEND=""
+
++AC_ARG_ENABLE(avahi, [ --enable-avahi turn on DNS Service Discovery support, default=no],
++ [if test x$enable_avahi = xyes; then
++ AC_MSG_CHECKING(for Avahi)
++ if $PKGCONFIG --exists avahi-client; then
++ AC_MSG_RESULT(yes)
++ CFLAGS="$CFLAGS `$PKGCONFIG --cflags avahi-client`"
++ DNSSDLIBS="`$PKGCONFIG --libs avahi-client`"
++ DNSSD_BACKEND="dnssd"
++ AC_DEFINE(HAVE_AVAHI)
++ enable_dnssd=no
++ else
++ AC_MSG_RESULT(no)
++ fi
++ fi])
++
+ if test x$enable_dnssd != xno; then
+ AC_CHECK_HEADER(dns_sd.h, [
+ case "$uname" in
+diff -up cups-1.4.5/cups/http-support.c.avahi cups-1.4.5/cups/http-support.c
+--- cups-1.4.5/cups/http-support.c.avahi 2010-10-02 00:40:38.000000000 +0200
++++ cups-1.4.5/cups/http-support.c 2010-11-12 13:28:45.000000000 +0100
+@@ -55,6 +55,11 @@
+ # include <dns_sd.h>
+ # include <poll.h>
+ #endif /* HAVE_DNSSD */
++#ifdef HAVE_AVAHI
++# include <avahi-client/client.h>
++# include <avahi-client/lookup.h>
++# include <avahi-common/simple-watch.h>
++#endif /* HAVE_AVAHI */
+
+
+ /*
+@@ -121,6 +126,24 @@ static void resolve_callback(DNSService
+ void *context);
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static void avahi_resolve_uri_client_cb(AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll);
++static void avahi_resolve_uri_resolver_cb(AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context);
++#endif /* HAVE_AVAHI */
+
+ /*
+ * 'httpAssembleURI()' - Assemble a uniform resource identifier from its
+@@ -1351,16 +1374,27 @@ _httpResolveURI(
+
+ if (strstr(hostname, "._tcp"))
+ {
++#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
++ char *regtype, /* Pointer to type in hostname */
++ *domain; /* Pointer to domain in hostname */
+ #ifdef HAVE_DNSSD
+ DNSServiceRef ref, /* DNS-SD master service reference */
+ domainref, /* DNS-SD service reference for domain */
+ localref; /* DNS-SD service reference for .local */
+ int domainsent = 0, /* Send the domain resolve? */
+ offline = 0; /* offline-report state set? */
+- char *regtype, /* Pointer to type in hostname */
+- *domain; /* Pointer to domain in hostname */
+ _http_uribuf_t uribuf; /* URI buffer */
+ struct pollfd polldata; /* Polling data */
++#else /* HAVE_AVAHI */
++ AvahiSimplePoll *simple_poll;
++ AvahiClient *client;
++ int error;
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } user_data;
++#endif /* HAVE_DNSSD */
+
+
+ if (logit)
+@@ -1398,8 +1432,13 @@ _httpResolveURI(
+ if (domain)
+ *domain++ = '\0';
+
++#ifdef HAVE_DNSSD
+ uribuf.buffer = resolved_uri;
+ uribuf.bufsize = resolved_size;
++#else
++ user_data.uribuf.buffer = resolved_uri;
++ user_data.uribuf.bufsize = resolved_size;
++#endif
+
+ resolved_uri[0] = '\0';
+
+@@ -1414,6 +1453,7 @@ _httpResolveURI(
+
+ uri = NULL;
+
++#ifdef HAVE_DNSSD
+ if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
+ {
+ localref = ref;
+@@ -1500,6 +1540,36 @@ _httpResolveURI(
+
+ DNSServiceRefDeallocate(ref);
+ }
++#else /* HAVE_AVAHI */
++ if ((simple_poll = avahi_simple_poll_new ()) != NULL)
++ {
++ if ((client = avahi_client_new (avahi_simple_poll_get (simple_poll),
++ 0, avahi_resolve_uri_client_cb,
++ &simple_poll, &error)) != NULL)
++ {
++ user_data.poll = simple_poll;
++ if (avahi_service_resolver_new (client, AVAHI_IF_UNSPEC,
++ AVAHI_PROTO_UNSPEC, hostname,
++ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
++ avahi_resolve_uri_resolver_cb,
++ &user_data) != NULL)
++ {
++ avahi_simple_poll_loop (simple_poll);
++
++ /*
++ * Collect the result.
++ */
++
++ if (resolved_uri[0])
++ uri = resolved_uri;
++ }
++
++ avahi_client_free (client);
++ }
++
++ avahi_simple_poll_free (simple_poll);
++ }
++#endif /* HAVE_DNSSD */
+
+ if (logit)
+ {
+@@ -1511,13 +1581,13 @@ _httpResolveURI(
+ fputs("STATE: -connecting-to-device,offline-report\n", stderr);
+ }
+
+-#else
++#else /* HAVE_DNSSD || HAVE_AVAHI */
+ /*
+ * No DNS-SD support...
+ */
+
+ uri = NULL;
+-#endif /* HAVE_DNSSD */
++#endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+ if (logit && !uri)
+ _cupsLangPuts(stderr, _("Unable to find printer!\n"));
+@@ -1722,6 +1792,105 @@ resolve_callback(
+ }
+ #endif /* HAVE_DNSSD */
+
++#ifdef HAVE_AVAHI
++static void
++avahi_resolve_uri_client_cb (AvahiClient *client,
++ AvahiClientState state,
++ void *simple_poll)
++{
++ DEBUG_printf(("avahi_resolve_uri_client_callback(client=%p, state=%d, "
++ "simple_poll=%p)\n", client, state, simple_poll));
++
++ /*
++ * If the connection drops, quit.
++ */
++
++ if (state == AVAHI_CLIENT_FAILURE)
++ avahi_simple_poll_quit (simple_poll);
++}
++
++static void
++avahi_resolve_uri_resolver_cb (AvahiServiceResolver *resolver,
++ AvahiIfIndex interface,
++ AvahiProtocol protocol,
++ AvahiResolverEvent event,
++ const char *name,
++ const char *type,
++ const char *domain,
++ const char *host_name,
++ const AvahiAddress *address,
++ uint16_t port,
++ AvahiStringList *txt,
++ AvahiLookupResultFlags flags,
++ void *context)
++{
++ const char *scheme; /* URI scheme */
++ char rp[256]; /* Remote printer */
++ AvahiStringList *pair;
++ char *value;
++ size_t valueLen = 0;
++ char addr[AVAHI_ADDRESS_STR_MAX];
++ struct
++ {
++ AvahiSimplePoll *poll;
++ _http_uribuf_t uribuf;
++ } *poll_uribuf = context;
++
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback(resolver=%p, "
++ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
++ "type=\"%s\", domain=\"%s\", host_name=\"%s\", address=%p, "
++ "port=%d, txt=%p, flags=%d, context=%p)\n",
++ resolver, interface, protocol, event, name, type, domain,
++ host_name, address, port, txt, flags, context));
++
++ if (event != AVAHI_RESOLVER_FOUND)
++ {
++ avahi_service_resolver_free (resolver);
++ avahi_simple_poll_quit (poll_uribuf->poll);
++ return;
++ }
++
++ /*
++ * Figure out the scheme from the full name...
++ */
++
++ if (strstr(type, "_ipp."))
++ scheme = "ipp";
++ else if (strstr(type, "_printer."))
++ scheme = "lpd";
++ else if (strstr(type, "_pdl-datastream."))
++ scheme = "socket";
++ else
++ scheme = "riousbprint";
++
++ /*
++ * Extract the "remote printer key from the TXT record...
++ */
++
++ if ((pair = avahi_string_list_find (txt, "rp")) != NULL)
++ {
++ avahi_string_list_get_pair (pair, NULL, &value, &valueLen);
++ rp[0] = '/';
++ memcpy (rp + 1, value, valueLen);
++ rp[valueLen + 1] = '\0';
++ }
++ else
++ rp[0] = '\0';
++
++ /*
++ * Assemble the final device URI...
++ */
++
++ avahi_address_snprint (addr, AVAHI_ADDRESS_STR_MAX, address);
++ httpAssembleURI(HTTP_URI_CODING_ALL, poll_uribuf->uribuf.buffer,
++ poll_uribuf->uribuf.bufsize, scheme, NULL,
++ addr, port, rp);
++ DEBUG_printf(("avahi_resolve_uri_resolver_callback: Resolved URI is \"%s\"\n",
++ poll_uribuf->uribuf.buffer));
++ avahi_simple_poll_quit (poll_uribuf->poll);
++}
++#endif /* HAVE_AVAHI */
++
+
+ /*
+ * End of "$Id: http-support.c 9322 2010-10-01 22:40:38Z mike $".
diff --git a/extra/cups/cups.install b/extra/cups/cups.install
new file mode 100644
index 000000000..e92e17ed3
--- /dev/null
+++ b/extra/cups/cups.install
@@ -0,0 +1,15 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ echo ">> If you use an HTTPS connection to CUPS, the first time you access"
+ echo ">> the interface it may take a very long time before the site comes up."
+ echo ">> This is because the first request triggers the generation of the CUPS"
+ echo ">> SSL certificates which can be a very time-consuming job."
+}
+
+post_upgrade() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+}
diff --git a/extra/cups/cups.logrotate b/extra/cups/cups.logrotate
new file mode 100644
index 000000000..9c49bbdaf
--- /dev/null
+++ b/extra/cups/cups.logrotate
@@ -0,0 +1,8 @@
+/var/log/cups/*log {
+ missingok
+ notifempty
+ delaycompress
+ postrotate
+ /bin/kill -HUP `cat /var/run/cups.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/extra/cups/cups.pam b/extra/cups/cups.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/extra/cups/cups.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/extra/curl/PKGBUILD b/extra/curl/PKGBUILD
new file mode 100644
index 000000000..06fe3ab42
--- /dev/null
+++ b/extra/curl/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 110504 2011-02-19 17:12:53Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=curl
+pkgver=7.21.4
+pkgrel=2
+pkgdesc="An URL retrival utility and library"
+arch=('i686' 'x86_64')
+url="http://curl.haxx.se"
+license=('MIT')
+depends=('zlib' 'openssl' 'bash' 'ca-certificates')
+options=('!libtool')
+source=(http://curl.haxx.se/download/${pkgname}-${pkgver}.tar.bz2
+ curlbuild.h)
+md5sums=('e2dd20c88a7d01c745af9d788545ab2a'
+ '751bd433ede935c8fae727377625a8ae')
+
+[[ $CARCH == "x86_64" ]] && _curlbuild=curlbuild-64.h
+[[ $CARCH == "i686" ]] && _curlbuild=curlbuild-32.h
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure \
+ --with-random=/dev/urandom \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --disable-dependency-tracking \
+ --enable-ipv6 \
+ --disable-ldaps \
+ --disable-ldap \
+ --enable-manual \
+ --enable-versioned-symbols \
+ --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt \
+ --without-libidn \
+ --enable-threaded-resolver
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+ install -Dm644 docs/libcurl/libcurl.m4 \
+ ${pkgdir}/usr/share/aclocal/libcurl.m4
+ mv "${pkgdir}/usr/include/curl/curlbuild.h" "${pkgdir}/usr/include/curl/${_curlbuild}"
+ install -m 644 ${srcdir}/curlbuild.h "${pkgdir}/usr/include/curl/curlbuild.h"
+}
diff --git a/extra/curl/curlbuild.h b/extra/curl/curlbuild.h
new file mode 100644
index 000000000..b48862696
--- /dev/null
+++ b/extra/curl/curlbuild.h
@@ -0,0 +1,9 @@
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 32
+#include "curlbuild-32.h"
+#elif __WORDSIZE == 64
+#include "curlbuild-64.h"
+#else
+#error "Unknown word size"
+#endif
diff --git a/extra/cvs/PKGBUILD b/extra/cvs/PKGBUILD
new file mode 100644
index 000000000..380e93f2e
--- /dev/null
+++ b/extra/cvs/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 101751 2010-12-01 14:33:51Z stephane $
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=cvs
+pkgver=1.11.23
+pkgrel=6
+pkgdesc="Concurrent Versions System - a source control system"
+arch=(i686 x86_64)
+url="http://cvs.nongnu.org"
+license=('GPL')
+depends=('heimdal>=1.3.1')
+optdepends=('openssh: for using cvs over ssh' 'inetutils: for using cvs over rsh')
+install=cvs.install
+source=(ftp://ftp.gnu.org/non-gnu/cvs/source/stable/${pkgver}/${pkgname}-${pkgver}.tar.bz2
+ cvs-1.11.23-getline64.patch
+ cvs-1.11.23-cve-2010-3846.patch)
+sha256sums=('400f51b59d85116e79b844f2d5dbbad4759442a789b401a94aa5052c3d7a4aa9'
+ '9126d7992ace943980ad8a10d5a09aeb6f1eeeb9b921fc796fe31de7b1c220cf'
+ 'c6506d0a5efc7b0cab6415f26e070ec214fb9781fac8d295506f4d0825431a8f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ unset EDITOR VISUAL
+
+ patch -Np1 -i ../cvs-1.11.23-getline64.patch
+
+ # CVE-2010-3864, see https://www.redhat.com/security/data/cve/CVE-2010-3846.html
+ patch -Np1 -i ../cvs-1.11.23-cve-2010-3846.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ rm ${pkgdir}/usr/share/info/dir
+}
diff --git a/extra/cvs/cvs-1.11.23-cve-2010-3846.patch b/extra/cvs/cvs-1.11.23-cve-2010-3846.patch
new file mode 100644
index 000000000..e1560cef8
--- /dev/null
+++ b/extra/cvs/cvs-1.11.23-cve-2010-3846.patch
@@ -0,0 +1,167 @@
+From b122edcb68ff05bb6eb22f6e50423e7f1050841b Mon Sep 17 00:00:00 2001
+From: Larry Jones <lawrence.jones@siemens.com>
+Date: Thu, 21 Oct 2010 10:08:16 +0200
+Subject: [PATCH] Fix for CVE-2010-3846
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Mallformed RCS revision (delete after the end of input file, or overlayed
+deleted regions) screws output file image size computation. This leads to
+write attempt after the allocated memory opening hiden memory corruption
+driven by CVS server.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ src/rcs.c | 52 +++++++++++++++++++++++++++++-----------------------
+ 1 files changed, 29 insertions(+), 23 deletions(-)
+
+diff --git a/src/rcs.c b/src/rcs.c
+index 7d0d078..2f88f85 100644
+--- a/src/rcs.c
++++ b/src/rcs.c
+@@ -7128,7 +7128,7 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ struct deltafrag *dfhead;
+ struct deltafrag **dftail;
+ struct deltafrag *df;
+- unsigned long numlines, lastmodline, offset;
++ unsigned long numlines, offset;
+ struct linevector lines;
+ int err;
+
+@@ -7202,12 +7202,12 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+
+ /* New temp data structure to hold new org before
+ copy back into original structure. */
+- lines.nlines = lines.lines_alloced = numlines;
++ lines.lines_alloced = numlines;
+ lines.vector = xmalloc (numlines * sizeof *lines.vector);
+
+ /* We changed the list order to first to last -- so the
+ list never gets larger than the size numlines. */
+- lastmodline = 0;
++ lines.nlines = 0;
+
+ /* offset created when adding/removing lines
+ between new and original structure */
+@@ -7216,25 +7216,24 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ for (df = dfhead; df != NULL; )
+ {
+ unsigned int ln;
+- unsigned long deltaend;
++ unsigned long newpos = df->pos - offset;
+
+- if (df->pos > orig_lines->nlines)
++ if (newpos < lines.nlines || newpos > numlines)
+ err = 1;
+
+ /* On error, just free the rest of the list. */
+ if (!err)
+ {
+- /* Here we need to get to the line where the next insert will
++ /* Here we need to get to the line where the next change will
+ begin, which is DF->pos in ORIG_LINES. We will fill up to
+ DF->pos - OFFSET in LINES with original items. */
+- for (deltaend = df->pos - offset;
+- lastmodline < deltaend;
+- lastmodline++)
++ while (lines.nlines < newpos)
+ {
+ /* we need to copy from the orig structure into new one */
+- lines.vector[lastmodline] =
+- orig_lines->vector[lastmodline + offset];
+- lines.vector[lastmodline]->refcount++;
++ lines.vector[lines.nlines] =
++ orig_lines->vector[lines.nlines + offset];
++ lines.vector[lines.nlines]->refcount++;
++ lines.nlines++;
+ }
+
+ switch (df->type)
+@@ -7246,7 +7245,12 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ struct line *q;
+ int nextline_newline;
+ size_t nextline_len;
+-
++
++ if (newpos + df->nlines > numlines)
++ {
++ err = 1;
++ break;
++ }
+ textend = df->new_lines + df->len;
+ nextline_newline = 0;
+ nextline_text = df->new_lines;
+@@ -7271,8 +7275,7 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ q->has_newline = nextline_newline;
+ q->refcount = 1;
+ memcpy (q->text, nextline_text, nextline_len);
+- lines.vector[lastmodline++] = q;
+- offset--;
++ lines.vector[lines.nlines++] = q;
+
+ nextline_text = (char *)p + 1;
+ nextline_newline = 0;
+@@ -7286,11 +7289,11 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ q->has_newline = nextline_newline;
+ q->refcount = 1;
+ memcpy (q->text, nextline_text, nextline_len);
+- lines.vector[lastmodline++] = q;
++ lines.vector[lines.nlines++] = q;
+
+ /* For each line we add the offset between the #'s
+ decreases. */
+- offset--;
++ offset -= df->nlines;
+ break;
+ }
+
+@@ -7301,7 +7304,9 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ if (df->pos + df->nlines > orig_lines->nlines)
+ err = 1;
+ else if (delvers)
++ {
+ for (ln = df->pos; ln < df->pos + df->nlines; ++ln)
++ {
+ if (orig_lines->vector[ln]->refcount > 1)
+ /* Annotate needs this but, since the original
+ * vector is disposed of before returning from
+@@ -7309,6 +7314,8 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ * there are multiple references.
+ */
+ orig_lines->vector[ln]->vers = delvers;
++ }
++ }
+ break;
+ }
+ }
+@@ -7328,21 +7335,20 @@ apply_rcs_changes (orig_lines, diffbuf, difflen, name, addvers, delvers)
+ else
+ {
+ /* add the rest of the remaining lines to the data vector */
+- for (; lastmodline < numlines; lastmodline++)
++ while (lines.nlines < numlines)
+ {
+ /* we need to copy from the orig structure into new one */
+- lines.vector[lastmodline] = orig_lines->vector[lastmodline
++ lines.vector[lines.nlines] = orig_lines->vector[lines.nlines
+ + offset];
+- lines.vector[lastmodline]->refcount++;
++ lines.vector[lines.nlines]->refcount++;
++ lines.nlines++;
+ }
+
+ /* Move the lines vector to the original structure for output,
+ * first deleting the old.
+ */
+ linevector_free (orig_lines);
+- orig_lines->vector = lines.vector;
+- orig_lines->lines_alloced = numlines;
+- orig_lines->nlines = lines.nlines;
++ *orig_lines = lines;
+ }
+
+ return !err;
+--
+1.7.2.3
+
diff --git a/extra/cvs/cvs-1.11.23-getline64.patch b/extra/cvs/cvs-1.11.23-getline64.patch
new file mode 100644
index 000000000..99942e058
--- /dev/null
+++ b/extra/cvs/cvs-1.11.23-getline64.patch
@@ -0,0 +1,34 @@
+--- cvs-1.11.23/lib/getline.c 2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.c.old 2008-06-03 19:06:25.000000000 +0200
+@@ -154,7 +154,7 @@
+ return ret;
+ }
+
+-int
++ssize_t
+ getline (lineptr, n, stream)
+ char **lineptr;
+ size_t *n;
+@@ -163,7 +163,7 @@
+ return getstr (lineptr, n, stream, '\n', 0, GETLINE_NO_LIMIT);
+ }
+
+-int
++ssize_t
+ getline_safe (lineptr, n, stream, limit)
+ char **lineptr;
+ size_t *n;
+--- cvs-1.11.23/lib/getline.h 2005-04-04 22:46:05.000000000 +0200
++++ cvs-1.11.23/lib/getline.h.old 2008-06-03 19:06:27.000000000 +0200
+@@ -11,9 +11,9 @@
+
+ #define GETLINE_NO_LIMIT -1
+
+-int
++ssize_t
+ getline __PROTO ((char **_lineptr, size_t *_n, FILE *_stream));
+-int
++ssize_t
+ getline_safe __PROTO ((char **_lineptr, size_t *_n, FILE *_stream,
+ int limit));
+ int
diff --git a/extra/cvs/cvs.install b/extra/cvs/cvs.install
new file mode 100644
index 000000000..f1cdd1f3e
--- /dev/null
+++ b/extra/cvs/cvs.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(cvs.info cvs-info-1 cvs-info-2 cvsclient.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/cvsps/PKGBUILD b/extra/cvsps/PKGBUILD
new file mode 100644
index 000000000..317e30290
--- /dev/null
+++ b/extra/cvsps/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 49847 2009-08-16 18:36:23Z jgc $
+# Maintainer: Jeff 'codemac' Mickey <jeff@archlinux.org>
+
+pkgname=cvsps
+pkgver=2.1
+pkgrel=2
+pkgdesc="Generating 'patchset' information from a CVS repository."
+url="http://www.cobite.com/cvsps/"
+license=('GPL')
+arch=('x86_64' 'i686')
+depends=('zlib')
+source=(http://www.cobite.com/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('bde2110ed9f5d14de8f8cb04e9d596fe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix=/usr || return 1
+ make prefix="${pkgdir}/usr" install || return 1
+}
diff --git a/extra/cx_freeze/FreezePython.sh b/extra/cx_freeze/FreezePython.sh
new file mode 100644
index 000000000..5bba21cac
--- /dev/null
+++ b/extra/cx_freeze/FreezePython.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd /usr/share/cx-freeze
+./FreezePython "$@"
diff --git a/extra/cx_freeze/PKGBUILD b/extra/cx_freeze/PKGBUILD
new file mode 100644
index 000000000..ee7476c7b
--- /dev/null
+++ b/extra/cx_freeze/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 116705 2011-03-25 11:30:44Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Roberto Alsina <ralsina@kde.org>
+
+pkgname=cx_freeze
+_tarname=cx_Freeze
+pkgver=4.2.3
+pkgrel=1
+pkgdesc="A set of utilities for freezing Python scripts into executables"
+arch=('i686' 'x86_64')
+url="http://www.python.net/crew/atuining/cx_Freeze/"
+license=('custom')
+depends=('python2')
+provides=('cxfreeze')
+source=("http://downloads.sourceforge.net/cx-freeze/$_tarname-$pkgver.tar.gz"
+ 'FreezePython.sh')
+md5sums=('a524cfd23de5d37e0ec9400ba1ccd6ad'
+ '5cc60d1644eba12a57c22cc1348a4afd')
+
+package() {
+ cd "$srcdir/$_tarname-$pkgver"
+
+ python2 setup.py install --root "$pkgdir/" --optimize 1
+
+ install -d "$pkgdir"/usr/share/cx-freeze/{bases,initscripts}
+ install -m755 source/bases/* "$pkgdir/usr/share/cx-freeze/bases"
+ install -m644 initscripts/* "$pkgdir/usr/share/cx-freeze/initscripts"
+ install -D -m644 LICENSE.txt "$pkgdir/usr/share/licenses/cx_freeze/COPYING"
+}
diff --git a/extra/cyrus-sasl-plugins/PKGBUILD b/extra/cyrus-sasl-plugins/PKGBUILD
new file mode 100644
index 000000000..a511d0fc2
--- /dev/null
+++ b/extra/cyrus-sasl-plugins/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 115177 2011-03-17 10:51:19Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cyrus-sasl-plugins
+pkgver=2.1.23
+pkgrel=4
+pkgdesc="Cyrus Simple Authentication Service Layer (SASL) library"
+arch=('i686' 'x86_64')
+url="http://cyrusimap.web.cmu.edu/"
+license=('custom')
+depends=('postgresql-libs>=9.0.3' 'heimdal>=1.3.3' 'libldap>2.4'
+ 'libmysqlclient>=5.5.10')
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-${pkgver}.tar.gz
+ cyrus-sasl-2.1.22-gcc44.patch
+ cyrus-sasl-2.1.23-db5-fix.patch)
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ '5deb4d67b53ecba20c7887fc8fdebee1'
+ '3ae4347705141145f31cf786c38ea9ef')
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/cyrus-sasl-${pkgver}
+ patch -Np1 -i $srcdir/cyrus-sasl-2.1.22-gcc44.patch
+ # from http://bugs.gentoo.org/show_bug.cgi?id=319935
+ patch -Np0 -i ${srcdir}/cyrus-sasl-2.1.23-db5-fix.patch
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-login \
+ --disable-plain \
+ --enable-sql \
+ --disable-sqlite \
+ --enable-gssapi=/usr/include/gssapi \
+ --with-mysql=/usr \
+ --with-pgsql=/usr \
+ --enable-postgresql \
+ --enable-ldapdb \
+ --with-ldap=/usr
+ cd sasldb
+ make
+ cd ../plugins
+ make
+}
+
+package () {
+ cd ${srcdir}/cyrus-sasl-${pkgver}/plugins
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ../COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+
+ rm -f ${pkgdir}/usr/lib/sasl2/libsasldb.*
+}
diff --git a/extra/cyrus-sasl-plugins/cyrus-sasl-2.1.22-gcc44.patch b/extra/cyrus-sasl-plugins/cyrus-sasl-2.1.22-gcc44.patch
new file mode 100644
index 000000000..e2621278b
--- /dev/null
+++ b/extra/cyrus-sasl-plugins/cyrus-sasl-2.1.22-gcc44.patch
@@ -0,0 +1,24 @@
+fix warnings with gcc-4.4
+
+http://bugs.gentoo.org/248738
+
+--- cyrus-sasl-2.1.22/plugins/digestmd5.c
++++ cyrus-sasl-2.1.22/plugins/digestmd5.c
+@@ -2715,7 +2715,7 @@ static sasl_server_plug_t digestmd5_serv
+ "DIGEST-MD5", /* mech_name */
+ #ifdef WITH_RC4
+ 128, /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
+@@ -4034,7 +4034,7 @@ static sasl_client_plug_t digestmd5_clie
+ "DIGEST-MD5",
+ #ifdef WITH_RC4 /* mech_name */
+ 128, /* max ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+ 112,
+ #else
+ 1,
diff --git a/extra/cyrus-sasl-plugins/cyrus-sasl-2.1.23-db5-fix.patch b/extra/cyrus-sasl-plugins/cyrus-sasl-2.1.23-db5-fix.patch
new file mode 100644
index 000000000..2ccd6cdb3
--- /dev/null
+++ b/extra/cyrus-sasl-plugins/cyrus-sasl-2.1.23-db5-fix.patch
@@ -0,0 +1,23 @@
+--- sasldb/db_berkeley.c.orig 2010-10-04 21:11:15.044010468 -0400
++++ sasldb/db_berkeley.c 2010-10-04 21:12:18.921998718 -0400
+@@ -100,7 +100,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR == 5
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
+
+--- utils/dbconverter-2.c.orig 2010-10-04 21:23:39.778000256 -0400
++++ utils/dbconverter-2.c 2010-10-04 21:24:50.384999893 -0400
+@@ -214,7 +214,7 @@
+ ret = db_create(mbdb, NULL, 0);
+ if (ret == 0 && *mbdb != NULL)
+ {
+-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
++#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR == 5
+ ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
+ #else
+ ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);
diff --git a/extra/cyrus-sasl/PKGBUILD b/extra/cyrus-sasl/PKGBUILD
new file mode 100644
index 000000000..a33001a96
--- /dev/null
+++ b/extra/cyrus-sasl/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 75335 2010-04-01 10:43:20Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cyrus-sasl
+pkgver=2.1.23
+pkgrel=4
+pkgdesc="SASL authentication daemon"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://asg.web.cmu.edu/cyrus/download/"
+depends=('pam>=1.0.1-2' 'heimdal>=1.3.1' 'libldap' 'cyrus-sasl-plugins>=2.1.22-7' 'db>=4.7')
+replaces=(cyrus-sasl-mysql cyrus-sasl-pgsql)
+conflicts=(cyrus-sasl-mysql cyrus-sasl-pgsql)
+backup=(etc/conf.d/saslauthd)
+source=(ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/${pkgname}-${pkgver}.tar.gz
+ saslauthd
+ saslauthd.conf.d)
+md5sums=('2eb0e48106f0e9cd8001e654f267ecbc'
+ '697dfb51206c398bc976ce9f4cffe72d'
+ '96d8a2f6189501f8044838e04d5cae7f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-ldap=/usr --with-saslauthd=/var/run/saslauthd
+ cd saslauthd
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ make testsaslauthd || return 1
+ install -m755 testsaslauthd "${pkgdir}/usr/sbin" || return 1
+
+ install -dm766 "${pkgdir}/var/run/saslauthd"
+ install -Dm755 "${srcdir}/saslauthd" "${pkgdir}/etc/rc.d/saslauthd"
+ install -Dm644 "${srcdir}/saslauthd.conf.d" "${pkgdir}/etc/conf.d/saslauthd"
+
+ install -Dm644 ../COPYING "${pkgdir}/usr/share/licenses/cyrus-sasl/COPYING"
+}
diff --git a/extra/cyrus-sasl/saslauthd b/extra/cyrus-sasl/saslauthd
new file mode 100644
index 000000000..c470c801c
--- /dev/null
+++ b/extra/cyrus-sasl/saslauthd
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/saslauthd ] && . /etc/conf.d/saslauthd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON_NAME="saslauthd"
+SASLAUTHD_BIN=/usr/sbin/saslauthd
+SASLAUTHD_PID=`pidof -o %PPID $SASLAUTHD_BIN`
+
+case "$1" in
+ start)
+ stat_busy "Starting $DAEMON_NAME"
+ [ -z "$SASLAUTHD_PID" ] && $SASLAUTHD_BIN $SASLAUTHD_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `pidof -o %PPID $SASLAUTHD_BIN` > /var/run/$DAEMON_NAME.pid
+ fi
+ add_daemon $DAEMON_NAME
+ stat_done
+ ;;
+
+ stop)
+ stat_busy "Stopping $DAEMON_NAME"
+ [ ! -z "$SASLAUTHD_PID" ] && kill $SASLAUTHD_PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm /var/run/$DAEMON_NAME.pid &> /dev/null
+ fi
+ rm_daemon $DAEMON_NAME
+ stat_done
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/cyrus-sasl/saslauthd.conf.d b/extra/cyrus-sasl/saslauthd.conf.d
new file mode 100644
index 000000000..b42b5d0b0
--- /dev/null
+++ b/extra/cyrus-sasl/saslauthd.conf.d
@@ -0,0 +1 @@
+SASLAUTHD_OPTS="-m /var/run/saslauthd -a pam"
diff --git a/extra/dansguardian/PKGBUILD b/extra/dansguardian/PKGBUILD
new file mode 100644
index 000000000..6d943cc2a
--- /dev/null
+++ b/extra/dansguardian/PKGBUILD
@@ -0,0 +1,148 @@
+# $Id: PKGBUILD 70467 2010-02-26 21:24:54Z dgriffiths $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=dansguardian
+pkgver=2.10.1.1
+pkgrel=2
+pkgdesc="Squid plugin for web content filtering."
+url="http://dansguardian.org"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('squid' 'pcre' 'zlib')
+install=${pkgname}.install
+source=(http://dansguardian.org/downloads/2/Stable/${pkgname}-${pkgver}.tar.gz
+dansguardian dg2.10.1.1-missing.stdio.patch)
+md5sums=('0987a1c9bfbdf398118386f10279611a' 'a65a2cb6309670ad8978f1544907d290'
+ '3444718c00cc17337cba711ceaa1c0e5')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/dg2.10.1.1-missing.stdio.patch
+ ./configure --prefix="/usr" --with-proxyuser=proxy --with-proxygroup=proxy \
+ --sysconfdir=/etc --localstatedir=/var --enable-email
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ install -D data/scripts/dansguardian ${pkgdir}/etc/logrotate.d/dansguardian
+ install -D -m755 ${srcdir}/dansguardian ${pkgdir}/etc/rc.d/dansguardian
+}
+
+backup=(etc/dansguardian/dansguardian.conf
+etc/dansguardian/dansguardianf1.conf
+etc/dansguardian/downloadmanagers/default.conf
+etc/dansguardian/downloadmanagers/fancy.conf
+etc/dansguardian/authplugins/proxy-digest.conf
+etc/dansguardian/authplugins/proxy-basic.conf
+etc/dansguardian/authplugins/ident.conf
+etc/dansguardian/authplugins/ip.conf
+etc/dansguardian/lists/weightedphraselist
+etc/dansguardian/lists/contentregexplist
+etc/dansguardian/lists/exceptionfileurllist
+etc/dansguardian/lists/exceptionextensionlist
+etc/dansguardian/lists/bannedextensionlist
+etc/dansguardian/lists/exceptionmimetypelist
+etc/dansguardian/lists/blacklists/ads/urls
+etc/dansguardian/lists/blacklists/ads/domains
+etc/dansguardian/lists/exceptionregexpurllist
+etc/dansguardian/lists/authplugins/ipgroups
+etc/dansguardian/lists/bannedregexpheaderlist
+etc/dansguardian/lists/phraselists/rta/banned
+etc/dansguardian/lists/phraselists/sport/weighted
+etc/dansguardian/lists/phraselists/proxies/weighted
+etc/dansguardian/lists/phraselists/safelabel/banned
+etc/dansguardian/lists/phraselists/peer2peer/weighted
+etc/dansguardian/lists/phraselists/drugadvocacy/weighted
+etc/dansguardian/lists/phraselists/googlesearches/banned
+etc/dansguardian/lists/phraselists/conspiracy/weighted
+etc/dansguardian/lists/phraselists/secretsocieties/weighted
+etc/dansguardian/lists/phraselists/idtheft/weighted
+etc/dansguardian/lists/phraselists/illegaldrugs/banned
+etc/dansguardian/lists/phraselists/illegaldrugs/weighted_portuguese
+etc/dansguardian/lists/phraselists/illegaldrugs/weighted
+etc/dansguardian/lists/phraselists/violence/weighted_portuguese
+etc/dansguardian/lists/phraselists/violence/weighted
+etc/dansguardian/lists/phraselists/domainsforsale/weighted
+etc/dansguardian/lists/phraselists/music/weighted
+etc/dansguardian/lists/phraselists/upstreamfilter/weighted
+etc/dansguardian/lists/phraselists/games/weighted
+etc/dansguardian/lists/phraselists/weapons/weighted_portuguese
+etc/dansguardian/lists/phraselists/weapons/weighted
+etc/dansguardian/lists/phraselists/legaldrugs/weighted
+etc/dansguardian/lists/phraselists/gore/weighted_portuguese
+etc/dansguardian/lists/phraselists/gore/weighted
+etc/dansguardian/lists/phraselists/warezhacking/weighted
+etc/dansguardian/lists/phraselists/pornography/weighted_chinese
+etc/dansguardian/lists/phraselists/pornography/weighted_malay
+etc/dansguardian/lists/phraselists/pornography/weighted_german
+etc/dansguardian/lists/phraselists/pornography/weighted_dutch
+etc/dansguardian/lists/phraselists/pornography/banned_portuguese
+etc/dansguardian/lists/phraselists/pornography/weighted_french
+etc/dansguardian/lists/phraselists/pornography/weighted_polish
+etc/dansguardian/lists/phraselists/pornography/banned
+etc/dansguardian/lists/phraselists/pornography/weighted_danish
+etc/dansguardian/lists/phraselists/pornography/weighted_japanese
+etc/dansguardian/lists/phraselists/pornography/weighted_portuguese
+etc/dansguardian/lists/phraselists/pornography/weighted_russian
+etc/dansguardian/lists/phraselists/pornography/weighted_italian
+etc/dansguardian/lists/phraselists/pornography/weighted_swedish
+etc/dansguardian/lists/phraselists/pornography/weighted
+etc/dansguardian/lists/phraselists/pornography/weighted_norwegian
+etc/dansguardian/lists/phraselists/pornography/weighted_spanish
+etc/dansguardian/lists/phraselists/personals/weighted_portuguese
+etc/dansguardian/lists/phraselists/personals/weighted
+etc/dansguardian/lists/phraselists/nudism/weighted
+etc/dansguardian/lists/phraselists/malware/weighted
+etc/dansguardian/lists/phraselists/goodphrases/weighted_general_polish
+etc/dansguardian/lists/phraselists/goodphrases/weighted_general_swedish
+etc/dansguardian/lists/phraselists/goodphrases/exception_email
+etc/dansguardian/lists/phraselists/goodphrases/exception
+etc/dansguardian/lists/phraselists/goodphrases/weighted_general
+etc/dansguardian/lists/phraselists/goodphrases/weighted_general_danish
+etc/dansguardian/lists/phraselists/goodphrases/weighted_general_malay
+etc/dansguardian/lists/phraselists/goodphrases/weighted_general_dutch
+etc/dansguardian/lists/phraselists/goodphrases/weighted_general_portuguese
+etc/dansguardian/lists/phraselists/goodphrases/weighted_news
+etc/dansguardian/lists/phraselists/translation/weighted
+etc/dansguardian/lists/phraselists/chat/weighted_italian
+etc/dansguardian/lists/phraselists/chat/weighted
+etc/dansguardian/lists/phraselists/news/weighted
+etc/dansguardian/lists/phraselists/badwords/weighted_german
+etc/dansguardian/lists/phraselists/badwords/weighted_dutch
+etc/dansguardian/lists/phraselists/badwords/weighted_french
+etc/dansguardian/lists/phraselists/badwords/weighted_portuguese
+etc/dansguardian/lists/phraselists/badwords/weighted_spanish
+etc/dansguardian/lists/phraselists/webmail/weighted
+etc/dansguardian/lists/phraselists/travel/weighted
+etc/dansguardian/lists/phraselists/gambling/banned_portuguese
+etc/dansguardian/lists/phraselists/gambling/banned
+etc/dansguardian/lists/phraselists/gambling/weighted_portuguese
+etc/dansguardian/lists/phraselists/gambling/weighted
+etc/dansguardian/lists/phraselists/forums/weighted
+etc/dansguardian/lists/phraselists/intolerance/banned_portuguese
+etc/dansguardian/lists/phraselists/intolerance/weighted_portuguese
+etc/dansguardian/lists/phraselists/intolerance/weighted
+etc/dansguardian/lists/logsitelist
+etc/dansguardian/lists/logregexpurllist
+etc/dansguardian/lists/greysitelist
+etc/dansguardian/lists/filtergroupslist
+etc/dansguardian/lists/downloadmanagers/managedmimetypelist
+etc/dansguardian/lists/downloadmanagers/managedextensionlist
+etc/dansguardian/lists/exceptionfilesitelist
+etc/dansguardian/lists/bannedmimetypelist
+etc/dansguardian/lists/pics
+etc/dansguardian/lists/exceptionurllist
+etc/dansguardian/lists/logurllist
+etc/dansguardian/lists/exceptionphraselist
+etc/dansguardian/lists/bannedurllist
+etc/dansguardian/lists/headerregexplist
+etc/dansguardian/lists/bannediplist
+etc/dansguardian/lists/exceptionsitelist
+etc/dansguardian/lists/bannedphraselist
+etc/dansguardian/lists/exceptioniplist
+etc/dansguardian/lists/bannedregexpurllist
+etc/dansguardian/lists/bannedsitelist
+etc/dansguardian/lists/urlregexplist
+etc/dansguardian/lists/greyurllist)
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/dansguardian/dansguardian b/extra/dansguardian/dansguardian
new file mode 100644
index 000000000..c537da8bd
--- /dev/null
+++ b/extra/dansguardian/dansguardian
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/dansguardian`
+case "$1" in
+ start)
+ stat_busy "Starting DansGuardian"
+ [ -z "$PID" ] && /usr/sbin/dansguardian
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dansguardian
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DansGuardian"
+ [ ! -z "$PID" ] && /usr/sbin/dansguardian -q &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dansguardian
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/dansguardian/dansguardian.install b/extra/dansguardian/dansguardian.install
new file mode 100644
index 000000000..05a72ad80
--- /dev/null
+++ b/extra/dansguardian/dansguardian.install
@@ -0,0 +1,8 @@
+post_install() {
+ echo "--------------------------------------------------"
+ echo "NOTE: DansGuardian is NOT free for commercial use."
+ echo " See http://dansguardian.org for details on"
+ echo " setup, configuration, and licensing."
+ echo "--------------------------------------------------"
+ chown -R proxy.proxy var/log/dansguardian
+}
diff --git a/extra/dansguardian/dg2.10.1.1-missing.stdio.patch b/extra/dansguardian/dg2.10.1.1-missing.stdio.patch
new file mode 100644
index 000000000..b92aef008
--- /dev/null
+++ b/extra/dansguardian/dg2.10.1.1-missing.stdio.patch
@@ -0,0 +1,10 @@
+--- src/downloadmanagers/fancy.cpp.orig 2009-09-13 18:37:56.000000000 -0400
++++ src/downloadmanagers/fancy.cpp 2009-09-13 18:38:14.000000000 -0400
+@@ -32,6 +32,7 @@
+ #include <unistd.h>
+ #include <iostream>
+ #include <math.h>
++#include <cstdio>
+
+
+ // GLOBALS
diff --git a/extra/darcs/PKGBUILD b/extra/darcs/PKGBUILD
new file mode 100644
index 000000000..c073061a5
--- /dev/null
+++ b/extra/darcs/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 116991 2011-03-27 10:10:32Z remy $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Simo Leone <neotuli@gmail.com>
+
+pkgname=darcs
+pkgver=2.5.2
+pkgrel=1
+pkgdesc="Decentralized replacement for CVS with roots in quantum mechanics"
+arch=(i686 x86_64)
+url="http://darcs.net/"
+license=('GPL')
+depends=('curl' 'gmp' 'ncurses>=5.6-7')
+makedepends=('ghc' 'haskell-tar<0.4' 'haskell-text<0.12'
+ 'haskell-hashed-storage<0.6' 'haskell-haskeline<0.7'
+ 'haskell-html<1.1' 'haskell-parsec<3.2' 'haskell-regex-compat<0.94')
+source=("http://darcs.net/releases/$pkgname-$pkgver.tar.gz")
+md5sums=('491b6ca01dec245a16112ad2c7e07dc1')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ runhaskell Setup.lhs configure --ghc -O --prefix=/usr \
+ --disable-library-for-ghci --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup.lhs build
+}
+
+check() {
+ cd ${srcdir}/$pkgname-$pkgver
+ runhaskell Setup.lhs test
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ runhaskell Setup.lhs copy --destdir=$pkgdir
+ rm -r $pkgdir/usr/lib/
+ chmod 755 $pkgdir/usr/share/man/man1/$pkgname.1
+}
+
diff --git a/extra/dasher/PKGBUILD b/extra/dasher/PKGBUILD
new file mode 100644
index 000000000..8051c708f
--- /dev/null
+++ b/extra/dasher/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 54725 2009-10-11 18:48:49Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=dasher
+pkgver=4.10.1
+pkgrel=2
+pkgdesc="Information-efficient text-entry interface, driven by natural continuous pointing gestures"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('at-spi>=1.27.91' 'libgnomeui>=2.24.1' 'gnome-speech>=0.4.25' 'gconf>=2.26.2-3' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'gnome-doc-utils>=0.17.3')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+options=(!emptydirs)
+install=dasher.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/4.10/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('83e556690ac54c4bb8c49c050510259e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper --enable-speech || return 1
+ make || return 1
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain dasher ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/dasher/dasher.install b/extra/dasher/dasher.install
new file mode 100644
index 000000000..7004dc5cb
--- /dev/null
+++ b/extra/dasher/dasher.install
@@ -0,0 +1,22 @@
+pkgname=dasher
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/davfs2/PKGBUILD b/extra/davfs2/PKGBUILD
new file mode 100644
index 000000000..ce4340ef7
--- /dev/null
+++ b/extra/davfs2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 111470 2011-02-27 10:09:32Z thomas $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgname=davfs2
+pkgver=1.4.6
+pkgrel=1
+pkgdesc="File system driver that allows you to mount a WebDAV server as a local disk drive."
+arch=(i686 x86_64)
+url="http://savannah.nongnu.org/projects/davfs2"
+license=('GPL')
+depends=('neon')
+backup=(etc/davfs2/davfs2.conf etc/davfs2/secrets)
+source=(http://mirrors.zerg.biz/nongnu/davfs2/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('e07252ec6db38c8f691bf2dada639e8300e058594f47a7c3c45020631621c356')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ dav_user=nobody dav_group=network ./configure --prefix=/usr --sysconfdir=/etc --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # Create some dirs
+ install -d -m755 "${pkgdir}/sbin"
+ make DESTDIR="${pkgdir}" install
+
+ rm -f ${pkgdir}/sbin/{u,}mount.davfs
+ ln -sf /usr/sbin/mount.davfs "${pkgdir}/sbin/mount.davfs"
+ ln -sf /usr/sbin/umount.davfs "${pkgdir}/sbin/umount.davfs"
+
+ rm -f ${pkgdir}/usr/share/davfs2/{BUGS,COPYING,FAQ,NEWS,TODO,ChangeLog,GPL,README,THANKS}
+}
diff --git a/extra/dbus-glib/PKGBUILD b/extra/dbus-glib/PKGBUILD
new file mode 100644
index 000000000..bfecd8af8
--- /dev/null
+++ b/extra/dbus-glib/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 98493 2010-11-10 13:05:31Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=dbus-glib
+pkgver=0.92
+pkgrel=1
+pkgdesc="GLib bindings for DBUS"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.freedesktop.org/wiki/Software/DBusBindings"
+depends=('dbus-core>=1.4.0' 'glib2>=2.26.0')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b595b36890c4f9f8f5d5dec131c495f8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --enable-static=no --enable-bash-completion=no
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/dbus-python/PKGBUILD b/extra/dbus-python/PKGBUILD
new file mode 100644
index 000000000..df66c9b8e
--- /dev/null
+++ b/extra/dbus-python/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 101132 2010-11-28 12:58:39Z ibiru $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=dbus-python
+pkgver=0.83.1
+pkgrel=2
+pkgdesc="Python bindings for DBUS"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+url="http://www.freedesktop.org/wiki/Software/DBusBindings"
+depends=('dbus-glib>=0.82' 'python2>=2.7')
+makedepends=('pkg-config' 'docutils')
+options=('!libtool')
+source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5fdf3970aa0c00020289de7ba8f3be18')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/dbus-qt3/PKGBUILD b/extra/dbus-qt3/PKGBUILD
new file mode 100644
index 000000000..c14237077
--- /dev/null
+++ b/extra/dbus-qt3/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 49853 2009-08-16 18:53:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=dbus-qt3
+pkgver=0.62
+pkgrel=4
+pkgdesc="QT3 bindings for DBUS"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.freedesktop.org/software/dbus"
+depends=('qt3' 'dbus-core>=1.2.14')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/dbus/dbus-qt3_0.62.git.20060814.orig.tar.gz
+ dbus-qt3-compile-fix-thoenig-01.patch
+ dbus-qt3-do-not-close-shared-connection-thoenig-01.patch)
+md5sums=('bdc61add46f64238fdc68a15e5f7269c'
+ '6c7a45865568340ee601d31e184653c1'
+ '9252c03a00d751201e53839d6a8ef78f')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ cd "${srcdir}/${pkgname}-${pkgver}/qt3"
+ patch -Np1 -i "${srcdir}/dbus-qt3-compile-fix-thoenig-01.patch" || return 1
+ patch -Np1 -i "${srcdir}/dbus-qt3-do-not-close-shared-connection-thoenig-01.patch" || return 1
+ cd ..
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
+ sed -e "s|DBUS_QT3_LIBS =|DBUS_QT3_LIBS = -L${QTDIR}/lib -lqt-mt|" \
+ -i Makefile qt3/Makefile || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/dbus-qt3/dbus-qt3-compile-fix-thoenig-01.patch b/extra/dbus-qt3/dbus-qt3-compile-fix-thoenig-01.patch
new file mode 100644
index 000000000..00b8b6026
--- /dev/null
+++ b/extra/dbus-qt3/dbus-qt3-compile-fix-thoenig-01.patch
@@ -0,0 +1,85 @@
+--- dbus-qt3/connection.cpp 2005-04-18 05:19:17.000000000 -0600
++++ dbus-qt3/connection.cpp 2005-04-19 14:35:07.000000000 -0600
+@@ -154,6 +154,7 @@
+
+ void* Connection::virtual_hook( int, void* )
+ {
++ return (void *)NULL;
+ }
+
+ void Connection::dbus_connection_setup_with_qt_main (DBusConnection *connection)
+--- dbus-qt3/message.cpp 2005-04-18 05:19:17.000000000 -0600
++++ dbus-qt3/message.cpp 2005-04-19 14:55:32.000000000 -0600
+@@ -359,6 +359,7 @@
+ Message Message::operator=( const Message& other )
+ {
+ //FIXME: ref the other.d->msg instead of copying it?
++ return (Message &)(d->msg);
+ }
+ /**
+ * Destructs message.
+@@ -508,42 +509,49 @@
+ const dbus_bool_t right_size_bool = b;
+ dbus_message_append_args( d->msg, DBUS_TYPE_BOOLEAN, &right_size_bool,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( Q_INT8 byte )
+ {
+ dbus_message_append_args( d->msg, DBUS_TYPE_BYTE, &byte,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( Q_INT32 num )
+ {
+ dbus_message_append_args( d->msg, DBUS_TYPE_INT32, &num,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( Q_UINT32 num )
+ {
+ dbus_message_append_args( d->msg, DBUS_TYPE_UINT32, &num,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( Q_INT64 num )
+ {
+ dbus_message_append_args( d->msg, DBUS_TYPE_INT64, &num,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( Q_UINT64 num )
+ {
+ dbus_message_append_args( d->msg, DBUS_TYPE_UINT64, &num,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( double num )
+ {
+ dbus_message_append_args( d->msg, DBUS_TYPE_DOUBLE, &num,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( const QString& str )
+@@ -551,11 +559,13 @@
+ const char *u = str.utf8();
+ dbus_message_append_args( d->msg, DBUS_TYPE_STRING, &u,
+ DBUS_TYPE_INVALID );
++ return (Message &)(d->msg);
+ }
+
+ Message& Message::operator<<( const QVariant& custom )
+ {
+ //FIXME: imeplement
++ return (Message &)(d->msg);
+ }
+
+ }
+
diff --git a/extra/dbus-qt3/dbus-qt3-do-not-close-shared-connection-thoenig-01.patch b/extra/dbus-qt3/dbus-qt3-do-not-close-shared-connection-thoenig-01.patch
new file mode 100644
index 000000000..c159c0a90
--- /dev/null
+++ b/extra/dbus-qt3/dbus-qt3-do-not-close-shared-connection-thoenig-01.patch
@@ -0,0 +1,12 @@
+--- dbus-qt3/connection.cpp 2006-10-20 16:33:29.000000000 +0200
++++ dbus-qt3/connection.cpp 2006-10-20 16:33:10.000000000 +0200
+@@ -106,7 +106,7 @@
+
+ void Connection::close()
+ {
+- dbus_connection_close( d->connection );
++ dbus_connection_unref ( d->connection );
+ }
+
+ void Connection::flush()
+
diff --git a/extra/dbus/30-dbus b/extra/dbus/30-dbus
new file mode 100644
index 000000000..603e92d3e
--- /dev/null
+++ b/extra/dbus/30-dbus
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# launches a session dbus instance
+
+dbuslaunch="`which dbus-launch 2>/dev/null`"
+if [ -n "$dbuslaunch" ] && [ -x "$dbuslaunch" ] && [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
+ eval `$dbuslaunch --sh-syntax --exit-with-session`
+fi
+
diff --git a/extra/dbus/PKGBUILD b/extra/dbus/PKGBUILD
new file mode 100644
index 000000000..d26bae01d
--- /dev/null
+++ b/extra/dbus/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 103703 2010-12-22 15:11:09Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+#
+pkgname=dbus
+pkgver=1.4.1
+pkgrel=1
+pkgdesc="Freedesktop.org message bus system"
+url="http://www.freedesktop.org/Software/dbus"
+arch=(i686 x86_64)
+license=('GPL' 'custom')
+depends=("dbus-core>=${pkgver}" 'libx11')
+makedepends=('libsm' 'libice')
+source=(http://dbus.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ 30-dbus)
+md5sums=('99cb057700c0455fb68f8d57902f77ac'
+ 'd14e59575f04e55d21a04907b6fd9f3c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ECHO="echo" ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
+ --with-system-pid-file=/var/run/dbus.pid \
+ --disable-verbose-mode --disable-static \
+ --enable-inotify --disable-dnotify \
+ --disable-tests --disable-asserts
+ make -C tools dbus-launch
+ install -m755 -d "${pkgdir}/usr/bin"
+ install -m755 -d "${pkgdir}/usr/share/man/man1"
+ install -m755 tools/dbus-launch "${pkgdir}/usr/bin/"
+ install -m644 doc/dbus-launch.1 "${pkgdir}/usr/share/man/man1/"
+
+ install -m755 -d "${pkgdir}/etc/X11/xinit/xinitrc.d"
+ install -m755 "${srcdir}/30-dbus" "${pkgdir}/etc/X11/xinit/xinitrc.d/"
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/dbus"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/dbus/"
+}
diff --git a/extra/dcfldd/PKGBUILD b/extra/dcfldd/PKGBUILD
new file mode 100644
index 000000000..f04cd8c56
--- /dev/null
+++ b/extra/dcfldd/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 47983 2009-07-30 02:30:21Z eric $
+# Contributor: Paul Mattal <pjmattal@elys.com>
+# Maintainer: Paul Mattal <pjmattal@elys.com>
+pkgname=dcfldd
+pkgver=1.3.4.1
+pkgrel=2
+pkgdesc="DCFL (DoD Computer Forensics Lab) dd replacement with hashing"
+arch=(i686 x86_64)
+url="http://dcfldd.sourceforge.net/"
+license=('GPL')
+depends=(glibc)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-${pkgver%.*}-${pkgver##*.}.tar.gz)
+md5sums=('952026c872f11b53ce0ec6681a3eef0a')
+sha1sums=('fb1c55f107a6af5ef8703a44d33476e508815913')
+
+build() {
+ cd "$srcdir/$pkgname-${pkgver%.*}-${pkgver##*.}" || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/dconf/PKGBUILD b/extra/dconf/PKGBUILD
new file mode 100644
index 000000000..4d95f6bfa
--- /dev/null
+++ b/extra/dconf/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id:
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=dconf
+pkgver=0.5.1
+pkgrel=1
+pkgdesc="A low-level configuration system."
+arch=(i686 x86_64)
+url="http://live.gnome.org/dconf"
+license=('LGPL2.1')
+depends=('glib2>=2.25.17')
+makedepends=('vala' 'gobject-introspection' 'gtk2')
+optdepends=('gtk2: for dconf-editor')
+install=dconf.install
+source=(http://download.gnome.org/sources/${pkgname}/0.5/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('0083d70e1b5e540d8d4b3f04fa5d17dff4c574136682fe3bdd9b5ecc196ec4f6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/dconf
+ make
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/dconf/dconf.install b/extra/dconf/dconf.install
new file mode 100644
index 000000000..5a87df82f
--- /dev/null
+++ b/extra/dconf/dconf.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
+
+post_upgrade(){
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/dcraw/PKGBUILD b/extra/dcraw/PKGBUILD
new file mode 100644
index 000000000..2334cc49b
--- /dev/null
+++ b/extra/dcraw/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 109077 2011-02-05 18:14:46Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=dcraw
+pkgver=9.06
+pkgrel=1
+pkgdesc="A command line based converter for digicams raw output"
+arch=('i686' 'x86_64')
+url="http://www.cybercom.net/~dcoffin/dcraw/"
+license=('custom')
+depends=('lcms')
+source=(http://www.cybercom.net/~dcoffin/dcraw/archive/${pkgname}-${pkgver}.tar.gz
+ license.txt)
+md5sums=('22921c24c697bbe43c1010f463176921' '110b4604a6dacd5537339c4082e9e12a')
+sha1sums=('7bd7b2283cf1ad1cb1591d0f69fd6831689b20b0' '502c8f0ac7434d48f5dcb2eefe7599627cb69454')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ gcc ${CFLAGS} -O3 -o dcraw dcraw.c -lm -ljpeg -llcms -DLOCALEDIR=\"/usr/share/locale/\"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}"
+ install -Dm755 dcraw "${pkgdir}"/usr/bin/dcraw
+ install -Dm644 dcraw.1 "${pkgdir}"/usr/share/man/man1/dcraw.1
+
+ for langchar in \
+ fr.latin1 it.latin1 de.latin1 pt.latin1 es.latin1 sv.latin1 \
+ ca.latin1 da.latin1 cs.latin2 hu.latin2 pl.latin2 eo.latin3 ru.koi8-r \
+ zh_TW.big5 zh_CN.gb2312
+ do
+ lang=$(echo $langchar | cut -d. -f1)
+ char=$(echo $langchar | cut -d. -f2-)
+ mkdir -p -m 755 "${pkgdir}"/usr/share/man/$lang/man1
+ iconv -f utf-8 -t $char dcraw_$lang.1 > "${pkgdir}"/usr/share/man/$lang/man1/dcraw.1
+ mkdir -p -m 755 "${pkgdir}"/usr/share/man/$lang.UTF-8/man1
+ cp dcraw_$lang.1 "${pkgdir}"/usr/share/man/$lang.UTF-8/man1/dcraw.1
+ mkdir -p -m 755 "${pkgdir}"/usr/share/locale/$lang/LC_MESSAGES
+ msgfmt -o "${pkgdir}"/usr/share/locale/$lang/LC_MESSAGES/dcraw.mo dcraw_$lang.po
+ done
+
+# dcraw_nl.1 is missing
+ langchar=nl.latin1
+ lang=$(echo $langchar | cut -d. -f1)
+ char=$(echo $langchar | cut -d. -f2-)
+ mkdir -p -m 755 "${pkgdir}"/usr/share/locale/$lang/LC_MESSAGES
+ msgfmt -o "${pkgdir}"/usr/share/locale/$lang/LC_MESSAGES/dcraw.mo dcraw_$lang.po
+
+ install -Dm644 "${srcdir}/license.txt" "${pkgdir}"/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/extra/dcraw/dcraw.install b/extra/dcraw/dcraw.install
new file mode 100644
index 000000000..26359645a
--- /dev/null
+++ b/extra/dcraw/dcraw.install
@@ -0,0 +1,13 @@
+post_install() {
+ cat << EOF
+
+NOTE for dcraw:
+----
+ ==> dcraw provides the simple commandline tools for raw conversion. If you
+ ==> are looking for a more sophisticated way consider gimp-ufraw, which
+ ==> provides a gimp-plugin and a standalone application that can even convert
+ ==> to 16-bit tiff files (which you can use in cinepaint eg.) So please do a
+ ==> 'pacman -S gimp-ufraw' to get it.
+
+EOF
+}
diff --git a/extra/dcraw/license.txt b/extra/dcraw/license.txt
new file mode 100644
index 000000000..5803cf601
--- /dev/null
+++ b/extra/dcraw/license.txt
@@ -0,0 +1,16 @@
+This is a command-line ANSI C program to convert raw photos from
+any digital camera on any computer running any operating system.
+
+No license is required to download and use dcraw.c. However,
+to lawfully redistribute this code, you must either (a) include
+full source code* for all executable files containing RESTRICTED
+functions, (b) remove all RESTRICTED functions, re-implement them,
+or copy them from an earlier, unrestricted Revision of dcraw.c,
+or (c) purchase a license from the author.
+
+The functions that process Foveon images have been RESTRICTED
+since Revision 1.237. All other code remains free for all uses.
+
+*If you have not modified dcraw.c in any way, a link to my
+homepage qualifies as "full source code".
+
diff --git a/extra/ddd/ChangeLog b/extra/ddd/ChangeLog
new file mode 100644
index 000000000..b3d8b00af
--- /dev/null
+++ b/extra/ddd/ChangeLog
@@ -0,0 +1,19 @@
+2010-08-11 Eric Belanger <eric@archlinux.org>
+
+ * ddd 3.3.12-2
+ * Built against elfutils
+ * Added gcc build patch
+ * Fixed install script
+
+2009-03-22 Eric Belanger <eric@archlinux.org>
+
+ * ddd 3.3.12-1
+ * Upstream update
+ * Updated license
+
+2008-11-11 Eric Belanger <eric@archlinux.org>
+
+ * ddd 3.3.11-5
+ * Rebuilt against libxaw 1.0.5 (close FS#12074)
+ * Added info file support
+ * Added ChangeLog
diff --git a/extra/ddd/PKGBUILD b/extra/ddd/PKGBUILD
new file mode 100644
index 000000000..8fdf4cc16
--- /dev/null
+++ b/extra/ddd/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 87277 2010-08-11 19:35:53Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=ddd
+pkgver=3.3.12
+pkgrel=2
+pkgdesc="A graphical front-end for command-line debuggers such as GDB, JDB, pydb, perl debugger..."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/ddd/"
+license=('GPL3' 'LGPL3')
+depends=('gcc-libs' 'ncurses' 'lesstif' 'libxaw' 'elfutils' 'libxext')
+optdepends=('gdb: to use the Gnu debugger' 'jdk: to use the Java debugger' 'pydb: to use the Python debugger' 'perl: to use the Perl debugger')
+install=ddd.install
+changelog=ChangeLog
+source=(http://ftp.gnu.org/gnu/ddd/${pkgname}-${pkgver}.tar.gz ddd-3.3.12-gcc44.patch)
+md5sums=('c50396db7bac3862a6d2555b3b22c34e' '41dc59d8cf502569bab1b1a4a222a1c6')
+sha1sums=('b91d2dfb1145af409138bd34517a898341724e56' '3d43c9d56347f248732b1d72f29c7bf799f03864')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../ddd-3.3.12-gcc44.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 icons/ddd.xpm "${pkgdir}/usr/share/pixmaps/ddd.xpm"
+}
diff --git a/extra/ddd/ddd-3.3.12-gcc44.patch b/extra/ddd/ddd-3.3.12-gcc44.patch
new file mode 100644
index 000000000..2464b2b4a
--- /dev/null
+++ b/extra/ddd/ddd-3.3.12-gcc44.patch
@@ -0,0 +1,10 @@
+--- ddd-3.3.12-orig/ddd/strclass.C
++++ ddd-3.3.12/ddd/strclass.C
+@@ -39,6 +39,7 @@
+ #include <limits.h>
+ #include <new>
+ #include <stdlib.h>
++#include <stdio.h>
+
+ void string::error(const char* msg) const
+ {
diff --git a/extra/ddd/ddd.install b/extra/ddd/ddd.install
new file mode 100644
index 000000000..a23e415e7
--- /dev/null
+++ b/extra/ddd/ddd.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(ddd.info.gz ddd-themes.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/ddrescue/PKGBUILD b/extra/ddrescue/PKGBUILD
new file mode 100644
index 000000000..9d57d4bb4
--- /dev/null
+++ b/extra/ddrescue/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 107823 2011-01-27 04:32:13Z paul $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=ddrescue
+pkgver=1.14
+pkgrel=1
+pkgdesc="GNU data recovery tool"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/ddrescue/ddrescue.html"
+license=('GPL3')
+depends=('gcc-libs')
+install=$pkgname.install
+source=(http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('d6f6cc63df9ad352bc6e43b65c975af5')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install install-man || return 1
+ rm "$pkgdir"/usr/share/info/dir || return 1
+}
diff --git a/extra/ddrescue/ddrescue.install b/extra/ddrescue/ddrescue.install
new file mode 100644
index 000000000..9e2afa74e
--- /dev/null
+++ b/extra/ddrescue/ddrescue.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(ddrescue.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/deskbar-applet/PKGBUILD b/extra/deskbar-applet/PKGBUILD
new file mode 100644
index 000000000..0845c3825
--- /dev/null
+++ b/extra/deskbar-applet/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 106730 2011-01-18 17:31:45Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=deskbar-applet
+pkgver=2.32.0
+pkgrel=4
+pkgdesc="An all-in-one search bar for the GNOME panel"
+arch=(i686 x86_64)
+url="http://raphael.slinckx.net/deskbar/"
+license=('GPL')
+depends=('python-gnomekeyring' 'python-gnomeapplet' 'dbus-python' 'python-gnomedesktop' 'python-wnck' 'python2-gconf')
+makedepends=('evolution-data-server' 'intltool' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+groups=('gnome-extra')
+install=deskbar-applet.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/deskbar-applet/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('123f2231ac8449f8376030c1b25394f9bab18d5d219292afc6f27eda77d4e684')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed '/^modulesdir=/ s/@libdir@/@libexecdir@/' -i data/deskbar-applet.pc.in
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib \
+ --disable-scrollkeeper --enable-evolution \
+ --disable-schemas-install
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ sed -i "s|#!/usr/bin/env python$|#!/usr/bin/env python2|" \
+ "$pkgdir/usr/lib/deskbar-applet/deskbar-applet"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain deskbar-applet ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/deskbar-applet/deskbar-applet.install b/extra/deskbar-applet/deskbar-applet.install
new file mode 100644
index 000000000..a97eaf8f2
--- /dev/null
+++ b/extra/deskbar-applet/deskbar-applet.install
@@ -0,0 +1,22 @@
+pkgname=deskbar-applet
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove () {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/desktop-file-utils/ChangeLog b/extra/desktop-file-utils/ChangeLog
new file mode 100644
index 000000000..8941e4825
--- /dev/null
+++ b/extra/desktop-file-utils/ChangeLog
@@ -0,0 +1,7 @@
+2008-07-22 Alexander Fehr <pizzapunk gmail com>
+
+ * desktop-file-utils-0.15-1:
+ New upstream release.
+ New maintainer.
+ Changed url.
+ Added ChangeLog.
diff --git a/extra/desktop-file-utils/PKGBUILD b/extra/desktop-file-utils/PKGBUILD
new file mode 100644
index 000000000..fcc02878f
--- /dev/null
+++ b/extra/desktop-file-utils/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 108960 2011-02-05 09:46:18Z andyrtr $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+
+pkgname=desktop-file-utils
+pkgver=0.18
+pkgrel=1
+pkgdesc="Command line utilities for working with desktop entries"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/desktop-file-utils"
+license=('GPL')
+depends=('glib2')
+source=(http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-${pkgver}.tar.bz2)
+md5sums=('d966b743eb394650f98d5dd56b9aece1')
+
+build() {
+ cd "${srcdir}/desktop-file-utils-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/desktop-file-utils-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/extra/devhelp/PKGBUILD b/extra/devhelp/PKGBUILD
new file mode 100644
index 000000000..5b2e644d5
--- /dev/null
+++ b/extra/devhelp/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 92057 2010-09-28 17:39:36Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=devhelp
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="API documentation browser for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://live.gnome.org/devhelp/"
+depends=('gconf>=2.32.0' 'libwnck>=2.30.5' 'libwebkit>=1.2.1' 'hicolor-icon-theme' 'libunique>=1.1.6')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool' '!emptydirs')
+install=devhelp.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/devhelp/2.32/devhelp-${pkgver}.tar.bz2)
+sha256sums=('61b342cbaf27379be9baa5df1f34c9464916601ec4378fa7e1c76fcc686553e4')
+
+build() {
+ cd "${srcdir}/devhelp-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain devhelp ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/devhelp/devhelp.install b/extra/devhelp/devhelp.install
new file mode 100644
index 000000000..4db5f6e5c
--- /dev/null
+++ b/extra/devhelp/devhelp.install
@@ -0,0 +1,22 @@
+pkgname=devhelp
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/devilspie/PKGBUILD b/extra/devilspie/PKGBUILD
new file mode 100644
index 000000000..1dba7d39b
--- /dev/null
+++ b/extra/devilspie/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 107892 2011-01-27 13:30:08Z ibiru $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=devilspie
+pkgver=0.22
+pkgrel=4
+pkgdesc="x11 window matching utility"
+arch=('i686' 'x86_64')
+url="http://www.burtonini.com/blog/computers/devilspie"
+license=('GPL')
+depends=('libwnck')
+makedepends=('pkgconfig' 'intltool' 'gnome-common')
+source=("http://www.burtonini.com/computing/$pkgname-$pkgver.tar.gz")
+md5sums=('4190e12f99ab92c0427e457d9fbfe231')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i -e '/-DG.*_DISABLE_DEPRECATED/d' src/Makefile.am
+
+ ./autogen.sh
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make prefix=$pkgdir/usr install
+ # Make and install blank config
+ mkdir -p $pkgdir/etc/devilspie
+ echo '(debug)' > $pkgdir/etc/devilspie/example.ds
+}
diff --git a/extra/dhcp/ChangeLog b/extra/dhcp/ChangeLog
new file mode 100644
index 000000000..9cffaa9d0
--- /dev/null
+++ b/extra/dhcp/ChangeLog
@@ -0,0 +1,11 @@
+
+2010-07-16 kevin <kevin@archlinux.org>
+ * dhcp 4.2.0-1
+
+2009-07-19 kevin <kevin@archlinux.org>
+ * dhcp 4.1.0.p1-1
+ * Adopted RedHat patch to fix bug where dhcpd won't start if ipv6 module
+ is not loaded. Fixes FS#12792.
+ * Added /etc/conf.d/dhcp feature contributed by Fabiano Furtado Pessoa
+ Coelho <fusca14@gmail.com>
+
diff --git a/extra/dhcp/PKGBUILD b/extra/dhcp/PKGBUILD
new file mode 100644
index 000000000..fe232f5bb
--- /dev/null
+++ b/extra/dhcp/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 104595 2011-01-04 13:21:07Z daniel $
+# Maintainer: Daniel Isenmann <daniel @archlinux.org>
+
+pkgbase=dhcp
+pkgname=('dhcp' 'dhclient')
+
+# separate patch levels with a period to maintain proper versioning.
+pkgver=4.2.0.2
+_pkgver=4.2.0-P2
+
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('custom:isc-dhcp')
+url="https://www.isc.org/software/dhcp"
+source=(http://ftp.isc.org/isc/${pkgname}/${pkgname}-${_pkgver}.tar.gz
+ dhcpd dhcp.conf.d
+ dhcp-4.1.1-missing-ipv6-not-fatal.patch
+ dhclient-script-pathFixes.patch)
+md5sums=('a98f4ce3ca651e7e28a5a1ae6398689e'
+ 'df22cffa7d7415ece7bb025b7bf774dd'
+ '49da3192e5c885e3c7d02f447c2dea5e'
+ 'fd64aeb4f399dcc41ea43089a3811094'
+ 'ddcc5cd576ec631ade6c4da21952b50b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${_pkgver}
+
+ # Define _GNU_SOURCE to fix IPV6.
+ sed '/^CFLAGS="$CFLAGS/ s/INGS"/INGS -D_GNU_SOURCE"/' -i configure
+
+ # Make not having ipv6 non-fatal.
+ patch -Np0 -i ${srcdir}/dhcp-4.1.1-missing-ipv6-not-fatal.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-srv-lease-file=/var/state/dhcp/dhcpd.leases \
+ --with-srv6-lease-file=/var/state/dhcp/dhcpd6.leases
+
+ make
+
+ patch -i ${srcdir}/dhclient-script-pathFixes.patch client/scripts/linux
+}
+
+package_dhcp(){
+ pkgdesc="A DHCP server, client, and relay agent"
+ depends=('openssl>=0.9.8a')
+ backup=('etc/dhcpd.conf' 'etc/conf.d/dhcp')
+ install=dhcp.install
+
+ cd ${srcdir}/${pkgname}-${_pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -D -m755 ${srcdir}/dhcpd ${pkgdir}/etc/rc.d/dhcpd
+ install -D -m644 ${srcdir}/dhcp.conf.d ${pkgdir}/etc/conf.d/${pkgbase}
+ mkdir -p ${pkgdir}/var/state/dhcp
+
+ # Remove dhclient
+ make -C client DESTDIR=${pkgdir} uninstall
+
+ # install license
+ install -m644 -D LICENSE ${pkgdir}/usr/share/licenses/dhcp/LICENSE
+}
+
+package_dhclient(){
+ pkgdesc="dhclient is standalone client from the dhcp package"
+ depends=('bash')
+
+ cd ${srcdir}/${pkgname}-${_pkgver}
+ make -C client DESTDIR=${pkgdir} install
+
+ # move dhclient.conf to dhclient.conf.example
+ mv ${pkgdir}/etc/dhclient.conf{,.example}
+
+ # directory needed for leasefiles
+ mkdir -p ${pkgdir}/var/lib/dhclient
+
+ # install dhclient linux script
+ install -m755 -D client/scripts/linux ${pkgdir}/sbin/dhclient-script
+
+ # install license
+ install -m644 -D LICENSE ${pkgdir}/usr/share/licenses/dhclient/LICENSE
+}
diff --git a/extra/dhcp/dhclient-script-pathFixes.patch b/extra/dhcp/dhclient-script-pathFixes.patch
new file mode 100644
index 000000000..e19c328d2
--- /dev/null
+++ b/extra/dhcp/dhclient-script-pathFixes.patch
@@ -0,0 +1,118 @@
+--- linux 2009-04-21 16:21:09.000000000 +0200
++++ linux_new 2010-06-30 19:06:20.000000000 +0200
+@@ -23,7 +23,7 @@
+ # of the $1 in its args.
+
+ # 'ip' just looks too weird. /sbin/ip looks less weird.
+-ip=/sbin/ip
++ip=/usr/sbin/ip
+
+ make_resolv_conf() {
+ if [ x"$new_domain_name_servers" != x ]; then
+@@ -112,9 +112,9 @@
+ if [ x$reason = xPREINIT ]; then
+ if [ x$alias_ip_address != x ]; then
+ # Bring down alias interface. Its routes will disappear too.
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+- ifconfig $interface 0 up
++ /sbin/ifconfig $interface 0 up
+
+ # We need to give the kernel some time to get the interface up.
+ sleep 1
+@@ -141,32 +141,32 @@
+ if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
+ [ x$alias_ip_address != x$old_ip_address ]; then
+ # Possible new alias. Remove old alias.
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+ if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then
+ # IP address changed. Bringing down the interface will delete all routes,
+ # and clear the ARP cache.
+- ifconfig $interface inet 0 down
++ /sbin/ifconfig $interface inet 0 down
+
+ fi
+ if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \
+ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
+
+- ifconfig $interface inet $new_ip_address $new_subnet_arg \
++ /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \
+ $new_broadcast_arg $mtu_arg
+ # Add a network route to the computed network address.
+ for router in $new_routers; do
+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
+- route add -host $router dev $interface
++ /sbin/route add -host $router dev $interface
+ fi
+- route add default gw $router $metric_arg dev $interface
++ /sbin/route add default gw $router $metric_arg dev $interface
+ done
+ fi
+ if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
+ then
+- ifconfig $interface:0- inet 0
+- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+- route add -host $alias_ip_address $interface:0
++ /sbin/ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
++ /sbin/route add -host $alias_ip_address $interface:0
+ fi
+ make_resolv_conf
+ exit_with_hooks 0
+@@ -176,42 +176,42 @@
+ || [ x$reason = xSTOP ]; then
+ if [ x$alias_ip_address != x ]; then
+ # Turn off alias interface.
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+ if [ x$old_ip_address != x ]; then
+ # Shut down interface, which will delete routes and clear arp cache.
+- ifconfig $interface inet 0 down
++ /sbin/ifconfig $interface inet 0 down
+ fi
+ if [ x$alias_ip_address != x ]; then
+- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+- route add -host $alias_ip_address $interface:0
++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
++ /sbin/route add -host $alias_ip_address $interface:0
+ fi
+ exit_with_hooks 0
+ fi
+
+ if [ x$reason = xTIMEOUT ]; then
+ if [ x$alias_ip_address != x ]; then
+- ifconfig $interface:0- inet 0
++ /sbin/ifconfig $interface:0- inet 0
+ fi
+- ifconfig $interface inet $new_ip_address $new_subnet_arg \
++ /sbin/ifconfig $interface inet $new_ip_address $new_subnet_arg \
+ $new_broadcast_arg $mtu_arg
+ set $new_routers
+ if ping -q -c 1 $1; then
+ if [ x$new_ip_address != x$alias_ip_address ] && \
+ [ x$alias_ip_address != x ]; then
+- ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
+- route add -host $alias_ip_address dev $interface:0
++ /sbin/ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
++ /sbin/route add -host $alias_ip_address dev $interface:0
+ fi
+ for router in $new_routers; do
+ if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
+- route add -host $router dev $interface
++ /sbin/route add -host $router dev $interface
+ fi
+- route add default gw $router $metric_arg dev $interface
++ /sbin/route add default gw $router $metric_arg dev $interface
+ done
+ make_resolv_conf
+ exit_with_hooks 0
+ fi
+- ifconfig $interface inet 0 down
++ /sbin/ifconfig $interface inet 0 down
+ exit_with_hooks 1
+ fi
+
diff --git a/extra/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch b/extra/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch
new file mode 100644
index 000000000..cc5ddb843
--- /dev/null
+++ b/extra/dhcp/dhcp-4.1.1-missing-ipv6-not-fatal.patch
@@ -0,0 +1,39 @@
+--- common/discover.c 2009-09-29 21:44:49.000000000 +0200
++++ common/discover.c_new 2010-06-30 19:40:02.000000000 +0200
+@@ -443,7 +443,7 @@
+ }
+
+ #ifdef DHCPv6
+- if (local_family == AF_INET6) {
++ if ((local_family == AF_INET6) && !access("/proc/net/if_inet6", R_OK)) {
+ ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
+ if (ifaces->fp6 == NULL) {
+ log_error("Error opening '/proc/net/if_inet6' to "
+@@ -454,6 +454,8 @@
+ ifaces->fp = NULL;
+ return 0;
+ }
++ } else {
++ ifaces->fp6 = NULL;
+ }
+ #endif
+
+@@ -721,7 +723,7 @@
+ return 1;
+ }
+ #ifdef DHCPv6
+- if (!(*err)) {
++ if (!(*err) && ifaces->fp6) {
+ if (local_family == AF_INET6)
+ return next_iface6(info, err, ifaces);
+ }
+@@ -740,7 +742,8 @@
+ ifaces->sock = -1;
+ #ifdef DHCPv6
+ if (local_family == AF_INET6) {
+- fclose(ifaces->fp6);
++ if(ifaces->fp6)
++ fclose(ifaces->fp6);
+ ifaces->fp6 = NULL;
+ }
+ #endif
diff --git a/extra/dhcp/dhcp.conf.d b/extra/dhcp/dhcp.conf.d
new file mode 100644
index 000000000..99ba6d13d
--- /dev/null
+++ b/extra/dhcp/dhcp.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to the DHCP server daemon
+#
+
+DHCP_ARGS="-q"
+
diff --git a/extra/dhcp/dhcp.install b/extra/dhcp/dhcp.install
new file mode 100644
index 000000000..c0ad39e36
--- /dev/null
+++ b/extra/dhcp/dhcp.install
@@ -0,0 +1,11 @@
+# arg 1: the new package version
+post_install() {
+ [ -f var/state/dhcp/dhcpd.leases ] || : >var/state/dhcp/dhcpd.leases
+ #echo "If dhcpd doesn't start, ensure the ipv6 kernel module is loaded."
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/dhcp/dhcpd b/extra/dhcp/dhcpd
new file mode 100755
index 000000000..1fbb31e7c
--- /dev/null
+++ b/extra/dhcp/dhcpd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/dhcp
+
+PIDFILE="/var/run/dhcpd.pid"
+PID=`cat $PIDFILE 2>/dev/null`
+case "$1" in
+ start)
+ stat_busy "Starting DHCP Server"
+ if [ "$PID" = "" ]; then
+ /usr/sbin/dhcpd $DHCP_ARGS
+ fi
+ if [ "$PID" != "" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dhcpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DHCP Server"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ rm -f $PIDFILE
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dhcpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/di/PKGBUILD b/extra/di/PKGBUILD
new file mode 100644
index 000000000..e9922cee3
--- /dev/null
+++ b/extra/di/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 107485 2011-01-26 04:42:16Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=di
+pkgver=4.27
+pkgrel=1
+pkgdesc="A disk information utility, displaying everything (and more) that your df command does"
+arch=('i686' 'x86_64')
+url="http://www.gentoo.com/di/"
+license=('ZLIB')
+depends=('glibc')
+options=('!makeflags')
+source=(http://www.gentoo.com/di/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b1a7ee87b83d72c273558a5ec815bfc3')
+sha1sums=('a079258f2a6d1861c0a42761864d3113b384da97')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_DIR="${pkgdir}/usr" install
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/diffstat/PKGBUILD b/extra/diffstat/PKGBUILD
new file mode 100644
index 000000000..f2651acf0
--- /dev/null
+++ b/extra/diffstat/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 108700 2011-02-02 16:57:59Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Matthias-Christian Ott <matthias.christian.at.tiscali.de>
+
+pkgname=diffstat
+pkgver=1.54
+pkgrel=1
+pkgdesc="Display a histogram of diff changes"
+arch=('i686' 'x86_64')
+url="http://invisible-island.net/diffstat"
+depends=('glibc')
+license=('GPL')
+source=("ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz")
+md5sums=('af08bef2eb37050ceb0c4fddedb2ee36')
+
+build () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir}/ install || return 1
+}
diff --git a/extra/digikam/PKGBUILD b/extra/digikam/PKGBUILD
new file mode 100644
index 000000000..bfaf79277
--- /dev/null
+++ b/extra/digikam/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 112844 2011-03-07 07:38:30Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=digikam
+pkgver=1.9.0
+pkgrel=1
+pkgdesc="Digital photo management application for kde"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://digikam.sourceforge.net"
+depends=('kdebase-runtime' 'kdegraphics-libs' 'kdepimlibs' 'kdeedu-marble' 'liblqr')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'doxygen')
+replaces=('digikamimageplugins')
+install=digikam.install
+optdepends=('kipi-plugins: for more extras and plugins')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ # use internel lensfun packages
+ cmake ../${pkgname}-${pkgver} \
+ -DLENSFUN_LIBRARY="" \
+ -DLENSFUN_INCLUDE_DIR="" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_MARBLEWIDGET=yes \
+ -DWITH_MarbleWidget=yes \
+ -DCMAKE_SKIP_RPATH=ON
+ make all
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('08934e97b63e8b1981f4087ec1a3372e')
diff --git a/extra/digikam/digikam.install b/extra/digikam/digikam.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/digikam/digikam.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/extra/dirmngr/PKGBUILD b/extra/dirmngr/PKGBUILD
new file mode 100644
index 000000000..e8faa4a88
--- /dev/null
+++ b/extra/dirmngr/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 87316 2010-08-12 11:57:22Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=dirmngr
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="A daemon to handle CRL and certificate requests"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="ftp://ftp.gnupg.org/gcrypt/dirmngr"
+depends=('libgcrypt' 'libldap' 'libksba' 'libgpg-error' 'libassuan' 'pth')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib
+ make
+ make DESTDIR=$pkgdir install
+}
+md5sums=('f2570f0248f5947daac200e85291b328')
diff --git a/extra/djvulibre/PKGBUILD b/extra/djvulibre/PKGBUILD
new file mode 100644
index 000000000..6db90e526
--- /dev/null
+++ b/extra/djvulibre/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 116498 2011-03-24 09:12:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: mgushee
+
+pkgname=djvulibre
+pkgver=3.5.24
+pkgrel=1
+pkgdesc="Suite to create, manipulate and view DjVu ('déjà vu') documents"
+arch=("i686" "x86_64")
+license=('GPL')
+url="http://djvu.sourceforge.net/"
+depends=('gcc-libs' 'libtiff' 'bash' 'hicolor-icon-theme')
+makedepends=('pkg-config')
+provides=("libdjvu=${pkgver}")
+replaces=('libdjvu')
+conflicts=('libdjvu')
+optdepends=('djview4: Viewer application')
+options=('!libtool')
+install=djvulibre.install
+source=(http://downloads.sourceforge.net/djvu/${pkgname}-${pkgver}.tar.gz)
+md5sums=('af83d27af5083198432a178d22b259c5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-desktopfiles
+ make
+ make DESTDIR="${pkgdir}" install
+
+ #Install icons for mime-types.
+ install -m755 -d ${pkgdir}/usr/share/icons/hicolor/{22x22,32x32,48x48,64x64}/mimetypes
+ for sz in 22 32 48 64; do
+ install -m644 desktopfiles/prebuilt-hi${sz}-djvu.png "${pkgdir}/usr/share/icons/hicolor/${sz}x${sz}/mimetypes/image-vnd.djvu.mime.png"
+ done
+}
diff --git a/extra/djvulibre/djvulibre.install b/extra/djvulibre/djvulibre.install
new file mode 100644
index 000000000..3e9bb5c49
--- /dev/null
+++ b/extra/djvulibre/djvulibre.install
@@ -0,0 +1,13 @@
+post_install() {
+ if [ -x usr/bin/gtk-update-icon-cache ]; then
+ gtk-update-icon-cache -q -f usr/share/icons/hicolor
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/dmapi/PKGBUILD b/extra/dmapi/PKGBUILD
new file mode 100644
index 000000000..7b909633d
--- /dev/null
+++ b/extra/dmapi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 47579 2009-07-24 05:47:49Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=dmapi
+pkgver=2.2.10
+pkgrel=2
+pkgdesc="Data migration API"
+arch=(i686 x86_64)
+url="http://oss.sgi.com/projects/xfs/"
+license=('GPL')
+depends=('glibc')
+makedepends=('xfsprogs')
+provides=('xfsdmapi')
+conflicts=('xfsdmapi')
+replaces=('xfsdmapi')
+options=('!libtool')
+source=(ftp://oss.sgi.com/projects/xfs/cmd_tars/$pkgname-$pkgver.tar.gz)
+md5sums=('c6e4ace10c446bbb92576e5dd19aec24')
+
+build() {
+ cd $startdir/src/dmapi-$pkgver
+ [ "$CARCH" = "x86_64" ] && export CFLAGS="$CLFAGS -fPIC"
+ autoconf
+ ./configure --prefix=$pkgdir/usr
+ make || return 1
+ make prefix=$pkgdir/usr/ install install-dev || return 1
+ # the static lib
+ install -D -m644 libdm/.libs/libdm.a $pkgdir/usr/lib/libdm.a
+ # and the header file, please
+ install -D -m644 include/dmapi.h $pkgdir/usr/include/xfs/dmapi.h
+ # kill libexec dir
+ rm -rf $pkgdir/usr/libexec
+}
diff --git a/extra/dmidecode/PKGBUILD b/extra/dmidecode/PKGBUILD
new file mode 100644
index 000000000..d013758ad
--- /dev/null
+++ b/extra/dmidecode/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 107032 2011-01-20 17:46:05Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=dmidecode
+pkgver=2.11
+pkgrel=1
+pkgdesc="Desktop Management Interface table related utilities"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/dmidecode"
+license=('GPL')
+depends=('glibc')
+source=(http://download.savannah.nongnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('535487cc041f2db746587cf40a2059f0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=/usr || return 1
+ make prefix=/usr DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/dnsmasq/PKGBUILD b/extra/dnsmasq/PKGBUILD
new file mode 100644
index 000000000..f1663ceb2
--- /dev/null
+++ b/extra/dnsmasq/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 111081 2011-02-23 22:48:06Z paul $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=dnsmasq
+pkgver=2.57
+pkgrel=1
+pkgdesc="Lightweight, easy to configure DNS forwarder and DHCP server"
+url="http://www.thekelleys.org.uk/dnsmasq/doc.html"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc' 'bash')
+makedepends=('libcap>=2.16')
+backup=('etc/dnsmasq.conf')
+install=
+source=("http://www.thekelleys.org.uk/$pkgname/$pkgname-$pkgver.tar.gz"
+ 'rc.dnsmasq')
+md5sums=('d10faeb409717eae94718d7716ca63a4' 'e956eee1ec24212a3254d2b168187495')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # Build
+ make || return 1
+
+ # Install
+ install -d $pkgdir/etc/rc.d || return 1
+ make PREFIX=/usr DESTDIR=$pkgdir install || return 1
+
+ install -D -m755 \
+ $srcdir/rc.dnsmasq $pkgdir/etc/rc.d/dnsmasq || return 1
+ install -D -m644 \
+ dnsmasq.conf.example $pkgdir/etc/dnsmasq.conf || return 1
+
+ # Make the Required Directories for DHCP Server Default Directories
+ install -d $pkgdir/var/db || return 1
+ install -d $pkgdir/var/lib/misc || return 1
+}
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/dnsmasq/rc.dnsmasq b/extra/dnsmasq/rc.dnsmasq
new file mode 100755
index 000000000..167607294
--- /dev/null
+++ b/extra/dnsmasq/rc.dnsmasq
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/dnsmasq`
+case "$1" in
+ start)
+ stat_busy "Starting DNS/DHCP daemon"
+ [ -z "$PID" ] && /usr/sbin/dnsmasq
+ if [ $? -gt 0 ] ; then
+ stat_fail
+ else
+ add_daemon dnsmasq # create the 'state' dir
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DNS/DHCP daemon"
+ [ "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dnsmasq # remove the 'state' dir
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 5
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/docker/PKGBUILD b/extra/docker/PKGBUILD
new file mode 100644
index 000000000..7633ee9c6
--- /dev/null
+++ b/extra/docker/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 36979 2009-04-29 06:44:04Z eric $
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=docker
+pkgver=1.5
+pkgrel=4
+pkgdesc="Docker is a docking application (WindowMaker dock app) which acts as a system tray for KDE and GNOME2."
+arch=(i686 x86_64)
+url="http://icculus.org/openbox/2/docker/"
+license=('GPL')
+depends=('glibc' 'glib2' 'libx11')
+source=(http://icculus.org/openbox/2/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('349320bebd43babb8b43e11c7aae0293')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ install -d $pkgdir/usr/bin || return 1
+ make || return 1
+ make PREFIX=$pkgdir/usr install || return 1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/dosbox/PKGBUILD b/extra/dosbox/PKGBUILD
new file mode 100644
index 000000000..e4d4be918
--- /dev/null
+++ b/extra/dosbox/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 80630 2010-05-20 16:06:03Z ibiru $
+# Maintainer :
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=dosbox
+pkgver=0.74
+pkgrel=1
+pkgdesc="An emulator with builtin DOS for running DOS Games"
+arch=('i686' 'x86_64')
+url="http://dosbox.sourceforge.net/"
+license=('GPL')
+depends=('sdl_net' 'sdl_sound' 'libgl' 'libpng' 'alsa-lib' 'gcc-libs')
+makedepends=('mesa')
+source=("http://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz"
+ 'dosbox.png' 'dosbox.desktop')
+md5sums=('b9b240fa87104421962d14eee71351e8'
+ '2aac25fc06979e375953fcc36824dc5e'
+ '85169ca599028bee8e29e0b3b7b34dd8')
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's/png_check_sig/png_sig_cmp/' configure || return 1
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/dosbox || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ install -Dm644 ${srcdir}/${pkgname}.png \
+ ${pkgdir}/usr/share/pixmaps/${pkgname}.png || return 1
+ install -Dm644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop || return 1
+}
diff --git a/extra/dosbox/dosbox.desktop b/extra/dosbox/dosbox.desktop
new file mode 100644
index 000000000..dbaf05ced
--- /dev/null
+++ b/extra/dosbox/dosbox.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+Name=dosbox Emulator
+GenericName=Emulator
+Comment=An emulator to run old DOS games
+Icon=dosbox
+Exec=dosbox
+Terminal=false
+Categories=Emulator;Application;
diff --git a/extra/dosbox/dosbox.png b/extra/dosbox/dosbox.png
new file mode 100644
index 000000000..b8a917986
--- /dev/null
+++ b/extra/dosbox/dosbox.png
Binary files differ
diff --git a/extra/dosfstools/PKGBUILD b/extra/dosfstools/PKGBUILD
new file mode 100644
index 000000000..587e15ec4
--- /dev/null
+++ b/extra/dosfstools/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 115131 2011-03-17 07:32:20Z tpowa $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=dosfstools
+pkgver=3.0.11
+pkgrel=1
+pkgdesc="DOS filesystem utilities"
+arch=(i686 x86_64)
+depends=('glibc')
+source=(http://www.daniel-baumann.ch/software/dosfstools/$pkgname-$pkgver.tar.bz2)
+url="http://www.daniel-baumann.ch/software/dosfstools/"
+license=('GPL2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+}
+
+package () {
+ cd $srcdir/$pkgname-$pkgver
+ make PREFIX=$pkgdir MANDIR=$pkgdir/usr/share/man DOCDIR=$pkgdir/usr/share/doc install
+}
+md5sums=('8d2211d5bd813164e20740e7c852aa06')
diff --git a/extra/dotconf/PKGBUILD b/extra/dotconf/PKGBUILD
new file mode 100644
index 000000000..14b7bb6f1
--- /dev/null
+++ b/extra/dotconf/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Chris Brannon <cmbrannon@cox.net>
+
+pkgname=dotconf
+pkgver=1.3
+pkgrel=1
+pkgdesc='A C library for parsing configuration files'
+url="http://www.opentts.org/projects/dotconf/"
+arch=('i686' 'x86_64')
+depends=('glibc')
+makedepends=('pkgconfig' 'findutils')
+license=('LGPL2.1')
+source=("http://files.opentts.org/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('35c19ec9b96648f53e987e47e52dbc4c')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # There are no manpages. Docu consists of textfiles and small examples.
+ # "make install" didn't install the docu, so do it manually.
+ install -d ${pkgdir}/usr/share/doc/${pkgname}
+ cp -a doc/*.txt README examples/ ${pkgdir}/usr/share/doc/${pkgname}
+ # Get rid of files specific to Microsoft products:
+ find ${pkgdir}/usr/share/doc/${pkgname} -name '*.dsp' | xargs rm -f
+
+ # Dotconf uses libpool internally for memory management. No need to install.
+ rm -f ${pkgdir}/usr/lib/libpool.a
+ rm -f ${pkgdir}/usr/include/libpool.h
+}
diff --git a/extra/dovecot/PKGBUILD b/extra/dovecot/PKGBUILD
new file mode 100644
index 000000000..c8f87f1e9
--- /dev/null
+++ b/extra/dovecot/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 115180 2011-03-17 10:58:18Z andrea $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Contributor: Federico Quagliata (quaqo) <quaqo@despammed.com>
+# Contributor: GARETTE Emmanuel <gnunux at laposte dot net>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=dovecot
+pkgver=2.0.11
+pkgrel=2
+pkgdesc="An IMAP and POP3 server written with security primarily in mind"
+arch=('i686' 'x86_64')
+url="http://dovecot.org/"
+license=("LGPL")
+depends=('heimdal>=1.3.3' 'openssl' 'sqlite3>=3.7.5' 'libmysqlclient>=5.5.10'
+ 'postgresql-libs>=9.0.3' 'bzip2' 'expat' 'curl')
+makedepends=('pam>=1.1.1' 'libcap>=2.19' 'libldap>=2.4.22')
+optdepends=('libldap: ldap plugin')
+provides=('imap-server' 'pop3-server')
+options=('!libtool')
+backup=(etc/dovecot/dovecot.conf
+ etc/dovecot/conf.d/{10-auth,10-director,10-logging,10-mail,10-master,10-ssl}.conf
+ etc/dovecot/conf.d/{15-lda,20-imap,20-lmtp,20-pop3}.conf
+ etc/dovecot/conf.d/{90-acl,90-plugin,90-quota}.conf
+ etc/dovecot/conf.d/auth-{checkpassword,deny,ldap,master,passwdfile,sql,static,system,vpopmail}.conf.ext
+ etc/ssl/dovecot-openssl.cnf)
+install=$pkgname.install
+source=(http://dovecot.org/releases/2.0/${pkgname}-${pkgver}.tar.gz dovecot.sh)
+md5sums=('088a850d6583a7ec0a8074ce929b3496'
+ 'd020d43eab4ded6fb379dadc570a9490')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+
+ # configure with openssl, mysql, and postgresql support
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib --with-moduledir=/usr/lib/dovecot/modules \
+ --disable-static \
+ --with-nss \
+ --with-pam \
+ --with-mysql \
+ --with-pgsql \
+ --with-sqlite \
+ --with-ssl=openssl --with-ssldir=/etc/dovecot/ssl \
+ --with-gssapi \
+ --with-ldap=plugin \
+ --with-zlib --with-bzlib \
+ --with-libcap \
+ --with-solr \
+ --with-docs
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+
+ # install the launch script
+ install -D -m755 ${srcdir}/$pkgname.sh ${pkgdir}/etc/rc.d/$pkgname
+
+ # install example conf files and ssl.conf
+ install -d -m755 ${pkgdir}/etc/dovecot/conf.d
+ install -m 644 ${pkgdir}/usr/share/doc/dovecot/example-config/conf.d/*.conf ${pkgdir}/etc/dovecot/conf.d
+ install -m 644 ${pkgdir}/usr/share/doc/dovecot/example-config/conf.d/*.conf.ext ${pkgdir}/etc/dovecot/conf.d
+ install -m 644 ${pkgdir}/usr/share/doc/dovecot/example-config/dovecot.conf ${pkgdir}/etc/dovecot/
+ install -d -m755 ${pkgdir}/etc/ssl
+ install -m 644 ${srcdir}/$pkgname-$pkgver/doc/dovecot-openssl.cnf ${pkgdir}/etc/ssl/
+
+ rm ${pkgdir}/etc/dovecot/README
+
+ # install dovecot userdir - https://bugs.archlinux.org/task/20533
+ install -d -m755 ${pkgdir}/var/run/dovecot/{login,empty}
+ chmod 755 ${pkgdir}/var/run/dovecot
+ chmod 750 ${pkgdir}/var/run/dovecot/login
+}
diff --git a/extra/dovecot/dovecot.install b/extra/dovecot/dovecot.install
new file mode 100644
index 000000000..51d1509ee
--- /dev/null
+++ b/extra/dovecot/dovecot.install
@@ -0,0 +1,57 @@
+# arg 1: the new package version
+post_install() {
+
+ # Make sure the group and user "dovecot"+"dovenull exists on this system and have the correct values
+
+ # dovecot
+ if grep -q "^dovecot:" /etc/group &> /dev/null ; then
+ groupmod -g 76 -n dovecot dovecot &> /dev/null
+ else
+ groupadd -g 76 dovecot &> /dev/null
+ fi
+
+ if grep -q "^dovecot:" /etc/passwd 2> /dev/null ; then
+ usermod -s /sbin/nologin -c "Dovecot user" -d /var/run/dovecot/login -u 76 -g dovecot dovecot &> /dev/null
+ else
+ useradd -s /sbin/nologin -c "Dovecot user" -d /var/run/dovecot/login -u 76 -g dovecot -m -r dovecot &> /dev/null
+ fi
+
+ # dovenull
+ if grep -q "^dovenull:" /etc/group &> /dev/null ; then
+ groupmod -g 74 -n dovenull dovenull &> /dev/null
+ else
+ groupadd -g 74 dovenull &> /dev/null
+ fi
+
+ if grep -q "^dovenull:" /etc/passwd 2> /dev/null ; then
+ usermod -s /sbin/nologin -c "Dovecot user for completely untrustworthy processes" -d /var/run/dovecot/login -u 74 -g dovenull dovenull &> /dev/null
+ else
+ useradd -s /sbin/nologin -c "Dovecot user for completely untrustworthy processes" -d /var/run/dovecot/login -u 74 -g dovenull -m -r dovenull &> /dev/null
+ fi
+
+ # harden some permissions
+ chgrp dovenull /var/run/dovecot/login
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+ if [ "`vercmp $2 2.0.0`" -lt 0 ]; then
+ # important upgrade notice
+ echo "> IMPORTANT DOVECOT 2.0 UPGRADE NOTICE"
+ echo "> ------------------------------------"
+ echo "> see http://wiki2.dovecot.org/Upgrading/2.0"
+ echo "> make sure, you convert the dovecot.conf file"
+ fi
+
+}
+
+# arg 1: the old package version
+pre_remove() {
+ userdel dovecot &> /dev/null
+ userdel dovenull &> /dev/null
+ groupdel dovecot &> /dev/null || /bin/true
+ groupdel dovenull &> /dev/null || /bin/true
+ rm -rf /var/run/dovecot/ &> /dev/null || /bin/true
+}
diff --git a/extra/dovecot/dovecot.sh b/extra/dovecot/dovecot.sh
new file mode 100755
index 000000000..b7555fe50
--- /dev/null
+++ b/extra/dovecot/dovecot.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/dovecot`
+case "$1" in
+ start)
+ stat_busy "Starting Dovecot"
+ [ -z "$PID" ] && /usr/sbin/dovecot
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon dovecot
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Dovecot"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon dovecot
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/doxygen/PKGBUILD b/extra/doxygen/PKGBUILD
new file mode 100644
index 000000000..2f4cbdf42
--- /dev/null
+++ b/extra/doxygen/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 117080 2011-03-28 14:57:03Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgbase=doxygen
+pkgname=('doxygen' 'doxygen-docs')
+pkgver=1.7.4
+pkgrel=1
+license=('GPL')
+arch=(i686 x86_64)
+url="http://www.doxygen.org/"
+makedepends=('flex' 'qt' 'texlive-core' 'ghostscript' 'texlive-latexextra')
+source=(ftp://ftp.stack.nl/pub/users/dimitri/${pkgname}-${pkgver}.src.tar.gz)
+md5sums=('ff908759ff7cd9464424b04ae6c68e48')
+sha1sums=('4f68b655c93265cb15ef1b8c9ca35ebc39698cf0')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ QTDIR=/usr ./configure --prefix /usr --with-doxywizard
+ make
+}
+
+package_doxygen() {
+ pkgdesc="A documentation system for C++, C, Java, IDL and PHP"
+ depends=('gcc-libs')
+ optdepends=('graphviz: for caller/callee graph generation'
+ 'qt: for doxywizard')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make INSTALL="${pkgdir}"/usr MAN1DIR=share/man/man1 install
+}
+
+package_doxygen-docs() {
+ pkgdesc="Developer documentation for doxygen"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make INSTALL="${pkgdir}"/usr MAN1DIR=share/man/man1 install_docs
+}
diff --git a/extra/dssi/LICENSE b/extra/dssi/LICENSE
new file mode 100644
index 000000000..ddef4f23b
--- /dev/null
+++ b/extra/dssi/LICENSE
@@ -0,0 +1,77 @@
+Licensing
+---------
+
+The DSSI API itself (dssi.h) is licensed under the GNU Lesser General
+Public License. See COPYING for details.
+
+The jack-dssi-host is provided under a BSD-style license. This means
+you can do anything you want with it so long as you retain the
+copyright attribution and license information. See the source files
+for details.
+
+Licensing for the files in the examples directory may vary: please
+check the individual files for details. Most of them are in the
+public domain, which means you can use them for anything you want.
+
+
+
+/* jack-dssi-host.c
+ *
+ * DSSI Soft Synth Interface
+ *
+ * This is a host for DSSI plugins. It listens for MIDI events on an
+ * ALSA sequencer port, delivers them to DSSI synths and outputs the
+ * result via JACK.
+ *
+ * This program expects the names of up to 16 DSSI synth plugins, in
+ * the form '<dll-name>:<label>',* to be provided on the command line.
+ * If just '<dll-name>' is provided, the first plugin in the DLL is
+ * is used. MIDI channels are assigned to each plugin instance, in
+ * order, beginning with channel 0 (zero-based). A plugin may be
+ * easily instantiated multiple times by preceding its name and label
+ * with a dash followed immediately by the desired number of instances,
+ * e.g. '-3 my_plugins.so:zoomy' would create three instances of the
+ * 'zoomy' plugin.
+ */
+
+/*
+ * Copyright 2004, 2009 Chris Cannam, Steve Harris and Sean Bolton.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * for any purpose is hereby granted without fee, provided that the
+ * above copyright notice and this permission notice are included in
+ * all copies or substantial portions of the software.
+ */
+
+
+/*
+ * This program is in the public domain
+ *
+ * $Id: dssi_osc_send.c,v 1.5 2004/07/04 22:24:51 smbolton Exp $
+ */
+
+/*
+ * This program is in the public domain
+ *
+ * $Id: dssi_osc_update.c,v 1.6 2005/10/12 17:08:26 smbolton Exp $
+ */
+
+/* less_trivial_synth.c
+
+ DSSI Soft Synth Interface
+ Constructed by Chris Cannam, Steve Harris and Sean Bolton
+
+ This is an example DSSI synth plugin written by Steve Harris.
+
+ This example file is in the public domain.
+*/
+
+/* trivial_sampler.c
+
+ DSSI Soft Synth Interface
+ Constructed by Chris Cannam, Steve Harris and Sean Bolton
+
+ A straightforward DSSI plugin sampler.
+
+ This example file is in the public domain.
+*/
diff --git a/extra/dssi/PKGBUILD b/extra/dssi/PKGBUILD
new file mode 100644
index 000000000..a781c4430
--- /dev/null
+++ b/extra/dssi/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 91030 2010-09-21 05:56:54Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Pajaro
+
+pkgname=dssi
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="API for audio processing plugins/softsynths with user interfaces"
+arch=(i686 x86_64)
+url="http://dssi.sourceforge.net/"
+license=('LGPL' 'BSD')
+depends=('liblo' 'jack')
+makedepends=('ladspa' 'qt')
+optdepends=('qt: example plugins')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ LICENSE)
+md5sums=('dfc850e66fae94e7ec08aebb43d07848'
+ '258ca4d0ca28c5c4d4675147621fac18')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 "$srcdir/LICENSE" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/dvd+rw-tools/PKGBUILD b/extra/dvd+rw-tools/PKGBUILD
new file mode 100644
index 000000000..e3b21ce31
--- /dev/null
+++ b/extra/dvd+rw-tools/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 49778 2009-08-15 15:54:31Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=dvd+rw-tools
+pkgver=7.1
+pkgrel=2
+pkgdesc="dvd burning tools"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://fy.chalmers.se/~appro/linux/DVD+RW"
+depends=('cdrkit' 'gcc-libs')
+source=(http://fy.chalmers.se/~appro/linux/DVD+RW/tools/${pkgname}-${pkgver}.tar.gz
+ buildpatch-7.0-3-20080108-karolina.patch)
+md5sums=('8acb3c885c87f6838704a0025e435871'
+ '54b4dc52f5380216d4d9fc2dd2086d31')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # fix build, thank you Karolina
+ patch -Np1 -i "${srcdir}/buildpatch-7.0-3-20080108-karolina.patch"
+
+ make || return 1
+
+ install -m755 -d "${pkgdir}/usr/bin"
+ install -m755 -d "${pkgdir}/usr/share/man/man1"
+
+ install -m755 growisofs dvd+rw-booktype dvd+rw-format dvd+rw-mediainfo dvd-ram-control "${pkgdir}/usr/bin/" || return 1
+ install -m644 growisofs.1 ${pkgdir}/usr/share/man/man1/growisofs.1 || return 1
+}
diff --git a/extra/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch b/extra/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch
new file mode 100644
index 000000000..0b7951f1b
--- /dev/null
+++ b/extra/dvd+rw-tools/buildpatch-7.0-3-20080108-karolina.patch
@@ -0,0 +1,22 @@
+diff -Naur dvd+rw-tools-7.0/growisofs.c dvd+rw-tools-7.0_new/growisofs.c
+--- dvd+rw-tools-7.0/growisofs.c 2006-09-24 19:28:53.000000000 +0200
++++ dvd+rw-tools-7.0_new/growisofs.c 2008-01-08 00:56:57.000000000 +0100
+@@ -418,6 +418,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <assert.h>
++#include <limits.h>
+ #include "mp.h"
+
+ #if defined(__unix) || defined(__unix__)
+diff -Naur dvd+rw-tools-7.0/transport.hxx dvd+rw-tools-7.0_new/transport.hxx
+--- dvd+rw-tools-7.0/transport.hxx 2006-09-23 13:29:07.000000000 +0200
++++ dvd+rw-tools-7.0_new/transport.hxx 2008-01-08 00:57:36.000000000 +0100
+@@ -137,6 +137,7 @@
+ #include <sys/wait.h>
+ #include <sys/utsname.h>
+ #include <scsi/sg.h>
++#include <limits.h>
+ #if !defined(SG_FLAG_LUN_INHIBIT)
+ # if defined(SG_FLAG_UNUSED_LUN_INHIBIT)
+ # define SG_FLAG_LUN_INHIBIT SG_FLAG_UNUSED_LUN_INHIBIT
diff --git a/extra/dvdauthor/PKGBUILD b/extra/dvdauthor/PKGBUILD
new file mode 100644
index 000000000..d402220ce
--- /dev/null
+++ b/extra/dvdauthor/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 104015 2010-12-25 22:35:13Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+# Contributor: Nicolai Lissner <nlissne@linux01.gwdg.de>
+
+pkgname=dvdauthor
+pkgver=0.7.0
+pkgrel=1
+pkgdesc="DVD authoring tools"
+arch=('i686' 'x86_64')
+url="http://dvdauthor.sourceforge.net/"
+license=('GPL')
+depends=('libdvdread' 'imagemagick' 'libxml2' 'libpng' 'fribidi')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('33a447fb98ab3293ac40f869eedc17ff')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/dvdrip/PKGBUILD b/extra/dvdrip/PKGBUILD
new file mode 100644
index 000000000..03283687d
--- /dev/null
+++ b/extra/dvdrip/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 110171 2011-02-17 08:54:21Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Fredrik Hammar <Horney_C86@Hotmail.com>
+
+pkgname=dvdrip
+pkgver=0.98.11
+pkgrel=6
+pkgdesc="A Gtk frontend for transcode writen in Perl"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.exit1.org/dvdrip/"
+install=${pkgname}.install
+depends=('perl-gtk2-ex-formfactory' 'transcode' 'imagemagick'
+ 'perl-libintl-perl' 'desktop-file-utils' 'perl-event-execflow')
+optdepends=('ogmtools: for ogm/odd video creation'
+ 'lsdvd: fast reading of DVD table')
+source=(http://www.exit1.org/dvdrip/dist/${pkgname}-${pkgver}.tar.gz \
+ ${pkgname}.desktop)
+options=(!emptydirs)
+md5sums=('6dfa4199d451757a37eea233a07da4c0'
+ 'e91cf411928fd0500d07a0022b4ef546')
+
+build() {
+ export MAKEFLAGS="-j1"
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+
+ install -Dm644 ${srcdir}/${pkgname}.desktop "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -Dm 644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/dvdrip/dvdrip.desktop b/extra/dvdrip/dvdrip.desktop
new file mode 100644
index 000000000..dd19b4aae
--- /dev/null
+++ b/extra/dvdrip/dvdrip.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Name=dvd::rip
+Comment=DVD Ripper and Encoder - Backup and compression utility for DVDs
+Exec=/usr/bin/vendor_perl/dvdrip
+Icon=/usr/share/perl5/vendor_perl/Video/DVDRip/icon.xpm
+Terminal=false
+Type=Application
+Categories=Application;AudioVideo;Video;
diff --git a/extra/dvdrip/dvdrip.install b/extra/dvdrip/dvdrip.install
new file mode 100644
index 000000000..4cd6160c4
--- /dev/null
+++ b/extra/dvdrip/dvdrip.install
@@ -0,0 +1,19 @@
+# this is the scrollkeeper handling sample file
+
+post_install() {
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
diff --git a/extra/dvdrtools/PKGBUILD b/extra/dvdrtools/PKGBUILD
new file mode 100644
index 000000000..da84f79bb
--- /dev/null
+++ b/extra/dvdrtools/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 46392 2009-07-17 19:24:22Z giovanni $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+pkgname=dvdrtools
+pkgver=0.3.1
+pkgrel=2
+pkgdesc="A fork of cdrtools, with the primary goal of supporting writable DVD drives"
+arch=(i686 x86_64)
+url="http://savannah.nongnu.org/projects/dvdrtools/"
+license=('GPL')
+depends=('glibc' 'file')
+makedepends=('transcode')
+optdepends=('transcode: video/DVD ripper and encoder for the terminal/console')
+conflicts=('cdrkit')
+source=(ftp://ftp.archlinux.org/other/dvdrtools/$pkgname-$pkgver.tar.gz)
+md5sums=('5707b7e877b853e258cd738938833006')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/dvgrab/PKGBUILD b/extra/dvgrab/PKGBUILD
new file mode 100644
index 000000000..cb1cef1e2
--- /dev/null
+++ b/extra/dvgrab/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 63911 2010-01-19 01:19:21Z andrea $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=dvgrab
+pkgver=3.5
+pkgrel=2
+pkgdesc="Saves audio and video data from an IEEE (FireWire) digital source"
+arch=('i686' 'x86_64')
+url="http://www.kinodv.org"
+license=('GPL')
+depends=('libdv' 'libavc1394' 'libjpeg>=8' 'libiec61883' 'gcc-libs')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/kino/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b39a242ce63e80fc347ab59931f75649')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/easytag/PKGBUILD b/extra/easytag/PKGBUILD
new file mode 100644
index 000000000..31ea2fff8
--- /dev/null
+++ b/extra/easytag/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 71340 2010-03-06 18:44:25Z andrea $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=easytag
+pkgver=2.1.6
+pkgrel=3
+pkgdesc="Utility for viewing, editing and writing ID3 tags of your MP3 files"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://easytag.sourceforge.net/"
+depends=('id3lib' 'libid3tag' 'gtk2' 'libvorbis' 'flac' 'libmp4v2' 'speex' 'wavpack')
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
+ 'mp4v2-1.9.patch')
+md5sums=('6c5b9dc2bf1f3b0a11bd4efc81aaa9ee'
+ '912d9baa362c4d9e5aee0436b4ccb5a2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/mp4v2-1.9.patch
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Remove directory mimetype
+ sed '/^MimeType=/ s@;x-directory/normal;@;@' \
+ -i ${pkgdir}/usr/share/applications/easytag.desktop
+}
diff --git a/extra/easytag/easytag.install b/extra/easytag/easytag.install
new file mode 100644
index 000000000..b1b79e6b3
--- /dev/null
+++ b/extra/easytag/easytag.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
diff --git a/extra/easytag/mp4v2-1.9.patch b/extra/easytag/mp4v2-1.9.patch
new file mode 100644
index 000000000..774bf7fb2
--- /dev/null
+++ b/extra/easytag/mp4v2-1.9.patch
@@ -0,0 +1,51 @@
+diff -ur easytag-2.1.6.orig/configure easytag-2.1.6/configure
+--- easytag-2.1.6.orig/configure 2008-07-12 17:57:44.000000000 +0300
++++ easytag-2.1.6/configure 2009-07-10 16:44:39.000000000 +0300
+@@ -22418,12 +22418,12 @@
+ /* end confdefs.h. */
+
+ #include <stdio.h>
+- #include <mpeg4ip_config.h>
++ #include <mp4v2/mp4v2.h>
+ int main (void)
+ {
+ FILE *output;
+ output=fopen("conftest.mp4v2","w");
+- fprintf(output,"LIBMP4V2_NAME=%s\nLIBMP4V2_VERSION=%s\n",PACKAGE_TARNAME,PACKAGE_VERSION);
++ fprintf(output,"MP4V2_PROJECT_name=%s\nMP4V2_PROJECT_version=%s\n",PACKAGE_TARNAME,PACKAGE_VERSION);
+ fclose(output);
+ exit(0);
+ }
+@@ -22471,7 +22471,7 @@
+
+ cat >conftest.$ac_ext <<_ACEOF
+
+- #include <mp4.h>
++ #include <mp4v2/mp4v2.h>
+ main () {
+ MP4FileHandle hFile;
+ MP4GetMetadataCoverArt(hFile, NULL, NULL,0); }
+diff -ur easytag-2.1.6.orig/src/mp4_header.c easytag-2.1.6/src/mp4_header.c
+--- easytag-2.1.6.orig/src/mp4_header.c 2007-11-28 10:54:35.000000000 +0200
++++ easytag-2.1.6/src/mp4_header.c 2009-07-10 16:44:54.000000000 +0300
+@@ -44,7 +44,7 @@
+ #undef PACKAGE_STRING
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+-#include <mp4.h>
++#include <mp4v2/mp4v2.h>
+
+
+ /****************
+diff -ur easytag-2.1.6.orig/src/mp4_tag.c easytag-2.1.6/src/mp4_tag.c
+--- easytag-2.1.6.orig/src/mp4_tag.c 2007-12-11 00:08:11.000000000 +0200
++++ easytag-2.1.6/src/mp4_tag.c 2009-07-10 16:45:08.000000000 +0300
+@@ -50,7 +50,7 @@
+ #undef PACKAGE_STRING
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+-#include <mp4.h>
++#include <mp4v2/mp4v2.h>
+
+
+ /****************
diff --git a/extra/ebook-tools/PKGBUILD b/extra/ebook-tools/PKGBUILD
new file mode 100644
index 000000000..dbe39120d
--- /dev/null
+++ b/extra/ebook-tools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 90915 2010-09-18 23:05:52Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=ebook-tools
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="Tools for accessing and converting various ebook file formats"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/ebook-tools"
+license=('custom')
+depends=('libzip' 'libxml2')
+makedepends=('pkgconfig' 'cmake')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('cabbd2ef9148a61ca5f6e60ca63e6045')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -D ${srcdir}/${pkgname}-${pkgver}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/ecasound/PKGBUILD b/extra/ecasound/PKGBUILD
new file mode 100644
index 000000000..3bbab7309
--- /dev/null
+++ b/extra/ecasound/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 88360 2010-08-23 02:57:44Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ecasound
+pkgver=2.7.2
+pkgrel=1
+pkgdesc="A software package designed for multitrack audio processing"
+arch=('i686' 'x86_64')
+url="http://www.eca.cx/ecasound/"
+license=('GPL' 'LGPL')
+depends=('gcc-libs' 'readline>=6.0.00' 'audiofile'
+ 'jack' 'liblo' 'liboil')
+makedepends=('pkg-config' 'python2' 'ruby')
+optdepends=('python2: ecamonitor, ECI API'
+ 'ruby: ECI API'
+ 'mpg123: MP3 decoding'
+ 'lame: MP3 encoding'
+ 'vorbis-tools: Ogg Vorbis decoding/encoding'
+ 'faad2: AAC decoding'
+ 'faac: AAC encoding'
+ 'timidity++: MIDI file input'
+ 'libmikmod: tracker module')
+options=('!libtool')
+changelog=$pkgname.changelog
+source=(http://ecasound.seul.org/download/$pkgname-$pkgver.tar.gz)
+md5sums=('40498ceed9cc7622ee969c427f13921c')
+sha1sums=('6d5236155e1a1f9a9bc9e63f989baebfb1645a49')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ PYTHONPATH=/usr/bin/python2 ./configure \
+ --prefix=/usr \
+ --with-python-includes=/usr/include/python2.7 \
+ --with-python-modules=/usr/lib/python2.7
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # fix for python 2.7
+ sed -i 's:bin/env python:bin/env python2:' \
+ "$pkgdir/usr/bin/ecamonitor"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/ecasound/ecasound.changelog b/extra/ecasound/ecasound.changelog
new file mode 100644
index 000000000..cfa010ca5
--- /dev/null
+++ b/extra/ecasound/ecasound.changelog
@@ -0,0 +1,44 @@
+2010-08-22 Ray Rashif <schiv@archlinux.org>
+
+ * ecasound 2.7.2-1
+ * python(3) rebuild
+ * python(2) is optional [1]
+ * added new liboil depend [2]
+ * added some optdepends [1]
+
+ [1] http://eca.cx/ecasound/README (or see source archive)
+ [2] http://eca.cx/relnotes/ecasound_v2_7_2_relnotes.txt
+
+2010-07-10 Ray Rashif <schiv@archlinux.org>
+
+ * ecasound 2.7.1-2
+ * added jack support [1]
+ * added OSC (liblo) support
+
+ [1] http://bugs.archlinux.org/task/20113
+
+2010-02-21 Eric Belanger <eric@archlinux.org>
+
+ * ecasound 2.7.1-1
+ * Upstream update
+ * Improved description
+
+2010-01-23 Eric Belanger <eric@archlinux.org>
+
+ * ecasound 2.7.0-1
+ * Upstream update
+
+2009-06-18 Eric Belanger <eric@archlinux.org>
+
+ * ecasound 2.6.0-1
+ * Upstream update
+ * Built against readline 6.0.00
+
+2009-01-14 Eric Belanger <eric@archlinux.org>
+
+ * ecasound 2.5.2-1
+ * Upstream update
+ * Enabled alsa support
+ * Added ruby makedepends
+ * Corrected license
+ * Added ChangeLog
diff --git a/extra/ecl/PKGBUILD b/extra/ecl/PKGBUILD
new file mode 100644
index 000000000..fa1d1f746
--- /dev/null
+++ b/extra/ecl/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 77589 2010-04-16 11:15:06Z juergen $
+# Contributor: John Proctor <jproctor@prium.net>
+# Maintainer: juergen <juergen@archlinux.org>
+
+pkgname=ecl
+pkgver=10.4.1
+pkgrel=1
+pkgdesc="Embeddable Common Lisp"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/ecls/"
+license=('LGPL')
+depends=('bash' 'gmp')
+makedepends=('texinfo')
+provides=('common-lisp' 'cl-asdf')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/project/ecls/ecls/10.4/ecl-10.4.1.tar.gz)
+md5sums=('be53f5e55a3f07c7cfb5fb5cd9a2a3f0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's|-Wl,--rpath,~A|-Wl,--rpath,/usr/lib/ecl|' src/configure || return 1
+ ./configure --build=$CHOST \
+ --prefix=/usr \
+ --with-tcp \
+ --with-clos-streams \
+ --enable-shared \
+ --enable-boehm=local \
+ --with-system-gmp \
+ --without-x \
+ --without-clx \
+ --disable-threads
+
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/eclipse/PKGBUILD b/extra/eclipse/PKGBUILD
new file mode 100644
index 000000000..5dac6abe4
--- /dev/null
+++ b/extra/eclipse/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 112888 2011-03-07 14:35:42Z paul $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Andrew Wright <andreww@photism.org>
+# Contributor: Andreas W. Hauser <andy-aur@splashground.de>
+
+pkgname=eclipse
+pkgver=3.6.2
+_internal_pkgver=3.6.2
+pkgrel=1
+_date=201102101200
+pkgdesc="An IDE for Java and other languages"
+arch=('i686' 'x86_64')
+url="http://eclipse.org"
+depends=('java-environment' 'gtk2' 'unzip' 'xulrunner')
+install=${pkgname}.install
+makedepends=('zip')
+license=("EPL/1.1")
+source=("ftp://ftp.osuosl.org/pub/eclipse/eclipse/downloads/drops/R-${pkgver}-${_date}/${pkgname}-SDK-${pkgver}-linux-gtk.tar.gz"
+ 'eclipse.svg' 'eclipse.sh' 'eclipse.desktop'
+ 'eclipse.ini.patch')
+md5sums=('7777a21debf1e05591731ac5c93b6bb6'
+ '77cff7543ccf7e177cb6667f5a20ce19'
+ '7ea99a30fbaf06ec29261541b8eb1e23'
+ 'ba8a37e30a7ebd69774cec87c69e8c44'
+ '017b2a68edc48a752a7e27c7aceef797')
+[ "$CARCH" = "x86_64" ] && source[0]="ftp://ftp.osuosl.org/pub/eclipse/eclipse/downloads/drops/R-${pkgver}-${_date}/${pkgname}-SDK-${pkgver}-linux-gtk-${CARCH}.tar.gz"
+[ "$CARCH" = "x86_64" ] && md5sums[0]='b82be4ed2dabf9dc53188b9dc3891f32'
+
+package() {
+ cd "${srcdir}/eclipse"
+
+ # patch to increase default memory limits
+ patch -Np1 -i "${srcdir}/eclipse.ini.patch"
+
+ # install eclipse
+ install -m755 -d "${pkgdir}/usr/share"
+ mv "${srcdir}/eclipse" "${pkgdir}/usr/share/"
+
+ # install misc
+ install -d ${pkgdir}/usr/bin ${pkgdir}/usr/share/applications \
+ ${pkgdir}/usr/share/icons/hicolor/{16x16,32x32,48x48}/apps
+ install -m755 "${srcdir}/eclipse.sh" "${pkgdir}/usr/bin/eclipse"
+ install -m644 "${srcdir}/eclipse.desktop" "${pkgdir}/usr/share/applications/"
+ ln -s /usr/share/eclipse/plugins/org.eclipse.sdk_${_internal_pkgver}.v${_date}/eclipse.png \
+ "${pkgdir}/usr/share/icons/hicolor/16x16/apps/eclipse.png"
+ ln -s /usr/share/eclipse/plugins/org.eclipse.sdk_${_internal_pkgver}.v${_date}/eclipse32.png \
+ "${pkgdir}/usr/share/icons/hicolor/32x32/apps/eclipse.png"
+ ln -s /usr/share/eclipse/plugins/org.eclipse.sdk_${_internal_pkgver}.v${_date}/eclipse48.png \
+ "${pkgdir}/usr/share/icons/hicolor/48x48/apps/eclipse.png"
+
+ # install icon
+ install -Dm644 ${srcdir}/eclipse.svg \
+ ${pkgdir}/usr/share/icons/hicolor/scalable/apps/eclipse.svg
+
+ # fix python 2.7 path
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' \
+ ${pkgdir}/usr/share/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/bin/runant.py
+}
diff --git a/extra/eclipse/eclipse.desktop b/extra/eclipse/eclipse.desktop
new file mode 100644
index 000000000..5b210c81e
--- /dev/null
+++ b/extra/eclipse/eclipse.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Eclipse
+Comment=A Java Development Environment
+Icon=eclipse
+Exec=eclipse
+Terminal=false
+Type=Application
+Categories=Development;IDE;Java
+StartupNotify=true
diff --git a/extra/eclipse/eclipse.ini.patch b/extra/eclipse/eclipse.ini.patch
new file mode 100644
index 000000000..0f2e3b226
--- /dev/null
+++ b/extra/eclipse/eclipse.ini.patch
@@ -0,0 +1,14 @@
+--- eclipse/eclipse.ini 2010-06-24 09:22:59.474998451 +0200
++++ eclipse/eclipse.ini~ 2010-06-24 09:24:26.325011998 +0200
+@@ -5,9 +5,9 @@
+ -showsplash
+ org.eclipse.platform
+ --launcher.XXMaxPermSize
+-256m
++512m
+ --launcher.defaultAction
+ openFile
+ -vmargs
+ -Xms40m
+--Xmx384m
++-Xmx768m
diff --git a/extra/eclipse/eclipse.install b/extra/eclipse/eclipse.install
new file mode 100644
index 000000000..6b59b396e
--- /dev/null
+++ b/extra/eclipse/eclipse.install
@@ -0,0 +1,15 @@
+post_install() {
+ # Prevent a bug, where eclipse hangs without this.
+ # See http://aur.archlinux.org/packages.php?ID=12173
+ xulrunner --register-global >/dev/null 2>&1
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/eclipse/eclipse.sh b/extra/eclipse/eclipse.sh
new file mode 100644
index 000000000..498d7fefb
--- /dev/null
+++ b/extra/eclipse/eclipse.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+export ECLIPSE_HOME=/usr/share/eclipse
+export GDK_NATIVE_WINDOWS=true
+${ECLIPSE_HOME}/eclipse "$@"
diff --git a/extra/eclipse/eclipse.svg b/extra/eclipse/eclipse.svg
new file mode 100644
index 000000000..56316be9e
--- /dev/null
+++ b/extra/eclipse/eclipse.svg
@@ -0,0 +1,1623 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ id="svg2254"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ width="48"
+ height="48"
+ version="1.0"
+ sodipodi:docbase="/home/matt/eclipse33"
+ sodipodi:docname="eclipse-icon-clean.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/home/matt/eclipse33/eclipse-icon-ubuntu.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <metadata
+ id="metadata2259">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs2257">
+ <linearGradient
+ id="linearGradient4373">
+ <stop
+ style="stop-color:#8ea6d6;stop-opacity:0.73762375;"
+ offset="0"
+ id="stop4375" />
+ <stop
+ style="stop-color:#bbc9e6;stop-opacity:1;"
+ offset="1"
+ id="stop4377" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4035">
+ <stop
+ style="stop-color:#7474bb;stop-opacity:1;"
+ offset="0"
+ id="stop4037" />
+ <stop
+ style="stop-color:#070553;stop-opacity:1;"
+ offset="1"
+ id="stop4039" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4003">
+ <stop
+ style="stop-color:#494991;stop-opacity:1;"
+ offset="0"
+ id="stop4005" />
+ <stop
+ style="stop-color:#695ae8;stop-opacity:1;"
+ offset="1"
+ id="stop4007" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3987">
+ <stop
+ style="stop-color:#414083;stop-opacity:1;"
+ offset="0"
+ id="stop3989" />
+ <stop
+ style="stop-color:#5649b9;stop-opacity:1;"
+ offset="1"
+ id="stop3991" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_8_"
+ gradientUnits="userSpaceOnUse"
+ x1="36.2495"
+ y1="18.1187"
+ x2="92.7495"
+ y2="18.1187"
+ gradientTransform="translate(-142.55625,-33.100248)">
+ <stop
+ offset="0"
+ style="stop-color:#FEE8BD"
+ id="stop264" />
+ <stop
+ offset="0.0483"
+ style="stop-color:#FEEBC6"
+ id="stop266" />
+ <stop
+ offset="0.2334"
+ style="stop-color:#FFF6E5"
+ id="stop268" />
+ <stop
+ offset="0.3905"
+ style="stop-color:#FFFDF8"
+ id="stop270" />
+ <stop
+ offset="0.5"
+ style="stop-color:#FFFFFF"
+ id="stop272" />
+ <stop
+ offset="0.6094"
+ style="stop-color:#FFFDF9"
+ id="stop274" />
+ <stop
+ offset="0.7588"
+ style="stop-color:#FFF7E7"
+ id="stop276" />
+ <stop
+ offset="0.9306"
+ style="stop-color:#FEEDCB"
+ id="stop278" />
+ <stop
+ offset="1"
+ style="stop-color:#FEE8BD"
+ id="stop280" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_7_"
+ gradientUnits="userSpaceOnUse"
+ x1="45.416"
+ y1="107.0176"
+ x2="83.3354"
+ y2="107.0176"
+ gradientTransform="translate(-142.55625,-33.100248)">
+ <stop
+ offset="0"
+ style="stop-color:#A86E45"
+ id="stop205" />
+ <stop
+ offset="0.1124"
+ style="stop-color:#E8A06C"
+ id="stop207" />
+ <stop
+ offset="0.1609"
+ style="stop-color:#E59E6B"
+ id="stop209" />
+ <stop
+ offset="0.2012"
+ style="stop-color:#DA9969"
+ id="stop211" />
+ <stop
+ offset="0.2387"
+ style="stop-color:#C99066"
+ id="stop213" />
+ <stop
+ offset="0.2743"
+ style="stop-color:#B18461"
+ id="stop215" />
+ <stop
+ offset="0.3084"
+ style="stop-color:#92745A"
+ id="stop217" />
+ <stop
+ offset="0.3315"
+ style="stop-color:#786755"
+ id="stop219" />
+ <stop
+ offset="0.4068"
+ style="stop-color:#B5ACA2"
+ id="stop221" />
+ <stop
+ offset="0.478"
+ style="stop-color:#EAE8E5"
+ id="stop223" />
+ <stop
+ offset="0.5112"
+ style="stop-color:#FFFFFF"
+ id="stop225" />
+ <stop
+ offset="0.5376"
+ style="stop-color:#FDFCFC"
+ id="stop227" />
+ <stop
+ offset="0.5589"
+ style="stop-color:#F5F3F2"
+ id="stop229" />
+ <stop
+ offset="0.5783"
+ style="stop-color:#E8E4E1"
+ id="stop231" />
+ <stop
+ offset="0.5966"
+ style="stop-color:#D6CEC9"
+ id="stop233" />
+ <stop
+ offset="0.6142"
+ style="stop-color:#BFB3AA"
+ id="stop235" />
+ <stop
+ offset="0.6312"
+ style="stop-color:#A39185"
+ id="stop237" />
+ <stop
+ offset="0.6475"
+ style="stop-color:#816959"
+ id="stop239" />
+ <stop
+ offset="0.6517"
+ style="stop-color:#785E4C"
+ id="stop241" />
+ <stop
+ offset="0.671"
+ style="stop-color:#83654F"
+ id="stop243" />
+ <stop
+ offset="0.7414"
+ style="stop-color:#A87958"
+ id="stop245" />
+ <stop
+ offset="0.807"
+ style="stop-color:#C3895F"
+ id="stop247" />
+ <stop
+ offset="0.8652"
+ style="stop-color:#D39263"
+ id="stop249" />
+ <stop
+ offset="0.9101"
+ style="stop-color:#D99564"
+ id="stop251" />
+ <stop
+ offset="0.9278"
+ style="stop-color:#C48557"
+ id="stop253" />
+ <stop
+ offset="0.9557"
+ style="stop-color:#AA7045"
+ id="stop255" />
+ <stop
+ offset="0.9807"
+ style="stop-color:#9A633B"
+ id="stop257" />
+ <stop
+ offset="1"
+ style="stop-color:#945F37"
+ id="stop259" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_6_"
+ gradientUnits="userSpaceOnUse"
+ x1="-34.5078"
+ y1="-100.6235"
+ x2="-20.9253"
+ y2="-100.6235"
+ gradientTransform="matrix(2.7917,-0.3987,0,2.7907,-0.8029473,335.99965)">
+ <stop
+ offset="0"
+ style="stop-color:#A86E45"
+ id="stop146" />
+ <stop
+ offset="0.1124"
+ style="stop-color:#E8A06C"
+ id="stop148" />
+ <stop
+ offset="0.1609"
+ style="stop-color:#E59E6B"
+ id="stop150" />
+ <stop
+ offset="0.2012"
+ style="stop-color:#DA9969"
+ id="stop152" />
+ <stop
+ offset="0.2387"
+ style="stop-color:#C99066"
+ id="stop154" />
+ <stop
+ offset="0.2743"
+ style="stop-color:#B18461"
+ id="stop156" />
+ <stop
+ offset="0.3084"
+ style="stop-color:#92745A"
+ id="stop158" />
+ <stop
+ offset="0.3315"
+ style="stop-color:#786755"
+ id="stop160" />
+ <stop
+ offset="0.4068"
+ style="stop-color:#B5ACA2"
+ id="stop162" />
+ <stop
+ offset="0.478"
+ style="stop-color:#EAE8E5"
+ id="stop164" />
+ <stop
+ offset="0.5112"
+ style="stop-color:#FFFFFF"
+ id="stop166" />
+ <stop
+ offset="0.5376"
+ style="stop-color:#FDFCFC"
+ id="stop168" />
+ <stop
+ offset="0.5589"
+ style="stop-color:#F5F3F2"
+ id="stop170" />
+ <stop
+ offset="0.5783"
+ style="stop-color:#E8E4E1"
+ id="stop172" />
+ <stop
+ offset="0.5966"
+ style="stop-color:#D6CEC9"
+ id="stop174" />
+ <stop
+ offset="0.6142"
+ style="stop-color:#BFB3AA"
+ id="stop176" />
+ <stop
+ offset="0.6312"
+ style="stop-color:#A39185"
+ id="stop178" />
+ <stop
+ offset="0.6475"
+ style="stop-color:#816959"
+ id="stop180" />
+ <stop
+ offset="0.6517"
+ style="stop-color:#785E4C"
+ id="stop182" />
+ <stop
+ offset="0.671"
+ style="stop-color:#83654F"
+ id="stop184" />
+ <stop
+ offset="0.7414"
+ style="stop-color:#A87958"
+ id="stop186" />
+ <stop
+ offset="0.807"
+ style="stop-color:#C3895F"
+ id="stop188" />
+ <stop
+ offset="0.8652"
+ style="stop-color:#D39263"
+ id="stop190" />
+ <stop
+ offset="0.9101"
+ style="stop-color:#D99564"
+ id="stop192" />
+ <stop
+ offset="0.9278"
+ style="stop-color:#C48557"
+ id="stop194" />
+ <stop
+ offset="0.9557"
+ style="stop-color:#AA7045"
+ id="stop196" />
+ <stop
+ offset="0.9807"
+ style="stop-color:#9A633B"
+ id="stop198" />
+ <stop
+ offset="1"
+ style="stop-color:#945F37"
+ id="stop200" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_5_"
+ gradientUnits="userSpaceOnUse"
+ x1="44.7505"
+ y1="94.7715"
+ x2="83.3739"
+ y2="89.1356"
+ gradientTransform="translate(-142.55625,-33.100248)">
+ <stop
+ offset="0"
+ style="stop-color:#A86E45"
+ id="stop87" />
+ <stop
+ offset="0.1124"
+ style="stop-color:#E8A06C"
+ id="stop89" />
+ <stop
+ offset="0.1609"
+ style="stop-color:#E59E6B"
+ id="stop91" />
+ <stop
+ offset="0.2012"
+ style="stop-color:#DA9969"
+ id="stop93" />
+ <stop
+ offset="0.2387"
+ style="stop-color:#C99066"
+ id="stop95" />
+ <stop
+ offset="0.2743"
+ style="stop-color:#B18461"
+ id="stop97" />
+ <stop
+ offset="0.3084"
+ style="stop-color:#92745A"
+ id="stop99" />
+ <stop
+ offset="0.3315"
+ style="stop-color:#786755"
+ id="stop101" />
+ <stop
+ offset="0.4068"
+ style="stop-color:#B5ACA2"
+ id="stop103" />
+ <stop
+ offset="0.478"
+ style="stop-color:#EAE8E5"
+ id="stop105" />
+ <stop
+ offset="0.5112"
+ style="stop-color:#FFFFFF"
+ id="stop107" />
+ <stop
+ offset="0.5376"
+ style="stop-color:#FDFCFC"
+ id="stop109" />
+ <stop
+ offset="0.5589"
+ style="stop-color:#F5F3F2"
+ id="stop111" />
+ <stop
+ offset="0.5783"
+ style="stop-color:#E8E4E1"
+ id="stop113" />
+ <stop
+ offset="0.5966"
+ style="stop-color:#D6CEC9"
+ id="stop115" />
+ <stop
+ offset="0.6142"
+ style="stop-color:#BFB3AA"
+ id="stop117" />
+ <stop
+ offset="0.6312"
+ style="stop-color:#A39185"
+ id="stop119" />
+ <stop
+ offset="0.6475"
+ style="stop-color:#816959"
+ id="stop121" />
+ <stop
+ offset="0.6517"
+ style="stop-color:#785E4C"
+ id="stop123" />
+ <stop
+ offset="0.671"
+ style="stop-color:#83654F"
+ id="stop125" />
+ <stop
+ offset="0.7414"
+ style="stop-color:#A87958"
+ id="stop127" />
+ <stop
+ offset="0.807"
+ style="stop-color:#C3895F"
+ id="stop129" />
+ <stop
+ offset="0.8652"
+ style="stop-color:#D39263"
+ id="stop131" />
+ <stop
+ offset="0.9101"
+ style="stop-color:#D99564"
+ id="stop133" />
+ <stop
+ offset="0.9278"
+ style="stop-color:#C48557"
+ id="stop135" />
+ <stop
+ offset="0.9557"
+ style="stop-color:#AA7045"
+ id="stop137" />
+ <stop
+ offset="0.9807"
+ style="stop-color:#9A633B"
+ id="stop139" />
+ <stop
+ offset="1"
+ style="stop-color:#945F37"
+ id="stop141" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_2_"
+ gradientUnits="userSpaceOnUse"
+ x1="44.8901"
+ y1="95.7324"
+ x2="83.5847"
+ y2="90.0861"
+ gradientTransform="translate(-142.55625,-33.100248)">
+ <stop
+ offset="0"
+ style="stop-color:#A86E45"
+ id="stop60" />
+ <stop
+ offset="0.5787"
+ style="stop-color:#785E4C"
+ id="stop62" />
+ <stop
+ offset="1"
+ style="stop-color:#945F37"
+ id="stop64" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_1_"
+ gradientUnits="userSpaceOnUse"
+ x1="47.9995"
+ y1="100.5"
+ x2="81.9995"
+ y2="100.5"
+ gradientTransform="translate(-142.55625,-33.100248)">
+ <stop
+ offset="0.0056"
+ style="stop-color:#9C6137"
+ id="stop47" />
+ <stop
+ offset="0.1685"
+ style="stop-color:#C98452"
+ id="stop49" />
+ <stop
+ offset="0.5337"
+ style="stop-color:#CD8D5F"
+ id="stop51" />
+ <stop
+ offset="0.809"
+ style="stop-color:#C47D4A"
+ id="stop53" />
+ <stop
+ offset="1"
+ style="stop-color:#9C6137"
+ id="stop55" />
+ </linearGradient>
+ <radialGradient
+ id="light_1_"
+ cx="-27.6724"
+ cy="-109.9067"
+ r="9"
+ gradientTransform="matrix(2.7917,0,0,2.7907,141.7533,350.9971)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0.264"
+ style="stop-color:#FFFFFF;"
+ id="stop37" />
+ <stop
+ offset="2.5"
+ style="stop-color:#FFF18F;stop-opacity:0"
+ id="stop39" />
+ </radialGradient>
+ <radialGradient
+ id="XMLID_10_"
+ cx="-27.6128"
+ cy="-86.5356"
+ r="6.2114"
+ gradientTransform="matrix(2.7917,0,0,2.7907,-0.8029473,317.89685)"
+ gradientUnits="userSpaceOnUse">
+ <stop
+ offset="0.3427"
+ style="stop-color:#FFFFFF"
+ id="stop8" />
+ <stop
+ offset="0.3754"
+ style="stop-color:#ECECEC"
+ id="stop10" />
+ <stop
+ offset="0.4665"
+ style="stop-color:#BCBCBC"
+ id="stop12" />
+ <stop
+ offset="0.5531"
+ style="stop-color:#979797"
+ id="stop14" />
+ <stop
+ offset="0.6331"
+ style="stop-color:#7C7C7C"
+ id="stop16" />
+ <stop
+ offset="0.704"
+ style="stop-color:#6C6C6C"
+ id="stop18" />
+ <stop
+ offset="0.7584"
+ style="stop-color:#666666"
+ id="stop20" />
+ </radialGradient>
+ <linearGradient
+ id="XMLID_4_"
+ gradientUnits="userSpaceOnUse"
+ x1="37.6743"
+ y1="25.6035"
+ x2="37.6743"
+ y2="47.5006"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)">
+ <stop
+ offset="0"
+ style="stop-color:#FCB462"
+ id="stop40" />
+ <stop
+ offset="1"
+ style="stop-color:#FCAF55"
+ id="stop42" />
+ </linearGradient>
+ <linearGradient
+ id="XMLID_3_"
+ gradientUnits="userSpaceOnUse"
+ x1="75.5039"
+ y1="11.96"
+ x2="85.5969"
+ y2="36.3307"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)">
+ <stop
+ offset="0"
+ style="stop-color:#F99D77"
+ id="stop33" />
+ <stop
+ offset="1"
+ style="stop-color:#F7804E"
+ id="stop35" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4035"
+ id="linearGradient4041"
+ x1="-43.03101"
+ y1="8.6383018"
+ x2="-15.677965"
+ y2="37.492428"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4035"
+ id="linearGradient4189"
+ gradientUnits="userSpaceOnUse"
+ x1="-43.03101"
+ y1="8.6383018"
+ x2="-15.677965"
+ y2="37.492428" />
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask4181">
+ <g
+ id="g4183"
+ transform="matrix(0.7925926,0,0,0.8907563,4.6132029,-3.2693226)">
+ <path
+ transform="translate(-15.844752,8.8397036)"
+ d="M -10.007212 23.982693 A 20.014421 20.014421 0 1 1 -50.036055,23.982693 A 20.014421 20.014421 0 1 1 -10.007212 23.982693 z"
+ sodipodi:ry="20.014421"
+ sodipodi:rx="20.014421"
+ sodipodi:cy="23.982693"
+ sodipodi:cx="-30.021633"
+ id="path4185"
+ style="opacity:1;fill:#c88cbb;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ <path
+ transform="translate(-13.843309,8.8397036)"
+ d="M -10.007212 23.982693 A 20.014421 20.014421 0 1 1 -50.036055,23.982693 A 20.014421 20.014421 0 1 1 -10.007212 23.982693 z"
+ sodipodi:ry="20.014421"
+ sodipodi:rx="20.014421"
+ sodipodi:cy="23.982693"
+ sodipodi:cx="-30.021633"
+ id="path4187"
+ style="opacity:1;fill:url(#linearGradient4189);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </g>
+ </mask>
+ <filter
+ inkscape:collect="always"
+ x="-0.42083731"
+ width="1.8416746"
+ y="-0.42480746"
+ height="1.8496149"
+ id="filter4267">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.12931"
+ id="feGaussianBlur4269" />
+ </filter>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4035"
+ id="linearGradient4301"
+ gradientUnits="userSpaceOnUse"
+ x1="-43.03101"
+ y1="8.6383018"
+ x2="-15.677965"
+ y2="37.492428" />
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask4297">
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient4301);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4299"
+ sodipodi:cx="-30.021633"
+ sodipodi:cy="23.982693"
+ sodipodi:rx="20.014421"
+ sodipodi:ry="20.014421"
+ d="M -10.007212 23.982693 A 20.014421 20.014421 0 1 1 -50.036055,23.982693 A 20.014421 20.014421 0 1 1 -10.007212 23.982693 z"
+ transform="translate(3.5679857,1.3974438)" />
+ </mask>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4003"
+ id="linearGradient4368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.9683099,0,0,0.9683099,47.162254,-1.0174889)"
+ x1="-47.534256"
+ y1="2.9675496"
+ x2="-0.16679382"
+ y2="49.50108" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4003"
+ id="linearGradient4371"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.0105249,0,0,1.0105249,3.4549308e-2,-50.022066)"
+ x1="-47.534256"
+ y1="2.9675496"
+ x2="-0.16679382"
+ y2="49.50108" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath4423">
+ <path
+ transform="translate(4.9557997,-4.7430601e-2)"
+ d="M -10.007212 23.982693 A 20.014421 20.014421 0 1 1 -50.036055,23.982693 A 20.014421 20.014421 0 1 1 -10.007212 23.982693 z"
+ sodipodi:ry="20.014421"
+ sodipodi:rx="20.014421"
+ sodipodi:cy="23.982693"
+ sodipodi:cx="-30.021633"
+ id="path4425"
+ style="opacity:1;fill:url(#linearGradient4427);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ sodipodi:type="arc" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4035"
+ id="linearGradient4427"
+ gradientUnits="userSpaceOnUse"
+ x1="-43.03101"
+ y1="8.6383018"
+ x2="-15.677965"
+ y2="37.492428" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4373"
+ id="linearGradient4429"
+ gradientUnits="userSpaceOnUse"
+ x1="-46.468069"
+ y1="19.312662"
+ x2="-6.439226"
+ y2="19.312662" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4373"
+ id="linearGradient4431"
+ gradientUnits="userSpaceOnUse"
+ x1="-46.468067"
+ y1="22.481251"
+ x2="-6.4392262"
+ y2="22.481251" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4373"
+ id="linearGradient4433"
+ gradientUnits="userSpaceOnUse"
+ x1="-46.468067"
+ y1="25.482334"
+ x2="-6.4392262"
+ y2="25.482334" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4373"
+ id="linearGradient4435"
+ gradientUnits="userSpaceOnUse"
+ x1="-46.468067"
+ y1="28.481611"
+ x2="-6.4392262"
+ y2="28.481611" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_10_"
+ id="radialGradient4753"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,0,0,2.7907,-0.8029473,317.89685)"
+ cx="-27.6128"
+ cy="-86.5356"
+ r="6.2114" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#light_1_"
+ id="radialGradient4755"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,0,0,2.7907,141.7533,350.9971)"
+ cx="-27.6724"
+ cy="-109.9067"
+ r="9" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_1_"
+ id="linearGradient4757"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="47.9995"
+ y1="100.5"
+ x2="81.9995"
+ y2="100.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient4759"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="44.8901"
+ y1="95.7324"
+ x2="83.5847"
+ y2="90.0861" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_3_"
+ id="linearGradient4761"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="75.5039"
+ y1="11.96"
+ x2="85.5969"
+ y2="36.3307" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient4763"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="37.6743"
+ y1="25.6035"
+ x2="37.6743"
+ y2="47.5006" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_5_"
+ id="linearGradient4765"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="44.7505"
+ y1="94.7715"
+ x2="83.3739"
+ y2="89.1356" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_6_"
+ id="linearGradient4767"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,-0.3987,0,2.7907,-0.8029473,335.99965)"
+ x1="-34.5078"
+ y1="-100.6235"
+ x2="-20.9253"
+ y2="-100.6235" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_7_"
+ id="linearGradient4769"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="45.416"
+ y1="107.0176"
+ x2="83.3354"
+ y2="107.0176" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_8_"
+ id="linearGradient4771"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="36.2495"
+ y1="18.1187"
+ x2="92.7495"
+ y2="18.1187" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_10_"
+ id="radialGradient4817"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,0,0,2.7907,-0.8029473,317.89685)"
+ cx="-27.6128"
+ cy="-86.5356"
+ r="6.2114" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#light_1_"
+ id="radialGradient4819"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,0,0,2.7907,141.7533,350.9971)"
+ cx="-27.6724"
+ cy="-109.9067"
+ r="9" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_1_"
+ id="linearGradient4821"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="47.9995"
+ y1="100.5"
+ x2="81.9995"
+ y2="100.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient4823"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="44.8901"
+ y1="95.7324"
+ x2="83.5847"
+ y2="90.0861" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_3_"
+ id="linearGradient4825"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="75.5039"
+ y1="11.96"
+ x2="85.5969"
+ y2="36.3307" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient4827"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="37.6743"
+ y1="25.6035"
+ x2="37.6743"
+ y2="47.5006" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_5_"
+ id="linearGradient4829"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="44.7505"
+ y1="94.7715"
+ x2="83.3739"
+ y2="89.1356" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_6_"
+ id="linearGradient4831"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,-0.3987,0,2.7907,-0.8029473,335.99965)"
+ x1="-34.5078"
+ y1="-100.6235"
+ x2="-20.9253"
+ y2="-100.6235" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_7_"
+ id="linearGradient4833"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="45.416"
+ y1="107.0176"
+ x2="83.3354"
+ y2="107.0176" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_8_"
+ id="linearGradient4835"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-142.55625,-33.100248)"
+ x1="36.2495"
+ y1="18.1187"
+ x2="92.7495"
+ y2="18.1187" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath7503">
+ <g
+ id="g7505"
+ transform="matrix(7.4511206,0,0,7.4511206,305.77432,266.76067)">
+ <path
+ id="path7507"
+ d="M -29.775161,-22.982238 C -29.796903,-23.107991 -29.878636,-23.210123 -29.986136,-23.268906 L -29.986136,-23.560406 C -29.836092,-23.636636 -29.745233,-23.799162 -29.775161,-23.971619 C -29.797037,-24.097641 -29.879038,-24.200041 -29.986942,-24.25869 C -29.991505,-24.402695 -30.109876,-24.519188 -30.254687,-24.519188 L -34.370443,-24.519188 C -34.518072,-24.519188 -34.638859,-24.398401 -34.638859,-24.250772 L -34.638859,-23.677033 L -34.648925,-23.675691 C -34.872381,-23.643481 -35.024305,-23.439619 -34.986727,-23.22247 C -34.956396,-23.047329 -34.811048,-22.917013 -34.638994,-22.889232 L -34.638994,-22.687786 L -34.649059,-22.686175 C -34.872516,-22.654234 -35.024439,-22.450237 -34.986861,-22.233223 C -34.95653,-22.058082 -34.811182,-21.927632 -34.639128,-21.89985 L -34.639128,-21.69827 L -34.649193,-21.696928 C -34.87265,-21.664718 -35.024573,-21.460856 -34.986995,-21.243708 C -34.954785,-21.057829 -34.793199,-20.921072 -34.607186,-20.905503 C -34.562092,-20.820281 -34.473381,-20.761364 -34.370846,-20.761364 L -34.129003,-20.761364 C -33.83294,-20.026441 -33.162303,-19.419284 -32.381347,-19.419284 C -31.600256,-19.419284 -30.929753,-20.026441 -30.63369,-20.761364 L -30.255089,-20.761364 C -30.10746,-20.761364 -29.986673,-20.882151 -29.986673,-21.02978 L -29.986673,-21.581509 C -29.836629,-21.657739 -29.74577,-21.820265 -29.775698,-21.992722 C -29.79744,-22.118475 -29.879173,-22.220608 -29.986673,-22.279391 L -29.986673,-22.570756 C -29.836226,-22.647121 -29.745367,-22.809781 -29.775161,-22.982238 z "
+ style="opacity:0.2;fill:#141414" />
+ <path
+ id="path7509"
+ d="M -29.775161,-22.84803 C -29.796903,-22.973783 -29.878636,-23.075915 -29.986136,-23.134698 L -29.986136,-23.426198 C -29.836092,-23.502428 -29.745233,-23.664954 -29.775161,-23.837411 C -29.797037,-23.963433 -29.879038,-24.065833 -29.986942,-24.124482 C -29.991505,-24.268487 -30.109876,-24.38498 -30.254687,-24.38498 L -34.370443,-24.38498 C -34.518072,-24.38498 -34.638859,-24.264193 -34.638859,-24.116564 L -34.638859,-23.542825 L -34.648925,-23.541483 C -34.872381,-23.509273 -35.024305,-23.305411 -34.986727,-23.088262 C -34.956396,-22.913121 -34.811048,-22.782805 -34.638994,-22.755024 L -34.638994,-22.553578 L -34.649059,-22.551967 C -34.872516,-22.520026 -35.024439,-22.316029 -34.986861,-22.099015 C -34.95653,-21.923874 -34.811182,-21.793424 -34.639128,-21.765642 L -34.639128,-21.564062 L -34.649193,-21.56272 C -34.87265,-21.53051 -35.024573,-21.326648 -34.986995,-21.1095 C -34.954785,-20.923621 -34.793199,-20.786864 -34.607186,-20.771295 C -34.562092,-20.686073 -34.473381,-20.627156 -34.370846,-20.627156 L -34.129003,-20.627156 C -33.83294,-19.892233 -33.162303,-19.285076 -32.381347,-19.285076 C -31.600256,-19.285076 -30.929753,-19.892233 -30.63369,-20.627156 L -30.255089,-20.627156 C -30.10746,-20.627156 -29.986673,-20.747943 -29.986673,-20.895572 L -29.986673,-21.447301 C -29.836629,-21.523531 -29.74577,-21.686057 -29.775698,-21.858514 C -29.79744,-21.984267 -29.879173,-22.0864 -29.986673,-22.145183 L -29.986673,-22.436548 C -29.836226,-22.512913 -29.745367,-22.675573 -29.775161,-22.84803 z "
+ style="opacity:0.2;fill:#141414" />
+ <path
+ id="path7511"
+ d="M -30.507669,-21.694512 C -30.507669,-20.66044 -31.346469,-19.553492 -32.381078,-19.553492 C -33.415553,-19.553492 -34.254353,-20.66044 -34.254353,-21.694512 C -34.254353,-22.728719 -33.415553,-23.298835 -32.381078,-23.298835 C -31.346469,-23.298835 -30.507669,-22.728719 -30.507669,-21.694512 z "
+ style="fill:url(#radialGradient7547)" />
+ <path
+ id="path7513"
+ d="M -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.031465 -27.884976,-30.452926 C -27.884976,-27.874388 -30.519882,-25.378656 -30.519882,-24.634607 L -34.242141,-24.634607 C -34.242141,-25.557018 -36.876912,-27.874388 -36.876912,-30.452926 C -36.876912,-33.031465 -34.86406,-35.12162 -32.380944,-35.12162 z "
+ style="opacity:0.4;fill:#ffbf61" />
+ <path
+ id="path7515"
+ d="M -32.380944,-35.926868 C -35.304128,-35.926868 -37.68216,-33.482538 -37.68216,-30.477889 C -37.68216,-28.627429 -36.56045,-26.960163 -35.741378,-25.742494 C -35.544227,-25.449384 -35.083893,-24.765325 -35.046315,-24.59515 C -35.036652,-24.159511 -34.680061,-23.807751 -34.242006,-23.807751 L -30.519882,-23.807751 C -30.10075,-23.807751 -29.759459,-24.130656 -29.722015,-24.540124 C -29.679203,-24.679969 -29.267184,-25.29585 -29.111906,-25.527761 C -28.301826,-26.738451 -27.079728,-28.56462 -27.079728,-30.477889 C -27.079728,-33.482538 -29.457894,-35.926868 -32.380944,-35.926868 z M -29.722015,-24.541198 C -29.721747,-24.54254 -29.721612,-24.544016 -29.721478,-24.545493 C -29.72121,-24.546566 -29.720405,-24.547372 -29.72027,-24.548445 C -29.72027,-24.54858 -29.721478,-24.543077 -29.722015,-24.541198 z M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ style="opacity:0.2;fill:#ff8b17" />
+ <path
+ id="path7517"
+ d="M -32.380944,-35.658452 C -35.156097,-35.658452 -37.413744,-33.334506 -37.413744,-30.477889 C -37.413744,-28.709296 -36.318338,-27.08095 -35.518459,-25.892136 C -35.223872,-25.454215 -34.778838,-24.792972 -34.778838,-24.613134 C -34.778838,-24.317205 -34.538069,-24.076302 -34.242006,-24.076302 L -30.519882,-24.076302 C -30.223953,-24.076302 -29.98305,-24.317205 -29.98305,-24.613134 L -29.984123,-24.597834 C -29.955805,-24.749489 -29.566334,-25.331683 -29.333483,-25.67955 C -28.542864,-26.860983 -27.348144,-28.646218 -27.348144,-30.477889 C -27.348144,-33.334506 -29.605925,-35.658452 -32.380944,-35.658452 z M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ style="opacity:0.2;fill:#ff8b17" />
+ <path
+ id="path7519"
+ d="M -32.380944,-35.390036 C -35.008066,-35.390036 -37.145328,-33.186475 -37.145328,-30.477889 C -37.145328,-28.791163 -36.076227,-27.202006 -35.295673,-26.041912 C -34.891841,-25.4416 -34.510422,-24.874705 -34.510422,-24.613134 C -34.510422,-24.464968 -34.390172,-24.344718 -34.242006,-24.344718 L -30.519882,-24.344718 C -30.371716,-24.344718 -30.251466,-24.464968 -30.251466,-24.613134 C -30.251466,-24.790288 -29.882125,-25.342151 -29.556402,-25.828924 C -28.784035,-26.983113 -27.61656,-28.727817 -27.61656,-30.477889 C -27.61656,-33.186475 -29.753957,-35.390036 -32.380944,-35.390036 z M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ style="opacity:0.4;fill:#ff8b17" />
+ <path
+ id="path7521"
+ d="M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ style="opacity:0.2;fill:#ffbf61" />
+ <path
+ id="path7523"
+ d="M -31.631661,-29.235257 L -31.631661,-27.362519 C -31.631661,-27.156778 -31.800494,-26.988078 -32.006369,-26.988078 L -32.755653,-26.988078 C -32.961662,-26.988078 -33.130361,-27.156778 -33.130361,-27.362519 L -33.130361,-29.235257 L -33.50507,-29.235257 L -33.50507,-27.362519 C -33.50507,-26.950634 -33.16794,-26.613504 -32.621579,-26.613504 L -32.621579,-24.366191 L -32.140712,-24.366191 L -32.140712,-26.61337 C -31.594351,-26.61337 -31.25722,-26.9505 -31.25722,-27.362384 L -31.25722,-29.235257 L -31.631661,-29.235257 z "
+ style="fill:#cba572" />
+ <path
+ id="path7525"
+ d="M -32.380944,-35.255828 C -34.934117,-35.255828 -37.01112,-33.112392 -37.01112,-30.477889 C -37.01112,-28.831694 -35.955037,-27.278102 -35.184012,-26.14391 C -34.750655,-25.506154 -34.376214,-24.928657 -34.376214,-24.626554 L -34.24308,-24.626554 C -34.267506,-25.553261 -36.876912,-27.924984 -36.876912,-30.477889 C -36.876912,-33.042604 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.927534 -30.489282,-25.382682 -30.518674,-24.626554 L -30.385808,-24.626554 C -30.385808,-24.843971 -30.053375,-25.362551 -29.668466,-25.931996 C -28.859058,-27.128863 -27.750768,-28.768213 -27.750768,-30.477889 C -27.750768,-33.112392 -29.827905,-35.255828 -32.380944,-35.255828 z "
+ style="fill:#9e8c68" />
+ <path
+ id="path7527"
+ d="M -30.032304,-21.163988 C -30.032304,-21.016359 -30.153091,-20.895572 -30.30072,-20.895572 L -34.32696,-20.895572 C -34.474589,-20.895572 -34.595376,-21.016359 -34.595376,-21.163988 L -34.595376,-24.38498 C -34.595376,-24.532609 -34.474589,-24.653396 -34.32696,-24.653396 L -30.30072,-24.653396 C -30.153091,-24.653396 -30.032304,-24.532609 -30.032304,-24.38498 L -30.032304,-21.163988 z "
+ style="fill:#966746" />
+ <path
+ id="path7529"
+ d="M -30.032304,-21.298196 C -30.032304,-21.076753 -30.213485,-20.895572 -30.434928,-20.895572 L -34.192752,-20.895572 C -34.414195,-20.895572 -34.595376,-21.076753 -34.595376,-21.298196 L -34.595376,-24.116564 C -34.595376,-24.338007 -34.414195,-24.519188 -34.192752,-24.519188 L -30.434928,-24.519188 C -30.213485,-24.519188 -30.032304,-24.338007 -30.032304,-24.116564 L -30.032304,-21.298196 z "
+ style="fill:url(#linearGradient7549)" />
+ <path
+ id="path7531"
+ d="M -29.825355,-24.105827 C -29.788582,-23.888813 -29.937553,-23.684817 -30.156581,-23.652741 L -34.470965,-23.020353 C -34.689993,-22.988412 -34.899491,-23.139664 -34.936399,-23.356678 C -34.973306,-23.573827 -34.824201,-23.777689 -34.605173,-23.809899 L -30.290789,-24.442153 C -30.071761,-24.474094 -29.862262,-24.322842 -29.825355,-24.105827 z "
+ style="fill:url(#linearGradient7551)" />
+ <path
+ id="path7533"
+ d="M -29.825355,-23.116446 C -29.788582,-22.899297 -29.937553,-22.695435 -30.156581,-22.66336 L -34.470965,-22.031106 C -34.689993,-21.998896 -34.899491,-22.150283 -34.936399,-22.367431 C -34.973306,-22.584445 -34.824201,-22.788442 -34.605173,-22.820383 L -30.290789,-23.452637 C -30.071761,-23.484847 -29.862262,-23.33346 -29.825355,-23.116446 z "
+ style="fill:url(#linearGradient7553)" />
+ <path
+ id="path7535"
+ d="M -29.825355,-22.127065 C -29.788582,-21.91005 -29.937553,-21.706054 -30.156581,-21.673978 L -34.470965,-21.04159 C -34.689993,-21.009649 -34.899491,-21.160901 -34.936399,-21.377916 C -34.973306,-21.595064 -34.824201,-21.798926 -34.605173,-21.831136 L -30.290789,-22.46339 C -30.071761,-22.495331 -29.862262,-22.344079 -29.825355,-22.127065 z "
+ style="fill:url(#linearGradient7555)" />
+ <path
+ id="path7537"
+ d="M -34.887815,-23.22341 L -34.936533,-23.356678 C -34.97344,-23.573827 -34.824335,-23.777689 -34.605307,-23.809899 L -30.290923,-24.442153 C -30.071895,-24.474094 -29.882528,-24.396656 -29.845755,-24.179642 L -34.887815,-23.22341 z "
+ style="fill:url(#linearGradient7557)" />
+ <path
+ id="path7539"
+ d="M -34.880031,-22.220339 L -29.853136,-23.208244 C -29.889909,-23.425259 -30.071761,-23.484847 -30.290789,-23.452503 L -34.605173,-22.820249 C -34.824201,-22.788307 -34.973306,-22.584311 -34.936399,-22.367297 L -34.880031,-22.220339 z "
+ style="fill:url(#linearGradient7559)" />
+ <path
+ id="path7541"
+ d="M -34.853592,-21.194185 L -29.853002,-22.218594 C -29.889909,-22.435609 -30.071761,-22.495466 -30.290789,-22.46339 L -34.605173,-21.831136 C -34.824201,-21.798926 -34.973306,-21.595064 -34.936399,-21.377916 L -34.853592,-21.194185 z "
+ style="fill:url(#linearGradient7561)" />
+ <path
+ id="path7543"
+ d="M -28.589568,-32.601596 C -29.364217,-34.00152 -30.787895,-34.925676 -32.380944,-34.925676 C -33.973993,-34.925676 -35.397671,-34.00152 -36.17232,-32.601596 C -35.153681,-33.183656 -33.826767,-33.537429 -32.380944,-33.537429 C -30.935121,-33.537295 -29.608207,-33.183656 -28.589568,-32.601596 z "
+ style="fill:url(#linearGradient7563)" />
+ <path
+ id="path7545"
+ d="M -34.042707,-20.761364 L -30.719449,-20.761364 C -30.706297,-20.805384 -30.69462,-20.85021 -30.684823,-20.895572 L -34.077199,-20.895572 C -34.067402,-20.85021 -34.055726,-20.805384 -34.042707,-20.761364 z "
+ style="fill:#3f3f3f" />
+ </g>
+ </clipPath>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_10_"
+ id="radialGradient7547"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3746685,0,0,0.3745343,-41.145122,6.4690164)"
+ cx="-27.6128"
+ cy="-86.5356"
+ r="6.2114" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_1_"
+ id="linearGradient7549"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="47.9995"
+ y1="100.5"
+ x2="81.9995"
+ y2="100.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient7551"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="44.8901"
+ y1="95.7324"
+ x2="83.5847"
+ y2="90.0861" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_3_"
+ id="linearGradient7553"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-41.040947,-42.162908)"
+ x1="75.5039"
+ y1="11.96"
+ x2="85.5969"
+ y2="36.3307" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient7555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-41.040947,-42.162908)"
+ x1="37.6743"
+ y1="25.6035"
+ x2="37.6743"
+ y2="47.5006" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_5_"
+ id="linearGradient7557"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="44.7505"
+ y1="94.7715"
+ x2="83.3739"
+ y2="89.1356" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_6_"
+ id="linearGradient7559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3746685,-5.350873e-2,0,0.3745343,-41.145122,8.898557)"
+ x1="-34.5078"
+ y1="-100.6235"
+ x2="-20.9253"
+ y2="-100.6235" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_7_"
+ id="linearGradient7561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="45.416"
+ y1="107.0176"
+ x2="83.3354"
+ y2="107.0176" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_8_"
+ id="linearGradient7563"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="36.2495"
+ y1="18.1187"
+ x2="92.7495"
+ y2="18.1187" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#light_1_"
+ id="radialGradient7653"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,0,0,2.7907,141.7533,350.9971)"
+ cx="-27.6724"
+ cy="-109.9067"
+ r="9" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_10_"
+ id="radialGradient8092"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3746685,0,0,0.3745343,-41.145122,6.4690164)"
+ cx="-27.6128"
+ cy="-86.5356"
+ r="6.2114" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_1_"
+ id="linearGradient8094"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="47.9995"
+ y1="100.5"
+ x2="81.9995"
+ y2="100.5" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_2_"
+ id="linearGradient8096"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="44.8901"
+ y1="95.7324"
+ x2="83.5847"
+ y2="90.0861" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_3_"
+ id="linearGradient8098"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-41.040947,-42.162908)"
+ x1="75.5039"
+ y1="11.96"
+ x2="85.5969"
+ y2="36.3307" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient8100"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-41.040947,-42.162908)"
+ x1="37.6743"
+ y1="25.6035"
+ x2="37.6743"
+ y2="47.5006" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_5_"
+ id="linearGradient8102"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="44.7505"
+ y1="94.7715"
+ x2="83.3739"
+ y2="89.1356" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_6_"
+ id="linearGradient8104"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.3746685,-5.350873e-2,0,0.3745343,-41.145122,8.898557)"
+ x1="-34.5078"
+ y1="-100.6235"
+ x2="-20.9253"
+ y2="-100.6235" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_7_"
+ id="linearGradient8106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="45.416"
+ y1="107.0176"
+ x2="83.3354"
+ y2="107.0176" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_8_"
+ id="linearGradient8108"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.134208,0,0,0.134208,-60.169549,-40.637602)"
+ x1="36.2495"
+ y1="18.1187"
+ x2="92.7495"
+ y2="18.1187" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#light_1_"
+ id="radialGradient8110"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.7917,0,0,2.7907,141.7533,350.9971)"
+ cx="-27.6724"
+ cy="-109.9067"
+ r="9" />
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask8044">
+ <g
+ id="g8046"
+ transform="translate(8.8639968,22.032387)">
+ <g
+ id="g8048">
+ <path
+ style="opacity:0.2;fill:#141414"
+ d="M -29.775161,-22.982238 C -29.796903,-23.107991 -29.878636,-23.210123 -29.986136,-23.268906 L -29.986136,-23.560406 C -29.836092,-23.636636 -29.745233,-23.799162 -29.775161,-23.971619 C -29.797037,-24.097641 -29.879038,-24.200041 -29.986942,-24.25869 C -29.991505,-24.402695 -30.109876,-24.519188 -30.254687,-24.519188 L -34.370443,-24.519188 C -34.518072,-24.519188 -34.638859,-24.398401 -34.638859,-24.250772 L -34.638859,-23.677033 L -34.648925,-23.675691 C -34.872381,-23.643481 -35.024305,-23.439619 -34.986727,-23.22247 C -34.956396,-23.047329 -34.811048,-22.917013 -34.638994,-22.889232 L -34.638994,-22.687786 L -34.649059,-22.686175 C -34.872516,-22.654234 -35.024439,-22.450237 -34.986861,-22.233223 C -34.95653,-22.058082 -34.811182,-21.927632 -34.639128,-21.89985 L -34.639128,-21.69827 L -34.649193,-21.696928 C -34.87265,-21.664718 -35.024573,-21.460856 -34.986995,-21.243708 C -34.954785,-21.057829 -34.793199,-20.921072 -34.607186,-20.905503 C -34.562092,-20.820281 -34.473381,-20.761364 -34.370846,-20.761364 L -34.129003,-20.761364 C -33.83294,-20.026441 -33.162303,-19.419284 -32.381347,-19.419284 C -31.600256,-19.419284 -30.929753,-20.026441 -30.63369,-20.761364 L -30.255089,-20.761364 C -30.10746,-20.761364 -29.986673,-20.882151 -29.986673,-21.02978 L -29.986673,-21.581509 C -29.836629,-21.657739 -29.74577,-21.820265 -29.775698,-21.992722 C -29.79744,-22.118475 -29.879173,-22.220608 -29.986673,-22.279391 L -29.986673,-22.570756 C -29.836226,-22.647121 -29.745367,-22.809781 -29.775161,-22.982238 z "
+ id="path8050" />
+ <path
+ style="opacity:0.2;fill:#141414"
+ d="M -29.775161,-22.84803 C -29.796903,-22.973783 -29.878636,-23.075915 -29.986136,-23.134698 L -29.986136,-23.426198 C -29.836092,-23.502428 -29.745233,-23.664954 -29.775161,-23.837411 C -29.797037,-23.963433 -29.879038,-24.065833 -29.986942,-24.124482 C -29.991505,-24.268487 -30.109876,-24.38498 -30.254687,-24.38498 L -34.370443,-24.38498 C -34.518072,-24.38498 -34.638859,-24.264193 -34.638859,-24.116564 L -34.638859,-23.542825 L -34.648925,-23.541483 C -34.872381,-23.509273 -35.024305,-23.305411 -34.986727,-23.088262 C -34.956396,-22.913121 -34.811048,-22.782805 -34.638994,-22.755024 L -34.638994,-22.553578 L -34.649059,-22.551967 C -34.872516,-22.520026 -35.024439,-22.316029 -34.986861,-22.099015 C -34.95653,-21.923874 -34.811182,-21.793424 -34.639128,-21.765642 L -34.639128,-21.564062 L -34.649193,-21.56272 C -34.87265,-21.53051 -35.024573,-21.326648 -34.986995,-21.1095 C -34.954785,-20.923621 -34.793199,-20.786864 -34.607186,-20.771295 C -34.562092,-20.686073 -34.473381,-20.627156 -34.370846,-20.627156 L -34.129003,-20.627156 C -33.83294,-19.892233 -33.162303,-19.285076 -32.381347,-19.285076 C -31.600256,-19.285076 -30.929753,-19.892233 -30.63369,-20.627156 L -30.255089,-20.627156 C -30.10746,-20.627156 -29.986673,-20.747943 -29.986673,-20.895572 L -29.986673,-21.447301 C -29.836629,-21.523531 -29.74577,-21.686057 -29.775698,-21.858514 C -29.79744,-21.984267 -29.879173,-22.0864 -29.986673,-22.145183 L -29.986673,-22.436548 C -29.836226,-22.512913 -29.745367,-22.675573 -29.775161,-22.84803 z "
+ id="path8052" />
+ <path
+ style="fill:url(#radialGradient8092)"
+ d="M -30.507669,-21.694512 C -30.507669,-20.66044 -31.346469,-19.553492 -32.381078,-19.553492 C -33.415553,-19.553492 -34.254353,-20.66044 -34.254353,-21.694512 C -34.254353,-22.728719 -33.415553,-23.298835 -32.381078,-23.298835 C -31.346469,-23.298835 -30.507669,-22.728719 -30.507669,-21.694512 z "
+ id="path8054" />
+ <path
+ style="opacity:0.4;fill:#ffbf61"
+ d="M -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.031465 -27.884976,-30.452926 C -27.884976,-27.874388 -30.519882,-25.378656 -30.519882,-24.634607 L -34.242141,-24.634607 C -34.242141,-25.557018 -36.876912,-27.874388 -36.876912,-30.452926 C -36.876912,-33.031465 -34.86406,-35.12162 -32.380944,-35.12162 z "
+ id="path8056" />
+ <path
+ style="opacity:0.2;fill:#ff8b17"
+ d="M -32.380944,-35.926868 C -35.304128,-35.926868 -37.68216,-33.482538 -37.68216,-30.477889 C -37.68216,-28.627429 -36.56045,-26.960163 -35.741378,-25.742494 C -35.544227,-25.449384 -35.083893,-24.765325 -35.046315,-24.59515 C -35.036652,-24.159511 -34.680061,-23.807751 -34.242006,-23.807751 L -30.519882,-23.807751 C -30.10075,-23.807751 -29.759459,-24.130656 -29.722015,-24.540124 C -29.679203,-24.679969 -29.267184,-25.29585 -29.111906,-25.527761 C -28.301826,-26.738451 -27.079728,-28.56462 -27.079728,-30.477889 C -27.079728,-33.482538 -29.457894,-35.926868 -32.380944,-35.926868 z M -29.722015,-24.541198 C -29.721747,-24.54254 -29.721612,-24.544016 -29.721478,-24.545493 C -29.72121,-24.546566 -29.720405,-24.547372 -29.72027,-24.548445 C -29.72027,-24.54858 -29.721478,-24.543077 -29.722015,-24.541198 z M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ id="path8058" />
+ <path
+ style="opacity:0.2;fill:#ff8b17"
+ d="M -32.380944,-35.658452 C -35.156097,-35.658452 -37.413744,-33.334506 -37.413744,-30.477889 C -37.413744,-28.709296 -36.318338,-27.08095 -35.518459,-25.892136 C -35.223872,-25.454215 -34.778838,-24.792972 -34.778838,-24.613134 C -34.778838,-24.317205 -34.538069,-24.076302 -34.242006,-24.076302 L -30.519882,-24.076302 C -30.223953,-24.076302 -29.98305,-24.317205 -29.98305,-24.613134 L -29.984123,-24.597834 C -29.955805,-24.749489 -29.566334,-25.331683 -29.333483,-25.67955 C -28.542864,-26.860983 -27.348144,-28.646218 -27.348144,-30.477889 C -27.348144,-33.334506 -29.605925,-35.658452 -32.380944,-35.658452 z M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ id="path8060" />
+ <path
+ style="opacity:0.4;fill:#ff8b17"
+ d="M -32.380944,-35.390036 C -35.008066,-35.390036 -37.145328,-33.186475 -37.145328,-30.477889 C -37.145328,-28.791163 -36.076227,-27.202006 -35.295673,-26.041912 C -34.891841,-25.4416 -34.510422,-24.874705 -34.510422,-24.613134 C -34.510422,-24.464968 -34.390172,-24.344718 -34.242006,-24.344718 L -30.519882,-24.344718 C -30.371716,-24.344718 -30.251466,-24.464968 -30.251466,-24.613134 C -30.251466,-24.790288 -29.882125,-25.342151 -29.556402,-25.828924 C -28.784035,-26.983113 -27.61656,-28.727817 -27.61656,-30.477889 C -27.61656,-33.186475 -29.753957,-35.390036 -32.380944,-35.390036 z M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ id="path8062" />
+ <path
+ style="opacity:0.2;fill:#ffbf61"
+ d="M -30.519882,-24.612999 L -34.242141,-24.612999 C -34.242141,-25.530579 -36.877046,-27.91304 -36.877046,-30.477889 C -36.877046,-33.042738 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.913174 -30.519882,-25.353022 -30.519882,-24.612999 z "
+ id="path8064" />
+ <path
+ style="fill:#cba572"
+ d="M -31.631661,-29.235257 L -31.631661,-27.362519 C -31.631661,-27.156778 -31.800494,-26.988078 -32.006369,-26.988078 L -32.755653,-26.988078 C -32.961662,-26.988078 -33.130361,-27.156778 -33.130361,-27.362519 L -33.130361,-29.235257 L -33.50507,-29.235257 L -33.50507,-27.362519 C -33.50507,-26.950634 -33.16794,-26.613504 -32.621579,-26.613504 L -32.621579,-24.366191 L -32.140712,-24.366191 L -32.140712,-26.61337 C -31.594351,-26.61337 -31.25722,-26.9505 -31.25722,-27.362384 L -31.25722,-29.235257 L -31.631661,-29.235257 z "
+ id="path8066" />
+ <path
+ style="fill:#9e8c68"
+ d="M -32.380944,-35.255828 C -34.934117,-35.255828 -37.01112,-33.112392 -37.01112,-30.477889 C -37.01112,-28.831694 -35.955037,-27.278102 -35.184012,-26.14391 C -34.750655,-25.506154 -34.376214,-24.928657 -34.376214,-24.626554 L -34.24308,-24.626554 C -34.267506,-25.553261 -36.876912,-27.924984 -36.876912,-30.477889 C -36.876912,-33.042604 -34.86406,-35.12162 -32.380944,-35.12162 C -29.897962,-35.12162 -27.884976,-33.042604 -27.884976,-30.477889 C -27.884976,-27.927534 -30.489282,-25.382682 -30.518674,-24.626554 L -30.385808,-24.626554 C -30.385808,-24.843971 -30.053375,-25.362551 -29.668466,-25.931996 C -28.859058,-27.128863 -27.750768,-28.768213 -27.750768,-30.477889 C -27.750768,-33.112392 -29.827905,-35.255828 -32.380944,-35.255828 z "
+ id="path8068" />
+ <path
+ style="fill:#966746"
+ d="M -30.032304,-21.163988 C -30.032304,-21.016359 -30.153091,-20.895572 -30.30072,-20.895572 L -34.32696,-20.895572 C -34.474589,-20.895572 -34.595376,-21.016359 -34.595376,-21.163988 L -34.595376,-24.38498 C -34.595376,-24.532609 -34.474589,-24.653396 -34.32696,-24.653396 L -30.30072,-24.653396 C -30.153091,-24.653396 -30.032304,-24.532609 -30.032304,-24.38498 L -30.032304,-21.163988 z "
+ id="path8070" />
+ <path
+ style="fill:url(#linearGradient8094)"
+ d="M -30.032304,-21.298196 C -30.032304,-21.076753 -30.213485,-20.895572 -30.434928,-20.895572 L -34.192752,-20.895572 C -34.414195,-20.895572 -34.595376,-21.076753 -34.595376,-21.298196 L -34.595376,-24.116564 C -34.595376,-24.338007 -34.414195,-24.519188 -34.192752,-24.519188 L -30.434928,-24.519188 C -30.213485,-24.519188 -30.032304,-24.338007 -30.032304,-24.116564 L -30.032304,-21.298196 z "
+ id="path8072" />
+ <path
+ style="fill:url(#linearGradient8096)"
+ d="M -29.825355,-24.105827 C -29.788582,-23.888813 -29.937553,-23.684817 -30.156581,-23.652741 L -34.470965,-23.020353 C -34.689993,-22.988412 -34.899491,-23.139664 -34.936399,-23.356678 C -34.973306,-23.573827 -34.824201,-23.777689 -34.605173,-23.809899 L -30.290789,-24.442153 C -30.071761,-24.474094 -29.862262,-24.322842 -29.825355,-24.105827 z "
+ id="path8074" />
+ <path
+ style="fill:url(#linearGradient8098)"
+ d="M -29.825355,-23.116446 C -29.788582,-22.899297 -29.937553,-22.695435 -30.156581,-22.66336 L -34.470965,-22.031106 C -34.689993,-21.998896 -34.899491,-22.150283 -34.936399,-22.367431 C -34.973306,-22.584445 -34.824201,-22.788442 -34.605173,-22.820383 L -30.290789,-23.452637 C -30.071761,-23.484847 -29.862262,-23.33346 -29.825355,-23.116446 z "
+ id="path8076" />
+ <path
+ style="fill:url(#linearGradient8100)"
+ d="M -29.825355,-22.127065 C -29.788582,-21.91005 -29.937553,-21.706054 -30.156581,-21.673978 L -34.470965,-21.04159 C -34.689993,-21.009649 -34.899491,-21.160901 -34.936399,-21.377916 C -34.973306,-21.595064 -34.824201,-21.798926 -34.605173,-21.831136 L -30.290789,-22.46339 C -30.071761,-22.495331 -29.862262,-22.344079 -29.825355,-22.127065 z "
+ id="path8078" />
+ <path
+ style="fill:url(#linearGradient8102)"
+ d="M -34.887815,-23.22341 L -34.936533,-23.356678 C -34.97344,-23.573827 -34.824335,-23.777689 -34.605307,-23.809899 L -30.290923,-24.442153 C -30.071895,-24.474094 -29.882528,-24.396656 -29.845755,-24.179642 L -34.887815,-23.22341 z "
+ id="path8080" />
+ <path
+ style="fill:url(#linearGradient8104)"
+ d="M -34.880031,-22.220339 L -29.853136,-23.208244 C -29.889909,-23.425259 -30.071761,-23.484847 -30.290789,-23.452503 L -34.605173,-22.820249 C -34.824201,-22.788307 -34.973306,-22.584311 -34.936399,-22.367297 L -34.880031,-22.220339 z "
+ id="path8082" />
+ <path
+ style="fill:url(#linearGradient8106)"
+ d="M -34.853592,-21.194185 L -29.853002,-22.218594 C -29.889909,-22.435609 -30.071761,-22.495466 -30.290789,-22.46339 L -34.605173,-21.831136 C -34.824201,-21.798926 -34.973306,-21.595064 -34.936399,-21.377916 L -34.853592,-21.194185 z "
+ id="path8084" />
+ <path
+ style="fill:url(#linearGradient8108)"
+ d="M -28.589568,-32.601596 C -29.364217,-34.00152 -30.787895,-34.925676 -32.380944,-34.925676 C -33.973993,-34.925676 -35.397671,-34.00152 -36.17232,-32.601596 C -35.153681,-33.183656 -33.826767,-33.537429 -32.380944,-33.537429 C -30.935121,-33.537295 -29.608207,-33.183656 -28.589568,-32.601596 z "
+ id="path8086" />
+ <path
+ style="fill:#3f3f3f"
+ d="M -34.042707,-20.761364 L -30.719449,-20.761364 C -30.706297,-20.805384 -30.69462,-20.85021 -30.684823,-20.895572 L -34.077199,-20.895572 C -34.067402,-20.85021 -34.055726,-20.805384 -34.042707,-20.761364 z "
+ id="path8088" />
+ </g>
+ <ellipse
+ clip-path="url(#clipPath7503)"
+ transform="matrix(0.134208,0,0,0.134208,-41.03736,-36.195284)"
+ ry="60.116001"
+ rx="60.125"
+ cy="44.278999"
+ cx="64.5"
+ id="ellipse8090"
+ style="fill:url(#radialGradient8110)"
+ sodipodi:cx="64.5"
+ sodipodi:cy="44.278999"
+ sodipodi:rx="60.125"
+ sodipodi:ry="60.116001" />
+ </g>
+ </mask>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_3_"
+ id="linearGradient8386"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="75.5039"
+ y1="11.96"
+ x2="85.5969"
+ y2="36.3307" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient8388"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="37.6743"
+ y1="25.6035"
+ x2="37.6743"
+ y2="47.5006" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_3_"
+ id="linearGradient8470"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="75.5039"
+ y1="11.96"
+ x2="85.5969"
+ y2="36.3307" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#XMLID_4_"
+ id="linearGradient8472"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-2.6725931e-2,-44.465488)"
+ x1="37.6743"
+ y1="25.6035"
+ x2="37.6743"
+ y2="47.5006" />
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask8432">
+ <g
+ style="overflow:visible"
+ id="g8434"
+ transform="matrix(0.1570828,0,0,0.1570828,-28.616402,11.0008)">
+ <path
+ id="path8436"
+ d="M 51.868,84.936 C 45.459,79.297 41.784,71.221 41.784,62.78 C 41.784,54.276 45.498,46.164 51.974,40.523 C 52.339,40.204 52.419,39.667 52.16,39.256 L 42.036,23.192 C 41.888,22.958 41.648,22.796 41.375,22.748 C 41.102,22.7 40.819,22.769 40.602,22.937 C 32.334,29.305 26.119,38.265 23.1,48.167 C 22.982,48.554 23.112,48.974 23.431,49.226 C 27.586,52.517 30.066,57.583 30.066,62.779 C 30.066,67.975 27.585,73.043 23.429,76.334 C 23.112,76.585 22.98,77.004 23.098,77.392 C 26.093,87.211 32.238,96.12 40.404,102.474 C 40.623,102.645 40.903,102.715 41.177,102.667 C 41.45,102.62 41.691,102.459 41.84,102.226 L 52.049,86.204 C 52.309,85.794 52.232,85.256 51.868,84.936 z M 12.803,50.223 C 5.732,50.223 0,55.951 0,63.016 C 0,70.081 5.732,75.81 12.803,75.81 C 19.874,75.81 25.606,70.081 25.606,63.016 C 25.606,55.951 19.874,50.223 12.803,50.223 z M 58.779,35.162 C 59.036,35.57 59.551,35.732 59.996,35.545 C 63.75,33.958 67.65,33.153 71.586,33.153 C 86.064,33.153 98.693,43.887 100.963,58.122 C 101.039,58.6 101.451,58.951 101.934,58.951 L 121.014,58.98 C 121.292,58.98 121.557,58.863 121.744,58.657 C 121.931,58.451 122.021,58.178 121.995,57.9 C 120.967,47.338 116.471,37.15 109.336,29.215 C 109.014,28.855 108.477,28.783 108.07,29.046 C 105.193,30.904 101.925,31.888 98.623,31.888 C 88.99,31.888 81.154,24.098 81.153,14.524 C 81.154,14.519 81.172,14.158 81.172,14.142 C 81.172,13.665 80.829,13.254 80.356,13.172 C 77.344,12.65 74.394,12.284 71.586,12.284 C 63.875,12.284 56.084,14.221 49.054,17.695 C 48.804,17.819 48.618,18.043 48.543,18.311 C 48.467,18.579 48.509,18.866 48.657,19.102 L 58.779,35.162 z M 98,27.5 C 104.908,27.5 110.51,21.902 110.51,15 C 110.51,8.096 104.908,2.5 98,2.5 C 91.092,2.5 85.49,8.096 85.49,15 C 85.49,21.902 91.092,27.5 98,27.5 z M 120.994,66.733 L 101.916,66.795 C 101.435,66.796 101.024,67.147 100.947,67.621 C 98.646,81.75 86.024,92.405 71.586,92.405 C 67.604,92.405 63.66,91.581 59.864,89.955 C 59.42,89.766 58.906,89.925 58.645,90.33 L 48.442,106.345 C 48.293,106.58 48.25,106.867 48.324,107.136 C 48.398,107.404 48.583,107.629 48.832,107.753 C 55.917,111.3 63.786,113.174 71.586,113.174 C 74.479,113.174 77.492,112.901 80.541,112.36 C 80.969,112.285 81.297,111.936 81.348,111.505 C 82.364,102.73 89.791,96.112 98.623,96.112 C 101.361,96.112 104.147,96.81 106.679,98.13 C 107.064,98.331 107.533,98.257 107.838,97.946 C 115.823,89.803 120.846,79.104 121.978,67.817 C 122.006,67.54 121.915,67.264 121.727,67.057 C 121.539,66.85 121.272,66.732 120.994,66.733 z M 98.486,100.545 C 91.415,100.545 85.682,106.242 85.682,113.273 C 85.682,120.302 91.414,126.001 98.486,126.001 C 105.556,126.001 111.289,120.303 111.289,113.273 C 111.289,106.242 105.557,100.545 98.486,100.545 z "
+ style="opacity:0.2;fill:#141414;fill-rule:evenodd" />
+ <path
+ id="path8438"
+ d="M 51.868,85.936 C 45.459,80.297 41.784,72.221 41.784,63.78 C 41.784,55.276 45.498,47.164 51.974,41.523 C 52.339,41.204 52.419,40.667 52.16,40.256 L 42.036,24.192 C 41.888,23.958 41.648,23.796 41.375,23.748 C 41.102,23.7 40.819,23.769 40.602,23.937 C 32.334,30.305 26.119,39.265 23.1,49.167 C 22.982,49.554 23.112,49.974 23.431,50.226 C 27.586,53.517 30.066,58.583 30.066,63.779 C 30.066,68.975 27.585,74.043 23.429,77.334 C 23.112,77.585 22.98,78.004 23.098,78.392 C 26.093,88.211 32.238,97.12 40.404,103.474 C 40.623,103.645 40.903,103.715 41.177,103.667 C 41.45,103.62 41.691,103.459 41.84,103.226 L 52.049,87.204 C 52.309,86.794 52.232,86.256 51.868,85.936 z M 12.803,51.223 C 5.732,51.223 0,56.951 0,64.016 C 0,71.081 5.732,76.81 12.803,76.81 C 19.874,76.81 25.606,71.081 25.606,64.016 C 25.606,56.951 19.874,51.223 12.803,51.223 z M 58.779,36.162 C 59.036,36.57 59.551,36.732 59.996,36.545 C 63.75,34.958 67.65,34.153 71.586,34.153 C 86.064,34.153 98.693,44.887 100.963,59.122 C 101.039,59.6 101.451,59.951 101.934,59.951 L 121.014,59.98 C 121.292,59.98 121.557,59.863 121.744,59.657 C 121.931,59.451 122.021,59.178 121.995,58.9 C 120.967,48.338 116.471,38.15 109.336,30.215 C 109.014,29.855 108.477,29.783 108.07,30.046 C 105.193,31.904 101.925,32.888 98.623,32.888 C 88.99,32.888 81.154,25.098 81.153,15.524 C 81.154,15.519 81.172,15.158 81.172,15.142 C 81.172,14.665 80.829,14.254 80.356,14.172 C 77.344,13.65 74.394,13.284 71.586,13.284 C 63.875,13.284 56.084,15.221 49.054,18.695 C 48.804,18.819 48.618,19.043 48.543,19.311 C 48.467,19.579 48.509,19.866 48.657,20.102 L 58.779,36.162 z M 98,28.5 C 104.908,28.5 110.51,22.902 110.51,16 C 110.51,9.096 104.908,3.5 98,3.5 C 91.092,3.5 85.49,9.096 85.49,16 C 85.49,22.902 91.092,28.5 98,28.5 z M 120.994,67.733 L 101.916,67.795 C 101.435,67.796 101.024,68.147 100.947,68.621 C 98.646,82.75 86.024,93.405 71.586,93.405 C 67.604,93.405 63.66,92.581 59.864,90.955 C 59.42,90.766 58.906,90.925 58.645,91.33 L 48.442,107.345 C 48.293,107.58 48.25,107.867 48.324,108.136 C 48.398,108.404 48.583,108.629 48.832,108.753 C 55.917,112.3 63.786,114.174 71.586,114.174 C 74.479,114.174 77.492,113.901 80.541,113.36 C 80.969,113.285 81.297,112.936 81.348,112.505 C 82.364,103.73 89.791,97.112 98.623,97.112 C 101.361,97.112 104.147,97.81 106.679,99.13 C 107.064,99.331 107.533,99.257 107.838,98.946 C 115.823,90.803 120.846,80.104 121.978,68.817 C 122.006,68.54 121.915,68.264 121.727,68.057 C 121.539,67.85 121.272,67.732 120.994,67.733 z M 98.486,101.545 C 91.415,101.545 85.682,107.242 85.682,114.273 C 85.682,121.302 91.414,127.001 98.486,127.001 C 105.556,127.001 111.289,121.303 111.289,114.273 C 111.289,107.242 105.557,101.545 98.486,101.545 z "
+ style="opacity:0.2;fill:#141414;fill-rule:evenodd" />
+ <path
+ id="path8440"
+ d="M 51.868,86.936 C 45.459,81.297 41.784,73.221 41.784,64.78 C 41.784,56.276 45.498,48.164 51.974,42.523 C 52.339,42.204 52.419,41.667 52.16,41.256 L 42.036,25.192 C 41.888,24.958 41.648,24.796 41.375,24.748 C 41.102,24.7 40.819,24.769 40.602,24.937 C 32.334,31.305 26.119,40.265 23.1,50.167 C 22.982,50.554 23.112,50.974 23.431,51.226 C 27.586,54.517 30.066,59.583 30.066,64.779 C 30.066,69.975 27.585,75.043 23.429,78.334 C 23.112,78.585 22.98,79.004 23.098,79.392 C 26.093,89.211 32.238,98.12 40.404,104.474 C 40.623,104.645 40.903,104.715 41.177,104.667 C 41.45,104.62 41.691,104.459 41.84,104.226 L 52.049,88.204 C 52.309,87.794 52.232,87.256 51.868,86.936 z M 12.803,52.223 C 5.732,52.223 0,57.951 0,65.016 C 0,72.081 5.732,77.81 12.803,77.81 C 19.874,77.81 25.606,72.081 25.606,65.016 C 25.606,57.951 19.874,52.223 12.803,52.223 z M 58.779,37.162 C 59.036,37.57 59.551,37.732 59.996,37.545 C 63.75,35.958 67.65,35.153 71.586,35.153 C 86.064,35.153 98.693,45.887 100.963,60.122 C 101.039,60.6 101.451,60.951 101.934,60.951 L 121.014,60.98 C 121.292,60.98 121.557,60.863 121.744,60.657 C 121.931,60.451 122.021,60.178 121.995,59.9 C 120.967,49.338 116.471,39.15 109.336,31.215 C 109.014,30.855 108.477,30.783 108.07,31.046 C 105.193,32.904 101.925,33.888 98.623,33.888 C 88.99,33.888 81.154,26.098 81.153,16.524 C 81.154,16.519 81.172,16.158 81.172,16.142 C 81.172,15.665 80.829,15.254 80.356,15.172 C 77.344,14.65 74.394,14.284 71.586,14.284 C 63.875,14.284 56.084,16.221 49.054,19.695 C 48.804,19.819 48.618,20.043 48.543,20.311 C 48.467,20.579 48.509,20.866 48.657,21.102 L 58.779,37.162 z M 98,29.5 C 104.908,29.5 110.51,23.902 110.51,17 C 110.51,10.096 104.908,4.5 98,4.5 C 91.092,4.5 85.49,10.096 85.49,17 C 85.49,23.902 91.092,29.5 98,29.5 z M 120.994,68.733 L 101.916,68.795 C 101.435,68.796 101.024,69.147 100.947,69.621 C 98.646,83.75 86.024,94.405 71.586,94.405 C 67.604,94.405 63.66,93.581 59.864,91.955 C 59.42,91.766 58.906,91.925 58.645,92.33 L 48.442,108.345 C 48.293,108.58 48.25,108.867 48.324,109.136 C 48.398,109.404 48.583,109.629 48.832,109.753 C 55.917,113.3 63.786,115.174 71.586,115.174 C 74.479,115.174 77.492,114.901 80.541,114.36 C 80.969,114.285 81.297,113.936 81.348,113.505 C 82.364,104.73 89.791,98.112 98.623,98.112 C 101.361,98.112 104.147,98.81 106.679,100.13 C 107.064,100.331 107.533,100.257 107.838,99.946 C 115.823,91.803 120.846,81.104 121.978,69.817 C 122.006,69.54 121.915,69.264 121.727,69.057 C 121.539,68.85 121.272,68.732 120.994,68.733 z M 98.486,102.545 C 91.415,102.545 85.682,108.242 85.682,115.273 C 85.682,122.302 91.414,128.001 98.486,128.001 C 105.556,128.001 111.289,122.303 111.289,115.273 C 111.289,108.242 105.557,102.545 98.486,102.545 z "
+ style="opacity:0.2;fill:#141414;fill-rule:evenodd" />
+ <path
+ id="path8442"
+ d="M 40.602,21.938 C 32.334,28.306 26.119,37.266 23.1,47.168 C 22.982,47.555 23.112,47.975 23.431,48.227 C 27.586,51.518 30.066,56.584 30.066,61.78 C 30.066,66.976 27.585,72.044 23.429,75.335 C 23.112,75.586 22.98,76.005 23.098,76.393 C 26.093,86.212 32.238,95.121 40.404,101.475 C 40.623,101.646 40.903,101.716 41.177,101.668 C 41.45,101.621 41.691,101.46 41.84,101.227 L 52.049,85.205 C 52.31,84.796 52.234,84.258 51.869,83.937 C 45.46,78.298 41.785,70.222 41.785,61.781 C 41.785,53.277 45.499,45.165 51.975,39.524 C 52.34,39.205 52.42,38.668 52.161,38.257 L 42.036,22.192 C 41.888,21.958 41.648,21.796 41.375,21.748 C 41.102,21.7 40.819,21.769 40.602,21.938 z "
+ style="fill:#f97a00" />
+ <path
+ id="path8444"
+ d="M 24.042,47.455 C 28.431,50.932 31.051,56.219 31.051,61.779 C 31.051,67.339 28.43,72.628 24.04,76.104 C 26.991,85.785 32.981,94.45 41.008,100.697 C 42.028,99.097 50.449,85.879 51.217,84.674 C 44.602,78.854 40.799,70.574 40.799,61.779 C 40.799,52.92 44.642,44.603 51.327,38.78 C 50.565,37.572 42.215,24.322 41.203,22.717 C 33.076,28.978 27.018,37.694 24.042,47.455 z "
+ style="fill:#fb8b00" />
+ <ellipse
+ id="ellipse8446"
+ ry="12.794"
+ rx="12.803"
+ cy="62.015999"
+ cx="12.803"
+ style="fill:#f83011;fill-rule:evenodd"
+ sodipodi:cx="12.803"
+ sodipodi:cy="62.015999"
+ sodipodi:rx="12.803"
+ sodipodi:ry="12.794" />
+ <path
+ id="path8448"
+ d="M 0.984,62.016 C 0.984,68.528 6.286,73.827 12.802,73.827 C 19.318,73.827 24.62,68.528 24.62,62.016 C 24.62,55.504 19.318,50.206 12.802,50.206 C 6.286,50.206 0.984,55.504 0.984,62.016 z "
+ style="fill:#f83011;fill-rule:evenodd" />
+ <path
+ id="path8450"
+ d="M 49.054,16.696 C 48.804,16.82 48.618,17.044 48.543,17.312 C 48.467,17.58 48.509,17.867 48.657,18.103 L 58.779,34.162 C 59.036,34.57 59.551,34.732 59.996,34.545 C 63.75,32.958 67.65,32.153 71.586,32.153 C 86.064,32.153 98.693,42.887 100.963,57.122 C 101.039,57.6 101.451,57.951 101.934,57.951 L 121.014,57.98 C 121.292,57.98 121.557,57.863 121.744,57.657 C 121.931,57.451 122.021,57.178 121.995,56.9 C 120.967,46.338 116.471,36.15 109.336,28.215 C 109.014,27.855 108.477,27.783 108.07,28.046 C 105.193,29.904 101.925,30.888 98.623,30.888 C 88.99,30.888 81.154,23.098 81.153,13.524 C 81.154,13.519 81.172,13.158 81.172,13.142 C 81.172,12.665 80.829,12.254 80.356,12.172 C 77.344,11.65 74.394,11.284 71.586,11.284 C 63.875,11.285 56.084,13.222 49.054,16.696 z "
+ style="fill:#f13b00" />
+ <path
+ id="path8452"
+ d="M 49.491,17.578 C 50.527,19.223 58.856,32.437 59.613,33.639 C 63.439,32.022 67.458,31.17 71.587,31.17 C 86.704,31.17 99.583,42.205 101.937,56.968 C 103.373,56.97 119.109,56.993 121.017,56.996 C 120.004,46.605 115.636,36.693 108.606,28.873 C 105.609,30.81 102.191,31.872 98.625,31.872 C 88.449,31.872 80.17,23.641 80.17,13.523 C 80.17,13.523 80.18,13.313 80.189,13.142 C 77.356,12.65 74.471,12.268 71.588,12.268 C 63.928,12.269 56.327,14.199 49.491,17.578 z "
+ style="fill:#f13b00" />
+ <ellipse
+ id="ellipse8454"
+ ry="12.5"
+ rx="12.51"
+ cy="14"
+ cx="98"
+ style="fill:#e00916;fill-rule:evenodd"
+ sodipodi:cx="98"
+ sodipodi:cy="14"
+ sodipodi:rx="12.51"
+ sodipodi:ry="12.5" />
+ <path
+ id="path8456"
+ d="M 86.992,14 C 86.992,20.065 91.93,25 98,25 C 104.07,25 109.008,20.065 109.008,14 C 109.008,7.935 104.07,3 98,3 C 91.93,3 86.992,7.935 86.992,14 z "
+ style="fill:#e56363;fill-rule:evenodd" />
+ <path
+ id="path8458"
+ d="M 120.994,65.733 L 101.916,65.795 C 101.435,65.796 101.024,66.147 100.947,66.621 C 98.646,80.75 86.024,91.405 71.586,91.405 C 67.604,91.405 63.66,90.581 59.864,88.955 C 59.42,88.766 58.906,88.925 58.645,89.33 L 48.442,105.345 C 48.293,105.58 48.25,105.867 48.324,106.136 C 48.398,106.404 48.583,106.629 48.832,106.753 C 55.917,110.3 63.786,112.174 71.586,112.174 C 74.479,112.174 77.492,111.901 80.541,111.36 C 80.969,111.285 81.297,110.936 81.348,110.505 C 82.364,101.73 89.791,95.112 98.623,95.112 C 101.361,95.112 104.147,95.81 106.679,97.13 C 107.064,97.331 107.533,97.257 107.838,96.946 C 115.823,88.803 120.846,78.104 121.978,66.817 C 122.006,66.54 121.915,66.264 121.727,66.057 C 121.539,65.85 121.272,65.732 120.994,65.733 z "
+ style="fill:#d40000" />
+ <ellipse
+ id="ellipse8460"
+ ry="12.728"
+ rx="12.803"
+ cy="112.272"
+ cx="98.486"
+ style="fill:#ff7516;fill-rule:evenodd"
+ sodipodi:cx="98.486"
+ sodipodi:cy="112.272"
+ sodipodi:rx="12.803"
+ sodipodi:ry="12.728" />
+ <path
+ id="path8462"
+ d="M 86.844,112.272 C 86.844,118.651 92.067,123.841 98.487,123.841 C 104.907,123.841 110.13,118.651 110.13,112.272 C 110.13,105.893 104.907,100.703 98.487,100.703 C 92.067,100.703 86.844,105.894 86.844,112.272 z "
+ style="fill:#fb9200;fill-rule:evenodd" />
+ <path
+ id="path8464"
+ d="M 49.785,17.67 C 50.008,18.024 59.527,33.127 59.695,33.395 C 63.548,31.791 67.547,30.969 71.586,30.969 C 78.265,30.969 84.635,33.086 90.02,37.08 C 90.155,37.07 103.667,36.099 103.667,36.099 C 103.667,36.099 112.654,35.447 113.294,35.4 C 111.865,33.167 110.392,31.264 108.67,29.337 C 105.639,31.256 102.097,32.173 98.623,32.173 C 88.337,32.173 79.969,23.752 79.969,13.525 C 79.969,13.519 79.973,13.418 79.979,13.318 C 77.094,12.827 74.27,12.47 71.586,12.47 C 64.13,12.469 56.6,14.34 49.785,17.67 z "
+ style="fill:url(#linearGradient8470);fill-rule:evenodd" />
+ <path
+ id="path8466"
+ d="M 24.274,47.396 C 26.599,49.268 28.451,51.682 29.658,54.398 C 34.14,51.488 38.459,49.95 43.889,47.772 C 45.598,44.761 48.481,41.04 51.074,38.755 C 50.915,38.503 41.39,23.39 41.155,23.017 C 33.202,29.201 27.214,37.844 24.274,47.396 z "
+ style="fill:url(#linearGradient8472);fill-rule:evenodd" />
+ <path
+ id="path8468"
+ d="M 23.732,58.691 C 22.313,53.996 17.948,50.566 12.794,50.566 C 6.493,50.566 1.367,55.689 1.367,61.985 C 1.367,66.015 3.469,69.565 6.633,71.597 C 11.926,67.035 17.919,62.755 23.732,58.691 z "
+ style="fill:#f88657;fill-rule:evenodd" />
+ </g>
+ </mask>
+ </defs>
+ <sodipodi:namedview
+ inkscape:window-height="627"
+ inkscape:window-width="910"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ guidetolerance="10.0"
+ gridtolerance="10.0"
+ objecttolerance="10.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="7.2055766"
+ inkscape:cx="35.602016"
+ inkscape:cy="22.962506"
+ inkscape:window-x="238"
+ inkscape:window-y="96"
+ inkscape:current-layer="svg2254"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <sodipodi:guide
+ orientation="horizontal"
+ position="0"
+ id="guide4273" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="48"
+ id="guide4275" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="0"
+ id="guide4437" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="48"
+ id="guide4439" />
+ </sodipodi:namedview>
+ <rect
+ style="fill:url(#linearGradient4371);fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect4011"
+ width="47.866001"
+ height="47.866001"
+ x="-48"
+ y="-47.866001"
+ transform="scale(-1,-1)"
+ inkscape:export-filename="/home/matt/eclipse33/eclipse-icon-bulb.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <rect
+ style="fill:url(#linearGradient4368);fill-opacity:1;stroke:none;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3016"
+ width="45.866379"
+ height="45.866383"
+ x="1.1343775"
+ y="1.048512" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#c88cbb;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4033"
+ sodipodi:cx="-30.021633"
+ sodipodi:cy="23.982693"
+ sodipodi:rx="20.014421"
+ sodipodi:ry="20.014421"
+ d="M -10.007212 23.982693 A 20.014421 20.014421 0 1 1 -50.036055,23.982693 A 20.014421 20.014421 0 1 1 -10.007212 23.982693 z"
+ transform="translate(53.070541,-2.5560054e-2)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:url(#linearGradient4041);fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path4031"
+ sodipodi:cx="-30.021633"
+ sodipodi:cy="23.982693"
+ sodipodi:rx="20.014421"
+ sodipodi:ry="20.014421"
+ d="M -10.007212 23.982693 A 20.014421 20.014421 0 1 1 -50.036055,23.982693 A 20.014421 20.014421 0 1 1 -10.007212 23.982693 z"
+ transform="translate(55.071984,-2.5560054e-2)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:1;fill:#fffffa;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4267)"
+ id="path4043"
+ sodipodi:cx="-38.944729"
+ sodipodi:cy="15.643351"
+ sodipodi:rx="8.9230967"
+ sodipodi:ry="8.8397036"
+ d="M -30.021632 15.643351 A 8.9230967 8.8397036 0 1 1 -47.867826,15.643351 A 8.9230967 8.8397036 0 1 1 -30.021632 15.643351 z"
+ transform="matrix(1.2616822,0,0,1.1226415,62.529072,-5.2595765)"
+ mask="url(#mask4181)" />
+ <g
+ id="g4417"
+ clip-path="url(#clipPath4423)"
+ transform="translate(50.116184,2.1870546e-2)">
+ <path
+ transform="translate(1.387814,-0.4734046)"
+ clip-path="none"
+ id="path4279"
+ d="M -47.32329,19.312662 L -6.0456207,19.312662"
+ style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4429);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="translate(1.387814,-0.4734046)"
+ clip-path="none"
+ id="path4281"
+ d="M -47.32329,22.48125 L -6.045621,22.48125"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4431);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="translate(1.387814,-0.4734046)"
+ clip-path="none"
+ id="path4283"
+ d="M -47.32329,25.482334 L -6.0456207,25.482334"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4433);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ <path
+ transform="translate(1.387814,-0.4734046)"
+ clip-path="none"
+ id="path4285"
+ d="M -47.32329,28.481612 L -6.0456207,28.481612"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4435);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/extra/efibootmgr/PKGBUILD b/extra/efibootmgr/PKGBUILD
new file mode 100755
index 000000000..7bda0f640
--- /dev/null
+++ b/extra/efibootmgr/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 108903 2011-02-04 21:01:10Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor : Murtuza Akhtari <inxsible at gmail dot com>
+# Contributor: Keshav P R <skodabenz at rocketmail dot com>
+
+pkgname=efibootmgr
+pkgver=0.5.4
+pkgrel=1
+pkgdesc="Tool to modify UEFI Firmware Boot Manager Variables."
+arch=('i686' 'x86_64')
+url="http://linux.dell.com/efibootmgr/"
+license=('GPL2')
+depends=('zlib')
+makedepends=()
+provides=()
+options=(strip purge docs zipman !emptydirs)
+
+source=("http://linux.dell.com/efibootmgr/permalink/${pkgname}-${pkgver}.tar.gz"
+ 'efibootmgr_after_0.5.4_git.patch'
+ 'efibootmgr_default_to_grub2.patch')
+
+build () {
+ rm -rf ${srcdir}/efibootmgr-${pkgver}_build/ || true
+
+ cp -r ${srcdir}/efibootmgr-${pkgver} ${srcdir}/efibootmgr-${pkgver}_build
+
+ cd ${srcdir}/efibootmgr-${pkgver}_build/
+
+ patch -Np1 -i ${srcdir}/efibootmgr_after_0.5.4_git.patch
+ patch -Np1 -i ${srcdir}/efibootmgr_default_to_grub2.patch
+ echo
+
+ CFLAGS= make
+ echo
+
+}
+
+
+package() {
+
+ mkdir -p ${pkgdir}/usr/sbin/
+ mkdir -p ${pkgdir}/usr/share/man/man8/
+
+ cd ${srcdir}/efibootmgr-${pkgver}_build/
+
+ install -D -m755 ${srcdir}/efibootmgr-${pkgver}_build/src/efibootmgr/efibootmgr ${pkgdir}/usr/sbin/efibootmgr
+ install -D -m644 ${srcdir}/efibootmgr-${pkgver}_build/src/man/man8/efibootmgr.8 ${pkgdir}/usr/share/man/man8/efibootmgr.8
+
+}
+md5sums=('cfcf24752d6461b73f7ba964bbf73169'
+ '29730052de0d6911457a26011f8ddb6e'
+ 'd31f3c378cf8aac57b71620340c68b24')
diff --git a/extra/efibootmgr/efibootmgr_after_0.5.4_git.patch b/extra/efibootmgr/efibootmgr_after_0.5.4_git.patch
new file mode 100755
index 000000000..5b9b6f825
--- /dev/null
+++ b/extra/efibootmgr/efibootmgr_after_0.5.4_git.patch
@@ -0,0 +1,159 @@
+diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c
+index 5db0d9e..199af39 100644
+--- a/src/efibootmgr/efibootmgr.c
++++ b/src/efibootmgr/efibootmgr.c
+@@ -328,6 +328,7 @@ add_to_boot_order(uint16_t num)
+ /* Now new_data has what we need */
+ memcpy(&(boot_order.Data), new_data, new_data_size);
+ boot_order.DataSize = new_data_size;
++ free(new_data);
+ return create_or_edit_variable(&boot_order);
+ }
+
+diff --git a/src/include/disk.h b/src/include/disk.h
+index eb93d10..8aa37d7 100644
+--- a/src/include/disk.h
++++ b/src/include/disk.h
+@@ -65,6 +65,9 @@ enum _interface_type {interface_type_unknown,
+ ata, atapi, scsi, usb,
+ i1394, fibre, i2o, md};
+
++
++unsigned int lcm(unsigned int x, unsigned int y);
++
+ int disk_get_pci(int fd,
+ unsigned char *bus,
+ unsigned char *device,
+diff --git a/src/lib/disk.c b/src/lib/disk.c
+index 883864f..8ad590b 100644
+--- a/src/lib/disk.c
++++ b/src/lib/disk.c
+@@ -55,7 +55,7 @@ disk_info_from_fd(int fd,
+ return 1;
+ }
+ major = buf.st_dev >> 8;
+- minor = buf.st_dev && 0xFF;
++ minor = buf.st_dev & 0xFF;
+
+ /* IDE disks can have up to 64 partitions, or 6 bits worth,
+ * and have one bit for the disk number.
+@@ -420,6 +420,27 @@ get_sector_size(int filedes)
+ return sector_size;
+ }
+
++/************************************************************
++ * lcm
++ * Requires:
++ * - numbers of which to find the lowest common multiple
++ * Modifies: nothing
++ * Returns:
++ * lowest common multiple of x and y
++ ************************************************************/
++unsigned int
++lcm(unsigned int x, unsigned int y)
++{
++ unsigned int m = x, n = y, o;
++
++ while ((o = m % n)) {
++ m = n;
++ n = o;
++ }
++
++ return (x / n) * y;
++}
++
+ /**
+ * disk_get_partition_info()
+ * @fd - open file descriptor to disk
+@@ -442,26 +463,27 @@ disk_get_partition_info (int fd,
+ uint8_t *mbr_type, uint8_t *signature_type)
+ {
+ legacy_mbr *mbr;
+- void *mbr_unaligned;
++ void *mbr_sector;
++ size_t mbr_size;
+ off_t offset;
+ int this_bytes_read = 0;
+ int gpt_invalid=0, mbr_invalid=0;
+ int rc=0;
+ int sector_size = get_sector_size(fd);
+
+- if (sizeof(*mbr) != sector_size)
+- return 1;
+- mbr_unaligned = malloc(sizeof(*mbr)+sector_size-1);
+- mbr = (legacy_mbr *)
+- (((unsigned long)mbr_unaligned + sector_size - 1) &
+- ~(unsigned long)(sector_size-1));
+- memset(mbr, 0, sizeof(*mbr));
++
++ mbr_size = lcm(sizeof(*mbr), sector_size);
++ if ((rc = posix_memalign(&mbr_sector, sector_size, mbr_size)) != 0)
++ goto error;
++ memset(mbr_sector, '\0', mbr_size);
++
+ offset = lseek(fd, 0, SEEK_SET);
+- this_bytes_read = read(fd, mbr, sizeof(*mbr));
++ this_bytes_read = read(fd, mbr_sector, mbr_size);
+ if (this_bytes_read < sizeof(*mbr)) {
+ rc=1;
+ goto error_free_mbr;
+ }
++ mbr = (legacy_mbr *)mbr_sector;
+ gpt_invalid = gpt_disk_get_partition_info(fd, num,
+ start, size,
+ signature,
+@@ -479,7 +501,8 @@ disk_get_partition_info (int fd,
+ }
+ }
+ error_free_mbr:
+- free(mbr_unaligned);
++ free(mbr_sector);
++ error:
+ return rc;
+ }
+
+diff --git a/src/lib/gpt.c b/src/lib/gpt.c
+index d90ddaf..83e7a94 100644
+--- a/src/lib/gpt.c
++++ b/src/lib/gpt.c
+@@ -215,26 +215,24 @@ read_lastoddsector(int fd, uint64_t lba, void *buffer, size_t count)
+ static ssize_t
+ read_lba(int fd, uint64_t lba, void *buffer, size_t bytes)
+ {
+- int sector_size = get_sector_size(fd);
+- off_t offset = lba * sector_size;
++ int sector_size = get_sector_size(fd);
++ off_t offset = lba * sector_size;
+ ssize_t bytesread;
+- void *aligned;
+- void *unaligned;
+-
+- if (bytes % sector_size)
+- return EINVAL;
++ void *iobuf;
++ size_t iobuf_size;
++ int rc;
+
+- unaligned = malloc(bytes+sector_size-1);
+- aligned = (void *)
+- (((unsigned long)unaligned + sector_size - 1) &
+- ~(unsigned long)(sector_size-1));
+- memset(aligned, 0, bytes);
++ iobuf_size = lcm(bytes, sector_size);
++ rc = posix_memalign(&iobuf, sector_size, iobuf_size);
++ if (rc)
++ return rc;
++ memset(iobuf, 0, bytes);
+
+
+- lseek(fd, offset, SEEK_SET);
+- bytesread = read(fd, aligned, bytes);
+- memcpy(buffer, aligned, bytesread);
+- free(unaligned);
++ lseek(fd, offset, SEEK_SET);
++ bytesread = read(fd, iobuf, iobuf_size);
++ memcpy(buffer, iobuf, bytes);
++ free(iobuf);
+
+ /* Kludge. This is necessary to read/write the last
+ block of an odd-sized disk, until Linux 2.5.x kernel fixes.
diff --git a/extra/efibootmgr/efibootmgr_default_to_grub2.patch b/extra/efibootmgr/efibootmgr_default_to_grub2.patch
new file mode 100755
index 000000000..1a1b3c69f
--- /dev/null
+++ b/extra/efibootmgr/efibootmgr_default_to_grub2.patch
@@ -0,0 +1,44 @@
+diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c
+index 199af39..3826e03 100644
+--- a/src/efibootmgr/efibootmgr.c
++++ b/src/efibootmgr/efibootmgr.c
+@@ -18,7 +18,7 @@
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+- This must tie the EFI_DEVICE_PATH to /boot/efi/elilo.efi
++ This must tie the EFI_DEVICE_PATH to /boot/efi/EFI/grub/grub.efi
+ The EFI_DEVICE_PATH will look something like:
+ ACPI device path, length 12 bytes
+ Hardware Device Path, PCI, length 6 bytes
+@@ -26,7 +26,7 @@
+ Media Device Path, Hard Drive, partition XX, length 30 bytes
+ Media Device Path, File Path, length ??
+ End of Hardware Device Path, length 4
+- Arguments passed to elilo, as UCS-2 characters, length ??
++ Arguments passed to grub2, as UCS-2 characters, length ??
+
+ */
+
+@@ -780,8 +780,8 @@ usage()
+ printf("\t-g | --gpt force disk with invalid PMBR to be treated as GPT\n");
+ printf("\t-H | --acpi_hid XXXX set the ACPI HID (used with -i)\n");
+ printf("\t-i | --iface name create a netboot entry for the named interface\n");
+- printf("\t-l | --loader name (defaults to \\elilo.efi)\n");
+- printf("\t-L | --label label Boot manager display label (defaults to \"Linux\")\n");
++ printf("\t-l | --loader name (defaults to \\EFI\\grub\\grub.efi)\n");
++ printf("\t-L | --label label Boot manager display label (defaults to \"GRUB2\")\n");
+ printf("\t-n | --bootnext XXXX set BootNext to XXXX (hex)\n");
+ printf("\t-N | --delete-bootnext delete BootNext\n");
+ printf("\t-o | --bootorder XXXX,YYYY,ZZZZ,... explicitly set BootOrder (hex)\n");
+@@ -808,8 +808,8 @@ set_default_opts()
+ opts.active = -1; /* Don't set it */
+ opts.timeout = -1; /* Don't set it */
+ opts.edd10_devicenum = 0x80;
+- opts.loader = "\\elilo.efi";
+- opts.label = "Linux";
++ opts.loader = "\\EFI\\grub\\grub.efi";
++ opts.label = "GRUB2";
+ opts.disk = "/dev/sda";
+ opts.iface = NULL;
+ opts.part = 1;
diff --git a/extra/eject/PKGBUILD b/extra/eject/PKGBUILD
new file mode 100644
index 000000000..a10bdcab4
--- /dev/null
+++ b/extra/eject/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 84697 2010-07-03 16:22:38Z ibiru $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=eject
+pkgver=2.1.5
+pkgrel=4
+pkgdesc="Eject is a program for ejecting removable media under software control"
+arch=('i686' 'x86_64')
+url="http://ca.geocities.com/jefftranter@rogers.com/eject.html"
+license=('GPL')
+depends=('glibc')
+source=(ftp://mirrors.kernel.org/slackware/slackware-13.1/source/a/$pkgname/$pkgname-$pkgver.tar.bz2
+ eject-2.1.5-handle-spaces.patch)
+md5sums=('5a6cab2184ae4ed21128054d931d558f'
+ '595b97c3bd56fd41e3b01b07885f81dc')
+
+build() {
+ cd $srcdir/$pkgname
+ patch -Np0 -i ../eject-2.1.5-handle-spaces.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/eject/eject-2.1.5-handle-spaces.patch b/extra/eject/eject-2.1.5-handle-spaces.patch
new file mode 100644
index 000000000..692368fa5
--- /dev/null
+++ b/extra/eject/eject-2.1.5-handle-spaces.patch
@@ -0,0 +1,57 @@
+http://bugs.gentoo.org/151257
+
+--- eject.c
++++ eject.c
+@@ -370,6 +370,30 @@ static int FileExists(const char *name,
+
+
+ /*
++ * Linux mangles spaces in mount points by changing them to an octal string
++ * of '\040'. So lets scan the mount point and fix it up by replacing all
++ * occurrences off '\0##' with the ASCII value of 0##. Requires a writable
++ * string as input as we mangle in place. Some of this was taken from the
++ * util-linux package.
++ */
++#define octalify(a) ((a) & 7)
++#define tooctal(s) (64*octalify(s[1]) + 8*octalify(s[2]) + octalify(s[3]))
++#define isoctal(a) (((a) & ~7) == '0')
++static char *DeMangleMount(char *s)
++{
++ char *tmp = s;
++ while ((tmp = strchr(tmp, '\\')) != NULL) {
++ if (isoctal(tmp[1]) && isoctal(tmp[2]) && isoctal(tmp[3])) {
++ tmp[0] = tooctal(tmp);
++ memmove(tmp+1, tmp+4, strlen(tmp)-3);
++ }
++ ++tmp;
++ }
++ return s;
++}
++
++
++/*
+ * Given name, such as foo, see if any of the following exist:
+ *
+ * foo (if foo starts with '.' or '/')
+@@ -884,8 +908,8 @@ static int MountedDevice(const char *nam
+ if (((strcmp(s1, name) == 0) || (strcmp(s2, name) == 0)) ||
+ ((maj != -1) && (maj == mtabmaj) && (min == mtabmin))) {
+ FCLOSE(fp);
+- *deviceName = strdup(s1);
+- *mountName = strdup(s2);
++ *deviceName = DeMangleMount(strdup(s1));
++ *mountName = DeMangleMount(strdup(s2));
+ return 1;
+ }
+ }
+@@ -928,8 +952,8 @@ static int MountableDevice(const char *n
+ rc = sscanf(line, "%1023s %1023s", s1, s2);
+ if (rc >= 2 && s1[0] != '#' && strcmp(s2, name) == 0) {
+ FCLOSE(fp);
+- *deviceName = strdup(s1);
+- *mountName = strdup(s2);
++ *deviceName = DeMangleMount(strdup(s1));
++ *mountName = DeMangleMount(strdup(s2));
+ return 1;
+ }
+ }
diff --git a/extra/ekiga/PKGBUILD b/extra/ekiga/PKGBUILD
new file mode 100644
index 000000000..9baa750a0
--- /dev/null
+++ b/extra/ekiga/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 112772 2011-03-06 16:43:00Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+
+pkgname=ekiga
+pkgver=3.2.7
+pkgrel=4
+pkgdesc="VOIP/Videoconferencing app with full SIP and H.323 support (GnomeMeeting expanded and renamed)"
+url="http://www.ekiga.org"
+license=(GPL)
+arch=(i686 x86_64)
+depends=('opal=3.6.8' 'evolution-data-server>=2.32.0' 'libsigc++>=2.2.8' 'libxv' 'libnotify>=0.4.5' 'hicolor-icon-theme' 'avahi>=0.6.27')
+makedepends=('pkgconfig' 'intltool' 'gnome-doc-utils>=0.20.0')
+provides=('gnomemeeting')
+replaces=('gnomemeeting')
+options=(!emptydirs)
+groups=('gnome-extra')
+install=ekiga.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.2/${pkgname}-${pkgver}.tar.bz2
+ ekiga-3.2.7-libnotify-0.7.patch)
+sha256sums=('f25a1309b68eafe69f0d7aed461bc9a8196939060543d09bd2f19e0bb1e3fd8f'
+ 'ad850d4e81a958081220f450a49ba9c10209d03f066f6afee99477c815c23daf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/ekiga-3.2.7-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-schemas-install \
+ --disable-scrollkeeper --enable-dbus
+ make
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain ekiga ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch b/extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch
new file mode 100644
index 000000000..c09fbb0f9
--- /dev/null
+++ b/extra/ekiga/ekiga-3.2.7-libnotify-0.7.patch
@@ -0,0 +1,62 @@
+--- lib/engine/components/libnotify/libnotify-main.cpp
++++ lib/engine/components/libnotify/libnotify-main.cpp
+@@ -40,6 +40,10 @@
+
+ #include <libnotify/notify.h>
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ #include "services.h"
+ #include "notification-core.h"
+
+@@ -158,7 +162,12 @@
+
+ notif = notify_notification_new (notification->get_title ().c_str (),
+ notification->get_body ().c_str (),
+- urgency, NULL);
++ urgency
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+
+ g_signal_connect (notif, "closed",
+ G_CALLBACK (on_notif_closed), notification.get ());
+--- src/gui/main.cpp
++++ src/gui/main.cpp
+@@ -84,6 +84,9 @@
+
+ #ifdef HAVE_NOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ #if defined(P_FREEBSD) || defined (P_MACOSX)
+@@ -2820,12 +2823,21 @@
+
+ body = g_strdup_printf ("%s\n%s\n%s", uri, app, account);
+
+- notify = notify_notification_new (title, body, GM_ICON_LOGO, NULL);
++ notify = notify_notification_new (title, body, GM_ICON_LOGO
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+ notify_notification_add_action (notify, "accept", _("Accept"), notify_action_cb, mw, NULL);
+ notify_notification_add_action (notify, "reject", _("Reject"), notify_action_cb, mw, NULL);
+ notify_notification_set_timeout (notify, NOTIFY_EXPIRES_NEVER);
+ notify_notification_set_urgency (notify, NOTIFY_URGENCY_CRITICAL);
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ // notify_notification_attach_to_status_icon was removed
++#else
+ notify_notification_attach_to_status_icon (notify, statusicon);
++#endif
+ if (!notify_notification_show (notify, NULL)) {
+ ekiga_main_window_incoming_call_dialog_show (mw, call);
+ }
diff --git a/extra/ekiga/ekiga.install b/extra/ekiga/ekiga.install
new file mode 100644
index 000000000..b1d76a4a3
--- /dev/null
+++ b/extra/ekiga/ekiga.install
@@ -0,0 +1,22 @@
+pkgname=ekiga
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/emacs/PKGBUILD b/extra/emacs/PKGBUILD
new file mode 100644
index 000000000..88b2e2eb0
--- /dev/null
+++ b/extra/emacs/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 113641 2011-03-10 11:31:08Z juergen $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Renchi Raju <renchi@green.tam.uiuc.edu>
+pkgname=emacs
+pkgver=23.3
+pkgrel=1
+pkgdesc="The Emacs Editor"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/emacs/emacs.html"
+license=('GPL')
+options=(docs)
+replaces=(cedet)
+depends=('dbus-core' 'librsvg' 'gpm' 'giflib' 'libtiff' 'libxpm' 'libjpeg' 'gtk2' 'texinfo' 'hicolor-icon-theme' 'gconf')
+source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$pkgver.tar.gz emacs.desktop)
+md5sums=('bf07c01ef473d8540c9c39f94506b1e6'
+ '8af038d2ba4561271e935bb444ceb4e3')
+install=emacs.install
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ mandir=/usr/share/man
+
+ # gcc 4.5 Workaround: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43904
+ CFLAGS="${CFLAGS} -fno-optimize-sibling-calls"\
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --localstatedir=/var --mandir=${mandir} --without-sound --with-x-toolkit=gtk
+ make
+ make DESTDIR=$startdir/pkg install
+
+ # remove conflict with ctags package
+ mv $startdir/pkg/usr/bin/{ctags,ctags.emacs}
+ mv $startdir/pkg/usr/bin/{etags,etags.emacs}
+ mv $startdir/pkg${mandir}/man1/{etags.1,etags.emacs.1}
+ mv $startdir/pkg${mandir}/man1/{ctags.1,ctags.emacs.1}
+ # fix all the 777 perms on directories
+ find $startdir/pkg/usr/share/emacs/$pkgver -type d -exec chmod 755 {} \;
+ # fix user/root permissions on usr/share files
+ find $startdir/pkg/usr/share/emacs/$pkgver -exec chown root.root {} \;
+ # fix perms on /var/games
+ chmod 775 ${startdir}/pkg/var/games
+ chmod 775 ${startdir}/pkg/var/games/emacs
+ chmod 664 ${startdir}/pkg/var/games/emacs/*
+ chown -R root:50 ${startdir}/pkg/var/games
+
+
+ # fix FS#9253
+ mkdir -p $startdir/pkg/usr/share/pixmaps ${startdir}/pkg/usr/share/applications
+ install -D -m644 ${startdir}/src/${pkgname}.desktop ${startdir}/pkg/usr/share/applications
+ ln -s ../emacs/${pkgver}/etc/images/icons/hicolor/48x48/apps/emacs.png $startdir/pkg/usr/share/pixmaps/emacs-icon.png
+}
diff --git a/extra/emacs/emacs.desktop b/extra/emacs/emacs.desktop
new file mode 100644
index 000000000..71b3d5bbf
--- /dev/null
+++ b/extra/emacs/emacs.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=Emacs Text Editor
+Name[de]=Emacs Texteditor
+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=emacs %f
+Icon=emacs-icon
+Type=Application
+Terminal=false
+Categories=Development;TextEditor;
+StartupWMClass=Emacs
diff --git a/extra/emacs/emacs.install b/extra/emacs/emacs.install
new file mode 100644
index 000000000..80bcb20bf
--- /dev/null
+++ b/extra/emacs/emacs.install
@@ -0,0 +1,28 @@
+ICON_PATH=/usr/share/icons/hicolor
+INFO_DIR=/usr/share/info
+
+INFO_FILES=(ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse
+ediff efaq eintr elisp emacs emacs-mime epa erc eshell eudc flymake
+forms gnus idlwave info mairix-el message mh-e newsticker nxml-mode
+org pcl-cvs pgg rcirc reftex remember sasl sc ses sieve smtpmail
+speedbar tramp url vip viper widget woman)
+
+post_install() {
+ gtk-update-icon-cache -q -t -f ${ICON_PATH}
+
+ for f in ${INFO_FILES[@]}; do
+ install-info ${INFO_DIR}/$f.gz ${INFO_DIR}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gtk-update-icon-cache -q -t -f ${ICON_PATH}
+
+ for f in ${INFO_FILES[@]}; do
+ install-info --delete ${INFO_DIR}/$f.gz ${INFO_DIR}/dir 2> /dev/null
+ done
+}
diff --git a/extra/emelfm2/PKGBUILD b/extra/emelfm2/PKGBUILD
new file mode 100644
index 000000000..e6f370b45
--- /dev/null
+++ b/extra/emelfm2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 109827 2011-02-13 03:40:47Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: contrasutra
+
+pkgname=emelfm2
+pkgver=0.7.5
+pkgrel=1
+pkgdesc="A file manager that implements the popular two-pane design"
+arch=(i686 x86_64)
+url="http://emelfm2.net/"
+depends=('gtk2')
+license=('GPL')
+source=(http://emelfm2.net/rel/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f2167b0a595a2d3964b0cde2c5a6305c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make PREFIX=/usr
+ make PREFIX=${pkgdir}/usr install
+ make PREFIX=${pkgdir}/usr install_i18n
+
+ install -m 755 ${pkgdir}/usr/share/pixmaps/emelfm2/emelfm2_48.png \
+ ${pkgdir}/usr/share/pixmaps/emelfm2.png
+ sed -e '/Icon=/ s^emelfm2/emelfm2_48.png^emelfm2.png^' \
+ -e '/Categories=/ s^;$^;Application;Utility;^' \
+ -i ${pkgdir}/usr/share/applications/emelfm2.desktop
+}
diff --git a/extra/emovix/PKGBUILD b/extra/emovix/PKGBUILD
new file mode 100644
index 000000000..f18c36675
--- /dev/null
+++ b/extra/emovix/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 37013 2009-04-29 22:54:35Z eric $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=emovix
+pkgver=0.9.0
+pkgrel=4
+pkgdesc="Create Movix-CD's (also emovix plugin for k3b)"
+arch=(i686 x86_64)
+url="http://movix.sourceforge.net/"
+license=('GPL2')
+depends=('perl' 'cdrtools')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/movix/$pkgname-$pkgver.tar.gz)
+md5sums=('a96492f338824b24c5a9e714c57eddcf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ find $pkgdir/usr/share/emovix -type d -exec chmod 755 {} \; || return 1
+}
+
diff --git a/extra/empathy/PKGBUILD b/extra/empathy/PKGBUILD
new file mode 100644
index 000000000..ccee7ee02
--- /dev/null
+++ b/extra/empathy/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 112778 2011-03-06 17:05:25Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=empathy
+pkgver=2.32.2
+pkgrel=2
+pkgdesc="A GNOME instant messaging client using the Telepathy framework."
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Empathy"
+license=('GPL2')
+depends=('telepathy-glib>=0.12.4' 'telepathy-mission-control>=5.6.1' 'folks>=0.2.1' 'telepathy-logger>=0.1.5' 'telepathy-farsight>=0.0.15'
+ 'gnome-keyring>=2.32.0' 'gnutls' 'gconf>=2.32.0' 'evolution-data-server>=2.32.1' 'libcanberra>=0.25' 'libnotify' 'libunique'
+ 'enchant' 'iso-codes' 'libwebkit' 'dconf>=0.5.1' 'ca-certificates')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.1' 'nautilus-sendto')
+optdepends=('telepathy-gabble: XMPP/Jabber support'
+ 'telepathy-butterfly: MSN support'
+ 'telepathy-idle: IRC support'
+ 'telepathy-salut: Link-local XMPP support'
+ 'telepathy-sofiasip: SIP support'
+ 'telepathy-haze: libpurple support')
+options=('!libtool')
+groups=('gnome-extra')
+install=empathy.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ empathy-2.32.2-libnotify-0.7.patch)
+sha256sums=('f90a45955205fd8bd783a55acae4603197caab4f16a880106f8639cbbbe5e861'
+ '8f7280c95fb67a2f91dc38984523f8ae4be95643e7404ea672d88d6541987ca8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i "${srcdir}/empathy-2.32.2-libnotify-0.7.patch"
+ sed -i -e '/libnotify/s:0.7:9999:' configure
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/empathy \
+ --disable-schemas-compile
+ make
+ make DESTDIR="${pkgdir}" install
+
+}
diff --git a/extra/empathy/empathy-2.32.2-libnotify-0.7.patch b/extra/empathy/empathy-2.32.2-libnotify-0.7.patch
new file mode 100644
index 000000000..b430ff269
--- /dev/null
+++ b/extra/empathy/empathy-2.32.2-libnotify-0.7.patch
@@ -0,0 +1,54 @@
+--- src/empathy-chat-window.c
++++ src/empathy-chat-window.c
+@@ -35,6 +35,11 @@
+ #include <gdk/gdkx.h>
+ #include <glib/gi18n.h>
+ #include <libnotify/notification.h>
++#include <libnotify/notify.h>
++
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+
+ #include <telepathy-glib/telepathy-glib.h>
+
+@@ -1300,7 +1305,12 @@
+ to an existing notification with the same title.
+ In this way the previous message will not be lost: the new
+ message will appear below it, in the same notification */
+- notification = notify_notification_new (header, escaped, NULL, NULL);
++ notification = notify_notification_new (header, escaped, NULL
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+
+ if (priv->notification == NULL) {
+ priv->notification = notification;
+--- src/empathy-status-icon.c
++++ src/empathy-status-icon.c
+@@ -32,6 +32,10 @@
+ #include <libnotify/notification.h>
+ #include <libnotify/notify.h>
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ #include <telepathy-glib/account-manager.h>
+ #include <telepathy-glib/util.h>
+
+@@ -206,8 +210,12 @@
+ to an existing notification with the same title.
+ In this way the previous message will not be lost: the new
+ message will appear below it, in the same notification */
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ /* notify_notification_new_with_status_icon was removed */
++#else
+ notification = notify_notification_new_with_status_icon
+ (priv->event->header, message_esc, NULL, priv->icon);
++#endif
+
+ if (priv->notification == NULL) {
+ priv->notification = notification;
diff --git a/extra/empathy/empathy.install b/extra/empathy/empathy.install
new file mode 100644
index 000000000..63dd6b907
--- /dev/null
+++ b/extra/empathy/empathy.install
@@ -0,0 +1,16 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ echo "To use Empathy you need to install at least one Telepathy connection manager."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/enblend-enfuse/PKGBUILD b/extra/enblend-enfuse/PKGBUILD
new file mode 100644
index 000000000..76fc7290d
--- /dev/null
+++ b/extra/enblend-enfuse/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 64417 2010-01-20 07:24:28Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Dominik Ryba <domryba@post.pl>
+
+pkgname=enblend-enfuse
+pkgver=4.0
+pkgrel=1
+pkgdesc="intelligent blend tool for overlapping picture"
+arch=("i686" "x86_64")
+license=('GPL')
+url="http://enblend.sourceforge.net"
+depends=('openexr' 'glew>=1.5' 'libxmi' 'freeglut' 'libgl' 'lcms' 'texinfo' 'libpng')
+makedepends=('boost' 'pkgconfig')
+replaces=('enblend')
+conflicts=('enblend')
+provides=('enblend')
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/sourceforge/enblend/${pkgname}-${pkgver}.tar.gz libpng-1.4.patch)
+md5sums=('2e7c950061e0085fd75d94576130250f' 'a39df8dd32ccfa020dea2ea388642575')
+sha1sums=('34c3a5ce11c6ef0ef520d8a15a3cb6a94a567033' 'eae6cf48ea082865130302d0b4d1ca0b884a563b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-753b534c819d"
+ patch -p1 < ../libpng-1.4.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 doc/enblend.info "${pkgdir}/usr/share/info/enblend.info" || return 1
+ install -D -m644 doc/enfuse.info "${pkgdir}/usr/share/info/enfuse.info" || return 1
+}
diff --git a/extra/enblend-enfuse/enblend-enfuse.install b/extra/enblend-enfuse/enblend-enfuse.install
new file mode 100644
index 000000000..0ba358878
--- /dev/null
+++ b/extra/enblend-enfuse/enblend-enfuse.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(enblend.info enfuse-focus-stacking.info enfuse.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/enblend-enfuse/libpng-1.4.patch b/extra/enblend-enfuse/libpng-1.4.patch
new file mode 100644
index 000000000..3bf852b58
--- /dev/null
+++ b/extra/enblend-enfuse/libpng-1.4.patch
@@ -0,0 +1,14 @@
+diff -Naur enblend-enfuse-3.2-orig/src/vigra_impex/png.cxx enblend-enfuse-3.2/src/vigra_impex/png.cxx
+--- enblend-enfuse-3.2-orig/src/vigra_impex/png.cxx 2010-01-19 22:09:36.000000000 -0500
++++ enblend-enfuse-3.2/src/vigra_impex/png.cxx 2010-01-19 22:13:43.000000000 -0500
+@@ -275,8 +275,8 @@
+ // expand gray values to at least one byte size
+ if ( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 ) {
+ if (setjmp(png->jmpbuf))
+- vigra_postcondition( false,png_error_message.insert(0, "error in png_set_gray_1_2_4_to_8(): ").c_str());
+- png_set_gray_1_2_4_to_8(png);
++ vigra_postcondition( false,png_error_message.insert(0, "error in png_set_expand_gray_1_2_4_to_8(): ").c_str());
++ png_set_expand_gray_1_2_4_to_8(png);
+ bit_depth = 8;
+ }
+
diff --git a/extra/enca/PKGBUILD b/extra/enca/PKGBUILD
new file mode 100644
index 000000000..f723af724
--- /dev/null
+++ b/extra/enca/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 67989 2010-02-10 10:39:23Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Filip Dvorak <fila@pruda.com>
+
+pkgname=enca
+pkgver=1.13
+pkgrel=1
+pkgdesc="Charset analyser and converter"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/enca/"
+options=('!libtool')
+license=('GPL')
+depends=('recode' 'sh')
+source=(http://dl.cihar.com/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('762bead5d9a0a5e55024e1102baaa89d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --mandir=/usr/share/man \
+ --with-librecode=/usr \
+ --enable-external
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/enchant/PKGBUILD b/extra/enchant/PKGBUILD
new file mode 100644
index 000000000..f59305f2c
--- /dev/null
+++ b/extra/enchant/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 77532 2010-04-15 13:26:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=enchant
+pkgver=1.6.0
+pkgrel=1
+pkgdesc="A wrapper library for generic spell checking"
+arch=('i686' 'x86_64')
+url="http://www.abisource.com/enchant/"
+license=('LGPL')
+depends=('aspell' 'dbus-glib' 'hunspell')
+makedepends=('hspell')
+options=('!libtool')
+source=("http://www.abisource.com/downloads/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('de11011aff801dc61042828041fb59c7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --disable-static \
+ --disable-ispell \
+ --with-myspell-dir=/usr/share/myspell || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/enlightenment/PKGBUILD b/extra/enlightenment/PKGBUILD
new file mode 100644
index 000000000..42bf1aaa1
--- /dev/null
+++ b/extra/enlightenment/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 99311 2010-11-14 07:31:31Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=enlightenment
+pkgver=1.0.7
+_themever=1.0.1
+pkgrel=1
+pkgdesc="A fast, flexible, and very extensible Window Manager"
+arch=('i686' 'x86_64')
+url="http://www.enlightenment.org"
+license=('BSD' 'custom')
+depends=('libxinerama' 'libxft' 'libxxf86vm' 'esound' 'imlib2' 'perl' \
+ 'libxcomposite' 'libxdamage' 'libxrandr')
+makedepends=('xbitmaps')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/e16-${pkgver}.tar.gz \
+ http://downloads.sourceforge.net/enlightenment/e16-themes-${_themever}.tar.gz)
+md5sums=('c0594e9ace69497f5ab6b838dac8ed6f' 'bbd9cfd969610c29c7627c2ba1ce3094')
+sha1sums=('69a38c68f680778c3689a4369bfcbdb907cfc8a6' 'ae34e2df1294198795736bf953bf695aba93b710')
+
+build() {
+ cd "${srcdir}/e16-${pkgver}"
+ sed -i 's|xsessiondir = $(datadir)/xsessions|xsessiondir = /etc/X11/sessions|' misc/Makefile.in
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-sound --enable-mans
+ make
+
+ cd "${srcdir}/e16-themes-${_themever}"
+ ./configure --prefix=/usr
+}
+
+package() {
+ cd "${srcdir}/e16-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m755 "${pkgdir}/usr/share/e16/misc/Xclients.e16-gnome.sh" "${pkgdir}/usr/bin/e16-gnome"
+ install -D -m755 "${pkgdir}/usr/share/e16/misc/Xclients.e16-kde.sh" "${pkgdir}/usr/bin/e16-kde"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+ install -D -m644 fonts/COPYRIGHT.Vera "${pkgdir}/usr/share/licenses/${pkgname}/COPYRIGHT.Vera"
+
+ cd "${srcdir}/e16-themes-${_themever}"
+ make DESTDIR="${pkgdir}" install
+ chown -R root:root "${pkgdir}"/usr/share/*
+}
diff --git a/extra/enscript/PKGBUILD b/extra/enscript/PKGBUILD
new file mode 100644
index 000000000..aa9bc0aee
--- /dev/null
+++ b/extra/enscript/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 81838 2010-06-05 21:03:22Z paul $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=enscript
+pkgver=1.6.5.2
+pkgrel=1
+pkgdesc="Convert ASCII files to PostScript suitable for printing"
+arch=(i686 x86_64)
+backup=('etc/enscript/enscript.cfg')
+depends=('glibc')
+license=('GPL2')
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('c1d2a0d4b44ca30634742b299881b0e2')
+url="http://git.savannah.gnu.org/cgit/enscript.git"
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc/enscript --mandir=/usr/share/man \
+ --infodir=/usr/share/info || return 1
+ /usr/bin/make || return 1
+ /usr/bin/make prefix=$startdir/pkg/usr \
+ sysconfdir=$startdir/pkg/etc/enscript mandir=$startdir/pkg/usr/share/man \
+ infodir=$startdir/pkg/usr/share/info install || return 1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/eog/PKGBUILD b/extra/eog/PKGBUILD
new file mode 100644
index 000000000..81791e7fd
--- /dev/null
+++ b/extra/eog/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 101184 2010-11-28 14:11:49Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=eog
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="Eye of Gnome: An image viewing and cataloging program"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gnome-desktop>=2.32.0' 'libexif>=0.6.19' 'lcms>=1.19' 'desktop-file-utils' 'gnome-icon-theme>=2.31.0' 'exempi>=2.1.1' 'python2>=2.7')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.1' 'intltool' 'pygtk')
+install=eog.install
+groups=('gnome-extra')
+options=('!emptydirs' '!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('543672fb8e8e300bf2cf4c7eef43b5b1624e2e48e6aa0801a083ae7beb2d7078')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --enable-python
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain eog ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ # remove it from Xfce menu that ships its own thingy
+ echo "NotShowIn=XFCE" >> ${pkgdir}/usr/share/applications/eog.desktop
+}
diff --git a/extra/eog/eog.install b/extra/eog/eog.install
new file mode 100644
index 000000000..61d28170f
--- /dev/null
+++ b/extra/eog/eog.install
@@ -0,0 +1,24 @@
+pkgname=eog
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/epiphany-extensions/PKGBUILD b/extra/epiphany-extensions/PKGBUILD
new file mode 100644
index 000000000..00cfee2bc
--- /dev/null
+++ b/extra/epiphany-extensions/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 96469 2010-10-21 10:41:51Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany-extensions
+pkgver=2.32.0
+pkgrel=1
+url="http://www.gnome.org/projects/epiphany/"
+pkgdesc="Various extentions for the Epiphany web browser"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('epiphany>=2.30.6' 'opensp' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.0' 'intltool')
+options=('!libtool' '!emptydirs')
+install=epiphany-extensions.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1d6ac9f24050f409812a1653156033c6c005c27bc590f2a54164715771a1e16e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-extensions=really-all --disable-scrollkeeper
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/epiphany-extensions/epiphany-extensions.install b/extra/epiphany-extensions/epiphany-extensions.install
new file mode 100644
index 000000000..29e05e43c
--- /dev/null
+++ b/extra/epiphany-extensions/epiphany-extensions.install
@@ -0,0 +1,13 @@
+pkgname=epiphany-extensions
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/epiphany/PKGBUILD b/extra/epiphany/PKGBUILD
new file mode 100644
index 000000000..e0d1cc62b
--- /dev/null
+++ b/extra/epiphany/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 112785 2011-03-06 19:17:28Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany
+pkgver=2.30.6
+pkgrel=3
+install=epiphany.install
+pkgdesc="A GNOME2 web browser based on the WebKit rendering engine."
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libwebkit>=1.2.4' 'iso-codes>=3.10.1' 'desktop-file-utils' 'libxslt>=1.1.24' 'libnotify>=0.7.1' 'avahi>=0.6.27' 'libsoup-gnome>=2.32.0' 'nss>=3.12.8' 'ca-certificates' 'gconf>=2.32.0' 'gobject-introspection>=0.9.8' 'dbus-glib')
+makedepends=('gnome-doc-utils>=0.20.1' 'pkgconfig' 'networkmanager' 'intltool' 'startup-notification' 'gnome-common' 'gtk-doc')
+options=('!libtool' '!emptydirs')
+groups=('gnome')
+url="http://www.gnome.org/projects/epiphany/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ fix-introspection.patch
+ epiphany-2.30.6-libnotify-0.7.patch
+ add-dbus-glib.patch)
+sha256sums=('278a5c00ce07e6a3ea440d289de22dbec3ebec4ded4ff3b4c48b580f469c2dcc'
+ 'fed862407db7d971aa759168f889e68e914c4e6d80d7768f3db549bc36bd8dbf'
+ 'c1a59a9df78db07c2cf23d47d881d8d4edf6e55af3d655f8ec9870adf9255390'
+ '6a0d826767eeed02300b612e16af99a8f3840ce1f754d437a1ddd8da9d254e95')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-introspection.patch"
+ patch -Np1 -i "${srcdir}/add-dbus-glib.patch"
+ patch -Np0 -i "${srcdir}/epiphany-2.30.6-libnotify-0.7.patch"
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper \
+ --enable-network-manager
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain epiphany ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/epiphany/add-dbus-glib.patch b/extra/epiphany/add-dbus-glib.patch
new file mode 100644
index 000000000..c50be67a2
--- /dev/null
+++ b/extra/epiphany/add-dbus-glib.patch
@@ -0,0 +1,20 @@
+From 174a51819570a975cc61e642f7f26cb4bc2f9c57 Mon Sep 17 00:00:00 2001
+From: Diego Escalante Urrelo <descalante@igalia.com>
+Date: Mon, 01 Nov 2010 05:56:51 +0000
+Subject: tests: DBUS_LIBS is needed for libephymain.la
+
+---
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index bd2c378..b973214 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -23,6 +23,7 @@ LDADD = \
+ $(top_builddir)/lib/widgets/libephywidgets.la \
+ $(top_builddir)/lib/libephymisc.la \
+ $(top_builddir)/lib/egg/libegg.la \
++ $(DBUS_LIBS) \
+ $(DEPENDENCIES_LIBS)
+
+ if ENABLE_NSS
+--
+cgit v0.8.3.4
diff --git a/extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch b/extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch
new file mode 100644
index 000000000..a0c5f8ee1
--- /dev/null
+++ b/extra/epiphany/epiphany-2.30.6-libnotify-0.7.patch
@@ -0,0 +1,38 @@
+--- embed/downloader-view.c
++++ embed/downloader-view.c
+@@ -36,6 +36,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ enum
+@@ -337,7 +340,12 @@
+ g_object_ref (dv);
+
+ notification = notify_notification_new (title, msg,
+- GTK_STOCK_INFO, NULL);
++ GTK_STOCK_INFO
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+
+ g_signal_connect_after (notification, "closed",
+ G_CALLBACK (notification_closed_cb), dv);
+@@ -346,7 +354,11 @@
+ notify_notification_set_timeout (notification, NOTIFY_EXPIRES_DEFAULT);
+ notify_notification_set_urgency (notification, NOTIFY_URGENCY_LOW);
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ /* notify_notification_attach_to_status_icon was removed */
++#else
+ notify_notification_attach_to_status_icon (notification, status_icon);
++#endif
+
+ /* There are some visual glitches when the notification is shown and
+ * the GtkStatusIcon is still not visible. To avoid that, we delay the
diff --git a/extra/epiphany/epiphany.install b/extra/epiphany/epiphany.install
new file mode 100644
index 000000000..bd9d774a6
--- /dev/null
+++ b/extra/epiphany/epiphany.install
@@ -0,0 +1,25 @@
+pkgname=epiphany
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/epiphany/fix-introspection.patch b/extra/epiphany/fix-introspection.patch
new file mode 100644
index 000000000..4d8dca923
--- /dev/null
+++ b/extra/epiphany/fix-introspection.patch
@@ -0,0 +1,21 @@
+From 78b9eac0fca36e27c83c7678b18962ba286f041b Mon Sep 17 00:00:00 2001
+From: Vincent Untz <vuntz@gnome.org>
+Date: Fri, 01 Oct 2010 16:36:23 +0000
+Subject: introspection: Fix build by telling g-ir-scanner what the prefix is
+
+https://bugzilla.gnome.org/show_bug.cgi?id=631119
+---
+diff --git a/src/Makefile.am b/src/Makefile.am
+index e9d3715..acbf8ff 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -350,6 +350,7 @@ Epiphany-$(EPIPHANY_API_VERSION).gir: $(INTROSPECTION_SCANNER) $(EPHY_GIR_H_FILE
+ --include=WebKit-1.0 \
+ --program=./epiphany \
+ --output $@ \
++ --strip-prefix=Ephy \
+ --pkg epiphany-$(EPIPHANY_API_VERSION) \
+ -DEPIPHANY_COMPILATION \
+ -I$(top_srcdir)/embed \
+--
+cgit v0.8.3.1
diff --git a/extra/epplet-base/ChangeLog b/extra/epplet-base/ChangeLog
new file mode 100644
index 000000000..85677b48e
--- /dev/null
+++ b/extra/epplet-base/ChangeLog
@@ -0,0 +1,16 @@
+2010-05-07 Eric Belanger <eric@archlinux.org>
+
+ * epplet-base 0.13-1
+ * Upstream update
+ * Removed uneeded depends
+
+2009-01-03 Eric Belanger <eric@archlinux.org>
+
+ * epplet-base 0.12-1
+ * Upstream update
+
+2008-07-05 Eric Belanger <eric@archlinux.org>
+
+ * epplet-base 0.11-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/extra/epplet-base/PKGBUILD b/extra/epplet-base/PKGBUILD
new file mode 100644
index 000000000..adf6b4bee
--- /dev/null
+++ b/extra/epplet-base/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 79809 2010-05-08 05:03:22Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=epplet-base
+pkgver=0.13
+pkgrel=1
+pkgdesc="Addon plugins for the enlightenment windowmanager"
+arch=('i686' 'x86_64')
+url="http://www.enlightenment.org"
+license=('GPL')
+depends=('esound' 'imlib2' 'libcdaudio' 'libgl')
+makedepends=('mesa')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/enlightenment/epplets-${pkgver}.tar.gz)
+md5sums=('6304130e5741b626c27b6b0cf7ae58e0')
+sha1sums=('8af41829e5993a992c31f6285122edce6b60475a')
+
+build() {
+ cd "${srcdir}/epplets-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/epplets-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/erlang/PKGBUILD b/extra/erlang/PKGBUILD
new file mode 100644
index 000000000..e3863df21
--- /dev/null
+++ b/extra/erlang/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 110837 2011-02-22 18:42:08Z vesa $
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+
+pkgname=erlang
+pkgver=R14B
+pkgrel=2
+pkgdesc="A small concurrent functional programming language developed by Ericsson."
+arch=(i686 x86_64)
+url="http://www.erlang.org/index.html"
+license=('custom')
+depends=('ncurses' 'glibc')
+makedepends=('java-environment' 'perl' 'openssl' 'wxgtk' 'unixodbc')
+optdepends=('wxgtk: for wx support' 'unixodbc: database')
+
+options=('!makeflags')
+source=(http://www.erlang.org/download/otp_src_${pkgver/./-}.tar.gz
+ http://www.erlang.org/download/otp_doc_man_${pkgver/./-}.tar.gz)
+
+build() {
+ cd "$srcdir/otp_src_${pkgver/./-}"
+ ERTSVERSION=$(sed -n 's/^VSN[ ]*=[ ]*\([0-9.]\)/\1/p' < erts/vsn.mk)
+ ERLINTERFACEVERSION=$(sed -n 's/^EI_VSN[ ]*=[ ]*\([0-9.]\)/\1/p' < lib/erl_interface/vsn.mk)
+
+ # fix for #17001
+ sed -i 's|WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`|WX_LIBS="`$WX_CONFIG_WITH_ARGS --libs` -lGLU"|' lib/wx/configure || return 1
+
+ sed -i '/SSL_DYNAMIC_ONLY=/s:no:yes:' erts/configure || return 1
+
+ CFLAGS="${CFLAGS} -fno-strict-aliasing" ./configure --enable-ethread-pre-pentium4-compatibility enable_ethread_pre_pentium4_compatibilit=yes --prefix=/usr --enable-smp-support --enable-threads || return 1
+ make || return 1
+ make INSTALL_PREFIX="$pkgdir" install || return 1
+
+# fix prefix
+ cd "$pkgdir"
+ for i in usr/lib/erlang/bin/erl \
+ usr/lib/erlang/bin/start \
+ usr/lib/erlang/erts-${ERTSVERSION}/bin/erl \
+ usr/lib/erlang/erts-${ERTSVERSION}/bin/start \
+ usr/lib/erlang/releases/RELEASES ;do
+ sed -i "s#$pkgdir##" $i || return 1
+ done
+
+# fix symlinks
+ cd "$pkgdir/usr/lib/erlang/bin"
+ ln -sf ../erts-${ERTSVERSION}/bin/epmd
+
+ cd "$pkgdir/usr/bin"
+ for file in *; do
+ ln -sfv ../lib/erlang/bin/$file || return 1
+ done
+
+ ln -s ../lib/erlang/lib/erl_interface-${ERLINTERFACEVERSION}/bin/erl_call "$pkgdir/usr/bin/erl_call" || return 1
+
+# install documentation
+ install -d "$pkgdir/usr/share/doc/erlang"
+ install -D -m644 "$srcdir"/{COPYRIGHT,PR.template,README} "$pkgdir/usr/share/doc/erlang"
+ cp -r "$srcdir/man" "$pkgdir/usr/lib/erlang"
+
+ install -Dm644 "$srcdir/otp_src_${pkgver/./-}/EPLICENCE" "$pkgdir/usr/share/licenses/$pkgname/EPLICENCE"
+
+}
+md5sums=('5292a04556d17ad528d570e02357dfbb'
+ '011530a24fbcc194be9bd01f779325a2')
diff --git a/extra/esound/PKGBUILD b/extra/esound/PKGBUILD
new file mode 100644
index 000000000..70c636201
--- /dev/null
+++ b/extra/esound/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 19660 2008-11-28 20:33:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=esound
+pkgver=0.2.41
+pkgrel=1
+pkgdesc="Enlightened Sound Daemon"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('audiofile' 'tcp_wrappers' 'alsa-lib>=1.0.18')
+url="http://www.tux.org/~ricdude/EsounD.html"
+provides=("esd=${pkgver}")
+replaces=('esd')
+conflicts=('esd')
+backup=('etc/esd.conf')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2
+ esd-0.2.38-alsa-drain.patch
+ esd)
+md5sums=('8d9aad3d94d15e0d59ba9dc0ea990c6c'
+ '3de93efcd1bc196a3585e6aef50eac48'
+ 'a4c76e7c7f75b201ea7ab6fb15b47472')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/esd-0.2.38-alsa-drain.patch" || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-audiofile --with-libwrap \
+ --enable-alsa --disable-artstest || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 "${srcdir}/esd" "${pkgdir}/etc/rc.d/esd" || return 1
+}
diff --git a/extra/esound/esd b/extra/esound/esd
new file mode 100755
index 000000000..d90ef55fa
--- /dev/null
+++ b/extra/esound/esd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/esd`
+case "$1" in
+ start)
+ stat_busy "Starting Esound Daemon"
+ if [ -z "$PID" ]; then
+ /usr/bin/esd -nobeeps &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon esd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Esound Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon esd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/esound/esd-0.2.38-alsa-drain.patch b/extra/esound/esd-0.2.38-alsa-drain.patch
new file mode 100644
index 000000000..f2fb716ba
--- /dev/null
+++ b/extra/esound/esd-0.2.38-alsa-drain.patch
@@ -0,0 +1,11 @@
+--- esound-0.2.38/audio_alsa09.c.old 2007-06-11 12:22:24.000000000 +0200
++++ esound-0.2.38/audio_alsa09.c 2007-06-11 12:22:49.000000000 +0200
+@@ -486,7 +486,7 @@ void esd_audio_flush(void)
+ }
+
+ if (alsa_playback_handle != NULL)
+- snd_pcm_drain( alsa_playback_handle );
++ snd_pcm_drop( alsa_playback_handle );
+
+ if (alsadbg)
+ print_state();
diff --git a/extra/ethstatus/PKGBUILD b/extra/ethstatus/PKGBUILD
new file mode 100644
index 000000000..7698321bb
--- /dev/null
+++ b/extra/ethstatus/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 28971 2009-03-04 02:59:17Z eric $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ethstatus
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="EthStatus was developed for Linux users that are usually in console mode, based on PPPStatus"
+arch=('i686' 'x86_64')
+url="http://packages.qa.debian.org/e/ethstatus.html"
+license=('GPL')
+depends=('ncurses')
+source=(http://ftp.debian.org/debian/pool/main/e/ethstatus/ethstatus_$pkgver.tar.gz)
+md5sums=('088412ddff67f50e32bc9d45e56b2658')
+
+build() {
+ cd $srcdir/ethstatus-$pkgver
+ make || return 1
+ install -D -m755 ethstatus $pkgdir/usr/bin/ethstatus || return 1
+ install -D -m644 ethstatus.1 $pkgdir/usr/share/man/man1/ethstatus.1 || return 1
+}
diff --git a/extra/ethtool/PKGBUILD b/extra/ethtool/PKGBUILD
new file mode 100644
index 000000000..3accd6fde
--- /dev/null
+++ b/extra/ethtool/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 114758 2011-03-15 22:43:11Z ibiru $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributer: Martin Kemp <mdkemp@elys.com>
+pkgname=ethtool
+pkgver=2.6.38
+pkgrel=1
+pkgdesc="gkernel ethtool"
+arch=(i686 x86_64)
+url="http://www.kernel.org/pub/software/network/ethtool/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.kernel.org/pub/software/network/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('4cc35c59e4fd0defff768f9f59fa41ad')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ettercap-gtk/PKGBUILD b/extra/ettercap-gtk/PKGBUILD
new file mode 100644
index 000000000..90a910423
--- /dev/null
+++ b/extra/ettercap-gtk/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 103538 2010-12-21 10:37:25Z andrea $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ettercap-gtk
+pkgver=NG_0.7.3
+_origname=ettercap
+_origver=NG-0.7.3
+pkgrel=8
+pkgdesc="A network sniffer/interceptor/logger for ethernet LANs - GTK"
+arch=('i686' 'x86_64')
+url="http://ettercap.sourceforge.net/"
+license=('GPL')
+depends=('ettercap' 'gtk2' 'libtool')
+makedepends=('libnet')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${_origname}/${_origname}-${_origver}.tar.gz
+ 'ettercap.desktop'
+ 'fix-segmentation-fault.patch')
+md5sums=('28fb15cd024162c55249888fe1b97820'
+ '6ef18fdd114297d4ed9e5104d309f071'
+ 'e9cc99f13fd23edaba6cddffc4d0ef34')
+
+build() {
+ cd ${srcdir}/${_origname}-${_origver}
+ unset LDFLAGS
+
+ # FS#21628
+ patch -Np1 -i ${srcdir}/fix-segmentation-fault.patch
+
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-plugins
+ sed -i 's/LTDL_SHLIB_EXT/\".so\"/' src/ec_plugins.c
+ make
+}
+
+package() {
+ install -Dm755 ${srcdir}/${_origname}-${_origver}/src/ettercap \
+ ${pkgdir}/usr/bin/ettercap-gtk
+ install -Dm644 ${srcdir}/ettercap.desktop \
+ ${pkgdir}/usr/share/applications/ettercap.desktop
+}
diff --git a/extra/ettercap-gtk/ettercap.desktop b/extra/ettercap-gtk/ettercap.desktop
new file mode 100644
index 000000000..1ac24e381
--- /dev/null
+++ b/extra/ettercap-gtk/ettercap.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Name=Ettercap GTK
+Exec=/usr/bin/ettercap-gtk --gtk
+Terminal=false
+Type=Application
+Categories=Network;System;Security;GTK;
diff --git a/extra/ettercap-gtk/fix-segmentation-fault.patch b/extra/ettercap-gtk/fix-segmentation-fault.patch
new file mode 100644
index 000000000..3f0c7bf79
--- /dev/null
+++ b/extra/ettercap-gtk/fix-segmentation-fault.patch
@@ -0,0 +1,19 @@
+commit 8cdf08d401d368d5678f9d9c2cf36ddbdef03aec
+Author: Timothy Redaelli <timothy@redaelli.eu>
+Date: Tue Jun 23 09:16:27 2009 +0000
+
+ Fix a crash in 64 bit CPUs
+
+diff --git a/src/protocols/ec_tcp.c b/src/protocols/ec_tcp.c
+index ea0c997..be8f3e0 100644
+--- a/src/protocols/ec_tcp.c
++++ b/src/protocols/ec_tcp.c
+@@ -116,7 +116,7 @@ FUNC_DECODER(decode_tcp)
+ tcp = (struct tcp_header *)DECODE_DATA;
+
+ opt_start = (u_char *)(tcp + 1);
+- opt_end = (u_char *)((int)tcp + tcp->off * 4);
++ opt_end = (u_char *)(tcp + tcp->off * 4);
+
+ DECODED_LEN = (u_int32)(tcp->off * 4);
+
diff --git a/extra/ettercap/01_pointers_and_ints_dont_mix.diff b/extra/ettercap/01_pointers_and_ints_dont_mix.diff
new file mode 100644
index 000000000..bf7022266
--- /dev/null
+++ b/extra/ettercap/01_pointers_and_ints_dont_mix.diff
@@ -0,0 +1,12 @@
+See debian bug #521857, patch from Timothy Redaelli <timothy@redaelli.eu>
+
+--- ettercap-0.7.3.orig/src/protocols/ec_tcp.c
++++ ettercap-0.7.3/src/protocols/ec_tcp.c
+@@ -116,7 +116,7 @@
+ tcp = (struct tcp_header *)DECODE_DATA;
+
+ opt_start = (u_char *)(tcp + 1);
+- opt_end = (u_char *)((int)tcp + tcp->off * 4);
++ opt_end = (u_char *)(tcp + tcp->off * 4);
+
+ DECODED_LEN = (u_int32)(tcp->off * 4);
diff --git a/extra/ettercap/PKGBUILD b/extra/ettercap/PKGBUILD
new file mode 100644
index 000000000..c247ae6a9
--- /dev/null
+++ b/extra/ettercap/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 75608 2010-04-01 23:02:08Z giovanni $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=ettercap
+pkgver=NG_0.7.3
+_origver=NG-0.7.3
+pkgrel=15
+pkgdesc="A network sniffer/interceptor/logger for ethernet LANs - console"
+arch=('i686' 'x86_64')
+url="http://ettercap.sourceforge.net/"
+license=('GPL')
+depends=('ncurses' 'openssl' 'libpcap>=1.0.0' 'zlib' 'pcre' 'libtool>=2.2.4' 'libnet')
+makedepends=('libnet')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$_origver.tar.gz
+ 01_pointers_and_ints_dont_mix.diff)
+md5sums=('28fb15cd024162c55249888fe1b97820'
+ 'ad235cd90aaa3e168575d06efac4d862')
+
+build() {
+ cd ${srcdir}/${pkgname}-${_origver}
+
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+ patch -Np1 -i ${srcdir}/01_pointers_and_ints_dont_mix.diff || return 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --enable-plugins \
+ --enable-https --disable-gtk
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ cd plug-ins
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ chmod 755 ${pkgdir}/usr/lib/ettercap/*
+ chmod 755 ${pkgdir}/usr/bin/ettercap
+}
diff --git a/extra/evilwm/PKGBUILD b/extra/evilwm/PKGBUILD
new file mode 100644
index 000000000..704006067
--- /dev/null
+++ b/extra/evilwm/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 45303 2009-07-09 17:59:42Z giovanni $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=evilwm
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="A minimalist but usable window manager for the X Window System."
+arch=('i686' 'x86_64')
+depends=('libxrandr')
+url="http://evilwm.sourceforge.net"
+source=(http://www.6809.org.uk/evilwm/$pkgname-$pkgver.tar.gz evilwm.desktop)
+license=(custom)
+md5sums=('8fd9256c635cce2289b648a01d54202c' 'fd404c0f0787fbf99b8b3270f639128c')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=$startdir/pkg install
+ install -D -m644 $startdir/evilwm.desktop \
+ $startdir/pkg/etc/X11/sessions/evilwm.desktop
+ install -D -m644 README $startdir/pkg/usr/share/licenses/$pkgname/README
+}
diff --git a/extra/evilwm/evilwm.desktop b/extra/evilwm/evilwm.desktop
new file mode 100644
index 000000000..e12f6ca43
--- /dev/null
+++ b/extra/evilwm/evilwm.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Evilwm
+Comment=The evilwm window manager
+Exec=evilwm
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/extra/evince/PKGBUILD b/extra/evince/PKGBUILD
new file mode 100644
index 000000000..d52e6dba7
--- /dev/null
+++ b/extra/evince/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 114607 2011-03-14 14:33:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evince
+pkgver=2.32.0
+pkgrel=8
+pkgdesc="Simply a document viewer"
+url="http://projects.gnome.org/evince/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libspectre>=0.2.6' 'gsfonts' 'poppler-glib>=0.16.3' 'libdjvu>=3.5.22' 'gnome-icon-theme>=2.31.0' 't1lib' 'libgnome-keyring>=2.32.0' 'desktop-file-utils' 'gconf' 'dconf')
+## gconf still needed
+## https://bugzilla.gnome.org/show_bug.cgi?id=628945
+makedepends=('gnome-doc-utils>=0.20.1' 'nautilus>=2.32.0' 'pkgconfig' 'texlive-bin' 'intltool' 'gobject-introspection' 'gnome-common' 'gtk-doc')
+optdepends=('texlive-bin: DVI support')
+replaces=('gpdf')
+groups=('gnome-extra')
+install=evince.install
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ update_to_poppler_api.patch
+ security_issues_in_dvi-backend.patch)
+sha256sums=('2a4c91ae38f8b5028cebb91b9da9ddc50ea8ae3f3d429df89ba351da2d787ff7'
+ '2990c789c8cfd50e46f4dfa7a2406499b3ee26f4db9840c8b9a6e1dee40f61f4'
+ '49d1ed8adc734a005d4d8fdc1912bb115d97f734071d64bcae0aae60f2b5626a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/update_to_poppler_api.patch"
+ patch -Np1 -i "${srcdir}/security_issues_in_dvi-backend.patch"
+
+ ./autogen.sh
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/evince \
+ --disable-static --enable-nautilus \
+ --enable-pdf --enable-tiff \
+ --enable-djvu --enable-dvi \
+ --enable-t1lib --enable-pixbuf \
+ --enable-comics --enable-impress \
+ --enable-introspection \
+ --disable-scrollkeeper \
+ --disable-schemas-compile
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain evince ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+}
diff --git a/extra/evince/evince.install b/extra/evince/evince.install
new file mode 100644
index 000000000..ee40ec5eb
--- /dev/null
+++ b/extra/evince/evince.install
@@ -0,0 +1,26 @@
+pkgname=evince
+
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+}
diff --git a/extra/evince/security_issues_in_dvi-backend.patch b/extra/evince/security_issues_in_dvi-backend.patch
new file mode 100644
index 000000000..691ee4190
--- /dev/null
+++ b/extra/evince/security_issues_in_dvi-backend.patch
@@ -0,0 +1,97 @@
+From 8e473c9796b9a61b811213e7892fd36fd570303a Mon Sep 17 00:00:00 2001
+From: José Aliste <jaliste@src.gnome.org>
+Date: Tue, 07 Dec 2010 18:56:47 +0000
+Subject: backends: Fix several security issues in the dvi-backend.
+
+See CVE-2010-2640, CVE-2010-2641, CVE-2010-2642 and CVE-2010-2643.
+---
+diff --git a/backend/dvi/mdvi-lib/afmparse.c b/backend/dvi/mdvi-lib/afmparse.c
+index 164366b..361e23d 100644
+--- a/backend/dvi/mdvi-lib/afmparse.c
++++ b/backend/dvi/mdvi-lib/afmparse.c
+@@ -160,7 +160,7 @@ static char *token(FILE *stream)
+
+ idx = 0;
+ while (ch != EOF && ch != ' ' && ch != lineterm
+- && ch != '\t' && ch != ':' && ch != ';')
++ && ch != '\t' && ch != ':' && ch != ';' && idx < MAX_NAME)
+ {
+ ident[idx++] = ch;
+ ch = fgetc(stream);
+diff --git a/backend/dvi/mdvi-lib/dviread.c b/backend/dvi/mdvi-lib/dviread.c
+index 97b7b84..ac98068 100644
+--- a/backend/dvi/mdvi-lib/dviread.c
++++ b/backend/dvi/mdvi-lib/dviread.c
+@@ -1537,6 +1537,10 @@ int special(DviContext *dvi, int opcode)
+ Int32 arg;
+
+ arg = dugetn(dvi, opcode - DVI_XXX1 + 1);
++ if (arg <= 0) {
++ dvierr(dvi, _("malformed special length\n"));
++ return -1;
++ }
+ s = mdvi_malloc(arg + 1);
+ dread(dvi, s, arg);
+ s[arg] = 0;
+diff --git a/backend/dvi/mdvi-lib/pk.c b/backend/dvi/mdvi-lib/pk.c
+index a579186..08377e6 100644
+--- a/backend/dvi/mdvi-lib/pk.c
++++ b/backend/dvi/mdvi-lib/pk.c
+@@ -469,6 +469,15 @@ static int pk_load_font(DviParams *unused, DviFont *font)
+ }
+ if(feof(p))
+ break;
++
++ /* Although the PK format support bigger char codes,
++ * XeTeX and other extended TeX engines support charcodes up to
++ * 65536, while normal TeX engine supports only charcode up to 255.*/
++ if (cc < 0 || cc > 65536) {
++ mdvi_error (_("%s: unexpected charcode (%d)\n"),
++ font->fontname,cc);
++ goto error;
++ }
+ if(cc < loc)
+ loc = cc;
+ if(cc > hic)
+@@ -512,7 +521,7 @@ static int pk_load_font(DviParams *unused, DviFont *font)
+ }
+
+ /* resize font char data */
+- if(loc > 0 || hic < maxch-1) {
++ if(loc > 0 && hic < maxch-1) {
+ memmove(font->chars, font->chars + loc,
+ (hic - loc + 1) * sizeof(DviFontChar));
+ font->chars = xresize(font->chars,
+diff --git a/backend/dvi/mdvi-lib/tfmfile.c b/backend/dvi/mdvi-lib/tfmfile.c
+index 73ebf26..8c2a30b 100644
+--- a/backend/dvi/mdvi-lib/tfmfile.c
++++ b/backend/dvi/mdvi-lib/tfmfile.c
+@@ -172,7 +172,8 @@ int tfm_load_file(const char *filename, TFMInfo *info)
+ /* We read the entire TFM file into core */
+ if(fstat(fileno(in), &st) < 0)
+ return -1;
+- if(st.st_size == 0)
++ /* according to the spec, TFM files are smaller than 16K */
++ if(st.st_size == 0 || st.st_size >= 16384)
+ goto bad_tfm;
+
+ /* allocate a word-aligned buffer to hold the file */
+diff --git a/backend/dvi/mdvi-lib/vf.c b/backend/dvi/mdvi-lib/vf.c
+index fb49847..a5ae3bb 100644
+--- a/backend/dvi/mdvi-lib/vf.c
++++ b/backend/dvi/mdvi-lib/vf.c
+@@ -165,6 +165,12 @@ static int vf_load_font(DviParams *params, DviFont *font)
+ cc = fuget1(p);
+ tfm = fuget3(p);
+ }
++ if (cc < 0 || cc > 65536) {
++ /* TeX engines do not support char codes bigger than 65535 */
++ mdvi_error(_("(vf) %s: unexpected character %d\n"),
++ font->fontname, cc);
++ goto error;
++ }
+ if(loc < 0 || cc < loc)
+ loc = cc;
+ if(hic < 0 || cc > hic)
+--
+cgit v0.8.3.1
diff --git a/extra/evince/update_to_poppler_api.patch b/extra/evince/update_to_poppler_api.patch
new file mode 100644
index 000000000..29bcad6b9
--- /dev/null
+++ b/extra/evince/update_to_poppler_api.patch
@@ -0,0 +1,58 @@
+From f77e6cf4fd7fef49ac91d8c62b6a9a993529adb8 Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <carlosgc@gnome.org>
+Date: Fri, 17 Sep 2010 11:21:16 +0000
+Subject: [pdf] Update to poppler api changes
+
+Linearized PopplerDocument property is now boolean rather than string.
+---
+diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
+index aa080e6..ced3ef7 100644
+--- a/backend/pdf/ev-poppler.cc
++++ b/backend/pdf/ev-poppler.cc
+@@ -722,6 +722,9 @@ pdf_document_get_info (EvDocument *document)
+ PopplerPermissions permissions;
+ EvPage *page;
+ char *metadata;
++#ifdef HAVE_POPPLER_DOCUMENT_IS_LINEARIZED
++ gboolean linearized;
++#endif
+
+ info = g_new0 (EvDocumentInfo, 1);
+
+@@ -758,7 +761,11 @@ pdf_document_get_info (EvDocument *document)
+ "producer", &(info->producer),
+ "creation-date", &(info->creation_date),
+ "mod-date", &(info->modified_date),
++#ifdef HAVE_POPPLER_DOCUMENT_IS_LINEARIZED
++ "linearized", &linearized,
++#else
+ "linearized", &(info->linearized),
++#endif
+ "metadata", &metadata,
+ NULL);
+
+@@ -864,6 +871,10 @@ pdf_document_get_info (EvDocument *document)
+ info->security = g_strdup (_("No"));
+ }
+
++#ifdef HAVE_POPPLER_DOCUMENT_IS_LINEARIZED
++ info->linearized = linearized ? g_strdup (_("Yes")) : g_strdup (_("No"));
++#endif
++
+ return info;
+ }
+
+diff --git a/configure.ac b/configure.ac
+index 0faa16e..9619349 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -512,6 +512,7 @@ if test "x$enable_pdf" = "xyes"; then
+ AC_CHECK_FUNCS(poppler_page_get_text_layout)
+ AC_CHECK_FUNCS(poppler_page_get_selected_text)
+ AC_CHECK_FUNCS(poppler_page_add_annot)
++ AC_CHECK_FUNCS(poppler_document_is_linearized)
+ LIBS=$evince_save_LIBS
+ PKG_CHECK_MODULES(CAIRO_PDF, cairo-pdf, enable_cairo_pdf=yes, enable_cairo_pdf=no)
+ if test x$enable_cairo_pdf = xyes; then
+--
+cgit v0.8.3.1
diff --git a/extra/evolution-data-server/PKGBUILD b/extra/evolution-data-server/PKGBUILD
new file mode 100644
index 000000000..5bb2c28c7
--- /dev/null
+++ b/extra/evolution-data-server/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 109544 2011-02-10 18:48:23Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-data-server
+pkgver=2.32.2
+pkgrel=1
+pkgdesc="Central location for addressbook and calendar storage in the GNOME Desktop"
+arch=('i686' 'x86_64')
+depends=('libsoup>=2.32.2' 'nss>=3.12.9' 'libgnome-keyring>=2.32.0' 'heimdal>=1.3.3' 'libgweather>=2.30.3' 'libical>=0.46' 'db>=5.1.19' 'libgdata>=0.6.5')
+makedepends=('intltool' 'gtk-doc' 'gperf')
+options=('!libtool')
+url="http://www.gnome.org"
+license=('GPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('d22fcd9e6f1cee7b4b11a25ae3c3d19e6a454e4f09b983a954ff2d7640bf1c36')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --with-openldap=yes \
+ --libexecdir=/usr/lib/evolution-data-server-1.2 \
+ --with-krb5=/usr --enable-gnome-keyring \
+ --with-libdb=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/evolution-exchange/PKGBUILD b/extra/evolution-exchange/PKGBUILD
new file mode 100644
index 000000000..fa4905ccd
--- /dev/null
+++ b/extra/evolution-exchange/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 109554 2011-02-10 19:19:29Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-exchange
+pkgver=2.32.2
+pkgrel=1
+pkgdesc="Ximian Connector Exchange plugin for Evolution"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.ximian.com"
+depends=('evolution-data-server>=2.32.2' 'gtkhtml>=3.32.2' 'gnome-desktop>=2.32.0' 'libunique>=1.1.6')
+makedepends=('intltool' 'evolution')
+options=('!libtool' '!emptydirs')
+groups=('gnome-extra')
+install=evolution-exchange.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('60030eb2de042cef1d703cda7d64c3ec87fcef0bd966012e816954a96cc37d63')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/evolution --disable-static \
+ --with-libdb=/usr --with-krb5=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain evolution-exchange-${_majorver} ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/evolution-exchange/evolution-exchange.install b/extra/evolution-exchange/evolution-exchange.install
new file mode 100644
index 000000000..1179887f9
--- /dev/null
+++ b/extra/evolution-exchange/evolution-exchange.install
@@ -0,0 +1,17 @@
+pkgname=evolution-exchange
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/evolution-sharp/PKGBUILD b/extra/evolution-sharp/PKGBUILD
new file mode 100644
index 000000000..8c3527775
--- /dev/null
+++ b/extra/evolution-sharp/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 94159 2010-10-04 20:47:03Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-sharp
+pkgver=0.21.1
+pkgrel=2
+pkgdesc="C# bindings for Novell Evolution"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://ftp.gnome.org/pub/GNOME/sources/evolution-sharp/"
+depends=('evolution-data-server>=2.32.0')
+makedepends=('pkg-config' 'gtk-sharp-2>=2.12.8')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.21/${pkgname}-${pkgver}.tar.bz2
+ evolution-sharp-0.21.1-fix-retarded-version-check.patch
+ evolution-data-server-lib-target.patch)
+sha256sums=('3cb78088e332f71b2a7958d2e8c6af3c9ff168731c8fb423aad7038cbdef3a1c'
+ '80f98baf3336383241deac73c3f0d3a0905c9a2a3790db7ec4bf6089a577cf5b'
+ '177492c896d6cfc34f728d578e6948463f16ed731ffbf6aa555f9ec4b7f7af9e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/evolution-sharp-0.21.1-fix-retarded-version-check.patch"
+ patch -Np1 -i "${srcdir}/evolution-data-server-lib-target.patch"
+ autoreconf -fi
+
+ export MONO_SHARED_DIR="${startdir}/src/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/lib/libevolutionglue.a"
+}
+
diff --git a/extra/evolution-sharp/evolution-data-server-lib-target.patch b/extra/evolution-sharp/evolution-data-server-lib-target.patch
new file mode 100644
index 000000000..c713b1ca4
--- /dev/null
+++ b/extra/evolution-sharp/evolution-data-server-lib-target.patch
@@ -0,0 +1,15 @@
+diff -Nur evolution-sharp-0.21.1.orig/evolution/evolution-sharp.dll.config.in evolution-sharp-0.21.1/evolution/evolution-sharp.dll.config.in
+--- evolution-sharp-0.21.1.orig/evolution/evolution-sharp.dll.config.in 2009-05-26 00:25:06.000000000 -0700
++++ evolution-sharp-0.21.1/evolution/evolution-sharp.dll.config.in 2010-10-04 13:31:36.573339607 -0700
+@@ -1,7 +1,7 @@
+ <configuration>
+- <dllmap dll="ebook" target="libebook@EDS_VERSION@@LIB_PREFIX@.@EBOOK_SOVERSION@@LIB_SUFFIX@"/>
+- <dllmap dll="ecal" target="libecal@EDS_VERSION@@LIB_PREFIX@.@ECAL_SOVERSION@@LIB_SUFFIX@"/>
+- <dllmap dll="edataserver" target="libedataserver@EDS_VERSION@@LIB_PREFIX@.@EDS_SOVERSION@@LIB_SUFFIX@"/>
++ <dllmap dll="ebook" target="libebook@EDS_VERSION@@LIB_PREFIX@.10@LIB_SUFFIX@"/>
++ <dllmap dll="ecal" target="libecal@EDS_VERSION@@LIB_PREFIX@.8@LIB_SUFFIX@"/>
++ <dllmap dll="edataserver" target="libedataserver@EDS_VERSION@@LIB_PREFIX@.14@LIB_SUFFIX@"/>
+ <dllmap dll="ebackend" target="libebackend@EDS_VERSION@@LIB_PREFIX@.@EBACKEND_SOVERSION@@LIB_SUFFIX@"/>
+- <dllmap dll="edatacal" target="libedata-cal@EDS_VERSION@@LIB_PREFIX@.@EDATACAL_SOVERSION@@LIB_SUFFIX@"/>
++ <dllmap dll="edatacal" target="libedata-cal@EDS_VERSION@@LIB_PREFIX@.10@LIB_SUFFIX@"/>
+ </configuration>
diff --git a/extra/evolution-sharp/evolution-sharp-0.21.1-fix-retarded-version-check.patch b/extra/evolution-sharp/evolution-sharp-0.21.1-fix-retarded-version-check.patch
new file mode 100644
index 000000000..9a2ebe95e
--- /dev/null
+++ b/extra/evolution-sharp/evolution-sharp-0.21.1-fix-retarded-version-check.patch
@@ -0,0 +1,13 @@
+diff -up evolution-sharp-0.21.1/configure.in.fix-retarded-version-check evolution-sharp-0.21.1/configure.in
+--- evolution-sharp-0.21.1/configure.in.fix-retarded-version-check 2009-08-20 21:46:34.000000000 -0400
++++ evolution-sharp-0.21.1/configure.in 2009-08-20 21:47:16.000000000 -0400
+@@ -16,8 +16,7 @@ fi
+ PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER_1_8, evolution-data-server-1.2 >= 1.8 evolution-data-server-1.2 < 1.9, edsver="1.8", AC_MSG_RESULT([no]))
+ PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER_1_9, evolution-data-server-1.2 >= 1.9 evolution-data-server-1.2 < 1.10, edsver="1.9", AC_MSG_RESULT([no]))
+ PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER_1_10, evolution-data-server-1.2 >= 1.10 evolution-data-server-1.2 < 2.23.92, edsver="1.10", AC_MSG_RESULT([no]))
+-PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER_2_24, evolution-data-server-1.2 >= 2.23.92 evolution-data-server-1.2 < 2.27.4, edsver="2.24", AC_MSG_RESULT([no]))
+-PKG_CHECK_MODULES(TOO_NEW_EDS, evolution-data-server-1.2 >= 2.27.4, edsver="unsupported", AC_MSG_RESULT([no]))
++PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER_2_24, evolution-data-server-1.2 >= 2.23.92, edsver="2.24", AC_MSG_RESULT([no]))
+
+ if test "x$edsver" = "x1.8"; then
+ EDS_VERSION=-1.2
diff --git a/extra/evolution-webcal/PKGBUILD b/extra/evolution-webcal/PKGBUILD
new file mode 100644
index 000000000..5fd841ba1
--- /dev/null
+++ b/extra/evolution-webcal/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 92013 2010-09-28 16:50:49Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-webcal
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Evolution Web calendar"
+arch=(i686 x86_64)
+license=('GPL')
+install=evolution-webcal.install
+url="http://www.ximian.com"
+depends=('evolution-data-server>=2.32.0')
+makedepends=('intltool' 'pkgconfig' 'evolution>=2.32.0')
+groups=('gnome-extra')
+options=(!emptydirs)
+source=(http://ftp.acc.umu.se/pub/GNOME/sources/evolution-webcal/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('b6ae8a105665771c4069be96d67e0c10f13e01417805cb3a1900c397c9bd580c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/evolution-webcal \
+ --localstatedir=/var
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain evolution-webcal ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/evolution-webcal/evolution-webcal.install b/extra/evolution-webcal/evolution-webcal.install
new file mode 100644
index 000000000..67e4861ce
--- /dev/null
+++ b/extra/evolution-webcal/evolution-webcal.install
@@ -0,0 +1,17 @@
+pkgname=evolution-webcal
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/evolution/PKGBUILD b/extra/evolution/PKGBUILD
new file mode 100644
index 000000000..96c6be99c
--- /dev/null
+++ b/extra/evolution/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 112779 2011-03-06 18:16:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution
+pkgver=2.32.2
+pkgrel=4
+pkgdesc="Integrated Workgroup and Personal Information Management for Gnome"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libnotify>=0.7.1' 'gtkhtml>=3.32.2' 'evolution-data-server>=2.32.2' 'gstreamer0.10>=0.10.30' 'libpst>=0.6.41' 'libytnef>=0.1.5' 'gnome-desktop>=2.32.0' 'libcanberra>=0.26' 'gtkimageview>=1.6.4' 'libunique' 'desktop-file-utils')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool' 'networkmanager')
+optdepends=('bogofilter: possible junk filter plugin'
+ 'spamassassin: possible junk filter plugin')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+install=evolution.install
+url=http://www.gnome.org/projects/evolution/
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ evolution-2.32.1-libnotify-0.7.patch)
+sha256sums=('1831c7f5f00b4755869cf84ef3e3f79c4705a33e0659e72b6c1ffa4a59d4a4bb'
+ '73746e65a3ba190ace8bd1e5fc9d52f6a67556fac0ba8727d7705ffe74e3ce0d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i "${srcdir}/evolution-2.32.1-libnotify-0.7.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --disable-scrollkeeper \
+ --enable-nss=yes \
+ --with-openldap=yes \
+ --enable-smime=yes \
+ --with-krb5=/usr
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ cd plugins/tnef-attachments
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain evolution-2.32 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/evolution/evolution-2.32.1-libnotify-0.7.patch b/extra/evolution/evolution-2.32.1-libnotify-0.7.patch
new file mode 100644
index 000000000..7e2474b47
--- /dev/null
+++ b/extra/evolution/evolution-2.32.1-libnotify-0.7.patch
@@ -0,0 +1,81 @@
+--- calendar/gui/alarm-notify/alarm-queue.c
++++ calendar/gui/alarm-notify/alarm-queue.c
+@@ -40,6 +40,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ #include "alarm.h"
+@@ -1606,7 +1609,12 @@
+ body = g_strdup_printf ("%s %s", start_str, time_str);
+ }
+
+- n = notify_notification_new (summary, body, "stock_appointment-reminder", NULL);
++ n = notify_notification_new (summary, body, "stock_appointment-reminder"
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+ if (!notify_notification_show(n, NULL))
+ g_warning ("Could not send notification to daemon\n");
+
+--- plugins/mail-notification/mail-notification.c
++++ plugins/mail-notification/mail-notification.c
+@@ -47,6 +47,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ #define GCONF_KEY_ROOT "/apps/evolution/eplugin/mail-notification/"
+@@ -564,9 +567,14 @@
+
+ notify = notify_notification_new (
+ _("New email"), safetext,
+- "mail-unread", NULL);
++ "mail-unread"
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
+ notify_notification_attach_to_status_icon (
+ notify, status_icon);
++#endif
+
+ /* Check if actions are supported */
+ if (can_support_actions ()) {
+--- plugins/publish-calendar/publish-calendar.c
++++ plugins/publish-calendar/publish-calendar.c
+@@ -46,6 +46,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ static GtkListStore *store = NULL;
+@@ -150,8 +153,13 @@
+ return;
+ }
+
+- notify = notify_notification_new (_("Calendar Publishing"), actual_msg->str, stock_name, NULL);
++ notify = notify_notification_new (_("Calendar Publishing"), actual_msg->str, stock_name
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
+ notify_notification_attach_to_status_icon (notify, status_icon);
++#endif
+ notify_notification_set_urgency (notify, NOTIFY_URGENCY_NORMAL);
+ notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT);
+ g_timeout_add (500, show_notify_cb, NULL);
diff --git a/extra/evolution/evolution.install b/extra/evolution/evolution.install
new file mode 100644
index 000000000..a2c3aaa54
--- /dev/null
+++ b/extra/evolution/evolution.install
@@ -0,0 +1,24 @@
+pkgname=evolution
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/exempi/PKGBUILD b/extra/exempi/PKGBUILD
new file mode 100644
index 000000000..0f385c8be
--- /dev/null
+++ b/extra/exempi/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: André Klitzing <aklitzing@online.de>
+pkgname=exempi
+pkgver=2.1.1
+pkgrel=1
+pkgdesc="A library to parse XMP metadata"
+arch=(i686 x86_64)
+url="http://libopenraw.freedesktop.org/wiki/Exempi"
+license=('custom:BSD')
+depends=('gcc-libs>=4.4.2' 'expat>=2.0.1' 'zlib')
+makedepends=('boost>=1.36.0')
+options=(!libtool)
+source=(http://libopenraw.freedesktop.org/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('62ecb5a01387b9f940a5429b3df67e65')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/${pkgname}-${pkgver}/COPYING" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/exiv2/PKGBUILD b/extra/exiv2/PKGBUILD
new file mode 100644
index 000000000..b13d82878
--- /dev/null
+++ b/extra/exiv2/PKGBUILD
@@ -0,0 +1,26 @@
+#$Id: PKGBUILD 110922 2011-02-23 07:38:47Z eric $
+# Maintainer: tobias <tobias@arhlinux.org>
+
+pkgname=exiv2
+pkgver=0.21.1
+pkgrel=1
+pkgdesc="Exif and Iptc metadata manipulation library and tools."
+arch=('i686' 'x86_64')
+url="http://exiv2.org"
+license=('GPL2')
+depends=('gcc-libs' 'zlib' 'expat')
+options=('!libtool')
+source=("http://www.exiv2.org/${pkgname}-${pkgver}.tar.gz")
+md5sums=('5c99bbcaa998f6b200b92f2bf0ac4f9e')
+sha1sums=('d33e0efbad5d6a7af7f2e6d1d0beb6e7c941cfca')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/exo/PKGBUILD b/extra/exo/PKGBUILD
new file mode 100644
index 000000000..8998e12c4
--- /dev/null
+++ b/extra/exo/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 106429 2011-01-16 21:30:41Z ibiru $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=exo
+pkgver=0.6.0
+pkgrel=2
+pkgdesc="Extensions to Xfce by os-cillation"
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL')
+url="http://www.xfce.org/projects/exo"
+groups=('xfce4')
+depends=("libxfce4util>=4.8.1" 'gtk2' 'hicolor-icon-theme' )
+makedepends=('pygtk' 'perl-uri' 'intltool' 'gtk-doc' 'xorg-iceauth')
+optdepends=('perl-uri: for mail-compose helper script')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ac9deafdf9de426d8a03855ac549f424')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # python2 fix
+ export PYTHON=python2
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gio-unix \
+ --enable-python \
+ --enable-gtk-doc \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/exo/exo.install b/extra/exo/exo.install
new file mode 100644
index 000000000..3525fa4a2
--- /dev/null
+++ b/extra/exo/exo.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/expect/ChangeLog b/extra/expect/ChangeLog
new file mode 100644
index 000000000..d43e10c0c
--- /dev/null
+++ b/extra/expect/ChangeLog
@@ -0,0 +1,11 @@
+2011-01-01 kevin <kevin@archlinux.org>
+
+ * expect 5.45-1
+ - Added upgrade message about expectk being removed
+ - Have expect conflict with expectk
+
+2010-03-27 kevin <kevin@archlinux.org>
+
+ * expect 5.44.1.15-1
+ - Source on sourceforge now and maintained mostly by ActiveState
+ - Added symlink to fix FS#18686 - libexpect.so is not found
diff --git a/extra/expect/PKGBUILD b/extra/expect/PKGBUILD
new file mode 100644
index 000000000..3b630ba43
--- /dev/null
+++ b/extra/expect/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 104372 2011-01-01 23:52:17Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+
+pkgname=expect
+pkgver=5.45
+pkgrel=1
+pkgdesc="A tool for automating interactive applications"
+arch=(i686 x86_64)
+url="http://www.nist.gov/el/msid/expect.cfm"
+license=('custom')
+depends=('tcl>=8.5.3')
+conflicts=('expectk')
+install=expect.install
+changelog=ChangeLog
+source=(http://downloads.sourceforge.net/project/expect/Expect/${pkgver}/expect${pkgver}.tar.gz)
+# CVS checkout on gerolde.
+#source=(ftp://ftp.archlinux.org/other/expect/expect-${pkgver}.tar.bz2)
+# old nist source=(http://expect.nist.gov/src/expect-${pkgver}.tar.bz2)
+md5sums=('44e1a4f4c877e9ddc5a542dfa7ecc92b')
+
+build() {
+ cd ${srcdir}/expect${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --mandir=/usr/share/man --with-tcl=/usr/lib \
+ --with-tclinclude=/usr/include
+
+ # Keep $startdir/pkg out of library search paths.
+ sed -e 's/-rpath,${LIB_RUNTIME_DIR}:/-rpath,/' -i Makefile
+ make
+ make DESTDIR=${pkgdir} install
+
+ # license.
+ install -D -m644 README ${pkgdir}/usr/share/licenses/${pkgname}/README
+
+ (cd ${pkgdir}/usr/lib;
+ ln -s expect${pkgver}/libexpect${pkgver}.so libexpect.so)
+}
diff --git a/extra/expect/expect.install b/extra/expect/expect.install
new file mode 100644
index 000000000..2847848a1
--- /dev/null
+++ b/extra/expect/expect.install
@@ -0,0 +1,5 @@
+post_upgrade() {
+ if [ "`vercmp $2 5.45`" -lt 0 ]; then
+ echo " - expectk has been removed. Use tclsh instead"
+ fi
+}
diff --git a/extra/f-spot/PKGBUILD b/extra/f-spot/PKGBUILD
new file mode 100644
index 000000000..eae2d4777
--- /dev/null
+++ b/extra/f-spot/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 104366 2011-01-01 20:04:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <kritoke@nospam.gmail.com>
+# Contributor: György Balló <ballogy@freestart.hu>
+
+pkgname=f-spot
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="A personal photo management program for GNOME"
+url="http://www.gnome.org/projects/f-spot/"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('mono-addins>=0.3' 'gnome-sharp>=2.8' 'ndesk-dbus-glib>=0.3.0' 'lcms>=1.12' 'gnome-keyring-sharp' 'flickrnet' 'libgphoto2' 'desktop-file-utils' 'hicolor-icon-theme' 'xdg-utils')
+makedepends=('intltool>=0.35.0' 'gnome-doc-utils>=0.17.3' 'gnome-screensaver>=2.30.0')
+options=('!libtool')
+install=$pkgname.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ mono-2.8.patch)
+sha256sums=('24448d3431a95a9faa0aa975554414eb638f918811507177e9d69d11d417873a'
+ '4e7d2f1909870b842bbbe087f4381f325d5281d2deae0d32ba5713ee66d52b65')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/mono-2.8.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --disable-scrollkeeper --disable-schemas-install --enable-release \
+ --with-vendor-build-id=ArchLinux
+ make
+ make DESTDIR=${pkgdir} install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain f-spot ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
+
diff --git a/extra/f-spot/f-spot.install b/extra/f-spot/f-spot.install
new file mode 100644
index 000000000..b000623e7
--- /dev/null
+++ b/extra/f-spot/f-spot.install
@@ -0,0 +1,24 @@
+pkgname=f-spot
+
+post_install() {
+ gconfpkg --install $pkgname
+ update-desktop-database -q
+ xdg-icon-resource forceupdate
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gconfpkg --uninstall $pkgname
+}
+
+post_remove() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate
+}
diff --git a/extra/f-spot/mono-2.8.patch b/extra/f-spot/mono-2.8.patch
new file mode 100644
index 000000000..80e5636ac
--- /dev/null
+++ b/extra/f-spot/mono-2.8.patch
@@ -0,0 +1,22 @@
+From 9d6e8052b188c2b1cb310ef05842da74a730a39f Mon Sep 17 00:00:00 2001
+From: Marek Habersack <grendel@twistedcode.net>
+Date: Wed, 15 Sep 2010 21:21:52 +0000
+Subject: PixbufLoader from gtk-sharp/master does not have a Close () overload which takes a boolean parameter
+
+https://bugzilla.gnome.org/show_bug.cgi?id=629224
+---
+diff --git a/src/Clients/MainApp/FSpot.Loaders/GdkImageLoader.cs b/src/Clients/MainApp/FSpot.Loaders/GdkImageLoader.cs
+index 2eea50e..9c9c07a 100644
+--- a/src/Clients/MainApp/FSpot.Loaders/GdkImageLoader.cs
++++ b/src/Clients/MainApp/FSpot.Loaders/GdkImageLoader.cs
+@@ -132,7 +132,7 @@ namespace FSpot.Loaders {
+ public new bool Close ()
+ {
+ lock (sync_handle) {
+- return base.Close (true);
++ return base.Close ();
+ }
+ }
+ #endregion
+--
+cgit v0.8.3.1
diff --git a/extra/faad2/ChangeLog b/extra/faad2/ChangeLog
new file mode 100644
index 000000000..ed5548b7d
--- /dev/null
+++ b/extra/faad2/ChangeLog
@@ -0,0 +1,26 @@
+2009-02-16 Eric Belanger <eric@archlinux.org>
+
+ * faad2 2.7-1
+ * Upstream update
+ * Updated LICENSE file
+ * Compiled with -fPIC option
+
+2009-01-05 Eric Belanger <eric@archlinux.org>
+
+ * faad2 2.6.1-2
+ * Applied security patch
+
+2008-07-19 Eric Belanger <eric@archlinux.org>
+
+ * faad2 2.6.1-1
+ * Upstream update
+ * Patched to fix libtool build problem :
+ faad2-2.6.1-libtool22.patch
+ * Patched to make faad2 exit if output pipe breaks :
+ faad2-2.6.1-broken-pipe.patch
+ * Patched to fix include file implicit declaration :
+ faad2-2.6.1-implicitdeclar.patch
+ * Patched to bump soname (symbols have been changed) :
+ faad2-2.6.1-abi_has_changed.patch
+ * Updated license
+ * Added ChangeLog
diff --git a/extra/faad2/LICENSE b/extra/faad2/LICENSE
new file mode 100644
index 000000000..a16abf6e3
--- /dev/null
+++ b/extra/faad2/LICENSE
@@ -0,0 +1,42 @@
+__________
+COPYRIGHTS
+
+For FAAD2 the following license applies:
+
+******************************************************************************
+** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
+** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com
+**
+** 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+**
+** Any non-GPL usage of this software or parts of this software is strictly
+** forbidden.
+**
+** The "appropriate copyright message" mentioned in section 2c of the GPLv2
+** must read: "Code from FAAD2 is copyright (c) Nero AG, www.nero.com"
+**
+** Commercial non-GPL licensing of this software is possible.
+** For more info contact Nero AG through Mpeg4AAClicense@nero.com.
+******************************************************************************
+
+
+Please note that the use of this software may require the payment of
+patent royalties. You need to consider this issue before you start
+building derivative works. We are not warranting or indemnifying you in
+any way for patent royalities! YOU ARE SOLELY RESPONSIBLE FOR YOUR OWN
+ACTIONS!
+
+
+______
diff --git a/extra/faad2/PKGBUILD b/extra/faad2/PKGBUILD
new file mode 100644
index 000000000..eb89c9ea1
--- /dev/null
+++ b/extra/faad2/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 27495 2009-02-22 04:29:09Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=faad2
+pkgver=2.7
+pkgrel=1
+pkgdesc="ISO AAC audio decoder"
+arch=('i686' 'x86_64')
+url="http://www.audiocoding.com/"
+license=('custom:GPL')
+depends=('glibc')
+options=('!libtool' '!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/faac/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('4c332fa23febc0e4648064685a3d4332' 'ec95f38142e14fb46c849503897a37a0')
+sha1sums=('b0e80481d27ae9faf9e46c8c8dfb617a0adb91b5' '00edd9b30d8d5098b5e91c03c595d96a3bbe56fd')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make CFLAGS="${CFLAGS} -fPIC" || return 1
+ make DESTDIR=${pkgdir} manmdir=/usr/share/man/man1 install || return 1
+ install -m644 common/mp4ff/mp4ff_int_types.h ${pkgdir}/usr/include/mp4ff_int_types.h || return 1
+ install -D -m644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+ mv ${pkgdir}/usr/share/man/man1/faad.man ${pkgdir}/usr/share/man/man1/faad.1
+}
diff --git a/extra/facile/PKGBUILD b/extra/facile/PKGBUILD
new file mode 100644
index 000000000..217de93c7
--- /dev/null
+++ b/extra/facile/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 88117 2010-08-19 14:40:05Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=facile
+pkgver=1.1
+pkgrel=12
+pkgdesc="A Functional Constraint Library"
+arch=(i686 x86_64)
+url="http://www.recherche.enac.fr/opti/facile/"
+license="LGPL"
+makedepends=('ocaml')
+depends=()
+source=(http://www.recherche.enac.fr/opti/facile/distrib/$pkgname-$pkgver.tar.gz)
+md5sums=('ab673e1fc0859a42bcb639a02c2d7e9e')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure
+ make || return 1
+ mkdir -p $startdir/pkg/usr/lib/ocaml/facile
+ cd src
+ install -D -m 644 facile.cmxa facile.cmi facile.cma facile.a $startdir/pkg/usr/lib/ocaml/facile
+}
diff --git a/extra/fakechroot/PKGBUILD b/extra/fakechroot/PKGBUILD
new file mode 100644
index 000000000..4c5a23f7e
--- /dev/null
+++ b/extra/fakechroot/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 109836 2011-02-13 10:43:46Z allan $
+# Maintainer : Allan McRae <allan@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=fakechroot
+pkgver=2.14
+pkgrel=1
+pkgdesc="Gives a fake chroot environment"
+arch=('i686' 'x86_64')
+url="https://github.com/fakechroot/fakechroot/wiki"
+license=('LGPL')
+options=('!libtool')
+install=fakechroot.install
+source=(https://github.com/downloads/fakechroot/fakechroot/fakechroot-${pkgver}.tar.gz)
+md5sums=('264c4e3f9a2264ab57e286682f9c4ad2')
+
+build()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot
+ make
+ make check
+}
+
+package()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -dm755 ${pkgdir}/etc/ld.so.conf.d/
+ echo '/usr/lib/libfakeroot/fakechroot/' > ${pkgdir}/etc/ld.so.conf.d/fakechroot.conf
+}
diff --git a/extra/fakechroot/fakechroot.install b/extra/fakechroot/fakechroot.install
new file mode 100644
index 000000000..2b5eb2100
--- /dev/null
+++ b/extra/fakechroot/fakechroot.install
@@ -0,0 +1,14 @@
+post_install() {
+ sbin/ldconfig -r .
+}
+
+post_upgrade() {
+ if [ "$(vercmp $2 2.9-2)" -lt 0 ]; then
+ sed -i -e '/\/usr\/lib\/libfakechroot/d' etc/ld.so.conf
+ fi
+ sbin/ldconfig -r .
+}
+
+post_remove() {
+ sbin/ldconfig -r .
+}
diff --git a/extra/fam/PKGBUILD b/extra/fam/PKGBUILD
new file mode 100644
index 000000000..83615cc69
--- /dev/null
+++ b/extra/fam/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 42581 2009-06-16 05:20:11Z tpowa $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=fam
+pkgver=2.7.0
+pkgrel=14
+pkgdesc="File Alteration Monitor"
+arch=('i686' 'x86_64')
+license=('LGPL' 'GPL')
+depends=('rpcbind' 'gcc-libs' 'bash')
+url="http://oss.sgi.com/projects/fam/"
+backup=(etc/fam/fam.conf)
+options=('!makeflags') # Don't !libtool
+source=(ftp://oss.sgi.com/projects/fam/download/stable/${pkgname}-${pkgver}.tar.gz
+ fam-2.7.0-dnotify.patch
+ fam-2.7.0-largefiles.patch
+ fam-2.7.0-limits.patch
+ fam-2.7.0-buildfixes.patch
+ fam)
+md5sums=('1bf3ae6c0c58d3201afc97c6a4834e39'
+ '073d1763318344635ea316293390205c'
+ '47b41e0b0498793af004696a096d7da1'
+ '2638b8ffacb9f03b6e438e08ea7b290a'
+ 'fc0cabc0ac4f819680401eb3090c29c9'
+ '0b4dd9894ccc03f57787f9dfc0a7bd6f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/fam-2.7.0-dnotify.patch || return 1
+ patch -Np1 -i ${srcdir}/fam-2.7.0-largefiles.patch || return 1
+ patch -Np0 -i ${srcdir}/fam-2.7.0-limits.patch || return 1
+ patch -Np1 -i ${srcdir}/fam-2.7.0-buildfixes.patch || return 1
+
+ chmod 755 configure || return 1
+
+ autoheader || return 1
+ aclocal || return 1
+ automake -a -c || return 1
+ autoconf || return 1
+ libtoolize --copy --force || return 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc/fam
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m755 ../fam ${pkgdir}/etc/rc.d/fam
+}
diff --git a/extra/fam/fam b/extra/fam/fam
new file mode 100755
index 000000000..53dd2a4a6
--- /dev/null
+++ b/extra/fam/fam
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/famd`
+case "$1" in
+ start)
+ #Check for running portmap, start when not running
+ ck_daemon rpcbind && /etc/rc.d/rpcbind start
+ stat_busy "Starting File Alteration Monitor"
+ if [ ! -f /var/run/daemons/rpcbind ]; then
+ stat_fail
+ echo "ERROR: rpcbind is not running"
+ exit 1
+ fi
+ if [ -z "$PID" ]; then
+ /usr/sbin/famd -T 0 -c /etc/fam/fam.conf
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon fam
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping File Alteration Monitor"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon fam
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/fam/fam-2.7.0-buildfixes.patch b/extra/fam/fam-2.7.0-buildfixes.patch
new file mode 100644
index 000000000..abc78883d
--- /dev/null
+++ b/extra/fam/fam-2.7.0-buildfixes.patch
@@ -0,0 +1,69 @@
+diff -Naur fam-2.7.0-old/include/BTree.h fam-2.7.0/include/BTree.h
+--- fam-2.7.0-old/include/BTree.h 2003-01-20 14:22:30.000000000 +1000
++++ fam-2.7.0/include/BTree.h 2009-06-14 21:21:41.000000000 +1000
+@@ -24,6 +24,7 @@
+ #define BTree_included
+
+ #include "Boolean.h"
++#include <cstdlib>
+
+ // This is an in-core B-Tree implementation.
+ //
+diff -Naur fam-2.7.0-old/lib/Client.c++ fam-2.7.0/lib/Client.c++
+--- fam-2.7.0-old/lib/Client.c++ 2003-01-19 00:18:12.000000000 +1000
++++ fam-2.7.0/lib/Client.c++ 2009-06-14 21:22:33.000000000 +1000
+@@ -34,7 +34,7 @@
+ #include <syslog.h>
+ #include <errno.h>
+
+-#include <iostream.h>
++#include <iostream>
+
+ #include "fam.h"
+ #include "Client.h"
+diff -Naur fam-2.7.0-old/src/DNotify.c++ fam-2.7.0/src/DNotify.c++
+--- fam-2.7.0-old/src/DNotify.c++ 2009-06-14 21:14:34.000000000 +1000
++++ fam-2.7.0/src/DNotify.c++ 2009-06-14 21:23:23.000000000 +1000
+@@ -31,6 +31,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <libgen.h>
++#include <cstdlib>
+
+ #include "DNotify.h"
+
+diff -Naur fam-2.7.0-old/src/IMon.c++ fam-2.7.0/src/IMon.c++
+--- fam-2.7.0-old/src/IMon.c++ 2003-01-19 00:18:12.000000000 +1000
++++ fam-2.7.0/src/IMon.c++ 2009-06-14 21:24:11.000000000 +1000
+@@ -40,7 +40,7 @@
+ #include "Interest.h"
+ #include "Log.h"
+ #include "Scheduler.h"
+-#include "alloc.h"
++#include <memory>
+
+ int IMon::imonfd = -2;
+ IMon::EventHandler IMon::ehandler = NULL;
+diff -Naur fam-2.7.0-old/src/Interest.h fam-2.7.0/src/Interest.h
+--- fam-2.7.0-old/src/Interest.h 2009-06-14 21:14:34.000000000 +1000
++++ fam-2.7.0/src/Interest.h 2009-06-14 21:25:25.000000000 +1000
+@@ -29,6 +29,7 @@
+ #include <netinet/in.h> // for in_addr
+
+ #include "Boolean.h"
++#include <cstdlib>
+
+ class Event;
+ class FileSystem;
+diff -Naur fam-2.7.0-old/src/NFSFileSystem.c++ fam-2.7.0/src/NFSFileSystem.c++
+--- fam-2.7.0-old/src/NFSFileSystem.c++ 2003-01-19 00:18:12.000000000 +1000
++++ fam-2.7.0/src/NFSFileSystem.c++ 2009-06-14 21:26:16.000000000 +1000
+@@ -97,7 +97,7 @@
+
+ attr_cache_timeout = ACREGMAX;
+
+- char * p;
++ const char * p;
+
+ if (strstr(opt, "noac")) {
+ f_noac = true;
diff --git a/extra/fam/fam-2.7.0-dnotify.patch b/extra/fam/fam-2.7.0-dnotify.patch
new file mode 100644
index 000000000..1d8910efb
--- /dev/null
+++ b/extra/fam/fam-2.7.0-dnotify.patch
@@ -0,0 +1,975 @@
+--- fam-2.7.0/src/DNotify.c++ 2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/DNotify.c++ 2004-01-30 00:00:00.000000000 +0100
+@@ -0,0 +1,582 @@
++// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved.
++// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
++//
++// This program is free software; you can redistribute it and/or modify it
++// under the terms of version 2 of the GNU General Public License as
++// published by the Free Software Foundation.
++//
++// This program is distributed in the hope that it would be useful, but
++// WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any
++// license provided herein, whether implied or otherwise, is limited to
++// this program in accordance with the express provisions of the GNU
++// General Public License. Patent licenses, if any, provided herein do not
++// apply to combinations of this program with other product or programs, or
++// any other product whatsoever. This program is distributed without any
++// warranty that the program is delivered free of the rightful claim of any
++// third person by way of infringement or the like. 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 the Free Software Foundation, Inc., 59
++// Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#define _GNU_SOURCE
++#include <fcntl.h>
++
++#include <string.h>
++#include <signal.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <libgen.h>
++
++#include "DNotify.h"
++
++#include "Interest.h"
++#include "Log.h"
++#include "Scheduler.h"
++#include <memory>
++
++
++int DNotify::pipe_write_fd = -2;
++int DNotify::pipe_read_fd = -2;
++volatile sig_atomic_t DNotify::queue_overflowed = 0;
++volatile sig_atomic_t DNotify::queue_changed = 0;
++int DNotify::change_queue[QUEUESIZE];
++volatile int DNotify::queue_head = 0; // Only modified by read handler
++volatile int DNotify::queue_tail = 0; // Only modified by signal handler
++DNotify::EventHandler DNotify::ehandler;
++
++DNotify::DirWatch *DNotify::dir_hash[DIR_HASHSIZE];
++DNotify::FileWatch *DNotify::file_hash[FILE_HASHSIZE];
++
++struct DNotify::FileWatch
++{
++ DirWatch *dir_watch;
++ dev_t file_dev;
++ ino_t file_ino;
++ FileWatch *next; // The DirWatch.watches list
++ FileWatch *hash_link;
++};
++
++struct DNotify::DirWatch
++{
++ int fd;
++ dev_t dir_dev;
++ ino_t dir_ino;
++
++ DirWatch *hash_link;
++ FileWatch *watches;
++};
++
++struct DNotify::ChangeEventData
++{
++ dev_t file_dev;
++ ino_t file_ino;
++};
++
++DNotify::DNotify(EventHandler h)
++{
++ assert(ehandler == NULL);
++ ehandler = h;
++}
++
++DNotify::~DNotify()
++{
++ if (pipe_read_fd >= 0)
++ {
++ // Tell the scheduler.
++
++ (void) Scheduler::remove_read_handler(pipe_read_fd);
++
++ // Close the pipe.
++
++ if (close(pipe_read_fd) < 0)
++ Log::perror("can't pipe read end");
++ else
++ Log::debug("closed pipe read end");
++
++ if (close(pipe_write_fd) < 0)
++ Log::perror("can't pipe write end");
++ else
++ Log::debug("closed pipe write end");
++ pipe_read_fd = -1;
++ }
++ ehandler = NULL;
++}
++
++void
++DNotify::overflow_signal_handler(int sig, siginfo_t *si, void *data)
++{
++ char c = 'x';
++
++ {
++ char *str = "*************** overflow sigqueue ***********************\n";
++ write (STDERR_FILENO, str, strlen(str));
++ }
++
++ if (!queue_overflowed)
++ {
++ queue_overflowed = 1;
++ // Trigger the read handler
++ write(pipe_write_fd, &c, 1);
++ }
++}
++
++void
++DNotify::signal_handler(int sig, siginfo_t *si, void *data)
++{
++ int left;
++ char c = 'x';
++
++ if (queue_head <= queue_tail)
++ left = (QUEUESIZE + queue_head) - queue_tail;
++ else
++ left = queue_head - queue_tail;
++
++ // Must leave at least one item unused to see difference
++ // Betweeen empty and full
++ if (left <= 1)
++ {
++ queue_overflowed = 1;
++ {
++ char *str = "*************** overflow famqueue ****************\n";
++ write (STDERR_FILENO, str, strlen(str));
++ }
++ }
++ else
++ {
++ change_queue[queue_tail] = si->si_fd;
++ queue_tail = (queue_tail + 1) % QUEUESIZE;
++ }
++
++ if (!queue_changed)
++ {
++ queue_changed = 1;
++ // Trigger the read handler
++ write(pipe_write_fd, &c, 1);
++ }
++}
++
++bool
++DNotify::is_active()
++{
++ if (pipe_read_fd == -2)
++ {
++ int filedes[2];
++ int res;
++
++ res = pipe (filedes);
++ if (res >= 0)
++ { Log::debug("opened pipe");
++ pipe_read_fd = filedes[0];
++ pipe_write_fd = filedes[1];
++
++ // Setup signal handler:
++ struct sigaction act;
++
++ act.sa_sigaction = signal_handler;
++ sigemptyset(&act.sa_mask);
++ act.sa_flags = SA_SIGINFO;
++ sigaction(SIGRTMIN, &act, NULL);
++
++ // When the RT queue overflows we get a SIGIO
++ act.sa_sigaction = overflow_signal_handler;
++ sigemptyset(&act.sa_mask);
++ sigaction(SIGIO, &act, NULL);
++
++ (void) Scheduler::install_read_handler(pipe_read_fd, read_handler, NULL);
++ }
++ }
++ return pipe_read_fd >= 0;
++}
++
++DNotify::DirWatch *
++DNotify::lookup_dirwatch (int fd)
++{
++ DirWatch **p;
++ DirWatch *w;
++
++ p = dir_hashchain (fd);
++
++ while (*p)
++ {
++ w = *p;
++
++ if (w->fd == fd)
++ return w;
++
++ p = &w->hash_link;
++ }
++
++ return *p;
++}
++
++// This colud be made faster by using another hash table.
++// But it's not that bad, since it is only used by express/revoke
++DNotify::DirWatch *
++DNotify::lookup_dirwatch (dev_t dir_dev, ino_t dir_ino)
++{
++ DirWatch *p;
++ int i;
++
++ for (i=0;i<DIR_HASHSIZE;i++)
++ {
++ p = dir_hash[i];
++
++ while (p)
++ {
++ if (p->dir_dev == dir_dev && p->dir_ino == dir_ino)
++ return p;
++
++ p = p->hash_link;
++ }
++ }
++
++ return NULL;
++}
++
++DNotify::FileWatch *
++DNotify::lookup_filewatch (dev_t dev, ino_t ino)
++{
++ FileWatch **p;
++ FileWatch *w;
++
++ p = file_hashchain (dev, ino);
++
++ while (*p)
++ {
++ w = *p;
++
++ if (w->file_dev == dev && w->file_ino == ino)
++ return w;
++
++ p = &w->hash_link;
++ }
++
++ return *p;
++}
++
++// Make sure w is not already in the hash table before calling
++// this function.
++void
++DNotify::hash_dirwatch(DirWatch *w)
++{
++ DirWatch **p;
++ p = dir_hashchain (w->fd);
++ w->hash_link = *p;
++ *p = w;
++}
++
++// Make sure w is not already in the hash table before calling
++// this function.
++void
++DNotify::hash_filewatch(FileWatch *w)
++{
++ FileWatch **p;
++ p = file_hashchain (w->file_dev, w->file_ino);
++ w->hash_link = *p;
++ *p = w;
++}
++
++void
++DNotify::unhash_dirwatch(DirWatch *w)
++{
++ DirWatch **p;
++
++ p = dir_hashchain (w->fd);
++
++ while (*p)
++ {
++ if (*p == w)
++ {
++ *p = w->hash_link;
++ break;
++ }
++ p = &(*p)->hash_link;
++ }
++ w->hash_link = NULL;
++}
++
++void
++DNotify::unhash_filewatch(FileWatch *w)
++{
++ FileWatch **p;
++
++ p = file_hashchain (w->file_dev, w->file_ino);
++
++ while (*p)
++ {
++ if (*p == w)
++ {
++ *p = w->hash_link;
++ break;
++ }
++ p = &(*p)->hash_link;
++ }
++ w->hash_link = NULL;
++}
++
++DNotify::Status
++DNotify::watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino)
++{
++ struct stat stat;
++ dev_t dir_dev;
++ ino_t dir_ino;
++ DirWatch *dwatch;
++ FileWatch *fw;
++
++ if (lstat (notify_dir, &stat) == -1)
++ return BAD;
++
++ dwatch = lookup_dirwatch(stat.st_dev, stat.st_ino);
++ if (!dwatch)
++ {
++ Log::debug ("New DirWatch for %s (%x %x)\n",
++ notify_dir, (int)stat.st_dev, (int)stat.st_ino);
++ dwatch = new DirWatch;
++ dwatch->watches = NULL;
++ dwatch->hash_link = NULL;
++ dwatch->dir_dev = stat.st_dev;
++ dwatch->dir_ino = stat.st_ino;
++
++ dwatch->fd = open(notify_dir, O_RDONLY);
++ fcntl (dwatch->fd, F_SETSIG, SIGRTMIN);
++ if (fcntl (dwatch->fd, F_NOTIFY,
++ (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB)
++ | DN_MULTISHOT) == -1) {
++ return BAD;
++ }
++ hash_dirwatch (dwatch);
++ }
++
++ fw = lookup_filewatch (file_dev, file_ino);
++ if (fw && fw->dir_watch == dwatch)
++ return OK;
++
++ // No old FileWatch, need to add one:
++ Log::debug("New FileWatch for %x %x\n", (int)file_dev, (int)file_ino);
++ fw = new FileWatch;
++ fw->next = dwatch->watches;
++ dwatch->watches = fw;
++ fw->file_dev = file_dev;
++ fw->file_ino = file_ino;
++ fw->dir_watch = dwatch;
++ hash_filewatch(fw);
++ return OK;
++}
++
++char *
++dirname_dup (const char *name)
++{
++ char *copy = strdup(name);
++ char *res = dirname(copy);
++ res = strdup(res);
++ free (copy);
++ return res;
++}
++
++DNotify::Status
++DNotify::express(const char *name, struct stat *status)
++{
++ struct stat stat;
++ char *notify_dir;
++ int res;
++ Status s;
++ dev_t dev;
++ ino_t ino;
++
++ Log::debug("express() name: %s\n", name);
++
++ if (!is_active())
++ return BAD;
++
++ if (::lstat (name, &stat) == -1)
++ return BAD;
++
++ dev = stat.st_dev;
++ ino = stat.st_ino;
++
++ if ((stat.st_mode & S_IFMT) != S_IFDIR)
++ notify_dir = dirname_dup (name);
++ else
++ notify_dir = (char *)name;
++
++ s = watch_dir (notify_dir, dev, ino);
++ if (notify_dir != name)
++ free (notify_dir);
++ if (s)
++ return s;
++
++ // Check for a race condition; if someone removed or changed the
++ // file at the same time that we are expressing interest in it,
++ // revoke the interest so we don't get notifications about changes
++ // to a recycled inode that we don't otherwise care about.
++ //
++ struct stat st;
++ if (status == NULL) {
++ status = &st;
++ }
++ if (::lstat(name, status) == -1) {
++ Log::perror("stat on \"%s\" failed", name);
++ revoke(name, stat.st_dev, stat.st_ino);
++ return BAD;
++ }
++ if (status->st_dev != stat.st_dev
++ || status->st_ino != stat.st_ino) {
++ Log::error("File \"%s\" changed between express and stat",
++ name);
++ revoke(name, stat.st_dev, stat.st_ino);
++ return BAD;
++ }
++
++ Log::debug("told dnotify to monitor \"%s\" = dev %d/%d, ino %d", name,
++ major(status->st_dev), minor(status->st_dev),
++ status->st_ino);
++ return OK;
++}
++
++DNotify::Status
++DNotify::revoke(const char *name, dev_t dev, ino_t ino)
++{
++ FileWatch *fwatch;
++ DirWatch *dwatch;
++
++ Log::debug("revoke() name: %s, dev: %x, ino: %x\n", name, dev, ino);
++
++ if (!is_active())
++ return BAD;
++
++ // Lookup FileWatch by dev:ino, and its DirWatch.
++ fwatch = lookup_filewatch (dev, ino);
++ if (fwatch == NULL)
++ return BAD;
++
++ dwatch = fwatch->dir_watch;
++
++ // delete FileWatch, if last FileWatch: close fd, delete DirWatch
++ Log::debug ("Destroying FileWatch for (%x %x)\n",
++ (int)fwatch->file_dev, (int)fwatch->file_ino);
++ FileWatch **p;
++ for (p=&dwatch->watches; *p; p=&(*p)->next)
++ {
++ if (*p == fwatch)
++ {
++ *p = (*p)->next;
++ break;
++ }
++ }
++ unhash_filewatch(fwatch);
++ delete fwatch;
++ if (dwatch->watches == NULL)
++ {
++ Log::debug ("Destroying DirWatch for (%x %x)\n",
++ (int)dwatch->dir_dev, (int)dwatch->dir_ino);
++ close(dwatch->fd);
++ unhash_dirwatch(dwatch);
++ delete dwatch;
++ }
++
++ return OK;
++}
++
++
++void
++DNotify::all_watches_changed(void)
++{
++ int i;
++ FileWatch *fw;
++
++ for (i=0; i<FILE_HASHSIZE; i++)
++ {
++ fw = file_hash[i];
++ while (fw)
++ {
++ (*ehandler)(fw->file_dev, fw->file_ino, CHANGE);
++
++ fw = fw->hash_link;
++ }
++ }
++}
++
++
++void
++DNotify::read_handler(int fd, void *)
++{
++ static char readbuf[5000];
++ DirWatch *dw;
++ FileWatch *fw;
++ int snap_queue_tail;
++ int last_fd;
++
++ int rc = read(fd, readbuf, sizeof readbuf);
++ queue_changed = 0;
++ if (rc < 0)
++ Log::perror("pipe read");
++ else if (queue_overflowed)
++ {
++ // There is a *slight* race condition here. Between reading
++ // the queue_overflow flag and resetting it. But it doesn't
++ // matter, since I'm gonna handle the overflow after reseting
++ // anyway.
++ queue_overflowed = false;
++
++ // We're soon gonna check all watches anyway, so
++ // get rid of the current queue
++ queue_head = queue_tail;
++
++ all_watches_changed ();
++ }
++ else
++ {
++ // Don't read events that happen later than
++ // the initial read. (Otherwise skipping fd's
++ // might miss some changes).
++ snap_queue_tail = queue_tail;
++ last_fd = -1;
++ while (queue_head != snap_queue_tail)
++ {
++ fd = change_queue[queue_head];
++ queue_head = (queue_head + 1) % QUEUESIZE;
++
++ // Skip multiple changes to the same fd
++ if (fd != last_fd)
++ {
++ dw = lookup_dirwatch (fd);
++ if (dw)
++ {
++ int n_watches, i;
++ ChangeEventData *data;
++
++ Log::debug("dnotify said dev %d/%d, ino %ld changed",
++ major(dw->dir_dev), minor(dw->dir_dev), dw->dir_ino);
++
++ n_watches = 0;
++ for (fw=dw->watches; fw; fw=fw->next)
++ n_watches++;
++
++ data = new ChangeEventData[n_watches];
++
++ i = 0;
++ for (fw=dw->watches; fw; fw=fw->next)
++ {
++ data[i].file_dev = fw->file_dev;
++ data[i].file_ino = fw->file_ino;
++ i++;
++ }
++
++ for (i = 0; i < n_watches; i++)
++ {
++ (*ehandler)(data[i].file_dev, data[i].file_ino, CHANGE);
++ }
++
++ delete[] data;
++ }
++ }
++ last_fd = fd;
++ }
++ }
++}
++
+--- fam-2.7.0/src/DNotify.h 2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/DNotify.h 2004-01-30 00:00:00.000000000 +0100
+@@ -0,0 +1,98 @@
++// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved.
++// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
++//
++// This program is free software; you can redistribute it and/or modify it
++// under the terms of version 2 of the GNU General Public License as
++// published by the Free Software Foundation.
++//
++// This program is distributed in the hope that it would be useful, but
++// WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any
++// license provided herein, whether implied or otherwise, is limited to
++// this program in accordance with the express provisions of the GNU
++// General Public License. Patent licenses, if any, provided herein do not
++// apply to combinations of this program with other product or programs, or
++// any other product whatsoever. This program is distributed without any
++// warranty that the program is delivered free of the rightful claim of any
++// third person by way of infringement or the like. 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 the Free Software Foundation, Inc., 59
++// Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#ifndef DNotify_included
++#define DNotify_included
++
++#include "config.h"
++#include "Monitor.h"
++#include <signal.h>
++
++// DNotify is an object encapsulating the dnotify linux fcntl.
++// It "emulates" the IMon interface.
++// There can only be one instantiation of the DNotify object.
++//
++// The user of this object uses express() and revoke() to
++// express/revoke interest in a file. There is also
++// a callback, the EventHandler. When an dnotify event comes in,
++// the EventHandler is called.
++//
++// The user of the DNotify object is the Interest class.
++
++class DNotify : public Monitor {
++public:
++ DNotify(EventHandler h);
++ ~DNotify();
++
++ static bool is_active();
++
++ virtual Status express(const char *name, struct stat *stat_return);
++ virtual Status revoke(const char *name, dev_t dev, ino_t ino);
++
++private:
++ struct FileWatch;
++ struct DirWatch;
++ struct ChangeEventData;
++
++ // Class Variables
++ enum { QUEUESIZE = 1024 };
++ static int pipe_write_fd;
++ static int pipe_read_fd;
++ static int change_queue[QUEUESIZE];
++ static volatile sig_atomic_t queue_overflowed;
++ static volatile sig_atomic_t queue_changed;
++ static volatile int queue_head; // Only modified by read handler
++ static volatile int queue_tail; // Only modified by signal handler
++ static EventHandler ehandler;
++ static void overflow_signal_handler(int sig, siginfo_t *si, void *data);
++ static void signal_handler(int sig, siginfo_t *si, void *data);
++ static void read_handler(int fd, void *closure);
++
++ enum { DIR_HASHSIZE = 367 };
++ static DirWatch *dir_hash[DIR_HASHSIZE];
++ enum { FILE_HASHSIZE = 823 };
++ static FileWatch *file_hash[FILE_HASHSIZE];
++
++ static DirWatch **dir_hashchain(int fd)
++ { return &dir_hash[(unsigned) (fd) % DIR_HASHSIZE]; }
++ static FileWatch **file_hashchain(dev_t d, ino_t i)
++ { return &file_hash[(unsigned) (d+i) % FILE_HASHSIZE]; }
++
++ static DirWatch *lookup_dirwatch (int fd);
++ static DirWatch *lookup_dirwatch (dev_t dir_dev, ino_t dir_ino);
++ static FileWatch *lookup_filewatch (dev_t file_dev, ino_t file_ino);
++ static void hash_dirwatch(DirWatch *w);
++ static void hash_filewatch(FileWatch *w);
++ static void unhash_dirwatch(DirWatch *w);
++ static void unhash_filewatch(FileWatch *w);
++ static Status watch_dir(const char *notify_dir, dev_t file_dev, ino_t file_ino);
++
++ static void all_watches_changed(void);
++
++ DNotify(const DNotify&); // Do not copy
++ DNotify & operator = (const DNotify&); // or assign.
++};
++
++#endif /* !IMon_included */
++
++
+--- fam-2.7.0/src/Interest.c++ 2004-01-30 00:00:00.000000000 +0100
++++ fam-2.7.0.dnotify/src/Interest.c++ 2004-01-30 00:00:00.000000000 +0100
+@@ -42,12 +42,21 @@
+ #include "Event.h"
+ #include "FileSystem.h"
+ #include "IMon.h"
++#include "DNotify.h"
+ #include "Log.h"
+ #include "Pollster.h"
+ #include "timeval.h"
+
+ Interest *Interest::hashtable[];
+-IMon Interest::imon(imon_handler);
++
++#ifdef USE_DNOTIFY
++static DNotify dnotify(Interest::monitor_handler);
++Monitor * Interest::monitor = &dnotify;
++#else
++static IMon imon(Interest::monitor_handler);
++Monitor * Interest::monitor = &imon;
++#endif
++
+ bool Interest::xtab_verification = true;
+
+ Interest::Interest(const char *name, FileSystem *fs, in_addr host, ExportVerification ev)
+@@ -60,10 +69,10 @@
+ mypath_exported_to_host(ev == NO_VERIFY_EXPORTED)
+ {
+ memset(&old_stat, 0, sizeof(old_stat));
+- IMon::Status s = IMon::BAD;
+
+- s = imon.express(name, &old_stat);
+- if (s != IMon::OK)
++ Monitor::Status s = Monitor::BAD;
++ s = monitor->express(name, &old_stat);
++ if (s != Monitor::OK)
+ { int rc = lstat(name, &old_stat);
+ if (rc < 0)
+ { Log::info("can't lstat %s", name);
+@@ -100,7 +109,7 @@
+ }
+ #endif
+
+- if (exported_to_host()) fs->ll_monitor(this, s == IMon::OK);
++ if (exported_to_host()) fs->ll_monitor(this, s == Monitor::OK);
+ }
+
+ Interest::~Interest()
+@@ -128,7 +137,7 @@
+ pp = &p->hashlink; // move to next element
+ }
+ if (!found_same)
+- (void) imon.revoke(name(), dev, ino);
++ (void) monitor->revoke(name(), dev, ino);
+ }
+ }
+
+@@ -147,7 +156,7 @@
+
+ // Express interest.
+ IMon::Status s = IMon::BAD;
+- s = imon.express(name(), NULL);
++ s = monitor->express(name(), NULL);
+ if (s != IMon::OK) {
+ return true;
+ }
+@@ -248,23 +257,23 @@
+ }
+
+ void
+-Interest::imon_handler(dev_t device, ino_t inumber, int event)
++Interest::monitor_handler(dev_t device, ino_t inumber, int event)
+ {
+ assert(device || inumber);
+
+ for (Interest *p = *hashchain(device, inumber), *next = p; p; p = next)
+ { next = p->hashlink;
+ if (p->ino == inumber && p->dev == device)
+- { if (event == IMon::EXEC)
++ { if (event == Monitor::EXEC)
+ { p->cur_exec_state = EXECUTING;
+ (void) p->report_exec_state();
+ }
+- else if (event == IMon::EXIT)
++ else if (event == Monitor::EXIT)
+ { p->cur_exec_state = NOT_EXECUTING;
+ (void) p->report_exec_state();
+ }
+ else
+- { assert(event == IMon::CHANGE);
++ { assert(event == Monitor::CHANGE);
+ p->scan();
+ }
+ }
+--- fam-2.7.0/config.h.in 2003-01-20 01:40:15.000000000 +0100
++++ fam-2.7.0.dnotify/config.h.in 2004-01-30 13:50:33.000000000 +0100
+@@ -180,3 +180,6 @@
+
+ /* Define to `int' if <sys/types.h> doesn't define. */
+ #undef uid_t
++
++/* Define to 1 if you have F_NOTIFY fcntl */
++#undef USE_DNOTIFY
+--- fam-2.7.0/configure.ac 2003-11-26 20:47:59.000000000 +0100
++++ fam-2.7.0.dnotify/configure.ac 2004-01-30 13:50:33.000000000 +0100
+@@ -34,7 +34,26 @@
+ AC_HEADER_DIRENT
+ AC_CHECK_HEADERS([fcntl.h limits.h linux/imon.h netinet/in.h rpc/rpc.h rpcsvc/mount.h stddef.h stdlib.h string.h syslog.h sys/imon.h sys/param.h sys/select.h sys/statvfs.h sys/syssgi.h sys/time.h sys/types.h sys/un.h unistd.h])
+
+-if test "$have_sys_imon_h"; then
++# Test for the linux dnotify fcntl
++AC_MSG_CHECKING([for dnotify fcntl support])
++AC_TRY_COMPILE([
++#define _GNU_SOURCE
++#include <fcntl.h>
++#include <unistd.h>
++],
++[ int fd = 1;
++ fcntl (fd, F_NOTIFY, (DN_MODIFY|DN_CREATE|DN_DELETE|DN_RENAME|DN_ATTRIB)
++ |DN_MULTISHOT);
++], have_dnotify=yes, have_dnotify=no)
++
++use_dnotify=false
++AC_MSG_RESULT($have_dnotify)
++
++if test "$have_dnotify"; then
++ MONITOR_FUNCS=IMonNone
++ AC_DEFINE([USE_DNOTIFY], [], [Use dnotify])
++ use_dnotify=true
++elif test "$have_sys_imon_h"; then
+ MONITOR_FUNCS=IMonIRIX
+ elif test "$have_linux_imon_h"; then
+ MONITOR_FUNCS=IMonLinux
+@@ -42,6 +62,7 @@
+ MONITOR_FUNCS=IMonNone
+ fi
+ AC_SUBST(MONITOR_FUNCS)
++AM_CONDITIONAL(USE_DNOTIFY, $use_dnotify)
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_HEADER_STDBOOL
+--- fam-2.7.0/src/IMon.h 2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/IMon.h 2004-01-30 00:00:00.000000000 +0200
+@@ -24,10 +24,7 @@
+ #define IMon_included
+
+ #include "config.h"
+-#include <sys/stat.h>
+-#include <sys/types.h>
+-
+-#include "Boolean.h"
++#include "Monitor.h"
+
+ struct stat;
+
+@@ -41,25 +38,18 @@
+ //
+ // The user of the IMon object is the Interest class.
+
+-class IMon {
++class IMon : public Monitor {
+
+ public:
+-
+- enum Status { OK = 0, BAD = -1 };
+- enum Event { EXEC, EXIT, CHANGE };
+-
+- typedef void (*EventHandler)(dev_t, ino_t, int event);
+-
+ IMon(EventHandler h);
+ ~IMon();
+
+ static bool is_active();
+
+- Status express(const char *name, struct stat *stat_return);
+- Status revoke(const char *name, dev_t dev, ino_t ino);
++ virtual Status express(const char *name, struct stat *stat_return);
++ virtual Status revoke(const char *name, dev_t dev, ino_t ino);
+
+ private:
+-
+ // Class Variables
+
+ static int imonfd;
+--- fam-2.7.0/src/Interest.h 2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/Interest.h 2004-01-30 00:00:00.000000000 +0200
+@@ -32,7 +32,7 @@
+
+ class Event;
+ class FileSystem;
+-class IMon;
++class Monitor;
+ struct stat;
+
+ // Interest -- abstract base class for filesystem entities of interest.
+@@ -74,7 +74,7 @@
+
+ // Public Class Method
+
+- static void imon_handler(dev_t, ino_t, int event);
++ static void monitor_handler(dev_t, ino_t, int event);
+
+ static void enable_xtab_verification(bool enable);
+
+@@ -121,7 +121,7 @@
+
+ // Class Variables
+
+- static IMon imon;
++ static Monitor *monitor;
+ static Interest *hashtable[HASHSIZE];
+ static bool xtab_verification;
+
+--- fam-2.7.0/src/Makefile.am 2003-01-19 13:00:17.000000000 +0100
++++ fam-2.7.0.dnotify/src/Makefile.am 2004-01-30 13:50:38.000000000 +0100
+@@ -71,7 +71,11 @@
+ main.c++ \
+ timeval.c++ \
+ timeval.h \
+- @MONITOR_FUNCS@.c++
++ Monitor.h \
++ DNotify.h \
++ DNotify.c++ \
++ @MONITOR_FUNCS@.c++
+
+-EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++
++EXTRA_famd_SOURCES = IMonIrix.c++ IMonLinux.c++ IMonNone.c++ DNotify.c++ \
++ DNotify.h Monitor.h
+
+--- fam-2.7.0/src/Monitor.h 2004-01-30 00:00:00.000000000 +0200
++++ fam-2.7.0.dnotify/src/Monitor.h 2004-01-30 00:00:00.000000000 +0200
+@@ -0,0 +1,57 @@
++// Copyright (C) 2001 Red Hat, Inc. All Rights Reserved.
++// Copyright (C) 1999 Silicon Graphics, Inc. All Rights Reserved.
++//
++// This program is free software; you can redistribute it and/or modify it
++// under the terms of version 2 of the GNU General Public License as
++// published by the Free Software Foundation.
++//
++// This program is distributed in the hope that it would be useful, but
++// WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Further, any
++// license provided herein, whether implied or otherwise, is limited to
++// this program in accordance with the express provisions of the GNU
++// General Public License. Patent licenses, if any, provided herein do not
++// apply to combinations of this program with other product or programs, or
++// any other product whatsoever. This program is distributed without any
++// warranty that the program is delivered free of the rightful claim of any
++// third person by way of infringement or the like. 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 the Free Software Foundation, Inc., 59
++// Temple Place - Suite 330, Boston MA 02111-1307, USA.
++
++#ifndef Monitor_included
++#define Monitor_included
++
++#include "config.h"
++#include <sys/stat.h>
++#include <sys/types.h>
++
++struct stat;
++
++// Monitor is an abstract baseclass for differend file monitoring
++// systems. The original system used was IMon, and the Montor API
++// is heavily influenced by that.
++// There can only be one instantiation of the Monitor object.
++//
++// The user of this object uses express() and revoke() to
++// express/revoke interest in a file to imon. There is also
++// a callback, the EventHandler. When an event comes in,
++// the EventHandler is called.
++//
++// The main implementers of the Monitor class is IMon and DNotify
++
++class Monitor {
++public:
++
++ enum Status { OK = 0, BAD = -1 };
++ enum Event { EXEC, EXIT, CHANGE };
++
++ typedef void (*EventHandler)(dev_t, ino_t, int event);
++
++ virtual Status express(const char *name, struct stat *stat_return) = 0;
++ virtual Status revoke(const char *name, dev_t dev, ino_t ino) = 0;
++};
++
++#endif /* !Monitor_included */
diff --git a/extra/fam/fam-2.7.0-largefiles.patch b/extra/fam/fam-2.7.0-largefiles.patch
new file mode 100644
index 000000000..60de9a494
--- /dev/null
+++ b/extra/fam/fam-2.7.0-largefiles.patch
@@ -0,0 +1,8 @@
+--- fam-2.7.0/common.am 2003-01-19 06:09:08.000000000 -0600
++++ fam-2.7.0.largefile/common.am 2005-01-12 19:08:06.462113110 -0600
+@@ -1,2 +1,5 @@
+-INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\"
++INCLUDES = @FAM_INC@ -DFAM_CONF=\"@FAM_CONF@\" \
++ -D_FILE_OFFSET_BITS=64 \
++ -D_LARGEFILE64_SOURCE
++
diff --git a/extra/fam/fam-2.7.0-limits.patch b/extra/fam/fam-2.7.0-limits.patch
new file mode 100644
index 000000000..424895719
--- /dev/null
+++ b/extra/fam/fam-2.7.0-limits.patch
@@ -0,0 +1,11 @@
+--- include/fam.h.orig 2005-05-25 09:26:38.000000000 +0000
++++ include/fam.h 2005-05-25 09:27:04.000000000 +0000
+@@ -41,7 +41,7 @@
+ *****************************************************************************/
+
+ /* For NAME_MAX - maximum # of chars in a filename */
+-#include "limits.h"
++#include <limits.h>
+
+
+
diff --git a/extra/farsight2/PKGBUILD b/extra/farsight2/PKGBUILD
new file mode 100644
index 000000000..eaa0ae4ce
--- /dev/null
+++ b/extra/farsight2/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 98160 2010-11-03 23:14:07Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: William Díaz <wdiaz@archlinux.us>
+
+pkgname=farsight2
+pkgver=0.0.22
+pkgrel=1
+pkgdesc="Audio/Video conference software for Instant Messengers"
+arch=('i686' 'x86_64')
+url="http://farsight.freedesktop.org"
+license=('LGPL')
+depends=('libnice>=0.0.13' 'gstreamer0.10-base-plugins>=0.10.30' 'gstreamer0.10-python>=0.10.18' 'python2' 'pygobject>=2.26.0')
+optdepends=('gstreamer0.10-good-plugins: for RTP plugin'
+ 'gstreamer0.10-bad-plugins: for RTP plugin')
+options=('!libtool' '!emptydirs')
+source=(http://farsight.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e1f540cf3ebab06c3d7db1f46b44ac88')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's#python-config#python2-config#' python/Makefile.in
+ # this makefile is broken
+ sed -i -e 's# # #' docs/libs/Makefile.in
+ ./configure --prefix=/usr \
+ --with-package-name='Arch Linux farsight2 package' \
+ --with-package-origin='http://archlinux.org' \
+ --disable-static \
+ --disable-valgrind \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/fastjar/PKGBUILD b/extra/fastjar/PKGBUILD
new file mode 100644
index 000000000..42e6dfe2f
--- /dev/null
+++ b/extra/fastjar/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97252 2010-10-28 03:59:06Z allan $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=fastjar
+pkgver=0.97
+pkgrel=2
+pkgdesc="Sun java jar compatible archiver"
+arch=('i686' 'x86_64')
+url="http://savannah.nongnu.org/projects/fastjar"
+license=('GPL')
+depends=('zlib' 'texinfo')
+install=fastjar.install
+source=(http://download.savannah.nongnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2659f09c2e43ef8b7d4406321753f1b2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/fastjar/fastjar.install b/extra/fastjar/fastjar.install
new file mode 100644
index 000000000..b1b973c9d
--- /dev/null
+++ b/extra/fastjar/fastjar.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file=fastjar.info.gz
+
+post_install() {
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/fbida/ChangeLog b/extra/fbida/ChangeLog
new file mode 100644
index 000000000..7e67308c0
--- /dev/null
+++ b/extra/fbida/ChangeLog
@@ -0,0 +1,21 @@
+2010-03-02 Eric Belanger <eric@archlinux.org>
+
+ * fbida 2.07-5
+ * Fixed exiftran (close FS#18302)
+ * Removed backup array
+
+2010-01-17 Eric Belanger <eric@archlinux.org>
+
+ * fbida 2.07-4
+ * Rebuilt for libpng 1.4 and libjpeg 8
+
+2009-08-10 Eric Belanger <eric@archlinux.org>
+
+ * fbida 2.07-3
+ * Fixed compatibility problem with libjpeg 7 (close FS#15875)
+
+2009-07-01 Eric Belanger <eric@archlinux.org>
+
+ * fbida 2.07-2
+ * Rebuild against libjpeg 7
+ * Added ChangeLog
diff --git a/extra/fbida/PKGBUILD b/extra/fbida/PKGBUILD
new file mode 100644
index 000000000..cde1743e8
--- /dev/null
+++ b/extra/fbida/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 70970 2010-03-02 20:48:52Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fbida
+pkgver=2.07
+pkgrel=5
+pkgdesc="Few applications to display and elementary edit images: fbi, fbgs, ida, exiftran"
+arch=('i686' 'x86_64')
+url="http://linux.bytesex.org/fbida/"
+license=('GPL2')
+depends=('giflib' 'libtiff' 'libjpeg' 'libexif' 'lesstif' 'libxpm' 'libpng' 'libx11' 'libxext' 'fontconfig')
+optdepends=('ghostscript: to use fbgs')
+replaces=('fbi')
+provides=('fbi')
+source=(http://dl.bytesex.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz libpng-1.4.patch \
+ transupp.h transupp.c jinclude.h)
+md5sums=('3e05910fb7c1d9b2bd3e272d96db069c' '31b5a5318c16808d55403e06110ff5a5'\
+ '785d928f4ff04e06bd2c8acc6b6c5e7b' 'f2d6f905c4ce6098f6c1af77a0a4eef8'\
+ 'dbde79bc104a2caa9316cc2a9df7fd25')
+sha1sums=('4758178299e09d5251b9cf20337a81cc20553d45' 'dcb39c82e7e6f4d7d6e8d0e95c661f83a2655c7f'\
+ '5028318704fbc8f476f858d24b39cf454a16fe85' '0d9f58703d2eb4ce2d11f42a1ad01d958efe3312'\
+ '31ab682733b096b3a98c0a35f9b54a7936e480d5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../libpng-1.4.patch || return 1
+
+# Using source code from libjpeg 8a
+ rm jpeg/*
+ cp ${srcdir}/transupp.h jpeg/
+ cp ${srcdir}/transupp.c jpeg/
+ cp ${srcdir}/jinclude.h jpeg/
+
+ make Make.config || return 1
+ for config in HAVE_LIB{SANE,CURL,LIRC}; do
+ sed -i "s/$config.*/$config := no/" Make.config || return 1
+ done
+ make CC=gcc || return 1
+ make DESTDIR="${pkgdir}" prefix=/usr install || return 1
+}
+
diff --git a/extra/fbida/jinclude.h b/extra/fbida/jinclude.h
new file mode 100644
index 000000000..0a4f15146
--- /dev/null
+++ b/extra/fbida/jinclude.h
@@ -0,0 +1,91 @@
+/*
+ * jinclude.h
+ *
+ * Copyright (C) 1991-1994, Thomas G. Lane.
+ * This file is part of the Independent JPEG Group's software.
+ * For conditions of distribution and use, see the accompanying README file.
+ *
+ * This file exists to provide a single place to fix any problems with
+ * including the wrong system include files. (Common problems are taken
+ * care of by the standard jconfig symbols, but on really weird systems
+ * you may have to edit this file.)
+ *
+ * NOTE: this file is NOT intended to be included by applications using the
+ * JPEG library. Most applications need only include jpeglib.h.
+ */
+
+
+/* Include auto-config file to find out which system include files we need. */
+
+#include "jconfig.h" /* auto configuration options */
+#define JCONFIG_INCLUDED /* so that jpeglib.h doesn't do it again */
+
+/*
+ * We need the NULL macro and size_t typedef.
+ * On an ANSI-conforming system it is sufficient to include <stddef.h>.
+ * Otherwise, we get them from <stdlib.h> or <stdio.h>; we may have to
+ * pull in <sys/types.h> as well.
+ * Note that the core JPEG library does not require <stdio.h>;
+ * only the default error handler and data source/destination modules do.
+ * But we must pull it in because of the references to FILE in jpeglib.h.
+ * You can remove those references if you want to compile without <stdio.h>.
+ */
+
+#ifdef HAVE_STDDEF_H
+#include <stddef.h>
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef NEED_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#include <stdio.h>
+
+/*
+ * We need memory copying and zeroing functions, plus strncpy().
+ * ANSI and System V implementations declare these in <string.h>.
+ * BSD doesn't have the mem() functions, but it does have bcopy()/bzero().
+ * Some systems may declare memset and memcpy in <memory.h>.
+ *
+ * NOTE: we assume the size parameters to these functions are of type size_t.
+ * Change the casts in these macros if not!
+ */
+
+#ifdef NEED_BSD_STRINGS
+
+#include <strings.h>
+#define MEMZERO(target,size) bzero((void *)(target), (size_t)(size))
+#define MEMCOPY(dest,src,size) bcopy((const void *)(src), (void *)(dest), (size_t)(size))
+
+#else /* not BSD, assume ANSI/SysV string lib */
+
+#include <string.h>
+#define MEMZERO(target,size) memset((void *)(target), 0, (size_t)(size))
+#define MEMCOPY(dest,src,size) memcpy((void *)(dest), (const void *)(src), (size_t)(size))
+
+#endif
+
+/*
+ * In ANSI C, and indeed any rational implementation, size_t is also the
+ * type returned by sizeof(). However, it seems there are some irrational
+ * implementations out there, in which sizeof() returns an int even though
+ * size_t is defined as long or unsigned long. To ensure consistent results
+ * we always use this SIZEOF() macro in place of using sizeof() directly.
+ */
+
+#define SIZEOF(object) ((size_t) sizeof(object))
+
+/*
+ * The modules that use fread() and fwrite() always invoke them through
+ * these macros. On some systems you may need to twiddle the argument casts.
+ * CAUTION: argument order is different from underlying functions!
+ */
+
+#define JFREAD(file,buf,sizeofbuf) \
+ ((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
+#define JFWRITE(file,buf,sizeofbuf) \
+ ((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file)))
diff --git a/extra/fbida/libpng-1.4.patch b/extra/fbida/libpng-1.4.patch
new file mode 100644
index 000000000..f8a80d4b2
--- /dev/null
+++ b/extra/fbida/libpng-1.4.patch
@@ -0,0 +1,17 @@
+diff -Naur fbida-2.07-orig/rd/read-png.c fbida-2.07/rd/read-png.c
+--- fbida-2.07-orig/rd/read-png.c 2010-01-18 00:02:02.000000000 -0500
++++ fbida-2.07/rd/read-png.c 2010-01-18 00:06:09.000000000 -0500
+@@ -69,8 +69,11 @@
+ if (h->color_type == PNG_COLOR_TYPE_PALETTE)
+ png_set_palette_to_rgb(h->png);
+ if (h->color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
+- png_set_gray_1_2_4_to_8(h->png);
+-
++#if PNG_LIBPNG_VER < 10400
++ png_set_gray_1_2_4_to_8(h->png);
++#else
++ png_set_expand_gray_1_2_4_to_8(h->png);
++#endif
+ if (png_get_bKGD(h->png, h->info, &file_bg)) {
+ png_set_background(h->png,file_bg,PNG_BACKGROUND_GAMMA_FILE,1,1.0);
+ } else {
diff --git a/extra/fbida/transupp.c b/extra/fbida/transupp.c
new file mode 100644
index 000000000..406054482
--- /dev/null
+++ b/extra/fbida/transupp.c
@@ -0,0 +1,1583 @@
+/*
+ * transupp.c
+ *
+ * Copyright (C) 1997-2009, Thomas G. Lane, Guido Vollbeding.
+ * This file is part of the Independent JPEG Group's software.
+ * For conditions of distribution and use, see the accompanying README file.
+ *
+ * This file contains image transformation routines and other utility code
+ * used by the jpegtran sample application. These are NOT part of the core
+ * JPEG library. But we keep these routines separate from jpegtran.c to
+ * ease the task of maintaining jpegtran-like programs that have other user
+ * interfaces.
+ */
+
+/* Although this file really shouldn't have access to the library internals,
+ * it's helpful to let it call jround_up() and jcopy_block_row().
+ */
+#define JPEG_INTERNALS
+
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "transupp.h" /* My own external interface */
+#include <ctype.h> /* to declare isdigit() */
+
+
+#if TRANSFORMS_SUPPORTED
+
+/*
+ * Lossless image transformation routines. These routines work on DCT
+ * coefficient arrays and thus do not require any lossy decompression
+ * or recompression of the image.
+ * Thanks to Guido Vollbeding for the initial design and code of this feature,
+ * and to Ben Jackson for introducing the cropping feature.
+ *
+ * Horizontal flipping is done in-place, using a single top-to-bottom
+ * pass through the virtual source array. It will thus be much the
+ * fastest option for images larger than main memory.
+ *
+ * The other routines require a set of destination virtual arrays, so they
+ * need twice as much memory as jpegtran normally does. The destination
+ * arrays are always written in normal scan order (top to bottom) because
+ * the virtual array manager expects this. The source arrays will be scanned
+ * in the corresponding order, which means multiple passes through the source
+ * arrays for most of the transforms. That could result in much thrashing
+ * if the image is larger than main memory.
+ *
+ * If cropping or trimming is involved, the destination arrays may be smaller
+ * than the source arrays. Note it is not possible to do horizontal flip
+ * in-place when a nonzero Y crop offset is specified, since we'd have to move
+ * data from one block row to another but the virtual array manager doesn't
+ * guarantee we can touch more than one row at a time. So in that case,
+ * we have to use a separate destination array.
+ *
+ * Some notes about the operating environment of the individual transform
+ * routines:
+ * 1. Both the source and destination virtual arrays are allocated from the
+ * source JPEG object, and therefore should be manipulated by calling the
+ * source's memory manager.
+ * 2. The destination's component count should be used. It may be smaller
+ * than the source's when forcing to grayscale.
+ * 3. Likewise the destination's sampling factors should be used. When
+ * forcing to grayscale the destination's sampling factors will be all 1,
+ * and we may as well take that as the effective iMCU size.
+ * 4. When "trim" is in effect, the destination's dimensions will be the
+ * trimmed values but the source's will be untrimmed.
+ * 5. When "crop" is in effect, the destination's dimensions will be the
+ * cropped values but the source's will be uncropped. Each transform
+ * routine is responsible for picking up source data starting at the
+ * correct X and Y offset for the crop region. (The X and Y offsets
+ * passed to the transform routines are measured in iMCU blocks of the
+ * destination.)
+ * 6. All the routines assume that the source and destination buffers are
+ * padded out to a full iMCU boundary. This is true, although for the
+ * source buffer it is an undocumented property of jdcoefct.c.
+ */
+
+
+LOCAL(void)
+do_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* Crop. This is only used when no rotate/flip is requested with the crop. */
+{
+ JDIMENSION dst_blk_y, x_crop_blocks, y_crop_blocks;
+ int ci, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ jpeg_component_info *compptr;
+
+ /* We simply have to copy the right amount of data (the destination's
+ * image size) starting at the given X and Y offsets in the source.
+ */
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_y + y_crop_blocks,
+ (JDIMENSION) compptr->v_samp_factor, FALSE);
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ jcopy_block_row(src_buffer[offset_y] + x_crop_blocks,
+ dst_buffer[offset_y],
+ compptr->width_in_blocks);
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_flip_h_no_crop (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays)
+/* Horizontal flip; done in-place, so no separate dest array is required.
+ * NB: this only works when y_crop_offset is zero.
+ */
+{
+ JDIMENSION MCU_cols, comp_width, blk_x, blk_y, x_crop_blocks;
+ int ci, k, offset_y;
+ JBLOCKARRAY buffer;
+ JCOEFPTR ptr1, ptr2;
+ JCOEF temp1, temp2;
+ jpeg_component_info *compptr;
+
+ /* Horizontal mirroring of DCT blocks is accomplished by swapping
+ * pairs of blocks in-place. Within a DCT block, we perform horizontal
+ * mirroring by changing the signs of odd-numbered columns.
+ * Partial iMCUs at the right edge are left untouched.
+ */
+ MCU_cols = srcinfo->output_width /
+ (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size);
+
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ comp_width = MCU_cols * compptr->h_samp_factor;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ for (blk_y = 0; blk_y < compptr->height_in_blocks;
+ blk_y += compptr->v_samp_factor) {
+ buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci], blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ /* Do the mirroring */
+ for (blk_x = 0; blk_x * 2 < comp_width; blk_x++) {
+ ptr1 = buffer[offset_y][blk_x];
+ ptr2 = buffer[offset_y][comp_width - blk_x - 1];
+ /* this unrolled loop doesn't need to know which row it's on... */
+ for (k = 0; k < DCTSIZE2; k += 2) {
+ temp1 = *ptr1; /* swap even column */
+ temp2 = *ptr2;
+ *ptr1++ = temp2;
+ *ptr2++ = temp1;
+ temp1 = *ptr1; /* swap odd column with sign change */
+ temp2 = *ptr2;
+ *ptr1++ = -temp2;
+ *ptr2++ = -temp1;
+ }
+ }
+ if (x_crop_blocks > 0) {
+ /* Now left-justify the portion of the data to be kept.
+ * We can't use a single jcopy_block_row() call because that routine
+ * depends on memcpy(), whose behavior is unspecified for overlapping
+ * source and destination areas. Sigh.
+ */
+ for (blk_x = 0; blk_x < compptr->width_in_blocks; blk_x++) {
+ jcopy_block_row(buffer[offset_y] + blk_x + x_crop_blocks,
+ buffer[offset_y] + blk_x,
+ (JDIMENSION) 1);
+ }
+ }
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_flip_h (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* Horizontal flip in general cropping case */
+{
+ JDIMENSION MCU_cols, comp_width, dst_blk_x, dst_blk_y;
+ JDIMENSION x_crop_blocks, y_crop_blocks;
+ int ci, k, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ JBLOCKROW src_row_ptr, dst_row_ptr;
+ JCOEFPTR src_ptr, dst_ptr;
+ jpeg_component_info *compptr;
+
+ /* Here we must output into a separate array because we can't touch
+ * different rows of a single virtual array simultaneously. Otherwise,
+ * this is essentially the same as the routine above.
+ */
+ MCU_cols = srcinfo->output_width /
+ (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size);
+
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ comp_width = MCU_cols * compptr->h_samp_factor;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_y + y_crop_blocks,
+ (JDIMENSION) compptr->v_samp_factor, FALSE);
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ dst_row_ptr = dst_buffer[offset_y];
+ src_row_ptr = src_buffer[offset_y];
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) {
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Do the mirrorable blocks */
+ dst_ptr = dst_row_ptr[dst_blk_x];
+ src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1];
+ /* this unrolled loop doesn't need to know which row it's on... */
+ for (k = 0; k < DCTSIZE2; k += 2) {
+ *dst_ptr++ = *src_ptr++; /* copy even column */
+ *dst_ptr++ = - *src_ptr++; /* copy odd column with sign change */
+ }
+ } else {
+ /* Copy last partial block(s) verbatim */
+ jcopy_block_row(src_row_ptr + dst_blk_x + x_crop_blocks,
+ dst_row_ptr + dst_blk_x,
+ (JDIMENSION) 1);
+ }
+ }
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_flip_v (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* Vertical flip */
+{
+ JDIMENSION MCU_rows, comp_height, dst_blk_x, dst_blk_y;
+ JDIMENSION x_crop_blocks, y_crop_blocks;
+ int ci, i, j, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ JBLOCKROW src_row_ptr, dst_row_ptr;
+ JCOEFPTR src_ptr, dst_ptr;
+ jpeg_component_info *compptr;
+
+ /* We output into a separate array because we can't touch different
+ * rows of the source virtual array simultaneously. Otherwise, this
+ * is a pretty straightforward analog of horizontal flip.
+ * Within a DCT block, vertical mirroring is done by changing the signs
+ * of odd-numbered rows.
+ * Partial iMCUs at the bottom edge are copied verbatim.
+ */
+ MCU_rows = srcinfo->output_height /
+ (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size);
+
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ comp_height = MCU_rows * compptr->v_samp_factor;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ if (y_crop_blocks + dst_blk_y < comp_height) {
+ /* Row is within the mirrorable area. */
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ comp_height - y_crop_blocks - dst_blk_y -
+ (JDIMENSION) compptr->v_samp_factor,
+ (JDIMENSION) compptr->v_samp_factor, FALSE);
+ } else {
+ /* Bottom-edge blocks will be copied verbatim. */
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_y + y_crop_blocks,
+ (JDIMENSION) compptr->v_samp_factor, FALSE);
+ }
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ if (y_crop_blocks + dst_blk_y < comp_height) {
+ /* Row is within the mirrorable area. */
+ dst_row_ptr = dst_buffer[offset_y];
+ src_row_ptr = src_buffer[compptr->v_samp_factor - offset_y - 1];
+ src_row_ptr += x_crop_blocks;
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
+ dst_blk_x++) {
+ dst_ptr = dst_row_ptr[dst_blk_x];
+ src_ptr = src_row_ptr[dst_blk_x];
+ for (i = 0; i < DCTSIZE; i += 2) {
+ /* copy even row */
+ for (j = 0; j < DCTSIZE; j++)
+ *dst_ptr++ = *src_ptr++;
+ /* copy odd row with sign change */
+ for (j = 0; j < DCTSIZE; j++)
+ *dst_ptr++ = - *src_ptr++;
+ }
+ }
+ } else {
+ /* Just copy row verbatim. */
+ jcopy_block_row(src_buffer[offset_y] + x_crop_blocks,
+ dst_buffer[offset_y],
+ compptr->width_in_blocks);
+ }
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_transpose (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* Transpose source into destination */
+{
+ JDIMENSION dst_blk_x, dst_blk_y, x_crop_blocks, y_crop_blocks;
+ int ci, i, j, offset_x, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ JCOEFPTR src_ptr, dst_ptr;
+ jpeg_component_info *compptr;
+
+ /* Transposing pixels within a block just requires transposing the
+ * DCT coefficients.
+ * Partial iMCUs at the edges require no special treatment; we simply
+ * process all the available DCT blocks for every component.
+ */
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
+ dst_blk_x += compptr->h_samp_factor) {
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_x + x_crop_blocks,
+ (JDIMENSION) compptr->h_samp_factor, FALSE);
+ for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
+ dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
+ src_ptr = src_buffer[offset_x][dst_blk_y + offset_y + y_crop_blocks];
+ for (i = 0; i < DCTSIZE; i++)
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ }
+ }
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_rot_90 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* 90 degree rotation is equivalent to
+ * 1. Transposing the image;
+ * 2. Horizontal mirroring.
+ * These two steps are merged into a single processing routine.
+ */
+{
+ JDIMENSION MCU_cols, comp_width, dst_blk_x, dst_blk_y;
+ JDIMENSION x_crop_blocks, y_crop_blocks;
+ int ci, i, j, offset_x, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ JCOEFPTR src_ptr, dst_ptr;
+ jpeg_component_info *compptr;
+
+ /* Because of the horizontal mirror step, we can't process partial iMCUs
+ * at the (output) right edge properly. They just get transposed and
+ * not mirrored.
+ */
+ MCU_cols = srcinfo->output_height /
+ (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size);
+
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ comp_width = MCU_cols * compptr->h_samp_factor;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
+ dst_blk_x += compptr->h_samp_factor) {
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Block is within the mirrorable area. */
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ comp_width - x_crop_blocks - dst_blk_x -
+ (JDIMENSION) compptr->h_samp_factor,
+ (JDIMENSION) compptr->h_samp_factor, FALSE);
+ } else {
+ /* Edge blocks are transposed but not mirrored. */
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_x + x_crop_blocks,
+ (JDIMENSION) compptr->h_samp_factor, FALSE);
+ }
+ for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
+ dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Block is within the mirrorable area. */
+ src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1]
+ [dst_blk_y + offset_y + y_crop_blocks];
+ for (i = 0; i < DCTSIZE; i++) {
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ i++;
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
+ }
+ } else {
+ /* Edge blocks are transposed but not mirrored. */
+ src_ptr = src_buffer[offset_x]
+ [dst_blk_y + offset_y + y_crop_blocks];
+ for (i = 0; i < DCTSIZE; i++)
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_rot_270 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* 270 degree rotation is equivalent to
+ * 1. Horizontal mirroring;
+ * 2. Transposing the image.
+ * These two steps are merged into a single processing routine.
+ */
+{
+ JDIMENSION MCU_rows, comp_height, dst_blk_x, dst_blk_y;
+ JDIMENSION x_crop_blocks, y_crop_blocks;
+ int ci, i, j, offset_x, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ JCOEFPTR src_ptr, dst_ptr;
+ jpeg_component_info *compptr;
+
+ /* Because of the horizontal mirror step, we can't process partial iMCUs
+ * at the (output) bottom edge properly. They just get transposed and
+ * not mirrored.
+ */
+ MCU_rows = srcinfo->output_width /
+ (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size);
+
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ comp_height = MCU_rows * compptr->v_samp_factor;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
+ dst_blk_x += compptr->h_samp_factor) {
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_x + x_crop_blocks,
+ (JDIMENSION) compptr->h_samp_factor, FALSE);
+ for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
+ dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
+ if (y_crop_blocks + dst_blk_y < comp_height) {
+ /* Block is within the mirrorable area. */
+ src_ptr = src_buffer[offset_x]
+ [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1];
+ for (i = 0; i < DCTSIZE; i++) {
+ for (j = 0; j < DCTSIZE; j++) {
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ j++;
+ dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
+ }
+ }
+ } else {
+ /* Edge blocks are transposed but not mirrored. */
+ src_ptr = src_buffer[offset_x]
+ [dst_blk_y + offset_y + y_crop_blocks];
+ for (i = 0; i < DCTSIZE; i++)
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_rot_180 (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* 180 degree rotation is equivalent to
+ * 1. Vertical mirroring;
+ * 2. Horizontal mirroring.
+ * These two steps are merged into a single processing routine.
+ */
+{
+ JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y;
+ JDIMENSION x_crop_blocks, y_crop_blocks;
+ int ci, i, j, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ JBLOCKROW src_row_ptr, dst_row_ptr;
+ JCOEFPTR src_ptr, dst_ptr;
+ jpeg_component_info *compptr;
+
+ MCU_cols = srcinfo->output_width /
+ (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size);
+ MCU_rows = srcinfo->output_height /
+ (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size);
+
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ comp_width = MCU_cols * compptr->h_samp_factor;
+ comp_height = MCU_rows * compptr->v_samp_factor;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ if (y_crop_blocks + dst_blk_y < comp_height) {
+ /* Row is within the vertically mirrorable area. */
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ comp_height - y_crop_blocks - dst_blk_y -
+ (JDIMENSION) compptr->v_samp_factor,
+ (JDIMENSION) compptr->v_samp_factor, FALSE);
+ } else {
+ /* Bottom-edge rows are only mirrored horizontally. */
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_y + y_crop_blocks,
+ (JDIMENSION) compptr->v_samp_factor, FALSE);
+ }
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ dst_row_ptr = dst_buffer[offset_y];
+ if (y_crop_blocks + dst_blk_y < comp_height) {
+ /* Row is within the mirrorable area. */
+ src_row_ptr = src_buffer[compptr->v_samp_factor - offset_y - 1];
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) {
+ dst_ptr = dst_row_ptr[dst_blk_x];
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Process the blocks that can be mirrored both ways. */
+ src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1];
+ for (i = 0; i < DCTSIZE; i += 2) {
+ /* For even row, negate every odd column. */
+ for (j = 0; j < DCTSIZE; j += 2) {
+ *dst_ptr++ = *src_ptr++;
+ *dst_ptr++ = - *src_ptr++;
+ }
+ /* For odd row, negate every even column. */
+ for (j = 0; j < DCTSIZE; j += 2) {
+ *dst_ptr++ = - *src_ptr++;
+ *dst_ptr++ = *src_ptr++;
+ }
+ }
+ } else {
+ /* Any remaining right-edge blocks are only mirrored vertically. */
+ src_ptr = src_row_ptr[x_crop_blocks + dst_blk_x];
+ for (i = 0; i < DCTSIZE; i += 2) {
+ for (j = 0; j < DCTSIZE; j++)
+ *dst_ptr++ = *src_ptr++;
+ for (j = 0; j < DCTSIZE; j++)
+ *dst_ptr++ = - *src_ptr++;
+ }
+ }
+ }
+ } else {
+ /* Remaining rows are just mirrored horizontally. */
+ src_row_ptr = src_buffer[offset_y];
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks; dst_blk_x++) {
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Process the blocks that can be mirrored. */
+ dst_ptr = dst_row_ptr[dst_blk_x];
+ src_ptr = src_row_ptr[comp_width - x_crop_blocks - dst_blk_x - 1];
+ for (i = 0; i < DCTSIZE2; i += 2) {
+ *dst_ptr++ = *src_ptr++;
+ *dst_ptr++ = - *src_ptr++;
+ }
+ } else {
+ /* Any remaining right-edge blocks are only copied. */
+ jcopy_block_row(src_row_ptr + dst_blk_x + x_crop_blocks,
+ dst_row_ptr + dst_blk_x,
+ (JDIMENSION) 1);
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+LOCAL(void)
+do_transverse (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JDIMENSION x_crop_offset, JDIMENSION y_crop_offset,
+ jvirt_barray_ptr *src_coef_arrays,
+ jvirt_barray_ptr *dst_coef_arrays)
+/* Transverse transpose is equivalent to
+ * 1. 180 degree rotation;
+ * 2. Transposition;
+ * or
+ * 1. Horizontal mirroring;
+ * 2. Transposition;
+ * 3. Horizontal mirroring.
+ * These steps are merged into a single processing routine.
+ */
+{
+ JDIMENSION MCU_cols, MCU_rows, comp_width, comp_height, dst_blk_x, dst_blk_y;
+ JDIMENSION x_crop_blocks, y_crop_blocks;
+ int ci, i, j, offset_x, offset_y;
+ JBLOCKARRAY src_buffer, dst_buffer;
+ JCOEFPTR src_ptr, dst_ptr;
+ jpeg_component_info *compptr;
+
+ MCU_cols = srcinfo->output_height /
+ (dstinfo->max_h_samp_factor * dstinfo->min_DCT_h_scaled_size);
+ MCU_rows = srcinfo->output_width /
+ (dstinfo->max_v_samp_factor * dstinfo->min_DCT_v_scaled_size);
+
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ comp_width = MCU_cols * compptr->h_samp_factor;
+ comp_height = MCU_rows * compptr->v_samp_factor;
+ x_crop_blocks = x_crop_offset * compptr->h_samp_factor;
+ y_crop_blocks = y_crop_offset * compptr->v_samp_factor;
+ for (dst_blk_y = 0; dst_blk_y < compptr->height_in_blocks;
+ dst_blk_y += compptr->v_samp_factor) {
+ dst_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, dst_coef_arrays[ci], dst_blk_y,
+ (JDIMENSION) compptr->v_samp_factor, TRUE);
+ for (offset_y = 0; offset_y < compptr->v_samp_factor; offset_y++) {
+ for (dst_blk_x = 0; dst_blk_x < compptr->width_in_blocks;
+ dst_blk_x += compptr->h_samp_factor) {
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Block is within the mirrorable area. */
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ comp_width - x_crop_blocks - dst_blk_x -
+ (JDIMENSION) compptr->h_samp_factor,
+ (JDIMENSION) compptr->h_samp_factor, FALSE);
+ } else {
+ src_buffer = (*srcinfo->mem->access_virt_barray)
+ ((j_common_ptr) srcinfo, src_coef_arrays[ci],
+ dst_blk_x + x_crop_blocks,
+ (JDIMENSION) compptr->h_samp_factor, FALSE);
+ }
+ for (offset_x = 0; offset_x < compptr->h_samp_factor; offset_x++) {
+ dst_ptr = dst_buffer[offset_y][dst_blk_x + offset_x];
+ if (y_crop_blocks + dst_blk_y < comp_height) {
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Block is within the mirrorable area. */
+ src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1]
+ [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1];
+ for (i = 0; i < DCTSIZE; i++) {
+ for (j = 0; j < DCTSIZE; j++) {
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ j++;
+ dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
+ }
+ i++;
+ for (j = 0; j < DCTSIZE; j++) {
+ dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
+ j++;
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ }
+ }
+ } else {
+ /* Right-edge blocks are mirrored in y only */
+ src_ptr = src_buffer[offset_x]
+ [comp_height - y_crop_blocks - dst_blk_y - offset_y - 1];
+ for (i = 0; i < DCTSIZE; i++) {
+ for (j = 0; j < DCTSIZE; j++) {
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ j++;
+ dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
+ }
+ }
+ }
+ } else {
+ if (x_crop_blocks + dst_blk_x < comp_width) {
+ /* Bottom-edge blocks are mirrored in x only */
+ src_ptr = src_buffer[compptr->h_samp_factor - offset_x - 1]
+ [dst_blk_y + offset_y + y_crop_blocks];
+ for (i = 0; i < DCTSIZE; i++) {
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ i++;
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = -src_ptr[i*DCTSIZE+j];
+ }
+ } else {
+ /* At lower right corner, just transpose, no mirroring */
+ src_ptr = src_buffer[offset_x]
+ [dst_blk_y + offset_y + y_crop_blocks];
+ for (i = 0; i < DCTSIZE; i++)
+ for (j = 0; j < DCTSIZE; j++)
+ dst_ptr[j*DCTSIZE+i] = src_ptr[i*DCTSIZE+j];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+/* Parse an unsigned integer: subroutine for jtransform_parse_crop_spec.
+ * Returns TRUE if valid integer found, FALSE if not.
+ * *strptr is advanced over the digit string, and *result is set to its value.
+ */
+
+LOCAL(boolean)
+jt_read_integer (const char ** strptr, JDIMENSION * result)
+{
+ const char * ptr = *strptr;
+ JDIMENSION val = 0;
+
+ for (; isdigit(*ptr); ptr++) {
+ val = val * 10 + (JDIMENSION) (*ptr - '0');
+ }
+ *result = val;
+ if (ptr == *strptr)
+ return FALSE; /* oops, no digits */
+ *strptr = ptr;
+ return TRUE;
+}
+
+
+/* Parse a crop specification (written in X11 geometry style).
+ * The routine returns TRUE if the spec string is valid, FALSE if not.
+ *
+ * The crop spec string should have the format
+ * <width>x<height>{+-}<xoffset>{+-}<yoffset>
+ * where width, height, xoffset, and yoffset are unsigned integers.
+ * Each of the elements can be omitted to indicate a default value.
+ * (A weakness of this style is that it is not possible to omit xoffset
+ * while specifying yoffset, since they look alike.)
+ *
+ * This code is loosely based on XParseGeometry from the X11 distribution.
+ */
+
+GLOBAL(boolean)
+jtransform_parse_crop_spec (jpeg_transform_info *info, const char *spec)
+{
+ info->crop = FALSE;
+ info->crop_width_set = JCROP_UNSET;
+ info->crop_height_set = JCROP_UNSET;
+ info->crop_xoffset_set = JCROP_UNSET;
+ info->crop_yoffset_set = JCROP_UNSET;
+
+ if (isdigit(*spec)) {
+ /* fetch width */
+ if (! jt_read_integer(&spec, &info->crop_width))
+ return FALSE;
+ info->crop_width_set = JCROP_POS;
+ }
+ if (*spec == 'x' || *spec == 'X') {
+ /* fetch height */
+ spec++;
+ if (! jt_read_integer(&spec, &info->crop_height))
+ return FALSE;
+ info->crop_height_set = JCROP_POS;
+ }
+ if (*spec == '+' || *spec == '-') {
+ /* fetch xoffset */
+ info->crop_xoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS;
+ spec++;
+ if (! jt_read_integer(&spec, &info->crop_xoffset))
+ return FALSE;
+ }
+ if (*spec == '+' || *spec == '-') {
+ /* fetch yoffset */
+ info->crop_yoffset_set = (*spec == '-') ? JCROP_NEG : JCROP_POS;
+ spec++;
+ if (! jt_read_integer(&spec, &info->crop_yoffset))
+ return FALSE;
+ }
+ /* We had better have gotten to the end of the string. */
+ if (*spec != '\0')
+ return FALSE;
+ info->crop = TRUE;
+ return TRUE;
+}
+
+
+/* Trim off any partial iMCUs on the indicated destination edge */
+
+LOCAL(void)
+trim_right_edge (jpeg_transform_info *info, JDIMENSION full_width)
+{
+ JDIMENSION MCU_cols;
+
+ MCU_cols = info->output_width / info->iMCU_sample_width;
+ if (MCU_cols > 0 && info->x_crop_offset + MCU_cols ==
+ full_width / info->iMCU_sample_width)
+ info->output_width = MCU_cols * info->iMCU_sample_width;
+}
+
+LOCAL(void)
+trim_bottom_edge (jpeg_transform_info *info, JDIMENSION full_height)
+{
+ JDIMENSION MCU_rows;
+
+ MCU_rows = info->output_height / info->iMCU_sample_height;
+ if (MCU_rows > 0 && info->y_crop_offset + MCU_rows ==
+ full_height / info->iMCU_sample_height)
+ info->output_height = MCU_rows * info->iMCU_sample_height;
+}
+
+
+/* Request any required workspace.
+ *
+ * This routine figures out the size that the output image will be
+ * (which implies that all the transform parameters must be set before
+ * it is called).
+ *
+ * We allocate the workspace virtual arrays from the source decompression
+ * object, so that all the arrays (both the original data and the workspace)
+ * will be taken into account while making memory management decisions.
+ * Hence, this routine must be called after jpeg_read_header (which reads
+ * the image dimensions) and before jpeg_read_coefficients (which realizes
+ * the source's virtual arrays).
+ *
+ * This function returns FALSE right away if -perfect is given
+ * and transformation is not perfect. Otherwise returns TRUE.
+ */
+
+GLOBAL(boolean)
+jtransform_request_workspace (j_decompress_ptr srcinfo,
+ jpeg_transform_info *info)
+{
+ jvirt_barray_ptr *coef_arrays;
+ boolean need_workspace, transpose_it;
+ jpeg_component_info *compptr;
+ JDIMENSION xoffset, yoffset;
+ JDIMENSION width_in_iMCUs, height_in_iMCUs;
+ JDIMENSION width_in_blocks, height_in_blocks;
+ int ci, h_samp_factor, v_samp_factor;
+
+ /* Determine number of components in output image */
+ if (info->force_grayscale &&
+ srcinfo->jpeg_color_space == JCS_YCbCr &&
+ srcinfo->num_components == 3)
+ /* We'll only process the first component */
+ info->num_components = 1;
+ else
+ /* Process all the components */
+ info->num_components = srcinfo->num_components;
+
+ /* Compute output image dimensions and related values. */
+ jpeg_core_output_dimensions(srcinfo);
+
+ /* Return right away if -perfect is given and transformation is not perfect.
+ */
+ if (info->perfect) {
+ if (info->num_components == 1) {
+ if (!jtransform_perfect_transform(srcinfo->output_width,
+ srcinfo->output_height,
+ srcinfo->min_DCT_h_scaled_size,
+ srcinfo->min_DCT_v_scaled_size,
+ info->transform))
+ return FALSE;
+ } else {
+ if (!jtransform_perfect_transform(srcinfo->output_width,
+ srcinfo->output_height,
+ srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size,
+ srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size,
+ info->transform))
+ return FALSE;
+ }
+ }
+
+ /* If there is only one output component, force the iMCU size to be 1;
+ * else use the source iMCU size. (This allows us to do the right thing
+ * when reducing color to grayscale, and also provides a handy way of
+ * cleaning up "funny" grayscale images whose sampling factors are not 1x1.)
+ */
+ switch (info->transform) {
+ case JXFORM_TRANSPOSE:
+ case JXFORM_TRANSVERSE:
+ case JXFORM_ROT_90:
+ case JXFORM_ROT_270:
+ info->output_width = srcinfo->output_height;
+ info->output_height = srcinfo->output_width;
+ if (info->num_components == 1) {
+ info->iMCU_sample_width = srcinfo->min_DCT_v_scaled_size;
+ info->iMCU_sample_height = srcinfo->min_DCT_h_scaled_size;
+ } else {
+ info->iMCU_sample_width =
+ srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size;
+ info->iMCU_sample_height =
+ srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size;
+ }
+ break;
+ default:
+ info->output_width = srcinfo->output_width;
+ info->output_height = srcinfo->output_height;
+ if (info->num_components == 1) {
+ info->iMCU_sample_width = srcinfo->min_DCT_h_scaled_size;
+ info->iMCU_sample_height = srcinfo->min_DCT_v_scaled_size;
+ } else {
+ info->iMCU_sample_width =
+ srcinfo->max_h_samp_factor * srcinfo->min_DCT_h_scaled_size;
+ info->iMCU_sample_height =
+ srcinfo->max_v_samp_factor * srcinfo->min_DCT_v_scaled_size;
+ }
+ break;
+ }
+
+ /* If cropping has been requested, compute the crop area's position and
+ * dimensions, ensuring that its upper left corner falls at an iMCU boundary.
+ */
+ if (info->crop) {
+ /* Insert default values for unset crop parameters */
+ if (info->crop_xoffset_set == JCROP_UNSET)
+ info->crop_xoffset = 0; /* default to +0 */
+ if (info->crop_yoffset_set == JCROP_UNSET)
+ info->crop_yoffset = 0; /* default to +0 */
+ if (info->crop_xoffset >= info->output_width ||
+ info->crop_yoffset >= info->output_height)
+ ERREXIT(srcinfo, JERR_BAD_CROP_SPEC);
+ if (info->crop_width_set == JCROP_UNSET)
+ info->crop_width = info->output_width - info->crop_xoffset;
+ if (info->crop_height_set == JCROP_UNSET)
+ info->crop_height = info->output_height - info->crop_yoffset;
+ /* Ensure parameters are valid */
+ if (info->crop_width <= 0 || info->crop_width > info->output_width ||
+ info->crop_height <= 0 || info->crop_height > info->output_height ||
+ info->crop_xoffset > info->output_width - info->crop_width ||
+ info->crop_yoffset > info->output_height - info->crop_height)
+ ERREXIT(srcinfo, JERR_BAD_CROP_SPEC);
+ /* Convert negative crop offsets into regular offsets */
+ if (info->crop_xoffset_set == JCROP_NEG)
+ xoffset = info->output_width - info->crop_width - info->crop_xoffset;
+ else
+ xoffset = info->crop_xoffset;
+ if (info->crop_yoffset_set == JCROP_NEG)
+ yoffset = info->output_height - info->crop_height - info->crop_yoffset;
+ else
+ yoffset = info->crop_yoffset;
+ /* Now adjust so that upper left corner falls at an iMCU boundary */
+ info->output_width =
+ info->crop_width + (xoffset % info->iMCU_sample_width);
+ info->output_height =
+ info->crop_height + (yoffset % info->iMCU_sample_height);
+ /* Save x/y offsets measured in iMCUs */
+ info->x_crop_offset = xoffset / info->iMCU_sample_width;
+ info->y_crop_offset = yoffset / info->iMCU_sample_height;
+ } else {
+ info->x_crop_offset = 0;
+ info->y_crop_offset = 0;
+ }
+
+ /* Figure out whether we need workspace arrays,
+ * and if so whether they are transposed relative to the source.
+ */
+ need_workspace = FALSE;
+ transpose_it = FALSE;
+ switch (info->transform) {
+ case JXFORM_NONE:
+ if (info->x_crop_offset != 0 || info->y_crop_offset != 0)
+ need_workspace = TRUE;
+ /* No workspace needed if neither cropping nor transforming */
+ break;
+ case JXFORM_FLIP_H:
+ if (info->trim)
+ trim_right_edge(info, srcinfo->output_width);
+ if (info->y_crop_offset != 0)
+ need_workspace = TRUE;
+ /* do_flip_h_no_crop doesn't need a workspace array */
+ break;
+ case JXFORM_FLIP_V:
+ if (info->trim)
+ trim_bottom_edge(info, srcinfo->output_height);
+ /* Need workspace arrays having same dimensions as source image. */
+ need_workspace = TRUE;
+ break;
+ case JXFORM_TRANSPOSE:
+ /* transpose does NOT have to trim anything */
+ /* Need workspace arrays having transposed dimensions. */
+ need_workspace = TRUE;
+ transpose_it = TRUE;
+ break;
+ case JXFORM_TRANSVERSE:
+ if (info->trim) {
+ trim_right_edge(info, srcinfo->output_height);
+ trim_bottom_edge(info, srcinfo->output_width);
+ }
+ /* Need workspace arrays having transposed dimensions. */
+ need_workspace = TRUE;
+ transpose_it = TRUE;
+ break;
+ case JXFORM_ROT_90:
+ if (info->trim)
+ trim_right_edge(info, srcinfo->output_height);
+ /* Need workspace arrays having transposed dimensions. */
+ need_workspace = TRUE;
+ transpose_it = TRUE;
+ break;
+ case JXFORM_ROT_180:
+ if (info->trim) {
+ trim_right_edge(info, srcinfo->output_width);
+ trim_bottom_edge(info, srcinfo->output_height);
+ }
+ /* Need workspace arrays having same dimensions as source image. */
+ need_workspace = TRUE;
+ break;
+ case JXFORM_ROT_270:
+ if (info->trim)
+ trim_bottom_edge(info, srcinfo->output_width);
+ /* Need workspace arrays having transposed dimensions. */
+ need_workspace = TRUE;
+ transpose_it = TRUE;
+ break;
+ }
+
+ /* Allocate workspace if needed.
+ * Note that we allocate arrays padded out to the next iMCU boundary,
+ * so that transform routines need not worry about missing edge blocks.
+ */
+ if (need_workspace) {
+ coef_arrays = (jvirt_barray_ptr *)
+ (*srcinfo->mem->alloc_small) ((j_common_ptr) srcinfo, JPOOL_IMAGE,
+ SIZEOF(jvirt_barray_ptr) * info->num_components);
+ width_in_iMCUs = (JDIMENSION)
+ jdiv_round_up((long) info->output_width,
+ (long) info->iMCU_sample_width);
+ height_in_iMCUs = (JDIMENSION)
+ jdiv_round_up((long) info->output_height,
+ (long) info->iMCU_sample_height);
+ for (ci = 0; ci < info->num_components; ci++) {
+ compptr = srcinfo->comp_info + ci;
+ if (info->num_components == 1) {
+ /* we're going to force samp factors to 1x1 in this case */
+ h_samp_factor = v_samp_factor = 1;
+ } else if (transpose_it) {
+ h_samp_factor = compptr->v_samp_factor;
+ v_samp_factor = compptr->h_samp_factor;
+ } else {
+ h_samp_factor = compptr->h_samp_factor;
+ v_samp_factor = compptr->v_samp_factor;
+ }
+ width_in_blocks = width_in_iMCUs * h_samp_factor;
+ height_in_blocks = height_in_iMCUs * v_samp_factor;
+ coef_arrays[ci] = (*srcinfo->mem->request_virt_barray)
+ ((j_common_ptr) srcinfo, JPOOL_IMAGE, FALSE,
+ width_in_blocks, height_in_blocks, (JDIMENSION) v_samp_factor);
+ }
+ info->workspace_coef_arrays = coef_arrays;
+ } else
+ info->workspace_coef_arrays = NULL;
+
+ return TRUE;
+}
+
+
+/* Transpose destination image parameters */
+
+LOCAL(void)
+transpose_critical_parameters (j_compress_ptr dstinfo)
+{
+ int tblno, i, j, ci, itemp;
+ jpeg_component_info *compptr;
+ JQUANT_TBL *qtblptr;
+ JDIMENSION jtemp;
+ UINT16 qtemp;
+
+ /* Transpose image dimensions */
+ jtemp = dstinfo->image_width;
+ dstinfo->image_width = dstinfo->image_height;
+ dstinfo->image_height = jtemp;
+ itemp = dstinfo->min_DCT_h_scaled_size;
+ dstinfo->min_DCT_h_scaled_size = dstinfo->min_DCT_v_scaled_size;
+ dstinfo->min_DCT_v_scaled_size = itemp;
+
+ /* Transpose sampling factors */
+ for (ci = 0; ci < dstinfo->num_components; ci++) {
+ compptr = dstinfo->comp_info + ci;
+ itemp = compptr->h_samp_factor;
+ compptr->h_samp_factor = compptr->v_samp_factor;
+ compptr->v_samp_factor = itemp;
+ }
+
+ /* Transpose quantization tables */
+ for (tblno = 0; tblno < NUM_QUANT_TBLS; tblno++) {
+ qtblptr = dstinfo->quant_tbl_ptrs[tblno];
+ if (qtblptr != NULL) {
+ for (i = 0; i < DCTSIZE; i++) {
+ for (j = 0; j < i; j++) {
+ qtemp = qtblptr->quantval[i*DCTSIZE+j];
+ qtblptr->quantval[i*DCTSIZE+j] = qtblptr->quantval[j*DCTSIZE+i];
+ qtblptr->quantval[j*DCTSIZE+i] = qtemp;
+ }
+ }
+ }
+ }
+}
+
+
+/* Adjust Exif image parameters.
+ *
+ * We try to adjust the Tags ExifImageWidth and ExifImageHeight if possible.
+ */
+
+LOCAL(void)
+adjust_exif_parameters (JOCTET FAR * data, unsigned int length,
+ JDIMENSION new_width, JDIMENSION new_height)
+{
+ boolean is_motorola; /* Flag for byte order */
+ unsigned int number_of_tags, tagnum;
+ unsigned int firstoffset, offset;
+ JDIMENSION new_value;
+
+ if (length < 12) return; /* Length of an IFD entry */
+
+ /* Discover byte order */
+ if (GETJOCTET(data[0]) == 0x49 && GETJOCTET(data[1]) == 0x49)
+ is_motorola = FALSE;
+ else if (GETJOCTET(data[0]) == 0x4D && GETJOCTET(data[1]) == 0x4D)
+ is_motorola = TRUE;
+ else
+ return;
+
+ /* Check Tag Mark */
+ if (is_motorola) {
+ if (GETJOCTET(data[2]) != 0) return;
+ if (GETJOCTET(data[3]) != 0x2A) return;
+ } else {
+ if (GETJOCTET(data[3]) != 0) return;
+ if (GETJOCTET(data[2]) != 0x2A) return;
+ }
+
+ /* Get first IFD offset (offset to IFD0) */
+ if (is_motorola) {
+ if (GETJOCTET(data[4]) != 0) return;
+ if (GETJOCTET(data[5]) != 0) return;
+ firstoffset = GETJOCTET(data[6]);
+ firstoffset <<= 8;
+ firstoffset += GETJOCTET(data[7]);
+ } else {
+ if (GETJOCTET(data[7]) != 0) return;
+ if (GETJOCTET(data[6]) != 0) return;
+ firstoffset = GETJOCTET(data[5]);
+ firstoffset <<= 8;
+ firstoffset += GETJOCTET(data[4]);
+ }
+ if (firstoffset > length - 2) return; /* check end of data segment */
+
+ /* Get the number of directory entries contained in this IFD */
+ if (is_motorola) {
+ number_of_tags = GETJOCTET(data[firstoffset]);
+ number_of_tags <<= 8;
+ number_of_tags += GETJOCTET(data[firstoffset+1]);
+ } else {
+ number_of_tags = GETJOCTET(data[firstoffset+1]);
+ number_of_tags <<= 8;
+ number_of_tags += GETJOCTET(data[firstoffset]);
+ }
+ if (number_of_tags == 0) return;
+ firstoffset += 2;
+
+ /* Search for ExifSubIFD offset Tag in IFD0 */
+ for (;;) {
+ if (firstoffset > length - 12) return; /* check end of data segment */
+ /* Get Tag number */
+ if (is_motorola) {
+ tagnum = GETJOCTET(data[firstoffset]);
+ tagnum <<= 8;
+ tagnum += GETJOCTET(data[firstoffset+1]);
+ } else {
+ tagnum = GETJOCTET(data[firstoffset+1]);
+ tagnum <<= 8;
+ tagnum += GETJOCTET(data[firstoffset]);
+ }
+ if (tagnum == 0x8769) break; /* found ExifSubIFD offset Tag */
+ if (--number_of_tags == 0) return;
+ firstoffset += 12;
+ }
+
+ /* Get the ExifSubIFD offset */
+ if (is_motorola) {
+ if (GETJOCTET(data[firstoffset+8]) != 0) return;
+ if (GETJOCTET(data[firstoffset+9]) != 0) return;
+ offset = GETJOCTET(data[firstoffset+10]);
+ offset <<= 8;
+ offset += GETJOCTET(data[firstoffset+11]);
+ } else {
+ if (GETJOCTET(data[firstoffset+11]) != 0) return;
+ if (GETJOCTET(data[firstoffset+10]) != 0) return;
+ offset = GETJOCTET(data[firstoffset+9]);
+ offset <<= 8;
+ offset += GETJOCTET(data[firstoffset+8]);
+ }
+ if (offset > length - 2) return; /* check end of data segment */
+
+ /* Get the number of directory entries contained in this SubIFD */
+ if (is_motorola) {
+ number_of_tags = GETJOCTET(data[offset]);
+ number_of_tags <<= 8;
+ number_of_tags += GETJOCTET(data[offset+1]);
+ } else {
+ number_of_tags = GETJOCTET(data[offset+1]);
+ number_of_tags <<= 8;
+ number_of_tags += GETJOCTET(data[offset]);
+ }
+ if (number_of_tags < 2) return;
+ offset += 2;
+
+ /* Search for ExifImageWidth and ExifImageHeight Tags in this SubIFD */
+ do {
+ if (offset > length - 12) return; /* check end of data segment */
+ /* Get Tag number */
+ if (is_motorola) {
+ tagnum = GETJOCTET(data[offset]);
+ tagnum <<= 8;
+ tagnum += GETJOCTET(data[offset+1]);
+ } else {
+ tagnum = GETJOCTET(data[offset+1]);
+ tagnum <<= 8;
+ tagnum += GETJOCTET(data[offset]);
+ }
+ if (tagnum == 0xA002 || tagnum == 0xA003) {
+ if (tagnum == 0xA002)
+ new_value = new_width; /* ExifImageWidth Tag */
+ else
+ new_value = new_height; /* ExifImageHeight Tag */
+ if (is_motorola) {
+ data[offset+2] = 0; /* Format = unsigned long (4 octets) */
+ data[offset+3] = 4;
+ data[offset+4] = 0; /* Number Of Components = 1 */
+ data[offset+5] = 0;
+ data[offset+6] = 0;
+ data[offset+7] = 1;
+ data[offset+8] = 0;
+ data[offset+9] = 0;
+ data[offset+10] = (JOCTET)((new_value >> 8) & 0xFF);
+ data[offset+11] = (JOCTET)(new_value & 0xFF);
+ } else {
+ data[offset+2] = 4; /* Format = unsigned long (4 octets) */
+ data[offset+3] = 0;
+ data[offset+4] = 1; /* Number Of Components = 1 */
+ data[offset+5] = 0;
+ data[offset+6] = 0;
+ data[offset+7] = 0;
+ data[offset+8] = (JOCTET)(new_value & 0xFF);
+ data[offset+9] = (JOCTET)((new_value >> 8) & 0xFF);
+ data[offset+10] = 0;
+ data[offset+11] = 0;
+ }
+ }
+ offset += 12;
+ } while (--number_of_tags);
+}
+
+
+/* Adjust output image parameters as needed.
+ *
+ * This must be called after jpeg_copy_critical_parameters()
+ * and before jpeg_write_coefficients().
+ *
+ * The return value is the set of virtual coefficient arrays to be written
+ * (either the ones allocated by jtransform_request_workspace, or the
+ * original source data arrays). The caller will need to pass this value
+ * to jpeg_write_coefficients().
+ */
+
+GLOBAL(jvirt_barray_ptr *)
+jtransform_adjust_parameters (j_decompress_ptr srcinfo,
+ j_compress_ptr dstinfo,
+ jvirt_barray_ptr *src_coef_arrays,
+ jpeg_transform_info *info)
+{
+ /* If force-to-grayscale is requested, adjust destination parameters */
+ if (info->force_grayscale) {
+ /* First, ensure we have YCbCr or grayscale data, and that the source's
+ * Y channel is full resolution. (No reasonable person would make Y
+ * be less than full resolution, so actually coping with that case
+ * isn't worth extra code space. But we check it to avoid crashing.)
+ */
+ if (((dstinfo->jpeg_color_space == JCS_YCbCr &&
+ dstinfo->num_components == 3) ||
+ (dstinfo->jpeg_color_space == JCS_GRAYSCALE &&
+ dstinfo->num_components == 1)) &&
+ srcinfo->comp_info[0].h_samp_factor == srcinfo->max_h_samp_factor &&
+ srcinfo->comp_info[0].v_samp_factor == srcinfo->max_v_samp_factor) {
+ /* We use jpeg_set_colorspace to make sure subsidiary settings get fixed
+ * properly. Among other things, it sets the target h_samp_factor &
+ * v_samp_factor to 1, which typically won't match the source.
+ * We have to preserve the source's quantization table number, however.
+ */
+ int sv_quant_tbl_no = dstinfo->comp_info[0].quant_tbl_no;
+ jpeg_set_colorspace(dstinfo, JCS_GRAYSCALE);
+ dstinfo->comp_info[0].quant_tbl_no = sv_quant_tbl_no;
+ } else {
+ /* Sorry, can't do it */
+ ERREXIT(dstinfo, JERR_CONVERSION_NOTIMPL);
+ }
+ } else if (info->num_components == 1) {
+ /* For a single-component source, we force the destination sampling factors
+ * to 1x1, with or without force_grayscale. This is useful because some
+ * decoders choke on grayscale images with other sampling factors.
+ */
+ dstinfo->comp_info[0].h_samp_factor = 1;
+ dstinfo->comp_info[0].v_samp_factor = 1;
+ }
+
+ /* Correct the destination's image dimensions as necessary
+ * for rotate/flip, resize, and crop operations.
+ */
+ dstinfo->jpeg_width = info->output_width;
+ dstinfo->jpeg_height = info->output_height;
+
+ /* Transpose destination image parameters */
+ switch (info->transform) {
+ case JXFORM_TRANSPOSE:
+ case JXFORM_TRANSVERSE:
+ case JXFORM_ROT_90:
+ case JXFORM_ROT_270:
+ transpose_critical_parameters(dstinfo);
+ break;
+ default:
+ break;
+ }
+
+ /* Adjust Exif properties */
+ if (srcinfo->marker_list != NULL &&
+ srcinfo->marker_list->marker == JPEG_APP0+1 &&
+ srcinfo->marker_list->data_length >= 6 &&
+ GETJOCTET(srcinfo->marker_list->data[0]) == 0x45 &&
+ GETJOCTET(srcinfo->marker_list->data[1]) == 0x78 &&
+ GETJOCTET(srcinfo->marker_list->data[2]) == 0x69 &&
+ GETJOCTET(srcinfo->marker_list->data[3]) == 0x66 &&
+ GETJOCTET(srcinfo->marker_list->data[4]) == 0 &&
+ GETJOCTET(srcinfo->marker_list->data[5]) == 0) {
+ /* Suppress output of JFIF marker */
+ dstinfo->write_JFIF_header = FALSE;
+ /* Adjust Exif image parameters */
+ if (dstinfo->jpeg_width != srcinfo->image_width ||
+ dstinfo->jpeg_height != srcinfo->image_height)
+ /* Align data segment to start of TIFF structure for parsing */
+ adjust_exif_parameters(srcinfo->marker_list->data + 6,
+ srcinfo->marker_list->data_length - 6,
+ dstinfo->jpeg_width, dstinfo->jpeg_height);
+ }
+
+ /* Return the appropriate output data set */
+ if (info->workspace_coef_arrays != NULL)
+ return info->workspace_coef_arrays;
+ return src_coef_arrays;
+}
+
+
+/* Execute the actual transformation, if any.
+ *
+ * This must be called *after* jpeg_write_coefficients, because it depends
+ * on jpeg_write_coefficients to have computed subsidiary values such as
+ * the per-component width and height fields in the destination object.
+ *
+ * Note that some transformations will modify the source data arrays!
+ */
+
+GLOBAL(void)
+jtransform_execute_transform (j_decompress_ptr srcinfo,
+ j_compress_ptr dstinfo,
+ jvirt_barray_ptr *src_coef_arrays,
+ jpeg_transform_info *info)
+{
+ jvirt_barray_ptr *dst_coef_arrays = info->workspace_coef_arrays;
+
+ /* Note: conditions tested here should match those in switch statement
+ * in jtransform_request_workspace()
+ */
+ switch (info->transform) {
+ case JXFORM_NONE:
+ if (info->x_crop_offset != 0 || info->y_crop_offset != 0)
+ do_crop(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ break;
+ case JXFORM_FLIP_H:
+ if (info->y_crop_offset != 0)
+ do_flip_h(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ else
+ do_flip_h_no_crop(srcinfo, dstinfo, info->x_crop_offset,
+ src_coef_arrays);
+ break;
+ case JXFORM_FLIP_V:
+ do_flip_v(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ break;
+ case JXFORM_TRANSPOSE:
+ do_transpose(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ break;
+ case JXFORM_TRANSVERSE:
+ do_transverse(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ break;
+ case JXFORM_ROT_90:
+ do_rot_90(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ break;
+ case JXFORM_ROT_180:
+ do_rot_180(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ break;
+ case JXFORM_ROT_270:
+ do_rot_270(srcinfo, dstinfo, info->x_crop_offset, info->y_crop_offset,
+ src_coef_arrays, dst_coef_arrays);
+ break;
+ }
+}
+
+/* jtransform_perfect_transform
+ *
+ * Determine whether lossless transformation is perfectly
+ * possible for a specified image and transformation.
+ *
+ * Inputs:
+ * image_width, image_height: source image dimensions.
+ * MCU_width, MCU_height: pixel dimensions of MCU.
+ * transform: transformation identifier.
+ * Parameter sources from initialized jpeg_struct
+ * (after reading source header):
+ * image_width = cinfo.image_width
+ * image_height = cinfo.image_height
+ * MCU_width = cinfo.max_h_samp_factor * cinfo.block_size
+ * MCU_height = cinfo.max_v_samp_factor * cinfo.block_size
+ * Result:
+ * TRUE = perfect transformation possible
+ * FALSE = perfect transformation not possible
+ * (may use custom action then)
+ */
+
+GLOBAL(boolean)
+jtransform_perfect_transform(JDIMENSION image_width, JDIMENSION image_height,
+ int MCU_width, int MCU_height,
+ JXFORM_CODE transform)
+{
+ boolean result = TRUE; /* initialize TRUE */
+
+ switch (transform) {
+ case JXFORM_FLIP_H:
+ case JXFORM_ROT_270:
+ if (image_width % (JDIMENSION) MCU_width)
+ result = FALSE;
+ break;
+ case JXFORM_FLIP_V:
+ case JXFORM_ROT_90:
+ if (image_height % (JDIMENSION) MCU_height)
+ result = FALSE;
+ break;
+ case JXFORM_TRANSVERSE:
+ case JXFORM_ROT_180:
+ if (image_width % (JDIMENSION) MCU_width)
+ result = FALSE;
+ if (image_height % (JDIMENSION) MCU_height)
+ result = FALSE;
+ break;
+ default:
+ break;
+ }
+
+ return result;
+}
+
+#endif /* TRANSFORMS_SUPPORTED */
+
+
+/* Setup decompression object to save desired markers in memory.
+ * This must be called before jpeg_read_header() to have the desired effect.
+ */
+
+GLOBAL(void)
+jcopy_markers_setup (j_decompress_ptr srcinfo, JCOPY_OPTION option)
+{
+#ifdef SAVE_MARKERS_SUPPORTED
+ int m;
+
+ /* Save comments except under NONE option */
+ if (option != JCOPYOPT_NONE) {
+ jpeg_save_markers(srcinfo, JPEG_COM, 0xFFFF);
+ }
+ /* Save all types of APPn markers iff ALL option */
+ if (option == JCOPYOPT_ALL) {
+ for (m = 0; m < 16; m++)
+ jpeg_save_markers(srcinfo, JPEG_APP0 + m, 0xFFFF);
+ }
+#endif /* SAVE_MARKERS_SUPPORTED */
+}
+
+/* Copy markers saved in the given source object to the destination object.
+ * This should be called just after jpeg_start_compress() or
+ * jpeg_write_coefficients().
+ * Note that those routines will have written the SOI, and also the
+ * JFIF APP0 or Adobe APP14 markers if selected.
+ */
+
+GLOBAL(void)
+jcopy_markers_execute (j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JCOPY_OPTION option)
+{
+ jpeg_saved_marker_ptr marker;
+
+ /* In the current implementation, we don't actually need to examine the
+ * option flag here; we just copy everything that got saved.
+ * But to avoid confusion, we do not output JFIF and Adobe APP14 markers
+ * if the encoder library already wrote one.
+ */
+ for (marker = srcinfo->marker_list; marker != NULL; marker = marker->next) {
+ if (dstinfo->write_JFIF_header &&
+ marker->marker == JPEG_APP0 &&
+ marker->data_length >= 5 &&
+ GETJOCTET(marker->data[0]) == 0x4A &&
+ GETJOCTET(marker->data[1]) == 0x46 &&
+ GETJOCTET(marker->data[2]) == 0x49 &&
+ GETJOCTET(marker->data[3]) == 0x46 &&
+ GETJOCTET(marker->data[4]) == 0)
+ continue; /* reject duplicate JFIF */
+ if (dstinfo->write_Adobe_marker &&
+ marker->marker == JPEG_APP0+14 &&
+ marker->data_length >= 5 &&
+ GETJOCTET(marker->data[0]) == 0x41 &&
+ GETJOCTET(marker->data[1]) == 0x64 &&
+ GETJOCTET(marker->data[2]) == 0x6F &&
+ GETJOCTET(marker->data[3]) == 0x62 &&
+ GETJOCTET(marker->data[4]) == 0x65)
+ continue; /* reject duplicate Adobe */
+#ifdef NEED_FAR_POINTERS
+ /* We could use jpeg_write_marker if the data weren't FAR... */
+ {
+ unsigned int i;
+ jpeg_write_m_header(dstinfo, marker->marker, marker->data_length);
+ for (i = 0; i < marker->data_length; i++)
+ jpeg_write_m_byte(dstinfo, marker->data[i]);
+ }
+#else
+ jpeg_write_marker(dstinfo, marker->marker,
+ marker->data, marker->data_length);
+#endif
+ }
+}
diff --git a/extra/fbida/transupp.h b/extra/fbida/transupp.h
new file mode 100644
index 000000000..7c16c19c4
--- /dev/null
+++ b/extra/fbida/transupp.h
@@ -0,0 +1,210 @@
+/*
+ * transupp.h
+ *
+ * Copyright (C) 1997-2009, Thomas G. Lane, Guido Vollbeding.
+ * This file is part of the Independent JPEG Group's software.
+ * For conditions of distribution and use, see the accompanying README file.
+ *
+ * This file contains declarations for image transformation routines and
+ * other utility code used by the jpegtran sample application. These are
+ * NOT part of the core JPEG library. But we keep these routines separate
+ * from jpegtran.c to ease the task of maintaining jpegtran-like programs
+ * that have other user interfaces.
+ *
+ * NOTE: all the routines declared here have very specific requirements
+ * about when they are to be executed during the reading and writing of the
+ * source and destination files. See the comments in transupp.c, or see
+ * jpegtran.c for an example of correct usage.
+ */
+
+/* If you happen not to want the image transform support, disable it here */
+#ifndef TRANSFORMS_SUPPORTED
+#define TRANSFORMS_SUPPORTED 1 /* 0 disables transform code */
+#endif
+
+/*
+ * Although rotating and flipping data expressed as DCT coefficients is not
+ * hard, there is an asymmetry in the JPEG format specification for images
+ * whose dimensions aren't multiples of the iMCU size. The right and bottom
+ * image edges are padded out to the next iMCU boundary with junk data; but
+ * no padding is possible at the top and left edges. If we were to flip
+ * the whole image including the pad data, then pad garbage would become
+ * visible at the top and/or left, and real pixels would disappear into the
+ * pad margins --- perhaps permanently, since encoders & decoders may not
+ * bother to preserve DCT blocks that appear to be completely outside the
+ * nominal image area. So, we have to exclude any partial iMCUs from the
+ * basic transformation.
+ *
+ * Transpose is the only transformation that can handle partial iMCUs at the
+ * right and bottom edges completely cleanly. flip_h can flip partial iMCUs
+ * at the bottom, but leaves any partial iMCUs at the right edge untouched.
+ * Similarly flip_v leaves any partial iMCUs at the bottom edge untouched.
+ * The other transforms are defined as combinations of these basic transforms
+ * and process edge blocks in a way that preserves the equivalence.
+ *
+ * The "trim" option causes untransformable partial iMCUs to be dropped;
+ * this is not strictly lossless, but it usually gives the best-looking
+ * result for odd-size images. Note that when this option is active,
+ * the expected mathematical equivalences between the transforms may not hold.
+ * (For example, -rot 270 -trim trims only the bottom edge, but -rot 90 -trim
+ * followed by -rot 180 -trim trims both edges.)
+ *
+ * We also offer a lossless-crop option, which discards data outside a given
+ * image region but losslessly preserves what is inside. Like the rotate and
+ * flip transforms, lossless crop is restricted by the JPEG format: the upper
+ * left corner of the selected region must fall on an iMCU boundary. If this
+ * does not hold for the given crop parameters, we silently move the upper left
+ * corner up and/or left to make it so, simultaneously increasing the region
+ * dimensions to keep the lower right crop corner unchanged. (Thus, the
+ * output image covers at least the requested region, but may cover more.)
+ *
+ * We also provide a lossless-resize option, which is kind of a lossless-crop
+ * operation in the DCT coefficient block domain - it discards higher-order
+ * coefficients and losslessly preserves lower-order coefficients of a
+ * sub-block.
+ *
+ * Rotate/flip transform, resize, and crop can be requested together in a
+ * single invocation. The crop is applied last --- that is, the crop region
+ * is specified in terms of the destination image after transform/resize.
+ *
+ * We also offer a "force to grayscale" option, which simply discards the
+ * chrominance channels of a YCbCr image. This is lossless in the sense that
+ * the luminance channel is preserved exactly. It's not the same kind of
+ * thing as the rotate/flip transformations, but it's convenient to handle it
+ * as part of this package, mainly because the transformation routines have to
+ * be aware of the option to know how many components to work on.
+ */
+
+
+/* Short forms of external names for systems with brain-damaged linkers. */
+
+#ifdef NEED_SHORT_EXTERNAL_NAMES
+#define jtransform_parse_crop_spec jTrParCrop
+#define jtransform_request_workspace jTrRequest
+#define jtransform_adjust_parameters jTrAdjust
+#define jtransform_execute_transform jTrExec
+#define jtransform_perfect_transform jTrPerfect
+#define jcopy_markers_setup jCMrkSetup
+#define jcopy_markers_execute jCMrkExec
+#endif /* NEED_SHORT_EXTERNAL_NAMES */
+
+
+/*
+ * Codes for supported types of image transformations.
+ */
+
+typedef enum {
+ JXFORM_NONE, /* no transformation */
+ JXFORM_FLIP_H, /* horizontal flip */
+ JXFORM_FLIP_V, /* vertical flip */
+ JXFORM_TRANSPOSE, /* transpose across UL-to-LR axis */
+ JXFORM_TRANSVERSE, /* transpose across UR-to-LL axis */
+ JXFORM_ROT_90, /* 90-degree clockwise rotation */
+ JXFORM_ROT_180, /* 180-degree rotation */
+ JXFORM_ROT_270 /* 270-degree clockwise (or 90 ccw) */
+} JXFORM_CODE;
+
+/*
+ * Codes for crop parameters, which can individually be unspecified,
+ * positive, or negative. (Negative width or height makes no sense, though.)
+ */
+
+typedef enum {
+ JCROP_UNSET,
+ JCROP_POS,
+ JCROP_NEG
+} JCROP_CODE;
+
+/*
+ * Transform parameters struct.
+ * NB: application must not change any elements of this struct after
+ * calling jtransform_request_workspace.
+ */
+
+typedef struct {
+ /* Options: set by caller */
+ JXFORM_CODE transform; /* image transform operator */
+ boolean perfect; /* if TRUE, fail if partial MCUs are requested */
+ boolean trim; /* if TRUE, trim partial MCUs as needed */
+ boolean force_grayscale; /* if TRUE, convert color image to grayscale */
+ boolean crop; /* if TRUE, crop source image */
+
+ /* Crop parameters: application need not set these unless crop is TRUE.
+ * These can be filled in by jtransform_parse_crop_spec().
+ */
+ JDIMENSION crop_width; /* Width of selected region */
+ JCROP_CODE crop_width_set;
+ JDIMENSION crop_height; /* Height of selected region */
+ JCROP_CODE crop_height_set;
+ JDIMENSION crop_xoffset; /* X offset of selected region */
+ JCROP_CODE crop_xoffset_set; /* (negative measures from right edge) */
+ JDIMENSION crop_yoffset; /* Y offset of selected region */
+ JCROP_CODE crop_yoffset_set; /* (negative measures from bottom edge) */
+
+ /* Internal workspace: caller should not touch these */
+ int num_components; /* # of components in workspace */
+ jvirt_barray_ptr * workspace_coef_arrays; /* workspace for transformations */
+ JDIMENSION output_width; /* cropped destination dimensions */
+ JDIMENSION output_height;
+ JDIMENSION x_crop_offset; /* destination crop offsets measured in iMCUs */
+ JDIMENSION y_crop_offset;
+ int iMCU_sample_width; /* destination iMCU size */
+ int iMCU_sample_height;
+} jpeg_transform_info;
+
+
+#if TRANSFORMS_SUPPORTED
+
+/* Parse a crop specification (written in X11 geometry style) */
+EXTERN(boolean) jtransform_parse_crop_spec
+ JPP((jpeg_transform_info *info, const char *spec));
+/* Request any required workspace */
+EXTERN(boolean) jtransform_request_workspace
+ JPP((j_decompress_ptr srcinfo, jpeg_transform_info *info));
+/* Adjust output image parameters */
+EXTERN(jvirt_barray_ptr *) jtransform_adjust_parameters
+ JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ jvirt_barray_ptr *src_coef_arrays,
+ jpeg_transform_info *info));
+/* Execute the actual transformation, if any */
+EXTERN(void) jtransform_execute_transform
+ JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ jvirt_barray_ptr *src_coef_arrays,
+ jpeg_transform_info *info));
+/* Determine whether lossless transformation is perfectly
+ * possible for a specified image and transformation.
+ */
+EXTERN(boolean) jtransform_perfect_transform
+ JPP((JDIMENSION image_width, JDIMENSION image_height,
+ int MCU_width, int MCU_height,
+ JXFORM_CODE transform));
+
+/* jtransform_execute_transform used to be called
+ * jtransform_execute_transformation, but some compilers complain about
+ * routine names that long. This macro is here to avoid breaking any
+ * old source code that uses the original name...
+ */
+#define jtransform_execute_transformation jtransform_execute_transform
+
+#endif /* TRANSFORMS_SUPPORTED */
+
+
+/*
+ * Support for copying optional markers from source to destination file.
+ */
+
+typedef enum {
+ JCOPYOPT_NONE, /* copy no optional markers */
+ JCOPYOPT_COMMENTS, /* copy only comment (COM) markers */
+ JCOPYOPT_ALL /* copy all optional markers */
+} JCOPY_OPTION;
+
+#define JCOPYOPT_DEFAULT JCOPYOPT_COMMENTS /* recommended default */
+
+/* Setup decompression object to save desired markers in memory */
+EXTERN(void) jcopy_markers_setup
+ JPP((j_decompress_ptr srcinfo, JCOPY_OPTION option));
+/* Copy markers saved in the given source object to the destination object */
+EXTERN(void) jcopy_markers_execute
+ JPP((j_decompress_ptr srcinfo, j_compress_ptr dstinfo,
+ JCOPY_OPTION option));
diff --git a/extra/fbset/PKGBUILD b/extra/fbset/PKGBUILD
new file mode 100644
index 000000000..0db694c92
--- /dev/null
+++ b/extra/fbset/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 49864 2009-08-16 19:15:47Z jgc $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Paul Mattal <pjmattal@elys.com>
+
+pkgname=fbset
+pkgver=2.1
+pkgrel=3
+pkgdesc="Framebuffer setup util"
+arch=(i686 x86_64)
+url="http://users.telenet.be/geertu/Linux/fbdev/"
+license=('GPL')
+depends=('glibc')
+backup=(etc/fb.modes)
+options=(!makeflags)
+source=(http://users.telenet.be/geertu/Linux/fbdev/fbset-${pkgver}.tar.gz)
+md5sums=('e547cfcbb8c1a4f2a6b8ba4acb8b7164')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make || return 1
+ install -m755 -d "${pkgdir}/etc"
+ install -m755 -d "${pkgdir}/usr/sbin"
+ install -m755 -d "${pkgdir}/usr/share/man/man5"
+ install -m755 -d "${pkgdir}/usr/share/man/man8"
+ install -m755 fbset "${pkgdir}/usr/sbin/" || return 1
+ install -m644 fb.modes.5 "${pkgdir}/usr/share/man/man5/" || return 1
+ install -m644 fbset.8 "${pkgdir}/usr/share/man/man8/" || return 1
+ install -m644 etc/fb.modes.ATI "${pkgdir}/etc/fb.modes" || return 1
+}
diff --git a/extra/fcgi/PKGBUILD b/extra/fcgi/PKGBUILD
new file mode 100644
index 000000000..d6024ec72
--- /dev/null
+++ b/extra/fcgi/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 87808 2010-08-18 10:56:40Z jgc $
+# Maintainer: tobias <tobias@justdreams.de>
+# Modified by: eliott <eliott@cactuswax.net>
+# Original by Benjamin Andresen, klapmuetz [at] gmail [dot] com
+
+pkgname=fcgi
+pkgver=2.4.0
+pkgrel=6
+depends=('gcc-libs')
+pkgdesc="FASTCgi(fcgi) islanguage independent, high performant extension to CGI"
+arch=(i686 x86_64)
+license=('custom')
+options=('!libtool' '!makeflags')
+url="http://www.fastcgi.com"
+source=(http://www.fastcgi.com/dist/${pkgname}-${pkgver}.tar.gz
+ gcc44-fix-include.patch)
+md5sums=('d15060a813b91383a9f3c66faf84867e'
+ 'a8028462163755f3ce457a5c641f237b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/gcc44-fix-include.patch"
+ libtoolize --force
+ aclocal
+ autoconf
+ automake --foreign
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE.TERMS "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/fcgi/gcc44-fix-include.patch b/extra/fcgi/gcc44-fix-include.patch
new file mode 100644
index 000000000..7999e1be5
--- /dev/null
+++ b/extra/fcgi/gcc44-fix-include.patch
@@ -0,0 +1,17 @@
+Author: Tatsuki Sugiura <sugi@nemui.org>
+Origin: vendor, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504963
+Bug-Debian: http://bugs.debian.org/504963
+Forwarded: no
+Last-Update: 2010-02-08
+
+Index: libfcgi/libfcgi/fcgio.cpp
+===================================================================
+--- libfcgi.orig/libfcgi/fcgio.cpp 2010-01-23 19:13:53.000000000 +0900
++++ libfcgi/libfcgi/fcgio.cpp 2010-01-23 19:13:55.000000000 +0900
+@@ -22,6 +22,7 @@
+ #define DLLAPI __declspec(dllexport)
+ #endif
+
++#include <cstdio>
+ #include <limits.h>
+ #include "fcgio.h"
diff --git a/extra/fcitx/PKGBUILD b/extra/fcitx/PKGBUILD
new file mode 100644
index 000000000..2b34f225f
--- /dev/null
+++ b/extra/fcitx/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 103288 2010-12-17 09:19:33Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fcitx
+pkgver=4.0.1
+pkgrel=1
+pkgdesc="Free Chinese Input Toy of X, a collection of Simplified Chinese input methods for Linux"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/fcitx/"
+license=('GPL')
+depends=('dbus-core' 'pango')
+makedepends=('intltool')
+options=('!libtool')
+source=("http://fcitx.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('22d48cd65ae6ee36e49c0ed07761a3cb2f7e2669')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/feh/PKGBUILD b/extra/feh/PKGBUILD
new file mode 100644
index 000000000..c350b58d2
--- /dev/null
+++ b/extra/feh/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114383 2011-03-12 22:41:05Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=feh
+pkgver=1.12
+pkgrel=1
+pkgdesc='Fast, lightweight image viewer which uses imlib2'
+arch=('i686' 'x86_64')
+url='http://derf.homelinux.org/projects/feh/'
+license=('MIT')
+depends=('giblib' 'curl' 'libxinerama')
+optdepends=('perl: feh-cam, webcam wrapper for feh')
+makedepends=('libxt')
+source=("${url}${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('0f0f6dec50d81f9765bef990018de44e411a7439')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/festival/PKGBUILD b/extra/festival/PKGBUILD
new file mode 100644
index 000000000..755dc23a1
--- /dev/null
+++ b/extra/festival/PKGBUILD
@@ -0,0 +1,119 @@
+# $Id: PKGBUILD 102549 2010-12-08 06:43:53Z schiv $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Simo Leone <neotuli@gmail.com>
+
+pkgname=festival
+pkgver=2.1
+_suffix=release
+pkgrel=1
+pkgdesc="A general multi-lingual speech synthesis system"
+arch=('i686' 'x86_64')
+url="http://www.cstr.ed.ac.uk/projects/festival/"
+license=('BSD' 'GPL' 'custom')
+depends=('perl')
+options=('!makeflags')
+source=("http://www.cstr.ed.ac.uk/downloads/${pkgname}/${pkgver}/${pkgname}-${pkgver}-${_suffix}.tar.gz"
+ "http://www.cstr.ed.ac.uk/downloads/${pkgname}/${pkgver}/speech_tools-${pkgver}-${_suffix}.tar.gz"
+ "http://www.cstr.ed.ac.uk/downloads/${pkgname}/${pkgver}/festlex_CMU.tar.gz"
+ "http://www.cstr.ed.ac.uk/downloads/${pkgname}/${pkgver}/festlex_OALD.tar.gz"
+ "http://www.cstr.ed.ac.uk/downloads/${pkgname}/${pkgver}/festlex_POSLEX.tar.gz"
+ 'speechconfig.patch'
+ 'festconfig.patch')
+md5sums=('c93eb3e389ed171ab9abd46afe8897a8'
+ '6920ddc75b042910a3bcfee3ab106938'
+ '6a2ee4fed7c3ebedf197a3b8524ccb87'
+ '84af32a914d996f57bc4cb36fe8cdc97'
+ 'aa80f9250065b318325f16fdad3a4484'
+ '550abd77dc20e444673d6ecf87a60fe9'
+ '348cc033430aee7989463198818ae74c')
+
+build() {
+ # Build Speech Tools first
+ cd $srcdir/speech_tools
+ patch -Np1 -i $srcdir/speechconfig.patch
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make OPTIMISE_CXXFLAGS="${CXXFLAGS}" OPTIMISE_CCFLAGS="${CFLAGS}"
+
+ # Build Festival itself
+ cd $srcdir/festival
+ patch -Np1 -i $srcdir/festconfig.patch
+
+ # Aviod make failure on making scripts and docs
+ sed -i "s#examples bin doc#examples#" Makefile
+
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make OPTIMISE_CXXFLAGS="${CXXFLAGS}" OPTIMISE_CCFLAGS="${CFLAGS}"
+}
+
+package() {
+ # Install Speech Tools first
+ cd $srcdir/speech_tools
+ install -dm755 $pkgdir/usr/{bin,lib,include/speech_tools/{,instantiate,ling_class,rxp,sigpr,unix}}
+
+ #binaries
+ #move binaries over wrappers (FS#7864)
+ for i in `grep -l 'EST shared script' bin/*`; do
+ cp -f main/$(basename $i) bin;
+ done
+ install -m755 -t $pkgdir/usr/bin bin/[a-z]*
+ rm -f $pkgdir/usr/bin/{est_gdb,est_examples,est_program}
+
+ #libraries
+ install -m755 -t $pkgdir/usr/lib lib/lib*.so.*
+ ln -sf libestbase.so.${pkgver}.1 $pkgdir/usr/lib/libestbase.so
+ ln -sf libeststring.so.1.2 $pkgdir/usr/lib/libeststring.so
+ install -m644 -t $pkgdir/usr/lib lib/lib*.a
+
+ #headers
+ for dir in {.,instantiate,ling_class,rxp,sigpr,unix}; do
+ install -m644 -t ${pkgdir}/usr/include/speech_tools/$dir include/$dir/*.h
+ done
+
+ # Install Festival itself
+ cd $srcdir/festival
+
+ #binaries
+ install -m755 src/main/festival $pkgdir/usr/bin/
+ install -m755 src/main/festival_client $pkgdir/usr/bin/
+ install -m755 examples/text2wave $pkgdir/usr/bin
+ install -m755 examples/saytime $pkgdir/usr/bin/
+
+ #libraries
+ install -m644 src/lib/libFestival.a $pkgdir/usr/lib/
+
+ #headers
+ install -dm755 $pkgdir/usr/include/festival
+ install -m644 -t $pkgdir/usr/include/festival src/include/*.h
+
+ mkdir -p $pkgdir/usr/share/festival
+ #install -m644 -t $pkgdir/usr/share/festival lib/*.scm
+ #need to clean up but requires knowing which files are actually needed...
+ cp -aR lib/* $pkgdir/usr/share/festival
+ rm -f $(find $pkgdir/usr/share/festival -name Makefile)
+
+ #create voices directory
+ install -dm755 $pkgdir/usr/share/festival/voices
+
+ #licenses
+ install -D -m644 $srcdir/festival/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -D -m644 $srcdir/speech_tools/README \
+ $pkgdir/usr/share/licenses/$pkgname/LICENSE.other
+
+ #################################################################
+ # Ok now some general cleanups
+ for i in `find $pkgdir/usr/include/ -type f`; do
+ sed -i -e 's,"EST.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/\",speech_tools/,g' \
+ -e 's,"siod.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/\",speech_tools/,g' \
+ -e 's,"instantiate/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/instantiate/\",speech_tools/instantiate/,g' -e 's,"instantiate,instantiate,g' \
+ -e 's,"ling_class/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/ling_class/\",speech_tools/ling_class/,g' -e 's,"ling_class,ling_class,g'\
+ -e 's,"rxp/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/rxp/\",speech_tools/rxp/,g' -e 's,"rxp,rxp,g' \
+ -e 's,"sigpr/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/sigpr/\",speech_tools/sigpr/,g' -e 's,"sigpr,sigpr,g' \
+ -e 's,"unix/.*\.h",\<speech_tools/&\>,g' -e 's,speech_tools/unix/\",speech_tools/unix/,g' -e 's,\.h\">,.h\>,g' -e 's,"unix,unix,g' \
+ -e 's,"festival\.h",\<festival/festival.h\>,g' \
+ -e 's,"ModuleDescription\.h",\<festival/ModuleDescription.h\>,g' \
+ -e 's,"Phone\.h",\<festival/Phone.h\>,g' $i
+ done
+}
diff --git a/extra/festival/festconfig.patch b/extra/festival/festconfig.patch
new file mode 100644
index 000000000..5b39a854f
--- /dev/null
+++ b/extra/festival/festconfig.patch
@@ -0,0 +1,84 @@
+diff -Nru festival.orig/config/config.in festival/config/config.in
+--- festival.orig/config/config.in 2004-06-21 15:52:42.000000000 -0500
++++ festival/config/config.in 2005-05-30 19:50:45.000000000 -0500
+@@ -20,7 +20,7 @@
+ ## You may need to set this explicitly if automounter or NFS
+ ## side effects cause problems
+
+-FESTIVAL_HOME := $(shell (cd $(TOP); pwd))
++FESTIVAL_HOME := /usr
+
+ ###########################################################################
+ ## Feature selection.
+diff -Nru festival.orig/config/project.mak festival/config/project.mak
+--- festival.orig/config/project.mak 2004-07-12 10:39:37.000000000 -0500
++++ festival/config/project.mak 2005-05-30 19:50:45.000000000 -0500
+@@ -112,6 +112,5 @@
+ DOCXX_DIRS = $(TOP)/src
+ MODULE_TO_DOCXX = perl $(TOP)/src/modules/utilities/extract_module_doc++.prl
+
+-FTLIBDIR = $(FESTIVAL_HOME)/lib
+-
++FTLIBDIR = /usr/share/festival
+
+diff -Nru festival.orig/config/systems/Linux.mak festival/config/systems/Linux.mak
+--- festival.orig/config/systems/Linux.mak 2001-04-04 06:55:32.000000000 -0500
++++ festival/config/systems/Linux.mak 2005-05-30 19:51:28.000000000 -0500
+@@ -40,13 +40,13 @@
+
+ include $(EST)/config/systems/default.mak
+
+-DEFAULT_JAVA_HOME=/usr/lib/jdk-1.1.6
++DEFAULT_JAVA_HOME=/usr/lib/jvm/java-6-openjdk
+ JAVA=/usr/bin/java
+ JAVAC=/usr/bin/javac
+ JAVAH=/usr/bin/javah
+
+ TCL_LIBRARY = -ltcl
+-OS_LIBS = -ldl
++OS_LIBS = -ldl -lncurses
+
+ ## the native audio module for this type of system
+ NATIVE_AUDIO_MODULE = LINUX16
+diff -Nru festival.orig/config/systems/default.mak festival/config/systems/default.mak
+--- festival.orig/config/systems/default.mak 2001-04-04 06:55:32.000000000 -0500
++++ festival/config/systems/default.mak 2005-05-30 19:50:45.000000000 -0500
+@@ -40,7 +40,7 @@
+ ###########################################################################
+ ## Installation directories
+
+-INSTALL_PREFIX=/usr/local
++INSTALL_PREFIX=/usr
+
+ BINDIR=$(INSTALL_PREFIX)/bin
+ LIBDIR=$(INSTALL_PREFIX)/lib
+@@ -63,8 +63,8 @@
+ ###########################################################################
+ ## Where to find Enlightenment Speech Demon
+
+-ESD_INCLUDE = /usr/local/include
+-ESD_LIB = /usr/local/lib
++ESD_INCLUDE = /usr/include
++ESD_LIB = /usr/lib
+
+ ###########################################################################
+ ## Where to find X11
+@@ -75,14 +75,14 @@
+ ###########################################################################
+ ## TCL support
+
+-TCL_INCLUDE = /usr/local/include
+-TCL_LIB = /usr/local/lib
+-TCL_LIBRARY = -ltcl7.6
++TCL_INCLUDE = /usr/include
++TCL_LIB = /usr/lib
++TCL_LIBRARY = -ltcl
+
+ ###########################################################################
+ ## Efence library for malloc debugging
+
+-EFENCE_LIB = /usr/local/lib
++EFENCE_LIB = /usr/lib
+
+ ###########################################################################
+ ## Commands.
diff --git a/extra/festival/speechconfig.patch b/extra/festival/speechconfig.patch
new file mode 100644
index 000000000..f77b614e9
--- /dev/null
+++ b/extra/festival/speechconfig.patch
@@ -0,0 +1,132 @@
+diff -aur speech_tools.old//config/compilers/jdk.mak speech_tools/config/compilers/jdk.mak
+--- speech_tools.old//config/compilers/jdk.mak 2001-04-04 19:55:32.000000000 +0800
++++ speech_tools/config/compilers/jdk.mak 2010-12-08 12:14:56.076668109 +0800
+@@ -52,7 +52,7 @@
+ endif
+ endif
+
+-JAVAFLAGS = -depend
++JAVAFLAGS =
+
+ DEBUG_JAVAFLAGS = -g
+
+diff -aur speech_tools.old//config/config.in speech_tools/config/config.in
+--- speech_tools.old//config/config.in 2008-10-29 03:20:49.000000000 +0800
++++ speech_tools/config/config.in 2010-12-08 12:17:50.110001443 +0800
+@@ -15,7 +15,7 @@
+ ## You may need to set this explicitly if automounter or NFS
+ ## side effects cause problems
+
+-EST_HOME := $(shell (cd $(EST); pwd))
++EST_HOME := /usr
+
+ ###########################################################################
+ ## System type.
+@@ -28,14 +28,14 @@
+ ##
+ ## Examples: sparc_SunOS5 intel_Linux2.0
+
+-SYSTEM_TYPE=$(MACHINETYPE)_$(OSTYPE)$(OSREV)
++SYSTEM_TYPE=Linux
+
+ ###########################################################################
+ ## Compiler.
+ ## The definitions are in compilers/$(COMPILER).mak
+ ## Examples: gcc suncc egcs gcc28
+
+-COMPILER=@COMPILERTYPE@
++COMPILER=gcc
+
+ ###########################################################################
+ ## Java system to use if you include the Java interface.
+@@ -61,7 +61,7 @@
+ # VERBOSE=1
+ #DEBUG=1
+ # PROFILE=gprof
+-#SHARED=2
++SHARED=1
+
+ ## Directory specific selections which override the above
+
+@@ -98,7 +98,7 @@
+ ## It may not work under all systems, so may be optionally omitted.
+ INCLUDE_MODULES += EDITLINE
+
+-TERMCAPLIB = @TERMCAPLIB@
++TERMCAPLIB =
+ # speech recognition
+ #INCLUDE_MODULES += ASR
+
+@@ -169,8 +169,8 @@
+ CONFIG_WRAPPER_LANGUAGES = PYTHON PERL5
+
+ # Language specific includes should be set to correct site paths
+-CONFIG_PYTHON_INCLUDES= -I/usr/include/python2.2/
+-CONFIG_PERL_INCLUDES= -I/usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/
++CONFIG_PYTHON_INCLUDES= -I/usr/include/python2.7/
++CONFIG_PERL_INCLUDES= -I/usr/lib/perl5/core_perl/CORE/
+ #OR OLD#CONFIG_PERL_INCLUDES= -I/usr/lib/perl5/5.6.1/i386-linux/CORE/
+ ##
+ ###################################################################
+Only in speech_tools/config: config.in.orig
+diff -aur speech_tools.old//config/systems/default.mak speech_tools/config/systems/default.mak
+--- speech_tools.old//config/systems/default.mak 2005-07-17 21:06:49.000000000 +0800
++++ speech_tools/config/systems/default.mak 2010-12-08 12:14:56.076668109 +0800
+@@ -40,7 +40,7 @@
+ ###########################################################################
+ ## Installation directories
+
+-INSTALL_PREFIX=/usr/local
++INSTALL_PREFIX=/usr
+
+ BINDIR=$(INSTALL_PREFIX)/bin
+ LIBDIR=$(INSTALL_PREFIX)/lib
+@@ -63,8 +63,8 @@
+ ###########################################################################
+ ## Where to find Enlightenment Speech Demon
+
+-ESD_INCLUDE = /usr/local/include
+-ESD_LIB = /usr/local/lib
++ESD_INCLUDE = /usr/include
++ESD_LIB = /usr/lib
+
+ ###########################################################################
+ ## Where to find X11
+@@ -75,14 +75,14 @@
+ ###########################################################################
+ ## TCL support
+
+-TCL_INCLUDE = /usr/local/include
+-TCL_LIB = /usr/local/lib
+-TCL_LIBRARY = -ltcl7.6
++TCL_INCLUDE = /usr/include
++TCL_LIB = /usr/lib
++TCL_LIBRARY = -ltcl
+
+ ###########################################################################
+ ## Efence library for malloc debugging
+
+-EFENCE_LIB = /usr/local/lib
++EFENCE_LIB = /usr/lib
+
+ ###########################################################################
+ ## Commands.
+diff -aur speech_tools.old//config/systems/Linux.mak speech_tools/config/systems/Linux.mak
+--- speech_tools.old//config/systems/Linux.mak 2001-04-04 19:55:32.000000000 +0800
++++ speech_tools/config/systems/Linux.mak 2010-12-08 12:14:56.076668109 +0800
+@@ -40,13 +40,13 @@
+
+ include $(EST)/config/systems/default.mak
+
+-DEFAULT_JAVA_HOME=/usr/lib/jdk-1.1.6
++DEFAULT_JAVA_HOME=/usr/lib/jvm/java-6-openjdk
+ JAVA=/usr/bin/java
+ JAVAC=/usr/bin/javac
+ JAVAH=/usr/bin/javah
+
+ TCL_LIBRARY = -ltcl
+-OS_LIBS = -ldl
++OS_LIBS = -ldl -lncurses
+
+ ## the native audio module for this type of system
+ NATIVE_AUDIO_MODULE = LINUX16
diff --git a/extra/fetchmail/PKGBUILD b/extra/fetchmail/PKGBUILD
new file mode 100644
index 000000000..9463a9277
--- /dev/null
+++ b/extra/fetchmail/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 102917 2010-12-13 01:30:42Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=fetchmail
+pkgver=6.3.19
+pkgrel=1
+pkgdesc="A remote-mail retrieval utility"
+url="http://fetchmail.berlios.de/"
+arch=('i686' 'x86_64')
+depends=('glibc' 'openssl' 'python2')
+optdepends=('tk: fetchmailconf')
+options=('!makeflags')
+license=('GPL')
+install=fetchmail.install
+source=(http://download2.berlios.de/fetchmail/${pkgname}-${pkgver}.tar.bz2
+ fetchmail.rc fetchmail.conf)
+md5sums=('64519711c8533f5a34d20c9ff620d880' '6742e99d65a827bc2b9d6bc8efe269e6'\
+ '8fcd6a22dfbc247755fdd050c5c5c4d3')
+sha1sums=('fcc9b9299fe147d8f522cff93f8f619e5e1372b7' '13c7e3c538211c79c5b403f2bfa6712a2ad0ac30'\
+ '30401729386d6f774c6c36ab8530842166de54a8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-ssl=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm755 "${srcdir}/fetchmail.rc" "${pkgdir}/etc/rc.d/fetchmail"
+ install -Dm644 "${srcdir}/fetchmail.conf" "${pkgdir}/etc/conf.d/fetchmail"
+
+ # "home" directory for pid file.
+ install -d -o 90 -g nobody -m700 "${pkgdir}/var/run/fetchmail"
+}
diff --git a/extra/fetchmail/fetchmail.conf b/extra/fetchmail/fetchmail.conf
new file mode 100644
index 000000000..dcac2a067
--- /dev/null
+++ b/extra/fetchmail/fetchmail.conf
@@ -0,0 +1,5 @@
+# Daemon polling interval
+INTERVAL=60
+
+# Config location
+CONFIG=/etc/fetchmailrc
diff --git a/extra/fetchmail/fetchmail.install b/extra/fetchmail/fetchmail.install
new file mode 100644
index 000000000..711cbe568
--- /dev/null
+++ b/extra/fetchmail/fetchmail.install
@@ -0,0 +1,20 @@
+post_install() {
+ # /etc/fetchmail must be owned by fetchmail for daemon to work.
+ echo "If you run fetchmail as a daemon and not a cron job"
+ echo "then 'chown fetchmail /etc/fetchmailrc'"
+ getent passwd fetchmail >/dev/null || usr/sbin/useradd -u 90 -g nobody \
+ -d '/var/run/fetchmail' -c 'Fetchmail daemon' -s /bin/false fetchmail
+}
+
+post_upgrade() {
+ getent passwd fetchmail >/dev/null || usr/sbin/useradd -u 90 -g nobody \
+ -d '/var/run/fetchmail' -c 'Fetchmail daemon' -s /bin/false fetchmail
+
+ if [ "$(vercmp $2 6.3.19)" -lt 0 ] ; then
+ chsh -s /bin/false fetchmail
+ fi
+}
+
+pre_remove() {
+ usr/sbin/userdel fetchmail &>/dev/null
+}
diff --git a/extra/fetchmail/fetchmail.rc b/extra/fetchmail/fetchmail.rc
new file mode 100644
index 000000000..7c25f72b2
--- /dev/null
+++ b/extra/fetchmail/fetchmail.rc
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/fetchmail ] && . /etc/conf.d/fetchmail
+
+PID=`pidof -o %PPID /usr/bin/fetchmail`
+case "$1" in
+ start)
+ stat_busy "Starting fetchmail"
+ [ -z "$PID" ] &&
+ su -c "/usr/bin/fetchmail -d $INTERVAL -f $CONFIG" -s /bin/sh fetchmail
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ #Fetchmail does this for us:
+ #echo $PID > /var/run/fetchmail.pid
+ add_daemon fetchmail
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping fetchmail"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/fetchmail.pid
+ rm_daemon fetchmail
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/ffcall/PKGBUILD b/extra/ffcall/PKGBUILD
new file mode 100644
index 000000000..fcf0a0f66
--- /dev/null
+++ b/extra/ffcall/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 2176 2008-05-28 20:52:39Z eric $
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Michael Baehr <usemike@spamblocked.com>
+
+pkgname=ffcall
+pkgver=1.10
+pkgrel=3
+pkgdesc="C library for implementing foreign function calls in embedded interpreters"
+arch=('i686' 'x86_64')
+url="http://www.haible.de/bruno/packages-ffcall.html"
+license=('GPL2')
+options=('!libtool' '!makeflags')
+source=(http://www.haible.de/bruno/gnu/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2db95007e901f3bc2ae7e5a9fe9ebea4')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ if [ "$CARCH" = "x86_64" ]; then
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-pic || return 1
+ else
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ fi
+ make || return 1
+ install -d ${startdir}/pkg/usr/share/man || return 1
+ make DESTDIR=${startdir}/pkg/ install || return 1
+}
diff --git a/extra/ffmpegthumbnailer/PKGBUILD b/extra/ffmpegthumbnailer/PKGBUILD
new file mode 100644
index 000000000..8be79eb47
--- /dev/null
+++ b/extra/ffmpegthumbnailer/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 23110 2010-08-06 11:01:51Z rvanharen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: boromil@gmail.com
+
+pkgname=ffmpegthumbnailer
+pkgver=2.0.6
+pkgrel=1
+pkgdesc="Lightweight video thumbnailer that can be used by file managers."
+url="http://code.google.com/p/ffmpegthumbnailer/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('ffmpeg' 'libjpeg' 'libpng')
+optdepends=('gvfs: support for gio uris')
+source=(http://ffmpegthumbnailer.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+md5sums=('5003ceaadc1c5a1be1dbb34739a12bab')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --enable-gio
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+
diff --git a/extra/fftw/PKGBUILD b/extra/fftw/PKGBUILD
new file mode 100644
index 000000000..d8b00ff55
--- /dev/null
+++ b/extra/fftw/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 110392 2011-02-19 07:05:55Z allan $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fftw
+pkgver=3.2.2
+pkgrel=2
+pkgdesc="A library for computing the discrete Fourier transform (DFT)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.fftw.org/"
+depends=('glibc' 'bash')
+makedepends=('gcc-fortran')
+options=(!libtool)
+source=(http://www.fftw.org/${pkgname}-${pkgver}.tar.gz)
+install=fftw.install
+
+# notes:
+# http://www.fftw.org/fftw2_doc/fftw_6.html#SEC69
+# http://www.fftw.org/faq/section2.html#singleprec
+# http://www.fftw.org/fftw3_doc/Precision.html#Precision
+
+md5sums=('b616e5c91218cc778b5aa735fefb61ae')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # use upstream default CFLAGS while keeping our -march/-mtune
+ CFLAGS+=" -O3 -fomit-frame-pointer -malign-double -fstrict-aliasing -ffast-math"
+
+ CONFIGURE="./configure F77=gfortran --prefix=/usr \
+ --enable-shared --enable-threads"
+
+ # build & install double precision
+ $CONFIGURE --enable-sse2
+ make
+ make DESTDIR=${pkgdir} install
+ make clean
+
+ # build & install long double precission
+ $CONFIGURE --enable-long-double
+ make
+ make DESTDIR=${pkgdir} install
+ make clean
+
+ # build & install single precision
+ $CONFIGURE --enable-float --enable-sse
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/fftw/fftw.install b/extra/fftw/fftw.install
new file mode 100644
index 000000000..a3748aae1
--- /dev/null
+++ b/extra/fftw/fftw.install
@@ -0,0 +1,22 @@
+info_dir=/usr/share/info
+info_files=(fftw3.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${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.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+
+
+
diff --git a/extra/file-roller/PKGBUILD b/extra/file-roller/PKGBUILD
new file mode 100644
index 000000000..0cb20cb9b
--- /dev/null
+++ b/extra/file-roller/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 99609 2010-11-15 20:07:07Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=file-roller
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="Archive manipulator for GNOME2"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('desktop-file-utils' 'gconf>=2.32.0')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.1' 'pkg-config' 'nautilus>=2.32')
+optdepends=('nautilus: nautilus shell extension'
+ 'unrar: the RAR uncompression program'
+ 'zip: creates PKZIP-compatible .zip files'
+ 'unzip: unpacks .zip archives'
+ 'p7zip: 7zip compression utility'
+ 'xz: managing LZMA and XZ compressed files'
+ 'arj: ARJ archiver'
+ 'unace: extraction tool for the proprietary ace archive format')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+install=file-roller.install
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('a9109d9c871c022eb0553eeedc98520bad42ba3099088c16a9f7df817f60cc92')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/file-roller \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain file-roller ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/file-roller/file-roller.install b/extra/file-roller/file-roller.install
new file mode 100644
index 000000000..e39620af7
--- /dev/null
+++ b/extra/file-roller/file-roller.install
@@ -0,0 +1,24 @@
+pkgname=file-roller
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/flac/ChangeLog b/extra/flac/ChangeLog
new file mode 100644
index 000000000..e7790cb1a
--- /dev/null
+++ b/extra/flac/ChangeLog
@@ -0,0 +1,5 @@
+2009-08-01 Eric Belanger <eric@archlinux.org>
+
+ * flac 1.2.1-2
+ * FHS man pages
+ * Added ChangeLog
diff --git a/extra/flac/PKGBUILD b/extra/flac/PKGBUILD
new file mode 100644
index 000000000..d9d539f3f
--- /dev/null
+++ b/extra/flac/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 48440 2009-08-02 03:15:27Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=flac
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="Free Lossless Audio Codec"
+arch=('i686' 'x86_64')
+url="http://flac.sourceforge.net/"
+license=('custom:Xiph' 'LGPL' 'GPL' 'FDL')
+depends=('glibc' 'libogg')
+makedepends=('nasm' 'xmms')
+options=('!libtool' '!makeflags')
+source=(http://downloads.sf.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz flac-1.2.1-gcc-4.3-includes.patch)
+md5sums=('153c8b15a54da428d1f0fadc756c22c7' 'b9d245422bbc547b18a72897366bea77')
+sha1sums=('bd54354900181b59db3089347cc84ad81e410b38' '7e9f8c2ef4d9daf5ddd20df63b608fe19b8c1560')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/flac-1.2.1-gcc-4.3-includes.patch" || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-shared --disable-sse \
+ --disable-rpath --with-pic || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ # install license
+ install -Dm0644 COPYING.Xiph "${pkgdir}/usr/share/licenses/${pkgname}/COPYING.Xiph" || return 1
+}
diff --git a/extra/flac/flac-1.2.1-gcc-4.3-includes.patch b/extra/flac/flac-1.2.1-gcc-4.3-includes.patch
new file mode 100644
index 000000000..52fec8be5
--- /dev/null
+++ b/extra/flac/flac-1.2.1-gcc-4.3-includes.patch
@@ -0,0 +1,11 @@
+diff -Naur flac-1.2.1-orig/examples/cpp/encode/file/main.cpp flac-1.2.1/examples/cpp/encode/file/main.cpp
+--- flac-1.2.1-orig/examples/cpp/encode/file/main.cpp 2007-09-13 09:58:03.000000000 -0600
++++ flac-1.2.1/examples/cpp/encode/file/main.cpp 2007-11-18 12:59:45.000000000 -0600
+@@ -30,6 +30,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <cstring>
+ #include "FLAC++/metadata.h"
+ #include "FLAC++/encoder.h"
+
diff --git a/extra/fltk/PKGBUILD b/extra/fltk/PKGBUILD
new file mode 100644
index 000000000..f5335f613
--- /dev/null
+++ b/extra/fltk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 71291 2010-03-06 01:40:12Z pierre $
+
+pkgname=fltk
+pkgver=1.1.10
+pkgrel=1
+pkgdesc="Graphical user interface toolkit for X"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://www.fltk.org/"
+depends=('libjpeg' 'libpng' 'gcc-libs' 'libxft' 'libxext')
+makedepends=('mesa')
+source=("http://ftp.easysw.com/pub/$pkgname/$pkgver/$pkgname-$pkgver-source.tar.bz2")
+md5sums=('a1765594bc427ff892e36089fe1fa672')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+ export LDFLAGS="${LDFLAGS//,--as-needed}"
+ ./configure --prefix=/usr --enable-threads --enable-xft --enable-shared
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/fluidsynth/PKGBUILD b/extra/fluidsynth/PKGBUILD
new file mode 100644
index 000000000..831b180cf
--- /dev/null
+++ b/extra/fluidsynth/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 102552 2010-12-08 07:09:52Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fluidsynth
+pkgver=1.1.3
+pkgrel=2
+pkgdesc="A real-time software synthesizer based on the SoundFont 2 specifications"
+arch=(i686 x86_64)
+url="http://www.fluidsynth.org/"
+depends=('glib2' 'jack' 'dbus-core' 'libpulse')
+makedepends=('cmake' 'ladspa' 'doxygen')
+optdepends=('pulseaudio'
+ 'bash: init script')
+license=('LGPL')
+backup=('etc/conf.d/fluidsynth')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ fluidsynth.conf
+ fluidsynthd)
+md5sums=('0d3e3cc770b4da413010dfb7dfdce9c8'
+ '16c5f4d4cbdddc6c5fcbd4fd4cc142f1'
+ 'b296dbfb524c2164f552f68bd9abe2ec')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -Denable-ladspa=ON \
+ -DLIB_SUFFIX=""
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 "$srcdir/fluidsynth.conf" \
+ "$pkgdir/etc/conf.d/fluidsynth"
+
+ install -Dm755 "$srcdir/fluidsynthd" \
+ "$pkgdir/etc/rc.d/fluidsynth"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/fluidsynth/fluidsynth.conf b/extra/fluidsynth/fluidsynth.conf
new file mode 100644
index 000000000..5267d5835
--- /dev/null
+++ b/extra/fluidsynth/fluidsynth.conf
@@ -0,0 +1,2 @@
+FSYNTH_OPTS="-a alsa -m alsa_seq -r 48000"
+FSYNTH_SOUNDFONT="" \ No newline at end of file
diff --git a/extra/fluidsynth/fluidsynthd b/extra/fluidsynth/fluidsynthd
new file mode 100644
index 000000000..ca1e8fa6e
--- /dev/null
+++ b/extra/fluidsynth/fluidsynthd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f /etc/conf.d/fluidsynth ] && . /etc/conf.d/fluidsynth
+
+PID=`pidof -o %PPID /usr/bin/fluidsynth`
+case "$1" in
+ start)
+ stat_busy "Starting Fluidsynth soundfont synthesizer"
+ [ -z "$PID" ] && /usr/bin/fluidsynth -is $FSYNTH_OPTS $FSYNTH_SOUNDFONT > /dev/null 2>&1 &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/fluidsynth.pid
+ add_daemon fluidsynth
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Fluidsynth soundfont synthesizer"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/fluidsynth.pid
+ rm_daemon fluidsynth
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/fluxbox/PKGBUILD b/extra/fluxbox/PKGBUILD
new file mode 100644
index 000000000..7d5e7d3b6
--- /dev/null
+++ b/extra/fluxbox/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111648 2011-02-28 00:45:15Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=fluxbox
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="A lightweight and highly-configurable window manager"
+arch=('i686' 'x86_64')
+url="http://www.fluxbox.org"
+license=('MIT')
+depends=('libxft' 'libxpm' 'libxinerama' 'libxrandr' 'gcc-libs' 'sh' 'imlib2' 'fribidi')
+makedepends=('pkg-config')
+optdepends=('xorg-xmessage: for using the fbsetbg and fluxbox-generate_menu utilities')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2 \
+ fluxbox.desktop)
+md5sums=('0eaa940a69c0a876a520bb85d67b8bec' 'eeae9c88a2526ac0bd8afcd9ce97f9ed')
+sha1sums=('1c4755b8ac1042c98f700848240ac99ef18dca01' 'f3f83b8ce84d79c2f8670ef687e0dd89ab0552b8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-gnome --enable-xft --enable-xinerama \
+ --enable-imlib2 --enable-nls
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../fluxbox.desktop "${pkgdir}/usr/share/xsessions/fluxbox.desktop"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/fluxbox/fluxbox.desktop b/extra/fluxbox/fluxbox.desktop
new file mode 100644
index 000000000..418d29acb
--- /dev/null
+++ b/extra/fluxbox/fluxbox.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=XSession
+Exec=/usr/bin/startfluxbox
+TryExec=/usr/bin/startfluxbox
+Name=fluxbox
diff --git a/extra/fluxter/ChangeLog b/extra/fluxter/ChangeLog
new file mode 100644
index 000000000..48b1aa12a
--- /dev/null
+++ b/extra/fluxter/ChangeLog
@@ -0,0 +1,6 @@
+2009-03-13 Eric Belanger <eric@archlinux.org>
+
+ * fluxter 0.1.0-4
+ * Added license
+ * Replaced gcc depends by gcc-libs
+ * Added ChangeLog
diff --git a/extra/fluxter/PKGBUILD b/extra/fluxter/PKGBUILD
new file mode 100644
index 000000000..5b0dffc02
--- /dev/null
+++ b/extra/fluxter/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 30062 2009-03-16 01:14:26Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Ben <ben@benmazer.ner>
+
+pkgname=fluxter
+pkgver=0.1.0
+pkgrel=4
+pkgdesc="A workspace pager for fluxbox"
+arch=('i686' 'x86_64')
+url="http://benedict.isomedia.com/homes/stevencooper/projects/fluxter.html"
+license=('GPL')
+depends=('gcc-libs' 'libx11' 'libsm')
+source=(http://benedict.isomedia.com/homes/stevencooper/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6d18553220e8fc33c54762d2e7d31528')
+sha1sums=('d0da4759a21fdadc8a6457195c87b6648b5d69bc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/folks/PKGBUILD b/extra/folks/PKGBUILD
new file mode 100644
index 000000000..db0966b8d
--- /dev/null
+++ b/extra/folks/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 97061 2010-10-26 09:12:29Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=folks
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="Library to aggregates people into metacontacts "
+arch=(i686 x86_64)
+url="http://telepathy.freedesktop.org/wiki/Folks"
+license=('LGPL2.1')
+depends=('telepathy-glib>=0.12.1' 'libgee>=0.6.0' 'libxml2>=2.7.7')
+makedepends=('gobject-introspection' 'vala')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('f8eeeb6a6974416d4db1ab6b18187173fb6ff4ec7830bece379dfba9b25f2a29')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/fontconfig/29-replace-bitmap-fonts.conf b/extra/fontconfig/29-replace-bitmap-fonts.conf
new file mode 100644
index 000000000..7ac4483c4
--- /dev/null
+++ b/extra/fontconfig/29-replace-bitmap-fonts.conf
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+ <!-- Replace generic bitmap font names by generic font families.
+ These font-families will get replaced by other rules and
+ default to scaled ones. -->
+ <match target="pattern" name="family">
+ <test name="family" qual="any">
+ <string>Helvetica</string>
+ </test>
+ <edit mode="assign" name="family">
+ <string>Arial</string>
+ <string>Liberation Sans</string>
+ <string>sans-serif</string>
+ </edit>
+ </match>
+ <match target="pattern" name="family">
+ <test name="family" qual="any">
+ <string>Courier</string>
+ </test>
+ <edit mode="assign" name="family">
+ <string>Courier New</string>
+ <string>Liberation Mono</string>
+ <string>monospace</string>
+ </edit>
+ </match>
+ <match target="pattern" name="family">
+ <test name="family" qual="any">
+ <string>Times</string>
+ </test>
+ <edit mode="assign" name="family">
+ <string>Times New Roman</string>
+ <string>Liberation Serif</string>
+ <string>serif</string>
+ </edit>
+ </match>
+</fontconfig>
diff --git a/extra/fontconfig/30-urw-aliases.patch b/extra/fontconfig/30-urw-aliases.patch
new file mode 100644
index 000000000..8077b869e
--- /dev/null
+++ b/extra/fontconfig/30-urw-aliases.patch
@@ -0,0 +1,13 @@
+--- a/conf.d/30-urw-aliases.conf 2009-08-06 16:23:57.000000000 +0100
++++ b/conf.d/30-urw-aliases.conf 2009-08-06 16:25:07.000000000 +0100
+@@ -29,6 +29,10 @@
+ <family>Zapf Dingbats</family>
+ <accept><family>Dingbats</family></accept>
+ </alias>
++ <alias binding="same">
++ <family>ZapfDingbats</family>
++ <accept><family>Dingbats</family></accept>
++ </alias>
+ <match target="pattern">
+ <test name="family">
+ <string>Symbol</string>
diff --git a/extra/fontconfig/PKGBUILD b/extra/fontconfig/PKGBUILD
new file mode 100644
index 000000000..701f308a0
--- /dev/null
+++ b/extra/fontconfig/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 59982 2009-11-29 20:19:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=fontconfig
+pkgver=2.8.0
+pkgrel=1
+pkgdesc="A library for configuring and customizing font access"
+arch=(i686 x86_64)
+url="http://www.fontconfig.org/release/"
+license=('custom')
+depends=('expat>=2.0.1' 'freetype2>=2.3.11')
+options=('!libtool')
+install=fontconfig.install
+source=(http://www.fontconfig.org/release/${pkgname}-${pkgver}.tar.gz
+ 29-replace-bitmap-fonts.conf
+ 30-urw-aliases.patch)
+md5sums=('77e15a92006ddc2adbb06f840d591c0e'
+ 'f6b67e8cc79197ed6abd4701911e83da'
+ '51bc6cb633b50f3c28793361738aac5b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/30-urw-aliases.patch" || return 1
+ # enable Position Independent Code for prelinking
+ export CFLAGS="${CFLAGS} -fPIC"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m644 "${srcdir}/29-replace-bitmap-fonts.conf" \
+ "${pkgdir}/etc/fonts/conf.avail" || return 1
+ rm -f ${pkgdir}/etc/fonts/conf.d/*.conf
+
+ #Install license
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/fontconfig/fontconfig.install b/extra/fontconfig/fontconfig.install
new file mode 100644
index 000000000..20feb6e52
--- /dev/null
+++ b/extra/fontconfig/fontconfig.install
@@ -0,0 +1,100 @@
+configs=('20-fix-globaladvance.conf'
+ '20-unhint-small-vera.conf'
+ '29-replace-bitmap-fonts.conf'
+ '30-metric-aliases.conf'
+ '30-urw-aliases.conf'
+ '40-nonlatin.conf'
+ '45-latin.conf'
+ '49-sansserif.conf'
+ '50-user.conf'
+ '51-local.conf'
+ '60-latin.conf'
+ '65-fonts-persian.conf'
+ '65-nonlatin.conf'
+ '69-unifont.conf'
+ '80-delicious.conf'
+ '90-synthetic.conf')
+
+post_install() {
+ echo -n "updating font cache... "
+ /sbin/ldconfig -r .
+ pushd /etc/fonts/conf.d > /dev/null
+ for config in "${configs[@]}"; do
+ ln -sf ../conf.avail/${config} .
+ done
+ popd > /dev/null
+ /usr/bin/fc-cache -f
+ echo "done."
+}
+
+post_upgrade() {
+ rm -f /etc/fonts/conf.d/10-bitmaps.conf
+ cat << _EOF
+
+===> Important Fontconfig configuration change <===
+
+ The way fontconfig is configured has been changed.
+ Configuration is done via /etc/fonts/conf.avail and conf.d.
+ Read /etc/fonts/conf.d/README for more information.
+
+ Configuration via /etc/fonts/local.conf is still possible,
+ but is no longer recommended for options available in conf.avail.
+
+_EOF
+
+ if [ `vercmp 2.4.1-1 $2` -gt 0 ]; then
+ # Upgrade from old version, place all symlinks. pre-symlink package version
+ echo -n "Linking configuration files... "
+ pushd /etc/fonts/conf.d > /dev/null
+ for config in "${configs[@]}"; do
+ ln -sf ../conf.avail/${config} .
+ done
+ popd > /dev/null
+ echo "done."
+ fi
+
+ if [ `vercmp 2.6.0-1 $2` -gt 0 ]; then
+ # pre-2.6.0 versions have missing config
+ echo -n "Adding missing configuration files... "
+ pushd /etc/fonts/conf.d > /dev/null
+ ln -sf ../conf.avail/30-metric-aliases.conf .
+ ln -sf ../conf.avail/40-nonlatin.conf .
+ ln -sf ../conf.avail/45-latin.conf .
+ popd > /dev/null
+ echo "done."
+ fi
+
+ # Remove dead links
+ echo -n "Removing outdated configuration files... "
+ for config in /etc/fonts/conf.d/*; do
+ if [ ! -f ${config} ]; then
+ rm -f ${config}
+ fi
+ done
+ echo "done."
+
+ echo -n "updating font cache... "
+ /usr/bin/fc-cache -f
+ echo "done."
+}
+
+pre_upgrade() {
+ # Link new config files not present on system yet
+ echo -n "Symlinking new configuration files... "
+ pushd /etc/fonts/conf.d > /dev/null
+ for config in "${configs[@]}"; do
+ if [ ! -f ../conf.avail/${config} ]; then
+ ln -sf ../conf.avail/${config} .
+ fi
+ done
+ popd > /dev/null
+ echo "done."
+}
+
+post_remove() {
+ pushd /etc/fonts/conf.d > /dev/null
+ for config in "${configs[@]}"; do
+ rm -f ${config}
+ done
+ popd > /dev/null
+}
diff --git a/extra/fontforge/PKGBUILD b/extra/fontforge/PKGBUILD
new file mode 100644
index 000000000..ce36e895a
--- /dev/null
+++ b/extra/fontforge/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 110943 2011-02-23 09:57:15Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=fontforge
+pkgver=20110222
+pkgrel=1
+pkgdesc='Outline and bitmap font editor'
+arch=('i686' 'x86_64')
+url='http://fontforge.sourceforge.net'
+license=('BSD')
+depends=('libxkbui' 'libxi' 'libxml2' 'pango' 'giflib' 'libtiff' 'python2')
+options=('!libtool' '!makeflags')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}_full-${pkgver}.tar.bz2")
+sha1sums=('8fada07647f102351bb1d7d1c4da487356e7142f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/python /python2 /g' Makefile.dynamic.in
+ export CFLAGS="${CFLAGS// -O2 / -O1 }" # on i686, -O2 yields FS#20430
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-type3 \
+ --enable-double \
+ --enable-devicetables \
+ --with-regular-link \
+ --with-python=python2 \
+ --enable-pyextension
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/foobillard/03_bugfixes b/extra/foobillard/03_bugfixes
new file mode 100644
index 000000000..99f282b10
--- /dev/null
+++ b/extra/foobillard/03_bugfixes
@@ -0,0 +1,36 @@
+Index: foobillard-3.0a/src/ball.c
+===================================================================
+--- foobillard-3.0a.orig/src/ball.c 2006-10-12 16:42:39.000000000 +0200
++++ foobillard-3.0a/src/ball.c 2006-10-12 16:42:48.000000000 +0200
+@@ -1821,6 +1821,7 @@
+ } else if( options_cuberef && cuberef_binds!=0 ){
+ glBindTexture(GL_TEXTURE_CUBE_MAP_ARB, cuberef_binds[i]);
+ #ifdef GL_VERTEX_PROGRAM_NV
++#ifdef USE_BALL_FRESNEL
+ {
+ myvec cam_pos2;
+ // cam_pos2=vec_scale(vec_unit(vec_diff(cam_pos,balls.ball[i].r)),BALL_D/2.5);
+@@ -1829,6 +1830,7 @@
+ BALL_D/2.0,BALL_D/2.5,0,0 );
+ }
+ #endif
++#endif
+ draw_ball(&balls.ball[i],cam_pos,cam_FOV,win_width,0);
+ }else{
+ draw_ball(&balls.ball[i],cam_pos,cam_FOV,win_width,0);
+Index: foobillard-3.0a/src/evaluate_move.c
+===================================================================
+--- foobillard-3.0a.orig/src/evaluate_move.c 2006-10-12 16:42:43.000000000 +0200
++++ foobillard-3.0a/src/evaluate_move.c 2006-10-12 16:42:48.000000000 +0200
+@@ -385,6 +385,11 @@
+ int ball_out;
+ int other_player=(act_player==1)?0:1;
+ int b1hit = BM_get_1st_ball_hit(); if (b1hit>=8) b1hit=1;
++ if(st.to_play==SN_DONE)
++ {
++ BM_reset_move_info();
++ return;
++ }
+
+ if( player[act_player].place_cue_ball ) player[act_player].place_cue_ball=0;
+ printf("EVAL start\n");
diff --git a/extra/foobillard/05_foul_explanation b/extra/foobillard/05_foul_explanation
new file mode 100644
index 000000000..af89c5e95
--- /dev/null
+++ b/extra/foobillard/05_foul_explanation
@@ -0,0 +1,262 @@
+Index: foobillard-3.0a/src/billard3d.c
+===================================================================
+--- foobillard-3.0a.orig/src/billard3d.c 2006-10-12 16:44:17.000000000 +0200
++++ foobillard-3.0a/src/billard3d.c 2006-10-12 16:44:31.000000000 +0200
+@@ -331,6 +331,8 @@
+ static textObj * winner_name_text_obj;
+ static textObj * winner_text_obj;
+
++textObj * last_fault_text;
++
+ #ifndef _WIN32
+
+ enum optionType
+@@ -3322,6 +3324,13 @@
+ if( player[act_player].text != 0 ){
+ textObj_draw( player[act_player].text );
+ }
++ /* last fault */
++ if (strcmp("x", last_fault_text->str)!=0) {
++ glTranslatef(0.0, 70.0, 0.0);
++ textObj_draw(last_fault_text);
++ glTranslatef(0.0,-70.0,0.0);
++ }
++
+ glTranslatef(0,30,0);
+ if (gametype==GAME_8BALL){
+ switch(player[act_player].half_full){
+@@ -5197,6 +5206,9 @@
+ }
+ DPRINTF("created winner text obj's\n");
+
++
++ last_fault_text = textObj_new( "x", options_help_fontname, 20 );
++
+ init_menu();
+
+ sys_set_timer(frametime_ms, Idle_timer); /* assure a framerate of max 50 fps (1frame/20ms) */
+Index: foobillard-3.0a/src/evaluate_move.c
+===================================================================
+--- foobillard-3.0a.orig/src/evaluate_move.c 2006-10-12 16:44:22.000000000 +0200
++++ foobillard-3.0a/src/evaluate_move.c 2006-10-12 16:44:31.000000000 +0200
+@@ -4,6 +4,9 @@
+ ** Copyright (C) 2001 Florian Berger
+ ** Email: harpin_floh@yahoo.de, florian.berger@jk.uni-linz.ac.at
+ **
++** Small changes to output a reason why the last shot was a fault by
++** Thorsten Gunkel <tgunkel-lists@tgunkel.de>
++**
+ ** This program is free software; you can redistribute it and/or modify
+ ** it under the terms of the GNU General Public License Version 2 as
+ ** published by the Free Software Foundation;
+@@ -108,11 +111,12 @@
+
+ /* wenn fremde kugel zuerst angespielt -> foul */
+ first_ball_hit=BM_get_1st_ball_hit();
+- if( player[act_player].half_full == BALL_FULL ){
+- if ( first_ball_hit>8 && first_ball_hit<16 ) foul=1;
+- }
+- if( player[act_player].half_full == BALL_HALF ){
+- if ( first_ball_hit>0 && first_ball_hit<8 ) foul=1;
++ if(
++ ( player[act_player].half_full == BALL_FULL && first_ball_hit>8 && first_ball_hit<16 ) ||
++ ( player[act_player].half_full == BALL_HALF && first_ball_hit>0 && first_ball_hit<8 )
++ ){
++ foul=1;
++ textObj_setText(last_fault_text, "First ball hit was not one of yours");
+ }
+
+ /* erst an 2. stelle, da oben kein foul bei break */
+@@ -146,7 +150,10 @@
+ }
+ }
+ }
+- if(eigene_da) foul=1;
++ if(eigene_da){
++ foul=1;
++ textObj_setText(last_fault_text, "You hit the 8-Ball too soon");
++ }
+ }
+
+ /* wenn angespielte kugel im strafraum */
+@@ -154,6 +161,7 @@
+ in_strafraum(BM_get_1st_ball_hit_pos()) &&
+ !BM_get_non_strafraum_wall_hit_before_1st_ball(in_strafraum) ){
+ foul=1;
++ textObj_setText(last_fault_text, "You hit a ball not behind the head string");
+ }
+
+ /* wenn eigene rein naechster */
+@@ -169,7 +177,10 @@
+ }
+
+
+- if( BM_get_balls_hit()==0 ) foul=1;
++ if( BM_get_balls_hit()==0 ){
++ foul=1;
++ textObj_setText(last_fault_text, "No Ball hit");
++ }
+
+ /* wenn weisse rein */
+ if( BM_get_white_out() ){
+@@ -177,6 +188,7 @@
+ foul=1;
+ balls.ball[0].in_game=1;
+ balls.ball[0].in_hole=0;
++ textObj_setText(last_fault_text, "White ball potted");
+ }
+
+ /* wenn foul */
+@@ -188,6 +200,8 @@
+ balls.ball[0].w=vec_xyz(0.0,0.0,0.0);
+ balls.ball[0].r=vec_xyz(0.0,-TABLE_L/4.0,0.0);
+ // balls.ball[0].r=vec_xyz(x,y,0.0);
++ } else {
++ textObj_setText(last_fault_text, "x");
+ }
+
+ /* if 8 out */
+@@ -221,6 +235,7 @@
+ else
+ {
+ player[(act_player==1)?0:1].winner=1;
++ textObj_setText(last_fault_text, "8 ball potted too soon");
+ }
+
+ }
+@@ -277,9 +292,15 @@
+ nextplayer=0;
+ }
+
+- if( BM_get_balls_hit()==0 ) foul=1;
+-
+- if( BM_get_1st_ball_hit()!=minball ) foul=1;
++ if( BM_get_balls_hit()==0 ){
++ textObj_setText(last_fault_text, "No Ball hit");
++ foul=1;
++ } else {
++ if( BM_get_1st_ball_hit()!=minball ){
++ textObj_setText(last_fault_text, "First ball hit was not the lowest");
++ foul=1;
++ }
++ }
+
+ /* wenn weisse rein */
+ if( BM_get_white_out() ){
+@@ -287,6 +308,7 @@
+ nextplayer=1;
+ pballs->ball[0].in_game=1;
+ pballs->ball[0].in_hole=0;
++ textObj_setText(last_fault_text, "White ball is potted");
+ }
+
+ /* wenn foul - weisse platzieren */
+@@ -297,6 +319,8 @@
+ pballs->ball[0].v=vec_xyz(0.0,0.0,0.0);
+ pballs->ball[0].w=vec_xyz(0.0,0.0,0.0);
+ pballs->ball[0].r=vec_xyz(0,-TABLE_L/4.0,0.0);
++ } else {
++ textObj_setText(last_fault_text, "x");
+ }
+
+ fprintf(stderr,"foul:%d, nextplayer:%d, BM_get_ball_out(9):%d\n",foul,nextplayer,BM_get_ball_out(9));
+@@ -409,6 +433,7 @@
+ act_penalty =MAX(act_penalty,(BM_get_1st_ball_hit()<=7?BM_get_1st_ball_hit():4));
+ spot_snooker_ball(pballs,0);
+ player[other_player].place_cue_ball=1;
++ textObj_setText(last_fault_text, "White ball is potted");
+ }
+
+ switch(st.to_play)
+@@ -420,6 +445,11 @@
+ foul=1;
+ act_penalty=MAX(act_penalty,b1hit);
+ printf("EVAL foul 1\n");
++ if( BM_get_balls_hit()==0 ){
++ textObj_setText(last_fault_text, "No Ball hit");
++ } else {
++ textObj_setText(last_fault_text, "First ball hit was not a red one");
++ }
+ }
+ i=1;
+ while((ball_out=BM_get_nth_ball_out(i++))>=0)
+@@ -434,6 +464,11 @@
+ act_penalty=MAX(act_penalty,ball_out);
+ foul=1;
+ printf("EVAL foul 2\n");
++ if (BM_get_white_out()){
++ textObj_setText(last_fault_text, "White ball potted");
++ } else {
++ textObj_setText(last_fault_text, "Potted ball was not a red one");
++ }
+ }
+ }
+ for(i=2;i<8;i++)
+@@ -449,6 +484,11 @@
+ foul=1;
+ printf("EVAL foul 3\n");
+ act_penalty=MAX(act_penalty,7);
++ if( BM_get_balls_hit()==0 ){
++ textObj_setText(last_fault_text, "No Ball hit");
++ } else {
++ textObj_setText(last_fault_text, "First ball hit was not a colored one");
++ }
+ }
+ color_to_pot=b1hit;
+ i=1;
+@@ -464,6 +504,11 @@
+ foul=1;
+ printf("EVAL foul 4\n");
+ act_penalty=MAX(act_penalty,ball_out==1?7:ball_out);
++ if (BM_get_white_out()){
++ textObj_setText(last_fault_text, "White ball potted");
++ } else {
++ textObj_setText(last_fault_text, "Potted ball was not a colored one");
++ }
+ }
+ }
+ if(red_balls_are_in_game)
+@@ -490,6 +535,11 @@
+ printf("EVAL foul 5\n");
+ act_penalty=MAX(act_penalty,b1hit);
+ act_penalty=MAX(act_penalty,color_to_pot);
++ if( BM_get_balls_hit()==0 ){
++ textObj_setText(last_fault_text, "No Ball hit");
++ } else {
++ textObj_setText(last_fault_text, "First ball hit was not the correct one");
++ }
+ }
+ i=1;
+ while((ball_out=BM_get_nth_ball_out(i++))>=0)
+@@ -505,6 +555,11 @@
+ printf("EVAL foul 6\n");
+ act_penalty=MAX(act_penalty,b1hit);
+ act_penalty=MAX(act_penalty,color_to_pot);
++ if (BM_get_white_out()){
++ textObj_setText(last_fault_text, "White ball potted");
++ } else {
++ textObj_setText(last_fault_text, "Potted ball was not the correct one");
++ }
+ }
+ }
+ if(!foul && act_score>0) st.to_play++;
+@@ -528,6 +583,7 @@
+ {
+ player[act_player].score += act_score ;
+ printf("EVAL no foul\n");
++ textObj_setText(last_fault_text, "x");
+ }
+ if(act_score==0 || foul)
+ {
+Index: foobillard-3.0a/src/evaluate_move.h
+===================================================================
+--- foobillard-3.0a.orig/src/evaluate_move.h 2006-10-12 16:44:24.000000000 +0200
++++ foobillard-3.0a/src/evaluate_move.h 2006-10-12 16:44:31.000000000 +0200
+@@ -31,6 +31,7 @@
+ BallsType * pballs, int * pqueue_view, float * pXque );
+ #endif
+
++extern textObj * last_fault_text;
+
+ void evaluate_last_move_8ball ( struct Player * player, int * actual_player,
+ BallsType * pballs, int * pqueue_view, float * pXque );
diff --git a/extra/foobillard/06_show_ball_to_hit b/extra/foobillard/06_show_ball_to_hit
new file mode 100644
index 000000000..9c49f58cc
--- /dev/null
+++ b/extra/foobillard/06_show_ball_to_hit
@@ -0,0 +1,255 @@
+Index: foobillard-3.0a/src/billard.c
+===================================================================
+--- foobillard-3.0a.orig/src/billard.c 2006-10-12 16:45:04.000000000 +0200
++++ foobillard-3.0a/src/billard.c 2006-10-12 16:45:23.000000000 +0200
+@@ -31,6 +31,8 @@
+ void * (*billard_malloc)( size_t size ) = malloc;
+ void (*billard_free)( void * ptr ) = free;
+
++SnookerState snooker_state={SN_PLAY_RED};
++
+ void setfunc_create_scene( void (*func)( BallsType * balls ) )
+ {
+ create_scene=func;
+Index: foobillard-3.0a/src/billard.h
+===================================================================
+--- foobillard-3.0a.orig/src/billard.h 2006-10-12 16:45:05.000000000 +0200
++++ foobillard-3.0a/src/billard.h 2006-10-12 16:45:23.000000000 +0200
+@@ -76,9 +76,30 @@
+ #define BALL_HALF 2
+ #define BALL_ANY 0
+
++typedef enum
++{
++ SN_PLAY_RED,
++ SN_PLAY_ANY_COLOR,
++ SN_PLAY_YELLOW,
++ SN_PLAY_GREEN,
++ SN_PLAY_BROWN,
++ SN_PLAY_BLUE,
++ SN_PLAY_PINK,
++ SN_PLAY_BLACK,
++ SN_DONE
++}
++SnookerBallToPlay;
++
++typedef struct
++{
++ SnookerBallToPlay to_play;
++}
++SnookerState;
++
+ #ifndef BILLARD_C
+ extern void (*create_scene)( BallsType * balls );
+ extern void (*create_walls)( BordersType * walls );
++extern SnookerState snooker_state;
+ #endif
+
+ void create_0hole_walls( BordersType * walls ); /* carambol */
+Index: foobillard-3.0a/src/billard3d.c
+===================================================================
+--- foobillard-3.0a.orig/src/billard3d.c 2006-10-12 16:45:08.000000000 +0200
++++ foobillard-3.0a/src/billard3d.c 2006-10-12 16:45:23.000000000 +0200
+@@ -829,6 +829,7 @@
+ player[act_player].place_cue_ball=1;
+ human_player_roster.player[0].cue_ball=0; human_player_roster.player[1].cue_ball=0;
+ human_player_roster.player[act_player].place_cue_ball=1;
++ snooker_state.to_play=SN_PLAY_RED;
+ }
+ }
+
+@@ -1787,6 +1788,7 @@
+ /* score text */
+ for(i=0;i<2;i++){
+ char str[256];
++ char *color;
+ switch(gametype){
+ case GAME_8BALL: strcpy(str,"0"); break;
+ case GAME_9BALL:
+@@ -1805,7 +1807,44 @@
+ sprintf( str, "%d", player[i].score );
+ break;
+ case GAME_SNOOKER:
+- sprintf( str, "%c%03d %s", (player[i].score<0)?'-':'+', abs(player[i].score), player[i].snooker_on_red ? "red":"col" );
++ switch(snooker_state.to_play)
++ {
++ case SN_PLAY_RED:
++ color="red";
++ break;
++ case SN_PLAY_ANY_COLOR:
++ color="color";
++ break;
++ case SN_PLAY_YELLOW:
++ color="yellow";
++ break;
++ case SN_PLAY_GREEN:
++ color="green";
++ break;
++ case SN_PLAY_BROWN:
++ color="brown";
++ break;
++ case SN_PLAY_BLUE:
++ color="blue";
++ break;
++ case SN_PLAY_PINK:
++ color="pink";
++ break;
++ case SN_PLAY_BLACK:
++ color="black";
++ break;
++ case SN_DONE:
++ color="";
++ break;
++ }
++ if(i==act_player)
++ {
++ sprintf( str, "%.3d %s", player[i].score, color);
++ }
++ else
++ {
++ sprintf( str, "%.3d", player[i].score);
++ }
+ break;
+ }
+ textObj_setText( player[i].score_text, str );
+Index: foobillard-3.0a/src/evaluate_move.c
+===================================================================
+--- foobillard-3.0a.orig/src/evaluate_move.c 2006-10-12 16:45:12.000000000 +0200
++++ foobillard-3.0a/src/evaluate_move.c 2006-10-12 16:45:23.000000000 +0200
+@@ -30,26 +30,6 @@
+
+ #define MAX(x,y) ((x)>(y)?(x):(y));
+
+-typedef enum
+-{
+- SN_PLAY_RED,
+- SN_PLAY_ANY_COLOR,
+- SN_PLAY_YELLOW,
+- SN_PLAY_GREEN,
+- SN_PLAY_BROWN,
+- SN_PLAY_BLUE,
+- SN_PLAY_PINK,
+- SN_PLAY_BLACK,
+- SN_DONE
+-}
+-SnookerBallToPlay;
+-
+-typedef struct
+-{
+- SnookerBallToPlay to_play;
+-}
+-SnookerState;
+-
+
+ void spot_snooker_ball(BallsType *balls,int nr);
+
+@@ -400,7 +380,6 @@
+ #define act_player (*pact_player)
+ #define IS_RED(x) ( x==1 || x>=8 )
+ int red_balls_are_in_game=0;
+- static SnookerState st={SN_PLAY_RED};
+ int color_to_pot;
+ int i;
+ int act_score=0;
+@@ -409,7 +388,7 @@
+ int ball_out;
+ int other_player=(act_player==1)?0:1;
+ int b1hit = BM_get_1st_ball_hit(); if (b1hit>=8) b1hit=1;
+- if(st.to_play==SN_DONE)
++ if(snooker_state.to_play==SN_DONE)
+ {
+ BM_reset_move_info();
+ return;
+@@ -417,7 +396,7 @@
+
+ if( player[act_player].place_cue_ball ) player[act_player].place_cue_ball=0;
+ printf("EVAL start\n");
+- printf("EVAL to_play=%d\n",st.to_play);
++ printf("EVAL to_play=%d\n",snooker_state.to_play);
+ printf("EVAL b1hit=%d\n",b1hit);
+ for(i=0;i<pballs->nr;i++){
+ if( IS_RED(pballs->ball[i].nr) && pballs->ball[i].in_game ){
+@@ -436,7 +415,7 @@
+ textObj_setText(last_fault_text, "White ball is potted");
+ }
+
+- switch(st.to_play)
++ switch(snooker_state.to_play)
+ {
+ case SN_PLAY_RED:
+ color_to_pot=1;
+@@ -476,7 +455,7 @@
+ if( BM_get_ball_out(i))
+ spot_snooker_ball(pballs,i);
+ }
+- st.to_play=SN_PLAY_ANY_COLOR;
++ snooker_state.to_play=SN_PLAY_ANY_COLOR;
+ break;
+ case SN_PLAY_ANY_COLOR:
+ if(b1hit==1)
+@@ -512,9 +491,9 @@
+ }
+ }
+ if(red_balls_are_in_game)
+- st.to_play=SN_PLAY_RED;
++ snooker_state.to_play=SN_PLAY_RED;
+ else
+- st.to_play=SN_PLAY_YELLOW;
++ snooker_state.to_play=SN_PLAY_YELLOW;
+
+ for(i=2;i<8;i++)
+ {
+@@ -528,7 +507,7 @@
+ case SN_PLAY_BLUE:
+ case SN_PLAY_PINK:
+ case SN_PLAY_BLACK:
+- color_to_pot=st.to_play;
++ color_to_pot=snooker_state.to_play;
+ if(b1hit!=color_to_pot)
+ {
+ foul=1;
+@@ -562,9 +541,9 @@
+ }
+ }
+ }
+- if(!foul && act_score>0) st.to_play++;
++ if(!foul && act_score>0) snooker_state.to_play++;
+
+- for(i=st.to_play;i<8;i++)
++ for(i=snooker_state.to_play;i<8;i++)
+ {
+ if( BM_get_ball_out(i))
+ spot_snooker_ball(pballs,i);
+@@ -590,13 +569,13 @@
+ printf("EVAL next player\n");
+ if(red_balls_are_in_game)
+ {
+- st.to_play=SN_PLAY_RED;
++ snooker_state.to_play=SN_PLAY_RED;
+ }
+ else
+ {
+- if(st.to_play<=SN_PLAY_ANY_COLOR)
++ if(snooker_state.to_play<=SN_PLAY_ANY_COLOR)
+ {
+- st.to_play=SN_PLAY_YELLOW;
++ snooker_state.to_play=SN_PLAY_YELLOW;
+ }
+ }
+ player[act_player].queue_view=*pqueue_view;
+@@ -605,11 +584,11 @@
+ *pqueue_view=player[act_player].queue_view;
+ }
+
+- player[act_player].snooker_on_red=st.to_play==SN_PLAY_RED;
+- player[act_player].snooker_next_color=st.to_play;
+- printf("EVAL to_play=%d\n",st.to_play);
++ player[act_player].snooker_on_red=snooker_state.to_play==SN_PLAY_RED;
++ player[act_player].snooker_next_color=snooker_state.to_play;
++ printf("EVAL to_play=%d\n",snooker_state.to_play);
+
+- if(st.to_play==SN_DONE)
++ if(snooker_state.to_play==SN_DONE)
+ {
+ int other_player;
+
diff --git a/extra/foobillard/ChangeLog b/extra/foobillard/ChangeLog
new file mode 100644
index 000000000..0b82e7aec
--- /dev/null
+++ b/extra/foobillard/ChangeLog
@@ -0,0 +1,16 @@
+2010-07-10 Eric Belanger <eric@archlinux.org>
+
+ * foobillard 3.0a-6
+ * Fixed hang after a draw in snooker (close FS#18631)
+ * Removed unneeded libxaw and libxi depends
+
+2010-01-18 Eric Belanger <eric@archlinux.org>
+
+ * foobillard 3.0a-4
+ * Rebuilt for libpng 1.4 and libjpeg 8
+ * Added bug fix and improvement patches
+ * Fixed license
+ * Updated url
+ * Added man page
+ * Added desktop file and icon
+ * Added ChangeLog
diff --git a/extra/foobillard/PKGBUILD b/extra/foobillard/PKGBUILD
new file mode 100644
index 000000000..decb5c49d
--- /dev/null
+++ b/extra/foobillard/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 85242 2010-07-11 02:23:37Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=foobillard
+pkgver=3.0a
+pkgrel=6
+pkgdesc="An OpenGL billiard game for Linux"
+arch=('i686' 'x86_64')
+url="http://foobillard.sourceforge.net/"
+license=('GPL2' 'custom')
+depends=('sdl' 'freetype2' 'libpng' 'mesa')
+changelog=ChangeLog
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz \
+ foobillard.desktop foobillard.png 03_bugfixes 05_foul_explanation \
+ 06_show_ball_to_hit snooker_reset.patch snooker_draw.patch)
+md5sums=('c2d92edeaaf8bfb18aa26f1c79931b7d' '436f76ad44910a2524a38ff158bc32fc'\
+ '4bb47566197a252388bf49583536dd4d' '4400c87674b8a442c0cbbd619e118cd3'\
+ '0b79b9b71bebd7e0e1584f0593cc348d' 'eed13569ab099054619137eabce96045'\
+ '329ddc735af17f33df99c5fe7ff672b9' '97f04be3ad4a0f78c6d7a8b658099a5d')
+sha1sums=('1caa51a201b55883640b5c5b1e9fde20fc71a095' '7e820e047497eae5f3d495cc8c61870d7b438a2e'\
+ '67db7b2a96784ff3baaeca9610414376210e5c49' '119aa2bfcfb2b074e0d9b441441808c22eacf625'\
+ '347535e3db4b04caab2f040779576229b2ce71ac' '11cff3e62fccd101cc85d58cc0d0eb4a1b99670f'\
+ '405a64db7e92e7ba046dd9007d4bf1433914ef79' 'a3151458667488117524ce8948b0d101657ad425')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's/-lXaw//' -e 's/-lXi//' src/Makefile.in
+ patch -p1 < ../03_bugfixes
+ patch -p1 < ../05_foul_explanation
+ patch -p1 < ../06_show_ball_to_hit
+ patch -p0 < ../snooker_reset.patch
+ patch -p0 < ../snooker_draw.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 foobillard.6 "${pkgdir}/usr/share/man/man6/foobillard.6"
+ install -D -m644 README.FONTS "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.FONTS"
+ install -D -m644 ../foobillard.desktop "${pkgdir}/usr/share/applications/foobillard.desktop"
+ install -D -m644 ../foobillard.png "${pkgdir}/usr/share/pixmaps/foobillard.png"
+}
diff --git a/extra/foobillard/foobillard.desktop b/extra/foobillard/foobillard.desktop
new file mode 100644
index 000000000..1028c19f5
--- /dev/null
+++ b/extra/foobillard/foobillard.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Foobillard
+Comment=A 3D billiards game using OpenGL
+Exec=foobillard
+Icon=foobillard.png
+Terminal=false
+Type=Application
+Categories=Game;SportsGame;
+StartupNotify=false
diff --git a/extra/foobillard/foobillard.png b/extra/foobillard/foobillard.png
new file mode 100644
index 000000000..c57fadb30
--- /dev/null
+++ b/extra/foobillard/foobillard.png
Binary files differ
diff --git a/extra/foobillard/snooker_draw.patch b/extra/foobillard/snooker_draw.patch
new file mode 100644
index 000000000..1d45e9498
--- /dev/null
+++ b/extra/foobillard/snooker_draw.patch
@@ -0,0 +1,48 @@
+Index: src/evaluate_move.c
+===================================================================
+--- src/evaluate_move.c (revision 6)
++++ src/evaluate_move.c (working copy)
+@@ -602,6 +602,11 @@
+ player[act_player].winner=0;
+ player[other_player].winner=1;
+ }
++ if(player[act_player].score==player[other_player].score) {
++ player[act_player].winner=1;
++ player[other_player].winner=1;
++ }
++
+ }
+
+ printf("EVAL done\n");
+Index: src/billard3d.c
+===================================================================
+--- src/billard3d.c (revision 6)
++++ src/billard3d.c (working copy)
+@@ -1760,8 +1760,17 @@
+ options_gamemode==options_gamemode_tournament &&
+ (player[0].winner || player[1].winner) )
+ {
+- tournament_evaluate_last_match( &tournament_state );
+- tournament_state.wait_for_next_match=1;
++ if ( player[0].winner == player[1].winner )
++ { // Draw
++ restart_game_common();
++ player[act_player].winner=0;
++ player[other_player].winner=0;
++ }
++ else
++ {
++ tournament_evaluate_last_match( &tournament_state );
++ tournament_state.wait_for_next_match=1;
++ }
+ }
+ } else {
+ int old_cueball_ind;
+@@ -3654,6 +3663,7 @@
+ create_walls( &walls );
+ create_scene( &balls );
+ g_shot_due=1;
++ snooker_state.to_play=SN_PLAY_RED;
+ }
+
+
diff --git a/extra/foobillard/snooker_reset.patch b/extra/foobillard/snooker_reset.patch
new file mode 100644
index 000000000..392226ec3
--- /dev/null
+++ b/extra/foobillard/snooker_reset.patch
@@ -0,0 +1,11 @@
+--- src/billard3d.c 2010-02-27 04:01:40.000000000 -0600
++++ src/billard3d.c 2010-02-27 04:02:59.000000000 -0600
+@@ -1219,6 +1219,8 @@
+ printf("tournament_state_setup_next_match 7\n");
+ queue_view=player[act_player].queue_view;
+ printf("tournament_state_setup_next_match 8\n");
++ snooker_state.to_play = SN_PLAY_RED;
++ printf("tournament_state_setup_next_match 9\n");
+ }
+
+ void create_players_text()
diff --git a/extra/foomatic/PKGBUILD b/extra/foomatic/PKGBUILD
new file mode 100644
index 000000000..8c58575cd
--- /dev/null
+++ b/extra/foomatic/PKGBUILD
@@ -0,0 +1,97 @@
+# $Id: PKGBUILD 103148 2010-12-15 21:11:48Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase="foomatic"
+pkgname=('foomatic-db' 'foomatic-filters' 'foomatic-db-engine' 'foomatic-db-nonfree')
+arch=('i686' 'x86_64') # needs to be changed in the subpackages when makepkg will support it
+_snapdate=20101215
+_relver=4.0.6
+pkgver=${_relver}_${_snapdate}
+pkgrel=1
+makedepends=('cups>=1.4.2' 'perl' 'libxml2' 'enscript' 'perl' 'net-snmp' 'bash')
+source=(http://www.linuxprinting.org/download/foomatic/$pkgbase-{filters,db-engine}-${_relver}.tar.gz
+ http://www.linuxprinting.org/download/foomatic/$pkgbase-db-4.0-${_snapdate}.tar.gz
+ http://www.linuxprinting.org/download/foomatic/$pkgbase-db-nonfree-${_snapdate}.tar.gz)
+url="http://www.linuxprinting.org/foomatic.html"
+options=('force' '!emptydirs')
+md5sums=('fd99dac3a36807a47ffa4f9eb15c1b07'
+ '0893a4a9705ffd7305bc50cbb951daf9'
+ 'f801fab0b210cc61f217bede1963cd0e'
+ 'f51e447404b32949057307a1bc4d1b5e')
+md5sums=('9bca3d3d83192a3741a34bd9b1859b1e'
+ 'b34f17b56304b48e3e90c1c6c8f2c287'
+ 'f99807cb4d5da437ddf02c843f92eaca'
+ '21040845f5fcb2bbdfa814bae934fd8d')
+
+build() {
+ /bin/true
+}
+
+package_foomatic-db() {
+
+ pkgdesc="Foomatic - The collected knowledge about printers, drivers, and driver options in XML files, used by foomatic-db-engine to generate PPD files."
+# arch=('any')
+ license=('GPL' 'custom')
+ depends=('perl' 'libxml2')
+ replaces=('foomatic-db-ppd' 'foomatic-db-hpijs')
+ conflicts=('foomatic-db-ppd' 'foomatic-db-hpijs')
+ provides=('foomatic-db-hpijs')
+
+ cd ${srcdir}/${pkgname}-${_snapdate}
+ ./configure --prefix=/usr
+ make DESTDIR=${pkgdir} install || return 1
+ install -v -Dm644 ${srcdir}/${pkgname}-${_snapdate}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING || return 1
+}
+
+package_foomatic-filters() {
+
+ pkgdesc="Foomatic - Filter scripts used by the printer spoolers to convert the incoming PostScript data into the printer's native format."
+# arch=('i686' 'x86_64')
+ license=('GPL')
+ backup=(etc/foomatic/filter.conf)
+ depends=('glibc')
+ optdepends=('perl: for the "beh" Backend End Handler used by cups'
+ 'net-snmp: certain (mostly HP) printers need it to work')
+
+# cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${srcdir}/foomatic-filters-${_relver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
+
+package_foomatic-db-engine() {
+
+ pkgdesc="Foomatic - Foomatic's database engine generates PPD files from the data in Foomatic's XML database. It also contains scripts to directly generate print queues and handle jobs."
+# arch=(i686 x86_64)
+ license=('GPL')
+ depends=('perl' 'libxml2' 'foomatic-filters' 'bash')
+
+# cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${srcdir}/foomatic-db-engine-${_relver}
+ ./configure --prefix=/usr
+ make || return 1
+ eval `perl -V:archname`
+ make DESTDIR=${pkgdir} \
+ INSTALLARCHLIB=/usr/lib/perl5/vendor_perl/ \
+ INSTALLSITELIB=/usr/lib/perl5/vendor_perl/ \
+ INSTALLSITEARCH=/usr/lib/perl5/vendor_perl/ install || return 1
+ /usr/bin/find ${pkgdir} -name '.packlist' -delete
+ # fix permissions
+ chmod 755 ${pkgdir}/usr/lib{,/perl5,/perl5/vendor_perl}
+}
+
+package_foomatic-db-nonfree() {
+
+ pkgdesc="Foomatic - database extension consisting of manufacturer-supplied PPD files released under non-free licenses"
+# arch=('any')
+ license=('custom')
+ depends=('perl' 'libxml2' "foomatic-db-engine" 'foomatic-db')
+
+# cd ${srcdir}/${pkgname}-${_snapdate}
+ cd ${srcdir}/foomatic-db-nonfree-${_snapdate}
+ ./configure --prefix=/usr
+ make DESTDIR=${pkgdir} install || return 1
+# install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING || return 1
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/foomatic-db-nonfree/COPYING || return 1
+}
diff --git a/extra/fortune-mod/01_all_fortune_all-fix.patch b/extra/fortune-mod/01_all_fortune_all-fix.patch
new file mode 100644
index 000000000..b4175ac81
--- /dev/null
+++ b/extra/fortune-mod/01_all_fortune_all-fix.patch
@@ -0,0 +1,21 @@
+--- fortune/fortune.c.old 2006-03-11 15:33:14.000000000 +0100
++++ fortune/fortune.c 2006-03-11 15:43:16.000000000 +0100
+@@ -974,7 +974,7 @@
+ if (!ret)
+ ret=add_file(percent, fullpathname, NULL, &File_list,
+ &File_tail, NULL);
+- if ( (!ret && fullpathname != locpathname) || strcmp(sp, "all") == 0 )
++ if (!ret && strncmp(fullpathname, locpathname, sizeof(fullpathname)))
+ ret=add_file(percent, locpathname, NULL, &File_list,
+ &File_tail, NULL);
+
+@@ -985,7 +985,8 @@
+ }
+ if (!ret)
+ return FALSE;
+-
++ if (strncmp(fullpathname, locpathname, sizeof(fullpathname)) && strcmp(sp, "all") == 0)
++ add_file(percent, locpathname, NULL, &File_list, &File_tail, NULL);
+ }
+ else
+ if (!add_file(percent, fullpathname, NULL, &File_list,
diff --git a/extra/fortune-mod/LICENSE b/extra/fortune-mod/LICENSE
new file mode 100644
index 000000000..d0ad75977
--- /dev/null
+++ b/extra/fortune-mod/LICENSE
@@ -0,0 +1,35 @@
+/*-
+ * Copyright (c) 1986, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Ken Arnold.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
diff --git a/extra/fortune-mod/PKGBUILD b/extra/fortune-mod/PKGBUILD
new file mode 100644
index 000000000..0737c5ab2
--- /dev/null
+++ b/extra/fortune-mod/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 30775 2009-03-21 22:49:21Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Dale Blount <archlinux@dale.us>
+
+pkgname=fortune-mod
+pkgver=1.99.1
+pkgrel=4
+pkgdesc="The Fortune Cookie Program from BSD games"
+arch=('i686' 'x86_64')
+url="http://www.redellipse.net/code/fortune"
+license=('BSD')
+depends=('recode')
+source=(ftp://ftp.archlinux.org/other/fortune-mod/$pkgname-$pkgver.tar.gz LICENSE 01_all_fortune_all-fix.patch)
+md5sums=('f208805b3b712e32997d7667e0ec52d8' '0217481ae93971296cfb7872157cabb7'\
+ 'e85b073f16dc6f0e8f0ed90044797aa3')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p0 < ../01_all_fortune_all-fix.patch || return 1
+ make REGEXDEFS='-DHAVE_REGEX_H -DPOSIX_REGEX -DHAVE_STDBOOL' \
+ COOKIEDIR=/usr/share/fortune \
+ LOCALDIR=/usr/local/share/fortune || return 1
+ make COOKIEDIR=/usr/share/fortune fortune/fortune.man || return 1
+ make FORTDIR=$pkgdir/usr/bin \
+ COOKIEDIR=$pkgdir/usr/share/fortune \
+ BINDIR=$pkgdir/usr/sbin \
+ BINMANDIR=$pkgdir/usr/share/man/man1 \
+ FORTMANDIR=$pkgdir/usr/share/man/man6 install || return 1
+ rm $pkgdir/usr/share/fortune/*.u8
+ rm $pkgdir/usr/share/fortune/off/*.u8
+ install -D -m644 ../LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/fping/PKGBUILD b/extra/fping/PKGBUILD
new file mode 100644
index 000000000..409850594
--- /dev/null
+++ b/extra/fping/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 68034 2010-02-10 15:03:09Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=fping
+pkgver=2.4b2
+pkgrel=3
+pkgdesc="A utility to ping multiple hosts at once"
+arch=('i686' 'x86_64')
+url="http://www.fping.com/"
+license=('custom')
+depends=('glibc')
+source=(http://fping.sourceforge.net/download/fping.tar.gz)
+md5sums=('d5e8be59e307cef76bc479e1684df705')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver\_to
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE" || return 1
+ chmod 4755 ${pkgdir}/usr/sbin/fping
+}
diff --git a/extra/fprint_demo/PKGBUILD b/extra/fprint_demo/PKGBUILD
new file mode 100644
index 000000000..c03d8e516
--- /dev/null
+++ b/extra/fprint_demo/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 49882 2009-08-16 19:52:26Z jgc $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=fprint_demo
+pkgver=0.4
+pkgrel=2
+pkgdesc="Simple GTK+ application to demonstrate and test libfprint's capabilities"
+arch=('i686' 'x86_64')
+url="http://reactivated.net/fprint/wiki/Main_Page"
+license=('LGPL')
+groups=('fprint')
+depends=('libfprint')
+source=(http://downloads.sourceforge.net/sourceforge/fprint/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('32e663a938e19801bdd17105d5c4d310')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/freealut/PKGBUILD b/extra/freealut/PKGBUILD
new file mode 100644
index 000000000..b334ea987
--- /dev/null
+++ b/extra/freealut/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 27261 2009-02-18 02:47:12Z eric $
+# Maintainer: Dorphell
+# Maintainer: Travis Willard <travisw@wmpub.ca>
+# Contributor: Arkamririon <Arkamririon@gmx.net>
+
+pkgname=freealut
+pkgver=1.1.0
+pkgrel=3
+pkgdesc="OpenAL Utility Toolkit (ALUT)"
+arch=('i686' 'x86_64')
+url="http://www.openal.org"
+license=("LGPL")
+depends=('openal>=1.6.372')
+source=(http://connect.creativelabs.com/openal/Downloads/ALUT/$pkgname-$pkgver.tar.gz)
+md5sums=('e089b28a0267faabdb6c079ee173664a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+ find $startdir/pkg -name '*.la' -exec rm {} \;
+}
diff --git a/extra/freeciv/PKGBUILD b/extra/freeciv/PKGBUILD
new file mode 100644
index 000000000..a43010488
--- /dev/null
+++ b/extra/freeciv/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115046 2011-03-16 15:19:54Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=freeciv
+pkgver=2.2.5
+pkgrel=1
+pkgdesc="A multiuser clone of the famous Microprose game of Civilization"
+arch=('i686' 'x86_64')
+url="http://www.freeciv.org/"
+license=('GPL')
+depends=('gtk2' 'sdl_mixer' 'readline' 'bzip2')
+options=('!libtool')
+install=freeciv.install
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e717de02c77139593f21b930245d1709')
+sha1sums=('b204c4ae581be632fd2385517ada62558d48e702')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-client=gtk --enable-shared
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/freeciv/freeciv.install b/extra/freeciv/freeciv.install
new file mode 100644
index 000000000..17ca8f78a
--- /dev/null
+++ b/extra/freeciv/freeciv.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/freeglut/2.6.0-GFX_radeon.patch b/extra/freeglut/2.6.0-GFX_radeon.patch
new file mode 100644
index 000000000..8806fe849
--- /dev/null
+++ b/extra/freeglut/2.6.0-GFX_radeon.patch
@@ -0,0 +1,28 @@
+Index: src/freeglut_window.c
+===================================================================
+--- src/freeglut_window.c (Revision 832)
++++ src/freeglut_window.c (Arbeitskopie)
+@@ -594,10 +594,9 @@
+ #if TARGET_HOST_POSIX_X11
+ if ( window )
+ {
+- glXMakeContextCurrent(
++ glXMakeCurrent(
+ fgDisplay.Display,
+ window->Window.Handle,
+- window->Window.Handle,
+ window->Window.Context
+ );
+
+@@ -932,10 +932,9 @@
+ XSetWMProtocols( fgDisplay.Display, window->Window.Handle,
+ &fgDisplay.DeleteWindow, 1 );
+
+- glXMakeContextCurrent(
++ glXMakeCurrent(
+ fgDisplay.Display,
+ window->Window.Handle,
+- window->Window.Handle,
+ window->Window.Context
+ );
+
diff --git a/extra/freeglut/ChangeLog b/extra/freeglut/ChangeLog
new file mode 100644
index 000000000..7dd6847f9
--- /dev/null
+++ b/extra/freeglut/ChangeLog
@@ -0,0 +1,8 @@
+2009-12-30 Eric Belanger <eric@archlinux.org>
+
+ * freeglut 2.6.0-1
+ * Upstream update
+ * Added libxi depends
+ * Changed license to MIT
+ * Added patch to fix an issue with the radeon[hd] ATI opensource drivers
+ * Added ChangeLog
diff --git a/extra/freeglut/PKGBUILD b/extra/freeglut/PKGBUILD
new file mode 100644
index 000000000..ac748f8ee
--- /dev/null
+++ b/extra/freeglut/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 62079 2010-01-01 23:53:58Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=freeglut
+pkgver=2.6.0
+pkgrel=1
+pkgdesc="Provides functionality for small OpenGL programs"
+arch=('i686' 'x86_64')
+url="http://freeglut.sourceforge.net/"
+license=('MIT')
+depends=('libxxf86vm' 'mesa' 'libxi')
+replaces=('glut')
+provides=('glut')
+conflicts=('glut')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/freeglut/${pkgname}-${pkgver}.tar.gz \
+ 2.6.0-GFX_radeon.patch)
+md5sums=('39f0f2de89f399529d2b981188082218' '6d0a018fe4f0bc9ace2b244ca59514d3')
+sha1sums=('68306c4486c13d005a4e4d54035e0c0b1bdc220b' '2e392c7d0b60016ec89e6a5edf504f5722351b95')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+# fixes an issue with the radeon[hd] ATI opensource drivers
+# ref: http://bugs.gentoo.org/show_bug.cgi?id=295163
+ patch -p0 -i "${srcdir}/2.6.0-GFX_radeon.patch" || return 1
+
+ ./configure --prefix=/usr || return 1
+ make all || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/freenx/PKGBUILD b/extra/freenx/PKGBUILD
new file mode 100644
index 000000000..bbaa11d59
--- /dev/null
+++ b/extra/freenx/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 108550 2011-02-01 08:10:47Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+#Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+pkgname=freenx
+pkgver=0.7.3
+pkgrel=8
+pkgdesc="Free Software (GPL) Implementation of the NX Server"
+arch=(i686 x86_64)
+url="http://freenx.berlios.de"
+license=('GPL')
+depends=('nxserver' 'gnu-netcat' 'openssh' 'expect' 'xorg-xauth' 'xorg-apps' 'xorg-fonts-misc' 'coreutils' 'xorg-xmessage')
+backup=(opt/NX/etc/node.conf)
+install=freenx.install
+source=(http://download.berlios.de/freenx/$pkgname-server-$pkgver.tar.gz
+ keymap.patch
+ nxagent-startup.patch
+ freenx-latest-svn.patch
+ remove-dialog.patch)
+
+
+build() {
+ # patch and install nxserver
+ cd $startdir/src/$pkgname-server-$pkgver
+ # add latest svn fixes
+ patch -Np3 -i ../freenx-latest-svn.patch
+ # patch from inside nx
+ patch < gentoo-nomachine.diff
+ # patch broken keymap remapping
+ patch -Np0 -i ${srcdir}/keymap.patch
+ # patch nxagent startup to avoid login issues
+ patch -Np0 -i ${srcdir}/nxagent-startup.patch
+ # remove broken dialog function
+ patch -Np0 -i ${srcdir}/remove-dialog.patch
+ sed -i -e 's,authorized_keys2,authorized_keys,g' nxloadconfig
+ sed -i -e 's,/usr/NX,/opt/NX,g' nxloadconfig
+ sed -i -e 's,netcat,nc,g' nxloadconfig
+ sed -i -e 's/utmp/nx/g' nxsetup
+ sed -i -e 's,/usr/X11R6/bin/xauth,/usr/bin/xauth,g' nxloadconfig
+ sed -i -e 's,COMMAND_FOOMATIC="/usr/lib/cups/driver/foomatic-ppdfile",COMMAND_FOOMATIC="/usr/bin/foomatic-ppdfile",g' nxloadconfig
+ sed -i -e 's,COMMAND_MD5SUM="openssl md5",COMMAND_MD5SUM="md5sum",g' nxloadconfig
+ sed -i -e 's|AGENT_EXTRA_OPTIONS_X=""|AGENT_EXTRA_OPTIONS_X="-co /usr/share/X11/rgb -fp /usr/share/fonts/misc,/usr/share/fonts/75dpi,/usr/share/fonts/100dpi,/usr/share/fonts/TTF,/usr/share/fonts/Type1 -xkbdir /usr/share/X11/xkb"|g' nxloadconfig
+ sed -i -e 's/ENABLE_AUTORECONNECT_BEFORE_140="1"/ENABLE_AUTORECONNECT_BEFORE_140="0"/g' nxloadconfig
+ sed -i -e 's,/etc/init.d/ssh,/etc/rc.d/sshd,g' nxsetup
+ sed -i -e 's,libXcomp.so,libXcomp.so.3,g' nxloadconfig
+ sed -i -e 's,libXcompext.so,libXcompext.so.3,g' nxloadconfig
+ sed -i -e 's,libXrender.so.1.2,libXrender.so.1.2.2:$APPLICATION_LIBRARY_PATH/libXcompsh.so.3:$APPLICATION_LIBRARY_PATH/libXcompshad.so.3,g' nxloadconfig
+ # fix key generation
+ sed -i -e 's,AUTOMATIC="no",AUTOMATIC="yes",g' nxsetup
+}
+
+package() {
+ cd $startdir/src/$pkgname-server-$pkgver
+ install -D -m755 nxnode $startdir/pkg/opt/NX/bin/nxnode
+ install -D -m755 nxserver $startdir/pkg/opt/NX/bin/nxserver
+ install -D -m755 nxsetup $startdir/pkg/opt/NX/bin/nxsetup
+ install -D -m755 nxkeygen $startdir/pkg/opt/NX/bin/nxkeygen
+ install -D -m755 nxnode-login $startdir/pkg/opt/NX/bin/nxnode-login
+ install -D -m755 nxloadconfig $startdir/pkg/opt/NX/bin/nxloadconfig
+ install -D -m755 nxdialog $startdir/pkg/opt/NX/bin/nxdialog
+ install -D -m755 nxviewer_helper $startdir/pkg/opt/NX/bin/nxviever_helper
+ install -D -m755 nxcups-gethost $startdir/pkg/opt/NX/bin/nxcups-gethost
+ install -D -m755 nxdesktop_helper $startdir/pkg/opt/NX/bin/nxdesktop_helper
+ # provided by nxclient!
+ #install -D -m755 nxprint $startdir/pkg/opt/NX/bin/nxprint
+ install -D -m755 node.conf.sample $startdir/pkg/opt/NX/etc/node.conf
+ # install nxhelper
+ cd nxserver-helper
+ make
+ install -D -m755 nxserver-helper $startdir/pkg/opt/NX/bin/nxserver-helper
+ # create nxserver homedir
+ mkdir -m700 -p $startdir/pkg/opt/NX/home/nx
+}
+md5sums=('856f597e139018f7ed62713c9d6c9ed5'
+ 'f0867659c925f6363fb2b7661f349248'
+ '30dc16d8e2093ff71d5834a169ad9d00'
+ '788f30322783cf2c2dc833e2e4d5e8ad'
+ 'cae1773312506eeefe6a8de07c492bd8')
diff --git a/extra/freenx/freenx-latest-svn.patch b/extra/freenx/freenx-latest-svn.patch
new file mode 100644
index 000000000..bcc8ddd17
--- /dev/null
+++ b/extra/freenx/freenx-latest-svn.patch
@@ -0,0 +1,288 @@
+diff -ur freenx-server-0.7.3//ChangeLog ../trunk/freenx-server//ChangeLog
+--- freenx-server-0.7.3//ChangeLog 2008-08-22 02:44:43.000000000 +0200
++++ ../trunk/freenx-server//ChangeLog 2011-01-26 23:23:36.850005855 +0100
+@@ -1,3 +1,20 @@
++xx.11.2008 FreeNX 0.7.4
++ * Opened the 0.7.4 development.
++ * Fixed missing export of NX_ETC_DIR in Makefile,
++ so node.conf.sample is installed correctly.
++ (fabianx@bat.berlios.de)
++ * Fixed broken round-robin load balance algorithm.
++ (fabianx@bat.berlios.de)
++ * Fixed --terminate|--suspend|--force-terminate for
++ load balancing case.
++ (fabianx@bat.berlios.de)
++ * Fixed --terminate|--suspend|--force-terminate for
++ usermode case.
++ (fabianx@bat.berlios.de)
++ * Fixed non-encrypted session mode. You might need to
++ set EXTERNAL_PROXY_IP in node.conf.
++ (fabianx@bat.berlios.de)
++
+ 18.08.2008 FreeNX 0.7.3 "Priscilla One Year Edition"
+ * Opened the 0.7.3 development.
+ * Added logging of failed authentication attempts
+diff -ur freenx-server-0.7.3//Makefile ../trunk/freenx-server//Makefile
+--- freenx-server-0.7.3//Makefile 2008-08-18 04:16:25.000000000 +0200
++++ ../trunk/freenx-server//Makefile 2011-01-26 23:23:36.856672521 +0100
+@@ -8,7 +8,7 @@
+ all:
+ cd nxviewer-passwd && xmkmf && make Makefiles && make depend
+ source nxloadconfig &&\
+- export PATH_BIN PATH_LIB CUPS_BACKEND NX_VERSION &&\
++ export PATH_BIN PATH_LIB CUPS_BACKEND NX_VERSION NX_ETC_DIR &&\
+ for i in $(SUBDIRS) ; \
+ do\
+ echo "making" all "in $$i..."; \
+@@ -44,5 +44,5 @@
+
+ install:
+ source nxloadconfig &&\
+- export PATH_BIN PATH_LIB CUPS_BACKEND NX_VERSION &&\
++ export PATH_BIN PATH_LIB CUPS_BACKEND NX_VERSION NX_ETC_DIR &&\
+ $(MAKE) nxenv_install
+diff -ur freenx-server-0.7.3//node.conf.sample ../trunk/freenx-server//node.conf.sample
+--- freenx-server-0.7.3//node.conf.sample 2008-08-22 02:44:43.000000000 +0200
++++ ../trunk/freenx-server//node.conf.sample 2011-01-26 23:23:36.850005855 +0100
+@@ -37,7 +37,7 @@
+ #
+ # https://mail.kde.org/mailman/listinfo/freenx-knx
+ #
+-# SVN: $Id: node.conf.sample 580 2008-08-22 00:44:43Z fabianx $
++# SVN: $Id: node.conf.sample 613 2008-09-01 20:42:31Z fabianx $
+
+ #########################################################################
+ # General FreeNX directives
+@@ -47,6 +47,11 @@
+ # different than the default hostname (as returned by `hostname`)
+ #SERVER_NAME="$(hostname)"
+
++# The node ip which is used by NX Node in unecnrypted session mode.
++# Set it if you want to use a specific external ip or the autodetection
++# is not working.
++#EXTERNAL_PROXY_IP=""
++
+ # The port number where local 'sshd' is listening.
+ #SSHD_PORT=22
+
+diff -ur freenx-server-0.7.3//nxloadconfig ../trunk/freenx-server//nxloadconfig
+--- freenx-server-0.7.3//nxloadconfig 2008-08-22 02:44:43.000000000 +0200
++++ ../trunk/freenx-server//nxloadconfig 2011-01-26 23:23:36.856672521 +0100
+@@ -5,7 +5,7 @@
+ #
+ # License: GPL, version 2
+ #
+-# SVN: $Id: nxloadconfig 580 2008-08-22 00:44:43Z fabianx $
++# SVN: $Id: nxloadconfig 613 2008-09-01 20:42:31Z fabianx $
+ #
+ # ========================================================================
+
+@@ -52,7 +52,7 @@
+ # DO NOT TOUCH unless you REALLY know what you are doing
+ #########################################################################
+
+-NX_VERSION=3.2.0-73
++NX_VERSION=3.2.0-74-SVN
+ NX_LICENSE="OS (GPL, using backend: %BACKEND%)"
+
+ # Where can different nx components be found
+@@ -85,6 +85,7 @@
+ # General FreeNX directives
+
+ SERVER_NAME="$(hostname)"
++EXTERNAL_PROXY_IP=""
+ SSHD_PORT=22
+
+ # Authentication / Security directives
+diff -ur freenx-server-0.7.3//nxnode ../trunk/freenx-server//nxnode
+--- freenx-server-0.7.3//nxnode 2008-08-22 02:44:43.000000000 +0200
++++ ../trunk/freenx-server//nxnode 2011-01-26 23:23:36.853339188 +0100
+@@ -13,7 +13,7 @@
+ #
+ # License: GNU GPL, version 2
+ #
+-# SVN: $Id: nxnode 580 2008-08-22 00:44:43Z fabianx $
++# SVN: $Id: nxnode 613 2008-09-01 20:42:31Z fabianx $
+ #
+ # 21.06.2004: - Full reconnection support
+
+@@ -1184,6 +1184,17 @@
+ [ -z "$userip" -a "$host" = "127.0.0.1" ] && userip="127.0.0.1"
+ [ -z "$userip" ] && userip="*"
+ fi
++
++ # We need our own external IP
++ proxyip="$EXTERNAL_PROXY_IP"
++
++ if [ -z "$proxyip" -a -n "$host" ]
++ then
++ [ "$host" = "127.0.0.1" ] && host=$(hostname)
++ proxyip=$(ping -c1 "$host" | grep 'PING' | cut -d'(' -f2 | cut -d')' -f1)
++ fi
++
++ [ -z "$proxyip" ] && proxyip="127.0.0.1"
+
+ # ok, lets make the session dir first:
+
+@@ -1316,7 +1327,7 @@
+ NX> 705 Session display: $display
+ NX> 703 Session type: $type
+ NX> 701 Proxy cookie: $proxy_cookie
+-NX> 702 Proxy IP: $userip
++NX> 702 Proxy IP: $proxyip
+ NX> 706 Agent cookie: $cookie
+ NX> 704 Session cache: $type
+ NX> 707 SSL tunneling: $ssl_tunnel
+diff -ur freenx-server-0.7.3//nxserver ../trunk/freenx-server//nxserver
+--- freenx-server-0.7.3//nxserver 2008-08-22 02:44:43.000000000 +0200
++++ ../trunk/freenx-server//nxserver 2011-01-26 23:23:36.856672521 +0100
+@@ -11,7 +11,7 @@
+ #
+ # License: GNU GPL, version 2
+ #
+-# SVN: $Id: nxserver 580 2008-08-22 00:44:43Z fabianx $
++# SVN: $Id: nxserver 612 2008-08-25 03:28:15Z fabianx $
+ #
+
+ # Read the config file
+@@ -1192,7 +1192,7 @@
+ # Lock held
+
+ SERVER_LB_NR=$(cat $NX_SESS_DIR/round-robin 2>/dev/null)
+- let SERVER_LB_NR=(SERVER_LB_NR+1) % SERVER_LB_NR_OF_HOSTS
++ let SERVER_LB_NR=(SERVER_LB_NR+1)%SERVER_LB_NR_OF_HOSTS
+ echo $SERVER_LB_NR >$NX_SESS_DIR/round-robin
+
+ # Exit critical section
+@@ -1961,71 +1961,71 @@
+ session_history "$user" "$sessid"
+ }
+
+-cmd_terminate()
++cmd_execute()
+ {
+- CMD_PARAMS=$(cmd_parse_3_params "$2")
+- [ -z "$CMD_PARAMS" ] && exit 1
+- for i in $CMD_PARAMS;
++ cmd_host="$1"
++ cmd_user="$2"
++ cmd_cmd="$3"
++
++ if [ "$ENABLE_USERMODE_AUTHENTICATION" = "1" ]
++ then
++ sh -c "$cmd_cmd"
++ elif [ "$cmd_host" = "127.0.0.1" -o "$cmd_host" = "localhost" ]
++ then
++ su - "$cmd_user" -c "$cmd_cmd"
++ else
++ ssh "$cmd_host" su - "$cmd_user" -c "'$cmd_cmd'"
++ fi
++}
++
++cmd_terminate_or_send()
++{
++ CMD="$1"
++
++ if [ "$CMD" = "--broadcast" ]
++ then
++ CMD_PARAMS=$(session_find_all)
++ [ -z "$CMD_PARAMS" ] && cmd_abort "Error: No running session could be found."
++ else
++ CMD_PARAMS=$(cmd_parse_3_params "$2")
++ [ -z "$CMD_PARAMS" ] && exit 1
++ shift
++ fi
++ shift
++
++ for i in $CMD_PARAMS
+ do
+ CMDLINE=$(session_get_cmdline $i)
+ cmd_sessionid=$(getparam sessionId)
++ cmd_display=$(getparam display)
+ cmd_user=$(getparam userName)
+ cmd_type=$(getparam type)
+ cmd_status=$(getparam status)
++ cmd_host=$(getparam host)
+
+ # is it a "good" session?
+- case "$1" in
++ case "$CMD" in
+ --suspend)
+ if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
+ then
+- echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --suspend"
++ echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --suspend"
+ fi
+ ;;
+ --terminate)
+- echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --terminate"
++ echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --terminate"
+ ;;
+ --force-terminate)
+- echo "sessionid=$cmd_sessionid" | su - "$cmd_user" -c "$PATH_BIN/nxnode --terminate"
++ echo "sessionid=$cmd_sessionid" | cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxnode --terminate"
+ session_close $cmd_sessionid
+ ;;
+- esac
+- done
+-
+-}
+-
+-cmd_send()
+-{
+- if [ "$1" = "--broadcast" ]
+- then
+- CMD_PARAMS=$(session_find_all)
+- [ -z "$CMD_PARAMS" ] && cmd_abort "Error: No running session could be found."
+- else
+- CMD_PARAMS=$(cmd_parse_3_params "$2")
+- [ -z "$CMD_PARAMS" ] && exit 1
+- shift
+- fi
+- shift
+- for i in $CMD_PARAMS;
+- do
+- CMDLINE=$(session_get_cmdline $i)
+- cmd_display=$(getparam display)
+- cmd_user=$(getparam userName)
+- cmd_type=$(getparam type)
+- cmd_status=$(getparam status)
+- cmd_host=$(getparam host)
+-
+- # is it a "good" session?
+- if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
+- then
+- if [ "$cmd_host" = "127.0.0.1" -o "$cmd_host" = "localhost" ]
++ --send|--broadcast)
++ # is it a "good" session?
++ if [ "$cmd_status" = "Running" ] && stringinstring "unix-" "$cmd_type"
+ then
+- su - "$cmd_user" -c "$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &"
+- else
+- ssh $cmd_host su - "$cmd_user" -c "'$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &'"
++ cmd_execute "$cmd_host" "$cmd_user" "$PATH_BIN/nxdialog --dialog ok --caption \"NX Administrator Message\" --message \"$@\" -display \":$cmd_display\" &"
+ fi
+- fi
++ esac
+ done
+- #nxnode_start --send "$CMD_PARAMS"
+ }
+
+ #
+@@ -2099,13 +2099,13 @@
+ cmd_history "$@"
+ ;;
+ --terminate|--suspend|--force-terminate)
+- cmd_terminate "$@"
++ cmd_terminate_or_send "$@"
+ ;;
+ --cleanup)
+- cmd_terminate "--force-terminate" "*"
++ cmd_terminate_or_send "--force-terminate" "*"
+ ;;
+ --send|--broadcast)
+- cmd_send "$@"
++ cmd_terminate_or_send "$@"
+ ;;
+ *)
+ cmd_abort "Error: Function $CMD not implemented yet."
diff --git a/extra/freenx/freenx.install b/extra/freenx/freenx.install
new file mode 100644
index 000000000..93a28656f
--- /dev/null
+++ b/extra/freenx/freenx.install
@@ -0,0 +1,27 @@
+# arg 1: the new package version
+post_install() {
+# setting up freenx
+echo 'Generating keys ...'
+/opt/NX/bin/nxsetup --install --uid 85 --gid 85 2>&1 >/dev/null
+/bin/cat <<THEEND
+ATTENTION FREENX:
+For correct setup please take a look at the wiki:
+http://wiki.archlinux.org/index.php/FreeNX
+THEEND
+}
+
+post_upgrade() {
+# setting up freenx
+echo 'Rerunning nxsetup ...'
+/opt/NX/bin/nxsetup --install --uid 85 --gid 85 2>&1 >/dev/null
+/bin/cat <<THEEND
+ATTENTION FREENX:
+For correct setup please take a look at the wiki:
+http://wiki.archlinux.org/index.php/FreeNX
+THEEND
+}
+# arg 1: the old package version
+pre_remove() {
+ /opt/NX/bin/nxsetup --uninstall --purge 2>&1 >/dev/null
+ usr/sbin/groupdel nx &>/dev/null
+}
diff --git a/extra/freenx/keymap.patch b/extra/freenx/keymap.patch
new file mode 100644
index 000000000..a0bb678e4
--- /dev/null
+++ b/extra/freenx/keymap.patch
@@ -0,0 +1,32 @@
+=== modified file 'nxnode'
+--- nxnode 2009-01-14 04:22:40 +0000
++++ nxnode 2009-01-14 04:24:02 +0000
+@@ -555,7 +555,8 @@
+
+ # Start the agent
+
+- PATH="$PATH_BIN:$PATH" $PATH_BIN/nxagent $P $R -name "NX - $user@$SERVER_NAME:$display - $session (GPL Edition)" -option "$USER_FAKE_HOME/.nx/C-$sess_id/options" $K $G $B $FP $AGENT_EXTRA_OPTIONS_X :$display 2>&3 &
++ #PATH="$PATH_BIN:$PATH" $PATH_BIN/nxagent $P $R -name "NX - $user@$SERVER_NAME:$display - $session (GPL Edition)" -option "$USER_FAKE_HOME/.nx/C-$sess_id/options" $K $G $B $FP $AGENT_EXTRA_OPTIONS_X :$display 2>&3 &
++ PATH="$PATH_BIN:$PATH" $PATH_BIN/nxagent $R -name "NX - $user@$SERVER_NAME:$display - $session (GPL Edition)" -option "$USER_FAKE_HOME/.nx/C-$sess_id/options" $B $FP $AGENT_EXTRA_OPTIONS_X :$display 2>&3 &
+ fi
+
+ #
+@@ -1094,6 +1095,8 @@
+ # Rootless fix from 2x nxserver 1.5.0
+ realtype=$type
+ [ "$type" = "unix-application" -o "$type" = "unix-default" ] && realtype="unix-desktop"
++ [ "$type" = "unix-gnome" ] && realtype="gnome"
++ [ "$type" = "unix-kde" ] && realtype="kde"
+
+ # NX 2.1.0 file-sharing port options
+ client=$(getparam client)
+@@ -1272,7 +1275,7 @@
+ umask 0077
+
+ cat << EOF > "$USER_FAKE_HOME/.nx/C-$sess_id/options"
+-${keyboard:+keyboard=$keyboard,}${kbtype:+kbtype=$kbtype,}${kbload:+kbload=$kbload,}${keymap:+keymap=$keymap,}${resize:+resize=$resize,}${CACHE}${IMAGES}${PACK}link=$link,nodelay=$nodelay,type=$realtype,cleanup=0,${ACCEPT}cookie=$proxy_cookie,id=$sess_id,samba=$samba,media=$media${sync:+,sync=$sync}${cups:+,cups=$cups}${keybd:+,keybd=$keybd}${aux:+,aux=$aux}${http:+,http=$http}${rdpcolors:+,rdpcolors=$rdpcolors}${rdpcache:+,rdpcache=$rdpcache}${fullscreen:+,fullscreen=1}${clipboard:+,clipboard=$clipboard}${menu:+,menu=$menu}:$display
++nx/nx,${keyboard:+keyboard=$keyboard,}${kbtype:+kbtype=$kbtype,}${kbload:+kbload=$kbload,}${keymap:+keymap=$keymap,}${geometry:+geometry=$geometry,}${client:+client=$client,}${resize:+resize=$resize,}${CACHE}${IMAGES}${PACK}link=$link,nodelay=$nodelay,type=$realtype${clipboard:+,clipboard=$clipboard}${composite:+composite=$composite},cleanup=0,product=LFE/None/LFEN/None,shmem=1,${backingstore:+backingstore=$backingstore,}shpix=1,${ACCEPT}cookie=$proxy_cookie,id=$sess_id,samba=$samba,media=$media${sync:+,sync=$sync}${cups:+,cups=$cups}${keybd:+,keybd=$keybd}${aux:+,aux=$aux}${http:+,http=$http}${rdpcolors:+,rdpcolors=$rdpcolors}${rdpcache:+,rdpcache=$rdpcache}${fullscreen:+,fullscreen=1}${menu:+,menu=$menu}:$display
+ EOF
+ umask $OLD_UMASK
+ #samba=$samba,
+
diff --git a/extra/freenx/nxagent-startup.patch b/extra/freenx/nxagent-startup.patch
new file mode 100644
index 000000000..e3c5497c1
--- /dev/null
+++ b/extra/freenx/nxagent-startup.patch
@@ -0,0 +1,12 @@
+--- nxnode~ 2010-04-30 15:42:46.000000000 +0200
++++ nxnode 2010-04-30 15:42:46.000000000 +0200
+@@ -328,6 +328,9 @@
+ NODE_WM_PID=$!
+ fi
+
++ # Patch - delay to allow nxagent to complete launching
++ sleep 4
++
+ echo "Xft.dpi: 96" | DISPLAY=:$display xrdb -merge >>"$USER_FAKE_HOME/.nx/C-$sess_id/session" 2>&1
+ [ -d /etc/X11/Xresources ] && xrdb -display :$display -merge /etc/X11/Xresources/* >>"$USER_FAKE_HOME/.nx/C-$sess_id/session" 2>&1
+
diff --git a/extra/freenx/remove-dialog.patch b/extra/freenx/remove-dialog.patch
new file mode 100644
index 000000000..054f1f6c4
--- /dev/null
+++ b/extra/freenx/remove-dialog.patch
@@ -0,0 +1,32 @@
+--- nxdialog~ 2011-02-01 09:05:28.993333438 +0100
++++ nxdialog 2011-02-01 09:05:29.010000106 +0100
+@@ -85,29 +85,6 @@
+ then
+ dialog_interface="xdialog"
+ DIALOG=/usr/bin/Xdialog # just in case that we have no good path
+-elif [ -x /usr/bin/dialog ]
+-then
+- #JJK: Added 'dialog_interface=dialog' option because Xdialog not standard
+- #JJK: on some distros such as Fedora and xmessage won't handle long
+- #JJK: lists of ppd files while the combination of 'dialog' and 'xterm'
+- #JJK: should be present on most setups.
+-
+- dialog_interface="dialog"
+- DIALOG=/usr/bin/dialog
+- if [ -z "$NXCLIENT_FIRST_TIME" ]
+- then
+- # Run only once in case of subdialogs. Capture result in tempfile
+- TMPFILE=$(mktemp /tmp/nxclient.XXXXX)
+- export NXCLIENT_FIRST_TIME=1
+-
+- xterm -geometry 120x24+100+100 +sb -title "NXclient" -e \
+- /bin/bash -c "$DIALOG --infobox 'Please wait...' 3 25; $0 $INPUTS | tee $TMPFILE" || exit 1
+-
+- #Need to recover the last line output (and not remove non-printing chars, because --stdout is used)
+- tail -1 $TMPFILE
+- rm -f $TMPFILE
+- exit 0
+- fi
+ else
+ dialog_interface="xmessage"
+ xmessage=$(which xmessage 2>/dev/null)
diff --git a/extra/freetds/PKGBUILD b/extra/freetds/PKGBUILD
new file mode 100644
index 000000000..2912f9b39
--- /dev/null
+++ b/extra/freetds/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 11362 2010-02-09 23:57:26Z dgriffiths $
+# Contributor: Aaron Malone <aaron@munge.net>
+
+pkgname=freetds
+pkgver=0.82
+pkgrel=5
+pkgdesc='Library for accessing Sybase and MS SQL Server databases'
+url='http://www.freetds.org'
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('unixodbc')
+options=('!libtool')
+backup=('etc/freetds/freetds.conf'
+ 'etc/freetds/locales.conf'
+ 'etc/freetds/pool.conf')
+source=("ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/${pkgname}-${pkgver}.tar.gz")
+md5sums=('3df6b2e83fd420e90f1becbd1162990a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc/freetds --mandir=/usr/share/man --enable-msdblib --with-tdsver=7.0
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/freetype2/PKGBUILD b/extra/freetype2/PKGBUILD
new file mode 100644
index 000000000..cfaffb725
--- /dev/null
+++ b/extra/freetype2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 105523 2011-01-10 10:25:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=freetype2
+pkgver=2.4.4
+pkgrel=2
+pkgdesc="TrueType font rendering library"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://freetype.sourceforge.net"
+depends=('zlib')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2
+ freetype-2.3.0-enable-spr.patch
+ freetype-2.2.1-enable-valid.patch
+ allow-hlineto-vlineto-without-arguments.patch)
+md5sums=('b3e2b6e2f1c3e0dffa1fd2a0f848b671'
+ '816dc8619a6904a7385769433c0a8653'
+ '214119610444c9b02766ccee5e220680')
+
+build() {
+ cd "${srcdir}/freetype-${pkgver}"
+ patch -Np1 -i "${srcdir}/freetype-2.3.0-enable-spr.patch"
+ patch -Np1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch"
+ patch -Np1 -i "${srcdir}/allow-hlineto-vlineto-without-arguments.patch"
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('b3e2b6e2f1c3e0dffa1fd2a0f848b671'
+ '816dc8619a6904a7385769433c0a8653'
+ '214119610444c9b02766ccee5e220680'
+ 'bb094e147b25892f1d04cfb5ff877bce')
diff --git a/extra/freetype2/allow-hlineto-vlineto-without-arguments.patch b/extra/freetype2/allow-hlineto-vlineto-without-arguments.patch
new file mode 100644
index 000000000..5990041aa
--- /dev/null
+++ b/extra/freetype2/allow-hlineto-vlineto-without-arguments.patch
@@ -0,0 +1,57 @@
+From 396b11b840f84e8bff62f3c361d0b592e77ee703 Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl@gnu.org>
+Date: Thu, 09 Dec 2010 22:16:18 +0000
+Subject: [cff] Allow `hlineto' and `vlineto' without arguments.
+
+We simply ignore such instructions. This is invalid, but it doesn't
+harm; and indeed, there exist such subsetted fonts in PDFs.
+
+Reported by Albert Astals Cid <aacid@kde.org>.
+
+* src/cff/cffgload.c (cff_decoder_parse_charstrings)
+[cff_op_hlineto]: Ignore instruction if there aren't any arguments
+on the stack.
+---
+diff --git a/ChangeLog b/ChangeLog
+index b7aea52..579ae62 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,16 @@
++2010-12-09 Werner Lemberg <wl@gnu.org>
++
++ [cff] Allow `hlineto' and `vlineto' without arguments.
++
++ We simply ignore such instructions. This is invalid, but it doesn't
++ harm; and indeed, there exist such subsetted fonts in PDFs.
++
++ Reported by Albert Astals Cid <aacid@kde.org>.
++
++ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
++ [cff_op_hlineto]: Ignore instruction if there aren't any arguments
++ on the stack.
++
+ 2010-11-28 Werner Lemberg <wl@gnu.org>
+
+ * Version 2.4.4 released.
+diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
+index e99ee70..99c5b0c 100644
+--- a/src/cff/cffgload.c
++++ b/src/cff/cffgload.c
+@@ -1438,9 +1438,14 @@
+ FT_TRACE4(( op == cff_op_hlineto ? " hlineto\n"
+ : " vlineto\n" ));
+
+- if ( num_args < 1 )
++ if ( num_args < 0 )
+ goto Stack_Underflow;
+
++ /* there exist subsetted fonts (found in PDFs) */
++ /* which call `hlineto' without arguments */
++ if ( num_args == 0 )
++ break;
++
+ if ( cff_builder_start_point ( builder, x, y ) ||
+ check_points( builder, num_args ) )
+ goto Fail;
+--
+cgit v0.8.3.2
diff --git a/extra/freetype2/freetype-2.2.1-enable-valid.patch b/extra/freetype2/freetype-2.2.1-enable-valid.patch
new file mode 100644
index 000000000..c78b6b70f
--- /dev/null
+++ b/extra/freetype2/freetype-2.2.1-enable-valid.patch
@@ -0,0 +1,20 @@
+--- freetype-2.2.1/modules.cfg.orig 2006-07-07 21:01:09.000000000 -0400
++++ freetype-2.2.1/modules.cfg 2006-07-07 21:01:54.000000000 -0400
+@@ -110,7 +110,7 @@
+ AUX_MODULES += cache
+
+ # TrueType GX/AAT table validation. Needs ftgxval.c below.
+-# AUX_MODULES += gxvalid
++AUX_MODULES += gxvalid
+
+ # Support for streams compressed with gzip (files with suffix .gz).
+ #
+@@ -124,7 +124,7 @@
+
+ # OpenType table validation. Needs ftotval.c below.
+ #
+-# AUX_MODULES += otvalid
++AUX_MODULES += otvalid
+
+ # Auxiliary PostScript driver component to share common code.
+ #
diff --git a/extra/freetype2/freetype-2.3.0-enable-spr.patch b/extra/freetype2/freetype-2.3.0-enable-spr.patch
new file mode 100644
index 000000000..8432e28a4
--- /dev/null
+++ b/extra/freetype2/freetype-2.3.0-enable-spr.patch
@@ -0,0 +1,11 @@
+--- freetype-2.3.0/include/freetype/config/ftoption.h.spf 2007-01-18 14:27:34.000000000 -0500
++++ freetype-2.3.0/include/freetype/config/ftoption.h 2007-01-18 14:27:48.000000000 -0500
+@@ -92,7 +92,7 @@
+ /* This is done to allow FreeType clients to run unmodified, forcing */
+ /* them to display normal gray-level anti-aliased glyphs. */
+ /* */
+-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+
+
+ /*************************************************************************/
diff --git a/extra/fribidi/ChangeLog b/extra/fribidi/ChangeLog
new file mode 100644
index 000000000..43b17a515
--- /dev/null
+++ b/extra/fribidi/ChangeLog
@@ -0,0 +1,5 @@
+2008-02-16 Travis Willard <travis@archlinux.org>
+
+ * 0.10.9
+ Added ChangeLog
+ New upstream release.
diff --git a/extra/fribidi/PKGBUILD b/extra/fribidi/PKGBUILD
new file mode 100644
index 000000000..edeaa1f4b
--- /dev/null
+++ b/extra/fribidi/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 68037 2010-02-10 15:07:38Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Nezmer <Nezmer@gmail.com>
+
+pkgname=fribidi
+pkgver=0.19.2
+pkgrel=1
+pkgdesc="A Free Implementation of the Unicode Bidirectional Algorithm"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://fribidi.org"
+depends=('glibc')
+options=('!libtool')
+source=(http://fribidi.org/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('626db17d2d99b43615ad9d12500f568a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/frozen-bubble/PKGBUILD b/extra/frozen-bubble/PKGBUILD
new file mode 100644
index 000000000..883852aa4
--- /dev/null
+++ b/extra/frozen-bubble/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 112696 2011-03-06 00:54:34Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Brandon Niemczyk <maccorin@cfl.rr.com>
+
+pkgname=frozen-bubble
+_pkgver=2.2.1-beta1
+pkgver=${_pkgver/-/}
+pkgrel=1
+pkgdesc="A game in which you throw colorful bubbles and build groups to destroy the bubbles"
+arch=(i686 x86_64)
+url="http://www.frozen-bubble.org"
+license=(GPL2)
+depends=(perl-sdl perl-ipc-system-simple perl-compress-bzip2 perl-file-which)
+makedepends=(perl-file-slurp perl-locale-maketext-lexicon)
+options=('!emptydirs')
+source=(http://www.frozen-bubble.org/data/$pkgname-$_pkgver.tar.bz2 \
+ frozen-bubble.desktop)
+md5sums=('825cc23ed806838b9d86de9982a5687a'
+ '01b10b77ba6ad856f5c199121c582272')
+
+package() {
+ cd "$srcdir/$pkgname-$_pkgver"
+ # install module in vendor directories
+ perl Build.PL installdirs=vendor destdir="$pkgdir"
+
+ perl Build
+ perl Build install
+
+ install -D -m644 share/icons/frozen-bubble-icon-64x64.png "$pkgdir/usr/share/pixmaps/frozen-bubble.png"
+ install -D -m644 "$srcdir/frozen-bubble.desktop" "$pkgdir/usr/share/applications/frozen-bubble.desktop"
+}
diff --git a/extra/frozen-bubble/frozen-bubble.desktop b/extra/frozen-bubble/frozen-bubble.desktop
new file mode 100644
index 000000000..76a7bcd88
--- /dev/null
+++ b/extra/frozen-bubble/frozen-bubble.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Version=1.0
+Encoding=UTF-8
+Name=Frozen Bubble
+Icon=frozen-bubble.png
+Exec=/usr/bin/vendor_perl/frozen-bubble
+Terminal=false
+Categories=Game;
diff --git a/extra/fsarchiver/PKGBUILD b/extra/fsarchiver/PKGBUILD
new file mode 100644
index 000000000..306172fac
--- /dev/null
+++ b/extra/fsarchiver/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 104058 2010-12-27 16:47:09Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=fsarchiver
+pkgver=0.6.12
+pkgrel=1
+pkgdesc="A safe and flexible file-system backup and deployment tool"
+arch=('i686' 'x86_64')
+url="http://www.fsarchiver.org/"
+license=('GPL')
+depends=('bzip2' 'e2fsprogs' 'lzo2' 'xz' 'libgcrypt')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('dc54cefcf9c2bc331063d82a7ad54133')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/fssos-nsvs/PKGBUILD b/extra/fssos-nsvs/PKGBUILD
new file mode 100644
index 000000000..16e8be8cc
--- /dev/null
+++ b/extra/fssos-nsvs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115056 2011-03-16 15:27:06Z andrea $
+# Maintainer: Dale Blount <dale@archlinux.org>
+
+pkgname=fssos-nsvs
+pkgver=0.5
+pkgrel=7
+pkgdesc="NSVS for FSSOS"
+arch=('i686' 'x86_64')
+url="http://fssos.sourceforge.net/"
+license=('GPL')
+depends=('bash' 'mysql>=5.5')
+backup=('etc/nsvsd.conf')
+options=('!libtool' '!makeflags')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/sourceforge/fssos/nsvs-$pkgver.tar.gz
+ nsvsd)
+md5sums=('3f17c2f6339f1a322b712b467023d825' '4dfd9dc0d69b375587e39ab2621d9ea9')
+
+build() {
+ cd $srcdir/nsvs-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make CFLAGS="${CFLAGS} -D_GNU_SOURCE"
+}
+
+package() {
+ cd $srcdir/nsvs-$pkgver
+ make DESTDIR=$pkgdir install
+ install -D -m755 $srcdir/nsvsd $pkgdir/etc/rc.d/nsvsd
+}
diff --git a/extra/fssos-nsvs/fssos-nsvs.install b/extra/fssos-nsvs/fssos-nsvs.install
new file mode 100644
index 000000000..253ae64d2
--- /dev/null
+++ b/extra/fssos-nsvs/fssos-nsvs.install
@@ -0,0 +1,17 @@
+post_install() {
+ if [ -z "`grep '^nsvsd::' /etc/group`" ]; then
+ groupadd -g 83 nsvsd
+ fi
+ if [ -z "`grep '^nsvsd:' /etc/passwd`" ]; then
+ useradd -u 83 -d /tmp -g nsvsd -s /bin/false nsvsd
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ userdel nsvsd &> /dev/null
+ groupdel nsvsd &> /dev/null
+}
diff --git a/extra/fssos-nsvs/nsvsd b/extra/fssos-nsvs/nsvsd
new file mode 100755
index 000000000..f9b4845ab
--- /dev/null
+++ b/extra/fssos-nsvs/nsvsd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting nsvsd"
+ /usr/sbin/nsvsd -f /etc/nsvsd.conf
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon nsvsd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping nsvsd"
+ kill `cat /var/run/nsvsd.pid` &>/dev/null
+ rm -f /var/run/nsvsd.pid
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon nsvsd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/ftgl/PKGBUILD b/extra/ftgl/PKGBUILD
new file mode 100644
index 000000000..b284d4289
--- /dev/null
+++ b/extra/ftgl/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 114670 2011-03-15 12:17:12Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+
+pkgname=ftgl
+_pkgver=2.1.3-rc5
+pkgver=${_pkgver/-/}
+pkgrel=2
+pkgdesc="OpenGL library to use arbitrary fonts"
+arch=(i686 x86_64)
+url="http://ftgl.wiki.sourceforge.net/"
+license=(MIT)
+depends=(freetype2 glut)
+makedepends=(doxygen)
+options=('!libtool')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$_pkgver.tar.bz2")
+md5sums=('c7879018cde844059495b3029b0b6503')
+
+build() {
+ cd "$srcdir/$pkgname-${_pkgver/-/~}"
+ ./configure --prefix=/usr --with-pic
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-${_pkgver/-/~}"
+ make DESTDIR="$pkgdir" install
+
+ # FS#23283: install missing headers for OpenCascade
+ install -m644 src/FT{Face,Library,Size}.h "$pkgdir/usr/include/FTGL/"
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/ftjam/PKGBUILD b/extra/ftjam/PKGBUILD
new file mode 100644
index 000000000..b78dac253
--- /dev/null
+++ b/extra/ftjam/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 49903 2009-08-16 20:18:01Z jgc $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=ftjam
+pkgver=2.5.3rc2
+pkgrel=2
+pkgdesc='FT Jam - an enhanced version of the Jam build tool'
+arch=('i686' 'x86_64')
+url="http://freetype.org/jam/"
+license=('custom')
+depends=('glibc')
+provides=('jam')
+conflicts=('jam')
+replaces=('jam')
+#source=(http://downloads.sourceforge.net/freetype/$pkgname-$pkgver.tar.bz2 \
+source=(http://david.freetype.org/jam/${pkgname}-${pkgver}.tar.bz2
+ license.txt)
+md5sums=('911cc4191b3e7213905d107962b4529b'
+ '2addc259114b4f50a870fa04881e1200')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/license.txt" "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/ftjam/license.txt b/extra/ftjam/license.txt
new file mode 100644
index 000000000..d111145cc
--- /dev/null
+++ b/extra/ftjam/license.txt
@@ -0,0 +1,8 @@
+Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
+
+License is hereby granted to use this software and distribute it
+freely, as long as this copyright notice is retained and modifications
+are clearly marked.
+
+ALL WARRANTIES ARE HEREBY DISCLAIMED.
+ \ No newline at end of file
diff --git a/extra/fuse/PKGBUILD b/extra/fuse/PKGBUILD
new file mode 100644
index 000000000..f3863969e
--- /dev/null
+++ b/extra/fuse/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 94450 2010-10-07 10:30:45Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Mark Rosenstand <mark@archlinux.org>
+
+pkgname=fuse
+pkgver=2.8.5
+pkgrel=1
+pkgdesc="A library that makes it possible to implement a filesystem in a userspace program."
+arch=('i686' 'x86_64')
+url="http://fuse.sourceforge.net/"
+license="GPL2"
+depends=('glibc')
+makedepends=('pkg-config')
+backup=(etc/fuse.conf)
+install=fuse.install
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ 'fuse.conf')
+options=(!libtool)
+sha1sums=('862320b56d6bc4ad5e7be2b1e0b5029166aae09b'
+ '3b42e37a741d4651099225987dc40e7f02a716ad')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-lib \
+ --enable-util --bindir=/bin
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install || return 1
+
+ # static device nodes will cause collision.
+ rm -rf ${pkgdir}/dev
+
+ # Remove init script in wrong path
+ # Don't add our own for now, as fusectl fs oopses on 2.6.18
+ rm -rf ${pkgdir}/etc/init.d
+ #install -D -m755 ${srcdir}/fuse.rc.d ${pkgdir}/etc/rc.d/fuse
+
+ install -d ${pkgdir}/lib
+ mv ${pkgdir}/usr/lib/libfuse.so.${pkgver} ${pkgdir}/lib/ || return 1
+ ln -s ../../lib/libfuse.so.${pkgver} ${pkgdir}/usr/lib/libfuse.so.${pkgver} || return 1
+ ln -s libfuse.so.${pkgver} ${pkgdir}/lib/libfuse.so.2 || return 1
+ mv ${pkgdir}/usr/lib/libulockmgr.so.1.0.1 ${pkgdir}/lib/ || return 1
+ ln -s ../../lib/libulockmgr.so.1.0.1 ${pkgdir}/usr/lib/libulockmgr.so.1.0.1 || return 1
+ ln -s libulockmgr.so.1.0.1 ${pkgdir}/lib/libulockmgr.so.1 || return 1
+
+ # install sample config file
+ install -Dm644 ${srcdir}/fuse.conf ${pkgdir}/etc/fuse.conf || return 1
+ # Fix udev rule location
+ install -d -m755 "${pkgdir}/lib"
+ mv "${pkgdir}/etc/udev" "${pkgdir}/lib/"
+}
diff --git a/extra/fuse/fuse.conf b/extra/fuse/fuse.conf
new file mode 100644
index 000000000..cb6c631e0
--- /dev/null
+++ b/extra/fuse/fuse.conf
@@ -0,0 +1,9 @@
+# Set the maximum number of FUSE mounts allowed to non-root users.
+# The default is 1000.
+#
+#mount_max = 1000
+
+# Allow non-root users to specify the 'allow_other' or 'allow_root'
+# mount options.
+#
+#user_allow_other
diff --git a/extra/fuse/fuse.install b/extra/fuse/fuse.install
new file mode 100644
index 000000000..595ac7c12
--- /dev/null
+++ b/extra/fuse/fuse.install
@@ -0,0 +1,14 @@
+post_install() {
+ cat << 'EOM'
+==> You must load the fuse kernel module to use FUSE.
+ -> Run 'modprobe fuse' to load the module now.
+ -> Add fuse to $MODULES in /etc/rc.conf to load on every boot.
+==> You will need a /dev/fuse device node to use FUSE.
+ -> If you use udev, nothing needs to be done
+ -> For a static /dev, run: mknod /dev/fuse -m 0666 c 10 229
+EOM
+}
+
+op=$1
+shift
+$op $*
diff --git a/extra/fuse/fuse.rc.d b/extra/fuse/fuse.rc.d
new file mode 100755
index 000000000..768da5b02
--- /dev/null
+++ b/extra/fuse/fuse.rc.d
@@ -0,0 +1,49 @@
+#!/bin/bash
+#
+# fuse Init script for Filesystem in Userspace
+# Based on the script by Miklos Szeredi <miklos@szeredi.hu>
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+FUSECTL=/sys/fs/fuse/connections
+
+case "$1" in
+ start)
+ stat_busy "Starting fuse"
+ if ! grep -qw fuse /proc/filesystems; then
+ modprobe fuse >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ fi
+ if grep -qw fusectl /proc/filesystems && ! grep -qw $FUSECTL /proc/mounts; then
+ mount -t fusectl none $FUSECTL >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ fi
+ add_daemon fuse
+ stat_done
+ ;;
+ stop)
+ stat_busy "Stopping fuse"
+ umount $FUSECTL >/dev/null 2>&1
+ rmmod fuse >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon fuse
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/fvwm-devel/ChangeLog b/extra/fvwm-devel/ChangeLog
new file mode 100644
index 000000000..f338d7485
--- /dev/null
+++ b/extra/fvwm-devel/ChangeLog
@@ -0,0 +1,44 @@
+2010-08-09 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.31-1
+ * Upstream update
+
+2010-05-13 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.30-1
+ * Upstream update
+
+2010-04-07 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.29-1
+ * Upstream update
+
+2010-01-19 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.28-3
+ * Fixed libpng patch
+
+2010-01-18 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.28-2
+ * Rebuilt for libpng 1.4 and libjpeg 8
+
+2009-09-27 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.28-1
+ * Upstream update
+
+2009-06-18 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.27-2
+ * Rebuilt against readline 6.0.00
+
+2009-03-29 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.27-1
+ * Upstream update
+
+2008-05-09 Eric Belanger <eric@archlinux.org>
+
+ * fvwm-devel 2.5.26-1
+ * Upstream update
diff --git a/extra/fvwm-devel/PKGBUILD b/extra/fvwm-devel/PKGBUILD
new file mode 100644
index 000000000..f5fd92bc6
--- /dev/null
+++ b/extra/fvwm-devel/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 87047 2010-08-10 02:32:22Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@archlinux.org>
+
+pkgname=fvwm-devel
+pkgver=2.5.31
+pkgrel=1
+pkgdesc="A multiple large virtual desktop window manager originally derived from twm"
+arch=('i686' 'x86_64')
+url="http://www.fvwm.org"
+license=('GPL' 'custom')
+depends=('imlib' 'fribidi' 'perl' 'libstroke' 'libxpm' 'readline' 'librsvg')
+makedepends=('pkg-config')
+conflicts=('fvwm')
+provides=("fvwm=${pkgver}")
+changelog=ChangeLog
+source=(ftp://ftp.fvwm.org/pub/fvwm/version-2/fvwm-${pkgver}.tar.bz2 fvwm-devel.desktop)
+md5sums=('bc0a64cee2b76a91b1b3f1aa716f564d' '3f5bcb246e035ff29aa5bf54487a3db4')
+sha1sums=('0a59ac1c17f37dbfb1e042f4df3f86a5eb2d719c' '17db773870637b410ceb4f68743dbd517bc5c599')
+
+build() {
+ cd "${srcdir}/fvwm-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --with-stroke-library
+ make
+}
+
+package() {
+ cd "${srcdir}/fvwm-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/etc/fvwm"
+ install -D -m644 sample.fvwmrc/* "${pkgdir}/etc/fvwm"
+ rm -f "${pkgdir}"/etc/fvwm/Makefile*
+ install -D -m644 ../fvwm-devel.desktop "${pkgdir}/etc/X11/sessions/fvwm-devel.desktop"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/fvwm-devel/fvwm-devel.desktop b/extra/fvwm-devel/fvwm-devel.desktop
new file mode 100644
index 000000000..dac786fb8
--- /dev/null
+++ b/extra/fvwm-devel/fvwm-devel.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=XSession
+Exec=/usr/bin/fvwm
+TryExec=/usr/bin/fvwm
+Name=fvwm-devel
diff --git a/extra/fvwm/ChangeLog b/extra/fvwm/ChangeLog
new file mode 100644
index 000000000..2b16765b7
--- /dev/null
+++ b/extra/fvwm/ChangeLog
@@ -0,0 +1,5 @@
+2009-06-18 Eric Belanger <eric@archlinux.org>
+
+ * fvwm 2.4.20-4
+ * Rebuilt against readline 6.0.00
+ * Added ChangeLog
diff --git a/extra/fvwm/PKGBUILD b/extra/fvwm/PKGBUILD
new file mode 100644
index 000000000..e32a5e22d
--- /dev/null
+++ b/extra/fvwm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 42788 2009-06-18 20:20:03Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=fvwm
+pkgver=2.4.20
+pkgrel=4
+pkgdesc="A multiple large virtual desktop window manager originally derived from twm"
+arch=('i686' 'x86_64')
+url="http://www.fvwm.org"
+license=('GPL' 'custom')
+depends=('readline>=6.0.00' 'libxpm' 'libxinerama' 'gtk' 'imlib' 'libstroke')
+conflicts=('fvwm-devel')
+source=(ftp://ftp.fvwm.org/pub/fvwm/version-2/${pkgname}-${pkgver}.tar.gz fvwm2.desktop)
+md5sums=('3ac10558411c896f3afba285697cf42c' 'e52a6ef25a936dcf3ad0e58f2e9ed0ea')
+sha1sums=('2130a16590462cbbf15f255a46abe8b8a6cb4401' 'e0924164329e7eb14e0d6137d8ff18cf6230191c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexecdir=/usr/lib --with-stroke || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 ../fvwm2.desktop "${pkgdir}/etc/X11/sessions/fvwm2.desktop" || return 1
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
+}
diff --git a/extra/fvwm/fvwm2.desktop b/extra/fvwm/fvwm2.desktop
new file mode 100644
index 000000000..5df7750b1
--- /dev/null
+++ b/extra/fvwm/fvwm2.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=FVWM2
+Comment=The fvwm2 window manager
+Exec=fvwm2
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/extra/fwbuilder/PKGBUILD b/extra/fwbuilder/PKGBUILD
new file mode 100644
index 000000000..055db9e92
--- /dev/null
+++ b/extra/fwbuilder/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 109609 2011-02-11 02:28:42Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=fwbuilder
+pkgver=4.1.3
+pkgrel=1
+pkgdesc="Object-oriented GUI and set of compilers for various firewall platforms"
+url="http://www.fwbuilder.org/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=("libfwbuilder=${pkgver}" 'qt' 'net-snmp' 'hicolor-icon-theme')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('7cb6d50ce6f02b485525405bd00d8c33')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/extra/fwbuilder/fwbuilder.install b/extra/fwbuilder/fwbuilder.install
new file mode 100644
index 000000000..45f0c2242
--- /dev/null
+++ b/extra/fwbuilder/fwbuilder.install
@@ -0,0 +1,12 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
diff --git a/extra/fyre/ChangeLog b/extra/fyre/ChangeLog
new file mode 100644
index 000000000..edb09672c
--- /dev/null
+++ b/extra/fyre/ChangeLog
@@ -0,0 +1,7 @@
+2008-11-03 Eric Belanger <eric@archlinux.org>
+
+ * fyre 1.0.1-3
+ * Fixed mime file conflict
+ * Fixed install scriptlet
+ * Added shared-mime-info depends
+ * Added ChangeLog
diff --git a/extra/fyre/PKGBUILD b/extra/fyre/PKGBUILD
new file mode 100644
index 000000000..cb1a914af
--- /dev/null
+++ b/extra/fyre/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 18314 2008-11-04 04:33:02Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=fyre
+pkgver=1.0.1
+pkgrel=3
+pkgdesc="Rendering of the Peter de Jong map"
+arch=("i686" "x86_64")
+url="http://fyre.navi.cx/"
+license=('GPL')
+depends=('openexr>=1.6' 'libglade' 'gnet' 'shared-mime-info')
+install=${pkgname}.install
+source=(http://flapjack.navi.cx/releases/fyre/fyre-${pkgver}.tar.gz)
+md5sums=('44d5830c527325c1ee6fa6ea92b4ba03')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make prefix=${pkgdir}/usr install || return 1
+ rm ${pkgdir}/usr/share/mime/{XMLnamespaces,globs,magic,aliases,subclasses} || return 1
+ rm ${pkgdir}/usr/share/mime/{generic-icons,globs2,icons,treemagic,types} || return 1
+ rm ${pkgdir}/usr/share/mime/mime.cache || return 1
+ rm ${pkgdir}/usr/share/icons/hicolor/icon-theme.cache || return 1
+}
diff --git a/extra/fyre/fyre.install b/extra/fyre/fyre.install
new file mode 100644
index 000000000..0f4a73633
--- /dev/null
+++ b/extra/fyre/fyre.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/update-mime-database /usr/share/mime > /dev/null 2>&1
+}
+
+post_upgrade() {
+ usr/bin/update-mime-database /usr/share/mime > /dev/null 2>&1
+}
+
+pre_remove() {
+ usr/bin/update-mime-database /usr/share/mime > /dev/null 2>&1
+}
diff --git a/extra/garcon/PKGBUILD b/extra/garcon/PKGBUILD
new file mode 100644
index 000000000..c602bed7e
--- /dev/null
+++ b/extra/garcon/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 106319 2011-01-16 16:09:00Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Xavier Devlamynck <magicrhesus@ouranos.be>
+
+pkgname=garcon
+pkgver=0.1.5
+pkgrel=1
+pkgdesc="implementation of the freedesktop.org menu specification"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://wiki.xfce.org/dev/garcon"
+groups=('xfce4')
+depends=('glib2') # 'perl')
+makedepends=('pkgconfig' 'intltool' 'xfce4-dev-tools>=4.7.4')
+conflicts=('garcon-git')
+replaces=('libxfce4menu')
+options=('!libtool')
+source=(http://archive.xfce.org/src/libs/garcon/0.1/garcon-${pkgver}.tar.bz2)
+md5sums=('c4fd42082b4ae157aa4c7abb6d6570aa')
+
+build() {
+ cd ${srcdir}/garcon-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/garcon-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/gc/PKGBUILD b/extra/gc/PKGBUILD
new file mode 100644
index 000000000..11898fa33
--- /dev/null
+++ b/extra/gc/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 18876 2008-11-09 22:41:09Z andyrtr $
+# Maintainer: Daniel Isenmann <daniel [at] archlinux.org>
+# Contributor: dorphell <dorphell@gmx.net>
+pkgname=gc
+pkgver=7.1
+pkgrel=1
+pkgdesc="A garbage collector for C and C++"
+arch=(i686 x86_64)
+url="http://www.hpl.hp.com/personal/Hans_Boehm/gc/"
+license=('GPL')
+source=(http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/${pkgname}-${pkgver}.tar.gz)
+depends=('gcc-libs')
+options=(!libtool)
+md5sums=('2ff9924c7249ef7f736ecfe6f08f3f9b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-cplusplus || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gcalctool/PKGBUILD b/extra/gcalctool/PKGBUILD
new file mode 100644
index 000000000..57978318b
--- /dev/null
+++ b/extra/gcalctool/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 100386 2010-11-23 05:21:28Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gcalctool
+pkgver=5.32.2
+pkgrel=1
+pkgdesc="GNOME Scientific calculator"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk2>=2.22.0' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.1')
+groups=('gnome-extra')
+options=(!emptydirs)
+url="http://www.gnome.org"
+install=gcalctool.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/5.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('b281cc545f27b37a0fd120366b1be517574d9f505b59dfc34f9860007df0b788')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-schemas-compile \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gcalctool/gcalctool.install b/extra/gcalctool/gcalctool.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/extra/gcalctool/gcalctool.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/gcin/PKGBUILD b/extra/gcin/PKGBUILD
new file mode 100644
index 000000000..42d692c41
--- /dev/null
+++ b/extra/gcin/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 116389 2011-03-23 02:55:06Z bisson $
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=gcin
+pkgver=1.6.0
+pkgrel=1
+pkgdesc='Input method server supporting various input methods'
+arch=('i686' 'x86_64')
+license=('LGPL')
+url='http://www.csie.nctu.edu.tw/~cp76/gcin/'
+depends=('gtk2' 'libxtst')
+makedepends=('anthy' 'qt')
+optdepends=('qt: support for qt4 input method')
+source=("${url}download/${pkgname}-${pkgver}.tar.bz2"
+ 'fix_x86_64_libdir.patch'
+ 'fix_qt4_paths.patch')
+sha1sums=('72d05f85e0cd410420eef539e034167172b8c34c'
+ 'e5c113e50420bf4750f5547641df6ec4b7e437e0'
+ '16d004424caed541d5baaa6874f708b1c138ab08')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/fix_x86_64_libdir.patch"
+ patch -p1 -i "${srcdir}/fix_qt4_paths.patch"
+ ./configure --prefix=/usr --use_i18n=Y
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gcin/fix_qt4_paths.patch b/extra/gcin/fix_qt4_paths.patch
new file mode 100644
index 000000000..b029c17e5
--- /dev/null
+++ b/extra/gcin/fix_qt4_paths.patch
@@ -0,0 +1,31 @@
+diff -aur old/configure new/configure
+--- old/configure 2011-02-10 20:34:48.153348697 +0100
++++ new/configure 2011-02-10 20:35:09.623348816 +0100
+@@ -174,7 +174,7 @@
+
+
+ QT4_IM='N'
+-QT4_IM_DIR=/usr/$LIB/qt4/plugins/inputmethods
++QT4_IM_DIR=/usr/$LIB/qt/plugins/inputmethods
+ echo "testing if you have qt4 support"
+ if [ -d $QT4_IM_DIR ]; then
+ QT4_IM='Y'
+diff -aur old/qt4-im/Makefile new/qt4-im/Makefile
+--- old/qt4-im/Makefile 2011-02-10 20:34:23.236682152 +0100
++++ new/qt4-im/Makefile 2011-02-10 20:35:09.623348816 +0100
+@@ -1,5 +1,5 @@
+ include ../config.mak
+-QT=qt4
++QT=qt
+ QTIM=$(QT)/plugins/inputmethods
+ IMMODULES=$(libdir)/$(QTIM)
+
+@@ -15,7 +15,7 @@
+ $(CXX) -E $(CFLAGS) $(INCS) $< > $@
+
+ moc_gcin-qt.cpp: gcin-qt.h
+- /usr/lib/$(QT)/bin/moc $< -o moc_gcin-qt.cpp
++ /usr/bin/moc $< -o moc_gcin-qt.cpp
+
+ im-gcin.so: $(OBJS)
+ export LD_RUN_PATH=$(gcinlibdir) ;\
diff --git a/extra/gcin/fix_x86_64_libdir.patch b/extra/gcin/fix_x86_64_libdir.patch
new file mode 100644
index 000000000..5f4df6a9e
--- /dev/null
+++ b/extra/gcin/fix_x86_64_libdir.patch
@@ -0,0 +1,12 @@
+diff -aur old/configure new/configure
+--- old/configure 2011-02-10 20:34:20.943348819 +0100
++++ new/configure 2011-02-10 20:34:48.153348697 +0100
+@@ -151,7 +151,7 @@
+
+ LIB='lib'
+ if [ -d /lib64 ]; then
+-LIB='lib64'
++LIB='lib'
+ fi
+
+ QT_IM='N'
diff --git a/extra/gcin/install b/extra/gcin/install
new file mode 100644
index 000000000..1097ea400
--- /dev/null
+++ b/extra/gcin/install
@@ -0,0 +1,13 @@
+post_install() {
+ echo -n "updating gtk.immodules... "
+ /usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+ echo "done."
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gconf-editor/PKGBUILD b/extra/gconf-editor/PKGBUILD
new file mode 100644
index 000000000..90c51b78b
--- /dev/null
+++ b/extra/gconf-editor/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 91657 2010-09-27 15:41:20Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gconf-editor
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Graphical gconf registry editor"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gconf>=2.31.91' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'gnome-doc-utils>=0.20.0')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+options=(!emptydirs)
+install=gconf-editor.install
+source=(http://ftp.gnome.org/pub/gnome/sources/gconf-editor/2.32/gconf-editor-${pkgver}.tar.bz2)
+sha256sums=('c6d1d35ce5d136121ad76efe1c4033425bb2ad3800e711bd1bca9ce869c12a1f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gconf-editor ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gconf-editor/gconf-editor.install b/extra/gconf-editor/gconf-editor.install
new file mode 100644
index 000000000..307eaa047
--- /dev/null
+++ b/extra/gconf-editor/gconf-editor.install
@@ -0,0 +1,22 @@
+pkgname=gconf-editor
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gconf-perl/PKGBUILD b/extra/gconf-perl/PKGBUILD
new file mode 100644
index 000000000..c95f1eba2
--- /dev/null
+++ b/extra/gconf-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 104906 2011-01-05 14:35:54Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gconf-perl
+_realname=Gnome2-GConf
+pkgver=1.044
+pkgrel=4
+pkgdesc="Gnome2-GConf perl bindings for gconf"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('glib-perl' 'gconf' 'perl')
+options=(!emptydirs)
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('ea386003b18f067524833b0eeb271330')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gconf/01_xml-gettext-domain.patch b/extra/gconf/01_xml-gettext-domain.patch
new file mode 100644
index 000000000..d1323f61f
--- /dev/null
+++ b/extra/gconf/01_xml-gettext-domain.patch
@@ -0,0 +1,362 @@
+# Description: Support calling gettext at runtime and putting the gettext domain into the .schemas file instead of replicating translations in /usr/share/gconf/schemas/*.schemas *and* /var/lib/gconf/defaults/%gconf-tree-$LANG.xml. This saves in the order of 90 MB uncompressed/10 MB compressed on hard disks.
+# Ubuntu: https://bugs.launchpad.net/bugs/123025
+# Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=568845
+--- GConf-2.26.0/backends/markup-tree.c.gettext 2009-04-26 23:33:05.258484987 -0400
++++ GConf-2.26.0/backends/markup-tree.c 2009-04-26 23:34:25.026700526 -0400
+@@ -52,6 +52,7 @@ struct _MarkupEntry
+ char *schema_name;
+ char *mod_user;
+ GTime mod_time;
++ const char *gettext_domain;
+ };
+
+ static LocalSchemaInfo* local_schema_info_new (void);
+@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry
+ gconf_schema_get_type (schema));
+ gconf_schema_set_owner (current_schema,
+ gconf_schema_get_owner (schema));
++ gconf_schema_set_gettext_domain (current_schema,
++ gconf_schema_get_gettext_domain (schema));
+ }
+
+ /* Update mod time */
+@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent
+ else if (c_local_schema && c_local_schema->long_desc)
+ gconf_schema_set_long_desc (schema, c_local_schema->long_desc);
+
++ gconf_schema_set_gettext_domain (schema, entry->gettext_domain);
++
+ return retval;
+ }
+ }
+@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext
+ const char *ltype;
+ const char *list_type;
+ const char *owner;
++
+ GConfValueType vtype;
+- const char *dummy1, *dummy2, *dummy3, *dummy4;
++ const char *dummy1, *dummy2, *dummy3, *dummy4, *dummy5;
+
+ #if 0
+ g_assert (ELEMENT_IS ("entry") ||
+@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext
+ "muser", &dummy2,
+ "mtime", &dummy3,
+ "schema", &dummy4,
++ "gettext_domain", &dummy5,
+
+ NULL))
+ return;
+@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext
+ const char *mtime;
+ const char *schema;
+ const char *type;
++ const char *gettext_domain;
+ const char *dummy1, *dummy2, *dummy3, *dummy4;
+ const char *dummy5, *dummy6, *dummy7;
+ GConfValue *value;
+@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext
+ mtime = NULL;
+ schema = NULL;
+ type = NULL;
++ gettext_domain = NULL;
+
+ if (!locate_attributes (context, element_name, attribute_names, attribute_values,
+ error,
+@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext
+ "mtime", &mtime,
+ "schema", &schema,
+ "type", &type,
++ "gettext_domain", &gettext_domain,
+
+ /* These are allowed but we don't use them until
+ * parse_value_element
+@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext
+ */
+ if (schema)
+ entry->schema_name = g_strdup (schema);
++
++ if (gettext_domain)
++ entry->gettext_domain = g_intern_string (gettext_domain);
+ }
+ else
+ {
+@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value,
+ GConfSchema *schema;
+ GConfValueType stype;
+ const char *owner;
++ const char *gettext_domain;
+
+ schema = gconf_value_get_schema (value);
+
+@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value,
+
+ g_free (s);
+ }
++
++ gettext_domain = gconf_schema_get_gettext_domain (schema);
++
++ if (gettext_domain)
++ {
++ char *s;
++
++ s = g_markup_escape_text (gettext_domain, -1);
++
++ if (fprintf (f, " gettext_domain=\"%s\"", s) < 0)
++ {
++ g_free (s);
++ return FALSE;
++ }
++
++ g_free (s);
++ }
+
+ if (stype == GCONF_VALUE_LIST)
+ {
+diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd
+--- GConf-2.26.0/doc/gconf-1.0.dtd.gettext 2009-04-26 23:33:17.240736103 -0400
++++ GConf-2.26.0/doc/gconf-1.0.dtd 2009-04-26 23:34:25.027700384 -0400
+@@ -7,7 +7,7 @@
+ <!-- A single schema. What I am trying to say is "this set of
+ elements, in any order". Duplicate elements (apart from <locale>) are
+ not allowed). -->
+-<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*)*>
++<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*|gettext_domain?)*>
+
+ <!-- The key for this schema (e.g. /schemas/apps/foo/bar) -->
+ <!ELEMENT key (#PCDATA)>
+diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c
+--- GConf-2.26.0/gconf/gconf-internals.c.gettext 2009-04-26 23:34:10.994700035 -0400
++++ GConf-2.26.0/gconf/gconf-internals.c 2009-04-26 23:34:53.767450191 -0400
+@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem
+ cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : "");
+ cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : "");
+ cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : "");
++ cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : "");
+
+ {
+ gchar* encoded;
+@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con
+ gconf_schema_set_owner(sc, cs->owner);
+ }
+
++ if (*cs->gettext_domain != '\0')
++ {
++ if (!g_utf8_validate (cs->gettext_domain, -1, NULL))
++ gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema"));
++ else
++ gconf_schema_set_gettext_domain(sc, cs->gettext_domain);
++ }
++
+ {
+ GConfValue* val;
+
+diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c
+--- GConf-2.26.0/gconf/gconf-schema.c.gettext 2009-04-26 23:33:26.787483545 -0400
++++ GConf-2.26.0/gconf/gconf-schema.c 2009-04-26 23:35:54.240450142 -0400
+@@ -32,9 +32,10 @@ typedef struct {
+ GConfValueType car_type; /* Pair car type of the described entry */
+ GConfValueType cdr_type; /* Pair cdr type of the described entry */
+ gchar* locale; /* Schema locale */
+- gchar* owner; /* Name of creating application */
++ const gchar* owner; /* Name of creating application */
+ gchar* short_desc; /* 40 char or less description, no newlines */
+ gchar* long_desc; /* could be a paragraph or so */
++ const gchar* gettext_domain; /* description gettext domain */
+ GConfValue* default_value; /* Default value of the key */
+ } GConfRealSchema;
+
+@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc)
+ g_free (real->locale);
+ g_free (real->short_desc);
+ g_free (real->long_desc);
+- g_free (real->owner);
+
+ if (real->default_value)
+ gconf_value_free (real->default_value);
+@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc
+
+ dest->long_desc = g_strdup (real->long_desc);
+
+- dest->owner = g_strdup (real->owner);
++ dest->gettext_domain = real->gettext_domain;
++
++ dest->owner = real->owner;
+
+ dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL;
+
+@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc
+ REAL_SCHEMA (sc)->locale = NULL;
+ }
+
++void
++gconf_schema_set_gettext_domain (GConfSchema* sc, const gchar* domain)
++{
++ g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL));
++
++ if (domain)
++ REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain);
++ else
++ REAL_SCHEMA (sc)->gettext_domain = NULL;
++}
++
+ void
+ gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc)
+ {
+@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc,
+ {
+ g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL));
+
+- if (REAL_SCHEMA (sc)->owner)
+- g_free (REAL_SCHEMA (sc)->owner);
+-
+ if (owner)
+- REAL_SCHEMA (sc)->owner = g_strdup (owner);
++ REAL_SCHEMA (sc)->owner = g_intern_string (owner);
+ else
+ REAL_SCHEMA (sc)->owner = NULL;
+ }
+@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema
+ return FALSE;
+ }
+
++ if (real->gettext_domain && !g_utf8_validate (real->gettext_domain, -1, NULL))
++ {
++ g_set_error (err, GCONF_ERROR,
++ GCONF_ERROR_FAILED,
++ _("Schema contains invalid UTF-8"));
++ return FALSE;
++ }
++
+ if (real->owner && !g_utf8_validate (real->owner, -1, NULL))
+ {
+ g_set_error (err, GCONF_ERROR,
+@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche
+ }
+
+ const char*
++gconf_schema_get_gettext_domain (const GConfSchema *schema)
++{
++ g_return_val_if_fail (schema != NULL, NULL);
++
++ return REAL_SCHEMA (schema)->gettext_domain;
++}
++
++static inline const char *
++schema_translate (const GConfSchema *schema,
++ const char *string)
++{
++ if (REAL_SCHEMA (schema)->gettext_domain)
++ {
++ bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8");
++ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string);
++ }
++ else
++ return string;
++}
++
++const char*
+ gconf_schema_get_short_desc (const GConfSchema *schema)
+ {
+ g_return_val_if_fail (schema != NULL, NULL);
+
+- return REAL_SCHEMA (schema)->short_desc;
++ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc);
+ }
+
+ const char*
+@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS
+ {
+ g_return_val_if_fail (schema != NULL, NULL);
+
+- return REAL_SCHEMA (schema)->long_desc;
++ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc);
+ }
+
+ const char*
+diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h
+--- GConf-2.26.0/gconf/gconf-schema.h.gettext 2009-04-26 23:33:33.979744088 -0400
++++ GConf-2.26.0/gconf/gconf-schema.h 2009-04-26 23:34:25.030737043 -0400
+@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type
+ GConfValueType type);
+ void gconf_schema_set_locale (GConfSchema *sc,
+ const gchar *locale);
++void gconf_schema_set_gettext_domain (GConfSchema *sc,
++ const gchar *domain);
+ void gconf_schema_set_short_desc (GConfSchema *sc,
+ const gchar *desc);
+ void gconf_schema_set_long_desc (GConfSchema *sc,
+@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ
+ GConfValueType gconf_schema_get_car_type (const GConfSchema *schema);
+ GConfValueType gconf_schema_get_cdr_type (const GConfSchema *schema);
+ const char* gconf_schema_get_locale (const GConfSchema *schema);
++const char* gconf_schema_get_gettext_domain(const GConfSchema *schema);
+ const char* gconf_schema_get_short_desc (const GConfSchema *schema);
+ const char* gconf_schema_get_long_desc (const GConfSchema *schema);
+ const char* gconf_schema_get_owner (const GConfSchema *schema);
+diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c
+--- GConf-2.26.0/gconf/gconftool.c.gettext 2009-04-26 23:33:41.907451190 -0400
++++ GConf-2.26.0/gconf/gconftool.c 2009-04-26 23:34:25.034736752 -0400
+@@ -3295,6 +3295,7 @@ struct _SchemaInfo {
+ GConfValueType cdr_type;
+ GConfValue* global_default;
+ GHashTable* hash;
++ gchar* gettext_domain;
+ };
+
+ static int
+@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node,
+ else
+ g_printerr (_("WARNING: empty <applyto> node"));
+ }
++ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
++ {
++ tmp = (char *)xmlNodeGetContent(iter);
++ if (tmp)
++ {
++ info->gettext_domain = g_strdup(tmp);
++ xmlFree(tmp);
++ }
++ }
+ else
+ g_printerr (_("WARNING: node <%s> not understood below <schema>\n"),
+ iter->name);
+@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch
+ if (info->owner != NULL)
+ gconf_schema_set_owner(schema, info->owner);
+
++ if (info->gettext_domain != NULL)
++ gconf_schema_set_gettext_domain(schema, info->gettext_domain);
++
+ xmlFree(name);
+
+ /* Locale-specific info */
+@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch
+ info.apply_to = NULL;
+ info.owner = NULL;
+ info.global_default = NULL;
++ info.gettext_domain = NULL;
+ info.hash = g_hash_table_new(g_str_hash, g_str_equal);
+
+ extract_global_info(node, &info);
+@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch
+ ; /* nothing */
+ else if (strcmp((char *)iter->name, "applyto") == 0)
+ ; /* nothing */
++ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
++ ; /* nothing */
+ else if (strcmp((char *)iter->name, "locale") == 0)
+ {
+ process_locale_info(iter, &info);
+diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl
+--- GConf-2.26.0/gconf/GConfX.idl.gettext 2009-04-26 23:33:58.457483190 -0400
++++ GConf-2.26.0/gconf/GConfX.idl 2009-04-26 23:34:53.764448732 -0400
+@@ -16,6 +16,7 @@ struct ConfigSchema {
+ string short_desc;
+ string long_desc;
+ string owner;
++ string gettext_domain;
+ // Work around lack of recursive data types
+ string encoded_default_value;
+ };
diff --git a/extra/gconf/PKGBUILD b/extra/gconf/PKGBUILD
new file mode 100644
index 000000000..367e28f0f
--- /dev/null
+++ b/extra/gconf/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 91729 2010-09-27 18:54:15Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gconf
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="A configuration database system"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('orbit2>=2.14.18' 'gtk2>=2.22.0' 'libxml2>=2.7.7' 'polkit>=0.98' 'libldap>=2.4.23' 'dbus-glib>=0.86')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gobject-introspection')
+options=('!libtool')
+install=gconf.install
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/GConf/2.32/GConf-${pkgver}.tar.bz2
+ gconf-merge-schema
+ gconfpkg
+ gconf-reload.patch
+ 01_xml-gettext-domain.patch)
+sha256sums=('54dd1dd7f49928a9cc42574bef6ef0481753770fc19986dc2004bbb7fac977a0'
+ 'ee6b6e6f4975dad13a8c45f1c1f0547a99373bdecdcd6604bfc12965c328a028'
+ 'bf1928718caa5df2b9e54a13cfd0f15a8fe0e09e86b84385ce023616a114e898'
+ '567b78d8b4b4bbcb77c5f134d57bc503c34867fcc6341c0b01716bcaa4a21694'
+ 'c883dec2b96978874a53700cfe7f26f24f8296767203e970bc6402b4b9945eb8')
+
+build() {
+ cd "${srcdir}/GConf-${pkgver}"
+ # Patch from fedora - reloads gconf after installing schemas
+ patch -Np1 -i "${srcdir}/gconf-reload.patch"
+ # http://bugzilla.gnome.org/show_bug.cgi?id=568845
+ patch -Np1 -i "${srcdir}/01_xml-gettext-domain.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/GConf \
+ --disable-static --enable-defaults-service
+ make pkglibdir=/usr/lib/GConf
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/gconf/gconf.xml.system"
+ install -m755 "${srcdir}/gconf-merge-schema" "${pkgdir}/usr/bin/"
+ install -d -m755 "${pkgdir}/usr/sbin"
+ install -m755 "${srcdir}/gconfpkg" "${pkgdir}/usr/sbin/"
+}
diff --git a/extra/gconf/gconf-merge-schema b/extra/gconf/gconf-merge-schema
new file mode 100755
index 000000000..992c162e6
--- /dev/null
+++ b/extra/gconf/gconf-merge-schema
@@ -0,0 +1,34 @@
+#!/bin/bash
+if [ ! "$1" -a ! "$2" ]; then
+ echo "Usage: $0 output.schemas [--domain gettextdomain] file1.schemas [file2.schemas [...]]"
+ exit 1
+fi
+
+OUTFILE="$1"
+DOMAIN=""
+shift
+
+if [ "$1" = "--domain" ]; then
+ shift
+ DOMAIN=$1
+ shift
+fi
+
+echo '<?xml version="1.0"?>' > "$OUTFILE"
+echo '<gconfschemafile><schemalist>' >> "$OUTFILE"
+
+while [ "$1" ]; do
+ if [ -f "$1" ]; then
+ sed -e '/<?xml/d' \
+ -e 's|<gconfschemafile>||g' \
+ -e 's|</gconfschemafile>||g' \
+ -e 's|<schemalist>||g' \
+ -e 's|</schemalist>||g' "$1" >> "$OUTFILE"
+ fi
+ shift
+done
+
+echo '</schemalist></gconfschemafile>' >> "$OUTFILE"
+if [ "$DOMAIN" != "" ]; then
+ sed -ri "s/^([[:space:]]*)(<locale name=\"C\">)/\1<gettext_domain>$DOMAIN<\/gettext_domain>\n\1\2/; /^[[:space:]]*<locale name=\"[^C]/,/^[[:space:]]*<\/locale>[[:space:]]*\$/ d; /^$/d; s/<\/schema>$/&\n/" "$OUTFILE"
+fi
diff --git a/extra/gconf/gconf-reload.patch b/extra/gconf/gconf-reload.patch
new file mode 100644
index 000000000..910f0dae4
--- /dev/null
+++ b/extra/gconf/gconf-reload.patch
@@ -0,0 +1,20 @@
+--- GConf-2.16.0/gconf/gconftool.c.orig 2006-10-14 17:37:14.000000000 +0000
++++ GConf-2.16.0/gconf/gconftool.c 2006-10-14 17:39:27.000000000 +0000
+@@ -963,6 +963,8 @@ main (int argc, char** argv)
+
+ gconf_engine_unref (conf);
+
++ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
++
+ return retval;
+ }
+
+@@ -975,6 +977,8 @@ main (int argc, char** argv)
+
+ gconf_engine_unref (conf);
+
++ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
++
+ return retval;
+ }
+
diff --git a/extra/gconf/gconf.install b/extra/gconf/gconf.install
new file mode 100644
index 000000000..f7945d165
--- /dev/null
+++ b/extra/gconf/gconf.install
@@ -0,0 +1,20 @@
+post_install() {
+ ldconfig -r .
+ chmod 755 etc/gconf/gconf.xml.system
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
+
+post_upgrade() {
+ ldconfig -r .
+ chmod 755 etc/gconf/gconf.xml.system
+ usr/bin/gio-querymodules usr/lib/gio/modules
+
+ PID=`pidof gconfd-2`
+ if [ ! -z "${PID}" ]; then
+ kill ${PID}
+ fi
+}
+
+post_remove() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
diff --git a/extra/gconf/gconfpkg b/extra/gconf/gconfpkg
new file mode 100755
index 000000000..72021e45e
--- /dev/null
+++ b/extra/gconf/gconfpkg
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+usage() {
+cat << _EOF
+Usage:
+ gconfpkg [OPTION] [PACKAGE]
+
+ Help Options:
+ -?, --help Show help options
+
+ Application Options:
+ --install Install schemas for a given package
+ --uninstall Uninstall schemas for a given package
+
+_EOF
+}
+
+install() {
+ GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \
+ /usr/bin/gconftool-2 --makefile-install-rule /usr/share/gconf/schemas/${pkgname}.schemas >/dev/null
+}
+
+uninstall() {
+ if [ -f /usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=/usr/share/gconf/schemas/${pkgname}.schemas
+ elif [ -f /opt/gnome/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=/opt/gnome/share/gconf/schemas/${pkgname}.schemas
+ else
+ schemas=`pacman -Ql ${pkgname} | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'`
+ fi
+ GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \
+ /usr/bin/gconftool-2 --makefile-uninstall-rule ${schemas} >/dev/null
+}
+
+if [ -z "$2" ]; then
+ usage
+else
+ pkgname="$2"
+ case "$1" in
+ --install)
+ install
+ ;;
+ --uninstall)
+ uninstall
+ ;;
+ *)
+ usage
+ ;;
+ esac
+fi
diff --git a/extra/gconfmm/PKGBUILD b/extra/gconfmm/PKGBUILD
new file mode 100644
index 000000000..d151b32d1
--- /dev/null
+++ b/extra/gconfmm/PKGBUILD
@@ -0,0 +1,38 @@
+#$Id: PKGBUILD 81933 2010-06-07 10:58:32Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgbase=gconfmm
+pkgname=('gconfmm' 'gconfmm-docs')
+pkgver=2.28.2
+pkgrel=1
+arch=(i686 x86_64)
+license=('LGPL')
+makedepends=('pkgconfig' 'gtkmm>=2.20.3' 'glibmm-docs' 'gconf>=2.28.1' 'glibmm>=2.24.2')
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('3e9575208ed1f43f0d0f42e62169a4e14d367a69829b3a531b943655f9db2ab9')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var || return 1
+ make || return 1
+}
+
+package_gconfmm() {
+ pkgdesc="C++ bindings for GConf"
+ depends=('gconf>=2.28.1' 'glibmm>=2.24.2')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
+
+package_gconfmm-docs() {
+ pkgdesc="Developer documentation for gconfmm"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/docs"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gd/ChangeLog b/extra/gd/ChangeLog
new file mode 100644
index 000000000..813a49e46
--- /dev/null
+++ b/extra/gd/ChangeLog
@@ -0,0 +1,11 @@
+2010-01-17 Ionut Biru <ionut@archlinux.ro>
+
+ * gd 2.0.36RC1-2
+ * libpng 1.4.0/libjpeg 8 rebuild
+
+2009-10-30 Eric Belanger <eric@archlinux.org>
+
+ * gd 2.0.36RC1-1
+ * Upstream update
+ * Added perl depends
+ * Added ChangeLog
diff --git a/extra/gd/PKGBUILD b/extra/gd/PKGBUILD
new file mode 100644
index 000000000..d00cc4b2c
--- /dev/null
+++ b/extra/gd/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 64438 2010-01-20 12:11:26Z ibiru $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=gd
+pkgver=2.0.36RC1
+pkgrel=3
+pkgdesc="Library for the dynamic creation of images by programmers"
+arch=('i686' 'x86_64')
+url="http://www.libgd.org/"
+license=('custom')
+depends=('perl' 'libpng>=1.4.0' 'fontconfig' 'libjpeg>=8')
+options=('!libtool')
+source=(http://www.libgd.org/releases/${pkgname}-${pkgver}.tar.bz2 libpng14.patch)
+md5sums=('e876979ca3130623a4e7866d9579171a'
+ '7921556f4960e8d66cf4fb67ea7101b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/libpng14.patch || return 1
+
+ ./configure --prefix=/usr --without-xpm || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" || return 1
+}
diff --git a/extra/gd/libpng14.patch b/extra/gd/libpng14.patch
new file mode 100644
index 000000000..19a3fda91
--- /dev/null
+++ b/extra/gd/libpng14.patch
@@ -0,0 +1,12 @@
+diff -Nur gd-2.0.36RC1.orig/gd_png.c gd-2.0.36RC1/gd_png.c
+--- gd-2.0.36RC1.orig/gd_png.c 2007-11-27 10:30:34.000000000 +0200
++++ gd-2.0.36RC1/gd_png.c 2010-01-17 17:14:11.000000000 +0200
+@@ -151,7 +151,7 @@
+ return NULL;
+ }
+
+- if (!png_check_sig (sig, 8)) { /* bad signature */
++ if (png_sig_cmp (sig, 0, 8)) { /* bad signature */
+ return NULL; /* bad signature */
+ }
+
diff --git a/extra/gdb/PKGBUILD b/extra/gdb/PKGBUILD
new file mode 100644
index 000000000..385774b89
--- /dev/null
+++ b/extra/gdb/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 90312 2010-09-10 14:58:18Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdb
+pkgver=7.2
+pkgrel=2
+pkgdesc="The GNU Debugger"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gdb/"
+license=('GPL3')
+depends=('ncurses' 'expat' 'python2')
+makedepends=('texinfo')
+backup=('etc/gdb/gdbinit')
+options=('!libtool')
+install=gdb.install
+source=(http://ftp.gnu.org/gnu/gdb/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('64260e6c56979ee750a01055f16091a5')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --disable-nls \
+ --with-system-readline \
+ --with-system-gdbinit=/etc/gdb/gdbinit
+ make
+
+ # requires dejagnu
+ #make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # install "custom" system gdbinit
+ install -dm755 $pkgdir/etc/gdb
+ touch $pkgdir/etc/gdb/gdbinit
+
+ # resolve conflicts with binutils
+ rm ${pkgdir}/usr/include/{ansidecl,bfd,bfdlink,dis-asm,symcat}.h
+ rm ${pkgdir}/usr/lib/{libbfd,libiberty,libopcodes}.a
+ rm ${pkgdir}/usr/share/info/{bfd,configure,standards}.info
+}
diff --git a/extra/gdb/gdb.install b/extra/gdb/gdb.install
new file mode 100644
index 000000000..44302170f
--- /dev/null
+++ b/extra/gdb/gdb.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(annotate.info gdb.info gdb.info-1 gdb.info-2 gdb.info-3 gdb.info-4 gdbint.info gdbint.info-1 gdbint.info-2 stabs.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/gdk-pixbuf2/PKGBUILD b/extra/gdk-pixbuf2/PKGBUILD
new file mode 100644
index 000000000..a2720d803
--- /dev/null
+++ b/extra/gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 114338 2011-03-12 18:07:51Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gdk-pixbuf2
+pkgver=2.22.1
+pkgrel=2
+pkgdesc="An image loading library for gtk2"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2>=2.26.0' 'libpng>=1.4.3' 'libtiff>=3.9.4' 'libjpeg' 'libx11')
+makedepends=('gtk-doc' 'gobject-introspection')
+options=('!libtool')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.22/gdk-pixbuf-${pkgver}.tar.bz2)
+sha256sums=('6ce87eda24af9362307b2593c154d0b660f4e26d0abf2e71d46d0ddd55fd953d')
+
+build() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --without-libjasper \
+ --with-included-loaders=png
+ make
+}
+
+package() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gdk-pixbuf2/gdk-pixbuf2.install b/extra/gdk-pixbuf2/gdk-pixbuf2.install
new file mode 100644
index 000000000..1b35942cb
--- /dev/null
+++ b/extra/gdk-pixbuf2/gdk-pixbuf2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
+}
diff --git a/extra/gdl/PKGBUILD b/extra/gdl/PKGBUILD
new file mode 100644
index 000000000..7f32c0e0d
--- /dev/null
+++ b/extra/gdl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 92053 2010-09-28 17:35:04Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdl
+pkgver=2.30.1
+pkgrel=1
+pkgdesc="Gnome Devtool Libraries"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnome.org/"
+depends=('gtk2>=2.22.0')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/gdl/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('027dd1cd0191996fe1a0dc902da857698cc79564cb057ba13b09097e56e30cc1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gdm/0001-port-to-libpanel-applet-3.0.patch b/extra/gdm/0001-port-to-libpanel-applet-3.0.patch
new file mode 100644
index 000000000..91ada7835
--- /dev/null
+++ b/extra/gdm/0001-port-to-libpanel-applet-3.0.patch
@@ -0,0 +1,506 @@
+diff --git a/configure.ac b/configure.ac
+index ed07dce..bf98669 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -45,7 +45,7 @@ GTK_REQUIRED_VERSION=2.20.0
+ PANGO_REQUIRED_VERSION=1.3.0
+ SCROLLKEEPER_REQUIRED_VERSION=0.1.4
+ GCONF_REQUIRED_VERSION=2.31.3
+-GNOME_PANEL_REQUIRED_VERSION=2.0.0
++GNOME_PANEL_REQUIRED_VERSION=2.31.90
+ LIBXKLAVIER_REQUIRED_VERSION=4.0
+ LIBCANBERRA_GTK_REQUIRED_VERSION=0.4
+ #FONTCONFIG_REQUIRED_VERSION=2.6.0
+@@ -152,7 +152,7 @@ AC_SUBST(SIMPLE_CHOOSER_LIBS)
+ PKG_CHECK_MODULES(APPLET,
+ dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
+ gtk+-2.0 >= $GTK_REQUIRED_VERSION
+- libpanelapplet-2.0 >= $GNOME_PANEL_REQUIRED_VERSION)
++ libpanelapplet-3.0 >= $GNOME_PANEL_REQUIRED_VERSION)
+ AC_SUBST(APPLET_CFLAGS)
+ AC_SUBST(APPLET_LIBS)
+
+diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
+deleted file mode 100644
+index a9b775f..0000000
+--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
++++ /dev/null
+@@ -1,38 +0,0 @@
+-<oaf_info>
+- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet_Factory" type="exe"
+- location="@LIBEXECDIR@/gdm-user-switch-applet">
+-
+- <oaf_attribute name="repo_ids" type="stringv">
+- <item value="IDL:Bonobo/GenericFactory:1.0"/>
+- <item value="IDL:Bonobo/Unknown:1.0"/>
+- </oaf_attribute>
+- <oaf_attribute name="name" type="string" _value="User Switcher Applet Factory"/>
+- <oaf_attribute name="description" type="string" _value="User Switcher Applet Factory"/>
+- <oaf_attribute name="bonobo:environment" type="stringv">
+- <item value="DBUS_SESSION_BUS_ADDRESS"/>
+- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
+- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
+- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
+- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
+- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
+- </oaf_attribute>
+- </oaf_server>
+-
+- <oaf_server iid="OAFIID:GNOME_FastUserSwitchApplet" type="factory"
+- location="OAFIID:GNOME_FastUserSwitchApplet_Factory">
+-
+- <oaf_attribute name="repo_ids" type="stringv">
+- <item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
+- <item value="IDL:Bonobo/Control:1.0"/>
+- <item value="IDL:Bonobo/Unknown:1.0"/>
+- </oaf_attribute>
+- <oaf_attribute name="name" type="string" _value="User Switcher"/>
+- <oaf_attribute name="description" type="string" _value="A menu to quickly switch between users"/>
+- <oaf_attribute name="panel:icon" type="string" value="stock_people"/>
+- <oaf_attribute name="bugzilla:bugzilla" type="string" value="GNOME"/>
+- <oaf_attribute name="bugzilla:product" type="string" value="gdm"/>
+- <oaf_attribute name="bugzilla:component" type="string" value="general"/>
+- <oaf_attribute name="bugzilla:version" type="string" value="@VERSION@"/>
+- <oaf_attribute name="bugzilla:other_binaries" type="string" value="gdm-user-switch-applet"/>
+- </oaf_server>
+-</oaf_info>
+diff --git a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml b/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
+deleted file mode 100644
+index e1845c8..0000000
+--- a/gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
++++ /dev/null
+@@ -1,20 +0,0 @@
+-<Root>
+- <popups>
+- <popup name="button3">
+- <menuitem
+- name="About Me Item"
+- verb="GdmAboutMe"
+- _label="Edit Personal _Information"/>
+- <menuitem
+- name="Users and Groups Admin Item"
+- verb="GdmUsersGroupsAdmin"
+- _label="_Edit Users and Groups"/>
+- <menuitem
+- name="About Item"
+- verb="GdmAbout"
+- _label="_About"
+- pixtype="stock"
+- pixname="gtk-about"/>
+- </popup>
+- </popups>
+-</Root>
+diff --git a/gui/user-switch-applet/Makefile.am b/gui/user-switch-applet/Makefile.am
+index 2d2cdc0..cebe890 100644
+--- a/gui/user-switch-applet/Makefile.am
++++ b/gui/user-switch-applet/Makefile.am
+@@ -13,6 +13,7 @@ AM_CPPFLAGS = \
+ -DLIBEXECDIR=\""$(libexecdir)"\" \
+ -DSBINDIR=\""$(sbindir)"\" \
+ -DGDMCONFDIR=\"$(gdmconfdir)\" \
++ -DGDM_USER_SWITCH_MENU_UI_DIR="\"$(uidir)\"" \
+ $(GTK_CFLAGS) \
+ $(APPLET_CFLAGS) \
+ $(NULL)
+@@ -34,34 +35,31 @@ gdm_user_switch_applet_LDADD = \
+ $(APPLET_LIBS) \
+ $(NULL)
+
+-# Bonobo UI
+-uidir = $(datadir)/gnome-2.0/ui
+-ui_DATA = \
+- GNOME_FastUserSwitchApplet.xml \
+- $(NULL)
++uidir = $(datadir)/gnome-2.0/ui
++ui_DATA = gdm-user-switch-applet-menu.xml
+
+-# Bonobo .server
+-serverdir = $(libdir)/bonobo/servers
+-server_in_files = \
+- GNOME_FastUserSwitchApplet.server.in \
+- $(NULL)
+-server_DATA = $(server_in_files:.server.in=.server)
++appletdir = $(datadir)/gnome-panel/applets
++applet_in_files = org.gnome.gdm.UserSwitch.panel-applet.in
++applet_DATA = $(applet_in_files:.panel-applet.in=.panel-applet)
+
+-$(server_in_files): $(server_in_files:.server.in=.server.in.in)
+- sed -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@
++$(applet_in_files): $(applet_in_files).in Makefile
++ $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" -e "s|\@VERSION\@|$(VERSION)|" $< > $@
+
+-@INTLTOOL_SERVER_RULE@
++%.panel-applet: %.panel-applet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
+
+-EXTRA_DIST = \
+- $(ui_DATA) \
+- GNOME_FastUserSwitchApplet.server.in.in \
+- $(NULL)
++servicedir = $(datadir)/dbus-1/services
++service_in_files = org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
++service_DATA = $(service_in_files:.service.in=.service)
++
++org.gnome.panel.applet.GdmUserSwitchAppletFactory.service: $(service_in_files)
++ $(AM_V_GEN)$(SED) -e "s|\@LIBEXECDIR\@|$(libexecdir)|" $< > $@
++
++EXTRA_DIST = org.gnome.gdm.UserSwitch.panel-applet.in.in \
++ $(service_in_files) \
++ $(ui_DATA) \
++ $(NULL)
++
++CLEANFILES = $(applet_DATA) $(applet_DATA).in $(service_DATA)
+
+-DISTCLEANFILES = \
+- $(server_in_files) \
+- $(server_DATA) \
+- $(NULL)
++MAINTAINERCLEANFILES = *~ Makefile.in
+
+-MAINTAINERCLEANFILES = \
+- *~ \
+- Makefile.in
+diff --git a/gui/user-switch-applet/applet.c b/gui/user-switch-applet/applet.c
+index b4f944c..74f7882 100644
+--- a/gui/user-switch-applet/applet.c
++++ b/gui/user-switch-applet/applet.c
+@@ -34,9 +34,6 @@
+
+ #include <dbus/dbus-glib.h>
+
+-#include <bonobo/bonobo-main.h>
+-#include <bonobo/bonobo-ui-util.h>
+-
+ #include <panel-applet.h>
+ #include <panel-applet-gconf.h>
+
+@@ -102,16 +99,15 @@ static gboolean applet_factory (PanelApplet *applet,
+ const char *iid,
+ gpointer data);
+
+-PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GNOME_FastUserSwitchApplet_Factory",
+- PANEL_TYPE_APPLET,
+- "gdm-user-switch-applet", "0",
+- (PanelAppletFactoryCallback)applet_factory,
+- NULL)
++PANEL_APPLET_OUT_PROCESS_FACTORY ("GdmUserSwitchAppletFactory",
++ PANEL_TYPE_APPLET,
++ "gdm-user-switch-applet",
++ applet_factory,
++ NULL)
+
+ static void
+-about_me_cb (BonoboUIComponent *ui_container,
+- gpointer data,
+- const char *cname)
++about_me_cb (GtkAction *action,
++ gpointer data)
+ {
+ GError *err;
+
+@@ -120,10 +116,7 @@ about_me_cb (BonoboUIComponent *ui_container,
+ g_critical ("Could not run `gnome-about-me': %s",
+ err->message);
+ g_error_free (err);
+- bonobo_ui_component_set_prop (ui_container,
+- "/commands/GdmAboutMe",
+- "hidden", "1",
+- NULL);
++ gtk_action_set_visible (action, FALSE);
+ }
+ }
+
+@@ -149,9 +142,8 @@ menubar_button_press_event_cb (GtkWidget *menubar,
+ }
+
+ static void
+-about_cb (BonoboUIComponent *ui_container,
+- gpointer data,
+- const char *cname)
++about_cb (GtkAction *action,
++ gpointer data)
+ {
+ static const char *authors[] = {
+ "James M. Cape <jcape@ignore-your.tv>",
+@@ -195,9 +187,8 @@ about_cb (BonoboUIComponent *ui_container,
+
+
+ static void
+-admin_cb (BonoboUIComponent *ui_container,
+- gpointer data,
+- const char *cname)
++admin_cb (GtkAction *action,
++ gpointer data)
+ {
+ #ifdef USERS_ADMIN
+ char **args;
+@@ -231,82 +222,6 @@ admin_cb (BonoboUIComponent *ui_container,
+ }
+
+ static void
+-set_menuitem_icon (BonoboUIComponent *component,
+- const char *item_path,
+- GtkIconTheme *theme,
+- const char *icon_name,
+- gint icon_size)
+-{
+- GdkPixbuf *pixbuf;
+- int width;
+- int height;
+-
+- pixbuf = gtk_icon_theme_load_icon (theme, icon_name, icon_size, 0, NULL);
+- if (pixbuf == NULL) {
+- return;
+- }
+-
+- width = gdk_pixbuf_get_width (pixbuf);
+- height = gdk_pixbuf_get_height (pixbuf);
+- if (width > icon_size + 4 || height > icon_size + 4) {
+- GdkPixbuf *tmp;
+- if (height > width) {
+- width *= (gdouble) icon_size / (gdouble) height;
+- height = icon_size;
+- } else {
+- height *= (gdouble) icon_size / (gdouble) width;
+- width = icon_size;
+- }
+- tmp = gdk_pixbuf_scale_simple (pixbuf, width, height, GDK_INTERP_BILINEAR);
+- g_object_unref (pixbuf);
+- pixbuf = tmp;
+- }
+-
+- bonobo_ui_util_set_pixbuf (component, item_path, pixbuf, NULL);
+- g_object_unref (pixbuf);
+-}
+-
+-static void
+-applet_style_set_cb (GtkWidget *widget,
+- GtkStyle *old_style,
+- gpointer data)
+-{
+- BonoboUIComponent *component;
+- GdkScreen *screen;
+- GtkIconTheme *theme;
+- int width;
+- int height;
+- int icon_size;
+-
+- if (gtk_widget_has_screen (widget)) {
+- screen = gtk_widget_get_screen (widget);
+- } else {
+- screen = gdk_screen_get_default ();
+- }
+-
+- if (gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen),
+- GTK_ICON_SIZE_MENU, &width, &height)) {
+- icon_size = MAX (width, height);
+- } else {
+- icon_size = 16;
+- }
+-
+- theme = gtk_icon_theme_get_for_screen (screen);
+- component = panel_applet_get_popup_component (PANEL_APPLET (widget));
+-
+- set_menuitem_icon (component,
+- "/commands/GdmAboutMe",
+- theme,
+- "user-info",
+- icon_size);
+- set_menuitem_icon (component,
+- "/commands/GdmUsersGroupsAdmin",
+- theme,
+- "stock_people",
+- icon_size);
+-}
+-
+-static void
+ applet_change_background_cb (PanelApplet *applet,
+ PanelAppletBackgroundType type,
+ GdkColor *color,
+@@ -1389,18 +1304,23 @@ on_presence_status_text_changed (DBusGProxy *presence_proxy,
+ static gboolean
+ fill_applet (PanelApplet *applet)
+ {
+- static const BonoboUIVerb menu_verbs[] = {
+- BONOBO_UI_VERB ("GdmAboutMe", about_me_cb),
+- BONOBO_UI_VERB ("GdmUsersGroupsAdmin", admin_cb),
+- BONOBO_UI_VERB ("GdmAbout", about_cb),
+- BONOBO_UI_VERB_END
++ static const GtkActionEntry gdm_user_switch_applet_actions[] = {
++ { "GdmAboutMe", "user-info", N_("Edit Personal _Information"),
++ NULL, NULL,
++ G_CALLBACK (about_me_cb) },
++ { "GdmUsersGroupsAdmin", "stock-people", N_("_Edit Users and Groups"),
++ NULL, NULL,
++ G_CALLBACK (admin_cb) },
++ { "GdmAbout", GTK_STOCK_ABOUT, N_("_About"),
++ NULL, NULL,
++ G_CALLBACK (about_cb) },
+ };
+ static gboolean first_time = FALSE;
+ char *tmp;
+- BonoboUIComponent *popup_component;
+ GdmAppletData *adata;
+ GError *error;
+ DBusGConnection *bus;
++ GtkActionGroup *action_group;
+
+ if (!first_time) {
+ first_time = TRUE;
+@@ -1438,52 +1358,51 @@ fill_applet (PanelApplet *applet)
+ gtk_container_set_border_width (GTK_CONTAINER (applet), 0);
+ gtk_widget_set_name (GTK_WIDGET (applet), "gdm-user-switch-applet");
+ panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
+- panel_applet_setup_menu_from_file (applet, NULL,
+- DATADIR "/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml",
+- NULL, menu_verbs, adata);
+
+- popup_component = panel_applet_get_popup_component (applet);
++ action_group = gtk_action_group_new ("GDM User Switch Applet Actions");
++ gtk_action_group_set_translation_domain (action_group, GETTEXT_PACKAGE);
++ gtk_action_group_add_actions (action_group,
++ gdm_user_switch_applet_actions,
++ G_N_ELEMENTS (gdm_user_switch_applet_actions),
++ adata);
++
++ panel_applet_setup_menu_from_file (applet,
++ GDM_USER_SWITCH_MENU_UI_DIR G_DIR_SEPARATOR_S "gdm-user-switch-applet-menu.xml",
++ action_group);
+
+ /* Hide the admin context menu items if locked down or no cmd-line */
+ if (gconf_client_get_bool (adata->client,
+ LOCKDOWN_COMMAND_LINE_KEY,
+ NULL) ||
+ panel_applet_get_locked_down (applet)) {
+- bonobo_ui_component_set_prop (popup_component,
+- "/popups/button3/GdmSeparator",
+- "hidden", "1", NULL);
+- bonobo_ui_component_set_prop (popup_component,
+- "/commands/GdmUsersGroupsAdmin",
+- "hidden", "1", NULL);
++ GtkAction *action;
++
++ action = gtk_action_group_get_action (action_group, "GdmUsersGroupsAdmin");
++ gtk_action_set_visible (action, FALSE);
+ } else {
++ GtkAction *action;
++
+ #ifndef USERS_ADMIN
+ # ifdef GDM_SETUP
+- bonobo_ui_component_set_prop (popup_component,
+- "/popups/button3/GdmSeparator",
+- "hidden", "1",
+- NULL);
+ # endif /* !GDM_SETUP */
+- bonobo_ui_component_set_prop (popup_component,
+- "/commands/GdmUsersGroupsAdmin",
+- "hidden", "1",
+- NULL);
++ action = gtk_action_group_get_action (action_group, "GdmUsersGroupsAdmin");
++ gtk_action_set_visible (action, FALSE);
+ #endif /* !USERS_ADMIN */
+ }
+
+ /* Hide the gdmphotosetup item if it can't be found in the path. */
+ tmp = g_find_program_in_path ("gnome-about-me");
+ if (!tmp) {
+- bonobo_ui_component_set_prop (popup_component,
+- "/commands/GdmAboutMe",
+- "hidden", "1",
+- NULL);
++ GtkAction *action;
++
++ action = gtk_action_group_get_action (action_group, "GdmAboutMe");
++ gtk_action_set_visible (action, FALSE);
+ } else {
+ g_free (tmp);
+ }
+
+- g_signal_connect (adata->applet,
+- "style-set",
+- G_CALLBACK (applet_style_set_cb), adata);
++ g_object_unref (action_group);
++
+ g_signal_connect (applet,
+ "change-background",
+ G_CALLBACK (applet_change_background_cb), adata);
+@@ -1655,7 +1574,7 @@ applet_factory (PanelApplet *applet,
+ {
+ gboolean ret;
+ ret = FALSE;
+- if (strcmp (iid, "OAFIID:GNOME_FastUserSwitchApplet") == 0) {
++ if (strcmp (iid, "GdmUserSwitchApplet") == 0) {
+ ret = fill_applet (applet);
+ }
+ return ret;
+diff --git a/gui/user-switch-applet/gdm-user-switch-applet-menu.xml b/gui/user-switch-applet/gdm-user-switch-applet-menu.xml
+new file mode 100644
+index 0000000..78301b3
+--- /dev/null
++++ b/gui/user-switch-applet/gdm-user-switch-applet-menu.xml
+@@ -0,0 +1,4 @@
++<menuitem name="About Me Item" action="GdmAboutMe"/>
++<menuitem name="Users and Groups Admin Item" action="GdmUsersGroupsAdmin"/>
++<menuitem name="About Item" action="GdmAbout"/>
++
+diff --git a/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in b/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
+new file mode 100644
+index 0000000..3c77dfb
+--- /dev/null
++++ b/gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
+@@ -0,0 +1,16 @@
++[Applet Factory]
++Id=GdmUserSwitchAppletFactory
++Location=@LIBEXECDIR@/gdm-user-switch-applet
++_Name=User Switcher Applet Factory
++_Description=User Switcher Applet Factory
++
++[GdmUserSwitchApplet]
++_Name=User Switcher
++_Description=A menu to quickly switch between users
++BonoboId=OAFIID:GNOME_FastUserSwitchApplet
++X-GNOME-Bugzilla-Bugzilla=GNOME
++X-GNOME-Bugzilla-Product=gdm
++X-GNOME-Bugzilla-Component=general
++X-GNOME-Bugzilla-Version=@VERSION@
++X-GNOME-Bugzilla-OtherBinaries=gdm-user-switch-applet
++
+diff --git a/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in b/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
+new file mode 100644
+index 0000000..7bf900f
+--- /dev/null
++++ b/gui/user-switch-applet/org.gnome.panel.applet.GdmUserSwitchAppletFactory.service.in
+@@ -0,0 +1,4 @@
++[D-BUS Service]
++Name=org.gnome.panel.applet.GdmUserSwitchAppletFactory
++Exec=@LIBEXECDIR@/gdm-user-switch-applet
++
+diff --git a/po/POTFILES.in b/po/POTFILES.in
+index 1fccb90..5340391 100644
+--- a/po/POTFILES.in
++++ b/po/POTFILES.in
+@@ -86,8 +86,7 @@ gui/simple-greeter/gdm-user-chooser-widget.c
+ gui/simple-greeter/greeter-main.c
+ gui/user-switch-applet/applet.c
+ gui/user-switch-applet/gdm-entry-menu-item.c
+-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in.in
+-gui/user-switch-applet/GNOME_FastUserSwitchApplet.xml
++gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in.in
+ utils/gdmflexiserver.c
+ utils/gdm-screenshot.c
+
+diff --git a/po/POTFILES.skip b/po/POTFILES.skip
+index 0269a0f..9032c03 100644
+--- a/po/POTFILES.skip
++++ b/po/POTFILES.skip
+@@ -7,7 +7,7 @@
+ # remove these unless you fix "make distcheck" a different way.
+ #
+ data/gdm.schemas.in
+-gui/user-switch-applet/GNOME_FastUserSwitchApplet.server.in
++gui/user-switch-applet/org.gnome.gdm.UserSwitch.panel-applet.in
+ data/greeter-autostart/at-spi-registryd-wrapper.desktop.in
+ data/greeter-autostart/gdm-simple-greeter.desktop.in
+ data/greeter-autostart/gnome-power-manager.desktop.in
+--
+1.7.2.3
+
diff --git a/extra/gdm/04_fix_external_program_directories.patch b/extra/gdm/04_fix_external_program_directories.patch
new file mode 100644
index 000000000..7ccc28644
--- /dev/null
+++ b/extra/gdm/04_fix_external_program_directories.patch
@@ -0,0 +1,48 @@
+diff -Nur gdm-2.30.2.orig/daemon/gdm-server.c gdm-2.30.2/daemon/gdm-server.c
+--- gdm-2.30.2.orig/daemon/gdm-server.c 2010-04-26 20:08:42.000000000 +0300
++++ gdm-2.30.2/daemon/gdm-server.c 2010-04-29 22:55:49.631648355 +0300
+@@ -127,7 +127,7 @@
+ g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
+
+ error = NULL;
+- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s",
++ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s",
+ server->priv->display_name);
+
+ g_debug ("GdmServer: Running helper %s", command);
+diff -Nur gdm-2.30.2.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in gdm-2.30.2/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
+--- gdm-2.30.2.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2010-03-17 23:27:16.000000000 +0200
++++ gdm-2.30.2/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2010-04-29 22:53:54.984878068 +0300
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+ Type=Application
+ _Name=GNOME Settings Daemon
+-TryExec=@LIBEXECDIR@/gnome-settings-daemon
+-Exec=@LIBEXECDIR@/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins
++TryExec=/usr/bin/gnome-settings-daemon
++Exec=/usr/bin/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-greeter/settings-manager-plugins
+ OnlyShowIn=GNOME;
+ X-GNOME-Autostart-Phase=Initialization
+ X-GNOME-Autostart-Notify=true
+diff -Nur gdm-2.30.2.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in gdm-2.30.2/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
+--- gdm-2.30.2.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2010-03-26 15:28:03.000000000 +0200
++++ gdm-2.30.2/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2010-04-29 22:54:24.638396328 +0300
+@@ -1,5 +1,5 @@
+ [Desktop Entry]
+ Type=Application
+ _Name=PolicyKit Authentication Agent
+-Exec=@LIBEXECDIR@/polkit-gnome-authentication-agent-1
++Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+ OnlyShowIn=GNOME;
+diff -Nur gdm-2.30.2.orig/gui/simple-chooser/gdm-chooser-session.c gdm-2.30.2/gui/simple-chooser/gdm-chooser-session.c
+--- gdm-2.30.2.orig/gui/simple-chooser/gdm-chooser-session.c 2010-03-17 23:27:16.000000000 +0200
++++ gdm-2.30.2/gui/simple-chooser/gdm-chooser-session.c 2010-04-29 22:57:08.691626507 +0300
+@@ -131,7 +131,7 @@
+ ret = FALSE;
+
+ error = NULL;
+- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-chooser/settings-manager-plugins", &error);
++ g_spawn_command_line_async ("/usr/bin/gnome-settings-daemon --gconf-prefix=/apps/gdm/simple-chooser/settings-manager-plugins", &error);
+ if (error != NULL) {
+ g_warning ("Error starting settings daemon: %s", error->message);
+ g_error_free (error);
diff --git a/extra/gdm/PKGBUILD b/extra/gdm/PKGBUILD
new file mode 100644
index 000000000..b5a06693f
--- /dev/null
+++ b/extra/gdm/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 117177 2011-03-29 06:49:52Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=gdm
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="Gnome Display Manager (a reimplementation of xdm)"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+backup=('etc/pam.d/gdm' 'etc/pam.d/gdm-autologin' 'etc/gdm/custom.conf')
+groups=('gnome-extra')
+options=('!libtool')
+depends=('libcanberra>=0.26' 'libxklavier>=5.0' 'tcp_wrappers' 'gnome-session>=2.32.1' 'upower>=0.9.7' 'consolekit>=0.4.1-4')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.1' 'xorg-server' 'gnome-panel>=2.32.0')
+optdepends=('gnome-panel: needed for user switch applet')
+conflicts=('fast-user-switch-applet')
+replaces=('fast-user-switch-applet')
+install=gdm.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ 04_fix_external_program_directories.patch
+ gdm-vt-allocation-hack.patch
+ 0001-port-to-libpanel-applet-3.0.patch
+ correctly-give-focus-to-user-chooser.patch
+ gdm.pam
+ gdm-autologin.pam
+ gdm)
+sha256sums=('7ba9cb2a8efb9856994467b14e4837a281fcf6d9dc9a267ea38a9aae1ec55abc'
+ 'cb585c39c6671387b5a25f21a99c97e3a20eaf4188fea1b62871681a1ebf8bff'
+ '3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215'
+ '41ca4b2408d61776ab42c50834374a90664d43d33ad7034c7c52862d9bf3234a'
+ 'ab6d9739c0cc3631d077a897291d6a38fea1c713a3647d008e2635f48c503cb4'
+ 'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19'
+ '3daff680ff6b7ea56f84f40843e46e72477c81e9e405028203c942af04d07ae5'
+ '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/04_fix_external_program_directories.patch"
+ patch -Np1 -i "${srcdir}/gdm-vt-allocation-hack.patch"
+ patch -Np1 -i "${srcdir}/0001-port-to-libpanel-applet-3.0.patch"
+ patch -Np1 -i "${srcdir}/correctly-give-focus-to-user-chooser.patch"
+ autoreconf -fi
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gdm --localstatedir=/var --disable-static \
+ --with-at-spi-registryd-directory=/usr/lib/at-spi \
+ --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gdm ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -r "${pkgdir}/etc/gconf/schemas/"
+
+ install -m644 "${srcdir}/gdm.pam" "${pkgdir}/etc/pam.d/gdm"
+ install -m644 "${srcdir}/gdm-autologin.pam" "${pkgdir}/etc/pam.d/gdm-autologin"
+
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 "${srcdir}/gdm" "${pkgdir}/etc/rc.d/"
+
+ rmdir "${pkgdir}/var/gdm"
+ chmod 1770 "${pkgdir}/var/log/gdm"
+}
diff --git a/extra/gdm/correctly-give-focus-to-user-chooser.patch b/extra/gdm/correctly-give-focus-to-user-chooser.patch
new file mode 100644
index 000000000..e08675a36
--- /dev/null
+++ b/extra/gdm/correctly-give-focus-to-user-chooser.patch
@@ -0,0 +1,46 @@
+From b971eb1038cb92ed8211b68a7d2a99a98d86ed7f Mon Sep 17 00:00:00 2001
+From: Vincent Untz <vuntz@gnome.org>
+Date: Wed, 12 Jan 2011 18:38:46 +0100
+Subject: [PATCH] Correctly give focus to the user chooser on startup
+
+We manually handle how focus works in the GdmChooserWidget container,
+and we try to automatically move the focus to the treeview inside the
+chooser. However, it fails the first time because the treeview is not
+realized yet and the logic in the code assumes that if focus moved to
+the chooser, it moved to the treeview, so later attempt to get the focus
+grabbed by the treeview are just ignored.
+
+It works fine when using gtk_widget_child_focus() to give the focus to
+the treeview. And this makes more sense since the chooser is a container
+anyway.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=629310
+---
+ gui/simple-greeter/gdm-chooser-widget.c | 6 +-----
+ 1 files changed, 1 insertions(+), 5 deletions(-)
+
+diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
+index db2d9b2..ebbfdb9 100644
+--- a/gui/simple-greeter/gdm-chooser-widget.c
++++ b/gui/simple-greeter/gdm-chooser-widget.c
+@@ -910,17 +910,13 @@ _grab_focus (GtkWidget *widget)
+
+ foc_widget = GDM_CHOOSER_WIDGET (widget)->priv->items_view;
+ g_debug ("GdmChooserWidget: grabbing focus");
+- if (! gtk_widget_get_realized (foc_widget)) {
+- g_debug ("GdmChooserWidget: not grabbing focus - not realized");
+- return;
+- }
+
+ if (gtk_widget_has_focus (foc_widget)) {
+ g_debug ("GdmChooserWidget: not grabbing focus - already has it");
+ return;
+ }
+
+- gtk_widget_grab_focus (foc_widget);
++ gtk_widget_child_focus (foc_widget, GTK_DIR_TAB_FORWARD);
+ }
+
+ static void
+--
+1.7.3.4
diff --git a/extra/gdm/gdm b/extra/gdm/gdm
new file mode 100755
index 000000000..c3e635a6d
--- /dev/null
+++ b/extra/gdm/gdm
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting GDM"
+ /usr/sbin/gdm &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+
+ add_daemon gdm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping GDM"
+ [ -f /var/run/gdm.pid ] && kill `cat /var/run/gdm.pid` &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon gdm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/gdm/gdm-autologin.pam b/extra/gdm/gdm-autologin.pam
new file mode 100644
index 000000000..7c2f9a985
--- /dev/null
+++ b/extra/gdm/gdm-autologin.pam
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_permit.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
diff --git a/extra/gdm/gdm-vt-allocation-hack.patch b/extra/gdm/gdm-vt-allocation-hack.patch
new file mode 100644
index 000000000..56fa5a151
--- /dev/null
+++ b/extra/gdm/gdm-vt-allocation-hack.patch
@@ -0,0 +1,118 @@
+diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
+index 39def47..03488fd 100644
+--- a/daemon/gdm-server.c
++++ b/daemon/gdm-server.c
+@@ -33,6 +33,8 @@
+ #include <grp.h>
+ #include <signal.h>
+ #include <sys/resource.h>
++#include <sys/ioctl.h>
++#include <sys/vt.h>
+
+ #include <glib.h>
+ #include <glib/gi18n.h>
+@@ -150,6 +152,92 @@ _gdm_server_query_ck_for_display_device (GdmServer *server)
+ return out;
+ }
+
++#ifndef O_NOCTTY
++# define O_NOCTTY 0
++#endif
++
++static int
++open_vt (int vtno)
++{
++ char *vtname;
++ int fd;
++
++ vtname = g_strdup_printf ("/dev/tty%d", vtno);
++
++ do {
++ errno = 0;
++ fd = open (vtname, O_RDWR | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ g_free (vtname);
++ return fd;
++}
++
++static gint
++find_first_probably_free_vt (void)
++{
++ int fd, fdv;
++ int vtno;
++ unsigned short vtmask;
++ struct vt_stat vtstat;
++ guint v_state;
++
++ fdv = -1;
++
++ do {
++ errno = 0;
++ fd = open ("/dev/console", O_WRONLY | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ if (fd >= 0) {
++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) {
++ v_state = vtstat.v_state;
++ } else {
++ close (fd);
++ v_state = 0;
++ fd = -1;
++ }
++ } else {
++ v_state = 0;
++ }
++
++ if (fd < 0) {
++ do {
++ errno = 0;
++ fd = open ("/dev/console", O_RDONLY | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ if (fd >= 0) {
++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0)
++ v_state = vtstat.v_state;
++ }
++ }
++
++ for (vtno = 7, vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) {
++ /* Is this console in use? */
++ if (v_state & vtmask)
++ continue;
++
++ /* No, try to open it */
++ fdv = open_vt (vtno);
++ if (fdv >= 0)
++ break;
++
++ /* If we're here, kernel indicated that the console was free,
++ * but we failed to open it. Just go on to higher VTs. */
++ }
++
++ if (fdv >= 0)
++ close (fdv);
++ else
++ vtno = -1;
++
++ if (fd >= 0)
++ close (fd);
++
++ return vtno;
++}
++
+ char *
+ gdm_server_get_display_device (GdmServer *server)
+ {
+@@ -310,6 +398,11 @@ gdm_server_resolve_command_line (GdmServer *server,
+
+ if (vtarg != NULL && ! gotvtarg) {
+ argv[len++] = g_strdup (vtarg);
++ } else if (!query_in_arglist && !gotvtarg) {
++ gint vtnum = find_first_probably_free_vt ();
++
++ if (vtnum > 0)
++ argv [len++] = g_strdup_printf ("vt%d", vtnum);
+ }
+
+ argv[len++] = NULL;
diff --git a/extra/gdm/gdm.install b/extra/gdm/gdm.install
new file mode 100644
index 000000000..c2b5e375e
--- /dev/null
+++ b/extra/gdm/gdm.install
@@ -0,0 +1,44 @@
+pkgname=gdm
+
+post_install() {
+ getent group gdm >/dev/null 2>&1 || groupadd -g 120 gdm
+ if getent passwd gdm > /dev/null 2>&1; then
+ usr/sbin/usermod -d /var/lib/gdm -c 'Gnome Display Manager' -s /sbin/nologin gdm > /dev/null 2>&1
+ else
+ usr/sbin/useradd -c 'Gnome Display Manager' -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm
+ fi
+ passwd -l gdm > /dev/null
+ chown gdm:gdm /var/lib/gdm > /dev/null
+ chown -R gdm:gdm /var/lib/gdm/.gconf.mandatory
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ if [ -f opt/gnome/etc/gdm/custom.conf ]; then
+ mkdir -p etc/gdm
+ sed -e 's|/opt/gnome/libexec|usr/lib/gdm|g' \
+ -e 's|/opt/gnome/etc|/etc|g' \
+ -e 's|/opt/gnome/|/usr/|g' \
+ opt/gnome/etc/gdm/custom.conf > etc/gdm/custom.conf
+ mv opt/gnome/etc/gdm/custom.conf opt/gnome/etc/gdm/custom.conf.pacsave
+ fi
+ pre_remove
+}
+
+pre_remove() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ gconfpkg --uninstall ${pkgname}
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ getent passwd gdm >/dev/null 2>&1 && userdel gdm
+ getent group gdm >/dev/null 2>&1 && groupdel gdm
+}
diff --git a/extra/gdm/gdm.pam b/extra/gdm/gdm.pam
new file mode 100644
index 000000000..655299cb7
--- /dev/null
+++ b/extra/gdm/gdm.pam
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+auth optional pam_gnome_keyring.so
+account required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_gnome_keyring.so auto_start
+password required pam_unix.so
diff --git a/extra/gdome2/PKGBUILD b/extra/gdome2/PKGBUILD
new file mode 100644
index 000000000..b51c8539a
--- /dev/null
+++ b/extra/gdome2/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 42368 2009-06-13 12:47:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdome2
+pkgver=0.8.1
+pkgrel=2
+pkgdesc="Gnome DOM Engine"
+url="http://gdome2.cs.unibo.it/"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libxml2>=2.7.3' 'glib2>=2.20.3')
+options=(!libtool)
+source=(http://gdome2.cs.unibo.it/tarball/${pkgname}-${pkgver}.tar.gz)
+md5sums=('bfc114e59eec50cbda8e4ece751ff022')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gecko-sharp-2.0/PKGBUILD b/extra/gecko-sharp-2.0/PKGBUILD
new file mode 100644
index 000000000..a9fc4bf26
--- /dev/null
+++ b/extra/gecko-sharp-2.0/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 44373 2009-07-01 20:54:06Z jgc $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Brice Carpentier <brice@daknet.org>
+
+pkgname=gecko-sharp-2.0
+pkgver=0.13
+pkgrel=3
+pkgdesc="C# bindings for gtkmozembed"
+arch=(i686 x86_64)
+license=('LGPL' 'MPL')
+url="http://www.mono-project.com/"
+depends=('xulrunner>=1.9.1' 'gtk-sharp-2>=2.12.1')
+makedepends=('monodoc' 'pkgconfig')
+source=(http://go-mono.com/sources/gecko-sharp-2.0/gecko-sharp-2.0-${pkgver}.tar.bz2
+ gecko-sharp-2.0-0.12-xulrunner.patch)
+md5sums=('f88eaa06e71f8d8fa34cf59a3e034a6b'
+ '4f2c07c3fb0c1a94adaa4e4c8d57608b')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR="${startdir}/src/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ # build
+ cd ${srcdir}/gecko-sharp-2.0-${pkgver}
+ patch -Np1 -i ${srcdir}/gecko-sharp-2.0-0.12-xulrunner.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make GACUTIL="/usr/bin/gacutil /root ${startdir}/pkg/usr/lib" \
+ DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/gecko-sharp-2.0/gecko-sharp-2.0-0.12-xulrunner.patch b/extra/gecko-sharp-2.0/gecko-sharp-2.0-0.12-xulrunner.patch
new file mode 100644
index 000000000..5d19fea72
--- /dev/null
+++ b/extra/gecko-sharp-2.0/gecko-sharp-2.0-0.12-xulrunner.patch
@@ -0,0 +1,42 @@
+diff -up gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.raw.xl gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.raw
+--- gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.raw.xl 2006-12-22 20:57:47.000000000 +0100
++++ gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.raw 2007-11-27 15:54:41.000000000 +0100
+@@ -349,6 +349,12 @@
+ <parameter type="const-char*" name="aPath" />
+ </parameters>
+ </method>
++ <method name="SetPath" cname="gtk_moz_embed_set_path" shared="true">
++ <return-type type="void" />
++ <parameters>
++ <parameter type="const-char*" name="aPath" />
++ </parameters>
++ </method>
+ <method name="SetProfilePath" cname="gtk_moz_embed_set_profile_path" shared="true">
+ <return-type type="void" />
+ <parameters>
+diff -up gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.xml.xl gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.xml
+--- gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.xml.xl 2006-12-22 20:57:54.000000000 +0100
++++ gecko-sharp-2.0-0.12/gtkmozembed/gtkgecko-api.xml 2007-11-27 15:54:41.000000000 +0100
+@@ -349,6 +349,12 @@
+ <parameter type="const-char*" name="aPath" />
+ </parameters>
+ </method>
++ <method name="SetPath" cname="gtk_moz_embed_set_path" shared="true">
++ <return-type type="void" />
++ <parameters>
++ <parameter type="const-char*" name="aPath" />
++ </parameters>
++ </method>
+ <method name="SetProfilePath" cname="gtk_moz_embed_set_profile_path" shared="true">
+ <return-type type="void" />
+ <parameters>
+diff -up gecko-sharp-2.0-0.12/gtkmozembed/gecko-sharp.dll.config.in.xl gecko-sharp-2.0-0.12/gtkmozembed/gecko-sharp.dll.config.in
+--- gecko-sharp-2.0-0.12/gtkmozembed/gecko-sharp.dll.config.in.xl 2006-12-22 20:57:47.000000000 +0100
++++ gecko-sharp-2.0-0.12/gtkmozembed/gecko-sharp.dll.config.in 2007-11-27 16:05:02.000000000 +0100
+@@ -3,5 +3,5 @@
+ <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+ <dllmap dll="libatk-1.0-0.dll" target="libatk-1.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+ <dllmap dll="libgtk-win32-2.0-0.dll" target="libgtk-x11-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+- <dllmap dll="gtkembedmoz.dll" target="libgtkembedmoz@LIB_PREFIX@@LIB_SUFFIX@"/>
++ <dllmap dll="gtkembedmoz.dll" target="libxul@LIB_PREFIX@@LIB_SUFFIX@"/>
+ </configuration>
diff --git a/extra/gedit/PKGBUILD b/extra/gedit/PKGBUILD
new file mode 100644
index 000000000..213f21952
--- /dev/null
+++ b/extra/gedit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 101119 2010-11-28 10:04:15Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gedit
+pkgver=2.30.4
+pkgrel=3
+pkgdesc="A text editor for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gconf>=2.32.0' 'pygtksourceview2>=2.10.1' 'enchant>=1.5.0' 'desktop-file-utils' 'iso-codes>=3.10.1' 'libsm')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.2' 'intltool')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gedit.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('a561fe3dd1d199baede1bd07c4ee65f06fc7c494dd4d3327117f04149a608e3c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib --disable-scrollkeeper
+ make
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gedit ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gedit/gedit.install b/extra/gedit/gedit.install
new file mode 100644
index 000000000..ed7a67459
--- /dev/null
+++ b/extra/gedit/gedit.install
@@ -0,0 +1,22 @@
+pkgname=gedit
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/extra/geeqie/PKGBUILD b/extra/geeqie/PKGBUILD
new file mode 100644
index 000000000..af38bc2a6
--- /dev/null
+++ b/extra/geeqie/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 110925 2011-02-23 07:41:06Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=geeqie
+pkgver=1.0
+pkgrel=4
+pkgdesc="A lightweight image browser and viewer (fork of GQview)"
+arch=('i686' 'x86_64')
+url="http://geeqie.sourceforge.net/"
+license=('GPL3')
+depends=('exiv2' 'gtk2' 'lcms')
+makedepends=('intltool' 'doxygen')
+optdepends=('librsvg: SVG rendering')
+replaces=('gqview-devel')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('1d67ef990390224c5052697d93bb49c0')
+sha1sums=('8494a557d67d20e6ad720645ec789dd2b33a3266')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ CPPFLAGS="-D_FILE_OFFSET_BITS=64" ./configure --prefix=/usr
+ make
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gegl/PKGBUILD b/extra/gegl/PKGBUILD
new file mode 100644
index 000000000..4a018da9c
--- /dev/null
+++ b/extra/gegl/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 110564 2011-02-20 03:00:42Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gegl
+pkgver=0.1.6
+pkgrel=1
+pkgdesc="Graph based image processing framework"
+arch=('i686' 'x86_64')
+url="http://www.gegl.org/"
+license=('GPL3' 'LGPL3')
+depends=('babl' 'libpng' 'libjpeg' 'gtk2')
+makedepends=('ruby' 'lua' 'openexr' 'ffmpeg' 'librsvg' 'jasper' 'exiv2')
+optdepends=('openexr: for using the openexr plugin' \
+ 'ffmpeg: for using the ffmpeg plugin' \
+ 'librsvg: for using the svg plugin' \
+ 'jasper: for using the jasper plugin')
+options=('!libtool')
+source=(ftp://ftp.gimp.org/pub/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('af5e5a7d3c7ddfaa2b3414de2a7e9113')
+sha1sums=('27bedcfd077da7a6913b82966dbec904b22c121d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-sdl --with-openexr --with-librsvg \
+ --with-libavformat --with-jasper --disable-docs
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/genius/PKGBUILD b/extra/genius/PKGBUILD
new file mode 100644
index 000000000..48afa7f0c
--- /dev/null
+++ b/extra/genius/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 100391 2010-11-23 05:28:18Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@soulfly.nl>
+
+pkgname=genius
+pkgver=1.0.12
+pkgrel=1
+pkgdesc="Advanced calculator including a mathematical programming language"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.jirka.org/genius.html"
+depends=('vte>=0.26.2' 'gtksourceview2>=2.10.5' 'mpfr>=3.0.0' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.0')
+options=('!libtool' '!makeflags')
+install=genius.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/genius/1.0/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e94f92474140d1549f44cd84a09e62760f4e0e6af555c565559d132556f5fde4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/genius \
+ --localstatedir=/var --disable-static \
+ --enable-gtksourceview --disable-scrollkeeper \
+ --disable-update-mimedb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/genius/genius.install b/extra/genius/genius.install
new file mode 100644
index 000000000..45931222a
--- /dev/null
+++ b/extra/genius/genius.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/geoip/PKGBUILD b/extra/geoip/PKGBUILD
new file mode 100644
index 000000000..13b4ead43
--- /dev/null
+++ b/extra/geoip/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 40077 2009-05-27 06:02:01Z juergen $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=geoip
+pkgver=1.4.6
+pkgrel=1
+pkgdesc="Non-DNS IP-to-country resolver C library & utils"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.maxmind.com/app/c"
+depends=('zlib')
+backup=(etc/geoip/GeoIP.conf)
+options=('!libtool')
+source=(http://www.maxmind.com/download/geoip/api/c/GeoIP-${pkgver}.tar.gz)
+md5sums=('cb14b1beeb40631a12676b11ca0c309a')
+
+build() {
+ cd ${startdir}/src/GeoIP-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc/geoip
+ make || return 1
+ make check || return 1
+ make DESTDIR=${startdir}/pkg install
+}
+
diff --git a/extra/gettext-mono/PKGBUILD b/extra/gettext-mono/PKGBUILD
new file mode 100644
index 000000000..4ecbe0a05
--- /dev/null
+++ b/extra/gettext-mono/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 69576 2010-02-21 06:28:43Z allan $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=gettext-mono
+pkgver=0.17
+pkgrel=4
+pkgdesc="mono assemblies for GNU internationalization library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gettext"
+license=('GPL3')
+depends=('mono>=1.9')
+source=(ftp://ftp.gnu.org/pub/gnu/gettext/gettext-$pkgver.tar.gz)
+md5sums=('58a2bc6d39c0ba57823034d55d65d606')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ mkdir -p $srcdir/weird
+ export MONO_SHARED_DIR=$srcdir/weird
+
+ cd $srcdir/gettext-$pkgver
+ ./configure --prefix=/usr --enable-csharp=mono || return 1
+ make || return 1
+ # libraries are installed manually
+ install -Dm644 gettext-runtime/intl-csharp/GNU.Gettext.dll \
+ $pkgdir/usr/lib/GNU.Gettext.dll || return 1
+ install -Dm644 gettext-tools/src/msgfmt.net.exe \
+ $pkgdir/usr/lib/gettext/msgfmt.net.exe || return 1
+ install -Dm644 gettext-tools/src/msgunfmt.net.exe \
+ $pkgdir/usr/lib/gettext/msgunfmt.net.exe || return 1
+}
+# vim: ft=sh ts=2 et
diff --git a/extra/gftp/PKGBUILD b/extra/gftp/PKGBUILD
new file mode 100644
index 000000000..4d4bdd661
--- /dev/null
+++ b/extra/gftp/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 75329 2010-04-01 10:29:24Z giovanni $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
+
+pkgname=gftp
+pkgver=2.0.19
+pkgrel=3
+pkgdesc="A multithreaded ftp client for X Windows"
+arch=('i686' 'x86_64')
+depends=('gtk2' 'openssl' 'readline')
+source=(http://www.gftp.org/$pkgname-$pkgver.tar.bz2)
+url="http://www.gftp.org/"
+license=('GPL2')
+md5sums=('5183cb4955d94be0e03c892585547c64')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/ggv/PKGBUILD b/extra/ggv/PKGBUILD
new file mode 100644
index 000000000..40401e1c7
--- /dev/null
+++ b/extra/ggv/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 40229 2009-05-28 22:48:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=ggv
+pkgver=2.12.0
+pkgrel=3
+pkgdesc="Postscript viewer"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgnomeui>=2.14.1' 'ghostscript' 'desktop-file-utils')
+makedepends=('intltool' 'gnome-doc-utils' 'pkgconfig')
+url="http://www.gnome.org"
+install=ggv.install
+source=(http://ftp.gnome.org/pub/gnome/sources/ggv/2.12/ggv-${pkgver}.tar.bz2)
+md5sums=('418f0ef3f8b82bb0c423a2a1cf6769f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/ggv \
+ --localstatedir=/var || return 1
+ make || return 1
+ make GCONF_DISABLE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema ${startdir}/pkg/usr/share/gconf/schemas/${pkgname}.schemas --domain ggv ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+}
diff --git a/extra/ggv/ggv.install b/extra/ggv/ggv.install
new file mode 100644
index 000000000..99a67d0e5
--- /dev/null
+++ b/extra/ggv/ggv.install
@@ -0,0 +1,22 @@
+pkgname=ggv
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/extra/ggz-client-libs/PKGBUILD b/extra/ggz-client-libs/PKGBUILD
new file mode 100644
index 000000000..b750c7f79
--- /dev/null
+++ b/extra/ggz-client-libs/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ggz-client-libs
+pkgver=0.0.14.1
+pkgrel=1
+pkgdesc="GGZ client library, used by the GGZ Gaming Zone server (ggzd), the ggzcore library and other components"
+arch=(i686 x86_64)
+url="http://www.ggzgamingzone.org/"
+license=('LGPL')
+depends=('libggz>=0.0.14.1' 'expat>=2.0.1')
+options=('!libtool')
+source=(http://ftp.ggzgamingzone.org/pub/ggz/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('299eaa93721b1d867b5bf7dc6ac764b0')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+}
diff --git a/extra/ghc/PKGBUILD b/extra/ghc/PKGBUILD
new file mode 100644
index 000000000..19887fef4
--- /dev/null
+++ b/extra/ghc/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 112131 2011-03-04 07:57:42Z vesa $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+pkgname=ghc
+pkgver=7.0.2
+pkgrel=1
+pkgdesc="The Glasgow Haskell Compiler"
+arch=(i686 x86_64)
+url="http://www.haskell.org/ghc/"
+license=("custom")
+depends=('perl' 'gmp>=5.0' gcc)
+makedepends=(ghc happy perl)
+provides=("haskell-array=0.3.0.2"
+ "haskell-bytestring=0.9.1.10"
+ "haskell-cabal=1.10.1.0"
+ "haskell-containers=0.4.0.0"
+ "haskell-directory=1.1.0.0"
+ "haskell-extensible-exceptions=0.1.1.2"
+ "haskell-filepath=1.2.0.0"
+ "haskell-haskell98=1.1.0.1"
+ "haskell-hpc=0.5.0.6"
+ "haskell-old-locale=1.0.0.2"
+ "haskell-old-time=1.0.0.6"
+ "haskell-pretty=1.0.1.2"
+ "haskell-process=1.0.1.5"
+ "haskell-random=1.0.0.3"
+ "haskell-template-haskell=2.5.0.0"
+ "haskell-time=1.2.0.3"
+ "haskell-unix=2.4.2.0"
+ "haddock=2.9.2"
+ )
+replaces=("haskell-array<0.3.0.2"
+ "haskell-bytestring<0.9.1.10"
+ "haskell-cabal<1.10.1.0"
+ "haskell-containers<0.4.0.0"
+ "haskell-directory<1.1.0.0"
+ "haskell-extensible-exceptions<0.1.1.2"
+ "haskell-filepath<1.2.0.0"
+ "haskell-haskell98<1.1.0.1"
+ "haskell-hpc<0.5.0.6"
+ "haskell-old-locale<1.0.0.2"
+ "haskell-old-time<1.0.0.6"
+ "haskell-pretty<1.0.1.2"
+ "haskell-process<1.0.1.5"
+ "haskell-random<1.0.0.3"
+ "haskell-template-haskell<2.5.0.0"
+ "haskell-time<1.2.0.3"
+ "haskell-unix<2.4.2.0"
+ "haddock<2.9.2"
+ )
+
+install=ghc.install
+
+source=("http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-src.tar.bz2"
+ build.mk)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ cp $srcdir/build.mk mk/build.mk
+
+ ./configure --prefix=/usr
+ make -j1 || return 1
+ make DESTDIR=$pkgdir install
+
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/ghc/license
+}
+
+md5sums=('946a18a0dc30437db72c0d3fdf26ca42'
+ '5a3e0880c80b1dcecf779ff2e63a9c0d')
diff --git a/extra/ghc/build.mk b/extra/ghc/build.mk
new file mode 100644
index 000000000..f918a0f16
--- /dev/null
+++ b/extra/ghc/build.mk
@@ -0,0 +1,150 @@
+# -----------------------------------------------------------------------------
+# A Sample build.mk
+#
+# Uncomment one of the following BuildFlavour settings to get the desired
+# overall build type, and then tweak the options in the relevant section
+# below.
+
+# Uncomment one of these to select a build profile below:
+
+# Full build with max optimisation (slow build)
+BuildFlavour = perf
+
+# Fastest build (libs unoptimised):
+#BuildFlavour = quickest
+
+# Fast build with optimised libraries:
+#BuildFlavour = quick
+
+# Profile the stage2 compiler:
+#BuildFlavour = prof
+
+# A development build, working on the stage 1 compiler:
+#BuildFlavour = devel1
+
+# A development build, working on the stage 2 compiler:
+#BuildFlavour = devel2
+
+GhcLibWays = v
+
+# -------- 1. A Performance/Distribution build--------------------------------
+
+ifeq "$(BuildFlavour)" "perf"
+
+# perf matches the default settings, repeated here for comparison:
+
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O2 -fasm
+GhcHcOpts = -Rghc-timing
+GhcLibHcOpts = -O2 -XGenerics
+GhcLibWays += p
+
+ifeq "$(PlatformSupportsSharedLibs)" "YES"
+GhcLibWays += dyn
+endif
+
+endif
+
+# -------- A Fast build ------------------------------------------------------
+
+ifeq "$(BuildFlavour)" "quickest"
+
+SRC_HC_OPTS = -H64m -O0 -fasm
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O0 -fasm
+GhcLibHcOpts = -O0 -fasm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -------- A Fast build with optimised libs ----------------------------------
+
+ifeq "$(BuildFlavour)" "quick"
+
+SRC_HC_OPTS = -H64m -O0 -fasm
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O0 -fasm
+GhcLibHcOpts = -O -fasm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -------- Profile the stage2 compiler ---------------------------------------
+
+ifeq "$(BuildFlavour)" "prof"
+
+SRC_HC_OPTS = -H64m -O0 -fasm
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O -fasm
+GhcLibHcOpts = -O -fasm
+
+GhcLibWays += p
+GhcProfiled = YES
+
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+
+# -------- A Development build (stage 1) -------------------------------------
+
+ifeq "$(BuildFlavour)" "devel1"
+
+SRC_HC_OPTS = -H64m -O -fasm
+GhcLibHcOpts = -O -dcore-lint
+GhcStage1HcOpts = -Rghc-timing -O0 -DDEBUG
+GhcStage2HcOpts = -Rghc-timing -O -fasm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -------- A Development build (stage 2) -------------------------------------
+
+ifeq "$(BuildFlavour)" "devel2"
+
+SRC_HC_OPTS = -H64m -O -fasm
+GhcLibHcOpts = -O -dcore-lint
+GhcStage1HcOpts = -Rghc-timing -O -fasm
+GhcStage2HcOpts = -Rghc-timing -O0 -DDEBUG
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -----------------------------------------------------------------------------
+# Other settings that might be useful
+
+# profiled RTS
+#GhcRtsCcOpts = -pg -g
+
+# Optimised/profiled RTS
+#GhcRtsCcOpts = -O2 -pg
+
+#GhcRtsWithFrontPanel = YES
+#SRC_HC_OPTS += `gtk-config --libs`
+
+# NoFib settings
+NoFibWays =
+STRIP=:
+
+
diff --git a/extra/ghc/ghc.install b/extra/ghc/ghc.install
new file mode 100644
index 000000000..7d56083bc
--- /dev/null
+++ b/extra/ghc/ghc.install
@@ -0,0 +1,19 @@
+pkgname=ghc
+
+pre_upgrade() {
+ cat << EOF
+ ==> Unregistering cabalized packages...
+EOF
+ cd /usr/share/haskell/ && (for a in *; do ghc-pkg unregister --force $a &> /dev/null; done; cd - > /dev/null )
+ cat << EOF
+ ==> Done.
+EOF
+
+}
+
+post_upgrade() {
+ cat << EOF
+ ==> All cabalized and yaourt-installed packages need to be reinstalled now.
+ ==> See /usr/share/haskell/ and ghc-pkg list --user for a tentative list of affected packages.
+EOF
+}
diff --git a/extra/ghex/PKGBUILD b/extra/ghex/PKGBUILD
new file mode 100644
index 000000000..700075f98
--- /dev/null
+++ b/extra/ghex/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 56292 2009-10-21 10:30:09Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=ghex
+pkgver=2.24.0
+pkgrel=1
+pkgdesc="A simple binary editor for the Gnome desktop"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://live.gnome.org/Ghex"
+depends=('libgnomeui>=2.24.2' 'libgnomeprintui>=2.18.4' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.18.0')
+options=('!libtool' '!emptydirs')
+install=ghex.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/ghex/2.24/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('6fd8e0df1cb6fb9fcf60cfa2bc88877713e4366c')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${startdir}/pkg install || return 1
+
+ install -d -m755 ${startdir}/pkg/usr/share/gconf/schemas
+ gconf-merge-schema ${startdir}/pkg/usr/share/gconf/schemas/${pkgname}.schemas --domain ghex-2.0 ${startdir}/pkg/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${startdir}/pkg/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/ghex/ghex.install b/extra/ghex/ghex.install
new file mode 100644
index 000000000..d2fd968ea
--- /dev/null
+++ b/extra/ghex/ghex.install
@@ -0,0 +1,22 @@
+pkgname=ghex
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/giblib/PKGBUILD b/extra/giblib/PKGBUILD
new file mode 100644
index 000000000..611d84137
--- /dev/null
+++ b/extra/giblib/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 68041 2010-02-10 15:14:45Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=giblib
+pkgver=1.2.4
+pkgrel=4
+pkgdesc="A library that feh uses as a wrapper to imlib2"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/giblib/"
+license=('MIT')
+depends=('imlib2' 'libxext' 'freetype2')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/giblib/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ff61760ef73421c5f02d2f6c8d3ac913')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" docsdir=/usr/share/doc/giblib install || return 1
+
+ # Install custom license
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/gif2png/PKGBUILD b/extra/gif2png/PKGBUILD
new file mode 100644
index 000000000..b2a2ecc36
--- /dev/null
+++ b/extra/gif2png/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 108710 2011-02-02 17:26:37Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Andrew Rose <ody@netrux.com>
+
+pkgname=gif2png
+pkgver=2.5.4
+pkgrel=1
+pkgdesc="A GIF to PNG image format converter"
+arch=('i686' 'x86_64')
+url="http://www.catb.org/~esr/gif2png/"
+license=('ZLIB')
+depends=('libpng')
+optdepends=('python2: for using web2png')
+source=("http://www.catb.org/~esr/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('d63ea3fc6b6119589e8d4d6fead30df9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's#env python#env python2#' web2png
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/giflib/PKGBUILD b/extra/giflib/PKGBUILD
new file mode 100644
index 000000000..86d445528
--- /dev/null
+++ b/extra/giflib/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 117538 2011-04-04 10:27:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Baptiste Daroussin <baptiste.daroussin@gmail.com>
+# Contributor: Grigorios Bouzakis <grbzks[at]gmail[dot]com>
+# Contributor: mightyjaym <jm.ambrosino@free.fr>
+
+pkgname=giflib
+pkgver=4.1.6
+pkgrel=4
+pkgdesc="A library for reading and writing gif images"
+url="http://sourceforge.net/projects/giflib/"
+arch=('i686' 'x86_64')
+license=('MIT')
+depends=('libx11')
+provides=("libungif=${pkgver}")
+conflicts=('libungif')
+replaces=('libungif')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/giflib/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7125644155ae6ad33dbc9fc15a14735f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ libtoolize -f
+ autoreconf
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ # libungif compatibility - instructions taken from Redhat specfile
+ MAJOR=`echo ${pkgver} | sed 's/\([0-9]\+\)\..*/\1/'`
+ gcc -shared -Wl,-soname,libungif.so.${MAJOR} -Llib/.libs -lgif -o libungif.so.${pkgver}
+ install -m755 libungif.so.${pkgver} "${pkgdir}/usr/lib/"
+ ln -sf libungif.so.${pkgver} "${pkgdir}/usr/lib/libungif.so.4"
+ ln -sf libungif.so.4 "${pkgdir}/usr/lib/libungif.so"
+}
diff --git a/extra/gifsicle/PKGBUILD b/extra/gifsicle/PKGBUILD
new file mode 100644
index 000000000..d4bbf366d
--- /dev/null
+++ b/extra/gifsicle/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 114736 2011-03-15 20:13:11Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gifsicle
+pkgver=1.61
+pkgrel=1
+pkgdesc="A powerful command-line program for creating, editing, manipulating and getting information about GIF images and animations"
+arch=('i686' 'x86_64')
+url="http://www.lcdf.org/gifsicle/"
+license=('GPL')
+depends=('libx11')
+source=(http://www.lcdf.org/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('3d9e45873daaf960a35d1b89505f1101')
+sha1sums=('2b9e1c83a926731c10153ab8aa77470627b48583')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gimp-dbp/PKGBUILD b/extra/gimp-dbp/PKGBUILD
new file mode 100644
index 000000000..9cec2e706
--- /dev/null
+++ b/extra/gimp-dbp/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 37038 2009-04-30 05:11:53Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gimp-dbp
+_srcname=dbp
+pkgver=1.1.9
+pkgrel=1
+pkgdesc="David's batch processor for the GIMP"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gimp>=2.4')
+url="http://members.ozemail.com.au/~hodsond/dbp.html"
+source=(http://www.ozemail.com.au/~hodsond/${_srcname}Src-${pkgver//./-}.tgz)
+md5sums=('1106625707798ab8ea1317ac6bece1c5')
+
+build() {
+ cd ${srcdir}/${_srcname}-${pkgver}
+ # Tweak Makefile -- remove auto-install
+ sed -i 's|^\tgimptool.*$||' Makefile || return 1
+ sed -i "s|<string>|<cstring>|" op.h || return 1
+ #sed -i '/DISABLE_DEPRECATED/d' Makefile
+ # create gimp-2.0 plugin and install it
+ make ${_srcname} || return 1
+ install -Dsm755 ${_srcname} ${pkgdir}/usr/lib/gimp/2.0/plug-ins/${_srcname} || return 1
+}
diff --git a/extra/gimp-devel/PKGBUILD b/extra/gimp-devel/PKGBUILD
new file mode 100644
index 000000000..7ab681075
--- /dev/null
+++ b/extra/gimp-devel/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 108258 2011-01-30 15:58:48Z ibiru $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=gimp-devel
+pkgver=2.7.1
+pkgrel=4
+pkgdesc="GNU Image Manipulation Program (Development Version)"
+arch=('i686' 'x86_64')
+url="http://www.gimp.org/"
+license=('GPL')
+depends=('gtk2' 'lcms' 'libxpm' 'libwmf' 'libxmu' 'librsvg' 'libmng' 'dbus-glib' \
+ 'libexif' 'pygtk' 'desktop-file-utils' 'gegl')
+makedepends=('gutenprint' 'intltool' 'libwebkit' 'gnome-python' 'poppler-glib' \
+ 'pkg-config' 'alsa-lib' 'iso-codes')
+optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
+ 'libwebkit: for the help browser'
+ 'poppler-glib: for pdf support'
+ 'hal: for Linux input event controller module'
+ 'alsa-lib: for MIDI event controller module')
+options=('!libtool' '!makeflags')
+conflicts=('gimp')
+provides=("gimp=${pkgver}")
+install=gimp-devel.install
+source=(ftp://ftp.gimp.org/pub/gimp/v${pkgver%.*}/gimp-${pkgver}.tar.bz2 linux.gpl)
+md5sums=('4932a0a1645ecd5b23ea6155ddda013d' 'bb27bc214261d36484093e857f015f38')
+sha1sums=('3dcfc08ddccbdf541449e4ea6be252b449f6d872' '110ce9798173b19a662d086ed7b882b4729f06cf')
+
+build() {
+ cd "${srcdir}/gimp-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-mp --enable-gimp-console --enable-gimp-remote \
+ --enable-python --with-gif-compression=lzw \
+ --without-aa
+ make
+}
+
+package() {
+ cd "${srcdir}/gimp-${pkgver}"
+ make DESTDIR="${pkgdir}" install-strip
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/lib/gimp/2.0/plug-ins/*.py
+
+ install -D -m644 "${srcdir}/linux.gpl" "${pkgdir}/usr/share/gimp/2.0/palettes/Linux.gpl"
+
+ ln -sf gimp-console-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp-console.1.gz"
+ ln -sf gimp-remote-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp-remote.1.gz"
+ ln -sf gimprc-${pkgver%.*}.5.gz "${pkgdir}/usr/share/man/man5/gimprc.5.gz"
+ ln -sf gimptool-2.0.1.gz "${pkgdir}/usr/share/man/man1/gimptool.1.gz"
+ ln -s gimp-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp.1.gz"
+
+ ln -s gimp-${pkgver%.*} "${pkgdir}/usr/bin/gimp"
+ ln -s gimp-console-${pkgver%.*} "${pkgdir}/usr/bin/gimp-console"
+ ln -s gimp-remote-${pkgver%.*} "${pkgdir}/usr/bin/gimp-remote"
+ ln -s gimptool-2.0 "${pkgdir}/usr/bin/gimptool"
+}
diff --git a/extra/gimp-devel/gimp-devel.install b/extra/gimp-devel/gimp-devel.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/extra/gimp-devel/gimp-devel.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gimp-devel/linux.gpl b/extra/gimp-devel/linux.gpl
new file mode 100644
index 000000000..0a73d8979
--- /dev/null
+++ b/extra/gimp-devel/linux.gpl
@@ -0,0 +1,19 @@
+GIMP Palette
+Name: linux
+#
+ 0 0 0
+ 0 0 170
+ 0 170 0
+ 0 170 170
+170 0 0
+170 0 170
+170 85 0
+170 170 170
+ 85 85 85
+ 85 85 255
+ 85 255 85
+ 85 255 255
+255 85 85
+255 85 255
+255 255 85
+255 255 255
diff --git a/extra/gimp-gap/PKGBUILD b/extra/gimp-gap/PKGBUILD
new file mode 100644
index 000000000..997bb3fe2
--- /dev/null
+++ b/extra/gimp-gap/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 64731 2010-01-22 02:05:13Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gimp-gap
+pkgver=2.6.0
+pkgrel=2
+pkgdesc="A Plug-In collection to edit and create animations for the Gimp"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gimp.org/downloads/"
+depends=('gimp>=2.6.0' 'xvidcore' 'bash' 'libjpeg')
+makedepends=('intltool')
+options=('!makeflags')
+source=(ftp://ftp.gimp.org/pub/gimp/plug-ins/v2.6/gap/$pkgname-$pkgver.tar.bz2)
+md5sums=('249ed829de8b78675c0fe4ef4212089f')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ #Arch64 fix
+ if [ "$CARCH" = "x86_64" ]; then
+ ./configure --prefix=/usr CFLAGS="$CFLAGS -fPIC" || return 1
+ else
+ ./configure --prefix=/usr || return 1
+ fi
+
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/gimp-refocus/PKGBUILD b/extra/gimp-refocus/PKGBUILD
new file mode 100644
index 000000000..6d78aad67
--- /dev/null
+++ b/extra/gimp-refocus/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 54791 2009-10-11 19:30:09Z giovanni $
+# Maintainer: Tobias Kieslich <tobias@justdreams.de>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gimp-refocus
+_pname=refocus
+pkgver=0.9.0
+pkgrel=2
+arch=(i686 x86_64)
+license=(GPL2)
+pkgdesc="a sharpen plugin for gimp using FIR Wiener filtering"
+depends=('gimp>=2.0.0')
+url="http://refocus.sourceforge.net/"
+source=(http://downloads.sourceforge.net/sourceforge/${_pname}/${_pname}-${pkgver}.tar.gz
+\
+ ${_pname}-gimp-2.0.patch ${_pname}-mirror-fix.patch ${_pname}-gimp-preview.patch)
+md5sums=('8d4eac4ef45c904fb5e73021696bec94' '8ef9dfe697cd20be2be14c1ee53a240a'\
+ '532593cba030feab8ffa7800fc9cd782' '6b55dbdc656646c765064cf21e1a3c57')
+
+build() {
+ cd ${startdir}/src/${_pname}-${pkgver}
+ # we need a *load of patches now to compile
+ patch -Np0 -i ../${_pname}-gimp-2.0.patch || return 1
+ patch -Np0 -i ../${_pname}-mirror-fix.patch || return 1
+ patch -Np0 -i ../${_pname}-gimp-preview.patch || return 1
+ aclocal
+ automake -a --gnu --include-deps Makefile
+ automake -a --gnu --include-deps lib/Makefile
+ autoconf
+ echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+ ./configure --prefix=/usr --bindir=/usr/lib/gimp/2.0/plug-ins
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/extra/gimp-refocus/refocus-gimp-2.0.patch b/extra/gimp-refocus/refocus-gimp-2.0.patch
new file mode 100644
index 000000000..259ee9f87
--- /dev/null
+++ b/extra/gimp-refocus/refocus-gimp-2.0.patch
@@ -0,0 +1,209 @@
+Index: configure.in
+===================================================================
+RCS file: /cvsroot/refocus/refocus/configure.in,v
+retrieving revision 1.1.1.1
+diff -u -u -r1.1.1.1 configure.in
+--- configure.in 30 Jan 2003 21:29:29 -0000 1.1.1.1
++++ configure.in 6 Apr 2004 20:26:54 -0000
+@@ -1,8 +1,8 @@
+ dnl Process this file with autoconf to produce a configure script.
+
+-AC_INIT(README)
+-
+-AM_INIT_AUTOMAKE(refocus, 0.9.0)
++AC_INIT([refocus],[0.9.0])
++AC_CONFIG_SRCDIR(README)
++AM_INIT_AUTOMAKE
+
+ AC_PROG_CC
+ AC_CHECK_PROG(GCC3, gcc3, gcc3)
+@@ -12,7 +12,7 @@
+ AC_MSG_RESULT([using $CC as compiler])
+ fi
+
+-AC_STDC_HEADERS
++AC_HEADER_STDC([])
+ AC_PROG_RANLIB
+
+ # Check if the user has ATLAS installed in ./lib-atlas
+@@ -36,7 +36,7 @@
+ AC_SUBST(LAPACK_INCLUDE_DIR)
+ AM_CONDITIONAL(HAVE_ATLAS, test x${have_atlas} = xyes)
+
+-AM_PATH_GIMP(1.2.0)
++AM_PATH_GIMP_2_0(2.0.0)
+ AM_PATH_GTK_2_0(2.0.0)
+ AM_PATH_GLIB_2_0(2.0.0)
+
+@@ -106,5 +106,6 @@
+ #Check if erf is defined in the mathlibrary
+ AC_CHECK_LIB(m, erf, AC_DEFINE(HAVE_ERF))
+
+-AC_OUTPUT([Makefile src/Makefile lib/Makefile doc/Makefile gtk-doc/Makefile ])
++AC_CONFIG_FILES([Makefile src/Makefile lib/Makefile doc/Makefile gtk-doc/Makefile ])
++AC_OUTPUT
+
+Index: lib/Makefile.am
+===================================================================
+RCS file: /cvsroot/refocus/refocus/lib/Makefile.am,v
+retrieving revision 1.1.1.1
+diff -u -u -r1.1.1.1 Makefile.am
+--- lib/Makefile.am 30 Jan 2003 21:29:52 -0000 1.1.1.1
++++ lib/Makefile.am 6 Apr 2004 20:26:55 -0000
+@@ -1,4 +1,4 @@
+-CFLAGS=-fomit-frame-pointer -O3 -funroll-all-loops
++AM_CFLAGS=-fomit-frame-pointer -O3 -funroll-all-loops
+
+
+ noinst_LIBRARIES = liblapack.a libatlas.a libcblas.a
+Index: src/Makefile.am
+===================================================================
+RCS file: /cvsroot/refocus/refocus/src/Makefile.am,v
+retrieving revision 1.1.1.1
+diff -u -u -r1.1.1.1 Makefile.am
+--- src/Makefile.am 30 Jan 2003 21:30:18 -0000 1.1.1.1
++++ src/Makefile.am 6 Apr 2004 20:26:55 -0000
+@@ -11,7 +11,7 @@
+ EXTRA_DIST = dummy-plugin.c
+
+ refocus_SOURCES = refocus.c conv.c gimppreview.c prevman.c util.c matrix.c tilebuf.c bdclosure.c fwlapack.c
+-refocus_LDADD = @GTK_LIBS@ -lgimp ${ldadd_atlas}
++refocus_LDADD = @GIMP_LIBS@ ${ldadd_atlas}
+ refocus_DEPENDENCIES=@LAPACK_LIB_DIR@/liblapack.a
+
+ test_matrix_SOURCES = matrix.c test-matrix.c fwlapack.c
+Index: src/gimppreview.c
+===================================================================
+RCS file: /cvsroot/refocus/refocus/src/gimppreview.c,v
+retrieving revision 1.1.1.1
+diff -u -u -r1.1.1.1 gimppreview.c
+--- src/gimppreview.c 30 Jan 2003 21:30:18 -0000 1.1.1.1
++++ src/gimppreview.c 6 Apr 2004 20:26:55 -0000
+@@ -344,7 +344,7 @@
+
+ /* Save the drawable info. */
+ preview->drawable = drawable;
+- preview->drawable_has_alpha = gimp_drawable_has_alpha (drawable->id);
++ preview->drawable_has_alpha = gimp_drawable_has_alpha (drawable->drawable_id);
+
+ /* Calculate our preview size. */
+ if (preview_size == PREVIEW_FIXED_SIZE)
+Index: src/prevman.c
+===================================================================
+RCS file: /cvsroot/refocus/refocus/src/prevman.c,v
+retrieving revision 1.1.1.1
+diff -u -u -r1.1.1.1 prevman.c
+--- src/prevman.c 30 Jan 2003 21:30:18 -0000 1.1.1.1
++++ src/prevman.c 6 Apr 2004 20:26:56 -0000
+@@ -52,7 +52,7 @@
+ tile_source->width = drawable->width;
+ tile_source->height = drawable->height;
+ tile_source->bpp = drawable->bpp;
+- tile_source->has_alpha = gimp_drawable_has_alpha (drawable->id);
++ tile_source->has_alpha = gimp_drawable_has_alpha (drawable->drawable_id);
+ tile_source->un.drw.drawable = drawable;
+ gimp_pixel_rgn_init (&tile_source->un.drw.pixel_rgn, drawable, x, y, width,
+ height, FALSE, FALSE);
+@@ -144,7 +144,7 @@
+ tile_sink->width = drawable->width;
+ tile_sink->height = drawable->height;
+ tile_sink->bpp = drawable->bpp;
+- tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->id);
++ tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->drawable_id);
+ gimp_pixel_rgn_init (&tile_sink->un.drw.pixel_rgn, drawable, x, y, width,
+ height, TRUE, TRUE);
+ }
+@@ -159,7 +159,7 @@
+ tile_sink->width = width;
+ tile_sink->height = height;
+ tile_sink->bpp = drawable->bpp;
+- tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->id);
++ tile_sink->has_alpha = gimp_drawable_has_alpha (drawable->drawable_id);
+ tile_sink->un.prv.data = g_new (guchar,
+ tile_sink->width * tile_sink->height *
+ tile_sink->bpp);
+Index: src/refocus.c
+===================================================================
+RCS file: /cvsroot/refocus/refocus/src/refocus.c,v
+retrieving revision 1.1.1.1
+diff -u -u -r1.1.1.1 refocus.c
+--- src/refocus.c 30 Jan 2003 21:30:19 -0000 1.1.1.1
++++ src/refocus.c 6 Apr 2004 20:26:56 -0000
+@@ -45,9 +45,9 @@
+
+ /* Declare local functions. */
+ static void query (void);
+-static void run (char *name,
++static void run (const gchar *name,
+ gint nparams,
+- GimpParam * param,
++ const GimpParam * param,
+ gint * nreturn_vals, GimpParam ** return_vals);
+ static gint dialog ();
+ static void doit (void);
+@@ -111,7 +111,6 @@
+ {GIMP_PDB_FLOAT, "noise", "Noise to Signal ratio"},
+ };
+ static GimpParamDef *return_vals = NULL;
+- static gint nargs = (gint) (sizeof (args) / sizeof (args[0]));
+ static gint nreturn_vals = 0;
+
+ gimp_install_procedure ("plug_in_refocus",
+@@ -123,15 +122,15 @@
+ "<Image>/Filters/Enhance/Refocus ...",
+ "RGB*, GRAY*",
+ GIMP_PLUGIN,
+- nargs, nreturn_vals, args, return_vals);
++ G_N_ELEMENTS(args), nreturn_vals, args, return_vals);
+ }
+
+ static void
+-run (char *name, gint n_params, GimpParam * param,
++run (const gchar *name, gint n_params, const GimpParam * param,
+ gint * nreturn_vals, GimpParam ** return_vals)
+ {
+ static GimpParam values[1];
+- GimpRunModeType run_mode;
++ GimpRunMode run_mode;
+ GimpPDBStatusType status = GIMP_PDB_SUCCESS;
+
+ (void) name; /* Shut up warnings about unused parameters. */
+@@ -186,8 +185,8 @@
+ {
+
+ /* Make sure that the drawable is gray or RGB color */
+- if (gimp_drawable_is_rgb (drawable->id) ||
+- gimp_drawable_is_gray (drawable->id))
++ if (gimp_drawable_is_rgb (drawable->drawable_id) ||
++ gimp_drawable_is_gray (drawable->drawable_id))
+ {
+ doit ();
+
+@@ -411,7 +410,7 @@
+ event_is_current =
+ gimp_preview_draw_unscaled_row (GIMP_PREVIEW (my_widgets.preview),
+ event->event_id,
+- gimp_drawable_type (drawable->id),
++ gimp_drawable_type (drawable->drawable_id),
+ row, buf);
+ };
+ g_free (buf);
+@@ -608,7 +607,7 @@
+ gimp_progress_init ("Computing matrix");
+ update_matrix ();
+ gimp_progress_init ("Applying convolution");
+- gimp_drawable_mask_bounds (drawable->id, &sx1, &sy1, &sx2, &sy2);
++ gimp_drawable_mask_bounds (drawable->drawable_id, &sx1, &sy1, &sx2, &sy2);
+ width = sx2 - sx1;
+ height = sy2 - sy1;
+ tile_source_init_from_drawable (&source, drawable, sx1, sy1, width, height);
+@@ -618,7 +617,7 @@
+ matrix, 2 * my_config.mat_width + 1,
+ &update_progress_closure);
+ gimp_drawable_flush (drawable);
+- gimp_drawable_merge_shadow (drawable->id, TRUE);
+- gimp_drawable_update (drawable->id, sx1, sy1, width, height);
++ gimp_drawable_merge_shadow (drawable->drawable_id, TRUE);
++ gimp_drawable_update (drawable->drawable_id, sx1, sy1, width, height);
+ g_free (matrix);
+ }
diff --git a/extra/gimp-refocus/refocus-gimp-preview.patch b/extra/gimp-refocus/refocus-gimp-preview.patch
new file mode 100644
index 000000000..089365dcb
--- /dev/null
+++ b/extra/gimp-refocus/refocus-gimp-preview.patch
@@ -0,0 +1,440 @@
+diff -ur src/gimppreview.c src/gimppreview.c
+--- src/gimppreview.c 2008-03-17 17:20:49.000000000 -0700
++++ src/gimppreview.c 2008-03-17 17:15:51.000000000 -0700
+@@ -36,18 +36,18 @@
+ #include "gimppreview.h"
+
+
+-static void gimp_preview_init (GimpPreview * preview);
+-static void gimp_preview_class_init (GimpPreviewClass * klass);
++static void gimp_preview_init (RefocusPreview * preview);
++static void gimp_preview_class_init (RefocusPreviewClass * klass);
+
+ static void gimp_preview_plus_callback (GtkWidget * widget, gpointer data);
+ static void gimp_preview_minus_callback (GtkWidget * widget, gpointer data);
+ static gint gimp_preview_event (GtkWidget * widget, GdkEvent * event,
+ gpointer data);
+-static void gimp_preview_recompute_sizes (GimpPreview * preview,
++static void gimp_preview_recompute_sizes (RefocusPreview * preview,
+ gdouble newscale);
+-static void gimp_preview_update_preview (GimpPreview * preview);
++static void gimp_preview_update_preview (RefocusPreview * preview);
+
+-static void gimp_preview_image_set_size (GimpPreview * preview, gint width,
++static void gimp_preview_image_set_size (RefocusPreview * preview, gint width,
+ gint height);
+ static void gimp_preview_size_request (GtkWidget * widget,
+ GtkRequisition * requisition);
+@@ -58,7 +58,7 @@
+ GtkCallback callback,
+ gpointer callback_data);
+ gboolean gimp_preview_update_preview_idle_fun (gpointer data);
+-void gimp_preview_schedule_update (GimpPreview * preview);
++void gimp_preview_schedule_update (RefocusPreview * preview);
+
+ #define PROGRESS_BAR_HEIGHT (10)
+ #define PREVIEW_SIZE (100)
+@@ -94,11 +94,11 @@
+
+
+ /*
+- * Apps which use a GimpPreview widget should not be accessing the private
++ * Apps which use a RefocusPreview widget should not be accessing the private
+ * data!
+ */
+ #define PREVIEW_DATA(preview) \
+- ((GimpPreviewData*)(GIMP_PREVIEW (preview)->private_data))
++ ((RefocusPreviewData*)(GIMP_PREVIEW (preview)->private_data))
+
+ typedef struct
+ {
+@@ -126,7 +126,7 @@
+ GtkWidget *image;
+ GtkWidget *progress_bar;
+ }
+-GimpPreviewData;
++RefocusPreviewData;
+
+
+ /* Convert coordinate in preview space to image coordinates */
+@@ -155,20 +155,20 @@
+ if (!preview_type)
+ {
+ GTypeInfo preview_info = {
+- sizeof (GimpPreviewClass),
++ sizeof (RefocusPreviewClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gimp_preview_class_init,
+ (GClassFinalizeFunc) NULL,
+ (gconstpointer) NULL, /* class_data */
+- sizeof (GimpPreview),
++ sizeof (RefocusPreview),
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) gimp_preview_init,
+ (GTypeValueTable *) NULL /* value_table */
+ };
+
+ preview_type =
+- g_type_register_static (GTK_TYPE_CONTAINER, "GimpPreview",
++ g_type_register_static (GTK_TYPE_CONTAINER, "RefocusPreview",
+ &preview_info, 0);
+ }
+
+@@ -181,7 +181,7 @@
+ * by GTK's internal mechanisms.
+ */
+ static void
+-gimp_preview_class_init (GimpPreviewClass * klass)
++gimp_preview_class_init (RefocusPreviewClass * klass)
+ {
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
+@@ -190,7 +190,7 @@
+ g_signal_new ("update_preview",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST,
+- G_STRUCT_OFFSET (GimpPreviewClass, update_preview),
++ G_STRUCT_OFFSET (RefocusPreviewClass, update_preview),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__POINTER,
+@@ -200,7 +200,7 @@
+ g_signal_new ("preview_changed",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_FIRST,
+- G_STRUCT_OFFSET (GimpPreviewClass, preview_changed),
++ G_STRUCT_OFFSET (RefocusPreviewClass, preview_changed),
+ NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
+
+ klass->update_preview = NULL;
+@@ -212,7 +212,7 @@
+
+
+ void
+-gimp_preview_set_scale_amount(GimpPreview *preview, gdouble scale_amount)
++gimp_preview_set_scale_amount(RefocusPreview *preview, gdouble scale_amount)
+ {
+ /*
+ * If the caller wants to set the scale amount, let them do so.
+@@ -269,7 +269,7 @@
+ * by GTK's internal mechanisms.
+ */
+ static void
+-gimp_preview_init (GimpPreview * preview)
++gimp_preview_init (RefocusPreview * preview)
+ {
+ gchar buffer[10];
+
+@@ -277,7 +277,7 @@
+ GTK_WIDGET_SET_FLAGS (preview, GTK_NO_WINDOW);
+ GTK_CONTAINER (preview)->resize_mode = GTK_RESIZE_IMMEDIATE;
+
+- preview->private_data = g_malloc0 (sizeof (GimpPreviewData));
++ preview->private_data = g_malloc0 (sizeof (RefocusPreviewData));
+
+
+ PREVIEW_DATA (preview)->label = gtk_label_new ("");
+@@ -307,7 +307,7 @@
+ gimp_preview_new_with_args (GimpDrawable * drawable, gint cb_preview_size,
+ gdouble cb_scale_amount, gint cb_allow_scale)
+ {
+- GimpPreview *preview;
++ RefocusPreview *preview;
+ GtkWidget *frame;
+ GtkWidget *hbox;
+ GtkWidget *event_box;
+@@ -454,7 +454,7 @@
+ static void
+ gimp_preview_size_request (GtkWidget * widget, GtkRequisition * requisition)
+ {
+- GimpPreview *preview = GIMP_PREVIEW (widget);
++ RefocusPreview *preview = GIMP_PREVIEW (widget);
+ GtkRequisition resize_box_requisition;
+
+ #ifdef PREVIEW_DEBUG
+@@ -478,7 +478,7 @@
+ static void
+ gimp_preview_size_allocate (GtkWidget * widget, GtkAllocation * allocation)
+ {
+- GimpPreview *preview = GIMP_PREVIEW (widget);
++ RefocusPreview *preview = GIMP_PREVIEW (widget);
+ GtkAllocation resize_box_allocation, progress_bar_allocation,
+ event_box_allocation;
+ GtkRequisition resize_box_requisition;
+@@ -543,7 +543,7 @@
+ gboolean include_internals,
+ GtkCallback callback, gpointer callback_data)
+ {
+- GimpPreview *preview = GIMP_PREVIEW (container);
++ RefocusPreview *preview = GIMP_PREVIEW (container);
+
+ if (PREVIEW_DATA (preview)->resize_box)
+ {
+@@ -564,7 +564,7 @@
+ * Plug-ins call this to do an update of the preview area.
+ */
+ void
+-gimp_preview_update (GimpPreview * preview)
++gimp_preview_update (RefocusPreview * preview)
+ {
+ gimp_preview_recompute_sizes (preview, preview->scale);
+ gimp_preview_update_preview (preview);
+@@ -579,7 +579,7 @@
+ static void
+ gimp_preview_plus_callback (GtkWidget * widget, gpointer data)
+ {
+- GimpPreview *preview;
++ RefocusPreview *preview;
+ gchar buffer[10];
+ gdouble new_scale;
+
+@@ -616,7 +616,7 @@
+ static void
+ gimp_preview_minus_callback (GtkWidget * widget, gpointer data)
+ {
+- GimpPreview *preview;
++ RefocusPreview *preview;
+ gchar buffer[10];
+ gdouble new_scale;
+
+@@ -651,7 +651,7 @@
+ static gint
+ gimp_preview_event (GtkWidget * widget, GdkEvent * event, gpointer data)
+ {
+- GimpPreview *preview;
++ RefocusPreview *preview;
+ GdkEventButton *button_event;
+ gint x, y;
+ gint dx, dy;
+@@ -733,7 +733,7 @@
+ * This function is also used for initializing the preview.
+ */
+ static void
+-gimp_preview_recompute_sizes (GimpPreview * preview, gdouble new_scale)
++gimp_preview_recompute_sizes (RefocusPreview * preview, gdouble new_scale)
+ {
+
+ /* The center of the preview in image coordinates.
+@@ -765,7 +765,7 @@
+ }
+
+ void
+-gimp_preview_generate_update_event (GimpPreview * preview)
++gimp_preview_generate_update_event (RefocusPreview * preview)
+ /* Signal the user that the preview must be updated */
+ {
+ const gdouble scale = preview->scale;
+@@ -783,7 +783,7 @@
+ 0,
+ preview->drawable->height - image_y);
+
+- GimpPreviewEvent preview_event;
++ RefocusPreviewEvent preview_event;
+
+ preview_event.event_id = PREVIEW_DATA (preview)->current_event_id;
+ preview_event.scale = preview->scale;
+@@ -814,7 +814,7 @@
+ * to step through source and destination!
+ */
+ static void
+-gimp_preview_update_preview (GimpPreview * preview)
++gimp_preview_update_preview (RefocusPreview * preview)
+ {
+ GimpPixelRgn region;
+ guchar *image_data = NULL;
+@@ -1012,7 +1012,7 @@
+
+
+ void
+-gimp_preview_force_redraw (GimpPreview * preview)
++gimp_preview_force_redraw (RefocusPreview * preview)
+ {
+ gtk_widget_queue_draw (GTK_WIDGET (PREVIEW_DATA (preview)->image));
+ }
+@@ -1022,7 +1022,7 @@
+ gboolean
+ gimp_preview_update_preview_idle_fun (gpointer data)
+ {
+- GimpPreview *preview = GIMP_PREVIEW (data);
++ RefocusPreview *preview = GIMP_PREVIEW (data);
+ gint event_id = PREVIEW_DATA (preview)->current_event_id;
+
+ #ifdef PREVIEW_DEBUG
+@@ -1041,7 +1041,7 @@
+ }
+
+ void
+-gimp_preview_schedule_update (GimpPreview * preview)
++gimp_preview_schedule_update (RefocusPreview * preview)
+ {
+ PREVIEW_DATA (preview)->current_event_id++;
+
+@@ -1082,7 +1082,7 @@
+ }
+
+ void
+-gimp_preview_image_set_size (GimpPreview * preview, gint width, gint height)
++gimp_preview_image_set_size (RefocusPreview * preview, gint width, gint height)
+ {
+ const gint real_width = MIN (preview->max_width, width);
+ const gint real_height = MIN (preview->max_height, height);
+@@ -1120,8 +1120,8 @@
+
+ /**
+ * gimp_preview_draw_row:
+- * @preview: the #GimpPreview
+- * @event_id: event_id that was sent with the #GimpPreviewEvent.
++ * @preview: the #RefocusPreview
++ * @event_id: event_id that was sent with the #RefocusPreviewEvent.
+ * @type: the format of the data (e.g. %GIMP_RGBA_IMAGE).
+ * @row:the relative number of the row within the preview.
+ * The top row of the preview is number 0.
+@@ -1137,7 +1137,7 @@
+ * with the same event-id will be ignored by the preview.
+ **/
+ gboolean
+-gimp_preview_draw_row (GimpPreview * preview, const gint event_id,
++gimp_preview_draw_row (RefocusPreview * preview, const gint event_id,
+ GimpImageType type, gint row,
+ const guchar * const data)
+ {
+@@ -1247,8 +1247,8 @@
+
+ /**
+ * gimp_preview_draw_unscaled_row:
+- * @preview: the #GimpPreview
+- * @event_id: event_id that was sent with the #GimpPreviewEvent.
++ * @preview: the #RefocusPreview
++ * @event_id: event_id that was sent with the #RefocusPreviewEvent.
+ * @type: the format of the data (e.g. %GIMP_RGBA_IMAGE).
+ * @row:row is the relative position of the row w.r.t. preview_event->image_y.
+ * The top row has number 0.
+@@ -1267,7 +1267,7 @@
+ * with the same event-id will be ignored by the preview.
+ **/
+ gboolean
+-gimp_preview_draw_unscaled_row (GimpPreview * preview, const gint event_id,
++gimp_preview_draw_unscaled_row (RefocusPreview * preview, const gint event_id,
+ GimpImageType type, const gint row,
+ const guchar * const data)
+ {
+@@ -1445,8 +1445,8 @@
+
+ /**
+ * gimp_preview_progress_set_fraction:
+- * @preview: the #GimpPreview.
+- * @event_id: event_id that was sent with the #GimpPreviewEvent.
++ * @preview: the #RefocusPreview.
++ * @event_id: event_id that was sent with the #RefocusPreviewEvent.
+ * @fraction: the fraction completed.
+ *
+ * Set the progress bar of the preview to @fraction completed.
+@@ -1456,7 +1456,7 @@
+ * with the same event-id will be ignored by the preview.
+ **/
+ gboolean
+-gimp_preview_progress_set_fraction (GimpPreview * preview,
++gimp_preview_progress_set_fraction (RefocusPreview * preview,
+ const gint event_id, double fraction)
+ {
+ const gboolean return_status =
+diff -ur src/gimppreview.h src/gimppreview.h
+--- src/gimppreview.h 2003-01-30 13:30:18.000000000 -0800
++++ src/gimppreview.h 2008-03-17 17:16:29.000000000 -0700
+@@ -33,24 +33,24 @@
+ #define PREVIEW_FIXED_SIZE 0
+ #define PREVIEW_DEFAULT_SIZE -1
+ #define GIMP_TYPE_PREVIEW (gimp_preview_get_type ())
+-#define GIMP_PREVIEW(obj) (GTK_CHECK_CAST ((obj), GIMP_TYPE_PREVIEW, GimpPreview))
+-#define GIMP_PREVIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, GimpPreviewClass))
++#define GIMP_PREVIEW(obj) (GTK_CHECK_CAST ((obj), GIMP_TYPE_PREVIEW, RefocusPreview))
++#define GIMP_PREVIEW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW, RefocusPreviewClass))
+ #define GIMP_IS_PREVIEW(obj) (GTK_CHECK_TYPE ((obj), GIMP_TYPE_PREVIEW))
+ #define GIMP_IS_PREVIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_PREVIEW))
+-typedef struct _GimpPreview GimpPreview;
+-typedef struct _GimpPreviewClass GimpPreviewClass;
+-typedef struct _GimpPreviewEvent GimpPreviewEvent;
++typedef struct _RefocusPreview RefocusPreview;
++typedef struct _RefocusPreviewClass RefocusPreviewClass;
++typedef struct _RefocusPreviewEvent RefocusPreviewEvent;
+
+-struct _GimpPreviewClass
++struct _RefocusPreviewClass
+ {
+ GtkContainerClass parent_class;
+
+- void (*update_preview) (GimpPreview * preview, GimpPreviewEvent * event);
+- void (*preview_changed) (GimpPreview * preview);
++ void (*update_preview) (RefocusPreview * preview, RefocusPreviewEvent * event);
++ void (*preview_changed) (RefocusPreview * preview);
+ };
+
+
+-struct _GimpPreview
++struct _RefocusPreview
+ {
+ GtkContainer parent;
+
+@@ -75,13 +75,13 @@
+ };
+
+ /**
+- * GimpPreviewEvent:
++ * RefocusPreviewEvent:
+ * @event_id: Id of this event. This is needed for gimp_preview_draw_row,
+ * gimp_preview_draw_unscaled_row and gimp_preview_progress_set_fraction.
+ * @scale: Current scale of the preview.
+ *
+ **/
+-struct _GimpPreviewEvent
++struct _RefocusPreviewEvent
+ {
+ gint event_id; /* Id of this event */
+ gdouble scale; /* Scale of preview */
+@@ -113,20 +113,20 @@
+ gint preview_size,
+ gdouble scale_amount,
+ gint allow_scale);
+-void gimp_preview_update (GimpPreview * preview);
++void gimp_preview_update (RefocusPreview * preview);
+
+-gboolean gimp_preview_draw_row (GimpPreview * preview, const gint event_id,
++gboolean gimp_preview_draw_row (RefocusPreview * preview, const gint event_id,
+ GimpImageType type, const gint row,
+ const guchar * const data);
+
+-gboolean gimp_preview_draw_unscaled_row (GimpPreview * preview,
++gboolean gimp_preview_draw_unscaled_row (RefocusPreview * preview,
+ const gint event_id,
+ GimpImageType type, const gint row,
+ const guchar * const data);
+
+-void gimp_preview_force_redraw (GimpPreview * preview);
++void gimp_preview_force_redraw (RefocusPreview * preview);
+
+-gboolean gimp_preview_progress_set_fraction (GimpPreview * preview,
++gboolean gimp_preview_progress_set_fraction (RefocusPreview * preview,
+ const gint event_id,
+ double fraction);
+
+diff -ur src/refocus.c src/refocus.c
+--- src/refocus.c 2008-03-17 17:20:49.000000000 -0700
++++ src/refocus.c 2008-03-17 17:18:48.000000000 -0700
+@@ -25,6 +25,7 @@
+ #include <time.h>
+ #include <string.h>
+ #include <libgimp/gimp.h>
++#include <libgimp/gimpcompat.h>
+ #include <gtk/gtk.h>
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -372,7 +373,7 @@
+ }
+
+ static void
+-preview_callback (GtkWidget * widget, GimpPreviewEvent * event, gpointer data)
++preview_callback (GtkWidget * widget, RefocusPreviewEvent * event, gpointer data)
+ {
+ TileSource source;
+ TileSink sink;
diff --git a/extra/gimp-refocus/refocus-mirror-fix.patch b/extra/gimp-refocus/refocus-mirror-fix.patch
new file mode 100644
index 000000000..af79dd893
--- /dev/null
+++ b/extra/gimp-refocus/refocus-mirror-fix.patch
@@ -0,0 +1,54 @@
+Index: src/tilebuf.c
+===================================================================
+RCS file: /cvsroot/refocus/refocus/src/tilebuf.c,v
+retrieving revision 1.1.1.1
+diff -u -u -r1.1.1.1 tilebuf.c
+--- src/tilebuf.c 30 Jan 2003 21:30:19 -0000 1.1.1.1
++++ src/tilebuf.c 6 Apr 2004 20:26:56 -0000
+@@ -140,7 +140,10 @@
+
+ for (x = x_lo - 1; x >= buf->real_x; x--)
+ {
+- copy_col (buf, 2 * x_lo - x, y_start, y_end - y_start, x);
++ gint sx = 2 * x_lo - x;
++ copy_col (buf,
++ sx<=buf->real_x+buf->real_width-1?sx:buf->real_x+buf->real_width-1,
++ y_start, y_end - y_start, x);
+ };
+ }
+ break;
+@@ -171,7 +174,9 @@
+
+ for (x = x_hi; x < buf->real_x + buf->real_width; x++)
+ {
+- copy_col (buf, 2 * (x_hi - 1) - x, y_start, y_end - y_start, x);
++ gint sx = 2 * (x_hi - 1) - x;
++ copy_col (buf, sx>=buf->real_x?sx:buf->real_x,
++ y_start, y_end - y_start, x);
+ };
+ }
+ break;
+@@ -200,7 +205,10 @@
+
+ for (y = y_lo - 1; y >= buf->real_y; y--)
+ {
+- copy_row (buf, buf->real_x, 2 * y_lo - y, buf->real_width, y);
++ gint sy = 2 * y_lo - y;
++ copy_row (buf, buf->real_x,
++ sy<=buf->real_y+buf->real_height-1?sy:buf->real_y+buf->real_height-1,
++ buf->real_width, y);
+ };
+ }
+ break;
+@@ -230,8 +238,9 @@
+
+ for (y = y_hi; y < buf->real_y + buf->real_height; y++)
+ {
+- copy_row (buf, buf->real_x, 2 * (y_hi - 1) - y, buf->real_width,
+- y);
++ gint sy = 2 * (y_hi - 1) - y;
++ copy_row (buf, buf->real_x, sy>=buf->real_y?sy:buf->real_y,
++ buf->real_width, y);
+ };
+ }
+ break;
diff --git a/extra/gimp-ufraw/PKGBUILD b/extra/gimp-ufraw/PKGBUILD
new file mode 100644
index 000000000..98a22bbc8
--- /dev/null
+++ b/extra/gimp-ufraw/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 110928 2011-02-23 07:43:56Z eric $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+
+pkgname=gimp-ufraw
+pkgver=0.18
+pkgrel=1
+pkgdesc="Standalone or gimp plugin converter for raw files"
+url="http://ufraw.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('gtkimageview' 'exiv2')
+makedepends=('gimp' 'cinepaint' 'pkg-config')
+optdepends=('gimp: to use the gimp import plugin for raw images'
+ 'cinepaint: to use the cinepaint import plugin for raw images')
+source=(http://downloads.sourceforge.net/ufraw/ufraw-${pkgver}.tar.gz)
+md5sums=('454f40a402928998a82e2645d9265d96')
+sha1sums=('41c9ad7aa7f1cbb63a6b0b330b3599b18a7e8cd2')
+
+build() {
+ cd "${srcdir}/ufraw-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --enable-extras \
+ --enable-mime \
+ --enable-openmp
+ sed -i "s/-ffast-math -fomit-frame-pointer -W -Wall -O3/${CFLAGS}/" Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/ufraw-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/bin/dcraw"
+}
diff --git a/extra/gimp/PKGBUILD b/extra/gimp/PKGBUILD
new file mode 100644
index 000000000..970897b33
--- /dev/null
+++ b/extra/gimp/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 109732 2011-02-12 08:33:51Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+
+pkgname=gimp
+pkgver=2.6.11
+pkgrel=3
+pkgdesc="GNU Image Manipulation Program"
+arch=('i686' 'x86_64')
+url="http://www.gimp.org/"
+license=('GPL')
+depends=('gtk2' 'lcms' 'libxpm' 'libwmf' 'libxmu' 'librsvg' 'libmng' 'dbus-glib' \
+ 'libexif' 'pygtk' 'desktop-file-utils' 'gegl')
+makedepends=('gutenprint' 'intltool' 'libwebkit' 'gnome-python' 'poppler-glib' \
+ 'pkg-config' 'alsa-lib' 'iso-codes')
+optdepends=('gutenprint: for sophisticated printing only as gimp has built-in cups print support'
+ 'libwebkit: for the help browser'
+ 'poppler-glib: for pdf support'
+ 'hal: for Linux input event controller module'
+ 'alsa-lib: for MIDI event controller module')
+options=('!libtool' '!makeflags')
+conflicts=('gimp-devel')
+install=gimp.install
+source=(ftp://ftp.gimp.org/pub/gimp/v${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2 linux.gpl)
+md5sums=('bb2939fe13e54fc7255cef5d097bb5dd' 'bb27bc214261d36484093e857f015f38')
+sha1sums=('2f9d596e727bdbf304fa78257c1731d9faf3934c' '110ce9798173b19a662d086ed7b882b4729f06cf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --enable-mp --enable-gimp-console --enable-gimp-remote \
+ --enable-python --with-gif-compression=lzw \
+ --without-aa
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-strip
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/lib/gimp/2.0/plug-ins/*.py
+ install -D -m644 "${srcdir}/linux.gpl" "${pkgdir}/usr/share/gimp/2.0/palettes/Linux.gpl"
+
+ rm "${pkgdir}/usr/share/man/man1/gimp-console.1"
+ ln -s gimp-console-${pkgver%.*}.1.gz "${pkgdir}/usr/share/man/man1/gimp-console.1.gz"
+ ln -s gimptool-2.0 "${pkgdir}/usr/bin/gimptool"
+ ln -sf gimptool-2.0.1.gz "${pkgdir}/usr/share/man/man1/gimptool.1.gz"
+}
diff --git a/extra/gimp/gimp.install b/extra/gimp/gimp.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/extra/gimp/gimp.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gimp/linux.gpl b/extra/gimp/linux.gpl
new file mode 100644
index 000000000..0a73d8979
--- /dev/null
+++ b/extra/gimp/linux.gpl
@@ -0,0 +1,19 @@
+GIMP Palette
+Name: linux
+#
+ 0 0 0
+ 0 0 170
+ 0 170 0
+ 0 170 170
+170 0 0
+170 0 170
+170 85 0
+170 170 170
+ 85 85 85
+ 85 85 255
+ 85 255 85
+ 85 255 255
+255 85 85
+255 85 255
+255 255 85
+255 255 255
diff --git a/extra/git/ChangeLog b/extra/git/ChangeLog
new file mode 100644
index 000000000..8ed0884fe
--- /dev/null
+++ b/extra/git/ChangeLog
@@ -0,0 +1,36 @@
+Simple version bumps are ommitted from the following ChangeLog.
+
+2010-06-29 Dan McGee <dan@archlinux.org>
+ Version 1.7.1.1-1
+ * Add emacs completion files (FS#17968)
+ * Add git-daemon RC scripts (FS#19291)
+
+2009-06-05 Dan McGee <dan@archlinux.org>
+ Version 1.6.3.2-1
+ * Remove gitweb from /usr/share; it needs customization to be helpful
+ * Add NO_CROSS_DIRECTORY_HARDLINKS option to build (FS#13683)
+
+2008-09-14 Dan McGee <dan@archlinux.org>
+ Version 1.6.0.2-1
+ * Moved optional depends from install file to optdepends array
+
+2008-06-15 Dan McGee <dan@archlinux.org>
+ Version 1.5.6-1
+ * Removed 'cpio' dependency, clone is now a builtin and no longer needs it
+
+2008-02-02 Dan McGee <dan@archlinux.org>
+ Version 1.5.4-1
+ * Upstream version 1.5.4
+ * Enable pthreads support in pack-objects. To use, set the pack.threads
+ git config option. Read manpages of pack-objects and config for more
+ details.
+ * Changelog added (with entries going back a bit).
+
+2008-01-28 Kevin Piche <kevin@archlinux.org>
+ Version 1.5.3.7-2
+ * Updated for new perl policy (vendor dirs)
+ * Change license to GPL2
+
+2007-11-01 Eric Belanger <eric@archlinux.org>
+ Version 1.5.3.5-2
+ * Fix Perl module location
diff --git a/extra/git/PKGBUILD b/extra/git/PKGBUILD
new file mode 100644
index 000000000..5438fad7d
--- /dev/null
+++ b/extra/git/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 117957 2011-04-05 00:05:54Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgname=git
+pkgver=1.7.4.3
+pkgrel=1
+pkgdesc="the fast distributed version control system"
+arch=(i686 x86_64)
+url="http://git-scm.com/"
+license=('GPL2')
+depends=('curl' 'expat>=2.0' 'perl-error' 'perl>=5.12.2')
+makedepends=('python2')
+optdepends=('tk: gitk and git gui'
+ 'perl-libwww: git svn'
+ 'perl-term-readkey: git svn'
+ 'perl-net-smtp-ssl: git send-email TLS support'
+ 'python2: various helper scripts'
+ 'subversion: git svn'
+ 'cvsps: git cvsimport')
+replaces=('git-core')
+provides=('git-core')
+backup=('etc/conf.d/git-daemon.conf')
+source=("http://kernel.org/pub/software/scm/git/${pkgname}-${pkgver}.tar.bz2" \
+ "http://kernel.org/pub/software/scm/git/git-manpages-${pkgver}.tar.bz2"
+ git-daemon
+ git-daemon.conf)
+changelog=ChangeLog
+
+build() {
+ export PYTHON_PATH='/usr/bin/python2'
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix=/usr gitexecdir=/usr/lib/git-core
+}
+
+package() {
+ export PYTHON_PATH='/usr/bin/python2'
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix=/usr gitexecdir=/usr/lib/git-core \
+ NO_CROSS_DIRECTORY_HARDLINKS=1 \
+ INSTALLDIRS=vendor DESTDIR=${pkgdir} install
+
+ # bash completion
+ mkdir -p $pkgdir/etc/bash_completion.d/
+ install -m644 ./contrib/completion/git-completion.bash $pkgdir/etc/bash_completion.d/git
+ # more contrib stuff
+ cp -a ./contrib $pkgdir/usr/share/git/
+ # scripts are for python 2.x
+ sed -i 's|#![ ]*/usr/bin/env python|#!/usr/bin/env python2|' \
+ $(find "$pkgdir" -name '*.py') \
+ "$pkgdir"/usr/share/git/{fast-import/git-p4,gitview/gitview}
+
+ # emacs interface
+ mkdir -p $pkgdir/usr/share/emacs/site-lisp
+ mv $pkgdir/usr/share/git/emacs $pkgdir/usr/share/emacs/site-lisp/git
+ rm $pkgdir/usr/share/emacs/site-lisp/git/.gitignore
+
+ # how 'bout some manpages?
+ for mansect in man1 man5 man7; do
+ for manpage in $srcdir/$mansect/*; do
+ install -D -m644 $manpage $pkgdir/usr/share/man/$mansect/$(basename $manpage)
+ done
+ done
+
+ # remove perllocal.pod, .packlist, and empty directories.
+ rm -rf $pkgdir/usr/lib/perl5
+
+ # git daemon script
+ install -D -m755 $srcdir/git-daemon $pkgdir/etc/rc.d/git-daemon
+ install -D -m644 $srcdir/git-daemon.conf $pkgdir/etc/conf.d/git-daemon.conf
+}
+
+md5sums=('da6c8f4967393342a4397b955db72cb1'
+ '0d29c91eb213391b4ecb1419568555ef'
+ '8e2648910fd5dd4f1c41d3c7fa9e9156'
+ '2e42bf97779a1c6411d89043334c9e78')
+sha256sums=('44b3ebc87d83b34468718fb6fa424420877e1f66c190389d693d090662a3556d'
+ '3a43b28fde68fceba479e2374ed4df989233ec92973c5c49130aca97d4dd03bb'
+ '2e0a50bdaf8f387a499895e1c204bff78244eaa72b78187c8a84ef40c0b82598'
+ 'e8bfe29d8393d2b87517c4dd56ea834b213aa00bf3d7fcde4ead3457cadbbc68')
diff --git a/extra/git/git-daemon b/extra/git/git-daemon
new file mode 100644
index 000000000..21ba73ed5
--- /dev/null
+++ b/extra/git/git-daemon
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+daemon_bin="/usr/lib/git-core/git-daemon"
+daemon_name=$(basename $daemon_bin)
+PIDF="/var/run/$daemon_name.pid"
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/$daemon_name.conf
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f $PIDF ] && rm -f $PIDF
+ # RUN
+ $daemon_bin --pid-file=$PIDF $GIT_DAEMON_ARGS
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > $PIDF
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f $PIDF &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/extra/git/git-daemon.conf b/extra/git/git-daemon.conf
new file mode 100644
index 000000000..3f9a12060
--- /dev/null
+++ b/extra/git/git-daemon.conf
@@ -0,0 +1,5 @@
+# path to git repositories served
+GIT_REPO="/srv/git/"
+# see `man git-daemon` for all available options
+# $GIT_REPO will be present twice in most configs
+GIT_DAEMON_ARGS="--detach --syslog --verbose --base-path=$GIT_REPO $GIT_REPO"
diff --git a/extra/gksu/PKGBUILD b/extra/gksu/PKGBUILD
new file mode 100644
index 000000000..d48fdb3a7
--- /dev/null
+++ b/extra/gksu/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 109132 2011-02-06 11:40:19Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Eduardo Lopes (eduol@gmx.net)
+
+pkgname=gksu
+pkgver=2.0.2
+pkgrel=3
+pkgdesc="A graphical frontend for su"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/gksu/index.html"
+license=('GPL')
+depends=('libgksu>=2.0.12' 'xorg-xauth')
+makedepends=('gtk-doc' 'nautilus>=2.26.0' 'intltool')
+optdepends=('nautilus')
+options=('!libtool')
+source=(http://people.debian.org/~kov/gksu/${pkgname}-${pkgver}.tar.gz)
+md5sums=('cacbcac3fc272dce01c6ea38354489e2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's|/usr/bin/x-terminal-emulator|-l gnome-terminal|g' gksu.desktop
+ echo "TryExec=gnome-terminal" >> gksu.desktop
+# libtoolize --force
+# aclocal
+# autoconf
+# automake
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/glade-perl/PKGBUILD b/extra/glade-perl/PKGBUILD
new file mode 100644
index 000000000..aa8e6ed13
--- /dev/null
+++ b/extra/glade-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 104918 2011-01-05 15:15:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=glade-perl
+_realname=Gtk2-GladeXML
+pkgver=1.007
+pkgrel=3
+pkgdesc="Gtk2-GladeXML perl bindings for glade 2.x"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('libglade' 'gtk2-perl' 'perl')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('e6ca234e2a9f0221263acd2a593c583b')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/glade/PKGBUILD b/extra/glade/PKGBUILD
new file mode 100644
index 000000000..f5f96e94b
--- /dev/null
+++ b/extra/glade/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 44620 2009-07-02 21:38:57Z jgc $
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=glade
+pkgver=3.6.7
+pkgrel=1
+pkgdesc="user interface builder for GTK+ and GNOME."
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk2>=2.16.2' 'libxml2>=2.6.32' 'desktop-file-utils')
+makedepends=('intltool' 'pkgconfig' 'python>=2.6' 'libgnomeui>=2.24.1' 'gtk-doc')
+optdepends=('libgnomeui: GNOME UI widgets'
+ 'python: Python widgets support')
+options=('!libtool')
+url="http://glade.gnome.org/"
+install=glade.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/glade3/3.6/glade3-${pkgver}.tar.bz2)
+md5sums=('0fbe06e4babb2adeaf9725577ff43395')
+
+build() {
+ cd "${srcdir}/glade3-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/glade/glade.install b/extra/glade/glade.install
new file mode 100644
index 000000000..bce670aff
--- /dev/null
+++ b/extra/glade/glade.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/glew/PKGBUILD b/extra/glew/PKGBUILD
new file mode 100644
index 000000000..baee8c467
--- /dev/null
+++ b/extra/glew/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 108690 2011-02-02 16:13:23Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: SleepyDog
+
+pkgname=glew
+pkgver=1.5.8
+pkgrel=1
+pkgdesc="The OpenGL Extension Wrangler Library"
+arch=('i686' 'x86_64')
+url="http://glew.sourceforge.net"
+license=('BSD' 'MIT' 'GPL')
+depends=('libxmu' 'libxi' 'mesa')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tgz)
+sha1sums=('450946935faa20ac4950cb42ff025be2c1f7c22e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|lib64|lib|' config/Makefile.linux
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GLEW_DEST="${pkgdir}/usr" install
+ install -D -m644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ chmod 0755 "${pkgdir}/usr/lib/libGLEW.so.${pkgver}"
+}
diff --git a/extra/glhack/ChangeLog b/extra/glhack/ChangeLog
new file mode 100644
index 000000000..cc13a2560
--- /dev/null
+++ b/extra/glhack/ChangeLog
@@ -0,0 +1,12 @@
+2010-01-18 Eric Belanger <eric@archlinux.org>
+
+ * glhack 1.2-4
+ * Rebuilt for libpng 1.4 and libjpeg 8
+ * Fixed man page conflict with nethack (close FS#17226)
+
+2009-06-29 Eric Belanger <eric@archlinux.org>
+
+ * glhack 1.2-3
+ * Moved binaries to /usr/bin (close FS#15303)
+ * Moved saved games to /var
+ * Added ChangeLog
diff --git a/extra/glhack/PKGBUILD b/extra/glhack/PKGBUILD
new file mode 100644
index 000000000..27ef966e4
--- /dev/null
+++ b/extra/glhack/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 63897 2010-01-19 01:01:11Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor : Markus Meissner <markus@meissna.de>
+
+pkgname=glhack
+pkgver=1.2
+pkgrel=4
+pkgdesc="A port of Nethack, a single player dungeon exploration game in 2D"
+arch=('i686' 'x86_64')
+url="http://glhack.sourceforge.net/"
+license=('custom')
+depends=('sdl' 'libpng' 'mesa')
+options=('!makeflags')
+install=glhack.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b4c68e3ab689610ca638b7660c1b05bd')
+sha1sums=('7dc46e6bd4a3c2ec10ab4d314acfbb30cefc6eae')
+
+build(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's|/usr/lib/games|/usr/share|' include/config.h || return 1
+ sed -i 's|/var/lib/games/glhack|/var/games/glhack|' include/unixconf.h || return 1
+ sed -i -e 's|PREFIX = /usr|PREFIX = $(DESTDIR)/usr|' Makefile || return 1
+ sed -i -e 's|VARDIR = /var/lib/games/glhack|VARDIR = $(DESTDIR)/var/games/glhack|' Makefile || return 1
+ sed -i -e 's|/usr/man/man6|$(DESTDIR)/usr/share/man/man6|' doc/Makefile || return 1
+ sed -i -e 's|GAMEDIR = $(PREFIX)/lib/games/$(GAME)|GAMEDIR = $(PREFIX)/share/$(GAME)|' Makefile || return 1
+
+ make || return 1
+ install -d "${pkgdir}"/usr/share/man/man{5,6}
+ make DESTDIR="$pkgdir" install || return 1
+ install -D -m644 dat/license "${pkgdir}/usr/share/licenses/${pkgname}/license"
+
+# Renaming man pages which conflicts with nethack
+ cd "${pkgdir}/usr/share/man/man6"
+ for manpage in dgn_comp dlb lev_comp nethack recover; do
+ mv $manpage.6 $manpage-glhack.6
+ done
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ mv "${pkgdir}/usr/share/glhack/glhack" "${pkgdir}/usr/bin/glhack"
+ mv "${pkgdir}/usr/share/glhack/recover_glhack" "${pkgdir}/usr/bin/recover_glhack"
+
+ chown -R root:root "${pkgdir}/usr/share/glhack"
+
+ rm -r "${pkgdir}"/var/games/glhack
+ install -d "${pkgdir}/var/games/glhack/save"
+ chmod -R 775 "${pkgdir}/var/games"
+ chown -R root:games "${pkgdir}/var/games"
+}
diff --git a/extra/glhack/glhack.install b/extra/glhack/glhack.install
new file mode 100644
index 000000000..78e1655bc
--- /dev/null
+++ b/extra/glhack/glhack.install
@@ -0,0 +1,24 @@
+post_install() {
+ touch var/games/glhack/{record,perm,logfile}
+ chown root:games var/games/glhack/{record,perm,logfile}
+ chmod 664 var/games/glhack/{record,perm,logfile}
+}
+
+pre_upgrade() {
+ install -d -m775 var/games/glhack
+ chown root:games var/games/glhack
+ [ -e usr/share/glhack/record ] && cp usr/share/glhack/record var/games/glhack
+ [ -e usr/share/glhack/perm ] && cp usr/share/glhack/perm var/games/glhack
+ [ -e usr/share/glhack/logfile ] && cp usr/share/glhack/logfile var/games/glhack
+ if [ -d usr/share/glhack/save ]; then
+ chmod g-s usr/share/glhack/save
+ mv usr/share/glhack/save var/games/glhack
+ else
+ install -d -m775 var/games/glhack/save
+ fi
+ chown root:games var/games/glhack/save
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/extra/glib-perl/PKGBUILD b/extra/glib-perl/PKGBUILD
new file mode 100644
index 000000000..4b57e3065
--- /dev/null
+++ b/extra/glib-perl/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 104386 2011-01-02 04:08:45Z kevin $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=glib-perl
+_realname=Glib
+pkgver=1.223
+pkgrel=2
+pkgdesc="Perl wrappers for glib 2.x, including GObject"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+options=('!emptydirs')
+depends=('glib2>=2.24.1' 'perl>=5.12.1')
+makedepends=('perl-extutils-depends>=0.302' 'perl-extutils-pkgconfig>=1.12')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('cfdeaa8c95448f86c30b505e4701abf1')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/glib/ChangeLog b/extra/glib/ChangeLog
new file mode 100644
index 000000000..a809a01d1
--- /dev/null
+++ b/extra/glib/ChangeLog
@@ -0,0 +1,11 @@
+2009-10-14 Eric Belanger <eric@archlinux.org>
+
+ * glib 1.2.10-8.1
+ * Fixed configure options for x86_64 (close FS#16658)
+
+2009-08-01 Eric Belanger <eric@archlinux.org>
+
+ * glib 1.2.10-8
+ * FHS man pages
+ * Added info pages
+ * Added ChangeLog
diff --git a/extra/glib/PKGBUILD b/extra/glib/PKGBUILD
new file mode 100644
index 000000000..48945164c
--- /dev/null
+++ b/extra/glib/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 55861 2009-10-15 02:42:14Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=glib
+pkgver=1.2.10
+pkgrel=8.1
+pkgdesc="Common C routines used by Gtk+ and other libs"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('glibc' 'texinfo')
+options=('!libtool')
+install=glib.install
+source=(ftp://ftp.gtk.org/pub/gtk/v1.2/${pkgname}-${pkgver}.tar.gz \
+ gcc340.patch aclocal-fixes.patch)
+md5sums=('6fe30dad87c77b91b632def29dd69ef9' '877b3330e822a4be69a0f8a8c268cfd7'\
+ 'e52c4b88427b9785bb8049dbdc9ff6fb')
+sha1sums=('e5a9361c594608d152d5d9650154c2e3260b87fa' 'a2cc224a66aeffdcac16ebd9e8af18143cf54918'\
+ 'ae4438cf56c0c9264ee36f6973fb445f9a820be0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../gcc340.patch || return 1
+ patch -Np0 -i ../aclocal-fixes.patch || return 1
+
+ [ "$CARCH" = "x86_64" ] && CONFIGFLAG="--host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu"
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info $CONFIGFLAG || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/glib/aclocal-fixes.patch b/extra/glib/aclocal-fixes.patch
new file mode 100644
index 000000000..b064074aa
--- /dev/null
+++ b/extra/glib/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- glib.m4.orig 2006-03-05 13:13:24.000000000 +0000
++++ glib.m4 2006-03-05 13:13:35.000000000 +0000
+@@ -5,7 +5,7 @@
+ dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
+ dnl gthread is specified in MODULES, pass to glib-config
+ dnl
+-AC_DEFUN(AM_PATH_GLIB,
++AC_DEFUN([AM_PATH_GLIB],
+ [dnl
+ dnl Get the cflags and libraries from the glib-config script
+ dnl
diff --git a/extra/glib/gcc340.patch b/extra/glib/gcc340.patch
new file mode 100644
index 000000000..941111ae7
--- /dev/null
+++ b/extra/glib/gcc340.patch
@@ -0,0 +1,15 @@
+diff -Naur glib-1.2.10.orig/glib.h glib-1.2.10/glib.h
+--- glib-1.2.10.orig/glib.h 2001-02-27 04:44:38.000000000 +0100
++++ glib-1.2.10/glib.h 2004-05-27 15:50:32.436527848 +0200
+@@ -271,8 +271,10 @@
+
+ /* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with
+ * macros, so we can refer to them as strings unconditionally.
++ *
++ * Unfortunately these are _not_ treated as strings anymore in GCC3.4.
+ */
+-#ifdef __GNUC__
++#if defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
+ #define G_GNUC_FUNCTION __FUNCTION__
+ #define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
+ #else /* !__GNUC__ */
diff --git a/extra/glib/glib.install b/extra/glib/glib.install
new file mode 100644
index 000000000..140fd2fe9
--- /dev/null
+++ b/extra/glib/glib.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(glib.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/glibmm/PKGBUILD b/extra/glibmm/PKGBUILD
new file mode 100644
index 000000000..7c008cb87
--- /dev/null
+++ b/extra/glibmm/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 79559 2010-05-04 13:57:18Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase=glibmm
+pkgname=('glibmm' 'glibmm-docs')
+pkgver=2.24.2
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('glib2>=2.24.1' 'libsigc++2.0>=2.2.5' 'pkgconfig')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.24/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+sha256sums=('d4687c0b27f9c9f955a5306649008a1f8d8935edff916278fb7b65b44292ff7a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package_glibmm() {
+ pkgdesc="Glib-- (glibmm) is a C++ interface for glib"
+ depends=('glib2>=2.24.0' 'libsigc++2.0>=2.2.5')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+ make DESTDIR="${pkgdir}" install || return 1
+}
+
+package_glibmm-docs() {
+ pkgdesc="Developer documentation for glibmm"
+ cd "${srcdir}/${pkgbase}-${pkgver}/docs"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/glpk/PKGBUILD b/extra/glpk/PKGBUILD
new file mode 100644
index 000000000..0ec9479fc
--- /dev/null
+++ b/extra/glpk/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: bzklrm <bzklrm@gmail.com>
+# Additional contributors Senjin, Xavier, dundee
+
+pkgname=glpk
+pkgver=4.44
+pkgrel=1
+pkgdesc="GNU Linear Programming Kit : solve LP, MIP and other problems."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/glpk/glpk.html"
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=("http://ftp.gnu.org/gnu/glpk/${pkgname}-${pkgver}.tar.gz")
+md5sums=('f2ac7013bc0420d730d052e7ba24bdb1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+
+ if [ "$CARCH" == "x86_64" ]; then
+ make CFLAGS="$CFLAGS -fPIC"
+ else
+ make
+ fi
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/glsof/ChangeLog b/extra/glsof/ChangeLog
new file mode 100644
index 000000000..e941c8b45
--- /dev/null
+++ b/extra/glsof/ChangeLog
@@ -0,0 +1,6 @@
+2009-03-14 Eric Belanger <eric@archlinux.org>
+
+ * glsof 0.9.16-5
+ * Added license
+ * Added .desktop file
+ * Added ChangeLog
diff --git a/extra/glsof/PKGBUILD b/extra/glsof/PKGBUILD
new file mode 100644
index 000000000..bd8ccc1fa
--- /dev/null
+++ b/extra/glsof/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 30064 2009-03-16 01:17:32Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=glsof
+pkgver=0.9.16
+pkgrel=5
+pkgdesc="A gtk-GUI for lsof (aka GTK-lsof)"
+arch=('i686' 'x86_64')
+url="http://glsof.sourceforge.net/"
+license=('GPL')
+depends=('libxml2' 'gtk2' 'lsof')
+source=(http://download.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz glsof.desktop)
+md5sums=('5ad5f2a6908be713753d9826c38e3e2c' '1a6ab5bf5ef44ae31b8b7461b76f62db')
+sha1sums=('80f4596ad09c5ddb463bad299a76ce275c0ecd4d' '647be33bea11fec6ba0bfd59c02034dc64925e52')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m644 ../glsof.desktop ${pkgdir}/usr/share/applications/glsof.desktop || return 1
+ install -d ${pkgdir}/usr/share/pixmaps
+ ln -s /usr/share/glsof/pixmaps/logo.png ${pkgdir}/usr/share/pixmaps/glsof.png
+}
diff --git a/extra/glsof/glsof.desktop b/extra/glsof/glsof.desktop
new file mode 100644
index 000000000..fb13ffd6d
--- /dev/null
+++ b/extra/glsof/glsof.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=glsof
+Comment=A GUI for lsof
+Comment[pl]=GUI do lsof
+Exec=glsof
+Icon=glsof.png
+StartupNotify=false
+Terminal=false
+Type=Application
+Categories=GTK;System;Monitor;
+Encoding=UTF-8
+# vi: encoding=utf-8
diff --git a/extra/gluezilla/PKGBUILD b/extra/gluezilla/PKGBUILD
new file mode 100644
index 000000000..224068bd6
--- /dev/null
+++ b/extra/gluezilla/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=gluezilla
+pkgver=2.6
+pkgrel=3
+pkgdesc="Web browser implementation (Gecko) for Mono, the free .NET runtime"
+arch=(i686 x86_64)
+license=('LGPL2' 'MPL')
+url="http://www.mono-project.com/"
+depends=('mono' 'xulrunner>=2.0')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2 xulrunner2.0.patch xulrunner2.0_configure.patch)
+md5sums=('bd4eb89747498945227877295fcd36b5'
+ '26ea3af3ef5ce045a13a3f3ee54cf0f6'
+ '06faa671dd791868701d98e610fcbc7e')
+
+build() {
+ cd ${srcdir}/gluezilla-${pkgver}
+ patch -p1 < ${srcdir}/xulrunner2.0.patch || return 1
+ patch -p1 < ${srcdir}/xulrunner2.0_configure.patch || return 1
+
+ rm configure
+ autoconf
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+}
diff --git a/extra/gluezilla/configure_xulrunner.patch b/extra/gluezilla/configure_xulrunner.patch
new file mode 100644
index 000000000..6537a2066
--- /dev/null
+++ b/extra/gluezilla/configure_xulrunner.patch
@@ -0,0 +1,11 @@
+--- configure_old 2009-10-01 20:27:13.000000000 +0200
++++ configure 2010-03-25 12:31:10.000000000 +0100
+@@ -19988,7 +19988,7 @@
+
+ { echo "$as_me:$LINENO: checking Mozilla XPCOM > 1.8" >&5
+ echo $ECHO_N "checking Mozilla XPCOM > 1.8... $ECHO_C" >&6; }
+- mozilla_xpcom_pcs="libxul-embedding-unstable"
++ mozilla_xpcom_pcs="libxul-embedding"
+ for pc in $mozilla_xpcom_pcs; do
+ if $PKG_CONFIG --exists $pc; then
+ { echo "$as_me:$LINENO: result: $pc" >&5
diff --git a/extra/gluezilla/xulrunner2.0.patch b/extra/gluezilla/xulrunner2.0.patch
new file mode 100644
index 000000000..913795908
--- /dev/null
+++ b/extra/gluezilla/xulrunner2.0.patch
@@ -0,0 +1,150 @@
+diff --git a/src/BrowserWindow.cpp b/src/BrowserWindow.cpp
+index f260295..10ae7bd 100755
+--- a/src/BrowserWindow.cpp
++++ b/src/BrowserWindow.cpp
+@@ -28,23 +28,6 @@
+ NS_GENERIC_FACTORY_CONSTRUCTOR(SecurityWarningDialogs)
+ NS_GENERIC_FACTORY_CONSTRUCTOR(PromptService)
+
+-static const nsModuleComponentInfo components[] = {
+- {
+- SECURITYWARNINGSDIALOGS_CLASSNAME,
+- SECURITYWARNINGSDIALOGS_CID,
+- NS_SECURITYWARNINGDIALOGS_CONTRACTID,
+- SecurityWarningDialogsConstructor
+- },
+- {
+- PROMPTSERVICE_CLASSNAME,
+- PROMPTSERVICE_CID,
+- NS_PROMPTSERVICE_CONTRACTID,
+- PromptServiceConstructor
+- }
+-
+-};
+-
+-
+ BrowserWindow::BrowserWindow (void)
+ {
+ owner = nsnull;
+@@ -162,17 +145,17 @@ nsresult BrowserWindow::RegisterComponents ()
+ nsCOMPtr<nsIFactory> componentFactory;
+ rv = NS_NewSecurityWarningServiceFactory(getter_AddRefs(componentFactory));
+ if (NS_SUCCEEDED(rv)) {
+- compReg->RegisterFactory(components[0].mCID,
+- components[0].mDescription,
+- components[0].mContractID,
++ compReg->RegisterFactory(kSECURITYWARNINGSDIALOGS_CID,
++ SECURITYWARNINGSDIALOGS_CLASSNAME,
++ NS_SECURITYWARNINGDIALOGS_CONTRACTID,
+ componentFactory);
+ }
+
+ rv = NS_NewPromptServiceFactory(getter_AddRefs(componentFactory), this);
+ if (NS_SUCCEEDED(rv)) {
+- compReg->RegisterFactory(components[1].mCID,
+- components[1].mDescription,
+- components[1].mContractID,
++ compReg->RegisterFactory(kPROMPTSERVICE_CID,
++ PROMPTSERVICE_CLASSNAME,
++ NS_PROMPTSERVICE_CONTRACTID,
+ componentFactory);
+ }
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 3b7bce3..cd6ec99 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -26,7 +26,7 @@ libgluezilla_la_SOURCES = \
+ gluezilla.h \
+ FastDelegate.h
+
+-if OLDXUL
++if XUL_2
+ libgluezilla_la_SOURCES += \
+ gluezilla_nsIScriptContext.h \
+ gluezilla_nsIScriptGlobalObject.h
+diff --git a/src/PromptService.h b/src/PromptService.h
+index 04fddb9..174bca4 100644
+--- a/src/PromptService.h
++++ b/src/PromptService.h
+@@ -20,8 +20,9 @@
+ // {77686174-2061-6d20-6920-746F20646F20}
+ #define PROMPTSERVICE_CID \
+ { 0x77686174, 0x2061, 0x6d20, { 0x69, 0x20, 0x74, 0x6F, 0x20, 0x64, 0x6F, 0x20 } }
+-
+-
++
++static NS_DEFINE_CID(kPROMPTSERVICE_CID, PROMPTSERVICE_CID);
++
+ class PromptService : public nsIPromptService
+ {
+ NS_DECL_ISUPPORTS
+diff --git a/src/SecurityWarningsDialogs.h b/src/SecurityWarningsDialogs.h
+index b75f529..ae352ad 100644
+--- a/src/SecurityWarningsDialogs.h
++++ b/src/SecurityWarningsDialogs.h
+@@ -21,8 +21,9 @@
+ // {696E7465-7265-7374-696E-67206C696665}
+ #define SECURITYWARNINGSDIALOGS_CID \
+ { 0x696E7465, 0x7265, 0x7374, { 0x69, 0x6E, 0x67, 0x20, 0x6C, 0x69, 0x66, 0x65 } }
+-
+-
++
++static NS_DEFINE_CID(kSECURITYWARNINGSDIALOGS_CID, SECURITYWARNINGSDIALOGS_CID);
++
+ class SecurityWarningDialogs : public nsISecurityWarningDialogs
+ {
+ public:
+diff --git a/src/interfaces.h b/src/interfaces.h
+index 3a9f9dd..6acebb8 100644
+--- a/src/interfaces.h
++++ b/src/interfaces.h
+@@ -4,7 +4,18 @@
+ #define TO_STRING(x) #x
+
+ //Gecko Embedding API
++#if XUL_VERSION < 4
+ #include <nsEmbedAPI.h>
++#else
++#include <nscore.h>
++#include <nsXPCOM.h>
++#include <nsILocalFile.h>
++#include <nsIDirectoryService.h>
++#define NS_GRE_COMPONENT_DIR "GreComsD"
++#define NS_XPCOM_COMPONENT_DIR "ComsD"
++#define NS_XPCOM_COMPONENT_REGISTRY_FILE "ComRegF"
++#define NS_XPCOM_XPTI_REGISTRY_FILE "XptiRegF"
++#endif
+
+ //XPCOM API
+ #include <nsCOMPtr.h>
+@@ -78,8 +89,12 @@
+ #include <nsIPromptService.h>
+ #include <nsISecurityWarningDialogs.h>
+ #include <nsIComponentRegistrar.h>
++#if XUL_VERSION < 4
+ #include <nsIGenericFactory.h>
+-
++#else
++#include <mozilla/ModuleUtils.h>
++struct nsModuleComponentInfo;
++#endif
+ // preferences
+ #include <nsIPrefBranch.h>
+ #include <nsIPrefService.h>
+@@ -131,12 +146,15 @@
+ typedef type (NS_FROZENCALL * name##Type) params; \
+ extern name##Type name NS_HIDDEN;
+
++#if XUL_VERSION < 4
+ XRE_API(nsresult,
+ XRE_InitEmbedding, (nsILocalFile *aLibXULDirectory,
+ nsILocalFile *aAppDirectory,
+ nsIDirectoryServiceProvider *aAppDirProvider,
+ nsStaticModuleInfo const *aStaticComponents,
+ PRUint32 aStaticComponentCount))
++#endif
++
+
+ XRE_API(void, XRE_TermEmbedding, ())
+
diff --git a/extra/gluezilla/xulrunner2.0_configure.patch b/extra/gluezilla/xulrunner2.0_configure.patch
new file mode 100644
index 000000000..cb64208e3
--- /dev/null
+++ b/extra/gluezilla/xulrunner2.0_configure.patch
@@ -0,0 +1,51 @@
+--- a/configure.ac
++++ b/configure.ac_new
+@@ -87,16 +87,23 @@
+
+ if test "x${oldxul}" != xyes ; then
+
+- AC_MSG_CHECKING(Mozilla XPCOM > 1.8)
+- mozilla_xpcom_pcs="libxul-embedding-unstable"
+- for pc in $mozilla_xpcom_pcs; do
+- if $PKG_CONFIG --exists $pc; then
+- AC_MSG_RESULT($pc)
+- mozilla_xpcom=$pc
+- XUL_VERSION=3
+- break;
+- fi
+- done
++ if test -z $mozilla_xpcom; then
++ AC_MSG_CHECKING(Mozilla XPCOM > 1.8)
++ mozilla_xpcom_pcs="libxul-embedding libxul-embedding-unstable"
++ for pc in $mozilla_xpcom_pcs; do
++ if $PKG_CONFIG --exists $pc; then
++ mozilla_xpcom=$pc
++ XUL_VERSION=3
++ version="$(pkg-config --modversion $pc)"
++ minor=`echo "$version" | sed -e 's,\([[0-9]]*\)\..*,\1,'`
++ if test $minor -ge 2; then
++ XUL_VERSION=4
++ fi
++ AC_MSG_RESULT(Found $version)
++ break;
++ fi
++ done
++ fi
+ fi
+
+ if test -z $mozilla_xpcom; then
+@@ -121,9 +128,12 @@
+ XPCOM_PKGS="$mozilla_xpcom"
+ fi
+
+-AM_CONDITIONAL([OLDXUL], [test x$XUL_VERSION = x2])
+-
+ AC_SUBST(XUL_VERSION)
++
++AM_CONDITIONAL([XUL_4], [test x$XUL_VERSION = x4])
++AM_CONDITIONAL([XUL_3], [test x$XUL_VERSION = x3])
++AM_CONDITIONAL([XUL_2], [test x$XUL_VERSION = x2])
++
+
+ AC_ARG_ENABLE([optimize],
+ AC_HELP_STRING([--enable-optimize], [Enable optimizations (-O2)]),
diff --git a/extra/gmetadom/PKGBUILD b/extra/gmetadom/PKGBUILD
new file mode 100644
index 000000000..64be3c3b7
--- /dev/null
+++ b/extra/gmetadom/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 37443 2009-05-01 20:50:35Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gmetadom
+pkgver=0.2.6
+pkgrel=2
+pkgdesc="C++ bindings for GDome2 DOM implementation"
+arch=('i686' 'x86_64')
+url="http://gmetadom.sourceforge.net/"
+license=('LGPL')
+depends=('gdome2')
+makedepends=('pkgconfig' 'ocaml')
+options=('!libtool' '!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ gmetadom-0.2.6-gcc43.patch)
+md5sums=('7bfb5d9c6f20ffa5e790b63d1f8cb481'
+ 'ea0271007f8650733029327823353d0d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/gmetadom-0.2.6-gcc43.patch || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir}/ install
+}
diff --git a/extra/gmetadom/gmetadom-0.2.6-gcc43.patch b/extra/gmetadom/gmetadom-0.2.6-gcc43.patch
new file mode 100644
index 000000000..c16c3d6ba
--- /dev/null
+++ b/extra/gmetadom/gmetadom-0.2.6-gcc43.patch
@@ -0,0 +1,18 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 01_gcc43-fix.dpatch by Michael Bienia <geser@ubuntu.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad gmetadom-0.2.5-3ubuntu1~/src/gdome_cpp_smart/include/GdomeSmartDOMTraits.hh gmetadom-0.2.5-3ubuntu1/src/gdome_cpp_smart/include/GdomeSmartDOMTraits.hh
+--- gmetadom-0.2.5-3ubuntu1~/src/gdome_cpp_smart/include/GdomeSmartDOMTraits.hh 2007-11-21 18:27:08.000000000 +0100
++++ gmetadom-0.2.5-3ubuntu1/src/gdome_cpp_smart/include/GdomeSmartDOMTraits.hh 2007-11-28 12:16:00.000000000 +0100
+@@ -26,6 +26,7 @@
+ */
+
+ #include <string>
++#include <cstring>
+
+ #include "GdomeSmartDOMChar.hh"
+
diff --git a/extra/gmime/PKGBUILD b/extra/gmime/PKGBUILD
new file mode 100644
index 000000000..663f51870
--- /dev/null
+++ b/extra/gmime/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 113007 2011-03-08 07:02:20Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gmime
+pkgver=2.4.23
+pkgrel=1
+pkgdesc="Core mime parsing library"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://spruce.sourceforge.net/gmime/"
+depends=('glib2' 'zlib')
+makedepends=('gtk-sharp-2' 'pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('0cfd38cd8960979fd6e36a36afa9aec89f33dfe787f2bb11b8e8cdb0809e8377')
+
+build() {
+ # get rid of that .wapi errors in fakeroot
+ export MONO_SHARED_DIR="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # These are gmime alternatives for the same shareutils tools
+ mv "${pkgdir}/usr/bin/uuencode" "${pkgdir}/usr/bin/guuencode"
+ mv "${pkgdir}/usr/bin/uudecode" "${pkgdir}/usr/bin/guudecode"
+}
diff --git a/extra/gmpc/PKGBUILD b/extra/gmpc/PKGBUILD
new file mode 100644
index 000000000..7cee8fc09
--- /dev/null
+++ b/extra/gmpc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 80683 2010-05-20 18:05:37Z ibiru $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@archlinux.org>
+
+pkgname=gmpc
+pkgver=0.20.0
+pkgrel=1
+pkgdesc="A GTK2 client for MPD"
+arch=('i686' 'x86_64')
+url="http://gmpc.wikia.com/wiki/Gnome_Music_Player_Client"
+license=("GPL")
+depends=('libglade' 'libmpd>=0.20.0' 'curl' 'libsm' 'libsoup' 'libsexy' 'hicolor-icon-theme')
+makedepends=('gob2' 'intltool' 'vala')
+options=('!libtool')
+install=gmpc.install
+source=(http://download.sarine.nl/Programs/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('902fd69b0b6bb40abb647604080dd7ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-system-libsexy
+ make || return 1
+ sed -i 's|GNOME;Application;AudioVideo;|GTK;Application;AudioVideo;Player;|' \
+ data/${pkgname}.desktop
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/gmpc/gmpc.install b/extra/gmpc/gmpc.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/gmpc/gmpc.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/extra/gnet/ChangeLog b/extra/gnet/ChangeLog
new file mode 100644
index 000000000..b8975af31
--- /dev/null
+++ b/extra/gnet/ChangeLog
@@ -0,0 +1,5 @@
+2008-05-04 Eric Belanger <eric@archlinux.org>
+
+ * gnet 2.0.8-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/extra/gnet/PKGBUILD b/extra/gnet/PKGBUILD
new file mode 100644
index 000000000..983807f31
--- /dev/null
+++ b/extra/gnet/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 1327 2008-05-05 00:54:40Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gnet
+pkgver=2.0.8
+pkgrel=1
+pkgdesc="GNet is a simple network library"
+arch=('i686' 'x86_64')
+url="http://www.gnetlibrary.org/"
+license=('LGPL')
+depends=('glib2')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/gnet/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('93327d2fca333d7e54ba2cf54e071165')
+sha1sums=('74a33dd25cc594b874e3a5171795efd99e567387')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/extra/gnokii/PKGBUILD b/extra/gnokii/PKGBUILD
new file mode 100644
index 000000000..ecd996b4d
--- /dev/null
+++ b/extra/gnokii/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 114760 2011-03-15 22:43:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=gnokii
+pkgver=0.6.30
+pkgrel=1
+pkgdesc="Tools and user space driver for use with mobile phones"
+arch=('i686' 'x86_64')
+url="http://www.gnokii.org/"
+license=('GPL')
+depends=('libusb-compat' 'libxpm' 'bluez' 'libical' 'postgresql-libs')
+makedepends=('gtk2' 'libmysqlclient' 'intltool')
+optdepends=('gtk2: xgnokii GUI'
+ 'libmysqlclient: smsd mysql backend'
+ 'postgresql-libs: smsd postgresql backend')
+backup=('etc/gnokiirc')
+options=('!libtool' '!makeflags')
+source=(http://www.gnokii.org/download/$pkgname/$pkgname-${pkgver}.tar.bz2
+ 'gnokii.patch')
+md5sums=('c90137d403febbc16712d64f0eb196de'
+ '4d764727686ee34bc73489c8b1321c82')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # FS#13249
+ sed -i 's|cellphone|phone|' xgnokii/xgnokii.desktop.in
+
+ patch -Np1 -i "${srcdir}/gnokii.patch"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-security \
+ --disable-unix98test
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 Docs/sample/gnokiirc "${pkgdir}/etc/gnokiirc"
+}
diff --git a/extra/gnokii/gnokii.patch b/extra/gnokii/gnokii.patch
new file mode 100644
index 000000000..e64d81aa1
--- /dev/null
+++ b/extra/gnokii/gnokii.patch
@@ -0,0 +1,12 @@
+diff -ur gnokii-0.6.7-old/Docs/sample/gnokiirc gnokii-0.6.7/Docs/sample/gnokiirc
+--- gnokii-0.6.7-old/Docs/sample/gnokiirc 2005-05-16 20:55:13.000000000 +0200
++++ gnokii-0.6.7/Docs/sample/gnokiirc 2005-06-03 10:49:42.000000000 +0200
+@@ -112,7 +112,7 @@
+ # permissions 4750, owned by root, group gnokii. Ensure you
+ # are in the gnokii group and that the group exists...
+ [gnokiid]
+-bindir = /usr/local/sbin/
++bindir = /usr/sbin/
+
+ # Any entries in the following two sections will be set as environment
+ # variables when running the scripts.
diff --git a/extra/gnome-alsamixer/PKGBUILD b/extra/gnome-alsamixer/PKGBUILD
new file mode 100644
index 000000000..277ddcbde
--- /dev/null
+++ b/extra/gnome-alsamixer/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 49919 2009-08-16 21:30:55Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gnome-alsamixer
+pkgver=0.9.6
+pkgrel=3
+pkgdesc="Gnome ALSA mixer"
+arch=('i686' 'x86_64')
+url="http://www.paw.za.org"
+license=('GPL')
+depends=('libgnomeui>=2.24.1')
+source=(ftp://ftp.archlinux.org/other/gnome-alsamixer/${pkgname}-${pkgver}.tar.gz
+ gnome-alsamixer-0.9.6-gtk24.patch)
+md5sums=('387623cfeb079d78325eed2d6bc94251'
+ '82b95a0df43429da5098b4da883f6bd0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/gnome-alsamixer-0.9.6-gtk24.patch" || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-alsamixer/gnome-alsamixer-0.9.6-gtk24.patch b/extra/gnome-alsamixer/gnome-alsamixer-0.9.6-gtk24.patch
new file mode 100644
index 000000000..9e5f4eeb1
--- /dev/null
+++ b/extra/gnome-alsamixer/gnome-alsamixer-0.9.6-gtk24.patch
@@ -0,0 +1,15 @@
+diff -ur gnome-alsamixer-0.9.6/src/Makefile.in gnome-alsamixer-0.9.6.new/src/Makefile.in
+--- gnome-alsamixer-0.9.6/src/Makefile.in 2003-09-09 12:44:25.000000000 +0100
++++ gnome-alsamixer-0.9.6.new/src/Makefile.in 2004-04-04 18:51:36.000000000 +0100
+@@ -86,10 +86,6 @@
+ -DPACKAGE_DATA_DIR=\""$(datadir)/gnome-alsamixer"\" \
+ -DPIXMAP_ICONDIR=\""$(datadir)/pixmaps/gnome-alsamixer"\" \
+ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
+- -DG_DISABLE_DEPRECATED \
+- -DGDK_DISABLE_DEPRECATED \
+- -DGTK_DISABLE_DEPRECATED \
+- -DGNOME_DISABLE_DEPRECATED \
+ @PACKAGE_CFLAGS@
+
+
+Only in gnome-alsamixer-0.9.6.new/src: Makefile.in~
diff --git a/extra/gnome-applets/PKGBUILD b/extra/gnome-applets/PKGBUILD
new file mode 100644
index 000000000..49f1f80f1
--- /dev/null
+++ b/extra/gnome-applets/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 112787 2011-03-06 19:39:31Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-applets
+pkgver=2.32.1.1
+pkgrel=2
+pkgdesc="GNOME Applets"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gstreamer0.10-base-plugins>=0.10.30' 'gnome-panel>=2.31.92' 'libgtop>=2.28.1' 'gucharmap>=2.32.0' 'libnotify>=0.7.1' 'cpufrequtils')
+makedepends=('gnome-doc-utils>=0.20.1' 'pkgconfig' 'gnome-settings-daemon>=2.31.92' 'intltool' 'gnome-icon-theme>=2.31.0' 'gnome-python-desktop>=2.31.1' 'networkmanager>=0.8')
+optdepends=('python-gnomeapplet: invest-applet')
+options=('!emptydirs' '!libtool')
+url="http://www.gnome.org"
+groups=(gnome)
+install=gnome-applets.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ gnome-applets-2.32.1.1-libnotify-0.7.patch
+ add-dbus-glib.patch)
+sha256sums=('2b92fe4b3062dfbe264f45472b4db3a27d1e69e13260d37da9fb36b2cbd40327'
+ '1e0b1f9545029bda0f4aadc28ef6eba34a5dbd1c3d1e5cec45627be7b0c32eda'
+ '6c79b77aa731f82d9b7c9704e5c6d3cb06252eea3c2d21fa35245d2f02ca0346')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/add-dbus-glib.patch"
+ patch -Np0 -i "${srcdir}/gnome-applets-2.32.1.1-libnotify-0.7.patch"
+ autoreconf -fi
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-applets \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --enable-mixer-applet \
+ --disable-schemas-install --without-hal
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ sed -i "s|#!/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $pkgdir/usr/bin/invest-chart \
+ $pkgdir/usr/lib/gnome-applets/invest-applet \
+ $pkgdir/usr/lib/python2.7/site-packages/invest/chart.py
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-applets-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-applets/add-dbus-glib.patch b/extra/gnome-applets/add-dbus-glib.patch
new file mode 100644
index 000000000..16c2999a8
--- /dev/null
+++ b/extra/gnome-applets/add-dbus-glib.patch
@@ -0,0 +1,28 @@
+From fe72f63c91a1458d97d455ab0078d042464366e7 Mon Sep 17 00:00:00 2001
+From: Enrico Minack <enrico-minack@gmx.de>
+Date: Mon, 03 Jan 2011 19:58:13 +0000
+Subject: gweather: fixes NetworkManager support to compile, see bug 636217
+
+---
+diff --git a/gweather/Makefile.am b/gweather/Makefile.am
+index ea6ac96..165efda 100644
+--- a/gweather/Makefile.am
++++ b/gweather/Makefile.am
+@@ -6,6 +6,7 @@ INCLUDES = \
+ -I$(srcdir) \
+ -I$(top_srcdir) \
+ -DGWEATHER_MENU_UI_DIR=\""$(uidir)"\" \
++ $(DBUS_CFLAGS) \
+ $(GNOME_APPLETS3_CFLAGS) \
+ $(LIBNOTIFY_CFLAGS) \
+ $(LIBGWEATHER_CFLAGS) \
+@@ -22,6 +23,7 @@ gweather_applet_2_SOURCES = \
+ gweather-applet.c gweather-applet.h
+
+ gweather_applet_2_LDADD = \
++ $(DBUS_LIBS) \
+ $(LIBNOTIFY_LIBS) \
+ $(GNOME_APPLETS3_LIBS) \
+ $(GNOME_LIBS2_LIBS) \
+--
+cgit v0.8.3.4
diff --git a/extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch b/extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch
new file mode 100644
index 000000000..f2b889ec0
--- /dev/null
+++ b/extra/gnome-applets/gnome-applets-2.32.1.1-libnotify-0.7.patch
@@ -0,0 +1,53 @@
+--- battstat/battstat_applet.c
++++ battstat/battstat_applet.c
+@@ -42,6 +42,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ #include "battstat.h"
+@@ -435,7 +438,12 @@
+ GTK_ICON_LOOKUP_USE_BUILTIN,
+ NULL);
+
+- NotifyNotification *n = notify_notification_new (_("Your battery is now fully recharged"), "", /* "battery" */ NULL, applet);
++ NotifyNotification *n = notify_notification_new (_("Your battery is now fully recharged"), "", /* "battery" */ NULL
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , applet);
++#endif
+
+ /* XXX: it would be nice to pass this as a named icon */
+ notify_notification_set_icon_from_pixbuf (n, icon);
+--- gweather/gweather-applet.c
++++ gweather/gweather-applet.c
+@@ -30,6 +30,9 @@
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
+ #include <libnotify/notification.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+@@ -471,8 +474,12 @@
+ if (icon == NULL)
+ icon = "stock-unknown";
+
+- n = notify_notification_new (message, detail, icon,
+- gw_applet->container);
++ n = notify_notification_new (message, detail, icon
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , gw_applet->container);
++#endif
+
+ notify_notification_show (n, &error);
+ if (error)
diff --git a/extra/gnome-applets/gnome-applets.install b/extra/gnome-applets/gnome-applets.install
new file mode 100644
index 000000000..dd9c34269
--- /dev/null
+++ b/extra/gnome-applets/gnome-applets.install
@@ -0,0 +1,22 @@
+pkgname=gnome-applets
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules b/extra/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules
new file mode 100644
index 000000000..a76c1e73c
--- /dev/null
+++ b/extra/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules
@@ -0,0 +1,11 @@
+# Get access to /dev/rfkill for users
+# See https://bugzilla.redhat.com/show_bug.cgi?id=514798
+#
+# Updated for udev >= 154
+# http://bugs.debian.org/582188
+# https://bugzilla.redhat.com/show_bug.cgi?id=588660
+
+ENV{ACL_MANAGE}=="0", GOTO="gnome_bluetooth_end"
+ACTION!="add|change", GOTO="gnome_bluetooth_end"
+KERNEL=="rfkill", TAG+="udev-acl"
+LABEL="gnome_bluetooth_end"
diff --git a/extra/gnome-bluetooth/PKGBUILD b/extra/gnome-bluetooth/PKGBUILD
new file mode 100644
index 000000000..d5a483f72
--- /dev/null
+++ b/extra/gnome-bluetooth/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 112788 2011-03-06 19:49:19Z ibiru $
+# Maintainer:
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-bluetooth
+pkgver=2.32.0
+pkgrel=2
+pkgdesc="The GNOME Bluetooth Subsystem"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/GnomeBluetooth"
+license=('GPL' 'LGPL')
+depends=('libunique>=1.1.6' 'libnotify>=0.7.1' 'hicolor-icon-theme' 'gvfs-obexftp>=1.6.3' 'obexd-client>=0.33' 'dconf')
+makedepends=('intltool' 'pygtk>=2.22' 'gnome-doc-utils>=0.20.1' 'nautilus-sendto>=2.28.4')
+replaces=('bluez-gnome')
+conflicts=('bluez-gnome')
+options=('!libtool' '!emptydirs' '!makeflags')
+install=gnome-bluetooth.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ 61-gnome-bluetooth-rfkill.rules
+ gnome-bluetooth-2.32.0-libnotify-0.7.patch)
+sha256sums=('57b1f06c96a1b85e1c19ff919d708cc38e95edae658881ed99968c325839a973'
+ 'b8acb8ea2e7f3588575cffd8ea14ec50c8641f518f2ea899771a508b299ea474'
+ '42b8388156249bd7c8a18db6d6aef18895ce861f2a79cb937e55eda864245838')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/gnome-bluetooth-2.32.0-libnotify-0.7.patch"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-desktop-update \
+ --disable-icon-update \
+ --disable-schemas-compile \
+ --enable-introspection=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 -D "${srcdir}/61-gnome-bluetooth-rfkill.rules" \
+ "${pkgdir}/lib/udev/rules.d//61-gnome-bluetooth-rfkill.rules"
+}
diff --git a/extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch b/extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch
new file mode 100644
index 000000000..72a726521
--- /dev/null
+++ b/extra/gnome-bluetooth/gnome-bluetooth-2.32.0-libnotify-0.7.patch
@@ -0,0 +1,27 @@
+--- applet/notify.c
++++ applet/notify.c
+@@ -31,6 +31,10 @@
+ #include <libnotify/notify.h>
+ #include "notify.h"
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ static GtkStatusIcon *statusicon = NULL;
+ static char *icon_name = NULL;
+ static char *tooltip = NULL;
+@@ -71,7 +75,12 @@
+ notify_notification_close(notify, NULL);
+ }
+
+- notify = notify_notification_new(summary, message, icon_name, NULL);
++ notify = notify_notification_new(summary, message, icon_name
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+
+ notify_notification_set_timeout(notify, timeout);
+
diff --git a/extra/gnome-bluetooth/gnome-bluetooth.install b/extra/gnome-bluetooth/gnome-bluetooth.install
new file mode 100644
index 000000000..bddac2574
--- /dev/null
+++ b/extra/gnome-bluetooth/gnome-bluetooth.install
@@ -0,0 +1,13 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/gnome-control-center/PKGBUILD b/extra/gnome-control-center/PKGBUILD
new file mode 100644
index 000000000..de8604ceb
--- /dev/null
+++ b/extra/gnome-control-center/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 99871 2010-11-18 22:10:52Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-control-center
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="The Control Center for GNOME"
+arch=('i686' 'x86_64')
+depends=('metacity>=2.30.2' 'libxss' 'desktop-file-utils' 'gnome-settings-daemon>=2.32.1' 'libgnomekbd>=2.32.0' 'libcanberra>=0.25' 'sound-theme-freedesktop' 'libunique>=1.1.6' 'gnome-menus>=2.30.5' 'evolution-data-server>=2.32.1' 'librsvg>=2.32.1')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-control-center.install
+license=('GPL')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7c568b57358e5c08f4d8dd76dbac7df2539135ad081872b60514b7a8ac797e66')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static --enable-aboutme \
+ --disable-scrollkeeper --disable-update-mimedb
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-control-center-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ # --disable-update-mimedb?
+ rm -f "${pkgdir}/usr/share/applications/mimeinfo.cache"
+}
diff --git a/extra/gnome-control-center/gnome-control-center.install b/extra/gnome-control-center/gnome-control-center.install
new file mode 100644
index 000000000..6d6b5678d
--- /dev/null
+++ b/extra/gnome-control-center/gnome-control-center.install
@@ -0,0 +1,29 @@
+pkgname=gnome-control-center
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ if [ "`vercmp $2 2.22.0-3`" -lt 0 ]; then
+ usr/sbin/gconfpkg --install gnome-settings-daemon
+ fi
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+}
diff --git a/extra/gnome-desktop-sharp/PKGBUILD b/extra/gnome-desktop-sharp/PKGBUILD
new file mode 100644
index 000000000..ee004785b
--- /dev/null
+++ b/extra/gnome-desktop-sharp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 70241 2010-02-25 17:21:11Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-desktop-sharp
+pkgver=2.26.0
+pkgrel=5
+pkgdesc="GNOME desktop bindings for C#"
+arch=('i686' 'x86_64')
+license=(LGPL)
+url="http://gtk-sharp.sourceforge.net"
+depends=('gnome-sharp>=2.24.1' 'vte>=0.23.5' 'librsvg>=2.26.0' 'gnome-panel>=2.29.91' 'libwnck>=2.29.91' 'gtkhtml>=3.29.91' 'gtksourceview2>=2.9.2')
+makedepends=('pkgconfig' 'monodoc' 'libgnomeprintui>=2.18.4')
+optdepends=('libgnomeprintui')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.26/${pkgname}-${pkgver}.tar.bz2
+ gnome-desktop-sharp-lib-target.patch)
+md5sums=('4bc990900bb318b2ba0b0e7998bb47d1'
+ '980cd3adf5e745f4caee0a172a51dcc3')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/gnome-desktop-sharp-lib-target.patch || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ make GACUTIL="/usr/bin/gacutil /root ${pkgdir}/usr/lib" \
+ DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-desktop-sharp/gnome-desktop-sharp-lib-target.patch b/extra/gnome-desktop-sharp/gnome-desktop-sharp-lib-target.patch
new file mode 100644
index 000000000..3f0ea4933
--- /dev/null
+++ b/extra/gnome-desktop-sharp/gnome-desktop-sharp-lib-target.patch
@@ -0,0 +1,9 @@
+--- gnome-desktop-sharp-2.26.0/gnomedesktop/gnomedesktop-sharp.dll.config.in.false 2009-02-23 19:01:27.000000000 +0100
++++ gnome-desktop-sharp-2.26.0/gnomedesktop/gnomedesktop-sharp.dll.config.in 2010-02-11 15:59:36.000000000 +0100
+@@ -3,5 +3,5 @@
+ <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+ <dllmap dll="libgthread-2.0-0.dll" target="libgthread-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+ <dllmap dll="libgtk-win32-2.0-0.dll" target="libgtk-x11-2.0@LIB_PREFIX@.0@LIB_SUFFIX@"/>
+- <dllmap dll="gnome-desktop-2" target="libgnome-desktop-2@LIB_PREFIX@.11@LIB_SUFFIX@"/>
++ <dllmap dll="gnome-desktop-2" target="libgnome-desktop-2@LIB_PREFIX@.17@LIB_SUFFIX@"/>
+ </configuration>
diff --git a/extra/gnome-desktop/PKGBUILD b/extra/gnome-desktop/PKGBUILD
new file mode 100644
index 000000000..6c98a52fa
--- /dev/null
+++ b/extra/gnome-desktop/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 99767 2010-11-17 12:13:39Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-desktop
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="The GNOME Desktop"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('gconf>=2.32.0' 'startup-notification>=0.10')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool')
+optdepends=('pygtk: gnome-about')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('55cbecf67efe1fa1e57ac966520a7c46d799c8ba3c652a1219f60cafccb3739d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-gnome-distributor="Archlinux" \
+ --disable-scrollkeeper
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-device-manager/PKGBUILD b/extra/gnome-device-manager/PKGBUILD
new file mode 100644
index 000000000..f452e9190
--- /dev/null
+++ b/extra/gnome-device-manager/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 49923 2009-08-16 21:34:36Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-device-manager
+pkgver=0.2
+pkgrel=2
+pkgdesc="GNOME Device Manager, replaces hal-device-manager"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgnomeui>=2.24.1' 'hal>=0.5.11' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.16.0')
+replaces=('hal-device-manager')
+options=('!libtool' '!emptydirs')
+install=gnome-device-manager.install
+url="http://www.gnome.org"
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('b833a90c940dd6cc992c42ad05ca6831')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-device-manager/gnome-device-manager.install b/extra/gnome-device-manager/gnome-device-manager.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/extra/gnome-device-manager/gnome-device-manager.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gnome-disk-utility/PKGBUILD b/extra/gnome-disk-utility/PKGBUILD
new file mode 100644
index 000000000..0c6b57e76
--- /dev/null
+++ b/extra/gnome-disk-utility/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 112789 2011-03-06 20:08:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-disk-utility
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="GNOME libraries and applications for dealing with storage devices"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+depends=('dbus-glib>=0.86' 'libgnome-keyring>=2.31.92' 'libunique>=1.1.6' 'udisks>=1.0.1' 'libnotify>=0.7.1' 'hicolor-icon-theme' 'avahi')
+makedepends=('gnome-doc-utils>=0.20.0' 'intltool')
+replaces=('gnome-mount')
+conflicts=('gnome-mount')
+options=('!libtool' '!emptydirs' '!makeflags')
+install=gnome-disk-utility.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ fix-freeze.patch)
+sha256sums=('fb3f6c8962eca9706fd96e1f0b431c1284536298bc927e8413e763054c618e99'
+'818b70360978968457d2c50738347c6726ed8d0c007eb57074881a7e33652526')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-freeze.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-disk-utility \
+ --disable-scrollkeeper --disable-nautilus --disable-gtk-doc
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-disk-utility/fix-freeze.patch b/extra/gnome-disk-utility/fix-freeze.patch
new file mode 100644
index 000000000..262748bfb
--- /dev/null
+++ b/extra/gnome-disk-utility/fix-freeze.patch
@@ -0,0 +1,32 @@
+From 82489b51443e1280dfb9fb251ea2693df1809aec Mon Sep 17 00:00:00 2001
+From: Pascal Terjan <pterjan@mandriva.com>
+Date: Mon, 3 May 2010 14:01:22 +0200
+Subject: [PATCH] Force GduPresentable ids to be UTF-8 (#616198)
+
+GduPresentable created in gdu pool include intheir id some strings
+in local encoding like _("Peripheral Devices"). This patch
+enforces them to be UTF-8.
+
+This fixes a crash of gvfs-gdu-volume-monitor when USB devices are
+available on a non UTF-8 system.
+---
+ src/gdu/gdu-pool.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/src/gdu/gdu-pool.c b/src/gdu/gdu-pool.c
+index bd5eccf..cf6be53 100644
+--- a/src/gdu/gdu-pool.c
++++ b/src/gdu/gdu-pool.c
+@@ -473,6 +473,9 @@ gdu_pool_class_init (GduPoolClass *klass)
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ GDU_TYPE_PRESENTABLE);
++#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
++ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
++#endif
+ }
+
+ static void
+--
+1.7.1
+
diff --git a/extra/gnome-disk-utility/gnome-disk-utility.install b/extra/gnome-disk-utility/gnome-disk-utility.install
new file mode 100644
index 000000000..43ed0a554
--- /dev/null
+++ b/extra/gnome-disk-utility/gnome-disk-utility.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-games/03_missing_icons.patch b/extra/gnome-games/03_missing_icons.patch
new file mode 100644
index 000000000..c9bfe9be5
--- /dev/null
+++ b/extra/gnome-games/03_missing_icons.patch
@@ -0,0 +1,38 @@
+Index: gnome-games-2.30.2/libgames-support/games-stock.c
+===================================================================
+--- gnome-games-2.30.2.orig/libgames-support/games-stock.c 2010-07-04 11:33:16.880062363 +0200
++++ gnome-games-2.30.2/libgames-support/games-stock.c 2010-07-04 12:23:59.035567621 +0200
+@@ -282,15 +282,14 @@ games_stock_init (void)
+ #ifdef HAVE_GTK_ICON_FACTORY_ADD_ALIAS
+ { GAMES_STOCK_REDO_MOVE, GTK_STOCK_REDO },
+ { GAMES_STOCK_UNDO_MOVE, GTK_STOCK_UNDO },
++ { GAMES_STOCK_RESUME_GAME, GTK_STOCK_MEDIA_PLAY },
+ #endif
+ #ifndef HAVE_HILDON
+ { GAMES_STOCK_NETWORK_GAME, GTK_STOCK_NETWORK },
+ { GAMES_STOCK_NETWORK_LEAVE, GTK_STOCK_STOP },
+ { GAMES_STOCK_PLAYER_LIST, GTK_STOCK_INFO },
+
+- { GAMES_STOCK_PAUSE_GAME, "stock_timer_stopped" },
+- { GAMES_STOCK_RESUME_GAME, "stock_timer" },
+- { GAMES_STOCK_SCORES, "stock_scores" },
++ { GAMES_STOCK_PAUSE_GAME, GTK_STOCK_MEDIA_PAUSE },
+ #endif /* !HAVE_HILDON */
+ };
+
+@@ -298,6 +297,7 @@ games_stock_init (void)
+ const char *stock_icon_aliases_bidi[][3] = {
+ { GAMES_STOCK_REDO_MOVE, GTK_STOCK_REDO "-ltr", GTK_STOCK_REDO "-rtl" },
+ { GAMES_STOCK_UNDO_MOVE, GTK_STOCK_UNDO "-ltr", GTK_STOCK_UNDO "-rtl" },
++ { GAMES_STOCK_RESUME_GAME, GTK_STOCK_MEDIA_PLAY "-ltr", GTK_STOCK_MEDIA_PLAY "-rtl" },
+ };
+ #endif
+
+@@ -306,6 +306,7 @@ games_stock_init (void)
+ #ifndef HAVE_HILDON
+ { GAMES_STOCK_TELEPORT, "teleport" },
+ { GAMES_STOCK_RTELEPORT, "teleport-random" },
++ { GAMES_STOCK_SCORES, "scores" },
+ #endif /* !HAVE_HILDON */
+ { GAMES_STOCK_DEAL_CARDS, "cards-deal" }
+ };
diff --git a/extra/gnome-games/PKGBUILD b/extra/gnome-games/PKGBUILD
new file mode 100644
index 000000000..82a3b0221
--- /dev/null
+++ b/extra/gnome-games/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 105513 2011-01-10 10:03:28Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-games
+pkgver=2.32.1
+pkgrel=2
+pkgdesc="Some Games for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('pygtk' 'libsm' 'gconf>=2.32.0' 'guile>=1.8.7' 'filesystem>=2010.09' 'desktop-file-utils' 'libcanberra>=0.25' 'clutter-gtk>=0.10.8' 'hicolor-icon-theme' 'librsvg>=2.32.0' 'python-rsvg>=2.32.0' 'python2-gconf')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool' 'glproto' 'gobject-introspection')
+optdepends=('python-gtkglext: glchess 3D mode')
+provides=('glchess' 'gnome-sudoku')
+conflicts=('glchess' 'gnome-sudoku')
+options=('!emptydirs' '!libtool')
+install=gnome-games.install
+url="http://www.gnome.org"
+groups=('gnome-extra')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ 03_missing_icons.patch
+ scores.png)
+sha256sums=('1a3b2e82102eed3780f05db4378111c475456678deed82fd4ca379da1c5593d9'
+ '05d63319773e5389b87672a20b03c4c1e91a33fd1678b5e76335bf7e4daa46a6'
+ '2f818741bbf20fc83a68d71908de76f5f1b2b9e27691a4767aebf0e4a39fee85')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/03_missing_icons.patch"
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --disable-static \
+ --with-scores-user=root --with-scores-group=games \
+ --enable-introspection=yes \
+ --enable-omitgames=swell-foop,lightsoff
+ make
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ # Remove all scores, we generate them from postinstall
+ rm -rf "${pkgdir}/var"
+
+ sed -i "s|#!/usr/bin/python$|#!/usr/bin/python2|" \
+ $pkgdir/usr/lib/python2.7/site-packages/gnome_sudoku/{tracker_info,number_box}.py
+
+ sed -i "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $pkgdir/usr/bin/{gnome-sudoku,glchess}
+
+ install -m755 -d "${pkgdir}/usr/share/icons/hicolor/24x24/actions"
+ install -m644 "${srcdir}/scores.png" "${pkgdir}/usr/share/icons/hicolor/24x24/actions/"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-games ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-games/gnome-games.install b/extra/gnome-games/gnome-games.install
new file mode 100644
index 000000000..ac7091f45
--- /dev/null
+++ b/extra/gnome-games/gnome-games.install
@@ -0,0 +1,151 @@
+pkgname=gnome-games
+scores=(glines.Large.scores
+ glines.Medium.scores
+ glines.Small.scores
+ gnibbles.1.0.scores
+ gnibbles.1.1.scores
+ gnibbles.2.0.scores
+ gnibbles.2.1.scores
+ gnibbles.3.0.scores
+ gnibbles.3.1.scores
+ gnibbles.4.0.scores
+ gnibbles.4.1.scores
+ gnobots2.classic_robots-safe.scores
+ gnobots2.classic_robots-super-safe.scores
+ gnobots2.classic_robots.scores
+ gnobots2.nightmare-safe.scores
+ gnobots2.nightmare-super-safe.scores
+ gnobots2.nightmare.scores
+ gnobots2.robots2-safe.scores
+ gnobots2.robots2-super-safe.scores
+ gnobots2.robots2.scores
+ gnobots2.robots2_easy-safe.scores
+ gnobots2.robots2_easy-super-safe.scores
+ gnobots2.robots2_easy.scores
+ gnobots2.robots_with_safe_teleport-safe.scores
+ gnobots2.robots_with_safe_teleport-super-safe.scores
+ gnobots2.robots_with_safe_teleport.scores
+ gnomine.Custom.scores
+ gnomine.Large.scores
+ gnomine.Medium.scores
+ gnomine.Small.scores
+ gnotravex.2x2.scores
+ gnotravex.3x3.scores
+ gnotravex.4x4.scores
+ gnotravex.5x5.scores
+ gnotravex.6x6.scores
+ gnotski.1.scores
+ gnotski.10.scores
+ gnotski.11.scores
+ gnotski.12.scores
+ gnotski.13.scores
+ gnotski.14.scores
+ gnotski.15.scores
+ gnotski.16.scores
+ gnotski.17.scores
+ gnotski.18.scores
+ gnotski.19.scores
+ gnotski.2.scores
+ gnotski.20.scores
+ gnotski.21.scores
+ gnotski.22.scores
+ gnotski.23.scores
+ gnotski.24.scores
+ gnotski.25.scores
+ gnotski.26.scores
+ gnotski.27.scores
+ gnotski.28.scores
+ gnotski.29.scores
+ gnotski.3.scores
+ gnotski.30.scores
+ gnotski.31.scores
+ gnotski.32.scores
+ gnotski.33.scores
+ gnotski.34.scores
+ gnotski.35.scores
+ gnotski.36.scores
+ gnotski.37.scores
+ gnotski.4.scores
+ gnotski.5.scores
+ gnotski.6.scores
+ gnotski.7.scores
+ gnotski.8.scores
+ gnotski.9.scores
+ gtali.Colors.scores
+ gtali.Regular.scores
+ mahjongg.bridges.scores
+ mahjongg.cloud.scores
+ mahjongg.confounding.scores
+ mahjongg.difficult.scores
+ mahjongg.dragon.scores
+ mahjongg.easy.scores
+ mahjongg.pyramid.scores
+ mahjongg.tictactoe.scores
+ mahjongg.ziggurat.scores
+ swell-foop.Large.scores
+ swell-foop.Medium.scores
+ swell-foop.Small.scores
+ quadrapassel.scores)
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+
+ for sz in Large Medium Small; do
+ if [ -e "opt/gnome/var/games/same-gnome.${sz}.scores" ]; then
+ mv "opt/gnome/var/games/same-gnome.${sz}.scores" \
+ "var/games/swell-foop.${sz}.scores"
+ elif [ -e "var/games/same-gnome.${sz}.scores" ]; then
+ mv "var/games/same-gnome.${sz}.scores" \
+ "var/games/swell-foop.${sz}.scores"
+ fi
+ done
+ if [ -e "opt/gnome/var/games/gnometris.scores" ]; then
+ mv "opt/gnome/var/games/gnometris.scores" \
+ "var/games/quadrapassel.scores"
+ elif [ -e "var/games/gnometris.scores" ]; then
+ mv "var/games/gnometris.scores" \
+ "var/games/quadrapassel.scores"
+ fi
+
+ for score in "${scores[@]}" ; do
+ if [ -e "var/games/${score}" ]; then
+ continue
+ fi
+ if [ -e "opt/gnome/var/games/${score}" ]; then
+ mv "opt/gnome/var/games/${score}" var/games/
+ else
+ touch "var/games/${score}"
+ fi
+ chown root:games "var/games/${score}"
+ chmod 664 "var/games/${score}"
+ done
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+
+ if [ -f usr/share/ggz/gnect-client.dsc ]; then
+ ggz-config -r -m usr/share/ggz/gnect-client.dsc >& /dev/null
+ ggz-config -r -m usr/share/ggz/gnibbles-client.dsc >& /dev/null
+ ggz-config -r -m usr/share/ggz/iagno-client.dsc >& /dev/null
+ fi
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+
+ for score in "${scores[@]}" ; do
+ rm -f "var/games/${score}"
+ done
+}
diff --git a/extra/gnome-games/scores.png b/extra/gnome-games/scores.png
new file mode 100644
index 000000000..fb8ea036f
--- /dev/null
+++ b/extra/gnome-games/scores.png
Binary files differ
diff --git a/extra/gnome-keyring-sharp/02_gnome_2.30_compatibility.patch b/extra/gnome-keyring-sharp/02_gnome_2.30_compatibility.patch
new file mode 100644
index 000000000..8d61a862a
--- /dev/null
+++ b/extra/gnome-keyring-sharp/02_gnome_2.30_compatibility.patch
@@ -0,0 +1,1484 @@
+Description: Reimplement using libgnome-keyring
+ GNOME Keyring daemon in 2.30 no longer exports the socket interface which
+ gnome-keyring-sharp used. This makes gnome-keyring-sharp totally useless.
+ .
+ This patch reimplements the gnome-keyring-sharp functions as a p/invoke
+ wrapper around libgnome-keyring. API and ABI is unchanged.
+Author: Christopher Halse Rogers <christopher.halse.rogers@canonical.com>
+Bug-Launchpad: https://bugs.edge.launchpad.net/ubuntu/lucid/+source/gnome-keyring-sharp/+bug/536925
+Bug: https://bugzilla.novell.com/show_bug.cgi?id=589166
+
+diff -urNad gnome-keyring-sharp-1.0.0~/Makefile.am gnome-keyring-sharp-1.0.0/Makefile.am
+--- gnome-keyring-sharp-1.0.0~/Makefile.am 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/Makefile.am 2010-03-30 17:32:02.733918042 +1100
+@@ -1,3 +1,2 @@
+-SUBDIRS=src docs sample
++SUBDIRS=src gnome-keyring-sharp-glue docs sample
+ EXTRA_DIST=Gnome.Keyring.snk
+-
+diff -urNad gnome-keyring-sharp-1.0.0~/autogen.sh gnome-keyring-sharp-1.0.0/autogen.sh
+--- gnome-keyring-sharp-1.0.0~/autogen.sh 1970-01-01 10:00:00.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/autogen.sh 2010-03-30 17:32:02.733918042 +1100
+@@ -0,0 +1,4 @@
++#! /bin/sh
++
++autoreconf -v -i -s
++./configure $*
+\ No newline at end of file
+diff -urNad gnome-keyring-sharp-1.0.0~/configure.ac gnome-keyring-sharp-1.0.0/configure.ac
+--- gnome-keyring-sharp-1.0.0~/configure.ac 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/configure.ac 2010-03-30 17:32:02.733918042 +1100
+@@ -3,6 +3,9 @@
+ AC_INIT(src/Gnome.Keyring/Ring.cs)
+ AC_CANONICAL_SYSTEM
+
++AC_PROG_CC
++AC_PROG_LIBTOOL
++
+ API_VERSION=1.0
+ VERSION=$API_VERSION.0
+
+@@ -47,28 +50,13 @@
+ GACUTIL_FLAGS='/gacdir $(DESTDIR)$(prefix)'
+ AC_SUBST(GACUTIL_FLAGS)
+
+-#
+-# Use D-Bus as a fallback to get the keyring socket address
+-#
+-AC_ARG_ENABLE(dbus,
+- [ --enable-dbus[[=no/yes]] compile with D-Bus support [[default: yes]]],
+- ENABLE_DBUS="$enableval")
+-AM_CONDITIONAL(ENABLE_DBUS, test "x$ENABLE_DBUS" != "xno")
+-
+-CSFLAGS=
+-DBUS_LIBS=
+-if test "x$ENABLE_DBUS" != "xno" ; then
+- PKG_CHECK_MODULES(DBUS, ndesk-dbus-1.0 >= 0.4, HAVE_DBUS="yes", HAVE_DBUS="no")
+-
+- if test "x$HAVE_DBUS" = "xno"; then
+- AC_MSG_ERROR($DBUS_PKG_ERRORS: consider passing --enable-dbus=no to configure)
+- fi
++PKG_CHECK_MODULES(GLIB_SHARP, [glib-sharp-2.0])
++PKG_CHECK_MODULES(GNOME_KEYRING, [gnome-keyring-1])
+
+- CSFLAGS=" -d:WITH_DBUS "
+-fi
+ AC_SUBST(CSFLAGS)
+-AC_SUBST(DBUS_LIBS)
+-
++AC_SUBST(GLIB_SHARP_LIBS)
++AC_SUBST(GNOME_KEYRING_CFLAGS)
++AC_SUBST(GNOME_KEYRING_LIBS)
+
+ AC_PATH_PROG(MDASSEMBLER, mdassembler, no)
+ AC_PATH_PROG(MONODOCER, monodocer, no)
+@@ -91,6 +79,7 @@
+ src/gnome-keyring-sharp-1.0.pc
+ src/Gnome.Keyring/Makefile
+ src/Gnome.Keyring/AssemblyInfo.cs
++ gnome-keyring-sharp-glue/Makefile
+ docs/Makefile
+ sample/Makefile
+ ])
+diff -urNad gnome-keyring-sharp-1.0.0~/gnome-keyring-sharp-glue/Makefile.am gnome-keyring-sharp-1.0.0/gnome-keyring-sharp-glue/Makefile.am
+--- gnome-keyring-sharp-1.0.0~/gnome-keyring-sharp-glue/Makefile.am 1970-01-01 10:00:00.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/gnome-keyring-sharp-glue/Makefile.am 2010-03-30 17:32:02.733918042 +1100
+@@ -0,0 +1,6 @@
++lib_LTLIBRARIES = libgnome-keyring-sharp-glue.la
++
++libgnome_keyring_sharp_glue_la_SOURCES = glue.c
++libgnome_keyring_sharp_glue_la_LDFLAGS = -module -avoid-version -no-undefined
++libgnome_keyring_sharp_glue_la_LIBADD = $(GNOME_KEYRING_LIBS)
++libgnome_keyring_sharp_glue_la_CFLAGS = $(GNOME_KEYRING_CFLAGS)
+diff -urNad gnome-keyring-sharp-1.0.0~/gnome-keyring-sharp-glue/glue.c gnome-keyring-sharp-1.0.0/gnome-keyring-sharp-glue/glue.c
+--- gnome-keyring-sharp-1.0.0~/gnome-keyring-sharp-glue/glue.c 1970-01-01 10:00:00.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/gnome-keyring-sharp-glue/glue.c 2010-03-30 17:32:02.733918042 +1100
+@@ -0,0 +1,36 @@
++#include <gnome-keyring.h>
++
++gpointer gks_attribute_list_new ()
++{
++ return gnome_keyring_attribute_list_new ();
++}
++
++gint32 gks_item_attribute_list_get_length (GnomeKeyringAttributeList *attrs)
++{
++ return (*attrs).len;
++}
++
++gboolean gks_item_attribute_list_index_is_string (GnomeKeyringAttributeList *attrs, gint32 index)
++{
++ return gnome_keyring_attribute_list_index (attrs, index).type == GNOME_KEYRING_ATTRIBUTE_TYPE_STRING;
++}
++
++gboolean gks_item_attribute_list_index_is_uint32 (GnomeKeyringAttributeList *attrs, gint32 index)
++{
++ return gnome_keyring_attribute_list_index (attrs, index).type == GNOME_KEYRING_ATTRIBUTE_TYPE_UINT32;
++}
++
++char * gks_item_attribute_list_get_index_string (GnomeKeyringAttributeList *attrs, gint32 index)
++{
++ return gnome_keyring_attribute_list_index (attrs, index).value.string;
++}
++
++guint32 gks_item_attribute_list_get_index_uint32 (GnomeKeyringAttributeList *attrs, gint32 index)
++{
++ return gnome_keyring_attribute_list_index (attrs, index).value.integer;
++}
++
++char * gks_item_attribute_list_get_index_key (GnomeKeyringAttributeList *attrs, gint32 index)
++{
++ return gnome_keyring_attribute_list_index (attrs, index).name;
++}
+diff -urNad gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/Makefile.am gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/Makefile.am
+--- gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/Makefile.am 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/Makefile.am 2010-03-30 17:32:02.733918042 +1100
+@@ -10,8 +10,5 @@
+ KeyringInfo.cs \
+ NetItemData.cs \
+ NoteItemData.cs \
+- Operation.cs \
+- RequestMessage.cs \
+- ResponseMessage.cs \
+ ResultCode.cs \
+ Ring.cs
+diff -urNad gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/Operation.cs gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/Operation.cs
+--- gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/Operation.cs 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/Operation.cs 1970-01-01 10:00:00.000000000 +1000
+@@ -1,54 +0,0 @@
+-//
+-// Gnome.Keyring.Operation.cs
+-//
+-// Authors:
+-// Gonzalo Paniagua Javier (gonzalo@ximian.com)
+-//
+-// (C) Copyright 2006 Novell, Inc. (http://www.novell.com)
+-//
+-
+-// Permission is hereby granted, free of charge, to any person obtaining
+-// a copy of this software and associated documentation files (the
+-// "Software"), to deal in the Software without restriction, including
+-// without limitation the rights to use, copy, modify, merge, publish,
+-// distribute, sublicense, and/or sell copies of the Software, and to
+-// permit persons to whom the Software is furnished to do so, subject to
+-// the following conditions:
+-//
+-// The above copyright notice and this permission notice shall be
+-// included in all copies or substantial portions of the Software.
+-//
+-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-//
+-
+-namespace Gnome.Keyring {
+- enum Operation {
+- LockAll,
+- SetDefaultKeyring,
+- GetDefaultKeyring,
+- ListKeyrings,
+- CreateKeyring,
+- LockKeyring,
+- UnlockKeyring,
+- DeleteKeyring,
+- GetKeyringInfo,
+- SetKeyringInfo,
+- ListItems,
+- Find,
+- CreateItem,
+- DeleteItem,
+- GetItemInfo,
+- SetItemInfo,
+- GetItemAttributes,
+- SetItemAttributes,
+- GetItemACL,
+- SetItemACL
+- }
+-}
+-
+diff -urNad gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/RequestMessage.cs gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/RequestMessage.cs
+--- gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/RequestMessage.cs 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/RequestMessage.cs 1970-01-01 10:00:00.000000000 +1000
+@@ -1,173 +0,0 @@
+-//
+-// Gnome.Keyring.RequestMessage.cs
+-//
+-// Authors:
+-// Gonzalo Paniagua Javier (gonzalo@ximian.com)
+-//
+-// (C) Copyright 2006 Novell, Inc. (http://www.novell.com)
+-//
+-
+-// Permission is hereby granted, free of charge, to any person obtaining
+-// a copy of this software and associated documentation files (the
+-// "Software"), to deal in the Software without restriction, including
+-// without limitation the rights to use, copy, modify, merge, publish,
+-// distribute, sublicense, and/or sell copies of the Software, and to
+-// permit persons to whom the Software is furnished to do so, subject to
+-// the following conditions:
+-//
+-// The above copyright notice and this permission notice shall be
+-// included in all copies or substantial portions of the Software.
+-//
+-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-//
+-
+-using System;
+-using System.Collections;
+-using System.IO;
+-using System.Text;
+-
+-namespace Gnome.Keyring {
+- class RequestMessage {
+- MemoryStream stream = new MemoryStream ();
+- int op_start = -1;
+-
+- public MemoryStream Stream {
+- get { return stream; }
+- }
+-
+- public void CreateSimpleOperation (Operation op)
+- {
+- StartOperation (op);
+- EndOperation ();
+- }
+-
+- public void CreateSimpleOperation (Operation op, string str1)
+- {
+- StartOperation (op);
+- Write (str1);
+- EndOperation ();
+- }
+-
+- public void CreateSimpleOperation (Operation op, string str1, string str2)
+- {
+- StartOperation (op);
+- Write (str1);
+- Write (str2);
+- EndOperation ();
+- }
+-
+- public void CreateSimpleOperation (Operation op, string str1, int i1)
+- {
+- StartOperation (op);
+- Write (str1);
+- Write (i1);
+- EndOperation ();
+- }
+-
+- public void StartOperation (Operation op)
+- {
+- string appname = Ring.ApplicationName;
+- BinaryWriter writer = new BinaryWriter (stream);
+- writer.Write (0);
+-
+- Write (appname);
+- int curpos = (int) stream.Position;
+- stream.Position = 0;
+- writer = new BinaryWriter (stream);
+- writer.Write (SwapBytes (curpos));
+- stream.Position = curpos;
+-
+- op_start = (int) stream.Length;
+- writer.Write (0);
+- writer.Write (SwapBytes ((int) op));
+- }
+-
+- public void EndOperation ()
+- {
+- int current = (int) stream.Length;
+- int size = SwapBytes (current - op_start);
+- stream.Position = op_start;
+- BinaryWriter writer = new BinaryWriter (stream);
+- writer.Write (size);
+- }
+-
+- public void Write (string str)
+- {
+- WriteString (new BinaryWriter (stream), str);
+- }
+-
+- static void WriteString (BinaryWriter writer, string str)
+- {
+- if (str == null) {
+- writer.Write ((int) -1);
+- return;
+- }
+- byte [] bytes = Encoding.UTF8.GetBytes (str);
+- writer.Write (SwapBytes (bytes.Length));
+- writer.Write (bytes);
+- }
+-
+- public void Write (int i)
+- {
+- BinaryWriter writer = new BinaryWriter (stream);
+- writer.Write (SwapBytes (i));
+- }
+-
+- public void WriteAttributes (Hashtable atts)
+- {
+- Hashtable copy = new Hashtable ();
+- foreach (string key in atts.Keys) {
+- object o = atts [key];
+- if (o != null)
+- copy [key] = o;
+-
+- }
+- BinaryWriter writer = new BinaryWriter (stream);
+- writer.Write (SwapBytes (copy.Count));
+- foreach (string key in copy.Keys) {
+- object o = atts [key];
+- if (o is string) {
+- EncodeAttribute (writer, key, (string) o);
+- } else if (o is int) {
+- int i = (int) o;
+- if (key == "port" && i == 0)
+- continue;
+- EncodeAttribute (writer, key, i);
+- } else {
+- throw new Exception ("Should not happen.");
+- }
+- }
+- }
+-
+- static void EncodeAttribute (BinaryWriter writer, string name, string val)
+- {
+- WriteString (writer, name);
+- writer.Write (SwapBytes ((int) AttributeType.String));
+- WriteString (writer, val);
+- }
+-
+- static void EncodeAttribute (BinaryWriter writer, string name, int val)
+- {
+- WriteString (writer, name);
+- writer.Write (SwapBytes ((int) AttributeType.UInt32));
+- writer.Write (SwapBytes (val));
+- }
+-
+- static int SwapBytes (int i)
+- {
+- byte b0 = (byte) ((i >> 24) & 0xFF);
+- byte b1 = (byte) ((i >> 16) & 0xFF);
+- byte b2 = (byte) ((i >> 8) & 0xFF);
+- byte b3 = (byte) (i & 0xFF);
+- return b0 + (b1 << 8) + (b2 << 16) + (b3 << 24);
+- }
+-
+- }
+-}
+-
+diff -urNad gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/ResponseMessage.cs gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/ResponseMessage.cs
+--- gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/ResponseMessage.cs 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/ResponseMessage.cs 1970-01-01 10:00:00.000000000 +1000
+@@ -1,108 +0,0 @@
+-//
+-// Gnome.Keyring.ResponseMessage.cs
+-//
+-// Authors:
+-// Gonzalo Paniagua Javier (gonzalo@ximian.com)
+-//
+-// (C) Copyright 2006 Novell, Inc. (http://www.novell.com)
+-//
+-
+-// Permission is hereby granted, free of charge, to any person obtaining
+-// a copy of this software and associated documentation files (the
+-// "Software"), to deal in the Software without restriction, including
+-// without limitation the rights to use, copy, modify, merge, publish,
+-// distribute, sublicense, and/or sell copies of the Software, and to
+-// permit persons to whom the Software is furnished to do so, subject to
+-// the following conditions:
+-//
+-// The above copyright notice and this permission notice shall be
+-// included in all copies or substantial portions of the Software.
+-//
+-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-//
+-
+-using System;
+-using System.Collections;
+-using System.IO;
+-using System.Text;
+-
+-using Mono.Unix.Native;
+-
+-namespace Gnome.Keyring {
+- class ResponseMessage {
+- byte [] buffer;
+- MemoryStream stream;
+-
+- public ResponseMessage (byte [] buffer)
+- {
+- this.buffer = buffer;
+- stream = new MemoryStream (buffer);
+- }
+-
+- public bool DataAvailable {
+- get { return (stream.Position < stream.Length); }
+- }
+-
+- public string [] GetStringList ()
+- {
+- int nstrings = GetInt32 ();
+- string [] list = new string [nstrings];
+- for (int i = 0; i < nstrings; i++) {
+- list [i] = GetString ();
+- }
+-
+- return list;
+- }
+-
+- public string GetString ()
+- {
+- int len = GetInt32 ();
+- if (len == -1) {
+- return null;
+- }
+- int offset = (int) stream.Position;
+- string result = Encoding.UTF8.GetString (buffer, offset, len);
+- stream.Position += len;
+- return result;
+- }
+-
+- public int GetInt32 ()
+- {
+- byte b3 = (byte) stream.ReadByte ();
+- byte b2 = (byte) stream.ReadByte ();
+- byte b1 = (byte) stream.ReadByte ();
+- byte b0 = (byte) stream.ReadByte ();
+- return (b0 + (b1 << 8) + (b2 << 16) + (b3 << 24));
+- }
+-
+- public DateTime GetDateTime ()
+- {
+- return NativeConvert.FromTimeT ((GetInt32 () << 32) + GetInt32 ());
+- }
+-
+- public void ReadAttributes (Hashtable tbl)
+- {
+- int natts = GetInt32 ();
+- for (int i = 0; i < natts; i++) {
+- object val;
+- string name = GetString ();
+- AttributeType type = (AttributeType) GetInt32 ();
+- if (AttributeType.String == type) {
+- val = GetString ();
+- } else if (type == AttributeType.UInt32) {
+- val = GetInt32 ();
+- } else {
+- throw new Exception ("This should not happen: " + type);
+- }
+- tbl [name] = val;
+- }
+- }
+- }
+-}
+-
+diff -urNad gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/Ring.cs gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/Ring.cs
+--- gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring/Ring.cs 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/src/Gnome.Keyring/Ring.cs 2010-03-30 17:32:02.733918042 +1100
+@@ -31,16 +31,16 @@
+
+ using System;
+ using System.Collections;
++using System.Collections.Generic;
+ using System.IO;
+ using System.Net;
+ using System.Net.Sockets;
+ using System.Reflection;
++using System.Runtime.InteropServices;
+
+ using Mono.Unix;
+
+-#if WITH_DBUS
+-using NDesk.DBus;
+-#endif
++using GLib;
+
+ namespace Gnome.Keyring {
+ public class Ring {
+@@ -70,394 +70,579 @@
+ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern bool gnome_keyring_is_available ();
++
+ public static bool Available {
+ get {
+- Socket sock = Connect ();
+- if (sock != null) {
+- sock.Close ();
+- return true;
+- }
+- return false;
+- }
+- }
+-
+- static Socket Connect ()
+- {
+- string filename;
+- Socket sock;
+-
+- filename = Environment.GetEnvironmentVariable ("GNOME_KEYRING_SOCKET");
+- sock = Connect (filename);
+-
+-#if WITH_DBUS
+- if (sock == null) {
+- try {
+- filename = Bus.Session.GetObject<IDaemon> ("org.gnome.keyring", new ObjectPath ("/org/gnome/keyring/daemon")).GetSocketPath ();
+- } catch (Exception) {
+- filename = null;
+- }
+- sock = Connect (filename);
+- }
+-#endif
+-
+- return sock;
+- }
+-
+- static Socket Connect (string filename)
+- {
+- if (filename == null || filename == "")
+- return null;
+-
+- EndPoint ep = new UnixEndPoint (filename);
+- Socket sock = new Socket (AddressFamily.Unix, SocketType.Stream, ProtocolType.IP);
+- try {
+- sock.Connect (ep);
+- } catch (Exception) {
+- sock.Close ();
+- return null;
+- }
+- return sock;
+- }
+-
+- static int GetInt32 (Socket sock)
+- {
+- byte [] cuatro = new byte [4];
+- if (sock.Receive (cuatro) != 4)
+- throw new KeyringException (ResultCode.IOError);
+- return (cuatro [3] + (cuatro [2] << 8) + (cuatro [1] << 16) + (cuatro [0] << 24));
+- }
+-
+- static byte [] one = new byte [1];
+- static ResponseMessage SendRequest (MemoryStream stream)
+- {
+- Socket sock = Connect ();
+- if (sock == null)
+- throw new KeyringException (ResultCode.NoKeyringDaemon);
+-
+- try {
+- sock.Send (one); // Credentials byte
+- byte [] buffer = stream.ToArray ();
+- sock.Send (buffer);
+- int packet_size = GetInt32 (sock) - 4;
+- if (packet_size < 0)
+- throw new KeyringException (ResultCode.IOError);
+- byte [] response = new byte [packet_size];
+- int nbytes = sock.Receive (response);
+- if (nbytes != response.Length)
+- throw new KeyringException (ResultCode.IOError);
+- ResponseMessage resp = new ResponseMessage (response);
+- ResultCode result = (ResultCode) resp.GetInt32 ();
+- if (result != 0)
+- throw new KeyringException (result);
+-
+- return resp;
+- } finally {
+- sock.Close ();
++ return gnome_keyring_is_available ();
+ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_lock_all_sync ();
++
+ public static void LockAll ()
+ {
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.LockAll);
+- SendRequest (req.Stream);
++ ResultCode result = gnome_keyring_lock_all_sync ();
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_set_default_keyring_sync (string keyring);
++
+ public static void SetDefaultKeyring (string newKeyring)
+ {
+ if (newKeyring == null)
+ throw new ArgumentNullException ("newKeyring");
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.SetDefaultKeyring, newKeyring);
+- SendRequest (req.Stream);
++ ResultCode result = gnome_keyring_set_default_keyring_sync (newKeyring);
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_get_default_keyring_sync (out IntPtr keyring);
++
+ public static string GetDefaultKeyring ()
+ {
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.GetDefaultKeyring);
+- ResponseMessage resp = SendRequest (req.Stream);
+- return resp.GetString ();
++ IntPtr keyring_name;
++ ResultCode result = gnome_keyring_get_default_keyring_sync (out keyring_name);
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++ return GLib.Marshaller.PtrToStringGFree (keyring_name);
+ }
+
+- public static string [] GetKeyrings ()
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_list_keyring_names_sync (out IntPtr keyringList);
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_string_list_free (IntPtr stringList);
++
++ public static string[] GetKeyrings ()
+ {
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.ListKeyrings);
+- ResponseMessage resp = SendRequest (req.Stream);
+- return resp.GetStringList ();
++ IntPtr keyring_list;
++ ResultCode result = gnome_keyring_list_keyring_names_sync (out keyring_list);
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++ var retval = (string[])GLib.Marshaller.ListPtrToArray (keyring_list, typeof(GLib.List), false, false, typeof(string));
++ gnome_keyring_string_list_free (keyring_list);
++ return retval;
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_create_sync (string keyringName, string password);
++
+ public static void CreateKeyring (string name, string password)
+ {
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.CreateKeyring, name, password);
+- SendRequest (req.Stream);
++ ResultCode result = gnome_keyring_create_sync (name, password);
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+-
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_lock_sync (string keyring);
++
+ public static void Lock (string keyring)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.LockKeyring, keyring);
+- SendRequest (req.Stream);
++ ResultCode result = gnome_keyring_lock_sync (keyring);
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_unlock_sync (string keyring, string password);
+
+ public static void Unlock (string keyring, string password)
+ {
+- if (keyring == null)
+- throw new ArgumentNullException ("keyring");
+-
+- if (password == null)
+- throw new ArgumentNullException ("password");
+-
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.UnlockKeyring, keyring, password);
+- try {
+- SendRequest (req.Stream);
+- } catch (KeyringException ke) {
+- if (ke.ResultCode != ResultCode.AlreadyUnlocked)
+- throw;
++ ResultCode result = gnome_keyring_unlock_sync (keyring, password);
++
++ if (!(result == ResultCode.Ok || result == ResultCode.AlreadyUnlocked)) {
++ throw new KeyringException (result);
+ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_delete_sync (string keyring);
++
+ public static void DeleteKeyring (string keyring)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.DeleteKeyring, keyring);
+- SendRequest (req.Stream);
++ ResultCode result = gnome_keyring_delete_sync (keyring);
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+
+- public static int [] ListItemIDs (string keyring)
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_list_item_ids_sync (string keyring, out IntPtr ids);
++
++ public static int[] ListItemIDs (string keyring)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.ListItems, keyring);
+- ResponseMessage resp = SendRequest (req.Stream);
+- int len = resp.GetInt32 ();
+- int [] result = new int [len];
+- for (int i = 0; i < len; i++) {
+- result [i] = resp.GetInt32 ();
++ IntPtr idlist;
++ ResultCode result = gnome_keyring_list_item_ids_sync (keyring, out idlist);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
+ }
+-
+- return result;
++
++ IntPtr[] ptrArray = (IntPtr[])GLib.Marshaller.ListPtrToArray (idlist, typeof(GLib.List), true, false, typeof(IntPtr));
++ int[] ids = new int[ptrArray.Length];
++ for (int i = 0; i < ptrArray.Length; i++) {
++ ids[i] = ptrArray[i].ToInt32 ();
++ }
++
++ return ids;
+ }
+
++
++ static void NativeListFromAttributes (IntPtr attrList, Hashtable attributes)
++ {
++ foreach (string key in attributes.Keys) {
++ if (attributes[key] is string) {
++ gnome_keyring_attribute_list_append_string (attrList, key, (string)attributes[key]);
++ } else if (attributes[key] is int) {
++ gnome_keyring_attribute_list_append_uint32 (attrList, key, (uint)((int)attributes[key]));
++ } else {
++ throw new ArgumentException (String.Format ("Attribute \"{0}\" has invalid parameter type: {1}", key, attributes[key].GetType ()));
++ }
++ }
++ }
++
++ static void AttributesFromNativeList (IntPtr attrList, Hashtable attributes)
++ {
++ int listLength = gks_item_attribute_list_get_length (attrList);
++ for (int i = 0; i < listLength; i++) {
++ string key = Marshal.PtrToStringAnsi (gks_item_attribute_list_get_index_key (attrList, i));
++ if (gks_item_attribute_list_index_is_string (attrList, i)) {
++ attributes[key] = Marshal.PtrToStringAnsi (gks_item_attribute_list_get_index_string (attrList, i));
++ } else if (gks_item_attribute_list_index_is_uint32 (attrList, i)) {
++ attributes[key] = (int)gks_item_attribute_list_get_index_uint32 (attrList, i);
++ }
++ }
++ }
++
++ [StructLayout(LayoutKind.Sequential)]
++ struct GnomeKeyringFound
++ {
++ public IntPtr keyring;
++ public UInt32 item_id;
++ public IntPtr attrList;
++ public IntPtr secret;
++ }
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_find_items_sync (ItemType type, IntPtr attrList, out IntPtr foundList);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_found_list_free (IntPtr foundList);
++
+ static ItemData [] empty_item_data = new ItemData [0];
+- public static ItemData [] Find (ItemType type, Hashtable atts)
++ public static ItemData[] Find (ItemType type, Hashtable atts)
+ {
+ if (atts == null)
+ throw new ArgumentNullException ("atts");
+- RequestMessage req = new RequestMessage ();
+- req.StartOperation (Operation.Find);
+- req.Write ((int) type);
+- req.WriteAttributes (atts);
+- req.EndOperation ();
+-
+- ResponseMessage resp = null;
+- try {
+- resp = SendRequest (req.Stream);
+- } catch (KeyringException ke) {
+- if (ke.ResultCode == ResultCode.Denied)
+- return empty_item_data;
+- throw;
++
++ IntPtr passwordList;
++ IntPtr attrList = gks_attribute_list_new ();
++
++ NativeListFromAttributes (attrList, atts);
++
++ ResultCode result = gnome_keyring_find_items_sync (type, attrList, out passwordList);
++
++ if (result == ResultCode.Denied) {
++ return empty_item_data;
++ }
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++
++ IntPtr[] passwordStructs = (IntPtr[])GLib.Marshaller.ListPtrToArray (passwordList, typeof(GLib.List), false, false, typeof(IntPtr));
++ List<GnomeKeyringFound> passwords = new List<GnomeKeyringFound> ();
++
++ foreach (IntPtr ptr in passwordStructs) {
++ passwords.Add ((GnomeKeyringFound)Marshal.PtrToStructure (ptr, typeof(GnomeKeyringFound)));
+ }
+
+ ArrayList list = new ArrayList ();
+- while (resp.DataAvailable) {
++ foreach (var password in passwords) {
+ ItemData found = ItemData.GetInstanceFromItemType (type);
+- found.Keyring = resp.GetString ();
+- found.ItemID = resp.GetInt32 ();
+- found.Secret = resp.GetString ();
++ found.ItemID = (int)password.item_id;
++ found.Secret = Marshal.PtrToStringAnsi (password.secret);
++ found.Keyring = Marshal.PtrToStringAnsi (password.keyring);
+ found.Attributes = new Hashtable ();
+- resp.ReadAttributes (found.Attributes);
++ AttributesFromNativeList (password.attrList, found.Attributes);
+ found.SetValuesFromAttributes ();
+ list.Add (found);
+ }
+
++ gnome_keyring_found_list_free (passwordList);
++ gnome_keyring_attribute_list_free (attrList);
++
+ return (ItemData []) list.ToArray (typeof (ItemData));
+ }
+
++ [StructLayout (LayoutKind.Sequential)]
++ struct GnomeKeyringNetworkPasswordData
++ {
++ public IntPtr keyring;
++ public UInt32 item_id;
++
++ public IntPtr protocol;
++ public IntPtr server;
++ public IntPtr @object;
++ public IntPtr authtype;
++ public UInt32 port;
++
++ public IntPtr user;
++ public IntPtr domain;
++ public IntPtr password;
++ }
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_find_network_password_sync (string user, string domain, string server,
++ string @object, string protocol, string authtype, UInt32 port, out IntPtr passwordList);
++
+ static NetItemData [] empty_net_item_data = new NetItemData [0];
+- public static NetItemData [] FindNetworkPassword (string user, string domain, string server, string obj,
++ public static NetItemData[] FindNetworkPassword (string user, string domain, string server, string obj,
+ string protocol, string authtype, int port)
+ {
+- RequestMessage req = new RequestMessage ();
+- req.StartOperation (Operation.Find);
+- req.Write ((int) ItemType.NetworkPassword);
+- Hashtable tbl = new Hashtable ();
+- tbl ["user"] = user;
+- tbl ["domain"] = domain;
+- tbl ["server"] = server;
+- tbl ["object"] = obj;
+- tbl ["protocol"] = protocol;
+- tbl ["authtype"] = authtype;
+- if (port != 0)
+- tbl ["port"] = port;
+- req.WriteAttributes (tbl);
+- req.EndOperation ();
+-
+- ResponseMessage resp = null;
+- try {
+- resp = SendRequest (req.Stream);
+- } catch (KeyringException ke) {
+- if (ke.ResultCode == ResultCode.Denied)
+- return empty_net_item_data;
+- throw;
++ IntPtr passwordList;
++
++ ResultCode result = gnome_keyring_find_network_password_sync (user, domain, server, obj, protocol, authtype, (uint)port, out passwordList);
++
++ if (result == ResultCode.Denied) {
++ return empty_net_item_data;
++ }
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
+ }
++
++ IntPtr[] passwordStructs = (IntPtr[])GLib.Marshaller.ListPtrToArray (passwordList, typeof(GLib.List), false, false, typeof(IntPtr));
++ List<GnomeKeyringNetworkPasswordData> passwords = new List<GnomeKeyringNetworkPasswordData> ();
++
++ foreach (IntPtr ptr in passwordStructs) {
++ passwords.Add ((GnomeKeyringNetworkPasswordData)Marshal.PtrToStructure (ptr, typeof(GnomeKeyringNetworkPasswordData)));
++ }
++
+ ArrayList list = new ArrayList ();
+- while (resp.DataAvailable) {
++ foreach (var password in passwords) {
+ NetItemData found = new NetItemData ();
+- found.Keyring = resp.GetString ();
+- found.ItemID = resp.GetInt32 ();
+- found.Secret = resp.GetString ();
++ found.Keyring = Marshal.PtrToStringAnsi (password.keyring);
++ found.ItemID = (int)password.item_id;
++ found.Secret = Marshal.PtrToStringAnsi (password.password);
+ found.Attributes = new Hashtable ();
+- resp.ReadAttributes (found.Attributes);
++
++ SetAttributeIfNonNull (found.Attributes, "protocol", password.protocol);
++ SetAttributeIfNonNull (found.Attributes, "server", password.server);
++ SetAttributeIfNonNull (found.Attributes, "object", password.@object);
++ SetAttributeIfNonNull (found.Attributes, "authtype", password.authtype);
++ SetAttributeIfNonNull (found.Attributes, "user", password.user);
++ SetAttributeIfNonNull (found.Attributes, "domain", password.domain);
++
++ if (password.port != 0) {
++ found.Attributes["port"] = (int)password.port;
++ }
++
+ found.SetValuesFromAttributes ();
+ list.Add (found);
+ }
+
+ return (NetItemData []) list.ToArray (typeof (NetItemData));
+ }
++
++ static void SetAttributeIfNonNull (Hashtable attrs, string key, IntPtr maybeString)
++ {
++ if (maybeString != IntPtr.Zero) {
++ attrs[key] = Marshal.PtrToStringAnsi (maybeString);
++ }
++ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_item_create_sync (string keyring,
++ ItemType type,
++ string displayName,
++ IntPtr attributes,
++ IntPtr secret,
++ bool updateIfExists,
++ out UInt32 itemId);
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_memory_strdup (string str);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_memory_free (IntPtr str);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_attribute_list_append_string (IntPtr attributes, string name, string val);
++ [DllImport("libgnome-keyring.dll")]
++ static extern void gnome_keyring_attribute_list_append_uint32 (IntPtr attributes, string name, UInt32 val);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_attribute_list_free (IntPtr attributes);
++ [DllImport ("gnome-keyring-sharp-glue.dll")]
++ static extern IntPtr gks_attribute_list_new ();
++
+ public static int CreateItem (string keyring, ItemType type, string displayName, Hashtable attributes,
+ string secret, bool updateIfExists)
+ {
+- RequestMessage req = new RequestMessage ();
+- req.StartOperation (Operation.CreateItem);
+- req.Write (keyring);
+- req.Write (displayName);
+- req.Write (secret);
+- req.WriteAttributes (attributes);
+- req.Write ((int) type);
+- req.Write (updateIfExists ? 1 : 0);
+- req.EndOperation ();
+- ResponseMessage resp = SendRequest (req.Stream);
+- return resp.GetInt32 ();
++ uint id;
++ IntPtr secure_secret = gnome_keyring_memory_strdup (secret);
++ IntPtr attrs = gks_attribute_list_new ();
++
++ NativeListFromAttributes (attrs, attributes);
++
++ ResultCode result = gnome_keyring_item_create_sync (keyring, type, displayName, attrs, secure_secret, updateIfExists, out id);
++
++ gnome_keyring_attribute_list_free (attrs);
++ gnome_keyring_memory_free (secure_secret);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++
++ return (int)id;
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_item_delete_sync (string keyring, UInt32 id);
++
+ public static void DeleteItem (string keyring, int id)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.DeleteItem, keyring, id);
+- SendRequest (req.Stream);
++ ResultCode result = gnome_keyring_item_delete_sync (keyring, (uint)id);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_set_network_password_sync (string keyring,
++ string user,
++ string domain,
++ string server,
++ string @object,
++ string protocol,
++ string authType,
++ UInt32 port,
++ string password,
++ out UInt32 id);
++
+ public static int CreateOrModifyNetworkPassword (string keyring, string user, string domain, string server, string obj,
+ string protocol, string authtype, int port, string password)
+ {
+- Hashtable tbl = new Hashtable ();
+- tbl ["user"] = user;
+- tbl ["domain"] = domain;
+- tbl ["server"] = server;
+- tbl ["object"] = obj;
+- tbl ["protocol"] = protocol;
+- tbl ["authtype"] = authtype;
+- if (port != 0)
+- tbl ["port"] = port;
+-
+- string display_name;
+- if (port != 0)
+- display_name = String.Format ("{0}@{1}:{3}/{2}", user, server, obj, port);
+- else
+- display_name = String.Format ("{0}@{1}/{2}", user, server, obj);
+-
+- return CreateItem (keyring, ItemType.NetworkPassword, display_name, tbl, password, true);
++ uint id;
++ ResultCode result = gnome_keyring_set_network_password_sync (keyring, user, domain, server, obj, protocol, authtype, (uint)port, password, out id);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++
++ return (int)id;
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_item_get_info_sync (string keyring, UInt32 id, out IntPtr itemInfo);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ItemType gnome_keyring_item_info_get_type (IntPtr itemInfo);
++ [DllImport("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_item_info_get_ctime (IntPtr itemInfo);
++ [DllImport("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_item_info_get_mtime (IntPtr itemInfo);
++ [DllImport("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_item_info_get_display_name (IntPtr itemInfo);
++ [DllImport("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_item_info_get_secret (IntPtr itemInfo);
++ [DllImport("libgnome-keyring.dll")]
++ static extern void gnome_keyring_item_info_free (IntPtr itemInfo);
++
+ public static ItemData GetItemInfo (string keyring, int id)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.GetItemInfo, keyring, id);
+- ResponseMessage resp = SendRequest (req.Stream);
+- ItemType itype = (ItemType) resp.GetInt32 ();
+- ItemData item = ItemData.GetInstanceFromItemType (itype);
+- string name = resp.GetString ();
+- string secret = resp.GetString ();
+- DateTime mtime = resp.GetDateTime ();
+- DateTime ctime = resp.GetDateTime ();
++ IntPtr itemInfo;
++
++ ResultCode result = gnome_keyring_item_get_info_sync (keyring, (uint)id, out itemInfo);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++
++ ItemData item = ItemData.GetInstanceFromItemType (gnome_keyring_item_info_get_type (itemInfo));
++ item.Attributes = new Hashtable ();
++ item.Attributes["keyring_ctime"] = GLib.Marshaller.time_tToDateTime (gnome_keyring_item_info_get_ctime (itemInfo));
++ item.Attributes["keyring_mtime"] = GLib.Marshaller.time_tToDateTime (gnome_keyring_item_info_get_mtime (itemInfo));
++ item.Attributes["name"] = Marshal.PtrToStringAnsi (gnome_keyring_item_info_get_display_name (itemInfo));
++
+ item.Keyring = keyring;
+ item.ItemID = id;
+- item.Secret = secret;
+- Hashtable tbl = new Hashtable ();
+- tbl ["name"] = name;
+- tbl ["keyring_ctime"] = ctime;
+- tbl ["keyring_mtime"] = mtime;
+- item.Attributes = tbl;
++ item.Secret = Marshal.PtrToStringAnsi (gnome_keyring_item_info_get_secret (itemInfo));
++
+ item.SetValuesFromAttributes ();
++
++ gnome_keyring_item_info_free (itemInfo);
++
+ return item;
+ }
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_item_set_info_sync (string keyring, UInt32 id, IntPtr itemInfo);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_item_info_new ();
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_item_info_set_display_name (IntPtr itemInfo, string displayName);
++ [DllImport("libgnome-keyring.dll")]
++ static extern void gnome_keyring_item_info_set_type (IntPtr itemInfo, ItemType type);
++ [DllImport("libgnome-keyring.dll")]
++ static extern void gnome_keyring_item_info_set_secret (IntPtr itemInfo, string secret);
+
+ public static void SetItemInfo (string keyring, int id, ItemType type, string displayName, string secret)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.StartOperation (Operation.SetItemInfo);
+- req.Write (keyring);
+- req.Write (id);
+- req.Write ((int) type);
+- req.Write (displayName);
+- req.Write (secret);
+- req.EndOperation ();
+- SendRequest (req.Stream);
++ IntPtr itemInfo = gnome_keyring_item_info_new ();
++ gnome_keyring_item_info_set_display_name (itemInfo, displayName);
++ gnome_keyring_item_info_set_type (itemInfo, type);
++ gnome_keyring_item_info_set_secret (itemInfo, secret);
++
++ ResultCode result = gnome_keyring_item_set_info_sync (keyring, (uint)id, itemInfo);
++
++ gnome_keyring_item_info_free (itemInfo);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_item_get_attributes_sync (string keyring, UInt32 id, out IntPtr attributes);
++ [DllImport ("gnome-keyring-sharp-glue.dll")]
++ static extern int gks_item_attribute_list_get_length (IntPtr attrList);
++ [DllImport ("gnome-keyring-sharp-glue.dll")]
++ static extern bool gks_item_attribute_list_index_is_string (IntPtr attrList, int index);
++ [DllImport("gnome-keyring-sharp-glue.dll")]
++ static extern bool gks_item_attribute_list_index_is_uint32 (IntPtr attrList, int index);
++ [DllImport ("gnome-keyring-sharp-glue.dll")]
++ static extern IntPtr gks_item_attribute_list_get_index_string (IntPtr attrList, int index);
++ [DllImport ("gnome-keyring-sharp-glue.dll")]
++ static extern UInt32 gks_item_attribute_list_get_index_uint32 (IntPtr attrList, int index);
++ [DllImport ("gnome-keyring-sharp-glue.dll")]
++ static extern IntPtr gks_item_attribute_list_get_index_key (IntPtr attrList, int index);
++
+ public static Hashtable GetItemAttributes (string keyring, int id)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.GetItemAttributes, keyring, id);
+- ResponseMessage resp = SendRequest (req.Stream);
+- Hashtable tbl = new Hashtable ();
+- resp.ReadAttributes (tbl);
+- return tbl;
++ IntPtr attributes;
++ Hashtable retVal = new Hashtable ();
++
++ ResultCode result = gnome_keyring_item_get_attributes_sync (keyring, (uint)id, out attributes);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++
++ AttributesFromNativeList (attributes, retVal);
++
++ gnome_keyring_attribute_list_free (attributes);
++
++ return retVal;
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_item_set_attributes_sync (string keyring, UInt32 id, IntPtr attrList);
++
+ public static void SetItemAttributes (string keyring, int id, Hashtable atts)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.StartOperation (Operation.SetItemAttributes);
+- req.Write (keyring);
+- req.Write (id);
+- req.WriteAttributes (atts);
+- req.EndOperation ();
+- SendRequest (req.Stream);
++ IntPtr attrList = gks_attribute_list_new ();
++ foreach (string key in atts.Keys) {
++ if (atts[key] is string) {
++ gnome_keyring_attribute_list_append_string (attrList, key, (string)atts[key]);
++ } else if (atts[key] is int) {
++ gnome_keyring_attribute_list_append_uint32 (attrList, key, (uint)((int)atts[key]));
++ } else {
++ throw new ArgumentException (String.Format ("Attribute \"{0}\" has invalid parameter type: {1}", key, atts[key].GetType ()));
++ }
++ }
++
++ ResultCode result = gnome_keyring_item_set_attributes_sync (keyring, (uint)id, attrList);
++
++ gnome_keyring_attribute_list_free (attrList);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_get_info_sync (string keyringName, out IntPtr keyringInfo);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_info_free (IntPtr keyringInfo);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_info_get_ctime (IntPtr keyringInfo);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern IntPtr gnome_keyring_info_get_mtime (IntPtr keyringInfo);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern int gnome_keyring_info_get_lock_timeout (IntPtr keyringInfo);
++ [DllImport("libgnome-keyring.dll")]
++ static extern bool gnome_keyring_info_get_is_locked (IntPtr keyringInfo);
++ [DllImport("libgnome-keyring.dll")]
++ static extern bool gnome_keyring_info_get_lock_on_idle (IntPtr keyringInfo);
++
+ public static KeyringInfo GetKeyringInfo (string keyring)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.GetKeyringInfo, keyring);
+- ResponseMessage resp = SendRequest (req.Stream);
+- return new KeyringInfo (keyring, (resp.GetInt32 () != 0),
+- resp.GetInt32 (),
+- resp.GetDateTime (),
+- resp.GetDateTime (),
+- (resp.GetInt32 () != 0));
++ IntPtr keyring_info = IntPtr.Zero;
++ ResultCode result = gnome_keyring_get_info_sync (keyring, out keyring_info);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++
++ DateTime ctime = GLib.Marshaller.time_tToDateTime (gnome_keyring_info_get_ctime (keyring_info));
++ DateTime mtime = GLib.Marshaller.time_tToDateTime (gnome_keyring_info_get_mtime (keyring_info));
++ KeyringInfo retval = new KeyringInfo (keyring,
++ gnome_keyring_info_get_lock_on_idle (keyring_info),
++ gnome_keyring_info_get_lock_timeout (keyring_info),
++ mtime,
++ ctime,
++ gnome_keyring_info_get_is_locked (keyring_info)
++ );
++
++
++ gnome_keyring_info_free (keyring_info);
++ return retval;
+ }
++
++ [DllImport ("libgnome-keyring.dll")]
++ static extern ResultCode gnome_keyring_set_info_sync (string keyring, IntPtr keyringInfo);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_info_set_lock_timeout (IntPtr keyringInfo, UInt32 timeout);
++ [DllImport ("libgnome-keyring.dll")]
++ static extern void gnome_keyring_info_set_lock_on_idle (IntPtr keyringInfo, bool lockOnIdle);
+
+ public static void SetKeyringInfo (string keyring, KeyringInfo info)
+ {
+@@ -467,41 +652,47 @@
+ if (info == null)
+ throw new ArgumentNullException ("info");
+
+- RequestMessage req = new RequestMessage ();
+- req.StartOperation (Operation.SetKeyringInfo);
+- req.Write (keyring);
+- req.Write (info.LockOnIdle ? 1 : 0);
+- req.Write (info.LockTimeoutSeconds);
+- req.EndOperation ();
+- SendRequest (req.Stream);
++
++ IntPtr keyring_info;
++ ResultCode result = gnome_keyring_get_info_sync (keyring, out keyring_info);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
++
++ gnome_keyring_info_set_lock_timeout (keyring_info, (uint)info.LockTimeoutSeconds);
++ gnome_keyring_info_set_lock_on_idle (keyring_info, info.LockOnIdle);
++
++ result = gnome_keyring_set_info_sync (keyring, keyring_info);
++
++ gnome_keyring_info_free (keyring_info);
++
++ if (result != ResultCode.Ok) {
++ throw new KeyringException (result);
++ }
+ }
+
++ [Obsolete ("Item ACLs are deprecated. GetItemACL never returns any ACLs")]
+ public static ArrayList GetItemACL (string keyring, int id)
+ {
+ if (keyring == null)
+ throw new ArgumentNullException ("keyring");
+
+- RequestMessage req = new RequestMessage ();
+- req.CreateSimpleOperation (Operation.GetItemACL, keyring, id);
+- ResponseMessage resp = SendRequest (req.Stream);
+- int count = resp.GetInt32 ();
+- ArrayList list = new ArrayList (count);
+- for (int i = 0; i < count; i++) {
+- list.Add (new ItemACL (resp.GetString (), resp.GetString (), (AccessRights) resp.GetInt32 ()));
+- }
+- return list;
++ return new ArrayList ();
+ }
+
++ [Obsolete("Item ACLs are deprecated. SetItemACL has no effect.")]
+ public static void SetItemACL (string keyring, int id, ICollection acls)
+ {
+ if (acls == null)
+ throw new ArgumentNullException ("acls");
+
+- ItemACL [] arr = new ItemACL [acls.Count];
++ ItemACL[] arr = new ItemACL[acls.Count];
+ acls.CopyTo (arr, 0);
+ SetItemACL (keyring, id, arr);
+ }
+-
++
++ [Obsolete("Item ACLs are deprecated. SetItemACL has no effect.")]
+ public static void SetItemACL (string keyring, int id, ItemACL [] acls)
+ {
+ if (keyring == null)
+@@ -512,28 +703,6 @@
+
+ if (acls.Length == 0)
+ throw new ArgumentException ("Empty ACL set.", "acls");
+-
+- RequestMessage req = new RequestMessage ();
+- req.StartOperation (Operation.SetItemACL);
+- req.Write (keyring);
+- req.Write (id);
+- req.Write (acls.Length);
+- foreach (ItemACL acl in acls) {
+- req.Write (acl.DisplayName);
+- req.Write (acl.FullPath);
+- req.Write ((int) acl.Access);
+- }
+- req.EndOperation ();
+- SendRequest (req.Stream);
+ }
+ }
+-
+-#if WITH_DBUS
+- [Interface ("org.gnome.keyring.Daemon")]
+- interface IDaemon
+- {
+- string GetSocketPath ();
+- }
+-#endif
+ }
+-
+diff -urNad gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring.dll.config gnome-keyring-sharp-1.0.0/src/Gnome.Keyring.dll.config
+--- gnome-keyring-sharp-1.0.0~/src/Gnome.Keyring.dll.config 1970-01-01 10:00:00.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/src/Gnome.Keyring.dll.config 2010-03-30 17:34:12.346423305 +1100
+@@ -0,0 +1,4 @@
++<configuration>
++ <dllmap dll="libgnome-keyring.dll" target="libgnome-keyring.so.0"/>
++ <dllmap dll="gnome-keyring-sharp-glue.dll" target="libgnome-keyring-sharp-glue.so"/>
++</configuration>
+diff -urNad gnome-keyring-sharp-1.0.0~/src/Makefile.am gnome-keyring-sharp-1.0.0/src/Makefile.am
+--- gnome-keyring-sharp-1.0.0~/src/Makefile.am 2008-08-09 03:36:12.000000000 +1000
++++ gnome-keyring-sharp-1.0.0/src/Makefile.am 2010-03-30 17:32:02.733918042 +1100
+@@ -5,13 +5,13 @@
+ SNK=$(ASSEMBLY_NAME).snk
+
+ pkgconfigdir=$(libdir)/pkgconfig
+-CSFLAGS+= -debug+ -debug:full -nologo -r:Mono.Posix.dll
++CSFLAGS += -debug+ -debug:full -nologo -r:Mono.Posix.dll
+
+ pkgconfig_DATA = gnome-keyring-sharp-1.0.pc
+
+-CLEANFILES = $(ASSEMBLY_NAME).*
++CLEANFILES = $(ASSEMBLY_NAME).dll $(ASSEMBLY_NAME).dll.mdb $(ASSEMBLY_NAME).snk
+
+-gnomekeyring_references = $(DBUS_LIBS)
++gnomekeyring_references = $(GLIB_SHARP_LIBS)
+
+ gnomekeyring_sources = \
+ Gnome.Keyring/AccessRights.cs \
+@@ -24,9 +24,6 @@
+ Gnome.Keyring/KeyringInfo.cs \
+ Gnome.Keyring/NetItemData.cs \
+ Gnome.Keyring/NoteItemData.cs \
+- Gnome.Keyring/Operation.cs \
+- Gnome.Keyring/RequestMessage.cs \
+- Gnome.Keyring/ResponseMessage.cs \
+ Gnome.Keyring/ResultCode.cs \
+ Gnome.Keyring/Ring.cs
+
+@@ -50,3 +47,4 @@
+ echo "$(GACUTIL) /u $(ASSEMBLY_NAME) $(GACUTIL_FLAGS)"; \
+ $(GACUTIL) /u $(ASSEMBLY_NAME) /package $(PACKAGE)-$(API_VERSION) $(GACUTIL_FLAGS) || exit 1;
+
++EXTRA_DIST=Gnome.Keyring.dll.config
diff --git a/extra/gnome-keyring-sharp/PKGBUILD b/extra/gnome-keyring-sharp/PKGBUILD
new file mode 100644
index 000000000..e8d024129
--- /dev/null
+++ b/extra/gnome-keyring-sharp/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 104610 2011-01-04 16:15:34Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gnome-keyring-sharp
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="A fully managed implementation of libgnome-keyring"
+arch=('i686' 'x86_64')
+url="http://www.mono-project.com/Libraries"
+license=('custom')
+depends=('ndesk-dbus>=0.4' 'libgnome-keyring')
+makedepends=('gtk-sharp-2')
+replaces=('gnome-keyring-sharp-svn')
+source=(http://www.go-mono.com/archive/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+options=('!makeflags')
+md5sums=('f9a48319f3fe6123017b000d714d68b1')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wapi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${MONO_SHARED_DIR}"
+ ln -sf gnome-keyring-sharp-1.0.pc "${pkgdir}/usr/lib/pkgconfig/gnome-keyring-sharp.pc"
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/license
+}
diff --git a/extra/gnome-keyring/PKGBUILD b/extra/gnome-keyring/PKGBUILD
new file mode 100644
index 000000000..5da3d2855
--- /dev/null
+++ b/extra/gnome-keyring/PKGBUILD
@@ -0,0 +1,28 @@
+#$Id: PKGBUILD 97123 2010-10-26 16:27:27Z ibiru $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gnome-keyring
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="GNOME Password Management daemon"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk2>=2.22.0' 'dconf')
+makedepends=('intltool' 'pkgconfig' 'python2')
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gnome-keyring.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('31fecec1430a97f59a6159a5a2ea8d6a1b44287f1e9e595b3594df46bf7f18f9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-keyring \
+ --with-pam-dir=/lib/security --with-root-certs=/etc/ssl/certs \
+ --disable-schemas-compile
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-keyring/gnome-keyring.install b/extra/gnome-keyring/gnome-keyring.install
new file mode 100644
index 000000000..e5204bcab
--- /dev/null
+++ b/extra/gnome-keyring/gnome-keyring.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/gnome-mag/PKGBUILD b/extra/gnome-mag/PKGBUILD
new file mode 100644
index 000000000..eb14dcf95
--- /dev/null
+++ b/extra/gnome-mag/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 74622 2010-03-31 19:18:45Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-mag
+pkgver=0.16.1
+pkgrel=1
+pkgdesc="Gnome magnifier"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnome.org"
+depends=('at-spi>=1.30.0')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool')
+groups=('gnome-extra')
+source=(http://ftp.gnome.org/pub/gnome/sources/gnome-mag/0.16/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('92541c30a70a6cf59ec3fb3f46d27a598173984f786f7c6bc1bd3e4be65ad3fa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-media/PKGBUILD b/extra/gnome-media/PKGBUILD
new file mode 100644
index 000000000..66e8ef31c
--- /dev/null
+++ b/extra/gnome-media/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 104482 2011-01-03 16:03:30Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gnome-media
+pkgname=(gnome-media gnome-media-pulse)
+pkgver=2.32.0
+pkgrel=3
+pkgdesc="GNOME Media Tools"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gstreamer0.10-good-plugins>=0.10.24' 'gstreamer0.10-base-plugins>=0.10.30' 'libcanberra>=0.25' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.1' 'libunique>=1.1.6' 'libpulse')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+install=gnome-media.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2
+ gnome_volume_control_fix_channel_bars.patch)
+sha256sums=('2b0ad4decd75406398f46e82a170e53bcbc6e1bdc3363f03a07b00f59c2fe5e6'
+ '51e59fb42114d70118f4b750a06a33e0e40b0a03ed6509dc1348c641cc274d74' )
+
+build() {
+ cd "${srcdir}"
+ patch -Np0 -i "${srcdir}/gnome_volume_control_fix_channel_bars.patch"
+ cp -a "${pkgbase}-${pkgver}"{,-pulse}
+
+ cd "${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-media \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --disable-pulseaudio
+ make
+
+ cd "${srcdir}/${pkgbase}-${pkgver}-pulse"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-media \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --enable-pulseaudio
+ make
+}
+
+_commonpackage() {
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgbase}.schemas" --domain gnome-media-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ # remove it from Xfce menu that ships its own thingy
+ echo "NotShowIn=XFCE" >> ${pkgdir}/usr/share/applications/gnome-volume-control.desktop
+}
+
+package_gnome-media() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ _commonpackage
+}
+
+package_gnome-media-pulse() {
+ pkgdesc+=" with PulseAudio support"
+ depends+=(libpulse)
+ groups=(pulseaudio-gnome)
+ conflicts=(gnome-media)
+ provides=("gnome-media=${pkgver}-${pkgrel}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}-pulse"
+ _commonpackage
+
+ # Install missing icon
+ install -Dm644 \
+ gst-mixer/icons/16x16/status/audio-input-microphone-muted.png \
+ "${pkgdir}/usr/share/icons/hicolor/16x16/status/audio-input-microphone-muted.png"
+}
diff --git a/extra/gnome-media/gnome-media.install b/extra/gnome-media/gnome-media.install
new file mode 100644
index 000000000..97488b6d0
--- /dev/null
+++ b/extra/gnome-media/gnome-media.install
@@ -0,0 +1,22 @@
+pkgname=gnome-media
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
diff --git a/extra/gnome-media/gnome_volume_control_fix_channel_bars.patch b/extra/gnome-media/gnome_volume_control_fix_channel_bars.patch
new file mode 100644
index 000000000..9d3de0331
--- /dev/null
+++ b/extra/gnome-media/gnome_volume_control_fix_channel_bars.patch
@@ -0,0 +1,12 @@
+diff -aur gnome-media-2.32.0/gnome-volume-control/src/gvc-channel-bar.c gnome-media-2.32.0.new/gnome-volume-control/src/gvc-channel-bar.c
+--- gnome-media-2.32.0/gnome-volume-control/src/gvc-channel-bar.c 2010-09-28 15:46:15.000000000 +0100
++++ gnome-media-2.32.0.new/gnome-volume-control/src/gvc-channel-bar.c 2010-12-31 15:14:23.964994328 +0000
+@@ -449,7 +449,7 @@
+ /* Switch side scroll to vertical */
+ if (direction == GDK_SCROLL_RIGHT)
+ direction = GDK_SCROLL_UP;
+- else if (GDK_SCROLL_LEFT)
++ else if (direction == GDK_SCROLL_LEFT)
+ direction = GDK_SCROLL_DOWN;
+ }
+
diff --git a/extra/gnome-menus/PKGBUILD b/extra/gnome-menus/PKGBUILD
new file mode 100644
index 000000000..c7f0d577d
--- /dev/null
+++ b/extra/gnome-menus/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 101155 2010-11-28 13:11:57Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-menus
+pkgver=2.30.5
+pkgrel=1
+pkgdesc="GNOME menu specifications"
+arch=('i686' 'x86_64')
+depends=('pygtk>=2.22.0')
+makedepends=('pkg-config' 'intltool' 'gobject-introspection')
+options=('!libtool' '!makeflags')
+license=('GPL' 'LGPL')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ menus.patch)
+sha256sums=('6dcc565006d6e8c2025ae83ab1f82edf6bd04d61c804c0dc9bf5ea50629c4caa'
+ 'df2779777906b038fa911dc745534564ede9524a64ab368e2f6f8e38d54e7acc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/menus.patch"
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" \
+ $pkgdir/usr/lib/python2.7/site-packages/GMenuSimpleEditor/config.py
+}
diff --git a/extra/gnome-menus/menus.patch b/extra/gnome-menus/menus.patch
new file mode 100644
index 000000000..bf73e86cd
--- /dev/null
+++ b/extra/gnome-menus/menus.patch
@@ -0,0 +1,25 @@
+--- layout/applications.menu 2005-06-28 10:16:39.000000000 +0200
++++ layout/applications.menu 2005-09-12 23:21:20.000000000 +0200
+@@ -7,7 +7,6 @@
+ <Directory>Applications.directory</Directory>
+
+ <!-- Scan legacy dirs first, as later items take priority -->
+- <KDELegacyDirs/>
+ <LegacyDir>/etc/X11/applnk</LegacyDir>
+ <LegacyDir>/usr/share/gnome/apps</LegacyDir>
+
+@@ -18,6 +17,14 @@
+ <!-- Read in overrides and child menus from applications-merged/ -->
+ <DefaultMergeDirs/>
+
++ <!-- Archlinux submenu -->
++ <Menu>
++ <Name>Archlinux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu> <!-- End Archlinux -->
+ <!-- Accessories submenu -->
+ <Menu>
+ <Name>Accessories</Name>
diff --git a/extra/gnome-netstatus/PKGBUILD b/extra/gnome-netstatus/PKGBUILD
new file mode 100644
index 000000000..b661b1ee8
--- /dev/null
+++ b/extra/gnome-netstatus/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 92034 2010-09-28 17:08:48Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-netstatus
+pkgver=2.28.2
+pkgrel=1
+pkgdesc="A GNOME applet that shows network status"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnome.org"
+depends=('gnome-panel-bonobo>=2.32.0' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.2')
+options=(!emptydirs)
+groups=('gnome-extra')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+install=gnome-netstatus.install
+sha256sums=('d1ad0a668a1344898d4f47b5591adddc7791edb6c2e92136ebcf8d278d959119')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-netstatus \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-netstatus ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-netstatus/gnome-netstatus.install b/extra/gnome-netstatus/gnome-netstatus.install
new file mode 100644
index 000000000..deb8b6773
--- /dev/null
+++ b/extra/gnome-netstatus/gnome-netstatus.install
@@ -0,0 +1,22 @@
+pkgname=gnome-netstatus
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-nettool/PKGBUILD b/extra/gnome-nettool/PKGBUILD
new file mode 100644
index 000000000..757d378d7
--- /dev/null
+++ b/extra/gnome-nettool/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 91819 2010-09-28 07:23:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <kritoke@nospam.gmail.com>
+
+pkgname=gnome-nettool
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="A Collection of GNOME2 Networking Tools."
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gconf>=2.32.0' 'libgtop>=2.28.1' 'dnsutils' 'netkit-bsd-finger' 'whois' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils>=0.20.1' 'pkgconfig' 'intltool')
+conflicts=('gnome-network')
+replaces=('gnome-netinfo')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+install=gnome-nettool.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8c70f85952760170114b2fa4be3ccaa3fc6298f802bacda2503ed482b8a0539c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-nettool/gnome-nettool.install b/extra/gnome-nettool/gnome-nettool.install
new file mode 100644
index 000000000..d7d985045
--- /dev/null
+++ b/extra/gnome-nettool/gnome-nettool.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/gnome-panel/PKGBUILD b/extra/gnome-panel/PKGBUILD
new file mode 100644
index 000000000..d7014aab0
--- /dev/null
+++ b/extra/gnome-panel/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 108473 2011-01-31 14:15:15Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gnome-panel
+pkgname=('gnome-panel' 'gnome-panel-bonobo')
+pkgver=2.32.1
+pkgrel=2
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+makedepends=('libwnck' 'gnome-menus' 'evolution-data-server' 'gnome-desktop' 'libgweather' 'librsvg' 'hicolor-icon-theme' 'libcanberra' 'libbonoboui' 'gnome-doc-utils' 'intltool' 'networkmanager' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2
+ evolution-appointments.patch)
+sha256sums=('8f7828eb7a21c817a73b697844a4e20256059b32386414a10f97d51e7d9fca5f'
+ 'c42168cc1377f9dfb2e02ed0b47ee89bdb89d46e82551b9582801fdc375294bb')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=633566
+ patch -Np1 -i "${srcdir}/evolution-appointments.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-panel \
+ --disable-scrollkeeper
+ make
+ sed -e 's/$(am__append_1)//' -i Makefile
+}
+
+package_gnome-panel() {
+ pkgdesc="The GNOME Panel"
+ depends=('gnome-menus>=2.30.5' 'gnome-desktop>=2.32.1' 'evolution-data-server>=2.32.1' 'librsvg>=2.32.1' 'libcanberra>=0.25' 'libwnck>=2.30.6' 'hicolor-icon-theme')
+ optdepends=('gnome-panel-bonobo: libbonoboui-based applet support')
+ groups=('gnome')
+ install=gnome-panel.install
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-panel-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
+
+package_gnome-panel-bonobo() {
+ pkgdesc="Modules for libbonoboui-based applet support for the GNOME Panel"
+ depends=('libbonoboui>=2.24.3' "gnome-panel=${pkgver}")
+ conflicts=('gnome-panel<2.31.92')
+ install=gnome-panel-bonobo.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C bonobo "${pkgdir}" DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-panel/evolution-appointments.patch b/extra/gnome-panel/evolution-appointments.patch
new file mode 100644
index 000000000..c4831adf2
--- /dev/null
+++ b/extra/gnome-panel/evolution-appointments.patch
@@ -0,0 +1,13 @@
+diff --git a/applets/clock/calendar-window.c b/applets/clock/calendar-window.c
+index 932ebda..bfad14e 100644
+--- a/applets/clock/calendar-window.c
++++ b/applets/clock/calendar-window.c
+@@ -450,6 +450,8 @@ is_appointment (GtkTreeModel *model,
+ gtk_tree_model_get (model, iter, APPOINTMENT_COLUMN_URI, &uri, -1);
+ if (uri)
+ return (g_ascii_strcasecmp (uri, "file") == 0 ||
++ g_ascii_strcasecmp (uri, "local") == 0 ||
++ g_ascii_strcasecmp (uri, "mapi") == 0 ||
+ g_ascii_strcasecmp (uri, "webcal") == 0 ||
+ g_ascii_strcasecmp (uri, "caldav") == 0 ||
+ g_ascii_strcasecmp (uri, "exchange") == 0 ||
diff --git a/extra/gnome-panel/gnome-panel-bonobo.install b/extra/gnome-panel/gnome-panel-bonobo.install
new file mode 100644
index 000000000..0bc8c431e
--- /dev/null
+++ b/extra/gnome-panel/gnome-panel-bonobo.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gio-querymodules usr/lib/gnome-panel/modules
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/gnome-panel/gnome-panel.install b/extra/gnome-panel/gnome-panel.install
new file mode 100644
index 000000000..7fef8cf05
--- /dev/null
+++ b/extra/gnome-panel/gnome-panel.install
@@ -0,0 +1,34 @@
+pkgname=gnome-panel
+
+post_install() {
+ GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+ usr/bin/gconftool-2 --config-source="${GCONF_CONFIG_SOURCE}" --direct --load \
+ etc/gconf/schemas/panel-default-setup.entries >/dev/null
+ usr/sbin/gconfpkg --install ${pkgname}
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ GCONF_CONFIG_SOURCE=`usr/bin/gconftool-2 --get-default-source`
+ if [ -f opt/gnome/etc/gconf/schemas/panel-default-setup.entries ]; then
+ usr/bin/gconftool-2 --config-source="${GCONF_CONFIG_SOURCE}" --direct --unload \
+ opt/gnome/etc/gconf/schemas/panel-default-setup.entries >/dev/null
+ else
+ usr/bin/gconftool-2 --config-source="${GCONF_CONFIG_SOURCE}" --direct --unload \
+ etc/gconf/schemas/panel-default-setup.entries > /dev/null
+ fi
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-perl/PKGBUILD b/extra/gnome-perl/PKGBUILD
new file mode 100644
index 000000000..e4e4271a1
--- /dev/null
+++ b/extra/gnome-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 104940 2011-01-05 16:02:27Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-perl
+_realname=Gnome2
+pkgver=1.042
+pkgrel=5
+pkgdesc="Perl bindings for libgnome"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('gnomecanvas-perl' 'gnome-vfs-perl' 'libgnomeui' 'perl')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('eb7b624114e45e54e022a633ffc1cce6')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-phone-manager/PKGBUILD b/extra/gnome-phone-manager/PKGBUILD
new file mode 100644
index 000000000..ac4f8d245
--- /dev/null
+++ b/extra/gnome-phone-manager/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 91582 2010-09-27 13:16:18Z ibiru $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-phone-manager
+pkgver=0.65
+pkgrel=3
+pkgdesc="Control your mobile phone from your GNOME 2 desktop."
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/PhoneManager"
+license=('GPL')
+depends=('evolution-data-server>=2.31.92' 'gnokii>=0.6.29' 'gnome-bluetooth>=2.31.90' 'gnome-icon-theme>=2.30.3' 'gtkspell' 'libcanberra>=0.25' 'libglade')
+makedepends=('intltool')
+options=('!emptydirs')
+install=gnome-phone-manager.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/gnome-phone-manager/0.65/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7fd6854702446133511650e0a24698a71bf4096a11546a25b453d5dd74890e96')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-phone-manager ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-phone-manager/gnome-phone-manager.install b/extra/gnome-phone-manager/gnome-phone-manager.install
new file mode 100644
index 000000000..91212fa2e
--- /dev/null
+++ b/extra/gnome-phone-manager/gnome-phone-manager.install
@@ -0,0 +1,17 @@
+pkgname=gnome-phone-manager
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/gnome-pilot/PKGBUILD b/extra/gnome-pilot/PKGBUILD
new file mode 100644
index 000000000..aa400cb3a
--- /dev/null
+++ b/extra/gnome-pilot/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 91505 2010-09-27 09:43:43Z ibiru $
+# Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-pilot
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Pilot Support for Gnome"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('pilot-link>=0.12.5' 'evolution-data-server>=2.31.92')
+makedepends=('pkgconfig' 'intltool' 'gob2' 'gnome-doc-utils>=0.20.1' 'gnome-panel-bonobo>=2.31.92')
+optdepends=('gnome-panel')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gnome-pilot.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2b62b1c3578f51c9eceaed4cb49c841ae700a172787a8bcdc04768c59cb26bbf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-pilot \
+ --localstatedir=/var --disable-static \
+ --without-hal
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/share/applications/gpilot-applet.desktop"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ rm -f "${pkgdir}/usr/lib/gnome-pilot/gpilot-applet"
+}
diff --git a/extra/gnome-pilot/gnome-pilot.install b/extra/gnome-pilot/gnome-pilot.install
new file mode 100644
index 000000000..616daa0e4
--- /dev/null
+++ b/extra/gnome-pilot/gnome-pilot.install
@@ -0,0 +1,17 @@
+pkgname=gnome-pilot
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/gnome-power-manager/PKGBUILD b/extra/gnome-power-manager/PKGBUILD
new file mode 100644
index 000000000..f9aa58f27
--- /dev/null
+++ b/extra/gnome-power-manager/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 112791 2011-03-06 21:31:20Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-power-manager
+pkgver=2.32.0
+pkgrel=2
+pkgdesc="Session daemon that makes it easy to manage your laptop or desktop system."
+arch=(i686 x86_64)
+url="http://www.gnome.org/projects/gnome-power-manager/"
+license=('GPL')
+depends=('libnotify>=0.7.1' 'libunique>=1.1.6' 'libcanberra>=0.25' 'hicolor-icon-theme' 'upower>=0.9.5' 'libgnome-keyring>=2.31.92')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.1' 'gnome-panel-bonobo>=2.31.92')
+optdepends=('gnome-panel-bonobo: panel applets')
+options=(!emptydirs)
+install=gnome-power-manager.install
+groups=(gnome-extra)
+source=(http://ftp.gnome.org/pub/GNOME/sources/gnome-power-manager/2.32/${pkgname}-${pkgver}.tar.bz2
+ gnome-power-manager-2.32.0-libnotify-0.7.patch)
+sha256sums=('17fa301bf7e133285c0e054ae3be2b0f690c48f59b09f67e04d6ed339b330476'
+ '50e2f726281805f2b1eb3fbce2e8aa7a4258de12a20bb09e57527235c82760d2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/gnome-power-manager-2.32.0-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-power-manager \
+ --disable-scrollkeeper \
+ --with-dbus-services=/usr/share/dbus-1/services \
+ --enable-applets
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-power-manager ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch b/extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch
new file mode 100644
index 000000000..d021f2930
--- /dev/null
+++ b/extra/gnome-power-manager/gnome-power-manager-2.32.0-libnotify-0.7.patch
@@ -0,0 +1,30 @@
+--- src/gpm-manager.c
++++ src/gpm-manager.c
+@@ -43,6 +43,10 @@
+ #include <libupower-glib/upower.h>
+ #include <libnotify/notify.h>
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ #include "egg-debug.h"
+ #include "egg-console-kit.h"
+
+@@ -480,12 +484,16 @@
+ /* close any existing notification of this class */
+ gpm_manager_notify_close (manager, *notification_class);
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ notification = notify_notification_new (title, message, icon);
++#else
+ /* if the status icon is hidden, don't point at it */
+ if (manager->priv->status_icon != NULL &&
+ gtk_status_icon_is_embedded (manager->priv->status_icon))
+ notification = notify_notification_new_with_status_icon (title, message, icon, manager->priv->status_icon);
+ else
+ notification = notify_notification_new (title, message, icon, NULL);
++#endif
+ notify_notification_set_timeout (notification, timeout);
+ notify_notification_set_urgency (notification, urgency);
+ g_signal_connect (notification, "closed", G_CALLBACK (gpm_manager_notification_closed_cb), notification_class);
diff --git a/extra/gnome-power-manager/gnome-power-manager.install b/extra/gnome-power-manager/gnome-power-manager.install
new file mode 100644
index 000000000..ee19ac94d
--- /dev/null
+++ b/extra/gnome-power-manager/gnome-power-manager.install
@@ -0,0 +1,22 @@
+pkgname=gnome-power-manager
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+pre_remove $1
+}
+
+post_upgrade() {
+post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-python-desktop/PKGBUILD b/extra/gnome-python-desktop/PKGBUILD
new file mode 100644
index 000000000..8173d0d40
--- /dev/null
+++ b/extra/gnome-python-desktop/PKGBUILD
@@ -0,0 +1,163 @@
+# $Id: PKGBUILD 108483 2011-01-31 14:39:43Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@soulfly.nl>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+
+pkgbase=gnome-python-desktop
+pkgname=('gnome-python-desktop' 'python-brasero' 'python-bugbuddy' 'python-evince' 'python-evolution' 'python-gnomeapplet' 'python-gnomedesktop' 'python-gnomekeyring' 'python-gtop' 'python-mediaprofiles' 'python-metacity' 'python-rsvg' 'python-totem-plparser' 'python-wnck' 'python-gtksourceview' 'python-gnomeprint')
+pkgver=2.32.0
+pkgrel=4
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+options=('!libtool')
+makedepends=('intltool' 'pkg-config' 'gnome-media' 'gnome-panel-bonobo' 'gnome-python' 'gtksourceview' 'libgnomeprintui' 'libgtop' 'totem-plparser' 'evince' 'bug-buddy' 'brasero' 'gnome-desktop' 'metacity')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('09dbd580bf3b0ef60f91b090eafe6d08ddcc50a609e2b425a7f8eca46d4e0ee9')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i 's|evince-document-2.30|evince-document-2.32|g' configure
+ sed -i 's|evince-view-2.30|evince-view-2.32|g' configure
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --enable-metacity
+ make
+}
+
+package_gnome-python-desktop() {
+ depends=('python-brasero' 'python-bugbuddy' 'python-evince' 'python-evolution' 'python-gnomeapplet' 'python-gnomedesktop' 'python-gnomekeyring' 'python-gtop' 'python-mediaprofiles' 'python-metacity' 'python-rsvg' 'python-totem-plparser' 'python-wnck' 'python-gtksourceview' 'python-gnomeprint' 'gnome-python')
+ pkgdesc="Python bindings for the GNOME desktop environment"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make install-pkgconfigDATA DESTDIR="${pkgdir}"
+}
+
+package_python-brasero() {
+ depends=('pygtk' 'brasero')
+ pkgdesc="Python bindings for brasero"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C braseroburn install DESTDIR="${pkgdir}"
+ make -C braseromedia install DESTDIR="${pkgdir}"
+}
+
+package_python-bugbuddy() {
+ depends=('pygtk' 'bug-buddy')
+ pkgdesc="Python module for bug-buddy"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make install-pkgpyexecPYTHON DESTDIR="${pkgdir}"
+}
+
+package_python-evince() {
+ depends=('pygtk' 'evince')
+ pkgdesc="Python bindings for evince"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C evince install DESTDIR="${pkgdir}"
+}
+
+package_python-evolution() {
+ depends=('pygtk' 'evolution-data-server' 'python2-bonobo')
+ pkgdesc="Python bindings for evolution"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C evolution install DESTDIR="${pkgdir}"
+ PYTHON=/usr/bin/python2 ./py-compile --destdir "${pkgdir}" --basedir /usr/lib/python2.7/site-packages/gtk-2.0 evolution/__init__.py
+ install -m644 evolution/ecal.defs "${pkgdir}/usr/share/pygtk/2.0/defs/"
+}
+
+package_python-gnomeapplet() {
+ depends=('pygtk' 'libgnomeui' 'gnome-panel-bonobo' 'python2-bonobo')
+ pkgdesc="Python bindings for gnome-panel"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gnomeapplet install DESTDIR="${pkgdir}"
+}
+
+package_python-gnomedesktop() {
+ depends=('pygtk' 'gnome-desktop' 'python2-gnomevfs')
+ pkgdesc="Python bindings for gnome-desktop"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gnomedesktop install DESTDIR="${pkgdir}"
+}
+
+package_python-gnomekeyring() {
+ depends=('pygtk' 'libgnome-keyring')
+ pkgdesc="Python bindings for libgnome-keyring"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gnomekeyring install DESTDIR="${pkgdir}"
+}
+
+package_python-gtop() {
+ depends=('pygtk' 'libgtop')
+ pkgdesc="Python bindings for libgtop"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gtop install DESTDIR="${pkgdir}"
+}
+
+package_python-mediaprofiles() {
+ depends=('pygtk' 'gnome-media')
+ pkgdesc="Python bindings for gnome-media"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C mediaprofiles install DESTDIR="${pkgdir}"
+}
+
+package_python-metacity() {
+ depends=('pygtk' 'metacity')
+ pkgdesc="Python bindings for metacity"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C metacity install DESTDIR="${pkgdir}"
+}
+
+package_python-rsvg() {
+ depends=('pygtk' 'librsvg')
+ pkgdesc="Python bindings for librsvg"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C rsvg install DESTDIR="${pkgdir}"
+ install -m755 -d "${pkgdir}/usr/share/pygtk/2.0/defs"
+ install -m644 rsvg/rsvg.defs "${pkgdir}/usr/share/pygtk/2.0/defs/"
+}
+
+package_python-totem-plparser() {
+ depends=('pygtk' 'totem-plparser' 'python2-gnomevfs')
+ pkgdesc="Python bindings for totem-plparser"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C totem install DESTDIR="${pkgdir}"
+ install -m755 -d "${pkgdir}/usr/share/pygtk/2.0/defs"
+ install -m644 totem/plparser.defs "${pkgdir}/usr/share/pygtk/2.0/defs/"
+}
+
+package_python-wnck() {
+ depends=('pygtk' 'libwnck')
+ pkgdesc="Python bindings for libwnck"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C wnck install DESTDIR="${pkgdir}"
+}
+
+package_python-gtksourceview() {
+ depends=('pygtk' 'gtksourceview' 'python-gnomeprint')
+ pkgdesc="Python bindings for gtksourceview"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ for dir in gtksourceview docs/gtksourceview; do
+ make -C ${dir} install DESTDIR="${pkgdir}"
+ done
+}
+
+package_python-gnomeprint() {
+ depends=('pygtk' 'libgnomeprintui')
+ pkgdesc="Python bindings for libgnomeprintui"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ for dir in gnomeprint docs/gnomeprint docs/gnomeprintui; do
+ make -C ${dir} install DESTDIR="${pkgdir}"
+ done
+}
diff --git a/extra/gnome-python-extras/PKGBUILD b/extra/gnome-python-extras/PKGBUILD
new file mode 100644
index 000000000..9114b9fe4
--- /dev/null
+++ b/extra/gnome-python-extras/PKGBUILD
@@ -0,0 +1,87 @@
+# $Id: PKGBUILD 115120 2011-03-17 01:42:57Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gnome-python-extras
+pkgname=('gnome-python-extras' 'python2-egg' 'python2-gda' 'python2-gdl' 'python2-gksu2' 'python2-gtkhtml2' 'python2-gtkmozembed' 'python2-gtkspell')
+pkgver=2.25.3
+pkgrel=9
+arch=('i686' 'x86_64')
+url="http://www.daa.com.au/~james/pygtk/"
+license=('GPL' 'LGPL')
+makedepends=('libgtkhtml' 'gtkspell' 'gdl' 'xulrunner>=1.9.2' 'libgksu' 'libgnomeui' 'libgda' 'python2' 'pygtk' 'gnome-python')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/gnome-python-extras/2.25/gnome-python-extras-${pkgver}.tar.bz2
+ gnome-python-extras-2.25.3-update-for-2.27.2.patch)
+md5sums=('9f3b7ec5c57130b96061cb486b79c076' '0b0a4d93016d14f2306682301de3bda3')
+sha1sums=('e69e5288466c960ed6f985bb10c9969b21ed85a4' 'b065efb7f7f5baa7b95b63bcadb6a4623d1bc9e5')
+
+build() {
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ patch -Np1 -i "${srcdir}"/gnome-python-extras-2.25.3-update-for-2.27.2.patch
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr
+ make MOZILLA_HOME=/usr/lib/xulrunner-2.0
+}
+
+package_gnome-python-extras() {
+ pkgdesc="Gnome Python interfaces for libraries not part of the core platform"
+ depends=('python2-egg' 'python2-gda' 'python2-gdl' 'python2-gksu2' 'python2-gtkhtml2' 'python2-gtkmozembed' 'python2-gtkspell')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make install-pkgconfigDATA DESTDIR="${pkgdir}"
+}
+
+package_python2-egg(){
+ pkgdesc="Python bindings for interacting with egg"
+ depends=('libgnomeui' 'pygtk')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make -C egg install DESTDIR="${pkgdir}"
+}
+
+package_python2-gda(){
+ pkgdesc="Python bindings for interacting with gda"
+ depends=('libgda' 'pygtk')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make -C gda install DESTDIR="${pkgdir}"
+}
+
+package_python2-gdl() {
+ pkgdesc="Python bindings for gdl"
+ depends=('gdl' 'pygtk')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make -C gdl install DESTDIR="${pkgdir}"
+}
+
+package_python2-gksu2() {
+ pkgdesc="Python bindings for the gksu2"
+ depends=('libgksu' 'pygtk')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make -C gksu2 install DESTDIR="${pkgdir}"
+}
+
+package_python2-gtkhtml2() {
+ pkgdesc="Python bindings for the gtkhtml2"
+ depends=('libgtkhtml' 'pygtk')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make -C gtkhtml2 install DESTDIR="${pkgdir}"
+}
+
+package_python2-gtkmozembed() {
+ pkgdesc="Python bindings for the gtkmozembed"
+ depends=('xulrunner>=1.9.2' 'pygtk')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make -C gtkmozembed install DESTDIR="${pkgdir}"
+}
+
+package_python2-gtkspell() {
+ pkgdesc="Python bindings for the gtkspell"
+ depends=('gtkspell' 'pygtk')
+
+ cd "${srcdir}/gnome-python-extras-${pkgver}"
+ make -C gtkspell install DESTDIR="${pkgdir}"
+}
diff --git a/extra/gnome-python-extras/gnome-python-extras-2.25.3-update-for-2.27.2.patch b/extra/gnome-python-extras/gnome-python-extras-2.25.3-update-for-2.27.2.patch
new file mode 100644
index 000000000..5aa0b0dd4
--- /dev/null
+++ b/extra/gnome-python-extras/gnome-python-extras-2.25.3-update-for-2.27.2.patch
@@ -0,0 +1,145 @@
+diff -Nur gnome-python-extras-2.25.3.old/gdl/gdl.defs gnome-python-extras-2.25.3/gdl/gdl.defs
+--- gnome-python-extras-2.25.3.old/gdl/gdl.defs 2008-12-12 03:06:29.000000000 +0200
++++ gnome-python-extras-2.25.3/gdl/gdl.defs 2009-11-17 00:54:03.141234153 +0200
+@@ -46,13 +46,6 @@
+ (gtype-id "GDL_TYPE_DOCK_ITEM")
+ )
+
+-(define-object DockNotebook
+- (in-module "Gdl")
+- (parent "GdlDockItem")
+- (c-name "GdlDockNotebook")
+- (gtype-id "GDL_TYPE_DOCK_NOTEBOOK")
+-)
+-
+ (define-object Dock
+ (in-module "Gdl")
+ (parent "GdlDockObject")
+@@ -60,13 +53,6 @@
+ (gtype-id "GDL_TYPE_DOCK")
+ )
+
+-(define-object DockPaned
+- (in-module "Gdl")
+- (parent "GdlDockItem")
+- (c-name "GdlDockPaned")
+- (gtype-id "GDL_TYPE_DOCK_PANED")
+-)
+-
+ (define-object DockPlaceholder
+ (in-module "Gdl")
+ (parent "GdlDockObject")
+@@ -74,12 +60,6 @@
+ (gtype-id "GDL_TYPE_DOCK_PLACEHOLDER")
+ )
+
+-(define-object DockTablabel
+- (in-module "Gdl")
+- (parent "GtkBin")
+- (c-name "GdlDockTablabel")
+- (gtype-id "GDL_TYPE_DOCK_TABLABEL")
+-)
+
+ (ifdef HAVE_GDL_0_7
+
+@@ -590,18 +570,6 @@
+ (return-type "gboolean")
+ )
+
+-(define-method get_ui
+- (of-object "GdlDockLayout")
+- (c-name "gdl_dock_layout_get_ui")
+- (return-type "GtkWidget*")
+-)
+-
+-(define-method get_items_ui
+- (of-object "GdlDockLayout")
+- (c-name "gdl_dock_layout_get_items_ui")
+- (return-type "GtkWidget*")
+-)
+-
+ (define-method get_layouts_ui
+ (of-object "GdlDockLayout")
+ (c-name "gdl_dock_layout_get_layouts_ui")
+@@ -682,21 +650,6 @@
+
+
+
+-;; From gdl-dock-notebook.h
+-
+-(define-function gdl_dock_notebook_new
+- (c-name "gdl_dock_notebook_new")
+- (is-constructor-of "GdlDockNotebook")
+- (return-type "GtkWidget*")
+-)
+-
+-(define-function gdl_dock_notebook_get_type
+- (c-name "gdl_dock_notebook_get_type")
+- (return-type "GType")
+-)
+-
+-
+-
+ ;; From gdl-dock-object.h
+
+ (define-function gdl_dock_object_get_type
+@@ -848,24 +801,6 @@
+
+
+
+-;; From gdl-dock-paned.h
+-
+-(define-function gdl_dock_paned_get_type
+- (c-name "gdl_dock_paned_get_type")
+- (return-type "GType")
+-)
+-
+-(define-function gdl_dock_paned_new
+- (c-name "gdl_dock_paned_new")
+- (is-constructor-of "GdlDockPaned")
+- (return-type "GtkWidget*")
+- (properties
+- '("orientation")
+- )
+-)
+-
+-
+-
+ ;; From gdl-dock-placeholder.h
+
+ (define-function gdl_dock_placeholder_get_type
+@@ -896,34 +831,6 @@
+
+
+
+-;; From gdl-dock-tablabel.h
+-
+-(define-function gdl_dock_tablabel_new
+- (c-name "gdl_dock_tablabel_new")
+- (is-constructor-of "GdlDockTablabel")
+- (return-type "GtkWidget*")
+- (properties
+- '("item")
+- )
+-)
+-
+-(define-function gdl_dock_tablabel_get_type
+- (c-name "gdl_dock_tablabel_get_type")
+- (return-type "GType")
+-)
+-
+-(define-method activate
+- (of-object "GdlDockTablabel")
+- (c-name "gdl_dock_tablabel_activate")
+- (return-type "none")
+-)
+-
+-(define-method deactivate
+- (of-object "GdlDockTablabel")
+- (c-name "gdl_dock_tablabel_deactivate")
+- (return-type "none")
+-)
+-
+ ;; From gdl-icons.h
+
+ (ifdef HAVE_GDL_0_7
diff --git a/extra/gnome-python/PKGBUILD b/extra/gnome-python/PKGBUILD
new file mode 100644
index 000000000..b7a0e897f
--- /dev/null
+++ b/extra/gnome-python/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 107445 2011-01-25 10:20:52Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgbase=gnome-python
+pkgname=('gnome-python' 'python2-bonobo' 'python2-gconf' 'python2-libgnome' 'python2-gnomecanvas' 'python2-gnomevfs')
+pkgver=2.28.1
+pkgrel=7
+arch=(i686 x86_64)
+license=('LGPL')
+makedepends=('pygtk' 'pyorbit' 'libgnomeui')
+options=('!libtool')
+url="http://www.pygtk.org/"
+source=(http://ftp.gnome.org/pub/gnome/sources/gnome-python/2.28/gnome-python-${pkgver}.tar.bz2)
+sha256sums=('759ce9344cbf89cf7f8449d945822a0c9f317a494f56787782a901e4119b96d8')
+
+build() {
+ cd "${srcdir}/gnome-python-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr
+ make
+}
+
+package_gnome-python() {
+ pkgdesc="PyGNOME Python extension module"
+ depends=('python2-bonobo' 'python2-gconf' 'python2-libgnome' 'python2-gnomecanvas' 'python2-gnomevfs')
+
+ cd "${srcdir}/gnome-python-${pkgver}"
+ make install-pkgconfigDATA DESTDIR="${pkgdir}"
+}
+
+package_python2-bonobo(){
+ pkgdesc="Python bindings for interacting with Bonobo"
+ depends=('pygtk' 'libbonoboui' 'pyorbit' 'python2-gnomecanvas')
+
+ cd "${srcdir}/gnome-python-${pkgver}"
+ make -C bonobo install DESTDIR="${pkgdir}"
+}
+
+package_python2-gconf(){
+ pkgdesc="Python bindings for interacting with GConf"
+ depends=('pygtk' 'gconf')
+
+ cd "${srcdir}/gnome-python-${pkgver}"
+ make -C gconf install DESTDIR="${pkgdir}"
+}
+
+package_python2-libgnome() {
+ pkgdesc="Python bindings for libgnome"
+ depends=('pygtk' 'libgnomeui' 'python2-gnomevfs' 'python2-gnomecanvas' 'python2-bonobo')
+
+ cd "${srcdir}/gnome-python-${pkgver}"
+ make -C gnome install DESTDIR="${pkgdir}"
+}
+
+package_python2-gnomecanvas() {
+ pkgdesc="Python bindings for the GNOME Canvas"
+ depends=('pygtk' 'libgnomecanvas')
+
+ cd "${srcdir}/gnome-python-${pkgver}"
+ make -C gnomecanvas install DESTDIR="${pkgdir}"
+}
+
+package_python2-gnomevfs() {
+ pkgdesc="Python bindings for interacting with gnome-vfs"
+ depends=('python2' 'libbonobo' 'gnome-vfs')
+
+ cd "${srcdir}/gnome-python-${pkgver}"
+ make -C gnomevfs install DESTDIR="${pkgdir}"
+}
diff --git a/extra/gnome-screensaver/PKGBUILD b/extra/gnome-screensaver/PKGBUILD
new file mode 100644
index 000000000..703142f16
--- /dev/null
+++ b/extra/gnome-screensaver/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 112853 2011-03-07 09:08:52Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-screensaver
+pkgver=2.30.2
+pkgrel=2
+pkgdesc="Screensaver designed to integrate well with the GNOME desktop."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://live.gnome.org/GnomeScreensaver"
+backup=(etc/pam.d/gnome-screensaver)
+depends=('gnome-menus>=2.30.4' 'libgnomekbd>=2.32.0' 'libgl' 'libnotify>=0.7.1' 'gnome-desktop>=2.32.0')
+makedepends=('pkgconfig' 'intltool' 'mesa' 'xscreensaver' 'libxss' 'libxslt')
+optdepends=('xscreensaver')
+groups=('gnome')
+options=(!emptydirs)
+install=gnome-screensaver.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ gnome-screensaver.pam
+ gnome-screensaver-2.30.2-libnotify-0.7.patch)
+sha256sums=('dd52ef278b23ec5abe5974548c2d576eeaeb5294c85e9f2efd6231ecc9ca09fa'
+ '2744d1fc39da46fc681b7cf1c9230d2035b2bb8d9f510213fbe439c114eb76a2'
+ 'fd79843008fb93d6caa5f84dd4766c99895ce520517b17a2a334da8c869041bb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/gnome-screensaver-2.30.2-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-screensaver \
+ --localstatedir=/var \
+ --with-xscreensaverdir=/usr/share/xscreensaver/config \
+ --with-xscreensaverhackdir=/usr/lib/xscreensaver \
+ --with-mit-ext
+
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 "${srcdir}/gnome-screensaver.pam" "${pkgdir}/etc/pam.d/gnome-screensaver"
+
+ #Migrate xscreensaver configuration files
+ sed -e 's|Exec=|Exec=/usr/lib/xscreensaver/|' \
+ -i data/xscreensaver-config.xsl
+ cd "${pkgdir}/usr/share/applications/screensavers"
+ "${srcdir}/${pkgname}-${pkgver}/data/migrate-xscreensaver-config.sh" \
+ /usr/share/xscreensaver/config/*.xml
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-screensaver ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch b/extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch
new file mode 100644
index 000000000..6eeb16819
--- /dev/null
+++ b/extra/gnome-screensaver/gnome-screensaver-2.30.2-libnotify-0.7.patch
@@ -0,0 +1,26 @@
+diff -Nur gnome-screensaver-2.30.2.orig/src/gs-lock-plug.c gnome-screensaver-2.30.2/src/gs-lock-plug.c
+--- gnome-screensaver-2.30.2.orig/src/gs-lock-plug.c 2010-09-28 13:36:51.000000000 -0700
++++ gnome-screensaver-2.30.2/src/gs-lock-plug.c 2011-03-07 00:54:44.086669840 -0800
+@@ -47,6 +47,10 @@
+ #include <libnotify/notify.h>
+ #endif
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ #include "gs-lock-plug.h"
+
+ #include "gs-debug.h"
+@@ -1090,7 +1094,11 @@
+ strftime (summary, 128, "%X", tmp);
+
+ notify_init ("gnome-screensaver-dialog");
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ note = notify_notification_new (summary, escaped_text, NULL);
++#else
+ note = notify_notification_new (summary, escaped_text, NULL, NULL);
++#endif
+ notify_notification_set_timeout (note, NOTIFY_EXPIRES_NEVER);
+ notify_notification_show (note, NULL);
+ g_object_unref (note);
diff --git a/extra/gnome-screensaver/gnome-screensaver.install b/extra/gnome-screensaver/gnome-screensaver.install
new file mode 100644
index 000000000..d79cf1a1e
--- /dev/null
+++ b/extra/gnome-screensaver/gnome-screensaver.install
@@ -0,0 +1,17 @@
+pkgname=gnome-screensaver
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/gnome-screensaver/gnome-screensaver.pam b/extra/gnome-screensaver/gnome-screensaver.pam
new file mode 100644
index 000000000..c776a5410
--- /dev/null
+++ b/extra/gnome-screensaver/gnome-screensaver.pam
@@ -0,0 +1,3 @@
+#%PAM-1.0
+auth required pam_unix_auth.so
+auth optional pam_gnome_keyring.so
diff --git a/extra/gnome-session/PKGBUILD b/extra/gnome-session/PKGBUILD
new file mode 100644
index 000000000..d243882b2
--- /dev/null
+++ b/extra/gnome-session/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 99762 2010-11-17 12:08:07Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-session
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="The GNOME Session Handler"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('upower>=0.9.7' 'gtk2>=2.22.0' 'gconf>=2.32.0' 'startup-notification>=0.10' 'hicolor-icon-theme' 'libxtst' 'polkit-gnome>=0.97')
+makedepends=('intltool' 'xtrans')
+options=('!emptydirs')
+install=gnome-session.install
+url="http://www.gnome.org"
+groups=('gnome')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('22d93ce433fcf9c7ce6b5f36dd81f64e692ea0e41faaa0f61159ddac28c3686a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib
+ make
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+
+ install -d -m755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-session-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-session/gnome-session.install b/extra/gnome-session/gnome-session.install
new file mode 100644
index 000000000..9fc55e1a5
--- /dev/null
+++ b/extra/gnome-session/gnome-session.install
@@ -0,0 +1,22 @@
+pkgname=gnome-session
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-settings-daemon/PKGBUILD b/extra/gnome-settings-daemon/PKGBUILD
new file mode 100644
index 000000000..6888f8164
--- /dev/null
+++ b/extra/gnome-settings-daemon/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 115412 2011-03-17 20:09:00Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gnome-settings-daemon
+pkgname=(gnome-settings-daemon gnome-settings-daemon-pulse)
+pkgver=2.32.1
+pkgrel=4
+pkgdesc="The GNOME Settings daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libgnomekbd>=2.32.0' 'gnome-desktop>=2.32.0' 'libnotify>=0.7.1' 'hicolor-icon-theme' 'libgnome-data')
+makedepends=('intltool' 'libpulse' 'gstreamer0.10-base>=0.10.30' 'libcanberra')
+options=('!emptydirs' '!libtool')
+install=gnome-settings-daemon.install
+url="http://www.gnome.org"
+groups=('gnome')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2
+ gstreamer-volume-2.30.patch
+ gnome-settings-daemon-2.32.1-libnotify-0.7.patch
+ add_notify_init.patch)
+sha256sums=('0074b3fec3ad6e3ab91a05dc20906b06101ea8bca0cd2caf394a5cc141b05e86'
+ '4b2a14c0e238f3cde71619b74f178544151bb319dee84b52133a254b85548582'
+ 'da836e61ddaea8b3a90692951296a28c4533e1e117412a0602f6c76e564e837d'
+ '3f81b1bf76b4e01fe6264be0de987fe9d346eee305a898dca630dea7d77b61f3')
+
+build() {
+ cd "$srcdir"
+ cp -a "$pkgbase-$pkgver"{,-pulse}
+
+ cd "$pkgbase-$pkgver"
+ patch -Np0 -i "${srcdir}/gnome-settings-daemon-2.32.1-libnotify-0.7.patch"
+ patch -Np1 -i "${srcdir}/add_notify_init.patch"
+ patch -Np1 -i "${srcdir}/gstreamer-volume-2.30.patch"
+ libtoolize --force
+ aclocal
+ autoconf
+ automake
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/bin --disable-static --disable-pulse --enable-gstreamer
+ make
+
+ cd "$srcdir/$pkgbase-$pkgver-pulse"
+ patch -Np0 -i "${srcdir}/gnome-settings-daemon-2.32.1-libnotify-0.7.patch"
+ patch -Np1 -i "${srcdir}/add_notify_init.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/bin --disable-static --enable-pulse
+ make
+}
+
+_commonpackage() {
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+
+ install -d -m755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgbase}.schemas" --domain gnome-settings-daemon ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
+
+package_gnome-settings-daemon() {
+ depends+=(gstreamer0.10-base)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ _commonpackage
+}
+
+package_gnome-settings-daemon-pulse() {
+ pkgdesc+=" with PulseAudio support"
+ depends+=(libpulse libcanberra)
+ groups=(pulseaudio-gnome)
+ conflicts=(gnome-settings-daemon)
+ provides=("gnome-settings-daemon=$pkgver-$pkgrel")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}-pulse"
+ _commonpackage
+}
diff --git a/extra/gnome-settings-daemon/add_notify_init.patch b/extra/gnome-settings-daemon/add_notify_init.patch
new file mode 100644
index 000000000..b1e644f5d
--- /dev/null
+++ b/extra/gnome-settings-daemon/add_notify_init.patch
@@ -0,0 +1,14 @@
+diff -Nur gnome-settings-daemon-2.32.1.orig/plugins/xrandr/gsd-xrandr-manager.c gnome-settings-daemon-2.32.1/plugins/xrandr/gsd-xrandr-manager.c
+--- gnome-settings-daemon-2.32.1.orig/plugins/xrandr/gsd-xrandr-manager.c 2010-11-15 05:11:00.000000000 -0800
++++ gnome-settings-daemon-2.32.1/plugins/xrandr/gsd-xrandr-manager.c 2011-03-17 11:52:57.516694024 -0700
+@@ -2530,6 +2530,10 @@
+
+ manager->priv->current_fn_f7_config = -1;
+ manager->priv->fn_f7_configs = NULL;
++
++#ifdef HAVE_LIBNOTIFY
++ notify_init ("gnome-settings-daemon");
++#endif /* HAVE_LIBNOTIFY */
+ }
+
+ static void
diff --git a/extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch b/extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch
new file mode 100644
index 000000000..f755f24ac
--- /dev/null
+++ b/extra/gnome-settings-daemon/gnome-settings-daemon-2.32.1-libnotify-0.7.patch
@@ -0,0 +1,76 @@
+--- plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
++++ plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c
+@@ -48,6 +48,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif /* HAVE_LIBNOTIFY */
+
+ #include "gnome-settings-profile.h"
+@@ -608,9 +611,13 @@
+ gsd_a11y_keyboard_manager_ensure_status_icon (manager);
+ manager->priv->notification = notify_notification_new (title,
+ message,
+- "preferences-desktop-accessibility",
+- NULL);
++ "preferences-desktop-accessibility"
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
+ notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon);
++#endif
+ notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000);
+
+ notify_notification_add_action (manager->priv->notification,
+@@ -747,9 +754,13 @@
+ gsd_a11y_keyboard_manager_ensure_status_icon (manager);
+ manager->priv->notification = notify_notification_new (title,
+ message,
+- "preferences-desktop-accessibility",
+- NULL);
++ "preferences-desktop-accessibility"
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
+ notify_notification_attach_to_status_icon (manager->priv->notification, manager->priv->status_icon);
++#endif
+ notify_notification_set_timeout (manager->priv->notification, NOTIFICATION_TIMEOUT * 1000);
+
+ notify_notification_add_action (manager->priv->notification,
+--- plugins/xrandr/gsd-xrandr-manager.c
++++ plugins/xrandr/gsd-xrandr-manager.c
+@@ -48,6 +48,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ #include "gnome-settings-profile.h"
+@@ -1086,6 +1089,11 @@
+
+ g_assert (error_to_display == NULL || secondary_text == NULL);
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ notification = notify_notification_new (primary_text,
++ error_to_display ? error_to_display->message : secondary_text,
++ GSD_XRANDR_ICON_NAME);
++#else
+ if (priv->status_icon)
+ notification = notify_notification_new_with_status_icon (primary_text,
+ error_to_display ? error_to_display->message : secondary_text,
+@@ -1096,6 +1104,7 @@
+ error_to_display ? error_to_display->message : secondary_text,
+ GSD_XRANDR_ICON_NAME,
+ NULL);
++#endif
+
+ notify_notification_show (notification, NULL); /* NULL-GError */
+ #else
diff --git a/extra/gnome-settings-daemon/gnome-settings-daemon.install b/extra/gnome-settings-daemon/gnome-settings-daemon.install
new file mode 100644
index 000000000..004705d03
--- /dev/null
+++ b/extra/gnome-settings-daemon/gnome-settings-daemon.install
@@ -0,0 +1,22 @@
+pkgname=gnome-settings-daemon
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch b/extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch
new file mode 100644
index 000000000..847a57622
--- /dev/null
+++ b/extra/gnome-settings-daemon/gstreamer-volume-2.29.91.patch
@@ -0,0 +1,809 @@
+diff -Nur gnome-settings-daemon-2.29.91.1.orig/configure.ac gnome-settings-daemon-2.29.91.1/configure.ac
+--- gnome-settings-daemon-2.29.91.1.orig/configure.ac 2010-02-24 16:39:10.000000000 +0200
++++ gnome-settings-daemon-2.29.91.1/configure.ac 2010-02-25 18:18:35.000000000 +0200
+@@ -248,6 +248,48 @@
+ AC_SUBST(PULSE_CFLAGS)
+ AC_SUBST(PULSE_LIBS)
+
++dnl ==============================================
++dnl GStreamer section
++dnl ==============================================
++GST_MAJORMINOR=auto
++
++AC_ARG_ENABLE(gstreamer,
++AC_HELP_STRING([--enable-gstreamer],[use gstreamer if available (and optionally specify a version)]),
++[case "${enableval}" in
++ yes) ENABLE_GSTREAMER=yes ;;
++ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;;
++ no) ENABLE_GSTREAMER=no ;;
++ *) AC_MSG_ERROR([
++ *** Bad value ${enableval} for --enable-gstreamer
++ *** Please use one of the following:
++ *** --enable-gstreamer=0.10
++ ]) ;;
++esac],
++[ENABLE_GSTREAMER=yes]) dnl Default value
++
++have_gstreamer=no
++if test "x$ENABLE_GSTREAMER" = "xyes"; then
++ GST_REQS=0.10.1.2
++ PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS"
++
++ PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes,
++ AC_MSG_RESULT([no]))
++
++ if test "x$have_pulse" = "xtrue"; then
++ AC_MSG_ERROR([*** GStreamer & Pulseaudio both are selected ***])
++ fi
++
++ if test "x$have_gstreamer" = "xyes"; then
++ GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10"
++ AC_DEFINE(HAVE_GSTREAMER,1,[enable gstreamer])
++ fi
++else
++ AC_MSG_NOTICE([*** GStreamer support disabled ***])
++fi
++AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes")
++AC_SUBST(GST_LIBS)
++AC_SUBST(GST_CFLAGS)
++
+ # ---------------------------------------------------------------------------
+ # Enable Profiling
+ # ---------------------------------------------------------------------------
+@@ -386,6 +428,7 @@
+ dbus-1 system.d dir: ${DBUS_SYS_DIR}
+
+ Libnotify support: ${have_libnotify}
++ GStreamer support: ${have_gstreamer}
+ PulseAudio support: ${have_pulse}
+ Profiling support: ${enable_profiling}
+ "
+diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c
+--- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 1970-01-01 02:00:00.000000000 +0200
++++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 2010-02-25 18:18:35.000000000 +0200
+@@ -0,0 +1,402 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
++
++/* acme-volume.c
++
++ Copyright (C) 2002, 2003 Bastien Nocera
++ Copyright (C) 2004 Novell, Inc.
++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
++
++ The Gnome Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The Gnome Library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the Gnome Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++
++ Author: Bastien Nocera <hadess@hadess.net>
++ Jon Trowbridge <trow@ximian.com>
++*/
++
++#include "config.h"
++#include "gvc-gstreamer-acme-vol.h"
++
++#include <gst/gst.h>
++#include <gst/audio/mixerutils.h>
++#include <gst/interfaces/mixer.h>
++#include <gst/interfaces/propertyprobe.h>
++
++#include <gconf/gconf-client.h>
++
++#include <string.h>
++
++#define TIMEOUT 4
++
++#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device"
++#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks"
++
++#define ACME_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ACME_TYPE_VOLUME, AcmeVolumePrivate))
++
++struct AcmeVolumePrivate {
++ GstMixer *mixer;
++ GList *mixer_tracks;
++ guint timer_id;
++ gdouble volume;
++ gboolean mute;
++ GConfClient *gconf_client;
++};
++
++G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT)
++
++static gboolean acme_volume_open (AcmeVolume *acme);
++static void acme_volume_close (AcmeVolume *acme);
++static gboolean acme_volume_close_real (AcmeVolume *self);
++
++static gpointer acme_volume_object = NULL;
++
++static void
++acme_volume_finalize (GObject *object)
++{
++ AcmeVolume *self;
++
++ g_return_if_fail (object != NULL);
++ g_return_if_fail (ACME_IS_VOLUME (object));
++
++ self = ACME_VOLUME (object);
++
++ if (self->_priv->timer_id != 0)
++ g_source_remove (self->_priv->timer_id);
++ acme_volume_close_real (self);
++
++ if (self->_priv->gconf_client != NULL) {
++ g_object_unref (self->_priv->gconf_client);
++ self->_priv->gconf_client = NULL;
++ }
++
++ G_OBJECT_CLASS (acme_volume_parent_class)->finalize (object);
++}
++
++void
++acme_volume_set_mute (AcmeVolume *self, gboolean val)
++{
++ GList *t;
++
++ g_return_if_fail(ACME_IS_VOLUME(self));
++ g_return_if_fail(acme_volume_open(self));
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gst_mixer_set_mute (self->_priv->mixer, track, val);
++ }
++ self->_priv->mute = val;
++ acme_volume_close (self);
++}
++
++static void
++update_state (AcmeVolume * self)
++{
++ gint *volumes, n;
++ gdouble vol = 0;
++ GstMixerTrack *track = GST_MIXER_TRACK (self->_priv->mixer_tracks->data);
++
++ /* update mixer by getting volume */
++ volumes = g_new0 (gint, track->num_channels);
++ gst_mixer_get_volume (self->_priv->mixer, track, volumes);
++ for (n = 0; n < track->num_channels; n++)
++ vol += volumes[n];
++ g_free (volumes);
++ vol /= track->num_channels;
++ vol = 100 * vol / (track->max_volume - track->min_volume);
++
++ /* update mute flag, and volume if not muted */
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))
++ self->_priv->mute = TRUE;
++ self->_priv->volume = vol;
++}
++
++gboolean
++acme_volume_get_mute (AcmeVolume *self)
++{
++ g_return_val_if_fail(acme_volume_open(self), FALSE);
++
++ update_state (self);
++ acme_volume_close (self);
++
++ return self->_priv->mute;
++}
++
++gint
++acme_volume_get_volume (AcmeVolume *self)
++{
++
++ g_return_val_if_fail(acme_volume_open(self), 0);
++
++ update_state (self);
++
++ acme_volume_close (self);
++
++ return (gint) (self->_priv->volume + 0.5);
++}
++
++void
++acme_volume_set_volume (AcmeVolume *self, gint val)
++{
++ GList *t;
++
++ g_return_if_fail(acme_volume_open(self));
++
++ val = CLAMP (val, 0, 100);
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gint *volumes, n;
++ gdouble scale = (track->max_volume - track->min_volume) / 100.0;
++ gint vol = (gint) (val * scale + track->min_volume + 0.5);
++
++ volumes = g_new (gint, track->num_channels);
++ for (n = 0; n < track->num_channels; n++)
++ volumes[n] = vol;
++ gst_mixer_set_volume (self->_priv->mixer, track, volumes);
++ g_free (volumes);
++ }
++
++ /* update state */
++ self->_priv->volume = val;
++
++ acme_volume_close (self);
++}
++
++void
++acme_volume_mute_toggle (AcmeVolume *self)
++{
++ gboolean muted;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (ACME_IS_VOLUME(self));
++
++ muted = acme_volume_get_mute(self);
++ acme_volume_set_mute(self, !muted);
++}
++
++gint
++acme_volume_get_threshold (AcmeVolume *self)
++{
++ GList *t;
++ gint steps = 101;
++
++ g_return_val_if_fail(acme_volume_open(self), 1);
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gint track_steps = track->max_volume - track->min_volume;
++ if (track_steps > 0 && track_steps < steps)
++ steps = track_steps;
++ }
++
++ acme_volume_close (self);
++
++ return 100 / steps + 1;
++}
++
++static gboolean
++acme_volume_close_real (AcmeVolume *self)
++{
++ if (self->_priv->mixer != NULL)
++ {
++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
++ gst_object_unref (GST_OBJECT (self->_priv->mixer));
++ g_list_foreach (self->_priv->mixer_tracks, (GFunc) g_object_unref, NULL);
++ g_list_free (self->_priv->mixer_tracks);
++ self->_priv->mixer = NULL;
++ self->_priv->mixer_tracks = NULL;
++ }
++
++ self->_priv->timer_id = 0;
++ return FALSE;
++}
++
++/*
++ * _acme_set_mixer
++ * @mixer A pointer to mixer element
++ * @data A pointer to user data (AcmeVolume instance to be modified)
++ * @return A gboolean indicating success if Master track was found, failed otherwises.
++ */
++static gboolean
++_acme_set_mixer(GstMixer *mixer, gpointer user_data)
++{
++ const GList *tracks;
++
++ for (tracks = gst_mixer_list_tracks (mixer); tracks != NULL; tracks = tracks->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);
++
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
++ AcmeVolume *self;
++
++ self = ACME_VOLUME (user_data);
++
++ self->_priv->mixer = mixer;
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++ return TRUE;
++ }
++
++ continue;
++ }
++
++ return FALSE;
++}
++
++/* This is a modified version of code from gnome-media's gst-mixer */
++static gboolean
++acme_volume_open (AcmeVolume *self)
++{
++ gchar *mixer_device, **factory_and_device = NULL;
++ GList *mixer_list;
++
++ if (self->_priv->timer_id != 0) {
++ g_source_remove (self->_priv->timer_id);
++ self->_priv->timer_id = 0;
++ return TRUE;
++ }
++
++ mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL);
++ if (mixer_device != NULL)
++ factory_and_device = g_strsplit (mixer_device, ":", 2);
++
++ if (factory_and_device != NULL && factory_and_device[0] != NULL) {
++ GstElement *element;
++
++ element = gst_element_factory_make (factory_and_device[0], NULL);
++
++ if (element != NULL) {
++ if (factory_and_device[1] != NULL &&
++ g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device"))
++ g_object_set (G_OBJECT (element), "device", factory_and_device[1], NULL);
++ gst_element_set_state (element, GST_STATE_READY);
++
++ if (GST_IS_MIXER (element))
++ self->_priv->mixer = GST_MIXER (element);
++ else {
++ gst_element_set_state (element, GST_STATE_NULL);
++ gst_object_unref (element);
++ }
++ }
++ }
++
++ g_free (mixer_device);
++ g_strfreev (factory_and_device);
++
++ if (self->_priv->mixer != NULL) {
++ const GList *m;
++ GSList *tracks, *t;
++ GError *error = NULL;
++
++ /* Try to use tracks saved in GConf
++ Note: errors need to be treated , for example if the user set a non type list for this key
++ or if the elements type_list are not "matched" */
++ tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY,
++ GCONF_VALUE_STRING, &error);
++
++ if (error) {
++ g_warning("ERROR: %s\n", error->message);
++ g_error_free(error);
++ }
++
++ /* We use these tracks ONLY if they are supported on the system with the following mixer */
++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
++
++ for (t = tracks; t != NULL; t = t->next)
++ if (!strcmp (t->data, track->label))
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++
++ }
++
++ g_slist_foreach (tracks, (GFunc)g_free, NULL);
++ g_slist_free (tracks);
++
++ /* If no track stored in GConf is avaiable try to use Master track */
++ if (self->_priv->mixer_tracks == NULL) {
++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
++
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++ break;
++ }
++ }
++ }
++
++ if (self->_priv->mixer_tracks != NULL)
++ return TRUE;
++ else {
++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
++ gst_object_unref (self->_priv->mixer);
++ }
++ }
++
++ /* Go through all elements of a certain class and check whether
++ * they implement a mixer. If so, walk through the tracks and look
++ * for first one named "volume".
++ *
++ * We should probably do something intelligent if we don't find an
++ * appropriate mixer/track. But now we do something stupid...
++ * everything just becomes a no-op.
++ */
++ mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer,
++ TRUE,
++ self);
++
++ if (mixer_list == NULL)
++ return FALSE;
++
++ /* do not unref the mixer as we keep the ref for self->priv->mixer */
++ g_list_free (mixer_list);
++
++ return TRUE;
++}
++
++static void
++acme_volume_close (AcmeVolume *self)
++{
++ self->_priv->timer_id = g_timeout_add_seconds (TIMEOUT,
++ (GSourceFunc) acme_volume_close_real, self);
++}
++
++static void
++acme_volume_init (AcmeVolume *self)
++{
++ self->_priv = ACME_VOLUME_GET_PRIVATE (self);
++ self->_priv->gconf_client = gconf_client_get_default ();
++}
++
++static void
++acme_volume_class_init (AcmeVolumeClass *klass)
++{
++ G_OBJECT_CLASS (klass)->finalize = acme_volume_finalize;
++
++ gst_init (NULL, NULL);
++
++ g_type_class_add_private (klass, sizeof (AcmeVolumePrivate));
++}
++
++/* acme_volume_new
++ * @return A singleton instance of type AcmeVolume
++ */
++AcmeVolume *
++acme_volume_new (void)
++{
++ if (acme_volume_object == NULL) {
++ acme_volume_object = g_object_new (ACME_TYPE_VOLUME, NULL);
++ return ACME_VOLUME(acme_volume_object);
++ }
++ g_object_ref(acme_volume_object);
++ return ACME_VOLUME(acme_volume_object);
++}
++
+diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h
+--- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 1970-01-01 02:00:00.000000000 +0200
++++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 2010-02-25 18:18:35.000000000 +0200
+@@ -0,0 +1,56 @@
++/* acme-volume.h
++
++ Copyright (C) 2002, 2003 Bastien Nocera
++ Copyright (C) 2004 Novell, Inc.
++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
++
++ The Gnome Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The Gnome Library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the Gnome Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++
++ Author: Bastien Nocera <hadess@hadess.net>
++ Jon Trowbridge <trow@ximian.com>
++ */
++
++#include <glib-object.h>
++
++#define ACME_TYPE_VOLUME (acme_volume_get_type ())
++#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume))
++#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass))
++#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME))
++#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass))
++
++typedef struct AcmeVolume AcmeVolume;
++typedef struct AcmeVolumeClass AcmeVolumeClass;
++typedef struct AcmeVolumePrivate AcmeVolumePrivate;
++
++struct AcmeVolume {
++ GObject parent;
++ AcmeVolumePrivate *_priv;
++};
++
++struct AcmeVolumeClass {
++ GObjectClass parent;
++};
++
++GType acme_volume_get_type (void);
++AcmeVolume *acme_volume_new (void);
++void acme_volume_set_mute (AcmeVolume *self, gboolean val);
++void acme_volume_mute_toggle (AcmeVolume *self);
++gboolean acme_volume_get_mute (AcmeVolume *self);
++void acme_volume_set_volume (AcmeVolume *self, gint val);
++gint acme_volume_get_volume (AcmeVolume *self);
++gint acme_volume_get_threshold (AcmeVolume *self);
++
++
+diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/Makefile.am gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/Makefile.am
+--- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-19 19:16:15.000000000 +0300
++++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/cut-n-paste/Makefile.am 2010-02-25 18:18:35.000000000 +0200
+@@ -4,16 +4,24 @@
+
+ INCLUDES = \
+ $(WARN_CFLAGS) \
+- $(VOLUME_CONTROL_CFLAGS) \
+- $(PULSE_CFLAGS) \
+ $(NULL)
+
+ libgvc_la_LIBADD = \
+- $(VOLUME_CONTROL_LIBS) \
+- $(PULSE_LIBS) \
+ $(NULL)
+
+ libgvc_la_SOURCES = \
++ $(NULL)
++
++if HAVE_PULSE
++INCLUDES += \
++ $(VOLUME_CONTROL_CFLAGS) \
++ $(PULSE_CFLAGS)
++
++libgvc_la_LIBADD += \
++ $(VOLUME_CONTROL_LIBS) \
++ $(PULSE_LIBS)
++
++libgvc_la_SOURCES += \
+ gvc-mixer-stream.h \
+ gvc-mixer-stream.c \
+ gvc-channel-map.h \
+@@ -31,8 +39,22 @@
+ gvc-mixer-event-role.h \
+ gvc-mixer-event-role.c \
+ gvc-mixer-control.h \
+- gvc-mixer-control.c \
+- $(NULL)
++ gvc-mixer-control.c
++endif
++
++if HAVE_GSTREAMER
++INCLUDES += \
++ $(SETTINGS_PLUGIN_CFLAGS) \
++ $(AM_CFLAGS) \
++ $(GST_CFLAGS)
++
++libgvc_la_LIBADD += \
++ $(GST_LIBS)
++
++libgvc_la_SOURCES += \
++ gvc-gstreamer-acme-vol.c \
++ gvc-gstreamer-acme-vol.h
++endif
+
+ MAINTAINERCLEANFILES = \
+ *~ \
+diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.29.91.1/plugins/media-keys/gsd-media-keys-manager.c
+--- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/gsd-media-keys-manager.c 2010-02-17 00:40:19.000000000 +0200
++++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/gsd-media-keys-manager.c 2010-02-25 18:21:00.000000000 +0200
+@@ -53,6 +53,8 @@
+ #ifdef HAVE_PULSE
+ #include <canberra-gtk.h>
+ #include "gvc-mixer-control.h"
++#elif defined(HAVE_GSTREAMER)
++#include "gvc-gstreamer-acme-vol.h"
+ #endif /* HAVE_PULSE */
+
+ #define GSD_DBUS_PATH "/org/gnome/SettingsDaemon"
+@@ -84,6 +86,8 @@
+ /* Volume bits */
+ GvcMixerControl *volume;
+ GvcMixerStream *stream;
++#elif defined(HAVE_GSTREAMER)
++ AcmeVolume *volume;
+ #endif /* HAVE_PULSE */
+ GtkWidget *dialog;
+ GConfClient *conf_client;
+@@ -647,7 +651,9 @@
+ CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
+ NULL);
+ }
++#endif /* HAVE_PULSE */
+
++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
+ static void
+ do_sound_action (GsdMediaKeysManager *manager,
+ int type)
+@@ -656,7 +662,11 @@
+ guint vol, norm_vol_step;
+ int vol_step;
+
++#ifdef HAVE_PULSE
+ if (manager->priv->stream == NULL)
++#else
++ if (manager->priv->volume == NULL)
++#endif
+ return;
+
+ vol_step = gconf_client_get_int (manager->priv->conf_client,
+@@ -666,18 +676,34 @@
+ if (vol_step <= 0 || vol_step > 100)
+ vol_step = VOLUME_STEP;
+
++#ifdef HAVE_PULSE
+ norm_vol_step = PA_VOLUME_NORM * vol_step / 100;
+
+ /* FIXME: this is racy */
+ vol = gvc_mixer_stream_get_volume (manager->priv->stream);
+ muted = gvc_mixer_stream_get_is_muted (manager->priv->stream);
+
++#else
++ if (vol_step > 0) {
++ gint threshold = acme_volume_get_threshold (manager->priv->volume);
++ if (vol_step < threshold)
++ vol_step = threshold;
++ g_debug ("Using volume step of %d", vol_step);
++ }
++ vol = acme_volume_get_volume (manager->priv->volume);
++ muted = acme_volume_get_mute (manager->priv->volume);
++#endif
+ switch (type) {
+ case MUTE_KEY:
++#ifdef HAVE_PULSE
+ muted = !muted;
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
++#else
++ acme_volume_mute_toggle (manager->priv->volume);
++#endif
+ break;
+ case VOLUME_DOWN_KEY:
++#ifdef HAVE_PULSE
+ if (!muted && (vol <= norm_vol_step)) {
+ muted = !muted;
+ vol = 0;
+@@ -689,11 +715,17 @@
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
+ gvc_mixer_stream_push_volume (manager->priv->stream);
+ }
++#else
++ if (!muted && (vol <= vol_step))
++ acme_volume_mute_toggle (manager->priv->volume);
++ acme_volume_set_volume (manager->priv->volume, vol - vol_step);
++#endif
+ break;
+ case VOLUME_UP_KEY:
+ if (muted) {
+ muted = !muted;
+ if (vol == 0) {
++#ifdef HAVE_PULSE
+ vol = vol + norm_vol_step;
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
+@@ -701,7 +733,15 @@
+ } else {
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
+ }
++#else
++ /* We need to unmute otherwise vol is blocked (and muted) */
++ acme_volume_set_mute (manager->priv->volume, FALSE);
++ }
++ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
++
++#endif
+ } else {
++#ifdef HAVE_PULSE
+ if (vol < MAX_VOLUME) {
+ if (vol + norm_vol_step >= MAX_VOLUME) {
+ vol = MAX_VOLUME;
+@@ -711,13 +751,35 @@
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
+ gvc_mixer_stream_push_volume (manager->priv->stream);
+ }
++#else
++ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
++#endif
+ }
+ break;
+ }
+
++#ifdef HAVE_PULSE
+ update_dialog (manager, vol, muted);
++#else
++ muted = acme_volume_get_mute (manager->priv->volume);
++ vol = acme_volume_get_volume (manager->priv->volume);
++
++ /* FIXME: AcmeVolume should probably emit signals
++ instead of doing it like this */
++ dialog_init (manager);
++ gsd_media_keys_window_set_volume_muted (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ muted);
++ gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ vol);
++ gsd_media_keys_window_set_action (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
++ dialog_show (manager);
++#endif /* HAVE_PULSE */
+ }
+
++#endif /* defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) */
++
++#ifdef HAVE_PULSE
+ static void
+ update_default_sink (GsdMediaKeysManager *manager)
+ {
+@@ -879,9 +941,9 @@
+ case MUTE_KEY:
+ case VOLUME_DOWN_KEY:
+ case VOLUME_UP_KEY:
+-#ifdef HAVE_PULSE
++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
+ do_sound_action (manager, type);
+-#endif /* HAVE_PULSE */
++#endif /* HAVE_PULSE || HAVE_GSTREAMER */
+ break;
+ case POWER_KEY:
+ do_exit_action (manager);
+@@ -1081,6 +1143,10 @@
+ gvc_mixer_control_open (manager->priv->volume);
+
+ gnome_settings_profile_end ("gvc_mixer_control_new");
++#elif defined(HAVE_GSTREAMER)
++ gnome_settings_profile_start ("acme_volume_new");
++ manager->priv->volume = acme_volume_new ();
++ gnome_settings_profile_end ("acme_volume_new");
+ #endif /* HAVE_PULSE */
+ g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
+
+@@ -1153,6 +1219,7 @@
+ g_object_unref (priv->stream);
+ priv->stream = NULL;
+ }
++#elif defined(HAVE_GSTREAMER)
+
+ if (priv->volume) {
+ g_object_unref (priv->volume);
+diff -Nur gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/Makefile.am gnome-settings-daemon-2.29.91.1/plugins/media-keys/Makefile.am
+--- gnome-settings-daemon-2.29.91.1.orig/plugins/media-keys/Makefile.am 2010-02-17 00:40:19.000000000 +0200
++++ gnome-settings-daemon-2.29.91.1/plugins/media-keys/Makefile.am 2010-02-25 18:18:35.000000000 +0200
+@@ -3,13 +3,8 @@
+
+ NULL =
+
+-SUBDIRS =
+-plugin_LTLIBRARIES =
+-
+-if HAVE_PULSE
+-SUBDIRS += cut-n-paste
+-plugin_LTLIBRARIES += libmedia-keys.la
+-endif
++SUBDIRS = cut-n-paste
++plugin_LTLIBRARIES = libmedia-keys.la
+
+ BUILT_SOURCES = \
+ gsd-media-keys-manager-glue.h \
+@@ -100,16 +95,14 @@
+
+ libmedia_keys_la_LIBADD = \
+ $(top_builddir)/plugins/common/libcommon.la \
+- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
++ $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
+ $(SETTINGS_PLUGIN_LIBS) \
+ $(XF86MISC_LIBS)
+
+ plugin_in_files = \
+ media-keys.gnome-settings-plugin.in
+
+-if HAVE_PULSE
+ plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
+-endif
+
+ noinst_PROGRAMS = \
+ test-media-keys \
+@@ -173,9 +166,7 @@
+ $(XF86MISC_LIBS) \
+ $(GST_LIBS)
+
+-if HAVE_PULSE
+ test_media_keys_LDADD += $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la
+-endif
+
+ gtkbuilderdir = $(pkgdatadir)
+ gtkbuilder_DATA = \
diff --git a/extra/gnome-settings-daemon/gstreamer-volume-2.30.patch b/extra/gnome-settings-daemon/gstreamer-volume-2.30.patch
new file mode 100644
index 000000000..1169df1ed
--- /dev/null
+++ b/extra/gnome-settings-daemon/gstreamer-volume-2.30.patch
@@ -0,0 +1,861 @@
+diff -Nur gnome-settings-daemon-2.30.0.orig/configure.ac gnome-settings-daemon-2.30.0/configure.ac
+--- gnome-settings-daemon-2.30.0.orig/configure.ac 2010-03-29 17:03:47.000000000 +0300
++++ gnome-settings-daemon-2.30.0/configure.ac 2010-03-29 21:35:17.974333715 +0300
+@@ -251,6 +251,48 @@
+ AC_SUBST(PULSE_CFLAGS)
+ AC_SUBST(PULSE_LIBS)
+
++dnl ==============================================
++dnl GStreamer section
++dnl ==============================================
++GST_MAJORMINOR=auto
++
++AC_ARG_ENABLE(gstreamer,
++AC_HELP_STRING([--enable-gstreamer],[use gstreamer if available (and optionally specify a version)]),
++[case "${enableval}" in
++ yes) ENABLE_GSTREAMER=yes ;;
++ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;;
++ no) ENABLE_GSTREAMER=no ;;
++ *) AC_MSG_ERROR([
++ *** Bad value ${enableval} for --enable-gstreamer
++ *** Please use one of the following:
++ *** --enable-gstreamer=0.10
++ ]) ;;
++esac],
++[ENABLE_GSTREAMER=yes]) dnl Default value
++
++have_gstreamer=no
++if test "x$ENABLE_GSTREAMER" = "xyes"; then
++ GST_REQS=0.10.1.2
++ PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS"
++
++ PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes,
++ AC_MSG_RESULT([no]))
++
++ if test "x$have_pulse" = "xtrue"; then
++ AC_MSG_ERROR([*** GStreamer & Pulseaudio both are selected ***])
++ fi
++
++ if test "x$have_gstreamer" = "xyes"; then
++ GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10"
++ AC_DEFINE(HAVE_GSTREAMER,1,[enable gstreamer])
++ fi
++else
++ AC_MSG_NOTICE([*** GStreamer support disabled ***])
++fi
++AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes")
++AC_SUBST(GST_LIBS)
++AC_SUBST(GST_CFLAGS)
++
+ # ---------------------------------------------------------------------------
+ # Enable Profiling
+ # ---------------------------------------------------------------------------
+@@ -389,6 +431,7 @@
+ dbus-1 system.d dir: ${DBUS_SYS_DIR}
+
+ Libnotify support: ${have_libnotify}
++ GStreamer support: ${have_gstreamer}
+ PulseAudio support: ${have_pulse}
+ Profiling support: ${enable_profiling}
+ "
+diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c
+--- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 1970-01-01 02:00:00.000000000 +0200
++++ gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 2010-03-29 21:35:17.977471980 +0300
+@@ -0,0 +1,402 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
++
++/* acme-volume.c
++
++ Copyright (C) 2002, 2003 Bastien Nocera
++ Copyright (C) 2004 Novell, Inc.
++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
++
++ The Gnome Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The Gnome Library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the Gnome Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++
++ Author: Bastien Nocera <hadess@hadess.net>
++ Jon Trowbridge <trow@ximian.com>
++*/
++
++#include "config.h"
++#include "gvc-gstreamer-acme-vol.h"
++
++#include <gst/gst.h>
++#include <gst/audio/mixerutils.h>
++#include <gst/interfaces/mixer.h>
++#include <gst/interfaces/propertyprobe.h>
++
++#include <gconf/gconf-client.h>
++
++#include <string.h>
++
++#define TIMEOUT 4
++
++#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device"
++#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks"
++
++#define ACME_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ACME_TYPE_VOLUME, AcmeVolumePrivate))
++
++struct AcmeVolumePrivate {
++ GstMixer *mixer;
++ GList *mixer_tracks;
++ guint timer_id;
++ gdouble volume;
++ gboolean mute;
++ GConfClient *gconf_client;
++};
++
++G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT)
++
++static gboolean acme_volume_open (AcmeVolume *acme);
++static void acme_volume_close (AcmeVolume *acme);
++static gboolean acme_volume_close_real (AcmeVolume *self);
++
++static gpointer acme_volume_object = NULL;
++
++static void
++acme_volume_finalize (GObject *object)
++{
++ AcmeVolume *self;
++
++ g_return_if_fail (object != NULL);
++ g_return_if_fail (ACME_IS_VOLUME (object));
++
++ self = ACME_VOLUME (object);
++
++ if (self->_priv->timer_id != 0)
++ g_source_remove (self->_priv->timer_id);
++ acme_volume_close_real (self);
++
++ if (self->_priv->gconf_client != NULL) {
++ g_object_unref (self->_priv->gconf_client);
++ self->_priv->gconf_client = NULL;
++ }
++
++ G_OBJECT_CLASS (acme_volume_parent_class)->finalize (object);
++}
++
++void
++acme_volume_set_mute (AcmeVolume *self, gboolean val)
++{
++ GList *t;
++
++ g_return_if_fail(ACME_IS_VOLUME(self));
++ g_return_if_fail(acme_volume_open(self));
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gst_mixer_set_mute (self->_priv->mixer, track, val);
++ }
++ self->_priv->mute = val;
++ acme_volume_close (self);
++}
++
++static void
++update_state (AcmeVolume * self)
++{
++ gint *volumes, n;
++ gdouble vol = 0;
++ GstMixerTrack *track = GST_MIXER_TRACK (self->_priv->mixer_tracks->data);
++
++ /* update mixer by getting volume */
++ volumes = g_new0 (gint, track->num_channels);
++ gst_mixer_get_volume (self->_priv->mixer, track, volumes);
++ for (n = 0; n < track->num_channels; n++)
++ vol += volumes[n];
++ g_free (volumes);
++ vol /= track->num_channels;
++ vol = 100 * vol / (track->max_volume - track->min_volume);
++
++ /* update mute flag, and volume if not muted */
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))
++ self->_priv->mute = TRUE;
++ self->_priv->volume = vol;
++}
++
++gboolean
++acme_volume_get_mute (AcmeVolume *self)
++{
++ g_return_val_if_fail(acme_volume_open(self), FALSE);
++
++ update_state (self);
++ acme_volume_close (self);
++
++ return self->_priv->mute;
++}
++
++gint
++acme_volume_get_volume (AcmeVolume *self)
++{
++
++ g_return_val_if_fail(acme_volume_open(self), 0);
++
++ update_state (self);
++
++ acme_volume_close (self);
++
++ return (gint) (self->_priv->volume + 0.5);
++}
++
++void
++acme_volume_set_volume (AcmeVolume *self, gint val)
++{
++ GList *t;
++
++ g_return_if_fail(acme_volume_open(self));
++
++ val = CLAMP (val, 0, 100);
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gint *volumes, n;
++ gdouble scale = (track->max_volume - track->min_volume) / 100.0;
++ gint vol = (gint) (val * scale + track->min_volume + 0.5);
++
++ volumes = g_new (gint, track->num_channels);
++ for (n = 0; n < track->num_channels; n++)
++ volumes[n] = vol;
++ gst_mixer_set_volume (self->_priv->mixer, track, volumes);
++ g_free (volumes);
++ }
++
++ /* update state */
++ self->_priv->volume = val;
++
++ acme_volume_close (self);
++}
++
++void
++acme_volume_mute_toggle (AcmeVolume *self)
++{
++ gboolean muted;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (ACME_IS_VOLUME(self));
++
++ muted = acme_volume_get_mute(self);
++ acme_volume_set_mute(self, !muted);
++}
++
++gint
++acme_volume_get_threshold (AcmeVolume *self)
++{
++ GList *t;
++ gint steps = 101;
++
++ g_return_val_if_fail(acme_volume_open(self), 1);
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gint track_steps = track->max_volume - track->min_volume;
++ if (track_steps > 0 && track_steps < steps)
++ steps = track_steps;
++ }
++
++ acme_volume_close (self);
++
++ return 100 / steps + 1;
++}
++
++static gboolean
++acme_volume_close_real (AcmeVolume *self)
++{
++ if (self->_priv->mixer != NULL)
++ {
++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
++ gst_object_unref (GST_OBJECT (self->_priv->mixer));
++ g_list_foreach (self->_priv->mixer_tracks, (GFunc) g_object_unref, NULL);
++ g_list_free (self->_priv->mixer_tracks);
++ self->_priv->mixer = NULL;
++ self->_priv->mixer_tracks = NULL;
++ }
++
++ self->_priv->timer_id = 0;
++ return FALSE;
++}
++
++/*
++ * _acme_set_mixer
++ * @mixer A pointer to mixer element
++ * @data A pointer to user data (AcmeVolume instance to be modified)
++ * @return A gboolean indicating success if Master track was found, failed otherwises.
++ */
++static gboolean
++_acme_set_mixer(GstMixer *mixer, gpointer user_data)
++{
++ const GList *tracks;
++
++ for (tracks = gst_mixer_list_tracks (mixer); tracks != NULL; tracks = tracks->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);
++
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
++ AcmeVolume *self;
++
++ self = ACME_VOLUME (user_data);
++
++ self->_priv->mixer = mixer;
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++ return TRUE;
++ }
++
++ continue;
++ }
++
++ return FALSE;
++}
++
++/* This is a modified version of code from gnome-media's gst-mixer */
++static gboolean
++acme_volume_open (AcmeVolume *self)
++{
++ gchar *mixer_device, **factory_and_device = NULL;
++ GList *mixer_list;
++
++ if (self->_priv->timer_id != 0) {
++ g_source_remove (self->_priv->timer_id);
++ self->_priv->timer_id = 0;
++ return TRUE;
++ }
++
++ mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL);
++ if (mixer_device != NULL)
++ factory_and_device = g_strsplit (mixer_device, ":", 2);
++
++ if (factory_and_device != NULL && factory_and_device[0] != NULL) {
++ GstElement *element;
++
++ element = gst_element_factory_make (factory_and_device[0], NULL);
++
++ if (element != NULL) {
++ if (factory_and_device[1] != NULL &&
++ g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device"))
++ g_object_set (G_OBJECT (element), "device", factory_and_device[1], NULL);
++ gst_element_set_state (element, GST_STATE_READY);
++
++ if (GST_IS_MIXER (element))
++ self->_priv->mixer = GST_MIXER (element);
++ else {
++ gst_element_set_state (element, GST_STATE_NULL);
++ gst_object_unref (element);
++ }
++ }
++ }
++
++ g_free (mixer_device);
++ g_strfreev (factory_and_device);
++
++ if (self->_priv->mixer != NULL) {
++ const GList *m;
++ GSList *tracks, *t;
++ GError *error = NULL;
++
++ /* Try to use tracks saved in GConf
++ Note: errors need to be treated , for example if the user set a non type list for this key
++ or if the elements type_list are not "matched" */
++ tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY,
++ GCONF_VALUE_STRING, &error);
++
++ if (error) {
++ g_warning("ERROR: %s\n", error->message);
++ g_error_free(error);
++ }
++
++ /* We use these tracks ONLY if they are supported on the system with the following mixer */
++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
++
++ for (t = tracks; t != NULL; t = t->next)
++ if (!strcmp (t->data, track->label))
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++
++ }
++
++ g_slist_foreach (tracks, (GFunc)g_free, NULL);
++ g_slist_free (tracks);
++
++ /* If no track stored in GConf is avaiable try to use Master track */
++ if (self->_priv->mixer_tracks == NULL) {
++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
++
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++ break;
++ }
++ }
++ }
++
++ if (self->_priv->mixer_tracks != NULL)
++ return TRUE;
++ else {
++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
++ gst_object_unref (self->_priv->mixer);
++ }
++ }
++
++ /* Go through all elements of a certain class and check whether
++ * they implement a mixer. If so, walk through the tracks and look
++ * for first one named "volume".
++ *
++ * We should probably do something intelligent if we don't find an
++ * appropriate mixer/track. But now we do something stupid...
++ * everything just becomes a no-op.
++ */
++ mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer,
++ TRUE,
++ self);
++
++ if (mixer_list == NULL)
++ return FALSE;
++
++ /* do not unref the mixer as we keep the ref for self->priv->mixer */
++ g_list_free (mixer_list);
++
++ return TRUE;
++}
++
++static void
++acme_volume_close (AcmeVolume *self)
++{
++ self->_priv->timer_id = g_timeout_add_seconds (TIMEOUT,
++ (GSourceFunc) acme_volume_close_real, self);
++}
++
++static void
++acme_volume_init (AcmeVolume *self)
++{
++ self->_priv = ACME_VOLUME_GET_PRIVATE (self);
++ self->_priv->gconf_client = gconf_client_get_default ();
++}
++
++static void
++acme_volume_class_init (AcmeVolumeClass *klass)
++{
++ G_OBJECT_CLASS (klass)->finalize = acme_volume_finalize;
++
++ gst_init (NULL, NULL);
++
++ g_type_class_add_private (klass, sizeof (AcmeVolumePrivate));
++}
++
++/* acme_volume_new
++ * @return A singleton instance of type AcmeVolume
++ */
++AcmeVolume *
++acme_volume_new (void)
++{
++ if (acme_volume_object == NULL) {
++ acme_volume_object = g_object_new (ACME_TYPE_VOLUME, NULL);
++ return ACME_VOLUME(acme_volume_object);
++ }
++ g_object_ref(acme_volume_object);
++ return ACME_VOLUME(acme_volume_object);
++}
++
+diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h
+--- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 1970-01-01 02:00:00.000000000 +0200
++++ gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 2010-03-29 21:35:17.977471980 +0300
+@@ -0,0 +1,56 @@
++/* acme-volume.h
++
++ Copyright (C) 2002, 2003 Bastien Nocera
++ Copyright (C) 2004 Novell, Inc.
++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
++
++ The Gnome Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The Gnome Library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the Gnome Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++
++ Author: Bastien Nocera <hadess@hadess.net>
++ Jon Trowbridge <trow@ximian.com>
++ */
++
++#include <glib-object.h>
++
++#define ACME_TYPE_VOLUME (acme_volume_get_type ())
++#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume))
++#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass))
++#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME))
++#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass))
++
++typedef struct AcmeVolume AcmeVolume;
++typedef struct AcmeVolumeClass AcmeVolumeClass;
++typedef struct AcmeVolumePrivate AcmeVolumePrivate;
++
++struct AcmeVolume {
++ GObject parent;
++ AcmeVolumePrivate *_priv;
++};
++
++struct AcmeVolumeClass {
++ GObjectClass parent;
++};
++
++GType acme_volume_get_type (void);
++AcmeVolume *acme_volume_new (void);
++void acme_volume_set_mute (AcmeVolume *self, gboolean val);
++void acme_volume_mute_toggle (AcmeVolume *self);
++gboolean acme_volume_get_mute (AcmeVolume *self);
++void acme_volume_set_volume (AcmeVolume *self, gint val);
++gint acme_volume_get_volume (AcmeVolume *self);
++gint acme_volume_get_threshold (AcmeVolume *self);
++
++
+diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/Makefile.am gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/Makefile.am
+--- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-12 12:15:00.000000000 +0300
++++ gnome-settings-daemon-2.30.0/plugins/media-keys/cut-n-paste/Makefile.am 2010-03-29 21:35:17.977471980 +0300
+@@ -4,16 +4,24 @@
+
+ INCLUDES = \
+ $(WARN_CFLAGS) \
+- $(VOLUME_CONTROL_CFLAGS) \
+- $(PULSE_CFLAGS) \
+ $(NULL)
+
+ libgvc_la_LIBADD = \
+- $(VOLUME_CONTROL_LIBS) \
+- $(PULSE_LIBS) \
+ $(NULL)
+
+ libgvc_la_SOURCES = \
++ $(NULL)
++
++if HAVE_PULSE
++INCLUDES += \
++ $(VOLUME_CONTROL_CFLAGS) \
++ $(PULSE_CFLAGS)
++
++libgvc_la_LIBADD += \
++ $(VOLUME_CONTROL_LIBS) \
++ $(PULSE_LIBS)
++
++libgvc_la_SOURCES += \
+ gvc-mixer-stream.h \
+ gvc-mixer-stream.c \
+ gvc-channel-map.h \
+@@ -31,8 +39,22 @@
+ gvc-mixer-event-role.h \
+ gvc-mixer-event-role.c \
+ gvc-mixer-control.h \
+- gvc-mixer-control.c \
+- $(NULL)
++ gvc-mixer-control.c
++endif
++
++if HAVE_GSTREAMER
++INCLUDES += \
++ $(SETTINGS_PLUGIN_CFLAGS) \
++ $(AM_CFLAGS) \
++ $(GST_CFLAGS)
++
++libgvc_la_LIBADD += \
++ $(GST_LIBS)
++
++libgvc_la_SOURCES += \
++ gvc-gstreamer-acme-vol.c \
++ gvc-gstreamer-acme-vol.h
++endif
+
+ MAINTAINERCLEANFILES = \
+ *~ \
+diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.30.0/plugins/media-keys/gsd-media-keys-manager.c
+--- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/gsd-media-keys-manager.c 2010-03-29 11:15:04.000000000 +0300
++++ gnome-settings-daemon-2.30.0/plugins/media-keys/gsd-media-keys-manager.c 2010-03-29 21:56:13.293985485 +0300
+@@ -53,6 +53,8 @@
+ #ifdef HAVE_PULSE
+ #include <canberra-gtk.h>
+ #include "gvc-mixer-control.h"
++#elif defined(HAVE_GSTREAMER)
++#include "gvc-gstreamer-acme-vol.h"
+ #endif /* HAVE_PULSE */
+
+ #define GSD_DBUS_PATH "/org/gnome/SettingsDaemon"
+@@ -78,11 +80,12 @@
+ /* Volume bits */
+ GvcMixerControl *volume;
+ GvcMixerStream *stream;
++#elif defined(HAVE_GSTREAMER)
++ AcmeVolume *volume;
+ #endif /* HAVE_PULSE */
+ GtkWidget *dialog;
+ GConfClient *conf_client;
+- GVolumeMonitor *volume_monitor;
+-
++ GVolumeMonitor *volume_monitor;
+ /* Multihead stuff */
+ GdkScreen *current_screen;
+ GSList *screens;
+@@ -601,15 +604,15 @@
+ if (score < SCORE_CAN_EJECT) {
+ fav_drive = drive;
+ score = SCORE_CAN_EJECT;
+- }
++ }
+ if (g_drive_has_media (drive) == FALSE)
+ continue;
+ if (score < SCORE_HAS_MEDIA) {
+ fav_drive = drive;
+ score = SCORE_HAS_MEDIA;
+ break;
+- }
+- }
++ }
++ }
+
+ /* Show the dialogue */
+ dialog_init (manager);
+@@ -632,7 +635,7 @@
+ NULL, NULL,
+ (GAsyncReadyCallback) do_eject_action_cb,
+ manager);
+- g_object_unref (fav_drive);
++ g_object_unref (fav_drive);
+ }
+
+ static void
+@@ -675,7 +678,9 @@
+ CA_PROP_APPLICATION_ID, "org.gnome.VolumeControl",
+ NULL);
+ }
++#endif /* HAVE_PULSE */
+
++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
+ static void
+ do_sound_action (GsdMediaKeysManager *manager,
+ int type)
+@@ -685,7 +690,11 @@
+ int vol_step;
+ gboolean sound_changed;
+
++#ifdef HAVE_PULSE
+ if (manager->priv->stream == NULL)
++#else
++ if (manager->priv->volume == NULL)
++#endif
+ return;
+
+ vol_step = gconf_client_get_int (manager->priv->conf_client,
+@@ -695,6 +704,7 @@
+ if (vol_step <= 0 || vol_step > 100)
+ vol_step = VOLUME_STEP;
+
++#ifdef HAVE_PULSE
+ norm_vol_step = PA_VOLUME_NORM * vol_step / 100;
+
+ /* FIXME: this is racy */
+@@ -702,13 +712,28 @@
+ muted = gvc_mixer_stream_get_is_muted (manager->priv->stream);
+ sound_changed = FALSE;
+
++#else
++ if (vol_step > 0) {
++ gint threshold = acme_volume_get_threshold (manager->priv->volume);
++ if (vol_step < threshold)
++ vol_step = threshold;
++ g_debug ("Using volume step of %d", vol_step);
++ }
++ vol = acme_volume_get_volume (manager->priv->volume);
++ muted = acme_volume_get_mute (manager->priv->volume);
++#endif
+ switch (type) {
+ case MUTE_KEY:
++#ifdef HAVE_PULSE
+ muted = !muted;
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
+ sound_changed = TRUE;
++#else
++ acme_volume_mute_toggle (manager->priv->volume);
++#endif
+ break;
+ case VOLUME_DOWN_KEY:
++#ifdef HAVE_PULSE
+ if (!muted && (vol <= norm_vol_step)) {
+ muted = !muted;
+ vol = 0;
+@@ -722,24 +747,37 @@
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE) {
+ gvc_mixer_stream_push_volume (manager->priv->stream);
+ sound_changed = TRUE;
+- }
+ }
++#else
++ if (!muted && (vol <= vol_step))
++ acme_volume_mute_toggle (manager->priv->volume);
++ acme_volume_set_volume (manager->priv->volume, vol - vol_step);
++#endif
+ break;
+ case VOLUME_UP_KEY:
+ if (muted) {
+ muted = !muted;
+ if (vol == 0) {
++#ifdef HAVE_PULSE
+ vol = vol + norm_vol_step;
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE) {
+ gvc_mixer_stream_push_volume (manager->priv->stream);
+ sound_changed = TRUE;
+- }
++ }
+ } else {
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
+ sound_changed = TRUE;
+ }
++#else
++ /* We need to unmute otherwise vol is blocked (and muted) */
++ acme_volume_set_mute (manager->priv->volume, FALSE);
++ }
++ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
++
++#endif
+ } else {
++#ifdef HAVE_PULSE
+ if (vol < MAX_VOLUME) {
+ if (vol + norm_vol_step >= MAX_VOLUME) {
+ vol = MAX_VOLUME;
+@@ -751,13 +789,35 @@
+ sound_changed = TRUE;
+ }
+ }
++#else
++ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
++#endif
+ }
+ break;
+ }
+
++#ifdef HAVE_PULSE
+ update_dialog (manager, vol, muted, sound_changed);
++#else
++ muted = acme_volume_get_mute (manager->priv->volume);
++ vol = acme_volume_get_volume (manager->priv->volume);
++
++ /* FIXME: AcmeVolume should probably emit signals
++ instead of doing it like this */
++ dialog_init (manager);
++ gsd_media_keys_window_set_volume_muted (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ muted);
++ gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ vol);
++ gsd_media_keys_window_set_action (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
++ dialog_show (manager);
++#endif /* HAVE_PULSE */
+ }
+
++#endif /* defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) */
++
++#ifdef HAVE_PULSE
+ static void
+ update_default_sink (GsdMediaKeysManager *manager)
+ {
+@@ -919,9 +979,9 @@
+ case MUTE_KEY:
+ case VOLUME_DOWN_KEY:
+ case VOLUME_UP_KEY:
+-#ifdef HAVE_PULSE
++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
+ do_sound_action (manager, type);
+-#endif /* HAVE_PULSE */
++#endif /* HAVE_PULSE || HAVE_GSTREAMER */
+ break;
+ case POWER_KEY:
+ do_exit_action (manager);
+@@ -1064,7 +1124,7 @@
+
+ g_debug ("Starting media_keys manager");
+ gnome_settings_profile_start (NULL);
+- manager->priv->volume_monitor = g_volume_monitor_get ();
++ manager->priv->volume_monitor = g_volume_monitor_get();
+ manager->priv->conf_client = gconf_client_get_default ();
+
+ gconf_client_add_dir (manager->priv->conf_client,
+@@ -1122,6 +1182,10 @@
+ gvc_mixer_control_open (manager->priv->volume);
+
+ gnome_settings_profile_end ("gvc_mixer_control_new");
++#elif defined(HAVE_GSTREAMER)
++ gnome_settings_profile_start ("acme_volume_new");
++ manager->priv->volume = acme_volume_new ();
++ gnome_settings_profile_end ("acme_volume_new");
+ #endif /* HAVE_PULSE */
+ g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
+
+@@ -1199,6 +1263,7 @@
+ g_object_unref (priv->stream);
+ priv->stream = NULL;
+ }
++#elif defined(HAVE_GSTREAMER)
+
+ if (priv->volume) {
+ g_object_unref (priv->volume);
+diff -Nur gnome-settings-daemon-2.30.0.orig/plugins/media-keys/Makefile.am gnome-settings-daemon-2.30.0/plugins/media-keys/Makefile.am
+--- gnome-settings-daemon-2.30.0.orig/plugins/media-keys/Makefile.am 2010-03-10 13:59:38.000000000 +0200
++++ gnome-settings-daemon-2.30.0/plugins/media-keys/Makefile.am 2010-03-29 22:18:20.077410522 +0300
+@@ -3,13 +3,8 @@
+
+ NULL =
+
+-SUBDIRS =
+-plugin_LTLIBRARIES =
+-
+-if HAVE_PULSE
+-SUBDIRS += cut-n-paste
+-plugin_LTLIBRARIES += libmedia-keys.la
+-endif
++SUBDIRS = cut-n-paste
++plugin_LTLIBRARIES = libmedia-keys.la
+
+ BUILT_SOURCES = \
+ gsd-media-keys-manager-glue.h \
+@@ -100,7 +95,7 @@
+
+ libmedia_keys_la_LIBADD = \
+ $(top_builddir)/plugins/common/libcommon.la \
+- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
++ $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
+ $(SETTINGS_PLUGIN_LIBS) \
+ $(XF86MISC_LIBS) \
+ -lm
+@@ -108,9 +103,7 @@
+ plugin_in_files = \
+ media-keys.gnome-settings-plugin.in
+
+-if HAVE_PULSE
+ plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
+-endif
+
+ noinst_PROGRAMS = \
+ test-media-keys \
+@@ -176,9 +169,7 @@
+ $(GST_LIBS) \
+ -lm
+
+-if HAVE_PULSE
+ test_media_keys_LDADD += $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la
+-endif
+
+ gtkbuilderdir = $(pkgdatadir)
+ gtkbuilder_DATA = \
diff --git a/extra/gnome-settings-daemon/gstreamer-volume.patch b/extra/gnome-settings-daemon/gstreamer-volume.patch
new file mode 100644
index 000000000..0a32dcd7d
--- /dev/null
+++ b/extra/gnome-settings-daemon/gstreamer-volume.patch
@@ -0,0 +1,808 @@
+diff -ruN gnome-settings-daemon-2.27.91/configure.ac gnome-settings-daemon-2.27.91.gst/configure.ac
+--- gnome-settings-daemon-2.27.91/configure.ac 2009-08-24 12:20:55.000000000 +0200
++++ gnome-settings-daemon-2.27.91.gst/configure.ac 2009-08-24 15:25:47.000000000 +0200
+@@ -257,6 +257,48 @@
+ AC_SUBST(PULSE_CFLAGS)
+ AC_SUBST(PULSE_LIBS)
+
++dnl ==============================================
++dnl GStreamer section
++dnl ==============================================
++GST_MAJORMINOR=auto
++
++AC_ARG_ENABLE(gstreamer,
++AC_HELP_STRING([--enable-gstreamer],[use gstreamer if available (and optionally specify a version)]),
++[case "${enableval}" in
++ yes) ENABLE_GSTREAMER=yes ;;
++ 0.10) ENABLE_GSTREAMER=yes && GST_MAJORMINOR=0.10 ;;
++ no) ENABLE_GSTREAMER=no ;;
++ *) AC_MSG_ERROR([
++ *** Bad value ${enableval} for --enable-gstreamer
++ *** Please use one of the following:
++ *** --enable-gstreamer=0.10
++ ]) ;;
++esac],
++[ENABLE_GSTREAMER=yes]) dnl Default value
++
++have_gstreamer=no
++if test "x$ENABLE_GSTREAMER" = "xyes"; then
++ GST_REQS=0.10.1.2
++ PKGS="gstreamer-0.10 >= $GST_REQS gstreamer-plugins-base-0.10 >= $GST_REQS"
++
++ PKG_CHECK_MODULES(GST, $PKGS, have_gstreamer=yes,
++ AC_MSG_RESULT([no]))
++
++ if test "x$have_pulse" = "xtrue"; then
++ AC_MSG_ERROR([*** GStreamer & Pulseaudio both are selected ***])
++ fi
++
++ if test "x$have_gstreamer" = "xyes"; then
++ GST_LIBS="$GST_LIBS -lgstinterfaces-0.10 -lgstaudio-0.10"
++ AC_DEFINE(HAVE_GSTREAMER,1,[enable gstreamer])
++ fi
++else
++ AC_MSG_NOTICE([*** GStreamer support disabled ***])
++fi
++AM_CONDITIONAL(HAVE_GSTREAMER, test "x$have_gstreamer" = "xyes")
++AC_SUBST(GST_LIBS)
++AC_SUBST(GST_CFLAGS)
++
+ # ---------------------------------------------------------------------------
+ # Enable Profiling
+ # ---------------------------------------------------------------------------
+@@ -395,6 +437,7 @@
+ dbus-1 system.d dir: ${DBUS_SYS_DIR}
+
+ Libnotify support: ${have_libnotify}
++ GStreamer support: ${have_gstreamer}
+ PulseAudio support: ${have_pulse}
+ Profiling support: ${enable_profiling}
+ "
+diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/Makefile.am gnome-settings-daemon-2.27.91.gst/plugins/media-keys/Makefile.am
+--- gnome-settings-daemon-2.27.91/plugins/media-keys/Makefile.am 2009-07-14 11:21:12.000000000 +0200
++++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/Makefile.am 2009-08-24 15:25:47.000000000 +0200
+@@ -1,12 +1,7 @@
+ NULL =
+
+-SUBDIRS =
+-plugin_LTLIBRARIES =
+-
+-if HAVE_PULSE
+-SUBDIRS += cut-n-paste
+-plugin_LTLIBRARIES += libmedia-keys.la
+-endif
++SUBDIRS = cut-n-paste
++plugin_LTLIBRARIES = libmedia-keys.la
+
+ BUILT_SOURCES = \
+ gsd-media-keys-manager-glue.h \
+@@ -54,16 +49,14 @@
+
+ libmedia_keys_la_LIBADD = \
+ $(top_builddir)/plugins/common/libcommon.la \
+- $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
++ $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la \
+ $(SETTINGS_PLUGIN_LIBS) \
+ $(XF86MISC_LIBS)
+
+ plugin_in_files = \
+ media-keys.gnome-settings-plugin.in
+
+-if HAVE_PULSE
+ plugin_DATA = $(plugin_in_files:.gnome-settings-plugin.in=.gnome-settings-plugin)
+-endif
+
+ noinst_PROGRAMS = \
+ test-media-keys \
+@@ -124,9 +117,7 @@
+ $(XF86MISC_LIBS) \
+ $(GST_LIBS)
+
+-if HAVE_PULSE
+ test_media_keys_LDADD += $(top_builddir)/plugins/media-keys/cut-n-paste/libgvc.la
+-endif
+
+ gtkbuilderdir = $(pkgdatadir)
+ gtkbuilder_DATA = \
+diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/Makefile.am gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/Makefile.am
+--- gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-12 11:15:00.000000000 +0200
++++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/Makefile.am 2009-08-24 15:25:47.000000000 +0200
+@@ -4,16 +4,24 @@
+
+ INCLUDES = \
+ $(WARN_CFLAGS) \
+- $(VOLUME_CONTROL_CFLAGS) \
+- $(PULSE_CFLAGS) \
+ $(NULL)
+
+ libgvc_la_LIBADD = \
+- $(VOLUME_CONTROL_LIBS) \
+- $(PULSE_LIBS) \
+ $(NULL)
+
+ libgvc_la_SOURCES = \
++ $(NULL)
++
++if HAVE_PULSE
++INCLUDES += \
++ $(VOLUME_CONTROL_CFLAGS) \
++ $(PULSE_CFLAGS)
++
++libgvc_la_LIBADD += \
++ $(VOLUME_CONTROL_LIBS) \
++ $(PULSE_LIBS)
++
++libgvc_la_SOURCES += \
+ gvc-mixer-stream.h \
+ gvc-mixer-stream.c \
+ gvc-channel-map.h \
+@@ -31,8 +39,22 @@
+ gvc-mixer-event-role.h \
+ gvc-mixer-event-role.c \
+ gvc-mixer-control.h \
+- gvc-mixer-control.c \
+- $(NULL)
++ gvc-mixer-control.c
++endif
++
++if HAVE_GSTREAMER
++INCLUDES += \
++ $(SETTINGS_PLUGIN_CFLAGS) \
++ $(AM_CFLAGS) \
++ $(GST_CFLAGS)
++
++libgvc_la_LIBADD += \
++ $(GST_LIBS)
++
++libgvc_la_SOURCES += \
++ gvc-gstreamer-acme-vol.c \
++ gvc-gstreamer-acme-vol.h
++endif
+
+ MAINTAINERCLEANFILES = \
+ *~ \
+diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c
+--- gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 1970-01-01 01:00:00.000000000 +0100
++++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.c 2009-08-24 15:25:47.000000000 +0200
+@@ -0,0 +1,402 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
++
++/* acme-volume.c
++
++ Copyright (C) 2002, 2003 Bastien Nocera
++ Copyright (C) 2004 Novell, Inc.
++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
++
++ The Gnome Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The Gnome Library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the Gnome Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++
++ Author: Bastien Nocera <hadess@hadess.net>
++ Jon Trowbridge <trow@ximian.com>
++*/
++
++#include "config.h"
++#include "gvc-gstreamer-acme-vol.h"
++
++#include <gst/gst.h>
++#include <gst/audio/mixerutils.h>
++#include <gst/interfaces/mixer.h>
++#include <gst/interfaces/propertyprobe.h>
++
++#include <gconf/gconf-client.h>
++
++#include <string.h>
++
++#define TIMEOUT 4
++
++#define DEFAULT_MIXER_DEVICE_KEY "/desktop/gnome/sound/default_mixer_device"
++#define DEFAULT_MIXER_TRACKS_KEY "/desktop/gnome/sound/default_mixer_tracks"
++
++#define ACME_VOLUME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ACME_TYPE_VOLUME, AcmeVolumePrivate))
++
++struct AcmeVolumePrivate {
++ GstMixer *mixer;
++ GList *mixer_tracks;
++ guint timer_id;
++ gdouble volume;
++ gboolean mute;
++ GConfClient *gconf_client;
++};
++
++G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT)
++
++static gboolean acme_volume_open (AcmeVolume *acme);
++static void acme_volume_close (AcmeVolume *acme);
++static gboolean acme_volume_close_real (AcmeVolume *self);
++
++static gpointer acme_volume_object = NULL;
++
++static void
++acme_volume_finalize (GObject *object)
++{
++ AcmeVolume *self;
++
++ g_return_if_fail (object != NULL);
++ g_return_if_fail (ACME_IS_VOLUME (object));
++
++ self = ACME_VOLUME (object);
++
++ if (self->_priv->timer_id != 0)
++ g_source_remove (self->_priv->timer_id);
++ acme_volume_close_real (self);
++
++ if (self->_priv->gconf_client != NULL) {
++ g_object_unref (self->_priv->gconf_client);
++ self->_priv->gconf_client = NULL;
++ }
++
++ G_OBJECT_CLASS (acme_volume_parent_class)->finalize (object);
++}
++
++void
++acme_volume_set_mute (AcmeVolume *self, gboolean val)
++{
++ GList *t;
++
++ g_return_if_fail(ACME_IS_VOLUME(self));
++ g_return_if_fail(acme_volume_open(self));
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gst_mixer_set_mute (self->_priv->mixer, track, val);
++ }
++ self->_priv->mute = val;
++ acme_volume_close (self);
++}
++
++static void
++update_state (AcmeVolume * self)
++{
++ gint *volumes, n;
++ gdouble vol = 0;
++ GstMixerTrack *track = GST_MIXER_TRACK (self->_priv->mixer_tracks->data);
++
++ /* update mixer by getting volume */
++ volumes = g_new0 (gint, track->num_channels);
++ gst_mixer_get_volume (self->_priv->mixer, track, volumes);
++ for (n = 0; n < track->num_channels; n++)
++ vol += volumes[n];
++ g_free (volumes);
++ vol /= track->num_channels;
++ vol = 100 * vol / (track->max_volume - track->min_volume);
++
++ /* update mute flag, and volume if not muted */
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MUTE))
++ self->_priv->mute = TRUE;
++ self->_priv->volume = vol;
++}
++
++gboolean
++acme_volume_get_mute (AcmeVolume *self)
++{
++ g_return_val_if_fail(acme_volume_open(self), FALSE);
++
++ update_state (self);
++ acme_volume_close (self);
++
++ return self->_priv->mute;
++}
++
++gint
++acme_volume_get_volume (AcmeVolume *self)
++{
++
++ g_return_val_if_fail(acme_volume_open(self), 0);
++
++ update_state (self);
++
++ acme_volume_close (self);
++
++ return (gint) (self->_priv->volume + 0.5);
++}
++
++void
++acme_volume_set_volume (AcmeVolume *self, gint val)
++{
++ GList *t;
++
++ g_return_if_fail(acme_volume_open(self));
++
++ val = CLAMP (val, 0, 100);
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gint *volumes, n;
++ gdouble scale = (track->max_volume - track->min_volume) / 100.0;
++ gint vol = (gint) (val * scale + track->min_volume + 0.5);
++
++ volumes = g_new (gint, track->num_channels);
++ for (n = 0; n < track->num_channels; n++)
++ volumes[n] = vol;
++ gst_mixer_set_volume (self->_priv->mixer, track, volumes);
++ g_free (volumes);
++ }
++
++ /* update state */
++ self->_priv->volume = val;
++
++ acme_volume_close (self);
++}
++
++void
++acme_volume_mute_toggle (AcmeVolume *self)
++{
++ gboolean muted;
++
++ g_return_if_fail (self != NULL);
++ g_return_if_fail (ACME_IS_VOLUME(self));
++
++ muted = acme_volume_get_mute(self);
++ acme_volume_set_mute(self, !muted);
++}
++
++gint
++acme_volume_get_threshold (AcmeVolume *self)
++{
++ GList *t;
++ gint steps = 101;
++
++ g_return_val_if_fail(acme_volume_open(self), 1);
++
++ for (t = self->_priv->mixer_tracks; t != NULL; t = t->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (t->data);
++ gint track_steps = track->max_volume - track->min_volume;
++ if (track_steps > 0 && track_steps < steps)
++ steps = track_steps;
++ }
++
++ acme_volume_close (self);
++
++ return 100 / steps + 1;
++}
++
++static gboolean
++acme_volume_close_real (AcmeVolume *self)
++{
++ if (self->_priv->mixer != NULL)
++ {
++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
++ gst_object_unref (GST_OBJECT (self->_priv->mixer));
++ g_list_foreach (self->_priv->mixer_tracks, (GFunc) g_object_unref, NULL);
++ g_list_free (self->_priv->mixer_tracks);
++ self->_priv->mixer = NULL;
++ self->_priv->mixer_tracks = NULL;
++ }
++
++ self->_priv->timer_id = 0;
++ return FALSE;
++}
++
++/*
++ * _acme_set_mixer
++ * @mixer A pointer to mixer element
++ * @data A pointer to user data (AcmeVolume instance to be modified)
++ * @return A gboolean indicating success if Master track was found, failed otherwises.
++ */
++static gboolean
++_acme_set_mixer(GstMixer *mixer, gpointer user_data)
++{
++ const GList *tracks;
++
++ for (tracks = gst_mixer_list_tracks (mixer); tracks != NULL; tracks = tracks->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (tracks->data);
++
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
++ AcmeVolume *self;
++
++ self = ACME_VOLUME (user_data);
++
++ self->_priv->mixer = mixer;
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++ return TRUE;
++ }
++
++ continue;
++ }
++
++ return FALSE;
++}
++
++/* This is a modified version of code from gnome-media's gst-mixer */
++static gboolean
++acme_volume_open (AcmeVolume *self)
++{
++ gchar *mixer_device, **factory_and_device = NULL;
++ GList *mixer_list;
++
++ if (self->_priv->timer_id != 0) {
++ g_source_remove (self->_priv->timer_id);
++ self->_priv->timer_id = 0;
++ return TRUE;
++ }
++
++ mixer_device = gconf_client_get_string (self->_priv->gconf_client, DEFAULT_MIXER_DEVICE_KEY, NULL);
++ if (mixer_device != NULL)
++ factory_and_device = g_strsplit (mixer_device, ":", 2);
++
++ if (factory_and_device != NULL && factory_and_device[0] != NULL) {
++ GstElement *element;
++
++ element = gst_element_factory_make (factory_and_device[0], NULL);
++
++ if (element != NULL) {
++ if (factory_and_device[1] != NULL &&
++ g_object_class_find_property (G_OBJECT_GET_CLASS (element), "device"))
++ g_object_set (G_OBJECT (element), "device", factory_and_device[1], NULL);
++ gst_element_set_state (element, GST_STATE_READY);
++
++ if (GST_IS_MIXER (element))
++ self->_priv->mixer = GST_MIXER (element);
++ else {
++ gst_element_set_state (element, GST_STATE_NULL);
++ gst_object_unref (element);
++ }
++ }
++ }
++
++ g_free (mixer_device);
++ g_strfreev (factory_and_device);
++
++ if (self->_priv->mixer != NULL) {
++ const GList *m;
++ GSList *tracks, *t;
++ GError *error = NULL;
++
++ /* Try to use tracks saved in GConf
++ Note: errors need to be treated , for example if the user set a non type list for this key
++ or if the elements type_list are not "matched" */
++ tracks = gconf_client_get_list (self->_priv->gconf_client, DEFAULT_MIXER_TRACKS_KEY,
++ GCONF_VALUE_STRING, &error);
++
++ if (error) {
++ g_warning("ERROR: %s\n", error->message);
++ g_error_free(error);
++ }
++
++ /* We use these tracks ONLY if they are supported on the system with the following mixer */
++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
++
++ for (t = tracks; t != NULL; t = t->next)
++ if (!strcmp (t->data, track->label))
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++
++ }
++
++ g_slist_foreach (tracks, (GFunc)g_free, NULL);
++ g_slist_free (tracks);
++
++ /* If no track stored in GConf is avaiable try to use Master track */
++ if (self->_priv->mixer_tracks == NULL) {
++ for (m = gst_mixer_list_tracks (self->_priv->mixer); m != NULL; m = m->next) {
++ GstMixerTrack *track = GST_MIXER_TRACK (m->data);
++
++ if (GST_MIXER_TRACK_HAS_FLAG (track, GST_MIXER_TRACK_MASTER)) {
++ self->_priv->mixer_tracks = g_list_append (self->_priv->mixer_tracks, g_object_ref (track));
++ break;
++ }
++ }
++ }
++
++ if (self->_priv->mixer_tracks != NULL)
++ return TRUE;
++ else {
++ gst_element_set_state (GST_ELEMENT (self->_priv->mixer), GST_STATE_NULL);
++ gst_object_unref (self->_priv->mixer);
++ }
++ }
++
++ /* Go through all elements of a certain class and check whether
++ * they implement a mixer. If so, walk through the tracks and look
++ * for first one named "volume".
++ *
++ * We should probably do something intelligent if we don't find an
++ * appropriate mixer/track. But now we do something stupid...
++ * everything just becomes a no-op.
++ */
++ mixer_list = gst_audio_default_registry_mixer_filter (_acme_set_mixer,
++ TRUE,
++ self);
++
++ if (mixer_list == NULL)
++ return FALSE;
++
++ /* do not unref the mixer as we keep the ref for self->priv->mixer */
++ g_list_free (mixer_list);
++
++ return TRUE;
++}
++
++static void
++acme_volume_close (AcmeVolume *self)
++{
++ self->_priv->timer_id = g_timeout_add_seconds (TIMEOUT,
++ (GSourceFunc) acme_volume_close_real, self);
++}
++
++static void
++acme_volume_init (AcmeVolume *self)
++{
++ self->_priv = ACME_VOLUME_GET_PRIVATE (self);
++ self->_priv->gconf_client = gconf_client_get_default ();
++}
++
++static void
++acme_volume_class_init (AcmeVolumeClass *klass)
++{
++ G_OBJECT_CLASS (klass)->finalize = acme_volume_finalize;
++
++ gst_init (NULL, NULL);
++
++ g_type_class_add_private (klass, sizeof (AcmeVolumePrivate));
++}
++
++/* acme_volume_new
++ * @return A singleton instance of type AcmeVolume
++ */
++AcmeVolume *
++acme_volume_new (void)
++{
++ if (acme_volume_object == NULL) {
++ acme_volume_object = g_object_new (ACME_TYPE_VOLUME, NULL);
++ return ACME_VOLUME(acme_volume_object);
++ }
++ g_object_ref(acme_volume_object);
++ return ACME_VOLUME(acme_volume_object);
++}
++
+diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h
+--- gnome-settings-daemon-2.27.91/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 1970-01-01 01:00:00.000000000 +0100
++++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/cut-n-paste/gvc-gstreamer-acme-vol.h 2009-08-24 15:25:47.000000000 +0200
+@@ -0,0 +1,56 @@
++/* acme-volume.h
++
++ Copyright (C) 2002, 2003 Bastien Nocera
++ Copyright (C) 2004 Novell, Inc.
++ Copyright (C) 2009 PERIER Romain <mrpouet@tuxfamily.org>
++
++ The Gnome Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The Gnome Library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the Gnome Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++
++ Author: Bastien Nocera <hadess@hadess.net>
++ Jon Trowbridge <trow@ximian.com>
++ */
++
++#include <glib-object.h>
++
++#define ACME_TYPE_VOLUME (acme_volume_get_type ())
++#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume))
++#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass))
++#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME))
++#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass))
++
++typedef struct AcmeVolume AcmeVolume;
++typedef struct AcmeVolumeClass AcmeVolumeClass;
++typedef struct AcmeVolumePrivate AcmeVolumePrivate;
++
++struct AcmeVolume {
++ GObject parent;
++ AcmeVolumePrivate *_priv;
++};
++
++struct AcmeVolumeClass {
++ GObjectClass parent;
++};
++
++GType acme_volume_get_type (void);
++AcmeVolume *acme_volume_new (void);
++void acme_volume_set_mute (AcmeVolume *self, gboolean val);
++void acme_volume_mute_toggle (AcmeVolume *self);
++gboolean acme_volume_get_mute (AcmeVolume *self);
++void acme_volume_set_volume (AcmeVolume *self, gint val);
++gint acme_volume_get_volume (AcmeVolume *self);
++gint acme_volume_get_threshold (AcmeVolume *self);
++
++
+diff -ruN gnome-settings-daemon-2.27.91/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.27.91.gst/plugins/media-keys/gsd-media-keys-manager.c
+--- gnome-settings-daemon-2.27.91/plugins/media-keys/gsd-media-keys-manager.c 2009-08-24 12:20:18.000000000 +0200
++++ gnome-settings-daemon-2.27.91.gst/plugins/media-keys/gsd-media-keys-manager.c 2009-08-24 16:38:50.000000000 +0200
+@@ -52,6 +52,8 @@
+
+ #ifdef HAVE_PULSE
+ #include "gvc-mixer-control.h"
++#elif defined(HAVE_GSTREAMER)
++#include "gvc-gstreamer-acme-vol.h"
+ #endif /* HAVE_PULSE */
+
+ #define GSD_DBUS_PATH "/org/gnome/SettingsDaemon"
+@@ -87,6 +89,8 @@
+ /* Volume bits */
+ GvcMixerControl *volume;
+ GvcMixerStream *stream;
++#elif defined(HAVE_GSTREAMER)
++ AcmeVolume *volume;
+ #endif /* HAVE_PULSE */
+ GtkWidget *dialog;
+ GConfClient *conf_client;
+@@ -626,7 +630,9 @@
+ GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
+ dialog_show (manager);
+ }
++#endif /* HAVE_PULSE */
+
++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
+ static void
+ do_sound_action (GsdMediaKeysManager *manager,
+ int type)
+@@ -635,7 +641,11 @@
+ guint vol, norm_vol_step;
+ int vol_step;
+
++#ifdef HAVE_PULSE
+ if (manager->priv->stream == NULL)
++#else
++ if (manager->priv->volume == NULL)
++#endif
+ return;
+
+ vol_step = gconf_client_get_int (manager->priv->conf_client,
+@@ -645,18 +655,34 @@
+ if (vol_step <= 0 || vol_step > 100)
+ vol_step = VOLUME_STEP;
+
++#ifdef HAVE_PULSE
+ norm_vol_step = PA_VOLUME_NORM * vol_step / 100;
+
+ /* FIXME: this is racy */
+ vol = gvc_mixer_stream_get_volume (manager->priv->stream);
+ muted = gvc_mixer_stream_get_is_muted (manager->priv->stream);
+
++#else
++ if (vol_step > 0) {
++ gint threshold = acme_volume_get_threshold (manager->priv->volume);
++ if (vol_step < threshold)
++ vol_step = threshold;
++ g_debug ("Using volume step of %d", vol_step);
++ }
++ vol = acme_volume_get_volume (manager->priv->volume);
++ muted = acme_volume_get_mute (manager->priv->volume);
++#endif
+ switch (type) {
+ case MUTE_KEY:
++#ifdef HAVE_PULSE
+ muted = !muted;
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
++#else
++ acme_volume_mute_toggle (manager->priv->volume);
++#endif
+ break;
+ case VOLUME_DOWN_KEY:
++#ifdef HAVE_PULSE
+ if (!muted && (vol <= norm_vol_step)) {
+ muted = !muted;
+ vol = 0;
+@@ -668,11 +694,17 @@
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
+ gvc_mixer_stream_push_volume (manager->priv->stream);
+ }
++#else
++ if (!muted && (vol <= vol_step))
++ acme_volume_mute_toggle (manager->priv->volume);
++ acme_volume_set_volume (manager->priv->volume, vol - vol_step);
++#endif
+ break;
+ case VOLUME_UP_KEY:
+ if (muted) {
+ muted = !muted;
+ if (vol == 0) {
++#ifdef HAVE_PULSE
+ vol = vol + norm_vol_step;
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
+@@ -680,7 +712,15 @@
+ } else {
+ gvc_mixer_stream_change_is_muted (manager->priv->stream, muted);
+ }
++#else
++ /* We need to unmute otherwise vol is blocked (and muted) */
++ acme_volume_set_mute (manager->priv->volume, FALSE);
++ }
++ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
++
++#endif
+ } else {
++#ifdef HAVE_PULSE
+ if (vol < MAX_VOLUME) {
+ gboolean set;
+ if (vol + norm_vol_step >= MAX_VOLUME) {
+@@ -691,13 +731,35 @@
+ if (gvc_mixer_stream_set_volume (manager->priv->stream, vol) != FALSE)
+ gvc_mixer_stream_push_volume (manager->priv->stream);
+ }
++#else
++ acme_volume_set_volume (manager->priv->volume, vol + vol_step);
++#endif
+ }
+ break;
+ }
+
++#ifdef HAVE_PULSE
+ update_dialog (manager, vol, muted);
++#else
++ muted = acme_volume_get_mute (manager->priv->volume);
++ vol = acme_volume_get_volume (manager->priv->volume);
++
++ /* FIXME: AcmeVolume should probably emit signals
++ instead of doing it like this */
++ dialog_init (manager);
++ gsd_media_keys_window_set_volume_muted (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ muted);
++ gsd_media_keys_window_set_volume_level (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ vol);
++ gsd_media_keys_window_set_action (GSD_MEDIA_KEYS_WINDOW (manager->priv->dialog),
++ GSD_MEDIA_KEYS_WINDOW_ACTION_VOLUME);
++ dialog_show (manager);
++#endif /* HAVE_PULSE */
+ }
+
++#endif /* defined(HAVE_PULSE) || defined(HAVE_GSTREAMER) */
++
++#ifdef HAVE_PULSE
+ static void
+ update_default_sink (GsdMediaKeysManager *manager)
+ {
+@@ -856,9 +918,9 @@
+ case MUTE_KEY:
+ case VOLUME_DOWN_KEY:
+ case VOLUME_UP_KEY:
+-#ifdef HAVE_PULSE
++#if defined(HAVE_PULSE) || defined(HAVE_GSTREAMER)
+ do_sound_action (manager, type);
+-#endif /* HAVE_PULSE */
++#endif /* HAVE_PULSE || HAVE_GSTREAMER */
+ break;
+ case POWER_KEY:
+ do_exit_action (manager);
+@@ -1061,6 +1123,10 @@
+ gvc_mixer_control_open (manager->priv->volume);
+
+ gnome_settings_profile_end ("gvc_mixer_control_new");
++#elif defined(HAVE_GSTREAMER)
++ gnome_settings_profile_start ("acme_volume_new");
++ manager->priv->volume = acme_volume_new ();
++ gnome_settings_profile_end ("acme_volume_new");
+ #endif /* HAVE_PULSE */
+ g_idle_add ((GSourceFunc) start_media_keys_idle_cb, manager);
+
+@@ -1133,6 +1199,7 @@
+ g_object_unref (priv->stream);
+ priv->stream = NULL;
+ }
++#elif defined(HAVE_GSTREAMER)
+
+ if (priv->volume) {
+ g_object_unref (priv->volume);
diff --git a/extra/gnome-sharp/PKGBUILD b/extra/gnome-sharp/PKGBUILD
new file mode 100644
index 000000000..edf33dc78
--- /dev/null
+++ b/extra/gnome-sharp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 30955 2009-03-22 19:41:36Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+
+pkgname=gnome-sharp
+pkgver=2.24.1
+pkgrel=1
+pkgdesc="GNOME bindings for C#"
+arch=(i686 x86_64)
+license=(LGPL)
+url="http://gtk-sharp.sourceforge.net"
+depends=('gtk-sharp-2>=2.12.8' 'libgnomeui>=2.24.1')
+makedepends=('pkgconfig' 'monodoc')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/gnome-sharp/2.24/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('408f83f790a5189bcf76ea9299bc6410')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ make GACUTIL="/usr/bin/gacutil /root ${pkgdir}/usr/lib" \
+ DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-speech/PKGBUILD b/extra/gnome-speech/PKGBUILD
new file mode 100644
index 000000000..81b95f890
--- /dev/null
+++ b/extra/gnome-speech/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 30819 2009-03-22 00:34:44Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-speech
+pkgver=0.4.25
+pkgrel=1
+pkgdesc="Gnome Text-to-Speech"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.gnome.org"
+depends=('libbonobo>=2.24.1')
+makedepends=('intltool' 'pkgconfig' 'espeak' 'java-access-bridge' 'openjdk6')
+optdepends=('espeak: Text to speech engine'
+ 'festival: Text to speech engine'
+ 'java-access-bridge: Speech support for java')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.4/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('89cbc23fc131c33396c0346085759f63')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-spell/PKGBUILD b/extra/gnome-spell/PKGBUILD
new file mode 100644
index 000000000..020398658
--- /dev/null
+++ b/extra/gnome-spell/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 49931 2009-08-16 21:48:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-spell
+pkgver=1.0.8
+pkgrel=2
+pkgdesc="Spell Checking Support for Gnome"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgnomeui>=2.24.1' 'enchant>=1.4.2')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2
+ gnome-spell-enchant.diff)
+md5sums=('6ccc46b4e3dc7cb1c6d413358e35d445' '12a357212809e0f0aba8c08d1372e60a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/gnome-spell-enchant.diff" || return 1
+ libtoolize --force || return 1
+ aclocal || return 1
+ autoconf || return 1
+ automake || return 1
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnome-spell/gnome-spell-enchant.diff b/extra/gnome-spell/gnome-spell-enchant.diff
new file mode 100644
index 000000000..7c0493813
--- /dev/null
+++ b/extra/gnome-spell/gnome-spell-enchant.diff
@@ -0,0 +1,551 @@
+? INSTALL
+? autom4te.cache
+? depcomp
+? gnome-spell-enchant.diff
+? gnome-spell-zip
+? intltool-extract
+? intltool-extract.in
+? intltool-merge
+? intltool-merge.in
+? intltool-update
+? intltool-update.in
+? missing
+? mkinstalldirs
+? stamp-h1
+? gnome-spell/GNOME_Spell.server
+? gnome-spell/GNOME_Spell.server.in
+? gnome-spell/
+Index: configure.in
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/configure.in,v
+retrieving revision 1.86
+diff -u -p -u -p -r1.86 configure.in
+--- configure.in 10 Feb 2006 12:08:11 -0000 1.86
++++ configure.in 2 Apr 2006 14:31:45 -0000
+@@ -68,34 +68,6 @@ AC_DEFINE_UNQUOTED(API_VERSION, "${API_V
+ AC_SUBST(API_VERSION)
+
+ dnl
+-dnl aspell
+-dnl
+-
+-AC_ARG_WITH(aspell-prefix, [ --with-aspell-prefix=DIR
+- specify under which prefix aspell is installed.], with_aspell_prefix="$withval", )
+-
+-if test "x$with_aspell_prefix" != "x"; then
+- saved_LDFLAGS=$LDFLAGS
+- LDFLAGS="-L$with_aspell_prefix/lib "$LDFLAGS
+- ASPELL_INC="-I$with_aspell_prefix/include"
+- ASPELL_LIBS="-L$with_aspell_prefix/lib -laspell"
+- ASPELL_DATA="$with_aspell_prefix/lib/aspell"
+-else
+- LDFLAGS="-L`aspell config prefix`/lib "$LDFLAGS
+- ASPELL_INC="-I`aspell config prefix`/include"
+- ASPELL_LIBS="-L`aspell config prefix`/lib -laspell"
+- ASPELL_DICT="`aspell config dict-dir`"
+-fi
+-AC_CHECK_LIB(aspell,new_aspell_config,,AC_MSG_ERROR([gnome-spell cannot be built without aspell library]),)
+-if test "x$with_aspell_prefix" != "x"; then
+- LDFLAGS=$saved_LDFLAGS
+-fi
+-
+-AC_SUBST(ASPELL_DICT)
+-AC_SUBST(ASPELL_INC)
+-AC_SUBST(ASPELL_LIBS)
+-
+-dnl
+ dnl flags
+ dnl
+
+@@ -104,7 +76,7 @@ AC_SUBST(CFLAGS)
+ AC_SUBST(CPPFLAGS)
+ AC_SUBST(LDFLAGS)
+
+-GNOME_SPELL_MODULES="libgnomeui-2.0 >= 1.112.1 libbonoboui-2.0 >= 1.112.1 libglade-2.0 >= 1.99.9"
++GNOME_SPELL_MODULES="libgnomeui-2.0 >= 1.112.1 libbonoboui-2.0 >= 1.112.1 libglade-2.0 >= 1.99.9 enchant >= 1.2.5"
+ PKG_CHECK_MODULES(GNOME_SPELL, $GNOME_SPELL_MODULES)
+ AC_SUBST(GNOME_SPELL_CFLAGS)
+ AC_SUBST(GNOME_SPELL_LIBS)
+Index: gnome-spell/Makefile.am
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/Makefile.am,v
+retrieving revision 1.34
+diff -u -p -u -p -r1.34 Makefile.am
+--- gnome-spell/Makefile.am 19 Jan 2006 23:37:50 -0000 1.34
++++ gnome-spell/Makefile.am 2 Apr 2006 14:31:46 -0000
+@@ -7,13 +7,11 @@ END =
+
+ INCLUDES = \
+ -I$(srcdir) \
+- $(ASPELL_INC) \
+ -DPREFIX=\""$(prefix)"\" \
+ -DGNOMEDATADIR=\""$(datadir)"\" \
+ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
+ -DGLADE_DATADIR=\"$(gladedir)\" \
+ -DPLUGIN_DIR=\""$(PLUGIN_DIR)"\" \
+- -DASPELL_DICT=\""$(ASPELL_DICT)"\" \
+ $(GNOME_SPELL_CFLAGS) \
+ $(END)
+
+@@ -55,7 +53,6 @@ libgnome_spell_idl_la_SOURCES = \
+ libgnome_spell_component_la_LDFLAGS = -release $(API_VERSION) $(NO_UNDEFINED)
+ libgnome_spell_component_la_LIBADD = \
+ libgnome-spell-idl.la \
+- $(ASPELL_LIBS) \
+ $(GNOME_SPELL_LIBS) \
+ $(END)
+
+@@ -69,7 +66,6 @@ libgnome_spell_component_la_SOURCES = \
+
+ test_gnome_spell_component_LDADD = \
+ libgnome-spell-idl.la \
+- $(ASPELL_LIBS) \
+ $(GNOME_SPELL_LIBS) \
+ $(END)
+
+Index: gnome-spell/dictionary.c
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/dictionary.c,v
+retrieving revision 1.39
+diff -u -p -u -p -r1.39 dictionary.c
+--- gnome-spell/dictionary.c 5 Feb 2006 21:31:09 -0000 1.39
++++ gnome-spell/dictionary.c 2 Apr 2006 14:31:46 -0000
+@@ -30,16 +30,21 @@
+ #include <glib.h>
+ #include <libgnome/gnome-i18n.h>
+ #include <libgnome/gnome-config.h>
+-#include <gconf/gconf-client.h>
+ #include <bonobo.h>
+
+ #include "Spell.h"
+ #include "dictionary.h"
+
++#include <enchant.h>
++
++typedef struct {
++ EnchantBroker * config;
++ EnchantDict * speller;
++} SpellEngine;
++
+ static BonoboObjectClass *dictionary_parent_class;
+
+ #define DICT_DEBUG(x)
+-#define GNOME_SPELL_GCONF_DIR "/GNOME/Spell"
+
+ static void release_engines (GNOMESpellDictionary *dict);
+
+@@ -72,12 +77,24 @@ gnome_spell_dictionary_init (GObject *ob
+ {
+ GNOMESpellDictionary *dict = GNOME_SPELL_DICTIONARY (object);
+
+- dict->changed = TRUE;
+ dict->engines = NULL;
+ dict->languages = g_hash_table_new (g_str_hash, g_str_equal);
+ dict->engines_ht = g_hash_table_new (NULL, NULL);
+ }
+
++static char **
++dup_string_list (char ** str_list, size_t list_len)
++{
++ char ** new_str_list;
++ size_t i;
++
++ new_str_list = g_new0 (char *, list_len + 1);
++ for (i = 0; i < list_len; i++)
++ new_str_list [i] = g_strdup (str_list [i]);
++
++ return new_str_list;
++}
++
+ static void
+ dictionary_finalize (GObject *object)
+ {
+@@ -93,15 +110,16 @@ dictionary_finalize (GObject *object)
+ }
+
+ static SpellEngine *
+-new_engine (const gchar *language)
++new_engine (const gchar *language, CORBA_Environment *ev)
+ {
+ SpellEngine *se;
+
+ se = g_new0 (SpellEngine, 1);
+- se->config = new_aspell_config ();
+- aspell_config_replace (se->config, "language-tag", language);
+- aspell_config_replace (se->config, "encoding", "utf-8");
+- se->changed = TRUE;
++ se->config = enchant_broker_init ();
++ se->speller = enchant_broker_request_dict (se->config, language);
++
++ if(se->speller == NULL)
++ raise_error (ev, enchant_broker_get_error (se->config));
+
+ return se;
+ }
+@@ -129,9 +147,9 @@ release_engines (GNOMESpellDictionary *d
+ SpellEngine *se = dict->engines->data;
+
+ if (se->speller)
+- delete_aspell_speller (se->speller);
++ enchant_broker_free_dict (se->config, se->speller);
+ if (se->config)
+- delete_aspell_config (se->config);
++ enchant_broker_free (se->config);
+ g_free (se);
+ dict->engines = g_slist_remove (dict->engines, se);
+ }
+@@ -140,7 +158,6 @@ release_engines (GNOMESpellDictionary *d
+ g_hash_table_foreach_remove (dict->languages, remove_engine_ht, NULL);
+
+ dict->engines = NULL;
+- dict->changed = TRUE;
+ }
+
+ static LangInfo known_languages [] = {
+@@ -352,88 +369,31 @@ static LangInfo known_languages [] = {
+ };
+
+ static GSList *
+-get_languages_real (gint *ln)
++get_languages (gint *ln)
+ {
+ GSList *langs;
+- AspellCanHaveError *err;
+- AspellConfig *config;
+- AspellSpeller *speller;
+- gint i;
++ EnchantBroker *broker;
++ gint i, nb_langs;
+
+- DICT_DEBUG (printf ("get_languages_real\n"));
++ DICT_DEBUG (printf ("get_languages\n"));
+
++ /* todo: this could probably be better done by enchant_broker_list_dicts(), but let's keep
++ the initial code change to a minimum */
++
++ broker = enchant_broker_init ();
+ langs = NULL;
+- *ln = 0;
++ nb_langs = 0;
+ for (i=0; i < G_N_ELEMENTS (known_languages); i++) {
+- config = new_aspell_config ();
+- aspell_config_replace (config, "language-tag", known_languages [i].abbreviation);
+- err = new_aspell_speller (config);
+- if (aspell_error_number (err) == 0) {
+- speller = to_aspell_speller (err);
++ if (enchant_broker_dict_exists (broker, known_languages [i].abbreviation)) {
+ DICT_DEBUG (printf ("Language: %s\n", known_languages [i].name));
+- delete_aspell_speller (speller);
+ langs = g_slist_prepend (langs, GINT_TO_POINTER (i));
+- (*ln) ++;
++ nb_langs++;
+ }
+ }
+
+- return langs;
+-}
+-
+-static GSList *
+-get_languages_load (GConfClient *gc, gint *ln)
+-{
+- GString *str;
+- GSList *langs = NULL;
+- gint i, lang_num;
+-
+- /* printf ("get_languages_load\n"); */
+-
+- str = g_string_new (NULL);
+- *ln = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/languages", NULL);
+- for (i = 0; i < *ln; i++) {
+- g_string_sprintf (str, GNOME_SPELL_GCONF_DIR "/language%d", i);
+- lang_num = gconf_client_get_int (gc, str->str, NULL);
+- langs = g_slist_prepend (langs, GINT_TO_POINTER (lang_num));
+- }
+-
+- return langs;
+-}
+-
+-static GSList *
+-get_languages (gint *ln)
+-{
+- GSList *langs, *l;
+- GConfClient *gc;
+- time_t mtime;
+- struct stat buf;
+- gint i, kl;
+-
+- gc = gconf_client_get_default ();
+-
+- mtime = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/mtime", NULL);
+- kl = gconf_client_get_int (gc, GNOME_SPELL_GCONF_DIR "/known_languages", NULL);
+-
+- if (stat (ASPELL_DICT, &buf) || buf.st_mtime != mtime || kl != G_N_ELEMENTS(known_languages)) {
+- GString *str;
+- langs = get_languages_real (ln);
+-
+- str = g_string_new (NULL);
+- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/languages", *ln, NULL);
+- for (l = langs, i = 0; i < *ln; i ++) {
+- g_string_sprintf (str, GNOME_SPELL_GCONF_DIR "/language%d", *ln - i - 1);
+- gconf_client_set_int (gc, str->str, GPOINTER_TO_INT (l->data), NULL);
+- l = l->next;
+- }
+- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/mtime", buf.st_mtime, NULL);
+- gconf_client_set_int (gc, GNOME_SPELL_GCONF_DIR "/known_languages", G_N_ELEMENTS(known_languages), NULL);
+- g_string_free (str, TRUE);
+- gnome_config_sync ();
+- } else
+- langs = get_languages_load (gc, ln);
++ *ln = nb_langs;
+
+- gconf_client_suggest_sync (gc, NULL);
+- g_object_unref (gc);
++ enchant_broker_free (broker);
+
+ return langs;
+ }
+@@ -504,59 +464,19 @@ impl_gnome_spell_dictionary_set_language
+ SpellEngine *se;
+
+ one_language = g_strndup (begin, len);
+- se = new_engine (one_language);
++ se = new_engine (one_language, ev);
+ dict->engines = g_slist_prepend (dict->engines, se);
+ g_hash_table_insert (dict->languages, one_language, se);
+ g_hash_table_insert (dict->engines_ht, se, g_strdup (one_language));
+-
+- dict->changed = TRUE;
+- }
+- }
+-}
+-
+-static void
+-update_engine (SpellEngine *se, CORBA_Environment * ev)
+-{
+- AspellCanHaveError *err;
+-
+- DICT_DEBUG (printf ("Dictionary: creating new aspell speller\n"));
+-
+- if (se->changed) {
+- if (se->speller)
+- delete_aspell_speller (se->speller);
+- err = new_aspell_speller (se->config);
+- if (aspell_error_number (err) != 0) {
+- g_warning ("aspell error: %s\n", aspell_error_message (err));
+- se->speller = NULL;
+- raise_error (ev, aspell_error_message (err));
+- } else {
+- se->speller = to_aspell_speller (err);
+- se->changed = FALSE;
+ }
+ }
+ }
+
+-static void
+-update_engines (GNOMESpellDictionary *dict, CORBA_Environment * ev)
+-{
+- g_return_if_fail (IS_GNOME_SPELL_DICTIONARY (dict));
+-
+- if (dict->changed) {
+- GSList *l;
+-
+- for (l = dict->engines; l; l = l->next) {
+- update_engine ((SpellEngine *) l->data, ev);
+- }
+-
+- dict->changed = FALSE;
+- }
+-}
+-
+ static CORBA_boolean
+ engine_check_word (SpellEngine *se, const gchar *word, CORBA_Environment *ev)
+ {
+- CORBA_boolean result = CORBA_TRUE;
+- gint aspell_result;
++ CORBA_boolean result = CORBA_FALSE;
++ gint enchant_result;
+
+ #ifndef G_DISABLE_CHECKS
+ g_return_val_if_fail (se->speller, CORBA_TRUE);
+@@ -564,12 +484,12 @@ engine_check_word (SpellEngine *se, cons
+ if (!se->speller)
+ return CORBA_TRUE;
+ #endif
+- aspell_result = aspell_speller_check (se->speller, word, strlen (word));
+- if (aspell_result == 0)
+- result = CORBA_FALSE;
+- if (aspell_result == -1) {
+- g_warning ("aspell error: %s\n", aspell_speller_error_message (se->speller));
+- raise_error (ev, aspell_speller_error_message (se->speller));
++ enchant_result = enchant_dict_check (se->speller, word, strlen (word));
++ if (enchant_result == 0)
++ result = CORBA_TRUE;
++ if (enchant_result == -1) {
++ g_warning ("enchant error: %s\n", enchant_dict_get_error (se->speller));
++ raise_error (ev, enchant_dict_get_error (se->speller));
+ }
+
+ return result;
+@@ -592,7 +512,6 @@ impl_gnome_spell_dictionary_check_word (
+ if (!strcmp (word, "Ximian"))
+ return CORBA_TRUE;
+
+- update_engines (dict, ev);
+ for (l = dict->engines; l; l = l->next) {
+ if (((SpellEngine *) l->data)->speller) {
+ valid_speller = TRUE;
+@@ -621,11 +540,10 @@ impl_gnome_spell_dictionary_add_word_to_
+ if (!word)
+ return;
+ #endif
+- update_engines (dict, ev);
+ DICT_DEBUG (printf ("Dictionary add_word_to_session: %s\n", word));
+ for (l = dict->engines; l; l = l->next) {
+ if (((SpellEngine *) l->data)->speller)
+- aspell_speller_add_to_session (((SpellEngine *) l->data)->speller, word, strlen (word));
++ enchant_dict_add_to_session (((SpellEngine *) l->data)->speller, word, strlen (word));
+ }
+ }
+
+@@ -642,13 +560,11 @@ impl_gnome_spell_dictionary_add_word_to_
+ if (!word || !language)
+ return;
+ #endif
+- update_engines (dict, ev);
+ DICT_DEBUG (printf ("Dictionary add_word_to_personal: %s (%s)\n", word, language));
+ se = (SpellEngine *) g_hash_table_lookup (dict->languages, language);
+
+ if (se && se->speller) {
+- aspell_speller_add_to_personal (se->speller, word, strlen (word));
+- aspell_speller_save_all_word_lists (se->speller);
++ enchant_dict_add_to_pwl (se->speller, word, strlen (word));
+ DICT_DEBUG (printf ("Added and saved.\n"));
+ }
+ }
+@@ -666,14 +582,12 @@ impl_gnome_spell_dictionary_set_correcti
+ if (!word || !replacement)
+ return;
+ #endif
+- update_engines (dict, ev);
+ DICT_DEBUG (printf ("Dictionary correction: %s <-- %s\n", word, replacement));
+ se = (SpellEngine *) g_hash_table_lookup (dict->languages, language);
+
+ if (se && se->speller) {
+- aspell_speller_store_replacement (se->speller, word, strlen (word),
+- replacement, strlen (replacement));
+- aspell_speller_save_all_word_lists (se->speller);
++ enchant_dict_store_replacement (se->speller, word, strlen (word),
++ replacement, strlen (replacement));
+ DICT_DEBUG (printf ("Set and saved.\n"));
+ }
+ }
+@@ -683,8 +597,8 @@ impl_gnome_spell_dictionary_get_suggesti
+ const CORBA_char *word, CORBA_Environment *ev)
+ {
+ GNOMESpellDictionary *dict = GNOME_SPELL_DICTIONARY (bonobo_object_from_servant (servant));
+- const AspellWordList *suggestions;
+- AspellStringEnumeration *elements;
++ char **suggestions;
++ size_t number_of_suggestions;
+ GNOME_Spell_StringSeq *seq = NULL;
+ GSList *l, *suggestion_list = NULL;
+ gint i, len, pos;
+@@ -696,17 +610,19 @@ impl_gnome_spell_dictionary_get_suggesti
+ return NULL;
+ #endif
+ DICT_DEBUG (printf ("Dictionary correction: %s\n", word));
+- update_engines (dict, ev);
+
+ len = 0;
+ for (l = dict->engines; l; l = l->next) {
+ SpellEngine *se = (SpellEngine *) l->data;
+
+ if (se->speller) {
+- suggestions = aspell_speller_suggest (se->speller, word, strlen (word));
+- suggestion_list = g_slist_prepend (suggestion_list, (gpointer) suggestions);
+- len += 2*aspell_word_list_size (suggestions);
++ suggestions = enchant_dict_suggest (se->speller, word, strlen (word), &number_of_suggestions);
++ suggestion_list = g_slist_prepend (suggestion_list,
++ (gpointer) dup_string_list (suggestions, number_of_suggestions));
++ len += 2*number_of_suggestions;
+ suggestion_list = g_slist_prepend (suggestion_list, engine_to_language (dict, se));
++ suggestion_list = g_slist_prepend (suggestion_list, GINT_TO_POINTER (number_of_suggestions));
++ enchant_dict_free_string_list (se->speller, suggestions);
+ }
+ }
+
+@@ -723,17 +639,18 @@ impl_gnome_spell_dictionary_get_suggesti
+ gint list_len;
+ gchar *language;
+
++ list_len = GPOINTER_TO_INT (l->data);
++ l = l->next;
+ language = (gchar *) l->data;
+ l = l->next;
+- suggestions = (const AspellWordList *) l->data;
+- elements = aspell_word_list_elements (suggestions);
+- list_len = aspell_word_list_size (suggestions);
++ suggestions = (char **) l->data;
+ for (i = 0; i < list_len; i ++, pos ++) {
+- seq->_buffer [pos] = CORBA_string_dup (aspell_string_enumeration_next (elements));
++ seq->_buffer [pos] = CORBA_string_dup (suggestions [i]);
+ pos ++;
+ seq->_buffer [pos] = CORBA_string_dup (language);
+ }
+- delete_aspell_string_enumeration (elements);
++
++ g_strfreev (suggestions);
+ }
+ CORBA_sequence_set_release (seq, CORBA_TRUE);
+ g_slist_free (suggestion_list);
+Index: gnome-spell/dictionary.h
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/dictionary.h,v
+retrieving revision 1.8
+diff -u -p -u -p -r1.8 dictionary.h
+--- gnome-spell/dictionary.h 5 Feb 2006 21:31:09 -0000 1.8
++++ gnome-spell/dictionary.h 2 Apr 2006 14:31:46 -0000
+@@ -26,7 +26,6 @@
+ G_BEGIN_DECLS
+
+ #include <bonobo/bonobo-object.h>
+-#include <aspell.h>
+
+ #define GNOME_SPELL_DICTIONARY_TYPE (gnome_spell_dictionary_get_type ())
+ #define GNOME_SPELL_DICTIONARY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \
+@@ -37,12 +36,6 @@ G_BEGIN_DECLS
+ #define IS_GNOME_SPELL_DICTIONARY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNOME_SPELL_DICTIONARY_TYPE))
+
+ typedef struct {
+- AspellConfig *config;
+- AspellSpeller *speller;
+- gboolean changed;
+-} SpellEngine;
+-
+-typedef struct {
+ gchar *abbreviation;
+ gchar *name;
+ } LangInfo;
+@@ -50,7 +43,6 @@ typedef struct {
+ typedef struct {
+ BonoboObject parent;
+
+- gboolean changed;
+ GSList *engines;
+ GHashTable *languages;
+ GHashTable *engines_ht;
+Index: gnome-spell/test-spell.c
+===================================================================
+RCS file: /cvs/gnome/gnome-spell/gnome-spell/test-spell.c,v
+retrieving revision 1.12
+diff -u -p -u -p -r1.12 test-spell.c
+--- gnome-spell/test-spell.c 6 Mar 2003 16:37:36 -0000 1.12
++++ gnome-spell/test-spell.c 2 Apr 2006 14:31:46 -0000
+@@ -52,7 +52,6 @@ main (int argc, char *argv [])
+ * test dictionary
+ */
+
+- GNOME_Spell_Dictionary_getLanguages (en, &ev);
+ GNOME_Spell_Dictionary_setLanguage (en, "en", &ev);
+
+ printf ("check: %s --> %d\n",
diff --git a/extra/gnome-system-monitor/PKGBUILD b/extra/gnome-system-monitor/PKGBUILD
new file mode 100644
index 000000000..994524036
--- /dev/null
+++ b/extra/gnome-system-monitor/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 92037 2010-09-28 17:18:42Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-system-monitor
+pkgver=2.28.2
+pkgrel=1
+pkgdesc="A system monitor for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgksu>=2.0.5' 'libwnck>=2.30.5' 'gconf>=2.32.0' 'libgtop>=2.28.2' 'gtkmm>=2.20.' 'librsvg>=2.32.0' 'gnome-icon-theme>=2.31.0')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.0' 'intltool')
+options=(!emptydirs)
+url="http://www.gnome.org"
+groups=('gnome-extra')
+install=gnome-system-monitor.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('b628edfd39e3a6b374ce133f367d3568475eb4e981a367f4f9d62a9784e5ae59')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-system-monitor/gnome-system-monitor.install b/extra/gnome-system-monitor/gnome-system-monitor.install
new file mode 100644
index 000000000..b20f5f3b9
--- /dev/null
+++ b/extra/gnome-system-monitor/gnome-system-monitor.install
@@ -0,0 +1,17 @@
+pkgname=gnome-system-monitor
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/gnome-terminal/PKGBUILD b/extra/gnome-terminal/PKGBUILD
new file mode 100644
index 000000000..5a4700efd
--- /dev/null
+++ b/extra/gnome-terminal/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 99463 2010-11-14 19:45:28Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-terminal
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="The GNOME Terminal Emulator"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gconf>=2.32.0' 'vte>=0.26.2' 'libgnome-data' 'libsm')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool')
+options=('!emptydirs')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-terminal.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7f41e4b185a2cf65ff417b89e429fc3b625c5e3f042ee1763bda6490fa4676fb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-terminal ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-terminal/gnome-terminal.install b/extra/gnome-terminal/gnome-terminal.install
new file mode 100644
index 000000000..04c2b3c2c
--- /dev/null
+++ b/extra/gnome-terminal/gnome-terminal.install
@@ -0,0 +1,17 @@
+pkgname=gnome-terminal
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/gnome-user-share/PKGBUILD b/extra/gnome-user-share/PKGBUILD
new file mode 100644
index 000000000..75b1ad846
--- /dev/null
+++ b/extra/gnome-user-share/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 112854 2011-03-07 09:18:18Z ibiru $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-user-share
+pkgver=2.30.1
+pkgrel=2
+pkgdesc="Easy to use user-level file sharing for GNOME."
+arch=('i686' 'x86_64')
+url="http://ftp.gnome.org/pub/GNOME/sources/gnome-user-share/"
+license=('GPL')
+depends=('mod_dnssd>=0.6-3' 'gconf>=2.32.0' 'hicolor-icon-theme' 'libnotify>=0.7.1' 'gnome-bluetooth>=2.31.90' 'libcanberra>=0.25')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.1' 'nautilus')
+options=('!emptydirs' '!libtool')
+install=gnome-user-share.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ gnome-user-share-2.30.1-libnotify-0.7.patch)
+sha256sums=('30ba07420a495450f80b4be001601150453ddc3504ff23c486fd1541ff5a1bfe'
+ '60fcfe4a7120b7a917e2aec227f3a40fe4993bc9c80f2722f856fbe4e6e4994e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/gnome-user-share-2.30.1-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-user-share \
+ --localstatedir=/var
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas --domain gnome-user-share ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch b/extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch
new file mode 100644
index 000000000..73c5a9ab8
--- /dev/null
+++ b/extra/gnome-user-share/gnome-user-share-2.30.1-libnotify-0.7.patch
@@ -0,0 +1,31 @@
+http://pkgs.fedoraproject.org/gitweb/?p=gnome-user-share.git;a=blob;f=notify.patch;hb=HEAD
+
+--- src/obexpush.c
++++ src/obexpush.c
+@@ -139,10 +139,9 @@ show_notification (const char *filename)
+ /* Translators: %s is the name of the filename received */
+ notification_text = g_strdup_printf(_("You received \"%s\" via Bluetooth"), display);
+ g_free (display);
+- notification = notify_notification_new_with_status_icon (_("You received a file"),
+- notification_text,
+- "dialog-information",
+- GTK_STATUS_ICON (statusicon));
++ notification = notify_notification_new (_("You received a file"),
++ notification_text,
++ "dialog-information");
+
+ notify_notification_set_timeout (notification, NOTIFY_EXPIRES_DEFAULT);
+
+@@ -218,10 +217,10 @@ device_is_authorised (const char *bdaddr
+ char *device_path;
+ GHashTable *props;
+
+- g_message ("checking adapter %s", g_ptr_array_index (adapters, i));
++ g_message ("checking adapter %s", (char *)g_ptr_array_index (adapters, i));
+
+ adapter = dbus_g_proxy_new_for_name (connection, "org.bluez",
+- g_ptr_array_index (adapters, i), "org.bluez.Adapter");
++ (char *)g_ptr_array_index (adapters, i), "org.bluez.Adapter");
+
+ if (dbus_g_proxy_call (adapter, "FindDevice", NULL,
+ G_TYPE_STRING, bdaddr, G_TYPE_INVALID,
diff --git a/extra/gnome-user-share/gnome-user-share.install b/extra/gnome-user-share/gnome-user-share.install
new file mode 100644
index 000000000..3cc1b5286
--- /dev/null
+++ b/extra/gnome-user-share/gnome-user-share.install
@@ -0,0 +1,22 @@
+pkgname=gnome-user-share
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-utils/PKGBUILD b/extra/gnome-utils/PKGBUILD
new file mode 100644
index 000000000..a2040b23d
--- /dev/null
+++ b/extra/gnome-utils/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 91827 2010-09-28 07:52:07Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-utils
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Common utilities for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgtop>=2.28.1' 'libcanberra>=0.25' 'libsm' 'gconf>=2.32.0')
+makedepends=('gnome-doc-utils>=0.20.1' 'pkgconfig' 'intltool' 'gnome-panel-bonobo>=2.32.0.2')
+optdepends=('gnome-panel-bonobo: GDict panel applet')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+install=gnome-utils.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('033a55cf442096b28ea6292043354feafe000d1e5f4ebb962a9b6d72eb9a93fa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-utils \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-utils-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ # remove it also from Xfce menu that ships its own thingy
+ sed -i -e "s/NotShowIn\=KDE\;/NotShowIn\=KDE\;XFCE\;/" ${pkgdir}/usr/share/applications/gnome-dictionary.desktop
+}
diff --git a/extra/gnome-utils/gnome-utils.install b/extra/gnome-utils/gnome-utils.install
new file mode 100644
index 000000000..20d53f2b5
--- /dev/null
+++ b/extra/gnome-utils/gnome-utils.install
@@ -0,0 +1,22 @@
+pkgname=gnome-utils
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnome-vfs-perl/PKGBUILD b/extra/gnome-vfs-perl/PKGBUILD
new file mode 100644
index 000000000..5f8707948
--- /dev/null
+++ b/extra/gnome-vfs-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 104927 2011-01-05 15:25:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-vfs-perl
+_realname=Gnome2-VFS
+pkgver=1.081
+pkgrel=3
+pkgdesc="Gnome2-VFS perl bindings for gnome-vfs"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('gtk2-perl' 'gnome-vfs' 'perl')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('3d220cbbe9f1ebc78d7047593f9cd633')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnome-vfs/PKGBUILD b/extra/gnome-vfs/PKGBUILD
new file mode 100644
index 000000000..61fbe0212
--- /dev/null
+++ b/extra/gnome-vfs/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 92007 2010-09-28 16:42:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-vfs
+pkgver=2.24.4
+pkgrel=1
+pkgdesc="The GNOME Virtual File System"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('fam' 'gconf>=2.32.0' 'hal>=0.5.13' 'bzip2' 'avahi>=0.6.27' 'smbclient>=3.5.5' 'gnome-mime-data>=2.18.0-2' 'heimdal>=1.3.3' 'gnutls>=2.8.6')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gnome-common')
+options=('!libtool' '!emptydirs' '!makeflags')
+conflicts=(gnome-vfs-samba)
+provides=(gnome-vfs-samba)
+replaces=(gnome-vfs-samba gnome-vfs-extras)
+url="http://www.gnome.org"
+install=gnome-vfs.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.24/gnome-vfs-${pkgver}.tar.bz2
+ hal-show-volume-names.patch
+ gnutls-config.patch)
+sha256sums=('62de64b5b804eb04104ff98fcd6a8b7276d510a49fbd9c0feb568f8996444faa'
+ 'b38b86d6c966dcf64f9140d800aebe8a14845bb8ce7c045f52d4df483cacd23b'
+ '66c7cfb12995c0dd94a2caea95c7e3c55981993f05a79c585d60915ff131955d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ #Archlinux patch (b.g.o #321498)
+ patch -Np1 -i "${srcdir}/hal-show-volume-names.patch"
+
+ #Fix build with new gnutls
+ patch -Np1 -i "${srcdir}/gnutls-config.patch"
+ libtoolize --force
+ gtkdocize
+ aclocal
+ autoconf
+ automake
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-vfs-2.0 \
+ --enable-samba --enable-hal \
+ --enable-avahi --disable-howl \
+ --disable-openssl --enable-gnutls
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-vfs-2.0 ${startdir}/pkg/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnome-vfs/gnome-vfs.install b/extra/gnome-vfs/gnome-vfs.install
new file mode 100644
index 000000000..793a3e7ab
--- /dev/null
+++ b/extra/gnome-vfs/gnome-vfs.install
@@ -0,0 +1,17 @@
+pkgname=gnome-vfs
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/gnome-vfs/gnutls-config.patch b/extra/gnome-vfs/gnutls-config.patch
new file mode 100644
index 000000000..f6fa18b17
--- /dev/null
+++ b/extra/gnome-vfs/gnutls-config.patch
@@ -0,0 +1,25 @@
+# Allow gnome-vfs-2.24 to build with gnutls >= 2.7.0
+# Use pkg-config in place of gnutls own macro since it's not present anymore.
+--- a/configure.in 2009-03-07 19:59:53.805507753 +0100
++++ b/configure.in 2009-03-07 18:34:36.928169018 +0100
+@@ -686,14 +686,14 @@
+ AC_MSG_ERROR([*** Can't use both openssl and gnutls at the same time. Please pick one only. ***])
+ else
+ AC_CHECK_HEADER(gcrypt.h,, AC_MSG_ERROR([*** Need gcrypt.h to compile with GnuTLS support ***]))
+- AM_PATH_LIBGNUTLS(1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
+- have_ssl=true])
++ PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 1.0.0, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
++ have_ssl=true])
+
+ if test "x${LIBGNUTLS_LIBS}" = "x"; then
+- AM_PATH_LIBGNUTLS(0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
+- AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME])
+- have_ssl=true],
+- AC_MSG_ERROR([Unable to find GNUTLS]))
++ PKG_CHECK_MODULES(LIBGNUTLS, gnutls >= 0.5.1, [AC_DEFINE(HAVE_GNUTLS, 1, [Define to 1 if GnuTLS is available])
++ AC_DEFINE(GNUTLS_COMPAT, 1, [FIXME])
++ have_ssl=true],
++ AC_MSG_ERROR([Unable to find GNUTLS]))
+ fi
+ fi
+ fi
diff --git a/extra/gnome-vfs/hal-show-volume-names.patch b/extra/gnome-vfs/hal-show-volume-names.patch
new file mode 100644
index 000000000..5b8420c2b
--- /dev/null
+++ b/extra/gnome-vfs/hal-show-volume-names.patch
@@ -0,0 +1,46 @@
+Index: gnome-vfs-hal-mounts.c
+===================================================================
+RCS file: /cvs/gnome/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c,v
+retrieving revision 1.33
+diff -u -p -r1.33 gnome-vfs-hal-mounts.c
+--- gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c 7 Jul 2006 15:56:57 -0000 1.33
++++ gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c 14 Jul 2006 18:48:51 -0000
+@@ -877,6 +877,7 @@ _hal_add_volume (GnomeVFSVolumeMonitorDa
+ GnomeVFSDrive *drive;
+ GnomeVFSVolumeMonitor *volume_monitor;
+ char *name;
++ char *icon;
+ gboolean allowed_by_policy;
+ const char *backing_udi;
+
+@@ -975,6 +976,8 @@ _hal_add_volume (GnomeVFSVolumeMonitorDa
+ */
+ drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi (volume_monitor, libhal_volume_get_udi (hal_volume));
+ if (drive == NULL && allowed_by_policy) {
++ name = _hal_drive_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume);
++ icon = _hal_drive_policy_get_icon (volume_monitor_daemon, hal_drive, hal_volume);
+ drive = g_object_new (GNOME_VFS_TYPE_DRIVE, NULL);
+ if (libhal_volume_disc_has_audio (hal_volume)) {
+ drive->priv->activation_uri = g_strdup_printf ("cdda://%s",
+@@ -989,16 +992,16 @@ _hal_add_volume (GnomeVFSVolumeMonitorDa
+ * So just set it to the empty string
+ */
+ drive->priv->activation_uri = g_strdup ("");
++ g_free (name);
++ name = _hal_volume_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume);
++ g_free (icon);
++ icon = _hal_volume_policy_get_icon (volume_monitor_daemon, hal_drive, hal_volume);
+ }
+ drive->priv->is_connected = TRUE;
+ drive->priv->device_path = g_strdup (libhal_volume_get_device_file (hal_volume));
+ drive->priv->device_type = _hal_get_gnome_vfs_device_type (hal_drive);
+
+- /* TODO: could add an icon of a drive with media in it since this codepath only
+- * handles drives with media in them
+- */
+- drive->priv->icon = _hal_drive_policy_get_icon (volume_monitor_daemon, hal_drive, NULL);
+- name = _hal_drive_policy_get_display_name (volume_monitor_daemon, hal_drive, hal_volume);
++ drive->priv->icon = icon;
+ drive->priv->display_name = _gnome_vfs_volume_monitor_uniquify_drive_name (volume_monitor, name);
+ g_free (name);
+ name = g_utf8_casefold (drive->priv->display_name, -1);
diff --git a/extra/gnome-vfsmm/PKGBUILD b/extra/gnome-vfsmm/PKGBUILD
new file mode 100644
index 000000000..cb81726bd
--- /dev/null
+++ b/extra/gnome-vfsmm/PKGBUILD
@@ -0,0 +1,24 @@
+#$Id: PKGBUILD 33797 2009-04-04 20:05:13Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=gnome-vfsmm
+pkgver=2.26.0
+pkgrel=1
+pkgdesc="A C++ wrapper for gnome-vfs."
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gnome-vfs>=2.24.1' 'glibmm>=2.20.0')
+makedepends=('pkgconfig' 'doxygen')
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.26/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('d27d34b6a8722c557366729071c1baab')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnomecanvas-perl/PKGBUILD b/extra/gnomecanvas-perl/PKGBUILD
new file mode 100644
index 000000000..da6af9368
--- /dev/null
+++ b/extra/gnomecanvas-perl/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 104924 2011-01-05 15:20:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnomecanvas-perl
+_realname=Gnome2-Canvas
+pkgver=1.002
+pkgrel=7
+pkgdesc="Gnome2-Canvas perl bindings for libgnomecanvas"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('gtk2-perl' 'libgnomecanvas' 'perl')
+options=(!emptydirs)
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('93405a987ba4bbd03c2f91592b88f5cb')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/gnu-netcat/PKGBUILD b/extra/gnu-netcat/PKGBUILD
new file mode 100644
index 000000000..7a1868d37
--- /dev/null
+++ b/extra/gnu-netcat/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 54891 2009-10-11 20:04:37Z giovanni $
+# Maintainer: Tom K <tomk@runbox.com>
+
+pkgname=gnu-netcat
+pkgver=0.7.1
+pkgrel=3
+pkgdesc="GNU rewrite of netcat, the network piping application"
+depends=('glibc' 'texinfo')
+arch=('i686' 'x86_64')
+url="http://netcat.sourceforge.net/"
+license=('GPL')
+replaces=('netcat')
+provides=('netcat')
+install=gnu-netcat.install
+source=(http://downloads.sourceforge.net/sourceforge/netcat/netcat-$pkgver.tar.bz2)
+md5sums=('0a29eff1736ddb5effd0b1ec1f6fe0ef')
+
+build() {
+ cd "${srcdir}/netcat-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gnu-netcat/gnu-netcat.install b/extra/gnu-netcat/gnu-netcat.install
new file mode 100644
index 000000000..a946aa2ee
--- /dev/null
+++ b/extra/gnu-netcat/gnu-netcat.install
@@ -0,0 +1,13 @@
+infodir=/usr/share/info
+
+post_install() {
+ install-info $infodir/netcat.info.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete $infodir/netcat.info.gz $infodir/dir 2> /dev/null
+}
diff --git a/extra/gnucash/PKGBUILD b/extra/gnucash/PKGBUILD
new file mode 100644
index 000000000..21700489e
--- /dev/null
+++ b/extra/gnucash/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 114787 2011-03-16 02:24:49Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Mark Schneider <queueRAM@gmail.com>
+
+pkgname=gnucash
+pkgver=2.4.4
+pkgrel=1
+pkgdesc="A personal and small-business financial-accounting application"
+arch=('i686' 'x86_64')
+url="http://www.gnucash.org"
+license=("GPL")
+depends=('gtkhtml' 'slib' 'goffice' 'guile' 'libofx'
+ 'libgnomeui' 'hicolor-icon-theme' 'libdbi' 'aqbanking'
+ 'desktop-file-utils')
+makedepends=('intltool')
+optdepends=('evince: for print preview'
+ 'gnucash-docs: (AUR) for user documentation'
+ 'perl-finance-quote: for stock information lookups'
+ 'perl-date-manip: for stock information lookups')
+options=('!libtool' '!makeflags')
+install=gnucash.install
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('6ae973bf925cde0721c7c465536bc096')
+sha1sums=('016fccdfe5134783c95dcd5add5190270ade59f2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --sysconfdir=/etc --libexecdir=/usr/lib --enable-ofx --enable-aqbanking
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -dm755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnucash "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gnucash/gnucash.install b/extra/gnucash/gnucash.install
new file mode 100644
index 000000000..d6a48c31b
--- /dev/null
+++ b/extra/gnucash/gnucash.install
@@ -0,0 +1,34 @@
+pkgname=gnucash
+info_dir=usr/share/info
+info_files=(gnucash-design.info)
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gnuchess/PKGBUILD b/extra/gnuchess/PKGBUILD
new file mode 100644
index 000000000..d24bc17cf
--- /dev/null
+++ b/extra/gnuchess/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 108753 2011-02-02 19:55:44Z jgc $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gnuchess
+pkgver=5.08
+pkgrel=1
+pkgdesc="Lets most modern computers play a full game of chess"
+url="http://www.gnu.org/software/chess/chess.html"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc' 'ncurses' 'readline')
+source=(ftp://ftp.gnu.org/pub/gnu/chess/$pkgname-$pkgver.tar.gz)
+md5sums=('9db91dbac6b5b86de0c57a420a9fea57')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr install
+}
diff --git a/extra/gnugo/LICENSE b/extra/gnugo/LICENSE
new file mode 100644
index 000000000..3d6f6878b
--- /dev/null
+++ b/extra/gnugo/LICENSE
@@ -0,0 +1,70 @@
+ Copyrights and License
+
+All files Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+2007, 2008 and 2009 by the Free Software Foundation except as noted below.
+
+All files are under the GNU General Public License, which may be
+found in the file COPYING, with the following exceptions.
+
+* The files interface/gtp.c and gtp.h are copyright 2001 by
+ the Free Software Foundation. In the interests of promoting
+ the Go Text Protocol these two files are licensed under a less
+ restrictive license than the GPL and are free for unrestricted use.
+ The GTP license appears in each file.
+
+* The files gmp.c and gmp.h are copyright Bill Shubert. These
+ are free for unrestricted use.
+
+* The files regression/golois/* and the tests vie.tst, connect.tst,
+ capture.tst and global.tst are copyright Tristan Cazenave and are
+ used with his permission
+
+* The SGF files in regression/games/handtalk are copyright Jessie Annala
+ and are used with permission.
+
+* The SGF files in regression/games/mertin13x13 are copyright Stefan
+ Mertin and are used with permission.
+
+* The remaining SGF files are either copyright by the FSF or are in
+ the public domain.
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\
+ * This is GNU Go, a Go program. Contact gnugo@gnu.org, or see *
+ * http://www.gnu.org/software/gnugo/ for more information. *
+ * *
+ * To facilitate development of the Go Text Protocol, the two *
+ * files gtp.c and gtp.h are licensed under less restrictive *
+ * terms than the rest of GNU Go. *
+ * *
+ * Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 and *
+ * 2009 by the Free Software Foundation. *
+ * *
+ * Permission is hereby granted, free of charge, to any person *
+ * obtaining a copy of this file gtp.c, to deal in the Software *
+ * without restriction, including without limitation the rights *
+ * to use, copy, modify, merge, publish, distribute, and/or *
+ * sell copies of the Software, and to permit persons to whom *
+ * the Software is furnished to do so, provided that the above *
+ * copyright notice(s) and this permission notice appear in all *
+ * copies of the Software and that both the above copyright *
+ * notice(s) and this permission notice appear in supporting *
+ * documentation. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY *
+ * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE *
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR *
+ * PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO *
+ * EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS *
+ * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR *
+ * CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING *
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF *
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT *
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS *
+ * SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name of a copyright *
+ * holder shall not be used in advertising or otherwise to *
+ * promote the sale, use or other dealings in this Software *
+ * without prior written authorization of the copyright holder. *
+\* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
diff --git a/extra/gnugo/PKGBUILD b/extra/gnugo/PKGBUILD
new file mode 100644
index 000000000..e959d7bf8
--- /dev/null
+++ b/extra/gnugo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 27575 2009-02-23 03:41:08Z eric $
+# Maintainer: Jason Chu <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Commiter: damir <damir@archlinux.org>
+
+pkgname=gnugo
+pkgver=3.8
+pkgrel=1
+pkgdesc="This sofware is a program that plays the game of Go"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gnugo/"
+license=('GPL3' 'custom')
+depends=('ncurses' 'glibc' 'texinfo')
+install=gnugo.install
+source=(http://ftp.gnu.org/gnu/gnugo/$pkgname-$pkgver.tar.gz LICENSE)
+md5sums=('6db0a528df58876d2b0ef1659c374a9a' '4df5819356804397c553c95ea8164f11')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ rm -r ${pkgdir}/usr/share/info/dir
+ gzip ${pkgdir}/usr/share/info/*
+ install -Dm644 $srcdir/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/gnugo/gnugo.install b/extra/gnugo/gnugo.install
new file mode 100644
index 000000000..b0271070c
--- /dev/null
+++ b/extra/gnugo/gnugo.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gnugo.info.gz gnugo.info-1.gz gnugo.info-2.gz gnugo.info-3.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/gnumeric/PKGBUILD b/extra/gnumeric/PKGBUILD
new file mode 100644
index 000000000..53d5e3c82
--- /dev/null
+++ b/extra/gnumeric/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 116890 2011-03-26 01:00:08Z heftig $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=gnumeric
+pkgver=1.10.14
+pkgrel=1
+pkgdesc="A GNOME Spreadsheet Program"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/projects/gnumeric/"
+license=('GPL')
+depends=('goffice' 'gconf' 'desktop-file-utils')
+makedepends=('intltool' 'python2' 'gnome-doc-utils' 'pygobject' 'psiconv')
+optdepends=('pygobject: for python plugin support'
+ 'psiconv: for Psion 5 file support'
+ 'yelp: for viewing the help manual')
+install=gnumeric.install
+options=('libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('b655fa76dd2e6654b8543fbcd92982e9fdcb4c0ae113aa577ce114109deb1587')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-schemas-install --enable-ssindex
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnumeric "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -rf "${pkgdir}/etc/gconf"
+}
diff --git a/extra/gnumeric/gnumeric.install b/extra/gnumeric/gnumeric.install
new file mode 100644
index 000000000..50ee0a7e2
--- /dev/null
+++ b/extra/gnumeric/gnumeric.install
@@ -0,0 +1,26 @@
+pkgname=gnumeric
+
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
diff --git a/extra/gnupg/PKGBUILD b/extra/gnupg/PKGBUILD
new file mode 100644
index 000000000..56b0c2274
--- /dev/null
+++ b/extra/gnupg/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 101334 2010-11-28 23:08:17Z tpowa $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=gnupg
+pkgver=1.4.11
+pkgrel=2
+pkgdesc="GNU Privacy Guard - a PGP replacement tool"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('zlib' 'bzip2' 'libldap>=2.4.18' 'libusb-compat' 'curl>=7.16.2' 'readline>=6.0.00')
+source=(ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/gnupg/$pkgname-$pkgver.tar.bz2)
+install=gnupg.install
+url="http://www.gnupg.org/"
+md5sums=('411744e1ef8ce90b87938c4203f001f1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --libexecdir=/usr/lib # docdir can't be set properly
+ make || return 1
+ ln -s ${pkgname}-${pkgver}/scripts ..
+}
+
+package () {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ # fix fileconflict with gnupg2 pkg
+ rm ${pkgdir}/usr/share/man/man1/gpg-zip.1
+}
diff --git a/extra/gnupg/gnupg.install b/extra/gnupg/gnupg.install
new file mode 100644
index 000000000..5a6704716
--- /dev/null
+++ b/extra/gnupg/gnupg.install
@@ -0,0 +1,21 @@
+info_dir=/usr/share/info
+info_files=(gnupg1.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gnupg2/PKGBUILD b/extra/gnupg2/PKGBUILD
new file mode 100644
index 000000000..e2711da0d
--- /dev/null
+++ b/extra/gnupg2/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 106675 2011-01-17 20:37:07Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=gnupg2
+pkgver=2.0.17
+pkgrel=1
+pkgdesc="GNU Privacy Guard 2 - a PGP replacement tool"
+arch=('i686' 'x86_64')
+depends=('libldap' 'curl' 'bzip2' 'zlib' 'libksba' 'libgcrypt'
+ 'pth' 'libusb-compat' 'libassuan' 'texinfo' 'readline' 'pinentry' 'dirmngr')
+license=('GPL')
+url="http://www.gnupg.org/"
+install=${pkgname}.install
+source=(ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-$pkgver.tar.bz2)
+
+build() {
+ cd ${srcdir}/gnupg-$pkgver
+ ./configure --prefix=/usr --libexecdir=/usr/lib/gnupg2 #$EXTRAOPTS
+ make
+}
+
+package() {
+ cd ${srcdir}/gnupg-$pkgver
+ make DESTDIR=${pkgdir} install
+ # move conflicting files
+ mv ${pkgdir}/usr/share/gnupg{,2}
+ rm -f ${pkgdir}/usr/share/info/dir
+}
+md5sums=('123af099740fd159c73a0352a274ec81')
diff --git a/extra/gnupg2/gnupg2-2.0.16-security.patch b/extra/gnupg2/gnupg2-2.0.16-security.patch
new file mode 100644
index 000000000..b265c1532
--- /dev/null
+++ b/extra/gnupg2/gnupg2-2.0.16-security.patch
@@ -0,0 +1,11 @@
+--- kbx/keybox-blob.c (revision 5367)
++++ kbx/keybox-blob.c (working copy)
+@@ -898,6 +898,7 @@
+ rc = gpg_error_from_syserror ();
+ goto leave;
+ }
++ names = tmp;
+ }
+ names[blob->nuids++] = p;
+ if (!i && (p=x509_email_kludge (p)))
+
diff --git a/extra/gnupg2/gnupg2.install b/extra/gnupg2/gnupg2.install
new file mode 100644
index 000000000..27c121ffd
--- /dev/null
+++ b/extra/gnupg2/gnupg2.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gnupg.info gnupg.info-1 gnupg.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/gnuplot/PKGBUILD b/extra/gnuplot/PKGBUILD
new file mode 100644
index 000000000..3c7388288
--- /dev/null
+++ b/extra/gnuplot/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 94793 2010-10-11 09:23:28Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gnuplot
+pkgver=4.4.2
+pkgrel=2
+pkgdesc="Plotting package which outputs to X11, PostScript, PNG, GIF, and others"
+arch=('i686' 'x86_64')
+url="http://www.gnuplot.info"
+license=('custom')
+depends=('readline' 'gd' 'wxgtk' 'cairo' 'libjpeg')
+makedepends=('texinfo' 'emacs' 'texlive-core')
+install=gnuplot.install
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('a4f0dd89f9b9334890464f687ddd9f50')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # fix default source location; use the GDFONTPATH variable to modify at runtime
+ sed -i 's|/usr/X11R6/lib/X11/fonts/truetype|/usr/share/fonts/TTF|' src/variable.c
+ sed -i 's|/X11R6/lib/X11/fonts/Type1|/usr/share/fonts/Type1|' src/variable.c
+
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --libexecdir=/usr/bin \
+ --with-gihdir=/usr/share/gnuplot \
+ --datadir=/usr/share \
+ --with-readline=gnu \
+ --with-texdir=$pkgdir/usr/share/texmf/tex/latex/gnuplot
+ make pkglibexecdir=/usr/bin
+}
+
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr libexecdir=$pkgdir/usr/bin \
+ mandir=$pkgdir/usr/share/man \
+ infodir=$pkgdir/usr/share/info \
+ pkglibexecdir=$pkgdir/usr/bin \
+ GIHDIR=$pkgdir/usr/share/gnuplot \
+ datadir=$pkgdir/usr/share install
+
+ install -Dm644 lisp/dotemacs $pkgdir/usr/share/emacs/site-lisp/dotemacs
+ install -Dm644 Copyright $pkgdir/usr/share/licenses/$pkgname/Copyright
+
+ rm -f $pkgdir/usr/share/texmf-dist/ls-R
+}
diff --git a/extra/gnuplot/gnuplot.install b/extra/gnuplot/gnuplot.install
new file mode 100644
index 000000000..b7a5746ad
--- /dev/null
+++ b/extra/gnuplot/gnuplot.install
@@ -0,0 +1,35 @@
+info_dir=/usr/share/info
+info_files=(gnuplot.info)
+
+post_install() {
+cat << EOF
+==> To add the gnuplot mode in Emacs, add the content of /usr/share/emacs/site-lisp/dotemacs to your ~/.emacs file.
+EOF
+
+ if [ -f /usr/bin/mktexlsr ]; then
+ echo "Updating TeX tree..."
+ mktexlsr
+ fi
+
+for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_remove() {
+ if [ -f /usr/bin/mktexlsr ]; then
+ echo "Updating TeX tree..."
+ mktexlsr
+ fi
+}
+
diff --git a/extra/gnutls/PKGBUILD b/extra/gnutls/PKGBUILD
new file mode 100644
index 000000000..5eaa97b02
--- /dev/null
+++ b/extra/gnutls/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 114396 2011-03-13 09:54:42Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnutls
+pkgver=2.10.5
+pkgrel=1
+pkgdesc="A library which provides a secure layer over a reliable transport layer"
+arch=('i686' 'x86_64')
+license=('GPL3' 'LGPL')
+url="http://www.gnu.org/software/gnutls/"
+install=gnutls.install
+options=('!libtool')
+depends=('gcc-libs>=4.4.3' 'libtasn1>=2.5' 'readline>=6.0' 'zlib' 'libgcrypt>=1.4.5')
+source=(ftp://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('1b032e07ccd22f71a5df78aa73bd91f2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-zlib \
+ --disable-static \
+ --disable-guile
+ make
+ make check # passes all || /bin/true
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gnutls/gnutls.install b/extra/gnutls/gnutls.install
new file mode 100644
index 000000000..9ce7c6edc
--- /dev/null
+++ b/extra/gnutls/gnutls.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gnutls.info-1.gz gnutls.info-2.gz gnutls.info-3.gz gnutls.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/gob2/PKGBUILD b/extra/gob2/PKGBUILD
new file mode 100644
index 000000000..72f0a35df
--- /dev/null
+++ b/extra/gob2/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 79820 2010-05-08 10:48:54Z jgc $
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=gob2
+pkgver=2.0.17
+pkgrel=1
+pkgdesc="GTK Object Builder (GOB) is a simple preprocessor for easily creating GTK objects"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('glib2')
+url="http://www.5z.com/jirka/gob.html"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.0/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e9f52fff7ada88a36da1d412f8b2b57b44cc0527e545cf2f5d873c002c0da7f4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gobject-introspection/PKGBUILD b/extra/gobject-introspection/PKGBUILD
new file mode 100644
index 000000000..c536fc824
--- /dev/null
+++ b/extra/gobject-introspection/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 104477 2011-01-03 16:00:03Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=gobject-introspection
+pkgver=0.9.12
+pkgrel=1
+pkgdesc="Introspection system for GObject-based libraries"
+url="http://live.gnome.org/GObjectInstrospection"
+arch=('x86_64' 'i686')
+license=('LGPL' 'GPL')
+depends=('libffi>=3.0.9' 'glib2>=2.26.0' 'python2')
+makedepends=('cairo')
+conflicts=('gir-repository')
+replaces=('gir-repository')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.9/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('9c0060d66d14a060057a1fc005be73675a1b8a00d4968ce8e78ff2d6b9f84e81')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ sed -i "s|#!/usr/bin/env python|#!/usr/bin/env python2|" \
+ "${pkgdir}"/usr/lib/gobject-introspection/giscanner/*.py
+}
diff --git a/extra/goffice/PKGBUILD b/extra/goffice/PKGBUILD
new file mode 100644
index 000000000..72e67dcec
--- /dev/null
+++ b/extra/goffice/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 116834 2011-03-25 22:19:46Z heftig $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=goffice
+pkgver=0.8.14
+pkgrel=1
+pkgdesc="A library of document-centric objects and utilities built on top of GLib and Gtk+"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL')
+options=('!libtool')
+depends=('gconf' 'libgsf')
+makedepends=('pkgconfig' 'intltool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('6f86a5361ef49c60a4a87c0d5913b001f67782c2cc3eaa13c6557087bee976de')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gok/PKGBUILD b/extra/gok/PKGBUILD
new file mode 100644
index 000000000..062ce91b4
--- /dev/null
+++ b/extra/gok/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 92436 2010-09-29 22:05:23Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gok
+pkgver=2.30.1
+pkgrel=1
+pkgdesc="Gnome Onscreen Keyboard"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnome.org"
+depends=('gnome-speech>=0.4.25' 'at-spi>=1.32' 'libwnck>=2.30.5' 'hicolor-icon-theme' 'libcanberra>=0.25' 'gconf>=2.32.0')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.0')
+options=('!emptydirs')
+groups=('gnome-extra')
+install=gok.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('6422dedb80c2cb3d5ee47238227960dc0e6dde0d0d1351cc7d11de06089c36c0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gok ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gok/gok.install b/extra/gok/gok.install
new file mode 100644
index 000000000..d3d5a9bae
--- /dev/null
+++ b/extra/gok/gok.install
@@ -0,0 +1,22 @@
+pkgname=gok
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
diff --git a/extra/gok/lm.patch b/extra/gok/lm.patch
new file mode 100644
index 000000000..b74ce19b7
--- /dev/null
+++ b/extra/gok/lm.patch
@@ -0,0 +1,12 @@
+diff -up gok-2.27.2/gok/Makefile.in.lm gok-2.27.2/gok/Makefile.in
+--- gok-2.27.2/gok/Makefile.in.lm 2009-06-13 00:59:29.162580117 -0400
++++ gok-2.27.2/gok/Makefile.in 2009-06-13 00:59:11.583583888 -0400
+@@ -374,7 +374,7 @@ INCLUDES = -DGOK_LOCALEDIR=\""$(datadir)
+ -DDATADIR=\""$(datadir)"\" -DLIBDIR=\""$(libdir)"\" \
+ -I$(top_srcdir) -I$(top_builddir) $(GOK_CFLAGS) \
+ $(am__append_1)
+-LDADD = $(GOK_LIBS) $(X_LIBS) @LT_VERSION_INFO@ $(am__append_2)
++LDADD = $(GOK_LIBS) $(X_LIBS) -lm @LT_VERSION_INFO@ $(am__append_2)
+ gok_LDFLAGS = -export-dynamic
+ gok_SOURCES = callbacks.c callbacks.h gok-branchback-stack.c \
+ gok-branchback-stack.h gok-button.c gok-button.h gok-chunker.c \
diff --git a/extra/gpart/PKGBUILD b/extra/gpart/PKGBUILD
new file mode 100644
index 000000000..8798449cd
--- /dev/null
+++ b/extra/gpart/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 112735 2011-03-06 12:44:20Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: dale <dale@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gpart
+pkgver=0.1h
+pkgrel=4
+pkgdesc="A program for recovering corrupt partition tables"
+arch=('i686' 'x86_64')
+url="http://www.stud.uni-hannover.de/user/76201/gpart/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.sfr-fresh.com/linux/misc/${pkgname}-${pkgver}.tar.gz
+ gpart-0.1h-errno.patch
+ gpart-0.1h-vfat.patch
+ gpart-0.1h-ntfs.patch
+ gpart-0.1h-PIC.patch
+ gpart-0.1h-no-_syscall.patch)
+md5sums=('ee3a2d2dde70bcf404eb354b3d1ee6d4'
+ '81eee5d9985df9bf9c23624e46cf945f'
+ 'ae6d86b0268618d34e618824dcd82754'
+ '8161c02116ee4575906587eb09e35bde'
+ 'd3f5b05d12816375f5dcd9a251f72f61'
+ 'f811c6e132b2c0cd2d9cb0fd4933063a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/gpart-0.1h-errno.patch
+ patch -Np1 -i ${srcdir}/gpart-0.1h-vfat.patch
+ patch -Np1 -i ${srcdir}/gpart-0.1h-ntfs.patch
+ patch -Np1 -i ${srcdir}/gpart-0.1h-PIC.patch
+ patch -Np0 -i ${srcdir}/gpart-0.1h-no-_syscall.patch
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+}
diff --git a/extra/gpart/gpart-0.1h-PIC.patch b/extra/gpart/gpart-0.1h-PIC.patch
new file mode 100644
index 000000000..e810bd999
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-PIC.patch
@@ -0,0 +1,20 @@
+--- gpart-0.1h/src/l64seek.c
++++ gpart-0.1h/src/l64seek.c
+@@ -26,7 +26,7 @@
+ } ostck[OSTACKLEN];
+ static int osptr = -1;
+
+-#if defined(__linux__) && defined(__i386__)
++#if defined(__linux__) && defined(__i386__) && ! defined(__PIC__)
+ _syscall5(int,_llseek,uint,fd,ulong,hi,ulong,lo,loff_t *,res,uint,wh)
+ #endif
+
+@@ -36,7 +36,7 @@
+ {
+ off64_t ret = (off64_t)-1;
+
+-#if defined(__linux__) && defined(__i386__)
++#if defined(__linux__) && defined(__i386__) && ! defined(__PIC__)
+ int iret;
+ unsigned long ohi, olo;
+
diff --git a/extra/gpart/gpart-0.1h-errno.patch b/extra/gpart/gpart-0.1h-errno.patch
new file mode 100644
index 000000000..13041c202
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-errno.patch
@@ -0,0 +1,20 @@
+--- gpart-0.1h/src/l64seek.c
++++ gpart-0.1h-working/src/l64seek.c
+@@ -16,6 +16,7 @@
+
+ #include "l64seek.h"
+
++#include <errno.h>
+
+ #define OSTACKLEN 16
+ static struct
+--- gpart-0.1h/src/disku.c
++++ gpart-0.1h-working/src/disku.c
+@@ -20,6 +20,7 @@
+ #include <string.h>
+ #include <sys/ioctl.h>
+ #include "gpart.h"
++#include <errno.h>
+
+ #if defined(__linux__)
+ #include <sys/mount.h>
diff --git a/extra/gpart/gpart-0.1h-no-_syscall.patch b/extra/gpart/gpart-0.1h-no-_syscall.patch
new file mode 100644
index 000000000..fe68d08b6
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-no-_syscall.patch
@@ -0,0 +1,15 @@
+use syscall() rather than _syscall#()
+
+http://bugs.gentoo.org/163800
+
+--- src/l64seek.c
++++ src/l64seek.c
+@@ -27,7 +27,7 @@
+ static int osptr = -1;
+
+ #if defined(__linux__) && defined(__i386__) && ! defined(__PIC__)
+-_syscall5(int,_llseek,uint,fd,ulong,hi,ulong,lo,loff_t *,res,uint,wh)
++#define _llseek(fd,hi,lo,res,wh) syscall(__NR__llseek,fd,hi,lo,res,wh)
+ #endif
+
+
diff --git a/extra/gpart/gpart-0.1h-ntfs.patch b/extra/gpart/gpart-0.1h-ntfs.patch
new file mode 100644
index 000000000..1f887ac47
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-ntfs.patch
@@ -0,0 +1,75 @@
+Ripped out of debian
+
+--- gpart-0.1h.orig/src/gm_ntfs.h
++++ gpart-0.1h/src/gm_ntfs.h
+@@ -14,6 +14,9 @@
+ *
+ */
+
++#include <stdint.h>
++#include <asm/byteorder.h>
++
+ #ifndef _GM_NTFS_H
+ #define _GM_NTFS_H
+
+@@ -29,32 +32,38 @@
+ /* 'NTFS' in little endian */
+ #define NTFS_SUPER_MAGIC 0x5346544E
+
+-#if defined(i386) || defined(__i386__) || defined(__alpha__)
+-
+ /* unsigned integral types */
+ #ifndef NTFS_INTEGRAL_TYPES
+ #define NTFS_INTEGRAL_TYPES
+-typedef unsigned char ntfs_u8;
+-typedef unsigned short ntfs_u16;
+-typedef unsigned int ntfs_u32;
+-typedef s64_t ntfs_u64;
++typedef uint8_t ntfs_u8;
++typedef uint16_t ntfs_u16;
++typedef uint32_t ntfs_u32;
++typedef uint64_t ntfs_u64;
++typedef int8_t ntfs_s8;
++typedef int16_t ntfs_s16;
+ #endif /* NTFS_INTEGRAL_TYPES */
+-#endif /* defined(i386) || defined(__i386__) || defined(__alpha__) */
+-
+-
+-/* Macros reading unsigned integers from a byte pointer */
+-/* these should work for all little endian machines */
+-#define NTFS_GETU8(p) (*(ntfs_u8*)(p))
+-#define NTFS_GETU16(p) (*(ntfs_u16*)(p))
+-#define NTFS_GETU24(p) (NTFS_GETU32(p) & 0xFFFFFF)
+-#define NTFS_GETU32(p) (*(ntfs_u32*)(p))
+-#define NTFS_GETU64(p) (*(ntfs_u64*)(p))
+-
+-/* Macros reading signed integers, returning int */
+-#define NTFS_GETS8(p) ((int)(*(char*)(p)))
+-#define NTFS_GETS16(p) ((int)(*(short*)(p)))
+-#define NTFS_GETS24(p) (NTFS_GETU24(p) < 0x800000 ? (int)NTFS_GETU24(p) :
+-
+
++#define CPU_TO_LE16(a) __cpu_to_le16(a)
++#define CPU_TO_LE32(a) __cpu_to_le32(a)
++#define CPU_TO_LE64(a) __cpu_to_le64(a)
++
++#define LE16_TO_CPU(a) __cpu_to_le16(a)
++#define LE32_TO_CPU(a) __cpu_to_le32(a)
++#define LE64_TO_CPU(a) __cpu_to_le64(a)
++
++/* Macros reading unsigned integers */
++#define NTFS_GETU8(p) (*(ntfs_u8*)(p))
++#define NTFS_GETU16(p) ((ntfs_u16)LE16_TO_CPU(*(ntfs_u16*)(p)))
++#define NTFS_GETU24(p) ((ntfs_u32)NTFS_GETU16(p) | \
++ ((ntfs_u32)NTFS_GETU8(((char*)(p)) + 2) << 16))
++#define NTFS_GETU32(p) ((ntfs_u32)LE32_TO_CPU(*(ntfs_u32*)(p)))
++#define NTFS_GETU64(p) ((ntfs_u64)LE64_TO_CPU(*(ntfs_u64*)(p)))
++
++/* Macros reading signed integers */
++#define NTFS_GETS8(p) ((*(ntfs_s8*)(p)))
++#define NTFS_GETS16(p) ((ntfs_s16)LE16_TO_CPU(*(short*)(p)))
++#define NTFS_GETS24(p) (NTFS_GETU24(p) < 0x800000 ? \
++ (int)NTFS_GETU24(p) : \
++ (int)(NTFS_GETU24(p) - 0x1000000))
+
+ #endif /* _GM_NTFS_H */
diff --git a/extra/gpart/gpart-0.1h-vfat.patch b/extra/gpart/gpart-0.1h-vfat.patch
new file mode 100644
index 000000000..7234ac689
--- /dev/null
+++ b/extra/gpart/gpart-0.1h-vfat.patch
@@ -0,0 +1,17 @@
+Ripped out of debian
+
+--- gpart-0.1h.orig/src/gm_fat.h
++++ gpart-0.1h/src/gm_fat.h
+@@ -60,6 +60,10 @@
+ __u16 info_sector; /* filesystem info sector */
+ __u16 backup_boot; /* backup boot sector */
+ __u16 reserved2[6]; /* Unused */
+-};
+-
++} __attribute__ ((packed));
++/* "__attribute__ ((packed))"
++ added by davidc@debian.org,
++ as suggested by falk@zxmjz18.extern.uni-tuebingen.de
++ Fri Jul 07 18:04:15 2000
++ in debian bug report #66893 "FAT detection broken on Alpha" */
+ #endif /* _GM_FAT_H */
diff --git a/extra/gparted/PKGBUILD b/extra/gparted/PKGBUILD
new file mode 100644
index 000000000..f9921fc8b
--- /dev/null
+++ b/extra/gparted/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 112741 2011-03-06 12:56:57Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+
+pkgname=gparted
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="A Partition Magic clone, frontend to GNU Parted"
+arch=('i686' 'x86_64')
+url="http://gparted.sourceforge.net"
+license=('GPL')
+depends=('parted' 'gtkmm' 'libsigc++')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils')
+optdepends=('e2fsprogs: for ext2/ext3 partitions'
+ 'dosfstools: for fat16/32 partitions'
+ 'jfsutils: for jfs partitions'
+ 'ntfsprogs: for ntfs partitions'
+ 'reiserfsprogs: for reiser partitions'
+ 'xfsprogs: for xfs partitions'
+ 'gksu: to run gparted directly from menu'
+ 'gpart: for recovering corrupt partition tables')
+install=gparted.install
+source=(http://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('29adfe33df34c03b7f800ce5374e957a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install || return 1
+ sed -i -e "s:Exec= /usr/sbin:Exec=gksu /usr/sbin:g" ${pkgdir}/usr/share/applications/gparted.desktop || return 1
+}
diff --git a/extra/gparted/gparted.install b/extra/gparted/gparted.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/gparted/gparted.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gperf/PKGBUILD b/extra/gperf/PKGBUILD
new file mode 100644
index 000000000..58bd118a6
--- /dev/null
+++ b/extra/gperf/PKGBUILD
@@ -0,0 +1,22 @@
+#$Id: PKGBUILD 37369 2009-05-01 06:35:08Z eric $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gperf
+pkgver=3.0.4
+pkgrel=1
+pkgdesc="Perfect hash function generator."
+arch=('x86_64' 'i686')
+url="http://www.gnu.org/software/gperf/"
+license=('GPL3')
+depends=('gcc-libs' 'texinfo')
+install=gperf.install
+source=(ftp://ftp.gnu.org/gnu/gperf/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c1f1db32fb6598d6a93e6e88796a8632')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ gzip ${pkgdir}/usr/share/info/gperf.info
+}
diff --git a/extra/gperf/gperf.install b/extra/gperf/gperf.install
new file mode 100644
index 000000000..1c20e2f5c
--- /dev/null
+++ b/extra/gperf/gperf.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gperf.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/gpgme/PKGBUILD b/extra/gpgme/PKGBUILD
new file mode 100644
index 000000000..7fe998fc2
--- /dev/null
+++ b/extra/gpgme/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 78424 2010-04-23 17:42:52Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=gpgme
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="A C wrapper library for GnuPG"
+arch=('i686' 'x86_64')
+url="http://www.gnupg.org/related_software/gpgme/"
+license=('GPL')
+depends=('libgpg-error' 'pth' 'gnupg' 'gnupg2')
+install=${pkgname}.install
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('f148c73f6f540f91e02141df72844f62')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+ rm ${pkgdir}/usr/share/info/dir
+ gzip ${pkgdir}/usr/share/info/*
+}
diff --git a/extra/gpgme/gpgme.install b/extra/gpgme/gpgme.install
new file mode 100644
index 000000000..b54620d9a
--- /dev/null
+++ b/extra/gpgme/gpgme.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(gpgme.info gpgme.info-1 gpgme.info-2)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/gphoto2/PKGBUILD b/extra/gphoto2/PKGBUILD
new file mode 100644
index 000000000..87e3e619f
--- /dev/null
+++ b/extra/gphoto2/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 97700 2010-11-01 13:01:49Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+pkgname=gphoto2
+pkgver=2.4.10
+pkgrel=1
+pkgdesc="A digital camera download and access program."
+arch=(i686 x86_64)
+url="http://www.gphoto.org"
+license=('GPL' 'LGPL')
+depends=('libgphoto2>=2.4.10' 'popt' 'aalib' 'readline>=6.1')
+source=(http://downloads.sourceforge.net/gphoto/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3c86c9824b9bfc57a52be5f84ad205f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gpsd/LICENSE b/extra/gpsd/LICENSE
new file mode 100644
index 000000000..076538678
--- /dev/null
+++ b/extra/gpsd/LICENSE
@@ -0,0 +1,38 @@
+ COPYRIGHTS
+
+Compilation copyright is held by the GPSD project. All rights reserved.
+
+GPSD project copyrights are assigned to the project lead, currently
+Eric S. Raymond. Other portions of the GPSD code are Copyright (c)
+1997, 1998, 1999, 2000, 2001, 2002 by Remco Treffkorn, and others
+Copyright (c) 2005 by Eric S. Raymond. For other copyrights, see
+individual files.
+
+ BSD LICENSE
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:<P>
+
+Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.<P>
+
+Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.<P>
+
+Neither name of the GPSD project nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/extra/gpsd/PKGBUILD b/extra/gpsd/PKGBUILD
new file mode 100644
index 000000000..674351838
--- /dev/null
+++ b/extra/gpsd/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 116080 2011-03-22 18:18:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: Giacomo Rizzo <alt@free-os.it>
+
+pkgname=gpsd
+pkgver=2.95
+pkgrel=8
+pkgdesc="GPS daemon and library to support USB/serial GPS devices"
+arch=('i686' 'x86_64')
+url="http://gpsd.berlios.de"
+license=('BSD')
+depends=('lesstif' 'libxaw' 'python2' 'pth' 'libusb' 'desktop-file-utils')
+optdepends=('php: generate a PHP status page for your GPS'
+ 'php-gd: image support for the PHP status page')
+makedepends=('docbook-xsl')
+backup=('etc/conf.d/gpsd' 'lib/udev/rules.d/99-gpsd-usb.rules')
+options=('!libtool')
+install="${pkgname}.install"
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'gpsd' 'LICENSE')
+md5sums=('12535a9ed9fecf9ea2c5bdc9840da5ae'
+ 'f929322fc4670543fcb36dafc7bb9e03'
+ 'd217a23f408e91c94359447735bc1800')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # install python to the same DESTDIR given make
+ sed -i 's|--prefix=${prefix} # --root=$(DESTDIR)|--prefix=${prefix} --root=$(DESTDIR)|' Makefile.am Makefile.in
+
+ # fix python 2.7 path
+ sed -i 's|/usr/bin/python|/usr/bin/python2|' gpsd.hotplug{,.wrapper}
+ sed -i 's|/usr/bin/python2.6|/usr/bin/python2|' valgrind-audit
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' gpscat \
+ gpsfake gpsprof xgps xgpsspeed gps/gps.py
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --disable-libQgpsmm \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Fix man pages path (FS#21715)
+ sed -i 's|.so gps.1|.so man1/gps.1|' cgps.1 lcdgps.1 xgps.1 xgpsspeed.1
+
+ make DESTDIR="${pkgdir}" install
+
+ # Our own udev-install since the Makefile uses absolute paths
+ # Original file names are [mostly] unmodified: useful to match process name in case of error
+ # Following the switch from hotplug to udev helper scripts now live in /lib/udev/ instead of /etc/hotplug/
+ sed -i 's|GPSD_OPTIONS=""|GPSD_OPTIONS="-P /var/run/gpsd.pid"|' packaging/deb/etc_default_gpsd
+ sed -i 's|"/var/run/gpsd.sock"|"/var/run/gpsd/gpsd.sock"|' packaging/deb/etc_default_gpsd
+ install -D -m644 "packaging/deb/etc_default_gpsd" "${pkgdir}/etc/conf.d/gpsd"
+
+ sed -i 's|Id: gpsd.rules|Id: 99-gpsd-usb.rules|' gpsd.rules
+ install -D -m644 "gpsd.rules" "${pkgdir}/lib/udev/rules.d/99-gpsd-usb.rules"
+
+ sed -i 's|/etc/default/gpsd|/etc/conf.d/gpsd|' gpsd.hotplug.wrapper
+ install -D -m755 gpsd.hotplug.wrapper "${pkgdir}/lib/udev/gpsd.hotplug.wrapper"
+
+ # Patch a path bug. Check to see if fixed in ensuing releases
+ sed -i 's|gpsdcmd = "gpsd %s|gpsdcmd = "/usr/sbin/gpsd %s|' gpsd.hotplug
+ install -D -m755 gpsd.hotplug "${pkgdir}/lib/udev/gpsd.hotplug"
+
+ install -D -m644 packaging/X11/xgps.desktop ${pkgdir}/usr/share/applications/xgps.desktop
+ install -D -m644 packaging/X11/xgpsspeed.desktop ${pkgdir}/usr/share/applications/xgpsspeed.desktop
+ install -D -m644 packaging/X11/gpsd-logo.png ${pkgdir}/usr/share/gpsd/gpsd-logo.png
+
+ install -D -m755 "${srcdir}/gpsd" "${pkgdir}/etc/rc.d/gpsd"
+
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/gpsd/gpsd b/extra/gpsd/gpsd
new file mode 100755
index 000000000..b0f22c735
--- /dev/null
+++ b/extra/gpsd/gpsd
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/gpsd ] && . /etc/conf.d/gpsd
+
+NAME=gpsd
+DAEMON=/usr/sbin/$NAME
+PID=$(pidof -o %PPID /usr/sbin/gpsd)
+
+case "$1" in
+ start)
+ stat_busy "Starting gpsd"
+ [ ! -d /var/run/gpsd ] && install -d /var/run/gpsd
+ [ -z "$PID" ] && "$DAEMON" ${GPSD_OPTIONS} -F ${GPSD_SOCKET} ${DEVICES}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon gpsd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping gpsd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/$PID.pid &>/dev/null
+ rm_daemon gpsd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/gpsd/gpsd.install b/extra/gpsd/gpsd.install
new file mode 100644
index 000000000..ee661fcb1
--- /dev/null
+++ b/extra/gpsd/gpsd.install
@@ -0,0 +1,16 @@
+post_install() {
+ echo ">>> Note: the supplied gpsd udev rules are device-specific, so"
+ echo ">>> if your device isn't detected correctly, please use lsusb or"
+ echo ">>> another suitable tool to determine the proper device IDs and"
+ echo ">>> use the commented rules to fill in the blanks for your device."
+
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/extra/gptfdisk/PKGBUILD b/extra/gptfdisk/PKGBUILD
new file mode 100644
index 000000000..9da2ea890
--- /dev/null
+++ b/extra/gptfdisk/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116996 2011-03-27 12:25:01Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org
+# Contributor: Hokum <hokum_at_mail_dot_ru>
+pkgname=gptfdisk
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="A text-mode partitioning tool that works on Globally Unique Identifier (GUID) Partition Table (GPT) disks."
+arch=('i686' 'x86_64')
+url="http://www.rodsbooks.com/gdisk"
+depends=('gcc-libs' 'util-linux' 'popt' 'icu')
+replaces=('gdisk')
+license=('GPL2')
+source=(http://www.rodsbooks.com/gdisk/$pkgname-$pkgver.tgz)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+}
+
+package () {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m755 gdisk $pkgdir/sbin/gdisk
+ install -D -m755 sgdisk $pkgdir/sbin/sgdisk
+ install -D -m755 fixparts $pkgdir/sbin/fixparts
+ install -D -m644 gdisk.8 $pkgdir/usr/share/man/man8/gdisk.8
+ install -D -m644 sgdisk.8 $pkgdir/usr/share/man/man8/sgdisk.8
+ install -D -m644 README $pkgdir/usr/share/gdisk/README
+ install -D -m644 NEWS pkgdir/usr/share/gdisk/NEWS
+}
+md5sums=('7c8d810df61e81c821bef399b832e89e')
diff --git a/extra/gqmpeg/PKGBUILD b/extra/gqmpeg/PKGBUILD
new file mode 100644
index 000000000..c89d063ca
--- /dev/null
+++ b/extra/gqmpeg/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 64726 2010-01-22 01:20:44Z eric $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gqmpeg
+pkgver=0.91.1
+pkgrel=4
+pkgdesc="A frontend to mpg123 with extensive themeability and playlist support"
+arch=('i686' 'x86_64')
+url="http://gqmpeg.sourceforge.net/"
+license=('GPL2')
+depends=('bash' 'gtk2' 'imlib' 'mpg123')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('e22eda86fc3e59108c8d04abc37b3e56')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man install
+}
diff --git a/extra/gqview/PKGBUILD b/extra/gqview/PKGBUILD
new file mode 100644
index 000000000..2d61ae442
--- /dev/null
+++ b/extra/gqview/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 68535 2010-02-13 03:58:08Z dgriffiths $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=gqview
+pkgver=2.0.4
+pkgrel=3
+pkgdesc="An image browser and viewer"
+arch=('i686' 'x86_64')
+url="http://gqview.sourceforge.net/"
+license=('GPL')
+depends=('gtk2')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7196deab04db94cec2167637cddc02f9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ CPPFLAGS="-D_FILE_OFFSET_BITS=64" ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/grantlee/PKGBUILD b/extra/grantlee/PKGBUILD
new file mode 100644
index 000000000..fb95cc7b9
--- /dev/null
+++ b/extra/grantlee/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=grantlee
+pkgver=0.1.8
+pkgrel=1
+pkgdesc="A string template engine based on the Django template system and written in Qt"
+arch=('i686' 'x86_64')
+url="http://www.gitorious.org/grantlee/pages/Home"
+license=('LGPL3')
+depends=('qt')
+makedepends=('cmake')
+source=("http://downloads.grantlee.org/${pkgname}-${pkgver}.tar.gz")
+md5sums=('67c24d9eb6be66997ac5d0803bde06de')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/graphicsmagick/PKGBUILD b/extra/graphicsmagick/PKGBUILD
new file mode 100644
index 000000000..82f855ed9
--- /dev/null
+++ b/extra/graphicsmagick/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 103133 2010-12-15 19:32:43Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Anton Leontiev <bunder@t-25.ru>
+
+pkgname=graphicsmagick
+pkgver=1.3.12
+pkgrel=1
+pkgdesc="Image processing system"
+arch=('i686' 'x86_64')
+url="http://www.graphicsmagick.org/"
+license=('MIT')
+makedepends=('perl')
+depends=('bzip2' 'freetype2' 'ghostscript' 'jasper' 'lcms' 'libsm'
+ 'libtiff' 'libwmf' 'libxml2' 'libtool')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-history/1.3/GraphicsMagick-${pkgver}.tar.gz)
+md5sums=('2cf6e2eea0d7af3019c9a89b81aad624')
+
+build() {
+ cd "${srcdir}/GraphicsMagick-$pkgver"
+
+ ./configure --prefix=/usr --with-perl --enable-shared --with-gs-font-dir=/usr/share/fonts/Type1
+ make
+}
+
+package() {
+ cd "${srcdir}/GraphicsMagick-$pkgver"
+
+ make DESTDIR="${pkgdir}" install
+
+ # Install MIT license
+ install -Dm644 "Copyright.txt" "${pkgdir}/usr/share/licenses/$pkgname/Copyright.txt"
+
+ # Install perl bindings
+ # The patching was introduced in order to build perl module without installing package itself and
+ # not to introduce unnecessary path into LD_RUN_PATH
+ cd PerlMagick
+ sed -i -e "s:'LDDLFLAGS' => \"\(.*\)\":'LDDLFLAGS' => \"-L${pkgdir}/usr/lib \1\":" Makefile.PL
+ perl Makefile.PL INSTALLDIRS=vendor PREFIX=/usr DESTDIR="${pkgdir}"
+ sed -i -e "s/LDLOADLIBS =/LDLOADLIBS = -lGraphicsMagick/" Makefile
+ make
+ make install
+
+ # Remove perllocal.pod and .packlist
+ rm -rf "${pkgdir}/usr/lib/perl5/core_perl"
+ rm "${pkgdir}/usr/lib/perl5/vendor_perl/auto/Graphics/Magick/.packlist"
+}
diff --git a/extra/graphite/PKGBUILD b/extra/graphite/PKGBUILD
new file mode 100644
index 000000000..622ab8eb0
--- /dev/null
+++ b/extra/graphite/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 51199 2009-09-05 20:11:42Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+# build twice that pango-graphite can pickup the new libgraphite dependency - take care when .so names happen!
+
+pkgbase=graphite
+pkgname=('libgraphite' 'pango-graphite')
+pkgver=2.3.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://graphite.sil.org/"
+makedepends=('pango' 'gcc-libs')
+options=('!libtool' '!emptydirs')
+source=(http://downloads.sourceforge.net/project/silgraphite/silgraphite/${pkgver}/silgraphite-${pkgver}.tar.gz)
+md5sums=('d35724900f6a4105550293686688bbb3')
+
+build() {
+ cd "${srcdir}/silgraphite-${pkgver}"
+ pushd engine
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ popd
+
+ pushd wrappers/pangographite
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ popd
+}
+
+package_libgraphite() {
+ pkgdesc="SILGraphite - a \"smart font\" rendering engine - the libs and headers"
+ license=('custom_SIL Dual license')
+ depends=('gcc-libs')
+
+ cd "${srcdir}/silgraphite-${pkgver}"/engine
+ make DESTDIR="$pkgdir/" install || return 1
+
+ # licenses
+ mkdir -p "${pkgdir}"/usr/share/licenses/${pkgname}
+ install -m644 license/*.txt "${pkgdir}"/usr/share/licenses/${pkgname}/
+}
+
+package_pango-graphite() {
+ pkgdesc="SILGraphite support for pango"
+ license=('LGPL')
+ depends=('pango' 'libgraphite')
+ install=pango-graphite.install
+
+ cd "${srcdir}/silgraphite-${pkgver}"/wrappers/pangographite
+ make DESTDIR="$pkgdir/" install || return 1
+} \ No newline at end of file
diff --git a/extra/graphite/pango-graphite.install b/extra/graphite/pango-graphite.install
new file mode 100644
index 000000000..46bc44611
--- /dev/null
+++ b/extra/graphite/pango-graphite.install
@@ -0,0 +1,12 @@
+post_install() {
+ usr/bin/pango-querymodules >etc/pango/pango.modules
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ post_install $1
+}
+
diff --git a/extra/graphviz/LICENSE b/extra/graphviz/LICENSE
new file mode 100644
index 000000000..16cc69a52
--- /dev/null
+++ b/extra/graphviz/LICENSE
@@ -0,0 +1,87 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
diff --git a/extra/graphviz/PKGBUILD b/extra/graphviz/PKGBUILD
new file mode 100644
index 000000000..3fd2a00e1
--- /dev/null
+++ b/extra/graphviz/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 110525 2011-02-19 18:19:40Z bisson $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=graphviz
+pkgver=2.26.3
+pkgrel=3
+pkgdesc='Graph visualization software'
+url='http://www.graphviz.org/'
+license=('custom:EPL')
+arch=('i686' 'x86_64')
+depends=('gd' 'librsvg' 'libxaw' 'ghostscript' 'pango')
+makedepends=('swig' 'mono' 'guile' 'lua' 'ocaml' 'perl' 'php' 'python2' 'r' 'ruby' 'tk')
+optdepends=('mono: sharp bindings'
+ 'guile: guile bindings'
+ 'lua: lua bindings'
+ 'ocaml: ocaml bindings'
+ 'perl: perl bindings'
+ 'php: php bindings'
+ 'python2: python bindings'
+ 'r: r bindings'
+ 'ruby: ruby bindings'
+ 'tcl: tcl bindings')
+source=("${url}/pub/${pkgname}/stable/SOURCES/${pkgname}-${pkgver}.tar.gz"
+ 'LICENSE')
+sha1sums=('04503ac5a9eaa579859f0d017811fa245717edec'
+ 'e78277e502c29abb74b9587a5dc951ec392554ea')
+
+options=('!libtool')
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i "/RUBY_INCLUDES=\"/s|\"$| `eval echo -I/usr/include/ruby-1.9.1/{$CARCH-linux,ruby/backward,}`\"|" configure
+ sed -i '/LIBPOSTFIX="64"/d' configure
+ export PYTHON=python2
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # cf. http://www.graphviz.org/License.php
+ install -Dm644 ../LICENSE "${pkgdir}"/usr/share/licenses/graphviz/LICENSE
+}
diff --git a/extra/graphviz/install b/extra/graphviz/install
new file mode 100644
index 000000000..00510e3f6
--- /dev/null
+++ b/extra/graphviz/install
@@ -0,0 +1,17 @@
+# arg 1: the new package version
+post_install() {
+ # Create plugin config /usr/lib/graphviz/config6
+ rm -f usr/lib/graphviz/config{,6}
+ usr/bin/dot -c
+}
+
+# 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() {
+ rm -f usr/lib/graphviz/config{,6}
+}
diff --git a/extra/grip/PKGBUILD b/extra/grip/PKGBUILD
new file mode 100644
index 000000000..9cc95af96
--- /dev/null
+++ b/extra/grip/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 57044 2009-10-31 11:06:52Z allan $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Todd Musall <tmusall@comcast.net>
+
+pkgname=grip
+pkgver=3.3.1
+pkgrel=8
+pkgdesc="A cd-player and ripper for the Gnome desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://nostatic.org/grip/"
+depends=('vte' 'curl' 'libgnomeui' 'id3lib' 'cdparanoia')
+install=grip.install
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4b4233999b9f2bc85c711092553ea9aa')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/grip/grip.install b/extra/grip/grip.install
new file mode 100644
index 000000000..db4c764ac
--- /dev/null
+++ b/extra/grip/grip.install
@@ -0,0 +1,33 @@
+
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+post_install() {
+ cat << EOM
+
+ --> please note that you will need "yelp" to display the help and the notices
+ --> of grip. Every other functionality can be used out of the box.
+
+EOM
+}
+
+# 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() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+$op $*
diff --git a/extra/gsf-sharp/PKGBUILD b/extra/gsf-sharp/PKGBUILD
new file mode 100644
index 000000000..c0857719e
--- /dev/null
+++ b/extra/gsf-sharp/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 78202 2010-04-20 01:26:27Z dgriffiths $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=gsf-sharp
+pkgver=0.8.1
+pkgrel=3
+pkgdesc="libgsf .NET binding"
+arch=(i686 x86_64)
+url="http://go-mono.org/"
+license=('LGPL2')
+depends=('libgsf>=1.14.1' 'gtk-sharp-2>=2.10')
+makedepends=('pkgconfig')
+options=(!libtool)
+source=(http://primates.ximian.com/~joe/${pkgname}-${pkgver}.tar.gz)
+md5sums=('92bb68612bdcd8ca3c475b3fee097968')
+
+build() {
+ export MONO_SHARED_DIR=${srcdir}/.wabi
+ mkdir -p ${MONO_SHARED_DIR}
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+ rm -rf ${MONO_SHARED_DIR}
+}
+
diff --git a/extra/gsl/PKGBUILD b/extra/gsl/PKGBUILD
new file mode 100644
index 000000000..e78080979
--- /dev/null
+++ b/extra/gsl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 77275 2010-04-11 19:10:03Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Juergen Hoetzel <juergen.archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=gsl
+pkgver=1.14
+pkgrel=1
+pkgdesc="The GNU Scientific Library (GSL) is a modern numerical library for C and C++ programmers"
+url="http://www.gnu.org/software/gsl/gsl.html"
+source=(http://ftp.belnet.be/mirror/ftp.gnu.org/gnu/gsl/$pkgname-$pkgver.tar.gz)
+install=gsl.install
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('glibc' 'bash')
+options=('!libtool')
+md5sums=('d55e7b141815412a072a3f0e12442042')
+
+build() {
+ unset LDFLAGS
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/gsl/gsl.install b/extra/gsl/gsl.install
new file mode 100644
index 000000000..c5697deda
--- /dev/null
+++ b/extra/gsl/gsl.install
@@ -0,0 +1,21 @@
+ infodir=/usr/share/info
+ filelist=(gsl-ref.info.gz)
+
+ post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+
+ }
+
+ post_upgrade() {
+ post_install $1
+ }
+
+ pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+
+ }
+
diff --git a/extra/gsm/PKGBUILD b/extra/gsm/PKGBUILD
new file mode 100644
index 000000000..647cd2778
--- /dev/null
+++ b/extra/gsm/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Maxime de Roucy <maxime.deroucy@gmail.com>
+# Contributor: Darwin Bautista <djclue917@gmail.com>
+
+pkgname=gsm
+pkgver=1.0.13
+pkgrel=6
+pkgdesc="Shared libraries for GSM 06.10 lossy speech compression"
+arch=('i686' 'x86_64')
+url="http://www.quut.com/gsm/"
+license=('custom')
+depends=('glibc')
+source=(http://www.quut.com/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ gsm.patch)
+md5sums=('c1ba392ce61dc4aff1c29ea4e92f6df4'
+ '30f46c92d0a5e5654258e707a9e8b5a6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver%.*}-pl${pkgver##*.}/"
+
+ patch -Np0 -i "${srcdir}/${pkgname}.patch"
+
+ # flags for shared lib
+ CFLAGS="${CFLAGS} -fPIC"
+ make CCFLAGS="-c ${CFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver%.*}-pl${pkgver##*.}/"
+
+ # Prepare directories
+ install -m755 -d "${pkgdir}"/usr/{bin,lib,include/gsm,share/{licenses/${pkgname},man/man{1,3}}}
+
+ make -j1 INSTALL_ROOT="${pkgdir}/usr" \
+ GSM_INSTALL_INC="${pkgdir}/usr/include/gsm" \
+ GSM_INSTALL_MAN="${pkgdir}/usr/share/man/man3" \
+ TOAST_INSTALL_MAN="${pkgdir}/usr/share/man/man1" \
+ install
+
+ # Install license
+ install -m644 COPYRIGHT ${pkgdir}/usr/share/licenses/${pkgname}/license.txt || return 1
+}
diff --git a/extra/gsm/gsm.patch b/extra/gsm/gsm.patch
new file mode 100644
index 000000000..821f3a599
--- /dev/null
+++ b/extra/gsm/gsm.patch
@@ -0,0 +1,198 @@
+--- Makefile 2006-04-26 15:14:26.000000000 -0400
++++ Makefile 2010-06-19 16:53:25.000000000 -0400
+@@ -44,7 +44,7 @@
+ # CCFLAGS = -c -O
+
+ CC = gcc -ansi -pedantic
+-CCFLAGS = -c -O2 -DNeedFunctionPrototypes=1
++CCFLAGS = -c -O2 -fPIC -DNeedFunctionPrototypes=1
+
+ LD = $(CC)
+
+@@ -96,11 +96,11 @@
+ # Other tools
+
+ SHELL = /bin/sh
+-LN = ln
++LN = ln -s -f
+ BASENAME = basename
+ AR = ar
+ ARFLAGS = cr
+-RMFLAGS =
++RMFLAGS = -f
+ FIND = find
+ COMPRESS = compress
+ COMPRESSFLAGS =
+@@ -139,7 +139,7 @@
+
+ # Targets
+
+-LIBGSM = $(LIB)/libgsm.a
++LIBGSMSO = $(LIB)/libgsm.so
+
+ TOAST = $(BIN)/toast
+ UNTOAST = $(BIN)/untoast
+@@ -257,7 +257,7 @@
+ # Install targets
+
+ GSM_INSTALL_TARGETS = \
+- $(GSM_INSTALL_LIB)/libgsm.a \
++ $(GSM_INSTALL_LIB)/libgsm.so \
+ $(GSM_INSTALL_INC)/gsm.h \
+ $(GSM_INSTALL_MAN)/gsm.3 \
+ $(GSM_INSTALL_MAN)/gsm_explode.3 \
+@@ -279,7 +279,7 @@
+
+ # Target rules
+
+-all: $(LIBGSM) $(TOAST) $(TCAT) $(UNTOAST)
++all: $(LIBGSMSO) $(TOAST) $(TCAT) $(UNTOAST)
+ @-echo $(ROOT): Done.
+
+ tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
+@@ -299,24 +299,23 @@
+
+ # The basic API: libgsm
+
+-$(LIBGSM): $(LIB) $(GSM_OBJECTS)
+- -rm $(RMFLAGS) $(LIBGSM)
+- $(AR) $(ARFLAGS) $(LIBGSM) $(GSM_OBJECTS)
+- $(RANLIB) $(LIBGSM)
+-
++$(LIBGSMSO): $(LIB) $(GSM_OBJECTS)
++ $(LD) -shared -Wl,-soname,libgsm.so.1 -o $@.1.0.13 $(GSM_OBJECTS)
++ $(LN) libgsm.so.1.0.13 $(LIBGSMSO).1
++ $(LN) libgsm.so.1.0.13 $(LIBGSMSO)
+
+ # Toast, Untoast and Tcat -- the compress-like frontends to gsm.
+
+-$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSM)
+- $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSM) $(LDLIB)
++$(TOAST): $(BIN) $(TOAST_OBJECTS) $(LIBGSMSO)
++ $(LD) $(LFLAGS) -o $(TOAST) $(TOAST_OBJECTS) $(LIBGSMSO) $(LDLIB)
+
+ $(UNTOAST): $(BIN) $(TOAST)
+ -rm $(RMFLAGS) $(UNTOAST)
+- $(LN) $(TOAST) $(UNTOAST)
++ $(LN) toast $(UNTOAST)
+
+ $(TCAT): $(BIN) $(TOAST)
+ -rm $(RMFLAGS) $(TCAT)
+- $(LN) $(TOAST) $(TCAT)
++ $(LN) toast $(TCAT)
+
+
+ # The local bin and lib directories
+@@ -351,53 +350,54 @@
+ fi
+
+ $(TOAST_INSTALL_BIN)/toast: $(TOAST)
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $(TOAST) $@
+ chmod 755 $@
+
+ $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast
+- -rm $@
+- ln $? $@
++ -rm $(RMFLAGS) $@
++ $(LN) toast $@
+
+ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast
+- -rm $@
+- ln $? $@
++ -rm $(RMFLAGS) $@
++ $(LN) toast $@
+
+ $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm.3: $(MAN)/gsm.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm_option.3: $(MAN)/gsm_option.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm_explode.3: $(MAN)/gsm_explode.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_MAN)/gsm_print.3: $(MAN)/gsm_print.3
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
+ $(GSM_INSTALL_INC)/gsm.h: $(INC)/gsm.h
+- -rm $@
+- cp $? $@
+- chmod 444 $@
+-
+-$(GSM_INSTALL_LIB)/libgsm.a: $(LIBGSM)
+- -rm $@
++ -rm $(RMFLAGS) $@
+ cp $? $@
+ chmod 444 $@
+
++$(GSM_INSTALL_LIB)/libgsm.so: $(LIBGSMSO)
++ -rm $(RMFLAGS) $@ $@.1 $@.1.0.13
++ cp $?.1.0.13 $@.1.0.13
++ chmod 755 $@.1.0.13
++ $(LN) libgsm.so.1.0.13 $@
++ $(LN) libgsm.so.1.0.13 $@.1
+
+ # Distribution
+
+@@ -425,7 +425,7 @@
+ -print | xargs rm $(RMFLAGS)
+
+ clean: semi-clean
+- -rm $(RMFLAGS) $(LIBGSM) $(ADDTST)/add \
++ -rm $(RMFLAGS) $(LIBGSMSO)* $(ADDTST)/add \
+ $(TOAST) $(TCAT) $(UNTOAST) \
+ $(ROOT)/gsm-1.0.tar.Z
+
+@@ -473,22 +473,22 @@
+ $(TST)/test-result: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/run
+ ( cd $(TST); ./run )
+
+-$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSM)
++$(TST)/lin2txt: $(TST)/lin2txt.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/lin2txt \
+- $(TST)/lin2txt.o $(LIBGSM) $(LDLIB)
++ $(TST)/lin2txt.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSM)
++$(TST)/lin2cod: $(TST)/lin2cod.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/lin2cod \
+- $(TST)/lin2cod.o $(LIBGSM) $(LDLIB)
++ $(TST)/lin2cod.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSM)
++$(TST)/gsm2cod: $(TST)/gsm2cod.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/gsm2cod \
+- $(TST)/gsm2cod.o $(LIBGSM) $(LDLIB)
++ $(TST)/gsm2cod.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSM)
++$(TST)/cod2txt: $(TST)/cod2txt.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/cod2txt \
+- $(TST)/cod2txt.o $(LIBGSM) $(LDLIB)
++ $(TST)/cod2txt.o $(LIBGSMSO) $(LDLIB)
+
+-$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSM)
++$(TST)/cod2lin: $(TST)/cod2lin.o $(LIBGSMSO)
+ $(LD) $(LFLAGS) -o $(TST)/cod2lin \
+- $(TST)/cod2lin.o $(LIBGSM) $(LDLIB)
++ $(TST)/cod2lin.o $(LIBGSMSO) $(LDLIB)
diff --git a/extra/gstreamer0.10-base/PKGBUILD b/extra/gstreamer0.10-base/PKGBUILD
new file mode 100644
index 000000000..ff6f6b65a
--- /dev/null
+++ b/extra/gstreamer0.10-base/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 117562 2011-04-04 10:54:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=('gstreamer0.10-base')
+pkgname=('gstreamer0.10-base' 'gstreamer0.10-base-plugins')
+pkgver=0.10.32
+pkgrel=4
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('pkgconfig' 'gstreamer0.10>=0.10.32' 'orc' 'libxv' 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango' 'udev' 'gobject-introspection')
+options=(!libtool !emptydirs)
+url="http://gstreamer.freedesktop.org/"
+source=(${url}/src/gst-plugins-base/gst-plugins-base-${pkgver}.tar.bz2)
+md5sums=('2920af2b3162f3d9fbaa7fabc8ed4d38')
+
+build() {
+ cd "${srcdir}/gst-plugins-base-${pkgver}"
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental --disable-gnome_vfs \
+ --with-package-name="GStreamer Base Plugins (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/"
+
+ make || return 1
+ sed -e 's/^SUBDIRS_EXT =.*/SUBDIRS_EXT =/' -i Makefile
+}
+
+package_gstreamer0.10-base() {
+ pkgdesc="GStreamer Multimedia Framework Base plugin libraries"
+ depends=('gstreamer0.10>=0.10.32' 'orc' 'libxv' 'udev')
+
+ cd "${srcdir}/gst-plugins-base-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gstreamer0.10-base-plugins() {
+ pkgdesc="GStreamer Multimedia Framework Base Plugins (gst-plugins-base)"
+ depends=("gstreamer0.10-base=${pkgver}" 'alsa-lib' 'cdparanoia' 'libvisual' 'libvorbis' 'libtheora' 'pango')
+ replaces=('gstreamer0.10-alsa' 'gstreamer0.10-theora' 'gstreamer0.10-libvisual' 'gstreamer0.10-pango' 'gstreamer0.10-cdparanoia' 'gstreamer0.10-vorbis' 'gstreamer0.10-ogg')
+ conflicts=('gstreamer0.10-alsa' 'gstreamer0.10-theora' 'gstreamer0.10-libvisual' 'gstreamer0.10-pango' 'gstreamer0.10-cdparanoia' 'gstreamer0.10-vorbis' 'gstreamer0.10-ogg')
+ groups=('gstreamer0.10-plugins')
+
+ cd "${srcdir}/gst-plugins-base-${pkgver}"
+ make -C gst-libs DESTDIR="${pkgdir}" install
+ make -C ext DESTDIR="${pkgdir}" install
+ make -C gst-libs DESTDIR="${pkgdir}" uninstall
+}
diff --git a/extra/gstreamer0.10-ffmpeg/PKGBUILD b/extra/gstreamer0.10-ffmpeg/PKGBUILD
new file mode 100644
index 000000000..eb0592572
--- /dev/null
+++ b/extra/gstreamer0.10-ffmpeg/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 100249 2010-11-22 10:52:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gstreamer0.10-ffmpeg
+pkgver=0.10.11
+pkgrel=1
+pkgdesc="Gstreamer FFMpeg Plugin"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gstreamer0.10-base>=0.10.30' 'bzip2')
+makedepends=('pkgconfig' 'yasm' 'sdl')
+url="http://www.gstreamer.net"
+groups=('gstreamer0.10-plugins')
+source=(http://gstreamer.freedesktop.org/src/gst-ffmpeg/gst-ffmpeg-${pkgver}.tar.bz2)
+sha256sums=('ff36a138e5af4ed8dcc459d6d6521fe66ed31ec29ba9a924dc3675c6749a692e')
+
+build() {
+ cd "${srcdir}/gst-ffmpeg-${pkgver}"
+ unset CFLAGS
+ unset CXXFLAGS
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static --with-ffmpeg-extra-configure="--enable-runtime-cpudetect"
+ make
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}"/usr/lib/gstreamer-0.10/*.la
+}
diff --git a/extra/gstreamer0.10-good/PKGBUILD b/extra/gstreamer0.10-good/PKGBUILD
new file mode 100644
index 000000000..0ecd69a45
--- /dev/null
+++ b/extra/gstreamer0.10-good/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 110101 2011-02-16 12:15:43Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gstreamer0.10-good
+pkgname=('gstreamer0.10-good' 'gstreamer0.10-good-plugins')
+pkgver=0.10.27
+pkgrel=2
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('intltool' 'pkgconfig' 'gstreamer0.10-base>=0.10.32' 'libavc1394' 'libiec61883' 'aalib' 'libshout' 'libdv' 'esound' 'flac' 'gconf' 'wavpack' 'taglib' 'libsoup-gnome' 'v4l-utils' 'libcaca' 'bzip2' 'gdk-pixbuf2' 'libpulse' 'jack')
+url="http://gstreamer.freedesktop.org/"
+options=(!libtool !emptydirs)
+source=(${url}/src/gst-plugins-good/gst-plugins-good-${pkgver}.tar.bz2)
+md5sums=('c25d6c51916424009dfde4ee42ae1feb')
+
+build() {
+ cd "${srcdir}/gst-plugins-good-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --disable-schemas-install \
+ --disable-hal \
+ --with-package-name="GStreamer Good Plugins (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/"
+
+ make
+ sed -e 's/gst sys ext/gst/' -i Makefile
+}
+
+package_gstreamer0.10-good() {
+ depends=('gstreamer0.10-base>=0.10.32' 'bzip2')
+ pkgdesc="GStreamer Multimedia Framework Good plugin libraries"
+ conflicts=('gstreamer0.10-bad<=0.10.17')
+
+ cd "${srcdir}/gst-plugins-good-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}/etc/gconf"
+}
+
+package_gstreamer0.10-good-plugins() {
+ depends=("gstreamer0.10-good=${pkgver}" 'libavc1394' 'libiec61883' 'aalib' 'libshout' 'libdv' 'esound' 'flac' 'gconf' 'wavpack' 'taglib' 'libsoup-gnome' 'v4l-utils' 'libcaca' 'libpng' 'libjpeg' 'jack' 'libpulse')
+ pkgdesc="GStreamer Multimedia Framework Good Plugins (gst-plugins-good)"
+ groups=('gstreamer0.10-plugins')
+ replaces=('gstreamer0.10-aalib' 'gstreamer0.10-wavpack' 'gstreamer0.10-shout2' 'gstreamer0.10-taglib' 'gstreamer0.10-libcaca' 'gstreamer0.10-libpng' 'gstreamer0.10-jpeg' 'gstreamer0.10-cairo' 'gstreamer0.10-flac' 'gstreamer0.10-speex' 'gstreamer0.10-gdkpixbuf' 'gstreamer0.10-dv1394' 'gstreamer0.10-annodex' 'gstreamer0.10-gconf' 'gstreamer0.10-esd' 'gstreamer0.10-cdio' 'gstreamer0.10-dv' 'gstreamer0.10-soup' 'gstreamer0.10-pulse')
+ conflicts=('gstreamer0.10-aalib' 'gstreamer0.10-wavpack' 'gstreamer0.10-shout2' 'gstreamer0.10-taglib' 'gstreamer0.10-libcaca' 'gstreamer0.10-libpng' 'gstreamer0.10-jpeg' 'gstreamer0.10-cairo' 'gstreamer0.10-flac' 'gstreamer0.10-speex' 'gstreamer0.10-gdkpixbuf' 'gstreamer0.10-dv1394' 'gstreamer0.10-annodex' 'gstreamer0.10-gconf' 'gstreamer0.10-esd' 'gstreamer0.10-cdio' 'gstreamer0.10-dv' 'gstreamer0.10-bad-plugins<0.10.7' 'gstreamer0.10-soup' 'gstreamer0.10-pulse')
+ install=gstreamer0.10-good-plugins.install
+
+ cd "${srcdir}/gst-plugins-good-${pkgver}"
+ make -C sys DESTDIR="${pkgdir}" install || return 1
+ make -C ext GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ install -m644 gconf/gstreamer-0.10.schemas "${pkgdir}/usr/share/gconf/schemas/gstreamer0.10-good-plugins.schemas" || return 1
+}
diff --git a/extra/gstreamer0.10-good/gstreamer0.10-good-plugins.install b/extra/gstreamer0.10-good/gstreamer0.10-good-plugins.install
new file mode 100644
index 000000000..e343beea5
--- /dev/null
+++ b/extra/gstreamer0.10-good/gstreamer0.10-good-plugins.install
@@ -0,0 +1,19 @@
+pkgname=gstreamer0.10-good-plugins
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ pre_remove
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/gstreamer0.10-python/PKGBUILD b/extra/gstreamer0.10-python/PKGBUILD
new file mode 100644
index 000000000..a4e6c86ec
--- /dev/null
+++ b/extra/gstreamer0.10-python/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 109061 2011-02-05 16:24:50Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gstreamer0.10-python
+pkgver=0.10.21
+pkgrel=1
+pkgdesc="Python bindings for GStreamer 0.10"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('pygobject>=2.20.0' 'gstreamer0.10-base>=0.10.32')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://gstreamer.freedesktop.org/src/gst-python/gst-python-${pkgver}.tar.bz2)
+md5sums=('31340ae3e877797a10d088a226d74b16')
+
+build() {
+ cd "${srcdir}/gst-python-${pkgver}"
+ export PYTHON=python2
+ sed -i -e 's%^#!.*env python$%#!/usr/bin/env python2%' examples/* gst/extend/*.py
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/gst-python-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gstreamer0.10-ugly/PKGBUILD b/extra/gstreamer0.10-ugly/PKGBUILD
new file mode 100644
index 000000000..ad3fe3b57
--- /dev/null
+++ b/extra/gstreamer0.10-ugly/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 117108 2011-03-28 19:26:10Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gstreamer0.10-ugly
+pkgname=('gstreamer0.10-ugly' 'gstreamer0.10-ugly-plugins')
+pkgver=0.10.17
+pkgrel=2
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.32' 'libdvdread' 'lame' 'libmpeg2' 'a52dec' 'libid3tag' 'libmad' 'libsidplay' 'libcdio' 'x264' 'opencore-amr')
+url="http://gstreamer.freedesktop.org/"
+options=(!libtool)
+source=(${url}/src/gst-plugins-ugly/gst-plugins-ugly-${pkgver}.tar.bz2)
+md5sums=('504ed6508c3a8f035a2002ed69d68506')
+
+build() {
+ cd "${srcdir}/gst-plugins-ugly-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --with-package-name="GStreamer Ugly Plugins (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/"
+ make
+ sed -e 's/gst-libs gst ext/gst-libs gst/' -i Makefile
+}
+
+package_gstreamer0.10-ugly() {
+ pkgdesc="GStreamer Multimedia Framework Ugly plugin libraries"
+ depends=('gstreamer0.10-base>=0.10.32')
+
+ cd "${srcdir}/gst-plugins-ugly-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gstreamer0.10-ugly-plugins() {
+ pkgdesc="GStreamer Multimedia Framework Ugly Plugins (gst-plugins-ugly)"
+ depends=("gstreamer0.10-ugly=${pkgver}" 'libdvdread' 'lame' 'libmpeg2' 'a52dec' 'libid3tag' 'libmad' 'libsidplay' 'libcdio' 'x264' 'opencore-amr')
+ groups=('gstreamer0.10-plugins')
+ replaces=('gstreamer0.10-dvdread' 'gstreamer0.10-mpeg2dec' 'gstreamer0.10-mad' 'gstreamer0.10-lame' 'gstreamer0.10-sidplay' 'gstreamer0.10-a52dec')
+ conflicts=('gstreamer0.10-dvdread' 'gstreamer0.10-mpeg2dec' 'gstreamer0.10-mad' 'gstreamer0.10-lame' 'gstreamer0.10-sidplay' 'gstreamer0.10-a52dec')
+
+ cd "${srcdir}/gst-plugins-ugly-${pkgver}"
+ make -C ext DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gstreamer0.10/PKGBUILD b/extra/gstreamer0.10/PKGBUILD
new file mode 100644
index 000000000..b02a3633d
--- /dev/null
+++ b/extra/gstreamer0.10/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 109030 2011-02-05 14:26:26Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gstreamer0.10
+pkgver=0.10.32
+pkgrel=1
+pkgdesc="GStreamer Multimedia Framework"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://gstreamer.freedesktop.org/"
+depends=('libxml2>=2.7.8' 'glib2>=2.24.1')
+optdepends=('sh: for feedback script')
+makedepends=('intltool' 'pkgconfig' 'gtk-doc' 'gobject-introspection')
+options=('!libtool')
+source=(${url}/src/gstreamer/gstreamer-${pkgver}.tar.bz2)
+md5sums=('442bc3d37b8511a73379143e7531d726')
+
+build() {
+ cd "${srcdir}/gstreamer-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib \
+ --with-package-name="GStreamer (Archlinux)" \
+ --with-package-origin="http://www.archlinux.org/" \
+ --enable-gtk-doc --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/gstreamer-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ #Remove unversioned gst-* binaries to get rid of conflicts
+ cd "${pkgdir}/usr/bin"
+ for bins in `ls *-0.10`; do
+ rm -f ${bins/-0.10/}
+ done
+}
diff --git a/extra/gthumb/PKGBUILD b/extra/gthumb/PKGBUILD
new file mode 100644
index 000000000..8fb5fc720
--- /dev/null
+++ b/extra/gthumb/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 110931 2011-02-23 07:45:35Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gthumb
+pkgver=2.12.2
+pkgrel=2
+pkgdesc="Image browser and viewer for the GNOME Desktop"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://gthumb.sourceforge.net/"
+depends=('desktop-file-utils' 'libunique>=1.1.2' 'gconf' 'exiv2' 'libsoup-gnome')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.1' 'libsm' 'gstreamer0.10-base' 'brasero')
+optdepends=('gstreamer0.10-base: video support')
+options=('!libtool' '!emptydirs')
+install=gthumb.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.12/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('bce8111e4d699620ae0399963798ff25929df8c8546f4949e2a871b330277091')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gthumb "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gthumb/gthumb.install b/extra/gthumb/gthumb.install
new file mode 100644
index 000000000..6046ebb6f
--- /dev/null
+++ b/extra/gthumb/gthumb.install
@@ -0,0 +1,24 @@
+pkgname=gthumb
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/gtk-engines/PKGBUILD b/extra/gtk-engines/PKGBUILD
new file mode 100644
index 000000000..d614c9def
--- /dev/null
+++ b/extra/gtk-engines/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 92895 2010-10-01 18:33:37Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gtk-engines
+pkgver=2.20.2
+pkgrel=1
+pkgdesc="Theme engines for GTK+ 2"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk2>=2.22.0')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+url="http://live.gnome.org/GnomeArt"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.20/${pkgname}-${pkgver}.tar.bz2)
+conflicts=('lighthouse-gtk2' 'clearlooks-gtk2')
+replaces=('lighthouse-gtk2')
+sha256sums=('15b680abca6c773ecb85253521fa100dd3b8549befeecc7595b10209d62d66b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-animation
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtk-qt-engine/PKGBUILD b/extra/gtk-qt-engine/PKGBUILD
new file mode 100644
index 000000000..81cd26667
--- /dev/null
+++ b/extra/gtk-qt-engine/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 67433 2010-02-07 00:15:22Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jake VanderKolk <jakevanderkolk@gmail.com>
+
+pkgname=gtk-qt-engine
+pkgver=1.1
+pkgrel=2
+pkgdesc="A GTK engine which makes your GTK2 Apps match your QT theme"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://code.google.com/p/gtk-qt-engine/"
+depends=('libbonoboui' 'kdelibs')
+makedepends=('cmake>=2.4.7' 'automoc4' 'pkgconfig')
+source=(http://gtk-qt-engine.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('de8048baef7dfe6c97cd97c463d66152')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ cmake . -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_{SHARED,MODULE,EXE}_LINKER_FLAGS='-Wl,--no-undefined -Wl,--as-needed' \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gtk-sharp-2/PKGBUILD b/extra/gtk-sharp-2/PKGBUILD
new file mode 100644
index 000000000..8b8e86e0b
--- /dev/null
+++ b/extra/gtk-sharp-2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 72892 2010-03-21 15:11:50Z ibiru $
+# Maintainer: tobias <tobias@archlinux.org>
+
+pkgname=gtk-sharp-2
+pkgver=2.12.10
+pkgrel=1
+pkgdesc="gtk2 bindings for C#"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://gtk-sharp.sourceforge.net"
+depends=('mono>=2.4' 'libglade>=2.6.4' 'gtk2>=2.18.0')
+makedepends=('pkgconfig' 'monodoc')
+conflicts=('gtk#')
+options=('!libtool' '!makeflags')
+source=(http://ftp.gnome.org/pub/GNOME/sources/gtk-sharp/2.12/gtk-sharp-${pkgver}.tar.bz2)
+sha256sums=('aaa53f7916f25f0f83760b6ffbf0d465d13ecfa55aa645603f1ca876b7d0f770')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/gtk-sharp-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
+ make || return 1
+ make GACUTIL="/usr/bin/gacutil /root ${pkgdir}/usr/lib" \
+ DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gtk-theme-switch2/PKGBUILD b/extra/gtk-theme-switch2/PKGBUILD
new file mode 100644
index 000000000..650dd50f7
--- /dev/null
+++ b/extra/gtk-theme-switch2/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 75632 2010-04-02 01:24:28Z dgriffiths $
+# Contributor: Eddie Lozon <almostlucky@attbi.com>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=gtk-theme-switch2
+pkgver=2.1.0
+pkgrel=1
+pkgdesc="Gtk2 theme switcher"
+url="http://muhri.net/nav.php3?node=gts"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('gtk2')
+source=(http://ftp.de.debian.org/debian/pool/main/g/gtk-theme-switch/gtk-theme-switch_${pkgver}.orig.tar.gz)
+md5sums=('a9e7e62701cd4fba4d277dc210cd4317')
+
+build() {
+ cd ${srcdir}/gtk-theme-switch-${pkgver}
+
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/gtk-theme-switch-${pkgver}
+
+ install -Dm755 gtk-theme-switch2 \
+ ${pkgdir}/usr/bin/gtk-theme-switch2 || return 1
+ install -Dm644 gtk-theme-switch2.1 \
+ ${pkgdir}/usr/share/man/man1/gtk-theme-switch2.1 || return 1
+}
diff --git a/extra/gtk-vnc/PKGBUILD b/extra/gtk-vnc/PKGBUILD
new file mode 100644
index 000000000..9223f1ecd
--- /dev/null
+++ b/extra/gtk-vnc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 103626 2010-12-22 00:02:22Z andrea $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=gtk-vnc
+pkgver=0.4.2
+pkgrel=2
+pkgdesc="A VNC viewer widget for GTK"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/gtk-vnc"
+license=('LGPL')
+depends=('gtk2' 'gobject-introspection')
+makedepends=('pkgconfig' 'intltool' 'pygtk' 'perl-text-csv')
+options=('!libtool' '!makeflags')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.4/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('96e948b62984a1a3a32fd83793fb645c493c1bc93b303eb831ecafee01a956d2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-python \
+ --with-examples --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtk-xfce-engine/PKGBUILD b/extra/gtk-xfce-engine/PKGBUILD
new file mode 100644
index 000000000..bdf87e2cb
--- /dev/null
+++ b/extra/gtk-xfce-engine/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 112937 2011-03-07 19:48:01Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=gtk-xfce-engine
+pkgver=2.8.1
+pkgrel=1
+pkgdesc="A port of Xfce engine to GTK+-2.0"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=("gtk2>=2.14.7")
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/$pkgname/2.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('8a6527b61b0554cda11d06f66a567314')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/gtk/PKGBUILD b/extra/gtk/PKGBUILD
new file mode 100644
index 000000000..4895b5942
--- /dev/null
+++ b/extra/gtk/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 62736 2010-01-11 15:31:11Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=gtk
+pkgver=1.2.10
+pkgrel=10
+pkgdesc="The GTK+ toolkit"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('libxi' 'glib' 'sh')
+makedepends=('libxt')
+options=('!libtool')
+install=gtk.install
+source=(ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-$pkgver.tar.gz aclocal-fixes.patch)
+md5sums=('4d5cb2fc7fb7830e4af9747a36bfce20' 'c59d4906602d99a7468f7334b6fc3b4e')
+sha1sums=('a5adcb909257da01ae4d4761e1d41081d06e4d7c' 'b034e33efb85d27f3f3fb082c404e3b6ea79259f')
+
+build() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ if [ "${CARCH}" = "x86_64" ]; then
+ rm config.guess config.sub
+ ln -s /usr/share/libtool/config/config.guess config.guess
+ ln -s /usr/share/libtool/config/config.sub config.sub
+ fi
+ patch -Np0 -i "${srcdir}/aclocal-fixes.patch" || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-xinput=xfree || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gtk/aclocal-fixes.patch b/extra/gtk/aclocal-fixes.patch
new file mode 100644
index 000000000..dd2ffbd44
--- /dev/null
+++ b/extra/gtk/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- gtk.m4.orig 2006-03-05 13:18:09.000000000 +0000
++++ gtk.m4 2006-03-05 13:18:20.000000000 +0000
+@@ -4,7 +4,7 @@
+ dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+ dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_GTK,
++AC_DEFUN([AM_PATH_GTK],
+ [dnl
+ dnl Get the cflags and libraries from the gtk-config script
+ dnl
diff --git a/extra/gtk/gtk.install b/extra/gtk/gtk.install
new file mode 100644
index 000000000..3c48904fd
--- /dev/null
+++ b/extra/gtk/gtk.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gdk.info.gz gtk.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/gtk2-perl/PKGBUILD b/extra/gtk2-perl/PKGBUILD
new file mode 100644
index 000000000..c684e5578
--- /dev/null
+++ b/extra/gtk2-perl/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 104912 2011-01-05 15:05:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=gtk2-perl
+_realname=Gtk2
+pkgver=1.222
+pkgrel=2
+pkgdesc="Gtk2-Perl allows Perl developers to write GTK+ 2.x applications."
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('gtk2' 'pango-perl')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('8f8a170b33dc2cf4e69769e97c05185a')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/gtk2/PKGBUILD b/extra/gtk2/PKGBUILD
new file mode 100644
index 000000000..0526600ea
--- /dev/null
+++ b/extra/gtk2/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 99604 2010-11-15 19:29:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gtk2
+pkgver=2.22.1
+pkgrel=1
+pkgdesc="The GTK+ Toolkit (v2)"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+install=gtk2.install
+depends=('atk>=1.30.0' 'pango>=1.28.0' 'libxcursor' 'libxinerama' 'libxrandr>=1.3.0' 'libxi>=1.3' 'libxcomposite' 'libxdamage' 'heimdal>=1.3.2' 'gnutls>=2.8.6' 'shared-mime-info' 'cairo>=1.10.0' 'libcups>=1.4.4' 'gdk-pixbuf2>=2.22.1')
+makedepends=('gtk-doc' 'gobject-introspection')
+replaces=('gtkprint-cups' 'gail')
+conflicts=('gtkprint-cups' 'gail')
+provides=('gail=1.22.3')
+options=('!libtool' '!docs')
+backup=(etc/gtk-2.0/gtkrc)
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.22/gtk+-${pkgver}.tar.bz2
+ xid-collision-debug.patch old-icon-symlinks.patch)
+sha256sums=('965bc124f0d25087c4cb2a64cbfd7e4f896e05be8d560fbba68dd8685ba24d07'
+ 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+ '1298e4103f71d0304378f1e7503011150f6f68398ae8ebae5522a48feaea7c0d')
+
+build() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ patch -Np1 -i "${srcdir}/xid-collision-debug.patch"
+ patch -Np1 -i "${srcdir}/old-icon-symlinks.patch"
+
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-xinput=yes
+ make
+ make DESTDIR="${pkgdir}" install
+
+ sed -i "s#env python#env python2#" $pkgdir/usr/bin/gtk-builder-convert
+
+ echo 'gtk-fallback-icon-theme = "gnome"' > "${pkgdir}/etc/gtk-2.0/gtkrc"
+}
diff --git a/extra/gtk2/gtk2.install b/extra/gtk2/gtk2.install
new file mode 100644
index 000000000..4e2b72f1b
--- /dev/null
+++ b/extra/gtk2/gtk2.install
@@ -0,0 +1,16 @@
+post_install() {
+ usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f etc/gtk-2.0/gtk.immodules &>/dev/null
+ rm -f etc/gtk-2.0/gdk-pixbuf.loaders &>/dev/null
+}
diff --git a/extra/gtk2/old-icon-symlinks.patch b/extra/gtk2/old-icon-symlinks.patch
new file mode 100644
index 000000000..046dd4df4
--- /dev/null
+++ b/extra/gtk2/old-icon-symlinks.patch
@@ -0,0 +1,269 @@
+diff -aur gtk+-2.22.0.orig//gtk/Makefile.in gtk+-2.22.0/gtk/Makefile.in
+--- gtk+-2.22.0.orig//gtk/Makefile.in 2010-10-15 04:57:50.810006145 +0800
++++ gtk+-2.22.0/gtk/Makefile.in 2010-10-15 05:13:49.083339478 +0800
+@@ -1598,7 +1598,172 @@
+ stock-icons/24/folder-remote.png \
+ stock-icons/24/user-home.png \
+ stock-icons/24/user-desktop.png \
+- stock-icons/24/text-x-generic.png
++ stock-icons/24/text-x-generic.png \
++ stock-icons/16/gtk-quit.png \
++ stock-icons/16/gtk-info.png \
++ stock-icons/16/gtk-file.png \
++ stock-icons/16/gtk-open.png \
++ stock-icons/16/gtk-print-preview.png \
++ stock-icons/16/gtk-print.png \
++ stock-icons/16/gtk-properties.png \
++ stock-icons/16/gtk-revert-to-saved-ltr.png \
++ stock-icons/16/gtk-revert-to-saved-rtl.png \
++ stock-icons/16/gtk-save-as.png \
++ stock-icons/16/gtk-new.png \
++ stock-icons/16/gtk-harddisk.png \
++ stock-icons/16/gtk-clear.png \
++ stock-icons/16/gtk-copy.png \
++ stock-icons/16/gtk-cut.png \
++ stock-icons/16/gtk-delete.png \
++ stock-icons/16/gtk-find-and-replace.png \
++ stock-icons/16/gtk-find.png \
++ stock-icons/16/gtk-paste.png \
++ stock-icons/16/gtk-redo-ltr.png \
++ stock-icons/16/gtk-redo-rtl.png \
++ stock-icons/16/gtk-select-all.png \
++ stock-icons/16/gtk-undo-ltr.png \
++ stock-icons/16/gtk-undo-rtl.png \
++ stock-icons/16/gtk-directory.png \
++ stock-icons/16/gtk-unindent-ltr.png \
++ stock-icons/16/gtk-unindent-rtl.png \
++ stock-icons/16/gtk-indent-ltr.png \
++ stock-icons/16/gtk-indent-rtl.png \
++ stock-icons/16/gtk-justify-center.png \
++ stock-icons/16/gtk-justify-fill.png \
++ stock-icons/16/gtk-justify-left.png \
++ stock-icons/16/gtk-justify-right.png \
++ stock-icons/16/gtk-bold.png \
++ stock-icons/16/gtk-italic.png \
++ stock-icons/16/gtk-strikethrough.png \
++ stock-icons/16/gtk-underline.png \
++ stock-icons/16/gtk-goto-bottom.png \
++ stock-icons/16/gtk-go-down.png \
++ stock-icons/16/gtk-goto-first-ltr.png \
++ stock-icons/16/gtk-home.png \
++ stock-icons/16/gtk-jump-to-ltr.png \
++ stock-icons/16/gtk-jump-to-rtl.png \
++ stock-icons/16/gtk-goto-last-ltr.png \
++ stock-icons/16/gtk-go-forward-ltr.png \
++ stock-icons/16/gtk-go-back-ltr.png \
++ stock-icons/16/gtk-goto-top.png \
++ stock-icons/16/gtk-go-up.png \
++ stock-icons/16/gtk-about.png \
++ stock-icons/16/gtk-help.png \
++ stock-icons/16/gtk-missing-image.png \
++ stock-icons/16/gtk-add.png \
++ stock-icons/16/gtk-remove.png \
++ stock-icons/16/gtk-floppy.png \
++ stock-icons/16/gtk-cdrom.png \
++ stock-icons/16/gtk-media-pause.png \
++ stock-icons/16/gtk-media-play-ltr.png \
++ stock-icons/16/gtk-media-play-rtl.png \
++ stock-icons/16/gtk-media-stop.png \
++ stock-icons/16/gtk-media-record.png \
++ stock-icons/16/gtk-media-rewind-ltr.png \
++ stock-icons/16/gtk-media-forward-ltr.png \
++ stock-icons/16/gtk-media-previous-ltr.png \
++ stock-icons/16/gtk-media-next-ltr.png \
++ stock-icons/16/gtk-network.png \
++ stock-icons/16/gtk-print-error.png \
++ stock-icons/16/gtk-print-report.png \
++ stock-icons/16/gtk-print-paused.png \
++ stock-icons/16/gtk-print-warning.png \
++ stock-icons/16/gtk-stop.png \
++ stock-icons/16/gtk-execute.png \
++ stock-icons/16/gtk-spell-check.png \
++ stock-icons/16/gtk-fullscreen.png \
++ stock-icons/16/gtk-refresh.png \
++ stock-icons/16/gtk-leave-fullscreen.png \
++ stock-icons/16/gtk-sort-ascending.png \
++ stock-icons/16/gtk-sort-descending.png \
++ stock-icons/16/gtk-close.png \
++ stock-icons/16/gtk-zoom-fit.png \
++ stock-icons/16/gtk-zoom-in.png \
++ stock-icons/16/gtk-zoom-100.png \
++ stock-icons/16/gtk-zoom-out.png \
++ stock-icons/24/gtk-quit.png \
++ stock-icons/24/gtk-info.png \
++ stock-icons/24/gtk-file.png \
++ stock-icons/24/gtk-open.png \
++ stock-icons/24/gtk-print-preview.png \
++ stock-icons/24/gtk-print.png \
++ stock-icons/24/gtk-properties.png \
++ stock-icons/24/gtk-revert-to-saved-ltr.png \
++ stock-icons/24/gtk-revert-to-saved-rtl.png \
++ stock-icons/24/gtk-save-as.png \
++ stock-icons/24/gtk-new.png \
++ stock-icons/24/gtk-harddisk.png \
++ stock-icons/24/gtk-clear.png \
++ stock-icons/24/gtk-copy.png \
++ stock-icons/24/gtk-cut.png \
++ stock-icons/24/gtk-delete.png \
++ stock-icons/24/gtk-find-and-replace.png \
++ stock-icons/24/gtk-find.png \
++ stock-icons/24/gtk-paste.png \
++ stock-icons/24/gtk-redo-ltr.png \
++ stock-icons/24/gtk-redo-rtl.png \
++ stock-icons/24/gtk-select-all.png \
++ stock-icons/24/gtk-undo-ltr.png \
++ stock-icons/24/gtk-undo-rtl.png \
++ stock-icons/24/gtk-directory.png \
++ stock-icons/24/gtk-unindent-ltr.png \
++ stock-icons/24/gtk-unindent-rtl.png \
++ stock-icons/24/gtk-indent-ltr.png \
++ stock-icons/24/gtk-indent-rtl.png \
++ stock-icons/24/gtk-justify-center.png \
++ stock-icons/24/gtk-justify-fill.png \
++ stock-icons/24/gtk-justify-left.png \
++ stock-icons/24/gtk-justify-right.png \
++ stock-icons/24/gtk-bold.png \
++ stock-icons/24/gtk-italic.png \
++ stock-icons/24/gtk-strikethrough.png \
++ stock-icons/24/gtk-underline.png \
++ stock-icons/24/gtk-goto-bottom.png \
++ stock-icons/24/gtk-go-down.png \
++ stock-icons/24/gtk-goto-first-ltr.png \
++ stock-icons/24/gtk-home.png \
++ stock-icons/24/gtk-jump-to-ltr.png \
++ stock-icons/24/gtk-jump-to-rtl.png \
++ stock-icons/24/gtk-goto-last-ltr.png \
++ stock-icons/24/gtk-go-forward-ltr.png \
++ stock-icons/24/gtk-go-back-ltr.png \
++ stock-icons/24/gtk-goto-top.png \
++ stock-icons/24/gtk-go-up.png \
++ stock-icons/24/gtk-about.png \
++ stock-icons/24/gtk-help.png \
++ stock-icons/24/gtk-missing-image.png \
++ stock-icons/24/gtk-add.png \
++ stock-icons/24/gtk-remove.png \
++ stock-icons/24/gtk-floppy.png \
++ stock-icons/24/gtk-cdrom.png \
++ stock-icons/24/gtk-media-pause.png \
++ stock-icons/24/gtk-media-play-ltr.png \
++ stock-icons/24/gtk-media-play-rtl.png \
++ stock-icons/24/gtk-media-stop.png \
++ stock-icons/24/gtk-media-record.png \
++ stock-icons/24/gtk-media-rewind-ltr.png \
++ stock-icons/24/gtk-media-forward-ltr.png \
++ stock-icons/24/gtk-media-previous-ltr.png \
++ stock-icons/24/gtk-media-next-ltr.png \
++ stock-icons/24/gtk-network.png \
++ stock-icons/24/gtk-print-error.png \
++ stock-icons/24/gtk-print-report.png \
++ stock-icons/24/gtk-print-paused.png \
++ stock-icons/24/gtk-print-warning.png \
++ stock-icons/24/gtk-stop.png \
++ stock-icons/24/gtk-execute.png \
++ stock-icons/24/gtk-spell-check.png \
++ stock-icons/24/gtk-fullscreen.png \
++ stock-icons/24/gtk-refresh.png \
++ stock-icons/24/gtk-leave-fullscreen.png \
++ stock-icons/24/gtk-sort-ascending.png \
++ stock-icons/24/gtk-sort-descending.png \
++ stock-icons/24/gtk-close.png \
++ stock-icons/24/gtk-zoom-fit.png \
++ stock-icons/24/gtk-zoom-in.png \
++ stock-icons/24/gtk-zoom-100.png \
++ stock-icons/24/gtk-zoom-out.png \
++ stock-icons/48/gtk-dialog-error.png
+
+ @CROSS_COMPILING_FALSE@gtk_update_icon_cache_program = \
+ @CROSS_COMPILING_FALSE@ ./gtk-update-icon-cache
+@@ -2869,7 +3034,91 @@
+ && $(LN_S) folder.png user-desktop.png \
+ && $(RM) text-x-generic.png \
+ && $(LN_S) document-x-generic.png text-x-generic.png \
++ && $(LN_S) application-exit.png gtk-quit.png \
++ && $(LN_S) dialog-information.png gtk-info.png \
++ && $(LN_S) document-new.png gtk-file.png \
++ && $(LN_S) document-open.png gtk-open.png \
++ && $(LN_S) document-print-preview.png gtk-print-preview.png \
++ && $(LN_S) document-print.png gtk-print.png \
++ && $(LN_S) document-properties.png gtk-properties.png \
++ && $(LN_S) document-revert-ltr.png gtk-revert-to-saved-ltr.png \
++ && $(LN_S) document-revert-rtl.png gtk-revert-to-saved-rtl.png \
++ && $(LN_S) document-save-as.png gtk-save-as.png \
++ && $(LN_S) document-x-generic.png gtk-new.png \
++ && $(LN_S) drive-harddisk.png gtk-harddisk.png \
++ && $(LN_S) edit-clear.png gtk-clear.png \
++ && $(LN_S) edit-copy.png gtk-copy.png \
++ && $(LN_S) edit-cut.png gtk-cut.png \
++ && $(LN_S) edit-delete.png gtk-delete.png \
++ && $(LN_S) edit-find-replace.png gtk-find-and-replace.png \
++ && $(LN_S) edit-find.png gtk-find.png \
++ && $(LN_S) edit-paste.png gtk-paste.png \
++ && $(LN_S) edit-redo-ltr.png gtk-redo-ltr.png \
++ && $(LN_S) edit-redo-rtl.png gtk-redo-rtl.png \
++ && $(LN_S) edit-select-all.png gtk-select-all.png \
++ && $(LN_S) edit-undo-ltr.png gtk-undo-ltr.png \
++ && $(LN_S) edit-undo-rtl.png gtk-undo-rtl.png \
++ && $(LN_S) folder.png gtk-directory.png \
++ && $(LN_S) format-indent-less-ltr.png gtk-unindent-ltr.png \
++ && $(LN_S) format-indent-less-rtl.png gtk-unindent-rtl.png \
++ && $(LN_S) format-indent-more-ltr.png gtk-indent-ltr.png \
++ && $(LN_S) format-indent-more-rtl.png gtk-indent-rtl.png \
++ && $(LN_S) format-justify-center.png gtk-justify-center.png \
++ && $(LN_S) format-justify-fill.png gtk-justify-fill.png \
++ && $(LN_S) format-justify-left.png gtk-justify-left.png \
++ && $(LN_S) format-justify-right.png gtk-justify-right.png \
++ && $(LN_S) format-text-bold.png gtk-bold.png \
++ && $(LN_S) format-text-italic.png gtk-italic.png \
++ && $(LN_S) format-text-strikethrough.png gtk-strikethrough.png \
++ && $(LN_S) format-text-underline.png gtk-underline.png \
++ && $(LN_S) go-bottom.png gtk-goto-bottom.png \
++ && $(LN_S) go-down.png gtk-go-down.png \
++ && $(LN_S) go-first-ltr.png gtk-goto-first-ltr.png \
++ && $(LN_S) go-home.png gtk-home.png \
++ && $(LN_S) go-jump-ltr.png gtk-jump-to-ltr.png \
++ && $(LN_S) go-jump-rtl.png gtk-jump-to-rtl.png \
++ && $(LN_S) go-last-ltr.png gtk-goto-last-ltr.png \
++ && $(LN_S) go-next-ltr.png gtk-go-forward-ltr.png \
++ && $(LN_S) go-previous-ltr.png gtk-go-back-ltr.png \
++ && $(LN_S) go-top.png gtk-goto-top.png \
++ && $(LN_S) go-up.png gtk-go-up.png \
++ && $(LN_S) help-about.png gtk-about.png \
++ && $(LN_S) help-contents.png gtk-help.png \
++ && $(LN_S) image-missing.png gtk-missing-image.png \
++ && $(LN_S) list-add.png gtk-add.png \
++ && $(LN_S) list-remove.png gtk-remove.png \
++ && $(LN_S) media-floppy.png gtk-floppy.png \
++ && $(LN_S) media-optical.png gtk-cdrom.png \
++ && $(LN_S) media-playback-pause.png gtk-media-pause.png \
++ && $(LN_S) media-playback-start-ltr.png gtk-media-play-ltr.png \
++ && $(LN_S) media-playback-start-rtl.png gtk-media-play-rtl.png \
++ && $(LN_S) media-playback-stop.png gtk-media-stop.png \
++ && $(LN_S) media-record.png gtk-media-record.png \
++ && $(LN_S) media-seek-backward-ltr.png gtk-media-rewind-ltr.png \
++ && $(LN_S) media-seek-forward-ltr.png gtk-media-forward-ltr.png \
++ && $(LN_S) media-skip-backward-ltr.png gtk-media-previous-ltr.png \
++ && $(LN_S) media-skip-forward-ltr.png gtk-media-next-ltr.png \
++ && $(LN_S) network-idle.png gtk-network.png \
++ && $(LN_S) printer-error.png gtk-print-error.png \
++ && $(LN_S) printer-info.png gtk-print-report.png \
++ && $(LN_S) printer-paused.png gtk-print-paused.png \
++ && $(LN_S) printer-warning.png gtk-print-warning.png \
++ && $(LN_S) process-stop.png gtk-stop.png \
++ && $(LN_S) system-run.png gtk-execute.png \
++ && $(LN_S) tools-check-spelling.png gtk-spell-check.png \
++ && $(LN_S) view-fullscreen.png gtk-fullscreen.png \
++ && $(LN_S) view-refresh.png gtk-refresh.png \
++ && $(LN_S) view-restore.png gtk-leave-fullscreen.png \
++ && $(LN_S) view-sort-ascending.png gtk-sort-ascending.png \
++ && $(LN_S) view-sort-descending.png gtk-sort-descending.png \
++ && $(LN_S) window-close.png gtk-close.png \
++ && $(LN_S) zoom-fit-best.png gtk-zoom-fit.png \
++ && $(LN_S) zoom-in.png gtk-zoom-in.png \
++ && $(LN_S) zoom-original.png gtk-zoom-100.png \
++ && $(LN_S) zoom-out.png gtk-zoom-out.png \
+ ) done \
++ && (cd stock-icons/48 \
++ && $(LN_S) dialog-error.png gtk-dialog-error.png) \
+ && touch stamp-icons
+
+ gtkbuiltincache.h: @REBUILD@ stamp-icons
diff --git a/extra/gtk2/xid-collision-debug.patch b/extra/gtk2/xid-collision-debug.patch
new file mode 100644
index 000000000..d61238c3b
--- /dev/null
+++ b/extra/gtk2/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+ if (!display_x11->xid_ht)
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+-
++/*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+-
++*/
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+
diff --git a/extra/gtkglext/PKGBUILD b/extra/gtkglext/PKGBUILD
new file mode 100644
index 000000000..a8a67f7fe
--- /dev/null
+++ b/extra/gtkglext/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 78325 2010-04-20 22:14:28Z ibiru $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=gtkglext
+pkgver=1.2.0
+pkgrel=5
+pkgdesc="opengl extensions for gtk2"
+arch=('i686' 'x86_64')
+url="http://gtkglext.sourceforge.net/"
+license=('LGPL')
+depends=('gtk2' 'mesa' 'libxmu')
+makedepends=('gcc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/gtkglext/${pkgname}-${pkgver}.tar.bz2"
+ gtk2.20.patch)
+md5sums=('ed7ba24ce06a8630c07f2d0ee5f04ab4'
+ 'e5a87ec3f2d0e616c6f32f90c3f7237f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/gtk2.20.patch || return 1
+ autoconf --force || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/gtkglext/gtk2.20.patch b/extra/gtkglext/gtk2.20.patch
new file mode 100644
index 000000000..54b34c11e
--- /dev/null
+++ b/extra/gtkglext/gtk2.20.patch
@@ -0,0 +1,77 @@
+diff -Nur gtkglext-1.2.0.orig/gtk/gtkglwidget.c gtkglext-1.2.0/gtk/gtkglwidget.c
+--- gtkglext-1.2.0.orig/gtk/gtkglwidget.c 2004-02-20 11:38:36.000000000 +0200
++++ gtkglext-1.2.0/gtk/gtkglwidget.c 2010-04-20 19:29:42.941917275 +0300
+@@ -127,7 +127,7 @@
+ * Synchronize OpenGL and window resizing request streams.
+ */
+
+- if (GTK_WIDGET_REALIZED (widget) && private->is_realized)
++ if (gtk_widget_get_realized (widget) && private->is_realized)
+ {
+ gldrawable = gdk_window_get_gl_drawable (widget->window);
+ gdk_gl_drawable_wait_gdk (gldrawable);
+@@ -154,7 +154,7 @@
+ * Remove OpenGL-capability from widget->window.
+ */
+
+- if (GTK_WIDGET_REALIZED (widget))
++ if (gtk_widget_get_realized (widget))
+ gdk_window_unset_gl_capability (widget->window);
+
+ private->is_realized = FALSE;
+@@ -174,7 +174,7 @@
+ */
+
+ toplevel = gtk_widget_get_toplevel (widget);
+- if (GTK_WIDGET_TOPLEVEL (toplevel) && !GTK_WIDGET_REALIZED (toplevel))
++ if (gtk_widget_is_toplevel (toplevel) && !gtk_widget_get_realized (toplevel))
+ {
+ GTK_GL_NOTE (MISC,
+ g_message (" - Install colormap to the top-level window."));
+@@ -194,7 +194,7 @@
+ * Set a background of "None" on window to avoid AIX X server crash.
+ */
+
+- if (GTK_WIDGET_REALIZED (widget))
++ if (gtk_widget_get_realized (widget))
+ {
+ GTK_GL_NOTE (MISC,
+ g_message (" - window->bg_pixmap = %p",
+@@ -250,8 +250,8 @@
+ GTK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+- g_return_val_if_fail (!GTK_WIDGET_NO_WINDOW (widget), FALSE);
+- g_return_val_if_fail (!GTK_WIDGET_REALIZED (widget), FALSE);
++ g_return_val_if_fail (gtk_widget_get_has_window (widget), FALSE);
++ g_return_val_if_fail (!gtk_widget_get_realized (widget), FALSE);
+ g_return_val_if_fail (GDK_IS_GL_CONFIG (glconfig), FALSE);
+
+ /*
+@@ -432,7 +432,7 @@
+ GTK_GL_NOTE_FUNC ();
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
+
+ gldrawable = gdk_window_get_gl_drawable (widget->window);
+ if (gldrawable == NULL)
+@@ -474,7 +474,7 @@
+ GLWidgetPrivate *private;
+
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
+
+ private = g_object_get_qdata (G_OBJECT (widget), quark_gl_private);
+ if (private == NULL)
+@@ -501,7 +501,7 @@
+ gtk_widget_get_gl_window (GtkWidget *widget)
+ {
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
+- g_return_val_if_fail (GTK_WIDGET_REALIZED (widget), NULL);
++ g_return_val_if_fail (gtk_widget_get_realized (widget), NULL);
+
+ return gdk_window_get_gl_window (widget->window);
+ }
diff --git a/extra/gtkglext/gtkglext-1.0.6-pangox.patch b/extra/gtkglext/gtkglext-1.0.6-pangox.patch
new file mode 100644
index 000000000..8cd589ed6
--- /dev/null
+++ b/extra/gtkglext/gtkglext-1.0.6-pangox.patch
@@ -0,0 +1,30 @@
+--- gtkglext-1.0.6/configure.in 2005-09-10 16:45:06.000000000 +0200
++++ gtkglext-1.0.6.az/configure.in 2005-09-10 16:46:01.000000000 +0200
+@@ -59,6 +59,10 @@
+ m4_define([pango_pkg], [pango])
+ m4_define([pango_required_version], [1.0.0])
+
++# Pangox
++m4_define([pangox_pkg], [pangox])
++m4_define([pangox_required_version], [1.0.0])
++
+ # PangoFT2
+ m4_define([pangoft2_pkg], [pangoft2])
+ m4_define([pangoft2_required_version], [1.0.0])
+@@ -345,6 +349,7 @@
+ gtk_pkg >= gtk_required_version \
+ gdk_pkg >= gdk_required_version \
+ pango_pkg >= pango_required_version \
++pangox_pkg >= pango_required_version \
+ gmodule_pkg >= gmodule_required_version \
+ ])
+
+@@ -789,7 +794,7 @@
+ # CFLAGS and LIBS
+ ##################################################
+
+-GDKGLEXT_PACKAGES="gdk_pkg pango_pkg gmodule_pkg"
++GDKGLEXT_PACKAGES="gdk_pkg pango_pkg pangox_pkg gmodule_pkg"
+ GDKGLEXT_EXTRA_CFLAGS="$GL_CFLAGS $GDKGLEXT_WIN_CFLAGS"
+ GDKGLEXT_EXTRA_LIBS="$GL_LIBS $GDKGLEXT_WIN_LIBS"
+ GDKGLEXT_DEP_CFLAGS="$GDKGLEXT_EXTRA_CFLAGS `$PKG_CONFIG --cflags $GDKGLEXT_PACKAGES`"
diff --git a/extra/gtkglextmm/PKGBUILD b/extra/gtkglextmm/PKGBUILD
new file mode 100644
index 000000000..a0e738c96
--- /dev/null
+++ b/extra/gtkglextmm/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 47716 2009-07-25 16:36:45Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Bastien Bouclet <bastien.bouclet@gmail.com>
+
+pkgname=gtkglextmm
+pkgver=1.2.0
+pkgrel=4
+pkgdesc="Cpp C++ bindings for gtkglext"
+arch=('i686' 'x86_64')
+url="http://gtkglext.sourceforge.net/"
+depends=('gtkmm>=2.10.1' 'gtkglext')
+makedepends=('pkgconfig')
+options=('!libtool')
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/gtkglext/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('27c05f4d45c5fd07b6fb0f044add3056')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --disable-gtkglext-test
+ make || return 1
+ make DESTDIR=${pkgdir}/ install
+}
diff --git a/extra/gtkhtml/PKGBUILD b/extra/gtkhtml/PKGBUILD
new file mode 100644
index 000000000..c92e9fcaf
--- /dev/null
+++ b/extra/gtkhtml/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 109846 2011-02-13 13:40:17Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gtkhtml
+pkgver=3.32.2
+pkgrel=2
+pkgdesc="A lightweight HTML renderer/editor widget for GTK2"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gconf' 'gtk2' 'gnome-icon-theme' 'enchant' 'iso-codes' 'libsoup')
+makedepends=('intltool')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8746053cf709e1de37c7ac775ab1364ddda4b75167660ed7f98a237b3797e39f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gtkhtml \
+ --localstatedir=/var --disable-static \
+ --disable-deprecated-warning-flags
+ make
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/bin/gtkhtml-editor-test"
+}
diff --git a/extra/gtkimageview/PKGBUILD b/extra/gtkimageview/PKGBUILD
new file mode 100644
index 000000000..1b90282d8
--- /dev/null
+++ b/extra/gtkimageview/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 60213 2009-12-02 11:47:56Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan Blazek <appolito@gmail.com>
+# Contributor: Jose Valecillos <valecillosjg (at) gmail (dot) com>
+
+pkgname=gtkimageview
+pkgver=1.6.4
+pkgrel=1
+pkgdesc="Simple image viewer widget for GTK"
+arch=('i686' 'x86_64')
+url="http://trac.bjourne.webfactional.com/"
+license=('LGPL2.1')
+depends=('gtk2')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://trac.bjourne.webfactional.com/attachment/wiki/WikiStart/${pkgname}-${pkgver}.tar.gz?format=raw)
+md5sums=('501367b3f50e69a12208dc9c6ad00b18')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ rm -rf "${pkgdir}/usr/share"
+}
diff --git a/extra/gtkmathview/PKGBUILD b/extra/gtkmathview/PKGBUILD
new file mode 100644
index 000000000..58e10f4df
--- /dev/null
+++ b/extra/gtkmathview/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 42290 2009-06-12 15:51:28Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gtkmathview
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="C++ rendering engine for MathML documents"
+arch=('i686' 'x86_64')
+url="http://helm.cs.unibo.it/mml-widget/"
+license=('GPL')
+depends=('popt' 'gtk2' 't1lib' 'gmetadom>=0.2.6')
+options=('!libtool')
+source=(http://helm.cs.unibo.it/mml-widget/sources/${pkgname}-${pkgver}.tar.gz
+ gtkmathview-0.8.0-gcc44.patch
+ gtkmathview-0.8.0-cond-t1.patch)
+md5sums=('b53564e553728d4b69f7d366dfeb5299'
+ '9fd261db865336c89ebf0f3545af9bc4'
+ 'a79a27e00908e75712bc9453b669fe61')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/gtkmathview-0.8.0-gcc44.patch || return 1
+ patch -Np1 -i ${srcdir}/gtkmathview-0.8.0-cond-t1.patch || return 1
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make || return 1
+ make DESTDIR=${pkgdir}/ install
+}
+
diff --git a/extra/gtkmathview/gtkmathview-0.8.0-cond-t1.patch b/extra/gtkmathview/gtkmathview-0.8.0-cond-t1.patch
new file mode 100644
index 000000000..9f134745d
--- /dev/null
+++ b/extra/gtkmathview/gtkmathview-0.8.0-cond-t1.patch
@@ -0,0 +1,22 @@
+diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN gtkmathview-0.8.0.old/src/backend/ps/PS_StreamRenderingContext.cc gtkmathview-0.8.0/src/backend/ps/PS_StreamRenderingContext.cc
+--- gtkmathview-0.8.0.old/src/backend/ps/PS_StreamRenderingContext.cc 2007-08-17 06:02:40.000000000 -0400
++++ gtkmathview-0.8.0/src/backend/ps/PS_StreamRenderingContext.cc 2008-06-26 14:46:31.000000000 -0400
+@@ -24,7 +24,6 @@
+ #include "PS_StreamRenderingContext.hh"
+ #include "String.hh"
+ #include "FontDataBase.hh"
+-#include "T1_FontDataBase.hh"
+
+ PS_StreamRenderingContext::PS_StreamRenderingContext(const SmartPtr<AbstractLogger>& logger,
+ std::ostream& os,
+diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN gtkmathview-0.8.0.old/src/backend/ps/PS_StreamRenderingContext.hh gtkmathview-0.8.0/src/backend/ps/PS_StreamRenderingContext.hh
+--- gtkmathview-0.8.0.old/src/backend/ps/PS_StreamRenderingContext.hh 2007-08-17 06:02:40.000000000 -0400
++++ gtkmathview-0.8.0/src/backend/ps/PS_StreamRenderingContext.hh 2008-06-26 14:46:31.000000000 -0400
+@@ -25,7 +25,6 @@
+ #include "PS_RenderingContext.hh"
+ #include "String.hh"
+ #include "FontDataBase.hh"
+-#include "T1_FontDataBase.hh"
+
+ class GMV_BackEnd_EXPORT PS_StreamRenderingContext : public PS_RenderingContext
+ {
diff --git a/extra/gtkmathview/gtkmathview-0.8.0-gcc44.patch b/extra/gtkmathview/gtkmathview-0.8.0-gcc44.patch
new file mode 100644
index 000000000..a9069056b
--- /dev/null
+++ b/extra/gtkmathview/gtkmathview-0.8.0-gcc44.patch
@@ -0,0 +1,67 @@
+diff -urN gtkmathview-0.8.0-orig/mathmlps/main.cc gtkmathview-0.8.0/mathmlps/main.cc
+--- gtkmathview-0.8.0-orig/mathmlps/main.cc 2008-04-03 22:43:06.000000000 +0400
++++ gtkmathview-0.8.0/mathmlps/main.cc 2008-04-03 23:53:16.000000000 +0400
+@@ -20,6 +20,7 @@
+
+ #include <cassert>
+ #include <fstream>
++#include <cstring>
+
+ #include <popt.h>
+
+diff -urN gtkmathview-0.8.0-orig/mathmlsvg/main.cc gtkmathview-0.8.0/mathmlsvg/main.cc
+--- gtkmathview-0.8.0-orig/mathmlsvg/main.cc 2008-04-03 22:43:05.000000000 +0400
++++ gtkmathview-0.8.0/mathmlsvg/main.cc 2008-04-03 23:43:31.000000000 +0400
+@@ -20,6 +20,7 @@
+
+ #include <cassert>
+ #include <fstream>
++#include <cstring>
+
+ #include <popt.h>
+
+diff -urN gtkmathview-0.8.0-orig/mathmlsvg/SMS.cc gtkmathview-0.8.0/mathmlsvg/SMS.cc
+--- gtkmathview-0.8.0-orig/mathmlsvg/SMS.cc 2008-04-03 22:43:05.000000000 +0400
++++ gtkmathview-0.8.0/mathmlsvg/SMS.cc 2008-04-03 23:25:12.000000000 +0400
+@@ -19,6 +19,7 @@
+ #include <config.h>
+
+ #include <sstream>
++#include <cstring>
+ #include "defs.h"
+ #include "AbstractLogger.hh"
+ #include "ValueConversion.hh"
+diff -urN gtkmathview-0.8.0-orig/src/engine/mathml/mathVariantAux.cc gtkmathview-0.8.0/src/engine/mathml/mathVariantAux.cc
+--- gtkmathview-0.8.0-orig/src/engine/mathml/mathVariantAux.cc 2008-04-03 22:43:05.000000000 +0400
++++ gtkmathview-0.8.0/src/engine/mathml/mathVariantAux.cc 2008-04-03 23:10:05.000000000 +0400
+@@ -20,6 +20,8 @@
+
+ #include <cassert>
+
++#include <cstring>
++
+ #include "mathVariantAux.hh"
+
+ static MathVariantAttributes vattr[] = {
+diff -urN gtkmathview-0.8.0-orig/src/backend/ps/T1_FontDataBase.cc gtkmathview-0.8.0/src/backend/ps/T1_FontDataBase.cc
+--- gtkmathview-0.8.0-orig/src/backend/ps/T1_FontDataBase.cc 2007-08-17 12:02:40.000000000 +0200
++++ gtkmathview-0.8.0/src/backend/ps/T1_FontDataBase.cc 2008-06-07 12:26:01.000000000 +0200
+@@ -23,6 +23,7 @@
+ #include <stdlib.h>
+ #include <iostream>
+ #include <list>
++#include <cstring>
+
+ #include "String.hh"
+ #include "T1_FontDataBase.hh"
+--- a/src/common/AbstractLogger.cc 2009-06-12 16:29:57.000000000 -0700
++++ b/src/common/AbstractLogger.cc 2009-06-12 16:29:57.000000000 -0700
+@@ -18,6 +18,8 @@
+
+ #include <config.h>
+
++#include <cstdio>
++
+ #include <stdarg.h>
+
+ #include "AbstractLogger.hh"
diff --git a/extra/gtkmm/PKGBUILD b/extra/gtkmm/PKGBUILD
new file mode 100644
index 000000000..f6e870c28
--- /dev/null
+++ b/extra/gtkmm/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 100506 2010-11-23 19:11:38Z heftig $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gtkmm
+pkgname=('gtkmm' 'gtkmm-docs')
+pkgver=2.22.0
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('gtk2>=2.22.1' 'pangomm>=2.26.2' 'atkmm>=2.22.1' 'glibmm-docs>=2.24.2')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.22/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('8478d80d8d4793c2e1c459a71bad6a767a43eaf2664da06a9bd65a2b98bb07b1')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_gtkmm() {
+ pkgdesc="C++ bindings for gtk2"
+ depends=('gtk2>=2.22.1' 'pangomm>=2.26.2' 'atkmm>=2.22.1')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gtkmm-docs() {
+ pkgdesc="Developer documentation for gtkmm"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C docs DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtkpod/PKGBUILD b/extra/gtkpod/PKGBUILD
new file mode 100644
index 000000000..7fa7f8e4f
--- /dev/null
+++ b/extra/gtkpod/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 96753 2010-10-24 16:27:54Z ibiru $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=gtkpod
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A platform independent GUI for Apple's iPod using GTK2"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://gtkpod.sourceforge.net"
+install=gtkpod.install
+depends=('libgpod>=0.8.0' 'libid3tag' 'flac' 'libvorbis' 'curl' 'libglade' 'hicolor-icon-theme')
+optdepends=('libmp4v2: MP4/h264 support')
+makedepends=('intltool')
+source=(http://downloads.sourceforge.net/gtkpod/${pkgname}-${pkgver}.tar.gz)
+md5sums=('cadd402dcd1cfbedda0357bf24965a7c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's#python#python2#' scripts/sync-palm-jppy.py
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtkpod/gtkpod.install b/extra/gtkpod/gtkpod.install
new file mode 100644
index 000000000..17ca8f78a
--- /dev/null
+++ b/extra/gtkpod/gtkpod.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/gtksourceview-sharp-2.0/PKGBUILD b/extra/gtksourceview-sharp-2.0/PKGBUILD
new file mode 100644
index 000000000..1f51ac1f0
--- /dev/null
+++ b/extra/gtksourceview-sharp-2.0/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 22404 2008-12-26 18:25:17Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Brice Carpentier <brice@daknet.org>
+
+pkgname=gtksourceview-sharp-2.0
+pkgver=0.12
+pkgrel=1
+pkgdesc="a C# binding to gtksourceview"
+url="http://www.mono-project.com/"
+depends=('gtksourceview' 'gtk-sharp-2>=2.12.7' 'gnome-sharp>=2.24.0')
+makedepends=('monodoc')
+conflicts=('gtksourceview-sharp')
+provides=('gtksourceview-sharp')
+source=(http://ftp.novell.com/pub/mono/sources/gtksourceview-sharp2/${pkgname}-${pkgver}.tar.bz2
+ gtksourceview-sharp2-gnome-print.patch)
+license=('LGPL2')
+arch=('i686' 'x86_64')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/gtksourceview-sharp2-gnome-print.patch" || return 1
+ autoreconf || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make GACUTIL="/usr/bin/gacutil /root ${pkgdir}/usr/lib" \
+ DESTDIR="${pkgdir}" install || return 1
+ rm -rf "${pkgdir}/usr/share/gtksourceview-1.0"
+}
diff --git a/extra/gtksourceview-sharp-2.0/gtksourceview-sharp-2.0.install b/extra/gtksourceview-sharp-2.0/gtksourceview-sharp-2.0.install
new file mode 100644
index 000000000..4d9d891f6
--- /dev/null
+++ b/extra/gtksourceview-sharp-2.0/gtksourceview-sharp-2.0.install
@@ -0,0 +1,24 @@
+post_install() {
+ echo "recreating monodoc index ... this could take a while..."
+ monodoc --make-index > /dev/null 2>&1
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ echo "recreating monodoc index ... this could take a while..."
+ monodoc --make-index > /dev/null 2>&1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/extra/gtksourceview-sharp-2.0/gtksourceview-sharp2-gnome-print.patch b/extra/gtksourceview-sharp-2.0/gtksourceview-sharp2-gnome-print.patch
new file mode 100644
index 000000000..618f3f94e
--- /dev/null
+++ b/extra/gtksourceview-sharp-2.0/gtksourceview-sharp2-gnome-print.patch
@@ -0,0 +1,57 @@
+--- configure.in 2008-02-26 16:30:05.000000000 -0700
++++ configure.in 2008-09-05 13:36:30.000000000 -0600
+@@ -69,6 +69,16 @@
+ gtksharp_prefix=`pkg-config --variable=prefix gtk-sharp-2.0`
+ AC_SUBST(gtksharp_prefix)
+
++PKG_CHECK_MODULES(GNOMEPRINT_SHARP, gnome-print-sharp-2.18, use_gnomeprint=yes, use_gnomeprint=no)
++if test "x$use_gnomeprint" = "xyes" ; then
++GNOMEPRINT_SHARP_REQUIRES=gnome-print-sharp-2.18
++else
++GNOMEPRINT_SHARP_REQUIRES=
++fi
++AC_SUBST(GNOMEPRINT_SHARP_CFLAGS)
++AC_SUBST(GNOMEPRINT_SHARP_LIBS)
++AC_SUBST(GNOMEPRINT_SHARP_REQUIRES)
++
+ PKG_CHECK_MODULES(GTKSOURCEVIEW, gtksourceview-1.0 >= 1.0.0)
+ AC_SUBST(GTKSOURCEVIEW_LIBS)
+ gtksourceview_prefix=`pkg-config --variable=prefix gtksourceview-1.0`
+--- gtksourceview/Makefile.am 2008-02-26 16:30:05.000000000 -0700
++++ gtksourceview/Makefile.am 2008-09-05 13:14:53.000000000 -0600
+@@ -2,7 +2,7 @@
+ LIBRARY= $(LIBRARY_NAME).dll
+ APIS= gtksourceview-api.xml
+
+-ASSEMBLIES= /pkg:gnome-sharp-2.0
++ASSEMBLIES= $(GTK_SHARP_LIBS) $(GNOMEPRINT_SHARP_LIBS)
+
+ EXTRA_DIST = $(sources) $(customs) Gtk.metadata gtksourceview-api.raw AssemblyInfo.cs.in
+
+@@ -21,7 +21,7 @@
+ $(GAPI_FIXUP) --api=gtksourceview-api.xml --metadata=$(srcdir)/Gtk.metadata
+
+ generated-stamp: $(APIS) $(customs) $(sources) Gtk.metadata
+- $(GAPI_CODEGEN) $(GTK_SHARP_CFLAGS) --generate $(APIS) \
++ $(GAPI_CODEGEN) $(GTK_SHARP_CFLAGS) $(GNOMEPRINT_SHARP_CFLAGS) --generate $(APIS) \
+ --outdir=generated --customdir=. --assembly-name=gtksourceview-sharp && touch generated-stamp
+
+ sources = \
+--- gtksourceview-sharp-2.0.pc.in 2008-02-26 16:30:05.000000000 -0700
++++ gtksourceview-sharp-2.0.pc.in 2008-09-05 13:22:33.000000000 -0600
+@@ -6,5 +6,5 @@
+ Name: GtkSourceView#
+ Description: GtkSourceView# - gtksourceview .NET Binding
+ Version: @VERSION@
+-Requires: gnome-sharp-2.0
++Requires: gnome-sharp-2.0 @GNOMEPRINT_SHARP_REQUIRES@
+ Libs: -r:${prefix}/lib/mono/gtksourceview-sharp-2.0/gtksourceview-sharp.dll
+--- sample/Makefile.am 2008-02-26 16:30:05.000000000 -0700
++++ sample/Makefile.am 2008-09-05 13:35:34.000000000 -0600
+@@ -10,5 +10,5 @@
+ $(CSC) -out:$@ $(srcdir)/SourceViewTest.cs -r:../gtksourceview/gtksourceview-sharp.dll -pkg:gtk-sharp-2.0
+
+ $(PRINT): $(srcdir)/PrintSample.cs
+- $(CSC) -out:$@ $(srcdir)/PrintSample.cs -r:../gtksourceview/gtksourceview-sharp.dll -pkg:gtk-sharp-2.0 -pkg:gnome-sharp-2.0
++ $(CSC) -out:$@ $(srcdir)/PrintSample.cs -r:../gtksourceview/gtksourceview-sharp.dll -pkg:gtk-sharp-2.0 -pkg:gnome-sharp-2.0 $(GNOMEPRINT_SHARP_LIBS)
+
diff --git a/extra/gtksourceview/PKGBUILD b/extra/gtksourceview/PKGBUILD
new file mode 100644
index 000000000..cd93c5bbc
--- /dev/null
+++ b/extra/gtksourceview/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 57064 2009-10-31 11:55:39Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gtksourceview
+pkgver=1.8.5
+pkgrel=3
+pkgdesc="A text widget adding syntax highlighting and more to GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libgnomeprint' 'gtk2')
+makedepends=('perlxml' 'libgnomeprintui' 'pkgconfig')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('de67df2944c1cccbc2d0b4a738e11050')
+
+build() {
+ export CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/gtksourceview2/PKGBUILD b/extra/gtksourceview2/PKGBUILD
new file mode 100644
index 000000000..21473004f
--- /dev/null
+++ b/extra/gtksourceview2/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 92017 2010-09-28 16:54:55Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gtksourceview2
+pkgver=2.10.5
+pkgrel=1
+pkgdesc="A text widget adding syntax highlighting and more to GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk2>=2.22.0' 'libxml2>=2.7.7')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/gtksourceview/2.10/gtksourceview-${pkgver}.tar.bz2)
+sha256sums=('c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e')
+
+build() {
+ cd "${srcdir}/gtksourceview-${pkgver}"
+ sed -i 's#python#python2#' gtksourceview/language-specs/convert.py
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/gtkspell/PKGBUILD b/extra/gtkspell/PKGBUILD
new file mode 100644
index 000000000..162584730
--- /dev/null
+++ b/extra/gtkspell/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 58462 2009-11-08 16:00:59Z jgc $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+# Contributer: Ben <ben@benmazer.net>
+
+pkgname=gtkspell
+pkgver=2.0.16
+pkgrel=1
+url="http://gtkspell.sourceforge.net/"
+pkgdesc="GtkSpell provides word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk2>=2.18.3' 'enchant>=1.5.0')
+makedepends=('intltool' 'gtk-doc')
+options=('!libtool')
+source=(http://gtkspell.sourceforge.net/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('f75dcc9338f182c571b321d37c606a94')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/gucharmap/PKGBUILD b/extra/gucharmap/PKGBUILD
new file mode 100644
index 000000000..c2269c46e
--- /dev/null
+++ b/extra/gucharmap/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 99468 2010-11-14 19:46:42Z ibiru $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gucharmap
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="Gnome Unicode Charmap"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+depends=('gconf>=2.32.0' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+install=gucharmap.install
+source=(http://ftp.gnome.org/pub/gnome/sources/gucharmap/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('fdef066f35f4301bc128b91f15a30d64a2459721cb50daa53f923789df315c28')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper
+ make
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gucharmap ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/gucharmap/gucharmap.install b/extra/gucharmap/gucharmap.install
new file mode 100644
index 000000000..4de3253f6
--- /dev/null
+++ b/extra/gucharmap/gucharmap.install
@@ -0,0 +1,22 @@
+pkgname=gucharmap
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/guile/PKGBUILD b/extra/guile/PKGBUILD
new file mode 100644
index 000000000..eafece87a
--- /dev/null
+++ b/extra/guile/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 109127 2011-02-06 11:24:26Z andyrtr $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=guile
+pkgver=1.8.8
+pkgrel=1
+pkgdesc="a portable, embeddable Scheme implementation written in C"
+url="http://www.gnu.org/software/guile/"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gmp' 'libtool' 'ncurses>=5.7' 'texinfo')
+install=guile.install
+source=(ftp://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('18661a8fdfef13e2fcb7651720aa53f3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --disable-static \
+ --disable-error-on-warning
+ make LDFLAGS+="-lpthread"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/guile/guile.install b/extra/guile/guile.install
new file mode 100644
index 000000000..5d1eeaf24
--- /dev/null
+++ b/extra/guile/guile.install
@@ -0,0 +1,30 @@
+infodir=/usr/share/info
+files=(goops.info
+ guile-tut.info
+ guile.info
+ guile.info-1
+ guile.info-2
+ guile.info-3
+ guile.info-4
+ guile.info-5
+ guile.info-6
+ guile.info-7
+ r5rs.info)
+
+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/extra/gutenprint/PKGBUILD b/extra/gutenprint/PKGBUILD
new file mode 100644
index 000000000..a06b6bc0a
--- /dev/null
+++ b/extra/gutenprint/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 87283 2010-08-11 20:42:35Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=gutenprint
+pkgver=5.2.6
+pkgrel=1
+pkgdesc="Top quality printer drivers for POSIX systems"
+arch=('i686' 'x86_64')
+license=('GPL')
+install=gutenprint.install
+depends=('readline' 'gnutls>=2.8.5') # needs to be checked. build log says -Lgnutls but namcap doesn't detect it
+makedepends=('gimp>=2.6.8' 'gtk2>=2.18.6' 'cups>=1.4.2' 'foomatic-db-engine' 'ghostscript>=8.71')
+optdepends=('cups: to use cups printer spooler(recommended)'
+ 'foomatic-db-engine: to use foomatic spooler'
+ 'ghostscript: adds postscript support for ijsgutenprint'
+ 'gimp: adds gutenprint plugin to gimp')
+source=(http://downloads.sourceforge.net/gimp-print/$pkgname-$pkgver.tar.bz2)
+url="http://gimp-print.sourceforge.net/"
+replaces=('gimp-print')
+options=('!libtool' '!emptydirs')
+md5sums=('1f0d0cbef6c089f4f095e21869fa70db')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-samples --with-cups --with-gimp2 \
+ --disable-translated-cups-ppds --with-gimp2-as-gutenprint \
+ --disable-libgutenprintui --enable-libgutenprintui2 --disable-gtktest \
+ --enable-cups-ppds --enable-cups-ppds-at-top-level \
+ --with-foomatic --with-foomatic3 --with-ghostscript \
+ --disable-static --disable-static-genppd --with-ijs \
+ --disable-globalized-cups-ppds
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/extra/gutenprint/gutenprint.install b/extra/gutenprint/gutenprint.install
new file mode 100644
index 000000000..05e8bec38
--- /dev/null
+++ b/extra/gutenprint/gutenprint.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo ">>please run /usr/sbin/cups-genppdupdate"
+ echo ">>and restart cups deamon"
+}
+
+post_upgrade() {
+ post_install
+}
+
diff --git a/extra/gv/PKGBUILD b/extra/gv/PKGBUILD
new file mode 100644
index 000000000..edf76955e
--- /dev/null
+++ b/extra/gv/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 103001 2010-12-13 22:11:14Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=gv
+pkgver=3.7.1
+pkgrel=2
+pkgdesc="A program to view PostScript and PDF documents"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gv/"
+license=('GPL')
+depends=('xaw3d' 'ghostscript')
+install=gv.install
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz gv.desktop gv.png aplinedel.patch)
+md5sums=('bf4823d00d8e431f97dbcb7dd87c46ac' 'cf04652952f2d0903bc7578b4826f50c'\
+ 'ab0e3879dbe39e59ad1c923020c28a86' '8a57a5d50a0d68dc1d98108e9665bd2d')
+sha1sums=('05fcf76f29de77e67379bae7e9ca1c8a26bbf6e1' 'c8230fe08ee6d22525678a97832f44941237d174'\
+ '35b9168e526527001b1b5b8ee34a5b69d9369590' 'e6358e74ec2641730b44443a49df36322df2bdd8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../aplinedel.patch
+ sed -i -e "s:-dGraphicsAlphaBits=2:\0 -dAlignToPixels=0:" src/Makefile.{am,in}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../gv.desktop "${pkgdir}/usr/share/applications/gv.desktop"
+ install -D -m644 ../gv.png "${pkgdir}/usr/share/pixmaps/gv.png"
+}
diff --git a/extra/gv/aplinedel.patch b/extra/gv/aplinedel.patch
new file mode 100644
index 000000000..3026e426c
--- /dev/null
+++ b/extra/gv/aplinedel.patch
@@ -0,0 +1,11 @@
+diff -ur a/src/gv_misc_res.dat b/src/gv_misc_res.dat
+--- a/src/gv_misc_res.dat 2010-10-15 09:21:36.000000000 +0200
++++ b/src/gv_misc_res.dat 2010-10-15 09:21:48.000000000 +0200
+@@ -476,7 +476,6 @@
+ <Key>BackSpace: GV_Page(up,left-bottom,!page-1,bottom-rightedge)\n\
+ <Key>Insert: GV_Page(page-5) \n\
+ <Key>Delete: GV_Page(page+5) \n\
+- <Key>apLineDel: GV_Page(page+5) \n\
+ <Key>Home: GV_Page(page=0) \n\
+ <Key>End: GV_Page(page=99999) \n\
+ <Key>Prior: GV_Page(page-1) \n\
diff --git a/extra/gv/gv.desktop b/extra/gv/gv.desktop
new file mode 100644
index 000000000..6332ee859
--- /dev/null
+++ b/extra/gv/gv.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=GV
+MimeType=application/pdf;application/postscript;image/x-eps;application/illustrator
+GenericName=Postscript Viewer
+Exec=gv
+Icon=gv
+Categories=Application;Graphics;Viewer;Office;
+Type=Application
+Terminal=false
+StartupNotify=true
diff --git a/extra/gv/gv.install b/extra/gv/gv.install
new file mode 100644
index 000000000..dd0e8c9c6
--- /dev/null
+++ b/extra/gv/gv.install
@@ -0,0 +1,16 @@
+infodir=/usr/share/info
+file=gv.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/extra/gv/gv.png b/extra/gv/gv.png
new file mode 100644
index 000000000..59e832a48
--- /dev/null
+++ b/extra/gv/gv.png
Binary files differ
diff --git a/extra/gvfs/PKGBUILD b/extra/gvfs/PKGBUILD
new file mode 100644
index 000000000..282dcf7a3
--- /dev/null
+++ b/extra/gvfs/PKGBUILD
@@ -0,0 +1,100 @@
+# $Id: PKGBUILD 98674 2010-11-12 16:49:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gvfs
+pkgname=('gvfs' 'gvfs-smb' 'gvfs-afc' 'gvfs-gphoto2' 'gvfs-obexftp')
+pkgver=1.6.6
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('libsoup-gnome>=2.32.0' 'libcdio>=0.82' 'fuse>=2.8.4' 'bluez>=4.77' 'smbclient>=3.5.5' 'libgphoto2>=2.4.10' 'libarchive>=2.8.4' 'gnome-disk-utility>=2.32.0' 'pkgconfig' 'intltool' 'libimobiledevice>=1.0.2')
+url="http://www.gnome.org"
+options=(!libtool)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/1.6/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('902890deb6a670f642180ea958406ebb02af1d5867a464c87e493d56f1dde7bd')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gvfs \
+ --with-bash-completion-dir=/etc/bash_completion.d
+ make
+}
+
+package_gvfs() {
+ pkgdesc="Userspace virtual filesystem implemented as a pluggable module for gio"
+ depends=('libsoup-gnome>=2.32.0' 'gnome-disk-utility>=2.32.0' 'libcdio>=0.82' 'fuse>=2.8.4' 'libarchive>=2.8.4')
+ optdepends=('gvfs-afc: AFC (mobile devices) support'
+ 'gvfs-smb: SMB/CIFS (Windows client) support'
+ 'gvfs-gphoto2: gphoto2 (PTP camera/MTP media player) support'
+ 'gvfs-obexftp: ObexFTP (bluetooth) support')
+ install=gvfs.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -e 's/^am__append_3/#am__append_3/' \
+ -e 's/^am__append_4/#am__append_4/' \
+ -i monitor/Makefile
+ make DESTDIR="${pkgdir}" install
+ cd "${pkgdir}"
+ rm -f usr/lib/gvfs/gvfsd-{smb,smb-browse,afc,gphoto2,obexftp}
+ rm -f usr/share/gvfs/mounts/{smb,smb-browse,afc,gphoto2,obexftp}.mount
+}
+
+package_gvfs-smb() {
+ pkgdesc="SMB/CIFS (Windows client) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'smbclient>=3.5.5' 'libgnome-keyring>=2.32.0')
+ install=gvfs-module.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -m755 -d "${pkgdir}/usr/lib/gvfs"
+ install -m755 -d "${pkgdir}/usr/share/gvfs/mounts"
+
+ install -m755 .libs/gvfsd-smb{,-browse} "${pkgdir}/usr/lib/gvfs/"
+ install -m644 smb{,-browse}.mount "${pkgdir}/usr/share/gvfs/mounts/"
+}
+
+package_gvfs-afc() {
+ pkgdesc="AFC (mobile devices) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'libimobiledevice>=1.0.2')
+ install=gvfs-module.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -m755 -d "${pkgdir}/usr/lib/gvfs"
+ install -m755 -d "${pkgdir}/usr/share/gvfs/mounts"
+
+ install -m755 .libs/gvfsd-afc "${pkgdir}/usr/lib/gvfs/"
+ install -m644 afc.mount "${pkgdir}/usr/share/gvfs/mounts/"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/monitor/afc"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gvfs-gphoto2() {
+ pkgdesc="gphoto2 (PTP camera/MTP media player) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'dbus-core>=1.4.0' 'libgphoto2>=2.4.10' 'udev>=163')
+ install=gvfs-module.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -m755 -d "${pkgdir}/usr/lib/gvfs"
+ install -m755 -d "${pkgdir}/usr/share/gvfs/mounts"
+
+ install -m755 .libs/gvfsd-gphoto2 "${pkgdir}/usr/lib/gvfs/"
+ install -m644 gphoto2.mount "${pkgdir}/usr/share/gvfs/mounts/"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/monitor/gphoto2"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gvfs-obexftp() {
+ pkgdesc="ObexFTP (bluetooth) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'dbus-glib>=0.86' 'bluez>=4.77' 'obex-data-server')
+ install=gvfs-module.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -m755 -d "${pkgdir}/usr/lib/gvfs"
+ install -m755 -d "${pkgdir}/usr/share/gvfs/mounts"
+
+ install -m755 .libs/gvfsd-obexftp "${pkgdir}/usr/lib/gvfs/"
+ install -m644 obexftp.mount "${pkgdir}/usr/share/gvfs/mounts/"
+}
diff --git a/extra/gvfs/gvfs-module.install b/extra/gvfs/gvfs-module.install
new file mode 100644
index 000000000..09d1f11ec
--- /dev/null
+++ b/extra/gvfs/gvfs-module.install
@@ -0,0 +1,7 @@
+post_install() {
+ killall -USR1 gvfsd >&/dev/null || :
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/extra/gvfs/gvfs.install b/extra/gvfs/gvfs.install
new file mode 100644
index 000000000..5acc60f8f
--- /dev/null
+++ b/extra/gvfs/gvfs.install
@@ -0,0 +1,12 @@
+post_install() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+ killall -USR1 gvfsd >&/dev/null || :
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
diff --git a/extra/gweled/PKGBUILD b/extra/gweled/PKGBUILD
new file mode 100644
index 000000000..16ea76bef
--- /dev/null
+++ b/extra/gweled/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 108818 2011-02-03 20:50:44Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=gweled
+pkgver=0.9
+pkgrel=1
+pkgdesc="A puzzle game similar to Bejeweled (aka Diamond Mine)"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="https://launchpad.net/gweled/"
+depends=('librsvg' 'libmikmod')
+makedepends=('intltool')
+install=gweled.install
+source=(http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a3aeec75190710758bbd3c487b637112')
+sha1sums=('70358e0557eaee370a9183e1ea34e95a09d57619')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --with-scores-user=root --with-scores-group=games
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+# We generate these files on post-install to prevent score resets on upgrade
+ rm -rf "${pkgdir}/var"
+}
diff --git a/extra/gweled/gweled.install b/extra/gweled/gweled.install
new file mode 100644
index 000000000..c24563d6d
--- /dev/null
+++ b/extra/gweled/gweled.install
@@ -0,0 +1,24 @@
+scores=(
+ 'gweled.Normal.scores'
+ 'gweled.Timed.scores'
+)
+
+post_install() {
+ for score in "${scores[@]}" ; do
+ if [ -e "var/games/${score}" ]; then
+ continue
+ fi
+ touch "var/games/${score}"
+ chown root:games "var/games/${score}"
+ chmod 664 "var/games/${score}"
+ done
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/habak/PKGBUILD b/extra/habak/PKGBUILD
new file mode 100644
index 000000000..5ef6cde6f
--- /dev/null
+++ b/extra/habak/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 4097 2008-07-03 14:48:26Z ronald $
+# Maintainer: Ronald van Haren <ronald@archlinux.org>
+# Contributor: Simo Leone <simo@archlinux.org>
+pkgname=habak
+pkgver=0.2.5
+pkgrel=3
+pkgdesc="A background changing app"
+url="http://fvwm-crystal.org"
+license=('GPL2')
+depends=('imlib2')
+source=(http://download.gna.org/fvwm-crystal/habak/$pkgver/$pkgname-$pkgver.tar.gz)
+arch=('i686' 'x86_64')
+md5sums=('bee5c394989367f7a4c5cb9ec99d307c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make || return 1
+ install -m755 -D habak $pkgdir/usr/bin/habak || return 1
+}
diff --git a/extra/hal/PKGBUILD b/extra/hal/PKGBUILD
new file mode 100644
index 000000000..6eaf1c847
--- /dev/null
+++ b/extra/hal/PKGBUILD
@@ -0,0 +1,86 @@
+# $Id: PKGBUILD 105528 2011-01-10 10:53:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=hal
+pkgver=0.5.14
+pkgrel=6
+pkgdesc="Hardware Abstraction Layer"
+arch=(i686 x86_64)
+license=('GPL' 'custom')
+url="http://www.freedesktop.org/wiki/Software/hal"
+depends=('dbus-glib>=0.82' 'libusb-compat' 'udev>=146' 'filesystem>=0.7.1-5' 'hal-info>=0.20090716' 'eject' 'dmidecode' 'pciutils>=3.0.2' 'usbutils>=0.73-5' 'pm-utils>=1.2.5' 'consolekit>=0.4.1' 'util-linux-ng>=2.16')
+makedepends=('pkgconfig' 'gperf')
+options=('!libtool' '!makeflags')
+install=hal.install
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+ hal
+ hal-0.5.9-hide-diagnostic.patch
+ hal-remove-dell-killswitch.patch
+ hal-KVM-evdev.patch
+ hal-HDAPS-blacklist.patch
+ hal-xen-unignore-axes.patch
+ hal-use-at-console.patch
+ fix-libusb-detection.patch
+ dbus-error-init.patch
+ path-max.patch
+ handle-input-touchpad.patch
+ macbook-fix-ioperm.patch
+ hal-ignore-internal-dm-devices.patch)
+md5sums=('e9163df591a6f38f59fdbfe33e73bf20'
+ '277e96ac130d7bfce0b30f0b80db8782'
+ '4d4b6801a1cedca22b8bdd9db73b16fb'
+ '6d87c3e63184ae3a69caafc846f538a3'
+ '6507e5091ee2d11a87ae738a8e2caecb'
+ '1171c2d83b76059f2da7a3538e08fa4e'
+ '52bd305299aa22ae07f1a862c22d30fa'
+ '3f11234fb5e5044fbfc5199ec65b182c'
+ 'da088f12cfc2d190bbf95b747e19ab9e'
+ '634f4ec2203eff7de8fa2ed2c6b9cbe0'
+ 'f8c9b3a40d03907b498feef571d42466'
+ '0575677614db0632b17b1a719798c7e0'
+ '46a5db3ff896ee37762aa8d7e70942c4'
+ '17bc2b911f245cef4a1d98769d5c4d14')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/hal-0.5.9-hide-diagnostic.patch"
+ patch -Np1 -i "${srcdir}/hal-remove-dell-killswitch.patch"
+ patch -Np1 -i "${srcdir}/hal-KVM-evdev.patch"
+ patch -Np1 -i "${srcdir}/hal-HDAPS-blacklist.patch"
+ patch -Np1 -i "${srcdir}/hal-xen-unignore-axes.patch"
+ patch -Np1 -i "${srcdir}/hal-use-at-console.patch"
+ patch -Np1 -i "${srcdir}/fix-libusb-detection.patch"
+ patch -Np1 -i "${srcdir}/dbus-error-init.patch"
+ patch -Np1 -i "${srcdir}/path-max.patch"
+ patch -Np1 -i "${srcdir}/handle-input-touchpad.patch"
+ patch -Np1 -i "${srcdir}/macbook-fix-ioperm.patch"
+ patch -Np1 -i "${srcdir}/hal-ignore-internal-dm-devices.patch"
+
+ libtoolize --force
+ aclocal
+ autoconf
+ automake
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/hal --with-udev-prefix=/etc \
+ --enable-static=no --disable-acpi-ibm \
+ --disable-docbook-docs --disable-console-kit \
+ --disable-policy-kit --disable-acl-management \
+ --enable-umount-helper --disable-smbios \
+ --with-hal-user=hal --with-hal-group=hal \
+ --with-pid-file=/var/run/hald.pid \
+ --disable-gtk-doc
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 -d "${pkgdir}/media"
+ install -m755 "${srcdir}/hal" "${pkgdir}/etc/rc.d/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ # Fix udev rule location
+ install -d -m755 "${pkgdir}/lib"
+ mv "${pkgdir}/etc/udev" "${pkgdir}/lib/"
+}
diff --git a/extra/hal/dbus-error-init.patch b/extra/hal/dbus-error-init.patch
new file mode 100644
index 000000000..fb3ad020a
--- /dev/null
+++ b/extra/hal/dbus-error-init.patch
@@ -0,0 +1,231 @@
+From dcb2829b8eff61463b0869614ddb07b1c86cecaa Mon Sep 17 00:00:00 2001
+From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Date: Wed, 30 Dec 2009 11:42:52 +0000
+Subject: linux/probe-input: don't use error prio init
+
+it may happen in the out: case that LIBHAL_FREE_DBUS_ERROR (&error) is
+called before the error structure is initialized via
+dbus_error_init (&error). This could lead to a segfault during startup
+as seen in dmesg:
+
+|Intel AES-NI instructions are not detected.
+|padlock: VIA PadLock not detected.
+|hald-probe-inpu[1793]: segfault at 2 ip 00007f656fb68969 sp 00007fff39eeb950 error 4 in libc-2.10.2.so[7f656faf3000+14a000]
+|hald-probe-inpu[1796]: segfault at 2 ip 00007fa2c3293969 sp 00007fffd92a5dd0 error 4 in libc-2.10.2.so[7fa2c321e000+14a000]
+|hald-probe-inpu[1797]: segfault at 2 ip 00007f1d08ba2969 sp 00007fff34244e30 error 4 in libc-2.10.2.so[7f1d08b2d000+14a000]
+|hald-probe-inpu[1799]: segfault at 2 ip 00007f35c0e3d969 sp 00007fffe5ec7ee0 error 4 in libc-2.10.2.so[7f35c0dc8000+14a000]
+|hald-probe-inpu[1800]: segfault at 2 ip 00007f931c556969 sp 00007fffe1825b60 error 4 in libc-2.10.2.so[7f931c4e1000+14a000]
+|hald-probe-inpu[1801]: segfault at 2 ip 00007f5156d9a969 sp 00007fff4e620af0 error 4 in libc-2.10.2.so[7f5156d25000+14a000]
+|RPC: Registered udp transport module.
+|RPC: Registered tcp transport module.
+
+What I run into seems to be reported as Debian #562068 [0]. This patch
+makes the segfault go away on my machine.
+
+[0] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=562068
+
+Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/probing/probe-input.c b/hald/linux/probing/probe-input.c
+index 94e9929..cad47d3 100644
+--- a/hald/linux/probing/probe-input.c
++++ b/hald/linux/probing/probe-input.c
+@@ -70,6 +70,7 @@ main (int argc, char *argv[])
+ fd = -1;
+
+ setup_logger ();
++ dbus_error_init (&error);
+
+ button_type = getenv ("HAL_PROP_BUTTON_TYPE");
+ if (button_type == NULL)
+@@ -96,7 +97,6 @@ main (int argc, char *argv[])
+ if (udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+--
+cgit v0.8.3-6-g21f6
+From baa61a879985d63f549854518ef14efd40e62e8c Mon Sep 17 00:00:00 2001
+From: Peter Jones <pjones@redhat.com>
+Date: Wed, 24 Feb 2010 16:19:28 +0000
+Subject: Make sure dbus_error_init() is called before LIBHAL_FREE_DBUS_ERROR()
+
+If dbus_error_init() is not called before LIBHAL_FREE_DBUS_ERROR() is
+called on that error, then it is uninitialized and may segfault. This
+means that dbus_error_init() must be called before any "goto out" if
+"out:" calls LIBHAL_FREE_DBUS_ERROR().
+
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/probing/probe-hiddev.c b/hald/linux/probing/probe-hiddev.c
+index 45d2084..bffc040 100644
+--- a/hald/linux/probing/probe-hiddev.c
++++ b/hald/linux/probing/probe-hiddev.c
+@@ -57,11 +57,12 @@ main (int argc, char *argv[])
+ /* assume failure */
+ ret = 1;
+
++ dbus_error_init (&error);
++
+ udi = getenv ("UDI");
+ if (udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-ieee1394-unit.c b/hald/linux/probing/probe-ieee1394-unit.c
+index 70b0f86..aaa92e2 100644
+--- a/hald/linux/probing/probe-ieee1394-unit.c
++++ b/hald/linux/probing/probe-ieee1394-unit.c
+@@ -388,6 +388,8 @@ int main (int argc, char *argv[])
+
+ setup_logger ();
+
++ dbus_error_init (&error);
++
+ udi = getenv ("UDI");
+ if (udi == NULL)
+ goto out;
+@@ -396,7 +398,6 @@ int main (int argc, char *argv[])
+ if (ieee1394_udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-net-bluetooth.c b/hald/linux/probing/probe-net-bluetooth.c
+index 0b1b912..e911eea 100644
+--- a/hald/linux/probing/probe-net-bluetooth.c
++++ b/hald/linux/probing/probe-net-bluetooth.c
+@@ -141,6 +141,8 @@ main (int argc, char *argv[])
+ DBusMessage *reply = NULL;
+ DBusError error;
+
++ dbus_error_init (&error);
++
+ udi = getenv ("UDI");
+ if (udi == NULL)
+ goto out;
+@@ -151,8 +153,6 @@ main (int argc, char *argv[])
+
+ HAL_INFO (("Investigating '%s'", iface));
+
+- dbus_error_init (&error);
+-
+ if ((conn = dbus_bus_get (DBUS_BUS_SYSTEM, &error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-printer.c b/hald/linux/probing/probe-printer.c
+index 91ed7bc..7c6d1c6 100644
+--- a/hald/linux/probing/probe-printer.c
++++ b/hald/linux/probing/probe-printer.c
+@@ -66,6 +66,8 @@ main (int argc, char *argv[])
+ ret = 1;
+
+ setup_logger ();
++
++ dbus_error_init (&error);
+
+ udi = getenv ("UDI");
+ if (udi == NULL) {
+@@ -73,7 +75,6 @@ main (int argc, char *argv[])
+ goto out;
+ }
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
+ HAL_ERROR (("ctx init failed"));
+ goto out;
+diff --git a/hald/linux/probing/probe-smbios.c b/hald/linux/probing/probe-smbios.c
+index 0bc9689..15c0d4f 100644
+--- a/hald/linux/probing/probe-smbios.c
++++ b/hald/linux/probing/probe-smbios.c
+@@ -129,6 +129,8 @@ main (int argc, char *argv[])
+ ret = 1;
+
+ setup_logger ();
++
++ dbus_error_init (&error);
+
+ udi = getenv ("UDI");
+ if (udi == NULL) {
+@@ -136,7 +138,6 @@ main (int argc, char *argv[])
+ goto out;
+ }
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL) {
+ HAL_ERROR (("ctx init failed"));
+ goto out;
+diff --git a/hald/linux/probing/probe-storage.c b/hald/linux/probing/probe-storage.c
+index 824a82e..dd524ca 100644
+--- a/hald/linux/probing/probe-storage.c
++++ b/hald/linux/probing/probe-storage.c
+@@ -109,6 +109,8 @@ main (int argc, char *argv[])
+ /* assume failure */
+ ret = 1;
+
++ dbus_error_init (&error);
++
+ if ((udi = getenv ("UDI")) == NULL)
+ goto out;
+ if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
+@@ -127,7 +129,6 @@ main (int argc, char *argv[])
+ else
+ only_check_for_fs = FALSE;
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+diff --git a/hald/linux/probing/probe-video4linux.c b/hald/linux/probing/probe-video4linux.c
+index cf913c0..7bc13e8 100644
+--- a/hald/linux/probing/probe-video4linux.c
++++ b/hald/linux/probing/probe-video4linux.c
+@@ -58,6 +58,8 @@ main (int argc, char *argv[])
+
+ setup_logger ();
+
++ dbus_error_init (&error);
++
+ device_file = getenv ("HAL_PROP_VIDEO4LINUX_DEVICE");
+ if (device_file == NULL)
+ goto out;
+@@ -66,7 +68,6 @@ main (int argc, char *argv[])
+ if (udi == NULL)
+ goto out;
+
+- dbus_error_init (&error);
+ ctx = libhal_ctx_init_direct (&error);
+ if (ctx == NULL)
+ goto out;
+diff --git a/hald/linux/probing/probe-volume.c b/hald/linux/probing/probe-volume.c
+index 0de1b91..7268fff 100644
+--- a/hald/linux/probing/probe-volume.c
++++ b/hald/linux/probing/probe-volume.c
+@@ -318,6 +318,8 @@ main (int argc, char *argv[])
+ /* assume failure */
+ ret = 1;
+
++ dbus_error_init (&error);
++
+ if ((udi = getenv ("UDI")) == NULL)
+ goto out;
+ if ((device_file = getenv ("HAL_PROP_BLOCK_DEVICE")) == NULL)
+@@ -346,7 +348,6 @@ main (int argc, char *argv[])
+
+ fsusage = getenv ("HAL_PROP_VOLUME_FSUSAGE");
+
+- dbus_error_init (&error);
+ if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
+ goto out;
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/hal/fix-libusb-detection.patch b/extra/hal/fix-libusb-detection.patch
new file mode 100644
index 000000000..d4f966dec
--- /dev/null
+++ b/extra/hal/fix-libusb-detection.patch
@@ -0,0 +1,66 @@
+From fce91df8ba7f305c624baf1f06961c040b088ecc Mon Sep 17 00:00:00 2001
+From: Joe Marcus Clarke <marcus@FreeBSD.org>
+Date: Tue, 08 Dec 2009 00:05:27 +0000
+Subject: Fix libusb detection on Linux
+
+Adjust the FreeBSD libusb20 code so that it does not interfere with the
+Linux libusb detection.
+
+Reported by: Robby Workman <rw@rlworkman.net>
+---
+diff --git a/configure.in b/configure.in
+index a8fda51..8363595 100644
+--- a/configure.in
++++ b/configure.in
+@@ -479,9 +479,6 @@ if test "x$with_libpci" != xno ; then
+ fi
+ AM_CONDITIONAL([HAVE_LIBPCI], [test "x$USE_LIBPCI" = "xyes"])
+
+-USE_LIBUSB20=no
+-USE_LIBUSB=no
+-LIBUSB20_LIBS=""
+ AC_ARG_WITH([backend],
+ AS_HELP_STRING([--with-backend=<name>],
+ [backend to use (linux/solaris/freebsd/dummy)]),
+@@ -510,21 +507,25 @@ AM_CONDITIONAL(HALD_COMPILE_FREEBSD, [test x$HALD_BACKEND = xfreebsd], [Compilin
+ AM_CONDITIONAL(HALD_COMPILE_SOLARIS, [test x$HALD_BACKEND = xsolaris], [Compiling for Solaris])
+ AC_SUBST(HALD_BACKEND)
+ if test "x$HALD_BACKEND" = "xfreebsd"; then
+- AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_LIBUSB20=yes], [USE_LIBUSB20=no])
+-fi
+-if test "x$USE_LIBUSB20" = "xno"; then
+- AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_LIBUSB=yes], [USE_LIBUSB=no])
+-fi
+-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB20" = "xyes"])
+-AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB" = "xyes"])
+-if test "x$USE_LIBUSB20" = "xyes"; then
+- AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20])
+- LIBUSB20_LIBS="-lusb20"
+-elif test "x$USE_LIBUSB" = "xyes"; then
+- AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20])
+- LIBUSB20_LIBS="-lusb"
++ USE_BSDLIBUSB20=no
++ USE_BSDLIBUSB=no
++ LIBUSB20_LIBS=""
++ AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_BSDLIBUSB20=yes], [USE_BSDLIBUSB20=no])
++ if test "x$USE_BSDLIBUSB20" = "xno"; then
++ AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_BSDLIBUSB=yes], [USE_BSDLIBUSB=no])
++ fi
++ AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_BSDLIBUSB20" = "xyes" -o "x$USE_BSDLIBUSB" = "xyes"])
++ if test "x$USE_BSDLIBUSB20" = "xyes"; then
++ AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libusb20])
++ LIBUSB20_LIBS="-lusb20"
++ elif test "x$USE_BSDLIBUSB" = "xyes"; then
++ AC_DEFINE(HAVE_LIBUSB20, 1, [Set if we need libsub20])
++ LIBUSB20_LIBS="-lusb"
++ fi
++ AC_SUBST(LIBUSB20_LIBS)
++else
++ AM_CONDITIONAL([HAVE_LIBUSB20], [false])
+ fi
+-AC_SUBST(LIBUSB20_LIBS)
+
+ dnl DBUS API is subject to changes
+ AC_DEFINE_UNQUOTED(DBUS_API_SUBJECT_TO_CHANGE, [], [DBUS API is subject to change])
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/hal/hal b/extra/hal/hal
new file mode 100644
index 000000000..012d456ed
--- /dev/null
+++ b/extra/hal/hal
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ #Check for running dbus, start when not running
+ ck_daemon dbus && /etc/rc.d/dbus start
+ if [ -x /etc/rc.d/acpid ]; then
+ ck_daemon acpid && /etc/rc.d/acpid start
+ fi
+ stat_busy "Starting Hardware Abstraction Layer"
+ if [ ! -x /var/cache/hald ] ; then
+ install -m755 -g 82 -o 82 -d /var/cache/hald
+ fi
+ if [ ! -x /var/run/hald ]; then
+ install -m755 -g 82 -o 82 -d /var/run/hald
+ fi
+ if [ ! -x /var/run/hald/hald-local ]; then
+ install -m755 -g 0 -o 0 -d /var/run/hald/hald-local
+ fi
+ if [ ! -x /var/run/hald/hald-runner ]; then
+ install -m755 -g 0 -o 0 -d /var/run/hald/hald-runner
+ fi
+ /usr/sbin/hald
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon hal
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Hardware Abstraction Layer"
+ [ -f /var/run/hald.pid ] && kill `cat /var/run/hald.pid` &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon hal
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+ ;;
+esac
+exit 0
diff --git a/extra/hal/hal-0.5.9-hide-diagnostic.patch b/extra/hal/hal-0.5.9-hide-diagnostic.patch
new file mode 100644
index 000000000..58c882d77
--- /dev/null
+++ b/extra/hal/hal-0.5.9-hide-diagnostic.patch
@@ -0,0 +1,14 @@
+--- hal-0.5.9/fdi/policy/10osvendor/20-storage-methods.fdi.orig 2007-05-01 21:39:31.000000000 +0000
++++ hal-0.5.9/fdi/policy/10osvendor/20-storage-methods.fdi 2007-05-01 21:51:14.000000000 +0000
+@@ -100,6 +100,11 @@
+ </match>
+ </match>
+
++ <!-- Hide partitions marked as Compaq Diagnostics -->
++ <match key="volume.partition.type" string="0x12">
++ <merge key="volume.ignore" type="bool">true</merge>
++ </match>
++
+ <!-- EFI firmware partitions -->
+ <match key="volume.fstype" string="vfat">
+ <match key="volume.label" string="EFI">
diff --git a/extra/hal/hal-HDAPS-blacklist.patch b/extra/hal/hal-HDAPS-blacklist.patch
new file mode 100644
index 000000000..8a6822817
--- /dev/null
+++ b/extra/hal/hal-HDAPS-blacklist.patch
@@ -0,0 +1,30 @@
+From e1f85fe0cdfa7e4d4ce7a811d0b0c90bf38fba0c Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 25 Jun 2009 09:47:27 +1000
+Subject: [PATCH] Blacklist HDAPS accelerometer device from being picked up in X.
+
+This device posts accelerometer data through ABS_X/ABS_Y, making X unusable
+if it's controlling the pointer.
+---
+ fdi/policy/10osvendor/10-x11-input.fdi | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index a342421..89ba672 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -38,5 +38,11 @@
+ <merge key="input.x11_driver" type="string">evdev</merge>
+ </match>
+ </match>
++
++ <!-- http://bugs.freedesktop.org/show_bug.cgi?id=22442
++ Posts accel data through ABS_X/ABS_Y, makes X unusable -->
++ <match key="info.product" contains="ThinkPad HDAPS accelerometer data">
++ <remove key="input.x11_driver" />
++ </match>
+ </device>
+ </deviceinfo>
+--
+1.6.3.rc1.2.g0164.dirty
+
diff --git a/extra/hal/hal-KVM-evdev.patch b/extra/hal/hal-KVM-evdev.patch
new file mode 100644
index 000000000..917655ed1
--- /dev/null
+++ b/extra/hal/hal-KVM-evdev.patch
@@ -0,0 +1,36 @@
+From 7618498eec840cb26474dc47821e083957772706 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri, 20 Mar 2009 14:37:24 +1000
+Subject: [PATCH] Add x11_driver for American Megatrends KVM.
+
+This device exposes only ABS_X, ABS_Y and buttons. It gets input.joystick
+assigned but not input.mouse, hence the default evdev mapping doesn't pick up
+on it.
+
+Red Hat Bug 484776 <https://bugzilla.redhat.com/show_bug.cgi?id=484776>
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ fdi/policy/10osvendor/10-x11-input.fdi | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index 769f75b..eb9767e 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -2,6 +2,12 @@
+ <deviceinfo version="0.2">
+ <device>
+
++ <!-- This KVMS has abs x/y and buttons. It only has inputInfo.joystick
++ set by hal and doesn't get picked up by default -->
++ <match key="input.product" contains="American Megatrends Inc. Virtual Keyboard and Mouse">
++ <merge key="input.x11_driver" type="string">evdev</merge>
++ </match>
++
+ <!-- KVM emulates a USB graphics tablet which works in absolute coordinate mode -->
+ <match key="input.product" contains="QEMU USB Tablet">
+ <merge key="input.x11_driver" type="string">evdev</merge>
+--
+1.6.0.6
+
diff --git a/extra/hal/hal-ignore-internal-dm-devices.patch b/extra/hal/hal-ignore-internal-dm-devices.patch
new file mode 100644
index 000000000..9ad8656ca
--- /dev/null
+++ b/extra/hal/hal-ignore-internal-dm-devices.patch
@@ -0,0 +1,43 @@
+From 6f16321da13f6a7cbd9c424ddba2e727e434fa25 Mon Sep 17 00:00:00 2001
+From: Milan Broz <mbroz@redhat.com>
+Date: Tue, 13 Jul 2010 14:07:32 +0000
+Subject: HAL: Ignore internal DM devices with new DM udev rules
+
+With new device-mapper udev rules are /dev/mapper/* symlinks
+to basic device name /dev/dm-X.
+(Change requested by udev upstream.)
+
+This change breaks temporary-cryptsetup workaround inside hal.
+
+With new dm-udev rules (uncluded since device-mapper 1.02.39)
+there is DM_UDEV_DISABLE_OTHER_RULES_FLAG variable
+which controls that scan should be ignored for this device
+(it is set for all internal devices, including temporary cryptsetup,
+internal parts of lvm devices etc.)
+
+Ignore device if this flag is set.
+
+See bugs
+https://bugzilla.redhat.com/show_bug.cgi?id=613909
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586286
+
+Signed-off-by: Milan Broz <mbroz@redhat.com>
+---
+diff --git a/hald/linux/osspec.c b/hald/linux/osspec.c
+index a8233fd..6d616bc 100644
+--- a/hald/linux/osspec.c
++++ b/hald/linux/osspec.c
+@@ -215,6 +215,11 @@ hald_udev_data (GIOChannel *source, GIOCondition condition, gpointer user_data)
+ g_free (str);
+ }
+ g_free (dstr);
++ } else if (strncmp(key, "DM_UDEV_DISABLE_OTHER_RULES_FLAG=", 33) == 0) {
++ if (strtoul(&key[33], NULL, 10) == 1) {
++ HAL_INFO (("ignoring device requested by DM udev rules"));
++ goto invalid;
++ }
+ }
+ }
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/hal/hal-remove-dell-killswitch.patch b/extra/hal/hal-remove-dell-killswitch.patch
new file mode 100644
index 000000000..ae0cf7a2b
--- /dev/null
+++ b/extra/hal/hal-remove-dell-killswitch.patch
@@ -0,0 +1,201 @@
+diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux
+--- hal-0.5.12/tools/linux/hal-system-killswitch-get-power-linux 2008-08-22 07:34:47.000000000 +0100
++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-get-power-linux 2009-03-03 10:45:20.000000000 +0000
+@@ -8,11 +8,6 @@
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+
+-DELL_WCTL=/usr/bin/dellWirelessCtl
+-if [ -x "/usr/sbin/dellWirelessCtl" ]; then
+- DELL_WCTL=/usr/sbin/dellWirelessCtl
+-fi
+-
+ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then
+ if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ value="`hal-system-sonypic getbluetooth`"
+@@ -22,25 +17,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ exit 1
+ fi
+ exit ${value}
+- elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- $DELL_WCTL --st_bt
+- value=$?
+- if [ "$value" = "0" ]; then
+- exit 1
+- elif [ "$value" = "1" ]; then
+- exit 0
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $value" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+ elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -r "$HAL_PROP_LINUX_SYSFS_PATH" ]; then
+ read value < $HAL_PROP_LINUX_SYSFS_PATH 2> /dev/null
+ if [ $? -eq 0 ]; then
+@@ -55,56 +31,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ echo "Access type not supported" >&2
+ exit 1
+ fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- $DELL_WCTL --st_wlan
+- value=$?
+- if [ "$value" = "0" ]; then
+- exit 1
+- elif [ "$value" = "1" ]; then
+- exit 0
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $value" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- $DELL_WCTL --st_wwan
+- value=$?
+- if [ "$value" = "0" ]; then
+- exit 1
+- elif [ "$value" = "1" ]; then
+- exit 0
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $value" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+ else
+ echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+ echo "Killswitch type not supported" >&2
+diff -upr hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux
+--- hal-0.5.12/tools/linux/hal-system-killswitch-set-power-linux 2008-10-24 09:45:54.000000000 +0100
++++ hal-0.5.12.new/tools/linux/hal-system-killswitch-set-power-linux 2009-03-03 10:44:49.000000000 +0000
+@@ -8,11 +8,6 @@
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+
+-DELL_WCTL=/usr/bin/dellWirelessCtl
+-if [ -x "/usr/sbin/dellWirelessCtl" ]; then
+- DELL_WCTL=/usr/sbin/dellWirelessCtl
+-fi
+-
+ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "bluetooth" ]; then
+ if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "sonypic" ]; then
+ hal-system-sonypic setbluetooth $value
+@@ -23,26 +18,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ exit 1
+ fi
+ exit 0
+- elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # TODO: write our own binary that links with libsmbios?
+- if [ "$value" = "true" ]; then
+- $DELL_WCTL --bt 1
+- ret=$?
+- else
+- $DELL_WCTL --bt 0
+- ret=$?
+- fi
+- if [ "$ret" != "0" ]; then
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $ret" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+ elif [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = thinkpad -a -w "$HAL_PROP_LINUX_SYSFS_PATH" ]; then
+ if [ "$value" = "true" ]; then
+ bit=1;
+@@ -61,60 +36,6 @@ if [ "$HAL_PROP_KILLSWITCH_TYPE" = "blue
+ echo "Access type not supported" >&2
+ exit 1
+ fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wlan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # As a side effect we disable the physical kill switch
+- # TODO: write our own binary that links with libsmbios?
+- if [ "$value" = "true" ]; then
+- $DELL_WCTL --sw_wlan 0 --wlan 1
+- ret=$?
+- else
+- $DELL_WCTL --sw_wlan 0 --wlan 0
+- ret=$?
+- fi
+- if [ "$ret" != "0" ]; then
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $ret" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+-elif [ "$HAL_PROP_KILLSWITCH_TYPE" = "wwan" ]; then
+- if [ "$HAL_PROP_KILLSWITCH_ACCESS_METHOD" = "dell" ]; then
+- if [ -x "$DELL_WCTL" ]; then
+- # As a side effect we disable the physical kill switch
+- # TODO: write our own binary that links with libsmbios?
+- if [ "$value" = "true" ]; then
+- $DELL_WCTL --sw_wwan 0 --wwan 1
+- ret=$?
+- else
+- $DELL_WCTL --sw_wwan 0 --wwan 0
+- ret=$?
+- fi
+- if [ "$ret" != "0" ]; then
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl returned $ret" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "dellWirelessCtl ($DELL_WCTL) not available or executable" >&2
+- exit 1
+- fi
+- else
+- echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+- echo "Access type not supported" >&2
+- exit 1
+- fi
+ else
+ echo "org.freedesktop.Hal.Device.KillSwitch.NotSupported" >&2
+ echo "Killswitch type not supported" >&2
diff --git a/extra/hal/hal-use-at-console.patch b/extra/hal/hal-use-at-console.patch
new file mode 100644
index 000000000..0b32f17f0
--- /dev/null
+++ b/extra/hal/hal-use-at-console.patch
@@ -0,0 +1,45 @@
+diff -up hal-0.5.13/hal.conf.in.drop-polkit hal-0.5.13/hal.conf.in
+--- hal-0.5.13/hal.conf.in.drop-polkit 2009-02-04 17:07:23.000000000 -0500
++++ hal-0.5.13/hal.conf.in 2009-07-29 23:15:16.866766074 -0400
+@@ -25,7 +25,41 @@
+ send_interface="org.freedesktop.Hal.Device"/>
+ <allow send_destination="org.freedesktop.Hal"
+ send_interface="org.freedesktop.Hal.Manager"/>
++ </policy>
++
++ <!-- Only allow users at the local console to manipulate devices -->
++ <policy at_console="true">
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.CPUFreq"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.DockStation"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.KillSwitch"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Leds"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.LightSensor"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Storage"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Storage.Removable"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Volume"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
++ <allow send_destination="org.freedesktop.Hal"
++ send_interface="org.freedesktop.Hal.Device.WakeOnLan"/>
++
++ </policy>
+
++ <!-- well,...and root too -->
++ <policy user="root">
+ <allow send_destination="org.freedesktop.Hal"
+ send_interface="org.freedesktop.Hal.Device.CPUFreq"/>
+ <allow send_destination="org.freedesktop.Hal"
diff --git a/extra/hal/hal-xen-unignore-axes.patch b/extra/hal/hal-xen-unignore-axes.patch
new file mode 100644
index 000000000..b248639b7
--- /dev/null
+++ b/extra/hal/hal-xen-unignore-axes.patch
@@ -0,0 +1,39 @@
+From e48f59d2b9bcb43ea8a7b8c884dcb73c8f65b170 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon, 19 Oct 2009 14:27:20 +1000
+Subject: [PATCH] Un-ignore absolute axes for the Xen Virtual Pointer.
+
+The evdev-internal axis type picking fails for the Xen Virtual Pointer as it
+exposes both relative and absolute axes. Evdev picks the relative axes by
+default, leading to a immovable pointer if the Xen backend only sends
+absolute coordinates.
+
+Explicitly tell evdev to not ignore the absolute axes.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=523914
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ fdi/policy/10osvendor/10-x11-input.fdi | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index 89ba672..752c4ab 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -44,5 +44,12 @@
+ <match key="info.product" contains="ThinkPad HDAPS accelerometer data">
+ <remove key="input.x11_driver" />
+ </match>
++
++ <!-- https://bugzilla.redhat.com/show_bug.cgi?id=523914
++ Mouse does not move in PV Xen guest -->
++ <match key="info.product" contains="Xen Virtual Pointer">
++ <merge key="input.x11_options.IgnoreAbsoluteAxes" type="string">false</merge>
++ <merge key="input.x11_options.IgnoreRelativeAxes" type="string">false</merge>
++ </match>
+ </device>
+ </deviceinfo>
+--
+1.6.2.5
+
diff --git a/extra/hal/hal.install b/extra/hal/hal.install
new file mode 100644
index 000000000..d6afee384
--- /dev/null
+++ b/extra/hal/hal.install
@@ -0,0 +1,24 @@
+post_install() {
+ getent group hal >/dev/null || usr/sbin/groupadd -g 82 hal
+ getent group optical >/dev/null || usr/sbin/groupadd -g 93 optical
+ getent group floppy >/dev/null || usr/sbin/groupadd -g 94 floppy
+ getent group storage >/dev/null || usr/sbin/groupadd -g 95 storage
+ getent passwd hal >/dev/null || usr/sbin/useradd -c 'HAL daemon' -u 82 -g hal -G optical,floppy,storage -d '/' -s /bin/false hal
+ usr/bin/passwd -l hal &>/dev/null
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+post_remove() {
+ if getent passwd hal &>/dev/null; then
+ usr/sbin/userdel hal
+ fi
+ if getent group hal &>/dev/null; then
+ usr/sbin/groupdel hal
+ fi
+}
diff --git a/extra/hal/handle-input-touchpad.patch b/extra/hal/handle-input-touchpad.patch
new file mode 100644
index 000000000..9cd646422
--- /dev/null
+++ b/extra/hal/handle-input-touchpad.patch
@@ -0,0 +1,101 @@
+From 6dccf8e3ad181e8f56b1d2a994ec50a1953a1c2d Mon Sep 17 00:00:00 2001
+From: Michael Witten <mfwitten@gmail.com>
+Date: Wed, 06 Jan 2010 00:53:17 +0000
+Subject: Policy: handle `input.touchpad' explicitly
+
+This commit essentially duplicates the policy for:
+
+ <match key="info.capabilities" contains="input.mouse">
+
+and then changes `input.mouse' to `input.touchpad'. This
+is necessary because in Linus Torvalds's Linux repo:
+
+ git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+
+the following commit:
+
+ commit 7105d2ea73e1391b681d0e1212c42f561c64d429
+ Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+ Date: Fri Dec 11 23:54:54 2009 -0800
+
+ Input: ALPS - do not set REL_X/REL_Y capabilities on the touchpad
+
+ Relative events are only reported via secondary device therefore device
+ associated with the touchpad should not advertise these capabilities.
+
+ Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+
+made these few changes:
+
+ diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
+ index a3f492a..b03e7e0 100644
+ /--- a/drivers/input/mouse/alps.c
+ /+++ b/drivers/input/mouse/alps.c
+ /@@ -487,6 +487,17 @@ int alps_init(struct psmouse *psmouse)
+ if (alps_hw_init(psmouse))
+ goto init_fail;
+
+ + /*
+ + * Undo part of setup done for us by psmouse core since touchpad
+ + * is not a relative device.
+ + */
+ + __clear_bit(EV_REL, dev1->evbit);
+ + __clear_bit(REL_X, dev1->relbit);
+ + __clear_bit(REL_Y, dev1->relbit);
+ +
+ + /*
+ + * Now set up our capabilities.
+ + */
+ dev1->evbit[BIT_WORD(EV_KEY)] |= BIT_MASK(EV_KEY);
+ dev1->keybit[BIT_WORD(BTN_TOUCH)] |= BIT_MASK(BTN_TOUCH);
+ dev1->keybit[BIT_WORD(BTN_TOOL_FINGER)] |= BIT_MASK(BTN_TOOL_FINGER);
+
+so that HAL no longer adds:
+
+ input.mouse
+
+to an ALPS touchpad's:
+
+ info.capabilities
+
+so that HAL no longer marks the ALPS touchpad with:
+
+ input.x11_driver = 'evdev'
+
+because the policy file:
+
+ fdi/policy/10osvendor/10-x11-input.fdi
+
+doesn't define the policy for:
+
+ <match key="info.capabilities" contains="input.touchpad">
+
+which was previous unnecessary because everything used to
+be caught by the policy for:
+
+ <match key="info.capabilities" contains="input.mouse">
+
+Signed-off-by: Michael Witten <mfwitten@gmail.com>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/fdi/policy/10osvendor/10-x11-input.fdi b/fdi/policy/10osvendor/10-x11-input.fdi
+index cff8fc5..8bbe263 100644
+--- a/fdi/policy/10osvendor/10-x11-input.fdi
++++ b/fdi/policy/10osvendor/10-x11-input.fdi
+@@ -16,6 +16,14 @@
+ </match>
+ </match>
+
++ <match key="info.capabilities" contains="input.touchpad">
++ <merge key="input.x11_driver" type="string">mouse</merge>
++ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
++ string="Linux">
++ <merge key="input.x11_driver" type="string">evdev</merge>
++ </match>
++ </match>
++
+ <match key="info.capabilities" contains="input.tablet">
+ <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
+ string="Linux">
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/hal/macbook-fix-ioperm.patch b/extra/hal/macbook-fix-ioperm.patch
new file mode 100644
index 000000000..14d0b392d
--- /dev/null
+++ b/extra/hal/macbook-fix-ioperm.patch
@@ -0,0 +1,41 @@
+From 597c1ffffd61a15a334ce42f2a569c59f0270bcb Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Thu, 25 Feb 2010 10:25:18 +0000
+Subject: Fix incorrect arguments to ioperm() call
+
+The second argument of ioperm() is not the last port to be accessed
+but rather length of the port range [port, port + len).
+
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
+---
+diff --git a/hald/linux/addons/addon-imac-backlight.c b/hald/linux/addons/addon-imac-backlight.c
+index e869192..54e4ea3 100644
+--- a/hald/linux/addons/addon-imac-backlight.c
++++ b/hald/linux/addons/addon-imac-backlight.c
+@@ -158,7 +158,8 @@ main (int argc, char **argv)
+ goto out;
+ }
+
+- if (ioperm(0xB2, 0xB3, 1) < 0)
++ /* Allow access to ports 0xB2 and 0xB3 */
++ if (ioperm(0xB2, 2, 1) < 0)
+ {
+ HAL_ERROR (("ioperm failed (you should be root)."));
+ exit(1);
+diff --git a/hald/linux/addons/addon-macbookpro-backlight.c b/hald/linux/addons/addon-macbookpro-backlight.c
+index 2a6fef6..c1bbbac 100644
+--- a/hald/linux/addons/addon-macbookpro-backlight.c
++++ b/hald/linux/addons/addon-macbookpro-backlight.c
+@@ -507,7 +507,8 @@ main (int argc, char *argv[])
+ state = INREG(0x7ae4);
+ OUTREG(0x7ae4, state);
+
+- if (ioperm (0x300, 0x304, 1) < 0) {
++ /* Allow access to porta 0x300 through 0x304 */
++ if (ioperm (0x300, 5, 1) < 0) {
+ HAL_ERROR (("ioperm failed (you should be root)."));
+ exit(1);
+ }
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/hal/path-max.patch b/extra/hal/path-max.patch
new file mode 100644
index 000000000..304185d7d
--- /dev/null
+++ b/extra/hal/path-max.patch
@@ -0,0 +1,31 @@
+From a2c3dd5a04d79265772c09c4280606d5c2ed72c6 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Mon, 04 Jan 2010 15:56:13 +0000
+Subject: Bump HAL_PATH_MAX to 4096
+
+Some bits in the code use realpath() with destination paths of size
+HAL_PATH_MAX. This potentially breaks on systems where PATH_MAX is bigger than
+HAL_PATH_MAX (which was 512 until now).
+
+Since we can't use PATH_MAX directly (due to platforms like GNU/Hurd, which
+apparently don't have it), just bump HAL_PATH_MAX to 4096 (as PATH_MAX is on
+Linux), to avoid potential buffer overflows and also fix hal on Linux when
+enabling FORTIFY in gcc.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=25888
+---
+diff --git a/hald/util.h b/hald/util.h
+index c2a1584..7883333 100644
+--- a/hald/util.h
++++ b/hald/util.h
+@@ -38,7 +38,7 @@
+ #endif
+
+ #define HAL_NAME_MAX 256
+-#define HAL_PATH_MAX 512
++#define HAL_PATH_MAX 4096
+
+ gboolean hal_util_remove_trailing_slash (gchar *path);
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/happy/PKGBUILD b/extra/happy/PKGBUILD
new file mode 100644
index 000000000..47445be85
--- /dev/null
+++ b/extra/happy/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 103748 2010-12-22 17:23:27Z remy $
+# Maintainer: simo <simo@archlinux.org>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
+
+pkgname=happy
+pkgver=1.18.6
+pkgrel=1
+pkgdesc="The Parser Generator for Haskell"
+url="http://www.haskell.org/happy/"
+arch=('i686' 'x86_64')
+license=("custom:BSD3")
+depends=(gmp)
+makedepends=(ghc=7.0.1 haskell-mtl=2.0.1.0)
+options=(strip)
+source=(http://hackage.haskell.org/packages/archive/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('7d4d1425f5068633cd477a2b2216880d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ runhaskell Setup.lhs configure -O --prefix=/usr
+ runhaskell Setup.lhs build
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ runhaskell Setup.lhs copy --destdir=${pkgdir}
+ install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
+
diff --git a/extra/haskell-binary/PKGBUILD b/extra/haskell-binary/PKGBUILD
new file mode 100644
index 000000000..a5e1b2b9a
--- /dev/null
+++ b/extra/haskell-binary/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.5
+_hkgname=binary
+pkgname=haskell-binary
+pkgver=0.5.0.2
+pkgrel=7
+pkgdesc="Binary serialisation for Haskell values using lazy ByteStrings"
+url="http://hackage.haskell.org/package/binary"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('6bf8f3d1441602c9ab09a75e3bd6e926')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-binary/haskell-binary.install b/extra/haskell-binary/haskell-binary.install
new file mode 100644
index 000000000..0084ebef8
--- /dev/null
+++ b/extra/haskell-binary/haskell-binary.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-binary
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-cgi/PKGBUILD b/extra/haskell-cgi/PKGBUILD
new file mode 100644
index 000000000..608249fff
--- /dev/null
+++ b/extra/haskell-cgi/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=cgi
+pkgname=haskell-cgi
+pkgver=3001.1.7.4
+pkgrel=2.1
+pkgdesc="A library for writing CGI programs"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'haskell-mtl=2.0.1.0' 'haskell-network=2.3.0.2' 'haskell-parsec=3.1.1' 'haskell-xhtml=3000.2.0.1')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('0e551afc8d6f39aaa70520e31de26506')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-cgi/haskell-cgi.install b/extra/haskell-cgi/haskell-cgi.install
new file mode 100644
index 000000000..533fe4dc5
--- /dev/null
+++ b/extra/haskell-cgi/haskell-cgi.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-cgi
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-dataenc/PKGBUILD b/extra/haskell-dataenc/PKGBUILD
new file mode 100644
index 000000000..cee342409
--- /dev/null
+++ b/extra/haskell-dataenc/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.5
+_hkgname=dataenc
+pkgname=haskell-dataenc
+pkgver=0.13.0.4
+pkgrel=3.1
+pkgdesc="Data encoding library"
+url="http://hackage.haskell.org/package/dataenc"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('4764fa7f75ed3ee95a759d67d1347d46')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-dataenc/haskell-dataenc.install b/extra/haskell-dataenc/haskell-dataenc.install
new file mode 100644
index 000000000..9c1bbff01
--- /dev/null
+++ b/extra/haskell-dataenc/haskell-dataenc.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-dataenc
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-deepseq/PKGBUILD b/extra/haskell-deepseq/PKGBUILD
new file mode 100644
index 000000000..f9a01956b
--- /dev/null
+++ b/extra/haskell-deepseq/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=deepseq
+pkgname=haskell-deepseq
+pkgver=1.1.0.2
+pkgrel=1.1
+pkgdesc="Fully evaluate data structures"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('90b66480f0eb659c1db209ee703e0162')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-deepseq/haskell-deepseq.install b/extra/haskell-deepseq/haskell-deepseq.install
new file mode 100644
index 000000000..8ba51eac7
--- /dev/null
+++ b/extra/haskell-deepseq/haskell-deepseq.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-deepseq
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-fgl/PKGBUILD b/extra/haskell-fgl/PKGBUILD
new file mode 100644
index 000000000..840016e0e
--- /dev/null
+++ b/extra/haskell-fgl/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=fgl
+pkgname=haskell-fgl
+pkgver=5.4.2.3
+pkgrel=3.2
+pkgdesc="Martin Erwig's Functional Graph Library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=('ghc=7.0.2' 'haskell-mtl=2.0.1.0')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('29ccab8bebed16a8d7346c3ed52c5d9c')
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+md5sums=('29ccab8bebed16a8d7346c3ed52c5d9c')
diff --git a/extra/haskell-fgl/haskell-fgl.install b/extra/haskell-fgl/haskell-fgl.install
new file mode 100644
index 000000000..0da0edb7b
--- /dev/null
+++ b/extra/haskell-fgl/haskell-fgl.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-fgl
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-glut/PKGBUILD b/extra/haskell-glut/PKGBUILD
new file mode 100644
index 000000000..3682828e0
--- /dev/null
+++ b/extra/haskell-glut/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=GLUT
+pkgname=haskell-glut
+pkgver=2.1.2.1
+pkgrel=5.2
+pkgdesc="A binding for the OpenGL Utility Toolkit"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=('ghc=7.0.2' 'haskell-opengl=2.2.3.0' 'freeglut')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('b97f476a04098701e330e86c1f89ed52')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-glut/haskell-glut.install b/extra/haskell-glut/haskell-glut.install
new file mode 100644
index 000000000..44c7cb3c1
--- /dev/null
+++ b/extra/haskell-glut/haskell-glut.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-glut
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-hashed-storage/PKGBUILD b/extra/haskell-hashed-storage/PKGBUILD
new file mode 100644
index 000000000..244d3f851
--- /dev/null
+++ b/extra/haskell-hashed-storage/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# As generated by cabal2arch 0.7.6
+_hkgname=hashed-storage
+pkgname=haskell-hashed-storage
+pkgver=0.5.4
+pkgrel=3.1
+pkgdesc="Hashed file storage support code."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'haskell-binary=0.5.0.2' 'haskell-mmap=0.5.7'
+ 'haskell-zlib=0.5.3.1' 'haskell-mtl=2.0.1.0' 'haskell-dataenc=0.13.0.4')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('e182a3fe6f977b0df85641da5df8e4f2')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-hashed-storage/haskell-hashed-storage.install b/extra/haskell-hashed-storage/haskell-hashed-storage.install
new file mode 100644
index 000000000..6f9a6904c
--- /dev/null
+++ b/extra/haskell-hashed-storage/haskell-hashed-storage.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-hashed-storage
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-haskeline/PKGBUILD b/extra/haskell-haskeline/PKGBUILD
new file mode 100644
index 000000000..7756390fa
--- /dev/null
+++ b/extra/haskell-haskeline/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=haskeline
+pkgname=haskell-haskeline
+pkgver=0.6.3.2
+pkgrel=2.1
+pkgdesc="A command-line interface for user input, written in Haskell."
+url="http://hackage.haskell.org/package/haskeline"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh 'haskell-utf8-string=0.3.6' 'haskell-mtl=2.0.1.0' 'haskell-terminfo=0.3.1.3')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('d75863f63a1cfb499d0198e4f28ac2af')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure \
+ -O -p --enable-split-objs --enable-shared -fterminfo --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-haskeline/haskell-haskeline.install b/extra/haskell-haskeline/haskell-haskeline.install
new file mode 100644
index 000000000..27cb4a093
--- /dev/null
+++ b/extra/haskell-haskeline/haskell-haskeline.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-haskeline
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-haskell-src/PKGBUILD b/extra/haskell-haskell-src/PKGBUILD
new file mode 100644
index 000000000..6dbed0bed
--- /dev/null
+++ b/extra/haskell-haskell-src/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=haskell-src
+pkgname=haskell-haskell-src
+pkgver=1.0.1.4
+pkgrel=1.1
+pkgdesc="Facilities for manipulating Haskell source code: an abstract syntax, lexer, parser and pretty-printer."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' 'haskell-syb=0.3' sh)
+makedepends=(happy)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('32d181c082393ab859e72610803bac6e')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/extra/haskell-haskell-src/haskell-haskell-src.install b/extra/haskell-haskell-src/haskell-haskell-src.install
new file mode 100644
index 000000000..03ce601bc
--- /dev/null
+++ b/extra/haskell-haskell-src/haskell-haskell-src.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-haskell-src
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-html/PKGBUILD b/extra/haskell-html/PKGBUILD
new file mode 100644
index 000000000..255e98645
--- /dev/null
+++ b/extra/haskell-html/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=html
+pkgname=haskell-html
+pkgver=1.0.1.2
+pkgrel=8.1
+pkgdesc="HTML combinator library"
+url="http://hackage.haskell.org/package/html"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('2a7de5a2af9a2f80d39825d6a95ee445')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-html/haskell-html.install b/extra/haskell-html/haskell-html.install
new file mode 100644
index 000000000..768297e0a
--- /dev/null
+++ b/extra/haskell-html/haskell-html.install
@@ -0,0 +1,19 @@
+HS_DIR=usr/share/haskell/haskell-html
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+ exit 0
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-http/PKGBUILD b/extra/haskell-http/PKGBUILD
new file mode 100644
index 000000000..974119394
--- /dev/null
+++ b/extra/haskell-http/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=HTTP
+pkgname=haskell-http
+pkgver=4000.1.1
+pkgrel=2.1
+pkgdesc="A library for client-side HTTP"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh 'haskell-network=2.3.0.2' 'haskell-parsec=3.1.1' 'haskell-mtl=2.0.1.0')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('ddf23d46c4d6dc0048c454e3d01caa57')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/extra/haskell-http/haskell-http.install b/extra/haskell-http/haskell-http.install
new file mode 100644
index 000000000..fdebb1cb8
--- /dev/null
+++ b/extra/haskell-http/haskell-http.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-http
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-hunit/PKGBUILD b/extra/haskell-hunit/PKGBUILD
new file mode 100644
index 000000000..a64b87af8
--- /dev/null
+++ b/extra/haskell-hunit/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=HUnit
+pkgname=haskell-hunit
+pkgver=1.2.2.3
+pkgrel=1.1
+pkgdesc="A unit testing framework for Haskell"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('f179add502f88153e5c9fdc69056b657')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-hunit/haskell-hunit.install b/extra/haskell-hunit/haskell-hunit.install
new file mode 100644
index 000000000..ceb108b5b
--- /dev/null
+++ b/extra/haskell-hunit/haskell-hunit.install
@@ -0,0 +1,19 @@
+HS_DIR=usr/share/haskell/haskell-hunit
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+ exit 0
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-mmap/PKGBUILD b/extra/haskell-mmap/PKGBUILD
new file mode 100644
index 000000000..838275675
--- /dev/null
+++ b/extra/haskell-mmap/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=mmap
+pkgname=haskell-mmap
+pkgver=0.5.7
+pkgrel=3.1
+pkgdesc="Memory mapped files for POSIX and Windows"
+url="http://hackage.haskell.org/package/mmap"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('1f74b3f59617332b06e277f5212423c1')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-mmap/haskell-mmap.install b/extra/haskell-mmap/haskell-mmap.install
new file mode 100644
index 000000000..68fe74f4e
--- /dev/null
+++ b/extra/haskell-mmap/haskell-mmap.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-mmap
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-mtl/PKGBUILD b/extra/haskell-mtl/PKGBUILD
new file mode 100644
index 000000000..48ba57a3a
--- /dev/null
+++ b/extra/haskell-mtl/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=mtl
+pkgname=haskell-mtl
+pkgver=2.0.1.0
+pkgrel=1.1
+pkgdesc="Monad transformer library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh 'haskell-transformers=0.2.2.0')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('934fa813625ef7e88a6a96a09815ff95')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+md5sums=('934fa813625ef7e88a6a96a09815ff95')
diff --git a/extra/haskell-mtl/haskell-mtl.install b/extra/haskell-mtl/haskell-mtl.install
new file mode 100644
index 000000000..9325811e8
--- /dev/null
+++ b/extra/haskell-mtl/haskell-mtl.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-mtl
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-network/PKGBUILD b/extra/haskell-network/PKGBUILD
new file mode 100644
index 000000000..0aad81e65
--- /dev/null
+++ b/extra/haskell-network/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=network
+pkgname=haskell-network
+pkgver=2.3.0.2
+pkgrel=1.1
+pkgdesc="Networking-related facilities"
+url="http://hackage.haskell.org/package/network"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh 'haskell-parsec=3.1.1')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('a739fe9b75af744cfa1c05e39d41ac1f')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-network/haskell-network.install b/extra/haskell-network/haskell-network.install
new file mode 100644
index 000000000..a56c31d0a
--- /dev/null
+++ b/extra/haskell-network/haskell-network.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-network
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-opengl/PKGBUILD b/extra/haskell-opengl/PKGBUILD
new file mode 100644
index 000000000..e07975cf9
--- /dev/null
+++ b/extra/haskell-opengl/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=OpenGL
+pkgname=haskell-opengl
+pkgver=2.2.3.0
+pkgrel=5.2
+pkgdesc="A binding for the OpenGL graphics system"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=('ghc=7.0.2' 'mesa')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('f4e3ccb471034a6a74921d4dab9dd32d')
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-opengl/haskell-opengl.install b/extra/haskell-opengl/haskell-opengl.install
new file mode 100644
index 000000000..d0f3474b3
--- /dev/null
+++ b/extra/haskell-opengl/haskell-opengl.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-opengl
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-parallel/PKGBUILD b/extra/haskell-parallel/PKGBUILD
new file mode 100644
index 000000000..93f43095e
--- /dev/null
+++ b/extra/haskell-parallel/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=parallel
+pkgname=haskell-parallel
+pkgver=3.1.0.1
+pkgrel=2.1
+pkgdesc="Parallel programming library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh 'haskell-deepseq=1.1.0.2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('591979e7897dbc09157edf73a4614957')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-parallel/haskell-parallel.install b/extra/haskell-parallel/haskell-parallel.install
new file mode 100644
index 000000000..e6ec0c449
--- /dev/null
+++ b/extra/haskell-parallel/haskell-parallel.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-parallel
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-parsec/PKGBUILD b/extra/haskell-parsec/PKGBUILD
new file mode 100644
index 000000000..e6928946c
--- /dev/null
+++ b/extra/haskell-parsec/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# As generated by cabal2arch 0.7.6
+_hkgname=parsec
+pkgname=haskell-parsec
+pkgver=3.1.1
+pkgrel=1.1
+pkgdesc="Monadic parser combinators"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh 'haskell-mtl=2.0.1.0')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('3d5500847cac09f6f658db825b6c5df8')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/extra/haskell-parsec/haskell-parsec.install b/extra/haskell-parsec/haskell-parsec.install
new file mode 100644
index 000000000..dfa0701b9
--- /dev/null
+++ b/extra/haskell-parsec/haskell-parsec.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-parsec
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-platform/PKGBUILD b/extra/haskell-platform/PKGBUILD
new file mode 100644
index 000000000..57a3a2c9b
--- /dev/null
+++ b/extra/haskell-platform/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+pkgname=haskell-platform
+pkgver=2011.2.0.0
+pkgrel=2.1
+pkgdesc="The Haskell Platform"
+url="http://hackage.haskell.org/platform/"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2'
+ 'haskell-glut=2.1.2.1'
+ 'haskell-http=4000.1.1'
+ 'haskell-hunit=1.2.2.3'
+ 'haskell-opengl=2.2.3.0'
+ 'haskell-quickcheck=2.4.0.1'
+ 'haskell-cgi=3001.1.7.4'
+ 'haskell-deepseq=1.1.0.2'
+ 'haskell-fgl=5.4.2.3'
+ 'haskell-haskell-src=1.0.1.4'
+ 'haskell-html=1.0.1.2'
+ 'haskell-mtl=2.0.1.0'
+ 'haskell-network=2.3.0.2'
+ 'haskell-parallel=3.1.0.1'
+ 'haskell-parsec=3.1.1'
+ 'haskell-regex-base=0.93.2'
+ 'haskell-regex-compat=0.93.1'
+ 'haskell-regex-posix=0.94.4'
+ 'haskell-stm=2.2.0.1'
+ 'haskell-syb=0.3'
+ 'haskell-text=0.11.0.5'
+ 'haskell-transformers=0.2.2.0'
+ 'haskell-xhtml=3000.2.0.1'
+ 'haskell-zlib=0.5.3.1'
+ 'cabal-install=0.10.2'
+ 'alex=2.3.5'
+ 'happy=1.18.6')
+
+build() {
+ return 0
+}
diff --git a/extra/haskell-quickcheck/PKGBUILD b/extra/haskell-quickcheck/PKGBUILD
new file mode 100644
index 000000000..bf911846b
--- /dev/null
+++ b/extra/haskell-quickcheck/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.5
+_hkgname=QuickCheck
+pkgname=haskell-quickcheck
+pkgver=2.4.0.1
+pkgrel=2.1
+pkgdesc="Automatic testing of Haskell programs"
+url="http://hackage.haskell.org/package/QuickCheck"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 haskell-mtl=2.0.1.0 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('e8c86e95fd1fa4c58fc8e53e2853db5e')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-quickcheck/haskell-quickcheck.install b/extra/haskell-quickcheck/haskell-quickcheck.install
new file mode 100644
index 000000000..c9e12fadc
--- /dev/null
+++ b/extra/haskell-quickcheck/haskell-quickcheck.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-quickcheck
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-regex-base/PKGBUILD b/extra/haskell-regex-base/PKGBUILD
new file mode 100644
index 000000000..e73d781d5
--- /dev/null
+++ b/extra/haskell-regex-base/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=regex-base
+pkgname=haskell-regex-base
+pkgver=0.93.2
+pkgrel=3.1
+pkgdesc="Interface API for regex-posix,pcre,parsec,tdfa,dfa"
+url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/regex-base"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh 'haskell-mtl=2.0.1.0')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('e7b93b0b17eff8d3068ecb2f5d5f6ea3')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-regex-base/haskell-regex-base.install b/extra/haskell-regex-base/haskell-regex-base.install
new file mode 100644
index 000000000..3ad2fea28
--- /dev/null
+++ b/extra/haskell-regex-base/haskell-regex-base.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-regex-base
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-regex-compat/PKGBUILD b/extra/haskell-regex-compat/PKGBUILD
new file mode 100644
index 000000000..cb643a135
--- /dev/null
+++ b/extra/haskell-regex-compat/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=regex-compat
+pkgname=haskell-regex-compat
+pkgver=0.93.1
+pkgrel=3.1
+pkgdesc="Replaces and enhances Text.Regex"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh 'haskell-regex-base' 'haskell-regex-posix=0.94.4')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('d6becec95ea8098cab663116fdce60a5')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-regex-compat/haskell-regex-compat.install b/extra/haskell-regex-compat/haskell-regex-compat.install
new file mode 100644
index 000000000..898c0bba1
--- /dev/null
+++ b/extra/haskell-regex-compat/haskell-regex-compat.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-regex-compat
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-regex-posix/PKGBUILD b/extra/haskell-regex-posix/PKGBUILD
new file mode 100644
index 000000000..84d157d4a
--- /dev/null
+++ b/extra/haskell-regex-posix/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=regex-posix
+pkgname=haskell-regex-posix
+pkgver=0.94.4
+pkgrel=1.1
+pkgdesc="The posix regex backend for regex-base"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh 'haskell-regex-base=0.93.2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('c28a13e8329e93a19bbb51708bf64abb')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-regex-posix/haskell-regex-posix.install b/extra/haskell-regex-posix/haskell-regex-posix.install
new file mode 100644
index 000000000..2b89fae7b
--- /dev/null
+++ b/extra/haskell-regex-posix/haskell-regex-posix.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-regex-posix
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-stm/PKGBUILD b/extra/haskell-stm/PKGBUILD
new file mode 100644
index 000000000..0506c9dbf
--- /dev/null
+++ b/extra/haskell-stm/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.5
+_hkgname=stm
+pkgname=haskell-stm
+pkgver=2.2.0.1
+pkgrel=1.1
+pkgdesc="A modular composable concurrency abstraction."
+url="http://hackage.haskell.org/package/stm"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('b1cf03ed315e00c33160746feeee8682')
+
+build() {
+ cd ${srcdir}/${_hkgname}-$pkgver
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-$pkgver
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-stm/haskell-stm.install b/extra/haskell-stm/haskell-stm.install
new file mode 100644
index 000000000..0283c2fc5
--- /dev/null
+++ b/extra/haskell-stm/haskell-stm.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-stm
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-syb/PKGBUILD b/extra/haskell-syb/PKGBUILD
new file mode 100644
index 000000000..c2325d7cc
--- /dev/null
+++ b/extra/haskell-syb/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=syb
+pkgname=haskell-syb
+pkgver=0.3
+pkgrel=1.2
+pkgdesc="A library for client-side HTTP"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('c4f6771fa32d467a029e6e813757a9fe')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr --docdir=/usr/share/doc/${pkgname}
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/extra/haskell-syb/haskell-syb.install b/extra/haskell-syb/haskell-syb.install
new file mode 100644
index 000000000..080055165
--- /dev/null
+++ b/extra/haskell-syb/haskell-syb.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-syb
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-tar/PKGBUILD b/extra/haskell-tar/PKGBUILD
new file mode 100644
index 000000000..98e92b594
--- /dev/null
+++ b/extra/haskell-tar/PKGBUILD
@@ -0,0 +1,37 @@
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=tar
+pkgname=haskell-tar
+pkgver=0.3.1.0
+pkgrel=4.1
+pkgdesc="Reading, writing and manipulating \".tar\" archive files."
+url="http://hackage.haskell.org/package/tar"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('10b54856495f9ef0a42aa270085c7d5e')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-tar/haskell-tar.install b/extra/haskell-tar/haskell-tar.install
new file mode 100644
index 000000000..e8c2f6293
--- /dev/null
+++ b/extra/haskell-tar/haskell-tar.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-tar
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-terminfo/PKGBUILD b/extra/haskell-terminfo/PKGBUILD
new file mode 100644
index 000000000..f8339b0a4
--- /dev/null
+++ b/extra/haskell-terminfo/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=terminfo
+pkgname=haskell-terminfo
+pkgver=0.3.1.3
+pkgrel=4.1
+pkgdesc="Haskell bindings to the terminfo library."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('8c0e052340f628b76f5687fa23379628')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-terminfo/haskell-terminfo.install b/extra/haskell-terminfo/haskell-terminfo.install
new file mode 100644
index 000000000..40d39f42b
--- /dev/null
+++ b/extra/haskell-terminfo/haskell-terminfo.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-terminfo
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-text/PKGBUILD b/extra/haskell-text/PKGBUILD
new file mode 100644
index 000000000..20b0d25e5
--- /dev/null
+++ b/extra/haskell-text/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=text
+pkgname=haskell-text
+pkgver=0.11.0.5
+pkgrel=1.1
+pkgdesc="An efficient packed Unicode text type."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh 'haskell-deepseq=1.1.0.2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('516a6813a6b9061fabdc9f0c3bbb1592')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/extra/haskell-text/haskell-text.install b/extra/haskell-text/haskell-text.install
new file mode 100644
index 000000000..620db3921
--- /dev/null
+++ b/extra/haskell-text/haskell-text.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-text
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-transformers/PKGBUILD b/extra/haskell-transformers/PKGBUILD
new file mode 100644
index 000000000..3e5d66a47
--- /dev/null
+++ b/extra/haskell-transformers/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# $Id: PKGBUILD 114165 2011-03-11 05:13:33Z vesa $
+
+_hkgname=transformers
+pkgname=haskell-transformers
+pkgver=0.2.2.0
+pkgrel=1.2
+pkgdesc="Concrete functor and monad transformers"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('3470ac66116900cd1ba84d3744474e49')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-transformers/haskell-transformers.install b/extra/haskell-transformers/haskell-transformers.install
new file mode 100644
index 000000000..eec2af6e1
--- /dev/null
+++ b/extra/haskell-transformers/haskell-transformers.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-transformers
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-utf8-string/PKGBUILD b/extra/haskell-utf8-string/PKGBUILD
new file mode 100644
index 000000000..6bc5d5292
--- /dev/null
+++ b/extra/haskell-utf8-string/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=utf8-string
+pkgname=haskell-utf8-string
+pkgver=0.3.6
+pkgrel=7.1
+pkgdesc="Support for reading and writing UTF8 Strings"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('be8c5ef52a0824babdc89d60c1e9b600')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-utf8-string/haskell-utf8-string.install b/extra/haskell-utf8-string/haskell-utf8-string.install
new file mode 100644
index 000000000..0f64366b2
--- /dev/null
+++ b/extra/haskell-utf8-string/haskell-utf8-string.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-utf8-string
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-xhtml/PKGBUILD b/extra/haskell-xhtml/PKGBUILD
new file mode 100644
index 000000000..cbe80cfbe
--- /dev/null
+++ b/extra/haskell-xhtml/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=xhtml
+pkgname=haskell-xhtml
+pkgver=3000.2.0.1
+pkgrel=6.1
+pkgdesc="Combinators for producing XHTML 1.0, including the Strict, Transitional and Frameset variants."
+url="http://hackage.haskell.org/package/xhtml"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('9e3e7d9c66618c5e29716f90e54363c9')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-xhtml/haskell-xhtml.install b/extra/haskell-xhtml/haskell-xhtml.install
new file mode 100644
index 000000000..d03b8a053
--- /dev/null
+++ b/extra/haskell-xhtml/haskell-xhtml.install
@@ -0,0 +1,19 @@
+HS_DIR=usr/share/haskell/haskell-xhtml
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+ exit 0
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/haskell-zlib/PKGBUILD b/extra/haskell-zlib/PKGBUILD
new file mode 100644
index 000000000..eabdd83c2
--- /dev/null
+++ b/extra/haskell-zlib/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package originally generated by cabal2arch 0.7.6
+_hkgname=zlib
+pkgname=haskell-zlib
+pkgver=0.5.3.1
+pkgrel=1.1
+pkgdesc="Compression and decompression in the gzip and zlib formats"
+url="http://hackage.haskell.org/package/zlib"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2 'zlib' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('8fb2988b112e38d04a527b892f770507')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/extra/haskell-zlib/haskell-zlib.install b/extra/haskell-zlib/haskell-zlib.install
new file mode 100644
index 000000000..d387b7b65
--- /dev/null
+++ b/extra/haskell-zlib/haskell-zlib.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-zlib
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/extra/hd2u/PKGBUILD b/extra/hd2u/PKGBUILD
new file mode 100644
index 000000000..a06530a7a
--- /dev/null
+++ b/extra/hd2u/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 13826 2008-09-29 02:37:37Z douglas $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=hd2u
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Dos2Unix text file converter"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://hany.sk/~hany/software/hd2u/"
+depends=('popt')
+source=(http://hany.sk/~hany/_data/hd2u/$pkgname-$pkgver.tgz)
+md5sums=('8f6668fafb279aa19f956ec0515717b6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$pkgdir/usr install
+}
diff --git a/extra/hddtemp/PKGBUILD b/extra/hddtemp/PKGBUILD
new file mode 100644
index 000000000..f43fb8f50
--- /dev/null
+++ b/extra/hddtemp/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 98707 2010-11-12 20:24:41Z ibiru $
+# Maintainer: Andrea Scarpino <bash@archlinux.it>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Damir Perisa <damir@archlinux.org>
+
+pkgname=hddtemp
+pkgver=0.3.beta15.46
+_origver=0.3-beta15
+_patchver=46
+pkgrel=1
+pkgdesc="Gives you the temperature of your hard drive by reading S.M.A.R.T. information"
+arch=('i686' 'x86_64')
+url="http://www.guzu.net/linux/hddtemp.php"
+license=('GPL')
+depends=('glibc')
+backup=('etc/conf.d/hddtemp')
+source=(http://www.guzu.net/files/hddtemp-${_origver}.tar.bz2
+ http://ftp.debian.org/debian/pool/main/h/hddtemp/hddtemp_${_origver}-${_patchver}.diff.gz
+ 'hddtemp' 'hddtemp.confd' 'hddtemp-0.3-beta15-reg-eip.patch')
+md5sums=('8b829339e1ae9df701684ec239021bb8'
+ '040437845e28771c560b4bb40e41f933'
+ 'b7ebb86dfeef3bc4577ed1040307e36b'
+ 'fdca5c43900406f0be76534ef2a5a697'
+ '526ef28549dd0da7e38d32cfc8523592')
+options=('!libtool')
+
+build() {
+ cd "$srcdir/$pkgname-${_origver}"
+
+ patch -Np1 -i "$srcdir/${pkgname}_${_origver}-${_patchver}.diff"
+ patch -Np1 -i "$srcdir/hddtemp-0.3-beta15-reg-eip.patch"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-db-path=/usr/share/$pkgname/hddtemp.db
+ make
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 "$srcdir/$pkgname-${_origver}/debian/hddtemp.db" \
+ "$pkgdir/usr/share/${pkgname}/hddtemp.db"
+ install -D -m644 "$srcdir/hddtemp.confd" "$pkgdir/etc/conf.d/hddtemp"
+ install -D -m755 "$srcdir/hddtemp" "$pkgdir/etc/rc.d/hddtemp"
+}
diff --git a/extra/hddtemp/hddtemp b/extra/hddtemp/hddtemp
new file mode 100644
index 000000000..62f090808
--- /dev/null
+++ b/extra/hddtemp/hddtemp
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PARAMS=
+DRIVES=
+[ -f /etc/conf.d/hddtemp ] && . /etc/conf.d/hddtemp
+PID=$(pidof -o %PPID /usr/sbin/hddtemp)
+case "$1" in
+ start)
+ stat_busy "Starting HDDTemp"
+ [ -z "$PID" ] && /usr/sbin/hddtemp -d $PARAMS $DRIVES
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon hddtemp
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping HDDTemp"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon hddtemp
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/hddtemp/hddtemp-0.3-beta15-reg-eip.patch b/extra/hddtemp/hddtemp-0.3-beta15-reg-eip.patch
new file mode 100644
index 000000000..504a0366e
--- /dev/null
+++ b/extra/hddtemp/hddtemp-0.3-beta15-reg-eip.patch
@@ -0,0 +1,22 @@
+__USE_GNU needs to be in effect when including sys/ucontext.h,
+and signal.h pulls it in in some setups.
+
+diff -up hddtemp-0.3-beta15/src/backtrace.c~ hddtemp-0.3-beta15/src/backtrace.c
+--- hddtemp-0.3-beta15/src/backtrace.c~ 2006-04-19 05:38:14.000000000 +0300
++++ hddtemp-0.3-beta15/src/backtrace.c 2010-02-14 21:59:47.000000000 +0200
+@@ -27,13 +27,12 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <linux/ptrace.h>
++#define __USE_GNU
++#include <ucontext.h>
+ #include <signal.h>
+ #include <bits/sigcontext.h>
+ #include <sys/param.h>
+
+-#define __USE_GNU
+-#include <ucontext.h>
+-
+ #define MAX_BTSIZE 64
+
+ void backtrace_handler(int n, siginfo_t *ist, void *extra) {
diff --git a/extra/hddtemp/hddtemp.confd b/extra/hddtemp/hddtemp.confd
new file mode 100644
index 000000000..6a1e18e0b
--- /dev/null
+++ b/extra/hddtemp/hddtemp.confd
@@ -0,0 +1,2 @@
+PARAMS="-q -l 127.0.0.1"
+DRIVES="/dev/sda"
diff --git a/extra/hdf5/PKGBUILD b/extra/hdf5/PKGBUILD
new file mode 100644
index 000000000..b419b96cc
--- /dev/null
+++ b/extra/hdf5/PKGBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+
+pkgname=hdf5
+pkgver=1.8.5_patch1
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="General purpose library and file format for storing scientific data"
+url="http://www.hdfgroup.org/HDF5/"
+license=('custom')
+depends=('zlib' 'sh')
+makedepends=('time')
+source=(ftp://ftp.hdfgroup.org/HDF5/current/src/${pkgname}-${pkgver/_/-}.tar.bz2)
+options=('!libtool')
+md5sums=('27308a145e6c208d57db3f6f2634a0f6')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver/_/-}
+ export CFLAGS="${CFLAGS/O2/O0}"
+ export CXXFLAGS="${CFLAGS}"
+ ./configure --prefix=/usr --disable-static \
+ --enable-hl \
+ --enable-threadsafe \
+ --enable-linux-lfs \
+ --enable-production \
+ --with-pic \
+ --docdir=/usr/share/doc/hdf5/ \
+ --with-pthread=/usr/lib/ \
+ --disable-sharedlib-rpath
+ make || return 1
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver/_/-}
+
+ make -j1 prefix=$pkgdir/usr install
+
+ install -d -m755 $pkgdir/usr/share/licenses/${pkgname}
+ install -m644 $srcdir/${pkgname}-${pkgver/_/-}/COPYING \
+ $pkgdir/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/extra/help2man/PKGBUILD b/extra/help2man/PKGBUILD
new file mode 100644
index 000000000..171eb100d
--- /dev/null
+++ b/extra/help2man/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116002 2011-03-22 15:28:48Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Paul Mattal <paul@mattal.com>
+
+pkgname=help2man
+pkgver=1.39.2
+pkgrel=1
+pkgdesc="Conversion tool to create man files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/help2man/"
+license=('GPL')
+depends=('perl-locale-gettext')
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('36659da3ba7a9a51813e1c4848900a28')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --libdir=/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/hercules/PKGBUILD b/extra/hercules/PKGBUILD
new file mode 100644
index 000000000..e78a2bee3
--- /dev/null
+++ b/extra/hercules/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 94782 2010-10-10 23:27:33Z kevin $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=hercules
+pkgver=3.07
+pkgrel=1
+pkgdesc="A software implementation of the mainframe System/370 and ESA/390 architectures"
+url="http://www.hercules-390.org/"
+source=(http://www.hercules-390.org/$pkgname-$pkgver.tar.gz)
+arch=(i686 x86_64)
+license=('custom')
+options=(!libtool)
+depends=('bzip2' 'libgcrypt' 'zlib')
+md5sums=('a12aa1645b0695b25b7fc0c9a3ccab3a')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ # Change module extension from .la to .so.
+ sed '/HDL_MODULE_SUFFIX/ s/\.la/.so/' -i hdl.h
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+ # license
+ install -D -m644 COPYRIGHT \
+ $startdir/pkg/usr/share/licenses/hercules/qpl1
+}
diff --git a/extra/hexedit/PKGBUILD b/extra/hexedit/PKGBUILD
new file mode 100644
index 000000000..32f9749df
--- /dev/null
+++ b/extra/hexedit/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 68045 2010-02-10 15:26:23Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Paul Mattal <pjmattal@elys.com>
+
+pkgname=hexedit
+pkgver=1.2.12
+pkgrel=2
+pkgdesc="Hex Editor for Linux"
+arch=('i686' 'x86_64')
+url="http://merd.net/pixel/hexedit.html"
+license=('GPL')
+depends=('ncurses')
+source=(http://merd.net/pixel/${pkgname}-${pkgver}.src.tgz)
+md5sums=('0d2f48610006278cd93359fea9a06d5c')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+
+ ./configure || return 1
+ make || return 1
+ make prefix="${pkgdir}/usr" install || return 1
+}
diff --git a/extra/hplip/PKGBUILD b/extra/hplip/PKGBUILD
new file mode 100644
index 000000000..21b65a2b2
--- /dev/null
+++ b/extra/hplip/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 116953 2011-03-26 16:48:46Z tpowa $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Morgan LEFIEUX <comete@archlinuxfr.org>
+
+pkgname=hplip
+pkgver=3.11.3
+pkgrel=1
+pkgdesc="Drivers for HP DeskJet, OfficeJet, Photosmart, Business Inkjet and some LaserJet"
+arch=('i686' 'x86_64')
+url="http://hplipopensource.com"
+license=('GPL')
+makedepends=('python2-qt' 'pygobject' 'pkgconfig' 'sane' 'rpcbind' 'cups')
+depends=('python2' 'ghostscript>=8.64-6' 'foomatic-db' 'foomatic-db-engine'
+ 'libcups>=1.3.10-3' 'net-snmp>=5.6.1' 'libusb-compat')
+optdepends=('cups: for printing support'
+ 'dbus-python: for dbus support'
+ 'sane: for scanner support'
+ 'python-imaging: for commandline scanning support'
+ 'python-notify: for Desktop notification support'
+ 'rpcbind: for network support'
+ 'python2-qt: for running hp-toolbox'
+ 'pygobject: for running hp-toolbox')
+replaces=('hpijs')
+options=('!libtool')
+install=hplip.install
+source=(http://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ find . -type f -exec sed -i 's~^#.*env python~#!/usr/bin/env python2~' {} +
+ ./configure --prefix=/usr \
+ --enable-qt4 \
+ --enable-foomatic-rip-hplip-install \
+ --enable-foomatic-ppd-install \
+ --enable-hpcups-install \
+ --enable-cups-drv-install \
+ --enable-hpijs-install \
+ --enable-foomatic-drv-install \
+ --enable-pp-build \
+ --enable-udev-acl-rules
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+
+ rm -rf "$pkgdir/etc/sane.d"
+ # remove autostart of hp-daemon
+ rm -r "$pkgdir/etc/xdg"
+ # move udev rules to /lib/udev/rules.d
+ mkdir -p "$pkgdir/lib/udev/rules.d"
+ mv "$pkgdir"/etc/udev/rules.d/* "$pkgdir/lib/udev/rules.d/"
+ rm -r "$pkgdir/etc/udev"
+ # remove lp user, it's not used on archlinux
+ sed -i 's|OWNER="lp", ||g' "$pkgdir/lib/udev/rules.d/40-hplip.rules"
+ # fix sysfs rules
+ sed -i -e "s|SYSFS|ATTRS|g" -e "s|sysfs|attrs|g" "$pkgdir/lib/udev/rules.d/56-hpmud_support.rules"
+}
+md5sums=('9a2f39cb02214ee0def550defac0d240')
diff --git a/extra/hplip/hplip.install b/extra/hplip/hplip.install
new file mode 100644
index 000000000..cb0eaf8e8
--- /dev/null
+++ b/extra/hplip/hplip.install
@@ -0,0 +1,10 @@
+post_install() {
+ cat << EOF
+
+NOTE
+----
+# If you want to use this driver with sane:
+# echo "hpaio" >> /etc/sane.d/dll.conf
+
+EOF
+}
diff --git a/extra/hpoj/PKGBUILD b/extra/hpoj/PKGBUILD
new file mode 100644
index 000000000..f7a775365
--- /dev/null
+++ b/extra/hpoj/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 112539 2011-03-05 07:01:59Z eric $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+
+pkgname=hpoj
+pkgver=0.91
+pkgrel=16
+pkgdesc="Hewlett-Packard OfficeJet, PSC, LaserJet, and PhotoSmart printer multi-function peripherals (MFPs) drivers"
+arch=('i686' 'x86_64')
+url="http://hpoj.sourceforge.net"
+license=('GPL' 'custom')
+depends=('perl' 'libusb-compat' 'net-snmp>=5.6.1' 'hplip>=1.7.2')
+makedepends=('qt3')
+optdepends=('qt3: for using xojpanel')
+install=hpoj.install
+source=(http://downloads.sourceforge.net/sourceforge/hpoj/$pkgname-$pkgver.tgz \
+ hpoj-gcc4.patch hpoj-kernel26.patch hpoj-pack.patch \
+ hpoj_gcc43.diff hpoj0.91-snmp5.5.patch)
+md5sums=('0e083aeab9b00495aa433fa9465456e0' '347bb155c5dde443a93d92d8e64579a2'\
+ '18481d3dcf6e9cadf0a3d196ee164e37' '1c3b99f1a2178675d56ece29daba0fd7'\
+ '42bb57791cacf83e4d339e3653ad003e' 'af1cf13e95ff2654b84e470d0e18f537')
+sha1sums=('36785cf1a925f569ed3983b8c068620e2c9b4456' 'cd2d37c2620e29b92b96fe779d10a6635c7f31b7'\
+ 'fe3328fd7a43ec83d76d0d7fb7be6c41027cddb3' '80258e3190ffb514c20386e8a7cf70ee18df95a5'\
+ '22409b96d7bc67a10384a88c6b710981c0b90078' '4827cfa319bcd74ff8956e1bc69360f319a26c6a')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ # adding various patches
+ patch -Np1 -i ../hpoj-gcc4.patch
+ patch -Np1 -i ../hpoj-kernel26.patch
+ patch -Np1 -i ../hpoj-pack.patch
+ patch -Np1 -i ../hpoj_gcc43.diff
+ patch -Np1 -i ../hpoj0.91-snmp5.5.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make prefix="$pkgdir"/usr/ user_install
+ mkdir -p "$pkgdir"/etc/rc.d
+ mkdir -p "$pkgdir"/usr/lib/sane
+ mkdir -p "$pkgdir"/usr/lib/cups/backend
+ install -m 644 lib/sane/libsane-hpoj.so.1.0 "$pkgdir"/usr/lib/sane
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -D -m644 LICENSE.OpenSSL $pkgdir/usr/share/licenses/$pkgname/LICENSE.OpenSSL
+ cd "$pkgdir"/usr/lib/sane
+ ln -s libsane-hpoj.so.1.0 libsane-hpoj.so
+ ln -s libsane-hpoj.so.1.0 libsane-hpoj.so.1
+ ln -s /usr/sbin/ptal-init "$pkgdir"/etc/rc.d
+ ln -s /usr/sbin/ptal-cups "$pkgdir"/usr/lib/cups/backend/ptal
+ }
diff --git a/extra/hpoj/hpoj-gcc4.patch b/extra/hpoj/hpoj-gcc4.patch
new file mode 100644
index 000000000..ab1c125dd
--- /dev/null
+++ b/extra/hpoj/hpoj-gcc4.patch
@@ -0,0 +1,194 @@
+--- hpoj-0.91/lib/hpojip/xjpg_fix.c.gcc4 2002-07-25 11:01:24.000000000 +0200
++++ hpoj-0.91/lib/hpojip/xjpg_fix.c 2005-03-01 23:05:52.905482223 +0100
+@@ -389,7 +389,7 @@
+ \*****************************************************************************/
+
+
+-#define MYLOCATE(p) (void *)(p)=(g->headerBuffer+lenAddedHeader)
++#define MYLOCATE(p) (p)=(typeof(p))(g->headerBuffer+lenAddedHeader)
+ #define MYWRITE(p) lenAddedHeader+=sizeof(*(p))
+ #define MYWRITEBUF(data,datalen) \
+ do { \
+--- hpoj-0.91/mlcd/ExMgr.h.gcc4 2003-11-04 02:03:18.000000000 +0100
++++ hpoj-0.91/mlcd/ExMgr.h 2005-03-01 23:38:34.297977986 +0100
+@@ -127,8 +127,8 @@
+ QueueEntry(): prev(0),next(0) { }
+ #ifdef JD_DEBUGLITE
+ void dump(void) {
+- printf("QueueEntry(0x%8.8X): prev=0x%8.8X, next=0x%8.8X\n",
+- (int)this,(int)prev,(int)next);
++ printf("QueueEntry(%p): prev=%p, next=%p\n",
++ this,prev,next);
+ }
+ #endif
+ int isEnqueued(void) { return (prev || next); }
+--- hpoj-0.91/mlcd/ExMgr.cpp.gcc4 2003-11-04 02:03:18.000000000 +0100
++++ hpoj-0.91/mlcd/ExMgr.cpp 2005-03-01 23:41:49.408864110 +0100
+@@ -248,8 +248,8 @@
+
+ #ifdef JD_DEBUGLITE
+ void ExWatchdogTimer::dump(void) {
+- printf("pMsgHandler=0x%8.8X\n",(int)pMsgHandler);
+- printf("pMsg=0x%8.8X\n",(int)pMsg);
++ printf("pMsgHandler=%p\n",pMsgHandler);
++ printf("pMsg=%p\n",pMsg);
+ printf("delay=%d seconds, %d usec\n",
+ (int)delay.tv_sec,(int)delay.tv_usec);
+ printf("cancelled=%d\n",cancelled);
+@@ -1307,13 +1307,13 @@
+ printf("\tstate=%d\n",session[scd].state);
+ printf("\tfd=%d\n",session[scd].fd);
+ printf("\tscdlink=%d\n",session[scd].scdlink);
+- printf("\tpLookup=0x%8.8X\n",(int)session[scd].pLookup);
++ printf("\tpLookup=%p\n",session[scd].pLookup);
+ printf("\toutstandingForwardBdrCount=%d\n",
+ session[scd].outstandingForwardBdrCount);
+ printf("\tpReverseBdrQueue: depth=%d\n",
+ session[scd].pReverseBdrQueue->depth());
+- printf("\ttcd=0x%8.8X\n",(int)session[scd].tcd);
+- printf("\tpCommandBdr=0x%8.8X\n",(int)session[scd].pCommandBdr);
++ printf("\ttcd=%p\n",session[scd].tcd);
++ printf("\tpCommandBdr=%p\n",session[scd].pCommandBdr);
+ printf("\tpmlTrapsRegistered=%d\n",session[scd].pmlTrapsRegistered);
+ printf("\tbitbucketSocket=%d\n",session[scd].bitbucketSocket);
+
+@@ -2407,8 +2407,8 @@
+ }
+ printf("llioPossibleNameCount=%d\n",llioPossibleNameCount);
+ printf("llioName=<%s>\n",SAFE_STRING(llioName));
+- printf("llioGlobBuffer.gl_pathc=%d\n",llioGlobBuffer.gl_pathc);
+- printf("llioGlobBuffer.gl_offs=%d\n",llioGlobBuffer.gl_offs);
++ printf("llioGlobBuffer.gl_pathc=%lu\n",(unsigned long)llioGlobBuffer.gl_pathc);
++ printf("llioGlobBuffer.gl_offs=%lu\n",(unsigned long)llioGlobBuffer.gl_offs);
+ printf("llioGlobFlags=%d\n",llioGlobFlags);
+ for (i=0;i<llioMatchDeviceIDCount;i++) {
+ printf("llioMatchDeviceID[%d]=<%s>\n",i,
+--- hpoj-0.91/mlcd/transport/ExTransport.cpp.gcc4 2005-03-04 14:00:57.000000000 +0000
++++ hpoj-0.91/mlcd/transport/ExTransport.cpp 2005-03-04 14:03:37.000000000 +0000
+@@ -70,6 +70,7 @@
+
+ #ifdef JD_DEBUGLITE
+ void ExLookup::dump(void) {
++#if 0
+ printf("sizeof(ExLookup)=%d, this=0x%8.8X\n",
+ sizeof(ExLookup),(int)this);
+ printf("pService=0x%8.8X\n",
+@@ -82,6 +83,7 @@
+ lastSet);
+ printf("status=%d\n",
+ status);
++#endif
+ }
+ void ExLookup__dump(ExLookup *_this) {
+ return _this->dump();
+@@ -316,6 +318,7 @@
+
+ #ifdef JD_DEBUGLITE
+ void ExTransportChannel::dump(void) {
++#if 0
+ printf("this=0x%8.8X\n",
+ (int)this);
+ printf("port=%d\n",
+@@ -378,6 +381,7 @@
+ currentGrabbedCredit);
+ printf("currentGrabbedTransaction=%d\n",
+ currentGrabbedTransaction);
++#endif
+ }
+ #endif
+
+@@ -922,6 +926,7 @@
+ #ifdef JD_DEBUGLITE
+
+ void ExTransport::dump(void) {
++#if 0
+ int channel;
+
+ printf("this=0x%8.8X\n",
+@@ -971,6 +976,7 @@
+ if (pLookupRequest) {
+ pLookupRequest->dump();
+ }
++#endif
+ }
+
+ void ExTransport::dumpall(void) {
+@@ -1101,7 +1107,7 @@
+ ExMsg *pMsg=pMgr->getFreeMsg();
+
+ pMsg->setType(eEXMSG_ACTIVATE_WAIT);
+- pMsg->setParams(eEXCLASS_TRANSPORT,(int)this);
++ pMsg->setParams(eEXCLASS_TRANSPORT,(int)(long)this); // HACK
+ pMsg->send(pMgr);
+ }
+
+@@ -1248,7 +1254,7 @@
+ ExMsg *pMsg=pMgr->getFreeMsg();
+
+ pMsg->setType(eEXMSG_ACTIVATE_RESPONSE);
+- pMsg->setParams(eEXCLASS_TRANSPORT,(int)this,status);
++ pMsg->setParams(eEXCLASS_TRANSPORT,(int)(long)this,status); // HACK
+ pMsg->send(pMgr);
+ }
+
+@@ -1282,7 +1288,7 @@
+ ExMsg *pMsg=pMgr->getFreeMsg();
+
+ pMsg->setType(eEXMSG_DEACTIVATE_RESPONSE);
+- pMsg->setParams(eEXCLASS_TRANSPORT,(int)this,status);
++ pMsg->setParams(eEXCLASS_TRANSPORT,(int)(long)this,status); // HACK
+ pMsg->send(pMgr);
+ }
+
+--- hpoj-0.91/mlcd/transport/ExMlcTransport.cpp.gcc4 2005-03-04 14:28:28.000000000 +0000
++++ hpoj-0.91/mlcd/transport/ExMlcTransport.cpp 2005-03-04 14:29:40.000000000 +0000
+@@ -409,6 +409,7 @@
+
+ #ifdef JD_DEBUGLITE
+ void ExMlcTransportChannel::dump(void) {
++#if 0
+ ExTransportChannel::dump();
+ printf("----------------\n");
+ printf("pMlcTransport=0x%8.8X\n",
+@@ -487,6 +488,7 @@
+ countHandleEmptyCreditRequestReply.get());
+ printf("isGusher=%d\n",
+ isGusher());
++#endif
+ }
+ #endif
+
+@@ -1597,6 +1599,7 @@
+
+ #ifdef JD_DEBUGLITE
+ void ExMlcTransport::dump(void) {
++#if 0
+ int i;
+
+ ExTransport::dump();
+@@ -1631,6 +1634,7 @@
+ remoteSocketArray[i].maxForwardPacketSize,
+ remoteSocketArray[i].maxReversePacketSize);
+ }
++#endif
+ }
+ #endif
+
+--- hpoj-0.91/mlcd/transport/ExMlcCommandChannel.cpp.gcc4 2005-03-04 14:37:19.000000000 +0000
++++ hpoj-0.91/mlcd/transport/ExMlcCommandChannel.cpp 2005-03-04 14:37:46.000000000 +0000
+@@ -214,6 +214,7 @@
+
+ #ifdef JD_DEBUGLITE
+ void ExMlcCommandChannel::dump(void) {
++#if 0
+ ExMlcTransportChannel::dump();
+ printf("----------------\n");
+ printf("pForwardCommandPool=0x%8.8X\n",
+@@ -238,6 +239,7 @@
+ lastPsid);
+ printf("lastSsid=%d\n",
+ lastSsid);
++#endif
+ }
+ #endif
+
diff --git a/extra/hpoj/hpoj-kernel26.patch b/extra/hpoj/hpoj-kernel26.patch
new file mode 100644
index 000000000..38b8d0464
--- /dev/null
+++ b/extra/hpoj/hpoj-kernel26.patch
@@ -0,0 +1,86 @@
+--- hpoj-0.91/scripts/ptal-init.in.kernel26 2004-03-03 17:30:47.000000000 +0000
++++ hpoj-0.91/scripts/ptal-init.in 2004-03-03 17:30:59.000000000 +0000
+@@ -90,6 +90,11 @@
+ my $varLock="/var/lock";
+ my $varLockSubsys="$varLock/subsys";
+ my $osPlatform=`uname -s 2>/dev/null`;
++chomp $osPlatform;
++my $linuxVersion=($osPlatform eq 'Linux' ? `uname -r 2>/dev/null` : '');
++$linuxVersion=~s/^(\s*)(\d+\.\d+)(\..*)$/$2/;
++chomp $linuxVersion;
++my $usbprintermodule = ($linuxVersion eq '2.6' ? "usblp" : "printer");
+ my %devnames;
+ my %obsoleteDevnames;
+ my %configInfo;
+@@ -1222,12 +1227,12 @@
+ # undef -- skip USB probe
+ # 0 -- do nothing, proceed with USB probe
+ # >0 -- load printer.o
+-# <0 -- disable and unload printer.o
++# <0 -- disable and unload printer.o/usblp.o
+ sub linuxWhatShouldWeDoAboutUsbPrinterModule {
+ my $isSmp=&linuxIsSmp;
+ my $libusbSupported=&ptalMlcdSupportsLibusb;
+ my $usblpIsLoaded=&linuxUsblpIsLoaded;
+- my $printerIsLoaded=&linuxModuleIsLoaded("printer");
++ my $printerIsLoaded=&linuxModuleIsLoaded($usbprintermodule);
+
+ # non-SMP:
+ if (!$isSmp) {
+@@ -1261,9 +1266,10 @@
+ }
+ goto allowInsmodPrinter;
+
+- # SMP, libusb support, some sort of printer.c functionality loaded:
++ # SMP, libusb support, some sort of printer.c/usblp.c
++ # functionality loaded:
+ } elsif ($usblpIsLoaded) {
+- # printer.c compiled into the kernel:
++ # printer.c/usblp.c compiled into the kernel:
+ if (!$printerIsLoaded) {
+ if (!&askYN(
+ "\n".
+@@ -1280,7 +1286,7 @@
+ return undef;
+ }
+
+- # printer.c compiled and loaded as a module:
++ # printer.c/usblp.c compiled and loaded as a module:
+ } else {
+ promptDisableRmmodPrinter:
+ my $r=&askYN(
+@@ -1301,8 +1307,9 @@
+ }
+ }
+
+- # SMP, libusb support, printer.c enabled although not loaded:
+- } elsif (!&linuxModuleIsDisabled("printer")) {
++ # SMP, libusb support, printer.c/usblp.c enabled although not
++ # loaded:
++ } elsif (!&linuxModuleIsDisabled($usbprintermodule)) {
+ goto promptDisableRmmodPrinter;
+ }
+
+@@ -1326,11 +1333,11 @@
+ return 1;
+ }
+ if ($r<0) {
+- $r=&linuxDisableAndUnloadModule("printer",
++ $r=&linuxDisableAndUnloadModule($usbprintermodule,
+ "to prevent possible system instability due to SMP+USB");
+ } else {
+ linuxJustLoad:
+- $r=&linuxInsmod("printer",$quiet);
++ $r=&linuxInsmod($usbprintermodule,$quiet);
+ }
+ if (!$r && !$quiet &&
+ &askYN("\n*** Continue with the USB probe anyway".$msg,0)) {
+@@ -1601,7 +1608,7 @@
+
+ } else {
+ my $parModulesLoaded=0;
+- # Don't "modprobe printer" on SMP Linux with libusb support:
++ # Don't "modprobe printer/usblp" on SMP Linux with libusb support:
+ my $usbModulesLoaded=
+ (&ptalMlcdSupportsLibusb &&
+ $osPlatform=~/Linux/ && &linuxIsSmp);
diff --git a/extra/hpoj/hpoj-pack.patch b/extra/hpoj/hpoj-pack.patch
new file mode 100644
index 000000000..beb7040dc
--- /dev/null
+++ b/extra/hpoj/hpoj-pack.patch
@@ -0,0 +1,59 @@
+There is a rather scary and longstanding GCC bug [1] which causes
+instant crashes if a program defines a struct with function-pointers
+and that structure happens to be "packed". Why anybody would want to
+do such a thing is beyond me, but suffice it to say that hpoj v0.91 is
+doing precisely that. The current Debian/sarge package for hpoj is
+definitely affected (any attempt to scan an image results in an
+instant crash).
+
+A patch to work around the problem is attached.
+
+Perhaps the hpoj developers can tell us whether it was really
+intentional to have the #pragma pack(1) span all of <stdlib.h> and
+<xform.h>?
+
+Thanks,
+
+ --david
+
+[1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=1844
+
+--- hpoj-0.91/include/hpojip.h 2002-07-25 02:01:24.000000000 -0700
++++ hpoj-0.91-davidm/include/hpojip.h 2004-11-11 21:19:58.775236374 -0800
+@@ -131,12 +132,15 @@
+ float fl;
+ } DWORD_OR_PVOID;
+
++#pragma pack ()
++
+ #ifdef HPOJIP_INTERNAL
+ #include "../lib/hpojip/xform.h" // this file uses the above definitions
+ #else
+ typedef struct IP_XFORM_TBL_s FAR *LPIP_XFORM_TBL;
+ #endif
+
++#pragma pack (1)
+
+ /****************************************************************************\
+ ****************************************************************************
+@@ -587,8 +591,6 @@
+
+ EXPORT(WORD) ipGetFuncPtrs (LPIP_JUMP_TBL lpJumpTbl);
+
+-#pragma pack ()
+-
+ /****************************************************************************\
+ ****************************************************************************
+ *
+
+
+-------------------------------------------------------
+This SF.Net email is sponsored by:
+Sybase ASE Linux Express Edition - download now for FREE
+LinuxWorld Reader's Choice Award Winner for best database on Linux.
+http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
+
+_______________________________________________
+hpoj-devel mailing list
+hpoj-devel@lists.sourceforge.net
+https://lists.sourceforge.net/lists/listinfo/hpoj-devel
diff --git a/extra/hpoj/hpoj.install b/extra/hpoj/hpoj.install
new file mode 100644
index 000000000..acce9b033
--- /dev/null
+++ b/extra/hpoj/hpoj.install
@@ -0,0 +1,7 @@
+post_install() {
+cat << EOF
+==> To get the HP-Officejet working run as root: ptal-init setup
+==> Add ptal-init to /etc/rc.conf daemon list and place it before cups is started!
+==> To access scanner enable in /etc/sane.d/dll.conf hpoj line.
+EOF
+}
diff --git a/extra/hpoj/hpoj0.91-snmp5.5.patch b/extra/hpoj/hpoj0.91-snmp5.5.patch
new file mode 100644
index 000000000..2042d6f1a
--- /dev/null
+++ b/extra/hpoj/hpoj0.91-snmp5.5.patch
@@ -0,0 +1,11 @@
+diff -Naur hpoj-0.91-orig/lib/ptal/ptal-hpjd.c hpoj-0.91/lib/ptal/ptal-hpjd.c
+--- hpoj-0.91-orig/lib/ptal/ptal-hpjd.c 2010-02-19 22:33:54.000000000 -0500
++++ hpoj-0.91/lib/ptal/ptal-hpjd.c 2010-02-19 22:34:45.000000000 -0500
+@@ -45,6 +45,7 @@
+ #include <stdlib.h>
+
+ #ifdef HAVE_SNMP
++#include <net-snmp/net-snmp-config.h>
+ #include <asn1.h>
+ #include <snmp.h>
+ #include <snmp_api.h>
diff --git a/extra/hpoj/hpoj_gcc43.diff b/extra/hpoj/hpoj_gcc43.diff
new file mode 100644
index 000000000..099c9d755
--- /dev/null
+++ b/extra/hpoj/hpoj_gcc43.diff
@@ -0,0 +1,20 @@
+diff -Nru --exclude changelog hpoj-0.91/mlcd/transport/ExMlcTransport.h hpoj-0.91/mlcd/transport/ExMlcTransport.h
+--- hpoj-0.91/mlcd/transport/ExMlcTransport.h 2003-11-04 06:33:19.000000000 +0530
++++ hpoj-0.91/mlcd/transport/ExMlcTransport.h 2008-03-20 10:14:02.000000000 +0530
+@@ -888,14 +888,14 @@
+ void remsockReset(void);
+ public:
+ STATUS remsockLookup(int socketID,int *pState,
+- int *pMaxForwardPacketSize,int *pMaxForwardPacketSize);
++ int *pMaxForwardPacketSize,int *pMaxForwardPacketSize2);
+ STATUS remsockAdd(int socketID);
+ void handleConfigSocketReply(int result,int socketID,
+ int maxPriToSecPacketSize,int maxSecToPriPacketSize,
+ int statusLevel);
+ protected:
+ STATUS remsockUpdate(int socketID,
+- int maxForwardPacketSize,int maxForwardPacketSize);
++ int maxForwardPacketSize,int maxForwardPacketSize2);
+ STATUS remsockDelete(int socketID);
+
+ // Peripheral-initiated opens (not supported):
diff --git a/extra/hspell/PKGBUILD b/extra/hspell/PKGBUILD
new file mode 100644
index 000000000..81b12ed44
--- /dev/null
+++ b/extra/hspell/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 109025 2011-02-05 13:53:55Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgbase=hspell
+pkgname=('hspell' 'hunspell-he')
+pkgver=1.1
+pkgrel=1
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.ivrix.org.il/projects/spell-checker/"
+makedepends=('glibc' 'zlib' 'perl' 'hunspell' 'gawk')
+options=('!libtool' '!makeflags')
+source=(http://hspell.ivrix.org.il/${pkgname}-${pkgver}.tar.gz
+ hspell-1.0.sharedlib.patch)
+md5sums=('e79e75180ce529c008ea085954a52f2c'
+ '0df6764bb37500ee936b9355fee0c7a5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/hspell-1.0.sharedlib.patch
+ autoreconf -v
+ sed -i -e 's|/usr/bin/awk|/bin/awk|' wzip
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --enable-linginfo --enable-fatverb
+ make
+ make hunspell
+}
+
+package_hspell() {
+
+ pkgdesc="Hebrew spell-checker"
+ depends=('glibc' 'zlib' 'perl')
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -f ${pkgdir}/usr/lib/libhspell.a
+}
+
+package_hunspell-he() {
+
+ pkgdesc="Hebrew hunspell dictionary"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ install -dm755 ${pkgdir}/usr/share/hunspell
+ cp -p hunspell/new_he.dic ${pkgdir}/usr/share/hunspell/he_IL.dic
+ cp -p hunspell/new_he.aff ${pkgdir}/usr/share/hunspell/he_IL.aff
+
+ # the symlinks
+ install -dm755 ${pkgdir}/usr/share/myspell/dicts
+ pushd $pkgdir/usr/share/myspell/dicts
+ for file in $pkgdir/usr/share/hunspell/*; do
+ ln -sv /usr/share/hunspell/$(basename $file) .
+ done
+ popd
+}
diff --git a/extra/hspell/hspell-1.0.sharedlib.patch b/extra/hspell/hspell-1.0.sharedlib.patch
new file mode 100644
index 000000000..81467c3e9
--- /dev/null
+++ b/extra/hspell/hspell-1.0.sharedlib.patch
@@ -0,0 +1,66 @@
+Index: hspell-1.0/Makefile.in
+===================================================================
+--- hspell-1.0.orig/Makefile.in
++++ hspell-1.0/Makefile.in
+@@ -51,7 +51,7 @@ LDFLAGS=@LDFLAGS@
+
+ # Our TARGETS variable chooses what to compile. Some things are
+ # optionally compiled depending on --enable-* paramters to configure.
+-TARGETS = @TARGETS@
++TARGETS = @TARGETS@ libhspell.a
+ all: $(TARGETS)
+
+ # SEDCMD controls on whether objective-kinuyim - about 130,000 rare verb
+@@ -76,7 +76,8 @@ clean:
+ hebrew.wgz.lingsizes.tmp dmask.c install.js \
+ spell-he.xpi he.dic he.aff README-he.txt \
+ README_he_IL.txt he_IL.dic he_IL.aff he_IL.zip \
+- specfilter.o specfilter
++ specfilter.o specfilter \
++ libhspell.so.0 libhspell.so *.lo
+ rm -f hebeng/install.js hebeng/heb-eng.aff hebeng/heb-eng.dic \
+ hebeng/README-he.txt hebeng/README-en-US.txt \
+ hebeng/spell-heb-eng.xpi
+@@ -113,6 +114,9 @@ install: all
+ test -d $(DESTDIR)$(LIBDIR) || mkdir -m 755 -p $(DESTDIR)$(LIBDIR)
+ cp libhspell.a $(DESTDIR)$(LIBDIR)/
+ chmod 644 $(DESTDIR)$(LIBDIR)/libhspell.a
++ cp libhspell.so.0 $(DESTDIR)$(LIBDIR)/
++ chmod 755 $(DESTDIR)$(LIBDIR)/libhspell.so.0
++ ln -sf libhspell.so.0 $(DESTDIR)$(LIBDIR)/libhspell.so
+ test -d $(DESTDIR)$(INCLUDEDIR) || mkdir -m 755 -p $(DESTDIR)$(INCLUDEDIR)
+ cp hspell.h linginfo.h $(DESTDIR)$(INCLUDEDIR)/
+ chmod 644 $(DESTDIR)$(INCLUDEDIR)/hspell.h $(DESTDIR)$(INCLUDEDIR)/linginfo.h
+@@ -166,19 +170,30 @@ libhspell.a: dict_radix.o gimatria.o cor
+ ar cr $@ $^
+ -ranlib $@
+
+-$(HSPELL_EXECUTABLE): hspell.o tclHash.o libhspell.a
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $(HSPELL_EXECUTABLE) hspell.o tclHash.o libhspell.a $(LIBS)
++EXTRAOBJECTSPIC=$(EXTRAOBJECTS:.o=.lo)
++
++%.lo: %.c
++ $(CC) -c $(CFLAGS) $(CPPFLAGS) $(DEFS) -fPIC -DPIC -o $@ $<
++
++libhspell.so.0: dict_radix.lo gimatria.lo corlist.lo libhspell.lo $(EXTRAOBJECTSPIC)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ -shared -Wl,-soname,libhspell.so.0 $^ -lz
++ ln -sf libhspell.so.0 libhspell.so
++
++$(HSPELL_EXECUTABLE): hspell.o tclHash.o libhspell.so.0
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(HSPELL_EXECUTABLE) hspell.o tclHash.o libhspell.so.0 $(LIBS)
+
+ # remember to update this dependency list once in a while...
+ libhspell.o dict_radix.o find_sizes.o: dict_radix.h
+ dict_radix.o linginfo.o: gzbuffered.h
+ libhspell.o mk_he_affix.o: prefixes.c
++libhspell.lo mk_he_affix.lo: prefixes.c
+ hspell.o: hash.h tclHash.h
+ tclHash.o: tclHash.h
+ corlist.o gimatria.o hspell.o libhspell.o: hspell.h
+ hspell.o libhspell.o linginfo.o: linginfo.h hspell.h
+ linginfo.o: dmask.c
+ specfilter.o: prefixes.c
++specfilter.lo: prefixes.c
+
+ prefixes.c: genprefixes.pl PrefixBits.pl
+ $(PERL) -w ./genprefixes.pl >prefixes.c
diff --git a/extra/htdig/PKGBUILD b/extra/htdig/PKGBUILD
new file mode 100644
index 000000000..6e6f12ab2
--- /dev/null
+++ b/extra/htdig/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=htdig
+pkgver=3.2.0b6
+pkgrel=6
+pkgdesc="A complete world wide web indexing and searching system for a domain or intranet."
+url="http://www.htdig.org"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gcc-libs' 'zlib' 'bash')
+options=('!libtool' '!emptydirs')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ gcc4.3.patch
+ quoting.patch)
+md5sums=('8b9b9587a411ac7dd278fa5413428960'
+ '2aeda683f95b58efc0978d7fe951de59'
+ '0d9099d3b5a32d322a8e0240f85a3578')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -p1 -i ${srcdir}/gcc4.3.patch
+ patch -p1 -i ${srcdir}/quoting.patch || return 1
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-config-dir=/etc/htdig \
+ --with-default-config-file=/etc/htdig/htdig.conf \
+ --with-database-dir=/var/lib/htdig/db \
+ --with-cgi-bin-dir=/usr/bin \
+ --with-common-dir=/usr/share/doc/htdig \
+ --with-search-dir=/usr/share/doc/htdig \
+ --with-image-dir=/usr/share/doc/htdig
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/extra/htdig/gcc4.3.patch b/extra/htdig/gcc4.3.patch
new file mode 100644
index 000000000..58dec1395
--- /dev/null
+++ b/extra/htdig/gcc4.3.patch
@@ -0,0 +1,15 @@
+diff -Naurp htdig-3.2.0b6.orig/htsearch/Collection.h htdig-3.2.0b6/htsearch/Collection.h
+--- htdig-3.2.0b6.orig/htsearch/Collection.h 2004-05-28 06:15:24.000000000 -0700
++++ htdig-3.2.0b6/htsearch/Collection.h 2006-03-22 11:35:40.000000000 -0800
+@@ -36,9 +36,9 @@ public:
+ const char *docExcerpt);
+ ~Collection();
+
+- void Collection::Open();
++ void Open();
+
+- void Collection::Close();
++ void Close();
+
+ char *getWordFile() { return wordFile.get(); }
+ DocumentRef *getDocumentRef(int id);
diff --git a/extra/htdig/quoting.patch b/extra/htdig/quoting.patch
new file mode 100644
index 000000000..57b0e3b78
--- /dev/null
+++ b/extra/htdig/quoting.patch
@@ -0,0 +1,26 @@
+Index: htdig-3.2.0b6/htsearch/Display.cc
+===================================================================
+--- htdig-3.2.0b6.orig/htsearch/Display.cc
++++ htdig-3.2.0b6/htsearch/Display.cc
+@@ -137,7 +137,7 @@ Display::display(int pageNumber)
+ // Must temporarily stash the message in a String, since
+ // displaySyntaxError will overwrite the static temp used in form.
+
+- String s(form("No such sort method: `%s'", (const char*)config->Find("sort")));
++ String s("invalid sort method");
+
+ displaySyntaxError(s);
+ return;
+Index: htdig-3.2.0b6/libhtdig/ResultFetch.cc
+===================================================================
+--- htdig-3.2.0b6.orig/libhtdig/ResultFetch.cc
++++ htdig-3.2.0b6/libhtdig/ResultFetch.cc
+@@ -142,7 +142,7 @@ ResultFetch::fetch()
+ // Must temporarily stash the message in a String, since
+ // displaySyntaxError will overwrite the static temp used in form.
+
+- String s(form("No such sort method: `%s'", (const char *) config->Find("sort")));
++ String s("invalid sort method");
+
+ displaySyntaxError(s);
+ //return;
diff --git a/extra/htop/ChangeLog b/extra/htop/ChangeLog
new file mode 100644
index 000000000..686b0e181
--- /dev/null
+++ b/extra/htop/ChangeLog
@@ -0,0 +1,14 @@
+2009-09-21 Eric Belanger <eric@archlinux.org>
+
+ * htop 0.8.3-1
+ * Upstream update
+ * Built with vserver and openvz support (close FS#12755)
+
+2008-12-09 Alexander Fehr <pizzapunk gmail com>
+
+ * htop-0.8.1-1:
+ * New upstream release
+ * New maintainer
+ * Added patch to fix FS#12235
+ * Enabled Unicode support
+ * Added ChangeLog
diff --git a/extra/htop/PKGBUILD b/extra/htop/PKGBUILD
new file mode 100644
index 000000000..dce19cc82
--- /dev/null
+++ b/extra/htop/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 105144 2011-01-06 20:57:13Z angvp $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=htop
+pkgver=0.9
+pkgrel=1
+pkgdesc="Interactive process viewer"
+arch=('i686' 'x86_64')
+url="http://htop.sourceforge.net/"
+license=('GPL')
+depends=('ncurses')
+makedepends=('python2')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/htop/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7c5507f35f363f3f40183a2ba3c561f8')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's|ncursesw/curses.h|curses.h|' RichString.h RichString.c configure
+ sed -i 's|python|python2|' scripts/MakeHeader.py
+ ./configure --prefix=/usr --enable-unicode --enable-openvz \
+ --enable-vserver
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/hugin/PKGBUILD b/extra/hugin/PKGBUILD
new file mode 100644
index 000000000..23aa5c7e8
--- /dev/null
+++ b/extra/hugin/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 112014 2011-03-03 05:10:44Z eric $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dominik Ryba <domryba@post.pl>
+
+pkgname=hugin
+pkgver=2010.4.0
+pkgrel=2
+pkgdesc="A frontend to the panorama-tools"
+arch=('i686' 'x86_64')
+url="http://hugin.sourceforge.net/"
+license=('LGPL')
+depends=('wxgtk' 'libpano13' 'boost-libs' 'enblend-enfuse' 'exiv2' 'openexr'
+ 'autopano-sift-c' 'lapack' 'desktop-file-utils' 'make' 'perl-exiftool')
+makedepends=('zip' 'cmake' 'boost')
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('bfd716655461987312b2f2f00c90dcc5')
+sha1sums=('47f25c0a8b97c27108e567bcd22203c87f268d07')
+
+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/extra/hugin/hugin.install b/extra/hugin/hugin.install
new file mode 100644
index 000000000..362749233
--- /dev/null
+++ b/extra/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/extra/hunspell/PKGBUILD b/extra/hunspell/PKGBUILD
new file mode 100644
index 000000000..e73e0e875
--- /dev/null
+++ b/extra/hunspell/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 108140 2011-01-30 10:19:56Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Hussam Al-Tayeb <ht990332@gmail.com>
+
+pkgname=hunspell
+pkgver=1.2.15
+pkgrel=1
+pkgdesc="Spell checker and morphological analyzer library and program"
+arch=('i686' 'x86_64')
+url="http://hunspell.sourceforge.net/"
+license=('GPL' 'LGPL' 'MPL')
+depends=('gcc-libs' 'readline')
+optdepends=('perl: for ispellaff2myspell')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/hunspell/hunspell-$pkgver.tar.gz)
+md5sums=('3fa2644b8d48cae48cb0967ffba91c9d')
+
+build() {
+ cd "$srcdir/hunspell-$pkgver"
+ ./configure --prefix=/usr --disable-static \
+ --with-ui --with-readline --with-experimental
+ make
+}
+
+package() {
+ cd "$srcdir/hunspell-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/hwloc/PKGBUILD b/extra/hwloc/PKGBUILD
new file mode 100644
index 000000000..e1cf1b850
--- /dev/null
+++ b/extra/hwloc/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 114641 2011-03-15 00:30:43Z stephane $
+# Maintainer : Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Sylvain HENRY <hsyl20@yahoo.fr>
+# Contributor: Hervé YVIQUEL <elldekaa@gmail.com>
+
+pkgname=hwloc
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="Portable Hardware Locality is a portable abstraction of hierarchical architectures"
+arch=('i686' 'x86_64')
+url="http://www.open-mpi.org/projects/hwloc/"
+license=('BSD')
+depends=('sh')
+makedepends=('pkg-config')
+optdepends=('cairo: Graphical output' 'libxml2: XML export')
+options=('!libtool' '!docs')
+source=(http://www.open-mpi.org/software/hwloc/v1.1/downloads/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('ca99f6e7c9cb41ca0ce89171c817c1de1d9bbde1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+
+ # Rename hwloc-gather-topology.sh script to be consistent with the upcoming version 1.2
+ mv "${pkgdir}"/usr/bin/hwloc-gather-topology{.sh,}
+ mv "${pkgdir}"/usr/share/man/man1/hwloc-gather-topology{.sh.1,.1}
+ sed -i -e 's/hwloc-gather-topology.sh/hwloc-gather-topology/g' "${pkgdir}"/usr/share/man/man1/hwloc-gather-topology.1
+}
diff --git a/extra/hydrogen/PKGBUILD b/extra/hydrogen/PKGBUILD
new file mode 100644
index 000000000..33e3805b1
--- /dev/null
+++ b/extra/hydrogen/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 115128 2011-03-17 06:06:23Z schiv $
+# Maintainer: tobias <tobias@archlinux.org>
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: K. Piche <kpiche@rogers.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=hydrogen
+pkgver=0.9.5
+pkgrel=1
+pkgdesc="Advanced Drum Machine"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.hydrogen-music.org/"
+depends=('libarchive' 'liblrdf' 'qt' 'jack')
+makedepends=('scons')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e96f291d60e58f5d62fe616cee577dc0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export QTDIR=/usr
+ scons prefix=/usr libarchive=1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ scons DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/hylafax/PKGBUILD b/extra/hylafax/PKGBUILD
new file mode 100644
index 000000000..f0e678297
--- /dev/null
+++ b/extra/hylafax/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 62528 2010-01-09 20:34:27Z tpowa $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=hylafax
+pkgver=6.0.4
+pkgrel=1
+pkgdesc="Fax Server"
+arch=('i686' 'x86_64')
+install='hylafax.install'
+license=('custom')
+depends=('libtiff' 'pam' 'ghostscript')
+makedepends=('smtp-server')
+url="http://www.hylafax.org/"
+backup=(var/spool/hylafax/bin/{faxrcvd,notify} \
+ usr/lib/fax/{faxcover.ps,hfaxd.conf,pagesizes,typerules} \
+ var/spool/hylafax/etc/hosts.hfaxd)
+source=(ftp://ftp.hylafax.org/source/${pkgname}-${pkgver}.tar.gz hylafax \
+ hylafax.cron.daily config.local)
+options=('!makeflags')
+
+# build as root for successful build!
+build() {
+ uucp_created=0
+ if ! grep 'uucp' /etc/passwd > /dev/null; then
+ uucp_created=1
+ groupadd -g 14 uucp &>/dev/null
+ useradd -u 10 -g uucp -d '/' -s /bin/false uucp &>/dev/null
+ useradd -u 69 -g daemon -d '/' -s /bin/false fax &>/dev/null
+ fi
+ mkdir -p $pkgdir/usr/{bin,lib/fax,sbin,share/ghostscript/fonts} || return 1
+ mkdir -p $pkgdir/var/{spool/hylafax,lock} || return 1
+ cd $srcdir/${pkgname}-${pkgver} || return 1
+
+ cp ../config.local . || return 1
+ ./configure --nointeractive --with-OPTIMIZER="${CFLAGS}" || return 1
+ make || return 1
+ make ROOT=$pkgdir install || return 1
+ install -D -m 755 $srcdir/hylafax $pkgdir/etc/rc.d/hylafax || return 1
+ install -D -m 744 $srcdir/hylafax.cron.daily $pkgdir/etc/cron.daily/hylafax || return 1
+ # remove group if created
+ if [ $uucp_created -eq 1 ]; then
+ userdel uucp &>/dev/null
+ groupdel uucp &>/dev/null
+ userdel fax &>/dev/null
+ fi
+ # add missing awk file for notify-4.1 script
+ install -D -m 755 $srcdir/${pkgname}-${pkgver}/util/notify.awk \
+ $spkgdir/var/spool/hylafax/bin/notify.awk || return 1
+ # fix permission on /var/lock
+ chmod 1777 $pkgdir/var/lock
+
+ install -D -m644 COPYRIGHT $startdir/pkg/usr/share/licenses/$pkgname/COPYRIGHT
+}
+md5sums=('6ba4bc3a47c9d2634de1b14f4ab34c80'
+ '6602288a405324d8c8e3c5eac2bf19fd'
+ '52beffe7dc296b4f9ce9fd0387f7804e'
+ '0d2ce24d918226a852539aebf57d3f4a')
diff --git a/extra/hylafax/config.local b/extra/hylafax/config.local
new file mode 100644
index 000000000..0d8e2bcd8
--- /dev/null
+++ b/extra/hylafax/config.local
@@ -0,0 +1,273 @@
+# $Id: config.local,v 1.1 2003/06/28 00:24:49 jproctor Exp $
+#
+# HylaFAX Facsimile Software
+#
+# Copyright (c) 1990-1996 Sam Leffler
+# Copyright (c) 1991-1996 Silicon Graphics, Inc.
+# HylaFAX is a trademark of Silicon Graphics, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and
+# its documentation for any purpose is hereby granted without fee, provided
+# that (i) the above copyright notices and this permission notice appear in
+# all copies of the software and related documentation, and (ii) the names of
+# Sam Leffler and Silicon Graphics may not be used in any advertising or
+# publicity relating to the software without the specific, prior written
+# permission of Sam Leffler and Silicon Graphics.
+#
+# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+#
+# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
+# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+#
+
+#
+# This file holds site-specific configuration parameters.
+#
+# Nothing is defined in here by default, the definitions
+# commented out below serve as documentation for what you
+# can set in this file or a config.local file.
+#
+# Note that you do not need to set anything here unless you
+# want to override the auto-configuration behaviour and/or
+# interactive prompting done by the configure script.
+#
+
+#
+# Package controls.
+#
+#DSO="auto" # configure DSO support (auto|IRIX|no)
+#GETTY="auto" # type of getty support (auto|BSD|SysV)
+#HTML="no" # install HTML documentation (yes|no)
+#PS="auto" # PostScript support to use (auto|gs|dps|imp)
+#SGI2FAX="auto" # configure SGI image support (auto|yes|no)
+#DPS="no" # install SGI DPS-based RIP (yes|no)
+#GS="no" # install Ghostscript RIP (yes|no)
+#IMP="no" # install SGI Impressario 2.1 support (yes|no)
+#REGEX="yes" # use distributed regular expression package
+#UTMP="utmpx" # type of utmp+wtmp handling (auto|utmp|utmpx)
+#DBLIB="no" # use distributed libdb distribution
+
+#
+# Directory parameters.
+#
+DIR_BIN="/usr/bin" # directory for client apps
+DIR_LIB="/usr/lib"
+DIR_LIBDATA="/usr/lib/fax" # directory for client data
+DIR_LIBEXEC="/usr/lib/fax" # directory for libraries&hidden apps
+DIR_MAN="/usr/share/man" # directory for manual pages
+DIR_SPOOL="/var/spool/hylafax" # directory for spooling area
+DIR_SBIN="/usr/sbin" # directory for system apps
+DIR_LOCKS="/var/lock" # directory for UUCP lock files
+FONTMAP="/usr/share/ghostscript/fonts" # directorys containing Fontmap files
+DIR_LOCALE="/usr/share/locale"
+#PATH_AFM="/usr/lib/DPS/AFM" # directorys for AFM files
+
+#
+# HTML-specific parameters; only used when the
+# HTML package is configured for installation.
+#
+# Note that ``PATH''s are the virtual pathnames used
+# in forming URLs; they are not directory pathnames
+# in the filesystem.
+#
+DIR_HTML="/usr/share/hylafax/httpd" # directory for HTML documentation
+#DIR_CGI="/var/httpd/cgi-bin" # directory for CGI scripts
+#HTMLPATH="/hylafax" # virtual path to HTML materials
+#CGIPATH="/cgi-bin" # virtual path to CGI scripts
+
+#
+# Miscellaneous parameters.
+#
+#DEFVRES="196" # default vertical res for outbound fax
+#FILLORDER="MS2LSB" # bit order of cpu (MSB2LSB/LSB2MSB)
+#AXGID="uucp" # group ID for fax user
+#FAXUID="uucp" # user ID for fax user
+#PAGESIZE="North American Letter" # default page size
+SYSGID="root" # group ID for system installs
+SYSUID="root" # user ID for system installs
+#LOCKS="ascii" # default UUCP lockfile scheme
+#
+#PATH_GETTY="/etc/getty" # pathname of suitable getty program
+#PATH_VGETTY="/bin/vgetty" # pathname of voice getty program
+#PATH_EGETTY="/bin/egetty" # pathname of external getty program
+#PATH_SENDMAIL="/usr/lib/sendmail" # pathname of suitable sendmail program
+#PATH_GSRIP="/usr/local/bin/gs" # pathname of Ghostscript-based RIP
+#PATH_DPSRIP="/var/spool/hylafax/bin/ps2fax.exe" # pathname of DPS-based RIP
+#PATH_IMPRIP="/usr/lib/print/psrip" # pathname of Impressario 2.1 RIP
+#MANSCHEME="sysv-source-cat-strip" # manual page installation scheme
+#SYSVINIT="auto" # install SysV-style init support (auto|yes|no)
+#DIR_SYSVINIT="/etc/init.d" # location of SysV-style init script
+#DIR_SYSVINITSTART="../rc2.d" # location of SysV-style start script
+#DIR_SYSVINITSTOP="../rc0.d" # location of SysV-style stop script
+#NAME_SYSVINITSTART="S80fax" # name of SysV-style start script
+#NAME_SYSVINITSTOP="K80fax" # name of SysV-style stop script
+#FAXQ_SERVER=yes # init script starts faxq
+#HFAXD_SERVER=yes # init script starts hfaxd
+#HFAXD_OLD_PROTOCOL=no # don't start old protocol
+#HFAXD_SNPP_SERVER=no # don't start paging protocol
+
+# SVR4 packaging stuff
+#PKG_ARCH= # ARCH variable in pkginfo file
+#PKG_EMAIL=someone@somehost.somedomain # EMAIL variable in pkginfo file
+#PKG_VENDOR="Your Name Here" # VENDOR variable in pkginfo file
+#
+
+#
+# Parameters used when building the software.
+#
+# Note that configure has several ENVOPTS built into it that are
+# set according to the target. This is done to help naive folks.
+#
+# Beware of changing the INSTALL definition; you *must* have an
+# install script that emulates the Silicon Graphics install program!
+#
+#AR="/bin/ar" # pathname of suitable ar program
+#AROPTS="rc" # options to ar for creating archive
+#CC="gcc" # name/pathname of C compiler
+#CXX="gcc" # name/pathname of C++ compiler
+#CXXFILE="-x c++" # options for proper C++ processing
+#ENVOPTS="-Aa" # options for getting ANSI C
+#GCOPTS="-g" # options to pass C compiler
+#GCXXOPTS="-g" # options to pass C++ compiler
+#GENDIST="/sbin/gendist" # pathname of SGI inst generator program
+#INSTALL='${SHELL} ${PORT}/install.sh' # SGI install program/emulator
+#LIBMALLOC="auto" # yes|no|auto configure -lmalloc use
+#LIBPORT='${PORT}/libport.a' # library with emulation code
+#LIBSUN="auto" # yes|no|auto configure -lsun use
+#LLDOPTS="" # extra link line options
+#MACHDEPLIBS="" # extra libraries for linking
+#PORTFUNCS="" # non-standard functions to emulate
+#PROTOTYPES="-prototypes" # C compiler options for checking function prototypes
+#RANLIB=":" # pathname of suitable ranlib program
+#SHDLIBC="-lc_s" # shared C library, if not standard
+#SIGHANDLERTYPES='(void(*)(int,...))' # types to check for signal handler
+#STRIP="/bin/strip" # strip program used by install.sh
+
+#
+# The source for the TIFF library is not required
+# to build this software, but the library is required
+# to link against. If libtiff is installed in a
+# non-standard location then setup LIBTIFF accordingly.
+#
+#LIBTIFF="-L/usr/local/lib -ltiff" # linkage convention for libtiff
+#TIFFINC="/usr/local/include" # place to find tiffio.h
+#TIFFBIN="/usr/local/bin" # where TIFF tools live
+
+#
+# The source for the ZLIB library is not required
+# to build this software, but the library is required
+# to link against. If ZLIB is installed in a
+# non-standard location then setup LIBZ accordingly.
+#
+#LIBZ="-L/usr/local/lib -lz" # linkage convention for libz
+#ZLIBINC="-I/usr/local/include" # place to find zlib.h
+
+#
+# The source for the POSIX regular expression package
+# is not required to build this software, but the package
+# is required to link against. If the copy of the software
+# that is included in this distribution is not to be used
+# then set REGEX=no and supply the following definitions.
+#
+#LIBREGEX=" " # linkage convention for regex package
+#REGEXINC="/usr/include" # place to find regex.h
+
+#
+# The LIBDB hashed database package is (currently) used
+# only by the MLA tools that are not publicly available
+# but which are built from within this source tree. In
+# the future the fax software may use the libdb software
+# for the remote client capabilities database (so these
+# hooks are included now).
+#
+# The source for the LIBDB hashed database package
+# is not required to build this software, but the package
+# is required to link against. If the copy of the software
+# that is included in this distribution is not to be used
+# then set DBLIB=no and supply the following definitions.
+#
+#LIBDB=" " # linkage convention for libdb package
+#DBLIBINC="/usr/include" # place to find db.h
+
+#
+# Parameters to control various workarounds for system bugs.
+#
+# These parameters are normally set in configure based on
+# the target system. If they are set here, then they will
+# override anything done by configure.
+#
+#CONFIG_OPENFIFO="O_RDONLY" # mode to open FIFOs in server proc's
+#CONFIG_FIFOBUG="yes" # enable workaround for FIFO select bug
+#CONFIG_TIOCMBISBYREF="yes" # pass arg by reference to ioctl
+#CONFIG_WINSZHACK="no" # include extra files for TIOCWINSZ use
+#CONFIG_ABORTBUG="no" # enable workaround for abort problems
+#CONFIG_NOREOPEN="yes" # reopen tty device after toggling DTR
+#CONFIG_NOSTDINDUP="yes" # do not redirect stdout to stdin in ondelay
+#CONFIG_BADEXECVPROTO="no" # system has incorrect execv func decl
+#CONFIG_BADEXECVEPROTO="no" # system has incorrect execve func decl
+#CONFIG_BADGETOPTPROTO="no" # system has incorrect getopt func decl
+#CONFIG_SOCKARGLENTYPE="unsigned long" # call-by-ref arg type for socket funcs
+#CONFIG_BADSELECTPROTO="no" # system has way old select func decl
+#CONFIG_MAXGID="5999" # maximum permissable GID
+#CONFIG_OSFCNH="auto" # control inclusion of <osfcn.h>
+
+#
+# Dynamic Shared Object (DSO) support.
+#
+# Beware that adding new support for DSOs may require some
+# modifications to the */Makefile.dso files.
+#
+#DSOSUF="so" # DSO filename suffix
+#DSODELAY="-delay_load" # DSO option for delayed loading
+#DSOOPTS="-shared -rdata_shared" # options for building DSOs
+
+#
+# Makefile construction parameters.
+#
+# These should not normally be set; configure will
+# deduce the appropriate syntax to use for includes.
+#
+#MAKECXXOVERRIDE="=.C" # make override stuff for SunPRO C++
+#MAKEDEPINCLUDE="include" # make include for dependency files
+#MAKEDSOINCLUDE="#" # make include for DSO support
+#MAKEINCLUDE=".include" # make include syntax
+#MAKELQUOTE="<" # make include syntax
+#MAKERQUOTE=">" # make include syntax
+#SETMAKE='MAKE = ${MAKE}' # define if make does not setup $MAKE
+#MKDEPCOPTS="" # C compiler opts to supply w/ -M
+#MKDEPCXXOPTS="" # C++ compiler opts to supply w/ -M
+
+#
+# General system stuff used by the distribution.
+#
+# Beware of setting these as configure selects several programs
+# based on whether or not they are capable of processing scripts
+# included in the distribution (e.g AWK and SCRIPT_SH, SED).
+#
+#AWK="/bin/awk" # pathname of suitable awk program
+#CAT="/bin/cat" # pathname of suitable cat program
+#CHGRP="/etc/chgrp" # pathname of suitable chgrp program
+#CHMOD="/etc/chmod" # pathname of suitable chmod program
+#CHOWN="/etc/chown" # pathname of suitable chown program
+#CMP="/bin/cmp" # pathname of suitable cmp program
+#COL="/bin/col" # pathname of suitable col program
+#CP="/bin/cp" # pathname of suitable cp program
+#ECHO="/bin/echo" # pathname of suitable echo program
+#GREP="/bin/grep" # pathname of suitable grep program
+#LN="/bin/ln" # pathname of suitable ln program
+#LN_S="-s" # option to ${LN} to create symlink
+#MAN="/usr/bin/man" # pathname of suitable man program
+#MKDIR="/bin/mkdir" # pathname of suitable mkdir program
+#MKFIFO="/bin/mkfifo" # pathname of suitable mkfifo program
+#MV="/bin/mv" # pathname of suitable mv program
+#MV_F="-f" # option to ${MV} to force operation
+#RMCMD="/bin/rm" # pathname of suitable rm program
+#SED="/bin/sed" # pathname of suitable sed program
+#SCRIPT_SH="/bin/sh" # pathname of suitable shell
+#SORT="/bin/sort" # pathname of suitable sort program
diff --git a/extra/hylafax/hylafax b/extra/hylafax/hylafax
new file mode 100755
index 000000000..9f949c2ac
--- /dev/null
+++ b/extra/hylafax/hylafax
@@ -0,0 +1,71 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+DAEMON_NAME="hylafax"
+FAXQ_BIN=/usr/sbin/faxq
+FAXQ_PID=`pidof -o %PPID $FAXQ_BIN`
+HFAXD_BIN=/usr/lib/fax/hfaxd
+HFAXD_PID=`pidof -o %PPID $HFAXD_BIN`
+HFAXD_OPTS="-i hylafax"
+FAXQUIT_BIN=/usr/sbin/faxquit
+
+. /var/spool/hylafax/etc/setup.cache
+
+case "$1" in
+ start)
+ stat_busy "Starting $DAEMON_NAME"
+ [ -z "$FAXQ_PID" ] && $FAXQ_BIN
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `pidof -o %PPID $FAXQ_BIN` > /var/run/faxq.pid
+ fi
+ [ -z "$HFAXD_PID" ] && $HFAXD_BIN $HFAXD_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo `pidof -o %PPID $HFAXD_BIN` > /var/run/hfaxd.pid
+ fi
+ add_daemon $DAEMON_NAME
+ stat_done
+ ;;
+
+ stop)
+ stat_busy "Stopping $DAEMON_NAME"
+ $FAXQUIT_BIN >/dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ [ ! -z "$FAXQ_PID" ] && kill $FAXQ_PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm /var/run/faxq.pid &> /dev/null
+ fi
+ else
+ rm /var/run/faxq.pid &> /dev/null
+ fi
+ [ ! -z "$HFAXD_PID" ] && kill $HFAXD_PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm /var/run/hfaxd.pid &> /dev/null
+ fi
+ rm_daemon $DAEMON_NAME
+ stat_done
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/hylafax/hylafax.cron.daily b/extra/hylafax/hylafax.cron.daily
new file mode 100644
index 000000000..2d1a77e5c
--- /dev/null
+++ b/extra/hylafax/hylafax.cron.daily
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+/usr/sbin/faxqclean
+/usr/sbin/faxcron -rcv 30
diff --git a/extra/hylafax/hylafax.install b/extra/hylafax/hylafax.install
new file mode 100644
index 000000000..d9d991e6b
--- /dev/null
+++ b/extra/hylafax/hylafax.install
@@ -0,0 +1,49 @@
+
+print_install() {
+ printf "\n"
+ echo "If installing new:"
+ printf "\n"
+ echo "Add the following to /etc/inittab and run telinit q"
+ echo " f1:2345:respawn:/usr/lib/fax/faxgetty ttyS0"
+ echo "faxgetty should now be running"
+ printf "\n"
+ echo "Run faxsetup to configure and be sure to set..."
+ echo " The device to configure is usually ttyS0"
+ echo " The number of pages to accept to more than 25"
+ echo " The country code and area code"
+ echo " The faxclass to 2.0"
+ echo " Most other defaults are OK"
+ printf "\n"
+}
+
+print_remove() {
+ printf "\n\n"
+ echo "You may manually remove /var/spool/hylafax and /usr/lib/fax if you do not need anything."
+ echo "You may also remove any aliases added to /etc/mail/aliases."
+ printf "\n"
+}
+
+post_install() {
+ groupadd -g 14 uucp &>/dev/null
+ useradd -u 10 -g uucp -d '/' -s /bin/false uucp &>/dev/null
+ useradd -u 69 -g daemon -d '/' -s /bin/false fax &>/dev/null
+ print_install
+}
+
+post_upgrade() {
+ post_install
+ usermod -d '/' uucp
+ usermod -d '/' fax
+}
+
+pre_remove() {
+ userdel uucp &>/dev/null
+ groupdel uucp &>/dev/null
+ userdel fax &>/dev/null
+ print_remove
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/extra/hyphen/PKGBUILD b/extra/hyphen/PKGBUILD
new file mode 100644
index 000000000..c50ecd886
--- /dev/null
+++ b/extra/hyphen/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 104194 2010-12-30 18:07:33Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgbase=hyphen
+pkgname=('hyphen' 'hyphen-en')
+pkgver=2.7.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://hunspell.sf.net"
+license=('GPL' 'LGPL' 'MPL')
+groups=()
+makedepends=('glibc' 'perl')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/hunspell/${pkgname}-${pkgver}.tar.gz)
+md5sums=('48a9f787f43a09c0a9b7b00cd1fddbbf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # libtool fix
+# autoreconf -vfi
+
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package_hyphen() {
+ pkgdesc="library for high quality hyphenation and justification"
+ depends=('glibc' 'perl')
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install-libLTLIBRARIES
+ make DESTDIR="$pkgdir/" install-binSCRIPTS
+ make DESTDIR="$pkgdir/" install-includeHEADERS
+
+ # license
+ install -D -m644 COPYING "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_hyphen-en() {
+ pkgdesc="English hyphenation rules"
+ # arch=('any')
+ optdepends=('hyphen: offers hyphenation library functions')
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install-hyphDATA
+
+ pushd ${pkgdir}/usr/share/hyphen/
+ en_US_aliases="en_AG en_AU en_BS en_BW en_BZ en_CA en_DK en_GB en_GH en_HK en_IE en_IN en_JM en_NA en_NZ en_PH en_SG en_TT en_ZA en_ZW"
+ for lang in $en_US_aliases; do
+ ln -s hyph_en_US.dic hyph_$lang.dic
+ done
+ popd
+
+ # the symlinks
+ install -dm755 ${pkgdir}/usr/share/myspell/dicts
+ pushd $pkgdir/usr/share/myspell/dicts
+ for file in $pkgdir/usr/share/hyphen/*; do
+ ln -sv /usr/share/hyphen/$(basename $file) .
+ done
+ popd
+} \ No newline at end of file
diff --git a/extra/i8kutils/PKGBUILD b/extra/i8kutils/PKGBUILD
new file mode 100644
index 000000000..51329a77f
--- /dev/null
+++ b/extra/i8kutils/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 66619 2010-02-01 02:26:09Z giovanni $
+# Contributor: Eric Johnson <eric@coding-zone.com>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=i8kutils
+pkgver=1.33
+pkgrel=1
+pkgdesc="Dell Inspiron/Latitude kernel driver and utilities"
+url="http://people.debian.org/~dz/i8k/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('glibc')
+source=(http://ftp.archlinux.org/other/i8kutils/$pkgname\_$pkgver.tar.gz)
+md5sums=('1ab077b301dbb0f4be8ef52eb3b97628')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make || return 1
+
+ # no configure script, and Makefile has /usr hardcoded
+ install -D -m755 i8kctl $pkgdir/usr/bin/i8kctl || return 1
+ install -D -m755 i8kbuttons $pkgdir/usr/bin/i8kbuttons || return 1
+ install -D -m755 i8kbuttons $pkgdir/usr/bin/i8kbuttons || return 1
+ install -D -m644 i8kbuttons.1 $pkgdir/usr/share/man/man1/i8kbuttons.1 || return 1
+ install -D -m644 i8kctl.1 $pkgdir/usr/share/man/man1/i8kctl.1 || return 1
+ ln -fs ./i8kctl $pkgdir/usr/bin/i8kfan || return 1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/icecast/PKGBUILD b/extra/icecast/PKGBUILD
new file mode 100644
index 000000000..f30833ed4
--- /dev/null
+++ b/extra/icecast/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 109082 2011-02-05 20:09:03Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+pkgname=icecast
+pkgver=2.3.2
+pkgrel=5
+pkgdesc="Streaming audio over the Internet"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.icecast.org/"
+depends=('libxslt' 'libvorbis' 'curl' 'speex' 'libtheora')
+backup=('etc/icecast.xml'
+ 'etc/logrotate.d/icecast')
+source=("http://downloads.us.xiph.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'icecastd' 'icecast.logrotate'
+ 'start-by-nobody.patch')
+md5sums=('ff516b3ccd2bcc31e68f460cd316093f'
+ 'e823c1fdb080aae3d0c54ef8be95f7cb'
+ '59c6552bcb1dd9fb542af8670dfabd3c'
+ 'd8e929d2214123a1954da4383bf16583')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 -i ${srcdir}/start-by-nobody.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # install man-page
+ sed -i -e 's/icecast2/icecast/g' debian/icecast2.1
+ install -Dm644 debian/icecast2.1 \
+ ${pkgdir}/usr/share/man/man1/icecast.1
+
+ # init file
+ install -Dm755 ${srcdir}/icecastd \
+ ${pkgdir}/etc/rc.d/icecast
+ # rotate the logs (taken from Fedora)
+ install -Dm644 ${srcdir}/icecast.logrotate \
+ ${pkgdir}/etc/logrotate.d/icecast
+
+ # install log dir
+ install -d -g99 -o99 ${pkgdir}/var/log/icecast
+}
diff --git a/extra/icecast/icecast.logrotate b/extra/icecast/icecast.logrotate
new file mode 100644
index 000000000..0fb014c06
--- /dev/null
+++ b/extra/icecast/icecast.logrotate
@@ -0,0 +1,8 @@
+/var/log/icecast/*log {
+ missingok
+ notifempty
+ sharedscripts
+ postrotate
+ endscript
+}
+
diff --git a/extra/icecast/icecastd b/extra/icecast/icecastd
new file mode 100644
index 000000000..e6c91b08c
--- /dev/null
+++ b/extra/icecast/icecastd
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+timeo=30
+
+getPID() {
+ pgrep -u nobody icecast 2>/dev/null
+}
+
+case $1 in
+ start)
+ stat_busy "Starting Icecast Server"
+ if getPID >/dev/null; then
+ # already running
+ stat_fail
+ exit 1
+ else
+ /usr/bin/icecast -b -c /etc/icecast.xml &>/dev/null
+ while (( timeo > 0 )); do
+ if getPID >/dev/null; then
+ add_daemon icecast
+ stat_done
+ exit 0
+ fi
+ sleep 1
+ (( timeo-- ))
+ done
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping Icecast Server"
+ if ! getPID >/dev/null; then
+ # not running
+ stat_done
+ exit 1
+ fi
+ if ! kill $(getPID) &> /dev/null; then
+ stat_fail
+ exit 1
+ fi
+ while (( timeo > 0 )); do
+ if getPID >/dev/null; then
+ rm_daemon icecast
+ stat_done
+ exit 0
+ fi
+ sleep 1
+ (( timeo-- ))
+ done
+ stat_fail
+ exit 1
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/icecast/start-by-nobody.patch b/extra/icecast/start-by-nobody.patch
new file mode 100644
index 000000000..d218e5afe
--- /dev/null
+++ b/extra/icecast/start-by-nobody.patch
@@ -0,0 +1,15 @@
+--- icecast-2.3.2/conf/icecast.xml.in~ 2010-11-12 16:47:54.750000918 +0100
++++ icecast-2.3.2/conf/icecast.xml.in 2010-11-12 16:48:08.086667585 +0100
+@@ -164,11 +164,9 @@
+
+ <security>
+ <chroot>0</chroot>
+- <!--
+ <changeowner>
+ <user>nobody</user>
+- <group>nogroup</group>
++ <group>nobody</group>
+ </changeowner>
+- -->
+ </security>
+ </icecast>
diff --git a/extra/icedtea-web/PKGBUILD b/extra/icedtea-web/PKGBUILD
new file mode 100644
index 000000000..19cd1fd16
--- /dev/null
+++ b/extra/icedtea-web/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 117733 2011-04-04 17:37:15Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=icedtea-web
+pkgname=('icedtea-web' 'icedtea-web-doc')
+pkgver=1.0.2
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://icedtea.classpath.org/wiki/IcedTea-Web"
+license=('GPL2')
+makedepends=('openjdk6' 'zip' 'xulrunner')
+install=$pkgname.install
+source=(http://icedtea.classpath.org/download/source/$pkgname-$pkgver.tar.gz
+ fix-man-location.patch)
+md5sums=('4b5d80f4b82e53f4947e6782a0472d54'
+ '58e305aa0d27d59f543d9cfddc6e175a')
+
+build() {
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np0 -i $srcdir/fix-man-location.patch
+ autoreconf -v
+ ./configure --prefix=/usr/lib/jvm/java-6-openjdk \
+ --datarootdir=/usr/share
+ make
+}
+
+package_icedtea-web() {
+
+ pkgdesc="provides a Free Software web browser plugin running applets written in the Java programming language and an implementation of Java Web Start, originally based on the NetX project"
+ depends=('openjdk6' 'gtk2' 'desktop-file-utils')
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ _arch=amd64
+ else
+ _arch=i586
+ fi
+
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ # Install desktop files.
+ install -m755 -d ${pkgdir}/usr/share/{applications,pixmaps}
+ install -m644 javaws.png ${pkgdir}/usr/share/pixmaps
+ install -m644 {javaws,itweb-settings}.desktop ${pkgdir}/usr/share/applications
+ # remove splitted doc files
+ rm -vrf ${pkgdir}/usr/share/doc
+
+ # link binaries into /usr/bin + jre/bin
+ install -m755 -d ${pkgdir}/usr/bin
+ pushd ${pkgdir}/${_jvmdir}/bin
+ for file in *; do
+ ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/usr/bin
+ ln -sf ${_jvmdir}/bin/${file} ${pkgdir}/${_jvmdir}/jre/bin
+ done
+ popd
+
+ # link the mozilla-plugin - test it here http://www.java.com/en/download/help/testvm.xml
+ install -m755 -d ${pkgdir}/usr/lib/mozilla/plugins/
+ ln -sf ${_jvmdir}/jre/lib/${_arch/i586/i386}/IcedTeaPlugin.so ${pkgdir}/usr/lib/mozilla/plugins/
+}
+
+package_icedtea-web-doc() {
+
+ pkgdesc="icedtea-web browser plugin + Java WebStart - documentation files"
+
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd "$srcdir/$pkgbase-$pkgver"
+ install -m755 -d $pkgdir/${_jvmdir}/jre/lib
+ make DESTDIR="$pkgdir" install-data-local
+ # remove javaws about and man page
+ rm -vrf ${pkgdir}/usr/lib
+ rm -vrf ${pkgdir}/usr/share/man
+}
+
+# plugin test here http://www.java.com/en/download/help/testvm.xml \ No newline at end of file
diff --git a/extra/icedtea-web/fix-man-location.patch b/extra/icedtea-web/fix-man-location.patch
new file mode 100644
index 000000000..8108c7182
--- /dev/null
+++ b/extra/icedtea-web/fix-man-location.patch
@@ -0,0 +1,13 @@
+--- Makefile.am 2011-02-02 03:43:25.000000000 +0100
++++ Makefile.am.new 2011-02-03 14:37:55.556053388 +0100
+@@ -130,8 +130,8 @@
+ endif
+
+ install-data-local:
+- ${mkinstalldirs} -d $(DESTDIR)$(prefix)/man/man1
+- ${INSTALL_DATA} $(NETX_SRCDIR)/javaws.1 $(DESTDIR)$(prefix)/man/man1
++ ${mkinstalldirs} -d $(DESTDIR)$(mandir)/man1
++ ${INSTALL_DATA} $(NETX_SRCDIR)/javaws.1 $(DESTDIR)$(mandir)/man1
+ ${INSTALL_DATA} $(NETX_RESOURCE_DIR)/about.jnlp $(DESTDIR)$(prefix)$(JRE_DIR_PREFIX)/lib
+ if ENABLE_DOCS
+ ${mkinstalldirs} $(DESTDIR)$(htmldir)
diff --git a/extra/icedtea-web/icedtea-web.install b/extra/icedtea-web/icedtea-web.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/extra/icedtea-web/icedtea-web.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/extra/icewm/ChangeLog b/extra/icewm/ChangeLog
new file mode 100644
index 000000000..b3e46cb6f
--- /dev/null
+++ b/extra/icewm/ChangeLog
@@ -0,0 +1,15 @@
+2010-01-18 Eric Belanger <eric@archlinux.org>
+
+ * icewm 1.2.37-3
+ * Rebuilt for libpng 1.4 and libjpeg 8
+
+2009-01-30 Eric Belanger <eric@archlinux.org>
+
+ * icewm 1.2.37-1
+ * Upstream update
+
+2008-10-18 Eric Belanger <eric@archlinux.org>
+
+ * icewm 1.2.36-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/extra/icewm/PKGBUILD b/extra/icewm/PKGBUILD
new file mode 100644
index 000000000..c8e7f282c
--- /dev/null
+++ b/extra/icewm/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 63924 2010-01-19 03:33:08Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@gmx.net>
+
+pkgname=icewm
+pkgver=1.2.37
+pkgrel=3
+pkgdesc="A Window Manager designed for speed, usability, and consistency"
+arch=('i686' 'x86_64')
+url="http://www.icewm.org/"
+license=('LGPL')
+depends=('gcc-libs' 'imlib' 'libxrandr' 'libxft' 'libsm' 'libxinerama' 'giflib')
+source=(http://downloads.sourceforge.net/sourceforge/icewm/${pkgname}-${pkgver}.tar.gz icewm.desktop)
+md5sums=('970a21588d26eb361020fd60a61a482c' 'a3ed467f0199792205b04272402a9945')
+sha1sums=('bee1ca66d2282888807551bc28a65b08e4108027' '7dcb1f2c89792a35b687182584ed9baa0d34cc80')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --with-imlib \
+ --enable-shaped-decorations --enable-gradients || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install install-man install-docs || return 1
+ install -D -m644 "${srcdir}/icewm.desktop" "${pkgdir}/etc/X11/sessions/icewm.desktop" || return 1
+}
diff --git a/extra/icewm/icewm.desktop b/extra/icewm/icewm.desktop
new file mode 100644
index 000000000..e5ff5dce6
--- /dev/null
+++ b/extra/icewm/icewm.desktop
@@ -0,0 +1,6 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=XSession
+Exec=/usr/bin/icewm-session
+TryExec=/usr/bin/icewm-session
+Name=icewm
diff --git a/extra/icon-naming-utils/PKGBUILD b/extra/icon-naming-utils/PKGBUILD
new file mode 100644
index 000000000..0fcffc493
--- /dev/null
+++ b/extra/icon-naming-utils/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 33029 2009-04-03 21:35:27Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=icon-naming-utils
+pkgver=0.8.90
+pkgrel=1
+pkgdesc="Maps the new names of icons for Tango to the legacy names used by the GNOME and KDE desktops."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://tango.freedesktop.org/"
+depends=('perl-xml-simple')
+source=(http://tango.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('dd8108b56130b9eedc4042df634efa66')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/icon-naming-utils \
+ --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ mv "${pkgdir}/usr/share/pkgconfig" "${pkgdir}/usr/lib/pkgconfig" || return 1
+}
diff --git a/extra/icu/PKGBUILD b/extra/icu/PKGBUILD
new file mode 100644
index 000000000..b6a8f2be3
--- /dev/null
+++ b/extra/icu/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 114724 2011-03-15 19:35:12Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Art Gramlich <art@gramlich-net.com>
+
+pkgname=icu
+pkgver=4.6.1
+pkgrel=1
+pkgdesc="International Components for Unicode library"
+arch=(i686 x86_64)
+url="http://www.icu-project.org/"
+license=('custom:"icu"')
+depends=('gcc-libs' 'sh')
+source=(http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver//./_}-src.tgz
+ #http://download.icu-project.org/files/${pkgname}4c/${pkgver}/${pkgname}4c-${pkgver/./_}-src.tgz
+)
+md5sums=('da64675d85f0c2191cef93a8cb5eea88')
+
+build() {
+ cd ${srcdir}/icu/source
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/icu/source
+ make -j1 DESTDIR=${pkgdir} install
+
+ # Install license
+ install -Dm644 ${srcdir}/icu/license.html ${pkgdir}/usr/share/licenses/icu/license.html
+}
diff --git a/extra/id3/PKGBUILD b/extra/id3/PKGBUILD
new file mode 100644
index 000000000..046797e07
--- /dev/null
+++ b/extra/id3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 42386 2009-06-13 14:30:24Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=id3
+pkgver=0.78
+pkgrel=2
+pkgdesc="Utility to edit id3v1 and id3v2 tags"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('gcc-libs')
+source=(http://home.wanadoo.nl/squell/files/${pkgname}-${pkgver}.tar.gz
+ id3-0.78-gcc44.patch)
+url="http://home.wanadoo.nl/squell/id3.html"
+md5sums=('bbc2a5d8022006330e6bb51034fafb43'
+ '51370be8d2624efee3683efab608a7f1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/id3-0.78-gcc44.patch || return 1
+ make || return 1
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+
+ #install license
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/extra/id3/id3-0.78-gcc44.patch b/extra/id3/id3-0.78-gcc44.patch
new file mode 100644
index 000000000..63c4d93b1
--- /dev/null
+++ b/extra/id3/id3-0.78-gcc44.patch
@@ -0,0 +1,29 @@
+--- a/charconv.cpp 2006-02-14 16:44:58.000000000 -0500
++++ b/charconv.cpp 2009-06-12 17:59:54.332486433 -0400
+@@ -5,6 +5,7 @@
+ #include <cstdlib>
+ #include <clocale>
+ #include <climits>
++#include <cstring>
+ #if defined(__STDC_ISO_10646__) || defined(__WIN32__)
+ # include <wchar.h>
+ # define fallback(call) (0)
+--- a/getid3v2.cpp 2006-02-10 22:23:14.000000000 -0500
++++ b/getid3v2.cpp 2009-06-12 18:06:49.582446332 -0400
+@@ -1,5 +1,6 @@
+ #include <vector>
+ #include <cstdio>
++#include <cstring>
+ #include "char_ucs.h"
+ #include "id3v2.h"
+ #include "getid3v2.h"
+--- a/setfname.cpp 2006-03-19 06:13:36.000000000 -0500
++++ b/setfname.cpp 2009-06-12 18:09:35.759097380 -0400
+@@ -1,6 +1,7 @@
+ #include <cstdio>
+ #include <cctype>
+ #include <ctime> // borland needs this
++#include <cstring>
+ #include <sys/stat.h>
+ #include <utime.h>
+ #if defined(__WIN32__)
diff --git a/extra/id3lib/PKGBUILD b/extra/id3lib/PKGBUILD
new file mode 100644
index 000000000..44263c9c9
--- /dev/null
+++ b/extra/id3lib/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 2130 2008-05-26 00:08:23Z eric $
+# Maintainer:
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+pkgname=id3lib
+pkgver=3.8.3
+pkgrel=10
+pkgdesc="An open-source, cross-platform software development library for reading, writing, and manipulating ID3v1 and ID3v2 tags"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://id3lib.sourceforge.net/"
+depends=('zlib' 'gcc-libs')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ patch_id3lib_3.8.3_UTF16_writing_bug.diff
+ id3lib-3.8.3-CVE-2007-4460.patch
+ id3lib-3.8.3-gcc-4.3.patch)
+md5sums=('19f27ddd2dda4b2d26a559a4f0f402a7' '196c65adee1ba511ddacef2de0dfd102'\
+ '78e90e15ddd1122b66da352b6c3b00ff' 'fdbffd2d9d289ed0d730950c78d4ebc4')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ patch -Np1 -i ${startdir}/src/patch_id3lib_3.8.3_UTF16_writing_bug.diff || return 1
+ patch -Np0 -i ${startdir}/src/id3lib-3.8.3-CVE-2007-4460.patch || return 1
+ patch -Np1 -i ${startdir}/src/id3lib-3.8.3-gcc-4.3.patch || return 1
+ ./configure --prefix=/usr
+ sed -i -e 's/^LIBS =/LIBS = -lz -lstdc++/' src/Makefile || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch b/extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch
new file mode 100644
index 000000000..daa08667b
--- /dev/null
+++ b/extra/id3lib/id3lib-3.8.3-CVE-2007-4460.patch
@@ -0,0 +1,49 @@
+--- src/tag_file.cpp
++++ src/tag_file.cpp
+@@ -242,8 +242,8 @@
+ strcpy(sTempFile, filename.c_str());
+ strcat(sTempFile, sTmpSuffix.c_str());
+
+-#if ((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
+- // This section is for Windows folk && gcc 3.x folk
++#if !defined(HAVE_MKSTEMP)
++ // This section is for Windows folk
+ fstream tmpOut;
+ createFile(sTempFile, tmpOut);
+
+@@ -257,7 +257,7 @@
+ tmpOut.write((char *)tmpBuffer, nBytes);
+ }
+
+-#else //((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
++#else //!defined(HAVE_MKSTEMP)
+
+ // else we gotta make a temp file, copy the tag into it, copy the
+ // rest of the old file after the tag, delete the old file, rename
+@@ -270,7 +270,7 @@
+ //ID3_THROW_DESC(ID3E_NoFile, "couldn't open temp file");
+ }
+
+- ofstream tmpOut(fd);
++ ofstream tmpOut(sTempFile);
+ if (!tmpOut)
+ {
+ tmpOut.close();
+@@ -285,14 +285,14 @@
+ uchar tmpBuffer[BUFSIZ];
+ while (file)
+ {
+- file.read(tmpBuffer, BUFSIZ);
++ file.read((char *)tmpBuffer, BUFSIZ);
+ size_t nBytes = file.gcount();
+- tmpOut.write(tmpBuffer, nBytes);
++ tmpOut.write((char *)tmpBuffer, nBytes);
+ }
+
+ close(fd); //closes the file
+
+-#endif ////((defined(__GNUC__) && __GNUC__ >= 3 ) || !defined(HAVE_MKSTEMP))
++#endif ////!defined(HAVE_MKSTEMP)
+
+ tmpOut.close();
+ file.close();
diff --git a/extra/id3lib/id3lib-3.8.3-gcc-4.3.patch b/extra/id3lib/id3lib-3.8.3-gcc-4.3.patch
new file mode 100644
index 000000000..f5ec498b6
--- /dev/null
+++ b/extra/id3lib/id3lib-3.8.3-gcc-4.3.patch
@@ -0,0 +1,83 @@
+diff -Naur id3lib-3.8.3-orig/configure id3lib-3.8.3/configure
+--- id3lib-3.8.3-orig/configure 2008-05-24 23:39:36.000000000 -0400
++++ id3lib-3.8.3/configure 2008-05-24 23:39:57.000000000 -0400
+@@ -10296,8 +10296,7 @@
+
+ for ac_header in \
+ string \
+- iomanip.h \
+
+ do
+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+
+diff -Naur id3lib-3.8.3-orig/include/id3/id3lib_strings.h id3lib-3.8.3/include/id3/id3lib_strings.h
+--- id3lib-3.8.3-orig/include/id3/id3lib_strings.h 2008-03-05 18:19:46.000000000 -0600
++++ id3lib-3.8.3/include/id3/id3lib_strings.h 2008-03-05 18:19:38.000000000 -0600
+@@ -30,6 +30,7 @@
+ #define _ID3LIB_STRINGS_H_
+
+ #include <string>
++#include <cstring>
+
+ #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
+ namespace std
+diff -Naur id3lib-3.8.3-orig/include/id3/writers.h id3lib-3.8.3/include/id3/writers.h
+--- id3lib-3.8.3-orig/include/id3/writers.h 2003-03-01 18:23:00.000000000 -0600
++++ id3lib-3.8.3/include/id3/writers.h 2008-03-05 18:23:05.000000000 -0600
+@@ -30,7 +30,7 @@
+
+ #include "id3/writer.h"
+ #include "id3/id3lib_streams.h"
+-//#include <string.h>
++#include <string.h>
+
+ class ID3_CPP_EXPORT ID3_OStreamWriter : public ID3_Writer
+ {
+diff -Naur id3lib-3.8.3-orig/examples/demo_convert.cpp id3lib-3.8.3/examples/demo_convert.cpp
+--- id3lib-3.8.3-orig/examples/demo_convert.cpp 2003-03-01 18:23:00.000000000 -0600
++++ id3lib-3.8.3/examples/demo_convert.cpp 2008-03-05 18:26:50.000000000 -0600
+@@ -84,7 +84,7 @@
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ flags_t ulFlag = ID3TT_ALL;
+ gengetopt_args_info args;
+diff -Naur id3lib-3.8.3-orig/examples/demo_info.cpp id3lib-3.8.3/examples/demo_info.cpp
+--- id3lib-3.8.3-orig/examples/demo_info.cpp 2003-03-01 18:23:00.000000000 -0600
++++ id3lib-3.8.3/examples/demo_info.cpp 2008-03-05 18:27:40.000000000 -0600
+@@ -309,7 +309,7 @@
+
+ #define DEBUG
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ ID3D_INIT_DOUT();
+
+diff -Naur id3lib-3.8.3-orig/examples/demo_tag.cpp id3lib-3.8.3/examples/demo_tag.cpp
+--- id3lib-3.8.3-orig/examples/demo_tag.cpp 2003-03-01 18:23:00.000000000 -0600
++++ id3lib-3.8.3/examples/demo_tag.cpp 2008-03-05 18:31:20.000000000 -0600
+@@ -46,7 +46,7 @@
+ os << "v2";
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
+diff -Naur id3lib-3.8.3-orig/examples/demo_copy.cpp id3lib-3.8.3/examples/demo_copy.cpp
+--- id3lib-3.8.3-orig/examples/demo_copy.cpp 2003-03-01 18:23:00.000000000 -0600
++++ id3lib-3.8.3/examples/demo_copy.cpp 2008-03-05 18:32:44.000000000 -0600
+@@ -81,7 +81,7 @@
+ }
+ }
+
+-int main( unsigned int argc, char * const argv[])
++int main( int argc, char * const argv[])
+ {
+ int ulFlag = ID3TT_ID3;
+ ID3D_INIT_DOUT();
diff --git a/extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff b/extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff
new file mode 100644
index 000000000..b05d2cf29
--- /dev/null
+++ b/extra/id3lib/patch_id3lib_3.8.3_UTF16_writing_bug.diff
@@ -0,0 +1,39 @@
+diff -ruN id3lib-3.8.3.orig/ChangeLog id3lib-3.8.3/ChangeLog
+--- id3lib-3.8.3.orig/ChangeLog 2003-03-02 01:23:00.000000000 +0100
++++ id3lib-3.8.3/ChangeLog 2006-02-22 00:33:59.946214472 +0100
+@@ -1,3 +1,8 @@
++2006-02-17 Jerome Couderc
++
++ * Patch from Spoon to fix UTF-16 writing bug
++ http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
++
+ 2003-03-02 Sunday 17:38 Thijmen Klok <thijmen@id3lib.org>
+
+ * THANKS (1.20): added more people
+diff -ruN id3lib-3.8.3.orig/src/io_helpers.cpp id3lib-3.8.3/src/io_helpers.cpp
+--- id3lib-3.8.3.orig/src/io_helpers.cpp 2003-03-02 01:23:00.000000000 +0100
++++ id3lib-3.8.3/src/io_helpers.cpp 2006-02-22 00:35:02.926639992 +0100
+@@ -363,11 +363,22 @@
+ // Write the BOM: 0xFEFF
+ unicode_t BOM = 0xFEFF;
+ writer.writeChars((const unsigned char*) &BOM, 2);
++ // Patch from Spoon : 2004-08-25 14:17
++ // http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
++ // Wrong code
++ //for (size_t i = 0; i < size; i += 2)
++ //{
++ // unicode_t ch = (data[i] << 8) | data[i+1];
++ // writer.writeChars((const unsigned char*) &ch, 2);
++ //}
++ // Right code
++ unsigned char *pdata = (unsigned char *) data.c_str();
+ for (size_t i = 0; i < size; i += 2)
+ {
+- unicode_t ch = (data[i] << 8) | data[i+1];
++ unicode_t ch = (pdata[i] << 8) | pdata[i+1];
+ writer.writeChars((const unsigned char*) &ch, 2);
+ }
++ // End patch
+ }
+ return writer.getCur() - beg;
+ }
diff --git a/extra/id3v2/PKGBUILD b/extra/id3v2/PKGBUILD
new file mode 100644
index 000000000..ab90dcfba
--- /dev/null
+++ b/extra/id3v2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 110376 2011-02-19 05:32:13Z eric $
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
+pkgname=id3v2
+pkgver=0.1.12
+pkgrel=1
+pkgdesc="Utility to edit id3v2 tags"
+arch=('i686' 'x86_64')
+url="http://id3v2.sourceforge.net/"
+license=('LGPL')
+depends=('gcc-libs' 'glibc' 'id3lib' 'zlib')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('be91b4a41710b3a926e913a24ba0ed3b')
+sha1sums=('8f42153b2f53098c221da2e8fe42170e727cd9ad')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make clean
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d -m755 "${pkgdir}"/usr/{bin,share/man/man1}
+ make PREFIX="${pkgdir}/usr" install
+}
diff --git a/extra/ifplugd/PKGBUILD b/extra/ifplugd/PKGBUILD
new file mode 100644
index 000000000..e3162ac9a
--- /dev/null
+++ b/extra/ifplugd/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 70831 2010-03-01 22:51:10Z dgriffiths $
+# Contributor: Manolis Tzanidakis
+# Contributor: kevin <kevin@archlinux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=ifplugd
+pkgver=0.28
+pkgrel=7
+pkgdesc="A daemon which brings up/down network interfaces upon cable insertion/removal."
+arch=('i686' 'x86_64')
+url="http://0pointer.de/lennart/projects/ifplugd"
+license=('GPL2')
+depends=('libdaemon' 'bash')
+backup=('etc/ifplugd/ifplugd.conf' 'etc/ifplugd/ifplugd.action')
+options=('!makeflags')
+source=($url/${pkgname}-${pkgver}.tar.gz 'ifplugd' 'ifplugd.action' 'ifplugd-0.28-interface.patch' 'ifdown.01-route.sh' 'ifup.01-route.sh' 'ifup.02-ntpdate.sh')
+md5sums=('df6f4bab52f46ffd6eb1f5912d4ccee3' '70d66121ae5163348855236951e069a2'\
+ 'e91a3d77d707ae79fbc10146848032dc' '54eb22844b5aeed161c0b80aa9008570'\
+ 'd6ce6c7bd481a0b3944c944c5b277c0b' 'c35f0a637911b747f8dc3bd3c6156a1b'\
+ 'f8690ee18a5ca72555585ee96826c2cf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 < ../ifplugd-0.28-interface.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \
+ --with-initdir=/etc/rc.d --disable-xmltoman --disable-subversion --disable-lynx
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=${pkgdir} install
+
+ # replace INTERFACES with NET_IFS since AL already uses it in /etc/rc.conf
+ /bin/sed -i "s:INTERFACES:NET_IFS:g" \
+ ${pkgdir}/etc/ifplugd/ifplugd.conf || return 1
+
+ # replace the default init script & action files with ours.
+ #/bin/rm -rf $/pkgdir/etc/init.d
+ /bin/install -D -m755 ${srcdir}/ifplugd ${pkgdir}/etc/rc.d/ifplugd || return 1
+ /bin/install -D -m755 ${srcdir}/ifplugd.action \
+ ${pkgdir}/etc/ifplugd/ifplugd.action || return 1
+
+ /bin/install -Dm755 ${srcdir}/ifdown.01-route.sh \
+ ${pkgdir}/etc/ifplugd/ifdown.d/01-route.sh || return 1
+ /bin/install -Dm755 ${srcdir}/ifup.01-route.sh \
+ ${pkgdir}/etc/ifplugd/ifup.d/01-route.sh || return 1
+ /bin/install -Dm755 ${srcdir}/ifup.02-ntpdate.sh \
+ ${pkgdir}/etc/ifplugd/ifup.d/02-ntpdate.sh || return 1
+}
+
diff --git a/extra/ifplugd/ifdown.01-route.sh b/extra/ifplugd/ifdown.01-route.sh
new file mode 100755
index 000000000..cfa0e0069
--- /dev/null
+++ b/extra/ifplugd/ifdown.01-route.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+# same as up...
+/sbin/route del $1 \ No newline at end of file
diff --git a/extra/ifplugd/ifplugd b/extra/ifplugd/ifplugd
new file mode 100644
index 000000000..44019d0ee
--- /dev/null
+++ b/extra/ifplugd/ifplugd
@@ -0,0 +1,89 @@
+#!/bin/bash
+#
+# ifplugd daemon script for Arch Linux
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# env vars
+NAME=ifplugd
+CFG=/etc/ifplugd/ifplugd.conf
+IFPLUGD=/usr/sbin/ifplugd
+PID=`pidof -o %PPID $IFPLUGD`
+
+# source configuration file
+[ -f $CFG ] && . $CFG
+
+# discover interfaces to monitor
+# (replacing INTERFACES with NET_IFS, since AL
+# already uses it in /etc/rc.conf)
+[ -z "$NET_IFS" ] &&
+ NET_IFS=$(sed -ne 's/.*\<\(eth[0-9]*\):.*/\1/p' /proc/net/dev)
+
+case "$1" in
+ start)
+ stat_busy "Starting $NAME"
+ [ -z "$PID" ] && ( for IF in $NET_IFS ; do
+ A="`eval echo \$\{ARGS_${IF}\}`"
+ [ -z "$A" ] && A="$ARGS"
+ $IFPLUGD -i $IF $A
+ echo -n " $IF"
+ done )
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $NAME
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping $NAME"
+ [ ! -z "$PID" ] && ( for IF in $NET_IFS ; do
+ $IFPLUGD -k -i $IF
+ echo -n " $IF"
+ done )
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $NAME
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ status)
+ for IF in $NET_IFS; do
+ $IFPLUGD -c -i $IF
+ done
+ ;;
+ suspend)
+ stat_busy "Suspending $NAME"
+ for IF in $NET_IFS; do
+ $IFPLUGD -S -i $IF
+ echo -n " $IF"
+ done
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ resume)
+ stat_busy "Resuming $NAME"
+ for IF in $NET_IFS; do
+ $IFPLUGD -R -i $IF
+ echo -n " $IF"
+ done
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|status|suspend|resume}"
+esac
+exit 0
diff --git a/extra/ifplugd/ifplugd-0.28-interface.patch b/extra/ifplugd/ifplugd-0.28-interface.patch
new file mode 100644
index 000000000..9c2de464b
--- /dev/null
+++ b/extra/ifplugd/ifplugd-0.28-interface.patch
@@ -0,0 +1,13 @@
+--- src/interface.c 2004/12/19 00:08:01 114
++++ src/interface.c 2006/03/07 13:15:11 133
+@@ -22,9 +22,9 @@
+ #include <config.h>
+ #endif
+
++#include <sys/types.h>
+ #include <linux/sockios.h>
+ #include <linux/if_ether.h>
+-#include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <linux/if.h>
diff --git a/extra/ifplugd/ifplugd.action b/extra/ifplugd/ifplugd.action
new file mode 100644
index 000000000..23b74c60d
--- /dev/null
+++ b/extra/ifplugd/ifplugd.action
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# ifplugd.action script for Arch Linux
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+plugscript(){ #argumets are ifup|ifdown, interface_name
+ for script in /etc/ifplugd/$1.d/*.sh; do
+ [ -x $script ] && $script $2
+ done
+ return 0
+}
+
+case "$2" in
+ up)
+ /etc/rc.d/network ifup $1
+ plugscript ifup $1
+ ;;
+ down)
+ plugscript ifdown $1
+ /etc/rc.d/network ifdown $1
+ ;;
+ *)
+ echo "Wrong arguments" > /dev/stderr
+ ;;
+esac
+
+exit 1
diff --git a/extra/ifplugd/ifup.01-route.sh b/extra/ifplugd/ifup.01-route.sh
new file mode 100755
index 000000000..6be07208d
--- /dev/null
+++ b/extra/ifplugd/ifup.01-route.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+# ugly way to load up gateway, since
+# al's net configuration doesn't associate
+# gateways with specific interfaces.
+/sbin/route add $gateway
diff --git a/extra/ifplugd/ifup.02-ntpdate.sh b/extra/ifplugd/ifup.02-ntpdate.sh
new file mode 100755
index 000000000..4e53daff9
--- /dev/null
+++ b/extra/ifplugd/ifup.02-ntpdate.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+ntpdate ru.pool.ntp.org | logger
diff --git a/extra/ilmbase/PKGBUILD b/extra/ilmbase/PKGBUILD
new file mode 100644
index 000000000..b8930a55e
--- /dev/null
+++ b/extra/ilmbase/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ilmbase
+pkgver=1.0.1
+pkgrel=1
+depends=('gcc-libs')
+pkgdesc="IlmThread is a thread abstraction library for use with OpenEXR"
+arch=(i686 x86_64)
+license=('custom')
+options=('!libtool')
+source=(http://savannah.nongnu.org/download/openexr/$pkgname-$pkgver.tar.gz)
+url="http://www.openexr.org"
+md5sums=('f76f094e69a6079b0beb93d97e2a217e')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/imagemagick/PKGBUILD b/extra/imagemagick/PKGBUILD
new file mode 100644
index 000000000..9c1ab3533
--- /dev/null
+++ b/extra/imagemagick/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 117332 2011-03-31 05:07:13Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgbase=imagemagick
+pkgname=('imagemagick' 'imagemagick-doc')
+pkgver=6.6.9.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.imagemagick.org/"
+license=('custom')
+depends=('libtool' 'lcms' 'libxt' 'gcc-libs' 'bzip2' 'xz' 'freetype2' 'fontconfig' \
+ 'libxext' 'libjpeg-turbo')
+makedepends=('ghostscript' 'openexr' 'libwmf' 'librsvg' 'libxml2' 'jasper' 'libpng')
+source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.xz \
+ libpng_mmx_patch_x86_64.patch perlmagick.rpath.patch)
+md5sums=('b8c7dfbad2eb9b9c39666af07cb6db83'
+ '069980fc2590c02aed86420996259302'
+ 'ff9974decbfe9846f8e347239d87e4eb')
+sha1sums=('924e1841a1518bf394f5a18d4fd25414bdf9f63d'
+ 'e42f3acbe85b6098af75c5cecc9a254baaa0482c'
+ '23405f80904b1de94ebd7bd6fe2a332471b8c283')
+
+
+build() {
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+
+ if [ "${CARCH}" = 'x86_64' ]; then
+ patch -Np1 < ../libpng_mmx_patch_x86_64.patch
+ fi
+
+ patch -p0 < ../perlmagick.rpath.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --with-modules --disable-static \
+ --enable-openmp --with-x --with-wmf --with-openexr --with-xml \
+ --with-gslib --with-gs-font-dir=/usr/share/fonts/Type1 \
+ --with-perl --with-perl-options="INSTALLDIRS=vendor" \
+ --without-gvc --without-djvu --without-autotrace --with-jp2 \
+ --without-jbig --without-fpx --without-dps --without-fftw
+ make
+}
+
+package_imagemagick() {
+ pkgdesc="An image viewing/manipulation program"
+ optdepends=('ghostscript: for Ghostscript support'
+ 'openexr: for OpenEXR support'
+ 'libwmf: for WMF support'
+ 'librsvg: for SVG support'
+ 'libxml2: for XML support'
+ 'jasper: for JPEG-2000 support'
+ 'libpng: for PNG support')
+ backup=('etc/ImageMagick/colors.xml' 'etc/ImageMagick/log.xml' 'etc/ImageMagick/policy.xml'
+ 'etc/ImageMagick/type-dejavu.xml' 'etc/ImageMagick/type-ghostscript.xml'
+ 'etc/ImageMagick/type-windows.xml' 'etc/ImageMagick/type.xml')
+ options=('!makeflags' '!docs')
+
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick/LICENSE"
+ install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick/NOTICE"
+
+#Cleaning
+ find "${pkgdir}" -name '*.bs' -exec rm {} \;
+ rm -f "${pkgdir}"/usr/lib/*.la
+}
+
+package_imagemagick-doc() {
+ pkgdesc="The ImageMagick documentation (utilities manuals and libraries API)"
+ depends=()
+ options=('!makeflags')
+
+ cd "${srcdir}"/ImageMagick-${pkgver%.*}-${pkgver##*.}
+ make DESTDIR="${pkgdir}" install-data-html
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/imagemagick-doc/LICENSE"
+ install -Dm644 NOTICE "${pkgdir}/usr/share/licenses/imagemagick-doc/NOTICE"
+}
diff --git a/extra/imagemagick/libpng_mmx_patch_x86_64.patch b/extra/imagemagick/libpng_mmx_patch_x86_64.patch
new file mode 100644
index 000000000..d86449a28
--- /dev/null
+++ b/extra/imagemagick/libpng_mmx_patch_x86_64.patch
@@ -0,0 +1,12 @@
+diff -Naur ImageMagick-6.2.7.orig/coders/png.c ImageMagick-6.2.7/coders/png.c
+--- ImageMagick-6.2.7.orig/coders/png.c 2006-05-21 12:35:55.784852536 +0200
++++ ImageMagick-6.2.7/coders/png.c 2006-05-21 12:36:50.698504392 +0200
+@@ -164,6 +164,8 @@
+ #define PNG_MAX_UINT (png_uint_32) 0x7fffffffL
+ #endif
+
++#undef PNG_ASSEMBLER_CODE_SUPPORTED
++
+ /*
+ Constant strings for known chunk types. If you need to add a chunk,
+ add a string holding the name here. To make the code more
diff --git a/extra/imagemagick/perlmagick.rpath.patch b/extra/imagemagick/perlmagick.rpath.patch
new file mode 100644
index 000000000..958c0f2ee
--- /dev/null
+++ b/extra/imagemagick/perlmagick.rpath.patch
@@ -0,0 +1,10 @@
+--- Makefile.in.orig 2009-05-26 16:22:11.000000000 -0300
++++ Makefile.in 2009-05-26 16:23:27.000000000 -0300
+@@ -10067,6 +10067,7 @@
+
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@$(PERLMAKEFILE): perl-sources $(PERLMAKEMAKER)
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @PERL@ Makefile.PL $(PERL_MAKE_OPTIONS)
++@WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && @SED@ -i 's|LD_RUN_PATH|DIE_LD_RUN_PATH_DIE|g' Makefile
+
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@install-exec-perl: $(MAGICKCORE_LIBS) $(MAGICKWAND_LIBS) $(PERLMAKEFILE)
+ @WITH_PERL_DYNAMIC_TRUE@@WITH_PERL_TRUE@ cd $(PERLMAGICK) && $(MAKE) CC='@CC@' install
diff --git a/extra/imake/LICENSE b/extra/imake/LICENSE
new file mode 100644
index 000000000..cc6d1a326
--- /dev/null
+++ b/extra/imake/LICENSE
@@ -0,0 +1,131 @@
+gccmakedep:
+
+ XFree86 code without an explicit copyright is covered by the following copy-
+ right/license:
+
+ Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is fur-
+ nished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+ NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+ NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of the XFree86 Project shall not
+ be used in advertising or otherwise to promote the sale, use or other deal-
+ ings in this Software without prior written authorization from the XFree86
+ Project.
+
+imake:
+
+ Copyright (c) 1985, 1986, 1987, 1998 The Open Group
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of The Open Group shall not be
+ used in advertising or otherwise to promote the sale, use or other dealings
+ in this Software without prior written authorization from The Open Group.
+ *
+ * Original Author:
+ * Todd Brunhoff
+ * Tektronix, inc.
+ * While a guest engineer at Project Athena, MIT
+
+lndir:
+
+ Copyright (c) 1990, 1998 The Open Group
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of The Open Group shall not be
+ used in advertising or otherwise to promote the sale, use or other dealings
+ in this Software without prior written authorization from The Open Group.
+
+makedepend:
+
+ Copyright (c) 1993, 1994, 1998 The Open Group
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of The Open Group shall not be
+ used in advertising or otherwise to promote the sale, use or other dealings
+ in this Software without prior written authorization from The Open Group.
+
+util-macros:
+
+ Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name of the copyright holders shall
+ not be used in advertising or otherwise to promote the sale, use or
+ other dealings in this Software without prior written authorization
+ from the copyright holders.
diff --git a/extra/imake/PKGBUILD b/extra/imake/PKGBUILD
new file mode 100644
index 000000000..9a879d865
--- /dev/null
+++ b/extra/imake/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 87585 2010-08-17 07:28:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=imake
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="X.Org imake program and related utilities"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(glibc)
+makedepends=(pkgconfig xproto perl)
+optdepends=('perl: for mkhtmlindex')
+source=(http://xorg.freedesktop.org/releases/individual/util/imake-1.0.3.tar.bz2
+ http://xorg.freedesktop.org/releases/individual/util/gccmakedep-1.0.2.tar.bz2
+ http://xorg.freedesktop.org/releases/individual/util/lndir-1.0.2.tar.bz2
+ http://xorg.freedesktop.org/releases/individual/util/makedepend-1.0.2.tar.bz2
+ http://xorg.freedesktop.org/releases/individual/util/xorg-cf-files-1.0.3.tar.bz2
+ linuxconfig.patch
+ xorg-cf-files-1.0.2-xprint.patch
+ LICENSE)
+md5sums=('ff553c4646edcc9e76b7308991ad421a'
+ 'b533c0771dbbaf9b041ff35bb941d3a2'
+ '619acbb2ed766d7762f02328513b1f72'
+ '62e58330fe8d1e3e28c7a45779833a48'
+ '10546b5ddda3cdda7950bb56bf98e0ea'
+ 'b3385d8efbbe7c7fc50ed3a96ce37a16'
+ '82356cfc8a761c85b0b37736fc91f604'
+ 'f5767133ef7a98a0bfa15139e0e3d32e')
+
+build() {
+ cd ${srcdir}/xorg-cf-files-1.0.3*
+ patch -Np1 -i "${srcdir}/linuxconfig.patch" || return 1
+ patch -Np1 -i "${srcdir}/xorg-cf-files-1.0.2-xprint.patch" || return 1
+ cd "${srcdir}"
+ for i in *; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ popd
+ fi
+ done
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/imake/linuxconfig.patch b/extra/imake/linuxconfig.patch
new file mode 100644
index 000000000..e5579223c
--- /dev/null
+++ b/extra/imake/linuxconfig.patch
@@ -0,0 +1,31 @@
+--- xorg-cf-files-1.0.1/linux.cf.orig 2006-03-04 18:40:43.000000000 +0000
++++ xorg-cf-files-1.0.1/linux.cf 2006-03-04 18:41:48.000000000 +0000
+@@ -193,6 +193,13 @@
+ #define FSUseSyslog YES
+ #endif
+
++#define FSUseSyslog YES
++#define BuildRman NO
++#define BuildHtmlManPages NO
++#define ProjectRoot /usr
++#define ManPath /usr/share/man
++#define XappLoadDir /usr/share/X11/app-defaults
++
+ #ifndef HasDevRandom
+ # define HasDevRandom YES
+ # ifndef RandomDeviceName
+--- xorg-cf-files-1.0.2/X11.tmpl.orig 2006-07-15 10:45:23.000000000 +0000
++++ xorg-cf-files-1.0.2/X11.tmpl 2006-07-15 10:46:19.000000000 +0000
+@@ -1502,10 +1502,10 @@
+ #define DocPdfDir $(DOCDIR)/PDF
+ #endif
+ #ifndef FontDir
+-#define FontDir $(LIBDIR)/fonts
++#define FontDir /usr/share/fonts
+ #endif
+ #ifndef FontEncDir
+-#define FontEncDir $(LIBDIR)/fonts/encodings
++#define FontEncDir /usr/share/fonts/encodings
+ #endif
+ #ifndef AdmDir
+ #define AdmDir /usr/adm
diff --git a/extra/imake/xorg-cf-files-1.0.2-xprint.patch b/extra/imake/xorg-cf-files-1.0.2-xprint.patch
new file mode 100644
index 000000000..3926d724a
--- /dev/null
+++ b/extra/imake/xorg-cf-files-1.0.2-xprint.patch
@@ -0,0 +1,39 @@
+--- xorg-cf-files-1.0.3/X11.tmpl.xprint 2005-10-01 12:45:48.000000000 -0400
++++ xorg-cf-files-1.0.3/X11.tmpl 2006-04-25 20:24:02.000000000 -0400
+@@ -3920,21 +3920,13 @@
+ #endif
+
+ #ifndef ExtraXawReqs
+-# if BuildXaw
+-# define ExtraXawReqs $(XPLIB)
+-# else
+-# define ExtraXawReqs /**/
+-# endif
++# define ExtraXawReqs /**/
+ #endif
+
+ EXTRAXAWREQS = ExtraXawReqs
+
+ #ifndef ExtraXawClientDepLibs
+-# if BuildXaw
+-# define ExtraXawClientDepLibs $(DEPXPLIB)
+-# else
+-# define ExtraXawClientDepLibs /**/
+-# endif
++# define ExtraXawClientDepLibs /**/
+ #endif
+
+ EXTRAXAWCLIENTDEPLIBS = ExtraXawClientDepLibs
+@@ -3944,11 +3936,7 @@
+ #endif
+
+ #ifndef ExtraXawClientLibs
+-# if BuildXaw
+-# define ExtraXawClientLibs $(XPLIB)
+-# else
+-# define ExtraXawClientLibs /**/
+-# endif
++# define ExtraXawClientLibs /**/
+ #endif
+
+ EXTRAXAWCLIENTLIBS = ExtraXawClientLibs
diff --git a/extra/imap/PKGBUILD b/extra/imap/PKGBUILD
new file mode 100644
index 000000000..2aed4adbb
--- /dev/null
+++ b/extra/imap/PKGBUILD
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 75284 2010-04-01 07:07:12Z pierre $
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=imap
+pkgver=2007e
+pkgrel=2
+pkgdesc="An IMAP/POP server"
+arch=('i686' 'x86_64')
+license=('APACHE')
+url="http://www.washington.edu/imap"
+depends=('openssl' 'pam')
+provides=('imap-server' 'pop3-server')
+conflicts=('courier-mta' 'courier-imap')
+source=("ftp://ftp.cac.washington.edu/imap/${pkgname}-${pkgver}.tar.gz"
+ 'imap' 'ipop2' 'ipop3')
+backup=(etc/xinetd.d/{imap,ipop2,ipop3} etc/ssl/certs/{imapd,ipop3d}.pem)
+md5sums=('7903800dc2604000016de070e0c55840'
+ 'e77dedb80c2fec9bf2ef784ed5f976fb'
+ 'cc3eba6453242aa0b1bc8881160b2136'
+ '0a5e27183a9b7e8ec5f6703125371e0a')
+
+
+build() {
+ # fix Makefile
+ cd $srcdir/$pkgname-$pkgver/src/osdep/unix
+ cp Makefile Makefile.orig
+ sed \
+ -e "s:-g -fno-omit-frame-pointer -O6:\${CFLAGS}:" \
+ -e "s:SSLDIR=/usr/local/ssl:SSLDIR=/usr:" \
+ -e "s:SSLCERTS=\$(SSLDIR)/certs:SSLCERTS=/etc/ssl/certs:" \
+ < Makefile.orig > Makefile
+
+ cd $srcdir/$pkgname-$pkgver
+ # NOTE: if you wish to enforce SSL, use SSLTYPE=unix.nopwd
+
+ if [ "$CARCH" == "x86_64" ]; then
+ yes "y" | make lnp SPECIALAUTHENTICATORS=ssl SSLTYPE=unix EXTRACFLAGS="${CFLAGS} -fPIC" || return 1
+ else yes "y" | make lnp SPECIALAUTHENTICATORS=ssl SSLTYPE=unix || return 1
+ fi
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir -p $pkgdir/usr/sbin
+ install -D -m755 imapd/imapd $pkgdir/usr/sbin/imapd
+ install -D -m755 ipopd/ipop2d $pkgdir/usr/sbin/ipop2d
+ install -D -m755 ipopd/ipop3d $pkgdir/usr/sbin/ipop3d
+ for i in c-client mail imap4r1 rfc822 linkage misc smtp nntp \
+ osdep env_unix env fs ftl nl tcp sslio utf8 utf8aux; do
+ install -D -m644 c-client/${i}.h $pkgdir/usr/include/imap/${i}.h
+ done
+ install -D -m644 c-client/c-client.a $pkgdir/usr/lib/c-client.a
+ ln -sf c-client.a $pkgdir/usr/lib/libc-client.a
+
+ # create ssl certs for secure imap
+ for i in imapd ipop3d; do
+ umask 077
+ PEM1=`/usr/bin/mktemp /tmp/openssl.XXXXXX`
+ PEM2=`/usr/bin/mktemp /tmp/openssl.XXXXXX`
+ /usr/bin/openssl req -newkey rsa:1024 -keyout $$PEM1 \
+ -nodes -x509 -days 365 -out $$PEM2 << EOF
+--
+SomeState
+SomeCity
+SomeOrganization
+SomeOrganizationalUnit
+localhost.localdomain
+root@localhost.localdomain
+EOF
+
+ cat $$PEM1 > ${i}.pem
+ echo "" >> ${i}.pem
+ cat $$PEM2 >> ${i}.pem
+ rm $$PEM1 $$PEM2
+ umask 022
+ done
+
+ # install 'em
+ install -D -m600 imapd.pem $pkgdir/etc/ssl/certs/imapd.pem
+ install -D -m600 ipop3d.pem $pkgdir/etc/ssl/certs/ipop3d.pem
+
+ # install xinetd.d configs
+ install -D -m644 ../imap $pkgdir/etc/xinetd.d/imap
+ install -D -m644 ../ipop2 $pkgdir/etc/xinetd.d/ipop2
+ install -D -m644 ../ipop3 $pkgdir/etc/xinetd.d/ipop3
+}
diff --git a/extra/imap/imap b/extra/imap/imap
new file mode 100644
index 000000000..da45739d4
--- /dev/null
+++ b/extra/imap/imap
@@ -0,0 +1,10 @@
+service imap2
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/imapd
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/extra/imap/ipop2 b/extra/imap/ipop2
new file mode 100644
index 000000000..bd74c8380
--- /dev/null
+++ b/extra/imap/ipop2
@@ -0,0 +1,10 @@
+service pop2
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/ipop2d
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/extra/imap/ipop3 b/extra/imap/ipop3
new file mode 100644
index 000000000..410a45a64
--- /dev/null
+++ b/extra/imap/ipop3
@@ -0,0 +1,10 @@
+service pop3
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/ipop3d
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/extra/imlib/CAN-2004-1026.patch b/extra/imlib/CAN-2004-1026.patch
new file mode 100644
index 000000000..c820270d4
--- /dev/null
+++ b/extra/imlib/CAN-2004-1026.patch
@@ -0,0 +1,510 @@
+diff -urN imlib-1.9.13.orig/Imlib/load.c imlib-1.9.13/Imlib/load.c
+--- imlib-1.9.13.orig/Imlib/load.c Wed Mar 13 19:06:29 2002
++++ imlib-1.9.13/Imlib/load.c Thu Sep 16 17:21:01 2004
+@@ -4,6 +4,8 @@
+ #include "Imlib_private.h"
+ #include <setjmp.h>
+
++#define G_MAXINT ((int) 0x7fffffff)
++
+ /* Split the ID - damages input */
+
+ static char *
+@@ -41,13 +43,17 @@
+
+ /*
+ * Make sure we don't wrap on our memory allocations
++ * we check G_MAXINT/4 because rend.c malloc's w * h * bpp
++ * + 3 is safety margin
+ */
+
+ void * _imlib_malloc_image(unsigned int w, unsigned int h)
+ {
+- if( w > 32767 || h > 32767)
+- return NULL;
+- return malloc(w * h * 3);
++ if (w <= 0 || w > 32767 ||
++ h <= 0 || h > 32767 ||
++ h >= (G_MAXINT/4 - 1) / w)
++ return NULL;
++ return malloc(w * h * 3 + 3);
+ }
+
+ #ifdef HAVE_LIBJPEG
+@@ -360,7 +366,9 @@
+ npix = ww * hh;
+ *w = (int)ww;
+ *h = (int)hh;
+- if(ww > 32767 || hh > 32767)
++ if (ww <= 0 || ww > 32767 ||
++ hh <= 0 || hh > 32767 ||
++ hh >= (G_MAXINT/sizeof(uint32)) / ww)
+ {
+ TIFFClose(tif);
+ return NULL;
+@@ -463,7 +471,7 @@
+ }
+ *w = gif->Image.Width;
+ *h = gif->Image.Height;
+- if (*h > 32767 || *w > 32767)
++ if (*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
+ {
+ return NULL;
+ }
+@@ -965,7 +973,12 @@
+ comment = 0;
+ quote = 0;
+ context = 0;
++ memset(lookup, 0, sizeof(lookup));
++
+ line = malloc(lsz);
++ if (!line)
++ return NULL;
++
+ while (!done)
+ {
+ pc = c;
+@@ -994,25 +1007,25 @@
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", w, h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM files wth colors > 32766 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM files with characters per pixel > 5 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (*w > 32767)
++ if (*w <= 0 || *w > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for file\n");
+ free(line);
+ return NULL;
+ }
+- if (*h > 32767)
++ if (*h <= 0 || *h > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for file\n");
+ free(line);
+@@ -1045,11 +1058,13 @@
+ {
+ int slen;
+ int hascolor, iscolor;
++ int space;
+
+ iscolor = 0;
+ hascolor = 0;
+ tok[0] = 0;
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ s[0] = 0;
+ len = strlen(line);
+ strncpy(cmap[j].str, line, cpp);
+@@ -1072,10 +1087,10 @@
+ {
+ if (k >= len)
+ {
+- if (col[0])
+- strcat(col, " ");
+- if (strlen(col) + strlen(s) < sizeof(col))
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ if (col[0])
+ {
+@@ -1105,14 +1120,17 @@
+ }
+ }
+ }
+- strcpy(tok, s);
++ if (slen < sizeof(tok));
++ strcpy(tok, s);
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ }
+ else
+ {
+- if (col[0])
+- strcat(col, " ");
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -=1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ }
+ }
+@@ -1341,12 +1359,12 @@
+ sscanf(s, "%i %i", w, h);
+ a = *w;
+ b = *h;
+- if (a > 32767)
++ if (a <= 0 || a > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for file\n");
+ return NULL;
+ }
+- if (b > 32767)
++ if (b <= 0 || b > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for file\n");
+ return NULL;
+diff -urN imlib-1.9.13.orig/Imlib/utils.c imlib-1.9.13/Imlib/utils.c
+--- imlib-1.9.13.orig/Imlib/utils.c Mon Mar 4 17:45:28 2002
++++ imlib-1.9.13/Imlib/utils.c Thu Sep 16 17:21:15 2004
+@@ -1496,36 +1496,56 @@
+ context = 0;
+ ptr = NULL;
+ end = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ while (!done)
+ {
+ line = data[count++];
++ if (!line)
++ break;
++ line = strdup(line);
++ if (!line)
++ break;
++ len = strlen(line);
++ for (i = 0; i < len; ++i)
++ {
++ c = line[i];
++ if (c < 32)
++ line[i] = 32;
++ else if (c > 127)
++ line[i] = 127;
++ }
++
+ if (context == 0)
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM data wth colors > 32766 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "IMLIB ERROR: XPM data with characters per pixel > 5 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (w > 32767)
++ if (w <= 0 || w > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image width > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (h > 32767)
++ if (h <= 0 || h > 32767)
+ {
+ fprintf(stderr, "IMLIB ERROR: Image height > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+ cmap = malloc(sizeof(struct _cmap) * ncolors);
+@@ -1533,6 +1553,7 @@
+ if (!cmap)
+ {
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->rgb_width = w;
+@@ -1542,6 +1563,7 @@
+ {
+ free(cmap);
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->alpha_data = NULL;
+@@ -1817,6 +1839,7 @@
+ }
+ if ((ptr) && ((ptr - im->rgb_data) >= w * h * 3))
+ done = 1;
++ free(line);
+ }
+ if (!transp)
+ {
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-gif.c imlib-1.9.13/gdk_imlib/io-gif.c
+--- imlib-1.9.13.orig/gdk_imlib/io-gif.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-gif.c Thu Sep 16 16:11:31 2004
+@@ -55,7 +55,7 @@
+ }
+ *w = gif->Image.Width;
+ *h = gif->Image.Height;
+- if(*h > 32767 || *w > 32767)
++ if(*h <= 0 || *h > 32767 || *w <= 0 || *w > 32767)
+ {
+ return NULL;
+ }
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-ppm.c imlib-1.9.13/gdk_imlib/io-ppm.c
+--- imlib-1.9.13.orig/gdk_imlib/io-ppm.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-ppm.c Thu Sep 16 16:13:13 2004
+@@ -53,12 +53,12 @@
+ sscanf(s, "%i %i", w, h);
+ a = *w;
+ b = *h;
+- if (a > 32767)
++ if (a <= 0 || a > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for file\n");
+ return NULL;
+ }
+- if (b > 32767)
++ if (b <= 0 || b > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for file\n");
+ return NULL;
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-tiff.c imlib-1.9.13/gdk_imlib/io-tiff.c
+--- imlib-1.9.13.orig/gdk_imlib/io-tiff.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-tiff.c Thu Sep 16 16:13:57 2004
+@@ -36,7 +36,9 @@
+ npix = ww * hh;
+ *w = (int)ww;
+ *h = (int)hh;
+- if(ww > 32767 || hh > 32767)
++ if (ww <= 0 || ww > 32767 ||
++ hh <= 0 || hh > 32767 ||
++ hh >= (G_MAXINT/sizeof(uint32)) / ww)
+ {
+ TIFFClose(tif);
+ return NULL;
+diff -urN imlib-1.9.13.orig/gdk_imlib/io-xpm.c imlib-1.9.13/gdk_imlib/io-xpm.c
+--- imlib-1.9.13.orig/gdk_imlib/io-xpm.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/io-xpm.c Thu Sep 16 17:08:24 2004
+@@ -40,8 +40,12 @@
+ context = 0;
+ i = j = 0;
+ cmap = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ line = malloc(lsz);
++ if (!line)
++ return NULL;
++
+ while (!done)
+ {
+ pc = c;
+@@ -70,25 +74,25 @@
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", w, h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM files wth colors > 32766 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM files with characters per pixel > 5 not supported\n");
+ free(line);
+ return NULL;
+ }
+- if (*w > 32767)
++ if (*w <= 0 || *w > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for file\n");
+ free(line);
+ return NULL;
+ }
+- if (*h > 32767)
++ if (*h <= 0 || *h > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for file\n");
+ free(line);
+@@ -120,11 +124,13 @@
+ {
+ int slen;
+ int hascolor, iscolor;
++ int space;
+
+ hascolor = 0;
+ iscolor = 0;
+ tok[0] = 0;
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ s[0] = 0;
+ len = strlen(line);
+ strncpy(cmap[j].str, line, cpp);
+@@ -147,10 +153,10 @@
+ {
+ if (k >= len)
+ {
+- if (col[0])
+- strcat(col, " ");
+- if (strlen(col) + strlen(s) < sizeof(col))
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strncat(col, " ", space), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ if (col[0])
+ {
+@@ -180,14 +186,17 @@
+ }
+ }
+ }
+- strcpy(tok, s);
++ if (slen < sizeof(tok))
++ strcpy(tok, s);
+ col[0] = 0;
++ space = sizeof(col) - 1;
+ }
+ else
+ {
+- if (col[0])
+- strcat(col, " ");
+- strcat(col, s);
++ if (col[0] && space > 0)
++ strcat(col, " "), space -= 1;
++ if (slen <= space)
++ strcat(col, s), space -= slen;
+ }
+ }
+ }
+diff -urN imlib-1.9.13.orig/gdk_imlib/misc.c imlib-1.9.13/gdk_imlib/misc.c
+--- imlib-1.9.13.orig/gdk_imlib/misc.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/misc.c Thu Sep 16 16:35:32 2004
+@@ -1355,11 +1355,16 @@
+
+ /*
+ * Make sure we don't wrap on our memory allocations
++ * we check G_MAX_INT/4 because rend.c malloc's w * h * bpp
++ * + 3 is safety margin
+ */
+
+ void *_gdk_malloc_image(unsigned int w, unsigned int h)
+ {
+- if( w > 32767 || h > 32767)
++ if (w <= 0 || w > 32767 ||
++ h <= 0 || h > 32767 ||
++ h >= (G_MAXINT/4 - 1) / w)
+ return NULL;
+- return malloc(w * h * 3);
++ return malloc(w * h * 3 + 3);
+ }
++
+diff -urN imlib-1.9.13.orig/gdk_imlib/utils.c imlib-1.9.13/gdk_imlib/utils.c
+--- imlib-1.9.13.orig/gdk_imlib/utils.c Mon Mar 4 17:26:51 2002
++++ imlib-1.9.13/gdk_imlib/utils.c Thu Sep 16 17:28:35 2004
+@@ -1236,36 +1236,56 @@
+ context = 0;
+ ptr = NULL;
+ end = NULL;
++ memset(lookup, 0, sizeof(lookup));
+
+ while (!done)
+ {
+ line = data[count++];
++ if (!line)
++ break;
++ line = strdup(line);
++ if (!line)
++ break;
++ len = strlen(line);
++ for (i = 0; i < len; ++i)
++ {
++ c = line[i];
++ if (c < 32)
++ line[i] = 32;
++ else if (c > 127)
++ line[i] = 127;
++ }
++
+ if (context == 0)
+ {
+ /* Header */
+ sscanf(line, "%i %i %i %i", &w, &h, &ncolors, &cpp);
+- if (ncolors > 32766)
++ if (ncolors <= 0 || ncolors > 32766)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM data wth colors > 32766 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (cpp > 5)
++ if (cpp <= 0 || cpp > 5)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: XPM data with characters per pixel > 5 not supported\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (w > 32767)
++ if (w <= 0 || w > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image width > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+- if (h > 32767)
++ if (h <= 0 || h > 32767)
+ {
+ fprintf(stderr, "gdk_imlib ERROR: Image height > 32767 pixels for data\n");
+ free(im);
++ free(line);
+ return NULL;
+ }
+ cmap = malloc(sizeof(struct _cmap) * ncolors);
+@@ -1273,6 +1293,7 @@
+ if (!cmap)
+ {
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->rgb_width = w;
+@@ -1282,6 +1303,7 @@
+ {
+ free(cmap);
+ free(im);
++ free(line);
+ return NULL;
+ }
+ im->alpha_data = NULL;
+@@ -1355,7 +1377,7 @@
+ strcpy(col + colptr, " ");
+ colptr++;
+ }
+- if (colptr + ls <= sizeof(col))
++ if (colptr + ls < sizeof(col))
+ {
+ strcpy(col + colptr, s);
+ colptr += ls;
+@@ -1558,6 +1580,7 @@
+ }
+ if ((ptr) && ((ptr - im->rgb_data) >= w * h * 3))
+ done = 1;
++ free(line);
+ }
+ if (!transp)
+ {
diff --git a/extra/imlib/ChangeLog b/extra/imlib/ChangeLog
new file mode 100644
index 000000000..3a4bcdf0f
--- /dev/null
+++ b/extra/imlib/ChangeLog
@@ -0,0 +1,13 @@
+2009-07-01 Eric Belanger <eric@archlinux.org>
+
+ * imlib 1.9.15-6
+ * Rebuild for libjpeg 7
+
+2009-06-14 Eric Belanger <eric@archlinux.org>
+
+ * imlib 1.9.15-5
+ * Added libxt makedepends (close FS#15086)
+ * Changed libungif depends to giflib
+ * Updated url
+ * FHS man pages
+ * Added ChangeLog
diff --git a/extra/imlib/PKGBUILD b/extra/imlib/PKGBUILD
new file mode 100644
index 000000000..ccd17deb5
--- /dev/null
+++ b/extra/imlib/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 64376 2010-01-20 03:40:51Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=imlib
+pkgver=1.9.15
+pkgrel=9
+pkgdesc="General image handling library for X11 and Gtk"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/imlib/"
+license=('GPL')
+depends=('gtk' 'giflib' 'libpng>=1.4.0' 'libtiff>=3.9.2-2' 'libjpeg>=8' 'libsm')
+makedepends=('libxt')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/${pkgname}-${pkgver}.tar.bz2
+ debian-bug448360.patch CAN-2004-1026.patch aclocal-fixes.patch libpng14.patch)
+md5sums=('7db987e6c52e4daf70d7d0f471238eae' '5f9da697934b6bd3b497ac9160ce4f5c'\
+ 'b273d36aa60adbfaacaf6062234e4c1f' '33b832f0dc6c9723cd0dfe9c8d0a6797'\
+ '9d8a029f5fb05978db0dbcd4ff38fe23')
+sha1sums=('c9a732a354fbb3c7e1a426e5d19fc92d73f8f720' 'fe2fd9ce4d7bc62271e724153de39012de8ec5ee'\
+ 'ec1b47281c1a7fb21abe841f948ecc56ed13f310' 'af54cb1ee0c8c6122b277284ebdd1022e31df3b5'\
+ '20ed6063ba787ac7c2677bb4b135c0b7285c52af')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/debian-bug448360.patch" || return 1
+ patch -Np1 -i "${srcdir}/CAN-2004-1026.patch" || return 1
+ patch -Np0 -i "${srcdir}/aclocal-fixes.patch" || return 1
+ patch -Np1 -i "${srcdir}/libpng14.patch" || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --enable-shm || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/imlib/aclocal-fixes.patch b/extra/imlib/aclocal-fixes.patch
new file mode 100644
index 000000000..04ef737e7
--- /dev/null
+++ b/extra/imlib/aclocal-fixes.patch
@@ -0,0 +1,20 @@
+--- imlib.m4.orig 2006-03-05 12:41:14.000000000 +0000
++++ imlib.m4 2006-03-05 12:44:15.000000000 +0000
+@@ -6,7 +6,7 @@
+ dnl AM_PATH_IMLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+ dnl Test for IMLIB, and define IMLIB_CFLAGS and IMLIB_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_IMLIB,
++AC_DEFUN([AM_PATH_IMLIB],
+ [dnl
+ dnl Get the cflags and libraries from the imlib-config script
+ dnl
+@@ -164,7 +164,7 @@
+ ])
+
+ # Check for gdk-imlib
+-AC_DEFUN(AM_PATH_GDK_IMLIB,
++AC_DEFUN([AM_PATH_GDK_IMLIB],
+ [dnl
+ dnl Get the cflags and libraries from the imlib-config script
+ dnl
diff --git a/extra/imlib/debian-bug448360.patch b/extra/imlib/debian-bug448360.patch
new file mode 100644
index 000000000..f1c0ef111
--- /dev/null
+++ b/extra/imlib/debian-bug448360.patch
@@ -0,0 +1,92 @@
+diff -up -ru imlib-1.9.15.orig/gdk_imlib/misc.c imlib-1.9.15/gdk_imlib/misc.c
+--- imlib-1.9.15.orig/gdk_imlib/misc.c 2002-03-04 18:06:32.000000000 +0100
++++ imlib-1.9.15/gdk_imlib/misc.c 2007-10-28 14:00:04.000000000 +0100
+@@ -674,6 +674,10 @@ gdk_imlib_init_params(GdkImlibInitParams
+ visual = gdk_rgb_get_visual();
+ id->x.visual = GDK_VISUAL_XVISUAL(visual); /* the visual type */
+ id->x.depth = visual->depth; /* the depth of the screen in bpp */
++
++ id->x.shm = 0;
++ id->x.shmp = 0;
++ id->max_shm = 0;
+ #ifdef HAVE_SHM
+ if (XShmQueryExtension(id->x.disp))
+ {
+@@ -689,17 +693,14 @@ gdk_imlib_init_params(GdkImlibInitParams
+ id->x.last_xim = NULL;
+ id->x.last_sxim = NULL;
+ id->max_shm = 0x7fffffff;
+- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap) &&
++ (pm == True))
+ id->x.shmp = 1;
+ }
+ }
+ }
+- else
+ #endif
+- {
+- id->x.shm = 0;
+- id->x.shmp = 0;
+- }
++
+ id->cache.on_image = 0;
+ id->cache.size_image = 0;
+ id->cache.num_image = 0;
+@@ -935,8 +936,8 @@ gdk_imlib_init_params(GdkImlibInitParams
+ }
+ if (p->flags & PARAMS_SHAREDPIXMAPS)
+ {
+- if (id->x.shm)
+- id->x.shmp = p->sharedpixmaps;
++ if (!p->sharedpixmaps)
++ id->x.shmp = 0;
+ }
+ if (p->flags & PARAMS_PALETTEOVERRIDE)
+ override = p->paletteoverride;
+diff -up -ru imlib-1.9.15.orig/Imlib/misc.c imlib-1.9.15/Imlib/misc.c
+--- imlib-1.9.15.orig/Imlib/misc.c 2004-09-21 02:22:59.000000000 +0200
++++ imlib-1.9.15/Imlib/misc.c 2007-10-28 14:00:23.000000000 +0100
+@@ -675,6 +675,10 @@ Imlib_init_with_params(Display * disp, I
+ id->x.root = DefaultRootWindow(disp); /* the root window id */
+ id->x.visual = DefaultVisual(disp, id->x.screen); /* the visual type */
+ id->x.depth = DefaultDepth(disp, id->x.screen); /* the depth of the screen in bpp */
++
++ id->x.shm = 0;
++ id->x.shmp = 0;
++ id->max_shm = 0;
+ #ifdef HAVE_SHM
+ if (XShmQueryExtension(id->x.disp))
+ {
+@@ -690,17 +694,14 @@ Imlib_init_with_params(Display * disp, I
+ id->x.last_xim = NULL;
+ id->x.last_sxim = NULL;
+ id->max_shm = 0x7fffffff;
+- if (XShmPixmapFormat(id->x.disp) == ZPixmap)
++ if ((XShmPixmapFormat(id->x.disp) == ZPixmap &&
++ (pm == True)))
+ id->x.shmp = 1;
+ }
+ }
+ }
+- else
+ #endif
+- {
+- id->x.shm = 0;
+- id->x.shmp = 0;
+- }
++
+ id->cache.on_image = 0;
+ id->cache.size_image = 0;
+ id->cache.num_image = 0;
+@@ -952,8 +953,8 @@ Imlib_init_with_params(Display * disp, I
+ }
+ if (p->flags & PARAMS_SHAREDPIXMAPS)
+ {
+- if (id->x.shm)
+- id->x.shmp = p->sharedpixmaps;
++ if (!p->sharedpixmaps)
++ id->x.shmp = 0;
+ }
+ if (p->flags & PARAMS_PALETTEOVERRIDE)
+ override = p->paletteoverride;
diff --git a/extra/imlib/libpng14.patch b/extra/imlib/libpng14.patch
new file mode 100644
index 000000000..2cc174e29
--- /dev/null
+++ b/extra/imlib/libpng14.patch
@@ -0,0 +1,12 @@
+diff -Naur imlib-1.9.15-orig/Imlib/load.c imlib-1.9.15/Imlib/load.c
+--- imlib-1.9.15-orig/Imlib/load.c 2010-01-18 20:58:27.000000000 -0500
++++ imlib-1.9.15/Imlib/load.c 2010-01-18 21:02:04.000000000 -0500
+@@ -1619,7 +1619,7 @@
+ return 0;
+ fread(buf, 1, 8, f);
+ rewind(f);
+- return (int)png_check_sig(buf, 8);
++ return (int)png_sig_cmp(buf, 0, 8)==0;
+ #else
+ return 0;
+ #endif
diff --git a/extra/imlib2/PKGBUILD b/extra/imlib2/PKGBUILD
new file mode 100644
index 000000000..03075191b
--- /dev/null
+++ b/extra/imlib2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 79752 2010-05-06 13:39:04Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Arjan Timmerman <arjan.archlinux.org>
+# Contributor: Tom Newsom <Jeepster.gmx.co.uk>
+
+pkgname=imlib2
+pkgver=1.4.4
+pkgrel=1
+pkgdesc="Library that does image file loading and saving as well as rendering, manipulation, arbitrary polygon support"
+url="http://sourceforge.net/projects/enlightenment/"
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('libtiff>=3.9.2-2' 'giflib' 'bzip2' 'freetype2' 'libxext' 'libpng>=1.4.0' 'libid3tag' 'libjpeg>=8')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/enlightenment/$pkgname-$pkgver.tar.bz2")
+sha1sums=('aca2cf5d40ddcd8a3acfde605f319fccce7c2a2b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # disable optimizations, they cause problems (e.g. FS#12268)
+ [ $CARCH = "i686" ] && EXTRAOPTS="--disable-mmx"
+ [ $CARCH = "x86_64" ] && EXTRAOPTS="--disable-amd64"
+
+ # Configure and Build
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/imlib2 \
+ --x-libraries=/usr/lib $EXTRAOPTS || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+ # Install License
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/indent/PKGBUILD b/extra/indent/PKGBUILD
new file mode 100644
index 000000000..de378611e
--- /dev/null
+++ b/extra/indent/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 53903 2009-10-03 20:21:21Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: aurelien <aurelien@archlinux.org>
+# Contributor: Herb Rose (hrose56@yahoo.com)
+
+pkgname=indent
+pkgver=2.2.10
+pkgrel=4
+pkgdesc="The GNU Pretty-printer"
+arch=('i686' 'x86_64')
+url="http://indent.isidore-it.eu/beautify.html"
+depends=('glibc' 'texinfo')
+license=('GPL3')
+install=indent.install
+source=(http://indent.isidore-it.eu/$pkgname-$pkgver.tar.gz)
+md5sums=('be35ea62705733859fbf8caf816d8959')
+sha1sums=('20fa8a7a4af6670c3254c8b87020291c3db37ed1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # Fix doc install path
+ sed -i 's|^docdir = .*$|docdir = @docdir@|' doc/Makefile.in || return 1
+
+ # Fix manpage installation
+ sed -i 's|\(info texinfo2man\)\.c Makefile\.am|\1|' man/Makefile.in || return 1
+ rm man/indent.1
+
+ ./configure --prefix=/usr --datadir=/usr/share --docdir=/usr/share/doc/indent || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/indent/indent-2.2.9-file.diff b/extra/indent/indent-2.2.9-file.diff
new file mode 100644
index 000000000..511995c0b
--- /dev/null
+++ b/extra/indent/indent-2.2.9-file.diff
@@ -0,0 +1,12 @@
+diff -Naur indent-2.2.9.orig/src/indent.h indent-2.2.9/src/indent.h
+--- indent-2.2.9.orig/src/indent.h 2002-11-10 22:02:48.000000000 +0100
++++ indent-2.2.9/src/indent.h 2005-10-30 11:53:10.000000000 +0100
+@@ -96,8 +96,6 @@
+ /* Size of the input program, not including the ' \n\0' we add at the end */
+ extern unsigned long in_prog_size;
+
+-/* The output file. */
+-extern FILE *output;
+
+
+
diff --git a/extra/indent/indent.install b/extra/indent/indent.install
new file mode 100644
index 000000000..c48622c55
--- /dev/null
+++ b/extra/indent/indent.install
@@ -0,0 +1,14 @@
+info_dir=/usr/share/info
+info_file=indent.info.gz
+
+post_install() {
+ install-info ${info_dir}/$info_file ${info_dir}/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete ${info_dir}/$info_file ${info_dir}/dir 2> /dev/null
+}
diff --git a/extra/inkscape/PKGBUILD b/extra/inkscape/PKGBUILD
new file mode 100644
index 000000000..888adcdfc
--- /dev/null
+++ b/extra/inkscape/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 114609 2011-03-14 15:02:27Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=inkscape
+pkgver=0.48.1
+pkgrel=2
+pkgdesc='Vector graphics editor using the SVG file format'
+url='http://inkscape.sourceforge.net/'
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+makedepends=('boost' 'pkg-config' 'intltool')
+depends=('gc' 'gtkmm' 'poppler-glib' 'pyxml' 'libxslt' 'gsl' 'popt' 'python2'
+ 'gtkspell' 'imagemagick' 'desktop-file-utils' 'hicolor-icon-theme')
+optdepends=('python2-numpy: some extensions'
+ 'python-lxml: some extensions and filters')
+options=('!libtool')
+install=inkscape.install
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('a43467119925aee70d1d63d746f9846abb4dea91')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-python \
+ --with-perl \
+ --without-gnome-vfs \
+ --with-xft \
+ --enable-lcms \
+ --enable-poppler-cairo \
+ --disable-dependency-tracking
+
+ sed -i 's|/usr/bin/python\>|/usr/bin/python2|g' cxxtest/*.py
+ sed -i 's|/usr/bin/env python\>|/usr/bin/env python2|g' share/*/{test/,}*.py
+ sed -i 's|"python" },|"python2" },|g' src/extension/implementation/script.cpp
+ sed -i 's|\<python -c |python2 -c|g' share/extensions/uniconv*.py
+ sed -i 's|"python"|"python2"|g' src/main.cpp
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/inkscape/inkscape.install b/extra/inkscape/inkscape.install
new file mode 100644
index 000000000..c4b2efa09
--- /dev/null
+++ b/extra/inkscape/inkscape.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+
+post_remove() {
+ post_install
+}
diff --git a/extra/iperf/PKGBUILD b/extra/iperf/PKGBUILD
new file mode 100644
index 000000000..d37cd1c6c
--- /dev/null
+++ b/extra/iperf/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 86402 2010-08-01 10:53:45Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=iperf
+pkgver=2.0.5
+pkgrel=1
+pkgdesc="A tool to measure maximum TCP bandwidth"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://iperf.sourceforge.net"
+depends=(gcc-libs)
+source=(http://downloads.sourceforge.net/iperf/iperf-2.0.5.tar.gz
+ license)
+md5sums=('44b5536b67719f4250faed632a3cd016'
+ 'a2879f900b76668b28a1cc922909db18')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -Dm644 ${srcdir}/license "${pkgdir}/usr/share/licenses/iperf/LICENSE" || return 1
+}
diff --git a/extra/iperf/license b/extra/iperf/license
new file mode 100644
index 000000000..e31f98080
--- /dev/null
+++ b/extra/iperf/license
@@ -0,0 +1,25 @@
+Copyright (c) 1999-2006, The Board of Trustees of the University of Illinois
+All Rights Reserved.
+
+Iperf performance test
+Mark Gates
+Ajay Tirumala
+Jim Ferguson
+Jon Dugan
+Feng Qin
+Kevin Gibbs
+John Estabrook
+National Laboratory for Applied Network Research
+National Center for Supercomputing Applications
+University of Illinois at Urbana-Champaign
+http://www.ncsa.uiuc.edu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software (Iperf) and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimers in the documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the University of Illinois, NCSA, nor the names of its contributors may be used to endorse or promote products derived from this Software without specific prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/extra/ipod-sharp/PKGBUILD b/extra/ipod-sharp/PKGBUILD
new file mode 100644
index 000000000..a5dd0f755
--- /dev/null
+++ b/extra/ipod-sharp/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 59294 2009-11-21 20:34:51Z jgc $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
+pkgname=ipod-sharp
+pkgver=0.8.5
+pkgrel=1
+pkgdesc="C# bindings for libipoddevice"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://download.banshee-project.org/ipod-sharp/"
+depends=('podsleuth' 'ndesk-dbus-glib' 'gtk-sharp-2')
+options=(!makeflags)
+source=(http://download.banshee-project.org/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7c5b02872c75a7d61662e266e6f7a2a1aae14f71d9820a59faef2813dcd825fd')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-docs || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ rm -fr "${MONO_SHARED_DIR}"
+}
diff --git a/extra/iptraf/PKGBUILD b/extra/iptraf/PKGBUILD
new file mode 100644
index 000000000..455619c26
--- /dev/null
+++ b/extra/iptraf/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 32907 2009-04-02 15:33:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Kevin Piche <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=iptraf
+pkgver=3.0.0
+pkgrel=2
+pkgdesc="An IP network monitor."
+arch=('i686' 'x86_64')
+url="http://iptraf.seul.org/"
+depends=('ncurses>=5.6-7')
+license=('GPL')
+options=('!makeflags')
+source=(ftp://iptraf.seul.org/pub/$pkgname/$pkgname-$pkgver.tar.gz
+ iptraf-$pkgver-headerfix.patch)
+md5sums=('377371c28ee3c21a76f7024920649ea8'
+ '1d7f4a5c81086463452e73dae1799acf')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ patch -Np1 -i ../$pkgname-$pkgver-headerfix.patch || return 1
+ cd src/
+ sed -i -e s:/var/local/iptraf:/var/lib/iptraf: \
+ -e s:/usr/local/bin:/usr/sbin: dirs.h
+ make CFLAGS="$CFLAGS" DEBUG="" TARGET="/usr/sbin" \
+ WORKDIR="/var/lib/iptraf" clean all || return 1
+
+ for sbin in iptraf rvnamed; do
+ install -D -m755 $sbin ${pkgdir}/usr/sbin/$sbin
+ done
+
+ cd ../Documentation
+ for man in *.8; do
+ install -D -m644 $man ${pkgdir}/usr/share/man/man8/$man
+ done
+ mkdir -p ${pkgdir}/var/{lib,log,run}/iptraf
+}
+# vim: ts=2: ft=sh
diff --git a/extra/iptraf/iptraf-3.0.0-headerfix.patch b/extra/iptraf/iptraf-3.0.0-headerfix.patch
new file mode 100644
index 000000000..604d63e26
--- /dev/null
+++ b/extra/iptraf/iptraf-3.0.0-headerfix.patch
@@ -0,0 +1,25 @@
+diff -Naur iptraf-3.0.0-minus/src/othptab.c iptraf-3.0.0/src/othptab.c
+--- iptraf-3.0.0-minus/src/othptab.c 2006-09-27 03:30:33.000000000 +0200
++++ iptraf-3.0.0/src/othptab.c 2006-09-27 03:34:24.000000000 +0200
+@@ -17,6 +17,7 @@
+ ***/
+
+ #include <asm/types.h>
++#include <sys/types.h>
+ #include <linux/if_ether.h>
+ #include <winops.h>
+ #include "arphdr.h"
+diff -Naur iptraf-3.0.0-minus/src/tr.c iptraf-3.0.0/src/tr.c
+--- iptraf-3.0.0-minus/src/tr.c 2005-09-13 08:42:54.000000000 +0200
++++ iptraf-3.0.0/src/tr.c 2006-09-27 03:32:54.000000000 +0200
+@@ -7,8 +7,8 @@
+ */
+
+ #include <asm/types.h>
+-#include <linux/if_tr.h>
+ #include <netinet/in.h>
++#include <linux/if_tr.h>
+
+ unsigned int get_tr_ip_offset(unsigned char *pkt)
+ {
+
diff --git a/extra/irqbalance/PKGBUILD b/extra/irqbalance/PKGBUILD
new file mode 100644
index 000000000..13db8d06b
--- /dev/null
+++ b/extra/irqbalance/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Martin Striz <ms@poruba.net>
+
+pkgname=irqbalance
+pkgver=0.56
+pkgrel=1
+pkgdesc="IRQ balancing daemon for SMP systems"
+arch=('i686' 'x86_64')
+url="http://www.irqbalance.org/"
+license=('GPL')
+depends=(glib2)
+makedepends=(pkgconfig)
+backup=(etc/conf.d/irqbalance)
+source=(http://irqbalance.googlecode.com/files/irqbalance-$pkgver.tbz2
+ irqbalance.conf.d
+ irqbalance.rc.d)
+md5sums=('cd0c4d3b2bb84778a04fc594ad83949a'
+ '336c1ee99818f9ecda1687e34c69fd6b'
+ 'fb82fc5d267d39110baf720d81282a7c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./autogen.sh
+ ./configure
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m755 irqbalance $pkgdir/usr/sbin/irqbalance
+ install -D -m644 irqbalance.1 $pkgdir/usr/share/man/man1/irqbalance.1
+ install -D -m644 ../irqbalance.conf.d $pkgdir/etc/conf.d/irqbalance
+ install -D -m755 ../irqbalance.rc.d $pkgdir/etc/rc.d/irqbalance
+}
diff --git a/extra/irqbalance/irqbalance.conf.d b/extra/irqbalance/irqbalance.conf.d
new file mode 100644
index 000000000..ef1bdfd75
--- /dev/null
+++ b/extra/irqbalance/irqbalance.conf.d
@@ -0,0 +1,6 @@
+#
+# Settings for irqbalance daemon
+#
+
+# one shot mode - set to 1 if you have Pentium 4 with HT
+ONESHOT=0
diff --git a/extra/irqbalance/irqbalance.rc.d b/extra/irqbalance/irqbalance.rc.d
new file mode 100644
index 000000000..987c26b51
--- /dev/null
+++ b/extra/irqbalance/irqbalance.rc.d
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# source application-specific settings
+ONESHOT=0
+[ -f /etc/conf.d/irqbalance ] && . /etc/conf.d/irqbalance
+
+if [ "$ONESHOT" -ne 0 ]; then
+ ONESHOT_CMD="--oneshot"
+fi
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/irqbalance`
+case "$1" in
+ start)
+ stat_busy "Starting IRQ balancing"
+ [ -z "$PID" ] && /usr/sbin/irqbalance $ONESHOT_CMD
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ if [ "$ONESHOT" -eq 0 ]; then
+ add_daemon irqbalance
+ fi
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping IRQ balancing"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon irqbalance
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/irssi/PKGBUILD b/extra/irssi/PKGBUILD
new file mode 100644
index 000000000..9fe5258a1
--- /dev/null
+++ b/extra/irssi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 102836 2010-12-12 08:15:33Z angvp $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Dan McGee <dan@archlinux.org>
+
+pkgname=irssi
+pkgver=0.8.15
+pkgrel=4
+pkgdesc="Modular text mode IRC client with Perl scripting"
+arch=('i686' 'x86_64')
+url="http://irssi.org/"
+license=('GPL')
+depends=('glib2' 'openssl' 'perl')
+optdepends=('perl-libwww: for the scriptassist script')
+backup=(etc/irssi.conf)
+source=(http://irssi.org/files/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+md5sums=('1dcb3f511b88df94b0c996f36668c7da')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --enable-ipv6 \
+ --with-proxy \
+ --sysconfdir=/etc \
+ --with-perl-lib=vendor
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/isapnptools/PKGBUILD b/extra/isapnptools/PKGBUILD
new file mode 100644
index 000000000..e29d4cf94
--- /dev/null
+++ b/extra/isapnptools/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 68051 2010-02-10 15:42:28Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=isapnptools
+pkgver=1.27
+pkgrel=2
+pkgdesc="Allow ISA Plug-And-Play devices to be configured on a Linux machine"
+url="http://www.roestock.demon.co.uk/isapnptools/"
+depends=('glibc')
+arch=('i686' 'x86_64')
+license=('GPL')
+source=(ftp://metalab.unc.edu/pub/Linux/system/hardware/${pkgname}-${pkgver}.tgz)
+md5sums=('b997ba56583dc850fce9b93d658dfa0c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/ispell/ChangeLog b/extra/ispell/ChangeLog
new file mode 100644
index 000000000..edb12c3bb
--- /dev/null
+++ b/extra/ispell/ChangeLog
@@ -0,0 +1,6 @@
+2008-03-31 Eric Belanger <eric@archlinux.org>
+
+ * ispell 3.3.02-2
+ * FSH man pages
+ * Added ChangeLog
+
diff --git a/extra/ispell/PKGBUILD b/extra/ispell/PKGBUILD
new file mode 100644
index 000000000..c634a1962
--- /dev/null
+++ b/extra/ispell/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 80733 2010-05-20 21:55:16Z dgriffiths $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=ispell
+pkgver=3.3.02
+pkgrel=4
+pkgdesc="An interactive spell-checking program for Unix"
+arch=('i686' 'x86_64')
+url="http://ficus-www.cs.ucla.edu/geoff/ispell.html"
+license=('BSD')
+depends=('ncurses')
+options=('!makeflags')
+source=(http://fmg-www.cs.ucla.edu/geoff/tars/${pkgname}-${pkgver}.tar.gz
+ license.txt getline.patch)
+md5sums=('12087d7555fc2b746425cd167af480fe' 'bf51b6181b9914dedc266ba970bb7319'
+ '1dca21c5d56405fe592175c3dde2fda2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -p0 < ${srcdir}/getline.patch || return 1
+
+ sed -i 's/#undef USG/#define USG/' local.h.linux
+ sed -i 's|/usr/local|/usr|' local.h.linux
+ sed -i 's|/lib|/lib/ispell|' local.h.linux
+ cp local.h.linux local.h
+ make TMPDIR=/tmp all || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # Installing binary tools
+ install -Dm755 buildhash ${pkgdir}/usr/bin/buildhash
+ install -Dm755 findaffix ${pkgdir}/usr/bin/findaffix
+ install -Dm755 icombine ${pkgdir}/usr/bin/icombine
+ install -Dm755 ijoin ${pkgdir}/usr/bin/ijoin
+ install -Dm755 ispell ${pkgdir}/usr/bin/ispell
+ install -Dm755 iwhich ${pkgdir}/usr/bin/iwhich
+ install -Dm755 munchlist ${pkgdir}/usr/bin/munchlist
+ install -Dm755 tryaffix ${pkgdir}/usr/bin/tryaffix
+
+ # Installing man pages
+ install -Dm644 ispell.1 ${pkgdir}/usr/share/man/man1/ispell.1
+ install -Dm644 ispell.5 ${pkgdir}/usr/share/man/man5/ispell.5
+
+ # Installing dictionnaries
+ install -d ${pkgdir}/usr/bin ${pkgdir}/usr/lib/ispell
+ install -m644 languages/american/americanmed.hash \
+ ${pkgdir}/usr/lib/ispell/americanmed.hash
+ install -m644 languages/english/english.aff \
+ ${pkgdir}/usr/lib/ispell/english.aff
+ ln -s americanmed.hash ${pkgdir}/usr/lib/ispell/american.hash
+ ln -s americanmed.hash ${pkgdir}/usr/lib/ispell/english.hash
+
+ # Installing license
+ install -Dm644 ${srcdir}/license.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/extra/ispell/getline.patch b/extra/ispell/getline.patch
new file mode 100644
index 000000000..196077218
--- /dev/null
+++ b/extra/ispell/getline.patch
@@ -0,0 +1,47 @@
+--- ispell-3.3.02/correct.c 2005-04-28 09:46:51.000000000 -0500
++++ correct.c 2010-05-20 16:36:37.000000000 -0500
+@@ -245,7 +245,7 @@
+ struct flagent * sufent,
+ ichar_t savearea[MAX_CAPS][INPUTWORDLEN + MAXAFFIXLEN],
+ int * nsaved));
+-static char * getline P ((char * buf, int bufsize));
++static char * mygetline P ((char * buf, int bufsize));
+ void askmode P ((void));
+ void copyout P ((unsigned char ** cc, int cnt));
+ static void lookharder P ((unsigned char * string));
+@@ -571,7 +571,7 @@
+
+ imove (li - 1, 0);
+ (void) putchar ('!');
+- if (getline ((char *) buf, sizeof buf) == NULL)
++ if (mygetline ((char *) buf, sizeof buf) == NULL)
+ {
+ (void) putchar (7);
+ ierase ();
+@@ -596,7 +596,7 @@
+ (void) printf ("%s ", CORR_C_READONLY);
+ }
+ (void) printf (CORR_C_REPLACE_WITH);
+- if (getline ((char *) ctok, ctokl) == NULL)
++ if (mygetline ((char *) ctok, ctokl) == NULL)
+ {
+ (void) putchar (7);
+ /* Put it back */
+@@ -664,7 +664,7 @@
+ unsigned char buf[100];
+ imove (li - 1, 0);
+ (void) printf (CORR_C_LOOKUP_PROMPT);
+- if (getline ((char *) buf, sizeof buf) == NULL)
++ if (mygetline ((char *) buf, sizeof buf) == NULL)
+ {
+ (void) putchar (7);
+ ierase ();
+@@ -1583,7 +1583,7 @@
+ return;
+ }
+
+-static char * getline (s, len)
++static char * mygetline (s, len)
+ register char * s;
+ register int len;
+ {
diff --git a/extra/ispell/license.txt b/extra/ispell/license.txt
new file mode 100644
index 000000000..6d6569a3a
--- /dev/null
+++ b/extra/ispell/license.txt
@@ -0,0 +1,35 @@
+ Copyright (c), 1983, by Pace Willisson
+
+ Copyright 1992, 1993, 1999, 2001, 2005, Geoff Kuenning, Claremont, CA
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. All modifications to the source code must be clearly marked as
+ such. Binary redistributions based on modified source code
+ must be clearly marked as modified versions in the documentation
+ and/or other materials provided with the distribution.
+ 4. The code that causes the 'ispell -v' command to display a prominent
+ link to the official ispell Web site may not be removed.
+ 5. The name of Geoff Kuenning may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL GEOFF KUENNING OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
diff --git a/extra/ivtv-utils/PKGBUILD b/extra/ivtv-utils/PKGBUILD
new file mode 100644
index 000000000..57d810d9d
--- /dev/null
+++ b/extra/ivtv-utils/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 89079 2010-08-29 10:28:03Z thomas $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+
+pkgname=ivtv-utils
+pkgver=1.4.1
+pkgrel=3
+pkgdesc="Userspace utilities for Hauppauge PVR cards"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://ivtvdriver.org"
+source=(http://dl.ivtvdriver.org/ivtv/stable/${pkgname}-${pkgver}.tar.gz
+ http://dl.ivtvdriver.org/ivtv/firmware/ivtv-firmware.tar.gz)
+depends=('gcc-libs')
+md5sums=('3a4219d698262ca2b28e41f0f547b0a2'
+ 'b9a871f1c569025be9c48a77b3515faf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" PREFIX=/usr install
+
+ cd "${srcdir}"
+ for file in v4l-cx2341x-dec.fw v4l-cx2341x-enc.fw v4l-pvrusb2-24xxx-01.fw v4l-pvrusb2-29xxx-01.fw v4l-cx2341x-init.mpg; do
+ install -D -m644 $file "${pkgdir}/lib/firmware/$file"
+ done
+
+ # FS#15133 - files already provided by the kernel-headers package
+ rm -rf "${pkgdir}"/usr/include
+ # Resolve conflict with v4l-utils
+ rm -f "${pkgdir}"/usr/bin/v4l2-ctl
+}
diff --git a/extra/jack/PKGBUILD b/extra/jack/PKGBUILD
new file mode 100644
index 000000000..ae9cd0ab2
--- /dev/null
+++ b/extra/jack/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 112020 2011-03-03 07:49:00Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: tobias <tobias@archlinux.net>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=jack
+_longname=jack-audio-connection-kit
+pkgver=0.120.1
+pkgrel=1
+pkgdesc="A low-latency audio server"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('libsamplerate' 'readline')
+makedepends=('doxygen' 'libffado')
+optdepends=('libffado: FireWire support')
+url="http://jackaudio.org/"
+options=('!libtool')
+provides=("$_longname=$pkgver")
+replaces=("$_longname")
+changelog=$pkgname.changelog
+source=("http://jackaudio.org/downloads/$_longname-$pkgver.tar.gz")
+md5sums=('e45bab906be64e4e2752cbd855a8efd5')
+
+build() {
+ cd "$srcdir/$_longname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib
+ make
+}
+
+package() {
+ cd "$srcdir/$_longname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/jack/jack.changelog b/extra/jack/jack.changelog
new file mode 100644
index 000000000..04c0c73ec
--- /dev/null
+++ b/extra/jack/jack.changelog
@@ -0,0 +1,19 @@
+3 Mar 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.120.1-1:
+ Upstream release
+
+8 Aug 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.118.0-4 :
+ Built against libffado
+ - for FireWire support (see FS#19626)
+ Removed init scripts (no longer in tarball; unsupported).
+
+ * PKGBUILD :
+ URL updated.
+ Licenses now GPL, LGPL according to 2-or-later convention
+ - removed custom installation (both are common)
+
+ * jack.changelog :
+ Added this changelog.
diff --git a/extra/jade/PKGBUILD b/extra/jade/PKGBUILD
new file mode 100644
index 000000000..de49761b0
--- /dev/null
+++ b/extra/jade/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 102540 2010-12-07 23:38:21Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=jade
+pkgver=1.2.1
+pkgrel=5
+_debpatch=47
+pkgdesc="James Clark's DSSSL Engine"
+url='http://www.jclark.com/jade/'
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('gcc-libs')
+replaces=('openjade')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.jclark.com/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ http://ftp.debian.org/debian/pool/main/j/jade/jade_${pkgver}-${_debpatch}.diff.gz)
+md5sums=('4239670ca6b578bff68b8c2e7cd1225f'
+ 'feb3889e2a5fa86ac6bdb742a25d0001')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/jade_${pkgver}-${_debpatch}.diff
+ chmod 755 configure
+ ./configure --prefix=/usr --enable-default-catalog=/usr/share/sgml/catalog
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -d -m755 ${pkgdir}/usr/lib
+ make prefix=${pkgdir}/usr install
+ mv ${pkgdir}/usr/bin/sx ${pkgdir}/usr/bin/sgml2xml
+ install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/
+}
diff --git a/extra/jasper/PKGBUILD b/extra/jasper/PKGBUILD
new file mode 100644
index 000000000..542f1a91e
--- /dev/null
+++ b/extra/jasper/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 87502 2010-08-15 02:53:20Z eric $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=jasper
+pkgver=1.900.1
+pkgrel=6
+pkgdesc="A software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard"
+arch=('i686' 'x86_64')
+url="http://www.ece.uvic.ca/~mdadams/jasper/"
+license=('custom:JasPer2.0')
+depends=('libjpeg' 'freeglut' 'libxi' 'libxmu' 'mesa')
+makedepends=('unzip')
+options=('!libtool')
+source=(http://www.ece.uvic.ca/~mdadams/${pkgname}/software/${pkgname}-${pkgver}.zip jpc_dec.c.patch
+ patch-libjasper-stepsizes-overflow.diff jasper-1.900.1-CVE-2008-3520.patch
+ jasper-1.900.1-CVE-2008-3522.patch)
+md5sums=('a342b2b4495b3e1394e161eb5d85d754' '36de7128eea6f701c1e2e13ce5bd8d37'\
+ '24785d8eb3eea19eec7e77d59f3e6a25' '911bb13529483c093d12c15eed4e9243'\
+ 'ed441f30c4231f319d9ff77d86db2ef9')
+sha1sums=('9c5735f773922e580bf98c7c7dfda9bbed4c5191' 'c1a0176a15210c0af14d85e55ce566921957d780'\
+ 'f298566fef08c8a589d072582112cd51c72c3983' '2483dba925670bf29f531d85d73c4e5ada513b01'\
+ '0e7b6142cd9240ffb15a1ed7297c43c76fa09ee4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 < "${srcdir}/jpc_dec.c.patch"
+ patch -Np1 < "${srcdir}/patch-libjasper-stepsizes-overflow.diff"
+ patch -Np1 < "${srcdir}/jasper-1.900.1-CVE-2008-3520.patch"
+ patch -Np1 < "${srcdir}/jasper-1.900.1-CVE-2008-3522.patch"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-shared
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 LICENSE \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/jasper/jasper-1.900.1-CVE-2008-3520.patch b/extra/jasper/jasper-1.900.1-CVE-2008-3520.patch
new file mode 100644
index 000000000..0f5e3b746
--- /dev/null
+++ b/extra/jasper/jasper-1.900.1-CVE-2008-3520.patch
@@ -0,0 +1,928 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2008-3520
+
+OpenBSD jas_malloc hardening patches
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_cm.c jasper-1.900.1/src/libjasper/base/jas_cm.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_cm.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_cm.c 2009-10-22 10:27:45.000000000 +0200
+@@ -704,8 +704,7 @@ static int jas_cmpxformseq_resize(jas_cm
+ {
+ jas_cmpxform_t **p;
+ assert(n >= pxformseq->numpxforms);
+- p = (!pxformseq->pxforms) ? jas_malloc(n * sizeof(jas_cmpxform_t *)) :
+- jas_realloc(pxformseq->pxforms, n * sizeof(jas_cmpxform_t *));
++ p = jas_realloc2(pxformseq->pxforms, n, sizeof(jas_cmpxform_t *));
+ if (!p) {
+ return -1;
+ }
+@@ -889,13 +888,13 @@ static int jas_cmshapmatlut_set(jas_cmsh
+ jas_cmshapmatlut_cleanup(lut);
+ if (curv->numents == 0) {
+ lut->size = 2;
+- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t))))
++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t))))
+ goto error;
+ lut->data[0] = 0.0;
+ lut->data[1] = 1.0;
+ } else if (curv->numents == 1) {
+ lut->size = 256;
+- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t))))
++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t))))
+ goto error;
+ gamma = curv->ents[0] / 256.0;
+ for (i = 0; i < lut->size; ++i) {
+@@ -903,7 +902,7 @@ static int jas_cmshapmatlut_set(jas_cmsh
+ }
+ } else {
+ lut->size = curv->numents;
+- if (!(lut->data = jas_malloc(lut->size * sizeof(jas_cmreal_t))))
++ if (!(lut->data = jas_alloc2(lut->size, sizeof(jas_cmreal_t))))
+ goto error;
+ for (i = 0; i < lut->size; ++i) {
+ lut->data[i] = curv->ents[i] / 65535.0;
+@@ -953,7 +952,7 @@ static int jas_cmshapmatlut_invert(jas_c
+ return -1;
+ }
+ }
+- if (!(invlut->data = jas_malloc(n * sizeof(jas_cmreal_t))))
++ if (!(invlut->data = jas_alloc2(n, sizeof(jas_cmreal_t))))
+ return -1;
+ invlut->size = n;
+ for (i = 0; i < invlut->size; ++i) {
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_icc.c jasper-1.900.1/src/libjasper/base/jas_icc.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_icc.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_icc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -373,7 +373,7 @@ int jas_iccprof_save(jas_iccprof_t *prof
+ jas_icctagtab_t *tagtab;
+
+ tagtab = &prof->tagtab;
+- if (!(tagtab->ents = jas_malloc(prof->attrtab->numattrs *
++ if (!(tagtab->ents = jas_alloc2(prof->attrtab->numattrs,
+ sizeof(jas_icctagtabent_t))))
+ goto error;
+ tagtab->numents = prof->attrtab->numattrs;
+@@ -522,7 +522,7 @@ static int jas_iccprof_gettagtab(jas_str
+ }
+ if (jas_iccgetuint32(in, &tagtab->numents))
+ goto error;
+- if (!(tagtab->ents = jas_malloc(tagtab->numents *
++ if (!(tagtab->ents = jas_alloc2(tagtab->numents,
+ sizeof(jas_icctagtabent_t))))
+ goto error;
+ tagtabent = tagtab->ents;
+@@ -743,8 +743,7 @@ static int jas_iccattrtab_resize(jas_icc
+ {
+ jas_iccattr_t *newattrs;
+ assert(maxents >= tab->numattrs);
+- newattrs = tab->attrs ? jas_realloc(tab->attrs, maxents *
+- sizeof(jas_iccattr_t)) : jas_malloc(maxents * sizeof(jas_iccattr_t));
++ newattrs = jas_realloc2(tab->attrs, maxents, sizeof(jas_iccattr_t));
+ if (!newattrs)
+ return -1;
+ tab->attrs = newattrs;
+@@ -999,7 +998,7 @@ static int jas_icccurv_input(jas_iccattr
+
+ if (jas_iccgetuint32(in, &curv->numents))
+ goto error;
+- if (!(curv->ents = jas_malloc(curv->numents * sizeof(jas_iccuint16_t))))
++ if (!(curv->ents = jas_alloc2(curv->numents, sizeof(jas_iccuint16_t))))
+ goto error;
+ for (i = 0; i < curv->numents; ++i) {
+ if (jas_iccgetuint16(in, &curv->ents[i]))
+@@ -1100,7 +1099,7 @@ static int jas_icctxtdesc_input(jas_icca
+ if (jas_iccgetuint32(in, &txtdesc->uclangcode) ||
+ jas_iccgetuint32(in, &txtdesc->uclen))
+ goto error;
+- if (!(txtdesc->ucdata = jas_malloc(txtdesc->uclen * 2)))
++ if (!(txtdesc->ucdata = jas_alloc2(txtdesc->uclen, 2)))
+ goto error;
+ if (jas_stream_read(in, txtdesc->ucdata, txtdesc->uclen * 2) !=
+ JAS_CAST(int, txtdesc->uclen * 2))
+@@ -1292,17 +1291,17 @@ static int jas_icclut8_input(jas_iccattr
+ jas_iccgetuint16(in, &lut8->numouttabents))
+ goto error;
+ clutsize = jas_iccpowi(lut8->clutlen, lut8->numinchans) * lut8->numoutchans;
+- if (!(lut8->clut = jas_malloc(clutsize * sizeof(jas_iccuint8_t))) ||
+- !(lut8->intabsbuf = jas_malloc(lut8->numinchans *
+- lut8->numintabents * sizeof(jas_iccuint8_t))) ||
+- !(lut8->intabs = jas_malloc(lut8->numinchans *
++ if (!(lut8->clut = jas_alloc2(clutsize, sizeof(jas_iccuint8_t))) ||
++ !(lut8->intabsbuf = jas_alloc3(lut8->numinchans,
++ lut8->numintabents, sizeof(jas_iccuint8_t))) ||
++ !(lut8->intabs = jas_alloc2(lut8->numinchans,
+ sizeof(jas_iccuint8_t *))))
+ goto error;
+ for (i = 0; i < lut8->numinchans; ++i)
+ lut8->intabs[i] = &lut8->intabsbuf[i * lut8->numintabents];
+- if (!(lut8->outtabsbuf = jas_malloc(lut8->numoutchans *
+- lut8->numouttabents * sizeof(jas_iccuint8_t))) ||
+- !(lut8->outtabs = jas_malloc(lut8->numoutchans *
++ if (!(lut8->outtabsbuf = jas_alloc3(lut8->numoutchans,
++ lut8->numouttabents, sizeof(jas_iccuint8_t))) ||
++ !(lut8->outtabs = jas_alloc2(lut8->numoutchans,
+ sizeof(jas_iccuint8_t *))))
+ goto error;
+ for (i = 0; i < lut8->numoutchans; ++i)
+@@ -1461,17 +1460,17 @@ static int jas_icclut16_input(jas_iccatt
+ jas_iccgetuint16(in, &lut16->numouttabents))
+ goto error;
+ clutsize = jas_iccpowi(lut16->clutlen, lut16->numinchans) * lut16->numoutchans;
+- if (!(lut16->clut = jas_malloc(clutsize * sizeof(jas_iccuint16_t))) ||
+- !(lut16->intabsbuf = jas_malloc(lut16->numinchans *
+- lut16->numintabents * sizeof(jas_iccuint16_t))) ||
+- !(lut16->intabs = jas_malloc(lut16->numinchans *
++ if (!(lut16->clut = jas_alloc2(clutsize, sizeof(jas_iccuint16_t))) ||
++ !(lut16->intabsbuf = jas_alloc3(lut16->numinchans,
++ lut16->numintabents, sizeof(jas_iccuint16_t))) ||
++ !(lut16->intabs = jas_alloc2(lut16->numinchans,
+ sizeof(jas_iccuint16_t *))))
+ goto error;
+ for (i = 0; i < lut16->numinchans; ++i)
+ lut16->intabs[i] = &lut16->intabsbuf[i * lut16->numintabents];
+- if (!(lut16->outtabsbuf = jas_malloc(lut16->numoutchans *
+- lut16->numouttabents * sizeof(jas_iccuint16_t))) ||
+- !(lut16->outtabs = jas_malloc(lut16->numoutchans *
++ if (!(lut16->outtabsbuf = jas_alloc3(lut16->numoutchans,
++ lut16->numouttabents, sizeof(jas_iccuint16_t))) ||
++ !(lut16->outtabs = jas_alloc2(lut16->numoutchans,
+ sizeof(jas_iccuint16_t *))))
+ goto error;
+ for (i = 0; i < lut16->numoutchans; ++i)
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_image.c jasper-1.900.1/src/libjasper/base/jas_image.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_image.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_image.c 2009-10-22 10:27:45.000000000 +0200
+@@ -142,7 +142,7 @@ jas_image_t *jas_image_create(int numcmp
+ image->inmem_ = true;
+
+ /* Allocate memory for the per-component information. */
+- if (!(image->cmpts_ = jas_malloc(image->maxcmpts_ *
++ if (!(image->cmpts_ = jas_alloc2(image->maxcmpts_,
+ sizeof(jas_image_cmpt_t *)))) {
+ jas_image_destroy(image);
+ return 0;
+@@ -774,8 +774,7 @@ static int jas_image_growcmpts(jas_image
+ jas_image_cmpt_t **newcmpts;
+ int cmptno;
+
+- newcmpts = (!image->cmpts_) ? jas_malloc(maxcmpts * sizeof(jas_image_cmpt_t *)) :
+- jas_realloc(image->cmpts_, maxcmpts * sizeof(jas_image_cmpt_t *));
++ newcmpts = jas_realloc2(image->cmpts_, maxcmpts, sizeof(jas_image_cmpt_t *));
+ if (!newcmpts) {
+ return -1;
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_malloc.c jasper-1.900.1/src/libjasper/base/jas_malloc.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_malloc.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_malloc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -76,6 +76,9 @@
+
+ /* We need the prototype for memset. */
+ #include <string.h>
++#include <limits.h>
++#include <errno.h>
++#include <stdint.h>
+
+ #include "jasper/jas_malloc.h"
+
+@@ -113,18 +116,50 @@ void jas_free(void *ptr)
+
+ void *jas_realloc(void *ptr, size_t size)
+ {
+- return realloc(ptr, size);
++ return ptr ? realloc(ptr, size) : malloc(size);
+ }
+
+-void *jas_calloc(size_t nmemb, size_t size)
++void *jas_realloc2(void *ptr, size_t nmemb, size_t size)
++{
++ if (!ptr)
++ return jas_alloc2(nmemb, size);
++ if (nmemb && SIZE_MAX / nmemb < size) {
++ errno = ENOMEM;
++ return NULL;
++ }
++ return jas_realloc(ptr, nmemb * size);
++
++}
++
++void *jas_alloc2(size_t nmemb, size_t size)
++{
++ if (nmemb && SIZE_MAX / nmemb < size) {
++ errno = ENOMEM;
++ return NULL;
++ }
++
++ return jas_malloc(nmemb * size);
++}
++
++void *jas_alloc3(size_t a, size_t b, size_t c)
+ {
+- void *ptr;
+ size_t n;
+- n = nmemb * size;
+- if (!(ptr = jas_malloc(n * sizeof(char)))) {
+- return 0;
++
++ if (a && SIZE_MAX / a < b) {
++ errno = ENOMEM;
++ return NULL;
+ }
+- memset(ptr, 0, n);
++
++ return jas_alloc2(a*b, c);
++}
++
++void *jas_calloc(size_t nmemb, size_t size)
++{
++ void *ptr;
++
++ ptr = jas_alloc2(nmemb, size);
++ if (ptr)
++ memset(ptr, 0, nmemb*size);
+ return ptr;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_seq.c jasper-1.900.1/src/libjasper/base/jas_seq.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_seq.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_seq.c 2009-10-22 10:27:45.000000000 +0200
+@@ -114,7 +114,7 @@ jas_matrix_t *jas_matrix_create(int numr
+ matrix->datasize_ = numrows * numcols;
+
+ if (matrix->maxrows_ > 0) {
+- if (!(matrix->rows_ = jas_malloc(matrix->maxrows_ *
++ if (!(matrix->rows_ = jas_alloc2(matrix->maxrows_,
+ sizeof(jas_seqent_t *)))) {
+ jas_matrix_destroy(matrix);
+ return 0;
+@@ -122,7 +122,7 @@ jas_matrix_t *jas_matrix_create(int numr
+ }
+
+ if (matrix->datasize_ > 0) {
+- if (!(matrix->data_ = jas_malloc(matrix->datasize_ *
++ if (!(matrix->data_ = jas_alloc2(matrix->datasize_,
+ sizeof(jas_seqent_t)))) {
+ jas_matrix_destroy(matrix);
+ return 0;
+@@ -220,7 +220,7 @@ void jas_matrix_bindsub(jas_matrix_t *ma
+ mat0->numrows_ = r1 - r0 + 1;
+ mat0->numcols_ = c1 - c0 + 1;
+ mat0->maxrows_ = mat0->numrows_;
+- mat0->rows_ = jas_malloc(mat0->maxrows_ * sizeof(jas_seqent_t *));
++ mat0->rows_ = jas_alloc2(mat0->maxrows_, sizeof(jas_seqent_t *));
+ for (i = 0; i < mat0->numrows_; ++i) {
+ mat0->rows_[i] = mat1->rows_[r0 + i] + c0;
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_stream.c jasper-1.900.1/src/libjasper/base/jas_stream.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_stream.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2009-10-22 10:27:45.000000000 +0200
+@@ -212,7 +212,7 @@ jas_stream_t *jas_stream_memopen(char *b
+ if (buf) {
+ obj->buf_ = (unsigned char *) buf;
+ } else {
+- obj->buf_ = jas_malloc(obj->bufsize_ * sizeof(char));
++ obj->buf_ = jas_malloc(obj->bufsize_);
+ obj->myalloc_ = 1;
+ }
+ if (!obj->buf_) {
+@@ -992,7 +992,7 @@ static int mem_resize(jas_stream_memobj_
+ unsigned char *buf;
+
+ assert(m->buf_);
+- if (!(buf = jas_realloc(m->buf_, bufsize * sizeof(unsigned char)))) {
++ if (!(buf = jas_realloc(m->buf_, bufsize))) {
+ return -1;
+ }
+ m->buf_ = buf;
+diff -pruN jasper-1.900.1.orig/src/libjasper/bmp/bmp_dec.c jasper-1.900.1/src/libjasper/bmp/bmp_dec.c
+--- jasper-1.900.1.orig/src/libjasper/bmp/bmp_dec.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/bmp/bmp_dec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -283,7 +283,7 @@ static bmp_info_t *bmp_getinfo(jas_strea
+ }
+
+ if (info->numcolors > 0) {
+- if (!(info->palents = jas_malloc(info->numcolors *
++ if (!(info->palents = jas_alloc2(info->numcolors,
+ sizeof(bmp_palent_t)))) {
+ bmp_info_destroy(info);
+ return 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/include/jasper/jas_malloc.h jasper-1.900.1/src/libjasper/include/jasper/jas_malloc.h
+--- jasper-1.900.1.orig/src/libjasper/include/jasper/jas_malloc.h 2007-01-19 22:43:04.000000000 +0100
++++ jasper-1.900.1/src/libjasper/include/jasper/jas_malloc.h 2009-10-22 10:27:45.000000000 +0200
+@@ -95,6 +95,9 @@ extern "C" {
+ #define jas_free MEMFREE
+ #define jas_realloc MEMREALLOC
+ #define jas_calloc MEMCALLOC
++#define jas_alloc2(a, b) MEMALLOC((a)*(b))
++#define jas_alloc3(a, b, c) MEMALLOC((a)*(b)*(c))
++#define jas_realloc2(p, a, b) MEMREALLOC((p), (a)*(b))
+ #endif
+
+ /******************************************************************************\
+@@ -115,6 +118,12 @@ void *jas_realloc(void *ptr, size_t size
+ /* Allocate a block of memory and initialize the contents to zero. */
+ void *jas_calloc(size_t nmemb, size_t size);
+
++/* size-checked double allocation .*/
++void *jas_alloc2(size_t, size_t);
++
++void *jas_alloc3(size_t, size_t, size_t);
++
++void *jas_realloc2(void *, size_t, size_t);
+ #endif
+
+ #ifdef __cplusplus
+diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_cod.c jasper-1.900.1/src/libjasper/jp2/jp2_cod.c
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_cod.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_cod.c 2009-10-22 10:30:24.000000000 +0200
+@@ -247,7 +247,7 @@ jp2_box_t *jp2_box_get(jas_stream_t *in)
+ box = 0;
+ tmpstream = 0;
+
+- if (!(box = jas_malloc(sizeof(jp2_box_t)))) {
++ if (!(box = jas_calloc(1, sizeof(jp2_box_t)))) {
+ goto error;
+ }
+ box->ops = &jp2_boxinfo_unk.ops;
+@@ -372,7 +372,7 @@ static int jp2_bpcc_getdata(jp2_box_t *b
+ jp2_bpcc_t *bpcc = &box->data.bpcc;
+ unsigned int i;
+ bpcc->numcmpts = box->datalen;
+- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts * sizeof(uint_fast8_t)))) {
++ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts, sizeof(uint_fast8_t)))) {
+ return -1;
+ }
+ for (i = 0; i < bpcc->numcmpts; ++i) {
+@@ -416,7 +416,7 @@ static int jp2_colr_getdata(jp2_box_t *b
+ break;
+ case JP2_COLR_ICC:
+ colr->iccplen = box->datalen - 3;
+- if (!(colr->iccp = jas_malloc(colr->iccplen * sizeof(uint_fast8_t)))) {
++ if (!(colr->iccp = jas_alloc2(colr->iccplen, sizeof(uint_fast8_t)))) {
+ return -1;
+ }
+ if (jas_stream_read(in, colr->iccp, colr->iccplen) != colr->iccplen) {
+@@ -453,7 +453,7 @@ static int jp2_cdef_getdata(jp2_box_t *b
+ if (jp2_getuint16(in, &cdef->numchans)) {
+ return -1;
+ }
+- if (!(cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t)))) {
++ if (!(cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t)))) {
+ return -1;
+ }
+ for (channo = 0; channo < cdef->numchans; ++channo) {
+@@ -766,7 +766,7 @@ static int jp2_cmap_getdata(jp2_box_t *b
+ unsigned int i;
+
+ cmap->numchans = (box->datalen) / 4;
+- if (!(cmap->ents = jas_malloc(cmap->numchans * sizeof(jp2_cmapent_t)))) {
++ if (!(cmap->ents = jas_alloc2(cmap->numchans, sizeof(jp2_cmapent_t)))) {
+ return -1;
+ }
+ for (i = 0; i < cmap->numchans; ++i) {
+@@ -828,10 +828,10 @@ static int jp2_pclr_getdata(jp2_box_t *b
+ return -1;
+ }
+ lutsize = pclr->numlutents * pclr->numchans;
+- if (!(pclr->lutdata = jas_malloc(lutsize * sizeof(int_fast32_t)))) {
++ if (!(pclr->lutdata = jas_alloc2(lutsize, sizeof(int_fast32_t)))) {
+ return -1;
+ }
+- if (!(pclr->bpc = jas_malloc(pclr->numchans * sizeof(uint_fast8_t)))) {
++ if (!(pclr->bpc = jas_alloc2(pclr->numchans, sizeof(uint_fast8_t)))) {
+ return -1;
+ }
+ for (i = 0; i < pclr->numchans; ++i) {
+diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c jasper-1.900.1/src/libjasper/jp2/jp2_dec.c
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_dec.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_dec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -336,7 +336,7 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ }
+
+ /* Allocate space for the channel-number to component-number LUT. */
+- if (!(dec->chantocmptlut = jas_malloc(dec->numchans * sizeof(uint_fast16_t)))) {
++ if (!(dec->chantocmptlut = jas_alloc2(dec->numchans, sizeof(uint_fast16_t)))) {
+ jas_eprintf("error: no memory\n");
+ goto error;
+ }
+@@ -354,7 +354,7 @@ jas_image_t *jp2_decode(jas_stream_t *in
+ if (cmapent->map == JP2_CMAP_DIRECT) {
+ dec->chantocmptlut[channo] = channo;
+ } else if (cmapent->map == JP2_CMAP_PALETTE) {
+- lutents = jas_malloc(pclrd->numlutents * sizeof(int_fast32_t));
++ lutents = jas_alloc2(pclrd->numlutents, sizeof(int_fast32_t));
+ for (i = 0; i < pclrd->numlutents; ++i) {
+ lutents[i] = pclrd->lutdata[cmapent->pcol + i * pclrd->numchans];
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/jp2/jp2_enc.c jasper-1.900.1/src/libjasper/jp2/jp2_enc.c
+--- jasper-1.900.1.orig/src/libjasper/jp2/jp2_enc.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jp2/jp2_enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -191,7 +191,7 @@ int sgnd;
+ }
+ bpcc = &box->data.bpcc;
+ bpcc->numcmpts = jas_image_numcmpts(image);
+- if (!(bpcc->bpcs = jas_malloc(bpcc->numcmpts *
++ if (!(bpcc->bpcs = jas_alloc2(bpcc->numcmpts,
+ sizeof(uint_fast8_t)))) {
+ goto error;
+ }
+@@ -285,7 +285,7 @@ int sgnd;
+ }
+ cdef = &box->data.cdef;
+ cdef->numchans = jas_image_numcmpts(image);
+- cdef->ents = jas_malloc(cdef->numchans * sizeof(jp2_cdefchan_t));
++ cdef->ents = jas_alloc2(cdef->numchans, sizeof(jp2_cdefchan_t));
+ for (i = 0; i < jas_image_numcmpts(image); ++i) {
+ cdefchanent = &cdef->ents[i];
+ cdefchanent->channo = i;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c jasper-1.900.1/src/libjasper/jpc/jpc_cs.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c 2009-10-22 09:58:16.000000000 +0200
++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2009-10-22 10:27:45.000000000 +0200
+@@ -502,7 +502,7 @@ static int jpc_siz_getparms(jpc_ms_t *ms
+ !siz->tileheight || !siz->numcomps) {
+ return -1;
+ }
+- if (!(siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t)))) {
++ if (!(siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t)))) {
+ return -1;
+ }
+ for (i = 0; i < siz->numcomps; ++i) {
+@@ -986,7 +986,7 @@ static int jpc_qcx_getcompparms(jpc_qcxc
+ jpc_qcx_destroycompparms(compparms);
+ return -1;
+ } else if (compparms->numstepsizes > 0) {
+- compparms->stepsizes = jas_malloc(compparms->numstepsizes *
++ compparms->stepsizes = jas_alloc2(compparms->numstepsizes,
+ sizeof(uint_fast16_t));
+ assert(compparms->stepsizes);
+ for (i = 0; i < compparms->numstepsizes; ++i) {
+@@ -1094,7 +1094,7 @@ static int jpc_ppm_getparms(jpc_ms_t *ms
+
+ ppm->len = ms->len - 1;
+ if (ppm->len > 0) {
+- if (!(ppm->data = jas_malloc(ppm->len * sizeof(unsigned char)))) {
++ if (!(ppm->data = jas_malloc(ppm->len))) {
+ goto error;
+ }
+ if (JAS_CAST(uint, jas_stream_read(in, ppm->data, ppm->len)) != ppm->len) {
+@@ -1163,7 +1163,7 @@ static int jpc_ppt_getparms(jpc_ms_t *ms
+ }
+ ppt->len = ms->len - 1;
+ if (ppt->len > 0) {
+- if (!(ppt->data = jas_malloc(ppt->len * sizeof(unsigned char)))) {
++ if (!(ppt->data = jas_malloc(ppt->len))) {
+ goto error;
+ }
+ if (jas_stream_read(in, (char *) ppt->data, ppt->len) != JAS_CAST(int, ppt->len)) {
+@@ -1226,7 +1226,7 @@ static int jpc_poc_getparms(jpc_ms_t *ms
+ uint_fast8_t tmp;
+ poc->numpchgs = (cstate->numcomps > 256) ? (ms->len / 9) :
+ (ms->len / 7);
+- if (!(poc->pchgs = jas_malloc(poc->numpchgs * sizeof(jpc_pocpchg_t)))) {
++ if (!(poc->pchgs = jas_alloc2(poc->numpchgs, sizeof(jpc_pocpchg_t)))) {
+ goto error;
+ }
+ for (pchgno = 0, pchg = poc->pchgs; pchgno < poc->numpchgs; ++pchgno,
+@@ -1331,7 +1331,7 @@ static int jpc_crg_getparms(jpc_ms_t *ms
+ jpc_crgcomp_t *comp;
+ uint_fast16_t compno;
+ crg->numcomps = cstate->numcomps;
+- if (!(crg->comps = jas_malloc(cstate->numcomps * sizeof(uint_fast16_t)))) {
++ if (!(crg->comps = jas_alloc2(cstate->numcomps, sizeof(uint_fast16_t)))) {
+ return -1;
+ }
+ for (compno = 0, comp = crg->comps; compno < cstate->numcomps;
+@@ -1470,7 +1470,7 @@ static int jpc_unk_getparms(jpc_ms_t *ms
+ cstate = 0;
+
+ if (ms->len > 0) {
+- if (!(unk->data = jas_malloc(ms->len * sizeof(unsigned char)))) {
++ if (!(unk->data = jas_malloc(ms->len))) {
+ return -1;
+ }
+ if (jas_stream_read(in, (char *) unk->data, ms->len) != JAS_CAST(int, ms->len)) {
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c jasper-1.900.1/src/libjasper/jpc/jpc_dec.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_dec.c 2009-10-22 09:58:16.000000000 +0200
++++ jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2009-10-22 10:30:50.000000000 +0200
+@@ -449,7 +449,7 @@ static int jpc_dec_process_sot(jpc_dec_t
+
+ if (dec->state == JPC_MH) {
+
+- compinfos = jas_malloc(dec->numcomps * sizeof(jas_image_cmptparm_t));
++ compinfos = jas_alloc2(dec->numcomps, sizeof(jas_image_cmptparm_t));
+ assert(compinfos);
+ for (cmptno = 0, cmpt = dec->cmpts, compinfo = compinfos;
+ cmptno < dec->numcomps; ++cmptno, ++cmpt, ++compinfo) {
+@@ -692,7 +692,7 @@ static int jpc_dec_tileinit(jpc_dec_t *d
+ tile->realmode = 1;
+ }
+ tcomp->numrlvls = ccp->numrlvls;
+- if (!(tcomp->rlvls = jas_malloc(tcomp->numrlvls *
++ if (!(tcomp->rlvls = jas_alloc2(tcomp->numrlvls,
+ sizeof(jpc_dec_rlvl_t)))) {
+ return -1;
+ }
+@@ -764,7 +764,7 @@ rlvl->bands = 0;
+ rlvl->cbgheightexpn);
+
+ rlvl->numbands = (!rlvlno) ? 1 : 3;
+- if (!(rlvl->bands = jas_malloc(rlvl->numbands *
++ if (!(rlvl->bands = jas_alloc2(rlvl->numbands,
+ sizeof(jpc_dec_band_t)))) {
+ return -1;
+ }
+@@ -797,7 +797,7 @@ rlvl->bands = 0;
+
+ assert(rlvl->numprcs);
+
+- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_dec_prc_t)))) {
++ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_dec_prc_t)))) {
+ return -1;
+ }
+
+@@ -834,7 +834,7 @@ rlvl->bands = 0;
+ if (!(prc->numimsbstagtree = jpc_tagtree_create(prc->numhcblks, prc->numvcblks))) {
+ return -1;
+ }
+- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_dec_cblk_t)))) {
++ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_dec_cblk_t)))) {
+ return -1;
+ }
+
+@@ -1181,7 +1181,7 @@ static int jpc_dec_process_siz(jpc_dec_t
+ return -1;
+ }
+
+- if (!(dec->cmpts = jas_malloc(dec->numcomps * sizeof(jpc_dec_cmpt_t)))) {
++ if (!(dec->cmpts = jas_alloc2(dec->numcomps, sizeof(jpc_dec_cmpt_t)))) {
+ return -1;
+ }
+
+@@ -1204,7 +1204,7 @@ static int jpc_dec_process_siz(jpc_dec_t
+ dec->numhtiles = JPC_CEILDIV(dec->xend - dec->tilexoff, dec->tilewidth);
+ dec->numvtiles = JPC_CEILDIV(dec->yend - dec->tileyoff, dec->tileheight);
+ dec->numtiles = dec->numhtiles * dec->numvtiles;
+- if (!(dec->tiles = jas_malloc(dec->numtiles * sizeof(jpc_dec_tile_t)))) {
++ if (!(dec->tiles = jas_calloc(dec->numtiles, sizeof(jpc_dec_tile_t)))) {
+ return -1;
+ }
+
+@@ -1228,7 +1228,7 @@ static int jpc_dec_process_siz(jpc_dec_t
+ tile->pkthdrstreampos = 0;
+ tile->pptstab = 0;
+ tile->cp = 0;
+- if (!(tile->tcomps = jas_malloc(dec->numcomps *
++ if (!(tile->tcomps = jas_calloc(dec->numcomps,
+ sizeof(jpc_dec_tcomp_t)))) {
+ return -1;
+ }
+@@ -1489,7 +1489,7 @@ static jpc_dec_cp_t *jpc_dec_cp_create(u
+ cp->numlyrs = 0;
+ cp->mctid = 0;
+ cp->csty = 0;
+- if (!(cp->ccps = jas_malloc(cp->numcomps * sizeof(jpc_dec_ccp_t)))) {
++ if (!(cp->ccps = jas_alloc2(cp->numcomps, sizeof(jpc_dec_ccp_t)))) {
+ return 0;
+ }
+ if (!(cp->pchglist = jpc_pchglist_create())) {
+@@ -2048,7 +2048,7 @@ jpc_streamlist_t *jpc_streamlist_create(
+ }
+ streamlist->numstreams = 0;
+ streamlist->maxstreams = 100;
+- if (!(streamlist->streams = jas_malloc(streamlist->maxstreams *
++ if (!(streamlist->streams = jas_alloc2(streamlist->maxstreams,
+ sizeof(jas_stream_t *)))) {
+ jas_free(streamlist);
+ return 0;
+@@ -2068,8 +2068,8 @@ int jpc_streamlist_insert(jpc_streamlist
+ /* Grow the array of streams if necessary. */
+ if (streamlist->numstreams >= streamlist->maxstreams) {
+ newmaxstreams = streamlist->maxstreams + 1024;
+- if (!(newstreams = jas_realloc(streamlist->streams,
+- (newmaxstreams + 1024) * sizeof(jas_stream_t *)))) {
++ if (!(newstreams = jas_realloc2(streamlist->streams,
++ (newmaxstreams + 1024), sizeof(jas_stream_t *)))) {
+ return -1;
+ }
+ for (i = streamlist->numstreams; i < streamlist->maxstreams; ++i) {
+@@ -2155,8 +2155,7 @@ int jpc_ppxstab_grow(jpc_ppxstab_t *tab,
+ {
+ jpc_ppxstabent_t **newents;
+ if (tab->maxents < maxents) {
+- newents = (tab->ents) ? jas_realloc(tab->ents, maxents *
+- sizeof(jpc_ppxstabent_t *)) : jas_malloc(maxents * sizeof(jpc_ppxstabent_t *));
++ newents = jas_realloc2(tab->ents, maxents, sizeof(jpc_ppxstabent_t *));
+ if (!newents) {
+ return -1;
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_enc.c jasper-1.900.1/src/libjasper/jpc/jpc_enc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_enc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -403,7 +403,7 @@ static jpc_enc_cp_t *cp_create(char *opt
+ vsteplcm *= jas_image_cmptvstep(image, cmptno);
+ }
+
+- if (!(cp->ccps = jas_malloc(cp->numcmpts * sizeof(jpc_enc_ccp_t)))) {
++ if (!(cp->ccps = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_ccp_t)))) {
+ goto error;
+ }
+ for (cmptno = 0, ccp = cp->ccps; cmptno < JAS_CAST(int, cp->numcmpts); ++cmptno,
+@@ -656,7 +656,7 @@ static jpc_enc_cp_t *cp_create(char *opt
+
+ if (ilyrrates && numilyrrates > 0) {
+ tcp->numlyrs = numilyrrates + 1;
+- if (!(tcp->ilyrrates = jas_malloc((tcp->numlyrs - 1) *
++ if (!(tcp->ilyrrates = jas_alloc2((tcp->numlyrs - 1),
+ sizeof(jpc_fix_t)))) {
+ goto error;
+ }
+@@ -940,7 +940,7 @@ startoff = jas_stream_getrwcount(enc->ou
+ siz->tilewidth = cp->tilewidth;
+ siz->tileheight = cp->tileheight;
+ siz->numcomps = cp->numcmpts;
+- siz->comps = jas_malloc(siz->numcomps * sizeof(jpc_sizcomp_t));
++ siz->comps = jas_alloc2(siz->numcomps, sizeof(jpc_sizcomp_t));
+ assert(siz->comps);
+ for (i = 0; i < JAS_CAST(int, cp->numcmpts); ++i) {
+ siz->comps[i].prec = cp->ccps[i].prec;
+@@ -977,7 +977,7 @@ startoff = jas_stream_getrwcount(enc->ou
+ return -1;
+ }
+ crg = &enc->mrk->parms.crg;
+- crg->comps = jas_malloc(crg->numcomps * sizeof(jpc_crgcomp_t));
++ crg->comps = jas_alloc2(crg->numcomps, sizeof(jpc_crgcomp_t));
+ if (jpc_putms(enc->out, enc->cstate, enc->mrk)) {
+ jas_eprintf("cannot write CRG marker\n");
+ return -1;
+@@ -1955,7 +1955,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_
+ tile->mctid = cp->tcp.mctid;
+
+ tile->numlyrs = cp->tcp.numlyrs;
+- if (!(tile->lyrsizes = jas_malloc(tile->numlyrs *
++ if (!(tile->lyrsizes = jas_alloc2(tile->numlyrs,
+ sizeof(uint_fast32_t)))) {
+ goto error;
+ }
+@@ -1964,7 +1964,7 @@ jpc_enc_tile_t *jpc_enc_tile_create(jpc_
+ }
+
+ /* Allocate an array for the per-tile-component information. */
+- if (!(tile->tcmpts = jas_malloc(cp->numcmpts * sizeof(jpc_enc_tcmpt_t)))) {
++ if (!(tile->tcmpts = jas_alloc2(cp->numcmpts, sizeof(jpc_enc_tcmpt_t)))) {
+ goto error;
+ }
+ /* Initialize a few members critical for error recovery. */
+@@ -2110,7 +2110,7 @@ static jpc_enc_tcmpt_t *tcmpt_create(jpc
+ jas_seq2d_ystart(tcmpt->data), jas_seq2d_xend(tcmpt->data),
+ jas_seq2d_yend(tcmpt->data), bandinfos);
+
+- if (!(tcmpt->rlvls = jas_malloc(tcmpt->numrlvls * sizeof(jpc_enc_rlvl_t)))) {
++ if (!(tcmpt->rlvls = jas_alloc2(tcmpt->numrlvls, sizeof(jpc_enc_rlvl_t)))) {
+ goto error;
+ }
+ for (rlvlno = 0, rlvl = tcmpt->rlvls; rlvlno < tcmpt->numrlvls;
+@@ -2213,7 +2213,7 @@ static jpc_enc_rlvl_t *rlvl_create(jpc_e
+ rlvl->numvprcs = JPC_FLOORDIVPOW2(brprcbry - tlprctly, rlvl->prcheightexpn);
+ rlvl->numprcs = rlvl->numhprcs * rlvl->numvprcs;
+
+- if (!(rlvl->bands = jas_malloc(rlvl->numbands * sizeof(jpc_enc_band_t)))) {
++ if (!(rlvl->bands = jas_alloc2(rlvl->numbands, sizeof(jpc_enc_band_t)))) {
+ goto error;
+ }
+ for (bandno = 0, band = rlvl->bands; bandno < rlvl->numbands;
+@@ -2290,7 +2290,7 @@ if (bandinfo->xstart != bandinfo->xend &
+ band->synweight = bandinfo->synenergywt;
+
+ if (band->data) {
+- if (!(band->prcs = jas_malloc(rlvl->numprcs * sizeof(jpc_enc_prc_t)))) {
++ if (!(band->prcs = jas_alloc2(rlvl->numprcs, sizeof(jpc_enc_prc_t)))) {
+ goto error;
+ }
+ for (prcno = 0, prc = band->prcs; prcno < rlvl->numprcs; ++prcno,
+@@ -2422,7 +2422,7 @@ if (!rlvlno) {
+ goto error;
+ }
+
+- if (!(prc->cblks = jas_malloc(prc->numcblks * sizeof(jpc_enc_cblk_t)))) {
++ if (!(prc->cblks = jas_alloc2(prc->numcblks, sizeof(jpc_enc_cblk_t)))) {
+ goto error;
+ }
+ for (cblkno = 0, cblk = prc->cblks; cblkno < prc->numcblks;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqdec.c jasper-1.900.1/src/libjasper/jpc/jpc_mqdec.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqdec.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_mqdec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -118,7 +118,7 @@ jpc_mqdec_t *jpc_mqdec_create(int maxctx
+ mqdec->in = in;
+ mqdec->maxctxs = maxctxs;
+ /* Allocate memory for the per-context state information. */
+- if (!(mqdec->ctxs = jas_malloc(mqdec->maxctxs * sizeof(jpc_mqstate_t *)))) {
++ if (!(mqdec->ctxs = jas_alloc2(mqdec->maxctxs, sizeof(jpc_mqstate_t *)))) {
+ goto error;
+ }
+ /* Set the current context to the first context. */
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqenc.c jasper-1.900.1/src/libjasper/jpc/jpc_mqenc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_mqenc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_mqenc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -197,7 +197,7 @@ jpc_mqenc_t *jpc_mqenc_create(int maxctx
+ mqenc->maxctxs = maxctxs;
+
+ /* Allocate memory for the per-context state information. */
+- if (!(mqenc->ctxs = jas_malloc(mqenc->maxctxs * sizeof(jpc_mqstate_t *)))) {
++ if (!(mqenc->ctxs = jas_alloc2(mqenc->maxctxs, sizeof(jpc_mqstate_t *)))) {
+ goto error;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_qmfb.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_qmfb.c 2009-10-22 10:27:45.000000000 +0200
+@@ -321,7 +321,7 @@ void jpc_qmfb_split_row(jpc_fix_t *a, in
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -389,7 +389,7 @@ void jpc_qmfb_split_col(jpc_fix_t *a, in
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -460,7 +460,7 @@ void jpc_qmfb_split_colgrp(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -549,7 +549,7 @@ void jpc_qmfb_split_colres(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Get a buffer. */
+ if (bufsize > QMFB_SPLITBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide in this case. */
+ abort();
+ }
+@@ -633,7 +633,7 @@ void jpc_qmfb_join_row(jpc_fix_t *a, int
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+@@ -698,7 +698,7 @@ void jpc_qmfb_join_col(jpc_fix_t *a, int
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+@@ -766,7 +766,7 @@ void jpc_qmfb_join_colgrp(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc2(bufsize, JPC_QMFB_COLGRPSIZE * sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+@@ -852,7 +852,7 @@ void jpc_qmfb_join_colres(jpc_fix_t *a,
+ #if !defined(HAVE_VLA)
+ /* Allocate memory for the join buffer from the heap. */
+ if (bufsize > QMFB_JOINBUFSIZE) {
+- if (!(buf = jas_malloc(bufsize * numcols * sizeof(jpc_fix_t)))) {
++ if (!(buf = jas_alloc3(bufsize, numcols, sizeof(jpc_fix_t)))) {
+ /* We have no choice but to commit suicide. */
+ abort();
+ }
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t1enc.c jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t1enc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t1enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -219,7 +219,7 @@ int jpc_enc_enccblk(jpc_enc_t *enc, jas_
+
+ cblk->numpasses = (cblk->numbps > 0) ? (3 * cblk->numbps - 2) : 0;
+ if (cblk->numpasses > 0) {
+- cblk->passes = jas_malloc(cblk->numpasses * sizeof(jpc_enc_pass_t));
++ cblk->passes = jas_alloc2(cblk->numpasses, sizeof(jpc_enc_pass_t));
+ assert(cblk->passes);
+ } else {
+ cblk->passes = 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c jasper-1.900.1/src/libjasper/jpc/jpc_t2cod.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2cod.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2cod.c 2009-10-22 10:27:45.000000000 +0200
+@@ -573,7 +573,7 @@ int jpc_pchglist_insert(jpc_pchglist_t *
+ }
+ if (pchglist->numpchgs >= pchglist->maxpchgs) {
+ newmaxpchgs = pchglist->maxpchgs + 128;
+- if (!(newpchgs = jas_realloc(pchglist->pchgs, newmaxpchgs * sizeof(jpc_pchg_t *)))) {
++ if (!(newpchgs = jas_realloc2(pchglist->pchgs, newmaxpchgs, sizeof(jpc_pchg_t *)))) {
+ return -1;
+ }
+ pchglist->maxpchgs = newmaxpchgs;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2dec.c jasper-1.900.1/src/libjasper/jpc/jpc_t2dec.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2dec.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2dec.c 2009-10-22 10:27:45.000000000 +0200
+@@ -478,7 +478,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d
+ return 0;
+ }
+ pi->numcomps = dec->numcomps;
+- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) {
++ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+ }
+@@ -490,7 +490,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d
+ for (compno = 0, tcomp = tile->tcomps, picomp = pi->picomps;
+ compno < pi->numcomps; ++compno, ++tcomp, ++picomp) {
+ picomp->numrlvls = tcomp->numrlvls;
+- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls *
++ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls,
+ sizeof(jpc_pirlvl_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+@@ -503,7 +503,7 @@ jpc_pi_t *jpc_dec_pi_create(jpc_dec_t *d
+ rlvlno < picomp->numrlvls; ++rlvlno, ++pirlvl, ++rlvl) {
+ /* XXX sizeof(long) should be sizeof different type */
+ pirlvl->numprcs = rlvl->numprcs;
+- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs *
++ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs,
+ sizeof(long)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2enc.c jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_t2enc.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_t2enc.c 2009-10-22 10:27:45.000000000 +0200
+@@ -565,7 +565,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t
+ }
+ pi->pktno = -1;
+ pi->numcomps = cp->numcmpts;
+- if (!(pi->picomps = jas_malloc(pi->numcomps * sizeof(jpc_picomp_t)))) {
++ if (!(pi->picomps = jas_alloc2(pi->numcomps, sizeof(jpc_picomp_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+ }
+@@ -577,7 +577,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t
+ for (compno = 0, tcomp = tile->tcmpts, picomp = pi->picomps;
+ compno < pi->numcomps; ++compno, ++tcomp, ++picomp) {
+ picomp->numrlvls = tcomp->numrlvls;
+- if (!(picomp->pirlvls = jas_malloc(picomp->numrlvls *
++ if (!(picomp->pirlvls = jas_alloc2(picomp->numrlvls,
+ sizeof(jpc_pirlvl_t)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+@@ -591,7 +591,7 @@ jpc_pi_t *jpc_enc_pi_create(jpc_enc_cp_t
+ /* XXX sizeof(long) should be sizeof different type */
+ pirlvl->numprcs = rlvl->numprcs;
+ if (rlvl->numprcs) {
+- if (!(pirlvl->prclyrnos = jas_malloc(pirlvl->numprcs *
++ if (!(pirlvl->prclyrnos = jas_alloc2(pirlvl->numprcs,
+ sizeof(long)))) {
+ jpc_pi_destroy(pi);
+ return 0;
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_tagtree.c jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_tagtree.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_tagtree.c 2009-10-22 10:27:45.000000000 +0200
+@@ -125,7 +125,7 @@ jpc_tagtree_t *jpc_tagtree_create(int nu
+ ++numlvls;
+ } while (n > 1);
+
+- if (!(tree->nodes_ = jas_malloc(tree->numnodes_ * sizeof(jpc_tagtreenode_t)))) {
++ if (!(tree->nodes_ = jas_alloc2(tree->numnodes_, sizeof(jpc_tagtreenode_t)))) {
+ return 0;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/jpc/jpc_util.c jasper-1.900.1/src/libjasper/jpc/jpc_util.c
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_util.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_util.c 2009-10-22 10:27:45.000000000 +0200
+@@ -109,7 +109,7 @@ int jpc_atoaf(char *s, int *numvalues, d
+ }
+
+ if (n) {
+- if (!(vs = jas_malloc(n * sizeof(double)))) {
++ if (!(vs = jas_alloc2(n, sizeof(double)))) {
+ return -1;
+ }
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c jasper-1.900.1/src/libjasper/mif/mif_cod.c
+--- jasper-1.900.1.orig/src/libjasper/mif/mif_cod.c 2007-01-19 22:43:05.000000000 +0100
++++ jasper-1.900.1/src/libjasper/mif/mif_cod.c 2009-10-22 10:27:45.000000000 +0200
+@@ -438,8 +438,7 @@ static int mif_hdr_growcmpts(mif_hdr_t *
+ int cmptno;
+ mif_cmpt_t **newcmpts;
+ assert(maxcmpts >= hdr->numcmpts);
+- newcmpts = (!hdr->cmpts) ? jas_malloc(maxcmpts * sizeof(mif_cmpt_t *)) :
+- jas_realloc(hdr->cmpts, maxcmpts * sizeof(mif_cmpt_t *));
++ newcmpts = jas_realloc2(hdr->cmpts, maxcmpts, sizeof(mif_cmpt_t *));
+ if (!newcmpts) {
+ return -1;
+ }
diff --git a/extra/jasper/jasper-1.900.1-CVE-2008-3522.patch b/extra/jasper/jasper-1.900.1-CVE-2008-3522.patch
new file mode 100644
index 000000000..4bf2e9b52
--- /dev/null
+++ b/extra/jasper/jasper-1.900.1-CVE-2008-3522.patch
@@ -0,0 +1,14 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2008-3522
+
+diff -pruN jasper-1.900.1.orig/src/libjasper/base/jas_stream.c jasper-1.900.1/src/libjasper/base/jas_stream.c
+--- jasper-1.900.1.orig/src/libjasper/base/jas_stream.c 2009-10-22 10:27:45.000000000 +0200
++++ jasper-1.900.1/src/libjasper/base/jas_stream.c 2009-10-22 10:35:53.000000000 +0200
+@@ -553,7 +553,7 @@ int jas_stream_printf(jas_stream_t *stre
+ int ret;
+
+ va_start(ap, fmt);
+- ret = vsprintf(buf, fmt, ap);
++ ret = vsnprintf(buf, sizeof buf, fmt, ap);
+ jas_stream_puts(stream, buf);
+ va_end(ap);
+ return ret;
diff --git a/extra/jasper/jpc_dec.c.patch b/extra/jasper/jpc_dec.c.patch
new file mode 100644
index 000000000..ae1cd0617
--- /dev/null
+++ b/extra/jasper/jpc_dec.c.patch
@@ -0,0 +1,18 @@
+diff -urN jasper-1.900.1/src/libjasper/jpc/jpc_dec.c jasper-1.900.1-fix/src/libjasper/jpc/jpc_dec.c
+--- jasper-1.900.1/src/libjasper/jpc/jpc_dec.c 2007-01-19 14:43:07.000000000 -0700
++++ jasper-1.900.1-fix/src/libjasper/jpc/jpc_dec.c 2008-03-06 16:51:12.000000000 -0700
+@@ -1069,12 +1069,12 @@
+ /* Apply an inverse intercomponent transform if necessary. */
+ switch (tile->cp->mctid) {
+ case JPC_MCT_RCT:
+- assert(dec->numcomps == 3);
++ assert(dec->numcomps >= 3);
+ jpc_irct(tile->tcomps[0].data, tile->tcomps[1].data,
+ tile->tcomps[2].data);
+ break;
+ case JPC_MCT_ICT:
+- assert(dec->numcomps == 3);
++ assert(dec->numcomps >= 3);
+ jpc_iict(tile->tcomps[0].data, tile->tcomps[1].data,
+ tile->tcomps[2].data);
+ break;
diff --git a/extra/jasper/patch-libjasper-stepsizes-overflow.diff b/extra/jasper/patch-libjasper-stepsizes-overflow.diff
new file mode 100644
index 000000000..097559f68
--- /dev/null
+++ b/extra/jasper/patch-libjasper-stepsizes-overflow.diff
@@ -0,0 +1,14 @@
+--- jasper-1.900.1.orig/src/libjasper/jpc/jpc_cs.c 2007-01-19 22:43:07.000000000 +0100
++++ jasper-1.900.1/src/libjasper/jpc/jpc_cs.c 2007-04-06 01:29:02.000000000 +0200
+@@ -982,7 +982,10 @@ static int jpc_qcx_getcompparms(jpc_qcxc
+ compparms->numstepsizes = (len - n) / 2;
+ break;
+ }
+- if (compparms->numstepsizes > 0) {
++ if (compparms->numstepsizes > 3 * JPC_MAXRLVLS + 1) {
++ jpc_qcx_destroycompparms(compparms);
++ return -1;
++ } else if (compparms->numstepsizes > 0) {
+ compparms->stepsizes = jas_malloc(compparms->numstepsizes *
+ sizeof(uint_fast16_t));
+ assert(compparms->stepsizes);
diff --git a/extra/java-access-bridge/PKGBUILD b/extra/java-access-bridge/PKGBUILD
new file mode 100644
index 000000000..4c1bc6460
--- /dev/null
+++ b/extra/java-access-bridge/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 49735 2009-08-15 14:19:33Z jgc $
+# Maitnainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=java-access-bridge
+pkgver=1.26.2
+pkgrel=1
+pkgdesc="Java bindings for the GNOME accessibility framework"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.gnome.org"
+depends=('java-runtime' 'gtk2>=2.16.5' 'at-spi>=1.26.0' 'libbonobo>=2.24.1')
+makedepends=('intltool' 'pkgconfig' 'openjdk6' 'xorg-utils')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.26/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('5f08bba19531954cec82df1bcdb89df67ee890a4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/jhead/LICENSE b/extra/jhead/LICENSE
new file mode 100644
index 000000000..63ad89ebc
--- /dev/null
+++ b/extra/jhead/LICENSE
@@ -0,0 +1,12 @@
+License:
+
+ Jhead is public domain software - that is, you can do whatever you want
+ with it, and include it software that is licensesed under the GNU or the
+ BSD license, or whatever other licence you chose, including proprietary
+ closed source licenses. Although not part of the liscense, I do expect
+ common courtesy, please.
+
+ If you do integrate the code into some software of yours, I'd appreciate
+ knowing about it though.
+
+Matthias Wandel
diff --git a/extra/jhead/PKGBUILD b/extra/jhead/PKGBUILD
new file mode 100644
index 000000000..bc442c8a8
--- /dev/null
+++ b/extra/jhead/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 67926 2010-02-09 19:58:32Z giovanni $
+# Maintainer: François Charette <francois ατ archlinux δοτ org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=jhead
+pkgver=2.90
+pkgrel=1
+pkgdesc="EXIF JPEG info parser and thumbnail remover"
+arch=(i686 x86_64)
+url="http://www.sentex.net/~mwandel/jhead/"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('glibc')
+optdepends=('libjpeg: to up-right images according to rotation tag')
+source=(http://www.sentex.net/~mwandel/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ LICENSE)
+md5sums=('661effa9420bb92cb99ced697c5a177f'
+ '1f0db611d2642a981719f45252762a45')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make || return 1
+ install -D -m755 jhead "${pkgdir}/usr/bin/jhead" || return 1
+ install -D -m644 jhead.1 "${pkgdir}/usr/share/man/man1/jhead.1" || return 1
+ install -D -m644 ${srcdir}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/json-glib/PKGBUILD b/extra/json-glib/PKGBUILD
new file mode 100644
index 000000000..5077ab4af
--- /dev/null
+++ b/extra/json-glib/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 105758 2011-01-11 14:11:29Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=json-glib
+pkgver=0.12.2
+pkgrel=1
+pkgdesc="JSON library built on GLib"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/JsonGlib"
+license=('GPL')
+depends=('glib2>=2.26.0')
+makedepends=('gobject-introspection')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.12/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('89fa9b870dfe2d8b7b00210be76cdbb2d46a8d2cc77ca7cbe5d081bdf8cad780')
+options=('!libtool')
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/k3b/PKGBUILD b/extra/k3b/PKGBUILD
new file mode 100644
index 000000000..1b94ed8cd
--- /dev/null
+++ b/extra/k3b/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 106655 2011-01-17 20:23:05Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: jlvsimoes
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=k3b
+pkgver=2.0.2
+pkgrel=1
+depends=('kdebase-runtime' 'kdemultimedia-kioslave' 'libsamplerate' 'libmad'
+ 'ffmpeg' 'taglib' 'libmpcdec' 'libdvdread' 'cdrdao' 'cdrkit'
+ 'shared-mime-info' 'libxft')
+makedepends=('cmake' 'pkgconfig' 'automoc4' )
+pkgdesc="Feature-rich and easy to handle CD burning application"
+url="http://k3b.sourceforge.net/"
+arch=("i686" "x86_64")
+license=('GPL')
+install="${pkgname}.install"
+optdepends=('dvd+rw-tools: for dvd burning support'
+ 'vcdimager: for vcd burning support'
+ 'transcode: for advanced mpeg conversion support'
+ 'emovix: for bootable multimedia cd/dvd support')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('c86113af31a2032e57fd2f302b5f637a')
diff --git a/extra/k3b/fix-crash-with-qt-4.7.0.patch b/extra/k3b/fix-crash-with-qt-4.7.0.patch
new file mode 100644
index 000000000..a99b5c639
--- /dev/null
+++ b/extra/k3b/fix-crash-with-qt-4.7.0.patch
@@ -0,0 +1,37 @@
+Index: src/option/k3bpluginoptiontab.cpp
+===================================================================
+--- src/option/k3bpluginoptiontab.cpp (revision 1168967)
++++ src/option/k3bpluginoptiontab.cpp (working copy)
+@@ -43,12 +43,28 @@
+ layout->addWidget( label );
+ layout->addWidget( pluginSelector );
+
++ // find all categories
++ QHash<QString, QString> categoryNames;
++
+ foreach( K3b::Plugin* plugin, k3bcore->pluginManager()->plugins() ) {
+- kDebug() << "Adding plugin" << plugin->pluginInfo().name();
+- pluginSelector->addPlugins( QList<KPluginInfo>() << plugin->pluginInfo(),
++ categoryNames[ plugin->category() ] = plugin->categoryName();
++ }
++
++ // add all plugins in each category
++ foreach( const QString &category, categoryNames.keys() ) {
++ QList<KPluginInfo> plugins;
++
++ foreach( K3b::Plugin* plugin, k3bcore->pluginManager()->plugins() ) {
++ if ( plugin->category() == category ) {
++ plugins << plugin->pluginInfo();
++ kDebug() << "Adding plugin" << plugin->pluginInfo().name();
++ }
++ }
++ pluginSelector->addPlugins( plugins,
+ KPluginSelector::ReadConfigFile,
+- plugin->categoryName(),
+- plugin->category() );
++ categoryNames[ category ],
++ category
++ );
+ }
+ }
+
diff --git a/extra/k3b/k3b.install b/extra/k3b/k3b.install
new file mode 100644
index 000000000..a60d358ce
--- /dev/null
+++ b/extra/k3b/k3b.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/extra/k9copy/PKGBUILD b/extra/k9copy/PKGBUILD
new file mode 100644
index 000000000..4c53891b7
--- /dev/null
+++ b/extra/k9copy/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 87453 2010-08-13 20:02:16Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Stefano Zamprogno <stefano.zamprogno@gmail.com>
+
+pkgname=k9copy
+pkgver=2.3.6
+pkgrel=1
+pkgdesc="A small utility which allows the copy of DVD under Linux"
+arch=('i686' 'x86_64')
+url="http://k9copy.sourceforge.net"
+license=('GPL')
+depends=('kdebase-runtime' 'libmpeg2' 'xine-lib' 'dvd+rw-tools' 'dvdauthor')
+makedepends=('automoc4' 'cmake')
+install=k9copy.install
+source=(http://downloads.sourceforge.net/project/${pkgname}/k9copy-kde4/${pkgver}/${pkgname}-${pkgver}-Source.tar.gz)
+md5sums=('c062dcb141a0320afe9dae0d36f87965')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}-Source"
+
+ sed -i -e "s:Name=k9copy:Name=K9copy:g" k9copy.desktop k9copy_assistant.desktop
+ cmake -DCMAKE_INSTALL_PREFIX=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/k9copy/k9copy.install b/extra/k9copy/k9copy.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/k9copy/k9copy.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/extra/kaffeine/PKGBUILD b/extra/kaffeine/PKGBUILD
new file mode 100644
index 000000000..62a20d6e4
--- /dev/null
+++ b/extra/kaffeine/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 89600 2010-09-02 12:51:01Z tpowa $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kaffeine
+pkgver=1.1
+pkgrel=1
+pkgdesc='KDE media player'
+license=('GPL')
+arch=('i686' 'x86_64')
+url="http://kaffeine.kde.org"
+depends=('kdelibs' 'kdebase-runtime' 'xine-lib')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+ make DESTDIR=$pkgdir install
+}
+md5sums=('72284197b1c90adf75149311e4422efe')
diff --git a/extra/kde-agent/PKGBUILD b/extra/kde-agent/PKGBUILD
new file mode 100644
index 000000000..f2cd14dfd
--- /dev/null
+++ b/extra/kde-agent/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 48318 2009-08-01 13:49:37Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kde-agent
+pkgver=20090801
+pkgrel=2
+pkgdesc="Startup and shutdown scripts for gpg-agent and ssh-agent in KDE"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('pinentry' 'openssh' 'qt')
+source=(agent-startup.sh
+ agent-shutdown.sh)
+
+build() {
+ install -D -m 755 $srcdir/agent-startup.sh $pkgdir/etc/kde/env/agent-startup.sh
+ install -D -m 755 $srcdir/agent-shutdown.sh $pkgdir/etc/kde/shutdown/agent-shutdown.sh
+}
+md5sums=('7daec96c125e1e238a35f31ea4a476f0'
+ '18e8d01124b19f7df2937c06e177bf7f')
diff --git a/extra/kde-agent/agent-shutdown.sh b/extra/kde-agent/agent-shutdown.sh
new file mode 100644
index 000000000..71b056af3
--- /dev/null
+++ b/extra/kde-agent/agent-shutdown.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+# This file is executed at kde shutdown.
+# Uncomment the following lines to kill the agents
+# that were started at session startup.
+
+if [ "${GPG_AGENT_INFO}" ]; then
+ kill $(echo ${GPG_AGENT_INFO} | cut -d':' -f 2) >/dev/null 2>&1
+fi
+#
+if [ "${SSH_AGENT_PID}" ]; then
+ ssh-agent -k
+fi
diff --git a/extra/kde-agent/agent-startup.sh b/extra/kde-agent/agent-startup.sh
new file mode 100644
index 000000000..0897a237c
--- /dev/null
+++ b/extra/kde-agent/agent-startup.sh
@@ -0,0 +1,19 @@
+# Agents startup file
+#
+# This file is sourced at kde startup, so that
+# the environment variables set here are available
+# throughout the session.
+
+# Uncomment the following lines to start gpg-agent
+# and/or ssh-agent at kde startup.
+# If you do so, do not forget to uncomment the respective
+# lines in KDEDIR/shutdown/agent-shutdown.sh to
+# properly kill the agents when the session ends.
+
+if [ -x /usr/bin/gpg-agent ]; then
+ eval "$(/usr/bin/gpg-agent --daemon --pinentry-program /usr/bin/pinentry-qt4)"
+fi
+#
+if [ -x /usr/bin/ssh-agent ]; then
+ eval "$(/usr/bin/ssh-agent -s)"
+fi
diff --git a/extra/kdeaccessibility/PKGBUILD b/extra/kdeaccessibility/PKGBUILD
new file mode 100644
index 000000000..deae74e5c
--- /dev/null
+++ b/extra/kdeaccessibility/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 111776 2011-02-28 23:54:09Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeaccessibility
+pkgname=('kdeaccessibility-colorschemes'
+ 'kdeaccessibility-iconthemes'
+ 'kdeaccessibility-jovie'
+ 'kdeaccessibility-kaccessible'
+ 'kdeaccessibility-kmag'
+ 'kdeaccessibility-kmousetool'
+ 'kdeaccessibility-kmouth')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://accessibility.kde.org'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-runtime'
+ 'speech-dispatcher' 'docbook-xsl')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('820c3d85b01e0714826a0e00c779d4ca84ddf093')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Opentts=OFF
+ make
+}
+
+package_kdeaccessibility-colorschemes() {
+ pkgdesc='KDE Accessibility color schemes'
+ cd $srcdir/build/ColorSchemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-iconthemes() {
+ pkgdesc='KDE Accessibility icon themes'
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-jovie() {
+ pkgdesc='A text to speech application'
+ depends=('kdebase-runtime' 'speech-dispatcher')
+ replaces=('kdeaccessibility-kttsd')
+ install='kdeaccessibility.install'
+ cd $srcdir/build/jovie
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/jovie
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kaccessible() {
+ pkgdesc='Provides accessibility services like focus tracking and a screenreader'
+ depends=('kdebase-runtime' 'speech-dispatcher')
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kaccessible
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmag() {
+ pkgdesc='Screen Magnifier'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kmag/"
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kmag
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmag
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmousetool() {
+ pkgdesc='Clicks the mouse for you, reducing the effects of RSI'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kmousetool/"
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kmousetool
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmousetool
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmouth() {
+ pkgdesc='Speech Synthesizer Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kmouth/"
+ install='kdeaccessibility.install'
+ cd $srcdir/build/kmouth
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmouth
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdeaccessibility/kdeaccessibility.install b/extra/kdeaccessibility/kdeaccessibility.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeaccessibility/kdeaccessibility.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/extra/kdeadmin/PKGBUILD b/extra/kdeadmin/PKGBUILD
new file mode 100644
index 000000000..64b961ece
--- /dev/null
+++ b/extra/kdeadmin/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 111777 2011-02-28 23:55:21Z 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.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeadmin')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebindings-python'
+ 'system-config-printer-common' 'python2-qt' 'docbook-xsl')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'syslog-path.patch')
+sha1sums=('b8eec397c97c19ea12f969134f8cf56886c03a26'
+ '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_kpackage=OFF \
+ -DBUILD_knetworkconf=OFF \
+ -DBUILD_lilo-config=OFF \
+ -DBUILD_strigi-analyzer=OFF
+ 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-qt')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/system-config-printer-kde
+ 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/extra/kdeadmin/kdeadmin.install b/extra/kdeadmin/kdeadmin.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdeadmin/syslog-path.patch b/extra/kdeadmin/syslog-path.patch
new file mode 100644
index 000000000..8a9142bf6
--- /dev/null
+++ b/extra/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/extra/kdeartwork/PKGBUILD b/extra/kdeartwork/PKGBUILD
new file mode 100644
index 000000000..7fbd54db8
--- /dev/null
+++ b/extra/kdeartwork/PKGBUILD
@@ -0,0 +1,102 @@
+# $Id: PKGBUILD 111778 2011-02-28 23:55:25Z 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.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeartwork')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'xscreensaver' 'eigen' 'kdebase-workspace'
+ 'docbook-xsl' 'kdegraphics-libs')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('47c55cccd39f634a9754e9ff0b2dd9791aaf3ee4')
+
+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'
+ 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'
+ cd $srcdir/build/IconThemes
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+ pkgdesc='KDE screensaver'
+ depends=('kdebase-workspace' 'kdegraphics-libs')
+ 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/extra/kdebase-runtime/PKGBUILD b/extra/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..705cef650
--- /dev/null
+++ b/extra/kdebase-runtime/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 111770 2011-02-28 23:53:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-runtime
+pkgver=4.6.1
+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' 'hicolor-icon-theme')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'kdepimlibs' 'openslp' 'xine-lib'
+ 'docbook-xsl')
+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/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('7c6704d72577ed88acccc767d0a6a8adf7e8e9ac')
+
+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
+ rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+ ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+}
diff --git a/extra/kdebase-runtime/kdebase-runtime.install b/extra/kdebase-runtime/kdebase-runtime.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/extra/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/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD
new file mode 100644
index 000000000..9a821f87f
--- /dev/null
+++ b/extra/kdebase-workspace/PKGBUILD
@@ -0,0 +1,71 @@
+# $Id: PKGBUILD 111773 2011-02-28 23:53:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdebase-workspace
+pkgver=4.6.1
+pkgrel=1
+pkgdesc="KDE Base Workspace"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde')
+# note on libxdamage:
+# not detected by namcap because libgl depends on it
+# but nvidia providing libgl does not depend on libxdamage
+depends=('kdepim-runtime' 'lm_sensors' 'libraw1394' 'qimageblitz' 'libqalculate'
+ 'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage' 'libxklavier' 'libdmtx')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'networkmanager' 'bluez'
+ 'docbook-xsl' 'python2' 'kdebindings-python')
+replaces=('kdmtheme' 'kde-common' 'guidance-power-manager' 'policykit-kde' 'kdebase-kinfocenter')
+conflicts=('kde-common' 'guidance-power-manager' 'policykit-kde' 'kdebase-kinfocenter')
+install="${pkgname}.install"
+backup=('usr/share/config/kdm/kdmrc'
+ 'etc/pam.d/kde'
+ 'etc/pam.d/kde-np'
+ 'etc/pam.d/kscreensaver')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kdm-zsh-profile.patch' 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam'
+ 'fixpath.patch' 'terminate-server.patch')
+sha1sums=('e37691d88ddbf92cc95ec39849a1331404c84fd5'
+ '8c2bdefb23a03b753b78d16944d03fa3939d2d99'
+ '5db3a245201bd4a50e65aa2ef583cf5490e4f646'
+ 'f7b38af38549242a240f1a90ab9964ca8a366129'
+ '603cc79c4d2b4eae62bb5f244aeecb3a778b5516'
+ '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
+ 'd7b5883f7e65c6839b1f65f94d58026673dd0226'
+ 'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 -i ${srcdir}/kdm-zsh-profile.patch
+ patch -p0 -i ${srcdir}/fixpath.patch
+ patch -p0 -i ${srcdir}/terminate-server.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xmms=OFF \
+ -DWITH_Googlegadgets=OFF \
+ -DWITH_PolkitQt=OFF
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+
+ install -D -m755 ${srcdir}/kdm ${pkgdir}/etc/rc.d/kdm
+ install -D -m644 ${srcdir}/kde.pam ${pkgdir}/etc/pam.d/kde
+ install -D -m644 ${srcdir}/kde-np.pam ${pkgdir}/etc/pam.d/kde-np
+ install -D -m644 ${srcdir}/kscreensaver.pam ${pkgdir}/etc/pam.d/kscreensaver
+ install -d -m755 ${pkgdir}/usr/share/xsessions/
+ ln -sf /usr/share/apps/kdm/sessions/kde-plasma{,-safe}.desktop ${pkgdir}/usr/share/xsessions/
+ install -d -m755 ${pkgdir}/etc/kde/{env,shutdown}
+
+ install -d -g 135 -o 135 ${pkgdir}/var/lib/kdm
+}
diff --git a/extra/kdebase-workspace/fixpath.patch b/extra/kdebase-workspace/fixpath.patch
new file mode 100644
index 000000000..be2b8383e
--- /dev/null
+++ b/extra/kdebase-workspace/fixpath.patch
@@ -0,0 +1,34 @@
+--- startkde.cmake.orig 2009-01-15 14:24:44.000000000 +0100
++++ startkde.cmake 2009-01-15 14:33:08.000000000 +0100
+@@ -34,22 +34,6 @@
+ MALLOC_CHECK_=2
+ export MALLOC_CHECK_
+
+-# in case we have been started with full pathname spec without being in PATH
+-bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'`
+-if [ -n "$bindir" ]; then
+- qbindir=`$bindir/kde4-config --qt-binaries`
+- if [ -n "$qbindir" ]; then
+- case $PATH in
+- $qbindir|$qbindir:*|*:$qbindir|*:$qbindir:*) ;;
+- *) PATH=$qbindir:$PATH; export PATH;;
+- esac
+- fi
+- case $PATH in
+- $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;;
+- *) PATH=$bindir:$PATH; export PATH;;
+- esac
+-fi
+-
+ # Boot sequence:
+ #
+ # kdeinit is used to fork off processes which improves memory usage
+@@ -206,7 +190,7 @@
+ # For anything else (that doesn't set env vars, or that needs a window manager),
+ # better use the Autostart folder.
+
+-libpath=`kde4-config --path lib | tr : '\n'`
++libpath=`kde4-config --path lib | tr : '\n'`$(echo -e '\n/etc/kde/lib/')
+
+ for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/env/,p'`; do
+ for file in "$prefix"*.sh; do
diff --git a/extra/kdebase-workspace/kde-np.pam b/extra/kdebase-workspace/kde-np.pam
new file mode 100644
index 000000000..81eeef47b
--- /dev/null
+++ b/extra/kdebase-workspace/kde-np.pam
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth required pam_nologin.so
+auth required pam_permit.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so \ No newline at end of file
diff --git a/extra/kdebase-workspace/kde.pam b/extra/kdebase-workspace/kde.pam
new file mode 100644
index 000000000..1a259390f
--- /dev/null
+++ b/extra/kdebase-workspace/kde.pam
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth required pam_unix.so
+auth required pam_nologin.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so \ No newline at end of file
diff --git a/extra/kdebase-workspace/kdebase-workspace.install b/extra/kdebase-workspace/kdebase-workspace.install
new file mode 100644
index 000000000..3a1b2404a
--- /dev/null
+++ b/extra/kdebase-workspace/kdebase-workspace.install
@@ -0,0 +1,23 @@
+post_install() {
+ groupadd -g 135 kdm &>/dev/null
+ useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+ chown -R 135:135 var/lib/kdm &>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+}
+
+post_upgrade() {
+ getent group kdm >/dev/null 2>&1 || groupadd -g 135 kdm &>/dev/null
+ getent passwd kdm >/dev/null 2>&1 || useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+ chown -R 135:135 var/lib/kdm &>/dev/null
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_remove() {
+ if getent passwd kdm >/dev/null 2>&1; then
+ userdel kdm
+ fi
+ if getent group kdm >/dev/null 2>&1; then
+ groupdel kdm
+ fi
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/extra/kdebase-workspace/kdm b/extra/kdebase-workspace/kdm
new file mode 100644
index 000000000..799d58f4b
--- /dev/null
+++ b/extra/kdebase-workspace/kdm
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/bin/kdm)
+case "$1" in
+ start)
+ stat_busy "Starting KDE Desktop Manager"
+ [ -z "$PID" ] && /usr/bin/kdm &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon kdm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping KDE Desktop Manager"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon kdm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/kdebase-workspace/kdm-zsh-profile.patch b/extra/kdebase-workspace/kdm-zsh-profile.patch
new file mode 100644
index 000000000..779456b39
--- /dev/null
+++ b/extra/kdebase-workspace/kdm-zsh-profile.patch
@@ -0,0 +1,11 @@
+--- kdm/kfrontend/genkdmconf.c 2008-02-13 09:40:49.000000000 +0000
++++ kdm/kfrontend/genkdmconf.c 2008-05-16 12:47:36.000000000 +0000
+@@ -662,7 +662,7 @@
+ " [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc\n"
+ " zhome=${ZDOTDIR:-$HOME}\n"
+ " # zshenv is always sourced automatically.\n"
+-" [ -f $zdir/zprofile ] && . $zdir/zprofile\n"
++" [ -f /etc/profile ] && . /etc/profile\n"
+ " [ -f $zhome/.zprofile ] && . $zhome/.zprofile\n"
+ " [ -f $zdir/zlogin ] && . $zdir/zlogin\n"
+ " [ -f $zhome/.zlogin ] && . $zhome/.zlogin\n"
diff --git a/extra/kdebase-workspace/kscreensaver.pam b/extra/kdebase-workspace/kscreensaver.pam
new file mode 100644
index 000000000..b4d80c21f
--- /dev/null
+++ b/extra/kdebase-workspace/kscreensaver.pam
@@ -0,0 +1 @@
+auth required pam_unix_auth.so
diff --git a/extra/kdebase-workspace/terminate-server.patch b/extra/kdebase-workspace/terminate-server.patch
new file mode 100644
index 000000000..094591317
--- /dev/null
+++ b/extra/kdebase-workspace/terminate-server.patch
@@ -0,0 +1,11 @@
+--- kdm/config.def 2009-08-27 10:17:39.000000000 +0200
++++ kdm/config.def 2009-10-31 00:40:21.000000000 +0100
+@@ -1448,7 +1448,7 @@
+
+ Key: TerminateServer
+ Type: bool
+-Default: false
++Default: true
+ User: core
+ Instance: #:*/!
+ Merge: xdm
diff --git a/extra/kdebase/PKGBUILD b/extra/kdebase/PKGBUILD
new file mode 100644
index 000000000..dcbffb065
--- /dev/null
+++ b/extra/kdebase/PKGBUILD
@@ -0,0 +1,129 @@
+# $Id: PKGBUILD 112038 2011-03-03 11:11:13Z 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-konqueror'
+ 'kdebase-konsole'
+ 'kdebase-kwrite'
+ 'kdebase-lib'
+ 'kdebase-plasma')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdebase-workspace' 'pkgconfig' 'cmake' 'automoc4' 'docbook-xsl')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('3993cc44ce9c43028bec7f314e354345da9931aa')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${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=('ruby: servicemenu installation')
+ url="http://kde.org/applications/system/dolphin/"
+ 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-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.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-konsole() {
+ pkgdesc='Terminal'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/konsole/"
+ cd $srcdir/build/konsole
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/konsole/doc/manual
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kwrite() {
+ pkgdesc='Text Editor'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kwrite/"
+ cd $srcdir/build/kwrite
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kwrite
+ make DESTDIR=$pkgdir install
+}
+
+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/extra/kdebase/kdebase.install b/extra/kdebase/kdebase.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdebindings/PKGBUILD b/extra/kdebindings/PKGBUILD
new file mode 100644
index 000000000..a2132eeb4
--- /dev/null
+++ b/extra/kdebindings/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 107102 2011-01-21 11:16:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdebindings
+pkgname=('kdebindings-csharp'
+ 'kdebindings-python'
+ 'kdebindings-ruby'
+ 'kdebindings-smoke')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'python2-qt' 'kdepim-runtime' 'mono'
+ 'kdegraphics-okular' 'qwt' 'docbook-xsl' 'boost' 'qscintilla' 'ruby')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('1a71e656df19a4b132546242aa344778554693ff')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/build/.mono"
+ mkdir -p "$MONO_SHARED_DIR"
+ cd ${srcdir}/build
+
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DRUBY_SITE_LIB_DIR="/usr/lib/ruby/site_ruby/1.9.1" \
+ -DRUBY_SITE_ARCH_DIR="/usr/lib/ruby/site_ruby/1.9.1/${CARCH}-linux" \
+ -DBUILD_falcon=OFF \
+ -DBUILD_java=OFF \
+ -DBUILD_php=OFF \
+ -DWITH_PolkitQt=OFF
+ make
+}
+
+package_kdebindings-csharp() {
+ pkgdesc='KDE bindings for mono'
+ depends=('kdebindings-smoke' 'mono')
+ export MONO_SHARED_DIR="${srcdir}/build/.mono"
+ mkdir -p "$MONO_SHARED_DIR"
+ cd $srcdir/build/csharp
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebindings-python() {
+ pkgdesc='KDE bindings for python'
+ depends=('kdepim-runtime' 'python2-qt' 'qscintilla')
+ cd $srcdir/build/python
+ 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_kdebindings-ruby() {
+ pkgdesc='KDE Bindings for ruby'
+ depends=('kdebindings-smoke' 'ruby')
+ cd $srcdir/build/ruby
+ make DESTDIR=$pkgdir install
+}
+
+package_kdebindings-smoke() {
+ pkgdesc='Language independent library for Qt and KDE bindings'
+ depends=('qscintilla' 'kdegraphics-okular' 'kdepim-runtime')
+ cd $srcdir/build/smoke
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/generator/smokebase
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdeedu/PKGBUILD b/extra/kdeedu/PKGBUILD
new file mode 100644
index 000000000..5a2bb8897
--- /dev/null
+++ b/extra/kdeedu/PKGBUILD
@@ -0,0 +1,276 @@
+# $Id: PKGBUILD 112296 2011-03-04 14:46:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeedu
+pkgname=('kdeedu-blinken'
+ 'kdeedu-cantor'
+ 'kdeedu-data'
+ 'kdeedu-kalgebra'
+ 'kdeedu-kalzium'
+ 'kdeedu-kanagram'
+ 'kdeedu-kbruch'
+ 'kdeedu-kgeography'
+ 'kdeedu-khangman'
+ 'kdeedu-kig'
+ 'kdeedu-kiten'
+ 'kdeedu-klettres'
+ 'kdeedu-kmplot'
+ 'kdeedu-kstars'
+ 'kdeedu-ktouch'
+ 'kdeedu-kturtle'
+ 'kdeedu-kwordquiz'
+ 'kdeedu-libkdeedu'
+ 'kdeedu-marble'
+ 'kdeedu-parley'
+ 'kdeedu-rocs'
+ 'kdeedu-step')
+pkgver=4.6.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ocaml' 'facile' 'cfitsio' 'gpsd'
+ 'kdebase-runtime' 'libqalculate' 'gsl' 'boost' 'libindi' 'r' 'libspectre'
+ 'python2' 'docbook-xsl' 'avogadro')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('90843f6a472aa38ece3fc2a237fffd020572fad7')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ # rpath is needed for cantor to find R
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeedu-blinken() {
+ pkgdesc='A memory enhancement game'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu')
+ install='kdeedu.install'
+ cd $srcdir/build/blinken
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/blinken
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-cantor() {
+ pkgdesc='KDE Frontend to Mathematical Software'
+ depends=('kdeedu-libkdeedu' 'libspectre')
+ optdepends=('kdeedu-kalgebra: backend'
+ 'maxima: backend'
+ 'r: backend')
+ install='kdeedu.install'
+ cd $srcdir/build/cantor
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/cantor
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-data() {
+ pkgdesc='Data for KDE Educational Software'
+ groups=()
+ cd $srcdir/build/data
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kalgebra() {
+ pkgdesc='Math Expression Solver and Plotter'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kalgebra
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kalgebra
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kalzium() {
+ pkgdesc='KDE Periodic Table of Elements'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu' 'avogadro')
+ install='kdeedu.install'
+ cd $srcdir/build/kalzium
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kalzium
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kanagram() {
+ pkgdesc='KDE Letter Order Game'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu' 'kdeedu-data')
+ install='kdeedu.install'
+ cd $srcdir/build/kanagram
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kanagram
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kbruch() {
+ pkgdesc='Practice exercises with fractions'
+ depends=('kdelibs' 'kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kbruch
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kbruch
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kgeography() {
+ pkgdesc='A Geography Learning Program'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kgeography
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgeography
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-khangman() {
+ pkgdesc='KDE Hangman Game'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu' 'kdeedu-data')
+ install='kdeedu.install'
+ cd $srcdir/build/khangman
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/khangman
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kig() {
+ pkgdesc='Explore Geometric Constructions'
+ depends=('kdebase-runtime' 'boost-libs' 'python2')
+ install='kdeedu.install'
+ cd $srcdir/build/kig
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kig
+ make DESTDIR=$pkgdir install
+
+ # Use the python2 executable
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' ${pkgdir}/usr/bin/pykig.py
+}
+
+package_kdeedu-kiten() {
+ pkgdesc='Japanese Reference and Study Tool'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kiten
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kiten
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-klettres() {
+ pkgdesc='a KDE program to learn the alphabet'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/klettres
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/klettres
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kmplot() {
+ pkgdesc='Function Plotter'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kmplot
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kmplot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kstars() {
+ pkgdesc='Desktop Planetarium'
+ depends=('kdebase-runtime' 'libindi')
+ install='kdeedu.install'
+ cd $srcdir/build/kstars
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kstars
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-ktouch() {
+ pkgdesc='Touch Typing Tutor'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/ktouch
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktouch
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kturtle() {
+ pkgdesc='Educational Programming Environment'
+ depends=('kdebase-runtime')
+ install='kdeedu.install'
+ cd $srcdir/build/kturtle
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kturtle
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-kwordquiz() {
+ pkgdesc='A flashcard and vocabulary learning program'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu' 'kdeedu-data')
+ install='kdeedu.install'
+ cd $srcdir/build/kwordquiz
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kwordquiz
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-libkdeedu() {
+ pkgdesc='Support library for KDE Educational Software'
+ groups=()
+ depends=('kdelibs')
+ install='kdeedu.install'
+ cd $srcdir/build/libkdeedu
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/cmake/modules/FindKDEEdu.cmake \
+ $pkgdir/usr/share/apps/cmake/modules/FindKDEEdu.cmake
+}
+
+package_kdeedu-marble() {
+ pkgdesc='Desktop Globe'
+ depends=('kdebase-runtime' 'gpsd')
+ install='kdeedu.install'
+ cd $srcdir/build/marble
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/marble
+ make DESTDIR=$pkgdir install
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/cmake/modules/FindMarbleWidget.cmake \
+ $pkgdir/usr/share/apps/cmake/modules/FindMarbleWidget.cmake
+}
+
+package_kdeedu-parley() {
+ pkgdesc='Vocabulary Trainer'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu' 'kdeedu-data' 'kdebindings-python')
+ install='kdeedu.install'
+ cd $srcdir/build/parley
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/parley
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-rocs() {
+ pkgdesc='Graph Theory Tool for Professors and Students.'
+ depends=('kdebase-runtime' 'kdeedu-libkdeedu')
+ install='kdeedu.install'
+ cd $srcdir/build/rocs
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/rocs
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeedu-step() {
+ pkgdesc='Simulate physics experiments'
+ depends=('kdebase-runtime' 'gsl' 'libqalculate')
+ install='kdeedu.install'
+ cd $srcdir/build/step
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/step
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdeedu/kdeedu.install b/extra/kdeedu/kdeedu.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeedu/kdeedu.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/extra/kdegames/PKGBUILD b/extra/kdegames/PKGBUILD
new file mode 100644
index 000000000..d8e1ee62e
--- /dev/null
+++ b/extra/kdegames/PKGBUILD
@@ -0,0 +1,515 @@
+# $Id: PKGBUILD 111779 2011-02-28 23:55:28Z 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.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-runtime' 'ggz-client-libs'
+ 'twisted' 'kdebindings-python' 'docbook-xsl')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('4c7ef990bcf9eedb1a666491514fbe5e04ab9421')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_OpenAL=OFF
+ 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')
+ 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=('kdebase-runtime' 'kdegames-libkdegames' '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.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')
+ 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.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.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.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.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.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.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/extra/kdegames/kdegames-kbattleship.install b/extra/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..ae4e089cb
--- /dev/null
+++ b/extra/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,22 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ 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
+}
diff --git a/extra/kdegames/kdegames-kreversi.install b/extra/kdegames/kdegames-kreversi.install
new file mode 100644
index 000000000..4623e6e49
--- /dev/null
+++ b/extra/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/extra/kdegames/kdegames-ksquares.install b/extra/kdegames/kdegames-ksquares.install
new file mode 100644
index 000000000..5a619897d
--- /dev/null
+++ b/extra/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/extra/kdegames/kdegames-palapeli.install b/extra/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/extra/kdegames/kdegames-palapeli.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/extra/kdegames/kdegames.install b/extra/kdegames/kdegames.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdegraphics/PKGBUILD b/extra/kdegraphics/PKGBUILD
new file mode 100644
index 000000000..9af1e59e2
--- /dev/null
+++ b/extra/kdegraphics/PKGBUILD
@@ -0,0 +1,141 @@
+# $Id: PKGBUILD 111771 2011-02-28 23:53:51Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdegraphics
+pkgname=('kdegraphics-gwenview'
+ 'kdegraphics-kamera'
+ 'kdegraphics-kcolorchooser'
+ 'kdegraphics-kgamma'
+ 'kdegraphics-kolourpaint'
+ 'kdegraphics-kruler'
+ 'kdegraphics-ksnapshot'
+ 'kdegraphics-libs'
+ 'kdegraphics-okular')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'qimageblitz' 'sane' 'lcms'
+ 'libxxf86vm' 'poppler-qt' 'libspectre' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'kdebase-runtime' 'docbook-xsl')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('8a96d927be9a41ff9a7d222474d0e4759346415b')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdegraphics-gwenview() {
+ pkgdesc='A simple image viewer'
+ depends=('kdebase-runtime' 'kdegraphics-libs')
+ url="http://kde.org/applications/graphics/gwenview/"
+ replaces=('gwenview' 'gwenview-i18n')
+ install='kdegraphics.install'
+ cd $srcdir/build/gwenview
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/gwenview
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kamera() {
+ pkgdesc='Configure Kamera'
+ depends=('kdelibs' 'libgphoto2')
+ cd $srcdir/build/kamera
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcontrol/kamera
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kcolorchooser() {
+ pkgdesc='Color Chooser'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/graphics/kcolorchooser/"
+ install='kdegraphics.install'
+ cd $srcdir/build/kcolorchooser
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kgamma() {
+ pkgdesc='A monitor calibration tool'
+ # 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')
+ install='kdegraphics.install'
+ cd $srcdir/build/kgamma
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcontrol/kgamma
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kolourpaint() {
+ pkgdesc='Paint Program'
+ depends=('kdebase-runtime' 'qimageblitz' 'kdegraphics-libs')
+ url="http://kde.org/applications/graphics/kolourpaint/"
+ install='kdegraphics.install'
+ cd $srcdir/build/kolourpaint
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kolourpaint
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-kruler() {
+ pkgdesc='Screen Ruler'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/graphics/kruler/"
+ install='kdegraphics.install'
+ cd $srcdir/build/kruler
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kruler
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-ksnapshot() {
+ pkgdesc='Screen Capture Program'
+ depends=('kdebase-runtime' 'kdegraphics-libs')
+ url="http://kde.org/applications/graphics/ksnapshot/"
+ install='kdegraphics.install'
+ cd $srcdir/build/ksnapshot
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ksnapshot
+ make DESTDIR=$pkgdir install
+}
+
+package_kdegraphics-libs() {
+ pkgdesc='Support library for KDE Graphics Software'
+ groups=()
+ depends=('kdelibs' 'sane' 'lcms')
+ conflicts=('kdegraphics-ksaneplugin' 'kdegraphics-strigi-analyzer'
+ 'kdegraphics-svgpart' 'kdegraphics-thumbnailers')
+ replaces=('libkexiv2' 'libkdcraw' 'kdegraphics-ksaneplugin'
+ 'kdegraphics-strigi-analyzer' 'kdegraphics-svgpart' 'kdegraphics-thumbnailers')
+ install='kdegraphics.install'
+ for i in libs ksaneplugin strigi-analyzer svgpart thumbnailers; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+ install -D -m644 $srcdir/${pkgbase}-${pkgver}/cmake/modules/FindKSane.cmake \
+ $pkgdir/usr/share/apps/cmake/modules/FindKSane.cmake
+}
+
+package_kdegraphics-okular() {
+ pkgdesc='Document Viewer'
+ depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+ 'ebook-tools' 'libspectre')
+ url="http://kde.org/applications/graphics/okular/"
+ install='kdegraphics.install'
+ cd $srcdir/build/okular
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/okular
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdegraphics/kdegraphics.install b/extra/kdegraphics/kdegraphics.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdegraphics/kdegraphics.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/extra/kdelibs/CVE-2011-1168.patch b/extra/kdelibs/CVE-2011-1168.patch
new file mode 100644
index 000000000..007eef910
--- /dev/null
+++ b/extra/kdelibs/CVE-2011-1168.patch
@@ -0,0 +1,14 @@
+--- a/khtml/khtml_part.cpp
++++ b/khtml/khtml_part.cpp
+@@ -1804,7 +1804,10 @@ void KHTMLPart::htmlError( int errorCode
+ stream >> errorName >> techName >> description >> causes >> solutions;
+
+ QString url, protocol, datetime;
+- url = Qt::escape( reqUrl.prettyUrl() );
++
++ // This is somewhat confusing, but we have to escape the externally-
++ // controlled URL twice: once for i18n, and once for HTML.
++ url = Qt::escape( Qt::escape( reqUrl.prettyUrl() ) );
+ protocol = reqUrl.protocol();
+ datetime = KGlobal::locale()->formatDateTime( QDateTime::currentDateTime(),
+ KLocale::LongDate );
diff --git a/extra/kdelibs/PKGBUILD b/extra/kdelibs/PKGBUILD
new file mode 100644
index 000000000..10122d1a4
--- /dev/null
+++ b/extra/kdelibs/PKGBUILD
@@ -0,0 +1,70 @@
+# $Id: PKGBUILD 117004 2011-03-27 13:27:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdelibs
+pkgver=4.6.1
+pkgrel=3
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'heimdal'
+ 'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt' 'grantlee'
+ 'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'xdg-utils'
+ 'phonon' 'hicolor-icon-theme' 'upower' 'udisks' 'libxcursor'
+ 'docbook-xsl')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'intltool' 'avahi' 'libgl'
+ 'hspell')
+replaces=('arts' 'kdelibs-experimental')
+install='kdelibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'kde-applications-menu.patch' 'archlinux-menu.patch' 'abs-syntax-highlight.patch'
+ 'CVE-2011-1168.patch'
+ 'fix-empty-dolphin-home.patch')
+sha1sums=('5868d43084b2dc9de4c0404dbec137375664e893'
+ '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+ '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
+ 'd994f262356af5b9e4e9619646e471bd98c91efb'
+ '730534a337c88ef2a7c716f5d118f445d06898e7'
+ 'aaec293322f1483990ad8edbb1ec1a6dd69cf3ee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # avoid file conflict with gnome-menu
+ patch -p1 -i $srcdir/kde-applications-menu.patch
+ # add Archlinux menu entry
+ patch -p1 -i $srcdir/archlinux-menu.patch
+ # add syntax highlightning for PKGBUILD and .install files
+ patch -p1 -i $srcdir/abs-syntax-highlight.patch
+
+ # Already fixed upstream
+ patch -Np1 -i ${srcdir}/CVE-2011-1168.patch
+ patch -Np1 -i ${srcdir}/fix-empty-dolphin-home.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 \
+ -DKAUTH_BACKEND=PolkitQt-1
+ 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/extra/kdelibs/abs-syntax-highlight.patch b/extra/kdelibs/abs-syntax-highlight.patch
new file mode 100644
index 000000000..477479a9b
--- /dev/null
+++ b/extra/kdelibs/abs-syntax-highlight.patch
@@ -0,0 +1,12 @@
+diff -Nura kdelibs-4.3.0.orig/kate/syntax/data/bash.xml kdelibs-4.3.0/kate/syntax/data/bash.xml
+--- kdelibs-4.3.0.orig/kate/syntax/data/bash.xml 2009-04-15 12:26:37.000000000 +0200
++++ kdelibs-4.3.0/kate/syntax/data/bash.xml 2009-07-30 13:24:01.000000000 +0200
+@@ -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.12" 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.12" kateversion="2.4" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;*.install" 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/extra/kdelibs/archlinux-menu.patch b/extra/kdelibs/archlinux-menu.patch
new file mode 100644
index 000000000..546784fa2
--- /dev/null
+++ b/extra/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/extra/kdelibs/fix-empty-dolphin-home.patch b/extra/kdelibs/fix-empty-dolphin-home.patch
new file mode 100644
index 000000000..064a87e04
--- /dev/null
+++ b/extra/kdelibs/fix-empty-dolphin-home.patch
@@ -0,0 +1,389 @@
+commit 51707e7154082b549216b8a8ecde73505302fadc
+Author: David Faure <faure@kde.org>
+Date: Tue Mar 8 11:23:47 2011 +0100
+
+ Fix stop() killing the list job even if another dirlister needs it.
+
+ Regression introduced by me in bef0bd3e3ff.
+ Symptom: "dolphin $HOME" showed up empty.
+
+ In the case of concurrent listings, I made the use of the cached items job
+ conditional (only created if there's anything to emit) so that we can join
+ the current listjob without killing it (updateDirectory) if it hasn't emitted
+ anything yet.
+ The unittest also uncovered inconsistencies in the emission of the cancelled
+ signal, now cacheditemsjob behaves like the listjob in this respect.
+
+ FIXED-IN: 4.6.2
+ BUG: 267709
+
+diff --git a/kio/kio/kdirlister.cpp b/kio/kio/kdirlister.cpp
+index 75360e08f..df81dc8 100644
+--- a/kio/kio/kdirlister.cpp
++++ b/kio/kio/kdirlister.cpp
+@@ -194,7 +194,7 @@ bool KDirListerCache::listDir( KDirLister *lister, const KUrl& _u,
+
+ // List items from the cache in a delayed manner, just like things would happen
+ // if we were not using the cache.
+- new KDirLister::Private::CachedItemsJob(lister, itemU->lstItems, itemU->rootItem, _url, _reload);
++ new KDirLister::Private::CachedItemsJob(lister, _url, _reload);
+
+ } else {
+ // dir not in cache or _reload is true
+@@ -260,8 +260,13 @@ bool KDirListerCache::listDir( KDirLister *lister, const KUrl& _u,
+
+ // List existing items in a delayed manner, just like things would happen
+ // if we were not using the cache.
+- //kDebug() << "Listing" << itemU->lstItems.count() << "cached items soon";
+- new KDirLister::Private::CachedItemsJob(lister, itemU->lstItems, itemU->rootItem, _url, _reload);
++ if (!itemU->lstItems.isEmpty()) {
++ kDebug() << "Listing" << itemU->lstItems.count() << "cached items soon";
++ new KDirLister::Private::CachedItemsJob(lister, _url, _reload);
++ } else {
++ // The other lister hasn't emitted anything yet. Good, we'll just listen to it.
++ // One problem could be if we have _reload=true and the existing job doesn't, though.
++ }
+
+ #ifdef DEBUG_CACHE
+ printDebug();
+@@ -280,11 +285,9 @@ KDirLister::Private::CachedItemsJob* KDirLister::Private::cachedItemsJobForUrl(c
+ return 0;
+ }
+
+-KDirLister::Private::CachedItemsJob::CachedItemsJob(KDirLister* lister, const KFileItemList& items,
+- const KFileItem& rootItem, const KUrl& url, bool reload)
++KDirLister::Private::CachedItemsJob::CachedItemsJob(KDirLister* lister, const KUrl& url, bool reload)
+ : KJob(lister),
+ m_lister(lister), m_url(url),
+- m_items(items), m_rootItem(rootItem),
+ m_reload(reload), m_emitCompleted(true)
+ {
+ //kDebug() << "Creating CachedItemsJob" << this << "for lister" << lister << url;
+@@ -301,40 +304,70 @@ void KDirLister::Private::CachedItemsJob::done()
+ {
+ if (!m_lister) // job was already killed, but waiting deletion due to deleteLater
+ return;
+- kDirListerCache->emitItemsFromCache(this, m_lister, m_items, m_rootItem, m_url, m_reload, m_emitCompleted);
++ kDirListerCache->emitItemsFromCache(this, m_lister, m_url, m_reload, m_emitCompleted);
+ emitResult();
+ }
+
+ bool KDirLister::Private::CachedItemsJob::doKill()
+ {
+- //kDebug() << this;
+- kDirListerCache->emitItemsFromCache(this, m_lister, KFileItemList(), KFileItem(), m_url, false, false);
++ //kDebug(7004) << this;
++ kDirListerCache->forgetCachedItemsJob(this, m_lister, m_url);
++ if (!property("_kdlc_silent").toBool()) {
++ emit m_lister->canceled(m_url);
++ emit m_lister->canceled();
++ }
+ m_lister = 0;
+ return true;
+ }
+
+-void KDirListerCache::emitItemsFromCache(KDirLister::Private::CachedItemsJob* cachedItemsJob, KDirLister* lister, const KFileItemList& items, const KFileItem& rootItem, const KUrl& _url, bool _reload, bool _emitCompleted)
++void KDirListerCache::emitItemsFromCache(KDirLister::Private::CachedItemsJob* cachedItemsJob, KDirLister* lister, const KUrl& _url, bool _reload, bool _emitCompleted)
+ {
+ const QString urlStr = _url.url();
+- DirItem *itemU = kDirListerCache->itemsInUse.value(urlStr);
+- Q_ASSERT(itemU); // hey we're listing that dir, so this can't be 0, right?
+-
+ KDirLister::Private* kdl = lister->d;
+-
+ kdl->complete = false;
+
+- if (kdl->rootFileItem.isNull() && !rootItem.isNull() && kdl->url == _url) {
+- kdl->rootFileItem = rootItem;
++ DirItem *itemU = kDirListerCache->itemsInUse.value(urlStr);
++ if (!itemU) {
++ kWarning(7004) << "Can't find item for directory" << urlStr << "anymore";
++ } else {
++ const KFileItemList items = itemU->lstItems;
++ const KFileItem rootItem = itemU->rootItem;
++ _reload = _reload || !itemU->complete;
++
++ if (kdl->rootFileItem.isNull() && !rootItem.isNull() && kdl->url == _url) {
++ kdl->rootFileItem = rootItem;
++ }
++ if (!items.isEmpty()) {
++ //kDebug(7004) << "emitting" << items.count() << "for lister" << lister;
++ kdl->addNewItems(_url, items);
++ kdl->emitItems();
++ }
+ }
+- if (!items.isEmpty()) {
+- //kDebug(7004) << "emitting" << items.count() << "for lister" << lister;
+- kdl->addNewItems(_url, items);
+- kdl->emitItems();
++
++ forgetCachedItemsJob(cachedItemsJob, lister, _url);
++
++ // Emit completed, unless we were told not to,
++ // or if listDir() was called while another directory listing for this dir was happening,
++ // so we "joined" it. We detect that using jobForUrl to ensure it's a real ListJob,
++ // not just a lister-specific CachedItemsJob (which wouldn't emit completed for us).
++ if (_emitCompleted) {
++
++ kdl->complete = true;
++ emit lister->completed( _url );
++ emit lister->completed();
++
++ if ( _reload ) {
++ updateDirectory( _url );
++ }
+ }
++}
+
++void KDirListerCache::forgetCachedItemsJob(KDirLister::Private::CachedItemsJob* cachedItemsJob, KDirLister* lister, const KUrl& _url)
++{
+ // Modifications to data structures only below this point;
+ // so that addNewItems is called with a consistent state
+
++ const QString urlStr = _url.url();
+ lister->d->m_cachedItemsJobs.removeAll(cachedItemsJob);
+
+ KDirListerCacheDirectoryData& dirData = directoryData[urlStr];
+@@ -343,27 +376,12 @@ void KDirListerCache::emitItemsFromCache(KDirLister::Private::CachedItemsJob* ca
+ KIO::ListJob *listJob = jobForUrl(urlStr);
+ if (!listJob) {
+ Q_ASSERT(!dirData.listersCurrentlyHolding.contains(lister));
+- kDebug(7004) << "Moving from listing to holding, because no more job" << lister << urlStr;
++ //kDebug(7004) << "Moving from listing to holding, because no more job" << lister << urlStr;
+ dirData.listersCurrentlyHolding.append( lister );
+ dirData.listersCurrentlyListing.removeAll( lister );
+ } else {
+ //kDebug(7004) << "Still having a listjob" << listJob << ", so not moving to currently-holding.";
+ }
+-
+- // Emit completed, unless we were told not to,
+- // or if listDir() was called while another directory listing for this dir was happening,
+- // so we "joined" it. We detect that using jobForUrl to ensure it's a real ListJob,
+- // not just a lister-specific CachedItemsJob (which wouldn't emit completed for us).
+- if (_emitCompleted) {
+-
+- kdl->complete = true;
+- emit lister->completed( _url );
+- emit lister->completed();
+-
+- if ( _reload || !itemU->complete ) {
+- updateDirectory( _url );
+- }
+- }
+ }
+
+ bool KDirListerCache::validUrl( const KDirLister *lister, const KUrl& url ) const
+@@ -396,19 +414,13 @@ void KDirListerCache::stop( KDirLister *lister, bool silent )
+ #ifdef DEBUG_CACHE
+ //printDebug();
+ #endif
+- //kDebug(7004) << "lister: " << lister;
++ //kDebug(7004) << "lister:" << lister << "silent=" << silent;
+
+ const KUrl::List urls = lister->d->lstDirs;
+ Q_FOREACH(const KUrl& url, urls) {
+- //kDebug() << "Stopping any listjob for" << url.url();
+- stopListJob(url.url(), silent);
++ stopListingUrl(lister, url, silent);
+ }
+-
+- Q_FOREACH(KDirLister::Private::CachedItemsJob* job, lister->d->m_cachedItemsJobs) {
+- //kDebug() << "Killing cached items job";
+- job->kill(); // removes job from list, too
+- }
+-
++
+ #if 0 // test code
+ QHash<QString,KDirListerCacheDirectoryData>::iterator dirit = directoryData.begin();
+ const QHash<QString,KDirListerCacheDirectoryData>::iterator dirend = directoryData.end();
+@@ -416,6 +428,7 @@ void KDirListerCache::stop( KDirLister *lister, bool silent )
+ KDirListerCacheDirectoryData& dirData = dirit.value();
+ if (dirData.listersCurrentlyListing.contains(lister)) {
+ kDebug(7004) << "ERROR: found lister" << lister << "in list - for" << dirit.key();
++ Q_ASSERT(false);
+ }
+ }
+ #endif
+@@ -429,6 +442,9 @@ void KDirListerCache::stopListingUrl(KDirLister *lister, const KUrl& _u, bool si
+
+ KDirLister::Private::CachedItemsJob* cachedItemsJob = lister->d->cachedItemsJobForUrl(url);
+ if (cachedItemsJob) {
++ if (silent) {
++ cachedItemsJob->setProperty("_kdlc_silent", true);
++ }
+ cachedItemsJob->kill(); // removes job from list, too
+ }
+
+@@ -440,9 +456,18 @@ void KDirListerCache::stopListingUrl(KDirLister *lister, const KUrl& _u, bool si
+ return;
+ KDirListerCacheDirectoryData& dirData = dirit.value();
+ if (dirData.listersCurrentlyListing.contains(lister)) {
+-
+ //kDebug(7004) << " found lister" << lister << "in list - for" << urlStr;
+- stopListJob(urlStr, silent);
++ if (dirData.listersCurrentlyListing.count() == 1) {
++ // This was the only dirlister interested in the list job -> kill the job
++ stopListJob(urlStr, silent);
++ } else {
++ // Leave the job running for the other dirlisters, just unsubscribe us.
++ dirData.listersCurrentlyListing.removeAll(lister);
++ if (!silent) {
++ emit lister->canceled();
++ emit lister->canceled(url);
++ }
++ }
+ }
+ }
+
+@@ -460,9 +485,10 @@ void KDirListerCache::stopListJob(const QString& url, bool silent)
+
+ KIO::ListJob *job = jobForUrl(url);
+ if (job) {
+- //kDebug() << "Killing list job" << job;
+- if (silent)
++ //kDebug() << "Killing list job" << job << "for" << url;
++ if (silent) {
+ job->setProperty("_kdlc_silent", true);
++ }
+ job->kill(KJob::EmitResult);
+ }
+ }
+diff --git a/kio/kio/kdirlister_p.h b/kio/kio/kdirlister_p.h
+index 4464c16..dd4c00f 100644
+--- a/kio/kio/kdirlister_p.h
++++ b/kio/kio/kdirlister_p.h
+@@ -209,10 +209,12 @@ public:
+ KFileItem *findByUrl(const KDirLister *lister, const KUrl &url) const;
+
+ // Called by CachedItemsJob:
+- // Emits those items, for this lister and this url
++ // Emits the cached items, for this lister and this url
+ void emitItemsFromCache(KDirLister::Private::CachedItemsJob* job, KDirLister* lister,
+- const KFileItemList& lst, const KFileItem& rootItem,
+ const KUrl& _url, bool _reload, bool _emitCompleted);
++ // Called by CachedItemsJob:
++ void forgetCachedItemsJob(KDirLister::Private::CachedItemsJob* job, KDirLister* lister,
++ const KUrl& url);
+
+ public Q_SLOTS:
+ /**
+@@ -464,8 +466,7 @@ struct KDirListerCacheDirectoryData
+ class KDirLister::Private::CachedItemsJob : public KJob {
+ Q_OBJECT
+ public:
+- CachedItemsJob(KDirLister* lister, const KFileItemList& items, const KFileItem& rootItem,
+- const KUrl& url, bool reload);
++ CachedItemsJob(KDirLister* lister, const KUrl& url, bool reload);
+
+ /*reimp*/ void start() { QMetaObject::invokeMethod(this, "done", Qt::QueuedConnection); }
+
+@@ -483,8 +484,6 @@ public Q_SLOTS:
+ private:
+ KDirLister* m_lister;
+ KUrl m_url;
+- KFileItemList m_items;
+- KFileItem m_rootItem;
+ bool m_reload;
+ bool m_emitCompleted;
+ };
+diff --git a/kio/tests/kdirlistertest.cpp b/kio/tests/kdirlistertest.cpp
+index e543c1f..3047fdd 100644
+--- a/kio/tests/kdirlistertest.cpp
++++ b/kio/tests/kdirlistertest.cpp
+@@ -678,12 +678,83 @@ void KDirListerTest::testConcurrentHoldingListing()
+ QCOMPARE(m_dirLister.spyClear.count(), 1);
+ QCOMPARE(m_dirLister.spyClearKUrl.count(), 0);
+ QVERIFY(dirLister2.isFinished());
+- disconnect(&dirLister2, 0, this, 0);
+ QVERIFY(m_dirLister.isFinished());
+ disconnect(&m_dirLister, 0, this, 0);
+ QCOMPARE(m_items.count(), origItemCount);
+ }
+
++void KDirListerTest::testConcurrentListingAndStop()
++{
++ m_items.clear();
++ m_items2.clear();
++
++ MyDirLister dirLister2;
++
++ // Use a new tempdir for this test, so that we don't use the cache at all.
++ KTempDir tempDir;
++ const QString path = tempDir.name();
++ createTestFile(path+"file_1");
++ createTestFile(path+"file_2");
++ createTestFile(path+"file_3");
++
++ connect(&m_dirLister, SIGNAL(newItems(KFileItemList)), this, SLOT(slotNewItems(KFileItemList)));
++ connect(&dirLister2, SIGNAL(newItems(KFileItemList)), this, SLOT(slotNewItems2(KFileItemList)));
++
++ // Before m_dirLister has time to emit the items, let's make dirLister2 call stop().
++ // This should not stop the list job for m_dirLister (#267709).
++ dirLister2.openUrl(KUrl(path), KDirLister::Reload);
++ m_dirLister.openUrl(KUrl(path)/*, KDirLister::Reload*/);
++
++ QCOMPARE(m_dirLister.spyStarted.count(), 1);
++ QCOMPARE(m_dirLister.spyCompleted.count(), 0);
++ QCOMPARE(m_dirLister.spyCompletedKUrl.count(), 0);
++ QCOMPARE(m_dirLister.spyCanceled.count(), 0);
++ QCOMPARE(m_dirLister.spyCanceledKUrl.count(), 0);
++ QCOMPARE(m_dirLister.spyClear.count(), 1);
++ QCOMPARE(m_dirLister.spyClearKUrl.count(), 0);
++ QCOMPARE(m_items.count(), 0);
++
++ QCOMPARE(dirLister2.spyStarted.count(), 1);
++ QCOMPARE(dirLister2.spyCompleted.count(), 0);
++ QCOMPARE(dirLister2.spyCompletedKUrl.count(), 0);
++ QCOMPARE(dirLister2.spyCanceled.count(), 0);
++ QCOMPARE(dirLister2.spyCanceledKUrl.count(), 0);
++ QCOMPARE(dirLister2.spyClear.count(), 1);
++ QCOMPARE(dirLister2.spyClearKUrl.count(), 0);
++ QCOMPARE(m_items2.count(), 0);
++ QVERIFY(!m_dirLister.isFinished());
++ QVERIFY(!dirLister2.isFinished());
++
++ dirLister2.stop();
++
++ QCOMPARE(dirLister2.spyStarted.count(), 1);
++ QCOMPARE(dirLister2.spyCompleted.count(), 0);
++ QCOMPARE(dirLister2.spyCompletedKUrl.count(), 0);
++ QCOMPARE(dirLister2.spyCanceled.count(), 1);
++ QCOMPARE(dirLister2.spyCanceledKUrl.count(), 1);
++ QCOMPARE(dirLister2.spyClear.count(), 1);
++ QCOMPARE(dirLister2.spyClearKUrl.count(), 0);
++ QCOMPARE(m_items2.count(), 0);
++
++ // then wait for completed
++ qDebug("waiting for completed");
++ connect(&m_dirLister, SIGNAL(completed()), this, SLOT(exitLoop()));
++ enterLoop();
++
++ QCOMPARE(m_items.count(), 3);
++ QCOMPARE(m_items2.count(), 0);
++
++ //QCOMPARE(m_dirLister.spyStarted.count(), 1); // 2 when in cache
++ QCOMPARE(m_dirLister.spyCompleted.count(), 1);
++ QCOMPARE(m_dirLister.spyCompletedKUrl.count(), 1);
++ QCOMPARE(m_dirLister.spyCanceled.count(), 0);
++ QCOMPARE(m_dirLister.spyCanceledKUrl.count(), 0);
++ QCOMPARE(m_dirLister.spyClear.count(), 1);
++ QCOMPARE(m_dirLister.spyClearKUrl.count(), 0);
++
++ disconnect(&m_dirLister, 0, this, 0);
++}
++
+ void KDirListerTest::testDeleteListerEarly()
+ {
+ // Do the same again, it should behave the same, even with the items in the cache
+diff --git a/kio/tests/kdirlistertest.h b/kio/tests/kdirlistertest.h
+index 531abd5..a781aca 100644
+--- a/kio/tests/kdirlistertest.h
++++ b/kio/tests/kdirlistertest.h
+@@ -101,6 +101,7 @@ private Q_SLOTS:
+ void testRenameAndOverwrite();
+ void testConcurrentListing();
+ void testConcurrentHoldingListing();
++ void testConcurrentListingAndStop();
+ void testDeleteListerEarly();
+ void testOpenUrlTwice();
+ void testOpenUrlTwiceWithKeep();
diff --git a/extra/kdelibs/kde-applications-menu.patch b/extra/kdelibs/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/extra/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/extra/kdelibs/kdelibs.install b/extra/kdelibs/kdelibs.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/extra/kdelibs/kdelibs.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/extra/kdelibs3/PKGBUILD b/extra/kdelibs3/PKGBUILD
new file mode 100644
index 000000000..faa4afb94
--- /dev/null
+++ b/extra/kdelibs3/PKGBUILD
@@ -0,0 +1,85 @@
+# $ Id: $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kdelibs3
+pkgver=3.5.10
+pkgrel=10
+pkgdesc='KDE3 Core Libraries'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 'libcups' 'jasper'
+ 'bzip2' 'libidn' 'openexr' 'aspell' 'qt3' 'ca-certificates')
+makedepends=('pkgconfig' 'cups' 'hspell' 'autoconf')
+options=('libtool')
+install='kdelibs3.install'
+source=("ftp://ftp.kde.org/pub/kde/stable/${pkgver}/src/kdelibs-${pkgver}.tar.bz2"
+ 'ftp://ftp.archlinux.org/other/kde/kde-3.5-1074156.patch.gz'
+ 'acinclude.patch'
+ 'kde3.profile'
+ 'kde4-compatibility.patch'
+ 'kconf_updaterc')
+md5sums=('43cd55ed15f63b5738d620ef9f9fd568'
+ 'ca50d4515468cfda80946690c53073f3'
+ 'a5aedcc9550809ce6672a7dddf9f5ad4'
+ 'ab14ce2c40698e24e162284d50c6f466'
+ 'f4e0735475b5de59d738d68a9f467b77'
+ '11e49bc6aca497f55610146afe217751')
+
+build() {
+ cd $srcdir/kdelibs-${pkgver}
+
+ . /etc/profile.d/qt3.sh
+ . $srcdir/kde3.profile
+
+ patch -p0 -i $srcdir/kde-3.5-1074156.patch || return 1
+ patch -p1 -i $srcdir/acinclude.patch || return 1
+ patch -p1 -i $srcdir/kde4-compatibility.patch || return 1
+
+ sed -iautomake -e 's|automake\*1.10\*|automake\*1.1[0-5]\*|' admin/cvs.sh
+ make -f admin/Makefile.common cvs
+
+ ./configure --prefix=/opt/kde \
+ --with-distribution='Arch Linux' \
+ --with-alsa \
+ --disable-debug \
+ --disable-dnssd \
+ --disable-dnotify \
+ --enable-inotify \
+ --enable-sendfile \
+ --without-lua \
+ --with-hspell \
+ --enable-gcc-hidden-visibility \
+ --enable-final \
+ --enable-new-ldflags LDFLAGS="${LDFLAGS} -L/opt/qt/lib" \
+ --without-arts \
+ --disable-libfam || return 1
+ make || return 1
+}
+
+package() {
+ cd $srcdir/kdelibs-${pkgver}
+
+ make DESTDIR=$pkgdir install || return 1
+
+ # disable broken kconf_update by default
+ install -D -m644 $srcdir/kconf_updaterc $pkgdir/opt/kde/share/config/kconf_updaterc
+
+ # install KDE3 profile
+ install -D -m755 $srcdir/kde3.profile $pkgdir/etc/profile.d/kde3.sh
+ # make KDE3 styles available to Qt3
+ install -d -m755 $pkgdir/opt/qt/plugins
+ ln -sf /opt/kde/lib/kde3/plugins/styles $pkgdir/opt/qt/plugins/styles
+
+ # cert bundle seems to be hardcoded
+ # link it to the one from ca-certificates
+ rm -f $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt
+ ln -sf /etc/ssl/certs/ca-certificates.crt $pkgdir/opt/kde/share/apps/kssl/ca-bundle.crt
+
+ # we don't have khelpcenter anyway
+ rm -rf $pkgdir/opt/kde/share/doc
+
+ install -d -m755 ${pkgdir}/etc/ld.so.conf.d/
+ echo '/opt/kde/lib' > ${pkgdir}/etc/ld.so.conf.d/kdelibs3.conf
+}
diff --git a/extra/kdelibs3/acinclude.patch b/extra/kdelibs3/acinclude.patch
new file mode 100644
index 000000000..0610d6df5
--- /dev/null
+++ b/extra/kdelibs3/acinclude.patch
@@ -0,0 +1,66 @@
+2009-12-10 Stepan Kasal <skasal@redhat.com>
+
+The change of implementation of AC_REQUIRE in 2.64 caused a regression
+in the arts project.
+This can be fixed by shuffling some macro calls.
+
+I suppose that most of this patch will not be needed with a future
+release of Autoconf.
+But the last chunk of this patch is a real bug in this source and
+should go upstream.
+
+--- arts-1.5.10/admin/acinclude.m4.in 2008-08-20 18:07:05.000000000 +0200
++++ arts-1.5.10/admin/acinclude.m4.in 2009-12-09 17:30:57.000000000 +0100
+@@ -3081,8 +3081,18 @@
+ fi
+ ])
+
++AC_DEFUN([AC_CHECK_COMPILERS_CC],
++[
++ dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
++ CFLAGS=" $CFLAGS"
++ AC_PROG_CC
++ CXXFLAGS=" $CXXFLAGS"
++ AC_PROG_CXX
++])
++
+ AC_DEFUN([AC_CHECK_COMPILERS],
+ [
++ AC_REQUIRE([AC_CHECK_COMPILERS_CC])
+ AC_ARG_ENABLE(debug,
+ AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
+ [
+@@ -3141,11 +3151,6 @@
+ [kde_use_profiling="no"]
+ )
+
+- dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
+- CFLAGS=" $CFLAGS"
+-
+- AC_PROG_CC
+-
+ AC_PROG_CPP
+
+ if test "$GCC" = "yes"; then
+@@ -3174,10 +3179,6 @@
+ LDFLAGS=""
+ fi
+
+- CXXFLAGS=" $CXXFLAGS"
+-
+- AC_PROG_CXX
+-
+ KDE_CHECK_FOR_BAD_COMPILER
+
+ if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
+@@ -3503,8 +3504,8 @@
+ AC_REQUIRE([AC_LIBTOOL_DLOPEN])
+ AC_REQUIRE([KDE_CHECK_LIB64])
+
+-AC_OBJEXT
+-AC_EXEEXT
++AC_REQUIRE([AC_OBJEXT])
++AC_REQUIRE([AC_EXEEXT])
+
+ AM_PROG_LIBTOOL
+ AC_LIBTOOL_CXX
diff --git a/extra/kdelibs3/kconf_updaterc b/extra/kdelibs3/kconf_updaterc
new file mode 100644
index 000000000..24c2623fb
--- /dev/null
+++ b/extra/kdelibs3/kconf_updaterc
@@ -0,0 +1,2 @@
+updateInfoAdded=false
+autoUpdateDisabled=true
diff --git a/extra/kdelibs3/kde3.profile b/extra/kdelibs3/kde3.profile
new file mode 100755
index 000000000..ef09631ff
--- /dev/null
+++ b/extra/kdelibs3/kde3.profile
@@ -0,0 +1,6 @@
+export PATH=$PATH:/opt/kde/bin
+if [ ! -z $XDG_DATA_DIRS ]; then
+ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/opt/kde/share
+else
+ export XDG_DATA_DIRS=/opt/kde/share
+fi
diff --git a/extra/kdelibs3/kde4-compatibility.patch b/extra/kdelibs3/kde4-compatibility.patch
new file mode 100644
index 000000000..129c314ae
--- /dev/null
+++ b/extra/kdelibs3/kde4-compatibility.patch
@@ -0,0 +1,1012 @@
+diff -Nura kdelibs-3.5.10/kdecore/kcrash.cpp kdelibs-3.5.10.new/kdecore/kcrash.cpp
+--- kdelibs-3.5.10/kdecore/kcrash.cpp 2007-01-15 12:34:17.000000000 +0100
++++ kdelibs-3.5.10.new/kdecore/kcrash.cpp 2009-08-06 06:18:06.000000000 +0200
+@@ -158,7 +158,7 @@
+ int i = 0;
+
+ // argument 0 has to be drkonqi
+- argv[i++] = "drkonqi";
++ argv[i++] = "/usr/lib/kde4/libexec/drkonqi";
+
+ #if defined Q_WS_X11
+ // start up on the correct display
+@@ -325,7 +325,7 @@
+ _exit(253);
+ if(!geteuid() && setuid(getuid()) < 0)
+ _exit(253);
+- execvp("drkonqi", const_cast< char** >( argv ));
++ execvp("/usr/lib/kde4/libexec/drkonqi", const_cast< char** >( argv ));
+ _exit(errno);
+ }
+ else
+diff -Nura kdelibs-3.5.10/kded/Makefile.am kdelibs-3.5.10.new/kded/Makefile.am
+--- kdelibs-3.5.10/kded/Makefile.am 2005-10-10 17:06:29.000000000 +0200
++++ kdelibs-3.5.10.new/kded/Makefile.am 2009-08-06 06:21:37.000000000 +0200
+@@ -58,7 +58,7 @@
+ servicetype_DATA = kdedmodule.desktop
+ servicetypedir = $(kde_servicetypesdir)
+
+-xdg_menu_DATA = applications.menu
++xdg_menu_DATA = kde-applications.menu
+
+ update_DATA = kded.upd
+ updatedir = $(kde_datadir)/kconf_update
+diff -Nura kdelibs-3.5.10/kded/Makefile.in kdelibs-3.5.10.new/kded/Makefile.in
+--- kdelibs-3.5.10/kded/Makefile.in 2008-08-20 18:05:57.000000000 +0200
++++ kdelibs-3.5.10.new/kded/Makefile.in 2009-08-06 06:22:19.000000000 +0200
+@@ -535,7 +535,7 @@
+
+ servicetype_DATA = kdedmodule.desktop
+ servicetypedir = $(kde_servicetypesdir)
+-xdg_menu_DATA = applications.menu
++xdg_menu_DATA = kde-applications.menu
+ update_DATA = kded.upd
+ updatedir = $(kde_datadir)/kconf_update
+ #>- all: all-am
+@@ -1173,7 +1173,7 @@
+ -rm -f kded.moc vfolder_menu.moc kdedmodule.moc kbuildsycoca.moc
+
+ #>+ 2
+-KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am
++KDE_DIST=DESIGN kded.upd Makefile.in HOWTO vfolder_menu.h kde-applications.menu kded.h kdedmodule.desktop README.kded kctimefactory.h Makefile.am
+
+ #>+ 2
+ docs-am:
+diff -Nura kdelibs-3.5.10/kded/applications.menu kdelibs-3.5.10.new/kded/applications.menu
+--- kdelibs-3.5.10/kded/applications.menu 2005-09-10 10:27:40.000000000 +0200
++++ kdelibs-3.5.10.new/kded/applications.menu 1970-01-01 01:00:00.000000000 +0100
+@@ -1,469 +0,0 @@
+- <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+- "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
+-
+-<Menu>
+- <Name>Applications</Name>
+- <Directory>kde-main.directory</Directory>
+- <!-- Search the default locations -->
+- <KDELegacyDirs/>
+- <DefaultAppDirs/>
+- <DefaultDirectoryDirs/>
+- <DefaultLayout>
+- <Merge type="menus"/>
+- <Merge type="files"/>
+- <Separator/>
+- <Menuname>More</Menuname>
+- </DefaultLayout>
+- <Layout>
+- <Merge type="menus"/>
+- <Menuname>Applications</Menuname>
+- <Merge type="files"/>
+- </Layout>
+-
+- <Menu>
+- <Name>Applications</Name>
+- <Directory>kde-unknown.directory</Directory>
+- <OnlyUnallocated/>
+- <Include>
+- <Not>
+- <!-- Don't list non-KDE core applications -->
+- <And>
+- <Category>Core</Category>
+- <Not><Category>KDE</Category></Not>
+- </And>
+- <!-- Don't list SUSE's YaST in here -->
+- <Category>X-SuSE-YaST</Category>
+- </Not>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Development</Name>
+- <Directory>kde-development.directory</Directory>
+- <Menu>
+- <Name>X-KDE-KDevelopIDE</Name>
+- <Directory>kde-development-kdevelop.directory</Directory>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Category>X-KDE-KDevelopIDE</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Translation</Name>
+- <Directory>kde-development-translation.directory</Directory>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Category>Translation</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Web Development</Name>
+- <Directory>kde-development-webdevelopment.directory</Directory>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Category>WebDevelopment</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Include>
+- <And>
+- <Category>Development</Category>
+- <Not><Category>X-KDE-KDevelopIDE</Category></Not>
+- <Not><Category>Translation</Category></Not>
+- <Not><Category>WebDevelopment</Category></Not>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Science</Name>
+- <Directory>kde-science.directory</Directory>
+- <Include>
+- <And><!-- Include /any/ Science app which is not an Education app -->
+- <Or>
+- <Category>Astronomy</Category>
+- <Category>Biology</Category>
+- <Category>Chemistry</Category>
+- <Category>Geology</Category>
+- <Category>MedicalSoftware</Category>
+- <Category>Physics</Category>
+- <Category>Math</Category>
+- <Category>Science</Category>
+- </Or>
+- <Not><Category>Education</Category></Not>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Edutainment</Name>
+- <Directory>kde-edutainment.directory</Directory>
+- <Menu>
+- <Name>Languages</Name>
+- <Directory>kde-edu-languages.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Or>
+- <Category>Languages</Category>
+- <Category>X-KDE-Edu-Language</Category>
+- </Or>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Mathematics</Name>
+- <Directory>kde-edu-mathematics.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Category>Math</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Miscellaneous</Name>
+- <Directory>kde-edu-miscellaneous.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Not>
+- <Category>Languages</Category>
+- <Category>X-KDE-Edu-Language</Category>
+- <Category>Math</Category>
+- <Category>Science</Category>
+- <Category>Teaching</Category>
+- <Category>X-KDE-Edu-Teaching</Category>
+- </Not>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Science</Name>
+- <Directory>kde-edu-science.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Category>Science</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Tools</Name>
+- <Directory>kde-edu-tools.directory</Directory>
+- <Include>
+- <And>
+- <Category>Education</Category>
+- <Or>
+- <Category>Teaching</Category>
+- <Category>X-KDE-Edu-Teaching</Category>
+- </Or>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Games</Name>
+- <Directory>kde-games.directory</Directory>
+- <Menu>
+- <Name>Arcade</Name>
+- <Directory>kde-games-arcade.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>ArcadeGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Board</Name>
+- <Directory>kde-games-board.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>BoardGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Card</Name>
+- <Directory>kde-games-card.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>CardGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Kidsgames</Name>
+- <Directory>kde-games-kids.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Or>
+- <Category>X-KDE-KidsGame</Category>
+- <Category>KidsGame</Category>
+- </Or>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>TacticStrategy</Name>
+- <Directory>kde-games-strategy.directory</Directory>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Category>StrategyGame</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Include>
+- <And>
+- <Category>Game</Category>
+- <Not>
+- <Category>ArcadeGame</Category>
+- <Category>BoardGame</Category>
+- <Category>CardGame</Category>
+- <Category>X-KDE-KidsGame</Category>
+- <Category>KidsGame</Category>
+- <Category>StrategyGame</Category>
+- </Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>Toys</Name>
+- <Directory>kde-toys.directory</Directory>
+- <Include>
+- <Category>Amusement</Category>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Graphics</Name>
+- <Directory>kde-graphics.directory</Directory>
+- <Include>
+- <And>
+- <Category>Graphics</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Graphics</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Internet</Name>
+- <Directory>kde-internet.directory</Directory>
+- <Include>
+- <And>
+- <Category>Network</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>Terminal</Name>
+- <Directory>kde-internet-terminal.directory</Directory>
+- </Menu>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Network</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Multimedia</Name>
+- <Directory>kde-multimedia.directory</Directory>
+- <Include>
+- <And>
+- <Category>AudioVideo</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>AudioVideo</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Office</Name>
+- <Directory>kde-office.directory</Directory>
+- <Layout>
+- <Merge type="menus"/>
+- <Filename>kde-koshell.desktop</Filename>
+- <Filename>kde-Kontact.desktop</Filename>
+- <Separator/>
+- <Filename>kde-kword.desktop</Filename>
+- <Filename>kde-kspread.desktop</Filename>
+- <Filename>kde-kpresenter.desktop</Filename>
+- <Merge type="files"/>
+- <Separator/>
+- <Menuname>More</Menuname>
+- </Layout>
+- <Include>
+- <And>
+- <Category>Office</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Office</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Settingsmenu</Name>
+- <Directory>kde-settingsmenu.directory</Directory>
+- <Include>
+- <Category>Settings</Category>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>System</Name>
+- <Directory>kde-system.directory</Directory>
+- <Include>
+- <And>
+- <Category>System</Category>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>System</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>ScreenSavers</Name>
+- <Directory>kde-system-screensavers.directory</Directory>
+- </Menu>
+- <Menu>
+- <Name>Terminal</Name>
+- <Directory>kde-system-terminal.directory</Directory>
+- </Menu>
+- </Menu>
+- <Menu>
+- <Name>Utilities</Name>
+- <Directory>kde-utilities.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Not><Category>Accessibility</Category></Not>
+- <Not><Category>X-KDE-Utilities-Desktop</Category></Not>
+- <Not><Category>X-KDE-Utilities-File</Category></Not>
+- <Not><Category>X-KDE-Utilities-Peripherals</Category></Not>
+- <Not><Category>X-KDE-Utilities-PIM</Category></Not>
+- <Not><Category>X-KDE-More</Category></Not>
+- </And>
+- </Include>
+- <Menu>
+- <Name>Accessibility</Name>
+- <Directory>kde-utilities-accessibility.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>Accessibility</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Desktop</Name>
+- <Directory>kde-utilities-desktop.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-Desktop</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Editors</Name>
+- <Directory>kde-editors.directory</Directory>
+- <Include>
+- <Category>TextEditor</Category>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>File</Name>
+- <Directory>kde-utilities-file.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-File</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>Peripherals</Name>
+- <Directory>kde-utilities-peripherals.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-Peripherals</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>PIM</Name>
+- <Directory>kde-utilities-pim.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-Utilities-PIM</Category>
+- </And>
+- </Include>
+- </Menu>
+- <Menu>
+- <Name>XUtilities</Name>
+- <Directory>kde-utilities-xutils.directory</Directory>
+- </Menu>
+- <Menu>
+- <Name>More</Name>
+- <Directory>kde-more.directory</Directory>
+- <Include>
+- <And>
+- <Category>Utility</Category>
+- <Category>X-KDE-More</Category>
+- </And>
+- </Include>
+- </Menu>
+- </Menu>
+- <Include>
+- <And>
+- <Category>KDE</Category>
+- <Category>Core</Category>
+- </And>
+- </Include>
+- <DefaultMergeDirs/>
+- <MergeFile>applications-kmenuedit.menu</MergeFile>
+-</Menu>
+diff -Nura kdelibs-3.5.10/kded/kbuildsycoca.cpp kdelibs-3.5.10.new/kded/kbuildsycoca.cpp
+--- kdelibs-3.5.10/kded/kbuildsycoca.cpp 2007-05-14 09:52:43.000000000 +0200
++++ kdelibs-3.5.10.new/kded/kbuildsycoca.cpp 2009-08-06 06:23:48.000000000 +0200
+@@ -379,7 +379,7 @@
+ connect(g_vfolder, SIGNAL(newService(const QString &, KService **)),
+ this, SLOT(slotCreateEntry(const QString &, KService **)));
+
+- VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++ VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+
+ KServiceGroup *entry = g_bsgf->addNew("/", kdeMenu->directoryFile, 0, false);
+ entry->setLayoutInfo(kdeMenu->layoutList);
+diff -Nura kdelibs-3.5.10/kded/kde-applications.menu kdelibs-3.5.10.new/kded/kde-applications.menu
+--- kdelibs-3.5.10/kded/kde-applications.menu 1970-01-01 01:00:00.000000000 +0100
++++ kdelibs-3.5.10.new/kded/kde-applications.menu 2005-09-10 10:27:40.000000000 +0200
+@@ -0,0 +1,469 @@
++ <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
++ "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
++
++<Menu>
++ <Name>Applications</Name>
++ <Directory>kde-main.directory</Directory>
++ <!-- Search the default locations -->
++ <KDELegacyDirs/>
++ <DefaultAppDirs/>
++ <DefaultDirectoryDirs/>
++ <DefaultLayout>
++ <Merge type="menus"/>
++ <Merge type="files"/>
++ <Separator/>
++ <Menuname>More</Menuname>
++ </DefaultLayout>
++ <Layout>
++ <Merge type="menus"/>
++ <Menuname>Applications</Menuname>
++ <Merge type="files"/>
++ </Layout>
++
++ <Menu>
++ <Name>Applications</Name>
++ <Directory>kde-unknown.directory</Directory>
++ <OnlyUnallocated/>
++ <Include>
++ <Not>
++ <!-- Don't list non-KDE core applications -->
++ <And>
++ <Category>Core</Category>
++ <Not><Category>KDE</Category></Not>
++ </And>
++ <!-- Don't list SUSE's YaST in here -->
++ <Category>X-SuSE-YaST</Category>
++ </Not>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Development</Name>
++ <Directory>kde-development.directory</Directory>
++ <Menu>
++ <Name>X-KDE-KDevelopIDE</Name>
++ <Directory>kde-development-kdevelop.directory</Directory>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Category>X-KDE-KDevelopIDE</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Translation</Name>
++ <Directory>kde-development-translation.directory</Directory>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Category>Translation</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Web Development</Name>
++ <Directory>kde-development-webdevelopment.directory</Directory>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Category>WebDevelopment</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Include>
++ <And>
++ <Category>Development</Category>
++ <Not><Category>X-KDE-KDevelopIDE</Category></Not>
++ <Not><Category>Translation</Category></Not>
++ <Not><Category>WebDevelopment</Category></Not>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Science</Name>
++ <Directory>kde-science.directory</Directory>
++ <Include>
++ <And><!-- Include /any/ Science app which is not an Education app -->
++ <Or>
++ <Category>Astronomy</Category>
++ <Category>Biology</Category>
++ <Category>Chemistry</Category>
++ <Category>Geology</Category>
++ <Category>MedicalSoftware</Category>
++ <Category>Physics</Category>
++ <Category>Math</Category>
++ <Category>Science</Category>
++ </Or>
++ <Not><Category>Education</Category></Not>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Edutainment</Name>
++ <Directory>kde-edutainment.directory</Directory>
++ <Menu>
++ <Name>Languages</Name>
++ <Directory>kde-edu-languages.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Or>
++ <Category>Languages</Category>
++ <Category>X-KDE-Edu-Language</Category>
++ </Or>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Mathematics</Name>
++ <Directory>kde-edu-mathematics.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Category>Math</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Miscellaneous</Name>
++ <Directory>kde-edu-miscellaneous.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Not>
++ <Category>Languages</Category>
++ <Category>X-KDE-Edu-Language</Category>
++ <Category>Math</Category>
++ <Category>Science</Category>
++ <Category>Teaching</Category>
++ <Category>X-KDE-Edu-Teaching</Category>
++ </Not>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Science</Name>
++ <Directory>kde-edu-science.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Category>Science</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Tools</Name>
++ <Directory>kde-edu-tools.directory</Directory>
++ <Include>
++ <And>
++ <Category>Education</Category>
++ <Or>
++ <Category>Teaching</Category>
++ <Category>X-KDE-Edu-Teaching</Category>
++ </Or>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Games</Name>
++ <Directory>kde-games.directory</Directory>
++ <Menu>
++ <Name>Arcade</Name>
++ <Directory>kde-games-arcade.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>ArcadeGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Board</Name>
++ <Directory>kde-games-board.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>BoardGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Card</Name>
++ <Directory>kde-games-card.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>CardGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Kidsgames</Name>
++ <Directory>kde-games-kids.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Or>
++ <Category>X-KDE-KidsGame</Category>
++ <Category>KidsGame</Category>
++ </Or>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>TacticStrategy</Name>
++ <Directory>kde-games-strategy.directory</Directory>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Category>StrategyGame</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Include>
++ <And>
++ <Category>Game</Category>
++ <Not>
++ <Category>ArcadeGame</Category>
++ <Category>BoardGame</Category>
++ <Category>CardGame</Category>
++ <Category>X-KDE-KidsGame</Category>
++ <Category>KidsGame</Category>
++ <Category>StrategyGame</Category>
++ </Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>Toys</Name>
++ <Directory>kde-toys.directory</Directory>
++ <Include>
++ <Category>Amusement</Category>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Graphics</Name>
++ <Directory>kde-graphics.directory</Directory>
++ <Include>
++ <And>
++ <Category>Graphics</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Graphics</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Internet</Name>
++ <Directory>kde-internet.directory</Directory>
++ <Include>
++ <And>
++ <Category>Network</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>Terminal</Name>
++ <Directory>kde-internet-terminal.directory</Directory>
++ </Menu>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Network</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Multimedia</Name>
++ <Directory>kde-multimedia.directory</Directory>
++ <Include>
++ <And>
++ <Category>AudioVideo</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>AudioVideo</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Office</Name>
++ <Directory>kde-office.directory</Directory>
++ <Layout>
++ <Merge type="menus"/>
++ <Filename>kde-koshell.desktop</Filename>
++ <Filename>kde-Kontact.desktop</Filename>
++ <Separator/>
++ <Filename>kde-kword.desktop</Filename>
++ <Filename>kde-kspread.desktop</Filename>
++ <Filename>kde-kpresenter.desktop</Filename>
++ <Merge type="files"/>
++ <Separator/>
++ <Menuname>More</Menuname>
++ </Layout>
++ <Include>
++ <And>
++ <Category>Office</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Office</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Settingsmenu</Name>
++ <Directory>kde-settingsmenu.directory</Directory>
++ <Include>
++ <Category>Settings</Category>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>System</Name>
++ <Directory>kde-system.directory</Directory>
++ <Include>
++ <And>
++ <Category>System</Category>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>System</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>ScreenSavers</Name>
++ <Directory>kde-system-screensavers.directory</Directory>
++ </Menu>
++ <Menu>
++ <Name>Terminal</Name>
++ <Directory>kde-system-terminal.directory</Directory>
++ </Menu>
++ </Menu>
++ <Menu>
++ <Name>Utilities</Name>
++ <Directory>kde-utilities.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Not><Category>Accessibility</Category></Not>
++ <Not><Category>X-KDE-Utilities-Desktop</Category></Not>
++ <Not><Category>X-KDE-Utilities-File</Category></Not>
++ <Not><Category>X-KDE-Utilities-Peripherals</Category></Not>
++ <Not><Category>X-KDE-Utilities-PIM</Category></Not>
++ <Not><Category>X-KDE-More</Category></Not>
++ </And>
++ </Include>
++ <Menu>
++ <Name>Accessibility</Name>
++ <Directory>kde-utilities-accessibility.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>Accessibility</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Desktop</Name>
++ <Directory>kde-utilities-desktop.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-Desktop</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Editors</Name>
++ <Directory>kde-editors.directory</Directory>
++ <Include>
++ <Category>TextEditor</Category>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>File</Name>
++ <Directory>kde-utilities-file.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-File</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>Peripherals</Name>
++ <Directory>kde-utilities-peripherals.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-Peripherals</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>PIM</Name>
++ <Directory>kde-utilities-pim.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-Utilities-PIM</Category>
++ </And>
++ </Include>
++ </Menu>
++ <Menu>
++ <Name>XUtilities</Name>
++ <Directory>kde-utilities-xutils.directory</Directory>
++ </Menu>
++ <Menu>
++ <Name>More</Name>
++ <Directory>kde-more.directory</Directory>
++ <Include>
++ <And>
++ <Category>Utility</Category>
++ <Category>X-KDE-More</Category>
++ </And>
++ </Include>
++ </Menu>
++ </Menu>
++ <Include>
++ <And>
++ <Category>KDE</Category>
++ <Category>Core</Category>
++ </And>
++ </Include>
++ <DefaultMergeDirs/>
++ <MergeFile>applications-kmenuedit.menu</MergeFile>
++</Menu>
diff --git a/extra/kdelibs3/kdelibs3.install b/extra/kdelibs3/kdelibs3.install
new file mode 100644
index 000000000..7291ac0a2
--- /dev/null
+++ b/extra/kdelibs3/kdelibs3.install
@@ -0,0 +1,12 @@
+post_install() {
+ post_remove
+}
+
+post_upgrade() {
+ post_remove
+}
+
+post_remove() {
+ # this can be removed in future versions
+ sed -ie '/\/opt\/kde\/lib/d' etc/ld.so.conf
+}
diff --git a/extra/kdemultimedia/PKGBUILD b/extra/kdemultimedia/PKGBUILD
new file mode 100644
index 000000000..f73f5d382
--- /dev/null
+++ b/extra/kdemultimedia/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 111780 2011-02-28 23:55:31Z 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.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdemultimedia')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-runtime' 'tunepimp'
+ 'ffmpeg' 'mplayer' 'docbook-xsl' 'pulseaudio' 'libmusicbrainz3')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'mplayerthumbs.config')
+sha1sums=('ad8f6e45d60d2b9cc0fd806e000076fcc0c07a5f'
+ 'ba016fa2563c14ffcba852c62506b66bfc6ee683')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_Xine=OFF
+ make
+}
+
+package_kdemultimedia-dragonplayer() {
+ pkgdesc='Video Player'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/multimedia/dragonplayer/"
+ install='kdemultimedia.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/extra/kdemultimedia/kdemultimedia.install b/extra/kdemultimedia/kdemultimedia.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdemultimedia/mplayerthumbs.config b/extra/kdemultimedia/mplayerthumbs.config
new file mode 100644
index 000000000..761a17953
--- /dev/null
+++ b/extra/kdemultimedia/mplayerthumbs.config
@@ -0,0 +1,2 @@
+[MPlayerThumbsCfg]
+backend=0
diff --git a/extra/kdenetwork/PKGBUILD b/extra/kdenetwork/PKGBUILD
new file mode 100644
index 000000000..aadd3a7c2
--- /dev/null
+++ b/extra/kdenetwork/PKGBUILD
@@ -0,0 +1,114 @@
+# $Id: PKGBUILD 115153 2011-03-17 09:42:34Z 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.6.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr'
+ 'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn'
+ 'ppp' 'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
+ 'telepathy-qt4' 'docbook-xsl' 'libktorrent')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('dc09ffe178070147d67d5c27b9c340a86a2e14c7')
+
+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')
+ optdepends=('python2: YouTube plugin')
+ url="http://kde.org/applications/internet/kget/"
+ install='kdenetwork.install'
+ cd $srcdir/build/kget
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kget
+ 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_kdenetwork-kopete() {
+ pkgdesc='Instant Messenger'
+ depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+ 'libidn' 'qimageblitz' 'v4l-utils' 'libgadu')
+ url="http://kde.org/applications/internet/kopete/"
+ install='kdenetwork.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.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/extra/kdenetwork/kdenetwork.install b/extra/kdenetwork/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdepim-runtime/PKGBUILD b/extra/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..b8adb55c2
--- /dev/null
+++ b/extra/kdepim-runtime/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 107967 2011-01-28 08:04:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.4.10
+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=('pkgconfig' 'cmake' 'automoc4' 'boost')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/kdepim-${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('a0e74f95daf8c28f7b3bd1ee84b6a86fc509d0ff')
+
+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/extra/kdepim-runtime/kdepim-runtime.install b/extra/kdepim-runtime/kdepim-runtime.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/extra/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/extra/kdepim/PKGBUILD b/extra/kdepim/PKGBUILD
new file mode 100644
index 000000000..7f70930ed
--- /dev/null
+++ b/extra/kdepim/PKGBUILD
@@ -0,0 +1,237 @@
+# $Id: PKGBUILD 107973 2011-01-28 08:28:57Z 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.4.10
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss'
+ 'pilot-link' 'kde-agent' 'docbook-xsl')
+source=("http://download.kde.org/stable/${pkgbase}-${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('b9c45e80dddc3bff201df6ddd76fdf4f1f18d5c3')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdepim-akonadiconsole() {
+ pkgdesc='Akonadi Management and Debugging Console'
+ depends=('kdepim-libkdepim' 'kdebase-runtime')
+ install='kdepim.install'
+ cd $srcdir/build/akonadiconsole
+ make DESTDIR=$pkgdir install
+}
+
+package_kdepim-akregator() {
+ pkgdesc='A Feed Reader for KDE'
+ depends=('kdepim-libkdepim' 'kdebase-runtime')
+ 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=('kdebase-runtime' 'kdepimlibs' '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=('kdebase-runtime' 'kdepimlibs' 'kdepim-runtime')
+ cd $srcdir/build/console
+ make DESTDIR=$pkgdir install
+}
+
+package_kdepim-kaddressbook() {
+ pkgdesc='Contact Manager'
+ depends=('kdepim-libkdepim' 'kdebase-runtime')
+ 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' 'kdebase-runtime')
+ 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=('kdebase-runtime' 'kdepimlibs' 'kdepim-runtime')
+ 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' 'kdebase-runtime')
+ 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' 'kdebase-runtime')
+ url="http://kde.org/applications/internet/kmail/"
+ install='kdepim.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 mimelib libksieve plugins/kmail ksendemail \
+ kmailcvt ontologies kontact/plugins/kmail; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdepim-knode() {
+ pkgdesc='News Reader'
+ depends=('kdebase-runtime' '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' 'kdebase-runtime')
+ 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=('kdebase-runtime' 'kdepim-korganizer')
+ url="http://kde.org/applications/office/kontact/"
+ install='kdepim.install'
+ conflcits=('kdepim-kontactinterfaces')
+ replaces=('kdepim-kontactinterfaces')
+ for i in kontact/src kontact/pics doc/kontact\
+ kontact/plugins/summary; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdepim-korganizer() {
+ pkgdesc='Calendar and Scheduling Program'
+ depends=('kdepim-libkdepim' 'kdebase-runtime')
+ url="http://kde.org/applications/office/korganizer"
+ install='kdepim.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=('kdebase-runtime' 'kdepim-libkdepim')
+ cd $srcdir/build/kresources
+ make DESTDIR=$pkgdir install
+}
+
+package_kdepim-ktimetracker() {
+ pkgdesc='Personal Time Tracker'
+ depends=('kdebase-runtime' 'kdepim-kresources')
+ 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=('kdepimlibs' 'kde-agent' 'kdepim-runtime')
+ 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 libkdepim icons libkleo libkpgp strigi-analyzer \
+ messagecore messagelist messageviewer akonadi plugins/ktexteditor; do
+ cd $srcdir/build/${i}
+ make DESTDIR=$pkgdir install
+ done
+}
+
+package_kdepim-wizards() {
+ pkgdesc='KDE Groupware Wizard'
+ depends=('kdebase-runtime' 'kdepim-libkdepim' 'kdepim-kresources')
+ cd $srcdir/build/wizards
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdepim/kdepim.install b/extra/kdepim/kdepim.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdepimlibs/PKGBUILD b/extra/kdepimlibs/PKGBUILD
new file mode 100644
index 000000000..ea81c96fe
--- /dev/null
+++ b/extra/kdepimlibs/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111768 2011-02-28 23:52:43Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepimlibs
+pkgver=4.6.1
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' )
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'cyrus-sasl' 'openldap'
+ 'docbook-xsl')
+install='kdepimlibs.install'
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('bba2ed4593c8d658efba4d4a4346d514529a3127')
+
+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/extra/kdepimlibs/kdepimlibs.install b/extra/kdepimlibs/kdepimlibs.install
new file mode 100644
index 000000000..99262607c
--- /dev/null
+++ b/extra/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/extra/kdeplasma-addons/PKGBUILD b/extra/kdeplasma-addons/PKGBUILD
new file mode 100644
index 000000000..3fb82b636
--- /dev/null
+++ b/extra/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,603 @@
+# $Id: PKGBUILD 111782 2011-02-28 23:55:39Z 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-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-virus'
+ 'kdeplasma-addons-wallpapers-weather')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace' 'kdegraphics-libs'
+ 'kdeedu-marble' 'eigen' 'scim' 'qwt' 'docbook-xsl' 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('8b959c1e2aa5f00b2f0897c9415ba018b018a3d7')
+
+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' 'kdegraphics-libs')
+ 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-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' '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')
+ 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')
+ 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')
+ 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' 'kdeplasma-addons-libs')
+ 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' 'kdeplasma-addons-libs')
+ 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' 'kdeplasma-addons-libs')
+ 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-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/extra/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install b/extra/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/extra/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/extra/kdeplasma-addons/kdeplasma-addons-applets.install b/extra/kdeplasma-addons/kdeplasma-addons-applets.install
new file mode 100644
index 000000000..c4ef46ba8
--- /dev/null
+++ b/extra/kdeplasma-addons/kdeplasma-addons-applets.install
@@ -0,0 +1,11 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+} \ No newline at end of file
diff --git a/extra/kdeplasma-applets-networkmanagement/PKGBUILD b/extra/kdeplasma-applets-networkmanagement/PKGBUILD
new file mode 100644
index 000000000..6d72f56cf
--- /dev/null
+++ b/extra/kdeplasma-applets-networkmanagement/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 105813 2011-01-12 00:25:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jakub Schmidtke <sjakub-at-gmail.com>
+
+pkgname=kdeplasma-applets-networkmanagement
+pkgver=git20110327
+_commit=dfea8bba5d8cef9e7bd70ec74a1df34a1ff6b089
+pkgrel=1
+pkgdesc="KDE control panel and widget network connections"
+arch=('i686' 'x86_64')
+url="http://www.kde.org/"
+license=('GPL')
+depends=('kdebase-workspace' 'networkmanager')
+makedepends=('cmake' 'python2' 'automoc4' 'mobile-broadband-provider-info')
+optdepends=('mobile-broadband-provider-info: allow to add new mobile connection')
+install=${pkgname}.install
+source=("${pkgname}-${_commit}.tar.gz"::"http://quickgit.kde.org/?p=networkmanagement.git&a=snapshot&h=${_commit}")
+md5sums=('760cef41d9b22fa4237bf6539c256cce')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../networkmanagement \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DDBUS_SYSTEM_POLICY_DIR=/etc/dbus-1/system.d
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.install b/extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeplasma-applets-networkmanagement/kdeplasma-applets-networkmanagement.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/extra/kdesdk/PKGBUILD b/extra/kdesdk/PKGBUILD
new file mode 100644
index 000000000..1a77305de
--- /dev/null
+++ b/extra/kdesdk/PKGBUILD
@@ -0,0 +1,243 @@
+# $Id: PKGBUILD 111783 2011-02-28 23:55:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdesdk
+pkgname=('kdesdk-cervisia'
+ 'kdesdk-dolphin-plugins'
+ 'kdesdk-kapptemplate'
+ 'kdesdk-kate'
+ '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.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdesdk')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'subversion'
+ 'docbook-xsl' 'antlr2' 'kdebase-konqueror')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'fix-python2-path.patch')
+sha1sums=('b46270c338ebee84ee2fd069d1551d19e1f37d30'
+ 'd05ca0231869c484fd3861955d960a60aff7dcfb')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ # Fix python2 path
+ patch -Np1 -i ${srcdir}/fix-python2-path.patch
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find . -name '*.py')
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdesdk-cervisia() {
+ pkgdesc='CVS Frontend'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/development/cervisia/"
+ install='kdesdk.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-kate() {
+ pkgdesc='Advanced Text Editor'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kate/"
+ install='kdesdk-kate.install'
+ cd $srcdir/build/kate
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kate
+ 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.install'
+ cd $srcdir/build/kcachegrind
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcachegrind
+ make DESTDIR=$pkgdir install
+}
+
+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'
+ depends=('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')
+ 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-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.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.install'
+ cd $srcdir/build/lokalize
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/lokalize
+ make DESTDIR=$pkgdir install
+}
+
+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-scripts() {
+ pkgdesc='KDE SDK scripts'
+ depends=('python2')
+ cd $srcdir/build/scripts
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/scripts
+ make DESTDIR=$pkgdir install
+}
+
+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.install'
+ cd $srcdir/build/umbrello
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/umbrello
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdesdk/fix-python2-path.patch b/extra/kdesdk/fix-python2-path.patch
new file mode 100644
index 000000000..c2c0745d1
--- /dev/null
+++ b/extra/kdesdk/fix-python2-path.patch
@@ -0,0 +1,64 @@
+--- kdesdk-4.5.80/kcachegrind/converters/hotshot2calltree~ 2010-11-24 11:53:38.586666671 +0100
++++ kdesdk-4.5.80/kcachegrind/converters/hotshot2calltree 2010-11-24 11:53:38.623333337 +0100
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ # _*_ coding: latin1 _*_
+
+ #
+--- 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/rename_source_files~ 2010-11-24 11:45:41.040000004 +0100
++++ kdesdk-4.5.80/scripts/rename_source_files 2010-11-24 11:45:41.093333336 +0100
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python2
+ #
+ # Copyright David Faure <faure@kde.org>, License LGPL v2
+ #
+--- 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
+--- kdesdk-4.5.80/scripts/kde_generate_export_header~ 2010-11-24 11:48:49.696666669 +0100
++++ kdesdk-4.5.80/scripts/kde_generate_export_header 2010-11-24 11:48:49.753333338 +0100
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python2
+
+ import os, sys, string
+
+--- kdesdk-4.5.80/scripts/reviewboarddiff~ 2010-11-24 11:49:37.686666670 +0100
++++ kdesdk-4.5.80/scripts/reviewboarddiff 2010-11-24 11:49:37.740000003 +0100
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python2
+ # encoding: utf-8
+ #
+ # Generates reviewboard compatible diffs from git-svn repositories.
diff --git a/extra/kdesdk/kdesdk-kate.install b/extra/kdesdk/kdesdk-kate.install
new file mode 100644
index 000000000..a60d358ce
--- /dev/null
+++ b/extra/kdesdk/kdesdk-kate.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/extra/kdesdk/kdesdk-okteta.install b/extra/kdesdk/kdesdk-okteta.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/extra/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/extra/kdesdk/kdesdk.install b/extra/kdesdk/kdesdk.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdetoys/PKGBUILD b/extra/kdetoys/PKGBUILD
new file mode 100644
index 000000000..dfb5cceb5
--- /dev/null
+++ b/extra/kdetoys/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 111784 2011-02-28 23:55:45Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdetoys
+pkgname=('kdetoys-amor'
+ 'kdetoys-kteatime'
+ 'kdetoys-ktux')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdetoys')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace' 'docbook-xsl')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('f4870f9f2c38d7a81b08790957a143b4a9e359b2')
+
+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/extra/kdetoys/kdetoys.install b/extra/kdetoys/kdetoys.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdeutils/PKGBUILD b/extra/kdeutils/PKGBUILD
new file mode 100644
index 000000000..af6e02417
--- /dev/null
+++ b/extra/kdeutils/PKGBUILD
@@ -0,0 +1,180 @@
+# $Id: PKGBUILD 111785 2011-02-28 23:55:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdeutils
+pkgname=('kdeutils-ark'
+ 'kdeutils-filelight'
+ 'kdeutils-kcalc'
+ 'kdeutils-kcharselect'
+ 'kdeutils-kdf'
+ 'kdeutils-kfloppy'
+ 'kdeutils-kgpg'
+ 'kdeutils-kremotecontrol'
+ 'kdeutils-ktimer'
+ 'kdeutils-kwallet'
+ 'kdeutils-printer-applet'
+ 'kdeutils-superkaramba'
+ 'kdeutils-sweeper')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeutils')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-lib' 'kdebase-workspace'
+ 'kdebindings-python' 'system-config-printer-common' 'libarchive' 'qimageblitz'
+ 'docbook-xsl' 'qjson')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('f3fa79f15bc23cd38c6d72170ce957ec3d96e0db')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package_kdeutils-ark() {
+ pkgdesc='Archiving Tool'
+ depends=('kdebase-runtime' 'kdebase-lib' 'libarchive')
+ optdepends=('p7zip' 'zip' 'unzip' 'unrar')
+ url="http://kde.org/applications/utilities/ark/"
+ cd $srcdir/build/ark
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ark
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-filelight() {
+ pkgdesc='View disk usage information'
+ depends=('kdebase-runtime' 'qimageblitz')
+ replaces=('filelight')
+ conflicts=('filelight')
+ install='kdeutils.install'
+ url="http://methylblue.com/filelight/"
+ cd $srcdir/build/filelight
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/filelight
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kcalc() {
+ pkgdesc='Scientific Calculator'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kcalc/"
+ cd $srcdir/build/kcalc
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcalc
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kcharselect() {
+ pkgdesc='Character Selector'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kcharselect/"
+ cd $srcdir/build/kcharselect
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcharselect
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kdf() {
+ pkgdesc='View Disk Usage'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/kdiskfree/"
+ install='kdeutils.install'
+ cd $srcdir/build/kdf
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kdf
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kfloppy() {
+ pkgdesc='Floppy Formatter'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/kfloppy/"
+ install='kdeutils.install'
+ cd $srcdir/build/kfloppy
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kfloppy
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kgpg() {
+ pkgdesc='A GnuPG frontend'
+ depends=('kdepim-runtime' 'kde-agent')
+ url="http://kde.org/applications/utilities/kgpg"
+ install='kdeutils.install'
+ cd $srcdir/build/kgpg
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kgpg
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kremotecontrol() {
+ pkgdesc='Configure your remote controls for use with applications'
+ replaces=('kdeutils-kdelirc')
+ conflicts=('kdeutils-kdelirc')
+ depends=('kdebase-workspace')
+ url="http://kde.org/applications/utilities/kremotecontrol"
+ install='kdeutils.install'
+ cd $srcdir/build/kremotecontrol
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kcontrol/kremotecontrol
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-ktimer() {
+ pkgdesc='Countdown Launcher'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/ktimer"
+ install='kdeutils.install'
+ cd $srcdir/build/ktimer
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/ktimer
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-kwallet() {
+ pkgdesc='Wallet Management Tool'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/system/kwalletmanager/"
+ install='kdeutils.install'
+ cd $srcdir/build/kwallet
+ make DESTDIR=$pkgdir install
+ cd $srcdir/build/doc/kwallet
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-printer-applet() {
+ pkgdesc='System tray icon for managing print jobs'
+ depends=('kdebase-runtime' 'kdebindings-python' 'system-config-printer-common')
+ url="http://kde.org/applications/system/printerapplet/"
+ cd $srcdir/build/printer-applet
+ 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_kdeutils-superkaramba() {
+ pkgdesc='An engine for cool desktop eyecandy'
+ depends=('kdebase-runtime' 'kdebindings-python' 'qimageblitz')
+ url="http://kde.org/applications/utilities/superkaramba"
+ install='kdeutils.install'
+ cd $srcdir/build/superkaramba
+ make DESTDIR=$pkgdir install
+}
+
+package_kdeutils-sweeper() {
+ pkgdesc='System Cleaner'
+ depends=('kdebase-runtime')
+ url="http://kde.org/applications/utilities/sweeper/"
+ cd $srcdir/build/sweeper
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/kdeutils/kdeutils.install b/extra/kdeutils/kdeutils.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdeutils/kdeutils.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/extra/kdevelop-pg-qt/PKGBUILD b/extra/kdevelop-pg-qt/PKGBUILD
new file mode 100644
index 000000000..ec6ba8753
--- /dev/null
+++ b/extra/kdevelop-pg-qt/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 112731 2011-03-06 12:25:05Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdevelop-pg-qt
+pkgver=0.9.0
+pkgrel=1
+pkgdesc="KDevelop Parser Generator, a LL(1) parser generator used by KDevelop language plugins"
+arch=('i686' 'x86_64')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('06e25c81cc34a5bddda3091ed3280e71')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/kdevelop-php/PKGBUILD b/extra/kdevelop-php/PKGBUILD
new file mode 100644
index 000000000..554d08c5e
--- /dev/null
+++ b/extra/kdevelop-php/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 112807 2011-03-06 23:51:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kdevelop-php
+pkgver=1.2.0
+_pkgver=4.2.0
+pkgrel=2
+pkgdesc="PHP language and documentation plugin for KDevelop/Quanta"
+arch=('i686' 'x86_64')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdevplatform' 'kdevelop-pg-qt')
+makedepends=('cmake' 'automoc4')
+replaces=('kdevelop-php-docs')
+conflicts=('kdevelop-php-docs')
+options=('!makeflags')
+source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ "http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-docs-${pkgver}.tar.bz2")
+md5sums=('fc48c194e7b87c9fd0850b2d7fc2a78b'
+ '5e7c3c33d9e0767bbf3b3df02147dfae')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+
+ cd ${srcdir}
+ mkdir build-docs
+ cd build-docs
+ # kdevelop-php-docs
+ cmake ../${pkgname}-docs-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+
+ cd ${srcdir}/build-docs
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/kdevelop/PKGBUILD b/extra/kdevelop/PKGBUILD
new file mode 100644
index 000000000..87611934d
--- /dev/null
+++ b/extra/kdevelop/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 107402 2011-01-24 17:29:50Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=kdevelop
+pkgver=4.2.0
+pkgrel=1
+pkgdesc="A C/C++ development environment for KDE"
+arch=('i686' 'x86_64')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdebase-workspace' 'kdevplatform' 'kdesdk-okteta')
+makedepends=('cmake' 'automoc4' 'perl')
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('cebd9c00e19a9c27ad65e89b4653ca0b31261275')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/kdevelop/kdevelop.install b/extra/kdevelop/kdevelop.install
new file mode 100644
index 000000000..951710b86
--- /dev/null
+++ b/extra/kdevelop/kdevelop.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/extra/kdevplatform/PKGBUILD b/extra/kdevplatform/PKGBUILD
new file mode 100644
index 000000000..0b3544576
--- /dev/null
+++ b/extra/kdevplatform/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 107401 2011-01-24 17:29:42Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=kdevplatform
+pkgver=1.2.0
+_pkgver=4.2.0
+pkgrel=1
+pkgdesc="A C/C++ development platform for KDE"
+arch=('i686' 'x86_64')
+url="http://www.kdevelop.org/"
+license=('GPL')
+depends=('kdelibs' 'boost-libs' 'subversion' 'qjson')
+optdepends=("kdesdk-kompare: difference checking")
+makedepends=('cmake' 'automoc4' 'boost')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('7f0f8c35435f55238483b74bea013a9454e3c7ae')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/kdevplatform/kdevplatform.install b/extra/kdevplatform/kdevplatform.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kdevplatform/kdevplatform.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/extra/kdewebdev/PKGBUILD b/extra/kdewebdev/PKGBUILD
new file mode 100644
index 000000000..ca35eb33a
--- /dev/null
+++ b/extra/kdewebdev/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 111786 2011-02-28 23:55:56Z andrea $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=kdewebdev
+pkgname=('kdewebdev-kfilereplace'
+ 'kdewebdev-kimagemapeditor'
+ 'kdewebdev-klinkstatus'
+ 'kdewebdev-kommander')
+pkgver=4.6.1
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdewebdev')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ruby' 'tidyhtml' 'kdepim-runtime'
+ 'docbook-xsl' 'boost')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('e915e8ea6d886f46ddc770f60362d3758b593713')
+
+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.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/extra/kdewebdev/kdewebdev.install b/extra/kdewebdev/kdewebdev.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/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/extra/kdiff3/PKGBUILD b/extra/kdiff3/PKGBUILD
new file mode 100644
index 000000000..0bf620978
--- /dev/null
+++ b/extra/kdiff3/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 100978 2010-11-27 05:30:04Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=kdiff3
+pkgver=0.9.95
+pkgrel=2
+pkgdesc="A KDE file comparator/merge tool"
+arch=('i686' 'x86_64')
+url="http://kdiff3.sourceforge.net/"
+license=('GPL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'kdebase-lib' 'docbook-xml')
+optdepends=('kdebase-lib: for the plugin')
+install=kdiff3.install
+source=(http://downloads.sourceforge.net/sourceforge/kdiff3/${pkgname}-${pkgver}.tar.gz docbook.patch)
+md5sums=('652a98bf79ba762a8a646d4a0fddb323' '7a91d1ab6f62c41dc65082ae99bdeff0')
+sha1sums=('1fb27e8b42463ea23ad0169e20819352c1c476b7' '96a856fc7d9829f64bb59853a6dffba8a70d794e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../docbook.patch
+ sed -i 's|kdiff3_part.rc DESTINATION ${DATA_INSTALL_DIR}/kdiff3|kdiff3_part.rc DESTINATION ${DATA_INSTALL_DIR}/kdiff3part|' src-QT4/CMakeLists.txt
+ mkdir release
+ cd release
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/release"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/kdiff3/docbook.patch b/extra/kdiff3/docbook.patch
new file mode 100644
index 000000000..b957e51fd
--- /dev/null
+++ b/extra/kdiff3/docbook.patch
@@ -0,0 +1,40 @@
+diff -r --unified kdiff3-0.9.95/doc/de/index.docbook kdiff3-0.9.95-neu/doc/de/index.docbook
+--- kdiff3-0.9.95/doc/de/index.docbook 2010-10-11 23:51:27.575286877 +0200
++++ kdiff3-0.9.95-neu/doc/de/index.docbook 2010-10-11 23:52:40.138829992 +0200
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
+diff -r --unified kdiff3-0.9.95/doc/fr/index.docbook kdiff3-0.9.95-neu/doc/fr/index.docbook
+--- kdiff3-0.9.95/doc/fr/index.docbook 2010-10-11 23:51:27.610931550 +0200
++++ kdiff3-0.9.95-neu/doc/fr/index.docbook 2010-10-11 23:52:23.739728901 +0200
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
+diff -r --unified kdiff3-0.9.95/doc/it/index.docbook kdiff3-0.9.95-neu/doc/it/index.docbook
+--- kdiff3-0.9.95/doc/it/index.docbook 2010-10-11 23:51:27.580378903 +0200
++++ kdiff3-0.9.95-neu/doc/it/index.docbook 2010-10-11 23:52:32.462829209 +0200
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
+diff -r --unified kdiff3-0.9.95/doc/nl/index.docbook kdiff3-0.9.95-neu/doc/nl/index.docbook
+--- kdiff3-0.9.95/doc/nl/index.docbook 2010-10-11 23:51:27.575286877 +0200
++++ kdiff3-0.9.95-neu/doc/nl/index.docbook 2010-10-11 23:52:45.371829602 +0200
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" ?>
+-<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
++<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
+ <!ENTITY kdiff3 "<application
+ >KDiff3</application
+ >">
diff --git a/extra/kdiff3/kdiff3.install b/extra/kdiff3/kdiff3.install
new file mode 100644
index 000000000..1c0de2e4f
--- /dev/null
+++ b/extra/kdiff3/kdiff3.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/extra/kexec-tools/PKGBUILD b/extra/kexec-tools/PKGBUILD
new file mode 100644
index 000000000..533c343aa
--- /dev/null
+++ b/extra/kexec-tools/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 110362 2011-02-19 03:39:03Z allan $
+# Contributor: Camille Moncelier <pix@devlife.org>, simo <simo@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kexec-tools
+pkgver=2.0.2
+pkgrel=3
+pkgdesc="Load another kernel from the currently executing Linux kernel"
+arch=('i686' 'x86_64')
+url="http://kernel.org/pub/linux/utils/kernel/kexec/"
+source=("http://kernel.org/pub/linux/utils/kernel/kexec/kexec-tools-${pkgver}.tar.bz2"
+ 'kexec' 'kexec.conf.d')
+depends=('gawk')
+makedepends=('zlib' 'xz')
+backup=('etc/conf.d/kexec')
+license=('GPL2')
+md5sums=('35d05fed1c97008ac34c5bfb929295eb'
+ '15599234f174ddc4d2611f32effec6ab'
+ 'b9ddfb9fbcc7e4e7e7294fe94fa60aeb')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ export LDFLAGS+=" -static"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ mv $pkgdir/usr/sbin $pkgdir/sbin
+
+ install -D -m644 kexec/kexec.8 $pkgdir/usr/share/man/man8/kexec.8
+ install -D -m644 $srcdir/kexec.conf.d $pkgdir/etc/conf.d/kexec
+ install -D -m755 $srcdir/kexec $pkgdir/etc/rc.d/kexec
+}
diff --git a/extra/kexec-tools/kexec b/extra/kexec-tools/kexec
new file mode 100755
index 000000000..bef5b5ef3
--- /dev/null
+++ b/extra/kexec-tools/kexec
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+[ -f /etc/conf.d/kexec ] && . /etc/conf.d/kexec
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Enabled loading kernel for Kexec into running kernel on reboot"
+ add_daemon kexec
+ stat_done
+ ;;
+
+ stop|load)
+ if [ "$RUNLEVEL" = "6" -o "$1" = "load" ]; then
+ stat_busy "Loading kernel for Kexec into running kernel"
+ [ -f "$KPATH" ] || stat_fail
+ [ -f "$INITRD" ] && _INITRD="--initrd=$INITRD"
+ /sbin/kexec -l $KPATH --append="root=$ROOTPART $KPARAM" $_INITRD > /dev/null 2>&1
+ else
+ stat_busy "Skipping loading kernel for Kexec into running kernel"
+ fi
+ if [ $? -eq 0 ] ; then
+ rm_daemon kexec
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ unload)
+ stat_busy "Unloading Kexec kernel from running kernel"
+ /sbin/kexec -u
+ if [ $? -eq 0 ] ; then
+ stat_done
+ else
+ stat_fail
+ fi
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|load|unload}"
+esac
+exit 0
diff --git a/extra/kexec-tools/kexec-vesafb.diff b/extra/kexec-tools/kexec-vesafb.diff
new file mode 100644
index 000000000..ec164226d
--- /dev/null
+++ b/extra/kexec-tools/kexec-vesafb.diff
@@ -0,0 +1,78 @@
+Index: kexec-tools-1.101/kexec/arch/i386/x86-linux-setup.c
+===================================================================
+--- kexec-tools-1.101.orig/kexec/arch/i386/x86-linux-setup.c 2006-03-03 10:51:31.000000000 +0100
++++ kexec-tools-1.101/kexec/arch/i386/x86-linux-setup.c 2006-03-10 14:02:20.000000000 +0100
+@@ -24,6 +24,8 @@
+ #include <sys/stat.h>
+ #include <sys/mman.h>
+ #include <fcntl.h>
++#include <sys/ioctl.h>
++#include <linux/fb.h>
+ #include <unistd.h>
+ #include <x86/x86-linux.h>
+ #include "../../kexec.h"
+@@ -94,6 +96,56 @@ void setup_linux_bootloader_parameters(
+ cmdline_ptr[cmdline_len - 1] = '\0';
+ }
+
++int setup_linux_vesafb(struct x86_linux_param_header *real_mode)
++{
++ struct fb_fix_screeninfo fix;
++ struct fb_var_screeninfo var;
++ int fd;
++
++ fd = open("/dev/fb0", O_RDONLY);
++ if (-1 == fd)
++ return -1;
++
++ if (-1 == ioctl(fd, FBIOGET_FSCREENINFO, &fix))
++ goto out;
++ if (-1 == ioctl(fd, FBIOGET_VSCREENINFO, &var))
++ goto out;
++ if (0 != strcmp(fix.id, "VESA VGA"))
++ goto out;
++ close(fd);
++
++ real_mode->orig_video_isVGA = 0x23 /* VIDEO_TYPE_VLFB */;
++ real_mode->lfb_width = var.xres;
++ real_mode->lfb_height = var.yres;
++ real_mode->lfb_depth = var.bits_per_pixel;
++ real_mode->lfb_base = fix.smem_start;
++ real_mode->lfb_linelength = fix.line_length;
++ real_mode->vesapm_seg = 0;
++
++ /* fixme: better get size from /proc/iomem */
++ real_mode->lfb_size = (fix.smem_len + 65535) / 65536;
++ real_mode->pages = (fix.smem_len + 4095) / 4096;
++
++ if (var.bits_per_pixel > 8) {
++ real_mode->red_pos = var.red.offset;
++ real_mode->red_size = var.red.length;
++ real_mode->green_pos = var.green.offset;
++ real_mode->green_size = var.green.length;
++ real_mode->blue_pos = var.blue.offset;
++ real_mode->blue_size = var.blue.length;
++ real_mode->rsvd_pos = var.transp.offset;
++ real_mode->rsvd_size = var.transp.length;
++ }
++ fprintf(stderr, "%s: %dx%dx%d @ %lx +%lx\n", __FUNCTION__,
++ var.xres, var.yres, var.bits_per_pixel,
++ fix.smem_start, fix.smem_len);
++ return 0;
++
++ out:
++ close(fd);
++ return -1;
++}
++
+ void setup_linux_system_parameters(struct x86_linux_param_header *real_mode)
+ {
+ /* Fill in information the BIOS would usually provide */
+@@ -111,6 +163,7 @@ void setup_linux_system_parameters(struc
+ real_mode->orig_video_ega_bx = 0;
+ real_mode->orig_video_isVGA = 1;
+ real_mode->orig_video_points = 16;
++ setup_linux_vesafb(real_mode);
+
+ /* Fill in the memsize later */
+ real_mode->ext_mem_k = 0;
diff --git a/extra/kexec-tools/kexec.conf.d b/extra/kexec-tools/kexec.conf.d
new file mode 100644
index 000000000..17b10d228
--- /dev/null
+++ b/extra/kexec-tools/kexec.conf.d
@@ -0,0 +1,16 @@
+#
+# Configuration for Kexec
+#
+
+# Path to kernel, default to stock arch kernel
+KPATH="/boot/vmlinuz26"
+
+# Root partition
+# The default attempts to autodetect
+ROOTPART="$(awk '/^[ \t]*[^#]/ { if ($2 == "/") { print $1; }}' /etc/fstab)"
+
+# Additional kernel parameters
+KPARAM="ro"
+
+# Path to initrd image, default to stock arch kernel
+INITRD="/boot/kernel26.img"
diff --git a/extra/keytouch-editor/ChangeLog b/extra/keytouch-editor/ChangeLog
new file mode 100644
index 000000000..0503eb1f7
--- /dev/null
+++ b/extra/keytouch-editor/ChangeLog
@@ -0,0 +1,8 @@
+2008-06-22 Eric Belanger <eric@archlinux.org>
+
+ * keytouch-editor 3.1.3-1
+ * Patched for glibc 2.8
+ * Added to [extra] repo
+ * Added ChangeLog
+
+
diff --git a/extra/keytouch-editor/PKGBUILD b/extra/keytouch-editor/PKGBUILD
new file mode 100644
index 000000000..19addfe4e
--- /dev/null
+++ b/extra/keytouch-editor/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 3507 2008-06-23 04:35:20Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: mouse256 & AndyRTR
+
+pkgname=keytouch-editor
+pkgver=3.1.3
+pkgrel=1
+pkgdesc="An utility to create keyboard files for keytouch"
+arch=('i686' 'x86_64')
+url="http://keytouch.sourceforge.net/"
+license=('GPL')
+depends=('gtk2')
+install=keytouch-editor.install
+source=(http://downloads.sourceforge.net/keytouch/${pkgname}-${pkgver}.tar.gz keytouch-editor-3.1.3-glibc28.patch)
+md5sums=('046e0525d2b1275f1ec1b5140bd93565' 'def8cf803d7f25dd919b8ad090083bf1')
+sha1sums=('a8c0b28bac4b1f9de3897e1a78dc14b4d994334e' 'c6b725267a628cfc93388044cfd72974f53debaf')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p1 < ../keytouch-editor-3.1.3-glibc28.patch || return 1
+ autoreconf || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/keytouch-editor/keytouch-editor-3.1.3-glibc28.patch b/extra/keytouch-editor/keytouch-editor-3.1.3-glibc28.patch
new file mode 100644
index 000000000..885813feb
--- /dev/null
+++ b/extra/keytouch-editor/keytouch-editor-3.1.3-glibc28.patch
@@ -0,0 +1,12 @@
+diff -Naur keytouch-editor-3.1.3-orig/src/Makefile.am keytouch-editor-3.1.3/src/Makefile.am
+--- keytouch-editor-3.1.3-orig/src/Makefile.am 2008-06-22 22:47:34.000000000 -0400
++++ keytouch-editor-3.1.3/src/Makefile.am 2008-06-22 22:49:52.000000000 -0400
+@@ -9,7 +9,7 @@
+
+ bin_PROGRAMS = keytouch-editor-bin
+
+-AM_CFLAGS=@CFLAGS@ -Wall
++AM_CFLAGS=@CFLAGS@ -Wall -D_GNU_SOURCE
+
+ keytouch_editor_bin_SOURCES = \
+ main.c keytouch-editor.h \
diff --git a/extra/keytouch-editor/keytouch-editor.install b/extra/keytouch-editor/keytouch-editor.install
new file mode 100644
index 000000000..8a684997a
--- /dev/null
+++ b/extra/keytouch-editor/keytouch-editor.install
@@ -0,0 +1,10 @@
+post_install() {
+ cat << EOF
+==> To use keytouch-editor:
+You'll need to have either gksu (pacman -S gksu) or kdesu (pacman -S kdebase) installed.
+EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/keytouch/ChangeLog b/extra/keytouch/ChangeLog
new file mode 100644
index 000000000..24105e0d2
--- /dev/null
+++ b/extra/keytouch/ChangeLog
@@ -0,0 +1,18 @@
+2009-10-17 Eric Belanger <eric@archlinux.org>
+
+ * keytouch 2.4.1-2
+ * Fixed daemon script (close FS#15693)
+
+2008-07-20 Eric Belanger <eric@archlinux.org>
+
+ * keytouch 2.4.1-1
+ * Upstream update
+ * Removed unnecessary post-upgrade message
+
+2008-06-16 Eric Belanger <eric@archlinux.org>
+
+ * keytouch 2.4.0-1
+ * Upstream update
+ * Patched for glibc 2.8
+ * Added to [extra] repo
+ * Added ChangeLog
diff --git a/extra/keytouch/PKGBUILD b/extra/keytouch/PKGBUILD
new file mode 100644
index 000000000..34a5c53a6
--- /dev/null
+++ b/extra/keytouch/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 56013 2009-10-17 20:37:01Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: mouse256 & AndyRTR
+
+pkgname=keytouch
+pkgver=2.4.1
+pkgrel=2
+pkgdesc="A program which allows you to easily configure the extra function keys of your keyboard"
+arch=('i686' 'x86_64')
+url="http://keytouch.sourceforge.net/"
+license=('GPL')
+depends=('libxtst' 'gnome-menus' 'alsa-lib')
+makedepends=('pkgconfig')
+options=('!makeflags')
+install=keytouch.install
+source=(http://downloads.sourceforge.net/sourceforge/keytouch/${pkgname}-${pkgver}.tar.gz \
+ keytouch.daemon keytouch.desktop Xsession)
+md5sums=('c3a917ae9666c9649d43d9aa09ecc96a' 'a35776aee9361577220f718be81c2b4d'\
+ 'c5ffe28988dc74fae812ffe204f8883b' '795430001f4fdb6691d0e93b09a241a9')
+sha1sums=('f1f26dc95c21afd404aebe2b1066e75c8313ca80' 'af23f4526cb1f3e5b9a3680af6a24d1566dabb7d'\
+ '5bac2f62f1ac26caa32da02a8075dc090d981cfb' '960b2fa51cfdeb2bc3fa7e086dc9f3a3be483dff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ install -d "${pkgdir}"/etc/{rc.d,X11/Xsession.d} || return 1
+ install -d "${pkgdir}/usr/share/keytouch" || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ cd "${srcdir}/${pkgname}-${pkgver}/keytouch-config"
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ cd "${srcdir}/${pkgname}-${pkgver}/keytouch-keyboard"
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -D -m755 "${srcdir}/keytouch.daemon" "${pkgdir}/etc/rc.d/keytouch" || return 1
+ install -D -m644 "${srcdir}/keytouch.desktop" "${pkgdir}/usr/share/applications/keytouch.desktop" || return 1
+ install -D -m755 "${srcdir}/Xsession" "${pkgdir}/etc/X11/Xsession" || return 1
+ chmod 755 "${pkgdir}"/etc/X11/Xsession.d/* || return 1
+ rm "${pkgdir}"/etc/rc.d/*.sh
+}
diff --git a/extra/keytouch/Xsession b/extra/keytouch/Xsession
new file mode 100755
index 000000000..0da89f9aa
--- /dev/null
+++ b/extra/keytouch/Xsession
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+for script in /etc/X11/Xsession.d/*; do
+ if [ -x $script ]; then
+ . $script
+ fi
+done
+unset script
diff --git a/extra/keytouch/keytouch.daemon b/extra/keytouch/keytouch.daemon
new file mode 100755
index 000000000..e43bea979
--- /dev/null
+++ b/extra/keytouch/keytouch.daemon
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/bin/keytouch-acpid)
+case "$1" in
+ start)
+ stat_busy "Starting keyTouch Daemon"
+ if [ -x /etc/rc.d/acpid ]; then
+ ck_daemon acpid && /etc/rc.d/acpid start
+ fi
+ /usr/bin/keytouch-init
+ if [ -z "$PID" ]; then
+ /usr/bin/keytouch-acpid &> /dev/null &
+ fi
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon keytouch
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping keyTouch Daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon keytouch
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/keytouch/keytouch.desktop b/extra/keytouch/keytouch.desktop
new file mode 100644
index 000000000..f127b1041
--- /dev/null
+++ b/extra/keytouch/keytouch.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=keyTouch
+Comment=Keyboard configuration tool
+Icon=/usr/share/keytouch/pixmaps/icon.png
+Exec=/usr/bin/keytouch
+Terminal=false
+Type=Application
+Categories=Application;Utility
+StartupNotify=false
diff --git a/extra/keytouch/keytouch.install b/extra/keytouch/keytouch.install
new file mode 100644
index 000000000..c3b9c9cec
--- /dev/null
+++ b/extra/keytouch/keytouch.install
@@ -0,0 +1,14 @@
+post_install() {
+ cat << EOF
+==> To use keytouch:
+o Add keytouch to your DAEMONS line in /etc/rc.conf
+o Add:
+ /etc/X11/Xsession
+to your ~/.xinitrc
+o You'll need to have either gksu (pacman -S gksu) or kdesu (pacman -S kdebase) installed.
+
+==> If your keyboard is not supported "out of the box":
+o Go to http://keytouch.sourceforge.net/dl-keyboards.html to see if your keyboard has been added
+ or install keytouch-editor to make your custom keyboard file.
+EOF
+}
diff --git a/extra/keyutils/PKGBUILD b/extra/keyutils/PKGBUILD
new file mode 100644
index 000000000..8e1810f9f
--- /dev/null
+++ b/extra/keyutils/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 116950 2011-03-26 15:07:29Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=keyutils
+pkgver=1.4
+pkgrel=1
+pkgdesc="Linux Key Management Utilities"
+arch=(i686 x86_64)
+url="http://www.kernel.org"
+license=('GPL2' 'LGPL2.1')
+depends=('glibc' 'sh')
+backup=(etc/request-key.conf)
+source=(http://people.redhat.com/~dhowells/$pkgname/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i -e '/CFLAGS/s|:= -g -O2|+=|' Makefile
+ make CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+md5sums=('e168c1bdaf5aa93c2cbf8a5e7f8ef27b')
diff --git a/extra/kile/PKGBUILD b/extra/kile/PKGBUILD
new file mode 100644
index 000000000..5e2987a07
--- /dev/null
+++ b/extra/kile/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 108891 2011-02-04 17:44:40Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=kile
+pkgver=2.1b5
+pkgrel=1
+pkgdesc="A user friendly TeX/LaTeX frontend for KDE."
+arch=("i686" "x86_64")
+license=('GPL2')
+url="http://kile.sourceforge.net/"
+depends=('kdelibs' 'texlive-core')
+makedepends=('cmake' 'automoc4' 'docbook-xml' 'docbook-xsl')
+install=kile.install
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2")
+sha1sums=('ee805e5210474d42344d690d24383adaad1d8842')
+
+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/extra/kile/kile.install b/extra/kile/kile.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kile/kile.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/extra/kino/PKGBUILD b/extra/kino/PKGBUILD
new file mode 100644
index 000000000..eedf2910f
--- /dev/null
+++ b/extra/kino/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 56265 2009-10-20 20:59:02Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=kino
+pkgver=1.3.4
+pkgrel=2
+pkgdesc="A non-linear DV editor."
+arch=('i686' 'x86_64')
+url="http://www.kinodv.org/"
+license=('GPL')
+depends=('libavc1394' 'libiec61883' 'libdv' 'libglade' 'libxv' 'libsamplerate' 'libsm')
+makedepends=('intltool')
+options=('!libtool')
+install=kino.install
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('52f8ce690e45a089e3edc6c7af61a05c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-udev-rules-dir=/lib/udev/rules.d
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+ chown root:root -R $pkgdir/usr/share/kino/help
+}
diff --git a/extra/kino/kino.install b/extra/kino/kino.install
new file mode 100644
index 000000000..7dc309965
--- /dev/null
+++ b/extra/kino/kino.install
@@ -0,0 +1,14 @@
+post_install() {
+ echo "update desktop mime database..."
+ update-mime-database usr/share/mime 1> /dev/null
+ update-desktop-database -q
+}
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ echo "update desktop mime database..."
+ update-mime-database usr/share/mime 1> /dev/null
+ update-desktop-database -q
+}
diff --git a/extra/kipi-plugins/PKGBUILD b/extra/kipi-plugins/PKGBUILD
new file mode 100644
index 000000000..1a707bb6a
--- /dev/null
+++ b/extra/kipi-plugins/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 112839 2011-03-07 07:34:56Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kipi-plugins
+pkgver=1.9.0
+pkgrel=1
+pkgdesc="libkipi plugins for digikam and kde apps"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.kipi-plugins.org"
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'libgpod' 'opencv' 'qjson')
+depends=('kdegraphics-libs' 'kdepimlibs')
+source=("http://downloads.sourceforge.net/kipi/$pkgname-$pkgver.tar.bz2")
+optdepends=('imagemagick: for picture manipulation'
+ 'qca: for shwup webservice support'
+ 'libgpod: send images to ipod'
+ 'opencv: red eye removal plugin'
+ 'hugin: for expoblending plugin'
+ 'qjson: for debianscreenshots plugin')
+install=${pkgname}.install
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=$pkgdir install
+}
+md5sums=('a3200b0ce90251bc631fa90ff0818dc0')
diff --git a/extra/kipi-plugins/kipi-plugins.install b/extra/kipi-plugins/kipi-plugins.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kipi-plugins/kipi-plugins.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/extra/kismet/PKGBUILD b/extra/kismet/PKGBUILD
new file mode 100644
index 000000000..b381469ad
--- /dev/null
+++ b/extra/kismet/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 94735 2010-10-10 15:05:47Z guillaume $
+# Contributer: Jason Chu <jason@archlinux.org>
+# Maintainer: Juergen Hoetzel <jason@archlinux.org>
+
+pkgname=kismet
+pkgver=2010_07_R1
+_realver="${pkgver//_/-}"
+pkgrel=1
+pkgdesc="802.11b sniffing software"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gmp' 'imagemagick' 'libpcap>=1.0.0' 'ncurses' 'dbus' 'libjpeg>=7')
+optdepends=(perl-libwww)
+url="http://www.kismetwireless.net/"
+backup=('etc/kismet.conf' 'etc/kismet_drone.conf')
+options=('!makeflags')
+source=(http://www.kismetwireless.net/code/kismet-${pkgver//_/-}.tar.gz)
+md5sums=('85e59186eb529889118b5635f35cf57d')
+
+build() {
+ cd "$srcdir/kismet-$_realver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var || return 1
+
+ make dep || return 1
+ make || return 1
+ sed -i 's/prism2/wlanng/g' conf/kismet.conf || return 1
+ make DESTDIR="$pkgdir" install || return 1
+
+ chown root:root "$pkgdir"/usr/share/man/man{1,5}/*
+
+ install -D -m 644 "$srcdir/kismet-$_realver/README" "$pkgdir/usr/share/kismet/README"
+
+ # Fix the *.conf unexpanded ${prefix} problems
+ sed -i 's%\${prefix}%/usr%' "$pkgdir"/etc/*.conf || return 1
+}
diff --git a/extra/kismet/kismet-2008-05-R1-infinite-loop.diff b/extra/kismet/kismet-2008-05-R1-infinite-loop.diff
new file mode 100644
index 000000000..f8417943e
--- /dev/null
+++ b/extra/kismet/kismet-2008-05-R1-infinite-loop.diff
@@ -0,0 +1,20 @@
+--- gpsmap.cc
++++ gpsmap.cc
+@@ -874,7 +874,7 @@
+
+ // Break up the path to the gpsxml file and form a path based on that
+ unsigned int lastslash = 0;
+- for (unsigned int x = origxmlfile.find('/'); x != string::npos;
++ for (string::size_type x = origxmlfile.find('/'); x != string::npos;
+ lastslash = x, x = origxmlfile.find('/', lastslash+1)) {
+ // We don't actually need to do anything...
+ }
+@@ -882,7 +882,7 @@
+ comp = origxmlfile.substr(0, lastslash);
+
+ lastslash = 0;
+- for (unsigned int x = orignetfile.find('/'); x != string::npos;
++ for (string::size_type x = orignetfile.find('/'); x != string::npos;
+ lastslash = x, x = orignetfile.find('/', lastslash+1)) {
+ // We don't actually need to do anything...
+ }
diff --git a/extra/kismet/kismet-build.patch b/extra/kismet/kismet-build.patch
new file mode 100644
index 000000000..9935ca4fa
--- /dev/null
+++ b/extra/kismet/kismet-build.patch
@@ -0,0 +1,11 @@
+--- macaddr.h.orig 2009-07-08 02:29:38.000000000 -0400
++++ macaddr.h 2009-07-08 02:37:54.000000000 -0400
+@@ -73,7 +73,7 @@
+ longmac |= (uint64_t) bs_in[5] << ((MAC_LEN - 5 - 1) * 8);
+
+ // If it has a mask component, get that
+- char *in_mask = strchr(in, '/');
++ const char *in_mask = strchr(in, '/');
+ if (in_mask != NULL) {
+ longmask = 0;
+
diff --git a/extra/kmldonkey/PKGBUILD b/extra/kmldonkey/PKGBUILD
new file mode 100644
index 000000000..234be2119
--- /dev/null
+++ b/extra/kmldonkey/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 104423 2011-01-02 13:07:17Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kmldonkey
+pkgver=2.0.2
+_kdever=4.4.0
+pkgrel=5
+pkgdesc="An MLDonkey frontend for KDE"
+arch=('i686' 'x86_64')
+url='http://userbase.kde.org/KMLDonkey'
+license=('GPL')
+depends=('kdebase-workspace')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'docbook-xsl')
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/extragear/${pkgname}-${pkgver}-kde${_kdever}.tar.bz2")
+md5sums=('40ae039dc01a45807111c2d0023eeaa6')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver}-kde${_kdever} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/kmldonkey/kmldonkey.install b/extra/kmldonkey/kmldonkey.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kmldonkey/kmldonkey.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/extra/kmplayer/PKGBUILD b/extra/kmplayer/PKGBUILD
new file mode 100644
index 000000000..b288fed3a
--- /dev/null
+++ b/extra/kmplayer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 94084 2010-10-04 12:47:37Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=kmplayer
+pkgver=0.11.2c
+pkgrel=1
+pkgdesc="Video player plugin for Konqueror and basic MPlayer/Xine/ffmpeg/ffserver/VDR frontend for KDE"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+url="http://kmplayer.kde.org"
+depends=('kdebase-runtime' 'pango')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'docbook-xsl')
+install=${pkgname}.install
+source=("http://kmplayer.kde.org/pkgs/$pkgname-$pkgver.tar.bz2")
+md5sums=('7a1363dfaad0c7b563ecbd58f301e704')
+
+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/extra/kmplayer/kmplayer.install b/extra/kmplayer/kmplayer.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kmplayer/kmplayer.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/extra/kobodeluxe/ChangeLog b/extra/kobodeluxe/ChangeLog
new file mode 100644
index 000000000..08b4c2dec
--- /dev/null
+++ b/extra/kobodeluxe/ChangeLog
@@ -0,0 +1,8 @@
+2009-01-06 Eric Belanger <eric@archlinux.org>
+
+ * kobodeluxe 0.5.1-2
+ * Fixed build issue
+ * Added game group support
+ * Added .desktop file and icons
+ * Improved package description
+ * Added ChangeLog
diff --git a/extra/kobodeluxe/PKGBUILD b/extra/kobodeluxe/PKGBUILD
new file mode 100644
index 000000000..defcb760c
--- /dev/null
+++ b/extra/kobodeluxe/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 23389 2009-01-09 00:47:54Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=kobodeluxe
+pkgver=0.5.1
+pkgrel=2
+pkgdesc="An enhanced version of Akira Higuchi's game XKobo, an addictive space shoot'em up"
+arch=('i686' 'x86_64')
+url="http://www.olofson.net/kobodl/"
+license=('GPL' 'LGPL')
+depends=('gcc-libs' 'libjpeg' 'libpng' 'sdl' 'sdl_image' 'sdl_mixer')
+install=kobodeluxe.install
+source=(http://www.olofson.net/kobodl/download/KoboDeluxe-${pkgver}.tar.gz kobodeluxe-gcc-4.3.patch)
+md5sums=('cf765559461213d651c7be042507b767' '2b76306ec997fdc64986b4425e5b7814')
+sha1sums=('12abe182ccde52050cd23077092d0424d25c3e75' '274dc8e7909bc6f9fab31306c85d992af8b62674')
+
+build() {
+ cd ${srcdir}/KoboDeluxe-${pkgver}
+ patch -p0 < ../kobodeluxe-gcc-4.3.patch
+ ./configure --prefix=/usr --localstatedir=/var --sharedstatedir=/var/games || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+ tar -xzf icons.tar.gz
+ install -D -m644 icons/KDE/kobo-deluxe.desktop ${pkgdir}/usr/share/applications/kobo-deluxe.desktop
+ install -D -m644 icons/KDE/icons/128x128/kobodl.png ${pkgdir}/usr/share/icons/hicolor/128x128/kobodl.png
+ install -D -m644 icons/KDE/icons/16x16/kobodl.png ${pkgdir}/usr/share/icons/hicolor/16x16/kobodl.png
+ install -D -m644 icons/KDE/icons/22x22/kobodl.png ${pkgdir}/usr/share/icons/hicolor/22x22/kobodl.png
+ install -D -m644 icons/KDE/icons/32x32/kobodl.png ${pkgdir}/usr/share/icons/hicolor/32x32/kobodl.png
+ install -D -m644 icons/KDE/icons/48x48/kobodl.png ${pkgdir}/usr/share/icons/hicolor/48x48/kobodl.png
+ install -D -m644 icons/KDE/icons/64x64/kobodl.png ${pkgdir}/usr/share/icons/hicolor/64x64/kobodl.png
+ install -D -m644 icons/Ubuntu/kobo-icon.xpm ${pkgdir}/usr/share/pixmaps/kobo-icon.xpm
+ ln -s /usr/share/icons/hicolor/48x48/kobodl.png ${pkgdir}/usr/share/icons/kobodl.png
+
+ chown root:games ${pkgdir}/usr/bin/kobodl
+ chmod 2755 ${pkgdir}/usr/bin/kobodl
+ chown root:games ${pkgdir}/var/games
+ chmod 775 ${pkgdir}/var/games
+ chown root:games ${pkgdir}/var/games/kobo-deluxe
+ chmod 775 ${pkgdir}/var/games/kobo-deluxe
+ chown root:games ${pkgdir}/var/games/kobo-deluxe/scores
+ chmod 775 ${pkgdir}/var/games/kobo-deluxe/scores
+}
diff --git a/extra/kobodeluxe/kobodeluxe-gcc-4.3.patch b/extra/kobodeluxe/kobodeluxe-gcc-4.3.patch
new file mode 100644
index 000000000..98451bb29
--- /dev/null
+++ b/extra/kobodeluxe/kobodeluxe-gcc-4.3.patch
@@ -0,0 +1,83 @@
+--- enemies.h
++++ enemies.h
+@@ -70,9 +70,9 @@
+ extern const enemy_kind bomb2;
+ extern const enemy_kind bombdeto;
+ extern const enemy_kind cannon;
+-extern const enemy_kind pipe1;
++extern const enemy_kind pipeone;
+ extern const enemy_kind core;
+-extern const enemy_kind pipe2;
++extern const enemy_kind pipetwo;
+ extern const enemy_kind rock;
+ extern const enemy_kind ring;
+ extern const enemy_kind enemy_m1;
+@@ -430,7 +430,7 @@
+
+ inline int _enemy::is_pipe()
+ {
+- return ((_state != notuse) && ((ek == &pipe1) || (ek == &pipe2)));
++ return ((_state != notuse) && ((ek == &pipeone) || (ek == &pipetwo)));
+ }
+
+
+--- enemy.cpp
++++ enemy.cpp
+@@ -713,7 +713,7 @@
+
+ void _enemy::kill_cannon()
+ {
+- enemies.make(&pipe1, CS2PIXEL(x), CS2PIXEL(y));
++ enemies.make(&pipeone, CS2PIXEL(x), CS2PIXEL(y));
+ sound.g_base_node_explo(x, y);
+ release();
+ }
+@@ -755,10 +755,10 @@
+
+ void _enemy::kill_core()
+ {
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
+ enemies.make(&explosion4, CS2PIXEL(x), CS2PIXEL(y));
+ sound.g_base_core_explo(x, y);
+ release();
+@@ -851,7 +851,7 @@
+ screen.set_map(x1, y1, m ^ a);
+ release();
+ }
+-const enemy_kind pipe1 = {
++const enemy_kind pipeone = {
+ 0,
+ &_enemy::make_pipe1,
+ &_enemy::move_pipe1,
+@@ -978,19 +978,19 @@
+ }
+ p ^= a;
+ if(p & U_MASK)
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 1);
+ if(p & R_MASK)
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 3);
+ if(p & D_MASK)
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 5);
+ if(p & L_MASK)
+- enemies.make(&pipe2, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
++ enemies.make(&pipetwo, CS2PIXEL(x), CS2PIXEL(y), 0, 0, 7);
+ manage.add_score(10);
+ release();
+ }
+
+
+-const enemy_kind pipe2 = {
++const enemy_kind pipetwo = {
+ 0,
+ &_enemy::make_pipe2,
+ &_enemy::move_pipe2,
diff --git a/extra/kobodeluxe/kobodeluxe.install b/extra/kobodeluxe/kobodeluxe.install
new file mode 100644
index 000000000..7136b4880
--- /dev/null
+++ b/extra/kobodeluxe/kobodeluxe.install
@@ -0,0 +1,21 @@
+post_install() {
+ post_upgrade
+}
+
+post_upgrade() {
+ if [ -d usr/share/kobo-deluxe/kobo-deluxe/scores ] ; then
+ for i in usr/share/kobo-deluxe/kobo-deluxe/scores/* ; do
+ mv $i var/games/kobo-deluxe/scores/
+ done
+ rmdir usr/share/kobo-deluxe/kobo-deluxe/scores
+ rmdir usr/share/kobo-deluxe/kobo-deluxe
+ chgrp -R games /var/games/kobo-deluxe/scores/
+ fi
+ # update icon cache if gtk2 is installed. I don't want to add a gtk2 depends just for that.
+ [ -x usr/bin/gtk-update-icon-cache ] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ # update icon cache if gtk2 is installed. I don't want to add a gtk2 depends just for that.
+ [ -x usr/bin/gtk-update-icon-cache ] && gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/koffice/PKGBUILD b/extra/koffice/PKGBUILD
new file mode 100644
index 000000000..66e08bc5c
--- /dev/null
+++ b/extra/koffice/PKGBUILD
@@ -0,0 +1,298 @@
+# $Id: PKGBUILD 115172 2011-03-17 10:46:47Z andrea $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
+
+pkgbase=koffice
+pkgname=(
+ 'koffice-filters'
+ 'koffice-interfaces'
+ 'koffice-libs'
+ 'koffice-plugins'
+ 'koffice-pics'
+ 'koffice-servicetypes'
+ 'koffice-templates'
+ 'koffice-tools'
+ 'koffice-karbon'
+ 'koffice-karbon-doc'
+# 'koffice-kchart'
+# 'koffice-kchart-doc'
+ 'koffice-kexi'
+ 'koffice-kexi-doc'
+ 'koffice-kformula'
+ 'koffice-kformula-doc'
+ 'koffice-kounavail'
+ 'koffice-kplato'
+# 'koffice-kplato-doc'
+ 'koffice-kpresenter'
+ 'koffice-kpresenter-doc'
+ 'koffice-krita'
+# 'koffice-krita-doc' # no krita-doc anymore upstream
+ 'koffice-kspread'
+ 'koffice-kspread-doc'
+ 'koffice-kword'
+# 'koffice-kword-doc' # see http://userbase.kde.org/KWord/Manual for documentation (not supplied by upstream anymore in the sources)
+ 'koffice-handbook'
+ 'koffice-thesaurus-doc'
+# 'koffice-kdgantt' # still an empty package
+)
+pkgver=2.3.3
+pkgrel=3
+arch=('i686' 'x86_64')
+url='http://koffice.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'boost' 'eigen' \
+ 'kdelibs' 'gsl' 'qca' 'lcms' 'glew' 'qimageblitz' \
+ 'kdepimlibs' 'pstoedit' 'poppler-qt' 'libwpd' 'libwpg' 'openexr' 'opengtl' 'kdegraphics-libs' 'sqlite3' 'docbook-xml' 'docbook-xsl')
+groups=('koffice')
+source=("ftp://ftp.kde.org/pub/kde/stable/${pkgbase}-${pkgver}/${pkgbase}-${pkgver}.tar.bz2"
+ "kde4-koffice-libwpg02.patch")
+sha256sums=('31ba0d98c0d29c7b8ab97efdeb6c618b82177b2b0ec85da088178254da43c099'
+ '69106deb4081d71b5bd8f2e4f5af67ca689e4ce9f2bb49c11dbce5fb3409d612')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/kde4-koffice-libwpg02.patch"
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+##### 1st package common files, depends, optdepends of the koffice applications #####
+
+package_koffice-filters(){
+ pkgdesc="Filters for the KDE office suite"
+ optdepends=('libgsf: Microsoft Word document importer' 'libwpd: WordPerfect document importer'
+ 'libwpg: Corel WordPerfect Graphics image importer' 'pstoedit: Karbon EPS import filter'
+ 'kdegraphics-libs: support for raw images')
+ install=filters.install
+ cd "${srcdir}/build/filters"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-interfaces(){
+ pkgdesc="Interfaces for the KDE office suite"
+ depends=('kdelibs' 'koffice-libs')
+ cd "${srcdir}/build/interfaces"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-libs(){
+ pkgdesc="Libs for the KDE office suite"
+ depends=('kdepimlibs' 'qca' 'lcms' 'koffice-servicetypes')
+ cd "${srcdir}/build/libs"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-plugins(){
+ pkgdesc="Plugins for the KDE office suite"
+ depends=('koffice-libs')
+ replaces=('koffice-kchart')
+ conflicts=('koffice-kchart')
+ cd "${srcdir}/build/plugins"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-pics(){
+ pkgdesc="Icons for the KDE office suite"
+ install=koffice.install
+ cd "${srcdir}/build/pics"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-servicetypes(){
+ pkgdesc="Servicetypes for the KDE office suite"
+ cd "${srcdir}/build/servicetypes"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-templates(){
+ pkgdesc="Templates for the KDE office suite"
+ cd "${srcdir}/build/templates"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-tools(){
+ pkgdesc="Tools for the KDE office suite"
+ depends=('koffice-libs')
+ cd "${srcdir}/build/tools"
+ make DESTDIR="${pkgdir}" install
+}
+
+#### package common files done #####
+
+#### package apps and their docs #####
+
+package_koffice-karbon(){
+ pkgdesc="Vector drawing application for KDE"
+ depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates')
+ optdepends=('koffice-filters: import/export filters')
+ install=koffice.install
+ cd "${srcdir}/build/karbon"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-karbon-doc(){
+ pkgdesc="Documentation for karbon"
+ cd "${srcdir}/build/doc/karbon"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kexi(){
+ pkgdesc="Integrated data management application for the KDE office suite"
+ depends=('kdelibs' 'koffice-libs' 'koffice-kspread' 'sqlite3')
+ cd "${srcdir}/build/kexi"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kexi-doc(){
+ pkgdesc="Documentation for kexi"
+ cd "${srcdir}/build/doc/kexi"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kformula(){
+ pkgdesc="Formula editor for the KDE office suite"
+ depends=('kdelibs' 'koffice-libs')
+ cd "${srcdir}/build/kformula"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kformula-doc() {
+ pkgdesc="Documentation for koffice-kformula"
+ cd "${srcdir}/build/doc/kformula"
+ make DESTDIR="${pkgdir}" install
+}
+
+
+package_koffice-kounavail(){
+ pkgdesc="Kounavail for the KDE office suite"
+ depends=('kdelibs' 'koffice-libs')
+ cd "${srcdir}/build/kounavail"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kplato(){
+ pkgdesc="Project management application for KDE"
+ depends=('hicolor-icon-theme' 'koffice-libs' 'kdepimlibs' 'koffice-templates' \
+ 'koffice-plugins' 'koffice-kword')
+ install=koffice.install
+ cd "${srcdir}/build/kplato"
+ make DESTDIR="${pkgdir}" install
+}
+
+#package_koffice-kplato-doc(){
+# pkgdesc="Documentation for kplato"
+# cd ${srcdir}/build/doc/kplato
+# make DESTDIR="${pkgdir}" install
+#}
+
+package_koffice-kpresenter(){
+ pkgdesc="Presentation tool for KDE"
+ depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates')
+ optdepends=('koffice-filters: import/export filters')
+ install=koffice.install
+ cd "${srcdir}/build/kpresenter"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kpresenter-doc(){
+ pkgdesc="Documentation for kpresenter"
+ cd "${srcdir}/build/doc/kpresenter"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-krita(){
+ pkgdesc="Graphics editor for KDE"
+ depends=('hicolor-icon-theme' 'glew' 'qimageblitz' 'koffice-libs' \
+ 'koffice-templates' 'koffice-plugins' 'poppler-qt' 'shared-mime-info' \
+ 'openexr' 'opengtl')
+ optdepends=('koffice-filters: import/export filters')
+ install=krita.install
+ cd "${srcdir}/build/krita"
+ make DESTDIR="${pkgdir}" install
+}
+
+#package_koffice-krita-doc(){
+# pkgdesc="Documentation for krita"
+# cd ${srcdir}/build/doc/krita
+# make DESTDIR="${pkgdir}" install
+#}
+
+
+package_koffice-kspread(){
+ pkgdesc="Spreadsheet application for KDE"
+ depends=('hicolor-icon-theme' 'gsl' 'koffice-libs' 'koffice-templates' 'koffice-plugins')
+ optdepends=('koffice-filters: import/export filters')
+ install=koffice.install
+ cd "${srcdir}/build/kspread"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kspread-doc(){
+ pkgdesc="Documentation for kspread"
+ cd "${srcdir}/build/doc/kspread"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-kword(){
+ pkgdesc="Wordprocessor for KDE"
+ depends=('hicolor-icon-theme' 'koffice-libs' 'koffice-templates' 'koffice-pics' \
+ 'koffice-kounavail' 'koffice-plugins')
+ optdepends=('koffice-filters: import/export filters')
+ install=koffice.install
+ cd "${srcdir}/build/kword"
+ make DESTDIR="${pkgdir}" install
+
+ # some sed lines to have python2 in extension scripts
+ sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/oouno.py"
+ sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/importdoxyxml.py"
+ sed -i "s|/usr/bin/env python|/usr/bin/env python2|" "${pkgdir}/usr/share/apps/kword/scripts/extensions/onlinehelp.py"
+}
+
+#package_koffice-kword-doc(){
+# pkgdesc="Documentation for kword"
+# cd ${srcdir}/build/doc/kword
+# make DESTDIR="${pkgdir}" install
+#}
+
+##### package apps done #####
+
+#package_koffice-kchart(){
+# pkgdesc="Charting tool for KDE"
+# depends=('hicolor-icon-theme' 'koffice-interfaces' 'koffice-templates')
+# optdepends=('koffice-filters: import/export filters')
+# install=koffice.install
+# cd "${srcdir}/build/kchart"
+# make DESTDIR="${pkgdir}" install
+#}
+
+#package_koffice-kchart-doc(){
+# pkgdesc="Documentation for kchart"
+# cd "${srcdir}/build/doc/kchart"
+# make DESTDIR="${pkgdir}" install
+#}
+
+#package_koffice-kdgantt(){
+# pkgdesc="Gantt for KDE"
+# cd "${srcdir}/build/kdgantt"
+# make DESTDIR="${pkgdir}" install
+#}
+
+package_koffice-handbook() {
+ pkgdesc="Documentation for koffice"
+ cd "${srcdir}/build/doc/koffice"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_koffice-thesaurus-doc(){
+ pkgdesc="Documentation for koffice-thesaurus"
+ cd "${srcdir}/build/doc/thesaurus"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/koffice/filters.install b/extra/koffice/filters.install
new file mode 100644
index 000000000..7c8a8bd2b
--- /dev/null
+++ b/extra/koffice/filters.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/koffice/kde4-koffice-libwpg02.patch b/extra/koffice/kde4-koffice-libwpg02.patch
new file mode 100644
index 000000000..e2a55a216
--- /dev/null
+++ b/extra/koffice/kde4-koffice-libwpg02.patch
@@ -0,0 +1,1323 @@
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/CMakeLists.txt koffice-2.3.1-libwpg02/filters/karbon/wpg/import/CMakeLists.txt
+--- koffice-2.3.1/filters/karbon/wpg/import/CMakeLists.txt 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/CMakeLists.txt 2011-01-18 07:40:25.000000000 +0100
+@@ -1,16 +1,11 @@
+
+-
+ include_directories(${CMAKE_BINARY_DIR}/filters/ ${WPD_INCLUDE_DIR} ${LIBWPG_INCLUDE_DIR}/)
+
+-set(wpgimport_PART_SRCS
+-WPGImport.cpp
+-OdgExporter.cxx
+-FileOutputHandler.cxx
+-GraphicsElement.cxx)
++set(wpgimport_PART_SRCS WPGImport.cpp)
+
+ kde4_add_plugin(wpgimport ${wpgimport_PART_SRCS})
+
+-target_link_libraries(wpgimport komain ${LIBWPG_LIBRARIES} ${LIBWPG_STREAM_LIBRARIES})
++target_link_libraries(wpgimport komain ${LIBWPG_LIBRARIES} ${LIBWPG_STREAM_LIBRARIES} ${WPD_LIBRARIES})
+
+ install(TARGETS wpgimport DESTINATION ${PLUGIN_INSTALL_DIR})
+ install(FILES karbon_wpg_import.desktop DESTINATION ${SERVICES_INSTALL_DIR})
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.cxx
+--- koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.cxx 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.cxx 1970-01-01 01:00:00.000000000 +0100
+@@ -1,95 +0,0 @@
+-/* libwpg
+- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Library General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library 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
+- * Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02111-1301 USA
+- *
+- * For further information visit http://libwpg.sourceforge.net
+- */
+-
+-/* "This product is not manufactured, approved, or supported by
+- * Corel Corporation or Corel Corporation Limited."
+- */
+-
+-#include "FileOutputHandler.hxx"
+-
+-FileOutputHandler::FileOutputHandler(std::ostringstream &contentStream) :
+- mbIsTagOpened(false),
+- mContentStream(contentStream)
+-{
+-}
+-
+-void FileOutputHandler::startDocument()
+-{
+-}
+-
+-void FileOutputHandler::startElement(const char *psName, const std::vector<std::pair<std::string, std::string> > &xPropList)
+-{
+- if (mbIsTagOpened)
+- {
+- mContentStream << ">";
+- mbIsTagOpened = false;
+- }
+- mContentStream << "<" << psName;
+-
+- for (std::vector<std::pair<std::string, std::string> >::const_iterator i = xPropList.begin(); i != xPropList.end(); i++)
+- {
+- mContentStream << " " << (*i).first.c_str() << "=\"" << (*i).second.c_str() << "\"";
+- }
+- mbIsTagOpened = true;
+- msOpenedTagName = psName;
+-}
+-
+-void FileOutputHandler::endElement(const char *psName)
+-{
+- if (mbIsTagOpened)
+- {
+- if( msOpenedTagName == psName )
+- {
+- mContentStream << "/>";
+- mbIsTagOpened = false;
+- }
+- else // should not happen, but handle it
+- {
+- mContentStream << ">";
+- mContentStream << "</" << psName << ">";
+- mbIsTagOpened = false;
+- }
+- }
+- else
+- {
+- mContentStream << "</" << psName << ">";
+- mbIsTagOpened = false;
+- }
+-}
+-
+-void FileOutputHandler::characters(const std::string &sCharacters)
+-{
+- if (mbIsTagOpened)
+- {
+- mContentStream << ">";
+- mbIsTagOpened = false;
+- }
+- mContentStream << sCharacters.c_str();
+-}
+-
+-void FileOutputHandler::endDocument()
+-{
+- if (mbIsTagOpened)
+- {
+- mContentStream << ">";
+- mbIsTagOpened = false;
+- }
+-}
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.hxx
+--- koffice-2.3.1/filters/karbon/wpg/import/FileOutputHandler.hxx 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/FileOutputHandler.hxx 1970-01-01 01:00:00.000000000 +0100
+@@ -1,49 +0,0 @@
+-/* libwpg
+- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Library General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library 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
+- * Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02111-1301 USA
+- *
+- * For further information visit http://libwpg.sourceforge.net
+- */
+-
+-/* "This product is not manufactured, approved, or supported by
+- * Corel Corporation or Corel Corporation Limited."
+- */
+-
+-#ifndef FILEOUTPUTHANDLER_H
+-#define FILEOUTPUTHANDLER_H
+-
+-#include <iostream>
+-#include <sstream>
+-#include <string>
+-#include "GraphicsHandler.hxx"
+-
+-class FileOutputHandler : public GraphicsHandler
+-{
+- public:
+- explicit FileOutputHandler(std::ostringstream &contentStream);
+- virtual void startDocument();
+- virtual void endDocument();
+- virtual void startElement(const char *psName, const std::vector<std::pair<std::string, std::string> > &xPropList);
+- virtual void endElement(const char *psName);
+- virtual void characters(const std::string &sCharacters);
+-
+- private:
+- bool mbIsTagOpened;
+- std::string msOpenedTagName;
+- std::ostringstream &mContentStream;
+-};
+-#endif
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.cxx
+--- koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.cxx 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.cxx 1970-01-01 01:00:00.000000000 +0100
+@@ -1,66 +0,0 @@
+-/* GraphicsElement: The items we are collecting to be put into the Writer
+- * document: paragraph and spans of text, as well as section breaks.
+- *
+- * Copyright (C) 2002-2003 William Lachance (william.lachance@sympatico.ca)
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser 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
+- * Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02111-1301 USA
+- *
+- * For further information visit http://libwpg.sourceforge.net
+- *
+- */
+-
+-/* "This product is not manufactured, approved, or supported by
+- * Corel Corporation or Corel Corporation Limited."
+- */
+-
+-#include "GraphicsElement.hxx"
+-#include "GraphicsHandler.hxx"
+-#include <string.h>
+-
+-#define ASCII_SPACE 0x0020
+-
+-void TagGraphicsElement::print() const
+-{
+-}
+-
+-void OpenTagGraphicsElement::write(GraphicsHandler *pHandler) const
+-{
+- pHandler->startElement(getTagName().c_str(), maAttrList);
+-}
+-
+-void OpenTagGraphicsElement::print() const
+-{
+- TagGraphicsElement::print();
+-}
+-
+-void OpenTagGraphicsElement::addAttribute(const std::string &szAttributeName, const std::string &sAttributeValue)
+-{
+- std::pair<std::string, std::string> tmpAttribute;
+- tmpAttribute.first = szAttributeName;
+- tmpAttribute.second = sAttributeValue;
+- maAttrList.push_back(tmpAttribute);
+-}
+-
+-void CloseTagGraphicsElement::write(GraphicsHandler *pHandler) const
+-{
+-
+- pHandler->endElement(getTagName().c_str());
+-}
+-
+-void CharDataGraphicsElement::write(GraphicsHandler *pHandler) const
+-{
+- pHandler->characters(msData);
+-}
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.hxx
+--- koffice-2.3.1/filters/karbon/wpg/import/GraphicsElement.hxx 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsElement.hxx 1970-01-01 01:00:00.000000000 +0100
+@@ -1,84 +0,0 @@
+-/* GraphicsElement: The items we are collecting to be put into the Writer
+- * document: paragraph and spans of text, as well as section breaks.
+- *
+- * Copyright (C) 2002-2003 William Lachance (william.lachance@sympatico.ca)
+- *
+- * This program is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Lesser 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
+- * Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02111-1301 USA
+- *
+- * For further information visit http://libwpd.sourceforge.net
+- *
+- */
+-
+-/* "This product is not manufactured, approved, or supported by
+- * Corel Corporation or Corel Corporation Limited."
+- */
+-
+-#ifndef _GRAPHICSELEMENT_H
+-#define _GRAPHICSELEMENT_H
+-#include <string>
+-#include <map>
+-#include <vector>
+-
+-#include "GraphicsHandler.hxx"
+-
+-class GraphicsElement
+-{
+-public:
+- virtual ~GraphicsElement() {}
+- virtual void write(GraphicsHandler *pHandler) const = 0;
+- virtual void print() const {}
+-};
+-
+-class TagGraphicsElement : public GraphicsElement
+-{
+-public:
+- explicit TagGraphicsElement(const char *szTagName) : msTagName(szTagName) {}
+- const std::string &getTagName() const { return msTagName; }
+- virtual void print() const;
+-private:
+- const std::string msTagName;
+-};
+-
+-class OpenTagGraphicsElement : public TagGraphicsElement
+-{
+-public:
+- explicit OpenTagGraphicsElement(const char *szTagName) : TagGraphicsElement(szTagName) {}
+- ~OpenTagGraphicsElement() {}
+- void addAttribute(const std::string &szAttributeName, const std::string &sAttributeValue);
+- virtual void write(GraphicsHandler *pHandler) const;
+- virtual void print () const;
+-private:
+- std::vector<std::pair<std::string, std::string> > maAttrList;
+-};
+-
+-class CloseTagGraphicsElement : public TagGraphicsElement
+-{
+-public:
+- explicit CloseTagGraphicsElement(const char *szTagName) : TagGraphicsElement(szTagName) {}
+- virtual void write(GraphicsHandler *pHandler) const;
+-};
+-
+-class CharDataGraphicsElement : public GraphicsElement
+-{
+-public:
+- CharDataGraphicsElement(const char *sData) : GraphicsElement(), msData(sData) {}
+- virtual void write(GraphicsHandler *pHandler) const;
+-private:
+- std::string msData;
+-};
+-
+-
+-#endif
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/GraphicsHandler.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsHandler.hxx
+--- koffice-2.3.1/filters/karbon/wpg/import/GraphicsHandler.hxx 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/GraphicsHandler.hxx 1970-01-01 01:00:00.000000000 +0100
+@@ -1,43 +0,0 @@
+-/*
+- * Copyright (C) 2004 William Lachance (wlach@interlog.com)
+- * Copyright (C) 2004 Net Integration Technologies (http://www.net-itech.com)
+- *
+- * 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 Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02111-1301 USA
+- *
+- * Contributor(s): Martin Gallwey (gallwey@sun.com)
+- *
+- */
+-
+-/* "This product is not manufactured, approved, or supported by
+- * Corel Corporation or Corel Corporation Limited."
+- */
+-#ifndef _GRAPHICSHANDLER_H
+-#define _GRAPHICSHANDLER_H
+-#include <string>
+-#include <map>
+-#include <vector>
+-
+-class GraphicsHandler
+-{
+-public:
+- virtual ~GraphicsHandler() {}
+- virtual void startDocument() = 0;
+- virtual void endDocument() = 0;
+- virtual void startElement(const char *psName, const std::vector< std::pair <std::string, std::string> > &xPropList) = 0;
+- virtual void endElement(const char *psName) = 0;
+- virtual void characters(const std::string &sCharacters) = 0;
+-};
+-#endif
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.cxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.cxx
+--- koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.cxx 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.cxx 1970-01-01 01:00:00.000000000 +0100
+@@ -1,662 +0,0 @@
+-/* libwpg
+- * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
+- * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch)
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Library General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library 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
+- * Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02111-1301 USA
+- *
+- * For further information visit http://libwpg.sourceforge.net
+- */
+-
+-/* "This product is not manufactured, approved, or supported by
+- * Corel Corporation or Corel Corporation Limited."
+- */
+-
+-#include "OdgExporter.hxx"
+-#include "GraphicsElement.hxx"
+-#include "GraphicsHandler.hxx"
+-#include <locale.h>
+-
+-static std::string doubleToString(const double value)
+-{
+- std::ostringstream tempStream;
+- tempStream << value;
+- std::string decimalPoint(localeconv()->decimal_point);
+- if ((decimalPoint.size() == 0) || (decimalPoint == "."))
+- return tempStream.str();
+- std::string stringValue(tempStream.str());
+- if (!stringValue.empty())
+- {
+- std::string::size_type pos;
+- while ((pos = stringValue.find(decimalPoint)) != std::string::npos)
+- stringValue.replace(pos,decimalPoint.size(),".");
+- }
+- return stringValue;
+-}
+-
+-
+-OdgExporter::OdgExporter(GraphicsHandler *pHandler, const bool isFlatXML):
+- mpHandler(pHandler),
+- m_fillRule(AlternatingFill),
+- m_gradientIndex(1),
+- m_dashIndex(1),
+- m_styleIndex(1),
+- m_width(0.0f),
+- m_height(0.0f),
+- m_isFlatXML(isFlatXML)
+-{
+-}
+-
+-OdgExporter::~OdgExporter()
+-{
+- for (std::vector <GraphicsElement *>::iterator iterStroke = mStrokeDashElements.begin();
+- iterStroke != mStrokeDashElements.end(); iterStroke++)
+- delete (*iterStroke);
+-
+- for (std::vector <GraphicsElement *>::iterator iterGradient = mGradientElements.begin();
+- iterGradient != mGradientElements.end(); iterGradient++)
+- delete (*iterGradient);
+-
+- for (std::vector <GraphicsElement *>::iterator iterAutomaticStyles = mAutomaticStylesElements.begin();
+- iterAutomaticStyles != mAutomaticStylesElements.end(); iterAutomaticStyles++)
+- delete (*iterAutomaticStyles);
+-
+- for (std::vector<GraphicsElement *>::iterator bodyIter = mBodyElements.begin();
+- bodyIter != mBodyElements.end(); bodyIter++)
+- delete (*bodyIter);
+-}
+-
+-void OdgExporter::startGraphics(double width, double height)
+-{
+- m_gradientIndex = 1;
+- m_dashIndex = 1;
+- m_styleIndex = 1;
+- m_width = width;
+- m_height = height;
+-
+-
+- mpHandler->startDocument();
+- OpenTagGraphicsElement tmpOfficeDocumentContent("office:document");
+- tmpOfficeDocumentContent.addAttribute("xmlns:office", "urn:oasis:names:tc:opendocument:xmlns:office:1.0");
+- tmpOfficeDocumentContent.addAttribute("xmlns:style", "urn:oasis:names:tc:opendocument:xmlns:style:1.0");
+- tmpOfficeDocumentContent.addAttribute("xmlns:text", "urn:oasis:names:tc:opendocument:xmlns:text:1.0");
+- tmpOfficeDocumentContent.addAttribute("xmlns:draw", "urn:oasis:names:tc:opendocument:xmlns:drawing:1.0");
+- tmpOfficeDocumentContent.addAttribute("xmlns:dc", "http://purl.org/dc/elements/1.1/");
+- tmpOfficeDocumentContent.addAttribute("xmlns:svg", "urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0");
+- tmpOfficeDocumentContent.addAttribute("xmlns:fo", "urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0");
+- tmpOfficeDocumentContent.addAttribute("xmlns:config", "urn:oasis:names:tc:opendocument:xmlns:config:1.0");
+- tmpOfficeDocumentContent.addAttribute("xmlns:ooo", "http://openoffice.org/2004/office");
+- tmpOfficeDocumentContent.addAttribute("office:version", "1.0");
+- if (m_isFlatXML)
+- tmpOfficeDocumentContent.addAttribute("office:mimetype", "application/x-vnd.oasis.openoffice.drawing");
+- tmpOfficeDocumentContent.write(mpHandler);
+-
+- OpenTagGraphicsElement("office:settings").write(mpHandler);
+-
+- OpenTagGraphicsElement configItemSetOpenElement("config:config-item-set");
+- configItemSetOpenElement.addAttribute("config:name", "ooo:view-settings");
+- configItemSetOpenElement.write(mpHandler);
+-
+- OpenTagGraphicsElement configItemOpenElement1("config:config-item");
+- configItemOpenElement1.addAttribute("config:name", "VisibleAreaTop");
+- configItemOpenElement1.addAttribute("config:type", "int");
+- configItemOpenElement1.write(mpHandler);
+- mpHandler->characters("0");
+- mpHandler->endElement("config:config-item");
+-
+- OpenTagGraphicsElement configItemOpenElement2("config:config-item");
+- configItemOpenElement2.addAttribute("config:name", "VisibleAreaLeft");
+- configItemOpenElement2.addAttribute("config:type", "int");
+- configItemOpenElement2.write(mpHandler);
+- mpHandler->characters("0");
+- mpHandler->endElement("config:config-item");
+-
+- OpenTagGraphicsElement configItemOpenElement3("config:config-item");
+- configItemOpenElement3.addAttribute("config:name", "VisibleAreaWidth");
+- configItemOpenElement3.addAttribute("config:type", "int");
+- configItemOpenElement3.write(mpHandler);
+- m_value.str("");
+- m_value << (unsigned)(2540 * width);
+- mpHandler->characters(m_value.str());
+- mpHandler->endElement("config:config-item");
+-
+- OpenTagGraphicsElement configItemOpenElement4("config:config-item");
+- configItemOpenElement4.addAttribute("config:name", "VisibleAreaHeight");
+- configItemOpenElement4.addAttribute("config:type", "int");
+- configItemOpenElement4.write(mpHandler);
+- m_value.str("");
+- m_value << (unsigned)(2540 * height);
+- mpHandler->characters(m_value.str());
+- mpHandler->endElement("config:config-item");
+-
+- mpHandler->endElement("config:config-item-set");
+-
+- mpHandler->endElement("office:settings");
+-
+-}
+-
+-void OdgExporter::endGraphics()
+-{
+- OpenTagGraphicsElement("office:styles").write(mpHandler);
+-
+- for (std::vector <GraphicsElement *>::const_iterator iterStroke = mStrokeDashElements.begin();
+- iterStroke != mStrokeDashElements.end(); iterStroke++)
+- (*iterStroke)->write(mpHandler);
+-
+- for (std::vector <GraphicsElement *>::const_iterator iterGradient = mGradientElements.begin();
+- iterGradient != mGradientElements.end(); iterGradient++)
+- (*iterGradient)->write(mpHandler);
+-
+- mpHandler->endElement("office:styles");
+-
+- OpenTagGraphicsElement("office:automatic-styles").write(mpHandler);
+-
+- for (std::vector <GraphicsElement *>::const_iterator iterAutomaticStyles = mAutomaticStylesElements.begin();
+- iterAutomaticStyles != mAutomaticStylesElements.end(); iterAutomaticStyles++)
+- (*iterAutomaticStyles)->write(mpHandler);
+-
+- OpenTagGraphicsElement tmpStylePageLayoutOpenElement("style:page-layout");
+- tmpStylePageLayoutOpenElement.addAttribute("style:name", "PM0");
+- tmpStylePageLayoutOpenElement.write(mpHandler);
+-
+- OpenTagGraphicsElement tmpStylePageLayoutPropertiesOpenElement("style:page-layout-properties");
+- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-top", "0in");
+- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-bottom", "0in");
+- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-left", "0in");
+- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:margin-right", "0in");
+- m_value.str("");
+- m_value << doubleToString(m_width) << "in";
+- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-width", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(m_height) << "in";
+- tmpStylePageLayoutPropertiesOpenElement.addAttribute("fo:page-height", m_value.str());
+- m_value.str("");
+- tmpStylePageLayoutPropertiesOpenElement.addAttribute("style:print-orientation", "portrait");
+- tmpStylePageLayoutPropertiesOpenElement.write(mpHandler);
+-
+- mpHandler->endElement("style:page-layout-properties");
+-
+- mpHandler->endElement("style:page-layout");
+-
+- OpenTagGraphicsElement tmpStyleStyleOpenElement("style:style");
+- tmpStyleStyleOpenElement.addAttribute("style:name", "dp1");
+- tmpStyleStyleOpenElement.addAttribute("style:family", "drawing-page");
+- tmpStyleStyleOpenElement.write(mpHandler);
+-
+- OpenTagGraphicsElement tmpStyleDrawingPagePropertiesOpenElement("style:drawing-page-properties");
+- // tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:background-size", "border");
+- tmpStyleDrawingPagePropertiesOpenElement.addAttribute("draw:fill", "none");
+- tmpStyleDrawingPagePropertiesOpenElement.write(mpHandler);
+-
+- mpHandler->endElement("style:drawing-page-properties");
+-
+- mpHandler->endElement("style:style");
+-
+- mpHandler->endElement("office:automatic-styles");
+-
+- OpenTagGraphicsElement("office:master-styles").write(mpHandler);
+-
+- OpenTagGraphicsElement tmpStyleMasterPageOpenElement("style:master-page");
+- tmpStyleMasterPageOpenElement.addAttribute("style:name", "Default");
+- tmpStyleMasterPageOpenElement.addAttribute("style:page-layout-name", "PM0");
+- tmpStyleMasterPageOpenElement.addAttribute("draw:style-name", "dp1");
+- tmpStyleMasterPageOpenElement.write(mpHandler);
+-
+- mpHandler->endElement("style:master-page");
+-
+- mpHandler->endElement("office:master-styles");
+-
+- OpenTagGraphicsElement("office:body").write(mpHandler);
+-
+- OpenTagGraphicsElement("office:drawing").write(mpHandler);
+-
+- OpenTagGraphicsElement tmpDrawPageOpenElement("draw:page");
+- tmpDrawPageOpenElement.addAttribute("draw:name", "page1");
+- tmpDrawPageOpenElement.addAttribute("draw:style-name", "dp1");
+- tmpDrawPageOpenElement.addAttribute("draw:master-page-name", "Default");
+- tmpDrawPageOpenElement.write(mpHandler);
+-
+- for (std::vector<GraphicsElement *>::const_iterator bodyIter = mBodyElements.begin();
+- bodyIter != mBodyElements.end(); bodyIter++)
+- {
+- (*bodyIter)->write(mpHandler);
+- }
+-
+- mpHandler->endElement("draw:page");
+- mpHandler->endElement("office:drawing");
+- mpHandler->endElement("office:body");
+- mpHandler->endElement("office:document");
+-
+- mpHandler->endDocument();
+-}
+-
+-void OdgExporter::setPen(const libwpg::WPGPen& pen)
+-{
+- m_pen = pen;
+-}
+-
+-void OdgExporter::setBrush(const libwpg::WPGBrush& brush)
+-{
+- m_brush = brush;
+-}
+-
+-void OdgExporter::setFillRule(FillRule rule)
+-{
+- m_fillRule = rule;
+-}
+-
+-void OdgExporter::startLayer(unsigned int)
+-{
+-}
+-
+-void OdgExporter::endLayer(unsigned int)
+-{
+-}
+-
+-void OdgExporter::drawRectangle(const libwpg::WPGRect& rect, double rx, double )
+-{
+- writeStyle();
+- OpenTagGraphicsElement *pDrawRectElement = new OpenTagGraphicsElement("draw:rect");
+- m_value.str("");
+- m_value << "gr" << m_styleIndex-1;
+- pDrawRectElement->addAttribute("draw:style-name", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(rect.x1) << "in";
+- pDrawRectElement->addAttribute("svg:x", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(rect.y1) << "in";
+- pDrawRectElement->addAttribute("svg:y", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(rect.x2-rect.x1) << "in";
+- pDrawRectElement->addAttribute("svg:width", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(rect.y2-rect.y1) << "in";
+- pDrawRectElement->addAttribute("svg:height", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(rx) << "in";
+- // FIXME: what to do when rx != ry ?
+- pDrawRectElement->addAttribute("draw:corner-radius", m_value.str());
+- m_value.str("");
+- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawRectElement));
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:rect")));
+-}
+-
+-void OdgExporter::drawEllipse(const libwpg::WPGPoint& center, double rx, double ry)
+-{
+- writeStyle();
+- OpenTagGraphicsElement *pDrawEllipseElement = new OpenTagGraphicsElement("draw:ellipse");
+- m_value.str("");
+- m_value << "gr" << m_styleIndex-1;
+- pDrawEllipseElement->addAttribute("draw:style-name", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(center.x - rx) << "in";
+- pDrawEllipseElement->addAttribute("svg:x", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(center.y - ry) << "in";
+- pDrawEllipseElement->addAttribute("svg:y", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(2 * rx) << "in";
+- pDrawEllipseElement->addAttribute("svg:width", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(2 * ry) << "in";
+- pDrawEllipseElement->addAttribute("svg:height", m_value.str());
+- m_value.str("");
+- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawEllipseElement));
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:ellipse")));
+-}
+-
+-void OdgExporter::drawPolygon(const libwpg::WPGPointArray& vertices)
+-{
+- if(vertices.count() < 2)
+- return;
+-
+- if(vertices.count() == 2)
+- {
+- const libwpg::WPGPoint& p1 = vertices[0];
+- const libwpg::WPGPoint& p2 = vertices[1];
+-
+- writeStyle();
+- OpenTagGraphicsElement *pDrawLineElement = new OpenTagGraphicsElement("draw:line");
+- m_value.str("");
+- m_value << "gr" << m_styleIndex-1;
+- pDrawLineElement->addAttribute("draw:style-name", m_value.str());
+- m_value.str("");
+- pDrawLineElement->addAttribute("draw:text-style-name", "P1");
+- pDrawLineElement->addAttribute("draw:layer", "layout");
+- m_value << doubleToString(p1.x) << "in";
+- pDrawLineElement->addAttribute("svg:x1", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(p1.y) << "in";
+- pDrawLineElement->addAttribute("svg:y1", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(p2.x) << "in";
+- pDrawLineElement->addAttribute("svg:x2", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(p2.y) << "in";
+- pDrawLineElement->addAttribute("svg:y2", m_value.str());
+- m_value.str("");
+- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawLineElement));
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:line")));
+- }
+- else
+- {
+- // draw as path
+- libwpg::WPGPath path;
+- path.moveTo(vertices[0]);
+- for(unsigned long ii = 1; ii < vertices.count(); ii++)
+- path.lineTo(vertices[ii]);
+- path.closed = true;
+- drawPath(path);
+- }
+-}
+-
+-void OdgExporter::drawPath(const libwpg::WPGPath& path)
+-{
+- if(path.count() == 0)
+- return;
+-
+- // try to find the bounding box
+- // this is simple convex hull technique, the bounding box might not be
+- // accurate but that should be enough for this purpose
+- libwpg::WPGPoint p = path.element(0).point;
+- libwpg::WPGPoint q = path.element(0).point;
+- for(unsigned k = 0; k < path.count(); k++)
+- {
+- libwpg::WPGPathElement element = path.element(k);
+- p.x = (p.x > element.point.x) ? element.point.x : p.x;
+- p.y = (p.y > element.point.y) ? element.point.y : p.y;
+- q.x = (q.x < element.point.x) ? element.point.x : q.x;
+- q.y = (q.y < element.point.y) ? element.point.y : q.y;
+- if(element.type == libwpg::WPGPathElement::CurveToElement)
+- {
+- p.x = (p.x > element.extra1.x) ? element.extra1.x : p.x;
+- p.y = (p.y > element.extra1.y) ? element.extra1.y : p.y;
+- q.x = (q.x < element.extra1.x) ? element.extra1.x : q.x;
+- q.y = (q.y < element.extra1.y) ? element.extra1.y : q.y;
+- p.x = (p.x > element.extra2.x) ? element.extra2.x : p.x;
+- p.y = (p.y > element.extra2.y) ? element.extra2.y : p.y;
+- q.x = (q.x < element.extra2.x) ? element.extra2.x : q.x;
+- q.y = (q.y < element.extra2.y) ? element.extra2.y : q.y;
+- }
+- }
+- double vw = q.x - p.x;
+- double vh = q.y - p.y;
+-
+- writeStyle();
+-
+- OpenTagGraphicsElement *pDrawPathElement = new OpenTagGraphicsElement("draw:path");
+- m_value.str("");
+- m_value << "gr" << m_styleIndex-1;
+- pDrawPathElement->addAttribute("draw:style-name", m_value.str());
+- m_value.str("");
+- pDrawPathElement->addAttribute("draw:text-style-name", "P1");
+- pDrawPathElement->addAttribute("draw:layer", "layout");
+- m_value << doubleToString(p.x) << "in";
+- pDrawPathElement->addAttribute("svg:x", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(p.y) << "in";
+- pDrawPathElement->addAttribute("svg:y", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(vw) << "in";
+- pDrawPathElement->addAttribute("svg:width", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(vh) << "in";
+- pDrawPathElement->addAttribute("svg:height", m_value.str());
+- m_value.str("");
+- m_value << "0 0 " << (int)(vw*2540) << " " << (int)(vh*2540);
+- pDrawPathElement->addAttribute("svg:viewBox", m_value.str());
+- m_value.str("");
+-
+- for(unsigned i = 0; i < path.count(); i++)
+- {
+- libwpg::WPGPathElement element = path.element(i);
+- libwpg::WPGPoint point = element.point;
+- switch(element.type)
+- {
+- // 2540 is 2.54*1000, 2.54 in = 1 in
+- case libwpg::WPGPathElement::MoveToElement:
+- m_value << "M" << (int)((point.x-p.x)*2540) << " ";
+- m_value << (int)((point.y-p.y)*2540);
+- break;
+-
+- case libwpg::WPGPathElement::LineToElement:
+- m_value << "L" << (int)((point.x-p.x)*2540) << " ";
+- m_value << (int)((point.y-p.y)*2540);
+- break;
+-
+- case libwpg::WPGPathElement::CurveToElement:
+- m_value << "C" << (int)((element.extra1.x-p.x)*2540) << " ";
+- m_value << (int)((element.extra1.y-p.y)*2540) << " ";
+- m_value << (int)((element.extra2.x-p.x)*2540) << " ";
+- m_value << (int)((element.extra2.y-p.y)*2540) << " ";
+- m_value << (int)((point.x-p.x)*2540) << " ";
+- m_value << (int)((point.y-p.y)*2540);
+- break;
+-
+- default:
+- break;
+- }
+- }
+- if(path.closed)
+- m_value << " Z";
+- pDrawPathElement->addAttribute("svg:d", m_value.str());
+- m_value.str("");
+- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawPathElement));
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:path")));
+-}
+-
+-
+-void OdgExporter::drawBitmap(const libwpg::WPGBitmap& bitmap)
+-{
+- OpenTagGraphicsElement *pDrawFrameElement = new OpenTagGraphicsElement("draw:frame");
+- m_value.str("");
+- m_value << doubleToString(bitmap.rect.x1) << "in";
+- pDrawFrameElement->addAttribute("svg:x", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(bitmap.rect.y1) << "in";
+- pDrawFrameElement->addAttribute("svg:y", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(bitmap.rect.height()) << "in";
+- pDrawFrameElement->addAttribute("svg:height", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(bitmap.rect.width()) << "in";
+- pDrawFrameElement->addAttribute("svg:width", m_value.str());
+- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawFrameElement));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("draw:image")));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("office:binary-data")));
+-
+- libwpg::WPGString base64Binary;
+- bitmap.generateBase64DIB(base64Binary);
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CharDataGraphicsElement(base64Binary.cstr())));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("office:binary-data")));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:image")));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:frame")));
+-}
+-
+-void OdgExporter::drawImageObject(const libwpg::WPGBinaryData& binaryData)
+-{
+- if (binaryData.mimeType.length() <= 0)
+- return;
+- OpenTagGraphicsElement *pDrawFrameElement = new OpenTagGraphicsElement("draw:frame");
+- m_value.str("");
+- m_value << doubleToString(binaryData.rect.x1) << "in";
+- pDrawFrameElement->addAttribute("svg:x", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(binaryData.rect.y1) << "in";
+- pDrawFrameElement->addAttribute("svg:y", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(binaryData.rect.height()) << "in";
+- pDrawFrameElement->addAttribute("svg:height", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(binaryData.rect.width()) << "in";
+- pDrawFrameElement->addAttribute("svg:width", m_value.str());
+- mBodyElements.push_back(static_cast<GraphicsElement *>(pDrawFrameElement));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("draw:image")));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new OpenTagGraphicsElement("office:binary-data")));
+-
+- libwpg::WPGString base64Binary = binaryData.getBase64Data();
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CharDataGraphicsElement(base64Binary.cstr())));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("office:binary-data")));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:image")));
+-
+- mBodyElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:frame")));
+-}
+-
+-
+-static std::string colorToHex(const libwpg::WPGColor& color)
+-{
+- char hexdigits[] = "0123456789abcdef";
+- char buffer[] = "123456";
+- buffer[0] = hexdigits[(color.red >> 4) & 15];
+- buffer[1] = hexdigits[color.red & 15];
+- buffer[2] = hexdigits[(color.green >> 4) & 15];
+- buffer[3] = hexdigits[color.green & 15];
+- buffer[4] = hexdigits[(color.blue >> 4) & 15];
+- buffer[5] = hexdigits[color.blue & 15];
+- return std::string(buffer);
+-}
+-
+-void OdgExporter::writeStyle()
+-{
+- m_value.str("");
+- m_name.str("");
+-
+- if(!m_pen.solid && (m_pen.dashArray.count() >=2 ) )
+- {
+- // ODG only supports dashes with the same length of spaces inbetween
+- // here we take the first space and assume everything else the same
+- // note that dash length is written in percentage
+- double distance = m_pen.dashArray.at(1);
+- OpenTagGraphicsElement *tmpDrawStrokeDashElement = new OpenTagGraphicsElement("draw:stroke-dash");
+- tmpDrawStrokeDashElement->addAttribute("draw:style", "rect");
+- m_value << "Dash_" << m_dashIndex++;
+- tmpDrawStrokeDashElement->addAttribute("draw:name", m_value.str());
+- m_value.str("");
+- m_value << doubleToString(distance*100) << "%";
+- tmpDrawStrokeDashElement->addAttribute("draw:distance", m_value.str());
+- m_value.str("");
+- for(unsigned i = 0; i < m_pen.dashArray.count()/2; i++)
+- {
+- m_name << "draw:dots" << i+1;
+- tmpDrawStrokeDashElement->addAttribute(m_name.str(), "1");
+- m_name.str("");
+- m_name << "draw:dots" << i+1 << "-length";
+- m_value << doubleToString(100*m_pen.dashArray.at(i*2)) << "%";
+- tmpDrawStrokeDashElement->addAttribute(m_name.str(), m_value.str());
+- m_name.str("");
+- m_value.str("");
+- }
+- mStrokeDashElements.push_back(static_cast<GraphicsElement *>(tmpDrawStrokeDashElement));
+- mStrokeDashElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:stroke-dash")));
+- }
+-
+- if(m_brush.style == libwpg::WPGBrush::Gradient)
+- {
+- OpenTagGraphicsElement *tmpDrawGradientElement = new OpenTagGraphicsElement("draw:gradient");
+- tmpDrawGradientElement->addAttribute("draw:style", "linear");
+- m_value << "Gradient_" << m_gradientIndex++;
+- tmpDrawGradientElement->addAttribute("draw:name", m_value.str());
+- m_value.str("");
+-
+- // ODG angle unit is 0.1 degree
+- double angle = -m_brush.gradient.angle();
+- while(angle < 0)
+- angle += 360;
+- while(angle > 360)
+- angle -= 360;
+-
+- m_value << (unsigned)(angle*10);
+- tmpDrawGradientElement->addAttribute("draw:angle", m_value.str());
+- m_value.str("");
+-
+- libwpg::WPGColor startColor = m_brush.gradient.stopColor(0);
+- libwpg::WPGColor stopColor = m_brush.gradient.stopColor(1);
+- m_value << "#" << colorToHex(startColor);
+- tmpDrawGradientElement->addAttribute("draw:start-color", m_value.str());
+- m_value.str("");
+- m_value << "#" << colorToHex(stopColor);
+- tmpDrawGradientElement->addAttribute("draw:end-color", m_value.str());
+- m_value.str("");
+- tmpDrawGradientElement->addAttribute("draw:start-intensity", "100%");
+- tmpDrawGradientElement->addAttribute("draw:end-intensity", "100%");
+- tmpDrawGradientElement->addAttribute("draw:border", "0%");
+- mGradientElements.push_back(static_cast<GraphicsElement *>(tmpDrawGradientElement));
+- mGradientElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("draw:gradient")));
+- }
+-
+- OpenTagGraphicsElement *tmpStyleStyleElement = new OpenTagGraphicsElement("style:style");
+- m_value << "gr" << m_styleIndex;
+- tmpStyleStyleElement->addAttribute("style:name", m_value.str());
+- m_value.str("");
+- tmpStyleStyleElement->addAttribute("style:family", "graphic");
+- tmpStyleStyleElement->addAttribute("style:parent-style-name", "standard");
+- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(tmpStyleStyleElement));
+-
+- OpenTagGraphicsElement *tmpStyleGraphicPropertiesElement = new OpenTagGraphicsElement("style:graphic-properties");
+-
+- if(m_pen.width > 0.0)
+- {
+- m_value << doubleToString(m_pen.width) << "in";
+- tmpStyleGraphicPropertiesElement->addAttribute("svg:stroke-width", m_value.str());
+- m_value.str("");
+- m_value << "#" << colorToHex(m_pen.foreColor);
+- tmpStyleGraphicPropertiesElement->addAttribute("svg:stroke-color", m_value.str());
+- m_value.str("");
+-
+- if(!m_pen.solid)
+- {
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke", "dash");
+- m_value << "Dash_" << m_dashIndex-1;
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke-dash", m_value.str());
+- m_value.str("");
+- }
+- }
+- else
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:stroke", "none");
+-
+- if(m_brush.style == libwpg::WPGBrush::NoBrush)
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "none");
+-
+- if(m_brush.style == libwpg::WPGBrush::Solid)
+- {
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "solid");
+- m_value << "#" << colorToHex(m_brush.foreColor);
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill-color", m_value.str());
+- m_value.str("");
+- }
+-
+- if(m_brush.style == libwpg::WPGBrush::Gradient)
+- {
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill", "gradient");
+- m_value << "Gradient_" << m_gradientIndex-1;
+- tmpStyleGraphicPropertiesElement->addAttribute("draw:fill-gradient-name", m_value.str());
+- m_value.str("");
+- }
+-
+- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(tmpStyleGraphicPropertiesElement));
+- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("style:graphic-properties")));
+-
+- mAutomaticStylesElements.push_back(static_cast<GraphicsElement *>(new CloseTagGraphicsElement("style:style")));
+- m_styleIndex++;
+-}
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.hxx koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.hxx
+--- koffice-2.3.1/filters/karbon/wpg/import/OdgExporter.hxx 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/OdgExporter.hxx 1970-01-01 01:00:00.000000000 +0100
+@@ -1,116 +0,0 @@
+-/* libwpg
+- * Copyright (C) 2006 Ariya Hidayat (ariya@kde.org)
+- *
+- * This library is free software; you can redistribute it and/or
+- * modify it under the terms of the GNU Library General Public
+- * License as published by the Free Software Foundation; either
+- * version 2 of the License, or (at your option) any later version.
+- *
+- * This library 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
+- * Library General Public License for more details.
+- *
+- * You should have received a copy of the GNU Library General Public
+- * License along with this library; if not, write to the
+- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+- * Boston, MA 02111-1301 USA
+- *
+- * For further information visit http://libwpg.sourceforge.net
+- */
+-
+-/* "This product is not manufactured, approved, or supported by
+- * Corel Corporation or Corel Corporation Limited."
+- */
+-
+-#ifndef __ODGEXPORTER_H__
+-#define __ODGEXPORTER_H__
+-
+-#include <iostream>
+-#include <sstream>
+-#include <string>
+-
+-#include <libwpg/libwpg.h>
+-#include "GraphicsElement.hxx"
+-
+-class OdgExporter : public libwpg::WPGPaintInterface {
+-public:
+- explicit OdgExporter(GraphicsHandler *pHandler,
+- const bool isFlatXML = false);
+- ~OdgExporter();
+-
+-#if LIBWPG_VERSION_MINOR<2
+- void startGraphics(double imageWidth, double imageHeight);
+- void endGraphics();
+- void startLayer(unsigned int id);
+- void endLayer(unsigned int id);
+-
+- void setPen(const libwpg::WPGPen& pen);
+- void setBrush(const libwpg::WPGBrush& brush);
+- void setFillRule(FillRule rule);
+-
+- void drawRectangle(const libwpg::WPGRect& rect, double rx, double ry);
+- void drawEllipse(const libwpg::WPGPoint& center, double rx, double ry);
+- void drawPolygon(const libwpg::WPGPointArray& vertices);
+- void drawPath(const libwpg::WPGPath& path);
+- void drawBitmap(const libwpg::WPGBitmap& bitmap);
+- void drawImageObject(const libwpg::WPGBinaryData& binaryData);
+-
+-private:
+- std::vector <GraphicsElement *> mBodyElements;
+- std::vector <GraphicsElement *> mAutomaticStylesElements;
+- std::vector <GraphicsElement *> mStrokeDashElements;
+- std::vector <GraphicsElement *> mGradientElements;
+- GraphicsHandler *mpHandler;
+-
+- libwpg::WPGPen m_pen;
+- libwpg::WPGBrush m_brush;
+- FillRule m_fillRule;
+- int m_gradientIndex;
+- int m_dashIndex;
+- int m_styleIndex;
+- void writeStyle();
+- std::ostringstream m_value, m_name;
+- double m_width, m_height;
+- const bool m_isFlatXML;
+-#else
+- virtual void startGraphics(const ::WPXPropertyList &propList);
+- virtual void endGraphics();
+- virtual void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient);
+- virtual void startLayer(const ::WPXPropertyList &propList);
+- virtual void endLayer();
+- virtual void drawRectangle(const ::WPXPropertyList& propList);
+- virtual void drawEllipse(const ::WPXPropertyList& propList);
+- virtual void drawPolygon(const ::WPXPropertyListVector &vertices);
+- virtual void drawPath(const ::WPXPropertyListVector &path);
+- virtual void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData);
+- virtual void startEmbeddedGraphics(const ::WPXPropertyList &propList);
+- virtual void endEmbeddedGraphics();
+- virtual void drawPolyline(const ::WPXPropertyListVector &vertices);
+- virtual void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path);
+- virtual void endTextObject();
+- virtual void startTextLine(const ::WPXPropertyList &propList);
+- virtual void endTextLine();
+- virtual void startTextSpan(const ::WPXPropertyList &propList);
+- virtual void endTextSpan();
+- virtual void insertText(const ::WPXString &str);
+-
+-
+-private:
+- std::vector <GraphicsElement *> mBodyElements;
+- std::vector <GraphicsElement *> mAutomaticStylesElements;
+- std::vector <GraphicsElement *> mStrokeDashElements;
+- std::vector <GraphicsElement *> mGradientElements;
+- GraphicsHandler *mpHandler;
+-
+- int m_gradientIndex;
+- int m_dashIndex;
+- int m_styleIndex;
+- void writeStyle();
+- std::ostringstream m_value, m_name;
+- double m_width, m_height;
+- const bool m_isFlatXML;
+-#endif
+-};
+-
+-#endif // __ODGEXPORTER_H__
+diff -Nur koffice-2.3.1/filters/karbon/wpg/import/WPGImport.cpp koffice-2.3.1-libwpg02/filters/karbon/wpg/import/WPGImport.cpp
+--- koffice-2.3.1/filters/karbon/wpg/import/WPGImport.cpp 2011-01-15 21:05:35.000000000 +0100
++++ koffice-2.3.1-libwpg02/filters/karbon/wpg/import/WPGImport.cpp 2011-01-02 17:46:15.000000000 +0100
+@@ -20,28 +20,26 @@
+ #include <WPGImport.h>
+ #include <WPGImport.moc>
+
+-#include <QBuffer>
+-#include <QByteArray>
+-#include <QString>
+-
+-#include <kdebug.h>
+ #include <KoFilterChain.h>
+ #include <KoGlobal.h>
+ #include <KoUnit.h>
++#include <KoXmlWriter.h>
++
+ #include <kpluginfactory.h>
++#include <KDebug>
+
+-#include <KoXmlWriter.h>
++
++#include <QtCore/QString>
++#include <QtCore/QFile>
+
+ #include <libwpg/libwpg.h>
+ #if LIBWPG_VERSION_MINOR<2
+ #include <libwpg/WPGStreamImplementation.h>
+ #else
+ #include <libwpd-stream/libwpd-stream.h>
++#include <libwpd/libwpd.h>
+ #endif
+
+-#include "FileOutputHandler.hxx"
+-#include "OdgExporter.hxx"
+-
+ #include <iostream>
+
+ K_PLUGIN_FACTORY(WPGImportFactory, registerPlugin<WPGImport>();)
+@@ -56,35 +54,13 @@
+ {
+ }
+
+-static QByteArray createManifest()
+-{
+- KoXmlWriter* manifestWriter;
+- QByteArray manifestData;
+- QBuffer manifestBuffer(&manifestData);
+-
+- manifestBuffer.open(QIODevice::WriteOnly);
+- manifestWriter = new KoXmlWriter(&manifestBuffer);
+-
+- manifestWriter->startDocument("manifest:manifest");
+- manifestWriter->startElement("manifest:manifest");
+- manifestWriter->addAttribute("xmlns:manifest", "urn:oasis:names:tc:openoffice:xmlns:manifest:1.0");
+- manifestWriter->addManifestEntry("/", "application/vnd.oasis.opendocument.graphics");
+- //manifestWriter->addManifestEntry( "styles.xml", "text/xml" );
+- manifestWriter->addManifestEntry("content.xml", "text/xml");
+- manifestWriter->endElement();
+- manifestWriter->endDocument();
+- delete manifestWriter;
+-
+- return manifestData;
+-}
+-
+
+ KoFilter::ConversionStatus WPGImport::convert(const QByteArray& from, const QByteArray& to)
+ {
+ if (from != "application/x-wpg")
+ return KoFilter::NotImplemented;
+
+- if (to != "application/vnd.oasis.opendocument.graphics")
++ if (to != "image/svg+xml")
+ return KoFilter::NotImplemented;
+
+ #if LIBWPG_VERSION_MINOR<2
+@@ -96,6 +72,7 @@
+ input = olestream;
+ }
+ }
++ libwpg::WPGString output;
+ #else
+ WPXInputStream* input = new WPXFileStream(m_chain->inputFile().toLocal8Bit());
+ if (input->isOLEStream()) {
+@@ -105,59 +82,31 @@
+ input = olestream;
+ }
+ }
++ ::WPXString output;
+ #endif
+
+ if (!libwpg::WPGraphics::isSupported(input)) {
+- std::cerr << "ERROR: Unsupported file format (unsupported version) or file is encrypted!" << std::endl;
++ kWarning() << "ERROR: Unsupported file format (unsupported version) or file is encrypted!";
+ delete input;
+ return KoFilter::NotImplemented;
+ }
+
+- // do the conversion
+- std::ostringstream tmpStringStream;
+- FileOutputHandler tmpHandler(tmpStringStream);
+- OdgExporter exporter(&tmpHandler);
+- libwpg::WPGraphics::parse(input, &exporter);
+- delete input;
+-
+-
+- // create output store
+- KoStore* storeout;
+- storeout = KoStore::createStore(m_chain->outputFile(), KoStore::Write,
+- "application/vnd.oasis.opendocument.graphics", KoStore::Zip);
+-
+- if (!storeout) {
+- kWarning() << "Couldn't open the requested file.";
+- return KoFilter::FileNotFound;
+- }
+-
+-#if 0
+- if (!storeout->open("styles.xml")) {
+- kWarning() << "Couldn't open the file 'styles.xml'.";
+- return KoFilter::CreationError;
++ if (!libwpg::WPGraphics::generateSVG(input, output)) {
++ kWarning() << "ERROR: SVG Generation failed!";
++ delete input;
++ return KoFilter::ParsingError;
+ }
+- //storeout->write( createStyles() );
+- storeout->close();
+-#endif
+
+- if (!storeout->open("content.xml")) {
+- kWarning() << "Couldn't open the file 'content.xml'.";
+- return KoFilter::CreationError;
+- }
+- storeout->write(tmpStringStream.str().c_str());
+- storeout->close();
++ delete input;
+
+- // store document manifest
+- storeout->enterDirectory("META-INF");
+- if (!storeout->open("manifest.xml")) {
+- kWarning() << "Couldn't open the file 'META-INF/manifest.xml'.";
+- return KoFilter::CreationError;
++ QFile outputFile(m_chain->outputFile());
++ if(!outputFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
++ kWarning() << "ERROR: Could not open output file" << m_chain->outputFile();
++ return KoFilter::InternalError;
+ }
+- storeout->write(createManifest());
+- storeout->close();
+
+- // we are done!
+- delete storeout;
++ outputFile.write(output.cstr());
++ outputFile.close();
+
+ return KoFilter::OK;
+ }
+
diff --git a/extra/koffice/koffice.install b/extra/koffice/koffice.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/koffice/koffice.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/extra/koffice/krita.install b/extra/koffice/krita.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/extra/koffice/krita.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/extra/konq-plugins/PKGBUILD b/extra/konq-plugins/PKGBUILD
new file mode 100644
index 000000000..7bda68314
--- /dev/null
+++ b/extra/konq-plugins/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 112174 2011-03-04 09:55:03Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=konq-plugins
+pkgver=4.6.1
+pkgrel=1
+pkgdesc="Extra plugins for Konqueror"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('LGPL')
+depends=('kdebase-konqueror' 'tidyhtml')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'docbook-xsl')
+install=${pkgname}.install
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('38facbeb5627ff6affa0fa0d676d1d19')
+
+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/extra/konq-plugins/konq-plugins.install b/extra/konq-plugins/konq-plugins.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/konq-plugins/konq-plugins.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/extra/konversation/PKGBUILD b/extra/konversation/PKGBUILD
new file mode 100644
index 000000000..e118d6562
--- /dev/null
+++ b/extra/konversation/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 90511 2010-09-12 10:03:56Z pierre $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: James Rayner <iphitus@gmail.com>
+# Contributor: Sergio Jovani Guzman <moret@paretux.org>
+
+pkgname=konversation
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="A user friendly IRC client for KDE"
+arch=('i686' 'x86_64')
+url="http://konversation.kde.org"
+depends=('kdebase-runtime' 'kdepimlibs')
+makedepends=('automoc4' 'cmake' 'pkgconfig' 'docbook-xml')
+license=('GPL2' 'FDL')
+install=${pkgname}.install
+options=('!makeflags')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('f43ac55e4925e9578e87b13fde173671')
+
+build() {
+ cd ${srcdir}
+ sed 's#/usr/bin/env python#/usr/bin/python2#' \
+ -i ${pkgname}-${pkgver}/data/scripts/media
+ 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/extra/konversation/konversation.install b/extra/konversation/konversation.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/konversation/konversation.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/extra/kradio/PKGBUILD b/extra/kradio/PKGBUILD
new file mode 100644
index 000000000..6f776a1fc
--- /dev/null
+++ b/extra/kradio/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 105372 2011-01-08 12:01:40Z tpowa $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kradio
+pkgver=4.0.2
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL2')
+pkgdesc="KRadio is a comfortable KDE radio application"
+url="http://kradio.sourceforge.net/"
+depends=('lame' 'kdelibs' 'libsndfile' 'lirc-utils' 'libmms' 'ffmpeg')
+makedepends=('pkgconfig' 'automoc4')
+source=(http://downloads.sourceforge.net/sourceforge/kradio/kradio4-$pkgver.tar.bz2)
+options=(!libtool)
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../${pkgname}4-$pkgver -DCMAKE_SKIP_RPATH=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('18fea3e2bc7100882075187c6a89f7bd')
diff --git a/extra/krusader/PKGBUILD b/extra/krusader/PKGBUILD
new file mode 100644
index 000000000..67e8615ea
--- /dev/null
+++ b/extra/krusader/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 111906 2011-03-01 18:29:55Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
+
+pkgname=krusader
+pkgver=2.3.0beta1
+_pkgver=2.3.0-beta1
+pkgrel=3
+pkgdesc="An alternative file manager for KDE resembling Midnight Commander"
+url="http://krusader.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+optdepends=("kdebase-keditbookmarks: to edit bookmarks")
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${_pkgver}.tar.bz2"
+ 'add-xz-support.patch')
+md5sums=('3ef55648a2589a9a919d463acec3b830'
+ 'a350bc90646bd16cc4219aa30a4d1fc6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${_pkgver}
+ patch -Np1 -i ${srcdir}/add-xz-support.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/extra/krusader/add-xz-support.patch b/extra/krusader/add-xz-support.patch
new file mode 100644
index 000000000..9ce44084b
--- /dev/null
+++ b/extra/krusader/add-xz-support.patch
@@ -0,0 +1,403 @@
+From: Jan Lepper <dehtris@yahoo.de>
+Date: Thu, 27 Jan 2011 08:54:29 +0000
+Subject: add support for .xz archives - thanks to Val Gor, Grigorios Bouzakis
+X-Git-Url: http://quickgit.kde.org/?p=krusader.git&amp;a=commitdiff&amp;h=a2db0b0fb5f58d0d648a362f75e3948f49cc87fc
+---
+add support for .xz archives - thanks to Val Gor, Grigorios Bouzakis
+---
+
+
+--- a/krArc/krarc.cpp
++++ b/krArc/krarc.cpp
+@@ -423,7 +423,7 @@ void kio_krarcProtocol::get(const KUrl&
+ if (mt)
+ emit mimeType(mt->name());
+ proc << getCmd << getPath(arcFile->url());
+- if (arcType != "gzip" && arcType != "bzip2" && arcType != "lzma") proc << localeEncodedString(file);
++ if (arcType != "gzip" && arcType != "bzip2" && arcType != "lzma" && arcType != "xz") proc << localeEncodedString(file);
+ connect(&proc, SIGNAL(newOutputData(KProcess *, QByteArray &)),
+ this, SLOT(receivedData(KProcess *, QByteArray &)));
+ proc.setMerge(false);
+@@ -440,7 +440,7 @@ void kio_krarcProtocol::get(const KUrl&
+ proc.waitForFinished();
+
+ if (!extArcReady && !decompressToFile) {
+- if (proc.exitStatus() != QProcess::NormalExit || !checkStatus(proc.exitCode()) || (arcType != "bzip2" && arcType != "lzma" && expectedSize != decompressedLen)) {
++ if (proc.exitStatus() != QProcess::NormalExit || !checkStatus(proc.exitCode()) || (arcType != "bzip2" && arcType != "lzma" && arcType != "xz" && expectedSize != decompressedLen)) {
+ if (encrypted && tries) {
+ invalidatePassword();
+ get(url, tries - 1);
+@@ -827,6 +827,8 @@ bool kio_krarcProtocol::setArcFile(const
+ arcType = "gzip";
+ else if (arcType == "tlz")
+ arcType = "lzma";
++ else if (arcType == "txz")
++ arcType = "xz";
+
+ if (arcType.isEmpty()) {
+ arcType = arcFile->mimetype();
+@@ -861,7 +863,7 @@ bool kio_krarcProtocol::initDirDict(cons
+ return false;
+ }
+
+- if (arcType != "bzip2" && arcType != "lzma") {
++ if (arcType != "bzip2" && arcType != "lzma" && arcType != "xz") {
+ if (arcType == "rpm") {
+ proc << listCmd << arcPath;
+ proc.setStandardOutputFile(temp.fileName());
+@@ -896,7 +898,7 @@ bool kio_krarcProtocol::initDirDict(cons
+
+ root->append(entry);
+
+- if (arcType == "bzip2" || arcType == "lzma") {
++ if (arcType == "bzip2" || arcType == "lzma" || arcType == "xz") {
+ KRDEBUG("Got me here...");
+ parseLine(0, "");
+ return true;
+@@ -1207,6 +1209,14 @@ void kio_krarcProtocol::parseLine(int li
+ mode = arcFile->mode();
+ size = arcFile->size();
+ }
++ if (arcType == "xz") {
++ fullName = arcFile->name();
++ if (fullName.endsWith(QLatin1String("xz"))) {
++ fullName.truncate(fullName.length() - 3);
++ }
++ mode = arcFile->mode();
++ size = arcFile->size();
++ }
+ if (arcType == "bzip2") {
+ // There is no way to list bzip2 files, so we take our information from
+ // the archive itself...
+@@ -1460,6 +1470,13 @@ bool kio_krarcProtocol::initArcParameter
+ copyCmd = QStringList();
+ delCmd = QStringList();
+ putCmd = QStringList();
++ } else if (arcType == "xz") {
++ cmd = fullPathName("xz");
++ listCmd << fullPathName("xz");
++ getCmd << fullPathName("xz") << "-dc";
++ copyCmd = QStringList();
++ delCmd = QStringList();
++ putCmd = QStringList();
+ } else if (arcType == "arj") {
+ cmd = fullPathName("arj");
+ listCmd << fullPathName("arj") << "v" << "-y" << "-v";
+@@ -1544,7 +1561,7 @@ bool kio_krarcProtocol::checkStatus(int
+ return exitCode == 0 || exitCode == 1;
+ else if (arcType == "ace" || arcType == "bzip2" || arcType == "lha" || arcType == "rpm" || arcType == "arj")
+ return exitCode == 0;
+- else if (arcType == "gzip" || arcType == "lzma")
++ else if (arcType == "gzip" || arcType == "lzma" || arcType == "xz")
+ return exitCode == 0 || exitCode == 2;
+ else
+ return exitCode == 0;
+@@ -1566,7 +1583,8 @@ QString kio_krarcProtocol::detectArchive
+ {"bzip2", 0, "\x42\x5a\x68\x39\x31" },
+ {"gzip", 0, "\x1f\x8b"},
+ {"deb", 0, "!<arch>\ndebian-binary " },
+- {"7z", 0, "7z\xbc\xaf\x27\x1c" }
++ {"7z", 0, "7z\xbc\xaf\x27\x1c" }/*,
++ {"xz", 0, "\xfd\x37\x7a\x58\x5a\x00"}*/
+ };
+ static int autoDetectElems = sizeof(autoDetectParams) / sizeof(AutoDetectParams);
+
+@@ -1714,6 +1732,14 @@ QString kio_krarcProtocol::detectArchive
+ return "lzma";
+ }
+
++ if (fileName.endsWith(QLatin1String(".tar.xz")) ||
++ fileName.endsWith(QLatin1String(".txz"))) {
++ return "txz";
++ }
++ if (fileName.endsWith(QLatin1String(".xz"))) {
++ return "xz";
++ }
++
+ return QString();
+ }
+
+
+--- a/krusader/Dialogs/packgui.cpp
++++ b/krusader/Dialogs/packgui.cpp
+@@ -68,6 +68,7 @@ PackGUI::PackGUI(QString defaultName, QS
+ if (PS("tar") && PS("gzip")) typeData->addItem("tar.gz");
+ if (PS("tar") && PS("bzip2")) typeData->addItem("tar.bz2");
+ if (PS("tar") && PS("lzma")) typeData->addItem("tar.lzma");
++ if (PS("tar") && PS("xz")) typeData->addItem("tar.xz");
+ if (PS("zip")) typeData->addItem("zip");
+ if (PS("rar")) typeData->addItem("rar");
+ if (PS("lha")) typeData->addItem("lha");
+
+--- a/krusader/Konfigurator/kgarchives.cpp
++++ b/krusader/Konfigurator/kgarchives.cpp
+@@ -62,6 +62,7 @@ KgArchives::KgArchives(bool first, QWidg
+ {{"Archives", "Do Tar", _DoTar, i18n("Tar"), false, ""},
+ {"Archives", "Do GZip", _DoGZip, i18n("GZip"), false, ""},
+ {"Archives", "Do LZMA", _DoLZMA, i18n("LZMA"), false, ""},
++ {"Archives", "Do XZ", _DoXZ, i18n("XZ"), false, ""},
+ {"Archives", "Do BZip2", _DoBZip2, i18n("BZip2"), false, ""},
+ {"Archives", "Do UnZip", _DoUnZip, i18n("Zip"), false, ""},
+ {"Archives", "Do UnRar", _DoUnRar, i18n("Rar"), false, ""},
+@@ -73,7 +74,7 @@ KgArchives::KgArchives(bool first, QWidg
+ {"Archives", "Do 7z", _Do7z, i18n("7zip"), false, ""}
+ };
+
+- cbs = createCheckBoxGroup(3, 0, packers, 12, generalGrp);
++ cbs = createCheckBoxGroup(3, 0, packers, 13, generalGrp);
+ generalGrid->addWidget(cbs, 1, 0);
+
+ addLabel(generalGrid, 2, 0, i18n("The archives that are \"grayed out\" were unavailable on your\n"
+@@ -148,6 +149,7 @@ void KgArchives::disableNonExistingPacke
+ cbs->find("Do GZip")->setEnabled(PS("gzip"));
+ cbs->find("Do BZip2")->setEnabled(PS("bzip2"));
+ cbs->find("Do LZMA")->setEnabled(PS("lzma"));
++ cbs->find("Do XZ")->setEnabled(PS("xz"));
+ cbs->find("Do UnZip")->setEnabled(PS("unzip"));
+ cbs->find("Do Lha")->setEnabled(PS("lha"));
+ cbs->find("Do RPM")->setEnabled(PS("rpm") || PS("cpio"));
+
+--- a/krusader/Konfigurator/kgdependencies.cpp
++++ b/krusader/Konfigurator/kgdependencies.cpp
+@@ -100,6 +100,7 @@ KgDependencies::KgDependencies(bool firs
+ addApplication("unrar", archGrid1, 12, packers_tab, PAGE_PACKERS);
+ addApplication("unzip", archGrid1, 13, packers_tab, PAGE_PACKERS);
+ addApplication("zip", archGrid1, 14, packers_tab, PAGE_PACKERS);
++ addApplication("xz", archGrid1, 15, packers_tab, PAGE_PACKERS);
+
+ // ---------------------------- CHECKSUM TAB -------------------------------------
+ QWidget *checksum_tab = new QWidget(tabWidget);
+
+--- a/krusader/Konfigurator/kggeneral.cpp
++++ b/krusader/Konfigurator/kggeneral.cpp
+@@ -193,6 +193,7 @@ void KgGeneral::createExtensionsTab()
+ defaultAtomicExtensions += ".tar.gz";
+ defaultAtomicExtensions += ".tar.bz2";
+ defaultAtomicExtensions += ".tar.lzma";
++ defaultAtomicExtensions += ".tar.xz";
+ defaultAtomicExtensions += ".moc.cpp";
+
+ listBox = createListBox("Look&Feel", "Atomic Extensions",
+
+--- a/krusader/Konfigurator/kgprotocols.cpp
++++ b/krusader/Konfigurator/kgprotocols.cpp
+@@ -51,12 +51,14 @@ QString KgProtocols::defaultKrarcMimes =
+ "application/x-gzip,application/x-jar,"
+ "application/x-lha,application/x-lha-compressed,"
+ "application/x-rar,application/x-rar-compressed,"
++ "application/x-xz,"
+ "application/x-rpm,application/zip,"
+ "application/x-zip,application/x-zip-compressed";
+ QString KgProtocols::defaultTarMimes = "application/x-tar,application/x-tarz,"
+ "application/x-bzip-compressed-tar,"
+ "application/x-compressed-tar,"
+- "application/x-tbz,application/x-tgz";
++ "application/x-tbz,application/x-tgz,"
++ "application/x-xz-compressed-tar";
+
+ KgProtocols::KgProtocols(bool first, QWidget* parent) :
+ KonfiguratorPage(first, parent)
+
+--- a/krusader/Konfigurator/krresulttable.cpp
++++ b/krusader/Konfigurator/krresulttable.cpp
+@@ -102,6 +102,7 @@ KrArchiverResultTable::KrArchiverResultT
+ Archiver* gzip = new Archiver("gzip", "http://www.gnu.org", PS("gzip"), true, true);
+ Archiver* bzip2 = new Archiver("bzip2", "http://www.gnu.org", PS("bzip2"), true, true);
+ Archiver* lzma = new Archiver("lzma", "http://tukaani.org/lzma", PS("lzma"), true, true);
++ Archiver* xz = new Archiver("xz", "http://tukaani.org/xz", PS("xz"), true, true);
+ Archiver* lha = new Archiver("lha", "http://www.gnu.org", PS("lha"), true, true);
+ Archiver* zip = new Archiver("zip", "http://www.info-zip.org", PS("zip"), true, false);
+ Archiver* unzip = new Archiver("unzip", "http://www.info-zip.org", PS("unzip"), false, true);
+@@ -139,6 +140,7 @@ KrArchiverResultTable::KrArchiverResultT
+ addRow(gzip, _grid);
+ addRow(bzip2, _grid);
+ addRow(lzma, _grid);
++ addRow(xz, _grid);
+ addRow(lha, _grid);
+ addRow(zip, _grid);
+ addRow(unzip, _grid);
+@@ -155,6 +157,7 @@ KrArchiverResultTable::KrArchiverResultT
+ delete gzip;
+ delete bzip2;
+ delete lzma;
++ delete xz;
+ delete lha;
+ delete zip;
+ delete unzip;
+
+--- a/krusader/Panel/krview.cpp
++++ b/krusader/Panel/krview.cpp
+@@ -367,6 +367,7 @@ void KrView::initProperties()
+ defaultAtomicExtensions += ".tar.gz";
+ defaultAtomicExtensions += ".tar.bz2";
+ defaultAtomicExtensions += ".tar.lzma";
++ defaultAtomicExtensions += ".tar.xz";
+ defaultAtomicExtensions += ".moc.cpp";
+ QStringList atomicExtensions = grpSvr.readEntry("Atomic Extensions", defaultAtomicExtensions);
+ for (QStringList::iterator i = atomicExtensions.begin(); i != atomicExtensions.end();) {
+
+--- a/krusader/VFS/krarchandler.cpp
++++ b/krusader/VFS/krarchandler.cpp
+@@ -85,7 +85,7 @@ public:
+ };
+ #endif
+
+-static QStringList arcProtocols = QString("tar;bzip;bzip2;lzma;gzip;krarc;zip").split(';');
++static QStringList arcProtocols = QString("tar;bzip;bzip2;lzma;xz;gzip;krarc;zip").split(';');
+
+ KWallet::Wallet * KRarcHandler::wallet = 0;
+
+@@ -98,6 +98,7 @@ QStringList KRarcHandler::supportedPacke
+ if (KrServices::cmdExist("gzip")) packers.append("gzip");
+ if (KrServices::cmdExist("bzip2")) packers.append("bzip2");
+ if (KrServices::cmdExist("lzma")) packers.append("lzma");
++ if (KrServices::cmdExist("xz")) packers.append("xz");
+ if (KrServices::cmdExist("unzip")) packers.append("unzip");
+ if (KrServices::cmdExist("zip")) packers.append("zip");
+ if (KrServices::cmdExist("lha")) packers.append("lha");
+@@ -134,6 +135,8 @@ bool KRarcHandler::arcSupported(QString
+ return true;
+ else if (type == "-tlz" && lst.contains("tar"))
+ return true;
++ else if (type == "-txz" && lst.contains("tar"))
++ return true;
+ else if (type == "tarz" && lst.contains("tar"))
+ return true;
+ else if (type == "gzip" && lst.contains("gzip"))
+@@ -142,6 +145,8 @@ bool KRarcHandler::arcSupported(QString
+ return true;
+ else if (type == "lzma" && lst.contains("lzma"))
+ return true;
++ else if (type == "-xz" && lst.contains("xz"))
++ return true;
+ else if (type == "-lha" && lst.contains("lha"))
+ return true;
+ else if (type == "-ace" && lst.contains("unace"))
+@@ -173,6 +178,7 @@ bool KRarcHandler::arcHandled(QString ty
+ (type == "-tar" && group.readEntry("Do Tar" , _DoTar)) ||
+ (type == "-tbz" && group.readEntry("Do BZip2", _DoBZip2)) ||
+ (type == "-tlz" && group.readEntry("Do LZMA", _DoLZMA)) ||
++ (type == "-txz" && group.readEntry("Do XZ", _DoXZ)) ||
+ (type == "gzip" && group.readEntry("Do GZip" , _DoGZip)) ||
+ (type == "zip2" && group.readEntry("Do BZip2", _DoBZip2)) ||
+ (type == "-zip" && group.readEntry("Do UnZip", _DoUnZip)) ||
+@@ -198,7 +204,7 @@ long KRarcHandler::arcFileCount(QString
+ if (!arcSupported(type)) return 0;
+
+ // bzip an gzip archive contains only one file
+- if (type == "zip2" || type == "gzip" || type == "lzma") return 1L;
++ if (type == "zip2" || type == "gzip" || type == "lzma" || type == "-xz") return 1L;
+
+ // set the right lister to do the job
+ QStringList lister;
+@@ -209,6 +215,7 @@ long KRarcHandler::arcFileCount(QString
+ else if (type == "tarz") lister << KrServices::fullPathName("tar") << "-tvzf";
+ else if (type == "-tbz") lister << KrServices::fullPathName("tar") << "-tjvf";
+ else if (type == "-tlz") lister << KrServices::fullPathName("tar") << "--lzma" << "-tvf";
++ else if (type == "-txz") lister << KrServices::fullPathName("tar") << "--xz" << "-tvf";
+ else if (type == "-lha") lister << KrServices::fullPathName("lha") << "l";
+ else if (type == "-rar") lister << KrServices::fullPathName(KrServices::cmdExist("rar") ? "rar" : "unrar") << "l" << "-v";
+ else if (type == "-ace") lister << KrServices::fullPathName("unace") << "l";
+@@ -293,9 +300,11 @@ bool KRarcHandler::unpack(QString archiv
+ else if (type == "tarz") packer << KrServices::fullPathName("tar") << "-xvzf";
+ else if (type == "-tbz") packer << KrServices::fullPathName("tar") << "-xjvf";
+ else if (type == "-tlz") packer << KrServices::fullPathName("tar") << "--lzma" << "-xvf";
++ else if (type == "-txz") packer << KrServices::fullPathName("tar") << "--xz" << "-xvf";
+ else if (type == "gzip") packer << KrServices::fullPathName("gzip") << "-cd";
+ else if (type == "zip2") packer << KrServices::fullPathName("bzip2") << "-cdk";
+ else if (type == "lzma") packer << KrServices::fullPathName("lzma") << "-cdk";
++ else if (type == "-xz") packer << KrServices::fullPathName("xz") << "-cdk";
+ else if (type == "-lha") packer << KrServices::fullPathName("lha") << "xf";
+ else if (type == "-rar") packer << KrServices::fullPathName(KrServices::cmdExist("rar") ? "rar" : "unrar") << "-y" << "x";
+ else if (type == "-ace") packer << KrServices::fullPathName("unace") << "x";
+@@ -351,7 +360,7 @@ bool KRarcHandler::unpack(QString archiv
+ // unpack the files
+ KrLinecountingProcess proc;
+ proc << packer << archive;
+- if (type == "zip2" || type == "gzip" || type == "lzma") {
++ if (type == "zip2" || type == "gzip" || type == "lzma" || type == "-xz") {
+ QString arcname = archive.mid(archive.lastIndexOf("/") + 1);
+ if (arcname.contains(".")) arcname = arcname.left(arcname.lastIndexOf("."));
+ proc.setStandardOutputFile(dest + '/' + arcname);
+@@ -407,9 +416,11 @@ bool KRarcHandler::test(QString archive,
+ else if (type == "tarz") packer << KrServices::fullPathName("tar") << "-tvzf";
+ else if (type == "-tbz") packer << KrServices::fullPathName("tar") << "-tjvf";
+ else if (type == "-tlz") packer << KrServices::fullPathName("tar") << "--lzma" << "-tvf";
++ else if (type == "-txz") packer << KrServices::fullPathName("tar") << "--xz" << "-tvf";
+ else if (type == "gzip") packer << KrServices::fullPathName("gzip") << "-tv";
+ else if (type == "zip2") packer << KrServices::fullPathName("bzip2") << "-tv";
+ else if (type == "lzma") packer << KrServices::fullPathName("lzma") << "-tv";
++ else if (type == "-xz") packer << KrServices::fullPathName("xz") << "-tv";
+ else if (type == "-rar") packer << KrServices::fullPathName(KrServices::cmdExist("rar") ? "rar" : "unrar") << "t";
+ else if (type == "-ace") packer << KrServices::fullPathName("unace") << "t";
+ else if (type == "-lha") packer << KrServices::fullPathName("lha") << "t";
+@@ -474,6 +485,8 @@ bool KRarcHandler::pack(QStringList file
+ packer << KrServices::fullPathName("tar") << "-cvjf"; type = "-tbz";
+ } else if (type == "tar.lzma") {
+ packer << KrServices::fullPathName("tar") << "--lzma" << "-cvf"; type = "-tlz";
++ } else if (type == "tar.xz") {
++ packer << KrServices::fullPathName("tar") << "--xz" << "-cvf"; type = "-txz";
+ } else if (type == "rar") {
+ packer << KrServices::fullPathName("rar") << "-r" << "a"; type = "-rar";
+ } else if (type == "lha") {
+@@ -673,6 +686,10 @@ QString KRarcHandler::getType(bool &encr
+ result = "-7z";
+ }
+
++ if (result.endsWith(QLatin1String("-xz"))) {
++ result = "-xz";
++ }
++
+ return result.right(4);
+ }
+
+@@ -683,9 +700,9 @@ bool KRarcHandler::checkStatus(QString t
+ return exitCode == 0 || exitCode == 1;
+ else if (type == "-ace" || type == "zip2" || type == "-lha" || type == "-rpm" || type == "cpio" ||
+ type == "-tar" || type == "tarz" || type == "-tbz" || type == "-tgz" || type == "-arj" ||
+- type == "-deb" || type == "-tlz")
++ type == "-deb" || type == "-tlz" || type == "-txz")
+ return exitCode == 0;
+- else if (type == "gzip" || type == "lzma")
++ else if (type == "gzip" || type == "lzma" || type == "-xz")
+ return exitCode == 0 || exitCode == 2;
+ else
+ return exitCode == 0;
+@@ -707,7 +724,8 @@ QString KRarcHandler::detectArchive(bool
+ {"bzip2", 0, "\x42\x5a\x68\x39\x31" },
+ {"gzip", 0, "\x1f\x8b"},
+ {"deb", 0, "!<arch>\ndebian-binary " },
+- {"7z", 0, "7z\xbc\xaf\x27\x1c" }
++ {"7z", 0, "7z\xbc\xaf\x27\x1c" }/*,
++ {"xz", 0, "\xfd\x37\x7a\x58\x5a\x00"}*/
+ };
+ static int autoDetectElems = sizeof(autoDetectParams) / sizeof(AutoDetectParams);
+
+@@ -839,6 +857,14 @@ QString KRarcHandler::detectArchive(bool
+ return "lzma";
+ }
+
++ if (fileName.endsWith(QLatin1String(".tar.xz")) ||
++ fileName.endsWith(QLatin1String(".txz"))) {
++ return "txz";
++ }
++ if (fileName.endsWith(QLatin1String(".xz"))) {
++ return "xz";
++ }
++
+ return QString();
+ }
+
+
+--- a/krusader/defaults.h
++++ b/krusader/defaults.h
+@@ -181,6 +181,8 @@
+ #define _DoBZip2 true
+ // Do LZMA ///////////
+ #define _DoLZMA true
++// Do XZ ///////////
++#define _DoXZ true
+ // Do Rar /////////////
+ #define _DoRar true
+ // Do UnRar ///////////
+
diff --git a/extra/krusader/krusader.install b/extra/krusader/krusader.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/krusader/krusader.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/extra/ksensors/PKGBUILD b/extra/ksensors/PKGBUILD
new file mode 100644
index 000000000..6db8e7e85
--- /dev/null
+++ b/extra/ksensors/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 64746 2010-01-22 03:14:29Z eric $
+# Contributor: Torsten Evers <tevers@onlinehome.de>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgname=ksensors
+pkgver=0.7.3
+pkgrel=5
+pkgdesc="ksensors is nice lm_sensors frontend for KDE"
+arch=('i686' 'x86_64')
+url="http://ksensors.sourceforge.net/"
+license=("GPL")
+depends=("lm_sensors>=3.0.0" 'kdelibs3')
+source=(#http://mesh.dl.sourceforge.net/sourceforge/ksensors/$pkgname-$pkgver.tar.gz \
+ http://people.atrpms.net/~hdegoede/ksensors-0.7.3-fedora-14.tar.gz)
+md5sums=('7c64a2ef836c13d72b5711791819072e')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ . /etc/profile.d/qt3.sh
+ . /etc/profile.d/kde3.sh
+ ./configure --prefix=/opt/kde --without-arts
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
diff --git a/extra/ksensors/ksensors.patch b/extra/ksensors/ksensors.patch
new file mode 100644
index 000000000..299458f0d
--- /dev/null
+++ b/extra/ksensors/ksensors.patch
@@ -0,0 +1,79 @@
+--- admin/cvs.sh 2003-07-11 23:00:30.000000000 +0800
++++ admin/cvs.sh 2006-08-28 14:54:23.000000000 +0800
+@@ -29,7 +29,7 @@
+ {
+ AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
+ case $AUTOCONF_VERSION in
+- Autoconf*2.5* | autoconf*2.5* ) : ;;
++ Autoconf*2.[56]* | autoconf*2.[56]* ) : ;;
+ "" )
+ echo "*** AUTOCONF NOT FOUND!."
+ echo "*** KDE requires autoconf 2.52, 2.53 or 2.54"
+@@ -44,7 +44,7 @@
+
+ AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
+ case $AUTOHEADER_VERSION in
+- Autoconf*2.5* | autoheader*2.5* ) : ;;
++ Autoconf*2.[56]* | autoheader*2.[56]* ) : ;;
+ "" )
+ echo "*** AUTOHEADER NOT FOUND!."
+ echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)"
+--- src/hdsensorslist.cpp 2004-08-09 02:30:05.000000000 +0800
++++ src/hdsensorslist.cpp 2006-08-28 15:27:02.000000000 +0800
+@@ -206,13 +206,17 @@
+
+ bool HDSensorsList::getDisks(QStringList &disks )
+ {
+- DIR *dir= opendir("/proc/ide");
+- if(!dir) return false;
++ DIR *dir;
++
++ /* Get a listing of the hard drives looking under sysfs first before falling back to /proc/ide */
++ if((dir = opendir ("/sys/block")) == NULL)
++ if ((dir = opendir ("/proc/ide")) == NULL)
++ return false;
+ QString str;
+ struct dirent *ptr;
+ while((ptr= readdir(dir))) {
+- if(ptr->d_name[0]=='h' && ptr->d_name[1]=='d') {
+- str.sprintf("/dev/hd%c",ptr->d_name[2]);
++ if((ptr->d_name[0] == 'h' || ptr->d_name[0] == 's') && ptr->d_name[1] == 'd') {
++ str.sprintf("/dev/%s", ptr->d_name);
+ disks << str;
+ }
+ }
+--- src/lmsensorscfgdesign.ui 2004-08-11 22:36:54.000000000 +0800
++++ src/lmsensorscfgdesign.ui 2006-08-28 14:54:23.000000000 +0800
+@@ -748,29 +748,13 @@
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+- <widget class="QLabel">
++ <widget class="QButtonGroup">
+ <property name="name">
+- <cstring>TextLabel1_3_2_2_2_2</cstring>
++ <cstring>ButtonGroup9</cstring>
+ </property>
+- <property name="text">
++ <property name="title">
+ <string>On reach alarm value:</string>
+ </property>
+- </widget>
+- <widget class="QFrame">
+- <property name="name">
+- <cstring>Frame11_2_2_2</cstring>
+- </property>
+- <property name="frameShape">
+- <enum>HLine</enum>
+- </property>
+- <property name="frameShadow">
+- <enum>Sunken</enum>
+- </property>
+- </widget>
+- <widget class="QLayoutWidget">
+- <property name="name">
+- <cstring>layout9</cstring>
+- </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
diff --git a/extra/kshutdown/PKGBUILD b/extra/kshutdown/PKGBUILD
new file mode 100644
index 000000000..0bd65cffc
--- /dev/null
+++ b/extra/kshutdown/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110106 2011-02-16 13:52:25Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=kshutdown
+pkgver=2.0beta12
+pkgrel=1
+pkgdesc="Shutdown Utility for KDE"
+arch=(i686 x86_64)
+url="http://kshutdown.sourceforge.net/"
+license=('GPL')
+depends=('kdebase-workspace')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+install='kshutdown.install'
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-source-${pkgver}.zip")
+
+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
+}
+md5sums=('392a345dab6fc4f6125007171bc8cb9c')
diff --git a/extra/kshutdown/kshutdown.install b/extra/kshutdown/kshutdown.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kshutdown/kshutdown.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/extra/ktorrent/PKGBUILD b/extra/ktorrent/PKGBUILD
new file mode 100644
index 000000000..b29506657
--- /dev/null
+++ b/extra/ktorrent/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 115087 2011-03-16 19:19:11Z andrea $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Georg Grabler <ggrabler@gmail.com>
+
+pkgname=ktorrent
+pkgver=4.1.0
+pkgrel=1
+pkgdesc="A BitTorrent program for KDE"
+arch=('i686' 'x86_64')
+url="http://ktorrent.org"
+license=('GPL2')
+depends=('libktorrent' 'kdebase-workspace' 'taglib')
+makedepends=('automoc4' 'cmake' 'boost')
+source=("http://ktorrent.org/downloads/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
+ 'httpserver.patch')
+install=${pkgname}.install
+options=('libtool')
+md5sums=('3981c00810217e88b9772438df31df08'
+ '1f25b94615b0bbfa0457c99fb20de3e6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # build time patch
+ patch -Np0 -i ${srcdir}/httpserver.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_MEDIAPLAYER_PLUGIN=false
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/ktorrent/httpserver.patch b/extra/ktorrent/httpserver.patch
new file mode 100644
index 000000000..71c616db0
--- /dev/null
+++ b/extra/ktorrent/httpserver.patch
@@ -0,0 +1,10 @@
+--- plugins/webinterface/httpserver.cpp.old
++++ plugins/webinterface/httpserver.cpp
+@@ -29,6 +29,7 @@
+ #include <ktemporaryfile.h>
+ #include <k3streamsocket.h>
+ #include <k3resolver.h>
++#include <time.h>
+
+ #include <qfileinfo.h>
+ #include <qstringlist.h>
diff --git a/extra/ktorrent/ktorrent.install b/extra/ktorrent/ktorrent.install
new file mode 100644
index 000000000..3884b350d
--- /dev/null
+++ b/extra/ktorrent/ktorrent.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/extra/kwebkitpart/PKGBUILD b/extra/kwebkitpart/PKGBUILD
new file mode 100644
index 000000000..aac2684cc
--- /dev/null
+++ b/extra/kwebkitpart/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 112728 2011-03-06 12:19:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=kwebkitpart
+pkgver=1.1
+pkgrel=1
+pkgdesc="A web browser component for KDE"
+url="http://opendesktop.org/content/show.php?content=127960"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("ftp://ftp.archlinux.org/other/kde/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('1a72499b91d668409ed8ea8e5e71b398')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/kwebkitpart/kwebkitpart.install b/extra/kwebkitpart/kwebkitpart.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/kwebkitpart/kwebkitpart.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/extra/lablgtk/PKGBUILD b/extra/lablgtk/PKGBUILD
new file mode 100644
index 000000000..1da638913
--- /dev/null
+++ b/extra/lablgtk/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97741 2010-11-01 19:31:37Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=lablgtk
+pkgver=1.2.7
+pkgrel=8
+pkgdesc=" An Objective Caml interface to gtk+"
+arch=(i686 x86_64)
+url="http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html"
+license=('LGPL')
+depends=('gtk')
+makedepends=('ocaml')
+options=('!makeflags')
+source=(http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/dist/$pkgname-$pkgver.tar.gz)
+md5sums=('73a797e3a459190fdcaa8288935f6fb9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make configure
+ make
+ make opt
+ make PREFIX=$pkgdir/usr LIBDIR=$pkgdir/usr/lib/ocaml BINDIR=$pkgdir/usr/bin \
+ INSTALLDIR=$pkgdir/usr/lib/ocaml/lablgtk DLLDIR=$pkgdir/usr/lib/ocaml/stublibs install
+ rm -r $pkgdir/usr/bin
+}
diff --git a/extra/lablgtk2/PKGBUILD b/extra/lablgtk2/PKGBUILD
new file mode 100644
index 000000000..d0d65af8a
--- /dev/null
+++ b/extra/lablgtk2/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 106688 2011-01-17 20:58:22Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=lablgtk2
+pkgver=2.14.2
+pkgrel=1
+pkgdesc=" An Objective Caml interface to gtk2"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html"
+depends=('gtk2' 'gtkspell' 'libgnomecanvas' 'librsvg' 'libgnomeui' 'gtksourceview' 'gtksourceview2')
+makedepends=('ocaml')
+source=(http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/dist/lablgtk-$pkgver.tar.gz)
+options=(!makeflags)
+
+build() {
+ cd $startdir/src/lablgtk-$pkgver
+ ./configure
+ make world
+ make opt
+ make PREFIX=$startdir/pkg/usr LIBDIR=$startdir/pkg/usr/lib/ocaml BINDIR=$startdir/pkg/usr/bin INSTALLDIR=$startdir/pkg/usr/lib/ocaml/lablgtk2 DLLDIR=$startdir/pkg/usr/lib/ocaml/stublibs install
+rm -r $startdir/pkg/usr/bin
+}
+md5sums=('bad77680a72dab8b915cae99d1ec9b1f')
diff --git a/extra/lablgtk2/ocaml-3.12.patch b/extra/lablgtk2/ocaml-3.12.patch
new file mode 100644
index 000000000..1b960138f
--- /dev/null
+++ b/extra/lablgtk2/ocaml-3.12.patch
@@ -0,0 +1,237 @@
+Index: src/gWindow.mli
+===================================================================
+--- src/gWindow.mli (revision 1514)
++++ src/gWindow.mli (revision 1515)
+@@ -191,9 +191,10 @@
+
+ (** Create popup windows
+ @gtkdoc gtk GtkDialog *)
+-class ['a] dialog_ext : [> Gtk.dialog] obj ->
++class ['a] dialog_ext : ([> Gtk.dialog] as 'b) obj ->
+ object
+ inherit ['a] dialog_skel
++ val obj : 'b obj
+ method add_button : string -> 'a -> unit
+ method add_button_stock : GtkStock.id -> 'a -> unit
+ end
+@@ -203,6 +204,7 @@
+ class ['a] dialog : [> Gtk.dialog] obj ->
+ object
+ inherit ['a] dialog_ext
++ val obj : Gtk.dialog obj
+ method connect : 'a dialog_signals
+ end
+
+Index: src/gButton.mli
+===================================================================
+--- src/gButton.mli (revision 1514)
++++ src/gButton.mli (revision 1515)
+@@ -357,9 +357,10 @@
+ (** @gtkdoc gtk GtkToolItem
+ @since GTK 2.4 *)
+ class tool_item :
+- [> Gtk.tool_item] obj ->
++ ([> Gtk.tool_item] as 'a) obj ->
+ object
+ inherit tool_item_skel
++ val obj : 'a obj
+ method connect : GContainer.container_signals
+ end
+
+@@ -423,9 +424,10 @@
+ (** @gtkdoc gtk GtkToolButton
+ @since GTK 2.4 *)
+ class tool_button :
+- [> Gtk.tool_button] obj ->
++ ([> Gtk.tool_button] as 'a) obj ->
+ object
+ inherit tool_button_skel
++ val obj : 'a obj
+ method connect : tool_button_signals
+ end
+
+Index: src/gAction.mli
+===================================================================
+--- src/gAction.mli (revision 1514)
++++ src/gAction.mli (revision 1515)
+@@ -20,6 +20,10 @@
+ (* *)
+ (**************************************************************************)
+
++(* $Id: lablgtk-2.14.1-ocaml312.patch,v 1.1 2010/08/03 20:38:29 aballier Exp $ *)
++
++open Gobject
++
+ (** Action-based menus and toolbars *)
+
+ (** {3 GtkAction} *)
+@@ -27,9 +31,9 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkAction *)
+ class action_signals :
+- ([> Gtk.action ] as 'b) Gobject.obj ->
++ ([> Gtk.action ] as 'b) obj ->
+ object ('a)
+- val obj : 'b Gobject.obj
++ val obj : 'b obj
+ val after : bool
+ method after : < after : 'a; .. > as 'a
+ method activate : callback:(unit -> unit) -> GtkSignal.id
+@@ -38,10 +42,10 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkAction *)
+ class action_skel :
+- ([> Gtk.action ] as 'a) Gobject.obj ->
++ ([> Gtk.action ] as 'a) obj ->
+ object
+- val obj : 'a Gobject.obj
+- method as_action : Gtk.action Gobject.obj
++ val obj : 'a obj
++ method as_action : Gtk.action obj
+
+ (** Properties *)
+
+@@ -88,10 +92,10 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkAction *)
+ class action :
+- ([> Gtk.action ] as 'a) Gobject.obj ->
++ ([> Gtk.action ] as 'a) obj ->
+ object
+ inherit action_skel
+- val obj : 'a Gobject.obj
++ val obj : 'a obj
+ method connect : action_signals
+ end
+
+@@ -103,20 +107,20 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkToggleAction *)
+ class toggle_action_signals :
+- ([> Gtk.toggle_action ] as 'b) Gobject.obj ->
++ ([> Gtk.toggle_action ] as 'b) obj ->
+ object
+ inherit action_signals
+- val obj : 'b Gobject.obj
++ val obj : 'b obj
+ method toggled : callback:(unit -> unit) -> GtkSignal.id
+ end
+
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkToggleAction *)
+ class toggle_action_skel :
+- ([> Gtk.toggle_action ] as 'a) Gobject.obj ->
++ ([> Gtk.toggle_action ] as 'a) obj ->
+ object
+ inherit action_skel
+- val obj : 'a Gobject.obj
++ val obj : 'a obj
+ method draw_as_radio : bool
+ method get_active : bool
+ method set_active : bool -> unit
+@@ -127,9 +131,10 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkToggleAction *)
+ class toggle_action :
+- ([> Gtk.toggle_action ] as 'a) Gobject.obj ->
++ ([> Gtk.toggle_action ] as 'a) obj ->
+ object
+ inherit toggle_action_skel
++ val obj : 'a obj
+ method connect : toggle_action_signals
+ end
+
+@@ -140,10 +145,10 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkRadioAction *)
+ class radio_action_signals :
+- ([> Gtk.radio_action] as 'b) Gobject.obj ->
++ ([> Gtk.radio_action] as 'b) obj ->
+ object
+ inherit toggle_action_signals
+- val obj : 'b Gobject.obj
++ val obj : 'b obj
+ method changed :
+ callback:(int -> unit) -> GtkSignal.id
+ end
+@@ -151,12 +156,12 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkRadioAction *)
+ class radio_action :
+- ([> Gtk.radio_action] as 'a) Gobject.obj ->
++ ([> Gtk.radio_action] as 'a) obj ->
+ object
+ inherit toggle_action_skel
+- val obj : 'a Gobject.obj
++ val obj : 'a obj
+ method connect : radio_action_signals
+- method as_radio_action : Gtk.radio_action Gobject.obj
++ method as_radio_action : Gtk.radio_action obj
+ method get_current_value : int
+ method set_group : Gtk.radio_action Gtk.group -> unit
+ method set_value : int -> unit
+@@ -172,10 +177,10 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkActionGroup *)
+ class action_group_signals :
+- ([> Gtk.action_group ] as 'b) Gobject.obj ->
++ ([> Gtk.action_group ] as 'b) obj ->
+ object ('a)
+ val after : bool
+- val obj : 'b Gobject.obj
++ val obj : 'b obj
+ method after : 'a
+ method connect_proxy : callback:(action -> GObj.widget -> unit) -> GtkSignal.id
+ method disconnect_proxy : callback:(action -> GObj.widget -> unit) -> GtkSignal.id
+@@ -186,10 +191,10 @@
+ (** @since GTK 2.4
+ @gtkdoc gtk GtkActionGroup *)
+ class action_group :
+- ([> Gtk.action_group ] as 'a) Gobject.obj ->
++ ([> Gtk.action_group ] as 'a) obj ->
+ object
+- val obj : 'a Gobject.obj
+- method as_group : Gtk.action_group Gobject.obj
++ val obj : 'a obj
++ method as_group : Gtk.action_group obj
+ method connect : action_group_signals
+ method sensitive : bool
+ method set_sensitive : bool -> unit
+Index: src/gnoCanvas.mli
+===================================================================
+--- src/gnoCanvas.mli (revision 1514)
++++ src/gnoCanvas.mli (revision 1515)
+@@ -180,9 +180,10 @@
+ end
+
+ (** @gtkdoc libgnomecanvas GnomeCanvasItem *)
+-class ['p] item : [> GnomeCanvas.item] Gtk.obj ->
++class ['p] item : ([> GnomeCanvas.item] as 'a) Gtk.obj ->
+ object
+ inherit base_item
++ val obj : 'a Gtk.obj
+ constraint 'p = [< items_properties]
+ method set : 'p list -> unit
+ end
+Index: src/gWindow.ml
+===================================================================
+--- src/gWindow.ml (revision 1514)
++++ src/gWindow.ml (revision 1515)
+@@ -171,7 +171,7 @@
+ end
+
+ class ['a] dialog obj = object (self)
+- inherit ['a] dialog_ext obj
++ inherit ['a] dialog_ext (obj :> Gtk.dialog obj)
+ method connect : 'a dialog_signals = new dialog_signals obj (self#decode)
+ end
+
+@@ -193,7 +193,7 @@
+ type any_response = [GtkEnums.response | `OTHER of int]
+
+ class dialog_any obj = object (self)
+- inherit [any_response] dialog_base obj
++ inherit [any_response] dialog_base (obj :> Gtk.dialog obj)
+ method private encode = function
+ `OTHER n -> n
+ | #GtkEnums.response as v -> Dialog.std_response v
diff --git a/extra/labplot/PKGBUILD b/extra/labplot/PKGBUILD
new file mode 100644
index 000000000..23d3db293
--- /dev/null
+++ b/extra/labplot/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 69056 2010-02-16 15:06:54Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Tobias Powalowski <t.powa@gmx.de>
+
+pkgname=labplot
+pkgver=1.6.0.2
+pkgrel=6
+pkgdesc="Plotting, Data analysis and visualisation"
+arch=('i686' 'x86_64')
+url="http://staff.mbi-berlin.de/gerlach/Linux/LabPlot/"
+license=("GPL")
+depends=('kdelibs3' 'gsl' 'imagemagick' \
+ 'fftw' 'netcdf>=4.1')
+makedepends=('libxml++>=2.26' 'audiofile')
+options=('!libtool' '!makeflags')
+source=(http://downloads.sourceforge.net/$pkgname/LabPlot-$pkgver.tar.gz define-missing-constant.patch
+ 'hdf5-1.8.patch')
+
+md5sums=('850256dcd02c4a8ede5b5fe3fbc21ab7' 'e8133bb7b8da63f4ae5a0b998c37b702'
+ '1d38c7304a53b238f8cecb337771ed6f')
+
+
+build() {
+ cd $srcdir/LabPlot-${pkgver}
+ patch -p1 < ../define-missing-constant.patch || return 1
+ patch -Np0 -i ${srcdir}/hdf5-1.8.patch || return 1
+
+ # source kde3 variables
+ source /etc/profile.d/kde3.sh
+
+ # build and install
+ ./configure --prefix=/opt/kde --enable-mt \
+ --without-arts --disable-audiofile \
+ --mandir=/opt/kde/share/man
+ --disable-KexiDB
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
+
diff --git a/extra/labplot/define-missing-constant.patch b/extra/labplot/define-missing-constant.patch
new file mode 100644
index 000000000..f61211279
--- /dev/null
+++ b/extra/labplot/define-missing-constant.patch
@@ -0,0 +1,15 @@
+diff --git a/src/constants.h b/src/constants.h
+index 77d76bf..1bada49 100644
+--- a/src/constants.h
++++ b/src/constants.h
+@@ -17,6 +17,10 @@
+ #endif
+ #endif
+
++#ifndef GSL_CONST_CGSM_GAUSS
++#define GSL_CONST_CGSM_GAUSS (1e0) /* g / abamp s^2 */
++#endif
++
+ #ifdef HAVE_R
+ #include <R.h>
+ #include <Rmath.h>
diff --git a/extra/labplot/hdf5-1.8.patch b/extra/labplot/hdf5-1.8.patch
new file mode 100644
index 000000000..8d9780bb4
--- /dev/null
+++ b/extra/labplot/hdf5-1.8.patch
@@ -0,0 +1,58 @@
+--- src.orig/FilterHDF5.cc 2009-10-15 17:33:15.736674721 +0200
++++ src/FilterHDF5.cc 2009-10-15 17:23:51.386155522 +0200
+@@ -76,7 +76,7 @@
+ printf(" GROUP \"%s\" \n", name);
+ numgroups++;
+
+- hid_t group = H5Gopen(loc_id, name);
++ hid_t group = H5Gopen(loc_id, name, H5P_DEFAULT);
+
+ int nrattr = H5Aget_num_attrs(group);
+ printf(" GROUP has %d attributes\n",nrattr);
+@@ -129,7 +129,7 @@
+ printf(" DATASET \"%s\"\n", name);
+
+ hid_t dataset;
+- dataset = H5Dopen(loc_id, name);
++ dataset = H5Dopen(loc_id, name, H5P_DEFAULT);
+
+ numsets++;
+ data.resize(numsets);
+@@ -260,7 +260,7 @@
+
+ int *matrix = new int[DY];
+ hsize_t tdims[] = {1};
+- hid_t s4_tid = H5Tarray_create(H5T_NATIVE_INT,1,tdims,NULL);
++ hid_t s4_tid = H5Tarray_create(H5T_NATIVE_INT,1,tdims);
+ hid_t s3_tid = H5Tcreate(H5T_COMPOUND, sizeof(s4_tid));
+ status = H5Tinsert(s3_tid, H5Tget_member_name (datatype,j), 0, s4_tid);
+
+@@ -279,7 +279,7 @@
+
+ float *matrix = new float[DY];
+ hsize_t tdims[] = {1};
+- hid_t s4_tid = H5Tarray_create(H5T_NATIVE_FLOAT,1,tdims,NULL);
++ hid_t s4_tid = H5Tarray_create(H5T_NATIVE_FLOAT,1,tdims);
+ hid_t s3_tid = H5Tcreate(H5T_COMPOUND, sizeof(s4_tid));
+ status = H5Tinsert(s3_tid, H5Tget_member_name (datatype,j), 0, s4_tid);
+
+@@ -467,7 +467,7 @@
+ hid_t file = H5Fopen(filename.latin1(), H5F_ACC_RDONLY, H5P_DEFAULT);
+
+ printf(" ROOT GROUP :\n");
+- hid_t group = H5Gopen(file, "/");
++ hid_t group = H5Gopen(file, "/", H5P_DEFAULT);
+
+ int nrattr = H5Aget_num_attrs(group);
+ attributes.resize(nrattr);
+@@ -567,7 +567,8 @@
+ H5Tset_order(datatype, H5T_ORDER_BE);
+ break;
+ }
+- hid_t dataset = H5Dcreate(file,s->Title().latin1(),type,dataspace,H5P_DEFAULT);
++ hid_t dataset = H5Dcreate(file,s->Title().latin1(),type,dataspace,
++ H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
+
+ hid_t status;
+ switch(datatype) {
+
diff --git a/extra/ladspa/PKGBUILD b/extra/ladspa/PKGBUILD
new file mode 100644
index 000000000..b5e1c67e8
--- /dev/null
+++ b/extra/ladspa/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 18544 2008-11-06 23:58:14Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=ladspa
+pkgver=1.13
+pkgrel=2
+pkgdesc="Linux Audio Developer's Simple Plugin API (LADSPA)"
+arch=("i686" "x86_64")
+license=('LGPL')
+url="http://www.ladspa.org/"
+depends=('gcc-libs>=4.3')
+source=(http://www.ladspa.org/download/${pkgname}_sdk_${pkgver}.tgz
+ hardcode-path.patch)
+md5sums=('671be3e1021d0722cadc7fb27054628e'
+ '27743258232d828575d66940e6de2858')
+
+build() {
+ cd "${srcdir}/${pkgname}_sdk/src"
+ patch -Np1 -i "${srcdir}/hardcode-path.patch" || return 1
+ sed -i -e 's/mkdirhier/mkdir -p/' makefile || return 1
+ make targets || return 1
+ make INSTALL_PLUGINS_DIR="${pkgdir}/usr/lib/ladspa/" \
+ INSTALL_INCLUDE_DIR="${pkgdir}/usr/include/" \
+ INSTALL_BINARY_DIR="${pkgdir}/usr/bin/" install || return 1
+}
diff --git a/extra/ladspa/hardcode-path.patch b/extra/ladspa/hardcode-path.patch
new file mode 100644
index 000000000..821c2001c
--- /dev/null
+++ b/extra/ladspa/hardcode-path.patch
@@ -0,0 +1,28 @@
+--- src/search.c.orig 2008-11-07 00:38:18.000000000 +0100
++++ src/search.c 2008-11-07 00:50:51.000000000 +0100
+@@ -83,6 +83,8 @@
+ dlclose(pcFilename);
+ free(pcFilename);
+ }
++ } else {
++ free(pcFilename);
+ }
+ }
+ }
+@@ -99,13 +101,10 @@
+
+ pcLADSPAPath = getenv("LADSPA_PATH");
+ if (!pcLADSPAPath) {
+- fprintf(stderr,
+- "Warning: You do not have a LADSPA_PATH "
+- "environment variable set.\n");
+- return;
++ pcStart = "/usr/lib/ladspa/";
++ } else {
++ pcStart = pcLADSPAPath;
+ }
+-
+- pcStart = pcLADSPAPath;
+ while (*pcStart != '\0') {
+ pcEnd = pcStart;
+ while (*pcEnd != ':' && *pcEnd != '\0')
diff --git a/extra/ladspa/ladspa-sdk-1.12-gcc4.patch b/extra/ladspa/ladspa-sdk-1.12-gcc4.patch
new file mode 100644
index 000000000..fa21be8ef
--- /dev/null
+++ b/extra/ladspa/ladspa-sdk-1.12-gcc4.patch
@@ -0,0 +1,18 @@
+--- ladspa_sdk/src/plugins/sine.cpp.orig 2002-07-06 17:23:17.000000000
+0000
++++ ladspa_sdk/src/plugins/sine.cpp 2005-11-25 11:15:11.691087784 +0000
+@@ -59,6 +59,15 @@
+
+ /*****************************************************************************/
+
++LADSPA_Handle instantiateSineOscillator(const LADSPA_Descriptor *, unsigned long SampleRate);
++void connectPortToSineOscillator(LADSPA_Handle Instance, unsigned long Port, LADSPA_Data * DataLocation);
++void activateSineOscillator(void * pvHandle);
++void runSineOscillator_FreqAudio_AmpAudio(LADSPA_Handle Instance, unsigned long SampleCount);
++void runSineOscillator_FreqAudio_AmpCtrl(LADSPA_Handle Instance, unsigned long SampleCount);
++void runSineOscillator_FreqCtrl_AmpAudio(LADSPA_Handle Instance, unsigned long SampleCount);
++void runSineOscillator_FreqCtrl_AmpCtrl(LADSPA_Handle Instance, unsigned long SampleCount);
++void cleanupSineOscillator(void *pvHandle);
++
+ class SineOscillator {
+ private:
diff --git a/extra/lame/03_lame-ffmpeg.diff b/extra/lame/03_lame-ffmpeg.diff
new file mode 100644
index 000000000..a80393517
--- /dev/null
+++ b/extra/lame/03_lame-ffmpeg.diff
@@ -0,0 +1,72 @@
+--- lame-3.98.2.orig/libmp3lame/lame.c 2009-07-07 10:52:01.000000000 +0200
++++ lame-3.98.2/libmp3lame/lame.c 2009-07-07 10:52:03.000000000 +0200
+@@ -1602,6 +1602,13 @@
+ /* update mfbuf[] counters */
+ gfc->mf_size += n_out;
+ assert(gfc->mf_size <= MFSIZE);
++
++ /* lame_encode_flush may have set gfc->mf_sample_to_encode to 0
++ * so we have to reinitialize it here when that happened.
++ */
++ if (gfc->mf_samples_to_encode < 1) {
++ gfc->mf_samples_to_encode = ENCDELAY + POSTDELAY;
++ }
+ gfc->mf_samples_to_encode += n_out;
+
+
+@@ -1931,6 +1938,10 @@
+ int frames_left;
+ int samples_to_encode = gfc->mf_samples_to_encode;
+
++ /* Was flush already called? */
++ if (gfc->mf_samples_to_encode < 1) {
++ return 0;
++ }
+ memset(buffer, 0, sizeof(buffer));
+ mp3count = 0;
+
+@@ -1942,7 +1953,9 @@
+ end_padding += pad_out_samples;
+
+ frames_left = (samples_to_encode + pad_out_samples) / gfp->framesize;
+- while (frames_left > 0) {
++
++ /* send in a frame of 0 padding until all internal sample buffers are flushed */
++ while (frames_left > 0 && imp3 >= 0) {
+ int frame_num = gfp->frameNum;
+
+ mp3buffer_size_remaining = mp3buffer_size - mp3count;
+@@ -1951,22 +1964,23 @@
+ if (mp3buffer_size == 0)
+ mp3buffer_size_remaining = 0;
+
+- /* send in a frame of 0 padding until all internal sample buffers
+- * are flushed
+- */
+ imp3 = lame_encode_buffer(gfp, buffer[0], buffer[1], 32,
+ mp3buffer, mp3buffer_size_remaining);
+
+- if (frame_num != gfp->frameNum) {
+- --frames_left;
+- }
+- if (imp3 < 0) {
+- /* some type of fatal error */
+- return imp3;
+- }
+ mp3buffer += imp3;
+ mp3count += imp3;
++ frames_left -= (frame_num != gfp->frameNum) ? 1 : 0;
+ }
++ /* Set gfc->mf_samples_to_encode to 0, so we may detect
++ * and break loops calling it more than once in a row.
++ */
++ gfc->mf_samples_to_encode = 0;
++
++ if (imp3 < 0) {
++ /* some type of fatal error */
++ return imp3;
++ }
++
+ mp3buffer_size_remaining = mp3buffer_size - mp3count;
+ /* if user specifed buffer size = 0, dont check size */
+ if (mp3buffer_size == 0)
diff --git a/extra/lame/PKGBUILD b/extra/lame/PKGBUILD
new file mode 100644
index 000000000..b66bb7f76
--- /dev/null
+++ b/extra/lame/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 80636 2010-05-20 16:06:46Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=lame
+pkgver=3.98.4
+pkgrel=1
+pkgdesc="An MP3 encoder and graphical frame analyzer"
+arch=('i686' 'x86_64')
+url="http://lame.sourceforge.net/"
+depends=('ncurses')
+makedepends=('nasm')
+license=('LGPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8e9866ad6b570c6c95c8cba48060473f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --enable-nasm \
+ --enable-shared
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/lame/shared-frontend.patch b/extra/lame/shared-frontend.patch
new file mode 100644
index 000000000..e5ae0a95a
--- /dev/null
+++ b/extra/lame/shared-frontend.patch
@@ -0,0 +1,23 @@
+--- lame-3.96.1.orig/frontend/Makefile.am 2004-01-21 01:41:36.000000000 -0800
++++ lame-3.96.1/frontend/Makefile.am 2004-10-03 16:39:12.415901779 -0700
+@@ -50,7 +50,7 @@
+ endif
+
+ CFLAGS = @CFLAGS@ @GTK_CFLAGS@ @FRONTEND_CFLAGS@
+-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ -static
++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@
+
+ INCLUDES = -I$(top_srcdir)/libmp3lame -I$(top_srcdir)/include -I$(top_builddir)
+
+diff -Naur lame-3.96.1.orig/frontend/Makefile.in lame-3.96.1/frontend/Makefile.in
+--- lame-3.96.1.orig/frontend/Makefile.in 2004-01-21 05:50:29.000000000 -0800
++++ lame-3.96.1/frontend/Makefile.in 2004-10-03 16:39:19.711701553 -0700
+@@ -91,7 +91,7 @@
+ $(top_builddir)/libmp3lame/libmp3lame.la \
+ @FRONTEND_LDADD@
+
+-LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@ -static
++LDFLAGS = @LDFLAGS@ @FRONTEND_LDFLAGS@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
diff --git a/extra/lapack/LICENSE.blas b/extra/lapack/LICENSE.blas
new file mode 100644
index 000000000..79f38386e
--- /dev/null
+++ b/extra/lapack/LICENSE.blas
@@ -0,0 +1,19 @@
+From: http://www.netlib.org/blas/faq.html
+
+ 2) Are there legal restrictions on the use of BLAS reference
+ implementation software?
+
+The reference BLAS is a freely-available software package. It is
+available from netlib via anonymous ftp and the World Wide Web. Thus,
+it can be included in commercial software packages (and has been). We
+only ask that proper credit be given to the authors.
+
+Like all software, it is copyrighted. It is not trademarked, but we do
+ask the following:
+
+If you modify the source for these routines we ask that you change the
+name of the routine and comment the changes made to the original.
+
+We will gladly answer any questions regarding the software. If a
+modification is done, however, it is the responsibility of the person
+who modified the routine to provide support.
diff --git a/extra/lapack/Makefile.blas b/extra/lapack/Makefile.blas
new file mode 100644
index 000000000..46b3eeb79
--- /dev/null
+++ b/extra/lapack/Makefile.blas
@@ -0,0 +1,148 @@
+include ../../make.inc
+
+#######################################################################
+# This is the makefile to create a library for the BLAS.
+# The files are grouped as follows:
+#
+# SBLAS1 -- Single precision real BLAS routines
+# CBLAS1 -- Single precision complex BLAS routines
+# DBLAS1 -- Double precision real BLAS routines
+# ZBLAS1 -- Double precision complex BLAS routines
+#
+# CB1AUX -- Real BLAS routines called by complex routines
+# ZB1AUX -- D.P. real BLAS routines called by d.p. complex
+# routines
+#
+# ALLBLAS -- Auxiliary routines for Level 2 and 3 BLAS
+#
+# SBLAS2 -- Single precision real BLAS2 routines
+# CBLAS2 -- Single precision complex BLAS2 routines
+# DBLAS2 -- Double precision real BLAS2 routines
+# ZBLAS2 -- Double precision complex BLAS2 routines
+#
+# SBLAS3 -- Single precision real BLAS3 routines
+# CBLAS3 -- Single precision complex BLAS3 routines
+# DBLAS3 -- Double precision real BLAS3 routines
+# ZBLAS3 -- Double precision complex BLAS3 routines
+#
+# The library can be set up to include routines for any combination
+# of the four precisions. To create or add to the library, enter make
+# followed by one or more of the precisions desired. Some examples:
+# make single
+# make single complex
+# make single double complex complex16
+# Note that these commands are not safe for parallel builds.
+#
+# Alternatively, the commands
+# make all
+# or
+# make
+# without any arguments creates a library of all four precisions.
+# The name of the library is held in BLASLIB, which is set in the
+# top-level make.inc
+#
+# To remove the object files after the library is created, enter
+# make clean
+# To force the source files to be recompiled, enter, for example,
+# make single FRC=FRC
+#
+#---------------------------------------------------------------------
+#
+# Edward Anderson, University of Tennessee
+# March 26, 1990
+# Susan Ostrouchov, Last updated September 30, 1994
+# ejr, May 2006.
+#
+#######################################################################
+
+all: $(BLASLIB)
+
+#---------------------------------------------------------
+# Comment out the next 6 definitions if you already have
+# the Level 1 BLAS.
+#---------------------------------------------------------
+SBLAS1 = isamax.o sasum.o saxpy.o scopy.o sdot.o snrm2.o \
+ srot.o srotg.o sscal.o sswap.o sdsdot.o srotmg.o srotm.o
+$(SBLAS1): $(FRC)
+
+CBLAS1 = scabs1.o scasum.o scnrm2.o icamax.o caxpy.o ccopy.o \
+ cdotc.o cdotu.o csscal.o crotg.o cscal.o cswap.o csrot.o
+$(CBLAS1): $(FRC)
+
+DBLAS1 = idamax.o dasum.o daxpy.o dcopy.o ddot.o dnrm2.o \
+ drot.o drotg.o dscal.o dsdot.o dswap.o drotmg.o drotm.o
+$(DBLAS1): $(FRC)
+
+ZBLAS1 = dcabs1.o dzasum.o dznrm2.o izamax.o zaxpy.o zcopy.o \
+ zdotc.o zdotu.o zdscal.o zrotg.o zscal.o zswap.o zdrot.o
+$(ZBLAS1): $(FRC)
+
+CB1AUX = isamax.o sasum.o saxpy.o scopy.o snrm2.o sscal.o
+$(CB1AUX): $(FRC)
+
+ZB1AUX = idamax.o dasum.o daxpy.o dcopy.o dnrm2.o dscal.o
+$(ZB1AUX): $(FRC)
+
+#---------------------------------------------------------------------
+# The following line defines auxiliary routines needed by both the
+# Level 2 and Level 3 BLAS. Comment it out only if you already have
+# both the Level 2 and 3 BLAS.
+#---------------------------------------------------------------------
+ALLBLAS = lsame.o xerbla.o xerbla_array.o
+$(ALLBLAS) : $(FRC)
+
+#---------------------------------------------------------
+# Comment out the next 4 definitions if you already have
+# the Level 2 BLAS.
+#---------------------------------------------------------
+SBLAS2 = sgemv.o sgbmv.o ssymv.o ssbmv.o sspmv.o \
+ strmv.o stbmv.o stpmv.o strsv.o stbsv.o stpsv.o \
+ sger.o ssyr.o sspr.o ssyr2.o sspr2.o
+$(SBLAS2): $(FRC)
+
+CBLAS2 = cgemv.o cgbmv.o chemv.o chbmv.o chpmv.o \
+ ctrmv.o ctbmv.o ctpmv.o ctrsv.o ctbsv.o ctpsv.o \
+ cgerc.o cgeru.o cher.o chpr.o cher2.o chpr2.o
+$(CBLAS2): $(FRC)
+
+DBLAS2 = dgemv.o dgbmv.o dsymv.o dsbmv.o dspmv.o \
+ dtrmv.o dtbmv.o dtpmv.o dtrsv.o dtbsv.o dtpsv.o \
+ dger.o dsyr.o dspr.o dsyr2.o dspr2.o
+$(DBLAS2): $(FRC)
+
+ZBLAS2 = zgemv.o zgbmv.o zhemv.o zhbmv.o zhpmv.o \
+ ztrmv.o ztbmv.o ztpmv.o ztrsv.o ztbsv.o ztpsv.o \
+ zgerc.o zgeru.o zher.o zhpr.o zher2.o zhpr2.o
+$(ZBLAS2): $(FRC)
+
+#---------------------------------------------------------
+# Comment out the next 4 definitions if you already have
+# the Level 3 BLAS.
+#---------------------------------------------------------
+SBLAS3 = sgemm.o ssymm.o ssyrk.o ssyr2k.o strmm.o strsm.o
+$(SBLAS3): $(FRC)
+
+CBLAS3 = cgemm.o csymm.o csyrk.o csyr2k.o ctrmm.o ctrsm.o \
+ chemm.o cherk.o cher2k.o
+$(CBLAS3): $(FRC)
+
+DBLAS3 = dgemm.o dsymm.o dsyrk.o dsyr2k.o dtrmm.o dtrsm.o
+$(DBLAS3): $(FRC)
+
+ZBLAS3 = zgemm.o zsymm.o zsyrk.o zsyr2k.o ztrmm.o ztrsm.o \
+ zhemm.o zherk.o zher2k.o
+$(ZBLAS3): $(FRC)
+
+ALLOBJ=$(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
+ $(CBLAS1) $(CBLAS2) $(CBLAS3) $(ZBLAS1) \
+ $(ZBLAS2) $(ZBLAS3) $(ALLBLAS)
+
+clean:
+ rm -f *.o libblas.a libblas.so*
+
+static: $(ALLOBJ)
+ ar ruv libblas.a $(ALLOBJ)
+ ranlib libblas.a
+
+shared: $(ALLOBJ)
+ cc $(CFLAGS) -shared -Wl,-soname,libblas.so.3 -o libblas.so.3.3.0 $(ALLOBJ) -lm -lgfortran -lc
diff --git a/extra/lapack/Makefile.lapack b/extra/lapack/Makefile.lapack
new file mode 100644
index 000000000..6e1f789c7
--- /dev/null
+++ b/extra/lapack/Makefile.lapack
@@ -0,0 +1,390 @@
+include ../make.inc
+
+#######################################################################
+# This is the makefile to create a library for LAPACK.
+# The files are organized as follows:
+# ALLAUX -- Auxiliary routines called from all precisions
+# ALLXAUX -- Auxiliary routines called from all precisions but
+# only from routines using extra precision.
+# SCLAUX -- Auxiliary routines called from both REAL and COMPLEX
+# DZLAUX -- Auxiliary routines called from both DOUBLE PRECISION
+# and COMPLEX*16
+# SLASRC -- Single precision real LAPACK routines
+# SXLASRC -- Single precision real LAPACK routines using extra
+# precision.
+# CLASRC -- Single precision complex LAPACK routines
+# CXLASRC -- Single precision complex LAPACK routines using extra
+# precision.
+# DLASRC -- Double precision real LAPACK routines
+# DXLASRC -- Double precision real LAPACK routines using extra
+# precision.
+# ZLASRC -- Double precision complex LAPACK routines
+# ZXLASRC -- Double precision complex LAPACK routines using extra
+# precision.
+#
+# The library can be set up to include routines for any combination
+# of the four precisions. To create or add to the library, enter make
+# followed by one or more of the precisions desired. Some examples:
+# make single
+# make single complex
+# make single double complex complex16
+# Alternatively, the command
+# make
+# without any arguments creates a library of all four precisions.
+# The library is called
+# lapack.a
+# and is created at the next higher directory level.
+#
+# To remove the object files after the library is created, enter
+# make clean
+# On some systems, you can force the source files to be recompiled by
+# entering (for example)
+# make single FRC=FRC
+#
+# ***Note***
+# The functions lsame, second, dsecnd, slamch, and dlamch may have
+# to be installed before compiling the library. Refer to the
+# installation guide, LAPACK Working Note 41, for instructions.
+#
+#######################################################################
+
+ALLAUX = ilaenv.o ieeeck.o lsamen.o xerbla.o xerbla_array.o iparmq.o \
+ ilaprec.o ilatrans.o ilauplo.o iladiag.o chla_transtype.o \
+ ../INSTALL/ilaver.o ../INSTALL/lsame.o ../INSTALL/slamch.o
+
+ALLXAUX =
+
+SCLAUX = \
+ sbdsdc.o \
+ sbdsqr.o sdisna.o slabad.o slacpy.o sladiv.o slae2.o slaebz.o \
+ slaed0.o slaed1.o slaed2.o slaed3.o slaed4.o slaed5.o slaed6.o \
+ slaed7.o slaed8.o slaed9.o slaeda.o slaev2.o slagtf.o \
+ slagts.o slamrg.o slanst.o \
+ slapy2.o slapy3.o slarnv.o \
+ slarra.o slarrb.o slarrc.o slarrd.o slarre.o slarrf.o slarrj.o \
+ slarrk.o slarrr.o slaneg.o \
+ slartg.o slaruv.o slas2.o slascl.o \
+ slasd0.o slasd1.o slasd2.o slasd3.o slasd4.o slasd5.o slasd6.o \
+ slasd7.o slasd8.o slasda.o slasdq.o slasdt.o \
+ slaset.o slasq1.o slasq2.o slasq3.o slasq4.o slasq5.o slasq6.o \
+ slasr.o slasrt.o slassq.o slasv2.o spttrf.o sstebz.o sstedc.o \
+ ssteqr.o ssterf.o slaisnan.o sisnan.o \
+ slartgp.o slartgs.o \
+ ../INSTALL/second_$(TIMER).o
+
+DZLAUX = \
+ dbdsdc.o \
+ dbdsqr.o ddisna.o dlabad.o dlacpy.o dladiv.o dlae2.o dlaebz.o \
+ dlaed0.o dlaed1.o dlaed2.o dlaed3.o dlaed4.o dlaed5.o dlaed6.o \
+ dlaed7.o dlaed8.o dlaed9.o dlaeda.o dlaev2.o dlagtf.o \
+ dlagts.o dlamrg.o dlanst.o \
+ dlapy2.o dlapy3.o dlarnv.o \
+ dlarra.o dlarrb.o dlarrc.o dlarrd.o dlarre.o dlarrf.o dlarrj.o \
+ dlarrk.o dlarrr.o dlaneg.o \
+ dlartg.o dlaruv.o dlas2.o dlascl.o \
+ dlasd0.o dlasd1.o dlasd2.o dlasd3.o dlasd4.o dlasd5.o dlasd6.o \
+ dlasd7.o dlasd8.o dlasda.o dlasdq.o dlasdt.o \
+ dlaset.o dlasq1.o dlasq2.o dlasq3.o dlasq4.o dlasq5.o dlasq6.o \
+ dlasr.o dlasrt.o dlassq.o dlasv2.o dpttrf.o dstebz.o dstedc.o \
+ dsteqr.o dsterf.o dlaisnan.o disnan.o \
+ dlartgp.o dlartgs.o \
+ ../INSTALL/dlamch.o ../INSTALL/dsecnd_$(TIMER).o
+
+SLASRC = \
+ sgbbrd.o sgbcon.o sgbequ.o sgbrfs.o sgbsv.o \
+ sgbsvx.o sgbtf2.o sgbtrf.o sgbtrs.o sgebak.o sgebal.o sgebd2.o \
+ sgebrd.o sgecon.o sgeequ.o sgees.o sgeesx.o sgeev.o sgeevx.o \
+ sgegs.o sgegv.o sgehd2.o sgehrd.o sgelq2.o sgelqf.o \
+ sgels.o sgelsd.o sgelss.o sgelsx.o sgelsy.o sgeql2.o sgeqlf.o \
+ sgeqp3.o sgeqpf.o sgeqr2.o sgeqr2p.o sgeqrf.o sgeqrfp.o sgerfs.o \
+ sgerq2.o sgerqf.o sgesc2.o sgesdd.o sgesv.o sgesvd.o sgesvx.o \
+ sgetc2.o sgetf2.o sgetri.o \
+ sggbak.o sggbal.o sgges.o sggesx.o sggev.o sggevx.o \
+ sggglm.o sgghrd.o sgglse.o sggqrf.o \
+ sggrqf.o sggsvd.o sggsvp.o sgtcon.o sgtrfs.o sgtsv.o \
+ sgtsvx.o sgttrf.o sgttrs.o sgtts2.o shgeqz.o \
+ shsein.o shseqr.o slabrd.o slacon.o slacn2.o \
+ slaein.o slaexc.o slag2.o slags2.o slagtm.o slagv2.o slahqr.o \
+ slahrd.o slahr2.o slaic1.o slaln2.o slals0.o slalsa.o slalsd.o \
+ slangb.o slange.o slangt.o slanhs.o slansb.o slansp.o \
+ slansy.o slantb.o slantp.o slantr.o slanv2.o \
+ slapll.o slapmt.o \
+ slaqgb.o slaqge.o slaqp2.o slaqps.o slaqsb.o slaqsp.o slaqsy.o \
+ slaqr0.o slaqr1.o slaqr2.o slaqr3.o slaqr4.o slaqr5.o \
+ slaqtr.o slar1v.o slar2v.o ilaslr.o ilaslc.o \
+ slarf.o slarfb.o slarfg.o slarfgp.o slarft.o slarfx.o slargv.o \
+ slarrv.o slartv.o \
+ slarz.o slarzb.o slarzt.o slaswp.o slasy2.o slasyf.o \
+ slatbs.o slatdf.o slatps.o slatrd.o slatrs.o slatrz.o slatzm.o \
+ slauu2.o slauum.o sopgtr.o sopmtr.o sorg2l.o sorg2r.o \
+ sorgbr.o sorghr.o sorgl2.o sorglq.o sorgql.o sorgqr.o sorgr2.o \
+ sorgrq.o sorgtr.o sorm2l.o sorm2r.o \
+ sormbr.o sormhr.o sorml2.o sormlq.o sormql.o sormqr.o sormr2.o \
+ sormr3.o sormrq.o sormrz.o sormtr.o spbcon.o spbequ.o spbrfs.o \
+ spbstf.o spbsv.o spbsvx.o \
+ spbtf2.o spbtrf.o spbtrs.o spocon.o spoequ.o sporfs.o sposv.o \
+ sposvx.o spotf2.o spotri.o spstrf.o spstf2.o \
+ sppcon.o sppequ.o \
+ spprfs.o sppsv.o sppsvx.o spptrf.o spptri.o spptrs.o sptcon.o \
+ spteqr.o sptrfs.o sptsv.o sptsvx.o spttrs.o sptts2.o srscl.o \
+ ssbev.o ssbevd.o ssbevx.o ssbgst.o ssbgv.o ssbgvd.o ssbgvx.o \
+ ssbtrd.o sspcon.o sspev.o sspevd.o sspevx.o sspgst.o \
+ sspgv.o sspgvd.o sspgvx.o ssprfs.o sspsv.o sspsvx.o ssptrd.o \
+ ssptrf.o ssptri.o ssptrs.o sstegr.o sstein.o sstev.o sstevd.o sstevr.o \
+ sstevx.o ssycon.o ssyev.o ssyevd.o ssyevr.o ssyevx.o ssygs2.o \
+ ssygst.o ssygv.o ssygvd.o ssygvx.o ssyrfs.o ssysv.o ssysvx.o \
+ ssytd2.o ssytf2.o ssytrd.o ssytrf.o ssytri.o ssytri2.o ssytri2x.o \
+ ssyswapr.o ssytrs.o ssytrs2.o ssyconv.o stbcon.o \
+ stbrfs.o stbtrs.o stgevc.o stgex2.o stgexc.o stgsen.o \
+ stgsja.o stgsna.o stgsy2.o stgsyl.o stpcon.o stprfs.o stptri.o \
+ stptrs.o \
+ strcon.o strevc.o strexc.o strrfs.o strsen.o strsna.o strsyl.o \
+ strti2.o strtri.o strtrs.o stzrqf.o stzrzf.o sstemr.o \
+ slansf.o spftrf.o spftri.o spftrs.o ssfrk.o stfsm.o stftri.o stfttp.o \
+ stfttr.o stpttf.o stpttr.o strttf.o strttp.o \
+ sgejsv.o sgesvj.o sgsvj0.o sgsvj1.o \
+ sgeequb.o ssyequb.o spoequb.o sgbequb.o \
+ sbbcsd.o slapmr.o sorbdb.o sorcsd.o
+
+DSLASRC = spotrs.o sgetrs.o spotrf.o sgetrf.o
+
+SXLASRC = sgesvxx.o sgerfsx.o sla_gerfsx_extended.o sla_geamv.o \
+ sla_gercond.o sla_rpvgrw.o ssysvxx.o ssyrfsx.o \
+ sla_syrfsx_extended.o sla_syamv.o sla_syrcond.o sla_syrpvgrw.o \
+ sposvxx.o sporfsx.o sla_porfsx_extended.o sla_porcond.o \
+ sla_porpvgrw.o sgbsvxx.o sgbrfsx.o sla_gbrfsx_extended.o \
+ sla_gbamv.o sla_gbrcond.o sla_gbrpvgrw.o sla_lin_berr.o slarscl2.o \
+ slascl2.o sla_wwaddw.o
+
+CLASRC = \
+ cbdsqr.o cgbbrd.o cgbcon.o cgbequ.o cgbrfs.o cgbsv.o cgbsvx.o \
+ cgbtf2.o cgbtrf.o cgbtrs.o cgebak.o cgebal.o cgebd2.o cgebrd.o \
+ cgecon.o cgeequ.o cgees.o cgeesx.o cgeev.o cgeevx.o \
+ cgegs.o cgegv.o cgehd2.o cgehrd.o cgelq2.o cgelqf.o \
+ cgels.o cgelsd.o cgelss.o cgelsx.o cgelsy.o cgeql2.o cgeqlf.o cgeqp3.o \
+ cgeqpf.o cgeqr2.o cgeqr2p.o cgeqrf.o cgeqrfp.o cgerfs.o \
+ cgerq2.o cgerqf.o cgesc2.o cgesdd.o cgesv.o cgesvd.o \
+ cgesvx.o cgetc2.o cgetf2.o cgetri.o \
+ cggbak.o cggbal.o cgges.o cggesx.o cggev.o cggevx.o cggglm.o \
+ cgghrd.o cgglse.o cggqrf.o cggrqf.o \
+ cggsvd.o cggsvp.o \
+ cgtcon.o cgtrfs.o cgtsv.o cgtsvx.o cgttrf.o cgttrs.o cgtts2.o chbev.o \
+ chbevd.o chbevx.o chbgst.o chbgv.o chbgvd.o chbgvx.o chbtrd.o \
+ checon.o cheev.o cheevd.o cheevr.o cheevx.o chegs2.o chegst.o \
+ chegv.o chegvd.o chegvx.o cherfs.o chesv.o chesvx.o chetd2.o \
+ chetf2.o chetrd.o \
+ chetrf.o chetri.o chetrs.o chetrs2.o chgeqz.o chpcon.o chpev.o chpevd.o \
+ chpevx.o chpgst.o chpgv.o chpgvd.o chpgvx.o chprfs.o chpsv.o \
+ chpsvx.o \
+ chptrd.o chptrf.o chptri.o chptrs.o chsein.o chseqr.o clabrd.o \
+ clacgv.o clacon.o clacn2.o clacp2.o clacpy.o clacrm.o clacrt.o cladiv.o \
+ claed0.o claed7.o claed8.o \
+ claein.o claesy.o claev2.o clags2.o clagtm.o \
+ clahef.o clahqr.o \
+ clahrd.o clahr2.o claic1.o clals0.o clalsa.o clalsd.o clangb.o clange.o clangt.o \
+ clanhb.o clanhe.o \
+ clanhp.o clanhs.o clanht.o clansb.o clansp.o clansy.o clantb.o \
+ clantp.o clantr.o clapll.o clapmt.o clarcm.o claqgb.o claqge.o \
+ claqhb.o claqhe.o claqhp.o claqp2.o claqps.o claqsb.o \
+ claqr0.o claqr1.o claqr2.o claqr3.o claqr4.o claqr5.o \
+ claqsp.o claqsy.o clar1v.o clar2v.o ilaclr.o ilaclc.o \
+ clarf.o clarfb.o clarfg.o clarft.o clarfgp.o \
+ clarfx.o clargv.o clarnv.o clarrv.o clartg.o clartv.o \
+ clarz.o clarzb.o clarzt.o clascl.o claset.o clasr.o classq.o \
+ claswp.o clasyf.o clatbs.o clatdf.o clatps.o clatrd.o clatrs.o clatrz.o \
+ clatzm.o clauu2.o clauum.o cpbcon.o cpbequ.o cpbrfs.o cpbstf.o cpbsv.o \
+ cpbsvx.o cpbtf2.o cpbtrf.o cpbtrs.o cpocon.o cpoequ.o cporfs.o \
+ cposv.o cposvx.o cpotf2.o cpotri.o cpstrf.o cpstf2.o \
+ cppcon.o cppequ.o cpprfs.o cppsv.o cppsvx.o cpptrf.o cpptri.o cpptrs.o \
+ cptcon.o cpteqr.o cptrfs.o cptsv.o cptsvx.o cpttrf.o cpttrs.o cptts2.o \
+ crot.o cspcon.o cspmv.o cspr.o csprfs.o cspsv.o \
+ cspsvx.o csptrf.o csptri.o csptrs.o csrscl.o cstedc.o \
+ cstegr.o cstein.o csteqr.o csycon.o csymv.o \
+ csyr.o csyrfs.o csysv.o csysvx.o csytf2.o csytrf.o csytri.o csytri2.o csytri2x.o \
+ csyswapr.o csytrs.o csytrs2.o csyconv.o ctbcon.o ctbrfs.o ctbtrs.o ctgevc.o ctgex2.o \
+ ctgexc.o ctgsen.o ctgsja.o ctgsna.o ctgsy2.o ctgsyl.o ctpcon.o \
+ ctprfs.o ctptri.o \
+ ctptrs.o ctrcon.o ctrevc.o ctrexc.o ctrrfs.o ctrsen.o ctrsna.o \
+ ctrsyl.o ctrti2.o ctrtri.o ctrtrs.o ctzrqf.o ctzrzf.o cung2l.o cung2r.o \
+ cungbr.o cunghr.o cungl2.o cunglq.o cungql.o cungqr.o cungr2.o \
+ cungrq.o cungtr.o cunm2l.o cunm2r.o cunmbr.o cunmhr.o cunml2.o \
+ cunmlq.o cunmql.o cunmqr.o cunmr2.o cunmr3.o cunmrq.o cunmrz.o \
+ cunmtr.o cupgtr.o cupmtr.o icmax1.o scsum1.o cstemr.o \
+ chfrk.o ctfttp.o clanhf.o cpftrf.o cpftri.o cpftrs.o ctfsm.o ctftri.o \
+ ctfttr.o ctpttf.o ctpttr.o ctrttf.o ctrttp.o \
+ cgeequb.o cgbequb.o csyequb.o cpoequb.o cheequb.o \
+ cbbcsd.o clapmr.o cunbdb.o cuncsd.o
+
+CXLASRC = cgesvxx.o cgerfsx.o cla_gerfsx_extended.o cla_geamv.o \
+ cla_gercond_c.o cla_gercond_x.o cla_rpvgrw.o \
+ csysvxx.o csyrfsx.o cla_syrfsx_extended.o cla_syamv.o \
+ cla_syrcond_c.o cla_syrcond_x.o cla_syrpvgrw.o \
+ cposvxx.o cporfsx.o cla_porfsx_extended.o \
+ cla_porcond_c.o cla_porcond_x.o cla_porpvgrw.o \
+ cgbsvxx.o cgbrfsx.o cla_gbrfsx_extended.o cla_gbamv.o \
+ cla_gbrcond_c.o cla_gbrcond_x.o cla_gbrpvgrw.o \
+ chesvxx.o cherfsx.o cla_herfsx_extended.o cla_heamv.o \
+ cla_hercond_c.o cla_hercond_x.o cla_herpvgrw.o \
+ cla_lin_berr.o clarscl2.o clascl2.o cla_wwaddw.o
+
+ZCLASRC = cpotrs.o cgetrs.o cpotrf.o cgetrf.o
+
+DLASRC = \
+ dgbbrd.o dgbcon.o dgbequ.o dgbrfs.o dgbsv.o \
+ dgbsvx.o dgbtf2.o dgbtrf.o dgbtrs.o dgebak.o dgebal.o dgebd2.o \
+ dgebrd.o dgecon.o dgeequ.o dgees.o dgeesx.o dgeev.o dgeevx.o \
+ dgegs.o dgegv.o dgehd2.o dgehrd.o dgelq2.o dgelqf.o \
+ dgels.o dgelsd.o dgelss.o dgelsx.o dgelsy.o dgeql2.o dgeqlf.o \
+ dgeqp3.o dgeqpf.o dgeqr2.o dgeqr2p.o dgeqrf.o dgeqrfp.o dgerfs.o \
+ dgerq2.o dgerqf.o dgesc2.o dgesdd.o dgesv.o dgesvd.o dgesvx.o \
+ dgetc2.o dgetf2.o dgetrf.o dgetri.o \
+ dgetrs.o dggbak.o dggbal.o dgges.o dggesx.o dggev.o dggevx.o \
+ dggglm.o dgghrd.o dgglse.o dggqrf.o \
+ dggrqf.o dggsvd.o dggsvp.o dgtcon.o dgtrfs.o dgtsv.o \
+ dgtsvx.o dgttrf.o dgttrs.o dgtts2.o dhgeqz.o \
+ dhsein.o dhseqr.o dlabrd.o dlacon.o dlacn2.o \
+ dlaein.o dlaexc.o dlag2.o dlags2.o dlagtm.o dlagv2.o dlahqr.o \
+ dlahrd.o dlahr2.o dlaic1.o dlaln2.o dlals0.o dlalsa.o dlalsd.o \
+ dlangb.o dlange.o dlangt.o dlanhs.o dlansb.o dlansp.o \
+ dlansy.o dlantb.o dlantp.o dlantr.o dlanv2.o \
+ dlapll.o dlapmt.o \
+ dlaqgb.o dlaqge.o dlaqp2.o dlaqps.o dlaqsb.o dlaqsp.o dlaqsy.o \
+ dlaqr0.o dlaqr1.o dlaqr2.o dlaqr3.o dlaqr4.o dlaqr5.o \
+ dlaqtr.o dlar1v.o dlar2v.o iladlr.o iladlc.o \
+ dlarf.o dlarfb.o dlarfg.o dlarfgp.o dlarft.o dlarfx.o \
+ dlargv.o dlarrv.o dlartv.o \
+ dlarz.o dlarzb.o dlarzt.o dlaswp.o dlasy2.o dlasyf.o \
+ dlatbs.o dlatdf.o dlatps.o dlatrd.o dlatrs.o dlatrz.o dlatzm.o dlauu2.o \
+ dlauum.o dopgtr.o dopmtr.o dorg2l.o dorg2r.o \
+ dorgbr.o dorghr.o dorgl2.o dorglq.o dorgql.o dorgqr.o dorgr2.o \
+ dorgrq.o dorgtr.o dorm2l.o dorm2r.o \
+ dormbr.o dormhr.o dorml2.o dormlq.o dormql.o dormqr.o dormr2.o \
+ dormr3.o dormrq.o dormrz.o dormtr.o dpbcon.o dpbequ.o dpbrfs.o \
+ dpbstf.o dpbsv.o dpbsvx.o \
+ dpbtf2.o dpbtrf.o dpbtrs.o dpocon.o dpoequ.o dporfs.o dposv.o \
+ dposvx.o dpotf2.o dpotrf.o dpotri.o dpotrs.o dpstrf.o dpstf2.o \
+ dppcon.o dppequ.o \
+ dpprfs.o dppsv.o dppsvx.o dpptrf.o dpptri.o dpptrs.o dptcon.o \
+ dpteqr.o dptrfs.o dptsv.o dptsvx.o dpttrs.o dptts2.o drscl.o \
+ dsbev.o dsbevd.o dsbevx.o dsbgst.o dsbgv.o dsbgvd.o dsbgvx.o \
+ dsbtrd.o dspcon.o dspev.o dspevd.o dspevx.o dspgst.o \
+ dspgv.o dspgvd.o dspgvx.o dsprfs.o dspsv.o dspsvx.o dsptrd.o \
+ dsptrf.o dsptri.o dsptrs.o dstegr.o dstein.o dstev.o dstevd.o dstevr.o \
+ dstevx.o dsycon.o dsyev.o dsyevd.o dsyevr.o \
+ dsyevx.o dsygs2.o dsygst.o dsygv.o dsygvd.o dsygvx.o dsyrfs.o \
+ dsysv.o dsysvx.o \
+ dsytd2.o dsytf2.o dsytrd.o dsytrf.o dsytri.o dsytri2.o dsytri2x.o \
+ dsyswapr.o dsytrs.o dsytrs2.o dsyconv.o dtbcon.o \
+ dtbrfs.o dtbtrs.o dtgevc.o dtgex2.o dtgexc.o dtgsen.o \
+ dtgsja.o dtgsna.o dtgsy2.o dtgsyl.o dtpcon.o dtprfs.o dtptri.o \
+ dtptrs.o \
+ dtrcon.o dtrevc.o dtrexc.o dtrrfs.o dtrsen.o dtrsna.o dtrsyl.o \
+ dtrti2.o dtrtri.o dtrtrs.o dtzrqf.o dtzrzf.o dstemr.o \
+ dsgesv.o dsposv.o dlag2s.o slag2d.o dlat2s.o \
+ dlansf.o dpftrf.o dpftri.o dpftrs.o dsfrk.o dtfsm.o dtftri.o dtfttp.o \
+ dtfttr.o dtpttf.o dtpttr.o dtrttf.o dtrttp.o \
+ dgejsv.o dgesvj.o dgsvj0.o dgsvj1.o \
+ dgeequb.o dsyequb.o dpoequb.o dgbequb.o \
+ dbbcsd.o dlapmr.o dorbdb.o dorcsd.o
+
+DXLASRC = dgesvxx.o dgerfsx.o dla_gerfsx_extended.o dla_geamv.o \
+ dla_gercond.o dla_rpvgrw.o dsysvxx.o dsyrfsx.o \
+ dla_syrfsx_extended.o dla_syamv.o dla_syrcond.o dla_syrpvgrw.o \
+ dposvxx.o dporfsx.o dla_porfsx_extended.o dla_porcond.o \
+ dla_porpvgrw.o dgbsvxx.o dgbrfsx.o dla_gbrfsx_extended.o \
+ dla_gbamv.o dla_gbrcond.o dla_gbrpvgrw.o dla_lin_berr.o dlarscl2.o \
+ dlascl2.o dla_wwaddw.o
+
+ZLASRC = \
+ zbdsqr.o zgbbrd.o zgbcon.o zgbequ.o zgbrfs.o zgbsv.o zgbsvx.o \
+ zgbtf2.o zgbtrf.o zgbtrs.o zgebak.o zgebal.o zgebd2.o zgebrd.o \
+ zgecon.o zgeequ.o zgees.o zgeesx.o zgeev.o zgeevx.o \
+ zgegs.o zgegv.o zgehd2.o zgehrd.o zgelq2.o zgelqf.o \
+ zgels.o zgelsd.o zgelss.o zgelsx.o zgelsy.o zgeql2.o zgeqlf.o zgeqp3.o \
+ zgeqpf.o zgeqr2.o zgeqr2p.o zgeqrf.o zgeqrfp.o zgerfs.o zgerq2.o zgerqf.o \
+ zgesc2.o zgesdd.o zgesv.o zgesvd.o zgesvx.o zgetc2.o zgetf2.o zgetrf.o \
+ zgetri.o zgetrs.o \
+ zggbak.o zggbal.o zgges.o zggesx.o zggev.o zggevx.o zggglm.o \
+ zgghrd.o zgglse.o zggqrf.o zggrqf.o \
+ zggsvd.o zggsvp.o \
+ zgtcon.o zgtrfs.o zgtsv.o zgtsvx.o zgttrf.o zgttrs.o zgtts2.o zhbev.o \
+ zhbevd.o zhbevx.o zhbgst.o zhbgv.o zhbgvd.o zhbgvx.o zhbtrd.o \
+ zhecon.o zheev.o zheevd.o zheevr.o zheevx.o zhegs2.o zhegst.o \
+ zhegv.o zhegvd.o zhegvx.o zherfs.o zhesv.o zhesvx.o zhetd2.o \
+ zhetf2.o zhetrd.o \
+ zhetrf.o zhetri.o zhetrs.o zhetrs2.o zhgeqz.o zhpcon.o zhpev.o zhpevd.o \
+ zhpevx.o zhpgst.o zhpgv.o zhpgvd.o zhpgvx.o zhprfs.o zhpsv.o \
+ zhpsvx.o \
+ zhptrd.o zhptrf.o zhptri.o zhptrs.o zhsein.o zhseqr.o zlabrd.o \
+ zlacgv.o zlacon.o zlacn2.o zlacp2.o zlacpy.o zlacrm.o zlacrt.o zladiv.o \
+ zlaed0.o zlaed7.o zlaed8.o \
+ zlaein.o zlaesy.o zlaev2.o zlags2.o zlagtm.o \
+ zlahef.o zlahqr.o \
+ zlahrd.o zlahr2.o zlaic1.o zlals0.o zlalsa.o zlalsd.o zlangb.o zlange.o \
+ zlangt.o zlanhb.o \
+ zlanhe.o \
+ zlanhp.o zlanhs.o zlanht.o zlansb.o zlansp.o zlansy.o zlantb.o \
+ zlantp.o zlantr.o zlapll.o zlapmt.o zlaqgb.o zlaqge.o \
+ zlaqhb.o zlaqhe.o zlaqhp.o zlaqp2.o zlaqps.o zlaqsb.o \
+ zlaqr0.o zlaqr1.o zlaqr2.o zlaqr3.o zlaqr4.o zlaqr5.o \
+ zlaqsp.o zlaqsy.o zlar1v.o zlar2v.o ilazlr.o ilazlc.o \
+ zlarcm.o zlarf.o zlarfb.o \
+ zlarfg.o zlarft.o zlarfgp.o \
+ zlarfx.o zlargv.o zlarnv.o zlarrv.o zlartg.o zlartv.o \
+ zlarz.o zlarzb.o zlarzt.o zlascl.o zlaset.o zlasr.o \
+ zlassq.o zlaswp.o zlasyf.o \
+ zlatbs.o zlatdf.o zlatps.o zlatrd.o zlatrs.o zlatrz.o zlatzm.o zlauu2.o \
+ zlauum.o zpbcon.o zpbequ.o zpbrfs.o zpbstf.o zpbsv.o \
+ zpbsvx.o zpbtf2.o zpbtrf.o zpbtrs.o zpocon.o zpoequ.o zporfs.o \
+ zposv.o zposvx.o zpotf2.o zpotrf.o zpotri.o zpotrs.o zpstrf.o zpstf2.o \
+ zppcon.o zppequ.o zpprfs.o zppsv.o zppsvx.o zpptrf.o zpptri.o zpptrs.o \
+ zptcon.o zpteqr.o zptrfs.o zptsv.o zptsvx.o zpttrf.o zpttrs.o zptts2.o \
+ zrot.o zspcon.o zspmv.o zspr.o zsprfs.o zspsv.o \
+ zspsvx.o zsptrf.o zsptri.o zsptrs.o zdrscl.o zstedc.o \
+ zstegr.o zstein.o zsteqr.o zsycon.o zsymv.o \
+ zsyr.o zsyrfs.o zsysv.o zsysvx.o zsytf2.o zsytrf.o zsytri.o zsytri2.o zsytri2x.o \
+ zsyswapr.o zsytrs.o zsytrs2.o zsyconv.o ztbcon.o ztbrfs.o ztbtrs.o ztgevc.o ztgex2.o \
+ ztgexc.o ztgsen.o ztgsja.o ztgsna.o ztgsy2.o ztgsyl.o ztpcon.o \
+ ztprfs.o ztptri.o \
+ ztptrs.o ztrcon.o ztrevc.o ztrexc.o ztrrfs.o ztrsen.o ztrsna.o \
+ ztrsyl.o ztrti2.o ztrtri.o ztrtrs.o ztzrqf.o ztzrzf.o zung2l.o \
+ zung2r.o zungbr.o zunghr.o zungl2.o zunglq.o zungql.o zungqr.o zungr2.o \
+ zungrq.o zungtr.o zunm2l.o zunm2r.o zunmbr.o zunmhr.o zunml2.o \
+ zunmlq.o zunmql.o zunmqr.o zunmr2.o zunmr3.o zunmrq.o zunmrz.o \
+ zunmtr.o zupgtr.o \
+ zupmtr.o izmax1.o dzsum1.o zstemr.o \
+ zcgesv.o zcposv.o zlag2c.o clag2z.o zlat2c.o \
+ zhfrk.o ztfttp.o zlanhf.o zpftrf.o zpftri.o zpftrs.o ztfsm.o ztftri.o \
+ ztfttr.o ztpttf.o ztpttr.o ztrttf.o ztrttp.o \
+ zgeequb.o zgbequb.o zsyequb.o zpoequb.o zheequb.o \
+ zbbcsd.o zlapmr.o zunbdb.o zuncsd.o
+
+ZXLASRC = zgesvxx.o zgerfsx.o zla_gerfsx_extended.o zla_geamv.o \
+ zla_gercond_c.o zla_gercond_x.o zla_rpvgrw.o zsysvxx.o zsyrfsx.o \
+ zla_syrfsx_extended.o zla_syamv.o zla_syrcond_c.o zla_syrcond_x.o \
+ zla_syrpvgrw.o zposvxx.o zporfsx.o zla_porfsx_extended.o \
+ zla_porcond_c.o zla_porcond_x.o zla_porpvgrw.o zgbsvxx.o zgbrfsx.o \
+ zla_gbrfsx_extended.o zla_gbamv.o zla_gbrcond_c.o zla_gbrcond_x.o \
+ zla_gbrpvgrw.o zhesvxx.o zherfsx.o zla_herfsx_extended.o \
+ zla_heamv.o zla_hercond_c.o zla_hercond_x.o zla_herpvgrw.o \
+ zla_lin_berr.o zlarscl2.o zlascl2.o zla_wwaddw.o
+
+all: ../$(LAPACKLIB)
+
+ifdef USEXBLAS
+ALLXOBJ=$(SXLASRC) $(DXLASRC) $(CXLASRC) $(ZXLASRC) $(ALLXAUX)
+endif
+
+ALLOBJ=$(SLASRC) $(DLASRC) $(DSLASRC) $(CLASRC) $(ZLASRC) $(ZCLASRC) \
+ $(SCLAUX) $(DZLAUX) $(ALLAUX)
+
+clean:
+ rm -f *.o liblapack*
+
+static: $(ALLOBJ) $(ALLXOBJ)
+ ar ruv liblapack.a $(ALLOBJ)
+ ranlib liblapack.a
+
+shared: $(ALLOBJ) $(ALLXOBJ)
+ cc $(CFLAGS) -shared -Wl,-soname,liblapack.so.3 -o liblapack.so.3.3.0 $(ALLOBJ) -L.. -lblas -lm -lgfortran -lc
+
diff --git a/extra/lapack/PKGBUILD b/extra/lapack/PKGBUILD
new file mode 100644
index 000000000..6781a930e
--- /dev/null
+++ b/extra/lapack/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 108944 2011-02-05 09:11:28Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Jason Taylor <jftaylor21@gmail.com>
+
+pkgbase=lapack
+pkgname=('blas' 'lapack')
+pkgver=3.3.0
+pkgrel=2
+url="http://www.netlib.org/lapack"
+makedepends=('gcc-fortran')
+arch=('i686' 'x86_64')
+license=("custom")
+source=(http://www.netlib.org/${pkgbase}/${pkgbase}-${pkgver}.tgz
+ lapack-3.1.1-make.inc.patch
+ Makefile.blas
+ Makefile.lapack
+ LICENSE.blas)
+md5sums=('84213fca70936cc5f1b59a7b1bf71697'
+ 'cdfcb9d9b162c18d9acbf63c5579ea26'
+ '748440ae656402241d053dadb14425ee'
+ 'aa359e9b7cc717fb1230cfbb4e1d206b'
+ '38b6acb8ed5691d25863319d30a8b365')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ patch -Np1 -i "${srcdir}/lapack-3.1.1-make.inc.patch"
+ cp -f INSTALL/make.inc.gfortran make.inc
+ cp -f "${srcdir}/Makefile.blas" BLAS/SRC/Makefile
+ cp -f "${srcdir}/Makefile.lapack" SRC/Makefile
+
+ export FC=gfortran
+
+ pushd BLAS/SRC
+ make clean
+ FFLAGS="${CFLAGS/-O?/-O0}" make dcabs1.o
+ FFLAGS="${CFLAGS} -fPIC" CFLAGS="${CFLAGS} -fPIC" make shared
+ cp libblas.so.${pkgver} "${srcdir}/${pkgbase}-${pkgver}/"
+ popd
+ ln -s libblas.so.${pkgver} libblas.so
+
+ pushd INSTALL
+ make clean
+ make NOOPT="${CFLAGS/-O?/-O0} -fPIC" OPTS="${CFLAGS} -fPIC"
+ popd
+ # make sure no files with '_', *vxx.o *vfx.o and *2.O as defined in *ASRC
+ # are in OBJS
+ pushd SRC
+ make clean
+
+ make FFLAGS="${CFLAGS} -fPIC" CFLAGS="${CFLAGS} -fPIC" shared
+ cp liblapack.so.${pkgver} "${srcdir}/${pkgbase}-${pkgver}/"
+ popd
+}
+
+package_blas() {
+ pkgdesc="Basic Linear Algebra Subprograms"
+ depends=('gcc-libs')
+ options=('force')
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 "${srcdir}/${pkgbase}-${pkgver}/libblas.so.${pkgver}" \
+ "${pkgdir}/usr/lib/"
+ ln -sf libblas.so.${pkgver} "${pkgdir}/usr/lib/libblas.so"
+ ln -sf libblas.so.${pkgver} "${pkgdir}/usr/lib/libblas.so.3"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/blas"
+ install -m644 "${srcdir}/LICENSE.blas" \
+ "${pkgdir}/usr/share/licenses/blas/LICENSE"
+}
+
+package_lapack() {
+ pkgdesc="Linear Algebra PACKage"
+ depends=("blas=${pkgver}")
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 "${srcdir}/${pkgbase}-${pkgver}/liblapack.so.${pkgver}" \
+ "${pkgdir}/usr/lib/"
+ ln -sf liblapack.so.${pkgver} "${pkgdir}/usr/lib/liblapack.so"
+ ln -sf liblapack.so.${pkgver} "${pkgdir}/usr/lib/liblapack.so.3"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/lapack"
+ install -m644 "${srcdir}/${pkgbase}-${pkgver}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/lapack/"
+}
diff --git a/extra/lapack/lapack-3.1.1-make.inc.patch b/extra/lapack/lapack-3.1.1-make.inc.patch
new file mode 100644
index 000000000..c807ccbf9
--- /dev/null
+++ b/extra/lapack/lapack-3.1.1-make.inc.patch
@@ -0,0 +1,23 @@
+--- lapack-3.1.1/INSTALL/make.inc.gfortran.BAD 2007-05-25 15:34:55.000000000 -0500
++++ lapack-3.1.1/INSTALL/make.inc.gfortran 2007-05-25 15:35:51.000000000 -0500
+@@ -8,7 +8,7 @@ SHELL = /bin/sh
+ #
+ # The machine (platform) identifier to append to the library names
+ #
+-PLAT = _LINUX
++PLAT =
+ #
+ # Modify the FORTRAN and OPTS definitions to refer to the
+ # compiler and desired compiler options for your machine. NOOPT
+@@ -17,9 +17,9 @@ PLAT = _LINUX
+ # desired load options for your machine.
+ #
+ FORTRAN = gfortran
+-OPTS = -O2
++#OPTS = -O2
+ DRVOPTS = $(OPTS)
+-NOOPT = -O0
++NOOPT =
+ LOADER = gfortran
+ LOADOPTS =
+ #
diff --git a/extra/latex2html/PKGBUILD b/extra/latex2html/PKGBUILD
new file mode 100644
index 000000000..74ab7b66e
--- /dev/null
+++ b/extra/latex2html/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 20302 2008-12-02 10:44:29Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+# Contributor: Jason Chu <jason.archlinux.org>
+
+pkgname=latex2html
+pkgver=2008
+pkgrel=1
+pkgdesc="latex2html is a convertor written in Perl that converts LaTeX documents to HTML."
+arch=('i686' 'x86_64')
+url="http://saftsack.fs.uni-bayreuth.de/~latex2ht/"
+depends=('perl' 'ghostscript' 'texlive-core' 'libpng' 'giflib' 'netpbm')
+install=$pkgname.install
+license=('GPL2')
+source=(http://saftsack.fs.uni-bayreuth.de/~latex2ht/current/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=$startdir/pkg/usr \
+ --shlibdir=$startdir/pkg/usr/lib/$pkgname \
+ --with-texpath=$startdir/pkg/usr/share/texmf/tex/latex/html \
+ --enable-wrapper \
+ --enable-gif \
+ --enable-png || return 1
+
+ make || return 1
+ make install || return 1
+
+ find $startdir/pkg/usr -type f -print | while read filename; do
+ if [ ! -z '`grep "$startdir" "$filename"`' ]; then
+ mv $filename $filename.mkpkg
+ sed -e "s#$pkgdir##g" -e "s#$srcdir##g" < $filename.mkpkg > $filename
+ rm $filename.mkpkg
+ fi
+ done
+
+ # move files to FHS location
+ mv $startdir/pkg/usr/cfgcache.pm $startdir/pkg/usr/l2hconf.pm $startdir/pkg/usr/lib/$pkgname/
+
+ # set correct permission on executables
+ chmod 755 $pkgdir/usr/bin/pstoimg \
+ $pkgdir/usr/bin/$pkgname \
+ $pkgdir/usr/bin/texexpand
+
+}
diff --git a/extra/latex2html/latex2html.install b/extra/latex2html/latex2html.install
new file mode 100644
index 000000000..afbeeb50c
--- /dev/null
+++ b/extra/latex2html/latex2html.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo ">>> texlive: updating the filename database..."
+ texconfig-sys rehash
+}
+
+post_upgrade() {
+ echo ">>> texlive: updating the filename database..."
+ texconfig-sys rehash
+}
+
+post_remove() {
+ echo ">>> texlive: updating the filename database..."
+ texconfig-sys rehash
+}
+
diff --git a/extra/latex2rtf/PKGBUILD b/extra/latex2rtf/PKGBUILD
new file mode 100644
index 000000000..9d2e25726
--- /dev/null
+++ b/extra/latex2rtf/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 66768 2010-02-01 11:56:05Z giovanni $
+# Maintainer: Jason Chu <jason@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=latex2rtf
+pkgver=2.0.0
+pkgrel=1
+pkgdesc="LaTeX to RTF converter"
+arch=('i686' 'x86_64')
+url="http://latex2rtf.sourceforge.net/"
+license=('GPL')
+depends=('glibc' 'imagemagick' 'ghostscript')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('39611b6dbb5ce78b48c7695f3fcafb88')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make PREFIX=/usr || return 1
+ make PREFIX=${pkgdir}/usr MAN_INSTALL=${pkgdir}/usr/share/man/man1 install || return 1
+ sed -i -e 's|error "no input file specified"| echo "error: no input file specified"|' ${pkgdir}/usr/bin/latex2png
+}
diff --git a/extra/lbreakout2/PKGBUILD b/extra/lbreakout2/PKGBUILD
new file mode 100644
index 000000000..2744d3bd1
--- /dev/null
+++ b/extra/lbreakout2/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 113510 2011-03-09 01:34:28Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=lbreakout2
+pkgver=2.6.3
+pkgrel=1
+pkgdesc="A breakout game with nice effects, graphics, and sounds"
+arch=('i686' 'x86_64')
+url="http://lgames.sourceforge.net"
+license=('GPL')
+depends=('sdl_mixer' 'libpng')
+backup=('var/games/lbreakout2/lbreakout2.hscr')
+source=(http://downloads.sourceforge.net/lgames/${pkgname}-${pkgver/_/-}.tar.gz
+ lbreakout2.desktop
+ lbreakout2.png)
+md5sums=('43900187bc935475cd6489569cd2230a'
+ '14cd34a72a8f4e3b8f385f9023625241'
+ '94e2fa393eb2a7d4494641dec580573b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+
+ ./configure --prefix=/usr \
+ --localstatedir=/var/games/lbreakout2
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+
+ make DESTDIR=${pkgdir}/ doc_dir=/usr/share/doc install
+
+ chmod -R 755 ${pkgdir}/usr
+ chown root:games ${pkgdir}/var/games
+ chmod 775 ${pkgdir}/var/games
+ chown root:games ${pkgdir}/var/games/lbreakout2
+ chmod 755 ${pkgdir}/var/games/lbreakout2
+ chown root:games ${pkgdir}/var/games/lbreakout2/lbreakout2.hscr
+ chmod 775 ${pkgdir}/var/games/lbreakout2/lbreakout2.hscr
+
+ install -Dm644 ${srcdir}/lbreakout2.png ${pkgdir}/usr/share/pixmaps/lbreakout2.png
+ install -Dm644 ${srcdir}/lbreakout2.desktop ${pkgdir}/usr/share/applications/lbreakout2.desktop
+}
diff --git a/extra/lbreakout2/lbreakout2.desktop b/extra/lbreakout2/lbreakout2.desktop
new file mode 100644
index 000000000..c8ef945da
--- /dev/null
+++ b/extra/lbreakout2/lbreakout2.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+Name=Linux Breakout 2
+Comment=Breakout and Arkanoid style arcade game
+Icon=/usr/share/pixmaps/lbreakout2.png
+TryExec=lbreakout2
+Exec=lbreakout2
+Terminal=false
+Categories=Application;Game;
diff --git a/extra/lbreakout2/lbreakout2.png b/extra/lbreakout2/lbreakout2.png
new file mode 100644
index 000000000..f9541e184
--- /dev/null
+++ b/extra/lbreakout2/lbreakout2.png
Binary files differ
diff --git a/extra/lcab/PKGBUILD b/extra/lcab/PKGBUILD
new file mode 100644
index 000000000..bebea4c52
--- /dev/null
+++ b/extra/lcab/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 68001 2010-02-10 12:31:34Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lcab
+pkgver=1.0b12
+pkgrel=2
+pkgdesc="A program to make Microsoft cabinet files"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://freshmeat.net/projects/lcab/"
+depends=('glibc')
+source=(ftp://ftp.archlinux.org/other/${pkgname}/$pkgname-$pkgver.tar.gz)
+md5sums=('9403e08f53fcf262e25641a9b900d4de')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make || return 1
+ install -D -m755 lcab "${pkgdir}/usr/bin/lcab" || return 1
+}
diff --git a/extra/lcms/PKGBUILD b/extra/lcms/PKGBUILD
new file mode 100644
index 000000000..effc73c13
--- /dev/null
+++ b/extra/lcms/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 87526 2010-08-15 13:47:09Z ibiru $
+# Maintainer: Tobias Kieslich <neri@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=lcms
+pkgver=1.19
+pkgrel=1
+pkgdesc="Lightweight color management development library/engine"
+arch=(i686 x86_64)
+license=('custom')
+depends=('libtiff>=3.9.4')
+url="http://www.littlecms.com"
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8af94611baf20d9646c7c2c285859818')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+ install -Dm 644 COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/leafpad/PKGBUILD b/extra/leafpad/PKGBUILD
new file mode 100644
index 000000000..179133ff4
--- /dev/null
+++ b/extra/leafpad/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 110473 2011-02-19 16:41:59Z ibiru $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=leafpad
+pkgver=0.8.18.1
+pkgrel=2
+pkgdesc="A notepad clone for GTK+ 2.0"
+arch=('i686' 'x86_64')
+url="http://tarot.freeshell.org/leafpad/"
+license=('GPL')
+depends=('gtk2' 'desktop-file-utils')
+makedepends=('intltool')
+install=leafpad.install
+source=(http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('254a72fc67505e3aa52884c729cd7b97')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-chooser
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ echo 'StartupNotify=true' >> "${pkgdir}/usr/share/applications/leafpad.desktop"
+}
diff --git a/extra/leafpad/leafpad.install b/extra/leafpad/leafpad.install
new file mode 100644
index 000000000..4d4a283db
--- /dev/null
+++ b/extra/leafpad/leafpad.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/lensfun/PKGBUILD b/extra/lensfun/PKGBUILD
new file mode 100644
index 000000000..965b46875
--- /dev/null
+++ b/extra/lensfun/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 81449 2010-05-30 16:39:15Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=lensfun
+pkgver=0.2.5
+pkgrel=1
+pkgdesc="Database of photographic lenses and a library that allows advanced access to the database"
+arch=(i686 x86_64)
+url="http://lensfun.berlios.de/"
+license=('LGPL3')
+depends=('glibc' 'glib2')
+makedepends=('python' 'libpng')
+source=(http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib || return 1
+ make all || return 1
+ make INSTALL_PREFIX="$pkgdir" install || return 1
+}
+md5sums=('a10438dffae68a5988fc54b0393a3755')
diff --git a/extra/lensfun/lensfun-0.2.3-as-needed.patch b/extra/lensfun/lensfun-0.2.3-as-needed.patch
new file mode 100644
index 000000000..12287dba2
--- /dev/null
+++ b/extra/lensfun/lensfun-0.2.3-as-needed.patch
@@ -0,0 +1,13 @@
+diff -ru lensfun-0.2.3.orig/build/mak/compiler/gcc.mak lensfun-0.2.3/build/mak/compiler/gcc.mak
+--- lensfun-0.2.3.orig/build/mak/compiler/gcc.mak 2009-03-15 02:42:40.000000000 +0100
++++ lensfun-0.2.3/build/mak/compiler/gcc.mak 2009-03-15 02:43:37.000000000 +0100
+@@ -71,7 +71,7 @@
+ endef
+
+ LINK.GCC.AR = $(GCC.AR) $(GCC.ARFLAGS) $@ $^
+-LINK.GCC.EXEC = $(GCC.LD) -o $@ $(GCC.LDFLAGS) $(LDFLAGS) $1 $^ $(GCC.LDFLAGS.LIBS) $(LDFLAGS.LIBS) $2
++LINK.GCC.EXEC = $(GCC.LD) $(LDFLAGS) $^ $2 $(GCC.LDFLAGS.LIBS) $(LDFLAGS.LIBS) $(GCC.LDFLAGS) $1 -o $@
+ define LINK.GCC.SO
+ $(GCC.LD) -o $@.$(SHARED.$3) -Wl,"-soname=$(notdir $@).$(basename $(basename $(SHARED.$3)))" $(GCC.LDFLAGS.SHARED) $(GCC.LDFLAGS) $(LDFLAGS) $1 $^ $(GCC.LDFLAGS.LIBS) $(LDFLAGS.LIBS) $2
+ ln -fs $(notdir $@.$(SHARED.$3)) $@.$(basename $(basename $(SHARED.$3)))
+Only in lensfun-0.2.3/out/posix/release: deps
diff --git a/extra/lensfun/lensfun-0.2.3-glibc-2.10.patch b/extra/lensfun/lensfun-0.2.3-glibc-2.10.patch
new file mode 100644
index 000000000..41a29563a
--- /dev/null
+++ b/extra/lensfun/lensfun-0.2.3-glibc-2.10.patch
@@ -0,0 +1,11 @@
+--- lensfun-0.2.3.orig/tools/makedep/cppsetup.cpp 2009-07-04 21:20:49.000000000 +0200
++++ lensfun-0.2.3/tools/makedep/cppsetup.cpp 2009-07-04 22:19:18.000000000 +0200
+@@ -195,7 +195,7 @@
+ }
+ while (s);
+
+- eol = strchr (var, 0);
++ eol = (char *)strchr (var, 0);
+
+ // Skip parentheses which Microsoft likes so much
+ if (*var == '(')
diff --git a/extra/lesstif/040_fedora_XxxxProperty-64bit.diff b/extra/lesstif/040_fedora_XxxxProperty-64bit.diff
new file mode 100644
index 000000000..6149877fc
--- /dev/null
+++ b/extra/lesstif/040_fedora_XxxxProperty-64bit.diff
@@ -0,0 +1,20 @@
+Description: Copy/paste segfaults on i386
+Forwarded: yes
+Author: Hans de Goede <hdegoede@redhat.com>
+diff -up lesstif-0.95.2/lib/Xm-2.1/CutPaste.c.long64 lesstif-0.95.2/lib/Xm-2.1/CutPaste.c
+--- lesstif-0.95.2/lib/Xm-2.1/CutPaste.c.long64 2007-09-12 22:05:58.000000000 +0200
++++ lesstif-0.95.2/lib/Xm-2.1/CutPaste.c 2009-07-28 11:32:20.000000000 +0200
+@@ -1028,9 +1028,11 @@ _XmClipboardReplaceItem(Display *display
+ /* XChangeProperty expects a buffer of longs when receiving 32 bits
+ data, MEUHH */
+ if (sizeof(long) != 4)
++ {
+ convert_buf = XtMalloc(len * sizeof(long));
+- for (i = 0; i < len; i++)
+- convert_buf[i] = data[i];
++ for (i = 0; i < len; i++)
++ convert_buf[i] = data[i];
++ }
+ break;
+
+ case 16:
diff --git a/extra/lesstif/ChangeLog b/extra/lesstif/ChangeLog
new file mode 100644
index 000000000..c600228c3
--- /dev/null
+++ b/extra/lesstif/ChangeLog
@@ -0,0 +1,19 @@
+2010-01-05 Eric Belanger <eric@archlinux.org>
+
+ * lesstif 0.95.2-2
+ * Fixed segmentation fault when doing copy/paste on i686 (close FS#17712)
+
+2009-12-30 Eric Belanger <eric@archlinux.org>
+
+ * lesstif 0.95.2-1
+ * Upstream update
+ * Added docs
+
+2008-12-08 Eric Belanger <eric@archlinux.org>
+
+ * lesstif 0.95.0-3
+ * Added license
+ * Updated options syntax
+ * Added url
+ * FHS man pages
+ * Added ChangeLog
diff --git a/extra/lesstif/LICENSE b/extra/lesstif/LICENSE
new file mode 100644
index 000000000..1f5a0a138
--- /dev/null
+++ b/extra/lesstif/LICENSE
@@ -0,0 +1,26 @@
+/*****************************************************************************/
+/** Copyright 1988 by Evans & Sutherland Computer Corporation, **/
+/** Salt Lake City, Utah **/
+/** Portions Copyright 1989 by the Massachusetts Institute of Technology **/
+/** Cambridge, Massachusetts **/
+/** **/
+/** All Rights Reserved **/
+/** **/
+/** Permission to use, copy, modify, and distribute this software and **/
+/** its documentation for any purpose and without fee is hereby **/
+/** granted, provided that the above copyright notice appear in all **/
+/** copies and that both that copyright notice and this permis- **/
+/** sion notice appear in supporting documentation, and that the **/
+/** names of Evans & Sutherland and M.I.T. not be used in advertising **/
+/** in publicity pertaining to distribution of the software without **/
+/** specific, written prior permission. **/
+/** **/
+/** EVANS & SUTHERLAND AND M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD **/
+/** TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT- **/
+/** ABILITY AND FITNESS, IN NO EVENT SHALL EVANS & SUTHERLAND OR **/
+/** M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAM- **/
+/** AGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA **/
+/** OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER **/
+/** TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE **/
+/** OR PERFORMANCE OF THIS SOFTWARE. **/
+/*****************************************************************************/
diff --git a/extra/lesstif/PKGBUILD b/extra/lesstif/PKGBUILD
new file mode 100644
index 000000000..be09dc29f
--- /dev/null
+++ b/extra/lesstif/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 62257 2010-01-05 21:48:01Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=lesstif
+pkgver=0.95.2
+pkgrel=2
+pkgdesc="LGPL'd re-implementation of Motif"
+arch=('i686' 'x86_64')
+url="http://www.lesstif.org/"
+license=('LGPL' 'MIT')
+depends=('freetype2' 'libxt' 'libxp')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2 \
+ LICENSE 040_fedora_XxxxProperty-64bit.diff)
+md5sums=('754187dbac09fcf5d18296437e72a32f' 'b1f320192a9154f72d83e9d3d5a25a2f'\
+ '30e2c0babc84696af089d55cb9cb2908')
+sha1sums=('b894e544d529a235a6a665d48ca94a465f44a4e5' '5d7f38555417cb617d7d5b7e41a93af8430dc638'\
+ '85412aba25058110db8da99da4a2c5ab44330467')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../040_fedora_XxxxProperty-64bit.diff || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man --docdir=/usr/share/doc \
+ --enable-production --enable-nonstandard-conversions --enable-editres \
+ --with-xdnd --enable-build-21 --disable-debug --enable-static || return 1
+
+# fix linkage against already installed version
+ perl -pi -e 's/^(hardcode_into_libs)=.*/$1=no/' libtool || return 1
+
+ make || return 1
+
+# fix linkage against already installed version
+ for f in `find . -name \*.la -type f` ; do
+ perl -pi -e 's/^(relink_command=.*)/# $1/' $f || return 1
+ done
+
+ make -C lib/Mrm-2.1 || return 1
+ make -C lib/Mrm-2.1 DESTDIR="${pkgdir}" install || return 1
+ make appdir=/usr/share/X11/app-defaults rootdir=/usr/share/LessTif DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/lftp/PKGBUILD b/extra/lftp/PKGBUILD
new file mode 100644
index 000000000..93d62cd5c
--- /dev/null
+++ b/extra/lftp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117281 2011-03-30 16:49:02Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=lftp
+pkgver=4.2.1
+pkgrel=1
+pkgdesc="Sophisticated command line based FTP client"
+arch=('i686' 'x86_64')
+license=('GPL3')
+depends=('gcc-libs' 'readline>=6.0' "gnutls>=2.8.6" "expat>=2.0.1-4" 'sh')
+optdepends=('perl: needed for convert-netscape-cookies and verify-file')
+makedepends=('autoconf')
+url="http://lftp.yar.ru/"
+backup=('etc/lftp.conf')
+source=(http://ftp.yars.free.net/pub/source/lftp/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('244c52690afbc2bdb6ec6af9496434b3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --with-gnutls \
+ --without-openssl --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/lib
+} \ No newline at end of file
diff --git a/extra/libao/PKGBUILD b/extra/libao/PKGBUILD
new file mode 100644
index 000000000..8107c96b2
--- /dev/null
+++ b/extra/libao/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 110917 2011-02-23 07:11:30Z schiv $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=libao
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="A cross-platform audio output library and plugins"
+url="http://www.xiph.org/ao"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc' 'alsa-lib')
+makedepends=('libpulse')
+backup=('etc/libao.conf')
+options=('!libtool')
+conflicts=('libao-pulse')
+provides=('libao-pulse=$pkgver-$pkgrel')
+replaces=('libao-pulse')
+source=("http://downloads.xiph.org/releases/ao/${pkgname}-${pkgver}.tar.gz"
+ 'libao.conf')
+md5sums=('2b2508c29bc97e4dc218fa162cf883c8'
+ '3ae8f3e3f1492210b3519af0f1f3c572')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --enable-alsa09-mmap \
+ --enable-pulseaudio
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # Add conf file
+ install -Dm644 "$srcdir/libao.conf" "$pkgdir/etc/libao.conf"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/libao/libao.conf b/extra/libao/libao.conf
new file mode 100644
index 000000000..c4eb5cdc3
--- /dev/null
+++ b/extra/libao/libao.conf
@@ -0,0 +1 @@
+default_driver=alsa
diff --git a/extra/libart-lgpl/PKGBUILD b/extra/libart-lgpl/PKGBUILD
new file mode 100644
index 000000000..c7cdbfeac
--- /dev/null
+++ b/extra/libart-lgpl/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 75440 2010-04-01 15:34:56Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libart-lgpl
+pkgver=2.3.21
+pkgrel=1
+pkgdesc="A library for high-performance 2D graphics"
+url="http://www.levien.com/libart/"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('glibc')
+source=(http://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/libart_lgpl-${pkgver}.tar.bz2)
+options=('!libtool')
+sha256sums=('fdc11e74c10fc9ffe4188537e2b370c0abacca7d89021d4d303afdf7fd7476fa')
+
+build() {
+ cd ${startdir}/src/libart_lgpl-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+}
diff --git a/extra/libart-lgpl/art_misc.h-cplusplus.patch b/extra/libart-lgpl/art_misc.h-cplusplus.patch
new file mode 100644
index 000000000..dea8eb0a0
--- /dev/null
+++ b/extra/libart-lgpl/art_misc.h-cplusplus.patch
@@ -0,0 +1,35 @@
+Index: art_misc.h
+===================================================================
+--- art_misc.h (revision 277)
++++ art_misc.h (working copy)
+@@ -34,9 +34,15 @@
+ #include <libart_lgpl/art_config.h>
+ #endif
+
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void *art_alloc(size_t size);
+ void art_free(void *ptr);
+ void *art_realloc(void *ptr, size_t size);
++#ifdef __cplusplus
++}
++#endif /* __cplusplus */
+
+ /* These aren't, strictly speaking, configuration macros, but they're
+ damn handy to have around, and may be worth playing with for
+Index: ChangeLog
+===================================================================
+--- ChangeLog (revision 277)
++++ ChangeLog (working copy)
+@@ -1,3 +1,10 @@
++2007-03-01 Frederic Crozat <fcrozat@mandriva.com>
++
++ reviewed by: Dom Lachowicz <cinamod@hotmail.com>
++
++ * art_misc.h: Fix header when included in C++.
++ Patch from Goetz Waschk and Laurent Montel.
++
+ 2007-02-28 Kjartan Maraas <kmaraas@gnome.org>
+
+ configure.in: Release 2.3.19
diff --git a/extra/libass/PKGBUILD b/extra/libass/PKGBUILD
new file mode 100644
index 000000000..7de827fb1
--- /dev/null
+++ b/extra/libass/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 87470 2010-08-13 22:22:30Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: G_Syme <demichan(at)mail(dot)upb(dot)de>
+
+pkgname=libass
+pkgver=0.9.11
+pkgrel=1
+pkgdesc="A portable library for SSA/ASS subtitles rendering"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/libass/"
+license=('GPL')
+depends=('enca' 'fontconfig' 'libpng')
+makedepends=('pkgconfig')
+options=(!libtool)
+source=(http://libass.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f9042884397002ba40aa89dc7d34f59f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libassuan/PKGBUILD b/extra/libassuan/PKGBUILD
new file mode 100644
index 000000000..468f2b6a3
--- /dev/null
+++ b/extra/libassuan/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 87326 2010-08-12 11:59:25Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libassuan
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="A IPC library used by some GnuPG related software"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnupg.org/related_software/libassuan"
+depends=('libgpg-error')
+options=('!libtool')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('53a7d4c22af909d7236d17d454ef935b')
diff --git a/extra/libasyncns/ChangeLog b/extra/libasyncns/ChangeLog
new file mode 100644
index 000000000..132d6f874
--- /dev/null
+++ b/extra/libasyncns/ChangeLog
@@ -0,0 +1,13 @@
+2010-02-10 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.8
+
+2009-01-17 Corrado Primier <bardo@aur.archlinux.org>
+
+ * Version bump: 0.7
+
+ * PKGBUILD: moved to $srcdir/$pkgdir syntax
+
+2007-06-20 Georg Grabler <ggrabler@gmail.com>
+
+ * Updated to 0.3
diff --git a/extra/libasyncns/PKGBUILD b/extra/libasyncns/PKGBUILD
new file mode 100644
index 000000000..06ac6eaac
--- /dev/null
+++ b/extra/libasyncns/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 99900 2010-11-19 13:00:38Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=libasyncns
+pkgver=0.8
+pkgrel=3
+pkgdesc="A C library for Linux/Unix for executing name service queries asynchronously"
+arch=('i686' 'x86_64')
+url="http://0pointer.de/lennart/projects/libasyncns"
+license=('LGPL')
+options=('!libtool')
+depends=('glibc')
+source=(http://0pointer.de/lennart/projects/libasyncns/${pkgname}-${pkgver}.tar.gz)
+md5sums=('1f553d6ce1ad255bc83b3d8e9384f515')
+
+build() {
+ cd ${srcdir}/libasyncns-${pkgver}
+ ./configure --prefix=/usr --disable-lynx
+ make
+}
+
+package() {
+ cd ${srcdir}/libasyncns-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libatasmart/PKGBUILD b/extra/libatasmart/PKGBUILD
new file mode 100644
index 000000000..14e28f409
--- /dev/null
+++ b/extra/libatasmart/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 56826 2009-10-28 08:21:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libatasmart
+pkgver=0.17
+pkgrel=1
+pkgdesc="ATA S.M.A.R.T. Reading and Parsing Library"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('udev>=146')
+url="http://0pointer.de/blog/projects/being-smart.html"
+options=(!libtool)
+source=(http://0pointer.de/public/${pkgname}-${pkgver}.tar.gz)
+md5sums=('dc36cadbbb7fa38f8af175713eda1a21')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libavc1394/PKGBUILD b/extra/libavc1394/PKGBUILD
new file mode 100644
index 000000000..1a359f48d
--- /dev/null
+++ b/extra/libavc1394/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 37800 2009-05-03 21:23:26Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=libavc1394
+pkgver=0.5.3
+pkgrel=3
+pkgdesc="A library to control A/V devices using the 1394ta AV/C commands."
+arch=("i686" "x86_64")
+url="http://sourceforge.net/projects/libavc1394/"
+license=('LGPL')
+depends=('libraw1394>=2.0.2')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/libavc1394/${pkgname}-${pkgver}.tar.gz)
+md5sums=('09e30b1fb5ae455b6d8407e457a711a3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libbeagle/PKGBUILD b/extra/libbeagle/PKGBUILD
new file mode 100644
index 000000000..699fe639f
--- /dev/null
+++ b/extra/libbeagle/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 89703 2010-09-03 11:38:40Z remy $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=libbeagle
+pkgver=0.3.9
+pkgrel=2
+pkgdesc="Beagle desktop search client library"
+arch=(i686 x86_64)
+url="http://www.gnome.org/projects/beagle/"
+license=('custom')
+depends=('glib2>=2.20.0' 'libxml2>=2.7.3')
+makedepends=('pkgconfig' 'pygtk')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('af1e25bdfb704ee87047bc49a73fbb10')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/libbeagle"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/libbeagle/" || return 1
+}
diff --git a/extra/libbluedevil/PKGBUILD b/extra/libbluedevil/PKGBUILD
new file mode 100644
index 000000000..fd648a9ae
--- /dev/null
+++ b/extra/libbluedevil/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 116725 2011-03-25 15:32:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libbluedevil
+pkgver=1.8.1
+pkgrel=1
+pkgdesc='A Qt wrapper for bluez used in the new KDE bluetooth stack'
+arch=('i686' 'x86_64')
+url="https://projects.kde.org/projects/playground/libs/libbluedevil"
+license=('GPL')
+depends=('qt' 'bluez')
+makedepends=('cmake')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4534b5d254b15e3884c4e51dfdf586b7')
+
+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/extra/libbonobo/PKGBUILD b/extra/libbonobo/PKGBUILD
new file mode 100644
index 000000000..abfb2a186
--- /dev/null
+++ b/extra/libbonobo/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117617 2011-04-04 13:06:43Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libbonobo
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="A set of language and system independant CORBA interfaces for creating reusable components"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('orbit2' 'libxml2' 'glib2')
+makedepends=('intltool' 'pkgconfig' 'flex')
+options=('!libtool')
+backup=('etc/bonobo-activation/bonobo-activation-config.xml')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/libbonobo/2.32/libbonobo-${pkgver}.tar.bz2
+ bonobo-activation-config.xml)
+install=libbonobo.install
+sha256sums=('9160d4f277646400d3bb6b4fa73636cc6d1a865a32b9d0760e1e9e6ee624976b'
+ '081de245c42de10ebeea3cbcd819c5ce5d0a15b9bdde9c2098302b1e14965af2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/bonobo
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m644 "${srcdir}/bonobo-activation-config.xml" "${pkgdir}/etc/bonobo-activation/"
+}
diff --git a/extra/libbonobo/bonobo-activation-config.xml b/extra/libbonobo/bonobo-activation-config.xml
new file mode 100644
index 000000000..3db19f790
--- /dev/null
+++ b/extra/libbonobo/bonobo-activation-config.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+
+<oafconfig>
+
+<searchpath>
+ <!-- Examples: -->
+ <item>/usr/lib/bonobo/servers</item>
+ <!-- <item>/usr/local/gnome2/lib/bonobo/servers</item> -->
+ <!-- <item>/usr/local/lib/bonobo/servers</item> -->
+ <!-- <item>/opt/gnome2/bonobo-activation/lib/bonobo/servers</item> -->
+</searchpath>
+
+</oafconfig>
diff --git a/extra/libbonobo/libbonobo.install b/extra/libbonobo/libbonobo.install
new file mode 100644
index 000000000..5cc04eba8
--- /dev/null
+++ b/extra/libbonobo/libbonobo.install
@@ -0,0 +1,7 @@
+post_upgrade() {
+ ldconfig -r .
+ PID=`pidof bonobo-activation-server`
+ if [ ! -z "${PID}" ]; then
+ killall -HUP bonobo-activation-server 2>&1
+ fi
+}
diff --git a/extra/libbonoboui/PKGBUILD b/extra/libbonoboui/PKGBUILD
new file mode 100644
index 000000000..ef75ec844
--- /dev/null
+++ b/extra/libbonoboui/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 117635 2011-04-04 14:22:52Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libbonoboui
+pkgver=2.24.5
+pkgrel=1
+pkgdesc="User Interface library for Bonobo"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('libgnomecanvas' 'libgnome')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.24/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('fab5f2ac6c842d949861c07cb520afe5bee3dce55805151ce9cd01be0ec46fcd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/share/applications/bonobo-browser.desktop"
+}
diff --git a/extra/libbtctl/PKGBUILD b/extra/libbtctl/PKGBUILD
new file mode 100644
index 000000000..e81cb690e
--- /dev/null
+++ b/extra/libbtctl/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 59225 2009-11-21 15:31:57Z giovanni $
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=libbtctl
+pkgver=0.11.1
+pkgrel=1
+pkgdesc="GObject wrapper for Bluetooth functionality."
+arch=('i686' 'x86_64')
+url="http://www.usefulinc.com/software/gnome-bluetooth/"
+license=('GPL' 'LGPL')
+depends=('glib2' 'openobex' 'bluez')
+makedepends=('intltool' 'python' 'gtk2')
+options=('!libtool' '!makeflags')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.11/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('5b5ab9e71dd5428c4e5c45cbf581a384')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-gtk-doc \
+ --disable-mono --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libburn/PKGBUILD b/extra/libburn/PKGBUILD
new file mode 100644
index 000000000..d3c776324
--- /dev/null
+++ b/extra/libburn/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114274 2011-03-12 06:54:15Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libburn
+pkgver=1.0.4.pl00
+pkgrel=1
+pkgdesc="Library for reading, mastering and writing optical discs"
+arch=('i686' 'x86_64')
+url="http://libburnia.pykix.org/"
+license=('GPL')
+depends=('glibc')
+source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool' '!emptydirs')
+md5sums=('edc117aa6d02a19c5aafe30d95df5e80')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver/.pl??/}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver/.pl??/}
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/extra/libcaca/PKGBUILD b/extra/libcaca/PKGBUILD
new file mode 100644
index 000000000..65485d162
--- /dev/null
+++ b/extra/libcaca/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 71245 2010-03-05 16:17:11Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libcaca
+pkgver=0.99.beta17
+pkgrel=1
+pkgdesc="Color AsCii Art library"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://libcaca.zoy.org/"
+depends=('imlib2' 'ncurses>=5.7')
+options=(!libtool !emptydirs)
+source=(http://libcaca.zoy.org/files/libcaca/${pkgname}-${pkgver}.tar.gz)
+md5sums=('790d6e26b7950e15909fdbeb23a7ea87')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --enable-shared --disable-doc \
+ --disable-cxx --disable-gl --disable-csharp || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libcanberra/PKGBUILD b/extra/libcanberra/PKGBUILD
new file mode 100644
index 000000000..a563255b2
--- /dev/null
+++ b/extra/libcanberra/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 13455 2008-09-27 11:03:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libcanberra
+pkgname=(libcanberra libcanberra-pulse)
+pkgver=0.26
+pkgrel=3
+pkgdesc="A small and lightweight implementation of the XDG Sound Theme Specification"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libvorbis>=1.3.1' 'gstreamer0.10>=0.10.30' 'libtool>=2.2.10' 'gtk2>=2.21.8' 'alsa-lib>=1.0.23' 'tdb>=1.2.1')
+makedepends=('gtk-doc' 'libpulse')
+options=(!emptydirs)
+url=http://0pointer.de/lennart/projects/libcanberra
+source=(http://0pointer.de/lennart/projects/${pkgbase}/${pkgbase}-${pkgver}.tar.gz
+ libcanberra-gtk-module.sh)
+md5sums=('ee2c66ada7c851a4e7b6eb1682285a24'
+ 'a54799e624aac814b9343ab05f25c38b')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var \
+ --disable-static --with-builtin=dso --enable-null --disable-oss \
+ --enable-alsa --enable-gstreamer --enable-pulse
+ make
+}
+
+package_libcanberra() {
+ install=libcanberra.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -j1 DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/lib/libcanberra-gtk.la"
+ rm -f "${pkgdir}/usr/lib/gtk-2.0/modules/"*.la
+
+ install -m755 -d "${pkgdir}/usr/share/gconf"
+ mv "${pkgdir}/etc/gconf/schemas" "${pkgdir}/usr/share/gconf/"
+
+ install -m755 -d "${pkgdir}/etc/X11/xinit/xinitrc.d"
+ install -m755 "${srcdir}/libcanberra-gtk-module.sh" "${pkgdir}/etc/X11/xinit/xinitrc.d/40-libcanberra-gtk-module"
+
+ # Split libcanberra-pulse
+ mkdir pulse-plugin
+ mv "${pkgdir}"/usr/lib/${pkgbase}-${pkgver}/${pkgbase}-pulse.* pulse-plugin
+}
+
+package_libcanberra-pulse() {
+ pkgdesc="PulseAudio plugin for libcanberra"
+ depends=("$pkgbase=$pkgver-$pkgrel" 'libpulse')
+ groups=('pulseaudio-gnome')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ mkdir -p "${pkgdir}/usr/lib/${pkgbase}-${pkgver}"
+ mv pulse-plugin/* "${pkgdir}/usr/lib/${pkgbase}-${pkgver}"
+}
+
diff --git a/extra/libcanberra/libcanberra-gtk-module.sh b/extra/libcanberra/libcanberra-gtk-module.sh
new file mode 100644
index 000000000..fbb7ff783
--- /dev/null
+++ b/extra/libcanberra/libcanberra-gtk-module.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+if [ -z "$GTK_MODULES" ] ; then
+ GTK_MODULES="canberra-gtk-module"
+else
+ GTK_MODULES="$GTK_MODULES:canberra-gtk-module"
+fi
+
+export GTK_MODULES
+
diff --git a/extra/libcanberra/libcanberra.install b/extra/libcanberra/libcanberra.install
new file mode 100644
index 000000000..7f5012199
--- /dev/null
+++ b/extra/libcanberra/libcanberra.install
@@ -0,0 +1,23 @@
+pkgname=libcanberra
+
+post_install() {
+ if [ -x usr/sbin/gconfpkg ]; then
+ usr/sbin/gconfpkg --install ${pkgname}
+ fi
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ pre_remove
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if [ -x usr/sbin/gconfpkg ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
diff --git a/extra/libcdaudio/01-cddb-bufferoverflow.patch b/extra/libcdaudio/01-cddb-bufferoverflow.patch
new file mode 100644
index 000000000..0a4449717
--- /dev/null
+++ b/extra/libcdaudio/01-cddb-bufferoverflow.patch
@@ -0,0 +1,15 @@
+Author: Moritz Muehlenhoff <jmm@inutil.org>
+Description: CAN-2005-0706: Bufferoverflow in CDDB lookup parsing
+
+diff -Naurp libcdaudio.orig/src/cddb.c libcdaudio/src/cddb.c
+--- libcdaudio.orig/src/cddb.c 2009-08-02 10:30:05.000000000 +0000
++++ libcdaudio/src/cddb.c 2009-08-02 10:34:57.000000000 +0000
+@@ -1052,7 +1052,7 @@ cddb_query(int cd_desc, int sock,
+ }
+
+ query->query_matches = 0;
+- while(!cddb_read_line(sock, inbuffer, 256)) {
++ while(query->query_matches < MAX_INEXACT_MATCHES && !cddb_read_line(sock, inbuffer, 256)) {
+ slashed = 0;
+ if(strchr(inbuffer, '/') != NULL && parse_disc_artist) {
+ index = 0;
diff --git a/extra/libcdaudio/02-cddb-bufferoverflow.patch b/extra/libcdaudio/02-cddb-bufferoverflow.patch
new file mode 100644
index 000000000..b5422735c
--- /dev/null
+++ b/extra/libcdaudio/02-cddb-bufferoverflow.patch
@@ -0,0 +1,15 @@
+Author: Moritz Muehlenhoff <jmm@inutil.org>
+Description: CVE-2008-5030
+
+diff -Naurp libcdaudio.orig/src/cddb.c libcdaudio/src/cddb.c
+--- libcdaudio.orig/src/cddb.c 2008-09-07 23:53:16.000000000 +0000
++++ libcdaudio/src/cddb.c 2008-11-12 21:32:21.000000000 +0000
+@@ -1679,7 +1679,7 @@ cddb_read_disc_data(int cd_desc, struct
+ free(file);
+
+ while(!feof(cddb_data)) {
+- fgets(inbuffer, 512, cddb_data);
++ fgets(inbuffer, 256, cddb_data);
+ cddb_process_line(inbuffer, data);
+ }
+
diff --git a/extra/libcdaudio/PKGBUILD b/extra/libcdaudio/PKGBUILD
new file mode 100644
index 000000000..64159d23e
--- /dev/null
+++ b/extra/libcdaudio/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 87596 2010-08-17 10:23:02Z jgc $
+# Maintainer:
+# Contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libcdaudio
+pkgver=0.99.12
+pkgrel=5
+pkgdesc="Library for controlling Audio CDs and interacting with CDDB"
+arch=('i686' 'x86_64')
+url="http://libcdaudio.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/libcdaudio/${pkgname}-${pkgver}.tar.gz
+ 01-cddb-bufferoverflow.patch
+ 02-cddb-bufferoverflow.patch)
+md5sums=('63b49cf14d53eed31e7a87cca17a3963'
+ 'f78c881b92cd7d25472daa90af284e18'
+ 'e36755c125d2710dc8619bb401e37444')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/01-cddb-bufferoverflow.patch"
+ patch -Np1 -i "${srcdir}/02-cddb-bufferoverflow.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libcddb/PKGBUILD b/extra/libcddb/PKGBUILD
new file mode 100644
index 000000000..1c9ae521e
--- /dev/null
+++ b/extra/libcddb/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 78167 2010-04-20 00:31:41Z dgriffiths $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libcddb
+pkgver=1.3.2
+pkgrel=2
+pkgdesc="Library that implements the different protocols (CDDBP, HTTP, SMTP) to access data on a CDDB server (e.g. http://freedb.org)."
+arch=('i686' 'x86_64')
+license=('LGPL')
+options=('!libtool')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+url="http://sourceforge.net/projects/libcddb/"
+md5sums=('8bb4a6f542197e8e9648ae597cd6bc8a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libcdio/PKGBUILD b/extra/libcdio/PKGBUILD
new file mode 100644
index 000000000..4c309a65e
--- /dev/null
+++ b/extra/libcdio/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 59886 2009-11-29 15:21:53Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=libcdio
+pkgver=0.82
+pkgrel=1
+pkgdesc="GNU Compact Disc Input and Control Library"
+arch=("i686" "x86_64")
+license=('GPL3')
+url="http://www.gnu.org/software/libcdio/"
+depends=('gcc-libs>=4.4.2' 'libcddb' 'ncurses')
+options=('!libtool')
+install=libcdio.install
+source=(http://ftp.gnu.org/gnu/libcdio/${pkgname}-${pkgver}.tar.gz)
+md5sums=('1c29b18e01ab2b966162bc727bf3c360')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-vcd-info --enable-cpp-progs || return 1
+ make || return 1
+ make -j1 DESTDIR="${pkgdir}" install || return 1
+ #install -m644 libcdio_paranoia.pc libcdio_cdda.pc \
+ # "${pkgdir}/usr/lib/pkgconfig/" || return 1
+}
diff --git a/extra/libcdio/libcdio.install b/extra/libcdio/libcdio.install
new file mode 100644
index 000000000..33a4e1ace
--- /dev/null
+++ b/extra/libcdio/libcdio.install
@@ -0,0 +1,13 @@
+info_dir=/usr/share/info
+
+post_install() {
+ install-info ${info_dir}/libcdio.info.gz ${info_dir}/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete ${info_dir}/libcdio.info.gz ${info_dir}/dir 2> /dev/null
+}
diff --git a/extra/libchamplain/PKGBUILD b/extra/libchamplain/PKGBUILD
new file mode 100644
index 000000000..8580e7e96
--- /dev/null
+++ b/extra/libchamplain/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 106959 2011-01-19 21:31:11Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Michael Kanis <mkanis@gmx.de>
+
+pkgname=libchamplain
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="C library aimed to provide a Gtk+ widget to display rasterized maps"
+url="http://projects.gnome.org/libchamplain/"
+license=('LGPL')
+arch=('i686' 'x86_64')
+replaces=('libchamplain-gtk')
+options=('!libtool')
+depends=('clutter-gtk>=0.10.8' 'libsoup' 'cairo>=1.8' 'sqlite3')
+makedepends=('gobject-introspection')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/0.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4490dca0c099cac47ed93796d5bd79fd')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libchewing/PKGBUILD b/extra/libchewing/PKGBUILD
new file mode 100644
index 000000000..d1ee325e4
--- /dev/null
+++ b/extra/libchewing/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 111534 2011-02-27 15:03:24Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: whisky <archlinux.cle(at)gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=libchewing
+pkgver=0.3.3
+pkgrel=1
+pkgdesc='Intelligent Zhuyin input method library for traditional Chinese'
+arch=('i686' 'x86_64')
+url='http://chewing.csie.net/'
+license=('GPL')
+options=('!libtool')
+source=("http://chewing.csie.net/download/libchewing/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('24ade7bbb0288f71588bb45831d7fc9d5137a4cb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libcroco/PKGBUILD b/extra/libcroco/PKGBUILD
new file mode 100644
index 000000000..ca1479053
--- /dev/null
+++ b/extra/libcroco/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 26935 2009-02-14 19:49:35Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libcroco
+pkgver=0.6.2
+pkgrel=1
+pkgdesc="GNOME CSS2 parsing and manipulation toolkit"
+arch=('x86_64' 'i686')
+depends=('glib2>=2.18.4' 'libxml2>=2.7.3')
+makedepends=('intltool' 'pkgconfig')
+license=('LGPL')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
+url="http://www.gnome.org"
+md5sums=('1429c597aa4b75fc610ab3a542c99209')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libcue/PKGBUILD b/extra/libcue/PKGBUILD
new file mode 100644
index 000000000..95e1c4d21
--- /dev/null
+++ b/extra/libcue/PKGBUILD
@@ -0,0 +1,24 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: said <atvordhosbn[at]gmail[dot]com>
+
+pkgname=libcue
+pkgver=1.4.0
+pkgrel=2
+pkgdesc='Parses so-called cue sheets and handles the parsed data'
+arch=('i686' 'x86_64')
+url='http://sourceforge.net/projects/libcue/'
+license=('GPL2')
+depends=('glibc')
+source=("http://downloads.sourceforge.net/libcue/$pkgname-$pkgver.tar.bz2")
+sha1sums=('3fd31f2da7c0e3967d5f56363f3051a85a8fd50d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/libdaemon/PKGBUILD b/extra/libdaemon/PKGBUILD
new file mode 100644
index 000000000..c6bbc1c9c
--- /dev/null
+++ b/extra/libdaemon/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 67404 2010-02-06 18:19:24Z giovanni $
+# Contributor: Manolis Tzanidakis
+# Contributor: Mark Rosenstand &lt;mark@archlinux.org&gt;
+# Maintainer: Thayer Williams &lt;thayer@archlinux.org&gt;
+
+pkgname=libdaemon
+pkgver=0.14
+pkgrel=1
+pkgdesc="A lightweight C library which eases the writing of UNIX daemons"
+url="http://0pointer.de/lennart/projects/libdaemon/"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('glibc')
+source=(http://0pointer.de/lennart/projects/libdaemon/$pkgname-$pkgver.tar.gz)
+options=('!libtool')
+md5sums=('509dc27107c21bcd9fbf2f95f5669563')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --localstatedir=/var --disable-lynx || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
+
diff --git a/extra/libdatrie/PKGBUILD b/extra/libdatrie/PKGBUILD
new file mode 100644
index 000000000..68ac77c7f
--- /dev/null
+++ b/extra/libdatrie/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 87837 2010-08-18 12:55:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Chaiwat Suttipongsakul <cwt114@gmail.com>
+
+pkgname=libdatrie
+pkgver=0.2.4
+pkgrel=1
+pkgdesc="Implementation of double-array structure for representing trie, as proposed by Junichi Aoe."
+url="http://linux.thai.net/~thep/datrie/datrie.html"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('glibc')
+options=('!libtool' '!emptydirs')
+source=(http://linux.thai.net/pub/thailinux/software/libthai/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7f7d592114f98db9e4c7171c3f2befc5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdbusmenu-qt/PKGBUILD b/extra/libdbusmenu-qt/PKGBUILD
new file mode 100644
index 000000000..98dda1288
--- /dev/null
+++ b/extra/libdbusmenu-qt/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117011 2011-03-27 14:11:17Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libdbusmenu-qt
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="A library that provides a Qt implementation of the DBusMenu spec"
+arch=('i686' 'x86_64')
+url="https://launchpad.net/libdbusmenu-qt"
+license=('GPL')
+depends=('qt')
+makedepends=('cmake' 'doxygen')
+source=("http://launchpad.net/${pkgname}/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('495bf59b9fcc00e4260fd5acbb21b78b')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libdc1394/PKGBUILD b/extra/libdc1394/PKGBUILD
new file mode 100644
index 000000000..c51e9f206
--- /dev/null
+++ b/extra/libdc1394/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 101407 2010-11-29 04:52:48Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdc1394
+pkgver=2.1.2
+pkgrel=2
+pkgdesc="High level programming interface to control IEEE 1394 based cameras"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://sourceforge.net/projects/libdc1394/"
+depends=('libraw1394>=2.0.5' 'libusb')
+options=(!libtool !emptydirs)
+source=(http://downloads.sourceforge.net/sourceforge/libdc1394/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b85f1ade88d8d96688d5965ed8603d53')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdca/PKGBUILD b/extra/libdca/PKGBUILD
new file mode 100644
index 000000000..5a8e195d2
--- /dev/null
+++ b/extra/libdca/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 49760 2009-08-15 15:07:38Z jgc $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libdca
+pkgver=0.0.5
+pkgrel=2
+pkgdesc="Free library for decoding DTS Coherent Acoustics streams"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.videolan.org/developers/libdca.html"
+source=(http://download.videolan.org/pub/videolan/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+provides=('libdts')
+replaces=('libdts')
+options=('!libtool' '!emptydirs')
+md5sums=('dab6b2795c66a82a6fcd4f8343343021')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ rm -f "${pkgdir}/usr/share/man/man1"/{extract_dts,dtsdec}.1
+ ln -s dcadec.1.gz "${pkgdir}/usr/share/man/man1/dtsdec.1.gz" || return 1
+ ln -s extract_dca.1.gz "${pkgdir}/usr/share/man/man1/extract_dts.1.gz" || return 1
+}
diff --git a/extra/libdiscid/PKGBUILD b/extra/libdiscid/PKGBUILD
new file mode 100644
index 000000000..f1eccb6a8
--- /dev/null
+++ b/extra/libdiscid/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Eric Gillingham <sysrq@sysrq.tk>
+
+pkgname=libdiscid
+pkgver=0.2.2
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+pkgdesc="A Library for creating MusicBrainz DiscIDs"
+url="http://musicbrainz.org/doc/libdiscid"
+depends=('glibc')
+source=("http://users.musicbrainz.org/~matt/${pkgname}-${pkgver}.tar.gz")
+md5sums=('ee21ddbe696a3c60e14827a75f3bcf5b')
+options=('!libtool')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr install
+}
diff --git a/extra/libdmapsharing/PKGBUILD b/extra/libdmapsharing/PKGBUILD
new file mode 100644
index 000000000..5151a2cc1
--- /dev/null
+++ b/extra/libdmapsharing/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 97651 2010-10-31 21:55:53Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libdmapsharing
+pkgver=2.1.8
+pkgrel=1
+pkgdesc="Libdmapsharing is a library you may use to access and share DMAP content"
+arch=('i686' 'x86_64')
+url="http://www.flyn.org/projects/libdmapsharing/index.html"
+license=('LGPL2.1')
+depends=('libsoup>=2.32.0' 'avahi>=0.6.27' 'gstreamer0.10-base>=0.10.30' 'gdk-pixbuf2>=2.22')
+options=('!libtool' 'force')
+source=(http://www.flyn.org/projects/libdmapsharing/${pkgname}-${pkgver}.tar.gz)
+md5sums=('88583f0c6160142567e8b521f210443b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --with-mdns=avahi
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdmtx/PKGBUILD b/extra/libdmtx/PKGBUILD
new file mode 100644
index 000000000..5bfaa6476
--- /dev/null
+++ b/extra/libdmtx/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 107616 2011-01-26 22:10:46Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: jose <jose1711 [at] gmail (dot) com>
+
+pkgname=libdmtx
+pkgver=0.7.2
+pkgrel=2
+pkgdesc="A software for reading and writing Data Matrix 2D barcodes"
+url=('http://www.libdmtx.org/')
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('imagemagick')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('0684cf3857591e777b57248d652444ae')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libdmx/PKGBUILD b/extra/libdmx/PKGBUILD
new file mode 100644
index 000000000..3397db220
--- /dev/null
+++ b/extra/libdmx/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97777 2010-11-01 22:06:48Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdmx
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 Distributed Multihead extension library"
+arch=('x86_64' 'i686')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('dmxproto' 'libxext')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('49aeab743cb8b667829efda140487b69a7148676')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libdrm/COPYING b/extra/libdrm/COPYING
new file mode 100644
index 000000000..6e74c337c
--- /dev/null
+++ b/extra/libdrm/COPYING
@@ -0,0 +1,48 @@
+ Copyright 2005 Adam Jackson.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation on the rights to use, copy, modify, merge,
+ publish, distribute, sub license, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+------------------------------------------------------------------------
+
+ Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS
+ SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
diff --git a/extra/libdrm/PKGBUILD b/extra/libdrm/PKGBUILD
new file mode 100644
index 000000000..6737913e2
--- /dev/null
+++ b/extra/libdrm/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 110193 2011-02-17 14:28:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdrm
+pkgver=2.4.23
+pkgrel=2
+pkgdesc="Userspace interface to kernel DRM services"
+arch=(i686 x86_64)
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ no-pthread-stubs.patch
+ intel-git-fixes.patch
+ COPYING)
+sha1sums=('9d651d1e394654c02343e3d95c0f8a442a91ac75'
+ 'af2d9871565ea4cf524873f897691a18b2bba944'
+ '40d5a749f05dc097c91c087fe1f8b970613e9098'
+ 'ba3dcd636997ee0d30df14b03dae05c24ae5d094')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+ patch -Np1 -i "${srcdir}/intel-git-fixes.patch"
+
+ libtoolize --force
+ autoreconf --force --install
+ ./configure --prefix=/usr \
+ --enable-udev \
+ --enable-intel \
+ --enable-radeon \
+ --enable-vmwgfx-experimental-api \
+ --enable-nouveau-experimental-api
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libdrm/intel-git-fixes.patch b/extra/libdrm/intel-git-fixes.patch
new file mode 100644
index 000000000..d1f427c10
--- /dev/null
+++ b/extra/libdrm/intel-git-fixes.patch
@@ -0,0 +1,144 @@
+commit 6717b7579f84d05e45e7846d2b6e767760461709
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Wed Jan 12 10:57:46 2011 +0000
+
+ intel: Fallback to old exec if no mrb_exec is available
+
+ Reported-by: Torsten Hilbrich <torsten.hilbrich@secunet.com>
+ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33016
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/intel/intel_bufmgr.c b/intel/intel_bufmgr.c
+index b7c5c09..2546222 100644
+--- a/intel/intel_bufmgr.c
++++ b/intel/intel_bufmgr.c
+@@ -143,6 +143,10 @@ drm_intel_bo_mrb_exec(drm_intel_bo *bo, int used,
+ cliprects, num_cliprects, DR4,
+ rings);
+
++ if (ring_flag == 0)
++ return bo->bufmgr->bo_exec(bo, used,
++ cliprects, num_cliprects, DR4);
++
+ return -ENODEV;
+ }
+
+commit 53581b6210c024044e0065527d1506e6f5657ef5
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Feb 14 09:27:05 2011 +0000
+
+ intel: Set the public handle after opening by name
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
+index 72c8731..092b56a 100644
+--- a/intel/intel_bufmgr_gem.c
++++ b/intel/intel_bufmgr_gem.c
+@@ -816,6 +816,7 @@ drm_intel_bo_gem_create_from_name(drm_intel_bufmgr *bufmgr,
+ atomic_set(&bo_gem->refcount, 1);
+ bo_gem->validate_index = -1;
+ bo_gem->gem_handle = open_arg.handle;
++ bo_gem->bo.handle = open_arg.handle;
+ bo_gem->global_name = handle;
+ bo_gem->reusable = 0;
+
+commit 36d4939343d8789d9066f7245fa2d4fe69119dd8
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Mon Feb 14 09:39:06 2011 +0000
+
+ intel: Remember named bo
+
+ ... and if asked to open a bo by the same global name, return a fresh
+ reference to the previously allocated buffer.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
+index 092b56a..3cdffce 100644
+--- a/intel/intel_bufmgr_gem.c
++++ b/intel/intel_bufmgr_gem.c
+@@ -95,6 +95,8 @@ typedef struct _drm_intel_bufmgr_gem {
+ int num_buckets;
+ time_t time;
+
++ drmMMListHead named;
++
+ uint64_t gtt_size;
+ int available_fences;
+ int pci_device;
+@@ -124,6 +126,7 @@ struct _drm_intel_bo_gem {
+ * Kenel-assigned global name for this object
+ */
+ unsigned int global_name;
++ drmMMListHead name_list;
+
+ /**
+ * Index of the buffer within the validation list while preparing a
+@@ -690,6 +693,8 @@ retry:
+ drm_intel_gem_bo_free(&bo_gem->bo);
+ return NULL;
+ }
++
++ DRMINITLISTHEAD(&bo_gem->name_list);
+ }
+
+ bo_gem->name = name;
+@@ -792,6 +797,23 @@ drm_intel_bo_gem_create_from_name(drm_intel_bufmgr *bufmgr,
+ int ret;
+ struct drm_gem_open open_arg;
+ struct drm_i915_gem_get_tiling get_tiling;
++ drmMMListHead *list;
++
++ /* At the moment most applications only have a few named bo.
++ * For instance, in a DRI client only the render buffers passed
++ * between X and the client are named. And since X returns the
++ * alternating names for the front/back buffer a linear search
++ * provides a sufficiently fast match.
++ */
++ for (list = bufmgr_gem->named.next;
++ list != &bufmgr_gem->named;
++ list = list->next) {
++ bo_gem = DRMLISTENTRY(drm_intel_bo_gem, list, name_list);
++ if (bo_gem->global_name == handle) {
++ drm_intel_gem_bo_reference(&bo_gem->bo);
++ return &bo_gem->bo;
++ }
++ }
+
+ bo_gem = calloc(1, sizeof(*bo_gem));
+ if (!bo_gem)
+@@ -834,6 +856,7 @@ drm_intel_bo_gem_create_from_name(drm_intel_bufmgr *bufmgr,
+ /* XXX stride is unknown */
+ drm_intel_bo_gem_set_in_aperture_size(bufmgr_gem, bo_gem);
+
++ DRMLISTADDTAIL(&bo_gem->name_list, &bufmgr_gem->named);
+ DBG("bo_create_from_handle: %d (%s)\n", handle, bo_gem->name);
+
+ return &bo_gem->bo;
+@@ -925,6 +948,8 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
+ bo_gem->relocs = NULL;
+ }
+
++ DRMLISTDEL(&bo_gem->name_list);
++
+ bucket = drm_intel_gem_bo_bucket_for_size(bufmgr_gem, bo->size);
+ /* Put the buffer into our internal cache for reuse if we can. */
+ if (bufmgr_gem->bo_reuse && bo_gem->reusable && bucket != NULL &&
+@@ -1771,6 +1796,8 @@ drm_intel_gem_bo_flink(drm_intel_bo *bo, uint32_t * name)
+ return -errno;
+ bo_gem->global_name = flink.name;
+ bo_gem->reusable = 0;
++
++ DRMLISTADDTAIL(&bo_gem->name_list, &bufmgr_gem->named);
+ }
+
+ *name = bo_gem->global_name;
+@@ -2217,6 +2244,7 @@ drm_intel_bufmgr_gem_init(int fd, int batch_size)
+ drm_intel_gem_get_pipe_from_crtc_id;
+ bufmgr_gem->bufmgr.bo_references = drm_intel_gem_bo_references;
+
++ DRMINITLISTHEAD(&bufmgr_gem->named);
+ init_cache_buckets(bufmgr_gem);
+
+ return &bufmgr_gem->bufmgr;
diff --git a/extra/libdrm/no-pthread-stubs.patch b/extra/libdrm/no-pthread-stubs.patch
new file mode 100644
index 000000000..6602f8785
--- /dev/null
+++ b/extra/libdrm/no-pthread-stubs.patch
@@ -0,0 +1,65 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev],
+--- libdrm-2.4.16/intel/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/intel/Makefile.am.new 2009-12-07 08:11:32.235748069 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @CLOCK_LIB@
+
+ libdrm_intel_la_SOURCES = \
+ intel_atomic.h \
+--- libdrm-2.4.16/radeon/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/radeon/Makefile.am.new 2009-12-07 08:12:31.889075388 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/radeon \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
+ libdrm_radeon_ladir = $(libdir)
+ libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_radeon_la_LIBADD = ../libdrm.la
+
+ libdrm_radeon_la_SOURCES = \
+ radeon_bo_gem.c \
+--- libdrm-2.4.16/nouveau/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/nouveau/Makefile.am.new 2009-12-07 08:13:01.489072320 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+
+ libdrm_nouveau_la_SOURCES = \
+ nouveau_device.c \
diff --git a/extra/libdv/PKGBUILD b/extra/libdv/PKGBUILD
new file mode 100644
index 000000000..d8b127c48
--- /dev/null
+++ b/extra/libdv/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 58409 2009-11-07 18:46:07Z eric $
+# Maintainer: Jason Chu <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libdv
+pkgver=1.0.0
+pkgrel=3
+pkgdesc="The Quasar DV codec (libdv) is a software codec for DV video"
+arch=('i686' 'x86_64')
+url="http://libdv.sourceforge.net/"
+license=('LGPL')
+depends=('popt')
+makedepends=('pkgconfig' 'gtk' 'libxv')
+optdepends=('gtk: for using playdv' 'libxv: for using playdv')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('f895162161cfa4bb4a94c070a7caa6c7')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/libdvbpsi/PKGBUILD b/extra/libdvbpsi/PKGBUILD
new file mode 100644
index 000000000..77152f082
--- /dev/null
+++ b/extra/libdvbpsi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 80128 2010-05-12 16:41:47Z andrea $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
+
+pkgname=libdvbpsi
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="A library designed for decoding and generation of MPEG TS and DVB PSI tables"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+replaces=('libdvbpsi4' 'libdvbpsi5')
+conflicts=('libdvbpsi4' 'libdvbpsi5')
+url="http://developers.videolan.org/libdvbpsi/"
+source=(http://download.videolan.org/pub/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('af419575719e356b908b0c6946499052')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install || return 1
+}
diff --git a/extra/libdvdcss/PKGBUILD b/extra/libdvdcss/PKGBUILD
new file mode 100644
index 000000000..6317b615b
--- /dev/null
+++ b/extra/libdvdcss/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 102948 2010-12-13 12:51:30Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libdvdcss
+pkgver=1.2.10
+pkgrel=2
+pkgdesc="A portable abstraction library for DVD decryption"
+url="http://www.videolan.org/libdvdcss"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://download.videolan.org/pub/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7c933d011e34c218048d48f0c1a8b4ff56798dcd')
+
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/libdvdnav/PKGBUILD b/extra/libdvdnav/PKGBUILD
new file mode 100644
index 000000000..a593b3a71
--- /dev/null
+++ b/extra/libdvdnav/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 69820 2010-02-22 22:23:44Z giovanni $
+# Maintainer: arjan <arjan@archlinux.org>
+# contributor Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=libdvdnav
+pkgver=4.1.3
+pkgrel=2
+pkgdesc="The library for xine-dvdnav plugin."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.mplayerhq.hu/MPlayer/releases/dvdnav/"
+depends=('libdvdread>=4.1.3')
+options=(!libtool)
+source=(http://www.mplayerhq.hu/MPlayer/releases/dvdnav/${pkgname}-${pkgver}.tar.bz2
+ deadlock.patch)
+md5sums=('d62383c45b28816771e283515f2c27fa'
+ '864529165a1136ae4c1ccbc7b43cdb1a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/deadlock.patch || return 1
+
+ ./autogen.sh --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libdvdnav/deadlock.patch b/extra/libdvdnav/deadlock.patch
new file mode 100644
index 000000000..f00433e67
--- /dev/null
+++ b/extra/libdvdnav/deadlock.patch
@@ -0,0 +1,17 @@
+--- a/src/dvdnav.c 2009-11-08 16:58:25.000000000 +0300
++++ b/src/dvdnav.c 2009-11-08 16:58:52.000000000 +0300
+@@ -180,12 +180,13 @@
+ pthread_mutex_unlock(&this->vm_lock);
+ return DVDNAV_STATUS_ERR;
+ }
++ pthread_mutex_unlock(&this->vm_lock);
++
+ #ifdef LOG_DEBUG
+ fprintf(MSG_OUT, "libdvdnav: clearing dvdnav\n");
+ #endif
+ result = dvdnav_clear(this);
+
+- pthread_mutex_unlock(&this->vm_lock);
+ return result;
+ }
+
diff --git a/extra/libdvdread/DVDFileStat.patch b/extra/libdvdread/DVDFileStat.patch
new file mode 100644
index 000000000..b48a2faeb
--- /dev/null
+++ b/extra/libdvdread/DVDFileStat.patch
@@ -0,0 +1,237 @@
+diff -pruN libdvdread-4.1.3/src/dvd_reader.c libdvdread-4.1.3.new/src/dvd_reader.c
+--- libdvdread-4.1.3/src/dvd_reader.c 2008-09-06 23:55:51.000000000 +0200
++++ libdvdread-4.1.3.new/src/dvd_reader.c 2009-02-28 01:36:20.000000000 +0100
+@@ -889,6 +889,187 @@ void DVDCloseFile( dvd_file_t *dvd_file
+ }
+ }
+
++static int DVDFileStatVOBUDF(dvd_reader_t *dvd, int title,
++ int menu, dvd_stat_t *statbuf)
++{
++ char filename[ MAX_UDF_FILE_NAME_LEN ];
++ uint32_t size;
++ off_t tot_size;
++ off_t parts_size[9];
++ int nr_parts = 0;
++ int n;
++
++ if( title == 0 ) {
++ sprintf( filename, "/VIDEO_TS/VIDEO_TS.VOB" );
++ } else {
++ sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, menu ? 0 : 1 );
++ }
++ if(!UDFFindFile( dvd, filename, &size )) {
++ return -1;
++ }
++ tot_size = size;
++ nr_parts = 1;
++ parts_size[0] = size;
++
++ if( !menu ) {
++ int cur;
++
++ for( cur = 2; cur < 10; cur++ ) {
++ sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, cur );
++ if( !UDFFindFile( dvd, filename, &size ) ) {
++ break;
++ }
++ parts_size[nr_parts] = size;
++ tot_size += size;
++ nr_parts++;
++ }
++ }
++
++ statbuf->size = tot_size;
++ statbuf->nr_parts = nr_parts;
++ for(n = 0; n < nr_parts; n++) {
++ statbuf->parts_size[n] = parts_size[n];
++ }
++ return 0;
++}
++
++
++static int DVDFileStatVOBPath( dvd_reader_t *dvd, int title,
++ int menu, dvd_stat_t *statbuf )
++{
++ char filename[ MAX_UDF_FILE_NAME_LEN ];
++ char full_path[ PATH_MAX + 1 ];
++ struct stat fileinfo;
++ off_t tot_size;
++ off_t parts_size[9];
++ int nr_parts = 0;
++ int n;
++
++
++
++ if( title == 0 ) {
++ sprintf( filename, "VIDEO_TS.VOB" );
++ } else {
++ sprintf( filename, "VTS_%02d_%d.VOB", title, menu ? 0 : 1 );
++ }
++ if( !findDVDFile( dvd, filename, full_path ) ) {
++ return -1;
++ }
++
++ if( stat( full_path, &fileinfo ) < 0 ) {
++ fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
++ return -1;
++ }
++
++
++ tot_size = fileinfo.st_size;
++ nr_parts = 1;
++ parts_size[0] = fileinfo.st_size;
++
++ if( !menu ) {
++ int cur;
++
++ for( cur = 2; cur < 10; cur++ ) {
++
++ sprintf( filename, "VTS_%02d_%d.VOB", title, cur );
++ if( !findDVDFile( dvd, filename, full_path ) ) {
++ break;
++ }
++
++ if( stat( full_path, &fileinfo ) < 0 ) {
++ fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
++ break;
++ }
++
++ parts_size[nr_parts] = fileinfo.st_size;
++ tot_size += parts_size[nr_parts];
++ nr_parts++;
++ }
++ }
++
++ statbuf->size = tot_size;
++ statbuf->nr_parts = nr_parts;
++ for(n = 0; n < nr_parts; n++) {
++ statbuf->parts_size[n] = parts_size[n];
++ }
++ return 0;
++}
++
++
++int DVDFileStat(dvd_reader_t *dvd, int titlenum,
++ dvd_read_domain_t domain, dvd_stat_t *statbuf)
++{
++ char filename[ MAX_UDF_FILE_NAME_LEN ];
++ char full_path[ PATH_MAX + 1 ];
++ struct stat fileinfo;
++ uint32_t size;
++
++ /* Check arguments. */
++ if( dvd == NULL || titlenum < 0 ) {
++ errno = EINVAL;
++ return -1;
++ }
++
++ switch( domain ) {
++ case DVD_READ_INFO_FILE:
++ if( titlenum == 0 ) {
++ sprintf( filename, "/VIDEO_TS/VIDEO_TS.IFO" );
++ } else {
++ sprintf( filename, "/VIDEO_TS/VTS_%02i_0.IFO", titlenum );
++ }
++ break;
++ case DVD_READ_INFO_BACKUP_FILE:
++ if( titlenum == 0 ) {
++ sprintf( filename, "/VIDEO_TS/VIDEO_TS.BUP" );
++ } else {
++ sprintf( filename, "/VIDEO_TS/VTS_%02i_0.BUP", titlenum );
++ }
++ break;
++ case DVD_READ_MENU_VOBS:
++ if( dvd->isImageFile ) {
++ return DVDFileStatVOBUDF( dvd, titlenum, 1, statbuf );
++ } else {
++ return DVDFileStatVOBPath( dvd, titlenum, 1, statbuf );
++ }
++ break;
++ case DVD_READ_TITLE_VOBS:
++ if( titlenum == 0 ) {
++ return -1;
++ }
++ if( dvd->isImageFile ) {
++ return DVDFileStatVOBUDF( dvd, titlenum, 0, statbuf );
++ } else {
++ return DVDFileStatVOBPath( dvd, titlenum, 0, statbuf );
++ }
++ break;
++ default:
++ fprintf( stderr, "libdvdread: Invalid domain for file stat.\n" );
++ errno = EINVAL;
++ return -1;
++ }
++
++ if( dvd->isImageFile ) {
++ if( UDFFindFile( dvd, filename, &size ) ) {
++ statbuf->size = size;
++ statbuf->nr_parts = 1;
++ statbuf->parts_size[0] = size;
++ return 0;
++ }
++ } else {
++ if( findDVDFile( dvd, filename, full_path ) ) {
++ if( stat( full_path, &fileinfo ) < 0 ) {
++ fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
++ } else {
++ statbuf->size = fileinfo.st_size;
++ statbuf->nr_parts = 1;
++ statbuf->parts_size[0] = statbuf->size;
++ return 0;
++ }
++ }
++ }
++ return -1;
++}
++
+ /* Internal, but used from dvd_udf.c */
+ int UDFReadBlocksRaw( dvd_reader_t *device, uint32_t lb_number,
+ size_t block_count, unsigned char *data,
+diff -pruN libdvdread-4.1.3/src/dvd_reader.h libdvdread-4.1.3.new/src/dvd_reader.h
+--- libdvdread-4.1.3/src/dvd_reader.h 2008-09-06 23:55:51.000000000 +0200
++++ libdvdread-4.1.3.new/src/dvd_reader.h 2009-02-28 01:36:49.000000000 +0100
+@@ -115,6 +115,42 @@ typedef enum {
+ } dvd_read_domain_t;
+
+ /**
++ *
++ */
++typedef struct {
++ off_t size; /**< Total size of file in bytes */
++ int nr_parts; /**< Number of file parts */
++ off_t parts_size[9]; /**< Size of each part in bytes */
++} dvd_stat_t;
++
++/**
++ * Stats a file on the DVD given the title number and domain.
++ * The information about the file is stored in a dvd_stat_t
++ * which contains information about the size of the file and
++ * the number of parts in case of a multipart file and the respective
++ * sizes of the parts.
++ * A multipart file is for instance VTS_02_1.VOB, VTS_02_2.VOB, VTS_02_3.VOB
++ * The size of VTS_02_1.VOB will be stored in stat->parts_size[0],
++ * VTS_02_2.VOB in stat->parts_size[1], ...
++ * The total size (sum of all parts) is stored in stat->size and
++ * stat->nr_parts will hold the number of parts.
++ * Only DVD_READ_TITLE_VOBS (VTS_??_[1-9].VOB) can be multipart files.
++ *
++ * This function is only of use if you want to get the size of each file
++ * in the filesystem. These sizes are not needed to use any other
++ * functions in libdvdread.
++ *
++ * @param dvd A dvd read handle.
++ * @param titlenum Which Video Title Set should be used, VIDEO_TS is 0.
++ * @param domain Which domain.
++ * @param stat Pointer to where the result is stored.
++ * @return If successful 0, otherwise -1.
++ *
++ * int DVDFileStat(dvd, titlenum, domain, stat);
++ */
++int DVDFileStat(dvd_reader_t *, int, dvd_read_domain_t, dvd_stat_t *);
++
++/**
+ * Opens a file on the DVD given the title number and domain.
+ *
+ * If the title number is 0, the video manager information is opened
diff --git a/extra/libdvdread/PKGBUILD b/extra/libdvdread/PKGBUILD
new file mode 100644
index 000000000..dcdbf47d9
--- /dev/null
+++ b/extra/libdvdread/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 80196 2010-05-13 15:59:09Z andrea $
+# Maintainer:
+# Contributor: Thomas Baechler <thomas@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libdvdread
+pkgver=4.1.3
+pkgrel=2
+pkgdesc="Provides a simple foundation for reading DVD video disks"
+arch=(i686 x86_64)
+url="http://www.mplayerhq.hu/MPlayer/releases/dvdnav/"
+license=('GPL')
+depends=('glibc')
+makedepends=('libdvdcss')
+optdepends=('libdvdcss: for decoding encrypted DVDs')
+options=('!libtool')
+source=("http://www.mplayerhq.hu/MPlayer/releases/dvdnav/${pkgname}-${pkgver}.tar.bz2"
+ 'DVDFileStat.patch')
+md5sums=('6dc068d442c85a3cdd5ad3da75f6c6e8'
+ '7314874e246634019be929a96340437a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # http://lists.mplayerhq.hu/pipermail/dvdnav-discuss/2009-February/000986.html (FS#19324)
+ patch -Np1 -i ${srcdir}/DVDFileStat.patch || return 1
+
+ ./autogen.sh --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libebml/PKGBUILD b/extra/libebml/PKGBUILD
new file mode 100644
index 000000000..2367625e5
--- /dev/null
+++ b/extra/libebml/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 108561 2011-02-01 17:18:01Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: 03/08/04 <lefungus@altern.org>
+
+pkgname=libebml
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Extensible Binary Meta Language library"
+arch=('i686' 'x86_64')
+url="http://dl.matroska.org/downloads/libebml/"
+license=('LGPL')
+depends=('gcc-libs')
+source=("${url}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('26fbaa556bb497c1134d33b84ab34443')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+ make prefix="${pkgdir}/usr" install || return 1
+}
diff --git a/extra/libepc/PKGBUILD b/extra/libepc/PKGBUILD
new file mode 100644
index 000000000..22fd2ca7b
--- /dev/null
+++ b/extra/libepc/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 73829 2010-03-28 19:11:48Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libepc
+pkgver=0.3.11
+pkgrel=1
+pkgdesc="Easy Publish and Consume Library"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://live.gnome.org/libepc"
+depends=('gtk2>=2.20.0' 'avahi>=0.6.25' 'libsoup>=2.29.91')
+makedepends=('intltool')
+options=('!libtool' '!makeflags')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('ec38fe4206fab7a8939fb351d7b419cc681ac44afcdd5aab9bdb8fc3386df25c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libetpan/PKGBUILD b/extra/libetpan/PKGBUILD
new file mode 100644
index 000000000..f28bf561b
--- /dev/null
+++ b/extra/libetpan/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 96521 2010-10-22 00:32:21Z allan $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libetpan
+pkgver=1.0
+pkgrel=2
+pkgdesc="A portable middleware for email access"
+arch=('i686' 'x86_64')
+url="http://www.etpan.org/"
+license=("custom:etpan")
+depends=('db>=5.1' 'libsasl>=2.1.23' 'curl>=7.19.5' 'expat>=2.0.1-1')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5addc766141a0b1d29ee1ca4ba1b6808')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYRIGHT ${pkgdir}/usr/share/licenses/$pkgname/license.txt
+}
diff --git a/extra/libexif/PKGBUILD b/extra/libexif/PKGBUILD
new file mode 100644
index 000000000..9755ed6a5
--- /dev/null
+++ b/extra/libexif/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 109066 2011-02-05 16:41:20Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libexif
+pkgver=0.6.20
+pkgrel=1
+pkgdesc="A library to parse an EXIF file and read the data from those tags"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://sourceforge.net/projects/libexif"
+depends=('glibc')
+options=('!libtool')
+source=(http://downloads.sf.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('19844ce6b5d075af16f0d45de1e8a6a3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libffado/PKGBUILD b/extra/libffado/PKGBUILD
new file mode 100644
index 000000000..e97c9273f
--- /dev/null
+++ b/extra/libffado/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 106834 2011-01-19 12:28:15Z andrea $
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: galiyosha@gmail.com
+# Contributor: Jon Kristian Nilsen <jokr.nilsen@gmail.com>
+
+pkgname=libffado
+pkgver=2.0.1
+pkgrel=3
+pkgdesc="Driver for FireWire audio devices"
+arch=('i686' 'x86_64')
+url="http://www.ffado.org/"
+license=('GPL')
+depends=('libiec61883' 'libavc1394' 'libsigc++'
+ 'libxml++' 'alsa-lib' 'dbus')
+makedepends=('scons' 'python2-qt')
+optdepends=('python2-qt: mixer applet')
+provides=('ffado')
+source=(http://www.ffado.org/files/$pkgname-$pkgver.tar.gz)
+md5sums=('786f31facd417e6207e429f50af0e15e')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # hack to use CFLAGS without optimising
+ sed -i 's/-O2//g' SConstruct
+
+ if [ "$CARCH" = "x86_64" ]; then
+ sed -i "s/-m64/-m64 $CFLAGS/g" SConstruct
+ else
+ sed -i "s/-m32/-m32 $CFLAGS/g" SConstruct
+ fi
+
+ # python2 fix
+ sed -i 's:python $SOURCE:python2 $SOURCE:' SConstruct
+ sed -i 's:python support/tools:python2 support/tools:' \
+ support/tools/SConscript
+
+ scons PREFIX=/usr #ENABLE_OPTIMIZATIONS=True
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ scons DESTDIR="$pkgdir/" WILL_DEAL_WITH_XDG_MYSELF="True" install
+
+ # python2 fix
+ for i in $(grep '^#!.*bin.*python' -R "$pkgdir" | sed 's/:.*//'); do
+ sed -i 's:^#!.*bin.*python:#!/usr/bin/python2:' "$i"
+ done
+
+ # desktop files & icons
+ install -Dm644 support/xdg/ffado.org-ffadomixer.desktop \
+ "$pkgdir/usr/share/applications/ffadomixer.desktop"
+
+ install -Dm644 support/xdg/hi64-apps-ffado.png \
+ "$pkgdir/usr/share/pixmaps/$pkgname.png"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/libffi/PKGBUILD b/extra/libffi/PKGBUILD
new file mode 100644
index 000000000..555f0eb4e
--- /dev/null
+++ b/extra/libffi/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 72255 2010-03-13 20:43:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libffi
+pkgver=3.0.9
+pkgrel=1
+pkgdesc="A portable, high level programming interface to various calling conventions."
+arch=('i686' 'x86_64')
+license=('MIT')
+url="http://sourceware.org/libffi"
+depends=('glibc' 'texinfo')
+options=('!libtool' 'force')
+install=libffi.install
+source=(ftp://sourceware.org/pub/libffi/libffi-${pkgver}.tar.gz)
+md5sums=('1f300a7a7f975d4046f51c3022fa5ff1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/libffi/libffi.install b/extra/libffi/libffi.install
new file mode 100644
index 000000000..151b79b60
--- /dev/null
+++ b/extra/libffi/libffi.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(libffi.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/libfm/0001-filename-with-spaces-not-supported.patch b/extra/libfm/0001-filename-with-spaces-not-supported.patch
new file mode 100644
index 000000000..568f6dc38
--- /dev/null
+++ b/extra/libfm/0001-filename-with-spaces-not-supported.patch
@@ -0,0 +1,345 @@
+From 96fa31c757189c7c5f60d4de4c2df236d2cba0ea Mon Sep 17 00:00:00 2001
+From: Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
+Date: Wed, 20 Oct 2010 06:40:51 +0800
+Subject: [PATCH] Fix #3089625 - Filenames with spaces not supported in copy/paste.
+
+---
+ src/base/fm-file-launcher.c | 2 +-
+ src/base/fm-folder.c | 6 +-
+ src/base/fm-path.c | 2 +-
+ src/gtk/fm-folder-view.c | 130 +++++++++++++++++++++---------------------
+ src/gtk/fm-gtk-utils.c | 10 +--
+ src/gtk/fm-path-entry.c | 2 +-
+ 6 files changed, 75 insertions(+), 77 deletions(-)
+
+diff --git a/src/base/fm-file-launcher.c b/src/base/fm-file-launcher.c
+index 3857c33..c356249 100644
+--- a/src/base/fm-file-launcher.c
++++ b/src/base/fm-file-launcher.c
+@@ -91,7 +91,7 @@ gboolean fm_launch_desktop_entry(GAppLaunchContext* ctx, const char* file_or_id,
+ * e.g: If this URL points to the another desktop entry file, and it
+ * points to yet another desktop entry file, this can create a
+ * infinite loop. This is a extremely rare case. */
+- FmPath* path = fm_path_new(url);
++ FmPath* path = fm_path_new_for_uri(url);
+ _uris = g_list_prepend(_uris, path);
+ ret = fm_launch_paths(ctx, _uris, launcher, user_data);
+ g_list_free(_uris);
+diff --git a/src/base/fm-folder.c b/src/base/fm-folder.c
+index ccbb3cc..3474937 100644
+--- a/src/base/fm-folder.c
++++ b/src/base/fm-folder.c
+@@ -334,8 +334,8 @@ static void on_job_finished(FmDirListJob* job, FmFolder* folder)
+
+ static FmJobErrorAction on_job_err(FmDirListJob* job, GError* err, FmJobErrorSeverity severity, FmFolder* folder)
+ {
+- FmJobErrorAction ret;
+- g_signal_emit(folder, signals[ERROR], 0, err, severity, &ret);
++ FmJobErrorAction ret;
++ g_signal_emit(folder, signals[ERROR], 0, err, severity, &ret);
+ return ret;
+ }
+
+@@ -470,7 +470,7 @@ FmFolder* fm_folder_get_for_path(FmPath* path)
+
+ FmFolder* fm_folder_get_for_path_name(const char* path)
+ {
+- FmPath* fm_path = fm_path_new(path);
++ FmPath* fm_path = fm_path_new_for_str(path);
+ FmFolder* folder = fm_folder_get_internal(fm_path, NULL);
+ fm_path_unref(fm_path);
+ return folder;
+diff --git a/src/base/fm-path.c b/src/base/fm-path.c
+index ca62256..8b31de2 100644
+--- a/src/base/fm-path.c
++++ b/src/base/fm-path.c
+@@ -926,7 +926,7 @@ FmPathList* fm_path_list_new_from_uris(const char** uris)
+ FmPathList* pl = fm_path_list_new();
+ for(uri = uris; *uri; ++uri)
+ {
+- FmPath* path = fm_path_new(*uri);
++ FmPath* path = fm_path_new_for_uri(*uri);
+ fm_list_push_tail_noref(pl, path);
+ }
+ return pl;
+diff --git a/src/gtk/fm-folder-view.c b/src/gtk/fm-folder-view.c
+index fab88c0..9943015 100644
+--- a/src/gtk/fm-folder-view.c
++++ b/src/gtk/fm-folder-view.c
+@@ -41,8 +41,8 @@
+
+ enum{
+ CHDIR,
+- LOADED,
+- STATUS,
++ LOADED,
++ STATUS,
+ CLICKED,
+ SEL_CHANGED,
+ SORT_CHANGED,
+@@ -82,7 +82,7 @@ static void fm_folder_view_class_init(FmFolderViewClass *klass)
+ {
+ GObjectClass *g_object_class;
+ GtkWidgetClass *widget_class;
+- FmFolderViewClass *fv_class;
++ FmFolderViewClass *fv_class;
+ g_object_class = G_OBJECT_CLASS(klass);
+ g_object_class->finalize = fm_folder_view_finalize;
+ widget_class = GTK_WIDGET_CLASS(klass);
+@@ -165,19 +165,19 @@ gboolean on_folder_view_focus_in(GtkWidget* widget, GdkEventFocus* evt)
+
+ void on_chdir(FmFolderView* fv, FmPath* dir_path)
+ {
+- GtkWidget* toplevel = gtk_widget_get_toplevel((GtkWidget*)fv);
+- if(GTK_WIDGET_REALIZED(toplevel))
+- {
+- GdkCursor* cursor = gdk_cursor_new(GDK_WATCH);
+- gdk_window_set_cursor(toplevel->window, cursor);
+- }
++ GtkWidget* toplevel = gtk_widget_get_toplevel((GtkWidget*)fv);
++ if(GTK_WIDGET_REALIZED(toplevel))
++ {
++ GdkCursor* cursor = gdk_cursor_new(GDK_WATCH);
++ gdk_window_set_cursor(toplevel->window, cursor);
++ }
+ }
+
+ void on_loaded(FmFolderView* fv, FmPath* dir_path)
+ {
+- GtkWidget* toplevel = gtk_widget_get_toplevel((GtkWidget*)fv);
+- if(GTK_WIDGET_REALIZED(toplevel))
+- gdk_window_set_cursor(toplevel->window, NULL);
++ GtkWidget* toplevel = gtk_widget_get_toplevel((GtkWidget*)fv);
++ if(GTK_WIDGET_REALIZED(toplevel))
++ gdk_window_set_cursor(toplevel->window, NULL);
+ }
+
+ void on_status(FmFolderView* fv, const char* msg)
+@@ -187,15 +187,15 @@ void on_status(FmFolderView* fv, const char* msg)
+
+ void on_model_loaded(FmFolderModel* model, FmFolderView* fv)
+ {
+- FmFolder* folder = model->dir;
+- char* msg;
+- /* FIXME: prevent direct access to data members */
+- g_signal_emit(fv, signals[LOADED], 0, folder->dir_path);
++ FmFolder* folder = model->dir;
++ char* msg;
++ /* FIXME: prevent direct access to data members */
++ g_signal_emit(fv, signals[LOADED], 0, folder->dir_path);
+
+ /* FIXME: show number of hidden files and available disk spaces. */
+- msg = g_strdup_printf("%d files are listed.", fm_list_get_length(folder->files) );
+- g_signal_emit(fv, signals[STATUS], 0, msg);
+- g_free(msg);
++ msg = g_strdup_printf("%d files are listed.", fm_list_get_length(folder->files) );
++ g_signal_emit(fv, signals[STATUS], 0, msg);
++ g_free(msg);
+ }
+
+ FmJobErrorAction on_folder_err(FmFolder* folder, GError* err, FmJobErrorSeverity severity, FmFolderView* fv)
+@@ -326,8 +326,8 @@ static void fm_folder_view_finalize(GObject *object)
+ if( self->model )
+ g_object_unref(self->model);
+ }
+- g_object_unref(self->dnd_src);
+- g_object_unref(self->dnd_dest);
++ g_object_unref(self->dnd_src);
++ g_object_unref(self->dnd_dest);
+
+ if(self->cwd)
+ fm_path_unref(self->cwd);
+@@ -715,15 +715,15 @@ void fm_folder_view_set_mode(FmFolderView* fv, FmFolderViewMode mode)
+
+ /* FIXME: maybe calling set_icon_size here is a good idea */
+
+- gtk_drag_source_set(fv->view, GDK_BUTTON1_MASK,
+- fm_default_dnd_src_targets, N_FM_DND_SRC_DEFAULT_TARGETS,
+- GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK|GDK_ACTION_ASK);
++ gtk_drag_source_set(fv->view, GDK_BUTTON1_MASK,
++ fm_default_dnd_src_targets, N_FM_DND_SRC_DEFAULT_TARGETS,
++ GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK|GDK_ACTION_ASK);
+ fm_dnd_src_set_widget(fv->dnd_src, fv->view);
+
+- gtk_drag_dest_set(fv->view, 0,
+- fm_default_dnd_dest_targets, N_FM_DND_DEST_DEFAULT_TARGETS,
+- GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK|GDK_ACTION_ASK);
+- fm_dnd_dest_set_widget(fv->dnd_dest, fv->view);
++ gtk_drag_dest_set(fv->view, 0,
++ fm_default_dnd_dest_targets, N_FM_DND_DEST_DEFAULT_TARGETS,
++ GDK_ACTION_COPY|GDK_ACTION_MOVE|GDK_ACTION_LINK|GDK_ACTION_ASK);
++ fm_dnd_dest_set_widget(fv->dnd_dest, fv->view);
+ g_signal_connect_after(fv->view, "drag-motion", G_CALLBACK(on_drag_motion), fv);
+ g_signal_connect(fv->view, "drag-leave", G_CALLBACK(on_drag_leave), fv);
+ g_signal_connect(fv->view, "drag-drop", G_CALLBACK(on_drag_drop), fv);
+@@ -739,9 +739,9 @@ void fm_folder_view_set_mode(FmFolderView* fv, FmFolderViewMode mode)
+ gtk_widget_grab_focus(fv->view);
+ }
+ else
+- {
++ {
+ /* g_debug("same mode"); */
+- }
++ }
+ }
+
+ FmFolderViewMode fm_folder_view_get_mode(FmFolderView* fv)
+@@ -785,7 +785,7 @@ void fm_folder_view_sort(FmFolderView* fv, GtkSortType type, int by)
+ fv->sort_by = by;
+ if(fv->model)
+ gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(fv->model),
+- fv->sort_by, fv->sort_type);
++ fv->sort_by, fv->sort_type);
+ }
+
+ GtkSortType fm_folder_view_get_sort_type(FmFolderView* fv)
+@@ -815,18 +815,18 @@ gboolean fm_folder_view_get_show_hidden(FmFolderView* fv)
+
+ gboolean fm_folder_view_chdir_by_name(FmFolderView* fv, const char* path_str)
+ {
+- gboolean ret;
+- FmPath* path;
++ gboolean ret;
++ FmPath* path;
+
+ if( G_UNLIKELY( !path_str ) )
+ return FALSE;
+
+- path = fm_path_new(path_str);
+- if(!path) /* might be a malformed path */
+- return FALSE;
+- ret = fm_folder_view_chdir(fv, path);
+- fm_path_unref(path);
+- return ret;
++ path = fm_path_new_for_str(path_str);
++ if(!path) /* might be a malformed path */
++ return FALSE;
++ ret = fm_folder_view_chdir(fv, path);
++ fm_path_unref(path);
++ return ret;
+ }
+
+ static void on_folder_unmounted(FmFolder* folder, FmFolderView* fv)
+@@ -912,10 +912,10 @@ gboolean fm_folder_view_chdir(FmFolderView* fv, FmPath* path)
+ }
+ }
+
+- /* FIXME: the signal handler should be able to cancel the loading. */
+- g_signal_emit(fv, signals[CHDIR], 0, path);
+- if(fv->cwd)
+- fm_path_unref(fv->cwd);
++ /* FIXME: the signal handler should be able to cancel the loading. */
++ g_signal_emit(fv, signals[CHDIR], 0, path);
++ if(fv->cwd)
++ fm_path_unref(fv->cwd);
+ fv->cwd = fm_path_ref(path);
+
+ fv->folder = folder = fm_folder_get_for_path(path);
+@@ -1041,12 +1041,12 @@ gboolean on_btn_pressed(GtkWidget* view, GdkEventButton* evt, FmFolderView* fv)
+ if(!fv->model)
+ return FALSE;
+
+- /* FIXME: handle single click activation */
++ /* FIXME: handle single click activation */
+ if( evt->type == GDK_BUTTON_PRESS )
+ {
+- /* special handling for ExoIconView */
+- if(evt->button != 1)
+- {
++ /* special handling for ExoIconView */
++ if(evt->button != 1)
++ {
+ if(fv->mode==FM_FV_ICON_VIEW || fv->mode==FM_FV_COMPACT_VIEW || fv->mode==FM_FV_THUMBNAIL_VIEW)
+ {
+ /* select the item on right click for ExoIconView */
+@@ -1089,27 +1089,27 @@ gboolean on_btn_pressed(GtkWidget* view, GdkEventButton* evt, FmFolderView* fv)
+ gtk_tree_path_free(tp);
+ }
+ }
+- }
++ }
+
+- if(evt->button == 2) /* middle click */
+- type = FM_FV_MIDDLE_CLICK;
+- else if(evt->button == 3) /* right click */
+- type = FM_FV_CONTEXT_MENU;
++ if(evt->button == 2) /* middle click */
++ type = FM_FV_MIDDLE_CLICK;
++ else if(evt->button == 3) /* right click */
++ type = FM_FV_CONTEXT_MENU;
+ }
+
+- if( type != FM_FV_CLICK_NONE )
+- {
+- sels = fm_folder_view_get_selected_tree_paths(fv);
+- if( sels || type == FM_FV_CONTEXT_MENU )
+- {
+- item_clicked(fv, sels ? sels->data : NULL, type);
+- if(sels)
+- {
+- g_list_foreach(sels, (GFunc)gtk_tree_path_free, NULL);
+- g_list_free(sels);
+- }
+- }
+- }
++ if( type != FM_FV_CLICK_NONE )
++ {
++ sels = fm_folder_view_get_selected_tree_paths(fv);
++ if( sels || type == FM_FV_CONTEXT_MENU )
++ {
++ item_clicked(fv, sels ? sels->data : NULL, type);
++ if(sels)
++ {
++ g_list_foreach(sels, (GFunc)gtk_tree_path_free, NULL);
++ g_list_free(sels);
++ }
++ }
++ }
+ return FALSE;
+ }
+
+diff --git a/src/gtk/fm-gtk-utils.c b/src/gtk/fm-gtk-utils.c
+index 23b6f33..07df7d5 100644
+--- a/src/gtk/fm-gtk-utils.c
++++ b/src/gtk/fm-gtk-utils.c
+@@ -149,7 +149,7 @@ FmPath* fm_get_user_input_path(GtkWindow* parent, const char* title, const char*
+ }
+
+ str = _fm_user_input_dialog_run( dlg, GTK_ENTRY( entry ) );
+- path = fm_path_new(str);
++ path = fm_path_new_for_str(str);
+
+ g_free(path_str);
+ g_free(str);
+@@ -261,11 +261,9 @@ FmPath* fm_select_folder(GtkWindow* parent)
+ GTK_RESPONSE_OK, NULL);
+ if( gtk_dialog_run((GtkDialog*)chooser) == GTK_RESPONSE_OK )
+ {
+- char* file = gtk_file_chooser_get_filename(chooser);
+- if(!file)
+- file = gtk_file_chooser_get_uri(chooser);
+- path = fm_path_new(file);
+- g_free(file);
++ GFile* file = gtk_file_chooser_get_file(chooser);
++ path = fm_path_new_for_gfile(file);
++ g_object_unref(file);
+ }
+ else
+ path = NULL;
+diff --git a/src/gtk/fm-path-entry.c b/src/gtk/fm-path-entry.c
+index a57b58d..af60d03 100644
+--- a/src/gtk/fm-path-entry.c
++++ b/src/gtk/fm-path-entry.c
+@@ -163,7 +163,7 @@ static void fm_path_entry_changed(GtkEditable *editable)
+ if( !fm_path_equal_str(priv->path, original_key, key_dir_len) )
+ {
+ gchar* new_path = g_path_get_dirname(original_key);
+- FmPath *new_fm_path = fm_path_new(new_path);
++ FmPath *new_fm_path = fm_path_new_for_str(new_path);
+ g_free(new_path);
+ if( new_fm_path != NULL )
+ {
+--
+1.7.0.1
+
+
diff --git a/extra/libfm/PKGBUILD b/extra/libfm/PKGBUILD
new file mode 100644
index 000000000..ab7df7da9
--- /dev/null
+++ b/extra/libfm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110478 2011-02-19 16:45:55Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=libfm
+pkgver=0.1.14
+pkgrel=4
+pkgdesc="the core of next generation file manager PCManFM"
+url="http://pcmanfm.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+groups=('lxde')
+options=('!libtool')
+install=libfm.install
+depends=('gtk2' 'menu-cache' 'shared-mime-info' 'udisks')
+source=(http://downloads.sourceforge.net/pcmanfm/$pkgname-$pkgver.tar.gz
+ 0001-filename-with-spaces-not-supported.patch)
+md5sums=('d55e51dced6bb9ef46665243b079761f'
+ '22bf07665db6eb82989cc8111ef5c3bf')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -p1 -i $srcdir/0001-filename-with-spaces-not-supported.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-udisks --with-gnu-ld
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/libfm/libfm.install b/extra/libfm/libfm.install
new file mode 100644
index 000000000..a2dcc622d
--- /dev/null
+++ b/extra/libfm/libfm.install
@@ -0,0 +1,14 @@
+post_install() {
+ /usr/bin/update-mime-database usr/share/mime > /dev/null
+ /usr/bin/update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+
diff --git a/extra/libfontenc/PKGBUILD b/extra/libfontenc/PKGBUILD
new file mode 100644
index 000000000..1d7ca277f
--- /dev/null
+++ b/extra/libfontenc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 96490 2010-10-21 21:08:10Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libfontenc
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 font encoding library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('zlib')
+makedepends=('pkgconfig' 'xproto>=7.0.18')
+options=('!libtool')
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('ba158e4c10a1aff2351ef632def03dec0e0ee11e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-encodingsdir=/usr/share/fonts/encodings
+
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libfprint/50-fprint.rules b/extra/libfprint/50-fprint.rules
new file mode 100644
index 000000000..25feb8332
--- /dev/null
+++ b/extra/libfprint/50-fprint.rules
@@ -0,0 +1,19 @@
+# aes1610.c
+ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="1600", MODE="0664", GROUP="scanner"
+# aes2501.c
+ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="2580", MODE="0664", GROUP="scanner"
+# aes4000.c
+ATTRS{idVendor}=="08ff", ATTRS{idProduct}=="5501", MODE="0664", GROUP="scanner"
+# fdu2000.c
+ATTRS{idVendor}=="1162", ATTRS{idProduct}=="0300", MODE="0664", GROUP="scanner"
+# upektc.c
+ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2015", MODE="0664", GROUP="scanner"
+# upekts.c
+ATTRS{idVendor}=="0483", ATTRS{idProduct}=="2016", MODE="0664", GROUP="scanner"
+# uru4000.c
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bb", MODE="0664", GROUP="scanner"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bc", MODE="0664", GROUP="scanner"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00bd", MODE="0664", GROUP="scanner"
+ATTRS{idVendor}=="045e", ATTRS{idProduct}=="00ca", MODE="0664", GROUP="scanner"
+ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="0007", MODE="0664", GROUP="scanner"
+ATTRS{idVendor}=="05ba", ATTRS{idProduct}=="000a", MODE="0664", GROUP="scanner"
diff --git a/extra/libfprint/PKGBUILD b/extra/libfprint/PKGBUILD
new file mode 100644
index 000000000..23b1900f0
--- /dev/null
+++ b/extra/libfprint/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 101410 2010-11-29 04:58:17Z allan $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=libfprint
+pkgver=0.0.6
+pkgrel=8
+pkgdesc="Library for fingerprint scanner support in applications"
+arch=('i686' 'x86_64')
+url="http://reactivated.net/fprint/wiki/Main_Page"
+license=('LGPL')
+depends=('libusb-compat' 'imagemagick' 'openssl' 'glib2')
+groups=('fprint')
+options=(!libtool)
+install=fprint.install
+source=(http://downloads.sourceforge.net/sourceforge/fprint/$pkgname-$pkgver.tar.bz2
+ 50-fprint.rules)
+md5sums=('4f47b46021b186488b60aaa97f90fe43' '2c4021484509498fb17bdbe0b6d85ebf')
+sha1sums=('430af91efbefeb2b98fe30215fb33051e4f8efc5' '86e7274711226685dabf7d28f4b93dae85ffb29b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr #--enable-debug-log
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D -m644 "$srcdir/50-fprint.rules" "$pkgdir/lib/udev/rules.d/70-fprint.rules"
+}
diff --git a/extra/libfprint/fprint.install b/extra/libfprint/fprint.install
new file mode 100644
index 000000000..111cb3661
--- /dev/null
+++ b/extra/libfprint/fprint.install
@@ -0,0 +1,19 @@
+# arg 1: the new package version
+post_install() {
+getent group scanner >/dev/null || usr/sbin/groupadd -g 96 scanner
+ /bin/cat <<THEEND
+NOTE
+----
+Add your user to group 'scanner' to use scanner devices.
+THEEND
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
diff --git a/extra/libfs/PKGBUILD b/extra/libfs/PKGBUILD
new file mode 100644
index 000000000..ee278cfd7
--- /dev/null
+++ b/extra/libfs/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 97194 2010-10-27 14:16:19Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libfs
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="X11 Font Services Library"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc' 'xproto' 'fontsproto')
+makedepends=('xorg-util-macros' 'xtrans')
+options=(!libtool)
+source=(${url}/releases/individual/lib/libFS-${pkgver}.tar.bz2)
+sha1sums=('2b33fa17369605303ae70a7de1aa681879249c92')
+
+build() {
+ cd "${srcdir}/libFS-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libftdi/PKGBUILD b/extra/libftdi/PKGBUILD
new file mode 100644
index 000000000..8d89b2f88
--- /dev/null
+++ b/extra/libftdi/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 101400 2010-11-29 04:43:52Z allan $
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libftdi
+pkgver=0.18
+pkgrel=2
+pkgdesc="A library to talk to FTDI chips"
+arch=("i686" "x86_64")
+url="http://www.intra2net.com/en/developer/libftdi/download.php"
+license=("GPL2" "LGPL2.1")
+depends=('libusb-compat')
+makedepends=("boost")
+options=('!libtool')
+source=("http://www.intra2net.com/en/developer/libftdi/download/$pkgname-$pkgver.tar.gz")
+md5sums=('916f65fa68d154621fc0cf1f405f2726')
+sha1sums=('52401db0e7cb90a5d83f82c2859a4f8d44e52579')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ sed -i '/no-install/d' examples/Makefile.in
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/libfwbuilder/PKGBUILD b/extra/libfwbuilder/PKGBUILD
new file mode 100644
index 000000000..d84df7014
--- /dev/null
+++ b/extra/libfwbuilder/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 112491 2011-03-05 04:49:27Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libfwbuilder
+pkgver=4.1.3
+pkgrel=2
+pkgdesc="Support libraries for fwbuilder"
+url="http://www.fwbuilder.org/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libxslt' 'net-snmp' 'gcc-libs')
+makedepends=('qt')
+source=("http://downloads.sourceforge.net/fwbuilder/${pkgname}-${pkgver}.tar.gz")
+md5sums=('810e832a3cadc625917403f4b191fda2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/extra/libgadu/PKGBUILD b/extra/libgadu/PKGBUILD
new file mode 100644
index 000000000..da245d5d6
--- /dev/null
+++ b/extra/libgadu/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114618 2011-03-14 16:59:52Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Mateusz Herych <heniekk@gmail.com>
+
+pkgname=libgadu
+pkgver=1.10.1
+pkgrel=1
+pkgdesc="This library implements the client side of the Gadu-Gadu protocol"
+arch=('i686' 'x86_64')
+url="http://toxygen.net/libgadu/"
+license=('GPL')
+depends=('openssl')
+options=('!libtool')
+source=("http://toxygen.net/${pkgname}/files/${pkgname}-${pkgver}.tar.gz")
+md5sums=('4dd528bc0627e4bd59f79b07f0e8cdbc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --disable-static \
+ --enable-shared \
+ --with-pthread
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libgail-gnome/PKGBUILD b/extra/libgail-gnome/PKGBUILD
new file mode 100644
index 000000000..fc074755f
--- /dev/null
+++ b/extra/libgail-gnome/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 111400 2011-02-26 15:19:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgail-gnome
+pkgver=1.20.4
+pkgrel=1
+pkgdesc="GNOME Accessibility Implementation Library for gnomeui and libbonoboui"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gnome-panel-bonobo' 'at-spi' 'libgnomeui')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool' '!emptydirs')
+groups=('gnome-extra')
+install=libgail-gnome.install
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.20/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('c28f6757bdcf0651883837fc77708aa6b826438c1b96c39332eb9d53ae1bf0b0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/libgail-gnome/libgail-gnome.install b/extra/libgail-gnome/libgail-gnome.install
new file mode 100644
index 000000000..81e110fd1
--- /dev/null
+++ b/extra/libgail-gnome/libgail-gnome.install
@@ -0,0 +1,19 @@
+pkgname=libgail-gnome
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if [ -e usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
diff --git a/extra/libgda/PKGBUILD b/extra/libgda/PKGBUILD
new file mode 100644
index 000000000..f6ff2bcd0
--- /dev/null
+++ b/extra/libgda/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115163 2011-03-17 10:00:41Z andrea $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libgda
+pkgver=4.2.3
+pkgrel=3
+pkgdesc="data abstraction layer; with mysql, pgsql, xml, sqlite providers"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('glib2>=2.26.1' 'libxslt' 'db>=5.1.25' 'ncurses>=5.8'
+ 'libsoup>=2.32.2' 'libmysqlclient>=5.5.10' 'postgresql-libs>=9.0.3')
+makedepends=('intltool')
+options=('!libtool' '!makeflags')
+url="http://www.gnome-db.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/4.2/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('3da161f0dca5d080d0cb7bee7cce9bc918abd42e0e0d5683acff9dfe2e158cb5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's/python/python2/' libgda-report/RML/trml*/trml*.py
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-bdb=/usr --with-bdb-libdir-name=lib \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgdata/PKGBUILD b/extra/libgdata/PKGBUILD
new file mode 100644
index 000000000..324aa5c0c
--- /dev/null
+++ b/extra/libgdata/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 92480 2010-09-30 13:16:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgdata
+pkgver=0.6.5
+pkgrel=1
+pkgdesc="GLib-based library for accessing online service APIs using the GData protocol"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsoup-gnome>=2.32.0')
+makedepends=('pkgconfig' 'intltool' 'gobject-introspection')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('dcb82f7162d69549512444376da2cdea65650ee4dae4d00eed7fbbd3387ddf2c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgdiplus/PKGBUILD b/extra/libgdiplus/PKGBUILD
new file mode 100644
index 000000000..f8d253881
--- /dev/null
+++ b/extra/libgdiplus/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 111499 2011-02-27 11:15:27Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=libgdiplus
+pkgver=2.10
+pkgrel=1
+pkgdesc="An Open Source Implementation of the GDI+ API"
+arch=(i686 x86_64)
+license=('MPL' 'LGPL')
+url="http://www.mono-project.com"
+depends=('libtiff>=3.9.2-2' 'cairo>=1.8.10' 'giflib' 'glib2>=2.24.0' 'libexif')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('451966e8f637e3a1f02d1d30f900255d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-cairo=system || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libgdiplus/gdiplus-png14.patch b/extra/libgdiplus/gdiplus-png14.patch
new file mode 100644
index 000000000..d13260812
--- /dev/null
+++ b/extra/libgdiplus/gdiplus-png14.patch
@@ -0,0 +1,20 @@
+--- src/pngcodec.c.orig 2010-01-16 23:47:17.000000000 +0100
++++ src/pngcodec.c 2010-01-16 23:49:49.000000000 +0100
+@@ -352,7 +352,7 @@
+ info_ptr->palette[i].blue,
+ info_ptr->palette[i].green,
+ info_ptr->palette[i].red,
+- info_ptr->trans[i]); /* alpha */
++ info_ptr->trans_alpha[i]); /* alpha */
+ }
+ }
+
+@@ -418,7 +418,7 @@
+ }
+
+ if ((color_type == PNG_COLOR_TYPE_GRAY) && (bit_depth < 8)) {
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
diff --git a/extra/libgee/PKGBUILD b/extra/libgee/PKGBUILD
new file mode 100644
index 000000000..7a6fe124d
--- /dev/null
+++ b/extra/libgee/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 108155 2011-01-30 12:17:51Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libgee
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="GObject collection library"
+url="http://live.gnome.org/Libgee"
+license=('LGPL2.1')
+arch=('i686' 'x86_64')
+depends=('glib2>=2.26')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/libgee/0.6/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e6220f321b53f7732e0b45db7b8f29088cf4892e798b9b9a02bed16938030121')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libggz/PKGBUILD b/extra/libggz/PKGBUILD
new file mode 100644
index 000000000..99ee52cdf
--- /dev/null
+++ b/extra/libggz/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libggz
+pkgver=0.0.14.1
+pkgrel=1
+pkgdesc="GGZ base library, used by the GGZ Gaming Zone server (ggzd), the ggzcore library and other components"
+arch=(i686 x86_64)
+url="http://www.ggzgamingzone.org/"
+license=('LGPL')
+depends=('libgcrypt')
+options=('!libtool')
+source=(http://ftp.ggzgamingzone.org/pub/ggz/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('603739504648833779aa13b0327a1c3d')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+}
diff --git a/extra/libgksu/PKGBUILD b/extra/libgksu/PKGBUILD
new file mode 100644
index 000000000..b4414d58a
--- /dev/null
+++ b/extra/libgksu/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 90625 2010-09-14 09:37:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgksu
+pkgver=2.0.12
+pkgrel=3
+pkgdesc="gksu authorization library"
+arch=(i686 x86_64)
+url="http://www.nongnu.org/gksu/index.html"
+license=(GPL)
+depends=('libgnome-keyring>=2.30.1' 'libgtop>=2.28.1' 'startup-notification>=0.10' 'gconf>=2.28.1')
+makedepends=('gtk-doc' 'pkgconfig' 'intltool')
+options=('!libtool' '!emptydirs')
+install=libgksu.install
+source=(http://people.debian.org/~kov/gksu/${pkgname}-${pkgver}.tar.gz
+ libgksu-2.0.12-revert-forkpty.patch)
+md5sums=('c7154c8806f791c10e7626ff123049d3'
+ 'aebbe57e5286c654e27cf714cf3b704a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libgksu-2.0.12-revert-forkpty.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ rm -f ${pkgdir}/usr/lib/*.a
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain libgksu ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/libgksu/libgksu-2.0.12-revert-forkpty.patch b/extra/libgksu/libgksu-2.0.12-revert-forkpty.patch
new file mode 100644
index 000000000..2c3a8cc78
--- /dev/null
+++ b/extra/libgksu/libgksu-2.0.12-revert-forkpty.patch
@@ -0,0 +1,359 @@
+diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN libgksu-2.0.12.orig/libgksu/libgksu.c libgksu-2.0.12/libgksu/libgksu.c
+--- libgksu-2.0.12.orig/libgksu/libgksu.c 2009-06-29 13:48:24.000000000 -0400
++++ libgksu-2.0.12/libgksu/libgksu.c 2010-01-12 07:32:10.450657456 -0500
+@@ -1,7 +1,6 @@
+ /*
+ * Gksu -- a library providing access to su functionality
+ * Copyright (C) 2004-2009 Gustavo Noronha Silva
+- * Portions Copyright (C) 2009 VMware, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+@@ -56,9 +55,6 @@
+ static void
+ gksu_context_launch_complete (GksuContext *context);
+
+-static void
+-read_line (int fd, gchar *buffer, int n);
+-
+ GType
+ gksu_error_get_type (void)
+ {
+@@ -2009,8 +2005,6 @@ gksu_su_fuller (GksuContext *context,
+ for (i = 0 ; cmd[i] != NULL ; i++)
+ g_free (cmd[i]);
+ g_free(cmd);
+-
+- _exit(1);
+ }
+ else if (pid == -1)
+ {
+@@ -2125,10 +2119,10 @@ gksu_su_fuller (GksuContext *context,
+ /* drop the \n echoed on password entry if su did request
+ a password */
+ if (password_needed)
+- read_line (fdpty, buf, 255);
++ read (fdpty, buf, 255);
+ if (context->debug)
+ fprintf (stderr, "DEBUG (run:post-after-pass) buf: -%s-\n", buf);
+- read_line (fdpty, buf, 255);
++ read (fdpty, buf, 255);
+ if (context->debug)
+ fprintf (stderr, "DEBUG (run:post-after-pass) buf: -%s-\n", buf);
+ }
+@@ -2142,9 +2136,7 @@ gksu_su_fuller (GksuContext *context,
+ {
+ int retval = 0;
+
+- /* Red Hat's su shows the full path to su in its error messages. */
+- if (!strncmp (buf, "su:", 3) ||
+- !strncmp (buf, "/bin/su:", 7))
++ if (!strncmp (buf, "su", 2))
+ {
+ gchar **strings;
+
+@@ -2155,11 +2147,7 @@ gksu_su_fuller (GksuContext *context,
+ }
+
+ strings = g_strsplit (buf, ":", 2);
+-
+- /* Red Hat and Fedora use 'incorrect password'. */
+- if (strings[1] &&
+- (g_str_has_prefix(strings[1], " Authentication failure") ||
+- g_str_has_prefix(strings[1], " incorrect password")))
++ if (strings[1] && !strncmp (strings[1], " Authentication failure", 23))
+ {
+ if (used_gnome_keyring)
+ g_set_error (error, gksu_quark,
+@@ -2473,12 +2461,6 @@ gksu_sudo_fuller (GksuContext *context,
+ {
+ char **cmd;
+ char buffer[256] = {0};
+- char *child_stderr = NULL;
+- /* This command is used to gain a token */
+- char *const verifycmd[] =
+- {
+- "/usr/bin/sudo", "-p", "GNOME_SUDO_PASS", "-v", NULL
+- };
+ int argcount = 8;
+ int i, j;
+
+@@ -2489,8 +2471,9 @@ gksu_sudo_fuller (GksuContext *context,
+
+ pid_t pid;
+ int status;
+- FILE *fdfile = NULL;
+- int fdpty = -1;
++ FILE *infile, *outfile;
++ int parent_pipe[2]; /* For talking to the parent */
++ int child_pipe[2]; /* For talking to the child */
+
+ context->sudo_mode = TRUE;
+
+@@ -2565,10 +2548,6 @@ gksu_sudo_fuller (GksuContext *context,
+ cmd[argcount] = g_strdup("-S");
+ argcount++;
+
+- /* Make sudo noninteractive (we should already have a token) */
+- cmd[argcount] = g_strdup("-n");
+- argcount++;
+-
+ /* Make sudo use next arg as prompt */
+ cmd[argcount] = g_strdup("-p");
+ argcount++;
+@@ -2647,21 +2626,26 @@ gksu_sudo_fuller (GksuContext *context,
+ fprintf (stderr, "cmd[%d]: %s\n", i, cmd[i]);
+ }
+
+- pid = forkpty(&fdpty, NULL, NULL, NULL);
+- if (pid == 0)
++ if ((pipe(parent_pipe)) == -1)
+ {
+- // Child
+- setsid(); // make us session leader
+-
+- execv(verifycmd[0], verifycmd);
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error creating pipe: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
+
+- g_set_error (error, gksu_quark, GKSU_ERROR_EXEC,
+- _("Failed to exec new process: %s"),
++ if ((pipe(child_pipe)) == -1)
++ {
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error creating pipe: %s"),
+ strerror(errno));
+ sudo_reset_xauth (context, xauth, xauth_env);
+ return FALSE;
+ }
+- else if (pid == -1)
++
++ pid = fork();
++ if (pid == -1)
+ {
+ g_set_error (error, gksu_quark, GKSU_ERROR_FORK,
+ _("Failed to fork new process: %s"),
+@@ -2669,26 +2653,56 @@ gksu_sudo_fuller (GksuContext *context,
+ sudo_reset_xauth (context, xauth, xauth_env);
+ return FALSE;
+ }
++ else if (pid == 0)
++ {
++ // Child
++ setsid(); // make us session leader
++ close(child_pipe[1]);
++ dup2(child_pipe[0], STDIN_FILENO);
++ dup2(parent_pipe[1], STDERR_FILENO);
+
++ execv(cmd[0], cmd);
++
++ g_set_error (error, gksu_quark, GKSU_ERROR_EXEC,
++ _("Failed to exec new process: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
+ else
+ {
+ gint counter = 0;
+ gchar *cmdline = NULL;
+- struct termios tio;
+
+ // Parent
+- fdfile = fdopen(fdpty, "w+");
++ close(parent_pipe[1]);
+
+- /* make sure we notice that ECHO is turned off, if it gets
+- turned off */
+- tcgetattr (fdpty, &tio);
+- for (counter = 0; (tio.c_lflag & ECHO) && counter < 15; counter++)
+- {
+- usleep (1000);
+- tcgetattr (fdpty, &tio);
+- }
++ infile = fdopen(parent_pipe[0], "r");
++ if (!infile)
++ {
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error opening pipe: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
+
+- fcntl (fdpty, F_SETFL, O_NONBLOCK);
++ outfile = fdopen(child_pipe[1], "w");
++ if (!outfile)
++ {
++ g_set_error (error, gksu_quark, GKSU_ERROR_PIPE,
++ _("Error opening pipe: %s"),
++ strerror(errno));
++ sudo_reset_xauth (context, xauth, xauth_env);
++ return FALSE;
++ }
++
++ /*
++ we are expecting to receive a GNOME_SUDO_PASS
++ if we don't there are two possibilities: an error
++ or a password is not needed
++ */
++ fcntl (parent_pipe[0], F_SETFL, O_NONBLOCK);
+
+ { /* no matter if we can read, since we're using
+ O_NONBLOCK; this is just to avoid the prompt
+@@ -2697,11 +2711,11 @@ gksu_sudo_fuller (GksuContext *context,
+ struct timeval tv;
+
+ FD_ZERO(&rfds);
+- FD_SET(fdpty, &rfds);
++ FD_SET(parent_pipe[0], &rfds);
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
+
+- select (fdpty + 1, &rfds, NULL, NULL, &tv);
++ select (parent_pipe[0] + 1, &rfds, NULL, NULL, &tv);
+ }
+
+ /* Try hard to find the prompt; it may happen that we're
+@@ -2713,7 +2727,7 @@ gksu_sudo_fuller (GksuContext *context,
+ if (strncmp (buffer, "GNOME_SUDO_PASS", 15) == 0)
+ break;
+
+- read_line (fdpty, buffer, 256);
++ read_line (parent_pipe[0], buffer, 256);
+
+ if (context->debug)
+ fprintf (stderr, "buffer: -%s-\n", buffer);
+@@ -2747,17 +2761,18 @@ gksu_sudo_fuller (GksuContext *context,
+
+ usleep (1000);
+
+- write (fdpty, password, strlen(password) + 1);
+- write (fdpty, "\n", 1);
++ fprintf (outfile, "%s\n", password);
++ fclose (outfile);
+
+ nullify_password (password);
+
+- fcntl(fdpty, F_SETFL, fcntl(fdpty, F_GETFL) & ~O_NONBLOCK);
++ /* turn NONBLOCK off */
++ fcntl(parent_pipe[0], F_SETFL, fcntl(parent_pipe[0], F_GETFL) & ~O_NONBLOCK);
+ /* ignore the first newline that comes right after sudo receives
+ the password */
+- fgets (buffer, 255, fdfile);
+- /* this is the status we are interested in */
+- fgets (buffer, 255, fdfile);
++ fgets (buffer, 255, infile);
++ /* this is the status we are interessted in */
++ fgets (buffer, 255, infile);
+ }
+ else
+ {
+@@ -2766,7 +2781,7 @@ gksu_sudo_fuller (GksuContext *context,
+ fprintf (stderr, "No password prompt found; we'll assume we don't need a password.\n");
+
+ /* turn NONBLOCK off, also if have no prompt */
+- fcntl(fdpty, F_SETFL, fcntl(fdpty, F_GETFL) & ~O_NONBLOCK);
++ fcntl(parent_pipe[0], F_SETFL, fcntl(parent_pipe[0], F_GETFL) & ~O_NONBLOCK);
+
+ should_display = gconf_client_get_bool (context->gconf_client,
+ BASE_PATH "display-no-pass-info", NULL);
+@@ -2785,9 +2800,14 @@ gksu_sudo_fuller (GksuContext *context,
+ fprintf (stderr, "%s", buffer);
+ }
+
+- if (g_str_has_prefix (buffer, "Sorry, try again."))
++ if (!strcmp (buffer, "Sorry, try again.\n"))
+ g_set_error (error, gksu_quark, GKSU_ERROR_WRONGPASS,
+ _("Wrong password."));
++ else if (!strncmp (buffer, "Sorry, user ", 12))
++ g_set_error (error, gksu_quark, GKSU_ERROR_NOT_ALLOWED,
++ _("The underlying authorization mechanism (sudo) "
++ "does not allow you to run this program. Contact "
++ "the system administrator."));
+ else
+ {
+ gchar *haystack = buffer;
+@@ -2805,10 +2825,6 @@ gksu_sudo_fuller (GksuContext *context,
+ }
+ }
+
+- /* If we have an error, let's just stop sudo right there. */
+- if (error)
+- close(fdpty);
+-
+ cmdline = g_strdup("sudo");
+ /* wait for the child process to end or become something other
+ than sudo */
+@@ -2825,23 +2841,17 @@ gksu_sudo_fuller (GksuContext *context,
+ if (context->sn_context)
+ gksu_context_launch_complete (context);
+
++ while (read (parent_pipe[0], buffer, 255) > 0)
++ {
++ fprintf (stderr, "%s", buffer);
++ bzero(buffer, 256);
++ }
++
+ /* if the process is still active waitpid() on it */
+ if (pid_exited != pid)
+ waitpid(pid, &status, 0);
+ sudo_reset_xauth (context, xauth, xauth_env);
+
+- /*
+- * Did token acquisition succeed? If so, spawn sudo in
+- * non-interactive mode. It should either succeed or die
+- * immediately if you're not allowed to run the command.
+- */
+- if (WEXITSTATUS(status) == 0)
+- {
+- g_spawn_sync(NULL, cmd, NULL, 0, NULL, NULL,
+- NULL, &child_stderr, &status,
+- error);
+- }
+-
+ if (exit_status)
+ {
+ if (WIFEXITED(status)) {
+@@ -2853,13 +2863,6 @@ gksu_sudo_fuller (GksuContext *context,
+
+ if (WEXITSTATUS(status))
+ {
+- if (g_str_has_prefix(child_stderr, "Sorry, user "))
+- {
+- g_set_error (error, gksu_quark, GKSU_ERROR_NOT_ALLOWED,
+- _("The underlying authorization mechanism (sudo) "
+- "does not allow you to run this program. Contact "
+- "the system administrator."));
+- }
+ if(cmdline)
+ {
+ /* sudo already exec()ed something else, don't report
+@@ -2868,7 +2871,6 @@ gksu_sudo_fuller (GksuContext *context,
+ if (!g_str_has_suffix (cmdline, "sudo"))
+ {
+ g_free (cmdline);
+- g_free (child_stderr);
+ return FALSE;
+ }
+ g_free (cmdline);
+@@ -2881,11 +2883,11 @@ gksu_sudo_fuller (GksuContext *context,
+ }
+ }
+
+- fprintf(stderr, child_stderr);
+- g_free(child_stderr);
+-
+ /* if error is set we have found an error condition */
+- return (error == NULL);
++ if (error)
++ return FALSE;
++
++ return TRUE;
+ }
+
+ /**
diff --git a/extra/libgksu/libgksu.install b/extra/libgksu/libgksu.install
new file mode 100644
index 000000000..89cf0cfe4
--- /dev/null
+++ b/extra/libgksu/libgksu.install
@@ -0,0 +1,17 @@
+pkgname=libgksu
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
diff --git a/extra/libglade/PKGBUILD b/extra/libglade/PKGBUILD
new file mode 100644
index 000000000..b5a6d14f4
--- /dev/null
+++ b/extra/libglade/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 104896 2011-01-05 14:08:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libglade
+pkgver=2.6.4
+pkgrel=2
+pkgdesc="Allows you to load glade interface files in a program at runtime"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk2>=2.16.0' 'libxml2>=2.7.3')
+makedepends=('python2' 'pkgconfig')
+optdepends=('python2: libglade-convert script')
+options=('!libtool')
+install=glade.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.6/${pkgname}-${pkgver}.tar.bz2
+ libglade-2.0.1-nowarning.patch)
+url="http://www.gnome.org"
+md5sums=('d1776b40f4e166b5e9c107f1c8fe4139'
+ '4f879c0ce550004905aa0fb24f25c353')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libglade-2.0.1-nowarning.patch"
+ PYTHON=python2 ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 libglade-convert "${pkgdir}/usr/bin/"
+}
diff --git a/extra/libglade/glade.install b/extra/libglade/glade.install
new file mode 100644
index 000000000..a7f05c5de
--- /dev/null
+++ b/extra/libglade/glade.install
@@ -0,0 +1,25 @@
+post_install() {
+ if [ ! -d etc/xml ]; then
+ mkdir -p etc/xml
+ fi
+ if [ ! -e etc/xml/catalog ]; then
+ xmlcatalog --noout --create etc/xml/catalog
+ fi
+ xmlcatalog --noout --add "system" \
+ "http://glade.gnome.org/glade-2.0.dtd" \
+ /usr/share/xml/libglade/glade-2.0.dtd etc/xml/catalog
+}
+
+pre_upgrade() {
+ post_remove
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+post_remove() {
+ xmlcatalog --noout --del \
+ /usr/share/xml/libglade/glade-2.0.dtd etc/xml/catalog
+}
diff --git a/extra/libglade/libglade-2.0.1-nowarning.patch b/extra/libglade/libglade-2.0.1-nowarning.patch
new file mode 100644
index 000000000..fd071215f
--- /dev/null
+++ b/extra/libglade/libglade-2.0.1-nowarning.patch
@@ -0,0 +1,39 @@
+--- libglade-2.0.1/glade/glade-gtk.c.nowarning 2003-08-29 14:50:10.000000000 -0400
++++ libglade-2.0.1/glade/glade-gtk.c 2003-08-29 14:58:41.000000000 -0400
+@@ -639,9 +639,8 @@
+ if (!strcmp (childinfo->properties[j].name, "label")) {
+ label = childinfo->properties[j].value;
+ break;
+- } else {
+- g_warning ("Unknown CList child property: %s", childinfo->properties[j].name);
+ }
++ /* Ignore all other properties */
+ }
+
+ if (label) {
+@@ -683,6 +682,7 @@
+ char *icon = NULL;
+ gboolean use_stock = FALSE, active = FALSE, new_group = FALSE;
+ gboolean use_underline = FALSE;
++ gboolean sensitive = TRUE;
+ GtkWidget *iconw = NULL;
+ int j;
+
+@@ -708,6 +708,8 @@
+ group_name = value;
+ } else if (!strcmp (name, "new_group")) {
+ new_group = BOOL (value);
++ } else if (!strcmp (name, "sensitive")) {
++ sensitive = BOOL (value);
+ } else if (!strcmp (name, "visible")) {
+ /* ignore for now */
+ } else if (!strcmp (name, "tooltip")) {
+@@ -785,6 +787,8 @@
+ gtk_label_set_use_underline (GTK_LABEL (toolbar_child->label),
+ TRUE);
+ }
++
++ gtk_widget_set_sensitive (child, sensitive);
+
+ glade_xml_set_common_params (xml, child, childinfo->child);
+ } else {
diff --git a/extra/libglademm/PKGBUILD b/extra/libglademm/PKGBUILD
new file mode 100644
index 000000000..61ca5e168
--- /dev/null
+++ b/extra/libglademm/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 13345 2008-09-26 21:07:05Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+pkgname=libglademm
+pkgver=2.6.7
+pkgrel=1
+pkgdesc="A C++ wrapper for libglade."
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libglade>=2.6.3' 'gtkmm>=2.14.1')
+makedepends=('pkgconfig')
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.6/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f9ca5b67f6c551ea98790ab5f21c19d0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libgme/PKGBUILD b/extra/libgme/PKGBUILD
new file mode 100644
index 000000000..991fa9a9f
--- /dev/null
+++ b/extra/libgme/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributer: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
+
+pkgname=libgme
+pkgver=0.5.5
+pkgrel=3
+pkgdesc="Video game music file emulation/playback library"
+url="http://game-music-emu.googlecode.com/"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('gcc-libs')
+makedepends=('cmake')
+source=(http://game-music-emu.googlecode.com/files/game-music-emu-${pkgver}.tbz2)
+md5sums=("94459001a763fb76209a550a03b7949e")
+
+build() {
+ cd "${srcdir}/game-music-emu-${pkgver}"
+ mkdir build
+ cd build
+
+ msg "Starting build process."
+ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgnome-keyring/PKGBUILD b/extra/libgnome-keyring/PKGBUILD
new file mode 100644
index 000000000..a7cc0b35e
--- /dev/null
+++ b/extra/libgnome-keyring/PKGBUILD
@@ -0,0 +1,24 @@
+#$Id: PKGBUILD 91799 2010-09-28 06:50:31Z jgc $
+#Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=libgnome-keyring
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="GNOME keyring client library"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('dbus-core>=1.4.0' 'libgcrypt>=1.4.6' 'glib2>=2.26.0')
+makedepends=('intltool' 'pkgconfig' 'python2' 'gtk-doc')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('56388c0d81ddfdb57d30e4963c83ecc1c18498aab99395420e0fff69929a0f0c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-keyring
+ make
+ make -j1 DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgnome/PKGBUILD b/extra/libgnome/PKGBUILD
new file mode 100644
index 000000000..d989f6512
--- /dev/null
+++ b/extra/libgnome/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 99674 2010-11-16 00:21:13Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libgnome
+pkgname=('libgnome' 'libgnome-data')
+pkgver=2.32.0
+pkgrel=3
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('intltool' 'gnome-vfs>=2.24.3' 'libbonobo>=2.32.0' 'gconf>=2.32.0' 'gvfs>=1.6.6' 'libcanberra>=0.25')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('d65e49bf075eb2b3efebec38ceb409693154d18396365765da1a71630bc3dd02')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static --disable-esd
+ make
+}
+
+package_libgnome() {
+ pkgdesc="Common libraries for GNOME"
+ depends=("libgnome-data=${pkgver}" 'gnome-vfs>=2.24.3' 'libbonobo>=2.32.0' 'gconf>=2.32.0' 'gvfs>=1.6.6' 'libcanberra>=0.25')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ make -C libgnome DESTDIR="${pkgdir}" install
+ make -C monikers DESTDIR="${pkgdir}" install
+}
+
+package_libgnome-data() {
+ pkgdesc="Common data from libgnome"
+ depends=('gconf')
+ install=libgnome.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ for dir in doc gnome-data po schemas
+ do
+ make -C $dir GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ done
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain libgnome-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/libgnome/libgnome.install b/extra/libgnome/libgnome.install
new file mode 100644
index 000000000..db4e04d4d
--- /dev/null
+++ b/extra/libgnome/libgnome.install
@@ -0,0 +1,17 @@
+pkgname=libgnome
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
diff --git a/extra/libgnomecanvas/PKGBUILD b/extra/libgnomecanvas/PKGBUILD
new file mode 100644
index 000000000..6bc8b6893
--- /dev/null
+++ b/extra/libgnomecanvas/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 108491 2011-01-31 15:14:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomecanvas
+pkgver=2.30.3
+pkgrel=1
+pkgdesc="The GNOME Canvas library"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libglade>=2.6.4' 'libart-lgpl>=2.3.21')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('859b78e08489fce4d5c15c676fec1cd79782f115f516e8ad8bed6abcb8dedd40')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static \
+ --enable-glade
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgnomecanvasmm/PKGBUILD b/extra/libgnomecanvasmm/PKGBUILD
new file mode 100644
index 000000000..dcb7eccb0
--- /dev/null
+++ b/extra/libgnomecanvasmm/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 33795 2009-04-04 20:02:36Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=libgnomecanvasmm
+pkgver=2.26.0
+pkgrel=1
+pkgdesc="A C++ wrapper for libgnomecanvas."
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtkmm>=2.16.0' 'libgnomecanvas>=2.26.0')
+makedepends=('pkgconfig')
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.26/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a148c99311d46397de6e4a31736771ab')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libgnomecups/PKGBUILD b/extra/libgnomecups/PKGBUILD
new file mode 100644
index 000000000..2a510ccde
--- /dev/null
+++ b/extra/libgnomecups/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 75341 2010-04-01 10:56:43Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Paulius Palevicius <paulius@birzai.com>
+
+pkgname=libgnomecups
+pkgver=0.2.3
+pkgrel=7
+pkgdesc="GNOME cups library"
+arch=(i686 x86_64)
+license=('LGPL' 'GPL')
+url="http://www.gnome.org"
+depends=('libcups>=1.3.8-2' 'glib2>=2.16.4' 'heimdal>=1.3.1' 'gnutls>=2.4.1')
+makedepends=('perlxml')
+options=(!libtool)
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2
+ libgnomecups_0.2.3-ignore-ipp-not-found.patch)
+md5sums=('dc4920c15c9f886f73ea74fbff0ae48b'
+ '973a1b9d93013ce431400a14b78f5d94')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # This avoids generating huge 'IPP request failed with status 1030' lines
+ patch -Np1 -i ${srcdir}/libgnomecups_0.2.3-ignore-ipp-not-found.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libgnomecups/libgnomecups_0.2.3-ignore-ipp-not-found.patch b/extra/libgnomecups/libgnomecups_0.2.3-ignore-ipp-not-found.patch
new file mode 100644
index 000000000..797367bf9
--- /dev/null
+++ b/extra/libgnomecups/libgnomecups_0.2.3-ignore-ipp-not-found.patch
@@ -0,0 +1,11 @@
+--- a/libgnomecups/gnome-cups-request.c 2007-01-31 10:49:17.000000000 -0800
++++ b/libgnomecups/gnome-cups-request.c 2009-11-24 12:49:30.000000000 -0800
+@@ -349,7 +349,7 @@
+ if (request->response == NULL)
+ status = IPP_INTERNAL_ERROR;
+
+- if (status > IPP_OK_CONFLICT) {
++ if (status > IPP_OK_CONFLICT && status != IPP_NOT_FOUND) {
+ g_warning ("IPP request failed with status %d", status);
+ if (request->error != NULL)
+ *(request->error) = g_error_new (GNOME_CUPS_ERROR,
diff --git a/extra/libgnomekbd/PKGBUILD b/extra/libgnomekbd/PKGBUILD
new file mode 100644
index 000000000..8f7640786
--- /dev/null
+++ b/extra/libgnomekbd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 91776 2010-09-27 21:05:35Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomekbd
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Gnome keyboard library"
+url="http://gswitchit.sourceforge.net"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libxklavier>=5.0' 'gconf>=2.32.0')
+makedepends=('intltool' 'pkg-config')
+options=('!libtool' '!emptydirs')
+install=libgnomekbd.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('ddd52c4cc7d83ad7ef964a1bcb4db87407e65b00ffc3e70c088ca4ee7383d256')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain libgnomekbd ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/libgnomekbd/libgnomekbd.install b/extra/libgnomekbd/libgnomekbd.install
new file mode 100644
index 000000000..9fc9f556e
--- /dev/null
+++ b/extra/libgnomekbd/libgnomekbd.install
@@ -0,0 +1,17 @@
+pkgname=libgnomekbd
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/libgnomemm/PKGBUILD b/extra/libgnomemm/PKGBUILD
new file mode 100644
index 000000000..7696a5f30
--- /dev/null
+++ b/extra/libgnomemm/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 73927 2010-03-29 11:46:31Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=libgnomemm
+pkgver=2.30.0
+pkgrel=1
+pkgdesc="C++ bindings for libgnome."
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libgnome>=2.28.0' 'gtkmm>=2.20.0')
+makedepends=('pkgconfig')
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2a01f068ff73a1985d050e75f899fec34ac13622e2ead43523a4e2b0875042cf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libgnomeprint/PKGBUILD b/extra/libgnomeprint/PKGBUILD
new file mode 100644
index 000000000..af1265592
--- /dev/null
+++ b/extra/libgnomeprint/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 91999 2010-09-28 16:38:45Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomeprint
+pkgver=2.18.8
+pkgrel=1
+pkgdesc="Printing routines for GNOME"
+arch=(i686 x86_64)
+license=('LGPL' 'GPL')
+depends=('pango>=1.28.1' 'libart-lgpl>=2.3.21' 'libxml2>=2.7.7' 'libgnomecups>=0.2.3-4' 'heimdal>=1.3.3' 'gnutls>=2.8.6')
+makedepends=('intltool' 'pkgconfig')
+replaces=('libgnomeprint-cups')
+conflicts=('libgnomeprint-cups')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.18/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1034ec8651051f84d2424e7a1da61c530422cc20ce5b2d9e107e1e46778d9691')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgnomeprintui/PKGBUILD b/extra/libgnomeprintui/PKGBUILD
new file mode 100644
index 000000000..0a8186213
--- /dev/null
+++ b/extra/libgnomeprintui/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 92010 2010-09-28 16:45:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomeprintui
+pkgver=2.18.6
+pkgrel=1
+pkgdesc="User Interface library for printing with GNOME"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('libgnomeprint>=2.18.8' 'libgnomecanvas>=2.30.2' 'gnome-icon-theme>=2.31.0')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.18/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('156ae5b66e5dcc546efa2449048f792d76c55b30d93a9b67b0c69665e346f46a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgnomeui/PKGBUILD b/extra/libgnomeui/PKGBUILD
new file mode 100644
index 000000000..7538c8acc
--- /dev/null
+++ b/extra/libgnomeui/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 91726 2010-09-27 18:45:46Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomeui
+pkgver=2.24.4
+pkgrel=1
+pkgdesc="User Interface library for GNOME"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libbonoboui>=2.24.3' 'libgnome-keyring>=2.31.92' 'libsm')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.24/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('a64dcb5af190ec0bfe2ba647ab09a90e4187336fa417d301abfb736be41283b2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/libgnomeui
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgnomeuimm/PKGBUILD b/extra/libgnomeuimm/PKGBUILD
new file mode 100644
index 000000000..0d88685d5
--- /dev/null
+++ b/extra/libgnomeuimm/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 55079 2009-10-11 21:58:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <typeolinux@yahoo.com>
+
+pkgname=libgnomeuimm
+pkgver=2.28.0
+pkgrel=1
+pkgdesc="A C++ wrapper for libgnomeui."
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgnomeui>=2.24.1' 'libgnomecanvasmm>=2.26.0' 'libgnomemm>=2.28.0' 'libglademm>=2.6.7' 'gconfmm>=2.28.0' 'gnome-vfsmm>=2.26.0')
+makedepends=('pkgconfig')
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('6cb46494913f1e5e34b94a0f5b9ff8ef238bb71e3b08d0ef0ab7f4a7c88211d3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libgphoto2/PKGBUILD b/extra/libgphoto2/PKGBUILD
new file mode 100644
index 000000000..23e7d74b9
--- /dev/null
+++ b/extra/libgphoto2/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 101286 2010-11-28 17:59:39Z ibiru $
+# Maintainer: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=libgphoto2
+pkgver=2.4.10.1
+pkgrel=2
+pkgdesc="The core library of gphoto2, designed to allow access to digital camera by external programs."
+arch=(i686 x86_64)
+url="http://www.gphoto.org"
+license=(LGPL)
+depends=('libexif>=0.6.19' 'libjpeg>=8' 'gd' 'libtool>=2.4' 'libusb-compat')
+install=libgphoto2.install
+options=('libtool')
+source=(http://downloads.sourceforge.net/gphoto/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8bf2bd1e267909203ec1e7f6ea3f83a0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ udevscriptdir=/lib/udev ./configure --prefix=/usr --with-drivers=all --disable-static --disable-rpath
+ LD_PRELOAD="" make
+ make DESTDIR="${pkgdir}" install
+
+ rm -f ${pkgdir}/usr/lib/libgphoto2/${pkgver}/*.a
+
+ install -m755 -d "${pkgdir}/usr/share/hal/fdi/information/20thirdparty"
+ install -m755 -d "${pkgdir}/lib/udev/rules.d"
+ LD_LIBRARY_PATH="${pkgdir}/usr/lib${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" \
+ CAMLIBS="${pkgdir}/usr/lib/libgphoto2/${pkgver}" \
+ "${pkgdir}/usr/lib/libgphoto2/print-camera-list" hal-fdi > \
+ "${pkgdir}/usr/share/hal/fdi/information/20thirdparty/10-camera-libgphoto2.fdi"
+
+ LD_LIBRARY_PATH="${pkgdir}/usr/lib${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" \
+ CAMLIBS="${pkgdir}/usr/lib/libgphoto2/${pkgver}" \
+ "${pkgdir}/usr/lib/libgphoto2/print-camera-list" udev-rules version 136 group camera mode 0660 > \
+ "${pkgdir}/lib/udev/rules.d/40-gphoto.rules"
+
+ # Remove recursive symlink
+ rm -f "${pkgdir}/usr/include/gphoto2/gphoto2"
+}
diff --git a/extra/libgphoto2/libgphoto2.install b/extra/libgphoto2/libgphoto2.install
new file mode 100644
index 000000000..3aee9ff8a
--- /dev/null
+++ b/extra/libgphoto2/libgphoto2.install
@@ -0,0 +1,16 @@
+post_install() {
+ getent group camera >/dev/null || usr/sbin/groupadd -g 97 camera
+ /bin/cat <<THEEND
+NOTE
+----
+Add your user to group 'camera' to use camera devices.
+THEEND
+}
+
+post_upgrade() {
+ getent group camera >/dev/null || usr/sbin/groupadd -g 97 camera
+}
+
+post_remove() {
+ usr/sbin/groupdel camera &>/dev/null
+}
diff --git a/extra/libgpod/PKGBUILD b/extra/libgpod/PKGBUILD
new file mode 100644
index 000000000..5f520cd5b
--- /dev/null
+++ b/extra/libgpod/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 95175 2010-10-16 19:19:22Z remy $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libgpod
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="A shared library to access the contents of an iPod"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk2>=2.20.1' 'mutagen' 'sg3_utils>=1.27' 'libimobiledevice>=1.0.1')
+makedepends=('intltool' 'swig' 'docbook-xsl' 'pygobject' 'gtk-sharp-2')
+optdepends=('gtk-sharp-2: Mono bindings')
+url="http://www.gtkpod.org/libgpod/"
+source=(http://downloads.sourceforge.net/sourceforge/gtkpod/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool' '!emptydirs')
+md5sums=('6660f74cc53293dcc847407aa5f672ce')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-udev --with-python=/usr/bin/python2
+ make PREFIX=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+}
+
diff --git a/extra/libgsf/PKGBUILD b/extra/libgsf/PKGBUILD
new file mode 100644
index 000000000..4a62231dd
--- /dev/null
+++ b/extra/libgsf/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 116824 2011-03-25 21:58:52Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgbase=libgsf
+pkgname=('libgsf' 'libgsf-gnome')
+pkgver=1.14.20
+pkgrel=1
+arch=(i686 x86_64)
+url="http://www.gnome.org/"
+license=('GPL' 'LGPL')
+makedepends=('libxml2' 'glib2' 'bzip2' 'intltool' 'pkgconfig'
+ 'python2' 'libbonobo' 'gconf' 'pygtk')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/1.14/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('df82cd86e472a6f8e566976eb7eb8f587aac2639c1448b14b4dbf4db7da1ada6')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --mandir=/usr/share/man --disable-static
+ make
+}
+
+package_libgsf() {
+ pkgdesc="The GNOME Structured File Library is a utility library for reading and writing structured file formats"
+ depends=('libxml2' 'glib2' 'bzip2')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+ rm -f "${pkgdir}/usr/share/man/man1/gsf-office-thumbnailer.1"
+ rm -f "${pkgdir}/usr/lib/libgsf-gnome"*
+ rm -rf "${pkgdir}/usr/include/libgsf-1/gsf-gnome/"
+ rm -rf "${pkgdir}/etc/gconf"
+ rm -f "${pkgdir}/usr/lib/pkgconfig/libgsf-gnome-1.pc"
+ rm -f "${pkgdir}/usr/bin/gsf-office-thumbnailer"
+ rm -f "${pkgdir}"/usr/lib/python*/site-packages/gsf/gnomemodule.so
+}
+
+package_libgsf-gnome() {
+ pkgdesc="Libgsf GNOME components"
+ depends=("libgsf=${pkgver}" 'libbonobo' 'gconf')
+ install=libgsf-gnome.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C gsf DESTDIR="${pkgdir}" install-libLTLIBRARIES
+ make -C gsf-gnome DESTDIR="${pkgdir}" install
+ make -C thumbnailer DESTDIR="${pkgdir}" install
+ make -C python DESTDIR="${pkgdir}" install
+ make -C doc DESTDIR="${pkgdir}" install-manpageDATA
+
+ rm -f "${pkgdir}/usr/share/man/man1/gsf.1"
+ rm -f "${pkgdir}/usr/share/man/man1/gsf-vba-dump.1"
+ rm -f "${pkgdir}"/usr/lib/python*/site-packages/gsf/_*
+ rm -f "${pkgdir}"/usr/lib/libgsf-1.so*
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m644 libgsf-gnome-1.pc "${pkgdir}/usr/lib/pkgconfig/"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/libgsf-gnome.schemas" --domain libgsf "${pkgdir}/etc/gconf/schemas/"*.schemas
+ rm -f "${pkgdir}/etc/gconf/schemas/"*.schemas
+}
diff --git a/extra/libgsf/libgsf-gnome.install b/extra/libgsf/libgsf-gnome.install
new file mode 100644
index 000000000..60f62ff35
--- /dev/null
+++ b/extra/libgsf/libgsf-gnome.install
@@ -0,0 +1,19 @@
+pkgname=libgsf-gnome
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
diff --git a/extra/libgtkhtml/PKGBUILD b/extra/libgtkhtml/PKGBUILD
new file mode 100644
index 000000000..806292886
--- /dev/null
+++ b/extra/libgtkhtml/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 18538 2008-11-06 23:27:45Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libgtkhtml
+pkgver=2.11.1
+pkgrel=2
+pkgdesc="An HTML library for GTK"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk2>=2.14.4' 'libxml2>=2.6.32')
+makedepends=('perlxml' 'pkgconfig')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.11/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a1d1a197dcff8c4571659deef5495e24')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libgtop/PKGBUILD b/extra/libgtop/PKGBUILD
new file mode 100644
index 000000000..a602fbea1
--- /dev/null
+++ b/extra/libgtop/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 91991 2010-09-28 16:33:41Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgtop
+pkgver=2.28.2
+pkgrel=1
+pkgdesc="A library that read information about processes and the running system"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('glib2>=2.26' 'libxau' 'texinfo')
+makedepends=('intltool')
+install=libgtop.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+url="http://www.gnome.org/"
+sha256sums=('49958d7da1f76b257bfd0d557d8ed2b218a5ab0d31b59fed1c32ddf2a1529f5d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-libgtop-smp
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libgtop/libgtop.install b/extra/libgtop/libgtop.install
new file mode 100644
index 000000000..15690f125
--- /dev/null
+++ b/extra/libgtop/libgtop.install
@@ -0,0 +1,13 @@
+info_dir=/usr/share/info
+
+post_install() {
+ install-info ${info_dir}/libgtop2.info.gz ${info_dir}/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete ${info_dir}/libgtop2.info.gz ${info_dir}/dir 2> /dev/null
+}
diff --git a/extra/libguess/PKGBUILD b/extra/libguess/PKGBUILD
new file mode 100644
index 000000000..d3f7e0cef
--- /dev/null
+++ b/extra/libguess/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Kemka Andrey <dr.andru@gmail.com>
+
+pkgname=libguess
+pkgver=1.0
+pkgrel=2
+pkgdesc='High-speed character set detection library'
+arch=('i686' 'x86_64')
+url='http://atheme.org/project/libguess'
+license=('BSD')
+depends=('libmowgli' 'glibc')
+source=("http://distfiles.atheme.org/libguess-$pkgver.tgz")
+sha1sums=('b5324b4840176324576eb91d401e5f9e1322feec')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D COPYING "$pkgdir"/usr/share/licenses/libguess/COPYING
+}
diff --git a/extra/libgweather/01_gettext_not_xml.patch b/extra/libgweather/01_gettext_not_xml.patch
new file mode 100644
index 000000000..d5f57305e
--- /dev/null
+++ b/extra/libgweather/01_gettext_not_xml.patch
@@ -0,0 +1,527 @@
+only in patch2:
+unchanged:
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/configure.in libgweather-2.27.91.new/configure.in
+--- libgweather-2.27.91/configure.in 2009-08-25 23:56:58.000000000 +1000
++++ libgweather-2.27.91.new/configure.in 2009-08-26 11:54:52.000000000 +1000
+@@ -40,6 +40,10 @@
+ AM_MAINTAINER_MODE
+ GNOME_MAINTAINER_MODE_DEFINES
+
++dnl IT_PROG_INTLTOOL does this for us in the case of the po/ subdir, but we're on our own for po-locations
++AC_OUTPUT_COMMANDS([sed -e "/POTFILES =/r po/POTFILES" po-locations/Makefile.in > po-locations/Makefile])
++IT_PO_SUBDIR([po-locations])
++
+ IT_PROG_INTLTOOL([0.40.3])
+ PKG_PROG_PKG_CONFIG([0.19])
+
+@@ -50,13 +54,6 @@
+ AM_PROG_LIBTOOL
+ AC_PATH_PROG(GCONFTOOL, gconftool-2)
+
+-AC_ARG_ENABLE(all-translations-in-one-xml,
+- [AC_HELP_STRING([--enable-all-translations-in-one-xml],
+- [Put all translations in a big Locations.xml file (slow to parse)])],
+- [enable_big_xml=yes],
+- [enable_big_xml=no])
+-AM_CONDITIONAL(USE_ONE_BIG_XML, test "x$enable_big_xml" = "xyes")
+-
+ AC_ARG_ENABLE(locations-compression,
+ [AC_HELP_STRING([--enable-locations-compression],
+ [Compress Locations.xml files])],
+@@ -253,7 +250,7 @@
+ Makefile
+ doc/Makefile
+ po/Makefile.in
+-po-locations/Makefile
++po-locations/Makefile.in
+ libgweather/Makefile
+ libgweather/gweather.pc
+ libgweather/gweather-uninstalled.pc
+@@ -261,12 +258,6 @@
+ python/Makefile
+ ])
+
+-if test "x$enable_big_xml" = "xyes"; then
+- LOCATIONS_XML_TRANSLATIONS="one big file"
+-else
+- LOCATIONS_XML_TRANSLATIONS="one file per translation"
+-fi
+-
+ dnl ***************************************************************************
+ dnl *** Display Summary ***
+ dnl ***************************************************************************
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/data/Makefile.am libgweather-2.27.91.new/data/Makefile.am
+--- libgweather-2.27.91/data/Makefile.am 2009-07-22 03:01:11.000000000 +1000
++++ libgweather-2.27.91.new/data/Makefile.am 2009-08-26 11:57:46.000000000 +1000
+@@ -4,55 +4,23 @@
+ libgweatherlocationsdir = $(pkgdatadir)
+ libgweatherlocations_in_files = Locations.xml.in
+
+-if USE_ONE_BIG_XML
+-
+-LOCATIONS_STAMP =
+-
+-libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml$(COMPRESS_EXT))
+-
+-%.xml$(COMPRESS_EXT): %.xml.in $(wildcard $(top_srcdir)/po-locations/*.po)
+- $(AM_V_GEN)LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"` && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"`; \
+- fi
+-
+-else # USE_ONE_BIG_XML
+-
+ LOCATIONS_STAMP = stamp-Locations.xml
+
+-PO_LOCATIONS = $(shell if test -n "$(LINGUAS)"; then for lang in $(LINGUAS); do if test -f "$(top_srcdir)/po-locations/$$lang.po"; then echo "$(top_srcdir)/po-locations/$$lang.po "; fi; done; else for pofile in $(top_srcdir)/po-locations/*.po; do echo $$pofile; done; fi)
+-
+ # Helper variable
+-libgweatherlocations_data = $(libgweatherlocations_in_files:.xml.in=.xml)
+-
+-libgweatherlocations_DATA = $(shell echo $(PO_LOCATIONS) | sed "s|$(top_srcdir)/po-locations/|Locations.|g;s|\.po|.xml$(COMPRESS_EXT)|g") $(libgweatherlocations_data)$(COMPRESS_EXT)
++libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml)
+
+ # We need this step so that we merge all the make Locations.xy.xml destinations
+ # into one unique destination. This makes -j2 work. (Else, we end up with
+ # multiple and conflicting calls to intltool-merge)
+ $(libgweatherlocations_DATA): $(LOCATIONS_STAMP)
+
+-$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) $(PO_LOCATIONS) Makefile
+- $(AM_V_at)LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< $(libgweatherlocations_data) && \
+- for pofile in $(PO_LOCATIONS); do \
+- locale=`echo $$pofile | sed "s;$(top_srcdir)/po-locations/\(.*\)\.po;\1;"`; \
+- xmllint --noblanks -o Locations.$$locale.xml $$locale/$(libgweatherlocations_data); \
+- rm -f $$locale/$(libgweatherlocations_data); \
+- test -d $$locale && rmdir $$locale; \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.$$locale.xml; \
+- fi; \
+- done && \
+- xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_data) && \
+- rm -f C/$(libgweatherlocations_data) && \
++$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) Makefile
++ LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache /dev/null $< $(libgweatherlocations_DATA) && \
++ xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_DATA) && \
++ rm -f C/$(libgweatherlocations_DATA) && \
+ test -d C && rmdir C && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.xml; \
+- fi && \
+ touch $@
+
+-endif # USE_ONE_BIG_XML
+-
+ check:
+ xmllint --valid --noout $(top_srcdir)/data/Locations.xml.in
+ $(srcdir)/check-timezones.sh $(srcdir)/Locations.xml.in
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/libgweather/gweather-location.c libgweather-2.27.91.new/libgweather/gweather-location.c
+--- libgweather-2.27.91/libgweather/gweather-location.c 2009-04-20 03:41:11.000000000 +1000
++++ libgweather-2.27.91.new/libgweather/gweather-location.c 2009-08-26 11:54:52.000000000 +1000
+@@ -22,11 +22,14 @@
+ #include <config.h>
+ #endif
+
++#include "config.h"
++
+ #include <string.h>
+ #include <math.h>
+ #include <locale.h>
+ #include <gtk/gtk.h>
+ #include <libxml/xmlreader.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-location.h"
+@@ -184,10 +187,20 @@
+
+ tagname = (const char *) xmlTextReaderConstName (parser->xml);
+ if (!strcmp (tagname, "name") && !loc->name) {
+- value = gweather_parser_get_localized_value (parser);
++ char *context = NULL;
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++
++ value = gweather_parser_get_value (parser);
+ if (!value)
+ goto error_out;
+- loc->name = g_strdup (value);
++
++ if (context != NULL) {
++ loc->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, value));
++ xmlFree (context);
++ }
++ else
++ loc->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",value));
++
+ xmlFree (value);
+ normalized = g_utf8_normalize (loc->name, -1, G_NORMALIZE_ALL);
+ loc->sort_name = g_utf8_casefold (normalized, -1);
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/libgweather/gweather-timezone.c libgweather-2.27.91.new/libgweather/gweather-timezone.c
+--- libgweather-2.27.91/libgweather/gweather-timezone.c 2009-08-12 19:00:52.000000000 +1000
++++ libgweather-2.27.91.new/libgweather/gweather-timezone.c 2009-08-26 11:54:52.000000000 +1000
+@@ -23,6 +23,7 @@
+ #endif
+
+ #include <string.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-timezone.h"
+@@ -152,7 +153,7 @@
+ parse_timezone (GWeatherParser *parser)
+ {
+ GWeatherTimezone *zone = NULL;
+- char *id = NULL, *name = NULL;
++ char *id = NULL, *name = NULL, *context = NULL;
+ int offset = 0, dst_offset = 0;
+ gboolean has_dst = FALSE;
+
+@@ -175,27 +176,34 @@
+ continue;
+ }
+
+- if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name"))
+- name = gweather_parser_get_localized_value (parser);
++ if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name")) {
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++ name = gweather_parser_get_value (parser);
++ }
+ else {
+ if (xmlTextReaderNext (parser->xml) != 1)
+ break;
+ }
+ }
+ }
+-
++
+ if (parse_tzdata (id, parser->year_start, parser->year_end,
+ &offset, &has_dst, &dst_offset)) {
+ zone = g_slice_new0 (GWeatherTimezone);
+ zone->ref_count = 1;
+ zone->id = g_strdup (id);
+- zone->name = g_strdup (name);
++ if (context != NULL)
++ zone->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, name));
++ else
++ zone->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",name));
+ zone->offset = offset;
+ zone->has_dst = has_dst;
+ zone->dst_offset = dst_offset;
+ }
+
+ xmlFree (id);
++ if (context)
++ xmlFree (context);
+ if (name)
+ xmlFree (name);
+
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/po-locations/LINGUAS libgweather-2.27.91.new/po-locations/LINGUAS
+--- libgweather-2.27.91/po-locations/LINGUAS 1970-01-01 10:00:00.000000000 +1000
++++ libgweather-2.27.91.new/po-locations/LINGUAS 2009-08-26 11:54:52.000000000 +1000
+@@ -0,0 +1,78 @@
++ang
++ar
++as
++az
++be
++be@latin
++bg
++bn_IN
++bn
++bs
++ca
++cs
++cy
++da
++de
++dz
++el
++en_CA
++en_GB
++es
++et
++eu
++fa
++fi
++fr
++ga
++gl
++gu
++he
++hi
++hr
++hu
++id
++it
++ja
++ka
++kn
++ko
++ku
++ky
++lt
++lv
++mai
++mg
++mk
++ml
++mn
++mr
++ms
++nb
++ne
++nl
++nn
++oc
++or
++pa
++pl
++pt_BR
++pt
++ro
++ru
++rw
++si
++sk
++sl
++sq
++sr@latin
++sr
++sv
++ta
++te
++th
++tr
++uk
++vi
++zh_CN
++zh_HK
++zh_TW
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/po-locations/Makefile.in.in libgweather-2.27.91.new/po-locations/Makefile.in.in
+--- libgweather-2.27.91/po-locations/Makefile.in.in 1970-01-01 10:00:00.000000000 +1000
++++ libgweather-2.27.91.new/po-locations/Makefile.in.in 2009-08-26 11:54:52.000000000 +1000
+@@ -0,0 +1,217 @@
++# Makefile for program source directory in GNU NLS utilities package.
++# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
++# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
++#
++# This file may be copied and used freely without restrictions. It may
++# be used in projects which are not available under a GNU Public License,
++# but which still want to provide support for the GNU gettext functionality.
++#
++# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
++# instead of PACKAGE and to look for po2tbl in ./ not in intl/
++#
++# - Modified by jacob berkman <jacob@ximian.com> to install
++# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
++#
++# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
++#
++# We have the following line for use by intltoolize:
++# INTLTOOL_MAKEFILE
++
++GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-locations
++PACKAGE = @PACKAGE@
++VERSION = @VERSION@
++
++SHELL = /bin/sh
++
++srcdir = @srcdir@
++top_srcdir = @top_srcdir@
++top_builddir = @top_builddir@
++VPATH = @srcdir@
++
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++datadir = @datadir@
++datarootdir = @datarootdir@
++libdir = @libdir@
++DATADIRNAME = @DATADIRNAME@
++itlocaledir = $(prefix)/$(DATADIRNAME)/locale
++subdir = po-locations
++install_sh = @install_sh@
++# Automake >= 1.8 provides @mkdir_p@.
++# Until it can be supposed, use the safe fallback:
++mkdir_p = $(install_sh) -d
++
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++
++GMSGFMT = @GMSGFMT@
++MSGFMT = @MSGFMT@
++XGETTEXT = @XGETTEXT@
++INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
++INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
++MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
++GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
++
++ALL_LINGUAS = @ALL_LINGUAS@
++
++PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
++
++USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi)
++
++USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
++
++POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
++
++DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES)
++EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
++
++POTFILES = \
++# This comment gets stripped out
++
++CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
++
++.SUFFIXES:
++.SUFFIXES: .po .pox .gmo .mo .msg .cat
++
++.po.pox:
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
++
++.po.mo:
++ $(MSGFMT) -o $@ $<
++
++.po.gmo:
++ file=`echo $* | sed 's,.*/,,'`.gmo \
++ && rm -f $$file && $(GMSGFMT) -o $$file $<
++
++.po.cat:
++ sed -f ../intl/po2msg.sed < $< > $*.msg \
++ && rm -f $@ && gencat $@ $*.msg
++
++
++all: all-@USE_NLS@
++
++all-yes: $(CATALOGS)
++all-no:
++
++$(GETTEXT_PACKAGE).pot: $(POTFILES)
++ $(GENPOT)
++
++install: install-data
++install-data: install-data-@USE_NLS@
++install-data-no: all
++install-data-yes: all
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
++ $(mkdir_p) $$dir; \
++ if test -r $$lang.gmo; then \
++ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
++ else \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $(srcdir)/$$lang.gmo as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo"; \
++ fi; \
++ if test -r $$lang.gmo.m; then \
++ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ if test -r $(srcdir)/$$lang.gmo.m ; then \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
++ $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $(srcdir)/$$lang.gmo.m as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ true; \
++ fi; \
++ fi; \
++ done
++
++# Empty stubs to satisfy archaic automake needs
++dvi info tags TAGS ID:
++
++# Define this as empty until I found a useful application.
++install-exec installcheck:
++
++uninstall:
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
++ done
++
++check: all $(GETTEXT_PACKAGE).pot
++ rm -f missing notexist
++ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
++ if [ -r missing -o -r notexist ]; then \
++ exit 1; \
++ fi
++
++mostlyclean:
++ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
++ rm -f .intltool-merge-cache
++
++clean: mostlyclean
++
++distclean: clean
++ rm -f Makefile Makefile.in POTFILES stamp-it
++ rm -f *.mo *.msg *.cat *.cat.m *.gmo
++
++maintainer-clean: distclean
++ @echo "This command is intended for maintainers to use;"
++ @echo "it deletes files that may require special tools to rebuild."
++ rm -f Makefile.in.in
++
++distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
++dist distdir: $(DISTFILES)
++ dists="$(DISTFILES)"; \
++ extra_dists="$(EXTRA_DISTFILES)"; \
++ for file in $$extra_dists; do \
++ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
++ done; \
++ for file in $$dists; do \
++ test -f $$file || file="$(srcdir)/$$file"; \
++ ln $$file $(distdir) 2> /dev/null \
++ || cp -p $$file $(distdir); \
++ done
++
++update-po: Makefile
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ tmpdir=`pwd`; \
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ echo "$$lang:"; \
++ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
++ if $$result; then \
++ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
++ rm -f $$tmpdir/$$lang.new.po; \
++ else \
++ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
++ :; \
++ else \
++ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ exit 1; \
++ fi; \
++ fi; \
++ else \
++ echo "msgmerge for $$lang.gmo failed!"; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ fi; \
++ done
++
++Makefile POTFILES: stamp-it
++ @if test ! -f $@; then \
++ rm -f stamp-it; \
++ $(MAKE) stamp-it; \
++ fi
++
++stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
++ cd $(top_builddir) \
++ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
++ $(SHELL) ./config.status
++
++# Tell versions [3.59,3.63) of GNU make not to export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/po-locations/POTFILES.in libgweather-2.27.91.new/po-locations/POTFILES.in
+--- libgweather-2.27.91/po-locations/POTFILES.in 1970-01-01 10:00:00.000000000 +1000
++++ libgweather-2.27.91.new/po-locations/POTFILES.in 2009-08-26 11:54:52.000000000 +1000
+@@ -0,0 +1,4 @@
++# This list should contain *only* data/Locations.xml.in.
++# Everything else should be in POTFILES.skip.
++[encoding:UTF-8]
++data/Locations.xml.in
diff --git a/extra/libgweather/PKGBUILD b/extra/libgweather/PKGBUILD
new file mode 100644
index 000000000..4dbe77413
--- /dev/null
+++ b/extra/libgweather/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 91597 2010-09-27 13:41:59Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgweather
+pkgver=2.30.3
+pkgrel=1
+pkgdesc="Provides access to weather information from the net"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gconf>=2.31.91' 'libsoup-gnome>=2.31.92' 'gnome-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org/"
+install=libgweather.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ 01_gettext_not_xml.patch)
+sha256sums=('b835374661423f37c46aa8e37368ae24a68856f117b7c21e475a21efdba5264c'
+ '64c181675714a411c2bc31d254cf5ad4a128fba539839b41783540e978a1de20')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/01_gettext_not_xml.patch"
+ libtoolize --force
+ gtkdocize
+ aclocal
+ autoconf
+ automake
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-locations-compression
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain libgweather ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/libgweather/libgweather.install b/extra/libgweather/libgweather.install
new file mode 100644
index 000000000..7062d4167
--- /dev/null
+++ b/extra/libgweather/libgweather.install
@@ -0,0 +1,22 @@
+pkgname=libgweather
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+}
diff --git a/extra/libhangul/PKGBUILD b/extra/libhangul/PKGBUILD
new file mode 100644
index 000000000..fb65acc74
--- /dev/null
+++ b/extra/libhangul/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 110870 2011-02-22 20:13:14Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=libhangul
+pkgver=0.0.12
+pkgrel=2
+_filecode=5855
+pkgdesc='Input method library for Korean'
+arch=('i686' 'x86_64')
+url='http://kldp.net/projects/hangul/'
+license=('LGPL')
+options=('!libtool')
+source=("http://kldp.net/frs/download.php/${_filecode}/${pkgname}-${pkgver}.tgz")
+sha1sums=('5e02fe61c8f51ace03bebb1ec75875a2262e3cd5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libical/PKGBUILD b/extra/libical/PKGBUILD
new file mode 100644
index 000000000..3f77290ea
--- /dev/null
+++ b/extra/libical/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=libical
+pkgver=0.46
+pkgrel=1
+pkgdesc="An open source reference implementation of the icalendar data type and serialization format"
+arch=('i686' 'x86_64')
+url='http://sourceforge.net/projects/freeassociation/'
+license=('LGPL' 'MPL')
+depends=('glibc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/freeassociation/${pkgname}-${pkgver}.tar.gz")
+md5sums=('9c08f88945bfd5d0791d102e4aa4125c')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./autogen.sh
+ libtoolize --force
+ ./configure --prefix=/usr \
+ --enable-shared \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libice/PKGBUILD b/extra/libice/PKGBUILD
new file mode 100644
index 000000000..a350cfaf7
--- /dev/null
+++ b/extra/libice/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 96500 2010-10-21 21:18:07Z jgc $
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libice
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="X11 Inter-Client Exchange library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('glibc' 'xproto>=7.0.18')
+makedepends=('pkgconfig' 'xtrans>=1.2.5')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libICE-${pkgver}.tar.bz2)
+license=('custom')
+sha1sums=('c7d0f4c5b0e999385445b8be1bc89aec4e5de71d')
+
+build() {
+ cd "${srcdir}/libICE-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libid3tag/10_utf16.diff b/extra/libid3tag/10_utf16.diff
new file mode 100644
index 000000000..a3218d26d
--- /dev/null
+++ b/extra/libid3tag/10_utf16.diff
@@ -0,0 +1,48 @@
+#! /bin/sh -e
+## 10_utf16.dpatch by <kurt@roeckx.be>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Handle bogus UTF16 sequences that have a length that is not
+## DP: an even number of 8 bit characters.
+
+if [ $# -lt 1 ]; then
+ echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+ exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
+
+case "$1" in
+ -patch) patch -p1 ${patch_opts} < $0;;
+ -unpatch) patch -R -p1 ${patch_opts} < $0;;
+ *)
+ echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad libid3tag-0.15.1b/utf16.c /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c
+--- libid3tag-0.15.1b/utf16.c 2006-01-13 15:26:29.000000000 +0100
++++ /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c 2006-01-13 15:27:19.000000000 +0100
+@@ -282,5 +282,18 @@
+
+ free(utf16);
+
++ if (end == *ptr && length % 2 != 0)
++ {
++ /* We were called with a bogus length. It should always
++ * be an even number. We can deal with this in a few ways:
++ * - Always give an error.
++ * - Try and parse as much as we can and
++ * - return an error if we're called again when we
++ * already tried to parse everything we can.
++ * - tell that we parsed it, which is what we do here.
++ */
++ (*ptr)++;
++ }
++
+ return ucs4;
+ }
diff --git a/extra/libid3tag/11_unknown_encoding.diff b/extra/libid3tag/11_unknown_encoding.diff
new file mode 100644
index 000000000..7387f2f7d
--- /dev/null
+++ b/extra/libid3tag/11_unknown_encoding.diff
@@ -0,0 +1,37 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 11_unknown_encoding.dpatch by Andreas Henriksson <andreas@fatal.se>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: In case of an unknown/invalid encoding, id3_parse_string() will
+## DP: return NULL, but the return value wasn't checked resulting
+## DP: in segfault in id3_ucs4_length(). This is the only place
+## DP: the return value wasn't checked.
+
+@DPATCH@
+diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf
+--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000
++++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000
+@@ -236,6 +236,10 @@
+
+ encoding = id3_parse_uint(&data, 1);
+ string = id3_parse_string(&data, end - data, encoding, 0);
++ if (!string)
++ {
++ continue;
++ }
+
+ if (id3_ucs4_length(string) < 4) {
+ free(string);
+diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c
+--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000
++++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000
+@@ -165,6 +165,9 @@
+ case ID3_FIELD_TEXTENCODING_UTF_8:
+ ucs4 = id3_utf8_deserialize(ptr, length);
+ break;
++ default:
++ /* FIXME: Unknown encoding! Print warning? */
++ return NULL;
+ }
+
+ if (ucs4 && !full) {
diff --git a/extra/libid3tag/CVE-2008-2109.patch b/extra/libid3tag/CVE-2008-2109.patch
new file mode 100644
index 000000000..26c54c5d2
--- /dev/null
+++ b/extra/libid3tag/CVE-2008-2109.patch
@@ -0,0 +1,11 @@
+--- field.c.orig 2008-05-05 09:49:15.000000000 -0400
++++ field.c 2008-05-05 09:49:25.000000000 -0400
+@@ -291,7 +291,7 @@
+
+ end = *ptr + length;
+
+- while (end - *ptr > 0) {
++ while (end - *ptr > 0 && **ptr != '\0') {
+ ucs4 = id3_parse_string(ptr, end - *ptr, *encoding, 0);
+ if (ucs4 == 0)
+ goto fail;
diff --git a/extra/libid3tag/PKGBUILD b/extra/libid3tag/PKGBUILD
new file mode 100644
index 000000000..759e99240
--- /dev/null
+++ b/extra/libid3tag/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 90138 2010-09-08 13:24:51Z andrea $
+# Maintainer:
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=libid3tag
+pkgver=0.15.1b
+pkgrel=6
+pkgdesc="library for id3 tagging"
+arch=('i686' 'x86_64')
+url="http://www.underbit.com/products/mad/"
+license=('GPL')
+depends=('zlib')
+makedepends=('gperf')
+options=('!libtool')
+source=("ftp://ftp.mars.org/pub/mpeg/${pkgname}-${pkgver}.tar.gz"
+ 'id3tag.pc'
+ '10_utf16.diff' '11_unknown_encoding.diff' 'CVE-2008-2109.patch')
+md5sums=('e5808ad997ba32c498803822078748c3'
+ '8bb41fd814fafcc37ec8bc88f5545a4a'
+ '4f9df4011e6a8c23240fff5de2d05f6e'
+ '3ca856b97924d48a0fdfeff0bd83ce7d'
+ 'c51822ea6301b1ca469975f0c9ee8e34')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../10_utf16.diff
+ patch -p1 < ../11_unknown_encoding.diff
+ patch -Np0 -i ${srcdir}/CVE-2008-2109.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 "${srcdir}/id3tag.pc" "${pkgdir}/usr/lib/pkgconfig/id3tag.pc"
+}
diff --git a/extra/libid3tag/id3tag.pc b/extra/libid3tag/id3tag.pc
new file mode 100644
index 000000000..3155de7b3
--- /dev/null
+++ b/extra/libid3tag/id3tag.pc
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=/usr/bin
+libdir=/usr/lib
+includedir=/usr/include
+
+Name: ID3TAG
+Description: libid3tag - ID3 tag manipulation library
+Version: 0.15.0b
+Libs: -L${libdir} -lid3tag -lz
+Cflags:
diff --git a/extra/libidl2/PKGBUILD b/extra/libidl2/PKGBUILD
new file mode 100644
index 000000000..87bb7c218
--- /dev/null
+++ b/extra/libidl2/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 74302 2010-03-30 18:39:42Z ibiru $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=libidl2
+pkgver=0.8.14
+pkgrel=1
+pkgdesc="A front-end for CORBA 2.2 IDL and Netscape's XPIDL"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('glib2>=2.24.0' 'texinfo')
+makedepends=('pkgconfig')
+install=libidl2.install
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/libIDL-${pkgver}.tar.bz2)
+url="http://www.gnome.org"
+sha256sums=('c5d24d8c096546353fbc7cedf208392d5a02afe9d56ebcc1cccb258d7c4d2220')
+
+build() {
+ cd "${srcdir}/libIDL-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ rm -f "${pkgdir}/usr/share/info/dir"
+ gzip -9nf "${pkgdir}/usr/share/info/"*
+}
diff --git a/extra/libidl2/libidl2.install b/extra/libidl2/libidl2.install
new file mode 100644
index 000000000..38b3d56b3
--- /dev/null
+++ b/extra/libidl2/libidl2.install
@@ -0,0 +1,13 @@
+info_dir=/usr/share/info
+
+post_install() {
+ install-info ${info_dir}/libIDL2.info.gz ${info_dir}/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete ${info_dir}/libIDL2.info.gz ${info_dir}/dir 2> /dev/null
+}
diff --git a/extra/libidn/PKGBUILD b/extra/libidn/PKGBUILD
new file mode 100644
index 000000000..d765ddbd7
--- /dev/null
+++ b/extra/libidn/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 94460 2010-10-07 10:45:51Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jan de Groot <jgc.archlinux.org>
+# Contributor: Eric Johnson <eric.archlinux.org>
+
+pkgname=libidn
+pkgver=1.19
+pkgrel=1
+pkgdesc="Implementation of the Stringprep, Punycode and IDNA specifications"
+url="http://www.gnu.org/software/libidn/"
+arch=('i686' 'x86_64')
+license=('GPL3' 'LGPL')
+depends=('glibc' 'texinfo')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+install=libidn.install
+md5sums=('a45142126d28162014c995f969bdb5a8')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libidn/libidn.install b/extra/libidn/libidn.install
new file mode 100644
index 000000000..a0366ebb9
--- /dev/null
+++ b/extra/libidn/libidn.install
@@ -0,0 +1,19 @@
+info_dir=/usr/share/info
+info_files=(libidn.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${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.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
diff --git a/extra/libiec61883/PKGBUILD b/extra/libiec61883/PKGBUILD
new file mode 100644
index 000000000..468cd762f
--- /dev/null
+++ b/extra/libiec61883/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 93012 2010-10-02 21:31:27Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+# Contributor: Stephen Caraher <moskvax@gmail.com>
+
+pkgname=libiec61883
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="A higher level API for streaming DV, MPEG-2 and audio over Linux IEEE 1394"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/linux/libs/ieee1394/"
+license=('LGPL')
+depends=('libraw1394')
+options=('!libtool')
+source=(http://www.kernel.org/pub/linux/libs/ieee1394//${pkgname}-${pkgver}.tar.gz)
+md5sums=('8af39fff74988073c3ad53fbab147da9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libieee1284/PKGBUILD b/extra/libieee1284/PKGBUILD
new file mode 100644
index 000000000..98f7d7107
--- /dev/null
+++ b/extra/libieee1284/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 89592 2010-09-02 10:23:12Z remy $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=libieee1284
+pkgver=0.2.11
+pkgrel=3
+pkgdesc="A library to query devices connected in parallel port."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://cyberelk.net/tim/libieee1284"
+depends=('python2')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('b8fff9f3d121531bc17430e3f4ea6ed0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR="$pkgdir"/ install
+}
diff --git a/extra/libifp/PKGBUILD b/extra/libifp/PKGBUILD
new file mode 100644
index 000000000..248d449c5
--- /dev/null
+++ b/extra/libifp/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 101322 2010-11-28 22:22:28Z tpowa $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+
+pkgname=libifp
+pkgver=1.0.0.2
+pkgrel=3
+pkgdesc="General-purpose library-driver for iRiver's iFP portable audio players"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://ifp-driver.sourceforge.net/libifp/"
+depends=('libusb-compat')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/ifp-driver/${pkgname}-${pkgver}.tar.gz)
+md5sums=('d4114794b13bd32b6b767e0870df6fc4')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-libusb
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libimobiledevice/PKGBUILD b/extra/libimobiledevice/PKGBUILD
new file mode 100644
index 000000000..7fd96da42
--- /dev/null
+++ b/extra/libimobiledevice/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 101292 2010-11-28 20:11:58Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=libimobiledevice
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Is a software library that talks the protocols to support iPhone and iPod Touch devices on Linux"
+url="http://libimobiledevice.org/"
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL2.1')
+depends=('gnutls' 'glib2' 'libplist>=1.3' 'usbmuxd>=1.0.6')
+makedepends=('swig' 'python2')
+options=('!libtool')
+source=(http://libimobiledevice.org/downloads/${pkgname}-${pkgver}.tar.bz2
+ swig-version-check.patch)
+md5sums=('dbf62f2fddaa87558b6f1ebc76abb549'
+ '8bb215e36fe0e08a72332c108c7842cc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # SWIG version check is wrong (still not fixed upstream)
+ patch -p1 -i "$srcdir"/swig-version-check.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libimobiledevice/swig-version-check.patch b/extra/libimobiledevice/swig-version-check.patch
new file mode 100644
index 000000000..c56b095db
--- /dev/null
+++ b/extra/libimobiledevice/swig-version-check.patch
@@ -0,0 +1,14 @@
+diff -Nur libimobiledevice-1.0.3.old/configure libimobiledevice-1.0.3/configure
+--- libimobiledevice-1.0.3.old/configure 2010-10-04 07:38:37.000000000 -0700
++++ libimobiledevice-1.0.3/configure 2010-10-08 05:43:05.466686656 -0700
+@@ -3477,9 +3477,7 @@
+ if test -z "$available_patch" ; then
+ available_patch=0
+ fi
+- if test $available_major -ne $required_major \
+- -o $available_minor -ne $required_minor \
+- -o $available_patch -lt $required_patch ; then
++ if test $available_major -lt $required_major ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 1.3.21 is required. You have $swig_version. You should look at http://www.swig.org" >&5
+ $as_echo "$as_me: WARNING: SWIG version >= 1.3.21 is required. You have $swig_version. You should look at http://www.swig.org" >&2;}
+ SWIG=false
diff --git a/extra/libindi/PKGBUILD b/extra/libindi/PKGBUILD
new file mode 100644
index 000000000..54427ffd4
--- /dev/null
+++ b/extra/libindi/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 62098 2010-01-02 09:13:44Z tpowa $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libindi
+pkgver=0.7.2
+pkgrel=1
+pkgdesc="A distributed control protocol designed to operate astronomical instrumentation"
+url="http://www.indilib.org/index.php?title=Main_Page"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('gcc-libs' 'zlib' 'libnova' 'cfitsio')
+makedepends=('pkgconfig' 'cmake')
+provides=('indilib')
+replaces=('indilib')
+conflicts=('indilib')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/indi/${pkgname}_${pkgver}.tar.gz"
+ 'linking-pthread.patch')
+md5sums=('a78a77dc2322a46f5bf4c5d75380e8b0'
+ '1ebc282e259cb0c9c52cad3dadd5e044')
+
+build() {
+ # fixed upstream
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np2 -i ${srcdir}/linking-pthread.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/extra/libindi/linking-pthread.patch b/extra/libindi/linking-pthread.patch
new file mode 100644
index 000000000..c012707a2
--- /dev/null
+++ b/extra/libindi/linking-pthread.patch
@@ -0,0 +1,11 @@
+--- trunk/libindi/CMakeLists.txt 2010/11/20 11:45:07 397
++++ trunk/libindi/CMakeLists.txt 2010/12/01 08:36:20 412
+@@ -164,7 +164,7 @@
+ ############# INDI Client Library ################
+ ##################################################
+ add_library(indiclient STATIC ${indibase_SRCS})
+-target_link_libraries(indiclient indi)
++target_link_libraries(indiclient indi pthread)
+ install(TARGETS indiclient ARCHIVE DESTINATION lib${LIB_POSTFIX})
+
+ #####################################
diff --git a/extra/libiodbc/PKGBUILD b/extra/libiodbc/PKGBUILD
new file mode 100644
index 000000000..a9a47dec7
--- /dev/null
+++ b/extra/libiodbc/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 4453 2009-10-23 09:11:19Z spupykin $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=libiodbc
+pkgver=3.52.7
+pkgrel=4
+pkgdesc='Independent Open DataBase Connectivity for Linux'
+arch=('i686' 'x86_64')
+url="http://www.iodbc.org/dataspace/iodbc/wiki/iODBC/"
+license=('LGPL')
+depends=('glibc' 'sh')
+makedepends=('chrpath')
+replaces=('iodbc')
+conflicts=('iodbc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/iodbc/${pkgname}-${pkgver}.tar.gz")
+md5sums=('ddbd274cb31d65be6a78da58fc09079a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --disable-static \
+ --includedir=/usr/include/libiodbc \
+ --disable-gui \
+ --disable-libodbc
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ chrpath -d ${pkgdir}/usr/bin/iodbctest{,w}
+ rm -rf ${pkgdir}/usr/share/libiodbc/
+}
diff --git a/extra/libirman/PKGBUILD b/extra/libirman/PKGBUILD
new file mode 100644
index 000000000..3305a78eb
--- /dev/null
+++ b/extra/libirman/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libirman
+pkgver=0.4.5
+pkgrel=2
+pkgdesc="Irman driver lcd library"
+arch=('i686' 'x86_64')
+url="http://www.lirc.org"
+license=('LGPL')
+options=(!libtool)
+backup=('etc/irman.conf')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/lirc/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4a2708d53b6c79659c073cfefed57f78')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libisoburn/PKGBUILD b/extra/libisoburn/PKGBUILD
new file mode 100644
index 000000000..2cd7b651f
--- /dev/null
+++ b/extra/libisoburn/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 114284 2011-03-12 07:01:26Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Gour <Gour <gour@mail.inet.hr>
+
+pkgname=libisoburn
+pkgver=1.0.4.pl00
+pkgrel=1
+pkgdesc="frontend for libraries libburn and libisofs"
+url="http://libburnia.pykix.org/wiki/Libisoburn"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('libburn>=1.0.4' 'libisofs>=1.0.4' 'readline>=6.1')
+options=('!libtool')
+source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ba21567325bda50f02d406f46c3c8392')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver/.pl??/}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libisofs/PKGBUILD b/extra/libisofs/PKGBUILD
new file mode 100644
index 000000000..568a0b8f0
--- /dev/null
+++ b/extra/libisofs/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114279 2011-03-12 06:56:07Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Hugo Doria <hugodoria@gmail.com>
+# Contributor: Bjorn Martensen
+
+pkgname=libisofs
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Library to pack up hard disk files and directories into a ISO 9660 disk image"
+arch=('i686' 'x86_64')
+url="http://libburnia.pykix.org/"
+license=('GPL')
+depends=('acl' 'zlib')
+source=(http://files.libburnia-project.org/releases/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('5a8abcec98c312f5c3550cb66754eb66')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-libacl --enable-xattr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/extra/libjpeg-turbo/PKGBUILD b/extra/libjpeg-turbo/PKGBUILD
new file mode 100644
index 000000000..3e7cd9f75
--- /dev/null
+++ b/extra/libjpeg-turbo/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111658 2011-02-28 03:23:17Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Simone Sclavi 'Ito' <darkhado@gmail.com>
+
+pkgname=libjpeg-turbo
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="libjpeg derivative with accelerated baseline JPEG compression and decompression"
+arch=('i686' 'x86_64')
+url="http://libjpeg-turbo.virtualgl.org/"
+license=('GPL' 'custom')
+makedepends=('nasm')
+provides=('libjpeg=8.0.2')
+conflicts=('libjpeg')
+replaces=('libjpeg')
+options=('!libtool')
+source=(http://sourceforge.net/projects/$pkgname/files/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('83e6914a281d649ad289445dc20f9de4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --with-jpeg8 --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ install -Dm644 LICENSE.txt $pkgdir/usr/share/licenses/libjpeg-turbo/LICENSE
+}
+
diff --git a/extra/libksba/PKGBUILD b/extra/libksba/PKGBUILD
new file mode 100644
index 000000000..4e19d60a7
--- /dev/null
+++ b/extra/libksba/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 87317 2010-08-12 11:57:33Z tpowa $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=libksba
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="Libksba is a CMS and X.509 access library"
+arch=(i686 x86_64)
+license=('GPL')
+url="ftp://ftp.gnupg.org/gcrypt/alpha/libksba"
+depends=('bash' 'libgpg-error' 'glibc')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2)
+options=(!libtool)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('8acac0b3cbd0030dfc6d0f6a58c9b5b2')
diff --git a/extra/libktorrent/PKGBUILD b/extra/libktorrent/PKGBUILD
new file mode 100644
index 000000000..b2da7c65e
--- /dev/null
+++ b/extra/libktorrent/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115082 2011-03-16 19:16:25Z andrea $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libktorrent
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="A BitTorrent library based on KDE Platform"
+arch=('i686' 'x86_64')
+url="http://ktorrent.org"
+license=('GPL2')
+depends=('kdelibs')
+makedepends=('automoc4' 'cmake' 'boost')
+source=("http://ktorrent.org/downloads/4.1.0/${pkgname}-${pkgver}.tar.bz2")
+options=('libtool')
+md5sums=('76d3e58bbf2e4df7e97421e06ebf8fb8')
+
+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/extra/liblastfm/PKGBUILD b/extra/liblastfm/PKGBUILD
new file mode 100644
index 000000000..13e5dd98e
--- /dev/null
+++ b/extra/liblastfm/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 100655 2010-11-25 08:43:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: XazZ <xazz.xazz [AT] googlemail.com>
+
+pkgname=liblastfm
+pkgver=0.3.3
+pkgrel=2
+pkgdesc="A collection of libraries to help you integrate Last.fm services into your rich desktop software"
+arch=('i686' 'x86_64')
+url="http://github.com/mxcl/liblastfm/"
+license=('GPL')
+depends=('libsamplerate' 'fftw' 'qt')
+makedepends=('ruby')
+options=('!libtool')
+source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/mxcl/${pkgname}/tarball/${pkgver}"
+ 'no-ftools.patch')
+sha1sums=('f2e9705c9c2cbeaa14f46da9bd35ab36fe710392'
+ 'ba344601d29091fb88123f80592359369efdf338')
+
+build() {
+ cd ${srcdir}/mxcl-${pkgname}-1c739eb
+
+ patch -Np1 -i ${srcdir}/no-ftools.patch
+
+ ruby configure --release --prefix /usr
+ make
+}
+
+package(){
+ cd ${srcdir}/mxcl-${pkgname}-1c739eb
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/liblastfm/no-ftools.patch b/extra/liblastfm/no-ftools.patch
new file mode 100644
index 000000000..e8480c36d
--- /dev/null
+++ b/extra/liblastfm/no-ftools.patch
@@ -0,0 +1,36 @@
+--- mxcl-liblastfm-3539836/admin/findsrc.rb~ 2010-09-19 10:35:34.783333338 +0200
++++ mxcl-liblastfm-3539836/admin/findsrc.rb 2010-09-19 10:35:57.730000003 +0200
+@@ -1,6 +1,6 @@
+ #!/usr/bin/ruby
+ require 'find'
+-require "#{File.dirname __FILE__}/platform"
++require "#{Dir.getwd}/admin/platform.rb"
+
+ def findsrc dir='.'
+ excludes = ['.svn','.git','_include','tests','_build']
+--- mxcl-liblastfm-3539836/admin/qpp~ 2010-09-19 10:36:09.276666670 +0200
++++ mxcl-liblastfm-3539836/admin/qpp 2010-09-19 10:36:16.926666670 +0200
+@@ -2,9 +2,8 @@
+ # Creates a qmake .pro file for all valid SOURCES, HEADERS, FORMS and
+ # RESOURCES under each argument to ARGV as directories
+
+-cwd=File.dirname __FILE__
+ require 'find'
+-require "#{cwd}/findsrc"
++require "#{Dir.getwd}/admin/findsrc.rb"
+
+ sources = Array.new
+ headers = Array.new
+--- mxcl-liblastfm-3539836/admin/Makefile.rb~ 2010-09-19 10:35:38.086666671 +0200
++++ mxcl-liblastfm-3539836/admin/Makefile.rb 2010-09-19 10:36:05.816666671 +0200
+@@ -4,9 +4,8 @@
+ # and then creates the directory _include and creates files named after the
+ # class names in there which #include the file that contains the class
+
+-cwd = File.dirname( __FILE__ )
+ require 'find'
+-require "#{cwd}/platform.rb"
++require "#{Dir.getwd}/admin/platform.rb"
+
+
+ ######################################################################### defs
diff --git a/extra/liblo/PKGBUILD b/extra/liblo/PKGBUILD
new file mode 100644
index 000000000..eae1ff944
--- /dev/null
+++ b/extra/liblo/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 58893 2009-11-16 22:44:48Z giovanni $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Pajaro
+
+pkgname=liblo
+pkgver=0.26
+pkgrel=1
+pkgdesc="Lightweight OSC implementation: an implementation of the Open Sound Control protocol for POSIX systems"
+arch=(i686 x86_64)
+url="http://plugin.org.uk/liblo/"
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('5351de14262560e15e7f23865293b16f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/liblqr/PKGBUILD b/extra/liblqr/PKGBUILD
new file mode 100644
index 000000000..58ebf907a
--- /dev/null
+++ b/extra/liblqr/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 49462 2009-08-08 15:03:23Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=liblqr
+pkgver=0.4.1
+pkgrel=1
+pkgdesc="A seam-carving C/C++ library called Liquid Rescale"
+arch=('i686' 'x86_64')
+url="http://liblqr.wikidot.com/"
+license=('GPL')
+depends=('glibc' 'glib2')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://liblqr.wikidot.com/local--files/en:download-page/$pkgname-1-$pkgver.tar.bz2)
+
+build() {
+ cd "$srcdir/$pkgname-1-$pkgver"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="$pkgdir/" install || return 1
+}
+md5sums=('0e24ed3c9fcdcb111062640764d7b87a')
diff --git a/extra/liblrdf/PKGBUILD b/extra/liblrdf/PKGBUILD
new file mode 100644
index 000000000..529cd3cef
--- /dev/null
+++ b/extra/liblrdf/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 68012 2010-02-10 13:47:57Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=liblrdf
+pkgver=0.4.0
+pkgrel=6
+pkgdesc="A library for the manipulation of RDF file in LADSPA plugins"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/lrdf"
+depends=('raptor>=1.4.15-2' 'ladspa')
+makedepends=('pkgconfig')
+license=('GPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/lrdf/${pkgname}-${pkgver}.tar.gz
+ md5.patch)
+groups=('ladspa-plugins')
+md5sums=('327a5674f671c4b360c6353800226877'
+ 'a6d231d052dc188cbc4c1039cf3a2003')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/md5.patch" || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/liblrdf/md5.patch b/extra/liblrdf/md5.patch
new file mode 100644
index 000000000..1c43b12e9
--- /dev/null
+++ b/extra/liblrdf/md5.patch
@@ -0,0 +1,18 @@
+--- liblrdf-0.4.0.orig/src/lrdf_md5.h
++++ liblrdf-0.4.0/src/lrdf_md5.h
+@@ -32,6 +32,15 @@
+ #ifndef __MD5_H__
+ #define __MD5_H__
+
++/* Change function names to prevent symbol conflicts */
++#define md5_init _lrdf_md5_init
++#define md5_buffer _lrdf_md5_buffer
++#define md5_sig_from_string _lrdf_md5_sig_from_string
++#define md5_finish _lrdf_md5_finish
++#define md5_process _lrdf_md5_process
++#define md5_sig_to_string _lrdf_md5_sig_to_string
++#define md5_get_result _lrdf_md5_get_result
++
+ /*
+ * Size of a standard MD5 signature in bytes. This definition is for
+ * external programs only. The MD5 routines themselves reference the
diff --git a/extra/libmad/PKGBUILD b/extra/libmad/PKGBUILD
new file mode 100644
index 000000000..fc978b8e7
--- /dev/null
+++ b/extra/libmad/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 28155 2009-02-28 01:26:22Z giovanni $
+# Maintainer: Travis Willard <travis@archlinux.org>
+pkgname=libmad
+pkgver=0.15.1b
+pkgrel=4
+pkgdesc="A high-quality MPEG audio decoder"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('glibc')
+makedepends=('autoconf')
+replaces=('mad')
+conflicts=('mad')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/mad/$pkgname-$pkgver.tar.gz
+ libmad.patch amd64-64bit.diff frame_length.diff optimize.diff)
+url="http://www.underbit.com/products/mad/"
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/libmad.patch || return 1
+ patch -Np1 -i $srcdir/amd64-64bit.diff || return 1
+ patch -Np1 -i $srcdir/frame_length.diff || return 1
+ patch -Np1 -i $srcdir/optimize.diff || return 1
+ CFLAGS="$CFLAGS -ftree-vectorize -ftree-vectorizer-verbose=1"
+ autoconf
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+
+md5sums=('1be543bc30c56fb6bea1d7bf6a64e66c'
+ 'fbcca0267a423bae45389666f4cb04d5'
+ '8d8bd64a2842dd59153b3a6642059e23'
+ '3329b032118a68e18908197e65b3198d'
+ '3e52afe2103f367810a18bef9e82eb9f')
+sha256sums=('bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690'
+ '813634b07e72ccc23c5c5dc63f88fb789706477fa0a74f535115b8bd898b2ff4'
+ '0b506dc3c3a83837739f84f7b9db7497fd79b3623b5fb7e291ce44f79d7bf726'
+ '0e21f2c6b19337d0b237dacc04f7b90a56be7f359f4c9a2ee0b202d9af0cfa69'
+ 'f38216942a1e84fd5341394a56dc5e91117d168a660f3c07ebd59af9b907e6f2')
diff --git a/extra/libmad/amd64-64bit.diff b/extra/libmad/amd64-64bit.diff
new file mode 100644
index 000000000..2ef025b6c
--- /dev/null
+++ b/extra/libmad/amd64-64bit.diff
@@ -0,0 +1,12 @@
+Index: libmad-0.15.1b/configure.ac
+===================================================================
+--- libmad-0.15.1b.orig/configure.ac 2008-03-07 20:33:05.000000000 +0000
++++ libmad-0.15.1b/configure.ac 2008-03-07 20:33:31.000000000 +0000
+@@ -233,6 +233,7 @@
+ then
+ case "$host" in
+ i?86-*) FPM="INTEL" ;;
++ x86_64*) FPM="64BIT" ;;
+ arm*-*) FPM="ARM" ;;
+ mips*-*) FPM="MIPS" ;;
+ sparc*-*) FPM="SPARC" ;;
diff --git a/extra/libmad/frame_length.diff b/extra/libmad/frame_length.diff
new file mode 100644
index 000000000..d215b9b02
--- /dev/null
+++ b/extra/libmad/frame_length.diff
@@ -0,0 +1,197 @@
+; You can calculate where the next frame will start depending on things
+; like the bitrate. See mad_header_decode(). It seems that when decoding
+; the frame you can go past that boundary. This attempts to catch those cases,
+; but might not catch all of them.
+; For more info see http://bugs.debian.org/508133
+Index: libmad-0.15.1b/layer12.c
+===================================================================
+--- libmad-0.15.1b.orig/layer12.c 2008-12-23 21:38:07.000000000 +0100
++++ libmad-0.15.1b/layer12.c 2008-12-23 21:38:12.000000000 +0100
+@@ -134,6 +134,12 @@
+ for (sb = 0; sb < bound; ++sb) {
+ for (ch = 0; ch < nch; ++ch) {
+ nb = mad_bit_read(&stream->ptr, 4);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ if (nb == 15) {
+ stream->error = MAD_ERROR_BADBITALLOC;
+@@ -146,6 +152,12 @@
+
+ for (sb = bound; sb < 32; ++sb) {
+ nb = mad_bit_read(&stream->ptr, 4);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ if (nb == 15) {
+ stream->error = MAD_ERROR_BADBITALLOC;
+@@ -162,6 +174,12 @@
+ for (ch = 0; ch < nch; ++ch) {
+ if (allocation[ch][sb]) {
+ scalefactor[ch][sb] = mad_bit_read(&stream->ptr, 6);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ # if defined(OPT_STRICT)
+ /*
+@@ -187,6 +205,12 @@
+ frame->sbsample[ch][s][sb] = nb ?
+ mad_f_mul(I_sample(&stream->ptr, nb),
+ sf_table[scalefactor[ch][sb]]) : 0;
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+ }
+ }
+
+@@ -195,6 +219,12 @@
+ mad_fixed_t sample;
+
+ sample = I_sample(&stream->ptr, nb);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ for (ch = 0; ch < nch; ++ch) {
+ frame->sbsample[ch][s][sb] =
+@@ -403,7 +433,15 @@
+ nbal = bitalloc_table[offsets[sb]].nbal;
+
+ for (ch = 0; ch < nch; ++ch)
++ {
+ allocation[ch][sb] = mad_bit_read(&stream->ptr, nbal);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
++ }
+ }
+
+ for (sb = bound; sb < sblimit; ++sb) {
+@@ -411,6 +449,13 @@
+
+ allocation[0][sb] =
+ allocation[1][sb] = mad_bit_read(&stream->ptr, nbal);
++
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+ }
+
+ /* decode scalefactor selection info */
+@@ -419,6 +464,12 @@
+ for (ch = 0; ch < nch; ++ch) {
+ if (allocation[ch][sb])
+ scfsi[ch][sb] = mad_bit_read(&stream->ptr, 2);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+ }
+ }
+
+@@ -442,6 +493,12 @@
+ for (ch = 0; ch < nch; ++ch) {
+ if (allocation[ch][sb]) {
+ scalefactor[ch][sb][0] = mad_bit_read(&stream->ptr, 6);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ switch (scfsi[ch][sb]) {
+ case 2:
+@@ -452,11 +509,23 @@
+
+ case 0:
+ scalefactor[ch][sb][1] = mad_bit_read(&stream->ptr, 6);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+ /* fall through */
+
+ case 1:
+ case 3:
+ scalefactor[ch][sb][2] = mad_bit_read(&stream->ptr, 6);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+ }
+
+ if (scfsi[ch][sb] & 1)
+@@ -488,6 +557,12 @@
+ index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
+
+ II_samples(&stream->ptr, &qc_table[index], samples);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ for (s = 0; s < 3; ++s) {
+ frame->sbsample[ch][3 * gr + s][sb] =
+@@ -506,6 +581,12 @@
+ index = offset_table[bitalloc_table[offsets[sb]].offset][index - 1];
+
+ II_samples(&stream->ptr, &qc_table[index], samples);
++ if (mad_bit_nextbyte(&stream->ptr) > stream->next_frame)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ for (ch = 0; ch < nch; ++ch) {
+ for (s = 0; s < 3; ++s) {
+Index: libmad-0.15.1b/layer3.c
+===================================================================
+--- libmad-0.15.1b.orig/layer3.c 2008-12-23 21:38:07.000000000 +0100
++++ libmad-0.15.1b/layer3.c 2008-12-23 21:38:12.000000000 +0100
+@@ -2608,6 +2608,12 @@
+ next_md_begin = 0;
+
+ md_len = si.main_data_begin + frame_space - next_md_begin;
++ if (md_len + MAD_BUFFER_GUARD > MAD_BUFFER_MDLEN)
++ {
++ stream->error = MAD_ERROR_LOSTSYNC;
++ stream->sync = 0;
++ return -1;
++ }
+
+ frame_used = 0;
+
diff --git a/extra/libmad/libmad.patch b/extra/libmad/libmad.patch
new file mode 100644
index 000000000..0ac88acb8
--- /dev/null
+++ b/extra/libmad/libmad.patch
@@ -0,0 +1,117 @@
+diff -ruN libmad-0.15.1b.orig/Makefile.am libmad-0.15.1b/Makefile.am
+--- libmad-0.15.1b.orig/Makefile.am 2004-02-17 02:02:03.000000000 +0000
++++ libmad-0.15.1b/Makefile.am 2005-08-25 12:08:04.000000000 +0000
+@@ -33,9 +33,12 @@
+ minimad_INCLUDES =
+ minimad_LDADD = libmad.la
+
+-EXTRA_DIST = mad.h.sed \
++EXTRA_DIST = mad.h.sed mad.pc.in \
+ CHANGES COPYRIGHT CREDITS README TODO VERSION
+
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA= mad.pc
++
+ exported_headers = version.h fixed.h bit.h timer.h stream.h frame.h \
+ synth.h decoder.h
+
+diff -ruN libmad-0.15.1b.orig/Makefile.in libmad-0.15.1b/Makefile.in
+--- libmad-0.15.1b.orig/Makefile.in 2004-02-17 02:33:23.000000000 +0000
++++ libmad-0.15.1b/Makefile.in 2005-08-25 12:09:34.000000000 +0000
+@@ -14,6 +14,8 @@
+
+ @SET_MAKE@
+
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = mad.pc
+
+ SOURCES = $(libmad_la_SOURCES) $(EXTRA_libmad_la_SOURCES) $(minimad_SOURCES)
+
+@@ -43,7 +45,7 @@
+ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/config.h.in $(srcdir)/libmad.list.in \
+ $(top_srcdir)/configure COPYING INSTALL TODO config.guess \
+- config.sub depcomp install-sh ltmain.sh missing mkinstalldirs
++ config.sub depcomp install-sh ltmain.sh missing mkinstalldirs mad.pc.in
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+@@ -53,7 +55,7 @@
+ configure.lineno configure.status.lineno
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = config.h
+-CONFIG_CLEAN_FILES = libmad.list
++CONFIG_CLEAN_FILES = libmad.list mad.pc
+ am__installdirs = $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
+ libLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(lib_LTLIBRARIES)
+@@ -218,7 +220,7 @@
+ minimad_SOURCES = minimad.c
+ minimad_INCLUDES =
+ minimad_LDADD = libmad.la
+-EXTRA_DIST = mad.h.sed \
++EXTRA_DIST = mad.h.sed mad.pc.in \
+ CHANGES COPYRIGHT CREDITS README TODO VERSION
+
+ exported_headers = version.h fixed.h bit.h timer.h stream.h frame.h \
+@@ -298,6 +300,28 @@
+ rm -f stamp-h1
+ touch $@
+
++mad.pc: $(top_builddir)/config.status mad.pc.in
++ cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
++
++install-pkgconfigDATA: $(pkgconfig_DATA)
++ @$(NORMAL_INSTALL)
++ $(mkinstalldirs) $(DESTDIR)$(pkgconfigdir)
++ @list='$(pkgconfig_DATA)'; for p in $$list; do \
++ if test -f $(srcdir)/$$p; then \
++ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgconfigdir)/$$p"; \
++ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(pkgconfigdir)/$$p; \
++ else if test -f $$p; then \
++ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(pkgconfigdir)/$$p"; \
++ $(INSTALL_DATA) $$p $(DESTDIR)$(pkgconfigdir)/$$p; \
++ fi; fi; \
++ done
++
++uninstall-pkgconfigDATA:
++ @$(NORMAL_UNINSTALL)
++ list='$(pkgconfig_DATA)'; for p in $$list; do \
++ rm -f $(DESTDIR)$(pkgconfigdir)/$$p; \
++ done
++
+ distclean-hdr:
+ -rm -f config.h stamp-h1
+ libmad.list: $(top_builddir)/config.status $(srcdir)/libmad.list.in
+@@ -726,7 +750,7 @@
+
+ info-am:
+
+-install-data-am: install-includeHEADERS
++install-data-am: install-includeHEADERS install-pkgconfigDATA
+
+ install-exec-am: install-libLTLIBRARIES
+
+@@ -757,7 +781,7 @@
+ ps-am:
+
+ uninstall-am: uninstall-includeHEADERS uninstall-info-am \
+- uninstall-libLTLIBRARIES
++ uninstall-libLTLIBRARIES install-pkgconfigDATA
+
+ uninstall-info: uninstall-info-recursive
+
+diff -ruN libmad-0.15.1b.orig/mad.pc.in libmad-0.15.1b/mad.pc.in
+--- libmad-0.15.1b.orig/mad.pc.in 1970-01-01 00:00:00.000000000 +0000
++++ libmad-0.15.1b/mad.pc.in 2005-08-25 12:08:04.000000000 +0000
+@@ -0,0 +1,10 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: MAD
++Description: libmad - MPEG audio decoder library
++Version: @VERSION@
++Libs: -L${libdir} -lmad
++Cflags:
diff --git a/extra/libmad/optimize.diff b/extra/libmad/optimize.diff
new file mode 100644
index 000000000..1418dc927
--- /dev/null
+++ b/extra/libmad/optimize.diff
@@ -0,0 +1,77 @@
+Index: libmad-0.15.1b/configure.ac
+===================================================================
+--- libmad-0.15.1b.orig/configure.ac 2008-03-07 20:31:23.000000000 +0000
++++ libmad-0.15.1b/configure.ac 2008-03-07 20:34:26.000000000 +0000
+@@ -124,71 +124,7 @@
+
+ if test "$GCC" = yes
+ then
+- if test -z "$arch"
+- then
+- case "$host" in
+- i386-*) ;;
+- i?86-*) arch="-march=i486" ;;
+- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
+- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
+- powerpc-*) ;;
+- mips*-agenda-*) arch="-mcpu=vr4100" ;;
+- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
+- esac
+- fi
+-
+- case "$optimize" in
+- -O|"-O "*)
+- optimize="-O"
+- optimize="$optimize -fforce-mem"
+- optimize="$optimize -fforce-addr"
+- : #x optimize="$optimize -finline-functions"
+- : #- optimize="$optimize -fstrength-reduce"
+- optimize="$optimize -fthread-jumps"
+- optimize="$optimize -fcse-follow-jumps"
+- optimize="$optimize -fcse-skip-blocks"
+- : #x optimize="$optimize -frerun-cse-after-loop"
+- : #x optimize="$optimize -frerun-loop-opt"
+- : #x optimize="$optimize -fgcse"
+- optimize="$optimize -fexpensive-optimizations"
+- optimize="$optimize -fregmove"
+- : #* optimize="$optimize -fdelayed-branch"
+- : #x optimize="$optimize -fschedule-insns"
+- optimize="$optimize -fschedule-insns2"
+- : #? optimize="$optimize -ffunction-sections"
+- : #? optimize="$optimize -fcaller-saves"
+- : #> optimize="$optimize -funroll-loops"
+- : #> optimize="$optimize -funroll-all-loops"
+- : #x optimize="$optimize -fmove-all-movables"
+- : #x optimize="$optimize -freduce-all-givs"
+- : #? optimize="$optimize -fstrict-aliasing"
+- : #* optimize="$optimize -fstructure-noalias"
+-
+- case "$host" in
+- arm*-*)
+- optimize="$optimize -fstrength-reduce"
+- ;;
+- mips*-*)
+- optimize="$optimize -fstrength-reduce"
+- optimize="$optimize -finline-functions"
+- ;;
+- i?86-*)
+- optimize="$optimize -fstrength-reduce"
+- ;;
+- powerpc-apple-*)
+- # this triggers an internal compiler error with gcc2
+- : #optimize="$optimize -fstrength-reduce"
+-
+- # this is really only beneficial with gcc3
+- : #optimize="$optimize -finline-functions"
+- ;;
+- *)
+- # this sometimes provokes bugs in gcc 2.95.2
+- : #optimize="$optimize -fstrength-reduce"
+- ;;
+- esac
+- ;;
+- esac
++ optimize="-O2"
+ fi
+
+ case "$host" in
diff --git a/extra/libmatroska/PKGBUILD b/extra/libmatroska/PKGBUILD
new file mode 100644
index 000000000..4a3aa43b3
--- /dev/null
+++ b/extra/libmatroska/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 108572 2011-02-01 18:22:49Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor 03/08/04 <lefungus@altern.org>
+
+pkgname=libmatroska
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Matroska library"
+arch=('i686' 'x86_64')
+url="http://dl.matroska.org/downloads/libmatroska/"
+license=('LGPL')
+depends=('libebml')
+source=("${url}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('21e5ee3e2573f0ae99db195348bdfb98')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+ make sharedlib || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/make/linux"
+ make prefix="${pkgdir}/usr" install || return 1
+}
diff --git a/extra/libmcrypt/PKGBUILD b/extra/libmcrypt/PKGBUILD
new file mode 100644
index 000000000..0bbe97d83
--- /dev/null
+++ b/extra/libmcrypt/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 51263 2009-09-06 19:41:24Z giovanni $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libmcrypt
+pkgver=2.5.8
+pkgrel=2
+pkgdesc="A library which provides a uniform interface to several symmetric encryption algorithms"
+url="http://mcrypt.sourceforge.net/"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/mcrypt/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('c4f491dd411a09e9de3b8702ea6f73eb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libmcs/PKGBUILD b/extra/libmcs/PKGBUILD
new file mode 100644
index 000000000..7032bb0fb
--- /dev/null
+++ b/extra/libmcs/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 85570 2010-07-15 22:07:43Z eric $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Brad Gordon <brad@rpgcyco.net>
+
+pkgname=libmcs
+pkgver=0.7.2
+pkgrel=1
+pkgdesc="Library which abstracts the storage of configuration settings"
+arch=('i686' 'x86_64')
+url="http://www.atheme.org/project/mcs"
+license=('BSD')
+depends=('libmowgli')
+source=(http://distfiles.atheme.org/libmcs-${pkgver}.tbz2)
+md5sums=('9fc91a8e860a0ab99316824aebb1d40a')
+sha1sums=('20c30bf7d4b3043848b5180de4c2cb61f7e0154c')
+
+build() {
+ cd "${srcdir}/libmcs-${pkgver}"
+ ./configure --prefix=/usr --disable-gconf --disable-kconfig
+ make
+}
+
+package() {
+ cd "${srcdir}/libmcs-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/libmcs/COPYING"
+}
diff --git a/extra/libmikmod/PKGBUILD b/extra/libmikmod/PKGBUILD
new file mode 100644
index 000000000..a84418dbb
--- /dev/null
+++ b/extra/libmikmod/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 59174 2009-11-21 01:09:33Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libmikmod
+pkgver=3.1.12
+pkgrel=3
+pkgdesc="A portable sound library"
+license=('GPL' 'LGPL')
+url="http://sourceforge.net/projects/mikmod/"
+arch=('i686' 'x86_64')
+depends=('glibc')
+options=('!libtool')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/mikmod/${pkgname}-${pkgver}.tar.gz
+ libmikmod-3.1.12-64bit-fix.diff
+ libmikmod-3.1.12-exitcrash-fix.diff
+ libmikmod-3.1.12-loopingvolume-fix.diff
+ libmikmod-3.1.12-md_sngchn-fix.diff
+ libmikmod-CVE-2009-0179.patch)
+md5sums=('9f3c740298260d5f88981fc0d51f6f16'
+ 'dc7ffd8d6d355e9d6ec671b7f2b2adc7'
+ '03a4f5bfcecddf5f515672d6d477b7f7'
+ 'a837fd876cbd2ac27419b802504489db'
+ '076d39de19de36b880ed90297f1ee0d1'
+ 'fa91f4bc17164be32bec0ea7a73f2aaa')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # patches from sdl_mixer-1.2.11 source
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-64bit-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-exitcrash-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-loopingvolume-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-md_sngchn-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-CVE-2009-0179.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/extra/libmikmod/libmikmod-3.1.12-64bit-fix.diff b/extra/libmikmod/libmikmod-3.1.12-64bit-fix.diff
new file mode 100644
index 000000000..cd7800881
--- /dev/null
+++ b/extra/libmikmod/libmikmod-3.1.12-64bit-fix.diff
@@ -0,0 +1,47 @@
+Date: Sun, 04 Jul 2004 11:53:23 +0200
+From: Josselin Mouette
+Subject: Re: sdl 64bit problem [PATCH]
+
+Le sam, 03/07/2004 � 18:20 +0200, Hans-Frieder Vogt a �crit :
+> Hi list,
+>
+> I found the problem that lead to the distorted sound in tuxracer on AMD64. It
+> may have also been the cause for the other reported sound problems with SDL.
+> The problem is not in SDL, but in SDL-mixer.
+> There, music files (*.it, and probably others as well) are incorrectly read on
+> all 64 bit architectures but Alpha, due to an incorrect data type definition.
+> The attached patch should solve the problem for all 64 bit architectures on
+> Linux, since at least cpp defines _LP64 and __LP64__ for them.
+> _LP64 indicates that long ints and pointers are 64 bits, but integers are 32
+> bits.
+> I am not sure whether the usage of _LP64 is also standard for the commercial
+> compilers, and for other Unixes, but at least Solaris 9 defines _LP64 in the
+> 64 bit environment as well.
+>
+> Josselin,
+> could you include this patch into your next debian packages?
+
+diff -ru libmikmod-3.1.12.orig/include/mikmod.h.in libmikmod-3.1.12/include/mikmod.h.in
+--- libmikmod-3.1.12.orig/include/mikmod.h.in 2007-12-15 01:24:19.000000000 -0800
++++ libmikmod-3.1.12/include/mikmod.h.in 2009-10-05 00:18:56.000000000 -0700
+@@ -85,7 +85,7 @@
+
+ @DOES_NOT_HAVE_SIGNED@
+
+-#if defined(__arch64__) || defined(__alpha) || defined(__x86_64)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ /* 64 bit architectures */
+
+ typedef signed char SBYTE; /* 1 byte, signed */
+diff -ru libmikmod-3.1.12.orig/include/mikmod_internals.h libmikmod-3.1.12/include/mikmod_internals.h
+--- libmikmod-3.1.12.orig/include/mikmod_internals.h 2007-12-15 04:24:51.000000000 -0800
++++ libmikmod-3.1.12/include/mikmod_internals.h 2009-10-05 00:19:15.000000000 -0700
+@@ -50,7 +50,7 @@
+ /*========== More type definitions */
+
+ /* SLONGLONG: 64bit, signed */
+-#if defined (__arch64__) || defined(__alpha)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ typedef long SLONGLONG;
+ #define NATIVE_64BIT_INT
+ #elif defined(__WATCOMC__)
diff --git a/extra/libmikmod/libmikmod-3.1.12-exitcrash-fix.diff b/extra/libmikmod/libmikmod-3.1.12-exitcrash-fix.diff
new file mode 100644
index 000000000..fe62892b5
--- /dev/null
+++ b/extra/libmikmod/libmikmod-3.1.12-exitcrash-fix.diff
@@ -0,0 +1,21 @@
+Date: 15 Apr 2002 11:01:19 +0200
+From: Guillaume Cottenceau <gc@mandrakesoft.com>
+
+Unfortunately, I should have double checked that the following
+fix (authored by Dave Goehrig <dave@cthulhu-burger.org>, not me),
+was really in the CVS... it's not, as of stable 1.2.3 at least.
+Please include it, it fixes a segfault on exiting a program which
+disabled MOD music during its execution.
+
+diff -ru libmikmod-3.1.12.orig/playercode/virtch_common.c libmikmod-3.1.12/playercode/virtch_common.c
+--- libmikmod-3.1.12.orig/playercode/virtch_common.c 2007-12-15 01:26:53.000000000 -0800
++++ libmikmod-3.1.12/playercode/virtch_common.c 2009-10-05 00:37:12.000000000 -0700
+@@ -347,7 +347,7 @@
+
+ void VC1_SampleUnload(SWORD handle)
+ {
+- if (handle<MAXSAMPLEHANDLES) {
++ if (Samples && handle<MAXSAMPLEHANDLES) {
+ if (Samples[handle])
+ free(Samples[handle]);
+ Samples[handle]=NULL;
diff --git a/extra/libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff b/extra/libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff
new file mode 100644
index 000000000..f0ce70e34
--- /dev/null
+++ b/extra/libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff
@@ -0,0 +1,15 @@
+Yi-Huang Han - Wed Oct 24 21:55:47 PDT 2001
+ * Fixed MOD music volume when looping
+
+diff -ru libmikmod-3.1.12.orig/playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- libmikmod-3.1.12.orig/playercode/mplayer.c 2009-10-05 00:19:59.000000000 -0700
++++ libmikmod-3.1.12/playercode/mplayer.c 2009-10-05 00:44:35.000000000 -0700
+@@ -3019,7 +3019,7 @@
+ {
+ MUTEX_LOCK(vars);
+ if (pf)
+- pf->volume=(volume<0)?0:(volume>128)?128:volume;
++ pf->volume=pf->initvolume=(volume<0)?0:(volume>128)?128:volume;
+ MUTEX_UNLOCK(vars);
+ }
+
diff --git a/extra/libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff b/extra/libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff
new file mode 100644
index 000000000..45cc355ae
--- /dev/null
+++ b/extra/libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff
@@ -0,0 +1,112 @@
+This patch fixes "buffer overflow due to md_numchn - ID: 1630158"
+
+diff -ru libmikmod-3.1.12.orig/playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- libmikmod-3.1.12.orig/playercode/mplayer.c 2007-12-15 01:26:28.000000000 -0800
++++ libmikmod-3.1.12/playercode/mplayer.c 2009-10-04 23:48:36.000000000 -0700
+@@ -52,6 +52,8 @@
+ will wait */
+ /*static*/ MODULE *pf = NULL;
+
++#define NUMVOICES(mod) (md_sngchn < (mod)->numvoices ? md_sngchn : (mod)->numvoices)
++
+ #define HIGH_OCTAVE 2 /* number of above-range octaves */
+
+ static UWORD oldperiods[OCTAVE*2]={
+@@ -248,14 +250,14 @@
+ MP_VOICE *a;
+ ULONG t,k,tvol,pp;
+
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (((mod->voice[t].main.kick==KICK_ABSENT)||
+ (mod->voice[t].main.kick==KICK_ENV))&&
+ Voice_Stopped_internal(t))
+ return t;
+
+ tvol=0xffffffUL;t=-1;a=mod->voice;
+- for (k=0;k<md_sngchn;k++,a++) {
++ for (k=0;k<NUMVOICES(mod);k++,a++) {
+ /* allow us to take over a nonexisting sample */
+ if (!a->main.s)
+ return k;
+@@ -2249,12 +2251,12 @@
+
+ switch (dat) {
+ case 0x0: /* past note cut */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a)
+ mod->voice[t].main.fadevol=0;
+ break;
+ case 0x1: /* past note off */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a) {
+ mod->voice[t].main.keyoff|=KEY_OFF;
+ if ((!(mod->voice[t].venv.flg & EF_ON))||
+@@ -2263,7 +2265,7 @@
+ }
+ break;
+ case 0x2: /* past note fade */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a)
+ mod->voice[t].main.keyoff|=KEY_FADE;
+ break;
+@@ -2318,7 +2320,7 @@
+ SAMPLE *s;
+
+ mod->totalchn=mod->realchn=0;
+- for (channel=0;channel<md_sngchn;channel++) {
++ for (channel=0;channel<NUMVOICES(mod);channel++) {
+ aout=&mod->voice[channel];
+ i=aout->main.i;
+ s=aout->main.s;
+@@ -2736,7 +2738,7 @@
+ if (a->dct!=DCT_OFF) {
+ int t;
+
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if ((!Voice_Stopped_internal(t))&&
+ (mod->voice[t].masterchn==channel)&&
+ (a->main.sample==mod->voice[t].main.sample)) {
+@@ -2978,6 +2980,11 @@
+ if (!(mod->voice=(MP_VOICE*)_mm_calloc(md_sngchn,sizeof(MP_VOICE))))
+ return 1;
+
++ /* mod->numvoices was used during loading to clamp md_sngchn.
++ After loading it's used to remember how big mod->voice is.
++ */
++ mod->numvoices = md_sngchn;
++
+ Player_Init_internal(mod);
+ return 0;
+ }
+@@ -3086,7 +3093,7 @@
+ pf->patbrk=0;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
+@@ -3111,7 +3118,7 @@
+ pf->patbrk=0;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
+@@ -3138,7 +3145,7 @@
+ pf->sngpos=pos;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
diff --git a/extra/libmikmod/libmikmod-CVE-2009-0179.patch b/extra/libmikmod/libmikmod-CVE-2009-0179.patch
new file mode 100644
index 000000000..0c47e6545
--- /dev/null
+++ b/extra/libmikmod/libmikmod-CVE-2009-0179.patch
@@ -0,0 +1,33 @@
+diff -ur libmikmod-3.1.11.orig/loaders/load_xm.c libmikmod-3.1.11/loaders/load_xm.c
+--- libmikmod-3.1.11.orig/loaders/load_xm.c 2004-01-21 18:43:53.000000000 +0100
++++ libmikmod-3.1.11/loaders/load_xm.c 2008-04-16 04:30:45.000000000 +0200
+@@ -622,7 +622,8 @@
+ /* read the remainder of the header */
+ for(u=headend-_mm_ftell(modreader);u;u--) _mm_read_UBYTE(modreader);
+
+- if(_mm_eof(modreader)) {
++ /* last instrument is at the end of file in version 0x0104 */
++ if(_mm_eof(modreader) && (mh->version<0x0104 || t<of.numins-1)) {
+ free(nextwav);free(wh);
+ nextwav=NULL;wh=NULL;
+ _mm_errno = MMERR_LOADING_SAMPLEINFO;
+diff -ur libmikmod-3.1.11.orig/playercode/mloader.c libmikmod-3.1.11/playercode/mloader.c
+--- libmikmod-3.1.11.orig/playercode/mloader.c 2004-01-21 18:43:53.000000000 +0100
++++ libmikmod-3.1.11/playercode/mloader.c 2008-04-16 04:30:45.000000000 +0200
+@@ -450,10 +450,12 @@
+ if (!l->Init || l->Init()) {
+ _mm_rewind(modreader);
+ ok = l->Load(curious);
+- /* propagate inflags=flags for in-module samples */
+- for (t = 0; t < of.numsmp; t++)
+- if (of.samples[t].inflags == 0)
+- of.samples[t].inflags = of.samples[t].flags;
++ if (ok) {
++ /* propagate inflags=flags for in-module samples */
++ for (t = 0; t < of.numsmp; t++)
++ if (of.samples[t].inflags == 0)
++ of.samples[t].inflags = of.samples[t].flags;
++ }
+ } else
+ ok = 0;
+
diff --git a/extra/libmikmod/libmikmod.install b/extra/libmikmod/libmikmod.install
new file mode 100644
index 000000000..7f80054a6
--- /dev/null
+++ b/extra/libmikmod/libmikmod.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(mikmod.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/libmms/PKGBUILD b/extra/libmms/PKGBUILD
new file mode 100644
index 000000000..1208a2dde
--- /dev/null
+++ b/extra/libmms/PKGBUILD
@@ -0,0 +1,24 @@
+#$Id: PKGBUILD 81998 2010-06-07 14:12:43Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmms
+pkgver=0.6
+pkgrel=1
+pkgdesc="MMS stream protocol library"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/libmms/"
+license=(LGPL)
+depends=('glib2>=2.24.1')
+options=('!libtool')
+source=(http://download.sourceforge.net/libmms/${pkgname}-${pkgver}.tar.gz
+ libmms-0.5-this-keyword.patch)
+md5sums=('650ad04a4c8bd79246390b81b29680b6'
+ '5266259060f5723d8ee639b8a541f835')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libmms-0.5-this-keyword.patch" || return 1
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libmms/libmms-0.5-this-keyword.patch b/extra/libmms/libmms-0.5-this-keyword.patch
new file mode 100644
index 000000000..9d5ae762e
--- /dev/null
+++ b/extra/libmms/libmms-0.5-this-keyword.patch
@@ -0,0 +1,18 @@
+diff -Nurp libmms-0.5.orig//src/mmsx.h libmms-0.5//src/mmsx.h
+--- libmms-0.5.orig//src/mmsx.h 2010-03-03 11:42:14.000000000 +0100
++++ libmms-0.5//src/mmsx.h 2010-03-03 11:42:46.000000000 +0100
+@@ -55,11 +55,11 @@ int mmsx_peek_header (mmsx_t *inst
+
+ mms_off_t mmsx_get_current_pos (mmsx_t *instance);
+
+-uint32_t mmsx_get_asf_header_len (mmsx_t *this);
++uint32_t mmsx_get_asf_header_len (mmsx_t *instance);
+
+-uint64_t mmsx_get_asf_packet_len (mmsx_t *this);
++uint64_t mmsx_get_asf_packet_len (mmsx_t *instance);
+
+-int mmsx_get_seekable (mmsx_t *this);
++int mmsx_get_seekable (mmsx_t *instance);
+
+ #ifdef __cplusplus
+ }
diff --git a/extra/libmng/PKGBUILD b/extra/libmng/PKGBUILD
new file mode 100644
index 000000000..660771863
--- /dev/null
+++ b/extra/libmng/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 63248 2010-01-16 20:44:09Z jgc $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: judd <jvinet@zeroflux.org>
+pkgname=libmng
+pkgver=1.0.10
+pkgrel=3
+pkgdesc="A collection of routines used to create and manipulate MNG format graphics files"
+arch=('i686' 'x86_64')
+url="http://www.libmng.com/"
+license=('custom')
+depends=('zlib' 'libjpeg>=8')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('a464ae7d679781beebdf7440d144b7bd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ln -s makefiles/configure.in .
+ ln -s makefiles/Makefile.am .
+ autoreconf --force --install
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/libmodplug/PKGBUILD b/extra/libmodplug/PKGBUILD
new file mode 100644
index 000000000..ba117d07d
--- /dev/null
+++ b/extra/libmodplug/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 81170 2010-05-26 23:12:54Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Patrick Leslie Polzer <leslie.polzer@gmx.net>
+
+pkgname=libmodplug
+pkgver=0.8.8.1
+pkgrel=1
+pkgdesc="A MOD playing library"
+arch=(i686 x86_64)
+url="http://modplug-xmms.sourceforge.net/"
+license=('custom')
+depends=('gcc-libs')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/modplug-xmms/libmodplug-${pkgver}.tar.gz)
+md5sums=('f7fa53a60c650024ff51cca88341776b')
+
+build() {
+ cd ${srcdir}/libmodplug-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
diff --git a/extra/libmowgli/PKGBUILD b/extra/libmowgli/PKGBUILD
new file mode 100644
index 000000000..0b78ff8c4
--- /dev/null
+++ b/extra/libmowgli/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 85575 2010-07-15 22:09:17Z eric $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Brad Gordon <brad@rpgcyco.net>
+
+pkgname=libmowgli
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Class library containing performance and usability oriented extensions to C"
+arch=('i686' 'x86_64')
+url="http://www.atheme.org/project/mowgli"
+license=('custom')
+depends=('glibc')
+source=(http://distfiles.atheme.org/libmowgli-${pkgver}.tbz2)
+md5sums=('412b4fd72ddbdc07d736a691fc8031ca')
+sha1sums=('ad51d5f5352954553fc55ce26b98185edce31509')
+
+build() {
+ cd "${srcdir}/libmowgli-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/libmowgli-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/libmowgli/COPYING"
+}
diff --git a/extra/libmp3splt/PKGBUILD b/extra/libmp3splt/PKGBUILD
new file mode 100644
index 000000000..fefb3827c
--- /dev/null
+++ b/extra/libmp3splt/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117351 2011-03-31 07:10:06Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libmp3splt
+pkgver=0.6.1a
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="Library for splitting mp3 and ogg files without decoding"
+license=('GPL')
+url="http://mp3splt.sourceforge.net"
+makedepends=('git')
+depends=('libmad' 'libvorbis' 'libid3tag' 'libtool')
+source=(http://downloads.sourceforge.net/sourceforge/mp3splt/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ libtoolize --copy --force
+ ./autogen.sh
+ ./configure --prefix=/usr
+ make
+}
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir/ install
+}
+md5sums=('a6a00d83e49adf27abb7a0cb0ea384a4')
diff --git a/extra/libmp4v2/PKGBUILD b/extra/libmp4v2/PKGBUILD
new file mode 100644
index 000000000..9182dd229
--- /dev/null
+++ b/extra/libmp4v2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 71330 2010-03-06 18:41:25Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmp4v2
+pkgver=1.9.1
+pkgrel=1
+pkgdesc="MPEG-4 library"
+arch=('i686' 'x86_64')
+license=('MPL')
+url="http://code.google.com/p/mp4v2/"
+options=('!libtool')
+source=(http://mp4v2.googlecode.com/files/mp4v2-${pkgver}.tar.bz2)
+md5sums=('986701929ef15b03155ac4fb16444797')
+
+build() {
+ cd ${srcdir}/mp4v2-${pkgver}
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/mp4v2-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+ make DESTDIR=${pkgdir} install-man || return 1
+} \ No newline at end of file
diff --git a/extra/libmpcdec/PKGBUILD b/extra/libmpcdec/PKGBUILD
new file mode 100644
index 000000000..3cd953784
--- /dev/null
+++ b/extra/libmpcdec/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 57066 2009-10-31 11:59:42Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmpcdec
+pkgver=1.2.6
+pkgrel=2
+pkgdesc="Musepack decoding library"
+arch=('i686' 'x86_64')
+url="http://musepack.net/"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://files.musepack.net/source/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7f7a060e83b4278acf4b77d7a7b9d2c0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/libmpd/PKGBUILD b/extra/libmpd/PKGBUILD
new file mode 100644
index 000000000..1c59617e4
--- /dev/null
+++ b/extra/libmpd/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 80681 2010-05-20 18:05:26Z ibiru $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+
+pkgname=libmpd
+pkgver=0.20.0
+pkgrel=1
+pkgdesc="Signal based wrapper around libmpdclient"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://gmpc.wikia.com/wiki/Gnome_Music_Player_Client"
+depends=('glib2')
+options=('!libtool')
+source=(http://download.sarine.nl/Programs/gmpc/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2f1c99e12c69f7d95cfd1e27368056ed')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libmpdclient/PKGBUILD b/extra/libmpdclient/PKGBUILD
new file mode 100644
index 000000000..b639ea6e0
--- /dev/null
+++ b/extra/libmpdclient/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 50625 2009-08-30 03:02:23Z allan $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=libmpdclient
+pkgver=2.4
+pkgrel=1
+pkgdesc='An asynchronous API library for interfacing MPD in the C, C++ & Objective C languages'
+arch=('i686' 'x86_64')
+url='http://mpd.wikia.com/wiki/ClientLib:libmpdclient'
+license=('GPL2')
+depends=('glibc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/musicpd/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('fe240e56eb5cae082ea4894a810c1fdadc3d03a1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libmpeg2/PKGBUILD b/extra/libmpeg2/PKGBUILD
new file mode 100644
index 000000000..52b72ad74
--- /dev/null
+++ b/extra/libmpeg2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 8676 2008-08-15 11:02:53Z andyrtr $
+# Contributor: Sarah Hay <sarah@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libmpeg2
+pkgver=0.5.1
+pkgrel=1
+pkgdesc="libmpeg2 is a library for decoding MPEG-1 and MPEG-2 video streams."
+arch=('i686' 'x86_64')
+url="http://libmpeg2.sourceforge.net/"
+depends=('glibc')
+optdepends=('sdl: requiered for mpeg2dec'
+ 'libsm: requiered for mpeg2dec'
+ 'libxv: requiered for mpeg2dec')
+source=(http://libmpeg2.sourceforge.net/files/${pkgname}-${pkgver}.tar.gz)
+license=('GPL2')
+options=(!libtool)
+provides=('mpeg2dec')
+md5sums=('0f92c7454e58379b4a5a378485bbd8ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-shared --disable-static || return 1
+ make OPT_CFLAGS="${CFLAGS}" \
+ MPEG2DEC_CFLAGS="${CFLAGS}" \
+ LIBMPEG2_CFLAGS="" || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/libmsn/PKGBUILD b/extra/libmsn/PKGBUILD
new file mode 100644
index 000000000..c62c80a19
--- /dev/null
+++ b/extra/libmsn/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Charly Ghislain <charlyghislain@gmail.com>
+
+pkgname=libmsn
+pkgver=4.1
+pkgrel=2
+pkgdesc="A reusable, open-source, fully documented library for connecting to Microsoft's MSN"
+url="http://sourceforge.net/projects/libmsn/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('openssl')
+makedepends=('cmake')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2"
+ 'openssl1.patch')
+md5sums=('769d3cf0e5625263fbc23321c1ddfcb0'
+ 'c8d7e2113d967a1d38a531e9fe8e7861')
+
+build() {
+ cd ${srcdir}
+ patch -Np0 -i ${srcdir}/openssl1.patch || return 1
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libmsn/openssl1.patch b/extra/libmsn/openssl1.patch
new file mode 100644
index 000000000..0ff7de898
--- /dev/null
+++ b/extra/libmsn/openssl1.patch
@@ -0,0 +1,17 @@
+--- libmsn-4.1/msntest/msntest.cpp~ 2010-04-01 15:05:13.248056050 +0200
++++ libmsn-4.1/msntest/msntest.cpp 2010-04-01 15:07:18.938878993 +0200
+@@ -259,7 +259,13 @@
+ if(mySocketsSsl[i].isSSL && !mySocketsSsl[i].isConnected)
+ {
+ BIO *bio_socket_new;
+- SSL_METHOD *meth=NULL;
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ const SSL_METHOD *meth=NULL;
++#else
++ SSL_METHOD *meth=NULL;
++#endif
++
+ meth=SSLv23_client_method();
+ SSLeay_add_ssl_algorithms();
+ mySocketsSsl[i].ctx = SSL_CTX_new(meth);
diff --git a/extra/libmspack/PKGBUILD b/extra/libmspack/PKGBUILD
new file mode 100644
index 000000000..3f0c60ff1
--- /dev/null
+++ b/extra/libmspack/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 79261 2010-05-02 14:06:52Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgname=libmspack
+pkgver=0.0.20060920alpha
+pkgrel=2
+pkgdesc="A library for Microsoft compression formats"
+arch=('i686' 'x86_64')
+url="http://www.cabextract.org.uk/libmspack/"
+license=('GPL')
+depends=('glibc')
+makedepends=()
+options=('!libtool')
+source=(http://www.cabextract.org.uk/libmspack/$pkgname-$pkgver.tar.gz)
+md5sums=('72003dfa5da2e843e3d5ae0c18f7c969')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ make DESTDIR="$pkgdir/" install || return 1
+}
diff --git a/extra/libmtp/PKGBUILD b/extra/libmtp/PKGBUILD
new file mode 100644
index 000000000..e549fa123
--- /dev/null
+++ b/extra/libmtp/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 101397 2010-11-29 04:35:05Z allan $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Kevin Edmonds <edmondskevin@hotmail.com>
+
+pkgname=libmtp
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="library implementation of the Media Transfer Protocol"
+arch=("i686" "x86_64")
+url="http://libmtp.sourceforge.net"
+license=('LGPL')
+depends=('libusb-compat')
+makedepends=('doxygen')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('cdc1cc6afa6be287ff6bc331e71bdc47')
+options=('!libtool')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ install -D -m0644 libmtp.rules \
+ $pkgdir/lib/udev/rules.d/52-libmtp.rules
+ install -D -m0644 libmtp.fdi \
+ $pkgdir/usr/share/hal/fdi/information/20thirdparty/libmtp.fdi
+}
diff --git a/extra/libmusicbrainz3/PKGBUILD b/extra/libmusicbrainz3/PKGBUILD
new file mode 100644
index 000000000..a89a5939a
--- /dev/null
+++ b/extra/libmusicbrainz3/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 92430 2010-09-29 21:08:46Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Max Fehrm max.fehrm@gmail.com
+pkgname=libmusicbrainz3
+pkgver=3.0.3
+pkgrel=1
+pkgdesc="Library That Provides Access to the MusicBrainz Server "
+url="http://musicbrainz.org/"
+arch=('i686' 'x86_64')
+license=('LGPL2.1')
+depends=('neon' 'libdiscid')
+makedepends=('cmake')
+source=(ftp://ftp.musicbrainz.org/pub/musicbrainz/libmusicbrainz-$pkgver.tar.gz)
+md5sums=('f4824d0a75bdeeef1e45cc88de7bb58a')
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../libmusicbrainz-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_STATIC_LIBS:BOOL=OFF
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libmythes/PKGBUILD b/extra/libmythes/PKGBUILD
new file mode 100644
index 000000000..77ed47352
--- /dev/null
+++ b/extra/libmythes/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 104337 2011-01-01 13:29:40Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgname=libmythes
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="a simple thesaurus"
+arch=('i686' 'x86_64')
+url="http://hunspell.sourceforge.net/ "
+license=('custom')
+depends=('glibc' 'perl')
+options=('force' '!libtool')
+provides=('mythes')
+source=(http://downloads.sourceforge.net/hunspell/${pkgname/lib/}-${pkgver}.tar.gz)
+md5sums=('54b310488dda6929cf31ae859928c945')
+
+build() {
+ cd ${srcdir}/${pkgname/lib/}-$pkgver
+ ./configure --prefix=/usr --disable-static
+ make
+ # run the example program:
+ ./example th_en_US_new.idx th_en_US_new.dat checkme.lst
+ # run the example program with stemming and morphological generation:
+ # e.g. to check mouse, mice, rodents, eats, eaten, ate, eating etc. words
+ ./example morph.idx morph.dat morph.lst morph.aff morph.dic
+}
+
+package() {
+ cd ${srcdir}/${pkgname/lib/}-$pkgver
+ make DESTDIR=$pkgdir install
+ # license
+ install -Dm644 ${srcdir}/${pkgname/lib/}-$pkgver/COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/libnet/PKGBUILD b/extra/libnet/PKGBUILD
new file mode 100644
index 000000000..812ae9a4a
--- /dev/null
+++ b/extra/libnet/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 105390 2011-01-08 15:09:56Z andrea $
+# Maintainer:
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=libnet
+pkgver=1.1.5
+pkgrel=1
+pkgdesc="A library which provides API for commonly used low-level net functions"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/libnet-dev/"
+license=('BSD')
+depends=('glibc' 'sh')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/libnet-dev/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a9bc1d75a610efcfee200d3e28d8eb8f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make CFLAGS="${CFLAGS} -fPIC"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 doc/COPYING \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/libnice/PKGBUILD b/extra/libnice/PKGBUILD
new file mode 100644
index 000000000..c9f09791c
--- /dev/null
+++ b/extra/libnice/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 500 2009-08-01 11:44:28Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: William Díaz <wdiaz@archlinux.us>
+
+pkgname=libnice
+pkgver=0.0.13
+pkgrel=3
+pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams)"
+arch=('i686' 'x86_64')
+url="http://nice.freedesktop.org"
+license=('LGPL')
+depends=('gstreamer0.10')
+options=('!libtool')
+source=(http://nice.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e5b9f799a57cb939ea2658ec35253ab9')
+
+build() {
+# export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ #make sure that all tests pass
+# make check
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libnotify/PKGBUILD b/extra/libnotify/PKGBUILD
new file mode 100644
index 000000000..03813ec68
--- /dev/null
+++ b/extra/libnotify/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 112734 2011-03-06 12:38:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libnotify
+pkgver=0.7.1
+pkgrel=1.1
+pkgdesc="Desktop notification library"
+arch=('i686' 'x86_64')
+url="http://library.gnome.org/devel/notification-spec/"
+license=('LGPL')
+depends=('gdk-pixbuf2')
+makedepends=('gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2
+ libnotify-0.7.1-gtk3-tests.patch)
+sha256sums=('84dc2a77defb25521d2f1cb7ac34b4d23b55254ba361442658430efb928536c8'
+ 'd9ee539a58a30ccd213b9857003c2ba04a0cf343763ed566ca0d769cbfc34664')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libnotify-0.7.1-gtk3-tests.patch"
+ autoreconf -fi
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libnotify/libnotify-0.7.1-gtk3-tests.patch b/extra/libnotify/libnotify-0.7.1-gtk3-tests.patch
new file mode 100644
index 000000000..7d1230520
--- /dev/null
+++ b/extra/libnotify/libnotify-0.7.1-gtk3-tests.patch
@@ -0,0 +1,110 @@
+From 92983cacd36fa9b050f911bc4de09b8c4fb9f3b2 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Thu, 16 Dec 2010 00:01:13 +0100
+Subject: [PATCH] gentoo: do not build gtk+:3 tests if not required
+
+---
+ configure.ac | 5 +++++
+ tests/Makefile.am | 30 +++++++++++++++++-------------
+ 2 files changed, 22 insertions(+), 13 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 71609ed..7767c5b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -97,10 +97,15 @@ AC_SUBST(PACKAGE_LIBS)
+ AC_SUBST(PACKAGE_CFLAGS)
+ AC_SUBST(pkg_modules)
+
++AC_ARG_ENABLE([tests],
++ AS_HELP_STRING([--enable-tests], [Check for extra dependencies to build all tests]))
++AS_IF([test $enable_tests = yes], [
+ tests_modules="gtk+-3.0 >= $REQ_GTK_VERSION"
+ PKG_CHECK_MODULES(TESTS, [$tests_modules])
++])
+ AC_SUBST(TESTS_LIBS)
+ AC_SUBST(TESTS_CFLAGS)
++AM_CONDITIONAL([MORE_TESTS], [test $enable_tests = yes])
+
+ GLIB_GENMARSHAL=`pkg-config --variable=glib_genmarshal glib-2.0`
+ AC_SUBST(GLIB_GENMARSHAL)
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 7acf9a3..2856a82 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -2,18 +2,15 @@ INCLUDES = \
+ -I$(top_srcdir) \
+ $(TESTS_CFLAGS)
+
+-noinst_PROGRAMS = \
++check_PROGRAMS = \
+ test-replace \
+- test-replace-widget \
+ test-server-info \
+ test-default-action \
+ test-multi-actions \
+ test-action-icons \
+- test-image \
+ test-basic \
+ test-error \
+ test-markup \
+- test-persistence \
+ test-resident \
+ test-rtl \
+ test-size-changes \
+@@ -23,6 +20,22 @@ noinst_PROGRAMS = \
+ test-xy-actions \
+ test-xy-stress
+
++#if MORE_TESTS
++check_PROGRAMS += \
++ test-image \
++ test-replace-widget \
++ test-persistence
++
++test_replace_widget_SOURCES = test-replace-widget.c
++test_replace_widget_LDADD = $(common_ldflags)
++
++test_image_SOURCES = test-image.c
++test_image_LDADD = $(common_ldflags)
++
++test_persistence_SOURCES = test-persistence.c
++test_persistence_LDADD = $(common_ldflags)
++#endif
++
+ common_ldflags = \
+ $(top_builddir)/libnotify/libnotify.la \
+ $(TESTS_LIBS)
+@@ -30,9 +43,6 @@ common_ldflags = \
+ test_replace_SOURCES = test-replace.c
+ test_replace_LDADD = $(common_ldflags)
+
+-test_replace_widget_SOURCES = test-replace-widget.c
+-test_replace_widget_LDADD = $(common_ldflags)
+-
+ test_server_info_SOURCES = test-server-info.c
+ test_server_info_LDADD = $(common_ldflags)
+
+@@ -48,9 +58,6 @@ test_multi_actions_LDADD = $(common_ldflags)
+ test_action_icons_SOURCES = test-action-icons.c
+ test_action_icons_LDADD = $(common_ldflags)
+
+-test_image_SOURCES = test-image.c
+-test_image_LDADD = $(common_ldflags)
+-
+ test_basic_SOURCES = test-basic.c
+ test_basic_LDADD = $(common_ldflags)
+
+@@ -75,9 +82,6 @@ test_xy_stress_LDADD = $(common_ldflags)
+ test_rtl_SOURCES = test-rtl.c
+ test_rtl_LDADD = $(common_ldflags)
+
+-test_persistence_SOURCES = test-persistence.c
+-test_persistence_LDADD = $(common_ldflags)
+-
+ test_resident_SOURCES = test-resident.c
+ test_resident_LDADD = $(common_ldflags)
+
+--
+1.7.4.rc2
+
diff --git a/extra/libnova/PKGBUILD b/extra/libnova/PKGBUILD
new file mode 100644
index 000000000..5074d4037
--- /dev/null
+++ b/extra/libnova/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 62102 2010-01-02 09:17:17Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libnova
+pkgver=0.13.0
+pkgrel=1
+pkgdesc="libnova is a general purpose, double precision, celestial mechanics, astrometry and astrodynamics library."
+url="http://libnova.sourceforge.net/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('glibc')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/libnova/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir/ install
+}
+md5sums=('32f67b1ae28372582da7fe4e6f554dcd')
diff --git a/extra/libofa/PKGBUILD b/extra/libofa/PKGBUILD
new file mode 100644
index 000000000..c58f98794
--- /dev/null
+++ b/extra/libofa/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 80563 2010-05-19 16:11:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libofa
+pkgver=0.9.3
+pkgrel=2
+pkgdesc="Open Fingerprint Architecture"
+arch=(i686 x86_64)
+url="http://code.google.com/p/musicip-libofa/"
+license=('GPL2' 'custom')
+depends=('expat' 'curl' 'fftw' 'gcc-libs')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=("http://musicip-libofa.googlecode.com/files/$pkgname-$pkgver.tar.gz"
+ 'gcc-4.patch'
+ 'gcc4.3.patch'
+ 'gcc4.5.patch')
+sha1sums=('3dec8e1dcea937f74b4165e9ffd4d4f355e4594a'
+ 'cb19377d0634c03d2a49cfc61915cec918c341f7'
+ 'cae08bdc12de923d5e032696702a0530ae6eafc1'
+ '754d69d66ab46219035ccafeeb3ff62433cca4f2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/gcc-4.patch || return 1
+ patch -Np1 -i ${srcdir}/gcc4.3.patch || return 1
+ patch -Np1 -i ${srcdir}/gcc4.5.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/libofa/gcc-4.patch b/extra/libofa/gcc-4.patch
new file mode 100644
index 000000000..d1059bafa
--- /dev/null
+++ b/extra/libofa/gcc-4.patch
@@ -0,0 +1,39 @@
+--- lib/JAMA/tnt_math_utils.h.orig 2006-06-17 01:46:22.000000000 +0300
++++ lib/JAMA/tnt_math_utils.h 2006-06-17 01:47:02.000000000 +0300
+@@ -20,11 +20,20 @@
+ namespace TNT
+ {
+ /**
++ @returns the absolute value of a real (no-complex) scalar.
++*/
++template <class Real>
++Real abs(const Real &a)
++{
++ return (a > 0 ? a : -a);
++}
++/**
+ @returns hypotenuse of real (non-complex) scalars a and b by
+ avoiding underflow/overflow
+ using (a * sqrt( 1 + (b/a) * (b/a))), rather than
+ sqrt(a*a + b*b).
+ */
++
+ template <class Real>
+ Real hypot(const Real &a, const Real &b)
+ {
+@@ -56,15 +65,6 @@
+ }
+ */
+
+-/**
+- @returns the absolute value of a real (no-complex) scalar.
+-*/
+-template <class Real>
+-Real abs(const Real &a)
+-{
+- return (a > 0 ? a : -a);
+-}
+-
+ }
+ #endif
+ /* MATH_UTILS_H */
diff --git a/extra/libofa/gcc4.3.patch b/extra/libofa/gcc4.3.patch
new file mode 100644
index 000000000..f68f42bfb
--- /dev/null
+++ b/extra/libofa/gcc4.3.patch
@@ -0,0 +1,35 @@
+diff -ur libofa-0.9.3.orig/examples/example.cpp libofa-0.9.3/examples/example.cpp
+--- libofa-0.9.3.orig/examples/example.cpp 2006-05-10 21:05:37.000000000 +0300
++++ libofa-0.9.3/examples/example.cpp 2008-04-16 15:51:49.000000000 +0300
+@@ -9,6 +9,8 @@
+
+ #include "protocol.h"
+
++#include <string.h>
++
+ AudioData* loadWaveFile(char *file);
+ AudioData* loadDataUsingLAME(char *file);
+
+Vain hakemistossa libofa-0.9.3/examples: example.cpp.orig
+diff -ur libofa-0.9.3.orig/examples/protocol.cpp libofa-0.9.3/examples/protocol.cpp
+--- libofa-0.9.3.orig/examples/protocol.cpp 2006-05-10 21:05:42.000000000 +0300
++++ libofa-0.9.3/examples/protocol.cpp 2008-04-16 15:51:49.000000000 +0300
+@@ -8,6 +8,7 @@
+ -------------------------------------------------------------------*/
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <cstring>
+ #include <string>
+ #include <map>
+ #include <expat.h>
+diff -ur libofa-0.9.3.orig/lib/signal_op.cpp libofa-0.9.3/lib/signal_op.cpp
+--- libofa-0.9.3.orig/lib/signal_op.cpp 2006-05-10 21:01:12.000000000 +0300
++++ libofa-0.9.3/lib/signal_op.cpp 2008-04-16 15:51:49.000000000 +0300
+@@ -12,6 +12,7 @@
+ // DATE CREATED: 1/12/06
+
+
++#include <cstdlib>
+ #include <math.h>
+ #include "signal_op.h"
+ #include "AFLIB/aflibConverter.h"
diff --git a/extra/libofa/gcc4.5.patch b/extra/libofa/gcc4.5.patch
new file mode 100644
index 000000000..44f437d5b
--- /dev/null
+++ b/extra/libofa/gcc4.5.patch
@@ -0,0 +1,10 @@
+--- libofa-0.9.3/examples/example.cpp~ 2010-05-19 18:07:19.517650317 +0200
++++ libofa-0.9.3/examples/example.cpp 2010-05-19 18:07:31.754317472 +0200
+@@ -6,6 +6,7 @@
+ No rights reserved.
+
+ -------------------------------------------------------------------*/
++#include <cstdio>
+
+ #include "protocol.h"
+
diff --git a/extra/libofx/PKGBUILD b/extra/libofx/PKGBUILD
new file mode 100644
index 000000000..6058cb7ee
--- /dev/null
+++ b/extra/libofx/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD,v 1.9 2009/02/06 16:41:19 abhidg Exp $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgbase=libofx
+pkgname=('libofx' 'libofx-doc')
+pkgver=0.9.2
+pkgrel=1
+pkgdesc="API for the OFX banking standard"
+arch=('i686' 'x86_64')
+url="http://libofx.sourceforge.net"
+license=('GPL')
+depends=('opensp' 'curl' 'gcc-libs')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('cb72fce95e0d59bef78ba0601fbc91f3')
+sha1sums=('f11e873a50f5bd16749a7c0700acbf5d565bc859')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package_libofx() {
+ options=('!libtool' '!docs')
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+package_libofx-doc() {
+ pkgdesc="Documention of the OFX banking standard API"
+ depends=()
+
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install-docDATA
+ cd doc
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/libogg/PKGBUILD b/extra/libogg/PKGBUILD
new file mode 100644
index 000000000..66f9062d3
--- /dev/null
+++ b/extra/libogg/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 104973 2011-01-05 16:46:37Z heftig $
+# Maintainer:
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=libogg
+pkgver=1.2.2
+pkgrel=1.1
+pkgdesc="Ogg bitstream and framing library"
+arch=('i686' 'x86_64')
+url="http://www.xiph.org/ogg/"
+license=('BSD')
+depends=('glibc')
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/ogg/$pkgname-$pkgver.tar.xz
+ config_types.h)
+md5sums=('203c28a1d356b641253c960365e4cc48'
+ 'a4d786b1b1955cb85b64fd16cbbee3f9')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${pkgver}
+ make DESTDIR=$pkgdir install
+
+ # install BSD license
+ install -Dm644 $srcdir/$pkgname-$pkgver/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+
+ # Resolve multilib conflict
+ if [[ $CARCH == "x86_64" ]]; then
+ mv "$pkgdir"/usr/include/ogg/config_types{,-64}.h
+ install -m 644 "$srcdir/config_types.h" \
+ "${pkgdir}/usr/include/ogg/config_types.h"
+ fi
+}
diff --git a/extra/libogg/config_types.h b/extra/libogg/config_types.h
new file mode 100644
index 000000000..8297a7acb
--- /dev/null
+++ b/extra/libogg/config_types.h
@@ -0,0 +1,9 @@
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 32
+#include "config_types-32.h"
+#elif __WORDSIZE == 64
+#include "config_types-64.h"
+#else
+#error "Unknown word size"
+#endif
diff --git a/extra/liboil/PKGBUILD b/extra/liboil/PKGBUILD
new file mode 100644
index 000000000..e206abb99
--- /dev/null
+++ b/extra/liboil/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 72222 2010-03-13 20:12:59Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=liboil
+pkgver=0.3.17
+pkgrel=1
+pkgdesc="Library of simple functions that are optimized for various CPUs."
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://liboil.freedesktop.org/"
+depends=('glibc')
+makedepends=('glib2' 'pkgconfig' 'docbook-xsl')
+options=('!libtool' '!makeflags')
+source=(${url}/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('47dc734f82faeb2964d97771cfd2e701')
+
+build() {
+ unset CFLAGS
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/liboil"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/liboil/" || return 1
+}
diff --git a/extra/liborigin2/PKGBUILD b/extra/liborigin2/PKGBUILD
new file mode 100644
index 000000000..1944f0fe8
--- /dev/null
+++ b/extra/liborigin2/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 112096 2011-03-03 20:59:03Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgbase=liborigin2
+pkgname=('liborigin2' 'liborigin2-docs')
+pkgver=20100913
+pkgrel=3
+arch=('i686' 'x86_64')
+url="http://soft.proindependent.com/liborigin2/"
+license=('GPL3')
+makedepends=('doxygen' 'qt' 'boost')
+replaces=('liborigin')
+provides=('liborigin')
+source=(http://download.berlios.de/qtiplot/${pkgbase}-13092010.zip
+ liborigin.pro.archlinux
+ http://tree.phi-sci.com/tree.hh)
+md5sums=('e2b41c4d8a1e2d357dd2b5b331d31375' '2b19f7a4bd120f6d689edc327468e48e'\
+ 'd24a1c3bdd811354ea7f5885d86ddacb')
+sha1sums=('3f17d5a8c484ddb864a29a91a94d677b0b3b18d7' '1664b00929d6fba6e5ebcf7cb422e1da1b3897a5'\
+ 'd10344d969e0b892c21e1bd5bd3541d838526b24')
+
+build() {
+ cd "${srcdir}/${pkgbase}"
+
+ install -Dm644 "${srcdir}/liborigin.pro.archlinux" ./liborigin.pro
+ install -Dm644 "${srcdir}/tree.hh" ./tree.hh # get the header back like it was in previous releases
+ qmake liborigin.pro QMAKESPEC=linux-g++
+ make QTDIR=/usr/ QMAKESPEC=linux-g++
+
+ # create documentation
+ cd doc
+ doxygen
+}
+
+package_liborigin2() {
+ pkgdesc="A library for reading OriginLab OPJ project files"
+ depends=('gcc-libs' 'boost-libs')
+
+ cd "${srcdir}/${pkgbase}"
+
+ INSTALL_ROOT="${pkgdir}" make install
+
+ # install missing includes
+ install -Dm644 tree.hh "${pkgdir}/usr/include/liborigin2/tree.hh"
+ for i in *.h; do
+ install -Dm644 ${i} "${pkgdir}/usr/include/liborigin2/${i}"
+ done
+}
+package_liborigin2-docs() {
+ pkgdesc="Documentation for liborigin2: a library for reading OriginLab OPJ project files"
+
+ cd "${srcdir}/${pkgbase}/doc"
+ install -d "${pkgdir}/usr/share/doc/${pkgbase}"
+ cp -rf html/* "${pkgdir}/usr/share/doc/${pkgbase}"
+ chmod 755 "${pkgdir}/usr/share/doc/liborigin2/images"
+ chmod 644 "${pkgdir}/usr/share/doc/liborigin2/images/origin_import.png"
+}
diff --git a/extra/liborigin2/liborigin.pro.archlinux b/extra/liborigin2/liborigin.pro.archlinux
new file mode 100644
index 000000000..d338a009c
--- /dev/null
+++ b/extra/liborigin2/liborigin.pro.archlinux
@@ -0,0 +1,41 @@
+TARGET = origin2
+TEMPLATE = lib
+CONFIG += warn_on release thread
+#CONFIG += staticlib
+MOC_DIR = ./tmp
+OBJECTS_DIR = ./tmp
+
+DESTDIR = ./
+
+#INCLUDEPATH += boost_1_33_0
+LIBS += -lboost_date_time
+LIBS += -lboost_thread
+
+HEADERS += endianfstream.hh
+HEADERS += logging.hpp
+HEADERS += OriginObj.h
+HEADERS += OriginFile.h
+HEADERS += OriginParser.h
+HEADERS += OriginDefaultParser.h
+HEADERS += Origin600Parser.h
+HEADERS += Origin610Parser.h
+HEADERS += Origin700Parser.h
+HEADERS += Origin750Parser.h
+HEADERS += Origin800Parser.h
+HEADERS += Origin810Parser.h
+
+SOURCES += OriginFile.cpp
+SOURCES += OriginParser.cpp
+SOURCES += OriginDefaultParser.cpp
+SOURCES += Origin600Parser.cpp
+SOURCES += Origin610Parser.cpp
+SOURCES += Origin700Parser.cpp
+SOURCES += Origin750Parser.cpp
+SOURCES += Origin800Parser.cpp
+SOURCES += Origin810Parser.cpp
+
+headers.files = \$\$HEADERS
+headers.path = /usr/include/liborigin2
+target.path = /usr/lib
+INSTALLS = target headers
+
diff --git a/extra/libotf/PKGBUILD b/extra/libotf/PKGBUILD
new file mode 100644
index 000000000..85f758c52
--- /dev/null
+++ b/extra/libotf/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 100934 2010-11-26 17:51:11Z bisson $
+# Contributor: Ashish Shukla <wahjava.ml@gmail.com>
+
+pkgname=libotf
+pkgver=0.9.12
+pkgrel=1
+pkgdesc='OpenType Font library'
+url='http://www.m17n.org/libotf/'
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libxaw' 'freetype2')
+options=('!libtool')
+source=("http://www.m17n.org/libotf/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('47872f696a62e8f111960143f3f36b5366398e20')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libotr/PKGBUILD b/extra/libotr/PKGBUILD
new file mode 100644
index 000000000..2aa1b0147
--- /dev/null
+++ b/extra/libotr/PKGBUILD
@@ -0,0 +1,22 @@
+# $ Id: $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Bug <Bug2000@gmail.com>
+
+pkgname=libotr
+pkgver=3.2.0
+pkgrel=1
+pkgdesc='Off-the-Record Messaging Library and Toolkit.'
+arch=('i686' 'x86_64')
+url='http://www.cypherpunks.ca/otr/'
+license=('GPL' 'LGPL')
+depends=('libgcrypt')
+options=('!libtool')
+source=("http://www.cypherpunks.ca/otr/${pkgname}-${pkgver}.tar.gz")
+md5sums=('faba02e60f64e492838929be2272f839')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir install
+} \ No newline at end of file
diff --git a/extra/libots/PKGBUILD b/extra/libots/PKGBUILD
new file mode 100644
index 000000000..cd749e574
--- /dev/null
+++ b/extra/libots/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 88136 2010-08-19 19:25:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libots
+pkgver=0.5.0
+pkgrel=2
+pkgdesc="Open Text Summarizer"
+arch=('i686' 'x86_64')
+url="http://libots.sourceforge.net/"
+license=('GPL')
+depends=('libxml2' 'glib2')
+options=('!libtool' '!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/ots-${pkgver}.tar.gz)
+md5sums=('1e140a4bf9d720b4339a5c2bdf4976e8')
+
+
+build() {
+ cd "${srcdir}/ots-${pkgver}"
+ touch gtk-doc.make
+ sed -i -e 's/en.xml$//' dic/Makefile.am
+ libtoolize --force
+ aclocal
+ automake --add-missing --force
+ autoconf
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libpano13/PKGBUILD b/extra/libpano13/PKGBUILD
new file mode 100644
index 000000000..6471753aa
--- /dev/null
+++ b/extra/libpano13/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 96763 2010-10-24 16:48:37Z ibiru $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libpano13
+pkgver=2.9.17
+pkgrel=1
+pkgdesc="basic library to calculate panoramical pictures - core functions of the panotools"
+url="http://panotools.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('libpng' 'libtiff')
+makedepends=('openjdk6')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/panotools/$pkgname-$pkgver.tar.gz)
+md5sums=('54ec7c505cf38521f2fbb6e2acd2c433')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+# sed -i 's:\(^.*MAX_FISHEYE_FOV.*\)160.*$:\1720.0:' filter.h
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-java=${JAVA_HOME}
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/libpciaccess/PKGBUILD b/extra/libpciaccess/PKGBUILD
new file mode 100644
index 000000000..8302ea92a
--- /dev/null
+++ b/extra/libpciaccess/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=libpciaccess
+pkgver=0.12.1
+pkgrel=1
+pkgdesc="X11 PCI access library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('4933bda545df37395e57ff6b4bd61e17a5431770')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libplist/PKGBUILD b/extra/libplist/PKGBUILD
new file mode 100644
index 000000000..2a82efc5d
--- /dev/null
+++ b/extra/libplist/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 89629 2010-09-02 17:11:43Z remy $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=libplist
+pkgver=1.3
+pkgrel=2
+pkgdesc="A library to handle Apple Property List format whereas it's binary or XML"
+url="http://libimobiledevice.org/"
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL2.1')
+depends=('glib2>=2.24.1' 'libxml2>=2.7.7')
+makedepends=('cmake' 'swig' 'python2')
+source=(http://cloud.github.com/downloads/JonathanBeck/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('982c8aac59cdc3fafc925a407a29b6cf367c5ec9bad6ad509fe5ea25d3e5b6b0')
+
+build() {
+ # CMake is not patched yet
+ cd "${srcdir}/${pkgname}-${pkgver}/cmake/modules"
+ cp /usr/share/cmake-2.8/Modules/FindPython*.cmake .
+ sed -i -e 's#2.6#2.7 2.6#' FindPythonLibs.cmake
+ sed -i -e 's#python2.6#python2.7 python2.6#' FindPythonInterp.cmake
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../"${pkgname}-${pkgver}" \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libpng/PKGBUILD b/extra/libpng/PKGBUILD
new file mode 100644
index 000000000..42cc6b9e0
--- /dev/null
+++ b/extra/libpng/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 103693 2010-12-22 14:49:59Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Travis Willard <travis@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=libpng
+pkgver=1.4.5
+_apngver=1.4.5
+pkgrel=1
+pkgdesc="A collection of routines used to create PNG format graphics files"
+arch=('i686' 'x86_64')
+url="http://www.libpng.org/pub/png/libpng.html"
+license=('custom')
+depends=('zlib')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.xz"
+ "http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-${_apngver}-apng.patch.gz")
+md5sums=('37d420c7d8294aac438c150bb4335901'
+ '459affb0ac7e0f1ae4d99b88234cb3db')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Add animated PNG (apng) support
+ # see http://sourceforge.net/projects/libpng-apng/
+ patch -p1 -i "${srcdir}/libpng-${_apngver}-apng.patch"
+
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ cd contrib/pngminus
+ make PNGLIB="-L${pkgdir}/usr/lib -lpng" -f makefile.std png2pnm pnm2png
+ install -m755 png2pnm pnm2png "${pkgdir}/usr/bin/"
+ install -D -m644 ../../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/libproxy/PKGBUILD b/extra/libproxy/PKGBUILD
new file mode 100644
index 000000000..935b97672
--- /dev/null
+++ b/extra/libproxy/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 24494 2009-01-17 20:42:01Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libproxy
+pkgver=0.4.6
+pkgrel=6
+pkgdesc="A library that provides automatic proxy configuration management"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gcc-libs')
+optdepends=('gconf: GNOME configuration module'
+ 'kdelibs: KDE configuration module'
+ 'networkmanager: NetworkManager configuration module'
+ 'perl: Perl bindings'
+ 'python2: Python bindings')
+makedepends=('gconf' 'cmake' 'networkmanager' 'automoc4' 'python2' 'kdelibs' 'perl')
+url="http://libproxy.googlecode.com"
+source=(http://libproxy.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('199c6b120baf1f7258a55f38d5ec74f5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ mkdir build
+ cd build
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIBEXEC_INSTALL_DIR=/usr/lib/libproxy \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DPERL_VENDORINSTALL=yes \
+ -DCMAKE_BUILD_TYPE=None \
+ -WITH_WEBKIT=OFF \
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
+ -DCMAKE_C_FLAGS="${CFLAGS}" \
+ ..
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libpst/PKGBUILD b/extra/libpst/PKGBUILD
new file mode 100644
index 000000000..ea581fe03
--- /dev/null
+++ b/extra/libpst/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 112025 2011-03-03 09:42:31Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libpst
+pkgname=('libpst' 'libpst-docs')
+pkgver=0.6.49
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.five-ten-sg.com/libpst/"
+license=('GPL')
+makedepends=('python2' 'boost')
+source=(http://www.five-ten-sg.com/libpst/packages/${pkgbase}-${pkgver}.tar.gz)
+md5sums=('a0a0f927e82ab14bb042bd8bbd97c312')
+sha1sums=('c10f4af9dc1d22b331420bc3931036a3d41115cb')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --disable-static --enable-libpst-shared --disable-dii PYTHON_VERSION=2
+ make
+}
+
+package_libpst() {
+ pkgdesc="Outlook .pst file converter"
+ depends=('gcc-libs')
+ optdepends=('boost-libs: for libpst python interface')
+ options=('!libtool' '!docs')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_libpst-docs() {
+ pkgdesc="Documentation for Outlook .pst file converter"
+ options=('!libtool')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-htmlDATA
+ cd "${srcdir}/${pkgbase}-${pkgver}/html"
+ make DESTDIR="${pkgdir}" install-htmldevelDATA
+}
diff --git a/extra/libqalculate/PKGBUILD b/extra/libqalculate/PKGBUILD
new file mode 100644
index 000000000..b9ffa1c21
--- /dev/null
+++ b/extra/libqalculate/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 108627 2011-02-02 01:51:53Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libqalculate
+pkgver=0.9.7
+pkgrel=2
+pkgdesc="Multi-purpose desktop calculator"
+arch=('i686' 'x86_64')
+url="http://qalculate.sourceforge.net/"
+license=('GPL')
+depends=('libxml2' 'cln' 'glib2' 'ncurses' 'readline')
+makedepends=('perlxml')
+optdepends=('gnuplot: for plotting support' 'wget: for retrieval of exchange rates (not needed if you use one of the GUI)' 'gnome-vfs: for retrieval of exchange rates (not needed if you use one of the GUI)')
+options=('!libtool' '!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/qalculate/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a1507ab862f4ad9852788619aada35cd')
+sha1sums=('c15f7f3a97995decf62cc964956fc1e374ecd78c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libraw1394/PKGBUILD b/extra/libraw1394/PKGBUILD
new file mode 100644
index 000000000..786d0fc96
--- /dev/null
+++ b/extra/libraw1394/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114419 2011-03-13 13:06:30Z tpowa $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=libraw1394
+pkgver=2.0.7
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL2.1')
+pkgdesc="Provides an API to the Linux IEEE1394 (FireWire) driver"
+depends=('glibc')
+makedepends=('pkgconfig')
+url="https://ieee1394.wiki.kernel.org/index.php/Main_Page"
+options=(!libtool force)
+source=(ftp://ftp.kernel.org/pub/linux/libs/ieee1394/${pkgname}-${pkgver}.tar.bz2)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+md5sums=('997ef18ab8e2e21f3966dff00e92be28')
diff --git a/extra/libreoffice/ArchLinux.patch b/extra/libreoffice/ArchLinux.patch
new file mode 100644
index 000000000..2bcf9296d
--- /dev/null
+++ b/extra/libreoffice/ArchLinux.patch
@@ -0,0 +1,11 @@
+--- patches/dev300/apply 2009-05-07 19:44:13.000000000 +0000
++++ patches/dev300/apply.new 2009-05-11 18:46:58.108316633 +0000
+@@ -108,7 +108,7 @@
+ rpl2: rPathCommon
+ rpl2-64: rPathCommon
+ # ArchLinux
+-ArchLinux: LinuxCommon
++ArchLinux: LinuxCommon, NotDebian, CairoFonts, Shrink
+ # Win32
+ Win32 : Win32Common
+ # translate.org.za
diff --git a/extra/libreoffice/PKGBUILD b/extra/libreoffice/PKGBUILD
new file mode 100644
index 000000000..9935e4c61
--- /dev/null
+++ b/extra/libreoffice/PKGBUILD
@@ -0,0 +1,652 @@
+# $Id: PKGBUILD 116748 2011-03-25 17:36:36Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgbase="libreoffice"
+pkgname=('libreoffice' 'libreoffice-sdk' 'libreoffice-extension-nlpsolver' 'libreoffice-extension-pdfimport' 'libreoffice-extension-presentation-minimizer' 'libreoffice-extension-presenter-screen'
+ 'libreoffice-extension-report-builder' 'libreoffice-extension-wiki-publisher' 'libreoffice-extension-ct2n' 'libreoffice-extension-hunart' 'libreoffice-extension-numbertext'
+ 'libreoffice-extension-oooblogger' 'libreoffice-extension-typo' 'libreoffice-extension-watch-window' 'libreoffice-extension-diagram')
+_LOver=3.3.2.2
+pkgver=3.3.2
+pkgrel=2
+arch=('i686' 'x86_64')
+_LO_tree="3.3"
+_OFFICEUPD="330"
+license=('LGPL3')
+url="http://www.libreoffice.org/"
+makedepends=( # makedepends
+ 'boost' 'sane' 'perl-archive-zip' 'zip' 'unzip' 'xulrunner' 'unixodbc' 'hsqldb-java'
+ 'apache-ant' 'gperf' 'poppler' 'kdelibs' 'gconf' 'cppunit'
+ 'beanshell' 'vigra' 'libldap' 'lucene' 'libmythes' 'junit' 'libwpg' 'imagemagick'
+ # for additional ooo-build features
+ 'mesa>=7.5' 'gstreamer0.10-base>=0.10.26' #'mono>=2.6.1'
+ #'saxon' - currently broken
+ # the depends from libreoffice main pkg
+ "curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.0' 'libxaw' "neon>=0.28.6"
+ 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt'
+ 'redland' 'libgraphite' 'hyphen' 'lpsolve' 'gcc-libs' 'sh'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'java-runtime' 'gtk2') # keep gtk2 for install script
+# http://download.documentfoundation.org/mirrors/all.html
+# http://wiki.documentfoundation.org/Mirrors
+_mirror="http://download.documentfoundation.org/libreoffice/src"
+#_mirror="ftp://ftp.uni-muenster.de/pub/software/tdf/libreoffice/src"
+#_mirror="ftp://ftp.astral.ro/mirrors/tdf/libreoffice/src"
+_additional_source_url="http://hg.services.openoffice.org/binaries"
+source=(${_mirror}/${pkgbase}-build-${_LOver}.tar.gz
+ ${_mirror}/${pkgbase}-{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,l10n,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2
+ ArchLinux.patch
+ ${_additional_source_url}/63ddc5116488985e820075e65fbe6aa4-openssl-0.9.8o.tar.gz
+ ${_additional_source_url}/09357cc74975b01714e00c5899ea1881-pixman-0.12.0.tar.gz
+ ${_additional_source_url}/0b49ede71c21c0599b0cc19b353a6cb3-README_apache-commons.txt
+ ${_additional_source_url}/68dd2e8253d9a7930e9fd50e2d7220d0-hunspell-1.2.9.tar.gz
+ ${_additional_source_url}/128cfc86ed5953e57fe0f5ae98b62c2e-libtextcat-2.2.tar.gz
+ ${_additional_source_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
+ ${_additional_source_url}/1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz
+ ${_additional_source_url}/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz
+ ${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
+ ${_additional_source_url}/24be19595acad0a2cae931af77a0148a-LICENSE_source-9.0.0.7-bj.html
+ ${_additional_source_url}/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
+ ${_additional_source_url}/284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz
+ ${_additional_source_url}/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz
+ ${_additional_source_url}/2ae988b339daec234019a7066f96733e-commons-lang-2.3-src.tar.gz
+ ${_additional_source_url}/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
+ ${_additional_source_url}/2f6ecca935948f7db92d925d88d0d078-icu4c-4_0_1-src.tgz
+ ${_additional_source_url}/ca4870d899fd7e943ffc310a5421ad4d-liberation-fonts-ttf-1.06.0.20100721.tar.gz
+ ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
+ ${_additional_source_url}/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip
+ ${_additional_source_url}/377a60170e5185eb63d3ed2fae98e621-README_silgraphite-2.3.1.txt
+ ${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
+ ${_additional_source_url}/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz
+ ${_additional_source_url}/3c219630e4302863a9a83d0efde889db-commons-logging-1.1.1-src.tar.gz
+ ${_additional_source_url}/48470d662650c3c074e1c3fabbc67bbd-README_source-9.0.0.7-bj.txt
+ ${_additional_source_url}/48d8169acc35f97e05d8dcdfd45be7f2-lucene-2.3.2.tar.gz
+ ${_additional_source_url}/4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz
+ ${_additional_source_url}/4ea70ea87b47e92d318d4e7f5b940f47-cairo-1.8.0.tar.gz
+ ${_additional_source_url}/599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz
+ ${_additional_source_url}/5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip
+ http://download.go-oo.org/src/71474203939fafbe271e1263e61d083e-nss-3.12.8-with-nspr-4.8.6.tar.gz
+ ${_additional_source_url}/67b42915c8432abf0a922438f00860a2-libxml.zip
+ ${_additional_source_url}/7740a8ec23878a2f50120e1faa2730f2-libxml2-2.7.6.tar.gz
+ ${_additional_source_url}/7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz
+ ${_additional_source_url}/79600e696a98ff95c2eba976f7a8dfbb-liblayout.zip
+ ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
+ ${_additional_source_url}/ecb2e37e45c9933e2a963cabe03670ab-curl-7.19.7.tar.gz
+ ${_additional_source_url}/8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar
+ ${_additional_source_url}/8ea307d71d11140574bfb9fcc2487e33-libbase.zip
+ ${_additional_source_url}/bd30e9cf5523cdfc019b94f5e1d7fd19-cppunit-1.12.1.tar.gz
+ ${_additional_source_url}/a06a496d7a43cbdc35e69dbe678efadb-libloader.zip
+ ${_additional_source_url}/a169ab152209200a7bad29a275cb0333-seamonkey-1.1.14.source.tar.gz
+ ${_additional_source_url}/a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html
+ ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
+ ${_additional_source_url}/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip
+ ${_additional_source_url}/af3c3acf618de6108d65fcdc92b492e1-commons-codec-1.3-src.tar.gz
+ ${_additional_source_url}/ba1015b59c112d44d7797b62fe7bee51-neon-0.29.3.tar.gz
+ ${_additional_source_url}/bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1
+ ${_additional_source_url}/c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz
+ ${_additional_source_url}/ca66e26082cab8bb817185a116db809b-redland-1.0.8.tar.gz
+ ${_additional_source_url}/d0b5af6e408b8d2958f3d83b5244f5e8-hyphen-2.4.tar.gz
+ ${_additional_source_url}/d1a3205871c3c52e8a50c9f18510ae12-libformula.zip
+ ${_additional_source_url}/d35724900f6a4105550293686688bbb3-silgraphite-2.3.1.tar.gz
+ ${_additional_source_url}/d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip
+ ${_additional_source_url}/d70951c80dabecc2892c919ff5d07172-db-4.7.25.NC-custom.tar.gz
+ ${_additional_source_url}/dbb3757275dc5cc80820c0b4dd24ed95-librepository.zip
+ ${_additional_source_url}/dbd5f3b47ed13132f04c685d608a7547-jpeg-6b.tar.gz
+ ${_additional_source_url}/e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt
+ ${_additional_source_url}/e81c2f0953aa60f8062c05a4673f2be0-Python-2.6.1.tar.bz2
+ ${_additional_source_url}/e61d0364a30146aaa3001296f853b2b9-libxslt-1.1.26.tar.gz
+ ${_additional_source_url}/ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz
+ ${_additional_source_url}/ea91f2fb4212a21d708aced277e6e85a-vigra1.4.0.tar.gz
+ ${_additional_source_url}/ee8b492592568805593f81f8cdf2a04c-expat-2.0.1.tar.gz
+ ${_additional_source_url}/f3e2febd267c8e4b13df00dac211dd6d-flute.zip
+ ${_additional_source_url}/f7925ba8491fe570e5164d2c72791358-libfonts.zip
+ ${_additional_source_url}/fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt
+ ${_additional_source_url}/fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz
+ ${_additional_source_url}/fcc6df1160753d0b8c835d17fdeeb0a7-boost_1_39_0.tar.gz
+ ${_additional_source_url}/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz
+ ${_additional_source_url}/37282537d0ed1a087b1c8f050dc812d9-dejavu-fonts-ttf-2.32.zip
+ ${_additional_source_url}/831126a1ee5af269923cfab6050769fe-mysql-connector-cpp.zip
+ ${_additional_source_url}/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz
+ ${_additional_source_url}/cf8a6967f7de535ae257fa411c98eb88-mdds_0.3.0.tar.bz2
+ http://www.numbertext.org/linux/881af2b7dca9b8259abbca00bbbc004d-LinLibertineG-20110101.zip
+ http://download.go-oo.org/src/47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2
+ http://download.go-oo.org/src/debc62758716a169df9f62e6ab2bc634-zlib-1.2.3.tar.gz
+ http://download.go-oo.org/src/5ba6a61a2f66dfd5fee8cdd4cd262a37-libwpg-0.2.0.tar.bz2
+ http://download.go-oo.org/src/5ff846847dab351604ad859e2fd4ed3c-libwpd-0.9.1.tar.bz2
+ http://download.go-oo.org/src/9e436bff44c60dc8b97cba0c7fc11a5c-libwps-0.2.0.tar.bz2
+ http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
+ http://download.go-oo.org//DEV300/ooo-cli-prebuilt-3.3.tar.bz2
+ http://download.go-oo.org//SRC680/mdbtools-0.6pre1.tar.gz
+ http://download.go-oo.org//SRC680/extras-3.1.tar.bz2
+ http://download.go-oo.org//SRC680/biblio.tar.bz2
+ http://download.go-oo.org/src//0f63ee487fda8f21fafa767b3c447ac9-ixion-0.2.0.tar.gz
+ http://download.go-oo.org/src//e3738abd0d3ce1870dc1fd1f22bba5b1-icu4c-4_2_1-src.tgz
+ http://ftp.fsf.hu/OpenOffice.org_hu/numbertext/numbertext-0.9.3.oxt
+ http://ftp.fsf.hu/OpenOffice.org_hu/hunart/hunart-0.3.oxt
+ http://ftp.fsf.hu/OpenOffice.org_hu/typo/typo-0.3.oxt
+ http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
+ http://download.go-oo.org/src/ConvertTextToNumber-1.3.2.oxt
+ http://ftp.devall.hu/kami/go-oo/WatchWindow_1.2.0.0.oxt
+ http://ftp.devall.hu/kami/go-oo/Diagram_1.1.0.0.oxt
+ http://download.go-oo.org/src/oooblogger-0.1.oxt
+ buildfix_64bit_system_libjpeg.diff)
+#options=('!makeflags')
+noextract=(libreoffice-\
+{artwork,base,bootstrap,calc,components,extensions,extras,filters,help,impress,l10n,libs-core,libs-extern,libs-extern-sys,libs-gui,postprocess,sdk,testing,ure,writer}-${_LOver}.tar.bz2)
+replaces=('openoffice-base')
+md5sums=('2f54261deaf89d8154440ea33bf12cc2'
+ 'cd9f83d8dc2f85f06b2999fd3d23a74d'
+ '46fb3c85cc878daabb58d94fa848a59d'
+ '19698765fe35dcbb1f6d7d55c617c39f'
+ '0274eb33f462e620cb2f37aa696d18b1'
+ 'a5f11a035faa6160121dd2d3f984065f'
+ 'd54e5f7e5cde7f648d74e382eb5e44fc'
+ 'db5d3a8886ec451c11e1ef3cea132ce0'
+ '4ae9b40116ef3f840b232cb3454be4e3'
+ '2dc8e4b347866f9469eb6c42a9cb0b81'
+ 'e9211340b2a7f48c17883db76d1e8e03'
+ '688768909f823b5006162d27638aa15e'
+ '26ca2152535ba45bf71d8aa3b26fc967'
+ '9df0af97ec8d085864c5341678bb1d0d'
+ '09b22bf1a812affbfe561230940d7da2'
+ 'e3dc1c328dfdf4a288946957c69ad32b'
+ '5c0a8203253d053f23613e68cdb69565'
+ '2e68a800e323fd3286a0a3305e3d3e39'
+ 'e91523550f9cae015923685ad3fce5ad'
+ 'a17434cc2469a263ffabd345e90d8911'
+ '6faf9924a74b836527906f49fcea40c2'
+ 'a77cc2fdff90146485e0b1f1398bb0d4'
+ '63ddc5116488985e820075e65fbe6aa4'
+ '09357cc74975b01714e00c5899ea1881'
+ '0b49ede71c21c0599b0cc19b353a6cb3'
+ '68dd2e8253d9a7930e9fd50e2d7220d0'
+ '128cfc86ed5953e57fe0f5ae98b62c2e'
+ '17410483b5b5f267aa18b7e00b65e6e0'
+ '1756c4fa6c616ae15973c104cd8cb256'
+ '18f577b374d60b3c760a3a3350407632'
+ '1f24ab1d39f4a51faf22244c94a6203f'
+ '24be19595acad0a2cae931af77a0148a'
+ '26b3e95ddf3d9c077c480ea45874b3b8'
+ '284e768eeda0e2898b0d5bf7e26a016e'
+ '2a177023f9ea8ec8bd00837605c5df1b'
+ '2ae988b339daec234019a7066f96733e'
+ '2c9b0f83ed5890af02c0df1c1776f39b'
+ '2f6ecca935948f7db92d925d88d0d078'
+ 'ca4870d899fd7e943ffc310a5421ad4d'
+ '35c94d2df8893241173de1d16b6034c0'
+ '35efabc239af896dfb79be7ebdd6e6b9'
+ '377a60170e5185eb63d3ed2fae98e621'
+ '39bb3fcea1514f1369fcfc87542390fd'
+ '3ade8cfe7e59ca8e65052644fed9fca4'
+ '3c219630e4302863a9a83d0efde889db'
+ '48470d662650c3c074e1c3fabbc67bbd'
+ '48d8169acc35f97e05d8dcdfd45be7f2'
+ '4a660ce8466c9df01f19036435425c3a'
+ '4ea70ea87b47e92d318d4e7f5b940f47'
+ '599dc4cc65a07ee868cf92a667a913d2'
+ '5aba06ede2daa9f2c11892fbd7bc3057'
+ '71474203939fafbe271e1263e61d083e'
+ '67b42915c8432abf0a922438f00860a2'
+ '7740a8ec23878a2f50120e1faa2730f2'
+ '7376930b0d3f3d77a685d94c4a3acda8'
+ '79600e696a98ff95c2eba976f7a8dfbb'
+ '798b2ffdc8bcfe7bca2cf92b62caf685'
+ 'ecb2e37e45c9933e2a963cabe03670ab'
+ '8294d6c42e3553229af9934c5c0ed997'
+ '8ea307d71d11140574bfb9fcc2487e33'
+ 'bd30e9cf5523cdfc019b94f5e1d7fd19'
+ 'a06a496d7a43cbdc35e69dbe678efadb'
+ 'a169ab152209200a7bad29a275cb0333'
+ 'a4d9b30810a434a3ed39fc0003bbd637'
+ 'a7983f859eafb2677d7ff386a023bc40'
+ 'ada24d37d8d638b3d8a9985e80bc2978'
+ 'af3c3acf618de6108d65fcdc92b492e1'
+ 'ba1015b59c112d44d7797b62fe7bee51'
+ 'bc702168a2af16869201dbe91e46ae48'
+ 'c441926f3a552ed3e5b274b62e86af16'
+ 'ca66e26082cab8bb817185a116db809b'
+ 'd0b5af6e408b8d2958f3d83b5244f5e8'
+ 'd1a3205871c3c52e8a50c9f18510ae12'
+ 'd35724900f6a4105550293686688bbb3'
+ 'd4c4d91ab3a8e52a2e69d48d34ef4df4'
+ 'd70951c80dabecc2892c919ff5d07172'
+ 'dbb3757275dc5cc80820c0b4dd24ed95'
+ 'dbd5f3b47ed13132f04c685d608a7547'
+ 'e0707ff896045731ff99e99799606441'
+ 'e81c2f0953aa60f8062c05a4673f2be0'
+ 'e61d0364a30146aaa3001296f853b2b9'
+ 'ea570af93c284aa9e5621cd563f54f4d'
+ 'ea91f2fb4212a21d708aced277e6e85a'
+ 'ee8b492592568805593f81f8cdf2a04c'
+ 'f3e2febd267c8e4b13df00dac211dd6d'
+ 'f7925ba8491fe570e5164d2c72791358'
+ 'fb7ba5c2182be4e73748859967455455'
+ 'fca8706f2c4619e2fa3f8f42f8fc1e9d'
+ 'fcc6df1160753d0b8c835d17fdeeb0a7'
+ 'fdb27bfe2dbe2e7b57ae194d9bf36bab'
+ '37282537d0ed1a087b1c8f050dc812d9'
+ '831126a1ee5af269923cfab6050769fe'
+ '067201ea8b126597670b5eff72e1f66c'
+ 'cf8a6967f7de535ae257fa411c98eb88'
+ '881af2b7dca9b8259abbca00bbbc004d'
+ '47e1edaa44269bc537ae8cabebb0f638'
+ 'debc62758716a169df9f62e6ab2bc634'
+ '5ba6a61a2f66dfd5fee8cdd4cd262a37'
+ '5ff846847dab351604ad859e2fd4ed3c'
+ '9e436bff44c60dc8b97cba0c7fc11a5c'
+ '185d60944ea767075d27247c3162b3bc'
+ 'fc46e64367c3b09a1668fb9ab40c031b'
+ '246e8f38b2a1af1bcff60ee0da59300b'
+ '1aa219782c41ff6cabef9ecaf147556f'
+ '1948e39a68f12bfa0b7eb309c14d940c'
+ '0f63ee487fda8f21fafa767b3c447ac9'
+ 'e3738abd0d3ce1870dc1fd1f22bba5b1'
+ 'a90f17aaccfb38be917732503740e6a2'
+ 'b632bdd25649cc4067bcb410bae23d2b'
+ '2b3fcb8d061dbfc26bf7efbcfa6d7ae2'
+ '90401bca927835b6fbae4a707ed187c8'
+ '451ccf439a36a568653b024534669971'
+ '23bd75552206dfcd8fd4e29137dcac84'
+ '41c9b65ad60af4b3255bbecdfef11736'
+ 'c1ce4ff1636394b3b4a2af23572159c9'
+ '7ef850978f435c32abc81862404936fc')
+
+build() {
+
+ unset J2REDIR; unset J2SDKDIR; unset JAVA_HOME; unset CLASSPATH
+ [ -z "${JAVA_HOME}" ] && . /etc/profile.d/openjdk6.sh
+ [ -z "${MOZ_PLUGIN_PATH}" ] && . /etc/profile.d/mozilla-common.sh
+ [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh
+
+ cd ${srcdir}/${pkgbase}-build-${_LOver}
+
+ # our ArchLinux distribution patch until we go upstream
+ patch -Np0 -i ${srcdir}/ArchLinux.patch || return 1
+
+ # hotfixes not yet upstream
+ # cp ${srcdir}/*.diff ${srcdir}/${pkgbase}-build-${_LOver}/patches/hotfixes/
+ cp ${srcdir}/buildfix_64bit_system_libjpeg.diff ${srcdir}/${pkgbase}-build-${_LOver}/patches/hotfixes/
+
+ # export C(XX)FLAGS
+ # http://www.openoffice.org/issues/show_bug.cgi?id=103205
+ unset CFLAGS
+ unset CXXFLAGS
+
+ # python2 fix
+ export PYTHON=python2
+ # mono2.8 hack
+# sed -i -e "s/mkbundle2/mkbundle/g" patches/mono/*.diff || return 1
+
+ # fix dekstop menu entries
+ sed -i -e "s/Exec=oo/Exec=lo/g" desktop/*.desktop.in.in
+ sed -i -e "s/TryExec=oo/TryExec=lo/g" desktop/*.desktop.in.in
+
+ # http://wiki.documentfoundation.org/Development/How_to_build/Configure_options
+
+ if [ "$CARCH" = "x86_64" ]; then
+ EXTRAOPTS="--without-stlport"
+ else
+ EXTRAOPTS="--with-stlport" # --without-system-boost"
+ # # avoid problems with ixion for now
+ sed -i '/fields-table-formula.diff/d' patches/dev300/apply || return 1
+ fi
+
+ ./configure --with-distro=ArchLinux \
+ --with-build-version="${_LOver} ArchLinux build-${pkgrel}" \
+ --without-git \
+ --with-srcdir=${srcdir} \
+ --with-max-jobs=${MAKEFLAGS/-j/} \
+ --with-installed-ooo-dirname="${pkgbase}" \
+ --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
+ --with-docdir=/usr/share/doc/packages/"${pkgbase}" \
+ --mandir=/usr/share/man \
+ --with-lang="" \
+ --with-binsuffix=no \
+ --enable-cairo\
+ --enable-crashdump\
+ --enable-evolution2\
+ --enable-graphite\
+ --disable-gio\
+ --disable-kde\
+ --disable-mono\
+ --enable-kde4\
+ --enable-ldap \
+ --enable-lockdown\
+ --enable-opengl \
+ --enable-odk\
+ --enable-opengl\
+ --enable-ogltrans \
+ --enable-minimizer \
+ --enable-pdfimport \
+ --enable-presenter-console \
+ --enable-presenter-extra-ui\
+ --enable-report-builder\
+ --enable-wiki-publisher \
+ --with-ct2n \
+ --with-hunart \
+ --with-nlpsolver \
+ --with-numbertext \
+ --with-oooblogger \
+ --with-typo \
+ --with-watch-window \
+ --with-diagram \
+ --without-fonts\
+ --without-afms\
+ --without-ppds\
+ --without-system-agg\
+ --without-system-libwps\
+ --without-system-mdds\
+ --without-myspell-dicts \
+ --with-system-dicts \
+ --with-external-dict-dir=/usr/share/hunspell \
+ --with-external-hyph-dir=/usr/share/hyphen \
+ --with-external-thes-dir=/usr/share/mythes \
+ --with-system-cppunit\
+ --with-system-libwpg\
+ --with-system-redland\
+ --without-system-saxon\
+ --with-openldap\
+ --with-ant-home="/usr/share/java/apache-ant"\
+ --with-system-boost\
+ --with-system-cairo\
+ --with-system-libs\
+ --with-system-mythes\
+ --with-system-unixodbc-headers\
+ --with-system-xrender-headers\
+ --with-system-headers\
+ --with-alloc=system\
+ --with-system-lucene\
+ --with-lucene-core-jar=/usr/share/java/lucene-core.jar\
+ --with-lucene-analyzers-jar=/usr/share/java/lucene-analyzers.jar\
+ $EXTRAOPTS || return 1
+
+# seems no more needed
+# --with-unix-wrapper="libreoffice" \
+
+# not yet supported
+# --enable-ext-presenter-minimizer \
+# --enable-ext-pdfimport \
+# --enable-ext-presenter-console \
+# --enable-ext-presenter-extra-ui\
+# --enable-ext-report-builder\
+# --enable-ext-wiki-publisher \
+# --enable-ext-ct2n \
+# --enable-ext-hunart \
+# --enable-ext-nlpsolver \
+# --enable-ext-numbertext \
+# --enable-ext-oooblogger \
+# --enable-ext-typo \
+# --enable-ext-watch-window \
+# --enable-ext-diagram \
+
+# see http://qa.openoffice.org/issues/show_bug.cgi?id=110136
+# --with-system-saxon\
+# --with-saxon-jar=/usr/share/java/saxon/saxon9he.jar\
+
+# --enable-report-builder \
+# --with-additional-sections="OOXMLExport"
+
+# --with-languagetool \
+# --with-lightproof \
+# --with-validator \
+# --with-barcode \
+
+ unset MAKEFLAGS
+ ./download
+ LD_PRELOAD="" make
+}
+
+package_libreoffice() {
+
+ pkgdesc="a productivity suite that is compatible with other major office suites"
+ install=${pkgbase}.install
+ depends=("curl>=7.20.0" "hunspell>=1.2.8" "python2>=2.7" 'libwpd>=0.9.0' 'libxaw' "neon>=0.28.6"
+ 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib' "icu>=4.6" 'libxslt'
+ 'redland' 'libgraphite' 'hyphen' 'lpsolve' 'gcc-libs' 'sh'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'shared-mime-info' 'java-runtime' 'gtk2') # keep gtk2 for install script
+ #'saxon'
+ optdepends=( #'java-runtime: adds java support'
+ 'libcups: adds printing support'
+ 'gconf: adds additional gnome support'
+ 'nss: adds support for signed files/macros'
+ 'pstoedit: translates PostScript and PDF graphics into other vector formats'
+ 'poppler: for shipped pdfimport extension'
+ 'kdelibs: for kde integration'
+ 'libmythes: for use in thesaurus'
+ 'hsqldb-java: default database format for OpenOffice.org'
+ 'beanshell: interactive java -- good for prototyping /macros'
+ 'vigra: C++ computer vision library, usable in Basebmp'
+ 'libmspack: library for Microsoft compression formats for use in FontOOo'
+ 'libwpg: library for importing and converting Corel WordPerfect(tm) Graphics images'
+ 'libldap: to get profiles via ldap'
+ 'lucene: full-text search engine library for Java needed in the help section'
+ 'sane: for scanner access'
+ 'unixodbc: adds ODBC database support'
+ 'mesa: for the OGLTrans extension'
+ 'gstreamer0.10-base: + some gstr-plugins to support multimedia content, e.g. in impress')
+# 'mono: allows UNO automation with Mono'
+ backup=(etc/libreoffice/sofficerc
+ etc/libreoffice/bootstraprc
+ etc/libreoffice/psprint.conf)
+ provides=('go-openoffice') #'openoffice-base'
+ conflicts=('go-openoffice') #'openoffice-base'
+ replaces=('go-openoffice')
+
+ cd ${srcdir}/${pkgbase}-build-${_LOver}
+ #bin/ooinstall <path-to-install>
+ LD_PRELOAD="" make DESTDIR=${pkgdir} install
+
+ # move sysui desktop files into place we want to use - javafilter and qstarter, but not unneeded printeradmin
+ cp ${pkgdir}/usr/lib/libreoffice/share/xdg/javafilter.desktop ${pkgdir}/usr/share/applications/
+ sed -i -e "s/Exec=oo/Exec=so/g" ${pkgdir}/usr/share/applications/javafilter.desktop # https://bugs.archlinux.org/task/23361
+ cp ${pkgdir}/usr/lib/libreoffice/share/xdg/qstart.desktop ${pkgdir}/usr/share/applications/
+ # remove version in menu entry and make it visible
+ sed -i -e "s/3.3 Quickstarter/Quickstarter/g" ${pkgdir}/usr/share/applications/qstart.desktop
+ sed -i -e "/NoDisplay=true/d" ${pkgdir}/usr/share/applications/qstart.desktop
+ # remove unneeded .desktop files from vanilla sysui
+ rm -rf ${pkgdir}/usr/lib/libreoffice/share/xdg
+
+ # put configuration files into place
+ install -dm755 ${pkgdir}/etc/libreoffice
+ install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} ${pkgdir}/etc/libreoffice/
+ install -m644 ${pkgdir}/usr/lib/libreoffice/basis3.3/share/psprint/psprint.conf ${pkgdir}/etc/libreoffice/
+ # install dummy links to make them found by LibO
+ cd ${pkgdir}/usr/lib/libreoffice/program/
+ ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} .
+ cd ${pkgdir}/usr/lib/libreoffice/basis3.3/share/psprint/
+ ln -vsf /etc/libreoffice/psprint.conf .
+
+ #fix http://bugs.archlinux.org/task/17656
+ find ${pkgdir} -perm 444 -exec ls -lh {} \;
+ find ${pkgdir} -perm 444 -exec chmod 644 {} \;
+ find ${pkgdir} -perm 555 -exec ls -lh {} \;
+ find ${pkgdir} -perm 555 -exec chmod 755 {} \;
+
+ # split out extensions
+ mv ${pkgdir}/usr/lib/libreoffice/share/extensions ${srcdir}/extensions-install
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+ install -m644 ${srcdir}/extensions-install/package.txt ${pkgdir}/usr/lib/libreoffice/share/extensions/
+
+ # move SDK to separated package
+ mkdir -p ${srcdir}/sdk-install/usr/lib/libreoffice/basis3.3/sdk
+ mv ${pkgdir}/usr/lib/libreoffice/basis3.3/sdk ${srcdir}/sdk-install/usr/lib/libreoffice/basis3.3/
+
+ mkdir -p ${srcdir}/sdk-install/usr/share/doc/packages/libreoffice/sdk
+ mv ${pkgdir}/usr/share/doc/packages/libreoffice/sdk ${srcdir}/sdk-install/usr/share/doc/packages/libreoffice/
+
+ mkdir -p ${srcdir}/sdk-install/usr/share/libreoffice/sdk
+ mv ${pkgdir}/usr/share/libreoffice/sdk ${srcdir}/sdk-install/usr/share/libreoffice/
+
+ mkdir -p ${srcdir}/sdk-install/usr/share/idl/libreoffice
+ mv ${pkgdir}/usr/share/idl/libreoffice ${srcdir}/sdk-install/usr/share/idl/
+
+ mkdir -p ${srcdir}/sdk-install/usr/include/libreoffice
+ mv ${pkgdir}/usr/include/libreoffice ${srcdir}/sdk-install/usr/include/
+}
+
+package_libreoffice-sdk() {
+
+ pkgdesc="Software development kit for LibreOffice"
+ depends=('libreoffice')
+
+ cd ${srcdir}/sdk-install
+ cp -r * ${pkgdir}
+
+ cd ${pkgdir}/usr/lib/libreoffice/basis3.3/sdk
+ for file in setsdkenv_unix.csh setsdkenv_unix.sh ; do
+ chmod 755 $file
+ done
+ #fix permissions
+ find examples -type f -exec chmod -x {} \;
+}
+
+package_libreoffice-extension-nlpsolver() {
+
+ pkgdesc="This extension integrates into Calc and offers new Solver engines to use for optimizing nonlinear programming models"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/NLPSolver.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/nlpsolver
+}
+
+package_libreoffice-extension-pdfimport() {
+
+ pkgdesc="This extension allows you to import and modify PDF documents"
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/pdfimport/pdfimport.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/pdfimport/pdfimport.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/pdfimport
+}
+
+package_libreoffice-extension-presentation-minimizer() {
+
+ pkgdesc="This extension reduce the file size of the current presentation"
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/presentation-minimizer.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presentation-minimizer
+}
+
+package_libreoffice-extension-presenter-screen() {
+
+ pkgdesc="This extension provides more control over your slide show presentation, such as the ability to see the upcoming slide, the slide notes, and a presentation timer whereas the audience see only the current slide"
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/presenter/presenter-screen.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/presenter/presenter-screen.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/presenter-screen
+}
+
+package_libreoffice-extension-report-builder() {
+
+ pkgdesc="This extension creates smart-looking database reports"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/report-builder.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/report-builder
+}
+
+package_libreoffice-extension-wiki-publisher() {
+
+ pkgdesc="This extension enables you to create Wiki articles on MediaWiki servers without having to know the syntax of the MediaWiki markup language"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/wiki-publisher.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/wiki-publisher
+}
+
+package_libreoffice-extension-ct2n() {
+
+ pkgdesc="This extension enables you to convert text-cells in Calc with numbers and dates, to real numbers and dates."
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/ConvertTextToNumber-1.3.2.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/ConvertTextToNumber.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/ct2n
+}
+
+package_libreoffice-extension-hunart() {
+
+ pkgdesc="Hungarian cross-reference toolbar extension"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/hunart.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/hunart.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/hunart
+}
+
+package_libreoffice-extension-numbertext() {
+
+ pkgdesc="NUMBERTEXT/MONEYTEXT extensions"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/numbertext.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/numbertext.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/numbertext
+}
+
+package_libreoffice-extension-oooblogger() {
+
+ pkgdesc="An extensions for blogging"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/oooblogger-0.1.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/oooblogger.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/oooblogger
+}
+
+package_libreoffice-extension-typo() {
+
+ pkgdesc="Typography toolbar extension"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/typo.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/typo.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/typo
+}
+
+package_libreoffice-extension-watch-window() {
+
+ pkgdesc="A OOo Calc extension to add a Watch Window, which keeps the value of the monitored cell on the screen."
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/WatchWindow.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/WatchWindow.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/watch-window
+}
+
+package_libreoffice-extension-diagram() {
+
+ pkgdesc="An OOo Draw and Impress extension that creates your favorite diagrams with a few clicks"
+ #arch=('any')
+ depends=('libreoffice')
+ groups=('libreoffice-extensions')
+
+ install -dm755 ${pkgdir}/usr/lib/libreoffice/share/extensions
+# unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Diagram.oxt -d ${pkgdir}/usr/lib/ooo-3.3/share/extensions/${pkgname}
+ unzip ${srcdir}/${pkgbase}-build-${_LOver}/build/libreoffice-${_LOver}/solver/${_OFFICEUPD}/unxlng*/bin/Diagram.oxt -d ${pkgdir}/usr/lib/libreoffice/share/extensions/diagram
+}
diff --git a/extra/libreoffice/buildfix_64bit_system_libjpeg.diff b/extra/libreoffice/buildfix_64bit_system_libjpeg.diff
new file mode 100644
index 000000000..1f4eb110f
--- /dev/null
+++ b/extra/libreoffice/buildfix_64bit_system_libjpeg.diff
@@ -0,0 +1,11 @@
+--- solenv/inc/libs.mk 2009-07-02 09:44:33.084467312 +0000
++++ solenv/inc/libs.mk.new 2009-07-02 10:44:03.420819776 +0000
+@@ -211,7 +211,7 @@
+ .IF "$(OS)" == "FREEBSD"
+ JPEG3RDLIB=/usr/local/lib/libjpeg.so
+ .ELIF "$(CPUNAME)" == "X86_64" || "$(CPUNAME)" == "S390X" || "$(CPUNAME)" == "POWERPC64"
+-JPEG3RDLIB=/usr/lib64/libjpeg.so
++JPEG3RDLIB=/usr/lib/libjpeg.so
+ .ELSE
+ JPEG3RDLIB=/usr/lib/libjpeg.so
+ .ENDIF
diff --git a/extra/libreoffice/libreoffice.install b/extra/libreoffice/libreoffice.install
new file mode 100644
index 000000000..27f3173ae
--- /dev/null
+++ b/extra/libreoffice/libreoffice.install
@@ -0,0 +1,25 @@
+post_install() {
+
+gtk-update-icon-cache -f -q /usr/share/icons/hicolor
+update-desktop-database -q
+update-mime-database usr/share/mime > /dev/null 2>&1
+
+echo " * see http://wiki.archlinux.org/index.php/Openoffice"
+echo " * you may want to pacman -Ss libreoffice-extensions"
+echo " to see what extensions are prepared to install"
+echo " * it's recommended to install {hunspell,mythes,hyphen}-xx pkg for spell checking"
+echo " * make sure you have installed some ttf font (ttf-dejavu recommended)"
+}
+
+post_upgrade() {
+# post_install $1
+gtk-update-icon-cache -f -q /usr/share/icons/hicolor
+update-desktop-database -q
+update-mime-database usr/share/mime > /dev/null 2>&1
+}
+
+post_remove() {
+update-desktop-database -q
+gtk-update-icon-cache -f -q /usr/share/icons/hicolor
+update-mime-database usr/share/mime > /dev/null 2>&1
+}
diff --git a/extra/librsvg/PKGBUILD b/extra/librsvg/PKGBUILD
new file mode 100644
index 000000000..4b402cd26
--- /dev/null
+++ b/extra/librsvg/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 111164 2011-02-24 15:09:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=librsvg
+pkgver=2.32.1
+pkgrel=2
+pkgdesc="SAX-based renderer for SVG files into a GdkPixbuf"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gdk-pixbuf2' 'pango' 'libcroco')
+makedepends=('intltool')
+optdepends=('python2: rsvg commandline utility')
+options=('!libtool' '!emptydirs')
+url="http://librsvg.sourceforge.net/"
+install=librsvg.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('91b98051f352fab8a6257688d6b2fd665b4648ed66144861f2f853ccf876d334')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' rsvg.in
+ ./configure --prefix=/usr --libexecdir=/usr/lib/${pkgname} \
+ --with-croco --disable-static \
+ --with-svgz --disable-gtk-theme
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/librsvg/librsvg.install b/extra/librsvg/librsvg.install
new file mode 100644
index 000000000..4d48b071f
--- /dev/null
+++ b/extra/librsvg/librsvg.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/libsamplerate/PKGBUILD b/extra/libsamplerate/PKGBUILD
new file mode 100644
index 000000000..d51e50d38
--- /dev/null
+++ b/extra/libsamplerate/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 100370 2010-11-23 01:14:32Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=libsamplerate
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="Secret Rabbit Code - aka Sample Rate Converter for audio"
+arch=('i686' 'x86_64')
+url="http://www.mega-nerd.com/SRC/index.html"
+license=('GPL')
+depends=('libsndfile')
+options=('!libtool')
+source=(http://www.mega-nerd.com/SRC/libsamplerate-${pkgver}.tar.gz)
+md5sums=('6731a81cb0c622c483b28c0d7f90867d')
+sha1sums=('f3f803ec5feae5a3fdb0fa3937277669e854386e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libsexy/PKGBUILD b/extra/libsexy/PKGBUILD
new file mode 100644
index 000000000..d40911e2c
--- /dev/null
+++ b/extra/libsexy/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 57006 2009-10-31 07:29:59Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libsexy
+pkgver=0.1.11
+pkgrel=2
+pkgdesc="Doing naughty things to good widgets."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://chipx86.com/wiki/Libsexy"
+depends=('gtk2' 'libxml2')
+makedepends=('iso-codes' 'pkgconfig')
+options=('!libtool')
+source=(http://releases.chipx86.com/libsexy/libsexy/${pkgname}-${pkgver}.tar.gz)
+md5sums=('33c079a253270ec8bfb9508e4bb30754')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ rm -f ${pkgdir}/usr/lib/libsexy.a
+}
diff --git a/extra/libshout/PKGBUILD b/extra/libshout/PKGBUILD
new file mode 100644
index 000000000..c74560069
--- /dev/null
+++ b/extra/libshout/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 37197 2009-05-01 03:19:30Z eric $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+pkgname=libshout
+pkgver=2.2.2
+pkgrel=3
+pkgdesc="Library for accessing a shoutcast/icecast server"
+arch=('i686' 'x86_64')
+depends=('libvorbis' 'libtheora' 'speex')
+url="http://www.icecast.org/"
+options=('!libtool' 'force')
+license=('LGPL')
+source=(http://downloads.xiph.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4f75fc9901c724b712c371c9a1e782d3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
+ make LDFLAGS+=-lspeex || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libsidplay/PKGBUILD b/extra/libsidplay/PKGBUILD
new file mode 100644
index 000000000..4d1dfa791
--- /dev/null
+++ b/extra/libsidplay/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 78082 2010-04-19 09:22:09Z dgriffiths $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+
+pkgname=libsidplay
+pkgver=1.36.59
+pkgrel=4
+pkgdesc="A library for playing SID music files."
+arch=('i686' 'x86_64')
+url="http://critical.ch/distfiles/"
+license=('GPL')
+depends=('gcc-libs')
+options=('!libtool')
+source=(http://critical.ch/distfiles/${pkgname}-${pkgver}.tgz libsidplay-1.36.59-gcc43.patch)
+md5sums=('37c51ba4bd57164b1b0bb7b43b9adece' 'c24d7bca2639f4fee03c40c7dcaadfee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p1 < ../libsidplay-1.36.59-gcc43.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/libsidplay/libsidplay-1.36.59-gcc43.patch b/extra/libsidplay/libsidplay-1.36.59-gcc43.patch
new file mode 100644
index 000000000..5beef46c6
--- /dev/null
+++ b/extra/libsidplay/libsidplay-1.36.59-gcc43.patch
@@ -0,0 +1,40 @@
+diff --git a/src/sidtune.cpp b/src/sidtune.cpp
+index 4d1d33b..6fbae80 100644
+--- a/src/sidtune.cpp
++++ b/src/sidtune.cpp
+@@ -306,11 +306,7 @@ udword sidTune::loadFile(const char* fileName, ubyte** bufferRef)
+ return 0;
+ }
+ // Open binary input file stream at end of file.
+-#if defined(SID_HAVE_IOS_BIN)
+- ifstream myIn( fileName, ios::in|ios::bin|ios::ate );
+-#else
+ ifstream myIn( fileName, ios::in|ios::binary|ios::ate );
+-#endif
+ // As a replacement for !is_open(), bad() and the NOT-operator
+ // don't seem to work on all systems.
+ #if defined(SID_DONT_HAVE_IS_OPEN)
+@@ -972,11 +968,7 @@ bool sidTune::saveC64dataFile( const char* fileName, bool overWriteFlag )
+ }
+ // Open binary output file stream.
+ else
+-#if defined(SID_HAVE_IOS_BIN)
+- fMyOut.open( fileName, ios::out|ios::bin|ios::trunc );
+-#else
+ fMyOut.open( fileName, ios::out|ios::binary|ios::trunc );
+-#endif
+ if ( !fMyOut )
+ {
+ info.statusString = text_cantCreateFile;
+@@ -1061,11 +1053,7 @@ bool sidTune::savePSIDfile( const char* fileName, bool overWriteFlag )
+ }
+ // Open binary output file stream.
+ else
+-#if defined(SID_HAVE_IOS_BIN)
+- fMyOut.open( fileName, ios::out|ios::bin|ios::trunc );
+-#else
+ fMyOut.open( fileName, ios::out|ios::binary|ios::trunc );
+-#endif
+ if ( !fMyOut )
+ {
+ info.statusString = text_cantCreateFile;
diff --git a/extra/libsigc++/PKGBUILD b/extra/libsigc++/PKGBUILD
new file mode 100644
index 000000000..4700619bd
--- /dev/null
+++ b/extra/libsigc++/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 113455 2011-03-08 17:41:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase=libsigc++
+pkgname=('libsigc++' 'libsigc++-docs')
+pkgver=2.2.9
+pkgrel=1
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://libsigc.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.2/${pkgbase}-${pkgver}.tar.bz2)
+options=(!libtool !emptydirs)
+sha256sums=('2f4c083e01d9be377669206bd97090d2e95bc05f2e8d95447c9f9ce92bdfbb63')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+}
+
+package_libsigc++() {
+ pkgdesc="Libsigc++ implements a full callback system for use in widget libraries - V2"
+ depends=('gcc-libs')
+ provides=("libsigc++2.0=${pkgver}")
+ replaces=('libsigc++2.0')
+ conflicts=('libsigc++2.0')
+ cd "${srcdir}/libsigc++-${pkgver}"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
+
+package_libsigc++-docs() {
+ pkgdesc="Developer documentation for libsigc++"
+ provides=("libsigc++2.0-docs=${pkgver}")
+ replaces=('libsigc++2.0-docs')
+ conflicts=('libsigc++2.0-docs')
+ cd "${srcdir}/libsigc++-${pkgver}/docs"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libsigsegv/PKGBUILD b/extra/libsigsegv/PKGBUILD
new file mode 100644
index 000000000..753cfd194
--- /dev/null
+++ b/extra/libsigsegv/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 31137 2009-03-24 15:49:35Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Johannes Weiner <hannes@saeurebad.de>
+
+pkgname=libsigsegv
+pkgver=2.6
+pkgrel=1
+arch=('x86_64' 'i686')
+pkgdesc="Page fault detection library"
+url="http://libsigsegv.sourceforge.net/"
+license=('GPL2')
+depends=('glibc')
+options=('!libtool')
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7e24993730649d13c6eabc28bd24de35')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-shared
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libsm/PKGBUILD b/extra/libsm/PKGBUILD
new file mode 100644
index 000000000..0abf5d86c
--- /dev/null
+++ b/extra/libsm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97792 2010-11-01 22:14:37Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libsm
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 Session Management library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libice' 'util-linux-ng')
+makedepends=('xorg-util-macros' 'xtrans')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libSM-${pkgver}.tar.bz2)
+sha1sums=('f78bc72f0b3ec26cbf980f84f014422ba854544d')
+
+build() {
+ cd "${srcdir}/libSM-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libsmbios/PKGBUILD b/extra/libsmbios/PKGBUILD
new file mode 100644
index 000000000..9945172d7
--- /dev/null
+++ b/extra/libsmbios/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 105518 2011-01-10 10:17:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: daniel g. siegel <dgsiegel@gmail.com>
+
+pkgname=libsmbios
+pkgver=2.2.26
+pkgrel=2
+pkgdesc="A library for providing access to as much BIOS information as possible"
+arch=(i686 x86_64)
+url="http://linux.dell.com/libsmbios/main/index.html"
+license=('GPL' 'custom')
+depends=('gcc-libs')
+makedepends=('libxml2' 'python2' 'chrpath')
+optdepends=('python2: tools')
+source=(http://linux.dell.com/libsmbios/download/${pkgname}/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+md5sums=('8ae63da74912deffa5b6b2602879c7a9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ mkdir build
+ cd build
+ PYTHON=python2 ../configure --prefix=/usr --sysconfdir=/etc --disable-static
+ mkdir -p out/libsmbios_c
+ mkdir -p out/libsmbios_c++
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+ make DESTDIR="${pkgdir}" install
+
+ chrpath -d "${pkgdir}/usr/sbin/smbios-sys-info-lite"
+
+ cp -a ../src/include/* "${pkgdir}/usr/include/"
+ cp -a out/public-include/* "${pkgdir}/usr/include/"
+
+ rm -rf "${pkgdir}/etc/yum"
+ rm -rf "${pkgdir}/usr/lib/yum-plugins"
+
+ sed -e 's|#!/usr/bin/python|#!/usr/bin/python2|g' \
+ -i "${pkgdir}"/usr/sbin/smbios-{{wakeup,token,wireless}-ctl,lcd-brightness,rbu-bios-update,passwd,sys-info}
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 ../COPYING-OSL "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libsndfile/PKGBUILD b/extra/libsndfile/PKGBUILD
new file mode 100644
index 000000000..7fb0293e6
--- /dev/null
+++ b/extra/libsndfile/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 116432 2011-03-23 19:57:46Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=libsndfile
+pkgver=1.0.24
+pkgrel=1
+pkgdesc="A C library for reading and writing files containing sampled sound"
+arch=('i686' 'x86_64')
+url="http://www.mega-nerd.com/libsndfile"
+license=('LGPL')
+depends=('alsa-lib' 'flac' 'libvorbis')
+options=('!libtool')
+source=(http://www.mega-nerd.com/libsndfile/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8f823c30c1d8d44830db6ab845d6679e')
+sha1sums=('ade2dad272b52f61bb58aca3a4004b28549ee0f8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-sqlite
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libsoup/PKGBUILD b/extra/libsoup/PKGBUILD
new file mode 100644
index 000000000..0681b2117
--- /dev/null
+++ b/extra/libsoup/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 101648 2010-11-29 23:33:18Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libsoup
+pkgname=('libsoup' 'libsoup-gnome')
+pkgver=2.32.2
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('glib2>=2.26.1' 'gnutls>=2.8.6' 'libxml2>=2.7.8' 'libproxy>=0.4.6' 'sqlite3>=3.7.2' 'gconf>=2.32.0' 'libgnome-keyring>=2.32.0' 'intltool' 'gobject-introspection>=0.9.12')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2)
+options=('!libtool' '!emptydirs')
+sha256sums=('96e6973c8b7459523c0f44e7aec69528ff2fbd388e8ddc415f91bcc42f50777f')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package_libsoup() {
+ pkgdesc="GNOME HTTP Library - base library"
+ depends=('glib2>=2.26.1' 'libxml2>=2.7.8' 'gnutls>=2.8.6')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}"/usr/lib/libsoup-gnome-2.4.*
+ rm -f "${pkgdir}/usr/lib/pkgconfig/libsoup-gnome-2.4.pc"
+ rm -rf "${pkgdir}/usr/include/libsoup-gnome-2.4"
+ rm -f "${pkgdir}/usr/lib/girepository-1.0/SoupGNOME-2.4.typelib"
+}
+
+package_libsoup-gnome() {
+ pkgdesc="GNOME HTTP Library - GNOME libraries"
+ depends=("libsoup=${pkgver}" 'libproxy>=0.4.6' 'libgnome-keyring>=2.32.0' 'gconf>=2.32.0')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}"/usr/lib/libsoup-2.4.*
+ rm -f "${pkgdir}/usr/lib/pkgconfig/libsoup-2.4.pc"
+ rm -rf "${pkgdir}/usr/include/libsoup-2.4"
+ rm -rf "${pkgdir}/usr/share"
+ rm -f "${pkgdir}/usr/lib/girepository-1.0/Soup-2.4.typelib"
+}
diff --git a/extra/libspectre/PKGBUILD b/extra/libspectre/PKGBUILD
new file mode 100644
index 000000000..bbef6cfbc
--- /dev/null
+++ b/extra/libspectre/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 94716 2010-10-10 10:09:55Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libspectre
+pkgver=0.2.6
+pkgrel=2
+pkgdesc="Small library for rendering Postscript documents"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://libspectre.freedesktop.org/wiki/"
+depends=('ghostscript>=9.00')
+options=('!libtool')
+source=(http://libspectre.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('819475c7e34a1e9bc2e876110fee530b42aecabd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libssh/PKGBUILD b/extra/libssh/PKGBUILD
new file mode 100644
index 000000000..e6acc5d23
--- /dev/null
+++ b/extra/libssh/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 107427 2011-01-24 20:24:15Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: ice-man <icemanf@gmail.com>
+# Contributor: sergeantspoon <sergeantspoon@archlinux.us>
+
+pkgname=libssh
+pkgver=0.4.8
+pkgrel=1
+pkgdesc="Library for accessing ssh client services through C libraries"
+url="http://www.libssh.org/"
+license=('LGPL')
+arch=('i686' 'x86_64')
+depends=('openssl')
+makedepends=('cmake' 'doxygen')
+source=("http://www.libssh.org/files/0.4/${pkgname}-${pkgver}.tar.gz")
+md5sums=('d97b3feea1abe047ca8cf86d06e4b789')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package(){
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libstdc++5/PKGBUILD b/extra/libstdc++5/PKGBUILD
new file mode 100644
index 000000000..ad9e5c374
--- /dev/null
+++ b/extra/libstdc++5/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 35574 2009-04-14 04:10:12Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libstdc++5
+pkgver=3.3.6
+pkgrel=3
+pkgdesc="GNU Standard C++ library version 3"
+arch=(i686 x86_64)
+url="http://gcc.gnu.org"
+license=('GPL' 'LGPL')
+depends=('gcc-libs')
+makedepends=('binutils' 'gcc')
+options=('!libtool' '!makeflags')
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++}-${pkgver}.tar.bz2 gcc-3.4.3-no_multilib_amd64.patch)
+md5sums=(18c52e6fb8966b7700665dca289d077f 6b3d00b8d079805be1b895f7f6ce47a0 \
+ 088e0807e677010cafe4e590e8711be1)
+
+build(){
+ export CFLAGS=$(echo $CFLAGS | sed 's|-mtune=generic||')
+ export CXXFLAGS=$(echo $CXXFLAGS | sed 's|-mtune=generic||')
+ cd ${srcdir}/gcc-${pkgver}
+
+ if [ "$CARCH" = "x86_64" ]; then
+ patch -Np0 -i ../gcc-3.4.3-no_multilib_amd64.patch || return 1
+ fi
+
+ # No fixincludes
+ sed -i -e 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+ mkdir ../gcc-build
+ cd ../gcc-build
+ ../gcc-${pkgver}/configure --prefix=/usr --enable-shared \
+ --enable-languages=c++ --enable-threads=posix --enable-__cxa_atexit \
+ --disable-multilib --libdir=/usr/lib
+ make all-target-libstdc++-v3 BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || return 1
+ make DESTDIR=${pkgdir} install-target-libstdc++-v3 || return 1
+
+ # Remove includefiles and libs provided by gcc
+ rm -rf ${pkgdir}/usr/{include,share/locale}
+ rm -f ${pkgdir}/usr/lib/*.a
+ rm -f ${pkgdir}/usr/lib/libstdc++.so
+}
diff --git a/extra/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch b/extra/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
new file mode 100644
index 000000000..dce10d4e4
--- /dev/null
+++ b/extra/libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
@@ -0,0 +1,11 @@
+--- gcc/config/i386/t-linux64.orig 2003-06-28 00:19:59.000000000 +0000
++++ gcc/config/i386/t-linux64 2003-06-28 00:20:07.000000000 +0000
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = . ../lib
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/extra/libstroke/ChangeLog b/extra/libstroke/ChangeLog
new file mode 100644
index 000000000..cf5bc097b
--- /dev/null
+++ b/extra/libstroke/ChangeLog
@@ -0,0 +1,8 @@
+2009-03-14 Eric Belanger <eric@archlinux.org>
+
+ * libstroke 0.5.1-3
+ * Fixed build issue
+ * Updated url
+ * Added license
+ * Added libx11 and gtk makedepends
+ * Added ChangeLog
diff --git a/extra/libstroke/PKGBUILD b/extra/libstroke/PKGBUILD
new file mode 100644
index 000000000..2a4a5adc3
--- /dev/null
+++ b/extra/libstroke/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 30070 2009-03-16 01:26:56Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=libstroke
+pkgver=0.5.1
+pkgrel=3
+pkgdesc="LibStroke is a stroke (mouse gesture) translation library"
+arch=('i686' 'x86_64')
+url="http://etla.net/libstroke/"
+license=('GPL2')
+depends=('glibc')
+makedepends=('libx11' 'gtk')
+options=('!libtool')
+source=(http://etla.net/libstroke/$pkgname-$pkgver.tar.gz libgstroke-Makefile.am.patch libstroke-Makefile.am.patch)
+md5sums=('51b9a4e309ac15cfcab96191eed03cb2' '60bbaf355355c3c66c8015b0f7feca85'\
+ '96413a77e1d39d1a3223e8eb6be8ef01')
+sha1sums=('48bd2b98faa8681ccd97eda7a09442845dbf1b7b'
+ 'a0c3bd9e894650475ba3049b0ef3d7f9580c203d'
+ 'ee5a3635c31dba00b070a942c512cc0d53056188')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p1 < ../libgstroke-Makefile.am.patch || return 1
+ patch -p1 < ../libstroke-Makefile.am.patch || return 1
+
+ libtoolize --force --copy || return 1
+ aclocal || return 1
+ autoconf || return 1
+ automake --add-missing --force --copy || return 1
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/libstroke/libgstroke-Makefile.am.patch b/extra/libstroke/libgstroke-Makefile.am.patch
new file mode 100644
index 000000000..b3251f354
--- /dev/null
+++ b/extra/libstroke/libgstroke-Makefile.am.patch
@@ -0,0 +1,11 @@
+--- libstroke-0.5.1/libgstroke/Makefile.am.orig 2008-06-11 13:01:29.000000000 +0400
++++ libstroke-0.5.1/libgstroke/Makefile.am 2008-06-11 13:01:44.000000000 +0400
+@@ -21,7 +21,7 @@
+ INCLUDES = @GTK_CFLAGS@
+ LDADD = @GTK_LIBS@
+
+-EXTRA_DIST =
++#EXTRA_DIST =
+
+ MOSTLYCLEANFILES = core *~
+ CLEANFILES = core *~
diff --git a/extra/libstroke/libstroke-Makefile.am.patch b/extra/libstroke/libstroke-Makefile.am.patch
new file mode 100644
index 000000000..98707faf0
--- /dev/null
+++ b/extra/libstroke/libstroke-Makefile.am.patch
@@ -0,0 +1,15 @@
+--- libstroke-0.5.1/libstroke/Makefile.am.orig 2008-06-11 13:01:54.000000000 +0400
++++ libstroke-0.5.1/libstroke/Makefile.am 2008-06-11 13:02:02.000000000 +0400
+@@ -5,10 +5,10 @@
+ # level Makefile.
+ AUTOMAKE_OPTIONS = foreign
+
+-EXTRA_DIST =
++#EXTRA_DIST =
+
+ #tclpath::
+- #echo ${ENABLE_TCL}
++# echo ${ENABLE_TCL}
+
+ #if ENABLE_TCL
+ #SEL_BIB = libstroke.la libstroke_tcl.la
diff --git a/extra/libtasn1/PKGBUILD b/extra/libtasn1/PKGBUILD
new file mode 100644
index 000000000..2fa240d94
--- /dev/null
+++ b/extra/libtasn1/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 101272 2010-11-28 15:57:11Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=libtasn1
+pkgver=2.8
+pkgrel=1
+pkgdesc="The ASN.1 library used in GNUTLS"
+arch=(i686 x86_64)
+license=('GPL3' 'LGPL')
+url="http://www.gnu.org/software/libtasn1/"
+depends=('glibc' 'texinfo')
+options=('!libtool')
+install=libtasn1.install
+source=(ftp://ftp.gnu.org/gnu/libtasn1/${pkgname}-${pkgver}.tar.gz)
+md5sums=('53fd164f8670e55a9964666990fb358f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-packager=Archlinux \
+ --with-packager-bug-reports="http://bugs.archlinux.org/" \
+ --with-packager-version=${pkgver}-${pkgrel}
+ make
+ make DESTDIR="${pkgdir}" install
+ make check
+}
diff --git a/extra/libtasn1/libtasn1.install b/extra/libtasn1/libtasn1.install
new file mode 100644
index 000000000..2d1ecc09f
--- /dev/null
+++ b/extra/libtasn1/libtasn1.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(libtasn1.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/extra/libthai/PKGBUILD b/extra/libthai/PKGBUILD
new file mode 100644
index 000000000..f96f7f309
--- /dev/null
+++ b/extra/libthai/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 71220 2010-03-05 15:38:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Chaiwat Suttipongsakul <cwt114@gmail.com>
+pkgname=libthai
+pkgver=0.1.14
+pkgrel=1
+pkgdesc="Thai language support routines"
+url="http://linux.thai.net/projects/libthai"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libdatrie>=0.2.3')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+source=(http://linux.thai.net/pub/thailinux/software/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('34f64b37ed8f8f49f4a18ae972e6f41e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libtheora/PKGBUILD b/extra/libtheora/PKGBUILD
new file mode 100644
index 000000000..4b26007aa
--- /dev/null
+++ b/extra/libtheora/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 57637 2009-11-01 07:48:03Z eric $
+# Maintainer: Tom Killian <tom@archlinux.org>
+# Committer: dorphell <dorphell@archlinux.org>
+
+pkgname=libtheora
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="An open video codec developed by the Xiph.org"
+arch=('i686' 'x86_64')
+url="http://www.xiph.org"
+license=('BSD')
+depends=('libogg')
+makedepends=('libvorbis')
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/theora/libtheora-${pkgver}.tar.bz2)
+md5sums=('292ab65cedd5021d6b7ddd117e07cd8e')
+sha1sums=('8dcaa8e61cd86eb1244467c0b64b9ddac04ae262')
+
+build() {
+ cd "${srcdir}/libtheora-${pkgver}"
+ ./configure --prefix=/usr --enable-shared --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/libtiff/ChangeLog b/extra/libtiff/ChangeLog
new file mode 100644
index 000000000..88edcc7fc
--- /dev/null
+++ b/extra/libtiff/ChangeLog
@@ -0,0 +1,35 @@
+2010-06-20 Eric Belanger <eric@archlinux.org>
+
+ * libtiff 3.9.4-1
+ * Upstream update
+
+2009-11-05 Eric Belanger <eric@archlinux.org>
+
+ * libtiff 3.9.2-1
+ * Upstream update
+
+2009-08-28 Eric Belanger <eric@archlinux.org>
+
+ * libtiff 3.9.1-1
+ * Upstream update
+
+2009-08-26 Eric Belanger <eric@archlinux.org>
+
+ * libtiff 3.9.0-1
+ * Upstream update
+ * Updated url
+ * Updated patches
+
+2009-08-14 Eric Belanger <eric@archlinux.org>
+
+ * libtiff 3.8.2-6
+ * Added security fixes (close FS#15931)
+
+2008-09-05 Eric Belanger <eric@archlinux.org>
+
+ * libtiff 3.8.2-4
+ * Applied patch to fix buffer underflow in LZW decoding (tiff-3.8.2-CVE-2008-2327.patch)
+ * Added license
+ * Added freeglut optdepends
+ * FHS man pages
+ * Added ChangeLog
diff --git a/extra/libtiff/PKGBUILD b/extra/libtiff/PKGBUILD
new file mode 100644
index 000000000..ed80a2bae
--- /dev/null
+++ b/extra/libtiff/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 83314 2010-06-20 21:43:27Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=libtiff
+pkgver=3.9.4
+pkgrel=1
+pkgdesc="Library for manipulation of TIFF images"
+arch=('i686' 'x86_64')
+url="http://www.remotesensing.org/libtiff/"
+license=('custom')
+depends=('libjpeg' 'zlib')
+makedepends=('libgl' 'freeglut' 'libxmu' 'libxi')
+optdepends=('freeglut: for using tiffgt')
+options=('!libtool')
+source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz \
+ libtiff-CVE-2009-2285.patch)
+md5sums=('2006c1bdd12644dbf02956955175afd6' 'ff61077408727a82281f77a94f555e2a')
+sha1sums=('a4e32d55afbbcabd0391a9c89995e8e8a19961de' 'eadce8c8bd72ea9c74f35300bf299131813b0c8b')
+
+build() {
+ cd "${srcdir}/tiff-${pkgver}"
+ patch -p1 < ../libtiff-CVE-2009-2285.patch || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/libtiff/libtiff-CVE-2009-2285.patch b/extra/libtiff/libtiff-CVE-2009-2285.patch
new file mode 100644
index 000000000..435a84b53
--- /dev/null
+++ b/extra/libtiff/libtiff-CVE-2009-2285.patch
@@ -0,0 +1,22 @@
+Index: tiff-3.8.2/libtiff/tif_lzw.c
+===================================================================
+--- tiff-3.8.2.orig/libtiff/tif_lzw.c
++++ tiff-3.8.2/libtiff/tif_lzw.c
+@@ -421,7 +421,7 @@ LZWDecode(TIFF* tif, tidata_t op0, tsize
+ NextCode(tif, sp, bp, code, GetNextCode);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
+@@ -624,7 +624,7 @@ LZWDecodeCompat(TIFF* tif, tidata_t op0,
+ NextCode(tif, sp, bp, code, GetNextCodeCompat);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
diff --git a/extra/libtorrent-rasterbar/PKGBUILD b/extra/libtorrent-rasterbar/PKGBUILD
new file mode 100644
index 000000000..2918856be
--- /dev/null
+++ b/extra/libtorrent-rasterbar/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 111968 2011-03-02 18:24:01Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=libtorrent-rasterbar
+pkgver=0.15.5
+pkgrel=2
+pkgdesc="A C++ library that aims to be a good alternative to all the other bittorrent implementations around"
+url="http://www.rasterbar.com/products/libtorrent/"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('boost-libs' 'python2')
+makedepends=('boost')
+source=(http://libtorrent.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('f1504a619e876c2731ee9a6b7d19cb1d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export CFLAGS="${CFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+ ./configure --prefix=/usr --enable-python-binding
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/libunique/PKGBUILD b/extra/libunique/PKGBUILD
new file mode 100644
index 000000000..6b4fff10b
--- /dev/null
+++ b/extra/libunique/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 90706 2010-09-15 13:49:39Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libunique
+pkgver=1.1.6
+pkgrel=3
+pkgdesc="Library for writing single instance applications"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk2>=2.21.8')
+makedepends=('pkgconfig' 'gobject-introspection>=0.9.5')
+options=('!libtool')
+url="http://live.gnome.org/LibUnique"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.1/${pkgname}-${pkgver}.tar.bz2
+ unique-gdbus.patch)
+sha256sums=('e5c8041cef8e33c55732f06a292381cb345db946cf792a4ae18aa5c66cdd4fbb'
+ 'bf99ddbf9104502ea498a6812ec2d700f61f4dbbaa2471cd52174b0b27070769')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/unique-gdbus.patch"
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-dbus
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libunique/unique-gdbus.patch b/extra/libunique/unique-gdbus.patch
new file mode 100644
index 000000000..880c0c0ff
--- /dev/null
+++ b/extra/libunique/unique-gdbus.patch
@@ -0,0 +1,529 @@
+From 01066039529c0181f231325476bb4823c16a2aea Mon Sep 17 00:00:00 2001
+From: Christian Persch <chpe@gnome.org>
+Date: Sat, 15 May 2010 17:47:45 +0000
+Subject: Add GDBus backend
+
+Add backend using GDBus, the new D-BUS binding in GIO 2.25.
+
+Bug #618723.
+---
+diff --git a/configure.ac b/configure.ac
+index bc3163a..b6a4221 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -116,6 +116,19 @@ AS_IF([test "x$have_dbus" = "xyes"],
+
+ AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"])
+
++dnl GDBus backend
++dnl This is the default backend if GIO is recent enough
++m4_define([gdbus_gio_required],[2.25.7])
++PKG_CHECK_MODULES([GDBUS],[gio-2.0 >= gdbus_gio_required],[have_gdbus=yes],[have_gdbus=no])
++
++AS_IF([test "x$have_gdbus" = "xyes"],
++ [
++ AC_DEFINE([HAVE_GDBUS],[1],[Define if GDBus backend is enabled])
++ ]
++ )
++
++AM_CONDITIONAL([HAVE_GDBUS],[test "$have_gdbus" = "yes"])
++
+ dnl Bacon backend
+ dnl This is the fallback backend, so we *need* these headers and functions
+ dnl even if we end up using D-Bus
+@@ -146,7 +159,13 @@ AM_CONDITIONAL([HAVE_BACON], [test "x$have_bacon" = "xyes"])
+
+ dnl Choose the default backend
+ AC_MSG_CHECKING([for default IPC mechanism])
+-AS_IF([test "x$have_dbus" = "xyes"],
++AS_IF([test "x$have_gdbus" = "xyes"],
++ [
++ UNIQUE_DEFAULT_BACKEND=gdbus
++ AC_MSG_RESULT([GDBus])
++ ],
++
++ [test "x$have_dbus" = "xyes"],
+ [
+ UNIQUE_DEFAULT_BACKEND=dbus
+ AC_MSG_RESULT([D-Bus])
+@@ -243,6 +262,7 @@ AC_CONFIG_FILES([
+ unique/uniqueversion.h
+ unique/bacon/Makefile
+ unique/dbus/Makefile
++ unique/gdbus/Makefile
+ tests/Makefile
+ po/Makefile.in
+ ])
+@@ -261,6 +281,7 @@ Configuration:
+ Backends:
+ Unix Domain Socket: $have_bacon
+ D-BUS: $have_dbus
++ GDBus: $have_gdbus
+
+ Default backend: $UNIQUE_DEFAULT_BACKEND
+ "
+diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
+index 3172588..2c1dbf4 100644
+--- a/doc/reference/Makefile.am
++++ b/doc/reference/Makefile.am
+@@ -50,7 +50,8 @@ IGNORE_HFILES = \
+ uniquemarshal.h \
+ stamp-uniquemarshal.h \
+ bacon \
+- dbus
++ dbus \
++ gdbus
+
+ EXTRA_HFILES =
+
+diff --git a/unique/Makefile.am b/unique/Makefile.am
+index 6475a87..8f0b7ba 100644
+--- a/unique/Makefile.am
++++ b/unique/Makefile.am
+@@ -12,7 +12,11 @@ if HAVE_DBUS
+ SUBDIRS += dbus
+ endif
+
+-DIST_SUBDIRS = bacon dbus
++if HAVE_GDBUS
++SUBDIRS += gdbus
++endif
++
++DIST_SUBDIRS = bacon dbus gdbus
+
+ INCLUDES = -I$(top_srcdir)
+
+@@ -72,6 +76,10 @@ if HAVE_DBUS
+ unique_backend_libs += $(top_builddir)/unique/dbus/libunique-dbus.la
+ endif
+
++if HAVE_GDBUS
++unique_backend_libs += $(top_builddir)/unique/gdbus/libunique-gdbus.la
++endif
++
+ uniquedir = $(includedir)/unique-1.0/unique
+ unique_HEADERS = \
+ $(unique_sources_h) \
+diff --git a/unique/gdbus/.gitignore b/unique/gdbus/.gitignore
+new file mode 100644
+index 0000000..c7e22c3
+--- /dev/null
++++ b/unique/gdbus/.gitignore
+@@ -0,0 +1,2 @@
++libunique_gdbus_la-uniquebackend-gdbus.lo
++libunique-gdbus.la
+diff --git a/unique/gdbus/Makefile.am b/unique/gdbus/Makefile.am
+new file mode 100644
+index 0000000..e10637d
+--- /dev/null
++++ b/unique/gdbus/Makefile.am
+@@ -0,0 +1,24 @@
++include $(top_srcdir)/build/autotools/Makefile.am.silent
++
++noinst_LTLIBRARIES = libunique-gdbus.la
++
++libunique_gdbus_la_SOURCES = \
++ uniquebackend-gdbus.h \
++ uniquebackend-gdbus.c
++
++libunique_gdbus_la_PPCFLAGS = \
++ -DG_LOG_DOMAIN=\"Unique-GDBus\" \
++ -DG_DISABLE_SINGLE_INCLUDES \
++ -I$(top_srcdir) \
++ $(AM_CPPFLAGS)
++
++libunique_gdbus_la_CFLAGS = \
++ $(UNIQUE_CFLAGS) \
++ $(UNIQUE_DEBUG_CFLAGS) \
++ $(MAINTAINER_CFLAGS) \
++ $(GDBUS_CFLAGS) \
++ $(AM_CFLAGS)
++
++libunique_gdbus_la_LIBADD = \
++ $(UNIQUE_LIBS) \
++ $(GDBUS_LIBS)
+diff --git a/unique/gdbus/uniquebackend-gdbus.c b/unique/gdbus/uniquebackend-gdbus.c
+new file mode 100644
+index 0000000..14d54a9
+--- /dev/null
++++ b/unique/gdbus/uniquebackend-gdbus.c
+@@ -0,0 +1,303 @@
++/* Unique - Single Instance application library
++ * uniquebackend-gdbus.c: GDBus implementation of UniqueBackend
++ *
++ * Copyright (C) 2007 Emmanuele Bassi <ebassi@o-hand.com>
++ * Copyright © 2010 Christian Persch
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ */
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include <gio/gio.h>
++#include <gdk/gdk.h>
++
++#include "../uniqueinternals.h"
++#include "uniquebackend-gdbus.h"
++
++struct _UniqueBackendGDBus
++{
++ UniqueBackend parent_instance;
++
++ GDBusConnection *connection;
++ guint registration_id;
++ guint owner_id;
++ gboolean owns_name;
++ GMainLoop *loop;
++};
++
++struct _UniqueBackendGDBusClass
++{
++ UniqueBackendClass parent_class;
++ GDBusNodeInfo *introspection_data;
++};
++
++G_DEFINE_TYPE (UniqueBackendGDBus, unique_backend_gdbus, UNIQUE_TYPE_BACKEND);
++
++static const char introspection_xml[] =
++ "<node name='/'>"
++ "<interface name='org.gtk.UniqueApp'>"
++ "<method name='SendMessage'>"
++ "<arg name='command' type='s' direction='in'/>"
++ "<arg name='message' type='(suuus)' direction='in'/>"
++ "<arg name='time' type='u' direction='in'/>"
++ "<arg name='response' type='s' direction='out'/>"
++ "</method>"
++ "</interface>"
++ "</node>";
++
++static void
++method_call_cb (GDBusConnection *connection,
++ const gchar *sender,
++ const gchar *object_path,
++ const gchar *interface_name,
++ const gchar *method_name,
++ GVariant *parameters,
++ GDBusMethodInvocation *invocation,
++ gpointer user_data)
++{
++ if (g_strcmp0 (interface_name, "org.gtk.UniqueApp") != 0 ||
++ g_strcmp0 (object_path, "/Factory") != 0)
++ return;
++
++ if (g_strcmp0 (method_name, "SendMessage") == 0)
++ {
++ UniqueBackend *backend = UNIQUE_BACKEND (user_data);
++ const gchar *command_str, *data, *startup_id;
++ guint len, screen_num, workspace, time_;
++ UniqueMessageData message_data;
++ gint command;
++ UniqueResponse response;
++ GdkDisplay *display;
++
++ g_variant_get (parameters,
++ "(&s(&suuu&s)u)",
++ &command_str,
++ &data, &len, &screen_num, &workspace, &startup_id,
++ &time_);
++
++ command = unique_command_from_string (backend->parent, command_str);
++ if (command == 0)
++ {
++ g_dbus_method_invocation_return_error (invocation,
++ G_DBUS_ERROR,
++ G_DBUS_ERROR_INVALID_ARGS,
++ "Invalid command `%s' received",
++ command_str);
++ return;
++ }
++
++ display = gdk_display_get_default ();
++
++ message_data.data = len > 0 ? (guchar *) data : NULL;
++ message_data.length = (gint) len;
++ message_data.workspace = workspace;
++ message_data.startup_id = (char *) startup_id;
++ if (screen_num >= 0 && screen_num < gdk_display_get_n_screens (display))
++ message_data.screen = gdk_display_get_screen (display, screen_num);
++ else
++ message_data.screen = gdk_screen_get_default ();
++
++ response = unique_app_emit_message_received (backend->parent, command, &message_data, time_);
++
++ g_dbus_method_invocation_return_value (invocation,
++ g_variant_new ("(s)", unique_response_to_string (response)));
++ return;
++ }
++}
++
++static void
++name_acquired_cb (GDBusConnection *connection,
++ const gchar *name,
++ gpointer user_data)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (user_data);
++
++ backend_gdbus->owns_name = TRUE;
++ if (backend_gdbus->loop && g_main_loop_is_running (backend_gdbus->loop))
++ g_main_loop_quit (backend_gdbus->loop);
++}
++
++static void
++name_lost_cb (GDBusConnection *connection,
++ const gchar *name,
++ gpointer user_data)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (user_data);
++
++ backend_gdbus->owns_name = FALSE;
++ if (backend_gdbus->loop && g_main_loop_is_running (backend_gdbus->loop))
++ g_main_loop_quit (backend_gdbus->loop);
++}
++
++static const GDBusInterfaceVTable interface_vtable = {
++ method_call_cb,
++ NULL,
++ NULL
++};
++
++static gboolean
++unique_backend_gdbus_request_name (UniqueBackend *backend)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (backend);
++ UniqueBackendGDBusClass *klass = UNIQUE_BACKEND_GDBUS_GET_CLASS (backend);
++ GError *error;
++
++ error = NULL;
++ backend_gdbus->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
++ if (!backend_gdbus->connection)
++ {
++ g_warning ("Unable to open a connection to the session bus: %s",
++ error->message);
++ g_error_free (error);
++
++ return FALSE;
++ }
++
++ backend_gdbus->registration_id =
++ g_dbus_connection_register_object (backend_gdbus->connection,
++ "/Factory",
++ klass->introspection_data->interfaces[0],
++ &interface_vtable,
++ backend, NULL,
++ &error);
++ if (backend_gdbus->registration_id == 0)
++ {
++ g_warning ("Unable to register object with the session bus: %s",
++ error->message);
++ g_error_free (error);
++
++ return FALSE;
++ }
++
++ backend_gdbus->owns_name = FALSE;
++
++ backend_gdbus->owner_id =
++ g_bus_own_name_on_connection (backend_gdbus->connection,
++ unique_backend_get_name (backend),
++ G_BUS_NAME_OWNER_FLAGS_NONE,
++ name_acquired_cb,
++ name_lost_cb,
++ backend, NULL);
++
++ backend_gdbus->loop = g_main_loop_new (NULL, FALSE);
++ g_main_loop_run (backend_gdbus->loop);
++ g_main_loop_unref (backend_gdbus->loop);
++ backend_gdbus->loop = NULL;
++
++ return backend_gdbus->owns_name;
++}
++
++static UniqueResponse
++unique_backend_gdbus_send_message (UniqueBackend *backend,
++ gint command,
++ UniqueMessageData *message_data,
++ guint time_)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (backend);
++ GVariantBuilder builder;
++ GVariant *result;
++ const gchar *command_str, *resp;
++ UniqueResponse response;
++ GError *error;
++
++ command_str = unique_command_to_string (backend->parent, command);
++
++ g_variant_builder_init (&builder, G_VARIANT_TYPE ("(s(suuus)u)"));
++ g_variant_builder_add (&builder, "s", command_str ? command_str : "");
++ g_variant_builder_open (&builder, G_VARIANT_TYPE ("(suuus)"));
++ g_variant_builder_add (&builder, "s", message_data->data ? (char *) message_data->data : "");
++ g_variant_builder_add (&builder, "u", (guint) message_data->length);
++ g_variant_builder_add (&builder, "u", (guint) gdk_screen_get_number (message_data->screen));
++ g_variant_builder_add (&builder, "u", (guint) message_data->workspace);
++ g_variant_builder_add (&builder, "s", message_data->startup_id ? message_data->startup_id : "");
++ g_variant_builder_close (&builder);
++ g_variant_builder_add (&builder, "u", time_);
++
++ error = NULL;
++ result = g_dbus_connection_call_sync (backend_gdbus->connection,
++ unique_backend_get_name (backend),
++ "/Factory",
++ "org.gtk.UniqueApp",
++ "SendMessage",
++ g_variant_builder_end (&builder),
++ G_VARIANT_TYPE ("(s)"),
++ G_DBUS_CALL_FLAGS_NO_AUTO_START,
++ -1,
++ NULL,
++ &error);
++ if (error)
++ {
++ g_warning ("Error while sending message: %s", error->message);
++ g_error_free (error);
++
++ return UNIQUE_RESPONSE_INVALID;
++ }
++
++ g_variant_get (result, "(&s)", &resp);
++ response = unique_response_from_string (resp);
++ g_variant_unref (result);
++
++ return response;
++}
++
++static void
++unique_backend_gdbus_dispose (GObject *gobject)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (gobject);
++
++ if (backend_gdbus->owner_id != 0)
++ {
++ g_bus_unown_name (backend_gdbus->owner_id);
++ backend_gdbus->owner_id = 0;
++ }
++ if (backend_gdbus->registration_id != 0)
++ {
++ g_assert (backend_gdbus->connection != NULL);
++ g_dbus_connection_unregister_object (backend_gdbus->connection,
++ backend_gdbus->registration_id);
++ backend_gdbus->registration_id = 0;
++ }
++ if (backend_gdbus->connection)
++ {
++ g_object_unref (backend_gdbus->connection);
++ backend_gdbus->connection = NULL;
++ }
++
++ G_OBJECT_CLASS (unique_backend_gdbus_parent_class)->dispose (gobject);
++}
++
++static void
++unique_backend_gdbus_class_init (UniqueBackendGDBusClass *klass)
++{
++ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
++ UniqueBackendClass *backend_class = UNIQUE_BACKEND_CLASS (klass);
++
++ gobject_class->dispose = unique_backend_gdbus_dispose;
++
++ backend_class->request_name = unique_backend_gdbus_request_name;
++ backend_class->send_message = unique_backend_gdbus_send_message;
++
++ klass->introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
++ g_assert (klass->introspection_data != NULL);
++}
++
++static void
++unique_backend_gdbus_init (UniqueBackendGDBus *backend)
++{
++}
+diff --git a/unique/gdbus/uniquebackend-gdbus.h b/unique/gdbus/uniquebackend-gdbus.h
+new file mode 100644
+index 0000000..41eb6e5
+--- /dev/null
++++ b/unique/gdbus/uniquebackend-gdbus.h
+@@ -0,0 +1,43 @@
++/* Unique - Single Instance application library
++ * uniquebackend-gdbus.c: GDBus implementation of UniqueBackend
++ *
++ * Copyright (C) 2007 Emmanuele Bassi <ebassi@o-hand.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ */
++
++#ifndef __UNIQUE_BACKEND_GDBUS_H__
++#define __UNIQUE_BACKEND_GDBUS_H__
++
++#include <unique/uniquebackend.h>
++
++G_BEGIN_DECLS
++
++#define UNIQUE_TYPE_BACKEND_GDBUS (unique_backend_gdbus_get_type ())
++#define UNIQUE_BACKEND_GDBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBus))
++#define UNIQUE_IS_BACKEND_GDBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNIQUE_TYPE_BACKEND_GDBUS))
++#define UNIQUE_BACKEND_GDBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBusClass))
++#define UNIQUE_IS_BACKEND_GDBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNIQUE_TYPE_BACKEND_GDBUS))
++#define UNIQUE_BACKEND_GDBUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBusClass))
++
++typedef struct _UniqueBackendGDBus UniqueBackendGDBus;
++typedef struct _UniqueBackendGDBusClass UniqueBackendGDBusClass;
++
++GType unique_backend_gdbus_get_type (void) G_GNUC_CONST;
++
++G_END_DECLS
++
++#endif /* __UNIQUE_BACKEND_GDBUS_H__ */
+diff --git a/unique/uniquebackend.c b/unique/uniquebackend.c
+index 18a0c45..a76e42e 100644
+--- a/unique/uniquebackend.c
++++ b/unique/uniquebackend.c
+@@ -298,6 +298,9 @@ unique_backend_send_message (UniqueBackend *backend,
+ #ifdef HAVE_DBUS
+ #include "dbus/uniquebackend-dbus.h"
+ #endif
++#ifdef HAVE_GDBUS
++#include "gdbus/uniquebackend-gdbus.h"
++#endif
+
+ /**
+ * unique_backend_create:
+@@ -329,6 +332,10 @@ unique_backend_create (void)
+ if (strcmp (backend_name, "dbus") == 0)
+ backend_gtype = unique_backend_dbus_get_type ();
+ #endif /* HAVE_DBUS */
++#ifdef HAVE_GDBUS
++ if (strcmp (backend_name, "gdbus") == 0)
++ backend_gtype = unique_backend_gdbus_get_type ();
++#endif /* HAVE_GDBUS */
+ #if !defined(HAVE_BACON) && !defined(HAVE_DBUS)
+ #error Need either bacon or dbus
+ #endif
+--
+cgit v0.8.3.1
diff --git a/extra/libupnp/PKGBUILD b/extra/libupnp/PKGBUILD
new file mode 100644
index 000000000..20c1c66c9
--- /dev/null
+++ b/extra/libupnp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116007 2011-03-22 15:41:57Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: kastor <kastor@fobos.org.ar>
+
+pkgname=libupnp
+pkgver=1.6.13
+pkgrel=1
+pkgdesc="Portable Open Source UPnP Development Kit"
+arch=('i686' 'x86_64')
+url="http://pupnp.sourceforge.net/"
+license=('BSD')
+depends=('glibc')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/pupnp/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('71476b1781ad179bfc9bead640be5f54')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/custom/${pkgname}/LICENSE
+}
diff --git a/extra/libva/PKGBUILD b/extra/libva/PKGBUILD
new file mode 100644
index 000000000..36a228923
--- /dev/null
+++ b/extra/libva/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 117421 2011-04-01 18:27:40Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+pkgname=libva
+pkgver=1.0.12
+pkgrel=1
+pkgdesc="Video Acceleration (VA) API for Linux"
+arch=('i686' 'x86_64')
+url="http://freedesktop.org/wiki/Software/vaapi"
+license=('MIT')
+depends=('libgl' 'libdrm>=2.4.23' 'libxfixes')
+makedepends=('mesa')
+optdepends=('vdpau-video: VDPAU backend for VA API')
+options=('!libtool')
+source=(http://cgit.freedesktop.org/libva/snapshot/${pkgname}-${pkgver}.tar.bz2
+ libva-dont-install-tests.patch)
+md5sums=('84408a0746a63b8cf308dc7b9f2451cf'
+ '0a9bd14c36545c0e9819dfe32ea80f41')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i "${srcdir}/libva-dont-install-tests.patch"
+ ./autogen.sh
+ ./configure --prefix=/usr \
+ --enable-i965-driver \
+ --enable-glx
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ install -m644 -D COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/libva/libva-dont-install-tests.patch b/extra/libva/libva-dont-install-tests.patch
new file mode 100644
index 000000000..43e4cbaa7
--- /dev/null
+++ b/extra/libva/libva-dont-install-tests.patch
@@ -0,0 +1,47 @@
+Don't install some useeless tests programs
+
+
+--- test/basic/Makefile.am~ 2010-02-12 09:42:10.000000000 -0500
++++ test/basic/Makefile.am 2010-03-10 13:36:50.449834525 -0500
+@@ -20,7 +20,7 @@
+ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-bin_PROGRAMS = test_01 test_02 test_03 test_04 test_05 test_06 \
++check_PROGRAMS = test_01 test_02 test_03 test_04 test_05 test_06 \
+ test_07 test_08 test_09 test_10 test_11
+
+ AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+--- test/decode/Makefile.am~ 2010-02-12 09:42:10.000000000 -0500
++++ test/decode/Makefile.am 2010-03-10 13:37:09.636843464 -0500
+@@ -20,7 +20,7 @@
+ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-bin_PROGRAMS = mpeg2vldemo
++check_PROGRAMS = mpeg2vldemo
+
+ AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+
+--- test/encode/Makefile.am~ 2010-02-12 09:42:10.000000000 -0500
++++ test/encode/Makefile.am 2010-03-10 13:37:26.701846294 -0500
+@@ -20,7 +20,7 @@
+ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-bin_PROGRAMS = h264encode
++check_PROGRAMS = h264encode
+
+ AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+
+--- test/putsurface/Makefile.am~ 2010-03-10 13:18:55.270697040 -0500
++++ test/putsurface/Makefile.am 2010-03-10 13:38:08.106713556 -0500
+@@ -20,7 +20,7 @@
+ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-bin_PROGRAMS = putsurface
++check_PROGRAMS = putsurface
+
+ AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/x11 -DIN_LIBVA
+
diff --git a/extra/libvdpau/PKGBUILD b/extra/libvdpau/PKGBUILD
new file mode 100644
index 000000000..7500270bc
--- /dev/null
+++ b/extra/libvdpau/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libvdpau
+pkgver=0.4.1
+pkgrel=1
+pkgdesc="Nvidia VDPAU library"
+arch=(i686 x86_64)
+url=http://cgit.freedesktop.org/~aplattner/libvdpau
+depends=('gcc-libs')
+conflicts=('nvidia-utils<190.42-2')
+options=('!libtool' 'force')
+license=('custom')
+source=(http://people.freedesktop.org/~aplattner/vdpau/${pkgname}-${pkgver}.tar.gz)
+makedepends=('libx11')
+sha256sums=('061b6f86c64912f79851bfefcac4f77b401e9a939dbbb7b1ec795bc7d5aaf59b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libvisual-plugins/PKGBUILD b/extra/libvisual-plugins/PKGBUILD
new file mode 100644
index 000000000..e6b7eeea0
--- /dev/null
+++ b/extra/libvisual-plugins/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 63448 2010-01-17 14:53:27Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=libvisual-plugins
+pkgver=0.4.0
+pkgrel=3
+pkgdesc="plugins for libvisual"
+arch=("i686" "x86_64")
+license=('GPL')
+url="http://www.localhost.nl/~synap/libvisual/"
+depends=('libvisual>=0.4.0' 'gtk2>=2.18.6' 'mesa>=7.7' 'alsa-lib' 'esound' 'jack-audio-connection-kit')
+makedepends=(pkgconfig)
+source=("http://downloads.sourceforge.net/sourceforge/libvisual/libvisual-plugins-${pkgver}.tar.gz")
+md5sums=('4330e9287f9d6fae02f482f428a1e77b')
+options=(!libtool)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-alsa --disable-gstreamer-plugin || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libvisual/PKGBUILD b/extra/libvisual/PKGBUILD
new file mode 100644
index 000000000..11b566762
--- /dev/null
+++ b/extra/libvisual/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 78070 2010-04-19 09:02:43Z dgriffiths $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=libvisual
+pkgver=0.4.0
+pkgrel=3
+pkgdesc="Abstraction library that comes between applications and audio visualisation plugins"
+arch=("i686" "x86_64")
+url="http://sourceforge.net/projects/libvisual/"
+license=('LGPL')
+depends=('glibc')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/libvisual/libvisual-${pkgver}.tar.gz")
+md5sums=('f4e78547c79ea8a8ad111cf8b85011bb')
+
+build()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/libvncserver/PKGBUILD b/extra/libvncserver/PKGBUILD
new file mode 100644
index 000000000..e66042a65
--- /dev/null
+++ b/extra/libvncserver/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 63372 2010-01-17 12:51:49Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libvncserver
+pkgver=0.9.7
+pkgrel=3
+pkgdesc="The vnc library"
+arch=('i686' 'x86_64')
+url="http://libvncserver.sourceforge.net/"
+license=('GPL')
+depends=('libjpeg>=8' 'zlib')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/LibVNCServer-${pkgver}.tar.gz)
+md5sums=('14af5bdae461df4666c18e5f83c150c4')
+
+build() {
+ cd $srcdir/LibVNCServer-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/libvorbis/PKGBUILD b/extra/libvorbis/PKGBUILD
new file mode 100644
index 000000000..b144a90b1
--- /dev/null
+++ b/extra/libvorbis/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 102123 2010-12-06 01:49:44Z allan $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=libvorbis
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="Vorbis codec library"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.xiph.org/ogg/vorbis/"
+depends=('libogg')
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/vorbis/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c870b9bd5858a0ecb5275c14486d9554')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ #-march=i686 optimizes too much, strip it out
+ CFLAGS=${CFLAGS/-march=$CARCH} ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/libvpx/PKGBUILD b/extra/libvpx/PKGBUILD
new file mode 100644
index 000000000..cbe82e07f
--- /dev/null
+++ b/extra/libvpx/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 113551 2011-03-09 12:18:46Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libvpx
+pkgver=0.9.6
+pkgrel=2
+pkgdesc="The VP8 Codec SDK"
+arch=('i686' 'x86_64')
+url="http://www.webmproject.org/"
+license=('BSD')
+depends=('glibc')
+makedepends=('yasm')
+source=(http://webm.googlecode.com/files/${pkgname}-v${pkgver}.tar.bz2)
+sha1sums=('a3522bd2b73d52381ba767ded1cbf4760e9cc6f8')
+
+build() {
+ cd "${srcdir}/${pkgname}-v${pkgver}"
+ ./configure --enable-vp8 \
+ --enable-runtime-cpu-detect \
+ --enable-shared \
+ --enable-postproc \
+ --enable-pic \
+ --disable-install-docs \
+ --disable-install-srcs
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-v${pkgver}"
+ make DIST_DIR="$pkgdir/usr" install
+ install -D -m 0644 LICENSE "$pkgdir/usr/share/licenses/${pkgname}/LICENSE"
+ chmod 644 "$pkgdir"/usr/include/vpx/*.h
+}
diff --git a/extra/libwebkit/PKGBUILD b/extra/libwebkit/PKGBUILD
new file mode 100644
index 000000000..c8d1c7540
--- /dev/null
+++ b/extra/libwebkit/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 109463 2011-02-09 20:43:10Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libwebkit
+pkgver=1.2.7
+pkgrel=1
+pkgdesc="an opensource web content engine, derived from KHTML and KJS from KDE"
+arch=('i686' 'x86_64')
+url="http://webkitgtk.org/"
+license=('custom')
+depends=('libxt' 'libxslt' 'sqlite3' 'gtk2' 'icu>=4.6' 'gstreamer0.10-base' 'libsoup' 'enchant')
+makedepends=('gperf' 'gtk-doc' 'gobject-introspection')
+provides=('webkitgtk-svn')
+conflicts=('webkitgtk-svn')
+replaces=('webkitgtk-svn')
+options=('!libtool')
+source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz
+ introspection.patch)
+md5sums=('25c7e548b65aeb6d83c0182c32ef0927'
+ 'e7e83312618cb30cc9a1567a21cd0e06')
+
+
+build() {
+ cd "${srcdir}/webkit-${pkgver}"
+ patch -Np0 -i "${srcdir}/introspection.patch"
+
+ ./configure --prefix=/usr \
+ --enable-video --enable-introspection \
+ --with-font-backend=freetype --enable-gtk-doc \
+ --enable-jit --with-unicode-backend=icu
+ #disable makeflags if parallel building fails
+ make ${MAKEFLAGS}
+}
+
+package() {
+ cd "${srcdir}/webkit-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 WebKit/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/libwebkit/introspection.patch b/extra/libwebkit/introspection.patch
new file mode 100644
index 000000000..f12e9e629
--- /dev/null
+++ b/extra/libwebkit/introspection.patch
@@ -0,0 +1,22 @@
+--- WebKit/gtk/JSCore-1.0.gir 2010-09-29 14:54:07.000000000 +0200
++++ WebKit/gtk/JSCore-1.0.gir 2010-09-29 15:57:06.000000000 +0200
+@@ -1,12 +1,14 @@
+ <?xml version="1.0"?>
+-<repository version="1.0"
++<repository version="1.2"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0">
+ <namespace name="JSCore" version="1.0" shared-library="webkit-1.0">
+- <alias name="GlobalContextRef"
+- target="none"
+- c:type="JSGlobalContextRef"/>
+- <alias name="ObjectRef" target="none" c:type="JSObjectRef"/>
++ <alias name="GlobalContextRef" target="none">
++ <type name="JSGlobalContextRef" c:type="JSGlobalContextRef"/>
++ </alias>
++ <alias name="ObjectRef" target="none">
++ <type name="JSObjectRef" c:type="JSObjectRef"/>
++ </alias>
+ <function name="EvaluateScript" c:identifier="JSEvaluateScript">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
diff --git a/extra/libwmf/PKGBUILD b/extra/libwmf/PKGBUILD
new file mode 100644
index 000000000..12061510c
--- /dev/null
+++ b/extra/libwmf/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 87507 2010-08-15 06:45:18Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: FJ <joostef@gmail.com>
+
+pkgname=libwmf
+pkgver=0.2.8.4
+pkgrel=8
+pkgdesc="A library for reading vector images in Microsoft's native Windows Metafile Format (WMF)"
+arch=('i686' 'x86_64')
+url="http://wvware.sourceforge.net/libwmf.html"
+license=("LGPL")
+depends=('libpng' 'libx11' 'freetype2' 'libjpeg' 'gsfonts' 'expat')
+makedepends=('gtk2' 'libxt' 'pkg-config')
+options=('!libtool' '!docs' '!emptydirs')
+install=libwmf.install
+source=(http://downloads.sourceforge.net/sourceforge/wvware/${pkgname}-${pkgver}.tar.gz
+ libpng14.patch libwmf-0.2.8.4-useafterfree.patch)
+md5sums=('d1177739bf1ceb07f57421f0cee191e0' '33d3c07a1be9f99fd88de220930c5550'\
+ '0f02c1cb8a87bf7158634503bf0537e2')
+sha1sums=('822ab3bd0f5e8f39ad732f2774a8e9f18fc91e89' '15edb94eec7c9cea988e83660b334e56bf1fe897'\
+ 'ea6d28880840e86c96f9079bfd591da54dcffa5c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libpng14.patch"
+ patch -Np1 -i "${srcdir}/libwmf-0.2.8.4-useafterfree.patch"
+ ./configure --prefix=/usr \
+ --with-gsfontdir=/usr/share/fonts/Type1 \
+ --with-fontdir=/usr/share/fonts/Type1 \
+ --with-gsfontmap=/usr/share/ghostscript/8.15/lib/Fontmap.GS
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ #Remove fonts, these are in gsfonts
+ rm -rf "${pkgdir}/usr/share/fonts"
+ #Remove static GTK loader, can't use it anyways
+ rm -f "${pkgdir}"/usr/lib/gtk-2.0/*/loaders/io-wmf.a
+}
diff --git a/extra/libwmf/libpng14.patch b/extra/libwmf/libpng14.patch
new file mode 100644
index 000000000..3d38c717a
--- /dev/null
+++ b/extra/libwmf/libpng14.patch
@@ -0,0 +1,12 @@
+diff -Nur libwmf-0.2.8.4.orig/src/extra/gd/gd_png.c libwmf-0.2.8.4/src/extra/gd/gd_png.c
+--- libwmf-0.2.8.4.orig/src/extra/gd/gd_png.c 2005-07-27 23:35:06.000000000 +0300
++++ libwmf-0.2.8.4/src/extra/gd/gd_png.c 2010-01-17 01:33:58.000000000 +0200
+@@ -136,7 +136,7 @@
+ /* first do a quick check that the file really is a PNG image; could
+ * have used slightly more general png_sig_cmp() function instead */
+ gdGetBuf (sig, 8, infile);
+- if (!png_check_sig (sig, 8))
++ if (png_sig_cmp (sig, 0, 8))
+ return NULL; /* bad signature */
+
+ #ifndef PNG_SETJMP_NOT_SUPPORTED
diff --git a/extra/libwmf/libwmf-0.2.8.4-useafterfree.patch b/extra/libwmf/libwmf-0.2.8.4-useafterfree.patch
new file mode 100644
index 000000000..328c5411f
--- /dev/null
+++ b/extra/libwmf/libwmf-0.2.8.4-useafterfree.patch
@@ -0,0 +1,10 @@
+--- libwmf-0.2.8.4/src/extra/gd/gd_clip.c.CVE-2009-1364-im-clip-list 2009-04-24 04:06:44.000000000 -0400
++++ libwmf-0.2.8.4/src/extra/gd/gd_clip.c 2009-04-24 04:08:30.000000000 -0400
+@@ -70,6 +70,7 @@ void gdClipSetAdd(gdImagePtr im,gdClipRe
+ { more = gdRealloc (im->clip->list,(im->clip->max + 8) * sizeof (gdClipRectangle));
+ if (more == 0) return;
+ im->clip->max += 8;
++ im->clip->list = more;
+ }
+ im->clip->list[im->clip->count] = (*rect);
+ im->clip->count++;
diff --git a/extra/libwmf/libwmf.install b/extra/libwmf/libwmf.install
new file mode 100644
index 000000000..9c99a901b
--- /dev/null
+++ b/extra/libwmf/libwmf.install
@@ -0,0 +1,13 @@
+post_install() {
+ if [ -x usr/bin/gdk-pixbuf-query-loaders ]; then
+ gdk-pixbuf-query-loaders > etc/gtk-2.0/gdk-pixbuf.loaders
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/libwnck/PKGBUILD b/extra/libwnck/PKGBUILD
new file mode 100644
index 000000000..43223588b
--- /dev/null
+++ b/extra/libwnck/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 99757 2010-11-17 12:00:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libwnck
+pkgver=2.30.6
+pkgrel=1
+pkgdesc="Window Navigator Construction Kit"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk2>=2.22.0' 'startup-notification>=0.10' 'libxres')
+makedepends=('libxt>=1.0.6' 'intltool' 'gobject-introspection')
+options=('!libtool')
+url="http://www.gnome.org/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('4d25984ed5cfe215eb650f960de634300a6cafc9d98bbc7caea8043b7cd96cc5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libwpd/PKGBUILD b/extra/libwpd/PKGBUILD
new file mode 100644
index 000000000..d81792fff
--- /dev/null
+++ b/extra/libwpd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 110381 2011-02-19 06:05:32Z eric $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=libwpd
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="Library for importing WordPerfect (tm) documents"
+arch=('i686' 'x86_64')
+url="http://libwpd.sourceforge.net/"
+license=('LGPL')
+depends=('libgsf>=1.14.3-2')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6edd1b7eb8992888c6c82fc95859ac1b')
+sha1sums=('af4bc109ad270e873652d0af80e96b42d82dddbc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --without-docs
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libwpg/PKGBUILD b/extra/libwpg/PKGBUILD
new file mode 100644
index 000000000..5dfa3efca
--- /dev/null
+++ b/extra/libwpg/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 102210 2010-12-06 19:32:38Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libwpg
+pkgver=0.2.0
+pkgrel=1
+pkgdesc="Library for importing and converting Corel WordPerfect(tm) Graphics images."
+arch=('i686' 'x86_64')
+url="http://libwpg.sourceforge.net/"
+license=('LGPL')
+depends=('libwpd>=0.9.0' 'perl')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/libwpg/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('5ba6a61a2f66dfd5fee8cdd4cd262a37')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/libx11/PKGBUILD b/extra/libx11/PKGBUILD
new file mode 100644
index 000000000..f8ba6f768
--- /dev/null
+++ b/extra/libx11/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 115642 2011-03-18 11:45:18Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libx11
+pkgver=1.4.2
+pkgrel=1
+pkgdesc="X11 client-side library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('libxcb' 'xproto' 'kbproto')
+makedepends=('xorg-util-macros' 'xextproto' 'xtrans' 'inputproto')
+options=('!libtool')
+license=('custom')
+source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2
+ xorg.sh)
+sha1sums=('c93fc44dcc028319bee76f3e629ec43cfce42673'
+ '4b756387426afb2a5bb7a155631ec42348abf5c1')
+
+build() {
+ cd "${srcdir}/libX11-${pkgver}"
+ ./configure --prefix=/usr --disable-static --disable-xf86bigfont
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/libX11-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/profile.d"
+ install -m755 "${srcdir}/xorg.sh" "${pkgdir}/etc/profile.d/"
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libx11/xorg.sh b/extra/libx11/xorg.sh
new file mode 100644
index 000000000..e1de6866c
--- /dev/null
+++ b/extra/libx11/xorg.sh
@@ -0,0 +1,15 @@
+export XDG_DATA_HOME=$HOME/.local/share
+export XDG_CONFIG_HOME=$HOME/.config
+export XDG_CACHE_HOME=$HOME/.cache
+
+if [ -z $XDG_DATA_DIRS ]; then
+ export XDG_DATA_DIRS=/usr/share/:/usr/local/share/
+else
+ export XDG_DATA_DIRS=/usr/share/:/usr/local/share/:$XDG_DATA_DIRS
+fi
+
+if [ -z $XDG_CONFIG_DIRS ]; then
+ export XDG_CONFIG_DIRS=/etc/xdg
+else
+ export XDG_CONFIG_DIRS=/etc/xdg:$XDG_CONFIG_DIRS
+fi
diff --git a/extra/libx86/PKGBUILD b/extra/libx86/PKGBUILD
new file mode 100644
index 000000000..79519598c
--- /dev/null
+++ b/extra/libx86/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 21343 2008-12-12 01:32:33Z eric $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=libx86
+pkgver=1.1
+pkgrel=2
+pkgdesc="Provides an lrmi interface that works on x86, am64 and alpha"
+arch=('i686' 'x86_64')
+url="http://www.codon.org.uk/~mjg59/libx86/"
+license=('custom')
+depends=('glibc')
+source=(http://www.codon.org.uk/~mjg59/libx86/downloads/libx86-$pkgver.tar.gz
+ libx86-ifmask.patch)
+md5sums=('41bee1f8e22b82d82b5f7d7ba51abc2a'
+ '573897186eb8670d8d97c64ea7614001')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # lrmi.c patch courtesy of Gentoo
+ patch -Np0 -i $srcdir/libx86-ifmask.patch || return 1
+
+ # compensate for x86_64
+ if [ "$CARCH" = "x86_64" ]; then
+ make BACKEND=x86emu || return 1
+ else
+ make || return 1
+ fi
+
+ make DESTDIR=$pkgdir install || return 1
+ chmod 644 $pkgdir/usr/lib/libx86.a || return 1
+
+ install -D -m 644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/COPYRIGHT || return 1
+}
diff --git a/extra/libx86/libx86-ifmask.patch b/extra/libx86/libx86-ifmask.patch
new file mode 100644
index 000000000..c99eeb819
--- /dev/null
+++ b/extra/libx86/libx86-ifmask.patch
@@ -0,0 +1,21 @@
+--- lrmi.c.orig 2008-09-06 12:24:36.070136428 +0200
++++ lrmi.c 2008-09-06 12:28:10.584287458 +0200
+@@ -55,6 +55,18 @@ OTHER DEALINGS IN THE SOFTWARE.
+ #include "x86-common.h"
+
+ #if defined(__linux__)
++#ifndef TF_MASK
++#define TF_MASK X86_EFLAGS_TF
++#endif
++#ifndef IF_MASK
++#define IF_MASK X86_EFLAGS_IF
++#endif
++#ifndef IOPL_MASK
++#define IOPL_MASK X86_EFLAGS_IOPL
++#endif
++#ifndef VIF_MASK
++#define VIF_MASK X86_EFLAGS_VIF
++#endif
+ #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK)
+ #elif defined(__NetBSD__) || defined(__FreeBSD__)
+ #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL)
diff --git a/extra/libxau/PKGBUILD b/extra/libxau/PKGBUILD
new file mode 100644
index 000000000..f5301af1a
--- /dev/null
+++ b/extra/libxau/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 88375 2010-08-23 07:44:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=libxau
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="X11 authorisation library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('glibc' 'xproto>=7.0.18')
+makedepends=('pkgconfig')
+license=('custom')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXau-${pkgver}.tar.bz2)
+sha1sums=('0e1ab449f98026e4599f6e0d7491810d36c8fe4d')
+
+build() {
+ cd "${srcdir}/libXau-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxaw/PKGBUILD b/extra/libxaw/PKGBUILD
new file mode 100644
index 000000000..d4f65c437
--- /dev/null
+++ b/extra/libxaw/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 106867 2011-01-19 15:23:45Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxaw
+pkgver=1.0.9
+pkgrel=1
+pkgdesc="X11 Athena Widget library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxmu' 'libxpm')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXaw-${pkgver}.tar.bz2)
+sha1sums=('5f8fc1b10316f31d4c6fa1d938b2297ff5bd2da5')
+
+build() {
+ cd "${srcdir}/libXaw-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxcb/PKGBUILD b/extra/libxcb/PKGBUILD
new file mode 100644
index 000000000..1db9d2adb
--- /dev/null
+++ b/extra/libxcb/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 101448 2010-11-29 09:38:40Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=libxcb
+pkgver=1.7
+pkgrel=1
+pkgdesc="X11 client-side library"
+arch=(i686 x86_64)
+url="http://xcb.freedesktop.org/"
+depends=('xcb-proto>=1.6' 'libxdmcp' 'libxau')
+makedepends=('pkgconfig' 'libxslt' 'python2')
+conflicts=('libx11<1.1.99.2')
+options=('!libtool')
+license=('custom')
+source=(${url}/dist/${pkgname}-${pkgver}.tar.bz2
+ libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('7540f0587907bce421914f0ddb813810cb2f36f8'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libxcb-1.1-no-pthread-stubs.patch"
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ automake --add-missing
+ PYTHON=python2 ./configure --prefix=/usr --enable-xinput
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxcb/libxcb-1.1-no-pthread-stubs.patch b/extra/libxcb/libxcb-1.1-no-pthread-stubs.patch
new file mode 100644
index 000000000..f17de1b1d
--- /dev/null
+++ b/extra/libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -0,0 +1,12 @@
+diff -up libxcb-1.1/configure.ac.pthread-stubs libxcb-1.1/configure.ac
+--- libxcb-1.1/configure.ac.pthread-stubs 2007-11-04 18:17:11.000000000 -0500
++++ libxcb-1.1/configure.ac 2007-11-12 10:27:06.000000000 -0500
+@@ -31,7 +31,7 @@ AC_SUBST(HTML_CHECK_RESULT)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
+-NEEDED="pthread-stubs xau >= 0.99.2"
++NEEDED="xau >= 0.99.2"
+ PKG_CHECK_MODULES(NEEDED, $NEEDED)
+
+ have_xdmcp="no"
diff --git a/extra/libxcomposite/PKGBUILD b/extra/libxcomposite/PKGBUILD
new file mode 100644
index 000000000..854af09b6
--- /dev/null
+++ b/extra/libxcomposite/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97802 2010-11-01 22:21:28Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxcomposite
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="X11 Composite extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxfixes' 'compositeproto')
+makedepends=('xorg-util-macros')
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXcomposite-${pkgver}.tar.bz2)
+sha1sums=('081b26b556d55e20d7956c80a2ea2854962aecec')
+
+build() {
+ cd "${srcdir}/libXcomposite-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxcursor/PKGBUILD b/extra/libxcursor/PKGBUILD
new file mode 100644
index 000000000..3306c2bef
--- /dev/null
+++ b/extra/libxcursor/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97807 2010-11-01 22:23:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=libxcursor
+pkgver=1.1.11
+pkgrel=1
+pkgdesc="X cursor management library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxfixes' 'libxrender')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXcursor-${pkgver}.tar.bz2)
+sha1sums=('35491bd17cbcdda712e1a064c67ccbc523e2702c')
+
+build() {
+ cd "${srcdir}/libXcursor-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxdamage/PKGBUILD b/extra/libxdamage/PKGBUILD
new file mode 100644
index 000000000..231b4ce2d
--- /dev/null
+++ b/extra/libxdamage/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 82169 2010-06-09 06:52:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxdamage
+pkgver=1.1.3
+pkgrel=1
+pkgdesc="X11 damaged region extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxfixes>=4.0.4' 'damageproto>=1.2.0')
+makedepends=('pkg-config')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXdamage-${pkgver}.tar.bz2)
+sha1sums=('7d96e8de107fede16951cb47d5e147630fbc7dee')
+
+build() {
+ cd "${srcdir}/libXdamage-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/libxdmcp/PKGBUILD b/extra/libxdmcp/PKGBUILD
new file mode 100644
index 000000000..b247b9028
--- /dev/null
+++ b/extra/libxdmcp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97611 2010-10-31 16:26:42Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxdmcp
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 Display Manager Control Protocol library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('xproto' 'glibc')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXdmcp-${pkgver}.tar.bz2)
+sha1sums=('28132db24727552f77e998e6a6798a5b9b30789f')
+
+build() {
+ cd "${srcdir}/libXdmcp-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxevie/PKGBUILD b/extra/libxevie/PKGBUILD
new file mode 100644
index 000000000..ac39bc680
--- /dev/null
+++ b/extra/libxevie/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 97772 2010-11-01 22:04:34Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxevie
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="X11 EvIE extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxext')
+makedepends=('xorg-util-macros' 'evieext')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXevie-${pkgver}.tar.bz2)
+sha1sums=('84e2dc6e35c4a82f1a4d1fe4723fba58364c3bec')
+
+build() {
+ cd "${srcdir}/libXevie-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxext/PKGBUILD b/extra/libxext/PKGBUILD
new file mode 100644
index 000000000..d70a183ce
--- /dev/null
+++ b/extra/libxext/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97797 2010-11-01 22:17:28Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxext
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 miscellaneous extensions library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'xextproto')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXext-${pkgver}.tar.bz2)
+sha1sums=('090d7109c5fffde8a0063e10f22f3e2ec48cf19e')
+
+build() {
+ cd "${srcdir}/libXext-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxfce4menu/PKGBUILD b/extra/libxfce4menu/PKGBUILD
new file mode 100644
index 000000000..b4dbbc21e
--- /dev/null
+++ b/extra/libxfce4menu/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 80821 2010-05-22 13:24:17Z andyrtr $
+# Maintainer: tobias <tobias funnychar archlinux.org>
+
+pkgname=libxfce4menu
+pkgver=4.6.2
+pkgrel=1
+pkgdesc="a freedesktop.org compliant menu implementation for Xfce"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+depends=("libxfce4util>=4.6.2")
+makedepends=('pkgconfig' 'intltool' 'gtk2')
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.6/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ff10cacb76803ee37159e3a43345f0d1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --localstatedir=/var --disable-static
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/libxfce4ui/PKGBUILD b/extra/libxfce4ui/PKGBUILD
new file mode 100644
index 000000000..2260f1c93
--- /dev/null
+++ b/extra/libxfce4ui/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 106352 2011-01-16 16:37:35Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Xavier Devlamynck <magicrhesus@ouranos.be>
+
+pkgname=libxfce4ui
+pkgver=4.8.0
+pkgrel=1
+pkgdesc="share commonly used Xfce widgets among the Xfce applications"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('libxfce4util>=4.8.0' 'gtk2' "xfconf>=4.8.0" 'startup-notification')
+makedepends=('intltool' 'gtk-doc' 'glade')
+optdepends=('glade: for using the included glade module')
+#replaces=('libxfcegui4') - later when all is ported
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/libxfce4ui/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('df9acb3328dff905bd0777b84532b69f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gtk-doc \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libxfce4util/PKGBUILD b/extra/libxfce4util/PKGBUILD
new file mode 100644
index 000000000..1e6307e06
--- /dev/null
+++ b/extra/libxfce4util/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 106357 2011-01-16 16:41:01Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=libxfce4util
+pkgver=4.8.1
+pkgrel=1
+pkgdesc="Basic utility non-GUI functions for Xfce"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=("glib2")
+makedepends=('pkgconfig' 'intltool' 'gtk-doc')
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/libxfce4util/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2be3af4c7db5ad293a7525e1021e6f0f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gtk-doc \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libxfcegui4/PKGBUILD b/extra/libxfcegui4/PKGBUILD
new file mode 100644
index 000000000..a2a8aca84
--- /dev/null
+++ b/extra/libxfcegui4/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 109772 2011-02-12 17:13:22Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=libxfcegui4
+pkgver=4.8.1
+pkgrel=1
+pkgdesc="Various gtk widgets for Xfce"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('startup-notification' "xfconf>=4.8.0" "libglade" 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ca0cdeff99f1732307d0fc0672d382ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libxfcegui4/libxfcegui4.install b/extra/libxfcegui4/libxfcegui4.install
new file mode 100644
index 000000000..fee9e5d11
--- /dev/null
+++ b/extra/libxfcegui4/libxfcegui4.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/libxfixes/PKGBUILD b/extra/libxfixes/PKGBUILD
new file mode 100644
index 000000000..aff9bd0bf
--- /dev/null
+++ b/extra/libxfixes/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 82357 2010-06-10 12:31:08Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxfixes
+pkgver=4.0.5
+pkgrel=1
+pkgdesc="X11 miscellaneous 'fixes' extension library"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11>=1.3.4' 'fixesproto>=4.1.1')
+makedepends=('pkg-config')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXfixes-${pkgver}.tar.bz2)
+sha1sums=('255dfb9a8c50d795c60711ec4764f76cd0620cbf')
+
+build() {
+ cd "${srcdir}/libXfixes-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/libxfont/PKGBUILD b/extra/libxfont/PKGBUILD
new file mode 100644
index 000000000..d42d1ede8
--- /dev/null
+++ b/extra/libxfont/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 97682 2010-11-01 09:15:00Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxfont
+pkgver=1.4.3
+pkgrel=1
+pkgdesc="X11 font rasterisation library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('freetype2' 'libfontenc' 'xproto' 'fontsproto')
+makedepends=('xorg-util-macros' 'xtrans')
+options=('!libtool')
+source=(${url}/archive/individual/lib/libXfont-${pkgver}.tar.bz2)
+sha1sums=('191b40c566f80737cf6838747d86ebaee7b0c7d7')
+
+build() {
+ cd "${srcdir}/libXfont-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxft/PKGBUILD b/extra/libxft/PKGBUILD
new file mode 100644
index 000000000..edcbf82e5
--- /dev/null
+++ b/extra/libxft/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97606 2010-10-31 16:23:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxft
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="FreeType-based font drawing library for X"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('fontconfig' 'libxrender')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXft-${pkgver}.tar.bz2)
+sha1sums=('ed29784259f4e26df78141035560ae8a7c62e83f')
+
+build() {
+ cd "${srcdir}/libXft-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+}
diff --git a/extra/libxi/PKGBUILD b/extra/libxi/PKGBUILD
new file mode 100644
index 000000000..7d7ab740e
--- /dev/null
+++ b/extra/libxi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115723 2011-03-20 15:52:24Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxi
+pkgver=1.4.2
+pkgrel=1
+pkgdesc="X11 Input extension library"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org"
+depends=('libxext' 'inputproto')
+makedepends=('pkgconfig' 'xorg-util-macros')
+options=(!libtool)
+license=('custom')
+source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2)
+sha1sums=('97e60a60dd789287e47df807e487f4952dd4ff95')
+
+build() {
+ cd "${srcdir}/libXi-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/libXi-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxinerama/PKGBUILD b/extra/libxinerama/PKGBUILD
new file mode 100644
index 000000000..87801ba8c
--- /dev/null
+++ b/extra/libxinerama/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 97812 2010-11-01 22:26:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=libxinerama
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 Xinerama extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxext' 'xineramaproto')
+makedepends=('xorg-util-macros')
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXinerama-${pkgver}.tar.bz2)
+sha1sums=('f030b0cfcce15502aac78188524f32a6f29bd0a4')
+
+build() {
+ cd "${srcdir}/libXinerama-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxkbfile/PKGBUILD b/extra/libxkbfile/PKGBUILD
new file mode 100644
index 000000000..90e05db37
--- /dev/null
+++ b/extra/libxkbfile/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97571 2010-10-31 16:00:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxkbfile
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="X11 keyboard file manipulation library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libx11')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('0fed539ffbc05859bc666b425fafa42e046bef5f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxkbui/LICENSE b/extra/libxkbui/LICENSE
new file mode 100644
index 000000000..abe6f4d86
--- /dev/null
+++ b/extra/libxkbui/LICENSE
@@ -0,0 +1,25 @@
+/************************************************************
+ Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc.
+
+ Permission to use, copy, modify, and distribute this
+ software and its documentation for any purpose and without
+ fee is hereby granted, provided that the above copyright
+ notice appear in all copies and that both that copyright
+ notice and this permission notice appear in supporting
+ documentation, and that the name of Silicon Graphics not be
+ used in advertising or publicity pertaining to distribution
+ of the software without specific prior written permission.
+ Silicon Graphics makes no representation about the suitability
+ of this software for any purpose. It is provided "as is"
+ without any express or implied warranty.
+
+ SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
+ SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
+ GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
+ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
+ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ ********************************************************/
diff --git a/extra/libxkbui/PKGBUILD b/extra/libxkbui/PKGBUILD
new file mode 100644
index 000000000..78e39fe67
--- /dev/null
+++ b/extra/libxkbui/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 78062 2010-04-19 08:52:11Z dgriffiths $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxkbui
+pkgver=1.0.2
+pkgrel=3
+pkgdesc="X11 keyboard UI presentation library"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxt' 'libxkbfile')
+makedepends=('pkgconfig')
+options=(!libtool)
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('1143e456f7429e18e88f2eadb2f2b6b1' 'd1efaa1271fc028cd5bec33f836ee9ef')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/libxklavier/PKGBUILD b/extra/libxklavier/PKGBUILD
new file mode 100644
index 000000000..2ab42c862
--- /dev/null
+++ b/extra/libxklavier/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 68544 2010-02-13 09:51:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+
+pkgname=libxklavier
+pkgver=5.0
+pkgrel=1
+pkgdesc="High-level API for X Keyboard Extension"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libxkbfile>=1.0.5' 'libxml2>=2.7.6' 'glib2>=2.22.3' 'xkeyboard-config>=1.6' 'libxi>=1.2.1' 'iso-codes>=3.10.1')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+url="http://gswitchit.sourceforge.net"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('dfd94b17a752b2839281764f0a16af2b338024c8867c10fba7015f276dec4db0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-xkb-base=/usr/share/X11/xkb --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/libxmi/PKGBUILD b/extra/libxmi/PKGBUILD
new file mode 100644
index 000000000..855592a1a
--- /dev/null
+++ b/extra/libxmi/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 57021 2009-10-31 09:42:53Z allan $
+# Contributor: Tobias Kieslich [tobias.justdreams.de]
+
+pkgname=libxmi
+pkgver=1.2
+pkgrel=2
+pkgdesc="library for rasterizing 2-D vector graphics"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libxmi/libxmi.html"
+license=('GPL')
+depends=('glibc')
+source=(http://mirrors.usc.edu/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4e6935484f0ad71b531920bf4c546b47')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ rm config.guess config.sub install-sh missing
+ automake --add-missing
+ ./configure --prefix=/usr --infodir=/usr/share/info
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/libxml++/PKGBUILD b/extra/libxml++/PKGBUILD
new file mode 100644
index 000000000..0d8ce8e38
--- /dev/null
+++ b/extra/libxml++/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 100758 2010-11-25 19:14:49Z ibiru $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgbase=libxml++
+pkgname=('libxml++' 'libxml++-docs')
+pkgver=2.32.0
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://libxmlplusplus.sourceforge.net/"
+makedepends=('pkgconfig' 'glibmm-docs' 'libxml2>=2.7.7' 'glibmm>=2.24.2')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.32/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('7989e285ca6fe63379121a2afea8dd4806abef6ecf1cb84f4fc4e9de18b43c25')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_libxml++() {
+ pkgdesc="C++ bindings to libxml2"
+ depends=('libxml2>=2.7.7' 'glibmm>=2.24.2')
+ replaces=('libxml++2')
+ provides=("libxml++2=${pkgver}")
+ conflicts=('libxml++2')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e 's/install-data-am: install-data-local install-dist_referenceDATA/install-data-am: /' Makefile
+ make DESTDIR="${pkgdir}" install
+}
+
+package_libxml++-docs() {
+ pkgdesc="Developer documentation for libxml++"
+ depends=('glibmm-docs')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-data-local install-dist_referenceDATA
+}
diff --git a/extra/libxml2/PKGBUILD b/extra/libxml2/PKGBUILD
new file mode 100644
index 000000000..c5da2c5d2
--- /dev/null
+++ b/extra/libxml2/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 101089 2010-11-27 15:26:13Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=libxml2
+pkgver=2.7.8
+pkgrel=1
+pkgdesc="XML parsing library, version 2"
+arch=(i686 x86_64)
+license=('custom')
+depends=('zlib>=1.2.4' 'readline>=6.1' 'ncurses>=5.7')
+makedepends=('python2')
+options=('!libtool')
+url="http://www.xmlsoft.org/"
+source=(ftp://ftp.xmlsoft.org/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ largefile64.patch shared_library_versionning.patch)
+md5sums=('8127a65e8c3b08856093099b52599c86'
+ '5ad4915665608ebfa5b89f7908467a72'
+ '84aeb7c6db023eae044e95d9211dba53')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/largefile64.patch"
+ patch -Np1 -i "${srcdir}/shared_library_versionning.patch"
+ autoreconf -fi
+ ./configure --prefix=/usr --with-threads --with-history \
+ --with-python=/usr/bin/python2.7
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
+
diff --git a/extra/libxml2/largefile64.patch b/extra/libxml2/largefile64.patch
new file mode 100644
index 000000000..29be82760
--- /dev/null
+++ b/extra/libxml2/largefile64.patch
@@ -0,0 +1,12 @@
+--- libxml2-2.6.32.dfsg.orig/libxml.h
++++ libxml2-2.6.32.dfsg/libxml.h
+@@ -13,6 +13,9 @@
+ #ifndef _LARGEFILE_SOURCE
+ #define _LARGEFILE_SOURCE
+ #endif
++#ifndef _LARGEFILE64_SOURCE
++#define _LARGEFILE64_SOURCE
++#endif
+ #ifndef _FILE_OFFSET_BITS
+ #define _FILE_OFFSET_BITS 64
+ #endif
diff --git a/extra/libxml2/shared_library_versionning.patch b/extra/libxml2/shared_library_versionning.patch
new file mode 100644
index 000000000..a0b62bca9
--- /dev/null
+++ b/extra/libxml2/shared_library_versionning.patch
@@ -0,0 +1,21 @@
+From 00819877651b87842ed878898ba17dba489820f0 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <veillard@redhat.com>
+Date: Thu, 04 Nov 2010 20:53:14 +0000
+Subject: Reactivate the shared library versionning script
+
+---
+diff --git a/configure.in b/configure.in
+index 59d0629..a1d2c89 100644
+--- a/configure.in
++++ b/configure.in
+@@ -84,7 +84,7 @@ else
+ esac
+ fi
+ AC_SUBST(VERSION_SCRIPT_FLAGS)
+-AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -z "$VERSION_SCRIPT_FLAGS"])
++AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+
+ dnl
+ dnl We process the AC_ARG_WITH first so that later we can modify
+--
+cgit v0.8.3.1
diff --git a/extra/libxmu/PKGBUILD b/extra/libxmu/PKGBUILD
new file mode 100644
index 000000000..172af84ab
--- /dev/null
+++ b/extra/libxmu/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97601 2010-10-31 16:17:53Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxmu
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 miscellaneous micro-utility library"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+depends=('libxext' 'libxt')
+makedepends=('xorg-util-macros')
+license=('custom')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXmu-${pkgver}.tar.bz2)
+sha1sums=('81876a0848070bfc4476a2538fc16898eb6d96cd')
+
+build() {
+ cd "${srcdir}/libXmu-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxp/PKGBUILD b/extra/libxp/PKGBUILD
new file mode 100644
index 000000000..fc3117259
--- /dev/null
+++ b/extra/libxp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 106876 2011-01-19 17:19:25Z ibiru $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxp
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="X11 X Print Library"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxext' 'printproto')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXp-${pkgver}.tar.bz2)
+license=('custom')
+sha1sums=('9c76823c7cfcb43f097963d0c930dcc4e38807a8')
+
+build() {
+ cd "${srcdir}/libXp-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxpm/PKGBUILD b/extra/libxpm/PKGBUILD
new file mode 100644
index 000000000..676fd9e31
--- /dev/null
+++ b/extra/libxpm/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 97596 2010-10-31 16:14:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libxpm
+pkgver=3.5.9
+pkgrel=1
+pkgdesc="X11 pixmap library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxt' 'libxext')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXpm-${pkgver}.tar.bz2)
+sha1sums=('38258a1d589d3f157e0338d0fd13eec11bc4a39b')
+
+build() {
+ cd "${srcdir}/libXpm-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxrandr/PKGBUILD b/extra/libxrandr/PKGBUILD
new file mode 100644
index 000000000..c888828b9
--- /dev/null
+++ b/extra/libxrandr/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 97787 2010-11-01 22:11:26Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=libxrandr
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="X11 RandR extension library"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxext' 'libxrender' 'randrproto')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXrandr-${pkgver}.tar.bz2)
+sha1sums=('8e89622b0656cb2eb22c1f3c646c797dc648ead5')
+
+build() {
+ cd "${srcdir}/libXrandr-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxrender/PKGBUILD b/extra/libxrender/PKGBUILD
new file mode 100644
index 000000000..bed1b410e
--- /dev/null
+++ b/extra/libxrender/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 82164 2010-06-09 06:48:35Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxrender
+pkgver=0.9.6
+pkgrel=1
+pkgdesc="X Rendering Extension client library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11>=1.3.4' 'renderproto')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXrender-${pkgver}.tar.bz2)
+sha1sums=('65bd96dc17da6b064f95109da02d9c9d14cb06dc')
+
+build() {
+ cd "${srcdir}/libXrender-${pkgver}"
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/libxres/PKGBUILD b/extra/libxres/PKGBUILD
new file mode 100644
index 000000000..8414f6745
--- /dev/null
+++ b/extra/libxres/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97782 2010-11-01 22:08:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxres
+pkgver=1.0.5
+pkgrel=1
+pkgdesc="X11 Resource extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org"
+license=('custom')
+depends=('libxext')
+makedepends=('resourceproto' 'damageproto' 'compositeproto' 'scrnsaverproto' 'xorg-util-macros')
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXres-${pkgver}.tar.bz2)
+sha1sums=('d3a36f9b6ae430da91f2cbae409916f605074195')
+
+build() {
+ cd "${srcdir}/libXres-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxslt/PKGBUILD b/extra/libxslt/PKGBUILD
new file mode 100644
index 000000000..c956c0f08
--- /dev/null
+++ b/extra/libxslt/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 87866 2010-08-18 15:17:10Z ibiru $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=libxslt
+pkgver=1.1.26
+pkgrel=2
+pkgdesc="XML stylesheet transformation library"
+arch=('i686' 'x86_64')
+url="http://xmlsoft.org/XSLT/"
+license=('custom')
+depends=('libxml2>=2.7.7' 'libgcrypt>=1.4.6')
+makedepends=('python2')
+options=('!libtool')
+source=(ftp://xmlsoft.org/libxslt/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e61d0364a30146aaa3001296f853b2b9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-python=/usr/bin/python2.7
+ make
+ make DESTDIR="${pkgdir}" install
+
+ for f in pyxsltproc.py extfunc.py exslt.py extelem.py basic.py; do
+ sed -e 's|#!/usr/bin/python|#!/usr/bin/python2|' \
+ -i ${pkgdir}/usr/share/doc/libxslt-python-1.1.26/examples/${f}
+ done
+
+ install -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxss/PKGBUILD b/extra/libxss/PKGBUILD
new file mode 100644
index 000000000..a6fbca454
--- /dev/null
+++ b/extra/libxss/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97566 2010-10-31 15:57:08Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=libxss
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="X11 Screen Saver extension library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxext' 'scrnsaverproto')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXScrnSaver-${pkgver}.tar.bz2)
+sha1sums=('3c29e2222fd68e26e408234c51c6d8b2edf6ab19')
+
+build() {
+ cd "${srcdir}/libXScrnSaver-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxt/PKGBUILD b/extra/libxt/PKGBUILD
new file mode 100644
index 000000000..989e384c3
--- /dev/null
+++ b/extra/libxt/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 114251 2011-03-11 12:33:08Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxt
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 toolkit intrinsics library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libsm' 'libx11')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXt-${pkgver}.tar.bz2)
+sha1sums=('a29a97f8521bdc7a95364e163f0ce474de572ae5')
+
+build() {
+ cd "${srcdir}/libXt-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxtst/PKGBUILD b/extra/libxtst/PKGBUILD
new file mode 100644
index 000000000..bcdf92d29
--- /dev/null
+++ b/extra/libxtst/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97591 2010-10-31 16:11:54Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxtst
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 Testing -- Resource extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxext' 'libxi' 'recordproto' 'inputproto')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXtst-${pkgver}.tar.bz2)
+sha1sums=('9fb06ed599caf7f9e7115cbbfadf02b47c17aa72')
+
+build() {
+ cd "${srcdir}/libXtst-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxv/PKGBUILD b/extra/libxv/PKGBUILD
new file mode 100644
index 000000000..a06c89882
--- /dev/null
+++ b/extra/libxv/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97586 2010-10-31 16:08:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxv
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="X11 Video extension library"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxext' 'videoproto')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXv-${pkgver}.tar.bz2)
+sha1sums=('9ebb6d7936a7b247b9b0f6dc81def39a18e4214c')
+
+build() {
+ cd "${srcdir}/libXv-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxvmc/PKGBUILD b/extra/libxvmc/PKGBUILD
new file mode 100644
index 000000000..3efb46c39
--- /dev/null
+++ b/extra/libxvmc/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 87580 2010-08-17 07:10:11Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxvmc
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="X11 Video Motion Compensation extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxv>=1.0.5')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXvMC-${pkgver}.tar.bz2)
+sha1sums=('4ace7e7ce6b646b5715b2efa561affc89bc87f91')
+
+build() {
+ cd ${srcdir}/libXvMC-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+ make DESTDIR=${pkgdir} install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxxf86dga/PKGBUILD b/extra/libxxf86dga/PKGBUILD
new file mode 100644
index 000000000..c66ee69e5
--- /dev/null
+++ b/extra/libxxf86dga/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 97581 2010-10-31 16:05:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=libxxf86dga
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="X11 Direct Graphics Access extension library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxext' 'xf86dgaproto')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXxf86dga-${pkgver}.tar.bz2)
+sha1sums=('333a9f5c61eba896f420969561606551174645cd')
+
+build() {
+ cd "${srcdir}/libXxf86dga-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libxxf86vm/PKGBUILD b/extra/libxxf86vm/PKGBUILD
new file mode 100644
index 000000000..12a6f3069
--- /dev/null
+++ b/extra/libxxf86vm/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 97576 2010-10-31 16:03:53Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libxxf86vm
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 XFree86 video mode extension library"
+arch=('x86_64' 'i686')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxext' 'xf86vidmodeproto')
+makedepends=('xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXxf86vm-${pkgver}.tar.bz2)
+sha1sums=('2ff2d2b3c60a5c5c0cc4e0a18492d3b7168a03af')
+
+build() {
+ cd "${srcdir}/libXxf86vm-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/libytnef/PKGBUILD b/extra/libytnef/PKGBUILD
new file mode 100644
index 000000000..8a48bb88e
--- /dev/null
+++ b/extra/libytnef/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andre Klitzing <aklitzing () online () de>
+pkgname=libytnef
+pkgver=1.5
+pkgrel=2
+pkgdesc="Yerase's TNEF Stream Reader library (decode winmail.dat)"
+url="http://freshmeat.net/projects/ytnef/"
+license=('GPL')
+arch=(i686 x86_64)
+options=(!libtool)
+depends=('glibc')
+source=(http://downloads.sourceforge.net/ytnef/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6c44b955f33cf714c75a7bbe895cc352')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ rm -f "${pkgdir}/usr/lib/libytnef.a"
+}
diff --git a/extra/libzip/PKGBUILD b/extra/libzip/PKGBUILD
new file mode 100644
index 000000000..fd305346e
--- /dev/null
+++ b/extra/libzip/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 77453 2010-04-13 12:26:29Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=libzip
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="A C library for reading, creating, and modifying zip archives"
+url="http://www.nih.at/libzip/index.html"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('zlib')
+options=('!libtool')
+source=("http://www.nih.at/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('e5fa5d0c5d2ad4c7a0c0fc7f5a1695b9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/libzvt/PKGBUILD b/extra/libzvt/PKGBUILD
new file mode 100644
index 000000000..4c7c92cd0
--- /dev/null
+++ b/extra/libzvt/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 63415 2010-01-17 13:52:38Z jgc $
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libzvt
+pkgver=2.0.1
+pkgrel=6
+pkgdesc="Zed's virtual terminal library"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+url="http://ftp.gnome.org/pub/GNOME/sources/libzvt"
+depends=('gtk2>=2.18.6' 'libart-lgpl>=2.3.20')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(ftp://ftp.gnome.org/pub/GNOME/sources/libzvt/2.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4bbea49495a341650fa1f89908e6554e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's/-DGTK_DISABLE_DEPRECATED//g' libzvt/Makefile.* || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/licq/PKGBUILD b/extra/licq/PKGBUILD
new file mode 100644
index 000000000..a96e34f29
--- /dev/null
+++ b/extra/licq/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 81727 2010-06-02 13:16:13Z juergen $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=licq
+pkgver=1.3.9
+pkgrel=1
+pkgdesc="Advanced graphical ICQ clone and more for Unix"
+arch=('i686' 'x86_64')
+url="http://www.licq.org"
+license=('GPL')
+depends=('libxss' 'qt' 'openssl' 'boost')
+makedepends=('cmake')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/licq/licq-${pkgver}.tar.bz2)
+md5sums=('5285efd538fc5540cc85bc8979b8efae')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # licq
+ GPGME_CONFIG=/bin/false ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+ # qt4-gui
+ cd plugins/qt4-gui || return 1
+ mkdir build
+ cd build
+
+ cmake -DWITH_KDE=OFF -DCMAKE_INSTALL_PREFIX=/usr .. || return 1
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/liferea/ChangeLog b/extra/liferea/ChangeLog
new file mode 100644
index 000000000..c0861a7ae
--- /dev/null
+++ b/extra/liferea/ChangeLog
@@ -0,0 +1,143 @@
+2011-03-07 Jan Steffens <jan.steffens@gmail.com>
+
+ * liferea 1.6.5-2
+ * Add patch for libnotify-0.7
+ * Add hicolor-icon-theme dependency
+
+2010-09-29 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.6.5-1
+ * Upstream update
+
+2010-06-30 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.6.4-1
+ * Upstream update
+ * Changed libnotify depends to optdepends
+ * Tidied up package description
+
+2010-02-22 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.6.3-1
+ * Upstream update
+
+2010-01-23 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.6.2-1
+ * Upstream update
+
+2009-11-20 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.6.1-1
+ * Upstream update
+
+2009-07-26 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.6.0-1
+ * Upstream update
+ * Updated depends
+ * Added lua support
+
+2009-07-01 Jan de Groot <jgc@archlinux.org>
+
+ * liferea 1.4.28-2
+ * Rebuild for xulrunner 1.9.1
+ * Remove networkmanager dependencies
+
+2009-04-13 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.28-1
+ * Upstream update
+
+2009-03-15 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.27-1
+ * Upstream update
+
+2009-02-21 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.25-1
+ * Upstream update
+
+2009-02-01 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.24-1
+ * Upstream update
+
+2008-12-29 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.23-1
+ * Upstream update
+
+2008-11-14 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.22d-1
+ * Upstream update
+
+2008-10-27 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.20-1
+ * Forced downgrade (close FS#11899)
+
+2008-10-26 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.21b-1
+ * Upstream update
+
+2008-10-01 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.20-1
+ * Upstream update
+
+2008-09-06 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.19-1
+ * Upstream update
+
+2008-08-03 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.18-2
+ * Rebuilt against gnutls 2.4.1
+
+2008-07-28 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.18-1
+ * Upstream update
+ * Updated xulrunner 1.9 support patch
+ * Added intltool makedepends
+ * Removed force option
+
+2008-06-22 Jan de Groot <jgc@archlinux.org>
+
+ * liferea 1.4.16b-2
+ * Build with xulrunner 1.9
+ * Add patch from gentoo to fix xulrunner 1.9 support
+ * Make versioned dependencies more strict
+ * Drop dependencies covered by xulrunner 1.9
+
+2008-06-17 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.16b-1
+ * Upstream update
+ * Added force option
+
+2008-06-13 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.16-1
+ * Upstream update
+
+2008-04-17 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.15-1
+ * Upstream update
+
+2008-03-12 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.14-1
+ * Upstream update
+
+2008-03-06 Eric Belanger <eric@archlinux.org>
+
+ * liferea 1.4.13-1
+ * Upstream update
+ * Cleaned install scriptlet
diff --git a/extra/liferea/PKGBUILD b/extra/liferea/PKGBUILD
new file mode 100644
index 000000000..cbc0f1c96
--- /dev/null
+++ b/extra/liferea/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 112823 2011-03-07 01:00:08Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=liferea
+pkgver=1.6.5
+pkgrel=2
+pkgdesc="A desktop news aggregator for online news feeds and weblogs"
+arch=('i686' 'x86_64')
+url="http://liferea.sourceforge.net/"
+license=('GPL')
+depends=('gconf' 'libwebkit' 'libxslt' 'libglade' 'sqlite3' 'hicolor-icon-theme')
+makedepends=('pkg-config' 'intltool' 'lua' 'libnotify')
+optdepends=('lua: for lua scripting support'
+ 'libnotify: for notification support')
+options=('!libtool' '!emptydirs')
+install=liferea.install
+changelog=ChangeLog
+source=(http://downloads.sourceforge.net/sourceforge/liferea/liferea-${pkgver}.tar.gz
+ libnotify-0.7.patch)
+md5sums=('b5a2c0803eec5d0aff0b9ca4114eaf16'
+ 'fca97e3316c1c51e0179c4c7dcce47a2')
+sha1sums=('f24dbd0e81c5a8309f0d19853211fc02ff818477'
+ '52e53dd11a0ffe62304c4f17e80bfe1412cfbf29')
+
+build() {
+ cd "${srcdir}/liferea-${pkgver}"
+ patch -Np1 -i "$srcdir/libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-schemas-install
+ make
+}
+
+package() {
+ cd "${srcdir}/liferea-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/liferea/libnotify-0.7.patch b/extra/liferea/libnotify-0.7.patch
new file mode 100644
index 000000000..6dbbffb87
--- /dev/null
+++ b/extra/liferea/libnotify-0.7.patch
@@ -0,0 +1,21 @@
+diff -u -Nr liferea-1.6.5/src/notification/libnotify.c liferea-1.6.5-libnotify/src/notification/libnotify.c
+--- liferea-1.6.5/src/notification/libnotify.c 2009-06-20 20:33:19.000000000 +0200
++++ liferea-1.6.5-libnotify/src/notification/libnotify.c 2011-03-06 23:53:45.783336455 +0100
+@@ -150,7 +150,7 @@
+ // notify_notification_update ( n, node_get_title(node_p), labelText_now_p, NULL);
+ // notify_notification_clear_actions(n);
+
+- n = notify_notification_new (node_get_title(node_p), labelText_now_p, NULL, NULL);
++ n = notify_notification_new (node_get_title(node_p), labelText_now_p, NULL);
+
+ notify_notification_set_icon_from_pixbuf (n,node_get_icon(node_p));
+
+@@ -244,7 +244,7 @@
+
+ labelSummary_p = g_strdup_printf (ngettext ("%s has %d new / updated headline\n", "%s has %d new / updated headlines\n", item_count),
+ node_get_title (node), item_count);
+- n = notify_notification_new ( _("Feed Update"), labelSummary_p, NULL, NULL);
++ n = notify_notification_new ( _("Feed Update"), labelSummary_p, NULL);
+ g_free(labelSummary_p);
+
+ notify_notification_set_icon_from_pixbuf (n, node_get_icon (node));
diff --git a/extra/liferea/liferea.install b/extra/liferea/liferea.install
new file mode 100644
index 000000000..7d812ccdb
--- /dev/null
+++ b/extra/liferea/liferea.install
@@ -0,0 +1,22 @@
+pkgname=liferea
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/lighttpd/PKGBUILD b/extra/lighttpd/PKGBUILD
new file mode 100644
index 000000000..f8c7e2b44
--- /dev/null
+++ b/extra/lighttpd/PKGBUILD
@@ -0,0 +1,60 @@
+# $Id: PKGBUILD 115072 2011-03-16 17:59:33Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=lighttpd
+pkgver=1.4.28
+pkgrel=4
+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"
+ 'lighttpd.rc.d' 'lighttpd.logrotate.d' 'lighttpd.conf')
+md5sums=('586eb535d31ac299652495b058dd87c4'
+ 'f110637c56d360ecaecb3bf6f7918229'
+ '913e2157fa78d990c32146f387d44c2b'
+ '2803a9ee7f20409c69f1566d2d90720e')
+
+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
+}
+
+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/{run,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/extra/lighttpd/lighttpd.conf b/extra/lighttpd/lighttpd.conf
new file mode 100644
index 000000000..8e8ab69e7
--- /dev/null
+++ b/extra/lighttpd/lighttpd.conf
@@ -0,0 +1,13 @@
+# 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.pid-file = "/var/run/lighttpd/lighttpd.pid"
+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/extra/lighttpd/lighttpd.logrotate.d b/extra/lighttpd/lighttpd.logrotate.d
new file mode 100644
index 000000000..5ff32a0c5
--- /dev/null
+++ b/extra/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/extra/lighttpd/lighttpd.rc.d b/extra/lighttpd/lighttpd.rc.d
new file mode 100644
index 000000000..5f851d63e
--- /dev/null
+++ b/extra/lighttpd/lighttpd.rc.d
@@ -0,0 +1,129 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+
+get_pid_file() {
+ /usr/sbin/lighttpd -p -f /etc/lighttpd/lighttpd.conf 2>/dev/null | grep server.pid-file | cut -d= -f2
+}
+
+get_pid() {
+ local pid_file=$(get_pid_file)
+ local pid=$(pidof -o %PPID lighttpd-angel)
+ # only needed when updating from 1.4.26
+ # TODO: remove in future versions
+ local old_pid=$(pidof -o %PPID lighttpd)
+ if [ -r "${pid_file}" ]; then
+ cat "${pid_file}"
+ elif [ -n "${pid}" ]; then
+ echo "${pid}"
+ elif [ -n "${old_pid}" ]; then
+ echo "${old_pid}"
+ else
+ echo ''
+ 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
+
+ local d
+ for d in /var/{run,log,cache}/lighttpd; do
+ if [ ! -d $d ]; then
+ stat_append "(directory $d not found)"
+ stat_die
+ fi
+ done
+
+ /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
+
+ 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
+ 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
+ local pid_file=$(get_pid_file)
+ [ -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
+ ;;
+ 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|reload|restart|status}"
+esac
+
+exit 0
diff --git a/extra/link-grammar/PKGBUILD b/extra/link-grammar/PKGBUILD
new file mode 100644
index 000000000..ccbbffaf3
--- /dev/null
+++ b/extra/link-grammar/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116017 2011-03-22 15:50:13Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=link-grammar
+pkgver=4.7.4
+pkgrel=1
+pkgdesc="A Grammar Checking library"
+arch=('i686' 'x86_64')
+url="http://www.abisource.com/downloads/link-grammar/"
+license=('BSD')
+depends=('glibc')
+options=('!libtool' '!makeflags')
+source=("http://www.abisource.com/downloads/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('e90e702a953641713a1292db20677bd2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/link-grammar/LICENSE"
+}
diff --git a/extra/linux_logo/PKGBUILD b/extra/linux_logo/PKGBUILD
new file mode 100644
index 000000000..f6476dc9e
--- /dev/null
+++ b/extra/linux_logo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 84817 2010-07-04 16:35:24Z eric $
+# Maintainer: Damir Perisa <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=linux_logo
+pkgver=5.10
+pkgrel=1
+pkgdesc="Text-based logo and system information program"
+arch=('i686' 'x86_64')
+url="http://www.deater.net/weave/vmwprod/linux_logo"
+license=('GPL')
+depends=('glibc')
+source=(http://www.deater.net/weave/vmwprod/linux_logo/${pkgname}-${pkgver}.tar.gz)
+md5sums=('30d635841ba2cf630b040fadbf95377d')
+sha1sums=('0ba27d563b938fd802e424c8c116e1ea3c19aab4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX="${pkgdir}/usr" install
+}
diff --git a/extra/liquidwar/PKGBUILD b/extra/liquidwar/PKGBUILD
new file mode 100644
index 000000000..accbd157d
--- /dev/null
+++ b/extra/liquidwar/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 63784 2010-01-18 15:14:56Z ibiru $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jason Chu <jason@archlinux.org>
+# Maintainer: Jeff Mickey <jeff@archlinux.org>
+
+pkgname=liquidwar
+pkgver=5.6.4
+pkgrel=4
+pkgdesc="A unique multiplayer wargame"
+arch=('i686' 'x86_64')
+url="http://www.ufoot.org/liquidwar/"
+license=('GPL')
+depends=('allegro>=4.4.0.1')
+makedepends=('python')
+install=liquidwar.install
+source=(http://www.ufoot.org/download/$pkgname/v5/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=('6917dd1026e6685404ffbd086f8ba374')
+sha1sums=('a3006c4da9517c3af3b7bf165b2c86fa369a71c6')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ [ "$CARCH" == "x86_64" ] && EXTRAOPTS="--disable-asm"
+ ./configure --prefix=/usr --disable-doc-ps --disable-doc-pdf --disable-doc-php3 $EXTRAOPTS || return 1
+ sed -i 's|$(EXTERN_LIBS)|$(EXTERN_LIBS) -lm|' src/Makefile || return 1
+ make GAMEDIR=/usr/bin DATADIR=/usr/share/$pkgname || return 1
+ make DESTDIR="$pkgdir" DATADIR=/usr/share/$pkgname install || return 1
+ mv "$pkgdir"/usr/games/* "$pkgdir/usr/bin/"
+ rmdir "${pkgdir}/usr/games"
+}
diff --git a/extra/liquidwar/liquidwar.install b/extra/liquidwar/liquidwar.install
new file mode 100644
index 000000000..e864e83ea
--- /dev/null
+++ b/extra/liquidwar/liquidwar.install
@@ -0,0 +1,16 @@
+infodir=/usr/share/info
+file=(liquidwar.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/extra/lirc-utils/PKGBUILD b/extra/lirc-utils/PKGBUILD
new file mode 100644
index 000000000..054ccc842
--- /dev/null
+++ b/extra/lirc-utils/PKGBUILD
@@ -0,0 +1,79 @@
+# $Id: PKGBUILD 101413 2010-11-29 05:10:02Z allan $
+# Maintainer:
+# Contributor: Paul Mattal <paul@archlinux.org>
+
+pkgname=lirc-utils
+pkgver=0.9.0.pre1
+pkgrel=2
+pkgdesc="Linux Infrared Remote Control utils"
+arch=('i686' 'x86_64')
+url="http://www.lirc.org/"
+license=('GPL')
+_kernver=2.6.36-ARCH
+depends=('alsa-lib' 'libx11' 'libsm' 'python2' 'libftdi')
+makedepends=('help2man' 'kernel26-headers')
+replaces=('lirc+pctv')
+backup=('etc/conf.d/lircd.conf' 'etc/conf.d/irexec.conf')
+options=('!libtool' '!makeflags')
+source=(http://www.lirc.org/software/snapshots/lirc-0.9.0-pre1.tar.bz2
+ #"http://downloads.sourceforge.net/lirc/lirc-${pkgver}.tar.bz2"
+ lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd)
+
+build() {
+ cd "${srcdir}/lirc-0.9.0-pre1"
+
+ autoreconf
+ libtoolize
+
+ ./configure --enable-sandboxed \
+ --prefix=/usr \
+ --with-driver=all \
+ --with-kerneldir=/usr/src/linux-${_kernver} \
+ --with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
+ --with-transmitter
+ # disable parallel and bt829
+ # because of incompatibility with smp systems
+ sed -i -e "s:lirc_parallel::" -e "s:lirc_bt829::" \
+ Makefile drivers/Makefile drivers/*/Makefile tools/Makefile
+ # lirc_i2c lirc_igorplugusb lirc_imon lirc_it87 lirc_ite8709
+ # lirc_sasem lirc_serial lirc_sir lirc_ttusbir lirc_zilog
+ # because part of kernel 2.6.36 staging tree
+ sed -i -e "s:lirc_i2c::" -e "s:lirc_igorplugusb::" -e "s:lirc_imon::" \
+ -e "s:lirc_it87::" -e "s:lirc_ite8709::" -e "s:lirc_sasem::" \
+ -e "s:lirc_serial::" -e "s:lirc_sir::" -e "s:lirc_ttusbir::" \
+ -e "s:lirc_zilog::" Makefile drivers/Makefile drivers/*/Makefile tools/Makefile
+ # Disabling lirc_gpio driver as it does no longer work Kernel 2.6.22+
+ sed -i -e "s:lirc_gpio\.o::" drivers/lirc_gpio/Makefile.am
+
+ make
+}
+
+package() {
+ cd "${srcdir}/lirc-0.9.0-pre1"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/usr/share/lirc" "${pkgdir}/etc/rc.d"
+ cp "${srcdir}"/{lircd,lircmd,irexecd} "${pkgdir}/etc/rc.d"
+ cp -rp remotes "${pkgdir}/usr/share/lirc"
+ chmod -R go-w "${pkgdir}/usr/share/lirc/"
+
+ # install the logrotate config
+ install -Dm644 "${srcdir}/lirc.logrotate" "${pkgdir}/etc/logrotate.d/lirc"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/lircd.conf" "${pkgdir}/etc/conf.d/lircd.conf"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/irexec.conf" "${pkgdir}/etc/conf.d/irexec.conf"
+
+ install -d "${pkgdir}/etc/lirc"
+
+ # remove built modules
+ rm -r "${pkgdir}/lib/"
+}
+md5sums=('13ba59178adee4e6be8a9a1966ab3133'
+ '8d0e238dc0eda95e340fe570605da492'
+ '85f7fdac55e5256967241864049bf5e9'
+ '3deb02604b37811d41816e9b4385fcc3'
+ '5b1f8c9cd788a39a6283f93302ce5c6e'
+ 'f0c0ac930326168035f0c8e24357ae55'
+ '69d099e6deedfa3c1ee2b6e82d9b8bfb')
diff --git a/extra/lirc-utils/irexec.conf b/extra/lirc-utils/irexec.conf
new file mode 100644
index 000000000..f911c7515
--- /dev/null
+++ b/extra/lirc-utils/irexec.conf
@@ -0,0 +1,5 @@
+#
+# Parameters for irexec daemon (path to lircrc)
+#
+
+IREXEC_OPTS="" \ No newline at end of file
diff --git a/extra/lirc-utils/irexecd b/extra/lirc-utils/irexecd
new file mode 100755
index 000000000..a64b033a5
--- /dev/null
+++ b/extra/lirc-utils/irexecd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/irexec.conf
+
+PID=`pidof -o %PPID /usr/bin/irexec`
+case "$1" in
+ start)
+ stat_busy "Starting IREXEC Daemon"
+ [ -z "$PID" ] && /usr/bin/irexec --daemon $IREXEC_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon irexecd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping IREXEC Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon irexecd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/extra/lirc-utils/lirc.logrotate b/extra/lirc-utils/lirc.logrotate
new file mode 100644
index 000000000..623c4f328
--- /dev/null
+++ b/extra/lirc-utils/lirc.logrotate
@@ -0,0 +1,5 @@
+/var/log/lircd {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/extra/lirc-utils/lircd b/extra/lirc-utils/lircd
new file mode 100755
index 000000000..e9739b36e
--- /dev/null
+++ b/extra/lirc-utils/lircd
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/lircd.conf
+
+PID=$(pidof -o %PPID /usr/sbin/lircd)
+LIRCD_SYMLINKFILE=/dev/lircd
+LIRCD_SOCKET=/var/run/lirc/lircd
+case "$1" in
+ start)
+ stat_busy "Starting LIRC Daemon"
+ [ ! -d /var/run/lirc ] && install -d /var/run/lirc &>/dev/null
+ rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE
+ if [ $? -ne 0 ]; then
+ stat_fail
+ exit 0
+ fi
+ [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
+ [ -z "$PID" ] &&
+ if [ -n "$LIRC_DEVICE" ] ; then
+ eval /usr/sbin/lircd -d "$LIRC_DEVICE" $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ else
+ /usr/sbin/lircd $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ fi
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping LIRC Daemon"
+ rm -f $LIRCD_SYMLINKFILE
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 start|stop|restart"
+esac
+exit 0
diff --git a/extra/lirc-utils/lircd.conf b/extra/lirc-utils/lircd.conf
new file mode 100644
index 000000000..760dab065
--- /dev/null
+++ b/extra/lirc-utils/lircd.conf
@@ -0,0 +1,8 @@
+#
+# Parameters for lirc daemon
+#
+
+LIRC_DEVICE="/dev/lirc0"
+LIRC_DRIVER=""
+LIRC_EXTRAOPTS=""
+LIRC_CONFIGFILE=""
diff --git a/extra/lirc-utils/lircmd b/extra/lirc-utils/lircmd
new file mode 100755
index 000000000..220c47c9c
--- /dev/null
+++ b/extra/lirc-utils/lircmd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/lircmd`
+case "$1" in
+ start)
+ stat_busy "Starting lircmd Daemon"
+ [ -z "$PID" ] && /usr/sbin/lircmd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircmd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping lircmd Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircmd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/lirc/PKGBUILD b/extra/lirc/PKGBUILD
new file mode 100644
index 000000000..852ac5af2
--- /dev/null
+++ b/extra/lirc/PKGBUILD
@@ -0,0 +1,89 @@
+# $Id: PKGBUILD 117640 2011-04-04 14:38:36Z jgc $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgbase=lirc
+pkgname=('lirc' 'lirc-utils')
+pkgver=0.9.0
+pkgrel=1
+_kernver=2.6.37-ARCH
+arch=('i686' 'x86_64')
+url="http://www.lirc.org/"
+license=('GPL')
+makedepends=('help2man' 'kernel26-headers>=2.6.37' 'kernel26-headers<2.6.38' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python' 'namcap')
+options=('!makeflags' '!strip')
+source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2
+ lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd)
+md5sums=('b232aef26f23fe33ea8305d276637086'
+ '8d0e238dc0eda95e340fe570605da492'
+ '85f7fdac55e5256967241864049bf5e9'
+ '3deb02604b37811d41816e9b4385fcc3'
+ '5b1f8c9cd788a39a6283f93302ce5c6e'
+ 'f0c0ac930326168035f0c8e24357ae55'
+ '69d099e6deedfa3c1ee2b6e82d9b8bfb')
+
+build() {
+ cd "${srcdir}/lirc-${pkgver}"
+
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ sed -e 's/@X_CFLAGS@//g' \
+ -e 's/@X_LIBS@//g' \
+ -e 's/@X_PRE_LIBS@//g' \
+ -e 's/@X_EXTRA_LIBS@//g' -i Makefile.am tools/Makefile.am
+ libtoolize
+ autoreconf
+
+ PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \
+ --with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \
+ --with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
+ --with-transmitter
+
+ # Remove drivers already in kernel
+ sed -e "s:lirc_dev::" -e "s:lirc_bt829::" -e "s:lirc_igorplugusb::" \
+ -e "s:lirc_imon::" -e "s:lirc_parallel::" -e "s:lirc_sasem::" \
+ -e "s:lirc_serial::" -e "s:lirc_sir::" -e "s:lirc_ttusbir::" \
+ -i Makefile drivers/Makefile drivers/*/Makefile tools/Makefile
+ make
+}
+
+package_lirc() {
+ pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
+ depends=('lirc-utils' 'kernel26>=2.6.37' 'kernel26<2.6.38')
+ replaces=('lirc+pctv')
+ install=lirc.install
+
+ cd "${srcdir}/lirc-${pkgver}/drivers"
+ make DESTDIR="${pkgdir}" install
+
+ # set the kernel we've built for inside the install script
+ sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" "${startdir}/lirc.install"
+ # gzip -9 modules
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+}
+
+package_lirc-utils() {
+ pkgdesc="Linux Infrared Remote Control utils"
+ depends=('alsa-lib' 'libx11' 'libftdi' 'libirman')
+ optdepends=('python2: pronto2lirc utility')
+ options=('strip' '!libtool')
+
+ cd "${srcdir}/lirc-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/usr/share/lirc" "${pkgdir}/etc/rc.d"
+ cp "${srcdir}"/{lircd,lircmd,irexecd} "${pkgdir}/etc/rc.d"
+ cp -rp remotes "${pkgdir}/usr/share/lirc"
+ chmod -R go-w "${pkgdir}/usr/share/lirc/"
+
+ # install the logrotate config
+ install -Dm644 "${srcdir}/lirc.logrotate" "${pkgdir}/etc/logrotate.d/lirc"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/lircd.conf" "${pkgdir}/etc/conf.d/lircd.conf"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/irexec.conf" "${pkgdir}/etc/conf.d/irexec.conf"
+
+ install -d "${pkgdir}/etc/lirc"
+
+ # remove built modules
+ rm -r "${pkgdir}/lib/"
+}
diff --git a/extra/lirc/irexec.conf b/extra/lirc/irexec.conf
new file mode 100644
index 000000000..f911c7515
--- /dev/null
+++ b/extra/lirc/irexec.conf
@@ -0,0 +1,5 @@
+#
+# Parameters for irexec daemon (path to lircrc)
+#
+
+IREXEC_OPTS="" \ No newline at end of file
diff --git a/extra/lirc/irexecd b/extra/lirc/irexecd
new file mode 100755
index 000000000..a64b033a5
--- /dev/null
+++ b/extra/lirc/irexecd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/irexec.conf
+
+PID=`pidof -o %PPID /usr/bin/irexec`
+case "$1" in
+ start)
+ stat_busy "Starting IREXEC Daemon"
+ [ -z "$PID" ] && /usr/bin/irexec --daemon $IREXEC_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon irexecd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping IREXEC Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon irexecd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/extra/lirc/lirc.install b/extra/lirc/lirc.install
new file mode 100644
index 000000000..61151ecf5
--- /dev/null
+++ b/extra/lirc/lirc.install
@@ -0,0 +1,16 @@
+KERNEL_VERSION=2.6.38-ARCH
+
+post_install() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_upgrade() {
+ post_install
+}
+
+# arg 1: the old package version
+post_remove() {
+ post_install
+}
diff --git a/extra/lirc/lirc.logrotate b/extra/lirc/lirc.logrotate
new file mode 100644
index 000000000..623c4f328
--- /dev/null
+++ b/extra/lirc/lirc.logrotate
@@ -0,0 +1,5 @@
+/var/log/lircd {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/extra/lirc/lircd b/extra/lirc/lircd
new file mode 100755
index 000000000..e9739b36e
--- /dev/null
+++ b/extra/lirc/lircd
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/lircd.conf
+
+PID=$(pidof -o %PPID /usr/sbin/lircd)
+LIRCD_SYMLINKFILE=/dev/lircd
+LIRCD_SOCKET=/var/run/lirc/lircd
+case "$1" in
+ start)
+ stat_busy "Starting LIRC Daemon"
+ [ ! -d /var/run/lirc ] && install -d /var/run/lirc &>/dev/null
+ rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE
+ if [ $? -ne 0 ]; then
+ stat_fail
+ exit 0
+ fi
+ [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
+ [ -z "$PID" ] &&
+ if [ -n "$LIRC_DEVICE" ] ; then
+ eval /usr/sbin/lircd -d "$LIRC_DEVICE" $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ else
+ /usr/sbin/lircd $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ fi
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping LIRC Daemon"
+ rm -f $LIRCD_SYMLINKFILE
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 start|stop|restart"
+esac
+exit 0
diff --git a/extra/lirc/lircd.conf b/extra/lirc/lircd.conf
new file mode 100644
index 000000000..760dab065
--- /dev/null
+++ b/extra/lirc/lircd.conf
@@ -0,0 +1,8 @@
+#
+# Parameters for lirc daemon
+#
+
+LIRC_DEVICE="/dev/lirc0"
+LIRC_DRIVER=""
+LIRC_EXTRAOPTS=""
+LIRC_CONFIGFILE=""
diff --git a/extra/lirc/lircmd b/extra/lirc/lircmd
new file mode 100755
index 000000000..220c47c9c
--- /dev/null
+++ b/extra/lirc/lircmd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/lircmd`
+case "$1" in
+ start)
+ stat_busy "Starting lircmd Daemon"
+ [ -z "$PID" ] && /usr/sbin/lircmd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircmd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping lircmd Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircmd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/live-media/PKGBUILD b/extra/live-media/PKGBUILD
new file mode 100644
index 000000000..072ef473a
--- /dev/null
+++ b/extra/live-media/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 116022 2011-03-22 15:58:44Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gilles CHAUVIN <gcnweb@gmail.com>
+
+pkgname=live-media
+pkgver=2011.03.14
+pkgrel=1
+pkgdesc="A set of C++ libraries for multimedia streaming"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://live555.com/liveMedia"
+depends=('gcc-libs')
+source=("http://live555.com/liveMedia/public/live.${pkgver}.tar.gz")
+md5sums=('ff65b2c598e970b4b6c8219a1811de00')
+
+build() {
+ cd ${srcdir}/live
+
+ sed \
+ -e 's/$(INCLUDES) -I. -O2 -DSOCKLEN_T/$(INCLUDES) -I. -O2 -I. -fPIC -DSOCKLEN_T/g' \
+ -e 's/\(LIBRARY_LINK =\).*/\1 $(LD) -o/g' \
+ -e 's/\(LIBRARY_LINK_OPTS =\).*/\1 $(LINK_OPTS) -r -Bstatic/g' \
+ -i config.linux
+ ./genMakefiles linux
+ make
+}
+
+package() {
+ cd ${srcdir}/live
+
+ for dir in BasicUsageEnvironment UsageEnvironment groupsock liveMedia; do
+ mkdir -p ${pkgdir}/usr/lib/live/${dir}
+ cp -r ${dir}/*.a ${dir}/include ${pkgdir}/usr/lib/live/${dir}
+ done
+
+ mkdir -p ${pkgdir}/usr/bin
+ for testprog in `find testProgs -type f -perm 755`; do
+ install ${testprog} ${pkgdir}/usr/bin
+ done
+}
diff --git a/extra/lm_sensors/PKGBUILD b/extra/lm_sensors/PKGBUILD
new file mode 100644
index 000000000..105c9f1b5
--- /dev/null
+++ b/extra/lm_sensors/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 117144 2011-03-29 01:07:42Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=lm_sensors
+pkgver=3.3.0
+pkgrel=1
+pkgdesc="Collection of user space tools for general SMBus access and hardware monitoring"
+arch=('i686' 'x86_64')
+url="http://www.lm-sensors.org/"
+license=('GPL' 'LGPL')
+depends=('perl' 'sysfsutils' 'rrdtool')
+backup=('etc/sensors3.conf' 'etc/conf.d/healthd' 'etc/conf.d/sensord')
+options=('!emptydirs')
+source=(http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-${pkgver}.tar.bz2 \
+ sensors.rc fancontrol.rc sensors-detect.patch healthd healthd.conf healthd.rc \
+ sensord.conf sensord.rc daemonarg.patch)
+md5sums=('5eb18d7531ead4f54f28a1133a606535'
+ 'c370f5e620bfe41113354a1e22c0c18c'
+ '232bedf043dd5dedde82df1a399c682c'
+ '47c40b381d1f25d6634ae84cecf35f33'
+ '6549050897c237514aeaa2bb6cfd29ea'
+ 'f8af587038b0e2a89c441f7eeaa5e640'
+ '970408d2e509dc4138927020efefe323'
+ '96a8dd468e81d455ec9b165bdf33e0b7'
+ '41a5c20854bbff00ea7174bd2276b736'
+ '40c8eb16af8249a0f1d851fc1057ea15')
+sha1sums=('16c13a186557164fa51459a02209b120c0335f96'
+ 'b2e664b9b87759991f02d0a1e8cac5e95098c0a5'
+ 'a068ac0a3115a6191a487e11422506baa922b40a'
+ '47095a32a918d6be50bd8daa8aaa9c24940d60e9'
+ '78b5cd36c3cb8e98b972cdd8c4a12687d79a79a8'
+ '6c4e8a2d89dd2fd3ca2f0f4f3b1230111e01b0fc'
+ 'e662881f5d3f3f35a1bc97ba45d2c471dd28c37f'
+ 'de8d4d65406815c389f8a04e2a8508a1ae6749c8'
+ '72a60251d1d55a67307dab4105d9f3f01a080af4'
+ '34241388c4001bfb6e49b7e10da1217e29a258d6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../sensors-detect.patch
+ patch -p1 < ../daemonarg.patch
+ make PREFIX=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PROG_EXTRA=sensord BUILD_STATIC_LIB=0 \
+ PREFIX=/usr MANDIR=/usr/share/man DESTDIR="${pkgdir}" install
+ install -D -m755 "${srcdir}/sensors.rc" "${pkgdir}/etc/rc.d/sensors"
+ install -D -m755 "${srcdir}/fancontrol.rc" "${pkgdir}/etc/rc.d/fancontrol"
+ install -D -m755 "${srcdir}/healthd" "${pkgdir}/usr/sbin/healthd"
+ install -D -m755 "${srcdir}/healthd.rc" "${pkgdir}/etc/rc.d/healthd"
+ install -D -m644 "${srcdir}/healthd.conf" "${pkgdir}/etc/conf.d/healthd"
+ install -D -m755 "${srcdir}/sensord.rc" "${pkgdir}/etc/rc.d/sensord"
+ install -D -m644 "${srcdir}/sensord.conf" "${pkgdir}/etc/conf.d/sensord"
+}
diff --git a/extra/lm_sensors/daemonarg.patch b/extra/lm_sensors/daemonarg.patch
new file mode 100644
index 000000000..4b80cef19
--- /dev/null
+++ b/extra/lm_sensors/daemonarg.patch
@@ -0,0 +1,50 @@
+diff -ru lm_sensors-3.1.2-1/prog/pwm/fancontrol lm_sensors-3.1.2-1_pyropeter/usr/sbin/fancontrol
+--- lm_sensors-3.1.2-1/prog/pwm/fancontrol 2010-02-03 03:45:15.000000000 +0100
++++ lm_sensors-3.1.2-1_pyropeter/prog/pwm/fancontrol 2010-03-07 01:37:09.000000000 +0100
+@@ -5,7 +5,9 @@
+ #
+ # Version 0.70
+ #
+-# Usage: fancontrol [CONFIGFILE]
++# Usage: fancontrol [-D] [CONFIGFILE]
++#
++# (-D causes fancontrol to 'fork' to the background after some tests)
+ #
+ # Dependencies:
+ # bash, egrep, sed, cut, sleep, readlink, lm_sensors :)
+@@ -43,6 +45,12 @@
+ #DEBUG=1
+ MAX=255
+
++DAEMON=0
++if [ "$1" = "-D" ]; then
++ DAEMON=1
++ shift
++fi
++
+ declare -i pwmval
+
+ function LoadConfig {
+@@ -303,7 +311,6 @@
+ echo "File $PIDFILE exists, is fancontrol already running?"
+ exit 1
+ fi
+-echo $$ > "$PIDFILE"
+
+ # $1 = pwm file name
+ function pwmdisable()
+@@ -475,6 +482,14 @@
+ let fcvcount=$fcvcount+1
+ done
+
++if [ "$DAEMON" -gt 0 ]; then
++ echo "Forking..."
++ $0 $* &> /dev/null &
++ exit 0
++fi
++
++echo $$ > "$PIDFILE"
++
+ echo 'Starting automatic fan control...'
+
+ # main loop calling the main function at specified intervals
diff --git a/extra/lm_sensors/fancontrol.rc b/extra/lm_sensors/fancontrol.rc
new file mode 100644
index 000000000..8e98d06f2
--- /dev/null
+++ b/extra/lm_sensors/fancontrol.rc
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID -x /usr/sbin/fancontrol)
+case "$1" in
+ start)
+ stat_busy "Starting fancontrol"
+ [ -z "$PID" ] && /usr/sbin/fancontrol -D &>/dev/null
+ if [ $? -gt 0 -o -n "$PID" ]; then
+ stat_fail
+ else
+ add_daemon fancontrol
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping fancontrol"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon fancontrol
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/lm_sensors/healthd b/extra/lm_sensors/healthd
new file mode 100644
index 000000000..0315dd788
--- /dev/null
+++ b/extra/lm_sensors/healthd
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+#
+# /usr/sbin/healthd
+#
+
+. /etc/conf.d/healthd
+
+cmd="${ALARM_CMD}"
+addr="${ADMIN_EMAIL}"
+slp="${ALARM_SLEEP}"
+sensors="/usr/bin/sensors"
+
+
+while [ $# -gt 0 ] ; do
+ case "${1}" in
+ -c ) cmd="${2}" ; shift 2 ;;
+ -m ) addr="${2}" ; shift 2 ;;
+ -s ) slp="${2}" ; shift 2 ;;
+ * ) shift 1 ;;
+ esac
+done
+
+[ -n "${cmd}" ] && [ -n "$( which -- "${cmd%% *}" )" ] || \
+ [ -n "${addr}" ] || exit 1
+
+[ "${slp}" -ge 2 ] || slp=600
+
+while true ; do
+ sleep 15
+ message="$( $sensors )"
+ case "$message" in
+ '' ) message='Could not get any sensor values !' ;;
+ *ALARM* ) : ;;
+ * ) message='' ;;
+ esac
+ if [ -n "$message" ]; then
+ if [ -n "${addr}" ]; then
+ echo "$message" | mail -s \
+ "Sensors ALARM detected at host: $( hostname )" \
+ "${addr}"
+ fi
+ [ -z "${cmd}" ] || ${cmd} &
+ sleep ${slp}
+ fi
+done &
diff --git a/extra/lm_sensors/healthd.conf b/extra/lm_sensors/healthd.conf
new file mode 100644
index 000000000..a8b2c3fa3
--- /dev/null
+++ b/extra/lm_sensors/healthd.conf
@@ -0,0 +1,17 @@
+#
+# /etc/conf.d/healthd
+#
+
+# reset any pending alarms on startup
+ALARM_RESET="yes"
+
+# where to sent mails on alarm
+ADMIN_EMAIL="root"
+
+# Seconds to sleep when alarm detected before checking again
+# If you want to fill up your mail inbox set this to 2. ;-)
+ALARM_SLEEP=600
+
+# command to run in background on each alarm
+# N.B.: If you choose to use the beep command, you'll need to install it: pacman -S beep
+ALARM_CMD="beep -f 800 -l 500 -d 500 -r 600"
diff --git a/extra/lm_sensors/healthd.rc b/extra/lm_sensors/healthd.rc
new file mode 100644
index 000000000..7bb79519f
--- /dev/null
+++ b/extra/lm_sensors/healthd.rc
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+#
+# /etc/rc.d/healthd
+#
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/healthd
+
+maybe_alarm_reset() {
+ case "${ALARM_RESET}" in
+ yes) /usr/bin/sensors > /dev/null
+ ;;
+ no) true
+ ;;
+ *) false
+ esac
+ return $?
+}
+
+PID=$(pidof -x -o %PPID /usr/sbin/healthd)
+case "${1}" in
+ start)
+ stat_busy "Starting Health Daemon"
+ [ -z "${PID}" ] && maybe_alarm_reset && /usr/sbin/healthd &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo "${PID}" > /var/run/healthd.pid
+ add_daemon healthd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Health Daemon"
+ [ ! -z "${PID}" ] && kill ${PID} &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon healthd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *) echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/lm_sensors/sensord.conf b/extra/lm_sensors/sensord.conf
new file mode 100644
index 000000000..a1cf091c1
--- /dev/null
+++ b/extra/lm_sensors/sensord.conf
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to sensord
+#
+SENSORD_ARGS=""
diff --git a/extra/lm_sensors/sensord.rc b/extra/lm_sensors/sensord.rc
new file mode 100644
index 000000000..e3ef4d26d
--- /dev/null
+++ b/extra/lm_sensors/sensord.rc
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/sensord
+
+PID=$(pidof -o %PPID /usr/sbin/sensord)
+case "$1" in
+ start)
+ stat_busy "Starting sensord"
+ [ -z "$PID" ] && /usr/sbin/sensord ${SENSORD_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon sensord
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping sensord"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon sensord
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/lm_sensors/sensors-detect.patch b/extra/lm_sensors/sensors-detect.patch
new file mode 100644
index 000000000..1d12a2ce9
--- /dev/null
+++ b/extra/lm_sensors/sensors-detect.patch
@@ -0,0 +1,61 @@
+diff -Naur lm_sensors-3.1.0/prog/detect/sensors-detect lm_sensors-3.1.0-new/prog/detect/sensors-detect
+--- lm_sensors-3.1.0/prog/detect/sensors-detect 2009-03-03 20:36:33.000000000 -0500
++++ lm_sensors-3.1.0-new/prog/detect/sensors-detect 2009-03-03 20:52:06.000000000 -0500
+@@ -5282,21 +5282,21 @@
+ }
+ }
+
+- my $have_sysconfig = -d '/etc/sysconfig';
+- printf "Do you want to \%s /etc/sysconfig/lm_sensors? (\%s): ",
+- (-e '/etc/sysconfig/lm_sensors' ? 'overwrite' : 'generate'),
++ my $have_sysconfig = -d '/etc/conf.d';
++ printf "Do you want to \%s /etc/conf.d/lm_sensors? (\%s): ",
++ (-e '/etc/conf.d/lm_sensors' ? 'overwrite' : 'generate'),
+ ($have_sysconfig ? 'YES/no' : 'yes/NO');
+ $_ = <STDIN>;
+ if (($have_sysconfig and not m/^\s*n/i) or m/^\s*y/i) {
+ unless ($have_sysconfig) {
+- mkdir('/etc/sysconfig', 0777)
+- or die "Sorry, can't create /etc/sysconfig ($!)";
++ mkdir('/etc/conf.d', 0777)
++ or die "Sorry, can't create /etc/conf.d ($!)";
+ }
+- open(local *SYSCONFIG, ">/etc/sysconfig/lm_sensors")
+- or die "Sorry, can't create /etc/sysconfig/lm_sensors ($!)";
++ open(local *SYSCONFIG, ">/etc/conf.d/lm_sensors")
++ or die "Sorry, can't create /etc/conf.d/lm_sensors ($!)";
+ print SYSCONFIG "# Generated by sensors-detect on " . scalar localtime() . "\n";
+ print SYSCONFIG <<'EOT';
+-# This file is sourced by /etc/init.d/lm_sensors and defines the modules to
++# This file is sourced by /etc/rc.d/lm_sensors and defines the modules to
+ # be loaded/unloaded.
+ #
+ # The format of this file is a shell script that simply defines variables:
+@@ -5322,13 +5322,13 @@
+ }
+ close(SYSCONFIG);
+
+- print "Copy prog/init/lm_sensors.init to /etc/init.d/lm_sensors\n".
++ print "Copy prog/init/lm_sensors.init to /etc/rc.d/lm_sensors\n".
+ "for initialization at boot time.\n"
+- unless -f "/etc/init.d/lm_sensors";
++ unless -f "/etc/rc.d/lm_sensors";
+
+- if (-x "/sbin/insserv" && -f "/etc/init.d/lm_sensors") {
+- system("/sbin/insserv", "/etc/init.d/lm_sensors");
+- } elsif (-x "/sbin/chkconfig" && -f "/etc/init.d/lm_sensors") {
++ if (-x "/sbin/insserv" && -f "/etc/rc.d/lm_sensors") {
++ system("/sbin/insserv", "/etc/rc.d/lm_sensors");
++ } elsif (-x "/sbin/chkconfig" && -f "/etc/rc.d/lm_sensors") {
+ system("/sbin/chkconfig", "lm_sensors", "on");
+ if (-x "/sbin/service") {
+ system("/sbin/service", "lm_sensors", "start");
+@@ -5377,7 +5377,7 @@
+ exit -1;
+ }
+
+- if (-x "/sbin/service" && -f "/etc/init.d/lm_sensors" &&
++ if (-x "/sbin/service" && -f "/etc/rc.d/sensors" &&
+ -f "/var/lock/subsys/lm_sensors") {
+ system("/sbin/service", "lm_sensors", "stop");
+ }
diff --git a/extra/lm_sensors/sensors.rc b/extra/lm_sensors/sensors.rc
new file mode 100644
index 000000000..4acde2202
--- /dev/null
+++ b/extra/lm_sensors/sensors.rc
@@ -0,0 +1,119 @@
+#!/bin/bash
+
+# description: sensors is used for monitoring motherboard sensor values.
+# config: /etc/conf.d/lm_sensors
+
+# See also the lm_sensors homepage at:
+# http://www2.lm-sensors.nu/~lm78/index.html
+
+# It uses a config file /etc/conf.d/lm_sensors that contains the modules to
+# be loaded/unloaded. That file is sourced into this one.
+
+# The format of that file a shell script that simply defines the modules
+# in order as normal shell variables with the special names:
+# MODULE_1, MODULE_2, MODULE_3, etc.
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PSENSORS=/usr/bin/sensors
+
+if $(grep -q sysfs /proc/mounts); then
+ WITHSYS=1
+else
+ WITHSYS=0
+fi
+
+if [ $WITHSYS == "0" ]; then
+ # If sensors isn't supported by the kernel, try loading the module...
+ [ -e /proc/sys/dev/sensors ] || /sbin/modprobe i2c-proc &>/dev/null
+
+ # Don't bother if /proc/sensors still doesn't exist, kernel doesn't have support for sensors.
+ if ! [ -e /proc/sys/dev/sensors ]; then
+ echo "lm_sensors: kernel does not have sensors support"
+ stat_fail
+ fi
+
+ # If sensors was not already running, unload the module...
+ [ -e /var/run/daemons/sensors ] || /sbin/modprobe -r i2c-proc &>/dev/null
+fi
+
+if [ -e /etc/conf.d/lm_sensors ]; then
+ CONFIG=/etc/conf.d/lm_sensors
+elif [ -e /etc/sysconfig/lm_sensors ]; then
+ # Moving config to new Arch-specific location
+ mv /etc/sysconfig/lm_sensors /etc/conf.d/lm_sensors
+ CONFIG=/etc/conf.d/lm_sensors
+fi
+
+case "$1" in
+ start)
+ stat_busy "Starting Up Sensors"
+
+ if [ -r "$CONFIG" ]; then
+ . "$CONFIG"
+ modules=$(grep \^MODULE_ $CONFIG | wc -l | tr -d ' ')
+ i=0
+ while [ $i -lt $modules ] ; do
+ module=$(eval echo '$'MODULE_$i)
+ # echo starting module __${module}__ #debug
+ /sbin/modprobe $module &>/dev/null
+ i=$(expr $i + 1)
+ done
+ fi
+
+ $PSENSORS -s
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon sensors
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Shutting Down Sensors"
+
+ if [ -r "$CONFIG" ]; then
+ . "$CONFIG"
+ modules=$(grep \^MODULE_ $CONFIG | wc -l | tr -d ' ')
+ i=$(expr $modules - 1)
+ while [ $i -ge 0 ] ; do
+ module=$(eval echo '$'MODULE_$i)
+ # echo stoping module __${module}__ #debug
+ /sbin/modprobe -r $module &>/dev/null
+ i=$(expr $i - 1)
+ done
+ fi
+
+ if [ $WITHSYS == "0" ]; then
+ /sbin/modprobe -r i2c-proc &>/dev/null
+ fi
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon sensors
+ stat_done
+ fi
+ ;;
+
+ status)
+ $PSENSORS
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ condrestart)
+ [ -e /var/run/daemons/sensors ] && $0 restart || :
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|restart|status|condrestart}"
+esac
+exit 0
diff --git a/extra/loudmouth/01-fix-sasl-md5-digest-uri.patch b/extra/loudmouth/01-fix-sasl-md5-digest-uri.patch
new file mode 100644
index 000000000..5bca69c0c
--- /dev/null
+++ b/extra/loudmouth/01-fix-sasl-md5-digest-uri.patch
@@ -0,0 +1,24 @@
+diff --git a/loudmouth/lm-connection.c b/loudmouth/lm-connection.c
+index 21c1bc2..ae8de94 100644
+--- a/loudmouth/lm-connection.c
++++ b/loudmouth/lm-connection.c
+@@ -1441,11 +1441,18 @@ lm_connection_authenticate (LmConnection *connection,
+ connection->effective_jid = g_strdup_printf ("%s/%s",
+ connection->jid, connection->resource);
+
+ if (connection->use_sasl) {
++ gchar *domain = NULL;
++
++ if (!connection_get_server_from_jid (connection->jid, &domain)) {
++ domain = g_strdup (connection->server);
++ }
++
+ lm_sasl_authenticate (connection->sasl,
+ username, password,
+- connection->server,
++ domain,
+ connection_sasl_auth_finished);
++ g_free (domain);
+
+ connection->features_cb =
+ lm_message_handler_new (connection_features_cb,
diff --git a/extra/loudmouth/03-drop-stanzas-on-fail.patch b/extra/loudmouth/03-drop-stanzas-on-fail.patch
new file mode 100644
index 000000000..87b86a998
--- /dev/null
+++ b/extra/loudmouth/03-drop-stanzas-on-fail.patch
@@ -0,0 +1,45 @@
+From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+Date: Tue, 13 Jan 2009 11:28:44 +0000
+Subject: [PATCH] Drop stanzas when failing to convert them to LmMessages
+
+when a stanza comes in that for some reason can't be parsed into an LmMessage,
+just drop them on the floor instead of blocking the parser. I've seen this
+issue happen in practise because some (buggy?) client sending an iq with a
+prefix e.g. <client:iq xmlns:client="jabber:client" ... />
+---
+ loudmouth/lm-parser.c | 15 ++++++---------
+ 1 files changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/loudmouth/lm-parser.c b/loudmouth/lm-parser.c
+index 1938d56..89f6675 100644
+--- a/loudmouth/lm-parser.c
++++ b/loudmouth/lm-parser.c
+@@ -151,19 +151,16 @@ parser_end_node_cb (GMarkupParseContext *context,
+ if (!m) {
+ g_warning ("Couldn't create message: %s\n",
+ parser->cur_root->name);
+- return;
+- }
+-
+- g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER,
++ } else {
++ g_log (LM_LOG_DOMAIN, LM_LOG_LEVEL_PARSER,
+ "Have a new message\n");
+- if (parser->function) {
+- (* parser->function) (parser, m, parser->user_data);
++ if (parser->function) {
++ (* parser->function) (parser, m, parser->user_data);
++ }
++ lm_message_unref (m);
+ }
+
+- lm_message_unref (m);
+ lm_message_node_unref (parser->cur_root);
+-
+-
+ parser->cur_node = parser->cur_root = NULL;
+ } else {
+ LmMessageNode *tmp_node;
+--
+1.5.6.5
+
diff --git a/extra/loudmouth/04-use-pkg-config-for-gnutls.patch b/extra/loudmouth/04-use-pkg-config-for-gnutls.patch
new file mode 100644
index 000000000..20f388e89
--- /dev/null
+++ b/extra/loudmouth/04-use-pkg-config-for-gnutls.patch
@@ -0,0 +1,23 @@
+Description: use pkg-config to detect gnutls
+Debian: http://bugs.debian.org/529835
+Origin: http://groups.google.com/group/loudmouth-dev/browse_thread/thread/3f78255837048daf#
+
+--- a/configure.ac.orig 2009-08-16 20:29:36.000000000 +0200
++++ b/configure.ac 2009-08-16 20:30:43.000000000 +0200
+@@ -146,10 +146,12 @@ AC_ARG_WITH(openssl-libs,
+ enable_ssl=no
+ if test "x$ac_ssl" = "xgnutls"; then
+ dnl Look for GnuTLS
+- AM_PATH_LM_LIBGNUTLS($GNUTLS_REQUIRED, have_libgnutls=yes, have_libgnutls=no)
+- if test "x$have_libgnutls" = "xyes"; then
+- CFLAGS="$CFLAGS $LIBGNUTLS_CFLAGS"
+- LIBS="$LIBS $LIBGNUTLS_LIBS"
++ PKG_CHECK_MODULES(GNUTLS, gnutls >= $GNUTLS_REQUIRED, have_gnutls=yes, have_gnutls=no)
++ if test "x$have_gnutls" = "xyes"; then
++ AC_SUBST(ASYNCNS_CFLAGS)
++ AC_SUBST(ASYNCNS_LIBS)
++ CFLAGS="$CFLAGS $GNUTLS_CFLAGS"
++ LIBS="$LIBS $GNUTLS_LIBS"
+ AC_DEFINE(HAVE_GNUTLS, 1, [whether to use GnuTSL support.])
+ enable_ssl=GnuTLS
+ else
diff --git a/extra/loudmouth/PKGBUILD b/extra/loudmouth/PKGBUILD
new file mode 100644
index 000000000..ad508d66e
--- /dev/null
+++ b/extra/loudmouth/PKGBUILD
@@ -0,0 +1,35 @@
+ $Id: PKGBUILD,v 1.3 2003/11/06 08:27:17 dorphell Exp
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Brice Carpentier <brice.carpentier@orange.fr>
+
+pkgname=loudmouth
+pkgver=1.4.3
+pkgrel=2
+pkgdesc="A lightweight Jabber client library written in C/Glib"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://groups.google.com/group/loudmouth-dev"
+depends=('glib2>=2.24.1' 'gnutls>=2.8.6' 'libidn>=1.16')
+options=('!libtool')
+makedepends=('intltool' 'pkgconfig' 'gtk-doc')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.4/${pkgname}-${pkgver}.tar.bz2
+ 01-fix-sasl-md5-digest-uri.patch
+ 03-drop-stanzas-on-fail.patch
+ 04-use-pkg-config-for-gnutls.patch)
+md5sums=('55339ca42494690c3942ee1465a96937'
+ 'dc799cea18b24847b1e008c7424010a3'
+ 'b7b2d81b01a5eee5fd5e21cae67b4af7'
+ 'bffb25b9551df43255fe1706588582f3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/01-fix-sasl-md5-digest-uri.patch"
+ patch -Np1 -i "${srcdir}/03-drop-stanzas-on-fail.patch"
+ patch -Np1 -i "${srcdir}/04-use-pkg-config-for-gnutls.patch"
+ libtoolize --force
+ autoreconf
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/lpsolve/PKGBUILD b/extra/lpsolve/PKGBUILD
new file mode 100644
index 000000000..d956a516f
--- /dev/null
+++ b/extra/lpsolve/PKGBUILD
@@ -0,0 +1,36 @@
+ # $Id: PKGBUILD 51162 2009-09-05 13:45:34Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+pkgname=lpsolve
+_origname=lp_solve
+pkgver=5.5.2.0
+_mainver=5.5
+pkgrel=1
+pkgdesc="a Mixed Integer Linear Programming (MILP) solver"
+arch=('i686' 'x86_64')
+url="http://lpsolve.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/project/lpsolve/lpsolve/${pkgver}/lp_solve_${pkgver}_source.tar.gz
+ cflags.patch)
+md5sums=('167c0fb4ab178e0b7ab50bf0a635a836'
+ '7403f745d06619f59f52800b655d8751')
+
+build() {
+ cd "${srcdir}/${_origname}_${_mainver}"
+ patch -Np1 -i $srcdir/cflags.patch || return 1
+
+ # taken from Fedora spec
+ cd lpsolve55
+ sh -x ccc
+ rm bin/ux*/liblpsolve55.a
+ cd ../lp_solve
+ sh -x ccc
+ cd ..
+
+ # install
+ install -d ${pkgdir}/usr/{bin,lib,include/lpsolve}
+ install -m 755 lp_solve/bin/ux*/lp_solve ${pkgdir}/usr/bin/
+ install -m 755 lpsolve55/bin/ux*/liblpsolve55.so ${pkgdir}/usr/lib/
+ install -m 644 lp*.h ${pkgdir}/usr/include/lpsolve/
+}
diff --git a/extra/lpsolve/cflags.patch b/extra/lpsolve/cflags.patch
new file mode 100644
index 000000000..8e8804cb8
--- /dev/null
+++ b/extra/lpsolve/cflags.patch
@@ -0,0 +1,25 @@
+diff -ru lp_solve_5.5.orig/lp_solve/ccc lp_solve_5.5/lp_solve/ccc
+--- lp_solve_5.5.orig/lp_solve/ccc 2009-02-23 16:31:18.000000000 +0000
++++ lp_solve_5.5/lp_solve/ccc 2009-02-23 16:31:29.000000000 +0000
+@@ -28,7 +28,7 @@
+ fi
+ rm /tmp/isnan.c /tmp/isnan >/dev/null 2>&1
+
+-opts='-O3'
++opts=$CFLAGS
+
+ def=
+ if [ "$PLATFORM" = "SCO_UNIX" ]
+diff -ru lp_solve_5.5.orig/lpsolve55/ccc lp_solve_5.5/lpsolve55/ccc
+--- lp_solve_5.5.orig/lpsolve55/ccc 2009-02-23 16:31:18.000000000 +0000
++++ lp_solve_5.5/lpsolve55/ccc 2009-02-23 16:31:29.000000000 +0000
+@@ -35,7 +35,7 @@
+ so=y
+ fi
+
+-opts='-O3'
++opts=$CFLAGS
+
+ $c -s -c -I.. -I../shared -I../bfp -I../bfp/bfp_LUSOL -I../bfp/bfp_LUSOL/LUSOL -I../colamd $opts $def $NOISNAN -DYY_NEVER_INTERACTIVE -DPARSER_LP -DINVERSE_ACTIVE=INVERSE_LUSOL -DRoleIsExternalInvEngine $src
+ ar rv bin/$PLATFORM/liblpsolve55.a `echo $src|sed s/[.]c/.o/g|sed 's/[^ ]*\///g'`
+
diff --git a/extra/lsdvd/PKGBUILD b/extra/lsdvd/PKGBUILD
new file mode 100644
index 000000000..939311c72
--- /dev/null
+++ b/extra/lsdvd/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 39761 2009-05-21 11:31:55Z jgc $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=lsdvd
+pkgver=0.16
+pkgrel=4
+pkgdesc="lsdvd is a C application for reading the contents of a DVD and printing the contents to your terminal"
+arch=(i686 x86_64)
+url="http://untrepid.com/acidrip/lsdvd.html"
+depends=('libdvdread>=4.1.3')
+license=('GPL2')
+#Special thanks to Mathieu Clabaut <mathieu.clabaut@gmail.com> for patches
+source=(http://downloads.sourceforge.net/lsdvd/${pkgname}-${pkgver}.tar.gz
+ stdint_usage.patch)
+md5sums=('340e1abe5c5e5abf7ff8031e78f49ee7' '6cbcbfde873f894bd3c784f65141b2fc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/stdint_usage.patch" || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/lsdvd/stdint_usage.patch b/extra/lsdvd/stdint_usage.patch
new file mode 100644
index 000000000..67b9ee82d
--- /dev/null
+++ b/extra/lsdvd/stdint_usage.patch
@@ -0,0 +1,22 @@
+--- a/lsdvd.c 2006-03-02 07:48:11.000000000 -0600
++++ b/lsdvd.c 2007-09-27 19:15:28.000000000 -0500
+@@ -13,6 +13,7 @@
+ * 2003-04-19 Cleanups get_title_name, added dvdtime2msec, added helper macros,
+ * output info structures in form of a Perl module, by Henk Vergonet.
+ */
++#include <stdint.h>
+ #include <dvdread/ifo_read.h>
+ #include <string.h>
+ #include <sys/stat.h>
+--- a/configure 2005-12-12 14:22:45.000000000 -0600
++++ b/configure 2007-09-27 19:15:13.000000000 -0500
+@@ -2887,8 +2887,8 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+-#include <dvdread/ifo_read.h>
+ #include <stdint.h>
++#include <dvdread/ifo_read.h>
+ int
+ main ()
+ {
diff --git a/extra/lsof/PKGBUILD b/extra/lsof/PKGBUILD
new file mode 100644
index 000000000..a5e4c8089
--- /dev/null
+++ b/extra/lsof/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 115676 2011-03-19 06:54:43Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=lsof
+pkgver=4.84
+pkgrel=3
+pkgdesc="Lists open files for running Unix processes"
+arch=('i686' 'x86_64')
+url="http://people.freebsd.org/~abe/"
+license=('custom')
+depends=('glibc')
+source=(ftp://sunsite.ualberta.ca/pub/Mirror/lsof/${pkgname}_${pkgver}.tar.bz2 license.txt)
+md5sums=('a09326df500ef7e4550af546868338d6'
+ '1b63c76bd10437cabf890508c8e58d36')
+
+build() {
+ cd ${srcdir}/${pkgname}_${pkgver}
+ tar xf ${pkgname}_${pkgver}_src.tar
+ cd ${pkgname}_${pkgver}_src
+ sed -i 's|/\* #define\tHASSECURITY\t1 \*/|#define\tHASSECURITY\t1|' dialects/linux/machine.h
+ ./Configure -n linux
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}_${pkgver}/${pkgname}_${pkgver}_src
+
+ FILES=("00CREDITS" "00DCACHE" "00DIALECTS" "00DIST" "00FAQ" "00LSOF-L" "00MANIFEST" "00PORTING" "00QUICKSTART" "00README" "00.README.FIRST" "00TEST" "00XCONFIG")
+ for file in "${FILES[@]}"
+ do
+ install -D -m0644 -o root -g root $file \
+ $pkgdir/usr/share/doc/$pkgname/$file
+ done
+
+ install -Dm0755 -o root -g root lsof ${pkgdir}/usr/sbin/lsof
+ install -Dm0644 -o root -g root lsof.8 ${pkgdir}/usr/share/man/man8/lsof.8
+
+ install -D -m0644 -o root -g root ${srcdir}/license.txt \
+ ${pkgdir}/usr/share/licenses/lsof/LICENSE
+}
diff --git a/extra/lsof/license.txt b/extra/lsof/license.txt
new file mode 100644
index 000000000..6d241ddbf
--- /dev/null
+++ b/extra/lsof/license.txt
@@ -0,0 +1,27 @@
+Copyright 2002 Purdue Research Foundation, West Lafayette,
+Indiana 47907. All rights reserved.
+
+Written by Victor A. Abell
+
+This software is not subject to any license of the American
+Telephone and Telegraph Company or the Regents of the
+University of California.
+
+Permission is granted to anyone to use this software for
+any purpose on any computer system, and to alter it and
+redistribute it freely, subject to the following
+restrictions:
+
+1. Neither the authors nor Purdue University are responsible
+ for any consequences of the use of this software.
+
+2. The origin of this software must not be misrepresented,
+ either by explicit claim or by omission. Credit to the
+ authors and Purdue University must appear in documentation
+ and sources.
+
+3. Altered versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+4. This notice may not be removed or altered.
+
diff --git a/extra/ltrace/PKGBUILD b/extra/ltrace/PKGBUILD
new file mode 100644
index 000000000..9861acb93
--- /dev/null
+++ b/extra/ltrace/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 87253 2010-08-11 14:16:17Z allan $
+# Maintainer:
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ltrace
+pkgver=0.5.3
+pkgrel=2
+pkgdesc="A debugging program which runs a specified command until it exits"
+arch=('i686' 'x86_64')
+url="http://packages.debian.org/sid/ltrace"
+license=('GPL')
+depends=('glibc' 'elfutils')
+backup=('etc/ltrace.conf')
+source=(http://ftp.debian.org/debian/pool/main/l/ltrace/${pkgname}_${pkgver}.orig.tar.gz)
+md5sums=('3fa7fe715ab879db08bd06d1d59fd90f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's|/usr/bin/install|/bin/install|' configure
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/lua/PKGBUILD b/extra/lua/PKGBUILD
new file mode 100644
index 000000000..9b30c5bf9
--- /dev/null
+++ b/extra/lua/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 86292 2010-07-28 06:43:46Z juergen $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lua
+pkgver=5.1.4
+pkgrel=6
+pkgdesc="A powerful light-weight programming language designed for extending applications."
+arch=('i686' 'x86_64')
+url="http://www.lua.org/"
+depends=('readline' 'ncurses')
+license=('MIT')
+options=('!makeflags')
+source=(http://www.lua.org/ftp/${pkgname}-${pkgver}.tar.gz http://www.lua.org/ftp/patch-lua-5.1.4-2 lua-arch.patch lua-5.1-cflags.diff)
+md5sums=('d0870f2de55d59c1c8419f36e8fac150' '1239310e0c4a581c7831e596f95cc6cd'\
+ '6c5953f63904bf20a0183cdab05b80de' '249582bf1fd861ccf492d2c35a9fe732')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/lua-arch.patch"
+ patch -i ${srcdir}/patch-lua-5.1.4-2 -d src
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ [ "$CARCH" == "x86_64" ] && patch -Np1 -i ../lua-5.1-cflags.diff
+ [ "$CARCH" == "x86_64" ] && export CFLAGS="$CFLAGS -fPIC"
+ make INSTALL_DATA="cp -d" TO_LIB="liblua.a liblua.so liblua.so.5.1" LUA_SO=liblua.so INSTALL_TOP="${pkgdir}/usr" INSTALL_MAN="${pkgdir}/usr/share/man/man1" \
+ linux install || return 1
+ install -D -m 644 etc/lua.pc "${pkgdir}/usr/lib/pkgconfig/lua.pc"
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/COPYRIGHT"
+
+ # Install the documentation
+ mkdir -p "${pkgdir}/usr/share/doc/lua"
+ cp -R doc/* "${pkgdir}/usr/share/doc/lua"
+}
diff --git a/extra/lua/lua-5.1-cflags.diff b/extra/lua/lua-5.1-cflags.diff
new file mode 100644
index 000000000..db658aeca
--- /dev/null
+++ b/extra/lua/lua-5.1-cflags.diff
@@ -0,0 +1,13 @@
+diff -Naur lua-5.1.orig/src/Makefile lua-5.1/src/Makefile
+--- lua-5.1.orig/src/Makefile 2006-02-16 16:45:09.000000000 +0100
++++ lua-5.1/src/Makefile 2006-03-01 14:55:29.000000000 +0100
+@@ -8,7 +8,8 @@
+ PLAT= none
+
+ CC= gcc
+-CFLAGS= -O2 -Wall $(MYCFLAGS)
++CFLAGS ?= -O2 -Wall
++CFLAGS += $(MYCFLAGS)
+ AR= ar rcu
+ RANLIB= ranlib
+ RM= rm -f
diff --git a/extra/lua/lua-arch.patch b/extra/lua/lua-arch.patch
new file mode 100644
index 000000000..cc1f3ce1b
--- /dev/null
+++ b/extra/lua/lua-arch.patch
@@ -0,0 +1,55 @@
+diff -ur lua-5.1.orig/etc/lua.pc lua-5.1/etc/lua.pc
+--- lua-5.1.orig/etc/lua.pc 2006-03-21 11:51:53.000000000 +0100
++++ lua-5.1/etc/lua.pc 2006-03-21 11:52:05.000000000 +0100
+@@ -6,7 +6,7 @@
+ V= 5.1
+
+ # grep '^INSTALL_.*=' ../Makefile | sed 's/INSTALL_TOP/prefix/'
+-prefix= /usr/local
++prefix= /usr
+ INSTALL_BIN= ${prefix}/bin
+ INSTALL_INC= ${prefix}/include
+ INSTALL_LIB= ${prefix}/lib
+diff -ur lua-5.1.orig/src/Makefile lua-5.1/src/Makefile
+--- lua-5.1.orig/src/Makefile 2006-03-21 11:51:53.000000000 +0100
++++ lua-5.1/src/Makefile 2006-03-21 11:52:09.000000000 +0100
+@@ -23,6 +23,7 @@
+ PLATS= aix ansi bsd generic linux macosx mingw posix solaris
+
+ LUA_A= liblua.a
++LUA_SO= liblua.so
+ CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
+ lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \
+ lundump.o lvm.o lzio.o
+@@ -36,7 +37,7 @@
+ LUAC_O= luac.o print.o
+
+ ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
+-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
++ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
+ ALL_A= $(LUA_A)
+
+ default: $(PLAT)
+@@ -51,6 +52,10 @@
+ $(AR) $@ $?
+ $(RANLIB) $@
+
++$(LUA_SO): $(CORE_O) $(LIB_O)
++ $(CC) -shared -ldl -Wl,-soname,liblua.so -o $@.5.1 $? -lm $(MYLDFLAGS)
++ ln -s $@.5.1 $@
++
+ $(LUA_T): $(LUA_O) $(LUA_A)
+ $(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
+
+diff -ur lua-5.1.orig/src/luaconf.h lua-5.1/src/luaconf.h
+--- lua-5.1.orig/src/luaconf.h 2006-03-21 11:51:53.000000000 +0100
++++ lua-5.1/src/luaconf.h 2006-03-21 11:52:05.000000000 +0100
+@@ -82,7 +82,7 @@
+ ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
+
+ #else
+-#define LUA_ROOT "/usr/local/"
++#define LUA_ROOT "/usr/"
+ #define LUA_LDIR LUA_ROOT "share/lua/5.1/"
+ #define LUA_CDIR LUA_ROOT "lib/lua/5.1/"
+ #define LUA_PATH_DEFAULT \
diff --git a/extra/lv2core/PKGBUILD b/extra/lv2core/PKGBUILD
new file mode 100644
index 000000000..d483ab952
--- /dev/null
+++ b/extra/lv2core/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 116670 2011-03-24 20:31:38Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+
+pkgname=lv2core
+pkgver=4.0
+pkgrel=1
+pkgdesc="LV2: Successor to the LADSPA audio plug-in standard"
+url="http://lv2plug.in/"
+license=('LGPL' 'custom')
+arch=('i686' 'x86_64')
+makedepends=('python2')
+provides=('lv2')
+changelog=$pkgname.changelog
+install=$pkgname.install
+source=(http://lv2plug.in/spec/$pkgname-$pkgver.tar.bz2)
+md5sums=('5097d964f3559a1ecec2d2fc822ef53a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf configure --prefix=/usr
+ python2 waf build $MAKEFLAGS
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir"
+
+ install -Dm0644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/lv2core/lv2core.changelog b/extra/lv2core/lv2core.changelog
new file mode 100644
index 000000000..618e5921f
--- /dev/null
+++ b/extra/lv2core/lv2core.changelog
@@ -0,0 +1,16 @@
+25 Mar 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 4.0-1 :
+ Upstream release
+
+9 Aug 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 3.0-1 :
+ Brought into extra from community for slv2/ardour
+ - dep of slv2
+
+ * PKGBUILD :
+ Minor cosmetic ammendments.
+
+ * lv2core.changelog :
+ Added this changelog.
diff --git a/extra/lv2core/lv2core.install b/extra/lv2core/lv2core.install
new file mode 100644
index 000000000..6a9fdf33b
--- /dev/null
+++ b/extra/lv2core/lv2core.install
@@ -0,0 +1,14 @@
+post_install() {
+ \ldconfig
+ \lv2config
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ \ldconfig
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/lxde-common/PKGBUILD b/extra/lxde-common/PKGBUILD
new file mode 100644
index 000000000..761841bb7
--- /dev/null
+++ b/extra/lxde-common/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=lxde-common
+pkgver=0.5.0
+pkgrel=3
+pkgdesc="Common files of the LXDE Desktop"
+arch=('i686' 'x86_64')
+license=('GPL2')
+groups=('lxde')
+depends=('libx11' 'glib2' 'lxde-icon-theme')
+url="http://lxde.org/"
+# startlxde is useless without lxsession
+makedepends=(automake)
+optdepends=(lxsession-lite)
+backup=(etc/xdg/lxsession/LXDE/{desktop.conf,autostart})
+source=("http://downloads.sourceforge.net/project/lxde/${pkgname}%20%28default%20config%29/${pkgname}%200.5.0/${pkgname}-0.5.0.tar.gz" "${pkgname}-arch.patch" ${pkgname}-invalid-distfile.patch)
+md5sums=('23606ab3d6e1039386d62a4b68b4ffc6' '21657157d9ab377de55deb19a42d68e8'\
+ '24938631783683fd98dfd533023e6d4e')
+
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i ${srcdir}/${pkgname}-arch.patch
+ autoreconf
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make DESTDIR="$pkgdir" install
+ install -Dm644 lxde-logout.desktop ${pkgdir}/usr/share/applications/lxde-logout.desktop
+}
+
diff --git a/extra/lxde-common/lxde-common-arch.patch b/extra/lxde-common/lxde-common-arch.patch
new file mode 100644
index 000000000..3aa1a8992
--- /dev/null
+++ b/extra/lxde-common/lxde-common-arch.patch
@@ -0,0 +1,186 @@
+diff --git a/Makefile.am b/Makefile.am
+index ba4149c..61cf4c5 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -31,9 +31,9 @@ openbox_DATA= \
+ openbox/rc.xml \
+ openbox/menu.xml
+
+-pcmanfmdir=$(datadir)/lxde/pcmanfm
++pcmanfmdir=$(sysconfdir)/xdg/pcmanfm
+ pcmanfm_DATA= \
+- pcmanfm/main.lxde
++ pcmanfm/lxde.conf
+
+ EXTRA_DIST = \
+ autostart \
+@@ -45,7 +45,7 @@ EXTRA_DIST = \
+ openbox/rc.xml.in \
+ openbox/menu.xml \
+ openbox-lxde.in \
+- pcmanfm/main.lxde.in \
++ pcmanfm/lxde.conf.in \
+ $(lxpanel_DATA) \
+ lxpanel/panel.in
+
+diff --git a/autostart b/autostart
+index 17d7b58..d5b6514 100644
+--- a/autostart
++++ b/autostart
+@@ -1,3 +1,3 @@
+-@xscreensaver -no-splash
+ @lxpanel --profile LXDE
+-@pcmanfm -d
++@pcmanfm --desktop --profile lxde
++@xscreensaver -no-splash
+diff --git a/configure.ac b/configure.ac
+index 3b62903..f90b4c5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,5 +1,5 @@
+ AC_PREREQ([2.57])
+-AC_INIT(lxde-common,[0.5.0], [],lxde-common)
++AC_INIT(lxde-common,[0.5.5], [],lxde-common)
+ AM_INIT_AUTOMAKE()
+ dnl AC_PROG_INTLTOOL(, [no-xml])
+ dnl AM_MAINTAINER_MODE
+@@ -48,7 +48,16 @@ AC_OUTPUT([
+ lxpanel/panel
+ openbox/rc.xml
+ openbox-lxde
+- pcmanfm/main.lxde
++ pcmanfm/lxde.conf
+ man/Makefile
+ ])
+
++if test x"$sysconfdir" != x'/etc'; then
++ echo
++ echo
++ echo 'Error: sysconfdir is not /etc.'
++ echo 'Please consider passing --sysconfdir=/etc to configure.';
++ echo 'Otherwise default config files will be installed to wrong place.'
++ echo
++ echo
++fi
+diff --git a/lxpanel/config b/lxpanel/config
+index 1911551..cb7f06d 100644
+--- a/lxpanel/config
++++ b/lxpanel/config
+@@ -1,4 +1,4 @@
+ [Command]
+ FileManager=pcmanfm %s
+-Terminal=xterm -e
++Terminal=lxterminal
+ Logout=lxde-logout
+diff --git a/openbox-lxde b/openbox-lxde
+old mode 100755
+new mode 100644
+diff --git a/openbox/menu.xml b/openbox/menu.xml
+index 78099e6..a7768a5 100644
+--- a/openbox/menu.xml
++++ b/openbox/menu.xml
+@@ -25,7 +25,7 @@
+ <item label="Desktop Settings">
+ <action name="Execute">
+ <startupnotify><enabled>yes</enabled></startupnotify>
+- <command>pcmanfm --show-pref 2</command>
++ <command>pcmanfm --desktop-pref</command>
+ </action>
+ </item>
+ <item label="Window Management Settings">
+@@ -43,4 +43,4 @@
+ </item>
+ </menu>
+
+-</openbox_menu>
+\ No newline at end of file
++</openbox_menu>
+diff --git a/pcmanfm/lxde.conf.in b/pcmanfm/lxde.conf.in
+new file mode 100644
+index 0000000..6799e1f
+--- /dev/null
++++ b/pcmanfm/lxde.conf.in
+@@ -0,0 +1,20 @@
++[config]
++bm_open_method=0
++su_cmd=xdg-su -c '%s'
++
++[desktop]
++wallpaper_mode=1
++wallpaper=@prefix@/share/lxde/wallpapers/lxde_blue.jpg
++desktop_bg=#000000
++desktop_fg=#ffffff
++desktop_shadow=#000000
++
++[ui]
++always_show_tabs=0
++hide_close_btn=0
++win_width=640
++win_height=480
++view_mode=0
++show_hidden=0
++sort_type=0
++sort_by=0
+diff --git a/pcmanfm/main.lxde.in b/pcmanfm/main.lxde.in
+deleted file mode 100644
+index a619852..0000000
+--- a/pcmanfm/main.lxde.in
++++ /dev/null
+@@ -1,3 +0,0 @@
+-[Desktop]
+-show_wallpaper=1
+-wallpaper=@prefix@/share/lxde/wallpapers/lxde_blue.jpg
+diff --git a/startlxde.in b/startlxde.in
+index 8372d3a..f493e28 100755
+--- a/startlxde.in
++++ b/startlxde.in
+@@ -1,28 +1,43 @@
+ #!/bin/sh
+
+ if [ -z "$XDG_CONFIG_HOME" ]; then
+- export XDG_CONFIG_HOME="$HOME/.config"
++ export XDG_CONFIG_HOME="$HOME/.config"
+ fi
+
+ # Ensure the existance of pcmanfm config file
+ PCMANFM_CONF_DIR="$XDG_CONFIG_HOME/pcmanfm"
+-if [ ! -f "$PCMANFM_CONF_DIR/main.lxde" ]; then
+- mkdir -p "$PCMANFM_CONF_DIR"
+- cp @prefix@/share/lxde/pcmanfm/main.lxde "$PCMANFM_CONF_DIR/main.lxde"
++if [ ! -f "$PCMANFM_CONF_DIR/pcmanfm.conf" ]; then
++ mkdir -p "$PCMANFM_CONF_DIR"
++ cp @prefix@/share/lxde/pcmanfm/pcmanfm.conf "$PCMANFM_CONF_DIR/pcmanfm.conf"
+ fi
+
+ # Ensure the existance of openbox config file
+ OPENBOX_CONF_DIR="$XDG_CONFIG_HOME/openbox"
+ if [ ! -f "$OPENBOX_CONF_DIR/lxde-rc.xml" ]; then
+- mkdir -p "$OPENBOX_CONF_DIR"
+- cp @prefix@/share/lxde/openbox/rc.xml "$OPENBOX_CONF_DIR/lxde-rc.xml"
++ mkdir -p "$OPENBOX_CONF_DIR"
++ cp @prefix@/share/lxde/openbox/rc.xml "$OPENBOX_CONF_DIR/lxde-rc.xml"
+ fi
+
++# Ensure the existance of the 'Desktop' folder
++if [ -e "$XDG_CONFIG_HOME/user-dirs.dirs" ]; then
++ . "$XDG_CONFIG_HOME/user-dirs.dirs"
++else
++ XDG_DESKTOP_DIR="$HOME/Desktop"
++fi
++mkdir -p "$XDG_DESKTOP_DIR"
++
+ # Clean up after GDM (GDM sets the number of desktops to one)
+ xprop -root -remove _NET_NUMBER_OF_DESKTOPS -remove _NET_DESKTOP_NAMES -remove _NET_CURRENT_DESKTOP 2> /dev/null
+
+ # Enable GTK+2 integration for OpenOffice.org, if available.
+ export SAL_USE_VCLPLUGIN=gtk
+
++# Launch DBus if needed
++if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
++ eval "$(dbus-launch --sh-syntax --exit-with-session)"
++fi
++
++export XDG_MENU_PREFIX="lxde-"
++
+ # Start the LXDE session
+ exec @prefix@/bin/lxsession -s LXDE -e LXDE
diff --git a/extra/lxde-common/lxde-common-invalid-distfile.patch b/extra/lxde-common/lxde-common-invalid-distfile.patch
new file mode 100644
index 000000000..df5d68084
--- /dev/null
+++ b/extra/lxde-common/lxde-common-invalid-distfile.patch
@@ -0,0 +1,10 @@
+diff -ub lxde-common-0.5.0.dist/startlxde.in lxde-common-0.5.0/startlxde.in
+--- lxde-common-0.5.0.dist/startlxde.in 2009-09-04 11:46:53.000000000 +0200
++++ lxde-common-0.5.0./startlxde.in 2010-01-18 21:47:18.000000000 +0100
+@@ -25,4 +25,4 @@
+ export SAL_USE_VCLPLUGIN=gtk
+
+ # Start the LXDE session
+-exec @prefix@/bin/lxsession -s LXDE
++exec @prefix@/bin/lxsession -s LXDE -e LXDE
+
diff --git a/extra/lxde-common/lxde-common.install b/extra/lxde-common/lxde-common.install
new file mode 100644
index 000000000..86a366848
--- /dev/null
+++ b/extra/lxde-common/lxde-common.install
@@ -0,0 +1,18 @@
+ICON_PATH=usr/share/icons/nuoveXT2
+
+post_install() {
+ gtk-update-icon-cache -q -t -f ${ICON_PATH}
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f ${ICON_PATH}
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/extra/lxdm/PKGBUILD b/extra/lxdm/PKGBUILD
new file mode 100644
index 000000000..a0b1d9628
--- /dev/null
+++ b/extra/lxdm/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+#Contributor: kiefer <jorgelmadrid@gmail.com>
+#Based on lxdm-git by phillipe
+
+pkgname=lxdm
+pkgver=0.3.0
+pkgrel=1
+pkgdesc="Lightweight Display Manager (part of LXDE)"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/lxdm/"
+license=('GPL')
+groups=('lxde')
+conflicts=('lxdm-git')
+depends=('gtk2' 'xorg-server' 'consolekit')
+makedepends=('intltool')
+install=${pkgname}.install
+backup=('etc/lxdm/lxdm.conf') # 'etc/lxdm/xinitrc')
+source=(http://downloads.sourceforge.net/project/lxdm/lxdm%20${pkgver}/$pkgname-$pkgver.tar.gz
+ Xsession.patch lxdm.patch lxdm-pam.patch lxdm-daemon)
+md5sums=('1d0688e088edab7c3c563263eb2f9654'
+ '9bdf95adb74d81d4b6b6176fb1142090'
+ 'baed9055e8825a5511712bc095197519'
+ 'b20fe3c8487a039050986d60e45233a9'
+ '705f394052fdd0dec22e95321d170de0')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --sysconfdir=/etc --prefix=/usr --libexecdir=/usr/lib/lxdm
+ make
+
+ patch -Np0 < ../lxdm.patch
+ patch -Np0 < ../Xsession.patch
+}
+
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m644 ${srcdir}/lxdm-pam.patch ${pkgdir}/etc/pam.d/lxdm || return 1
+ install -Dm755 ${srcdir}/lxdm-daemon ${pkgdir}/etc/rc.d/lxdm || return 1
+
+ # these files are not in the package, but should be owned by lxdm - taken from Fedora pkg
+# touch ${pkgdir}/etc/lxdm/xinitrc
+ mkdir -p ${pkgdir}/var/run/lxdm
+ mkdir -p ${pkgdir}/var/lib/lxdm
+# touch ${pkgdir}/var/lib/lxdm/lxdm.conf
+
+ # fix the greeter location
+ sed -i -e "s/libexec/lib\/lxdm/" ${pkgdir}/etc/lxdm/lxdm.conf
+}
diff --git a/extra/lxdm/Xsession.patch b/extra/lxdm/Xsession.patch
new file mode 100644
index 000000000..a9ba63233
--- /dev/null
+++ b/extra/lxdm/Xsession.patch
@@ -0,0 +1,14 @@
+--- data/Xsession.orig 2010-01-31 20:48:08.695677408 -0200
++++ data/Xsession 2010-01-31 20:47:48.260223292 -0200
+@@ -2,6 +2,11 @@
+
+ # use bash for "exec -l", howto run login shell by /bin/sh ?
+
++[[ -f /etc/profile ]] && . /etc/profile
++[[ -f "$HOME/.profile" ]] && . "$HOME/.profile"
++[[ -f /etc/xprofile ]] && . /etc/xprofile
++[[ -f "$HOME/.xprofile" ]] && . "$HOME/.xprofile"
++
+ if [ $# -eq 1 -a -n "$1" ]; then
+ LXSESSION=$1
+ else
diff --git a/extra/lxdm/lxdm-daemon b/extra/lxdm/lxdm-daemon
new file mode 100644
index 000000000..68eb6225d
--- /dev/null
+++ b/extra/lxdm/lxdm-daemon
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID `which lxdm-binary`)
+case "$1" in
+ start)
+ stat_busy "Starting LXDM Display Manager"
+ [ -z "$PID" ] && /usr/sbin/lxdm -d &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lxdm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping LXDM Display Manager"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lxdm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/lxdm/lxdm-pam.patch b/extra/lxdm/lxdm-pam.patch
new file mode 100644
index 000000000..3f5df04a7
--- /dev/null
+++ b/extra/lxdm/lxdm-pam.patch
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+password required pam_unix.so
diff --git a/extra/lxdm/lxdm.install b/extra/lxdm/lxdm.install
new file mode 100644
index 000000000..8d42de90f
--- /dev/null
+++ b/extra/lxdm/lxdm.install
@@ -0,0 +1,59 @@
+pkgname=lxdm
+
+post_install() {
+ # make sure the group and user "lxdm" exist on this system and have the correct values
+ if grep -q "^lxdm:" /etc/group &> /dev/null ; then
+ groupmod -g 121 -n lxdm lxdm &> /dev/null
+ else
+ groupadd -g 121 lxdm &> /dev/null
+ fi
+
+ if grep -q "^lxdm:" /etc/passwd 2> /dev/null ; then
+ usermod -s /sbin/nologin -c "LXDE Display Manager user" -d /var/lib/lxdm -u 121 -g lxdm lxdm &> /dev/null
+ else
+ useradd -s /sbin/nologin -c "LXDE Display Manager user" -d /var/lib/lxdm -u 121 -g lxdm -m -r lxdm &> /dev/null
+ fi
+ passwd -l lxdm > /dev/null
+
+# chown root:lxdm /etc/lxdm/{lxdm.conf,xinitrc} > /dev/null
+ chown root:lxdm /etc/lxdm/lxdm.conf > /dev/null
+ chown -R root:lxdm /var/lib/lxdm > /dev/null
+ chown -R root:lxdm /var/run/lxdm > /dev/null
+
+cat << EOF
+>>> To make the LXDM as your default DM,
+>>> put, 'lxdm' or '@lxdm' (without quotes) on DAEMONS in /etc/rc.conf
+>>>
+>>> You can also use /etc/inittab,
+>>> just add 'x:5:respawn:/usr/sbin/lxdm >& /dev/null' (without quotes)
+>>> in the end of the file /etc/inittab
+>>> and uncoment the line on the top 'id:5:initdefault:'.
+EOF
+}
+
+post_upgrade() {
+ # make sure the group and user "lxdm" exist on this system and have the correct values
+ if grep -q "^lxdm:" /etc/group &> /dev/null ; then
+ groupmod -g 121 -n lxdm lxdm &> /dev/null
+ else
+ groupadd -g 121 lxdm &> /dev/null
+ fi
+
+ if grep -q "^lxdm:" /etc/passwd 2> /dev/null ; then
+ usermod -s /sbin/nologin -c "LXDE Display Manager user" -d /var/lib/lxdm -u 121 -g lxdm lxdm &> /dev/null
+ else
+ useradd -s /sbin/nologin -c "LXDE Display Manager user" -d /var/lib/lxdm -u 121 -g lxdm -m -r lxdm &> /dev/null
+ fi
+ passwd -l lxdm > /dev/null
+
+# chown root:lxdm /etc/lxdm/{lxdm.conf,xinitrc} > /dev/null
+ chown root:lxdm /etc/lxdm/lxdm.conf > /dev/null
+ chown -R root:lxdm /var/lib/lxdm > /dev/null
+ chown -R root:lxdm /var/run/lxdm > /dev/null
+}
+
+post_remove() {
+ # Removing lxdm group+user
+ getent passwd lxdm >/dev/null 2>&1 && userdel lxdm #|| /bin/true
+ getent group lxdm >/dev/null 2>&1 && groupdel lxdm #|| /bin/true
+}
diff --git a/extra/lxdm/lxdm.patch b/extra/lxdm/lxdm.patch
new file mode 100644
index 000000000..a703a386d
--- /dev/null
+++ b/extra/lxdm/lxdm.patch
@@ -0,0 +1,26 @@
+--- data/lxdm.orig 2010-01-24 16:58:42.262866825 -0200
++++ data/lxdm 2010-01-19 11:56:34.308668692 -0200
+@@ -1,21 +1,13 @@
+ #!/bin/sh
+
+-[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
+-
+-if [ -z "$LANG" -a -e /etc/sysconfig/language ]; then
+- . /etc/sysconfig/language
+- if [ -n "$RC_LANG"]; then
+- LANG=$RC_LANG
+- fi
++if [ -r /etc/profile.d/locale.sh ]; then
++ . /etc/profile.d/locale.sh
+ fi
+
+ if [ -n "$LANG" ]; then
+ export LANG
+ fi
+
+-[ -f /etc/sysconfig/desktop ] && . /etc/sysconfig/desktop
+-[ -f /etc/sysconfig/windowmanager ] && . /etc/sysconfig/windowmanager
+-
+ if [ -n "$DEFAULT_WM" ]; then
+ PREFERRED=$DEFAULT_WM
+ fi
diff --git a/extra/lxmenu-data/PKGBUILD b/extra/lxmenu-data/PKGBUILD
new file mode 100644
index 000000000..eff65fe89
--- /dev/null
+++ b/extra/lxmenu-data/PKGBUILD
@@ -0,0 +1,19 @@
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=lxmenu-data
+pkgver=0.1.1
+pkgrel=1
+pkgdesc="freedesktop.org desktop menus for LXDE"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/$pkgname-$pkgver.tar.gz)
+md5sums=('cee3181dd22088f3db0e99ffbedc986d')
+
+build() {
+cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
+
diff --git a/extra/lxpanel/Fix-build-issue-with-symbol-alarm-showing-up-on-F14-.patch b/extra/lxpanel/Fix-build-issue-with-symbol-alarm-showing-up-on-F14-.patch
new file mode 100644
index 000000000..e3da3d897
--- /dev/null
+++ b/extra/lxpanel/Fix-build-issue-with-symbol-alarm-showing-up-on-F14-.patch
@@ -0,0 +1,43 @@
+From 4a974f2686d2fafdcda4a180b0483a7b17fd2d71 Mon Sep 17 00:00:00 2001
+From: Marty Jack <martyj@linux.local>
+Date: Thu, 22 Jul 2010 19:46:13 -0400
+Subject: [PATCH 3/3] Fix build issue with symbol "alarm" showing up on F14 (Bug3033293)
+
+---
+ src/plugins/batt/batt.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/plugins/batt/batt.c b/src/plugins/batt/batt.c
+index 288231f..05c0deb 100644
+--- a/src/plugins/batt/batt.c
++++ b/src/plugins/batt/batt.c
+@@ -95,7 +95,7 @@ typedef struct {
+ typedef struct {
+ char *command;
+ sem_t *lock;
+-} alarm;
++} Alarm;
+
+ static void destructor(Plugin *p);
+ static void update_display(lx_battery *lx_b, gboolean repaint);
+@@ -103,7 +103,7 @@ static void update_display(lx_battery *lx_b, gboolean repaint);
+ /* alarmProcess takes the address of a dynamically allocated alarm struct (which
+ it must free). It ensures that alarm commands do not run concurrently. */
+ static void * alarmProcess(void *arg) {
+- alarm *a = (alarm *) arg;
++ Alarm *a = (Alarm *) arg;
+
+ sem_wait(a->lock);
+ system(a->command);
+@@ -157,7 +157,7 @@ void update_display(lx_battery *lx_b, gboolean repaint) {
+ /* Run the alarm command if it isn't already running */
+ if (alarmCanRun) {
+
+- alarm *a = (alarm *) malloc(sizeof(alarm));
++ Alarm *a = (Alarm *) malloc(sizeof(Alarm));
+ a->command = lx_b->alarmCommand;
+ a->lock = &(lx_b->alarmProcessLock);
+
+--
+1.7.1.1
+
diff --git a/extra/lxpanel/Fix-failure-to-react-to-keyboard-map-changes-initiat.patch b/extra/lxpanel/Fix-failure-to-react-to-keyboard-map-changes-initiat.patch
new file mode 100644
index 000000000..b5483e7b0
--- /dev/null
+++ b/extra/lxpanel/Fix-failure-to-react-to-keyboard-map-changes-initiat.patch
@@ -0,0 +1,555 @@
+From 438d9fdbd3e0be04de933705917d508a02b7c04b Mon Sep 17 00:00:00 2001
+From: Marty Jack <martyj@linux.local>
+Date: Sat, 20 Feb 2010 16:23:57 -0500
+Subject: [PATCH 4/5] Fix failure to react to keyboard map changes initiated outside the plugin
+ - Occurred when setxkbmap was run, or when HAL configured the keyboard at X startup
+ - Caused by failure to process the NewKeyboard event
+ - Caused by dropping events due to faulty code to read them
+ - Cosmetic change, the tooltip now the Xkb Group name rather than Xkb Symbol name
+
+---
+ src/plugins/xkb/xkb-plugin.c | 92 +++++++++--------
+ src/plugins/xkb/xkb.c | 236 +++++++++++++++++++++--------------------
+ src/plugins/xkb/xkb.h | 7 +-
+ 3 files changed, 173 insertions(+), 162 deletions(-)
+
+diff --git a/src/plugins/xkb/xkb-plugin.c b/src/plugins/xkb/xkb-plugin.c
+index f49a77d..80a14ba 100644
+--- a/src/plugins/xkb/xkb-plugin.c
++++ b/src/plugins/xkb/xkb-plugin.c
+@@ -1,18 +1,23 @@
+-/*
+-//====================================================================
+-// xfce4-xkb-plugin - XFCE4 Xkb Layout Indicator panel plugin
+-// -------------------------------------------------------------------
+-// Alexander Iliev <sasoiliev@mamul.org>
+-// 20-Feb-04
+-// -------------------------------------------------------------------
+-// Parts of this code belong to Michael Glickman <wmalms@yahooo.com>
+-// and his program wmxkb.
+-// WARNING: DO NOT BOTHER Michael Glickman WITH QUESTIONS ABOUT THIS
+-// PROGRAM!!! SEND INSTEAD EMAILS TO <sasoiliev@mamul.org>
+-//====================================================================
+-*/
+-
+-/* Modified by Hong Jen Yee (PCMan) <pcman.tw@gmail.com> on 2008-04-06 for lxpanel */
++/**
++ * Copyright (c) 2010 LxDE Developers, see the file AUTHORS for details.
++ *
++ * 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.
++ */
++
++/* Originally derived from xfce4-xkb-plugin, Copyright 2004 Alexander Iliev,
++ * which credits Michael Glickman. */
+
+ #ifdef HAVE_CONFIG_H
+ #include <config.h>
+@@ -49,38 +54,45 @@ void xkb_redraw(XkbPlugin * xkb)
+ if (xkb->display_type == IMAGE)
+ {
+ int size = xkb->plugin->panel->icon_size;
+- char * group_name = (char *) xkb_get_current_group_name_lowercase(xkb);
+- char * filename = g_strdup_printf("%s/%s.png", FLAGSDIR, group_name);
+- GdkPixbuf * unscaled_pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
+- g_free(filename);
+- g_free(group_name);
+-
+- if (unscaled_pixbuf != NULL)
++ char * group_name = (char *) xkb_get_current_symbol_name_lowercase(xkb);
++ if (group_name != NULL)
+ {
+- /* Loaded successfully. */
+- int width = gdk_pixbuf_get_width(unscaled_pixbuf);
+- int height = gdk_pixbuf_get_height(unscaled_pixbuf);
+- GdkPixbuf * pixbuf = gdk_pixbuf_scale_simple(unscaled_pixbuf, size * width / height, size, GDK_INTERP_BILINEAR);
+- if (pixbuf != NULL)
++ char * filename = g_strdup_printf("%s/%s.png", FLAGSDIR, group_name);
++ GdkPixbuf * unscaled_pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
++ g_free(filename);
++ g_free(group_name);
++
++ if (unscaled_pixbuf != NULL)
+ {
+- gtk_image_set_from_pixbuf(GTK_IMAGE(xkb->image), pixbuf);
+- g_object_unref(G_OBJECT(pixbuf));
+- gtk_widget_hide(xkb->label);
+- gtk_widget_show(xkb->image);
+- gtk_widget_set_tooltip_text(xkb->btn, xkb_get_current_group_name(xkb));
+- valid_image = TRUE;
++ /* Loaded successfully. */
++ int width = gdk_pixbuf_get_width(unscaled_pixbuf);
++ int height = gdk_pixbuf_get_height(unscaled_pixbuf);
++ GdkPixbuf * pixbuf = gdk_pixbuf_scale_simple(unscaled_pixbuf, size * width / height, size, GDK_INTERP_BILINEAR);
++ if (pixbuf != NULL)
++ {
++ gtk_image_set_from_pixbuf(GTK_IMAGE(xkb->image), pixbuf);
++ g_object_unref(G_OBJECT(pixbuf));
++ gtk_widget_hide(xkb->label);
++ gtk_widget_show(xkb->image);
++ gtk_widget_set_tooltip_text(xkb->btn, xkb_get_current_group_name(xkb));
++ valid_image = TRUE;
++ }
++ g_object_unref(unscaled_pixbuf);
+ }
+- g_object_unref(unscaled_pixbuf);
+ }
+ }
+
+ /* Set the label. */
+ if ((xkb->display_type == TEXT) || ( ! valid_image))
+ {
+- panel_draw_label_text(xkb->plugin->panel, xkb->label, (char *) xkb_get_current_group_name(xkb), TRUE, TRUE);
+- gtk_widget_hide(xkb->image);
+- gtk_widget_show(xkb->label);
+- gtk_widget_set_tooltip_text(xkb->btn, NULL);
++ char * group_name = (char *) xkb_get_current_symbol_name(xkb);
++ if (group_name != NULL)
++ {
++ panel_draw_label_text(xkb->plugin->panel, xkb->label, (char *) group_name, TRUE, TRUE);
++ gtk_widget_hide(xkb->image);
++ gtk_widget_show(xkb->label);
++ gtk_widget_set_tooltip_text(xkb->btn, xkb_get_current_group_name(xkb));
++ }
+ }
+ }
+
+@@ -196,10 +208,6 @@ static int xkb_constructor(Plugin * plugin, char ** fp)
+ /* Initialize the XKB interface. */
+ xkb_mechanism_constructor(xkb);
+
+- /* Initialize a channel to listen for XKB events. */
+- GIOChannel * channel = g_io_channel_unix_new(xkb_get_connection_number(xkb));
+- xkb->source_id = g_io_add_watch(channel, G_IO_IN | G_IO_PRI, (GIOFunc) xkb_gio_callback, (gpointer) xkb);
+-
+ /* Connect signals. */
+ g_signal_connect(xkb->btn, "button-press-event", G_CALLBACK(xkb_button_press_event), xkb);
+ g_signal_connect(xkb->btn, "scroll-event", G_CALLBACK(xkb_scroll_event), xkb);
+diff --git a/src/plugins/xkb/xkb.c b/src/plugins/xkb/xkb.c
+index 5bb0c39..898a931 100644
+--- a/src/plugins/xkb/xkb.c
++++ b/src/plugins/xkb/xkb.c
+@@ -1,18 +1,23 @@
+-/*
+-// ====================================================================
+-// xfce4-xkb-plugin - XFCE4 Xkb Layout Indicator panel plugin
+-// -------------------------------------------------------------------
+-// Alexander Iliev <sasoiliev@mamul.org>
+-// 20-Feb-04
+-// -------------------------------------------------------------------
+-// Parts of this code belong to Michael Glickman <wmalms@yahooo.com>
+-// and his program wmxkb.
+-// WARNING: DO NOT BOTHER Michael Glickman WITH QUESTIONS ABOUT THIS
+-// PROGRAM!!! SEND INSTEAD EMAILS TO <sasoiliev@mamul.org>
+-//====================================================================
+-*/
+-
+-/* Modified by Hong Jen Yee (PCMan) <pcman.tw@gmail.com> on 2008-04-06 for lxpanel */
++/**
++ * Copyright (c) 2010 LxDE Developers, see the file AUTHORS for details.
++ *
++ * 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.
++ */
++
++/* Originally derived from xfce4-xkb-plugin, Copyright 2004 Alexander Iliev,
++ * which credits Michael Glickman. */
+
+ #include "xkb.h"
+
+@@ -26,9 +31,13 @@
+ #include <gdk-pixbuf/gdk-pixbuf.h>
+ #include <glib.h>
+
++/* The X Keyboard Extension: Library Specification
++ * http://www.xfree86.org/current/XKBlib.pdf */
++
+ static void xkb_enter_locale_by_process(XkbPlugin * xkb);
+ static void refresh_group_xkb(XkbPlugin * xkb);
+-static int do_init_xkb(XkbPlugin * xkb);
++static int initialize_keyboard_description(XkbPlugin * xkb);
++static GdkFilterReturn xkb_event_filter(GdkXEvent * xevent, GdkEvent * event, XkbPlugin * xkb);
+
+ /* Insert a process and its layout into the hash table. */
+ static void xkb_enter_locale_by_process(XkbPlugin * xkb)
+@@ -56,60 +65,65 @@ int xkb_get_group_count(XkbPlugin * xkb)
+ return xkb->group_count;
+ }
+
++/* Get the current group name. */
++const char * xkb_get_current_group_name(XkbPlugin * xkb)
++{
++ return xkb->group_names[xkb->current_group_xkb_no];
++}
++
+ /* Convert a group number to a symbol name. */
+ const char * xkb_get_symbol_name_by_res_no(XkbPlugin * xkb, int n)
+ {
+ return xkb->symbol_names[n];
+ }
+
+-/* Get the current group name. */
+-const char * xkb_get_current_group_name(XkbPlugin * xkb)
++/* Get the current symbol name. */
++const char * xkb_get_current_symbol_name(XkbPlugin * xkb)
+ {
+ return xkb_get_symbol_name_by_res_no(xkb, xkb->current_group_xkb_no);
+ }
+
+-/* Get the current group name converted to lowercase. */
+-const char * xkb_get_current_group_name_lowercase(XkbPlugin * xkb)
++/* Get the current symbol name converted to lowercase. */
++const char * xkb_get_current_symbol_name_lowercase(XkbPlugin * xkb)
+ {
+- const char * tmp = xkb_get_current_group_name(xkb);
+- return g_utf8_strdown(tmp, -1);
++ const char * tmp = xkb_get_current_symbol_name(xkb);
++ return ((tmp != NULL) ? g_utf8_strdown(tmp, -1) : NULL);
+ }
+
+ /* Refresh current group number from Xkb state. */
+ static void refresh_group_xkb(XkbPlugin * xkb)
+ {
+ XkbStateRec xkb_state;
+- XkbGetState(xkb->dsp, xkb->device_id, &xkb_state);
++ XkbGetState(GDK_DISPLAY(), XkbUseCoreKbd, &xkb_state);
+ xkb->current_group_xkb_no = xkb_state.group;
+ }
+
+-/* Initialize the Xkb structures. */
+-static int do_init_xkb(XkbPlugin * xkb)
++/* Initialize the keyboard description initially or after a NewKeyboard event. */
++static int initialize_keyboard_description(XkbPlugin * xkb)
+ {
+- /* Create hash table. */
+- xkb->group_hash_table = g_hash_table_new(g_direct_hash, NULL);
+-
+- /* Initialize the Xkb extension. */
+- int major, minor, opcode;
+- Bool status = XkbQueryExtension(xkb->dsp, &opcode,
+- &xkb->base_event_code, &xkb->base_error_code, &major, &minor);
+-
+- /* Use the core keyboard. */
+- xkb->device_id = XkbUseCoreKbd;
++ /* Free the strings. */
++ int i;
++ for (i = 0; i < XkbNumKbdGroups; i += 1)
++ {
++ g_free(xkb->group_names[i]);
++ g_free(xkb->symbol_names[i]);
++ xkb->group_names[i] = NULL;
++ xkb->symbol_names[i] = NULL;
++ }
+
+ /* Allocate a keyboard description structure. */
++ int status = False;
+ XkbDescRec * kbd_desc_ptr = XkbAllocKeyboard();
+ if (kbd_desc_ptr == NULL)
+ {
+ ERR("Failed to get keyboard description\n");
+ goto HastaLaVista;
+ }
+- kbd_desc_ptr->dpy = xkb->dsp;
+
+ /* Fetch information into the keyboard description. */
+- XkbGetControls(xkb->dsp, XkbAllControlsMask, kbd_desc_ptr);
+- XkbGetNames(xkb->dsp, XkbSymbolsNameMask, kbd_desc_ptr);
+- XkbGetNames(xkb->dsp, XkbGroupNamesMask, kbd_desc_ptr);
++ XkbGetControls(GDK_DISPLAY(), XkbAllControlsMask, kbd_desc_ptr);
++ XkbGetNames(GDK_DISPLAY(), XkbSymbolsNameMask, kbd_desc_ptr);
++ XkbGetNames(GDK_DISPLAY(), XkbGroupNamesMask, kbd_desc_ptr);
+
+ if (kbd_desc_ptr->names == NULL)
+ {
+@@ -137,12 +151,11 @@ static int do_init_xkb(XkbPlugin * xkb)
+
+ /* Determine the group names. Trim off text beginning at a '('. */
+ const Atom * tmp_group_source = kbd_desc_ptr->names->groups;
+- int i;
+ for (i = 0; i < xkb->group_count; i++)
+ {
+ if (tmp_group_source[i] != None)
+ {
+- char * ptr = XGetAtomName(xkb->dsp, tmp_group_source[i]);
++ char * ptr = XGetAtomName(GDK_DISPLAY(), tmp_group_source[i]);
+ xkb->group_names[i] = ptr;
+ if ((ptr != NULL) && ((ptr = strchr(ptr, '('))) != NULL)
+ *ptr = '\0';
+@@ -153,7 +166,7 @@ static int do_init_xkb(XkbPlugin * xkb)
+ Atom sym_name_atom = kbd_desc_ptr->names->symbols;
+ char * sym_name;
+ if ((sym_name_atom == None)
+- || ((sym_name = XGetAtomName(xkb->dsp, sym_name_atom)) == NULL))
++ || ((sym_name = XGetAtomName(GDK_DISPLAY(), sym_name_atom)) == NULL))
+ goto HastaLaVista;
+
+ /* Parse and store symbol names. */
+@@ -190,83 +203,106 @@ static int do_init_xkb(XkbPlugin * xkb)
+ {
+ xkb->group_count = 2;
+ xkb->symbol_names[1] = xkb->symbol_names[0];
+- xkb->symbol_names[0] = strdup("us");
+- xkb->group_names[0] = strdup("US/ASCII");
+- xkb->group_names[1] = strdup("Japanese");
++ xkb->symbol_names[0] = g_strdup("us");
++ xkb->group_names[0] = g_strdup("US/ASCII");
++ xkb->group_names[1] = g_strdup("Japanese");
+ }
+ else if (count < xkb->group_count)
+ {
+ /* Ensure that the names are fully initialized. */
+ int j = count, k = xkb->group_count;
+ while(--j >= 0) xkb->symbol_names[--k] = xkb->symbol_names[j];
+- while(--k >= 0) xkb->symbol_names[k] = strdup("en_US");
++ while(--k >= 0) xkb->symbol_names[k] = g_strdup("en_US");
+ }
+
+- /* Enxure that the names are fully initialized. */
++ /* Ensure that the names are fully initialized. */
+ for (i = 0; i < xkb->group_count; i++)
+ {
+ if (xkb->symbol_names[i] == NULL)
+ {
+ ERR("\nGroup Symbol %i is undefined, set to 'U/A' !\n", i+1);
+- xkb->symbol_names[i] = strdup("U/A");
++ xkb->symbol_names[i] = g_strdup("U/A");
+ }
+ }
+
++ /* Create or recreate hash table.
++ * The layout that was associated to the windows may or may not be at the same group number,
++ * and worse, may no longer exist, which there is no meaningful way to deal with. */
++ if (xkb->group_hash_table != NULL)
++ g_hash_table_destroy(xkb->group_hash_table);
++ xkb->group_hash_table = g_hash_table_new(g_direct_hash, NULL);
++
+ status = True;
+
+ HastaLaVista:
+ if (kbd_desc_ptr != NULL)
+ XkbFreeKeyboard(kbd_desc_ptr, 0, True);
++
+ return status;
+ }
+
++/* GDK event filter that receives events from all windows and the Xkb extension. */
++static GdkFilterReturn xkb_event_filter(GdkXEvent * xevent, GdkEvent * event, XkbPlugin * xkb)
++{
++ XEvent * ev = (XEvent *) xevent;
++
++ if (ev->xany.type == xkb->base_event_code + XkbEventCode)
++ {
++ /* Xkb event. */
++ XkbEvent * xkbev = (XkbEvent *) ev;
++ if (xkbev->any.xkb_type == XkbNewKeyboardNotify)
++ {
++ initialize_keyboard_description(xkb);
++ refresh_group_xkb(xkb);
++ xkb_redraw(xkb);
++ xkb_enter_locale_by_process(xkb);
++ }
++ else if (xkbev->any.xkb_type == XkbStateNotify)
++ {
++ if (xkbev->state.group != xkb->current_group_xkb_no)
++ {
++ /* Switch to the new group and redraw the display. */
++ xkb->current_group_xkb_no = xkbev->state.group;
++ refresh_group_xkb(xkb);
++ xkb_redraw(xkb);
++ xkb_enter_locale_by_process(xkb);
++ }
++ }
++ }
++ return GDK_FILTER_CONTINUE;
++}
++
+ /* Initialize the Xkb interface. */
+ void xkb_mechanism_constructor(XkbPlugin * xkb)
+ {
+- /* Enable the Xkb extension on all clients. */
+- XkbIgnoreExtension(False);
+-
+- /* Open the display. */
+- int major = XkbMajorVersion;
+- int minor = XkbMinorVersion;
+- char * display_name = "";
+- int event_code;
+- int error_rtrn;
+- int reason_rtrn;
+- xkb->dsp = XkbOpenDisplay(display_name, &event_code, &error_rtrn, &major, &minor, &reason_rtrn);
+-
+- switch (reason_rtrn)
++ /* Initialize Xkb extension. */
++ int opcode;
++ int maj = XkbMajorVersion;
++ int min = XkbMinorVersion;
++ if ((XkbLibraryVersion(&maj, &min))
++ && (XkbQueryExtension(GDK_DISPLAY(), &opcode, &xkb->base_event_code, &xkb->base_error_code, &maj, &min)))
+ {
+- case XkbOD_BadLibraryVersion:
+- ERR("Bad XKB library version.\n");
+- return;
+- case XkbOD_ConnectionRefused:
+- ERR("Connection to X server refused.\n");
+- return;
+- case XkbOD_BadServerVersion:
+- ERR("Bad X server version.\n");
+- return;
+- case XkbOD_NonXkbServer:
+- ERR("XKB not present.\n");
+- return;
+- case XkbOD_Success:
+- break;
+- }
++ /* Read the keyboard description. */
++ initialize_keyboard_description(xkb);
+
+- /* Initialize our mechanism. */
+- if (do_init_xkb(xkb) != True)
+- return;
++ /* Establish GDK event filter. */
++ gdk_window_add_filter(NULL, (GdkFilterFunc) xkb_event_filter, (gpointer) xkb);
+
+- /* Specify events we will receive. */
+- XkbSelectEventDetails(xkb->dsp, xkb->device_id, XkbStateNotify, XkbAllStateComponentsMask, XkbGroupStateMask);
++ /* Specify events we will receive. */
++ XkbSelectEvents(GDK_DISPLAY(), XkbUseCoreKbd, XkbNewKeyboardNotifyMask, XkbNewKeyboardNotifyMask);
++ XkbSelectEventDetails(GDK_DISPLAY(), XkbUseCoreKbd, XkbStateNotify, XkbAllStateComponentsMask, XkbGroupStateMask);
+
+- /* Get current state. */
+- refresh_group_xkb(xkb);
++ /* Get current state. */
++ refresh_group_xkb(xkb);
++ }
+ }
+
+ /* Deallocate resources associated with Xkb interface. */
+ void xkb_mechanism_destructor(XkbPlugin * xkb)
+ {
++ /* Remove event filter. */
++ gdk_window_remove_filter(NULL, (GdkFilterFunc) xkb_event_filter, xkb);
++
+ /* Free group and symbol name memory. */
+ int i;
+ for (i = 0; i < xkb->group_count; i++)
+@@ -283,21 +319,11 @@ void xkb_mechanism_destructor(XkbPlugin * xkb)
+ }
+ }
+
+- /* Close the display. */
+- XCloseDisplay(xkb->dsp);
+- xkb->dsp = NULL;
+-
+ /* Destroy the hash table. */
+ g_hash_table_destroy(xkb->group_hash_table);
+ xkb->group_hash_table = NULL;
+ }
+
+-/* Return the connection number for the display. */
+-int xkb_get_connection_number(XkbPlugin * xkb)
+-{
+- return ConnectionNumber(xkb->dsp);
+-}
+-
+ /* Set the layout to the next layout. */
+ int xkb_change_group(XkbPlugin * xkb, int increment)
+ {
+@@ -307,33 +333,13 @@ int xkb_change_group(XkbPlugin * xkb, int increment)
+ if (next_group >= xkb->group_count) next_group = 0;
+
+ /* Execute the change. */
+- XkbLockGroup(xkb->dsp, xkb->device_id, next_group);
++ XkbLockGroup(GDK_DISPLAY(), XkbUseCoreKbd, next_group);
+ refresh_group_xkb(xkb);
+ xkb_redraw(xkb);
+ xkb_enter_locale_by_process(xkb);
+ return 1;
+ }
+
+-/* Callback when activity detected on the Xkb channel. */
+-gboolean xkb_gio_callback(GIOChannel * source, GIOCondition condition, gpointer data)
+-{
+- XkbPlugin * xkb = (XkbPlugin *) data;
+-
+- XkbEvent evnt;
+- XNextEvent(xkb->dsp, &evnt.core);
+- if ((evnt.type == xkb->base_event_code)
+- && (evnt.any.xkb_type == XkbStateNotify)
+- && (evnt.state.group != xkb->current_group_xkb_no))
+- {
+- /* Switch to the new group and redraw the display. */
+- xkb->current_group_xkb_no = evnt.state.group;
+- refresh_group_xkb(xkb);
+- xkb_redraw(xkb);
+- xkb_enter_locale_by_process(xkb);
+- }
+- return TRUE;
+-}
+-
+ /* React to change of focus by switching to the application's layout or the default layout. */
+ void xkb_active_window_changed(XkbPlugin * xkb, gint pid)
+ {
+@@ -345,7 +351,7 @@ void xkb_active_window_changed(XkbPlugin * xkb, gint pid)
+
+ if (new_group_xkb_no < xkb->group_count)
+ {
+- XkbLockGroup(xkb->dsp, xkb->device_id, new_group_xkb_no);
++ XkbLockGroup(GDK_DISPLAY(), XkbUseCoreKbd, new_group_xkb_no);
+ refresh_group_xkb(xkb);
+ }
+ }
+diff --git a/src/plugins/xkb/xkb.h b/src/plugins/xkb/xkb.h
+index 9265198..20c7ed3 100644
+--- a/src/plugins/xkb/xkb.h
++++ b/src/plugins/xkb/xkb.h
+@@ -49,10 +49,8 @@ typedef struct {
+ GtkWidget * per_app_default_layout_menu; /* Combo box of all available layouts */
+
+ /* Mechanism. */
+- Display * dsp; /* Handle to X display */
+ int base_event_code; /* Result of initializing Xkb extension */
+ int base_error_code;
+- int device_id; /* Keyboard device ID (always "core keyboard") */
+ int current_group_xkb_no; /* Current layout */
+ int group_count; /* Count of groups as returned by Xkb */
+ char * group_names[XkbNumKbdGroups]; /* Group names as returned by Xkb */
+@@ -67,12 +65,11 @@ extern int xkb_get_current_group_xkb_no(XkbPlugin * xkb);
+ extern int xkb_get_group_count(XkbPlugin * xkb);
+ extern const char * xkb_get_symbol_name_by_res_no(XkbPlugin * xkb, int group_res_no);
+ extern const char * xkb_get_current_group_name(XkbPlugin * xkb);
+-extern const char * xkb_get_current_group_name_lowercase(XkbPlugin * xkb);
++extern const char * xkb_get_current_symbol_name(XkbPlugin * xkb);
++extern const char * xkb_get_current_symbol_name_lowercase(XkbPlugin * xkb);
+ extern void xkb_mechanism_constructor(XkbPlugin * xkb);
+ extern void xkb_mechanism_destructor(XkbPlugin * xkb);
+-extern int xkb_get_connection_number(XkbPlugin * xkb);
+ extern int xkb_change_group(XkbPlugin * xkb, int increment);
+-extern gboolean xkb_gio_callback(GIOChannel * source, GIOCondition condition, gpointer data);
+ extern void xkb_active_window_changed(XkbPlugin * xkb, GPid pid);
+
+ #endif
+--
+1.7.0
+
diff --git a/extra/lxpanel/PKGBUILD b/extra/lxpanel/PKGBUILD
new file mode 100644
index 000000000..9ad1d1774
--- /dev/null
+++ b/extra/lxpanel/PKGBUILD
@@ -0,0 +1,25 @@
+$Id: PKGBUILD 94639 2010-10-08 22:08:39Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=lxpanel
+pkgver=0.5.6
+pkgrel=1
+pkgdesc="Panel of the LXDE Desktop"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'alsa-lib' 'menu-cache' 'lxmenu-data')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz
+ Fix-build-issue-with-symbol-alarm-showing-up-on-F14-.patch)
+optdepends=(pcmanfm)
+md5sums=('3c6b5498b5f4109c3913b10a66809fe6'
+ 'afe03191cbeccfc702f9a04bffd62dbf')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i $srcdir/Fix-build-issue-with-symbol-alarm-showing-up-on-F14-.patch
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/lxsession-lite/PKGBUILD b/extra/lxsession-lite/PKGBUILD
new file mode 100644
index 000000000..cc60a844b
--- /dev/null
+++ b/extra/lxsession-lite/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=lxsession-lite
+pkgver=0.4.5
+pkgrel=1
+pkgdesc="Session manager of the LXDE Desktop (light version)"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('gtk2' 'dbus')
+makedepends=('pkgconfig' 'intltool')
+replaces=("lxde-settings-daemon")
+conflicts=('lxsession' 'lxde-settings-daemon')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/lxsession-${pkgver}.tar.gz)
+md5sums=('d5cd0cb733748191b2c7371c9efda155')
+
+build() {
+ cd "$srcdir/lxsession-$pkgver"
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/lxsplit/PKGBUILD b/extra/lxsplit/PKGBUILD
new file mode 100644
index 000000000..cfc838f3c
--- /dev/null
+++ b/extra/lxsplit/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 26529 2009-02-08 21:47:07Z eric $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lxsplit
+pkgver=0.2.4
+pkgrel=1
+pkgdesc="Command-line file splitter/joiner compatible with any HJSplit version"
+arch=('i686' 'x86_64')
+url="http://lxsplit.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+#source=(http://www.freebyte.com/download/$pkgname.tar.gz)
+source=(http://downloads.sourceforge.net/sourceforge/lxsplit/lxsplit-${pkgver}.tar.gz)
+md5sums=('ed21a08c167c08d4d81c820782947cb1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -d ${pkgdir}/usr/bin
+ make || return 1
+ make INSTALL_PATH=${pkgdir}/usr/bin install || return 1
+}
diff --git a/extra/lynx/PKGBUILD b/extra/lynx/PKGBUILD
new file mode 100644
index 000000000..344bdfa54
--- /dev/null
+++ b/extra/lynx/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 108237 2011-01-30 14:55:53Z andrea $
+# Maintainer:
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=lynx
+pkgver=2.8.7
+_pkgver=2-8-7
+pkgrel=4
+pkgdesc="A text browser for the World Wide Web"
+url="http://lynx.isc.org/"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('ncurses' 'openssl')
+backup=('etc/lynx.cfg')
+source=("http://lynx.isc.org/release/${pkgname}${pkgver}.tar.gz")
+md5sums=('e36d70f3f09b2d502055ca67f09e363c')
+
+build() {
+ cd ${srcdir}/${pkgname}${_pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-ssl \
+ --enable-nls \
+ --enable-ipv6 \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}${_pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # FS#20404 - points to local help
+ sed -i -e "s|^HELPFILE.*$|HELPFILE:file:///usr/share/doc/lynx/lynx_help/lynx_help_main.html|" ${pkgdir}/etc/lynx.cfg
+
+ install -d ${pkgdir}/usr/share/doc/lynx
+ cp -rf lynx_help ${pkgdir}/usr/share/doc/lynx
+}
diff --git a/extra/lyx/PKGBUILD b/extra/lyx/PKGBUILD
new file mode 100644
index 000000000..dec0a4419
--- /dev/null
+++ b/extra/lyx/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 112021 2011-03-03 08:05:12Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=lyx
+pkgver=1.6.9
+pkgrel=2
+pkgdesc="An advanced open-source document processor."
+arch=('i686' 'x86_64')
+url="http://www.lyx.org"
+depends=('qt' 'texlive-core' 'python2' 'perl' 'imagemagick' 'aspell' 'aiksaurus' 'boost-libs')
+makedepends=('boost')
+license=('GPL')
+source=(ftp://ftp.lyx.org/pub/lyx/stable/1.6.x/$pkgname-$pkgver.tar.bz2 \
+ lyx.desktop)
+sha1sums=('a1acacc8a26546542e32977ae222e811c98b1ca4'
+ 'e207a0b14d58aeb7b83f8fc47ab2e668cbc66844')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ find . -type f -exec sed -i 's|#!.*python|#!/usr/bin/env python2|' {} +
+ sed -i 's|"python|"python2|' lib/configure.py src/support/os.cpp
+ ./configure --prefix=/usr \
+ --with-frontend=qt4 --without-included-boost
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # install desktop entry
+ install -Dm644 "${srcdir}/lyx.desktop" "${pkgdir}/usr/share/applications/lyx.desktop"
+}
diff --git a/extra/lyx/lyx.desktop b/extra/lyx/lyx.desktop
new file mode 100644
index 000000000..91a90d810
--- /dev/null
+++ b/extra/lyx/lyx.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Lyx
+Comment=Latex WYSIWYM Editor
+Icon=/usr/share/lyx/images/lyx.png
+Exec=lyx
+Terminal=false
+Type=Application
+StartupNotify=false
+Categories=Office;
diff --git a/extra/lzo/PKGBUILD b/extra/lzo/PKGBUILD
new file mode 100644
index 000000000..6bbed4e68
--- /dev/null
+++ b/extra/lzo/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 37199 2009-05-01 03:25:47Z eric $
+# Contributor: Low Kian Seong <fastmail_low@speedymail.org>
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=lzo
+pkgver=1.08
+pkgrel=5
+pkgdesc="LZO is a portable lossless data compression library written in ANSI C"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.oberhumer.com/opensource/lzo"
+depends=('glibc')
+makedepends=('nasm')
+options=('!libtool')
+source=(http://www.oberhumer.com/opensource/${pkgname}/download/${pkgname}-${pkgver}.tar.gz
+ nasm-gcc3.patch)
+md5sums=('ab94d3da364c7cbd5b78d76f1875b0f6' '43fb13762383b572d22152f8815ea4a5')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/nasm-gcc3.patch || return 1
+ autoconf || return 1
+ ./configure --prefix=/usr --enable-shared || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/lzo/nasm-gcc3.patch b/extra/lzo/nasm-gcc3.patch
new file mode 100644
index 000000000..19b351b3d
--- /dev/null
+++ b/extra/lzo/nasm-gcc3.patch
@@ -0,0 +1,40 @@
+--- configure.in 2002-07-13 01:31:52.000000000 +0000
++++ configure.in.patched 2003-09-10 14:37:31.000000000 +0000
+@@ -319,13 +319,13 @@
+ [AC_TRY_RUN([#include <stdio.h>
+ int test() {
+ #if defined(__GNUC__)
+- __asm__ __volatile__ ("
+- .align 4
+-mfx_a1:
+- .byte 0
+- .align 4
+-mfx_a2:
+- ");
++ __asm__ __volatile__ (
++ ".align 4\n"
++"mfx_a1:\n"
++ ".byte 0\n"
++ ".align 4\n"
++"mfx_a2:\n"
++ );
+ #endif
+ return 0;
+ }
+@@ -363,11 +363,11 @@
+ #endif
+ int mfx_asm_func();
+ static void test() {
+- __asm__ __volatile__("
+- .globl mfx_asm_func
+- mfx_asm_func:
+- .byte 0
+- ");
++ __asm__ __volatile__(
++ ".globl mfx_asm_func\n"
++ "mfx_asm_func:\n"
++ ".byte 0\n"
++ );
+ }
+ ], [
+ return mfx_asm_func();
diff --git a/extra/lzop/PKGBUILD b/extra/lzop/PKGBUILD
new file mode 100644
index 000000000..240422d27
--- /dev/null
+++ b/extra/lzop/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 98428 2010-11-08 21:29:39Z andrea $
+# Maintainer:
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=lzop
+pkgver=1.03
+pkgrel=1
+pkgdesc="File compressor using lzo lib"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.lzop.org/"
+depends=('lzo2')
+source=(http://www.lzop.org/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('006c5e27fb78cdd14a628fdfa5aa1905')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/m17n-lib/PKGBUILD b/extra/m17n-lib/PKGBUILD
new file mode 100644
index 000000000..103eae831
--- /dev/null
+++ b/extra/m17n-lib/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 106797 2011-01-19 09:42:18Z bisson $
+# Contributor: Camille Moncelier <pix@devlife.org>
+
+pkgname=m17n-lib
+pkgver=1.6.2
+pkgrel=2
+pkgdesc='A multilingual text processing library (runtimes)'
+arch=('i686' 'x86_64')
+url='http://www.m17n.org/m17n-lib/'
+license=('GPL')
+depends=('libxft' 'm17n-db' 'fribidi' 'libxml2' 'gd' 'libotf>=0.9.11')
+optdepends=('anthy: to use the anthy input method')
+options=('!libtool' '!makeflags')
+source=("http://www.m17n.org/m17n-lib-download/$pkgname-$pkgver.tar.gz"
+ 'locale.patch')
+sha1sums=('9b9ada79357dd56c90c64cd36845c5537c363d79'
+ '55a09b9d8e6ea590d5c8f06d1397bfa0b00c1697')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 -i ../locale.patch # cf. FS#20482
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/m17n-lib/locale.patch b/extra/m17n-lib/locale.patch
new file mode 100644
index 000000000..79fed402d
--- /dev/null
+++ b/extra/m17n-lib/locale.patch
@@ -0,0 +1,51 @@
+--- old/src/locale.c 2010/03/19 11:59:43 1.12
++++ new/src/locale.c 2010/11/05 11:20:41 1.13
+@@ -86,34 +86,24 @@
+ MLocale *mlocale_monetary, *mlocale_numeric, ;
+ #endif
+
+-/** Parse locale name NAME and return a newly created MLocale object.
+- If the locale is not supported by the system, return NULL. */
++/** Parse locale name NAME and return a newly created MLocale object. */
+
+ static MLocale *
+ make_locale (const char *name)
+ {
+- char *current, *new, *str;
++ char *str;
+ int len;
+ MLocale *locale;
+ char c;
+
+- str = setlocale (LC_CTYPE, NULL);
+- len = strlen (str) + 1;
+- current = alloca (len);
+- memcpy (current, str, len);
+-
+- if (! (new = setlocale (LC_CTYPE, name)))
+- return NULL;
+-
+-
+ M17N_OBJECT (locale, NULL, MERROR_LOCALE);
+- locale->name = msymbol (new);
++ locale->name = msymbol (name);
+ msymbol_put (locale->name, M_locale, (void *) locale);
+ M17N_OBJECT_UNREF (locale);
+
+- len = strlen (new) + 1;
++ len = strlen (name) + 1;
+ str = alloca (len);
+- memcpy (str, new, len);
++ memcpy (str, name, len);
+
+ c = '\0';
+ while (1)
+@@ -162,8 +152,6 @@
+ }
+ else
+ locale->coding = Mcoding_us_ascii;
+-
+- setlocale (LC_CTYPE, current);
+ return locale;
+ }
+
diff --git a/extra/madwifi-utils/PKGBUILD b/extra/madwifi-utils/PKGBUILD
new file mode 100644
index 000000000..35feeea07
--- /dev/null
+++ b/extra/madwifi-utils/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 70649 2010-02-27 18:41:30Z tpowa $
+# Originally by kleptophobiac <kleptophobiac@gmail.com>
+# Modified by James Rayner for the repositories <iphitus@gmail.com>
+
+pkgname=madwifi-utils
+pkgver=0.9.4.4119
+_kernver=2.6.33-ARCH
+pkgrel=1
+pkgdesc="Userspace tools of madwifi drivers for Atheros wireless chipsets."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://madwifi-project.org"
+depends=('wireless_tools')
+makedepends=('sharutils')
+provides=("madwifi-ng-utils")
+conflicts=("madwifi-ng-utils")
+replaces=("madwifi-ng-utils")
+# subversion source: svn checkout http://madwifi-project.org/svn/madwifi/trunk madwifi
+source=(ftp://ftp.archlinux.org/other/madwifi/madwifi-${pkgver}.tar.bz2
+ #http://downloads.sourceforge.net/sourceforge/madwifi/madwifi-$pkgver.tar.gz
+ )
+
+build() {
+ [ "${CARCH}" == "i686" ] && export ARCH=i386
+
+ export KERNELPATH=/lib/modules/${_kernver}/build
+ #cd $startdir/src/madwifi-$pkgver
+ cd $startdir/src/madwifi
+ make tools|| return 1
+ make DESTDIR=$startdir/pkg \
+ BINDIR=/usr/bin \
+ MANDIR=/usr/share/man \
+ install-tools
+}
+md5sums=('a720a20264b312c0ff906b9888bb49ae')
diff --git a/extra/madwifi/PKGBUILD b/extra/madwifi/PKGBUILD
new file mode 100644
index 000000000..4c6e24ed3
--- /dev/null
+++ b/extra/madwifi/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 105333 2011-01-07 20:54:16Z tpowa $
+# Originally by kleptophobiac <kleptophobiac@gmail.com>
+# Modified by James Rayner for the repositories <iphitus@gmail.com>
+
+_kernver=2.6.37-ARCH
+
+pkgname=madwifi
+pkgver=0.9.4.4133
+pkgrel=4
+pkgdesc="Madwifi drivers for Atheros wireless chipsets. For stock arch 2.6 kernel"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://madwifi-project.org"
+depends=('madwifi-utils' 'kernel26>=2.6.37' 'kernel26<2.6.38')
+makedepends=('kernel26-headers>=2.6.37' 'kernel26-headers<2.6.38')
+makedepends=('sharutils')
+install=madwifi-ng.install
+# subversion source: svn checkout http:/madwifi-project.org/svn/madwifi/trunk madwifi
+source=(ftp://ftp.archlinux.org/other/madwifi/madwifi-${pkgver}.tar.bz2
+ #http://downloads.sourceforge.net/madwifi/madwifi-${pkgver}.tar.gz
+ )
+
+build() {
+ [ "${CARCH}" = "i686" ] && export ARCH=i386
+
+ #cd $startdir/src/$pkgname-$pkgver
+ cd $startdir/src/$pkgname
+ sed -i -e 's/-Werror//g' Makefile.inc
+ make KERNELPATH=/lib/modules/$_kernver/build KERNELRELEASE=$_kernver modules|| return 1
+ make KERNELPATH=/lib/modules/$_kernver/build KERNELRELEASE=$_kernver modules \
+ DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver install-modules
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
+
+ # install to wireless kernel directory
+ mkdir -p $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/madwifi
+ mv $startdir/pkg/lib/modules/$_kernver/net/* $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/madwifi
+ rm -r $startdir/pkg/lib/modules/$_kernver/net/
+}
+
+md5sums=('ca3c3504d000e7b3d7063af46271c932')
diff --git a/extra/madwifi/kernel-2.6.30.patch b/extra/madwifi/kernel-2.6.30.patch
new file mode 100644
index 000000000..f844668de
--- /dev/null
+++ b/extra/madwifi/kernel-2.6.30.patch
@@ -0,0 +1,14 @@
+--- ath/if_athvar.h~ 2009-06-13 09:38:53.000000000 +0200
++++ ath/if_athvar.h 2009-06-13 09:38:53.000000000 +0200
+@@ -103,11 +103,6 @@
+ /*
+ * Guess how the interrupt handler should work.
+ */
+-#if !defined(IRQ_NONE)
+-typedef void irqreturn_t;
+-#define IRQ_NONE
+-#define IRQ_HANDLED
+-#endif /* !defined(IRQ_NONE) */
+
+ #ifndef SET_MODULE_OWNER
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
diff --git a/extra/madwifi/madwifi-ng.install b/extra/madwifi/madwifi-ng.install
new file mode 100644
index 000000000..a6dfd6568
--- /dev/null
+++ b/extra/madwifi/madwifi-ng.install
@@ -0,0 +1,14 @@
+post_install() {
+ KERNEL_VERSION='2.6.37-ARCH'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_upgrade() {
+ KERNEL_VERSION='2.6.37-ARCH'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.37-ARCH'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
diff --git a/extra/mahjong/PKGBUILD b/extra/mahjong/PKGBUILD
new file mode 100644
index 000000000..2aaff6579
--- /dev/null
+++ b/extra/mahjong/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 47741 2009-07-25 22:52:50Z giovanni $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+pkgname=mahjong
+pkgver=1.10
+pkgrel=1
+pkgdesc="The classical game of Mah Jongg (not the solitare version). Includes network play"
+arch=('i686' 'x86_64')
+url="http://www.stevens-bradfield.com/MahJong/"
+license=('GPL' 'custom')
+depends=('gtk2')
+source=(http://mahjong.julianbradfield.org/Source/mj-$pkgver-src.tar.gz)
+md5sums=('f9bacf9fd6743d5e3a2fd86863607ce2')
+
+build() {
+ cd $srcdir/mj-$pkgver-src
+ make || return 1
+ make DESTDIR=$pkgdir/usr/ MANDIR=share/man/man1 install install.man
+ install -m644 -D tiles-v1/README \
+ $pkgdir/usr/share/licenses/$pkgname/tiles-license.txt
+}
diff --git a/extra/mail-notification/PKGBUILD b/extra/mail-notification/PKGBUILD
new file mode 100644
index 000000000..6d072f4aa
--- /dev/null
+++ b/extra/mail-notification/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 112858 2011-03-07 09:46:50Z ibiru $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=mail-notification
+pkgver=5.4
+pkgrel=7
+pkgdesc="Tray icon application that informs you if you have new mail"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/mailnotify/"
+license=('GPL3' 'FDL')
+depends=('cyrus-sasl-plugins' 'gmime' 'libnotify>=0.7.1' 'gnome-keyring' 'hicolor-icon-theme' 'notification-daemon' 'libgnomeui')
+makedepends=('gob2' 'intltool' 'evolution' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+install=mail-notification.install
+source=(http://savannah.nongnu.org/download/mailnotify/${pkgname}-${pkgver}.tar.bz2
+ dont-update-cache.patch
+ remove-ubuntu-special-case.patch
+ gmime-2.4.patch
+ evolution-gtkhtml.patch
+ evolution.patch
+ mail-notification-5.4-icons.patch
+ mail-notification-5.4-camel_headers.patch)
+md5sums=('c8dc33a61251acb5474e56eab6b18f43'
+ '6007bc30e789dab0a8282038e0335eb9'
+ '9cadd61bbd9c324b2916ec980231e0f2'
+ '447cc20f035b9cf1a391027684ce1297'
+ '500b2e42fbc5078e61407923a07b6e94'
+ '46568640b7f97ab9ab7b54d49bee7e8e'
+ '8f602891a694ceaa91f845d97ae51b39'
+ 'f79939f593b2e8659e302df72c2b54b1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i "${srcdir}/dont-update-cache.patch"
+ patch -Np0 -i "${srcdir}/remove-ubuntu-special-case.patch"
+ patch -Np1 -i "${srcdir}/gmime-2.4.patch"
+ patch -Np1 -i "${srcdir}/evolution-gtkhtml.patch"
+ patch -Np0 -i "${srcdir}/evolution.patch"
+ patch -Np0 -i "${srcdir}/mail-notification-5.4-icons.patch"
+ patch -Np1 -i "${srcdir}/mail-notification-5.4-camel_headers.patch"
+
+ ./jb configure prefix=/usr sysconfdir=/etc \
+ localstatedir=/var destdir="${pkgdir}" \
+ gconf-schemas-dir=/etc/gconf/schemas install-gconf-schemas=yes \
+ cflags="${CFLAGS}" cppflags="${CXXFLAGS}" ldflags="${LDFLAGS}" \
+ library-mode=0755
+ ./jb build
+ GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 ./jb install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas --domain mail-notification ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/mail-notification/dont-update-cache.patch b/extra/mail-notification/dont-update-cache.patch
new file mode 100644
index 000000000..81216835e
--- /dev/null
+++ b/extra/mail-notification/dont-update-cache.patch
@@ -0,0 +1,22 @@
+--- jbsrc/jb.c.~1~ 2008-03-20 16:53:02.000000000 +0100
++++ jbsrc/jb.c 2008-03-26 20:51:45.641363619 +0100
+@@ -327,7 +327,6 @@
+ jb_package_add_resources (void)
+ {
+ JBGroup *group;
+- JBRule *rule;
+ JBObject *object;
+
+ if (jb_variable_get_bool("compile-warnings"))
+@@ -362,11 +361,6 @@
+ if (jb_variable_get_bool("hotmail"))
+ jb_group_add_data_file(group, "hotmail.png", "$pkgdatadir");
+
+- rule = jb_rule_new();
+- jb_rule_set_install_message(rule, "updating the GTK+ icon cache");
+- jb_rule_add_install_command(rule, "-gtk-update-icon-cache -f -t $datadir/icons/hicolor");
+- jb_group_add_resource(group, JB_GROUP_RESOURCE(rule));
+-
+ jb_group_add(group);
+
+ /*** data ******************************************************************/
diff --git a/extra/mail-notification/evolution-gtkhtml.patch b/extra/mail-notification/evolution-gtkhtml.patch
new file mode 100644
index 000000000..fe9b0ddf8
--- /dev/null
+++ b/extra/mail-notification/evolution-gtkhtml.patch
@@ -0,0 +1,11 @@
+--- mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c.orig 2009-10-12 23:15:03.000000000 +0200
++++ mail-notification-5.4/jbsrc/lib/src/extras/jb-evolution-plugin.c 2009-10-12 23:17:26.000000000 +0200
+@@ -41,7 +41,7 @@
+ if (! minversion)
+ minversion = "2.12";
+
+- packages = g_strdup_printf("evolution-plugin >= %s", minversion);
++ packages = g_strdup_printf("evolution-plugin >= %s libgtkhtml-3.14 gtkhtml-editor-3.14", minversion);
+ result = jb_check_packages("Evolution", "evolution-plugin", packages);
+ g_free(packages);
+
diff --git a/extra/mail-notification/evolution.patch b/extra/mail-notification/evolution.patch
new file mode 100644
index 000000000..073818afe
--- /dev/null
+++ b/extra/mail-notification/evolution.patch
@@ -0,0 +1,102 @@
+--- build/src/mn-evolution-server.c.orig 2008-09-30 15:30:07.756216978 +0200
++++ build/src/mn-evolution-server.c 2008-09-30 15:30:49.950220711 +0200
+@@ -27,6 +27,7 @@
+ #include <stdio.h>
+ #include <libintl.h>
+ #include <gobject/gvaluecollector.h>
++#include <libedataserver/eds-version.h>
+ #include <camel/camel-folder.h>
+ #include <mail/em-folder-view.h>
+ #include <mail/em-format.h>
+@@ -595,7 +596,12 @@
+
+ for (i = 0; i < summary->len; i++)
+ {
++#if EDS_CHECK_VERSION(2,23,5)
++ char *uid = summary->pdata[i];
++ CamelMessageInfo *info = camel_folder_get_message_info(folder, uid);
++#else
+ CamelMessageInfo *info = summary->pdata[i];
++#endif
+
+ if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0)
+ g_ptr_array_add(*ret, self_camel_message_info_to_dbus_struct(info));
+--- build/src/mn-evolution-folder-tree-server.c.evolution 2010-02-01 10:00:12.128683776 -0500
++++ build/src/mn-evolution-folder-tree-server.c 2010-02-01 10:02:32.809697243 -0500
+@@ -26,5 +26,8 @@
+ #include <dbus/dbus.h>
++#include <libedataserver/eds-version.h>
++#if !EDS_CHECK_VERSION(2,29,0)
+ #include <mail/mail-component.h>
++#endif
+ #include <mail/em-folder-tree.h>
+ #include "mn-evolution-plugin.h"
+ #include "mn-evolution.h"
+@@ -396,7 +399,11 @@ mn_evolution_folder_tree_server_construc
+
++#if EDS_CHECK_VERSION(2,29,0)
++ selfp->tree = em_folder_tree_new();
++#else
+ EMFolderTreeModel *model;
+
+ model = mail_component_peek_tree_model(mail_component_peek());
+ selfp->tree = em_folder_tree_new_with_model(model);
++#endif
+
+ selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id);
+--- build/src/mn-evolution-server.c.evolution 2010-02-01 10:06:36.484698060 -0500
++++ build/src/mn-evolution-server.c 2010-02-01 10:09:01.946682081 -0500
+@@ -28,9 +28,14 @@
+ #include <gobject/gvaluecollector.h>
+ #include <libedataserver/eds-version.h>
+ #include <camel/camel-folder.h>
++#if EDS_CHECK_VERSION(2,29,0)
++#include <shell/e-shell.h>
++#include <mail/e-mail-browser.h>
++#else
+ #include <mail/em-folder-view.h>
+ #include <mail/em-format.h>
+ #include <mail/em-message-browser.h>
++#endif
+ #include <mail/em-utils.h>
+ #include <mail/mail-session.h>
+ #include <mail/mail-tools.h>
+@@ -568,6 +573,19 @@ mn_evolution_server_open_message (MNEvol
+ folder = self_lookup_folder(folder_uri, err);
+ if (folder)
+ {
++#if EDS_CHECK_VERSION(2,29,0)
++ EShell *shell;
++ EShellBackend *shell_backend;
++ GtkWidget *browser;
++
++ shell = e_shell_get_default ();
++ shell_backend = e_shell_get_backend_by_name (shell, "mail");
++
++ browser = e_mail_browser_new (shell_backend);
++ e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri);
++ e_mail_reader_set_message (E_MAIL_READER (browser), message_uid);
++ gtk_widget_show (browser);
++#else
+ GtkWidget *browser;
+
+ /* modelled after Evolution's handleuri_got_folder() */
+@@ -578,6 +596,7 @@ mn_evolution_server_open_message (MNEvol
+ em_folder_view_set_folder((EMFolderView *) browser, folder, folder_uri);
+ em_folder_view_set_message((EMFolderView *) browser, message_uid, FALSE);
+ gtk_widget_show(((EMMessageBrowser *) browser)->window);
++#endif
+
+ camel_object_unref(folder);
+ }
+--- src/mn-evolution-plugin.c.evolution 2008-05-22 11:45:35.000000000 -0400
++++ src/mn-evolution-plugin.c 2010-02-01 11:52:06.141664757 -0500
+@@ -204,7 +204,7 @@ connect_to_session_bus (void)
+ }
+
+ int
+-e_plugin_lib_enable (EPluginLib *ep, int enable)
++e_plugin_lib_enable (EPlugin *ep, int enable)
+ {
+ static gboolean enabled = FALSE;
+ GError *err = NULL;
diff --git a/extra/mail-notification/gmime-2.4.patch b/extra/mail-notification/gmime-2.4.patch
new file mode 100644
index 000000000..0d16357fb
--- /dev/null
+++ b/extra/mail-notification/gmime-2.4.patch
@@ -0,0 +1,63 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-base-mbox-mailbox-backend.c 2008-12-23 14:48:28.000000000 +0300
+@@ -265,7 +265,7 @@
+ mime_message = g_mime_parser_construct_message(parser);
+ if (mime_message)
+ {
+- if (g_mime_message_get_header(mime_message, "X-Mozilla-Status"))
++ if (g_mime_object_get_header(mime_message, "X-Mozilla-Status"))
+ {
+ #if WITH_MOZILLA
+ type = MN_TYPE_MOZILLA_MAILBOX_BACKEND;
+diff -Nrbu mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c
+--- mail-notification-5.4/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:48:49.000000000 +0300
++++ mail-notification-5.4-OK/build/src/mn-mozilla-mailbox-backend.c 2008-12-23 14:46:47.000000000 +0300
+@@ -167,7 +167,7 @@
+
+ const char *header;
+
+- header = g_mime_message_get_header(mime_message, header_name);
++ header = g_mime_object_get_header(mime_message, header_name);
+ if (header && mn_str_ishex(header))
+ return strtol(header, NULL, 16);
+ else
+diff -Nrbu mail-notification-5.4/jbsrc/jb.c mail-notification-5.4-OK/jbsrc/jb.c
+--- mail-notification-5.4/jbsrc/jb.c 2008-05-22 19:47:04.000000000 +0400
++++ mail-notification-5.4-OK/jbsrc/jb.c 2008-12-23 14:43:09.000000000 +0300
+@@ -166,7 +166,7 @@
+ jb_require_packages("GNOME", "gnome", "glib-2.0 >= 2.14 gthread-2.0 gconf-2.0 >= 2.4.0 gtk+-2.0 >= 2.12 libgnomeui-2.0 >= 2.14.0 gnome-vfs-2.0 libglade-2.0 libxml-2.0 libnotify >= 0.4.1");
+ jb_require_packages("D-Bus", "dbus", "dbus-glib-1");
+
+- jb_check_packages_for_options("GMime", "gmime", "gmime-2.0 >= 2.2.7",
++ jb_check_packages_for_options("GMime", "gmime", "gmime-2.4",
+ "hotmail",
+ "imap",
+ "maildir",
+diff -Nrbu mail-notification-5.4/src/mn-message-mime.c mail-notification-5.4-OK/src/mn-message-mime.c
+--- mail-notification-5.4/src/mn-message-mime.c 2008-05-22 19:45:35.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-message-mime.c 2008-12-23 14:46:35.000000000 +0300
+@@ -33,12 +33,12 @@
+ g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), FALSE);
+
+ /* SpamAssassin */
+- spam = g_mime_message_get_header(mime_message, "X-Spam-Status");
++ spam = g_mime_object_get_header(mime_message, "X-Spam-Status");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+ /* bogofilter */
+- spam = g_mime_message_get_header(mime_message, "X-Bogosity");
++ spam = g_mime_object_get_header(mime_message, "X-Bogosity");
+ if (spam && mn_ascii_str_case_has_prefix(spam, "yes"))
+ return TRUE;
+
+@@ -89,7 +89,7 @@
+ {
+ const char *status;
+
+- status = g_mime_message_get_header(mime_message, "Status");
++ status = g_mime_object_get_header(mime_message, "Status");
+ if (status && strchr(status, 'R'))
+ return NULL; /* the message was read */
+ else if (status && strchr(status, 'O'))
diff --git a/extra/mail-notification/mail-notification-5.4-camel_headers.patch b/extra/mail-notification/mail-notification-5.4-camel_headers.patch
new file mode 100644
index 000000000..861e3d215
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-camel_headers.patch
@@ -0,0 +1,36 @@
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-message.c mail-notification-5.4-OK/build/src/mn-evolution-message.c
+--- mail-notification-5.4/build/src/mn-evolution-message.c 2008-05-22 19:47:51.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-message.c 2010-05-04 18:13:31.000000000 +0400
+@@ -25,7 +25,7 @@
+ #line 24 "src/mn-evolution-message.gob"
+
+ #include <glib/gi18n.h>
+-#include <camel/camel-folder-summary.h>
++#include <camel/camel.h>
+ #include "mn-evolution-mailbox.h"
+ #include "mn-message-private.h"
+ #include "mn-evolution-client.h"
+diff -Nrbu mail-notification-5.4/build/src/mn-evolution-server.c mail-notification-5.4-OK/build/src/mn-evolution-server.c
+--- mail-notification-5.4/build/src/mn-evolution-server.c 2010-05-04 18:12:56.000000000 +0400
++++ mail-notification-5.4-OK/build/src/mn-evolution-server.c 2010-05-04 18:13:39.000000000 +0400
+@@ -28,7 +28,7 @@
+ #include <libintl.h>
+ #include <gobject/gvaluecollector.h>
+ #include <libedataserver/eds-version.h>
+-#include <camel/camel-folder.h>
++#include <camel/camel.h>
+ #if EDS_CHECK_VERSION(2,29,0)
+ #include <shell/e-shell.h>
+ #include <mail/e-mail-browser.h>
+diff -Nrbu mail-notification-5.4/src/mn-evolution-plugin.c mail-notification-5.4-OK/src/mn-evolution-plugin.c
+--- mail-notification-5.4/src/mn-evolution-plugin.c 2010-05-04 18:12:56.000000000 +0400
++++ mail-notification-5.4-OK/src/mn-evolution-plugin.c 2010-05-04 18:13:20.000000000 +0400
+@@ -24,7 +24,7 @@
+ #include <dbus/dbus.h>
+ #include <dbus/dbus-glib-lowlevel.h>
+ #include <dbus/dbus-glib-bindings.h>
+-#include <camel/camel-folder.h>
++#include <camel/camel.h>
+ #include <mail/em-event.h>
+ #include <mail/mail-tools.h>
+ #include "mn-evolution.h"
diff --git a/extra/mail-notification/mail-notification-5.4-icons.patch b/extra/mail-notification/mail-notification-5.4-icons.patch
new file mode 100644
index 000000000..66e09b2aa
--- /dev/null
+++ b/extra/mail-notification/mail-notification-5.4-icons.patch
@@ -0,0 +1,36 @@
+Patch by Fedora to use icons that are available in Gnome 2.30+
+
+https://bugzilla.redhat.com/show_bug.cgi?id=573809
+
+--- src/mn-stock.c.icons 2008-05-22 16:45:35.000000000 +0100
++++ src/mn-stock.c 2010-05-20 21:53:20.306859177 +0100
+@@ -32,11 +32,11 @@
+ const char *icon_name;
+ const char *source_stock_id;
+ } icons[] = {
+- { MN_STOCK_MAIL, NULL, "stock_mail" },
+- { MN_STOCK_NO_MAIL, NULL, "stock_inbox" },
++ { MN_STOCK_MAIL, NULL, "mail-notification" },
++ { MN_STOCK_NO_MAIL, NULL, "mail-notification" },
+ { MN_STOCK_LOCAL, NULL, "stock_folder" },
+ { MN_STOCK_REMOTE, NULL, "stock_internet" },
+- { MN_STOCK_UNKNOWN, NULL, "stock_unknown" },
++ { MN_STOCK_UNKNOWN, NULL, "unknown" },
+ { MN_STOCK_ERROR, NULL, NULL, GTK_STOCK_DIALOG_ERROR },
+ #if WITH_GMAIL
+ { MN_STOCK_GMAIL, PKGDATADIR G_DIR_SEPARATOR_S "gmail.png" },
+@@ -51,11 +51,11 @@
+ { MN_STOCK_SYSTEM_MAILBOX, NULL, "system" },
+ #endif
+ #if WITH_EVOLUTION
+- { MN_STOCK_EVOLUTION_MAILBOX, NULL, "evolution" },
++ { MN_STOCK_EVOLUTION_MAILBOX, NULL, "stock_mail-unread" },
+ #endif
+- { MN_STOCK_MAIL_READER, NULL, "stock_mail-handling" },
++ { MN_STOCK_MAIL_READER, NULL, "stock_mail-compose" },
+ { MN_STOCK_OPEN_MESSAGE, NULL, "stock_mail-open" },
+- { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "stock_mark" }
++ { MN_STOCK_CONSIDER_NEW_MAIL_AS_READ, NULL, "mail-mark-read" }
+ };
+ GtkIconFactory *factory;
+ GtkIconTheme *icon_theme;
diff --git a/extra/mail-notification/mail-notification.install b/extra/mail-notification/mail-notification.install
new file mode 100644
index 000000000..21cd94399
--- /dev/null
+++ b/extra/mail-notification/mail-notification.install
@@ -0,0 +1,24 @@
+pkgname=mail-notification
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ kill -s HUP `pidof bonobo-activation-server` > /dev/null 2>&1
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ kill -s HUP `pidof bonobo-activation-server` > /dev/null 2>&1
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/mail-notification/remove-ubuntu-special-case.patch b/extra/mail-notification/remove-ubuntu-special-case.patch
new file mode 100644
index 000000000..4516f32c6
--- /dev/null
+++ b/extra/mail-notification/remove-ubuntu-special-case.patch
@@ -0,0 +1,33 @@
+--- jbsrc/lib/src/core/jb-feature.c.~1~ 2008-04-27 16:47:27.000000000 +0200
++++ jbsrc/lib/src/core/jb-feature.c 2008-07-22 11:40:50.856886210 +0200
+@@ -164,8 +164,6 @@
+ static void
+ gconf_configure (void)
+ {
+- JBVariable *variable;
+-
+ jb_require_program("gconftool-2");
+
+ if (! strcmp(jb_variable_get_string("gconf-config-source"), "autodetect"))
+@@ -178,21 +176,6 @@
+ jb_variable_set_string("gconf-config-source", config_source);
+ g_free(config_source);
+ }
+-
+- /* fix the default schemas dir on Ubuntu */
+- variable = jb_variable_get_variable_or_error("gconf-schemas-dir");
+- if (! variable->user_set)
+- {
+- static const char *ubuntu_dir = "$datadir/gconf/schemas";
+- char *expanded;
+-
+- expanded = jb_variable_expand(ubuntu_dir, NULL);
+-
+- if (g_file_test(expanded, G_FILE_TEST_IS_DIR))
+- jb_variable_set_string("gconf-schemas-dir", ubuntu_dir);
+-
+- g_free(expanded);
+- }
+ }
+
+ static void
diff --git a/extra/mailman/PKGBUILD b/extra/mailman/PKGBUILD
new file mode 100644
index 000000000..7306c6363
--- /dev/null
+++ b/extra/mailman/PKGBUILD
@@ -0,0 +1,85 @@
+# $Id: PKGBUILD 102741 2010-12-10 21:29:32Z andyrtr $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=mailman
+pkgver=2.1.14
+pkgrel=1
+pkgdesc="Mailing list manager with built in web access"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.list.org/"
+depends=('python2' 'smtp-server')
+# 'Defaults.py' should not be changed by users; 'mm_cfg.py' should instead.
+backup=('usr/lib/mailman/Mailman/mm_cfg.py')
+install=$pkgname.install
+source=(http://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tgz
+ mailman-2.1-build.patch
+ rc.mailman)
+md5sums=('9ea163871ceccbd33fee4c9e335fcf7b'
+ 'ed04d062379eb21e39ce1e70e6b1ade2'
+ '3d83d06d0ec3319bf3c7d9df5d18e89f')
+
+# needs to be build as root for pam allowing to create new user/group
+# LANG=C; time rm -rf src/ pkg/ && time makepkg -L --asroot
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # fix calls to /usr/bin/python
+ find . -name '*.py' | xargs sed -i 's@^#!.*python$@#!/usr/bin/python2@'
+
+ # fix directory permissions to satisfy check_perms
+ patch -Np1 -i ${srcdir}/mailman-2.1-build.patch
+
+ # the mailman user and group are required to build (better to satisfy check_perms)
+ if ! egrep '^mailman' /etc/passwd; then
+ msg "Adding user/group mailman (temporarily)"
+ groupadd -g 80 mailman
+ useradd -s /sbin/nologin -c "GNU Mailing List Manager" -d /usr/lib/mailman -u 80 -g mailman -M -r mailman
+ export cleanup=1
+ else
+ export cleanup=0
+ fi
+
+ ./configure --without-permcheck \
+ --prefix=/usr/lib/mailman \
+ --with-var-prefix=/var/lib/mailman \
+ --with-mail-gid=mailman \
+ --with-username=mailman --with-groupname=mailman \
+ --with-cgi-gid=http --with-python=/usr/bin/python2
+
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # let's follow Fedora FHS way; Gentoo does it the other way round
+
+ # Create a link so that the config file mm_cfg.py appears in config
+ # directory /etc/mailman. We don't put mm_cfg.py in the config directory
+ # because its executable code (python file) and the security policy wants
+ # to keep executable code out of /etc and inside of a lib directory instead,
+ # and because traditionally mm_cfg.py was in the Mailman subdirectory and
+ # experienced mailman admins will expect to find it there. But having it
+ # "appear" in the config directory is good practice and heading in the
+ # right direction for FHS compliance.
+ install -d -m755 ${pkgdir}/etc/${pkgname}
+ ln -sv /usr/lib/mailman/Mailman/mm_cfg.py ${pkgdir}/etc/${pkgname}/mm_cfg.py
+
+ # fix some permissions to satisfy check_perms
+ chown -R mailman:mailman $pkgdir/{usr/lib/mailman,var/lib/mailman,etc/mailman/*}
+ chown http:mailman ${pkgdir}/var/lib/mailman/archives/private
+ chmod 2770 ${pkgdir}/var/lib/mailman/archives/private
+ chmod 2755 ${pkgdir}/usr/lib/mailman/cgi-bin/*
+ chmod 2755 ${pkgdir}/usr/lib/mailman/mail/mailman
+
+ # install the launch script
+ install -D -m755 $srcdir/rc.mailman $pkgdir/etc/rc.d/mailman || return 1
+
+ if [ $cleanup -eq 1 ]; then
+ msg "Removing user/group mailman"
+ userdel mailman
+ fi
+}
diff --git a/extra/mailman/mailman-2.1-build.patch b/extra/mailman/mailman-2.1-build.patch
new file mode 100644
index 000000000..d00613ad7
--- /dev/null
+++ b/extra/mailman/mailman-2.1-build.patch
@@ -0,0 +1,694 @@
+diff -ruN mailman-2.1.12-a/bin/Makefile.in mailman-2.1.12-b/bin/Makefile.in
+--- mailman-2.1.12-a/bin/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/bin/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -56,7 +55,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -72,8 +71,6 @@
+ $(INSTALL) -m $(EXEMODE) $(BUILDDIR)/$$f $(DESTDIR)$(SCRIPTSDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/cron/Makefile.in mailman-2.1.12-b/cron/Makefile.in
+--- mailman-2.1.12-a/cron/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/cron/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -68,8 +67,6 @@
+ $(INSTALL) -m $(EXEMODE) $(BUILDDIR)/$$f $(DESTDIR)$(CRONDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Archiver/Makefile.in mailman-2.1.12-b/Mailman/Archiver/Makefile.in
+--- mailman-2.1.12-a/Mailman/Archiver/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Archiver/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -47,7 +46,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -63,8 +62,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Bouncers/Makefile.in mailman-2.1.12-b/Mailman/Bouncers/Makefile.in
+--- mailman-2.1.12-a/Mailman/Bouncers/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Bouncers/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -45,7 +44,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,8 +60,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Cgi/Makefile.in mailman-2.1.12-b/Mailman/Cgi/Makefile.in
+--- mailman-2.1.12-a/Mailman/Cgi/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Cgi/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -47,7 +46,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -63,8 +62,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(CGIDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Commands/Makefile.in mailman-2.1.12-b/Mailman/Commands/Makefile.in
+--- mailman-2.1.12-a/Mailman/Commands/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Commands/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -45,7 +44,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,8 +60,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Gui/Makefile.in mailman-2.1.12-b/Mailman/Gui/Makefile.in
+--- mailman-2.1.12-a/Mailman/Gui/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Gui/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -45,7 +44,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,8 +60,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Handlers/Makefile.in mailman-2.1.12-b/Mailman/Handlers/Makefile.in
+--- mailman-2.1.12-a/Mailman/Handlers/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Handlers/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -45,7 +44,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,8 +60,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Logging/Makefile.in mailman-2.1.12-b/Mailman/Logging/Makefile.in
+--- mailman-2.1.12-a/Mailman/Logging/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Logging/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -45,7 +44,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,8 +60,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Makefile.in mailman-2.1.12-b/Mailman/Makefile.in
+--- mailman-2.1.12-a/Mailman/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -20,8 +20,6 @@
+
+ # Variables set by configure
+
+-VERSION= @VERSION@
+-
+ VPATH= @srcdir@
+ srcdir= @srcdir@
+ bindir= @bindir@
+@@ -30,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -48,7 +45,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -79,12 +76,6 @@
+ (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
+ done
+
+-finish:
+- @for d in $(SUBDIRS); \
+- do \
+- (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) finish); \
+- done
+-
+ clean:
+ for d in $(SUBDIRS); \
+ do \
+diff -ruN mailman-2.1.12-a/Mailman/MTA/Makefile.in mailman-2.1.12-b/Mailman/MTA/Makefile.in
+--- mailman-2.1.12-a/Mailman/MTA/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/MTA/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -45,7 +44,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,8 +60,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Mailman/Queue/Makefile.in mailman-2.1.12-b/Mailman/Queue/Makefile.in
+--- mailman-2.1.12-a/Mailman/Queue/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Mailman/Queue/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -45,7 +44,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,8 +60,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/$$f $(DESTDIR)$(PACKAGEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/Makefile.in mailman-2.1.12-b/Makefile.in
+--- mailman-2.1.12-a/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -61,11 +61,10 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+-DIRSETGID= chmod g+s
+
+ DATE = $(shell python -c 'import time; print time.strftime("%d-%b-%Y"),')
+ LANGPACK = README-I18N.en templates messages
+@@ -85,14 +84,24 @@
+
+ doinstall: $(SUBDIRS)
+ @echo "Creating architecture independent directories..."
++ dir=$(DESTDIR)$(prefix); \
++ if test ! -d $$dir; then \
++ echo "Creating directory hierarchy $$dir"; \
++ $(INSTALL) -d -m $(DIRMODE) $$dir; \
++ else true; \
++ fi;
++ dir=$(DESTDIR)$(var_prefix); \
++ if test ! -d $$dir; then \
++ echo "Creating directory hierarchy $$dir"; \
++ $(INSTALL) -d -m $(DIRMODE) $$dir; \
++ else true; \
++ fi;
+ @for d in $(VAR_DIRS); \
+ do \
+ dir=$(DESTDIR)$(var_prefix)/$$d; \
+ if test ! -d $$dir; then \
+ echo "Creating directory hierarchy $$dir"; \
+- $(srcdir)/mkinstalldirs $$dir; \
+- chmod $(DIRMODE) $$dir; \
+- $(DIRSETGID) $$dir; \
++ $(INSTALL) -d -m $(DIRMODE) $$dir; \
+ else true; \
+ fi; \
+ done
+@@ -102,9 +111,7 @@
+ dir=$(DESTDIR)$(prefix)/$$d; \
+ if test ! -d $$dir; then \
+ echo "Creating directory hierarchy $$dir"; \
+- $(srcdir)/mkinstalldirs $$dir; \
+- chmod $(DIRMODE) $$dir; \
+- $(DIRSETGID) $$dir; \
++ $(INSTALL) -d -m $(DIRMODE) $$dir; \
+ else true; \
+ fi; \
+ done
+@@ -114,9 +121,7 @@
+ dir=$(DESTDIR)$(exec_prefix)/$$d; \
+ if test ! -d $$dir; then \
+ echo "Creating directory hierarchy $$dir"; \
+- $(srcdir)/mkinstalldirs $$dir; \
+- chmod $(DIRMODE) $$dir; \
+- $(DIRSETGID) $$dir; \
++ $(INSTALL) -d -m $(DIRMODE) $$dir; \
+ else true; \
+ fi; \
+ done
+diff -ruN mailman-2.1.12-a/messages/Makefile.in mailman-2.1.12-b/messages/Makefile.in
+--- mailman-2.1.12-a/messages/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/messages/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -32,7 +32,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -43,7 +42,6 @@
+ CFLAGS= $(OPT) $(DEFS)
+ PACKAGEDIR= $(prefix)/messages
+ SHELL= /bin/sh
+-DIRSETGID= chmod g+s
+ MSGFMT= @PYTHON@ ../build/bin/msgfmt.py
+ MSGMERGE= msgmerge
+
+@@ -60,7 +58,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -90,9 +88,8 @@
+ do \
+ dir=$(DESTDIR)$(prefix)/$$d; \
+ echo "Creating language directory $$dir"; \
+- $(srcdir)/../mkinstalldirs $$dir; \
+- chmod $(DIRMODE) $$dir; \
+- $(DIRSETGID) $$dir; \
++ $(INSTALL) -d -m $(DIRMODE) `dirname $$dir`; \
++ $(INSTALL) -d -m $(DIRMODE) $$dir; \
+ done
+ @for d in $(LANGUAGES); \
+ do \
+@@ -113,8 +110,6 @@
+
+ mofiles: $(MOFILES)
+
+-finish:
+-
+ clean:
+ -rm -f */LC_MESSAGES/mailman.mo
+
+diff -ruN mailman-2.1.12-a/misc/Makefile.in mailman-2.1.12-b/misc/Makefile.in
+--- mailman-2.1.12-a/misc/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/misc/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -30,7 +30,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+ PYTHON= @PYTHON@
+
+@@ -62,7 +61,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ DATAMODE= 664
+@@ -101,8 +100,6 @@
+ (cd $(PKGDIR)/$$p ; umask 02 ; PYTHONPATH=$(PYTHONLIBDIR) $(PYTHON) $(SETUPCMD)); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/scripts/Makefile.in mailman-2.1.12-b/scripts/Makefile.in
+--- mailman-2.1.12-a/scripts/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/scripts/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -49,7 +48,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -68,8 +67,6 @@
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/join $(DESTDIR)$(SCRIPTSDIR)/subscribe
+ $(INSTALL) -m $(FILEMODE) $(srcdir)/leave $(DESTDIR)$(SCRIPTSDIR)/unsubscribe
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/src/Makefile.in mailman-2.1.12-b/src/Makefile.in
+--- mailman-2.1.12-a/src/Makefile.in 2009-07-28 12:19:47.000000000 +0200
++++ mailman-2.1.12-b/src/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+ PYTHON= @PYTHON@
+
+@@ -63,10 +62,9 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
+-EXEMODE= 755
++DIRMODE= 2775
++EXEMODE= 2755
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+-DIRSETGID= chmod g+s
+
+ # Fixed definitions
+
+@@ -110,20 +108,10 @@
+ do \
+ exe=$(DESTDIR)$(CGIDIR)/$$f$(CGIEXT); \
+ $(INSTALL_PROGRAM) $$f $$exe; \
+- $(DIRSETGID) $$exe; \
+ done
+ for f in $(MAIL_PROGS); \
+ do \
+ $(INSTALL_PROGRAM) $$f $(DESTDIR)$(MAILDIR); \
+- $(DIRSETGID) $(DESTDIR)$(MAILDIR)/$$f; \
+- done
+-
+-finish:
+- -for f in $(SUID_CGI_PROGS); \
+- do \
+- exe=$(DESTDIR)$(CGIDIR)/$$f$(CGIEXT); \
+- chown $(MAILMAN_USER) $$exe; \
+- chmod u+s $$exe; \
+ done
+
+ clean:
+diff -ruN mailman-2.1.12-a/templates/Makefile.in mailman-2.1.12-b/templates/Makefile.in
+--- mailman-2.1.12-a/templates/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/templates/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+ TRUE= @TRUE@
+
+@@ -48,7 +47,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -61,15 +60,13 @@
+ install:
+ for d in $(LANGUAGES); \
+ do \
+- $(srcdir)/../mkinstalldirs $(DESTDIR)$(TEMPLATEDIR)/$$d; \
++ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(TEMPLATEDIR)/$$d; \
+ for f in $(srcdir)/$$d/*.html $(srcdir)/$$d/*.txt; \
+ do \
+ $(INSTALL) -m $(FILEMODE) $$f $(DESTDIR)$(TEMPLATEDIR)/$$d; \
+ done; \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/tests/bounces/Makefile.in mailman-2.1.12-b/tests/bounces/Makefile.in
+--- mailman-2.1.12-a/tests/bounces/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/tests/bounces/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -46,7 +45,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -60,8 +59,6 @@
+ $(INSTALL) -m $(FILEMODE) $$f $(DESTDIR)$(BOUNCEDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/tests/Makefile.in mailman-2.1.12-b/tests/Makefile.in
+--- mailman-2.1.12-a/tests/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/tests/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -46,7 +45,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -71,8 +70,6 @@
+ (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
+diff -ruN mailman-2.1.12-a/tests/msgs/Makefile.in mailman-2.1.12-b/tests/msgs/Makefile.in
+--- mailman-2.1.12-a/tests/msgs/Makefile.in 2009-02-23 22:23:35.000000000 +0100
++++ mailman-2.1.12-b/tests/msgs/Makefile.in 2009-07-28 12:19:48.000000000 +0200
+@@ -28,7 +28,6 @@
+ DESTDIR=
+
+ CC= @CC@
+-CHMOD= @CHMOD@
+ INSTALL= @INSTALL@
+
+ DEFS= @DEFS@
+@@ -46,7 +45,7 @@
+ # Modes for directories and executables created by the install
+ # process. Default to group-writable directories but
+ # user-only-writable for executables.
+-DIRMODE= 775
++DIRMODE= 2775
+ EXEMODE= 755
+ FILEMODE= 644
+ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE)
+@@ -60,8 +59,6 @@
+ $(INSTALL) -m $(FILEMODE) $$f $(DESTDIR)$(MSGSDIR); \
+ done
+
+-finish:
+-
+ clean:
+
+ distclean:
diff --git a/extra/mailman/mailman.install b/extra/mailman/mailman.install
new file mode 100644
index 000000000..ec85260a5
--- /dev/null
+++ b/extra/mailman/mailman.install
@@ -0,0 +1,31 @@
+## arg 1: the new package version
+post_install() {
+ # Make sure the group and user "mailman" exists on this system and has the correct values
+ if grep -q "^mailman:" /etc/group &> /dev/null ; then
+ groupmod -g 80 -n mailman mailman &> /dev/null
+ else
+ groupadd -g 80 mailman &> /dev/null
+ fi
+
+ if grep -q "^mailman:" /etc/passwd 2> /dev/null ; then
+ usermod -s /sbin/nologin -c "GNU Mailing List Manager" -d /usr/lib/mailman -u 80 -g mailman mailman &> /dev/null
+ else
+ useradd -s /sbin/nologin -c "GNU Mailing List Manager" -d /usr/lib/mailman -u 80 -g mailman -M -r mailman &> /dev/null
+ fi
+
+ # check file permissions
+# cd /usr/lib/mailman && bin/check_perms -f > /dev/null 2>&1 # -f applies fixes we should solve in the PKGBUILD
+ cd /usr/lib/mailman && bin/check_perms > /dev/null
+}
+
+## 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 mailman &>/dev/null
+ groupdel mailman &>/dev/null || /bin/true
+}
diff --git a/extra/mailman/rc.mailman b/extra/mailman/rc.mailman
new file mode 100644
index 000000000..07660e530
--- /dev/null
+++ b/extra/mailman/rc.mailman
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting mailman Daemon"
+ /usr/lib/mailman/bin/mailmanctl start &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon mailman
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mailman Daemon"
+ /usr/lib/mailman/bin/mailmanctl stop &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mailman
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/manedit/PKGBUILD b/extra/manedit/PKGBUILD
new file mode 100644
index 000000000..8c6715319
--- /dev/null
+++ b/extra/manedit/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 59169 2009-11-20 17:44:19Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=manedit
+pkgver=1.2.1
+pkgrel=3
+pkgdesc="An editor specifically tailored for UNIX manual pages"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.battlefieldlinux.com/wolfpack/ManEdit/"
+depends=('gcc-libs' 'bzip2' 'zlib' 'gtk')
+source=(http://wolfsinger.com/~wolfpack/packages/${pkgname}-${pkgver}.tar.bz2
+ manedit-1.2.1-fix-man-page.patch
+ manedit.desktop)
+md5sums=('a7ee1835e32ed3c9279412af7caf13ef'
+ '60cb0c224a6659f8a8183006608f368b'
+ 'bac6986fc25dda6f0e27e3673eef4600')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Patch to fix generate man page
+ patch -Np1 -i ${srcdir}/manedit-1.2.1-fix-man-page.patch || return 1
+
+ env CFLAGS="${CFLAGS}" \
+ ./configure Linux \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --datadir=/usr/share \
+ --enable=bzip2 \
+ --enable=zlib \
+ --disable="arch-i486" \
+ --disable="arch-i586" \
+ --disable="arch-i686" \
+ --disable="arch-pentiumpro"
+
+ make all || return 1
+
+ # Fix strip error (tries to strip a shell script)
+ cp manedit/Makefile.install.UNIX{,.orig}
+ sed -e '/INST.*FLAGS.*-s$/s:-s::' \
+ manedit/Makefile.install.UNIX.orig > manedit/Makefile.install.UNIX
+
+ # Set man dir too or FHS is violated
+ make PREFIX="${pkgdir}/usr" \
+ MAN_DIR="${pkgdir}/usr/share/man/man1" \
+ ICONS_DIR="${pkgdir}/usr/share/pixmaps" install || return 1
+
+ # Install desktop file
+ install -Dm644 ${srcdir}/manedit.desktop "${pkgdir}/usr/share/applications/manedit.desktop"
+}
diff --git a/extra/manedit/manedit-1.2.1-fix-man-page.patch b/extra/manedit/manedit-1.2.1-fix-man-page.patch
new file mode 100644
index 000000000..77aad9a79
--- /dev/null
+++ b/extra/manedit/manedit-1.2.1-fix-man-page.patch
@@ -0,0 +1,15 @@
+--- a/manedit/makefile_append.ini 2008-10-11 16:00:00.000000000 -0700
++++ b/manedit/makefile_append.ini 2009-11-20 15:33:47.000000000 -0800
+@@ -39,9 +39,9 @@
+
+ manpage:
+ @echo "Generating manual page $(BIN).1.bz2"
+- @-$(SED) 's|%%PREFIX%%|$(PREFIX)|g ; \
+- s|%%LOCALBASE%%|${LOCALBASE}|g ; \
+- s|%%X11BASE%%|${X11BASE}|g' $(BIN).1 > $(BIN).1.out
++ @-$(SED) -e 's|%%PREFIX%%|$(PREFIX)|g ;' \
++ -e 's|%%LOCALBASE%%|${LOCALBASE}|g ;' \
++ -e 's|%%X11BASE%%|${X11BASE}|g' $(BIN).1 > $(BIN).1.out
+ @-$(BZIP2) $(BIN).1.out --stdout > $(BIN).1.bz2
+
+ modules: $(OBJ_C) $(OBJ_CPP)
diff --git a/extra/manedit/manedit.desktop b/extra/manedit/manedit.desktop
new file mode 100644
index 000000000..030fb0ccf
--- /dev/null
+++ b/extra/manedit/manedit.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Manpage Editor
+Comment=Create and edit UNIX manual pages
+Icon=/usr/share/pixmaps/manedit.xpm
+Exec=manedit
+Terminal=false
+Type=Application
+Categories=GNOME;Application;Development;
+StartupNotify=true \ No newline at end of file
diff --git a/extra/maxima/PKGBUILD b/extra/maxima/PKGBUILD
new file mode 100644
index 000000000..ad7b7f1bf
--- /dev/null
+++ b/extra/maxima/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 117234 2011-03-30 11:00:13Z juergen $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir@archlinux.org>
+
+pkgname=maxima
+pkgver=5.23.2
+pkgrel=3
+pkgdesc="Maxima - a sophisticated computer algebra system"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://maxima.sourceforge.net"
+depends=('sbcl=1.0.47' 'texinfo' 'sh')
+optdepends=('gnuplot: plotting capabilities' 'rlwrap: readline support via /usr/bin/rmaxima' 'tk: graphical xmaxima interface')
+# needs rebuild when bash changes version
+# needs a rebuild when sbcl changes version
+options=('!makeflags' '!zipman') # don't zip info pages or they won't work inside maxima
+install=maxima.install
+source=("http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz" "$pkgname.desktop")
+md5sums=('ae2f2eaca33de95636e36652ed281902'
+ '24aa81126fbb8b726854e5a80d4c2415')
+sha1sums=('f7300058faf730ce6cf63c18e59ec068df01b4a6'
+ '4398ebb1ec85ccfa12f37516a56d60c26f74b18b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info \
+ --libexecdir=/usr/lib --enable-sbcl --with-default-lisp=sbcl
+ make
+ 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 \
+ ${pkgdir}/usr/share/pixmaps/${pkgname}.png
+}
diff --git a/extra/maxima/maxima.desktop b/extra/maxima/maxima.desktop
new file mode 100644
index 000000000..f868dad5a
--- /dev/null
+++ b/extra/maxima/maxima.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=XMaxima
+GenericName=A computer algebra system
+GenericName[de]=Computeralgebra System
+GenericName[it]=algebra a livello avanzato
+Comment=A sophisticated computer algebra system
+Exec=xmaxima
+Icon=maxima
+Terminal=true
+Type=Application
+Categories=Science;Math;
diff --git a/extra/maxima/maxima.install b/extra/maxima/maxima.install
new file mode 100644
index 000000000..cd5a48a18
--- /dev/null
+++ b/extra/maxima/maxima.install
@@ -0,0 +1,18 @@
+infodir=/usr/share/info
+filelist=(imaxima.info maxima.info xmaxima.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/mc/PKGBUILD b/extra/mc/PKGBUILD
new file mode 100644
index 000000000..8da59c899
--- /dev/null
+++ b/extra/mc/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 114388 2011-03-13 03:10:13Z eric $
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=mc
+pkgver=4.7.5.1
+pkgrel=2
+pkgdesc="A filemanager/shell that emulates Norton Commander"
+arch=('i686' 'x86_64')
+url="http://www.ibiblio.org/mc/"
+license=('GPL')
+depends=('e2fsprogs' 'glib2' 'pcre' 'gpm' 'slang')
+makedepends=('libxt' 'libx11')
+optdepends=('p7zip: support for 7zip archives')
+provides=('mcedit-pkgbuild-syntax')
+conflicts=('mc-utf8')
+replaces=('mc-utf8')
+options=('!emptydirs' '!makeflags')
+source=("http://www.midnight-commander.org/downloads/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('2ffe4771e94569d497010eea298b13cd')
+sha1sums=('ae047110fe6da5d8e621eae2ae1c1859fb9a8f5d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
+ --enable-background --enable-charset --enable-largefile \
+ --with-edit --with-gpm-mouse --with-mmap --enable-vfs-smb \
+ --with-screen=slang --with-subshell --with-vfs --with-x \
+ --without-debug --without-gnome --without-included-gettext \
+ --libexecdir=/usr/lib
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # Fix FS#15177
+ sed 's|op_has_zipinfo = 0|op_has_zipinfo = 1|' \
+ -i "${pkgdir}/usr/lib/mc/extfs.d/uzip"
+
+ # Fix FS#18312
+ rm "${pkgdir}/usr/lib/mc/extfs.d/u7z"
+
+ sed 's#/usr/bin/env python#/usr/bin/python2#' \
+ -i "${pkgdir}/usr/lib/mc/extfs.d/s3+"
+}
diff --git a/extra/mcpp/PKGBUILD b/extra/mcpp/PKGBUILD
new file mode 100644
index 000000000..4f583586b
--- /dev/null
+++ b/extra/mcpp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 29372 2009-03-08 13:20:31Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=mcpp
+pkgver=2.7.2
+pkgrel=2
+pkgdesc="Matsui's CPP implementation precisely conformed to standards"
+arch=(i686 x86_64)
+license=('custom')
+url="http://mcpp.sourceforge.net"
+depends=(glibc)
+options=(!libtool)
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ namlen.patch)
+md5sums=('512de48c87ab023a69250edc7a0c7b05'
+ '0bfc6177a58e912a9e23e368578dd3fe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/namlen.patch" || return 1
+ ./configure --prefix=/usr --enable-mcpplib --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ ln -sf ../doc/${pkgname}/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/mcpp/namlen.patch b/extra/mcpp/namlen.patch
new file mode 100644
index 000000000..6af741828
--- /dev/null
+++ b/extra/mcpp/namlen.patch
@@ -0,0 +1,11 @@
+--- mcpp-2.7.2/src/mbchar.c 2008-03-08 13:06:13.000000000 +0000
++++ mcpp-2.7.2/src/mbchar.c 2009-03-08 13:14:17.000000000 +0000
+@@ -345,7 +345,7 @@
+ static size_t mb_read_utf8( int c1, char ** in_pp, char ** out_pp);
+ /* For UTF8 mbchar encoding */
+
+-#define NAMLEN 20
++#define NAMLEN 40
+ #define UPPER 1 /* To upper */
+ #define LOWER 0 /* To lower */
+
diff --git a/extra/mcrypt/PKGBUILD b/extra/mcrypt/PKGBUILD
new file mode 100644
index 000000000..7db28d78c
--- /dev/null
+++ b/extra/mcrypt/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 32911 2009-04-02 16:16:11Z giovanni $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=mcrypt
+pkgver=2.6.8
+pkgrel=1
+pkgdesc="A program for encrypting files or streams"
+url="http://mcrypt.sourceforge.net/"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('mhash' 'libmcrypt>=2.5.8' 'zlib')
+source=(http://downloads.sourceforge.net/$pkgname/${pkgname}-${pkgver}.tar.gz)
+md5sums=('97639f8821b10f80943fa17da302607e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ aclocal -I ./m4 || return 1
+ autoconf || return 1
+ automake --force --copy || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/memcached/ChangeLog b/extra/memcached/ChangeLog
new file mode 100644
index 000000000..ad9780fc4
--- /dev/null
+++ b/extra/memcached/ChangeLog
@@ -0,0 +1,24 @@
+2011-02-07 Ionut Biru <ibiru@archlinux.org>
+ * Rebuild 1.4.5 against libeven 2.0.10
+
+2011-01-31 Dan McGee <dan@archlinux.org>
+ * Rebuild 1.4.5 with gcc 4.5.X patch accepted upstream
+
+2009-11-14 Dan McGee <dan@archlinux.org>
+ * Bump to 1.4.3
+ * Added memcached-tool to package
+
+2009-09-13 Dan McGee <dan@archlinux.org>
+ * Bump to 1.4.1
+ * Add new required conf.d option MEMCACHED_USER
+ * Rework the way we store the PID for init script usage
+
+2009-04-12 Dan McGee <dan@archlinux.org>
+ * Bump to 1.2.8
+
+2009-04-05 Dan McGee <dan@archlinux.org>
+ * Bump to 1.2.7
+
+2008-12-13 Dan McGee <dan@archlinux.org>
+ * Added conf file to backup array
+ * Fixed the not quite right default config
diff --git a/extra/memcached/PKGBUILD b/extra/memcached/PKGBUILD
new file mode 100644
index 000000000..8402e28f1
--- /dev/null
+++ b/extra/memcached/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 109292 2011-02-07 17:22:01Z ibiru $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Contributor: Michael Irwin <6d6469@gmail.com>
+
+pkgname=memcached
+pkgver=1.4.5
+pkgrel=3
+pkgdesc="A distributed memory object caching system"
+arch=(i686 x86_64)
+url="http://memcached.org/"
+license=('GPL')
+depends=('libevent')
+optdepends=('perl: for memcached-tool usage')
+backup=('etc/conf.d/memcached')
+source=(http://memcached.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ memcached.conf
+ memcached.sh
+ fix-type-punning-issues.patch)
+changelog=ChangeLog
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 < $srcdir/fix-type-punning-issues.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ install -D -m 755 scripts/memcached-tool $pkgdir/usr/bin/memcached-tool
+ install -D -m 644 $srcdir/$pkgname.conf $pkgdir/etc/conf.d/$pkgname
+ install -D -m 755 $srcdir/$pkgname.sh $pkgdir/etc/rc.d/$pkgname
+}
+
+md5sums=('583441a25f937360624024f2881e5ea8'
+ 'bf15619930dadf0c08669566e4aa809c'
+ '65f88b69cf3112b178725af121327765'
+ 'c4f6da682cb4e7599fede4904021f4ae')
diff --git a/extra/memcached/fix-type-punning-issues.patch b/extra/memcached/fix-type-punning-issues.patch
new file mode 100644
index 000000000..60bb94110
--- /dev/null
+++ b/extra/memcached/fix-type-punning-issues.patch
@@ -0,0 +1,73 @@
+commit df15887584f0025e7b188e408dd3c9f638d68518
+Author: Dan McGee <dan@archlinux.org>
+Date: Tue Nov 2 18:43:00 2010 -0500
+
+ Fix type-punning issues exposed with GCC 4.5.1
+
+ The errors below are due to pointer magic that isn't allowed if following C
+ strict-aliasing rules:
+
+ memcached.c: In function ‘complete_incr_bin’:
+ memcached.c:1023:16: error: dereferencing type-punned pointer will break
+ strict-aliasing rules
+ memcached.c:1044:13: error: dereferencing type-punned pointer will break
+ strict-aliasing rules
+ memcached.c:1061:17: error: dereferencing type-punned pointer will break
+ strict-aliasing rules
+
+ Fix this by introducing a union type that allows access to the uint64_t
+ member as necessary, but doesn't add any additional length to the structure.
+ The size remains the same before and after; the only difference is explict
+ casts are now refactored into union member accesses and all compilers should
+ be happy.
+
+ Signed-off-by: Dan McGee <dan@archlinux.org>
+
+diff --git a/memcached.h b/memcached.h
+index 4a7295b..74a6592 100644
+--- a/memcached.h
++++ b/memcached.h
+@@ -77,18 +77,22 @@
+ #define TAIL_REPAIR_TIME (3 * 3600)
+
+ /* warning: don't use these macros with a function, as it evals its arg twice */
+-#define ITEM_get_cas(i) ((uint64_t)(((i)->it_flags & ITEM_CAS) ? \
+- *(uint64_t*)&((i)->end[0]) : 0x0))
+-#define ITEM_set_cas(i,v) { if ((i)->it_flags & ITEM_CAS) { \
+- *(uint64_t*)&((i)->end[0]) = v; } }
++#define ITEM_get_cas(i) (((i)->it_flags & ITEM_CAS) ? \
++ (i)->data->cas : (uint64_t)0)
+
+-#define ITEM_key(item) (((char*)&((item)->end[0])) \
++#define ITEM_set_cas(i,v) { \
++ if ((i)->it_flags & ITEM_CAS) { \
++ (i)->data->cas = v; \
++ } \
++}
++
++#define ITEM_key(item) (((char*)&((item)->data)) \
+ + (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
+
+-#define ITEM_suffix(item) ((char*) &((item)->end[0]) + (item)->nkey + 1 \
++#define ITEM_suffix(item) ((char*) &((item)->data) + (item)->nkey + 1 \
+ + (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
+
+-#define ITEM_data(item) ((char*) &((item)->end[0]) + (item)->nkey + 1 \
++#define ITEM_data(item) ((char*) &((item)->data) + (item)->nkey + 1 \
+ + (item)->nsuffix \
+ + (((item)->it_flags & ITEM_CAS) ? sizeof(uint64_t) : 0))
+
+@@ -302,7 +306,12 @@ typedef struct _stritem {
+ uint8_t it_flags; /* ITEM_* above */
+ uint8_t slabs_clsid;/* which slab class we're in */
+ uint8_t nkey; /* key length, w/terminating null and padding */
+- void * end[];
++ /* this odd type prevents type-punning issues when we do
++ * the little shuffle to save space when not using CAS. */
++ union {
++ uint64_t cas;
++ char end;
++ } data[];
+ /* if it_flags & ITEM_CAS we have 8 bytes CAS */
+ /* then null-terminated key */
+ /* then " flags length\r\n" (no terminating null) */
diff --git a/extra/memcached/memcached.conf b/extra/memcached/memcached.conf
new file mode 100644
index 000000000..bf120b059
--- /dev/null
+++ b/extra/memcached/memcached.conf
@@ -0,0 +1,4 @@
+# user to run memcached as; also used for pid file ownership
+MEMCACHED_USER="nobody"
+# see 'memcached -h' for available options
+MEMCACHED_ARGS="-l 127.0.0.1 -t 1"
diff --git a/extra/memcached/memcached.sh b/extra/memcached/memcached.sh
new file mode 100644
index 000000000..9c9727507
--- /dev/null
+++ b/extra/memcached/memcached.sh
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/memcached
+
+PIDFILE='/var/run/memcached.pid'
+
+getpid() {
+ local pid
+ pid=$(cat $PIDFILE 2>/dev/null)
+ # if the process is no longer valid, don't return it
+ if [ -n "$pid" ]; then
+ if ! ps -p $pid >/dev/null; then
+ rm -f $PIDFILE
+ pid=""
+ fi
+ fi
+ echo $pid
+}
+
+PID="$(getpid)"
+
+case "$1" in
+ start)
+ stat_busy "Starting memcached"
+ # memcached is retarded and doesn't write to the pidfile
+ # before it drops permissions
+ if [ -n "$PID" ]; then
+ stat_fail
+ elif [ -z "$MEMCACHED_USER" ]; then
+ echo "MEMCACHED_USER must be defined in /etc/conf.d/memcached"
+ stat_fail
+ else
+ touch $PIDFILE && chown $MEMCACHED_USER $PIDFILE
+ /usr/bin/memcached -d -P $PIDFILE -u $MEMCACHED_USER $MEMCACHED_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon memcached
+ stat_done
+ fi
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping memcached"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f $PIDFILE
+ rm_daemon memcached
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/menu-cache/PKGBUILD b/extra/menu-cache/PKGBUILD
new file mode 100644
index 000000000..29e0a408d
--- /dev/null
+++ b/extra/menu-cache/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=menu-cache
+pkgver=0.3.2
+pkgrel=1
+pkgdesc="Caches to speed up freedesktop.org's application menus use."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://lxde.org/"
+groups=('lxde')
+depends=('intltool' 'glib2')
+options=('!libtool')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/lxde/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ac4a9ea77db68d3db3f9f53cc75af66a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/menu-cache --disable-static || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/mercurial/PKGBUILD b/extra/mercurial/PKGBUILD
new file mode 100644
index 000000000..e3e47f67b
--- /dev/null
+++ b/extra/mercurial/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 117449 2011-04-02 08:46:57Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=mercurial
+pkgver=1.8.2
+pkgrel=1
+pkgdesc="A scalable distributed SCM tool"
+arch=('i686' 'x86_64')
+url="http://www.selenic.com/mercurial"
+license=('GPL')
+depends=('python2')
+optdepends=('tk: for the hgk GUI')
+source=(http://www.selenic.com/mercurial/release/${pkgname}-${pkgver}.tar.gz
+ mercurial.profile)
+md5sums=('a1634b9b709ecc70662f3257abece2c7'
+ '43e1d36564d4c7fbe9a091d3ea370a44')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}/" --optimize=1 || return 1
+
+ sed -i -e 's#env python#env python2#' \
+ "${pkgdir}"/usr/lib/python2.7/site-packages/mercurial/lsprof.py
+
+ install -d ${pkgdir}/usr/share/man/{man1,man5}
+ install -m644 doc/hg.1 "${pkgdir}/usr/share/man/man1" || return 1
+ install -m644 doc/{hgrc.5,hgignore.5} "${pkgdir}/usr/share/man/man5" || return 1
+ install -m755 contrib/hgk "${pkgdir}/usr/bin" || return 1
+ install -m644 -D contrib/zsh_completion "${pkgdir}/usr/share/zsh/site-functions/_hg" || return 1
+ install -m644 -D contrib/bash_completion "${pkgdir}/etc/bash_completion.d/hg" || return 1
+ install -d "${pkgdir}/usr/share/emacs/site-lisp"
+ install -m644 contrib/{mq.el,mercurial.el} "${pkgdir}/usr/share/emacs/site-lisp" || return 1
+
+ vimpath="${pkgdir}/usr/share/vim/vimfiles"
+ install -Dm644 contrib/vim/HGAnnotate.vim "${vimpath}/syntax/HGAnnotate.vim" || return 1
+
+ # set some variables
+ install -m755 -d ${pkgdir}/etc/profile.d
+ install -m755 ${srcdir}/mercurial.profile "${pkgdir}/etc/profile.d/mercurial.sh" || return 1
+}
diff --git a/extra/mercurial/mercurial.profile b/extra/mercurial/mercurial.profile
new file mode 100644
index 000000000..fc961828c
--- /dev/null
+++ b/extra/mercurial/mercurial.profile
@@ -0,0 +1 @@
+export HG=/usr/bin/hg
diff --git a/extra/mesa/LICENSE b/extra/mesa/LICENSE
new file mode 100644
index 000000000..ae33d2709
--- /dev/null
+++ b/extra/mesa/LICENSE
@@ -0,0 +1,82 @@
+Disclaimer
+
+Mesa is a 3-D graphics library with an API which is very similar to
+that of OpenGL*
+To the extent that Mesa utilizes the OpenGL command syntax or state
+machine, it is being used with authorization from Silicon Graphics,
+Inc.(SGI). However, the author does not possess an OpenGL license
+from SGI, and makes no claim that Mesa is in any way a compatible
+replacement for OpenGL or associated with SGI. Those who want a
+licensed implementation of OpenGL should contact a licensed
+vendor.
+
+Please do not refer to the library as MesaGL (for legal
+reasons). It's just Mesa or The Mesa 3-D graphics
+library
+
+* OpenGL is a trademark of Silicon Graphics Incorporated.
+
+License / Copyright Information
+
+The Mesa distribution consists of several components. Different copyrights
+and licenses apply to different components. For example, GLUT is copyrighted
+by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
+device drivers are copyrighted by their authors. See below for a list of
+Mesa's main components and the license for each.
+
+The core Mesa library is licensed according to the terms of the MIT license.
+This allows integration with the XFree86, Xorg and DRI projects.
+
+The default Mesa license is as follows:
+
+Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Attention, Contributors
+
+When contributing to the Mesa project you must agree to the licensing terms
+of the component to which you're contributing.
+The following section lists the primary components of the Mesa distribution
+and their respective licenses.
+
+
+Mesa Component Licenses
+
+Component Location Primary Author License
+----------------------------------------------------------------------------
+Main Mesa code src/mesa/ Brian Paul Mesa (MIT)
+
+Device drivers src/mesa/drivers/* See drivers See drivers
+
+Ext headers include/GL/glext.h SGI SGI Free B
+ include/GL/glxext.h
+
+GLUT src/glut/ Mark Kilgard Mark's copyright
+
+Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL
+
+SGI GLU library src/glu/sgi/ SGI SGI Free B
+
+demo programs progs/demos/ various see source files
+
+X demos progs/xdemos/ Brian Paul see source files
+
+SGI demos progs/samples/ SGI SGI copyright
+
+RedBook demos progs/redbook/ SGI SGI copyright
diff --git a/extra/mesa/PKGBUILD b/extra/mesa/PKGBUILD
new file mode 100644
index 000000000..75ef69887
--- /dev/null
+++ b/extra/mesa/PKGBUILD
@@ -0,0 +1,342 @@
+# $Id: PKGBUILD 112002 2011-03-02 23:43:12Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=mesa
+pkgname=('mesa' 'libgl' 'libgles' 'libegl' 'ati-dri' 'intel-dri' 'unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri' 'nouveau-dri')
+
+#_git=true
+_git=false
+
+if [ "${_git}" = "true" ]; then
+ pkgver=7.10.0.git20110215
+ else
+ pkgver=7.10.1
+fi
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('glproto>=1.4.12' 'pkgconfig' 'libdrm>=2.4.23' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libx11>=1.3.5' 'libxt>=1.0.8'
+ 'gcc-libs>=4.5' 'dri2proto=2.3' 'python2' 'talloc' 'libxml2' 'imake')
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+source=(LICENSE)
+if [ "${_git}" = "true" ]; then
+ # mesa git shot from 7.10 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.10&id=cc1636b6db85604510f97f8a37d7fd0ecf453866
+ source=(${source[@]} 'ftp://ftp.archlinux.org/other/mesa/mesa-cc1636b6db85604510f97f8a37d7fd0ecf453866.tar.bz2')
+ else
+ source=(${source[@]} "ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2")
+fi
+md5sums=('5c65a0fe315dd347e09b1f2826a1df5a'
+ 'efe8da4d80c2a5d32a800770b8ce5dfa')
+
+build() {
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ autoreconf -vfi
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+
+ # python2 build fixes
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" $(find $srcdir -name '*.py')
+ sed -i -e "s|PYTHON2 = python|PYTHON2 = python2|" configs/{default,autoconf.in}
+ sed -i -e "s|python|python2|" src/gallium/auxiliary/Makefile
+
+if [ "${_git}" = "true" ]; then
+ ./autogen.sh --prefix=/usr \
+ --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl
+ else
+ ./configure --prefix=/usr \
+ --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl
+fi
+
+ make
+}
+
+package_libgl() {
+ depends=('libdrm>=2.4.22' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.3' 'expat>=2.0.1')
+ pkgdesc="Mesa 3-D graphics library and DRI software rasterizer"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
+
+ bin/minstall lib/libGL.so* "${pkgdir}/usr/lib/"
+
+ cd src/mesa/drivers/dri
+ #make -C swrast DESTDIR="${pkgdir}" install
+if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+fi
+ ln -s swrastg_dri.so "${pkgdir}/usr/lib/xorg/modules/dri/swrast_dri.so"
+ ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgl/"
+}
+
+package_libgles() {
+ depends=('libgl')
+ pkgdesc="Mesa GLES libraries and headers"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m755 -d "${pkgdir}/usr/include"
+ install -m755 -d "${pkgdir}/usr/include/GLES"
+ install -m755 -d "${pkgdir}/usr/include/GLES2"
+ bin/minstall lib/libGLESv* "${pkgdir}/usr/lib/"
+ bin/minstall src/mapi/es1api/glesv1_cm.pc "${pkgdir}/usr/lib/pkgconfig/"
+ bin/minstall src/mapi/es2api/glesv2.pc "${pkgdir}/usr/lib/pkgconfig/"
+ bin/minstall include/GLES/* "${pkgdir}/usr/include/GLES/"
+ bin/minstall include/GLES2/* "${pkgdir}/usr/include/GLES2/"
+ bin/minstall include/GLES2/* "${pkgdir}/usr/include/GLES2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgles"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgles/"
+}
+
+package_libegl() {
+ depends=('libgl')
+ pkgdesc="Mesa libEGL libraries and headers"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 -d "${pkgdir}/usr/lib/egl"
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m755 -d "${pkgdir}/usr/include"
+ install -m755 -d "${pkgdir}/usr/include/"
+ install -m755 -d "${pkgdir}/usr/include/EGL"
+ install -m755 -d "${pkgdir}/usr/include/KHR"
+ install -m755 -d "${pkgdir}/usr/share"
+ install -m755 -d "${pkgdir}/usr/share/doc"
+ install -m755 -d "${pkgdir}/usr/share/doc/libegl"
+ bin/minstall lib/libEGL.so* "${pkgdir}/usr/lib/"
+ bin/minstall lib/egl/* "${pkgdir}/usr/lib/egl/"
+ bin/minstall src/egl/main/egl.pc "${pkgdir}/usr/lib/pkgconfig/"
+ bin/minstall include/EGL/* "${pkgdir}/usr/include/EGL/"
+ bin/minstall include/KHR/khrplatform.h "${pkgdir}/usr/include/KHR/"
+ bin/minstall docs/egl.html "${pkgdir}/usr/share/doc/libegl/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libegl"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libegl/"
+}
+package_mesa() {
+ depends=('libgl' 'libx11>=1.3.5' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'libdrm>=2.4.22' 'glproto>=1.4.12')
+ optdepends=('opengl-man-pages: for the OpenGL API man pages')
+ pkgdesc="Mesa 3-D graphics libraries and include files"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/lib/libGL.so"*
+ rm -f "${pkgdir}/usr/lib/libGLESv"*
+ rm -f "${pkgdir}/usr/lib/libEGL"*
+ rm -rf "${pkgdir}/usr/lib/egl"
+ rm -f ${pkgdir}/usr/lib/pkgconfig/{glesv1_cm.pc,glesv2.pc,egl.pc}
+ rm -rf "${pkgdir}/usr/lib/xorg"
+ rm -f "${pkgdir}/usr/include/GL/glew.h"
+ rm -f "${pkgdir}/usr/include/GL/glxew.h"
+ rm -f "${pkgdir}/usr/include/GL/wglew.h"
+ rm -f "${pkgdir}/usr/include/GL/glut.h"
+ rm -rf ${pkgdir}/usr/include/{GLES,GLES2,EGL,KHR}
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/"
+}
+
+package_ati-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI + Gallium3D r300 drivers for AMD/ATI Radeon"
+ conflicts=('xf86-video-ati<6.9.0-6')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C radeon DESTDIR="${pkgdir}" install
+ make -C r200 DESTDIR="${pkgdir}" install
+ # classic mesa driver for R300 r300_dri.so
+ #make -C r300 DESTDIR="${pkgdir}" install <------- depricated
+ # gallium3D driver for R300 r300_dri.so
+if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+fi
+ #make -C r600 DESTDIR="${pkgdir}" install
+}
+
+package_intel-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Intel"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C i810 DESTDIR="${pkgdir}" install
+ make -C i915 DESTDIR="${pkgdir}" install
+ make -C i965 DESTDIR="${pkgdir}" install
+}
+
+package_unichrome-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C unichrome DESTDIR="${pkgdir}" install
+}
+
+package_mach64-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Mach64"
+ conflicts=('xf86-video-mach64<6.8.2')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C mach64 DESTDIR="${pkgdir}" install
+}
+
+package_mga-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Matrox"
+ conflicts=('xf86-video-mga<1.4.11')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C mga DESTDIR="${pkgdir}" install
+}
+
+package_r128-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Rage128"
+ conflicts=('xf86-video-r128<6.8.1')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C r128 DESTDIR="${pkgdir}" install
+}
+
+package_savage-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage"
+ conflicts=('xf86-video-savage<2.3.1')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C savage DESTDIR="${pkgdir}" install
+}
+
+package_sis-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for SiS"
+ conflicts=('xf86-video-sis<0.10.2')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C sis DESTDIR="${pkgdir}" install
+}
+
+package_tdfx-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for 3dfx"
+ conflicts=('xf86-video-tdfx<1.4.3')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C tdfx DESTDIR="${pkgdir}" install
+}
+
+package_nouveau-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa classic DRI + Gallium3D drivers for Nouveau"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+
+ # classic mesa driver for nv10 , nv20 nouveau_vieux_dri.so
+ make -C nouveau DESTDIR="${pkgdir}" install
+
+ # gallium3D driver for nv30 - nv40 - nv50 nouveau_dri.so
+if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+fi
+}
+
diff --git a/extra/metacity/PKGBUILD b/extra/metacity/PKGBUILD
new file mode 100644
index 000000000..8a9f0bd26
--- /dev/null
+++ b/extra/metacity/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 116879 2011-03-25 23:00:58Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=metacity
+pkgver=2.30.3
+pkgrel=2
+pkgdesc="A window manager for GNOME2"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('startup-notification' 'gconf' 'zenity' 'libcanberra' 'libgtop' 'libwnck')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+install=metacity.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ metacity-restartstyle.patch)
+sha256sums=('08f887018fa5e447cf184d03bae3fe2c05fdb7583bed6768e3b4d66392fc18dd'
+ '3a7e484ec2eb97e7b7f1baaa33e5d925e67a35c84e49c5abe6c32cf2c25f16eb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/metacity-restartstyle.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/metacity \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain metacity ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/metacity/metacity-restartstyle.patch b/extra/metacity/metacity-restartstyle.patch
new file mode 100644
index 000000000..54dd79e02
--- /dev/null
+++ b/extra/metacity/metacity-restartstyle.patch
@@ -0,0 +1,139 @@
+From a3de65d5d1861f755ced7cad291fbbd4f1b8ef51 Mon Sep 17 00:00:00 2001
+From: Owen W. Taylor <otaylor@fishsoup.net>
+Date: Sat, 22 Aug 2009 15:00:57 -0400
+Subject: [PATCH] Should set RestartStyleHint to RestartIfRunning when replaced
+
+This reverts most of commit abbd057eb967e6ab462ffe305f41b2b04d417b25;
+
+ - It's fine to call meta_session_shutdown() after the display
+ is closed, since it's talking over the ICE connection
+ - We should not call warn_about_lame_clients_and_finish_interact()
+ unless we are interacting with the window manager in a session
+ save.
+
+However, the part of abbd057 that fixed accessing freed memory was
+fixing a real problem; this patches does the same thing in a simpler
+way by fixing an obvious type in meta_display_close() where it was
+NULL'ing out the local variable 'display' rather than the global
+variable 'the_display' and adding keeping the check in meta_finalize()
+that was added in abbd057.
+
+The order of calling meta_session_shutdown() and
+calling meta_display_close() is reverted back to the old order to
+make it clear that it's OK if the display way already closed previously.
+
+http://bugzilla.gnome.org/show_bug.cgi?id=588119
+---
+ src/core/display-private.h | 2 +-
+ src/core/display.c | 16 ++++------------
+ src/core/main.c | 5 ++---
+ src/core/session.c | 8 --------
+ 4 files changed, 7 insertions(+), 24 deletions(-)
+
+diff --git a/src/core/display-private.h b/src/core/display-private.h
+index 19287f3..9c8ebc6 100644
+--- a/src/core/display-private.h
++++ b/src/core/display-private.h
+@@ -329,7 +329,7 @@ MetaScreen* meta_display_screen_for_xwindow (MetaDisplay *display,
+ void meta_display_grab (MetaDisplay *display);
+ void meta_display_ungrab (MetaDisplay *display);
+
+-void meta_display_unmanage_screen (MetaDisplay **display,
++void meta_display_unmanage_screen (MetaDisplay *display,
+ MetaScreen *screen,
+ guint32 timestamp);
+
+diff --git a/src/core/display.c b/src/core/display.c
+index 55c374a..8e35a35 100644
+--- a/src/core/display.c
++++ b/src/core/display.c
+@@ -926,7 +926,7 @@ meta_display_close (MetaDisplay *display,
+ meta_compositor_destroy (display->compositor);
+
+ g_free (display);
+- display = NULL;
++ the_display = NULL;
+
+ meta_quit (META_EXIT_SUCCESS);
+ }
+@@ -4762,13 +4762,10 @@ process_selection_clear (MetaDisplay *display,
+ meta_verbose ("Got selection clear for screen %d on display %s\n",
+ screen->number, display->name);
+
+- meta_display_unmanage_screen (&display,
++ meta_display_unmanage_screen (display,
+ screen,
+ event->xselectionclear.time);
+
+- if (!display)
+- the_display = NULL;
+-
+ /* display and screen may both be invalid memory... */
+
+ return;
+@@ -4790,12 +4787,10 @@ process_selection_clear (MetaDisplay *display,
+ }
+
+ void
+-meta_display_unmanage_screen (MetaDisplay **displayp,
++meta_display_unmanage_screen (MetaDisplay *display,
+ MetaScreen *screen,
+ guint32 timestamp)
+ {
+- MetaDisplay *display = *displayp;
+-
+ meta_verbose ("Unmanaging screen %d on display %s\n",
+ screen->number, display->name);
+
+@@ -4805,10 +4800,7 @@ meta_display_unmanage_screen (MetaDisplay **displayp,
+ display->screens = g_slist_remove (display->screens, screen);
+
+ if (display->screens == NULL)
+- {
+- meta_display_close (display, timestamp);
+- *displayp = NULL;
+- }
++ meta_display_close (display, timestamp);
+ }
+
+ void
+diff --git a/src/core/main.c b/src/core/main.c
+index a36a396..44d317e 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -361,12 +361,11 @@ static void
+ meta_finalize (void)
+ {
+ MetaDisplay *display = meta_get_display();
+-
+- meta_session_shutdown ();
+-
+ if (display)
+ meta_display_close (display,
+ CurrentTime); /* I doubt correct timestamps matter here */
++
++ meta_session_shutdown ();
+ }
+
+ static void
+diff --git a/src/core/session.c b/src/core/session.c
+index 7e3b389..0d69350 100644
+--- a/src/core/session.c
++++ b/src/core/session.c
+@@ -376,14 +376,6 @@ meta_session_shutdown (void)
+ SmProp *props[1];
+ char hint = SmRestartIfRunning;
+
+- if (!meta_get_display ())
+- {
+- meta_verbose ("Cannot close session because there is no display");
+- return;
+- }
+-
+- warn_about_lame_clients_and_finish_interact (FALSE);
+-
+ if (session_connection == NULL)
+ return;
+
+--
+1.6.4 \ No newline at end of file
diff --git a/extra/metacity/metacity.install b/extra/metacity/metacity.install
new file mode 100644
index 000000000..2eb1e5094
--- /dev/null
+++ b/extra/metacity/metacity.install
@@ -0,0 +1,17 @@
+pkgname=metacity
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/metalog/PKGBUILD b/extra/metalog/PKGBUILD
new file mode 100644
index 000000000..78957391c
--- /dev/null
+++ b/extra/metalog/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 54835 2009-10-11 19:46:55Z giovanni $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+#
+
+pkgname=metalog
+pkgver=1.0
+pkgrel=1
+pkgdesc="Metalog is a modern replacement for syslogd and klogd"
+arch=(i686 x86_64)
+depends=('pcre')
+makedepends=('xz-utils')
+provides=('logger')
+backup=(etc/metalog.conf etc/conf.d/metalog)
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-1.tar.lzma
+\
+ metalog metalog.confd)
+md5sums=('df4ec89f6a0df24a43f9592ee80ab6be' 'cdd1d34eedbfbc2d9e659bf0a0f58f56'\
+ '86bccd5a02996921e29eff8a0394d11f')
+license=(GPL)
+url="http://metalog.sourceforge.net"
+
+build() {
+ # WTF: Upstream doesn't provide gzip/bz2 compressed archives
+ lzma -d -c $startdir/src/${pkgname}-1.tar.lzma | tar xf - -C $startdir/src
+ cd $startdir/src/$pkgname-1
+ ./configure --prefix=/usr --sysconfdir=/etc
+ /usr/bin/make || return 1
+ /usr/bin/make DESTDIR=$startdir/pkg install || return 1
+ /bin/install -D -m755 $startdir/src/metalog $startdir/pkg/etc/rc.d/metalog
+ /bin/install -D -m644 $startdir/src/metalog.confd $startdir/pkg/etc/conf.d/metalog
+ /bin/install -D -m644 metalog.conf $startdir/pkg/etc/metalog.conf
+}
+
+# vim: ts=2: ft=sh
diff --git a/extra/metalog/metalog b/extra/metalog/metalog
new file mode 100644
index 000000000..d30f47289
--- /dev/null
+++ b/extra/metalog/metalog
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/metalog ] && . /etc/conf.d/metalog
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/metalog`
+case "$1" in
+ start)
+ stat_busy "Starting Metalog"
+ [ -z "$PID" ] && /usr/sbin/metalog -B $METALOG_OPTS 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/metalog.pid
+ add_daemon metalog
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Metalog"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon metalog
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/metalog/metalog.confd b/extra/metalog/metalog.confd
new file mode 100644
index 000000000..3d76ffab3
--- /dev/null
+++ b/extra/metalog/metalog.confd
@@ -0,0 +1,8 @@
+#
+# Parameters to be passed to metalog
+#
+
+# NOTE: Since v.0.7, metalog disables buffering by default.
+# Add '-a' if you want buffering.
+
+METALOG_OPTS=""
diff --git a/extra/mhash/PKGBUILD b/extra/mhash/PKGBUILD
new file mode 100644
index 000000000..30862296f
--- /dev/null
+++ b/extra/mhash/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 27643 2009-02-24 05:16:32Z eric $
+# Maintainer: gregor <gregor@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=mhash
+pkgver=0.9.9.9
+pkgrel=1
+pkgdesc="A thread-safe hash library which provides a uniform interface to hash algorithms (MD5, SHA-1, HAVAL, etc"
+arch=('i686' 'x86_64')
+url="http://mhash.sourceforge.net/"
+license=('LGPL')
+depends=('glibc')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/mhash/$pkgname-$pkgver.tar.bz2)
+md5sums=('f91c74f9ccab2b574a98be5bc31eb280')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --enable-static || return 1
+ make || return 1
+ make prefix=$pkgdir/usr install || return 1
+}
diff --git a/extra/midori/PKGBUILD b/extra/midori/PKGBUILD
new file mode 100644
index 000000000..426dc4f50
--- /dev/null
+++ b/extra/midori/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 114718 2011-03-15 18:18:12Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: rabyte <rabyte.at.gmail.dot.com>
+# Contributor: Johannes Krampf <wuischke.at.amule.dot.org>
+
+pkgname=midori
+#_gitdate=20090306
+pkgver=0.3.3 #_git${_gitdate}
+pkgrel=1
+pkgdesc="A lightweight web browser based on Gtk WebKit"
+arch=('i686' 'x86_64')
+url="http://www.twotoasts.de/index.php?/pages/midori_summary.html"
+license=('LGPL2.1')
+install=midori.install
+depends=('libwebkit' 'libunique' 'hicolor-icon-theme' 'desktop-file-utils' 'libnotify>=0.7.1' 'libxss' 'sqlite3' 'glib2')
+makedepends=('libxml2' 'intltool' 'gtk-doc' 'librsvg' 'python2>=2.7.1' 'vala') # 'git'
+optdepends=('vala: for use in extensions')
+source=(http://archive.xfce.org/src/apps/$pkgname/0.3/$pkgname-$pkgver.tar.bz2
+ #midori-${_gitdate}.tar.bz2
+)
+md5sums=('e1262cc7cc0c1773c331ab794480f037')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/$pkgname-source
+ pushd /tmp/$pkgname-source
+ git clone -v git://git.xfce.org/kalikiana/midori
+ cd midori
+ git archive --prefix=midori-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/$pkgname-source/midori-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+# cd ${srcdir}/${pkgname}-${_gitdate}
+ # python2
+ export PYTHON=/usr/bin/python2
+ sed -i -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" wscript waf
+
+ ./configure --prefix=/usr --jobs=${MAKEFLAGS/-j/} \
+ --enable-addons \
+ --disable-hildon \
+ --enable-unique \
+ --enable-nls \
+ --enable-docs \
+ --enable-apidocs
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/midori/midori.install b/extra/midori/midori.install
new file mode 100644
index 000000000..8cee6c198
--- /dev/null
+++ b/extra/midori/midori.install
@@ -0,0 +1,14 @@
+post_install() {
+
+gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+update-desktop-database -q
+gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
diff --git a/extra/minicom/PKGBUILD b/extra/minicom/PKGBUILD
new file mode 100644
index 000000000..b1db3651b
--- /dev/null
+++ b/extra/minicom/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 108740 2011-02-02 18:46:01Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=minicom
+pkgver=2.5
+pkgrel=1
+pkgdesc="A serial communication program"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('bash' 'ncurses')
+backup=('etc/minirc.dfl')
+source=("http://alioth.debian.org/frs/download.php/3487/${pkgname}-${pkgver}.tar.gz")
+url="http://alioth.debian.org/projects/minicom/"
+md5sums=('a5117d4d21e2c9e825edb586ee2fe8d2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}/" install || return 1
+ install -Dm644 doc/minirc.dfl ${pkgdir}/etc/minirc.dfl || return 1
+}
diff --git a/extra/mirage/PKGBUILD b/extra/mirage/PKGBUILD
new file mode 100644
index 000000000..d13d8ddd5
--- /dev/null
+++ b/extra/mirage/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 89709 2010-09-03 11:45:48Z remy $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+# Contributor: Scott Horowitz <stonecrest@gmail.com>
+pkgname=mirage
+pkgver=0.9.5.1
+pkgrel=2
+pkgdesc="A simple GTK+ Image Viewer"
+url="http://mirageiv.berlios.de"
+license=("GPL")
+depends=('pygtk>=2.17.0' 'desktop-file-utils')
+arch=('i686' 'x86_64')
+source=(http://download.berlios.de/mirageiv/${pkgname}-${pkgver}.tar.gz)
+install=$pkgname.install
+md5sums=('8b74db43ca6c81e3326d70c81df4bc56')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}"
+}
diff --git a/extra/mirage/mirage.install b/extra/mirage/mirage.install
new file mode 100644
index 000000000..80312d4a6
--- /dev/null
+++ b/extra/mirage/mirage.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/extra/miro/PKGBUILD b/extra/miro/PKGBUILD
new file mode 100644
index 000000000..0ada45586
--- /dev/null
+++ b/extra/miro/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 107236 2011-01-22 19:02:29Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=miro
+pkgver=3.5.1
+pkgrel=1
+pkgdesc="The free and open source internet TV platform"
+arch=('i686' 'x86_64')
+url="http://www.getmiro.com"
+license=('GPL2')
+depends=('dbus-python' 'pyrex' 'pygtk' 'gstreamer0.10' 'python2-gconf'
+ 'python-pysqlite' 'pywebkitgtk' 'shared-mime-info'
+ 'desktop-file-utils' 'gstreamer0.10' 'hicolor-icon-theme'
+ 'gstreamer0.10-python' 'python-notify' 'libtorrent-rasterbar'
+ 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'python-pycurl')
+makedepends=('pkgconfig')
+install=miro.install
+source=(http://ftp.osuosl.org/pub/pculture.org/${pkgname}/src/${pkgname}-${pkgver}.tar.gz)
+sha1sums=('0f5c2a307e7040c9c2895ee9a2d1c3ff99d34e9e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/linux"
+
+ python2 setup.py install --root=${pkgdir}
+
+ # fix miro startup script so --debug works with python2
+ sed -i "s|which python|which python2|" ${pkgdir}/usr/bin/miro
+ sed -i "s|./miro.real|/usr/bin/miro.real|" ${pkgdir}/usr/bin/miro
+}
diff --git a/extra/miro/miro.install b/extra/miro/miro.install
new file mode 100644
index 000000000..a5ee228aa
--- /dev/null
+++ b/extra/miro/miro.install
@@ -0,0 +1,17 @@
+post_install() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ xdg-icon-resource forceupdate --theme hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+
diff --git a/extra/mjpegtools/PKGBUILD b/extra/mjpegtools/PKGBUILD
new file mode 100644
index 000000000..9daf1a2fc
--- /dev/null
+++ b/extra/mjpegtools/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 84755 2010-07-04 03:32:01Z eric $
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Mantainer: Roberto Carvajal <roberto@archlinux.org>
+
+pkgname=mjpegtools
+pkgver=1.9.0
+pkgrel=4
+pkgdesc="Set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://mjpeg.sourceforge.net/"
+depends=('libjpeg>=8' 'libpng>=1.4.0' 'sdl' 'gcc-libs' 'libdv')
+makedepends=('gtk2>=2.18.6')
+optdepends=('gtk2: glav GUI')
+options=('!makeflags' '!libtool')
+install=mjpegtools.install
+source=(http://downloads.sourceforge.net/sourceforge/mjpeg/${pkgname}-${pkgver}.tar.gz
+ mjpegtools-1.9.0-glibc-2.10.patch
+ png2yuv-fix-memleak.patch
+ mjpegtools-1.9.0-jpeg-7.patch)
+md5sums=('309a6fcf0900a010d6a9c1e91afc2f5c' 'b8ae66237d83be533db8eea166fd3357'\
+ '39e1def8fb0f7c58a217b22dc251a86a' 'ccc7562a3933877d3362da7cf4695ea0')
+sha1sums=('1701233354c7ea86b5b7808c4dd5d03a71118e48' '3029f0e835e693b144298ed9f8143c9566be26f3'\
+ '8af5c3747756353bef56d03bafbdd086ff15c02c' '2bdb1b3b8591cede11d4a133a758e8ead35db4dd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure
+ patch -Np1 -i "$srcdir/mjpegtools-1.9.0-glibc-2.10.patch"
+ patch -Np1 -i "${srcdir}/png2yuv-fix-memleak.patch"
+ patch -Np0 -i "${srcdir}/mjpegtools-1.9.0-jpeg-7.patch"
+ ./configure --prefix=/usr --enable-largefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m644 mpeg2enc/mpeg2syntaxcodes.h "${pkgdir}/usr/include/mjpegtools/mpeg2enc/"
+}
diff --git a/extra/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch b/extra/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch
new file mode 100644
index 000000000..e16156046
--- /dev/null
+++ b/extra/mjpegtools/mjpegtools-1.9.0-glibc-2.10.patch
@@ -0,0 +1,11 @@
+--- mjpegtools-1.9.0/mplex/lpcmstrm_in.cpp.orig 2009-05-27 01:31:46.000000000 -0700
++++ mjpegtools-1.9.0/mplex/lpcmstrm_in.cpp 2009-05-27 01:33:09.000000000 -0700
+@@ -53,7 +53,7 @@
+
+ bool LPCMStream::Probe(IBitStream &bs )
+ {
+- char *last_dot = strrchr( bs.StreamName(), '.' );
++ const char *last_dot = strrchr( bs.StreamName(), '.' );
+ return
+ last_dot != NULL
+ && strcmp( last_dot+1, "lpcm") == 0;
diff --git a/extra/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch b/extra/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch
new file mode 100644
index 000000000..ec3673186
--- /dev/null
+++ b/extra/mjpegtools/mjpegtools-1.9.0-jpeg-7.patch
@@ -0,0 +1,24 @@
+Fix segmentation fault with jpeg-7 and above where dinfo.do_fancy_upsampling isn't set by default to FALSE anymore.
+
+Patch by: Salah Coronya
+
+http://bugs.gentoo.org/show_bug.cgi?id=293919
+
+--- lavtools/jpegutils.c
++++ lavtools/jpegutils.c
+@@ -502,6 +502,7 @@
+
+ jpeg_read_header (&dinfo, TRUE);
+ dinfo.raw_data_out = TRUE;
++ dinfo.do_fancy_upsampling = FALSE;
+ dinfo.out_color_space = JCS_YCbCr;
+ dinfo.dct_method = JDCT_IFAST;
+ guarantee_huff_tables(&dinfo);
+@@ -599,6 +600,7 @@
+ if (field > 0) {
+ jpeg_read_header (&dinfo, TRUE);
+ dinfo.raw_data_out = TRUE;
++ dinfo.do_fancy_upsampling = FALSE;
+ dinfo.out_color_space = JCS_YCbCr;
+ dinfo.dct_method = JDCT_IFAST;
+ jpeg_start_decompress (&dinfo);
diff --git a/extra/mjpegtools/mjpegtools.install b/extra/mjpegtools/mjpegtools.install
new file mode 100644
index 000000000..1ef7d6fd3
--- /dev/null
+++ b/extra/mjpegtools/mjpegtools.install
@@ -0,0 +1,16 @@
+infodir=/usr/share/info
+file=mjpeg-howto.info
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/extra/mjpegtools/png2yuv-fix-memleak.patch b/extra/mjpegtools/png2yuv-fix-memleak.patch
new file mode 100644
index 000000000..a6f03a4e1
--- /dev/null
+++ b/extra/mjpegtools/png2yuv-fix-memleak.patch
@@ -0,0 +1,10 @@
+--- mjpegtools-1.9.0/lavtools/png2yuv.c.orig 2010-01-17 14:26:24.000000000 +0100
++++ mjpegtools-1.9.0/lavtools/png2yuv.c 2010-01-17 14:27:53.000000000 +0100
+@@ -407,6 +407,7 @@
+ return 2;
+ }
+
++ png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
+ fclose(pngfile);
+
+ return 1;
diff --git a/extra/mkbootcd/PKGBUILD b/extra/mkbootcd/PKGBUILD
new file mode 100644
index 000000000..dc06beb41
--- /dev/null
+++ b/extra/mkbootcd/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 12672 2008-09-17 21:20:37Z tpowa $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=mkbootcd
+pkgver=2008.09
+pkgrel=1
+pkgdesc="Advanced, modular isolinux bootcd image creation utility"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.archlinux.org/"
+depends=('mkinitcpio' 'cdrkit' 'syslinux')
+source=('boot.msg' 'mkbootcd' 'mkbootcd.conf' 'options.msg')
+backup=(etc/mkbootcd.conf)
+
+build()
+{
+ cd $startdir/src/
+ install -D -m755 mkbootcd $startdir/pkg/usr/sbin/mkbootcd
+ install -D -m644 mkbootcd.conf $startdir/pkg/etc/mkbootcd.conf
+ install -D -m644 boot.msg $startdir/pkg/usr/share/mkbootcd/boot.msg
+ install -D -m644 options.msg $startdir/pkg/usr/share/mkbootcd/options.msg
+}
+md5sums=('d02e111f81204044644f728ff85e2284'
+ 'bfae68f0a5168bd41f8d0c56f524fb08'
+ 'e08b9b952b5e468feb16e3f20ee3faf2'
+ 'fa078942b8adf261e4d925e080dc3018')
diff --git a/extra/mkbootcd/boot.msg b/extra/mkbootcd/boot.msg
new file mode 100644
index 000000000..271c58016
--- /dev/null
+++ b/extra/mkbootcd/boot.msg
@@ -0,0 +1,14 @@
+
+
+------------------------------------------------------------------------------
+Arch Linux
+ISOLINUX BOOT
+created with 'mkbootcd' written by Tobias Powalowski <tpowa@archlinux.org>
+
+Press ENTER or type 'arch' to boot the CD.
+
+If you wish to change your defaults to boot into your existing system,
+type 'vmlinuz initrd=initrd.img <any_other_boot_option>'
+Use the F2 key for troubleshooting and options.
+------------------------------------------------------------------------------
+
diff --git a/extra/mkbootcd/mkbootcd b/extra/mkbootcd/mkbootcd
new file mode 100755
index 000000000..e7e5e62b1
--- /dev/null
+++ b/extra/mkbootcd/mkbootcd
@@ -0,0 +1,143 @@
+#! /bin/sh
+# Created by Tobias Powalowski <tpowa@archlinux.org>
+# Settings
+APPNAME=$(basename "${0}")
+CONFIG="/etc/mkbootcd.conf"
+GENIMG=""
+BURN="0"
+BLANK="0"
+GRUB="0"
+TARNAME=""
+export TEMPDIR=$(mktemp /tmp/mkbootcd.XXXX)
+usage ()
+{
+ echo "${APPNAME}: usage"
+ echo " -g=IMAGE Generate a ISO image as IMAGE"
+ echo " -c=CONFIG Use CONFIG file. default: /etc/mkbootcd.conf"
+ echo " -B Burn the ISO image after creation"
+ echo " -b Blanking media first"
+ echo " -grub Use grub instead of isolinux"
+ echo " -t=TARNAME Generate a tar image instead of an iso image"
+ echo " -h This message."
+ exit 1
+}
+
+[ "$1" == "" ] && usage
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -c=*|--c=*) CONFIG="$(echo $1 | awk -F= '{print $2;}')" ;;
+ -g=*|--g=*) GENIMG="$(echo $1 | awk -F= '{print $2;}')" ;;
+ -B|--B) BURN="1" ;;
+ -b|--b) BLANK="1" ;;
+ -grub|--grub) GRUB="1" ;;
+ -t=*|--t=*) TARNAME="$(echo $1 | awk -F= '{print $2;}')" ;;
+ -h|--h|?) usage ;;
+ *) usage ;;
+ esac
+ shift
+done
+
+if [ "${TARNAME}" = "" -a "${GENIMG}" = "" ]; then
+ echo "ERROR: No image name specified, please use the -g option"
+ exit 1
+fi
+
+if [ ! -f "${CONFIG}" ]; then
+ echo "config file '${CONFIG}' cannot be found, aborting..."
+ exit 1
+fi
+
+. "${CONFIG}"
+# export for mkinitcpio
+[ -n "${APPENDBOOTMESSAGE}" ] && export APPENDBOOTMESSAGE
+[ -n "${APPENDBOOTMESSAGE_SYSLINUX}" ] && export APPENDBOOTMESSAGE_SYSLINUX
+[ -n "${APPENDBOOTMESSAGE_SYSLINUX_LOWMEM}" ] && export APPENDBOOTMESSAGE_SYSLINUX_LOWMEM
+[ -n "${APPENDOPTIONSBOOTMESSAGE}" ] && export APPENDOPTIONSBOOTMESSAGE
+
+if [ "$GRUB" = "1" ]; then
+ export RUNPROGRAM="${APPNAME}-grub"
+ export BOOTDIRNAME="boot"
+else
+ export RUNPROGRAM="${APPNAME}"
+ export BOOTDIRNAME="isolinux"
+fi
+[ "${BOOTMESSAGE}" = "" ] && export BOOTMESSAGE=$(mktemp /tmp/bootmessage.XXXX)
+[ "${OPTIONSBOOTMESSAGE}" = "" ] && export OPTIONSBOOTMESSAGE=$(mktemp /tmp/optionsbootmessage.XXXX)
+[ "${ISONAME}" = "" ] && export ISONAME=$(mktemp /tmp/isoname.XXXX)
+export USEKERNEL=${VERSION}
+# begin script
+[ -e ${TEMPDIR} ] && rm -r ${TEMPDIR}
+mkdir -p ${TEMPDIR}/${BOOTDIRNAME}
+if [ "$GRUB" = "1" ]; then
+ mkdir ${TEMPDIR}/${BOOTDIRNAME}/grub
+ install -m755 /usr/share/grub/i386-pc/stage2_eltorito ${TEMPDIR}/${BOOTDIRNAME}/grub/stage2_eltorito
+else
+ install -m755 /usr/lib/syslinux/isolinux.bin ${TEMPDIR}/${BOOTDIRNAME}/isolinux.bin
+fi
+# create isolinux.cfg
+if [ "$GRUB" = "1" ]; then
+ echo ":: Creating menu.lst ..."
+ [ ! -e "${MENULST}" ] && echo "No menu.lst found" && exit 1
+ sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \
+ ${MENULST} \
+ > ${TEMPDIR}/${BOOTDIRNAME}/grub/menu.lst
+else
+ echo ":: Creating isolinux.cfg ..."
+ if [ "${ISOLINUXCFG}" = "" ]; then
+ [ -e ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg ] && rm ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "prompt ${PROMPT}" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "timeout ${TIMEOUT}" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "display boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "F1 boot.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "F2 options.msg" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "default arch" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "label arch" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "kernel vmlinuz" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ echo "append initrd=initrd.img ${KERNEL_BOOT_OPTIONS}" >> ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ else
+ sed "s|@@PROMPT@@|${PROMPT}|g;s|@@TIMEOUT@@|${TIMEOUT}|g;s|@@KERNEL_BOOT_OPTIONS@@|${KERNEL_BOOT_OPTIONS}|g" \
+ ${ISOLINUXCFG} > ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg
+ fi
+ [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/isolinux.cfg ] && echo "No isolinux.cfg found" && exit 1
+fi
+echo ":: Calling mkinitcpio CONFIG=${MKINITCPIO_CONFIG} KERNEL=${VERSION} ..."
+# generate initramdisk
+echo ":: Creating initramdisk ..."
+ mkinitcpio -c ${MKINITCPIO_CONFIG} -k ${VERSION} -g ${TEMPDIR}/${BOOTDIRNAME}/initrd.img
+echo ":: Using ${KERNEL} as image kernel ..."
+ install -m644 ${KERNEL} ${TEMPDIR}/${BOOTDIRNAME}/vmlinuz
+ install -m644 ${BOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/boot.msg
+ install -m644 ${OPTIONSBOOTMESSAGE} ${TEMPDIR}/${BOOTDIRNAME}/options.msg
+ [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/boot.msg ] && echo 'ERROR:no boot.msg found, aborting!' && exit 1
+ [ ! -s ${TEMPDIR}/${BOOTDIRNAME}/options.msg ] && echo 'ERROR:no options.msg found, aborting!' && exit 1
+# create image
+if ! [ "${TARNAME}" = "" ]; then
+ echo ":: Creating tar image ..."
+ [ -e ${TARNAME} ] && rm ${TARNAME}
+ rm ${TEMPDIR}/arch/pkg/*.pkg.tar.gz > /dev/null 2>&1
+ tar cfv ${TARNAME} ${TEMPDIR} > /dev/null 2>&1 && echo ":: tar Image succesfull created at ${TARNAME}"
+else
+ echo ":: Creating ISO image ..."
+ [ -e ${GENIMG} ] && rm ${GENIMG}
+ [ -s "${ISONAME}" ] && ISONAME=$(cat $ISONAME) || ISONAME="Arch Linux"
+ if [ "$GRUB" = "1" ]; then
+ mkisofs -RlDJLV "${ISONAME}" -b boot/grub/stage2_eltorito -c boot/boot.cat \
+ -no-emul-boot -boot-load-size 4 -boot-info-table -o ${GENIMG} ${TEMPDIR}/ > /dev/null 2>&1
+ else
+ mkisofs -RlDJLV "${ISONAME}" -b isolinux/isolinux.bin -c isolinux/boot.cat \
+ -no-emul-boot -boot-load-size 4 -boot-info-table -o ${GENIMG} ${TEMPDIR}/ > /dev/null 2>&1
+ fi
+ [ $? -ne 0 ] && echo ":: ISO Image succesfull created at ${GENIMG}"
+ # burning/blanking image
+ if [ "$BLANK" = "1" ]; then
+ echo ":: Blanking media DEVICE=${DEVICE}, BLANKMODE=${BLANKMODE}, SPEED=${SPEED} ..."
+ cdrecord dev=${DEVICE} speed=${SPEED} blank=${BLANKMODE} > /dev/null 2>&1 && echo ":: Successfull."
+ fi
+ if [ "$BURN" = "1" ]; then
+ echo ":: Burning ISO image DEVICE=${DEVICE}, SPEED=${SPEED} ..."
+ cdrecord dev=${DEVICE} speed=${SPEED} -eject ${GENIMG} > /dev/null 2>&1 && echo ":: Successfull."
+ fi
+fi
+# clean /tmp
+rm -r ${TEMPDIR}
diff --git a/extra/mkbootcd/mkbootcd.conf b/extra/mkbootcd/mkbootcd.conf
new file mode 100644
index 000000000..b27be81e6
--- /dev/null
+++ b/extra/mkbootcd/mkbootcd.conf
@@ -0,0 +1,38 @@
+# Created by Tobias Powalowski <tpowa@archlinux.org>
+# config file of mkbootcd
+
+# DEFAULT kernel boot options like root=/dev/hda3 etc.
+# add your root= option, if you boot from a disk device
+# and don't want to add it by hand on each boot
+KERNEL_BOOT_OPTIONS=""
+
+# mkinitcpio config file, defaulted to stock config file
+MKINITCPIO_CONFIG="/etc/mkinitcpio.conf"
+
+# kernel version, defaulted to build for runtime kernel
+VERSION="$(uname -r)"
+
+# kernel image, defaulted to stock arch kernel
+KERNEL="/boot/vmlinuz26"
+
+# boot message files
+BOOTMESSAGE="/usr/share/mkbootcd/boot.msg"
+OPTIONSBOOTMESSAGE="/usr/share/mkbootcd/options.msg"
+
+# menu.lst or isolinux.cfg file to use
+ISOLINUXCFG=""
+MENULST=""
+
+# Prompt on CD boot, defaulted to yes, 1=yes 0=no
+PROMPT="1"
+
+# Name of the ISO, if empty Arch Linux is used if not set by a HOOK later
+ISONAME=""
+
+# Timeout in seconds on CD boot, defaulted to 0, because we prompt by default
+TIMEOUT="0"
+
+# Setting cdrecord options
+DEVICE=""
+SPEED=""
+BLANKMODE="" \ No newline at end of file
diff --git a/extra/mkbootcd/options.msg b/extra/mkbootcd/options.msg
new file mode 100644
index 000000000..300922e38
--- /dev/null
+++ b/extra/mkbootcd/options.msg
@@ -0,0 +1,6 @@
+------------------------------------------------------------------------------
+Arch Linux options and troubleshooting:
+
+- If your system hangs during the boot process, any combinations of the
+ boot options noapic acpi=off pci=routeirq nosmp may be useful.
+------------------------------------------------------------------------------ \ No newline at end of file
diff --git a/extra/mkvtoolnix/PKGBUILD b/extra/mkvtoolnix/PKGBUILD
new file mode 100644
index 000000000..554fd4ec6
--- /dev/null
+++ b/extra/mkvtoolnix/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 113970 2011-03-11 00:06:49Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: 03/08/04 <lefungus@altern.org>
+
+pkgname=mkvtoolnix
+pkgver=4.6.0
+pkgrel=1
+pkgdesc="Set of tools to create, edit and inspect Matroska files"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.bunkus.org/videotools/mkvtoolnix/index.html"
+depends=('libmatroska' 'flac' 'libvorbis' 'file' 'boost-libs' 'lzo2' 'xdg-utils')
+makedepends=('wxgtk' 'boost' 'ruby')
+optdepends=('wxgtk: mkvmerge,mkvinfo and mmg GUI')
+install=mkvtoolnix.install
+source=("http://www.bunkus.org/videotools/${pkgname}/sources/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('ca4e5b226175a6df2f9fdad206abf0a8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export CFLAGS="${CFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+ export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2"
+
+ ./configure --prefix=/usr \
+ --with-boost-libdir=/usr/lib
+ ./drake
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./drake DESTDIR="${pkgdir}" install
+}
diff --git a/extra/mkvtoolnix/mkvtoolnix.install b/extra/mkvtoolnix/mkvtoolnix.install
new file mode 100644
index 000000000..1cf75e1b6
--- /dev/null
+++ b/extra/mkvtoolnix/mkvtoolnix.install
@@ -0,0 +1,14 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ if [ -f usr/bin/update-mime-database ]; then
+ update-mime-database usr/share/mime &> /dev/null
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ post_install $1
+}
diff --git a/extra/moc/ChangeLog b/extra/moc/ChangeLog
new file mode 100644
index 000000000..d494c5280
--- /dev/null
+++ b/extra/moc/ChangeLog
@@ -0,0 +1,32 @@
+2010-02-25 Eric Belanger <eric@archlinux.org>
+
+ * moc 2.5.0_alpha4-2
+ * Added wavpack and modplug support (close FS#18449)
+
+2010-01-24 Eric Belanger <eric@archlinux.org>
+
+ * moc 2.5.0_alpha4-1
+ * Upstream update to unstable series
+ * Fixed aac support (close FS#13164)
+
+2009-11-07 Eric Belanger <eric@archlinux.org>
+
+ * Fixed optdepends array syntax (close FS#16053)
+
+2009-03-21 Eric Belanger <eric@archlinux.org>
+
+ * moc 2.4.4-3
+ * Added missing libid3tag depends (close FS#13819)
+
+2009-03-07 Eric Belanger <eric@archlinux.org>
+
+ * moc 2.4.4-2
+ * Added patch to fix playback of WMA files
+
+2009-01-11 Eric Belanger <eric@archlinux.org>
+
+ * moc 2.4.4-1
+ * Upstream update
+ * Added libtool depends
+ * Replaced install scriptlet by optdepends
+ * Added ChangeLog
diff --git a/extra/moc/PKGBUILD b/extra/moc/PKGBUILD
new file mode 100644
index 000000000..1cde9ae89
--- /dev/null
+++ b/extra/moc/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 107458 2011-01-25 20:51:09Z remy $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@gmx.net>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=moc
+pkgver=2.4.4
+pkgrel=3
+pkgdesc="An ncurses console audio player with support for the mp3, ogg, and wave formats"
+arch=('i686' 'x86_64')
+url="http://moc.daper.net/"
+license=('GPL')
+depends=('libmad' 'libid3tag' 'jack' 'curl' 'libsamplerate' 'libtool')
+makedepends=('speex' 'ffmpeg' 'taglib' 'libmpcdec' 'wavpack' 'libmodplug')
+optdepends=('speex: for using the speex plugin'
+ 'ffmpeg: for using the ffmpeg plugin'
+ 'taglib: for using the musepack plugin'
+ 'libmpcdec: for using the musepack plugin'
+ 'wavpack: for using the wavpack plugin'
+ 'libmodplug: for using the modplug plugin')
+options=('!libtool' 'force')
+source=(ftp://ftp.daper.net/pub/soft/moc/stable/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('647c770a5542a4ae5437386807a89796')
+sha1sums=('e56ee13aa17c177f0afc42efe3804ebbbf46d4db')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ sed -i 's|ffmpeg/avformat.h|libavformat/avformat.h|' decoder_plugins/ffmpeg/ffmpeg.c
+ sed -i 's|avcodec_decode_audio|avcodec_decode_audio2|' decoder_plugins/ffmpeg/ffmpeg.c
+ # Disabling aac to use the external ffmpeg to play them (FS#13164)
+ ./configure --prefix=/usr --without-rcc --without-aac \
+ --with-oss --with-alsa --with-jack --with-mp3 \
+ --with-musepack --with-vorbis --with-flac --with-wavpack \
+ --with-sndfile --with-modplug --with-ffmpeg --with-speex \
+ --with-samplerate --with-curl
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/mod_dnssd/PKGBUILD b/extra/mod_dnssd/PKGBUILD
new file mode 100644
index 000000000..7c1ddc18d
--- /dev/null
+++ b/extra/mod_dnssd/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=mod_dnssd
+pkgver=0.6
+pkgrel=3
+pkgdesc="Zeroconf module for Apache2"
+arch=('i686' 'x86_64')
+url="http://0pointer.de/lennart/projects/mod_dnssd"
+license=('APACHE')
+depends=('avahi' 'apache')
+source=(http://0pointer.de/lennart/projects/$pkgname/${pkgname}-${pkgver}.tar.gz)
+md5sums=('bed3d95a98168bf0515922d1c05020c5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-lynx || return 1
+ make || return 1
+ install -m755 -d "${pkgdir}/usr/lib/httpd/modules"
+ install -m755 src/.libs/mod_dnssd.so "${pkgdir}/usr/lib/httpd/modules/" || return 1
+}
diff --git a/extra/mod_fcgid/PKGBUILD b/extra/mod_fcgid/PKGBUILD
new file mode 100644
index 000000000..ad457a9a2
--- /dev/null
+++ b/extra/mod_fcgid/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 72879 2010-03-21 12:12:44Z thomas $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=mod_fcgid
+pkgver=2.3.5
+pkgrel=1
+pkgdesc="A FastCGI module for Apache HTTP Server."
+license=('APACHE')
+arch=('i686' 'x86_64')
+url="http://httpd.apache.org/mod_fcgid/"
+depends=('apache')
+source=(http://apache.cs.utah.edu/httpd/mod_fcgid/mod_fcgid-$pkgver.tar.gz)
+sha256sums=('3280fd287659539d577fc3c77a975739c06bb9d0a9cef48275d4beb13c64ef39')
+
+build() {
+ cd "$srcdir"/$pkgname-$pkgver
+ ./configure.apxs
+ make || return 1
+}
+
+package() {
+ cd "$srcdir"/$pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir"/{usr/share,etc}
+}
diff --git a/extra/mod_mono/PKGBUILD b/extra/mod_mono/PKGBUILD
new file mode 100644
index 000000000..21e944d19
--- /dev/null
+++ b/extra/mod_mono/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 111519 2011-02-27 11:39:59Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=mod_mono
+pkgver=2.10
+pkgrel=1
+pkgdesc="The mono module to make ASP.NET running on top of apache"
+arch=(i686 x86_64)
+license=('APACHE')
+depends=('apache>=2.2.11' 'xsp')
+url="http://www.go-mono.com"
+install=${pkgname}.install
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('422c533a0dfbd699eb6339234261150a')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ CFLAGS="${CFLAGS} `apr-1-config --cppflags --includes --cflags`" ./configure \
+ --prefix=/usr --sysconfdir=/etc --with-apxs=/usr/sbin/apxs \
+ --with-mono-prefix=/usr --with-apr-config=/usr/bin/apr-1-config
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/extra/mod_mono/mod_mono.install b/extra/mod_mono/mod_mono.install
new file mode 100644
index 000000000..4945a714b
--- /dev/null
+++ b/extra/mod_mono/mod_mono.install
@@ -0,0 +1,20 @@
+# arg 1: the new package version
+post_install() {
+ cat << EOM
+
+--> As of version 1.1.10 mod_mono let's you use asp pages very easily by some
+--> auto integration in apache. Please read:
+ http://www.mono-project.com/AutoConfiguration
+--> to get the idea. To use mod_mono, you only have to type into httpd.conf:
+Include /etc/httpd/conf/mod_mono.conf
+
+EOM
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+# vim: ft=sh
diff --git a/extra/mod_perl/PKGBUILD b/extra/mod_perl/PKGBUILD
new file mode 100644
index 000000000..9e54317c0
--- /dev/null
+++ b/extra/mod_perl/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 108488 2011-01-31 14:48:50Z angvp $
+# Maintainer: Firmicus <francois.archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+
+pkgname=mod_perl
+_realname=mod_perl
+pkgver=2.0.4
+pkgrel=11
+pkgdesc="Apache module that embeds the Perl interpreter within the server"
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl=5.12.3' 'apache' 'db' 'apr-util')
+license=('APACHE')
+arch=('i686' 'x86_64')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/G/GO/GOZER/${_realname}-${pkgver}.tar.gz)
+md5sums=('1a05625ae6843085f985f5da8214502a')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor MP_APXS=/usr/sbin/apxs
+ make
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+}
diff --git a/extra/mod_wsgi/PKGBUILD b/extra/mod_wsgi/PKGBUILD
new file mode 100644
index 000000000..293fcc9d5
--- /dev/null
+++ b/extra/mod_wsgi/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 102102 2010-12-06 00:38:58Z ibiru $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Ryan Coyner <rcoyner@gmail.com>
+
+pkgname=mod_wsgi
+pkgver=3.3
+pkgrel=2
+pkgdesc="Python WSGI adapter module for Apache"
+arch=('i686' 'x86_64')
+url="http://www.modwsgi.org/"
+license=('APACHE')
+depends=('apache' 'python2')
+install=mod_wsgi.install
+source=(http://modwsgi.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6172bb2bbabcd0c25867c2bc06f99dbb')
+sha1sums=('f32d38e5d3ed5de1efd5abefb52678f833dc9166')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-apxs=/usr/sbin/apxs \
+ --with-python=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/mod_wsgi/mod_wsgi.install b/extra/mod_wsgi/mod_wsgi.install
new file mode 100644
index 000000000..d26d61631
--- /dev/null
+++ b/extra/mod_wsgi/mod_wsgi.install
@@ -0,0 +1,14 @@
+post_install() {
+/bin/cat << ENDOFMESSAGE
+==>
+==>
+==> To install mod_wsgi, add the following line in
+==> /etc/httpd/conf/httpd.conf file :
+==>
+==> LoadModule wsgi_module modules/mod_wsgi.so
+==>
+==> and restart/reload Apache.
+==>
+==>
+ENDOFMESSAGE
+}
diff --git a/extra/modemmanager/PKGBUILD b/extra/modemmanager/PKGBUILD
new file mode 100644
index 000000000..bcb2e54ed
--- /dev/null
+++ b/extra/modemmanager/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 82759 2010-06-16 18:15:09Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=modemmanager
+_realname=ModemManager
+pkgver=0.4
+pkgrel=1
+pkgdesc="Mobile broadband modem management service"
+arch=('i686' 'x86_64')
+url="http://cgit.freedesktop.org/ModemManager/ModemManager/"
+license=('GPL2')
+depends=('dbus-glib>=0.86' 'udev>=151' 'ppp>=2.4.5')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://download.gnome.org/sources/${_realname}/0.4/${_realname}-${pkgver}.tar.bz2)
+sha256sums=('8b5415ae8597726f82e9fd09237c02b5c8af7e9f4fc4cba00f9fe183cc2c6c5f')
+
+build() {
+ cd "$srcdir/${_realname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/monica/PKGBUILD b/extra/monica/PKGBUILD
new file mode 100644
index 000000000..82b0a4850
--- /dev/null
+++ b/extra/monica/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 2959 2008-06-17 01:02:56Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=monica
+pkgver=3.7
+pkgrel=1
+pkgdesc="A monitor calibration tool"
+arch=(i686 x86_64)
+license=('custom')
+url="http://www.pcbypaul.com/software/monica.html"
+depends=('fltk')
+makedepends=('librsvg' 'python')
+source=(http://www.pcbypaul.com/software/dl/${pkgname}-${pkgver}.tar.bz2 \
+ ${pkgname}.desktop ${pkgname}.svg)
+md5sums=('490aabc35b830e4a3dc32a2f893ba805' 'a337bfda1fca7228420db0ce92256816'\
+ '4569f5df7d7b3eaf20108adf48e8dfe4')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ make || return 1
+ install -Dm755 ${pkgname} ${startdir}/pkg/usr/bin/${pkgname}
+ install -Dm644 ../${pkgname}.desktop \
+ ${startdir}/pkg/usr/share/applications/${pkgname}.desktop
+ install -Dm644 ../${pkgname}.svg \
+ ${startdir}/pkg/usr/share/pixmaps/${pkgname}.svg
+ rsvg -w 64 -h 57 -f png ${startdir}/pkg/usr/share/pixmaps/${pkgname}.svg \
+ ${startdir}/pkg/usr/share/pixmaps/${pkgname}.png
+ install -Dm644 licence ${startdir}/pkg/usr/share/licenses/monica/license.txt
+}
diff --git a/extra/monica/monica.desktop b/extra/monica/monica.desktop
new file mode 100644
index 000000000..6b17659ca
--- /dev/null
+++ b/extra/monica/monica.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Monica
+Comment=Monitor Calibration for x-server
+Exec=monica
+Icon=monica
+Terminal=false
+Type=Application
+X-MultipleArgs=false
+Categories=Application;Settings;System;
diff --git a/extra/monica/monica.svg b/extra/monica/monica.svg
new file mode 100644
index 000000000..bb9f77d9b
--- /dev/null
+++ b/extra/monica/monica.svg
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ sodipodi:docname="monica.svg"
+ sodipodi:docbase="/home/pool/graphics/arch_candy/svg-icons"
+ height="67.000000pt"
+ width="70.000000pt"
+ inkscape:version="0.41"
+ sodipodi:version="0.32"
+ id="svg1573">
+ <defs
+ id="defs1575">
+ <linearGradient
+ id="linearGradient1606">
+ <stop
+ id="stop1607"
+ offset="0.0000000"
+ style="stop-color:#000000;stop-opacity:0.62745100;" />
+ <stop
+ id="stop1608"
+ offset="1.0000000"
+ style="stop-color:#000000;stop-opacity:0.0000000;" />
+ </linearGradient>
+ <radialGradient
+ gradientTransform="translate(0.000000,3.125000)"
+ gradientUnits="userSpaceOnUse"
+ fy="12.500000"
+ fx="12.500000"
+ r="12.433378"
+ cy="12.500000"
+ cx="12.500000"
+ id="radialGradient1636"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.437333,0.000000,0.000000,0.410284,0.000000,3.125000)"
+ y2="0.0000000"
+ x2="20.514223"
+ y1="30.771334"
+ x1="20.514223"
+ id="linearGradient1638"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientTransform="translate(-12.50000,3.250000)"
+ gradientUnits="userSpaceOnUse"
+ fy="12.500000"
+ fx="100.00000"
+ r="12.500000"
+ cy="12.500000"
+ cx="100.00000"
+ id="radialGradient1643"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.447214,0.000000,0.000000,2.236068,-12.50000,3.250000)"
+ y2="19.565595"
+ x2="251.55765"
+ y1="19.565595"
+ x1="223.60680"
+ id="linearGradient1645"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.508806,0.000000,0.000000,1.965387,0.000000,3.125000)"
+ y2="18.889412"
+ x2="0.0000000"
+ y1="18.889412"
+ x1="25.058681"
+ id="linearGradient1647"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ <linearGradient
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.814390,0.000000,0.000000,0.355317,0.000000,-10.12500)"
+ y2="246.61094"
+ x2="22.207298"
+ y1="211.07926"
+ x1="22.207298"
+ id="linearGradient1649"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientTransform="translate(0.000000,-10.12500)"
+ gradientUnits="userSpaceOnUse"
+ fy="75.000000"
+ fx="12.500000"
+ r="12.500000"
+ cy="75.000000"
+ cx="12.500000"
+ id="radialGradient1651"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ <radialGradient
+ gradientTransform="translate(-12.50000,-10.000000)"
+ gradientUnits="userSpaceOnUse"
+ fy="75.000000"
+ fx="100.00000"
+ r="12.500000"
+ cy="75.000000"
+ cx="100.00000"
+ id="radialGradient1653"
+ xlink:href="#linearGradient1606"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:current-layer="svg1573"
+ inkscape:window-y="3"
+ inkscape:window-x="0"
+ inkscape:grid-points="true"
+ inkscape:grid-bbox="true"
+ gridtolerance="2.0000000px"
+ gridoriginx="0.0000000pt"
+ gridoriginy="0.0000000pt"
+ gridspacingx="10.000000pt"
+ gridspacingy="10.000000pt"
+ snaptogrid="false"
+ showgrid="true"
+ inkscape:window-height="1002"
+ inkscape:window-width="1272"
+ inkscape:cy="50.235475"
+ inkscape:cx="67.194289"
+ inkscape:zoom="7.9999998"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="1.0"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base" />
+ <metadata
+ id="metadata1576">
+ <rdf:RDF
+ id="RDF1577">
+ <cc:Work
+ id="Work1578"
+ rdf:about="">
+ <dc:description
+ id="description1579">Created with Inkscape
+http://www.inkscape.org/</dc:description>
+ <dc:format
+ id="format1581">image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
+ id="type1583" />
+ <dc:title
+ id="title1606">ML-Term Icon</dc:title>
+ <dc:date
+ id="date1608">2004-07-14</dc:date>
+ <dc:creator
+ id="creator1610">
+ <cc:Agent
+ id="Agent1611">
+ <dc:title
+ id="title1612">Tobias Kieslich</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:coverage
+ id="coverage1614" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/"
+ id="license1616" />
+ </cc:Work>
+ <cc:License
+ id="License1624"
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ id="permits1625"
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ id="permits1626"
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ id="requires1627"
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ id="permits1628"
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ id="requires1629"
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ id="requires1630"
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2775"
+ d="M 5.8437501,76.625001 L 82.343750,76.625001"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:9.1875000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2007"
+ d="M 10.593750,6.8437510 L 77.343750,6.8437510"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2803"
+ d="M 8.2187499,9.3437490 L 8.2187499,59.593751 L 79.718750,59.593751 L 79.718750,9.3437490"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2807"
+ d="M 29.750001,67.218750 L 58.125000,67.218750"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:14.937500;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2953"
+ d="M 22.468750,14.718749 L 22.468750,52.468750"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#3f0000;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2955"
+ d="M 27.468750,14.718749 L 27.468750,52.468750"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ff1500;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2957"
+ d="M 41.593750,14.718749 L 41.593750,52.468750"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#0b2f00;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2959"
+ d="M 46.593750,14.718749 L 46.593750,52.468750"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#08ce00;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2961"
+ d="M 60.718750,14.718749 L 60.718750,52.468750"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#00004e;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path2963"
+ d="M 65.718750,14.718749 L 65.718750,52.468750"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#0072ff;stroke-width:5.0625000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" />
+</svg>
diff --git a/extra/mono-addins/PKGBUILD b/extra/mono-addins/PKGBUILD
new file mode 100644
index 000000000..5c8181a91
--- /dev/null
+++ b/extra/mono-addins/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 84508 2010-06-30 16:42:46Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=mono-addins
+pkgver=0.5
+pkgrel=1
+pkgdesc="A generic framework for creating extensible applications and for creating libraries which extend those applications"
+arch=('i686' 'x86_64')
+url="http://www.mono-project.com/Mono.Addins"
+license=('custom:MIT')
+depends=('gtk-sharp-2>=2.12.8' 'mono>=2.6.4')
+makedepends=('pkgconfig')
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('22c8dd470caed090b3c77c9423e5b3c6')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --enable-gui || return 1
+ make || return 1
+ make GACUTIL="/usr/bin/gacutil -root ${pkgdir}/usr/lib" DESTDIR=${pkgdir} install || return 1
+
+ install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+}
diff --git a/extra/mono-basic/PKGBUILD b/extra/mono-basic/PKGBUILD
new file mode 100644
index 000000000..0ffd93c05
--- /dev/null
+++ b/extra/mono-basic/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 111509 2011-02-27 11:33:57Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=mono-basic
+pkgver=2.10
+pkgrel=1
+pkgdesc="Mono Visual Basic.NET compiler"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.mono-project.com/"
+depends=('mono>=2.10.1')
+makedepends=('pkgconfig')
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('b459890e5447419ab1a5ea43d9b8afe8')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR=${startdir}/src/weird
+ mkdir -p "${MONO_SHARED_DIR}"
+ # build mono
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ sed -i 's/\/usr\/bin\/install/\/bin\/install/g' man/Makefile || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
+
+
diff --git a/extra/mono-debugger/PKGBUILD b/extra/mono-debugger/PKGBUILD
new file mode 100644
index 000000000..b9ba3b347
--- /dev/null
+++ b/extra/mono-debugger/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=mono-debugger
+pkgver=2.10
+pkgrel=1
+pkgdesc="The Mono Debugger"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.mono-project.com/"
+depends=('mono>=2.10.1')
+makedepends=('pkgconfig')
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('02ee485f2aae279f2fa3a7051c7d580e')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR=${srcdir}/weird
+ mkdir -p "${MONO_SHARED_DIR}"
+ # build mono debugger
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/mono-tools/PKGBUILD b/extra/mono-tools/PKGBUILD
new file mode 100644
index 000000000..fef384dfd
--- /dev/null
+++ b/extra/mono-tools/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 111524 2011-02-27 11:44:42Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Brice Carpentier <brice@dlfp.org>
+
+# The mono-tool package now calls make-search-index by post_install().
+# Whenever a package is installed which places doc-sources into:
+# /usr/lib/monodoc/sources it should call --make-search-index with
+# post_install() and with post remove. mond-tools itself deletes the index
+# file pre_remove(), so pacman finds the directory empty an removes it
+# properly.
+
+pkgname=mono-tools
+pkgver=2.10
+pkgrel=1
+pkgdesc="collection of testing and development tools for use with mono (including monodoc browser)"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.mono-project.com/"
+depends=('mono>=2.10.1' 'desktop-file-utils' 'gnome-desktop-sharp>=2.26.0' 'gluezilla')
+makedepends=('gecko-sharp-2.0>=0.13')
+install=$pkgname.install
+source=(http://ftp.novell.com/pub/mono/sources/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('da178df2c119c696c08c09dc9eb01994')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR="${startdir}/src/weird"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ aclocal || return 1
+ autoconf || return 1
+ automake || return 1
+ #sed -i 's:^Exec=.*$:Exec=/usr/bin/monodoc:' docbrowser/monodoc.desktop.in
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make GACUTIL="/usr/bin/gacutil /root ${startdir}/pkg/usr/lib" DESTDIR=${startdir}/pkg install || return 1
+}
diff --git a/extra/mono-tools/gnome-sharp-2.20.patch b/extra/mono-tools/gnome-sharp-2.20.patch
new file mode 100644
index 000000000..d4629d52d
--- /dev/null
+++ b/extra/mono-tools/gnome-sharp-2.20.patch
@@ -0,0 +1,11 @@
+--- configure.in.orig 2008-03-24 14:36:16.000000000 +0000
++++ configure.in 2008-03-24 14:36:24.000000000 +0000
+@@ -37,7 +37,7 @@
+ AC_SUBST(MONODOC_LIBS)
+
+
+-PKG_CHECK_MODULES(GTK_SHARP, gtk-sharp-2.0 glade-sharp-2.0 gconf-sharp-2.0)
++PKG_CHECK_MODULES(GTK_SHARP, gtk-sharp-2.0 glade-sharp-2.0 gconf-sharp-2.0 gnome-sharp-2.0)
+ #PKG_CHECK_MODULES(GTK_SHARP, gtk-sharp glade-sharp gconf-sharp)
+ AC_SUBST(GTK_SHARP_LIBS)
+
diff --git a/extra/mono-tools/gunit.patch b/extra/mono-tools/gunit.patch
new file mode 100644
index 000000000..881bf248b
--- /dev/null
+++ b/extra/mono-tools/gunit.patch
@@ -0,0 +1,11 @@
+--- gnunit/src/main.cs 2006-10-04 09:13:30.000000000 +0200
++++ gnunit/src/main.cs.patched 2006-11-23 09:10:21.000000000 +0100
+@@ -563,7 +563,7 @@
+ }
+
+ // Window event handlers
+- void OnWindowDelete (object sender, EventArgs args)
++ void OnWindowDelete (object sender, Gtk.DeleteEventArgs args)
+ {
+ OnQuitActivate (sender, args);
+ }
diff --git a/extra/mono-tools/mono-tools.install b/extra/mono-tools/mono-tools.install
new file mode 100644
index 000000000..03f6f2f7e
--- /dev/null
+++ b/extra/mono-tools/mono-tools.install
@@ -0,0 +1,30 @@
+post_install() {
+ # diable for a while maybe we can implement something in pacman to make it faster
+ #echo "creating index ... this could take a up to several minutes ..."
+ #monodoc --make-search-index > /dev/null 2>&1
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
+
+
+pre_upgrade() {
+ echo "removing index..."
+ rm -f /opt/mono/lib/monodoc/monodoc.index
+ rm -rf /opt/mono/lib/monodoc/search_index
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ echo "removing index..."
+ rm -f /usr/lib/monodoc/monodoc.index
+ rm -rf /usr/lib/monodoc/search_index
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
+
+# vim: ft=sh
diff --git a/extra/mono-zeroconf/PKGBUILD b/extra/mono-zeroconf/PKGBUILD
new file mode 100644
index 000000000..6b0728b3f
--- /dev/null
+++ b/extra/mono-zeroconf/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 94562 2010-10-08 11:54:41Z ibiru $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
+pkgname=mono-zeroconf
+pkgver=0.9.0
+pkgrel=2
+pkgdesc="A cross platform Zero Configuration Networking library for Mono and .NET."
+url="http://www.mono-project.com/Mono.Zeroconf"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('mono>=2.6' 'avahi')
+options=('!makeflags')
+source=(http://download.banshee-project.org/mono-zeroconf/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('cb25d50898442a7766c324dcb52ef9bf')
+
+
+build() {
+ export MONO_SHARED_DIR=${srcdir}/.wabi
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --disable-docs --disable-mdnsresponder
+ make hicolordir=/usr/share/icons/hicolor
+ make hicolordir=/usr/share/icons/hicolor \
+ GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 \
+ DESTDIR=${pkgdir} install
+ rm -rf "${MONO_SHARED_DIR}"
+}
diff --git a/extra/mono/PKGBUILD b/extra/mono/PKGBUILD
new file mode 100644
index 000000000..fd54cc79f
--- /dev/null
+++ b/extra/mono/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 112872 2011-03-07 12:41:38Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Brice Carpentier <brice@dlfp.org>
+
+pkgname=mono
+pkgver=2.10.1
+pkgrel=2
+pkgdesc="Free implementation of the .NET platform including runtime and compiler"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL2' 'MPL' 'custom:MITX11')
+url="http://www.mono-project.com/"
+depends=('zlib' 'libgdiplus>=2.10' 'sh')
+makedepends=('pkgconfig')
+options=('!libtool' '!makeflags')
+provides=('monodoc')
+conflicts=('monodoc')
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ mono.rc.d)
+md5sums=('ae8d1875447527599e68dd6c1d82bc11'
+ '8315e46c6a6e9625502521fc0ad1a322')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # build mono
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-libgdiplus=installed
+ make || return 1
+
+ # build jay
+ cd ${srcdir}/${pkgname}-${pkgver}/mcs/jay
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ # install jay
+ cd ${srcdir}/${pkgname}-${pkgver}/mcs/jay
+ make DESTDIR=${pkgdir} prefix=/usr INSTALL=../../install-sh install
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # install daemons and pathes
+ mkdir -p ${pkgdir}/etc/rc.d
+ install -m755 ${srcdir}/mono.rc.d ${pkgdir}/etc/rc.d/mono
+
+ #install license
+ mkdir -p ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 mcs/MIT.X11 ${pkgdir}/usr/share/licenses/${pkgname}/
+
+ #fix .pc file to be able to request mono on what it depends, fixes #go-oo build
+ sed -i -e "s:#Requires:Requires:" ${pkgdir}/usr/lib/pkgconfig/mono.pc
+}
diff --git a/extra/mono/bug434892.patch b/extra/mono/bug434892.patch
new file mode 100644
index 000000000..d4f46f68c
--- /dev/null
+++ b/extra/mono/bug434892.patch
@@ -0,0 +1,11 @@
+--- trunk/mcs/class/System.Web.Services/System.Web.Services.Description/BasicProfileChecker.cs 2008/07/01 20:17:46 107006
++++ trunk/mcs/class/System.Web.Services/System.Web.Services.Description/BasicProfileChecker.cs 2008/10/28 09:32:46 117243
+@@ -177,7 +177,7 @@
+ foreach (OperationMessage om in op.Messages) {
+ Message msg = ctx.Services.GetMessage (om.Message);
+ foreach (MessagePart part in msg.Parts)
+- parts.Add (part,part);
++ parts [part] = part; // do not use Add() - there could be the same MessagePart instance.
+ }
+ }
+
diff --git a/extra/mono/mini_amd64.patch b/extra/mono/mini_amd64.patch
new file mode 100644
index 000000000..f8685c337
--- /dev/null
+++ b/extra/mono/mini_amd64.patch
@@ -0,0 +1,13 @@
+--- mono/mini/mini-amd64.c 2009-03-19 21:08:18 UTC (rev 129824)
++++ mono/mini/mini-amd64.c 2009-03-19 21:09:53 UTC (rev 129825)
+@@ -1009,7 +1009,7 @@
+ locals_size += mono_type_size (ins->inst_vtype, &ialign);
+ }
+
+- if ((cfg->num_varinfo > 10000) || (locals_size >= (1 << 15))) {
++ if ((cfg->num_varinfo > 5000) || (locals_size >= (1 << 15)) || (header->code_size > 110000)) {
+ /* Avoid hitting the stack_alloc_size < (1 << 16) assertion in emit_epilog () */
+ cfg->arch.omit_fp = FALSE;
+ }
+
+
diff --git a/extra/mono/mono.rc.d b/extra/mono/mono.rc.d
new file mode 100644
index 000000000..548cc2d7b
--- /dev/null
+++ b/extra/mono/mono.rc.d
@@ -0,0 +1,35 @@
+#!/bin/bash
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Registering .NET IL binaries with mono"
+ if [ ! -d /proc/sys/fs/binfmt_misc ]; then
+ stat_die "You need support for \"misc binaries\" in your kernel!"
+ fi
+ mount | grep -q binfmt_misc
+ if [ $? != 0 ]; then
+ mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
+ if [ $? != 0 ]; then
+ stat_die
+ fi
+ fi
+ echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
+ stat_done
+ ;;
+ stop)
+
+ stat_busy "Unregistering .NET IL binaries"
+ if [ -f /proc/sys/fs/binfmt_misc/CLR ]; then
+ echo '-1' > /proc/sys/fs/binfmt_misc/CLR
+ fi
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/monodevelop-debugger-gdb/PKGBUILD b/extra/monodevelop-debugger-gdb/PKGBUILD
new file mode 100644
index 000000000..a7c6daf1b
--- /dev/null
+++ b/extra/monodevelop-debugger-gdb/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=monodevelop-debugger-gdb
+pkgver=2.4
+pkgrel=1
+pkgdesc="Mono Debugger support"
+arch=('i686' 'x86_64')
+url="http://monodevelop.com"
+license=('GPL')
+depends=('monodevelop>=2.4' 'gdb')
+makedepends=('mono')
+source=(http://ftp.novell.com/pub/mono/sources/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('f5bf8cd4dfdffac928329d98cd56985b')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/extra/monodevelop-debugger-mdb/PKGBUILD b/extra/monodevelop-debugger-mdb/PKGBUILD
new file mode 100644
index 000000000..43a7140c9
--- /dev/null
+++ b/extra/monodevelop-debugger-mdb/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Artyom Smirnov <smirnoffjr@gmail.com>
+
+pkgname=monodevelop-debugger-mdb
+pkgver=2.4
+pkgrel=1
+pkgdesc="Mono Debugger support"
+arch=('i686' 'x86_64')
+url="http://monodevelop.com"
+license=('GPL')
+depends=('monodevelop' 'mono-debugger>=2.6.3')
+makedepends=('mono>=2.6.3')
+source=(http://ftp.novell.com/pub/mono/sources/$pkgname/$pkgname-$pkgver.tar.bz2
+ support_mdb_2.4.2.patch)
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ #patch -p1 <"${srcdir}/support_mdb_2.4.2.patch" || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+}
+
+md5sums=('b2a51036d55fef42f391adf23e6c5c2c'
+ '95a4f34728950af4a1040761435a4dbf')
diff --git a/extra/monodevelop-debugger-mdb/support_mdb_2.4.2.patch b/extra/monodevelop-debugger-mdb/support_mdb_2.4.2.patch
new file mode 100644
index 000000000..164aa8071
--- /dev/null
+++ b/extra/monodevelop-debugger-mdb/support_mdb_2.4.2.patch
@@ -0,0 +1,444 @@
+
+Index: monodevelop-debugger-mdb/Mono.Debugging.Backend.Mdb/IDebuggerServer.cs
+===================================================================
+--- monodevelop-debugger-mdb.orig/Mono.Debugging.Backend.Mdb/IDebuggerServer.cs 2009-07-01 09:23:09.000000000 +0100
++++ monodevelop-debugger-mdb/Mono.Debugging.Backend.Mdb/IDebuggerServer.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -32,6 +32,8 @@
+ {
+ public interface IDebuggerServer
+ {
++ string InitializeMdb (string mdbVersion);
++
+ void Run (DebuggerStartInfo startInfo);
+
+ void Stop ();
+Index: monodevelop-debugger-mdb/Mono.Debugging.Backend.Mdb/MonoDebuggerSession.cs
+===================================================================
+--- monodevelop-debugger-mdb.orig/Mono.Debugging.Backend.Mdb/MonoDebuggerSession.cs 2009-07-01 09:23:18.000000000 +0100
++++ monodevelop-debugger-mdb/Mono.Debugging.Backend.Mdb/MonoDebuggerSession.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -37,11 +37,13 @@
+ public class MonoDebuggerSession: DebuggerSession
+ {
+ DebuggerController controller;
++ static string detectedMdbVersion;
+
+ public void StartDebugger ()
+ {
+ controller = new DebuggerController (this, Frontend);
+ controller.StartDebugger ();
++ InitMdbVersion ();
+ }
+
+ public override void Dispose ()
+@@ -54,6 +56,12 @@
+ {
+ controller.DebuggerServer.Run (startInfo);
+ }
++
++ void InitMdbVersion ()
++ {
++ // Cache detected mdb versions, so version detection is done only once
++ detectedMdbVersion = controller.DebuggerServer.InitializeMdb (detectedMdbVersion);
++ }
+
+ protected override void OnAttachToProcess (int processId)
+ {
+Index: monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/DebuggerServer.cs
+===================================================================
+--- monodevelop-debugger-mdb.orig/Mono.Debugging.Server.Mdb/DebuggerServer.cs 2009-07-01 09:24:51.000000000 +0100
++++ monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/DebuggerServer.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -39,6 +39,7 @@
+ Dictionary<int, ST.WaitCallback> breakUpdates = new Dictionary<int,ST.WaitCallback> ();
+ bool breakUpdateEventsQueued;
+
++ MdbAdaptor mdbAdaptor;
+ AsyncEvaluationTracker asyncEvaluationTracker;
+ RuntimeInvokeManager invokeManager;
+
+@@ -51,6 +52,7 @@
+ public DebuggerServer (IDebuggerController dc)
+ {
+ this.controller = dc;
++
+ MarshalByRefObject mbr = (MarshalByRefObject)controller;
+ ILease lease = mbr.GetLifetimeService() as ILease;
+ lease.Register(this);
+@@ -79,8 +81,18 @@
+ }
+ }
+
++ public MdbAdaptor MdbAdaptor {
++ get { return mdbAdaptor; }
++ }
++
+ #region IDebugger Members
+
++ public string InitializeMdb (string mdbVersion)
++ {
++ mdbAdaptor = MdbAdaptorFactory.CreateAdaptor (mdbVersion);
++ return mdbAdaptor.MdbVersion;
++ }
++
+ public void Run (DL.DebuggerStartInfo startInfo)
+ {
+ try {
+@@ -91,6 +103,7 @@
+
+ DebuggerConfiguration config = new DebuggerConfiguration ();
+ config.LoadConfiguration ();
++ mdbAdaptor.InitializeConfiguration (config);
+ debugger = new MD.Debugger (config);
+
+ debugger.ModuleLoadedEvent += OnModuleLoadedEvent;
+Index: monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/Makefile
+===================================================================
+--- monodevelop-debugger-mdb.orig/Mono.Debugging.Server.Mdb/Makefile 2009-07-01 09:24:35.000000000 +0100
++++ monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/Makefile 2009-07-01 09:25:21.000000000 +0100
+@@ -59,6 +59,8 @@
+ ICollectionAdaptor.cs \
+ IndexerValueReference.cs \
+ LiteralValueReference.cs \
++ MdbAdaptor.cs \
++ MdbAdaptorFactory.cs \
+ NamespaceValueReference.cs \
+ NRefactoryEvaluator.cs \
+ NullValueReference.cs \
+@@ -77,7 +79,9 @@
+
+ DATA_FILES =
+
+-RESOURCES =
++RESOURCES = \
++ MdbAdaptor-2-0.cs \
++ MdbAdaptor-2-4-2.cs
+
+ EXTRAS = \
+ ChangeLog
+Index: monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptor-2-0.cs
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptor-2-0.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -0,0 +1,40 @@
++//
++// MdbAdaptor_2_0.cs
++//
++// Author:
++// Lluis Sanchez Gual <lluis@novell.com>
++//
++// Copyright (c) 2009 Novell, Inc (http://www.novell.com)
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++using System;
++
++namespace DebuggerServer
++{
++ public class MdbAdaptor_2_0: MdbAdaptor
++ {
++ public override void AbortThread (Mono.Debugger.Thread thread, Mono.Debugger.RuntimeInvokeResult result)
++ {
++ result.Abort ();
++ result.CompletedEvent.WaitOne ();
++ thread.AbortInvocation ();
++ }
++ }
++}
+Index: monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptor-2-4-2.cs
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptor-2-4-2.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -0,0 +1,51 @@
++//
++// MdbAdaptor22.cs
++//
++// Author:
++// Lluis Sanchez Gual <lluis@novell.com>
++//
++// Copyright (c) 2009 Novell, Inc (http://www.novell.com)
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++using System;
++using Mono.Debugger;
++
++namespace DebuggerServer
++{
++ public class MdbAdaptor_2_4_2: MdbAdaptor
++ {
++ public override void SetupXsp (DebuggerConfiguration config)
++ {
++ config.SetupXSP ();
++ config.StopOnManagedSignals = true;
++ }
++
++ public override void InitializeConfiguration (Mono.Debugger.DebuggerConfiguration config)
++ {
++ base.InitializeConfiguration (config);
++ config.RedirectOutput = true;
++ }
++
++ public override void AbortThread (Mono.Debugger.Thread thread, Mono.Debugger.RuntimeInvokeResult result)
++ {
++ result.Abort ();
++ }
++ }
++}
+Index: monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptor.cs
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptor.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -0,0 +1,62 @@
++//
++// MdbAdaptor.cs
++//
++// Author:
++// Lluis Sanchez Gual <lluis@novell.com>
++//
++// Copyright (c) 2009 Novell, Inc (http://www.novell.com)
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++using System;
++using MDB=Mono.Debugger;
++using Mono.Debugging.Backend.Mdb;
++
++namespace DebuggerServer
++{
++ public abstract class MdbAdaptor
++ {
++ public MdbAdaptor ()
++ {
++ MdbVersion = "2.0";
++ }
++
++ public string MdbVersion { get; internal set; }
++
++ public virtual void SetupXsp (MDB.DebuggerConfiguration config)
++ {
++ ThrowNotSupported ("ASP.NET debugging not supported");
++ }
++
++ public virtual void InitializeBreakpoint (MDB.SourceBreakpoint bp)
++ {
++ }
++
++ public virtual void InitializeConfiguration (MDB.DebuggerConfiguration config)
++ {
++ }
++
++ public abstract void AbortThread (MDB.Thread thread, MDB.RuntimeInvokeResult result);
++
++ public void ThrowNotSupported (string feature)
++ {
++ throw new InvalidOperationException (feature + ". You need to install a more recent Mono Debugger version.");
++ }
++ }
++}
+Index: monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptorFactory.cs
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/MdbAdaptorFactory.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -0,0 +1,128 @@
++//
++// MdbAdaptorFactory.cs
++//
++// Author:
++// Lluis Sanchez Gual <lluis@novell.com>
++//
++// Copyright (c) 2009 Novell, Inc (http://www.novell.com)
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy
++// of this software and associated documentation files (the "Software"), to deal
++// in the Software without restriction, including without limitation the rights
++// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++// copies of the Software, and to permit persons to whom the Software is
++// furnished to do so, subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in
++// all copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++// THE SOFTWARE.
++
++using System;
++using System.Reflection;
++using System.Diagnostics;
++using System.IO;
++
++namespace DebuggerServer
++{
++ public static class MdbAdaptorFactory
++ {
++ // Bump this version number if any change is in MdbAdaptor or subclases
++ const int ApiVersion = 2;
++
++ static readonly string[] supportedVersions = new string[] {"2-4-2", "2-0"};
++
++ public static MdbAdaptor CreateAdaptor (string mdbVersion)
++ {
++ ProcessStartInfo pinfo = new ProcessStartInfo ();
++ pinfo.FileName = "gmcs";
++
++ if (mdbVersion != null) {
++ MdbAdaptor mdb = TryCreateAdaptor (pinfo, mdbVersion);
++ if (mdb == null)
++ throw new InvalidOperationException ("Unsupported MDB version");
++ return mdb;
++ }
++
++ foreach (string v in supportedVersions) {
++ MdbAdaptor mdb = TryCreateAdaptor (pinfo, v);
++ if (mdb != null)
++ return mdb;
++ }
++ throw new InvalidOperationException ("Unsupported MDB version");
++ }
++
++ static MdbAdaptor TryCreateAdaptor (ProcessStartInfo pinfo, string versions)
++ {
++ string[] versionsArray = versions.Split ('|');
++ string version = versionsArray [0];
++
++ string tmpPath = Path.GetTempPath ();
++ tmpPath = Path.Combine (tmpPath, "monodevelop-debugger-mdb");
++ if (!Directory.Exists (tmpPath))
++ Directory.CreateDirectory (tmpPath);
++
++ string outFile = Path.Combine (tmpPath, "adaptor-" + ApiVersion + "--" + version + ".dll");
++
++ string[] refAssemblies = new string [] {
++ typeof(MdbAdaptorFactory).Assembly.Location,
++ typeof(Mono.Debugger.Debugger).Assembly.Location,
++ typeof(Mono.Debugging.Client.DebuggerSession).Assembly.Location,
++ typeof(Mono.Debugging.Backend.Mdb.IDebuggerServer).Assembly.Location
++ };
++
++ DateTime refsTime = DateTime.MinValue;
++ foreach (string rasm in refAssemblies) {
++ DateTime t = File.GetLastWriteTime (rasm);
++ if (t > refsTime)
++ refsTime = t;
++ }
++
++ if (!File.Exists (outFile) || File.GetLastWriteTime (outFile) < refsTime) {
++ string args = "/t:library ";
++ args += "\"/out:" + outFile + "\" ";
++ foreach (string rasm in refAssemblies)
++ args += "\"/r:" + rasm + "\" ";
++
++ // Write the source code for all required classes
++ foreach (string ver in versionsArray) {
++ Stream s = typeof(MdbAdaptorFactory).Assembly.GetManifestResourceStream ("MdbAdaptor-" + ver + ".cs");
++ StreamReader sr = new StreamReader (s);
++ string txt = sr.ReadToEnd ();
++ sr.Close ();
++ s.Close ();
++
++ string csfile = Path.Combine (tmpPath, "adaptor-" + ver + ".cs");
++ File.WriteAllText (csfile, txt);
++ args += "\"" + csfile + "\" ";
++ }
++
++ pinfo.Arguments = args;
++ Process proc = Process.Start (pinfo);
++ proc.WaitForExit ();
++ if (proc.ExitCode != 0)
++ return null;
++ Console.WriteLine ("Generated: " + outFile);
++ }
++
++ Assembly asm = Assembly.LoadFrom (outFile);
++ Type at = asm.GetType ("DebuggerServer.MdbAdaptor_" + version.Replace ('-','_'));
++ if (at != null) {
++ try {
++ MdbAdaptor a = (MdbAdaptor) Activator.CreateInstance (at);
++ a.MdbVersion = version;
++ return a;
++ } catch {
++ // MDB version not really supported
++ }
++ }
++ return null;
++ }
++ }
++}
+Index: monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/RuntimeInvokeManager.cs
+===================================================================
+--- monodevelop-debugger-mdb.orig/Mono.Debugging.Server.Mdb/RuntimeInvokeManager.cs 2009-07-01 09:24:00.000000000 +0100
++++ monodevelop-debugger-mdb/Mono.Debugging.Server.Mdb/RuntimeInvokeManager.cs 2009-07-01 09:25:21.000000000 +0100
+@@ -52,9 +52,7 @@
+ lock (operationsToCancel) {
+ if (!aborted) {
+ aborted = true;
+- res.Abort ();
+- res.CompletedEvent.WaitOne ();
+- ctx.Thread.AbortInvocation ();
++ Server.Instance.MdbAdaptor.AbortThread (ctx.Thread, res);
+ WaitToStop (ctx.Thread);
+ }
+ }
+@@ -73,9 +71,7 @@
+ }
+ else
+ aborted = true;
+- res.Abort ();
+- res.CompletedEvent.WaitOne ();
+- ctx.Thread.AbortInvocation ();
++ Server.Instance.MdbAdaptor.AbortThread (ctx.Thread, res);
+ WaitToStop (ctx.Thread);
+ throw new TimeOutException ();
+ }
+
diff --git a/extra/monodevelop/PKGBUILD b/extra/monodevelop/PKGBUILD
new file mode 100644
index 000000000..423792e15
--- /dev/null
+++ b/extra/monodevelop/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=monodevelop
+pkgver=2.4.2
+pkgrel=1
+pkgdesc="An IDE primarily designed for C# and other .NET languages"
+arch=('i686' 'x86_64')
+url="http://www.monodevelop.org"
+license=('GPL')
+depends=('mono>=2.8.2' 'mono-addins>=0.5' 'gnome-sharp' 'gecko-sharp-2.0>=0.10' 'gnome-desktop-sharp')
+options=(!makeflags force)
+install=monodevelop.install
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('05d20deada26a115418cb1b4526b8d15')
+
+build() {
+ export MONO_SHARED_DIR=$srcdir/src/.wabi
+ mkdir -p $MONO_SHARED_DIR
+
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --disable-update-mimedb --disable-update-desktopdb
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -r $MONO_SHARED_DIR
+}
+
diff --git a/extra/monodevelop/monodevelop.install b/extra/monodevelop/monodevelop.install
new file mode 100644
index 000000000..765dfb9bd
--- /dev/null
+++ b/extra/monodevelop/monodevelop.install
@@ -0,0 +1,19 @@
+post_install() {
+ update-mime-database /usr/share/mime 1> /dev/null
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ update-mime-database /usr/share/mime 1> /dev/null
+ echo "update desktop mime database..."
+ update-desktop-database -q
+}
diff --git a/extra/monotone/PKGBUILD b/extra/monotone/PKGBUILD
new file mode 100644
index 000000000..4cb7e86cc
--- /dev/null
+++ b/extra/monotone/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 98524 2010-11-10 22:12:25Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: Jeff 'codemac' Mickey <jeff@archlinux.org>
+# Contributor: Dan McGee <dpmcgee@gmail.com>
+pkgname=monotone
+pkgver=0.99.1
+pkgrel=1
+pkgdesc="A modern distributed version control system, like hg, darcs, or git"
+arch=('i686' 'x86_64')
+url="http://www.monotone.ca"
+license=('GPL')
+depends=('botan' 'pcre' 'lua' 'sqlite3' 'libidn' 'zlib')
+makedepends=('boost')
+install=${pkgname}.install
+source=(http://www.monotone.ca/downloads/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('61c586f340fa3ca2b0974f6b5c455b0e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 contrib/monotone.bash_completion \
+ "${pkgdir}/etc/bash_completion.d/monotone"
+ install -Dm644 contrib/monotone.zsh_completion \
+ "${pkgdir}/usr/share/zsh/site-functions/monotone"
+}
diff --git a/extra/monotone/monotone.install b/extra/monotone/monotone.install
new file mode 100644
index 000000000..6098920e0
--- /dev/null
+++ b/extra/monotone/monotone.install
@@ -0,0 +1,29 @@
+infodir=/usr/share/info
+filelist=(monotone.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+
+# arg 1: the new package version
+# arg 2: the old package version
+ if [ "$(vercmp $2 0.45)" -lt 0 ]; then
+ echo ">>> Your monotone databases will need updating for an internal format"
+ echo ">>> change. Please run the following command on each of your databases"
+ echo ">>> (after remembering to take a backup copy):"
+ echo ">>> $ mtn -d dbname.mtn db migrate"
+ fi
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/most/PKGBUILD b/extra/most/PKGBUILD
new file mode 100644
index 000000000..bf03914bc
--- /dev/null
+++ b/extra/most/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 57012 2009-10-31 08:10:58Z allan $
+# Maintainer: juergen <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=most
+pkgver=5.0.0a
+pkgrel=2
+pkgdesc="A terminal pager similar to 'more' and 'less'"
+arch=('i686' 'x86_64')
+depends=('slang')
+license=('GPL')
+url="ftp://space.mit.edu/pub/davis/most/"
+source=(ftp://space.mit.edu/pub/davis/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('30f2131b67f61716f6fe1f65205da48b')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/most/most-debian.patch b/extra/most/most-debian.patch
new file mode 100644
index 000000000..4387420e8
--- /dev/null
+++ b/extra/most/most-debian.patch
@@ -0,0 +1,1655 @@
+--- most-4.10.2.orig/most.1
++++ most-4.10.2/most.1
+@@ -134,7 +134,7 @@
+ Use this switch when you want to view files
+ containing 8 bit characters.
+ .I most
+-will display the file 16 bytes per line in hexidecimal notation.
++will display the file 16 bytes per line in hexadecimal notation.
+ A typical line looks like:
+ .IP
+ .Ds
+@@ -185,12 +185,13 @@
+ This option is meaningful only when used with the
+ .B \-v
+ option.
++.TP
+ .BI + lineno
+ Start up at
+ .IR lineno .
+ .TP
+-.B +c
+-Make search case sensitive.
++.B -c
++Make searches case sensitive.
+ By default, they are not.
+ .TP
+ .B +d
+@@ -482,7 +483,7 @@
+ descriptors that represent the file name and line number,
+ respectively. For example, if JED is your editor, then set
+ .B MOST_EDITOR
+-to 'jed %s -g %d'.
++to 'jed %s -g %d'. This will only work where the %s preceeds the %d.
+ .TP
+ .B MOST_HELP
+ This variable may be used to specify an alternate help file.
+@@ -496,7 +497,7 @@
+ .I most.rc
+ on other systems.
+ .SH CONFIGURATION FILE SYNTAX
+-When most starts up, it tries to read a system confiuration file and
++When most starts up, it tries to read a system configuration file and
+ then a personal configuration file. These files may be used to
+ specify keybindings and colors.
+ .PP
+--- most-4.10.2.orig/src/buffer.c
++++ most-4.10.2/src/buffer.c
+@@ -44,10 +44,10 @@
+
+ Most_Buffer_Type *Most_Buf;
+
+-int Most_Num_Lines;
++long long Most_Num_Lines;
+
+-unsigned int Most_C_Offset;
+-int Most_C_Line;
++unsigned long long Most_C_Offset;
++long long Most_C_Line;
+
+ static unsigned char *beg_of_line1(void)
+ {
+@@ -61,24 +61,29 @@
+ {
+ if (*pos == '\n')
+ {
+- pos--;
+- while ((pos > Most_Beg)
+- && (*pos != '\n'))
++ pos--; /* Skip back the new-line. */
++ /* This block is UTF-8 safe, because it only scans the
++ buffer for a new-line, and doesn't count
++ characters. */
++ while ((pos > Most_Beg) && (*pos != '\n'))
+ pos--;
+
+- if (*pos != '\n') return pos;
++ if (*pos != '\n') return Most_Beg;
++ /* from here on *pos == '\n' */
+ if (pos + 1 != cpos)
+ return pos + 1;
+ }
+ }
+- else pos--;
++ else
++ pos = SLutf8_bskip_char(Most_Beg, pos);
+
+ if (*pos != '\n')
+ {
+- while ((pos > Most_Beg)
+- && (*pos != '\n'))
++ /* This block is UTF-8 safe. See comment above. */
++ while ((pos > Most_Beg) && (*pos != '\n'))
+ pos--;
+ if (*pos != '\n') return Most_Beg;
++ /* from here on *pos == '\n' */
+ return pos + 1;
+ }
+
+@@ -93,55 +98,6 @@
+ return pos;
+ }
+
+-
+-static unsigned char *forward_columns (unsigned char *b, unsigned char *e, unsigned int num_cols)
+-{
+- unsigned int col = 0;
+-
+- while ((b < e)
+- && (col < num_cols))
+- {
+- unsigned char ch = *b++;
+- if (((ch >= ' ') && (ch < 0x7F))
+- || (ch >= SLsmg_Display_Eight_Bit))
+- {
+- col++;
+- continue;
+- }
+-
+- if ((ch == '\b') || (ch == '\t') || (ch == '\r'))
+- switch (ch)
+- {
+- case '\b':
+- if (Most_V_Opt == 0)
+- {
+- if (col > 0) col--;
+- }
+- else col += 2;
+- break;
+-
+- case '\r':
+- if (Most_V_Opt == 0)
+- col = 0;
+- else
+- col += 2;
+- break;
+-
+- case '\t':
+- if (Most_T_Opt == 0)
+- col = Most_Tab_Width * (col/Most_Tab_Width + 1);
+- else
+- col += 2;
+- break;
+- }
+- else if (ch & 0x80)
+- col += 3;
+- else
+- col += 2;
+- }
+- return b;
+-}
+-
+ /* does not move point */
+ static unsigned char *end_of_line1(void)
+ {
+@@ -164,6 +120,9 @@
+
+ if (*pos != '\n')
+ {
++ /* This block is UTF-8 safe, because it only scans the buffer
++ for a new-line, and doesn't count characters. */
++
+ n = pmax - pos;
+ n2 = n % 8;
+ pmax = pos + (n - 8);
+@@ -215,7 +174,7 @@
+ ncols = SLtt_Screen_Cols-1;
+ while (1)
+ {
+- unsigned char *next_b = forward_columns (b, e, ncols);
++ unsigned char *next_b = most_forward_columns (b, e, ncols, 1);
+ if ((next_b == e) || (next_b == b))
+ break;
+
+@@ -237,11 +196,12 @@
+ return e;
+
+ if (b == NULL) b = most_beg_of_line ();
+- b = forward_columns (b, e, SLtt_Screen_Cols-1);
++ b = most_forward_columns (b, e, SLtt_Screen_Cols-1, 1);
+
+ /* Do not wrap the line if the last character falls on the last column
+ * of the display.
+ */
++ /* FIXME potential bug if dealing with multi-byte char. */
+ if ((b + 1 <= e)
+ && (b + 1 < Most_Eob)
+ && (b[1] == '\n'))
+@@ -250,10 +210,10 @@
+ return b;
+ }
+
+-int most_forward_line(int save)
++long long most_forward_line(long long save)
+ {
+- int m;
+- register int n = save;
++ long long m;
++ register long long n = save;
+ unsigned char *p;
+ unsigned char *pmax;
+
+@@ -346,14 +306,14 @@
+ }
+
+ /* Count lines in the region. A half line counts as 1 */
+-int most_count_lines(unsigned char *beg, unsigned char *end)
++long long most_count_lines(unsigned char *beg, unsigned char *end)
+ {
+- int save_line, n;
++ long long save_line, n;
+ unsigned char *save_beg, *save_eob;
+- unsigned int save_pos;
++ unsigned long long save_pos;
+ int dn = 1000;
+
+- if (Most_B_Opt) return(1 + (int)(end - beg) / 16);
++ if (Most_B_Opt) return(1 + (long long)(end - beg) / 16);
+
+ save_line = Most_C_Line; save_beg = Most_Beg; save_eob = Most_Eob;
+ save_pos = Most_C_Offset;
+@@ -371,9 +331,9 @@
+ return(n);
+ }
+
+-void most_goto_line(int line)
++void most_goto_line(long long line)
+ {
+- int dif_c, dif_b,dif_t;
++ long long dif_c, dif_b,dif_t;
+
+ if (line < 1) line = 1;
+ most_read_to_line(line);
+@@ -420,7 +380,7 @@
+ }
+
+ /* return line the point is on without the final '\n's */
+-int most_extract_line(unsigned char **beg, unsigned char **end)
++long long most_extract_line(unsigned char **beg, unsigned char **end)
+ {
+ *beg = most_beg_of_line();
+ *end = end_of_line (*beg);
+@@ -428,12 +388,12 @@
+ return 0;
+ }
+
+-int most_what_line(unsigned char *pos)
++long long most_what_line(unsigned char *pos)
+ {
+- unsigned int save_pos;
+- int save_line, dir;
+- register int dif_c, dif_b,dif_t;
+- int ret;
++ unsigned long long save_pos;
++ long long save_line, dir;
++ register long long dif_c, dif_b,dif_t;
++ long long ret;
+
+ if (Most_B_Opt)
+ {
+@@ -517,7 +477,7 @@
+ }
+
+ /* given a buffer position, find the line and column */
+-void most_find_row_column(unsigned char *pos, int *r, int *c)
++void most_find_row_column(unsigned char *pos, long long *r, long long *c)
+ {
+ unsigned char *beg;
+ unsigned int save_offset;
+@@ -545,7 +505,10 @@
+ /* Now we have found the line it is on so.... */
+ beg = most_beg_of_line();
+ *c = 1;
+- while (beg++ < pos) *c = *c + 1;
++ if (Most_UTF8_Mode)
++ while ((beg = SLutf8_skip_char(beg, pos)) < pos) *c = *c + 1;
++ else
++ while (beg++ < pos) *c = *c + 1;
+ Most_C_Line = save_line;
+ Most_C_Offset = save_offset;
+ }
+--- most-4.10.2.orig/src/buffer.h
++++ most-4.10.2/src/buffer.h
+@@ -23,12 +23,12 @@
+
+ extern Most_Buffer_Type *Most_Buf;
+ extern unsigned char *Most_Beg, *Most_Eob;
+-extern int Most_Num_Lines;
++extern long long Most_Num_Lines;
+
+ /* Offset of current position from beginning of buffer */
+-extern unsigned int Most_C_Offset;
++extern unsigned long long Most_C_Offset;
+
+-extern int Most_C_Line;
++extern long long Most_C_Line;
+ /*
+ * Current line number. If at the beginning of the buffer, it is 1. If
+ * we are at the last point of the buffer it is the number of lines.
+@@ -37,26 +37,26 @@
+ /* This routine does not move the point */
+ extern unsigned char *most_beg_of_line(void);
+
+-extern int most_forward_line(int);
++extern long long most_forward_line(long long);
+ /* This routine moves the point forward n lines. n can be negative.
+ It returns the number moved. */
+
+-extern void most_goto_line(int);
++extern void most_goto_line(long long);
+ /* Move the point somewhere on the nth line of the buffer returning
+ C_POS */
+
+-extern int most_what_line(unsigned char *);
++extern long long most_what_line(unsigned char *);
+ /* return the line number of position 'argument'. Does not move point */
+
+ /* count the number of lines in the region delimited by beg and end.
+ Counts lines from beg up to end but does not count end.
+ Does not move point. */
+-extern int most_count_lines(unsigned char *, unsigned char *);
+-extern int most_extract_line(unsigned char **, unsigned char **);
++extern long long most_count_lines(unsigned char *, unsigned char *);
++extern long long most_extract_line(unsigned char **, unsigned char **);
+
+ extern Most_Buffer_Type *most_switch_to_buffer(Most_Buffer_Type *);
+ extern Most_Buffer_Type *most_create_buffer(char *);
+-extern void most_find_row_column(unsigned char *, int *, int *);
++extern void most_find_row_column(unsigned char *, long long *, long long *);
+
+ #endif
+
+--- most-4.10.2.orig/src/keym.c
++++ most-4.10.2/src/keym.c
+@@ -228,7 +228,7 @@
+ static void goto_percent_cmd(void)
+ {
+ unsigned char *pos;
+- int n;
++ long long n;
+
+ if (Most_Digit_Arg != (int *) NULL) n = *Most_Digit_Arg;
+ else
+@@ -282,7 +282,7 @@
+
+ static void find_next_cmd(void)
+ {
+- int col, line, n = 1;
++ long long col, line, n = 1;
+ unsigned long ofs;
+
+ if (Most_Digit_Arg != NULL) n = *Most_Digit_Arg;
+@@ -309,7 +309,7 @@
+ #else
+ "Search: ",
+ #endif
+- Most_Search_Str,
++ (char *) Most_Search_Str,
+ MOST_SEARCH_BUF_LEN
+ ) == -1) return;
+ Most_Curs_Offset = Most_C_Offset;
+@@ -325,7 +325,7 @@
+ #else
+ "Search Backwards: ",
+ #endif
+- Most_Search_Str,
++ (char *) Most_Search_Str,
+ MOST_SEARCH_BUF_LEN) == -1) return;
+ find_next_cmd();
+ }
+--- most-4.10.2.orig/src/line.c
++++ most-4.10.2/src/line.c
+@@ -87,8 +87,7 @@
+ while (b < end)
+ {
+ ch = *b++;
+- if (((ch >= ' ') && (ch < 0x7F))
+- || (ch >= SLsmg_Display_Eight_Bit))
++ if (most_isprint(ch))
+ {
+ *s++ = ch;
+ continue;
+@@ -108,103 +107,156 @@
+
+ if (end > Most_Eob) end = Most_Eob;
+
+- sprintf (buf, "0x%08X: ", Most_C_Offset);
++ sprintf (buf, "0x%08llX: ", Most_C_Offset);
+ ascii_format_line (beg, end, buf + 12);
+ SLsmg_write_string (buf);
+ SLsmg_erase_eol ();
+ }
+
+-static int most_analyse_line(unsigned char *begg, unsigned char *endd,
+- char *out, char *attributes)
++int most_isprint(unsigned char ch)
+ {
+- unsigned char *beg, *end;
+- unsigned int min_col, max_col;
+- unsigned int i, i_max;
++ /* Can this be directly replaced with isprint? */
++ return (ch >= ' ' && ch < 0x7F) || ch >= SLsmg_Display_Eight_Bit;
++}
++
++static void most_analyse_line(unsigned char *beg, unsigned char *end,
++ unsigned char *out, char *attributes)
++{
++ unsigned char *pout;
++ char* pattributes;
++
++ /* Holds the number of columns for the current character counting
++ * from the left margin (in contrast to the leftmost visible
++ * column).
++ */
++ unsigned int col;
++
++ /* Holds the number of the column up to which to apply the
++ * current/following formatting. Only meaningful when format_rlim > i.
++ */
++ unsigned int format_rlim;
+
+- beg = begg;
+- end = endd;
+- i = i_max = 0;
+- min_col = Most_Column - 1;
+- max_col = min_col + SLtt_Screen_Cols;
++ beg = most_forward_columns(beg, end, Most_Column - 1, 0);
++ pout = out;
++ pattributes = attributes;
++ col = format_rlim = 0;
+
+ while (beg < end)
+ {
+ char attr = ' ';
+- unsigned char ch;
++ unsigned char ch = *beg++;
+
+- if ('\n' == (ch = *beg++))
++ if ('\n' == ch)
+ break;
+
+ if ((ch == '\r') && (Most_V_Opt == 0))
+ {
+- if (i > i_max) i_max = i;
+- i = 0;
++ if (col > format_rlim) format_rlim = col;
++ col = 0;
+ continue;
+ }
+
+ if ((ch == '\b') && (Most_V_Opt == 0))
+ {
+- if (i > i_max) i_max = i;
+- if (i > 0)
+- i--;
++ if (col > format_rlim) format_rlim = col;
++ if (col > 0)
++ {
++ if (Most_UTF8_Mode)
++ {
++ SLwchar_Type wc;
++ pout = SLutf8_bskip_char(out, pout);
++ if (SLutf8_decode(pout, pout + SLUTF8_MAX_MBLEN, &wc, NULL))
++ {
++ unsigned int char_len = SLwchar_wcwidth(wc);
++ if (char_len > 1)
++ col -= char_len - 1;
++ }
++ }
++ else
++ pout--;
++ pattributes--;
++ col--;
++ }
+ continue;
+ }
+
+- if (i < i_max) /* overstrike */
++ if (col < format_rlim) /* overstrike */
+ {
+ attr = 'b';
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- if (out[i-min_col] == '_')
++ if (*pout == '_')
+ attr = 'u';
+ else if (ch == '_')
+ {
+ attr = 'u';
+- ch = out[i - min_col];
++ ch = *pout;
+ }
+ }
+ if (ch == ' ')
+ {
+- i++;
++ col++;
+ continue;
+ }
+ /* drop */
+ }
+-
+- if ((ch >= ' ') && (ch < 0x7F))
+- {
+- if ((i >= min_col) && (i < max_col))
++
++ if (Most_UTF8_Mode) {
++ unsigned char *prev = --beg;
++ SLwchar_Type wc;
++ unsigned int len;
++
++ if (SLutf8_decode(beg, end, &wc, NULL))
++ {
++ unsigned int char_len = SLwchar_wcwidth(wc);
++ if (char_len > 1)
++ col += char_len - 1;
++ }
++
++ beg = SLutf8_skip_char(beg, end);
++ len = beg - prev;
++
++ if (len > 1) {
++ /* Non-ASCII char, display it. */
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ch;
+- attributes[i-min_col] = attr;
++ memcpy(pout, prev, len);
++ pout += len;
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ continue;
+- }
+-
+- if (ch >= SLsmg_Display_Eight_Bit)
++ }
++ }
++
++ if (most_isprint(ch))
+ {
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ch;
+- attributes[i-min_col] = attr;
++ *pout++ = ch;
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ continue;
+ }
+
+ if ((ch == '\t') && (Most_T_Opt == 0) && (Most_Tab_Width))
+ {
+-
+- int nspaces = Most_Tab_Width * (i/Most_Tab_Width + 1) - i;
++ /* Tab expansion must take into consideration the
++ * leftmost visible column. However, variable col holds the
++ * number of columns from the left margin and must be
++ * corrected.
++ */
++ int vis_col = col + Most_Column - 1;
++ int nspaces = Most_Tab_Width - (vis_col % Most_Tab_Width);
+ while (nspaces > 0)
+ {
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ' ';
+- attributes[i-min_col] = attr;
++ *pout++ = ' ';
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ nspaces--;
+ }
+ continue;
+@@ -212,36 +264,36 @@
+
+ if (ch & 0x80)
+ {
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = '~';
+- attributes[i-min_col] = attr;
++ *pout++ = '~';
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ ch &= 0x7F;
+ /* drop */
+ }
+
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = '^';
+- attributes[i-min_col] = attr;
++ *pout++ = '^';
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+
+ if (ch == 0x7F) ch = '?';
+ else ch += '@';
+
+- if ((i >= min_col) && (i < max_col))
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i-min_col] = ch;
+- attributes[i-min_col] = attr;
++ *pout++ = ch;
++ *pattributes++ = attr;
+ }
+- i++;
++ col++;
+ }
+
+- if (i < i_max)
+- i = i_max;
++ if (col < format_rlim)
++ col = format_rlim;
+
+ /* Now add "..." if selective display. To do that, the next line needs to
+ * be dealt with to determine whether or not it will be hidden.
+@@ -249,7 +301,7 @@
+ if (Most_Selective_Display
+ && (Most_W_Opt == 0)
+ && (beg < Most_Eob)
+- && ((i >= min_col) && (i < max_col)))
++ && (col < SLtt_Screen_Cols))
+ {
+ if (*beg == '\n') beg++;
+
+@@ -260,37 +312,29 @@
+ if ((beg >= Most_Eob) || (*beg == '\n')
+ || (most_apparant_distance(beg) >= Most_Selective_Display))
+ {
+- i_max = i + 3;
+- while (i < i_max)
++ /* Add an ellipsis, if they fit on the screen. */
++ int rlimit = col + 3;
++ while (col < rlimit)
+ {
+- if (i < max_col)
++ if (col < SLtt_Screen_Cols)
+ {
+- out[i] = '.';
+- attributes[i] = ' ';
++ *pout++ = '.';
++ *pattributes++ = ' ';
+ }
+- i++;
++ col++;
+ }
+ }
+ }
+-
+- i_max = i;
+
+- if (i < min_col)
+- i = min_col;
+- else if (i >= max_col)
+- i = max_col;
+-
+- i -= min_col;
+-
+- out[i] = 0;
+- attributes[i] = 0;
+- return i_max;
++ *pout = 0;
++ *pattributes = 0;
+ }
+
+-static void output_with_attr (unsigned char *out, unsigned char *attr)
++static void output_with_attr (unsigned char *out, char *attr)
+ {
+- unsigned char at, ch, lat;
++ unsigned char at, lat;
+ unsigned char *p = out;
++ unsigned char *pmax = p + strlen((char *) p);
+
+ if (Most_V_Opt)
+ {
+@@ -299,7 +343,7 @@
+ }
+
+ lat = ' ';
+- while ((ch = *p) != 0)
++ while (p < pmax)
+ {
+ if (lat != *attr)
+ {
+@@ -321,7 +365,7 @@
+ else most_tt_normal_video ();
+ lat = at;
+ }
+- p++;
++ p = SLutf8_skip_char(p, pmax);
+ attr++;
+ }
+
+@@ -340,10 +384,11 @@
+ void most_display_line (void)
+ {
+ unsigned char *beg, *end;
+- unsigned int len;
++#if 0
+ unsigned char dollar;
++#endif
+ static unsigned char *line;
+- static unsigned char *attr;
++ static char *attr;
+ static unsigned int line_len;
+
+ if (Most_B_Opt)
+@@ -357,37 +402,43 @@
+ if (line_len < (unsigned int)(SLtt_Screen_Cols + 1) * SLUTF8_MAX_MBLEN)
+ {
+ SLfree ((char *) line);
+- SLfree ((char *) attr);
++ SLfree (attr);
+
+ line_len = (SLtt_Screen_Cols + 1) * SLUTF8_MAX_MBLEN;
+
+ if ((NULL == (line = (unsigned char *) SLmalloc (line_len)))
+- || (NULL == (attr = (unsigned char *) SLmalloc (line_len))))
++ || (NULL == (attr = SLmalloc (line_len))))
+ most_exit_error ("Out of memory");
+ }
+
+ (void) most_extract_line (&beg, &end);
+
+- len = most_analyse_line(beg, end, (char *) line, (char *) attr);
++ most_analyse_line(beg, end, line, attr);
+
++#if 0
++ /* Currently the dollar sign is not always being written at the
++ rightmost column when displaying multi-byte characters. */
+ dollar = 0;
+ if (Most_W_Opt)
+ {
+- if ((end < Most_Eob)
+- && (*end != '\n'))
+- dollar = '\\';
++ if ((end < Most_Eob)
++ && (*end != '\n'))
++ dollar = '\\';
+ }
+ else if (len > (unsigned int) SLtt_Screen_Cols + (Most_Column - 1))
+ dollar = '$';
+-
++
+ if (dollar)
+ {
+- line[SLtt_Screen_Cols-1] = dollar;
+- attr[SLtt_Screen_Cols-1] = ' ';
+- line[SLtt_Screen_Cols] = 0;
+- attr[SLtt_Screen_Cols] = 0;
++ unsigned char *pline =
++ most_forward_columns(line, line + line_len, SLtt_Screen_Cols-1, 1);
++ *pline = dollar;
++ *(pline+1) = 0;
++ attr[SLtt_Screen_Cols-1] = ' ';
++ attr[SLtt_Screen_Cols] = 0;
+ }
+-
++#endif
++
+ output_with_attr (line, attr);
+ SLsmg_erase_eol ();
+ }
+@@ -398,21 +449,34 @@
+ int most_apparant_distance (unsigned char *pos)
+ {
+ int i;
+- unsigned char *save_pos, ch;
++ unsigned char *save_pos, *beg, ch;
+ unsigned int save_offset;
+
+ save_offset = Most_C_Offset;
+ save_pos = pos;
+ Most_C_Offset = (unsigned int) (pos - Most_Beg);
+- pos = most_beg_of_line();
++ beg = pos = most_beg_of_line();
+ Most_C_Offset = save_offset;
+
+ i = 0;
+ while (pos < save_pos)
+ {
+- ch = *pos++;
+- if (((ch >= ' ') && (ch < 0x7F))
+- || (ch >= SLsmg_Display_Eight_Bit))
++ ch = *pos;
++
++ if (Most_UTF8_Mode) {
++ unsigned char *prev = pos;
++ int len;
++ pos = SLutf8_skip_char(pos, save_pos);
++ len = pos - prev;
++ if (len > 1) {
++ i++;
++ continue;
++ }
++ } else {
++ pos++;
++ }
++
++ if (most_isprint(ch))
+ {
+ i++;
+ continue;
+@@ -420,7 +484,13 @@
+
+ if (!Most_V_Opt && (ch == '\b'))
+ {
+- if (i > 0) i--;
++ if (i > 0)
++ {
++ if (Most_UTF8_Mode)
++ i -= pos - SLutf8_bskip_char(beg, pos);
++ else
++ i--;
++ }
+ }
+ else if (!Most_V_Opt && (ch == '\015')) /* ^M */
+ {
+@@ -439,3 +509,95 @@
+ }
+ return i;
+ }
++
++/*
++ * Returns a pointer to the num_cols'th character after the one
++ * pointed at b. Invisible character runs are not counted toward this
++ * limit, i.e. strings that represent attributes, such as "_\b" for
++ * underlines.
++ *
++ * If multi_column is non-zero, characters spanning more than one
++ * column will add their extra width to the column count.
++ *
++ * If there the end of the buffer is reached, as delimited by argument
++ * e, then e is returned.
++ */
++unsigned char *most_forward_columns (unsigned char *beg, unsigned char *e, unsigned int num_cols, int multi_column)
++{
++ unsigned int col = 0;
++ unsigned int prev_width = 1;
++ unsigned char* b = beg;
++
++ while ((b < e)
++ && ((col < num_cols)
++ || (*b == '\b')
++ || (*b == '\r')))
++ {
++ unsigned char ch = *b;
++
++ if (Most_UTF8_Mode)
++ {
++ unsigned char *prev = b;
++ int len;
++ b = SLutf8_skip_char(b, e);
++ len = b - prev;
++ if (len > 1)
++ {
++ if (multi_column)
++ {
++ SLwchar_Type wc;
++ if (SLutf8_decode(prev, e, &wc, NULL))
++ col += prev_width = SLwchar_wcwidth(wc);
++ }
++ else
++ col++;
++ continue;
++ }
++ }
++ else
++ b++;
++
++ if (most_isprint(ch))
++ {
++ col++;
++ prev_width = 1;
++ continue;
++ }
++
++ if ((ch == '\b') || (ch == '\t') || (ch == '\r'))
++ switch (ch)
++ {
++ case '\b':
++ if (Most_V_Opt == 0)
++ {
++ if (col > 0) col -= prev_width;
++ }
++ else col += 2;
++ break;
++
++ case '\r':
++ if (Most_V_Opt == 0)
++ col = 0;
++ else
++ col += 2;
++ break;
++
++ case '\t':
++ if (Most_T_Opt == 0)
++ col = Most_Tab_Width * (col/Most_Tab_Width + 1);
++ else
++ col += 2; /* ^I is two chars long. */
++ break;
++ }
++ else if (ch & 0x80)
++ col += 3;
++ else
++ col += 2;
++ }
++
++ /* Last character was too wide. Backstep it. */
++ if (col > num_cols)
++ b = SLutf8_bskip_char(beg, b);
++
++ return b;
++}
+--- most-4.10.2.orig/src/line.h
++++ most-4.10.2/src/line.h
+@@ -7,5 +7,7 @@
+
+ extern void most_display_line(void);
+ extern int most_apparant_distance(unsigned char *);
++extern int most_isprint(unsigned char);
++extern unsigned char *most_forward_columns (unsigned char *, unsigned char *, unsigned int, int);
+ #endif
+
+--- most-4.10.2.orig/src/most.c
++++ most-4.10.2/src/most.c
+@@ -125,7 +125,7 @@
+ ch = *(++str);
+ if ( ch == '/')
+ {
+- strcpy (Most_Search_Str,++str);
++ strcpy ((char *) Most_Search_Str,++str);
+ return;
+ }
+
+@@ -329,7 +329,8 @@
+
+ static void do_most (char *file, int start)
+ {
+- int piped, row, col;
++ int piped;
++ long long row, col;
+
+ most_get_cdir(Most_C_Dir);
+
+@@ -347,7 +348,7 @@
+ Most_Curs_Offset = Most_C_Offset;
+
+ if (*Most_Search_Str
+- && ((row = most_search (Most_Beg + Most_C_Offset, 1, &col)) > 0))
++ && ((row = most_search (Most_Beg + Most_C_Offset, 1LL, &col)) > 0))
+ most_goto_line(row);
+ else
+ {
+@@ -455,13 +456,7 @@
+
+ SLtt_get_terminfo();
+ #if SLANG_VERSION >= 20000
+-#if 0
+- Most_UTF8_Mode = SLutf8_enable (1);
+- if (Most_UTF8_Mode)
+- {
+- fprintf (stderr, "UTF-8 Mode is in effect\n");
+- }
+-#endif
++ Most_UTF8_Mode = SLutf8_enable (-1);
+ #endif
+ SLtt_Ignore_Beep = 1;
+ if (No_Colors)
+--- most-4.10.2.orig/src/most.h
++++ most-4.10.2/src/most.h
+@@ -1,4 +1,5 @@
+ #include "config.h"
++#define SLANG_REGEXP
+ extern int Most_S_Opt;
+ extern int Most_A_Opt; /* automatically choose -b if necessary */
+ extern int Most_V_Opt; /* display control chars */
+--- most-4.10.2.orig/src/search.c
++++ most-4.10.2/src/search.c
+@@ -20,6 +20,7 @@
+ */
+ #include "config.h"
+
++#include <ctype.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <slang.h>
+@@ -31,18 +32,18 @@
+ #include "display.h"
+ #include "search.h"
+
+-/* Note!!! The regular expression searches may not work. I have not
+- * tested them.
+- * FIXME!!!
+- */
+-
+ int Most_Case_Sensitive = 0;
+-char Most_Search_Str[256];
++unsigned char Most_Search_Str[256];
+ int Most_Search_Dir = 1;
+
+ #include "jdmacros.h"
+
+-#define UPCASE(ch) ((!Most_Case_Sensitive && (ch <= 'z') && (ch >= 'a')) ? (ch - 32) : ch)
++#if SLANG_VERSION < 20000
++# define NORM_CHAR(ch) ((!Most_Case_Sensitive) ? toupper(ch) : ch)
++# define UPCASE(ch) NORM_CHAR(ch)
++#else
++# define NORM_CHAR(ch) (ch)
++#endif
+
+ #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
+
+@@ -78,7 +79,7 @@
+ * This function is called by the V8 regcomp to report
+ * errors in regular expressions.
+ */
+-static void regerror(char *s)
++static void regerror(const char *s)
+ {
+ char string[256];
+
+@@ -95,13 +96,17 @@
+ * 0 error
+ *
+ */
+-static int do_regcomp(unsigned char *key)
++static int do_regcomp(const unsigned char *key)
+ {
+ static int old_Most_Case_Sensitive;
+- unsigned char UpCaseKey[sizeof(savepattern)];
+ # ifndef HAVE_V8_REGCOMP
+ int posn; /* reg exp error at this offset */
+ # endif
++# if SLANG_VERSION < 20000
++ unsigned char UpCaseKey[sizeof(savepattern)];
++# else
++ int re_flags = 0;
++# endif
+
+ /*
+ * Only recompile search string if it has changed
+@@ -124,6 +129,7 @@
+
+ old_Most_Case_Sensitive = Most_Case_Sensitive;
+
++# if SLANG_VERSION < 20000
+ if ( Most_Case_Sensitive == 0 )
+ {
+ register unsigned char *p; /* ptr to UpCaseKey */
+@@ -141,6 +147,7 @@
+
+ *p = '\0';
+ }
++# endif
+
+ strcpy((char *)savepattern, (char *)key);
+
+@@ -162,7 +169,12 @@
+ # else
+ if (Regexp != NULL)
+ SLregexp_free (Regexp);
+- if (NULL == (Regexp = SLregexp_compile ((char *)key, Most_Case_Sensitive ? 0 : SLREGEXP_CASELESS)))
++
++ if (!Most_Case_Sensitive)
++ re_flags |= SLREGEXP_CASELESS;
++ if (Most_UTF8_Mode)
++ re_flags |= SLREGEXP_UTF8;
++ if (NULL == (Regexp = SLregexp_compile ((char *)key, re_flags)))
+ posn = -1;
+ else
+ posn = 0;
+@@ -187,7 +199,7 @@
+ * Call the appropriate regular expression execute function
+ */
+
+-static unsigned char *do_regexec(unsigned char *string)
++static unsigned char *do_regexec(const unsigned char *string, size_t length)
+ {
+ # ifdef HAVE_V8_REGCOMP
+ if ( regexec(regpattern, (char *)string) )
+@@ -196,40 +208,46 @@
+ return( NULL );
+ # else
+ # if SLANG_VERSION < 20000
+- return ( SLang_regexp_match(string, strlen((char *)string), &regdata) );
++ return ( SLang_regexp_match(string, length, &regdata) );
+ # else
+- return (unsigned char *)SLregexp_match (Regexp, (char *)string, strlen ((char *)string));
++ return (unsigned char *)SLregexp_match (Regexp, (char *)string, length);
+ # endif
+ # endif /* HAVE_V8_REGCOMP */
+ }
+
+ /*
+- * Make a upper case copy of a string. Also changes any "c\b" character
+- * strings into just "" so that highlighted and underlined characters
+- * can be searched.
++ * Changes any "c\b" character strings into just "" so that
++ * highlighted and underlined characters can be searched. Stores in
++ * length the new size of the string, after the aforementioned
++ * changes.
++ *
++ * If using a version of S-Lang that does not support case
++ * insensitive regular expressions, this function upper cases the
++ * input string, as well.
+ *
+ * Reuses malloced memory, so a copy cannot be retained between calls.
+ */
+
+-static unsigned char *StrUpCaseCopy(unsigned char *input)
++static const unsigned char *StrNormCopy(const unsigned char *input,
++ size_t *length)
+ {
+ static unsigned char *uppercase; /* ptr to malloced area */
+ static size_t bufsize; /* size of malloced area */
+- unsigned char *src; /* ptr to source */
++ const unsigned char *src; /* ptr to source */
++ const unsigned char *end; /* ptr to end of source */
+ register unsigned char *dest; /* ptr to destination */
+ register int idx; /* index into uppercase[] */
+- register unsigned char c; /* source character */
+- size_t length; /* size of string to copy */
+
+ src = input;
+- length = strlen((char *)src) + 1; /* len of line plus terminator */
++ end = input + *length;
+
+- if ( length > bufsize )
++ if ( *length >= bufsize )
+ {
+ if ( uppercase != (unsigned char *)NULL )
+ free(uppercase);
+
+- bufsize = (length > 256 ) ? length : 256; /* 256 byte default */
++ /* len of line plus terminator */
++ bufsize = (*length >= 256 ) ? *length + 1 : 256; /* 256 byte default */
+
+ uppercase = (unsigned char *)malloc(bufsize);
+ if ( uppercase == (unsigned char *)NULL )
+@@ -242,8 +260,9 @@
+
+ dest = uppercase;
+
+- for ( idx = 0 ; (c = *src) != '\0' ; src++ )
++ for ( idx = 0 ; src < end ; src++ )
+ {
++ unsigned char c = *src;
+ if ( c == '\b' ) /* backspace */
+ {
+ if ( idx-- > 0 )
+@@ -252,54 +271,79 @@
+ else
+ {
+ if ( idx++ >= 0 )
+- *dest++ = UPCASE(c);
++ *dest++ = NORM_CHAR(c);
+ }
+ }
+
+ *dest = '\0'; /* add termination */
+
++ *length = dest - uppercase;
+ return(uppercase);
+ }
+
+ /*
+- * Given an offset into a copy made by StrUpCaseCopy() and a pointer to the
++ * Given an offset into a copy made by StrNormCopy() and a pointer to the
+ * original string, returns a pointer into the original string corresponding
+ * to this offset.
+ */
+
+-static unsigned char *GetOrigPtr(unsigned char *original, int offset)
++static const unsigned char *
++GetOrigPtr(const unsigned char *original, int offset,
++ const unsigned char *end)
+ {
+- register unsigned char *p = original;
++ const unsigned char *p = original;
+ register int j = offset;
+
+ /*
+ * Step through, adjusting offset according to backspaces found
+ */
+- while ( *p != '\0' )
++ while ( p < end )
+ {
++ const unsigned char *next;
++ if (Most_UTF8_Mode)
++ next = SLutf8_skip_char((unsigned char*) p, (unsigned char*) end);
++ else
++ next = p + 1;
++ size_t length_last = next - p;
++
+ if ( *p == '\b' )
+- j++;
++ j += length_last;
+ else
+- j--;
++ j -= length_last;
+
+ if ( j < 0 )
+ break;
+ else
+- p++;
++ p = next;
+ }
+
+ return(p);
+ }
+ #endif /* HAVE_V8_REGCOMP || SLANG_REGEXP */
+
++/* Returns a pointer to the first occurrence of '\n' in string beg, or
++ * end if no '\n' can be found between inclusive beg and exclusive
++ * end.
++ */
++static const unsigned char *
++find_eol(const unsigned char *beg, const unsigned char *end)
++{
++ const unsigned char *p;
++ if ( (p = memchr(beg, '\n', end - beg)) != NULL)
++ return p;
++ else
++ return end;
++}
++
+ /* This routine returns the 1 + position of first match of key in str.
+ key is modified to match the case of str. */
+ /* We should try to optimize this routine */
+ /* searches from beg up to but not including end */
+
+-static unsigned char *forw_search_region(unsigned char *beg,
+- unsigned char *end,
+- unsigned char *key)
++static const unsigned char *
++forw_search_region(const unsigned char *beg,
++ const unsigned char *end,
++ const unsigned char *key)
+ {
+ #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
+ /*
+@@ -307,10 +351,11 @@
+ * to be broken into lines.
+ *
+ */
+- unsigned char *p; /* temp pointer */
+- unsigned char *linebeg; /* beginning of working line */
+- unsigned char *copy; /* ptr to upper case copy */
++ const unsigned char *linebeg; /* beginning of working line */
++ const unsigned char *lineend; /* end of working line */
++ const unsigned char *norm_line; /* ptr to normalized line */
+ unsigned char *match; /* ptr to matching string */
++ int anchored_re;
+
+ /*
+ * Compile "key" into an executable regular expression
+@@ -318,58 +363,35 @@
+ if ( do_regcomp(key) == 0 )
+ return(Most_Eob);
+
+- /*
+- * For regular expression searches we need to do a line by line
+- * search, so it is necessary to temporarily replace '\n' with '\0'
+- * characters.
+- */
+- p = beg;
+- linebeg = beg;
++ anchored_re = key[0] == '^';
+
+- while (linebeg < end)
++ for ( linebeg = beg ; linebeg < end ; linebeg = lineend + 1 )
+ {
+- while ((p < end) && (*p != '\n')) p++;
+- if (p == end) break;
+- *p = 0;
++ size_t length;
+
+- if ( Most_Case_Sensitive == 0 ) /* i.e. case insensitive */
+- {
+- copy = StrUpCaseCopy(linebeg);
+- if ( copy == (unsigned char *)NULL )
+- return(Most_Eob);
+- }
++ lineend = find_eol(linebeg, end);
++
++ length = lineend - linebeg;
++ if (0 == length) continue; /* Skip empty lines. */
++
++ norm_line = StrNormCopy(linebeg, &length);
++ if ( norm_line == NULL )
++ return(Most_Eob);
+
+ /*
+ * Quick sanity check for beginning of line archored tests.
+- * If 1st char of key is "^", then the character before linebeg (which
+- * must be beyond the start of the window), must be a "\n",
+- * otherwise do_regexec() isn't called.
++ * If 1st char of key is "^", then the character before
++ * linebeg (which must be within the buffer), must be a "\n".
+ */
+- if (
+-# if 0
+- ((*key != '^')
+- || (linebeg > Most_Win->beg_pos && linebeg[-1] == '\n'))
+- &&
+-#endif
+- (match = do_regexec(Most_Case_Sensitive ? linebeg : copy)))
++ if ( !(anchored_re && (linebeg <= Most_Beg || linebeg[-1] != '\n'))
++ && (match = do_regexec(norm_line, length)) )
+ {
+- *p = '\n';
+- if ( Most_Case_Sensitive == 0 )
+- {
+- /*
+- * Use offset into "copy" as idx to find point in
+- * real line.
+- */
+- return( GetOrigPtr(linebeg, match - copy) );
+- }
+- else
+- {
+- return( match );
+- }
++ /*
++ * Use offset into "norm_line" as idx to find point in
++ * real line.
++ */
++ return( GetOrigPtr(linebeg, match - norm_line, lineend) );
+ }
+-
+- *p++ = '\n';
+- linebeg = p;
+ }
+
+ return(Most_Eob);
+@@ -475,23 +497,18 @@
+ * pattern "key".
+ */
+
+-static unsigned char *back_search_region(unsigned char *beg,
+- unsigned char *end,
+- unsigned char *key)
++static const unsigned char *
++back_search_region(const unsigned char *beg,
++ const unsigned char *end,
++ const unsigned char *key)
+ {
+ #if defined(HAVE_V8_REGCOMP) || defined(SLANG_REGEXP)
+- register unsigned char *p;
+- unsigned char *endp, /* end of line */
+- *lastmatch, /* last match in line */
++ const unsigned char *p;
++ const unsigned char *endp, /* end of line */
++ *lastmatch, /* last match in line */
+ *endprevline, /* end of line before this one */
+ *match; /* ptr to matching string */
+- unsigned char savec; /* last char on line */
+-
+- /*
+- * Compile "key" into an executable regular expression
+- */
+- if ( do_regcomp(key) == 0 )
+- return(Most_Eob);
++ int anchored_re;
+
+ /*
+ * Starting from the end of the buffer, break the buffer into lines
+@@ -501,84 +518,60 @@
+ * and isn't that what we want to do in a reverse search.
+ */
+ endp = end;
+- lastmatch = Most_Eob;
+- while ( 1 ) /* forever loop */
+- {
+- if ( (endp < beg) )
+- return(Most_Eob); /* Reach start of buffer, no match */
++ endprevline = end;
++ match = Most_Eob;
+
+- /* Find the real end of current line */
+- if ( (p = (unsigned char *)strchr((char *)endp, '\n')) != NULL )
+- endp = p;
+-
+- savec = *endp;
+- *endp = '\0'; /* terminate line with NULL */
++ /* Find out whether the regexp attempts to match a line boundary.
++ * In this case, only a match on the full line should be attempted.
++ */
++ anchored_re = key[strlen((const char *) key)-1] == '$';
+
++ while ( endp > beg )
++ {
+ /* Find the beginning of line */
+ for ( p = endp - 1 ; (p >= beg) && (*p != '\n') ; p-- )
+ {
+ }
+
++ if ( p < beg )
++ break;
++
+ endprevline = p;
+
+- p++; /* point to 1st char after newline */
++ /*
++ * Quick sanity check for end of line archored tests. If last
++ * char of key is "$", then the character after endp (which
++ * must be within the buffer), must be a "\n".
++ */
++ if ( anchored_re && endp < Most_Eob && endp[0] != '\n' )
++ {
++ endp = p;
++ continue;
++ }
+
+ /*
+ * Keep searching forward in this line till no more matches
+ */
+- if ( Most_Case_Sensitive == 0 ) /* i.e. case insensitive */
++ do
+ {
+- unsigned char *copy; /* ptr to upper case copy */
+- unsigned char *savecopy; /* copy of "copy" */
+-
+- copy = StrUpCaseCopy(p);
+- if ( copy == (unsigned char *)NULL )
+- return(Most_Eob);
++ lastmatch = match;
+
+- savecopy = copy;
+-
+- /*
+- * Quick sanity check for beginning of line archored tests.
+- * Must be at start of line.
+- */
+- while ( ((*key != '^') || (copy == savecopy))
+- && (match = do_regexec(copy)) )
+- {
+- if ( GetOrigPtr(p, match - savecopy) > end )
+- break;
+- lastmatch = match;
+- if ( *lastmatch == '\0' ) /* key must be "$" or "^" */
+- break;
+- copy = lastmatch + 1; /* character after match */
+- }
++ if (Most_UTF8_Mode)
++ p = SLutf8_skip_char((unsigned char*) p, (unsigned char*) endp);
++ else
++ p++;
+
+- if ( lastmatch != Most_Eob ) /* found a match */
+- lastmatch = GetOrigPtr(p, lastmatch - savecopy);
+- }
+- else
+- {
+- /*
+- * Quick sanity check for beginning of line archored tests.
+- * Must be at start of buffer or start of line
+- */
+- while ( ( (*key != '^') || (p == endprevline + 1) )
+- && (match = do_regexec(p)) )
+- {
+- if ( match > end )
+- break;
+- lastmatch = match;
+- if ( *lastmatch == '\0' ) /* key must be "$" or "^" */
+- break;
+- p = lastmatch + 1; /* character after match */
+- }
++ match = forw_search_region(p, endp, key);
+ }
++ while ( match <= endp );
+
+- *endp = savec;
+ if ( lastmatch != Most_Eob ) /* found a match */
+ return(lastmatch);
+
+ endp = endprevline;
+ }
++
++ return(Most_Eob); /* Reached start of buffer, no match */
+ #else
+ char ch, char1, work[256];
+ unsigned char *pos;
+@@ -670,15 +663,15 @@
+ #endif /* HAVE_V8_REGCOMP || SLANG_REGEXP */
+ }
+
+-int most_search(unsigned char *from, int repeat, int *col)
++long long most_search(const unsigned char *from, int repeat, long long *col)
+ {
+ /* return the line match was found as well as line number,
+ * search from i on; assume that line_array match the i so we need
+ * no initial lookup */
+
+- int test, save_line, the_col, row, s_len;
++ long long test, save_line, the_col, row, s_len;
+ char string[300];
+- unsigned char *pos;
++ const unsigned char *pos;
+ unsigned int save_ofs;
+ unsigned int found_ofs;
+
+@@ -687,7 +680,10 @@
+ save_line = Most_C_Line;
+ found_ofs = Most_Eob - Most_Beg;
+ *col = 0;
+- s_len = strlen (Most_Search_Str);
++ if (Most_UTF8_Mode)
++ s_len = SLutf8_strlen (Most_Search_Str, 0);
++ else
++ s_len = strlen ((char *) Most_Search_Str);
+ pos = from;
+
+ if (*Most_Search_Str)
+--- most-4.10.2.orig/src/search.h
++++ most-4.10.2/src/search.h
+@@ -6,7 +6,7 @@
+ extern int Most_Case_Sensitive;
+ extern int Most_Search_Dir;
+ #define MOST_SEARCH_BUF_LEN 256
+-extern char Most_Search_Str[MOST_SEARCH_BUF_LEN];
+-extern int most_search(unsigned char *, int, int *);
++extern unsigned char Most_Search_Str[MOST_SEARCH_BUF_LEN];
++extern long long most_search(const unsigned char *, int, long long *);
+ #endif
+
+--- most-4.10.2.orig/src/window.c
++++ most-4.10.2/src/window.c
+@@ -48,10 +48,11 @@
+
+ Most_Window_Type *Most_Win;
+ Most_Window_Type *Most_Top_Win;
+-int Most_Top_Line; /* row number of top window */
+-int Most_Curs_Row;
+-int Most_Curs_Col;
+-int Most_Column = 1;
++long long Most_Top_Line; /* row number of top window */
++long long Most_Curs_Row;
++long long Most_Curs_Col;
++/* The leftmost visible column. */
++long long Most_Column = 1;
+ int Most_Restore_Width_To = 0;
+ char Most_Mini_Buf[256];
+ unsigned long Most_Curs_Offset;
+@@ -156,7 +157,7 @@
+ SLsmg_write_nchars (buf + point, len - point);
+ if (col < SLtt_Screen_Cols)
+ break;
+- buf++; point--; len--; /* FIXME for UTF-8 */
++ buf++; point--; len--;
+ }
+ SLsmg_erase_eol ();
+ SLsmg_gotorc (SLtt_Screen_Rows - 1, col);
+@@ -227,6 +228,8 @@
+ {
+ SLang_RLine_Info_Type *rli;
+ unsigned int flags = SL_RLINE_BLINK_MATCH;
++ if (Most_UTF8_Mode)
++ flags |= SL_RLINE_UTF8_MODE;
+
+ if (NULL == (rli = SLrline_open (SLtt_Screen_Cols, flags)))
+ return NULL;
+@@ -258,7 +261,7 @@
+
+ /* do not use default. The up arrow can always get it back. */
+ if ((what != NULL)
+- && (*what) && (what != Most_Search_Str))
++ && (*what) && (what != (char *) Most_Search_Str))
+ {
+ if (-1 == SLrline_set_line (Most_RLI, what))
+ return -1;
+@@ -593,7 +596,8 @@
+ unsigned int num_chars;
+ unsigned int field_width, info_len;
+ unsigned char *eob;
+- int r, x;
++ int r;
++ long long x;
+
+ eob = Most_Eob;
+ #if MOST_HAS_MMAP
+@@ -601,20 +605,20 @@
+ eob = Most_Beg + Most_Buf->mmap_size;
+ #endif
+
+- if (eob == Most_Beg) x = 100;
++ if (eob == Most_Beg) x = 100LL;
+ else
+ {
+- x = Most_C_Offset * 100;
++ x = Most_C_Offset * 100LL;
+ x = x / (eob - Most_Beg);
+ }
+
+ if (Most_C_Line + (Most_Win->bot - Most_Win->top + 1) >= Most_Num_Lines)
+- x = 100;
++ x = 100LL;
+
+ /* for files with end of file above the bottom row (due to window manipulations) */
+- if (x > 100) x = 100;
++ if (x > 100LL) x = 100LL;
+
+- sprintf (info, "(%d,%d) %d%%", Most_C_Line, Most_Column, x);
++ sprintf (info, "(%lld,%lld) %d%%", Most_C_Line, Most_Column, (int)x);
+
+ r = Most_Win->bot + 1;
+ most_goto_rc (r,1);
+--- most-4.10.2.orig/src/window.h
++++ most-4.10.2/src/window.h
+@@ -5,11 +5,11 @@
+ typedef struct _Most_Window_Type
+ {
+ unsigned long top_offset; /* offset of top line of window from bob */
+- int beg_line; /* line number of top */
+- int curs_line; /* line number of curs pos */
+- int curs_col; /* column number of curs pos */
++ long long beg_line; /* line number of top */
++ long long curs_line; /* line number of curs pos */
++ long long curs_col; /* column number of curs pos */
+ unsigned long curs_offset; /* pos of cursor from bob*/
+- int col; /* column offset */
++ long long col; /* column offset */
+ int n_lines; /* number of lines of buffer (mode dependent) */
+ int top; /* screen location of top */
+ int bot; /* screen location of bot */
+@@ -29,9 +29,9 @@
+ extern Most_Window_Type *Most_Win;
+ extern Most_Window_Type *Most_Top_Win;
+ extern unsigned long Most_Curs_Offset;
+-extern int Most_Column;
+-extern int Most_Curs_Row;
+-extern int Most_Curs_Col;
++extern long long Most_Column;
++extern long long Most_Curs_Row;
++extern long long Most_Curs_Col;
+ #define MOST_MINI_BUF_LEN 256
+ extern char Most_Mini_Buf[MOST_MINI_BUF_LEN];
+ extern int Most_Selective_Display;
diff --git a/extra/mousepad/PKGBUILD b/extra/mousepad/PKGBUILD
new file mode 100644
index 000000000..9b3e0a599
--- /dev/null
+++ b/extra/mousepad/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 58320 2009-11-07 00:36:34Z allan $
+# Maintainer: tobias [tobias at archlinux.org]
+
+pkgname=mousepad
+pkgver=0.2.16
+pkgrel=2
+pkgdesc="Simple Text Editor for Xfce4 (based on Gedit)"
+arch=(i686 x86_64)
+groups=('xfce4')
+license="GPL2"
+depends=('libxfcegui4>=4.6.0' 'desktop-file-utils')
+makedepends=('pkgconfig' 'intltool' 'perl')
+options=('!libtool')
+url=('http://www.xfce.org/~benny/apps.html')
+install=${pkgname}.install
+source=(http://www.xfce.org/archive/xfce-4.6.0/src/${pkgname}-${pkgver}.tar.bz2
+ resensitize-find-button.patch)
+md5sums=('d98854edb76d823ac20b266fdf5a64a1'
+ '1fbc153fbd47ebb95d93f7084dea93e0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i $srcdir/resensitize-find-button.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var --disable-static
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/mousepad/mousepad.install b/extra/mousepad/mousepad.install
new file mode 100644
index 000000000..e7ca93e53
--- /dev/null
+++ b/extra/mousepad/mousepad.install
@@ -0,0 +1,16 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/extra/mousepad/resensitize-find-button.patch b/extra/mousepad/resensitize-find-button.patch
new file mode 100644
index 000000000..db79adc4d
--- /dev/null
+++ b/extra/mousepad/resensitize-find-button.patch
@@ -0,0 +1,28 @@
+--- mousepad-0.2.16.orig/src/search.c
++++ mousepad-0.2.16/src/search.c
+@@ -210,8 +210,11 @@
+ G_CALLBACK(toggle_sensitivity), NULL);
+ g_signal_connect(G_OBJECT(entry_find), "delete-text",
+ G_CALLBACK(toggle_sensitivity), NULL);
+- if (sd->search.string_find)
++ if (sd->search.string_find) {
+ gtk_entry_set_text(GTK_ENTRY(entry_find), sd->search.string_find);
++ gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog),
++ GTK_RESPONSE_OK, TRUE);
++ }
+
+ gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
+ gtk_entry_set_activates_default(GTK_ENTRY(entry_find), TRUE);
+@@ -275,8 +278,11 @@
+ G_CALLBACK(toggle_sensitivity), NULL);
+ g_signal_connect(G_OBJECT(entry_find), "delete-text",
+ G_CALLBACK(toggle_sensitivity), NULL);
+- if (sd->search.string_find)
++ if (sd->search.string_find) {
+ gtk_entry_set_text(GTK_ENTRY(entry_find), sd->search.string_find);
++ gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog),
++ GTK_RESPONSE_OK, TRUE);
++ }
+ label_replace = gtk_label_new_with_mnemonic(_("Re_place with: "));
+ gtk_misc_set_alignment(GTK_MISC(label_replace), 0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(table), label_replace, 0, 1, 1, 2);
diff --git a/extra/mousetweaks/PKGBUILD b/extra/mousetweaks/PKGBUILD
new file mode 100644
index 000000000..98dea79e2
--- /dev/null
+++ b/extra/mousetweaks/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 2392 2008-06-01 19:38:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=mousetweaks
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="Mouse accessibility enhancements for the GNOME desktop"
+arch=(i686 x86_64)
+license=('GPL3' 'FDL')
+depends=('gnome-panel-bonobo>=2.32.0' 'libxtst')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=mousetweaks.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('70d2e8ba0f5021a9e70fecab2ea5cb5f2c03941e676607bec37f2304d9b86d08')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain mousetweaks ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/mousetweaks/mousetweaks.install b/extra/mousetweaks/mousetweaks.install
new file mode 100644
index 000000000..05aba9b73
--- /dev/null
+++ b/extra/mousetweaks/mousetweaks.install
@@ -0,0 +1,17 @@
+pkgname=mousetweaks
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/mozilla-common/PKGBUILD b/extra/mozilla-common/PKGBUILD
new file mode 100644
index 000000000..ad7efa3a2
--- /dev/null
+++ b/extra/mozilla-common/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 42378 2009-06-13 13:07:05Z jgc $
+# Maintainer: dale <dale@archlinux.org>
+
+pkgname=mozilla-common
+pkgver=1.4
+pkgrel=1
+pkgdesc="Common Initialization Profile for Mozilla.org products"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.mozilla.org/"
+install=mozilla-common.install
+source=(mozilla-common.sh
+ mozilla-common.csh)
+md5sums=('39451f6fe87d3cb224e140322c55eb27'
+ '924887e41bd96db37029f479befe40cf')
+
+build() {
+ install -m755 -d "${pkgdir}/etc/profile.d"
+ install -m755 mozilla-common.{,c}sh "${pkgdir}/etc/profile.d/" || return 1
+}
diff --git a/extra/mozilla-common/mozilla-common.csh b/extra/mozilla-common/mozilla-common.csh
new file mode 100755
index 000000000..09e49c783
--- /dev/null
+++ b/extra/mozilla-common/mozilla-common.csh
@@ -0,0 +1 @@
+setenv MOZ_PLUGIN_PATH "/usr/lib/mozilla/plugins"
diff --git a/extra/mozilla-common/mozilla-common.install b/extra/mozilla-common/mozilla-common.install
new file mode 100644
index 000000000..dc4228b08
--- /dev/null
+++ b/extra/mozilla-common/mozilla-common.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "relogin or source /etc/profile.d/mozilla-common.sh"
+}
+# vim:set ts=2 sw=2 et:
diff --git a/extra/mozilla-common/mozilla-common.sh b/extra/mozilla-common/mozilla-common.sh
new file mode 100755
index 000000000..132b5731e
--- /dev/null
+++ b/extra/mozilla-common/mozilla-common.sh
@@ -0,0 +1 @@
+export MOZ_PLUGIN_PATH="/usr/lib/mozilla/plugins"
diff --git a/extra/mp3splt/PKGBUILD b/extra/mp3splt/PKGBUILD
new file mode 100644
index 000000000..9e1769c6f
--- /dev/null
+++ b/extra/mp3splt/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 116963 2011-03-26 16:55:54Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=mp3splt
+pkgver=2.3a
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="Comandline tool for splitting mp3 and ogg files without decoding"
+license=('GPL')
+url="http://mp3splt.sourceforge.net"
+depends=('libmp3splt>=0.6.1a')
+source=(http://downloads.sourceforge.net/sourceforge/mp3splt/$pkgname-$pkgver.tar.gz)
+options=(!libtool)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-mp3splt-includes=/usr/include/libmp3splt --enable-oggsplt_symlink
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir/ install
+}
+md5sums=('1fe663f7de5a6949bbe5b6aa78fea79f')
diff --git a/extra/mp3wrap/PKGBUILD b/extra/mp3wrap/PKGBUILD
new file mode 100644
index 000000000..897198812
--- /dev/null
+++ b/extra/mp3wrap/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 27742 2009-02-25 05:39:42Z eric $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=mp3wrap
+pkgver=0.5
+pkgrel=2
+pkgdesc="Tool for wrapping mp3 files --- free independent alternative to AlbumWrap"
+arch=('i686' 'x86_64')
+url="http://mp3wrap.sourceforge.net"
+license=('LGPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/mp3wrap/mp3wrap-$pkgver-src.tar.gz)
+md5sums=('096b46295cbe3ee2f02ca7792517dc36')
+
+build() {
+ cd $srcdir/mp3wrap-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/mpc/PKGBUILD b/extra/mpc/PKGBUILD
new file mode 100644
index 000000000..6ec7c5807
--- /dev/null
+++ b/extra/mpc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 106266 2011-01-16 01:43:38Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=mpc
+pkgver=0.20
+pkgrel=1
+pkgdesc="Minimalist command line interface to MPD"
+arch=('i686' 'x86_64')
+url="http://mpd.wikia.com/wiki/Client:Mpc"
+license=('GPL2')
+depends=('libmpdclient')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/musicpd/${pkgname}-$pkgver.tar.bz2)
+md5sums=('24c81ad6afe6099e8d7a6826ef4b7105')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ # Install bash completion file
+ install -D -m644 doc/mpc-completion.bash "$pkgdir/etc/bash_completion.d/mpc"
+}
diff --git a/extra/mpck/PKGBUILD b/extra/mpck/PKGBUILD
new file mode 100644
index 000000000..65a6a2799
--- /dev/null
+++ b/extra/mpck/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 68070 2010-02-10 17:08:28Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=mpck
+pkgver=0.19
+pkgrel=1
+license=('GPL')
+pkgdesc="Reads MP3 files and tries to determine if they are correct"
+arch=('i686' 'x86_64')
+url="http://checkmate.gissen.nl/"
+depends=('glibc')
+source=(http://checkmate.gissen.nl/checkmate-${pkgver}.tar.gz)
+md5sums=('f72114b0982a101b68ddeb65f99b84f7')
+
+build() {
+ cd "${srcdir}/checkmate-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix="${pkgdir}/usr" install || return 1
+}
diff --git a/extra/mpd/PKGBUILD b/extra/mpd/PKGBUILD
new file mode 100644
index 000000000..306fedbda
--- /dev/null
+++ b/extra/mpd/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 116395 2011-03-23 05:22:12Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=mpd
+pkgver=0.16.2
+pkgrel=1
+pkgdesc="Music daemon that plays MP3, FLAC, and Ogg Vorbis files"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://mpd.wikia.com/wiki/Server"
+depends=('libao' 'ffmpeg' 'libmodplug' 'audiofile' 'libshout' 'libmad' 'curl' 'faad2'
+ 'sqlite3' 'libsamplerate' 'libmms' 'wavpack' 'libmpcdec' 'avahi' 'libid3tag'
+ 'libpulse')
+makedepends=('pkgconfig' 'doxygen')
+install=${pkgname}.install
+source=("http://downloads.sourceforge.net/musicpd/${pkgname}-${pkgver}.tar.bz2"
+ 'mpd')
+md5sums=('dedb75cef8e489f3de5231031876fb77'
+ 'e5669c2bff4031928531e52475addeb1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-lastfm \
+ --enable-pulse \
+ --enable-documentation \
+ --disable-libwrap \
+ --disable-cue \
+ --disable-sidplay
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # set ours dirs in mpd.conf file
+ sed -i 's|^music_directory.*$|#music_directory "path_to_your_music_collection"|1' doc/mpdconf.example
+ sed -i 's|playlist_directory.*$|playlist_directory "/var/lib/mpd/playlists"|1' doc/mpdconf.example
+ sed -i 's|db_file.*$|db_file "/var/lib/mpd/mpd.db"|1' doc/mpdconf.example
+ sed -i 's|log_file.*$|log_file "/var/log/mpd/mpd.log"|1' doc/mpdconf.example
+ sed -i 's|error_file.*$|error_file "/var/log/mpd/mpd.error"|1' doc/mpdconf.example
+ sed -i 's|#pid_file.*$|pid_file "/var/run/mpd/mpd.pid"|1' doc/mpdconf.example
+ sed -i 's|#state_file.*$|state_file "/var/lib/mpd/mpdstate"|1' doc/mpdconf.example
+ sed -i 's|#user.*$|user "mpd"|1' doc/mpdconf.example
+
+ install -Dm644 doc/mpdconf.example ${pkgdir}/usr/share/mpd/mpd.conf.example
+
+ install -Dm755 ${srcdir}/mpd ${pkgdir}/etc/rc.d/mpd
+ install -d ${pkgdir}/var/{lib/mpd/playlists,log/mpd}
+}
diff --git a/extra/mpd/mpd b/extra/mpd/mpd
new file mode 100755
index 000000000..6134e2ed4
--- /dev/null
+++ b/extra/mpd/mpd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting Music Player Daemon"
+ [ ! -d /var/run/mpd ] && install -d -g 45 -o 45 /var/run/mpd
+ /usr/bin/mpd /etc/mpd.conf &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon mpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Music Player Daemon"
+ /usr/bin/mpd --kill /etc/mpd.conf &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/mpd/mpd.install b/extra/mpd/mpd.install
new file mode 100644
index 000000000..885505a07
--- /dev/null
+++ b/extra/mpd/mpd.install
@@ -0,0 +1,18 @@
+post_install() {
+ post_upgrade
+ echo "==> Create a configuration file /etc/mpd.conf before using MPD (example: /usr/share/mpd/mpd.conf.example)"
+}
+
+post_upgrade() {
+ getent group "mpd" &>/dev/null || groupadd -r -g 45 mpd 1>/dev/null
+ getent passwd "mpd" &>/dev/null || useradd -r -u 45 -g mpd -d "/var/lib/mpd" -s "/bin/true" -G "audio" mpd 1>/dev/null
+ for dir in /var/{lib,log}/mpd; do
+ chown -R mpd:mpd "$dir" 1>/dev/null
+ done
+}
+
+post_remove() {
+ getent passwd "mpd" &>/dev/null && userdel mpd 1>/dev/null
+ getent group "mpd" &>/dev/null && groupdel mpd 1>/dev/null
+ [ -f etc/mpd.conf ] && mv etc/mpd.conf etc/mpd.conf.pacsave 1>/dev/null
+}
diff --git a/extra/mpg123/PKGBUILD b/extra/mpg123/PKGBUILD
new file mode 100644
index 000000000..0a272791b
--- /dev/null
+++ b/extra/mpg123/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 110641 2011-02-20 21:15:21Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=mpg123
+pkgver=1.13.2
+pkgrel=1
+pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/mpg123"
+license=('GPL2' 'LGPL2.1')
+depends=('glibc' 'libtool' 'alsa-lib')
+makedepends=('esound' 'sdl' 'jack' 'libpulse')
+optdepends=('esound: for esd audio support'
+ 'sdl: for sdl audio support'
+ 'jack: for jack audio support'
+ 'libpulse: for pulse audio support')
+conflicts=('mpg321')
+provides=('mpg321')
+replaces=('mpg321')
+options=('libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7cb959877d205f89215a32bf446f5737')
+sha1sums=('31a9c27f5fa80f930dbe598846c847f9b35d9dc3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-audio="alsa esd sdl jack pulse"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/mrtg/PKGBUILD b/extra/mrtg/PKGBUILD
new file mode 100644
index 000000000..8df4acbdc
--- /dev/null
+++ b/extra/mrtg/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 116027 2011-03-22 16:10:12Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
+
+pkgname=mrtg
+pkgver=2.17.2
+pkgrel=1
+pkgdesc="Multi Router Traffic Grapher."
+arch=('i686' 'x86_64')
+url="http://oss.oetiker.ch/mrtg/"
+license=('GPL')
+depends=('gd' 'perl')
+source=("http://oss.oetiker.ch/mrtg/pub/${pkgname}-${pkgver}.tar.gz")
+md5sums=('f4c251ef883da2509188711eff4577ad')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed 's|LD_RUN_PATH=$(LD_RUN_PATH) ||g' -i Makefile.in
+ ./configure --prefix=/usr
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=${pkgdir}/usr install
+}
diff --git a/extra/msmtp/PKGBUILD b/extra/msmtp/PKGBUILD
new file mode 100644
index 000000000..852d0909e
--- /dev/null
+++ b/extra/msmtp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 108642 2011-02-02 03:35:19Z allan $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Ben Mazer <blm@groknil.org>
+
+pkgname=msmtp
+pkgver=1.4.23
+pkgrel=1
+pkgdesc="A mini smtp client"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://msmtp.sourceforge.net"
+depends=('gnutls' 'libidn')
+provides=('smtp-forwarder')
+source=(http://download.sourceforge.net/sourceforge/msmtp/${pkgname}-${pkgver}.tar.bz2)
+install=${pkgname}.install
+md5sums=('5fb7ae88186624cdb125d3efad3fdc16')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --with-ssl=gnutls
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # this can not be the default
+ #install -Dm644 doc/msmtprc-system.example $startdir/pkg/etc/msmtprc
+}
diff --git a/extra/msmtp/msmtp.install b/extra/msmtp/msmtp.install
new file mode 100644
index 000000000..ec2c1fb23
--- /dev/null
+++ b/extra/msmtp/msmtp.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(msmtp.info)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/mt-st/PKGBUILD b/extra/mt-st/PKGBUILD
new file mode 100644
index 000000000..17ef58f94
--- /dev/null
+++ b/extra/mt-st/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 53023 2009-09-25 05:09:23Z paul $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=mt-st
+pkgver=1.1
+pkgrel=2
+pkgdesc="Linux SCSI tape driver aware magnetic tape control"
+arch=(i686 x86_64)
+url="ftp://ftp.ibiblio.org/pub/linux/system/backup/"
+depends=('glibc')
+arch=('i686' 'x86_64')
+license=('GPL2')
+source=(ftp://ftp.ibiblio.org/pub/linux/system/backup/$pkgname-$pkgver.tar.gz)
+md5sums=('fdd5f5ec673c9f630a102ceff7612774')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver || return 1
+
+ make || return 1
+
+ mkdir -p $startdir/pkg/{sbin,bin,usr/share/man/man1,usr/share/man/man8} || return 1
+ make SBINDIR=$startdir/pkg/sbin BINDIR=$startdir/pkg/bin \
+ MANDIR=$startdir/pkg/usr/share/man install || return 1
+}
diff --git a/extra/mtools/PKGBUILD b/extra/mtools/PKGBUILD
new file mode 100644
index 000000000..dd1eb2c81
--- /dev/null
+++ b/extra/mtools/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 108705 2011-02-02 17:20:00Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=mtools
+pkgver=4.0.15
+pkgrel=1
+pkgdesc="A collection of utilities to access MS-DOS disks"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/mtools/"
+license=('GPL')
+depends=('sh')
+makedepends=('texinfo' 'libx11' 'libsm')
+optdepends=('libx11: required by floppyd'
+ 'libsm: required by floppyd')
+backup=('etc/mtools.conf')
+install=mtools.install
+source=("http://ftp.gnu.org/gnu/mtools/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('b7550b649af77812cb696a780e853f47')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i '/^SAMPLE FILE$/s:^:# :' mtools.conf
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --sysconfdir=/etc
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make -j 1 DESTDIR="${pkgdir}" install || return 1
+ install -Dm644 mtools.conf "${pkgdir}/etc/mtools.conf" || return 1
+}
diff --git a/extra/mtools/mtools.install b/extra/mtools/mtools.install
new file mode 100644
index 000000000..ae357721f
--- /dev/null
+++ b/extra/mtools/mtools.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(mtools.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/extra/mtr/PKGBUILD b/extra/mtr/PKGBUILD
new file mode 100644
index 000000000..47c86db91
--- /dev/null
+++ b/extra/mtr/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 106670 2011-01-17 20:34:58Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgbase=mtr
+pkgname=(mtr mtr-gtk)
+pkgver=0.80
+pkgrel=2
+arch=('i686' 'x86_64')
+license=('GPL')
+makedepends=('ncurses' 'gtk2')
+source=(ftp://ftp.bitwizard.nl/mtr/${pkgbase}-${pkgver}.tar.gz)
+url="http://www.bitwizard.nl/mtr/"
+md5sums=('fa68528eaec1757f52bacf9fea8c68a9')
+
+build() {
+ install -d "${srcdir}/"{mtr-cli,mtr-gtk}
+ cd "${srcdir}/mtr-cli"
+ ../${pkgbase}-${pkgver}/configure --prefix=/usr --disable-gtktest --without-gtk
+ make
+
+ cd "${srcdir}/mtr-gtk"
+ ../${pkgbase}-${pkgver}/configure --prefix=/usr --enable-gtk2
+ make
+}
+
+package_mtr() {
+ pkgdesc="Combines the functionality of traceroute and ping into one tool (CLI version)"
+ depends=('ncurses>=5.7')
+ cd "${srcdir}/mtr-cli"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_mtr-gtk() {
+ pkgdesc="Combines the functionality of traceroute and ping into one tool (GTK version)"
+ depends=('ncurses>=5.7' "gtk2>=2.22.0")
+ conflicts=("mtr")
+ provides=("mtr=${pkgver}")
+
+ cd "${srcdir}/mtr-gtk"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/mtx/PKGBUILD b/extra/mtx/PKGBUILD
new file mode 100644
index 000000000..7451c78db
--- /dev/null
+++ b/extra/mtx/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 53028 2009-09-25 05:20:59Z paul $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=mtx
+pkgver=1.3.12
+pkgrel=1
+pkgdesc="Send robot commands to tape changer"
+arch=('i686' 'x86_64')
+url="http://mtx.opensource-sw.net/"
+license=('GPL2')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/mtx/${pkgname}-${pkgver}.tar.gz)
+
+build() {
+ cd $startdir/src/${pkgname}-${pkgver} || return 1
+ sed -i 's/static const unsigned char scsi_command_size/const unsigned char scsi_command_size/' \
+ sg_err.c || return 1
+ ./configure --prefix='/usr' --datadir='/usr/share' || return 1
+ make || return 1
+ mkdir $startdir/pkg/usr || return 1
+ make prefix=$startdir/pkg/usr install || return 1
+}
+md5sums=('ce8f0e44671fb0c7d9ec30bb0bfa8b5c')
diff --git a/extra/muine/PKGBUILD b/extra/muine/PKGBUILD
new file mode 100644
index 000000000..b6cca9fe7
--- /dev/null
+++ b/extra/muine/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 58724 2009-11-12 19:57:50Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Ben Mazer <blm@groknil.org>
+
+pkgname=muine
+pkgver=0.8.11
+pkgrel=1
+pkgdesc="A music player written in C#"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.muine-player.org/"
+depends=('gconf>=2.28.0' 'gtk2>=2.18.3' 'gnome-icon-theme>=2.28.0' 'gstreamer0.10>=0.10.25' 'mono>=2.4.2.3' 'gnome-sharp>=2.24.1' 'taglib-sharp>=2.0.3.2' 'ndesk-dbus>=0.6.0' 'ndesk-dbus-glib>=0.4.1' 'gstreamer0.10-base-plugins>=0.10.25' 'gstreamer0.10-good-plugins>=0.10.16')
+makedepends=('intltool')
+optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
+ 'gstreamer0.10-bad-plugins: Extra media codecs'
+ 'gstreamer0.10-ffmpeg: Extra media codecs')
+options=('!libtool' '!emptydirs' '!makeflags')
+install=muine.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f2a74519d9e9c6c4fca9c5217a13964a')
+
+build() {
+
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install || return 1
+
+ install -m755 plugins/TrayIcon.{dll,xml} "${pkgdir}/usr/lib/muine/plugins/" || return 1
+ install -m644 plugins/muine-tray-*.png "${pkgdir}/usr/lib/muine/plugins/" || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain muine ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/muine/muine.install b/extra/muine/muine.install
new file mode 100644
index 000000000..968f6b185
--- /dev/null
+++ b/extra/muine/muine.install
@@ -0,0 +1,25 @@
+pkgname=muine
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -f -t -q usr/share/icons/hicolor
+
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -f -t -q /usr/share/icons/hicolor
+ update-desktop-database -q
+}
diff --git a/extra/multitail/PKGBUILD b/extra/multitail/PKGBUILD
new file mode 100644
index 000000000..625474e1e
--- /dev/null
+++ b/extra/multitail/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 79574 2010-05-04 15:01:54Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Roberto Carvajal <roberto@archlinux.org>
+
+pkgname=multitail
+pkgver=5.2.6
+pkgrel=1
+pkgdesc="MultiTail lets you view one or multiple files like the original tail program"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.vanheusden.com/multitail"
+depends=('ncurses')
+backup=(etc/multitail.conf)
+source=(${url}/${pkgname}-${pkgver}.tgz)
+md5sums=('6496b3d78660ff8d11c743a0d03cca34')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ /usr/bin/make || return 1
+ /bin/install -D -m 755 multitail ${startdir}/pkg/usr/bin/multitail
+ /bin/install -D -m 644 multitail.1 ${startdir}/pkg/usr/share/man/man1/multitail.1
+ /bin/install -D -m 644 multitail.conf ${startdir}/pkg/etc/multitail.conf
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/muparser/PKGBUILD b/extra/muparser/PKGBUILD
new file mode 100644
index 000000000..0746f6631
--- /dev/null
+++ b/extra/muparser/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 102419 2010-12-07 19:36:22Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir.archlinux.org>
+
+pkgname=muparser
+pkgver=1.34
+pkgrel=1
+pkgdesc="a fast math parser library"
+arch=('i686' 'x86_64')
+url="http://muparser.sourceforge.net/"
+depends=('glibc' 'gcc-libs')
+license=('custom')
+source=(http://downloads.sourceforge.net/$pkgname/muparser_v134.tar.gz)
+md5sums=('0c4f4bf86aa2a5a737adc0e08cb77737')
+
+build() {
+ cd $srcdir/${pkgname}_v134
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}_v134
+ make DESTDIR=$pkgdir install
+
+ # license
+ install -D -m644 License.txt \
+ $pkgdir/usr/share/licenses/${pkgname}/License
+}
+
diff --git a/extra/musicbrainz/PKGBUILD b/extra/musicbrainz/PKGBUILD
new file mode 100644
index 000000000..398cf0f1a
--- /dev/null
+++ b/extra/musicbrainz/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 89512 2010-09-01 12:52:06Z remy $
+# Maintainer:
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=musicbrainz
+pkgver=2.1.5
+pkgrel=4
+pkgdesc="The second generation incarnation of the CD Index"
+arch=('i686' 'x86_64')
+url="http://www.musicbrainz.org/index.html"
+license=('LGPL')
+depends=('expat>=2.0')
+makedepends=('python2')
+options=('!libtool')
+source=(ftp://ftp.musicbrainz.org/pub/$pkgname/libmusicbrainz-${pkgver}.tar.gz
+ 'gcc4.3.patch')
+
+build() {
+ cd ${srcdir}/lib${pkgname}-${pkgver}
+
+ patch -p1 -i ${srcdir}/gcc4.3.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/lib${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ cd python
+ python2 setup.py install --root=${pkgdir}
+}
+md5sums=('d5e19bb77edd6ea798ce206bd05ccc5f'
+ '9455555d03e3bd15d488ffdb2287ffa7')
diff --git a/extra/musicbrainz/gcc4.3.patch b/extra/musicbrainz/gcc4.3.patch
new file mode 100644
index 000000000..cc412f3d2
--- /dev/null
+++ b/extra/musicbrainz/gcc4.3.patch
@@ -0,0 +1,57 @@
+diff -Naur libmusicbrainz-2.1.4-orig/lib/c_wrapper.cpp libmusicbrainz-2.1.4/lib/c_wrapper.cpp
+--- libmusicbrainz-2.1.4-orig/lib/c_wrapper.cpp 2003-10-16 16:21:10.000000000 -0600
++++ libmusicbrainz-2.1.4/lib/c_wrapper.cpp 2007-12-16 09:45:21.000000000 -0600
+@@ -24,6 +24,7 @@
+ #include "musicbrainz.h"
+ #include "trm.h"
+ #include "mb_c.h"
++#include <cstring>
+
+ extern "C"
+ {
+diff -Naur libmusicbrainz-2.1.4-orig/lib/comhttpsocket.cpp libmusicbrainz-2.1.4/lib/comhttpsocket.cpp
+--- libmusicbrainz-2.1.4-orig/lib/comhttpsocket.cpp 2006-05-11 12:46:54.000000000 -0600
++++ libmusicbrainz-2.1.4/lib/comhttpsocket.cpp 2007-12-16 09:46:28.000000000 -0600
+@@ -20,6 +20,7 @@
+ #endif
+ #include <stdlib.h>
+ #include <assert.h>
++#include <cstring>
+
+ const char* g_strCOMVer = "libmusicbrainz/"VERSION;
+
+diff -Naur libmusicbrainz-2.1.4-orig/lib/comsocket.cpp libmusicbrainz-2.1.4/lib/comsocket.cpp
+--- libmusicbrainz-2.1.4-orig/lib/comsocket.cpp 2006-05-11 12:46:54.000000000 -0600
++++ libmusicbrainz-2.1.4/lib/comsocket.cpp 2007-12-16 09:46:08.000000000 -0600
+@@ -37,6 +37,7 @@
+ #include <netinet/tcp.h>
+ #include <errno.h>
+ #include <stdio.h>
++#include <cstring>
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+diff -Naur libmusicbrainz-2.1.4-orig/lib/http.cpp libmusicbrainz-2.1.4/lib/http.cpp
+--- libmusicbrainz-2.1.4-orig/lib/http.cpp 2007-12-16 09:52:48.000000000 -0600
++++ libmusicbrainz-2.1.4/lib/http.cpp 2007-12-16 09:52:36.000000000 -0600
+@@ -31,6 +31,8 @@
+ #endif
+ #include <fcntl.h>
+ #include <errno.h>
++#include <cstring>
++#include <cstdlib>
+
+ #ifdef WIN32
+ #include <winsock.h>
+diff -Naur libmusicbrainz-2.1.4-orig/lib/sigclient.cpp libmusicbrainz-2.1.4/lib/sigclient.cpp
+--- libmusicbrainz-2.1.4-orig/lib/sigclient.cpp 2006-05-11 12:46:54.000000000 -0600
++++ libmusicbrainz-2.1.4/lib/sigclient.cpp 2007-12-16 09:54:48.000000000 -0600
+@@ -33,6 +33,8 @@
+ #pragma warning(disable:4786)
+ #endif
+
++#include <cstring>
++
+ #include "sigclient.h"
+ #include "comhttpsocket.h"
+
diff --git a/extra/mutt/PKGBUILD b/extra/mutt/PKGBUILD
new file mode 100644
index 000000000..659fb1951
--- /dev/null
+++ b/extra/mutt/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 116680 2011-03-24 21:41:03Z bisson $
+# Contributor: tobias [tobias [at] archlinux.org]
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=mutt
+pkgver=1.5.21
+pkgrel=4
+pkgdesc='Small but very powerful text-based mail client'
+url='http://www.mutt.org/'
+license=('GPL')
+backup=('etc/Muttrc')
+arch=('i686' 'x86_64')
+depends=('gpgme' 'ncurses' 'openssl' 'libsasl' 'gdbm' 'libidn' 'mime-types' 'heimdal')
+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/extra/mutt/install b/extra/mutt/install
new file mode 100644
index 000000000..d65675c06
--- /dev/null
+++ b/extra/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/extra/mysql-python/PKGBUILD b/extra/mysql-python/PKGBUILD
new file mode 100644
index 000000000..7d80d1028
--- /dev/null
+++ b/extra/mysql-python/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 115225 2011-03-17 11:58:26Z andrea $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=mysql-python
+pkgver=1.2.3
+pkgrel=2
+pkgdesc="MySQL support for Python"
+arch=("i686" "x86_64")
+url="http://mysql-python.sourceforge.net/"
+license=('GPL2')
+depends=('python2' 'libmysqlclient')
+makedepends=('mysql' 'python2-distribute')
+source=("http://downloads.sourceforge.net/${pkgname}/MySQL-python-${pkgver}.tar.gz")
+md5sums=('215eddb6d853f6f4be5b4afc4154292f')
+
+package() {
+ cd ${srcdir}/MySQL-python-${pkgver}
+ python2 setup.py install --root=${pkgdir} --optimize=1
+}
diff --git a/extra/mysql/PKGBUILD b/extra/mysql/PKGBUILD
new file mode 100644
index 000000000..175b2eee5
--- /dev/null
+++ b/extra/mysql/PKGBUILD
@@ -0,0 +1,139 @@
+# $Id: PKGBUILD 115418 2011-03-17 21:33:02Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgbase=mysql
+pkgname=('libmysqlclient' 'mysql-clients' 'mysql')
+pkgver=5.5.10
+pkgrel=2
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.mysql.com/"
+makedepends=('cmake' 'openssl' 'tcp_wrappers' 'zlib')
+options=('!libtool')
+source=("http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.5/${pkgbase}-${pkgver}.tar.gz"
+ 'mysqld'
+ 'my.cnf'
+ 'fix-mysql-home.patch'
+ 'fix-embedded-crash.patch')
+md5sums=('ee604aff531ff85abeb10cf332c1355a'
+ '2234207625baa29b2ff7d7b4f088abce'
+ '1c949c0dbea5206af0db14942d9927b6'
+ '56fe8b724ca7ae73b9f96cdf4cca1220'
+ 'b2b7ed0289a6d8cce17a68512c0286cc')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ patch -Np1 -i ${srcdir}/fix-mysql-home.patch
+ patch -Np1 -i ${srcdir}/fix-embedded-crash.patch
+
+ cd "${srcdir}"
+ mkdir build
+ cd build
+
+ # CFLAGS/CXXFLAGS as suggested upstream
+ CFLAGS="-fPIC ${CFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer" \
+ CXXFLAGS="-fPIC ${CXXFLAGS} -fno-strict-aliasing -DBIG_JOINS=1 -felide-constructors -fno-rtti" \
+
+ cmake ../${pkgbase}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DMYSQL_DATADIR=/var/lib/mysql \
+ -DSYSCONFDIR=/etc/mysql \
+ -DINSTALL_INFODIR=share/mysql/docs \
+ -DINSTALL_MANDIR=share/man \
+ -DINSTALL_PLUGINDIR=/usr/lib/mysql/plugin \
+ -DINSTALL_SCRIPTDIR=bin \
+ -DINSTALL_INCLUDEDIR=include/mysql \
+ -DINSTALL_DOCREADMEDIR=share/mysql \
+ -DINSTALL_SUPPORTFILESDIR=share/mysql \
+ -DINSTALL_MYSQLSHAREDIR=share/mysql \
+ -DINSTALL_SHAREDIR=share/mysql \
+ -DWITH_READLINE=ON \
+ -DWITH_ZLIB=system \
+ -DWITH_SSL=system \
+ -DWITH_LIBWRAP=ON \
+ -DDEFAULT_CHARSET=utf8 \
+ -DDEFAULT_COLLATION=utf8_general_ci \
+ -DWITH_EXTRA_CHARSETS=complex \
+ -DWITH_EMBEDDED_SERVER=ON \
+ -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
+ -DENABLED_LOCAL_INFILE=ON \
+ -DWITH_PARTITION_STORAGE_ENGINE=1 \
+ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
+ -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 \
+ -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1
+
+ make
+}
+
+package_libmysqlclient(){
+ pkgdesc="MySQL client libraries"
+ depends=('openssl' 'gcc-libs' 'tcp_wrappers')
+
+ cd "${srcdir}"/build
+ for dir in include libmysql libmysqld libservices; do
+ make -C ${dir} DESTDIR="${pkgdir}" install
+ done
+
+ install -d "${pkgdir}/usr/bin"
+ install -m755 scripts/mysql_config "${pkgdir}/usr/bin/"
+ install -d "${pkgdir}/usr/share/man/man1"
+ for man in mysql_config mysql_client_test_embedded mysqltest_embedded; do
+ install -m644 "${srcdir}/${pkgbase}-${pkgver}/man/$man.1" "${pkgdir}/usr/share/man/man1/$man.1"
+ done
+}
+
+package_mysql-clients(){
+ pkgdesc="MySQL client tools"
+ depends=('libmysqlclient')
+
+ cd "${srcdir}"/build
+ make -C client DESTDIR="${pkgdir}" install
+
+ # install man pages
+ install -d "${pkgdir}/usr/share/man/man1"
+ for man in mysql mysqladmin mysqlcheck mysqldump mysqlimport mysqlshow mysqlslap; do
+ install -m644 "${srcdir}/${pkgbase}-${pkgver}/man/$man.1" "${pkgdir}/usr/share/man/man1/$man.1"
+ done
+
+ # provided by mysql
+ rm "${pkgdir}"/usr/bin/{mysql_upgrade,mysqlbinlog,mysqltest}
+}
+
+package_mysql(){
+ pkgdesc="A fast SQL database server"
+ backup=('etc/mysql/my.cnf')
+ install=mysql.install
+ depends=('mysql-clients')
+ optdepends=('perl-dbi' 'perl-dbd-mysql')
+
+ cd "${srcdir}"/build
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ${srcdir}/my.cnf ${pkgdir}/etc/mysql/my.cnf
+ install -Dm755 ${srcdir}/mysqld ${pkgdir}/etc/rc.d/mysqld
+
+ # provided by libmysqlclient
+ rm ${pkgdir}/usr/bin/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}
+ rm ${pkgdir}/usr/lib/libmysql*
+ rm -r ${pkgdir}/usr/include/
+ rm ${pkgdir}/usr/share/man/man1/{mysql_config,mysql_client_test_embedded,mysqltest_embedded}.1
+
+ # provided by mysql-clients
+ rm ${pkgdir}/usr/bin/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}
+ rm ${pkgdir}/usr/share/man/man1/{mysql,mysqladmin,mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap}.1
+
+ # not needed
+ rm -r ${pkgdir}/usr/{mysql-test,sql-bench}
+
+ # These shouldn't be here
+ rm -r ${pkgdir}/usr/docs
+ install -d ${pkgdir}/var/lib/mysql
+ cp -r ${pkgdir}/usr/data/* ${pkgdir}/var/lib/mysql/
+ chmod -R 700 ${pkgdir}/var/lib/mysql
+ rm -r ${pkgdir}/usr/data
+}
diff --git a/extra/mysql/fix-embedded-crash.patch b/extra/mysql/fix-embedded-crash.patch
new file mode 100644
index 000000000..b445fcee0
--- /dev/null
+++ b/extra/mysql/fix-embedded-crash.patch
@@ -0,0 +1,19 @@
+Fix crash in embedded mysql library when mysql_library_init() is invoked
+with argc = 0, as is supposed to be a supported thing to do.
+Patch from upstream bug #57931.
+
+
+diff -Naur mysql-5.5.8.orig/libmysqld/lib_sql.cc mysql-5.5.8/libmysqld/lib_sql.cc
+--- mysql-5.5.8.orig/libmysqld/lib_sql.cc 2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/libmysqld/lib_sql.cc 2011-01-12 23:10:55.837471629 -0500
+@@ -510,8 +510,8 @@
+ return 1;
+ defaults_argc= *argcp;
+ defaults_argv= *argvp;
+- remaining_argc= argc;
+- remaining_argv= argv;
++ remaining_argc= *argcp;
++ remaining_argv= *argvp;
+
+ /* Must be initialized early for comparison of options name */
+ system_charset_info= &my_charset_utf8_general_ci;
diff --git a/extra/mysql/fix-mysql-home.patch b/extra/mysql/fix-mysql-home.patch
new file mode 100644
index 000000000..054d38938
--- /dev/null
+++ b/extra/mysql/fix-mysql-home.patch
@@ -0,0 +1,16 @@
+mysql 5.5's new cmake-based build scripts forgot about defining
+DEFAULT_HOME_ENV. Upstream at http://bugs.mysql.com/bug.php?id=59280
+
+
+diff -Naur mysql-5.5.8.orig/mysys/CMakeLists.txt mysql-5.5.8/mysys/CMakeLists.txt
+--- mysql-5.5.8.orig/mysys/CMakeLists.txt 2010-12-03 12:58:26.000000000 -0500
++++ mysql-5.5.8/mysys/CMakeLists.txt 2011-01-13 11:58:42.583471734 -0500
+@@ -69,6 +69,8 @@
+ SET(MYSYS_SOURCES ${MYSYS_SOURCES} my_port.c)
+ ENDIF()
+
++ADD_DEFINITIONS( -DDEFAULT_HOME_ENV=MYSQL_HOME)
++
+ ADD_CONVENIENCE_LIBRARY(mysys ${MYSYS_SOURCES})
+ TARGET_LINK_LIBRARIES(mysys dbug strings ${ZLIB_LIBRARY}
+ ${LIBNSL} ${LIBM} ${LIBRT})
diff --git a/extra/mysql/my.cnf b/extra/mysql/my.cnf
new file mode 100644
index 000000000..9a41b4fc3
--- /dev/null
+++ b/extra/mysql/my.cnf
@@ -0,0 +1,145 @@
+# MySQL config file for medium systems.
+#
+# This is for a system with little memory (32M - 64M) where MySQL plays
+# an important part, or systems up to 128M where MySQL is used together with
+# other programs (such as a web server)
+#
+# MySQL programs look for option files in a set of
+# locations which depend on the deployment platform.
+# You can copy this option file to one of those
+# locations. For information about these locations, see:
+# http://dev.mysql.com/doc/mysql/en/option-files.html
+#
+# In this file, you can use all long options that a program supports.
+# If you want to know which options a program supports, run the program
+# with the "--help" option.
+
+# The following options will be passed to all MySQL clients
+[client]
+#password = your_password
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+
+# Here follows entries for some specific programs
+
+# The MySQL server
+[mysqld]
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+datadir = /var/lib/mysql
+skip-external-locking
+key_buffer_size = 16M
+max_allowed_packet = 1M
+table_open_cache = 64
+sort_buffer_size = 512K
+net_buffer_length = 8K
+read_buffer_size = 256K
+read_rnd_buffer_size = 512K
+myisam_sort_buffer_size = 8M
+
+# Don't listen on a TCP/IP port at all. This can be a security enhancement,
+# if all processes that need to connect to mysqld run on the same host.
+# All interaction with mysqld must be made via Unix sockets or named pipes.
+# Note that using this option without enabling named pipes on Windows
+# (via the "enable-named-pipe" option) will render mysqld useless!
+#
+skip-networking
+
+# Replication Master Server (default)
+# binary logging is required for replication
+log-bin=mysql-bin
+
+# binary logging format - mixed recommended
+binlog_format=mixed
+
+# required unique id between 1 and 2^32 - 1
+# defaults to 1 if master-host is not set
+# but will not function as a master if omitted
+server-id = 1
+
+# Replication Slave (comment out master section to use this)
+#
+# To configure this host as a replication slave, you can choose between
+# two methods :
+#
+# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
+# the syntax is:
+#
+# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
+# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
+#
+# where you replace <host>, <user>, <password> by quoted strings and
+# <port> by the master's port number (3306 by default).
+#
+# Example:
+#
+# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
+# MASTER_USER='joe', MASTER_PASSWORD='secret';
+#
+# OR
+#
+# 2) Set the variables below. However, in case you choose this method, then
+# start replication for the first time (even unsuccessfully, for example
+# if you mistyped the password in master-password and the slave fails to
+# connect), the slave will create a master.info file, and any later
+# change in this file to the variables' values below will be ignored and
+# overridden by the content of the master.info file, unless you shutdown
+# the slave server, delete master.info and restart the slaver server.
+# For that reason, you may want to leave the lines below untouched
+# (commented) and instead use CHANGE MASTER TO (see above)
+#
+# required unique id between 2 and 2^32 - 1
+# (and different from the master)
+# defaults to 2 if master-host is set
+# but will not function as a slave if omitted
+#server-id = 2
+#
+# The replication master for this slave - required
+#master-host = <hostname>
+#
+# The username the slave will use for authentication when connecting
+# to the master - required
+#master-user = <username>
+#
+# The password the slave will authenticate with when connecting to
+# the master - required
+#master-password = <password>
+#
+# The port the master is listening on.
+# optional - defaults to 3306
+#master-port = <port>
+#
+# binary logging - not required for slaves, but recommended
+#log-bin=mysql-bin
+
+# Uncomment the following if you are using InnoDB tables
+#innodb_data_home_dir = /var/lib/mysql
+#innodb_data_file_path = ibdata1:10M:autoextend
+#innodb_log_group_home_dir = /var/lib/mysql
+# You can set .._buffer_pool_size up to 50 - 80 %
+# of RAM but beware of setting memory usage too high
+#innodb_buffer_pool_size = 16M
+#innodb_additional_mem_pool_size = 2M
+# Set .._log_file_size to 25 % of buffer pool size
+#innodb_log_file_size = 5M
+#innodb_log_buffer_size = 8M
+#innodb_flush_log_at_trx_commit = 1
+#innodb_lock_wait_timeout = 50
+
+[mysqldump]
+quick
+max_allowed_packet = 16M
+
+[mysql]
+no-auto-rehash
+# Remove the next comment character if you are not familiar with SQL
+#safe-updates
+
+[myisamchk]
+key_buffer_size = 20M
+sort_buffer_size = 20M
+read_buffer = 2M
+write_buffer = 2M
+
+[mysqlhotcopy]
+interactive-timeout
diff --git a/extra/mysql/mysql.install b/extra/mysql/mysql.install
new file mode 100644
index 000000000..9a4479215
--- /dev/null
+++ b/extra/mysql/mysql.install
@@ -0,0 +1,26 @@
+post_install(){
+ groupadd -g 89 mysql &>/dev/null
+ useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
+ usr/bin/mysql_install_db --user=mysql --basedir=/usr
+ chown -R mysql:mysql var/lib/mysql &>/dev/null
+}
+
+post_upgrade(){
+ getent group mysql >/dev/null 2>&1 || groupadd -g 89 mysql &>/dev/null
+ getent passwd mysql >/dev/null 2>&1 || useradd -u 89 -g mysql -d /var/lib/mysql -s /bin/false mysql &>/dev/null
+
+ if [ "$(vercmp $2 5.5)" -lt 0 ]; then
+ echo " >> "
+ echo " >> Major version update. Consider restart the service, and then running mysql_upgrade after it."
+ echo " >> "
+ fi
+}
+
+post_remove(){
+ if getent passwd mysql >/dev/null 2>&1; then
+ userdel mysql
+ fi
+ if getent group mysql >/dev/null 2>&1; then
+ groupdel mysql
+ fi
+}
diff --git a/extra/mysql/mysqld b/extra/mysql/mysqld
new file mode 100755
index 000000000..1ac88a7cc
--- /dev/null
+++ b/extra/mysql/mysqld
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+# general config
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+getPID() {
+ echo $(pgrep -u mysql mysqld 2>/dev/null);
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting MySQL Server"
+ [ ! -d /var/run/mysqld ] && install -d -g mysql -o mysql /var/run/mysqld &>/dev/null
+ if [ -z "$(getPID)" ]; then
+ /usr/bin/mysqld_safe --user=mysql &>/dev/null &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ timeo=30
+ while [ $timeo -gt 0 ]; do
+ response=`/usr/bin/mysqladmin -uUNKNOWN_USER ping 2>&1` && break
+ echo "$response" | grep -q "mysqld is alive" && break
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ $timeo -eq 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(getPID) > /var/run/mysqld/mysqld.pid
+ add_daemon mysqld
+ stat_done
+ fi
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping MySQL Server"
+ if [ ! -z "$(getPID)" ]; then
+ timeo=30
+ kill $(getPID) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ fi
+ while [ ! -z "$(getPID)" -a $timeo -gt 0 ]; do
+ sleep 1
+ let timeo=${timeo}-1
+ done
+ if [ -z "$(getPID)" ]; then
+ rm -f /var/run/mysqld/mysqld.pid &>/dev/null
+ rm_daemon mysqld
+ stat_done
+ else
+ stat_fail
+ exit 1
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/naim/PKGBUILD b/extra/naim/PKGBUILD
new file mode 100644
index 000000000..a6be5dcb1
--- /dev/null
+++ b/extra/naim/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 31166 2009-03-24 21:08:09Z tpowa $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=naim
+pkgver=0.11.8.3.2
+pkgrel=1
+pkgdesc="An ncurses AOL Instant Messenger and IRC client."
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://naim.n.ml.org"
+depends=('ncurses')
+source=(http://naim.googlecode.com/files/$pkgname-$pkgver.tar.bz2)
+options=(!makeflags)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+md5sums=('c9622e3f75d56310829f98fa4dae1f78')
diff --git a/extra/nasm/PKGBUILD b/extra/nasm/PKGBUILD
new file mode 100644
index 000000000..fd0720e05
--- /dev/null
+++ b/extra/nasm/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 102775 2010-12-11 05:11:43Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+
+pkgbase=nasm
+pkgname=('nasm' 'nasm-doc')
+pkgver=2.09.04
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.nasm.us"
+license=('BSD')
+makedepends=('ghostscript')
+source=(http://www.nasm.us/pub/nasm/releasebuilds/${pkgver}/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('c11f083a501adae843d0bc3e7c106c73')
+sha1sums=('87fb3f1d277f57cfd86408faa28685df0c887f59')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make everything
+}
+
+package_nasm() {
+ pkgdesc="An 80x86 assembler designed for portability and modularity"
+ depends=('glibc')
+ install=nasm.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make INSTALLROOT="${pkgdir}" install install_rdf
+ install -d "${pkgdir}/usr/share/info"
+ install -m644 doc/info/* "${pkgdir}/usr/share/info/"
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/nasm/LICENSE"
+}
+
+package_nasm-doc() {
+ pkgdesc="An 80x86 assembler designed for portability and modularity (manuals)"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/doc"
+ install -d "${pkgdir}/usr/share/doc/nasm/html"
+ install -m644 html/* "${pkgdir}/usr/share/doc/nasm/html/"
+ install -m644 nasmdoc.ps nasmdoc.pdf nasmdoc.txt "${pkgdir}/usr/share/doc/nasm/"
+ install -D -m644 ../LICENSE "${pkgdir}/usr/share/licenses/nasm-doc/LICENSE"
+}
diff --git a/extra/nasm/nasm.install b/extra/nasm/nasm.install
new file mode 100644
index 000000000..e4baa9808
--- /dev/null
+++ b/extra/nasm/nasm.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(nasm.info)
+
+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/extra/nautilus-open-terminal/PKGBUILD b/extra/nautilus-open-terminal/PKGBUILD
new file mode 100644
index 000000000..b2b7aed0f
--- /dev/null
+++ b/extra/nautilus-open-terminal/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 114747 2011-03-15 20:56:03Z ibiru $
+# Maintainer : Biru Ionut <ionut@archlinux.ro>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=nautilus-open-terminal
+pkgver=0.18
+pkgrel=2
+pkgdesc="A nautilus plugin for opening terminals in arbitrary local paths"
+arch=('i686' 'x86_64')
+url="http://ftp.gnome.org/pub/GNOME/sources/nautilus-open-terminal"
+license=('GPL')
+depends=('nautilus')
+makedepends=('pkgconfig' 'gettext' 'intltool')
+install=nautilus-open-terminal.install
+source=(ftp://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('c0718d28e6d9984c0bdf92c30ff72d49')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -dm755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain ${pkgname} "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -rf "${pkgdir}"/etc/gconf/schemas
+}
+
diff --git a/extra/nautilus-open-terminal/nautilus-open-terminal.install b/extra/nautilus-open-terminal/nautilus-open-terminal.install
new file mode 100644
index 000000000..f7cdb9507
--- /dev/null
+++ b/extra/nautilus-open-terminal/nautilus-open-terminal.install
@@ -0,0 +1,17 @@
+pkgname=nautilus-open-terminal
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/nautilus-sendto/PKGBUILD b/extra/nautilus-sendto/PKGBUILD
new file mode 100644
index 000000000..2059acf6f
--- /dev/null
+++ b/extra/nautilus-sendto/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 91946 2010-09-28 15:01:54Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Tor Krill <tor@krill.nu>
+
+pkgname=nautilus-sendto
+pkgver=2.32.0
+pkgrel=1
+pkgdesc="Nautilus context menu for sending files."
+arch=('i686' 'x86_64')
+url="http://download.gnome.org/sources/nautilus-sendto/"
+license=('GPL')
+groups=('gnome-extra')
+depends=('evolution-data-server>=2.32.0' 'nautilus>=2.32.0' 'dconf')
+makedepends=('pidgin' 'gajim' 'gettext' 'intltool')
+options=('!libtool' '!emptydirs')
+install=nautilus-sendto.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/nautilus-sendto/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('890090b24381d91f079610d5454cb786a3ecefc91fa06649b2222be9bb02269a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-schemas-compile
+ make
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}//usr/lib/nautilus-sendto/plugins/libnstbluetooth.so"
+}
diff --git a/extra/nautilus-sendto/nautilus-sendto.install b/extra/nautilus-sendto/nautilus-sendto.install
new file mode 100644
index 000000000..e5204bcab
--- /dev/null
+++ b/extra/nautilus-sendto/nautilus-sendto.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/nautilus/PKGBUILD b/extra/nautilus/PKGBUILD
new file mode 100644
index 000000000..596167539
--- /dev/null
+++ b/extra/nautilus/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 104094 2010-12-28 19:26:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=nautilus
+pkgver=2.32.2.1
+pkgrel=1
+pkgdesc="The GNOME shell and file manager"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libexif>=0.6.19' 'gnome-desktop>=2.32.1' 'exempi>=2.1.1' 'libunique>=1.1.6' 'hicolor-icon-theme' 'gvfs>=1.6.6' 'desktop-file-utils')
+makedepends=('intltool' 'gobject-introspection' 'namcap')
+replaces=('gnome-volume-manager')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+install=nautilus.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ nautilus-condrestart.patch)
+sha256sums=('802dacc98c697afea2e6201dab1c8c800809f235fff39857983efb4340ecc303'
+ 'f825292ef26274d3044272ca9f25095391cc49d30fb0056e7ed7346a1b4d106c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/nautilus-condrestart.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/nautilus \
+ --disable-update-mimedb \
+ --disable-packagekit
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain nautilus ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/nautilus/nautilus-condrestart.patch b/extra/nautilus/nautilus-condrestart.patch
new file mode 100644
index 000000000..9634f35eb
--- /dev/null
+++ b/extra/nautilus/nautilus-condrestart.patch
@@ -0,0 +1,16 @@
+diff -up nautilus-2.25.93/data/nautilus.desktop.in.condrestart nautilus-2.25.93/nautilus.desktop.in
+--- nautilus-2.25.93/data/nautilus.desktop.in.condrestart 2009-03-12 10:49:41.449753624 -0400
++++ nautilus-2.25.93/data/nautilus.desktop.in 2009-03-12 10:49:51.814754208 -0400
+@@ -17,3 +17,4 @@ X-GNOME-Autostart-Phase=Desktop
+ X-GNOME-Autostart-Notify=true
+ X-GNOME-AutoRestart=true
+ X-GNOME-Provides=filemanager
++AutostartCondition=GNOME /apps/nautilus/preferences/show_desktop
+diff -up nautilus-2.25.93/data/nautilus.desktop.in.in.condrestart nautilus-2.25.93/nautilus.desktop.in.in
+--- nautilus-2.25.93/data/nautilus.desktop.in.in.condrestart 2009-03-12 10:47:41.681753834 -0400
++++ nautilus-2.25.93/data/nautilus.desktop.in.in 2009-03-12 10:49:29.663754303 -0400
+@@ -17,3 +17,4 @@ X-GNOME-Autostart-Phase=Desktop
+ X-GNOME-Autostart-Notify=true
+ X-GNOME-AutoRestart=true
+ X-GNOME-Provides=filemanager
++AutostartCondition=GNOME /apps/nautilus/preferences/show_desktop
diff --git a/extra/nautilus/nautilus.install b/extra/nautilus/nautilus.install
new file mode 100644
index 000000000..1d818c955
--- /dev/null
+++ b/extra/nautilus/nautilus.install
@@ -0,0 +1,26 @@
+pkgname=nautilus
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
diff --git a/extra/nbsmtp/PKGBUILD b/extra/nbsmtp/PKGBUILD
new file mode 100644
index 000000000..406caf487
--- /dev/null
+++ b/extra/nbsmtp/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 75557 2010-04-01 20:23:24Z giovanni $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=nbsmtp
+pkgver=1.00
+pkgrel=3
+pkgdesc="No-Brainer SMTP client suitable to run in chroot jails, embeded systems, laptops, and workstations"
+arch=(i686 x86_64)
+url="http://nbsmtp.ferdyx.org/"
+license=('GPL')
+depends=('openssl')
+source=(http://www.it.uc3m.es/~ferdy/nbsmtp/$pkgname-$pkgver.tar.bz2 build.patch)
+md5sums=('0c6a200027a6f7f61f44b374261aa52f' '043236152fecb550d80ab3cd84711cd3')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np0 -i ../build.patch || return 1
+ ./configure --prefix=/usr --enable-ssl || return 1
+ make || return 1
+ make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man install || return 1
+}
diff --git a/extra/nbsmtp/build.patch b/extra/nbsmtp/build.patch
new file mode 100644
index 000000000..325b16308
--- /dev/null
+++ b/extra/nbsmtp/build.patch
@@ -0,0 +1,15 @@
+--- hmac_md5.c~ 2005-07-28 19:29:07.000000000 +0200
++++ hmac_md5.c 2006-06-04 15:49:09.000000000 +0200
+@@ -4,10 +4,11 @@
+ *
+ * Code taken from RFC2104.
+ */
+-
++#include <stdlib.h>
+ #include <openssl/md5.h>
+ #include <string.h>
+
++
+ #include "hmac_md5.h"
+
+ /**
diff --git a/extra/ncftp/PKGBUILD b/extra/ncftp/PKGBUILD
new file mode 100644
index 000000000..921f49e52
--- /dev/null
+++ b/extra/ncftp/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 107177 2011-01-22 08:26:40Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Paul Mattal <paul@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ncftp
+pkgver=3.2.5
+pkgrel=1
+pkgdesc="A set of free application programs implementing FTP"
+url="http://www.ncftp.com/"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('ncurses')
+source=("ftp://ftp.ncftp.com/ncftp/$pkgname-$pkgver-src.tar.bz2")
+md5sums=('8b569165c03302410927a14d7b8a6aef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ install -d ${pkgdir}/usr/share
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr mandir=${pkgdir}/usr/share/man install
+
+ # Install license
+ install -Dm644 doc/LICENSE.txt \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/ncmpc/PKGBUILD b/extra/ncmpc/PKGBUILD
new file mode 100644
index 000000000..21763b763
--- /dev/null
+++ b/extra/ncmpc/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 92103 2010-09-29 06:29:55Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Daniel Bainton <dpb [at] backarrow.org>
+
+pkgname=ncmpc
+pkgver=0.18
+pkgrel=2
+pkgdesc="A ncurses (command line) interface for MPD"
+arch=("i686" "x86_64")
+url="http://mpd.wikia.com/wiki/Client:Ncmpc"
+license=('GPL')
+depends=('ncurses' 'glib2' 'libmpdclient')
+optdepends=('python2: to enable lyrics plugin'
+ 'ruby: to enable lyrics plugin')
+source=("http://downloads.sourceforge.net/musicpd/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('9f07e8289b710c7c41b3c80ba73fed76')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i 's#python#python2#' lyrics/30-leoslyrics.py
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-lyrics-screen \
+ --with-lyrics-plugin-dir=/usr/share/ncmpc/lyrics
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -d ${pkgdir}/usr/share/ncmpc/lyrics
+ install -m755 lyrics/{10-hd.sh,15-leoslyrics.sh,20-lyricwiki.rb,30-leoslyrics.py} \
+ ${pkgdir}/usr/share/ncmpc/lyrics
+}
diff --git a/extra/ndesk-dbus-glib/PKGBUILD b/extra/ndesk-dbus-glib/PKGBUILD
new file mode 100644
index 000000000..b25ce9ce5
--- /dev/null
+++ b/extra/ndesk-dbus-glib/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 33728 2009-04-04 18:41:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=ndesk-dbus-glib
+pkgver=0.4.1
+pkgrel=2
+pkgdesc="C# GLib implementation of D-Bus"
+arch=('i686' 'x86_64')
+url="http://www.ndesk.org/DBusSharp"
+license=('custom')
+depends=('ndesk-dbus>=0.6')
+makedepends=('pkgconfig')
+options=(!makeflags)
+source=(http://www.ndesk.org/archive/dbus-sharp/$pkgname-$pkgver.tar.gz)
+md5sums=('7faf8770b214956fa9de009def550826')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ export MONO_SHARED_DIR="${startdir}/src/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make || return 1
+ make DESTDIR=$startdir/pkg install || return 1
+ install -D COPYING $startdir/pkg/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/nedit/ChangeLog b/extra/nedit/ChangeLog
new file mode 100644
index 000000000..f7e102118
--- /dev/null
+++ b/extra/nedit/ChangeLog
@@ -0,0 +1,5 @@
+2009-07-29 Eric Belanger <eric@archlinux.org>
+
+ * nedit 5.5-5
+ * FHS man pages
+ * Added ChangeLog
diff --git a/extra/nedit/PKGBUILD b/extra/nedit/PKGBUILD
new file mode 100644
index 000000000..8cf610d95
--- /dev/null
+++ b/extra/nedit/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 47944 2009-07-29 19:36:14Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk> and Dale Blount <dale@archlinux.org>
+
+pkgname=nedit
+pkgver=5.5
+pkgrel=5
+pkgdesc="A Unix text editor for programmers and general users"
+arch=('i686' 'x86_64')
+url="http://www.nedit.org/"
+license=('GPL')
+depends=('lesstif' 'libxpm')
+source=(http://www.nedit.org/ftp/v5_5/${pkgname}-${pkgver}-src.tar.bz2 nedit_xorg_composite_fix.patch)
+md5sums=('48cb3dce52d44988f3a4d7c6f47b6bbe' 'ae1f56ae9b23163882051720ac52412d')
+sha1sums=('7d3c87a793a5047cf857af1ac82e39f3b33e8a87' '1f6c75075a6bdc7b0dd8ca89d8117d68af8fc54e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../nedit_xorg_composite_fix.patch || return 1
+ sed -i 's/-Wl,-Bstatic//' makefiles/Makefile.linux || return 1
+ sed -i 's|fgets|//fgets|' util/check_lin_tif.c || return 1
+ sed -i "s/CFLAGS=-O/CFLAGS=${CFLAGS} -DBUILD_UNTESTED_NEDIT/" makefiles/Makefile.linux || return 1
+ sed -i 's|"/bin/csh"|"/bin/sh"|' source/preferences.c || return 1
+
+ make linux || return 1
+ install -D -m755 source/nedit "${pkgdir}/usr/bin/nedit" || return 1
+ install -D -m755 source/nc "${pkgdir}/usr/bin/nedit-client" || return 1
+ install -D -m644 doc/nedit.man "${pkgdir}/usr/share/man/man1/nedit.1" || return 1
+ install -D -m644 doc/nc.man "${pkgdir}/usr/share/man/man1/nedit-client.1" || return 1
+}
diff --git a/extra/nedit/nedit_xorg_composite_fix.patch b/extra/nedit/nedit_xorg_composite_fix.patch
new file mode 100644
index 000000000..0ed0465a8
--- /dev/null
+++ b/extra/nedit/nedit_xorg_composite_fix.patch
@@ -0,0 +1,18 @@
+--- nedit-5.5/util/misc.c.orig 2007-12-03 21:57:15.000000000 +0000
++++ nedit-5.5/util/misc.c 2007-12-03 21:59:30.000000000 +0000
+@@ -475,6 +475,15 @@
+ bestClass = 0;
+ bestVisual = 0;
+ for (i=0; i < nVis; i++) {
++ if (visList[i].depth >= 32 &&
++ strstr(ServerVendor(display), "X.Org") != 0) {
++ /* Xorg 6.8.* 32-bit visuals (with alpha-channel) cause a lot
++ of problems, so we have to skip them.
++ Users can achieve the same effect with older versions of
++ NEdit by setting the environment variable
++ XLIB_SKIP_ARGB_VISUALS. */
++ continue;
++ }
+ if (visList[i].depth > maxDepth) {
+ maxDepth = visList[i].depth;
+ bestClass = 0;
diff --git a/extra/neon/PKGBUILD b/extra/neon/PKGBUILD
new file mode 100644
index 000000000..c87a5f0c2
--- /dev/null
+++ b/extra/neon/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 77208 2010-04-11 13:31:45Z pierre $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+
+# KEEP LIBTOOL FILES!
+pkgname=neon
+pkgver=0.29.3
+pkgrel=2
+pkgdesc="HTTP and WebDAV client library with a C interface"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('heimdal' 'expat' 'ca-certificates')
+url="http://www.webdav.org/neon/"
+source=("http://www.webdav.org/neon/${pkgname}-${pkgver}.tar.gz")
+md5sums=('ba1015b59c112d44d7797b62fe7bee51')
+options=('libtool')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --with-expat --enable-shared --disable-static \
+ --with-ssl=openssl --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/net-snmp/PKGBUILD b/extra/net-snmp/PKGBUILD
new file mode 100644
index 000000000..5506932b1
--- /dev/null
+++ b/extra/net-snmp/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 112465 2011-03-05 03:33:40Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=net-snmp
+pkgver=5.6.1
+pkgrel=1
+pkgdesc="A suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6"
+arch=('i686' 'x86_64')
+url="http://www.net-snmp.org/"
+license=('custom')
+depends=('openssl' 'tcp_wrappers' 'libnl')
+makedepends=('setuptools')
+optdepends=('perl-term-readkey: for snmpcheck application'
+ 'perl-tk: for snmpcheck and tkmib applications'
+ 'python2: for the python modules')
+provides=('ucd-snmp')
+options=('!libtool' '!makeflags' '!emptydirs')
+source=("http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'snmpd.rc')
+md5sums=('b4e30ead5783b0bb1d280172c6095ea4' '9f0d13676ba1fae1eb7eb178edd85b43')
+sha1sums=('45bbf1295253d5379a5d1efd918593160387fd00' '2c679b564a2c319d9ce2714a9776aa0e6d89c60a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e "s:\(install --basedir=\$\$dir\):\1 --root='${pkgdir}':" Makefile.in
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
+ --enable-ucd-snmp-compatibility --enable-ipv6 --with-libwrap --with-python-modules \
+ --with-default-snmp-version="3" --with-sys-contact="root@localhost" \
+ --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" \
+ --with-mib-modules="host misc/ipfwacc ucd-snmp/diskio tunnel ucd-snmp/dlmod" \
+ --with-persistent-directory="/var/net-snmp" \
+ PYTHONPROG=/usr/bin/python2
+ make NETSNMP_DONT_CHECK_VERSION=1 LDFLAGS+="-Wl,-rpath -Wl,/usr/lib/perl5/core_perl/CORE"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" INSTALL_PREFIX="${pkgdir}" INSTALLDIRS=vendor install
+ install -D -m755 "${srcdir}/snmpd.rc" "${pkgdir}/etc/rc.d/snmpd"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/net-snmp/libnl-2.patch b/extra/net-snmp/libnl-2.patch
new file mode 100644
index 000000000..7c140fe83
--- /dev/null
+++ b/extra/net-snmp/libnl-2.patch
@@ -0,0 +1,67 @@
+diff -Nur net-snmp-5.5.orig//agent/mibgroup/mibII/tcpTable.c net-snmp-5.5//agent/mibgroup/mibII/tcpTable.c
+--- net-snmp-5.5.orig//agent/mibgroup/mibII/tcpTable.c 2009-06-13 04:02:02.000000000 +0200
++++ net-snmp-5.5//agent/mibgroup/mibII/tcpTable.c 2011-01-15 10:31:03.579735957 +0100
+@@ -555,8 +555,10 @@
+ static int
+ tcpTable_load_netlink()
+ {
++ int err;
++
+ /* TODO: perhaps use permanent nl handle? */
+- struct nl_handle *nl = nl_handle_alloc();
++ struct nl_sock *nl = nl_socket_alloc();
+
+ if (nl == NULL) {
+ DEBUGMSGTL(("mibII/tcpTable", "Failed to allocate netlink handle\n"));
+@@ -564,10 +566,10 @@
+ return -1;
+ }
+
+- if (nl_connect(nl, NETLINK_INET_DIAG) < 0) {
+- DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: %s\n", nl_geterror()));
+- snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", nl_geterror());
+- nl_handle_destroy(nl);
++ if ((err = nl_connect(nl, NETLINK_INET_DIAG)) < 0) {
++ DEBUGMSGTL(("mibII/tcpTable", "Failed to connect to netlink: %s\n", nl_geterror(err)));
++ snmp_log(LOG_ERR, "snmpd: Couldn't connect to netlink: %s\n", nl_geterror(err));
++ nl_socket_free(nl);
+ return -1;
+ }
+
+@@ -579,10 +581,10 @@
+ struct nl_msg *nm = nlmsg_alloc_simple(TCPDIAG_GETSOCK, NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST);
+ nlmsg_append(nm, &req, sizeof(struct inet_diag_req), 0);
+
+- if (nl_send_auto_complete(nl, nm) < 0) {
+- DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", nl_geterror()));
+- snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", nl_geterror());
+- nl_handle_destroy(nl);
++ if ((err = nl_send_auto_complete(nl, nm)) < 0) {
++ DEBUGMSGTL(("mibII/tcpTable", "nl_send_autocomplete(): %s\n", nl_geterror(err)));
++ snmp_log(LOG_ERR, "snmpd: nl_send_autocomplete(): %s\n", nl_geterror(err));
++ nl_socket_free(nl);
+ return -1;
+ }
+ nlmsg_free(nm);
+@@ -593,9 +595,9 @@
+
+ while (running) {
+ if ((len = nl_recv(nl, &peer, &buf, NULL)) <= 0) {
+- DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", nl_geterror()));
+- snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", nl_geterror());
+- nl_handle_destroy(nl);
++ DEBUGMSGTL(("mibII/tcpTable", "nl_recv(): %s\n", nl_geterror(len)));
++ snmp_log(LOG_ERR, "snmpd: nl_recv(): %s\n", nl_geterror(len));
++ nl_socket_free(nl);
+ return -1;
+ }
+
+@@ -644,7 +646,7 @@
+ free(buf);
+ }
+
+- nl_handle_destroy(nl);
++ nl_socket_free(nl);
+
+ if (tcp_head) {
+ DEBUGMSGTL(("mibII/tcpTable", "Loaded TCP Table using netlink\n"));
diff --git a/extra/net-snmp/snmpd.rc b/extra/net-snmp/snmpd.rc
new file mode 100644
index 000000000..9f1b83f64
--- /dev/null
+++ b/extra/net-snmp/snmpd.rc
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/snmpd`
+case "$1" in
+ start)
+ stat_busy "Starting Net-SNMP"
+ [ -z "$PID" ] && /usr/sbin/snmpd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/snmpd.pid
+ add_daemon snmpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Net-SNMP"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/snmpd.pid
+ rm_daemon snmpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/netcdf/PKGBUILD b/extra/netcdf/PKGBUILD
new file mode 100644
index 000000000..de7e3e913
--- /dev/null
+++ b/extra/netcdf/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 94910 2010-10-12 12:58:13Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=netcdf
+pkgver=4.1.1
+pkgrel=3
+pkgdesc="network Common Data Form interface for array-oriented data access and corresponding library"
+arch=("i686" "x86_64")
+url="http://www.unidata.ucar.edu/downloads/netcdf/index.jsp"
+depends=('gcc-libs' 'hdf5' 'gcc-fortran')
+options=('force' '!libtool' '!makeflags')
+license=('custom')
+source=(http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-${pkgver}.tar.gz)
+sha1sums=('6fece208825b978fc2240732f6f57927d71a0552')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-shared --enable-netcdf-4
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ install -m755 -d ${pkgdir}/usr/lib
+ install -m755 -d ${pkgdir}/usr/share/man
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/COPYRIGHT \
+ ${pkgdir}/usr/share/licenses/${pkgname}/COPYRIGHT
+}
diff --git a/extra/netkit-bsd-finger/LICENSE b/extra/netkit-bsd-finger/LICENSE
new file mode 100644
index 000000000..78254519a
--- /dev/null
+++ b/extra/netkit-bsd-finger/LICENSE
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 1989 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Tony Nardo of the Johns Hopkins University/Applied Physics Lab.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
diff --git a/extra/netkit-bsd-finger/PKGBUILD b/extra/netkit-bsd-finger/PKGBUILD
new file mode 100644
index 000000000..ea1987985
--- /dev/null
+++ b/extra/netkit-bsd-finger/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 78053 2010-04-19 08:47:06Z dgriffiths $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=netkit-bsd-finger
+pkgver=0.17
+pkgrel=5
+pkgdesc="bsd-finger ported to Linux"
+arch=('i686' 'x86_64')
+url="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
+license=('BSD')
+depends=('glibc' 'xinetd')
+backup=('etc/xinetd.d/finger')
+source=(ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/bsd-finger-${pkgver}.tar.gz finger.xinetd LICENSE)
+md5sums=('52bf281aac8814bf56cdc92f7661ee75' 'a8682004dc8dee356065162bde892b47'\
+ '5fc568418a0379fc3a358ed1c2523b44')
+
+build() {
+ cd ${srcdir}/bsd-finger-${pkgver}
+ install -d ${pkgdir}/usr/{bin,sbin} ${pkgdir}/usr/share/man/{man1,man8}
+ ./configure --prefix=/usr || return 1
+ sed -i 's@include <sys/time.h>@include <time.h>@' finger/lprint.c || return 1
+ sed -i 's@include <sys/time.h>@include <time.h>@' finger/sprint.c || return 1
+ make || return 1
+ make INSTALLROOT=${pkgdir} MANDIR=/usr/share/man install || return 1
+ install -D -m644 ${srcdir}/finger.xinetd ${pkgdir}/etc/xinetd.d/finger || return 1
+ install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/netkit-bsd-finger/finger.xinetd b/extra/netkit-bsd-finger/finger.xinetd
new file mode 100644
index 000000000..cc9a8b15d
--- /dev/null
+++ b/extra/netkit-bsd-finger/finger.xinetd
@@ -0,0 +1,8 @@
+service finger
+{
+ socket_type = stream
+ wait = no
+ user = nobody
+ server = /usr/sbin/in.fingerd
+ disable = yes
+}
diff --git a/extra/netpbm/PKGBUILD b/extra/netpbm/PKGBUILD
new file mode 100644
index 000000000..6b92f5ef5
--- /dev/null
+++ b/extra/netpbm/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 104760 2011-01-04 20:54:47Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=netpbm
+pkgver=10.47.24
+pkgrel=1
+pkgdesc="A toolkit for manipulation of graphic images"
+arch=('i686' 'x86_64')
+license=('custom' 'BSD' 'GPL' 'LGPL')
+url="http://netpbm.sourceforge.net/"
+depends=('perl' 'libjpeg' 'libpng' 'libtiff' 'libxml2')
+makedepends=('python2')
+options=('!makeflags')
+# Releases after 10.34 are available via SVN only.
+# Get Stable tarball here: http://netpbm.sourceforge.net/release.html#tarball
+# Get version number in version.mk
+# Get docs with: wget --recursive --relative -nH http://netpbm.sourceforge.net/doc/
+source=(ftp://ftp.archlinux.org/other/netpbm/${pkgname}-${pkgver}.tar.gz \
+ ftp://ftp.archlinux.org/other/netpbm/netpbm-doc-22Feb2009.tar.xz \
+ libpng-1.4.patch netpbm-CAN-2005-2471.patch \
+ netpbm-security-code.patch netpbm-security-scripts.patch)
+md5sums=('debf962e9a5531fd3e57143d38165eac' '48efce0093c5f242bce3072958fe88c3'\
+ '6a8319e77f2d41881ee11c86b78c51d0' '07ee863e6f951250e8d0a08243c828c7'\
+ 'fac4c9bedff9d90ac5a66e93d8c2eb33' 'cbb689129c82d16360d7f840b86789c7')
+sha1sums=('02a85bffb8d5771011c17067e07fded26a455ee9' 'dfeba9f9a5fe987d64db0aadb5ca8c1b20fcead2'\
+ 'ab2e67374871b8b6c0c8b69a24e3502e68487759' '456b76004622479f6ee81107c54b5211a1663a6a'\
+ '5af979e8fb7d3bbb7e731eed62326bb594bc91b3' '2ac31f714121e08e47af9337c6bbaab3cbfc5c75')
+
+build() {
+ cd "${srcdir}/stable"
+ patch -p1 < ../libpng-1.4.patch
+ patch -p1 < ../netpbm-CAN-2005-2471.patch
+ patch -p1 < ../netpbm-security-code.patch
+ patch -p1 < ../netpbm-security-scripts.patch
+ sed -i 's|#!/bin/env python|#!/bin/env python2|' buildtools/makeman
+ sed -i 's|@python|@python2|' buildtools/manpage.mk
+
+ cp config.mk.in config.mk
+ [ "${CARCH}" = 'x86_64' ] && echo 'CFLAGS_SHLIB = -fPIC' >> config.mk
+ echo "NETPBM_DOCURL = file://${srcdir}/doc" >> config.mk
+ echo 'TIFFLIB = libtiff.so' >> config.mk
+ echo 'JPEGLIB = libjpeg.so' >> config.mk
+ echo 'PNGLIB = libpng.so' >> config.mk
+ echo 'ZLIB = libz.so' >> config.mk
+
+ sed -i 's|PKGMANDIR = man|PKGMANDIR = share/man|' common.mk
+ sed -i 's|misc|share/netpbm|' common.mk
+ sed -i 's|/link|/lib|' lib/Makefile
+ sed -i 's|install.manweb install.man|install.man|' GNUmakefile
+ sed -i '/MANUALS1 = $(BINARIES) $(SCRIPTS)/a\
+ MANUALS1 += bmptoppm faxformat gemtopbm jpegtopnm mrf netpbm pamtotiff pamx pgmedge \\\
+ pgmnorm pgmoil pgmslice pnmarith pnmcut pnmdepth pnmenlarge pnmfile \\\
+ pnminterp pnmnoraw pnmscale pnmsplit pnmtofits pnmtojpeg pnmtopnm pnmtops \\\
+ pnmtotiff pnmtotiffcmyk ppmnorm ppmsvgalib ppmtojpeg ppmtotga ppmtouil \\\
+ tifftopnm vidtoppm \
+ MANUALS3 += libnetpbm_image libnetpbm_ug libpbm libpgm libpm libpnm libppm libsystem libtmpfile \
+ MANUALS5 += extendedopacity pfm' common.mk
+
+ make
+
+ # Generating useful man pages with html doc
+ cd "${srcdir}/doc"
+ make MAKEMAN="${srcdir}/stable/buildtools/makeman" USERGUIDE=. \
+ -f "${srcdir}/stable/buildtools/manpage.mk" manpages
+}
+
+package() {
+ cd "${srcdir}/stable"
+ make pkgdir="${pkgdir}/usr" install-run install-dev
+
+# Removing dummy man pages
+ rm "${pkgdir}"/usr/share/man/man{1,3,5}/*
+
+ cd "${srcdir}/doc"
+ make MAKEMAN="${srcdir}/stable/buildtools/makeman" MANDIR="${pkgdir}/usr/share/man" \
+ -f "${srcdir}/stable/buildtools/manpage.mk" installman
+
+# Replace obsolete utility
+ echo -e '#!/bin/sh\npamditherbw $@ | pamtopnm\n' > "${pkgdir}/usr/bin/pgmtopbm"
+
+# Licensing. Note that each program in the package has a separate license.
+ install -D -m644 "${srcdir}/stable/doc/copyright_summary" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/copyright_summary.txt"
+}
diff --git a/extra/netpbm/libpng-1.4.patch b/extra/netpbm/libpng-1.4.patch
new file mode 100644
index 000000000..c02ded734
--- /dev/null
+++ b/extra/netpbm/libpng-1.4.patch
@@ -0,0 +1,59 @@
+diff -Naur netpbm-orig/converter/other/pnmtopng.c netpbm/converter/other/pnmtopng.c
+--- netpbm-orig/converter/other/pnmtopng.c 2010-01-22 00:13:48.000000000 -0500
++++ netpbm/converter/other/pnmtopng.c 2010-01-22 00:21:33.000000000 -0500
+@@ -2641,7 +2641,7 @@
+ info_ptr->color_type == PNG_COLOR_TYPE_RGB) {
+ if (transparent > 0) {
+ info_ptr->valid |= PNG_INFO_tRNS;
+- info_ptr->trans_values =
++ info_ptr->trans_color =
+ xelToPngColor_16(transcolor, maxval, png_maxval);
+ }
+ } else {
+@@ -2653,10 +2653,10 @@
+ if (info_ptr->valid && PNG_INFO_tRNS)
+ pm_message("Transparent color {gray, red, green, blue} = "
+ "{%d, %d, %d, %d}",
+- info_ptr->trans_values.gray,
+- info_ptr->trans_values.red,
+- info_ptr->trans_values.green,
+- info_ptr->trans_values.blue);
++ info_ptr->trans_color.gray,
++ info_ptr->trans_color.red,
++ info_ptr->trans_color.green,
++ info_ptr->trans_color.blue);
+ else
+ pm_message("No transparent color");
+ }
+diff -Naur netpbm-orig/converter/other/pngtopnm.c netpbm/converter/other/pngtopnm.c
+--- netpbm-orig/converter/other/pngtopnm.c 2010-01-22 00:33:25.000000000 -0500
++++ netpbm/converter/other/pngtopnm.c 2010-01-22 00:39:21.000000000 -0500
+@@ -569,8 +569,8 @@
+ for (i = 0, foundGray = FALSE;
+ i < info_ptr->num_trans && !foundGray;
+ ++i) {
+- if (info_ptr->trans[i] != 0 &&
+- info_ptr->trans[i] != maxval) {
++ if (info_ptr->trans_alpha[i] != 0 &&
++ info_ptr->trans_alpha[i] != maxval) {
+ foundGray = TRUE;
+ }
+ }
+@@ -641,7 +641,7 @@
+ unsigned int i;
+ trans_mix = TRUE;
+ for (i = 0; i < info_ptr->num_trans; ++i)
+- if (info_ptr->trans[i] != 0 && info_ptr->trans[i] != 255) {
++ if (info_ptr->trans_alpha[i] != 0 && info_ptr->trans_alpha[i] != 255) {
+ trans_mix = FALSE;
+ break;
+ }
+@@ -1061,7 +1061,7 @@
+ setXel(&xelrow[col], fgColor, bgColor, alphaHandling,
+ (pngxP->info_ptr->valid & PNG_INFO_tRNS) &&
+ index < pngxP->info_ptr->num_trans ?
+- pngxP->info_ptr->trans[index] : maxval);
++ pngxP->info_ptr->trans_alpha[index] : maxval);
+ }
+ break;
+
diff --git a/extra/netpbm/netpbm-CAN-2005-2471.patch b/extra/netpbm/netpbm-CAN-2005-2471.patch
new file mode 100644
index 000000000..8cbbd6d40
--- /dev/null
+++ b/extra/netpbm/netpbm-CAN-2005-2471.patch
@@ -0,0 +1,16 @@
+--- netpbm-10.29/converter/other/pstopnm.c.CAN-2005-2471 2005-08-15 02:39:46.000000000 +0200
++++ netpbm-10.29/converter/other/pstopnm.c 2005-08-16 15:38:15.000000000 +0200
+@@ -711,11 +711,11 @@
+ "'%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s'",
+ ghostscriptProg, arg0,
+ deviceopt, outfileopt, gopt, ropt, "-q", "-dNOPAUSE",
+- "-dSAFER", "-");
++ "-dPARANOIDSAFER", "-");
+ }
+
+ execl(ghostscriptProg, arg0, deviceopt, outfileopt, gopt, ropt, "-q",
+- "-dNOPAUSE", "-dSAFER", "-", NULL);
++ "-dNOPAUSE", "-dPARANOIDSAFER", "-", NULL);
+
+ pm_error("execl() of Ghostscript ('%s') failed, errno=%d (%s)",
+ ghostscriptProg, errno, strerror(errno));
diff --git a/extra/netpbm/netpbm-security-code.patch b/extra/netpbm/netpbm-security-code.patch
new file mode 100644
index 000000000..e8fbc29c2
--- /dev/null
+++ b/extra/netpbm/netpbm-security-code.patch
@@ -0,0 +1,1817 @@
+diff -up netpbm-10.47.04/analyzer/pgmtexture.c.security netpbm-10.47.04/analyzer/pgmtexture.c
+--- netpbm-10.47.04/analyzer/pgmtexture.c.security 2009-10-21 13:38:55.000000000 +0200
++++ netpbm-10.47.04/analyzer/pgmtexture.c 2009-10-21 15:09:33.000000000 +0200
+@@ -79,6 +79,9 @@ vector (int nl, int nh)
+ {
+ float *v;
+
++ if(nh < nl)
++ pm_error("assert: h < l");
++ overflow_add(nh - nl, 1);
+ MALLOCARRAY(v, (unsigned) (nh - nl + 1));
+ if (v == NULL)
+ pm_error("Unable to allocate memory for a vector.");
+@@ -95,6 +98,9 @@ matrix (int nrl, int nrh, int ncl, int n
+ float **m;
+
+ /* allocate pointers to rows */
++ if(nrh < nrl)
++ pm_error("assert: h < l");
++ overflow_add(nrh - nrl, 1);
+ MALLOCARRAY(m, (unsigned) (nrh - nrl + 1));
+ if (m == NULL)
+ pm_error("Unable to allocate memory for a matrix.");
+@@ -102,6 +108,9 @@ matrix (int nrl, int nrh, int ncl, int n
+ m -= ncl;
+
+ /* allocate rows and set pointers to them */
++ if(nch < ncl)
++ pm_error("assert: h < l");
++ overflow_add(nch - ncl, 1);
+ for (i = nrl; i <= nrh; i++)
+ {
+ MALLOCARRAY(m[i], (unsigned) (nch - ncl + 1));
+diff -up netpbm-10.47.04/converter/other/gemtopnm.c.security netpbm-10.47.04/converter/other/gemtopnm.c
+--- netpbm-10.47.04/converter/other/gemtopnm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/gemtopnm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -106,6 +106,7 @@ main(argc, argv)
+
+ pnm_writepnminit( stdout, cols, rows, MAXVAL, type, 0 );
+
++ overflow_add(cols, padright);
+ {
+ /* allocate input row data structure */
+ int plane;
+diff -up netpbm-10.47.04/converter/other/jpegtopnm.c.security netpbm-10.47.04/converter/other/jpegtopnm.c
+--- netpbm-10.47.04/converter/other/jpegtopnm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/jpegtopnm.c 2009-10-21 15:54:30.000000000 +0200
+@@ -861,6 +861,8 @@ convertImage(FILE *
+ /* Calculate output image dimensions so we can allocate space */
+ jpeg_calc_output_dimensions(cinfoP);
+
++ overflow2(cinfoP->output_width, cinfoP->output_components);
++
+ /* Start decompressor */
+ jpeg_start_decompress(cinfoP);
+
+diff -up netpbm-10.47.04/converter/other/pbmtopgm.c.security netpbm-10.47.04/converter/other/pbmtopgm.c
+--- netpbm-10.47.04/converter/other/pbmtopgm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/pbmtopgm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -47,6 +47,7 @@ main(int argc, char *argv[]) {
+ "than the image height (%u rows)", height, rows);
+
+ outrow = pgm_allocrow(cols) ;
++ overflow2(width, height);
+ maxval = MIN(PGM_OVERALLMAXVAL, width*height);
+ pgm_writepgminit(stdout, cols, rows, maxval, 0) ;
+
+diff -up netpbm-10.47.04/converter/other/pngtopnm.c.security netpbm-10.47.04/converter/other/pngtopnm.c
+diff -up netpbm-10.47.04/converter/other/pnmtoddif.c.security netpbm-10.47.04/converter/other/pnmtoddif.c
+--- netpbm-10.47.04/converter/other/pnmtoddif.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/pnmtoddif.c 2009-10-21 15:09:33.000000000 +0200
+@@ -632,6 +632,7 @@ main(int argc, char *argv[]) {
+ switch (PNM_FORMAT_TYPE(format)) {
+ case PBM_TYPE:
+ ip.bits_per_pixel = 1;
++ overflow_add(cols, 7);
+ ip.bytes_per_line = (cols + 7) / 8;
+ ip.spectral = 2;
+ ip.components = 1;
+@@ -647,6 +648,7 @@ main(int argc, char *argv[]) {
+ ip.polarity = 2;
+ break;
+ case PPM_TYPE:
++ overflow2(cols, 3);
+ ip.bytes_per_line = 3 * cols;
+ ip.bits_per_pixel = 24;
+ ip.spectral = 5;
+diff -up netpbm-10.47.04/converter/other/pnmtojpeg.c.security netpbm-10.47.04/converter/other/pnmtojpeg.c
+--- netpbm-10.47.04/converter/other/pnmtojpeg.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/pnmtojpeg.c 2009-10-21 15:56:32.000000000 +0200
+@@ -605,7 +605,11 @@ read_scan_script(j_compress_ptr const ci
+ want JPOOL_PERMANENT.
+ */
+ const unsigned int scan_info_size = nscans * sizeof(jpeg_scan_info);
+- jpeg_scan_info * const scan_info =
++ const jpeg_scan_info * scan_info;
++
++ overflow2(nscans, sizeof(jpeg_scan_info));
++
++ scan_info =
+ (jpeg_scan_info *)
+ (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
+ scan_info_size);
+@@ -936,6 +940,8 @@ compute_rescaling_array(JSAMPLE ** const
+ const long half_maxval = maxval / 2;
+ long val;
+
++ overflow_add(maxval, 1);
++ overflow2(maxval+1, sizeof(JSAMPLE));
+ *rescale_p = (JSAMPLE *)
+ (cinfo.mem->alloc_small) ((j_common_ptr) &cinfo, JPOOL_IMAGE,
+ (size_t) (((long) maxval + 1L) *
+@@ -1014,6 +1020,7 @@ convert_scanlines(struct jpeg_compress_s
+ */
+
+ /* Allocate the libpnm output and compressor input buffers */
++ overflow2(cinfo_p->image_width, cinfo_p->input_components);
+ buffer = (*cinfo_p->mem->alloc_sarray)
+ ((j_common_ptr) cinfo_p, JPOOL_IMAGE,
+ (unsigned int) cinfo_p->image_width * cinfo_p->input_components,
+diff -up netpbm-10.47.04/converter/other/pnmtops.c.security netpbm-10.47.04/converter/other/pnmtops.c
+--- netpbm-10.47.04/converter/other/pnmtops.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/pnmtops.c 2009-10-21 15:09:33.000000000 +0200
+@@ -186,16 +186,20 @@ parseCommandLine(int argc, char ** argv,
+ cmdlineP->canturn = !noturn;
+ cmdlineP->showpage = !noshowpage;
+
++ overflow2(width, 72);
+ cmdlineP->width = width * 72;
++ overflow2(height, 72);
+ cmdlineP->height = height * 72;
+
+- if (imagewidthSpec)
++ if (imagewidthSpec) {
++ overflow2(imagewidth, 72);
+ cmdlineP->imagewidth = imagewidth * 72;
+- else
++ } else
+ cmdlineP->imagewidth = 0;
+- if (imageheightSpec)
++ if (imageheightSpec) {
++ overflow2(imageheight, 72);
+ cmdlineP->imageheight = imageheight * 72;
+- else
++ } else
+ cmdlineP->imageheight = 0;
+
+ if (!cmdlineP->psfilter &&
+diff -up netpbm-10.47.04/converter/other/pnmtorle.c.security netpbm-10.47.04/converter/other/pnmtorle.c
+--- netpbm-10.47.04/converter/other/pnmtorle.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/pnmtorle.c 2009-10-21 15:09:33.000000000 +0200
+@@ -19,6 +19,8 @@
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+ /*
+ * pnmtorle - A program which will convert pbmplus (ppm or pgm) images
+diff -up netpbm-10.47.04/converter/other/pnmtosgi.c.security netpbm-10.47.04/converter/other/pnmtosgi.c
+--- netpbm-10.47.04/converter/other/pnmtosgi.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/pnmtosgi.c 2009-10-21 15:09:33.000000000 +0200
+@@ -213,6 +213,22 @@ write_channels(cols, rows, channels, put
+ }
+ }
+
++static void *
++xmalloc2(int x, int y)
++{
++ void *mem;
++
++ overflow2(x,y);
++ if( x * y == 0 )
++ return NULL;
++
++ mem = malloc2(x, y);
++ if( mem == NULL )
++ pm_error("out of memory allocating %d bytes", x * y);
++ return mem;
++}
++
++
+ static void
+ put_big_short(short s)
+ {
+@@ -250,6 +266,7 @@ build_channels(FILE *ifp, int cols, int
+ #endif
+
+ if( storage != STORAGE_VERBATIM ) {
++ overflow2(channels, rows);
+ MALLOCARRAY_NOFAIL(table, channels * rows);
+ MALLOCARRAY_NOFAIL(rletemp, WORSTCOMPR(cols));
+ }
+@@ -303,6 +320,8 @@ compress(temp, row, rows, cols, chan_no,
+ break;
+ case STORAGE_RLE:
+ tabrow = chan_no * rows + row;
++ overflow2(chan_no, rows);
++ overflow_add(chan_no* rows, row);
+ len = rle_compress(temp, cols); /* writes result into rletemp */
+ channel[chan_no][row].length = len;
+ MALLOCARRAY(p, len);
+diff -up netpbm-10.47.04/converter/other/rletopnm.c.security netpbm-10.47.04/converter/other/rletopnm.c
+--- netpbm-10.47.04/converter/other/rletopnm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/rletopnm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -19,6 +19,8 @@
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+ /*
+ * rletopnm - A conversion program to convert from Utah's "rle" image format
+diff -up netpbm-10.47.04/converter/other/sgitopnm.c.security netpbm-10.47.04/converter/other/sgitopnm.c
+--- netpbm-10.47.04/converter/other/sgitopnm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/sgitopnm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -252,13 +252,17 @@ read_channels(ifp, head, table, func, oc
+
+ if (ochan < 0) {
+ maxchannel = (head->zsize < 3) ? head->zsize : 3;
++ overflow2(head->ysize, maxchannel);
+ MALLOCARRAY_NOFAIL(image, head->ysize * maxchannel);
+ } else {
+ maxchannel = ochan + 1;
+ MALLOCARRAY_NOFAIL(image, head->ysize);
+ }
+- if ( table )
++ if ( table ) {
++ overflow2(head->xsize, 2);
++ overflow_add(head->xsize*2, 2);
+ MALLOCARRAY_NOFAIL(temp, WORSTCOMPR(head->xsize));
++ }
+
+ for( channel = 0; channel < maxchannel; channel++ ) {
+ #ifdef DEBUG
+diff -up netpbm-10.47.04/converter/other/sirtopnm.c.security netpbm-10.47.04/converter/other/sirtopnm.c
+--- netpbm-10.47.04/converter/other/sirtopnm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/sirtopnm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -69,6 +69,7 @@ char* argv[];
+ }
+ break;
+ case PPM_TYPE:
++ overflow3(cols, rows, 3);
+ picsize = cols * rows * 3;
+ planesize = cols * rows;
+ if ( !( sirarray = (unsigned char*) malloc( picsize ) ) )
+diff -up netpbm-10.47.04/converter/other/tifftopnm.c.security netpbm-10.47.04/converter/other/tifftopnm.c
+--- netpbm-10.47.04/converter/other/tifftopnm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/tifftopnm.c 2009-10-21 15:49:29.000000000 +0200
+@@ -1291,7 +1291,9 @@ convertRasterByRows(pnmOut * const
+ if (scanbuf == NULL)
+ pm_error("can't allocate memory for scanline buffer");
+
+- MALLOCARRAY(samplebuf, cols * spp);
++ /* samplebuf is unsigned int * !!! */
++ samplebuf = (unsigned int *) malloc3(cols , sizeof(unsigned int) , spp);
++
+ if (samplebuf == NULL)
+ pm_error("can't allocate memory for row buffer");
+
+diff -up netpbm-10.47.04/converter/other/xwdtopnm.c.security netpbm-10.47.04/converter/other/xwdtopnm.c
+--- netpbm-10.47.04/converter/other/xwdtopnm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/other/xwdtopnm.c 2009-10-21 15:53:27.000000000 +0200
+@@ -209,6 +209,10 @@ processX10Header(X10WDFileHeader * cons
+ *colorsP = pnm_allocrow(2);
+ PNM_ASSIGN1((*colorsP)[0], 0);
+ PNM_ASSIGN1((*colorsP)[1], *maxvalP);
++ overflow_add(h10P->pixmap_width, 15);
++ if(h10P->pixmap_width < 0)
++ pm_error("assert: negative width");
++ overflow2((((h10P->pixmap_width + 15) / 16) * 16 - h10P->pixmap_width), 8);
+ *padrightP =
+ (((h10P->pixmap_width + 15) / 16) * 16 - h10P->pixmap_width) * 8;
+ *bits_per_itemP = 16;
+@@ -634,6 +638,7 @@ processX11Header(X11WDFileHeader * cons
+
+ *colsP = h11FixedP->pixmap_width;
+ *rowsP = h11FixedP->pixmap_height;
++ overflow2(h11FixedP->bytes_per_line, 8);
+ *padrightP =
+ h11FixedP->bytes_per_line * 8 -
+ h11FixedP->pixmap_width * h11FixedP->bits_per_pixel;
+diff -up netpbm-10.47.04/converter/pbm/icontopbm.c.security netpbm-10.47.04/converter/pbm/icontopbm.c
+--- netpbm-10.47.04/converter/pbm/icontopbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/icontopbm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -11,6 +11,7 @@
+ */
+
+ #include <string.h>
++#include <limits.h>
+
+ #include "nstring.h"
+ #include "pbm.h"
+@@ -87,6 +88,11 @@ ReadIconFile(FILE * const
+ if ( *heightP <= 0 )
+ pm_error( "invalid height (must be positive): %d", *heightP );
+
++ if ( *widthP > INT_MAX - 16 || *widthP < 0)
++ pm_error( "invalid width: %d", *widthP);
++
++ overflow2(*widthP + 16, *heightP);
++
+ data_length = BitmapSize( *widthP, *heightP );
+ *dataP = (short unsigned int *) malloc( data_length );
+ if ( *dataP == NULL )
+diff -up netpbm-10.47.04/converter/pbm/mdatopbm.c.security netpbm-10.47.04/converter/pbm/mdatopbm.c
+--- netpbm-10.47.04/converter/pbm/mdatopbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/mdatopbm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -245,10 +245,13 @@ main(int argc, char **argv) {
+ pm_readlittleshort(infile, &yy); nInCols = yy;
+ }
+
++ overflow2(nOutCols, 8);
+ nOutCols = 8 * nInCols;
+ nOutRows = nInRows;
+- if (bScale)
++ if (bScale) {
++ overflow2(nOutRows, 2);
+ nOutRows *= 2;
++ }
+
+ data = pbm_allocarray(nOutCols, nOutRows);
+
+diff -up netpbm-10.47.04/converter/pbm/mgrtopbm.c.security netpbm-10.47.04/converter/pbm/mgrtopbm.c
+--- netpbm-10.47.04/converter/pbm/mgrtopbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/mgrtopbm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -65,6 +65,8 @@ readMgrHeader(FILE * const ifP,
+ if (head.h_high < ' ' || head.l_high < ' ')
+ pm_error("Invalid width field in MGR header");
+
++ overflow_add(*colsP, pad);
++
+ *colsP = (((int)head.h_wide - ' ') << 6) + ((int)head.l_wide - ' ');
+ *rowsP = (((int)head.h_high - ' ') << 6) + ((int) head.l_high - ' ');
+ *padrightP = ( ( *colsP + pad - 1 ) / pad ) * pad - *colsP;
+diff -up netpbm-10.47.04/converter/pbm/pbmto10x.c.security netpbm-10.47.04/converter/pbm/pbmto10x.c
+--- netpbm-10.47.04/converter/pbm/pbmto10x.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmto10x.c 2009-10-21 15:09:33.000000000 +0200
+@@ -162,7 +162,7 @@ main(int argc, char * argv[]) {
+ res_60x72();
+
+ pm_close(ifp);
+- exit(0);
++ return 0;
+ }
+
+
+diff -up netpbm-10.47.04/converter/pbm/pbmto4425.c.security netpbm-10.47.04/converter/pbm/pbmto4425.c
+--- netpbm-10.47.04/converter/pbm/pbmto4425.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmto4425.c 2009-10-21 15:09:33.000000000 +0200
+@@ -2,6 +2,7 @@
+
+ #include "nstring.h"
+ #include "pbm.h"
++#include <string.h>
+
+ static char bit_table[2][3] = {
+ {1, 4, 0x10},
+@@ -160,7 +161,7 @@ main(int argc, char * argv[]) {
+ xres = vmap_width * 2;
+ yres = vmap_height * 3;
+
+- vmap = malloc(vmap_width * vmap_height * sizeof(char));
++ vmap = malloc3(vmap_width, vmap_height, sizeof(char));
+ if(vmap == NULL)
+ {
+ pm_error( "Cannot allocate memory" );
+diff -up netpbm-10.47.04/converter/pbm/pbmtoascii.c.security netpbm-10.47.04/converter/pbm/pbmtoascii.c
+--- netpbm-10.47.04/converter/pbm/pbmtoascii.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtoascii.c 2009-10-21 15:09:33.000000000 +0200
+@@ -115,9 +115,11 @@ char* argv[];
+ pm_usage( usage );
+
+ pbm_readpbminit( ifp, &cols, &rows, &format );
++ overflow_add(cols, gridx);
+ ccols = ( cols + gridx - 1 ) / gridx;
+ bitrow = pbm_allocrow( cols );
+ sig = (int*) pm_allocrow( ccols, sizeof(int) );
++ overflow_add(ccols, 1);
+ line = (char*) pm_allocrow( ccols + 1, sizeof(char) );
+
+ for ( row = 0; row < rows; row += gridy )
+diff -up netpbm-10.47.04/converter/pbm/pbmtocmuwm.c.security netpbm-10.47.04/converter/pbm/pbmtocmuwm.c
+diff -up netpbm-10.47.04/converter/pbm/pbmtogem.c.security netpbm-10.47.04/converter/pbm/pbmtogem.c
+--- netpbm-10.47.04/converter/pbm/pbmtogem.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtogem.c 2009-10-21 15:09:33.000000000 +0200
+@@ -123,6 +123,7 @@ putinit (rows, cols)
+ bitsperitem = 0;
+ bitshift = 7;
+ outcol = 0;
++ overflow_add(cols, 7);
+ outmax = (cols + 7) / 8;
+ outrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char));
+ lastrow = (unsigned char *) pm_allocrow (outmax, sizeof (unsigned char));
+diff -up netpbm-10.47.04/converter/pbm/pbmtogo.c.security netpbm-10.47.04/converter/pbm/pbmtogo.c
+--- netpbm-10.47.04/converter/pbm/pbmtogo.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtogo.c 2009-10-21 15:09:33.000000000 +0200
+@@ -158,6 +158,7 @@ main(int argc,
+ bitrow = pbm_allocrow(cols);
+
+ /* Round cols up to the nearest multiple of 8. */
++ overflow_add(cols, 7);
+ rucols = ( cols + 7 ) / 8;
+ bytesperrow = rucols; /* GraphOn uses bytes */
+ rucols = rucols * 8;
+diff -up netpbm-10.47.04/converter/pbm/pbmtoicon.c.security netpbm-10.47.04/converter/pbm/pbmtoicon.c
+--- netpbm-10.47.04/converter/pbm/pbmtoicon.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtoicon.c 2009-10-21 15:38:55.000000000 +0200
+@@ -114,6 +114,7 @@ writeIcon(FILE * const ifP,
+ unsigned char * bitrow;
+ unsigned int row;
+
++ overflow_add(cols, 15);
+ bitbuffer = pbm_allocrow_packed(cols + wordintSize);
+ bitrow = &bitbuffer[1];
+ bitbuffer[0] = 0;
+diff -up netpbm-10.47.04/converter/pbm/pbmtolj.c.security netpbm-10.47.04/converter/pbm/pbmtolj.c
+--- netpbm-10.47.04/converter/pbm/pbmtolj.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtolj.c 2009-10-21 15:09:33.000000000 +0200
+@@ -120,7 +120,11 @@ parseCommandLine(int argc, char ** argv,
+ static void
+ allocateBuffers(unsigned int const cols) {
+
++ overflow_add(cols, 8);
+ rowBufferSize = (cols + 7) / 8;
++ overflow_add(rowBufferSize, 128);
++ overflow_add(rowBufferSize, rowBufferSize+128);
++ overflow_add(rowBufferSize+10, rowBufferSize/8);
+ packBufferSize = rowBufferSize + (rowBufferSize + 127) / 128 + 1;
+ deltaBufferSize = rowBufferSize + rowBufferSize / 8 + 10;
+
+diff -up netpbm-10.47.04/converter/pbm/pbmtomacp.c.security netpbm-10.47.04/converter/pbm/pbmtomacp.c
+--- netpbm-10.47.04/converter/pbm/pbmtomacp.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtomacp.c 2009-10-21 15:09:33.000000000 +0200
+@@ -101,6 +101,7 @@ char *argv[];
+ if( !lflg )
+ left = 0;
+
++ overflow_add(left, MAX_COLS - 1);
+ if( rflg )
+ { if( right - left >= MAX_COLS )
+ right = left + MAX_COLS - 1;
+@@ -111,6 +112,8 @@ char *argv[];
+ if( !tflg )
+ top = 0;
+
++ overflow_add(top, MAX_LINES - 1);
++
+ if( bflg )
+ { if( bottom - top >= MAX_LINES )
+ bottom = top + MAX_LINES - 1;
+diff -up netpbm-10.47.04/converter/pbm/pbmtomda.c.security netpbm-10.47.04/converter/pbm/pbmtomda.c
+--- netpbm-10.47.04/converter/pbm/pbmtomda.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtomda.c 2009-10-21 15:09:33.000000000 +0200
+@@ -179,6 +179,7 @@ int main(int argc, char **argv)
+
+ nOutRowsUnrounded = bScale ? nInRows/2 : nInRows;
+
++ overflow_add(nOutRowsUnrounded, 3);
+ nOutRows = ((nOutRowsUnrounded + 3) / 4) * 4;
+ /* MDA wants rows a multiple of 4 */
+ nOutCols = nInCols / 8;
+diff -up netpbm-10.47.04/converter/pbm/pbmtomgr.c.security netpbm-10.47.04/converter/pbm/pbmtomgr.c
+diff -up netpbm-10.47.04/converter/pbm/pbmtoppa/pbm.c.security netpbm-10.47.04/converter/pbm/pbmtoppa/pbm.c
+--- netpbm-10.47.04/converter/pbm/pbmtoppa/pbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtoppa/pbm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -105,6 +105,7 @@ int pbm_readline(pbm_stat* pbm,unsigned
+ return 0;
+
+ case P4:
++ overflow_add(pbm->width, 7);
+ tmp=(pbm->width+7)/8;
+ tmp2=fread(data,1,tmp,pbm->fptr);
+ if(tmp2 == tmp)
+@@ -129,7 +130,8 @@ void pbm_unreadline (pbm_stat *pbm, void
+ return;
+
+ pbm->unread = 1;
+- pbm->revdata = malloc ((pbm->width+7)/8);
++ overflow_add(pbm->width, 7);
++ pbm->revdata = malloc((pbm->width+7)/8);
+ memcpy (pbm->revdata, data, (pbm->width+7)/8);
+ pbm->current_line--;
+ }
+diff -up netpbm-10.47.04/converter/pbm/pbmtoppa/pbmtoppa.c.security netpbm-10.47.04/converter/pbm/pbmtoppa/pbmtoppa.c
+--- netpbm-10.47.04/converter/pbm/pbmtoppa/pbmtoppa.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtoppa/pbmtoppa.c 2009-10-21 15:09:33.000000000 +0200
+@@ -441,6 +441,7 @@ main(int argc, char *argv[]) {
+ pm_error("main(): unrecognized parameter '%s'", argv[argn]);
+ }
+
++ overflow_add(Width, 7);
+ Pwidth=(Width+7)/8;
+ printer.fptr=out;
+
+diff -up netpbm-10.47.04/converter/pbm/pbmtoxbm.c.security netpbm-10.47.04/converter/pbm/pbmtoxbm.c
+--- netpbm-10.47.04/converter/pbm/pbmtoxbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtoxbm.c 2009-10-21 15:36:54.000000000 +0200
+@@ -335,6 +335,8 @@ convertRaster(FILE * const ifP,
+
+ unsigned char * bitrow;
+ unsigned int row;
++
++ overflow_add(cols, padright);
+
+ putinit(xbmVersion);
+
+diff -up netpbm-10.47.04/converter/pbm/pbmtoybm.c.security netpbm-10.47.04/converter/pbm/pbmtoybm.c
+--- netpbm-10.47.04/converter/pbm/pbmtoybm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtoybm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -45,6 +45,7 @@ main( argc, argv )
+ bitrow = pbm_allocrow( cols );
+
+ /* Compute padding to round cols up to the nearest multiple of 16. */
++ overflow_add(cols, 16);
+ padright = ( ( cols + 15 ) / 16 ) * 16 - cols;
+
+ putinit( cols, rows );
+diff -up netpbm-10.47.04/converter/pbm/pbmtozinc.c.security netpbm-10.47.04/converter/pbm/pbmtozinc.c
+--- netpbm-10.47.04/converter/pbm/pbmtozinc.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pbmtozinc.c 2009-10-21 15:09:33.000000000 +0200
+@@ -65,6 +65,7 @@ main(int argc, char * argv[]) {
+ bitrow = pbm_allocrow( cols );
+
+ /* Compute padding to round cols up to the nearest multiple of 16. */
++ overflow_add(cols, 16);
+ padright = ( ( cols + 15 ) / 16 ) * 16 - cols;
+
+ printf( "USHORT %s[] = {\n",name);
+diff -up netpbm-10.47.04/converter/pbm/pktopbm.c.security netpbm-10.47.04/converter/pbm/pktopbm.c
+--- netpbm-10.47.04/converter/pbm/pktopbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/pktopbm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -277,6 +277,7 @@ main(int argc, char *argv[]) {
+ if (flagbyte == 7) { /* long form preamble */
+ integer packetlength = get32() ; /* character packet length */
+ car = get32() ; /* character number */
++ overflow_add(packetlength, pktopbm_pkloc);
+ endofpacket = packetlength + pktopbm_pkloc;
+ /* calculate end of packet */
+ if ((car >= MAXPKCHAR) || !filename[car]) {
+diff -up netpbm-10.47.04/converter/pbm/thinkjettopbm.l.security netpbm-10.47.04/converter/pbm/thinkjettopbm.l
+--- netpbm-10.47.04/converter/pbm/thinkjettopbm.l.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/thinkjettopbm.l 2009-10-21 15:09:33.000000000 +0200
+@@ -107,7 +107,9 @@ DIG [0-9]
+ <RASTERMODE>\033\*b{DIG}+W {
+ int l;
+ if (rowCount >= rowCapacity) {
++ overflow_add(rowCapacity, 100);
+ rowCapacity += 100;
++ overflow2(rowCapacity, sizeof *rows);
+ rows = realloc (rows, rowCapacity * sizeof *rows);
+ if (rows == NULL)
+ pm_error ("Out of memory.");
+@@ -217,6 +219,8 @@ yywrap (void)
+ /*
+ * Quite simple since ThinkJet bit arrangement matches PBM
+ */
++
++ overflow2(maxRowLength, 8);
+ pbm_writepbminit(stdout, maxRowLength*8, rowCount, 0);
+
+ packed_bitrow = malloc(maxRowLength);
+diff -up netpbm-10.47.04/converter/pbm/ybmtopbm.c.security netpbm-10.47.04/converter/pbm/ybmtopbm.c
+--- netpbm-10.47.04/converter/pbm/ybmtopbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/pbm/ybmtopbm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -88,6 +88,7 @@ getinit( file, colsP, rowsP, depthP, pad
+ pm_error( "EOF / read error" );
+
+ *depthP = 1;
++ overflow_add(*colsP, 15);
+ *padrightP = ( ( *colsP + 15 ) / 16 ) * 16 - *colsP;
+ bitsperitem = 0;
+ }
+diff -up netpbm-10.47.04/converter/pgm/lispmtopgm.c.security netpbm-10.47.04/converter/pgm/lispmtopgm.c
+--- netpbm-10.47.04/converter/pgm/lispmtopgm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/pgm/lispmtopgm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -58,6 +58,7 @@ main( argc, argv )
+ pm_error( "depth (%d bits) is too large", depth);
+
+ pgm_writepgminit( stdout, cols, rows, (gray) maxval, 0 );
++ overflow_add(cols, 7);
+ grayrow = pgm_allocrow( ( cols + 7 ) / 8 * 8 );
+
+ for ( row = 0; row < rows; ++row )
+@@ -102,7 +103,9 @@ getinit( file, colsP, rowsP, depthP, pad
+
+ if ( *depthP == 0 )
+ *depthP = 1; /* very old file */
+-
++
++ overflow_add((int)colsP, 31);
++
+ *padrightP = ( ( *colsP + 31 ) / 32 ) * 32 - *colsP;
+
+ if ( *colsP != (cols_32 - *padrightP) ) {
+diff -up netpbm-10.47.04/converter/pgm/psidtopgm.c.security netpbm-10.47.04/converter/pgm/psidtopgm.c
+--- netpbm-10.47.04/converter/pgm/psidtopgm.c.security 2009-10-21 13:39:06.000000000 +0200
++++ netpbm-10.47.04/converter/pgm/psidtopgm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -78,6 +78,7 @@ main(int argc,
+ pm_error("bits/sample (%d) is too large.", bitspersample);
+
+ pgm_writepgminit(stdout, cols, rows, maxval, 0);
++ overflow_add(cols, 7);
+ grayrow = pgm_allocrow((cols + 7) / 8 * 8);
+ for (row = 0; row < rows; ++row) {
+ unsigned int col;
+diff -up netpbm-10.47.04/converter/ppm/ilbmtoppm.c.security netpbm-10.47.04/converter/ppm/ilbmtoppm.c
+--- netpbm-10.47.04/converter/ppm/ilbmtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ilbmtoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -594,6 +594,7 @@ decode_row(FILE * const ifP,
+ rawtype *chp;
+
+ cols = bmhdP->w;
++ overflow_add(cols, 15);
+ bytes = RowBytes(cols);
+ for( plane = 0; plane < nPlanes; plane++ ) {
+ int mask;
+@@ -681,6 +682,23 @@ decode_mask(FILE * const ifP,
+ Multipalette handling
+ ****************************************************************************/
+
++static void *
++xmalloc2(x, y)
++ int x;
++ int y;
++{
++ void *mem;
++
++ overflow2(x,y);
++ if( x * y == 0 )
++ return NULL;
++
++ mem = malloc2(x,y);
++ if( mem == NULL )
++ pm_error("out of memory allocating %d bytes", x * y);
++ return mem;
++}
++
+
+ static void
+ multi_adjust(cmap, row, palchange)
+@@ -1300,6 +1318,9 @@ dcol_to_ppm(FILE * const ifP,
+ if( redmaxval != maxval || greenmaxval != maxval || bluemaxval != maxval )
+ pm_message("scaling colors to %d bits", pm_maxvaltobits(maxval));
+
++ overflow_add(redmaxval, 1);
++ overflow_add(greenmaxval, 1);
++ overflow_add(bluemaxval, 1);
+ MALLOCARRAY_NOFAIL(redtable, redmaxval +1);
+ MALLOCARRAY_NOFAIL(greentable, greenmaxval +1);
+ MALLOCARRAY_NOFAIL(bluetable, bluemaxval +1);
+@@ -1729,7 +1750,9 @@ PCHG_ConvertSmall(PCHG, cmap, mask, data
+ ChangeCount32 = *data++;
+ datasize -= 2;
+
++ overflow_add(ChangeCount16, ChangeCount32);
+ changes = ChangeCount16 + ChangeCount32;
++ overflow_add(changes, 1);
+ for( i = 0; i < changes; i++ ) {
+ if( totalchanges >= PCHG->TotalChanges ) goto fail;
+ if( datasize < 2 ) goto fail;
+@@ -1994,6 +2017,9 @@ read_pchg(FILE * const ifp,
+ cmap->mp_change[i] = NULL;
+ if( PCHG.StartLine < 0 ) {
+ int nch;
++ if(PCHG.MaxReg < PCHG.MinReg)
++ pm_error("assert: MinReg > MaxReg");
++ overflow_add(PCHG.MaxReg-PCHG.MinReg, 2);
+ nch = PCHG.MaxReg - PCHG.MinReg +1;
+ MALLOCARRAY_NOFAIL(cmap->mp_init, nch + 1);
+ for( i = 0; i < nch; i++ )
+@@ -2070,6 +2096,7 @@ process_body( FILE * const ifp,
+ if( typeid == ID_ILBM ) {
+ int isdeep;
+
++ overflow_add(bmhdP->w, 15);
+ MALLOCARRAY_NOFAIL(ilbmrow, RowBytes(bmhdP->w));
+ *viewportmodesP |= fakeviewport; /* -isham/-isehb */
+
+diff -up netpbm-10.47.04/converter/ppm/imgtoppm.c.security netpbm-10.47.04/converter/ppm/imgtoppm.c
+--- netpbm-10.47.04/converter/ppm/imgtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/imgtoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -84,6 +84,7 @@ main(int argc, char ** argv) {
+ len = atoi((char*) buf );
+ if ( fread( buf, len, 1, ifp ) != 1 )
+ pm_error( "bad colormap buf" );
++ overflow2(cmaplen, 3);
+ if ( cmaplen * 3 != len )
+ {
+ pm_message(
+@@ -105,6 +106,7 @@ main(int argc, char ** argv) {
+ pm_error( "bad pixel data header" );
+ buf[8] = '\0';
+ len = atoi((char*) buf );
++ overflow2(cols, rows);
+ if ( len != cols * rows )
+ pm_message(
+ "pixel data length (%d) does not match image size (%d)",
+diff -up netpbm-10.47.04/converter/ppm/Makefile.security netpbm-10.47.04/converter/ppm/Makefile
+--- netpbm-10.47.04/converter/ppm/Makefile.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/Makefile 2009-10-21 15:09:33.000000000 +0200
+@@ -11,7 +11,7 @@ SUBDIRS = hpcdtoppm ppmtompeg
+
+ PORTBINARIES = 411toppm eyuvtoppm gouldtoppm ilbmtoppm imgtoppm \
+ leaftoppm mtvtoppm neotoppm \
+- pcxtoppm pc1toppm pi1toppm picttoppm pjtoppm \
++ pcxtoppm pc1toppm pi1toppm pjtoppm \
+ ppmtoacad ppmtoarbtxt \
+ ppmtobmp ppmtoeyuv ppmtogif ppmtoicr ppmtoilbm \
+ ppmtoleaf ppmtolj ppmtomitsu ppmtoneo \
+diff -up netpbm-10.47.04/converter/ppm/pcxtoppm.c.security netpbm-10.47.04/converter/ppm/pcxtoppm.c
+--- netpbm-10.47.04/converter/ppm/pcxtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/pcxtoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -409,6 +409,7 @@ pcx_planes_to_pixels(pixels, bitplanes,
+ /*
+ * clear the pixel buffer
+ */
++ overflow2(bytesperline, 8);
+ npixels = (bytesperline * 8) / bitsperpixel;
+ p = pixels;
+ while (--npixels >= 0)
+@@ -470,6 +471,7 @@ pcx_16col_to_ppm(FILE * const ifP,
+ }
+
+ /* BytesPerLine should be >= BitsPerPixel * cols / 8 */
++ overflow2(BytesPerLine, 8);
+ rawcols = BytesPerLine * 8 / BitsPerPixel;
+ if (headerCols > rawcols) {
+ pm_message("warning - BytesPerLine = %d, "
+diff -up netpbm-10.47.04/converter/ppm/picttoppm.c.security netpbm-10.47.04/converter/ppm/picttoppm.c
+--- netpbm-10.47.04/converter/ppm/picttoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/picttoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -1,3 +1,5 @@
++#error "Unfixable. Don't ship me"
++
+ /*
+ * picttoppm.c -- convert a MacIntosh PICT file to PPM format.
+ *
+diff -up netpbm-10.47.04/converter/ppm/pjtoppm.c.security netpbm-10.47.04/converter/ppm/pjtoppm.c
+--- netpbm-10.47.04/converter/ppm/pjtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/pjtoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -127,19 +127,21 @@ main(argc, argv)
+ case 'V': /* send plane */
+ case 'W': /* send last plane */
+ if (rows == -1 || r >= rows || image == NULL) {
+- if (rows == -1 || r >= rows)
++ if (rows == -1 || r >= rows) {
++ overflow_add(rows, 100);
+ rows += 100;
++ }
+ if (image == NULL) {
+- MALLOCARRAY(image, rows * planes);
+- MALLOCARRAY(imlen, rows * planes);
++ image = (unsigned char **)
++ malloc3(rows , planes , sizeof(unsigned char *));
++ imlen = (int *) malloc3(rows , planes, sizeof(int));
+ }
+ else {
++ overflow2(rows,planes);
+ image = (unsigned char **)
+- realloc(image,
+- rows * planes *
++ realloc2(image, rows * planes,
+ sizeof(unsigned char *));
+- imlen = (int *)
+- realloc(imlen, rows * planes * sizeof(int));
++ imlen = (int *) realloc2(imlen, rows * planes, sizeof(int));
+ }
+ }
+ if (image == NULL || imlen == NULL)
+@@ -212,8 +214,10 @@ main(argc, argv)
+ for (i = 0, c = 0; c < imlen[p + r * planes]; c += 2)
+ for (cmd = image[p + r * planes][c],
+ val = image[p + r * planes][c+1];
+- cmd >= 0 && i < newcols; cmd--, i++)
++ cmd >= 0 && i < newcols; cmd--, i++) {
+ buf[i] = val;
++ overflow_add(i, 1);
++ }
+ cols = cols > i ? cols : i;
+ free(image[p + r * planes]);
+ /*
+@@ -224,6 +228,7 @@ main(argc, argv)
+ image[p + r * planes] = (unsigned char *) realloc(buf, i);
+ }
+ }
++ overflow2(cols, 8);
+ cols *= 8;
+ }
+
+diff -up netpbm-10.47.04/converter/ppm/ppmtoeyuv.c.security netpbm-10.47.04/converter/ppm/ppmtoeyuv.c
+--- netpbm-10.47.04/converter/ppm/ppmtoeyuv.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtoeyuv.c 2009-10-21 15:09:33.000000000 +0200
+@@ -114,6 +114,7 @@ create_multiplication_tables(const pixva
+
+ int index;
+
++ overflow_add(maxval, 1);
+ MALLOCARRAY_NOFAIL(mult299 , maxval+1);
+ MALLOCARRAY_NOFAIL(mult587 , maxval+1);
+ MALLOCARRAY_NOFAIL(mult114 , maxval+1);
+diff -up netpbm-10.47.04/converter/ppm/ppmtoicr.c.security netpbm-10.47.04/converter/ppm/ppmtoicr.c
+--- netpbm-10.47.04/converter/ppm/ppmtoicr.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtoicr.c 2009-10-21 15:09:33.000000000 +0200
+@@ -169,7 +169,7 @@ char* argv[];
+
+ if (rleflag) {
+ pm_message("sending run-length encoded picture data ..." );
+- testimage = (char*) malloc(rows*cols);
++ testimage = (char*) malloc2(rows, cols);
+ p = testimage;
+ for (i=0; i<rows; i++)
+ for (j=0; j<cols; j++)
+diff -up netpbm-10.47.04/converter/ppm/ppmtoilbm.c.security netpbm-10.47.04/converter/ppm/ppmtoilbm.c
+--- netpbm-10.47.04/converter/ppm/ppmtoilbm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtoilbm.c 2009-10-21 15:47:50.000000000 +0200
+@@ -1214,6 +1214,7 @@ ppm_to_rgb8(ifP, cols, rows, maxval)
+
+ maskmethod = 0; /* no masking - RGB8 uses genlock bits */
+ compmethod = 4; /* RGB8 files are always compressed */
++ overflow2(cols, 4);
+ MALLOCARRAY_NOFAIL(compr_row, cols * 4);
+
+ if( maxval != 255 ) {
+@@ -1302,6 +1303,7 @@ ppm_to_rgbn(ifP, cols, rows, maxval)
+
+ maskmethod = 0; /* no masking - RGBN uses genlock bits */
+ compmethod = 4; /* RGBN files are always compressed */
++ overflow2(cols, 2);
+ MALLOCARRAY_NOFAIL(compr_row, cols * 2);
+
+ if( maxval != 15 ) {
+@@ -1779,6 +1781,7 @@ make_val_table(oldmaxval, newmaxval)
+ unsigned int i;
+ int * table;
+
++ overflow_add(oldmaxval, 1);
+ MALLOCARRAY_NOFAIL(table, oldmaxval + 1);
+ for (i = 0; i <= oldmaxval; ++i)
+ table[i] = ROUNDDIV(i * newmaxval, oldmaxval);
+@@ -2283,8 +2286,11 @@ main(int argc, char ** argv) {
+ MALLOCARRAY_NOFAIL(coded_rowbuf, RowBytes(cols));
+ for (i = 0; i < RowBytes(cols); ++i)
+ coded_rowbuf[i] = 0;
+- if (DO_COMPRESS)
++ if (DO_COMPRESS) {
++ overflow2(cols,2);
++ overflow_add(cols*2,2);
+ MALLOCARRAY_NOFAIL(compr_rowbuf, WORSTCOMPR(RowBytes(cols)));
++ }
+ }
+
+ switch (mode) {
+diff -up netpbm-10.47.04/converter/ppm/ppmtolj.c.security netpbm-10.47.04/converter/ppm/ppmtolj.c
+--- netpbm-10.47.04/converter/ppm/ppmtolj.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtolj.c 2009-10-21 15:09:33.000000000 +0200
+@@ -181,7 +181,8 @@ int main(int argc, char *argv[]) {
+
+ ppm_readppminit( ifp, &cols, &rows, &maxval, &format );
+ pixelrow = ppm_allocrow( cols );
+-
++
++ overflow2(cols, 6);
+ obuf = (unsigned char *) pm_allocrow(cols * 3, sizeof(unsigned char));
+ cbuf = (unsigned char *) pm_allocrow(cols * 6, sizeof(unsigned char));
+ if (mode == C_TRANS_MODE_DELTA)
+diff -up netpbm-10.47.04/converter/ppm/ppmtomitsu.c.security netpbm-10.47.04/converter/ppm/ppmtomitsu.c
+--- netpbm-10.47.04/converter/ppm/ppmtomitsu.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtomitsu.c 2009-10-21 15:48:30.000000000 +0200
+@@ -685,6 +685,8 @@ main(int argc, char * argv[]) {
+ medias = MSize_User;
+
+ if (dpi300) {
++ overflow2(medias.maxcols, 2);
++ overflow2(medias.maxrows, 2);
+ medias.maxcols *= 2;
+ medias.maxrows *= 2;
+ }
+diff -up netpbm-10.47.04/converter/ppm/ppmtopcx.c.security netpbm-10.47.04/converter/ppm/ppmtopcx.c
+--- netpbm-10.47.04/converter/ppm/ppmtopcx.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtopcx.c 2009-10-21 15:09:33.000000000 +0200
+@@ -419,6 +419,8 @@ ppmTo16ColorPcx(pixel ** cons
+ else Planes = 1;
+ }
+ }
++ overflow2(BitsPerPixel, cols);
++ overflow_add(BitsPerPixel * cols, 7);
+ BytesPerLine = ((cols * BitsPerPixel) + 7) / 8;
+ MALLOCARRAY_NOFAIL(indexRow, cols);
+ MALLOCARRAY_NOFAIL(planesrow, BytesPerLine);
+diff -up netpbm-10.47.04/converter/ppm/ppmtopict.c.security netpbm-10.47.04/converter/ppm/ppmtopict.c
+--- netpbm-10.47.04/converter/ppm/ppmtopict.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtopict.c 2009-10-21 15:09:33.000000000 +0200
+@@ -245,6 +245,8 @@ char *argv[];
+ putShort(stdout, 0); /* mode */
+
+ /* Finally, write out the data. */
++ overflow_add(cols/MAX_COUNT, 1);
++ overflow_add(cols, cols/MAX_COUNT+1);
+ packed = (char*) malloc((unsigned)(cols+cols/MAX_COUNT+1));
+ oc = 0;
+ for (row = 0; row < rows; row++)
+diff -up netpbm-10.47.04/converter/ppm/ppmtopj.c.security netpbm-10.47.04/converter/ppm/ppmtopj.c
+--- netpbm-10.47.04/converter/ppm/ppmtopj.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtopj.c 2009-10-21 15:09:33.000000000 +0200
+@@ -179,6 +179,7 @@ char *argv[];
+ pixels = ppm_readppm( ifp, &cols, &rows, &maxval );
+
+ pm_close( ifp );
++ overflow2(cols,2);
+ obuf = (unsigned char *) pm_allocrow(cols, sizeof(unsigned char));
+ cbuf = (unsigned char *) pm_allocrow(cols * 2, sizeof(unsigned char));
+
+diff -up netpbm-10.47.04/converter/ppm/ppmtopjxl.c.security netpbm-10.47.04/converter/ppm/ppmtopjxl.c
+--- netpbm-10.47.04/converter/ppm/ppmtopjxl.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtopjxl.c 2009-10-21 15:43:31.000000000 +0200
+@@ -276,6 +276,8 @@ main(int argc, const char * argv[]) {
+ pm_error("image too large; reduce with ppmscale");
+ if (maxval > PCL_MAXVAL)
+ pm_error("color range too large; reduce with ppmcscale");
++ if (cols < 0 || rows < 0)
++ pm_error("negative size is not possible");
+
+ /* Figure out the colormap. */
+ pm_message("Computing colormap...");
+@@ -296,6 +298,8 @@ main(int argc, const char * argv[]) {
+ case 0: /* direct mode (no palette) */
+ bpp = bitsperpixel(maxval); /* bits per pixel */
+ bpg = bpp; bpb = bpp;
++ overflow2(bpp, 3);
++ overflow_add(bpp*3, 7);
+ bpp = (bpp*3+7)>>3; /* bytes per pixel now */
+ bpr = (bpp<<3)-bpg-bpb;
+ bpp *= cols; /* bytes per row now */
+@@ -305,9 +309,13 @@ main(int argc, const char * argv[]) {
+ case 3: case 7: pclindex++;
+ default:
+ bpp = 8/pclindex;
++ overflow_add(cols, bpp);
++ if(bpp == 0)
++ pm_error("assert: no bpp");
+ bpp = (cols+bpp-1)/bpp; /* bytes per row */
+ }
+ }
++ overflow2(bpp,2);
+ inrow = (char *)malloc((unsigned)bpp);
+ outrow = (char *)malloc((unsigned)bpp*2);
+ runcnt = (signed char *)malloc((unsigned)bpp);
+diff -up netpbm-10.47.04/converter/ppm/ppmtowinicon.c.security netpbm-10.47.04/converter/ppm/ppmtowinicon.c
+--- netpbm-10.47.04/converter/ppm/ppmtowinicon.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtowinicon.c 2009-10-21 15:44:54.000000000 +0200
+@@ -12,6 +12,7 @@
+
+ #include <math.h>
+ #include <string.h>
++#include <stdlib.h>
+
+ #include "pm_c_util.h"
+ #include "winico.h"
+@@ -219,6 +220,7 @@ createAndBitmap (gray ** const ba, int c
+ MALLOCARRAY_NOFAIL(rowData, rows);
+ icBitmap->xBytes = xBytes;
+ icBitmap->data = rowData;
++ overflow2(xBytes, rows);
+ icBitmap->size = xBytes * rows;
+ for (y=0;y<rows;y++) {
+ u1 * row;
+@@ -347,6 +349,7 @@ create4Bitmap (pixel ** const pa, int co
+ MALLOCARRAY_NOFAIL(rowData, rows);
+ icBitmap->xBytes = xBytes;
+ icBitmap->data = rowData;
++ overflow2(xBytes, rows);
+ icBitmap->size = xBytes * rows;
+
+ for (y=0;y<rows;y++) {
+@@ -407,6 +410,7 @@ create8Bitmap (pixel ** const pa, int co
+ MALLOCARRAY_NOFAIL(rowData, rows);
+ icBitmap->xBytes = xBytes;
+ icBitmap->data = rowData;
++ overflow2(xBytes, rows);
+ icBitmap->size = xBytes * rows;
+
+ for (y=0;y<rows;y++) {
+@@ -714,6 +718,10 @@ addEntryToIcon(MS_Ico const MSIcon
+ entry->bitcount = bpp;
+ entry->ih = createInfoHeader(entry, xorBitmap, andBitmap);
+ entry->colors = palette->colors;
++ overflow2(4, entry->color_count);
++ overflow_add(xorBitmap->size, andBitmap->size);
++ overflow_add(xorBitmap->size + andBitmap->size, 40);
++ overflow_add(xorBitmap->size + andBitmap->size + 40, 4 * entry->color_count);
+ entry->size_in_bytes =
+ xorBitmap->size + andBitmap->size + 40 + (4 * entry->color_count);
+ if (verbose)
+diff -up netpbm-10.47.04/converter/ppm/ppmtoxpm.c.security netpbm-10.47.04/converter/ppm/ppmtoxpm.c
+--- netpbm-10.47.04/converter/ppm/ppmtoxpm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ppmtoxpm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -197,6 +197,7 @@ genNumstr(unsigned int const input, int
+ unsigned int i;
+
+ /* Allocate memory for printed number. Abort if error. */
++ overflow_add(digits, 1);
+ if (!(str = (char *) malloc(digits + 1)))
+ pm_error("out of memory");
+
+@@ -314,6 +315,7 @@ genCmap(colorhist_vector const chv,
+ unsigned int charsPerPixel;
+ unsigned int xpmMaxval;
+
++ if (includeTransparent) overflow_add(ncolors, 1);
+ MALLOCARRAY(cmap, cmapSize);
+ if (cmapP == NULL)
+ pm_error("Out of memory allocating %u bytes for a color map.",
+diff -up netpbm-10.47.04/converter/ppm/qrttoppm.c.security netpbm-10.47.04/converter/ppm/qrttoppm.c
+--- netpbm-10.47.04/converter/ppm/qrttoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/qrttoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -46,7 +46,7 @@ main( argc, argv )
+
+ ppm_writeppminit( stdout, cols, rows, maxval, 0 );
+ pixelrow = ppm_allocrow( cols );
+- buf = (unsigned char *) malloc( 3 * cols );
++ buf = (unsigned char *) malloc2( 3 , cols );
+ if ( buf == (unsigned char *) 0 )
+ pm_error( "out of memory" );
+
+diff -up netpbm-10.47.04/converter/ppm/sldtoppm.c.security netpbm-10.47.04/converter/ppm/sldtoppm.c
+--- netpbm-10.47.04/converter/ppm/sldtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/sldtoppm.c 2009-10-21 15:44:11.000000000 +0200
+@@ -455,6 +455,8 @@ slider(slvecfn slvec,
+
+ /* Allocate image buffer and clear it to black. */
+
++ overflow_add(ixdots,1);
++ overflow_add(iydots,1);
+ pixels = ppm_allocarray(pixcols = ixdots + 1, pixrows = iydots + 1);
+ PPM_ASSIGN(rgbcolor, 0, 0, 0);
+ ppmd_filledrectangle(pixels, pixcols, pixrows, pixmaxval, 0, 0,
+diff -up netpbm-10.47.04/converter/ppm/ximtoppm.c.security netpbm-10.47.04/converter/ppm/ximtoppm.c
+--- netpbm-10.47.04/converter/ppm/ximtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/ximtoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -117,6 +117,7 @@ ReadXimHeader(FILE * const in_fp,
+ header->bits_channel = atoi(a_head.bits_per_channel);
+ header->alpha_flag = atoi(a_head.alpha_channel);
+ if (strlen(a_head.author)) {
++ overflow_add(strlen(a_head.author),1);
+ if (!(header->author = calloc((unsigned int)strlen(a_head.author)+1,
+ 1))) {
+ pm_message("ReadXimHeader: can't calloc author string" );
+@@ -126,6 +127,7 @@ ReadXimHeader(FILE * const in_fp,
+ strncpy(header->author, a_head.author, strlen(a_head.author));
+ }
+ if (strlen(a_head.date)) {
++ overflow_add(strlen(a_head.date),1);
+ if (!(header->date =calloc((unsigned int)strlen(a_head.date)+1,1))){
+ pm_message("ReadXimHeader: can't calloc date string" );
+ return(0);
+@@ -134,6 +136,7 @@ ReadXimHeader(FILE * const in_fp,
+ strncpy(header->date, a_head.date, strlen(a_head.date));
+ }
+ if (strlen(a_head.program)) {
++ overflow_add(strlen(a_head.program),1);
+ if (!(header->program = calloc(
+ (unsigned int)strlen(a_head.program) + 1, 1))) {
+ pm_message("ReadXimHeader: can't calloc program string" );
+@@ -160,6 +163,7 @@ ReadXimHeader(FILE * const in_fp,
+ if (header->nchannels == 3 && header->bits_channel == 8)
+ header->ncolors = 0;
+ else if (header->nchannels == 1 && header->bits_channel == 8) {
++ overflow2(header->ncolors, sizeof(Color));
+ header->colors = (Color *)calloc((unsigned int)header->ncolors,
+ sizeof(Color));
+ if (header->colors == NULL) {
+diff -up netpbm-10.47.04/converter/ppm/xpmtoppm.c.security netpbm-10.47.04/converter/ppm/xpmtoppm.c
+--- netpbm-10.47.04/converter/ppm/xpmtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/xpmtoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -701,6 +701,7 @@ ReadXPMFile(FILE * const stream, int * c
+ &ncolors, colorsP, &ptab);
+ *transparentP = -1; /* No transparency in version 1 */
+ }
++ overflow2(*widthP, *heightP);
+ totalpixels = *widthP * *heightP;
+ MALLOCARRAY(*dataP, totalpixels);
+ if (*dataP == NULL)
+diff -up netpbm-10.47.04/converter/ppm/yuvtoppm.c.security netpbm-10.47.04/converter/ppm/yuvtoppm.c
+--- netpbm-10.47.04/converter/ppm/yuvtoppm.c.security 2009-10-21 13:39:10.000000000 +0200
++++ netpbm-10.47.04/converter/ppm/yuvtoppm.c 2009-10-21 15:09:33.000000000 +0200
+@@ -72,6 +72,7 @@ main(argc, argv)
+
+ ppm_writeppminit(stdout, cols, rows, (pixval) 255, 0);
+ pixrow = ppm_allocrow(cols);
++ overflow_add(cols, 1);
+ MALLOCARRAY(yuvbuf, (cols+1)/2);
+ if (yuvbuf == NULL)
+ pm_error("Unable to allocate YUV buffer for %d columns.", cols);
+diff -up netpbm-10.47.04/editor/pamcut.c.security netpbm-10.47.04/editor/pamcut.c
+--- netpbm-10.47.04/editor/pamcut.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pamcut.c 2009-10-21 15:29:36.000000000 +0200
+@@ -655,6 +655,8 @@ cutOneImage(FILE * const ifP
+
+ outpam = inpam; /* Initial value -- most fields should be same */
+ outpam.file = ofP;
++ overflow_add(rightcol, 1);
++ overflow_add(bottomrow, 1);
+ outpam.width = rightcol - leftcol + 1;
+ outpam.height = bottomrow - toprow + 1;
+
+diff -up netpbm-10.47.04/editor/pbmpscale.c.security netpbm-10.47.04/editor/pbmpscale.c
+--- netpbm-10.47.04/editor/pbmpscale.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pbmpscale.c 2009-10-21 15:27:21.000000000 +0200
+@@ -110,6 +110,7 @@ main(int argc, char ** argv) {
+ inrow[0] = inrow[1] = inrow[2] = NULL;
+ pbm_readpbminit(ifP, &columns, &rows, &format) ;
+
++ overflow2(columns, scale);
+ outrow = pbm_allocrow(columns*scale) ;
+ MALLOCARRAY(flags, columns);
+ if (flags == NULL)
+diff -up netpbm-10.47.04/editor/pbmreduce.c.security netpbm-10.47.04/editor/pbmreduce.c
+--- netpbm-10.47.04/editor/pbmreduce.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pbmreduce.c 2009-10-21 15:26:13.000000000 +0200
+@@ -94,6 +94,7 @@ main( argc, argv )
+ if (halftone == QT_FS) {
+ unsigned int col;
+ /* Initialize Floyd-Steinberg. */
++ overflow_add(newcols, 2);
+ MALLOCARRAY(thiserr, newcols + 2);
+ MALLOCARRAY(nexterr, newcols + 2);
+ if (thiserr == NULL || nexterr == NULL)
+diff -up netpbm-10.47.04/editor/pnmgamma.c.security netpbm-10.47.04/editor/pnmgamma.c
+--- netpbm-10.47.04/editor/pnmgamma.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pnmgamma.c 2009-10-21 15:09:34.000000000 +0200
+@@ -586,6 +586,7 @@ createGammaTables(enum transferFunction
+ xelval ** const btableP) {
+
+ /* Allocate space for the tables. */
++ overflow_add(maxval, 1);
+ MALLOCARRAY(*rtableP, maxval+1);
+ MALLOCARRAY(*gtableP, maxval+1);
+ MALLOCARRAY(*btableP, maxval+1);
+diff -up netpbm-10.47.04/editor/pnmhisteq.c.security netpbm-10.47.04/editor/pnmhisteq.c
+--- netpbm-10.47.04/editor/pnmhisteq.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pnmhisteq.c 2009-10-21 15:09:34.000000000 +0200
+@@ -103,6 +103,7 @@ computeLuminosityHistogram(xel * const *
+ unsigned int pixelCount;
+ unsigned int * lumahist;
+
++ overflow_add(maxval, 1);
+ MALLOCARRAY(lumahist, maxval + 1);
+ if (lumahist == NULL)
+ pm_error("Out of storage allocating array for %u histogram elements",
+diff -up netpbm-10.47.04/editor/pnmindex.csh.security netpbm-10.47.04/editor/pnmindex.csh
+--- netpbm-10.47.04/editor/pnmindex.csh.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pnmindex.csh 2009-10-21 15:09:34.000000000 +0200
+@@ -1,5 +1,8 @@
+ #!/bin/csh -f
+ #
++echo "Unsafe code, needs debugging, do not ship"
++exit 1
++#
+ # pnmindex - build a visual index of a bunch of anymaps
+ #
+ # Copyright (C) 1991 by Jef Poskanzer.
+diff -up netpbm-10.47.04/editor/pnmpad.c.security netpbm-10.47.04/editor/pnmpad.c
+--- netpbm-10.47.04/editor/pnmpad.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pnmpad.c 2009-10-21 15:33:51.000000000 +0200
+@@ -527,6 +527,8 @@ main(int argc, const char ** argv) {
+
+ computePadSizes(cmdline, cols, rows, &lpad, &rpad, &tpad, &bpad);
+
++ overflow_add(cols, lpad);
++ overflow_add(cols + lpad, rpad);
+ newcols = cols + lpad + rpad;
+
+ if (PNM_FORMAT_TYPE(format) == PBM_TYPE)
+diff -up netpbm-10.47.04/editor/pnmpaste.c.security netpbm-10.47.04/editor/pnmpaste.c
+diff -up netpbm-10.47.04/editor/pnmremap.c.security netpbm-10.47.04/editor/pnmremap.c
+--- netpbm-10.47.04/editor/pnmremap.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pnmremap.c 2009-10-21 15:28:20.000000000 +0200
+@@ -408,7 +408,7 @@ initFserr(struct pam * const pamP,
+ unsigned int plane;
+
+ unsigned int const fserrSize = pamP->width + 2;
+-
++ overflow_add(pamP->width, 2);
+ fserrP->width = pamP->width;
+
+ MALLOCARRAY(fserrP->thiserr, pamP->depth);
+@@ -444,6 +444,7 @@ floydInitRow(struct pam * const pamP, st
+
+ int col;
+
++ overflow_add(pamP->width, 2);
+ for (col = 0; col < pamP->width + 2; ++col) {
+ unsigned int plane;
+ for (plane = 0; plane < pamP->depth; ++plane)
+diff -up netpbm-10.47.04/editor/pnmscalefixed.c.security netpbm-10.47.04/editor/pnmscalefixed.c
+--- netpbm-10.47.04/editor/pnmscalefixed.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pnmscalefixed.c 2009-10-21 15:09:34.000000000 +0200
+@@ -211,6 +211,8 @@ compute_output_dimensions(const struct c
+ const int rows, const int cols,
+ int * newrowsP, int * newcolsP) {
+
++ overflow2(rows, cols);
++
+ if (cmdline.pixels) {
+ if (rows * cols <= cmdline.pixels) {
+ *newrowsP = rows;
+@@ -262,6 +264,8 @@ compute_output_dimensions(const struct c
+
+ if (*newcolsP < 1) *newcolsP = 1;
+ if (*newrowsP < 1) *newrowsP = 1;
++
++ overflow2(*newcolsP, *newrowsP);
+ }
+
+
+@@ -443,6 +447,9 @@ main(int argc, char **argv ) {
+ unfilled. We can address that by stretching, whereas the other
+ case would require throwing away some of the input.
+ */
++
++ overflow2(newcols, SCALE);
++ overflow2(newrows, SCALE);
+ sxscale = SCALE * newcols / cols;
+ syscale = SCALE * newrows / rows;
+
+diff -up netpbm-10.47.04/editor/pnmshear.c.security netpbm-10.47.04/editor/pnmshear.c
+--- netpbm-10.47.04/editor/pnmshear.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/pnmshear.c 2009-10-21 15:31:26.000000000 +0200
+@@ -15,6 +15,7 @@
+ #include <assert.h>
+ #include <math.h>
+ #include <string.h>
++#include <limits.h>
+
+ #include "pm_c_util.h"
+ #include "ppm.h"
+@@ -236,6 +237,11 @@ main(int argc, char * argv[]) {
+
+ shearfac = fabs(tan(cmdline.angle));
+
++ if(rows * shearfac >= INT_MAX-1)
++ pm_error("image too large");
++
++ overflow_add(rows * shearfac, cols+1);
++
+ newcols = rows * shearfac + cols + 0.999999;
+
+ pnm_writepnminit(stdout, newcols, rows, newmaxval, newformat, 0);
+diff -up netpbm-10.47.04/editor/ppmdither.c.security netpbm-10.47.04/editor/ppmdither.c
+--- netpbm-10.47.04/editor/ppmdither.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/editor/ppmdither.c 2009-10-21 15:09:34.000000000 +0200
+@@ -111,6 +111,9 @@ dith_matrix(unsigned int const dith_dim)
+ (dith_dim * sizeof(int *)) + /* pointers */
+ (dith_dim * dith_dim * sizeof(int)); /* data */
+
++ overflow2(dith_dim, sizeof(int *));
++ overflow3(dith_dim, dith_dim, sizeof(int));
++ overflow_add(dith_dim * sizeof(int *), dith_dim * dith_dim * sizeof(int));
+ dith_mat = (unsigned int **) malloc(dith_mat_sz);
+
+ if (dith_mat == NULL)
+@@ -165,7 +168,8 @@ dith_setup(const unsigned int dith_power
+ if (dith_nb < 2)
+ pm_error("too few shades for blue, minimum of 2");
+
+- MALLOCARRAY(*colormapP, dith_nr * dith_ng * dith_nb);
++ overflow2(dith_nr, dith_ng);
++ *colormapP = malloc3(dith_nr * dith_ng, dith_nb, sizeof(pixel));
+ if (*colormapP == NULL)
+ pm_error("Unable to allocate space for the color lookup table "
+ "(%d by %d by %d pixels).", dith_nr, dith_ng, dith_nb);
+diff -up netpbm-10.47.04/editor/specialty/pamoil.c.security netpbm-10.47.04/editor/specialty/pamoil.c
+--- netpbm-10.47.04/editor/specialty/pamoil.c.security 2009-10-21 13:38:56.000000000 +0200
++++ netpbm-10.47.04/editor/specialty/pamoil.c 2009-10-21 15:09:33.000000000 +0200
+@@ -112,6 +112,7 @@ main(int argc, char *argv[] ) {
+ tuples = pnm_readpam(ifp, &inpam, PAM_STRUCT_SIZE(tuple_type));
+ pm_close(ifp);
+
++ overflow_add(inpam.maxval, 1);
+ MALLOCARRAY(hist, inpam.maxval + 1);
+ if (hist == NULL)
+ pm_error("Unable to allocate memory for histogram.");
+diff -up netpbm-10.47.04/generator/pbmpage.c.security netpbm-10.47.04/generator/pbmpage.c
+--- netpbm-10.47.04/generator/pbmpage.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/generator/pbmpage.c 2009-10-21 15:09:34.000000000 +0200
+@@ -170,6 +170,9 @@ outputPbm(FILE * const file,
+ /* We round the allocated row space up to a multiple of 8 so the ugly
+ fast code below can work.
+ */
++
++ overflow_add(bitmap.Width, 7);
++
+ pbmrow = pbm_allocrow(((bitmap.Width+7)/8)*8);
+
+ bitmap_cursor = 0;
+diff -up netpbm-10.47.04/generator/pbmtext.c.security netpbm-10.47.04/generator/pbmtext.c
+--- netpbm-10.47.04/generator/pbmtext.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/generator/pbmtext.c 2009-10-21 15:23:15.000000000 +0200
+@@ -96,12 +96,14 @@ parseCommandLine(int argc, const char **
+
+ for (i = 1; i < argc; ++i) {
+ if (i > 1) {
++ overflow_add(totaltextsize, 1);
+ totaltextsize += 1;
+ text = realloc(text, totaltextsize);
+ if (text == NULL)
+ pm_error("out of memory allocating space for input text");
+ strcat(text, " ");
+ }
++ overflow_add(totaltextsize, strlen(argv[i]));
+ totaltextsize += strlen(argv[i]);
+ text = realloc(text, totaltextsize);
+ if (text == NULL)
+@@ -711,6 +713,7 @@ getText(const char cmdline_text
+ pm_error("A line of input text is longer than %u characters."
+ "Cannot process.", sizeof(buf)-1);
+ if (lineCount >= maxlines) {
++ overflow2(maxlines, 2);
+ maxlines *= 2;
+ REALLOCARRAY(text_array, maxlines);
+ if (text_array == NULL)
+@@ -831,6 +834,7 @@ main(int argc, const char *argv[]) {
+ hmargin = fontP->maxwidth;
+ } else {
+ vmargin = fontP->maxheight;
++ overflow2(2, fontP->maxwidth);
+ hmargin = 2 * fontP->maxwidth;
+ }
+ }
+diff -up netpbm-10.47.04/generator/pgmcrater.c.security netpbm-10.47.04/generator/pgmcrater.c
+--- netpbm-10.47.04/generator/pgmcrater.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/generator/pgmcrater.c 2009-10-21 15:09:34.000000000 +0200
+@@ -130,7 +130,7 @@ static void gencraters()
+ /* Acquire the elevation array and initialize it to mean
+ surface elevation. */
+
+- MALLOCARRAY(aux, SCRX * SCRY);
++ aux = (unsigned short *) malloc3(SCRX, SCRY, sizeof(short));
+ if (aux == NULL)
+ pm_error("out of memory allocating elevation array");
+
+diff -up netpbm-10.47.04/generator/pgmkernel.c.security netpbm-10.47.04/generator/pgmkernel.c
+--- netpbm-10.47.04/generator/pgmkernel.c.security 2009-10-21 13:38:57.000000000 +0200
++++ netpbm-10.47.04/generator/pgmkernel.c 2009-10-21 15:09:34.000000000 +0200
+@@ -68,7 +68,7 @@ main ( argc, argv )
+ kycenter = (fysize - 1) / 2.0;
+ ixsize = fxsize + 0.999;
+ iysize = fysize + 0.999;
+- MALLOCARRAY(fkernel, ixsize * iysize);
++ fkernel = (double *) malloc3 (ixsize, iysize, sizeof(double));
+ for (i = 0; i < iysize; i++)
+ for (j = 0; j < ixsize; j++) {
+ fkernel[i*ixsize+j] = 1.0 / (1.0 + w * sqrt((double)
+diff -up netpbm-10.47.04/lib/libpam.c.security netpbm-10.47.04/lib/libpam.c
+--- netpbm-10.47.04/lib/libpam.c.security 2009-10-21 13:39:00.000000000 +0200
++++ netpbm-10.47.04/lib/libpam.c 2009-10-21 15:09:34.000000000 +0200
+@@ -235,7 +235,8 @@ allocPamRow(const struct pam * const pam
+ int const bytesPerTuple = allocationDepth(pamP) * sizeof(sample);
+ tuple * tuplerow;
+
+- tuplerow = malloc(pamP->width * (sizeof(tuple *) + bytesPerTuple));
++ overflow_add(sizeof(tuple *), bytesPerTuple);
++ tuplerow = malloc2(pamP->width, sizeof(tuple *) + bytesPerTuple);
+
+ if (tuplerow != NULL) {
+ /* Now we initialize the pointers to the individual tuples
+diff -up netpbm-10.47.04/lib/libpammap.c.security netpbm-10.47.04/lib/libpammap.c
+--- netpbm-10.47.04/lib/libpammap.c.security 2009-10-21 13:39:00.000000000 +0200
++++ netpbm-10.47.04/lib/libpammap.c 2009-10-21 15:09:34.000000000 +0200
+@@ -104,6 +104,8 @@ allocTupleIntListItem(struct pam * const
+ */
+ struct tupleint_list_item * retval;
+
++ overflow2(pamP->depth, sizeof(sample));
++ overflow_add(sizeof(*retval)-sizeof(retval->tupleint.tuple), pamP->depth*sizeof(sample));
+ unsigned int const size =
+ sizeof(*retval) - sizeof(retval->tupleint.tuple)
+ + pamP->depth * sizeof(sample);
+diff -up netpbm-10.47.04/lib/libpbm1.c.security netpbm-10.47.04/lib/libpbm1.c
+--- netpbm-10.47.04/lib/libpbm1.c.security 2009-10-21 13:39:00.000000000 +0200
++++ netpbm-10.47.04/lib/libpbm1.c 2009-10-21 15:09:34.000000000 +0200
+@@ -77,6 +77,7 @@ pbm_check(FILE * file, const enum pm_che
+ pm_message("pm_filepos passed to pm_check() is %u bytes",
+ sizeof(pm_filepos));
+ #endif
++ overflow2(bytes_per_row, rows);
+ pm_check(file, check_type, need_raster_size, retval_p);
+ }
+ }
+diff -up netpbm-10.47.04/lib/libpbmvms.c.security netpbm-10.47.04/lib/libpbmvms.c
+--- netpbm-10.47.04/lib/libpbmvms.c.security 2009-10-21 13:39:00.000000000 +0200
++++ netpbm-10.47.04/lib/libpbmvms.c 2009-10-21 15:09:34.000000000 +0200
+@@ -1,3 +1,5 @@
++#warning "NOT AUDITED"
++
+ /***************************************************************************
+ This file contains library routines needed to build Netpbm for VMS.
+ However, as of 2000.05.26, when these were split out of libpbm1.c
+diff -up netpbm-10.47.04/lib/libpm.c.security netpbm-10.47.04/lib/libpm.c
+--- netpbm-10.47.04/lib/libpm.c.security 2009-10-21 13:39:00.000000000 +0200
++++ netpbm-10.47.04/lib/libpm.c 2009-10-21 15:09:34.000000000 +0200
+@@ -827,4 +827,53 @@ pm_parse_height(const char * const arg)
+ }
+
+
++/*
++ * Maths wrapping
++ */
++
++void __overflow2(int a, int b)
++{
++ if(a < 0 || b < 0)
++ pm_error("object too large");
++ if(b == 0)
++ return;
++ if(a > INT_MAX / b)
++ pm_error("object too large");
++}
++
++void overflow3(int a, int b, int c)
++{
++ overflow2(a,b);
++ overflow2(a*b, c);
++}
++
++void overflow_add(int a, int b)
++{
++ if( a > INT_MAX - b)
++ pm_error("object too large");
++}
++
++void *malloc2(int a, int b)
++{
++ overflow2(a, b);
++ if(a*b == 0)
++ pm_error("Zero byte allocation");
++ return malloc(a*b);
++}
++
++void *malloc3(int a, int b, int c)
++{
++ overflow3(a, b, c);
++ if(a*b*c == 0)
++ pm_error("Zero byte allocation");
++ return malloc(a*b*c);
++}
++
++void *realloc2(void * a, int b, int c)
++{
++ overflow2(b, c);
++ if(b*c == 0)
++ pm_error("Zero byte allocation");
++ return realloc(a, b*c);
++}
+
+diff -up netpbm-10.47.04/lib/pm.h.security netpbm-10.47.04/lib/pm.h
+--- netpbm-10.47.04/lib/pm.h.security 2009-10-21 13:39:00.000000000 +0200
++++ netpbm-10.47.04/lib/pm.h 2009-10-21 15:09:34.000000000 +0200
+@@ -377,4 +377,11 @@ pm_parse_height(const char * const arg);
+ #endif
+
+
++void *malloc2(int, int);
++void *malloc3(int, int, int);
++#define overflow2(a,b) __overflow2(a,b)
++void __overflow2(int, int);
++void overflow3(int, int, int);
++void overflow_add(int, int);
++
+ #endif
+diff -up netpbm-10.47.04/other/pnmcolormap.c.security netpbm-10.47.04/other/pnmcolormap.c
+--- netpbm-10.47.04/other/pnmcolormap.c.security 2009-10-21 13:38:54.000000000 +0200
++++ netpbm-10.47.04/other/pnmcolormap.c 2009-10-21 15:09:34.000000000 +0200
+@@ -840,6 +840,7 @@ colormapToSquare(struct pam * const pamP
+ pamP->width = intsqrt;
+ else
+ pamP->width = intsqrt + 1;
++ overflow_add(intsqrt, 1);
+ }
+ {
+ unsigned int const intQuotient = colormap.size / pamP->width;
+diff -up netpbm-10.47.04/urt/README.security netpbm-10.47.04/urt/README
+--- netpbm-10.47.04/urt/README.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/README 2009-10-21 15:09:34.000000000 +0200
+@@ -18,3 +18,8 @@ in its initializer in the original. But
+ defines stdout as a variable, so that wouldn't compile. So I changed
+ it to NULL and added a line to rle_hdr_init to set that field to
+ 'stdout' dynamically. 2000.06.02 BJH.
++
++Redid the code to check for maths overflows and other crawly horrors.
++Removed pipe through and compress support (unsafe)
++
++Alan Cox <alan@redhat.com>
+diff -up netpbm-10.47.04/urt/rle_addhist.c.security netpbm-10.47.04/urt/rle_addhist.c
+--- netpbm-10.47.04/urt/rle_addhist.c.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/rle_addhist.c 2009-10-21 15:09:34.000000000 +0200
+@@ -14,6 +14,8 @@
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+ /*
+ * rle_addhist.c - Add to the HISTORY comment in header
+@@ -76,13 +78,19 @@ rle_addhist(char * argv[],
+ return;
+
+ length = 0;
+- for (i = 0; argv[i]; ++i)
++ for (i = 0; argv[i]; ++i) {
++ overflow_add(length, strlen(argv[i]));
++ overflow_add(length+1, strlen(argv[i]));
+ length += strlen(argv[i]) +1; /* length of each arg plus space. */
++ }
+
+ time(&temp);
+ timedate = ctime(&temp);
+ length += strlen(timedate); /* length of date and time in ASCII. */
+
++ overflow_add(strlen(padding), 4);
++ overflow_add(strlen(histoire), strlen(padding) + 4);
++ overflow_add(length, strlen(histoire) + strlen(padding) + 4);
+ length += strlen(padding) + 3 + strlen(histoire) + 1;
+ /* length of padding, "on " and length of history name plus "="*/
+ if (in_hdr) /* if we are interested in the old comments... */
+@@ -90,9 +98,12 @@ rle_addhist(char * argv[],
+ else
+ old = NULL;
+
+- if (old && *old)
++ if (old && *old) {
++ overflow_add(length, strlen(old));
+ length += strlen(old); /* add length if there. */
++ }
+
++ overflow_add(length, 1);
+ ++length; /*Cater for the null. */
+
+ MALLOCARRAY(newc, length);
+diff -up netpbm-10.47.04/urt/rle_getrow.c.security netpbm-10.47.04/urt/rle_getrow.c
+--- netpbm-10.47.04/urt/rle_getrow.c.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/rle_getrow.c 2009-10-21 15:09:34.000000000 +0200
+@@ -17,6 +17,8 @@
+ *
+ * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire
+ * to have all "void" functions so declared.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+ /*
+ * rle_getrow.c - Read an RLE file in.
+@@ -168,6 +170,7 @@ rle_get_setup(rle_hdr * const the_hdr) {
+ register char * cp;
+
+ VAXSHORT( comlen, infile ); /* get comment length */
++ overflow_add(comlen, 1);
+ evenlen = (comlen + 1) & ~1; /* make it even */
+ if ( evenlen )
+ {
+diff -up netpbm-10.47.04/urt/rle_hdr.c.security netpbm-10.47.04/urt/rle_hdr.c
+--- netpbm-10.47.04/urt/rle_hdr.c.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/rle_hdr.c 2009-10-21 15:09:34.000000000 +0200
+@@ -14,6 +14,8 @@
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+ /*
+ * rle_hdr.c - Functions to manipulate rle_hdr structures.
+@@ -79,7 +81,10 @@ int img_num;
+ /* Fill in with copies of the strings. */
+ if ( the_hdr->cmd != pgmname )
+ {
+- char *tmp = (char *)malloc( strlen( pgmname ) + 1 );
++ char *tmp ;
++
++ overflow_add(strlen(pgmname), 1);
++ tmp = malloc( strlen( pgmname ) + 1 );
+ RLE_CHECK_ALLOC( pgmname, tmp, 0 );
+ strcpy( tmp, pgmname );
+ the_hdr->cmd = tmp;
+@@ -87,7 +92,9 @@ int img_num;
+
+ if ( the_hdr->file_name != fname )
+ {
+- char *tmp = (char *)malloc( strlen( fname ) + 1 );
++ char *tmp;
++ overflow_add(strlen(fname), 1);
++ tmp = malloc( strlen( fname ) + 1 );
+ RLE_CHECK_ALLOC( pgmname, tmp, 0 );
+ strcpy( tmp, fname );
+ the_hdr->file_name = tmp;
+@@ -152,6 +159,7 @@ rle_hdr *from_hdr, *to_hdr;
+ if ( to_hdr->bg_color )
+ {
+ int size = to_hdr->ncolors * sizeof(int);
++ overflow2(to_hdr->ncolors, sizeof(int));
+ to_hdr->bg_color = (int *)malloc( size );
+ RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->bg_color, "background color" );
+ memcpy( to_hdr->bg_color, from_hdr->bg_color, size );
+@@ -160,7 +168,7 @@ rle_hdr *from_hdr, *to_hdr;
+ if ( to_hdr->cmap )
+ {
+ int size = to_hdr->ncmap * (1 << to_hdr->cmaplen) * sizeof(rle_map);
+- to_hdr->cmap = (rle_map *)malloc( size );
++ to_hdr->cmap = (rle_map *)malloc3( to_hdr->ncmap, 1<<to_hdr->cmaplen, sizeof(rle_map));
+ RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->cmap, "color map" );
+ memcpy( to_hdr->cmap, from_hdr->cmap, size );
+ }
+@@ -173,11 +181,16 @@ rle_hdr *from_hdr, *to_hdr;
+ int size = 0;
+ CONST_DECL char **cp;
+ for ( cp=to_hdr->comments; *cp; cp++ )
++ {
++ overflow_add(size, 1);
+ size++; /* Count the comments. */
++ }
+ /* Check if there are really any comments. */
+ if ( size )
+ {
++ overflow_add(size, 1);
+ size++; /* Copy the NULL pointer, too. */
++ overflow2(size, sizeof(char *));
+ size *= sizeof(char *);
+ to_hdr->comments = (CONST_DECL char **)malloc( size );
+ RLE_CHECK_ALLOC( to_hdr->cmd, to_hdr->comments, "comments" );
+diff -up netpbm-10.47.04/urt/rle.h.security netpbm-10.47.04/urt/rle.h
+--- netpbm-10.47.04/urt/rle.h.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/rle.h 2009-10-21 15:09:34.000000000 +0200
+@@ -14,6 +14,9 @@
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
++ * Header declarations needed
+ */
+ /*
+ * rle.h - Global declarations for Utah Raster Toolkit RLE programs.
+@@ -166,6 +169,17 @@ rle_hdr /* End of typedef. *
+ */
+ extern rle_hdr rle_dflt_hdr;
+
++/*
++ * Provided by pm library
++ */
++
++extern void overflow_add(int, int);
++#define overflow2(a,b) __overflow2(a,b)
++extern void __overflow2(int, int);
++extern void overflow3(int, int, int);
++extern void *malloc2(int, int);
++extern void *malloc3(int, int, int);
++extern void *realloc2(void *, int, int);
+
+ /* Declare RLE library routines. */
+
+diff -up netpbm-10.47.04/urt/rle_open_f.c.security netpbm-10.47.04/urt/rle_open_f.c
+--- netpbm-10.47.04/urt/rle_open_f.c.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/rle_open_f.c 2009-10-21 15:15:38.000000000 +0200
+@@ -163,64 +163,7 @@ dealWithSubprocess(const char * const f
+ bool * const noSubprocessP,
+ const char ** const errorP) {
+
+-#ifdef NO_OPEN_PIPES
+ *noSubprocessP = TRUE;
+-#else
+- const char *cp;
+-
+- reapChildren(catchingChildrenP, pids);
+-
+- /* Real file, not stdin or stdout. If name ends in ".Z",
+- * pipe from/to un/compress (depending on r/w mode).
+- *
+- * If it starts with "|", popen that command.
+- */
+-
+- cp = file_name + strlen(file_name) - 2;
+- /* Pipe case. */
+- if (file_name[0] == '|') {
+- pid_t thepid; /* PID from my_popen */
+-
+- *noSubprocessP = FALSE;
+-
+- *fpP = my_popen(file_name + 1, mode, &thepid);
+- if (*fpP == NULL)
+- *errorP = "%s: can't invoke <<%s>> for %s: ";
+- else {
+- /* One more child to catch, eventually. */
+- if (*catchingChildrenP < MAX_CHILDREN)
+- pids[(*catchingChildrenP)++] = thepid;
+- }
+- } else if (cp > file_name && *cp == '.' && *(cp + 1) == 'Z' ) {
+- /* Compress case. */
+- pid_t thepid; /* PID from my_popen. */
+- const char * command;
+-
+- *noSubprocessP = FALSE;
+-
+- if (*mode == 'w')
+- asprintfN(&command, "compress > %s", file_name);
+- else if (*mode == 'a')
+- asprintfN(&command, "compress >> %s", file_name);
+- else
+- asprintfN(&command, "compress -d < %s", file_name);
+-
+- *fpP = my_popen(command, mode, &thepid);
+-
+- if (*fpP == NULL)
+- *errorP = "%s: can't invoke 'compress' program, "
+- "trying to open %s for %s";
+- else {
+- /* One more child to catch, eventually. */
+- if (*catchingChildrenP < MAX_CHILDREN)
+- pids[(*catchingChildrenP)++] = thepid;
+- }
+- strfree(command);
+- } else {
+- *noSubprocessP = TRUE;
+- *errorP = NULL;
+- }
+-#endif
+ }
+
+
+diff -up netpbm-10.47.04/urt/rle_putcom.c.security netpbm-10.47.04/urt/rle_putcom.c
+--- netpbm-10.47.04/urt/rle_putcom.c.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/rle_putcom.c 2009-10-21 15:09:34.000000000 +0200
+@@ -14,6 +14,8 @@
+ * If you modify this software, you should include a notice giving the
+ * name of the person performing the modification, the date of modification,
+ * and the reason for such modification.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+ /*
+ * rle_putcom.c - Add a picture comment to the header struct.
+@@ -98,12 +100,14 @@ rle_putcom(const char * const value,
+ const char * v;
+ const char ** old_comments;
+ int i;
+- for (i = 2, cp = the_hdr->comments; *cp != NULL; ++i, ++cp)
++ for (i = 2, cp = the_hdr->comments; *cp != NULL; ++i, ++cp) {
++ overflow_add(i, 1);
+ if (match(value, *cp) != NULL) {
+ v = *cp;
+ *cp = value;
+ return v;
+ }
++ }
+ /* Not found */
+ /* Can't realloc because somebody else might be pointing to this
+ * comments block. Of course, if this were true, then the
+diff -up netpbm-10.47.04/urt/Runput.c.security netpbm-10.47.04/urt/Runput.c
+--- netpbm-10.47.04/urt/Runput.c.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/Runput.c 2009-10-21 15:09:34.000000000 +0200
+@@ -17,6 +17,8 @@
+ *
+ * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire
+ * to have all "void" functions so declared.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+ /*
+ * Runput.c - General purpose Run Length Encoding.
+@@ -202,9 +204,11 @@ RunSetup(rle_hdr * the_hdr)
+ if ( the_hdr->background != 0 )
+ {
+ register int i;
+- register rle_pixel *background =
+- (rle_pixel *)malloc( (unsigned)(the_hdr->ncolors + 1) );
++ register rle_pixel *background;
+ register int *bg_color;
++
++ overflow_add(the_hdr->ncolors,1);
++ background = (rle_pixel *)malloc( (unsigned)(the_hdr->ncolors + 1) );
+ /*
+ * If even number of bg color bytes, put out one more to get to
+ * 16 bit boundary.
+@@ -224,7 +228,7 @@ RunSetup(rle_hdr * the_hdr)
+ /* Big-endian machines are harder */
+ register int i, nmap = (1 << the_hdr->cmaplen) *
+ the_hdr->ncmap;
+- register char *h_cmap = (char *)malloc( nmap * 2 );
++ register char *h_cmap = (char *)malloc2( nmap, 2 );
+ if ( h_cmap == NULL )
+ {
+ fprintf( stderr,
+diff -up netpbm-10.47.04/urt/scanargs.c.security netpbm-10.47.04/urt/scanargs.c
+--- netpbm-10.47.04/urt/scanargs.c.security 2009-10-21 13:39:11.000000000 +0200
++++ netpbm-10.47.04/urt/scanargs.c 2009-10-21 15:09:34.000000000 +0200
+@@ -38,6 +38,8 @@
+ *
+ * Modified at BRL 16-May-88 by Mike Muuss to avoid Alliant STDC desire
+ * to have all "void" functions so declared.
++ *
++ * 2002-12-19: Fix maths wrapping bugs. Alan Cox <alan@redhat.com>
+ */
+
+ #include "rle.h"
+@@ -65,8 +67,8 @@ typedef int *ptr;
+ /*
+ * Storage allocation macros
+ */
+-#define NEW( type, cnt ) (type *) malloc( (cnt) * sizeof( type ) )
+-#define RENEW( type, ptr, cnt ) (type *) realloc( ptr, (cnt) * sizeof( type ) )
++#define NEW( type, cnt ) (type *) malloc2( (cnt) , sizeof( type ) )
++#define RENEW( type, ptr, cnt ) (type *) realloc2( ptr, (cnt), sizeof( type ) )
+
+ #if defined(c_plusplus) && !defined(USE_PROTOTYPES)
+ #define USE_PROTOTYPES
diff --git a/extra/netpbm/netpbm-security-scripts.patch b/extra/netpbm/netpbm-security-scripts.patch
new file mode 100644
index 000000000..557914b66
--- /dev/null
+++ b/extra/netpbm/netpbm-security-scripts.patch
@@ -0,0 +1,393 @@
+diff -up netpbm-10.47.05/converter/other/anytopnm.security-scripts netpbm-10.47.05/converter/other/anytopnm
+--- netpbm-10.47.05/converter/other/anytopnm.security-scripts 2009-12-10 08:34:36.000000000 +0100
++++ netpbm-10.47.05/converter/other/anytopnm 2010-03-16 21:28:09.000000000 +0100
+@@ -510,10 +510,7 @@ else
+ inputFile="-"
+ fi
+
+-tempdir="${TMPDIR-/tmp}/anytopnm.$$"
+-mkdir -m 0700 $tempdir || \
+- { echo "Could not create temporary file. Exiting."; exit 1;}
+-trap 'rm -rf $tempdir' 0
++tempdir=$(mktemp -d -t anytopnm.XXXXXXXXXX) || exit 1
+
+ # Take out all spaces
+ # Find the filename extension for last-ditch efforts later
+@@ -539,9 +536,17 @@ if [ "$filetype" = "unknown" ]; then
+ echo "$progname: unknown file type. " \
+ "'file' says mime type is '$mimeType', " 1>&2
+ echo "type description is '$typeDescription'" 1>&2
++ if [ -d "$tempdir" ] ; then
++ rm -rf "$tempdir"
++ fi
++
+ exit 1
+ fi
+
+ convertIt $file $filetype
+
++if [ -d "$tempdir" ] ; then
++ rm -rf "$tempdir"
++fi
++
+ exit 0
+diff -up netpbm-10.47.05/editor/pamstretch-gen.security-scripts netpbm-10.47.05/editor/pamstretch-gen
+--- netpbm-10.47.05/editor/pamstretch-gen.security-scripts 2009-12-10 08:34:32.000000000 +0100
++++ netpbm-10.47.05/editor/pamstretch-gen 2010-03-16 21:28:47.000000000 +0100
+@@ -31,13 +31,9 @@ if [ "$1" = "" ]; then
+ exit 1
+ fi
+
+-tempdir="${TMPDIR-/tmp}/pamstretch-gen.$$"
+-mkdir -m 0700 $tempdir || \
+- { echo "Could not create temporary file. Exiting."; exit 1;}
++tempfile=$(mktemp /tmp/pnmig.XXXXXXXXXX) || exit 1
+ trap 'rm -rf $tempdir' 0 1 3 15
+
+-tempfile=$tempdir/pnmig
+-
+ if ! cat $2 >$tempfile 2>/dev/null; then
+ echo 'pamstretch-gen: error reading file' 1>&2
+ exit 1
+diff -up netpbm-10.47.05/editor/pnmmargin.security-scripts netpbm-10.47.05/editor/pnmmargin
+--- netpbm-10.47.05/editor/pnmmargin.security-scripts 2009-12-10 08:34:32.000000000 +0100
++++ netpbm-10.47.05/editor/pnmmargin 2010-03-16 21:28:09.000000000 +0100
+@@ -11,15 +11,11 @@
+ # documentation. This software is provided "as is" without express or
+ # implied warranty.
+
+-tempdir="${TMPDIR-/tmp}/pnmmargin.$$"
+-mkdir -m 0700 $tempdir || \
+- { echo "Could not create temporary file. Exiting." 1>&2; exit 1;}
+-trap 'rm -rf $tempdir' 0 1 3 15
+-
+-tmp1=$tempdir/pnmm1
+-tmp2=$tempdir/pnmm2
+-tmp3=$tempdir/pnmm3
+-tmp4=$tempdir/pnmm4
++tmpdir=$(mktemp -d -t ppmmargin.XXXXXXX) || exit 1
++tmp1="$tmpdir/tmp1"
++tmp2="$tmpdir/tmp2"
++tmp3="$tmpdir/tmp3"
++tmp4="$tmpdir/tmp4"
+
+ color="-gofigure"
+ plainopt=""
+@@ -90,6 +86,7 @@ else
+ -white | -black )
+ pnmpad $plainopt $color \
+ -left=$size -right=$size -top=$size -bottom=$size $tmp1
++ rm -rf "$tmpdir"
+ exit
+ ;;
+ * )
+@@ -102,7 +99,4 @@ else
+ pnmcat -lr $tmp2 $tmp1 $tmp2 > $tmp4
+ pnmcat -tb $plainopt $tmp3 $tmp4 $tmp3
+ fi
+-
+-
+-
+-
++rm -rf "$tmpdir"
+diff -up netpbm-10.47.05/editor/ppmfade.security-scripts netpbm-10.47.05/editor/ppmfade
+--- netpbm-10.47.05/editor/ppmfade.security-scripts 2009-12-10 08:34:32.000000000 +0100
++++ netpbm-10.47.05/editor/ppmfade 2010-03-16 21:28:09.000000000 +0100
+@@ -14,6 +14,7 @@
+ #
+ #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+ use strict;
++use File::Temp "tempdir";
+
+ my $SPREAD = 1;
+ my $SHIFT = 2;
+@@ -111,20 +112,26 @@ if ($first_file ne "undefined") {
+
+ print("Frames are " . $width . "W x " . $height . "H\n");
+
++#
++# We create a tmp-directory right here
++#
++my $tmpdir = tempdir("ppmfade.XXXXXX", CLEANUP => 1);
++
++
+ if ($first_file eq "undefined") {
+ print "Fading from black to ";
+- system("ppmmake \\#000 $width $height >junk1$$.ppm");
++ system("ppmmake \\#000 $width $height >$tmpdir/junk1$$.ppm");
+ } else {
+ print "Fading from $first_file to ";
+- system("cp", $first_file, "junk1$$.ppm");
++ system("cp", $first_file, "$tmpdir/junk1$$.ppm");
+ }
+
+ if ($last_file eq "undefined") {
+ print "black.\n";
+- system("ppmmake \\#000 $width $height >junk2$$.ppm");
++ system("ppmmake \\#000 $width $height >$tmpdir/junk2$$.ppm");
+ } else {
+ print "$last_file\n";
+- system("cp", $last_file, "junk2$$.ppm");
++ system("cp", $last_file, "$tmpdir/junk2$$.ppm");
+ }
+
+ #
+@@ -132,14 +139,14 @@ if ($last_file eq "undefined") {
+ #
+
+ # Here's what our temporary files are:
+-# junk1$$.ppm: The original (fade-from) image
+-# junk2$$.ppm: The target (fade-from) image
+-# junk3$$.ppm: The frame of the fade for the current iteration of the
+-# the for loop.
+-# junk1a$$.ppm: If the fade involves a ppmmix sequence from one intermediate
+-# image to another, this is the first frame of that
+-# sequence.
+-# junk2a$$.ppm: This is the last frame of the above-mentioned ppmmix sequence
++# $tmpdir/junk1$$.ppm: The original (fade-from) image
++# $tmpdir/junk2$$.ppm: The target (fade-from) image
++# $tmpdir/junk3$$.ppm: The frame of the fade for the current iteration of the
++# the for loop.
++# $tmpdir/junk1a$$.ppm: If the fade involves a ppmmix sequence from one intermediate
++# image to another, this is the first frame of that
++# sequence.
++# $tmpdir/junk2a$$.ppm: This is the last frame of the above-mentioned ppmmix sequence
+
+ my $i; # Frame number
+ for ($i = 1; $i <= $nframes; $i++) {
+@@ -147,147 +154,147 @@ for ($i = 1; $i <= $nframes; $i++) {
+ if ($mode eq $SPREAD) {
+ if ($i <= 10) {
+ my $n = $spline20[$i] * 100;
+- system("ppmspread $n junk1$$.ppm >junk3$$.ppm");
++ system("ppmspread $n $tmpdir/junk1$$.ppm >$tmpdir/junk3$$.ppm");
+ } elsif ($i <= 20) {
+ my $n;
+ $n = $spline20[$i] * 100;
+- system("ppmspread $n junk1$$.ppm >junk1a$$.ppm");
++ system("ppmspread $n $tmpdir/junk1$$.ppm >$tmpdir/junk1a$$.ppm");
+ $n = (1-$spline20[$i-10]) * 100;
+- system("ppmspread $n junk2$$.ppm >junk2a$$.ppm");
++ system("ppmspread $n $tmpdir/junk2$$.ppm >$tmpdir/junk2a$$.ppm");
+ $n = $spline10[$i-10];
+- system("ppmmix $n junk1a$$.ppm junk2a$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1a$$.ppm $tmpdir/junk2a$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ my $n = (1-$spline20[$i-10])*100;
+- system("ppmspread $n junk2$$.ppm >junk3$$.ppm");
++ system("ppmspread $n $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm");
+ }
+ } elsif ($mode eq $SHIFT) {
+ if ($i <= 10) {
+ my $n = $spline20[$i] * 100;
+- system("ppmshift $n junk1$$.ppm >junk3$$.ppm");
++ system("ppmshift $n $tmpdir/junk1$$.ppm >$tmpdir/junk3$$.ppm");
+ } elsif ($i <= 20) {
+ my $n;
+ $n = $spline20[$i] * 100;
+- system("ppmshift $n junk1$$.ppm >junk1a$$.ppm");
++ system("ppmshift $n $tmpdir/junk1$$.ppm >$tmpdir/junk1a$$.ppm");
+ $n = (1-$spline20[$i-10])*100;
+- system("ppmshift $n junk2$$.ppm >junk2a$$.ppm");
++ system("ppmshift $n $tmpdir/junk2$$.ppm >$tmpdir/junk2a$$.ppm");
+ $n = $spline10[$i-10];
+- system("ppmmix $n junk1a$$.ppm junk2a$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1a$$.ppm $tmpdir/junk2a$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ my $n = (1-$spline20[$i-10]) * 100;
+- system("ppmshift $n junk2$$.ppm >junk3$$.ppm");
++ system("ppmshift $n $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm");
+ }
+ } elsif ($mode eq $RELIEF) {
+ if ($i == 1) {
+- system("ppmrelief junk1$$.ppm >junk1r$$.ppm");
++ system("ppmrelief $tmpdir/junk1$$.ppm >$tmpdir/junk1r$$.ppm");
+ }
+ if ($i <= 10) {
+ my $n = $spline10[$i];
+- system("ppmmix $n junk1$$.ppm junk1r$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1r$$.ppm >$tmpdir/junk3$$.ppm");
+ } elsif ($i <= 20) {
+ my $n = $spline10[$i-10];
+- system("ppmmix $n junk1r$$.ppm junk2r$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1r$$.ppm $tmpdir/junk2r$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ my $n = $spline10[$i-20];
+- system("ppmmix $n junk2r$$.ppm junk2$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk2r$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm");
+ }
+ if ($i == 10) {
+- system("ppmrelief junk2$$.ppm >junk2r$$.ppm");
++ system("ppmrelief $tmpdir/junk2$$.ppm >$tmpdir/junk2r$$.ppm");
+ }
+ } elsif ($mode eq $OIL) {
+ if ($i == 1) {
+- system("ppmtopgm junk1$$.ppm | pgmoil >junko$$.ppm");
+- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " .
+- ">junk1o$$.ppm");
++ system("ppmtopgm $tmpdir/junk1$$.ppm | pgmoil >$tmpdir/junko$$.ppm");
++ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " .
++ ">$tmpdir/junk1o$$.ppm");
+ }
+ if ($i <= 10) {
+ my $n = $spline10[$i];
+- system("ppmmix $n junk1$$.ppm junk1o$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1o$$.ppm >$tmpdir/junk3$$.ppm");
+ } elsif ($i <= 20) {
+ my $n = $spline10[$i-10];
+- system("ppmmix $n junk1o$$.ppm junk2o$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1o$$.ppm $tmpdir/junk2o$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ my $n = $spline10[$i-20];
+- system("ppmmix $n junk2o$$.ppm junk2$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk2o$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm");
+ }
+ if ($i == 10) {
+- system("ppmtopgm junk2$$.ppm | pgmoil >junko$$.ppm");
+- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " .
+- ">junk2o$$.ppm");
++ system("ppmtopgm $tmpdir/junk2$$.ppm | pgmoil >$tmpdir/junko$$.ppm");
++ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " .
++ ">$tmpdir/junk2o$$.ppm");
+ }
+ } elsif ($mode eq $EDGE) {
+ if ($i == 1) {
+- system("ppmtopgm junk1$$.ppm | pgmedge >junko$$.ppm");
+- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " .
+- ">junk1o$$.ppm");
++ system("ppmtopgm $tmpdir/junk1$$.ppm | pgmedge >$tmpdir/junko$$.ppm");
++ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " .
++ ">$tmpdir/junk1o$$.ppm");
+ }
+ if ($i <= 10) {
+ my $n = $spline10[$i];
+- system("ppmmix $n junk1$$.ppm junk1o$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1o$$.ppm >$tmpdir/junk3$$.ppm");
+ } elsif ($i <= 20) {
+ my $n = $spline10[$i-10];
+- system("ppmmix $n junk1o$$.ppm junk2o$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1o$$.ppm $tmpdir/junk2o$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ my $n = $spline10[$i-20];
+- system("ppmmix $n junk2o$$.ppm junk2$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk2o$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm");
+ }
+ if ($i == 10) {
+- system("ppmtopgm junk2$$.ppm | pgmedge >junko$$.ppm");
+- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " .
+- ">junk2o$$.ppm");
++ system("ppmtopgm $tmpdir/junk2$$.ppm | pgmedge >$tmpdir/junko$$.ppm");
++ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " .
++ ">$tmpdir/junk2o$$.ppm");
+ }
+ } elsif ($mode eq $BENTLEY) {
+ if ($i == 1) {
+- system("ppmtopgm junk1$$.ppm | pgmbentley >junko$$.ppm");
+- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " .
+- ">junk1o$$.ppm");
++ system("ppmtopgm $tmpdir/junk1$$.ppm | pgmbentley >$tmpdir/junko$$.ppm");
++ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " .
++ ">$tmpdir/junk1o$$.ppm");
+ }
+ if ($i <= 10) {
+ my $n = $spline10[$i];
+- system("ppmmix $n junk1$$.ppm junk1o$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1$$.ppm $tmpdir/junk1o$$.ppm >$tmpdir/junk3$$.ppm");
+ } elsif ($i <= 20) {
+ my $n = $spline10[$i-10];
+- system("ppmmix $n junk1o$$.ppm junk2o$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1o$$.ppm $tmpdir/junk2o$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ my $n = $spline10[$i-20];
+- system("ppmmix $n junk2o$$.ppm junk2$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk2o$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm");
+ }
+ if ($i == 10) {
+- system("ppmtopgm junk2$$.ppm | pgmbentley >junko$$.ppm");
+- system("rgb3toppm junko$$.ppm junko$$.ppm junko$$.ppm " .
+- ">junk2o$$.ppm");
++ system("ppmtopgm $tmpdir/junk2$$.ppm | pgmbentley >$tmpdir/junko$$.ppm");
++ system("rgb3toppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm $tmpdir/junko$$.ppm " .
++ ">$tmpdir/junk2o$$.ppm");
+ }
+ } elsif ($mode eq $BLOCK) {
+ if ($i <= 10) {
+ my $n = 1 - 1.9*$spline20[$i];
+- system("pamscale $n junk1$$.ppm | " .
+- "pamscale -width $width -height $height >junk3$$.ppm");
++ system("pamscale $n $tmpdir/junk1$$.ppm | " .
++ "pamscale -width $width -height $height >$tmpdir/junk3$$.ppm");
+ } elsif ($i <= 20) {
+ my $n = $spline10[$i-10];
+- system("ppmmix $n junk1a$$.ppm junk2a$$.ppm >junk3$$.ppm");
++ system("ppmmix $n $tmpdir/junk1a$$.ppm $tmpdir/junk2a$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ my $n = 1 - 1.9*$spline20[31-$i];
+- system("pamscale $n junk2$$.ppm | " .
+- "pamscale -width $width -height $height >junk3$$.ppm");
++ system("pamscale $n $tmpdir/junk2$$.ppm | " .
++ "pamscale -width $width -height $height >$tmpdir/junk3$$.ppm");
+ }
+ if ($i == 10) {
+- system("cp", "junk3$$.ppm", "junk1a$$.ppm");
+- system("pamscale $n junk2$$.ppm | " .
+- "pamscale -width $width -height $height >junk2a$$.ppm");
++ system("cp", "$tmpdir/junk3$$.ppm", "$tmpdir/junk1a$$.ppm");
++ system("pamscale $n $tmpdir/junk2$$.ppm | " .
++ "pamscale -width $width -height $height >$tmpdir/junk2a$$.ppm");
+ }
+ } elsif ($mode eq $MIX) {
+ my $fade_factor = sqrt(1/($nframes-$i+1));
+- system("ppmmix $fade_factor junk1$$.ppm junk2$$.ppm >junk3$$.ppm");
++ system("ppmmix $fade_factor $tmpdir/junk1$$.ppm $tmpdir/junk2$$.ppm >$tmpdir/junk3$$.ppm");
+ } else {
+ print("Internal error: impossible mode value '$mode'\n");
+ }
+
+ my $outfile = sprintf("%s.%04d.ppm", $base_name, $i);
+- system("cp", "junk3$$.ppm", $outfile);
++ system("cp", "$tmpdir/junk3$$.ppm", $outfile);
+ }
+
+ #
+ # Clean up shop.
+ #
+-system("rm junk*$$.ppm");
++system("rm $tmpdir/junk*$$.ppm");
+
+ exit(0);
+diff -up netpbm-10.47.05/editor/ppmquantall.security-scripts netpbm-10.47.05/editor/ppmquantall
+--- netpbm-10.47.05/editor/ppmquantall.security-scripts 2009-12-10 08:34:32.000000000 +0100
++++ netpbm-10.47.05/editor/ppmquantall 2010-03-16 21:28:09.000000000 +0100
+@@ -70,12 +70,8 @@ for i in ${files[@]}; do
+ heights=(${heights[*]} `grep -v '^#' $i | sed '1d; s/.* //; 2q'`)
+ done
+
+-tempdir="${TMPDIR-/tmp}/ppmquantall.$$"
+-mkdir -m 0700 $tempdir || \
+- { echo "Could not create temporary file. Exiting."; exit 1;}
+-trap 'rm -rf $tempdir' 0 1 3 15
+-
+-all=$tempdir/pqa.all.$$
++all=$(mktemp -t pqa.all.XXXXXXXXXX) || exit 1
++rm -f $all
+
+ pnmcat -topbottom -jleft -white ${files[@]} | pnmquant $newcolors > $all
+ if [ $? != 0 ]; then
+diff -up netpbm-10.47.05/editor/ppmshadow.security-scripts netpbm-10.47.05/editor/ppmshadow
+--- netpbm-10.47.05/editor/ppmshadow.security-scripts 2009-12-10 08:34:32.000000000 +0100
++++ netpbm-10.47.05/editor/ppmshadow 2010-03-16 21:28:09.000000000 +0100
+@@ -72,9 +72,10 @@ sub makeConvolutionKernel($$) {
+
+
+ my $tmpdir = $ENV{TMPDIR} || "/tmp";
+-my $ourtmp = "$tmpdir/ppmshadow$$";
+-mkdir($ourtmp, 0777) or
+- die("Unable to create directory for temporary files '$ourtmp");
++my $ourtmp; chomp($ourtmp = `mktemp -d -t PPMshadow.XXXXXX`);
++if ($? >> 8) {
++ die "Can't create directory for temporary files";
++}
+
+ # Process command line options
+
diff --git a/extra/netspeed-applet/PKGBUILD b/extra/netspeed-applet/PKGBUILD
new file mode 100644
index 000000000..7cd7566b6
--- /dev/null
+++ b/extra/netspeed-applet/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 94521 2010-10-07 19:29:30Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+
+pkgname=netspeed-applet
+pkgver=0.16
+pkgrel=2
+pkgdesc="GNOME applet that shows how much traffic occurs on a specified network device."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://projects.gnome.org/netspeed/"
+depends=('gnome-panel-bonobo>=2.32.0' 'libgtop>=2.28.2' 'wireless_tools' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.2' 'intltool')
+install=netspeed-applet.install
+source=(http://launchpad.net/netspeed/trunk/0.16/+download/netspeed_applet-${pkgver}.tar.gz)
+md5sums=('8ae5f925d29fca9b70a248ad05316877')
+
+build() {
+ cd "${srcdir}/netspeed_applet-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/netspeed-applet \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/netspeed-applet/netspeed-applet.install b/extra/netspeed-applet/netspeed-applet.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/extra/netspeed-applet/netspeed-applet.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/network-manager-applet/PKGBUILD b/extra/network-manager-applet/PKGBUILD
new file mode 100644
index 000000000..0aa4e9ce3
--- /dev/null
+++ b/extra/network-manager-applet/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 112864 2011-03-07 11:16:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+# Contributor: Tor Krill <tor@krill.nu>
+# Contributor: Will Rea <sillywilly@gmail.com>
+
+pkgname=network-manager-applet
+pkgver=0.8.2
+pkgrel=4
+pkgdesc="GNOME frontends to NetWorkmanager"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=('networkmanager>=0.8.2' 'libglade' 'libgnome-keyring' 'polkit-gnome' 'notification-daemon' 'libnotify' 'gnome-icon-theme' 'mobile-broadband-provider-info' 'gconf')
+makedepends=('intltool' 'gnome-bluetooth')
+optdepends=('gnome-bluetooth: for PAN/DUN support')
+options=('!libtool')
+install=network-manager-applet.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/network-manager-applet/0.8/network-manager-applet-${pkgver}.tar.bz2
+ nm-applet-0.8.2-libnotify-0.7.patch)
+sha256sums=('c6f8723031092bd1c7db452df5578ec9ca8e9f98c2ea493dba7d40dbe0e02391'
+ '542e0c3a5f851f72e5672f982c7e86c45b79868f3d16500b930d58cf8f039b5d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/nm-applet-0.8.2-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static \
+ --disable-maintainer-mode
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain nm-applet ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/network-manager-applet/network-manager-applet.install b/extra/network-manager-applet/network-manager-applet.install
new file mode 100644
index 000000000..9922d12b2
--- /dev/null
+++ b/extra/network-manager-applet/network-manager-applet.install
@@ -0,0 +1,18 @@
+pkgname=network-manager-applet
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
diff --git a/extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch b/extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch
new file mode 100644
index 000000000..54aa473af
--- /dev/null
+++ b/extra/network-manager-applet/nm-applet-0.8.2-libnotify-0.7.patch
@@ -0,0 +1,36 @@
+--- src/applet.c
++++ src/applet.c
+@@ -58,6 +58,10 @@
+ #include <gnome-keyring.h>
+ #include <libnotify/notify.h>
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ #include "applet.h"
+ #include "applet-device-wired.h"
+ #include "applet-device-wifi.h"
+@@ -626,12 +630,20 @@
+ escaped = utils_escape_notify_message (message);
+ notify = notify_notification_new (summary,
+ escaped,
+- icon ? icon : GTK_STOCK_NETWORK,
+- NULL);
++ icon ? icon : GTK_STOCK_NETWORK
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+ g_free (escaped);
+ applet->notification = notify;
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ /* notify_notification_attach_to_status_icon was removed */
++#else
+ notify_notification_attach_to_status_icon (notify, applet->status_icon);
++#endif
+ notify_notification_set_urgency (notify, urgency);
+ notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT);
+
diff --git a/extra/networkmanager-openconnect/PKGBUILD b/extra/networkmanager-openconnect/PKGBUILD
new file mode 100644
index 000000000..30d109d2c
--- /dev/null
+++ b/extra/networkmanager-openconnect/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 98215 2010-11-04 21:22:18Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-openconnect
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="NetworkManager VPN integration for openconnect"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'openconnect>=2.26' 'dbus-glib')
+makedepends=('intltool' 'gtk2' 'libglade' 'gconf' 'libgnome-keyring')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=$pkgname.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-openconnect/0.8/NetworkManager-openconnect-${pkgver}.tar.bz2)
+sha256sums=('6ef8ff1a14e112baf7d90cc1c19163c7895b56b60629641086540bacb8babb4f')
+
+build() {
+ cd "${srcdir}/NetworkManager-openconnect-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/networkmanager-openconnect/networkmanager-openconnect.install b/extra/networkmanager-openconnect/networkmanager-openconnect.install
new file mode 100644
index 000000000..7bd4d44f9
--- /dev/null
+++ b/extra/networkmanager-openconnect/networkmanager-openconnect.install
@@ -0,0 +1,16 @@
+pkgname=networkmanager-openconnect
+
+post_install() {
+ getent group nm-openconnect >/dev/null 2>&1 || groupadd -g 104 nm-openconnect
+ getent passwd nm-openconnect > /dev/null 2>&1 || useradd -u 104 -s /sbin/nologin -d / -M -c 'NetworkManager user for OpenConnect' -g nm-openconnect nm-openconnect
+ passwd -l nm-openconnect > /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ getent passwd nm-openconnect >/dev/null 2>&1 && userdel nm-openconnect
+ getent group nm-openconnect >/dev/null 2>&1 && groupdel nm-openconnect
+}
diff --git a/extra/networkmanager-openvpn/PKGBUILD b/extra/networkmanager-openvpn/PKGBUILD
new file mode 100644
index 000000000..962d781b5
--- /dev/null
+++ b/extra/networkmanager-openvpn/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 98204 2010-11-04 21:17:08Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-openvpn
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for OpenVPN"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'openvpn')
+makedepends=('intltool' 'gtk2' 'libglade' 'gconf' 'libgnome-keyring')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+install=networkmanager-openvpn.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-openvpn/0.8/NetworkManager-openvpn-${pkgver}.tar.bz2)
+sha256sums=('21d540b7e7cd88cff3173bb3574a88d4dd76da564fccc58dc436a68476d6d6fe')
+
+build() {
+ cd "${srcdir}/NetworkManager-openvpn-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/networkmanager-openvpn/networkmanager-openvpn.install b/extra/networkmanager-openvpn/networkmanager-openvpn.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/extra/networkmanager-openvpn/networkmanager-openvpn.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/networkmanager-pptp/PKGBUILD b/extra/networkmanager-pptp/PKGBUILD
new file mode 100644
index 000000000..f503331b5
--- /dev/null
+++ b/extra/networkmanager-pptp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 98212 2010-11-04 21:20:04Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-pptp
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for pptp "
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'pptpclient')
+makedepends=('intltool' 'gtk2' 'libglade' 'gconf' 'libgnome-keyring')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=networkmanager-pptp.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-pptp/0.8/NetworkManager-pptp-${pkgver}.tar.bz2)
+sha256sums=('c90172273d6b29a5f3fec138cc474d6a7003edf35918602f3b7283ddd05d87e6')
+
+build() {
+ cd "${srcdir}/NetworkManager-pptp-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/networkmanager-pptp/networkmanager-pptp.install b/extra/networkmanager-pptp/networkmanager-pptp.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/extra/networkmanager-pptp/networkmanager-pptp.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/networkmanager-vpnc/PKGBUILD b/extra/networkmanager-vpnc/PKGBUILD
new file mode 100644
index 000000000..a182f8433
--- /dev/null
+++ b/extra/networkmanager-vpnc/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 98207 2010-11-04 21:19:02Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-vpnc
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="NetworkManager VPN plugin for vpnc"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'vpnc')
+makedepends=('intltool' 'gtk2' 'libglade' 'gconf' 'libgnome-keyring')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=networkmanager-vpnc.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-vpnc/0.8/NetworkManager-vpnc-${pkgver}.tar.bz2)
+sha256sums=('c37cf921c223f226d16e659321bb372e33278bf642362b7a92cb665d27950011')
+
+build() {
+ cd "${srcdir}/NetworkManager-vpnc-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/networkmanager-vpnc/networkmanager-vpnc.install b/extra/networkmanager-vpnc/networkmanager-vpnc.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/extra/networkmanager-vpnc/networkmanager-vpnc.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/networkmanager/NetworkManager.conf b/extra/networkmanager/NetworkManager.conf
new file mode 100644
index 000000000..c37b59680
--- /dev/null
+++ b/extra/networkmanager/NetworkManager.conf
@@ -0,0 +1,2 @@
+[main]
+plugins=keyfile
diff --git a/extra/networkmanager/PKGBUILD b/extra/networkmanager/PKGBUILD
new file mode 100644
index 000000000..9fdc8d641
--- /dev/null
+++ b/extra/networkmanager/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 105867 2011-01-13 19:51:11Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinxu.org>
+# Contri-butor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+# Contributor: Tor Krill <tor@krill.nu>
+# Contributor: Will Rea <sillywilly@gmail.com>
+# Contributor: Valentine Sinitsyn <e_val@inbox.ru>
+
+pkgname=networkmanager
+pkgver=0.8.3
+pkgrel=0.20110113
+pkgdesc="Network Management daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=('dbus-glib' 'iproute2' 'libnl' 'nss' 'polkit' 'udev' 'wireless_tools' 'wpa_supplicant' 'ppp' 'dhcpcd')
+makedepends=('intltool' 'dhclient' 'iptables')
+optdepends=('modemmanager: for modem management service'
+ 'dhclient: alternative DHCP/DHCPv6 client'
+ 'iptables: Connection sharing'
+ 'dnsmasq: Connection sharing'
+ 'bluez: Bluetooth support')
+options=('!libtool')
+backup=('etc/NetworkManager/NetworkManager.conf')
+install=networkmanager.install
+#source=(http://ftp.gnome.org/pub/gnome/sources/NetworkManager/0.8/NetworkManager-${pkgver}.tar.bz2
+source=(http://mirrors.kernel.org/archlinux/other/networkmanager/NetworkManager-$pkgver-$pkgrel.tar.bz2
+ NetworkManager.conf disable_set_hostname.patch)
+md5sums=('bdcdd1060e17e9373e60edcdad7d076e'
+ '1653159d6634fb62d3a5c548b7a56151'
+ 'b7deda5bb47b3df0eb42782eabbaefe7')
+
+build() {
+ cd "${srcdir}/NetworkManager-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/disable_set_hostname.patch"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/networkmanager \
+ --with-crypto=nss \
+ --with-distro=arch \
+ --with-dhclient=/usr/sbin/dhclient \
+ --with-dhcpcd=/sbin/dhcpcd \
+ --with-iptables=/usr/sbin/iptables \
+ --disable-static \
+ --enable-more-warnings=no
+
+ make
+}
+
+package() {
+ cd "${srcdir}/NetworkManager-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 "${srcdir}/NetworkManager.conf" "${pkgdir}/etc/NetworkManager/"
+}
diff --git a/extra/networkmanager/disable_set_hostname.patch b/extra/networkmanager/disable_set_hostname.patch
new file mode 100644
index 000000000..6c9e2f6c6
--- /dev/null
+++ b/extra/networkmanager/disable_set_hostname.patch
@@ -0,0 +1,19 @@
+diff -Nur NetworkManager-0.8.2.orig/src/nm-policy.c NetworkManager-0.8.2/src/nm-policy.c
+--- NetworkManager-0.8.2.orig/src/nm-policy.c 2010-11-03 12:58:42.000000000 -0700
++++ NetworkManager-0.8.2/src/nm-policy.c 2010-11-23 06:22:32.436707081 -0800
+@@ -342,6 +342,7 @@
+ return;
+ }
+
++#if 0
+ /* Try automatically determined hostname from the best device's IP config */
+ if (!best4)
+ best4 = get_best_ip4_device (policy->manager, &best_req4);
+@@ -396,6 +397,7 @@
+ }
+ }
+
++#endif
+ /* If no automatically-configured hostname, try using the hostname from
+ * when NM started up.
+ */
diff --git a/extra/networkmanager/networkmanager.install b/extra/networkmanager/networkmanager.install
new file mode 100644
index 000000000..de40c17ed
--- /dev/null
+++ b/extra/networkmanager/networkmanager.install
@@ -0,0 +1,9 @@
+post_upgrade() {
+ (( $(vercmp 0.8.3 $2) > 0 )) && cat <<MSG
+ATTENTION:
+ /etc/NetworkManager/nm-system-settings.conf has been replaced
+ by /etc/NetworkManager/NetworkManager.conf. Make sure you move
+ any custom settings to the new config file.
+MSG
+ true
+}
diff --git a/extra/neverball/ChangeLog b/extra/neverball/ChangeLog
new file mode 100644
index 000000000..d4c6561ca
--- /dev/null
+++ b/extra/neverball/ChangeLog
@@ -0,0 +1,50 @@
+2010-01-18 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.4-2
+ * Rebuilt for libpng 1.4 and libjpeg 8
+
+2009-09-20 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.4-1
+ * Upstream update
+
+2009-09-08 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.3-1
+ * Upstream update
+
+2009-08-16 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.2-1
+ * Upstream update
+ * Added physfs depends
+ * Fixed file permissions
+
+2009-08-08 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.1-2.1
+ * Built i686 package without sse (close FS#15849)
+
+2009-07-01 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.1-2
+ * Rebuilt against libjpeg 7
+
+2009-04-08 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.1-1
+ * Upstream update
+ * Removed sdl_image and sdl_mixer depends: not needed anymore
+ * Added libpng, libjpeg and libvorbis depends
+
+2009-02-03 Eric Belanger <eric@archlinux.org>
+
+ * neverball 1.5.0-1
+ * Upstream update
+ * Updated url
+ * Added mesa makedepends
+ * Switched to upstream desktop file and icons
+ * Removed wrapper scripts
+ * Added mapc binary
+ * Added locales, man pages and docs
+ * Added ChangeLog
diff --git a/extra/neverball/PKGBUILD b/extra/neverball/PKGBUILD
new file mode 100644
index 000000000..126f2b0c0
--- /dev/null
+++ b/extra/neverball/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 63937 2010-01-19 04:44:36Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+pkgname=neverball
+pkgver=1.5.4
+pkgrel=2
+pkgdesc="3D game similar to Super Monkey Ball or Marble Madness"
+arch=('i686' 'x86_64')
+url="http://neverball.org/"
+license=('GPL')
+depends=('sdl_ttf' 'libgl' 'libpng' 'libjpeg>=7' 'libvorbis' 'physfs')
+makedepends=('mesa')
+source=(http://neverball.org/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c523b0f72c2035831310e821162f7bd7')
+sha1sums=('619c227e1958bd60738f12dbbde9b30c91dd79a7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|#define CONFIG_LOCALE "./locale"|#define CONFIG_LOCALE "/usr/share/locale"|' share/base_config.h || return 1
+
+ if [ "${CARCH}" = "i686" ] ;then
+ make ENABLE_NLS=1 DATADIR=/usr/share/neverball SSE_CFLAGS="" || return 1
+ else
+ make ENABLE_NLS=1 DATADIR=/usr/share/neverball || return 1
+ fi
+
+ install -D -m755 neverball "${pkgdir}/usr/bin/neverball" || return 1
+ install -D -m755 neverputt "${pkgdir}/usr/bin/neverputt" || return 1
+ install -D -m755 mapc "${pkgdir}/usr/bin/mapc" || return 1
+
+ install -d "${pkgdir}/usr/share/neverball"
+ cp -r data/* "${pkgdir}/usr/share/neverball/" || return 1
+ find "${pkgdir}/usr/share/neverball" -type f -exec chmod 0644 {} \;
+
+ install -d "${pkgdir}/usr/share/locale"
+ cp -r locale/* "${pkgdir}/usr/share/locale/" || return 1
+
+ install -d "${pkgdir}/usr/share/applications"
+ install -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 dist/*.desktop "${pkgdir}/usr/share/applications/" || return 1
+ install -m644 dist/*.png "${pkgdir}/usr/share/pixmaps/" || return 1
+ ln -s neverball_48.png "${pkgdir}/usr/share/pixmaps/neverball.png" || return 1
+ ln -s neverputt_48.png "${pkgdir}/usr/share/pixmaps/neverputt.png" || return 1
+
+ install -d "${pkgdir}/usr/share/doc/neverball"
+ install -m644 doc/* "${pkgdir}/usr/share/doc/neverball/" || return 1
+
+ install -D -m644 dist/mapc.1 "${pkgdir}/usr/share/man/man1/mapc.1" || return 1
+ install -D -m644 dist/neverball.6 "${pkgdir}/usr/share/man/man6/neverball.6" || return 1
+ install -D -m644 dist/neverputt.6 "${pkgdir}/usr/share/man/man6/neverputt.6" || return 1
+}
diff --git a/extra/nickle/PKGBUILD b/extra/nickle/PKGBUILD
new file mode 100644
index 000000000..735648e07
--- /dev/null
+++ b/extra/nickle/PKGBUILD
@@ -0,0 +1,22 @@
+#$Id: $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=nickle
+pkgver=2.70
+pkgrel=1
+pkgdesc="A programming language based prototyping environment with powerful programming and scripting capabilities"
+arch=('i686' 'x86_64')
+url="http://nickle.org"
+license=('custom')
+depends=('readline')
+source=(http://nickle.org/release/${pkgname}-${pkgver}.tar.gz)
+md5sums=('fbb77ad1c6f80a9a67ae28a2a678ed67')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/nicotine/PKGBUILD b/extra/nicotine/PKGBUILD
new file mode 100644
index 000000000..0be93063f
--- /dev/null
+++ b/extra/nicotine/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 108389 2011-01-30 22:14:15Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: Andrew Wright <andreww@photism.org>
+
+pkgname=nicotine
+pkgver=1.2.16
+pkgrel=2
+pkgdesc="Soulseek music-sharing client, written in python"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('pygtk>=2.14.1' 'mutagen' 'python-geoip>=1.2.4')
+conflicts=(nicotine-plus)
+replaces=(nicotine-plus)
+url="http://sourceforge.net/projects/nicotine-plus/"
+source=(http://downloads.sourceforge.net/project/nicotine-plus/nicotine-plus/${pkgver}/${pkgname}+-${pkgver}.tar.bz2)
+optdepends=('python-sexy: To enable spell checking'
+ 'python-geoip: to enable Geographical blocker')
+md5sums=('ac7433c21ef619a37e079a7ae68da94a')
+
+build() {
+ cd ${srcdir}/${pkgname}+-${pkgver}
+ sed -i -e "s/Icon=nicotine-plus/Icon=nicotine-plus-32px/" files/nicotine.desktop # Fixing FS#22476
+ python2 setup.py install --root=${pkgdir}
+ cd trayicon
+ python2 autogen.py
+ make
+ make DESTDIR=${pkgdir} install
+ ln -s nicotine.py ${pkgdir}/usr/bin/nicotine
+}
diff --git a/extra/nitrogen/ChangeLog b/extra/nitrogen/ChangeLog
new file mode 100644
index 000000000..c37e10baf
--- /dev/null
+++ b/extra/nitrogen/ChangeLog
@@ -0,0 +1,9 @@
+2008-08-04 Alexander Fehr <pizzapunk gmail com>
+
+ * nitrogen-1.4-1:
+ New upstream release.
+ New maintainer.
+ Changed url.
+ Added dependency on hicolor-icon-theme.
+ Added install file (gtk-update-icon-cache).
+ Added ChangeLog.
diff --git a/extra/nitrogen/PKGBUILD b/extra/nitrogen/PKGBUILD
new file mode 100644
index 000000000..b9c902a12
--- /dev/null
+++ b/extra/nitrogen/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 67236 2010-02-05 22:06:57Z ibiru $
+# Maintainer: James Rayner <james@archlinux.org>
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Sebastian Sareyko <public@nooms.de>
+
+pkgname=nitrogen
+pkgver=1.5.1
+pkgrel=1
+pkgdesc="Background browser and setter for X windows"
+arch=('i686' 'x86_64')
+url="http://projects.l3ib.org/nitrogen/"
+license=('GPL')
+depends=('gtkmm' 'hicolor-icon-theme' 'librsvg>=2.26')
+install=nitrogen.install
+source=(http://projects.l3ib.org/nitrogen/files/nitrogen-$pkgver.tar.gz)
+md5sums=('e683d7c10c17bd18eb9fd78c87c4e08c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/nitrogen/nitrogen.install b/extra/nitrogen/nitrogen.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/extra/nitrogen/nitrogen.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/nmap/ChangeLog b/extra/nmap/ChangeLog
new file mode 100644
index 000000000..a1ef5e062
--- /dev/null
+++ b/extra/nmap/ChangeLog
@@ -0,0 +1,17 @@
+
+2008-10-28 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Python 2.6 rebuild.
+
+2008-07-23 Hugo Doria <hugo@archlinux.org>
+
+ * Added pygtk in optdepends: 4.68-3
+
+2008-07-09 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Fixing the pixmaps path for i686: 4.68
+
+2008-07-09 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 4.68
+
diff --git a/extra/nmap/PKGBUILD b/extra/nmap/PKGBUILD
new file mode 100644
index 000000000..b79385d88
--- /dev/null
+++ b/extra/nmap/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 110262 2011-02-18 15:25:57Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=nmap
+pkgver=5.51
+pkgrel=1
+pkgdesc="A network exploration tool and security/port scanner"
+arch=('i686' 'x86_64')
+url="http://nmap.org"
+license=('GPL')
+depends=('pcre' 'openssl' 'libpcap' 'lua')
+# python is needed for zenmap
+makedepends=('python2')
+optdepends=('pygtk: gui for nmap')
+options=('!makeflags')
+source=(http://nmap.org/dist/${pkgname}-${pkgver}.tar.bz2)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ echo "TryExec=/usr/bin/pygtk-demo" >> zenmap/install_scripts/unix/zenmap.desktop
+ echo "TryExec=/usr/bin/pygtk-demo" >> zenmap/install_scripts/unix/zenmap-root.desktop
+
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+
+ # remove zenmap uninstall script
+ rm "${pkgdir}/usr/bin/uninstall_zenmap"
+
+ # install custom GPL2 license
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+md5sums=('0b80d2cb92ace5ebba8095a4c2850275')
diff --git a/extra/normalize/PKGBUILD b/extra/normalize/PKGBUILD
new file mode 100644
index 000000000..b0d56ed4f
--- /dev/null
+++ b/extra/normalize/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 60853 2009-12-07 12:43:05Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=normalize
+pkgver=0.7.7
+pkgrel=4
+pkgdesc="A tool for adjusting the volume of WAV files to a standard level"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('audiofile' 'libmad' 'vorbis-tools' 'lame' 'flac' 'mpg123')
+source=(http://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+url="http://normalize.nongnu.org"
+md5sums=('1749b16fc7a08aa5d0cf9f76eeaa8436')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-audiofile \
+ --with-mad
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/notification-daemon/PKGBUILD b/extra/notification-daemon/PKGBUILD
new file mode 100644
index 000000000..ae298a99d
--- /dev/null
+++ b/extra/notification-daemon/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 112866 2011-03-07 11:32:09Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+
+pkgname=notification-daemon
+pkgver=0.4.0
+pkgrel=5
+pkgdesc="Notification daemon for the desktop notifications framework"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.galago-project.org/specs/notification/"
+depends=('libsexy>=0.1.11' 'libwnck>=2.28.0' 'gconf>=2.28.0' 'gstreamer0.10-base>=0.10.25' 'libnotify>=0.7.1' 'libglade>=2.6.4' 'hicolor-icon-theme')
+groups=('gnome')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool' '!emptydirs')
+install=notification-daemon.install
+source=(http://www.galago-project.org/files/releases/source/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ notification-daemon-0.4.0-libnotify-0.7.patch)
+md5sums=('e61eff9782551d81045bb53e8a801d58'
+ '1708e98353cab38a7c057b4385826c04')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/notification-daemon-0.4.0-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/notification-daemon-1.0 \
+ --localstatedir=/var --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain notification-daemon ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch b/extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch
new file mode 100644
index 000000000..8f5e4c909
--- /dev/null
+++ b/extra/notification-daemon/notification-daemon-0.4.0-libnotify-0.7.patch
@@ -0,0 +1,29 @@
+diff -Nur notification-daemon-0.4.0.orig/src/capplet/notification-properties.c notification-daemon-0.4.0/src/capplet/notification-properties.c
+--- notification-daemon-0.4.0.orig/src/capplet/notification-properties.c 2008-11-20 02:46:16.000000000 -0800
++++ notification-daemon-0.4.0/src/capplet/notification-properties.c 2011-03-07 03:23:07.293334003 -0800
+@@ -28,6 +28,10 @@
+ #include <string.h>
+ #include <libnotify/notify.h>
+
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
++
+ #include "../daemon/stack.h"
+
+ #define GCONF_KEY_DAEMON "/apps/notification-daemon"
+@@ -434,8 +438,12 @@
+
+ dialog->preview = notify_notification_new(_("Notification Test"),
+ _("Just a test"),
+- "gnome-util",
+- NULL);
++ "gnome-util"
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , NULL);
++#endif
+
+ if (!notify_notification_show(dialog->preview, &error))
+ {
diff --git a/extra/notification-daemon/notification-daemon.install b/extra/notification-daemon/notification-daemon.install
new file mode 100644
index 000000000..8a1aa3433
--- /dev/null
+++ b/extra/notification-daemon/notification-daemon.install
@@ -0,0 +1,22 @@
+pkgname=notification-daemon
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/nouveau-drm-lts/COPYING b/extra/nouveau-drm-lts/COPYING
new file mode 100644
index 000000000..6e74c337c
--- /dev/null
+++ b/extra/nouveau-drm-lts/COPYING
@@ -0,0 +1,48 @@
+ Copyright 2005 Adam Jackson.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation on the rights to use, copy, modify, merge,
+ publish, distribute, sub license, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+------------------------------------------------------------------------
+
+ Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS
+ SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
diff --git a/extra/nouveau-drm-lts/Makefile b/extra/nouveau-drm-lts/Makefile
new file mode 100644
index 000000000..123bc5339
--- /dev/null
+++ b/extra/nouveau-drm-lts/Makefile
@@ -0,0 +1,102 @@
+# This Makefile is loosely based on the drm.git/linux-core/Makefile and
+# the preliminary work by Christopher James Halse Rogers.
+# Edited by Pekka Paalanen <pq@iki.fi>
+
+# By default, the build is done against the running linux kernel source.
+# To build against a different kernel source tree, set LINUXDIR:
+#
+# make LINUXDIR=/path/to/kernel/source
+
+# By default, it is assumed the Nouveau kernel tree is found in $PWD/../.
+# To use a different path to the Nouveau kernel tree, set NOUVEAUROOTDIR:
+#
+# make NOUVEAUROOTDIR=/path/to/nouveau/linux-2.6
+
+
+ifndef LINUXDIR
+RUNNING_REL := $(shell uname -r)
+
+LINUXDIR := $(shell if [ -e /lib/modules/$(RUNNING_REL)/source ]; then \
+ echo /lib/modules/$(RUNNING_REL)/source; \
+ else echo /lib/modules/$(RUNNING_REL)/build; fi)
+endif
+
+NOUVEAUGITREMOTE ?= origin
+NOUVEAUROOTDIR ?= $(CURDIR)/..
+override NOUVEAUROOTDIR := $(abspath $(NOUVEAUROOTDIR))
+
+TESTFILE := include/drm/nouveau_drm.h
+ifeq ($(wildcard $(NOUVEAUROOTDIR)/$(TESTFILE)),)
+$(error $(NOUVEAUROOTDIR) does not look like the right kernel tree, \
+ please set NOUVEAUROOTDIR)
+endif
+
+GIT_REVISION := $(shell GIT_DIR=$(NOUVEAUROOTDIR)/.git \
+ git describe --always --abbrev=17 2> /dev/null)
+
+DRMINC := -I$(NOUVEAUROOTDIR)/include/drm
+DRMDIR := $(NOUVEAUROOTDIR)/drivers/gpu/drm
+DRMCFG := \
+ CONFIG_DRM=m \
+ CONFIG_DRM_KMS_HELPER=m \
+ CONFIG_DRM_TTM=m \
+ CONFIG_DRM_NOUVEAU=m \
+ CONFIG_DRM_NOUVEAU_KMS=n \
+ CONFIG_DRM_NOUVEAU_BACKLIGHT=y \
+ CONFIG_DRM_NOUVEAU_DEBUG=y \
+ CONFIG_DRM_I2C_CH7006=m \
+ CONFIG_DRM_TDFX=n \
+ CONFIG_DRM_R128=n \
+ CONFIG_DRM_RADEON=n \
+ CONFIG_DRM_MGA=n \
+ CONFIG_DRM_I810=n \
+ CONFIG_DRM_I830=n \
+ CONFIG_DRM_I915=n \
+ CONFIG_DRM_SIS=n \
+ CONFIG_DRM_SAVAGE=n \
+ CONFIG_DRM_VIA=n
+
+EXTRA_CFLAGS :=
+MYEXTRA_CFLAGS :=
+MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_BACKLIGHT
+MYEXTRA_CFLAGS += -DCONFIG_DRM_NOUVEAU_DEBUG
+
+ifneq ($(GIT_REVISION),)
+MYEXTRA_CFLAGS += '-DGIT_REVISION=\"$(GIT_REVISION)\"'
+endif
+
+MYPARMS := -C $(LINUXDIR) KCPPFLAGS="$(DRMINC)" SUBDIRS="$(DRMDIR)" $(DRMCFG)
+
+MYEXTRA_CFLAGS += $(EXTRA_CFLAGS)
+ifneq ($(MYEXTRA_CFLAGS),)
+MYPARMS += EXTRA_CFLAGS="$(MYEXTRA_CFLAGS)"
+endif
+
+.PHONY: all modules install clean archive FORCE
+
+all: modules
+FORCE:
+
+modules:
+ $(MAKE) $(MYPARMS) modules
+
+install:
+ $(MAKE) $(MYPARMS) modules_install
+
+clean:
+ $(MAKE) $(MYPARMS) clean
+
+archive: newttm-devel-compat.tar.gz newttm-devel.tar.gz master.tar.gz
+
+newttm-devel-compat.tar.gz: EXTRAS=nouveau README-nouveau
+
+%.tar: FORCE
+ GIT_DIR=$(NOUVEAUROOTDIR)/.git \
+ git archive --format=tar --prefix=$*/ $(NOUVEAUGITREMOTE)/$* \
+ drivers/gpu/drm include/drm $(EXTRAS) > $@
+
+%.tar.gz: %.tar
+ gzip -9 -c $< > $@
+
+# The commit id of the archive can be read with
+# $ zcat foo.tar.gz | git get-tar-commit-id
diff --git a/extra/nouveau-drm-lts/PKGBUILD b/extra/nouveau-drm-lts/PKGBUILD
new file mode 100644
index 000000000..74a456fe9
--- /dev/null
+++ b/extra/nouveau-drm-lts/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 115878 2011-03-22 13:23:39Z tpowa $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=nouveau-drm-lts
+_snapdate=20100313
+pkgver=0.0.16_${_snapdate} # see master/drivers/gpu/drm/nouveau/nouveau_drv.h for version
+_kernver='2.6.32-lts'
+pkgrel=5
+pkgdesc="nvidia opensource X driver"
+arch=('i686' 'x86_64')
+url="http://nouveau.freedesktop.org/"
+depends=("kernel26-lts>=2.6.32" "kernel26-lts<2.6.33")
+makedepends=("kernel26-lts-headers>=2.6.32" "kernel26-lts-headers<2.6.33")
+# http://nouveau.freedesktop.org/wiki/InstallDRM#head-771a47a133fba6a5a70253656e76c61e9bff93bd
+optdepends=('nouveau-firmware: needed for very new card (NV50 family and above) to work properly where the OSS replacement does not work well')
+#makedepends=('git' 'autoconf' 'pkgconfig')
+install=nouveau-drm.install
+license=('GPL')
+options=('!strip')
+source=(ftp://ftp.archlinux.org/other/${pkgname/-lts//}/master-${_snapdate}.tar.gz
+ # http://people.freedesktop.org/~pq/nouveau-drm/master.tar.gz
+ # get the Makefile from http://cgit.freedesktop.org/nouveau/linux-2.6/plain/nouveau/Makefile?h=master-compat
+ Makefile)
+md5sums=('ad7ad0fb73d56bcff3d2b54a70c3d511'
+ 'e7d5df80186d5c736e82b0a7d46216bc')
+
+build() {
+ cd ${srcdir}/master
+ mkdir nouveau
+ cp $srcdir/Makefile ${srcdir}/master/nouveau/
+ cd nouveau
+ make LINUXDIR=/lib/modules/${_kernver}/build DRM_MODULES="nouveau"
+}
+
+package() {
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/drm.ko ${pkgdir}/lib/modules/${_kernver}/updates/drm.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/drm_kms_helper.ko ${pkgdir}/lib/modules/${_kernver}/updates/drm_kms_helper.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/nouveau/nouveau.ko ${pkgdir}/lib/modules/${_kernver}/kernel/drivers/video/nouveau.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/ttm/ttm.ko ${pkgdir}/lib/modules/${_kernver}/updates/ttm.ko
+ install -D -m 0644 ${srcdir}/master/drivers/gpu/drm/i2c/ch7006.ko ${pkgdir}/lib/modules/${_kernver}/updates/ch7006.ko
+
+ # install script
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" ${startdir}/nouveau-drm.install
+ # gzip -9 modules
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
diff --git a/extra/nouveau-drm-lts/dont_check_for_pthread.patch b/extra/nouveau-drm-lts/dont_check_for_pthread.patch
new file mode 100644
index 000000000..050f55767
--- /dev/null
+++ b/extra/nouveau-drm-lts/dont_check_for_pthread.patch
@@ -0,0 +1,49 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev],
+diff -ru libdrm-2.4.0/libdrm/intel/Makefile.am libdrm-2.4.0-nostubs/libdrm/intel/Makefile.am
+--- libdrm-2.4.0/libdrm/intel/Makefile.am 2008-10-14 01:39:32.000000000 +0200
++++ libdrm-2.4.0-nostubs/libdrm/intel/Makefile.am 2008-10-21 10:49:00.000000000 +0200
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir)/libdrm \
+ -I$(top_srcdir)/libdrm/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/shared-core
+
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_intel_la_LIBADD = ../libdrm.la
+
+ libdrm_intel_la_SOURCES = \
+ intel_bufmgr.c \
+--- libdrm-2.4.5/libdrm/nouveau/Makefile.am.orig 2009-02-28 19:06:24.000000000 +0000
++++ libdrm-2.4.5/libdrm/nouveau/Makefile.am 2009-02-28 19:06:33.000000000 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir)/libdrm \
+ -I$(top_srcdir)/libdrm/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/shared-core
+
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+
+ libdrm_nouveau_la_SOURCES = \
+ nouveau_device.c \
diff --git a/extra/nouveau-drm-lts/nouveau-drm.install b/extra/nouveau-drm-lts/nouveau-drm.install
new file mode 100644
index 000000000..beadaa563
--- /dev/null
+++ b/extra/nouveau-drm-lts/nouveau-drm.install
@@ -0,0 +1,16 @@
+post_install() {
+ KERNEL_VERSION='2.6.32-lts'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+ echo "if you are running kms in early mode please rebuild your initrd"
+}
+
+post_upgrade() {
+ post_install $1
+ rmmod nouveau || echo 'In order to use the new nouveau module, exit Xserver and unload it manually.'
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.32-lts'
+ depmod -v $KERNEL_VERSION > /dev/null 2>&1
+}
+
diff --git a/extra/nppangband/Makefile.std b/extra/nppangband/Makefile.std
new file mode 100755
index 000000000..5bebf01fa
--- /dev/null
+++ b/extra/nppangband/Makefile.std
@@ -0,0 +1,375 @@
+# File: Makefile.std
+
+# This is not a very "nice" Makefile, but it usually works.
+
+#
+# Note that you may have to make modifications below according
+# to your machine, available libraries, compilation options,
+# and your "visual module" of choice. This Makefile is intended
+# for use with Unix machines running X11, gtk, (n)curses, termcap,
+# or VT100, Slang, Linux VCS or SVGA library,
+# or possibly for "Atari" or "Amiga" computers with "Curses" ports,
+# see below for more information.
+#
+# Note that "main-mac.c", the visual module for the Macintosh,
+# must be compiled in a special way, see elsewhere.
+#
+# Note that "main-win.c", the visual module for Windows,
+# must be compiled in a special way, see elsewhere.
+#
+# Note that "main-ibm.c", "main-dos.c", and "main-emx.c",
+# the visual modules for various types of IBM-PC computers,
+# must be compiled with special Makefiles, see elsewhere.
+#
+# Note that "main-ros.c", the visual module for RISC OS,
+# must be compiled with "Makefile.ros", see elsewhere.
+#
+# Note that "main-ami.c", the visual module for the Amiga,
+# must be compiled with "Makefile.ami", see elsewhere.
+#
+# If you are able to construct "main-xxx.c" and/or "Makefile.xxx"
+# files for a currently unsupported system, please send them to
+# Robert Ruehlmann < rr9@thangorodrim.net > for inclusion in future
+# versions.
+#
+# This Makefile comes with "default" dependencies that may be obsolete.
+#
+
+
+#
+# The "source" and "object" files.
+#
+
+SRCS = \
+ z-util.c z-virt.c z-form.c z-rand.c z-term.c \
+ variable.c tables.c util.c cave.c \
+ object1.c object2.c monster1.c monster2.c \
+ xtra1.c xtra2.c spells1.c spells2.c \
+ melee1.c melee2.c save.c effects.c feature.c files.c \
+ cmd1.c cmd2.c cmd3.c cmd4.c cmd5.c cmd6.c \
+ store.c birth.c load.c quest.c squelch.c \
+ wizard1.c wizard2.c obj-info.c \
+ generate.c dungeon.c init1.c init2.c randart.c \
+ main-cap.c main-gcu.c main-x11.c main-xaw.c main.c \
+ main-gtk.c main-lsl.c main-sla.c main-vcs.c main-xpj.c main-lfb.c \
+ maid-x11.c \
+ use-obj.c
+
+OBJS = \
+ z-util.o z-virt.o z-form.o z-rand.o z-term.o \
+ variable.o tables.o util.o cave.o \
+ object1.o object2.o monster1.o monster2.o \
+ xtra1.o xtra2.o spells1.o spells2.o \
+ melee1.o melee2.o save.o effects.o feature.o files.o \
+ cmd1.o cmd2.o cmd3.o cmd4.o cmd5.o cmd6.o \
+ store.o birth.o load.o quest.o squelch.o \
+ wizard1.o wizard2.o obj-info.o \
+ generate.o dungeon.o init1.o init2.o randart.o \
+ main-cap.o main-gcu.o main-x11.o main-xaw.o main.o \
+ main-gtk.o main-lsl.o main-sla.o main-vcs.o main-xpj.o main-lfb.o \
+ maid-x11.o \
+ use-obj.o
+
+
+
+##
+## Following are some "system" definitions
+##
+## No changes are needed to compile a version that will run on both
+## X11 and Curses, in debugging mode, with maximal warnings, on many
+## normal Unix machines of the Sun OS variety (non-solaris).
+##
+## To use an "alternative" definition, simply "modify" (or "replace")
+## the definition below with one that you like. For example, you can
+## change the compiler to "cc", or remove the "debugging" options, or
+## remove the X11 or Curses support, etc, as desired.
+##
+## With X11, XAW or GTK, you can add -D"USE_XPJ" to CFLAGS to get the
+## 3d-projection module "xpj".
+##
+## See also "config.h" and "h-config.h" for important information.
+##
+## Some "examples" are given below, they can be used by simply
+## removing the FIRST column of "#" signs from the "block" of lines
+## you wish to use, and commenting out "standard" block below.
+##
+## This is not intended to be a "good" Makefile, just a "simple" one.
+##
+
+
+#
+# This is my compiler of choice, it seems to work most everywhere.
+#
+CC = gcc
+
+
+#
+# Standard version (see main-x11.c and main-gcu.c)
+#
+# This version supports both "X11" and "curses" in a single executable.
+#
+# You may have to add various X11 include/library directories to the
+# "CFLAGS", if your machine places files in a weird location.
+#
+# You may be able to remove "-ltermcap" on some machines (ex: Solaris).
+#
+# You may have to replace "-lcurses" with "-lncurses" to use the
+# "new curses" library instead of the "old curses" library, and
+# you may have to add "-I/usr/include/ncurses" to the "CFLAGS".
+#
+# See "main-gcu.c" and "config.h" for some optional "curses" defines,
+# including "USE_GETCH" and "USE_CURS_SET". Note that "config.h" will
+# attempt to "guess" at many of these flags based on your system.
+#
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU"
+#LIBS = -lX11 -lcurses -ltermcap
+
+
+##
+## Variation -- Only support "main-x11.c" (not "main-gcu.c")
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_X11"
+#LIBS = -lX11
+
+
+##
+## Variation -- Only support "main-gcu.c" (not "main-x11.c")
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_GCU"
+#LIBS = -lcurses -ltermcap
+
+
+##
+## Variation -- Use "main-xaw.c" instead of "main-x11.c"
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_XAW" -D"USE_GCU"
+#LIBS = -lXaw -lXmu -lXt -lX11 -lcurses -ltermcap
+
+
+##
+## Variation -- Use "main-gtk.c" instead of "main-x11.c"
+## Note: gtk-config adds GTK and X11 includes and libraries as appropriate.
+##
+#CFLAGS = -Wall -O `gtk-config --cflags` -g -D"USE_GTK" -D"USE_GCU"
+#LIBS = `gtk-config --libs` -lcurses -ltermcap
+
+
+##
+## Variation -- Use "main-cap.c" instead of "main-gcu.c"
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_CAP"
+#LIBS = -lX11 -ltermcap
+
+
+##
+## Variation -- Only work on simple vt100 terminals
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_CAP" -D"USE_HARDCODE"
+
+
+##
+## Variation -- compile for Linux
+##
+## Allows the use of Angband in the console using ncurses,
+## as well as under X11.
+##
+#CFLAGS = -I/usr/X11R6/include -I/usr/include/ncurses -Wall \
+ # -O2 -fno-strength-reduce -D"HAVE_MKSTEMP" \
+ # -D"USE_X11" -D"USE_GCU" -D"USE_NCURSES" -g
+#LIBS = -L/usr/X11R6/lib -lXaw -lXext -lSM -lICE -lXmu -lXt -lX11 -lncurses
+
+
+##
+## Variation -- compile for Linux
+##
+## Allows the use of Angband in the console using curses.
+##
+#CFLAGS = -Wall -O2 -fno-strength-reduce -pipe -D"USE_GCU"
+#LIBS = -lcurses
+
+
+##
+## Variation -- compile for Linux
+##
+## Allows the use of Angband in X11 using the Athena Widget set.
+##
+#CFLAGS = -Wall -O2 -fno-strength-reduce -pipe -g -D"USE_XAW"
+#LIBS = -L/usr/X11R6/lib -lXaw -lXext -lSM -lICE -lXmu -lXt -lX11
+
+
+##
+## Variation -- this might work better than the suggestion above
+##
+CFLAGS = -I/usr/include/ncurses \
+ -Wall -O2 -fno-strength-reduce -fomit-frame-pointer \
+ -D"USE_X11" -D"USE_GCU" \
+ -D"USE_TPOSIX" -D"USE_CURS_SET"
+LIBS = -lX11 -lncurses
+LDFLAGS = -s
+
+
+##
+## Variation -- compile for Solaris
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU" -D"SOLARIS"
+#LIBS = -lX11 -lsocket -lcurses
+
+
+##
+## Variation -- compile for SGI Indigo runnig Irix
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU" -D"SGI"
+#LIBS = -lX11 -lcurses -ltermcap -lsun
+
+
+##
+## Variation -- compile for Dec ALPHA OSF/1 v2.0
+##
+#CC = cc
+##CFLAGS = -std -O -g3 -Olimit 4000 -D"USE_X11" -D"USE_GCU"
+#CFLAGS = -std -g -D"USE_X11" -D"USE_GCU"
+#LIBS = -lX11 -lcurses -ltermcap -lrpcsvc
+
+
+##
+## Variation -- compile for Interactive Unix (ISC) systems
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU" -D"ISC"
+#LIBS = -lX11 -lcurses -lnsl_s -linet -lcposix
+
+
+##
+## Variation -- Support fat binaries under NEXTSTEP
+##
+#CFLAGS = -Wall -O1 -pipe -g -D"USE_GCU" -arch m68k -arch i386
+#LIBS = -lcurses -ltermcap
+
+
+##
+## Variation -- Support Linux + SVGA library
+##
+#CFLAGS = -Wall -O2 -fno-strength-reduce -D"USE_LSL"
+#LIBS = -lz -lvgagl -lvga
+
+
+##
+## Variation -- Support Linux "vcs" (Virtual Console memory) module
+##
+#CFLAGS = -Wall -O2 -fno-strength-reduce -D"USE_VCS"
+#LIBS =
+
+
+##
+## Variation -- Support S-Lang library
+##
+#CFLAGS = -Wall -O2 -fno-strength-reduce -D"USE_SLA" -I/usr/include/slang
+#LIBS = -lslang
+
+
+#
+# Default target.
+#
+all: nppangband
+
+
+#
+# Install the game.
+#
+
+install: nppangband
+ cp nppangband ..
+
+
+#
+# Build the "NPPAngband" program
+#
+
+nppangband: $(OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o nppangband $(OBJS) $(LIBS)
+
+
+#
+# Clean up old junk
+#
+
+clean:
+ -rm -f *.o nppangband
+
+#
+# Generate dependencies automatically
+#
+
+depend:
+ makedepend -D__MAKEDEPEND__ $(SRCS)
+
+
+#
+# Hack -- some file dependencies
+#
+
+HDRS = \
+ h-basic.h \
+ h-define.h h-type.h h-system.h h-config.h
+
+INCS = \
+ angband.h \
+ config.h defines.h types.h externs.h \
+ z-term.h z-rand.h z-util.h z-virt.h z-form.h $(HDRS)
+
+
+birth.o: birth.c $(INCS)
+cave.o: cave.c $(INCS)
+cmd1.o: cmd1.c $(INCS)
+cmd2.o: cmd2.c $(INCS)
+cmd3.o: cmd3.c $(INCS)
+cmd4.o: cmd4.c $(INCS)
+cmd5.o: cmd5.c $(INCS)
+cmd6.o: cmd6.c $(INCS)
+dungeon.o: dungeon.c $(INCS)
+effects.o: effects.c $(INCS)
+feature.o: feature.c $(INCS)
+files.o: files.c $(INCS)
+generate.o: generate.c $(INCS)
+init1.o: init1.c $(INCS) init.h
+init2.o: init2.c $(INCS) init.h
+load.o: load.c $(INCS) init.h
+maid-x11.o: maid-x11.c $(INCS) maid-x11.h
+main-cap.o: main-cap.c $(INCS) main.h
+main-gcu.o: main-gcu.c $(INCS) main.h
+main-gtk.o: main-gtk.c $(INCS) main.h maid-x11.h
+main-lsl.o: main-lsl.c $(INCS) main.h
+main-sla.o: main-sla.c $(INCS) main.h
+main-vcs.o: main-vcs.c $(INCS) main.h
+main-x11.o: main-x11.c $(INCS) main.h maid-x11.h
+main-xaw.o: main-xaw.c $(INCS) main.h maid-x11.h
+main-xpj.o: main-xpj.c $(INCS) main.h maid-x11.h
+main-lfb.o: main-lfb.c $(INCS) main.h
+main.o: main.c $(INCS) main.h
+melee1.o: melee1.c $(INCS)
+melee2.o: melee2.c $(INCS)
+monster1.o: monster1.c $(INCS)
+monster2.o: monster2.c $(INCS)
+obj-info.o: obj-info.c $(INCS)
+object1.o: object1.c $(INCS)
+object2.o: object2.c $(INCS)
+quest.o: quest.c $(INCS)
+randart.o: randart.c $(INCS) init.h
+save.o: save.c $(INCS)
+spells1.o: spells1.c $(INCS)
+spells2.o: spells2.c $(INCS)
+squelch.o: squelch.c $(INCS)
+store.o: store.c $(INCS)
+tables.o: tables.c $(INCS)
+use-obj.o: use-obj.c $(INCS)
+util.o: util.c $(INCS)
+variable.o: variable.c $(INCS)
+wizard1.o: wizard1.c $(INCS)
+wizard2.o: wizard2.c $(INCS)
+xtra1.o: xtra1.c $(INCS)
+xtra2.o: xtra2.c $(INCS)
+z-form.o: z-form.c $(HDRS) z-form.h z-util.h z-virt.h
+z-rand.o: z-rand.c $(HDRS) z-rand.h
+z-term.o: z-term.c $(HDRS) z-term.h z-virt.h
+z-util.o: z-util.c $(HDRS) z-util.h
+z-virt.o: z-virt.c $(HDRS) z-virt.h z-util.h
+
diff --git a/extra/nppangband/PKGBUILD b/extra/nppangband/PKGBUILD
new file mode 100644
index 000000000..988ddcf52
--- /dev/null
+++ b/extra/nppangband/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 58001 2009-11-03 08:18:40Z giovanni $
+# Maintainer: James Rayner <iphitus@gmail.com>
+
+pkgname=nppangband
+pkgver=0.5.0.25
+pkgrel=1.1
+pkgdesc="A variant of Angband that attempts to take popular ideas from other variants"
+url="http://www.assembla.com/wiki/show/NPPAngband"
+depends=('ncurses' 'libx11')
+makedepends=('libxaw' 'xorg-font-utils')
+source=(http://www.assembla.com/spaces/NPPAngband/documents/dmfeFgWJir3PuseJe5afGb/download/npp050-rev25-src.zip)
+license=('custom')
+arch=('i686' 'x86_64')
+
+build() {
+
+ cd $srcdir/npp050-rev25-src/src
+ sed 's@# define DEFAULT_PATH "./lib/"@# define DEFAULT_PATH "/usr/share/nppangband/"@' -i config.h
+ sed -i 's/-D"USE_LFB"//g' Makefile.std # Remove framebuffer support, does not compile,
+ make -f Makefile.std
+
+
+ # Fix fonts
+ cd ../lib/xtra/font/
+ tr -d '\r' < compile_bdf_fonts.sh > compile_bdf_fonts2.sh # Convert line endings dos->unix
+ sed -i "s/\.bdf/\.bdf;/g" compile_bdf_fonts2.sh # fix syntax error, missing ;.
+ bash compile_bdf_fonts2.sh # no shebang, use bash explicitly
+
+ # Install
+ cd $srcdir/npp050-rev25-src/
+ mkdir -p $pkgdir/usr/bin $pkgdir/usr/share
+ cp -R lib $pkgdir/usr/share/nppangband/
+ chmod -R 775 $pkgdir/usr/share/nppangband/
+ chown -R root:games $pkgdir/usr/share/nppangband/
+ install -m755 src/nppangband $pkgdir/usr/bin/nppangband
+
+ # install custom license
+ install -Dm644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
+
+md5sums=('776d387ccbca31edf7eb30eb1402b0c9')
diff --git a/extra/nspr/PKGBUILD b/extra/nspr/PKGBUILD
new file mode 100644
index 000000000..8264735d7
--- /dev/null
+++ b/extra/nspr/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 108496 2011-01-31 15:55:57Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=nspr
+pkgver=4.8.7
+pkgrel=1
+pkgdesc="Netscape Portable Runtime"
+arch=(i686 x86_64)
+url="http://www.mozilla.org/projects/nspr/"
+license=('MPL' 'GPL')
+depends=('glibc')
+makedepends=('zip')
+options=(!emptydirs)
+source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${pkgname}-${pkgver}.tar.gz
+ nspr.pc.in)
+md5sums=('97e30989a56ab813453b71261849c200'
+ 'bce1611f3117b53fc904cab549c09967')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ if [ "$CARCH" = "x86_64" ]; then
+ confflags="--enable-64bit"
+ else
+ confflags=""
+ fi
+ unset CFLAGS
+ unset CXXFLAGS
+ ./mozilla/nsprpub/configure \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --includedir=/usr/include/nspr \
+ --enable-optimize \
+ --disable-debug ${confflags}
+ make
+ make DESTDIR="${pkgdir}" install
+
+ NSPR_LIBS=`./config/nspr-config --libs`
+ NSPR_CFLAGS=`./config/nspr-config --cflags`
+ NSPR_VERSION=`./config/nspr-config --version`
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ sed "${srcdir}/nspr.pc.in" -e "s,%libdir%,/usr/lib," \
+ -e "s,%prefix%,/usr," \
+ -e "s,%exec_prefix%,/usr/bin," \
+ -e "s,%includedir%,/usr/include/nspr," \
+ -e "s,%NSPR_VERSION%,${NSPR_VERSION}," \
+ -e "s,%FULL_NSPR_LIBS%,${NSPR_LIBS}," \
+ -e "s,%FULL_NSPR_CFLAGS%,${NSPR_CFLAGS}," > "${pkgdir}/usr/lib/pkgconfig/nspr.pc"
+ chmod 644 "${pkgdir}/usr/lib/pkgconfig/nspr.pc"
+ ln -sf nspr.pc "${pkgdir}/usr/lib/pkgconfig/mozilla-nspr.pc"
+
+ chmod 644 ${pkgdir}/usr/lib/*.a
+
+ rm -rf "${pkgdir}/usr/bin/compile-et.pl" \
+ "${pkgdir}/usr/bin/prerr.properties" \
+ "${pkgdir}/usr/share/aclocal/nspr.m4" \
+ "${pkgdir}/usr/include/nspr/md"
+}
diff --git a/extra/nspr/nspr.pc.in b/extra/nspr/nspr.pc.in
new file mode 100644
index 000000000..1d8f4a0ca
--- /dev/null
+++ b/extra/nspr/nspr.pc.in
@@ -0,0 +1,10 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version: %NSPR_VERSION%
+Libs: %FULL_NSPR_LIBS%
+Cflags: %FULL_NSPR_CFLAGS%
diff --git a/extra/nss-mdns/PKGBUILD b/extra/nss-mdns/PKGBUILD
new file mode 100644
index 000000000..6fe8d5653
--- /dev/null
+++ b/extra/nss-mdns/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 56016 2009-10-17 23:24:29Z giovanni $
+# Contributor: Travis Willard <travis@archlinux.org>
+
+pkgname=nss-mdns
+pkgver=0.10
+pkgrel=2
+pkgdesc="glibc plugin providing host name resolution via mDNS"
+arch=('i686' 'x86_64')
+url="http://0pointer.de/lennart/projects/nss-mdns/"
+license=('lgpl')
+depends=('glibc')
+makedepends=('pkgconfig')
+backup=('etc/mdns.allow')
+install=nss-mdns.install
+source=(http://0pointer.de/lennart/projects/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ mdns.allow)
+md5sums=('03938f17646efbb50aa70ba5f99f51d7'
+ '904abb492fb1f56722826c0c3a997bf0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/ \
+ --disable-lynx \
+ --enable-avahi
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ mkdir -p ${startdir}/pkg/etc
+ install -m644 ../mdns.allow ${startdir}/pkg/etc/mdns.allow
+}
+
diff --git a/extra/nss-mdns/mdns.allow b/extra/nss-mdns/mdns.allow
new file mode 100644
index 000000000..ed64c974c
--- /dev/null
+++ b/extra/nss-mdns/mdns.allow
@@ -0,0 +1,8 @@
+#
+# /etc/mdns.allow
+#
+
+.local.
+.local
+
+# End of file
diff --git a/extra/nss-mdns/nss-mdns.install b/extra/nss-mdns/nss-mdns.install
new file mode 100644
index 000000000..ed0fd0c24
--- /dev/null
+++ b/extra/nss-mdns/nss-mdns.install
@@ -0,0 +1,24 @@
+post_install() {
+ cat << 'EOM'
+==> To enable IPv4 multicast DNS lookups, append 'mdns4' to the hosts line
+ in /etc/nsswitch.conf. Use 'mdns6' for IPv6 or 'mdns' for both.
+EOM
+}
+
+post_upgrade() {
+ if [ "$2" == "0.7-1" ]; then
+ echo -n "disabling mdns lookups in /etc/nsswitch.conf... "
+ sed -i -e '/^hosts: / s/ mdns\([46]\)\?\>//g' etc/nsswitch.conf && echo "done."
+ fi
+ cat << 'EOM'
+==> Please note that due to security reasons from version 0.9 on the
+ minimal mDNS stack included in nss-mdns (dubbed "legacy") is no
+ longer built - nss-mdns will not work unless Avahi is running.
+EOM
+
+ post_install
+}
+
+op=$1
+shift
+$op $*
diff --git a/extra/nss/PKGBUILD b/extra/nss/PKGBUILD
new file mode 100644
index 000000000..039509b3c
--- /dev/null
+++ b/extra/nss/PKGBUILD
@@ -0,0 +1,102 @@
+# $Id: PKGBUILD 109101 2011-02-06 10:02:09Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=nss
+pkgver=3.12.9
+pkgrel=1
+pkgdesc="Mozilla Network Security Services"
+arch=(i686 x86_64)
+url="http://www.mozilla.org/projects/security/pki/nss/"
+license=('MPL' 'GPL')
+_nsprver=4.8.7
+depends=("nspr>=${_nsprver}" 'sqlite3>=3.7.5' 'zlib' 'sh')
+makedepends=('perl')
+replaces=('nss-nspr')
+source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/${pkgname}-${pkgver}.tar.gz
+ nss-no-rpath.patch
+ nss.pc.in
+ nss-config.in
+ add_spi+cacert_ca_certs.patch
+ ssl-renegotiate-transitional.patch)
+options=('!strip')
+md5sums=('bd32f183ca28440c1744650be31a9ccc'
+ 'e5c97db0c884d5f4cfda21e562dc9bba'
+ 'c547b030c57fe1ed8b77c73bf52b3ded'
+ '46bee81908f1e5b26d6a7a2e14c64d9f'
+ '7f39c19b1dfd62d7db7d8bf19f156fed'
+ 'd83c7b61abb7e9f8f7bcd157183d1ade')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # Adds the SPI Inc. and CAcert.org CA certificates - patch from Debian
+ patch -Np1 -i "${srcdir}/add_spi+cacert_ca_certs.patch"
+ # Adds transitional SSL renegotiate support - patch from Debian
+ patch -Np1 -i "${srcdir}/ssl-renegotiate-transitional.patch"
+ # Removes rpath
+ patch -Np0 -i "${srcdir}/nss-no-rpath.patch"
+
+ cd mozilla/security/nss/lib/ckfw/builtins
+ make generate
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ unset CFLAGS
+ unset CXXFLAGS
+ export BUILD_OPT=1
+ export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+ export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSPR_INCLUDE_DIR=`pkg-config --cflags-only-I nspr | sed 's/-I//'`
+ export NSPR_LIB_DIR=`pkg-config --libs-only-L nspr | sed 's/-L.//'`
+
+ [ "$CARCH" = "x86_64" ] && export USE_64=1
+
+ make -j 1 -C mozilla/security/coreconf
+ make -j 1 -C mozilla/security/dbm
+ make -j 1 -C mozilla/security/nss
+
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m755 -d "${pkgdir}/usr/bin"
+ install -m755 -d "${pkgdir}/usr/include/nss"
+
+ NSS_VMAJOR=`grep "#define.*NSS_VMAJOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+ NSS_VMINOR=`grep "#define.*NSS_VMINOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+ NSS_VPATCH=`grep "#define.*NSS_VPATCH" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+
+ sed "${srcdir}/nss.pc.in" -e "s,%libdir%,/usr/lib,g" \
+ -e "s,%prefix%,/usr,g" \
+ -e "s,%exec_prefix%,/usr/bin,g" \
+ -e "s,%includedir%,/usr/include/nss,g" \
+ -e "s,%NSPR_VERSION%,${pkgver},g" \
+ -e "s,%NSS_VERSION%,${pkgver},g" > \
+ "${pkgdir}/usr/lib/pkgconfig/nss.pc"
+ ln -sf nss.pc "${pkgdir}/usr/lib/pkgconfig/mozilla-nss.pc"
+ chmod 644 ${pkgdir}/usr/lib/pkgconfig/*.pc
+
+ sed "${srcdir}/nss-config.in" -e "s,@libdir@,/usr/lib,g" \
+ -e "s,@prefix@,/usr/bin,g" \
+ -e "s,@exec_prefix@,/usr/bin,g" \
+ -e "s,@includedir@,/usr/include/nss,g" \
+ -e "s,@MOD_MAJOR_VERSION@,${NSS_VMAJOR},g" \
+ -e "s,@MOD_MINOR_VERSION@,${NSS_VMINOR},g" \
+ -e "s,@MOD_PATCH_VERSION@,${NSS_VPATCH},g" \
+ > "${pkgdir}/usr/bin/nss-config"
+ chmod 755 "${pkgdir}/usr/bin/nss-config"
+
+ for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so \
+ libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so
+ do
+ install -m755 mozilla/dist/*.OBJ/lib/${file} "${pkgdir}/usr/lib/"
+ done
+
+ install -m644 mozilla/dist/*.OBJ/lib/libcrmf.a "${pkgdir}/usr/lib/"
+ install -m644 mozilla/dist/*.OBJ/lib/*.chk "${pkgdir}/usr/lib/"
+
+ for file in certutil cmsutil crlutil modutil pk12util shlibsign signtool signver ssltap; do
+ install -m755 mozilla/dist/*.OBJ/bin/${file} "${pkgdir}/usr/bin/"
+ done
+
+ install -m644 mozilla/dist/public/nss/*.h "${pkgdir}/usr/include/nss/"
+}
diff --git a/extra/nss/add_spi+cacert_ca_certs.patch b/extra/nss/add_spi+cacert_ca_certs.patch
new file mode 100644
index 000000000..1cc7c18f5
--- /dev/null
+++ b/extra/nss/add_spi+cacert_ca_certs.patch
@@ -0,0 +1,561 @@
+--- a/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
++++ b/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
+@@ -20926,3 +20926,558 @@ CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "CAcert.org Class 1 Root CA"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 1 Root CA"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\000
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\007\075\060\202\005\045\240\003\002\001\002\002\001\000
++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060
++\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164
++\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164
++\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056
++\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101
++\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165
++\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110
++\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100
++\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\063
++\060\063\063\060\061\062\062\071\064\071\132\027\015\063\063\060
++\063\062\071\061\062\062\071\064\071\132\060\171\061\020\060\016
++\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036
++\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057
++\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042
++\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164
++\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151
++\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011
++\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162
++\164\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110
++\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002
++\012\002\202\002\001\000\316\042\300\342\106\175\354\066\050\007
++\120\226\362\240\063\100\214\113\361\073\146\077\061\345\153\002
++\066\333\326\174\366\361\210\217\116\167\066\005\101\225\371\011
++\360\022\317\106\206\163\140\267\156\176\350\300\130\144\256\315
++\260\255\105\027\014\143\372\147\012\350\326\322\277\076\347\230
++\304\360\114\372\340\003\273\065\135\154\041\336\236\040\331\272
++\315\146\062\067\162\372\367\010\365\307\315\130\311\216\347\016
++\136\352\076\376\034\241\024\012\025\154\206\204\133\144\146\052
++\172\251\113\123\171\365\210\242\173\356\057\012\141\053\215\262
++\176\115\126\245\023\354\352\332\222\236\254\104\101\036\130\140
++\145\005\146\370\300\104\275\313\224\367\102\176\013\367\145\150
++\230\121\005\360\363\005\221\004\035\033\027\202\354\310\127\273
++\303\153\172\210\361\260\162\314\045\133\040\221\354\026\002\022
++\217\062\351\027\030\110\320\307\005\056\002\060\102\270\045\234
++\005\153\077\252\072\247\353\123\110\367\350\322\266\007\230\334
++\033\306\064\177\177\311\034\202\172\005\130\053\010\133\363\070
++\242\253\027\135\146\311\230\327\236\020\213\242\322\335\164\232
++\367\161\014\162\140\337\315\157\230\063\235\226\064\166\076\044
++\172\222\260\016\225\036\157\346\240\105\070\107\252\327\101\355
++\112\267\022\366\327\033\203\212\017\056\330\011\266\131\327\252
++\004\377\322\223\175\150\056\335\213\113\253\130\272\057\215\352
++\225\247\240\303\124\211\245\373\333\213\121\042\235\262\303\276
++\021\276\054\221\206\213\226\170\255\040\323\212\057\032\077\306
++\320\121\145\207\041\261\031\001\145\177\105\034\207\365\174\320
++\101\114\117\051\230\041\375\063\037\165\014\004\121\372\031\167
++\333\324\024\034\356\201\303\035\365\230\267\151\006\221\042\335
++\000\120\314\201\061\254\022\007\173\070\332\150\133\346\053\324
++\176\311\137\255\350\353\162\114\363\001\345\113\040\277\232\246
++\127\312\221\000\001\213\241\165\041\067\265\143\015\147\076\106
++\117\160\040\147\316\305\326\131\333\002\340\360\322\313\315\272
++\142\267\220\101\350\335\040\344\051\274\144\051\102\310\042\334
++\170\232\377\103\354\230\033\011\121\113\132\132\302\161\361\304
++\313\163\251\345\241\013\002\003\001\000\001\243\202\001\316\060
++\202\001\312\060\035\006\003\125\035\016\004\026\004\024\026\265
++\062\033\324\307\363\340\346\216\363\275\322\260\072\356\262\071
++\030\321\060\201\243\006\003\125\035\043\004\201\233\060\201\230
++\200\024\026\265\062\033\324\307\363\340\346\216\363\275\322\260
++\072\356\262\071\030\321\241\175\244\173\060\171\061\020\060\016
++\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036
++\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057
++\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042
++\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164
++\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151
++\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011
++\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162
++\164\056\157\162\147\202\001\000\060\017\006\003\125\035\023\001
++\001\377\004\005\060\003\001\001\377\060\062\006\003\125\035\037
++\004\053\060\051\060\047\240\045\240\043\206\041\150\164\164\160
++\163\072\057\057\167\167\167\056\143\141\143\145\162\164\056\157
++\162\147\057\162\145\166\157\153\145\056\143\162\154\060\060\006
++\011\140\206\110\001\206\370\102\001\004\004\043\026\041\150\164
++\164\160\163\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\057\162\145\166\157\153\145\056\143\162\154\060
++\064\006\011\140\206\110\001\206\370\102\001\010\004\047\026\045
++\150\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162
++\164\056\157\162\147\057\151\156\144\145\170\056\160\150\160\077
++\151\144\075\061\060\060\126\006\011\140\206\110\001\206\370\102
++\001\015\004\111\026\107\124\157\040\147\145\164\040\171\157\165
++\162\040\157\167\156\040\143\145\162\164\151\146\151\143\141\164
++\145\040\146\157\162\040\106\122\105\105\040\150\145\141\144\040
++\157\166\145\162\040\164\157\040\150\164\164\160\072\057\057\167
++\167\167\056\143\141\143\145\162\164\056\157\162\147\060\015\006
++\011\052\206\110\206\367\015\001\001\004\005\000\003\202\002\001
++\000\050\307\356\234\202\002\272\134\200\022\312\065\012\035\201
++\157\211\152\231\314\362\150\017\177\247\341\215\130\225\076\275
++\362\006\303\220\132\254\265\140\366\231\103\001\243\210\160\234
++\235\142\235\244\207\257\147\130\015\060\066\073\346\255\110\323
++\313\164\002\206\161\076\342\053\003\150\361\064\142\100\106\073
++\123\352\050\364\254\373\146\225\123\212\115\135\375\073\331\140
++\327\312\171\151\073\261\145\222\246\306\201\202\134\234\315\353
++\115\001\212\245\337\021\125\252\025\312\037\067\300\202\230\160
++\141\333\152\174\226\243\216\056\124\076\117\041\251\220\357\334
++\202\277\334\350\105\255\115\220\163\010\074\224\145\260\004\231
++\166\177\342\274\302\152\025\252\227\004\067\044\330\036\224\116
++\155\016\121\276\326\304\217\312\226\155\367\103\337\350\060\145
++\047\073\173\273\103\103\143\304\103\367\262\354\150\314\341\031
++\216\042\373\230\341\173\132\076\001\067\073\213\010\260\242\363
++\225\116\032\313\233\315\232\261\333\262\160\360\055\112\333\330
++\260\343\157\105\110\063\022\377\376\074\062\052\124\367\304\367
++\212\360\210\043\302\107\376\144\172\161\300\321\036\246\143\260
++\007\176\244\057\323\001\217\334\237\053\266\306\010\251\017\223
++\110\045\374\022\375\237\102\334\363\304\076\366\127\260\327\335
++\151\321\006\167\064\012\113\322\312\240\377\034\306\214\311\026
++\276\304\314\062\067\150\163\137\010\373\121\367\111\123\066\005
++\012\225\002\114\362\171\032\020\366\330\072\165\234\363\035\361
++\242\015\160\147\206\033\263\026\365\057\345\244\353\171\206\371
++\075\013\302\163\013\245\231\254\157\374\147\270\345\057\013\246
++\030\044\215\173\321\110\065\051\030\100\254\223\140\341\226\206
++\120\264\172\131\330\217\041\013\237\317\202\221\306\073\277\153
++\334\007\221\271\227\126\043\252\266\154\224\306\110\006\074\344
++\316\116\252\344\366\057\011\334\123\157\056\374\164\353\072\143
++\231\302\246\254\211\274\247\262\104\240\015\212\020\343\154\362
++\044\313\372\233\237\160\107\056\336\024\213\324\262\040\011\226
++\242\144\361\044\034\334\241\065\234\025\262\324\274\125\056\175
++\006\365\234\016\125\364\132\326\223\332\166\255\045\163\114\305
++\103
++END
++
++# Trust for Certificate "CAcert.org Class 1 Root CA"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 1 Root CA"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\023\134\354\066\364\234\270\351\073\032\262\160\315\200\210\106
++\166\316\217\063
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\246\033\067\136\071\015\234\066\124\356\275\040\061\106\037\153
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\000
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "CAcert.org Class 3 Root CA"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 3 Root CA"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\124\061\024\060\022\006\003\125\004\012\023\013\103\101\143
++\145\162\164\040\111\156\143\056\061\036\060\034\006\003\125\004
++\013\023\025\150\164\164\160\072\057\057\167\167\167\056\103\101
++\143\145\162\164\056\157\162\147\061\034\060\032\006\003\125\004
++\003\023\023\103\101\143\145\162\164\040\103\154\141\163\163\040
++\063\040\122\157\157\164
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\001
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\006\010\060\202\003\360\240\003\002\001\002\002\001\001
++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060
++\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164
++\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164
++\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056
++\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101
++\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165
++\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110
++\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100
++\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\065
++\061\060\061\064\060\067\063\066\065\065\132\027\015\063\063\060
++\063\062\070\060\067\063\066\065\065\132\060\124\061\024\060\022
++\006\003\125\004\012\023\013\103\101\143\145\162\164\040\111\156
++\143\056\061\036\060\034\006\003\125\004\013\023\025\150\164\164
++\160\072\057\057\167\167\167\056\103\101\143\145\162\164\056\157
++\162\147\061\034\060\032\006\003\125\004\003\023\023\103\101\143
++\145\162\164\040\103\154\141\163\163\040\063\040\122\157\157\164
++\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001
++\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001
++\000\253\111\065\021\110\174\322\046\176\123\224\317\103\251\335
++\050\327\102\052\213\363\207\170\031\130\174\017\236\332\211\175
++\341\373\353\162\220\015\164\241\226\144\253\237\240\044\231\163
++\332\342\125\166\307\027\173\365\004\254\106\270\303\276\177\144
++\215\020\154\044\363\141\234\300\362\220\372\121\346\365\151\001
++\143\303\017\126\342\112\102\317\342\104\214\045\050\250\305\171
++\011\175\106\271\212\363\351\363\064\051\010\105\344\034\237\313
++\224\004\034\201\250\024\263\230\145\304\103\354\116\202\215\011
++\321\275\252\133\215\222\320\354\336\220\305\177\012\302\343\353
++\346\061\132\136\164\076\227\063\131\350\303\003\075\140\063\277
++\367\321\157\107\304\315\356\142\203\122\156\056\010\232\244\331
++\025\030\221\246\205\222\107\260\256\110\353\155\267\041\354\205
++\032\150\162\065\253\377\360\020\135\300\364\224\247\152\325\073
++\222\176\114\220\005\176\223\301\054\213\244\216\142\164\025\161
++\156\013\161\003\352\257\025\070\232\324\322\005\162\157\214\371
++\053\353\132\162\045\371\071\106\343\162\033\076\004\303\144\047
++\042\020\052\212\117\130\247\003\255\276\264\056\023\355\135\252
++\110\327\325\175\324\052\173\134\372\106\004\120\344\314\016\102
++\133\214\355\333\362\317\374\226\223\340\333\021\066\124\142\064
++\070\217\014\140\233\073\227\126\070\255\363\322\133\213\240\133
++\352\116\226\270\174\327\325\240\206\160\100\323\221\051\267\242
++\074\255\365\214\273\317\032\222\212\344\064\173\300\330\154\137
++\351\012\302\303\247\040\232\132\337\054\135\122\134\272\107\325
++\233\357\044\050\160\070\040\057\325\177\051\300\262\101\003\150
++\222\314\340\234\314\227\113\105\357\072\020\012\253\160\072\230
++\225\160\255\065\261\352\205\053\244\034\200\041\061\251\256\140
++\172\200\046\110\000\270\001\300\223\143\125\042\221\074\126\347
++\257\333\072\045\363\217\061\124\352\046\213\201\131\371\241\321
++\123\021\305\173\235\003\366\164\021\340\155\261\054\077\054\206
++\221\231\161\232\246\167\213\064\140\321\024\264\054\254\235\257
++\214\020\323\237\304\152\370\157\023\374\163\131\367\146\102\164
++\036\212\343\370\334\322\157\230\234\313\107\230\225\100\005\373
++\351\002\003\001\000\001\243\201\277\060\201\274\060\017\006\003
++\125\035\023\001\001\377\004\005\060\003\001\001\377\060\135\006
++\010\053\006\001\005\005\007\001\001\004\121\060\117\060\043\006
++\010\053\006\001\005\005\007\060\001\206\027\150\164\164\160\072
++\057\057\157\143\163\160\056\103\101\143\145\162\164\056\157\162
++\147\057\060\050\006\010\053\006\001\005\005\007\060\002\206\034
++\150\164\164\160\072\057\057\167\167\167\056\103\101\143\145\162
++\164\056\157\162\147\057\143\141\056\143\162\164\060\112\006\003
++\125\035\040\004\103\060\101\060\077\006\010\053\006\001\004\001
++\201\220\112\060\063\060\061\006\010\053\006\001\005\005\007\002
++\001\026\045\150\164\164\160\072\057\057\167\167\167\056\103\101
++\143\145\162\164\056\157\162\147\057\151\156\144\145\170\056\160
++\150\160\077\151\144\075\061\060\060\015\006\011\052\206\110\206
++\367\015\001\001\004\005\000\003\202\002\001\000\177\010\210\241
++\332\032\120\111\332\211\373\241\010\162\363\212\367\036\304\072
++\264\171\133\040\060\261\105\336\302\135\323\145\151\361\302\135
++\124\124\074\205\137\271\173\102\221\302\231\375\033\121\233\253
++\106\245\241\020\123\236\155\210\254\163\156\054\063\246\360\364
++\236\340\165\301\076\210\105\251\341\146\103\376\126\132\321\172
++\101\170\367\100\332\112\072\361\013\133\245\273\026\006\346\302
++\347\223\271\205\115\227\117\261\036\070\103\200\357\233\015\214
++\357\270\247\140\000\207\127\175\036\104\034\313\043\357\233\074
++\231\235\257\265\051\034\105\171\026\226\115\047\155\361\034\154
++\303\302\125\144\263\274\024\342\363\244\037\036\062\374\047\025
++\005\317\335\056\256\076\202\141\173\360\041\020\030\366\104\352
++\123\071\371\334\320\232\040\340\306\273\340\273\132\117\304\231
++\310\007\275\265\275\242\333\056\142\015\102\064\101\274\377\213
++\212\365\121\042\252\210\060\000\342\260\324\274\276\145\272\325
++\003\127\171\233\350\334\310\115\370\120\355\221\245\122\050\242
++\254\373\066\130\076\351\224\053\221\120\207\033\326\136\326\214
++\314\367\017\020\014\122\116\320\026\141\345\345\012\154\277\027
++\307\162\106\127\234\230\365\154\140\143\172\157\136\271\116\057
++\310\271\271\273\152\205\274\230\015\355\371\076\227\204\064\224
++\256\000\257\241\345\347\222\156\116\275\363\342\331\024\213\134
++\322\353\001\154\240\027\245\055\020\353\234\172\112\275\275\356
++\316\375\355\042\100\253\160\070\210\365\012\207\152\302\253\005
++\140\311\110\005\332\123\301\336\104\167\152\263\363\074\074\355
++\200\274\246\070\112\051\044\137\376\131\073\233\045\172\126\143
++\000\144\271\135\244\142\175\127\066\117\255\203\357\037\222\123
++\240\216\167\127\335\345\141\021\075\043\000\220\114\074\372\243
++\140\223\004\243\257\065\366\016\152\217\117\112\140\247\205\005
++\154\106\241\217\364\307\166\343\241\131\127\367\161\262\304\156
++\024\134\155\155\101\146\337\033\223\261\324\000\303\356\313\317
++\074\075\041\200\251\137\143\145\374\335\340\137\244\364\053\360
++\205\161\101\324\147\045\373\032\261\227\256\326\231\202\023\101
++\322\156\245\033\231\047\200\347\013\251\250\000
++END
++
++# Trust for Certificate "CAcert.org Class 3 Root CA"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 3 Root CA"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\333\114\102\151\007\077\351\302\243\175\211\012\134\033\030\304
++\030\116\052\055
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\163\077\065\124\035\104\311\351\132\112\357\121\255\003\006\266
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\001
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "Software in the Public Interest, Inc. Root CA (2008)"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\011\000\350\216\266\311\370\052\024\050
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\010\016\060\202\005\366\240\003\002\001\002\002\011\000
++\350\216\266\311\370\052\024\050\060\015\006\011\052\206\110\206
++\367\015\001\001\005\005\000\060\201\274\061\013\060\011\006\003
++\125\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010
++\023\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125
++\004\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163
++\061\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167
++\141\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151
++\143\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003
++\125\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061
++\036\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146
++\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061
++\045\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026
++\150\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151
++\156\143\056\157\162\147\060\036\027\015\060\070\060\065\061\063
++\060\070\060\067\065\066\132\027\015\061\070\060\065\061\061\060
++\070\060\067\065\066\132\060\201\274\061\013\060\011\006\003\125
++\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010\023
++\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125\004
++\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163\061
++\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167\141
++\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151\143
++\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003\125
++\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061\036
++\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146\151
++\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061\045
++\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026\150
++\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151\156
++\143\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110
++\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002
++\012\002\202\002\001\000\334\066\346\107\102\302\304\121\165\051
++\207\100\303\330\216\041\006\322\030\116\353\357\040\275\220\074
++\205\020\023\214\051\133\224\143\366\364\055\361\006\102\221\271
++\031\304\102\151\010\277\213\066\105\352\050\005\063\111\110\240
++\047\103\223\065\212\101\330\170\263\360\357\263\156\055\335\321
++\313\175\352\364\165\046\323\076\220\072\356\327\347\054\004\265
++\174\341\365\174\305\116\357\167\275\134\242\223\063\222\316\175
++\201\110\317\153\265\042\054\010\203\375\323\325\317\073\055\375
++\265\111\220\133\366\255\115\023\312\336\323\246\235\123\121\161
++\143\106\370\112\026\134\230\356\055\155\232\026\241\166\220\342
++\140\103\231\326\211\326\154\056\172\230\262\013\003\054\343\172
++\117\307\335\343\314\343\112\152\215\171\122\372\364\301\257\056
++\217\052\010\313\033\051\202\222\162\103\274\316\210\251\252\247
++\212\121\103\125\205\232\067\003\170\223\310\360\275\264\101\310
++\007\102\232\313\065\227\172\212\201\145\336\035\124\010\001\361
++\144\134\267\027\032\121\274\036\303\131\207\166\030\026\230\356
++\277\366\147\201\213\006\065\305\113\155\131\031\307\322\306\110
++\276\156\024\050\203\112\020\234\033\365\157\274\251\216\365\151
++\376\262\301\125\314\347\024\311\371\133\024\123\121\007\352\316
++\075\344\117\050\037\074\141\011\327\063\322\156\247\156\324\307
++\023\011\157\153\135\024\356\235\211\033\245\152\362\366\370\320
++\162\216\352\162\037\057\064\152\051\012\305\012\354\034\100\205
++\022\367\246\245\323\117\255\300\205\214\114\174\163\040\314\123
++\030\361\262\130\114\001\365\277\352\144\325\134\071\305\316\154
++\314\123\132\126\272\101\017\045\337\153\120\266\307\212\240\275
++\002\302\305\073\125\245\262\144\042\204\121\050\126\256\061\356
++\136\373\013\026\115\106\005\221\200\104\355\254\155\360\127\250
++\372\353\141\110\240\313\033\263\037\216\315\305\041\167\003\204
++\036\374\254\243\103\010\143\214\355\371\047\357\264\260\135\147
++\326\117\355\320\213\076\135\133\311\221\275\226\002\204\075\305
++\115\274\102\077\164\375\074\135\254\134\110\066\136\207\061\057
++\030\154\304\150\356\241\213\311\131\320\030\343\000\200\263\124
++\047\056\231\360\025\123\002\003\001\000\001\243\202\002\017\060
++\202\002\013\060\035\006\003\125\035\016\004\026\004\024\064\161
++\321\070\327\025\066\203\107\153\327\067\144\102\073\216\215\122
++\235\253\060\201\361\006\003\125\035\043\004\201\351\060\201\346
++\200\024\064\161\321\070\327\025\066\203\107\153\327\067\144\102
++\073\216\215\122\235\253\241\201\302\244\201\277\060\201\274\061
++\013\060\011\006\003\125\004\006\023\002\125\123\061\020\060\016
++\006\003\125\004\010\023\007\111\156\144\151\141\156\141\061\025
++\060\023\006\003\125\004\007\023\014\111\156\144\151\141\156\141
++\160\157\154\151\163\061\050\060\046\006\003\125\004\012\023\037
++\123\157\146\164\167\141\162\145\040\151\156\040\164\150\145\040
++\120\165\142\154\151\143\040\111\156\164\145\162\145\163\164\061
++\023\060\021\006\003\125\004\013\023\012\150\157\163\164\155\141
++\163\164\145\162\061\036\060\034\006\003\125\004\003\023\025\103
++\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157
++\162\151\164\171\061\045\060\043\006\011\052\206\110\206\367\015
++\001\011\001\026\026\150\157\163\164\155\141\163\164\145\162\100
++\163\160\151\055\151\156\143\056\157\162\147\202\011\000\350\216
++\266\311\370\052\024\050\060\017\006\003\125\035\023\001\001\377
++\004\005\060\003\001\001\377\060\021\006\011\140\206\110\001\206
++\370\102\001\001\004\004\003\002\000\007\060\011\006\003\125\035
++\022\004\002\060\000\060\056\006\011\140\206\110\001\206\370\102
++\001\015\004\041\026\037\123\157\146\164\167\141\162\145\040\151
++\156\040\164\150\145\040\120\165\142\154\151\143\040\111\156\164
++\145\162\145\163\164\060\060\006\011\140\206\110\001\206\370\102
++\001\004\004\043\026\041\150\164\164\160\163\072\057\057\143\141
++\056\163\160\151\055\151\156\143\056\157\162\147\057\143\141\055
++\143\162\154\056\160\145\155\060\062\006\011\140\206\110\001\206
++\370\102\001\003\004\045\026\043\150\164\164\160\163\072\057\057
++\143\141\056\163\160\151\055\151\156\143\056\157\162\147\057\143
++\145\162\164\055\143\162\154\056\160\145\155\060\041\006\003\125
++\035\021\004\032\060\030\201\026\150\157\163\164\155\141\163\164
++\145\162\100\163\160\151\055\151\156\143\056\157\162\147\060\016
++\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\015
++\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002
++\001\000\264\315\275\340\271\352\262\003\053\176\062\351\336\162
++\077\311\113\202\136\235\342\257\125\011\242\014\124\350\317\030
++\074\050\040\035\251\273\003\002\057\122\071\042\371\027\317\255
++\147\220\263\003\177\330\025\343\153\176\273\233\126\001\257\065
++\324\332\271\307\147\027\233\324\325\016\067\263\040\101\056\014
++\001\304\133\371\145\076\302\141\350\322\360\152\225\160\303\306
++\157\325\065\244\254\131\162\341\211\337\241\240\235\044\275\051
++\171\351\141\052\331\323\036\311\106\244\010\170\101\222\162\017
++\253\024\165\355\011\360\242\360\134\357\303\012\142\040\267\302
++\050\146\256\114\057\056\217\105\143\046\226\360\356\061\346\213
++\125\233\252\072\371\202\071\035\210\074\342\007\165\032\341\017
++\261\060\274\161\062\322\072\376\372\241\211\363\103\054\326\162
++\304\171\247\025\110\005\300\330\055\162\002\343\313\075\026\152
++\272\311\270\021\020\342\111\205\314\226\107\140\005\045\056\357
++\165\131\063\365\107\031\026\357\332\154\137\007\310\246\120\266
++\035\313\146\064\045\374\146\203\353\305\266\060\101\370\106\104
++\142\250\301\014\124\346\352\114\132\050\346\256\306\267\376\177
++\073\226\250\056\356\307\150\076\335\000\075\051\257\052\143\253
++\137\356\111\052\055\305\334\373\321\306\323\321\227\126\122\206
++\266\224\353\324\140\121\267\374\036\233\314\002\233\324\037\217
++\371\112\217\266\056\050\073\027\314\305\246\005\343\322\323\265
++\306\003\311\341\110\102\233\313\077\344\027\340\376\015\001\225
++\011\272\270\015\161\344\011\160\167\102\330\115\341\102\251\140
++\203\327\027\211\103\322\324\335\247\030\266\253\324\044\045\207
++\265\324\342\374\056\042\151\275\255\150\054\377\162\265\230\252
++\006\234\347\052\152\270\241\223\166\316\260\363\177\234\341\340
++\117\270\330\206\106\245\063\002\054\045\141\067\052\222\310\254
++\201\164\150\143\207\063\166\275\005\177\136\325\325\002\155\275
++\257\377\052\132\252\111\354\230\171\107\123\221\366\016\064\132
++\311\245\306\353\262\343\305\254\266\240\160\065\273\310\121\151
++\320\362\265\242\062\156\274\077\240\067\071\174\161\066\246\005
++\337\014\022\344\026\247\305\326\313\143\243\225\160\077\346\004
++\243\140
++END
++
++# Trust for Certificate "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\257\160\210\103\203\202\002\025\315\141\306\274\354\375\067\044
++\251\220\103\034
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\052\107\237\140\273\203\164\157\001\003\327\013\015\366\015\170
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\011\000\350\216\266\311\370\052\024\050
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
diff --git a/extra/nss/nss-config.in b/extra/nss/nss-config.in
new file mode 100644
index 000000000..f8f893e71
--- /dev/null
+++ b/extra/nss/nss-config.in
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+prefix=@prefix@
+
+major_version=@MOD_MAJOR_VERSION@
+minor_version=@MOD_MINOR_VERSION@
+patch_version=@MOD_PATCH_VERSION@
+
+usage()
+{
+ cat <<EOF
+Usage: nss-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--includedir[=DIR]]
+ [--libdir[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Dynamic Libraries:
+ nss
+ nssutil
+ ssl
+ smime
+EOF
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1 1>&2
+fi
+
+lib_ssl=yes
+lib_smime=yes
+lib_nss=yes
+lib_nssutil=yes
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=$optarg
+ ;;
+ --prefix)
+ echo_prefix=yes
+ ;;
+ --exec-prefix=*)
+ exec_prefix=$optarg
+ ;;
+ --exec-prefix)
+ echo_exec_prefix=yes
+ ;;
+ --includedir=*)
+ includedir=$optarg
+ ;;
+ --includedir)
+ echo_includedir=yes
+ ;;
+ --libdir=*)
+ libdir=$optarg
+ ;;
+ --libdir)
+ echo_libdir=yes
+ ;;
+ --version)
+ echo ${major_version}.${minor_version}.${patch_version}
+ ;;
+ --cflags)
+ echo_cflags=yes
+ ;;
+ --libs)
+ echo_libs=yes
+ ;;
+ ssl)
+ lib_ssl=yes
+ ;;
+ smime)
+ lib_smime=yes
+ ;;
+ nss)
+ lib_nss=yes
+ ;;
+ nssutil)
+ lib_nssutil=yes
+ ;;
+ *)
+ usage 1 1>&2
+ ;;
+ esac
+ shift
+done
+
+# Set variables that may be dependent upon other variables
+if test -z "$exec_prefix"; then
+ exec_prefix=`pkg-config --variable=exec_prefix nss`
+fi
+if test -z "$includedir"; then
+ includedir=`pkg-config --variable=includedir nss`
+fi
+if test -z "$libdir"; then
+ libdir=`pkg-config --variable=libdir nss`
+fi
+
+if test "$echo_prefix" = "yes"; then
+ echo $prefix
+fi
+
+if test "$echo_exec_prefix" = "yes"; then
+ echo $exec_prefix
+fi
+
+if test "$echo_includedir" = "yes"; then
+ echo $includedir
+fi
+
+if test "$echo_libdir" = "yes"; then
+ echo $libdir
+fi
+
+if test "$echo_cflags" = "yes"; then
+ echo -I$includedir
+fi
+
+if test "$echo_libs" = "yes"; then
+ libdirs="-Wl,-rpath-link,$libdir -L$libdir"
+ if test -n "$lib_ssl"; then
+ libdirs="$libdirs -lssl${major_version}"
+ fi
+ if test -n "$lib_smime"; then
+ libdirs="$libdirs -lsmime${major_version}"
+ fi
+ if test -n "$lib_nss"; then
+ libdirs="$libdirs -lnss${major_version}"
+ fi
+ if test -n "$lib_nssutil"; then
+ libdirs="$libdirs -lnssutil${major_version}"
+ fi
+ echo $libdirs
+fi
+
diff --git a/extra/nss/nss-no-rpath.patch b/extra/nss/nss-no-rpath.patch
new file mode 100644
index 000000000..35ea57315
--- /dev/null
+++ b/extra/nss/nss-no-rpath.patch
@@ -0,0 +1,14 @@
+--- ./mozilla/security/nss/cmd/platlibs.mk.withrpath 2007-02-19 07:17:06.000000000 +0100
++++ ./mozilla/security/nss/cmd/platlibs.mk 2007-02-19 07:18:07.000000000 +0100
+@@ -52,9 +52,9 @@
+
+ ifeq ($(OS_ARCH), Linux)
+ ifeq ($(USE_64), 1)
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib'
+ else
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib'
+ endif
+ endif
+
diff --git a/extra/nss/nss.pc.in b/extra/nss/nss.pc.in
new file mode 100644
index 000000000..d47b9e146
--- /dev/null
+++ b/extra/nss/nss.pc.in
@@ -0,0 +1,11 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSS
+Description: Network Security Services
+Version: %NSS_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
diff --git a/extra/nss/ssl-renegotiate-transitional.patch b/extra/nss/ssl-renegotiate-transitional.patch
new file mode 100644
index 000000000..f457c5551
--- /dev/null
+++ b/extra/nss/ssl-renegotiate-transitional.patch
@@ -0,0 +1,21 @@
+Enable transitional scheme for ssl renegotiation:
+
+(from mozilla/security/nss/lib/ssl/ssl.h)
+Disallow unsafe renegotiation in server sockets only, but allow clients
+to continue to renegotiate with vulnerable servers.
+This value should only be used during the transition period when few
+servers have been upgraded.
+
+diff --git a/mozilla/security/nss/lib/ssl/sslsock.c b/mozilla/security/nss/lib/ssl/sslsock.c
+index f1d1921..c074360 100644
+--- a/mozilla/security/nss/lib/ssl/sslsock.c
++++ b/mozilla/security/nss/lib/ssl/sslsock.c
+@@ -181,7 +181,7 @@ static sslOptions ssl_defaults = {
+ PR_FALSE, /* noLocks */
+ PR_FALSE, /* enableSessionTickets */
+ PR_FALSE, /* enableDeflate */
+- 2, /* enableRenegotiation (default: requires extension) */
++ 3, /* enableRenegotiation (default: transitional) */
+ PR_FALSE, /* requireSafeNegotiation */
+ };
+
diff --git a/extra/nss_ldap/PKGBUILD b/extra/nss_ldap/PKGBUILD
new file mode 100644
index 000000000..299f8413e
--- /dev/null
+++ b/extra/nss_ldap/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 109106 2011-02-06 10:18:06Z andyrtr $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Comete <la_comete@tiscali.fr>
+
+pkgname=nss_ldap
+pkgver=265
+pkgrel=1
+pkgdesc="The nss_ldap module provides the means for Linux and Solaris workstations to resolve the entities defined in RFC 2307 from LDAP directories."
+arch=(i686 x86_64)
+url="http://www.padl.com/OSS/nss_ldap.html"
+license=('LGPL')
+depends=('libldap>=2.4.18' 'heimdal>=1.2.1')
+backup=("etc/nss_ldap.conf")
+source=(http://www.padl.com/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c1cb02d1a85538cf16bca6f6a562abe4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure \
+ --with-ldap-conf-file=/etc/nss_ldap.conf \
+ --with-ldap=openldap \
+ --libdir=/lib \
+ --mandir=/usr/share/man \
+ --enable-schema-mapping \
+ --enable-rfc2307bis \
+ --enable-configurable-krb5-ccname-gssapi
+ env PATH=`pwd`:"$PATH" make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/ntfs-3g/25-ntfs-config-write-policy.fdi b/extra/ntfs-3g/25-ntfs-config-write-policy.fdi
new file mode 100644
index 000000000..54195d8b3
--- /dev/null
+++ b/extra/ntfs-3g/25-ntfs-config-write-policy.fdi
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deviceinfo version="0.2">
+ <device>
+ <match key="volume.fstype" string="ntfs">
+ <append key="volume.fstype.alternative" type="copy_property">volume.fstype</append>
+ <merge key="volume.mount.ntfs.valid_options" type="copy_property">volume.mount.valid_options</merge>
+ <merge key="volume.unmount.ntfs.valid_options" type="copy_property">volume.unmount.valid_options</merge>
+ <merge key="volume.fstype" type="string">ntfs-3g</merge>
+ <merge key="volume.mount.valid_options" type="strlist">ro</merge>
+ <append key="volume.mount.valid_options" type="strlist">atime</append>
+ <append key="volume.mount.valid_options" type="strlist">noatime</append>
+ <append key="volume.mount.valid_options" type="strlist">relatime</append>
+ <append key="volume.mount.valid_options" type="strlist">fake_rw</append>
+ <append key="volume.mount.valid_options" type="strlist">no_def_opts</append>
+ <append key="volume.mount.valid_options" type="strlist">default_permissions</append>
+ <append key="volume.mount.valid_options" type="strlist">umask=</append>
+ <append key="volume.mount.valid_options" type="strlist">fmask=</append>
+ <append key="volume.mount.valid_options" type="strlist">dmask=</append>
+ <append key="volume.mount.valid_options" type="strlist">uid=</append>
+ <append key="volume.mount.valid_options" type="strlist">gid=</append>
+ <append key="volume.mount.valid_options" type="strlist">show_sys_files</append>
+ <append key="volume.mount.valid_options" type="strlist">silent</append>
+ <append key="volume.mount.valid_options" type="strlist">force</append>
+ <append key="volume.mount.valid_options" type="strlist">remove_hiberfile</append>
+ <append key="volume.mount.valid_options" type="strlist">locale=</append>
+ <append key="volume.mount.valid_options" type="strlist">streams_interface=</append>
+ <append key="volume.mount.valid_options" type="strlist">debug</append>
+ <append key="volume.mount.valid_options" type="strlist">no_detatch</append>
+ <append key="volume.mount.valid_options" type="strlist">sync</append>
+ <append key="volume.mount.valid_options" type="strlist">dirsync</append>
+ <append key="volume.mount.valid_options" type="strlist">nodiratime</append>
+ <append key="volume.mount.valid_options" type="strlist">noexec</append>
+ <append key="volume.mount.valid_options" type="strlist">quiet</append>
+ <append key="volume.mount.valid_options" type="strlist">remount</append>
+ <append key="volume.mount.valid_options" type="strlist">exec</append>
+ <append key="volume.mount.valid_options" type="strlist">recover</append>
+ <append key="volume.mount.valid_options" type="strlist">norecover</append>
+ <merge key="volume.unmount.valid_options" type="strlist">lazy</merge>
+ <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
+ </match>
+ </device>
+</deviceinfo>
diff --git a/extra/ntfs-3g/PKGBUILD b/extra/ntfs-3g/PKGBUILD
new file mode 100644
index 000000000..f651864bd
--- /dev/null
+++ b/extra/ntfs-3g/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 108992 2011-02-05 10:41:54Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Thomas Bchler <thomas.archlinux.org>
+
+pkgname=ntfs-3g
+pkgver=2011.1.15
+pkgrel=1
+pkgdesc="Stable read and write NTFS driver"
+url="http://www.tuxera.com"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('glibc' 'fuse')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://www.tuxera.com/opensource/${pkgname}-${pkgver}.tgz
+ 25-ntfs-config-write-policy.fdi)
+sha1sums=('d7cf0c5e8730568f5fa8802869d6fe8cdd4a0213'
+ '200029f2999a2c284fd30ae25734abf6459c3501')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ac_cv_path_LDCONFIG=/bin/true ./configure --prefix=/usr \
+ --with-fuse=external --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ ln -s /bin/ntfs-3g "${pkgdir}/sbin/mount.ntfs"
+ install -m755 -d "${pkgdir}/usr/share/hal/fdi/policy/10osvendor"
+ install -m644 "${srcdir}/25-ntfs-config-write-policy.fdi" "${pkgdir}/usr/share/hal/fdi/policy/10osvendor/"
+}
diff --git a/extra/ntfsprogs/PKGBUILD b/extra/ntfsprogs/PKGBUILD
new file mode 100644
index 000000000..56bf76566
--- /dev/null
+++ b/extra/ntfsprogs/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 48342 2009-08-01 14:46:45Z jgc $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=ntfsprogs
+pkgver=2.0.0
+pkgrel=4
+depends=('glibc' 'fuse' 'util-linux-ng>=2.16')
+makedepends=('pkgconfig')
+pkgdesc="NTFS filesystem utilities"
+arch=(i686 x86_64)
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/linux-ntfs/${pkgname}-${pkgver}.tar.gz)
+url="http://www.linux-ntfs.org/"
+options=(!libtool)
+md5sums=('2c402b647bb7aeb1d3f8ce1cc354fd68')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-gnome-vfs \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
+
diff --git a/extra/ntp/PKGBUILD b/extra/ntp/PKGBUILD
new file mode 100644
index 000000000..69669c721
--- /dev/null
+++ b/extra/ntp/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 117473 2011-04-03 17:50:26Z andrea $
+# Maintainer: kevin <kevin@archlinux.org>
+
+pkgname=ntp
+pkgver=4.2.6.p3
+_realver=4.2.6p3
+pkgrel=3
+pkgdesc="NTP (Network Time Protocol) tries to keep servers in sync"
+arch=(i686 x86_64)
+license=('custom')
+url="http://www.ntp.org/"
+depends=('openssl' 'readline' 'libcap')
+makedepends=('perl-html-parser')
+backup=('etc/ntp.conf' 'etc/conf.d/ntp-client.conf')
+options=('!emptydirs')
+changelog=changelog
+source=(http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-${_realver}.tar.gz
+ ntp-4.2.4-html2man.patch
+ ntp.conf
+ ntp-client.conf
+ ntpd
+ ntpdate)
+md5sums=('59876a9009b098ff59767ee45a88ebd2' '1b04e888717bb31479a6087632981723'
+ '398a7f270f6ae083f47f86eb8b557a75' '58997d6cf4846d80e35a01b855376a33'
+ 'bf20804e75656609e808ca21b53ea4aa' '99b49d763e5866f4f81c48d922c80b93')
+
+build() {
+ cd "$srcdir/$pkgname-$_realver"
+ # fix man page generation
+ patch -Np1 -i ../ntp-4.2.4-html2man.patch
+ # configure
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+ # 4.2.6p3: aclocal too old, regenerate
+ rm -f aclocal.m4
+ libtoolize --copy --force
+ ac_cv_header_dns_sd_h=0 ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --enable-linux-caps
+ # build
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$_realver"
+
+ # install
+ make DESTDIR="$pkgdir" install
+
+ # install conf files
+ install -d "$pkgdir/usr/share/ntp"
+ install -D -m644 conf/* "${pkgdir}/usr/share/ntp"
+
+ # install launch scripts
+ install -d "$pkgdir/etc/rc.d"
+ install -D -m755 ${srcdir}/{ntpd,ntpdate} "$pkgdir/etc/rc.d"
+
+ # install man pages
+ cd html
+ ../scripts/html2man
+ sed -i 's/^[\t\ ]*$//;/./,/^$/!d' man/man*/*.[58]
+ install -d "$pkgdir"/usr/share/man/man{5,8}
+ install -m644 man/man5/* "$pkgdir/usr/share/man/man5/"
+ install -m644 man/man8/* "$pkgdir/usr/share/man/man8/"
+ mv "$pkgdir/usr/share/man/man8/ntpd.8" "$pkgdir/usr/share/man/man8/ntp-ntpd.8"
+ cd ..
+
+ # install sample configs
+ install -D -m644 "$srcdir/ntp.conf" "$pkgdir/etc/ntp.conf"
+ install -D -m644 "$srcdir/ntp-client.conf" \
+ "$pkgdir/etc/conf.d/ntp-client.conf"
+
+ # create /var/lib/ntp
+ install -d "$pkgdir/var/lib/ntp"
+ touch "$pkgdir/var/lib/ntp/.placeholder"
+
+ install -Dm644 "$srcdir/$pkgname-$_realver/COPYRIGHT" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
diff --git a/extra/ntp/changelog b/extra/ntp/changelog
new file mode 100644
index 000000000..528a07826
--- /dev/null
+++ b/extra/ntp/changelog
@@ -0,0 +1,25 @@
+2011-04-03 andrea <andrea@archlinux.org>
+
+ * ntp 4.2.6p3-3
+ - Use 'ntpd -p' to get the PID in ntpd
+ - Don't run the ntp client in background in ntpdate
+
+2011-03-28 andrea <andrea@archlinux.org>
+
+ * ntp 4.2.6p3-2
+ - Improved daemon scripts
+
+2010-10-16 kevin <kevin@archlinux.org>
+
+ * ntp 4.2.6p3
+ - Implemented FS#18469, replace ntpdate with ntpd -q
+ - Removed LIBS
+ - Removed old IPv6 and nano patch
+
+2010-10-16 kevin <kevin@archlinux.org>
+
+ * ntp 4.2.6p2
+ - Added changelog
+ - Set LIBS to use librt since configure doesn't set it
+ - Convert PKGBUILD to build()/package() format
+ - removed "|| return 1"
diff --git a/extra/ntp/ntp-4.2.4-html2man.patch b/extra/ntp/ntp-4.2.4-html2man.patch
new file mode 100644
index 000000000..333d4529a
--- /dev/null
+++ b/extra/ntp/ntp-4.2.4-html2man.patch
@@ -0,0 +1,183 @@
+--- ntp-4.2.4/scripts/html2man.in.html2man 2006-06-06 22:17:10.000000000 +0200
++++ ntp-4.2.4/scripts/html2man.in 2007-01-08 12:47:31.000000000 +0100
+@@ -23,10 +23,10 @@
+ 'ntpq' => ['ntpq', 8, 'ntpd(8), ntpdc(8)'],
+ 'ntpdate' => ['ntpdate', 8, 'ntpd(8)'],
+ 'ntpdc' => ['ntpdc', 8, 'ntpd(8)'],
+- 'ntptime' => ['ntpdtime', 8, 'ntpd(8), ntpdate(8)'],
++ 'ntptime' => ['ntptime', 8, 'ntpd(8), ntpdate(8)'],
+ 'ntptrace' => ['ntptrace', 8, 'ntpd(8)'],
+ 'keygen' => ['ntp-keygen', 8, 'ntpd(8), ntp_auth(5)'],
+- 'confopt' => ['ntp.conf', 5, 'ntpd(8)'],
++ 'confopt' => ['ntp.conf', 5, 'ntpd(8), ntp_auth(5), ntp_mon(5), ntp_acc(5), ntp_clock(5), ntp_misc(5)'],
+ 'authopt' => ['ntp_auth', 5, 'ntp.conf(5), ntpd(8)'],
+ 'monopt' => ['ntp_mon', 5, 'ntp.conf(5)'],
+ 'accopt' => ['ntp_acc', 5, 'ntp.conf(5)'],
+@@ -34,17 +34,8 @@
+ 'miscopt' => ['ntp_misc', 5, 'ntp.conf(5)']);
+
+ # Disclaimer to go in SEE ALSO section of the man page
+-$seealso_disclaimer = 'These man pages are automatically hacked from the main NTP ' .
+- 'documentation pages, which are maintained in HTML format. These files are ' .
+- 'included in the NTP source distribution. If you installed NTP from a binary ' .
+- 'package, or it came pre-installed on your system, chances are the documentation ' .
+- 'was also included in the usual place for your system. The HTML files are more ' .
+- 'correct and complete than these man pages, which are provided for your reference ' .
+- 'only.';
+-
+-# Disclaimer to go right at the top
+-$top_disclaimer = 'This file was automatically generated from HTML source, and may be ' .
+- 'incorrect. See the SEE ALSO section at the end of this file for more info';
++$seealso_disclaimer = "Primary source of documentation: /usr/share/doc/ntp-*\n\n" .
++ "This file was automatically generated from HTML source.\n";
+
+ mkdir $MANDIR, 0777;
+ mkdir "$MANDIR/man8", 0777;
+@@ -64,7 +55,8 @@
+ $fileinfo = $manfiles{$filename};
+
+ $p = HTML::TokeParser->new("$filename.html") || die "Can't open $filename.html: $!";
+- open(MANOUT, ">$MANDIR/man$fileinfo->[1]/$fileinfo->[0].$fileinfo->[1]")
++ $fileout = "$MANDIR/man$fileinfo->[1]/$fileinfo->[0].$fileinfo->[1]";
++ open(MANOUT, ">$fileout")
+ || die "Can't open: $!";
+
+ $p->get_tag("title");
+@@ -73,7 +65,6 @@
+
+ # Setup man header
+ print MANOUT ".TH " . $fileinfo->[0] . " " . $fileinfo->[1] . "\n";
+- print MANOUT ".UC 4\n";
+ print MANOUT ".SH NAME\n";
+ $pat = $fileinfo->[0];
+ if ($name =~ /$pat/) {
+@@ -81,10 +72,12 @@
+ # Add the manpage name, if not in the HTML title already
+ print MANOUT "$fileinfo->[0] - ";
+ }
+- print MANOUT "$name\n\n";
+-
+- print MANOUT "$top_disclaimer\n";
++ print MANOUT "$name\n.SH \\ \n\n";
+
++ @fontstack = ();
++ $deflevel = 0;
++ $pre = 0;
++ $ignore = 0;
+ # Now start scanning. We basically print everything after translating some tags.
+ # $token->[0] has "T", "S", "E" for Text, Start, End
+ # $token->[1] has the tag name, or text (for "T" case)
+@@ -92,19 +85,37 @@
+ while (my $token = $p->get_token) {
+ if($token->[0] eq "T") {
+ my $text = $token->[1];
+- if($tag) {
+- $text =~ s/^[\n ]*//;
+- $text =~ s/[\n ]*$/ /;
++ if (!$pre) {
++ if($tag) {
++ $text =~ s/^[\n\t ]*//;
++ }
++ $text =~ s/^[\n\t ][\n\t ]+$//;
++ $text =~ s/[\n\t ]+/ /g;
++ $text =~ s/&nbsp\;/ /g;
++ $text =~ s/&gt\;/>/g;
++ $text =~ s/&lt\;/</g;
++ $text =~ s/&quot\;/"/g;
++ $text =~ s/&amp\;/&/g;
++ $text =~ s/^\./\\[char46]/;
+ }
+- $text =~ s/&nbsp\;/ /g;
+- $text =~ s/^\./\\./;
+ print MANOUT "$text";
+ $tag = 0;
+ }
+ if($token->[0] eq "S") {
+ if($token->[1] eq "h4") {
+ my $text = uc($p->get_trimmed_text("/h4"));
+- print MANOUT ".SH $text\n";
++ # ignore these two sections in ntpd.html
++ if ($filename eq "ntpd" &&
++ ($text eq "FILES" || $text eq "CONFIGURATION OPTIONS")) {
++ $ignore = 1;
++ close(MANOUT);
++ open(MANOUT, ">/dev/null");
++ } elsif ($ignore) {
++ $ignore = 0;
++ close(MANOUT);
++ open(MANOUT, ">>$fileout");
++ }
++ print MANOUT "\n\n.SH $text\n";
+ }
+ if($token->[1] eq "tt") {
+ push @fontstack, "tt";
+@@ -118,22 +129,30 @@
+ my $text = $p->get_trimmed_text("/address");
+ print MANOUT "\n.SH AUTHOR\n$text\n";
+ }
+- if($token->[1] eq "dt") {
+- $tmp = $deflevel-4;
+- print MANOUT "\n.RS $tmp\n";
++ if($token->[1] eq "dt" || $token->[1] eq "br" && $deflevel > 0) {
++ print MANOUT "\n.TP 8\n";
+ $tag = 1;
+ }
+ if($token->[1] eq "dd") {
+- print MANOUT "\n.RS $deflevel\n";
++ print MANOUT "\n";
+ $tag = 1;
+ }
+ if($token->[1] eq "dl") {
+- $deflevel+=4;
++ $deflevel+=1;
++ if ($deflevel > 0) {
++ print MANOUT "\n.RS ", $deflevel > 1 ? 8 : 0;
++ }
++ }
++ if($token->[1] eq "p") {
++ print MANOUT "\n";
++ }
++ if($token->[1] eq "pre") {
++ print MANOUT "\n.nf";
++ $pre = 1;
+ }
+ }
+ elsif($token->[0] eq "E") {
+- if($token->[1] eq "dd") {
+- print MANOUT "\n.RE\n";
++ if($token->[1] eq "h4") {
+ $tag = 1;
+ }
+ if($token->[1] eq "tt") {
+@@ -157,15 +176,27 @@
+ print MANOUT "$fontswitch";
+ }
+ if($token->[1] eq "dl") {
+- $deflevel-=4;
++ if ($deflevel > 0) {
++ print MANOUT "\n.RE";
++ }
++ print MANOUT "\n";
++ $deflevel-=1;
+ }
+- if($token->[1] eq "dt") {
+- print MANOUT "\n.RE";
++ if($token->[1] eq "p") {
++ print MANOUT "\n";
+ $tag = 1;
+ }
++ if($token->[1] eq "pre") {
++ print MANOUT "\n.fi";
++ $pre = 0;
++ }
+ }
+ }
+- print MANOUT ".SH SEE ALSO\n\n";
++ if ($ignore) {
++ close(MANOUT);
++ open(MANOUT, ">>$fileout");
++ }
++ print MANOUT "\n.SH SEE ALSO\n\n";
+ print MANOUT "$fileinfo->[2]\n\n";
+ print MANOUT "$seealso_disclaimer\n";
+ close(MANOUT);
diff --git a/extra/ntp/ntp-client.conf b/extra/ntp/ntp-client.conf
new file mode 100644
index 000000000..e728db579
--- /dev/null
+++ b/extra/ntp/ntp-client.conf
@@ -0,0 +1,5 @@
+# client options for "ntpd -q" - ntpdate equivalent
+NTP_CLIENT_OPTION="-g"
+
+# arguments passed to ntpd when started
+NTPD_ARGS="-g"
diff --git a/extra/ntp/ntp.conf b/extra/ntp/ntp.conf
new file mode 100644
index 000000000..7f888e4b1
--- /dev/null
+++ b/extra/ntp/ntp.conf
@@ -0,0 +1,52 @@
+# NOTES:
+# - you should only have to update the server line below
+# - if you start getting lines like 'restrict' and 'fudge'
+# and you didnt add them, AND you run dhcpcd on your
+# network interfaces, be sure to add '-Y -N' to the
+# dhcpcd_ethX variables in /etc/conf.d/net
+
+# Name of the servers ntpd should sync with
+# Please respect the access policy as stated by the responsible person.
+#server ntp.example.tld iburst
+
+server pool.ntp.org
+
+##
+# A list of available servers can be found here:
+# http://www.pool.ntp.org/
+# http://www.pool.ntp.org/#use
+# A good way to get servers for your machine is:
+# netselect -s 3 pool.ntp.org
+##
+
+#server ntplocal.example.com prefer
+#server timeserver.example.org
+
+# Warning: Using default NTP settings will leave your NTP
+# server accessible to all hosts on the Internet.
+
+# A default deny all (including localhost) policy
+# To use this define restrictions for all servers and clients
+#restrict default ignore
+#restrict -6 default ignore
+
+# A more open policy, allow access but deny changing the configuration
+restrict default nomodify nopeer
+#restrict -6 default nomodify nopeer
+
+# Allow localhost
+restrict 127.0.0.1
+#restrict -6 ::1
+
+
+# To allow machines within your network to synchronize
+# their clocks with your server, but ensure they are
+# not allowed to configure the server or used as peers
+# to synchronize against, uncomment this line.
+#
+#restrict 192.168.0.0 mask 255.255.255.0 nomodify nopeer notrap
+
+
+# you should not need to modify the following paths
+driftfile /var/lib/ntp/ntp.drift
+
diff --git a/extra/ntp/ntpd b/extra/ntp/ntpd
new file mode 100755
index 000000000..825efc189
--- /dev/null
+++ b/extra/ntp/ntpd
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ntp-client.conf
+
+PIDFILE="/var/run/ntpd/ntpd.pid"
+PID=$(cat $PIDFILE 2> /dev/null)
+
+case "$1" in
+ start)
+ stat_busy "Starting NTP Daemon"
+ [ ! -d /var/run/ntpd ] && install -d /var/run/ntpd &>/dev/null
+ if [ -z "$PID" ]; then
+ /usr/bin/ntpd $NTPD_ARGS -p /var/run/ntpd/ntpd.pid &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon ntpd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping NTP Daemon"
+ if [ -n "$PID" ]; then
+ kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm $PIDFILE &>/dev/null
+ rm_daemon ntpd
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/ntp/ntpdate b/extra/ntp/ntpdate
new file mode 100755
index 000000000..99508f4fd
--- /dev/null
+++ b/extra/ntp/ntpdate
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ntp-client.conf
+
+case "$1" in
+ start)
+ stat_busy "Starting NTP Client"
+ /usr/bin/ntpd -q $NTP_CLIENT_OPTION &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon ntpdate
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping NTP Client"
+ rm_daemon ntpdate
+ stat_done
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+
diff --git a/extra/ntrack/PKGBUILD b/extra/ntrack/PKGBUILD
new file mode 100644
index 000000000..bdf60630d
--- /dev/null
+++ b/extra/ntrack/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117025 2011-03-27 19:11:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=ntrack
+pkgver=013
+pkgrel=1
+pkgdesc="A network connectivity tracking library"
+arch=('i686' 'x86_64')
+url="http://launchpad.net/ntrack/"
+license=('LGPL')
+depends=('qt' 'libnl' 'gcc-libs')
+makedepends=('python2')
+optdepends=('python2')
+source=("http://launchpad.net/${pkgname}/main/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('90596b924a108f8b4eea52239ba64369')
+options=('!libtool')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/numlockx/PKGBUILD b/extra/numlockx/PKGBUILD
new file mode 100644
index 000000000..c30fdd0d6
--- /dev/null
+++ b/extra/numlockx/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 75639 2010-04-02 01:32:53Z dgriffiths $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=numlockx
+pkgver=1.2
+pkgrel=1
+pkgdesc="Turns on the numlock key in X11"
+arch=('i686' 'x86_64')
+license=('MIT')
+url="http://ktown.kde.org/~seli/numlockx/"
+depends=('libxtst')
+source=(http://ktown.kde.org/~seli/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('be9109370447eae23f6f3f8527bb1a67')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr x_includes=/usr/include/X11 \
+ x_libraries=/usr/lib || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make prefix=${pkgdir}/usr install || return 1
+
+ # Install the custom MIT license
+ install -D LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+}
diff --git a/extra/nx-common/NXproto.h.64bit.diff b/extra/nx-common/NXproto.h.64bit.diff
new file mode 100644
index 000000000..ac326ebcd
--- /dev/null
+++ b/extra/nx-common/NXproto.h.64bit.diff
@@ -0,0 +1,66 @@
+--- nxcomp.old/NXproto.h 2006-06-19 19:55:56.000000000 +0200
++++ nxcomp/NXproto.h 2007-02-12 18:17:41.000000000 +0100
+@@ -26,6 +26,30 @@
+ #include <X11/Xmd.h>
+ #include <X11/Xproto.h>
+
++/*
++ Copied from Xproto.h
++ */
++
++/* For the purpose of the structure definitions in this file,
++we must redefine the following types in terms of Xmd.h's types, which may
++include bit fields. All of these are #undef'd at the end of this file,
++restoring the definitions in X.h. */
++
++#define Window CARD32
++#define Drawable CARD32
++#define Font CARD32
++#define Pixmap CARD32
++#define Cursor CARD32
++#define Colormap CARD32
++#define GContext CARD32
++#define Atom CARD32
++#define VisualID CARD32
++#define Time CARD32
++#define KeyCode CARD8
++#define KeySym CARD32
++
++/* End copied from Xproto.h */
++
+ #define sz_xNXGetControlParametersReq 4
+ #define sz_xNXGetCleanupParametersReq 4
+ #define sz_xNXGetImageParametersReq 4
+@@ -343,9 +367,9 @@
+ CARD8 dstDepth;
+ CARD32 srcLength B32;
+ CARD32 dstLength B32;
+- INT16 srcX B16, srcY B16;
++ CARD16 srcX B16, srcY B16;
+ CARD16 srcWidth B16, srcHeight B16;
+- INT16 dstX B16, dstY B16;
++ CARD16 dstX B16, dstY B16;
+ CARD16 dstWidth B16, dstHeight B16;
+ } xNXPutPackedImageReq;
+
+@@ -463,4 +487,20 @@
+ }
+ #endif
+
++/* Copied from Xproto.h */
++
++/* restore these definitions back to the typedefs in X.h */
++#undef Window
++#undef Drawable
++#undef Font
++#undef Pixmap
++#undef Cursor
++#undef Colormap
++#undef GContext
++#undef Atom
++#undef VisualID
++#undef Time
++#undef KeyCode
++#undef KeySym
++
+ #endif /* NXproto_H */
diff --git a/extra/nx-common/PKGBUILD b/extra/nx-common/PKGBUILD
new file mode 100644
index 000000000..ae282c3c4
--- /dev/null
+++ b/extra/nx-common/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 75689 2010-04-02 17:16:35Z andyrtr $
+# Maintainer Tobias Powalowski <tpowa@archlinux.org>
+# Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+pkgname=nx-common
+pkgver=3.4.0
+pkgrel=4
+pkgdesc="NoMachine NX common package for client and server"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://nomachine.com/"
+depends=('libjpeg>=8' 'libpng>=1.4.0' 'openssl>=1.0.0' 'gcc-libs' 'audiofile' 'alsa-lib' 'bash')
+source=(\
+#Compression libs and proxy sources
+http://64.34.161.181/download/$pkgver/sources/nxcomp-$pkgver-7.tar.gz \
+http://64.34.161.181/download/$pkgver/sources/nxssh-$pkgver-2.tar.gz \
+# ESD Support
+http://64.34.161.181/download/$pkgver/sources/nxesd-$pkgver-2.tar.gz
+# 64bit fixes
+NXproto.h.64bit.diff
+nx-gcc44.patch)
+options=(!libtool)
+md5sums=('cba926f2b855231a8fc3e0dabff52855'
+ '18b81d850223ea84de244f8a9509c4b1'
+ '65d55f2a86baa59343432261cabd52ec'
+ '58341ba70dfab92ff38570071fbbf88a'
+ 'c805442f1500d8d6de15ec224f63277e')
+
+build() {
+ cd ${srcdir}
+# patch -Np1 -i ${srcdir}/nx-gcc44.patch
+
+ mkdir -p ${pkgdir}/opt/NX/bin
+ mkdir -p ${pkgdir}/opt/NX/lib
+
+ cd ${srcdir}/nxcomp
+ if [ "$CARCH" = "x86_64" ]; then
+ patch -Np1 -i ../NXproto.h.64bit.diff || return 1
+ fi
+
+ ./configure --prefix=/opt/NX
+ make || return 1
+ cp -a libXcomp.so.* ${pkgdir}/opt/NX/lib
+ cd ${pkgdir}/opt/NX/lib
+ ln -s libXcomp.so.1 libXcomp.so
+
+ cd ${srcdir}/nxssh
+ ./configure --prefix=/opt/NX
+ make || return 1
+ install -D -m755 nxssh ${pkgdir}/opt/NX/bin/nxssh
+
+ cd ${srcdir}/nxesd
+ ./configure --prefix=/opt/NX
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ # fix libxcomp linking
+ cd ${pkgdir}/opt/NX/lib
+ ln -s libXcomp.so.3 libXcomp.so.1
+}
diff --git a/extra/nx-common/nx-gcc44.patch b/extra/nx-common/nx-gcc44.patch
new file mode 100644
index 000000000..5b7b7e1f6
--- /dev/null
+++ b/extra/nx-common/nx-gcc44.patch
@@ -0,0 +1,12 @@
+--- nx-3.3.0/nxcomp/Loop.cpp.orig 2009-05-17 12:22:19.000000000 +0200
++++ nx-3.3.0/nxcomp/Loop.cpp 2009-05-17 12:22:43.000000000 +0200
+@@ -10979,7 +10979,7 @@
+ packMethod == PACK_LOSSLESS ||
+ packMethod == PACK_ADAPTIVE)
+ {
+- char *dash = rindex(opt, '-');
++ const char *dash = rindex(opt, '-');
+
+ if (dash != NULL && strlen(dash) == 2 &&
+ *(dash + 1) >= '0' && *(dash + 1) <= '9')
+
diff --git a/extra/nxserver/NXproto.h.64bit.diff b/extra/nxserver/NXproto.h.64bit.diff
new file mode 100644
index 000000000..ac326ebcd
--- /dev/null
+++ b/extra/nxserver/NXproto.h.64bit.diff
@@ -0,0 +1,66 @@
+--- nxcomp.old/NXproto.h 2006-06-19 19:55:56.000000000 +0200
++++ nxcomp/NXproto.h 2007-02-12 18:17:41.000000000 +0100
+@@ -26,6 +26,30 @@
+ #include <X11/Xmd.h>
+ #include <X11/Xproto.h>
+
++/*
++ Copied from Xproto.h
++ */
++
++/* For the purpose of the structure definitions in this file,
++we must redefine the following types in terms of Xmd.h's types, which may
++include bit fields. All of these are #undef'd at the end of this file,
++restoring the definitions in X.h. */
++
++#define Window CARD32
++#define Drawable CARD32
++#define Font CARD32
++#define Pixmap CARD32
++#define Cursor CARD32
++#define Colormap CARD32
++#define GContext CARD32
++#define Atom CARD32
++#define VisualID CARD32
++#define Time CARD32
++#define KeyCode CARD8
++#define KeySym CARD32
++
++/* End copied from Xproto.h */
++
+ #define sz_xNXGetControlParametersReq 4
+ #define sz_xNXGetCleanupParametersReq 4
+ #define sz_xNXGetImageParametersReq 4
+@@ -343,9 +367,9 @@
+ CARD8 dstDepth;
+ CARD32 srcLength B32;
+ CARD32 dstLength B32;
+- INT16 srcX B16, srcY B16;
++ CARD16 srcX B16, srcY B16;
+ CARD16 srcWidth B16, srcHeight B16;
+- INT16 dstX B16, dstY B16;
++ CARD16 dstX B16, dstY B16;
+ CARD16 dstWidth B16, dstHeight B16;
+ } xNXPutPackedImageReq;
+
+@@ -463,4 +487,20 @@
+ }
+ #endif
+
++/* Copied from Xproto.h */
++
++/* restore these definitions back to the typedefs in X.h */
++#undef Window
++#undef Drawable
++#undef Font
++#undef Pixmap
++#undef Cursor
++#undef Colormap
++#undef GContext
++#undef Atom
++#undef VisualID
++#undef Time
++#undef KeyCode
++#undef KeySym
++
+ #endif /* NXproto_H */
diff --git a/extra/nxserver/PKGBUILD b/extra/nxserver/PKGBUILD
new file mode 100644
index 000000000..5609baf0b
--- /dev/null
+++ b/extra/nxserver/PKGBUILD
@@ -0,0 +1,96 @@
+# $Id: PKGBUILD 109665 2011-02-11 18:01:54Z andyrtr $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributed: eliott <eliott@solarblue.net>, Andre Naumann <anaumann@SPARCed.org>
+
+pkgname=nxserver
+pkgver=3.4.0
+pkgrel=8
+pkgdesc="NoMachine NX is the next-generation X compression and roundtrip suppression scheme."
+arch=(i686 x86_64)
+url="http://nomachine.com/"
+license=('GPL')
+depends=("nx-common>=$pkgver" 'libxaw' 'libxrender' 'libxp' 'gcc-libs' 'libjpeg>=8'
+ 'libxpm' 'libpng>=1.4.0' 'libxdamage' 'libxrandr' 'libxcomposite' 'libxtst' 'freetype2'
+ 'xorg-sessreg')
+makedepends=('imake')
+source=(
+#X11 support programs and libraries
+http://64.34.161.181/download/$pkgver/sources/nx-X11-$pkgver-4.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxwin-$pkgver-7.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxauth-$pkgver-3.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcomp-$pkgver-7.tar.gz
+#X11 Agent sources
+http://64.34.161.181/download/$pkgver/sources/nxagent-$pkgver-16.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcompsh-$pkgver-2.tar.gz
+#Compression libs and proxy sources
+http://64.34.161.181/download/$pkgver/sources/nxproxy-$pkgver-2.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcompext-$pkgver-1.tar.gz
+http://64.34.161.181/download/$pkgver/sources/nxcompshad-$pkgver-3.tar.gz
+#64bit fixes
+NXproto.h.64bit.diff
+# gcc 43 fix
+nxcompsh-gcc43.patch
+nxcompshad-gcc43.patch
+nx-gcc44.patch)
+options=(!libtool)
+md5sums=('38a84d4521a41e5ff988a84181ddcaf5'
+ 'f45d183360067ede979c18fc964824ab'
+ 'bfb758edd51271b31aa6b902557fa0cc'
+ 'cba926f2b855231a8fc3e0dabff52855'
+ 'ec82183635a6ef627cb19d53d4a004ce'
+ 'f94501249ad7d4453524f88ef0cfb1ff'
+ '95ce93520d463a3d18cdd5d19c321e85'
+ '605a8e2a136f89477f0059a0d2af4582'
+ '15deba68e12e13b524a723b49e7ec813'
+ '58341ba70dfab92ff38570071fbbf88a'
+ 'b6c279654dac421fc3dd1a27d66ff53c'
+ '01cea8bc5997ae2c3790cbcb7d624c86'
+ 'c805442f1500d8d6de15ec224f63277e')
+
+build() {
+ cd ${srcdir}
+ mkdir -p ${pkgdir}/opt/NX/bin
+ mkdir -p ${pkgdir}/opt/NX/lib
+ patch -Np0 -i ${srcdir}/nxcompsh-gcc43.patch || return 1
+ patch -Np0 -i ${srcdir}/nxcompshad-gcc43.patch || return 1
+# patch -Np1 -i ../nx-gcc44.patch || return 1
+
+ cd ${srcdir}/nxcomp
+ if [ "$CARCH" = "x86_64" ]; then
+ patch -Np1 -i ../NXproto.h.64bit.diff || return 1
+ fi
+ ./configure --prefix=/opt/NX
+ make || return 1
+
+ cd ${srcdir}/nxcompshad
+ ./configure --prefix=/opt/NX
+ make || return 1
+ cp -a libXcompshad.so* ${pkgdir}/opt/NX/lib
+
+ cd ${srcdir}/nxcompsh
+ ./configure --prefix=/opt/NX
+ make || return 1
+ cp -a libXcompsh.so* ${pkgdir}/opt/NX/lib
+
+ cd ${srcdir}/nxproxy
+ ./configure --prefix=/opt/NX
+ make || return 1
+ make prefix=${pkgdir}/opt/NX install || return 1
+
+ cd ${srcdir}/nx-X11
+ make World || return 1
+ cp -a lib/X11/libX11.so* ${pkgdir}/opt/NX/lib
+ cp -a lib/Xext/libXext.so* ${pkgdir}/opt/NX/lib
+ cp -a lib/Xrender/libXrender.so* ${pkgdir}/opt/NX/lib
+ install -D -m755 programs/Xserver/nxagent ${pkgdir}/opt/NX/bin/nxagent
+ install -D -m755 programs/nxauth/nxauth ${pkgdir}/opt/NX/bin/nxauth
+
+ cd ${srcdir}/nxcompext
+ ./configure --prefix=/opt/NX
+ make || return 1
+ cp -a libXcompext.so* ${pkgdir}/opt/NX/lib
+
+ # fix libXcompext linking
+ cd ${pkgdir}/opt/NX/lib
+ ln -s libXcompext.so.3 libXcompext.so.1
+}
diff --git a/extra/nxserver/nx-gcc44.patch b/extra/nxserver/nx-gcc44.patch
new file mode 100644
index 000000000..5b7b7e1f6
--- /dev/null
+++ b/extra/nxserver/nx-gcc44.patch
@@ -0,0 +1,12 @@
+--- nx-3.3.0/nxcomp/Loop.cpp.orig 2009-05-17 12:22:19.000000000 +0200
++++ nx-3.3.0/nxcomp/Loop.cpp 2009-05-17 12:22:43.000000000 +0200
+@@ -10979,7 +10979,7 @@
+ packMethod == PACK_LOSSLESS ||
+ packMethod == PACK_ADAPTIVE)
+ {
+- char *dash = rindex(opt, '-');
++ const char *dash = rindex(opt, '-');
+
+ if (dash != NULL && strlen(dash) == 2 &&
+ *(dash + 1) >= '0' && *(dash + 1) <= '9')
+
diff --git a/extra/nxserver/nxcompsh-gcc43.patch b/extra/nxserver/nxcompsh-gcc43.patch
new file mode 100644
index 000000000..681a0dab5
--- /dev/null
+++ b/extra/nxserver/nxcompsh-gcc43.patch
@@ -0,0 +1,19 @@
+--- nxcompsh/Misc.h~ 2007-06-04 13:39:49.000000000 +0200
++++ nxcompsh/Misc.h 2008-04-12 12:46:24.000000000 +0200
+@@ -18,10 +18,12 @@
+ #ifndef Misc_H
+ #define Misc_H
+
+-#include <iostream.h>
++#include <iostream>
+
+-#include <errno.h>
+-#include <string.h>
++#include <cerrno>
++#include <cstring>
++
++using namespace std;
+
+ //
+ // Error handling macros.
+
diff --git a/extra/nxserver/nxcompshad-gcc43.patch b/extra/nxserver/nxcompshad-gcc43.patch
new file mode 100644
index 000000000..274c36635
--- /dev/null
+++ b/extra/nxserver/nxcompshad-gcc43.patch
@@ -0,0 +1,19 @@
+--- nxcompshad/Misc.h~ 2007-06-04 13:39:49.000000000 +0200
++++ nxcompshad/Misc.h 2008-04-12 12:46:24.000000000 +0200
+@@ -18,10 +18,12 @@
+ #ifndef Misc_H
+ #define Misc_H
+
+-#include <iostream>
++#include <iostream>
+
+-#include <errno.h>
+-#include <string.h>
++#include <cerrno>
++#include <cstring>
++
++using namespace std;
+
+ //
+ // Error handling macros.
+
diff --git a/extra/obconf/PKGBUILD b/extra/obconf/PKGBUILD
new file mode 100644
index 000000000..be385bdde
--- /dev/null
+++ b/extra/obconf/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 38529 2009-05-08 21:31:17Z jgc $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=obconf
+pkgver=2.0.3
+pkgrel=3
+pkgdesc="A gtk2 based configuration tool for the Openbox windowmanager"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://tr.openmonkey.com/pages/obconf/"
+depends=('openbox>=3.4.5' 'gtk2>=2.16.1' 'libglade' 'desktop-file-utils')
+install=${pkgname}.install
+source=(http://icculus.org/openbox/${pkgname}/${pkgname}-${pkgver}.tar.gz \
+ http://icculus.org/openbox/mw/images/8/80/Obconf-72.png)
+md5sums=('b22e273721851dedad72acbc77eefb68' '340ae4732e76731d2838473541eb8d4e')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ sed -i 's/=openbox/=obconf/' obconf.desktop || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+ install -Dm644 ../Obconf-72.png ${startdir}/pkg/usr/share/pixmaps/obconf.png || return 1
+}
diff --git a/extra/obconf/obconf.install b/extra/obconf/obconf.install
new file mode 100644
index 000000000..5264d8979
--- /dev/null
+++ b/extra/obconf/obconf.install
@@ -0,0 +1,15 @@
+# arg 1: the new package version
+post_install() {
+ update-desktop-database -q /usr/share/applications
+ update-mime-database /usr/share/mime 1> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+# arg 1: the old package version
+post_remove() {
+ update-desktop-database -q
+ update-mime-database /usr/share/mime 1> /dev/null
+}
diff --git a/extra/obex-data-server/PKGBUILD b/extra/obex-data-server/PKGBUILD
new file mode 100644
index 000000000..9431d307f
--- /dev/null
+++ b/extra/obex-data-server/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 101379 2010-11-29 00:46:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+# Contributor: Keerthi <keerthi.linux@gmail.com>
+
+pkgname=obex-data-server
+pkgver=0.4.5
+pkgrel=3
+pkgdesc="A D-Bus service providing high-level OBEX client and server side functionality"
+arch=('i686' 'x86_64')
+url="http://wiki.muiline.com/obex-data-server"
+license=('GPL')
+depends=('dbus-glib' 'openobex' 'imagemagick')
+source=("http://tadas.dailyda.com/software/${pkgname}-${pkgver}.tar.gz")
+md5sums=('8b11e7527c1e3a36a2a9a0c52816ec7b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/obexd/PKGBUILD b/extra/obexd/PKGBUILD
new file mode 100644
index 000000000..10c2a4a46
--- /dev/null
+++ b/extra/obexd/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 106996 2011-01-20 12:27:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy@archlinux.org>
+
+pkgbase=obexd
+pkgname=('obexd-client' 'obexd-server')
+pkgver=0.40
+pkgrel=1
+url="http://www.bluez.org/"
+arch=('i686' 'x86_64')
+license=('GPL2')
+makedepends=('openobex' 'libical')
+source=("http://www.kernel.org/pub/linux/bluetooth/${pkgbase}-${pkgver}.tar.bz2")
+md5sums=('f303592b7664b246965c1d6e9361c919')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/obexd
+ make
+}
+
+package_obexd-client() {
+ pkgdesc="D-Bus service providing high-level OBEX client side functionality"
+ depends=('openobex' 'glib2')
+ provides=("obexd=${pkgver}")
+ replaces=('obexd')
+ conflicts=('obexd')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/client"
+ install -m755 -d "${pkgdir}/usr/lib/obexd"
+ install -m755 -d "${pkgdir}/usr/share/dbus-1/services"
+ install -m755 obex-client "${pkgdir}/usr/lib/obexd/"
+ install -m644 obex-client.service "${pkgdir}/usr/share/dbus-1/services/"
+}
+
+package_obexd-server() {
+ pkgdesc="D-Bus service providing high-level OBEX server side functionality"
+ depends=('openobex' 'glib2' 'libical')
+ conflicts=('obex-data-server')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/src"
+ install -m755 -d "${pkgdir}/usr/lib/obexd"
+ install -m755 -d "${pkgdir}/usr/share/dbus-1/services"
+ install -m755 obexd "${pkgdir}/usr/lib/obexd/"
+ install -m644 obexd.service "${pkgdir}/usr/share/dbus-1/services/"
+}
diff --git a/extra/obexftp/PKGBUILD b/extra/obexftp/PKGBUILD
new file mode 100644
index 000000000..e6da6fd9d
--- /dev/null
+++ b/extra/obexftp/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 89833 2010-09-04 10:07:43Z remy $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=obexftp
+pkgver=0.23
+pkgrel=4
+pkgdesc="A tool for transfer files to/from any OBEX enabled device"
+arch=('i686' 'x86_64')
+url="http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp"
+license=('GPL')
+depends=('openobex' 'python2')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/openobex/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f20762061b68bc921e80be4aebc349eb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --disable-ruby --enable-python || return 1
+ make
+}
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+
+ # remove nasty files
+ # mv ${pkgdir}/usr/lib/perl5/site_perl/5.10.0 ${pkgdir}/usr/lib/perl5/site_perl/current
+ rm -f ${pkgdir}/usr/lib/perl5/core_perl/perllocal.pod
+}
diff --git a/extra/ocaml/PKGBUILD b/extra/ocaml/PKGBUILD
new file mode 100644
index 000000000..7b0cd86d4
--- /dev/null
+++ b/extra/ocaml/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 88099 2010-08-19 13:05:24Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=ocaml
+pkgver=3.12.0
+pkgrel=1
+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)
+options=('!makeflags' '!emptydirs')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure -prefix /usr
+ make world.opt || return 1
+ make PREFIX=$pkgdir/usr MANDIR=$pkgdir/usr/share/man install || return 1
+
+# Save >10MB with this one, makepkg only strips debug symbols.
+ find ${startdir}/pkg/usr/lib -type f -name '*.so.*' -exec strip --strip-unneeded {} \;
+
+# install license
+install -D -m 644 $startdir/src/$pkgname-$pkgver/LICENSE $startdir/pkg/usr/share/licenses/ocaml/LICENSE
+}
+md5sums=('3ba7cc65123c3579f14e7c726d3ee782')
diff --git a/extra/ocfs2-tools/PKGBUILD b/extra/ocfs2-tools/PKGBUILD
new file mode 100644
index 000000000..9db43e1e9
--- /dev/null
+++ b/extra/ocfs2-tools/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 90997 2010-09-20 13:54:14Z remy $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=ocfs2-tools
+pkgver=1.4.3
+pkgrel=2
+pkgdesc="Oracle Cluster File System 2 utilities"
+arch=(i686 x86_64)
+url="http://oss.oracle.com/projects/ocfs2-tools/"
+depends=('e2fsprogs' 'glib2' 'readline>=6.0.00')
+license=('GPL2')
+source=(http://oss.oracle.com/projects/ocfs2-tools/dist/files/source/v1.4/$pkgname-$pkgver.tar.gz
+gcc45-ftbfs.patch)
+options=(!makeflags)
+optdepends=('python2: for using ocfs2console')
+md5sums=('7d8895ea41999ce8f468e2bc7dc55ddc'
+ '5dba18ca5596b1de0f2eeb30f5ed1656')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's#/usr/bin/python#/usr/bin/python2#' ocfs2console/ocfs2console
+ # Fix build with gcc 4.5
+ # http://svn.debian.org/viewsvn/collab-maint?view=rev&revision=15814
+ patch -p1 -i ${srcdir}/gcc45-ftbfs.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make LDFLAGS=-L/usr/lib
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ install -m 755 -D $srcdir/$pkgname-$pkgver/vendor/common/ocfs2.init \
+ $pkgdir/etc/rc.d/ocfs2
+ install -m 755 -D $srcdir/$pkgname-$pkgver/vendor/common/o2cb.init \
+ $pkgdir/etc/rc.d/o2cb
+}
diff --git a/extra/ocfs2-tools/gcc45-ftbfs.patch b/extra/ocfs2-tools/gcc45-ftbfs.patch
new file mode 100644
index 000000000..0db24f49e
--- /dev/null
+++ b/extra/ocfs2-tools/gcc45-ftbfs.patch
@@ -0,0 +1,21 @@
+diff -urN ocfs2-tools-1.4.3.orig//mount.ocfs2/mount.ocfs2.c ocfs2-tools-1.4.3/mount.ocfs2/mount.ocfs2.c
+--- ocfs2-tools-1.4.3.orig//mount.ocfs2/mount.ocfs2.c 2009-04-14 00:10:40.000000000 +0200
++++ ocfs2-tools-1.4.3/mount.ocfs2/mount.ocfs2.c 2010-03-24 07:23:45.000000000 +0100
+@@ -261,7 +261,7 @@
+ char *extra = NULL;
+ int dev_ro = 0;
+ char *hbstr = NULL;
+- char stackstr[strlen(OCFS2_CLUSTER_STACK_ARG) + OCFS2_STACK_LABEL_LEN + 1] = "";
++ char stackstr[strlen(OCFS2_CLUSTER_STACK_ARG) + OCFS2_STACK_LABEL_LEN + 1];
+ ocfs2_filesys *fs = NULL;
+ struct o2cb_cluster_desc cluster;
+ struct o2cb_region_desc desc;
+@@ -269,6 +269,8 @@
+ int hb_started = 0;
+ struct stat statbuf;
+
++ stackstr[0] = '\0';
++
+ initialize_ocfs_error_table();
+ initialize_o2dl_error_table();
+ initialize_o2cb_error_table();
diff --git a/extra/ocrad/PKGBUILD b/extra/ocrad/PKGBUILD
new file mode 100644
index 000000000..52fb00e05
--- /dev/null
+++ b/extra/ocrad/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 106659 2011-01-17 20:26:09Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=ocrad
+pkgver=0.21
+pkgrel=1
+pkgdesc="An Optical Character Recognition program"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/ocrad/ocrad.html"
+license=('GPL3')
+depends=('gcc-libs' 'texinfo')
+install=ocrad.install
+source=(http://ftp.gnu.org/gnu/ocrad/ocrad-$pkgver.tar.gz)
+md5sums=('83f9eae9d808f9d86c181538d3f64aed')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ CXXFLAGS="${CXXFLAGS}" \
+ LDFLAGS="${LDFLAGS}" || return 1
+ make || return 1
+
+ make DESTDIR="${pkgdir}" install install-man || return 1
+ rm $pkgdir/usr/share/info/dir
+ gzip $pkgdir/usr/share/info/*
+}
diff --git a/extra/ocrad/ocrad.install b/extra/ocrad/ocrad.install
new file mode 100644
index 000000000..eb599d04e
--- /dev/null
+++ b/extra/ocrad/ocrad.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(ocrad.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/octave/PKGBUILD b/extra/octave/PKGBUILD
new file mode 100644
index 000000000..f7a6000e6
--- /dev/null
+++ b/extra/octave/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 103149 2010-12-15 21:12:17Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor : shining <shiningxc.at.gmail.com>
+# Contributor : cyberdune <cyberdune@gmail.com>
+
+pkgname=octave
+pkgver=3.2.4
+pkgrel=2
+pkgdesc="A high-level language, primarily intended for numerical computations."
+arch=('i686' 'x86_64')
+url="http://www.octave.org"
+license=('GPL')
+depends=('fftw' 'pcre' 'curl' 'lapack' 'libx11' 'graphicsmagick' 'glpk' 'hdf5' 'gcc-libs')
+makedepends=('texinfo' 'graphicsmagick' 'gcc-fortran' 'umfpack')
+optdepends=('texinfo: for help-support in octave'
+ 'gnuplot: alternative plotting'
+ 'umfpack: LU decomposition of some large sparse matrices')
+source=("ftp://ftp.octave.org/pub/octave/octave-$pkgver.tar.bz2"
+ 'octave-3.2.0_as_needed.patch' 'octave-3.2.0_parallel_make.patch' 'imread.patch')
+options=('!emptydirs')
+install=octave.install
+md5sums=('608196657f4fa010420227b77333bb71'
+ '33c8886cd908ace40f8b60334df1c34f'
+ 'd59d783a8d7e8d8306caed4b2b8671a4'
+ '72d33ba1a862244f970cf259923815d9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # gentoo patches
+ patch -Np1 -i ${srcdir}/octave-3.2.0_as_needed.patch
+ patch -Np1 -i ${srcdir}/octave-3.2.0_parallel_make.patch
+ patch -Np0 -i ${srcdir}/imread.patch
+
+ # http://www.nabble.com/Random-rounding-errors-td16010966.html
+ FFLAGS="-O -ffloat-store" \
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib \
+ --enable-shared --disable-static
+
+ make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install
+
+}
diff --git a/extra/octave/imread.patch b/extra/octave/imread.patch
new file mode 100644
index 000000000..4a7b73ea0
--- /dev/null
+++ b/extra/octave/imread.patch
@@ -0,0 +1,29 @@
+--- src/DLD-FUNCTIONS/__magick_read__.cc.orig 2010-03-06 08:05:25.000000000 +0000
++++ src/DLD-FUNCTIONS/__magick_read__.cc 2009-08-25 09:26:01.000000000 +0100
+@@ -30,6 +30,7 @@
+ #include "defun-dld.h"
+ #include "error.h"
+ #include "ov-struct.h"
++#include "oct-env.h"
+
+ #ifdef HAVE_MAGICK
+
+@@ -359,6 +358,18 @@
+
+ #ifdef HAVE_MAGICK
+
++ static bool initialized = false;
++
++ if (! initialized)
++ {
++ std::string program_name = octave_env::get_program_invocation_name ();
++
++ Magick::InitializeMagick (program_name.c_str ());
++
++ initialized = true;
++ }
++
++
+ if (args.length () > 2 || args.length () < 1 || ! args(0).is_string ()
+ || nargout > 3)
+ {
diff --git a/extra/octave/octave-3.2.0_as_needed.patch b/extra/octave/octave-3.2.0_as_needed.patch
new file mode 100644
index 000000000..bce3e01a3
--- /dev/null
+++ b/extra/octave/octave-3.2.0_as_needed.patch
@@ -0,0 +1,11 @@
+diff -Naur octave-3.2.0/liboctave/Makefile.in octave-3.2.0.new/liboctave/Makefile.in
+--- octave-3.2.0/liboctave/Makefile.in 2009-05-25 02:04:59.000000000 -0400
++++ octave-3.2.0.new/liboctave/Makefile.in 2009-07-10 10:32:09.000000000 -0400
+@@ -35,6 +35,7 @@
+ DLL_CXXDEFS = @OCTAVE_DLL_DEFS@
+
+ LINK_DEPS = \
++ -lpthread \
+ -L../libcruft -L. $(RLD_FLAG) \
+ $(LIBCRUFT) $(CHOLMOD_LIBS) $(UMFPACK_LIBS) $(AMD_LIBS) \
+ $(CAMD_LIBS) $(COLAMD_LIBS) $(CCOLAMD_LIBS) $(CXSPARSE_LIBS) \
diff --git a/extra/octave/octave-3.2.0_parallel_make.patch b/extra/octave/octave-3.2.0_parallel_make.patch
new file mode 100644
index 000000000..bcc2f7d29
--- /dev/null
+++ b/extra/octave/octave-3.2.0_parallel_make.patch
@@ -0,0 +1,12 @@
+diff -Naur octave-3.2.0/doc/Makefile.in octave-3.2.0.new/doc/Makefile.in
+--- octave-3.2.0/doc/Makefile.in 2009-06-03 07:55:40.000000000 -0400
++++ octave-3.2.0.new/doc/Makefile.in 2009-07-07 18:20:14.000000000 -0400
+@@ -30,6 +30,8 @@
+ all: conf.texi $(SUBDIRS)
+ .PHONY: all
+
++$(SUBDIRS): conf.texi
++
+ conf.texi: conf.texi.in $(TOPDIR)/Makeconf
+ @$(do-subst-texinfo-vals)
+
diff --git a/extra/octave/octave.install b/extra/octave/octave.install
new file mode 100644
index 000000000..8ee77c430
--- /dev/null
+++ b/extra/octave/octave.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(octave.info octave.info-1 octave.info-2 octave.info-3 octave.info-4 octave.info-5)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${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.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/extra/ode/PKGBUILD b/extra/ode/PKGBUILD
new file mode 100644
index 000000000..3ed250d56
--- /dev/null
+++ b/extra/ode/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 56738 2009-10-26 14:27:28Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Adam Griffiths <adam_griffithsAATTdart.net.au>
+
+pkgname=ode
+pkgver=0.11.1
+pkgrel=1
+pkgdesc="An open source, high performance library for simulating rigid body dynamics"
+arch=('i686' 'x86_64')
+url="http://www.ode.org"
+license=('LGPL' 'BSD')
+depends=('gcc-libs' 'bash')
+source=(http://downloads.sourceforge.net/sourceforge/opende/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+md5sums=('712579afabc2a15aa56e399f76171477')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-shared
+ make || return 1
+ make DESTDIR=${pkgdir}/ install
+
+ install -Dm0644 ${srcdir}/${pkgname}-${pkgver}/ou/LICENSE-BSD.TXT \
+ ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-BSD.TXT
+}
diff --git a/extra/ogle/PKGBUILD b/extra/ogle/PKGBUILD
new file mode 100644
index 000000000..9d9b19c50
--- /dev/null
+++ b/extra/ogle/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 63949 2010-01-19 05:22:55Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=ogle
+pkgver=0.9.2
+pkgrel=12
+pkgdesc="A simple DVD player for Linux"
+arch=('i686' 'x86_64')
+url="http://www.dtek.chalmers.se/groups/dvd/"
+license=('GPL')
+depends=('libxml2' 'libdvdread' 'libjpeg' 'libmad' 'libxinerama' 'libxv'
+ 'alsa-lib' 'a52dec' 'libsm' 'libxxf86vm')
+options=('!libtool')
+source=(http://www.dtek.chalmers.se/groups/dvd/dist/${pkgname}-${pkgver}.tar.gz
+ xvideofix.patch
+ gcc34alsafix.patch
+ gcc4.patch
+ dvdread-4.1.3.patch)
+md5sums=('a76a9892bdb807a4bcf859d15a91f0f9'
+ '57f1cf36eed82c56f24e9c0fc25ce2b3'
+ '4ebc822b252fade6b53c5ceb5be45bf5'
+ 'd08cff87c5ec41a7eebc0d2384835688'
+ '597906c64ff7f5185de8430fdae3107d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/dvdread-4.1.3.patch" || return 1
+ patch -Np1 -i ../xvideofix.patch || return 1
+ patch -Np1 -i ../gcc34alsafix.patch || return 1
+ patch -Np1 -i ../gcc4.patch || return 1
+ # fix alsa detection - stolen from their cvs
+ sed -i 's|^.*MINOR\=\=5.*$|#if SND_LIB_MAJOR==0 && SND_LIB_MINOR<6|' configure || return 1
+ sed -i 's|__diga_end:|\0;|' libogleao/alsa_audio.c || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --with-x || return 1
+ make || return 1
+ export LIBRARY_PATH="${pkgdir}/usr/lib/ogle"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/ogle/dvdread-4.1.3.patch b/extra/ogle/dvdread-4.1.3.patch
new file mode 100644
index 000000000..d928ac2aa
--- /dev/null
+++ b/extra/ogle/dvdread-4.1.3.patch
@@ -0,0 +1,129 @@
+$NetBSD: patch-ad,v 1.1 2009/01/27 02:06:49 jmcneill Exp $
+
+--- vmg/ifo_dump.c.orig 2009-01-26 21:00:17.000000000 -0500
++++ vmg/ifo_dump.c 2009-01-26 21:00:33.000000000 -0500
+@@ -65,38 +65,38 @@ static void print_ifo(char *path, int ti
+ if(h->vmgi_mat != NULL) {
+
+ printf("VMG top level\n-------------\n");
+- ifoPrint_VMGI_MAT(h->vmgi_mat);
++ ifo_print_VMGI_MAT(h->vmgi_mat);
+
+ printf("\nFirst Play PGC\n--------------\n");
+- ifoPrint_PGC(h->first_play_pgc);
++ ifo_print_PGC(h->first_play_pgc);
+
+ printf("\nTitle Track search pointer table\n");
+ printf( "------------------------------------------------\n");
+- ifoPrint_TT_SRPT(h->tt_srpt);
++ ifo_print_TT_SRPT(h->tt_srpt);
+
+ printf("\nMenu PGCI Unit table\n");
+ printf( "--------------------\n");
+ if(h->vmgi_mat->vmgm_pgci_ut != 0) {
+- ifoPrint_PGCI_UT(h->pgci_ut);
++ ifo_print_PGCI_UT(h->pgci_ut);
+ } else
+ printf("No Menu PGCI Unit table present\n");
+
+ printf("\nParental Manegment Information table\n");
+ printf( "------------------------------------\n");
+ if(h->vmgi_mat->ptl_mait != 0) {
+- ifoPrint_PTL_MAIT(h->ptl_mait);
++ ifo_print_PTL_MAIT(h->ptl_mait);
+ } else
+ printf("No Parental Management Information present\n");
+
+ printf("\nVideo Title Set Attribute Table\n");
+ printf( "-------------------------------\n");
+- ifoPrint_VTS_ATRT(h->vts_atrt);
++ ifo_print_VTS_ATRT(h->vts_atrt);
+
+
+ printf("\nText Data Manager Information\n");
+ printf( "-----------------------------\n");
+ if(h->vmgi_mat->txtdt_mgi != 0) {
+- //ifoPrint_TXTDT_MGI(h->txtdt_mgi);
++ //ifo_print_TXTDT_MGI(h->txtdt_mgi);
+ printf("Can't print Text Data Manager Information yet\n");
+ } else
+ printf("No Text Data Manager Information present\n");
+@@ -106,14 +106,14 @@ static void print_ifo(char *path, int ti
+ printf("\nCell Address table\n");
+ printf( "-----------------\n");
+ if(h->vmgi_mat->vmgm_c_adt != 0) {
+- ifoPrint_C_ADT(h->menu_c_adt);
++ ifo_print_C_ADT(h->menu_c_adt);
+ } else
+ printf("No Cell Address table present\n");
+
+ printf("\nVideo Title set Menu VOBU address map\n");
+ printf( "-----------------\n");
+ if(h->vmgi_mat->vmgm_vobu_admap != 0) {
+- ifoPrint_VOBU_ADMAP(h->menu_vobu_admap);
++ ifo_print_VOBU_ADMAP(h->menu_vobu_admap);
+ } else
+ printf("No Menu VOBU address map present\n");
+ }
+@@ -122,20 +122,20 @@ static void print_ifo(char *path, int ti
+ if(h->vtsi_mat != NULL) {
+
+ printf("VTS top level\n-------------\n");
+- ifoPrint_VTSI_MAT(h->vtsi_mat);
++ ifo_print_VTSI_MAT(h->vtsi_mat);
+
+ printf("\nPart of title search pointer table information\n");
+ printf( "----------------------------------------------\n");
+- ifoPrint_VTS_PTT_SRPT(h->vts_ptt_srpt);
++ ifo_print_VTS_PTT_SRPT(h->vts_ptt_srpt);
+
+ printf("\nPGCI Unit table\n");
+ printf( "--------------------\n");
+- ifoPrint_PGCIT(h->vts_pgcit);
++ ifo_print_PGCIT(h->vts_pgcit);
+
+ printf("\nMenu PGCI Unit table\n");
+ printf( "--------------------\n");
+ if(h->vtsi_mat->vtsm_pgci_ut != 0) {
+- ifoPrint_PGCI_UT(h->pgci_ut);
++ ifo_print_PGCI_UT(h->pgci_ut);
+ } else
+ printf("No Menu PGCI Unit table present\n");
+
+@@ -144,31 +144,31 @@ static void print_ifo(char *path, int ti
+ printf("\nTime Map table\n");
+ printf( "-----------------\n");
+ if(h->vtsi_mat->vts_tmapt != 0) {
+- ifoPrint_VTS_TMAPT(h->vts_tmapt);
++ ifo_print_VTS_TMAPT(h->vts_tmapt);
+ } else
+ printf("No Time Map table present\n");
+
+ printf("\nMenu Cell Address table\n");
+ printf( "-----------------\n");
+ if(h->vtsi_mat->vtsm_c_adt != 0) {
+- ifoPrint_C_ADT(h->menu_c_adt);
++ ifo_print_C_ADT(h->menu_c_adt);
+ } else
+ printf("No Cell Address table present\n");
+
+ printf("\nVideo Title Set Menu VOBU address map\n");
+ printf( "-----------------\n");
+ if(h->vtsi_mat->vtsm_vobu_admap != 0) {
+- ifoPrint_VOBU_ADMAP(h->menu_vobu_admap);
++ ifo_print_VOBU_ADMAP(h->menu_vobu_admap);
+ } else
+ printf("No Menu VOBU address map present\n");
+
+ printf("\nCell Address table\n");
+ printf( "-----------------\n");
+- ifoPrint_C_ADT(h->vts_c_adt);
++ ifo_print_C_ADT(h->vts_c_adt);
+
+ printf("\nVideo Title Set VOBU address map\n");
+ printf( "-----------------\n");
+- ifoPrint_VOBU_ADMAP(h->vts_vobu_admap);
++ ifo_print_VOBU_ADMAP(h->vts_vobu_admap);
+
+ }
+ }
diff --git a/extra/ogle/gcc34alsafix.patch b/extra/ogle/gcc34alsafix.patch
new file mode 100644
index 000000000..76de3462d
--- /dev/null
+++ b/extra/ogle/gcc34alsafix.patch
@@ -0,0 +1,15 @@
+--- ogle-0.9.2/libogleao/alsa_audio.c 2003-10-18 17:38:30.000000000 -0700
++++ ogle-0.9.2-patch/libogleao/alsa_audio.c 2005-04-22 18:21:23.000000000 -0700
+@@ -248,10 +248,9 @@
+ //Shouldn't ctl_handle be closed here?
+ }
+
+- snd_ctl_close(ctl_handle);
+-
+- __diga_end:
++ snd_ctl_close(ctl_handle);
+ }
++ __diga_end:
+
+ return 0;
+ }
diff --git a/extra/ogle/gcc4.patch b/extra/ogle/gcc4.patch
new file mode 100644
index 000000000..b6a10a325
--- /dev/null
+++ b/extra/ogle/gcc4.patch
@@ -0,0 +1,12 @@
+diff -urN ogle-0.9.2-old/ac3/ac3dec_wrap.c ogle-0.9.2/ac3/ac3dec_wrap.c
+--- ogle-0.9.2-old/ac3/ac3dec_wrap.c 2003-03-02 15:50:03.000000000 +0000
++++ ogle-0.9.2/ac3/ac3dec_wrap.c 2005-09-30 17:07:27.000000000 +0000
+@@ -48,7 +48,7 @@
+ static void handle_events(MsgEventQ_t *q, MsgEvent_t *ev);
+
+
+-static char *program_name;
++char *program_name;
+
+ static FILE *outfile;
+
diff --git a/extra/ogle/xvideofix.patch b/extra/ogle/xvideofix.patch
new file mode 100644
index 000000000..aafde447a
--- /dev/null
+++ b/extra/ogle/xvideofix.patch
@@ -0,0 +1,205 @@
+--- ogle-0.9.2/mpeg2_video/video_output_x11.c 2003-11-04 04:02:10.000000000 -0800
++++ ogle-0.9.2-patch/mpeg2_video/video_output_x11.c 2005-04-22 18:37:56.000000000 -0700
+@@ -286,6 +286,7 @@
+ }
+ }
+
++
+ /* This section of the code looks for the Xv extension for hardware
+ * yuv->rgb and scaling. If it is not found, or any suitable adapter
+ * is not found, use_xv will be set to 0. Otherwise it allocates a
+@@ -299,121 +300,136 @@
+ {
+ int xv_found = 0;
+ #ifdef HAVE_XV
+- int i, j;
++ int i, j, k;
+ int result;
+
+ xv_port = 0; /* We have no port yet. */
+-
++
+ /* Check for the Xvideo extension */
+- result = XvQueryExtension(mydisplay, &xv_version, &xv_release,
+- &xv_request_base, &xv_event_base,
++ result = XvQueryExtension(mydisplay, &xv_version, &xv_release,
++ &xv_request_base, &xv_event_base,
+ &xv_error_base);
+ if(result != Success) {
+ WARNING("%s", "Xvideo extension not found\n");
+ use_xv = 0;
+ return;
+ }
+-
++
+ NOTE("Found Xv extension %d.%d, checking for suitable adaptors\n",
+ xv_version, xv_release);
+-
++
+ /* Check for available adaptors */
+- result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay),
++ result = XvQueryAdaptors(mydisplay, DefaultRootWindow (mydisplay),
+ &xv_num_adaptors, &xv_adaptor_info);
+ if(result != Success) {
+ WARNING("%s", "No Xv adaptors found\n");
+ use_xv = 0;
+ return;
+ }
+-
++
+ /* Check adaptors */
+ for(i = 0; i < xv_num_adaptors; i++) {
+-
++
+ /* Is it usable for displaying XvImages */
+ if(!(xv_adaptor_info[i].type & XvInputMask) ||
+ !(xv_adaptor_info[i].type & XvImageMask))
+ continue;
+-
+- xv_port = xv_adaptor_info[i].base_id;
+-
+- /* Check image formats of adaptor */
+- xv_formats = XvListImageFormats(mydisplay, xv_port, &xv_num_formats);
+- for(j = 0; j < xv_num_formats; j++) {
+- if(xv_formats[j].id == 0x32315659) { /* YV12 */
+- //if(xv_formats[j].id == 0x30323449) { /* I420 */
+- xv_id = xv_formats[j].id;
+- break;
+- }
+- }
+- /* No matching format found */
+- if(j == xv_num_formats)
+- continue;
+-
+- NOTE("Xv adaptor \"%s\" port %li image format %i\n",
+- xv_adaptor_info[i].name, xv_port, xv_id);
+-
+- /* Allocate XvImages */
++
++ /* Check Available Ports */
++ for (j = 0; j < xv_adaptor_info[i].num_ports && !xv_port ; j++) {
++
++ /* Check Image formats of adaptor */
++ xv_formats = XvListImageFormats(mydisplay,xv_adaptor_info[i].base_id + j, &xv_num_formats);
++ for (k = 0; k < xv_num_formats; k ++) {
++
++ /* Check for proper format (YV12) and see if we can grab the port */
++ if ( (xv_formats[k].id == 0x32315659) && (XvGrabPort(mydisplay,xv_adaptor_info[i].base_id + j,0) == Success) ) {
++ xv_id = xv_formats[k].id;
++ xv_port = xv_adaptor_info[i].base_id + j;
++ break;
++ }
++
++ }
++
++ /* delete stuff nicely */
++ XFree(xv_formats);
++ }
++
++ /* Check next Adapter */
++ if (xv_port==0) continue;
++
++ /* Report what we found */
++ NOTE("Xv adaptor \"%s\" port %li image format %i\n", xv_adaptor_info[i].name, xv_port, xv_id);
++
++ /* Allocate XvImage */
+ xv_image = XvShmCreateImage(mydisplay, xv_port, xv_id, NULL,
+ padded_width,
+- padded_height,
++ padded_height,
+ &shm_info);
+-
+- /* Got an Image? */
++
++ /* Got an milk? */
+ if(xv_image == NULL)
+ continue;
+-
++
+ /* Test and see if we really got padded_width x padded_height */
+ if(xv_image->width != padded_width ||
+ xv_image->height != padded_height) {
+ FATAL("XvShmCreateImage got size: %d x %d\n",
+ xv_image->width, xv_image->height);
+ exit(1);
+- }
+-
++ }
++
++ /* Now Finish Up */
+ shm_info.shmid = picture_buffer_shmid;
+ shm_info.shmaddr = picture_buffer_addr;
+-
+- /* Set the data pointer to the decoders picture segment. */
++
++ /* Set the data pointer to the decoders picture segment. */
+ // xv_image->data = picture_data->y;
+ shm_info.readOnly = True;
+-
++
+ /* make sure we don't have any unhandled errors */
+ XSync(mydisplay, False);
+-
++
+ /* set error handler so we can check if xshmattach failed */
+ prev_xerrhandler = XSetErrorHandler(xshm_errorhandler);
+-
++
+ /* get the serial of the xshmattach request */
+ req_serial = NextRequest(mydisplay);
+-
++
+ /* try to attach */
+ XShmAttach(mydisplay, &shm_info);
+-
++
+ /* make sure xshmattach has been processed and any errors
+ have been returned to us */
+ XSync(mydisplay, False);
+-
++
+ /* revert to the previous xerrorhandler */
+ XSetErrorHandler(prev_xerrhandler);
+-
++
+ if(use_xshm) {
+ #if 0
+ shmctl(shm_info.shmid, IPC_RMID, 0); // only works on Linux..
+ #endif
+-
++
+ CompletionType = XShmGetEventBase(mydisplay) + ShmCompletion;
+ }
+ xv_found = 1;
+
+ /* All set up! */
+ break;
+- }
++ }
++
++ /* Clean up */
++ XvFreeAdaptorInfo(xv_adaptor_info);
++
+ #endif /* HAVE_XV */
++ /* In case we didn't find a working Xv */
+ if(!xv_found) {
+ use_xv = 0;
+- }
+-}
+-
++ }
++
++ }
++
+
+ /* This section of the code tries to use the MIT XShm extension for
+ * accellerated transfers to to X. XShm extension is need and only
+@@ -1726,6 +1742,8 @@
+
+ if(mydisplay) {
+ XSync(mydisplay,True);
++ if (use_xv)
++ XvUngrabPort(mydisplay,xv_port,CurrentTime);
+ if(use_xshm)
+ XShmDetach(mydisplay, &shm_info);
+ if(window.ximage != 0)
diff --git a/extra/ogmtools/PKGBUILD b/extra/ogmtools/PKGBUILD
new file mode 100644
index 000000000..f63436582
--- /dev/null
+++ b/extra/ogmtools/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 68086 2010-02-10 17:57:04Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=ogmtools
+pkgver=1.5
+pkgrel=3
+pkgdesc="Information, extraction or creation for OGG media streams"
+arch=('i686' 'x86_64')
+url="http://www.bunkus.org/videotools/ogmtools"
+license=('GPL')
+depends=('libvorbis' 'libdvdread' 'gcc-libs')
+source=(http://www.bunkus.org/videotools/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('02d356e3d21d53b1d9715bab223d8996')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/opal/PKGBUILD b/extra/opal/PKGBUILD
new file mode 100644
index 000000000..78fbcbb53
--- /dev/null
+++ b/extra/opal/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 81960 2010-06-07 12:39:19Z jgc $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+pkgname=opal
+pkgver=3.6.8
+pkgrel=1
+pkgdesc="Open Phone Abstraction Library"
+arch=(i686 x86_64)
+url="http://www.ekiga.org"
+license=('GPL')
+depends=('ptlib=2.6.7' 'libtheora>=1.1.1' 'x264>=20100524' 'speex>=1.2rc1')
+makedepends=('ffmpeg')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.6/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8cbfabb33e5c5563fdafacf1adde536c78638d6d020fae496a52e19e2be6a90c')
+
+build() {
+ cd "${srcdir}/opal-${pkgver}"
+ CFLAGS="$CFLAGS -D__STDC_CONSTANT_MACROS" \
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/openal/PKGBUILD b/extra/openal/PKGBUILD
new file mode 100644
index 000000000..86dbcc263
--- /dev/null
+++ b/extra/openal/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115848 2011-03-22 06:51:29Z heftig $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributer: Jason Chu <jchu@xentac.net>
+
+pkgname=openal
+pkgver=1.13
+pkgrel=1
+pkgdesc="OpenAL audio library for use with opengl"
+arch=('i686' 'x86_64')
+url="http://www.openal.org/"
+license=('LGPL')
+depends=('glibc')
+makedepends=('alsa-lib' 'sdl' 'pkgconfig' 'cmake' 'libpulse')
+options=('!libtool')
+source=(http://kcat.strangesoft.net/openal-releases/openal-soft-${pkgver}.tar.bz2)
+md5sums=('58b7d2809790c70681b825644c5f3614')
+
+build() {
+ cd ${srcdir}/${pkgname}-soft-${pkgver}/build
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release ..
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-soft-${pkgver}/build
+ make DESTDIR=${pkgdir}/ install
+}
diff --git a/extra/openbabel/PKGBUILD b/extra/openbabel/PKGBUILD
new file mode 100644
index 000000000..a265af7a1
--- /dev/null
+++ b/extra/openbabel/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 99851 2010-11-18 20:52:23Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=openbabel
+pkgver=2.3.0
+pkgrel=3
+pkgdesc="A library designed to interconvert between many file formats used in \
+molecular modeling and computational chemistry"
+arch=('i686' 'x86_64')
+url="http://openbabel.org/wiki/Main_Page"
+license=('GPL')
+depends=('gcc-libs' 'libxml2')
+makedepends=('cmake' 'eigen' 'wxgtk')
+optdepends=('eigen: to use bindings'
+ 'wxgtk: GUI interface')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('effda01ed4a31d18d8e3d08191799608')
+
+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/extra/openbox/PKGBUILD b/extra/openbox/PKGBUILD
new file mode 100644
index 000000000..a71e0b16a
--- /dev/null
+++ b/extra/openbox/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 89725 2010-09-03 12:51:52Z remy $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=openbox
+pkgver=3.4.11.2
+pkgrel=2
+pkgdesc="A window manager for the X11 windowing system"
+arch=('i686' 'x86_64')
+url="http://openbox.org"
+license=('GPL')
+depends=('startup-notification' 'libxml2' 'libxinerama' 'libxrandr'
+ 'libxcursor' 'pango')
+optdepends=('pyxdg: for the xdg-autostart script')
+groups=('lxde')
+install=${pkgname}.install
+options=('!libtool' 'force')
+backup=('etc/xdg/openbox/menu.xml' 'etc/xdg/openbox/rc.xml')
+source=(http://www.icculus.org/openbox/releases/${pkgname}-${pkgver}.tar.gz
+ 'which-2.20.patch')
+md5sums=('30e669134fa81df810fe7d1dc59cd931'
+ 'ec5e3d4d74779b0ca576a053ae54124d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # FS#11455
+ patch -Np1 -i ${srcdir}/which-2.20.patch || return 1
+ sed -i 's#python#python2#' tools/xdg-autostart/xdg-autostart
+ ./configure --prefix=/usr \
+ --with-x \
+ --enable-startup-notification \
+ --sysconfdir=/etc
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ sed -i "s:startkde:/usr/bin/\0:" \
+ ${pkgdir}/usr/share/xsessions/openbox-kde.desktop
+ sed -i "s:=gnome-session:=/usr/bin/gnome-session:" \
+ ${pkgdir}/usr/share/xsessions/openbox-gnome.desktop
+}
diff --git a/extra/openbox/openbox.install b/extra/openbox/openbox.install
new file mode 100644
index 000000000..301c22127
--- /dev/null
+++ b/extra/openbox/openbox.install
@@ -0,0 +1,9 @@
+post_install() {
+ echo "Place menu.xml, rc.xml and autostart.sh in ~/.config/openbox"
+ echo "They can be found in /etc/xdg/openbox"
+}
+
+post_upgrade() {
+ post_install
+}
+
diff --git a/extra/openbox/which-2.20.patch b/extra/openbox/which-2.20.patch
new file mode 100644
index 000000000..7f663ae49
--- /dev/null
+++ b/extra/openbox/which-2.20.patch
@@ -0,0 +1,53 @@
+--- openbox-3.4.11.1/data/autostart.sh.in 2010-03-14 09:40:37.000000000 -0500
++++ openbox-3.4.11.1/data/autostart.sh.in 2010-03-26 14:44:36.000000000 -0500
+@@ -3,13 +3,13 @@
+
+ # Set a background color
+ BG=""
+-if which hsetroot >/dev/null; then
++if which hsetroot >/dev/null 2>&1; then
+ BG=hsetroot
+ else
+- if which esetroot >/dev/null; then
++ if which esetroot >/dev/null 2>&1; then
+ BG=esetroot
+ else
+- if which xsetroot >/dev/null; then
++ if which xsetroot >/dev/null 2>&1; then
+ BG=xsetroot
+ fi
+ fi
+@@ -17,28 +17,28 @@
+ test -z $BG || $BG -solid "#303030"
+
+ # D-bus
+-if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
++if which dbus-launch >/dev/null 2>&1 && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
+ eval `dbus-launch --sh-syntax --exit-with-session`
+ fi
+
+ # Make GTK apps look and behave how they were set up in the gnome config tools
+ if test -x @libexecdir@/gnome-settings-daemon >/dev/null; then
+ @libexecdir@/gnome-settings-daemon &
+-elif which gnome-settings-daemon >/dev/null; then
++elif which gnome-settings-daemon >/dev/null 2>&1; then
+ gnome-settings-daemon &
+ # Make GTK apps look and behave how they were set up in the XFCE config tools
+-elif which xfce-mcs-manager >/dev/null; then
++elif which xfce-mcs-manager >/dev/null 2>&1; then
+ xfce-mcs-manager n &
+ fi
+
+ # Preload stuff for KDE apps
+-if which start_kdeinit >/dev/null; then
++if which start_kdeinit >/dev/null 2>&1; then
+ LD_BIND_NOW=true start_kdeinit --new-startup +kcminit_startup &
+ fi
+
+ # Run XDG autostart things. By default don't run anything desktop-specific
+ # See xdg-autostart --help more info
+ DESKTOP_ENV="OPENBOX"
+-if which @secretbindir@/xdg-autostart >/dev/null; then
++if which @secretbindir@/xdg-autostart >/dev/null 2>&1; then
+ @secretbindir@/xdg-autostart $DESKTOP_ENV
+ fi
diff --git a/extra/opencdk/PKGBUILD b/extra/opencdk/PKGBUILD
new file mode 100644
index 000000000..dccaaced8
--- /dev/null
+++ b/extra/opencdk/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 69392 2010-02-20 12:36:11Z allan $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=opencdk
+pkgver=0.6.6
+pkgrel=2
+pkgdesc="The Open Crypto Development Kit provides basic parts of the OpenPGP message format"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gnutls/"
+license=('GPL')
+depends=('libgcrypt>=1.2.4' 'zlib')
+options=('!libtool')
+source=(ftp://ftp.gnutls.org/pub/gnutls/opencdk/opencdk-${pkgver}.tar.bz2)
+md5sums=('813d62d7afe7b2c2d8f3df0a6c9d9331')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/openconnect/PKGBUILD b/extra/openconnect/PKGBUILD
new file mode 100644
index 000000000..512ca21de
--- /dev/null
+++ b/extra/openconnect/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114330 2011-03-12 16:08:31Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=openconnect
+pkgver=3.01
+pkgrel=1
+pkgdesc="Open client for Cisco AnyConnect VPN"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.infradead.org/openconnect.html"
+depends=('libxml2' 'openssl')
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.infradead.org/pub/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4d41c96f95a2bc5b355e89b845bc5bb7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm0644 openconnect.8 "${pkgdir}"/usr/share/man/man8/openconnect.8
+}
diff --git a/extra/opencore-amr/PKGBUILD b/extra/opencore-amr/PKGBUILD
new file mode 100644
index 000000000..e4fe7b376
--- /dev/null
+++ b/extra/opencore-amr/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 62601 2010-01-10 14:07:22Z ibiru $
+# Maintainer: Ionut Biru <ionut@archlinux.ro>
+# Contributor: WAntilles <wantilles@adslgr.com>
+
+pkgname=opencore-amr
+pkgver=0.1.2
+pkgrel=1
+pkgdesc="Open source implementation of the Adaptive Multi Rate (AMR) speech codec"
+arch=('i686' 'x86_64')
+license=('APACHE')
+url="http://opencore-amr.sourceforge.net/"
+depends=('gcc-libs')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('8e8b8b253eb046340ff7b6bf7a6ccd3e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir}/ install || return 1
+}
+
diff --git a/extra/opencv/PKGBUILD b/extra/opencv/PKGBUILD
new file mode 100644
index 000000000..80b192193
--- /dev/null
+++ b/extra/opencv/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 109758 2011-02-12 15:04:53Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=opencv
+_realname=OpenCV
+pkgver=2.2.0
+pkgrel=3
+pkgdesc="Open Source Computer Vision Library"
+arch=('i686' 'x86_64')
+license=('BSD')
+url="http://opencv.willowgarage.com"
+depends=('jasper' 'gstreamer0.10-base' 'openexr'
+ 'gtk2' 'xine-lib' 'libdc1394' 'v4l-utils')
+makedepends=('pkg-config' 'cmake' 'doxygen'
+ 'python2-numpy' 'eigen')
+optdepends=('eigen'
+ 'python2-numpy')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/opencvlibrary/$_realname-$pkgver.tar.bz2
+ ptrcvcapture.patch)
+md5sums=('122c9ac793a46854ef2819fedbbd6b1b'
+ '461a8b1b0f2264521e13d9ae051d13be')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ # Please do not remove any patches from trunk #
+
+ # libpng 1.4 compatibility
+ #patch -Np1 -i "$srcdir/libpng-1.4.patch"
+
+ # fix v4l issue
+ #patch -Np0 -i "$srcdir/v4l-mmap.patch"
+
+ # fix ffmpeg-related C++ issue
+ # see http://code.google.com/p/ffmpegsource/source/detail?r=311
+ #export CXXFLAGS="$CXXFLAGS -D__STDC_CONSTANT_MACROS"
+
+ # fix linking against highgui
+ # see https://bugs.archlinux.org/task/22841
+ patch -Np0 -i "$srcdir/ptrcvcapture.patch"
+
+ cmake . -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DWITH_XINE=ON \
+ -DWITH_UNICAP=OFF \
+ -DBUILD_EXAMPLES=ON \
+ -DBUILD_TESTS=OFF \
+ -DINSTALL_C_EXAMPLES=ON \
+ -DINSTALL_PYTHON_EXAMPLES=ON
+ make
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ # install license file
+ install -Dm644 "$srcdir/$_realname-$pkgver/doc/license.txt" \
+ "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/opencv/libpng-1.4.patch b/extra/opencv/libpng-1.4.patch
new file mode 100644
index 000000000..c34c5a58a
--- /dev/null
+++ b/extra/opencv/libpng-1.4.patch
@@ -0,0 +1,12 @@
+diff -Naur OpenCV-2.0.0-orig/src/highgui/grfmt_png.cpp OpenCV-2.0.0/src/highgui/grfmt_png.cpp
+--- OpenCV-2.0.0-orig/src/highgui/grfmt_png.cpp 2010-01-21 01:08:46.000000000 -0500
++++ OpenCV-2.0.0/src/highgui/grfmt_png.cpp 2010-01-21 01:13:11.000000000 -0500
+@@ -223,7 +223,7 @@
+ png_set_palette_to_rgb( png_ptr );
+
+ if( m_color_type == PNG_COLOR_TYPE_GRAY && m_bit_depth < 8 )
+- png_set_gray_1_2_4_to_8( png_ptr );
++ png_set_expand_gray_1_2_4_to_8( png_ptr );
+
+ if( CV_MAT_CN(m_type) > 1 && color )
+ png_set_bgr( png_ptr ); // convert RGB to BGR
diff --git a/extra/opencv/ptrcvcapture.patch b/extra/opencv/ptrcvcapture.patch
new file mode 100644
index 000000000..c1316f0ea
--- /dev/null
+++ b/extra/opencv/ptrcvcapture.patch
@@ -0,0 +1,17 @@
+Index: modules/highgui/src/cap.cpp
+===================================================================
+--- modules/highgui/src/cap.cpp (revision 4283)
++++ modules/highgui/src/cap.cpp (working copy)
+@@ -52,10 +52,10 @@
+ namespace cv
+ {
+
+-template<> inline void Ptr<CvCapture>::delete_obj()
++template<> void Ptr<CvCapture>::delete_obj()
+ { cvReleaseCapture(&obj); }
+
+-template<> inline void Ptr<CvVideoWriter>::delete_obj()
++template<> void Ptr<CvVideoWriter>::delete_obj()
+ { cvReleaseVideoWriter(&obj); }
+
+ }
diff --git a/extra/opencv/v4l-mmap.patch b/extra/opencv/v4l-mmap.patch
new file mode 100644
index 000000000..b7bbc9b74
--- /dev/null
+++ b/extra/opencv/v4l-mmap.patch
@@ -0,0 +1,14 @@
+http://code.ros.org/trac/opencv/ticket/141
+http://bugs.gentoo.org/313649
+
+--- src/highgui/cvcap_libv4l.cpp
++++ src/highgui/cvcap_libv4l.cpp
+@@ -782,7 +782,7 @@
+
+ capture->buffers[n_buffers].length = buf.length;
+ capture->buffers[n_buffers].start =
+- mmap (NULL /* start anywhere */,
++ v4l2_mmap (NULL /* start anywhere */,
+ buf.length,
+ PROT_READ | PROT_WRITE /* required */,
+ MAP_SHARED /* recommended */,
diff --git a/extra/openexr/PKGBUILD b/extra/openexr/PKGBUILD
new file mode 100644
index 000000000..ada112251
--- /dev/null
+++ b/extra/openexr/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 17474 2008-10-30 16:25:54Z pierre $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=openexr
+pkgver=1.6.1
+pkgrel=1
+depends=('zlib' 'ilmbase')
+pkgdesc="openexr library for EXR images"
+arch=(i686 x86_64)
+options=('!libtool')
+license=('custom')
+source=("http://savannah.nongnu.org/download/$pkgname/$pkgname-$pkgver.tar.gz" 'gcc43.patch')
+url="http://www.openexr.org"
+md5sums=('11951f164f9c872b183df75e66de145a' '7c83ee3d69ad688142e7de63cb68e70a')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -p1 -i $srcdir/gcc43.patch || return 1
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/openexr/gcc43.patch b/extra/openexr/gcc43.patch
new file mode 100644
index 000000000..362487276
--- /dev/null
+++ b/extra/openexr/gcc43.patch
@@ -0,0 +1,22 @@
+diff -Nura openexr-1.6.1/exrenvmap/main.cpp openexr-1.6.1.new/exrenvmap/main.cpp
+--- openexr-1.6.1/exrenvmap/main.cpp 2007-04-25 03:07:51.000000000 +0200
++++ openexr-1.6.1.new/exrenvmap/main.cpp 2008-10-30 17:18:13.000000000 +0100
+@@ -45,6 +45,7 @@
+ #include <iostream>
+ #include <exception>
+ #include <stdlib.h>
++#include <string.h>
+
+ using namespace Imf;
+ using namespace std;
+diff -Nura openexr-1.6.1/exrmaketiled/main.cpp openexr-1.6.1.new/exrmaketiled/main.cpp
+--- openexr-1.6.1/exrmaketiled/main.cpp 2007-04-25 03:08:45.000000000 +0200
++++ openexr-1.6.1.new/exrmaketiled/main.cpp 2008-10-30 17:18:40.000000000 +0100
+@@ -46,6 +46,7 @@
+ #include <exception>
+ #include <string>
+ #include <stdlib.h>
++#include <string.h>
+
+ using namespace Imf;
+ using namespace std;
diff --git a/extra/opengtl/PKGBUILD b/extra/opengtl/PKGBUILD
new file mode 100644
index 000000000..582f3928f
--- /dev/null
+++ b/extra/opengtl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111122 2011-02-24 06:35:03Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Andries Radu <admiral0@live.it>
+
+pkgname=opengtl
+pkgver=0.9.15
+pkgrel=1
+pkgdesc="A set of library for using and integrating transformation algorithms (such as filter or color conversion) in graphics applications"
+url="http://www.opengtl.org"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gcc-libs')
+makedepends=('cmake' 'llvm' 'libpng')
+optdepends=('libpng: for using the png extension')
+source=(http://download.opengtl.org/OpenGTL-${pkgver}.tar.bz2)
+md5sums=('9e59817fddfc7085a8d23a6bbea60bdc')
+sha1sums=('12d53a6ba660d278906539f74d28b464601a08a3')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../OpenGTL-${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/extra/openjdk6/PKGBUILD b/extra/openjdk6/PKGBUILD
new file mode 100644
index 000000000..ef8bbe171
--- /dev/null
+++ b/extra/openjdk6/PKGBUILD
@@ -0,0 +1,195 @@
+# $Id: PKGBUILD 117753 2011-04-04 17:40:52Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=('openjdk6' 'openjdk6-src')
+pkgbase="openjdk6"
+#_date=20100715
+_javaver=6
+_icedteaver=1.10.1
+_openjdk_version=b22
+_openjdk_date=28_feb_2011
+#pkgver=${_javaver}.${_openjdk_version}_0.hg_${_date}
+pkgver=${_javaver}.${_openjdk_version}_${_icedteaver}
+pkgrel=1
+url='http://icedtea.classpath.org'
+arch=('i686' 'x86_64')
+license=('custom')
+makedepends=('gcc-libs' 'xdg-utils' 'hicolor-icon-theme' 'ca-certificates-java' 'libxtst' 'alsa-lib' 'giflib' 'libxp' 'gtk2'
+ 'nspr' 'zlib' 'freetype2' 'libjpeg>=8' 'libx11' 'libcups' 'patch' 'xalan-java' 'libxt' 'nss'
+ 'apache-ant' 'autoconf' 'unzip' 'rhino' 'mercurial' 'zip' 'cpio')
+options=('!emptydirs') # 'force') # force needed for hg shots
+source=(http://icedtea.classpath.org/download/source/icedtea6-${_icedteaver}.tar.gz
+ #ftp://ftp.archlinux.org/other/openjdk6/icedtea6-${_date}.tar.xz
+ http://download.java.net/openjdk/jdk6/promoted/${_openjdk_version}/openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz
+ http://icedtea.classpath.org/download/drops/jaxp144_01.zip
+ https://jax-ws.dev.java.net/files/documents/4202/150724/jdk6-jaxws-b20.zip
+ https://jax-ws.dev.java.net/files/documents/4202/150725/jdk6-jaf-b20.zip
+ fix_jdk_cmds_path.diff
+ fix_corba_cmds_path.diff
+ aatext_by_default.diff
+ fontconfig-paths.diff
+ nonreparenting-wm.diff
+ openjdk6.profile
+ openjdk6.profile.csh)
+noextract=(openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz)
+md5sums=('f3b31b9f591afc752372addacb1eb335'
+ '2d2bbbb0f9b81f1fec41ec730da8a933'
+ 'ef7a8b3624ea904bf584bc46d79b5e75'
+ '91adfd41e6f001add4f92ae31216b1e3'
+ 'bc95c133620bd68c161cac9891592901'
+ '5da3e39fa60985576c4f37d1491efbe2'
+ 'f7e7a212e50abb56a6ef1a2b1bd27405'
+ 'ef60d567c0d9bad111212851220deafd'
+ 'ee1afda124d5927345014ab382ef581e'
+ '409812b5675f9678b1c9e1a12a945a9a'
+ '74c4a7adc782edd087802bf92ae3d6d0'
+ 'fdf295e2f186dfa4d308691a3d7ac8c5')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/icedtea6-${_date}
+ pushd /tmp/icedtea6-${_date}
+ #hg -v clone http://icedtea.classpath.org/hg/icedtea6
+ # use specific release branch
+ hg -v clone http://icedtea.classpath.org/hg/release/icedtea6-1.8/
+ rm -rf icedtea6/.hg*
+ tar -cvJf /tmp/icedtea6-${_date}/icedtea6-${_date}.tar.xz *
+ popd
+}
+
+build() {
+
+ unset JAVA_HOME
+ unset CLASSPATH
+
+ [ -z "${ANT_HOME}" ] && . /etc/profile.d/apache-ant.sh
+
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd ${srcdir}/icedtea6-${_icedteaver}
+
+ ln -s ${srcdir}/openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz .
+
+ cp ${srcdir}/*.diff ${srcdir}/icedtea6-${_icedteaver}/patches/
+
+ autoreconf -i
+
+ export DISTRIBUTION_PATCHES="patches/fix_jdk_cmds_path.diff patches/aatext_by_default.diff patches/fontconfig-paths.diff patches/fix_corba_cmds_path.diff patches/nonreparenting-wm.diff"
+
+ export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}"
+ export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}"
+ unset MAKEFLAGS
+
+ ./configure --with-parallel-jobs=${HOTSPOT_BUILD_JOBS} \
+ --with-xalan2-jar=/usr/share/java/xalan.jar \
+ --with-ant-home=/usr/share/java/apache-ant \
+ --with-pkgversion=ArchLinux-${pkgver}-${pkgrel}-$CARCH \
+ --with-jaxp-drop-zip=${srcdir}/jaxp144_01.zip \
+ --with-jaxws-drop-zip=${srcdir}/jdk6-jaxws-b20.zip \
+ --with-jaf-drop-zip=${srcdir}/jdk6-jaf-b20.zip \
+ --disable-bootstrap
+ LD_PRELOAD="" make
+}
+
+package_openjdk6() {
+ pkgdesc='Free Java environment based on OpenJDK 6.0 with IcedTea6 replacing binary plugs.'
+ backup=(etc/profile.d/openjdk6.sh)
+ depends=('gcc-libs' 'xdg-utils' 'hicolor-icon-theme' 'ca-certificates-java' 'libxtst' 'libxt' 'nss' 'libjpeg' 'freetype2' 'libxrender' 'libpng')
+ optdepends=('icedtea-web: web browser plugin + Java Web Start'
+ 'alsa-lib: for sound'
+ 'giflib: for gif format support')
+ conflicts=('java-environment' 'java-runtime')
+ provides=('java-environment=6' 'java-runtime=6')
+ install=openjdk6.install
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ _arch=amd64
+ else
+ _arch=i586
+ fi
+
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd ${srcdir}/icedtea6-${_icedteaver}
+ install -m755 -d ${pkgdir}/${_jvmdir}/jre
+
+ pushd ${srcdir}/icedtea6-${_icedteaver}/openjdk.build/j2sdk-image
+
+ # Install main files.
+ cp -a bin include lib ${pkgdir}/${_jvmdir}/
+ cp -a jre/bin jre/lib ${pkgdir}/${_jvmdir}/jre/
+
+ mv ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.Ubuntu.properties.src \
+ ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.properties.src
+ mv ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.Ubuntu.bfc \
+ ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.bfc
+ rm -f ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.*.bfc
+ rm -f ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.*.properties.src
+
+ # Install man pages.
+ install -m755 -d ${pkgdir}/usr/share/man/man1
+ install -m644 man/man1/*.1 ${pkgdir}/usr/share/man/man1/
+
+ # Install demos and samples.
+ cp -a demo ${pkgdir}/${_jvmdir}/
+ install -m755 -d sample/rmi
+ mv bin/java-rmi.cgi sample/rmi
+ cp -a sample ${pkgdir}/${_jvmdir}/
+ popd
+
+ # Install icons and menu entries.
+ for s in 16 24 32 48 ; do
+ install -m755 -d ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps
+ install -m644 openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+ ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/java.png
+ done
+
+ # Install desktop files.
+ install -m755 -d ${pkgdir}/usr/share/applications
+ install -m644 {jconsole,policytool}.desktop ${pkgdir}/usr/share/applications
+
+ # link binaries into /usr/bin
+ install -m755 -d ${pkgdir}/usr/bin
+ pushd ${pkgdir}/${_jvmdir}/bin
+ for file in *; do
+ ln -sf ${_jvmdir}/bin/${file} \
+ ${pkgdir}/usr/bin
+ done
+ popd
+
+ # link JKS keystore from ca-certificates-java
+ rm -f ${pkgdir}/${_jvmdir}/jre/lib/security/cacerts
+ ln -sf /etc/ssl/certs/java/cacerts "${pkgdir}/${_jvmdir}/jre/lib/security/cacerts"
+
+ # set some variables
+ install -m755 -d ${pkgdir}/etc/profile.d
+ install -m755 ${srcdir}/openjdk6.profile ${pkgdir}/etc/profile.d/openjdk6.sh
+ install -m755 ${srcdir}/openjdk6.profile.csh ${pkgdir}/etc/profile.d/openjdk6.csh
+
+ # install license
+ install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
+
+package_openjdk6-src() {
+ pkgdesc='Free Java environment based on OpenJDK 6.0 Source Bundle'
+ depends=('openjdk6')
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ _arch=amd64
+ else
+ _arch=i586
+ fi
+
+ _javaver=6
+ _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk
+
+ cd ${srcdir}/icedtea6-${_icedteaver}
+ install -m755 -d ${pkgdir}/${_jvmdir}/jre
+
+ pushd ${srcdir}/icedtea6-${_icedteaver}/openjdk.build/j2sdk-image
+ # Install src.zip file
+ cp -a src.zip ${pkgdir}/${_jvmdir}/
+}
diff --git a/extra/openjdk6/aatext_by_default.diff b/extra/openjdk6/aatext_by_default.diff
new file mode 100644
index 000000000..268ea99a9
--- /dev/null
+++ b/extra/openjdk6/aatext_by_default.diff
@@ -0,0 +1,35 @@
+--- openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java.old 2008-01-08 20:23:56.000000000 +0200
++++ openjdk/jdk/src/share/classes/sun/awt/SunToolkit.java 2008-02-24 12:39:19.000000000 +0200
+@@ -1875,7 +1875,6 @@
+ */
+ private static boolean useSystemAAFontSettings() {
+ if (!checkedSystemAAFontSettings) {
+- useSystemAAFontSettings = true; /* initially set this true */
+ String systemAAFonts = null;
+ Toolkit tk = Toolkit.getDefaultToolkit();
+ if (tk instanceof SunToolkit) {
+@@ -1883,20 +1882,10 @@
+ (String)AccessController.doPrivileged(
+ new GetPropertyAction("awt.useSystemAAFontSettings"));
+ }
+- if (systemAAFonts != null) {
+- useSystemAAFontSettings =
+- Boolean.valueOf(systemAAFonts).booleanValue();
+- /* If it is anything other than "true", then it may be
+- * a hint name , or it may be "off, "default", etc.
+- */
+- if (!useSystemAAFontSettings) {
+- desktopFontHints = getDesktopAAHintsByName(systemAAFonts);
+- }
+- }
+- /* If its still true, apply the extra condition */
+- if (useSystemAAFontSettings) {
+- useSystemAAFontSettings = lastExtraCondition;
+- }
++ if (systemAAFonts == null || Boolean.parseBoolean(systemAAFonts))
++ systemAAFonts = "on";
++ desktopFontHints = getDesktopAAHintsByName(systemAAFonts);
++ useSystemAAFontSettings = desktopFontHints != null;
+ checkedSystemAAFontSettings = true;
+ }
+ return useSystemAAFontSettings;
diff --git a/extra/openjdk6/fix_corba_cmds_path.diff b/extra/openjdk6/fix_corba_cmds_path.diff
new file mode 100644
index 000000000..842657880
--- /dev/null
+++ b/extra/openjdk6/fix_corba_cmds_path.diff
@@ -0,0 +1,33 @@
+--- openjdk/corba/make/common/shared/Defs-utils.gmk.old 2008-04-13 13:26:12.000000000 +0300
++++ openjdk/corba/make/common/shared/Defs-utils.gmk 2008-04-14 15:35:13.000000000 +0300
+@@ -86,10 +86,10 @@
+ CHMOD = $(UTILS_COMMAND_PATH)chmod
+ CMP = $(UTILS_USR_BIN_PATH)cmp
+ COMM = $(UTILS_USR_BIN_PATH)comm
+-COMPRESS = $(UTILS_USR_BIN_PATH)compress
++COMPRESS = $(UTILS_COMMAND_PATH)compress
+ CP = $(UTILS_COMMAND_PATH)cp
+ CPIO = $(UTILS_COMMAND_PATH)cpio
+-CUT = $(UTILS_USR_BIN_PATH)cut
++CUT = $(UTILS_COMMAND_PATH)cut
+ DATE = $(UTILS_COMMAND_PATH)date
+ DF = $(UTILS_COMMAND_PATH)df
+ DIFF = $(UTILS_USR_BIN_PATH)diff
+@@ -136,7 +136,7 @@
+ TAR = $(UTILS_COMMAND_PATH)tar
+ TEST = $(UTILS_USR_BIN_PATH)test
+ TOUCH = $(UTILS_COMMAND_PATH)touch
+-TR = $(UTILS_USR_BIN_PATH)tr
++TR = $(UTILS_COMMAND_PATH)tr
+ TRUE = $(UTILS_COMMAND_PATH)true
+ UNAME = $(UTILS_COMMAND_PATH)uname
+ UNIQ = $(UTILS_USR_BIN_PATH)uniq
+@@ -186,7 +186,7 @@
+ # others have it in /usr/bin.
+ SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \
+ $(wildcard $(UTILS_USR_BIN_PATH)sort))
+- NAWK = $(USRBIN_PATH)gawk
++ NAWK = $(UTILS_COMMAND_PATH)gawk
+ # Intrinsic unix command, with backslash-escaped character interpretation
+ ECHO = /bin/echo -e
+ # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not)
diff --git a/extra/openjdk6/fix_jdk_cmds_path.diff b/extra/openjdk6/fix_jdk_cmds_path.diff
new file mode 100644
index 000000000..7e16e1744
--- /dev/null
+++ b/extra/openjdk6/fix_jdk_cmds_path.diff
@@ -0,0 +1,33 @@
+--- openjdk/jdk/make/common/shared/Defs-utils.gmk.old 2008-04-13 13:33:23.000000000 +0300
++++ openjdk/jdk/make/common/shared/Defs-utils.gmk 2008-04-14 15:37:34.000000000 +0300
+@@ -76,10 +76,10 @@
+ CHMOD = $(UTILS_COMMAND_PATH)chmod
+ CMP = $(UTILS_USR_BIN_PATH)cmp
+ COMM = $(UTILS_USR_BIN_PATH)comm
+-COMPRESS = $(UTILS_USR_BIN_PATH)compress
++COMPRESS = $(UTILS_COMMAND_PATH)compress
+ CP = $(UTILS_COMMAND_PATH)cp
+ CPIO = $(UTILS_COMMAND_PATH)cpio
+-CUT = $(UTILS_USR_BIN_PATH)cut
++CUT = $(UTILS_COMMAND_PATH)cut
+ DATE = $(UTILS_COMMAND_PATH)date
+ DF = $(UTILS_COMMAND_PATH)df
+ DIFF = $(UTILS_USR_BIN_PATH)diff
+@@ -126,7 +126,7 @@
+ TAR = $(UTILS_COMMAND_PATH)tar
+ TEST = $(UTILS_USR_BIN_PATH)test
+ TOUCH = $(UTILS_COMMAND_PATH)touch
+-TR = $(UTILS_USR_BIN_PATH)tr
++TR = $(UTILS_COMMAND_PATH)tr
+ TRUE = $(UTILS_COMMAND_PATH)true
+ UNAME = $(UTILS_COMMAND_PATH)uname
+ UNIQ = $(UTILS_USR_BIN_PATH)uniq
+@@ -173,7 +173,7 @@
+ BASENAME=$(firstword $(wildcard $(UTILS_COMMAND_PATH)basename) \
+ $(wildcard $(UTILS_USR_BIN_PATH)basename))
+
+- NAWK = $(USRBIN_PATH)gawk
++ NAWK = $(UTILS_COMMAND_PATH)gawk
+ # Intrinsic unix command, with backslash-escaped character interpretation
+ ECHO = /bin/echo -e
+ # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not)
diff --git a/extra/openjdk6/fontconfig-paths.diff b/extra/openjdk6/fontconfig-paths.diff
new file mode 100644
index 000000000..fa08db629
--- /dev/null
+++ b/extra/openjdk6/fontconfig-paths.diff
@@ -0,0 +1,134 @@
+--- openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties 2009-05-29 22:45:23.024341869 +0000
++++ openjdk/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties.new 2009-05-29 22:55:13.681366890 +0000
+@@ -275,73 +275,61 @@
+
+ # Font File Names
+
+-filename.DejaVu_Sans=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf
+-filename.DejaVu_Sans_Bold=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf
+-filename.DejaVu_Sans_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Oblique.ttf
+-filename.DejaVu_Sans_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-BoldOblique.ttf
+-
+-filename.DejaVu_Sans_Mono=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono.ttf
+-filename.DejaVu_Sans_Mono_Bold=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Bold.ttf
+-filename.DejaVu_Sans_Mono_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-Oblique.ttf
+-filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansMono-BoldOblique.ttf
+-
+-filename.DejaVu_Serif=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf
+-filename.DejaVu_Serif_Bold=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf
+-filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf
+-filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf
+-
+-filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc
+-filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc
+-filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc
+-filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf
+-
+-filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
+-filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
+-filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
+-filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
+-filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf
+-filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf
+-filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf
+-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
+-filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
+-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
+-filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf
+-filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
+-filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
+-
+-filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf
+-filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf
+-filename.Lohit_Hindi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_hi.ttf
+-filename.Lohit_Kannda=/usr/share/fonts/truetype/ttf-kannada-fonts/lohit_kn.ttf
+-#filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf
+-filename.Lohit_Oriya=/usr/share/fonts/truetype/ttf-oriya-fonts/lohit_or.ttf
+-filename.Lohit_Punjabi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_pa.ttf
+-filename.Lohit_Tamil=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_ta.ttf
+-filename.Lohit_Telugu=/usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf
+-filename.LKLUG=/usr/share/fonts/truetype/ttf-sinhala-lklug/lklug.ttf
+-
+-filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf
+-filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf
+-filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf
+-filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf
+-filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf
+-filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf
+-filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf
+-filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf
+-filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf
+-filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf
+-filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf
+-filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf
+-
+-# AWT X11 font paths
+-awtfontpath.latin-1=/usr/share/fonts/X11/Type1
+-awtfontpath.umingcn=/usr/share/fonts/truetype/arphic
+-awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
+-awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
+-awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
+-awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
+-awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
+-awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
+-awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
+-awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk
+-awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts
++filename.DejaVu_Sans=/usr/share/fonts/TTF/DejaVuSans.ttf
++filename.DejaVu_Sans_Bold=/usr/share/fonts/TTF/DejaVuSans-Bold.ttf
++filename.DejaVu_Sans_Oblique=/usr/share/fonts/TTF/DejaVuSans-Oblique.ttf
++filename.DejaVu_Sans_Bold_Oblique=/usr/share/fonts/TTF/DejaVuSans-BoldOblique.ttf
++
++filename.DejaVu_Sans_Mono=/usr/share/fonts/TTF/DejaVuSansMono.ttf
++filename.DejaVu_Sans_Mono_Bold=/usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf
++filename.DejaVu_Sans_Mono_Oblique=/usr/share/fonts/TTF/DejaVuSansMono-Oblique.ttf
++filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/share/fonts/TTF/DejaVuSansMono-BoldOblique.ttf
++
++filename.DejaVu_Serif=/usr/share/fonts/TTF/DejaVuSerif.ttf
++filename.DejaVu_Serif_Bold=/usr/share/fonts/TTF/DejaVuSerif-Bold.ttf
++filename.DejaVu_Serif_Oblique=/usr/share/fonts/TTF/DejaVuSerif-Oblique.ttf
++filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/TTF/DejaVuSerif-BoldOblique.ttf
++
++filename.AR_PL_UMing_CN=/usr/share/fonts/TTF/uming.ttc
++filename.AR_PL_UMing_HK=/usr/share/fonts/TTF/uming.ttc
++filename.AR_PL_UMing_TW=/usr/share/fonts/TTF/uming.ttc
++filename.AR_PL_ShanHeiSun_Uni=/usr/share/TTF/uming.ttf
++
++filename.WenQuanYi_Zen_Hei=/usr/share/fonts/TTF/wqy-zenhei.ttf
++filename.Baekmuk_Batang=/usr/share/fonts/TTF/batang.ttf
++filename.UnBatang=/usr/share/fonts/TTF/UnBatang.ttf
++filename.UnBatang_Bold=/usr/share/fonts/TTF/UnBatangBold.ttf
++filename.Baekmuk_Gulim=/usr/share/fonts/TTF/gulim.ttf
++filename.UnDotum=/usr/share/fonts/TTF/UnDotum.ttf
++filename.UnDotum_Bold=/usr/share/fonts/TTF/UnDotumBold.ttf
++filename.Kochi_Gothic=/usr/share/fonts/TTF/kochi-gothic.ttf
++filename.Sazanami_Gothic=/usr/share/fonts/TTF/sazanami-gothic.ttf
++filename.Kochi_Mincho=/usr/share/fonts/TTF/kochi-mincho.ttf
++filename.Sazanami_Mincho=/usr/share/fonts/TTF/sazanami-mincho.ttf
++filename.VL_Gothic=/usr/share/fonts/TTF/VL-Gothic-Regular.ttf
++filename.VL_PGothic=/usr/share/fonts/TTF/VL-PGothic-Regular.ttf
++
++filename.Lohit_Bengali=/usr/share/fonts/TTF/lohit_bn.ttf
++filename.Lohit_Gujarati=/usr/share/fonts/TTF/lohit_gu.ttf
++filename.Lohit_Hindi=/usr/share/fonts/TTF/lohit_hi.ttf
++filename.Lohit_Kannda=/usr/share/fonts/TTF/lohit_kn.ttf
++#filename.Lohit_Malayalam=/usr/share/fonts/TTF/lohit_ml.ttf
++filename.Lohit_Oriya=/usr/share/fonts/TTF/lohit_or.ttf
++filename.Lohit_Punjabi=/usr/share/fonts/TTF/lohit_pa.ttf
++filename.Lohit_Tamil=/usr/share/fonts/TTF/lohit_ta.ttf
++filename.Lohit_Telugu=/usr/share/fonts/TTF/lohit_te.ttf
++filename.LKLUG=/usr/share/fonts/TTF/lklug.ttf
++
++filename.LuxiSans-Regular=/usr/share/fonts/TTF/luxisr.ttf
++filename.LuxiSans-Bold=/usr/share/fonts/TTF/luxisb.ttf
++filename.LuxiSans-Oblique=/usr/share/fonts/TTF/luxisri.ttf
++filename.LuxiSans-BoldOblique=/usr/share/fonts/TTF/luxisbi.ttf
++filename.LuxiMono-Regular=/usr/share/fonts/TTF/luximr.ttf
++filename.LuxiMono-Bold=/usr/share/fonts/TTF/luximb.ttf
++filename.LuxiMono-Oblique=/usr/share/fonts/TTF/luximri.ttf
++filename.LuxiMono-BoldOblique=/usr/share/fonts/TTF/luximbi.ttf
++filename.LuxiSerif-Regular=/usr/share/fonts/TTF/luxirr.ttf
++filename.LuxiSerif-Bold=/usr/share/fonts/TTF/luxirb.ttf
++filename.LuxiSerif-Oblique=/usr/share/fonts/TTF/luxirri.ttf
++filename.LuxiSerif-BoldOblique=/usr/share/fonts/TTF/luxirbi.ttf
++
diff --git a/extra/openjdk6/nonreparenting-wm.diff b/extra/openjdk6/nonreparenting-wm.diff
new file mode 100644
index 000000000..ec890b434
--- /dev/null
+++ b/extra/openjdk6/nonreparenting-wm.diff
@@ -0,0 +1,66 @@
+diff --git a/jdk/src/solaris/classes/sun/awt/X11/XWM.java b/jdk/src/solaris/classes/sun/awt/X11/XWM.java
+index 68d1ff7..878327e 100644
+--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XWM.java
+@@ -98,11 +98,14 @@ class XWM implements MWMConstants, XUtilConstants {
+ ICE_WM = 10,
+ METACITY_WM = 11,
+ COMPIZ_WM = 12,
+- LG3D_WM = 13;
++ LG3D_WM = 13,
++ OTHER_NONREPARENTING_WM = 14;
+ public String toString() {
+ switch (WMID) {
+ case NO_WM:
+ return "NO WM";
++ case OTHER_NONREPARENTING_WM:
++ return "Other non-reparenting WM";
+ case OTHER_WM:
+ return "Other WM";
+ case OPENLOOK_WM:
+@@ -564,7 +567,7 @@ class XWM implements MWMConstants, XUtilConstants {
+ }
+
+ static boolean isNonReparentingWM() {
+- return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM);
++ return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.OTHER_NONREPARENTING_WM);
+ }
+
+ /*
+@@ -764,9 +767,17 @@ class XWM implements MWMConstants, XUtilConstants {
+ * supports WIN or _NET wm spec.
+ */
+ else if (l_net_protocol.active()) {
+- awt_wmgr = XWM.OTHER_WM;
++ if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
++ } else {
++ awt_wmgr = XWM.OTHER_WM;
++ }
+ } else if (win.active()) {
+- awt_wmgr = XWM.OTHER_WM;
++ if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
++ } else {
++ awt_wmgr = XWM.OTHER_WM;
++ }
+ }
+ /*
+ * Check for legacy WMs.
+@@ -777,6 +788,8 @@ class XWM implements MWMConstants, XUtilConstants {
+ awt_wmgr = XWM.MOTIF_WM;
+ } else if (isOpenLook()) {
+ awt_wmgr = XWM.OPENLOOK_WM;
++ } else if (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) {
++ awt_wmgr = XWM.OTHER_NONREPARENTING_WM;
+ } else {
+ awt_wmgr = XWM.OTHER_WM;
+ }
+@@ -1298,6 +1311,7 @@ class XWM implements MWMConstants, XUtilConstants {
+ res = new Insets(28, 6, 6, 6);
+ break;
+ case NO_WM:
++ case OTHER_NONREPARENTING_WM:
+ case LG3D_WM:
+ res = zeroInsets;
+ break;
diff --git a/extra/openjdk6/openjdk6.install b/extra/openjdk6/openjdk6.install
new file mode 100644
index 000000000..653c8fe2f
--- /dev/null
+++ b/extra/openjdk6/openjdk6.install
@@ -0,0 +1,24 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/sbin/init-jks-keystore
+ fi
+ echo "when you use a non-reparenting window manager"
+ echo "set _JAVA_AWT_WM_NONREPARENTING=1 in"
+ echo "/etc/profile.d/openjdk6.sh"
+# update-desktop-database -q
+}
+
+post_upgrade() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+ if [ ! -f /etc/ssl/certs/java/cacerts ]; then
+ /usr/sbin/init-jks-keystore
+ fi
+# update-desktop-database -q
+}
+
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor 2> /dev/null
+# update-desktop-database -q
+}
diff --git a/extra/openjdk6/openjdk6.profile b/extra/openjdk6/openjdk6.profile
new file mode 100644
index 000000000..9da4421ef
--- /dev/null
+++ b/extra/openjdk6/openjdk6.profile
@@ -0,0 +1,6 @@
+export J2SDKDIR=/usr/lib/jvm/java-6-openjdk
+export J2REDIR=$J2SDKDIR/jre
+export JAVA_HOME=/usr/lib/jvm/java-6-openjdk
+
+# enable this for non-reparenting window managers
+#export _JAVA_AWT_WM_NONREPARENTING=1
diff --git a/extra/openjdk6/openjdk6.profile.csh b/extra/openjdk6/openjdk6.profile.csh
new file mode 100644
index 000000000..3cb15fd49
--- /dev/null
+++ b/extra/openjdk6/openjdk6.profile.csh
@@ -0,0 +1,6 @@
+setenv J2SDKDIR "/usr/lib/jvm/java-6-openjdk"
+setenv J2REDIR "$J2SDKDIR/jre"
+setenv JAVA_HOME "/usr/lib/jvm/java-6-openjdk"
+
+# enable this for non-reparenting window managers
+#setenv _JAVA_AWT_WM_NONREPARENTING 1
diff --git a/extra/openjpeg/30_fix_build_for_debian.dpatch b/extra/openjpeg/30_fix_build_for_debian.dpatch
new file mode 100644
index 000000000..afd995054
--- /dev/null
+++ b/extra/openjpeg/30_fix_build_for_debian.dpatch
@@ -0,0 +1,70 @@
+
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 30_fix_build_for_debian.dpatch by <robin.cornelius@gmail.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Dont apply the -s strip flag to the shared lib debian will do it for us
+## DP: where necessary
+## DP: Remove unnecessary linkage on lstdc++ and lm and add missing linkage for -lm
+
+@DPATCH@
+
+Index: ./Makefile
+===================================================================
+--- ./Makefile (revision 96)
++++ ./Makefile (working copy)
+@@ -18,8 +18,7 @@
+ # Converts cr/lf to just lf
+ DOS2UNIX = dos2unix
+
+-COMPILERFLAGS = -Wall -O3 -ffast-math -std=c99 -fPIC
+-LIBRARIES = -lstdc++
++COMPILERFLAGS = -Wall -O3 -ffast-math -std=c99 -fPIC -g $(EXTRA_CFLAGS)
+
+ MODULES = $(SRCS:.c=.o)
+ CFLAGS = $(COMPILERFLAGS) $(INCLUDE)
+@@ -54,7 +53,7 @@
+ $(AR) r $@ $(MODULES)
+
+ $(SHAREDLIB): $(MODULES)
+- $(CC) -s -shared -Wl,-soname,$(LIBNAME) -o $@ $(MODULES) $(LIBRARIES)
++ $(CC) -shared -Wl,-soname,$(LIBNAME) -o $@ $(MODULES) -lm
+
+ install: OpenJPEG
+ install -d '$(DESTDIR)$(INSTALL_LIBDIR)' '$(DESTDIR)$(INSTALL_INCLUDE)'
+
+Index: ./indexer_JPIP/Makefile
+===================================================================
+--- ./indexer_JPIP/Makefile (revision 95)
++++ ./indexer_JPIP/Makefile (working copy)
+@@ -1,7 +1,6 @@
+ CC = gcc
+
+-LDFLAGS = -lm
+-CFLAGS = -Wall
++CFLAGS = -Wall $(EXTRA_CFLAGS)
+
+ all: index_create
+
+Index: ./codec/Makefile
+===================================================================
+--- ./codec/Makefile (revision 96)
++++ ./codec/Makefile (working copy)
+@@ -1,13 +1,13 @@
+ # Makefile for the main OpenJPEG codecs: j2k_to_image and image_to_j2k
+
+-CFLAGS = -O3 -lstdc++ # -g -p -pg
++CFLAGS = $(EXTRA_CFLAGS) # -g -p -pg
+
+ all: j2k_to_image image_to_j2k
+
+-j2k_to_image: j2k_to_image.c ../libopenjpeg.a
++j2k_to_image: j2k_to_image.c
+ gcc $(CFLAGS) compat/getopt.c index.c convert.c j2k_to_image.c -o j2k_to_image -L.. -lopenjpeg -I ../libopenjpeg/ -lm -ltiff
+
+-image_to_j2k: image_to_j2k.c ../libopenjpeg.a
++image_to_j2k: image_to_j2k.c
+ gcc $(CFLAGS) compat/getopt.c index.c convert.c image_to_j2k.c -o image_to_j2k -L.. -lopenjpeg -I ../libopenjpeg/ -lm -ltiff
+
+ clean:
+
diff --git a/extra/openjpeg/PKGBUILD b/extra/openjpeg/PKGBUILD
new file mode 100644
index 000000000..087da2f78
--- /dev/null
+++ b/extra/openjpeg/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=openjpeg
+pkgver=1.3
+_pkgver=v1_3
+pkgrel=3
+pkgdesc="An open source JPEG 2000 codec"
+arch=(i686 x86_64)
+license=('BSD')
+url="http://www.openjpeg.org"
+depends=('glibc')
+source=(http://www.openjpeg.org/openjpeg_${_pkgver}.tar.gz
+ 30_fix_build_for_debian.dpatch)
+md5sums=('f9a3ccfa91ac34b589e9bf7577ce8ff9'
+ '2557f485513e77f6dcea77f4741c4fa1')
+
+build() {
+ cd "${srcdir}/OpenJPEG_${_pkgver}"
+ patch -Np1 -i "${srcdir}/30_fix_build_for_debian.dpatch" || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/openjpeg"
+ tr '\r' '\n' < license.txt > "${pkgdir}/usr/share/licenses/openjpeg/license.txt" || return 1
+ chmod 644 "${pkgdir}/usr/share/licenses/openjpeg/license.txt" || return 1
+ ln -s libopenjpeg.so.2 "${pkgdir}/usr/lib/libopenjpeg.so" || return 1
+}
diff --git a/extra/openldap/PKGBUILD b/extra/openldap/PKGBUILD
new file mode 100644
index 000000000..7e6266083
--- /dev/null
+++ b/extra/openldap/PKGBUILD
@@ -0,0 +1,106 @@
+# $Id: PKGBUILD 109957 2011-02-14 13:18:22Z andrea $
+# Maintainer:
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=openldap
+pkgver=2.4.24
+pkgrel=1
+pkgdesc="LDAP Server"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.openldap.org/"
+backup=('etc/openldap/slapd.conf' 'etc/default/slapd' 'etc/conf.d/slapd')
+depends=("libldap>=${pkgver}" 'db' 'tcp_wrappers' 'libfetch' 'util-linux-ng')
+provides=('openldap-clients')
+replaces=('openldap-clients')
+source=("ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${pkgname}-${pkgver}.tgz"
+ 'slapd'
+ 'slapd.default')
+md5sums=('116fe1e23a7b67686d5e62274367e6c0'
+ '832354417c495f29affd2c772808959d'
+ '6be69f6b7e522cb64cce8703da81ed32')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ export LIBS=-ldb
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --libexecdir=/usr/sbin \
+ --sysconfdir=/etc \
+ --localstatedir=/var/lib/openldap \
+ --enable-bdb \
+ --enable-crypt \
+ --enable-dynamic \
+ --with-threads \
+ --enable-wrappers \
+ --enable-spasswd \
+ --with-cyrus-sasl
+
+ find . -name 'Makefile' -exec \
+ sed -e 's|$(LDAP_LIBDIR)/liblber/liblber.la|/usr/lib/liblber-2.4.so.2|g' \
+ -e 's|$(LDAP_LIBDIR)/libldap/libldap.la|/usr/lib/libldap-2.4.so.2|g' \
+ -e 's|$(LDAP_LIBDIR)/libldap_r/libldap_r.la|/usr/lib/libldap_r-2.4.so.2|g' \
+ -i {} \;
+
+ cd include
+ make
+
+ cd ../libraries
+ for dir in liblutil librewrite liblunicode; do
+ pushd ${dir}
+ make depend
+ make
+ popd
+ done
+
+ cd ../servers
+ make depend
+ make
+
+ cd ../clients
+ make depend
+ make
+
+ cd ../doc/man
+ for dir in man{1,5,8}; do
+ pushd ${dir}
+ make
+ popd
+ done
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ cd servers
+ make DESTDIR=${pkgdir} install
+
+ cd ../clients
+ make DESTDIR=${pkgdir} install
+
+ cd ../doc/man
+ for dir in man{1,5,8}; do
+ pushd ${dir}
+ make DESTDIR=${pkgdir} install
+ popd
+ done
+ rm ${pkgdir}/usr/share/man/man5/ldap.conf.5
+
+ cd ../..
+
+ install -dm700 ${pkgdir}/etc/openldap/slapd.d
+ install -Dm755 ${srcdir}/slapd ${pkgdir}/etc/rc.d/slapd
+ install -Dm644 ${srcdir}/slapd.default ${pkgdir}/etc/conf.d/slapd
+ install -dm700 ${pkgdir}/var/lib/openldap
+
+ # get rid of duplicate default conf files
+ rm ${pkgdir}/etc/openldap/*.default
+
+ # hack to fix screwed up dirs
+ sed -e 's|^pidfile[[:space:]].*$|pidfile /var/run/slapd.pid|g' \
+ -e 's|^argsfile[[:space:]].*$|argsfile /var/run/slapd.args|g' \
+ -i ${pkgdir}/etc/openldap/slapd.conf
+
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/openldap/slapd b/extra/openldap/slapd
new file mode 100755
index 000000000..392075027
--- /dev/null
+++ b/extra/openldap/slapd
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+[ -f "/etc/conf.d/slapd" ] && . /etc/conf.d/slapd
+
+PID=`pidof -o %PPID /usr/sbin/slapd`
+case "$1" in
+ start)
+ stat_busy "Starting OpenLDAP"
+ if [ -z "$PID" ]; then
+ if [ -z "$SLAPD_SERVICES" ]; then
+ /usr/sbin/slapd $SLAPD_OPTIONS
+ else
+ /usr/sbin/slapd -h "$SLAPD_SERVICES" $SLAPD_OPTIONS
+ fi
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ add_daemon slapd
+ else
+ stat_fail
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OpenLDAP"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/slapd.pid
+ rm -f /var/run/slapd.args
+ rm_daemon slapd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/openldap/slapd.default b/extra/openldap/slapd.default
new file mode 100644
index 000000000..72ae2a6a7
--- /dev/null
+++ b/extra/openldap/slapd.default
@@ -0,0 +1,6 @@
+# slapd normally serves ldap only on all TCP-ports 389. slapd can also
+# service requests on TCP-port 636 (ldaps) and requests via unix
+# sockets.
+# Example usage:
+#SLAPD_SERVICES="ldap://127.0.0.1:389/ ldaps:/// ldapi:///"
+SLAPD_OPTIONS=""
diff --git a/extra/openmpi/PKGBUILD b/extra/openmpi/PKGBUILD
new file mode 100644
index 000000000..f08d2a4e3
--- /dev/null
+++ b/extra/openmpi/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 115803 2011-03-21 16:10:23Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+pkgname=openmpi
+pkgver=1.5.3
+pkgrel=2
+pkgdesc="High performance message passing library (MPI)"
+arch=('i686' 'x86_64')
+url="http://www.open-mpi.org"
+license=('custom')
+depends=('gcc' 'gcc-fortran' 'openssh' 'valgrind' 'libtool' 'hwloc')
+options=(!libtool)
+source=(http://www.open-mpi.org/software/ompi/v1.5/downloads/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('669565c708deab82ad4069d82675b2020eb0e0c6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/${pkgname} \
+ --mandir=/usr/share/man \
+ --enable-mpi-f90 \
+ --libdir=/usr/lib/${pkgname} \
+ --with-threads=posix \
+ --enable-mpi-threads \
+ --enable-smp-locks \
+ --with-valgrind \
+ --enable-memchecker \
+ --enable-debug \
+ --enable-pretty-print-stacktrace \
+ --without-slurm \
+ --with-hwloc=external \
+ --with-libltdl=/usr \
+ FC=/usr/bin/gfortran \
+ LDFLAGS='-Wl,-z,noexecstack'
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # Openmpi's otfinfo conflicts with the one from texlive
+ mv "${pkgdir}"/usr/bin/otfinfo "${pkgdir}"/usr/bin/otfinfompi
+
+ # Openmpi's otfdump conflicts with the one from libotf
+ mv "${pkgdir}"/usr/bin/otfdump "${pkgdir}"/usr/bin/otfdumpompi
+
+ # Symlink points to non-existing ortec++.1
+ rm "${pkgdir}"/usr/share/man/man1/orteCC.1
+
+ install -d -m 755 "${pkgdir}"/etc/ld.so.conf.d
+ echo "/usr/lib/${pkgname}" > "${pkgdir}"/etc/ld.so.conf.d/${pkgname}.conf
+
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/openobex/PKGBUILD b/extra/openobex/PKGBUILD
new file mode 100644
index 000000000..3c3363c0a
--- /dev/null
+++ b/extra/openobex/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 101376 2010-11-29 00:43:34Z andrea $
+# Maintainer: Geoffroy Carrier <geoffroy@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=openobex
+pkgver=1.5
+pkgrel=2
+pkgdesc="Implementation of the OBject EXchange (OBEX) protocol"
+url="http://dev.zuckschwerdt.org/openobex/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('bluez' 'libusb-compat')
+options=('!libtool')
+source=("http://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('fce1b82eafb74bde54fe117372393ba8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ [ "${CARCH}" = "x86_64" ] && export CFLAGS="${CFLAGS} -fPIC"
+
+ ./configure --prefix=/usr \
+ --enable-apps \
+ --enable-irda \
+ --enable-bluetooth \
+ --enable-usb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/openslp/PKGBUILD b/extra/openslp/PKGBUILD
new file mode 100644
index 000000000..9ba1f94ab
--- /dev/null
+++ b/extra/openslp/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 75251 2010-04-01 04:53:24Z allan $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=openslp
+pkgver=1.2.1
+pkgrel=3
+pkgdesc="Open-source implementation of Service Location Protocol"
+arch=(i686 x86_64)
+url="http://www.openslp.org"
+license=('BSD')
+depends=('glibc' 'bash' 'openssl')
+backup=('etc/slp.conf' 'etc/slp.reg' 'etc/slp.spi')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz rc.slpd)
+md5sums=('ff9999d1b44017281dd00ed2c4d32330' '4f6889a5944894b8be2c01404a9566d2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} DOC_DIR=/usr/share/doc/openslp-${pkgver} install || return 1
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ install -D -m755 ../rc.slpd ${pkgdir}/etc/rc.d/slpd
+}
diff --git a/extra/openslp/rc.slpd b/extra/openslp/rc.slpd
new file mode 100755
index 000000000..4330c3760
--- /dev/null
+++ b/extra/openslp/rc.slpd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/slpd`
+case "$1" in
+ start)
+ stat_busy "Starting SLPD"
+ [ -z "$PID" ] && /usr/sbin/slpd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/slpd.pid
+ add_daemon slpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping SLPD"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/slpd.pid
+ rm_daemon slpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/opensp/PKGBUILD b/extra/opensp/PKGBUILD
new file mode 100644
index 000000000..0f6e59ad8
--- /dev/null
+++ b/extra/opensp/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 27683 2009-02-24 20:03:03Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=opensp
+pkgver=1.5.2
+pkgrel=1
+pkgdesc="A library and a set of tools for validating, parsing and manipulating SGML and XML documents."
+arch=('i686' 'x86_64')
+url="http://openjade.sourceforge.net/"
+license=('BSD')
+depends=('gcc-libs')
+makedepends=('xmlto' 'docbook-xsl')
+options=('!libtool')
+source=(http://download.sourceforge.net/openjade/OpenSP-$pkgver.tar.gz)
+md5sums=('670b223c5d12cee40c9137be86b6c39b')
+
+build() {
+ cd $srcdir/OpenSP-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --disable-nls \
+ --enable-http \
+ --enable-default-catalog=/etc/sgml/catalog:/etc/xml/catalog \
+ --enable-default-search-path=/usr/share/sgml:/usr/share/xml \
+ --enable-xml-messages || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/oprofile/PKGBUILD b/extra/oprofile/PKGBUILD
new file mode 100644
index 000000000..9a583d0d7
--- /dev/null
+++ b/extra/oprofile/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 107149 2011-01-21 19:58:21Z eric $
+# Maintainer : Aaron Griffin <aaron@archlinux.org>
+
+pkgname=oprofile
+pkgver=0.9.6
+pkgrel=3
+pkgdesc="A system-wide profiler for Linux systems, capable of profiling all running code at low overhead"
+arch=('i686' 'x86_64')
+url="http://oprofile.sourceforge.net"
+license=('GPL')
+depends=('popt')
+makedepends=('qt3')
+optdepends=('qt3: for oprof_start gui')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('4e407093ac06200185d5a5e6437d7242')
+sha1sums=('cc62cc58c574e235bc146c8ddc9d9a9af0972fd1')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-kernel-support \
+ --with-x
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+# installing development libraries
+ install -m644 libutil/op_types.h libop/op_sample_file.h libutil/op_list.h libop/op_events.h libop/op_cpu_type.h libop/op_config.h libdb/odb.h "$pkgdir/usr/include"
+ install -m644 libop/libop.a libdb/libodb.a "$pkgdir/usr/lib/"
+ install -m644 libabi/libabi.a "$pkgdir/usr/lib/libopabi.a"
+ install -m644 libutil/libutil.a "$pkgdir/usr/lib/liboputil.a"
+ install -m644 libutil++/libutil++.a "$pkgdir/usr/lib/liboputil++.a"
+}
diff --git a/extra/orage/PKGBUILD b/extra/orage/PKGBUILD
new file mode 100644
index 000000000..dde132ac6
--- /dev/null
+++ b/extra/orage/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 112907 2011-03-07 18:26:07Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=orage
+pkgver=4.8.1
+pkgrel=2
+pkgdesc="A simple calendar application with reminders for Xfce"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/projects/orage/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libical' 'popt' 'libnotify>=0.7.1' 'hicolor-icon-theme')
+makedepends=('intltool' 'xfce4-dev-tools' 'popt')
+options=('!libtool')
+replaces=('xfcalendar')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('9c1139ce03e9f309240e712cf31b6a49')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --enable-libical \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make -j1 DESTDIR=${pkgdir} install
+}
diff --git a/extra/orage/orage.install b/extra/orage/orage.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/orage/orage.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/orbit2/PKGBUILD b/extra/orbit2/PKGBUILD
new file mode 100644
index 000000000..e141d91a7
--- /dev/null
+++ b/extra/orbit2/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 91981 2010-09-28 16:24:10Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=orbit2
+pkgver=2.14.19
+pkgrel=1
+pkgdesc="Thin/fast CORBA ORB"
+arch=('i686' 'x86_64')
+license=('LGPL' 'GPL')
+depends=('libidl2>=0.8.11')
+makedepends=('pkgconfig')
+options=('!libtool' '!makeflags')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/ORBit2/2.14/ORBit2-${pkgver}.tar.bz2)
+sha256sums=('55c900a905482992730f575f3eef34d50bda717c197c97c08fa5a6eafd857550')
+
+build() {
+ cd "${srcdir}/ORBit2-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/orc/PKGBUILD b/extra/orc/PKGBUILD
new file mode 100644
index 000000000..5e1fc92ce
--- /dev/null
+++ b/extra/orc/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 98440 2010-11-08 23:53:36Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=orc
+pkgver=0.4.11
+pkgrel=1
+pkgdesc="The Oild Runtime Compiler"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://code.entropywave.com/projects/orc/"
+depends=('glibc')
+options=('!libtool')
+source=(http://code.entropywave.com/download/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('b8b0b148d319422c3ad250c29483b3c4')
+
+build () {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/orca/PKGBUILD b/extra/orca/PKGBUILD
new file mode 100644
index 000000000..6c83391d6
--- /dev/null
+++ b/extra/orca/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 99644 2010-11-15 23:32:08Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=orca
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="A scriptable screen reader and magnifier"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.gnome.org/projects/orca"
+install=orca.install
+options=('!libtool')
+depends=('pygtk>=2.22.0' 'python2-gconf' 'python2-bonobo' 'python2-libgnome' 'python-wnck' 'dbus-python>=0.83.0' 'at-spi>=1.32.0' 'gnome-speech>=0.4.25' 'gnome-mag>=0.16.0' 'brltty' 'hicolor-icon-theme' 'pyxdg')
+makedepends=('intltool')
+replaces=('gnopernicus')
+groups=('gnome-extra')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('44da9da70c1b47bc87fda8f3b9da4cc1df9993d92388434f5707d39b5a832629')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/orca/orca.install b/extra/orca/orca.install
new file mode 100644
index 000000000..17ca8f78a
--- /dev/null
+++ b/extra/orca/orca.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/ortp/PKGBUILD b/extra/ortp/PKGBUILD
new file mode 100644
index 000000000..ca983cbd3
--- /dev/null
+++ b/extra/ortp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117400 2011-04-01 15:13:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=ortp
+pkgver=0.16.5
+pkgrel=1
+pkgdesc="A Real-time Transport Protocol (RTP) library"
+arch=('i686' 'x86_64')
+url="http://www.linphone.org/index.php/eng/code_review/ortp"
+license=('LGPL')
+depends=('openssl')
+options=('!libtool')
+source=("http://ftp.cc.uoc.gr/mirrors/nongnu.org/linphone/${pkgname}/sources/${pkgname}-${pkgver}.tar.gz")
+md5sums=('94546901d14b85f97342f4ecf39489b1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/ossp/PKGBUILD b/extra/ossp/PKGBUILD
new file mode 100644
index 000000000..964013d1c
--- /dev/null
+++ b/extra/ossp/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 99925 2010-11-19 14:16:05Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jonathan Liu <net147@gmail.com>
+
+pkgname=ossp
+pkgver=1.3.2
+pkgrel=10
+pkgdesc="Emulate OSS device using CUSE"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/osspd"
+license=(GPL2)
+depends=('fuse>=2.8.0' 'kernel26>=2.6.35-2')
+makedepends=(libpulse alsa-lib)
+optdepends=("libpulse: PulseAudio backend"
+ "alsa-lib: ALSA backend")
+backup=(etc/conf.d/osspd)
+source=("http://downloads.sourceforge.net/project/osspd/${pkgname}-${pkgver}.tar.gz"
+ osspd.rc.d osspd.conf.d)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" prefix=/usr UDEVDIR=/lib/udev/rules.d install
+
+ # Make compatible with udev ACLs
+ sed -e 's/GROUP="audio"/SUBSYSTEM=="cuse", MODE="0666"/' \
+ -i "$pkgdir/lib/udev/rules.d/98-osscuse.rules"
+
+ install -D -m644 README "$pkgdir/usr/share/doc/$pkgname/README"
+
+ install -D -m755 "$srcdir/osspd.rc.d" "$pkgdir/etc/rc.d/osspd"
+ install -D -m644 "$srcdir/osspd.conf.d" "$pkgdir/etc/conf.d/osspd"
+}
+
+md5sums=('ee2d8c894de2fa4eb3291804fbc7df45'
+ '69b745e0c499cd50019266a99082ce8b'
+ '5a5a3db1bb3c98d48d4794613cf12ef0')
diff --git a/extra/ossp/osspd.conf.d b/extra/ossp/osspd.conf.d
new file mode 100644
index 000000000..05d0d06c6
--- /dev/null
+++ b/extra/ossp/osspd.conf.d
@@ -0,0 +1,10 @@
+# Define the audio backend to use here.
+# Leave undefined to autodetect.
+
+# Use Pulseaudio slave
+#DSP_SLAVE=/usr/sbin/ossp-padsp
+
+# Use ALSA slave
+#DSP_SLAVE=/usr/sbin/ossp-alsap
+
+# vim:set ft=sh:
diff --git a/extra/ossp/osspd.rc.d b/extra/ossp/osspd.rc.d
new file mode 100755
index 000000000..78d7602ae
--- /dev/null
+++ b/extra/ossp/osspd.rc.d
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/osspd
+
+
+if [[ -z "$DSP_SLAVE" ]]; then
+ # Autodetect
+ if [[ -x /usr/bin/pulseaudio ]]; then
+ DSP_SLAVE="/usr/sbin/ossp-padsp"
+ else
+ DSP_SLAVE="/usr/sbin/ossp-alsap"
+ fi
+fi
+
+preclaim_oss=/sys/module/soundcore/parameters/preclaim_oss
+
+PID=`pidof -o %PPID /usr/sbin/osspd`
+case "$1" in
+ start)
+ stat_busy "Starting OSS userspace bridge"
+ if [ -z "$PID" ]; then
+ if [[ -r $preclaim_oss && "$(cat $preclaim_oss)" -eq 1 ]]; then
+ echo "Must boot with soundcore.preclaim_oss=0"
+ stat_die
+ fi
+ modprobe cuse &>/dev/null
+ modprobe -r snd-pcm-oss snd-mixer-oss &>/dev/null
+ sleep 0.1
+ /usr/sbin/osspd --dsp-slave="$DSP_SLAVE"
+ fi
+ if [ -n "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon osspd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OSS userspace bridge"
+ [ -n "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon osspd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+
+# vim:set ft=sh:
diff --git a/extra/oxine/PKGBUILD b/extra/oxine/PKGBUILD
new file mode 100644
index 000000000..f1fb5eb5e
--- /dev/null
+++ b/extra/oxine/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 59896 2009-11-29 15:47:18Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Rouslan Solomakhin <rouslan@localnet.com>
+# Contributor: dorphell <dorphell@archlinux.org>
+pkgname=oxine
+pkgver=0.7.1
+pkgrel=3
+pkgdesc="oxine is a lightweight, purely osd based xine frontend for set-top boxes and home entertainment systems."
+arch=('i686' 'x86_64')
+depends=('xine-lib>=1.1.16.3' 'libexif>=0.6.17' 'eject' 'libcdio>=0.82' 'curl>=7.19.4' 'libxinerama' 'libsm' 'libxtst')
+makedepends=('pkgconfig')
+license=('GPL')
+url="http://oxine.sourceforge.net/"
+source=(http://downloads.sourceforge.net/sourceforge/oxine/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2a2d05ee21892624e35cf539e532c0dd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-hal \
+ --without-imagemagick --disable-gdkpixbuf || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/oxygen-gtk/PKGBUILD b/extra/oxygen-gtk/PKGBUILD
new file mode 100644
index 000000000..b5cb2b2fa
--- /dev/null
+++ b/extra/oxygen-gtk/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 114425 2011-03-13 14:07:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: birdflesh <antkoul at gmail dot com>
+
+pkgname=oxygen-gtk
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Port of the default KDE widget theme (Oxygen) to GTK"
+arch=('i686' 'x86_64')
+url="http://kde-look.org/content/show.php/?content=136216"
+license=('LGPL')
+depends=('gtk2')
+makedepends=('cmake')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('df17f4a9b233a9c9e028932f11d05058')
+
+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/extra/pam_fprint/PKGBUILD b/extra/pam_fprint/PKGBUILD
new file mode 100644
index 000000000..7d391ed11
--- /dev/null
+++ b/extra/pam_fprint/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 69402 2010-02-20 12:43:15Z allan $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname=pam_fprint
+pkgver=0.2
+pkgrel=2
+pkgdesc="pam module for fingerprint authentication"
+arch=('i686' 'x86_64')
+url="http://reactivated.net/fprint/wiki/Main_Page"
+license=('LGPL')
+groups=('fprint')
+depends=('libfprint' 'pam')
+source=(http://downloads.sourceforge.net/sourceforge/fprint/$pkgname-$pkgver.tar.bz2)
+md5sums=('abfb041ed856aaac5c5c416973451226 ')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/pam_ldap/PKGBUILD b/extra/pam_ldap/PKGBUILD
new file mode 100644
index 000000000..b3418220a
--- /dev/null
+++ b/extra/pam_ldap/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 87842 2010-08-18 13:07:56Z jgc $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Comete <la_comete@tiscali.fr>
+pkgname=pam_ldap
+pkgver=185
+pkgrel=1
+pkgdesc="LDAP authentication module for the PAM framework"
+arch=(i686 x86_64)
+url="http://www.padl.com/OSS/pam_ldap.html"
+license=('LGPL')
+depends=('libldap>=2.4.22' 'pam')
+backup=(etc/pam_ldap.conf)
+options=(!makeflags)
+source=(http://www.padl.com/download/${pkgname}-${pkgver}.tar.gz)
+md5sums=('639260f0c81d57a6fcbd1cb47dd6c5e7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --libdir=/lib \
+ --with-ldap-conf-file=/etc/pam_ldap.conf \
+ --mandir=/usr/share/man
+ PATH="${PATH}:${srcdir}/${pkgname}-${pkgver}" make
+ make DESTDIR="${pkgdir}" install
+ mv "${pkgdir}/etc/ldap.conf" "${pkgdir}/etc/pam_ldap.conf"
+}
diff --git a/extra/pango-perl/PKGBUILD b/extra/pango-perl/PKGBUILD
new file mode 100644
index 000000000..45afe7624
--- /dev/null
+++ b/extra/pango-perl/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 104909 2011-01-05 14:41:37Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pango-perl
+_realname=Pango
+pkgver=1.221
+pkgrel=3
+pkgdesc="Perl bindings for Pango"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://gtk2-perl.sourceforge.net/"
+makedepends=('perl-extutils-pkgconfig' 'perl-extutils-depends')
+depends=('pango' 'glib-perl' 'cairo-perl')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/gtk2-perl/${_realname}-${pkgver}.tar.gz)
+md5sums=('8d257209aa11bd6c3a2beb235c2f103f')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/pango/PKGBUILD b/extra/pango/PKGBUILD
new file mode 100644
index 000000000..6834fa5a6
--- /dev/null
+++ b/extra/pango/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 117877 2011-04-04 21:02:10Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pango
+pkgver=1.28.4
+pkgrel=1
+pkgdesc="A library for layout and rendering of text"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('glib2' 'cairo' 'libxft' 'libthai' 'freetype2')
+makedepends=('gobject-introspection' 'gtk-doc')
+options=('!libtool' '!emptydirs')
+install=pango.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.28/${pkgname}-${pkgver}.tar.bz2)
+url="http://www.pango.org/"
+sha256sums=('7eb035bcc10dd01569a214d5e2bc3437de95d9ac1cfa9f50035a687c45f05a9f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i '/AC_PATH_XTRA/d' configure.in
+ autoreconf -vfi
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --with-included-modules=basic-fc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/pango/pango.install b/extra/pango/pango.install
new file mode 100644
index 000000000..73b0f5bf1
--- /dev/null
+++ b/extra/pango/pango.install
@@ -0,0 +1,21 @@
+# arg 1: the new package version
+post_install() {
+ # we need to ldconfig first, in case xfree86's libs aren't
+ # in ld.so.cache yet
+ sbin/ldconfig -r .
+ usr/bin/pango-querymodules >etc/pango/pango.modules
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ -f usr/etc/pango/pango.modules ]; then
+ rm usr/etc/pango/pango.modules
+ fi
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ rm etc/pango/pango.modules
+}
diff --git a/extra/pangomm/PKGBUILD b/extra/pangomm/PKGBUILD
new file mode 100644
index 000000000..9e92a9d2d
--- /dev/null
+++ b/extra/pangomm/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 5595 2008-07-18 21:58:26Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=pangomm
+pkgname=('pangomm' 'pangomm-docs')
+pkgver=2.26.3
+pkgrel=1
+arch=(i686 x86_64)
+license=('LGPL')
+makedepends=('pango>=1.28.0' 'glibmm>=2.24.2' 'glibmm-docs>=2.24.2' 'cairomm>=1.8.2' 'pkgconfig')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.26/${pkgname}-${pkgver}.tar.bz2)
+conflicts=('gtkmm<2.13.0')
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+md5sums=('1f2712d53918cfb4745c291a67b86156')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+package_pangomm() {
+ pkgdesc="C++ bindings for pango"
+ depends=('pango>=1.28.0' 'glibmm>=2.24.2' 'cairomm>=1.8.2')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+ make DESTDIR="${pkgdir}" install
+}
+
+package_pangomm-docs() {
+ pkgdesc="Developer documentation for pangomm"
+ cd "${srcdir}/${pkgbase}-${pkgver}/docs"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/paprefs/PKGBUILD b/extra/paprefs/PKGBUILD
new file mode 100644
index 000000000..a2566b10a
--- /dev/null
+++ b/extra/paprefs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 101942 2010-12-02 22:07:04Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=paprefs
+pkgver=0.9.9
+pkgrel=6
+pkgdesc="A simple GTK-based configuration dialog for PulseAudio"
+arch=(i686 x86_64)
+url="http://0pointer.de/lennart/projects/paprefs"
+license=(GPL)
+depends=(gconfmm gnome-icon-theme libglademm 'pulseaudio=0.9.22' libsigc++)
+makedepends=(intltool)
+source=(http://0pointer.de/lennart/projects/paprefs/$pkgname-$pkgver.tar.gz
+ paprefs.desktop)
+md5sums=('0592ccb28c8f601a8fe3607b64e9f5bc' '20dc978f0bd4a0bf925a4eaf80a2b8f8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-lynx
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/paprefs.desktop" \
+ "$pkgdir/usr/share/applications/paprefs.desktop"
+}
diff --git a/extra/paprefs/paprefs.desktop b/extra/paprefs/paprefs.desktop
new file mode 100644
index 000000000..d51635533
--- /dev/null
+++ b/extra/paprefs/paprefs.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Name=PulseAudio Preferences
+Name[de]=PulseAudio-Einstellungen
+GenericName=Sound Server Preferences
+GenericName[de]=Audio-Dienst-Einstellungen
+Comment=View and modify the configuration of the local sound server
+Comment[de]=Anzeigen und Ändern der Konfiguration des lokalen Audio-Dienstes
+Exec=paprefs
+Icon=preferences-desktop
+StartupNotify=true
+Type=Application
+Categories=Settings;
diff --git a/extra/parted/PKGBUILD b/extra/parted/PKGBUILD
new file mode 100644
index 000000000..d166fd830
--- /dev/null
+++ b/extra/parted/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 82289 2010-06-10 01:52:54Z andrea $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+
+pkgname=parted
+pkgver=2.3
+pkgrel=1
+pkgdesc="A program for creating, destroying, resizing, checking and copying partitions"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/parted/parted.html"
+depends=('device-mapper' 'e2fsprogs')
+options=('!libtool')
+install=${pkgname}.install
+source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('30ceb6df7e8681891e865e2fe5a7903d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --disable-debug \
+ --disable-rpath \
+ --disable-Werror || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/parted/parted.install b/extra/parted/parted.install
new file mode 100644
index 000000000..5e00699e8
--- /dev/null
+++ b/extra/parted/parted.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(parted.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/extra/partitionmanager/PKGBUILD b/extra/partitionmanager/PKGBUILD
new file mode 100644
index 000000000..5803bf8f6
--- /dev/null
+++ b/extra/partitionmanager/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 89515 2010-09-01 13:48:17Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
+
+pkgname=partitionmanager
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="A KDE 4 utility that allows you to manage disks, partitions, and file systems."
+arch=('i686' 'x86_64')
+url="https://sourceforge.net/projects/partitionman/"
+license=('GPL2')
+depends=('kdebase-runtime' 'parted')
+makedepends=('cmake' 'automoc4' 'pkgconfig')
+optdepends=('e2fsprogs: ext2/3/4 support'
+ 'xfsprogs: XFS support'
+ 'jfsutils: JFS support'
+ 'reiserfsprogs: Reiser support'
+ 'ntfsprogs: NTFS support'
+ 'dosfstools: FAT32 support')
+install=partitionmanager.install
+source=(http://downloads.sourceforge.net/partitionman/$pkgname-$pkgver.tar.bz2)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ mkdir build
+ cd build
+ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SKIP_RPATH=ON || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
+md5sums=('1f987d314c717ba2579c69eeef16336d')
diff --git a/extra/partitionmanager/partitionmanager.install b/extra/partitionmanager/partitionmanager.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/partitionmanager/partitionmanager.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/extra/pathological/ChangeLog b/extra/pathological/ChangeLog
new file mode 100644
index 000000000..3cd114178
--- /dev/null
+++ b/extra/pathological/ChangeLog
@@ -0,0 +1,14 @@
+2010-08-24 Eric Belanger <eric@archlinux.org>
+
+ * pathological 1.1.3-6
+ * Rebuilt against python2
+
+2009-07-10 Eric Belanger <eric@archlinux.org>
+
+ * pathological 1.1.3-5
+ * Removed binary from /usr/share (close FS#15302)
+ * Moved saved games to /var
+ * Fixed segmentation fault
+ * FHS man pages
+ * Added docs
+ * Added ChangeLog
diff --git a/extra/pathological/PKGBUILD b/extra/pathological/PKGBUILD
new file mode 100644
index 000000000..cdc1bd856
--- /dev/null
+++ b/extra/pathological/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 88505 2010-08-24 07:21:52Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=pathological
+pkgver=1.1.3
+pkgrel=6
+pkgdesc="A puzzle game with the same feel as frozen bubble"
+arch=('i686' 'x86_64')
+url="http://pathological.sourceforge.net/"
+license=('GPL')
+depends=('python-pygame')
+makedepends=('netpbm')
+install=pathological.install
+changelog=ChangeLog
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ pathological.desktop pygame_181.patch encoding.patch)
+md5sums=('76a446080c0fed12baf39354d8e0ce4a' '0fbf64860efe3d287eb74681758c4f75'\
+ 'bcd59890efe29a9f8c83227656c31a3e' '06d9221d0d8adaf232a3766870a8bcc0')
+sha1sums=('70b1c9e12704c7fd3b301aa90bceee2e8373b7b9' '9b57f854ce9621542d810a21c61325de343950d7'\
+ '6f0aa0f74a87bd53771f2db6d3117981c4f070d3' '7dbaa9ced7da0094280425a68b4c8db3382f230a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 < ../encoding.patch
+ patch -p1 < ../pygame_181.patch
+ sed -i 's|X11R6/include/X11|share|' Makefile
+ sed -i 's|usr/games|usr/bin|' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' "${pkgdir}/usr/share/games/pathological/pathological.py"
+ install -D -m644 ../pathological.desktop "${pkgdir}/usr/share/applications/pathological.desktop"
+ chown root:games "${pkgdir}/var/games"
+ chmod 775 "${pkgdir}/var/games"
+ rm "${pkgdir}/var/games/pathological_scores"
+}
diff --git a/extra/pathological/encoding.patch b/extra/pathological/encoding.patch
new file mode 100644
index 000000000..394875809
--- /dev/null
+++ b/extra/pathological/encoding.patch
@@ -0,0 +1,8 @@
+--- pathological.py.orig 2009-07-10 01:49:39.000000000 -0400
++++ pathological.py 2009-07-10 01:49:53.000000000 -0400
+@@ -1,4 +1,5 @@
+ #!/usr/bin/python
++# -*- coding: utf-8 -*-
+ """
+ Copyright (C) 2003 John-Paul Gignac
+
diff --git a/extra/pathological/pathological.desktop b/extra/pathological/pathological.desktop
new file mode 100644
index 000000000..54817684f
--- /dev/null
+++ b/extra/pathological/pathological.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Pathological
+Comment=A puzzle game involving paths and marbles
+Exec=pathological
+Icon=pathological.xpm
+Terminal=false
+Type=Application
+Categories=Application;Game;
diff --git a/extra/pathological/pathological.install b/extra/pathological/pathological.install
new file mode 100644
index 000000000..4bc716839
--- /dev/null
+++ b/extra/pathological/pathological.install
@@ -0,0 +1,29 @@
+post_install() {
+if [ ! -e var/games/pathological_scores ]; then
+ cat << _EOF > var/games/pathological_scores
+0 all-boards 1 John-Paul
+0 all-boards 1 Kim
+0 all-boards 1 Matths
+0 all-boards 1 Carrie
+0 all-boards 1 Mike
+0 all-boards 1 Dale
+0 all-boards 1 Alesh
+0 all-boards 1 Thanks to
+0 all-boards 1 everyone who
+0 all-boards 1 contributed!
+_EOF
+fi
+ chown root:games var/games/pathological_scores
+ chmod 664 var/games/pathological_scores
+}
+
+pre_upgrade() {
+ if [ -e usr/share/games/pathological/pathological_scores ]; then
+ mv usr/share/games/pathological/pathological_scores var/games/
+ fi
+}
+
+post_upgrade() {
+ chown root:games var/games/pathological_scores
+ chmod 664 var/games/pathological_scores
+}
diff --git a/extra/pathological/pygame_181.patch b/extra/pathological/pygame_181.patch
new file mode 100644
index 000000000..4789f1519
--- /dev/null
+++ b/extra/pathological/pygame_181.patch
@@ -0,0 +1,10 @@
+--- pathological-1.1.3.orig.orig/pathological.py 2009-04-15 10:50:11.000000000 -0400
++++ pathological-1.1.3.orig/pathological.py 2009-04-15 10:50:56.000000000 -0400
+@@ -169,6 +169,7 @@
+ if not pygame.mixer or not pygame.mixer.music:
+ print "Background music not available."
+ return
++ pygame.mixer.music.stop()
+ fullname = os.path.join('music', name)
+ try:
+ pygame.mixer.music.load(fullname)
diff --git a/extra/pavucontrol/PKGBUILD b/extra/pavucontrol/PKGBUILD
new file mode 100644
index 000000000..989ec4715
--- /dev/null
+++ b/extra/pavucontrol/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 99927 2010-11-19 14:18:06Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pavucontrol
+pkgver=0.9.10
+pkgrel=4
+pkgdesc="A simple GTK based volume control tool for the PulseAudio sound server"
+arch=(i686 x86_64)
+url="http://0pointer.de/lennart/projects/pavucontrol"
+license=(GPL)
+depends=(gnome-icon-theme libcanberra libglademm libpulse libsigc++)
+makedepends=(intltool)
+source=(http://0pointer.de/lennart/projects/$pkgname/$pkgname-$pkgver.tar.gz
+ pavucontrol.desktop)
+md5sums=('b966eb31ec7fd6afa0f1ed7d5ba480b3' '0fc5cb095599eff6915db27e2b9bb881')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-lynx
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 "$srcdir/pavucontrol.desktop" \
+ "$pkgdir/usr/share/applications/pavucontrol.desktop"
+}
diff --git a/extra/pavucontrol/pavucontrol.desktop b/extra/pavucontrol/pavucontrol.desktop
new file mode 100644
index 000000000..842dc96b6
--- /dev/null
+++ b/extra/pavucontrol/pavucontrol.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Name=PulseAudio Volume Control
+GenericName=Volume Control
+Comment=Adjust the volume level
+Exec=pavucontrol
+Icon=multimedia-volume-control
+StartupNotify=true
+Type=Application
+Categories=AudioVideo;Audio;
+GenericName[en_GB]=Volume Control
diff --git a/extra/pcmanfm/PKGBUILD b/extra/pcmanfm/PKGBUILD
new file mode 100644
index 000000000..f08c841c7
--- /dev/null
+++ b/extra/pcmanfm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 110558 2011-02-19 22:38:04Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+pkgname=pcmanfm
+pkgver=0.9.8
+pkgrel=5
+pkgdesc="File manager of the LXDE Desktop"
+arch=('i686' 'x86_64')
+url="http://pcmanfm.sourceforge.net/"
+license=('GPL')
+groups=('lxde')
+depends=('gtk2' 'desktop-file-utils' 'libfm')
+makedepends=('intltool' 'pkgconfig')
+source=(http://downloads.sourceforge.net/pcmanfm/pcmanfm-$pkgver.tar.gz
+ revert-new-IPC.patch)
+md5sums=('4a7fdc0526ed14e3293d784c0ce27dea' '4bedb071a83ba5a7af1aa43b71a262a9')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -Np1 -i $srcdir/revert-new-IPC.patch
+ ./configure --sysconfdir=/etc --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/pcmanfm/pcmanfm.install b/extra/pcmanfm/pcmanfm.install
new file mode 100644
index 000000000..98965c989
--- /dev/null
+++ b/extra/pcmanfm/pcmanfm.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-mime-database usr/share/mime > /dev/null
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+
diff --git a/extra/pcmanfm/revert-new-IPC.patch b/extra/pcmanfm/revert-new-IPC.patch
new file mode 100644
index 000000000..fa64fde42
--- /dev/null
+++ b/extra/pcmanfm/revert-new-IPC.patch
@@ -0,0 +1,432 @@
+diff -Naur pcmanfm-20101030_10ae31a.orig/src/Makefile.am pcmanfm-20101030_10ae31a/src/Makefile.am
+--- pcmanfm-20101030_10ae31a.orig/src/Makefile.am 2010-10-30 20:36:02.000000000 +0200
++++ pcmanfm-20101030_10ae31a/src/Makefile.am 2010-10-31 09:13:48.000000000 +0100
+@@ -16,7 +16,6 @@
+ pref.c pref.h \
+ utils.c utils.h \
+ gseal-gtk-compat.h \
+- single-inst.c single-inst.h \
+ $(NULL)
+
+ EXTRA_DIST= \
+diff -Naur pcmanfm-20101030_10ae31a.orig/src/pcmanfm.c pcmanfm-20101030_10ae31a/src/pcmanfm.c
+--- pcmanfm-20101030_10ae31a.orig/src/pcmanfm.c 2010-10-30 20:36:02.000000000 +0200
++++ pcmanfm-20101030_10ae31a/src/pcmanfm.c 2010-10-31 09:25:45.000000000 +0100
+@@ -31,6 +31,8 @@
+ #include <string.h>
+ /* socket is used to keep single instance */
+ #include <sys/types.h>
++#include <sys/socket.h>
++#include <sys/un.h>
+ #include <signal.h>
+ #include <unistd.h> /* for getcwd */
+
+@@ -41,13 +43,14 @@
+ #include "volume-manager.h"
+ #include "pref.h"
+ #include "pcmanfm.h"
+-#include "single-inst.h"
++
++static int sock;
++GIOChannel* io_channel = NULL;
+
+ static int signal_pipe[2] = {-1, -1};
+ gboolean daemon_mode = FALSE;
+
+ static char** files_to_open = NULL;
+-static int n_files_to_open = 0;
+ static char* profile = NULL;
+ static gboolean no_desktop = FALSE;
+ static gboolean show_desktop = FALSE;
+@@ -80,25 +83,13 @@
+ { NULL }
+ };
+
+-/* single instance command id */
+-enum {
+- CMD_INVALID,
+- CMD_CWD,
+- CMD_PROFILE,
+- CMD_DESKTOP,
+- CMD_DESKTOP_OFF,
+- CMD_DAEMON_MODE,
+- CMD_DESKTOP_PREF,
+- CMD_SET_WALLPAPER,
+- CMD_WALLPAPER_MODE,
+- CMD_SHOW_PREF,
+- CMD_FILES_TO_OPEN,
+- CMD_EOF
+-};
+-
+ static const char* valid_wallpaper_modes[] = {"color", "stretch", "fit", "center", "tile"};
+
++static gboolean single_instance_check();
++static void single_instance_finalize();
++static void get_socket_name(char* buf, int len);
+ static gboolean pcmanfm_run();
++static gboolean on_socket_event(GIOChannel* ioc, GIOCondition cond, gpointer data);
+
+ /* it's not safe to call gtk+ functions in unix signal handler
+ * since the process is interrupted here and the state of gtk+ is unpredictable. */
+@@ -121,97 +112,6 @@
+ return TRUE;
+ }
+
+-static gboolean on_single_inst_command(int cmd, SingleInstCmdData* data)
+-{
+- switch(cmd)
+- {
+- case CMD_CWD:
+- g_free(ipc_cwd);
+- ipc_cwd = single_inst_get_str(data, NULL);
+- break;
+- case CMD_PROFILE:
+- /* Not supported */
+- break;
+- case CMD_DESKTOP:
+- single_inst_get_bool(data, &show_desktop);
+- break;
+- case CMD_DESKTOP_OFF:
+- single_inst_get_bool(data, &desktop_off);
+- break;
+- case CMD_DAEMON_MODE:
+- /* Not supported */
+- break;
+- case CMD_DESKTOP_PREF:
+- single_inst_get_bool(data, &desktop_pref);
+- break;
+- case CMD_SET_WALLPAPER:
+- g_free(set_wallpaper);
+- set_wallpaper = single_inst_get_str(data, NULL);
+- break;
+- case CMD_WALLPAPER_MODE:
+- g_free(wallpaper_mode);
+- wallpaper_mode = single_inst_get_str(data, NULL);
+- break;
+- case CMD_SHOW_PREF:
+- single_inst_get_int(data, &show_pref);
+- break;
+- case CMD_FILES_TO_OPEN:
+- {
+- g_strfreev(files_to_open);
+- n_files_to_open = 0;
+- files_to_open = single_inst_get_strv(data, &n_files_to_open);
+- }
+- break;
+- case CMD_EOF:
+- {
+- int i;
+- /* canonicalize filename if needed. */
+- for(i = 0; i < n_files_to_open; ++i)
+- {
+- char* file = files_to_open[i];
+- char* scheme = g_uri_parse_scheme(file);
+- if(scheme) /* a valid URI */
+- {
+- /* FIXME: should we canonicalize URIs? and how about file:///? */
+- g_free(scheme);
+- }
+- else /* a file path */
+- {
+- files_to_open[i] = fm_canonicalize_filename(file, ipc_cwd);
+- g_free(file);
+- }
+- }
+-
+- /* handle the parsed result and run the main program */
+- pcmanfm_run();
+- }
+- break;
+- }
+- return TRUE;
+-}
+-
+-/* we're not the first instance. pass the argv to the existing one. */
+-static void pass_args_to_existing_instance()
+-{
+- /* send our current working dir to existing instance via IPC. */
+- ipc_cwd = g_get_current_dir();
+- single_inst_send_str(CMD_CWD, ipc_cwd);
+- g_free(ipc_cwd);
+-
+- single_inst_send_bool(CMD_DESKTOP, show_desktop);
+- single_inst_send_bool(CMD_DESKTOP_OFF, desktop_off);
+- single_inst_send_bool(CMD_DESKTOP_PREF, desktop_pref);
+- single_inst_send_str(CMD_SET_WALLPAPER, set_wallpaper);
+- single_inst_send_str(CMD_WALLPAPER_MODE, wallpaper_mode);
+- single_inst_send_int(CMD_SHOW_PREF, show_pref);
+- /* single_inst_send_bool(CMD_FIND_FILES, find_files); */
+-
+- single_inst_send_strv(CMD_FILES_TO_OPEN, files_to_open);
+- single_inst_send_bool(CMD_EOF, TRUE); /* all args have been sent. */
+-
+- single_inst_finalize();
+-}
+-
+ int main(int argc, char** argv)
+ {
+ FmConfig* config;
+@@ -230,17 +130,10 @@
+ return 1;
+ }
+
+- /* ensure that there is only one instance of pcmanfm. */
+- switch(single_inst_init("pcmanfm", on_single_inst_command))
+- {
+- case SINGLE_INST_CLIENT: /* we're not the first instance. */
+- pass_args_to_existing_instance();
+- gdk_notify_startup_complete();
+- return 0;
+- case SINGLE_INST_ERROR: /* error happened. */
+- single_inst_finalize();
+- return 1;
+- }
++ /* ensure that there is only one instance of pcmanfm.
++ if there is an existing instance, command line arguments
++ will be passed to the existing instance, and exit() will be called here. */
++ single_instance_check();
+
+ if(pipe(signal_pipe) == 0)
+ {
+@@ -274,13 +167,240 @@
+ fm_volume_manager_finalize();
+ }
+
+- single_inst_finalize();
++ single_instance_finalize();
++
+ fm_gtk_finalize();
+
+ g_object_unref(config);
+ return 0;
+ }
+
++inline static void buf_append_str(GByteArray* buf, const char* str)
++{
++ int len;
++ if(G_LIKELY(str))
++ {
++ len = strlen(str) + 1;
++ g_byte_array_append(buf, (guint8*)&len, sizeof(len));
++ g_byte_array_append(buf, (guint8*)str, len);
++ }
++ else
++ {
++ len = 0;
++ g_byte_array_append(buf, (guint8*)&len, sizeof(len));
++ }
++}
++
++inline static GByteArray* args_to_ipc_buf()
++{
++ int i, len;
++ GByteArray* buf = g_byte_array_sized_new(4096);
++ /* send our current working dir to existing instance via IPC. */
++ ipc_cwd = g_get_current_dir();
++ buf_append_str(buf, ipc_cwd);
++ g_free(ipc_cwd);
++
++ /* g_byte_array_append(buf, (guint8*)&new_tab, sizeof(new_tab)); */
++ g_byte_array_append(buf, (guint8*)&show_desktop, sizeof(show_desktop));
++ g_byte_array_append(buf, (guint8*)&desktop_off, sizeof(desktop_off));
++ g_byte_array_append(buf, (guint8*)&desktop_pref, sizeof(desktop_pref));
++ buf_append_str(buf, set_wallpaper);
++ buf_append_str(buf, wallpaper_mode);
++ g_byte_array_append(buf, (guint8*)&show_pref, sizeof(show_pref));
++ g_byte_array_append(buf, (guint8*)&find_files, sizeof(find_files));
++ g_byte_array_append(buf, (guint8*)&no_desktop, sizeof(no_desktop));
++
++ len = files_to_open ? g_strv_length(files_to_open) : 0;
++ g_byte_array_append(buf, (guint8*)&len, sizeof(len));
++ for(i = 0; i < len; ++i)
++ buf_append_str(buf, files_to_open[i]);
++
++ return buf;
++}
++
++inline static gboolean buf_read_bool(const char**p)
++{
++ gboolean ret;
++ memcpy(&ret, *p, sizeof(ret));
++ *p += sizeof(ret);
++ return ret;
++}
++
++inline static int buf_read_int(const char**p)
++{
++ int ret;
++ memcpy(&ret, *p, sizeof(ret));
++ *p += sizeof(ret);
++ return ret;
++}
++
++inline static char* buf_read_str(const char**p)
++{
++ char* ret;
++ int len = buf_read_int(p);
++ if(len > 0)
++ {
++ ret = g_malloc(len);
++ memcpy(ret, *p, len);
++ *p += len;
++ }
++ else
++ ret = NULL;
++ return ret;
++}
++
++inline static void ipc_buf_to_args(GByteArray* buf)
++{
++ int i, len;
++ char* p = buf->data;
++ char* cwd = buf_read_str(&p);
++ /* new_tab = buf_read_bool(&p); */
++ show_desktop = buf_read_bool(&p);
++ desktop_off = buf_read_bool(&p);
++ desktop_pref = buf_read_bool(&p);
++ g_free(set_wallpaper);
++ set_wallpaper = buf_read_str(&p);
++ g_free(wallpaper_mode);
++ wallpaper_mode = buf_read_str(&p);
++ show_pref = buf_read_int(&p);
++ find_files = buf_read_bool(&p);
++ no_desktop = buf_read_bool(&p);
++
++ len = buf_read_int(&p);
++ /* g_debug("len = %d", len); */
++ if(len > 0)
++ {
++ files_to_open = g_new(char*, len + 1);
++ for(i = 0; i < len; ++i)
++ {
++ char* file = buf_read_str(&p);
++ char* scheme = g_uri_parse_scheme(file);
++ if(scheme) /* a valid URI */
++ {
++ /* FIXME: should we canonicalize URIs? and how about file:///? */
++ files_to_open[i] = file;
++ g_free(scheme);
++ }
++ else /* a file path */
++ {
++ files_to_open[i] = fm_canonicalize_filename(file, cwd);
++ g_free(file);
++ }
++ }
++ files_to_open[i] = NULL;
++ }
++ else
++ files_to_open = NULL;
++ g_free(cwd);
++}
++
++gboolean on_socket_event( GIOChannel* ioc, GIOCondition cond, gpointer data )
++{
++ int client, r;
++ socklen_t addr_len = 0;
++ struct sockaddr_un client_addr ={ 0 };
++ static char buf[ 1024 ];
++ GByteArray* args;
++
++ if ( cond & G_IO_IN )
++ {
++ client = accept( g_io_channel_unix_get_fd( ioc ), (struct sockaddr *)&client_addr, &addr_len );
++ if ( client != -1 )
++ {
++ args = g_byte_array_sized_new(4096);
++ while( (r = read( client, buf, sizeof(buf) )) > 0 )
++ g_byte_array_append( args, (guint8*)buf, r);
++ shutdown( client, 2 );
++ close( client );
++ ipc_buf_to_args(args);
++ g_byte_array_free( args, TRUE );
++ pcmanfm_run();
++ }
++ }
++ return TRUE;
++}
++
++void get_socket_name( char* buf, int len )
++{
++ char* dpy = gdk_get_display();
++ g_snprintf( buf, len, "/tmp/.pcmanfm-socket%s-%s", dpy, g_get_user_name() );
++ g_free( dpy );
++}
++
++gboolean single_instance_check()
++{
++ struct sockaddr_un addr;
++ int addr_len;
++ int ret;
++ int reuse;
++
++ if((sock = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
++ {
++ ret = 1;
++ goto _exit;
++ }
++
++ /* FIXME: use abstract socket */
++ addr.sun_family = AF_UNIX;
++ get_socket_name(addr.sun_path, sizeof( addr.sun_path ));
++#ifdef SUN_LEN
++ addr_len = SUN_LEN(&addr);
++#else
++ addr_len = strlen( addr.sun_path ) + sizeof( addr.sun_family );
++#endif
++
++ /* try to connect to existing instance */
++ if(connect(sock, (struct sockaddr*)&addr, addr_len) == 0)
++ {
++ /* connected successfully */
++ GByteArray* buf = args_to_ipc_buf();
++ write(sock, buf->data, buf->len);
++ g_byte_array_free(buf, TRUE);
++
++ shutdown( sock, 2 );
++ close( sock );
++ ret = 0;
++ goto _exit;
++ }
++
++ /* There is no existing server, and we are in the first instance. */
++ unlink( addr.sun_path ); /* delete old socket file if it exists. */
++ reuse = 1;
++ ret = setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse) );
++ if(bind(sock, (struct sockaddr*)&addr, addr_len) == -1)
++ {
++ ret = 1;
++ goto _exit;
++ }
++
++ io_channel = g_io_channel_unix_new(sock);
++ g_io_channel_set_encoding(io_channel, NULL, NULL);
++ g_io_channel_set_buffered(io_channel, FALSE);
++ g_io_add_watch(io_channel, G_IO_IN,
++ (GIOFunc)on_socket_event, NULL);
++ if(listen(sock, 5) == -1)
++ {
++ ret = 1;
++ goto _exit;
++ }
++ return TRUE;
++
++_exit:
++
++ gdk_notify_startup_complete();
++ exit( ret );
++}
++
++void single_instance_finalize()
++{
++ char lock_file[256];
++ shutdown(sock, 2);
++ g_io_channel_unref(io_channel);
++ close(sock);
++ get_socket_name(lock_file, sizeof( lock_file ));
++ unlink(lock_file);
++}
++
+ static FmJobErrorAction on_file_info_job_error(FmFileInfoJob* job, GError* err, FmJobErrorSeverity severity, gpointer user_data)
+ {
+ if(err->domain == G_IO_ERROR)
diff --git a/extra/pdksh/PKGBUILD b/extra/pdksh/PKGBUILD
new file mode 100644
index 000000000..6f592e39c
--- /dev/null
+++ b/extra/pdksh/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 30639 2009-03-21 04:22:46Z eric $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=pdksh
+pkgver=5.2.14
+pkgrel=5
+pkgdesc="A public domain clone of the AT&T Korn shell"
+arch=('i686' 'x86_64')
+url="http://www.cs.mun.ca/~michael/pdksh/"
+license=('custom')
+depends=('glibc')
+install=$pkgname.install
+source=(ftp://ftp.cs.mun.ca/pub/$pkgname/$pkgname-$pkgver.tar.gz $pkgname-$pkgver.patch usr_ksh.sh)
+md5sums=('871106b3bd937e1afba9f2ef7c43aef3' 'f11d1e711627d21a547c09e344e30dd3'\
+ '56084a657ecafd5dd0813a6056036712')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i ../$pkgname-$pkgver.patch || return 1
+ ./configure --prefix=/ --mandir=/usr/share/man || return 1
+ make || return 1
+ make prefix=$pkgdir mandir=$pkgdir/usr/share/man/man1 install || return 1
+ install -D -m 755 ${srcdir}/usr_ksh.sh ${pkgdir}/usr/bin/ksh || return 1
+ install -D -m644 LEGAL $pkgdir/usr/share/licenses/$pkgname/LICENSE || return 1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/pdksh/pdksh-5.2.14.patch b/extra/pdksh/pdksh-5.2.14.patch
new file mode 100644
index 000000000..134e04f34
--- /dev/null
+++ b/extra/pdksh/pdksh-5.2.14.patch
@@ -0,0 +1,26 @@
+diff -ru pdksh-5.2.14/siglist.sh pdksh-5.2.14.arch/siglist.sh
+--- pdksh-5.2.14/siglist.sh 1996-09-18 12:52:41.000000000 -0400
++++ pdksh-5.2.14.arch/siglist.sh 2004-09-06 08:17:15.000000000 -0400
+@@ -11,19 +11,18 @@
+ out=tmpo$$.c
+ ecode=1
+ trapsigs='0 1 2 13 15'
+-trap 'rm -f $in $out; trap 0; exit $ecode' $trapsigs
++trap 'rm -f $in $out; exit $ecode' $trapsigs
+
+ CPP="${1-cc -E}"
+
+ # The trap here to make up for a bug in bash (1.14.3(1)) that calls the trap
+-(trap $trapsigs;
+- echo '#include "sh.h"';
++(echo '#include "sh.h"';
+ echo ' { QwErTy SIGNALS , "DUMMY" , "hook for number of signals" },';
+ sed -e '/^[ ]*#/d' -e 's/^[ ]*\([^ ][^ ]*\)[ ][ ]*\(.*[^ ]\)[ ]*$/#ifdef SIG\1\
+ { QwErTy SIG\1 , "\1", "\2" },\
+ #endif/') > $in
+ $CPP $in > $out
+-sed -n 's/{ QwErTy/{/p' < $out | awk '{print NR, $0}' | sort +2n +0n |
++sed -n 's/{ QwErTy/{/p' < $out | awk '{print NR, $0}' | sort -g --key=3 |
+ sed 's/^[0-9]* //' |
+ awk 'BEGIN { last=0; nsigs=0; }
+ {
diff --git a/extra/pdksh/pdksh.install b/extra/pdksh/pdksh.install
new file mode 100644
index 000000000..844a4e731
--- /dev/null
+++ b/extra/pdksh/pdksh.install
@@ -0,0 +1,22 @@
+post_install() {
+ if [ ! "`grep /bin/ksh etc/shells`" ]; then
+ echo "updating /etc/shells... done."
+ sed -i "s|/bin/bash|/bin/bash\n/bin/ksh|" etc/shells
+ else
+ sed -i "s|/usr/bin/ksh|/bin/ksh|" etc/shells
+
+ echo ""
+ echo ">> WARNING: /usr/bin/ksh has moved to /bin/ksh,"
+ echo ">> please update your user accounts as needed"
+ echo ""
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ echo -ne "\nupdating /etc/shells... "
+ sed -i "s|/bin/ksh||" etc/shells
+}
diff --git a/extra/pdksh/usr_ksh.sh b/extra/pdksh/usr_ksh.sh
new file mode 100644
index 000000000..17a96d1bf
--- /dev/null
+++ b/extra/pdksh/usr_ksh.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+echo "WARNING: you should be calling ksh with /bin/ksh,"
+echo "not with /usr/bin/ksh. Please execute chsh to fix"
+echo "this. Legacy /usr/bin/ksh support will go away!"
+echo ""
+
+exec /bin/ksh $@
+
diff --git a/extra/pdns-recursor/PKGBUILD b/extra/pdns-recursor/PKGBUILD
new file mode 100644
index 000000000..c344995ac
--- /dev/null
+++ b/extra/pdns-recursor/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 109116 2011-02-06 10:26:46Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pdns-recursor
+pkgver=3.3
+pkgrel=1
+pkgdesc="PowerDNS recursor"
+url="http://www.powerdns.com"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gcc-libs>=4.5.2' 'lua')
+makedepends=('boost')
+#options=(!makeflags)
+backup=('etc/powerdns/recursor.conf')
+source=(http://downloads.powerdns.com/releases/${pkgname}-${pkgver}.tar.bz2
+ pdns-recursor.rc)
+md5sums=('87daeeebb6f7af9e07814ff6c43300dd'
+ '5b3aa3c8ed2edf55821af16cfb7ef252')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ LUA=1 LUA_CPPFLAGS_CONFIG= LUA_LIBS_CONFIG=-llua make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/etc/rc.d"
+ mv "${pkgdir}/etc/powerdns/recursor.conf-dist" "${pkgdir}/etc/powerdns/recursor.conf"
+ install -m755 "${srcdir}/pdns-recursor.rc" "${pkgdir}/etc/rc.d/pdns-recursor"
+ rm -rf "${pkgdir}/etc/init.d"
+}
diff --git a/extra/pdns-recursor/pdns-recursor.rc b/extra/pdns-recursor/pdns-recursor.rc
new file mode 100644
index 000000000..992f0b086
--- /dev/null
+++ b/extra/pdns-recursor/pdns-recursor.rc
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting PowerDNS recursor"
+ ! /usr/sbin/rec_control ping > /dev/null 2>&1 && /usr/sbin/pdns_recursor --daemon
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pdns-recursor
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PowerDNS recursor"
+ rec_control quit > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pdns-recursor
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/pdns/2.9.18-default-mysql-options.patch b/extra/pdns/2.9.18-default-mysql-options.patch
new file mode 100755
index 000000000..a9048e13e
--- /dev/null
+++ b/extra/pdns/2.9.18-default-mysql-options.patch
@@ -0,0 +1,13 @@
+diff -Nur pdns-2.9.18.orig/modules/gmysqlbackend/smysql.cc pdns-2.9.18/modules/gmysqlbackend/smysql.cc
+--- pdns-2.9.18.orig/modules/gmysqlbackend/smysql.cc 2005-04-23 23:40:15.000000000 +0200
++++ pdns-2.9.18/modules/gmysqlbackend/smysql.cc 2005-07-17 10:38:35.363597586 +0200
+@@ -15,6 +15,9 @@
+ const string &password)
+ {
+ mysql_init(&d_db);
++#if MYSQL_VERSION_ID > 32349
++ mysql_options(&d_db, MYSQL_READ_DEFAULT_GROUP, "client");
++#endif
+ if (!mysql_real_connect(&d_db, host.empty() ? 0 : host.c_str(),
+ user.empty() ? 0 : user.c_str(),
+ password.empty() ? 0 : password.c_str(),
diff --git a/extra/pdns/PKGBUILD b/extra/pdns/PKGBUILD
new file mode 100644
index 000000000..9506deee3
--- /dev/null
+++ b/extra/pdns/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 115160 2011-03-17 09:56:37Z andrea $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pdns
+pkgver=2.9.22
+pkgrel=7
+pkgdesc="A modern, advanced and high performance authoritative-only nameserver"
+arch=(i686 x86_64)
+url="http://www.powerdns.com"
+license=('GPL')
+depends=('gcc-libs' 'zlib' 'postgresql-libs' 'libmysqlclient' 'sqlite3' 'libldap')
+makedepends=('boost')
+provides=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql')
+replaces=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql')
+conflicts=('pdns-ldap' 'pdns-mysql' 'pdns-sqlite' 'pdns-pgsql')
+install=pdns.install
+options=(!makeflags !libtool)
+backup=('etc/powerdns/pdns.conf')
+source=(http://downloads.powerdns.com/releases/${pkgname}-${pkgver}.tar.gz
+ 2.9.18-default-mysql-options.patch
+ pdns-2.9.22-gcc44.patch
+ pdns.rc
+ pdns.conf)
+md5sums=('8a6ff842733aca885577eb54e983a1ff'
+ '90fb32e843326d14359c508cef855929'
+ '530642273005bdabae27792098834ea6'
+ '16e2d32e9781be7afa8f1700740bcdb0'
+ 'a390ab49c4fcde205629be33bddc2e6c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/2.9.18-default-mysql-options.patch"
+ patch -Np1 -i "${srcdir}/pdns-2.9.22-gcc44.patch"
+ touch AUTHORS NEWS
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ automake --add-missing
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/powerdns \
+ --libexecdir=/usr/lib \
+ --libdir=/usr/lib/powerdns \
+ --mandir=/usr/share/man \
+ --with-modules="" \
+ --with-dynmodules="ldap pipe gmysql gpgsql gsqlite3 geo" \
+ --disable-recursor \
+ --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ rm "${pkgdir}/etc/powerdns/pdns.conf-dist"
+ install -m644 "${srcdir}/pdns.conf" "${pkgdir}/etc/powerdns/"
+ install -m755 "${srcdir}/pdns.rc" "${pkgdir}/etc/rc.d/pdns"
+}
diff --git a/extra/pdns/pdns-2.9.22-gcc44.patch b/extra/pdns/pdns-2.9.22-gcc44.patch
new file mode 100644
index 000000000..35c1c7777
--- /dev/null
+++ b/extra/pdns/pdns-2.9.22-gcc44.patch
@@ -0,0 +1,22 @@
+diff -ur pdns-2.9.22.orig/pdns/dnsparser.cc pdns-2.9.22/pdns/dnsparser.cc
+--- pdns-2.9.22.orig/pdns/dnsparser.cc 2008-11-15 22:32:46.000000000 +0200
++++ pdns-2.9.22/pdns/dnsparser.cc 2009-07-06 22:09:02.000000000 +0300
+@@ -16,6 +16,7 @@
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include <stdio.h>
+ #include "dnsparser.hh"
+ #include "dnswriter.hh"
+ #include <boost/lexical_cast.hpp>
+diff -ur pdns-2.9.22.orig/pdns/rcpgenerator.cc pdns-2.9.22/pdns/rcpgenerator.cc
+--- pdns-2.9.22.orig/pdns/rcpgenerator.cc 2008-11-15 23:20:27.000000000 +0200
++++ pdns-2.9.22/pdns/rcpgenerator.cc 2009-07-06 22:07:26.000000000 +0300
+@@ -16,6 +16,7 @@
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include <stdio.h>
+ #include "rcpgenerator.hh"
+ #include "dnsparser.hh"
+ #include "misc.hh"
diff --git a/extra/pdns/pdns.conf b/extra/pdns/pdns.conf
new file mode 100644
index 000000000..1bf24e73f
--- /dev/null
+++ b/extra/pdns/pdns.conf
@@ -0,0 +1,290 @@
+# Autogenerated configuration file template
+#################################
+# allow-axfr-ips If disabled, DO allow zonetransfers from these IP addresses
+#
+# allow-axfr-ips=
+
+#################################
+# allow-recursion List of netmasks that are allowed to recurse
+#
+allow-recursion=127.0.0.1
+
+#################################
+# allow-recursion-override Local data overrrides hosts on the internet
+#
+allow-recursion-override=yes
+
+#################################
+# cache-ttl Seconds to store packets in the PacketCache
+#
+cache-ttl=60
+
+#################################
+# chroot If set, chroot to this directory for more security
+#
+chroot=/var/empty
+
+#################################
+# config-dir Location of configuration directory (pdns.conf)
+#
+config-dir=/etc
+
+#################################
+# config-name Name of this virtual configuration - will rename the binary image
+#
+# config-name=
+
+#################################
+# control-console Debugging switch - don't use
+#
+# control-console=no
+
+#################################
+# daemon Operate as a daemon
+#
+daemon=yes
+
+#################################
+# default-soa-name name to insert in the SOA record if none set in the backend
+#
+# default-soa-name=a.misconfigured.powerdns.server
+
+#################################
+# disable-axfr Disable zonetransfers but do allow TCP queries
+#
+# disable-axfr=no
+
+#################################
+# disable-tcp Do not listen to TCP queries
+#
+# disable-tcp=no
+
+#################################
+# distributor-threads Default number of Distributor (backend) threads to start
+#
+distributor-threads=3
+
+#################################
+# fancy-records Process URL and MBOXFW records
+#
+# fancy-records=no
+
+#################################
+# guardian Run within a guardian process
+#
+guardian=yes
+
+#################################
+# launch Which backends to launch and order to query them in
+#
+#launch=
+
+#################################
+# lazy-recursion Only recurse if question cannot be answered locally
+#
+lazy-recursion=yes
+
+#################################
+# load-modules Load this module - supply absolute or relative path
+#
+# load-modules=
+
+#################################
+# local-address Local IP address to which we bind
+#
+local-address=127.0.0.1
+
+#################################
+# local-ipv6 Local IP address to which we bind
+#
+# local-ipv6=
+
+#################################
+# local-port The port on which we listen
+#
+local-port=53
+
+#################################
+# log-dns-details If PDNS should log failed update requests
+#
+#log-dns-details=off
+
+#################################
+# log-failed-updates If PDNS should log failed update requests
+#
+#log-failed-updates=off
+
+#################################
+# logfile Logfile to use
+#
+# logfile=pdns.log
+
+#################################
+# logging-facility Log under a specific facility
+#
+# logging-facility=
+
+#################################
+# loglevel Amount of logging. Higher is more. Do not set below 3
+#
+loglevel=3
+
+#################################
+# master Act as a master
+#
+# master=no
+
+#################################
+# max-queue-length Maximum queuelength before considering situation lost
+#
+# max-queue-length=5000
+
+#################################
+# max-tcp-connections Maximum number of TCP connections
+#
+# max-tcp-connections=10
+
+#################################
+# module-dir Default directory for modules
+#
+module-dir=/usr/lib/powerdns
+
+#################################
+# negquery-cache-ttl Seconds to store packets in the PacketCache
+#
+negquery-cache-ttl=60
+
+#################################
+# only-soa Make sure that no SOA serial is less than this number
+#
+# only-soa=org
+
+#################################
+# out-of-zone-additional-processing Do out of zone additional processing
+#
+# out-of-zone-additional-processing=no
+
+#################################
+# query-cache-ttl Seconds to store packets in the PacketCache
+#
+# query-cache-ttl=20
+
+#################################
+# query-logging Hint backends that queries should be logged
+#
+# query-logging=no
+
+#################################
+# queue-limit Maximum number of milliseconds to queue a query
+#
+# queue-limit=1500
+
+#################################
+# receiver-threads Number of receiver threads to launch
+#
+# receiver-threads=1
+
+#################################
+# recursive-cache-ttl Seconds to store packets in the PacketCache
+#
+# recursive-cache-ttl=10
+
+#################################
+# recursor If recursion is desired, IP address of a recursing nameserver
+#
+#recursor=
+
+#################################
+# setgid If set, change group id to this gid for more security
+#
+setgid=nobody
+
+#################################
+# setuid If set, change user id to this uid for more security
+#
+setuid=nobody
+
+#################################
+# skip-cname Do not perform CNAME indirection for each query
+#
+# skip-cname=no
+
+#################################
+# slave Act as a slave
+#
+# slave=no
+
+#################################
+# slave-cycle-interval Reschedule failed SOA serial checks once every .. seconds
+#
+# slave-cycle-interval=60
+
+#################################
+# smtpredirector Our smtpredir MX host
+#
+# smtpredirector=a.misconfigured.powerdns.smtp.server
+
+#################################
+# soa-minimum-ttl Default SOA mininum ttl
+#
+# soa-minimum-ttl=3600
+
+#################################
+# soa-serial-offset Make sure that no SOA serial is less than this number
+#
+# soa-serial-offset=0
+
+#################################
+# socket-dir Where the controlsocket will live
+#
+socket-dir=/var/run
+
+#################################
+# strict-rfc-axfrs Perform strictly rfc compliant axfrs (very slow)
+#
+# strict-rfc-axfrs=no
+
+#################################
+# urlredirector Where we send hosts to that need to be url redirected
+#
+# urlredirector=127.0.0.1
+
+#################################
+# use-logfile Use a log file
+#
+use-logfile=no
+
+#################################
+# webserver Start a webserver for monitoring
+#
+webserver=no
+
+#################################
+# webserver-address IP Address of webserver to listen on
+#
+# webserver-address=127.0.0.1
+
+#################################
+# webserver-password Password required for accessing the webserver
+#
+# webserver-password=
+
+#################################
+# webserver-port Port of webserver to listen on
+#
+# webserver-port=8081
+
+#################################
+# webserver-print-arguments If the webserver should print arguments
+#
+# webserver-print-arguments=no
+
+#################################
+# wildcard-url Process URL and MBOXFW records
+#
+# wildcard-url=no
+
+#################################
+# wildcards Honor wildcards in the database
+#
+wildcards=yes
diff --git a/extra/pdns/pdns.install b/extra/pdns/pdns.install
new file mode 100644
index 000000000..f41b36b20
--- /dev/null
+++ b/extra/pdns/pdns.install
@@ -0,0 +1,11 @@
+post_install() {
+ cat << 'EOM'
+==> PowerDNS is built without recursor now. To use the recursor,
+==> please install the pdns-recursor package and update the
+==> configuration in /etc/powerdns/recursor.conf
+EOM
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/pdns/pdns.rc b/extra/pdns/pdns.rc
new file mode 100644
index 000000000..2f143ddae
--- /dev/null
+++ b/extra/pdns/pdns.rc
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting DNS"
+ ! /usr/sbin/pdns_control ping > /dev/null 2>&1 && /usr/sbin/pdns_server --daemon
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon pdns
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping DNS"
+ pdns_control quit > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon pdns
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/pekwm/PKGBUILD b/extra/pekwm/PKGBUILD
new file mode 100644
index 000000000..76bcd5246
--- /dev/null
+++ b/extra/pekwm/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 78573 2010-04-26 19:07:35Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Eddie Lozon <almostlucky@attbi.com>
+
+pkgname=pekwm
+pkgver=0.1.12
+pkgrel=1
+pkgdesc="A small, fast, functional, and flexible window manager"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://pekwm.org/"
+depends=('gcc-libs' 'libjpeg>=7' 'libpng' 'libxft' 'libxinerama' 'libxpm'
+'libxrandr')
+backup=(etc/pekwm/config
+ etc/pekwm/vars
+ etc/pekwm/autoproperties
+ etc/pekwm/start
+ etc/pekwm/keys
+ etc/pekwm/mouse
+ etc/pekwm/menu)
+source=(http://www.pekwm.org/projects/pekwm/files/${pkgname}-${pkgver}.tar.gz
+pekwm.desktop libpng-1.4.patch)
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+# patch -p1 < ../libpng-1.4.patch || return 1
+ # Default settings:
+ # --enable-shape --enable-xinerama --enable-menus \
+ # --enable-harbour --disable-debug --disable-pedantic \
+ # --enable-xft --enable-image-xpm --enable-image-jpeg \
+ # --enable-image-png --enable-xrandr
+ ./configure --prefix=/usr --sysconfdir=/etc
+
+ make || return 1
+ make DESTDIR=${pkgdir} install
+ install -D -m644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/etc/X11/sessions/${pkgname}.desktop
+}
+# vim: ts=2 sw=2 et ft=sh
+md5sums=('1f7f9ed32cc03f565a3ad30fd6045c1f'
+ '5a78fc6653fbb0b7282ecf7f1f81e2c5'
+ '075bf1b9d32bf94780329499e4fa40e3')
diff --git a/extra/pekwm/libpng-1.4.patch b/extra/pekwm/libpng-1.4.patch
new file mode 100644
index 000000000..bc4df2c4d
--- /dev/null
+++ b/extra/pekwm/libpng-1.4.patch
@@ -0,0 +1,21 @@
+diff -Naur pekwm-0.1.11-orig/src/PImageLoaderPng.cc pekwm-0.1.11/src/PImageLoaderPng.cc
+--- pekwm-0.1.11-orig/src/PImageLoaderPng.cc 2010-01-22 01:57:08.000000000 -0500
++++ pekwm-0.1.11/src/PImageLoaderPng.cc 2010-01-22 02:00:02.000000000 -0500
+@@ -108,7 +108,7 @@
+
+ // gray -> 8 bit gray
+ if (color_type == PNG_COLOR_TYPE_GRAY && (bpp < 8)) {
+- png_set_gray_1_2_4_to_8(png_ptr);
++ png_set_expand_gray_1_2_4_to_8(png_ptr);
+ }
+
+ if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
+@@ -179,7 +179,7 @@
+
+ status = fread(sig, 1, PImageLoaderPng::PNG_SIG_BYTES, fp);
+ if (status == PImageLoaderPng::PNG_SIG_BYTES) {
+- return (png_check_sig(sig, PImageLoaderPng::PNG_SIG_BYTES) != 0);
++ return (png_sig_cmp(sig, 0, PImageLoaderPng::PNG_SIG_BYTES) == 0);
+ }
+ return false;
+ }
diff --git a/extra/pekwm/pekwm.desktop b/extra/pekwm/pekwm.desktop
new file mode 100644
index 000000000..2f59528bd
--- /dev/null
+++ b/extra/pekwm/pekwm.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Pekwm
+Comment=The pekwm window manager
+Exec=pekwm
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/extra/perl-alien-sdl/PKGBUILD b/extra/perl-alien-sdl/PKGBUILD
new file mode 100644
index 000000000..ad8557e6a
--- /dev/null
+++ b/extra/perl-alien-sdl/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 112695 2011-03-06 00:40:04Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+# This package must not by "any" arch.
+# Requires rebuild with every change to sdl-config
+
+pkgname=perl-alien-sdl
+_realname=Alien-SDL
+pkgver=1.425
+pkgrel=1
+pkgdesc="Building, finding and using SDL binaries"
+arch=(i686 x86_64)
+license=(PerlArtistic GPL)
+url="http://search.cpan.org/dist/Alien-SDL/"
+depends=(sdl=1.2.14 perl-file-sharedir perl-capture-tiny)
+makedepends=(perl-file-which perl-text-patch)
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/F/FR/FROGGS/$_realname-$pkgver.tar.gz)
+md5sums=('c6adaa35ea0779740950de36c8a8ffe2')
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+
+ # install module in vendor directories
+ perl Build.PL installdirs=vendor destdir="$pkgdir" --with-sdl-config
+
+ perl Build
+ perl Build install
+}
diff --git a/extra/perl-bit-vector/PKGBUILD b/extra/perl-bit-vector/PKGBUILD
new file mode 100644
index 000000000..cbab210ac
--- /dev/null
+++ b/extra/perl-bit-vector/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 100723 2010-11-25 17:21:16Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: K. Piche <kpiche@rogers.com>
+
+pkgname=perl-bit-vector
+_cpanname=Bit-Vector
+pkgver=7.1
+pkgrel=2
+pkgdesc='Efficient bit vector, set of integers and "big int" math library'
+arch=(i686 x86_64)
+license=('GPL' 'LGPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/${_cpanname}/"
+depends=('perl-carp-clan' 'perl>=5.10.0')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/S/ST/STBEY/${_cpanname}-${pkgver}.tar.gz)
+md5sums=('164c8574b728f6171b2a6f564fcd2e50')
+
+build() {
+ cd ${srcdir}/${_cpanname}-$pkgver
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_cpanname}-$pkgver
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/extra/perl-compress-bzip2/PKGBUILD b/extra/perl-compress-bzip2/PKGBUILD
new file mode 100644
index 000000000..fdfd5bcf3
--- /dev/null
+++ b/extra/perl-compress-bzip2/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 112695 2011-03-06 00:40:04Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=perl-compress-bzip2
+_realname=Compress-Bzip2
+pkgver=2.09
+pkgrel=1
+pkgdesc="Interface to Bzip2 compression library"
+arch=(i686 x86_64)
+license=(GPL2)
+depends=(perl bzip2)
+url='http://search.cpan.org/dist/$_realname'
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/A/AR/ARJAY/$_realname-$pkgver.tar.gz")
+md5sums=('1699fde3e86f2a036f135ae606d456bf')
+
+build() {
+ cd "$srcdir/$_realname-$pkgver"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd "$srcdir/$_realname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/perl-crypt-ssleay/PKGBUILD b/extra/perl-crypt-ssleay/PKGBUILD
new file mode 100644
index 000000000..2864851a5
--- /dev/null
+++ b/extra/perl-crypt-ssleay/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 103974 2010-12-24 20:16:07Z kevin $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-crypt-ssleay
+pkgver=0.58
+pkgrel=2
+pkgdesc="OpenSSL glue that provides LWP https support"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Crypt-SSLeay"
+license=('GPL' 'PerlArtistic')
+depends=('openssl')
+options=('!emptydirs')
+source=(http://www.cpan.org/CPAN/authors/id/N/NA/NANIS/Crypt-SSLeay-$pkgver.tar.gz)
+md5sums=('fbf3d12e58462cee00ea63239c0b13c7')
+
+build() {
+ cd "${srcdir}/Crypt-SSLeay-${pkgver}"
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/Crypt-SSLeay-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/extra/perl-dbd-mysql/PKGBUILD b/extra/perl-dbd-mysql/PKGBUILD
new file mode 100644
index 000000000..ed01cefd8
--- /dev/null
+++ b/extra/perl-dbd-mysql/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 115053 2011-03-16 15:26:25Z andrea $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=perl-dbd-mysql
+_realname=DBD-mysql
+pkgver=4.018
+pkgrel=2
+pkgdesc="Perl/CPAN DBD::mysql module for interacting with MySQL via DBD"
+arch=(i686 x86_64)
+license=('GPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('libmysqlclient' 'perl-dbi' 'perl>=5.10.0')
+makedepends=('mysql')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/${_realname}-${pkgver}.tar.gz)
+md5sums=('d1d4ee2f20910d6491d1b6216471b2f1')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/extra/perl-dbd-sqlite/PKGBUILD b/extra/perl-dbd-sqlite/PKGBUILD
new file mode 100644
index 000000000..e82203111
--- /dev/null
+++ b/extra/perl-dbd-sqlite/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 100851 2010-11-26 00:50:08Z kevin $
+# Contributor: Tom Killian <tomk@runbox.com>
+# Contributor: francois at archlinux dot org
+
+pkgname=perl-dbd-sqlite
+_cpanname=DBD-SQLite
+pkgver=1.31
+pkgrel=1
+pkgdesc="Self-contained RDBMS in a DBI driver"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/${_cpanname}"
+license=('GPL' 'PerlArtistic')
+depends=('perl-dbi>=1.61' 'sqlite3')
+makedepends=('perl-pathtools>=0.82')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/A/AD/ADAMK/${_cpanname}-${pkgver}.tar.gz)
+md5sums=('67b3575104efd606c8093bc416e3338d')
+
+build() {
+ cd "${srcdir}/${_cpanname}-${pkgver}"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_cpanname}-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/perl-dbi/PKGBUILD b/extra/perl-dbi/PKGBUILD
new file mode 100644
index 000000000..3c95327b5
--- /dev/null
+++ b/extra/perl-dbi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 105336 2011-01-07 21:29:30Z angvp $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Matt Thompson <mattt@defunct.ca>
+
+pkgname=perl-dbi
+_realname=DBI
+pkgver=1.616
+pkgrel=1
+pkgdesc="Database independent interface for Perl"
+arch=(i686 x86_64)
+license=('GPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl>=5.12.1')
+options=(!emptydirs)
+source=(http://www.cpan.org/authors/id/T/TI/TIMB/${_realname}-${pkgver}.tar.gz)
+md5sums=('799313e54a693beb635b47918458f7c4')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+}
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/perl-digest-nilsimsa/PKGBUILD b/extra/perl-digest-nilsimsa/PKGBUILD
new file mode 100644
index 000000000..31728572d
--- /dev/null
+++ b/extra/perl-digest-nilsimsa/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 100551 2010-11-24 02:25:52Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-digest-nilsimsa
+_realname=Digest-Nilsimsa
+pkgver=0.06
+pkgrel=6
+pkgdesc="Perl version of Nilsimsa code."
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(http://www.cpan.org/authors/id/V/VI/VIPUL/${_realname}-${pkgver}.tar.gz)
+replaces=('digest-nilsimsa')
+provides=('digest-nilsimsa')
+md5sums=('08e940bd7f5d1167ef3fd1aa7ce234d7')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/perl-digest-sha1/PKGBUILD b/extra/perl-digest-sha1/PKGBUILD
new file mode 100644
index 000000000..448bfb663
--- /dev/null
+++ b/extra/perl-digest-sha1/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 100547 2010-11-24 02:18:32Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-digest-sha1
+_realname=Digest-SHA1
+pkgver=2.13
+pkgrel=1
+pkgdesc="Perl interface to the SHA-1 Algorithm"
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(http://www.cpan.org/authors/id/G/GA/GAAS/${_realname}-${pkgver}.tar.gz)
+replaces=('digest-sha1')
+provides=('digest-sha1')
+md5sums=('bd22388f268434f2b24f64e28bf1aa35')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/perl-event/PKGBUILD b/extra/perl-event/PKGBUILD
new file mode 100644
index 000000000..a2c36f9aa
--- /dev/null
+++ b/extra/perl-event/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 100545 2010-11-24 01:37:38Z kevin $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+# Contributor: François Charette <francois.archlinux.org>
+
+pkgname=perl-event
+_srcname=Event
+pkgver=1.13
+pkgrel=3
+pkgdesc="Framework for GUI events"
+arch=('i686' 'x86_64')
+license=('PerlArtistic' 'GPL')
+url="http://search.cpan.org/dist/${_srcname}/"
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/J/JP/JPRIT/${_srcname}-${pkgver}.tar.gz)
+md5sums=('88cf5bb6b4b06e016072a5ff2ff8fa1a')
+
+build() {
+ cd "${srcdir}/${_srcname}-${pkgver}"
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_srcname}-${pkgver}"
+
+ make install DESTDIR="${pkgdir}"
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/extra/perl-fcgi/PKGBUILD b/extra/perl-fcgi/PKGBUILD
new file mode 100644
index 000000000..c658fd3b9
--- /dev/null
+++ b/extra/perl-fcgi/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 101395 2010-11-29 01:59:43Z kevin $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: François Charette <firmicus ατ gmx δοτ net>
+
+pkgname=perl-fcgi
+pkgver=0.71
+pkgrel=3
+pkgdesc="Fast CGI"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/FCGI"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs')
+source=(http://www.cpan.org/CPAN/authors/id/F/FL/FLORA/FCGI-${pkgver}.tar.gz)
+md5sums=('26bc4ea53ccc9c9c16695e88e46a1cfb')
+
+build() {
+ cd "${srcdir}/FCGI-${pkgver}"
+
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/FCGI-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/extra/perl-html-parser/PKGBUILD b/extra/perl-html-parser/PKGBUILD
new file mode 100644
index 000000000..98e5bdb51
--- /dev/null
+++ b/extra/perl-html-parser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 100913 2010-11-26 16:20:58Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+# Contributor: Firmicus <francois.archlinux.org>
+
+pkgname=perl-html-parser
+_realname=HTML-Parser
+pkgver=3.68
+pkgrel=1
+pkgdesc="Perl HTML parser class"
+arch=('i686' 'x86_64')
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl-html-tagset' 'perl>=5.12.1')
+options=(!emptydirs)
+source=(http://www.cpan.org/authors/id/G/GA/GAAS/${_realname}-${pkgver}.tar.gz)
+md5sums=('5550b2da7aa94341f1e8a17a4ac20c68')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/perl-libintl-perl/PKGBUILD b/extra/perl-libintl-perl/PKGBUILD
new file mode 100644
index 000000000..b21c6bb36
--- /dev/null
+++ b/extra/perl-libintl-perl/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 100859 2010-11-26 01:58:35Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=perl-libintl-perl
+_realname=libintl-perl
+pkgver=1.20
+pkgrel=2
+pkgdesc="Perl Module: Localization support"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('gettext' 'perl>=5.10.0')
+options=(!emptydirs)
+source=(http://www.cpan.org/authors/id/G/GU/GUIDO/${_realname}-$pkgver.tar.gz)
+md5sums=('cb36f58a7d2e15974f25b35381548b1b')
+
+build() {
+ cd ${srcdir}/${_realname}-$pkgver
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-$pkgver
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/extra/perl-locale-gettext/PKGBUILD b/extra/perl-locale-gettext/PKGBUILD
new file mode 100644
index 000000000..8b8cff5af
--- /dev/null
+++ b/extra/perl-locale-gettext/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 103982 2010-12-24 20:55:26Z kevin $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+# Contributor: Paul Mattal <paul@archlinux.org>
+
+pkgname=perl-locale-gettext
+_realname=gettext
+pkgver=1.05
+pkgrel=6
+pkgdesc="Permits access from Perl to the gettext() family of functions"
+arch=('i686' 'x86_64')
+license=('GPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('gettext' 'perl>=5.10.0')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/P/PV/PVANDRY/${_realname}-${pkgver}.tar.gz
+ compatibility-with-POSIX-module.patch)
+md5sums=('f3d3f474a1458f37174c410dfef61a46'
+ '854302f34d01a2f8ae739187788973dd')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/compatibility-with-POSIX-module.patch
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+
+ # remove perllocal.pod and .packlist
+ find "${pkgdir}" -name perllocal.pod -delete
+ find "${pkgdir}" -name .packlist -delete
+}
diff --git a/extra/perl-locale-gettext/compatibility-with-POSIX-module.patch b/extra/perl-locale-gettext/compatibility-with-POSIX-module.patch
new file mode 100644
index 000000000..ad675516b
--- /dev/null
+++ b/extra/perl-locale-gettext/compatibility-with-POSIX-module.patch
@@ -0,0 +1,10 @@
+--- a/gettext.pm 2005-05-31 20:11:16.000000000 -0700
++++ b/gettext.pm 2009-10-07 12:39:42.000000000 -0700
+@@ -32,6 +32,7 @@
+ =cut
+
+ use Carp;
++use POSIX qw(:locale_h);
+
+ require Exporter;
+ require DynaLoader;
diff --git a/extra/perl-net-dns/PKGBUILD b/extra/perl-net-dns/PKGBUILD
new file mode 100644
index 000000000..b34bed718
--- /dev/null
+++ b/extra/perl-net-dns/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 100863 2010-11-26 02:27:59Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-net-dns
+_realname=Net-DNS
+pkgver=0.66
+pkgrel=3
+pkgdesc="Perl Module: Interface to the DNS resolver."
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl-digest-hmac' 'perl-net-ip' 'perl>=5.10.0')
+source=(http://www.cpan.org/authors/id/O/OL/OLAF/${_realname}-$pkgver.tar.gz)
+options=(!emptydirs)
+
+build() {
+ cd $srcdir/${_realname}-${pkgver}
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd $srcdir/${_realname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
+# vim: ts=2 sw=2 et ft=sh
+md5sums=('1635d876324e3c2f6e277d5778bfe94c')
diff --git a/extra/perl-net-ssleay/PKGBUILD b/extra/perl-net-ssleay/PKGBUILD
new file mode 100644
index 000000000..1c3b17d57
--- /dev/null
+++ b/extra/perl-net-ssleay/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 102842 2010-12-12 08:25:28Z angvp $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=perl-net-ssleay
+_cpanname=Net-SSLeay
+pkgver=1.36
+pkgrel=4
+pkgdesc="Perl extension for using OpenSSL"
+arch=('i686' 'x86_64')
+license=('custom:BSD')
+url="http://search.cpan.org/dist/${_cpanname}/"
+depends=('perl' 'openssl')
+options=(!emptydirs)
+replaces=('net-ssleay')
+provides=('net-ssleay')
+source=(http://www.cpan.org/authors/id/F/FL/FLORA/${_cpanname}-${pkgver}.tar.gz)
+md5sums=('54061638720dd6a325395331c77f21d8')
+
+build() {
+ cd ${srcdir}/${_cpanname}-${pkgver}
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL -- INSTALLDIRS=vendor
+ make
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+
+ install -D -m644 README ${pkgdir}/usr/share/licenses/${pkgname}/README
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/perl-net-upnp/PKGBUILD b/extra/perl-net-upnp/PKGBUILD
new file mode 100644
index 000000000..9e77c0cb0
--- /dev/null
+++ b/extra/perl-net-upnp/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 102845 2010-12-12 08:32:04Z angvp $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Drew Gilbert <gilbert dot drew at gmail dot com>
+
+pkgname=perl-net-upnp
+pkgver=1.4.2
+pkgrel=2
+pkgdesc="Perl Module UPnP"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/~skonno/Net-UPnP-1.4.2/"
+license=('BSD' 'PerlArtistic')
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/S/SK/SKONNO/Net-UPnP-${pkgver}.tar.gz")
+depends=('perl')
+md5sums=('bc009fd76b565df40a70aca49af82a7d')
+
+build() {
+ cd "${srcdir}/Net-UPnP-${pkgver}"
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make install DESTDIR="${pkgdir}"
+
+ find ${pkgdir} -name '.packlist' -delete
+ find ${pkgdir} -name '*.pod' -delete
+}
diff --git a/extra/perl-netaddr-ip/PKGBUILD b/extra/perl-netaddr-ip/PKGBUILD
new file mode 100644
index 000000000..adb0c7671
--- /dev/null
+++ b/extra/perl-netaddr-ip/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 100919 2010-11-26 17:02:08Z kevin $
+# Maintainer: Dale Blount <dale@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgname=perl-netaddr-ip
+_realname=NetAddr-IP
+pkgver=4.037
+pkgrel=1
+pkgdesc="Perl module to manage IP addresses and subnets"
+arch=(i686 x86_64)
+license=('PerlArtistic' 'GPL')
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+url="http://search.cpan.org/dist/${_realname}/"
+source=(http://search.cpan.org/CPAN/authors/id/M/MI/MIKER/${_realname}-${pkgver}.tar.gz)
+md5sums=('d966eac6b5941af3f7c1fad839569cb4')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/extra/perl-sdl/PKGBUILD b/extra/perl-sdl/PKGBUILD
new file mode 100644
index 000000000..68d52a69d
--- /dev/null
+++ b/extra/perl-sdl/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 112695 2011-03-06 00:40:04Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=perl-sdl
+pkgver=2.531
+pkgrel=1
+pkgdesc="Simple DirectMedia Layer for Perl"
+arch=(i686 x86_64)
+license=(LGPL)
+url="http://sdl.perl.org"
+depends=(perl-alien-sdl perl-tie-simple
+ sdl_{net,ttf,image,mixer,gfx,pango} mesa smpeg)
+#makedepends=(perl-yaml)
+options=('!emptydirs')
+replaces=(sdl_perl)
+conflicts=(sdl_perl)
+provides=("sdl_perl=$pkgver")
+source=(http://search.cpan.org/CPAN/authors/id/G/GA/GARU/SDL-$pkgver.tar.gz)
+md5sums=('ed39c87ae685d3a933705a2ea82a9e18')
+
+package() {
+ cd "$srcdir/SDL-$pkgver"
+
+ # install module in vendor directories
+ perl Build.PL installdirs=vendor destdir="$pkgdir"
+
+ perl Build
+ perl Build install
+}
diff --git a/extra/perl-template-toolkit/PKGBUILD b/extra/perl-template-toolkit/PKGBUILD
new file mode 100644
index 000000000..49d2d4540
--- /dev/null
+++ b/extra/perl-template-toolkit/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Firmicus <francois.archlinux.org>
+# Contributor: Tom Killian <tomk@runbox.com>
+# Contributor: FJ <joostef@gmail.com>
+
+pkgname=perl-template-toolkit
+_realname=Template-Toolkit
+pkgver=2.22
+pkgrel=3
+pkgdesc="Perl template processing system"
+arch=(i686 x86_64)
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl-appconfig' 'perl>=5.10.0')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/A/AB/ABW/${_realname}-$pkgver.tar.gz)
+md5sums=('d98277f6420e5da6b93d99a8db2b3934')
+
+build() {
+ cd ${srcdir}/${_realname}-$pkgver
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+package() {
+ cd ${srcdir}/${_realname}-$pkgver
+ make install DESTDIR=${startdir}/pkg
+
+ # remove perllocal.pod and .packlist
+ find ${startdir}/pkg -name perllocal.pod -delete
+ find ${startdir}/pkg -name .packlist -delete
+}
diff --git a/extra/perl-term-readkey/PKGBUILD b/extra/perl-term-readkey/PKGBUILD
new file mode 100644
index 000000000..5380fffe6
--- /dev/null
+++ b/extra/perl-term-readkey/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 100930 2010-11-26 17:19:14Z kevin $
+# Maintainer: kevin <kevin@archlinux.org>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgname=perl-term-readkey
+_realname=TermReadKey
+pkgver=2.30.01
+pkgrel=3
+pkgdesc="Provides simple control over terminal driver modes"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('perl>=5.10.0' 'glibc')
+url="http://search.cpan.org/~stsi/${_realname}/"
+source=(http://search.cpan.org/CPAN/authors/id/S/ST/STSI/${_realname}-$pkgver.tar.gz)
+options=('!emptydirs')
+md5sums=('6c099eddb76ec9b92179f1ed929be71a')
+
+build()
+{
+ cd ${srcdir}/TermReadKey-$pkgver
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/TermReadKey-$pkgver
+ make DESTDIR=${pkgdir} install
+ install -d ${pkgdir}/usr/share/licenses/$pkgname/
+ head -7 README > ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/extra/perl-text-iconv/PKGBUILD b/extra/perl-text-iconv/PKGBUILD
new file mode 100644
index 000000000..c69bef274
--- /dev/null
+++ b/extra/perl-text-iconv/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 100932 2010-11-26 17:44:01Z kevin $
+# Maintainer:
+# Contributor: Francois Charette <firmicus@gmx.net>
+
+pkgname=perl-text-iconv
+_realname=Text-Iconv
+pkgver=1.7
+pkgrel=5
+pkgdesc="Interface to iconv codeset conversion"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/${_realname}/"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/M/MP/MPIOTR/${_realname}-${pkgver}.tar.gz)
+md5sums=('81b26e069eaebb084e91ea3c009b67ae')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/perl-time-hires/PKGBUILD b/extra/perl-time-hires/PKGBUILD
new file mode 100644
index 000000000..779b5c9af
--- /dev/null
+++ b/extra/perl-time-hires/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 102848 2010-12-12 08:36:02Z angvp $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: mezcal <fila at pruda dot com>
+
+pkgname=perl-time-hires
+pkgver=1.9721
+pkgrel=3
+pkgdesc="Perl module: high resolution time, sleep, and alarm"
+arch=('i686' 'x86_64')
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/Time-HiRes/"
+depends=('perl')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/J/JH/JHI/Time-HiRes-${pkgver}.tar.gz)
+md5sums=('bf09911a36b9481537c8e0d28fbb3aaf')
+
+build() {
+ cd "${srcdir}/Time-HiRes-${pkgver}"
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+ make install DESTDIR="${pkgdir}"
+}
diff --git a/extra/perl-tk/PKGBUILD b/extra/perl-tk/PKGBUILD
new file mode 100644
index 000000000..3d779063b
--- /dev/null
+++ b/extra/perl-tk/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 102852 2010-12-12 10:35:16Z remy $
+# Maintainer: François Charette <francois ατ archlinux δοτ org>
+# Contributor: Jason Chu <jchu@xentac.net>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+
+pkgname=perl-tk
+_cpanname=Tk
+pkgver=804.029
+pkgrel=2
+pkgdesc="A graphical user interface toolkit for Perl"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/${_cpanname}"
+license=('PerlArtistic' 'GPL' 'custom')
+depends=('libx11' 'libpng' 'libjpeg' 'tk' 'perl')
+options=('!emptydirs')
+replaces=('perltk')
+provides=('perltk')
+source=(http://www.cpan.org/authors/id/S/SR/SREZIC/${_cpanname}-${pkgver}.tar.gz)
+md5sums=('f4aebe6fcdb309a8480514f2ccf8117c')
+
+build() {
+ cd $srcdir/${_cpanname}-$pkgver
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ /bin/chmod -R u+w *
+ # The Xlib header is wrong...
+ sed -i 's/XKeycodeToKeysym\(.*\)unsigned int/XKeycodeToKeysym\1KeyCode/' pTk/Xlib.h
+ make
+}
+
+package() {
+ cd $srcdir/${_cpanname}-$pkgver
+ make install DESTDIR=$pkgdir
+ find $pkgdir -name '.packlist' -delete
+ find $pkgdir -name '*.pod' -delete
+
+ # license
+ install -D -m644 pTk/license.terms \
+ ${startdir}/pkg/usr/share/licenses/${pkgname}/tk.license
+ install -D -m644 pTk/Tix.license \
+ ${startdir}/pkg/usr/share/licenses/${pkgname}/tix.license
+}
diff --git a/extra/perl-unicode-string/PKGBUILD b/extra/perl-unicode-string/PKGBUILD
new file mode 100644
index 000000000..8df72bbfe
--- /dev/null
+++ b/extra/perl-unicode-string/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 101387 2010-11-29 01:27:16Z kevin $
+# Maintainer: James Rayner <iphitus@gmail.com>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+
+pkgname=perl-unicode-string
+_realname=Unicode-String
+pkgver=2.09
+pkgrel=5
+pkgdesc="String of Unicode characters for perl (UCS2/UTF16)"
+arch=('i686' 'x86_64')
+license=('PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/${_realname}-${pkgver}.tar.gz)
+md5sums=('553e68e603723bf7c631f8701ab0d678')
+
+build() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ # in stall module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-${pkgver}
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+}
diff --git a/extra/perl-xml-parser/PKGBUILD b/extra/perl-xml-parser/PKGBUILD
new file mode 100644
index 000000000..aef91068e
--- /dev/null
+++ b/extra/perl-xml-parser/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 101389 2010-11-29 01:30:43Z kevin $
+# Maintainer:
+# Contributor: firmicus <francois@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: herb <hrose@archlinux.org>
+
+pkgname=perl-xml-parser
+_realname=XML-Parser
+pkgver=2.40
+pkgrel=2
+pkgdesc="Expat-based XML parser module for perl"
+arch=('i686' 'x86_64')
+license=('GPL' 'PerlArtistic')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl' 'expat')
+replaces=('perlxml')
+provides=("perlxml=${pkgver}")
+options=('!emptydirs')
+source=("http://search.cpan.org/CPAN/authors/id/C/CH/CHORNY/${_realname}-${pkgver}.tar.gz")
+md5sums=('c66e9adba003d0667cc40115ccd837a5')
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make install DESTDIR="${pkgdir}"
+
+ # remove perllocal.pod and .packlist.
+ find "${pkgdir}" -name perllocal.pod -delete
+ find "${pkgdir}" -name .packlist -delete
+}
diff --git a/extra/perl-yaml-syck/PKGBUILD b/extra/perl-yaml-syck/PKGBUILD
new file mode 100644
index 000000000..5a2695d2a
--- /dev/null
+++ b/extra/perl-yaml-syck/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 101391 2010-11-29 01:38:44Z kevin $
+# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman
+# Maintainer: kevin <kevin@archlinux.org>
+
+pkgname=perl-yaml-syck
+_realname=YAML-Syck
+pkgver=1.17
+pkgrel=1
+pkgdesc="Fast, lightweight YAML loader and dumper"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl>=5.10.0')
+options=('!emptydirs')
+source=(http://www.cpan.org/authors/id/A/AV/AVAR/${_realname}-$pkgver.tar.gz)
+md5sums=('f788529ad4b2c2fd037ccdfd5e7a88ab')
+
+build() {
+ cd ${srcdir}/${_realname}-$pkgver
+
+ # install module in vendor directories.
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${_realname}-$pkgver
+ make install DESTDIR=${pkgdir}
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+
+ # license.
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/phonon-gstreamer/PKGBUILD b/extra/phonon-gstreamer/PKGBUILD
new file mode 100644
index 000000000..0b4ca11d0
--- /dev/null
+++ b/extra/phonon-gstreamer/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 107146 2011-01-21 18:57:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=phonon-gstreamer
+pkgver=4.4.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://phonon.kde.org"
+pkgdesc="Phonon GStreamer backend"
+license=('LGPL')
+depends=('gstreamer0.10-base-plugins')
+makedepends=('cmake' 'automoc4' 'phonon' 'mesa')
+provides=('phonon-backend')
+source=("http://download.kde.org/stable/phonon/phonon-backend-gstreamer/${pkgver}/src/phonon-backend-gstreamer-${pkgver}.tar.bz2")
+md5sums=('fa313a77db3da9df20bc8991352378cb')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../phonon-backend-gstreamer-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/phonon-vlc/PKGBUILD b/extra/phonon-vlc/PKGBUILD
new file mode 100644
index 000000000..cd6309f45
--- /dev/null
+++ b/extra/phonon-vlc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 107138 2011-01-21 18:51:32Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=phonon-vlc
+pkgver=0.3.2
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://phonon.kde.org"
+pkgdesc="Phonon VLC backend"
+license=('LGPL')
+depends=('vlc')
+makedepends=('cmake' 'automoc4' 'phonon')
+provides=('phonon-backend')
+source=("http://download.kde.org/stable/phonon/phonon-backend-vlc/${pkgver}/src/phonon-backend-vlc-${pkgver}.tar.bz2")
+md5sums=('40076298deb89a1f2fd7f43c95e344fb')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../phonon-backend-vlc-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/phonon-xine/PKGBUILD b/extra/phonon-xine/PKGBUILD
new file mode 100644
index 000000000..2d4dccfb1
--- /dev/null
+++ b/extra/phonon-xine/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id$
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=phonon-xine
+pkgver=4.4.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://phonon.kde.org"
+pkgdesc="Phonon Xine backend"
+license=('LGPL')
+depends=('xine-lib')
+makedepends=('cmake' 'automoc4' 'phonon')
+provides=('phonon-backend')
+source=("http://download.kde.org/stable/phonon/phonon-backend-xine/${pkgver}/src/phonon-backend-xine-${pkgver}.tar.bz2")
+md5sums=('b127104e67538e573adeed3b2fb3bf55')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../phonon-backend-xine-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/phonon/PKGBUILD b/extra/phonon/PKGBUILD
new file mode 100644
index 000000000..e93c1dcde
--- /dev/null
+++ b/extra/phonon/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 116776 2011-03-25 20:41:06Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=phonon
+pkgver=4.5.0
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://phonon.kde.org"
+license=('LGPL')
+pkgdesc="The multimedia framework for KDE4"
+depends=('qt' 'phonon-backend' 'libpulse')
+optdepends=('pulseaudio: PulseAudio support')
+makedepends=('cmake' 'automoc4' 'pulseaudio')
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('32f8d388c18fde2e23dea7bb103f9713')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DWITH_QZeitgeist=OFF
+ make
+}
+
+package(){
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/php-apc/PKGBUILD b/extra/php-apc/PKGBUILD
new file mode 100644
index 000000000..74b579641
--- /dev/null
+++ b/extra/php-apc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 105850 2011-01-13 11:54:50Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=php-apc
+pkgver=3.1.7
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='A free, open, and robust framework for caching and optimizing PHP intermediate code'
+url='http://pecl.php.net/package/APC'
+depends=('php')
+license="PHP"
+source=("http://pecl.php.net/get/APC-${pkgver}.tgz")
+backup=('etc/php/conf.d/apc.ini')
+md5sums=('94239866e5d1b90e02675e988a5cbad4')
+
+build() {
+ cd $srcdir/APC-$pkgver
+ phpize
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/APC-$pkgver
+ make INSTALL_ROOT=$pkgdir install
+ echo ';extension=apc.so' > apc.ini
+ install -D -m644 apc.ini $pkgdir/etc/php/conf.d/apc.ini
+ install -D -m644 apc.php $pkgdir/usr/share/php-apc/apc.php
+ install -D -m644 INSTALL $pkgdir/usr/share/doc/php-apc/install.txt
+}
diff --git a/extra/php-suhosin/PKGBUILD b/extra/php-suhosin/PKGBUILD
new file mode 100644
index 000000000..a3173beaa
--- /dev/null
+++ b/extra/php-suhosin/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 86069 2010-07-25 11:35:16Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=php-suhosin
+pkgver=0.9.32.1
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='An advanced protection system for PHP installations'
+url='http://www.hardened-php.net/suhosin/'
+license='PHP'
+source=("http://download.suhosin.org/suhosin-${pkgver}.tar.gz")
+depends=('php')
+conflicts=('php-suhosin-extension')
+replaces=('php-suhosin-extension')
+backup=('etc/php/conf.d/suhosin.ini')
+md5sums=('26a86f0f684a656c3e789e3eb4ec1db3')
+
+build() {
+ cd ${srcdir}/suhosin-${pkgver}
+ phpize
+ ./configure --prefix=/usr --enable-suhosin
+ make
+}
+
+package() {
+ cd ${srcdir}/suhosin-${pkgver}
+ make INSTALL_ROOT=${pkgdir} install
+ # disable by default
+ sed -i 's|extension = suhosin.so|;extension=suhosin.so|g' suhosin.ini
+ install -D -m644 suhosin.ini ${pkgdir}/etc/php/conf.d/suhosin.ini
+}
diff --git a/extra/php/PKGBUILD b/extra/php/PKGBUILD
new file mode 100644
index 000000000..5c2531f8d
--- /dev/null
+++ b/extra/php/PKGBUILD
@@ -0,0 +1,380 @@
+# $Id: PKGBUILD 115705 2011-03-19 15:53:37Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=php
+pkgname=('php'
+ 'php-cgi'
+ 'php-apache'
+ 'php-fpm'
+ 'php-embed'
+ 'php-pear'
+ 'php-curl'
+ 'php-enchant'
+ 'php-gd'
+ 'php-gmp'
+ '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.6
+pkgrel=1
+_suhosinver=${pkgver}-0.9.10
+arch=('i686' 'x86_64')
+license=('PHP')
+url='http://www.php.net'
+makedepends=('apache' 'imap' 'postgresql-libs' 'mysql' 'libldap' 'postfix'
+ 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' 'freetds'
+ 'libmcrypt' 'tidyhtml' 'aspell' 'libtool' 'libpng' 'libjpeg' 'icu'
+ 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp' 'freetype2')
+source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2"
+ "suhosin-patch-${_suhosinver}.patch.gz"
+ 'php.ini.patch' 'apache.conf' 'rc.d.php-fpm' 'php-fpm.conf.in.patch'
+ 'logrotate.d.php-fpm')
+md5sums=('2286f5a82a6e8397955a0025c1c2ad98'
+ 'fff1a38877142f3ae6036dbe5a85d0a6'
+ '39eaa70d276fc3d45d6bcf6cd5ae1106'
+ '96ca078be6729b665be8a865535a97bf'
+ 'b136a184dd055c559a03eb8bac562a3c'
+ 'd50ff349da08110a7cc8c691ce2d0423'
+ '07c4e412909ac65a44ec90e7a2c4bade')
+
+build() {
+ # ldap-sasl does not compile with --as-needed
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+ export LDFLAGS="${LDFLAGS//,--as-needed}"
+
+ 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' 'openssl')
+ replaces=('php-fileinfo')
+ provides=('php-fileinfo')
+ conflicts=('php-fileinfo')
+ 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/{curl,enchant,gd,gmp,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so
+}
+
+package_php-cgi() {
+ pkgdesc='CGI and FCGI SAPI for PHP'
+ depends=('php' 'pcre' 'libxml2')
+
+ 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' 'pcre' 'libxml2')
+ 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}/var/run/php-fpm
+ install -d -m755 ${pkgdir}/etc/php/fpm.d
+}
+
+package_php-embed() {
+ pkgdesc='Embed SAPI for PHP'
+ depends=('php' 'pcre' 'libxml2')
+
+ 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' 'bash')
+ 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-curl() {
+ depends=('php' 'curl')
+ pkgdesc='curl module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/curl.so ${pkgdir}/usr/lib/php/modules/curl.so
+}
+
+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-gmp() {
+ depends=('php' 'gmp')
+ pkgdesc='gmp module for PHP'
+ install -D -m755 ${srcdir}/build-php/modules/gmp.so ${pkgdir}/usr/lib/php/modules/gmp.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' 'libtool')
+ 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/extra/php/apache.conf b/extra/php/apache.conf
new file mode 100644
index 000000000..86344c803
--- /dev/null
+++ b/extra/php/apache.conf
@@ -0,0 +1,9 @@
+# Required modules: dir_module, php5_module
+
+<IfModule dir_module>
+ <IfModule php5_module>
+ DirectoryIndex index.php index.html
+ AddHandler application/x-httpd-php .php
+ AddHandler application/x-httpd-php-source .phps
+ </IfModule>
+</IfModule> \ No newline at end of file
diff --git a/extra/php/logrotate.d.php-fpm b/extra/php/logrotate.d.php-fpm
new file mode 100644
index 000000000..7a1ba2597
--- /dev/null
+++ b/extra/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/extra/php/php-fpm.conf.in.patch b/extra/php/php-fpm.conf.in.patch
new file mode 100644
index 000000000..93c62430a
--- /dev/null
+++ b/extra/php/php-fpm.conf.in.patch
@@ -0,0 +1,80 @@
+--- sapi/fpm/php-fpm.conf.in 2010-12-11 08:31:47.695294987 +0100
++++ sapi/fpm/php-fpm.conf.in 2010-12-11 08:31:55.907812237 +0100
+@@ -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@
+@@ -93,7 +93,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)
+@@ -112,9 +113,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
+@@ -154,23 +155,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
+@@ -264,7 +265,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/extra/php/php.ini.patch b/extra/php/php.ini.patch
new file mode 100644
index 000000000..356e190b4
--- /dev/null
+++ b/extra/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/extra/php/rc.d.php-fpm b/extra/php/rc.d.php-fpm
new file mode 100644
index 000000000..35cf35652
--- /dev/null
+++ b/extra/php/rc.d.php-fpm
@@ -0,0 +1,136 @@
+#!/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
+
+}
+
+[ -d /var/run/php-fpm ] || install -d -m755 /var/run/php-fpm
+
+case "$1" in
+ start)
+ 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)
+ 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)
+ 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/extra/php/suhosin-patch-5.3.6-0.9.10.patch.gz b/extra/php/suhosin-patch-5.3.6-0.9.10.patch.gz
new file mode 100644
index 000000000..7167ce2d0
--- /dev/null
+++ b/extra/php/suhosin-patch-5.3.6-0.9.10.patch.gz
Binary files differ
diff --git a/extra/physfs/PKGBUILD b/extra/physfs/PKGBUILD
new file mode 100644
index 000000000..0f1c90102
--- /dev/null
+++ b/extra/physfs/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 1214 2009-08-14 01:36:33Z dgriffiths $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=physfs
+pkgver=2.0.2
+pkgrel=1
+pkgdesc="A library to provide abstract access to various archives"
+arch=('i686' 'x86_64')
+url="http://icculus.org/physfs/"
+license=('ZLIB')
+depends=('zlib' 'readline')
+makedepends=('cmake' 'doxygen')
+source=(http://icculus.org/physfs/downloads/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4e8927c3d30279b03e2592106eb9184a')
+sha1sums=('2d3d3cc819ad26542d34451f44050b85635344d0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ export CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DPHYSFS_BUILD_TEST=OFF -DPHYSFS_BUILD_WX_TEST=OFF
+ make all docs
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}"/usr/share/{doc/physfs,man/man3}
+ install -m644 docs/html/* "${pkgdir}/usr/share/doc/physfs"
+ install -m644 docs/man/man3/* "${pkgdir}/usr/share/man/man3"
+
+ for i in author Deinit description extension Free Init major Malloc minor opaque patch Realloc url ; do
+ mv "${pkgdir}/usr/share/man/man3/$i.3" "${pkgdir}/usr/share/man/man3/PHYSFS_$i.3"
+ done
+
+ install -D -m644 LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/pidgin-encryption/PKGBUILD b/extra/pidgin-encryption/PKGBUILD
new file mode 100644
index 000000000..d48c99c56
--- /dev/null
+++ b/extra/pidgin-encryption/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 79796 2010-05-07 19:39:52Z ibiru $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Dan McGee <dan@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=pidgin-encryption
+pkgver=3.1
+pkgrel=1
+pkgdesc="A Pidgin plugin providing transparent RSA encryption using NSS"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://pidgin-encrypt.sourceforge.net/"
+depends=('pidgin' 'nss')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/pidgin-encrypt/$pkgname-$pkgver.tar.gz)
+md5sums=('d839eec602c21f913b32b742dc512f4b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr --disable-static
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/pidgin-encryption/fix_header_escaping.patch b/extra/pidgin-encryption/fix_header_escaping.patch
new file mode 100644
index 000000000..84df67b19
--- /dev/null
+++ b/extra/pidgin-encryption/fix_header_escaping.patch
@@ -0,0 +1,64 @@
+--- pidgin-encryption-3.0.orig/encrypt.c 2007-05-06 23:37:55.000000000 -0400
++++ pidgin-encryption-3.0.new/encrypt.c 2009-11-22 22:28:34.052010351 -0500
+@@ -1114,21 +1114,21 @@ static void PE_headers_init() {
+ notify_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
+
+ g_hash_table_insert(header_table, g_strdup("prpl-toc"),
+- g_strdup("*** Encrypted with the Gaim-Encryption plugin <A HREF=\""));
++ g_strdup("--- Encrypted with the Gaim-Encryption plugin <A HREF=\""));
+ g_hash_table_insert(footer_table, g_strdup("prpl-toc"),
+ g_strdup("\"></A>"));
+ g_hash_table_insert(notify_table, g_strdup("prpl-toc"),
+ g_strdup("<A HREF=\"Gaim-Encryption Capable\"></A>"));
+
+ g_hash_table_insert(header_table, g_strdup("prpl-oscar"),
+- g_strdup("*** Encrypted with the Gaim-Encryption plugin <A HREF=\""));
++ g_strdup("--- Encrypted with the Gaim-Encryption plugin <A HREF=\""));
+ g_hash_table_insert(footer_table, g_strdup("prpl-oscar"),
+ g_strdup("\"></A>"));
+ g_hash_table_insert(notify_table, g_strdup("prpl-oscar"),
+ g_strdup("<A HREF=\"Gaim-Encryption Capable\"></A>"));
+
+ g_hash_table_insert(header_table, g_strdup("prpl-aim"),
+- g_strdup("*** Encrypted with the Gaim-Encryption plugin <A HREF=\""));
++ g_strdup("--- Encrypted with the Gaim-Encryption plugin <A HREF=\""));
+ g_hash_table_insert(footer_table, g_strdup("prpl-aim"),
+ g_strdup("\"></A>"));
+ g_hash_table_insert(notify_table, g_strdup("prpl-aim"),
+@@ -1136,7 +1136,7 @@ static void PE_headers_init() {
+
+ /* If jabber stops stripping HTML, we can go back to these headers */
+ /* g_hash_table_insert(header_table, g_strdup("prpl-jabber"), */
+-/* g_strdup("*** Encrypted with the Gaim-Encryption plugin <A HREF='")); */
++/* g_strdup("--- Encrypted with the Gaim-Encryption plugin <A HREF='")); */
+ /* g_hash_table_insert(footer_table, g_strdup("prpl-jabber"), */
+ /* g_strdup("'></A>")); */
+ /* g_hash_table_insert(notify_table, g_strdup("prpl-jabber"), */
+@@ -1144,22 +1144,22 @@ static void PE_headers_init() {
+
+
+ g_hash_table_insert(header_table, g_strdup("prpl-jabber"),
+- g_strdup("*** Encrypted with the Gaim-Encryption plugin "));
++ g_strdup("--- Encrypted with the Gaim-Encryption plugin "));
+ g_hash_table_insert(footer_table, g_strdup("prpl-jabber"),
+ g_strdup(" "));
+ g_hash_table_insert(notify_table, g_strdup("prpl-jabber"),
+ g_strdup("<A HREF='Gaim-Encryption Capable'> </A>"));
+
+- header_default = g_strdup("*** Encrypted :");
++ header_default = g_strdup("--- Encrypted :");
+ }
+
+-/* #define CRYPT_HEADER "*** Encrypted with the Gaim-Encryption plugin <A HREF=\"" */
++/* #define CRYPT_HEADER "--- Encrypted with the Gaim-Encryption plugin <A HREF=\"" */
+ /* #define CRYPT_FOOTER "\"></A>" */
+ /* #define CRYPT_NOTIFY_HEADER "<A HREF=\"Gaim-Encryption Capable\"></A>" */
+
+ // Jabber seems to turn our double quotes into single quotes at times, so define
+ // the same headers, only with single quotes. Lengths MUST be the same as above
+-/* #define CRYPT_HEADER_MANGLED "*** Encrypted with the Gaim-Encryption plugin <A HREF='" */
++/* #define CRYPT_HEADER_MANGLED "--- Encrypted with the Gaim-Encryption plugin <A HREF='" */
+ /* #define CRYPT_NOTIFY_HEADER_MANGLED "<A HREF='Gaim-Encryption Capable'></A>" */
+
+
+
diff --git a/extra/pidgin-encryption/log_crash.patch b/extra/pidgin-encryption/log_crash.patch
new file mode 100644
index 000000000..a18416144
--- /dev/null
+++ b/extra/pidgin-encryption/log_crash.patch
@@ -0,0 +1,11 @@
+--- pidgin-encryption-3.0.orig/state_ui.c 2007-05-07 02:15:27.000000000 +0200
++++ pidgin-encryption-3.0.new/state_ui.c 2009-04-26 17:08:02.000000000 +0200
+@@ -268,6 +268,8 @@
+ static GtkIMHtmlSmiley * create_smiley_if_absent(GtkIMHtml *imhtml) {
+ GtkIMHtmlSmiley * smiley;
+ const char* category = gtk_imhtml_get_protocol_name(imhtml);
++
++ if (!category) return NULL;
+
+ /* make sure that the category we're about to use to add (based on the protocol name) */
+ /* already exists. If it doesn't, just use the default category so it isn't created. */
diff --git a/extra/pidgin/PKGBUILD b/extra/pidgin/PKGBUILD
new file mode 100644
index 000000000..6e743403d
--- /dev/null
+++ b/extra/pidgin/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 114233 2011-03-11 11:07:24Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
+
+pkgbase=('pidgin')
+pkgname=('libpurple' 'pidgin' 'finch')
+pkgver=2.7.11
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://pidgin.im/"
+license=('GPL')
+makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'python2' 'hicolor-icon-theme' 'silc-toolkit' 'gstreamer0.10'
+ 'farsight2' 'avahi' 'tk' 'ca-certificates' 'intltool' 'networkmanager')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('07c2a2535b4d7436b5ec7685fe063fec')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i "s#env python#env python2#" */plugins/*.py
+ sed -i "s#env python#env python2#" libpurple/purple-{remote,notifications-example,url-handler}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-schemas-install \
+ --disable-meanwhile \
+ --disable-gnutls \
+ --enable-cyrus-sasl \
+ --disable-doxygen \
+ --enable-nm \
+ --with-python=/usr/bin/python2 \
+ --with-system-ssl-certs=/etc/ssl/certs
+ make
+}
+package_libpurple(){
+ pkgdesc="IM library extracted from Pidgin"
+ depends=('farsight2' 'libsasl' 'dbus-glib' 'silc-toolkit' 'nss' 'cyrus-sasl-plugins')
+ optdepends=('dbus-python: for purple-remote and purple-url-handler')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ for dir in libpurple share/sounds share/ca-certs m4macros po
+ do
+ make -C "${dir}" DESTDIR="${pkgdir}" install
+ done
+# rm -rf "$pkgdir/etc" || return 1
+}
+
+package_pidgin(){
+ pkgdesc="Multi-protocol instant messaging client"
+ depends=("libpurple=$pkgver" 'startup-notification' 'gtkspell' 'libxss' 'hicolor-icon-theme' 'gstreamer0.10')
+ optdepends=('aspell: for spelling correction'
+ 'avahi: Bonjour protocol support'
+ 'ca-certificates: SSL CA certificates'
+ 'gstreamer0.10-good-plugins: video and voice support'
+ 'tk: Tcl/Tk scripting support')
+
+ install=pidgin.install
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ #for linking
+ make -C libpurple DESTDIR="${pkgdir}" install-libLTLIBRARIES
+
+ make -C pidgin DESTDIR="${pkgdir}" install
+ make -C doc DESTDIR="${pkgdir}" install
+
+ #clean up libpurple
+ make -C libpurple DESTDIR="${pkgdir}" uninstall-libLTLIBRARIES
+
+ install -D -m 0644 pidgin.desktop "${pkgdir}"/usr/share/applications/pidgin.desktop
+
+ rm -f "${pkgdir}"/usr/share/man/man1/finch.1
+}
+package_finch(){
+ pkgdesc="A ncurses-based messaging client"
+ depends=("libpurple=$pkgver" 'python2' 'gstreamer0.10')
+ optdepends=('avahi: Bonjour protocol support'
+ 'ca-certificates: SSL CA certificates'
+ 'tk: Tcl/Tk scripting support')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ #for linking
+ make -C libpurple DESTDIR="${pkgdir}" install-libLTLIBRARIES
+
+ make -C finch DESTDIR="${pkgdir}" install
+ make -C doc DESTDIR="${pkgdir}" install
+
+ #clean up libpurple
+ make -C libpurple DESTDIR="${pkgdir}" uninstall-libLTLIBRARIES
+ rm -f "${pkgdir}"/usr/share/man/man1/pidgin.1
+}
diff --git a/extra/pidgin/pidgin.install b/extra/pidgin/pidgin.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/extra/pidgin/pidgin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/pilot-link/PKGBUILD b/extra/pilot-link/PKGBUILD
new file mode 100644
index 000000000..b9b8f20b4
--- /dev/null
+++ b/extra/pilot-link/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 101454 2010-11-29 09:58:17Z allan $
+# Maintainer: dale <dale@archlinux.org>
+
+# todo: add perl support, DESTDIR has no affect on perl
+# and it seems that moving the files manually doesn't work
+
+pkgname=pilot-link
+pkgver=0.12.5
+pkgrel=2
+pkgdesc="A suite of tools for connecting to PalmOS handheld devices"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('readline>=6.0' 'libpng>=1.4.0' 'libusb-compat' 'popt' 'bluez>=4.59')
+options=('!libtool')
+url=http://www.pilot-link.org/
+source=(http://downloads.pilot-link.org/${pkgname}-${pkgver}.tar.bz2
+ pilot-link-png14.patch)
+md5sums=('568c55bf504b044f6fbd50baa407c990'
+ 'a21a2eeb01544a8a261a75e64a3120c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/pilot-link-png14.patch"
+ ./configure --prefix=/usr --enable-conduits --enable-libusb \
+ --with-libiconv --with-libpng
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/pilot-link/pilot-link-png14.patch b/extra/pilot-link/pilot-link-png14.patch
new file mode 100644
index 000000000..9d753332e
--- /dev/null
+++ b/extra/pilot-link/pilot-link-png14.patch
@@ -0,0 +1,100 @@
+diff -ru pilot-link-0.12.4/src/pilot-read-notepad.c pilot-link-0.12.4.png14/src/pilot-read-notepad.c
+--- pilot-link-0.12.4/src/pilot-read-notepad.c 2007-02-05 00:06:02.000000000 +0100
++++ pilot-link-0.12.4.png14/src/pilot-read-notepad.c 2010-01-17 15:04:33.000000000 +0100
+@@ -39,10 +39,6 @@
+
+ #ifdef HAVE_PNG
+ #include "png.h"
+-#if (PNG_LIBPNG_VER < 10201)
+- #define png_voidp_NULL (png_voidp)NULL
+- #define png_error_ptr_NULL (png_error_ptr)NULL
+-#endif
+ #endif
+
+ const char *progname;
+@@ -166,8 +162,8 @@
+ width = n->body.width + 8;
+
+ png_ptr = png_create_write_struct
+- ( PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ ( PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if(!png_ptr)
+ return;
+diff -ru pilot-link-0.12.4/src/pilot-read-palmpix.c pilot-link-0.12.4.png14/src/pilot-read-palmpix.c
+--- pilot-link-0.12.4/src/pilot-read-palmpix.c 2007-02-05 00:06:03.000000000 +0100
++++ pilot-link-0.12.4.png14/src/pilot-read-palmpix.c 2010-01-17 15:03:20.000000000 +0100
+@@ -42,10 +42,6 @@
+
+ #ifdef HAVE_PNG
+ #include "png.h"
+-#if (PNG_LIBPNG_VER < 10201)
+- #define png_voidp_NULL (png_voidp)NULL
+- #define png_error_ptr_NULL (png_error_ptr)NULL
+-#endif
+ #endif
+
+ const char *progname;
+@@ -223,8 +219,8 @@
+ png_infop info_ptr;
+
+ png_ptr = png_create_write_struct
+- ( PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ ( PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if(!png_ptr)
+ return;
+diff -ru pilot-link-0.12.4/src/pilot-read-screenshot.c pilot-link-0.12.4.png14/src/pilot-read-screenshot.c
+--- pilot-link-0.12.4/src/pilot-read-screenshot.c 2006-11-02 15:54:31.000000000 +0100
++++ pilot-link-0.12.4.png14/src/pilot-read-screenshot.c 2010-01-17 15:03:52.000000000 +0100
+@@ -40,10 +40,6 @@
+
+ #ifdef HAVE_PNG
+ # include "png.h"
+-# if (PNG_LIBPNG_VER < 10201)
+-# define png_voidp_NULL (png_voidp)NULL
+-# define png_error_ptr_NULL (png_error_ptr)NULL
+-# endif
+ #endif
+
+ #define pi_mktag(c1,c2,c3,c4) (((c1)<<24)|((c2)<<16)|((c3)<<8)|(c4))
+@@ -87,8 +83,8 @@
+ gray_buf = malloc( state->w );
+
+ png_ptr = png_create_write_struct
+- (PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ (PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if (!png_ptr)
+ return;
+diff -ru pilot-link-0.12.4/src/pilot-read-veo.c pilot-link-0.12.4.png14/src/pilot-read-veo.c
+--- pilot-link-0.12.4/src/pilot-read-veo.c 2007-02-05 00:06:03.000000000 +0100
++++ pilot-link-0.12.4.png14/src/pilot-read-veo.c 2010-01-17 15:04:14.000000000 +0100
+@@ -41,10 +41,6 @@
+
+ #ifdef HAVE_PNG
+ # include "png.h"
+-# if (PNG_LIBPNG_VER < 10201)
+-# define png_voidp_NULL (png_voidp)NULL
+-# define png_error_ptr_NULL (png_error_ptr)NULL
+-# endif
+ #endif
+
+ #define pi_mktag(c1,c2,c3,c4) (((c1)<<24)|((c2)<<16)|((c3)<<8)|(c4))
+@@ -856,8 +852,8 @@
+ png_infop info_ptr;
+
+ png_ptr = png_create_write_struct
+- (PNG_LIBPNG_VER_STRING, png_voidp_NULL,
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ (PNG_LIBPNG_VER_STRING, NULL,
++ NULL, NULL);
+
+ if (!png_ptr)
+ return;
diff --git a/extra/pinentry/PKGBUILD b/extra/pinentry/PKGBUILD
new file mode 100644
index 000000000..ae742029e
--- /dev/null
+++ b/extra/pinentry/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 106680 2011-01-17 20:41:54Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pinentry
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="a collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnupg.org/aegypten2"
+depends=('ncurses' 'libcap>=2.16')
+makedepends=('gtk' 'qt3' 'gtk2' 'qt')
+optdepends=('gtk: for gtk backend'
+ 'gtk2: for gtk2 backend'
+ 'qt3: for qt3 backend'
+ 'qt: for qt4 backend')
+source=(ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.gz
+ gtk2-pinentry-segfault.patch)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ [ "$QTDIR" = "" ] && source /etc/profile.d/qt3.sh
+ for file in qt4/*.moc; do
+ /usr/bin/moc ${file/.moc/.h} > ${file}
+ done
+ ./configure --prefix=/usr \
+ --enable-pinentry-curses \
+ --enable-pinentry-gtk \
+ --enable-pinentry-gtk2 \
+ --enable-pinentry-qt \
+ --enable-pinentry-qt4 \
+ --enable-fallback-curses
+ make
+ make DESTDIR=${pkgdir} install
+ rm ${pkgdir}/usr/share/info/dir
+ rm ${pkgdir}/usr/bin/pinentry
+ ln -s /usr/bin/pinentry-gtk-2 ${pkgdir}/usr/bin/pinentry
+}
+md5sums=('81f99904daee5331eb6738408bb024b6'
+ 'bd9888fafc56464b2c4deaad5b8edb07')
diff --git a/extra/pinentry/gtk2-pinentry-segfault.patch b/extra/pinentry/gtk2-pinentry-segfault.patch
new file mode 100644
index 000000000..c0b9fb4ca
--- /dev/null
+++ b/extra/pinentry/gtk2-pinentry-segfault.patch
@@ -0,0 +1,11 @@
+--- gtk+-2/pinentry-gtk-2.c.orig 2010-03-03 05:19:55.000000000 -0600
++++ gtk+-2/pinentry-gtk-2.c 2010-07-07 00:11:30.413572124 -0500
+@@ -145,7 +145,7 @@
+ {
+ gdk_keyboard_ungrab (gdk_event_get_time (event));
+ /* Unmake window transient for the root window. */
+- gdk_window_set_transient_for (win->window, NULL);
++ gdk_property_delete (win->window, gdk_atom_intern_static_string ("WM_TRANSIENT_FOR"));
+ }
+
+
diff --git a/extra/pixman/PKGBUILD b/extra/pixman/PKGBUILD
new file mode 100644
index 000000000..688360578
--- /dev/null
+++ b/extra/pixman/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 106857 2011-01-19 14:56:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=pixman
+pkgver=0.20.2
+pkgrel=1
+pkgdesc="Pixman library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://xorg.freedesktop.org/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('9972c8f8ce484f7649d9f588168cd29f61c05c63')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+ make check
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/plotutils/PKGBUILD b/extra/plotutils/PKGBUILD
new file mode 100644
index 000000000..cd8d4f347
--- /dev/null
+++ b/extra/plotutils/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 64564 2010-01-21 06:02:58Z eric $
+# Maintainer: damir <damir@archlinux.org>
+# Packager: Maksim Sipos (maxsipos at gmail dot com)
+
+pkgname=plotutils
+pkgver=2.6
+pkgrel=1
+arch=('x86_64' 'i686')
+pkgdesc="Set of utilities and libraries for plotting."
+url="http://directory.fsf.org/graphics/plotutils.html"
+license=("GPL")
+depends=("libpng" "gcc-libs" "libxaw>=1.0.5")
+options=('!libtool')
+install=plotutils.install
+source=(http://ftp.gnu.org/pub/gnu/plotutils/$pkgname-$pkgver.tar.gz)
+md5sums=('c08a424bd2438c80a786a7f4b5bb6a40')
+sha1sums=('7921301d9dfe8991e3df2829bd733df6b2a70838')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --with-gnu-ld \
+ --with-x \
+ --enable-libplotter || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/plotutils/plotutils.install b/extra/plotutils/plotutils.install
new file mode 100644
index 000000000..dd3ffb74f
--- /dev/null
+++ b/extra/plotutils/plotutils.install
@@ -0,0 +1,13 @@
+infodir=/usr/share/info
+
+post_install() {
+ install-info $infodir/plotutils.info $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ install-info --delete $infodir/plotutils.info $infodir/dir 2> /dev/null
+}
diff --git a/extra/pm-utils/02-logging-append.patch b/extra/pm-utils/02-logging-append.patch
new file mode 100644
index 000000000..987e0570a
--- /dev/null
+++ b/extra/pm-utils/02-logging-append.patch
@@ -0,0 +1,19 @@
+Author: James Westby <james.westby@ubuntu.com>
+Description: Do not clear the log file on each operation, but instead append to it.
+ This makes debugging of several suspends much easier.
+Bug: https://bugs.freedesktop.org/show_bug.cgi?id=25255
+Bug-Ubuntu: https://launchpad.net/bugs/410352
+
+Index: pm-utils/pm/pm-functions.in
+===================================================================
+--- pm-utils.orig/pm/pm-functions.in 2010-07-05 18:41:21.118322244 +0200
++++ pm-utils/pm/pm-functions.in 2010-07-05 18:41:24.126325221 +0200
+@@ -271,7 +271,7 @@
+ return 1
+ fi
+ export LOGGING=true
+- exec > "$1" 2>&1
++ exec >> "$1" 2>&1
+ }
+
+ check_suspend() { [ -n "$SUSPEND_MODULE" ]; }
diff --git a/extra/pm-utils/11netcfg b/extra/pm-utils/11netcfg
new file mode 100644
index 000000000..1b4d05ee7
--- /dev/null
+++ b/extra/pm-utils/11netcfg
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+. /usr/lib/pm-utils/functions
+
+suspend_netcfg() {
+ netcfg2 all-suspend
+}
+
+resume_netcfg() {
+ netcfg2 all-resume
+}
+
+if [ -x /usr/bin/netcfg2 ]; then
+ case "$1" in
+ hibernate|suspend)
+ suspend_netcfg
+ ;;
+ thaw|resume)
+ resume_netcfg
+ ;;
+ *)
+ ;;
+ esac
+fi
+
+exit $?
diff --git a/extra/pm-utils/12-fix-intel-audio-powersave-hook.patch b/extra/pm-utils/12-fix-intel-audio-powersave-hook.patch
new file mode 100644
index 000000000..2d884da1e
--- /dev/null
+++ b/extra/pm-utils/12-fix-intel-audio-powersave-hook.patch
@@ -0,0 +1,40 @@
+From: Florian Kriener <florian@kriener.org>
+To: submit@bugs.debian.org
+Subject: [pm-utils] wrong path in intel-audio-powersave (and a small bug)
+Date: Sat, 25 Sep 2010 11:27:30 +0200
+
+In the script intel-audio-powersave is this loop
+
+for dev in /sys/module/snd_*/parameters/power_save; do
+ [ -w "$dev/parameters/power_save" ] || continue
+ printf "Setting power savings for $s to %d..." "$dev##*/" "$1"
+ echo $1 > "$dev/parameters/power_save" && echo Done. || echo Failed.
+done
+
+I think it should be
+
+for dev in /sys/module/snd_*; do
+ [ -w "$dev/parameters/power_save" ] || continue
+ printf "Setting power savings for %s to %d..." "${dev##*/}" "$1"
+ echo $1 > "$dev/parameters/power_save" && echo Done. || echo Failed.
+done
+
+
+This fixes the two bugs.
+
+diff --git a/pm/power.d/intel-audio-powersave b/pm/power.d/intel-audio-powersave
+index 36675a8..da63e40 100644
+--- a/pm/power.d/intel-audio-powersave
++++ b/pm/power.d/intel-audio-powersave
+@@ -20,9 +20,9 @@ EOF
+
+ audio_powersave() {
+ [ "$INTEL_AUDIO_POWERSAVE" = "true" ] || exit $NA
+- for dev in /sys/module/snd_*/parameters/power_save; do
++ for dev in /sys/module/snd_*; do
+ [ -w "$dev/parameters/power_save" ] || continue
+- printf "Setting power savings for $s to %d..." "$dev##*/" "$1"
++ printf "Setting power savings for %s to %d..." "${dev##*/}" "$1"
+ echo $1 > "$dev/parameters/power_save" && echo Done. || echo Failed.
+ done
+ }
diff --git a/extra/pm-utils/13-49bluetooth-sync.patch b/extra/pm-utils/13-49bluetooth-sync.patch
new file mode 100644
index 000000000..b41f32cf9
--- /dev/null
+++ b/extra/pm-utils/13-49bluetooth-sync.patch
@@ -0,0 +1,43 @@
+From 640b53438c20818b3e344343b58b1f1765606a85 Mon Sep 17 00:00:00 2001
+From: Martin Pitt <martin.pitt@ubuntu.com>
+Date: Mon, 31 Jan 2011 15:30:01 +0100
+Subject: [PATCH] 49bluetooth: Wait for btusb module to get unused
+
+The 49bluetooth hook disables /proc/acpi/ibm/bluetooth but this isn't
+synchronous, i. e. it doesn't wait until the module usage count actually drops
+to 0. Due to that, it's impossible to add btusb to SUSPEND_MODULES (on some
+models/older kernels you need to do that to fix suspend problems), as at that
+point the module is still in use.
+
+On my system (ThinkPad X201) the module takes between 0.3 and 0.5 seconds to
+unload, so use 100 ms wait steps with a timeout of 2 seconds.
+
+Bug: https://bugs.freedesktop.org//show_bug.cgi?id=33759
+Bug-Ubuntu: https://launchpad.net/bugs/698331
+---
+ pm/sleep.d/49bluetooth | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+diff --git a/pm/sleep.d/49bluetooth b/pm/sleep.d/49bluetooth
+index d46ba49..0dc1909 100755
+--- a/pm/sleep.d/49bluetooth
++++ b/pm/sleep.d/49bluetooth
+@@ -12,6 +12,15 @@ suspend_bluetooth()
+ if grep -q enabled /proc/acpi/ibm/bluetooth; then
+ savestate ibm_bluetooth enable
+ echo disable > /proc/acpi/ibm/bluetooth
++
++ # wait for up to 2 seconds for the module to actually get
++ # unused
++ TIMEOUT=20
++ while [ $TIMEOUT -ge 0 ]; do
++ [ `cat /sys/module/btusb/refcnt` = 0 ] && break
++ TIMEOUT=$((TIMEOUT-1))
++ sleep 0.1
++ done
+ else
+ savestate ibm_bluetooth disable
+ fi
+--
+1.7.2.3
+
diff --git a/extra/pm-utils/14-disable-sata-alpm.patch b/extra/pm-utils/14-disable-sata-alpm.patch
new file mode 100644
index 000000000..7b5494932
--- /dev/null
+++ b/extra/pm-utils/14-disable-sata-alpm.patch
@@ -0,0 +1,26 @@
+Description: Disable SATA link power management by default, as it still causes disk errors and corruptions on many hardware.
+Author: Martin Pitt <martin.pitt@ubuntu.com>
+Bug-Ubuntu: https://launchpad.net/bugs/539467
+
+Index: pm-utils/pm/power.d/sata_alpm
+===================================================================
+--- pm-utils.orig/pm/power.d/sata_alpm 2011-02-01 15:53:09.164867778 +0100
++++ pm-utils/pm/power.d/sata_alpm 2011-02-01 15:53:28.954867786 +0100
+@@ -2,7 +2,7 @@
+
+ . "${PM_FUNCTIONS}"
+
+-SATA_ALPM_ENABLE=${SATA_ALPM_ENABLE:-true}
++SATA_ALPM_ENABLE=${SATA_ALPM_ENABLE:-false}
+
+ help() {
+ cat <<EOF
+@@ -16,7 +16,7 @@
+
+ This hook has 1 parameter:
+ SATA_ALPM_ENABLE = whether to use SATA ALPM on battery.
+-Defaults to "true".
++Defaults to "false".
+
+ EOF
+ }
diff --git a/extra/pm-utils/PKGBUILD b/extra/pm-utils/PKGBUILD
new file mode 100644
index 000000000..c4ec4e892
--- /dev/null
+++ b/extra/pm-utils/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 116693 2011-03-25 07:49:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=pm-utils
+pkgver=1.4.1
+pkgrel=3
+pkgdesc="Utilities and scripts for suspend and hibernate power management"
+arch=('i686' 'x86_64')
+url="http://pm-utils.freedesktop.org"
+license=('GPL')
+depends=('bash' 'procps' 'pm-quirks')
+makedepends=('xmlto' 'docbook-xml' 'docbook-xsl')
+source=(http://pm-utils.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+02-logging-append.patch
+12-fix-intel-audio-powersave-hook.patch
+13-49bluetooth-sync.patch
+14-disable-sata-alpm.patch
+ 11netcfg)
+md5sums=('1742a556089c36c3a89eb1b957da5a60'
+ 'a45149617bf3eb8dc32e6d9e22ae715d'
+ 'edada31a7d722763513fbe705d95d19d'
+ '298f78b873c03c025700d5da619ac134'
+ 'd0040f7d30b6a0dd195b5401abbbbdb9'
+ '9839687c8787d99fd4ff36aa3238c27b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/02-logging-append.patch"
+ patch -Np1 -i "${srcdir}/12-fix-intel-audio-powersave-hook.patch"
+ patch -Np1 -i "${srcdir}/13-49bluetooth-sync.patch"
+ patch -Np1 -i "${srcdir}/14-disable-sata-alpm.patch"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+ make DESTDIR="${pkgdir}" install
+
+ # install additional hooks
+ install -m755 "${srcdir}/11netcfg" "${pkgdir}/usr/lib/pm-utils/sleep.d/"
+
+ # nm >=0.8.2 has native udev suspend/resume support
+ rm -f "${pkgdir}/usr/lib/pm-utils/sleep.d/55NetworkManager"
+
+ # Remove hooks that cause hardware failure or don't make sense at all
+ rm -f "${pkgdir}/usr/lib/pm-utils/power.d/"{harddrive,disable_wol}
+}
diff --git a/extra/pmount/PKGBUILD b/extra/pmount/PKGBUILD
new file mode 100644
index 000000000..88a50a361
--- /dev/null
+++ b/extra/pmount/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 84000 2010-06-25 09:22:24Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=pmount
+pkgver=0.9.23
+pkgrel=1
+pkgdesc="mount removable devices as normal user"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://pmount.alioth.debian.org/"
+backup=('etc/pmount.allow')
+depends=('sysfsutils>=2.0.0-1' 'bash')
+optdepends=('hal: needed for pmount-hal')
+makedepends=('intltool' 'hal')
+source=(https://alioth.debian.org/frs/download.php/3310/pmount-0.9.23.tar.bz2)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-cryptsetup-prog=/sbin/cryptsetup || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
+md5sums=('db19f5bf3151b1b41705ec7bafa439d3')
diff --git a/extra/polkit-gnome/PKGBUILD b/extra/polkit-gnome/PKGBUILD
new file mode 100644
index 000000000..2b41612e5
--- /dev/null
+++ b/extra/polkit-gnome/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=polkit-gnome
+pkgver=0.99
+pkgrel=1
+pkgdesc="PolicyKit integration for the GNOME desktop"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/PolicyKit"
+license=('LGPL')
+depends=('polkit>=0.99' 'gtk2>=2.22.0')
+makedepends=('intltool' 'gobject-introspection')
+replaces=('policykit-gnome')
+options=(!libtool !makeflags)
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f1a2565083266bc8c05c60aa7d8a0f6a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's/OnlyShowIn=GNOME/NotShowIn=KDE/' src/polkit-gnome-authentication-agent-1.desktop.in.in
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/polkit-gnome \
+ --disable-static --disable-introspection
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+}
diff --git a/extra/polkit-kde/PKGBUILD b/extra/polkit-kde/PKGBUILD
new file mode 100644
index 000000000..ca94695e5
--- /dev/null
+++ b/extra/polkit-kde/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 102634 2010-12-09 08:51:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=polkit-kde
+pkgver=0.99.0
+pkgrel=1
+pkgdesc='Daemon providing a polkit authentication UI for KDE'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+source=("ftp://ftp.kde.org/pub/kde/stable/apps/KDE4.x/admin/${pkgname}-agent-1-${pkgver}.tar.bz2")
+md5sums=('a02d3fddc6270a88bceaf3ba604c92f8')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-agent-1-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/polkit-qt/PKGBUILD b/extra/polkit-qt/PKGBUILD
new file mode 100644
index 000000000..b71d737d8
--- /dev/null
+++ b/extra/polkit-qt/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 102633 2010-12-09 08:40:59Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=polkit-qt
+pkgver=0.99.0
+pkgrel=1
+pkgdesc='A library that allows developers to access PolicyKit API with a nice Qt-style API'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('LGPL')
+depends=('polkit' 'qt')
+makedepends=('cmake' 'automoc4')
+source=("ftp://ftp.kde.org/pub/kde/stable/apps/KDE4.x/admin/${pkgname}-1-${pkgver}.tar.bz2")
+md5sums=('1c5b4113a2a167624b5f716b4f03a219')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname}-1-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/polkit/PKGBUILD b/extra/polkit/PKGBUILD
new file mode 100644
index 000000000..efc6b9d22
--- /dev/null
+++ b/extra/polkit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 102286 2010-12-07 09:10:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=polkit
+pkgver=0.99
+pkgrel=1
+pkgdesc="Application development toolkit for controlling system-wide privileges"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.freedesktop.org/wiki/Software/PolicyKit"
+depends=('glib2>=2.26.0' 'pam' 'expat>=2.0.1')
+makedepends=('intltool>=0.41.1' 'gtk-doc>=1.15' 'gobject-introspection>=0.9.5')
+replaces=('policykit')
+options=('!libtool')
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+ polkit.pam)
+md5sums=('fcc4d7b19c08ad54d3ce0eae0ab12398'
+ '6564f95878297b954f0572bc1610dd15')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/polkit-1 \
+ --disable-static --enable-gtk-doc
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 "${srcdir}/polkit.pam" "${pkgdir}/etc/pam.d/polkit-1"
+}
diff --git a/extra/polkit/polkit.pam b/extra/polkit/polkit.pam
new file mode 100644
index 000000000..04f53e0db
--- /dev/null
+++ b/extra/polkit/polkit.pam
@@ -0,0 +1,7 @@
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+password required pam_unix.so
diff --git a/extra/poppler/PKGBUILD b/extra/poppler/PKGBUILD
new file mode 100644
index 000000000..e08295597
--- /dev/null
+++ b/extra/poppler/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 117503 2011-04-04 08:59:49Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=poppler
+pkgname=('poppler' 'poppler-glib' 'poppler-qt')
+pkgver=0.16.4
+pkgrel=1
+arch=(i686 x86_64)
+license=('GPL')
+makedepends=('libjpeg' 'gcc-libs' 'cairo' 'libxml2' 'fontconfig' 'openjpeg' 'gtk2' 'qt' 'pkgconfig' 'lcms' 'gobject-introspection')
+options=('!libtool')
+url="http://poppler.freedesktop.org/"
+source=(http://poppler.freedesktop.org/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2b996ca77dad04b422f67238daab48e7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-cairo-output \
+ --enable-xpdf-headers \
+ --enable-libjpeg --enable-zlib \
+ --enable-poppler-qt4 \
+ --enable-poppler-glib
+ make
+ sed -e 's/^glib_subdir =.*/glib_subdir =/' \
+ -e 's/^qt4_subdir =.*/qt4_subdir =/' -i Makefile
+}
+
+package_poppler() {
+ pkgdesc="PDF rendering library based on xpdf 3.0"
+ depends=('libjpeg' 'gcc-libs' 'cairo' 'libxml2' 'fontconfig' 'openjpeg' 'lcms' 'poppler-data')
+ conflicts=("poppler-qt3<${pkgver}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}"/usr/lib/pkgconfig/poppler-{glib,qt4}.pc
+}
+
+package_poppler-glib() {
+ pkgdesc="Poppler glib bindings"
+ depends=("poppler=${pkgver}" 'gtk2')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/poppler"
+ make DESTDIR="${pkgdir}" install-libLTLIBRARIES
+ cd "${srcdir}/${pkgbase}-${pkgver}/glib"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m644 ../poppler-glib.pc "${pkgdir}/usr/lib/pkgconfig/"
+ rm -f "${pkgdir}"/usr/lib/libpoppler.*
+}
+
+package_poppler-qt() {
+ pkgdesc="Poppler Qt bindings"
+ depends=("poppler=${pkgver}" 'qt')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/poppler"
+ make DESTDIR="${pkgdir}" install-libLTLIBRARIES
+ cd "${srcdir}/${pkgbase}-${pkgver}/qt4"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m644 ../poppler-qt4.pc "${pkgdir}/usr/lib/pkgconfig/"
+ rm -f "${pkgdir}"/usr/lib/libpoppler.*
+}
diff --git a/extra/postfix/PKGBUILD b/extra/postfix/PKGBUILD
new file mode 100644
index 000000000..d38b2648c
--- /dev/null
+++ b/extra/postfix/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 117190 2011-03-29 13:39:06Z bisson $
+# Contributor: Jeff Brodnax <tullyarcher@bellsouth.net>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgname=postfix
+pkgver=2.8.2
+pkgrel=3
+pkgdesc='Secure, fast, easy to administer drop in replacement for Sendmail (MTA)'
+url='http://www.postfix.org/'
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('pcre' 'libsasl' 'libmysqlclient' 'postgresql-libs' 'sqlite3' 'libldap' 'db')
+backup=('etc/postfix/'{access,aliases,canonical,generic,header_checks,main.cf,master.cf,relocated,transport,virtual})
+source=("ftp://ftp.porcupine.org/mirrors/postfix-release/official/${pkgname}-${pkgver}.tar.gz" \
+ 'aliases.patch' \
+ 'rc.d')
+sha1sums=('224e0b6dd161f4648114de8902124c9dec64aa8c'
+ '5fc3de6c7df1e5851a0a379e825148868808318b'
+ '050e6afc5886049682c945ce147b3c47fe113939')
+
+provides=('smtp-server' 'smtp-forwarder')
+replaces=('postfix-mysql' 'postfix-pgsql')
+conflicts=('postfix-mysql' 'postfix-pgsql' 'smtp-server' 'smtp-forwarder')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make makefiles CCARGS=' \
+ -DUSE_SASL_AUTH -I/usr/include/sasl \
+ -DUSE_CYRUS_SASL \
+ -DHAS_LDAP \
+ -DUSE_TLS \
+ -DHAS_MYSQL -I/usr/include/mysql \
+ -DHAS_PGSQL -I/usr/include/postgresql \
+ -DHAS_SQLITE \
+ ' AUXLIBS=' \
+ -lsasl2 -lssl -lcrypto \
+ -lldap -llber \
+ -lmysqlclient -lz -lm \
+ -lpq \
+ -lsqlite3 -lpthread \
+ '
+
+ make OPT="${CFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sh postfix-install -non-interactive \
+ install_root="${pkgdir}" \
+ daemon_directory="/usr/lib/${pkgname}" \
+ sample_directory="/etc/${pkgname}/sample" \
+ manpage_directory="/usr/share/man"
+
+ install -D -m755 ../rc.d "${pkgdir}/etc/rc.d/${pkgname}"
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ cd "${pkgdir}"
+ patch -p0 < "${srcdir}"/aliases.patch
+}
diff --git a/extra/postfix/aliases.patch b/extra/postfix/aliases.patch
new file mode 100644
index 000000000..6767870b7
--- /dev/null
+++ b/extra/postfix/aliases.patch
@@ -0,0 +1,18 @@
+--- etc/postfix/main.cf.orig 2010-12-13 20:18:22.000000000 +0100
++++ etc/postfix/main.cf 2010-12-13 20:18:24.000000000 +0100
+@@ -382,6 +382,7 @@
+ #alias_maps = hash:/etc/aliases
+ #alias_maps = hash:/etc/aliases, nis:mail.aliases
+ #alias_maps = netinfo:/aliases
++alias_maps = hash:/etc/postfix/aliases
+
+ # The alias_database parameter specifies the alias database(s) that
+ # are built with "newaliases" or "sendmail -bi". This is a separate
+@@ -392,6 +393,7 @@
+ #alias_database = dbm:/etc/mail/aliases
+ #alias_database = hash:/etc/aliases
+ #alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
++alias_database = $alias_maps
+
+ # ADDRESS EXTENSIONS (e.g., user+foo)
+ #
diff --git a/extra/postfix/install b/extra/postfix/install
new file mode 100644
index 000000000..f5d81a565
--- /dev/null
+++ b/extra/postfix/install
@@ -0,0 +1,35 @@
+post_install() {
+ getent group postdrop &>/dev/null || groupadd -g 75 postdrop >/dev/null
+ getent group postfix &>/dev/null || groupadd -g 73 postfix >/dev/null
+ getent passwd postfix &>/dev/null || useradd -u 73 -d /var/spool/postfix -g postfix -s /bin/false postfix >/dev/null
+
+ cd var/spool/postfix
+ chown postfix active bounce corrupt defer deferred flush hold incoming private public maildrop trace saved
+ chgrp postdrop public maildrop
+ cd ../../../usr/sbin
+ chgrp postdrop postqueue postdrop
+ chmod g+s postqueue postdrop
+ cd ../..
+ chown postfix var/lib/postfix
+
+ newaliases
+}
+
+post_upgrade() {
+ post_install
+
+ if [ `vercmp $2 2.8` = -1 ]; then cat <<EOF
+
+==> You must now execute "/etc/rc.d/postfix reload" (or restart).
+==> This is needed because the queue manager to delivery agent
+==> protocol has changed.
+
+EOF
+ fi
+}
+
+pre_remove() {
+ getent passwd postfix &>/dev/null && userdel postfix >/dev/null
+ getent group postfix &>/dev/null && groupdel postfix >/dev/null
+ getent group postdrop &>/dev/null && groupdel postdrop >/dev/null
+}
diff --git a/extra/postfix/rc.d b/extra/postfix/rc.d
new file mode 100755
index 000000000..94ccc2af0
--- /dev/null
+++ b/extra/postfix/rc.d
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+name=postfix
+PID=$(pidof -o %PPID /usr/lib/postfix/master)
+
+case "$1" in
+start)
+ stat_busy "Starting $name daemon"
+ [[ -z "$PID" ]] && /usr/sbin/postfix start &>/dev/null \
+ && { add_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+stop)
+ stat_busy "Stopping $name daemon"
+ [[ -n "$PID" ]] && /usr/sbin/postfix stop &>/dev/null \
+ && { rm_daemon $name; stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+reload)
+ stat_busy "Reloading $name daemon"
+ [[ -n "$PID" ]] && kill -HUP $PID &>/dev/null \
+ && { stat_done; } \
+ || { stat_fail; exit 1; }
+ ;;
+restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+*)
+ echo "usage: $0 {start|stop|restart|reload}"
+ ;;
+esac
+exit 0
diff --git a/extra/postgresql/PKGBUILD b/extra/postgresql/PKGBUILD
new file mode 100644
index 000000000..741ffc2fe
--- /dev/null
+++ b/extra/postgresql/PKGBUILD
@@ -0,0 +1,136 @@
+# $Id: PKGBUILD 108463 2011-01-31 13:52:30Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+
+pkgbase=postgresql
+pkgname=('postgresql-libs' 'postgresql-docs' 'postgresql')
+pkgver=9.0.3
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.postgresql.org"
+license=('custom:PostgreSQL')
+makedepends=('libxml2' 'python2' 'perl')
+source=(ftp://ftp.postgresql.org/pub/source/v${pkgver}/postgresql-${pkgver}.tar.bz2 \
+ postgresql postgresql.confd build.patch postgresql.pam postgresql.logrotate)
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # patch to remove regress/test make target (won't build with it present)
+ patch -Np1 -i ../build.patch
+
+ # configure
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-libxml \
+ --with-openssl --with-perl \
+ --with-python PYTHON=/usr/bin/python2 --with-pam \
+ --with-system-tzdata=/usr/share/zoneinfo --enable-nls \
+ --datadir=/usr/share/postgresql --enable-thread-safety
+
+ sed -i -e '/interfaces/d' src/Makefile
+
+ # build
+ make world
+
+ # build libs
+ for dir in src/interfaces src/bin/pg_config; do
+ pushd ${dir}
+ make
+ popd
+ done
+}
+
+package_postgresql-libs() {
+ pkgdesc="Libraries for use with PostgreSQL"
+ depends=('openssl>=1.0.0')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # install license
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-libs/LICENSE"
+
+ # install libs
+ for dir in src/interfaces src/bin/pg_config; do
+ pushd ${dir}
+ make DESTDIR="${pkgdir}" install
+ popd
+ done
+
+ install -D -m644 doc/src/sgml/man1/pg_config.1 "${pkgdir}/usr/share/man/man1/pg_config.1"
+
+ cd src/include
+
+ mkdir -p "${pkgdir}"/usr/include/{libpq,postgresql/internal/libpq}
+
+ # these headers are needed by the public headers of the interfaces
+ install -m644 pg_config.h "${pkgdir}/usr/include/"
+ install -m644 pg_config_os.h "${pkgdir}/usr/include/"
+ install -m644 postgres_ext.h "${pkgdir}/usr/include/"
+ install -m644 libpq/libpq-fs.h "${pkgdir}/usr/include/libpq/"
+ install -m644 pg_config_manual.h "${pkgdir}/usr/include/"
+
+ # these headers are needed by the not-so-public headers of the interfaces
+ install -m644 c.h "${pkgdir}/usr/include/postgresql/internal/"
+ install -m644 port.h "${pkgdir}/usr/include/postgresql/internal/"
+ install -m644 postgres_fe.h "${pkgdir}/usr/include/postgresql/internal/"
+ install -m644 libpq/pqcomm.h "${pkgdir}/usr/include/postgresql/internal/libpq/"
+}
+
+package_postgresql-docs() {
+ pkgdesc="HTML documentation for PostgreSQL"
+ options=(docs)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # install license
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/postgresql-docs/LICENSE"
+
+ make -C doc/src/sgml DESTDIR="${pkgdir}" install-html
+ chown -R root:root "${pkgdir}/usr/share/doc/postgresql/html/"
+}
+
+package_postgresql() {
+ pkgdesc="A sophisticated object-relational DBMS"
+ backup=('etc/conf.d/postgresql' 'etc/pam.d/postgresql' 'etc/logrotate.d/postgresql')
+ depends=("postgresql-libs>=${pkgver}" 'libxml2' 'readline>=6.0')
+ optdepends=('python2: for PL/Python support'
+ 'perl: for PL/Perl support')
+ provides=('postgresql-client')
+ conflicts=('postgresql-client')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ # install
+ make DESTDIR="${pkgdir}" install
+ make -C contrib DESTDIR="${pkgdir}" install
+ make -C doc/src/sgml DESTDIR="${pkgdir}" install-man
+ # we don't want this, it is in the -libs package
+ make -C src/bin/pg_config DESTDIR="${pkgdir}" uninstall
+ rm "${pkgdir}/usr/share/man/man1/pg_config.1"
+
+ # install license
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE"
+
+ # clean up unneeded installed items
+ rm -rf "${pkgdir}/usr/include/postgresql/internal"
+ rm -rf "${pkgdir}/usr/include/libpq"
+ find "${pkgdir}/usr/include" -maxdepth 1 -type f -execdir rm {} +
+
+ # install launch script
+ install -D -m755 "${srcdir}/postgresql" "${pkgdir}/etc/rc.d/postgresql"
+
+ # install conf file
+ install -D -m644 ${srcdir}/postgresql.confd \
+ "${pkgdir}/etc/conf.d/postgresql"
+
+ install -D -m644 ${srcdir}/postgresql.pam \
+ "${pkgdir}/etc/pam.d/postgresql"
+
+ install -D -m644 ${srcdir}/postgresql.logrotate \
+ "${pkgdir}/etc/logrotate.d/postgresql"
+}
+
+md5sums=('928df8c40bb012ad10756e58b70516fb'
+ '49bfa0d1089e26e2098d362ca5fa6503'
+ 'd63a05943cf0a2726aa2070f3033c569'
+ '4d74f4227dc5e12bf95b3490758d86c9'
+ '96f82c38f3f540b53f3e5144900acf17'
+ 'd28e443f9f65a5712c52018b84e27137')
diff --git a/extra/postgresql/build.patch b/extra/postgresql/build.patch
new file mode 100644
index 000000000..c8f665d12
--- /dev/null
+++ b/extra/postgresql/build.patch
@@ -0,0 +1,11 @@
+diff -Naur postgresql-8.2.3-orig/src/Makefile postgresql-8.2.3/src/Makefile
+--- postgresql-8.2.3-orig/src/Makefile 2006-06-22 16:50:35.000000000 -0700
++++ postgresql-8.2.3/src/Makefile 2007-03-05 10:46:24.000000000 -0800
+@@ -23,7 +23,6 @@
+ $(MAKE) -C bin $@
+ $(MAKE) -C pl $@
+ $(MAKE) -C makefiles $@
+- $(MAKE) -C test/regress $@
+
+ install: install-local
+
diff --git a/extra/postgresql/postgresql b/extra/postgresql/postgresql
new file mode 100755
index 000000000..fb7be3dd7
--- /dev/null
+++ b/extra/postgresql/postgresql
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/postgresql
+
+case "$1" in
+ start)
+ stat_busy "Starting PostgreSQL"
+ # initialization
+ if [ ! `egrep '^postgres:' /etc/group` ]; then
+ stat_busy "Adding postgres group"
+ groupadd -g 88 postgres
+ stat_done
+ fi
+ if [ ! `egrep '^postgres:' /etc/passwd` ]; then
+ stat_busy "Adding postgres user"
+ useradd -u 88 -g postgres -d $PGROOT -s /bin/bash postgres
+ [ -d $PGROOT ] && chown -R postgres:postgres $PGROOT
+ stat_done
+ fi
+ if [ ! -d $PGROOT/data ]; then
+ mkdir -p $PGROOT/data && chown -R postgres:postgres $PGROOT
+ su - postgres -c "/usr/bin/initdb $INITOPTS -D $PGROOT/data"
+ fi
+ if [ ! -e /var/log/postgresql.log ]; then
+ touch /var/log/postgresql.log
+ chown postgres /var/log/postgresql.log
+ fi
+ # start the process
+ su - postgres -c \
+ "/usr/bin/pg_ctl -D $PGROOT/data -l /var/log/postgresql.log -W start"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon postgresql
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping PostgreSQL"
+ su - postgres -c \
+ "/usr/bin/pg_ctl -D $PGROOT/data -l /var/log/postgresql.log -w stop"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon postgresql
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/postgresql/postgresql.confd b/extra/postgresql/postgresql.confd
new file mode 100644
index 000000000..5f8fa034c
--- /dev/null
+++ b/extra/postgresql/postgresql.confd
@@ -0,0 +1,5 @@
+#
+# Parameters to be passed to postgresql
+#
+PGROOT="/var/lib/postgres"
+INITOPTS="--locale $LANG"
diff --git a/extra/postgresql/postgresql.logrotate b/extra/postgresql/postgresql.logrotate
new file mode 100644
index 000000000..9c36918be
--- /dev/null
+++ b/extra/postgresql/postgresql.logrotate
@@ -0,0 +1,4 @@
+/var/log/postgresql.log {
+ copytruncate
+ missingok
+}
diff --git a/extra/postgresql/postgresql.pam b/extra/postgresql/postgresql.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/extra/postgresql/postgresql.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/extra/potrace/PKGBUILD b/extra/potrace/PKGBUILD
new file mode 100644
index 000000000..0debf3aa1
--- /dev/null
+++ b/extra/potrace/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 104345 2011-01-01 13:50:24Z bisson $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=potrace
+pkgver=1.9
+pkgrel=2
+pkgdesc='Utility for tracing a bitmap. Input: PBM, PGM, PPM, or BMP. Output: EPS, PostScript, PDF, SVG, Xfig, Gimppath, or PGM.'
+arch=('i686' 'x86_64')
+url='http://potrace.sourceforge.net/'
+license=('GPL')
+depends=('zlib')
+options=('!libtool')
+source=("http://potrace.sourceforge.net/download/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('c3ace609c24a0d5e03bbab5f22478c2af69cf1c4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-libpotrace
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/procmail/PKGBUILD b/extra/procmail/PKGBUILD
new file mode 100644
index 000000000..df4a9c2a6
--- /dev/null
+++ b/extra/procmail/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 114723 2011-03-15 18:50:11Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=procmail
+pkgver=3.22
+pkgrel=3
+pkgdesc="Highly configurable auto mail processing."
+arch=(i686 x86_64)
+url="http://www.procmail.org"
+license=('GPL' 'custom:Artistic')
+depends=('glibc' 'sh')
+makedepends=('smtp-server')
+source=(#http://www.procmail.org/${pkgname}-${pkgver}.tar.gz # currently down
+ ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/${pkgname}-${pkgver}.tar.gz
+ procmail-3.22-getline.patch)
+md5sums=('1678ea99b973eb77eda4ecf6acae53f1'
+ 'cf8e5d4854050ab0c836e07406a3dfa9')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i ${srcdir}/procmail-3.22-getline.patch
+ yes n | make LOCKINGTEST="/tmp ."
+ make BASENAME=${pkgdir}/usr MANDIR=${pkgdir}/usr/share/man install
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ install -D -m644 Artistic ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ install -d -m755 ${pkgdir}/usr/share/doc/${pkgname}/examples
+ install -m644 examples/* ${pkgdir}/usr/share/doc/${pkgname}/examples/
+}
diff --git a/extra/procmail/procmail-3.22-getline.patch b/extra/procmail/procmail-3.22-getline.patch
new file mode 100644
index 000000000..fb9a4ec6e
--- /dev/null
+++ b/extra/procmail/procmail-3.22-getline.patch
@@ -0,0 +1,56 @@
+diff -up procmail-3.22/src/fields.c.getline procmail-3.22/src/fields.c
+--- procmail-3.22/src/fields.c.getline 2001-09-11 06:57:08.000000000 +0200
++++ procmail-3.22/src/fields.c 2009-06-30 16:10:36.000000000 +0200
+@@ -110,16 +110,16 @@ void dispfield(p)register const struct f
+ /* try and append one valid field to rdheader from stdin */
+ int readhead P((void))
+ { int idlen;
+- getline();
++ get_line();
+ if((idlen=breakfield(buf,buffilled))<=0) /* not the start of a valid field */
+ return 0;
+ if(idlen==STRLEN(FROM)&&eqFrom_(buf)) /* it's a From_ line */
+ { if(rdheader)
+ return 0; /* the From_ line was a fake! */
+- for(;buflast=='>';getline()); /* gather continued >From_ lines */
++ for(;buflast=='>';get_line()); /* gather continued >From_ lines */
+ }
+ else
+- for(;;getline()) /* get the rest of the continued field */
++ for(;;get_line()) /* get the rest of the continued field */
+ { switch(buflast) /* will this line be continued? */
+ { case ' ':case '\t': /* yep, it sure is */
+ continue;
+diff -up procmail-3.22/src/formail.c.getline procmail-3.22/src/formail.c
+--- procmail-3.22/src/formail.c.getline 2009-06-30 16:00:40.000000000 +0200
++++ procmail-3.22/src/formail.c 2009-06-30 16:10:49.000000000 +0200
+@@ -819,7 +819,7 @@ splitit: { if(!lnl) /* did the p
+ { if(split) /* gobble up the next start separator */
+ { buffilled=0;
+ #ifdef sMAILBOX_SEPARATOR
+- getline();buffilled=0; /* but only if it's defined */
++ get_line();buffilled=0; /* but only if it's defined */
+ #endif
+ if(buflast!=EOF) /* if any */
+ goto splitit;
+diff -up procmail-3.22/src/formisc.c.getline procmail-3.22/src/formisc.c
+--- procmail-3.22/src/formisc.c.getline 2001-06-29 04:20:45.000000000 +0200
++++ procmail-3.22/src/formisc.c 2009-06-30 16:12:20.000000000 +0200
+@@ -115,7 +115,7 @@ void loadchar(c)const int c; /* a
+ buf[buffilled++]=c;
+ }
+
+-int getline P((void)) /* read a newline-terminated line */
++int get_line P((void)) /* read a newline-terminated line */
+ { if(buflast==EOF) /* at the end of our Latin already? */
+ { loadchar('\n'); /* fake empty line */
+ return EOF; /* spread the word */
+diff -up procmail-3.22/src/formisc.h.getline procmail-3.22/src/formisc.h
+--- procmail-3.22/src/formisc.h.getline 1999-04-19 08:42:15.000000000 +0200
++++ procmail-3.22/src/formisc.h 2009-06-30 16:10:02.000000000 +0200
+@@ -17,4 +17,4 @@ void
+ char*
+ skipwords P((char*start));
+ int
+- getline P((void));
++ get_line P((void));
diff --git a/extra/proftpd/PKGBUILD b/extra/proftpd/PKGBUILD
new file mode 100644
index 000000000..075e30b6c
--- /dev/null
+++ b/extra/proftpd/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 117431 2011-04-02 01:06:40Z eric $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=proftpd
+pkgver=1.3.3e
+pkgrel=1
+pkgdesc="A high-performance, scalable FTP server"
+arch=('i686' 'x86_64')
+url="http://www.proftpd.org"
+license=('GPL')
+depends=('glibc' 'pam' 'ncurses' 'libcap' 'libldap'
+ 'libmysqlclient' 'postgresql-libs')
+backup=('etc/proftpd.conf' 'etc/conf.d/proftpd')
+source=(ftp://ftp.proftpd.org/distrib/source/${pkgname}-${pkgver}.tar.bz2
+ 'proftpd' 'proftpd.logrotate' 'proftpd.conf.d')
+md5sums=('acc49b6589bc8c9fdf1dce9000bebdbd'
+ '99f6f9a989e70e3fa50809fc2bbbbb0a'
+ 'ddb09eb13131becdf0e081eef413116b'
+ '71d5932b0461c318ed68c2c0c2660736')
+sha1sums=('b347aa72d12e41fe8f43e8d91a7a4eeaac6f472f'
+ 'b7819d725817e55b69c73e2572c21a05db48cc86'
+ '83c38ec40efb7cc09d9824b98e65cd948a195cc6'
+ 'f34f60cb4fb1f4af7be7aca427cbad3cad22bbb9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --disable-pam \
+ --with-modules=mod_quotatab:mod_quotatab_file:mod_tls:mod_ldap:mod_sql:mod_sql_mysql:mod_sql_postgres \
+ --sysconfdir=/etc --localstatedir=/var/run --enable-ctrls --enable-ipv6 \
+ --with-includes=/usr/include/mysql:/usr/include/postgresql \
+ --with-libraries=/usr/lib/mysql:/usr/lib/postgresql --enable-nls
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 ../proftpd.logrotate "${pkgdir}/etc/logrotate.d/proftpd"
+ install -Dm644 ../proftpd.conf.d "${pkgdir}/etc/conf.d/proftpd"
+ install -Dm755 ../proftpd "${pkgdir}/etc/rc.d/proftpd"
+ install -Dm755 contrib/xferstats.holger-preiss \
+ "${pkgdir}/usr/bin/ftpstats"
+ cd "${pkgdir}/etc"
+ sed -i 's|nogroup|nobody|g' proftpd.conf
+ rmdir "${pkgdir}/usr/libexec"
+}
diff --git a/extra/proftpd/proftpd b/extra/proftpd/proftpd
new file mode 100755
index 000000000..357a7663d
--- /dev/null
+++ b/extra/proftpd/proftpd
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# source application-specific settings
+PROFTPD_ARGS=
+[ -f /etc/conf.d/proftpd ] && . /etc/conf.d/proftpd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting ProFTPd Server"
+ /usr/sbin/proftpd ${PROFTPD_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon proftpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping ProFTPd Server"
+ [ -f /var/run/proftpd.pid ] && kill $(cat /var/run/proftpd.pid) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/proftpd.pid
+ rm_daemon proftpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/extra/proftpd/proftpd.conf.d b/extra/proftpd/proftpd.conf.d
new file mode 100644
index 000000000..1a5a8a201
--- /dev/null
+++ b/extra/proftpd/proftpd.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to proftpd
+#
+PROFTPD_ARGS=""
diff --git a/extra/proftpd/proftpd.logrotate b/extra/proftpd/proftpd.logrotate
new file mode 100644
index 000000000..7b6d7a87b
--- /dev/null
+++ b/extra/proftpd/proftpd.logrotate
@@ -0,0 +1,5 @@
+/var/log/xferlog {
+ postrotate
+ /bin/kill -HUP `cat /var/run/proftpd.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/extra/progsreiserfs/PKGBUILD b/extra/progsreiserfs/PKGBUILD
new file mode 100644
index 000000000..38ad5c1fc
--- /dev/null
+++ b/extra/progsreiserfs/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 107514 2011-01-26 12:57:49Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=progsreiserfs
+pkgver=0.3.0.5
+pkgrel=6
+pkgdesc="library for accessing and manipulating reiserfs partitions"
+arch=(i686 x86_64)
+url="http://www.namesys.com"
+license=('GPL')
+depends=('e2fsprogs')
+options=('!libtool')
+source=(#ftp://ftp.namesys.com/pub/libreiserfs/${pkgname}-${pkgver}.tar.gz
+ ftp://ftp.archlinux.org/other/progsreiserfs/${pkgname}-${pkgver}.tar.gz
+ )
+md5sums=('d822579bbd4a29a1be5e4490869d9bee')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ # only provide lib and includes files
+ # https://bugs.archlinux.org/task/22255
+ rm -r ${pkgdir}/usr/sbin
+ rm -r ${pkgdir}/usr/share/man/
+}
diff --git a/extra/psi/PKGBUILD b/extra/psi/PKGBUILD
new file mode 100644
index 000000000..cf3d17109
--- /dev/null
+++ b/extra/psi/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 107019 2011-01-20 14:18:34Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=psi
+pkgver=0.14
+pkgrel=4
+pkgdesc='Instant messaging application designed for the Jabber IM'
+url='http://psi-im.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('qca-ossl' 'qca-gnupg' 'enchant' 'libxss' 'xdg-utils')
+install='psi.install'
+source=("http://downloads.sourceforge.net/psi/psi-${pkgver}.tar.bz2"
+ 'archlinux.patch')
+md5sums=('9d7dcce3bcab53b741a712199bd986be'
+ 'a965c6a4ad1028f14a5897c3f5088ae8')
+
+build() {
+ cd ${srcdir}/psi-${pkgver}
+ patch -p1 -i ${srcdir}/archlinux.patch
+ ./configure --prefix=/usr --disable-bundled-qca --release --no-separate-debug-info
+ make
+}
+
+package() {
+ cd ${srcdir}/psi-${pkgver}
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/extra/psi/archlinux.patch b/extra/psi/archlinux.patch
new file mode 100644
index 000000000..bf89ab4a9
--- /dev/null
+++ b/extra/psi/archlinux.patch
@@ -0,0 +1,12 @@
+diff -aur psi-0.12.old/src/systeminfo.cpp psi-0.12/src/systeminfo.cpp
+--- psi-0.12.old/src/systeminfo.cpp 2007-04-08 10:37:46.000000000 +0200
++++ psi-0.12/src/systeminfo.cpp 2009-05-11 15:09:14.000000000 +0200
+@@ -89,7 +89,7 @@
+ { LinuxSlackware, OsAppendFile, "/etc/slackware-version", "Slackware Linux" },
+ { LinuxPLD, OsUseFile, "/etc/pld-release", "PLD Linux" },
+ { LinuxAurox, OsUseName, "/etc/aurox-release", "Aurox Linux" },
+- { LinuxArch, OsUseFile, "/etc/arch-release", "Arch Linux" },
++ { LinuxArch, OsUseName, "/etc/arch-release", "Arch Linux" },
+ { LinuxLFS, OsAppendFile, "/etc/lfs-release", "LFS Linux" },
+
+ // untested
diff --git a/extra/psi/psi.install b/extra/psi/psi.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/extra/psi/psi.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/extra/psiconv/PKGBUILD b/extra/psiconv/PKGBUILD
new file mode 100644
index 000000000..0fb78ec8b
--- /dev/null
+++ b/extra/psiconv/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 86765 2010-08-03 22:27:52Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=psiconv
+pkgver=0.9.8
+pkgrel=7
+pkgdesc="Converts Psion 5(MX) files to more commonly used file formats"
+arch=('i686' 'x86_64')
+url="http://software.frodo.looijaard.name/psiconv/"
+license=('GPL')
+depends=('imagemagick')
+makedepends=('bc')
+backup=('etc/psiconv/psiconv.conf')
+options=('!libtool')
+source=(http://software.frodo.looijaard.name/${pkgname}/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8d7548e3c6b9cd408544736133728acd')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/pstoedit/PKGBUILD b/extra/pstoedit/PKGBUILD
new file mode 100644
index 000000000..8a075012c
--- /dev/null
+++ b/extra/pstoedit/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 88955 2010-08-26 15:26:52Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Tobias Powalowski <t.powa@gmx.de>
+
+pkgname=pstoedit
+pkgver=3.50
+pkgrel=4
+pkgdesc="Translates PostScript and PDF graphics into other vector formats"
+arch=("i686" "x86_64")
+url="http://www.pstoedit.net/"
+license=('GPL')
+depends=('gcc-libs' 'plotutils' 'gd' 'imagemagick')
+makedepends=('ghostscript')
+options=('!libtool' '!makeflags')
+source=("http://downloads.sourceforge.net/sourceforge/pstoedit/pstoedit-${pkgver}.tar.gz"
+ 'pstoedit-3.50-parallel.patch' 'pstoedit-3.50-plugin-close.patch')
+sha1sums=('5685bef29fa00aae7cc314d3a1dd21612a98eb2b'
+ '6e278b164d3e59fbb11e7fd5ae8ffb038932d69a'
+ '54bbe019de66eb4cb8525371462595d21fbd074e')
+
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # fix FS#19221 - [pstoedit] plugin close problem
+ patch -Np1 -i ../pstoedit-3.50-parallel.patch
+ patch -Np1 -i ../pstoedit-3.50-plugin-close.patch
+
+ sed -i 's/-pedantic//' configure
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/pstoedit/pstoedit-3.50-parallel.patch b/extra/pstoedit/pstoedit-3.50-parallel.patch
new file mode 100644
index 000000000..4f1f73b04
--- /dev/null
+++ b/extra/pstoedit/pstoedit-3.50-parallel.patch
@@ -0,0 +1,47 @@
+diff --git a/src/Makefile.am b/src/Makefile.am
+index d6178df..66f377b 100755
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -86,6 +86,7 @@ libp2edrvstd_la_SOURCES= \
+ $(sample_drivers_src)
+ libp2edrvstd_la_LIBADD=-L. libpstoedit.la
+ libp2edrvstd_la_LDFLAGS=-no-undefined -module
++libp2edrvstd_la_DEPENDENCIES = libpstoedit.la
+
+ #libp2edrvplugins_la_SOURCES=drvmif.cpp drvcgm.cpp drvrtf.cpp drvwwmf.cpp
+ #libp2edrvplugins_la_LIBADD=
+@@ -95,15 +96,18 @@ libp2edrvstd_la_LDFLAGS=-no-undefined -module
+ libp2edrvlplot_la_SOURCES=drvlplot.cpp drvlplot.h initlibrary.cpp
+ libp2edrvlplot_la_LIBADD=$(LIBPLOTTER_LDFLAGS) -L. libpstoedit.la
+ libp2edrvlplot_la_LDFLAGS=-no-undefined -module
++libp2edrvlplot_la_DEPENDENCIES = libpstoedit.la
+
+ libp2edrvswf_la_SOURCES=drvswf.cpp drvswf.h initlibrary.cpp
+ libp2edrvswf_la_LIBADD=$(LIBMING_LDFLAGS) -L. libpstoedit.la
+ libp2edrvswf_la_LDFLAGS=-no-undefined -module
++libp2edrvswf_la_DEPENDENCIES = libpstoedit.la
+
+ # note the __ stand for ++ - automake treats all no alphanums chars as _
+ libp2edrvmagick___la_SOURCES=drvmagick++.cpp drvmagick++.h initlibrary.cpp
+ libp2edrvmagick___la_LIBADD=-L. libpstoedit.la
+ libp2edrvmagick___la_LDFLAGS=-no-undefined ${LIBMAGICK_LDFLAGS} -module
++libp2edrvmagick___la_DEPENDENCIES = libpstoedit.la
+ # moved to configure.ac because needed only for g++ libp2edrvmagick___la_CPPFLAGS=$(LIBMAGICK_CFLAGS) $(AM_CPPFLAGS) -Wno-long-long
+
+ if USE_EMFBYSOURCE
+@@ -113,6 +117,7 @@ else
+ libp2edrvwmf_la_SOURCES=drvwmf.cpp drvwmf.h initlibrary.cpp
+ libp2edrvwmf_la_LDFLAGS=-no-undefined $(LIBEMF_LDFLAGS) -L. libpstoedit.la -module
+ endif
++libp2edrvwmf_la_DEPENDENCIES = libpstoedit.la
+
+ libpstoedit_la_SOURCES = \
+ dynload.cpp dynload.h \
+@@ -135,6 +140,7 @@ libpstoedit_la_LDFLAGS = -no-undefined
+
+ pstoedit_SOURCES = cmdmain.cpp
+ pstoedit_LDFLAGS = -no-undefined -L. libpstoedit.la ${LIBLD_LDFLAGS}
++pstoedit_DEPENDENCIES = libpstoedit.la
+
+ pkginclude_HEADERS = \
+ pstoedit.h \
diff --git a/extra/pstoedit/pstoedit-3.50-plugin-close.patch b/extra/pstoedit/pstoedit-3.50-plugin-close.patch
new file mode 100644
index 000000000..6787d6aef
--- /dev/null
+++ b/extra/pstoedit/pstoedit-3.50-plugin-close.patch
@@ -0,0 +1,14 @@
+http://bugzilla.redhat.com/507035
+
+diff --git a/src/dynload.cpp b/src/dynload.cpp
+index c0db355..7c073ef 100644
+--- a/src/dynload.cpp
++++ b/src/dynload.cpp
+@@ -147,7 +147,6 @@ void DynLoader::close()
+
+ DynLoader::~DynLoader()
+ {
+- close();
+ libname=0;
+ }
+
diff --git a/extra/pth/PKGBUILD b/extra/pth/PKGBUILD
new file mode 100644
index 000000000..3075d939b
--- /dev/null
+++ b/extra/pth/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 78043 2010-04-19 08:33:13Z dgriffiths $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=pth
+pkgver=2.0.7
+pkgrel=3
+pkgdesc="The GNU Portable Threads."
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/pth/"
+license=('LGPL')
+depends=('glibc')
+options=('!libtool' '!makeflags')
+source=(ftp://ftp.gnu.org/gnu/pth/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9cb4a25331a4c4db866a31cbe507c793')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/ptlib/PKGBUILD b/extra/ptlib/PKGBUILD
new file mode 100644
index 000000000..d023243a5
--- /dev/null
+++ b/extra/ptlib/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 81955 2010-06-07 12:18:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=ptlib
+pkgver=2.6.7
+pkgrel=1
+pkgdesc="Portable Windows Library"
+arch=(i686 x86_64)
+url="http://www.ekiga.org/"
+license=('GPL')
+depends=('gcc-libs>=4.5.0' 'openssl' 'alsa-lib>=1.0.21.a' 'sdl>=1.2.14' 'libv4l>=0.6.4' 'expat>=2.0.1')
+replaces=('pwlib')
+conflicts=('pwlib')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.6/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7dd28225fedd21154d34899b21ee4b6d27c88eb1a9f9931c8e6ced28e8f3b97f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib \
+ --sysconfdir=/etc --localstatedir=/var \
+ --enable-opal --enable-plugins \
+ --enable-oss --enable-v4l2 \
+ --disable-avc --enable-sdl \
+ --enable-ipv6 --enable-v4l \
+ --enable-dc --disable-odbc \
+ --enable-expat --enable-httpforms || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/pulseaudio-mixer-applet/PKGBUILD b/extra/pulseaudio-mixer-applet/PKGBUILD
new file mode 100644
index 000000000..54fcd03c7
--- /dev/null
+++ b/extra/pulseaudio-mixer-applet/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 99926 2010-11-19 14:16:58Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Samed Beyribey <ras0ir AT eventualis DOT org>
+
+pkgname=pulseaudio-mixer-applet
+pkgver=0.2.2
+pkgrel=6
+pkgdesc="GNOME panel applet to control PulseAudio devices and streams"
+arch=(i686 x86_64)
+url="https://launchpad.net/pama"
+license=(GPL3)
+depends=(gnome-media gnome-panel-bonobo libpulse glib2)
+makedepends=(intltool)
+source=(http://launchpad.net/pama/${pkgver%.*}/$pkgver/+download/pulseaudio-mixer-applet-$pkgver.tar.gz)
+md5sums=('b7df43c999ad8583f779e678cfe768ae')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/extra/pulseaudio/PKGBUILD b/extra/pulseaudio/PKGBUILD
new file mode 100644
index 000000000..9d8c6945e
--- /dev/null
+++ b/extra/pulseaudio/PKGBUILD
@@ -0,0 +1,98 @@
+# $Id: PKGBUILD 103255 2010-12-17 00:02:37Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgbase=pulseaudio
+pkgname=(pulseaudio libpulse)
+pkgver=0.9.22
+pkgrel=2
+arch=(i686 x86_64)
+url="http://pulseaudio.org/"
+license=(GPL LGPL)
+makedepends=(libasyncns libcap attr libxtst libsm tcp_wrappers libsndfile
+ libtool rtkit speex libsamplerate tdb udev dbus-core xcb-util
+ avahi bluez gconf intltool jack lirc-utils pkgconfig openssl)
+options=(!emptydirs !libtool !makeflags)
+source=("http://0pointer.de/lennart/projects/$pkgbase/$pkgbase-$pkgver.tar.gz"
+ $pkgbase.xinit)
+md5sums=('ca85ab470669b05e100861654cf5eb3c'
+ 'eb1cfae28eb2e4d3fdbe45a90e4318ab')
+
+build() {
+ cd "$srcdir/$pkgbase-$pkgver"
+
+ # Don't break circular dependency between libpulse and libpulsecommon
+ LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --with-database=tdb \
+ --disable-hal \
+ --disable-rpath \
+ --disable-default-build-tests
+
+ make
+}
+
+package_pulseaudio() {
+ pkgdesc="A featureful, general-purpose sound server"
+ depends=("libpulse=$pkgver-$pkgrel" rtkit libtool speex libsamplerate tdb
+ udev)
+ optdepends=('avahi: zeroconf support'
+ 'bluez: bluetooth support'
+ 'gconf: configuration through gconf'
+ 'jack: jack support'
+ 'lirc-utils: infra-red support'
+ 'openssl: RAOP support')
+ backup=(etc/pulse/{daemon.conf,default.pa,system.pa})
+ install=pulseaudio.install
+ cd "$srcdir/$pkgbase-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # Lower resample quality
+ sed -e '/resample-method/iresample-method=speex-float-0' \
+ -i "$pkgdir/etc/pulse/daemon.conf"
+
+ # Disable cork-request module, can result in e.g. media players unpausing
+ # when there's a Skype call incoming
+ sed -e 's|/usr/bin/pactl load-module module-x11-cork-request|#&|' \
+ -i "$pkgdir/usr/bin/start-$pkgbase-x11"
+
+ # Make module-console-kit optional
+ sed -e $'/module-console-kit/{i.nofail\n;a.fail\n;}' \
+ -i "$pkgdir/etc/pulse/default.pa"
+
+ install -Dm755 "$srcdir/$pkgbase.xinit" "$pkgdir/etc/X11/xinit/xinitrc.d/$pkgbase"
+
+ rm "$pkgdir/etc/dbus-1/system.d/$pkgbase-system.conf"
+
+### Split libpulse
+
+ mkdir -p "$srcdir"/libpulse/{etc/pulse,usr/{lib,share/{man/man5,vala/vapi}}}
+
+ mv {"$pkgdir","$srcdir/libpulse"}/etc/pulse/client.conf
+
+ mv "$pkgdir"/usr/lib/libpulse{,dsp,-simple,-browse,-mainloop-glib}.so* \
+ "$pkgdir"/usr/lib/libpulsecommon-*.so \
+ "$srcdir/libpulse/usr/lib"
+
+ mv {"$pkgdir","$srcdir/libpulse"}/usr/lib/pkgconfig
+ mv {"$pkgdir","$srcdir/libpulse"}/usr/include
+
+ mv {"$pkgdir","$srcdir/libpulse"}/usr/share/man/man5/pulse-client.conf.5
+ mv {"$pkgdir","$srcdir/libpulse"}/usr/share/vala/vapi/libpulse.vapi
+}
+
+package_libpulse() {
+ pkgdesc="A featureful, general-purpose sound server (client library)"
+ depends=(tcp_wrappers dbus-core xcb-util libasyncns libcap libxtst libsm
+ libsndfile)
+ optdepends=('alsa-plugins: ALSA support'
+ 'avahi: zeroconf support')
+ backup=(etc/pulse/client.conf)
+ mv "$srcdir"/libpulse/* "$pkgdir"
+}
diff --git a/extra/pulseaudio/pulseaudio.install b/extra/pulseaudio/pulseaudio.install
new file mode 100755
index 000000000..67a346759
--- /dev/null
+++ b/extra/pulseaudio/pulseaudio.install
@@ -0,0 +1,26 @@
+post_install() {
+ cat << MES
+>>> See the wiki at http://wiki.archlinux.org/index.php/PulseAudio for details
+ on configuring your system for PulseAudio.
+
+>>> Make sure to install pulseaudio-alsa to configure ALSA for PulseAudio.
+
+>>> You might want to blacklist the "snd-pcm-oss" module in /etc/rc.conf to
+ keep ALSA's OSS emulation from interfering with ALSA or PulseAudio.
+MES
+}
+
+post_upgrade() {
+ # Delete old users and groups
+ # System-wide daemon not supported anymore
+ if (( $(vercmp $2 0.9.22) < 0 )); then
+ getent passwd pulse &>/dev/null && usr/sbin/userdel -f pulse
+ getent group pulse-access &>/dev/null && usr/sbin/groupdel pulse-access
+ getent group pulse-rt &>/dev/null && usr/sbin/groupdel pulse-rt
+ getent group pulse &>/dev/null && usr/sbin/groupdel pulse
+ fi
+
+ true
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/pulseaudio/pulseaudio.xinit b/extra/pulseaudio/pulseaudio.xinit
new file mode 100644
index 000000000..ca510e882
--- /dev/null
+++ b/extra/pulseaudio/pulseaudio.xinit
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+case "$SESSION" in
+ GNOME|KDE*|xfce4) # PulseAudio is started via XDG Autostart
+ ;;
+ *) /usr/bin/start-pulseaudio-x11 ;;
+esac
diff --git a/extra/purple-plugin-pack/PKGBUILD b/extra/purple-plugin-pack/PKGBUILD
new file mode 100644
index 000000000..6d2e61e9c
--- /dev/null
+++ b/extra/purple-plugin-pack/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 77562 2010-04-15 22:34:21Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Dale Blount <dale@archlinux.org>
+
+pkgname=purple-plugin-pack
+pkgver=2.6.3
+pkgrel=1
+pkgdesc="Plugin pack for Pidgin"
+arch=('i686' 'x86_64')
+url="http://plugins.guifications.org/trac/wiki/PluginPack"
+license=('GPL')
+depends=('pidgin')
+makedepends=('intltool' 'python')
+options=('!libtool')
+source=(http://plugins.guifications.org/trac/downloads/48)
+md5sums=('2dccee28f087c7e81cef07ee845399bb')
+
+build() {
+ cd "$srcdir/purple-plugin_pack-$pkgver"
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/putty/PKGBUILD b/extra/putty/PKGBUILD
new file mode 100644
index 000000000..6252fc40c
--- /dev/null
+++ b/extra/putty/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 57024 2009-10-31 09:56:01Z allan $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Andreas Schweitzer <andy@bootblock.de>
+# with ideas by Michael Baehr
+
+pkgname=putty
+pkgver=0.60
+pkgrel=2
+pkgdesc="A terminal integrated SSH/Telnet client known from Windows."
+arch=('i686' 'x86_64')
+url="http://www.chiark.greenend.org.uk/~sgtatham/putty/"
+license=('custom')
+depends=('gtk')
+#source=(ftp://ftp.chiark.greenend.org.uk/users/sgtatham/putty-latest/$pkgname-$pkgver.tar.gz)
+source=("http://the.earth.li/~sgtatham/putty/latest/putty-$pkgver.tar.gz")
+md5sums=('07e65fd98b16d115ae38a180bfb242e2')
+
+build() {
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+ cd $srcdir/$pkgname-$pkgver/unix
+ ./configure --prefix=/usr
+ make || return 1
+ install -dm755 $pkgdir/usr/{bin,share/man/man1}
+ make DESTDIR=$pkgdir install
+ install -D -m644 ../LICENCE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/pwgen/PKGBUILD b/extra/pwgen/PKGBUILD
new file mode 100644
index 000000000..0f9327fe5
--- /dev/null
+++ b/extra/pwgen/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 78038 2010-04-19 08:28:26Z dgriffiths $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor : Tobias Powalowski <t.powa@gmx.de>
+
+pkgname=pwgen
+pkgver=2.06
+pkgrel=2
+pkgdesc="Pwgen is a small password generator which creates passwords which can be easily memorized by a human"
+arch=("i686" "x86_64")
+url="http://sourceforge.net/projects/pwgen/"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/pwgen/${pkgname}-${pkgver}.tar.gz)
+md5sums=('935aebcbe610fbc9de8125e7b7d71297')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/pycrypto/PKGBUILD b/extra/pycrypto/PKGBUILD
new file mode 100644
index 000000000..fba0c5d51
--- /dev/null
+++ b/extra/pycrypto/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 96778 2010-10-24 17:01:27Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+
+pkgname=pycrypto
+pkgver=2.3
+pkgrel=1
+pkgdesc="Collection of cryptographic algorithms and protocols, implemented for use from Python."
+arch=(i686 x86_64)
+depends=('python2')
+url="http://www.dlitz.net/software/pycrypto/"
+license=(custom)
+source=(http://ftp.dlitz.net/pub/dlitz/crypto/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('4f11e85fbcf13960373650fc2dae8f088f9b001f07fb6d3efb2fcb5334987182')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py build
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/"
+ cp -r LEGAL "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/pycups/PKGBUILD b/extra/pycups/PKGBUILD
new file mode 100644
index 000000000..6e0ae9700
--- /dev/null
+++ b/extra/pycups/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 111850 2011-03-01 12:31:00Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: nesl247 <nesl247@gmail.com>
+
+pkgname=pycups
+pkgver=1.9.54
+pkgrel=1
+pkgdesc="Python CUPS Bindings"
+url="http://cyberelk.net/tim/software/pycups/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libcups' 'python2')
+source=("http://cyberelk.net/tim/data/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('57e6e0b0e7ea814660c08b8d19fc20e1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+}
diff --git a/extra/pygobject/PKGBUILD b/extra/pygobject/PKGBUILD
new file mode 100644
index 000000000..df4b5c086
--- /dev/null
+++ b/extra/pygobject/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 104901 2011-01-05 14:19:02Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pygobject
+pkgver=2.26.0
+pkgrel=2
+pkgdesc="Python bindings for GObject"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('python2' 'glib2>=2.26.0' 'pycairo>=1.8.10' 'gobject-introspection>=0.9.6')
+source=(http://ftp.gnome.org/pub/gnome/sources/pygobject/2.26/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+url="http://www.pygtk.org/"
+sha256sums=('5554acff9c27b647144143b0459359864e4a6f2ff62c7ba21cf310ad755cf7c7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ find "$pkgdir"/usr/share/pygobject -name '*.py' | \
+ xargs sed -i "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
+}
diff --git a/extra/pygtk/PKGBUILD b/extra/pygtk/PKGBUILD
new file mode 100644
index 000000000..49f758d0d
--- /dev/null
+++ b/extra/pygtk/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 101297 2010-11-28 20:54:23Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=pygtk
+pkgver=2.22.0
+pkgrel=3
+pkgdesc="Python bindings for the GTK widget set"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libglade>=2.6.4' 'pycairo>=1.8.10' 'pygobject>=2.21.5')
+makedepends=('python-numpy')
+optdepends=('python-numpy')
+options=('!libtool')
+url="http://www.pygtk.org/"
+source=(http://ftp.gnome.org/pub/gnome/sources/pygtk/2.22/${pkgname}-${pkgver}.tar.bz2
+ python27.patch)
+sha256sums=('4acf0ef2bde8574913c40ee4a43d9c4f43bb77b577b67147271b534501a54cc8'
+ '39a30456cba055a452bb55c74ef1ff2f5f7bfaad22855b4dd569ab009b56b682')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ #https://bugzilla.gnome.org/show_bug.cgi?id=623965
+ patch -Np1 -i "${srcdir}/python27.patch"
+ PYTHON=python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ sed -i -e 's#env python$#env python2#' "${pkgdir}"/usr/lib/pygtk/2.0/{,demos/}*.py
+ install -m644 gtk/gtk-extrafuncs.defs "${pkgdir}/usr/share/pygtk/2.0/defs/"
+}
diff --git a/extra/pygtk/python27.patch b/extra/pygtk/python27.patch
new file mode 100644
index 000000000..9bbe2b5ae
--- /dev/null
+++ b/extra/pygtk/python27.patch
@@ -0,0 +1,50 @@
+diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c
+index c0e1493..aa8cf10 100644
+--- a/gtk/gtkmodule.c
++++ b/gtk/gtkmodule.c
+@@ -227,8 +227,12 @@ init_gtk(void)
+ pygtk_add_stock_items(d);
+
+ /* extension API */
+- PyDict_SetItemString(d, "_PyGtk_API",
+- o=PyCObject_FromVoidPtr(&functions, NULL));
++#if PY_VERSION_HEX >= 0x02070000
++ o = PyCapsule_New(&functions, "gtk._gtk._PyGtk_API", NULL);
++#else
++ o = PyCObject_FromVoidPtr(&functions, NULL);
++#endif
++ PyDict_SetItemString(d, "_PyGtk_API", o);
+ Py_DECREF(o);
+
+ PyGtkDeprecationWarning = PyErr_NewException("gtk.GtkDeprecationWarning",
+diff --git a/gtk/pygtk.h b/gtk/pygtk.h
+index 573c3b9..e4c680f 100644
+--- a/gtk/pygtk.h
++++ b/gtk/pygtk.h
+@@ -60,6 +60,18 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
+
+
+ /* a function to initialise the pygtk functions */
++
++/* Python 2.7 introduced the PyCapsule API and deprecated the CObject API */
++#if PY_VERSION_HEX >= 0x02070000
++#define init_pygtk() G_STMT_START { \
++ void *capsule = PyCapsule_Import("gtk._gtk._PyGtk_API", 0); \
++ if (!capsule) { \
++ return; \
++ } \
++ _PyGtk_API = (struct _PyGtk_FunctionStruct*)capsule; \
++} G_STMT_END
++#else /* PY_VERSION_HEX */
++/* Python 2.6 and earlier use the CObject API */
+ #define init_pygtk() G_STMT_START { \
+ PyObject *pygtk = PyImport_ImportModule("gtk"); \
+ if (pygtk != NULL) { \
+@@ -79,6 +91,7 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
+ return; \
+ } \
+ } G_STMT_END
++#endif /* PY_VERSION_HEX */
+
+ #endif
+
diff --git a/extra/pygtksourceview2/PKGBUILD b/extra/pygtksourceview2/PKGBUILD
new file mode 100644
index 000000000..b5e11dcdf
--- /dev/null
+++ b/extra/pygtksourceview2/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 101307 2010-11-28 20:57:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pygtksourceview2
+pkgver=2.10.1
+pkgrel=3
+pkgdesc="Python bindings for gtksourceview2"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gtksourceview2>=2.10.0' 'pygtk>=2.17.0')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/pygtksourceview/2.10/pygtksourceview-${pkgver}.tar.bz2)
+sha256sums=('b4b47c5aeb67a26141cb03663091dfdf5c15c8a8aae4d69c46a6a943ca4c5974')
+
+build() {
+ cd "${srcdir}/pygtksourceview-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static --disable-docs
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/pymad/PKGBUILD b/extra/pymad/PKGBUILD
new file mode 100644
index 000000000..7b552f30e
--- /dev/null
+++ b/extra/pymad/PKGBUILD
@@ -0,0 +1,19 @@
+# $Id: PKGBUILD 89638 2010-09-02 19:58:32Z remy $
+# Maintainer: Mark Rosenstand <mark@archlinux.org
+# Contributor: Corrado Primier <cp663137@stud.polimi.it>
+pkgname=pymad
+pkgver=0.6
+pkgrel=3
+pkgdesc="Python interface to libmad."
+arch=(i686 x86_64)
+url="http://www.spacepants.org/src/pymad/"
+license=('LGPL')
+depends=('libmad' 'python2')
+source=(http://www.spacepants.org/src/pymad/download/$pkgname-$pkgver.tar.gz)
+md5sums=('a1405fb4b610348565c8d0e400c5ff18')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ python2 config_unix.py --prefix=/usr
+ python2 setup.py install --root=$startdir/pkg
+}
diff --git a/extra/pyopenssl/PKGBUILD b/extra/pyopenssl/PKGBUILD
new file mode 100644
index 000000000..6197ba57a
--- /dev/null
+++ b/extra/pyopenssl/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 110679 2011-02-21 13:19:09Z stephane $
+# Maintainer : Ionut Biru<ibiru@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgbase=pyopenssl
+pkgname=('pyopenssl' 'python2-pyopenssl')
+pkgver=0.11
+pkgrel=2
+arch=('i686' 'x86_64')
+url="https://launchpad.net/pyopenssl/"
+license=('LGPL2.1')
+makedepends=('python' 'python2' 'openssl')
+source=(http://launchpad.net/${pkgname}/main/${pkgver}/+download/pyOpenSSL-${pkgver}.tar.gz)
+md5sums=('9e76e57e00fa48745fcfe23944db1e6c')
+
+build() {
+ cd "${srcdir}"
+ cp -a "pyOpenSSL-${pkgver}"{,-python2}
+
+ #build python 3 module
+ cd "pyOpenSSL-${pkgver}"
+ python setup.py build
+
+ #build python 3 module
+ cd ../"pyOpenSSL-${pkgver}-python2"
+ python2 setup.py build
+}
+
+package_pyopenssl(){
+ pkgdesc="Python3 wrapper module around the OpenSSL library"
+ depends=('python>=3.2' 'openssl')
+
+ cd "${srcdir}/pyOpenSSL-${pkgver}"
+ python setup.py install --root "${pkgdir}" --optimize=1
+}
+
+package_python2-pyopenssl(){
+ pkgdesc="Python2 wrapper module around the OpenSSL library"
+ depends=('python2>=2.7' 'openssl')
+
+ cd "${srcdir}/pyOpenSSL-${pkgver}-python2"
+ python2 setup.py install --root "${pkgdir}" --optimize=1
+}
diff --git a/extra/pyorbit/PKGBUILD b/extra/pyorbit/PKGBUILD
new file mode 100644
index 000000000..930dd0dda
--- /dev/null
+++ b/extra/pyorbit/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 89716 2010-09-03 12:01:46Z remy $
+# Mantainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pyorbit
+pkgver=2.24.0
+pkgrel=3
+pkgdesc="Python bindings for ORBit2"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.pygtk.org"
+depends=('python2' 'orbit2>=2.14.16')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/pyorbit/2.24/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('574593815e75ee6e98062c75d6d1581f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/pypgsql/COPYING b/extra/pypgsql/COPYING
new file mode 100644
index 000000000..c13985414
--- /dev/null
+++ b/extra/pypgsql/COPYING
@@ -0,0 +1,20 @@
+ pyPgSQL, version 2.5
+ A Python DB-API 2.0 compliant interface for PostgreSQL
+ Copyright 2000 by Billy G. Allie.
+ All rights reserved.
+
+ Permission to use, copy, modify, and distribute this software and it's
+ documentation for any purpose and without fee is hereby granted,
+ provided that the above copyright notice appear in all copies and that
+ both that copyright notice and this permission notice appear in
+ supporting documentation, and that the copyright owner's name not be
+ used in advertising or publicity pertaining to distribution of the
+ software without specific, written prior permission.
+
+ THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
+ NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+ USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
diff --git a/extra/pypgsql/PKGBUILD b/extra/pypgsql/PKGBUILD
new file mode 100644
index 000000000..ef62e81c9
--- /dev/null
+++ b/extra/pypgsql/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 89618 2010-09-02 16:23:36Z remy $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=pypgsql
+pkgver=2.5.1
+pkgrel=7
+pkgdesc="A python client library for postgresql"
+arch=(i686 x86_64)
+license=('custom')
+url="http://pypgsql.sourceforge.net/"
+depends=('python-egenix-mx-base>=2.0.6-3' 'postgresql-libs>=8.4')
+source=(http://downloads.sourceforge.net/${pkgname}/pyPgSQL-${pkgver}.tar.gz
+ 'COPYING')
+md5sums=('82670f6f1652aa4766fdaec2cb43debd'
+ '235c239b51a8b8e6b53c414ef71d7612')
+
+build() {
+ cd ${srcdir}/pyPgSQL-${pkgver} || return 1
+ python2 setup.py install --root=${pkgdir} || return 1
+
+ # install custom license
+ install -Dm644 $srcdir/COPYING \
+ $pkgdir/usr/share/licenses/$pkgname/COPYING
+}
diff --git a/extra/pysmbc/PKGBUILD b/extra/pysmbc/PKGBUILD
new file mode 100644
index 000000000..b3d4f91e8
--- /dev/null
+++ b/extra/pysmbc/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 103364 2010-12-18 14:48:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Shane Peelar <lookatyouhacker@gm@il(d0t)c0m>
+
+pkgname=pysmbc
+pkgver=1.0.10
+pkgrel=1
+pkgdesc="Python libsmbclient bindings"
+arch=('i686' 'x86_64')
+url="http://cyberelk.net/tim/software/pysmbc/"
+license=('GPL')
+depends=('python2' 'smbclient')
+source=("http://cyberelk.net/tim/data/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('72cc12d6c037c68ca81355151a58083b')
+
+build(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py build
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
diff --git a/extra/python-cairo/PKGBUILD b/extra/python-cairo/PKGBUILD
new file mode 100644
index 000000000..864c6bb86
--- /dev/null
+++ b/extra/python-cairo/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 110756 2011-02-22 02:50:48Z stephane $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=python-cairo
+pkgver=1.8.10
+pkgrel=2
+pkgdesc="Python bindings for the cairo graphics library"
+arch=('i686' 'x86_64')
+license=('LGPL3')
+depends=('python' 'cairo')
+makedepends=('pkg-config')
+options=('!libtool')
+source=(http://cairographics.org/releases/pycairo-${pkgver}.tar.bz2
+ pycairo-1.8.10-pypath.patch)
+url="http://www.cairographics.org/pycairo"
+md5sums=('ddc544943d791e3c22ca8f019e10e1e3'
+ '047cfe0a98cfa73a156cd70e70082325')
+
+build() {
+ cd "${srcdir}/pycairo-${pkgver}"
+
+ # We patch the embedded copy of waf to fix compiling against python 3.2
+ # (due to PEP-3149), by using the appropriate python-config tool, rather
+ # than trying to find the libraries by directly using PYTHON_VERSION
+
+ # Ensure that ./waf has created the cached unpacked version
+ # of the wafadmin source tree.
+ # This will be created to a subdirectory like
+ # .waf3-1.5.18-a7b91e2a913ce55fa6ecdf310df95752
+ python ./waf --version
+
+ # Patch the unpacked version of waf:
+ pushd .waf3*
+ patch -Np0 -i ../../pycairo-1.8.10-pypath.patch
+ popd
+
+ ./waf configure --prefix=/usr
+ ./waf build
+}
+
+package() {
+ cd "${srcdir}/pycairo-${pkgver}"
+ ./waf install --destdir="${pkgdir}"
+}
diff --git a/extra/python-cairo/pycairo-1.8.10-pypath.patch b/extra/python-cairo/pycairo-1.8.10-pypath.patch
new file mode 100644
index 000000000..07d4e1b7a
--- /dev/null
+++ b/extra/python-cairo/pycairo-1.8.10-pypath.patch
@@ -0,0 +1,36 @@
+diff -up wafadmin/Tools/python.py.pypath wafadmin/Tools/python.py
+--- wafadmin/Tools/python.py.pypath 2011-02-10 15:30:44.118506004 -0500
++++ wafadmin/Tools/python.py 2011-02-10 15:32:50.922506002 -0500
+@@ -156,6 +156,9 @@ MACOSX_DEPLOYMENT_TARGET = %r
+ env.append_value('LINKFLAGS_PYEMBED',python_LDFLAGS.split())
+ result=False
+ name='python'+env['PYTHON_VERSION']
++ python_config=conf.find_program('python%s-config'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
++ if not python_config:
++ python_config=conf.find_program('python-config-%s'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
+ if python_LIBDIR is not None:
+ path=[python_LIBDIR]
+ conf.log.write("\n\n# Trying LIBDIR: %r\n"%path)
+@@ -169,6 +172,12 @@ MACOSX_DEPLOYMENT_TARGET = %r
+ path=[os.path.join(python_prefix,"libs")]
+ name='python'+env['PYTHON_VERSION'].replace('.','')
+ result=conf.check(lib=name,uselib='PYEMBED',libpath=path)
++ if not result and python_config:
++ conf.log.write("\n\n# try again with help of python-config\n")
++ for libstr in Utils.cmd_output("%s %s --libs"%(python,python_config)).strip().split():
++ if(libstr.startswith('-lpython')):
++ name=libstr[2:]
++ result=conf.check(lib=name,uselib='PYEMBED',libpath=path)
+ if result:
+ env['LIBPATH_PYEMBED']=path
+ env.append_value('LIB_PYEMBED',name)
+@@ -177,9 +186,6 @@ MACOSX_DEPLOYMENT_TARGET = %r
+ if(sys.platform=='win32'or sys.platform.startswith('os2')or sys.platform=='darwin'or Py_ENABLE_SHARED):
+ env['LIBPATH_PYEXT']=env['LIBPATH_PYEMBED']
+ env['LIB_PYEXT']=env['LIB_PYEMBED']
+- python_config=conf.find_program('python%s-config'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
+- if not python_config:
+- python_config=conf.find_program('python-config-%s'%('.'.join(env['PYTHON_VERSION'].split('.')[:2])),var='PYTHON_CONFIG')
+ includes=[]
+ if python_config:
+ for incstr in Utils.cmd_output("%s %s --includes"%(python,python_config)).strip().split():
diff --git a/extra/python-egenix-mx-base/PKGBUILD b/extra/python-egenix-mx-base/PKGBUILD
new file mode 100644
index 000000000..8582040b1
--- /dev/null
+++ b/extra/python-egenix-mx-base/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 89533 2010-09-01 15:30:54Z remy $
+# Maintainer:
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=python-egenix-mx-base
+origname=egenix-mx-base
+pkgver=3.1.3
+pkgrel=2
+pkgdesc="A collection of professional quality Python software tools which enhance Python's usability in many important areas - Open Source parts of the eGenix.com mx Extension series"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.egenix.com/products/python/mxBase/"
+depends=('python2')
+replaces=('egenix-mx-base')
+provides=('egenix-mx-base')
+source=("http://downloads.egenix.com/python/${origname}-${pkgver}.tar.gz")
+md5sums=('398d6f8d62029f5bea4f94765a6ab4c8')
+
+package() {
+ cd $srcdir/$origname-$pkgver
+ BASECFLAGS=$BASECFLAGS" -DNDEBUG -O0 -Wall -Wstrict-prototypes "
+ python2 setup.py install --root=$pkgdir
+ install -D -m644 COPYRIGHT $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/python-geoip/PKGBUILD b/extra/python-geoip/PKGBUILD
new file mode 100644
index 000000000..0e535d169
--- /dev/null
+++ b/extra/python-geoip/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 89623 2010-09-02 16:32:29Z remy $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=python-geoip
+pkgver=1.2.4
+pkgrel=2
+pkgdesc="Python bindings for the GeoIP IP-to-country resolver library."
+arch=(i686 x86_64)
+url="http://www.maxmind.com/app/python"
+license=('LGPL')
+depends=('python2' 'geoip')
+source=(http://www.maxmind.com/download/geoip/api/python/GeoIP-Python-${pkgver}.tar.gz)
+replaces=('geoip-python')
+provides=('geoip-python')
+
+build() {
+ cd ${startdir}/src/GeoIP-Python-${pkgver}
+ python2 setup.py build install --root=${startdir}/pkg
+}
+md5sums=('50f820d854476efaf3b7af733ffe4236')
diff --git a/extra/python-gtkglext/PKGBUILD b/extra/python-gtkglext/PKGBUILD
new file mode 100644
index 000000000..883b8d92e
--- /dev/null
+++ b/extra/python-gtkglext/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 89694 2010-09-03 10:37:56Z remy $
+# Maintainer: simo <simo@archlinux.org>
+pkgname=python-gtkglext
+pkgver=1.1.0
+pkgrel=4
+pkgdesc="Python language bindings for GtkGLExt"
+arch=(i686 x86_64)
+depends=('gtkglext' 'mesa' 'python-opengl' 'pygtk')
+makedepends=('libxmu')
+url="http://gtkglext.sourceforge.net/"
+source=(http://downloads.sourceforge.net/gtkglext/pygtkglext-$pkgver.tar.bz2)
+license="LGPL"
+md5sums=('720b421d3b8514a40189b285dd91de57')
+
+build() {
+ cd $startdir/src/pygtkglext-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ find $startdir/pkg -name '*.la' -exec rm {} \;
+}
diff --git a/extra/python-imaging/PKGBUILD b/extra/python-imaging/PKGBUILD
new file mode 100644
index 000000000..a48ff7309
--- /dev/null
+++ b/extra/python-imaging/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 110352 2011-02-18 23:00:51Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: simo <simo@archlinux.org>
+
+pkgname=python-imaging
+pkgver=1.1.7
+pkgrel=3
+pkgdesc="PIL. Provides image processing capabilities for python"
+arch=('i686' 'x86_64')
+url="http://www.pythonware.com/products/pil/index.htm"
+license=('custom:"pil"')
+depends=('python2' 'libjpeg' 'freetype2')
+makedepends=('tk' 'sane')
+optdepends=('tk' 'sane')
+provides=("pil=$pkgver")
+conflicts=('pil')
+replaces=('pil')
+source=(http://effbot.org/downloads/Imaging-$pkgver.tar.gz)
+md5sums=('fc14a54e1ce02a0225be8854bfba478e')
+
+build() {
+ cd $srcdir/Imaging-$pkgver
+ python2 setup.py build_ext
+ cd Sane
+ python2 setup.py build_ext
+}
+
+package() {
+ cd $srcdir/Imaging-$pkgver
+ python2 setup.py install --root=$pkgdir
+
+ pushd Sane
+ python2 setup.py install --root=$pkgdir
+ popd
+
+ install -dm755 $pkgdir/usr/include/python2.7/
+ install -m644 -t $pkgdir/usr/include/python2.7/ libImaging/*.h
+
+ # do not have files ending in .py in /usr/bin
+ for f in pildriver pilprint pilconvert pilfile pilfont; do
+ mv $pkgdir/usr/bin/$f{.py,}
+ done
+
+ # Install license
+ install -Dm644 $srcdir/Imaging-$pkgver/README \
+ $pkgdir/usr/share/licenses/$pkgname/README
+}
+
diff --git a/extra/python-iwscan/PKGBUILD b/extra/python-iwscan/PKGBUILD
new file mode 100644
index 000000000..83019f82e
--- /dev/null
+++ b/extra/python-iwscan/PKGBUILD
@@ -0,0 +1,18 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=python-iwscan
+pkgver=20090609
+pkgrel=2
+pkgdesc="A Python interface to iwlist, using the iwlib library"
+arch=('i686' 'x86_64')
+url="http://projects.otaku42.de/browser/python-iwscan"
+license=('LGPL')
+depends=('python2' 'wireless_tools')
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-20090609.tar.gz)
+md5sums=('30fbe8ad3b07e67c1c35db2de16077d8')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ python2 setup.py build
+ python2 setup.py install --root=${pkgdir}
+}
diff --git a/extra/python-lxml/PKGBUILD b/extra/python-lxml/PKGBUILD
new file mode 100644
index 000000000..76d995f9c
--- /dev/null
+++ b/extra/python-lxml/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 109621 2011-02-11 10:29:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Guillem Rieu <guillemr@gmx.net>
+
+pkgname=python-lxml
+pkgver=2.3
+pkgrel=1
+pkgdesc="Python binding for the libxml2 and libxslt libraries"
+arch=('i686' 'x86_64')
+license=('BSD' 'GPL' 'custom')
+url="http://codespeak.net/lxml"
+depends=('python2' 'libxslt')
+optdepends=("beautiful-soup: support for parsing not well formed HTML")
+conflicts=('lxml')
+replaces=('lxml')
+source=("http://codespeak.net/lxml/lxml-${pkgver}.tgz")
+md5sums=('a245a015fd59b63e220005f263e1682a')
+
+package() {
+ cd ${srcdir}/lxml-$pkgver
+
+ python2 setup.py install --root="${pkgdir}" --optimize=1
+
+ install -D -m644 LICENSES.txt ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
+ install -D -m644 doc/licenses/BSD.txt ${pkgdir}/usr/share/licenses/$pkgname/BSD.txt
+ install -D -m644 doc/licenses/elementtree.txt ${pkgdir}/usr/share/licenses/$pkgname/elementtree.txt
+}
diff --git a/extra/python-m2crypto/PKGBUILD b/extra/python-m2crypto/PKGBUILD
new file mode 100644
index 000000000..4e8a1aafb
--- /dev/null
+++ b/extra/python-m2crypto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 87898 2010-08-18 16:12:44Z ibiru $
+# Maintainer:
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=python-m2crypto
+pkgver=0.20.2
+pkgrel=3
+pkgdesc="A crypto and SSL toolkit for Python"
+arch=('i686' 'x86_64')
+url="http://wiki.osafoundation.org/bin/view/Projects/MeTooCrypto"
+license=('BSD')
+depends=('python2' 'openssl')
+makedepends=('swig')
+source=("http://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-${pkgver}.tar.gz"
+ 'openssl1.patch')
+md5sums=('6c24410410d6eb1920ea43f77a93613a'
+ '80a707ad6610f2871efdf40658e30364')
+
+build() {
+ cd "${srcdir}/M2Crypto-${pkgver}"
+ patch -Np0 -i ${srcdir}/openssl1.patch
+ python2 setup.py build
+}
+
+package() {
+ cd "${srcdir}/M2Crypto-${pkgver}"
+ python2 setup.py install --root="${pkgdir}/" --optimize=1
+
+ install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/python-m2crypto/openssl1.patch b/extra/python-m2crypto/openssl1.patch
new file mode 100644
index 000000000..59dba554d
--- /dev/null
+++ b/extra/python-m2crypto/openssl1.patch
@@ -0,0 +1,531 @@
+Index: tests/test_ssl.py
+===================================================================
+--- tests/test_ssl.py (revision 698)
++++ tests/test_ssl.py (working copy)
+@@ -405,8 +405,11 @@
+ try:
+ ctx = SSL.Context('sslv23', weak_crypto=1)
+ s = SSL.Connection(ctx)
+- s.connect(self.srv_addr)
+- self.failUnlessEqual(s.get_version(), 'SSLv2')
++ if m2.OPENSSL_VERSION_NUMBER < 0x10000000: # SSLv2 ciphers disabled by default in newer OpenSSL
++ s.connect(self.srv_addr)
++ self.failUnlessEqual(s.get_version(), 'SSLv2')
++ else:
++ self.assertRaises(SSL.SSLError, s.connect, self.srv_addr)
+ s.close()
+ finally:
+ self.stop_server(pid)
+Index: tests/test_x509.py
+===================================================================
+--- tests/test_x509.py (revision 698)
++++ tests/test_x509.py (working copy)
+@@ -142,7 +142,7 @@
+ cn.set_data("Hello There!")
+ assert cn.get_data().as_text() == "Hello There!", cn.get_data().as_text()
+
+- assert n.as_hash() == 1697185131
++ self.assertEquals(n.as_hash(), 1697185131)
+
+ self.assertRaises(IndexError, lambda: n[100])
+ self.assert_(n[10])
+Index: tests/test_smime.py
+===================================================================
+--- tests/test_smime.py (revision 698)
++++ tests/test_smime.py (working copy)
+@@ -6,7 +6,7 @@
+ """
+
+ import unittest
+-from M2Crypto import SMIME, BIO, Rand, X509, EVP
++from M2Crypto import SMIME, BIO, Rand, X509, EVP, Err
+
+ class SMIMETestCase(unittest.TestCase):
+ cleartext = 'some text to manipulate'
+@@ -213,7 +213,7 @@
+
+ self.filenameSmime = 'tests/sig.p7s'
+ f = BIO.openfile(self.filenameSmime, 'wb')
+- assert s.write(f, p7, BIO.MemoryBuffer('some text')) == 1
++ assert s.write(f, p7, BIO.MemoryBuffer('some text')) == 1, Err.get_error()
+ f.close()
+
+ def test_write_pkcs7_der(self):
+Index: SWIG/_evp.i
+===================================================================
+--- SWIG/_evp.i (revision 695)
++++ SWIG/_evp.i (working copy)
+@@ -180,7 +180,7 @@
+
+ PKCS5_PBKDF2_HMAC_SHA1(passbuf, passlen, saltbuf, saltlen, iter,
+ keylen, key);
+- ret = PyString_FromStringAndSize(key, keylen);
++ ret = PyString_FromStringAndSize((char*)key, keylen);
+ OPENSSL_cleanse(key, keylen);
+ return ret;
+ }
+@@ -339,7 +339,7 @@
+ klen = EVP_BytesToKey(cipher, md, (unsigned char *)sbuf,
+ (unsigned char *)dbuf, dlen, iter,
+ key, NULL); /* Since we are not returning IV no need to derive it */
+- ret = PyString_FromStringAndSize(key, klen);
++ ret = PyString_FromStringAndSize((char*)key, klen);
+ return ret;
+ }
+
+@@ -435,7 +435,7 @@
+ PyErr_SetString(_evp_err, ERR_reason_error_string(ERR_get_error()));
+ return NULL;
+ }
+- ret = PyString_FromStringAndSize(sigbuf, siglen);
++ ret = PyString_FromStringAndSize((char*)sigbuf, siglen);
+ OPENSSL_cleanse(sigbuf, siglen);
+ OPENSSL_free(sigbuf);
+ return ret;
+@@ -513,7 +513,7 @@
+ PyErr_SetString(PyExc_ValueError, "EVP_PKEY as DER failed");
+ return NULL;
+ }
+- der = PyString_FromStringAndSize(pp, len);
++ der = PyString_FromStringAndSize((char*)pp, len);
+ OPENSSL_free(pp);
+ return der;
+ }
+Index: SWIG/_ssl.i
+===================================================================
+--- SWIG/_ssl.i (revision 695)
++++ SWIG/_ssl.i (working copy)
+@@ -17,13 +17,17 @@
+ %apply Pointer NONNULL { SSL_CTX * };
+ %apply Pointer NONNULL { SSL * };
+ %apply Pointer NONNULL { SSL_CIPHER * };
+-%apply Pointer NONNULL { STACK * };
++%apply Pointer NONNULL { STACK_OF(SSL_CIPHER) * };
++%apply Pointer NONNULL { STACK_OF(X509) * };
+ %apply Pointer NONNULL { BIO * };
+ %apply Pointer NONNULL { DH * };
+ %apply Pointer NONNULL { RSA * };
+ %apply Pointer NONNULL { EVP_PKEY *};
+ %apply Pointer NONNULL { PyObject *pyfunc };
+
++%rename(ssl_get_ciphers) SSL_get_ciphers;
++extern STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *ssl);
++
+ %rename(ssl_get_version) SSL_get_version;
+ extern const char *SSL_get_version(CONST SSL *);
+ %rename(ssl_get_error) SSL_get_error;
+@@ -668,29 +672,25 @@
+ return SSL_CIPHER_get_bits(c, NULL);
+ }
+
+-STACK *ssl_get_ciphers(SSL *ssl) {
+- return (STACK *)SSL_get_ciphers(ssl);
++int sk_ssl_cipher_num(STACK_OF(SSL_CIPHER) *stack) {
++ return sk_SSL_CIPHER_num(stack);
+ }
+
+-int sk_ssl_cipher_num(STACK *stack) {
+- return sk_num(stack);
++SSL_CIPHER *sk_ssl_cipher_value(STACK_OF(SSL_CIPHER) *stack, int idx) {
++ return sk_SSL_CIPHER_value(stack, idx);
+ }
+
+-SSL_CIPHER *sk_ssl_cipher_value(STACK *stack, int idx) {
+- return (SSL_CIPHER *)sk_value(stack, idx);
++STACK_OF(X509) *ssl_get_peer_cert_chain(SSL *ssl) {
++ return SSL_get_peer_cert_chain(ssl);
+ }
+
+-STACK *ssl_get_peer_cert_chain(SSL *ssl) {
+- return (STACK *)SSL_get_peer_cert_chain(ssl);
++int sk_x509_num(STACK_OF(X509) *stack) {
++ return sk_X509_num(stack);
+ }
+
+-int sk_x509_num(STACK *stack) {
+- return sk_num(stack);
++X509 *sk_x509_value(STACK_OF(X509) *stack, int idx) {
++ return sk_X509_value(stack, idx);
+ }
+-
+-X509 *sk_x509_value(STACK *stack, int idx) {
+- return (X509 *)sk_value(stack, idx);
+-}
+ %}
+
+ %threadallow i2d_ssl_session;
+Index: SWIG/_x509.i
+===================================================================
+--- SWIG/_x509.i (revision 695)
++++ SWIG/_x509.i (working copy)
+@@ -148,8 +148,15 @@
+ extern int X509_NAME_print_ex(BIO *, X509_NAME *, int, unsigned long);
+ %rename(x509_name_print_ex_fp) X509_NAME_print_ex_fp;
+ extern int X509_NAME_print_ex_fp(FILE *, X509_NAME *, int, unsigned long);
++
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++%rename(x509_name_hash) X509_NAME_hash_old;
++extern unsigned long X509_NAME_hash_old(X509_NAME *);
++#else
+ %rename(x509_name_hash) X509_NAME_hash;
+ extern unsigned long X509_NAME_hash(X509_NAME *);
++#endif
++
+ %rename(x509_name_get_index_by_nid) X509_NAME_get_index_by_NID;
+ extern int X509_NAME_get_index_by_NID(X509_NAME *, int, int);
+
+@@ -171,7 +178,7 @@
+ if (PyString_Check($input)) {
+ Py_ssize_t len;
+
+- $1 = PyString_AsString($input);
++ $1 = (unsigned char *)PyString_AsString($input);
+ len = PyString_Size($input);
+ if (len > INT_MAX) {
+ PyErr_SetString(PyExc_ValueError, "object too large");
+@@ -184,7 +191,7 @@
+ }
+ }
+ %rename(x509_name_entry_set_data) X509_NAME_ENTRY_set_data;
+-extern int X509_NAME_ENTRY_set_data( X509_NAME_ENTRY *, int, CONST unsigned char *, int);
++extern int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *, int, CONST unsigned char *, int);
+ %typemap(in) (CONST unsigned char *, int);
+
+ %rename(x509_req_new) X509_REQ_new;
+@@ -230,7 +237,7 @@
+ %rename(x509_store_ctx_free) X509_STORE_CTX_free;
+ extern void X509_STORE_CTX_free(X509_STORE_CTX *);
+ %rename(x509_store_ctx_get1_chain) X509_STORE_CTX_get1_chain;
+-extern STACK *X509_STORE_CTX_get1_chain(X509_STORE_CTX *);
++extern STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *);
+
+ %rename(x509_extension_get_critical) X509_EXTENSION_get_critical;
+ extern int X509_EXTENSION_get_critical(X509_EXTENSION *);
+@@ -348,7 +355,7 @@
+ PyErr_SetString(_x509_err, ERR_reason_error_string(ERR_get_error()));
+ }
+ else {
+- ret = PyString_FromStringAndSize(buf, len);
++ ret = PyString_FromStringAndSize((char*)buf, len);
+ OPENSSL_free(buf);
+ }
+ return ret;
+@@ -435,12 +442,12 @@
+ }
+
+ int x509_name_set_by_nid(X509_NAME *name, int nid, PyObject *obj) {
+- return X509_NAME_add_entry_by_NID(name, nid, MBSTRING_ASC, PyString_AsString(obj), -1, -1, 0);
++ return X509_NAME_add_entry_by_NID(name, nid, MBSTRING_ASC, (unsigned char *)PyString_AsString(obj), -1, -1, 0);
+ }
+
+ /* x509_name_add_entry_by_txt */
+ int x509_name_add_entry_by_txt(X509_NAME *name, char *field, int type, char *bytes, int len, int loc, int set) {
+- return X509_NAME_add_entry_by_txt(name, field, type, bytes, len, loc, set);
++ return X509_NAME_add_entry_by_txt(name, field, type, (unsigned char *)bytes, len, loc, set);
+ }
+
+ PyObject *x509_name_get_der(X509_NAME *name)
+@@ -450,23 +457,23 @@
+ }
+
+ /* sk_X509_new_null() is a macro returning "STACK_OF(X509) *". */
+-STACK *sk_x509_new_null(void) {
+- return (STACK *)sk_X509_new_null();
++STACK_OF(X509) *sk_x509_new_null(void) {
++ return sk_X509_new_null();
+ }
+
+ /* sk_X509_free() is a macro. */
+-void sk_x509_free(STACK *stack) {
+- sk_X509_free((STACK_OF(X509) *)stack);
++void sk_x509_free(STACK_OF(X509) *stack) {
++ sk_X509_free(stack);
+ }
+
+ /* sk_X509_push() is a macro. */
+-int sk_x509_push(STACK *stack, X509 *x509) {
+- return sk_X509_push((STACK_OF(X509) *)stack, x509);
++int sk_x509_push(STACK_OF(X509) *stack, X509 *x509) {
++ return sk_X509_push(stack, x509);
+ }
+
+ /* sk_X509_pop() is a macro. */
+-X509 *sk_x509_pop(STACK *stack) {
+- return sk_X509_pop((STACK_OF(X509) *)stack);
++X509 *sk_x509_pop(STACK_OF(X509) *stack) {
++ return sk_X509_pop(stack);
+ }
+
+ int x509_store_load_locations(X509_STORE *store, const char *file) {
+@@ -493,21 +500,29 @@
+ return X509_REQ_set_version(x, version);
+ }
+
+-int x509_req_add_extensions(X509_REQ *req, STACK *exts) {
+- return X509_REQ_add_extensions(req, (STACK_OF(X509_EXTENSION) *)exts);
++int x509_req_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts) {
++ return X509_REQ_add_extensions(req, exts);
+ }
+
+-X509_NAME_ENTRY *x509_name_entry_create_by_txt( X509_NAME_ENTRY **ne, char *field, int type, char *bytes, int len) {
+- return X509_NAME_ENTRY_create_by_txt( ne, field, type, bytes, len);
++X509_NAME_ENTRY *x509_name_entry_create_by_txt(X509_NAME_ENTRY **ne, char *field, int type, char *bytes, int len) {
++ return X509_NAME_ENTRY_create_by_txt( ne, field, type, (unsigned char *)bytes, len);
+ }
+
+-LHASH *
+-x509v3_lhash(){
+- return lh_new(NULL,NULL);
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++LHASH_OF(CONF_VALUE)
++#else
++LHASH
++#endif
++*x509v3_lhash() {
++ return lh_new(NULL, NULL); /* Should probably be lh_CONF_VALUE_new but won't compile. */
+ }
+
+ X509V3_CTX *
+-x509v3_set_conf_lhash(LHASH * lhash){
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++x509v3_set_conf_lhash(LHASH_OF(CONF_VALUE) * lhash) {
++#else
++x509v3_set_conf_lhash(LHASH * lhash) {
++#endif
+ X509V3_CTX * ctx;
+ if (!(ctx=(X509V3_CTX *)PyMem_Malloc(sizeof(X509V3_CTX)))) {
+ PyErr_SetString(PyExc_MemoryError, "x509v3_set_conf_lhash");
+@@ -517,11 +532,20 @@
+ return ctx;
+ }
+
+-X509_EXTENSION *x509v3_ext_conf(LHASH *conf, X509V3_CTX *ctx, char *name, char *value) {
++X509_EXTENSION *
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++x509v3_ext_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, char *name, char *value) {
++#else
++x509v3_ext_conf(LHASH *conf, X509V3_CTX *ctx, char *name, char *value) {
++#endif
+ X509_EXTENSION * ext = NULL;
+ ext = X509V3_EXT_conf(conf, ctx, name, value);
+ PyMem_Free(ctx);
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ lh_CONF_VALUE_free(conf);
++#else
+ lh_free(conf);
++#endif
+ return ext;
+ }
+
+@@ -543,33 +567,33 @@
+ }
+
+ /* sk_X509_EXTENSION_new_null is a macro. */
+-STACK *sk_x509_extension_new_null(void) {
+- return (STACK *)sk_X509_EXTENSION_new_null();
++STACK_OF(X509_EXTENSION) *sk_x509_extension_new_null(void) {
++ return sk_X509_EXTENSION_new_null();
+ }
+
+ /* sk_X509_EXTENSION_free() is a macro. */
+-void sk_x509_extension_free(STACK *stack) {
+- sk_X509_EXTENSION_free((STACK_OF(X509_EXTENSION) *)stack);
++void sk_x509_extension_free(STACK_OF(X509_EXTENSION) *stack) {
++ sk_X509_EXTENSION_free(stack);
+ }
+
+ /* sk_X509_EXTENSION_push() is a macro. */
+-int sk_x509_extension_push(STACK *stack, X509_EXTENSION *x509_ext) {
+- return sk_X509_EXTENSION_push((STACK_OF(X509_EXTENSION) *)stack, x509_ext);
++int sk_x509_extension_push(STACK_OF(X509_EXTENSION) *stack, X509_EXTENSION *x509_ext) {
++ return sk_X509_EXTENSION_push(stack, x509_ext);
+ }
+
+ /* sk_X509_EXTENSION_pop() is a macro. */
+-X509_EXTENSION *sk_x509_extension_pop(STACK *stack) {
+- return sk_X509_EXTENSION_pop((STACK_OF(X509_EXTENSION) *)stack);
++X509_EXTENSION *sk_x509_extension_pop(STACK_OF(X509_EXTENSION) *stack) {
++ return sk_X509_EXTENSION_pop(stack);
+ }
+
+ /* sk_X509_EXTENSION_num() is a macro. */
+-int sk_x509_extension_num(STACK *stack) {
+- return sk_X509_EXTENSION_num((STACK_OF(X509_EXTENSION) *)stack);
++int sk_x509_extension_num(STACK_OF(X509_EXTENSION) *stack) {
++ return sk_X509_EXTENSION_num(stack);
+ }
+
+ /* sk_X509_EXTENSION_value() is a macro. */
+-X509_EXTENSION *sk_x509_extension_value(STACK *stack, int i) {
+- return sk_X509_EXTENSION_value((STACK_OF(X509_EXTENSION) *)stack, i);
++X509_EXTENSION *sk_x509_extension_value(STACK_OF(X509_EXTENSION) *stack, int i) {
++ return sk_X509_EXTENSION_value(stack, i);
+ }
+
+ /* X509_STORE_CTX_get_app_data is a macro. */
+@@ -590,7 +614,7 @@
+ #define I2DTYPE int (*)()
+ #endif
+
+-STACK *
++STACK_OF(X509) *
+ make_stack_from_der_sequence(PyObject * pyEncodedString){
+ STACK_OF(X509) *certs;
+ Py_ssize_t encoded_string_len;
+@@ -606,7 +630,7 @@
+ return NULL;
+ }
+
+- certs = ASN1_seq_unpack((unsigned char *)encoded_string, encoded_string_len, (D2ITYPE)d2i_X509, (void(*)())X509_free );
++ certs = ASN1_seq_unpack_X509((unsigned char *)encoded_string, encoded_string_len, d2i_X509, X509_free );
+ if (!certs) {
+ PyErr_SetString(_x509_err, ERR_reason_error_string(ERR_get_error()));
+ return NULL;
+@@ -616,13 +640,13 @@
+ }
+
+ PyObject *
+-get_der_encoding_stack(STACK * stack){
++get_der_encoding_stack(STACK_OF(X509) *stack){
+ PyObject * encodedString;
+
+ unsigned char * encoding;
+ int len;
+
+- encoding = ASN1_seq_pack((STACK_OF(X509)*) stack, (I2DTYPE)i2d_X509, NULL, &len);
++ encoding = ASN1_seq_pack_X509(stack, i2d_X509, NULL, &len);
+ if (!encoding) {
+ PyErr_SetString(_x509_err, ERR_reason_error_string(ERR_get_error()));
+ return NULL;
+Index: SWIG/_aes.i
+===================================================================
+--- SWIG/_aes.i (revision 695)
++++ SWIG/_aes.i (working copy)
+@@ -76,7 +76,7 @@
+ AES_encrypt((const unsigned char *)in, out, key);
+ else
+ AES_decrypt((const unsigned char *)in, out, key);
+- return PyString_FromStringAndSize(out, outlen);
++ return PyString_FromStringAndSize((char*)out, outlen);
+ }
+
+ int AES_type_check(AES_KEY *key) {
+Index: SWIG/_util.i
+===================================================================
+--- SWIG/_util.i (revision 695)
++++ SWIG/_util.i (working copy)
+@@ -48,7 +48,7 @@
+ PyErr_SetString(_util_err, ERR_reason_error_string(ERR_get_error()));
+ return NULL;
+ }
+- obj = PyString_FromStringAndSize(ret, len);
++ obj = PyString_FromStringAndSize((char*)ret, len);
+ OPENSSL_free(ret);
+ return obj;
+ }
+Index: SWIG/_m2crypto.i
+===================================================================
+--- SWIG/_m2crypto.i (revision 695)
++++ SWIG/_m2crypto.i (working copy)
+@@ -38,6 +38,19 @@
+ #define CONST098
+ #endif
+
++/* Bring in STACK_OF macro definition */
++%include <openssl/safestack.h>
++
++/* Bring in LHASH_OF macro definition */
++/* XXX Can't include lhash.h where LHASH_OF is defined, because it includes
++ XXX stdio.h etc. which we fail to include. So we have to (re)define
++ XXX LHASH_OF here instead.
++%include <openssl/lhash.h>
++*/
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++#define LHASH_OF(type) struct lhash_st_##type
++#endif
++
+ %include constraints.i
+ %include _threads.i
+ %include _lib.i
+Index: SWIG/_rand.i
+===================================================================
+--- SWIG/_rand.i (revision 695)
++++ SWIG/_rand.i (working copy)
+@@ -87,7 +87,7 @@
+ Py_INCREF(Py_None);
+ return Py_None;
+ } else {
+- PyTuple_SET_ITEM(tuple, 0, PyString_FromStringAndSize(blob, n));
++ PyTuple_SET_ITEM(tuple, 0, PyString_FromStringAndSize((char*)blob, n));
+ PyMem_Free(blob);
+ PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong((long)ret));
+ return tuple;
+Index: SWIG/_pkcs7.i
+===================================================================
+--- SWIG/_pkcs7.i (revision 695)
++++ SWIG/_pkcs7.i (working copy)
+@@ -12,7 +12,7 @@
+ %apply Pointer NONNULL { EVP_CIPHER * };
+ %apply Pointer NONNULL { EVP_PKEY * };
+ %apply Pointer NONNULL { PKCS7 * };
+-%apply Pointer NONNULL { STACK * };
++%apply Pointer NONNULL { STACK_OF(X509) * };
+ %apply Pointer NONNULL { X509 * };
+
+ %rename(pkcs7_new) PKCS7_new;
+@@ -54,8 +54,8 @@
+
+ %threadallow pkcs7_encrypt;
+ %inline %{
+-PKCS7 *pkcs7_encrypt(STACK *stack, BIO *bio, EVP_CIPHER *cipher, int flags) {
+- return PKCS7_encrypt((STACK_OF(X509) *)stack, bio, cipher, flags);
++PKCS7 *pkcs7_encrypt(STACK_OF(X509) *stack, BIO *bio, EVP_CIPHER *cipher, int flags) {
++ return PKCS7_encrypt(stack, bio, cipher, flags);
+ }
+
+ PyObject *pkcs7_decrypt(PKCS7 *pkcs7, EVP_PKEY *pkey, X509 *cert, int flags) {
+@@ -96,14 +96,14 @@
+
+ %threadallow pkcs7_sign1;
+ %inline %{
+-PKCS7 *pkcs7_sign1(X509 *x509, EVP_PKEY *pkey, STACK *stack, BIO *bio, int flags) {
+- return PKCS7_sign(x509, pkey, (STACK_OF(X509) *)stack, bio, flags);
++PKCS7 *pkcs7_sign1(X509 *x509, EVP_PKEY *pkey, STACK_OF(X509) *stack, BIO *bio, int flags) {
++ return PKCS7_sign(x509, pkey, stack, bio, flags);
+ }
+ %}
+
+ %threadallow pkcs7_verify1;
+ %inline %{
+-PyObject *pkcs7_verify1(PKCS7 *pkcs7, STACK *stack, X509_STORE *store, BIO *data, int flags) {
++PyObject *pkcs7_verify1(PKCS7 *pkcs7, STACK_OF(X509) *stack, X509_STORE *store, BIO *data, int flags) {
+ int outlen;
+ char *outbuf;
+ BIO *bio;
+@@ -113,7 +113,7 @@
+ PyErr_SetString(PyExc_MemoryError, "pkcs7_verify1");
+ return NULL;
+ }
+- if (!PKCS7_verify(pkcs7, (STACK_OF(X509) *)stack, store, data, bio, flags)) {
++ if (!PKCS7_verify(pkcs7, stack, store, data, bio, flags)) {
+ PyErr_SetString(_pkcs7_err, ERR_reason_error_string(ERR_get_error()));
+ BIO_free(bio);
+ return NULL;
+@@ -131,7 +131,7 @@
+ return ret;
+ }
+
+-PyObject *pkcs7_verify0(PKCS7 *pkcs7, STACK *stack, X509_STORE *store, int flags) {
++PyObject *pkcs7_verify0(PKCS7 *pkcs7, STACK_OF(X509) *stack, X509_STORE *store, int flags) {
+ return pkcs7_verify1(pkcs7, stack, store, NULL, flags);
+ }
+ %}
+@@ -229,7 +229,7 @@
+ }
+
+ /* return STACK_OF(X509)* */
+-STACK *pkcs7_get0_signers(PKCS7 *p7, STACK *certs, int flags) {
++STACK_OF(X509) *pkcs7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags) {
+ return PKCS7_get0_signers(p7, certs, flags);
+ }
+
diff --git a/extra/python-markupsafe/PKGBUILD b/extra/python-markupsafe/PKGBUILD
new file mode 100644
index 000000000..4fba8e363
--- /dev/null
+++ b/extra/python-markupsafe/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 113450 2011-03-08 17:36:15Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Alex Anthony <alex.anthony28991@gmail.com>
+
+pkgname=python-markupsafe
+pkgver=0.12
+pkgrel=0
+pkgdesc="Implements a XML/HTML/XHTML Markup safe string for Python"
+arch=('i686' 'x86_64')
+url="http://pypi.python.org/pypi/MarkupSafe"
+license=('custom')
+depends=('python2')
+makedepends=('setuptools')
+source=(http://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-${pkgver}.tar.gz)
+md5sums=('edd4b6950f6d4ddc6e23fa322f8f0f53')
+
+build() {
+ cd ${srcdir}/MarkupSafe-${pkgver}
+ python2 setup.py install --root=${pkgdir} --optimize=1
+
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/python-notify/PKGBUILD b/extra/python-notify/PKGBUILD
new file mode 100644
index 000000000..efb98fd88
--- /dev/null
+++ b/extra/python-notify/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 113112 2011-03-08 08:49:12Z ibiru $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: Mario Danic <mario.danic@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+pkgname=python-notify
+pkgver=0.1.1
+pkgrel=10
+pkgdesc="Python bindings for libnotify"
+arch=('i686' 'x86_64')
+url="http://www.galago-project.org/"
+license=('GPL')
+depends=('pygtk>=2.22.0' 'libnotify>=0.7.1')
+makedepends=('pkgconfig' 'python2')
+options=(!libtool)
+source=(http://www.galago-project.org/files/releases/source/notify-python/notify-python-${pkgver}.tar.gz
+ libnotify07.patch
+ notify-python-0.1.1-fix-GTK-symbols.patch)
+md5sums=('8f0ef0939cc8edd2efd896ce5ba80cf4'
+ 'b40c4542575d5aef559908fe60a21634'
+ 'c6922028da5951e69a6a0167bdb4461c')
+
+build() {
+ cd ${srcdir}/notify-python-${pkgver}
+
+ patch -Np1 -i ${srcdir}/libnotify07.patch
+ patch -Np1 -i ${srcdir}/notify-python-0.1.1-fix-GTK-symbols.patch
+
+ ./configure --prefix=/usr
+
+ # WARNING - we touch src/pynotify.override in build because upstream did not rebuild pynotify.c
+ # from the input definitions, this forces pynotify.c to be regenerated, at some point this can be removed
+ touch src/pynotify.override
+
+ make clean
+ make
+}
+
+package() {
+ cd ${srcdir}/notify-python-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/python-notify/libnotify07.patch b/extra/python-notify/libnotify07.patch
new file mode 100644
index 000000000..289573d50
--- /dev/null
+++ b/extra/python-notify/libnotify07.patch
@@ -0,0 +1,36 @@
+diff -up notify-python-0.1.1/src/pynotify.defs.notify070 notify-python-0.1.1/src/pynotify.defs
+--- notify-python-0.1.1/src/pynotify.defs.notify070 2010-11-02 17:11:14.928179237 -0400
++++ notify-python-0.1.1/src/pynotify.defs 2010-11-02 17:11:51.153180231 -0400
+@@ -38,7 +38,6 @@
+ '("const-gchar*" "summary")
+ '("const-gchar*" "message" (null-ok) (default "NULL"))
+ '("const-gchar*" "icon" (null-ok) (default "NULL"))
+- '("GtkWidget*" "attach" (null-ok) (default "NULL"))
+ )
+ )
+
+@@ -53,24 +52,6 @@
+ )
+ )
+
+-(define-method attach_to_widget
+- (of-object "NotifyNotification")
+- (c-name "notify_notification_attach_to_widget")
+- (return-type "none")
+- (parameters
+- '("GtkWidget*" "attach")
+- )
+-)
+-
+-(define-method attach_to_status_icon
+- (of-object "NotifyNotification")
+- (c-name "notify_notification_attach_to_status_icon")
+- (return-type "none")
+- (parameters
+- '("GtkStatusIcon*" "attach")
+- )
+-)
+-
+ (define-method show
+ (of-object "NotifyNotification")
+ (c-name "notify_notification_show")
diff --git a/extra/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch b/extra/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch
new file mode 100644
index 000000000..f985c0136
--- /dev/null
+++ b/extra/python-notify/notify-python-0.1.1-fix-GTK-symbols.patch
@@ -0,0 +1,25 @@
+diff -up notify-python-0.1.1/src/__init__.py.BAD notify-python-0.1.1/src/__init__.py
+--- notify-python-0.1.1/src/__init__.py.BAD 2010-08-31 09:04:45.353844005 -0400
++++ notify-python-0.1.1/src/__init__.py 2010-08-31 09:04:49.281844300 -0400
+@@ -1 +1,21 @@
++"""
++Fedora's libnotify.so is not linked against GTK2 or GTK3. The idea
++was to support being linked against different parallel-installable
++GTK stacks.
++
++Unfortunately, python needs to jump through some special hoops in order
++to share symbols with extension modules, specifically, pygtk, which does
++link against GTK2.
++
++Without using sys.setdlopenflags(sys.getdlopenflags() | ctypes.RTLD_GLOBAL),
++the result is:
++libnotify-WARNING **: Missing symbol 'gdk_screen_make_display_name'
++
++Thanks to David Malcolm for figuring out the workaround.
++"""
++import ctypes
++import sys
++sys.setdlopenflags(sys.getdlopenflags() | ctypes.RTLD_GLOBAL)
++import gtk
++
+ from _pynotify import *
diff --git a/extra/python-numpy/PKGBUILD b/extra/python-numpy/PKGBUILD
new file mode 100755
index 000000000..f7aaa3edf
--- /dev/null
+++ b/extra/python-numpy/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 110670 2011-02-21 12:18:28Z stephane $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+
+pkgbase=python-numpy
+pkgname=('python2-numpy' 'python3-numpy')
+pkgver=1.5.1
+pkgrel=2
+pkgdesc="Scientific tools for Python"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://numpy.scipy.org/"
+makedepends=('lapack' 'python' 'python2' 'python-distribute' 'python2-distribute' 'gcc-fortran' 'python-nose')
+source=(http://downloads.sourceforge.net/numpy/numpy-${pkgver}.tar.gz)
+md5sums=('376ef150df41b5353944ab742145352d')
+
+build() {
+ cd "${srcdir}"
+ cp -a numpy-${pkgver} numpy-py2-${pkgver}
+
+ export Atlas=None
+ export LDFLAGS="$LDFLAGS -shared"
+
+ echo "Building Python2"
+ cd "${srcdir}/numpy-py2-${pkgver}"
+ python2 setup.py config_fc --fcompiler=gnu95 build
+
+ echo "Building Python3"
+ cd "${srcdir}/numpy-${pkgver}"
+ python setup.py config_fc --fcompiler=gnu95 build
+}
+
+package_python2-numpy() {
+ depends=('lapack' 'python2')
+ provides=("python-numpy=${pkgver}")
+ replaces=('python-numpy')
+ conflicts=('python-numpy')
+ optdepends=('python-nose: testsuite')
+
+ cd "${srcdir}/numpy-py2-${pkgver}"
+ python2 setup.py config_fc --fcompiler=gnu95 install --prefix=/usr --root="${pkgdir}" --optimize=1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/python2-numpy"
+ install -m644 LICENSE.txt "${pkgdir}/usr/share/licenses/python2-numpy/"
+
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ -e "s|#![ ]*/bin/env python$|#!/usr/bin/env python2|" \
+ $(find ${pkgdir} -name '*.py')
+}
+
+package_python3-numpy() {
+ depends=('lapack' 'python')
+
+ cd "${srcdir}/numpy-${pkgver}"
+ python setup.py config_fc --fcompiler=gnu95 install --prefix=/usr --root="${pkgdir}" --optimize=1
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/python3-numpy"
+ install -m644 LICENSE.txt "${pkgdir}/usr/share/licenses/python3-numpy/"
+}
diff --git a/extra/python-pygame/ChangeLog b/extra/python-pygame/ChangeLog
new file mode 100644
index 000000000..ddfd90fe8
--- /dev/null
+++ b/extra/python-pygame/ChangeLog
@@ -0,0 +1,30 @@
+2010-08-24 Eric Belanger <eric@archlinux.org>
+
+ * Rebuilt for python2
+
+2009-08-06 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated to: 1.9.1
+
+2009-08-03 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Adding the examples folder
+
+2009-08-01 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for x86_64: 1.9.0
+
+2008-08-06 Eric Belanger <eric@archlinux.org>
+
+ * python-pygame 1.8.1-2
+ * Fixed file permissions (close FS#11082)
+
+2008-07-31 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 1.8.1
+
+2008-03-31 Eric Belanger <eric@archlinux.org>
+
+ * python-pygame 1.8.0-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/extra/python-pygame/PKGBUILD b/extra/python-pygame/PKGBUILD
new file mode 100644
index 000000000..a3447b7ce
--- /dev/null
+++ b/extra/python-pygame/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 88496 2010-08-24 05:39:06Z eric $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: john(?)
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=python-pygame
+pkgver=1.9.1
+pkgrel=3
+pkgdesc="Python game library"
+arch=('i686' 'x86_64')
+url="http://www.pygame.org/"
+license=('LGPL')
+depends=('python2' 'sdl_mixer' 'libvorbis' 'sdl_ttf' 'sdl_image' 'smpeg')
+replaces=('pygame')
+provides=('pygame')
+changelog=ChangeLog
+source=(http://pygame.org/ftp/pygame-${pkgver}release.tar.gz 'config.patch')
+md5sums=('1c4cdc708d17c8250a2d78ef997222fc' 'aaa668f3cd710d8604114501ea6a6f48')
+sha1sums=('a45aeb0623e36ae7a1707b5f41ee6274f72ca4fa' '285815e28705d5a2aea53c9d952d35fddf10dd13')
+
+build() {
+ cd "${srcdir}/pygame-${pkgver}release"
+ patch -Np0 -i "${srcdir}/config.patch"
+ python2 config.py -auto
+}
+
+package() {
+ cd "${srcdir}/pygame-${pkgver}release"
+ python2 setup.py install --root="${pkgdir}" --prefix=/usr
+
+ # Copying the examples and tests
+ cp -R examples lib/* "${pkgdir}/usr/lib/python2.7/site-packages/pygame"
+ cp -R test/* "${pkgdir}/usr/lib/python2.7/site-packages/pygame/tests"
+
+ # Fixing permissions
+ chmod 644 "${pkgdir}"/usr/include/python2.7/pygame/*
+}
diff --git a/extra/python-pygame/config.patch b/extra/python-pygame/config.patch
new file mode 100644
index 000000000..b3dab162c
--- /dev/null
+++ b/extra/python-pygame/config.patch
@@ -0,0 +1,26 @@
+Index: config_unix.py
+===================================================================
+--- config_unix.py (revision 2567)
++++ config_unix.py (working copy)
+@@ -174,7 +174,7 @@
+
+ for d in DEPS[1:]:
+ if not d.found:
+- if not confirm("""
++ if "-auto" not in sys.argv and not confirm("""
+ Warning, some of the pygame dependencies were not found. Pygame can still
+ compile and install, but games that depend on those missing dependencies
+ will not run. Would you like to continue the configuration?"""):
+Index: config_msys.py
+===================================================================
+--- config_msys.py (revision 2567)
++++ config_msys.py (working copy)
+@@ -283,7 +283,7 @@
+
+ for d in DEPS[1:]:
+ if not d.found:
+- if not confirm("""
++ if "-auto" not in sys.argv and not confirm("""
+ Warning, some of the pygame dependencies were not found. Pygame can still
+ compile and install, but games that depend on those missing dependencies
+ will not run. Would you like to continue the configuration?"""):
diff --git a/extra/python-pyspi/PKGBUILD b/extra/python-pyspi/PKGBUILD
new file mode 100644
index 000000000..ef5c18be6
--- /dev/null
+++ b/extra/python-pyspi/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 89911 2010-09-04 17:41:32Z remy $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=python-pyspi
+pkgver=0.6.1
+pkgrel=4
+pkgdesc="Python AT-SPI bindings"
+arch=('i686' 'x86_64')
+url="http://people.redhat.com/zcerza/dogtail"
+license=('LGPL')
+depends=('python2' 'at-spi>=1.7.12')
+makedepends=('pyrex')
+conflicts=('pyspi')
+provides=('pyspi')
+replaces=('pyspi')
+source=(http://dlc.sun.com/osol/jds/downloads/sources/pyspi-${pkgver}.tar.gz
+ pyspi-build.patch)
+md5sums=('def336bd566ea688a06ec03db7ccf1f4'
+ '721f74cbae653a258c00b83acf7dd1da')
+
+build() {
+ cd ${srcdir}/pyspi-${pkgver}
+ patch -Np1 -i ${srcdir}/pyspi-build.patch
+ # Pyrex tells us to use __cinit__ instead of __new__
+ sed -i 's/__new__/__cinit__/' pyspi.pyx
+ python2 setup.py install --root=${pkgdir}
+}
diff --git a/extra/python-pyspi/pyspi-build.patch b/extra/python-pyspi/pyspi-build.patch
new file mode 100644
index 000000000..3d12c5ed5
--- /dev/null
+++ b/extra/python-pyspi/pyspi-build.patch
@@ -0,0 +1,1693 @@
+diff -Naur pyspi-0.6.1-old/cspi.pxd pyspi-0.6.1/cspi.pxd
+--- pyspi-0.6.1-old/cspi.pxd 2006-08-04 06:27:10.000000000 +1000
++++ pyspi-0.6.1/cspi.pxd 2009-05-09 15:24:31.000000000 +1000
+@@ -14,9 +14,7 @@
+
+ ctypedef struct AccessibleTextRange
+ ctypedef struct AccessibleKeySet
+- ctypedef enum SPIBoolean:
+- FALSE = 0,
+- TRUE
++ ctypedef unsigned int SPIBoolean
+
+ ctypedef struct AccessibleEvent:
+ char *type
+diff -Naur pyspi-0.6.1-old/pyspi.pyx pyspi-0.6.1/pyspi.pyx
+--- pyspi-0.6.1-old/pyspi.pyx 2006-10-03 02:46:41.000000000 +1000
++++ pyspi-0.6.1/pyspi.pyx 2009-05-09 15:24:31.000000000 +1000
+@@ -25,9 +25,15 @@
+ cdef class Event (EventBase)
+ cdef class DeviceEvent
+
+-ctypedef enum bool:
++ctypedef unsigned int bool
++
++import __builtin__
++try:
++ False = __builtin__.False
++ True = __builtin__.True
++except AttributeError:
+ False = 0
+- True
++ True = 1
+
+ # SPIExceptionCode values:
+ (SPI_EXCEPTION_UNSPECIFIED, SPI_EXCEPTION_DISCONNECT, SPI_EXCEPTION_NO_IMPL, SPI_EXCEPTION_IO, SPI_EXCEPTION_BAD_DATA)=range(5)
+@@ -731,7 +737,7 @@
+ Wrapper around the low-level cspi.AccessibleComponent_ functions,
+ giving an OO-style API.
+ """
+- def getExtents (self, type=0):
++ def getExtents (self, key_type=0):
+ """
+ Wraps cspi.AccessibleComponent_getExtents, returning an
+ (x,y,w,h) tuple.
+@@ -741,7 +747,7 @@
+ cspi.AccessibleComponent_getExtents (self.__item, &x, &y, &w, &h, type)
+ return (x, y, w, h)
+
+- def getPosition (self, type = 0):
++ def getPosition (self, key_type = 0):
+ """
+ Wraps cspi.AccessibleComponent_getPosition, returning an
+ (x,y) tuple.
+@@ -991,11 +997,11 @@
+ Wraps cspi.AccessibleHyperlink_getObject
+ """
+ self.__checkSelf ()
+- cdef Accessible object
+- object = Accessible ()
+- object.__setItem (cspi.AccessibleHyperlink_getObject (self.__item, i))
+- object.__checkSelf ()
+- return object
++ cdef Accessible obj
++ obj = Accessible ()
++ obj.__setItem (cspi.AccessibleHyperlink_getObject (self.__item, i))
++ obj.__checkSelf ()
++ return obj
+
+ def getURI (self, i):
+ """
+@@ -1032,7 +1038,7 @@
+ cspi.AccessibleImage_getImageSize(self.__item, &w, &h);
+ return [w, h]
+
+- def getImagePosition (self, type=0):
++ def getImagePosition (self, key_type=0):
+ """
+ Wraps cspi.AccessibleImage_getImagePosition, returning a (x,y)
+ pair
+@@ -1042,7 +1048,7 @@
+ cspi.AccessibleImage_getImagePosition(self.__item, &x, &y, type)
+ return [x, y]
+
+- def getImageExtents (self, type=0):
++ def getImageExtents (self, key_type=0):
+ """
+ Wraps cspi.AccessibleImage_getImageExtents, returning a
+ (x,y,w,h) tuple
+@@ -1551,7 +1557,7 @@
+ cdef cspi.AccessibleDeviceListener *__item
+ cdef public object modMasks
+
+- def __init__ (self, callback, eventMask = cspi.SPI_KEY_PRESSED | cspi.SPI_KEY_RELEASED):
++ def __init__ (self, callback, eventMask = <int> cspi.SPI_KEY_PRESSED | <int> cspi.SPI_KEY_RELEASED):
+ """
+ Registers a python callback function to be called.
+
+diff -Naur pyspi-0.6.1-old/pyspi.pyx.orig pyspi-0.6.1/pyspi.pyx.orig
+--- pyspi-0.6.1-old/pyspi.pyx.orig 1970-01-01 10:00:00.000000000 +1000
++++ pyspi-0.6.1/pyspi.pyx.orig 2006-10-03 02:46:41.000000000 +1000
+@@ -0,0 +1,1592 @@
++# Authors:
++# Zack Cerza <zcerza@redhat.com>
++# Chris Lee <clee@redhat.com>
++# Lawrence Lim <llim@redhat.com>
++# David Malcolm <dmalcolm@redhat.com>
++
++cdef class Registry
++
++cdef class Base
++cdef class EventBase
++cdef class StateSet
++cdef class Accessible (Base)
++cdef class Desktop (Accessible)
++cdef class Application (Accessible)
++cdef class Component (Accessible)
++cdef class Action (Base)
++cdef class Text (Base)
++cdef class EditableText (Text)
++cdef class Hypertext (Text)
++cdef class Hyperlink (Base)
++cdef class Image (Base)
++cdef class Value (Base)
++cdef class Selection (Base)
++cdef class Table (Base)
++cdef class Event (EventBase)
++cdef class DeviceEvent
++
++ctypedef enum bool:
++ False = 0
++ True
++
++# SPIExceptionCode values:
++(SPI_EXCEPTION_UNSPECIFIED, SPI_EXCEPTION_DISCONNECT, SPI_EXCEPTION_NO_IMPL, SPI_EXCEPTION_IO, SPI_EXCEPTION_BAD_DATA)=range(5)
++
++# SPIExceptionType values:
++(SPI_EXCEPTION_SOURCE_UNSPECIFIED, SPI_EXCEPTION_SOURCE_ACCESSIBLE, SPI_EXCEPTION_SOURCE_REGISTRY, SPI_EXCEPTION_SOURCE_DEVICE)=range(4)
++
++# Accessible roles
++(SPI_ROLE_INVALID, SPI_ROLE_ACCEL_LABEL, SPI_ROLE_ALERT, SPI_ROLE_ANIMATION, SPI_ROLE_ARROW, SPI_ROLE_CALENDAR, SPI_ROLE_CANVAS, SPI_ROLE_CHECK_BOX, SPI_ROLE_CHECK_MENU_ITEM, SPI_ROLE_COLOR_CHOOSER, SPI_ROLE_COLUMN_HEADER, SPI_ROLE_COMBO_BOX, SPI_ROLE_DATE_EDITOR, SPI_ROLE_DESKTOP_ICON, SPI_ROLE_DESKTOP_FRAME, SPI_ROLE_DIAL, SPI_ROLE_DIALOG, SPI_ROLE_DIRECTORY_PANE, SPI_ROLE_DRAWING_AREA, SPI_ROLE_FILE_CHOOSER, SPI_ROLE_FILLER, SPI_ROLE_FONT_CHOOSER, SPI_ROLE_FRAME, SPI_ROLE_GLASS_PANE, SPI_ROLE_HTML_CONTAINER, SPI_ROLE_ICON, SPI_ROLE_IMAGE, SPI_ROLE_INTERNAL_FRAME, SPI_ROLE_LABEL, SPI_ROLE_LAYERED_PANE, SPI_ROLE_LIST, SPI_ROLE_LIST_ITEM, SPI_ROLE_MENU, SPI_ROLE_MENU_BAR, SPI_ROLE_MENU_ITEM, SPI_ROLE_OPTION_PANE, SPI_ROLE_PAGE_TAB, SPI_ROLE_PAGE_TAB_LIST, SPI_ROLE_PANEL, SPI_ROLE_PASSWORD_TEXT, SPI_ROLE_POPUP_MENU, SPI_ROLE_PROGRESS_BAR, SPI_ROLE_PUSH_BUTTON, SPI_ROLE_RADIO_BUTTON, SPI_ROLE_RADIO_MENU_ITEM, SPI_ROLE_ROOT_PANE, SPI_ROLE_ROW_HEADER, SPI_ROLE_SCROLL_BAR, SPI_ROLE_SCROLL_PANE, SPI_ROLE_SEPARATOR, SPI_ROLE_SLIDER, SPI_ROLE_SPIN_BUTTON, SPI_ROLE_SPLIT_PANE, SPI_ROLE_STATUS_BAR, SPI_ROLE_TABLE, SPI_ROLE_TABLE_CELL, SPI_ROLE_TABLE_COLUMN_HEADER, SPI_ROLE_TABLE_ROW_HEADER, SPI_ROLE_TEAROFF_MENU_ITEM, SPI_ROLE_TERMINAL, SPI_ROLE_TEXT, SPI_ROLE_TOGGLE_BUTTON, SPI_ROLE_TOOL_BAR, SPI_ROLE_TOOL_TIP, SPI_ROLE_TREE, SPI_ROLE_TREE_TABLE, SPI_ROLE_UNKNOWN, SPI_ROLE_VIEWPORT, SPI_ROLE_WINDOW, SPI_ROLE_EXTENDED, SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH, SPI_ROLE_RULER, SPI_ROLE_APPLICATION, SPI_ROLE_AUTOCOMPLETE, SPI_ROLE_EDITBAR, SPI_ROLE_EMBEDDED, SPI_ROLE_LAST_DEFINED)=range(79)
++
++# Accessible states
++(SPI_STATE_INVALID, SPI_STATE_ACTIVE, SPI_STATE_ARMED, SPI_STATE_BUSY, SPI_STATE_CHECKED, SPI_STATE_COLLAPSED, SPI_STATE_DEFUNCT, SPI_STATE_EDITABLE, SPI_STATE_ENABLED, SPI_STATE_EXPANDABLE, SPI_STATE_EXPANDED, SPI_STATE_FOCUSABLE, SPI_STATE_FOCUSED, SPI_STATE_HORIZONTAL, SPI_STATE_ICONIFIED, SPI_STATE_MODAL, SPI_STATE_MULTI_LINE, SPI_STATE_MULTISELECTABLE, SPI_STATE_OPAQUE, SPI_STATE_PRESSED, SPI_STATE_RESIZABLE, SPI_STATE_SELECTABLE, SPI_STATE_SELECTED, SPI_STATE_SENSITIVE, SPI_STATE_SHOWING, SPI_STATE_SINGLE_LINE, SPI_STATE_STALE, SPI_STATE_TRANSIENT, SPI_STATE_VERTICAL, SPI_STATE_VISIBLE, SPI_STATE_MANAGES_DESCENDANTS, SPI_STATE_INDETERMINATE) = range(32);
++
++# Accessible relation types
++(SPI_RELATION_NULL, SPI_RELATION_LABEL_FOR, SPI_RELATION_LABELED_BY, SPI_RELATION_CONTROLLER_FOR, SPI_RELATION_CONTROLLED_BY, SPI_RELATION_MEMBER_OF, SPI_RELATION_NODE_CHILD_OF, SPI_RELATION_EXTENDED, SPI_RELATION_FLOWS_TO, SPI_RELATION_FLOWS_FROM, SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY, SPI_RELATION_POPUP_FOR, SPI_RELATION_LAST_DEFINED) = range (15);
++
++# AccessibleComponent layers
++(SPI_LAYER_INVALID, SPI_LAYER_BACKGROUND, SPI_LAYER_CANVAS, SPI_LAYER_WIDGET, SPI_LAYER_MDI, SPI_LAYER_POPUP, SPI_LAYER_OVERLAY, SPI_LAYER_WINDOW, SPI_LAYER_LAST_DEFINED) = range(9)
++
++#AccessibleKeySynthType
++(SPI_KEY_PRESS, SPI_KEY_RELEASE, SPI_KEY_PRESSRELEASE, SPI_KEY_SYM, SPI_KEY_STRING) = range(5)
++
++# AccessibleKeyListenerSyncType
++(SPI_KEYLISTENER_NOSYNC, SPI_KEYLISTENER_SYNCHRONOUS, SPI_KEYLISTENER_CANCONSUME, SPI_KEYLISTENER_ALL_WINDOWS) = range(4)
++
++# AccessibleDeviceEventType
++SPI_KEY_PRESSED = 1<<0
++SPI_KEY_RELEASED = 1<<1
++SPI_BUTTON_PRESSED = 1<<2
++SPI_BUTTON_RELEASED = 1<<3
++
++cdef cspi.AccessibleKeySet *SPI_KEYSET_ALL_KEYS
++SPI_KEYSET_ALL_KEYS = NULL
++
++Accessibility_MODIFIER_SHIFT = 1 << 0
++Accessibility_MODIFIER_SHIFTLOCK = 1 << 1
++Accessibility_MODIFIER_CONTROL = 1 << 2
++Accessibility_MODIFIER_ALT = 1 << 3
++Accessibility_MODIFIER_META = 1 << 4
++Accessibility_MODIFIER_META2 = 1 << 5
++Accessibility_MODIFIER_META3 = 1 << 6
++Accessibility_MODIFIER_NUMLOCK = 1 << 7
++
++
++cdef object string(char * string):
++ cdef object pyString
++ pyString = string
++ cspi.SPI_freeString(string)
++ return pyString
++
++import os
++class X11Exception(Exception):
++ def __init__(self, display = os.environ.get('DISPLAY', None)):
++ self.display = display
++ def __str__(self):
++ msg = "Cannot open display"
++ if self.display: return msg + ': ' + self.display
++ else: return msg
++
++class AtspiException(Exception):
++ """
++ Exceptions raised when calls to the AT-SPI C bindings return FALSE to
++ indicate failure.
++ """
++ def __init__(self, message):
++ self.message = message
++
++ def __str__(self):
++ return "AtspiException: %s"%self.message
++
++class SpiException(Exception):
++ """
++ Exceptions to be raised in response to an installed
++ SPIExceptionHandler, corresponding to a SPIException. These appear to
++ be short-lived structs, so we gather all applicable data immediately
++ """
++ def __init__(self, is_fatal, sourceType, exceptionCode, description):
++ # print "got to __init__"
++ self.fatal = is_fatal
++ self.sourceType = sourceType
++ self.exceptionCode = exceptionCode
++ self.description = description
++
++ # print "leaving __init__"
++ # print self.fatal
++ # print self.sourceType
++ # print self.exceptionCode
++ # print self.description
++
++ def __str__(self):
++ if self.fatal:
++ fatalStr = "Fatal"
++ else:
++ fatalStr = "Non-fatal"
++ result = '%s SPIException: type:%s source:%s "%s"'%(fatalStr, self.sourceType, self.exceptionCode, self.description)
++ return result
++
++cdef make_exception(cspi.SPIException *err, cspi.SPIBoolean is_fatal):
++ # Don't attempt to use SPIAccessibleException_getSource; this is error
++ # handling code, we don't want to introduce further complications
++ return SpiException(is_fatal,
++ cspi.SPIException_getSourceType (err),
++ cspi.SPIException_getExceptionCode (err),
++ cspi.SPIException_getDescription (err))
++
++
++def event_main():
++ cspi.SPI_event_main()
++
++def event_quit():
++ cspi.SPI_event_quit()
++
++cdef cspi.SPIBoolean exception_handler (cspi.SPIException *err, cspi.SPIBoolean is_fatal) except *:
++ # print "got exception!!!"
++ e = make_exception(err, is_fatal)
++ raise e
++
++# at-spi-<version>/cpsi.h contains:
++# typedef SPIBoolean (*SPIExceptionHandler) (SPIException *err, SPIBoolean is_fatal);
++# and
++# SPIBoolean SPI_exceptionHandlerPush (SPIExceptionHandler *handler);
++# There's thus an extra unnecessary level of indirection.
++# We have to jump through the following hoops to get pyrex to deal with this:
++cdef cspi.SPIExceptionHandler exception_handler_as_type
++cdef cspi.SPIExceptionHandler* exception_handler_ptr
++exception_handler_as_type = exception_handler
++exception_handler_ptr = &exception_handler_as_type
++
++global_exception = None
++
++cdef class Registry:
++ def __init__ (self):
++ cdef Xlib.Display *display
++ display = Xlib.XOpenDisplay(NULL)
++ if display == NULL:
++ raise X11Exception
++ else:
++ Xlib.XCloseDisplay(display)
++
++ result = cspi.SPI_init ()
++ #if result!=0:
++ # raise AtspiException("SPI_init: exit code %s" % str(result))
++
++ result = cspi.SPI_exceptionHandlerPush (exception_handler_ptr)
++ if not result:
++ raise AtspiException("Unable to install SPI exception handler")
++
++ def __dealloc (self):
++ result = cspi.SPI_exit ()
++ if result!=0:
++ raise AtspiException("SPI_init: exit code %s" % str(result))
++
++ def getDesktopCount (self):
++ return cspi.SPI_getDesktopCount()
++
++ def getDesktop (self, index = 0):
++ cdef Desktop desktop
++ desktop = Desktop ()
++ if not desktop.__setItem (cspi.SPI_getDesktop (index)):
++ return False
++ return desktop
++
++ def getDesktopList (self):
++ # Using the bonobo.activation bindings, getDesktopList() returns a
++ # Python list of Desktop objects. The C bindings seem to do it differently,
++ # and Pyrex doesn't like that method. So we're re-implementing the function
++ # using getDesktopCount() and getDesktop() to work around that.
++ # Yay for Zack!
++ #
++ # -Zack
++ cdef Desktop desktop
++ desktops = []
++ desktop = Desktop ()
++ for i in xrange (cspi.SPI_getDesktopCount ()):
++ desktop.__setItem (cspi.SPI_getDesktop (i))
++ desktops = desktops + [desktop]
++ return desktops
++
++registry = Registry()
++
++cdef class Base:
++ """
++ Wrapper around a cspi.Accessible
++ """
++
++ cdef cspi.Accessible *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.Accessible_unref (self.__item)
++
++ cdef bool __setItem (self, cspi.Accessible *obj):
++ if self.__item != NULL:
++ cspi.Accessible_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.Accessible_ref (self.__item)
++ return True
++ else:
++ return False
++
++ def __checkSelf (self):
++ assert self.__item != NULL
++
++# WHY OH WHY won't this work? :(
++# I need to be able to find out of two Accessible classes contain
++# the same cspi.Accessible objects.
++#
++# def isSameAs (self, base):
++# cdef bool foo
++# foo = self.__item == base.__item
++# return foo
++
++cdef class EventBase:
++ """
++ Wrapper around a cspi.AccessibleEvent
++ """
++ cdef cspi.AccessibleEvent *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.AccessibleEvent_unref (self.__item)
++
++ cdef bool __setItem (self, cspi.AccessibleEvent *obj):
++ if self.__item != NULL:
++ cspi.AccessibleEvent_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.AccessibleEvent_ref (self.__item)
++ return True
++ else:
++ return False
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++ def __getattr__ (self, attrName):
++ cdef cspi.Accessible* acc
++ cdef Accessible result
++ if attrName == "source":
++ acc = self.__item.source
++ if acc!=NULL:
++ result = Accessible ()
++ result.__setItem (acc)
++ return result
++ elif attrName == "detail1":
++ detail1 = self.__item.detail1
++ return detail1
++ elif attrName == "detail2":
++ detail1 = self.__item.detail2
++ return detail1
++ elif attrName == "type":
++ return self.__item.type
++
++cdef class StateSet:
++ """
++ Wrapper around a cspi.AccessibleStateSet
++ """
++ cdef cspi.AccessibleStateSet *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.AccessibleStateSet_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++ cdef bool __setItem (self, cspi.AccessibleStateSet *obj):
++ if self.__item != NULL:
++ cspi.AccessibleStateSet_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.AccessibleStateSet_ref (self.__item)
++ return True
++ else:
++ return False
++
++ cdef bool __contains (self, cspi.AccessibleState s):
++ self.__checkSelf ()
++ return cspi.AccessibleStateSet_contains (self.__item, s)
++
++ def contains (self, state):
++ self.__checkSelf ()
++ return self.__contains(state)
++
++ cdef void __add (self, cspi.AccessibleState s):
++ self.__checkSelf ()
++ cspi.AccessibleStateSet_add(self.__item, s)
++
++ def add (self, state):
++ self.__checkSelf ()
++ self.__add (state)
++
++ cdef void __remove (self, cspi.AccessibleState s):
++ self.__checkSelf ()
++ cspi.AccessibleStateSet_remove (self.__item, s)
++
++ def remove (self, state):
++ self.__checkSelf ()
++ self.__remove (state)
++
++ def __str__ (self):
++ self.__checkSelf ()
++ return str(self.states)
++
++ def __getattr__(self, name):
++ if name == "states":
++ result = []
++ for state in range(SPI_STATE_INVALID, SPI_STATE_INDETERMINATE):
++ if self.contains(state):
++ result.append(state)
++ return result
++ else:
++ raise AttributeError, name
++
++cdef class Relation:
++ """
++ Wrapper around a cspi.AccessibleRelation
++ """
++ cdef cspi.AccessibleRelation *__item
++
++ def __new__ (self):
++ self.__item = NULL
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ cspi.AccessibleRelation_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++ def __str__ (self):
++ self.__checkSelf ()
++ return "relation %s -> %s"%(self.getRelationType (), self.getTargets())
++
++ def __repr__ (self):
++ self.__checkSelf ()
++ return "relation %s -> %s"%(self.getRelationType (), self.getTargets())
++
++ cdef bool __setItem (self, cspi.AccessibleRelation *obj):
++ if self.__item != NULL:
++ cspi.AccessibleRelation_unref (self.__item)
++ if obj != NULL:
++ self.__item = obj
++ cspi.AccessibleRelation_ref (self.__item)
++ return True
++ else:
++ return False
++
++ def getNTargets (self):
++ """
++ Wrapper around cspi.AccessibleRelation_getNTargets
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleRelation_getNTargets (self.__item)
++
++ def getTarget (self, i):
++ """
++ Wrapper around cspi.AccessibleRelation_getTarget
++ """
++ self.__checkSelf ()
++ cdef Accessible target
++ target = Accessible ()
++ target.__setItem (cspi.AccessibleRelation_getTarget (self.__item, i))
++ target.__checkSelf ()
++ return target
++
++ def getTargets (self):
++ """
++ Gets the targets of this AccessibleRelation as a list of atspi.Accessible
++ """
++ self.__checkSelf ()
++ result = []
++ count = self.getNTargets()
++ for i in range(count):
++ result.append(self.getTarget(i))
++ return result
++
++ def getRelationType (self):
++ """
++ Wrapper around cspi.AccessibleRelation_getRelationType
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleRelation_getRelationType (self.__item)
++
++cdef class Accessible (Base):
++ """
++ Wrapper around cspi.Accessible
++ """
++ def __getattr__ (self, name):
++ if name == "name":
++ return self.getName ()
++ elif name == "role":
++ return self.getRole ()
++ elif name == "roleName":
++ return self.getRoleName ()
++ elif name == "description":
++ return self.getDescription ()
++ elif name == "parent":
++ return self.getParent ()
++ elif name == "childCount":
++ return self.getChildCount ()
++ elif name == "indexInParent":
++ return self.getIndexInParent ()
++ elif name == "stateSet":
++ return self.getStateSet ()
++ else:
++ raise AttributeError, name
++
++ def getName (self):
++ """
++ Wrapper around cspi.Accessible_getName
++ """
++ self.__checkSelf()
++ return string(cspi.Accessible_getName(self.__item))
++
++ def getDescription (self):
++ """
++ Wrapper around cspi.Accessible_getDescription
++ """
++ self.__checkSelf()
++ return string(cspi.Accessible_getDescription(self.__item))
++
++ def getParent (self):
++ """
++ Wrapper around cspi.Accessible_getParent, returning an
++ atspi.Accessible or None
++ """
++ self.__checkSelf()
++ cdef Accessible parent
++ cdef cspi.Accessible* spiParent
++
++ spiParent = cspi.Accessible_getParent (self.__item)
++ if spiParent!=NULL:
++ parent = Accessible ()
++ parent.__setItem (spiParent)
++ parent.__checkSelf ()
++ return parent
++ else:
++ return None
++
++ def getChildAtIndex (self, index):
++ """
++ Wrapper around cspi.Accessible_getChildAtIndex, returning an
++ atspi.Accessible, atspi.Application, or None
++ """
++ self.__checkSelf()
++ cdef int i
++ i = index
++
++ # This hairiness is due to the fact that Pyrex doesn't allow cdefs
++ # inside if blocks.
++
++ cdef cspi.Accessible* spiChild
++ spiChild = cspi.Accessible_getChildAtIndex (self.__item, i)
++ # Workaround for GNOME bug #321273
++ # http://bugzilla.gnome.org/show_bug.cgi?id=321273
++ if spiChild == NULL: return None
++
++ cdef object child
++ cdef Application app
++ cdef Accessible acc
++ cdef Text text
++
++ if cspi.Accessible_isApplication (spiChild):
++ app = Application ()
++ app.__setItem (spiChild)
++ child = app
++ else:
++ acc = Accessible ()
++ acc.__setItem (spiChild)
++ child = acc
++
++ return child
++
++ def getIndexInParent (self):
++ """
++ Wrapper around cspi.Accessible_getIndexInParent
++ """
++ self.__checkSelf()
++ return cspi.Accessible_getIndexInParent (self.__item)
++
++ def getRole (self):
++ """
++ Wrapper around cspi.Accessible_getRole
++ """
++ self.__checkSelf()
++ return cspi.Accessible_getRole (self.__item)
++
++ def getRoleName (self):
++ """
++ Wrapper around cspi.Accessible_getRoleName
++ """
++ self.__checkSelf()
++ return string(cspi.Accessible_getRoleName (self.__item))
++
++ def getChildCount (self):
++ """
++ Wrapper around cspi.Accessible_getChildCount
++ """
++ self.__checkSelf()
++ return cspi.Accessible_getChildCount (self.__item)
++
++ def getStateSet (self):
++ """
++ Wrapper around cspi.Accessible_getStateSet, returning an
++ atspi.StateSet
++ """
++ self.__checkSelf()
++ cdef StateSet set
++ set = StateSet()
++ set.__setItem (cspi.Accessible_getStateSet (self.__item))
++ return set
++
++ def getInterface (self, interface):
++ """
++ This is NOT part of cspi, it is just for compatibility with
++ the bonobo bindings and will probably go away soon.
++ """
++ self.__checkSelf()
++ return getattr(self, "get%s" % interface) ()
++
++ def getAction (self):
++ """
++ Wrapper around cspi.Accessible_getAction, returning
++ an atspi.Action or None
++ """
++ self.__checkSelf()
++ cdef Action action
++ action = Action ()
++ action.__setItem (cspi.Accessible_getAction (self.__item))
++ if action.__item != NULL:
++ return action
++
++ def getText (self):
++ """
++ Wrapper around cspi.Accessible_getText, returning an atspi.Text
++ or None
++ """
++ self.__checkSelf ()
++ cdef Text text
++ text = Text ()
++ text.__setItem (cspi.Accessible_getText (self.__item))
++ if text.__item != NULL:
++ return text
++
++ def getEditableText (self):
++ """
++ Wrapper around cspi.Accessible_getText, returning an
++ atspi.EditableText or None
++ """
++ self.__checkSelf ()
++ cdef EditableText etext
++ etext = EditableText ()
++ etext.__setItem (cspi.Accessible_getEditableText (self.__item))
++ if etext.__item != NULL:
++ return etext
++
++ def getHypertext (self):
++ """
++ Wrapper around cspi.Accessible_getHypertext, returning an
++ atspi.Hypertext or None
++ """
++ self.__checkSelf ()
++ cdef Hypertext hypertext
++ hypertext = Hypertext ()
++ hypertext.__setItem (cspi.Accessible_getHypertext (self.__item))
++ if hypertext.__item != NULL:
++ return hypertext
++
++ def getImage (self):
++ """
++ Wrapper around cspi.Accessible_getImage, returning an
++ atspi.Image or None
++ """
++ self.__checkSelf ()
++ cdef Image image
++ image = Image ()
++ image.__setItem (cspi.Accessible_getImage (self.__item))
++ if image.__item != NULL:
++ return image
++
++ def getValue (self):
++ """
++ Wrapper around cspi.Accessible_getValue, returning an
++ atspi.Value or None
++ """
++ self.__checkSelf ()
++ cdef Value value
++ value = Value ()
++ value.__setItem (cspi.Accessible_getValue (self.__item))
++ if value.__item != NULL:
++ return value
++
++ def getSelection (self):
++ """
++ Wrapper around cspi.Accessible_getSelection, returning an
++ atspi.Selection or None
++ """
++ self.__checkSelf ()
++ cdef Selection selection
++ selection = Selection ()
++ selection.__setItem (cspi.Accessible_getSelection (self.__item))
++ if selection.__item != NULL:
++ return selection
++
++ def getComponent (self):
++ """
++ Wrapper around cspi.Accessible_getComponent, returning an
++ atspi.Component or None
++ """
++ self.__checkSelf ()
++ cdef Component component
++ component = Component ()
++ component.__setItem (cspi.Accessible_getComponent (self.__item))
++ if component.__item != NULL:
++ return component
++
++ def getRelationSet (self):
++ """
++ Wraps Accessible_getRelationSet, returning a list
++ of atspi.Relation
++ """
++ # looking at at-poke, result from C API appears to be a NULL-terminated list of pointers, and that we should free the buffer
++ self.__checkSelf ()
++ cdef Relation relation
++
++ relations = []
++ cdef cspi.AccessibleRelation **relationSet
++ relationSet = cspi.Accessible_getRelationSet (self.__item)
++
++ i=0
++ while relationSet[i]:
++ relation = Relation ()
++ relation.__setItem (relationSet[i])
++ relations.append(relation)
++ i=i+1
++ cspi.free (relationSet)
++
++ return relations
++
++
++cdef class Desktop (Accessible):
++ pass
++
++
++cdef class Application (Accessible):
++ """
++ Wrapper around the low-level cspi.AccessibleApplication_ functions,
++ giving an OO-style API.
++ """
++ def getToolkit (self):
++ """
++ Wraps AccessibleApplication_getToolkitName, returning a string
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_getToolkitName (self.__item)
++
++ def getVersion (self):
++ """
++ Wraps AccessibleApplication_getVersion, returning a string
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_getVersion(self.__item)
++
++ def getID (self):
++ """
++ Wraps AccessibleApplication_getID, returning a string
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_getID (self.__item)
++
++ def pause (self):
++ """
++ Wraps AccessibleApplication_pause
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_pause (self.__item)
++
++ def resume (self):
++ """
++ Wraps AccessibleApplication_resume
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleApplication_resume (self.__item)
++
++cdef class Component (Accessible):
++ """
++ Wrapper around the low-level cspi.AccessibleComponent_ functions,
++ giving an OO-style API.
++ """
++ def getExtents (self, type=0):
++ """
++ Wraps cspi.AccessibleComponent_getExtents, returning an
++ (x,y,w,h) tuple.
++ """
++ self.__checkSelf ()
++ cdef long x, y, w, h
++ cspi.AccessibleComponent_getExtents (self.__item, &x, &y, &w, &h, type)
++ return (x, y, w, h)
++
++ def getPosition (self, type = 0):
++ """
++ Wraps cspi.AccessibleComponent_getPosition, returning an
++ (x,y) tuple.
++ """
++ self.__checkSelf ()
++ cdef long x, y
++ cspi.AccessibleComponent_getPosition (self.__item, &x, &y, type)
++ return (x, y)
++
++ def getSize (self):
++ """
++ Wraps cspi.AccessibleComponent_getSize, returning a
++ (w,h) tuple.
++ """
++ self.__checkSelf ()
++ cdef long w, h
++ cspi.AccessibleComponent_getSize (self.__item, &w, &h)
++ return (w, h)
++
++ def getLayer (self):
++ """
++ Wraps cspi.AccessibleComponent_getLayer, returning an
++ AccessibleComponentLayer.
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleComponent_getLayer (self.__item)
++
++ def grabFocus (self):
++ """
++ Wraps cspi.AccessibleComponent_grabFocus, raising AtspiException
++ if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleComponent_grabFocus (self.__item):
++ raise AtspiException("AccessibleComponent_grabFocus")
++
++ def getMDIZOrder (self):
++ """
++ Wraps cspi.AccessibleComponent_getMDIZOrder, returning an integer.
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleComponent_getMDIZOrder(self.__item)
++
++cdef class Action (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleAction_ functions,
++ giving an OO-style API.
++ """
++ def __getattr__ (self, name):
++ if name == "nActions":
++ return self.getNActions ()
++ else:
++ raise AttributeError, name
++
++ def getNActions (self):
++ """
++ Wraps cspi.AccessibleAction_getNActions
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleAction_getNActions (self.__item)
++
++ def doAction (self, index):
++ """
++ Wraps cspi.AccessibleAction_doAction
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleAction_doAction (self.__item, index)
++
++ def getKeyBinding (self, index):
++ """
++ Wraps cspi.AccessibleAction_getKeyBinding
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleAction_getKeyBinding (self.__item, index)
++
++ def getName (self, index):
++ """
++ Wraps cspi.AccessibleAction_getName
++ """
++ self.__checkSelf ()
++ return string(cspi.AccessibleAction_getName (self.__item, index))
++
++ def getDescription (self, index):
++ """
++ Wraps cspi.AccessibleAction_getDescription
++ """
++ self.__checkSelf ()
++ return string(cspi.AccessibleAction_getDescription (self.__item, index))
++
++
++cdef class Text (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleText_ functions,
++ giving an OO-style API.
++ """
++ def addSelection (self, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleText_addSelection
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_addSelection (self.__item, startOffset, endOffset):
++ raise AtspiException("AccessibleText_addSelection")
++
++
++ #def getAttributes (self, offset, startOffset, endOffset):
++ # self.__checkSelf ()
++ # return cspi.AccessibleText_getAttributes (self.__item, offset, startOffset, endOffset)
++ def getCaretOffset (self):
++ """
++ Wraps cspi.AccessibleText_getCaretOffset
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleText_getCaretOffset (self.__item)
++
++ def getCharacterCount (self):
++ """
++ Wraps cspi.AccessibleText_getCharacterCount
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleText_getCharacterCount (self.__item)
++
++ def getNSelections (self):
++ """
++ Wraps cspi.AccessibleText_getNSelections
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleText_getNSelections (self.__item)
++
++ #def getSelection (self, selectionNum, startOffset, endOffset):
++ # self.__checkSelf ()
++ # return cspi.AccessibleText_getSelection (self.__item, selectionNum, startOffset, endOffset)
++
++ def getText (self, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleText_getText
++ """
++ self.__checkSelf ()
++ return string(cspi.AccessibleText_getText (self.__item, startOffset, endOffset))
++
++ def removeSelection (self, selectionNum):
++ """
++ Wraps cspi.AccessibleText_removeSelection, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_removeSelection (self.__item, selectionNum):
++ raise AtspiException("AccessibleText_removeSelection")
++
++ def setSelection (self, selectionNum, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleText_setSelection, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_setSelection (self.__item, selectionNum, startOffset, endOffset):
++ raise AtspiException("AccessibleText_setSelection")
++
++ def setCaretOffset (self, position):
++ """
++ Wraps cspi.AccessibleText_setCaretOffset, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleText_setCaretOffset (self.__item, position):
++ raise AtspiException("AccessibleText_setCaretOffset")
++
++cdef class EditableText (Text):
++ """
++ Wrapper around the low-level cspi.AccessibleEditableText_ functions,
++ giving an OO-style API.
++ """
++ def setTextContents (self, newContents):
++ """
++ Wraps cspi.AccessibleEditableText_setTextContents, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleEditableText_setTextContents (self.__item, newContents):
++ raise AtspiException("AccessibleEditableText_setTextContents")
++
++ def setAttributes (self, attributes, startOffset, endOffset):
++ """
++ Wraps cspi.AccessibleEditableText_setAttributes, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleEditableText_setAttributes (self.__item, attributes, startOffset, endOffset):
++ raise AtspiException("AccessibleEditableText_setAttributes")
++
++ def insertText (self, position, text):
++ """
++ Wraps cspi.AccessibleEditableText_insertText, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleEditableText_insertText (self.__item, position, text, cspi.strlen(text)):
++ raise AtspiException("AccessibleEditableText_insertText")
++
++cdef class Hypertext (Text):
++ """
++ Wrapper around the low-level cspi.AccessibleHypertext_ functions,
++ giving an OO-style API.
++ """
++ def getNLinks (self):
++ """
++ Wraps cspi.AccessibleHypertext_getNLinks, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHypertext_getNLinks (self.__item)
++
++ def getLink (self, linkIndex):
++ """
++ Wraps cspi.AccessibleHypertext_getLink, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ cdef Hyperlink hyperlink
++ hyperlink = Hyperlink ()
++ hyperlink.__setItem (cspi.AccessibleHypertext_getLink (self.__item, linkIndex))
++ if hyperlink.__item != NULL:
++ return hyperlink
++
++ def getLinkIndex (self, characterOffset):
++ """
++ Wraps cspi.AccessibleHypertext_getLinkIndex, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHypertext_getLinkIndex (self.__item, characterOffset)
++
++cdef class Hyperlink (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleHyperlink_ functions,
++ giving an OO-style API.
++ """
++ def getNAnchors (self):
++ """
++ Wraps cspi.AccessibleHyperlink_getNAnchors, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHyperlink_getNAnchors (self.__item)
++
++ def getIndexRange (self):
++ """
++ Wraps cspi.AccessibleHyperlink_getIndexRange, returning [startIndex, endIndex] pair
++ """
++ self.__checkSelf ()
++ cdef long startIndex, endIndex
++ cspi.AccessibleHyperlink_getIndexRange(self.__item, &startIndex, &endIndex)
++ return [startIndex, endIndex]
++
++
++ def getObject (self, i):
++ """
++ Wraps cspi.AccessibleHyperlink_getObject
++ """
++ self.__checkSelf ()
++ cdef Accessible object
++ object = Accessible ()
++ object.__setItem (cspi.AccessibleHyperlink_getObject (self.__item, i))
++ object.__checkSelf ()
++ return object
++
++ def getURI (self, i):
++ """
++ Wraps cspi.AccessibleHyperlink_getURI, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHyperlink_getURI (self.__item, i)
++
++ def isValid (self):
++ """
++ Wraps cspi.AccessibleHyperlink_isValid, raising AtspiException if it fails
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleHyperlink_isValid (self.__item)
++
++cdef class Image (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleImage_ functions,
++ giving an OO-style API.
++ """
++ def getImageDescription (self):
++ """
++ Wraps cspi.AccessibleImage_getImageDescription
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleImage_getImageDescription (self.__item)
++
++ def getImageSize (self):
++ """
++ Wraps cspi.AccessibleImage_getImageSize, returning a (w,h) pair
++ """
++ self.__checkSelf ()
++ cdef long w, h
++ cspi.AccessibleImage_getImageSize(self.__item, &w, &h);
++ return [w, h]
++
++ def getImagePosition (self, type=0):
++ """
++ Wraps cspi.AccessibleImage_getImagePosition, returning a (x,y)
++ pair
++ """
++ self.__checkSelf ()
++ cdef long x, y
++ cspi.AccessibleImage_getImagePosition(self.__item, &x, &y, type)
++ return [x, y]
++
++ def getImageExtents (self, type=0):
++ """
++ Wraps cspi.AccessibleImage_getImageExtents, returning a
++ (x,y,w,h) tuple
++ """
++ self.__checkSelf ()
++ cdef long x, y, w, h
++ cspi.AccessibleImage_getImageExtents(self.__item, &x, &y, &w, &h, type)
++ return [x, y, w, h]
++
++cdef class Value (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleValue_ functions,
++ giving an OO-style API.
++ """
++ def getMinimumValue (self):
++ """
++ Wraps cspi.AccessibleValue_getMinimumValue
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleValue_getMinimumValue(self.__item)
++
++ def getCurrentValue (self):
++ """
++ Wraps cspi.AccessibleValue_getMinimumValue
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleValue_getCurrentValue(self.__item)
++
++ def getMaximumValue (self):
++ """
++ Wraps cspi.AccessibleValue_getMinimumValue
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleValue_getMaximumValue(self.__item)
++
++ def setCurrentValue (self, newValue):
++ """
++ Wraps cspi.AccessibleValue_setCurrentValue
++ """
++ self.__checkSelf ()
++ if not cspi.AccessibleValue_setCurrentValue (self.__item, newValue):
++ raise AtspiException("AccessibleValue_setCurrentValue")
++
++cdef class Selection (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleSelection_ functions,
++ giving an OO-style API.
++ """
++
++ def getNSelectedChildren (self):
++ """
++ Wraps cspi.AccessibleSelection_getNSelectedChildren
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_getNSelectedChildren (self.__item)
++
++ def getSelectedChild (self, index):
++ """
++ Wraps cspi.AccessibleSelection_getSelectedChild
++ """
++ self.__checkSelf ()
++
++ cdef cspi.Accessible* spiChild
++ spiChild = cspi.AccessibleSelection_getSelectedChild (self.__item, index)
++
++ assert spiChild != NULL
++
++ cdef object child
++ cdef Application app
++ cdef Accessible acc
++ cdef Text text
++
++ if cspi.Accessible_isApplication (spiChild):
++ app = Application ()
++ app.__setItem (spiChild)
++ child = app
++ else:
++ acc = Accessible ()
++ acc.__setItem (spiChild)
++ child = acc
++
++ return child
++
++ def selectChild (self, index):
++ """
++ Wraps cspi.AccessibleSelection_selectChild
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_selectChild (self.__item, index)
++
++ def deselectSelectedChild (self, index):
++ """
++ Wraps cspi.AccessibleSelection_deselectSelectedChild
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_deselectSelectedChild (self.__item, index)
++
++ def isChildSelected (self, index):
++ """
++ Wraps cspi.AccessibleSelection_isChildSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_isChildSelected (self.__item, index)
++
++ def selectAll (self):
++ """
++ Wraps cspi.AccessibleSelection_selectAll
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_selectAll( self.__item)
++
++ def clearSelection (self):
++ """
++ Wraps cspi.AccessibleSelection_clearSelection
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleSelection_clearSelection (self.__item)
++
++cdef class Table (Base):
++ """
++ Wrapper around the low-level cspi.AccessibleTable_ functions,
++ giving an OO-style API.
++ """
++
++ # def getTableAccessibleAt (self, row, column):
++ # def getTableCaption (self):
++
++ def getTableColumnAtIndex (self, index):
++ """
++ Wraps cspi.AccessibleTable_getColumnAtIndex
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getColumnAtIndex(self.__item, index)
++
++ def getTableColumnDescription (self, column):
++ """
++ Wraps cspi.AccessibleTable_getColumnDescription
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getColumnDescription(self.__item, column)
++
++ def getTableColumnExtentAt (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_getColumnExtentAt
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getColumnExtentAt(self.__item, row, column)
++
++ # def getTableColumnHeader (self, column):
++
++ def getTableIndexAt (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_getIndexAt
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getIndexAt(self.__item, row, column)
++
++ def getTableNColumns (self):
++ """
++ Wraps cspi.AccessibleTable_getNColumns
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNColumns(self.__item)
++
++ def getTableNRows (self):
++ """
++ Wraps cspi.AccessibleTable_getNRows
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNRows(self.__item)
++
++ def getTableNSelectedColumns (self):
++ """
++ Wraps cspi.AccessibleTable_getNSelectedColumns
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNSelectedColumns(self.__item)
++
++ def getTableNSelectedRows (self):
++ """
++x Wraps cspi.AccessibleTable_getNSelectedRows
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getNSelectedRows(self.__item)
++
++ def getTableRowAtIndex (self, index):
++ """
++ Wraps cspi.AccessibleTable_getRowAtIndex
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getRowAtIndex(self.__item, index)
++
++ def getTableRowDescription (self, row):
++ """
++ Wraps cspi.AccessibleTable_getRowDescription
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getRowDescription(self.__item, row)
++
++ def getTableRowExtentAt (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_getRowExtentAt
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_getRowExtentAt(self.__item, row, column)
++
++ # def getTableRowHeader (self, row):
++ # def getTableSelectedRows (self, **selectedRows): - Not sure if the variable which is a pointer to a pointer is acceptable
++ # def getTableSelectedColumns (self, **selectedColumns): - Same issue as above
++ # def getTableSummary (self):
++
++ def isTableColumnSelected (self, column):
++ """
++ Wraps cspi.AccessibleTable_isColumnSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_isColumnSelected(self.__item, column)
++
++ def isTableRowSelected (self, row):
++ """
++ Wraps cspi.AccessibleTable_isRowSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_isRowSelected(self.__item, row)
++
++ def isTableSelected (self, row, column):
++ """
++ Wraps cspi.AccessibleTable_isSelected
++ """
++ self.__checkSelf ()
++ return cspi.AccessibleTable_isSelected(self.__item, row, column)
++
++
++cdef class Event (EventBase):
++ #def AccessibleEventListener* SPI_createAccessibleEventListener (AccessibleEventListenerCB callback, void *user_data)
++ #void AccessibleEventListener_unref (AccessibleEventListener *listener)
++ #SPIBoolean AccessibleEventListener_addCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback, void *user_data)
++ #SPIBoolean AccessibleEventListener_removeCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback)
++
++ #Accessible* AccessibleActiveDescendantChangedEvent_getActiveDescendant (AccessibleEvent *event)
++ #Accessible* AccessibleChildChangedEvent_getChildAccessible (AccessibleEvent *event)
++
++ def getDescriptionChangedEventDescriptionString (self):
++ self.__checkSelf()
++ return string(cspi.AccessibleDescriptionChangedEvent_getDescriptionString(self.__item))
++
++ def getNameChangedEventNameString (self):
++ self.__checkSelf()
++ return string(cspi.AccessibleNameChangedEvent_getNameString(self.__item))
++
++ # Accessible* AccessibleParentChangedEvent_getParentAccessible (AccessibleEvent *event)
++
++ def getTableCaptionChangedEventCaptionString(self):
++ self.__checkSelf()
++ return string(cspi.AccessibleTableCaptionChangedEvent_getCaptionString(self.__item))
++
++ def getTableColumnDescriptionChangedEventDescriptionString(self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTableColumnDescriptionChangedEvent_getDescriptionString(self.__item))
++
++ # Accessible* AccessibleTableHeaderChangedEvent_getHeaderAccessible (AccessibleEvent *event)
++
++ def getTableRowDescriptionChangedEventDescriptionString(self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTableRowDescriptionChangedEvent_getDescriptionString(self.__item))
++
++ #Accessible* AccessibleTableSummaryChangedEvent_getSummaryAccessible (AccessibleEvent *event)
++
++ def getTextChangedEventChangeString (self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTextChangedEvent_getChangeString(self.__item))
++
++ def getTextSelectionChangedEventSelectionString (self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleTextSelectionChangedEvent_getSelectionString(self.__item))
++
++ def getWindowEventTitleString (self):
++ self.__checkSelf ()
++ return string(cspi.AccessibleWindowEvent_getTitleString(self.__item))
++
++class EventGenerator:
++ """
++ Wrapper layer around SPI_generateKeyboardEvent and
++ SPI_generateMouseEvent, used for generating input events.
++
++ Use AccessibleAction in preference to this.
++ """
++ def injectKeyboardString (self, string):
++ """
++ Inject a string as if it had been typed using an input method.
++ """
++ # Seems to only work if you do it one character at a time...
++ for char in string:
++ self.__generateKeystringEvent (str(char), cspi.SPI_KEY_STRING)
++
++ def __keyStringToKeyCode(self, keyString):
++ cdef Xlib.Display *display
++ display = Xlib.XOpenDisplay(NULL)
++
++ cdef Xlib.KeySym sym
++ sym = Xlib.XStringToKeysym(keyString)
++ cdef Xlib.KeyCode code
++ code = Xlib.XKeysymToKeycode(display, sym)
++
++ #print str(keyString), str(int(sym)), code
++
++ Xlib.XCloseDisplay(display)
++ return int(code)
++
++ def generateKeyCombo (self, keyStrings):
++ modifiers = keyStrings[:-1]
++ finalKey = keyStrings[-1]
++
++ for modifier in modifiers:
++ code = self.__keyStringToKeyCode(modifier)
++ self.generateKeyboardEvent(code, '', cspi.SPI_KEY_PRESS)
++
++ code = self.__keyStringToKeyCode(finalKey)
++ self.generateKeyboardEvent(code, '', cspi.SPI_KEY_PRESSRELEASE)
++
++ for modifier in modifiers:
++ code = self.__keyStringToKeyCode(modifier)
++ self.generateKeyboardEvent(code, '', cspi.SPI_KEY_RELEASE)
++
++
++ def __generateKeyvalEvent (self, keyval, synthType):
++ self.generateKeyboardEvent (keyval, None, synthType)
++
++ def __generateKeystringEvent (self, keystring, synthType):
++ self.generateKeyboardEvent (0, keystring, synthType)
++
++ def generateKeyboardEvent (self, keyval, keystring, synthType):
++ if not cspi.SPI_generateKeyboardEvent (keyval, keystring, synthType):
++ raise AtspiException("SPI_generateKeyboardEvent")
++
++ def click (self, x, y, button):
++ """
++ Synthesize a mouse button click at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "c")
++
++ def doubleClick (self, x, y, button):
++ """
++ Synthesize a mouse button double-click at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "d")
++
++ def press (self, x, y, button):
++ """
++ Synthesize a mouse button press at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "p")
++
++ def release (self, x, y, button):
++ """
++ Synthesize a mouse button release at (x,y)
++ """
++ self.__generateButtonEvent (x, y, button, "r")
++
++ def absoluteMotion (self, x, y):
++ """
++ Synthesize mouse absolute motion to (x,y)
++ """
++ self.__generateEvent (x, y, "abs")
++
++ def relativeMotion (self, x, y):
++ """
++ Synthesize mouse relative motion of (x,y)
++ """
++ self.__generateEvent (x, y, "rel")
++
++ def drag (self, fromXY, toXY, button):
++ """
++ Synthesize a drag (press, move and release) from (x,y) to (x,y).
++
++ These are absolute screen coordinates
++ """
++ (x,y) = fromXY
++ self.press (x, y, button)
++
++ (x,y) = toXY
++ self.absoluteMotion(x,y)
++
++ self.release (x, y, button)
++
++ def __generateEvent (self, x, y, name):
++ """
++ Thin wrapper around SPI_generateMouseEvent.
++
++ Event names: b1p = button 1 press; b2r = button 2 release;
++ b3c = button 3 click; b2d = button 2 double-click;
++ abs = absolute motion; rel = relative motion.
++ """
++ if not cspi.SPI_generateMouseEvent (x, y, name):
++ raise AtspiException("Error generating mouse event")
++
++ def __generateButtonEvent (self, x, y, button, suffix):
++ self.__generateEvent (x, y, self.__generateButtonName(button)+suffix)
++
++ def __generateButtonName(self, button):
++ if button==1:
++ return "b1"
++ elif button==2:
++ return "b2"
++ elif button==3:
++ return "b3"
++ else: raise ValueError, "Unknown button"
++
++# We use this C function to marshal a call to a python function. The Python callback
++# function is installed as the userdata of this C callback function. See the
++# "cheesefinder" demo in the Pyrex sources.
++# We ignore the "const"ness of the AccessibleEvent
++cdef void marshalAccessibleEventCallback (cspi.AccessibleEvent *event, void *python_fn) except *:
++ e = Event()
++ EventBase.__setItem(e, event)
++ (<object>python_fn) (e)
++
++cdef class EventListener:
++ """
++ Wrapper around the low-level cspi.AccessibleEventListener_ functions,
++ giving an OO-style API.
++ """
++ cdef cspi.AccessibleEventListener *__item
++ cdef public object eventTypes
++
++ def __init__ (self, callback, eventTypes):
++ """
++ Registers a python callback function to be called.
++ The callback is expected to have one input, of type atspi.Event, and no return value.
++ See documentation of SPI_registerGlobalEventListener for the event names
++ """
++ self.eventTypes = eventTypes
++ self.__item = cspi.SPI_createAccessibleEventListener (marshalAccessibleEventCallback, <void*>callback)
++ for eventType in self.eventTypes:
++ #char *e
++ e = eventType
++ if not cspi.SPI_registerGlobalEventListener (self.__item, e):
++ raise AtspiException("Unable to register event listener")
++
++ def deregister(self):
++ for eventType in self.eventTypes:
++ cspi.SPI_deregisterGlobalEventListener(self.__item, eventType)
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ self.deregister()
++ cspi.AccessibleEventListener_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++cdef class DeviceEvent:
++ """
++ Wrapper around a cspi.AccessibleDeviceEvent
++ """
++ cdef cspi.AccessibleDeviceEvent *__item
++ cdef public object keyID
++ cdef public object keyCode
++ cdef public object keyString
++ cdef public object timeStamp
++ cdef public object type
++ cdef public object modifiers
++ cdef public object isText
++
++ def __new__ (self):
++ self.__item = NULL
++
++ cdef bool __setItem (self, cspi.AccessibleDeviceEvent *obj):
++ if obj != NULL:
++ self.__item = obj
++ self.keyID = self.__item.keyID
++ self.keyCode = self.__item.keycode
++ self.keyString = self.__item.keystring
++ self.timeStamp = self.__item.timestamp
++ self.type = self.__item.type
++ self.modifiers = self.__item.modifiers
++ if self.__item.is_text: self.isText = True
++ else: self.isText = False
++ return True
++ else:
++ return False
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++# def __dealloc__ (self):
++# if self.__item != NULL:
++# cspi.AccessibleDeviceEvent_unref (self.__item)
++
++
++cdef cspi.SPIBoolean marshalAccessibleDeviceEventCallback (cspi.AccessibleDeviceEvent *event, void *python_fn) except 1:
++ k = DeviceEvent()
++ #k.__setItem(event)
++ DeviceEvent.__setItem(k, event)
++ k.__checkSelf()
++ (<object>python_fn) (k)
++ return False
++
++cdef class DeviceListener:
++ """
++ Wrapper around the low-level cspi.AccessibleDeviceListener_ functions,
++ giving an OO-style API.
++ """
++ cdef cspi.AccessibleDeviceListener *__item
++ cdef public object modMasks
++
++ def __init__ (self, callback, eventMask = cspi.SPI_KEY_PRESSED | cspi.SPI_KEY_RELEASED):
++ """
++ Registers a python callback function to be called.
++
++ eventMask may be one of the following:
++ key pressed: 1
++ key released: 2
++ key pressed or released (default): 3
++ """
++ self.__item = cspi.SPI_createAccessibleDeviceListener (marshalAccessibleDeviceEventCallback, <void*>callback)
++ cdef cspi.AccessibleKeySet *keySet
++ keySet = SPI_KEYSET_ALL_KEYS
++ self.modMasks = []
++ cdef short int modMask
++ syncType = SPI_KEYLISTENER_SYNCHRONOUS | SPI_KEYLISTENER_CANCONSUME
++ #syncType = SPI_KEYLISTENER_NOSYNC
++ for modMask from 0 <= modMask < (1 << 8):
++ self.modMasks.append(modMask)
++ desc = "keySet "+str(<int> keySet)+" modMask "+str(modMask)+" eventMask "+str(eventMask)+" syncType "+str(syncType)
++ desc = str(desc)
++ if not cspi.SPI_registerAccessibleKeystrokeListener (self.__item, keySet, modMask, eventMask, syncType):
++ raise AtspiException("Unable to register keystroke listener", desc)
++
++ def deregister(self):
++ if self.__item != NULL:
++ for modMask in self.modMasks:
++ cspi.SPI_deregisterAccessibleKeystrokeListener(self.__item, modMask)
++
++ def __dealloc__ (self):
++ if self.__item != NULL:
++ self.deregister()
++ cspi.AccessibleDeviceListener_unref (self.__item)
++
++ def __checkSelf (self):
++ if self.__item == NULL:
++ raise AttributeError, "__item must not be NULL"
++
++
++# vim: sw=4 ts=4 sts=4 noet ai
diff --git a/extra/python-pysqlite/ChangeLog b/extra/python-pysqlite/ChangeLog
new file mode 100644
index 000000000..12c0ad090
--- /dev/null
+++ b/extra/python-pysqlite/ChangeLog
@@ -0,0 +1,13 @@
+
+2009-08-06 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated to: 2.5.5
+
+2009-07-19 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 2.5.5
+
+2008-07-15 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 2.4.1
+
diff --git a/extra/python-pysqlite/PKGBUILD b/extra/python-pysqlite/PKGBUILD
new file mode 100644
index 000000000..54265b30d
--- /dev/null
+++ b/extra/python-pysqlite/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 89652 2010-09-02 20:47:02Z remy $
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=python-pysqlite
+pkgver=2.6.0
+pkgrel=2
+pkgdesc="A Python DB-API 2.0 interface for the SQLite embedded relational database engine"
+license=('custom')
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/pysqlite/"
+depends=('python2' 'sqlite3')
+replaces=('pysqlite2')
+source=(http://pysqlite.googlecode.com/files/pysqlite-${pkgver}.tar.gz \
+ setup.cfg)
+md5sums=('fc92618b3b39d02e6ff10dc467c36640'
+ '86dd356c65afd14a22f2f8f64a26441e')
+build() {
+ cd ${srcdir}/pysqlite-${pkgver}
+ cp ${srcdir}/setup.cfg .
+ python2 setup.py install --root=${pkgdir}
+}
+
+package() {
+ cd ${srcdir}/pysqlite-${pkgver}
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -r ${pkgdir}/usr/pysqlite2-doc
+}
diff --git a/extra/python-pysqlite/setup.cfg b/extra/python-pysqlite/setup.cfg
new file mode 100644
index 000000000..ba6c77075
--- /dev/null
+++ b/extra/python-pysqlite/setup.cfg
@@ -0,0 +1,5 @@
+[build_ext]
+define=
+include_dirs=/usr/include
+library_dirs=/usr/lib
+libraries=sqlite3
diff --git a/extra/python-qt/PKGBUILD b/extra/python-qt/PKGBUILD
new file mode 100644
index 000000000..43a00111e
--- /dev/null
+++ b/extra/python-qt/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 110673 2011-02-21 12:42:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=python-qt
+pkgver=4.8.3
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://riverbankcomputing.co.uk/software/pyqt/intro"
+license=('GPL')
+pkgdesc="A set of Python 3 bindings for the Qt toolkit"
+depends=('python2-qt' 'python-sip')
+optdepends=('phonon: enable audio and video in PyQt applications'
+ 'qscintilla: QScintilla API'
+ 'qt-assistant-compat: add PyQt online help in Qt Assistant')
+makedepends=('phonon' 'qt-assistant-compat')
+source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz")
+md5sums=('d54fd1c37a74864faf42709c8102f254')
+
+build() {
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+
+ python configure.py \
+ --confirm-license \
+ --qsci-api
+
+ # Thanks Gerardo for the rpath fix
+ find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+ make
+}
+
+package(){
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+ # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+
+ # Provided by python2-qt package
+ rm ${pkgdir}/usr/bin/{pylupdate4,pyrcc4,pyuic4}
+ rm ${pkgdir}/usr/lib/qt/plugins/designer/libpythonplugin.so
+ rm ${pkgdir}/usr/share/qt/qsci/api/python/PyQt4.api
+}
diff --git a/extra/python-sip/PKGBUILD b/extra/python-sip/PKGBUILD
new file mode 100644
index 000000000..48b2cd96f
--- /dev/null
+++ b/extra/python-sip/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110667 2011-02-21 12:01:59Z stephane $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=python-sip
+pkgver=4.12.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.riverbankcomputing.com/software/sip/"
+license=('custom:"sip"')
+pkgdesc="A tool that makes it easy to create Python 3 bindings for C and C++ libraries"
+depends=('python2-sip' 'python')
+source=("http://www.riverbankcomputing.com/static/Downloads/sip4/sip-${pkgver}.tar.gz")
+md5sums=('0f8e8305b14c1812191de2e0ee22fea9')
+
+build() {
+ cd "${srcdir}/sip-${pkgver}"
+
+ python configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+ make
+}
+
+package() {
+ cd "${srcdir}/sip-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ # Provided by python2-sip package
+ rm "${pkgdir}/usr/bin/sip"
+}
diff --git a/extra/python-telepathy/PKGBUILD b/extra/python-telepathy/PKGBUILD
new file mode 100644
index 000000000..13fde3c16
--- /dev/null
+++ b/extra/python-telepathy/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 102076 2010-12-04 12:37:04Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Daniel Balieiro <daniel@balieiro.com>
+pkgname=python-telepathy
+pkgver=0.15.19
+pkgrel=1
+pkgdesc="Python libraries for use in Telepathy clients and connection managers"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+license=('LGPL')
+depends=('dbus-python')
+makedepends=('libxslt')
+source=(http://telepathy.freedesktop.org/releases/telepathy-python/telepathy-python-${pkgver}.tar.gz)
+md5sums=('f7ca25ab3c88874015b7e9728f7f3017')
+
+build() {
+ cd "${srcdir}/telepathy-python-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/python-urwid/PKGBUILD b/extra/python-urwid/PKGBUILD
new file mode 100644
index 000000000..c91d5675d
--- /dev/null
+++ b/extra/python-urwid/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD,v 1.10 2009/03/13 21:14:09 sergej Exp $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Maintainer: Sergej Pupykin <sergej@aur.archlinux.org>
+# Maintainer: Douglas Soares de Andrade <dsandrade@gmail.com>
+
+pkgname=python-urwid
+pkgver=0.9.9.1
+pkgrel=2
+pkgdesc="Urwid is a curses-based user interface library."
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('python2')
+url="http://excess.org/urwid/"
+source=(http://excess.org/urwid/urwid-$pkgver.tar.gz)
+md5sums=('4722cdf898f711dcae1121aa80920152')
+
+build() {
+ cd $startdir/src/urwid-$pkgver
+ sed -i 's#bin/python#bin/python2#' urwid/*.py
+ python2 setup.py install --prefix=/usr --root=$startdir/pkg || return 1
+
+ rm -rf $startdir/src/$_hgname-build
+}
diff --git a/extra/python-wpactrl/PKGBUILD b/extra/python-wpactrl/PKGBUILD
new file mode 100644
index 000000000..0f3f9b84c
--- /dev/null
+++ b/extra/python-wpactrl/PKGBUILD
@@ -0,0 +1,18 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=python-wpactrl
+pkgver=20090609
+pkgrel=2
+pkgdesc="A Python extension for wpa_supplicant/hostapd control interface access"
+arch=('i686' 'x86_64')
+url="http://projects.otaku42.de/wiki/PythonWpaCtrl"
+license=('GPL2')
+depends=('python2')
+source=(ftp://ftp.archlinux.org/other/${pkgname}/python-wpactrl-20090609.tar.gz)
+md5sums=('8d45739aa9bfa1110a4570bb5ceda768')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ python2 setup.py build
+ python2 setup.py install --root=${pkgdir}
+}
diff --git a/extra/python/PKGBUILD b/extra/python/PKGBUILD
new file mode 100644
index 000000000..b8d376acc
--- /dev/null
+++ b/extra/python/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 110651 2011-02-21 01:21:12Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributer: Jason Chu <jason@archlinux.org>
+
+pkgname=python
+pkgver=3.2
+pkgrel=1
+_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')
+provides=('python3')
+replaces=('python3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${_pybasever}/Python-${pkgver}.tar.xz)
+sha1sums=('55a3a9d39f31563370d0c494373bb6d38e4d1a00')
+
+build() {
+ cd "${srcdir}/Python-${pkgver}"
+
+ # 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-system-ffi
+
+ make
+
+ # Run the upstream test suite
+# LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
+# "${srcdir}/Python-${pkgver}/python" -m test.regrtest -x test_distutils
+}
+
+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/extra/python2-cairo/PKGBUILD b/extra/python2-cairo/PKGBUILD
new file mode 100644
index 000000000..3e8a7ced2
--- /dev/null
+++ b/extra/python2-cairo/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 102340 2010-12-07 11:21:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=python2-cairo
+pkgver=1.8.10
+pkgrel=1
+pkgdesc="Python2 bindings for the cairo graphics library"
+arch=('i686' 'x86_64')
+license=('LGPL' 'MPL')
+depends=('python2' 'cairo')
+options=('!libtool')
+provides=("pycairo=${pkgver}")
+conflicts=('pycairo')
+replaces=('pycairo')
+source=(http://cairographics.org/releases/py2cairo-${pkgver}.tar.gz)
+url="http://www.cairographics.org/pycairo"
+md5sums=('87421a6a70304120555ba7ba238f3dc3')
+
+build() {
+ cd "${srcdir}/pycairo-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/pycairo-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/python2-qt/PKGBUILD b/extra/python2-qt/PKGBUILD
new file mode 100644
index 000000000..41b2354f1
--- /dev/null
+++ b/extra/python2-qt/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 107404 2011-01-24 17:30:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: riai <riai@bigfoot.com> Ben <ben@benmazer.net>
+
+pkgname=python2-qt
+pkgver=4.8.3
+pkgrel=1
+pkgdesc="A set of Python 2 bindings for the Qt toolkit"
+arch=('i686' 'x86_64')
+url="http://riverbankcomputing.co.uk/software/pyqt/intro"
+license=('GPL')
+depends=('qt' 'python2-sip' 'dbus-python')
+makedepends=('phonon' 'python-opengl' 'qt-assistant-compat')
+optdepends=('phonon: enable audio and video in PyQt applications'
+ 'python-opengl: enable OpenGL 3D graphics in PyQt applications'
+ 'qscintilla: QScintilla API'
+ 'qt-assistant-compat: add PyQt online help in Qt Assistant')
+replaces=('pyqt')
+source=("http://riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-x11-gpl-${pkgver}.tar.gz")
+md5sums=('d54fd1c37a74864faf42709c8102f254')
+
+build() {
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+
+ python2 configure.py \
+ --confirm-license \
+ -v /usr/share/sip \
+ --qsci-api
+
+ # Thanks Gerardo for the rpath fix
+ find -name 'Makefile' | xargs sed -i 's|-Wl,-rpath,/usr/lib||g;s|-Wl,-rpath,.* ||g'
+
+ make
+}
+
+package(){
+ cd "${srcdir}/PyQt-x11-gpl-${pkgver}"
+ # INSTALL_ROOT is needed for the QtDesigner module, the other Makefiles use DESTDIR
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/extra/python2-sip/PKGBUILD b/extra/python2-sip/PKGBUILD
new file mode 100644
index 000000000..d08638428
--- /dev/null
+++ b/extra/python2-sip/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 107403 2011-01-24 17:30:04Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: riai <riai@bigfoot.com>, Ben <ben@benmazer.net>
+
+pkgname=python2-sip
+pkgver=4.12.1
+pkgrel=1
+pkgdesc="A tool that makes it easy to create Python 2 bindings for C and C++ libraries"
+arch=('i686' 'x86_64')
+url="http://www.riverbankcomputing.com/software/sip/"
+license=('custom:"sip"')
+depends=('python2')
+replaces=('sip')
+source=("http://www.riverbankcomputing.com/static/Downloads/sip4/sip-${pkgver}.tar.gz")
+md5sums=('0f8e8305b14c1812191de2e0ee22fea9')
+
+build() {
+ cd "${srcdir}/sip-${pkgver}"
+
+ python2 configure.py CFLAGS="${CFLAGS}" LFLAGS="${LDFLAGS}"
+ make
+}
+
+package() {
+ cd "${srcdir}/sip-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/python2/PKGBUILD b/extra/python2/PKGBUILD
new file mode 100644
index 000000000..50a02686c
--- /dev/null
+++ b/extra/python2/PKGBUILD
@@ -0,0 +1,84 @@
+# $Id: PKGBUILD 110650 2011-02-21 01:06:01Z stephane $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributer: Jason Chu <jason@archlinux.org>
+
+pkgname=python2
+pkgver=2.7.1
+pkgrel=7
+_pybasever=2.7
+pkgdesc="A high-level scripting language"
+arch=('i686' 'x86_64')
+license=('PSF')
+url="http://www.python.org/"
+depends=('db' 'bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite3' 'libffi')
+makedepends=('tk')
+optdepends=('tk: for IDLE')
+conflicts=('python<3')
+options=('!makeflags')
+source=(http://www.python.org/ftp/python/${pkgver}/Python-${pkgver}.tar.bz2
+ python-2.7-db51.diff)
+md5sums=('aa27bc25725137ba155910bd8e5ddc4f'
+ 'd9b8161568ce17a305c1b71e61ccd4b5')
+
+build() {
+ cd "${srcdir}/Python-${pkgver}"
+
+ patch -Np1 -i ../python-2.7-db51.diff
+
+ # Temporary workaround for FS#22322
+ # See http://bugs.python.org/issue10835 for upstream report
+ sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
+
+ # Enable built-in SQLite3 module to load extensions (fix FS#22122)
+ sed -i "/SQLITE_OMIT_LOAD_EXTENSION/d" setup.py
+
+ # 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}*
+
+ export OPT="${CFLAGS}"
+ ./configure --prefix=/usr --enable-shared --with-threads --enable-ipv6 \
+ --enable-unicode=ucs4 --with-system-expat --with-system-ffi
+
+ make
+}
+
+package() {
+ cd "${srcdir}/Python-${pkgver}"
+ make DESTDIR="${pkgdir}" altinstall maninstall
+
+ ln -sf python${_pybasever} "${pkgdir}/usr/bin/python2"
+ ln -sf python${_pybasever}-config "${pkgdir}/usr/bin/python2-config"
+ ln -sf python${_pybasever}.1 "${pkgdir}/usr/share/man/man1/python2.1"
+
+ ln -sf ../../libpython${_pybasever}.so \
+ "${pkgdir}/usr/lib/python${_pybasever}/config/libpython${_pybasever}.so"
+
+ mv "${pkgdir}/usr/bin/smtpd.py" "${pkgdir}/usr/lib/python${_pybasever}/"
+
+ # some useful "stuff"
+ install -dm755 "${pkgdir}"/usr/lib/python${_pybasever}/Tools/{i18n,scripts}
+ install -m755 Tools/i18n/{msgfmt,pygettext}.py \
+ "${pkgdir}/usr/lib/python${_pybasever}/Tools/i18n/"
+ install -m755 Tools/scripts/{README,*py} \
+ "${pkgdir}/usr/lib/python${_pybasever}/Tools/scripts/"
+
+ # fix conflicts with python
+ mv "${pkgdir}"/usr/bin/idle{,2}
+ mv "${pkgdir}"/usr/bin/pydoc{,2}
+ mv "${pkgdir}"/usr/bin/2to3{,-2.7}
+
+ # clean up #!s
+ find "${pkgdir}/usr/lib/python${_pybasever}/" -name '*.py' | \
+ xargs sed -i "s|#[ ]*![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
+
+ # clean-up reference to build directory
+ sed -i "s#${srcdir}/Python-${pkgver}:##" \
+ "${pkgdir}/usr/lib/python${_pybasever}/config/Makefile"
+
+ # license
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/python2/python-2.7-db51.diff b/extra/python2/python-2.7-db51.diff
new file mode 100644
index 000000000..2da95c375
--- /dev/null
+++ b/extra/python2/python-2.7-db51.diff
@@ -0,0 +1,42 @@
+diff -Naur Python-2.7-orig//Modules/_bsddb.c Python-2.7/Modules/_bsddb.c
+--- Python-2.7-orig//Modules/_bsddb.c 2010-05-10 00:46:46.000000000 +1000
++++ Python-2.7/Modules/_bsddb.c 2010-10-20 13:19:26.436669911 +1000
+@@ -9765,8 +9765,11 @@
+
+ ADD_INT(d, DB_REP_PERMANENT);
+
+-#if (DBVER >= 44)
++#if (DBVER >= 44) && (DBVER <= 48)
+ ADD_INT(d, DB_REP_CONF_NOAUTOINIT);
++#endif
++
++#if (DBVER >= 44)
+ ADD_INT(d, DB_REP_CONF_DELAYCLIENT);
+ ADD_INT(d, DB_REP_CONF_BULK);
+ ADD_INT(d, DB_REP_CONF_NOWAIT);
+diff -Naur Python-2.7-orig//setup.py Python-2.7/setup.py
+--- Python-2.7-orig//setup.py 2010-06-27 22:36:16.000000000 +1000
++++ Python-2.7/setup.py 2010-10-20 13:10:48.256670026 +1000
+@@ -765,7 +765,7 @@
+ # a release. Most open source OSes come with one or more
+ # versions of BerkeleyDB already installed.
+
+- max_db_ver = (4, 8)
++ max_db_ver = (5, 1)
+ min_db_ver = (4, 1)
+ db_setup_debug = False # verbose debug prints from this script?
+
+@@ -787,8 +787,12 @@
+ return True
+
+ def gen_db_minor_ver_nums(major):
+- if major == 4:
++ if major == 5:
+ for x in range(max_db_ver[1]+1):
++ if allow_db_ver((5, x)):
++ yield x
++ if major == 4:
++ for x in range(9):
+ if allow_db_ver((4, x)):
+ yield x
+ elif major == 3:
diff --git a/extra/pywebkitgtk/PKGBUILD b/extra/pywebkitgtk/PKGBUILD
new file mode 100644
index 000000000..6f5690029
--- /dev/null
+++ b/extra/pywebkitgtk/PKGBUILD
@@ -0,0 +1,27 @@
+# Contributor: kasa <biuta.jr@gmail.com>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=pywebkitgtk
+pkgver=1.1.7
+pkgrel=4
+pkgdesc="Python bindings to the WebKit GTK+ port"
+arch=('i686' 'x86_64')
+url="http://code.google.com/p/pywebkitgtk/"
+license=('LGPL')
+depends=('libwebkit' 'pygtk')
+options=('!libtool' '!makeflags')
+source=(http://pywebkitgtk.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4dbe0111c0b0ad2280052e4534903a9b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/pyxml/PKGBUILD b/extra/pyxml/PKGBUILD
new file mode 100644
index 000000000..eea70cc62
--- /dev/null
+++ b/extra/pyxml/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 98285 2010-11-06 14:25:36Z schiv $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=pyxml
+pkgver=0.8.4
+pkgrel=8
+pkgdesc="Python XML parsing library"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/pyxml/"
+license=('custom')
+depends=('python2')
+source=(http://downloads.sourceforge.net/sourceforge/pyxml/PyXML-${pkgver}.tar.gz
+ fix-python2.6.patch
+ foreigncharsfix.patch)
+md5sums=('1f7655050cebbb664db976405fdba209'
+ '4b652e0c866e3cca7e2386e8e383d5ba'
+ 'c9c54fdf0f7d1515a3b7aa34b01d1c46')
+
+package() {
+ cd "${srcdir}/PyXML-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/fix-python2.6.patch"
+
+ # as warranted by eric (the python IDE)
+ patch -Np1 -i "${srcdir}/foreigncharsfix.patch"
+
+ python2 setup.py build
+ python2 setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1
+ install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ sed -e 's|#! /usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.7/site-packages/_xmlplus/dom/ext/c14n.py
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.7/site-packages/_xmlplus/dom/html/GenerateHtml.py
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/pyxml/fix-python2.6.patch b/extra/pyxml/fix-python2.6.patch
new file mode 100644
index 000000000..7bf1c46fc
--- /dev/null
+++ b/extra/pyxml/fix-python2.6.patch
@@ -0,0 +1,28 @@
+diff -ur a/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py b/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py
+--- a/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py 2003-03-11 15:01:34.000000000 +0100
++++ b/xml/xpath/ParsedAbbreviatedAbsoluteLocationPath.py 2009-05-25 16:32:26.000000000 +0200
+@@ -24,8 +24,8 @@
+ self._rel = rel
+ nt = ParsedNodeTest.ParsedNodeTest('node', '')
+ ppl = ParsedPredicateList.ParsedPredicateList([])
+- as = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
+- self._step = ParsedStep.ParsedStep(as, nt, ppl)
++ asp = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
++ self._step = ParsedStep.ParsedStep(asp, nt, ppl)
+ return
+
+ def evaluate(self, context):
+diff -ur a/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py b/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py
+--- a/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py 2003-03-11 15:01:34.000000000 +0100
++++ b/xml/xpath/ParsedAbbreviatedRelativeLocationPath.py 2009-05-25 16:27:55.000000000 +0200
+@@ -28,8 +28,8 @@
+ self._right = right
+ nt = ParsedNodeTest.ParsedNodeTest('node','')
+ ppl = ParsedPredicateList.ParsedPredicateList([])
+- as = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
+- self._middle = ParsedStep.ParsedStep(as, nt, ppl)
++ asp = ParsedAxisSpecifier.ParsedAxisSpecifier('descendant-or-self')
++ self._middle = ParsedStep.ParsedStep(asp, nt, ppl)
+
+ def evaluate(self, context):
+ res = []
diff --git a/extra/pyxml/foreigncharsfix.patch b/extra/pyxml/foreigncharsfix.patch
new file mode 100644
index 000000000..024d4472d
--- /dev/null
+++ b/extra/pyxml/foreigncharsfix.patch
@@ -0,0 +1,11 @@
+diff -aur PyXML-0.8.4.orig//xml/parsers/xmlproc/xmlutils.py PyXML-0.8.4/xml/parsers/xmlproc/xmlutils.py
+--- PyXML-0.8.4.orig//xml/parsers/xmlproc/xmlutils.py 2010-11-06 17:27:53.936666669 +0800
++++ PyXML-0.8.4/xml/parsers/xmlproc/xmlutils.py 2010-11-06 17:30:39.230000003 +0800
+@@ -720,6 +720,7 @@
+ # to the recoding.
+ try:
+ self.data = self.charset_converter(self.data)
++ self.datasize = len(self.data)
+ except UnicodeError, e:
+ self._handle_decoding_error(self.data, e)
+ self.input_encoding = enc1
diff --git a/extra/qalculate-gtk/PKGBUILD b/extra/qalculate-gtk/PKGBUILD
new file mode 100644
index 000000000..9eb48dcaf
--- /dev/null
+++ b/extra/qalculate-gtk/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 108632 2011-02-02 01:54:11Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=qalculate-gtk
+pkgver=0.9.7
+pkgrel=2
+pkgdesc="GNOME frontend for libqalculate"
+arch=('i686' 'x86_64')
+url="http://qalculate.sourceforge.net/"
+license=('GPL')
+depends=('libqalculate' 'libgnome' 'libglade' 'cln')
+makedepends=('perlxml' 'gnome-doc-utils')
+optdepends=('yelp: for displaying the help')
+source=(http://downloads.sourceforge.net/sourceforge/qalculate/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7a7ab4680e285690ca3625992f477f0f')
+sha1sums=('c714c91224045fa49f261686e985df0aefa1d678')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/qalculate-kde/PKGBUILD b/extra/qalculate-kde/PKGBUILD
new file mode 100644
index 000000000..1b8a372a1
--- /dev/null
+++ b/extra/qalculate-kde/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 108637 2011-02-02 01:55:58Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=qalculate-kde
+pkgver=0.9.7
+pkgrel=2
+pkgdesc="KDE frontend for libqalculate"
+arch=('i686' 'x86_64')
+url="http://qalculate.sourceforge.net/"
+license=('GPL')
+depends=('libqalculate' 'kdelibs3' 'cln')
+source=(http://downloads.sourceforge.net/sourceforge/qalculate/${pkgname}-${pkgver}.tar.gz)
+md5sums=('90104c97894f4775737349ad99428bcf')
+sha1sums=('fa0db8a3fb80264328770c4bbcbc0892a4d4ce91')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/opt/kde --without-arts
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/qca-gnupg/PKGBUILD b/extra/qca-gnupg/PKGBUILD
new file mode 100644
index 000000000..1ce3c6c32
--- /dev/null
+++ b/extra/qca-gnupg/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qca-gnupg
+pkgver=2.0.0
+_pkgver=2.0.0-beta3
+pkgrel=1
+pkgdesc="Qt Cryptographic Architecture"
+arch=('i686' 'x86_64')
+url="http://delta.affinix.com/qca/"
+license=('LGPL')
+depends=('qca')
+optdepends=('gnupg' 'gnupg2')
+source=("http://delta.affinix.com/download/qca/2.0/plugins/${pkgname}-${_pkgver}.tar.bz2")
+md5sums=('9b4d020efd835a52d98b2ced9ae79c4b')
+
+build() {
+ cd $srcdir/${pkgname}-${_pkgver}
+ ./configure \
+ --release \
+ --no-separate-debug-info
+ make || return 1
+ make INSTALL_ROOT=$pkgdir install
+}
diff --git a/extra/qca-ossl/PKGBUILD b/extra/qca-ossl/PKGBUILD
new file mode 100644
index 000000000..700e8a634
--- /dev/null
+++ b/extra/qca-ossl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qca-ossl
+pkgver=2.0.0
+_pkgver=2.0.0-beta3
+pkgrel=3
+pkgdesc="Qt Cryptographic Architecture"
+arch=('i686' 'x86_64')
+url="http://delta.affinix.com/qca/"
+license=('LGPL')
+depends=('qca')
+source=("http://delta.affinix.com/download/qca/2.0/plugins/${pkgname}-${_pkgver}.tar.bz2"
+ 'no-whirlpool.patch')
+md5sums=('bdc62c01321385c7da8d27b3902910ce'
+ '1be7ee2e5f32733b90452fb46b9c69f9')
+
+build() {
+ cd $srcdir/${pkgname}-${_pkgver}
+ patch -p1 -i $srcdir/no-whirlpool.patch
+ ./configure \
+ --release \
+ --no-separate-debug-info
+ make
+}
+
+package() {
+ cd $srcdir/${pkgname}-${_pkgver}
+ make INSTALL_ROOT=$pkgdir install
+}
diff --git a/extra/qca-ossl/no-whirlpool.patch b/extra/qca-ossl/no-whirlpool.patch
new file mode 100644
index 000000000..609ea61f2
--- /dev/null
+++ b/extra/qca-ossl/no-whirlpool.patch
@@ -0,0 +1,21 @@
+diff -up qca-ossl-2.0.0-beta3/qca-ossl.cpp.no-whirlpool qca-ossl-2.0.0-beta3/qca-ossl.cpp
+--- qca-ossl-2.0.0-beta3/qca-ossl.cpp.no-whirlpool 2007-12-11 07:34:57.000000000 +0100
++++ qca-ossl-2.0.0-beta3/qca-ossl.cpp 2009-01-26 14:59:42.000000000 +0100
+@@ -6597,7 +6597,7 @@ static QStringList all_hash_types()
+ #ifdef SHA512_DIGEST_LENGTH
+ list += "sha512";
+ #endif
+-#ifdef OBJ_whirlpool
++#ifdef WHIRLPOOL_DIGEST_LENGTH
+ list += "whirlpool";
+ #endif
+ return list;
+@@ -6810,7 +6810,7 @@ public:
+ else if ( type == "sha512" )
+ return new opensslHashContext( EVP_sha512(), this, type);
+ #endif
+-#ifdef OBJ_whirlpool
++#ifdef WHIRLPOOL_DIGEST_LENGTH
+ else if ( type == "whirlpool" )
+ return new opensslHashContext( EVP_whirlpool(), this, type);
+ #endif
diff --git a/extra/qca/PKGBUILD b/extra/qca/PKGBUILD
new file mode 100644
index 000000000..41b8aeba9
--- /dev/null
+++ b/extra/qca/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 101667 2010-11-30 11:00:58Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qca
+pkgver=2.0.3
+pkgrel=1
+pkgdesc="Qt Cryptographic Architecture"
+arch=('i686' 'x86_64')
+url="http://delta.affinix.com/qca/"
+license=('LGPL')
+depends=('qt' 'ca-certificates')
+source=("http://delta.affinix.com/download/qca/2.0/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('fc15bd4da22b8096c51fcfe52d2fa309')
+
+build() {
+ cd $srcdir/${pkgname}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --disable-tests \
+ --certstore-path=/etc/ssl/certs/ca-certificates.crt \
+ --release \
+ --no-separate-debug-info
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make INSTALL_ROOT=${pkgdir} install
+}
diff --git a/extra/qemu-kvm/65-kvm.rules b/extra/qemu-kvm/65-kvm.rules
new file mode 100644
index 000000000..c2f7317aa
--- /dev/null
+++ b/extra/qemu-kvm/65-kvm.rules
@@ -0,0 +1 @@
+KERNEL=="kvm", GROUP="kvm", MODE="0660"
diff --git a/extra/qemu-kvm/PKGBUILD b/extra/qemu-kvm/PKGBUILD
new file mode 100644
index 000000000..04e93f2f9
--- /dev/null
+++ b/extra/qemu-kvm/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 110855 2011-02-22 19:17:39Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=qemu-kvm
+pkgver=0.14.0
+pkgrel=1
+pkgdesc="Latest KVM QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
+arch=(i686 x86_64)
+license=('GPL2' 'LGPL2.1')
+url="http://www.linux-kvm.org"
+depends=('libjpeg' 'libpng' 'libsasl' 'curl' 'sdl' 'alsa-lib' 'esound' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng')
+makedepends=('texi2html' 'perl')
+backup=('etc/qemu/target-x86_64.conf')
+install=qemu-kvm.install
+conflicts=('qemu')
+provides=('qemu')
+replaces=('kvm')
+source=(http://downloads.sourceforge.net/kvm/${pkgname}-${pkgver}.tar.gz
+ 65-kvm.rules)
+
+build()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # fix esound building
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --audio-drv-list=alsa,sdl,oss,esd \
+ --audio-card-list=ac97,sb16,es1370,adlib \
+ --enable-docs
+ make
+}
+package()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ # symbolic link for backwards compatibility
+ ln -s qemu-system-x86_64 ${pkgdir}/usr/bin/qemu-kvm
+ # symbolic link for to qemu binary for emulator apps
+ ln -s qemu-system-x86_64 ${pkgdir}/usr/bin/qemu
+ # symbolic link for to qemu binary for emulator apps
+ ln -s qemu-system-x86_64 ${pkgdir}/usr/bin/kvm
+ # fix man page
+ mv ${pkgdir}/usr/share/man/man1/qemu.1 \
+ ${pkgdir}/usr/share/man/man1/qemu-kvm.1
+ # install udev rules
+ install -D -m644 ${srcdir}/65-kvm.rules \
+ ${pkgdir}/lib/udev/rules.d/65-kvm.rules
+}
+md5sums=('4ea6f412d85a826e0b0690f5c4c59f13'
+ 'b316a066d2f1bb57d8f5b7ea1d0d1caf')
diff --git a/extra/qemu-kvm/qemu-kvm.install b/extra/qemu-kvm/qemu-kvm.install
new file mode 100644
index 000000000..84aa773b9
--- /dev/null
+++ b/extra/qemu-kvm/qemu-kvm.install
@@ -0,0 +1,16 @@
+post_install() {
+ groupadd kvm -f -g 78
+ echo ">>> PLEASE READ FOR KVM USAGE!"
+ echo ">>> Load the correct KVM module, you will need a KVM capable CPU!"
+ echo ">>> Add yourself to the group 'kvm'."
+ echo ">>> Use 'qemu-kvm -enable-kvm' to use KVM."
+ echo ""
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ groupdel kvm
+}
diff --git a/extra/qemu/65-kvm.rules b/extra/qemu/65-kvm.rules
new file mode 100644
index 000000000..c2f7317aa
--- /dev/null
+++ b/extra/qemu/65-kvm.rules
@@ -0,0 +1 @@
+KERNEL=="kvm", GROUP="kvm", MODE="0660"
diff --git a/extra/qemu/PKGBUILD b/extra/qemu/PKGBUILD
new file mode 100644
index 000000000..12baed1c6
--- /dev/null
+++ b/extra/qemu/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 110725 2011-02-21 20:11:19Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=qemu
+pkgver=0.14.0
+pkgrel=1
+pkgdesc="QEMU is a generic and open source processor emulator which achieves a good emulation speed by using dynamic translation."
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL2.1')
+url="http://wiki.qemu.org/Index.html"
+makedepends=('texi2html' 'perl')
+depends=('libjpeg' 'libpng' 'sdl' 'alsa-lib' 'esound' 'gnutls>=2.4.1' 'bluez' 'vde2' 'util-linux-ng' 'curl' 'libsasl')
+backup=('etc/qemu/target-x86_64.conf')
+install=qemu.install
+source=(http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ 65-kvm.rules)
+
+build()
+{
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i -e 's/lib64/lib/g' x86_64.ld
+ ./configure --prefix=/usr --sysconfdir=/etc --audio-drv-list=oss,alsa,sdl,esd \
+ --audio-card-list=ac97,sb16,es1370,adlib \
+ --enable-docs \
+ --kerneldir="/usr/src/linux-$(uname -r)"
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -D -m644 ${srcdir}/65-kvm.rules \
+ ${pkgdir}/lib/udev/rules.d/65-kvm.rules
+}
+md5sums=('f9d145d5c09de9f0984ffe9bd1229970'
+ 'b316a066d2f1bb57d8f5b7ea1d0d1caf')
diff --git a/extra/qemu/qemu.install b/extra/qemu/qemu.install
new file mode 100644
index 000000000..e16ac027c
--- /dev/null
+++ b/extra/qemu/qemu.install
@@ -0,0 +1,24 @@
+# kvm: the new package version
+post_install() {
+ #
+ groupadd kvm -f -g 78
+ echo ">>> PLEASE READ FOR KVM USAGE!"
+ echo ">>> Load the correct KVM module, you will need a KVM capable CPU!"
+ echo ">>> Add yourself to the group 'kvm'."
+ echo ">>> Use 'qemu -enable-kvm' to use KVM."
+ echo ""
+ if [ "$(vercmp $2 0.11)" -lt 0 ]; then
+ echo "With the release of qemu and qemu-kvm 0.12.X, the kqemu kernel module"
+ echo "is no longer supported and will be removed from the repositories. You"
+ echo "can safely uninstall it from your system."
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ #
+ groupdel kvm
+}
diff --git a/extra/qimageblitz/PKGBUILD b/extra/qimageblitz/PKGBUILD
new file mode 100644
index 000000000..a6717e077
--- /dev/null
+++ b/extra/qimageblitz/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 88089 2010-08-19 13:00:48Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=qimageblitz
+pkgver=0.0.6
+pkgrel=1
+pkgdesc="An interm image effect library"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/qimageblitz"
+license=('GPL2')
+depends=('qt')
+makedepends=('cmake' 'pkgconfig')
+source=("http://download.kde.org/stable/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('5a6c718a56643ffe1f347410bdcca64d')
+options=(!libtool)
+
+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
+}
+md5sums=('0ae2f7d4e0876764a97ca73799f61df4')
diff --git a/extra/qiv/PKGBUILD b/extra/qiv/PKGBUILD
new file mode 100644
index 000000000..3a63edc93
--- /dev/null
+++ b/extra/qiv/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 84750 2010-07-04 02:53:11Z angvp $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=qiv
+pkgver=2.2.3
+pkgrel=2
+pkgdesc="Quick Image Viewer (qiv) is a very small and fast GDK/Imlib image viewer"
+arch=('i686' 'x86_64')
+license=('GPL2')
+depends=('file' 'gtk2' 'imlib2')
+makedepends=('pkgconfig')
+source=(http://spiegl.de/qiv/download/$pkgname-$pkgver.tgz)
+url="http://spiegl.de/qiv/"
+md5sums=('f692f665ad429f13c732156351420850')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver || return 1
+ make || return 1
+ install -D -m 0755 qiv $startdir/pkg/usr/bin/qiv || return 1
+ install -D -m 0644 qiv.1 $startdir/pkg/usr/share/man/man1/qiv.1 || return 1
+}
diff --git a/extra/qjackctl/PKGBUILD b/extra/qjackctl/PKGBUILD
new file mode 100644
index 000000000..9916f3d5c
--- /dev/null
+++ b/extra/qjackctl/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 101735 2010-12-01 12:16:41Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@archlinux.org>
+
+pkgname=qjackctl
+pkgver=0.3.7
+pkgrel=1
+pkgdesc="A Qt front-end for the JACK low-latency audio server"
+url="http://qjackctl.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('jack' 'qt')
+options=('!makeflags')
+source=("http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz")
+md5sums=('3462613bd5c92fa6e6ae92950bd69c0b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/qjson/PKGBUILD b/extra/qjson/PKGBUILD
new file mode 100644
index 000000000..c399bb632
--- /dev/null
+++ b/extra/qjson/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgname=qjson
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="A qt-based library that maps JSON data to QVariant objects"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://qjson.sourceforge.net"
+depends=('qt')
+makedepends=('cmake')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('5a833ad606c164ed8aa69f0873366ace')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../${pkgname} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ make
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/qscintilla/PKGBUILD b/extra/qscintilla/PKGBUILD
new file mode 100644
index 000000000..2d21dfd54
--- /dev/null
+++ b/extra/qscintilla/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 117371 2011-03-31 21:19:18Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Douglas Soares de Andrade <dsa@aur.archlinux.org>
+
+pkgbase=qscintilla
+pkgname=('qscintilla' 'python-qscintilla' 'python2-qscintilla')
+pkgver=2.5
+pkgrel=1
+license=('GPL')
+arch=('i686' 'x86_64')
+url="http://www.riverbankcomputing.co.uk/software/qscintilla/intro"
+makedepends=('python-qt')
+source=("http://riverbankcomputing.com/static/Downloads/QScintilla2/QScintilla-gpl-${pkgver}.tar.gz"
+ 'configure.py-objdir-support.diff')
+md5sums=('c4677b837c16bcb9d806ff04d5a727b8'
+ '8cf9c06252e2f11ab00e62848e322fd3')
+
+
+build() {
+ cd "${srcdir}/QScintilla-gpl-${pkgver}"
+ patch -Np1 -i "${srcdir}/configure.py-objdir-support.diff"
+
+ cd Qt4
+ qmake qscintilla.pro
+ make
+
+ cd ../designer-Qt4
+ qmake designer.pro INCLUDEPATH+=../Qt4 QMAKE_LIBDIR+=../Qt4
+ make
+
+ cd ../
+ cp -rf Python Python2
+ cd Python
+ python configure.py -n ../Qt4/ -o ../Qt4 -c -p 4
+ make
+
+ cd ../Python2
+ python2 configure.py -n ../Qt4/ -o ../Qt4 -c -p 4
+ make
+}
+
+package_qscintilla() {
+ pkgdesc="A port to Qt4 of Neil Hodgson's Scintilla C++ editor class"
+ depends=('qt')
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/Qt4"
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/designer-Qt4"
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+}
+
+package_python-qscintilla() {
+ pkgdesc="Python 3 bindings for QScintilla2"
+ depends=('python-qt' 'python2-qscintilla')
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/Python"
+ install -Dm755 Qsci.so \
+ "${pkgdir}/usr/lib/python3.2/site-packages/PyQt4/Qsci.so"
+}
+
+package_python2-qscintilla() {
+ pkgdesc="Python 2 bindings for QScintilla2"
+ depends=('qscintilla' 'python2-qt')
+
+ cd "${srcdir}/QScintilla-gpl-${pkgver}/Python2"
+ make DESTDIR="${pkgdir}" INSTALL_ROOT="${pkgdir}" install
+}
diff --git a/extra/qscintilla/configure.py-objdir-support.diff b/extra/qscintilla/configure.py-objdir-support.diff
new file mode 100644
index 000000000..b595de18c
--- /dev/null
+++ b/extra/qscintilla/configure.py-objdir-support.diff
@@ -0,0 +1,39 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 02_configure.dpatch by Torsten Marek <shlomme@debian.org>
+##
+## DP: patch the configure script for the Python bindings to support object dir builds
+
+@DPATCH@
+Index: qscintilla2-2.4.2/Python/configure.py
+===================================================================
+--- qscintilla2-2.4.2.orig/Python/configure.py 2010-01-20 20:56:09.000000000 +0100
++++ qscintilla2-2.4.2/Python/configure.py 2010-01-27 22:54:35.603870417 +0100
+@@ -33,6 +33,7 @@
+ import glob
+ import optparse
+
++src_dir = os.path.dirname(os.path.abspath(__file__))
+
+ # Import SIP's configuration module so that we have access to the error
+ # reporting. Then try and import the configuration modules for both PyQt3 and
+@@ -162,7 +163,7 @@
+ if os.access(sciglobal, os.F_OK):
+ # Get the QScintilla version string.
+ _, sciversstr = sipconfig.read_version(sciglobal, "QScintilla", "QSCINTILLA_VERSION", "QSCINTILLA_VERSION_STR")
+-
++ return # Debian: do not check for the installed version, we're good this way.
+ if glob.glob(os.path.join(opts.qscilibdir, "*qscintilla2*")):
+ # Because we include the Python bindings with the C++ code we can
+ # reasonably force the same version to be used and not bother about
+@@ -232,9 +233,9 @@
+ argv.append(buildfile)
+
+ if pyqt.pyqt_version >= 0x040000:
+- argv.append("sip/qscimod4.sip")
++ argv.append(os.path.join(src_dir, "sip/qscimod4.sip"))
+ else:
+- argv.append("sip/qscimod3.sip")
++ argv.append(os.path.join(src_dir, "sip/qscimod3.sip"))
+
+ os.system(" ".join(argv))
+
diff --git a/extra/qsynth/PKGBUILD b/extra/qsynth/PKGBUILD
new file mode 100644
index 000000000..781def0d3
--- /dev/null
+++ b/extra/qsynth/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 85922 2010-07-22 10:34:18Z schiv $
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=qsynth
+pkgver=0.3.5
+pkgrel=1
+pkgdesc="Qt GUI for fluidsynth"
+arch=('i686' 'x86_64')
+url="http://qsynth.sourceforge.net/qsynth-index.html"
+license=('GPL')
+depends=('fluidsynth' 'qt')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e1566eecf7bf3869211783cfe7a327b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/qt-assistant-compat/PKGBUILD b/extra/qt-assistant-compat/PKGBUILD
new file mode 100644
index 000000000..49fa9f0f2
--- /dev/null
+++ b/extra/qt-assistant-compat/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 92392 2010-09-29 14:51:01Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=qt-assistant-compat
+pkgver=4.6.3
+pkgrel=1
+pkgdesk="compat version of Qt Assistant"
+url="http://qt.nokia.com/"
+arch=('i686' 'x86_64')
+license=('GPL3' 'LGPL')
+depends=('qt')
+source=('ftp://ftp.qt.nokia.com/qt/source/qt-assistant-qassistantclient-library-compat-src-4.6.3.tar.gz'
+ 'debian_patches_01_build_system.diff')
+md5sums=('a20148e0488d5c12ab35ccc107dcc64d'
+ '1b55290dc9fab0c035797e9301d2fa61')
+
+# separate package function does not really work here due to broken build files
+build() {
+ cd ${srcdir}/qt-assistant-qassistantclient-library-compat-version-${pkgver}
+
+ patch -Np1 -i ${srcdir}/debian_patches_01_build_system.diff
+
+ cd lib; if [ -e Makefile ]; then $(MAKE) distclean; fi
+ rm -f translations/assistant_adp_*.qm
+
+ qmake CONFIG+=create_prl
+ make
+ cd ../translations; lrelease assistant_adp_*.ts
+ cd ..
+ qmake CONFIG+=create_prl
+ make
+}
+
+package(){
+ cd ${srcdir}/qt-assistant-qassistantclient-library-compat-version-${pkgver}
+
+ make install INSTALL_ROOT=${pkgdir}
+ cd lib
+ make install INSTALL_ROOT=${pkgdir}
+ cd ..
+
+ # Fix wrong path in prl file
+ sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" \
+ ${pkgdir}/usr/lib/libQtAssistantClient.prl
+
+ # Install translations
+ install -d ${pkgdir}/usr/share/qt/translations/
+ install -p -m0644 translations/assistant_adp_*.qm \
+ ${pkgdir}/usr/share/qt/translations/
+
+ # Install prf file
+ install -D -p -m0644 features/assistant.prf \
+ ${pkgdir}/usr/share/qt/mkspecs/features/assistant.prf
+
+}
diff --git a/extra/qt-assistant-compat/debian_patches_01_build_system.diff b/extra/qt-assistant-compat/debian_patches_01_build_system.diff
new file mode 100644
index 000000000..3266ced61
--- /dev/null
+++ b/extra/qt-assistant-compat/debian_patches_01_build_system.diff
@@ -0,0 +1,48 @@
+Description: several workarounds for the build system which is completely broken
+Author: Fathi Boudra <fabo@debian.org>
+
+--- a/compat.pro
++++ b/compat.pro
+@@ -66,8 +66,6 @@ TRANSLATIONS = translations/assistant_ad
+ translations/assistant_adp_zh_CN.ts \
+ translations/assistant_adp_zh_TW.ts
+
+-unix:!contains(QT_CONFIG, zlib):LIBS += -lz
+-
+ contains(CONFIG, static): {
+ win32 {
+ exists($$[QT_INSTALL_PLUGINS]/imageformats/qjpeg.lib) {
+@@ -81,3 +79,7 @@ contains(CONFIG, static): {
+ }
+ }
+ }
++
++target.path = $$[QT_INSTALL_BINS]
++INSTALLS += target
++
+--- a/lib/lib.pro
++++ b/lib/lib.pro
+@@ -16,8 +16,8 @@ HEADERS = qassistantclient.h \
+ qassistantclient_global.h
+ SOURCES = qassistantclient.cpp
+
+-DESTDIR = ../../../../lib
+-DLLDESTDIR = ../../../../bin
++DESTDIR = lib
++DLLDESTDIR = bin
+
+ unix {
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_SHLIB
+@@ -62,7 +62,7 @@ win32 {
+ }
+
+ qt_install_headers {
+- assistant_headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.HEADER_CLASSES
++ assistant_headers.files = qassistantclient.h qassistantclient_global.h
+ assistant_headers.path = $$[QT_INSTALL_HEADERS]/QtAssistant
+ INSTALLS += assistant_headers
+ }
+--- /dev/null
++++ b/lib/QtAssistant/qassistantclient_global.h
+@@ -0,0 +1 @@
++#include "../qassistantclient_global.h"
diff --git a/extra/qt/PKGBUILD b/extra/qt/PKGBUILD
new file mode 100644
index 000000000..4e6d6dfb0
--- /dev/null
+++ b/extra/qt/PKGBUILD
@@ -0,0 +1,219 @@
+# $Id: PKGBUILD 117207 2011-03-29 18:21:55Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgbase=qt
+pkgname=('qt' 'qt-private-headers')
+pkgver=4.7.2
+pkgrel=6
+arch=('i686' 'x86_64')
+url='http://qt.nokia.com/'
+license=('GPL3' 'LGPL')
+makedepends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'mesa' 'postgresql-libs'
+ 'mysql' 'unixodbc' 'cups' 'gtk2')
+options=('!libtool')
+_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
+source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz"
+ 'assistant.desktop' 'designer.desktop' 'linguist.desktop'
+ 'qtconfig.desktop'
+ 'blacklist-fraudulent-comodo-certificates.patch')
+md5sums=('66b992f5c21145df08c99d21847f4fdb'
+ 'fc211414130ab2764132e7370f8e5caa'
+ '85179f5e0437514f8639957e1d8baf62'
+ 'f11852b97583610f3dbb669ebc3e21bc'
+ '6b771c8a81dd90b45e8a79afa0e5bbfd'
+ 'af1259401447f4de59f1d4c2cbedafed')
+
+build() {
+ unset QMAKESPEC
+ export QT4DIR=$srcdir/$_pkgfqn
+ export PATH=${QT4DIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+
+ cd $srcdir/$_pkgfqn
+
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf
+ sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf
+ sed -i "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" mkspecs/common/g++.conf
+
+ ./configure -confirm-license -opensource \
+ -prefix /usr \
+ -docdir /usr/share/doc/qt \
+ -plugindir /usr/lib/qt/plugins \
+ -importdir /usr/lib/qt/imports \
+ -datadir /usr/share/qt \
+ -translationdir /usr/share/qt/translations \
+ -sysconfdir /etc \
+ -examplesdir /usr/share/doc/qt/examples \
+ -demosdir /usr/share/doc/qt/demos \
+ -largefile \
+ -plugin-sql-{psql,mysql,sqlite,odbc} \
+ -system-sqlite \
+ -xmlpatterns \
+ -no-phonon \
+ -no-phonon-backend \
+ -svg \
+ -webkit \
+ -script \
+ -scripttools \
+ -system-zlib \
+ -system-libtiff \
+ -system-libpng \
+ -system-libmng \
+ -system-libjpeg \
+ -nomake demos \
+ -nomake examples \
+ -nomake docs \
+ -no-rpath \
+ -openssl-linked \
+ -silent \
+ -optimized-qmake \
+ -dbus \
+ -reduce-relocations \
+ -no-separate-debug-info \
+ -gtkstyle \
+ -opengl \
+ -no-openvg \
+ -glib
+ make
+}
+
+package_qt() {
+ pkgdesc='A cross-platform application and UI framework'
+ depends=('libtiff' 'libpng' 'libmng' 'sqlite3' 'ca-certificates' 'glib2' 'dbus'
+ 'fontconfig' 'libgl' 'libsm' 'libxrandr' 'libxv' 'libxi' 'alsa-lib'
+ 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils')
+ optdepends=('postgresql-libs: PostgreSQL driver'
+ 'libmysqlclient: MySQL driver'
+ 'unixodbc: ODBC driver'
+ 'libxinerama: Xinerama support'
+ 'libxcursor: Xcursor support'
+ 'libxfixes: Xfixes support')
+ install='qt.install'
+
+ cd $srcdir/$_pkgfqn
+ make INSTALL_ROOT=$pkgdir install
+
+ # install missing icons and desktop files
+ for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do
+ size=$(echo $(basename ${icon}) | cut -d- -f2)
+ install -p -D -m644 ${icon} ${pkgdir}/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png
+ done
+ install -p -D -m644 src/gui/dialogs/images/qtlogo-64.png ${pkgdir}/usr/share/icons/hicolor/64x64/apps/qtlogo.png
+ install -p -D -m644 tools/assistant/tools/assistant/images/assistant.png ${pkgdir}/usr/share/icons/hicolor/32x32/apps/assistant.png
+ install -p -D -m644 tools/designer/src/designer/images/designer.png ${pkgdir}/usr/share/icons/hicolor/128x128/apps/designer.png
+ install -d ${pkgdir}/usr/share/applications
+ install -m644 ${srcdir}/{linguist,designer,assistant,qtconfig}.desktop ${pkgdir}/usr/share/applications/
+
+ # install license addition
+ install -D -m644 LGPL_EXCEPTION.txt ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt
+
+ # Fix wrong path in pkgconfig files
+ find ${pkgdir}/usr/lib/pkgconfig -type f -name '*.pc' \
+ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+ # Fix wrong path in prl files
+ find ${pkgdir}/usr/lib -type f -name '*.prl' \
+ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+}
+
+package_qt-private-headers(){
+ pkgdesc="Qt private headers for development"
+ depends=("qt=${pkgver}")
+
+ install -d ${pkgdir}/usr/include/phonon/private
+ cd ${srcdir}/$_pkgfqn/src/3rdparty/phonon/phonon/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/phonon/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/Qt3Support/private
+ cd ${srcdir}/$_pkgfqn/src/qt3support/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/Qt3Support/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtCore/private
+ cd ${srcdir}/$_pkgfqn/src/corelib/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtCore/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtDBus/private
+ cd ${srcdir}/$_pkgfqn/src/dbus/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtDBus/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtDeclarative/private
+ cd ${srcdir}/$_pkgfqn/src/declarative/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtDeclarative/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtDesigner/private
+ cd ${srcdir}/$_pkgfqn/tools/designer/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtDesigner/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtGui/private
+ cd ${srcdir}/$_pkgfqn/src/gui/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtGui/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtHelp/private
+ cd ${srcdir}/$_pkgfqn/tools/assistant/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtHelp/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtMultimedia/private
+ cd ${srcdir}/$_pkgfqn/src/multimedia/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtMultimedia/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtNetwork/private
+ cd ${srcdir}/$_pkgfqn/src/network/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtNetwork/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtOpenGL/private
+ cd ${srcdir}/$_pkgfqn/src/opengl/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtOpenGL/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtScript/private
+ cd ${srcdir}/$_pkgfqn/src/script/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtScript/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtScriptTools/private
+ cd ${srcdir}/$_pkgfqn/src/scripttools/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtScriptTools/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtSql/private
+ cd ${srcdir}/$_pkgfqn/src/sql/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtSql/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtSvg/private
+ cd ${srcdir}/$_pkgfqn/src/svg/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtSvg/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtTest/private
+ cd ${srcdir}/$_pkgfqn/src/testlib/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtTest/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtUiTools/private
+ cd ${srcdir}/$_pkgfqn/tools/designer/src/uitools
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtUiTools/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtWebKit/private
+ cd ${srcdir}/$_pkgfqn/src/3rdparty/webkit
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtWebKit/private/ \; &> /dev/null
+
+ install -d ${pkgdir}/usr/include/QtXmlPatterns/private
+ cd ${srcdir}/$_pkgfqn/src/xmlpatterns/
+ find . -name "*_p.h" -exec install -m644 {} \
+ ${pkgdir}/usr/include/QtXmlPatterns/private/ \; &> /dev/null
+}
diff --git a/extra/qt/assistant.desktop b/extra/qt/assistant.desktop
new file mode 100644
index 000000000..a9e98c44b
--- /dev/null
+++ b/extra/qt/assistant.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Qt Assistant
+Comment=Shows Qt documentation and examples
+Exec=/usr/bin/assistant
+Icon=assistant
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;Documentation;
diff --git a/extra/qt/blacklist-fraudulent-comodo-certificates.patch b/extra/qt/blacklist-fraudulent-comodo-certificates.patch
new file mode 100644
index 000000000..bd2da5bb3
--- /dev/null
+++ b/extra/qt/blacklist-fraudulent-comodo-certificates.patch
@@ -0,0 +1,89 @@
+diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
+index 618ac79..a5cdf01 100644
+--- a/src/network/ssl/qsslcertificate.cpp
++++ b/src/network/ssl/qsslcertificate.cpp
+@@ -219,17 +219,19 @@ bool QSslCertificate::isNull() const
+ Returns true if this certificate is valid; otherwise returns
+ false.
+
+- Note: Currently, this function only checks that the current
++ Note: Currently, this function checks that the current
+ data-time is within the date-time range during which the
+- certificate is considered valid. No other checks are
+- currently performed.
++ certificate is considered valid, and checks that the
++ certificate is not in a blacklist of fraudulent certificates.
+
+ \sa isNull()
+ */
+ bool QSslCertificate::isValid() const
+ {
+ const QDateTime currentTime = QDateTime::currentDateTime();
+- return currentTime >= d->notValidBefore && currentTime <= d->notValidAfter;
++ return currentTime >= d->notValidBefore &&
++ currentTime <= d->notValidAfter &&
++ ! QSslCertificatePrivate::isBlacklisted(*this);
+ }
+
+ /*!
+@@ -798,6 +800,30 @@ QList<QSslCertificate> QSslCertificatePrivate::certificatesFromDer(const QByteAr
+ return certificates;
+ }
+
++// These certificates are known to be fraudulent and were created during the comodo
++// compromise. See http://www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html
++static const char *certificate_blacklist[] = {
++ "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e",
++ "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06",
++ "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3",
++ "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29",
++ "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71",
++ "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47",
++ "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43",
++ "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0",
++ "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0",
++ 0
++};
++
++bool QSslCertificatePrivate::isBlacklisted(const QSslCertificate &certificate)
++{
++ for (int a = 0; certificate_blacklist[a] != 0; a++) {
++ if (certificate.serialNumber() == certificate_blacklist[a])
++ return true;
++ }
++ return false;
++}
++
+ #ifndef QT_NO_DEBUG_STREAM
+ QDebug operator<<(QDebug debug, const QSslCertificate &certificate)
+ {
+diff --git a/src/network/ssl/qsslcertificate_p.h b/src/network/ssl/qsslcertificate_p.h
+index cdceb0f..1ce33d3 100644
+--- a/src/network/ssl/qsslcertificate_p.h
++++ b/src/network/ssl/qsslcertificate_p.h
+@@ -96,6 +96,7 @@ public:
+ static QSslCertificate QSslCertificate_from_X509(X509 *x509);
+ static QList<QSslCertificate> certificatesFromPem(const QByteArray &pem, int count = -1);
+ static QList<QSslCertificate> certificatesFromDer(const QByteArray &der, int count = -1);
++ static bool isBlacklisted(const QSslCertificate &certificate);
+
+ friend class QSslSocketBackendPrivate;
+
+diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
+index 0866534..2427193 100644
+--- a/src/network/ssl/qsslsocket_openssl.cpp
++++ b/src/network/ssl/qsslsocket_openssl.cpp
+@@ -1193,6 +1193,13 @@ bool QSslSocketBackendPrivate::startHandshake()
+ X509 *x509 = q_SSL_get_peer_certificate(ssl);
+ configuration.peerCertificate = QSslCertificatePrivate::QSslCertificate_from_X509(x509);
+ q_X509_free(x509);
++ if (QSslCertificatePrivate::isBlacklisted(configuration.peerCertificate)) {
++ q->setErrorString(QSslSocket::tr("The peer certificate is blacklisted"));
++ q->setSocketError(QAbstractSocket::SslHandshakeFailedError);
++ emit q->error(QAbstractSocket::SslHandshakeFailedError);
++ plainSocket->disconnectFromHost();
++ return false;
++ }
+
+ // Start translating errors.
+ QList<QSslError> errors;
diff --git a/extra/qt/designer.desktop b/extra/qt/designer.desktop
new file mode 100644
index 000000000..9b7b6e9aa
--- /dev/null
+++ b/extra/qt/designer.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Name=Qt Designer
+GenericName=Interface Designer
+Comment=Design GUIs for Qt applications
+Exec=/usr/bin/designer
+Icon=designer
+MimeType=application/x-designer;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/extra/qt/linguist.desktop b/extra/qt/linguist.desktop
new file mode 100644
index 000000000..8cbe86599
--- /dev/null
+++ b/extra/qt/linguist.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Linguist
+Comment=Add translations to Qt applications
+Exec=/usr/bin/linguist
+Icon=linguist
+MimeType=text/vnd.trolltech.linguist;application/x-linguist;
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Development;
diff --git a/extra/qt/qt.install b/extra/qt/qt.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/extra/qt/qt.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/extra/qt/qtconfig.desktop b/extra/qt/qtconfig.desktop
new file mode 100644
index 000000000..46dcf9e3d
--- /dev/null
+++ b/extra/qt/qtconfig.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Qt Config
+Comment=Configure Qt behavior, styles, fonts
+Exec=/usr/bin/qtconfig
+Icon=qtlogo
+Terminal=false
+Encoding=UTF-8
+Type=Application
+Categories=Qt;Settings;
+NoDisplay=true
diff --git a/extra/qt3/PKGBUILD b/extra/qt3/PKGBUILD
new file mode 100644
index 000000000..c7f6570e2
--- /dev/null
+++ b/extra/qt3/PKGBUILD
@@ -0,0 +1,118 @@
+# $Id: PKGBUILD 114776 2011-03-15 23:09:15Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=qt3
+pkgver=3.3.8
+pkgrel=19
+pkgdesc="The QT gui toolkit."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.trolltech.com/products/qt/index.html"
+pkgfqn=qt-x11-free-${pkgver}
+install=qt.install
+depends=('libpng>=1.4.0' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' \
+ 'libxft' 'libxrandr' 'libmng>=1.0.10-3')
+makedepends=('mysql' 'postgresql>=8.2.3' 'unixodbc' 'sqlite3')
+optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc')
+source=(ftp://ftp.trolltech.com/qt/source/${pkgfqn}.tar.bz2 qt3-png14.patch qt.profile \
+ qt-copy-kde-patches.tar.bz2 qt-patches.tar.bz2 utf8-bug-qt3.diff \
+ qt-font-default-subst.diff mysql.patch eastern_asian_languagues.diff qt-odbc.patch)
+options=(!libtool)
+md5sums=('cf3c43a7dfde5bfb76f8001102fe6e85'
+ '1dc671df42b9030dbdf68bb61cd3375e'
+ 'f72d1eb4eb49b9a9467c1f6035194266'
+ 'f2a2dbdbfee9422c90efc3ef3f86197c'
+ '2f00e5c0c1e2c2a23dddc982cd79f3e0'
+ 'f6b3b39040f2b8f19ba1cf1445468c28'
+ '9370d82e85f2c799335ed0dcc1d53189'
+ '7d40ed1bd40d33d8b9b27a2076a5d22a'
+ '616f1f3029cf8375256ad6a406de3549'
+ '2178ca88dfd75a230918593b30eb0dbe')
+
+# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/
+# other qt-patches come from fedora and gentoo
+
+build() {
+ unset QMAKESPEC
+ export QTDIR=${srcdir}/$pkgfqn
+ export PATH=${QTDIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
+ export QMAKESPEC=$QTDIR/mkspecs/linux-g++
+ cd ${srcdir}/$pkgfqn
+ # apply qt patches from kde.org
+ for i in ../qt-copy-kde-patches/*; do
+ patch -Np0 -i $i || return 1
+ done
+ # apply other qt patches and one security fix from debian/gentoo
+ for i in ../qt-patches/*; do
+ patch -Np1 -i $i || return 1
+ done
+ # fix utf8 bug
+ patch -Np0 -i ../utf8-bug-qt3.diff || return 1
+ # fix asia fonts
+ patch -Np0 -i ../qt-font-default-subst.diff || return 1
+ # fix segfaults on exit when using mysql DB driver
+ patch -Np0 -i ../mysql.patch || return 1
+ # fix CJK font/chars select error (FS#11245)
+ patch -p1 -i ${srcdir}/eastern_asian_languagues.diff || return 1
+ # fix build problem against new unixODBC
+ patch -p1 -i ${srcdir}/qt-odbc.patch || return 1
+
+ patch -p0 -i ${srcdir}/qt3-png14.patch || return 1
+ # start compiling qt
+ sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix
+ rm -rf doc/html examples tutorial
+ sed -i "s|sub-tutorial sub-examples||" Makefile
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-32/qmake.conf
+ sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-64/qmake.conf
+ sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix
+ sed -i "s|read acceptance|acceptance=yes|" configure
+
+ # remove unwanted mkspecs
+ rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*}
+
+ if [ "$CARCH" = "x86_64" ]; then
+ export ARCH="-64"
+ else unset ARCH
+ fi
+
+ ./configure -prefix /opt/qt -platform linux-g++$ARCH \
+ -system-zlib -qt-gif -release -shared -sm -nis -thread -stl \
+ -system-lib{png,jpeg,mng} \
+ -no-g++-exceptions -plugin-sql-{mysql,psql,sqlite,odbc}
+
+ # fix /opt/qt/lib path
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/src/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/designer/designer/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/designer/editor/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/assistant/lib/Makefile
+ [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" ${srcdir}/$pkgfqn/tools/designer/uilib/Makefile
+
+ cd ${srcdir}/$pkgfqn
+ make -C qmake || return 1
+ cd ${srcdir}/$pkgfqn/plugins/src/sqldrivers/mysql
+ ${srcdir}/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
+ cd ${srcdir}/$pkgfqn/plugins/src/sqldrivers/psql
+ ${srcdir}/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro
+
+ cd ${srcdir}/$pkgfqn
+ # fix the broken makefiles
+ #sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile
+ make || return 1
+ make INSTALL_ROOT=${pkgdir} install
+ rm -rf ${pkgdir}/opt/qt/{phrasebooks,templates,translations}
+ sed -i "s|-L${srcdir}/$pkgfqn/lib ||g" ${pkgdir}/opt/qt/lib/*.prl
+ install -D -m755 qmake/qmake ${pkgdir}/opt/qt/bin/qmake
+ install -D -m755 ${srcdir}/qt.profile ${pkgdir}/etc/profile.d/qt3.sh
+ ln -sf /opt/qt/bin/qtconfig ${pkgdir}/opt/qt/bin/qt3config
+ rm -f ${pkgdir}/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH
+
+ # install man pages
+ mkdir -p ${pkgdir}/opt/qt/man
+ cp -r ${srcdir}/$pkgfqn/doc/man/{man1,man3} ${pkgdir}/opt/qt/man/
+
+ install -d -m755 ${pkgdir}/etc/ld.so.conf.d/
+ echo '/opt/qt/lib' > ${pkgdir}/etc/ld.so.conf.d/qt3.conf
+}
diff --git a/extra/qt3/eastern_asian_languagues.diff b/extra/qt3/eastern_asian_languagues.diff
new file mode 100644
index 000000000..7c25eef7d
--- /dev/null
+++ b/extra/qt3/eastern_asian_languagues.diff
@@ -0,0 +1,39 @@
+--- qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-01-15 21:09:13.000000000 +0200
++++ qt-x11-free-3.3.8b/src/kernel/qfontdatabase.cpp 2008-03-10 11:34:22.000000000 +0200
+@@ -966,20 +966,22 @@
+
+ #ifdef Q_WS_X11
+ if (script == QFont::Han) {
+- // modify script according to locale
+- static QFont::Script defaultHan = QFont::UnknownScript;
+- if (defaultHan == QFont::UnknownScript) {
+- QCString locale = setlocale(LC_ALL, NULL);
+- if (locale.contains("ko"))
+- defaultHan = QFont::Han_Korean;
+- else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
+- defaultHan = QFont::Han_TraditionalChinese;
+- else if (locale.contains("zh"))
+- defaultHan = QFont::Han_SimplifiedChinese;
+- else
+- defaultHan = QFont::Han_Japanese;
+- }
+- script = defaultHan;
++ // modify script according to locale
++ static QFont::Script defaultHan;
++ QCString locale = setlocale(LC_ALL, NULL);
++
++ if (locale.contains("ko"))
++ defaultHan = QFont::Han_Korean;
++ else if (locale.contains("zh_TW") || locale.contains("zh_HK"))
++ defaultHan = QFont::Han_TraditionalChinese;
++ else if (locale.contains("zh"))
++ defaultHan = QFont::Han_SimplifiedChinese;
++ else if (locale.contains("ja"))
++ defaultHan = QFont::Han_Japanese;
++ else
++ defaultHan = QFont::Han; // don't change
++
++ script = defaultHan;
+ }
+ #endif
+
diff --git a/extra/qt3/mysql.patch b/extra/qt3/mysql.patch
new file mode 100644
index 000000000..5f61edc67
--- /dev/null
+++ b/extra/qt3/mysql.patch
@@ -0,0 +1,47 @@
+--- src/sql/drivers/mysql/qsql_mysql.cpp
++++ src/sql/drivers/mysql/qsql_mysql.cpp
+@@ -37,7 +37,6 @@
+ #include "qsql_mysql.h"
+ #include <private/qsqlextension_p.h>
+
+-#include <qapplication.h>
+ #include <qdatetime.h>
+ #include <qvaluevector.h>
+ #include <qsqlrecord.h>
+@@ -341,14 +340,6 @@ int QMYSQLResult::numRowsAffected()
+ }
+
+ /////////////////////////////////////////////////////////
+-static void qServerEnd()
+-{
+-#ifndef Q_NO_MYSQL_EMBEDDED
+-# if MYSQL_VERSION_ID >= 40000
+- mysql_server_end();
+-# endif // MYSQL_VERSION_ID
+-#endif // Q_NO_MYSQL_EMBEDDED
+-}
+
+ static void qServerInit()
+ {
+@@ -366,9 +357,7 @@ static void qServerInit()
+ qWarning( "QMYSQLDriver::qServerInit: unable to start server." );
+ # endif
+ }
+- qAddPostRoutine(qServerEnd);
+ init = TRUE;
+-
+ # endif // MYSQL_VERSION_ID
+ #endif // Q_NO_MYSQL_EMBEDDED
+ }
+@@ -411,6 +400,11 @@ QMYSQLDriver::~QMYSQLDriver()
+ QSqlOpenExtension *ext = qSqlOpenExtDict()->take( this );
+ delete ext;
+ }
++#ifndef Q_NO_MYSQL_EMBEDDED
++# if MYSQL_VERSION_ID > 40000
++ mysql_server_end();
++# endif
++#endif
+ }
+
+ bool QMYSQLDriver::hasFeature( DriverFeature f ) const
diff --git a/extra/qt3/qt-copy-kde-patches.tar.bz2 b/extra/qt3/qt-copy-kde-patches.tar.bz2
new file mode 100644
index 000000000..19d899963
--- /dev/null
+++ b/extra/qt3/qt-copy-kde-patches.tar.bz2
Binary files differ
diff --git a/extra/qt3/qt-font-default-subst.diff b/extra/qt3/qt-font-default-subst.diff
new file mode 100644
index 000000000..3e286f74e
--- /dev/null
+++ b/extra/qt3/qt-font-default-subst.diff
@@ -0,0 +1,77 @@
+--- src/kernel/qfontdatabase_x11.cpp
++++ src/kernel/qfontdatabase_x11.cpp
+@@ -1589,15 +1589,6 @@ QFontEngine *loadEngine( QFont::Script s
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese){
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+@@ -1813,7 +1804,11 @@ static QFontEngine *loadFontConfigFont(c
+ FcPatternPrint(pattern);
+ #endif
+
++ // XftFontMatch calls the right ConfigSubstitute variants, but as we use
++ // FcFontMatch/Sort here we have to do it manually.
+ FcConfigSubstitute(0, pattern, FcMatchPattern);
++ XftDefaultSubstitute(QPaintDevice::x11AppDisplay(), QPaintDevice::x11AppScreen(), pattern);
++
+ // qDebug("1: pattern contains:");
+ // FcPatternPrint(pattern);
+
+@@ -1847,10 +1842,6 @@ static QFontEngine *loadFontConfigFont(c
+ value.u.s = (const FcChar8 *)cs.data();
+ FcPatternAddWeak(pattern, FC_FAMILY, value, FcTrue);
+ }
+-#ifdef FONT_MATCH_DEBUG
+- printf("final pattern contains:\n");
+- FcPatternPrint(pattern);
+-#endif
+ }
+
+ if (script != QFont::Unicode) {
+@@ -1860,19 +1851,15 @@ static QFontEngine *loadFontConfigFont(c
+ if (script == QFont::Latin)
+ // add Euro character
+ FcCharSetAddChar(cs, 0x20ac);
+- if (script == QFont::Han_SimplifiedChinese)
+- FcCharSetAddChar(cs, 0x3400);
+- if (script == QFont::Han_TraditionalChinese) {
+- FcCharSetAddChar(cs, 0x3435);
+- FcCharSetAddChar(cs, 0xE000);
+- FcCharSetAddChar(cs, 0xF6B1);
+- }
+- if (script == QFont::MiscellaneousSymbols)
+- FcCharSetAddChar(cs, 0x2714);
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
+ FcCharSetDestroy(cs);
+ }
+
++#ifdef FONT_MATCH_DEBUG
++ printf("final pattern contains:\n");
++ FcPatternPrint(pattern);
++#endif
++
+ QFontEngine *fe = 0;
+
+ for( int jj = (FcGetVersion() >= 20392 ? 0 : 1); jj < 2; ++jj ) {
+--- src/kernel/qfontdatabase.cpp
++++ src/kernel/qfontdatabase.cpp
+@@ -554,7 +554,7 @@ static const unsigned short sample_chars
+ // GeometricSymbols,
+ { 0x2500, 0x0 },
+ // MiscellaneousSymbols,
+- { 0x2640, 0x0 },
++ { 0x2640, 0x2714, 0x0 },
+ // EnclosedAndSquare,
+ { 0x2460, 0x0 },
+ // Braille,
diff --git a/extra/qt3/qt-odbc.patch b/extra/qt3/qt-odbc.patch
new file mode 100644
index 000000000..6f21e3cf1
--- /dev/null
+++ b/extra/qt3/qt-odbc.patch
@@ -0,0 +1,19 @@
+diff -up qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp
+--- qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp.orig 2009-02-24 11:32:27.000000000 +0100
++++ qt-x11-free-3.3.8/src/sql/drivers/odbc/qsql_odbc.cpp 2009-02-24 11:33:43.000000000 +0100
+@@ -57,13 +57,13 @@
+ #endif
+
+ // newer platform SDKs use SQLLEN instead of SQLINTEGER
+-#ifdef SQLLEN
++#if defined(SQLLEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLLEN SQLLEN
+ #else
+ # define QSQLLEN SQLINTEGER
+ #endif
+
+-#ifdef SQLULEN
++#if defined(SQLULEN) || defined(Q_OS_WIN64) || defined(Q_OS_UNIX)
+ # define QSQLULEN SQLULEN
+ #else
+ # define QSQLULEN SQLUINTEGER
diff --git a/extra/qt3/qt-patches.tar.bz2 b/extra/qt3/qt-patches.tar.bz2
new file mode 100644
index 000000000..3f4aee171
--- /dev/null
+++ b/extra/qt3/qt-patches.tar.bz2
Binary files differ
diff --git a/extra/qt3/qt.install b/extra/qt3/qt.install
new file mode 100644
index 000000000..6d042daae
--- /dev/null
+++ b/extra/qt3/qt.install
@@ -0,0 +1,12 @@
+post_install() {
+ post_remove
+}
+
+post_upgrade() {
+ post_remove
+}
+
+post_remove() {
+ # this can be removed in future versions
+ sed -e '/\/opt\/qt\/lib/d' -i etc/ld.so.conf
+}
diff --git a/extra/qt3/qt.profile b/extra/qt3/qt.profile
new file mode 100644
index 000000000..ed4d232ae
--- /dev/null
+++ b/extra/qt3/qt.profile
@@ -0,0 +1,4 @@
+export QTDIR=/opt/qt
+export QT_XFT=true
+export PATH=$PATH:$QTDIR/bin
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig
diff --git a/extra/qt3/qt3-png14.patch b/extra/qt3/qt3-png14.patch
new file mode 100644
index 000000000..e8a194529
--- /dev/null
+++ b/extra/qt3/qt3-png14.patch
@@ -0,0 +1,33 @@
+--- src/kernel/qpngio.cpp.orig 2010-01-16 22:02:41.000000000 +0100
++++ src/kernel/qpngio.cpp 2010-01-16 22:03:56.000000000 +0100
+@@ -159,7 +159,7 @@
+ image.setColor( i, qRgba(c,c,c,0xff) );
+ }
+ if ( png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS) ) {
+- const int g = info_ptr->trans_values.gray;
++ const int g = info_ptr->trans_color.gray;
+ if (g < ncols) {
+ image.setAlphaBuffer(TRUE);
+ image.setColor(g, image.color(g) & RGB_MASK);
+@@ -187,7 +187,7 @@
+ info_ptr->palette[i].red,
+ info_ptr->palette[i].green,
+ info_ptr->palette[i].blue,
+- info_ptr->trans[i]
++ info_ptr->trans_alpha[i]
+ )
+ );
+ i++;
+@@ -321,9 +321,9 @@
+ png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)
+ if (image.depth()==32 && png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) {
+ QRgb trans = 0xFF000000 | qRgb(
+- (info_ptr->trans_values.red << 8 >> bit_depth)&0xff,
+- (info_ptr->trans_values.green << 8 >> bit_depth)&0xff,
+- (info_ptr->trans_values.blue << 8 >> bit_depth)&0xff);
++ (info_ptr->trans_color.red << 8 >> bit_depth)&0xff,
++ (info_ptr->trans_color.green << 8 >> bit_depth)&0xff,
++ (info_ptr->trans_color.blue << 8 >> bit_depth)&0xff);
+ for (uint y=0; y<height; y++) {
+ for (uint x=0; x<info_ptr->width; x++) {
+ if (((uint**)jt)[y][x] == trans) {
diff --git a/extra/qt3/utf8-bug-qt3.diff b/extra/qt3/utf8-bug-qt3.diff
new file mode 100644
index 000000000..43e84a99f
--- /dev/null
+++ b/extra/qt3/utf8-bug-qt3.diff
@@ -0,0 +1,101 @@
+--- src/codecs/qutfcodec.cpp
++++ src/codecs/qutfcodec.cpp
+@@ -154,6 +154,7 @@
+
+ class QUtf8Decoder : public QTextDecoder {
+ uint uc;
++ uint min_uc;
+ int need;
+ bool headerDone;
+ public:
+@@ -167,8 +168,9 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uchar ch;
++ int error = -1;
+ for (int i=0; i<len; i++) {
+- ch = *chars++;
++ ch = chars[i];
+ if (need) {
+ if ( (ch&0xc0) == 0x80 ) {
+ uc = (uc << 6) | (ch & 0x3f);
+@@ -182,6 +184,8 @@
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
+ headerDone = TRUE;
++ } else if ((uc < min_uc) || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ *qch++ = QChar::replacement;
+ } else {
+ if (headerDone || QChar(uc) != QChar::byteOrderMark)
+ *qch++ = uc;
+@@ -190,6 +194,7 @@
+ }
+ } else {
+ // error
++ i = error;
+ *qch++ = QChar::replacement;
+ need = 0;
+ }
+@@ -200,12 +205,21 @@
+ } else if ((ch & 0xe0) == 0xc0) {
+ uc = ch & 0x1f;
+ need = 1;
++ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
++ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
++ error = i;
++ min_uc = 0x10000;
++ } else {
++ // error
++ *qch++ = QChar::replacement;
+ }
+ }
+ }
+--- src/tools/qstring.cpp
++++ src/tools/qstring.cpp
+@@ -5805,6 +5805,7 @@
+ result.setLength( len ); // worst case
+ QChar *qch = (QChar *)result.unicode();
+ uint uc = 0;
++ uint min_uc = 0;
+ int need = 0;
+ int error = -1;
+ uchar ch;
+@@ -5822,6 +5823,12 @@
+ unsigned short low = uc%0x400 + 0xdc00;
+ *qch++ = QChar(high);
+ *qch++ = QChar(low);
++ } else if (uc < min_uc || (uc >= 0xd800 && uc <= 0xdfff) || (uc >= 0xfffe)) {
++ // overlong seqence, UTF16 surrogate or BOM
++ i = error;
++ qch = addOne(qch, result);
++ *qch++ = QChar(0xdbff);
++ *qch++ = QChar(0xde00+((uchar)utf8[i]));
+ } else {
+ *qch++ = uc;
+ }
+@@ -5844,14 +5851,17 @@
+ uc = ch & 0x1f;
+ need = 1;
+ error = i;
++ min_uc = 0x80;
+ } else if ((ch & 0xf0) == 0xe0) {
+ uc = ch & 0x0f;
+ need = 2;
+ error = i;
++ min_uc = 0x800;
+ } else if ((ch&0xf8) == 0xf0) {
+ uc = ch & 0x07;
+ need = 3;
+ error = i;
++ min_uc = 0x10000;
+ } else {
+ // Error
+ qch = addOne(qch, result);
diff --git a/extra/qtcurve-gtk2/PKGBUILD b/extra/qtcurve-gtk2/PKGBUILD
new file mode 100644
index 000000000..22fff627f
--- /dev/null
+++ b/extra/qtcurve-gtk2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 115505 2011-03-18 09:05:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qtcurve-gtk2
+pkgver=1.8.7
+pkgrel=1
+arch=('i686' 'x86_64')
+groups=('qtcurve')
+license=('GPL')
+pkgdesc='A configurable set of widget styles for KDE and Gtk'
+url='http://www.kde-look.org/content/show.php?content=40492'
+depends=('gtk2')
+makedepends=('pkgconfig' 'cmake')
+options=('!libtool')
+source=("http://craigd.wikispaces.com/file/view/QtCurve-Gtk2-${pkgver}.tar.bz2")
+md5sums=('da80db7f6a0b60e37ce14b918bc5e682')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../QtCurve-Gtk2-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/qtcurve-kde3/PKGBUILD b/extra/qtcurve-kde3/PKGBUILD
new file mode 100644
index 000000000..afec99259
--- /dev/null
+++ b/extra/qtcurve-kde3/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD,v 1.43 2008/07/14 01:06:07 Pierre Exp $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qtcurve-kde3
+pkgver=1.8.3
+pkgrel=1
+arch=('i686' 'x86_64')
+groups=('qtcurve')
+license=('GPL')
+pkgdesc='A configurable set of widget styles for KDE and Gtk'
+url='http://www.kde-look.org/content/show.php?content=40492'
+depends=('kdelibs3')
+makedepends=('cmake' 'kdelibs')
+source=("http://craigd.wikispaces.com/file/view/QtCurve-KDE3-${pkgver}.tar.bz2"
+ 'kdeglobals'
+ 'bypass-kde-config.patch')
+md5sums=('ef0d682cafc2f1ada4939d3b43e2dc76'
+ '05a6294c7f0e239e698e7e5224fc8e7f'
+ 'e1ab2c0995e412b2cbfe804fba75517e')
+
+build() {
+ . /etc/profile.d/qt3.sh
+ . /etc/profile.d/kde3.sh
+
+ cd ${srcdir}/QtCurve-KDE3-${pkgver}
+ # Bypass KDE prefix detection by kde4-config, see:
+ # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541667
+ patch -Np1 -i ${srcdir}/bypass-kde-config.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../QtCurve-KDE3-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/opt/kde
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+
+ # remove kcontrol plugins
+ rm -f $pkgdir/opt/kde/lib/kde3/kstyle_qtcurve_config.*
+
+ # set default theme
+ install -D -m644 $srcdir/kdeglobals $pkgdir/opt/kde/share/config/kdeglobals
+}
diff --git a/extra/qtcurve-kde3/bypass-kde-config.patch b/extra/qtcurve-kde3/bypass-kde-config.patch
new file mode 100644
index 000000000..113fb93b8
--- /dev/null
+++ b/extra/qtcurve-kde3/bypass-kde-config.patch
@@ -0,0 +1,24 @@
+--- QtCurve-KDE3-1.6.0/CMakeLists.txt~ 2010-09-14 16:19:36.543333337 +0200
++++ QtCurve-KDE3-1.6.0/CMakeLists.txt 2010-09-14 16:22:18.160000003 +0200
+@@ -44,6 +44,12 @@
+ endif (QT_PLUGINS_DIR MATCHES NOTFOUND)
+ endif (NOT QTC_QT_ONLY)
+
++# Comment the kde3/kde4 prefix detection as a whole as it wants to run
++# kde-config and kde4-config, which in turn can create stuff in ~/.kde.
++# This cannot work on read-only homes.
++# So, the "fallback" prefixes ("/usr" for both) will be used.
++if (BRAINDEAD_DETECTION)
++
+ if (NOT QTC_QT_ONLY)
+ exec_program(kde-config
+ ARGS --prefix --expandvars
+@@ -71,6 +77,8 @@
+ OUTPUT_VARIABLE KDE4PREFIX)
+ endif(KDE4_KDECONFIG_EXECUTABLE)
+
++endif (BRAINDEAD_DETECTION)
++
+ if(NOT KDE4PREFIX)
+ set(KDE4PREFIX ${KDE3PREFIX})
+ endif(NOT KDE4PREFIX)
diff --git a/extra/qtcurve-kde3/kdeglobals b/extra/qtcurve-kde3/kdeglobals
new file mode 100644
index 000000000..ffbe26579
--- /dev/null
+++ b/extra/qtcurve-kde3/kdeglobals
@@ -0,0 +1,2 @@
+[General]
+widgetStyle=qtcurve
diff --git a/extra/qtcurve-kde4/PKGBUILD b/extra/qtcurve-kde4/PKGBUILD
new file mode 100644
index 000000000..267f40eae
--- /dev/null
+++ b/extra/qtcurve-kde4/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 115510 2011-03-18 09:08:27Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=qtcurve-kde4
+pkgver=1.8.6
+pkgrel=1
+arch=('i686' 'x86_64')
+groups=('qtcurve')
+license=('GPL')
+pkgdesc='A configurable set of widget styles for KDE and Gtk'
+url='http://www.kde-look.org/content/show.php?content=40492'
+depends=('kdebase-workspace')
+makedepends=('cmake' 'automoc4')
+source=("http://craigd.wikispaces.com/file/view/QtCurve-KDE4-${pkgver}.tar.bz2"
+ 'bypass-kde-config.patch')
+md5sums=('2c7a9ab5d71da48a3118c6859b2b38e6'
+ '3f6681147cc361bd2bfd4d7477f2a8d0')
+
+build() {
+ cd ${srcdir}/QtCurve-KDE4-${pkgver}
+ # Bypass KDE prefix detection by kde4-config, see:
+ # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541667
+ patch -Np1 -i ${srcdir}/bypass-kde-config.patch
+
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../QtCurve-KDE4-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd $srcdir/build
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/qtcurve-kde4/bypass-kde-config.patch b/extra/qtcurve-kde4/bypass-kde-config.patch
new file mode 100644
index 000000000..d09e5ead5
--- /dev/null
+++ b/extra/qtcurve-kde4/bypass-kde-config.patch
@@ -0,0 +1,32 @@
+From: Pino Toscano <pino@kde.org>
+Description: Disable braindead KDE3/4 prefix detection
+ The current detection of the KDE 3 and KDE 4 prefixes is done running
+ kde-config and kde4-config, resp.
+ This can be problematic, as these two could create files in ~/.kde,
+ thus breaking when the home of the current user (eg in buildds) is read-only.
+ Given the build system sets anyway "/usr" as prefix of KDE 3 and KDE 4
+ if they were not detected, then just let it to.
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=541667
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -16,6 +16,11 @@ set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CM
+ set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${QTCURVE_VERSION_FULL}")
+ include(CPack)
+
++# Comment the kde3/kde4 prefix detection as a whole as it wants to run
++# kde-config and kde4-config, which in turn can create stuff in ~/.kde.
++# This cannot work on read-only homes.
++# So, the "fallback" prefixes ("/usr" for both) will be used.
++if (BRAINDEAD_DETECTION)
+ set(OLD_CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
+
+ # Try to find kde4-config...
+@@ -48,6 +53,7 @@ if (KDE4_KDECONFIG_EXECUTABLE)
+ ARGS --prefix
+ OUTPUT_VARIABLE KDE4PREFIX)
+ endif (KDE4_KDECONFIG_EXECUTABLE)
++endif (BRAINDEAD_DETECTION)
+
+ if(NOT KDE3PREFIX)
+ if(KDE4PREFIX)
diff --git a/extra/qtiplot/PKGBUILD b/extra/qtiplot/PKGBUILD
new file mode 100644
index 000000000..03644f0cf
--- /dev/null
+++ b/extra/qtiplot/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 112432 2011-03-04 22:39:07Z eric $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir.archlinux.org>
+# Contributor: Gergely Imreh <imrehg@gmail.com>
+
+pkgname=qtiplot
+pkgver=0.9.8.2
+pkgrel=6
+pkgdesc="Data analysis and scientific plotting - free clone of Origin"
+arch=('i686' 'x86_64')
+url="http://soft.proindependent.com/qtiplot.html"
+depends=('muparser' 'gsl' 'python2-qt' 'boost-libs' 'shared-mime-info' 'mesa' 'liborigin2' 'qt-assistant-compat')
+# build against qwtplot3d provided in the package ...
+# build against qwt provided in the package ...
+# as systemwide one doesn't provide all needed functions
+makedepends=('pkg-config' 'boost')
+license=('GPL2')
+install=${pkgname}.install
+source=(http://download.berlios.de/qtiplot/qtiplot-${pkgver}.tar.bz2
+ $pkgname.desktop
+ $pkgname.png
+ build.conf.archlinux
+ qwtplot3d_gcc.patch
+ qtiplot.xml
+ qtiplot-0.9.7.14-system-liborigin.patch
+ gentoo-fix-origin-build-failure.patch)
+md5sums=('e8335a8760e8c2ac044607d5a4bb80ca' '56bd53f4f1367c285086acb969f13348'\
+ 'ad8affbd6f0d5cbdcde46c923ee2668a' '4fc37151dc30d5ca36fd7d891a8bc41b'\
+ 'ab02c436ec2c04b1838cb5517383b4eb' '35683f3b32e1edcca0bb02c471d284e9'\
+ 'fa7cfc5ba60d28f264ad53869d31fcc8' '642cb38c6579b51b86834c8640130b6f')
+sha1sums=('dd8d1003cee8767d4ba9e616e5263da1302c290d' '4d5d7cf3965a0a1b1aa9cafc34e70ee207700bc8'\
+ '4301cb2a36024a10108b689990d28c4fe5c7416e' '7afcdd4eca157f55e3ec4276712c466b3dc05106'\
+ '301bf6f70e8c1bb9ffd55eb49eedde7b29a12909' '285f57d865956d93250ec548288c5bface096b6b'\
+ '86899322f259be8594399642170f3f642d7f5f75' '9d6373fd9c0d1061796d1b920981124b6e9a49cf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/qtiplot-0.9.7.14-system-liborigin.patch"
+ patch -Np0 -i "${srcdir}/gentoo-fix-origin-build-failure.patch"
+ install -Dm644 "${srcdir}/build.conf.archlinux" build.conf
+
+ # Make qwt
+ sed -i "s:elif:else:g" qtiplot/src/scripting/ScriptEdit.cpp
+ patch -Np1 -i "${srcdir}/qwtplot3d_gcc.patch"
+ cd ./3rdparty/qwt
+ qmake
+ make
+
+ # Make qwtplot3d
+ cd ../qwtplot3d
+ qmake
+ make
+
+ # Make qtiplot
+ cd "${srcdir}/${pkgname}-${pkgver}/${pkgname}"
+
+ # fix stuff
+ sed -i 's|/usr/local/|/usr/share/|' qtiplot.pro
+ sed -i 's|<QAssistantClient>|<QtAssistant/qassistantclient.h>|' src/core/ApplicationWindow.cpp
+ sed -i 's#d_python_config_folder + "#"/usr/share/qtiplot#' src/core/ApplicationWindow.cpp
+
+ qmake qtiplot.pro QMAKESPEC=linux-g++
+ make QTDIR=/usr/ QMAKESPEC=linux-g++
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/${pkgname}"
+
+ INSTALL_ROOT="${pkgdir}" make install
+
+ # make it nice:
+ install -D -m644 "${srcdir}/${pkgname}.png" \
+ "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
+ install -D -m644 "${srcdir}/${pkgname}.desktop" \
+ "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -D -m644 "${srcdir}/${pkgname}.xml" \
+ "${pkgdir}/usr/share/mime/packages/${pkgname}.xml"
+}
diff --git a/extra/qtiplot/build.conf.archlinux b/extra/qtiplot/build.conf.archlinux
new file mode 100644
index 000000000..2cab47f9c
--- /dev/null
+++ b/extra/qtiplot/build.conf.archlinux
@@ -0,0 +1,29 @@
+isEmpty( QTI_ROOT ) {
+ message( "each file including this config needs to set QTI_ROOT to the dir containing this file!" )
+}
+
+SYS_INCLUDEPATH = /usr/include
+SYS_LIBS = -L/usr/lib
+
+MUPARSER_LIBS = -lmuparser
+GSL_LIBS = -lgsl -lgslcblas
+BOOST_INCLUDEPATH = /usr/include/boost
+BOOST_LIBS = -lboost_date_time -lboost_thread
+QWT_INCLUDEPATH = $$QTI_ROOT/3rdparty/qwt/src
+QWT_LIBS = $$QTI_ROOT/3rdparty/qwt/lib/libqwt.a
+QWT3D_INCLUDEPATH = $$QTI_ROOT/3rdparty/qwtplot3d/include
+QWT3D_LIBS = $$QTI_ROOT/3rdparty/qwtplot3d/lib/libqwtplot3d.a
+LIB_ORIGIN_INCLUDEPATH = /usr/include/liborigin2
+LIB_ORIGIN_LIBS = -lorigin2
+QTEXENGINE_LIBS = $$QTI_ROOT/3rdparty/QTeXEngine
+
+PYTHON = python2
+LUPDATE = lupdate
+LRELEASE = lrelease
+
+SCRIPTING_LANGS += muParser
+SCRIPTING_LANGS += Python
+
+CONFIG += CustomInstall
+DEFINES += SCRIPTING_CONSOLE
+
diff --git a/extra/qtiplot/gentoo-fix-origin-build-failure.patch b/extra/qtiplot/gentoo-fix-origin-build-failure.patch
new file mode 100644
index 000000000..931d87009
--- /dev/null
+++ b/extra/qtiplot/gentoo-fix-origin-build-failure.patch
@@ -0,0 +1,72 @@
+--- qtiplot/src/origin/importOPJ.cpp 2010-09-01 11:07:38 +0000
++++ qtiplot/src/origin/importOPJ.cpp 2010-09-07 10:12:30 +0000
+@@ -473,6 +473,8 @@
+ }
+ table->setDayFormat(format, j);
+ break;
++ default:
++ break;
+ }
+ table->freeMemory();
+ }
+@@ -720,7 +722,6 @@
+ bkg.setAlpha(0);
+ graph->setCanvasBackground(bkg);
+
+- int auto_color = -1;
+ int style = 0;
+ bool matrixImage = false;
+ for(unsigned int c = 0; c < layer.curves.size(); ++c){
+@@ -1461,7 +1462,7 @@
+
+ if (boxWhiskersPlot){
+ QStringList curveNames;
+- for (unsigned int i = 0; i < graph->curveCount(); i++){
++ for (int i = 0; i < graph->curveCount(); i++){
+ BoxCurve *box = (BoxCurve *)graph->curve(i);
+ if (!box || box->type() != Graph::Box)
+ continue;
+@@ -1659,7 +1660,6 @@
+ for(unsigned int c = 0; c < layer.curves.size(); ++c){
+ Origin::GraphCurve& _curve = layer.curves[c];
+ QString data(_curve.dataName.c_str());
+- int color = 0;
+ double fFontScaleFactor = 2.0;
+ switch(_curve.type){
+ case Origin::GraphCurve::Line3D:
+@@ -1809,7 +1809,6 @@
+ }
+
+ QStringList formulas;
+- double start, end;
+
+ plot->showColorLegend(false);
+ plot->setFramed();
+@@ -1951,8 +1950,8 @@
+
+ QList <PieLabel *> pieTexts = p->labelsList();
+ QFont font(mw->plotLegendFont);
+- unsigned int lsize = layer.pieTexts.size();
+- for(unsigned int i = 0; i < lsize && i < pieTexts.size(); ++i){
++ int lsize = layer.pieTexts.size();
++ for(int i = 0; i < lsize && i < pieTexts.size(); ++i){
+ Origin::TextBox text = layer.pieTexts[lsize - i - 1];
+ font.setPointSizeF(text.fontSize*fFontScaleFactor);
+ QFontMetrics fm(font, graph);
+@@ -2159,12 +2158,12 @@
+ line.replace("&lbracket;", "(");
+ line.replace("&rbracket;", ")");
+
+- QRegExp fontModifier("\p(\\d)+\\(.*\\)");//remove \p163(...) like tags
++ QRegExp fontModifier("\\\\p(\\d)+\\(.*\\)");//remove \p163(...) like tags
+ int index = line.indexOf(fontModifier);
+ while (index >= 0){
+ int pos1 = line.indexOf("(", index + 2) + 1;
+ int length = fontModifier.matchedLength();
+- line = line.mid(pos1, length - pos1);
++ line = line.mid(pos1, length - pos1 - 1);
+ index = line.indexOf(fontModifier, index + length);
+ }
+
+
+
diff --git a/extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch b/extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch
new file mode 100644
index 000000000..71ecfd5b0
--- /dev/null
+++ b/extra/qtiplot/qtiplot-0.9.7.14-system-liborigin.patch
@@ -0,0 +1,101 @@
+=== modified file 'build.conf.example'
+--- build.conf.example 2010-04-22 18:57:40 +0000
++++ build.conf.example 2010-04-22 18:58:06 +0000
+@@ -118,6 +118,14 @@
+ EMF_ENGINE_LIBS = $$QTI_ROOT/3rdparty/EmfEngine/libEmfEngine.a
+
+ ##########################################################
++## liborigin - keep commented if you wish to use local copy
++# http://sourceforge.net/projects/liborigin/
++##########################################################
++
++# LIB_ORIGIN_INCLUDEPATH = /usr/include/liborigin2
++# LIB_ORIGIN_LIBS = -lorigin2
++
++##########################################################
+ ## python - only used if python is needed
+ ##########################################################
+
+
+=== modified file 'qtiplot/qtiplot.pro'
+--- qtiplot/qtiplot.pro 2010-04-22 18:57:40 +0000
++++ qtiplot/qtiplot.pro 2010-04-22 19:08:57 +0000
+@@ -16,6 +16,7 @@
+ INCLUDEPATH += $$QWT_INCLUDEPATH
+ INCLUDEPATH += $$QWT3D_INCLUDEPATH
+ INCLUDEPATH += $$GSL_INCLUDEPATH
++INCLUDEPATH += $$LIB_ORIGIN_INCLUDEPATH
+
+ # configurable libs
+ LIBS += $$MUPARSER_LIBS
+@@ -23,6 +24,7 @@
+ LIBS += $$QWT3D_LIBS
+ LIBS += $$QTEXENGINE_LIBS
+ LIBS += $$GSL_LIBS
++LIBS += $$LIB_ORIGIN_LIBS
+
+ #############################################################################
+ ###################### BASIC PROJECT PROPERTIES #############################
+@@ -150,6 +152,10 @@
+ SOURCES += ../3rdparty/QTeXEngine/src/QTeXPaintDevice.cpp
+ }
+
++isEmpty(LIB_ORIGIN_LIBS) {
++ INCLUDEPATH += ../3rdparty/liborigin
++}
++
+ ###############################################################
+ ##################### Scripting: PYTHON + SIP + PyQT ##########
+ ###############################################################
+
+=== modified file 'qtiplot/src/origin/origin.pri'
+--- qtiplot/src/origin/origin.pri 2010-04-22 17:58:49 +0000
++++ qtiplot/src/origin/origin.pri 2010-04-22 19:08:15 +0000
+@@ -4,24 +4,28 @@
+ INCLUDEPATH += src/origin/
+
+ HEADERS += src/origin/importOPJ.h
+-HEADERS += ../3rdparty/liborigin/OriginObj.h
+-HEADERS += ../3rdparty/liborigin/OriginFile.h
+-HEADERS += ../3rdparty/liborigin/OriginParser.h
+-HEADERS += ../3rdparty/liborigin/OriginDefaultParser.h
+-HEADERS += ../3rdparty/liborigin/Origin600Parser.h
+-HEADERS += ../3rdparty/liborigin/Origin610Parser.h
+-HEADERS += ../3rdparty/liborigin/Origin700Parser.h
+-HEADERS += ../3rdparty/liborigin/Origin750Parser.h
+-HEADERS += ../3rdparty/liborigin/Origin800Parser.h
+-HEADERS += ../3rdparty/liborigin/Origin810Parser.h
+
+ SOURCES += src/origin/importOPJ.cpp
+-SOURCES += ../3rdparty/liborigin/OriginFile.cpp
+-SOURCES += ../3rdparty/liborigin/OriginParser.cpp
+-SOURCES += ../3rdparty/liborigin/OriginDefaultParser.cpp
+-SOURCES += ../3rdparty/liborigin/Origin600Parser.cpp
+-SOURCES += ../3rdparty/liborigin/Origin610Parser.cpp
+-SOURCES += ../3rdparty/liborigin/Origin700Parser.cpp
+-SOURCES += ../3rdparty/liborigin/Origin750Parser.cpp
+-SOURCES += ../3rdparty/liborigin/Origin800Parser.cpp
+-SOURCES += ../3rdparty/liborigin/Origin810Parser.cpp
++
++isEmpty(LIB_ORIGIN_LIBS) {
++ HEADERS += ../3rdparty/liborigin/OriginObj.h
++ HEADERS += ../3rdparty/liborigin/OriginFile.h
++ HEADERS += ../3rdparty/liborigin/OriginParser.h
++ HEADERS += ../3rdparty/liborigin/OriginDefaultParser.h
++ HEADERS += ../3rdparty/liborigin/Origin600Parser.h
++ HEADERS += ../3rdparty/liborigin/Origin610Parser.h
++ HEADERS += ../3rdparty/liborigin/Origin700Parser.h
++ HEADERS += ../3rdparty/liborigin/Origin750Parser.h
++ HEADERS += ../3rdparty/liborigin/Origin800Parser.h
++ HEADERS += ../3rdparty/liborigin/Origin810Parser.h
++
++ SOURCES += ../3rdparty/liborigin/OriginFile.cpp
++ SOURCES += ../3rdparty/liborigin/OriginParser.cpp
++ SOURCES += ../3rdparty/liborigin/OriginDefaultParser.cpp
++ SOURCES += ../3rdparty/liborigin/Origin600Parser.cpp
++ SOURCES += ../3rdparty/liborigin/Origin610Parser.cpp
++ SOURCES += ../3rdparty/liborigin/Origin700Parser.cpp
++ SOURCES += ../3rdparty/liborigin/Origin750Parser.cpp
++ SOURCES += ../3rdparty/liborigin/Origin800Parser.cpp
++ SOURCES += ../3rdparty/liborigin/Origin810Parser.cpp
++}
diff --git a/extra/qtiplot/qtiplot.desktop b/extra/qtiplot/qtiplot.desktop
new file mode 100644
index 000000000..ab64b3852
--- /dev/null
+++ b/extra/qtiplot/qtiplot.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Exec=qtiplot
+Comment=An application for plotting and analysis of data sets and functions
+Comment[de]=Ein Programm zum Plotten und analysieren von Daten und Funktionen
+Terminal=false
+Name=QtiPlot
+Protocols=file
+Icon=/usr/share/pixmaps/qtiplot.png
+# Categories=QT;KDE;Science;Utility;X-KDE-More
+# Categories=Qt;KDE;Math;Education
+Categories=Science;X-Plotting;
diff --git a/extra/qtiplot/qtiplot.install b/extra/qtiplot/qtiplot.install
new file mode 100644
index 000000000..66631520d
--- /dev/null
+++ b/extra/qtiplot/qtiplot.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove () {
+ post_install
+}
+
diff --git a/extra/qtiplot/qtiplot.png b/extra/qtiplot/qtiplot.png
new file mode 100644
index 000000000..5b4b87b21
--- /dev/null
+++ b/extra/qtiplot/qtiplot.png
Binary files differ
diff --git a/extra/qtiplot/qtiplot.xml b/extra/qtiplot/qtiplot.xml
new file mode 100644
index 000000000..7ad4c4aa0
--- /dev/null
+++ b/extra/qtiplot/qtiplot.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-qtiplot-project">
+ <sub-class-of type="text/plain"/>
+ <comment>QtiPlot project file</comment>
+ <glob pattern="*.qti" />
+ </mime-type>
+ <mime-type type="application/x-qtiplot-project-compressed">
+ <comment>Compressed QtiPlot project file</comment>
+ <glob pattern="*.qti.gz" />
+ </mime-type>
+ <mime-type type="application/x-qtiplot-project-backup">
+ <sub-class-of type="text/plain"/>
+ <comment>QtiPlot project file backup</comment>
+ <glob pattern="*.qti~" />
+ </mime-type>
+</mime-info>
diff --git a/extra/qtiplot/qwtplot3d_gcc.patch b/extra/qtiplot/qwtplot3d_gcc.patch
new file mode 100644
index 000000000..06aeb50f5
--- /dev/null
+++ b/extra/qtiplot/qwtplot3d_gcc.patch
@@ -0,0 +1,9 @@
+--- a/3rdparty/qwtplot3d/src/qwt3d_function.cpp 2009-07-25 20:03:28.000000000 -0700
++++ b/3rdparty/qwtplot3d/src/qwt3d_function.cpp 2009-07-25 20:03:28.000000000 -0700
+@@ -1,5 +1,6 @@
+ #include "qwt3d_surfaceplot.h"
+ #include "qwt3d_function.h"
++#include <cstdio>
+
+ using namespace Qwt3D;
+
diff --git a/extra/qtiplot/sip.patch b/extra/qtiplot/sip.patch
new file mode 100644
index 000000000..146f4c277
--- /dev/null
+++ b/extra/qtiplot/sip.patch
@@ -0,0 +1,13 @@
+--- qtiplot/src/scripting/scripting.pri.bak 2009-09-09 07:18:51.000000000 +0800
++++ qtiplot/src/scripting/scripting.pri 2009-11-08 12:45:03.000000000 +0800
+@@ -80,7 +80,9 @@
+ $${SIP_DIR}/sipqtiPythonScript.cpp\
+ $${SIP_DIR}/sipqtiPythonScripting.cpp\
+ $${SIP_DIR}/sipqtiFolder.cpp\
+- $${SIP_DIR}/sipqtiQList.cpp\
++ $${SIP_DIR}/sipqtiQList0101Folder.cpp \
++ $${SIP_DIR}/sipqtiQList0101Graph.cpp \
++ $${SIP_DIR}/sipqtiQList0101MdiSubWindow.cpp \
+ $${SIP_DIR}/sipqtiFit.cpp \
+ $${SIP_DIR}/sipqtiExponentialFit.cpp \
+ $${SIP_DIR}/sipqtiTwoExpFit.cpp \
diff --git a/extra/qtscriptgenerator/PKGBUILD b/extra/qtscriptgenerator/PKGBUILD
new file mode 100644
index 000000000..7e9773a58
--- /dev/null
+++ b/extra/qtscriptgenerator/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 75658 2010-04-02 04:17:23Z pierre $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=qtscriptgenerator
+pkgver=0.1.0
+pkgrel=4
+pkgdesc="Script generator for qt"
+arch=("i686" "x86_64")
+url="http://code.google.com/p/qtscriptgenerator/"
+license=('GPL')
+depends=('qt' 'phonon')
+makedepends=('pkgconfig' 'mesa')
+source=(http://qtscriptgenerator.googlecode.com/files/qtscriptgenerator-src-0.1.0.tar.gz
+ phonon.patch
+ qtscriptgenerator-gcc44.patch)
+md5sums=('ca4046ad4bda36cd4e21649d4b98886d' 'c0266892ecc645b3407f2203ee11a808'\
+ 'a3d48d6a3cfdd9be397bef01d3e4f638')
+
+build() {
+ cd $srcdir/$pkgname-src-$pkgver/generator
+ patch -p1 -i $srcdir/qtscriptgenerator-gcc44.patch || return 1
+ # prepare plugins
+ patch -Np2 -i $srcdir/phonon.patch || return 1
+ qmake || return 1
+ make || return 1
+ ./generator --include-paths=/usr/include || return 1
+ # build plugins
+ cd "$srcdir/$pkgname-src-$pkgver/qtbindings"
+ qmake || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-src-$pkgver/qtbindings"
+ # move plugins to correct directory
+ mkdir -p $pkgdir/usr/lib/qt/plugins/script
+ mv $srcdir/$pkgname-src-$pkgver/plugins/script/* $pkgdir/usr/lib/qt/plugins/script/
+}
diff --git a/extra/qtscriptgenerator/phonon.patch b/extra/qtscriptgenerator/phonon.patch
new file mode 100644
index 000000000..cef0e1fa1
--- /dev/null
+++ b/extra/qtscriptgenerator/phonon.patch
@@ -0,0 +1,55 @@
+--- b/generator/qtscript_masterinclude.h 2009-03-21 20:37:30.719523909 -0400
++++ a/generator/qtscript_masterinclude.h 2009-03-21 21:00:25.108149339 -0400
+@@ -31,17 +31,41 @@
+
+ #include <QtUiTools/QtUiTools>
+
+-#ifndef QT_NO_XMLPATTERNS
+-# include <QtXmlPatterns/QtXmlPatterns>
+-#endif
+-
+-#ifndef QT_NO_WEBKIT
+-# include <QtWebKit/QtWebKit>
+-#endif
+-
+-#ifndef QT_NO_PHONON
+-# include <phonon/phonon>
+-#endif
++#include <QtXmlPatterns/QtXmlPatterns>
++
++#include <QtWebKit/QtWebKit>
++
++#include "phonon/abstractaudiooutput.h"
++#include "phonon/abstractmediastream.h"
++#include "phonon/abstractvideooutput.h"
++#include "phonon/addoninterface.h"
++#include "phonon/audiooutput.h"
++#include "phonon/audiooutputinterface.h"
++#include "phonon/backendcapabilities.h"
++#include "phonon/backendinterface.h"
++#include "phonon/effect.h"
++#include "phonon/effectinterface.h"
++#include "phonon/effectparameter.h"
++#include "phonon/effectwidget.h"
++#include "phonon/mediacontroller.h"
++#include "phonon/medianode.h"
++#include "phonon/mediaobject.h"
++#include "phonon/mediaobjectinterface.h"
++#include "phonon/mediasource.h"
++#include "phonon/objectdescription.h"
++#include "phonon/objectdescriptionmodel.h"
++#include "phonon/path.h"
++#include "phonon/phonondefs.h"
++#include "phonon/phononnamespace.h"
++#include "phonon/platformplugin.h"
++#include "phonon/seekslider.h"
++#include "phonon/streaminterface.h"
++#include "phonon/videoplayer.h"
++#include "phonon/videowidget.h"
++#include "phonon/videowidgetinterface.h"
++#include "phonon/volumefadereffect.h"
++#include "phonon/volumefaderinterface.h"
++#include "phonon/volumeslider.h"
+
+ #include "../qtbindings/qtscript_core/qtscriptconcurrent.h"
+
diff --git a/extra/qtscriptgenerator/qtscriptgenerator-gcc44.patch b/extra/qtscriptgenerator/qtscriptgenerator-gcc44.patch
new file mode 100644
index 000000000..dbb423e5d
--- /dev/null
+++ b/extra/qtscriptgenerator/qtscriptgenerator-gcc44.patch
@@ -0,0 +1,15 @@
+# Patch from upstream bug tracker:
+# http://code.google.com/p/qtscriptgenerator/issues/detail?id=37
+# So far (2009-06-12) this has not been applied at upstream git repo
+
+diff -uNr generator.orig/parser/rpp/pp.h generator/parser/rpp/pp.h
+--- generator.orig/parser/rpp/pp.h 2008-12-05 11:01:44.000000000 +0100
++++ generator/parser/rpp/pp.h 2008-12-13 10:42:22.000000000 +0100
+@@ -30,6 +30,7 @@
+ #include <cctype>
+
+ #include <fcntl.h>
++#include <cstdio>
+
+ #ifdef HAVE_MMAP
+ # include <sys/mman.h>
diff --git a/extra/quodlibet/PKGBUILD b/extra/quodlibet/PKGBUILD
new file mode 100644
index 000000000..b55269622
--- /dev/null
+++ b/extra/quodlibet/PKGBUILD
@@ -0,0 +1,38 @@
+#$Id: PKGBUILD 117459 2011-04-02 23:31:59Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=quodlibet
+pkgver=2.3
+pkgrel=1
+pkgdesc="An audio player written in pygtk"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://code.google.com/p/quodlibet/"
+depends=('gstreamer0.10-python' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins'
+ 'gstreamer0.10-ugly-plugins' 'mutagen' 'pygtk')
+makedepends=('intltool')
+optdepends=('gstreamer0.10-ffmpeg: for ffmpeg (ASF/WMA) support '
+ 'gstreamer0.10-bad-plugins: for MPEG-4 (AAC) and Musepack support'
+ 'dbus-python: for dbus support'
+ 'notification-daemon: for notification support'
+ 'libgpod: for ipod support'
+ 'python-feedparser: for audio feeds (podcast) support'
+ 'hal: for media devices support'
+ 'media-player-info: for media devices support')
+options=('!makeflags')
+source=(http://quodlibet.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e6bdb97decba40c33bd57e039d82c217')
+sha1sums=('dae756e8224139989f6b253ef2afe18eca55ef9f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's#env python#env python2#' *.py
+ ./setup.py build
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./setup.py install --prefix="${pkgdir}/usr"
+ install -D -m644 quodlibet/images/exfalso.png "${pkgdir}/usr/share/pixmaps/exfalso.png"
+ install -D -m644 quodlibet/images/quodlibet.png "${pkgdir}/usr/share/pixmaps/quodlibet.png"
+}
diff --git a/extra/quota-tools/ChangeLog b/extra/quota-tools/ChangeLog
new file mode 100644
index 000000000..56c760b78
--- /dev/null
+++ b/extra/quota-tools/ChangeLog
@@ -0,0 +1,9 @@
+2009-01-07 Eric Belanger <eric@archlinux.org>
+
+ * quota-tools 3.17-1
+ * Upstream update
+
+2008-05-01 Eric Belanger <eric@archlinux.org>
+
+ * quota-tools 3.16-1
+ * Upstream update
diff --git a/extra/quota-tools/LICENSE b/extra/quota-tools/LICENSE
new file mode 100644
index 000000000..4bae71589
--- /dev/null
+++ b/extra/quota-tools/LICENSE
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 1980, 1990 Regents of the University of California. All
+ * rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by Robert Elz at
+ * The University of Melbourne.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer. 2.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution. 3. All advertising
+ * materials mentioning features or use of this software must display the
+ * following acknowledgement: This product includes software developed by the
+ * University of California, Berkeley and its contributors. 4. Neither the
+ * name of the University nor the names of its contributors may be used to
+ * endorse or promote products derived from this software without specific
+ * prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
diff --git a/extra/quota-tools/PKGBUILD b/extra/quota-tools/PKGBUILD
new file mode 100644
index 000000000..c4340848a
--- /dev/null
+++ b/extra/quota-tools/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 23363 2009-01-08 00:26:14Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd <judd@archlinux.org>
+
+pkgname=quota-tools
+pkgver=3.17
+pkgrel=1
+pkgdesc="Tools to manage kernel-level quotas in Linux"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/linuxquota/"
+license=('GPL' 'BSD')
+depends=('e2fsprogs' 'tcp_wrappers')
+backup=('etc/warnquota.conf' 'etc/quotatab' 'etc/quotagrpadmins')
+options=('!emptydirs')
+source=(http://downloads.sourceforge.net/sourceforge/linuxquota/quota-${pkgver}.tar.gz LICENSE)
+md5sums=('cb3e98a039c0cf98e7c1ad4b50a5bda7' 'dd792440e684043e4e4ef80963d0237b')
+sha1sums=('8dc04ea803a43496dfe275a8260757f558a2d762' '57297bdc9e638c500506169bbbe12eb89bcf7d07')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ ./configure --prefix=/usr --sysconfdir=/etc || return 1
+ make || return 1
+ make ROOTDIR=${pkgdir} install || return 1
+ install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+
+ # remove conflicts
+ # glibc
+ rm ${pkgdir}/usr/include/rpcsvc/rquota.h || return 1
+ rm ${pkgdir}/usr/include/rpcsvc/rquota.x || return 1
+ # man-pages
+ rm ${pkgdir}/usr/share/man/man2/quotactl.2 || return 1
+}
diff --git a/extra/qwt/PKGBUILD b/extra/qwt/PKGBUILD
new file mode 100644
index 000000000..daac13765
--- /dev/null
+++ b/extra/qwt/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 94465 2010-10-07 10:54:24Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=qwt
+pkgver=5.2.1
+pkgrel=1
+pkgdesc="Qt Widgets for Technical Applications"
+arch=('i686' 'x86_64')
+url="http://qwt.sourceforge.net/"
+depends=('qt>=4.5.1')
+options=('!makeflags')
+license=("custom:$pkgname")
+source=("http://downloads.sourceforge.net/sourceforge/qwt/$pkgname-$pkgver.tar.bz2" \
+ "qwtconfig-archlinux.pri")
+md5sums=('4a595b8db0ec3856b117836c1d60cb27'
+ '2cb9135ec875d6de0214fcb032f184a3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # copy our config file to the right place
+ install -Dm644 ${srcdir}/qwtconfig-archlinux.pri \
+ ${srcdir}/${pkgname}-${pkgver}/qwtconfig.pri
+
+ # build qwt:
+ qmake qwt.pro
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make INSTALL_ROOT=${pkgdir} QTDIR=/usr install
+
+ # fix doc files
+ install -d ${pkgdir}/usr/share/doc/${pkgname}
+ mv -f ${pkgdir}/usr/share/html/* ${pkgdir}/usr/share/doc/${pkgname}
+
+ # install licence
+ install -Dm644 ${srcdir}/${pkgname}-${pkgver}/COPYING \
+ ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/extra/qwt/qwtconfig-archlinux.pri b/extra/qwt/qwtconfig-archlinux.pri
new file mode 100644
index 000000000..646a2b759
--- /dev/null
+++ b/extra/qwt/qwtconfig-archlinux.pri
@@ -0,0 +1,85 @@
+######################################################################
+# Install paths
+######################################################################
+
+unix {
+ INSTALLBASE = /usr
+}
+
+win32 {
+ INSTALLBASE = C:/Qwt
+}
+
+target.path = $$INSTALLBASE/lib
+headers.path = $$INSTALLBASE/include/qwt
+doc.path = $$INSTALLBASE/share
+
+######################################################################
+# qmake internal options
+######################################################################
+
+CONFIG += qt # Also for Qtopia Core!
+CONFIG += warn_on
+CONFIG += thread
+
+######################################################################
+# release/debug mode
+# The designer plugin is always built in release mode.
+# If want to change this, you have to edit designer/designer.pro.
+######################################################################
+
+CONFIG += release # release/debug
+
+######################################################################
+# Build the static/shared libraries.
+# If QwtDll is enabled, a shared library is built, otherwise
+# it will be a static library.
+######################################################################
+
+CONFIG += QwtDll
+
+######################################################################
+# QwtPlot enables all classes, that are needed to use the QwtPlot
+# widget.
+######################################################################
+
+CONFIG += QwtPlot
+
+######################################################################
+# QwtWidgets enables all classes, that are needed to use the all other
+# widgets (sliders, dials, ...), beside QwtPlot.
+######################################################################
+
+CONFIG += QwtWidgets
+
+######################################################################
+# If you want to display svg images on the plot canvas, enable the
+# line below. Note that Qwt needs the svg+xml, when enabling
+# QwtSVGItem.
+######################################################################
+
+CONFIG += QwtSVGItem
+
+######################################################################
+# If you have a commercial license you can use the MathML renderer
+# of the Qt solutions package to enable MathML support in Qwt.
+# So if you want this, copy qtmmlwidget.h + qtmmlwidget.cpp to
+# textengines/mathml and enable the line below.
+######################################################################
+
+#CONFIG += QwtMathML
+
+######################################################################
+# If you want to build the Qwt designer plugin,
+# enable the line below.
+# Otherwise you have to build it from the designer directory.
+######################################################################
+
+CONFIG += QwtDesigner
+
+######################################################################
+# If you want to auto build the examples, enable the line below
+# Otherwise you have to build them from the examples directory.
+######################################################################
+
+#CONFIG += QwtExamples
diff --git a/extra/qwtplot3d/PKGBUILD b/extra/qwtplot3d/PKGBUILD
new file mode 100644
index 000000000..ec339174d
--- /dev/null
+++ b/extra/qwtplot3d/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 64675 2010-01-21 21:29:39Z eric $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=qwtplot3d
+pkgver=0.2.7
+origver=0.2.7
+pkgrel=2
+pkgdesc="Qt/OpenGL-based C++ programming library containing 3d-widgets"
+arch=("i686" "x86_64")
+license=('custom:zlib')
+url="http://qwtplot3d.sourceforge.net/"
+depends=('qt>=4.3' 'qwt>=5.0.2')
+source=("http://downloads.sourceforge.net/sourceforge/qwtplot3d/qwtplot3d-$origver.tgz"
+ qwtplot3d-gcc44.patch)
+md5sums=('2f14660152e2e26bfeaaeec479ed9f2b' '92ad261ed5344bc773cba05b324cfe74')
+sha1sums=('4463fafb8420a91825e165da7a296aaabd70abea' '52fa169b651a98550f8a8391ddf52e0eaeb2c215')
+
+build() {
+ cd $startdir/src/$pkgname
+ patch -p1 < ../qwtplot3d-gcc44.patch || return 1
+ # . /etc/profile.d/qt3.sh
+ # build qwt:
+ qmake qwtplot3d.pro
+ make || return 1
+
+ # install qwtplot3d: (by hand, because the Makefile do not provide a "install:")
+ mkdir -p $startdir/pkg/usr/{include/qwtplot3d,lib}
+ # mkdir -p $startdir/pkg/usr/man/man3 .. no manpages yet
+
+ for n in include/* ; do
+ cp -d $n $startdir/pkg/usr/include/qwtplot3d || return 1
+ done
+
+ for n in lib/libqwtplot3d.so* ; do
+ cp -d $n $startdir/pkg/usr/lib || return 1
+ done
+
+ # for n in doc/man/man3/*.3 ; do
+ # install -m 644 $n $startdir/pkg/usr/man/man3
+ # done
+}
+
diff --git a/extra/qwtplot3d/qwtplot3d-gcc44.patch b/extra/qwtplot3d/qwtplot3d-gcc44.patch
new file mode 100644
index 000000000..a76fe831a
--- /dev/null
+++ b/extra/qwtplot3d/qwtplot3d-gcc44.patch
@@ -0,0 +1,12 @@
+diff -ur qwtplot3d-orig/include/qwt3d_function.h qwtplot3d/include/qwt3d_function.h
+--- qwtplot3d-orig/include/qwt3d_function.h 2009-07-25 18:18:58.000000000 -0400
++++ qwtplot3d/include/qwt3d_function.h 2009-07-25 18:19:19.000000000 -0400
+@@ -2,6 +2,7 @@
+ #define qwt3d_function_h__2004_03_05_13_51_begin_guarded_code
+
+ #include "qwt3d_gridmapping.h"
++#include <cstdio>
+
+ namespace Qwt3D
+ {
+Only in qwtplot3d/tmp: qwt3d_function.o
diff --git a/extra/r/PKGBUILD b/extra/r/PKGBUILD
new file mode 100644
index 000000000..f33ccd90e
--- /dev/null
+++ b/extra/r/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 111269 2011-02-25 16:10:57Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+# Contributor: K. Piche <kpiche@rogers.com>
+
+pkgname=r
+pkgver=2.12.2
+pkgrel=1
+pkgdesc="R is a language and environment for statistical computing and graphics"
+arch=('i686' 'x86_64')
+license=('GPL')
+url=('http://www.r-project.org/')
+depends=('blas' 'lapack' 'bzip2' 'libpng' 'libjpeg' 'libtiff'
+ 'ncurses' 'pcre' 'readline' 'zlib' 'perl' 'gcc-libs'
+ 'tk' 'libxt' 'libxmu' 'pango')
+makedepends=('openjdk6' 'gcc-fortran')
+options=('!makeflags')
+source=("http://cran.r-project.org/src/base/R-2/R-${pkgver}.tar.gz"
+ 'r.desktop'
+ 'r.png')
+sha1sums=('dbdc46edbab2dbbdc115b7247f80da5fee3dd912'
+ 'bcc0320d7cc49d56408edc756b50a0f9ba98fe43'
+ 'a69a07ec363440efc18ce0a7f2af103375dea978')
+
+build() {
+ cd ${srcdir}/R-${pkgver}
+ sed -i 's|#define NeedFunctionPrototypes 0|#define NeedFunctionPrototypes 1|g' src/modules/X11/dataentry.c
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib \
+ --datarootdir=/usr/share \
+ rsharedir=/usr/share/R/ \
+ rincludedir=/usr/include/R/ \
+ rdocdir=/usr/share/R/docs/ \
+ --with-gnu-ld \
+ --with-readline \
+ --with-x \
+ --with-zlib \
+ --with-bzlib \
+ --with-pcre \
+ --enable-R-shlib \
+ --with-lapack \
+ --with-blas \
+ F77=gfortran \
+ LIBnn=lib
+ make
+}
+
+package() {
+ cd ${srcdir}/R-${pkgver}
+ make -j1 DESTDIR=${pkgdir} install
+
+ # Fixup R wrapper scripts.
+ sed -i "s|${pkgdir} ||" ${pkgdir}/usr/bin/R
+ rm ${pkgdir}/usr/lib/R/bin/R
+ cd ${pkgdir}/usr/lib/R/bin
+ ln -s ../../../bin/R
+
+ # install some freedesktop.org compatibility
+ install -Dm644 ${srcdir}/r.desktop \
+ ${pkgdir}/usr/share/applications/r.desktop
+ install -Dm644 ${srcdir}/r.png \
+ ${pkgdir}/usr/share/pixmaps/r.png
+ }
diff --git a/extra/r/r.desktop b/extra/r/r.desktop
new file mode 100644
index 000000000..a1b6b1254
--- /dev/null
+++ b/extra/r/r.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=R
+GenericName=environment for statistical computing
+Comment=language and environment for statistical computing and graphics
+Exec=R
+Icon=/usr/share/pixmaps/r.png
+DocPath=/usr/lib/R/doc/html/index.html
+StartupNotify=true
+Terminal=true
+TerminalOptions=
+Type=Application
+Categories=Science;Math
diff --git a/extra/r/r.png b/extra/r/r.png
new file mode 100644
index 000000000..1303ccdb9
--- /dev/null
+++ b/extra/r/r.png
Binary files differ
diff --git a/extra/racket/PKGBUILD b/extra/racket/PKGBUILD
new file mode 100644
index 000000000..21345b269
--- /dev/null
+++ b/extra/racket/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 110163 2011-02-17 06:55:24Z eric $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=racket
+pkgver=5.1
+pkgrel=1
+pkgdesc="PLT Racket (a variant of Scheme) Environment"
+arch=('i686' 'x86_64')
+url="http://racket-lang.org/"
+license=('LGPL')
+depends=('gtk2' 'libjpeg' 'desktop-file-utils')
+provides=('drscheme')
+conflicts=('drscheme')
+replaces=('drscheme')
+options=('!strip')
+install=racket.install
+source=(http://download.racket-lang.org/installers/${pkgver}/racket/${pkgname}-${pkgver}-src-unix.tgz \
+ drracket.desktop jpeg-version.patch)
+md5sums=('c3b0bffb998ad530c06512d045a59f15' '9223c9736ead677431542b41271c7b3c'\
+ '0aae72b6f19963c569d20fa8793482e1')
+sha1sums=('6c314a71bab77eb48efad8f6c9fa597b6a5a305d' 'a20808f6b250225704856f82a544681a962a299d'\
+ 'afa13f3ef66f5434b209f545f82545a869ada2b2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ (cd ..; patch -p1 -i "${srcdir}/jpeg-version.patch")
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/src"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../collects/icons/plt.xpm "${pkgdir}/usr/share/pixmaps/drracket.xpm"
+ install -D -m644 "${srcdir}/drracket.desktop" "${pkgdir}/usr/share/applications/drracket.desktop"
+}
diff --git a/extra/racket/drracket.desktop b/extra/racket/drracket.desktop
new file mode 100644
index 000000000..79876de50
--- /dev/null
+++ b/extra/racket/drracket.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=DrRacket
+GenericName=IDE for Racket
+Comment=DrRacket is an interactive, integrated, graphical programming environment for the Racket programming languages.
+Exec=drracket
+Terminal=false
+Type=Application
+Categories=Education;Development;
+Icon=drracket
diff --git a/extra/racket/jpeg-version.patch b/extra/racket/jpeg-version.patch
new file mode 100644
index 000000000..253f08ae6
--- /dev/null
+++ b/extra/racket/jpeg-version.patch
@@ -0,0 +1,621 @@
+From: Matthew Flatt <mflatt@racket-lang.org>
+Date: Wed, 16 Feb 2011 14:30:34 +0000 (-0700)
+Subject: fix jpeg structs to better adapt to jpeglib versions and platforms
+X-Git-Url: http://git.racket-lang.org/plt/commitdiff_plain/e59b96e26c7f1edb193a42f16c97d30a085a182c
+
+fix jpeg structs to better adapt to jpeglib versions and platforms
+ --- specifically fixing jpeglib version 8 on x86_64
+---
+
+diff --git a/collects/racket/draw/unsafe/jpeg.rkt b/collects/racket/draw/unsafe/jpeg.rkt
+index 9399aec..77606d8 100644
+--- a/collects/racket/draw/unsafe/jpeg.rkt
++++ b/collects/racket/draw/unsafe/jpeg.rkt
+@@ -100,20 +100,24 @@
+ (unless (member JPEG_LIB_VERSION '(62 64 70 80))
+ (error 'jpeg "unsupported library version: ~e" JPEG_LIB_VERSION))
+
+-(define _scaled_size
+- (case JPEG_LIB_VERSION
+- [(62 64) _int]
+- [else (make-cstruct-type (list _int _int))]))
+-
+-(define _prog_scan_size
+- (case JPEG_LIB_VERSION
+- [(62 64 70) (make-cstruct-type (list _int _int _int _int))]
+- [else (make-cstruct-type (list _int _int _int _int _int _pointer _int))]))
+-
+-(define _comp_info_size
+- (case JPEG_LIB_VERSION
+- [(62 64 70) _pointer]
+- [else (make-cstruct-type (list _pointer _jbool))]))
++(define-syntax-rule (cstruct-type/version elem ...)
++ (make-cstruct-type (flatten-type (list (cstruct-type/version-elem elem) ...))))
++
++(define-syntax cstruct-type/version-elem
++ (syntax-rules (unquote)
++ [(_ (unquote ([vers (elem ...)] ...)))
++ (case JPEG_LIB_VERSION
++ [vers (list (cstruct-type/version-elem elem) ...)]
++ ...)]
++ [(_ [name type]) type]))
++
++(define (flatten-type l)
++ (cond
++ [(null? l) null]
++ [(list? (car l))
++ (append (flatten-type (car l)) (flatten-type (cdr l)))]
++ [else
++ (cons (car l) (flatten-type (cdr l)))]))
+
+ (define-cstruct _jpeg_decompress_struct ([err _jpeg_error_mgr-pointer]
+ [mem _jpeg_memory_mgr-pointer]
+@@ -150,7 +154,7 @@
+ [enable_2pass_quant _jbool]
+
+ [output_width _JDIMENSION]
+- [output_height _JDIMENSION]
++ [output_height _JDIMENSION] ; <-
+ [out_color_components _int]
+ [output_components _int]
+ [rec_outbuf_height _int]
+@@ -158,21 +162,230 @@
+ [actual_number_of_colors _int]
+ [colormap _pointer]
+
+- [output_scanline _JDIMENSION]
++ ;; We don't need to refer to any of the remaining
++ ;; fields, and the specific set of fields depends
++ ;; on the version
++ [rest
++ (cstruct-type/version
++ [output_scanline _JDIMENSION]
++
++ [input_scan_number _int]
++ [input_iMCU_row _JDIMENSION]
++
++ [output_scan_number _int]
++ [output_iMCU_row _JDIMENSION]
++
++ [coef_bits _pointer]
++
++ [quant_tbl_ptrs_1 _pointer]
++ [quant_tbl_ptrs_2 _pointer]
++ [quant_tbl_ptrs_3 _pointer]
++ [quant_tbl_ptrs_4 _pointer]
++
++ [dc_huff_tbl_ptrs_1 _pointer]
++ [dc_huff_tbl_ptrs_2 _pointer]
++ [dc_huff_tbl_ptrs_3 _pointer]
++ [dc_huff_tbl_ptrs_4 _pointer]
++ [ac_huff_tbl_ptrs_1 _pointer]
++ [ac_huff_tbl_ptrs_2 _pointer]
++ [ac_huff_tbl_ptrs_3 _pointer]
++ [ac_huff_tbl_ptrs_4 _pointer]
++
++ [data_precision _int]
++
++ [comp_info _pointer]
++
++ ,([(62 64 70) ()]
++ [else ([is_baseline _jbool])])
++ [progressive_mode _jbool]
++ [arith_code _jbool]
++
++ [arith_dc_L_1 _uint8]
++ [arith_dc_L_2 _uint8]
++ [arith_dc_L_3 _uint8]
++ [arith_dc_L_4 _uint8]
++ [arith_dc_L_5 _uint8]
++ [arith_dc_L_6 _uint8]
++ [arith_dc_L_7 _uint8]
++ [arith_dc_L_8 _uint8]
++ [arith_dc_L_9 _uint8]
++ [arith_dc_L_10 _uint8]
++ [arith_dc_L_11 _uint8]
++ [arith_dc_L_12 _uint8]
++ [arith_dc_L_13 _uint8]
++ [arith_dc_L_14 _uint8]
++ [arith_dc_L_15 _uint8]
++ [arith_dc_L_16 _uint8]
++
++ [arith_dc_U_1 _uint8]
++ [arith_dc_U_2 _uint8]
++ [arith_dc_U_3 _uint8]
++ [arith_dc_U_4 _uint8]
++ [arith_dc_U_5 _uint8]
++ [arith_dc_U_6 _uint8]
++ [arith_dc_U_7 _uint8]
++ [arith_dc_U_8 _uint8]
++ [arith_dc_U_9 _uint8]
++ [arith_dc_U_10 _uint8]
++ [arith_dc_U_11 _uint8]
++ [arith_dc_U_12 _uint8]
++ [arith_dc_U_13 _uint8]
++ [arith_dc_U_14 _uint8]
++ [arith_dc_U_15 _uint8]
++ [arith_dc_U_16 _uint8]
++
++ [arith_dc_K_1 _uint8]
++ [arith_dc_K_2 _uint8]
++ [arith_dc_K_3 _uint8]
++ [arith_dc_K_4 _uint8]
++ [arith_dc_K_5 _uint8]
++ [arith_dc_K_6 _uint8]
++ [arith_dc_K_7 _uint8]
++ [arith_dc_K_8 _uint8]
++ [arith_dc_K_9 _uint8]
++ [arith_dc_K_10 _uint8]
++ [arith_dc_K_11 _uint8]
++ [arith_dc_K_12 _uint8]
++ [arith_dc_K_13 _uint8]
++ [arith_dc_K_14 _uint8]
++ [arith_dc_K_15 _uint8]
++ [arith_dc_K_16 _uint8]
++
++ [restart_interval _uint]
++
++ [saw_JFIF_marker _jbool]
++ [JFIF_major_version _uint8]
++ [JFIF_minor_version _uint8]
++ [density_unit _uint8]
++ [X_density _uint16]
++ [Y_density _uint16]
++ [saw_Adobe_marker _jbool]
++ [Adobe_transform _uint8]
++
++ [CCIR601_sampling _jbool]
++
++ [marker_list _pointer]
++
++ [max_h_samp_factor _int]
++ [max_v_samp_factor _int]
++
++ ,([(62 64) ([min_DCT_scaled_size _int])]
++ [else ([min_DCT_h_scaled_size _int]
++ [min_DCT_v_scaled_size _int])])
++
++ [total_iMCU_rows _JDIMENSION]
++ [sample_range_limit _pointer]
++
++ [comps_in_scan _int]
++
++ [cur_comp_info_1 _pointer]
++ [cur_comp_info_2 _pointer]
++ [cur_comp_info_3 _pointer]
++ [cur_comp_info_4 _pointer]
++
++ [MCUs_per_row _JDIMENSION]
++ [MCU_rows_in_scan _JDIMENSION]
++
++ [blocks_in_MCU _int]
++
++ [MCU_membership_1 _int]
++ [MCU_membership_2 _int]
++ [MCU_membership_3 _int]
++ [MCU_membership_4 _int]
++ [MCU_membership_5 _int]
++ [MCU_membership_6 _int]
++ [MCU_membership_7 _int]
++ [MCU_membership_8 _int]
++ [MCU_membership_9 _int]
++ [MCU_membership_10 _int]
++
++ [Ss _int]
++ [Se _int]
++ [Ah _int]
++ [Al _int]
++
++ ,([(62 64 70) ()]
++ [else
++ ([block_size _int]
++ [natural_order _pointer]
++ [lim_Se _int])])
++
++ [unread_marker _int]
++
++ [master _pointer]
++ [main _pointer]
++ [coef _pointer]
++ [post _pointer]
++ [inputctl _pointer]
++ [marker _pointer]
++ [entropy _pointer]
++ [idct _pointer]
++ [upsample _pointer]
++ [cconvert _pointer]
++ [cquantize _pointer])]))
+
+- [input_scan_number _int]
+- [input_iMCU_row _JDIMENSION]
++(define _j_decompress_ptr _jpeg_decompress_struct-pointer)
+
+- [output_scan_number _int]
+- [output_iMCU_row _JDIMENSION]
++(define-cstruct _jpeg_source_mgr ([next_input_byte _pointer] ;; /* => next byte to read from buffer */
++ [bytes_in_buffer _size_t] ;; /* # of bytes remaining in buffer */
++ [init_source (_fun _j_decompress_ptr -> _void)]
++ [fill_input_buffer (_fun _j_decompress_ptr -> _jbool)]
++ [skip_input_data (_fun _j_decompress_ptr _long -> _void)]
++ [resync_to_restart (_fun _j_decompress_ptr _int -> _jbool)]
++ [term_source (_fun _j_decompress_ptr -> _void)]
++ ;; extra fields specific to this binding:
++ [buffer _pointer]))
+
+- [coef_bits _pointer]
++(define (jpeg_decompress_struct-src m)
++ (ptr-cast (jpeg_decompress_struct-src* m) _jpeg_source_mgr-pointer))
++
++(define-cstruct _jpeg_compress_struct ([err _jpeg_error_mgr-pointer]
++ [mem _jpeg_memory_mgr-pointer]
++ [progress _pointer] ; _jpeg_progress_mgr_pointer
++ [client_data _pointer]
++ [is_decompressor _jbool]
++ [global_state _int]
++
++ [dest* _pointer] ; actually jpeg_destination_mgr-pointer
++
++ [image_width _JDIMENSION]
++ [image_height _JDIMENSION]
++ [input_components _int]
++ [in_color_space _J_COLOR_SPACE] ; <-
++
++ [input_gamma _double]
++
++ ;; We don't need to refer to any of the remaining
++ ;; fields, and the specific set of fields depends
++ ;; on the version
++ [rest
++ (cstruct-type/version
++ ,([(62 64) ()]
++ [else
++ ([scale_num _uint]
++ [scale_denom _uint]
++ [jpeg_width _JDIMENSION]
++ [jpeg_height _JDIMENSION])])
++
++ [data_precission _int]
++
++ [num_components _int]
++ [jpeg_color_space _J_COLOR_SPACE]
++
++ [comp_info _pointer]
+
+ [quant_tbl_ptrs_1 _pointer]
+ [quant_tbl_ptrs_2 _pointer]
+ [quant_tbl_ptrs_3 _pointer]
+ [quant_tbl_ptrs_4 _pointer]
+
++ ,([(62 64) ()]
++ [else
++ ([q_scale_factor_1 _int]
++ [q_scale_factor_2 _int]
++ [q_scale_factor_3 _int]
++ [q_scale_factor_4 _int])])
++
+ [dc_huff_tbl_ptrs_1 _pointer]
+ [dc_huff_tbl_ptrs_2 _pointer]
+ [dc_huff_tbl_ptrs_3 _pointer]
+@@ -182,13 +395,6 @@
+ [ac_huff_tbl_ptrs_3 _pointer]
+ [ac_huff_tbl_ptrs_4 _pointer]
+
+- [data_precision _int]
+-
+- [comp_info&is_baseline _comp_info_size]
+-
+- [progressive_mode _jbool]
+- [arith_code _jbool]
+-
+ [arith_dc_L_1 _uint8]
+ [arith_dc_L_2 _uint8]
+ [arith_dc_L_3 _uint8]
+@@ -239,40 +445,54 @@
+ [arith_dc_K_14 _uint8]
+ [arith_dc_K_15 _uint8]
+ [arith_dc_K_16 _uint8]
++
++ [num_scans _int]
++ [scan_info _pointer]
+
+- [restart_interval _uint]
++ [raw_data_in _jbool]
++ [arith_code _jbool]
++ [optimize_coding _jbool]
++ [CCIR601_sampling _jbool]
++ ,([(62 64) ()]
++ [else
++ ([do_fancy_downsampling _jbool])])
+
+- [saw_JFIF_marker _jbool]
++ [smoothing_factor _int]
++ [dct_method _J_DCT_METHOD]
++
++ [restart_interval _uint]
++ [restart_in_rows _int]
++
++ [write_JFIF_header _jbool]
+ [JFIF_major_version _uint8]
+ [JFIF_minor_version _uint8]
+ [density_unit _uint8]
+ [X_density _uint16]
+ [Y_density _uint16]
+- [saw_Adobe_marker _jbool]
+- [Adobe_transform _uint8]
+-
+- [CCIR601_sampling _jbool]
+-
+- [marker_list _pointer]
+-
++ [write_Adobe_marker _jbool]
++
++ [next_scanline _JDIMENSION]
++
++ [progressive_mode _jbool]
++
+ [max_h_samp_factor _int]
+ [max_v_samp_factor _int]
+
+- [min_DCT_scaled_size _scaled_size]
++ ,([(62 64) ()]
++ [else ([min_DCT_h_scaled_size _int]
++ [min_DCT_v_scaled_size _int])])
+
+ [total_iMCU_rows _JDIMENSION]
+- [sample_range_limit _pointer]
+
+ [comps_in_scan _int]
+-
+ [cur_comp_info_1 _pointer]
+ [cur_comp_info_2 _pointer]
+ [cur_comp_info_3 _pointer]
+ [cur_comp_info_4 _pointer]
+-
++
+ [MCUs_per_row _JDIMENSION]
+ [MCU_rows_in_scan _JDIMENSION]
+-
++
+ [blocks_in_MCU _int]
+
+ [MCU_membership_1 _int]
+@@ -286,223 +506,28 @@
+ [MCU_membership_9 _int]
+ [MCU_membership_10 _int]
+
+- [prog_scan _prog_scan_size] ; Ss, Se, Ah, Al
+-
+- [unread_marker _int]
++ [Ss _int]
++ [Se _int]
++ [Ah _int]
++ [Al _int]
++
++ ,([(62 64 70) ()]
++ [else
++ ([block_size _int]
++ [natural_order _pointer]
++ [lim_Se _int])])
+
+ [master _pointer]
+ [main _pointer]
++ [prep _pointer]
+ [coef _pointer]
+- [post _pointer]
+- [inputctl _pointer]
+ [marker _pointer]
+- [entropy _pointer]
+- [idct _pointer]
+- [upsample _pointer]
+ [cconvert _pointer]
+- [cquantize _pointer]))
+-
+-(define _j_decompress_ptr _jpeg_decompress_struct-pointer)
+-
+-(define-cstruct _jpeg_source_mgr ([next_input_byte _pointer] ;; /* => next byte to read from buffer */
+- [bytes_in_buffer _size_t] ;; /* # of bytes remaining in buffer */
+- [init_source (_fun _j_decompress_ptr -> _void)]
+- [fill_input_buffer (_fun _j_decompress_ptr -> _jbool)]
+- [skip_input_data (_fun _j_decompress_ptr _long -> _void)]
+- [resync_to_restart (_fun _j_decompress_ptr _int -> _jbool)]
+- [term_source (_fun _j_decompress_ptr -> _void)]
+- ;; extra fields specific to this binding:
+- [buffer _pointer]))
+-
+-(define (jpeg_decompress_struct-src m)
+- (ptr-cast (jpeg_decompress_struct-src* m) _jpeg_source_mgr-pointer))
+-
+-(define-cstruct _jpeg7_compression_params ([scale_num _uint]
+- [scale_denom _uint]
+- [jpeg_width _JDIMENSION]
+- [jpeg_height _JDIMENSION]
+- [data_precision _int]))
+-(define _compression_params_t
+- (case JPEG_LIB_VERSION
+- [(62 64) _int] ; just data_precission
+- [else _jpeg7_compression_params]))
+-
+-(define-cstruct _quant_tbl_62_t ([quant_tbl_ptrs_1 _pointer]
+- [quant_tbl_ptrs_2 _pointer]
+- [quant_tbl_ptrs_3 _pointer]
+- [quant_tbl_ptrs_4 _pointer]))
+-(define-cstruct (_quant_tbl_70_t _quant_tbl_62_t) ([q_scale_factor_1 _int]
+- [q_scale_factor_2 _int]
+- [q_scale_factor_3 _int]
+- [q_scale_factor_4 _int]))
+-
+-(define _quant_tbl_t
+- (case JPEG_LIB_VERSION
+- [(62 64) _quant_tbl_62_t]
+- [else _quant_tbl_70_t]))
+-
+-(define _sampling_t
+- (case JPEG_LIB_VERSION
+- [(62 64) _jbool] ; just CCIR601_sampling
+- [else (make-cstruct-type (list _jbool _jbool))])) ; CCIR601_sampling and do_fancy_downsampling
+-
+-(define-cstruct _factors_62_t ([max_h_samp_factor _int]
+- [max_v_samp_factor _int]))
+-(define-cstruct (_factors_70_t _factors_62_t) ([scaled _scaled_size]))
+-(define _factors_t
+- (case JPEG_LIB_VERSION
+- [(62 64) _factors_62_t]
+- [else _factors_70_t]))
+-
+-
+-(define-cstruct _jpeg_compress_struct ([err _jpeg_error_mgr-pointer]
+- [mem _jpeg_memory_mgr-pointer]
+- [progress _pointer] ; _jpeg_progress_mgr_pointer
+- [client_data _pointer]
+- [is_decompressor _jbool]
+- [global_state _int]
+-
+- [dest* _pointer] ; actually jpeg_destination_mgr-pointer
+-
+- [image_width _JDIMENSION]
+- [image_height _JDIMENSION]
+- [input_components _int]
+- [in_color_space _J_COLOR_SPACE]
+-
+- [input_gamma _double]
+-
+- [compression_params _compression_params_t]
+-
+- [num_components _int]
+- [jpeg_color_space _J_COLOR_SPACE]
+-
+- [comp_info _pointer]
+-
+- [quant_tbl _quant_tbl_t]
+-
+- [dc_huff_tbl_ptrs_1 _pointer]
+- [dc_huff_tbl_ptrs_2 _pointer]
+- [dc_huff_tbl_ptrs_3 _pointer]
+- [dc_huff_tbl_ptrs_4 _pointer]
+- [ac_huff_tbl_ptrs_1 _pointer]
+- [ac_huff_tbl_ptrs_2 _pointer]
+- [ac_huff_tbl_ptrs_3 _pointer]
+- [ac_huff_tbl_ptrs_4 _pointer]
+-
+- [arith_dc_L_1 _uint8]
+- [arith_dc_L_2 _uint8]
+- [arith_dc_L_3 _uint8]
+- [arith_dc_L_4 _uint8]
+- [arith_dc_L_5 _uint8]
+- [arith_dc_L_6 _uint8]
+- [arith_dc_L_7 _uint8]
+- [arith_dc_L_8 _uint8]
+- [arith_dc_L_9 _uint8]
+- [arith_dc_L_10 _uint8]
+- [arith_dc_L_11 _uint8]
+- [arith_dc_L_12 _uint8]
+- [arith_dc_L_13 _uint8]
+- [arith_dc_L_14 _uint8]
+- [arith_dc_L_15 _uint8]
+- [arith_dc_L_16 _uint8]
+-
+- [arith_dc_U_1 _uint8]
+- [arith_dc_U_2 _uint8]
+- [arith_dc_U_3 _uint8]
+- [arith_dc_U_4 _uint8]
+- [arith_dc_U_5 _uint8]
+- [arith_dc_U_6 _uint8]
+- [arith_dc_U_7 _uint8]
+- [arith_dc_U_8 _uint8]
+- [arith_dc_U_9 _uint8]
+- [arith_dc_U_10 _uint8]
+- [arith_dc_U_11 _uint8]
+- [arith_dc_U_12 _uint8]
+- [arith_dc_U_13 _uint8]
+- [arith_dc_U_14 _uint8]
+- [arith_dc_U_15 _uint8]
+- [arith_dc_U_16 _uint8]
+-
+- [arith_dc_K_1 _uint8]
+- [arith_dc_K_2 _uint8]
+- [arith_dc_K_3 _uint8]
+- [arith_dc_K_4 _uint8]
+- [arith_dc_K_5 _uint8]
+- [arith_dc_K_6 _uint8]
+- [arith_dc_K_7 _uint8]
+- [arith_dc_K_8 _uint8]
+- [arith_dc_K_9 _uint8]
+- [arith_dc_K_10 _uint8]
+- [arith_dc_K_11 _uint8]
+- [arith_dc_K_12 _uint8]
+- [arith_dc_K_13 _uint8]
+- [arith_dc_K_14 _uint8]
+- [arith_dc_K_15 _uint8]
+- [arith_dc_K_16 _uint8]
+-
+- [num_scans _int]
+- [scan_info _pointer]
+-
+- [raw_data_in _jbool]
+- [arith_code _jbool]
+- [optimize_coding _jbool]
+- [sampling _sampling_t]
+- [smoothing_factor _int]
+- [dct_method _J_DCT_METHOD]
+-
+- [restart_interval _uint]
+- [restart_in_rows _int]
+-
+- [write_JFIF_header _jbool]
+- [JFIF_major_version _uint8]
+- [JFIF_minor_version _uint8]
+- [density_unit _uint8]
+- [X_density _uint16]
+- [Y_density _uint16]
+- [write_Adobe_marker _jbool]
+-
+- [next_scanline _JDIMENSION]
+-
+- [progressive_mode _jbool]
+- [factors _factors_t]
+-
+- [total_iMCU_rows _JDIMENSION]
+-
+- [comps_in_scan _int]
+- [cur_comp_info_1 _pointer]
+- [cur_comp_info_2 _pointer]
+- [cur_comp_info_3 _pointer]
+- [cur_comp_info_4 _pointer]
+-
+- [MCUs_per_row _JDIMENSION]
+- [MCU_rows_in_scan _JDIMENSION]
+-
+- [blocks_in_MCU _int]
+-
+- [MCU_membership_1 _int]
+- [MCU_membership_2 _int]
+- [MCU_membership_3 _int]
+- [MCU_membership_4 _int]
+- [MCU_membership_5 _int]
+- [MCU_membership_6 _int]
+- [MCU_membership_7 _int]
+- [MCU_membership_8 _int]
+- [MCU_membership_9 _int]
+- [MCU_membership_10 _int]
+-
+- [prog_scan _prog_scan_size] ; Ss, Se, Ah, Al
+-
+- [master _pointer]
+- [main _pointer]
+- [prep _pointer]
+- [coef _pointer]
+- [marker _pointer]
+- [cconvert _pointer]
+- [downsample _pointer]
+- [fdct _pointer]
+- [entropy _pointer]
+- [script_space _pointer]
+- [script_space_size _int]))
++ [downsample _pointer]
++ [fdct _pointer]
++ [entropy _pointer]
++ [script_space _pointer]
++ [script_space_size _int])]))
+
+ (define _j_compress_ptr _jpeg_compress_struct-pointer)
+
diff --git a/extra/racket/racket.install b/extra/racket/racket.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/extra/racket/racket.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/raptor/PKGBUILD b/extra/raptor/PKGBUILD
new file mode 100644
index 000000000..ac925631e
--- /dev/null
+++ b/extra/raptor/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 102988 2010-12-13 20:32:09Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=raptor
+pkgver=1.4.21
+pkgrel=2
+pkgdesc="A C library that parses RDF/XML/N-Triples into RDF triples"
+arch=('i686' 'x86_64')
+url="http://librdf.org/raptor"
+depends=('libxml2>=2.7.8' 'curl>=7.21.2' 'zlib>=1.2.5' 'libxslt>=1.1.26')
+license=('LGPL')
+options=('!libtool')
+source=(http://librdf.org/dist/source/$pkgname-$pkgver.tar.gz)
+md5sums=('992061488af7a9e2d933df6b694bb876')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr install
+}
diff --git a/extra/rarian/PKGBUILD b/extra/rarian/PKGBUILD
new file mode 100644
index 000000000..b83caff46
--- /dev/null
+++ b/extra/rarian/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 11986 2008-09-06 21:33:59Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=rarian
+pkgver=0.8.1
+pkgrel=1
+pkgdesc="Documentation meta-data library, designed as a replacement for Scrollkeeper."
+arch=('i686' 'x86_64')
+url="http://rarian.freedesktop.org/"
+license=('GPL')
+depends=('gcc-libs')
+makedepends=('libxslt')
+conflicts=('scrollkeeper')
+provides=('scrollkeeper')
+replaces=('scrollkeeper')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.8/${pkgname}-${pkgver}.tar.bz2
+ user-segfault.patch)
+md5sums=('75091185e13da67a0ff4279de1757b94'
+ '457e9827197009cfa360911fe49a5ad7')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ patch -p0 -i ${srcdir}/user-segfault.patch || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static || return 1
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+}
diff --git a/extra/rarian/user-segfault.patch b/extra/rarian/user-segfault.patch
new file mode 100644
index 000000000..3311cecdd
--- /dev/null
+++ b/extra/rarian/user-segfault.patch
@@ -0,0 +1,14 @@
+--- util/rarian-sk-get-cl.cpp~ 2008-07-28 19:23:28.000000000 +0200
++++ util/rarian-sk-get-cl.cpp 2008-07-28 19:23:28.000000000 +0200
+@@ -160,6 +160,11 @@
+ {
+ char *filename = NULL;
+ char *user = getenv ("USERNAME");
++
++ if (user == NULL) {
++ user = getenv ("USER");
++ }
++
+ char *basepath = NULL;
+ int i=0;
+ int last = 0;
diff --git a/extra/rasqal/PKGBUILD b/extra/rasqal/PKGBUILD
new file mode 100644
index 000000000..293aaf093
--- /dev/null
+++ b/extra/rasqal/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 102968 2010-12-13 19:43:14Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Lawrence Lee <valheru@facticius.net>
+
+pkgname=rasqal
+pkgver=0.9.21
+pkgrel=1
+pkgdesc="a free C library that handles Resource Description Framework (RDF) query syntaxes, query construction and query execution returning result bindings"
+url="http://librdf.org/rasqal"
+license=('GPL' 'LGPL')
+arch=('i686' 'x86_64')
+depends=('raptor>=1.4.21' 'mpfr')
+options=('!libtool')
+source=(http://download.librdf.org/source/${pkgname}-${pkgver}.tar.gz)
+md5sums=('55b67ec92a059ef8979d46486b00a032')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --disable-static \
+ --enable-release \
+ --with-raptor=system
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/ratpoison/PKGBUILD b/extra/ratpoison/PKGBUILD
new file mode 100644
index 000000000..fcea6c2ec
--- /dev/null
+++ b/extra/ratpoison/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 109087 2011-02-05 20:30:52Z andrea $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: juergen <juergen@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=ratpoison
+pkgver=1.4.5
+pkgrel=4
+pkgdesc="A simple keystroke-driven window manager"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libxinerama' 'readline' 'bash' 'perl' 'libxtst' 'libxft' 'texinfo')
+url="http://www.nongnu.org/ratpoison/"
+install="${pkgname}.install"
+source=(http://savannah.nongnu.org/download/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ ${pkgname}.desktop)
+md5sums=('330a08dbed6be88cab54f6947e9f0b60'
+ '29c3cb9be59758e39d8471391231a74a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make CFLAGS="$CFLAGS -DHAVE_GETLINE"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # fix permissions
+ chmod a+x ${pkgdir}/usr/share/ratpoison/{allwindows.sh,clickframe.pl,rpshowall.sh,rpws,split.sh}
+
+ # Not useful outside the source tree. Kill it
+ rm ${pkgdir}/usr/share/ratpoison/genrpbindings
+
+ cd contrib
+ ./genrpbindings
+ install -dm755 ${pkgdir}/usr/share/ratpoison/bindings
+ install -m644 {Ratpoison.pm,ratpoison-cmd.el,ratpoison.rb,ratpoison.lisp,ratpoison.py} \
+ ${pkgdir}/usr/share/ratpoison/bindings/
+
+ install -Dm644 ${srcdir}/${pkgname}.desktop \
+ ${pkgdir}/etc/X11/sessions/${pkgname}.desktop
+
+ install -Dm644 ${pkgdir}/usr/share/ratpoison/ratpoison.el \
+ ${pkgdir}/usr/share/emacs/site-lisp/ratpoison.el
+}
+
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/ratpoison/ratpoison.desktop b/extra/ratpoison/ratpoison.desktop
new file mode 100644
index 000000000..9e29bd46a
--- /dev/null
+++ b/extra/ratpoison/ratpoison.desktop
@@ -0,0 +1,8 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=Ratpoison
+Comment=The ratpoison window manager
+Exec=ratpoison
+# no icon yet, only the top three are currently used
+Icon=
+Type=Application
diff --git a/extra/ratpoison/ratpoison.install b/extra/ratpoison/ratpoison.install
new file mode 100644
index 000000000..1eafd8f69
--- /dev/null
+++ b/extra/ratpoison/ratpoison.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(ratpoison.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/razor/PKGBUILD b/extra/razor/PKGBUILD
new file mode 100644
index 000000000..3f596706d
--- /dev/null
+++ b/extra/razor/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 101393 2010-11-29 01:47:33Z kevin $
+# Maintainer: Dale Blount <dale@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=razor
+pkgver=2.84
+pkgrel=4
+pkgdesc="A distributed, collaborative, spam detection and filtering network."
+arch=(i686 x86_64)
+url="http://razor.sourceforge.net"
+license=('PerlArtistic')
+depends=('glibc' 'perl-net-dns' 'perl-digest-sha1' 'perl-uri' 'perl-digest-nilsimsa' 'perl>=5.10.0')
+source=(http://downloads.sourceforge.net/sourceforge/razor/${pkgname}-agents-${pkgver}.tar.bz2)
+md5sums=('8b9a11a6ce020383c32c45d1530d77c2')
+options=(!emptydirs)
+
+build() {
+ cd ${srcdir}/${pkgname}-agents-${pkgver}
+
+ # skip install_razor_agents (we'll do the linking later)
+ # /bin/sed -i "s|install :: all pure_install doc_install install_razor_agents|install :: all pure_install doc_install|g" Makefile
+
+ perl Makefile.PL INSTALLDIRS=vendor
+ make
+ make test
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-agents-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+
+ # cd ${pkgdir}/usr/bin
+ # for i in razor-check razor-report razor-revoke razor-admin; do
+ # /bin/ln -sf razor-client $i;
+ # done
+}
diff --git a/extra/rcs/PKGBUILD b/extra/rcs/PKGBUILD
new file mode 100644
index 000000000..a9edf2fe8
--- /dev/null
+++ b/extra/rcs/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 78028 2010-04-19 08:23:42Z dgriffiths $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=rcs
+pkgver=5.7
+pkgrel=5
+pkgdesc="Revision Control System"
+arch=('i686' 'x86_64')
+url="http://www.cs.purdue.edu/homes/trinkle/RCS/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.cs.purdue.edu/homes/trinkle/RCS/rcs-${pkgver}.tar.Z \
+ rcs-5.7.patch)
+md5sums=('423282f0edb353296d9f3498ab683abf' '7ae4b7cb79259ccdf5eee0ab94fe2a2a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ../rcs-5.7.patch || return 1
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make prefix=${pkgdir}/usr man1dir=${pkgdir}/usr/share/man/man1 \
+ man5dir=${pkgdir}/usr/share/man/man5 install || return 1
+}
diff --git a/extra/rcs/rcs-5.7.patch b/extra/rcs/rcs-5.7.patch
new file mode 100644
index 000000000..0f062b357
--- /dev/null
+++ b/extra/rcs/rcs-5.7.patch
@@ -0,0 +1,67 @@
+diff -Naur rcs-5.7-orig/src/conf.heg rcs-5.7/src/conf.heg
+--- rcs-5.7-orig/src/conf.heg 1995-06-02 11:19:00.000000000 -0700
++++ rcs-5.7/src/conf.heg 2004-11-29 12:41:37.000000000 -0800
+@@ -210,10 +210,10 @@
+ /* Do struct stat s and t describe the same file? Answer d if unknown. */
+ #define same_file(s,t,d) ((s).st_ino==(t).st_ino && (s).st_dev==(t).st_dev)
+ #define has_utimbuf 1 /* Does struct utimbuf work? */
+-#define CO "/usr/local/bin/co" /* name of 'co' program */
++#define CO "/usr/bin/co" /* name of 'co' program */
+ #define COMPAT2 0 /* Are version 2 files supported? */
+-#define DIFF "/usr/local/bin/diff" /* name of 'diff' program */
+-#define DIFF3 "/usr/local/bin/diff3" /* name of 'diff3' program */
++#define DIFF "/usr/bin/diff" /* name of 'diff' program */
++#define DIFF3 "/usr/bin/diff3" /* name of 'diff3' program */
+ #define DIFF3_BIN 1 /* Is diff3 user-visible (not the /usr/lib auxiliary)? */
+ #define DIFFFLAGS "-an" /* Make diff output suitable for RCS. */
+ #define DIFF_L 1 /* Does diff -L work? */
+@@ -221,7 +221,7 @@
+ #define DIFF_FAILURE 1 /* DIFF status if differences are found */
+ #define DIFF_TROUBLE 2 /* DIFF status if trouble */
+ #define ED "/bin/ed" /* name of 'ed' program (used only if !DIFF3_BIN) */
+-#define MERGE "/usr/local/bin/merge" /* name of 'merge' program */
++#define MERGE "/usr/bin/merge" /* name of 'merge' program */
+ #define TMPDIR "/tmp" /* default directory for temporary files */
+ #define SLASH '/' /* principal filename separator */
+ #define SLASHes '/' /* `case SLASHes:' labels all filename separators */
+diff -Naur rcs-5.7-orig/src/conf.sh rcs-5.7/src/conf.sh
+--- rcs-5.7-orig/src/conf.sh 1995-06-15 23:19:24.000000000 -0700
++++ rcs-5.7/src/conf.sh 2004-11-29 12:42:28.000000000 -0800
+@@ -32,7 +32,7 @@
+ # and can be inspected for clues otherwise.
+
+ # The Makefile overrides the following defaults.
+-: ${RCSPREFIX=/usr/local/bin/}
++: ${RCSPREFIX=/usr/bin/}
+ : ${ALL_CFLAGS=-Dhas_conf_h}
+ : ${CC=cc}
+ : ${COMPAT2=0}
+@@ -42,8 +42,8 @@
+ : ${DIFFFLAGS=-an}
+ : ${DIFF_L=1}
+ : ${DIFF_SUCCESS=0} ${DIFF_FAILURE=1} ${DIFF_TROUBLE=2}
+-: ${ED=/bin/ed}
+-: ${SENDMAIL='"/usr/lib/sendmail"'}
++: ${ED=/usr/bin/ed}
++: ${SENDMAIL='"/usr/sbin/sendmail"'}
+ # : ${LDFLAGS=} ${LIBS=} tickles old shell bug
+
+ C="$CC $ALL_CFLAGS"
+@@ -73,17 +73,6 @@
+ ech='echo -n' dots='... '
+ esac
+
+-$ech >&3 "$0: testing permissions $dots"
+-rm -f a.d &&
+-date >a.d &&
+-chmod 0 a.d &&
+-{ test -w a.d || cp /dev/null a.d 2>/dev/null; } && {
+- echo >&3 "$n$0: This command should not be run with superuser permissions."
+- exit 1
+-}
+-echo >&3 OK
+-rm -f a.d || exit
+-
+ $ech >&3 "$0: testing compiler for plausibility $dots"
+ echo 'main() { return 0; }' >a.c
+ rm -f a.exe a.out || exit
diff --git a/extra/rdesktop/PKGBUILD b/extra/rdesktop/PKGBUILD
new file mode 100644
index 000000000..bdcd3a283
--- /dev/null
+++ b/extra/rdesktop/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 77123 2010-04-10 21:21:07Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Dan McGee <dan@archlinux.org>
+
+pkgname=rdesktop
+pkgver=1.6.0
+pkgrel=5
+depends=('libx11' 'openssl' 'libao' 'libsamplerate')
+pkgdesc="Is used to connect to windows terminal servers"
+url="http://www.rdesktop.org/"
+license=('GPL')
+arch=('i686' 'x86_64')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ 'rdesktop-send_physical_buttons.diff')
+md5sums=('c6fcbed7f0ad7e60ac5fcb2d324d8b16'
+ '880d3aeac67b901e6bf44d1323374768')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -i ${srcdir}/rdesktop-send_physical_buttons.diff || return 1
+
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/rdesktop/rdesktop-send_physical_buttons.diff b/extra/rdesktop/rdesktop-send_physical_buttons.diff
new file mode 100644
index 000000000..8e0f6cee7
--- /dev/null
+++ b/extra/rdesktop/rdesktop-send_physical_buttons.diff
@@ -0,0 +1,70 @@
+? aclocal.m4
+Index: rdesktop.c
+===================================================================
+RCS file: /cvsroot/rdesktop/rdesktop/rdesktop.c,v
+retrieving revision 1.163
+diff -u -r1.163 rdesktop.c
+--- rdesktop.c 5 Apr 2008 06:15:45 -0000 1.163
++++ rdesktop.c 5 Aug 2008 11:46:04 -0000
+@@ -73,6 +73,7 @@
+ int g_win_button_size = 0; /* If zero, disable single app mode */
+ RD_BOOL g_bitmap_compression = True;
+ RD_BOOL g_sendmotion = True;
++RD_BOOL g_send_physical_buttons = True;
+ RD_BOOL g_bitmap_cache = True;
+ RD_BOOL g_bitmap_cache_persist_enable = False;
+ RD_BOOL g_bitmap_cache_precache = True;
+@@ -152,6 +153,7 @@
+ fprintf(stderr, " -B: use BackingStore of X-server (if available)\n");
+ fprintf(stderr, " -e: disable encryption (French TS)\n");
+ fprintf(stderr, " -E: disable encryption from client to server\n");
++ fprintf(stderr, " -M: do not map logical mouse buttons to physical\n");
+ fprintf(stderr, " -m: do not send motion events\n");
+ fprintf(stderr, " -C: use private colour map\n");
+ fprintf(stderr, " -D: hide window manager decorations\n");
+@@ -450,7 +452,7 @@
+ #endif
+
+ while ((c = getopt(argc, argv,
+- VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEmzCDKS:T:NX:a:x:Pr:045h?")) != -1)
++ VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEMmzCDKS:T:NX:a:x:Pr:045h?")) != -1)
+ {
+ switch (c)
+ {
+@@ -584,6 +586,9 @@
+ case 'E':
+ g_packet_encryption = False;
+ break;
++ case 'M':
++ g_send_physical_buttons = False;
++ break;
+ case 'm':
+ g_sendmotion = False;
+ break;
+Index: xwin.c
+===================================================================
+RCS file: /cvsroot/rdesktop/rdesktop/xwin.c,v
+retrieving revision 1.235
+diff -u -r1.235 xwin.c
+--- xwin.c 11 Jul 2008 03:51:23 -0000 1.235
++++ xwin.c 5 Aug 2008 11:46:06 -0000
+@@ -36,6 +36,7 @@
+ extern int g_ypos;
+ extern int g_pos;
+ extern RD_BOOL g_sendmotion;
++extern RD_BOOL g_send_physical_buttons;
+ extern RD_BOOL g_fullscreen;
+ extern RD_BOOL g_grab_keyboard;
+ extern RD_BOOL g_hide_decorations;
+@@ -2190,7 +2191,8 @@
+ receive physical buttons (true in mstsc as well) and
+ logical button behavior depends on the remote desktop's own
+ mouse settings */
+- xevent.xbutton.button = g_pointer_log_to_phys_map[xevent.xbutton.button - 1];
++ if (g_send_physical_buttons)
++ xevent.xbutton.button = g_pointer_log_to_phys_map[xevent.xbutton.button - 1];
+ button = xkeymap_translate_button(xevent.xbutton.button);
+ if (button == 0)
+ return;
+
+
diff --git a/extra/re2c/PKGBUILD b/extra/re2c/PKGBUILD
new file mode 100644
index 000000000..86adee2b5
--- /dev/null
+++ b/extra/re2c/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 24272 2009-01-15 20:24:40Z giovanni $
+# Contributor: nut543 <kfs1@online.no>
+# Maintainer: Dale Blount <dale@archlinux.org>
+pkgname=re2c
+pkgver=0.13.5
+arch=('i686' 'x86_64')
+depends=('gcc-libs')
+makedepends=('gcc')
+pkgrel=1
+pkgdesc="a tool for generating C-based recognizers from regular expressions."
+url="http://re2c.sourceforge.net/"
+license=('GPL')
+source=(http://downloads.sourceforge.net/sourceforge/re2c/re2c-${pkgver}.tar.gz)
+md5sums=('4a97d8f77ed6d2c76c8bd840a43f5633')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+}
+
+
diff --git a/extra/recode/PKGBUILD b/extra/recode/PKGBUILD
new file mode 100644
index 000000000..f95e08fde
--- /dev/null
+++ b/extra/recode/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 103548 2010-12-21 11:02:32Z andrea $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=recode
+pkgver=3.6
+pkgrel=6
+pkgdesc="Converts files between various character sets and usages"
+arch=('i686' 'x86_64')
+url="http://recode.progiciels-bpi.ca/index.html"
+license=('GPL' 'LGPL')
+depends=('glibc' 'texinfo')
+options=('!libtool')
+install=recode.install
+source=(${pkgname}-${pkgver}.tar.gz::"https://github.com/pinard/${pkgname}/tarball/v${pkgver}"
+ http://ftp.de.debian.org/debian/pool/main/r/recode/recode_3.6-15.diff.gz
+ recode-3.6-as-if.patch recode-3.6-gettextfix.diff)
+md5sums=('f82e9a6ede9119268c13493c9add2809'
+ '95ca772e367a7ef56d3f46d724b6f86e'
+ 'fca7484ba332c8ad59eb02334883cd92'
+ 'eb602e80a24b5448604bfebeacc55304')
+
+build() {
+ cd ${srcdir}/pinard-Recode-2127b34
+ patch -Np1 -i ${srcdir}/recode-3.6-as-if.patch
+ patch -Np1 -i ${srcdir}/recode-3.6-gettextfix.diff
+ patch -Np1 -i ${srcdir}/recode_3.6-15.diff
+ sed -i '1i#include <stdlib.h>' src/argmatch.c
+ rm -f acinclude.m4
+ autoreconf -fi
+ libtoolize
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --infodir=/usr/share/info --without-included-gettext
+ make
+}
+
+package() {
+ cd ${srcdir}/pinard-Recode-2127b34
+ make DESTDIR=${pkgdir} install
+
+ rm ${pkgdir}/usr/share/info/dir
+ gzip ${pkgdir}/usr/share/info/*
+}
diff --git a/extra/recode/recode-3.6-as-if.patch b/extra/recode/recode-3.6-as-if.patch
new file mode 100644
index 000000000..c7bcc27c8
--- /dev/null
+++ b/extra/recode/recode-3.6-as-if.patch
@@ -0,0 +1,19 @@
+http://bugs.gentoo.org/283029
+
+--- a/m4/flex.m4
++++ b/m4/flex.m4
+@@ -8,11 +8,11 @@ dnl ad_AC_PROG_FLEX
+ dnl Look for flex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
+ AC_DEFUN(ad_AC_PROG_FLEX,
+ [AC_CHECK_PROGS(LEX, flex, missing)
+-if test "$LEX" = missing; then
++AS_IF([test "$LEX" = missing], [dnl
+ LEX="\$(top_srcdir)/$ac_aux_dir/missing flex"
+ LEX_OUTPUT_ROOT=lex.yy
+ AC_SUBST(LEX_OUTPUT_ROOT)dnl
+-else
++], [:
+ AC_PROG_LEX
+ AC_DECL_YYTEXT
+-fi])
++])])
diff --git a/extra/recode/recode-3.6-gcc43.patch b/extra/recode/recode-3.6-gcc43.patch
new file mode 100644
index 000000000..beaf26e9a
--- /dev/null
+++ b/extra/recode/recode-3.6-gcc43.patch
@@ -0,0 +1,20 @@
+http://bugs.gentoo.org/209036
+
+fix building with gcc-4.3
+
+--- src/recodext.h 2008-04-03 18:35:42 +0000
++++ src/recodext.h 2008-04-03 18:36:32 +0000
+@@ -215,10 +215,10 @@
+ struct recode_single *unsurfacer;
+
+ /* Non zero if this is an acceptable charset (not only a surface). */
+- enum recode_symbol_type type : 3;
++ enum recode_symbol_type type : 2;
+
+ /* Non zero if this one should be ignored. */
+- bool ignore : 2;
++ bool ignore : 1;
+ };
+
+ struct recode_surface_list
+
diff --git a/extra/recode/recode-3.6-gettextfix.diff b/extra/recode/recode-3.6-gettextfix.diff
new file mode 100644
index 000000000..3b7eb8ba2
--- /dev/null
+++ b/extra/recode/recode-3.6-gettextfix.diff
@@ -0,0 +1,23 @@
+http://bugs.gentoo.org/239372
+
+patch by Dmitry Karasik
+
+--- recode-3.6/m4/gettext.m4
++++ recode-3.6/m4/gettext.m4
+@@ -109,12 +109,12 @@
+ else
+ ac_items="$LINGUAS"
+ for ac_item in $ac_items; do
+- case "$ALL_LINGUAS" in
+- *$ac_item*)
++ for supported_item in $ALL_LINGUAS; do
++ if test "$ac_item" = "$supported_item"; then
+ ac_print="$ac_print $ac_item"
+ MOFILES="$MOFILES $ac_item.mo"
+- ;;
+- esac
++ fi
++ done
+ done
+ fi
+ AC_SUBST(MOFILES)
diff --git a/extra/recode/recode.install b/extra/recode/recode.install
new file mode 100644
index 000000000..6304d5906
--- /dev/null
+++ b/extra/recode/recode.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(recode.info-5.gz recode.info-3.gz recode.info-7.gz recode.info-6.gz recode.info-2.gz recode.info-4.gz recode.info.gz recode.info-1.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/redland/PKGBUILD b/extra/redland/PKGBUILD
new file mode 100644
index 000000000..8f87b360a
--- /dev/null
+++ b/extra/redland/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 115186 2011-03-17 11:09:01Z andrea $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgbase=redland
+pkgname=('redland' 'redland-storage-mysql' 'redland-storage-postgresql' 'redland-storage-virtuoso' 'redland-storage-sqlite')
+pkgver=1.0.12
+pkgrel=6
+url="http://librdf.org/"
+license=("GPL")
+arch=('i686' 'x86_64')
+makedepends=('rasqal>=0.9.21' 'raptor>=1.4.21' 'db>=5.1' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3')
+options=('!libtool')
+source=(http://download.librdf.org/source/$pkgname-$pkgver.tar.gz
+ rpath.diff)
+md5sums=('40f37a5ad97fdfbf984f78dcea0c6115'
+ 'acc85e784f01a656bd56777f95880787')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-release \
+ --disable-static \
+ --with-raptor=system \
+ --with-rasqal=system \
+ --with-sqlite=3
+
+ # nuke rpath
+ patch -Np0 -i ${srcdir}/rpath.diff
+
+ make
+}
+
+package_redland() {
+ pkgdesc="Library that provides a high-level interface to RDF data"
+ depends=('rasqal>=0.9.21' 'raptor>=1.4.21' 'libtool')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/lib/redland
+}
+
+package_redland-storage-mysql() {
+ pkgdesc="MySQL storage support for Redland"
+ depends=('redland' 'libmysqlclient')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_mysql.so ${pkgdir}/usr/lib/redland/librdf_storage_mysql.so
+}
+
+package_redland-storage-postgresql() {
+ pkgdesc="PostgreSQL storage support for Redland"
+ depends=('redland' 'postgresql-libs')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_postgresql.so ${pkgdir}/usr/lib/redland/
+}
+
+package_redland-storage-virtuoso() {
+ pkgdesc="Virtuoso storage support for Redland"
+ depends=('redland' 'unixodbc' 'db')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_virtuoso.so ${pkgdir}/usr/lib/redland/
+}
+
+package_redland-storage-sqlite() {
+ pkgdesc="SQLite storage support for Redland"
+ depends=('redland' 'sqlite3' 'db')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_sqlite.so ${pkgdir}/usr/lib/redland/
+}
diff --git a/extra/redland/rpath.diff b/extra/redland/rpath.diff
new file mode 100644
index 000000000..831bc80ed
--- /dev/null
+++ b/extra/redland/rpath.diff
@@ -0,0 +1,11 @@
+--- libtool 2011-02-20 10:46:47.000000000 +0100
++++ libtool.new 2011-02-20 10:52:58.285764909 +0100
+@@ -324,7 +324,7 @@
+
+ # Flag to hardcode $libdir into a binary during linking.
+ # This must work even if $libdir does not exist
+-hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
++hardcode_libdir_flag_spec=" "
+
+ # If ld is used when linking, flag to hardcode $libdir into a binary
+ # during linking. This must work even if $libdir does not exist.
diff --git a/extra/rhino/PKGBUILD b/extra/rhino/PKGBUILD
new file mode 100644
index 000000000..27d7c46fc
--- /dev/null
+++ b/extra/rhino/PKGBUILD
@@ -0,0 +1,18 @@
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=rhino
+pkgver=1.7R1
+pkgrel=1
+pkgdesc="Open-source implementation of JavaScript written entirely in Java"
+arch=('i686' 'x86_64')
+url="http://www.mozilla.org/rhino/"
+license=('MPL' 'GPL2')
+source=(ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R1.zip)
+md5sums=('613eed8201d37be201805e5048ebb0c3')
+
+build() {
+ cd ${srcdir}/rhino1_7R1
+ install -m755 -d ${pkgdir}/usr/share/java
+ install -m644 js.jar ${pkgdir}/usr/share/java/ || return 1
+}
diff --git a/extra/rhythmbox/PKGBUILD b/extra/rhythmbox/PKGBUILD
new file mode 100644
index 000000000..a7c54a9a6
--- /dev/null
+++ b/extra/rhythmbox/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 112869 2011-03-07 11:45:31Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=rhythmbox
+pkgver=0.13.3
+pkgrel=2
+pkgdesc="An iTunes-like music player/libary"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.rhythmbox.org"
+depends=('libgpod' 'libsoup-gnome' 'gnome-media' 'totem-plparser' 'libmusicbrainz3' 'libmtp' 'libnotify' 'lirc-utils' 'desktop-file-utils'
+ 'gstreamer0.10-python' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'pygtk' 'gvfs-afc' 'hicolor-icon-theme' 'pywebkitgtk'
+ 'python-mako' 'libdmapsharing' 'json-glib' 'python2-gconf' 'python2-libgnome' 'python-gnomekeyring' 'media-player-info')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.1' 'intltool' 'brasero')
+optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
+ 'gstreamer0.10-bad-plugins: Extra media codecs'
+ 'gstreamer0.10-ffmpeg: Extra media codecs'
+ 'brasero: cd burning')
+options=('!libtool' '!emptydirs')
+install=rhythmbox.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.13/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('ad6532864bb4df30f1014ec81ddc0d2d3f69241235627f46abe5578cf629052a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/rhythmbox \
+ --localstatedir=/var --disable-static \
+ --enable-daap --enable-python \
+ --with-mdns=avahi --disable-scrollkeeper
+
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain rhythmbox ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/rhythmbox/rhythmbox.install b/extra/rhythmbox/rhythmbox.install
new file mode 100644
index 000000000..10c4f2229
--- /dev/null
+++ b/extra/rhythmbox/rhythmbox.install
@@ -0,0 +1,24 @@
+pkgname=rhythmbox
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t usr/share/icons/hicolor
+}
diff --git a/extra/ristretto/PKGBUILD b/extra/ristretto/PKGBUILD
new file mode 100644
index 000000000..604cf20c1
--- /dev/null
+++ b/extra/ristretto/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 112061 2011-03-03 17:24:57Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=ristretto
+pkgver=0.0.93
+pkgrel=1
+pkgdesc="Ristretto is a image viewer for Xfce"
+arch=('i686' 'x86_64')
+url="http://goodies.xfce.org/projects/applications/ristretto"
+license=('GPL2')
+depends=('libxfce4ui' 'libexif' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+groups=('xfce4-goodies')
+source=(http://archive.xfce.org/src/apps/$pkgname/0.0/$pkgname-$pkgver.tar.bz2)
+install=ristretto.install
+md5sums=('74dcdf0fcbf7039852b817732a91fb6c')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/ristretto/ristretto.install b/extra/ristretto/ristretto.install
new file mode 100644
index 000000000..75e2b7b55
--- /dev/null
+++ b/extra/ristretto/ristretto.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/rosegarden/PKGBUILD b/extra/rosegarden/PKGBUILD
new file mode 100644
index 000000000..8362e9f18
--- /dev/null
+++ b/extra/rosegarden/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 109447 2011-02-09 17:52:06Z schiv $
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+pkgname=rosegarden
+pkgver=11.02
+pkgrel=1
+pkgdesc="MIDI/audio sequencer and notation editor"
+arch=('i686' 'x86_64')
+url="http://www.rosegardenmusic.com/"
+license=('GPL')
+depends=('liblrdf' 'dssi' 'fftw' 'lirc-utils'
+ 'perl' 'qt' 'shared-mime-info')
+makedepends=('pkgconfig' 'imake')
+optdepends=('lilypond: notation display'
+ 'cups: printing support'
+ 'okular: print preview, or any other PDF viewer'
+ 'timidity++: MIDI playback, or any other softsynth'
+ 'flac'
+ 'wavpack')
+[ "$CARCH" = "i686" ] && optdepends=("${optdepends[@]}"
+ 'dssi-vst: win32 VST support')
+install=$pkgname.install
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('fca86bfd7351a16cc2b55a85d2c8a128')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/rosegarden/rosegarden.install b/extra/rosegarden/rosegarden.install
new file mode 100644
index 000000000..5119faec2
--- /dev/null
+++ b/extra/rosegarden/rosegarden.install
@@ -0,0 +1,14 @@
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/rox/PKGBUILD b/extra/rox/PKGBUILD
new file mode 100644
index 000000000..34b72f227
--- /dev/null
+++ b/extra/rox/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 46891 2009-07-20 23:09:07Z giovanni $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=rox
+_appname=${pkgname}-filer
+pkgver=2.10
+pkgrel=1
+pkgdesc="A small and fast file manager which can optionally manage the desktop background and panels."
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://roscidus.com/desktop/"
+depends=('libxml2' 'gtk2' 'shared-mime-info' 'bash' 'libsm' 'libglade')
+makedepends=('librsvg' 'python')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${_appname}-${pkgver}.tar.bz2 \
+ ${pkgname}.desktop ${pkgname}.svg)
+md5sums=('28e8494c9af783258ff86c830f8f0062'
+ '80e7a90e9d58375b25494fbdc01a05bd'
+ '658c8648b51e215558e13e6afb2b5c76')
+
+build() {
+ cd ${startdir}/src/${_appname}-${pkgver}/Choices
+ mkdir -p ${startdir}/pkg/usr/share/Choices
+ cp -rp MIME-types ${startdir}/pkg/usr/share/Choices/
+ # manually copy the manpages first
+ cd ../
+ install -Dm 0644 rox.1 ${startdir}/pkg/usr/share/man/man1/rox.1
+ cd ${startdir}/pkg/usr/share/man/man1
+ ln -sf rox.1 ROX-Filer.1
+ # this compiles and installs rox
+ cd ${startdir}/src/${_appname}-${pkgver}/ROX-Filer
+ ./AppRun --compile
+ cd ..
+ cp -rp ROX-Filer ${startdir}/pkg/usr/share/
+ rm -fr ${startdir}/pkg/usr/share/ROX-Filer/{src,build}
+ # create a shellscript which is known in the PATH
+ mkdir -p ${startdir}/pkg/usr/bin
+ echo "#!/bin/sh" > "${startdir}/pkg/usr/bin/rox"
+ echo "exec /usr/share/ROX-Filer/AppRun \"\$@\"" >> "${startdir}/pkg/usr/bin/rox"
+ chmod a+x ${startdir}/pkg/usr/bin/rox
+ # install some freedesktop.org compatibility
+ install -D -m644 ${startdir}/src/${pkgname}.desktop \
+ ${startdir}/pkg/usr/share/applications/${pkgname}.desktop
+ install -D -m644 ${startdir}/src/${pkgname}.svg \
+ ${startdir}/pkg/usr/share/pixmaps/${pkgname}.svg
+ # finally we render a png as fallback for not svg aware menu applications
+ # Attention: always make sure you check the dimensions of the source-svg,
+ # you can read the dimensions via inkscapes export funktion
+ rsvg -w 48 -h 38 -f png ${startdir}/src/${pkgname}.svg \
+ ${startdir}/pkg/usr/share/pixmaps/${pkgname}.png
+}
diff --git a/extra/rox/rox.desktop b/extra/rox/rox.desktop
new file mode 100644
index 000000000..b1a2014f7
--- /dev/null
+++ b/extra/rox/rox.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=ROX Filer
+Comment=ROX Filer
+Exec=rox
+Icon=rox
+Terminal=false
+MultipleArgs=false
+Type=Application
+Categories=Application;FileManager;
+
diff --git a/extra/rox/rox.svg b/extra/rox/rox.svg
new file mode 100644
index 000000000..4cbd7cc28
--- /dev/null
+++ b/extra/rox/rox.svg
@@ -0,0 +1,493 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
+"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ id="svg1573"
+ sodipodi:version="0.32"
+ inkscape:version="0.39"
+ width="100.00000pt"
+ height="80.000000pt"
+ sodipodi:docbase="/home/keep/graphics/arch_candy/svg-icons"
+ sodipodi:docname="rox_filer.svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <defs
+ id="defs1575">
+ <linearGradient
+ id="linearGradient2267">
+ <stop
+ style="stop-color:#fdffc6;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2268" />
+ <stop
+ style="stop-color:#ffbc00;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2269" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2267"
+ id="linearGradient2270"
+ x1="0.17269076"
+ y1="0.14173229"
+ x2="0.97590363"
+ y2="0.72834647" />
+ <linearGradient
+ id="linearGradient2263">
+ <stop
+ style="stop-color:#b4b4b4;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2264" />
+ <stop
+ style="stop-color:#e6e6e6;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2265" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1589">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop1590" />
+ <stop
+ style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop1593" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2196">
+ <stop
+ style="stop-color:#bee3ff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop2197" />
+ <stop
+ style="stop-color:#7dd3ff;stop-opacity:1.0000000;"
+ offset="0.073038995"
+ id="stop2200" />
+ <stop
+ style="stop-color:#2494d0;stop-opacity:1.0000000;"
+ offset="0.81849396"
+ id="stop2199" />
+ <stop
+ style="stop-color:#465b72;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop2198" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1606">
+ <stop
+ style="stop-color:#000000;stop-opacity:0.62745100;"
+ offset="0.0000000"
+ id="stop1607" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop1608" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="radialGradient1636"
+ cx="1.0000000"
+ cy="1.0000000"
+ r="0.99467027"
+ fx="1.0000000"
+ fy="1.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="linearGradient1638"
+ x1="0.50000000"
+ y1="1.0000000"
+ x2="0.50000000"
+ y2="0.0000000" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="radialGradient1643"
+ cx="0.0000000"
+ cy="1.0000000"
+ r="1.0000000"
+ fx="0.0000000"
+ fy="1.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="linearGradient1645"
+ x1="0.0000000"
+ y1="0.50000000"
+ x2="1.0000000"
+ y2="0.50000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="linearGradient1647"
+ x1="1.0000000"
+ y1="0.50000000"
+ x2="0.0000000"
+ y2="0.50000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="linearGradient1649"
+ x1="0.50000000"
+ y1="1.8735014e-14"
+ x2="0.50000000"
+ y2="1.0000000" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="radialGradient1651"
+ cx="1.0000000"
+ cy="0.0000000"
+ r="1.0000000"
+ fx="1.0000000"
+ fy="0.0000000" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1606"
+ id="radialGradient1653"
+ cx="0.0000000"
+ cy="0.0000000"
+ r="1.0000000"
+ fx="0.0000000"
+ fy="0.0000000" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2196"
+ id="linearGradient2195"
+ x1="0.28313252"
+ y1="0.17968750"
+ x2="0.32777777"
+ y2="0.82031250" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2196"
+ id="linearGradient2202"
+ x1="0.67934781"
+ y1="0.96875000"
+ x2="0.63000000"
+ y2="-0.054687500" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2196"
+ id="linearGradient2207"
+ x1="0.34701493"
+ y1="0.58801496"
+ x2="0.71766168"
+ y2="1.0074906" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1589"
+ id="linearGradient1588"
+ x1="0.34029850"
+ y1="0.052631579"
+ x2="0.88955224"
+ y2="0.85964912" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2263"
+ id="radialGradient2272"
+ cx="0.65671641"
+ cy="0.34579438"
+ r="0.36985061"
+ fx="0.65671641"
+ fy="0.35046729" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="6.4980189"
+ inkscape:cx="45.259790"
+ inkscape:cy="38.198748"
+ inkscape:window-width="1018"
+ inkscape:window-height="744"
+ showgrid="true"
+ snaptogrid="false"
+ gridspacingy="10.000000pt"
+ gridspacingx="10.000000pt"
+ gridoriginy="0.0000000pt"
+ gridoriginx="0.0000000pt"
+ gridtolerance="2.0000000px"
+ inkscape:grid-bbox="false"
+ inkscape:grid-points="false"
+ inkscape:window-x="0"
+ inkscape:window-y="3"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:guide-points="true"
+ guidetolerance="3.0000000pt" />
+ <metadata
+ id="metadata1576">
+ <rdf:RDF
+ id="RDF1577">
+ <cc:Work
+ rdf:about=""
+ id="Work1578">
+ <dc:description
+ id="description1579">Created with Inkscape
+http://www.inkscape.org/</dc:description>
+ <dc:format
+ id="format1581">image/svg+xml</dc:format>
+ <dc:type
+ id="type1583"
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title
+ id="title1606">Rox-Filer Icon for Archlinux
+based on work found on the internet trying to match the original xpm</dc:title>
+ <dc:date
+ id="date1608">2004-07-14</dc:date>
+ <dc:creator
+ id="creator1610">
+ <cc:Agent
+ id="Agent1611">
+ <dc:title
+ id="title1612">Tobias Kieslich, Archlinux package maintainer</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:coverage
+ id="coverage1614" />
+ <cc:license
+ id="license1616"
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/"
+ id="License1624">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction"
+ id="permits1625" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution"
+ id="permits1626" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice"
+ id="requires1627" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks"
+ id="permits1628" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike"
+ id="requires1629" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode"
+ id="requires1630" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <rect
+ style="fill:url(#radialGradient1636);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_up_left"
+ width="18.750000"
+ height="18.750000"
+ x="0.15625000"
+ y="0.15624750" />
+ <rect
+ style="fill:url(#linearGradient1638);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_up_top"
+ width="87.500000"
+ height="18.750000"
+ x="18.906250"
+ y="-2.4999999e-06" />
+ <rect
+ style="fill:url(#radialGradient1643);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_up_right"
+ width="18.750000"
+ height="18.750000"
+ x="106.40625"
+ y="0.15624750" />
+ <rect
+ style="fill:url(#linearGradient1645);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_side_right"
+ width="18.750000"
+ height="62.500000"
+ x="106.40625"
+ y="18.906250"
+ ry="0.0000000" />
+ <rect
+ style="fill:url(#radialGradient1653);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_lo_right"
+ width="18.750000"
+ height="18.750000"
+ x="106.40625"
+ y="81.406250" />
+ <rect
+ style="fill:url(#linearGradient1649);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_lo_button"
+ width="87.500000"
+ height="18.750000"
+ x="18.906250"
+ y="81.406250"
+ ry="0.0000000" />
+ <rect
+ style="fill:url(#radialGradient1651);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_lo_left"
+ width="18.750000"
+ height="18.750000"
+ x="0.15625000"
+ y="81.406250"
+ ry="0.0000000" />
+ <rect
+ style="fill:url(#linearGradient1647);fill-opacity:0.56000000;fill-rule:evenodd;stroke:none;"
+ id="sh_side_left"
+ width="18.750000"
+ height="62.500000"
+ x="0.15625000"
+ y="18.906250" />
+ <path
+ style="fill:url(#linearGradient2195);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#005ec6;stroke-width:0.37500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.76973683;"
+ d="M 10.000000,17.031250 C 15.781250,16.406250 12.187501,7.1874998 23.593751,7.4999998 C 45.937500,7.6562498 50.000000,5.4687498 55.937501,12.031250 C 73.437502,11.875000 95.781252,12.187500 106.25000,13.437500 C 111.09375,21.718750 109.03244,76.848192 111.25000,85.000000 C 105.93750,85.781250 31.718750,84.843750 17.187500,85.000000 C 19.687500,74.062500 13.593750,31.093750 10.000000,17.031250 z "
+ id="path2194"
+ sodipodi:nodetypes="ccccccc" />
+ <path
+ style="fill:url(#linearGradient2202);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#003465;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.51315790;"
+ d="M 22.656253,20.937500 C 27.656253,18.125000 102.18751,22.656260 118.12500,20.781250 C 113.28125,46.875000 107.43528,64.689405 111.09375,85.156250 C 92.656250,89.531250 42.031253,85.000000 17.187502,85.000000 C 8.7500029,53.281250 17.656253,23.750000 22.656253,20.937500 z "
+ id="path2201"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ id="outline"
+ stroke="black"
+ stroke-width="1"
+ d="M 55.515353,11.233098 C 87.695353,13.593098 87.040232,46.022391 105.94188,47.608732 C 113.45000,47.428732 86.513146,58.158732 68.693146,56.338732 C 60.333146,56.338732 57.423146,56.698732 47.423146,57.608732 C 41.423146,58.518732 35.435573,58.989217 27.975573,57.179217 C 20.902855,58.670188 21.171750,57.406693 19.875646,46.904982 C 21.358146,46.737482 21.292460,46.313412 22.819854,48.554647 C 23.991544,50.273937 24.425353,46.595305 25.854085,48.756854 C 33.124085,44.026854 26.153146,23.978732 33.423146,21.428732 C 29.603146,15.978732 33.973146,9.4287317 36.693146,9.7887317 C 37.783146,7.2487317 37.221926,4.5924878 39.401926,5.5024878 C 43.194694,7.1884025 46.004695,3.4125365 48.214085,3.2643658 C 50.330329,3.9390609 49.603146,4.8787317 51.243146,5.4287317 C 57.063146,2.8787317 55.923427,9.3281222 55.515353,11.233098 z "
+ style="fill:url(#radialGradient2272);stroke:#000000;stroke-width:1.8000009;stroke-miterlimit:4.0000000;opacity:1.0000000;"
+ sodipodi:nodetypes="ccccccsccccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#8c8c8c;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;"
+ d="M 84.890446,38.997755 C 84.890446,38.997755 88.581336,37.807146 90.724434,37.092780 C 91.795983,40.069305 97.868097,47.689207 107.15485,48.046390 C 110.72668,47.808268 93.343775,48.522634 90.248190,49.475122 C 87.152604,50.427610 84.652324,41.140853 84.890446,38.997755 z "
+ id="path2244"
+ sodipodi:nodetypes="ccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#aaaaaa;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.95000046;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 78.173843,39.831182 C 78.650087,44.117377 78.411965,55.904415 86.269989,56.142537 C 98.176087,55.904415 112.93964,49.237000 102.46229,48.284512 C 94.842380,47.689208 93.175526,50.427610 85.555623,38.759633 C 85.079379,32.330340 85.317501,38.759634 85.555623,38.759634 L 78.173843,39.831182 z "
+ id="path2243"
+ sodipodi:nodetypes="cccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#aaaaaa;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.95000046;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 72.173840,40.069304 C 72.650084,44.355499 75.388487,56.142537 80.508108,55.904415 C 92.414206,55.666293 110.27335,48.046390 99.795987,48.284512 C 92.890450,48.998878 81.936840,51.261037 79.793742,39.593060 C 79.317498,33.163767 79.793742,39.593061 79.793742,39.593061 L 72.173840,40.069304 z "
+ id="path2242"
+ sodipodi:nodetypes="cccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#aaaaaa;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.95000046;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 65.744547,40.188365 C 66.220791,44.474560 67.054218,56.142537 74.912242,56.380659 C 86.818339,56.142537 101.34378,49.594183 90.866413,49.832305 C 82.889327,49.832305 75.626608,51.261037 73.364449,39.950243 C 72.888205,33.520950 73.364449,39.950244 73.364449,39.950244 L 65.744547,40.188365 z "
+ id="path1620"
+ sodipodi:nodetypes="cccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#aaaaaa;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.95000046;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 61.554493,41.021792 C 62.030737,45.307987 62.745103,55.309110 70.603127,55.547232 C 77.389603,57.095025 90.605372,50.903854 80.128005,51.141976 C 72.627163,50.308549 70.841249,47.689208 68.698151,40.783670 C 67.983785,30.782548 68.221907,39.593061 68.221907,39.593061 L 61.554493,41.021792 z "
+ id="path1619"
+ sodipodi:nodetypes="cccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#0e5ca4;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2207);stroke-width:2.8750000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 18.125000,83.750000 C 15.781250,74.687500 55.937499,78.593750 65.156250,78.593750 C 78.125000,78.906250 82.031249,57.656250 89.843750,57.500000 C 94.531250,57.656250 104.59597,56.966529 109.75222,56.966529 C 108.17076,66.501032 108.33487,74.284818 109.68750,84.218750 C 92.500002,87.968750 42.343750,83.593750 18.125000,83.750000 z "
+ id="path2206"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="fill:#aaaaaa;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.95000046;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 30.241456,38.045267 C 29.288968,47.927329 28.336481,47.927329 26.431505,49.951366 C 25.479017,48.403573 24.407468,48.403573 23.097797,49.951366 C 21.669066,48.284512 21.779994,46.597620 20.172530,47.349456 C 21.072561,50.995102 20.280329,54.730317 22.014628,58.317134 C 28.786566,56.578346 35.306033,59.977218 53.934591,56.542597 C 58.339847,54.756683 47.386237,41.855219 46.314688,42.212402 C 45.243139,42.569585 33.337041,44.355500 30.241456,38.045267 z "
+ id="path2245"
+ sodipodi:nodetypes="cccccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffc800;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 32.136364,51.487233 C 28.207348,51.844415 27.753870,54.946654 28.230114,57.565995 C 30.023765,56.968112 32.078234,57.581448 34.761364,57.362233 L 34.761364,51.987233 C 34.066700,51.633088 33.237515,51.349589 32.136364,51.487233 z "
+ id="path2261"
+ sodipodi:nodetypes="ccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffc800;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 35.470071,51.606294 C 31.541055,51.963476 31.087577,55.065715 31.563821,57.685056 C 33.357472,57.087173 35.411941,57.700509 38.095071,57.481294 L 38.095071,52.106294 C 37.400407,51.752149 36.571222,51.468650 35.470071,51.606294 z "
+ id="path2260"
+ sodipodi:nodetypes="ccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffc800;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 38.208474,51.606294 C 34.279458,51.963476 33.825980,56.018203 34.302224,58.637544 C 36.095875,58.039661 38.150344,57.700509 40.833474,57.481294 L 40.833474,52.106294 C 40.138810,51.752149 39.309625,51.468650 38.208474,51.606294 z "
+ id="path2259"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffc800;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 41.184999,51.606294 C 37.255983,51.963476 36.802505,56.018203 37.278749,58.637544 C 39.072400,58.039661 41.126869,57.700509 43.809999,57.481294 L 43.809999,52.106294 C 43.115335,51.752149 42.286150,51.468650 41.184999,51.606294 z "
+ id="path2258"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffc800;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 44.280584,51.487233 C 40.351568,51.844415 39.898090,55.899142 40.374334,58.518483 C 42.167985,57.920600 44.222454,57.581448 46.905584,57.362233 L 46.905584,51.987233 C 46.210920,51.633088 45.381735,51.349589 44.280584,51.487233 z "
+ id="path2249"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffc800;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 61.911677,45.307988 C 61.375902,44.415030 61.765709,44.034840 61.733085,42.658881 C 58.268663,42.540664 58.280316,48.344042 58.697030,52.570707 C 56.077688,52.808829 55.363323,52.570707 54.291774,52.689768 C 53.220225,52.808829 52.029615,50.546671 49.172152,50.903854 C 45.243139,51.261036 44.766896,55.309110 45.243140,57.928451 C 49.172151,56.618781 53.577408,56.380658 65.721628,56.499719 C 56.672994,50.070426 60.721067,44.593622 61.911677,45.307988 z "
+ id="path2248"
+ sodipodi:nodetypes="cccccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.75000042;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 38.862811,5.8564233 C 40.714965,6.4457451 43.778156,8.4025157 47.566654,3.8563191 C 48.661109,3.2669973 49.839752,5.5400956 51.186773,5.7926621 C 48.745297,8.2341380 48.324354,12.527769 45.461933,12.527768 C 42.431136,13.032901 41.841814,10.423048 37.295617,10.423047 C 36.958861,9.9179145 36.673901,6.3615563 38.862811,5.8564233 z "
+ id="path2273"
+ sodipodi:nodetypes="cccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.45000023;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 37.884939,9.1602151 C 38.726827,8.5708933 41.168303,9.1602151 42.094380,9.9179146 C 43.020458,10.675614 47.314087,4.3614521 49.166242,4.8665850 C 50.850018,6.0452286 51.439340,5.5400956 50.765829,6.4661727 C 50.092319,7.3922498 47.903409,12.696146 45.798689,12.611957 C 43.693968,12.527768 38.474261,9.9179146 37.463995,10.338859 C 36.453729,10.759803 37.884939,9.1602151 37.884939,9.1602151 z "
+ id="path2274"
+ sodipodi:nodetypes="ccccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:url(#linearGradient2270);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.90000045;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 40.480700,28.282268 C 35.837322,26.139170 26.550566,13.399645 37.146993,10.304059 C 42.504737,10.423120 41.314127,13.042462 44.409712,12.447157 C 47.505298,11.851852 49.886518,4.3510105 53.339286,4.9463154 C 55.601444,7.0894130 55.958628,15.423681 53.101164,18.757389 C 50.005579,19.709877 46.195627,19.471755 40.480700,28.282268 z "
+ id="path2262"
+ sodipodi:nodetypes="cccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.2500006;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 42.346947,9.9179146 C 41.926003,10.338859 41.505058,10.759803 41.589247,11.180747 C 42.431136,11.601691 43.273024,12.443579 44.788422,12.527769 C 45.967067,11.517503 46.135443,8.4867045 45.377745,8.3183268 C 44.367479,7.8973828 43.020457,9.0760263 42.346947,9.9179146 z "
+ id="path2275"
+ sodipodi:nodetypes="ccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 41.195066,29.115694 C 40.123518,29.472877 34.765774,29.591938 35.242017,36.140292 C 35.718261,42.688646 40.718822,50.427609 48.100603,50.903853 C 49.291213,51.022914 58.339847,48.165450 55.958627,36.973718 C 52.267738,26.734474 46.314688,28.520389 41.195066,29.115694 z "
+ id="path2276"
+ sodipodi:nodetypes="ccccc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 20.025215,48.192533 C 20.739581,49.025960 19.406907,55.190048 26.193383,50.189487"
+ id="path2278"
+ sodipodi:nodetypes="cc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 24.185500,48.718875 C 24.304561,49.552301 24.764651,51.141975 26.431505,49.832305"
+ id="path2279"
+ sodipodi:nodetypes="cc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 53.815530,22.448279 C 57.625482,22.686401 60.482945,27.925084 61.554494,41.736158"
+ id="path2280"
+ sodipodi:nodetypes="cc"
+ transform="translate(-4.687500,23.28125)" />
+ <path
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.85000044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;"
+ d="M 36.908871,25.662926 C 35.480139,28.401329 33.932347,29.710999 35.122956,36.140292"
+ id="path2281"
+ sodipodi:nodetypes="cc"
+ transform="translate(-4.687500,23.28125)" />
+</svg>
diff --git a/extra/rrdtool/PKGBUILD b/extra/rrdtool/PKGBUILD
new file mode 100644
index 000000000..7f4416ccd
--- /dev/null
+++ b/extra/rrdtool/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 104670 2011-01-04 18:37:53Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=rrdtool
+pkgver=1.4.5
+pkgrel=1
+pkgdesc="Data logging and graphing application"
+arch=('i686' 'x86_64')
+url="http://www.rrdtool.org"
+license=('GPL' 'custom')
+depends=('libpng' 'libxml2' 'pango' 'tcp_wrappers')
+makedepends=('intltool' 'ruby' 'python2' 'tcl' 'lua')
+optdepends=('tcl: to use corresponding binding' \
+ 'python2: to use corresponding binding' \
+ 'ruby: to use corresponding binding' \
+ 'lua: to use corresponding binding')
+options=('!libtool' '!emptydirs' '!makeflags')
+source=(http://oss.oetiker.ch/rrdtool/pub/rrdtool-${pkgver}.tar.gz)
+md5sums=('4d116dba9a0888d8aaac179e35d3980a')
+sha1sums=('56638e8aedd5d5522152e86746e382b75dc48c35')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --localstatedir=/var --disable-rpath \
+ --enable-perl --enable-perl-site-install --with-perl-options='INSTALLDIRS=vendor' \
+ --enable-ruby --enable-ruby-site-install --enable-python \
+ --enable-lua --enable-lua-site-install --enable-tcl
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/rssh/PKGBUILD b/extra/rssh/PKGBUILD
new file mode 100644
index 000000000..131c0ed16
--- /dev/null
+++ b/extra/rssh/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 100737 2010-11-25 18:27:36Z bisson $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=rssh
+pkgver=2.3.3
+pkgrel=2
+pkgdesc='A restricted shell for use with OpenSSH, allowing only scp and/or sftp'
+arch=('i686' 'x86_64')
+url='http://www.pizzashack.org/rssh/'
+depends=('openssh' 'glibc')
+backup=('etc/rssh.conf')
+license=('custom:rssh')
+source=("http://downloads.sourceforge.net/sourceforge/rssh/rssh-$pkgver.tar.gz"
+ 'destdir.patch'
+ 'rsync.patch')
+sha1sums=('0a6dd80b5e6059e0db12c9f1276121dd966b610a'
+ '85bd1694decae5872cbeeafd578b147eb13313c6'
+ '41f32f8a77b3a2b924ede6044ab67846e06b5d20')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ patch -p1 < ../destdir.patch
+ patch -p1 < ../rsync.patch # FS#21783, debian patch
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib/rssh \
+ --mandir=/usr/share/man --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/rssh/LICENSE
+}
diff --git a/extra/rssh/destdir.patch b/extra/rssh/destdir.patch
new file mode 100644
index 000000000..90fa03e6d
--- /dev/null
+++ b/extra/rssh/destdir.patch
@@ -0,0 +1,24 @@
+diff -aur old//Makefile.am new//Makefile.am
+--- old//Makefile.am 2006-12-21 23:22:37.000000000 +0100
++++ new//Makefile.am 2010-11-25 18:15:29.253376150 +0100
+@@ -16,7 +16,7 @@
+ $(CC) -c $(DEFS) $(ourdefs) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $<
+
+ install-exec-hook:
+- chmod u+s $(libexecdir)/rssh_chroot_helper
++ chmod u+s $(DESTDIR)$(libexecdir)/rssh_chroot_helper
+
+ rpm: dist
+ rpmbuild -ta --sign $(base).tar.gz
+diff -aur old//Makefile.in new//Makefile.in
+--- old//Makefile.in 2010-08-01 15:59:54.000000000 +0200
++++ new//Makefile.in 2010-11-25 18:15:29.253376150 +0100
+@@ -830,7 +830,7 @@
+ $(CC) -c $(DEFS) $(ourdefs) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $<
+
+ install-exec-hook:
+- chmod u+s $(libexecdir)/rssh_chroot_helper
++ chmod u+s $(DESTDIR)$(libexecdir)/rssh_chroot_helper
+
+ rpm: dist
+ rpmbuild -ta --sign $(base).tar.gz
diff --git a/extra/rssh/rsync.patch b/extra/rssh/rsync.patch
new file mode 100644
index 000000000..cafd6c54b
--- /dev/null
+++ b/extra/rssh/rsync.patch
@@ -0,0 +1,57 @@
+diff -aur old//util.c new//util.c
+--- old//util.c 2010-08-01 15:07:00.000000000 +0200
++++ new//util.c 2010-11-25 18:16:24.086709600 +0100
+@@ -56,6 +56,7 @@
+ #ifdef HAVE_LIBGEN_H
+ #include <libgen.h>
+ #endif /* HAVE_LIBGEN_H */
++#include <regex.h>
+
+ /* LOCAL INCLUDES */
+ #include "pathnames.h"
+@@ -187,6 +188,33 @@
+ }
+
+ /*
++ * check_rsync_e() - take the command line passed to rssh and look for a -e
++ * option. If one is found, make sure --server is provided
++ * and the option contains only the protocol information.
++ * Returns 1 if the command line is safe; 0 otherwise.
++ */
++static int check_rsync_e( char *cl )
++{
++ int status;
++ regex_t re;
++
++ /*
++ * This is more complicated than it looks because we don't want to
++ * trigger on the e in --server, but we do want to catch the common
++ * case of -ltpre.iL (which contains -e.).
++ */
++ static const char pattern[] = "[ \t\v\f]-([^-][^ ]*)?e[^.0-9]";
++
++ if ( strstr(cl, "--server") == NULL ) return 0;
++ if ( regcomp(&re, pattern, REG_EXTENDED | REG_NOSUB) != 0 ){
++ return 0;
++ }
++ status = regexec(&re, cl, 0, NULL, 0);
++ regfree(&re);
++ return (status == 0) ? 0 : 1;
++}
++
++/*
+ * check_command_line() - take the command line passed to rssh, and verify
+ * that the specified command is one the user is
+ * allowed to run. Return the path of the command
+@@ -230,9 +258,9 @@
+
+ if ( check_command(cl, opts, PATH_RSYNC, RSSH_ALLOW_RSYNC) ){
+ /* filter -e option */
+- if ( opt_exist(cl, 'e') ){
++ if ( opt_exist(cl, 'e') && !check_rsync_e(cl) ){
+ fprintf(stderr, "\ninsecure -e option not allowed.");
+- log_msg("insecure -e option in rdist command line!");
++ log_msg("insecure -e option in rsync command line!");
+ return NULL;
+ }
+
diff --git a/extra/rsync/ChangeLog b/extra/rsync/ChangeLog
new file mode 100644
index 000000000..a1d6b4f9d
--- /dev/null
+++ b/extra/rsync/ChangeLog
@@ -0,0 +1,35 @@
+2010-01-01 Eric Belanger <eric@archlinux.org>
+
+ * rsync 3.0.7-1
+ * Upstream update
+
+2009-05-08 Eric Belanger <eric@archlinux.org>
+
+ * rsync 3.0.6-1
+ * Upstream update
+
+2008-12-29 Eric Belanger <eric@archlinux.org>
+
+ * rsync 3.0.5-1
+ * Upstream update
+
+2008-09-06 Eric Belanger <eric@archlinux.org>
+
+ * rsync 3.0.4-1
+ * Upstream update
+
+2008-07-05 Eric Belanger <eric@archlinux.org>
+
+ * rsync 3.0.3-1
+ * Upstream update
+
+2008-04-13 Eric Belanger <eric@archlinux.org>
+
+ * rsync 3.0.2-1
+ * Upstream update
+
+2008-03-01 Eric Belanger <eric@archlinux.org>
+
+ * rsync 3.0.0-1
+ * Upstream update
+ * Updated license
diff --git a/extra/rsync/PKGBUILD b/extra/rsync/PKGBUILD
new file mode 100644
index 000000000..9441a7322
--- /dev/null
+++ b/extra/rsync/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 107956 2011-01-28 05:41:54Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+pkgname=rsync
+pkgver=3.0.7
+pkgrel=2
+pkgdesc="A file transfer program to keep remote files in sync"
+arch=('i686' 'x86_64')
+url="http://samba.anu.edu.au/rsync/"
+license=('GPL3')
+depends=('acl')
+backup=('etc/rsyncd.conf' 'etc/xinetd.d/rsync')
+source=(http://rsync.samba.org/ftp/rsync/${pkgname}-${pkgver}.tar.gz \
+ rsyncd.conf rsyncd rsync.xinetd)
+md5sums=('b53525900817cf1ba7ad3a516ab5bfe9'
+ '4395c0591638349b1a7aeaaa4da1f03a'
+ '3d8f90ac8467ff6af28754584a61fd11'
+ 'ea3e9277dc908bc51f9eddc0f6b935c1')
+sha1sums=('63426a1bc71991d93159cd522521fbacdafb7a61'
+ '48be09294134dfed888818872fe552a59c29147a'
+ '357af5648eb4ecf84cc6b1de1cd79d21eca3a518'
+ 'fdb99785bc87ee13d77aa90dc1804f3f75dd7fc1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./prepare-source
+ ./configure --prefix=/usr --with-included-popt \
+ --enable-acl-support --enable-xattr-support
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm755 ../rsyncd ${pkgdir}/etc/rc.d/rsyncd
+ install -Dm644 ../rsyncd.conf ${pkgdir}/etc/rsyncd.conf
+ install -Dm644 ../rsync.xinetd ${pkgdir}/etc/xinetd.d/rsync
+}
+
diff --git a/extra/rsync/rsync.xinetd b/extra/rsync/rsync.xinetd
new file mode 100644
index 000000000..f5b6b1ed5
--- /dev/null
+++ b/extra/rsync/rsync.xinetd
@@ -0,0 +1,11 @@
+service rsync
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/bin/rsync
+ server_args = --daemon
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/extra/rsync/rsyncd b/extra/rsync/rsyncd
new file mode 100644
index 000000000..573130fb3
--- /dev/null
+++ b/extra/rsync/rsyncd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting rsyncd"
+ [ ! -f /var/run/daemons/rsyncd ] && /usr/bin/rsync --daemon
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ #pgrep -of "/usr/bin/rsync --daemon" > /var/run/rsyncd.pid # Removed FS#20942
+ add_daemon rsyncd
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping rsyncd"
+ [ -f /var/run/rsyncd.pid ] && kill `cat /var/run/rsyncd.pid`
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon rsyncd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/rsync/rsyncd.conf b/extra/rsync/rsyncd.conf
new file mode 100644
index 000000000..f7161f3f8
--- /dev/null
+++ b/extra/rsync/rsyncd.conf
@@ -0,0 +1,16 @@
+uid = nobody
+gid = nobody
+use chroot = no
+max connections = 4
+syslog facility = local5
+pid file = /var/run/rsyncd.pid
+
+[ftp]
+ path = /home/ftp
+ comment = ftp area
+
+#[cvs]
+# path = /data/cvs
+# comment = CVS repository (requires authentication)
+# auth users = tridge, susan
+# secrets file = /etc/rsyncd.secrets
diff --git a/extra/rtkit/PKGBUILD b/extra/rtkit/PKGBUILD
new file mode 100644
index 000000000..553c69d38
--- /dev/null
+++ b/extra/rtkit/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 111724 2011-02-28 21:05:00Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=rtkit
+pkgver=0.10
+pkgrel=1
+pkgdesc="Realtime Policy and Watchdog Daemon"
+arch=('i686' 'x86_64')
+url="http://git.0pointer.de/?p=rtkit.git"
+license=('GPL' 'custom:BSD')
+depends=('dbus' 'polkit')
+makedepends=('pkgconfig')
+install=rtkit.install
+source=(http://0pointer.de/public/$pkgname-$pkgver.tar.gz)
+md5sums=('9ab7f2a25ddf05584ea2216dfe4cefd4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --libexecdir=/usr/lib --prefix=/usr --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ # DBus configuration
+ mkdir -p "$pkgdir/usr/share/dbus-1/interfaces"
+ ./rtkit-daemon --introspect >"$pkgdir/usr/share/dbus-1/interfaces/org.freedesktop.RealtimeKit1.xml"
+
+ # Client license
+ mkdir -p "$pkgdir/usr/share/licenses/rtkit"
+ sed -ne '4,25p' rtkit.c >"$pkgdir/usr/share/licenses/rtkit/COPYING"
+}
diff --git a/extra/rtkit/rtkit.install b/extra/rtkit/rtkit.install
new file mode 100644
index 000000000..0ec1fab52
--- /dev/null
+++ b/extra/rtkit/rtkit.install
@@ -0,0 +1,26 @@
+post_install() {
+ getent group rtkit &>/dev/null || /usr/sbin/groupadd -g 133 rtkit || return 1
+ getent passwd rtkit &>/dev/null || /usr/sbin/useradd -u 133 -g rtkit -c 'RealtimeKit' -s /sbin/nologin -d /proc rtkit || return 1
+
+ dbus-send --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig >/dev/null 2>&1
+
+ true
+}
+
+post_upgrade() {
+ if (( $(vercmp $2 0.10) < 0 )); then
+ # Get rid of old user and group
+ post_remove
+ fi
+
+ post_install
+}
+
+post_remove() {
+ getent passwd rtkit &>/dev/null && /usr/sbin/userdel -f rtkit
+ getent group rtkit &>/dev/null && /usr/sbin/groupdel rtkit
+
+ true
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/rtmpdump/PKGBUILD b/extra/rtmpdump/PKGBUILD
new file mode 100644
index 000000000..6e7d26e4c
--- /dev/null
+++ b/extra/rtmpdump/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: xduugu
+# Contributor: Elis Hughes <elishughes@googlemail.com>
+pkgname=rtmpdump
+pkgver=2.3
+pkgrel=3
+pkgdesc="A tool to download rtmp streams"
+arch=('i686' 'x86_64')
+url="http://rtmpdump.mplayerhq.hu/"
+license=('LGPL')
+depends=('openssl')
+source=(http://rtmpdump.mplayerhq.hu/download/${pkgname}-${pkgver}.tgz)
+sha256sums=('ef38b7a99d82ce6912063d21063aeaf28185341b3df486e24bffce5354224b2c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/^install_so.0:.*/& install_base/' librtmp/Makefile
+ make prefix=/usr MANDIR="${pkgdir}/usr/share/man" DESTDIR="${pkgdir}" install
+}
diff --git a/extra/rubberband/PKGBUILD b/extra/rubberband/PKGBUILD
new file mode 100644
index 000000000..3566886e3
--- /dev/null
+++ b/extra/rubberband/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 86992 2010-08-08 20:57:26Z schiv $
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Felipe Machado aka arch_audio <machado.felipe@gmail.com>
+
+pkgname=rubberband
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="Time-stretching and pitch-shifting audio library and utility"
+arch=('i686' 'x86_64')
+url="http://www.breakfastquay.com/rubberband/"
+license=('GPL')
+depends=('libsamplerate' 'fftw' 'vamp-plugin-sdk')
+makedepends=('ladspa')
+source=(http://code.breakfastquay.com/attachments/download/1/$pkgname-$pkgver.tar.bz2)
+md5sums=('c5f288d644fcd46bd159e187bcc33f25')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/rubberband/rubberband.changelog b/extra/rubberband/rubberband.changelog
new file mode 100644
index 000000000..1d479b0f2
--- /dev/null
+++ b/extra/rubberband/rubberband.changelog
@@ -0,0 +1,11 @@
+9 Aug 2010 (GMT+8) Ray Rashif <schivmeister@gmail.com>
+
+ * 1.5.0-1 :
+ Brought into extra from community for ardour
+ - replaces soundtouch for enhanced functionality
+
+ * PKGBUILD :
+ Minor cosmetic ammendments.
+
+ * rubberband.changelog :
+ Added this changelog.
diff --git a/extra/ruby/PKGBUILD b/extra/ruby/PKGBUILD
new file mode 100644
index 000000000..09050b137
--- /dev/null
+++ b/extra/ruby/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 110397 2011-02-19 07:14:33Z eric $
+# 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.2_p180
+pkgrel=1
+pkgdesc="An object-oriented language for quick and easy programming"
+arch=('i686' 'x86_64')
+url="http://www.ruby-lang.org/en/"
+license=('custom')
+makedepends=('gdbm' 'db' 'openssl' 'zlib' 'readline' 'tk' 'libffi' 'doxygen'
+ 'graphviz')
+options=('!emptydirs')
+source=("ftp://ftp.ruby-lang.org/pub/ruby/1.9/${pkgbase}-${pkgver//_/-}.tar.bz2")
+md5sums=('68510eeb7511c403b91fe5476f250538')
+sha1sums=('10824b44c8060c7b9b5afc0b3519a1e9f02f7fe5')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-shared \
+ --enable-pthread \
+ --disable-rpath
+ make
+}
+
+package_ruby() {
+ depends=('gdbm' 'db' 'openssl' 'zlib' 'readline' 'libffi')
+ provides=('rubygems' 'rake')
+ conflicts=('rubygems' 'rake')
+ optdepends=('tk: for Ruby/TK')
+
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ make DESTDIR="${pkgdir}" install-nodoc
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
+
+package_ruby-docs() {
+ pkgdesc="Documentation files for ruby"
+ depends=('ruby')
+
+ cd "${srcdir}/${pkgbase}-${pkgver//_/-}"
+ make -j1 DESTDIR="${pkgdir}" install-doc install-capi
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/ruby-docs/LICENSE"
+}
diff --git a/extra/rxvt-unicode/PKGBUILD b/extra/rxvt-unicode/PKGBUILD
new file mode 100644
index 000000000..aed626312
--- /dev/null
+++ b/extra/rxvt-unicode/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 106127 2011-01-14 17:50:21Z angvp $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=rxvt-unicode
+pkgver=9.10
+pkgrel=1
+pkgdesc="An unicode enabled rxvt-clone terminal emulator (urxvt)"
+arch=(i686 x86_64)
+depends=('gcc-libs' 'libxft' 'gdk-pixbuf2')
+makedepends=('ncurses' 'perl>=5.12.2' 'pkgconfig')
+optdepends=('perl: lots of utilities' 'gtk2-perl: to use the urxvt-tabbed')
+url="http://software.schmorp.de/pkg/rxvt-unicode.html"
+license=("GPL")
+source=(http://dist.schmorp.de/rxvt-unicode/${pkgname}-${pkgver}.tar.bz2 \
+ ${pkgname}.desktop ${pkgname}.png popup-menu-hang.diff)
+md5sums=('a23aa40b31e843878b6f9c44768de430'
+ '5bfefa1b41c2b81ca18f2ef847330543'
+ '84328cada91751df07324d95f8be4d1b'
+ 'aead33ba3b08eeb251fb0c1427a4a024')
+sha1sums=('54c896a4885b8984b0dfa652269c3c34c4d75f2d'
+ '79b7cacb7d6ce4a34f8a31a2e33475a8f7bf69cb'
+ '9ff58d7b1d60838c51c9045bc0be342fac456790'
+ 'ec4013f4af3a45da928b75f40fbf6389070e7fdd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 < ../popup-menu-hang.diff
+ ./configure --prefix=/usr \
+ --with-terminfo=/usr/share/terminfo \
+ --enable-256-color \
+ --enable-font-styles \
+ --enable-xim \
+ --enable-keepscrolling \
+ --enable-selectionscrolling \
+ --enable-smart-resize \
+ --enable-pixbuf \
+ --enable-transparency \
+ --enable-utmp \
+ --enable-wtmp \
+ --enable-lastlog \
+ --disable-frills
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -d "${pkgdir}/usr/share/terminfo"
+ export TERMINFO="${pkgdir}/usr/share/terminfo"
+ make DESTDIR="${pkgdir}" install
+ # install the tabbing wrapper ( requires gtk2-perl! )
+ sed -i 's/\"rxvt\"/"urxvt"/' doc/rxvt-tabbed
+ install -Dm 755 doc/rxvt-tabbed "${pkgdir}/usr/bin/urxvt-tabbed"
+ # install freedesktop menu and icon ( icon from cvs checkout )
+ install -Dm644 ../${pkgname}.desktop \
+ "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+ install -Dm644 ../${pkgname}.png \
+ "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
+}
diff --git a/extra/rxvt-unicode/popup-menu-hang.diff b/extra/rxvt-unicode/popup-menu-hang.diff
new file mode 100644
index 000000000..09bb3c64b
--- /dev/null
+++ b/extra/rxvt-unicode/popup-menu-hang.diff
@@ -0,0 +1,24 @@
+Index: src/perl/urxvt-popup
+===================================================================
+RCS file: /schmorpforge/rxvt-unicode/src/perl/urxvt-popup,v
+retrieving revision 1.15
+diff -u -r1.15 urxvt-popup
+--- src/perl/urxvt-popup 24 Dec 2007 08:21:40 -0000 1.15
++++ src/perl/urxvt-popup 2 Aug 2009 08:22:52 -0000
+@@ -120,7 +120,7 @@
+ $self->refresh;
+
+ # might fail, but try anyways
+- $self->grab ($self->{data}{event}{time}, 1)
++ $self->grab ($self->{data}{event}{time})
+ and $self->allow_events_async;
+
+ on_button_press $self, $self->{data}{event} if $self->{data}{event}{button};
+@@ -132,7 +132,7 @@
+ my ($self, $event) = @_;
+
+ # should definitely not fail
+- $self->grab ($self->{data}{event}{time}, 1)
++ $self->grab ($self->{data}{event}{time})
+ and $self->allow_events_async;
+ }
diff --git a/extra/rxvt-unicode/rxvt-unicode.desktop b/extra/rxvt-unicode/rxvt-unicode.desktop
new file mode 100644
index 000000000..436e8d119
--- /dev/null
+++ b/extra/rxvt-unicode/rxvt-unicode.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Name=rxvt-unicode
+Comment=An Unicode capable rxvt clone
+Exec=urxvt
+Icon=rxvt-unicode
+Terminal=false
+Type=Application
+Categories=Application;System;TerminalEmulator;
diff --git a/extra/rxvt-unicode/rxvt-unicode.png b/extra/rxvt-unicode/rxvt-unicode.png
new file mode 100644
index 000000000..0738a7840
--- /dev/null
+++ b/extra/rxvt-unicode/rxvt-unicode.png
Binary files differ
diff --git a/extra/samba/PKGBUILD b/extra/samba/PKGBUILD
new file mode 100644
index 000000000..070c3f169
--- /dev/null
+++ b/extra/samba/PKGBUILD
@@ -0,0 +1,139 @@
+# $Id: PKGBUILD 116932 2011-03-26 14:54:05Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+pkgbase=samba
+pkgname=('smbclient' 'samba')
+pkgver=3.5.8
+# We use the 'A' to fake out pacman's version comparators. Samba chooses
+# to append 'a','b',etc to their subsequent releases, which pamcan
+# misconstrues as alpha, beta, etc. Bad samba!
+_realver=3.5.8
+pkgrel=2
+arch=(i686 x86_64)
+url="http://www.samba.org"
+license=('GPL3')
+makedepends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'fam' 'gnutls>=2.4.1' 'talloc' 'tdb')
+options=(!makeflags)
+source=(http://us1.samba.org/samba/ftp/stable/${pkgbase}-${_realver}.tar.gz
+ samba samba.logrotate
+ swat.xinetd
+ samba.pam
+ samba.conf.d
+ fix-ipv6-mount.patch)
+### UNINSTALL dmapi package before building!!!
+
+build() {
+ cd ${srcdir}/${pkgbase}-${_realver}/source3
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib/ \
+ --localstatedir=/var \
+ --with-configdir=/etc/samba \
+ --with-lockdir=/var/cache/samba \
+ --with-piddir=/var/run/samba \
+ --with-fhs \
+ --with-pam \
+ --with-pam_smbpass \
+ --with-pammodulesdir=/lib/security \
+ --with-ads \
+ --with-acl-support \
+ --with-cifsmount \
+ --with-libsmbclient \
+ --with-syslog \
+ --enable-external-libtalloc \
+ --disable-dnssd \
+ --disable-avahi \
+ --with-shared-modules=idmap_ad,idmap_adex,idmap_rid,idmap_hash \
+ --enable-external-libtdb
+ make || return 1
+}
+
+package_smbclient () {
+pkgdesc="Tools to access a server's filespace and printers via SMB"
+depends=('readline>=6.0.00' 'popt' 'libldap>=2.4.18-1' 'cifs-utils' 'libcap>=2.16' 'heimdal>=1.2-1' 'db>=4.7' 'e2fsprogs' 'tdb' 'talloc')
+ cd ${srcdir}/${pkgbase}-${_realver}/source3
+ mkdir -p ${pkgdir}/usr/bin ${pkgdir}/usr/lib
+ install -m755 bin/{smbclient,rpcclient,smbspool,smbtree,smbcacls,smbcquotas,smbget,net,nmblookup} ${pkgdir}/usr/bin/
+ for i in libnetapi* libwbclient* libsmbclient*;do
+ cp -a bin/${i}*.so* ${pkgdir}/usr/lib/
+ done
+ install -m755 script/smbtar ${pkgdir}/usr/bin/
+ mkdir -p ${pkgdir}/usr/lib/cups/backend
+ ln -sf /usr/bin/smbspool ${pkgdir}/usr/lib/cups/backend/smb
+ mkdir -p ${pkgdir}/usr/include
+ install -m644 include/libsmbclient.h ${pkgdir}/usr/include/
+ install -m644 lib/netapi/netapi.h ${pkgdir}/usr/include/
+ mkdir -p ${pkgdir}/usr/share/man/man{1,7}
+ for man in rpcclient smbcacls smbclient smbcquotas smbget \
+ smbtree smbtar nmblookup; do
+ install -m644 ../docs/manpages/${man}.1 ${pkgdir}/usr/share/man/man1/
+ done
+ install -m644 ../docs/manpages/libsmbclient.7 ${pkgdir}/usr/share/man/man7/
+}
+
+package_samba () {
+pkgdesc="Tools to access a server's filespace and printers via SMB"
+backup=(etc/logrotate.d/samba
+ etc/pam.d/samba
+ etc/samba/smb.conf
+ etc/xinetd.d/swat
+ etc/conf.d/samba)
+depends=('db>=4.7' 'popt' 'libcups' 'acl' 'libldap' "smbclient>=$pkgver" 'libcap>=2.16' 'heimdal>=1.2-1' 'pam' 'fam' 'gnutls>=2.4.1' 'e2fsprogs' 'tdb' 'talloc')
+ cd ${srcdir}/samba-${_realver}/source3
+ mkdir -p ${pkgdir}/var/log/samba
+ mkdir -p ${pkgdir}/etc/samba/private
+ chmod 700 ${pkgdir}/etc/samba/private
+ make DESTDIR=${pkgdir} install
+ chmod 644 ${pkgdir}/usr/include/*.h
+ rm -rf ${pkgdir}/usr/var
+ (cd script; cp installbin.sh i; cat i | sed 's/\/sbin\///' > installbin.sh)
+ install -D -m755 ../../samba ${pkgdir}/etc/rc.d/samba
+ install -D -m644 ../../samba.conf.d ${pkgdir}/etc/conf.d/samba
+ mkdir -p ${pkgdir}/etc/samba
+ cat ../examples/smb.conf.default | \
+ sed 's|log file = .*$|log file = /var/log/samba/log.%m|g' >${pkgdir}/etc/samba/smb.conf.default
+ install -D -m644 ../../samba.logrotate ${pkgdir}/etc/logrotate.d/samba
+ install -D -m644 ../../swat.xinetd ${pkgdir}/etc/xinetd.d/swat
+ install -D -m644 ../../samba.pam ${pkgdir}/etc/pam.d/samba
+ # spool directory
+ install -d -m1777 ${pkgdir}/var/spool/samba
+ sed -i 's|/usr/spool/samba|/var/spool/samba|g' ${pkgdir}/etc/samba/smb.conf.default
+ # fix logrotate
+ sed -i -e 's|log.%m|%m.log|g' ${pkgdir}/etc/samba/smb.conf.default
+ # nsswitch libraries
+ install -D -m755 ${srcdir}/samba-${_realver}/nsswitch/libnss_wins.so ${pkgdir}/lib/libnss_wins.so
+ ln -s libnss_wins.so ${pkgdir}/lib/libnss_wins.so.2
+ install -D -m755 ${srcdir}/samba-${_realver}/nsswitch/libnss_winbind.so ${pkgdir}/lib/libnss_winbind.so
+ # remove conflict files of smbclient
+ for man in libsmbclient smbspool \
+ mount.cifs net cifs.upcall; do
+ rm -f ${pkgdir}/usr/share/man/man8/${man}.8
+ done
+ for i in libnetapi* libwbclient* libsmbclient*;do
+ rm -f ${pkgdir}/usr/lib/$i
+ done
+ for bin in net \
+ nmblookup rpcclient smbcacls smbclient \
+ smbcquotas smbget smbspool smbtar smbtree; do
+ rm -f ${pkgdir}/usr/bin/$bin
+ done
+ rm -f ${pkgdir}/usr/sbin/cifs.upcall
+ rm -f ${pkgdir}/usr/include/netapi.h
+ for man in rpcclient smbcacls smbclient smbcquotas \
+ smbtree smbtar nmblookup smbget; do
+ rm -f ${pkgdir}/usr/share/man/man1/${man}.1
+ done
+ for man in tdbbackup tdbdump tdbtool; do
+ rm -f ${pkgdir}/usr/share/man/man8/${man}.8
+ done
+ rm -f ${pkgdir}/usr/share/man/man7/libsmbclient.7
+ rm -f ${pkgdir}/usr/include/libsmbclient.h
+ # copy ldap example
+ install -D -m644 ${srcdir}/samba-${_realver}/examples/LDAP/samba.schema ${pkgdir}/usr/share/doc/samba/examples/LDAP/samba.schema
+}
+md5sums=('355b4530c20997e94aebc74cd6ea5307'
+ '891b9be03e7adf65c9a00319c76d33e5'
+ '5697da77590ec092cc8a883bae06093c'
+ 'a4bbfa39fee95bba2e7ad6b535fae7e6'
+ '96f82c38f3f540b53f3e5144900acf17'
+ 'f2f2e348acd1ccb566e95fa8a561b828'
+ 'c6a38a8c8fa24979e6217aed533358ea')
diff --git a/extra/samba/fix-ipv6-mount.patch b/extra/samba/fix-ipv6-mount.patch
new file mode 100644
index 000000000..89bef6533
--- /dev/null
+++ b/extra/samba/fix-ipv6-mount.patch
@@ -0,0 +1,11 @@
+--- client/mount.cifs.c.orig 2010-03-03 13:42:02.143936727 +1000
++++ client/mount.cifs.c 2010-03-04 01:53:22.752879004 +1000
+@@ -1563,7 +1563,7 @@
+ }
+ }
+
+- if (addr->ai_addr->sa_family == AF_INET6 && addr6->sin6_scope_id) {
++ if (addr && addr->ai_addr->sa_family == AF_INET6 && addr6->sin6_scope_id) {
+ strlcat(options, "%", options_size);
+ current_len = strnlen(options, options_size);
+ optionstail = options + current_len;
diff --git a/extra/samba/samba b/extra/samba/samba
new file mode 100755
index 000000000..1b222d6cc
--- /dev/null
+++ b/extra/samba/samba
@@ -0,0 +1,54 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/samba ] && . /etc/conf.d/samba
+
+[ -z "$SAMBA_DAEMONS" ] && SAMBA_DAEMONS=(smbd nmbd)
+
+case "$1" in
+ start)
+ rc=0
+ stat_busy "Starting Samba Server"
+ if [ ! -x /var/run/samba ] ; then
+ install -m755 -g 81 -o 81 -d /var/run/samba
+ fi
+ for d in ${SAMBA_DAEMONS[@]}; do
+ PID=`pidof -o %PPID /usr/sbin/$d`
+ [ -z "$PID" ] && /usr/sbin/$d -D
+ rc=$(($rc+$?))
+ done
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon samba
+ stat_done
+ fi
+ ;;
+ stop)
+ rc=0
+ stat_busy "Stopping Samba Server"
+ for d in ${SAMBA_DAEMONS[@]}; do
+ PID=`pidof -o %PPID /usr/sbin/$d`
+ [ -z "$PID" ] || kill $PID &> /dev/null
+ rc=$(($rc+$?))
+ done
+ if [ $rc -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/samba/smbd.pid &>/dev/null
+ rm /var/run/samba/nmbd.pid &>/dev/null
+ rm /var/run/samba/winbindd.pid &>/dev/null
+ rm_daemon samba
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/samba/samba.conf.d b/extra/samba/samba.conf.d
new file mode 100644
index 000000000..8721f956a
--- /dev/null
+++ b/extra/samba/samba.conf.d
@@ -0,0 +1,7 @@
+#
+# Configuration for the samba init script
+#
+
+# space separated list of daemons to launch
+SAMBA_DAEMONS=(smbd nmbd)
+#SAMBA_DAEMONS=(smbd nmbd winbindd)
diff --git a/extra/samba/samba.logrotate b/extra/samba/samba.logrotate
new file mode 100644
index 000000000..581f4c33b
--- /dev/null
+++ b/extra/samba/samba.logrotate
@@ -0,0 +1,9 @@
+/var/log/samba/log.smbd /var/log/samba/log.nmbd /var/log/samba/*.log {
+ notifempty
+ missingok
+ sharedscripts
+ copytruncate
+ postrotate
+ /bin/kill -HUP `cat /var/run/samba/*.pid 2>/dev/null` 2>/dev/null || true
+ endscript
+}
diff --git a/extra/samba/samba.pam b/extra/samba/samba.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/extra/samba/samba.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/extra/samba/swat.xinetd b/extra/samba/swat.xinetd
new file mode 100644
index 000000000..2e62a82b2
--- /dev/null
+++ b/extra/samba/swat.xinetd
@@ -0,0 +1,10 @@
+service swat
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/swat
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/extra/sane-frontends/MissingCapsFlag.patch b/extra/sane-frontends/MissingCapsFlag.patch
new file mode 100644
index 000000000..4175a87f8
--- /dev/null
+++ b/extra/sane-frontends/MissingCapsFlag.patch
@@ -0,0 +1,12 @@
+--- src/gtkglue.c 2005-04-16 15:12:07.000000000 +0200
++++ src/gtkglue.c.new 2009-06-24 00:26:46.000000000 +0200
+@@ -1476,8 +1476,7 @@
+ || opt->type == SANE_TYPE_GROUP || !dialog->element[i].widget)
+ continue;
+
+- if (!(opt->cap & SANE_CAP_ALWAYS_SETTABLE))
+- gtk_widget_set_sensitive (dialog->element[i].widget, sensitive);
++ gtk_widget_set_sensitive (dialog->element[i].widget, sensitive);
+ }
+ }
+
diff --git a/extra/sane-frontends/PKGBUILD b/extra/sane-frontends/PKGBUILD
new file mode 100644
index 000000000..0389326dd
--- /dev/null
+++ b/extra/sane-frontends/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 64806 2010-01-22 08:53:01Z eric $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=sane-frontends
+pkgver=1.0.14
+pkgrel=5
+pkgdesc="A set of frontends for SANE."
+arch=(i686 x86_64)
+url="http://www.sane-project.org"
+license=('GPL')
+depends=('sane' 'gimp' 'libjpeg>=7')
+source=(ftp://ftp.sane-project.org/pub/sane/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz MissingCapsFlag.patch)
+md5sums=('c63bf7b0bb5f530cf3c08715db721cd3' '770f66e0534953f6129e1fc03d88ae01')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p0 < ../MissingCapsFlag.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/sane/PKGBUILD b/extra/sane/PKGBUILD
new file mode 100644
index 000000000..e5b28cdd7
--- /dev/null
+++ b/extra/sane/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 110715 2011-02-21 19:15:42Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributed by Sarah Hay <sarahhay@mb.sympatico.ca>, Tobias Powalowski <t.powa@gmx.de>, Simo L. <neotuli@yahoo.com>, eric <eric@archlinux.org>
+
+pkgname=sane
+pkgver=1.0.22
+pkgrel=1
+pkgdesc="Scanner Access Now Easy"
+url="http://www.sane-project.org"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libtiff>=3.9.2-2' 'libgphoto2>=2.4.7-2' 'libjpeg>=8' 'libieee1284' 'libusb-compat' 'v4l-utils' 'avahi' 'bash')
+makedepends=('texlive-latexextra')
+install=$pkgname.install
+backup=(etc/sane.d/{abaton.conf,agfafocus.conf,apple.conf,artec.conf,artec_eplus48u.conf,avision.conf,bh.conf,canon.conf,canon630u.conf,canon_dr.conf,canon_pp.conf,cardscan.conf,coolscan2.conf,coolscan3.conf,coolscan.conf,dc25.conf,dc210.conf,dc240.conf,dell1600n_net.conf,dll.conf,dmc.conf,epjitsu.conf,epson.conf,epson2.conf,fujitsu.conf,genesys.conf,gphoto2.conf,gt68xx.conf,hp.conf,hp3900.conf,hp4200.conf,hp5400.conf,hpsj5s.conf,hs2p.conf,ibm.conf,kodak.conf,leo.conf,lexmark.conf,ma1509.conf,magicolor.conf,matsushita.conf,microtek.conf,microtek2.conf,mustek.conf,mustek_pp.conf,mustek_usb.conf,nec.conf,net.conf,p5.conf,pie.conf,pixma.conf,plustek.conf,plustek_pp.conf,qcam.conf,ricoh.conf,rts8891.conf,s9036.conf,saned.conf,sceptre.conf,sharp.conf,sm3840.conf,snapscan.conf,sp15c.conf,st400.conf,stv680.conf,tamarack.conf,teco1.conf,teco2.conf,teco3.conf,test.conf,u12.conf,umax.conf,umax1220u.conf,umax_pp.conf,xerox_mfp.conf,v4l.conf} etc/xinetd.d/sane)
+source=(ftp://ftp2.sane-project.org/pub/sane/$pkgname-backends-$pkgver/$pkgname-backends-$pkgver.tar.gz
+ sane.xinetd)
+options=(!libtool)
+
+build() {
+ cd "${srcdir}/${pkgname}-backends-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --with-docdir=/usr/share/doc/sane --enable-avahi
+ make
+}
+
+package () {
+ cd "${srcdir}/${pkgname}-backends-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ # fix hp officejets
+ echo "#hpaio" >> "${pkgdir}/etc/sane.d/dll.conf"
+ # install udev files
+ install -D -m0644 tools/udev/libsane.rules \
+ "${pkgdir}/lib/udev/rules.d/53-sane.rules"
+ # fix udev rules
+ sed -i 's|NAME="%k", ||g' ${pkgdir}/lib/udev/rules.d/53-sane.rules
+ # fix group on /var/lock
+ mkdir -p "${pkgdir}/var/lock/sane"
+ chgrp 0 "${pkgdir}/var"
+ chmod 755 "${pkgdir}/var"
+ chmod 1777 "${pkgdir}/var/lock"
+ chgrp 0 "${pkgdir}/var/lock"
+ chmod 775 "${pkgdir}/var/lock/sane"
+ chgrp 96 "${pkgdir}/var/lock/sane"
+ # install xinetd file
+ install -D -m644 "${srcdir}/sane.xinetd" "${pkgdir}/etc/xinetd.d/sane"
+}
+md5sums=('fadf56a60f4776bfb24491f66b617cf5'
+ 'da946cc36fb83612162cf9505986d4b2')
diff --git a/extra/sane/sane.install b/extra/sane/sane.install
new file mode 100644
index 000000000..850bd3255
--- /dev/null
+++ b/extra/sane/sane.install
@@ -0,0 +1,14 @@
+# arg 1: the new package version
+post_install() {
+getent group scanner >/dev/null || usr/sbin/groupadd -g 96 scanner
+ /bin/cat <<THEEND
+NOTE
+----
+Add your user to group 'scanner' to use scanner devices.
+THEEND
+}
+
+# arg 1: the old package version
+pre_remove() {
+ usr/sbin/groupdel scanner &>/dev/null
+}
diff --git a/extra/sane/sane.xinetd b/extra/sane/sane.xinetd
new file mode 100644
index 000000000..b035664b4
--- /dev/null
+++ b/extra/sane/sane.xinetd
@@ -0,0 +1,11 @@
+service sane-port
+{
+ port = 6566
+ socket_type = stream
+ wait = no
+ user = root
+ group = scanner
+ server = /usr/sbin/saned
+ # disabled by default!
+ disable = yes
+ }
diff --git a/extra/sbcl/PKGBUILD b/extra/sbcl/PKGBUILD
new file mode 100644
index 000000000..c54bc6df9
--- /dev/null
+++ b/extra/sbcl/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 117231 2011-03-30 10:39:06Z 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.47
+pkgrel=1
+pkgdesc="Steel Bank Common Lisp"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('glibc')
+provides=('common-lisp' 'cl-asdf')
+makedepends=('sbcl' 'texinfo')
+source=("http://downloads.sourceforge.net/project/sbcl/sbcl/$pkgver/$pkgname-$pkgver-source.tar.bz2" "arch-fixes.lisp")
+md5sums=('2e90fca5ffec9ce19ed232b24f09cd0a'
+ '7ac0c1936547f4278198b8bf7725204d')
+url="http://www.sbcl.org/"
+install=sbcl.install
+
+build() {
+ export CFLAGS="${CFLAGS} -DSBCL_HOME=\\\"/usr/lib/sbcl\\\""
+ export GNUMAKE="make -e"
+
+ # build system uses LINKFLAGS and OS_LIBS to build LDFLAGS
+ export LINKFLAGS="$LD_FLAGS"
+ unset LDFLAGS
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ # Make a multi-threaded SBCL, disable LARGEFILE
+ cat >customize-target-features.lisp <<EOF
+(lambda (features)
+ (flet ((enable (x) (pushnew x features))
+ (disable (x) (setf features (remove x features))))
+ (enable :sb-thread)
+ (disable :largefile)))
+EOF
+
+ sh make.sh sbcl
+ mkdir -p ${startdir}/pkg/usr
+ pushd doc/manual
+ make info || return 1
+ popd
+ INSTALL_ROOT=${startdir}/pkg/usr sh install.sh
+
+ src/runtime/sbcl --core output/sbcl.core --script ${startdir}/src/arch-fixes.lisp
+ mv sbcl-new.core ${startdir}/pkg/usr/lib/sbcl/sbcl.core
+
+# sources
+ mkdir -p ${startdir}/pkg/usr/share/sbcl-source
+ cp -R -t ${startdir}/pkg/usr/share/sbcl-source \
+ ${startdir}/src/${pkgname}-${pkgver}/{src,contrib}
+
+# drop unwanted files
+ find ${startdir}/pkg/usr/share/sbcl-source -type f \
+ -name \*.fasl -or \
+ -name \*.o -or \
+ -name \*.log -or \
+ -name \*.so -or \
+ -name a.out -delete
+
+ rm ${startdir}/pkg/usr/share/sbcl-source/src/runtime/sbcl
+ rm ${startdir}/pkg/usr/share/sbcl-source/src/runtime/sbcl.nm
+
+ find ${startdir}/pkg \( -name Makefile -o -name .cvsignore \) -delete
+
+ rm $startdir/pkg/usr/share/info/dir
+ gzip -9nf $startdir/pkg/usr/share/info/*
+
+ # license
+ install -D -m644 ${startdir}/src/${pkgname}-${pkgver}/COPYING \
+ ${startdir}/pkg/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/extra/sbcl/arch-fixes.lisp b/extra/sbcl/arch-fixes.lisp
new file mode 100644
index 000000000..bdc631331
--- /dev/null
+++ b/extra/sbcl/arch-fixes.lisp
@@ -0,0 +1,21 @@
+(in-package "COMMON-LISP-USER")
+
+(let* ((parent (make-pathname :directory '(:absolute "usr" "share" "sbcl-source")))
+ (src
+ (merge-pathnames
+ (make-pathname :directory '(:relative "src" :wild-inferiors)
+ :name :wild :type :wild)
+ parent))
+ (contrib
+ (merge-pathnames
+ (make-pathname :directory '(:relative "contrib" :wild-inferiors)
+ :name :wild :type :wild)
+ parent)))
+ (setf (logical-pathname-translations "SYS")
+ `(("SYS:SRC;**;*.*.*" ,src)
+ ("SYS:CONTRIB;**;*.*.*" ,contrib))))
+
+(ignore-errors
+ (sb-ext:gc :full t)
+ (sb-ext:enable-debugger)
+ (sb-ext:save-lisp-and-die "sbcl-new.core"))
diff --git a/extra/sbcl/sbcl.install b/extra/sbcl/sbcl.install
new file mode 100644
index 000000000..83ee3c00c
--- /dev/null
+++ b/extra/sbcl/sbcl.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(asdf.info sbcl.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/extra/schedtool/PKGBUILD b/extra/schedtool/PKGBUILD
new file mode 100644
index 000000000..345c96ce6
--- /dev/null
+++ b/extra/schedtool/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 100636 2010-11-24 23:01:00Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: James Rayner <james@archlinux.org>
+
+pkgname=schedtool
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="Query or alter a process' scheduling policy"
+arch=('i686' 'x86_64')
+url="http://freequaos.host.sk/schedtool/"
+license=('GPL')
+depends=('glibc')
+source=(http://freequaos.host.sk/schedtool/$pkgname-$pkgver.tar.bz2)
+md5sums=('0d968f05d3ad7675f1f33ef1f6d0a3fb')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ install -dm755 "$pkgdir/usr"
+ make DESTPREFIX="$pkgdir/usr" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/schroedinger/PKGBUILD b/extra/schroedinger/PKGBUILD
new file mode 100644
index 000000000..22fc3e9b2
--- /dev/null
+++ b/extra/schroedinger/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 103964 2010-12-24 15:29:22Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+# Contributor: rabyte <rabyte__gmail>
+pkgname=schroedinger
+pkgver=1.0.10
+pkgrel=1
+pkgdesc="An implemenation of the Dirac video codec in ANSI C code"
+arch=('i686' 'x86_64')
+url="http://www.diracvideo.org/"
+license=('GPL2' 'LGPL2' 'MPL' 'MIT')
+depends=('orc>=0.4.11')
+options=(!libtool)
+source=(http://www.diracvideo.org/download/schroedinger/${pkgname}-${pkgver}.tar.gz)
+md5sums=('9de088ccc314bb9e766cb3aa6510a0ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+
+ make
+ make DESTDIR=${pkgdir} install
+
+ install -m644 -D COPYING.MIT ${pkgdir}/usr/share/licenses/${pkgname}/COPYING.MIT
+}
diff --git a/extra/scim-anthy/PKGBUILD b/extra/scim-anthy/PKGBUILD
new file mode 100644
index 000000000..ba47b28a5
--- /dev/null
+++ b/extra/scim-anthy/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 110875 2011-02-22 20:13:47Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-anthy
+pkgver=1.2.7
+pkgrel=2
+_filecode=37309
+pkgdesc='Japanese input method module for SCIM'
+arch=('i686' 'x86_64')
+url='http://sourceforge.jp/projects/scim-imengine/'
+license=('GPL')
+depends=('scim' 'anthy')
+options=('!libtool')
+source=("http://osdn.dl.sourceforge.jp/scim-imengine/${_filecode}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('1429cf202f5cdcfc4733220acbe27dd9edb75db8')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/scim-chewing/PKGBUILD b/extra/scim-chewing/PKGBUILD
new file mode 100644
index 000000000..d9e6451b5
--- /dev/null
+++ b/extra/scim-chewing/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 111539 2011-02-27 15:04:14Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: whisky <archlinux.cle(at)gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-chewing
+pkgver=0.3.4
+pkgrel=1
+pkgdesc='Traditional Chinese input method module for SCIM'
+arch=('i686' 'x86_64')
+url='http://chewing.csie.net/'
+license=('GPL')
+depends=('scim' 'libchewing')
+makedepends=('intltool')
+options=('!libtool')
+source=("http://chewing.csie.net/download/scim/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('f6c8d16f19f17449ee169f1ca787350353e93b05')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/scim-hangul/PKGBUILD b/extra/scim-hangul/PKGBUILD
new file mode 100644
index 000000000..ee612c62e
--- /dev/null
+++ b/extra/scim-hangul/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 111080 2011-02-23 22:13:26Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-hangul
+pkgver=0.3.2
+pkgrel=3
+pkgdesc='Korean input method module for SCIM'
+arch=('i686' 'x86_64')
+url='http://www.scim-im.org/'
+license=('GPL')
+depends=('libhangul' 'scim')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/scim/$pkgname-$pkgver.tar.gz"
+ 'gcc43.patch')
+sha1sums=('d1f4a2114d284c926d64fbfe8ea83307b8d8e2ec'
+ '956bb2b6bd75b3d2756895f8ade429f95bacc0ff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i ../gcc43.patch
+ ./bootstrap # skim complains; it's alright
+ ./configure --prefix=/usr --enable-skim-support
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/scim-hangul/gcc43.patch b/extra/scim-hangul/gcc43.patch
new file mode 100644
index 000000000..4d33471d9
--- /dev/null
+++ b/extra/scim-hangul/gcc43.patch
@@ -0,0 +1,22 @@
+diff -Naur scim-hangul-0.3.2-orig/src/scim_hangul_imengine.cpp scim-hangul-0.3.2/src/scim_hangul_imengine.cpp
+--- scim-hangul-0.3.2-orig/src/scim_hangul_imengine.cpp 2008-03-26 09:33:43.000000000 +0100
++++ scim-hangul-0.3.2/src/scim_hangul_imengine.cpp 2008-03-26 09:34:41.000000000 +0100
+@@ -33,6 +33,7 @@
+ #include <config.h>
+ #endif
+
++#include <cstring>
+ #include <scim.h>
+ #include "scim_hangul_imengine.h"
+
+diff -Naur scim-hangul-0.3.2-orig/src/scim_hangul_imengine_setup.cpp scim-hangul-0.3.2/src/scim_hangul_imengine_setup.cpp
+--- scim-hangul-0.3.2-orig/src/scim_hangul_imengine_setup.cpp 2008-03-26 09:33:43.000000000 +0100
++++ scim-hangul-0.3.2/src/scim_hangul_imengine_setup.cpp 2008-03-26 09:34:53.000000000 +0100
+@@ -34,6 +34,7 @@
+ #include <config.h>
+ #endif
+
++#include <cstring>
+ #include <scim.h>
+ #include <gtk/scimkeyselection.h>
+
diff --git a/extra/scim-m17n/PKGBUILD b/extra/scim-m17n/PKGBUILD
new file mode 100644
index 000000000..4fcb26155
--- /dev/null
+++ b/extra/scim-m17n/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 110890 2011-02-22 20:14:59Z bisson $
+# Contributor: Camille Moncelier <pix@devlife.org>
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-m17n
+pkgver=0.2.3
+pkgrel=3
+pkgdesc='Multilingual input method module for SCIM'
+arch=('i686' 'x86_64')
+url='http://www.scim-im.org/'
+license=('GPL')
+depends=('scim' 'm17n-lib')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/scim/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('96172846eaa211d2bde0f76184990d13e5ecdaea')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/scim-pinyin/PKGBUILD b/extra/scim-pinyin/PKGBUILD
new file mode 100644
index 000000000..3f8e1e149
--- /dev/null
+++ b/extra/scim-pinyin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 77980 2010-04-19 08:02:17Z allan $
+# Maintainer:
+# Contributer: Gan Lu <rhythm.gan@gmail.com>
+
+pkgname=scim-pinyin
+pkgver=0.5.91
+pkgrel=5
+pkgdesc="Chinese 拼音 (PinYin) input for SCIM"
+arch=('i686' 'x86_64')
+url="http://www.scim-im.org/"
+license=GPL
+depends=('scim>=1.4.7')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/scim/$pkgname-$pkgver.tar.gz
+ scim-pinyin-0.5.91-gcc43.patch)
+md5sums=('fb96d3545090d7681ea03edaced4eccb'
+ 'ef84582d9bac7ac250d2d64cf260ad39')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/scim-pinyin-0.5.91-gcc43.patch
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-static
+ make || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+
+
diff --git a/extra/scim-pinyin/scim-pinyin-0.5.91-cannot-build-against-scim-1.4.7 b/extra/scim-pinyin/scim-pinyin-0.5.91-cannot-build-against-scim-1.4.7
new file mode 100644
index 000000000..30a556acf
--- /dev/null
+++ b/extra/scim-pinyin/scim-pinyin-0.5.91-cannot-build-against-scim-1.4.7
@@ -0,0 +1,3 @@
+if /bin/sh ../libtool --silent --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I../src -I/opt/kde/include -I/opt/qt/include -I. -I/opt/kde/include/skim -I/usr/include/scim-1.0 -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -O2 -march=i686 -mtune=generic -O2 -pipe -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -MT smartpinyinui.lo -MD -MP -MF ".deps/smartpinyinui.Tpo" -c -o smartpinyinui.lo smartpinyinui.cpp; \
+ then mv -f ".deps/smartpinyinui.Tpo" ".deps/smartpinyinui.Plo"; else rm -f ".deps/smartpinyinui.Tpo"; exit 1; fi
+smartpinyinui.cpp:26:36: error: skimeditshortcutbutton.h: No such file or directory
diff --git a/extra/scim-pinyin/scim-pinyin-0.5.91-gcc43.patch b/extra/scim-pinyin/scim-pinyin-0.5.91-gcc43.patch
new file mode 100644
index 000000000..91a948d5d
--- /dev/null
+++ b/extra/scim-pinyin/scim-pinyin-0.5.91-gcc43.patch
@@ -0,0 +1,44 @@
+diff -up scim-pinyin-0.5.91/src/scim_phrase.cpp.gcc43 scim-pinyin-0.5.91/src/scim_phrase.cpp
+--- scim-pinyin-0.5.91/src/scim_phrase.cpp.gcc43 2008-02-25 16:27:05.000000000 +0800
++++ scim-pinyin-0.5.91/src/scim_phrase.cpp 2008-02-25 16:26:41.000000000 +0800
+@@ -28,6 +28,7 @@
+ #define SCIM_PHRASE_MAX_RELATION 1000
+
+ #include <scim.h>
++#include <cstring>
+ #include "scim_pinyin_private.h"
+ #include "scim_phrase.h"
+
+diff -up scim-pinyin-0.5.91/src/scim_special_table.cpp.gcc43 scim-pinyin-0.5.91/src/scim_special_table.cpp
+--- scim-pinyin-0.5.91/src/scim_special_table.cpp.gcc43 2008-02-25 16:27:55.000000000 +0800
++++ scim-pinyin-0.5.91/src/scim_special_table.cpp 2008-02-25 16:28:08.000000000 +0800
+@@ -22,6 +22,7 @@
+
+ #include <time.h>
+ #include <scim.h>
++#include <cstring>
+ #include "scim_pinyin_private.h"
+ #include "scim_special_table.h"
+
+diff -up scim-pinyin-0.5.91/src/scim_pinyin.cpp.gcc43 scim-pinyin-0.5.91/src/scim_pinyin.cpp
+--- scim-pinyin-0.5.91/src/scim_pinyin.cpp.gcc43 2008-02-25 16:26:10.000000000 +0800
++++ scim-pinyin-0.5.91/src/scim_pinyin.cpp 2008-02-25 16:26:26.000000000 +0800
+@@ -29,6 +29,7 @@
+ #define Uses_SCIM_LOOKUP_TABLE
+
+ #include <scim.h>
++#include <cstring>
+ #include "scim_pinyin.h"
+
+ // Internal functions
+diff -up scim-pinyin-0.5.91/src/scim_pinyin_phrase.cpp.gcc43 scim-pinyin-0.5.91/src/scim_pinyin_phrase.cpp
+--- scim-pinyin-0.5.91/src/scim_pinyin_phrase.cpp.gcc43 2008-02-25 16:27:15.000000000 +0800
++++ scim-pinyin-0.5.91/src/scim_pinyin_phrase.cpp 2008-02-25 16:27:28.000000000 +0800
+@@ -27,6 +27,7 @@
+ #define Uses_SCIM_LOOKUP_TABLE
+
+ #include <scim.h>
++#include <cstring>
+ #include "scim_pinyin_private.h"
+ #include "scim_phrase.h"
+ #include "scim_pinyin.h"
diff --git a/extra/scim-tables/PKGBUILD b/extra/scim-tables/PKGBUILD
new file mode 100644
index 000000000..fec4728e9
--- /dev/null
+++ b/extra/scim-tables/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 110895 2011-02-22 20:15:32Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Gan Lu <rhythm.gan@gmail.com>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=scim-tables
+pkgver=0.5.9
+pkgrel=2
+pkgdesc='Generic table input method module for SCIM'
+arch=('i686' 'x86_64')
+url='http://www.scim-im.org/'
+license=('GPL')
+depends=('scim')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/scim/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('aeca1c8a2eb10a214edc07fa248cd7450f78e387')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/scim-uim/PKGBUILD b/extra/scim-uim/PKGBUILD
new file mode 100644
index 000000000..b93293cf4
--- /dev/null
+++ b/extra/scim-uim/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 92903 2010-10-01 19:04:42Z bisson $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=scim-uim
+pkgver=0.2.0
+pkgrel=4
+pkgdesc='UIM bridging input engine for SCIM'
+arch=('i686' 'x86_64')
+url='http://www.scim-im.org/'
+license=('GPL')
+depends=('scim>=1.4.8' 'uim>=1.5.5')
+options=(!libtool)
+source=("http://downloads.sourceforge.net/sourceforge/scim/$pkgname-$pkgver.tar.gz"
+ 'scim-uim-0.2.0-fix-gcc43-build.patch'
+ 'uim-1.5.5-header.diff')
+sha1sums=('456621d5969b6552c3c33c83cf295aa4134fff0a'
+ 'a9d67946f956d0572c73065e2b4b268bfdf149e3'
+ '3b083260910f7855b5446960ab1203c052f4b56c')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ patch -p1 < ../scim-uim-0.2.0-fix-gcc43-build.patch
+ patch -p1 < ../uim-1.5.5-header.diff
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/scim-uim/scim-uim-0.2.0-fix-gcc43-build.patch b/extra/scim-uim/scim-uim-0.2.0-fix-gcc43-build.patch
new file mode 100644
index 000000000..d142fd7b7
--- /dev/null
+++ b/extra/scim-uim/scim-uim-0.2.0-fix-gcc43-build.patch
@@ -0,0 +1,10 @@
+--- scim-uim-0.2.0/src/scim_uim_imengine.cpp 2007-04-10 07:43:59.000000000 +0200
++++ scim-uim-0.2.0/src/scim_uim_imengine.cpp.gcc43buildfixed 2008-03-23 10:53:23.000000000 +0100
+@@ -32,6 +32,7 @@
+ #include <config.h>
+ #endif
+
++#include <string.h>
+ #include <scim.h>
+ #include "scim_uim_imengine.h"
+ #include <uim/uim-compat-scm.h>
diff --git a/extra/scim-uim/uim-1.5.5-header.diff b/extra/scim-uim/uim-1.5.5-header.diff
new file mode 100644
index 000000000..0e6565827
--- /dev/null
+++ b/extra/scim-uim/uim-1.5.5-header.diff
@@ -0,0 +1,13 @@
+--- scim-uim-0.2.0.orig/src/scim_uim_imengine.cpp
++++ scim-uim-0.2.0/src/scim_uim_imengine.cpp
+@@ -34,7 +34,8 @@
+
+ #include <scim.h>
+ #include "scim_uim_imengine.h"
+-#include <uim/uim-compat-scm.h>
++#include <uim/uim-scm.h>
++#include <uim/uim-util.h>
+
+ #define scim_module_init uim_LTX_scim_module_init
+ #define scim_module_exit uim_LTX_scim_module_exit
+
diff --git a/extra/scim/PKGBUILD b/extra/scim/PKGBUILD
new file mode 100644
index 000000000..7e7fb2457
--- /dev/null
+++ b/extra/scim/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 84723 2010-07-03 19:29:41Z ibiru $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Gan Lu <rhythm.gan@gmail.com>
+
+pkgname=scim
+pkgver=1.4.9
+pkgrel=2
+pkgdesc="A Input Method development platform"
+arch=("i686" "x86_64")
+url="http://www.scim-im.org/projects/scim"
+license=('GPL')
+depends=('gtk2' 'gcc-libs')
+makedepends=('intltool')
+backup=('etc/scim/config' 'etc/scim/global')
+options=('!libtool')
+install=scim.install
+source=(http://downloads.sourceforge.net/sourceforge/scim/$pkgname-$pkgver.tar.gz
+ gcc45.patch)
+md5sums=('975ba34b01304ea8166ac8ea27aa9e88'
+ '9d7b41421424cedcbc5740098afa4921')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/gcc45.patch
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-gnu-ld --with-x --disable-static
+ make
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/scim/gcc45.patch b/extra/scim/gcc45.patch
new file mode 100644
index 000000000..267a2bbf6
--- /dev/null
+++ b/extra/scim/gcc45.patch
@@ -0,0 +1,12 @@
+diff -Nur scim-1.4.9.orig//src/ltdl.cpp scim-1.4.9/src/ltdl.cpp
+--- scim-1.4.9.orig//src/ltdl.cpp 2008-11-02 01:42:40.000000000 -0500
++++ scim-1.4.9/src/ltdl.cpp 2010-07-04 00:19:58.924925581 -0500
+@@ -3361,7 +3361,7 @@
+ {
+ lt_dlhandle handle = 0;
+ char * tmp = 0;
+- char * ext = 0;
++ const char * ext = 0;
+ size_t len;
+ int errors = 0;
+
diff --git a/extra/scim/scim.install b/extra/scim/scim.install
new file mode 100644
index 000000000..1097ea400
--- /dev/null
+++ b/extra/scim/scim.install
@@ -0,0 +1,13 @@
+post_install() {
+ echo -n "updating gtk.immodules... "
+ /usr/bin/gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
+ echo "done."
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/screen/PKGBUILD b/extra/screen/PKGBUILD
new file mode 100644
index 000000000..0a1383e22
--- /dev/null
+++ b/extra/screen/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 114599 2011-03-14 13:43:00Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: dorphell <dorphell@gmx.net>
+
+pkgname=screen
+pkgver=4.0.3
+pkgrel=11
+_ptygroup=5 #the UID of our PTY/TTY group
+pkgdesc="Full-screen window manager that multiplexes a physical terminal"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/screen/"
+license=('GPL')
+depends=('ncurses' 'pam')
+backup=('etc/screenrc' 'etc/pam.d/screen')
+options=('!makeflags')
+install=screen.install
+source=(ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-${pkgver}.tar.gz
+ screen-4.0.3-long-term.patch
+ screen-4.0.3-caption-colors.patch
+ screen.pam)
+md5sums=('8506fd205028a96c741e4037de6e3c42'
+ '2723c3e71d5a2e5a74b6ddbc5215ef0f'
+ '191b6ced695ce2ae3a65bf02c2d4220f'
+ '74f7919d7b65436cc2ea5341fa8ca374')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i $srcdir/screen-4.0.3-long-term.patch
+ patch -Np2 -i $srcdir/screen-4.0.3-caption-colors.patch
+
+ ./configure --prefix=/usr --enable-pam \
+ --with-sys-screenrc=/etc/screenrc --enable-colors256 \
+ --enable-rxvt_osc --with-pty-group=$_ptygroup \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ install -Dm644 ${srcdir}/screen.pam ${pkgdir}/etc/pam.d/screen
+
+ install -Dm644 etc/completer.zsh ${pkgdir}/usr/share/zsh/site-functions/screen
+ install -Dm644 etc/etcscreenrc ${pkgdir}/etc/screenrc
+ install -Dm644 etc/screenrc ${pkgdir}/etc/skel/.screenrc
+}
diff --git a/extra/screen/screen-4.0.3-caption-colors.patch b/extra/screen/screen-4.0.3-caption-colors.patch
new file mode 100644
index 000000000..c92cb0c54
--- /dev/null
+++ b/extra/screen/screen-4.0.3-caption-colors.patch
@@ -0,0 +1,21 @@
+From e6a28cf8bfdac15faa6c267bf476ddcaddf48d67 Mon Sep 17 00:00:00 2001
+From: Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
+Date: Tue, 26 Jan 2010 20:17:26 +0000
+Subject: Accommodate more color changes in the caption.
+
+---
+diff --git a/src/screen.c b/src/screen.c
+index b1c3dfb..2cceae0 100644
+--- a/src/screen.c
++++ b/src/screen.c
+@@ -2204,7 +2204,7 @@ static const char months[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
+ #endif
+
+ static char winmsg_buf[MAXSTR];
+-#define MAX_WINMSG_REND 16 /* rendition changes */
++#define MAX_WINMSG_REND 256 /* rendition changes */
+ static int winmsg_rend[MAX_WINMSG_REND];
+ static int winmsg_rendpos[MAX_WINMSG_REND];
+ static int winmsg_numrend;
+--
+cgit v0.8.3.4
diff --git a/extra/screen/screen-4.0.3-long-term.patch b/extra/screen/screen-4.0.3-long-term.patch
new file mode 100644
index 000000000..3e66acda6
--- /dev/null
+++ b/extra/screen/screen-4.0.3-long-term.patch
@@ -0,0 +1,24 @@
+diff -Naur screen-4.0.3-orig//display.h screen-4.0.3/display.h
+--- screen-4.0.3-orig//display.h 2003-07-02 00:01:42.000000000 +1000
++++ screen-4.0.3/display.h 2010-12-03 20:19:23.826671689 +1000
+@@ -85,7 +85,7 @@
+ struct win *d_other; /* pointer to other window */
+ int d_nonblock; /* -1 don't block if obufmax reached */
+ /* >0: block after nonblock secs */
+- char d_termname[20 + 1]; /* $TERM */
++ char d_termname[40 + 1]; /* $TERM */
+ char *d_tentry; /* buffer for tgetstr */
+ char d_tcinited; /* termcap inited flag */
+ int d_width, d_height; /* width/height of the screen */
+diff -Naur screen-4.0.3-orig//screen.h screen-4.0.3/screen.h
+--- screen-4.0.3-orig//screen.h 2003-08-22 22:28:43.000000000 +1000
++++ screen-4.0.3/screen.h 2010-12-03 20:19:43.163338333 +1000
+@@ -202,7 +202,7 @@
+ char preselect[20];
+ int esc; /* his new escape character unless -1 */
+ int meta_esc; /* his new meta esc character unless -1 */
+- char envterm[20 + 1]; /* terminal type */
++ char envterm[40 + 1]; /* terminal type */
+ int encoding; /* encoding of display */
+ }
+ attach;
diff --git a/extra/screen/screen.install b/extra/screen/screen.install
new file mode 100644
index 000000000..9340e6067
--- /dev/null
+++ b/extra/screen/screen.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(screen.info screen.info-1 screen.info-2 screen.info-3 screen.info-4 screen.info-5)
+
+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/extra/screen/screen.pam b/extra/screen/screen.pam
new file mode 100644
index 000000000..07c42adb1
--- /dev/null
+++ b/extra/screen/screen.pam
@@ -0,0 +1 @@
+auth required pam_unix.so
diff --git a/extra/scribus/PKGBUILD b/extra/scribus/PKGBUILD
new file mode 100644
index 000000000..4e81935e3
--- /dev/null
+++ b/extra/scribus/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 102618 2010-12-08 18:20:12Z dgriffiths $
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=scribus
+pkgver=1.3.9
+pkgrel=1
+pkgdesc="A desktop publishing program"
+arch=('i686' 'x86_64')
+url="http://www.scribus.net"
+license=('GPL')
+install=scribus.install
+depends=('libcups>=1.3.11' 'lcms>=1.18' 'qt' 'ghostscript>=8.70' \
+ 'libart-lgpl>=2.3.20' 'python2' 'libxml2>=2.7.3' 'cairo' \
+ 'desktop-file-utils' 'shared-mime-info')
+makedepends=('cmake')
+options=(!libtool !makeflags)
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a54dbf2e10cd88d683d0d34565d29378')
+sha1sums=('86bc4db2d8fbb91fe94f8535327991e9128c5862')
+
+build() {
+ cd "${srcdir}"
+ sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' ${pkgname}-${pkgver}/scribus/plugins/scriptplugin/scripts/ColorChart.py
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DWANT_CAIRO=1 \
+ -DLIB_SUFFIX=""
+ make
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+
+ # fix icon path in .desktop file
+ sed -i 's|Icon=scribus|Icon=/usr/share/scribus/icons/scribus.png|' \
+ "${srcdir}/${pkgname}-${pkgver}/scribus.desktop"
+
+ install -Dm644 "${srcdir}/${pkgname}-${pkgver}/scribus.desktop" \
+ "${pkgdir}/usr/share/applications/scribus.desktop"
+}
diff --git a/extra/scribus/scribus.install b/extra/scribus/scribus.install
new file mode 100644
index 000000000..0598e46ed
--- /dev/null
+++ b/extra/scribus/scribus.install
@@ -0,0 +1,13 @@
+
+post_install() {
+ echo "update desktop mime database..."
+ update-mime-database usr/share/mime > /dev/null 2>&1
+ update-desktop-database -q > /dev/null 2>&1
+}
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/scrot/PKGBUILD b/extra/scrot/PKGBUILD
new file mode 100644
index 000000000..4d6921fda
--- /dev/null
+++ b/extra/scrot/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 71789 2010-03-09 16:23:42Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=scrot
+pkgver=0.8
+pkgrel=4
+pkgdesc="A simple command-line screenshot utility for X"
+arch=('i686' 'x86_64')
+url="http://scrot.sourcearchive.com/"
+license=('MIT')
+depends=('giblib')
+source=(ftp://ftp.archlinux.org/other/scrot/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('6a02df0e3bb26ec578dfeb8f56a7b30d')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir docsdir=/usr/share/doc/scrot install || return 1
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/scummvm/PKGBUILD b/extra/scummvm/PKGBUILD
new file mode 100644
index 000000000..061962a8e
--- /dev/null
+++ b/extra/scummvm/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 106447 2011-01-17 06:22:16Z angvp $
+# Maintainer: juergen <juergen@hoetzel.info>
+# Contributor: Manolis Tzanidakis, Petter Gundersen
+
+pkgname=scummvm
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="A 'virtual machine' for several classic graphical point-and-click adventure games."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.scummvm.org/"
+depends=('gcc-libs' 'alsa-lib' 'libmad' 'libvorbis' 'zlib' 'flac>=1.1.4' 'sdl' 'fluidsynth')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('b1d224d7640bc7fdccaca958164b31df')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --backend=sdl --disable-debug \
+ --with-mpeg2-prefix=/usr \
+ --with-flac-prefix=/usr \
+ --with-fluidsynth-prefix=/usr \
+ --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -Dm755 scummvm ${pkgdir}/usr/bin/scummvm
+ install -Dm644 dists/scummvm.6 ${pkgdir}/usr/share/man/man6/scummvm.6
+ # fixes FS#9118
+ install -Dm644 dists/${pkgname}.desktop \
+ ${pkgdir}/usr/share/applications/${pkgname}.desktop
+ install -Dm644 icons/scummvm.xpm \
+ ${pkgdir}/usr/share/pixmaps/scummvm.xpm
+
+ install -Dm644 gui/themes/scummmodern.zip ${pkgdir}/usr/share/scummvm/scummmodern.zip
+
+}
diff --git a/extra/sdl/PKGBUILD b/extra/sdl/PKGBUILD
new file mode 100644
index 000000000..46ed5bfdd
--- /dev/null
+++ b/extra/sdl/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 99967 2010-11-19 16:37:58Z heftig $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=sdl
+pkgver=1.2.14
+pkgrel=6
+pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard"
+arch=('i686' 'x86_64')
+url="http://www.libsdl.org"
+license=('LGPL')
+depends=('glibc' 'libxext' 'libxrender' 'libx11')
+makedepends=('alsa-lib' 'esound' 'mesa' 'libpulse')
+options=('!libtool')
+source=(http://www.libsdl.org/release/SDL-${pkgver}.tar.gz
+ sdl-1.2.14-joystick-crash.diff
+ sdl-1.2.14-fix-mouse-clicking.patch
+ sdl-1.2.14-fix-disappearing-cursor.patch)
+md5sums=('e52086d1b508fa0b76c52ee30b55bec4'
+ '9d8890b3817736a5d365f7497f096634'
+ '04d8c179f125e04bcd4c9d60e013c2d7'
+ 'a6cf3e71b653aa97d0d8ae6c0a789807')
+
+build() {
+ cd ${srcdir}/SDL-${pkgver}
+ patch -Np1 -i $srcdir/sdl-1.2.14-joystick-crash.diff
+ patch -Np1 -i $srcdir/sdl-1.2.14-fix-mouse-clicking.patch
+ patch -Np1 -i $srcdir/sdl-1.2.14-fix-disappearing-cursor.patch
+ ./configure --prefix=/usr --disable-nasm --enable-alsa --enable-esd \
+ --with-x --disable-rpath
+ make
+}
+
+package() {
+ cd ${srcdir}/SDL-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/sdl/sdl-1.2.14-fix-disappearing-cursor.patch b/extra/sdl/sdl-1.2.14-fix-disappearing-cursor.patch
new file mode 100644
index 000000000..fcd3c314d
--- /dev/null
+++ b/extra/sdl/sdl-1.2.14-fix-disappearing-cursor.patch
@@ -0,0 +1,17 @@
+Index: SDL-1.2.14/src/video/x11/SDL_x11events.c
+===================================================================
+--- SDL-1.2.14.orig/src/video/x11/SDL_x11events.c 2010-04-30 09:16:35.000000000 -0400
++++ SDL-1.2.14/src/video/x11/SDL_x11events.c 2010-04-30 09:16:35.000000000 -0400
+@@ -444,8 +444,10 @@
+ if ( xevent.xcrossing.mode == NotifyUngrab )
+ printf("Mode: NotifyUngrab\n");
+ #endif
+- if ( xevent.xcrossing.detail != NotifyInferior ) {
+- if ( this->input_grab == SDL_GRAB_OFF ) {
++ if ( (xevent.xcrossing.mode != NotifyGrab) &&
++ (xevent.xcrossing.mode != NotifyUngrab) &&
++ (xevent.xcrossing.detail != NotifyInferior) ) {
++ if ( this->input_grab == SDL_GRAB_OFF ) {
+ posted = SDL_PrivateAppActive(0, SDL_APPMOUSEFOCUS);
+ } else {
+ posted = SDL_PrivateMouseMotion(0, 0,
diff --git a/extra/sdl/sdl-1.2.14-fix-mouse-clicking.patch b/extra/sdl/sdl-1.2.14-fix-mouse-clicking.patch
new file mode 100644
index 000000000..7d3e5acfc
--- /dev/null
+++ b/extra/sdl/sdl-1.2.14-fix-mouse-clicking.patch
@@ -0,0 +1,23 @@
+--- SDL-1.2.14/src/video/x11/SDL_x11events.c.orig 2010-04-08 11:57:05.003169834 -0700
++++ SDL-1.2.14/src/video/x11/SDL_x11events.c 2010-04-08 12:33:51.690926340 -0700
+@@ -423,12 +423,15 @@
+ if ( xevent.xcrossing.mode == NotifyUngrab )
+ printf("Mode: NotifyUngrab\n");
+ #endif
+- if ( this->input_grab == SDL_GRAB_OFF ) {
+- posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++ if ( (xevent.xcrossing.mode != NotifyGrab) &&
++ (xevent.xcrossing.mode != NotifyUngrab) ) {
++ if ( this->input_grab == SDL_GRAB_OFF ) {
++ posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++ }
++ posted = SDL_PrivateMouseMotion(0, 0,
++ xevent.xcrossing.x,
++ xevent.xcrossing.y);
+ }
+- posted = SDL_PrivateMouseMotion(0, 0,
+- xevent.xcrossing.x,
+- xevent.xcrossing.y);
+ }
+ break;
+
diff --git a/extra/sdl/sdl-1.2.14-joystick-crash.diff b/extra/sdl/sdl-1.2.14-joystick-crash.diff
new file mode 100644
index 000000000..949e18b96
--- /dev/null
+++ b/extra/sdl/sdl-1.2.14-joystick-crash.diff
@@ -0,0 +1,14 @@
+Description: Fix crash with joystick detection.
+Index: libsdl1.2-1.2.14/src/joystick/linux/SDL_sysjoystick.c
+===================================================================
+--- libsdl1.2-1.2.14.orig/src/joystick/linux/SDL_sysjoystick.c 2010-01-12 12:37:36.000000000 -0500
++++ libsdl1.2-1.2.14/src/joystick/linux/SDL_sysjoystick.c 2010-01-12 12:38:27.000000000 -0500
+@@ -700,7 +700,7 @@
+ continue;
+ }
+ if ( test_bit(i, absbit) ) {
+- int values[5];
++ int values[6];
+
+ if ( ioctl(fd, EVIOCGABS(i), values) < 0 )
+ continue;
diff --git a/extra/sdl_gfx/PKGBUILD b/extra/sdl_gfx/PKGBUILD
new file mode 100644
index 000000000..393f04784
--- /dev/null
+++ b/extra/sdl_gfx/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 96464 2010-10-21 10:33:40Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_gfx
+pkgver=2.0.22
+pkgrel=1
+pkgdesc="SDL Graphic Primitives"
+arch=('i686' 'x86_64')
+license=('LGPL')
+options=(!libtool)
+url="http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx"
+source=(http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-${pkgver}.tar.gz)
+depends=('sdl')
+md5sums=('330f291f1f09a1bdf397c9b40d92ca41')
+
+build() {
+ cd ${srcdir}/SDL_gfx-${pkgver}
+
+ if [ "${CARCH}" == "x86_64" ]; then
+ ./configure --prefix=/usr --disable-mmx
+ else
+ ./configure --prefix=/usr
+ fi
+
+ make
+}
+
+package() {
+ cd ${srcdir}/SDL_gfx-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/sdl_image/PKGBUILD b/extra/sdl_image/PKGBUILD
new file mode 100644
index 000000000..3eb670bd6
--- /dev/null
+++ b/extra/sdl_image/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 64922 2010-01-23 10:17:20Z eric $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_image
+pkgver=1.2.10
+pkgrel=2
+pkgdesc="A simple library to load images of various formats as SDL surfaces"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('sdl>=1.2.13' 'libpng' 'libjpeg>=7' 'libtiff' 'zlib')
+options=('!libtool')
+url="http://www.libsdl.org/projects/SDL_image/"
+source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-${pkgver}.tar.gz)
+md5sums=('6c06584b31559e2b59f2b982d0d1f628')
+
+build() {
+ cd ${srcdir}/SDL_image-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/sdl_mixer/PKGBUILD b/extra/sdl_mixer/PKGBUILD
new file mode 100644
index 000000000..f241519be
--- /dev/null
+++ b/extra/sdl_mixer/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 70367 2010-02-26 13:24:25Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Lukas Sabota <punkrockguy318@cocmast.net> (Timidity Patch)
+
+pkgname=sdl_mixer
+pkgver=1.2.11
+pkgrel=2
+pkgdesc="A simple multi-channel audio mixer"
+arch=('i686' 'x86_64')
+url="http://www.libsdl.org/projects/SDL_mixer/"
+license=('LGPL' 'GPL')
+depends=('sdl>=1.2.12' 'libvorbis' 'libmikmod' 'smpeg')
+options=('!libtool')
+source=(http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-${pkgver}.tar.gz)
+md5sums=('65ada3d997fe85109191a5fb083f248c')
+
+build() {
+ cd ${srcdir}/SDL_mixer-${pkgver}
+
+ sed -e "/CONFIG_FILE_ETC/s/\/etc\/timidity.cfg/\/etc\/timidity++\/timidity.cfg/" \
+ -e "/DEFAULT_PATH/s/\/etc\/timidity/\/etc\/timidity++/" \
+ -e "/DEFAULT_PATH2/s/\/usr\/local\/lib\/timidity/\/usr\/lib\/timidity/" \
+ -i timidity/config.h
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/sdl_net/PKGBUILD b/extra/sdl_net/PKGBUILD
new file mode 100644
index 000000000..b26327678
--- /dev/null
+++ b/extra/sdl_net/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 51822 2009-09-12 07:01:31Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_net
+pkgver=1.2.7
+pkgrel=3
+pkgdesc="A small sample cross-platform networking library"
+arch=('i686' 'x86_64')
+url="http://www.libsdl.org/projects/SDL_net/"
+license=('GPL')
+depends=('sdl')
+options=('!libtool')
+source=(http://www.libsdl.org/projects/SDL_net/release/SDL_net-${pkgver}.tar.gz)
+md5sums=('6bd4662d1423810f3140d4da21b6d912')
+
+build() {
+ cd ${srcdir}/SDL_net-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/sdl_pango/PKGBUILD b/extra/sdl_pango/PKGBUILD
new file mode 100644
index 000000000..68b686aeb
--- /dev/null
+++ b/extra/sdl_pango/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 106434 2011-01-16 22:40:34Z andrea $
+# Maintainer: Allan McRae <allan@archlinux.com>
+# Contributor: gyo <nucleogeek@gmail.com>
+
+pkgname=sdl_pango
+pkgver=0.1.2
+pkgrel=3
+pkgdesc="Pango SDL binding"
+arch=('i686' 'x86_64')
+url="http://sdlpango.sourceforge.net/"
+license=('LGPL')
+depends=('pango' 'sdl')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/sdlpango/SDL_Pango-$pkgver.tar.gz
+ SDL_Pango-$pkgver-API-adds.patch
+ matrix_declarations.patch)
+md5sums=('85bbf9bb7b1cee0538154dadd045418c'
+ '5decf3d7eb724e27548af3142131a2f6'
+ '1067d401f4df54c7eb84ac3fd56ab76f')
+
+build() {
+ cd $srcdir/SDL_Pango-$pkgver
+ patch -Np0 -i $srcdir/SDL_Pango-$pkgver-API-adds.patch
+ patch -Np1 -i $srcdir/matrix_declarations.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd $srcdir/SDL_Pango-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/sdl_pango/SDL_Pango-0.1.2-API-adds.patch b/extra/sdl_pango/SDL_Pango-0.1.2-API-adds.patch
new file mode 100644
index 000000000..1535a5673
--- /dev/null
+++ b/extra/sdl_pango/SDL_Pango-0.1.2-API-adds.patch
@@ -0,0 +1,116 @@
+--- src/SDL_Pango.c 2004-12-10 10:06:33.000000000 +0100
++++ src/SDL_Pango.c 2006-09-24 22:46:24.000000000 +0200
+@@ -723,13 +723,8 @@
+ SDL_UnlockSurface(surface);
+ }
+
+-/*!
+- Create a context which contains Pango objects.
+-
+- @return A pointer to the context as a SDLPango_Context*.
+-*/
+ SDLPango_Context*
+-SDLPango_CreateContext()
++SDLPango_CreateContext_GivenFontDesc(const char* font_desc)
+ {
+ SDLPango_Context *context = g_malloc(sizeof(SDLPango_Context));
+ G_CONST_RETURN char *charset;
+@@ -743,8 +738,7 @@
+ pango_context_set_language (context->context, pango_language_from_string (charset));
+ pango_context_set_base_dir (context->context, PANGO_DIRECTION_LTR);
+
+- context->font_desc = pango_font_description_from_string(
+- MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
++ context->font_desc = pango_font_description_from_string(font_desc);
+
+ context->layout = pango_layout_new (context->context);
+
+@@ -762,6 +756,17 @@
+ }
+
+ /*!
++ Create a context which contains Pango objects.
++
++ @return A pointer to the context as a SDLPango_Context*.
++*/
++SDLPango_Context*
++SDLPango_CreateContext()
++{
++ SDLPango_CreateContext_GivenFontDesc(MAKE_FONT_NAME(DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));
++}
++
++/*!
+ Free a context.
+
+ @param *context [i/o] Context to be free
+@@ -1053,6 +1058,20 @@
+ pango_layout_set_font_description (context->layout, context->font_desc);
+ }
+
++void
++SDLPango_SetText_GivenAlignment(
++ SDLPango_Context *context,
++ const char *text,
++ int length,
++ SDLPango_Alignment alignment)
++{
++ pango_layout_set_attributes(context->layout, NULL);
++ pango_layout_set_text (context->layout, text, length);
++ pango_layout_set_auto_dir (context->layout, TRUE);
++ pango_layout_set_alignment (context->layout, alignment);
++ pango_layout_set_font_description (context->layout, context->font_desc);
++}
++
+ /*!
+ Set plain text to context.
+ Text must be utf-8.
+@@ -1067,11 +1086,7 @@
+ const char *text,
+ int length)
+ {
+- pango_layout_set_attributes(context->layout, NULL);
+- pango_layout_set_text (context->layout, text, length);
+- pango_layout_set_auto_dir (context->layout, TRUE);
+- pango_layout_set_alignment (context->layout, PANGO_ALIGN_LEFT);
+- pango_layout_set_font_description (context->layout, context->font_desc);
++ SDLPango_SetText_GivenAlignment(context, text, length, SDLPANGO_ALIGN_LEFT);
+ }
+
+ /*!
+--- src/SDL_Pango.h 2004-12-10 10:06:33.000000000 +0100
++++ src/SDL_Pango.h 2006-09-24 22:46:01.000000000 +0200
+@@ -109,12 +109,20 @@
+ SDLPANGO_DIRECTION_NEUTRAL /*! Neutral */
+ } SDLPango_Direction;
+
+-
++/*!
++ Specifies alignment of text. See Pango reference for detail
++*/
++typedef enum {
++ SDLPANGO_ALIGN_LEFT,
++ SDLPANGO_ALIGN_CENTER,
++ SDLPANGO_ALIGN_RIGHT
++} SDLPango_Alignment;
+
+ extern DECLSPEC int SDLCALL SDLPango_Init();
+
+ extern DECLSPEC int SDLCALL SDLPango_WasInit();
+
++extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext_GivenFontDesc(const char* font_desc);
+ extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext();
+
+ extern DECLSPEC void SDLCALL SDLPango_FreeContext(
+@@ -157,6 +165,12 @@
+ const char *markup,
+ int length);
+
++extern DECLSPEC void SDLCALL SDLPango_SetText_GivenAlignment(
++ SDLPango_Context *context,
++ const char *text,
++ int length,
++ SDLPango_Alignment alignment);
++
+ extern DECLSPEC void SDLCALL SDLPango_SetText(
+ SDLPango_Context *context,
+ const char *markup,
diff --git a/extra/sdl_pango/matrix_declarations.patch b/extra/sdl_pango/matrix_declarations.patch
new file mode 100644
index 000000000..c35d0a708
--- /dev/null
+++ b/extra/sdl_pango/matrix_declarations.patch
@@ -0,0 +1,131 @@
+Index: SDL_Pango-0.1.2/src/SDL_Pango.c
+===================================================================
+--- SDL_Pango-0.1.2.orig/src/SDL_Pango.c 2007-09-18 15:03:10.732910311 +0200
++++ SDL_Pango-0.1.2/src/SDL_Pango.c 2007-09-18 15:04:41.970109622 +0200
+@@ -286,6 +286,59 @@
+ } contextImpl;
+
+
++const SDLPango_Matrix _MATRIX_WHITE_BACK
++ = {255, 0, 0, 0,
++ 255, 0, 0, 0,
++ 255, 0, 0, 0,
++ 255, 255, 0, 0,};
++
++/*!
++ Specifies white back and black letter.
++*/
++const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK;
++
++const SDLPango_Matrix _MATRIX_BLACK_BACK
++ = {0, 255, 0, 0,
++ 0, 255, 0, 0,
++ 0, 255, 0, 0,
++ 255, 255, 0, 0,};
++/*!
++ Specifies black back and white letter.
++*/
++const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK;
++
++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER
++ = {0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 0, 0, 0,
++ 0, 255, 0, 0,};
++/*!
++ Specifies transparent back and black letter.
++*/
++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
++
++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER
++ = {255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 0, 255, 0, 0,};
++/*!
++ Specifies transparent back and white letter.
++*/
++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
++
++const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER
++ = {255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 255, 255, 0, 0,
++ 0, 0, 0, 0,};
++/*!
++ Specifies transparent back and transparent letter.
++ This is useful for KARAOKE like rendering.
++*/
++const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
++
++
+ /*!
+ Initialize the Glib and Pango API.
+ This must be called before using other functions in this library,
+Index: SDL_Pango-0.1.2/src/SDL_Pango.h
+===================================================================
+--- SDL_Pango-0.1.2.orig/src/SDL_Pango.h 2007-09-18 15:03:10.732910311 +0200
++++ SDL_Pango-0.1.2/src/SDL_Pango.h 2007-09-18 15:06:24.919976401 +0200
+@@ -47,57 +47,27 @@
+ Uint8 m[4][4]; /*! Matrix variables */
+ } SDLPango_Matrix;
+
+-const SDLPango_Matrix _MATRIX_WHITE_BACK
+- = {255, 0, 0, 0,
+- 255, 0, 0, 0,
+- 255, 0, 0, 0,
+- 255, 255, 0, 0,};
+-
+ /*!
+ Specifies white back and black letter.
+ */
+-const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK;
+-
+-const SDLPango_Matrix _MATRIX_BLACK_BACK
+- = {0, 255, 0, 0,
+- 0, 255, 0, 0,
+- 0, 255, 0, 0,
+- 255, 255, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_WHITE_BACK;
+ /*!
+ Specifies black back and white letter.
+ */
+-const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK;
+-
+-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER
+- = {0, 0, 0, 0,
+- 0, 0, 0, 0,
+- 0, 0, 0, 0,
+- 0, 255, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_BLACK_BACK;
+ /*!
+ Specifies transparent back and black letter.
+ */
+-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
+-
+-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER
+- = {255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 0, 255, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
+ /*!
+ Specifies transparent back and white letter.
+ */
+-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
+-
+-const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER
+- = {255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 255, 255, 0, 0,
+- 0, 0, 0, 0,};
++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
+ /*!
+ Specifies transparent back and transparent letter.
+ This is useful for KARAOKE like rendering.
+ */
+-const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
++extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
+
+ /*!
+ Specifies direction of text. See Pango reference for detail
diff --git a/extra/sdl_sound/PKGBUILD b/extra/sdl_sound/PKGBUILD
new file mode 100644
index 000000000..f452d63bf
--- /dev/null
+++ b/extra/sdl_sound/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 22260 2008-12-24 15:29:53Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_sound
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="A library to decode several popular sound file formats, such as .WAV and .MP3"
+arch=('i686' 'x86_64')
+url="http://icculus.org/SDL_sound/"
+license=('LGPL')
+depends=('sdl' 'libmikmod' 'libvorbis' 'flac' 'speex' 'smpeg')
+options=('!libtool')
+source=(http://icculus.org/SDL_sound/downloads/SDL_sound-$pkgver.tar.gz
+ flac.patch)
+md5sums=('aa09cd52df85d29bee87a664424c94b5'
+ '302aa9dc94cc71dd3339ca3177d36e1c')
+
+build() {
+ cd ${srcdir}/SDL_sound-${pkgver}
+
+ CFLAGS="$CFLAGS -I/usr/include/smpeg" \
+ CXXFLAGS="$CXXFLAGS -I/usr/include/smpeg" \
+ ./configure --prefix=/usr
+
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/extra/sdl_sound/flac.patch b/extra/sdl_sound/flac.patch
new file mode 100644
index 000000000..d0ed49194
--- /dev/null
+++ b/extra/sdl_sound/flac.patch
@@ -0,0 +1,126 @@
+diff -u -r SDL_sound-1.0.1/configure.in SDL_sound-1.0.1-flac/configure.in
+--- SDL_sound-1.0.1/configure.in 2003-10-12 20:49:54.000000000 +0200
++++ SDL_sound-1.0.1-flac/configure.in 2006-12-11 20:43:46.546583251 +0100
+@@ -155,9 +155,12 @@
+ dnl FLAC developers tend to break their API with every release, so we're
+ dnl checking for the latest-and-greatest here so we don't have to support
+ dnl obsolete versions.
++dnl Starting with FLAC 1.1.3:
++dnl libFLAC supports Ogg FLAC (no more libOggFLAC) so we also need -logg
++dnl the libFLAC .so version is also #defined in FLAC/export.h
+
+ dnl Hooray for shitty autoconf bugs!
+-x="C__seekable_stream_decoder_process_single"
++x="C__stream_decoder_process_single"
+ flcsym="FLA$x"
+ dnl Check for libFLAC
+ AC_ARG_ENABLE(flac,
+@@ -167,7 +170,7 @@
+ AC_CHECK_HEADER(FLAC/stream_decoder.h, have_flac_hdr=yes)
+ AC_CHECK_LIB(FLAC, $flcsym, have_flac_lib=yes)
+ if test x$have_flac_hdr = xyes -a x$have_flac_lib = xyes; then
+- LIBS="$LIBS -lFLAC"
++ LIBS="$LIBS -lFLAC -logg"
+ AC_DEFINE(SOUND_SUPPORTS_FLAC)
+ fi
+ fi
+diff -u -r SDL_sound-1.0.1/decoders/flac.c SDL_sound-1.0.1-flac/decoders/flac.c
+--- SDL_sound-1.0.1/decoders/flac.c 2003-03-10 23:44:14.000000000 +0100
++++ SDL_sound-1.0.1-flac/decoders/flac.c 2006-12-11 20:43:57.880097062 +0100
+@@ -44,6 +44,16 @@
+ #define __SDL_SOUND_INTERNAL__
+ #include "SDL_sound_internal.h"
+
++#include <FLAC/export.h>
++
++/* FLAC 1.1.3 has FLAC_API_VERSION_CURRENT == 8 */
++#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8
++#define LEGACY_FLAC
++#else
++#undef LEGACY_FLAC
++#endif
++
++#ifdef LEGACY_FLAC
+ #include <FLAC/seekable_stream_decoder.h>
+
+ #define D_END_OF_STREAM FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM
+@@ -80,6 +90,34 @@
+ typedef FLAC__SeekableStreamDecoderSeekStatus d_seek_status_t;
+ typedef FLAC__SeekableStreamDecoderTellStatus d_tell_status_t;
+ typedef FLAC__SeekableStreamDecoderLengthStatus d_length_status_t;
++#else
++#include <FLAC/stream_decoder.h>
++
++#define D_END_OF_STREAM FLAC__STREAM_DECODER_END_OF_STREAM
++
++#define d_new() FLAC__stream_decoder_new()
++#define d_process_metadata(x) FLAC__stream_decoder_process_until_end_of_metadata(x)
++#define d_process_one_frame(x) FLAC__stream_decoder_process_single(x)
++#define d_get_state(x) FLAC__stream_decoder_get_state(x)
++#define d_finish(x) FLAC__stream_decoder_finish(x)
++#define d_delete(x) FLAC__stream_decoder_delete(x)
++
++typedef FLAC__StreamDecoder decoder_t;
++typedef FLAC__StreamDecoderReadStatus d_read_status_t;
++
++#define D_SEEK_STATUS_OK FLAC__STREAM_DECODER_SEEK_STATUS_OK
++#define D_SEEK_STATUS_ERROR FLAC__STREAM_DECODER_SEEK_STATUS_ERROR
++#define D_TELL_STATUS_OK FLAC__STREAM_DECODER_TELL_STATUS_OK
++#define D_TELL_STATUS_ERROR FLAC__STREAM_DECODER_TELL_STATUS_ERROR
++#define D_LENGTH_STATUS_OK FLAC__STREAM_DECODER_LENGTH_STATUS_OK
++#define D_LENGTH_STATUS_ERROR FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR
++
++#define d_seek_absolute(x, y) FLAC__stream_decoder_seek_absolute(x, y)
++
++typedef FLAC__StreamDecoderSeekStatus d_seek_status_t;
++typedef FLAC__StreamDecoderTellStatus d_tell_status_t;
++typedef FLAC__StreamDecoderLengthStatus d_length_status_t;
++#endif
+
+ #define D_WRITE_CONTINUE FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE
+ #define D_READ_END_OF_STREAM FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM
+@@ -141,9 +179,15 @@
+ } /* free_flac */
+
+
++#ifdef LEGACY_FLAC
+ static d_read_status_t read_callback(
+ const decoder_t *decoder, FLAC__byte buffer[],
+ unsigned int *bytes, void *client_data)
++#else
++static d_read_status_t read_callback(
++ const decoder_t *decoder, FLAC__byte buffer[],
++ size_t *bytes, void *client_data)
++#endif
+ {
+ flac_t *f = (flac_t *) client_data;
+ Uint32 retval;
+@@ -400,6 +444,7 @@
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, 0);
+ } /* if */
+
++#ifdef LEGACY_FLAC
+ d_set_read_callback(decoder, read_callback);
+ d_set_write_callback(decoder, write_callback);
+ d_set_metadata_callback(decoder, metadata_callback);
+@@ -410,6 +455,7 @@
+ d_set_eof_callback(decoder, eof_callback);
+
+ d_set_client_data(decoder, f);
++#endif
+
+ f->rw = internal->rw;
+ f->sample = sample;
+@@ -418,7 +464,12 @@
+ f->is_flac = 0 /* !!! FIXME: should be "has_extension", not "0". */;
+
+ internal->decoder_private = f;
++ /* really should check the init return value here: */
++#ifdef LEGACY_FLAC
+ d_init(decoder);
++#else
++ FLAC__stream_decoder_init_stream(decoder, read_callback, seek_callback, tell_callback, length_callback, eof_callback, write_callback, metadata_callback, error_callback, f);
++#endif
+
+ sample->flags = SOUND_SAMPLEFLAG_NONE;
+
diff --git a/extra/sdl_ttf/PKGBUILD b/extra/sdl_ttf/PKGBUILD
new file mode 100644
index 000000000..56e56d9f0
--- /dev/null
+++ b/extra/sdl_ttf/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 85134 2010-07-09 10:09:49Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_ttf
+pkgver=2.0.10
+pkgrel=1
+pkgdesc="A library that allows you to use TrueType fonts in your SDL applications"
+arch=('i686' 'x86_64')
+license=('LGPL')
+url="http://www.libsdl.org/projects/SDL_ttf/"
+depends=('sdl>=1.2.12' 'freetype2')
+options=('!libtool')
+source=(http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-${pkgver}.tar.gz)
+md5sums=('814e6e17e8879254208d23b3b7e0354b')
+
+build() {
+ cd ${srcdir}/SDL_ttf-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/SDL_ttf-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/seahorse-plugins/PKGBUILD b/extra/seahorse-plugins/PKGBUILD
new file mode 100644
index 000000000..d081ed186
--- /dev/null
+++ b/extra/seahorse-plugins/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 112893 2011-03-07 15:53:09Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=seahorse-plugins
+pkgver=2.30.1
+pkgrel=3
+pkgdesc="Seahorse plugins"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('seahorse>=2.30.1' 'desktop-file-utils')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.0' 'pkgconfig' 'gedit>=2.30.2' 'nautilus>=2.30.1' 'gnome-panel-bonobo>=2.32.0')
+optdepends=('gnome-panel-bonobo: applet support')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+options=('!libtool' '!emptydirs')
+install=seahorse-plugins.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2
+ gpgme-init.patch
+ seahorse-plugins-2.30.1-libnotify-0.7.patch)
+sha256sums=('1fdfed1aef2c22a29a9abc00eae67752854e466a66cee2a8c1c278277e832d66'
+ '418d67892b348d02885e968c5299416baf545b12cf8f58b23579f79e87776ab2'
+ '9da8c5552217a56f4b7d12e28a425b3980b20953d8312c3017378e5a71536905')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/gpgme-init.patch"
+ patch -Np0 -i "${srcdir}/seahorse-plugins-2.30.1-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --disable-update-mime-database \
+ --disable-static
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain seahorse-plugins ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/seahorse-plugins/gpgme-init.patch b/extra/seahorse-plugins/gpgme-init.patch
new file mode 100644
index 000000000..7e2e94be2
--- /dev/null
+++ b/extra/seahorse-plugins/gpgme-init.patch
@@ -0,0 +1,43 @@
+diff -ruN seahorse-plugins-2.29.90.orig/agent/seahorse-agent-cache.c seahorse-plugins-2.29.90/agent/seahorse-agent-cache.c
+--- seahorse-plugins-2.29.90.orig/agent/seahorse-agent-cache.c 2010-01-25 03:06:50.000000000 +0100
++++ seahorse-plugins-2.29.90/agent/seahorse-agent-cache.c 2010-02-14 12:31:01.000000000 +0100
+@@ -236,6 +236,7 @@
+ if (g_cache == NULL) {
+ g_cache =
+ g_hash_table_new_full (g_str_hash, g_str_equal, NULL, destroy_cache_item);
++ gpgme_check_version (NULL);
+
+ err = gpgme_engine_check_version (proto);
+ g_return_if_fail (GPG_IS_OK (err));
+diff -ruN seahorse-plugins-2.29.90.orig/libseahorse/seahorse-pgp-operation.c seahorse-plugins-2.29.90/libseahorse/seahorse-pgp-operation.c
+--- seahorse-plugins-2.29.90.orig/libseahorse/seahorse-pgp-operation.c 2010-01-25 03:06:50.000000000 +0100
++++ seahorse-plugins-2.29.90/libseahorse/seahorse-pgp-operation.c 2010-02-14 12:31:25.000000000 +0100
+@@ -322,6 +322,8 @@
+ gpgme_protocol_t proto = GPGME_PROTOCOL_OpenPGP;
+ gpgme_error_t err;
+ gpgme_ctx_t ctx;
++
++ gpgme_check_version (NULL);
+
+ err = gpgme_engine_check_version (proto);
+ g_return_if_fail (GPG_IS_OK (err));
+diff -ruN seahorse-plugins-2.29.90.orig/plugins/nautilus/seahorse-tool.c seahorse-plugins-2.29.90/plugins/nautilus/seahorse-tool.c
+--- seahorse-plugins-2.29.90.orig/plugins/nautilus/seahorse-tool.c 2010-01-25 03:06:50.000000000 +0100
++++ seahorse-plugins-2.29.90/plugins/nautilus/seahorse-tool.c 2010-02-14 12:32:44.000000000 +0100
+@@ -171,6 +171,7 @@
+
+ if (recips) {
+
++ gpgme_check_version (NULL);
+ gerr = gpgme_new (&ctx);
+ g_return_val_if_fail (GPG_IS_OK (gerr), NULL);
+
+@@ -328,6 +329,8 @@
+ id = cryptui_keyset_key_raw_keyid (keyset, signer);
+ g_free (signer);
+
++ gpgme_check_version (NULL);
++
+ gerr = gpgme_new (&ctx);
+ g_return_val_if_fail (GPG_IS_OK (gerr), NULL);
+
diff --git a/extra/seahorse-plugins/seahorse-plugins-2.30.1-libnotify-0.7.patch b/extra/seahorse-plugins/seahorse-plugins-2.30.1-libnotify-0.7.patch
new file mode 100644
index 000000000..060340707
--- /dev/null
+++ b/extra/seahorse-plugins/seahorse-plugins-2.30.1-libnotify-0.7.patch
@@ -0,0 +1,26 @@
+--- libseahorse/seahorse-notification.c
++++ libseahorse/seahorse-notification.c
+@@ -34,6 +34,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ /* -----------------------------------------------------------------------------
+@@ -213,7 +216,12 @@
+ heading = format_key_text (snotif->heading);
+ message = format_key_text (snotif->message);
+
+- notif = notify_notification_new (heading, message, snotif->icon, attachto);
++ notif = notify_notification_new (heading, message, snotif->icon
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , attachto);
++#endif
+
+ g_free (heading);
+ g_free (message);
diff --git a/extra/seahorse-plugins/seahorse-plugins.install b/extra/seahorse-plugins/seahorse-plugins.install
new file mode 100644
index 000000000..3f36ff2a2
--- /dev/null
+++ b/extra/seahorse-plugins/seahorse-plugins.install
@@ -0,0 +1,26 @@
+pkgname=seahorse-plugins
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime >/dev/null 2>&1
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+}
diff --git a/extra/seahorse/PKGBUILD b/extra/seahorse/PKGBUILD
new file mode 100644
index 000000000..81ab87de5
--- /dev/null
+++ b/extra/seahorse/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 112875 2011-03-07 12:51:47Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Michel Brabants <michel.linux@tiscali.be>
+
+pkgname=seahorse
+pkgver=2.32.0
+pkgrel=2
+pkgdesc="GNOME application for managing PGP keys."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://projects.gnome.org/seahorse/"
+depends=('libgnome-keyring>=2.32.0' 'avahi>=0.6.27' 'libnotify>=0.7.1' 'libsoup>=2.32.0' 'gpgme>=1.2.0' 'desktop-file-utils' 'hicolor-icon-theme' 'gconf>=2.32.0' 'gnome-keyring')
+makedepends=('gettext' 'libldap' 'intltool' 'pkgconfig' 'gnome-doc-utils>=0.20.1' 'openssh' 'libsm')
+options=('!libtool' '!emptydirs')
+groups=('gnome-extra')
+install=seahorse.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/seahorse/2.32/seahorse-${pkgver}.tar.bz2
+ seahorse-2.32.0-libnotify-0.7.patch)
+sha256sums=('f55468237246a485317d59e2fbc1b1ef5f5bd4c5a7b9ff6f40c3d921af0ed52d'
+ '8f7b2fc0ad1cb572de3c31ed694e5131e8ec6373e9f3e202d98858a12902c467')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/seahorse-2.32.0-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-ldap --enable-hkp \
+ --enable-libnotify \
+ --disable-scrollkeeper --disable-update-mime-database
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain seahorse ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch b/extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch
new file mode 100644
index 000000000..1a6b478ac
--- /dev/null
+++ b/extra/seahorse/seahorse-2.32.0-libnotify-0.7.patch
@@ -0,0 +1,26 @@
+--- libseahorse/seahorse-notification.c
++++ libseahorse/seahorse-notification.c
+@@ -37,6 +37,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ /* -----------------------------------------------------------------------------
+@@ -231,7 +234,12 @@
+ heading = format_key_text (snotif->heading);
+ message = format_key_text (snotif->message);
+
+- notif = notify_notification_new (heading, message, snotif->icon, attachto);
++ notif = notify_notification_new (heading, message, snotif->icon
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ );
++#else
++ , attachto);
++#endif
+
+ g_free (heading);
+ g_free (message);
diff --git a/extra/seahorse/seahorse.install b/extra/seahorse/seahorse.install
new file mode 100644
index 000000000..97feac3b1
--- /dev/null
+++ b/extra/seahorse/seahorse.install
@@ -0,0 +1,24 @@
+pkgname=seahorse
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/setserial/PKGBUILD b/extra/setserial/PKGBUILD
new file mode 100644
index 000000000..fea301684
--- /dev/null
+++ b/extra/setserial/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 68104 2010-02-10 18:44:17Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=setserial
+pkgver=2.17
+pkgrel=3
+pkgdesc="Allows to change various attributes of a serial device"
+arch=('i686' 'x86_64')
+url="http://setserial.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ $pkgname.patch)
+md5sums=('c4867d72c41564318e0107745eb7a0f2'
+ '99919d3be7c1550721494070a7ace66a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ../$pkgname.patch || return 1
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ install -d ${pkgdir}/usr/{bin,share/man/man8}
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/setserial/setserial.patch b/extra/setserial/setserial.patch
new file mode 100644
index 000000000..3cce1f07d
--- /dev/null
+++ b/extra/setserial/setserial.patch
@@ -0,0 +1,28 @@
+diff -ur setserial-2.17/Makefile.in setserial-2.17-new/Makefile.in
+--- setserial-2.17/Makefile.in 2000-01-27 16:39:07.000000000 +0100
++++ setserial-2.17-new/Makefile.in 2005-03-09 20:53:31.000000000 +0100
+@@ -17,6 +17,11 @@
+ INCS = -I.
+ TAR = tar
+
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++bindir=@bindir@
++mandir=@mandir@
++
+ all: setserial setserial.cat
+
+ setserial: setserial.c
+@@ -26,9 +31,9 @@
+ nroff -man setserial.8 > setserial.cat
+
+ install: setserial setserial.8
+- $(INSTALL_PROGRAM) setserial $(DESTDIR)/bin
+- $(STRIP) $(DESTDIR)/bin/setserial
+- $(INSTALL_DATA) setserial.8 $(DESTDIR)/usr/man/man8
++ $(INSTALL_PROGRAM) setserial $(DESTDIR)$(bindir)
++ $(STRIP) $(DESTDIR)$(bindir)/setserial
++ $(INSTALL_DATA) setserial.8 $(DESTDIR)$(mandir)/man8
+
+ clean:
+ $(RM) setserial setserial.o setserial.cat *~
diff --git a/extra/sg3_utils/PKGBUILD b/extra/sg3_utils/PKGBUILD
new file mode 100644
index 000000000..eca1068a5
--- /dev/null
+++ b/extra/sg3_utils/PKGBUILD
@@ -0,0 +1,27 @@
+#$Id: PKGBUILD 109019 2011-02-05 11:24:51Z andyrtr $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=sg3_utils
+pkgver=1.30
+pkgrel=1
+pkgdesc="Generic SCSI utilities"
+arch=(i686 x86_64)
+url="http://sg.danny.cz/sg/sg3_utils.html"
+license=('GPL' 'custom:BSD')
+depends=('glibc')
+options=('!libtool')
+source=(http://sg.danny.cz/sg/p/${pkgname}-${pkgver}.tgz)
+md5sums=('8acb9328abe17d012db8c5f95f1d7d75')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/sg3_utils/stdint.patch b/extra/sg3_utils/stdint.patch
new file mode 100644
index 000000000..8f8c5f581
--- /dev/null
+++ b/extra/sg3_utils/stdint.patch
@@ -0,0 +1,22 @@
+--- include/sg_cmds_basic.h 2008/06/26 23:27:40 1.1
++++ include/sg_cmds_basic.h 2008/06/26 23:28:06
+@@ -30,6 +30,8 @@
+ *
+ */
+
++#include <stdint.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+--- include/sg_cmds_extra.h 2008/06/26 23:27:40 1.1
++++ include/sg_cmds_extra.h 2008/06/26 23:29:02
+@@ -30,6 +30,8 @@
+ *
+ */
+
++#include <stdint.h>
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
diff --git a/extra/shared-mime-info/PKGBUILD b/extra/shared-mime-info/PKGBUILD
new file mode 100644
index 000000000..1bf40a9b2
--- /dev/null
+++ b/extra/shared-mime-info/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 109014 2011-02-05 11:17:17Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=shared-mime-info
+pkgver=0.90
+pkgrel=1
+pkgdesc="Freedesktop.org Shared MIME Info"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libxml2>=2.7.7' 'glib2>=2.26.0')
+makedepends=('intltool' 'pkgconfig')
+install=shared-mime-info.install
+url="http://freedesktop.org/Software/shared-mime-info"
+source=(http://freedesktop.org/~hadess/${pkgname}-${pkgver}.tar.bz2
+ pbm.patch)
+md5sums=('967d68d3890ba3994cfce3adf5b8f15b'
+ '39fcc08fbd33145684ba97f1f64644c2')
+options=(!makeflags)
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/pbm.patch"
+ ./configure --prefix=/usr --disable-update-mimedb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/shared-mime-info/pbm.patch b/extra/shared-mime-info/pbm.patch
new file mode 100644
index 000000000..040900e01
--- /dev/null
+++ b/extra/shared-mime-info/pbm.patch
@@ -0,0 +1,49 @@
+diff -Naur shared-mime-info-0.70-orig/freedesktop.org.xml shared-mime-info-0.70/freedesktop.org.xml
+--- shared-mime-info-0.70-orig/freedesktop.org.xml 2010-02-06 02:39:24.000000000 -0500
++++ shared-mime-info-0.70/freedesktop.org.xml 2010-02-06 02:48:01.000000000 -0500
+@@ -17025,12 +17025,10 @@
+ <magic priority="50">
+ <match value="P1" type="string" offset="0">
+ <match value="0x0a" type="byte" offset="2">
+- <match value="#" type="string" offset="3"/>
+ </match>
+ </match>
+ <match value="P4" type="string" offset="0">
+ <match value="0x0a" type="byte" offset="2">
+- <match value="#" type="string" offset="3"/>
+ </match>
+ </match>
+ </magic>
+@@ -17074,12 +17072,10 @@
+ <magic priority="50">
+ <match value="P2" type="string" offset="0">
+ <match value="0x0a" type="byte" offset="2">
+- <match value="#" type="string" offset="3"/>
+ </match>
+ </match>
+ <match value="P5" type="string" offset="0">
+ <match value="0x0a" type="byte" offset="2">
+- <match value="#" type="string" offset="3"/>
+ </match>
+ </match>
+ </magic>
+@@ -17123,12 +17119,10 @@
+ <magic priority="50">
+ <match value="P3" type="string" offset="0">
+ <match value="0x0a" type="byte" offset="2">
+- <match value="#" type="string" offset="3"/>
+ </match>
+ </match>
+ <match value="P6" type="string" offset="0">
+ <match value="0x0a" type="byte" offset="2">
+- <match value="#" type="string" offset="3"/>
+ </match>
+ </match>
+ </magic>
+@@ -23926,4 +23920,4 @@
+ </treemagic>
+ </mime-type>
+
+-</mime-info>
+\ No newline at end of file
++</mime-info>
diff --git a/extra/shared-mime-info/shared-mime-info.install b/extra/shared-mime-info/shared-mime-info.install
new file mode 100644
index 000000000..fac0c1c79
--- /dev/null
+++ b/extra/shared-mime-info/shared-mime-info.install
@@ -0,0 +1,15 @@
+post_install() {
+ update-mime-database usr/share/mime > /dev/null 2>&1
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ if [ -d usr/share/mime ]; then
+ rm -f usr/share/mime/{globs,globs2,icons,treemagic,generic-icons,types,magic,XMLnamespaces,subclasses,aliases,mime.cache}
+ rm -rf usr/share/mime/{application,audio,image,inode,message,model,multipart,text,video,x-content,x-epoc}
+ rmdir --ignore-fail-on-non-empty usr/share/mime
+ fi
+}
diff --git a/extra/sharutils/PKGBUILD b/extra/sharutils/PKGBUILD
new file mode 100644
index 000000000..308051009
--- /dev/null
+++ b/extra/sharutils/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 98391 2010-11-08 19:40:29Z andrea $
+# Maintainer:
+# Contributor: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sharutils
+pkgver=4.10
+pkgrel=1
+pkgdesc="GNU shar makes so-called shell archives out of many files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/sharutils/"
+license=('GPL')
+depends=('perl' 'gettext' 'texinfo')
+install=${pkgname}.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f918859228238d69e1ce78ccbec8f9e0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --disable-nls
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm ${pkgdir}/usr/share/info/dir
+ gzip ${pkgdir}/usr/share/info/*
+}
diff --git a/extra/sharutils/sharutils.install b/extra/sharutils/sharutils.install
new file mode 100644
index 000000000..e8d9f8c07
--- /dev/null
+++ b/extra/sharutils/sharutils.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(sharutils.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/silc-toolkit/PKGBUILD b/extra/silc-toolkit/PKGBUILD
new file mode 100644
index 000000000..a74d067fa
--- /dev/null
+++ b/extra/silc-toolkit/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Ionut Biru <ionut@archlinux.ro>
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+
+pkgname=silc-toolkit
+pkgver=1.1.10
+pkgrel=1
+pkgdesc="Toolkit for Secure Internet Live Conferencing"
+url="http://www.silcnet.org"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('glibc' 'perl' 'libidn')
+source=(http://www.silcnet.org/download/toolkit/sources/$pkgname-$pkgver.tar.bz2)
+options=(!libtool)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --with-etcdir=/etc/silc \
+ --enable-ipv6 --with-perl=yes \
+ --with-simdir=/usr/lib/silc/modules
+
+ make || return 1
+ make DESTDIR=$pkgdir install
+
+ # remove the crapload of html docs (26MB!)
+ rm -rf $pkgdir/usr/share/doc/$pkgname/toolkit
+}
+sha256sums=('a76cc364813b2d09dee7a9e99fda77db71b5bf752297176eb8de4fb0466eed76')
diff --git a/extra/skanlite/PKGBUILD b/extra/skanlite/PKGBUILD
new file mode 100644
index 000000000..6e64a82e4
--- /dev/null
+++ b/extra/skanlite/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 101716 2010-11-30 22:05:56Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=skanlite
+pkgver=0.7
+pkgrel=1
+pkgdesc="Image Scanning Application for KDE"
+arch=('i686' 'x86_64')
+url='http://kde-apps.org/content/show.php?content=109803'
+license=('GPL')
+depends=('kdegraphics-libs')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'docbook-xsl')
+source=("http://downloads.sourceforge.net/sanewidget/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('cb256c392210c43d51e317c6a5ba9ad2')
+
+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/extra/slang/PKGBUILD b/extra/slang/PKGBUILD
new file mode 100644
index 000000000..8f78015e3
--- /dev/null
+++ b/extra/slang/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 106236 2011-01-15 15:15:05Z giovanni $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=slang
+pkgver=2.2.3
+pkgrel=2
+pkgdesc="S-Lang is a powerful interpreted language"
+arch=('i686' 'x86_64')
+url="http://www.jedsoft.org/slang/"
+license=('GPL')
+depends=('glibc' 'pcre' 'zlib')
+backup=('etc/slsh.rc')
+options=('!makeflags')
+source=(ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ ${pkgname}-2.2.3-faster-baud-rates.patch)
+md5sums=('17e1864de999ae9535a9f7350a010427'
+ '4e22e58836100adfae34e824f5fbcb1c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}"/${pkgname}-2.2.3-faster-baud-rates.patch || return 1
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install-all || return 1
+}
diff --git a/extra/slang/slang-2.2.3-faster-baud-rates.patch b/extra/slang/slang-2.2.3-faster-baud-rates.patch
new file mode 100644
index 000000000..b37b253f4
--- /dev/null
+++ b/extra/slang/slang-2.2.3-faster-baud-rates.patch
@@ -0,0 +1,62 @@
+The baud rate constant list used for setting the SLang_TT_Baud_Rate
+variable contains baud rates only up to 230400; any faster baud rate is
+not properly detected, and SLang_TT_Baud_Rate is left as 0. This caused
+problems at least with the Midnight Commander:
+
+ https://www.midnight-commander.org/ticket/2452
+
+(recent versions of rxvt-unicode set speed 4000000 for the pty (and
+there is no configurable option for this), and mc then considers such
+terminal as "slow" due to SLang_TT_Baud_Rate == 0 and turns off some
+useful UI options).
+
+This patch adds missing values to the Baud_Rates array in src/slutty.c,
+which fixes the baud rate detection problem. It also brings this array
+in sync with Baudrate_Map in modules/termios-module.c, where those
+higher baud rates were already present for some time.
+
+
+--- slang-2.2.3/src/slutty.c.alt-baud-rates 2010-12-15 13:56:48.000000000 +0300
++++ slang-2.2.3/src/slutty.c 2011-01-09 22:34:59.911000008 +0300
+@@ -170,6 +170,42 @@ static Baud_Rate_Type Baud_Rates [] =
+ #ifdef B230400
+ {B230400, 230400},
+ #endif
++#ifdef B460800
++ {B460800, 460800},
++#endif
++#ifdef B500000
++ {B500000, 500000},
++#endif
++#ifdef B576000
++ {B576000, 576000},
++#endif
++#ifdef B921600
++ {B921600, 921600},
++#endif
++#ifdef B1000000
++ {B1000000, 1000000},
++#endif
++#ifdef B1152000
++ {B1152000, 1152000},
++#endif
++#ifdef B1500000
++ {B1500000, 1500000},
++#endif
++#ifdef B2000000
++ {B2000000, 2000000},
++#endif
++#ifdef B2500000
++ {B2500000, 2500000},
++#endif
++#ifdef B3000000
++ {B3000000, 3000000},
++#endif
++#ifdef B3500000
++ {B3500000, 3500000},
++#endif
++#ifdef B4000000
++ {B4000000, 4000000},
++#endif
+ {0, 0}
+ };
diff --git a/extra/slim/PKGBUILD b/extra/slim/PKGBUILD
new file mode 100644
index 000000000..c468d578f
--- /dev/null
+++ b/extra/slim/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 108522 2011-01-31 22:56:10Z bisson $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Hugo Ideler <hugoideler@dse.nl>
+
+pkgname=slim
+pkgver=1.3.2
+pkgrel=3
+pkgdesc='Desktop-independent graphical login manager for X11'
+arch=('i686' 'x86_64')
+url='http://slim.berlios.de/'
+license=('GPL2')
+depends=('pam' 'libxmu' 'libpng' 'libjpeg' 'libxft')
+backup=('etc/slim.conf' 'etc/logrotate.d/slim' 'etc/pam.d/slim')
+install=slim.install
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'slim'
+ 'slim.logrotate'
+ 'slim.pam'
+ 'gcc44.patch'
+ 'tty-slowness.patch'
+ 'restart.patch'
+ 'no-host.patch')
+sha1sums=('e421d5487732c8317f8f591906661e014b036358'
+ '6fe0ba83509af634bce47be34e30995965bffc79'
+ 'b969cc902c1d9915a5609141a652c77b2732407b'
+ 'a0e991ef0ac5120465a3be014a26e70ba073b6ae'
+ '51121d451116c768d0fc027ff1ea70aaaef036e7'
+ '213fefe8533c845ea8c40585b6a8097820d5e5d2'
+ '2d526bc0c498bf307ee50e2d22b4f53ffa0c4435'
+ 'b86eddd083fb9f6259e46c735f55ebe76c655bd3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i -e 's/png12/png14/g' Makefile
+ patch -p1 -i ../gcc44.patch
+
+ patch -p1 -i ../tty-slowness.patch # fix sluggish tty after slim start
+ patch -p1 -i ../restart.patch # restart X server if killed
+ patch -p1 -i ../no-host.patch # do not set PAM host
+
+ make USE_PAM=1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" MANDIR=/usr/share/man install
+
+ install -D -m755 ../slim "${pkgdir}/etc/rc.d/slim"
+ install -D -m644 ../slim.logrotate "${pkgdir}/etc/logrotate.d/slim"
+ install -D -m644 ../slim.pam "${pkgdir}/etc/pam.d/slim"
+
+ # Provide sane defaults
+ sed -i 's|#xserver_arguments.*|xserver_arguments -nolisten tcp vt07|' "${pkgdir}/etc/slim.conf"
+ sed -i 's|/var/run/slim.lock|/var/lock/slim.lock|' "${pkgdir}/etc/slim.conf"
+}
diff --git a/extra/slim/gcc44.patch b/extra/slim/gcc44.patch
new file mode 100644
index 000000000..390ea8a86
--- /dev/null
+++ b/extra/slim/gcc44.patch
@@ -0,0 +1,11 @@
+diff -aur slim-1.3.2/switchuser.h slim-1.3.2.a/switchuser.h
+--- slim-1.3.2/switchuser.h 2010-07-08 07:04:10.000000000 +0200
++++ slim-1.3.2.a/switchuser.h 2010-08-21 15:10:34.306212393 +0200
+@@ -13,6 +13,7 @@
+ #define _SWITCHUSER_H_
+
+ #include <stdlib.h>
++#include <stdio.h> /* remove */
+ #include <unistd.h>
+ #include <string.h>
+ #include <pwd.h>
diff --git a/extra/slim/no-host.patch b/extra/slim/no-host.patch
new file mode 100644
index 000000000..c40f25bca
--- /dev/null
+++ b/extra/slim/no-host.patch
@@ -0,0 +1,29 @@
+Datum: Sun, 30 Jan 2011 12:49:00 +0200
+Von: Samuli Suominen <ssuominen@gentoo.org>
+An: jgc@archlinux.org, andyrtr@archlinux.org, thayer@archlinux.org
+Betreff: SLIM and ConsoleKit 0.4.2 (and up)
+
+People have been coming to #xfce after Arch's ConsoleKit 0.4.3 upgrade
+to ask for help why Suspend / Hibernate / and such doesn't work.
+
+It's because SLIM is using pam_ck_connector.so and SLIM sets Host to localhost
+and makes pam_ck_connector.so believe it's actually a *remote host* called
+localhost and will refuse access.
+
+http://bugs.gentoo.org/346037
+https://developer.berlios.de/bugs/?func=detailbug&bug_id=17757&group_id=2663
+http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-misc/slim/files/346037-stop_setting_host_for_pam_ck_connector_so.patch?view=log
+
+
+diff -aur old/app.cpp new/app.cpp
+--- old/app.cpp 2011-01-30 12:39:34.033337944 +0100
++++ new/app.cpp 2011-01-30 12:40:25.843337943 +0100
+@@ -228,8 +228,6 @@
+ pam.start("slim");
+ pam.set_item(PAM::Authenticator::TTY, DisplayName);
+ pam.set_item(PAM::Authenticator::Requestor, "root");
+- pam.set_item(PAM::Authenticator::Host, "localhost");
+-
+ }
+ catch(PAM::Exception& e){
+ cerr << APPNAME << ": " << e << endl;
diff --git a/extra/slim/restart.patch b/extra/slim/restart.patch
new file mode 100644
index 000000000..4e5049000
--- /dev/null
+++ b/extra/slim/restart.patch
@@ -0,0 +1,144 @@
+http://developer.berlios.de/patch/?func=detailpatch&patch_id=2378&group_id=2663
+
+
+diff -aur slim-1.3.2.b/app.cpp slim-1.3.2.c/app.cpp
+--- slim-1.3.2.b/app.cpp 2010-08-21 15:10:48.579631179 +0200
++++ slim-1.3.2.c/app.cpp 2010-08-21 15:11:03.946389843 +0200
+@@ -104,6 +104,11 @@
+
+ extern App* LoginApp;
+
++int xioerror(Display *disp) {
++ LoginApp->RestartServer();
++ return 0;
++}
++
+ void CatchSignal(int sig) {
+ cerr << APPNAME << ": unexpected signal " << sig << endl;
+
+@@ -114,19 +119,6 @@
+ exit(ERR_EXIT);
+ }
+
+-
+-void AlarmSignal(int sig) {
+- int pid = LoginApp->GetServerPID();
+- if(waitpid(pid, NULL, WNOHANG) == pid) {
+- LoginApp->StopServer();
+- LoginApp->RemoveLock();
+- exit(OK_EXIT);
+- }
+- signal(sig, AlarmSignal);
+- alarm(2);
+-}
+-
+-
+ void User1Signal(int sig) {
+ signal(sig, User1Signal);
+ }
+@@ -277,7 +269,6 @@
+ signal(SIGHUP, CatchSignal);
+ signal(SIGPIPE, CatchSignal);
+ signal(SIGUSR1, User1Signal);
+- signal(SIGALRM, AlarmSignal);
+
+ #ifndef XNEST_DEBUG
+ if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
+@@ -298,7 +289,6 @@
+
+ CreateServerAuth();
+ StartServer();
+- alarm(2);
+ #endif
+
+ }
+@@ -614,6 +604,8 @@
+ int status;
+ while (wpid != pid) {
+ wpid = wait(&status);
++ if (wpid == ServerPID)
++ xioerror(Dpy); // Server died, simulate IO error
+ }
+ if (WIFEXITED(status) && WEXITSTATUS(status)) {
+ LoginPanel->Message("Failed to execute login command");
+@@ -659,9 +651,6 @@
+
+
+ void App::Reboot() {
+- // Stop alarm clock
+- alarm(0);
+-
+ #ifdef USE_PAM
+ try{
+ pam.end();
+@@ -684,9 +673,6 @@
+
+
+ void App::Halt() {
+- // Stop alarm clock
+- alarm(0);
+-
+ #ifdef USE_PAM
+ try{
+ pam.end();
+@@ -772,6 +758,7 @@
+
+ StopServer();
+ RemoveLock();
++ while (waitpid(-1, NULL, WNOHANG) > 0); // Collects all dead childrens
+ Run();
+ }
+
+@@ -842,6 +829,7 @@
+
+ for(cycles = 0; cycles < ncycles; cycles++) {
+ if((Dpy = XOpenDisplay(DisplayName))) {
++ XSetIOErrorHandler(xioerror);
+ return 1;
+ } else {
+ if(!ServerTimeout(1, (char *) "X server to begin accepting connections"))
+@@ -926,9 +914,6 @@
+ ServerPID = -1;
+ break;
+ }
+- alarm(15);
+- pause();
+- alarm(0);
+
+ // Wait for server to start up
+ if(WaitForServer() == 0) {
+@@ -963,15 +948,12 @@
+
+
+ void App::StopServer() {
+- // Stop alars clock and ignore signals
+- alarm(0);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGINT, SIG_IGN);
+ signal(SIGHUP, SIG_IGN);
+ signal(SIGPIPE, SIG_IGN);
+ signal(SIGTERM, SIG_DFL);
+ signal(SIGKILL, SIG_DFL);
+- signal(SIGALRM, SIG_DFL);
+
+ // Catch X error
+ XSetIOErrorHandler(IgnoreXIO);
+diff -aur slim-1.3.2.b/app.h slim-1.3.2.c/app.h
+--- slim-1.3.2.b/app.h 2010-08-21 15:10:40.499582804 +0200
++++ slim-1.3.2.c/app.h 2010-08-21 15:11:03.946389843 +0200
+@@ -34,6 +34,7 @@
+ ~App();
+ void Run();
+ int GetServerPID();
++ void RestartServer();
+ void StopServer();
+
+ bool serverStarted;
+@@ -49,7 +50,6 @@
+ void Console();
+ void Exit();
+ void KillAllClients(Bool top);
+- void RestartServer();
+ void ReadConfig();
+ void OpenLog();
+ void CloseLog();
diff --git a/extra/slim/slim b/extra/slim/slim
new file mode 100755
index 000000000..b0be7ffc5
--- /dev/null
+++ b/extra/slim/slim
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/slim`
+case "$1" in
+ start)
+ stat_busy "Starting Simple Login Manager"
+ [ -z "$PID" ] && /usr/bin/slim -d &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon slim
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Simple Login Manager"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon slim
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/slim/slim.install b/extra/slim/slim.install
new file mode 100644
index 000000000..65aa77d72
--- /dev/null
+++ b/extra/slim/slim.install
@@ -0,0 +1,7 @@
+post_install() {
+ cat <<EOF
+
+==> Add slim to the DAEMONS array in /etc/rc.conf or update /etc/inittab.
+
+EOF
+}
diff --git a/extra/slim/slim.logrotate b/extra/slim/slim.logrotate
new file mode 100644
index 000000000..26ec3b0f4
--- /dev/null
+++ b/extra/slim/slim.logrotate
@@ -0,0 +1,9 @@
+/var/log/slim.log {
+ compress
+ rotate 1
+ size 1024k
+ notifempty
+ missingok
+ copytruncate
+ noolddir
+}
diff --git a/extra/slim/slim.pam b/extra/slim/slim.pam
new file mode 100644
index 000000000..78a981f74
--- /dev/null
+++ b/extra/slim/slim.pam
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_loginuid.so
+session optional pam_ck_connector.so
diff --git a/extra/slim/tty-slowness.patch b/extra/slim/tty-slowness.patch
new file mode 100644
index 000000000..c590fbed8
--- /dev/null
+++ b/extra/slim/tty-slowness.patch
@@ -0,0 +1,30 @@
+diff -aur slim-1.3.2.a/app.cpp slim-1.3.2.b/app.cpp
+--- slim-1.3.2.a/app.cpp 2010-08-21 15:10:13.702755711 +0200
++++ slim-1.3.2.b/app.cpp 2010-08-21 15:10:48.579631179 +0200
+@@ -280,21 +280,22 @@
+ signal(SIGALRM, AlarmSignal);
+
+ #ifndef XNEST_DEBUG
+- OpenLog();
+-
+ if (!force_nodaemon && cfg->getOption("daemon") == "yes") {
+ daemonmode = true;
+ }
+
+ // Daemonize
+ if (daemonmode) {
+- if (daemon(0, 1) == -1) {
++ if (daemon(0, 0) == -1) {
+ cerr << APPNAME << ": " << strerror(errno) << endl;
+ exit(ERR_EXIT);
+ }
+- UpdatePid();
+ }
+
++ OpenLog();
++
++ if (daemonmode) UpdatePid();
++
+ CreateServerAuth();
+ StartServer();
+ alarm(2);
diff --git a/extra/slv2/PKGBUILD b/extra/slv2/PKGBUILD
new file mode 100644
index 000000000..f83e988d2
--- /dev/null
+++ b/extra/slv2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 100618 2010-11-24 17:48:28Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Leslie P. Polzer <polzer@stardawn.org>
+
+pkgname=slv2
+pkgver=0.6.6
+pkgrel=2
+pkgdesc="Library for LV2 hosts"
+arch=('i686' 'x86_64')
+url="http://drobilla.net/software/slv2"
+license=('GPL')
+depends=('redland' 'lv2core' 'jack')
+makedepends=('python2')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://download.drobilla.net/$pkgname-$pkgver.tar.bz2)
+md5sums=('b8e8e0e82dd04324fcd533e8acd1ce85')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf configure --prefix=/usr
+ python2 waf build $MAKEFLAGS
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir/"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/slv2/slv2.changelog b/extra/slv2/slv2.changelog
new file mode 100644
index 000000000..e5be06200
--- /dev/null
+++ b/extra/slv2/slv2.changelog
@@ -0,0 +1,18 @@
+24 Nov 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * PKGBUILD :
+ Get rid of sed and use python2 directly for waf.
+ waf fix for python transition already included previously (unlogged).
+ Release only (no need binary update; no runtime python requirement).
+
+9 Aug 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.6.6-2 :
+ Brought into extra from community for ardour
+ - adds "LV2" plug-ins support
+
+ * PKGBUILD :
+ Minor cosmetic ammendments.
+
+ * slv2.changelog :
+ Added this changelog.
diff --git a/extra/slv2/slv2.install b/extra/slv2/slv2.install
new file mode 100644
index 000000000..c980ddfab
--- /dev/null
+++ b/extra/slv2/slv2.install
@@ -0,0 +1,14 @@
+post_install() {
+ echo "Updating Shared Library Links"
+ /sbin/ldconfig
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/smartmontools/PKGBUILD b/extra/smartmontools/PKGBUILD
new file mode 100644
index 000000000..3961405be
--- /dev/null
+++ b/extra/smartmontools/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 96222 2010-10-19 12:09:31Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: Jani Talikka <jani.talikka@gmail.com>
+# Contributor: Ralf Barth <archlinux.org@haggy.org>
+
+pkgname=smartmontools
+pkgver=5.40
+pkgrel=1
+pkgdesc="Control and monitor S.M.A.R.T. enabled ATA and SCSI Hard Drives."
+url="http://smartmontools.sourceforge.net"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('gcc-libs')
+backup=('etc/smartd.conf'
+ 'etc/conf.d/smartd')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz \
+ smartd.conf
+ smartd.rc)
+md5sums=('0f0be0239914ad87830a4fff594bda5b'
+ '28c1b80c41dac52d433961dcfb4f70e0'
+ 'fb30e07f87f2c1d99532e018291ad3e8')
+
+build()
+{
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --enable-drivedb
+ make || return 1
+}
+
+package()
+{
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR=${pkgdir}/ install || return 1
+ rm -rf ${pkgdir}/etc/rc.d
+ install -Dm755 ${srcdir}/smartd.rc ${pkgdir}/etc/rc.d/smartd
+ install -Dm644 ${srcdir}/smartd.conf ${pkgdir}/etc/conf.d/smartd
+}
diff --git a/extra/smartmontools/smartd.conf b/extra/smartmontools/smartd.conf
new file mode 100644
index 000000000..f14870abf
--- /dev/null
+++ b/extra/smartmontools/smartd.conf
@@ -0,0 +1 @@
+SMARTD_ARGS=""
diff --git a/extra/smartmontools/smartd.rc b/extra/smartmontools/smartd.rc
new file mode 100755
index 000000000..16920db12
--- /dev/null
+++ b/extra/smartmontools/smartd.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# source application-specific settings
+SMARTD_ARGS=
+[ -f /etc/conf.d/smartd ] && . /etc/conf.d/smartd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+
+ start)
+ stat_busy "Starting smartd"
+ /usr/sbin/smartd ${SMARTD_ARGS} &>/dev/null
+ if [ $? -ne 0 ]; then
+ stat_fail
+ else
+ add_daemon smartd
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping smartd"
+ kill -9 `pidof /usr/sbin/smartd` &>/dev/null
+ rm_daemon smartd
+ stat_done
+ ;;
+
+ restart)
+ stat_busy "Restarting smartd ..."
+ $0 stop
+ $0 start
+ stat_done
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/smb4k/PKGBUILD b/extra/smb4k/PKGBUILD
new file mode 100644
index 000000000..9d0fb81ae
--- /dev/null
+++ b/extra/smb4k/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 116040 2011-03-22 16:37:49Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Emanuele Rampichini <emanuele.rampichini@gmail.com>
+
+pkgname=smb4k
+pkgver=0.10.10
+pkgrel=1
+pkgdesc="A KDE program that browses samba shares"
+arch=('i686' 'x86_64')
+url="http://smb4k.berlios.de/"
+license=('GPL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4' 'docbook-xsl')
+install=smb4k.install
+source=("http://download.berlios.de/smb4k/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('637ca913ffe9ac24a4dd09d4eddf0dcf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE
+ make VERBOSE=1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/smb4k/smb4k.install b/extra/smb4k/smb4k.install
new file mode 100644
index 000000000..c5e097f49
--- /dev/null
+++ b/extra/smb4k/smb4k.install
@@ -0,0 +1,14 @@
+# $Id: smb4k.install,v 1.2 2009/02/23 03:09:26 travis Exp $
+# arg 1: the new package version
+post_install() {
+ echo "==> Note: To enable mounting and unmounting of smb/cifs shares as"
+ echo "==> user, you will need to issue the following command as root:"
+ echo "# chmod +s \$(which mount.cifs) \$(which umount.cifs)"
+ echo "==> These command will need to be re-run every upgrade of smbclient"
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/smpeg/ChangeLog b/extra/smpeg/ChangeLog
new file mode 100644
index 000000000..77a784590
--- /dev/null
+++ b/extra/smpeg/ChangeLog
@@ -0,0 +1,6 @@
+2009-02-07 Eric Belanger <eric@archlinux.org>
+
+ * smpeg 0.4.4-5
+ * Added gtk and mesa optdepends (close FS#12693)
+ * FHS man pages
+ * Added ChangeLog
diff --git a/extra/smpeg/PKGBUILD b/extra/smpeg/PKGBUILD
new file mode 100644
index 000000000..46e52f304
--- /dev/null
+++ b/extra/smpeg/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 26425 2009-02-07 22:15:52Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=smpeg
+pkgver=0.4.4
+pkgrel=5
+pkgdesc="SDL MPEG Player Library"
+arch=('i686' 'x86_64')
+url="http://icculus.org/smpeg/"
+license=('LGPL')
+depends=('sdl')
+makedepends=('gtk' 'mesa')
+optdepends=('gtk: to use gtv ' 'mesa: to use glmovie')
+options=('!libtool' '!makeflags')
+source=(http://mirrors.dotsrc.org/lokigames/open-source/smpeg/${pkgname}-${pkgver}.tar.gz smpeg-0.4.4-gcc41.patch)
+md5sums=('59c76ac704088ef5539210190c4e1fe3' '8b979a58307d7196655758bd3d2466c4')
+sha1sums=('6d7f4449472e6270ab435b2224f3fad951c35259' '7d9a2ad7f6b702dfe3adcb87601d9b55022bbd1e')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p1 < ../smpeg-0.4.4-gcc41.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make LDFLAGS+=-lstdc++ || return 1
+ make DESTDIR=${pkgdir} install || return 1
+
+ #fix aclocal warnings
+ sed -i "s#(AM_PATH_SMPEG#([AM_PATH_SMPEG]#" ${pkgdir}/usr/share/aclocal/smpeg.m4 || return 1
+}
diff --git a/extra/smpeg/smpeg-0.4.4-gcc41.patch b/extra/smpeg/smpeg-0.4.4-gcc41.patch
new file mode 100644
index 000000000..4a0eeb453
--- /dev/null
+++ b/extra/smpeg/smpeg-0.4.4-gcc41.patch
@@ -0,0 +1,41 @@
+Index: MPEGaudio.h
+===================================================================
+RCS file: /cvs/cvsroot/smpeg/MPEGaudio.h,v
+retrieving revision 1.23
+diff -u -p -r1.23 MPEGaudio.h
+--- smpeg/MPEGaudio.h 17 Jul 2001 19:52:24 -0000 1.23
++++ smpeg/MPEGaudio.h 6 Dec 2005 06:10:43 -0000
+@@ -151,12 +151,6 @@ private:
+ /* The actual MPEG audio class */
+ class MPEGaudio : public MPEGerror, public MPEGaudioaction {
+
+- friend void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
+- friend int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len);
+-#ifdef THREADED_AUDIO
+- friend int Decode_MPEGaudio(void *udata);
+-#endif
+-
+ public:
+ MPEGaudio(MPEGstream *stream, bool initSDL = true);
+ virtual ~MPEGaudio();
+@@ -367,6 +361,20 @@ public:
+ #define N_TIMESTAMPS 5
+
+ double timestamp[N_TIMESTAMPS];
++
++ /* Functions which access MPEGaudio internals */
++ friend void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
++ friend int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len);
++#ifdef THREADED_AUDIO
++ friend int Decode_MPEGaudio(void *udata);
++#endif
+ };
+
++/* Need to duplicate the prototypes, this is not a typo :) */
++void Play_MPEGaudioSDL(void *udata, Uint8 *stream, int len);
++int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len);
++#ifdef THREADED_AUDIO
++int Decode_MPEGaudio(void *udata);
++#endif
++
+ #endif /* _MPEGAUDIO_H_ */
diff --git a/extra/smplayer-themes/ChangeLog b/extra/smplayer-themes/ChangeLog
new file mode 100644
index 000000000..3b8e487e1
--- /dev/null
+++ b/extra/smplayer-themes/ChangeLog
@@ -0,0 +1,56 @@
+2010-01-14 Ionut Biru <ionut@archlinux.ro>
+ * smplayer-themes 0.1.20-1
+ * Upstream update
+
+2009-03-13 Allan McRae <allan@archlinux.org>
+ * smplayer-themes 0.1.19-1
+ * Upstream update
+
+2008-12-20 Allan McRae <allan@archlinux.org>
+ * smplayer-themes 0.1.18-1
+ * Upstream update
+
+2008-09-27 Allan McRae <allan@archlinux.org>
+ * smplayer-themes 0.1.17-1
+ * Upstream update
+
+2008-06-22 Allan McRae <allan@archlinux.org>
+
+ * smplayer-themes 0.1.16-1
+ * Upstream update
+
+2008-05-23 Eric Belanger <eric@archlinux.org>
+
+ * smplayer-themes 0.1.15-1
+ * Upstream update
+
+2008-01-24 Varun Acharya <varun@archlinux.org>
+
+ * smplayer-themes-0.1.14-1 moved to extra
+
+2007-11-27 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-themes-0.1.14-1
+ * version bump
+
+2007-10-24 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-themes-0.1.13-1
+ * version bump
+
+2007-09-02 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-themes-0.1.7-1
+ * version bump
+
+2007-07-12 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+ * smplayer-themes-0.1.3-1
+ * version bump
+
+2007-06-18 Eric Belanger (Snowman) <eric@archlinux.org>
+ * smplayer-themes-0.1.1-1
+ * fixed minor permission issue
+
+2007-05-30 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+ * smplayer-themes-0.1.1-1
+ * version bump
diff --git a/extra/smplayer-themes/PKGBUILD b/extra/smplayer-themes/PKGBUILD
new file mode 100644
index 000000000..5f7be24bb
--- /dev/null
+++ b/extra/smplayer-themes/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 63102 2010-01-14 17:20:39Z ibiru $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+pkgname=smplayer-themes
+pkgver=0.1.20
+pkgrel=1
+pkgdesc="Themes for smplayer"
+arch=('i686' 'x86_64')
+url="http://smplayer.sourceforge.net/"
+license=('GPL')
+depends=('smplayer')
+source=(http://downloads.sourceforge.net/sourceforge/smplayer/smplayer-themes-$pkgver.tar.bz2)
+md5sums=('384108911caded86306ddfdc047870ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make PREFIX=${pkgdir}/usr CONF_PREFIX= || return 1
+ make PREFIX=${pkgdir}/usr install
+}
diff --git a/extra/smplayer/ChangeLog b/extra/smplayer/ChangeLog
new file mode 100644
index 000000000..e8397b3ec
--- /dev/null
+++ b/extra/smplayer/ChangeLog
@@ -0,0 +1,74 @@
+2010-02-23 Ionut Biru <ibiru@archlinux.org>
+ * smplayer 0.6.9-2
+ * changed exec argument from %U to %F in smplayer.desktop
+
+2010-02-22 Ionut Biru <ibiru@archlinux.org>
+ * smplayer 0.6.9-1
+ * Upstream update
+
+2009-07-25 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.8-1
+ * Upstream update
+
+2009-03-13 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.7-1
+ * Upstream update
+
+2009-01-01 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.6-1
+ * Upstream update
+
+2008-11-14 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.5.1-1
+ * Upstream update
+
+2008-10-27 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.4-1
+ * Upstream update
+
+2008-09-27 Allan McRae <allan@archlinux.org>
+ * smplayer 0.6.3-1
+ * Upstream update
+
+2008-06-21 Allan McRae <allan@archlinux.org>
+
+ * smplayer 0.6.2-1
+ * Upstream update
+ * Removed install message
+
+2008-06-21 Allan McRae <allan@archlinux.org>
+
+ * smplayer 0.6.1-1
+ * Upstream update
+ * Removed provides/conflicts/replaces
+
+2008-05-23 Eric Belanger <eric@archlinux.org>
+
+ * smplayer 0.6.0-1
+ * Upstream update
+ * Updated .install file
+
+2008-01-32 Varun Acharya <varun@archlinux.org>
+
+ * smplayer-0.5.62-1 moved to extra, thanks molok
+ * PKGBUILD cleanup
+
+2007-11-27 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-0.5.62-1
+ * version bump
+
+2007-10-24 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-0.5.61-1
+ * build against qt4
+ * removed post_upgrade message
+
+2007-07-12 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+
+ * smplayer-0.5.21-1
+ * version bump
+
+2007-05-30 Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+ * smplayer-0.5.0-1
+ * version bump
diff --git a/extra/smplayer/PKGBUILD b/extra/smplayer/PKGBUILD
new file mode 100644
index 000000000..1646f0c75
--- /dev/null
+++ b/extra/smplayer/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 98594 2010-11-11 17:27:01Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Alessio 'mOLOk' Bolognino <themolok@gmail.com>
+# Contributor: shamrok <szamrok@gmail.com>
+
+pkgname=smplayer
+pkgver=0.6.9
+pkgrel=3
+pkgdesc="A complete front-end for MPlayer"
+arch=('i686' 'x86_64')
+url="http://smplayer.sourceforge.net/"
+license=('GPL')
+depends=('qt>=4.7.1' 'mplayer')
+source=(http://downloads.sourceforge.net/sourceforge/smplayer/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('dfe874b386509de5df78537489f95004')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # remove broken translation
+ sed -i "s|translations/smplayer_gl.ts|#translations/smplayer_gl.ts|" src/smplayer.pro
+
+ make PREFIX=/usr
+ make PREFIX=${pkgdir}/usr install
+
+ install -dm755 ${pkgdir}/usr/share/pixmaps
+ ln -s /usr/share/icons/hicolor/64x64/apps/smplayer.png \
+ ${pkgdir}/usr/share/pixmaps/
+
+ sed -i 's|Exec=smplayer %U|Exec=smplayer %F|' ${pkgdir}/usr/share/applications/smplayer.desktop
+ sed -i 's|Exec=smplayer -add-to-playlist %U|Exec=smplayer -add-to-playlist %F|' \
+ ${pkgdir}/usr/share/applications/smplayer_enqueue.desktop
+}
+
diff --git a/extra/snarf/PKGBUILD b/extra/snarf/PKGBUILD
new file mode 100644
index 000000000..591fd1a7c
--- /dev/null
+++ b/extra/snarf/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 77998 2010-04-19 08:10:26Z dgriffiths $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+pkgname=snarf
+pkgver=7.0
+pkgrel=4
+pkgdesc="Command-line URL retrieval tool (http/ftp/gopher)"
+arch=(i686 x86_64)
+url="http://www.xach.com/snarf/"
+license=('GPL')
+depends=('glibc')
+source=(http://www.xach.com/snarf/download/source/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7470d8457bc0d347b5cd8668c9e735c4')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/snd/PKGBUILD b/extra/snd/PKGBUILD
new file mode 100644
index 000000000..cfc281db5
--- /dev/null
+++ b/extra/snd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 84807 2010-07-04 16:07:26Z eric $
+# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=snd
+pkgver=11.6
+pkgrel=1
+pkgdesc="An advanced sound editor"
+arch=('i686' 'x86_64')
+url="http://ccrma.stanford.edu/software/snd/"
+license=('custom')
+depends=('lesstif' 'fam')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('a48bb692ecba320fe6aa2e00fd6d360b')
+sha1sums=('383978c94a1f503e331f8f84b21df375fb208c27')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --without-gsl --without-fftw
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make prefix="${pkgdir}/usr" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/socat/PKGBUILD b/extra/socat/PKGBUILD
new file mode 100644
index 000000000..1ed30bf7f
--- /dev/null
+++ b/extra/socat/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 87629 2010-08-17 13:33:30Z bisson $
+# Maintainer:
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+pkgname=socat
+pkgver=1.7.1.3
+pkgrel=1
+pkgdesc='Relay for bidirectional data transfer via socket, pty, pipe, file and more'
+arch=('i686' 'x86_64')
+license=('GPL2')
+url='http://www.dest-unreach.org/socat/'
+depends=('readline' 'openssl' 'tcp_wrappers')
+makedepends=('imake')
+source=("http://www.dest-unreach.org/socat/download/$pkgname-$pkgver.tar.gz")
+sha1sums=('5a42275da0d8a5182452b36535a74c3cdf21793b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make depend || return 1
+ make || return 1
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/sofia-sip/PKGBUILD b/extra/sofia-sip/PKGBUILD
new file mode 100644
index 000000000..244979be8
--- /dev/null
+++ b/extra/sofia-sip/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 75544 2010-04-01 19:17:05Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+pkgname=sofia-sip
+pkgver=1.12.10
+pkgrel=2
+pkgdesc="An open-source SIP User-Agent library"
+arch=('i686' 'x86_64')
+url="http://sofia-sip.sourceforge.net"
+options=('!libtool' 'zipman')
+license=('LGPL')
+depends=('glib2' 'openssl')
+source=(http://downloads.sourceforge.net/sofia-sip/$pkgname-$pkgver.tar.gz)
+md5sums=('9e07fde3ad2009e44d1100ca3950d02b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-openssl
+ make || return 1
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/sonata/ChangeLog b/extra/sonata/ChangeLog
new file mode 100644
index 000000000..b83211d02
--- /dev/null
+++ b/extra/sonata/ChangeLog
@@ -0,0 +1,12 @@
+2009-03-30 Alexander Fehr <pizzapunk gmail com>
+
+ * sonata-1.6-1:
+ New upstream release.
+
+2008-09-15 Alexander Fehr <pizzapunk gmail com>
+
+ * sonata-1.5.3-1:
+ New upstream release.
+ New maintainer.
+ Replaced install file with optdepends.
+ Added ChangeLog.
diff --git a/extra/sonata/PKGBUILD b/extra/sonata/PKGBUILD
new file mode 100644
index 000000000..29c426a11
--- /dev/null
+++ b/extra/sonata/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 112050 2011-03-03 12:31:43Z angvp $
+# Maintainer: Angel Velasquez <angvp@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=sonata
+pkgver=1.6.2.1
+pkgrel=5
+pkgdesc="Elegant GTK+ music client for MPD"
+arch=('i686' 'x86_64')
+url="http://sonata.berlios.de/"
+license=('GPL3')
+depends=('pygtk' 'python-mpd')
+optdepends=('gnome-python-extras: Enhanced system tray support'
+ 'tagpy: Metadata editing support'
+ 'zsi: Lyrics fetching support'
+ 'dbus-python: Various extra functionality (e.g. multimedia keys support)')
+source=(http://download.berlios.de/${pkgname}/${pkgname}-$pkgver.tar.gz)
+md5sums=('0b912325e7175abad3bf6c0edc071e05')
+
+build() {
+ cd "$srcdir/${pkgname}-$pkgver"
+ python2 setup.py install --prefix=/usr --root="$pkgdir"
+}
diff --git a/extra/soprano/PKGBUILD b/extra/soprano/PKGBUILD
new file mode 100644
index 000000000..24832241f
--- /dev/null
+++ b/extra/soprano/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 108617 2011-02-01 23:20:16Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=soprano
+pkgver=2.6.0
+pkgrel=1
+pkgdesc='A library which provides a highly usable object-oriented C++/Qt4 framework for RDF data'
+arch=('i686' 'x86_64')
+url='http://soprano.sourceforge.net/'
+license=('GPL' 'LGPL')
+depends=('qt' 'clucene' 'redland' 'libiodbc' 'virtuoso')
+makedepends=('cmake' 'openjdk6' 'postgresql-libs' 'libmysqlclient' 'unixodbc')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('03ae49e87c6ec99e57d0433c2650846f')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ . /etc/profile.d/openjdk6.sh
+ # we need the rpath
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/sound-juicer/PKGBUILD b/extra/sound-juicer/PKGBUILD
new file mode 100644
index 000000000..49f8f50e3
--- /dev/null
+++ b/extra/sound-juicer/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 110458 2011-02-19 15:59:30Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributer: Ben <contrasutra@myrealbox.com>
+
+pkgname=sound-juicer
+pkgver=2.32.0
+pkgrel=2
+pkgdesc="A cd ripper application"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libmusicbrainz3>=3.0.3' 'gnome-media>=2.32.0' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'brasero>=2.32.0' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.0' 'pkgconfig')
+options=(!emptydirs)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+groups=('gnome-extra')
+install=sound-juicer.install
+url="http://www.burtonini.com/blog/computers/sound-juicer"
+sha256sums=('f6040e19e50094daff9699dea3e9884ce3226a61f28acbe9ad3a0458975a305a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain sound-juicer ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/sound-juicer/sound-juicer.install b/extra/sound-juicer/sound-juicer.install
new file mode 100644
index 000000000..5286a0055
--- /dev/null
+++ b/extra/sound-juicer/sound-juicer.install
@@ -0,0 +1,24 @@
+pkgname=sound-juicer
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/soundtouch/ChangeLog b/extra/soundtouch/ChangeLog
new file mode 100644
index 000000000..06d96ba3b
--- /dev/null
+++ b/extra/soundtouch/ChangeLog
@@ -0,0 +1,10 @@
+2010-02-06 Eric Belanger <eric@archlinux.org>
+
+ * soundtouch 1.5.0-1
+ * Upstream update
+ * Added shared libs
+
+2008-12-12 Eric Belanger <eric@archlinux.org>
+
+ * soundtouch 1.3.1-3
+ * Added to [extra] repo
diff --git a/extra/soundtouch/PKGBUILD b/extra/soundtouch/PKGBUILD
new file mode 100644
index 000000000..5a016aa63
--- /dev/null
+++ b/extra/soundtouch/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 67310 2010-02-06 08:17:47Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Jaroslaw Swierczynski <swiergot@juvepoland.com>
+# Contributor: Raymano <re1212122000@yahoo.com>
+
+pkgname=soundtouch
+pkgver=1.5.0
+pkgrel=1
+pkgdesc="An audio processing library"
+arch=('i686' 'x86_64')
+url="http://www.surina.net/soundtouch/"
+license=('LGPL')
+depends=('gcc-libs')
+options=('!libtool')
+source=(http://www.surina.net/soundtouch/${pkgname}-${pkgver}.tar.gz
+ soundtouch-1.4.0-mmx-sse-compile-fix.patch
+ soundtouch-1.4.0-x86_64-asm-broken.patch)
+md5sums=('5456481d8707d2a2c27466ea64a099cb' 'f0204136c90ce4f6d4761073151eb4dc'\
+ '0d856bb5b519b18c6ba3a2e1770bdfd2')
+sha1sums=('c3e73419acec242a49a408b78c55883def937fc0' '39815091c4cb1817f8a56b8fb29fa684984514d1'\
+ '95282cca856b3b8645fadb530ce5eb892074f193')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ patch -Np1 -i "${srcdir}/soundtouch-1.4.0-mmx-sse-compile-fix.patch" || return 1
+ patch -Np1 -i "${srcdir}/soundtouch-1.4.0-x86_64-asm-broken.patch" || return 1
+ if [ "${CARCH}" = "x86_64" ]; then
+ ./configure --prefix=/usr --enable-shared --with-pic || return 1
+ else
+ ./configure --prefix=/usr --enable-shared || return 1
+ fi
+ make || return 1
+ make DESTDIR="${pkgdir}" pkgdocdir=/usr/share/doc/soundtouch install || return 1
+ # Upstream changed pkgconfig filename
+ ln -sf soundtouch-1.4.pc "${pkgdir}/usr/lib/pkgconfig/soundtouch-1.0.pc" || return 1
+}
diff --git a/extra/soundtouch/soundtouch-1.4.0-mmx-sse-compile-fix.patch b/extra/soundtouch/soundtouch-1.4.0-mmx-sse-compile-fix.patch
new file mode 100644
index 000000000..4369b178b
--- /dev/null
+++ b/extra/soundtouch/soundtouch-1.4.0-mmx-sse-compile-fix.patch
@@ -0,0 +1,14 @@
+diff -up soundtouch/source/SoundTouch/Makefile.in~ soundtouch/source/SoundTouch/Makefile.in
+--- soundtouch/source/SoundTouch/Makefile.in~ 2009-02-15 11:21:36.000000000 +0100
++++ soundtouch/source/SoundTouch/Makefile.in 2009-02-15 11:23:30.000000000 +0100
+@@ -209,7 +209,9 @@ libSoundTouch_la_SOURCES = AAFilter.cpp
+ # Note by authore: '-msse2' might not work in non-X86 compilations. If someone can
+ # fix this script to automatically check for CPU architecture, please submit a patch
+ # to me.
+-AM_CXXFLAGS = -O3 -msse2 -fcheck-new -I../../include
++AM_CXXFLAGS = -fcheck-new -I../../include
++mmx_optimized.lo : AM_CXXFLAGS = -mmmx -fcheck-new -I../../include
++sse_optimized.lo : AM_CXXFLAGS = -msse -fcheck-new -I../../include
+ all: all-am
+
+ .SUFFIXES:
diff --git a/extra/soundtouch/soundtouch-1.4.0-x86_64-asm-broken.patch b/extra/soundtouch/soundtouch-1.4.0-x86_64-asm-broken.patch
new file mode 100644
index 000000000..4c777d60e
--- /dev/null
+++ b/extra/soundtouch/soundtouch-1.4.0-x86_64-asm-broken.patch
@@ -0,0 +1,12 @@
+diff -up soundtouch/include/STTypes.h~ soundtouch/include/STTypes.h
+--- soundtouch/include/STTypes.h~ 2009-01-25 17:32:53.000000000 +0100
++++ soundtouch/include/STTypes.h 2009-02-14 22:22:37.000000000 +0100
+@@ -87,7 +87,7 @@ namespace soundtouch
+
+ #endif
+
+- #if (WIN32 || __i386__ || __x86_64__)
++ #if (WIN32 || __i386__)
+ /// Define this to allow X86-specific assembler/intrinsic optimizations.
+ /// Notice that library contains also usual C++ versions of each of these
+ /// these routines, so if you're having difficulties getting the optimized
diff --git a/extra/source-highlight/PKGBUILD b/extra/source-highlight/PKGBUILD
new file mode 100644
index 000000000..4846c97f0
--- /dev/null
+++ b/extra/source-highlight/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111993 2011-03-02 22:17:55Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=source-highlight
+pkgver=3.1.4
+pkgrel=2
+pkgdesc="Convert source code to syntax highlighted document"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/src-highlite/"
+license=('GPL')
+depends=('gcc-libs' 'bash' 'boost-libs')
+makedepends=('ctags' 'boost')
+options=('!libtool')
+install=$pkgname.install
+source=("ftp://ftp.gnu.org/gnu/src-highlite/${pkgname}-${pkgver}.tar.gz")
+md5sums=('becf8292b84ece6b532b0f0c92b530ee')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-bash-completion=${pkgdir}/etc/bash_completion.d
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}/usr" install
+ rm -rf ${pkgdir}/usr/share/info/dir
+}
diff --git a/extra/source-highlight/source-highlight.install b/extra/source-highlight/source-highlight.install
new file mode 100644
index 000000000..fb764f5ed
--- /dev/null
+++ b/extra/source-highlight/source-highlight.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(source-highlight.info source-highlight-lib.info)
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${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.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/extra/sox/PKGBUILD b/extra/sox/PKGBUILD
new file mode 100644
index 000000000..ce7768a7a
--- /dev/null
+++ b/extra/sox/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 117296 2011-03-30 18:17:00Z schiv $
+# Maintainer: Eric Bélanger <eric@archlinux.org>
+
+pkgname=sox
+pkgver=14.3.2
+pkgrel=2
+pkgdesc="The Swiss Army knife of sound processing tools"
+arch=('i686' 'x86_64')
+url="http://sox.sourceforge.net/"
+license=('GPL' 'LGPL')
+depends=('libtool' 'file' 'libsndfile' 'libpng' 'lame' 'opencore-amr')
+makedepends=('ffmpeg' 'libao' 'libmad' 'libid3tag' 'wavpack')
+optdepends=('libao: for ao plugin'
+ 'ffmpeg: for ffmpeg plugin'
+ 'libmad: for mp3 plugin'
+ 'libid3tag: for mp3 plugin'
+ 'wavpack: for wavpack plugin')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('f6e1999b05d9b0cc9bb47ce8d3208dee')
+sha1sums=('026636c90d7accba76225a2821aaa2ffa6fe41a3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-dyn-default --with-distro="Arch Linux"
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ ln -sf play "${pkgdir}/usr/bin/rec"
+ ln -sf ../man1/sox.1.gz "${pkgdir}/usr/share/man/man7/soxeffect.7"
+}
diff --git a/extra/spamassassin/PKGBUILD b/extra/spamassassin/PKGBUILD
new file mode 100644
index 000000000..5559ec48e
--- /dev/null
+++ b/extra/spamassassin/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 106385 2011-01-16 17:09:43Z angvp $
+# Maintainer: Dale Blount <dale@archlinux.org>
+# Contributor: Manolis Tzanidakis
+
+pkgname=spamassassin
+pkgver=3.3.1
+pkgrel=4
+pkgdesc="A mail filter to identify spam."
+arch=(i686 x86_64)
+license=(APACHE)
+url="http://spamassassin.apache.org"
+depends=('perl>=5.12.2' 'perl-net-dns' 'perl-uri' 'perl-html-parser' \
+ 'perl-digest-sha1' 'perl-io-socket-ssl' 'openssl' \
+ 'perl-libwww' 'perl-io-zlib' 'perl-mail-spf' \
+ 'perl-archive-tar' 'zlib' 're2c')
+makedepends=('razor' 'perl-dbi')
+optdepends=('razor: to identify collaborately-flagged spam'
+ 'gnupg: gpg support, without this use --nogpg flag for sa-update'
+ 're2c: regexp compiler, for compiling rules with sa-compile')
+backup=(etc/conf.d/spamd etc/mail/spamassassin/local.cf \
+ etc/mail/spamassassin/init.pre \
+ etc/mail/spamassassin/v310.pre \
+ etc/mail/spamassassin/v312.pre \
+ etc/mail/spamassassin/v320.pre)
+install=${pkgname}.install
+options=(!emptydirs)
+source=(http://mirrors.devlib.org/apache/${pkgname}/source/Mail-SpamAssassin-${pkgver}.tar.gz \
+ spamd.conf.d spamd)
+md5sums=('5a93f81fda315411560ff5da099382d2'
+ 'af501c6b0bb937a2775b747cc4b6d150'
+ '0534d3071a526a27ddc2b297afa03b04')
+
+build() {
+ cd ${srcdir}/Mail-SpamAssassin-${pkgver}
+
+ # install module in vendor directories.
+ PERL_MM_USE_DEFAULT=1 /usr/bin/perl Makefile.PL INSTALLDIRS=vendor \
+ CONTACT_ADDRESS=root@localhost ENABLE_SSL=yes PERL_TAINT=no
+ /usr/bin/make
+}
+
+package() {
+ cd ${srcdir}/Mail-SpamAssassin-${pkgver}
+ /usr/bin/make DESTDIR=${pkgdir} install
+ # remove perllocal.pod and .packlist
+ find ${pkgdir} -name perllocal.pod -delete
+ find ${pkgdir} -name .packlist -delete
+
+ /bin/install -D -m644 ${srcdir}/spamd.conf.d ${pkgdir}/etc/conf.d/spamd
+ /bin/install -D -m755 ${srcdir}/spamd ${pkgdir}/etc/rc.d/spamd
+}
diff --git a/extra/spamassassin/spamassassin.install b/extra/spamassassin/spamassassin.install
new file mode 100644
index 000000000..5109956c9
--- /dev/null
+++ b/extra/spamassassin/spamassassin.install
@@ -0,0 +1,25 @@
+# arg 1: the new package version
+post_install() {
+ echo "You must run 'sa-update' to install spam rules before use."
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ # Compile rules, if rules have previously been compiled, and it's possible
+ if [ -x /usr/bin/re2c -a -x /usr/bin/perlbin/vendor/sa-compile -a -d /var/lib/spamassassin/compiled ]; then
+ echo "Detected compiled rules, running sa-compile..."
+ sa-compile > /dev/null 2>&1
+fi
+}
+
+# arg 1: the old package version
+pre_remove() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
diff --git a/extra/spamassassin/spamd b/extra/spamassassin/spamd
new file mode 100644
index 000000000..11d35f7cd
--- /dev/null
+++ b/extra/spamassassin/spamd
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# source application-specific settings
+[ -f /etc/conf.d/spamd ] && . /etc/conf.d/spamd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/vendor_perl/spamd`
+case "$1" in
+ start)
+ stat_busy "Starting spamd"
+ [ -z "$PID" ] && /usr/bin/vendor_perl/spamd -d ${SPAMD_OPTS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon spamd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping spamd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ # Some users report that a second attempt at stopping the process
+ # works. So, take a little nap and give it another whirl...
+ sleep 2
+ kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon spamd
+ stat_done
+ fi
+ else
+ rm_daemon spamd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/spamassassin/spamd.conf.d b/extra/spamassassin/spamd.conf.d
new file mode 100644
index 000000000..4295e0073
--- /dev/null
+++ b/extra/spamassassin/spamd.conf.d
@@ -0,0 +1 @@
+SPAMD_OPTS="-c"
diff --git a/extra/spassgen/PKGBUILD b/extra/spassgen/PKGBUILD
new file mode 100644
index 000000000..653a51f57
--- /dev/null
+++ b/extra/spassgen/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 77993 2010-04-19 08:07:51Z dgriffiths $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=spassgen
+pkgver=1.5
+pkgrel=7
+pkgdesc="A small program that generates passwords"
+arch=(i686 x86_64)
+url="http://spassgen.sourceforge.net/"
+license=('GPL2')
+depends=('qt3')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ed019dda56551fb860c74016baa91fa4')
+
+build() {
+ cd ${srcdir}/${pkgname}
+ . /etc/profile.d/qt3.sh
+ qmake -project spassgen.pro || return 1
+ qmake || return 1
+ make || return 1
+ install -d ${pkgdir}/opt/kde/{bin,share/icons/crystalsvg}
+ install -m755 spassgen ${pkgdir}/opt/kde/bin/spassgen || return 1
+ cd icons
+ cp -r * ${pkgdir}/opt/kde/share/icons/crystalsvg || return 1
+ rm -r ${pkgdir}/opt/kde/share/icons/crystalsvg/16x16/.xvpics
+ }
diff --git a/extra/speech-dispatcher/PKGBUILD b/extra/speech-dispatcher/PKGBUILD
new file mode 100644
index 000000000..c0269f941
--- /dev/null
+++ b/extra/speech-dispatcher/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 110767 2011-02-22 05:28:34Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Steve Holmes <steve.holmes88@gmail.com>
+# Contributor: Alexander Jenisch <nt@divzero.at>
+# Contributor: Chris Brannon <cmbrannon@cox.net>
+# Contributor: Andreas Messer <andi@bupfen.de>
+
+pkgname=speech-dispatcher
+pkgver=0.7.1
+pkgrel=5
+arch=('i686' 'x86_64')
+pkgdesc="High-level device independent layer for speech synthesis interface"
+url="http://www.freebsoft.org/speechd"
+license=('GPL2' 'FDL')
+depends=('glib2' 'python2' 'dotconf' 'texinfo' 'libpulse')
+makedepends=('pkgconfig' 'espeak')
+optdepends=('festival: Speech output using Festival'
+ 'espeak: Speech output using ESpeak'
+ 'pulseaudio: PulseAudio support')
+provides=("speechd=${pkgver}")
+options=('!libtool')
+backup=(etc/speech-dispatcher/clients/gnome-speech.conf
+ etc/speech-dispatcher/clients/emacs.conf
+ etc/speech-dispatcher/modules/ibmtts.conf
+ etc/speech-dispatcher/modules/espeak-generic.conf
+ etc/speech-dispatcher/modules/espeak.conf
+ etc/speech-dispatcher/modules/swift-generic.conf
+ etc/speech-dispatcher/modules/festival.conf
+ etc/speech-dispatcher/modules/cicero.conf
+ etc/speech-dispatcher/modules/espeak-mbrola-generic.conf
+ etc/speech-dispatcher/modules/dtk-generic.conf
+ etc/speech-dispatcher/modules/llia_phon-generic.conf
+ etc/speech-dispatcher/modules/ivona.conf
+ etc/speech-dispatcher/modules/epos-generic.conf
+ etc/speech-dispatcher/modules/flite.conf
+ etc/speech-dispatcher/speechd.conf)
+install="${pkgname}.install"
+source=("http://www.freebsoft.org/pub/projects/speechd/$pkgname-$pkgver.tar.gz"
+ 'speechd.sh')
+md5sums=('ccfc30ac006673d36b4223eb760ed696'
+ '858293f464b83f03f3b6bb796291c71d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --without-flite
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+
+ install -Dm755 ${srcdir}/speechd.sh ${pkgdir}/etc/rc.d/speechd
+ install -d ${pkgdir}/var/log/speech-dispatcher
+
+ # Fix spd-conf to use python 2.7
+ sed -i -e 's|#!/usr/bin/python|#!/usr/bin/python2|' ${pkgdir}/usr/bin/spd-conf
+ sed -i -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' ${pkgdir}/usr/lib/python2.7/site-packages/speechd/_test.py
+
+ rm -f ${pkgdir}/usr/share/info/dir
+ gzip -9nf ${pkgdir}/usr/share/info/*
+
+ # Remove conflicts with erlang (FS#21674)
+ rm -r ${pkgdir}/usr/bin/run_test
+}
diff --git a/extra/speech-dispatcher/speech-dispatcher.install b/extra/speech-dispatcher/speech-dispatcher.install
new file mode 100644
index 000000000..17e273bed
--- /dev/null
+++ b/extra/speech-dispatcher/speech-dispatcher.install
@@ -0,0 +1,21 @@
+info_dir=/usr/share/info
+info_files=('speech-dispatcher.info'
+ 'speech-dispatcher-cs.info'
+ 'ssip.info'
+ 'spd-say.info')
+
+post_install() {
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${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.gz ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/extra/speech-dispatcher/speechd.sh b/extra/speech-dispatcher/speechd.sh
new file mode 100644
index 000000000..eb44198cb
--- /dev/null
+++ b/extra/speech-dispatcher/speechd.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/bin/speech-dispatcher)
+case "$1" in
+ start)
+ stat_busy "Starting speech dispatcher Daemon"
+ [ -z "$PID" ] && /usr/bin/speech-dispatcher -d &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon speechd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping speech dispatcher Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon speechd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+
+exit 0
diff --git a/extra/speedcrunch/PKGBUILD b/extra/speedcrunch/PKGBUILD
new file mode 100644
index 000000000..5b78123d8
--- /dev/null
+++ b/extra/speedcrunch/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 67114 2010-02-03 16:04:47Z andrea $
+# Maintainer:
+# Contributor: Ronald van Haren <ronald.archlinux.org>
+
+pkgname=speedcrunch
+pkgver=0.10.1
+pkgrel=2
+pkgdesc="Simple but powerful calculator using Qt"
+url="http://speedcrunch.org/"
+arch=('i686' 'x86_64')
+depends=('qt')
+makedepends=('cmake')
+license=('GPL2')
+source=(http://speedcrunch.googlecode.com/files/$pkgname-$pkgver.tar.gz)
+md5sums=('344ee1303b05502d28c58a2fff1ca6b2')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver/src
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr || return 1
+ make || return 1
+
+ # fix make install issue
+ lrelease speedcrunch.pro
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/speedtouch/PKGBUILD b/extra/speedtouch/PKGBUILD
new file mode 100644
index 000000000..bdd98eb90
--- /dev/null
+++ b/extra/speedtouch/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 77988 2010-04-19 08:04:32Z dgriffiths $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=speedtouch
+pkgver=1.3.1
+pkgrel=3
+pkgdesc="Driver for the ADSL Speed Touch USB modem"
+arch=('i686' 'x86_64')
+url="http://speedtouch.sourceforge.net/"
+license=('GPL')
+depends=('bash')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ speedtouch-1.3.1-gcc4.patch)
+md5sums=('0848a120ae0eeab6c8ab378e11dc4fa2'
+ '4191035925db745944c75e26937c42a3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p1 < ../speedtouch-1.3.1-gcc4.patch || return 1
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man || return 1
+ make || return 1
+ make prefix=${pkgdir}/usr sysconfdir=${pkgdir}/etc mandir=${pkgdir}/usr/share/man install || return 1
+}
diff --git a/extra/speedtouch/speedtouch-1.3.1-gcc4.patch b/extra/speedtouch/speedtouch-1.3.1-gcc4.patch
new file mode 100644
index 000000000..bdd323c50
--- /dev/null
+++ b/extra/speedtouch/speedtouch-1.3.1-gcc4.patch
@@ -0,0 +1,11 @@
+--- speedtouch-1.3.1/src/modem.h 2004-09-29 21:56:31.000000000 +0100
++++ speedtouch-1.3.1-gcc4/src/modem.h 2005-07-21 07:15:03.000000000 +0100
+@@ -38,7 +38,4 @@
+ #define EP_CODE_IN 0x85
+ #define EP_CODE_OUT 0x05
+
+-/* Global Variables */
+-extern int verbose;
+-
+ #endif
+ \ No newline at end of file
diff --git a/extra/speex/PKGBUILD b/extra/speex/PKGBUILD
new file mode 100644
index 000000000..672dc9887
--- /dev/null
+++ b/extra/speex/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 7447 2008-08-02 04:56:05Z eric $
+# Contributer: Jason Chu <jason@archlinux.org>
+# Maintainer: Jason Chu <jason@archlinux.org>
+
+pkgname=speex
+pkgver=1.2rc1
+pkgrel=1
+pkgdesc="A free codec for free speech"
+arch=('i686' 'x86_64')
+license=('BSD')
+depends=('libogg')
+options=('!libtool')
+source=(http://downloads.us.xiph.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('c4438b22c08e5811ff10e2b06ee9b9ae')
+url="http://www.speex.org/"
+
+build() {
+ cd $startdir/src/speex-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make || return 1
+ make DESTDIR=$startdir/pkg install
+ #to fix kde detection
+ cp $startdir/pkg/usr/include/speex/* $startdir/pkg/usr/include/
+ install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/squeeze/PKGBUILD b/extra/squeeze/PKGBUILD
new file mode 100644
index 000000000..ad6b7ae74
--- /dev/null
+++ b/extra/squeeze/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 105853 2011-01-13 13:09:13Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: David Keogh <davekeogh@shaw.ca>
+
+pkgname=squeeze
+pkgver=0.2.3
+pkgrel=4
+pkgdesc="Squeeze is a modern and advanced archive manager for the Xfce Desktop Environment."
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://squeeze.xfce.org/"
+groups=('xfce4-goodies')
+depends=('thunar-vfs' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'tar' 'desktop-file-utils')
+optdepends=('tar: TAR support'
+ 'gzip: GZIP support'
+ 'bzip2: BZIP2 support'
+ 'zip: ZIP support'
+ 'unzip: ZIP support'
+ 'unrar: RAR support'
+ 'p7zip: 7z support'
+ 'arj: ARJ support'
+ 'lha: LHA support'
+ 'lzma-utils: LZMA support'
+ 'lzop: LZOP support')
+options=('!libtool')
+conflicts=('squeeze-svn')
+install=${pkgname}.install
+source=(http://squeeze.xfce.org/downloads/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('bd3cb0648b49be1f146fc4f675606176')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/squeeze/squeeze.install b/extra/squeeze/squeeze.install
new file mode 100644
index 000000000..709ad81f2
--- /dev/null
+++ b/extra/squeeze/squeeze.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/squid/PKGBUILD b/extra/squid/PKGBUILD
new file mode 100644
index 000000000..ab4cca63d
--- /dev/null
+++ b/extra/squid/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 79502 2010-05-04 00:58:56Z kevin $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=squid
+pkgver=2.7.STABLE9
+pkgrel=1
+pkgdesc="A full-featured Web proxy cache server."
+arch=(i686 x86_64)
+url="http://www.squid-cache.org"
+depends=('openssl' 'pam' 'cron' 'perl')
+makedepends=('libcap>=2.16')
+license=('GPL')
+backup=(etc/squid/squid.conf etc/squid/mime.conf etc/conf.d/squid)
+install=${pkgname}.install
+source=(http://www.squid-cache.org/Versions/v2/2.7/${pkgname}-${pkgver}.tar.bz2
+ squid-makefiles.patch squid squid.conf.d squid.pam
+ squid.cron fix-for-new-cap-headers.patch)
+md5sums=('3c6642c85470b1079207d43bba25a819'
+ '082e53bb6e2c79bc44ac95c3d69145da'
+ 'd213b0cc1db72b749bb8c88716fdab39'
+ '81f9a446d143f42c6a3f30304e91c39f'
+ '270977cdd9b47ef44c0c427ab9034777'
+ '5e17df989e2a74e869790c066f61225b'
+ '9b7586646c8a81730029798895a0eaca')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/squid-makefiles.patch || return 1
+
+ ./configure --prefix=/usr --datadir=/usr/share/squid \
+ --sysconfdir=/etc/squid --libexecdir=/usr/lib/squid \
+ --localstatedir=/var --enable-auth="basic,digest,ntlm" \
+ --enable-removal-policies="lru,heap" \
+ --enable-digest-auth-helpers="password" \
+ --enable-storeio="aufs,ufs,diskd,coss,null" \
+ --enable-basic-auth-helpers="getpwnam,YP,NCSA,SMB,MSNT,PAM,multi-domain-NTLM" \
+ --enable-external-acl-helpers="ip_user,unix_group,wbinfo_group" \
+ --enable-ntlm-auth-helpers="SMB,fakeauth,no_check" \
+ --enable-delay-pools --enable-arp-acl --enable-ssl --enable-snmp \
+ --enable-linux-netfilter --enable-ident-lookups \
+ --enable-useragent-log --enable-cache-digests --enable-referer-log \
+ --enable-async-io --enable-truncate --enable-arp-acl \
+ --enable-htcp --enable-carp --enable-epoll --with-maxfd=4096
+ --with-large-files
+#some versions have build problems with both async and truncate enabled:
+# --enable-async-io --enable-arp-acl \
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+ rm -rf ${pkgdir}/var
+ mv ${pkgdir}/usr/bin/Run* ${pkgdir}/usr/lib/squid
+ mkdir -p ${pkgdir}/var/cache/squid
+ mkdir -p ${pkgdir}/var/log/squid
+ install -D -m755 ${srcdir}/squid ${pkgdir}/etc/rc.d/squid
+ install -D -m755 ${srcdir}/squid.cron ${pkgdir}/etc/cron.weekly/squid
+ install -D -m644 ${srcdir}/squid.conf.d ${pkgdir}/etc/conf.d/squid
+ install -D -m644 ${srcdir}/squid.pam ${pkgdir}/etc/pam.d/squid
+ install -D -m644 ${pkgdir}/etc/squid/squid.conf \
+ ${pkgdir}/etc/squid/squid.conf.default
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/squid/fix-for-new-cap-headers.patch b/extra/squid/fix-for-new-cap-headers.patch
new file mode 100644
index 000000000..ce24681e8
--- /dev/null
+++ b/extra/squid/fix-for-new-cap-headers.patch
@@ -0,0 +1,14 @@
+--- src/tools.c.orig 2009-11-02 10:54:49.000000000 -0500
++++ src/tools.c 2009-11-02 10:55:05.000000000 -0500
+@@ -44,9 +44,9 @@
+ #if HAVE_SYS_CAPABILITY_H
+ #undef _POSIX_SOURCE
+ /* Ugly glue to get around linux header madness colliding with glibc */
+-#define _LINUX_TYPES_H
++/*#define _LINUX_TYPES_H*/
+ #define _LINUX_FS_H
+-typedef uint32_t __u32;
++/*typedef uint32_t __u32;*/
+ #include <sys/capability.h>
+ #endif
+ #endif
diff --git a/extra/squid/squid b/extra/squid/squid
new file mode 100644
index 000000000..2df1fc72d
--- /dev/null
+++ b/extra/squid/squid
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+# source application-specific settings
+SQUID_ARGS=
+[ -f /etc/conf.d/squid ] && . /etc/conf.d/squid
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/squid`
+case "$1" in
+
+ start)
+ if [ ! -f /var/cache/squid/swap.state ]; then
+ stat_busy "Creating squid's swap directories"
+ /usr/sbin/squid -z
+ fi
+ stat_busy "Starting squid"
+ [ -z "$PID" ] && /usr/sbin/squid ${SQUID_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon squid
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping squid"
+ [ ! -z "$PID" ] && /usr/sbin/squid -k shutdown &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ # wait for squid to shutdown so we can safely do a restart
+ while [ ! -z "`pidof -o %PPID /usr/sbin/squid`" ]; do
+ stat_append "."
+ sleep 3
+ done
+ rm_daemon squid
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 5
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/squid/squid-makefiles.patch b/extra/squid/squid-makefiles.patch
new file mode 100644
index 000000000..4cefb89a0
--- /dev/null
+++ b/extra/squid/squid-makefiles.patch
@@ -0,0 +1,53 @@
+diff -Naur squid-2.7.STABLE2-orig/helpers/basic_auth/SMB/Makefile.in squid-2.7.STABLE2/helpers/basic_auth/SMB/Makefile.in
+--- squid-2.7.STABLE2-orig/helpers/basic_auth/SMB/Makefile.in 2007-11-11 20:14:01.000000000 -0500
++++ squid-2.7.STABLE2/helpers/basic_auth/SMB/Makefile.in 2008-06-09 21:32:52.000000000 -0400
+@@ -268,7 +268,7 @@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ SMB_AUTH_HELPER = smb_auth.sh
+-SAMBAPREFIX = /usr/local/samba
++SAMBAPREFIX = /usr
+ SMB_AUTH_HELPER_PATH = $(libexecdir)/$(SMB_AUTH_HELPER)
+ libexec_SCRIPTS = $(SMB_AUTH_HELPER)
+ smb_auth_CFLAGS = -DSAMBAPREFIX=\"$(SAMBAPREFIX)\" -DHELPERSCRIPT=\"$(SMB_AUTH_HELPER_PATH)\"
+diff -Naur squid-2.7.STABLE2-orig/src/Makefile.in squid-2.7.STABLE2/src/Makefile.in
+--- squid-2.7.STABLE2-orig/src/Makefile.in 2008-01-02 20:16:40.000000000 -0500
++++ squid-2.7.STABLE2/src/Makefile.in 2008-06-09 21:34:39.000000000 -0400
+@@ -653,13 +653,13 @@
+ DEFAULT_CONFIG_FILE = $(sysconfdir)/squid.conf
+ DEFAULT_MIME_TABLE = $(sysconfdir)/mime.conf
+ DEFAULT_DNSSERVER = $(libexecdir)/`echo dnsserver | sed '$(transform);s/$$/$(EXEEXT)/'`
+-DEFAULT_LOG_PREFIX = $(localstatedir)/logs
++DEFAULT_LOG_PREFIX = $(localstatedir)/log/squid
+ DEFAULT_CACHE_LOG = $(DEFAULT_LOG_PREFIX)/cache.log
+ DEFAULT_ACCESS_LOG = $(DEFAULT_LOG_PREFIX)/access.log
+ DEFAULT_STORE_LOG = $(DEFAULT_LOG_PREFIX)/store.log
+-DEFAULT_PID_FILE = $(DEFAULT_LOG_PREFIX)/squid.pid
++DEFAULT_PID_FILE = $(localstatedir)/run/squid.pid
+ DEFAULT_NETDB_FILE = $(DEFAULT_LOG_PREFIX)/netdb.state
+-DEFAULT_SWAP_DIR = $(localstatedir)/cache
++DEFAULT_SWAP_DIR = $(localstatedir)/cache/squid
+ DEFAULT_PINGER = $(libexecdir)/`echo pinger | sed '$(transform);s/$$/$(EXEEXT)/'`
+ DEFAULT_UNLINKD = $(libexecdir)/`echo unlinkd | sed '$(transform);s/$$/$(EXEEXT)/'`
+ DEFAULT_DISKD = $(libexecdir)/`echo diskd-daemon | sed '$(transform);s/$$/$(EXEEXT)/'`
+diff -Naur squid-2.7.STABLE2-orig/src/cf.data.pre squid-2.7.STABLE2/src/cf.data.pre
+--- squid-2.7.STABLE2-orig/src/cf.data.pre 2008-05-31 16:49:45.000000000 -0400
++++ squid-2.7.STABLE2/src/cf.data.pre 2008-06-09 21:35:43.000000000 -0400
+@@ -3749,7 +3749,7 @@
+
+ NAME: cache_effective_user
+ TYPE: string
+-DEFAULT: nobody
++DEFAULT: proxy
+ LOC: Config.effectiveUser
+ DOC_START
+ If you start Squid as root, it will change its effective/real
+@@ -3763,7 +3763,7 @@
+
+ NAME: cache_effective_group
+ TYPE: string
+-DEFAULT: none
++DEFAULT: proxy
+ LOC: Config.effectiveGroup
+ DOC_START
+ If you want Squid to run with a specific GID regardless of
diff --git a/extra/squid/squid.conf.d b/extra/squid/squid.conf.d
new file mode 100644
index 000000000..b41916a1d
--- /dev/null
+++ b/extra/squid/squid.conf.d
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to squid
+#
+SQUID_ARGS="-D -sYC"
diff --git a/extra/squid/squid.cron b/extra/squid/squid.cron
new file mode 100644
index 000000000..c2b5bc9ce
--- /dev/null
+++ b/extra/squid/squid.cron
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+PID=`pidof -o %PPID /usr/sbin/squid`
+[ -n "$PID" ] && /usr/sbin/squid -k rotate
diff --git a/extra/squid/squid.install b/extra/squid/squid.install
new file mode 100644
index 000000000..85776358c
--- /dev/null
+++ b/extra/squid/squid.install
@@ -0,0 +1,28 @@
+post_install() {
+ if [ -z "$(grep ^proxy: /etc/group)" ]; then
+ usr/sbin/groupadd -g 15 proxy &>/dev/null
+ fi
+
+ id proxy &>/dev/null || \
+ usr/sbin/useradd -u 15 -g proxy -d /var/empty proxy
+
+ chown proxy.proxy var/{cache,log}/squid
+
+ cat << EOF
+Release notes for version 2.7:
+ http://www.squid-cache.org/Versions/v2/2.7/RELEASENOTES.html
+
+EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/userdel proxy &> /dev/null
+ if [ ! -z "$(grep ^proxy: /etc/group)" ]; then
+ usr/sbin/groupdel proxy &>/dev/null
+ fi
+}
+
diff --git a/extra/squid/squid.pam b/extra/squid/squid.pam
new file mode 100644
index 000000000..df8a8104f
--- /dev/null
+++ b/extra/squid/squid.pam
@@ -0,0 +1,4 @@
+#/etc/pam.d/squid
+#
+auth required pam_unix.so
+account required pam_unix.so
diff --git a/extra/squirrelmail/PKGBUILD b/extra/squirrelmail/PKGBUILD
new file mode 100644
index 000000000..dcdb822f5
--- /dev/null
+++ b/extra/squirrelmail/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 71649 2010-03-07 23:43:31Z paul $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Manolis Tzanidakis <manolis@archlinux.org>
+
+pkgname=squirrelmail
+pkgver=1.4.20
+pkgrel=1
+pkgdesc="Webmail for Nuts!"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.squirrelmail.org"
+depends=('php' 'perl' 'imap-server')
+makedepends=('findutils')
+backup=(srv/http/squirrelmail/.htaccess srv/http/squirrelmail/config/config.php)
+install=$pkgname.install
+source=(http://superb-sea2.dl.sf.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('60ffedc61b295650c7695c2b74209294')
+
+build() {
+ # install
+ mkdir -p $startdir/pkg/srv/http/squirrelmail || return 1
+ cd $startdir/pkg/srv/http/squirrelmail || return 1
+ cp -a $startdir/src/squirrelmail-$pkgver/* . || return 1
+
+ # remove CVS dirs
+ find $startdir/pkg -type d -name CVS -exec rm -rf {} \; || return 1
+
+ # customize config (data and attachments in /var/lib/squirrelmail)
+ cd config || return 1
+ cp -p config_default.php config.php || return 1
+ sed -i 's|^$attachment_dir = $data_dir;|$attachment_dir = "/var/lib/squirrelmail/attachments";|' config.php || return 1
+ sed -i 's|^$data_dir = "/var/local/squirrelmail/data";|$data_dir = "/var/lib/squirrelmail/data";|' config.php || return 1
+
+ # create data and attachments directories, set ownership/permissions
+ # ideally we would set attachments differently to root:-1 with 0730, but
+ # I don't know how to get chgrp to take "-1" properly; perhaps someday
+ # I'll figure out how to make this work
+ mkdir -p $startdir/pkg/var/lib/squirrelmail/{data,attachments} || return 1
+ chown -R http:http $startdir/pkg/var/lib/squirrelmail/data \
+ || return 1
+ chown -R http:http $startdir/pkg/var/lib/squirrelmail/attachments \
+ || return 1
+ chmod 0700 $startdir/pkg/var/lib/squirrelmail/data || return 1
+ chmod 0300 $startdir/pkg/var/lib/squirrelmail/attachments || return 1
+
+ # restrict access to squirrelmail by default
+ echo "deny from all" >$startdir/pkg/srv/http/squirrelmail/.htaccess \
+ || return 1
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/squirrelmail/squirrelmail.install b/extra/squirrelmail/squirrelmail.install
new file mode 100644
index 000000000..06f411f16
--- /dev/null
+++ b/extra/squirrelmail/squirrelmail.install
@@ -0,0 +1,34 @@
+post_install() {
+ /bin/cat <<THEEND
+
+NOTE
+----
+To configure squirrelmail :
+$ cd /srv/http/squirrelmail/config
+$ perl conf.pl
+
+Make sure to check the documentation on its webpage for more details,
+especially about securing your setup. The default attachments dir
+has been placed in /var/lib/squirrelmail/attachments.
+
+Also make sure your php module is loaded in your Apache config.
+
+THEEND
+}
+
+post_upgrade() {
+ /bin/true
+}
+
+pre_remove() {
+ /bin/true
+}
+
+post_remove() {
+ /bin/true
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/extra/srm/PKGBUILD b/extra/srm/PKGBUILD
new file mode 100644
index 000000000..8609ada5b
--- /dev/null
+++ b/extra/srm/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 100939 2010-11-26 19:52:12Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=srm
+pkgver=1.2.11
+pkgrel=1
+pkgdesc="A secure replacement for rm(1) that overwrites data before unlinking"
+arch=('i686' 'x86_64')
+url="http://srm.sourceforge.net/"
+license=('custom')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ee8269be18de6bbd3f74252d6e3039fe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make prefix="${pkgdir}/usr" install || return 1
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/srm/LICENSE" || return 1
+}
diff --git a/extra/sshfs/PKGBUILD b/extra/sshfs/PKGBUILD
new file mode 100644
index 000000000..4a29c7d84
--- /dev/null
+++ b/extra/sshfs/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 68119 2010-02-10 20:04:33Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=sshfs
+pkgver=2.2
+pkgrel=3
+pkgdesc="FUSE client based on the SSH File Transfer Protocol"
+arch=('i686' 'x86_64')
+url="http://fuse.sourceforge.net/sshfs.html"
+license=('GPL')
+depends=('fuse' 'glib2' 'openssh')
+makedepends=('pkgconfig')
+source=(http://downloads.sourceforge.net/sourceforge/fuse/${pkgname}-fuse-${pkgver}.tar.gz)
+md5sums=('26e9206eb5169e87e6f95f54bc005a4f')
+
+build() {
+ cd "${srcdir}/${pkgname}-fuse-${pkgver}"
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/ssmtp/PKGBUILD b/extra/ssmtp/PKGBUILD
new file mode 100644
index 000000000..03b72606d
--- /dev/null
+++ b/extra/ssmtp/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 75590 2010-04-01 22:29:13Z ibiru $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
+pkgname=ssmtp
+pkgver=2.64
+pkgrel=2
+pkgdesc="Extremely simple MTA to get mail off the system to a mailhub"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://packages.debian.org/stable/mail/ssmtp"
+depends=('openssl')
+conflicts=('exim')
+provides=('smtp-forwarder')
+backup=('etc/ssmtp/ssmtp.conf' 'etc/ssmtp/revaliases')
+options=('!makeflags' '!emptydirs')
+source=(http://ftp.debian.org/debian/pool/main/s/ssmtp/${pkgname}_${pkgver}.orig.tar.bz2)
+md5sums=('65b4e0df4934a6cd08c506cabcbe584f')
+
+## if you build in chroot, make sure the chroots fully qualified hostname is the same as in your real root system ##
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --enable-md5auth --enable-ssl || return 1
+ make || return 1
+ yes | make prefix="${pkgdir}/usr" mandir="${pkgdir}/usr/share/man/man8" etcdir="${pkgdir}/etc" install || return 1
+
+ install -D -m644 ssmtp.conf.5 "${pkgdir}/usr/share/man/man5/ssmtp.conf.5" || return 1
+
+ ln -s ssmtp "${pkgdir}/usr/sbin/sendmail"
+ ln -s ssmtp "${pkgdir}/usr/sbin/newaliases"
+ ln -s ssmtp "${pkgdir}/usr/sbin/mailq"
+}
diff --git a/extra/stardict/PKGBUILD b/extra/stardict/PKGBUILD
new file mode 100644
index 000000000..b02aefd11
--- /dev/null
+++ b/extra/stardict/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 106155 2011-01-14 21:07:17Z bisson $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Neil Lin <neil@vip.url.com.tw>
+
+pkgname=stardict
+pkgver=3.0.2
+pkgrel=2
+pkgdesc='A powerful international dictionary written in Gtk2.'
+arch=('i686' 'x86_64')
+url='http://stardict.sourceforge.net/'
+license=('GPL')
+depends=('enchant' 'gtk2' 'libsigc++' 'libsm')
+makedepends=('intltool' 'popt' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+source=("http://downloads.sourceforge.net/sourceforge/stardict/$pkgname-$pkgver.tar.bz2"
+ 'help-in-destdir.patch'
+ 'as-needed.patch')
+sha1sums=('301875657cd39b5f25e5933ece22936a28db1230'
+ '0249d769e5cc85e183eb395b824342f8ca320f56'
+ '22fca061d1be23ac79da6c0ec5fc488ae0aca9c1')
+
+build()
+{
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # patches accepted upstream; will be in stardict>3.0.2
+ patch -p1 -i ../help-in-destdir.patch
+ patch -p1 -i ../as-needed.patch
+ automake
+
+ ./configure PKG_CONFIG=/usr/bin/pkg-config --prefix=/usr \
+ --sysconfdir=/etc --mandir=/usr/share/man \
+ --disable-gnome-support --disable-schemas-install \
+ --disable-espeak --disable-gucharmap \
+ --disable-festival --disable-updateinfo
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/stardict/as-needed.patch b/extra/stardict/as-needed.patch
new file mode 100644
index 000000000..1e924be9f
--- /dev/null
+++ b/extra/stardict/as-needed.patch
@@ -0,0 +1,29 @@
+Index: stardict/src/Makefile.am
+===================================================================
+--- stardict/src/Makefile.am (revision 489)
++++ stardict/src/Makefile.am (working copy)
+@@ -26,9 +26,9 @@
+ -DSTARDICT_LIB_DIR=\""$(libdir)/stardict"\"
+
+
+-stardict_DEPENDENCIES = $(LOCAL_SIGCPP_LIBFILE) lib/libstardict.a
++stardict_DEPENDENCIES = lib/libstardict.a $(LOCAL_SIGCPP_LIBFILE)
+ stardict_LDFLAGS =
+-stardict_LDADD = $(STARDICT_LIBS) $(LOCAL_SIGCPP_LIBFILE) lib/libstardict.a
++stardict_LDADD = lib/libstardict.a $(STARDICT_LIBS) $(LOCAL_SIGCPP_LIBFILE)
+
+ if !GNOME_SUPPORT
+ if MAEMO_SUPPORT
+Index: stardict/tests/Makefile.am
+===================================================================
+--- stardict/tests/Makefile.am (revision 489)
++++ stardict/tests/Makefile.am (working copy)
+@@ -49,7 +49,7 @@
+ t_res_database_SOURCES = t_res_database.cpp
+ t_res_database_DEPENDENCIES = $(top_builddir)/src/lib/libstardict.a
+
+-LDADD = @STARDICT_LIBS@ $(top_builddir)/src/lib/libstardict.a \
++LDADD = $(top_builddir)/src/lib/libstardict.a $(STARDICT_LIBS) \
+ $(LOCAL_SIGCPP_LIBFILE)
+ ## -I$(top_builddir) is for config.h, it's generated by configure in the build dir
+ AM_CPPFLAGS = @STARDICT_CFLAGS@ $(LOCAL_SIGCPP_INCLUDE) -I$(top_builddir) \
diff --git a/extra/stardict/help-in-destdir.patch b/extra/stardict/help-in-destdir.patch
new file mode 100644
index 000000000..ba301b332
--- /dev/null
+++ b/extra/stardict/help-in-destdir.patch
@@ -0,0 +1,21 @@
+diff -aur old/help/Makefile.am new/help/Makefile.am
+--- old/help/Makefile.am 2011-01-03 17:14:20.000000000 +0100
++++ new/help/Makefile.am 2011-01-13 21:42:06.046672489 +0100
+@@ -104,7 +104,7 @@
+ else
+ stardict-install-html:
+ for lc in $(STARDICT_ALL_LINGUAS); do \
+- install_dir=$(STARDICT_HTML_INSTALL_DIR)/$${lc}; \
++ install_dir=$(DESTDIR)$(STARDICT_HTML_INSTALL_DIR)/$${lc}; \
+ htmldir=$(srcdir)/$${lc}/html; \
+ for file in `find $${htmldir} -type f -print`; do \
+ relfile=$${file#$${htmldir}/}; \
+@@ -126,7 +126,7 @@
+ else
+ stardict-uninstall-html:
+ for lc in $(STARDICT_ALL_LINGUAS); do \
+- install_dir=$(STARDICT_HTML_INSTALL_DIR)/$${lc}; \
++ install_dir=$(DESTDIR)$(STARDICT_HTML_INSTALL_DIR)/$${lc}; \
+ rm -rf $${install_dir}; \
+ done;
+ endif
diff --git a/extra/startup-notification/PKGBUILD b/extra/startup-notification/PKGBUILD
new file mode 100644
index 000000000..c3e5760a6
--- /dev/null
+++ b/extra/startup-notification/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 111001 2011-02-23 15:59:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=startup-notification
+pkgver=0.10
+pkgrel=2
+pkgdesc="Monitor and display application startup"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libx11' 'xcb-util>=0.3.4')
+options=('!libtool')
+url="http://www.freedesktop.org"
+source=(http://www.freedesktop.org/software/startup-notification/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('bca0ed1c74bc4e483ea2ed12a5717354')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e '/AC_PATH_XTRA/d' configure.in
+ autoreconf --force --install
+ ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/stellarium/PKGBUILD b/extra/stellarium/PKGBUILD
new file mode 100644
index 000000000..9e8f6d8b1
--- /dev/null
+++ b/extra/stellarium/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 108873 2011-02-04 15:03:02Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=stellarium
+pkgver=0.10.6
+pkgrel=1
+pkgdesc="A stellarium with great graphics and a nice database of sky-objects"
+arch=("i686" "x86_64")
+url="http://stellarium.free.fr/"
+license=('GPL2')
+depends=('libpng' 'mesa' 'libgl' 'freetype2' 'qt' 'openssl')
+makedepends=('cmake' 'boost')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+ stellarium.desktop
+ stellarium.png)
+md5sums=('daab49529f0ad76efe871b639ac79295'
+ 'b4f9ebd082c4e112c2bbfac9f2c8465d'
+ '134ab08e73f4f5d995a7931a7957b7a3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # install desktop file & pixmap
+ install -Dm644 ${srcdir}/stellarium.desktop \
+ ${pkgdir}/usr/share/applications/stellarium.desktop
+ install -Dm644 ${srcdir}/stellarium.png \
+ ${pkgdir}/usr/share/pixmaps/stellarium.png
+}
diff --git a/extra/stellarium/libpng14.patch b/extra/stellarium/libpng14.patch
new file mode 100644
index 000000000..7ed1da689
--- /dev/null
+++ b/extra/stellarium/libpng14.patch
@@ -0,0 +1,21 @@
+diff -Naur stellarium-0.10.2-orig/src/core/StelTextureMgr.cpp stellarium-0.10.2/src/core/StelTextureMgr.cpp
+--- stellarium-0.10.2-orig/src/core/StelTextureMgr.cpp 2010-01-21 17:04:57.000000000 -0500
++++ stellarium-0.10.2/src/core/StelTextureMgr.cpp 2010-01-21 17:06:55.000000000 -0500
+@@ -513,7 +513,7 @@
+ fread (magic, 1, sizeof (magic), fp);
+
+ /* check for valid magic number */
+- if (!png_check_sig (magic, sizeof (magic)))
++ if (png_sig_cmp (magic, 0, sizeof (magic)))
+ {
+ qWarning() << "error: \"" << filename << "\" is not a valid PNG image!";
+ fclose (fp);
+@@ -576,7 +576,7 @@
+ /* convert 1-2-4 bits grayscale images to 8 bits
+ grayscale. */
+ if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
+- png_set_gray_1_2_4_to_8 (png_ptr);
++ png_set_expand_gray_1_2_4_to_8 (png_ptr);
+
+ if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS))
+ png_set_tRNS_to_alpha (png_ptr);
diff --git a/extra/stellarium/stellarium.desktop b/extra/stellarium/stellarium.desktop
new file mode 100644
index 000000000..1b82b18bd
--- /dev/null
+++ b/extra/stellarium/stellarium.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Stellarium nightsky renderer
+GenericName=Nightsky renderer
+Comment=A real-time nightsky renderer
+Categories=Education;Science;Astronomy;
+Icon=stellarium
+Exec=stellarium
+Terminal=false
+Type=Application
diff --git a/extra/stellarium/stellarium.png b/extra/stellarium/stellarium.png
new file mode 100644
index 000000000..08bce127c
--- /dev/null
+++ b/extra/stellarium/stellarium.png
Binary files differ
diff --git a/extra/strace/PKGBUILD b/extra/strace/PKGBUILD
new file mode 100644
index 000000000..93923b007
--- /dev/null
+++ b/extra/strace/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115123 2011-03-17 01:51:59Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=strace
+pkgver=4.6
+pkgrel=1
+pkgdesc="A useful diagnositic, instructional, and debugging tool"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/strace/"
+license=('custom')
+depends=('perl')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-$pkgver.tar.xz)
+md5sums=('e537b2b1afeec70c0e6e27a0d0fd671e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/" install
+
+ install -Dm644 COPYRIGHT ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/streamripper/PKGBUILD b/extra/streamripper/PKGBUILD
new file mode 100644
index 000000000..009f2eb27
--- /dev/null
+++ b/extra/streamripper/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 51858 2009-09-12 21:44:06Z eric $
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=streamripper
+pkgver=1.64.6
+pkgrel=1
+pkgdesc="Records and splits streaming mp3 into tracks"
+arch=('i686' 'x86_64')
+url="http://streamripper.sourceforge.net"
+license=('GPL')
+depends=('glibc' 'glib2' 'libmad' 'faad2>=2.7' 'libvorbis')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/streamripper/streamripper-$pkgver.tar.gz)
+md5sums=('a37a1a8b8f9228522196a122a1c2dd32')
+sha1sums=('bc8a8d3ad045e0772ca691d2063c39efcc0dca45')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/streamtuner/PKGBUILD b/extra/streamtuner/PKGBUILD
new file mode 100644
index 000000000..f449a3f89
--- /dev/null
+++ b/extra/streamtuner/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 94130 2010-10-04 18:10:32Z andyrtr $
+# Contributor: Greg Grabinski <greg@grabinski.ch>
+# Maintainer: ndreas Radke <andyrtr@archlinux.org>
+
+pkgname=streamtuner
+pkgver=0.99.99
+pkgrel=11
+pkgdesc="A stream directory browser"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/streamtuner/"
+license=('custom')
+depends=('taglib' 'libxml2' 'gtk2' 'curl>=7.16.2' 'pygtk>=2.13.0-2')
+conflicts=('streamtuner-live365')
+replaces=('streamtuner-live365')
+source=(http://savannah.nongnu.org/download/streamtuner/$pkgname-$pkgver.tar.gz \
+ http://savannah.nongnu.org/download/streamtuner/streamtuner-0.99.99-live365.diff \
+ http://savannah.nongnu.org/download/streamtuner/streamtuner-0.99.99-pygtk-2.6.diff
+ streamtuner-0.99.99-shoutcast.diff
+ shoutcast-redesign-patch.diff)
+options=('!libtool' '!emptydirs')
+md5sums=('2027b7c34e85b594524b0b4351c14362'
+ '8aa1994a849b05d2b8fffbda702b8a25'
+ '7aff45a41c60358cb2332c7ce644f661'
+ '1eab6edce130e1a1e5f208cd3ed6766a'
+ '8a3a17a1719a79353d6ad7ac8564947b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -p0 -i ${srcdir}/streamtuner-0.99.99-live365.diff || return 1
+ patch -p0 -i ${srcdir}/streamtuner-0.99.99-pygtk-2.6.diff || return 1
+ # fix http://bugs.archlinux.org/task/10308
+ patch -p0 -i ${srcdir}/streamtuner-0.99.99-shoutcast.diff || return 1
+ # fix http://bugs.archlinux.org/task/11463
+ patch -p1 -i ${srcdir}/shoutcast-redesign-patch.diff || return 1
+
+ # python2 fixes
+ sed -i "s:^for ac_prog in python:for ac_prog in python2:" ${srcdir}/${pkgname}-${pkgver}/configure
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make prefix=${pkgdir}/usr install
+
+ #Add license file
+ install -Dm0644 ${srcdir}/${pkgname}-${pkgver}/COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/streamtuner/shoutcast-redesign-patch.diff b/extra/streamtuner/shoutcast-redesign-patch.diff
new file mode 100644
index 000000000..644e2273e
--- /dev/null
+++ b/extra/streamtuner/shoutcast-redesign-patch.diff
@@ -0,0 +1,12 @@
+diff -uar streamtuner-0.99.99-orig/src/plugins/shoutcast/shoutcast.c streamtuner-0.99.99-patched/src/plugins/shoutcast/shoutcast.c
+--- streamtuner-0.99.99-orig/src/plugins/shoutcast/shoutcast.c 2008-09-12 18:04:00.229785732 -0400
++++ streamtuner-0.99.99-patched/src/plugins/shoutcast/shoutcast.c 2008-09-12 18:05:56.716440720 -0400
+@@ -37,7 +37,7 @@
+
+ /*** cpp *********************************************************************/
+
+-#define SHOUTCAST_ROOT "http://www.shoutcast.com/"
++#define SHOUTCAST_ROOT "http://classic.shoutcast.com/"
+
+ #define MAX_STREAMS_PER_PAGE 100 /* enforced by SHOUTcast */
+
diff --git a/extra/streamtuner/streamtuner-0.99.99-shoutcast.diff b/extra/streamtuner/streamtuner-0.99.99-shoutcast.diff
new file mode 100644
index 000000000..e7fcbca94
--- /dev/null
+++ b/extra/streamtuner/streamtuner-0.99.99-shoutcast.diff
@@ -0,0 +1,41 @@
+--- src/plugins/shoutcast/shoutcast.c.orig 2004-12-19 15:21:00.000000000 +0000
++++ src/plugins/shoutcast/shoutcast.c 2008-03-16 10:39:24.000000000 +0000
+@@ -94,6 +94,8 @@
+
+ GNode *parent_node;
+ SHOUTcastStream *stream;
++
++ int parse_genres;
+ } ReloadInfo;
+
+ /*** variable declarations ***************************************************/
+@@ -518,6 +520,7 @@
+ info.npages = 0;
+ info.parent_node = NULL;
+ info.stream = NULL;
++ info.parse_genres = 0;
+
+ status = st_transfer_session_get_by_line(session,
+ url,
+@@ -565,10 +568,16 @@
+ info->stream = stream_new_cb(NULL);
+ info->stream->url_postfix = st_sgml_ref_expand_len(s1, s2 - s1);
+ }
+- else if (info->page < 2
+- && (((s1 = st_str_has_prefix_span(line, "\t<OPTION VALUE=\""))
+- || (s1 = st_str_has_prefix_span(line, "\t\t<OPTION VALUE=\"")))
+- && (s2 = strstr(s1, "\">"))))
++ else if (info->page < 2 && (s1 = st_strstr_span(line, "<OPTION VALUE=\"TopTen\">")))
++ {
++ info->parse_genres = 1;
++ }
++ else if (info->page < 2 && info->parse_genres == 1 && (s1 = st_strstr_span(line, "</SELECT>")))
++ {
++ info->parse_genres = 0;
++ }
++ else if (info->page < 2 && info->parse_genres == 1
++ && ((s1 = st_strstr_span(line, "<OPTION VALUE=\"")) && (s2 = strstr(s1, "\">"))))
+ {
+ STCategory *category;
+ GNode *node;
+
diff --git a/extra/strigi/PKGBUILD b/extra/strigi/PKGBUILD
new file mode 100644
index 000000000..736ca5379
--- /dev/null
+++ b/extra/strigi/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 110940 2011-02-23 08:05:50Z eric $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=strigi
+pkgver=git20110107
+pkgrel=2
+pkgdesc="Fast crawling desktop search engine with Qt4 GUI"
+arch=('i686' 'x86_64')
+url="http://www.vandenoever.info/software/strigi/"
+license=('GPL2')
+depends=('qt' 'clucene' 'bzip2' 'exiv2' 'libxml2')
+makedepends=('cmake' 'pkg-config')
+source=("ftp://ftp.archlinux.org/other/kde/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('6f648631061c61328ee60c0287ad2e37')
+sha1sums=('7c3dd5d6d18045d0fcf36831bcf8b9e24abfdd52')
+options=('!libtool' 'force')
+
+build() {
+ cd "${srcdir}"
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_INOTIFY=ON
+ make
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/subversion/PKGBUILD b/extra/subversion/PKGBUILD
new file mode 100644
index 000000000..8465f232d
--- /dev/null
+++ b/extra/subversion/PKGBUILD
@@ -0,0 +1,92 @@
+# $Id: PKGBUILD 103462 2010-12-19 17:12:50Z paul $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=subversion
+pkgver=1.6.15
+pkgrel=1
+pkgdesc="Replacement for CVS, another versioning system (SVN)"
+arch=('i686' 'x86_64')
+license=('apache' 'bsd')
+depends=('neon' 'apr-util')
+makedepends=('heimdal' 'apache' 'python2' 'perl' 'swig' 'ruby' 'java-runtime'
+ 'autoconf' 'sqlite3' 'db' 'e2fsprogs' 'libgnome-keyring' 'kdelibs')
+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)
+
+backup=('etc/xinetd.d/svn' 'etc/conf.d/svnserve')
+url="http://subversion.apache.org/"
+provides=('svn')
+options=('!makeflags' '!libtool')
+optdepends=('libgnome-keyring' 'kdeutils-kwallet' 'bash-completion: for svn bash completion')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ export PYTHON=/usr/bin/python2
+
+ # apply patches
+ patch -p0 < $srcdir/subversion.rpath.fix.patch
+ patch -p1 -i $srcdir/subversion.suppress.deprecation.warnings.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.1 \
+ --enable-javahl --with-gnome-keyring --with-kwallet
+
+ # build
+ (make external-all && make LT_LDFLAGS="-L$Fdestdir/usr/lib" local-all )
+}
+
+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
+}
+md5sums=('113fca1d9e4aa389d7dc2b210010fa69'
+ 'a2b029e8385007ffb99b437b30521c90'
+ 'a0db6dd43af33952739b6ec089852630'
+ 'c459e299192552f61578f3438abf0664'
+ 'a6371baeda7e224504629ecdda2749b4'
+ '6b4340ba9d8845cd8497e013ae01be3f'
+ '1166f3b7413d7e7450299b3525680bbe')
diff --git a/extra/subversion/subversion.rpath.fix.patch b/extra/subversion/subversion.rpath.fix.patch
new file mode 100644
index 000000000..ba6ee9e4e
--- /dev/null
+++ b/extra/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/extra/subversion/subversion.suppress.deprecation.warnings.patch b/extra/subversion/subversion.suppress.deprecation.warnings.patch
new file mode 100644
index 000000000..94ce89b18
--- /dev/null
+++ b/extra/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/extra/subversion/svn b/extra/subversion/svn
new file mode 100644
index 000000000..8988aaf63
--- /dev/null
+++ b/extra/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/extra/subversion/svnmerge.py b/extra/subversion/svnmerge.py
new file mode 100644
index 000000000..d8931648f
--- /dev/null
+++ b/extra/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/extra/subversion/svnserve b/extra/subversion/svnserve
new file mode 100755
index 000000000..670fee742
--- /dev/null
+++ b/extra/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/extra/subversion/svnserve.conf b/extra/subversion/svnserve.conf
new file mode 100644
index 000000000..37fb7ea10
--- /dev/null
+++ b/extra/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/extra/sweep/PKGBUILD b/extra/sweep/PKGBUILD
new file mode 100644
index 000000000..3b664723e
--- /dev/null
+++ b/extra/sweep/PKGBUILD
@@ -0,0 +1,20 @@
+# $Id: PKGBUILD 54821 2009-10-11 19:41:33Z giovanni $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributer: Jason Chu <jchu@xentac.net>
+pkgname=sweep
+pkgver=0.9.3
+pkgrel=1
+pkgdesc="Sound editing and mixing program"
+arch=(i686 x86_64)
+license=('GPL2')
+depends=('gtk2' 'libsamplerate' 'libmad' 'libvorbis' 'alsa-lib' 'speex')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+url="http://www.metadecks.org/software/sweep/"
+
+build() {
+ cd $startdir/src/sweep-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make || return 1
+ make prefix=$startdir/pkg/usr sysconfdir=$startdir/pkg/etc localstatedir=$startdir/pkg/var install
+}
+md5sums=('69e19bad2673f20e15224c0a5b5d4c85')
diff --git a/extra/swfdec-mozilla/PKGBUILD b/extra/swfdec-mozilla/PKGBUILD
new file mode 100644
index 000000000..d9503119b
--- /dev/null
+++ b/extra/swfdec-mozilla/PKGBUILD
@@ -0,0 +1,21 @@
+#$Id: PKGBUILD 17042 2008-10-24 15:55:09Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=swfdec-mozilla
+pkgver=0.8.2
+pkgrel=1
+pkgdesc="free plugin for Mozilla browsers that uses the Swfdec library for playing SWF files"
+arch=('i686' 'x86_64')
+url="http://swfdec.freedesktop.org"
+license=('LGPL')
+depends=("swfdec>=$pkgver")
+source=(http://swfdec.freedesktop.org/download/swfdec-mozilla/0.8/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('716632e0d35b3c1582c180569ba30346')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static --with-plugin-dir=/usr/lib/mozilla/plugins/
+ make || return 1
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/extra/swfdec/PKGBUILD b/extra/swfdec/PKGBUILD
new file mode 100644
index 000000000..974c85aa9
--- /dev/null
+++ b/extra/swfdec/PKGBUILD
@@ -0,0 +1,25 @@
+#$Id: PKGBUILD 64546 2010-01-21 03:43:49Z eric $
+#Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=swfdec
+pkgver=0.8.4
+pkgrel=2
+pkgdesc="free library for decoding and rendering Flash animations"
+arch=('i686' 'x86_64')
+url="http://swfdec.freedesktop.org"
+license=('LGPL')
+depends=('alsa-lib>=1.0.18' 'liboil>=0.3.15' 'gtk2>=2.14.6' 'libsoup>=2.24.2.1-1')
+makedepends=('pkgconfig' 'gstreamer0.10-ffmpeg>=0.10.6-1')
+optdepends=('gstreamer0.10-base: required for various audio and video formats'
+ 'gstreamer0.10-ffmpeg: most common audio/video format for internet flash')
+source=(http://swfdec.freedesktop.org/download/swfdec/0.8/${pkgname}-${pkgver}.tar.gz)
+md5sums=('aece501d0e73f3e564200a44ec03c385')
+options=('!libtool' '!emptydirs')
+
+build() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static --enable-gtk \
+ --enable-gstreamer --enable-soup --with-audio=alsa
+ make || return 1
+ make DESTDIR=${startdir}/pkg install || return 1
+}
diff --git a/extra/swh-plugins/PKGBUILD b/extra/swh-plugins/PKGBUILD
new file mode 100644
index 000000000..a8db515c6
--- /dev/null
+++ b/extra/swh-plugins/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 77978 2010-04-19 08:02:08Z dgriffiths $
+#Maintainer: Damir Perisa <damir.perisa@bluewin.ch>
+#Contributor: Robert Emil Berge
+
+pkgname=swh-plugins
+pkgver=0.4.15
+pkgrel=3
+pkgdesc="LADSPA Plugin-Collection from plugin.org.uk"
+arch=(i686 x86_64)
+url="http://plugin.org.uk/"
+license=('GPL')
+depends=('fftw' 'ladspa')
+groups=('ladspa-plugins')
+source=(http://plugin.org.uk/releases/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2fbdccef2462ea553901acd429fa3573')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+#Arch64 fix, -fPIC seems to be the only option
+if [ "$CARCH" = "x86_64" ]; then
+ export CFLAGS="$CFLAGS -fPIC"
+ export CXXFLAGS="$CFLAGS"
+fi
+
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/swig/PKGBUILD b/extra/swig/PKGBUILD
new file mode 100644
index 000000000..b74e723ad
--- /dev/null
+++ b/extra/swig/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 115117 2011-03-17 01:15:24Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=swig
+pkgver=2.0.2
+pkgrel=4
+pkgdesc="Generate scripting interfaces to C/C++ code"
+arch=('i686' 'x86_64')
+url="http://www.swig.org/"
+license=('custom')
+depends=('gcc-libs' 'zlib' 'pcre')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ swig-deprecated-pycobject.patch
+ swig-pyslice.patch)
+sha1sums=('1fc5a7b42ae41c51772d7268ba0f987e9514d110'
+ 'add71330c5d839d9a27b1ca688e6c5e31f1edb7b'
+ '7248b34032db7cb84143a6cefae425b222ce43a6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Use PyCapsule API instead of deprecated PyCObject API in python bindings
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=623854
+ patch -Np1 -i ../swig-deprecated-pycobject.patch
+
+ # Fix PySlice* API/ABI issues with the Python 3.2
+ # See https://bugzilla.redhat.com/show_bug.cgi?id=666429
+ patch -Np1 -i ../swig-pyslice.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+ install -D -m644 LICENSE-UNIVERSITIES "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE-UNIVERSITIES
+}
diff --git a/extra/swig/swig-deprecated-pycobject.patch b/extra/swig/swig-deprecated-pycobject.patch
new file mode 100644
index 000000000..5665252bb
--- /dev/null
+++ b/extra/swig/swig-deprecated-pycobject.patch
@@ -0,0 +1,92 @@
+diff -up swig-2.0.0/Lib/python/pyrun.swg.rh623854 swig-2.0.0/Lib/python/pyrun.swg
+--- swig-2.0.0/Lib/python/pyrun.swg.rh623854 2010-02-28 00:26:02.000000000 +0100
++++ swig-2.0.0/Lib/python/pyrun.swg 2010-08-17 16:32:16.581604656 +0200
+@@ -45,8 +45,18 @@
+ #define SWIG_SetErrorMsg SWIG_Python_SetErrorMsg
+ #define SWIG_ErrorType(code) SWIG_Python_ErrorType(code)
+ #define SWIG_Error(code, msg) SWIG_Python_SetErrorMsg(SWIG_ErrorType(code), msg)
+-#define SWIG_fail goto fail
++#define SWIG_fail goto fail
+
++/*
++ * Python 2.7 and newer and Python 3.1 and newer should use Capsules API instead of
++ * CObjects API.
++ */
++#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \
++ (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0))
++#define USE_CAPSULES
++#define TYPE_POINTER_NAME \
++ ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
++#endif
+
+ /* Runtime API implementation */
+
+@@ -1356,8 +1366,12 @@ SWIG_Python_GetModule(void) {
+ #ifdef SWIG_LINK_RUNTIME
+ type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
+ #else
++#ifdef USE_CAPSULES
++ type_pointer = PyCapsule_Import(TYPE_POINTER_NAME, 0);
++#else
+ type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
+ (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
++#endif
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
+ type_pointer = (void *)0;
+@@ -1402,9 +1416,14 @@ PyModule_AddObject(PyObject *m, char *na
+ SWIGRUNTIME void
+ SWIG_Python_DestroyModule(void *vptr)
+ {
++ size_t i;
++#ifdef USE_CAPSULES
++ swig_module_info *swig_module =
++ (swig_module_info *) PyCapsule_GetPointer((PyObject *)vptr, TYPE_POINTER_NAME);
++#else
+ swig_module_info *swig_module = (swig_module_info *) vptr;
++#endif
+ swig_type_info **types = swig_module->types;
+- size_t i;
+ for (i =0; i < swig_module->size; ++i) {
+ swig_type_info *ty = types[i];
+ if (ty->owndata) {
+@@ -1426,9 +1445,18 @@ SWIG_Python_SetModule(swig_module_info *
+ PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
+ swig_empty_runtime_method_table);
+ #endif
++#ifdef USE_CAPSULES
++ PyObject *pointer = PyCapsule_New((void *)swig_module, TYPE_POINTER_NAME,
++ (PyCapsule_Destructor)SWIG_Python_DestroyModule);
++#else
+ PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
++#endif
+ if (pointer && module) {
++#ifdef USE_CAPSULES
++ PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
++#else
+ PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
++#endif
+ } else {
+ Py_XDECREF(pointer);
+ }
+@@ -1449,12 +1477,20 @@ SWIG_Python_TypeQuery(const char *type)
+ PyObject *obj = PyDict_GetItem(cache, key);
+ swig_type_info *descriptor;
+ if (obj) {
++#ifdef USE_CAPSULES
++ descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, type);
++#else
+ descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
++#endif
+ } else {
+ swig_module_info *swig_module = SWIG_Python_GetModule();
+ descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
+ if (descriptor) {
++#ifdef USE_CAPSULES
++ obj = PyCapsule_New(descriptor, type, NULL);
++#else
+ obj = PyCObject_FromVoidPtr(descriptor, NULL);
++#endif
+ PyDict_SetItem(cache, key, obj);
+ Py_DECREF(obj);
+ }
diff --git a/extra/swig/swig-pyslice.patch b/extra/swig/swig-pyslice.patch
new file mode 100644
index 000000000..e615b5d03
--- /dev/null
+++ b/extra/swig/swig-pyslice.patch
@@ -0,0 +1,66 @@
+diff -Naur swig-2.0.2.ori/Lib/python/pycontainer.swg swig-2.0.2/Lib/python/pycontainer.swg
+--- swig-2.0.2.ori/Lib/python/pycontainer.swg 2010-10-19 02:31:31.000000000 -0400
++++ swig-2.0.2/Lib/python/pycontainer.swg 2011-03-16 20:41:28.090000004 -0400
+@@ -630,6 +630,7 @@
+ return x;
+ }
+
++#if !NO_PYSLICE
+ /* typemap for slice object support */
+ %typemap(in) PySliceObject* {
+ $1 = (PySliceObject *) $input;
+@@ -637,6 +638,7 @@
+ %typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) PySliceObject* {
+ $1 = PySlice_Check($input);
+ }
++#endif
+
+ Sequence* __getslice__(difference_type i, difference_type j) throw (std::out_of_range) {
+ return swig::getslice(self, i, j);
+@@ -659,7 +661,11 @@
+ /* Overloaded methods for Python 3 compatibility
+ * (Also useful in Python 2.x)
+ */
++#if NO_PYSLICE
++ Sequence* __getitem__(PyObject *slice) throw (std::out_of_range) {
++#else
+ Sequence* __getitem__(PySliceObject *slice) throw (std::out_of_range) {
++#endif
+ Py_ssize_t i, j, step;
+ if( !PySlice_Check(slice) ) {
+ SWIG_Error(SWIG_TypeError, "Slice object expected.");
+@@ -669,7 +675,11 @@
+ return swig::getslice(self, i, j);
+ }
+
++#if NO_PYSLICE
++ void __setitem__(PyObject *slice, const Sequence& v)
++#else
+ void __setitem__(PySliceObject *slice, const Sequence& v)
++#endif
+ throw (std::out_of_range, std::invalid_argument) {
+ Py_ssize_t i, j, step;
+ if( !PySlice_Check(slice) ) {
+@@ -680,7 +690,11 @@
+ swig::setslice(self, i, j, v);
+ }
+
++#if NO_PYSLICE
++ void __delitem__(PyObject *slice)
++#else
+ void __delitem__(PySliceObject *slice)
++#endif
+ throw (std::out_of_range) {
+ Py_ssize_t i, j, step;
+ if( !PySlice_Check(slice) ) {
+diff -Naur swig-2.0.2.ori/Source/Modules/python.cxx swig-2.0.2/Source/Modules/python.cxx
+--- swig-2.0.2.ori/Source/Modules/python.cxx 2011-02-20 08:47:14.000000000 -0500
++++ swig-2.0.2/Source/Modules/python.cxx 2011-03-16 20:40:01.223333338 -0400
+@@ -440,6 +440,7 @@
+ if (py3) {
+ /* force disable features that not compatible with Python 3.x */
+ classic = 0;
++ Preprocessor_define((DOH *) "NO_PYSLICE 1", 0);
+ }
+
+ if (cppcast) {
diff --git a/extra/swt/PKGBUILD b/extra/swt/PKGBUILD
new file mode 100644
index 000000000..b78448b94
--- /dev/null
+++ b/extra/swt/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 90058 2010-09-06 21:07:12Z guillaume $
+# Maintainer: Guillaume ALAUX <guillaume@archlinux.org>
+pkgname=swt
+pkgver=3.6
+pkgrel=2
+pkgdesc="An open source widget toolkit for Java"
+_date=201006080911
+arch=(i686 x86_64)
+url="http://www.eclipse.org/swt/"
+license=('EPL')
+depends=('java-runtime>=6' 'gtk2>=2.20.1' 'libxtst')
+optdepends=('libgnomeui' 'xulrunner' 'mesa')
+makedepends=('openjdk6' 'libxtst' 'mesa' 'libgnomeui' 'xulrunner>=1.9.1' 'unzip' 'pkgconfig' 'apache-ant')
+source=(http://download.eclipse.org/eclipse/downloads/drops/R-${pkgver}-${_date}/swt-${pkgver}-gtk-linux-x86.zip
+ http://download.eclipse.org/eclipse/downloads/drops/R-${pkgver}-${_date}/swt-${pkgver}-gtk-linux-x86_64.zip
+ build-swt.xml)
+md5sums=('514206a4b9e27ac66cb7876157c3e74f'
+ '244f63edc7e609c7ac7f4bd1d7e0298a'
+ 'f5e548bc26a0f1f3c18131be76face40')
+if [ "${CARCH}" = "i686" ]; then
+ source=(http://download.eclipse.org/eclipse/downloads/drops/R-${pkgver}-${_date}/swt-${pkgver}-gtk-linux-x86.zip
+ build-swt.xml)
+ noextract=(swt-${pkgver}-gtk-linux-x86.zip)
+ md5sums=('514206a4b9e27ac66cb7876157c3e74f'
+ 'f5e548bc26a0f1f3c18131be76face40')
+fi
+if [ "${CARCH}" = "x86_64" ]; then
+ source=(http://download.eclipse.org/eclipse/downloads/drops/R-${pkgver}-${_date}/swt-${pkgver}-gtk-linux-x86_64.zip
+ build-swt.xml)
+ md5sums=('244f63edc7e609c7ac7f4bd1d7e0298a'
+ 'f5e548bc26a0f1f3c18131be76face40')
+ noextract=(swt-${pkgver}-gtk-linux-x86_64.zip)
+fi
+
+build() {
+ cd "${srcdir}"
+ . /etc/profile.d/openjdk6.sh
+ . /etc/profile.d/apache-ant.sh
+ unzip -jqo ${srcdir}/swt-${pkgver}-gtk-linux-*.zip "*src.zip"
+ unzip -qo src.zip
+ rm -rf about_files
+ mkdir src
+ mv org src/
+ cp build-swt.xml build.xml || return 1
+
+ [ "${CARCH}" = "x86_64" ] && export SWT_PTR_CFLAGS=-DSWT_PTR_SIZE_64
+
+ make -f make_linux.mak make_awt || return 1
+ make -f make_linux.mak make_swt || return 1
+ make -f make_linux.mak make_atk || return 1
+ make -f make_linux.mak make_gnome || return 1
+ export MOZILLA_INCLUDES="`pkg-config --cflags libxul`"
+ export MOZILLA_LIBS="-Wl,-R`pkg-config libxul --variable=libdir` `pkg-config libxul --libs`"
+ export XULRUNNER_INCLUDES="${MOZILLA_INCLUDES}"
+ export XULRUNNER_LIBS="${MOZILLA_LIBS}"
+ make -f make_linux.mak make_mozilla || return 1
+ make -f make_linux.mak make_xulrunner || return 1
+
+ make -f make_linux.mak make_cairo || return 1
+ make -f make_linux.mak make_glx || return 1
+
+ ant compile || return 1
+ cp version.txt build/version.txt
+ cp src/org/eclipse/swt/internal/SWTMessages.properties build/org/eclipse/swt/internal/
+
+ ant jar || return 1
+
+ install -m755 -d "${pkgdir}/usr/share/java"
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m644 swt.jar "${pkgdir}/usr/share/java/" || return 1
+ install -m755 *.so "${pkgdir}/usr/lib/" || return 1
+}
diff --git a/extra/swt/build-swt.xml b/extra/swt/build-swt.xml
new file mode 100644
index 000000000..ea775871b
--- /dev/null
+++ b/extra/swt/build-swt.xml
@@ -0,0 +1,17 @@
+<project name="SWT" default="jar" basedir=".">
+ <property name="src" location="."/>
+ <property name="build" location="build"/>
+
+ <target name="init">
+ <tstamp/>
+ <mkdir dir="${build}"/>
+ </target>
+
+ <target name="compile" depends="init" description="Compile the SWT toolset">
+ <javac srcdir="${src}" destdir="${build}"/>
+ </target>
+
+ <target name="jar">
+ <jar destfile="swt.jar" basedir="${build}"/>
+ </target>
+</project>
diff --git a/extra/sysklogd/ChangeLog b/extra/sysklogd/ChangeLog
new file mode 100644
index 000000000..aa374cfe0
--- /dev/null
+++ b/extra/sysklogd/ChangeLog
@@ -0,0 +1,5 @@
+2008-03-13 Eric Belanger <eric@archlinux.org>
+
+ * Added support for > 2 GB logfiles (close FS#9831)
+ * FSH man pages
+ * Added ChangeLog file
diff --git a/extra/sysklogd/LICENSE b/extra/sysklogd/LICENSE
new file mode 100644
index 000000000..7e9b5d59c
--- /dev/null
+++ b/extra/sysklogd/LICENSE
@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 1983, 1988 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley. The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
diff --git a/extra/sysklogd/PKGBUILD b/extra/sysklogd/PKGBUILD
new file mode 100644
index 000000000..a548a165c
--- /dev/null
+++ b/extra/sysklogd/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=sysklogd
+pkgver=1.5
+pkgrel=2
+pkgdesc="System and kernel log daemons"
+arch=('i686' 'x86_64')
+url="http://www.infodrom.org/projects/sysklogd/"
+license=('GPL' 'BSD')
+depends=('glibc' 'logrotate')
+provides=('logger')
+backup=(etc/syslog.conf)
+source=(http://www.infodrom.org/projects/sysklogd/download/$pkgname-$pkgver.tar.gz \
+ syslog.conf syslog.logrotate syslogd klogd LICENSE)
+md5sums=('e053094e8103165f98ddafe828f6ae4b' 'b8bc568494359fa932b7a5e17c4ba4de'\
+ 'fb3fdb03959ff62ede00487c853bb950' '92531ee64cdc0ca978bbe9a81c269211'\
+ 'c2fe75c82c35371972b6ceda72d6a861' '7930f7ff5038e1318511624e348581cc')
+sha1sums=('070cce745b023f2ce7ca7d9888af434d6d61c236'
+ '35b4cb76109a6ffe9269021a6bfb4f8da614a4eb'
+ 'e67c0f78f13c94507d3f686b4e5b8340db4624fd'
+ '848beb23b9ca4de19c6022df03878dbe57e04c0a'
+ 'f46088f761c033562a59bc13d4888b7343bc02fc'
+ 'c416bcefd3d3d618139cc7912310caddf34c0c0b')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ sed -i "s/-O3/${CFLAGS} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE/" Makefile || return 1
+ make || return 1
+ install -d $startdir/pkg/usr/sbin
+ install -d $startdir/pkg/usr/share/man/{man5,man8}
+ make INSTALL=/bin/install prefix=$startdir/pkg install
+ install -D -m644 ../syslog.conf $startdir/pkg/etc/syslog.conf
+ install -D -m644 ../syslog.logrotate $startdir/pkg/etc/logrotate.d/syslog
+ install -D -m755 ../syslogd $startdir/pkg/etc/rc.d/syslogd
+ install -D -m755 ../klogd $startdir/pkg/etc/rc.d/klogd
+ install -D -m644 ../LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/sysklogd/klogd b/extra/sysklogd/klogd
new file mode 100755
index 000000000..690e13ab4
--- /dev/null
+++ b/extra/sysklogd/klogd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/klogd`
+case "$1" in
+ start)
+ stat_busy "Starting Kernel Logger"
+ [ -z "$PID" ] && /usr/sbin/klogd -c 4
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon klogd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Kernel Logger"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/klogd.pid
+ rm_daemon klogd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/sysklogd/syslog.conf b/extra/sysklogd/syslog.conf
new file mode 100644
index 000000000..7b0eae2e2
--- /dev/null
+++ b/extra/sysklogd/syslog.conf
@@ -0,0 +1,15 @@
+#
+# /etc/syslog.conf
+#
+
+*.emerg *
+*.err /var/log/errors
+kern.* /var/log/kernel
+authpriv.*;auth.* /var/log/auth
+mail.* /var/log/mail
+*.info;*.!err;authpriv,auth,mail,kern.none /var/log/messages
+
+# Log everything to vc12
+# *.* /dev/vc/12
+
+# End of file
diff --git a/extra/sysklogd/syslog.logrotate b/extra/sysklogd/syslog.logrotate
new file mode 100644
index 000000000..b3d8d8552
--- /dev/null
+++ b/extra/sysklogd/syslog.logrotate
@@ -0,0 +1,6 @@
+/var/log/messages /var/log/auth /var/log/mail /var/log/errors /var/log/kernel {
+ sharedscripts
+ postrotate
+ /bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2> /dev/null || true
+ endscript
+}
diff --git a/extra/sysklogd/syslogd b/extra/sysklogd/syslogd
new file mode 100755
index 000000000..24c81ec8a
--- /dev/null
+++ b/extra/sysklogd/syslogd
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/syslogd`
+case "$1" in
+ start)
+ stat_busy "Starting System Logger"
+ [ -z "$PID" ] && /usr/sbin/syslogd -m 0
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon syslogd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping System Logger"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/syslogd.pid
+ rm_daemon syslogd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/system-config-printer/PKGBUILD b/extra/system-config-printer/PKGBUILD
new file mode 100644
index 000000000..0cc06257a
--- /dev/null
+++ b/extra/system-config-printer/PKGBUILD
@@ -0,0 +1,105 @@
+# $Id: PKGBUILD 117485 2011-04-04 07:01:13Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+
+pkgbase=system-config-printer
+pkgname=('system-config-printer-common'
+ 'system-config-printer-gnome')
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="A CUPS printer configuration tool and status applet"
+url="http://cyberelk.net/tim/software/system-config-printer/"
+arch=('i686' 'x86_64')
+license=('GPL')
+makedepends=('intltool' 'python2' 'xmlto' 'docbook-xsl' 'desktop-file-utils' 'libcups' 'libxml2')
+source=("http://cyberelk.net/tim/data/${pkgbase}/1.3/${pkgbase}-${pkgver}.tar.xz")
+md5sums=('34a0ce9a11be5695b3b4065e4f17b009')
+
+build() {
+ cd ${srcdir}/${pkgbase}-${pkgver}
+
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" \
+ $(find . -name '*.py')
+ sed -i "s|#!/usr/bin/python|#!/usr/bin/python2|" udev/udev-add-printer
+
+ ./configure --prefix=/usr \
+ --sbindir=/usr/bin \
+ --sysconfdir=/etc \
+ --with-udev-rules
+
+ make
+}
+
+package_system-config-printer-common() {
+ pkgdesc='Pygtk CUPS Configuration'
+ depends=('pycups' 'dbus-python' 'pysmbc')
+ optdepends=('system-config-printer-gnome: for the GTK frontend'
+ 'kdeadmin-system-config-printer-kde: for the administration tool in KDE System Settings')
+ replaces=('system-config-printer')
+ provides=("system-config-printer=${pkgver}")
+ conflicts=('system-config-printer')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ install -d ${pkgdir}/usr/share/${pkgbase}
+ install -m644 config.py \
+ debug.py \
+ installpackage.py \
+ monitor.py \
+ PhysicalDevice.py \
+ ppdippstr.py \
+ probe_printer.py \
+ SearchCriterion.py \
+ smburi.py \
+ statereason.py \
+ XmlHelper.py \
+ ${pkgdir}/usr/share/${pkgbase}/
+
+ install -m755 pysmb.py \
+ ${pkgdir}/usr/share/${pkgbase}/
+
+ install -d ${pkgdir}/etc/dbus-1/system.d/
+ install -m644 dbus/com.redhat.NewPrinterNotification.conf \
+ dbus/com.redhat.PrinterDriversInstaller.conf \
+ ${pkgdir}/etc/dbus-1/system.d/
+ install -d ${pkgdir}/etc/cupshelpers/
+ install -m644 xml/preferreddrivers.xml ${pkgdir}/etc/cupshelpers/
+
+ install -d ${pkgdir}/lib/udev/rules.d
+ install -m755 udev/{udev-add-printer,udev-configure-printer} \
+ ${pkgdir}/lib/udev/
+ install -m644 udev/70-printers.rules \
+ ${pkgdir}/lib/udev/rules.d
+
+ for file in build/lib/cupshelpers/*.py; do
+ install -Dm644 $file \
+ ${pkgdir}/usr/lib/python2.7/site-packages/cupshelpers/$(basename $file)
+ done
+}
+
+package_system-config-printer-gnome() {
+ pkgdesc='A CUPS printer configuration tool and status applet - GTK frontend'
+ depends=('system-config-printer-common' 'gnome-icon-theme' 'python-notify')
+ optdependence=('gnome-keyring: password management')
+
+ cd ${srcdir}/${pkgbase}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+
+ # files provided by system-config-printer-common
+ cd ${pkgdir}/usr/share/${pkgbase}
+ rm config.py \
+ debug.py \
+ installpackage.py \
+ monitor.py \
+ PhysicalDevice.py \
+ ppdippstr.py \
+ probe_printer.py \
+ SearchCriterion.py \
+ smburi.py \
+ statereason.py \
+ XmlHelper.py \
+ pysmb.py
+ rm -r ${pkgdir}/etc/dbus-1/
+ rm -r ${pkgdir}/etc/cupshelpers/
+ rm -r ${pkgdir}/etc/udev/
+ rm -r ${pkgdir}/usr/lib/
+}
diff --git a/extra/t1lib/PKGBUILD b/extra/t1lib/PKGBUILD
new file mode 100644
index 000000000..96f0c7a6d
--- /dev/null
+++ b/extra/t1lib/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 18717 2008-11-08 21:45:38Z giovanni $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Rainer Moll <renari@arcor.de>
+
+pkgname=t1lib
+pkgver=5.1.2
+pkgrel=2
+pkgdesc="Library for generating character- and string-glyphs from Adobe Type 1 fonts"
+arch=(i686 x86_64)
+license=("GPL")
+depends=('libxaw')
+options=(!libtool)
+url="http://www.ibiblio.org/pub/Linux/libs/graphics/!INDEX.html"
+source=(http://www.ibiblio.org/pub/Linux/libs/graphics/${pkgname}-${pkgver}.tar.gz )
+md5sums=('a5629b56b93134377718009df1435f3c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make without_doc || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/taglib-extras/PKGBUILD b/extra/taglib-extras/PKGBUILD
new file mode 100644
index 000000000..3becb51f9
--- /dev/null
+++ b/extra/taglib-extras/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 52970 2009-09-23 20:36:32Z giovanni $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=taglib-extras
+pkgver=1.0.1
+pkgrel=1
+pkgdesc="Additional taglib plugins for KDE"
+arch=("i686" "x86_64")
+url="http://developer.kde.org/~wheeler/taglib.html"
+license=('LGPL')
+depends=('taglib>=1.6')
+makedepends=('pkgconfig' 'cmake' 'automoc4')
+source=(http://www.kollide.net/~jefferai/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e973ca609b18e2c03c147ff9fd9e6eb8')
+
+build() {
+ cd $srcdir
+ mkdir build
+ cd build
+ cmake ../$pkgname-$pkgver \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/taglib-sharp/PKGBUILD b/extra/taglib-sharp/PKGBUILD
new file mode 100644
index 000000000..bde9d495e
--- /dev/null
+++ b/extra/taglib-sharp/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 75153 2010-03-31 23:10:28Z giovanni $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Carlos Ruiz <cailovirtual@gmail.com>
+
+pkgname=taglib-sharp
+pkgver=2.0.3.7
+pkgrel=1
+pkgdesc="Free and Open Source library for the .NET 2.0 and Mono frameworks which will let you tag your software with as much or as little detail as you like without slowing you down."
+arch=('i686' 'x86_64')
+url="http://www.taglib-sharp.com/Main_Page"
+license=('LGPL2')
+depends=('mono')
+source=(http://download.banshee-project.org/taglib-sharp/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('fa45d2519ca26b04716789fe4ac81f8b')
+
+build() {
+ export MONO_SHARED_DIR="${startdir}/src/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-docs || return 1
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/taglib/PKGBUILD b/extra/taglib/PKGBUILD
new file mode 100644
index 000000000..c1732f1aa
--- /dev/null
+++ b/extra/taglib/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 79406 2010-05-04 00:23:40Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=taglib
+pkgver=1.6.3
+pkgrel=1
+pkgdesc="A Library for reading and editing the meta-data of several popular audio formats"
+arch=('i686' 'x86_64')
+url="http://developer.kde.org/~wheeler/taglib.html"
+license=('GPL2')
+depends=('sh' 'zlib' 'gcc-libs')
+makedepends=('cmake' 'pkgconfig')
+source=(http://developer.kde.org/~wheeler/files/src/$pkgname-$pkgver.tar.gz)
+options=('!libtool')
+md5sums=('ddf02f4e1d2dc30f76734df806e613eb')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ cmake ../$pkgname-$pkgver \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DWITH_MP4=ON \
+ -DWITH_ASF=ON
+ make VERBOSE=1 || return 1
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/talloc/PKGBUILD b/extra/talloc/PKGBUILD
new file mode 100644
index 000000000..678ee5af4
--- /dev/null
+++ b/extra/talloc/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116938 2011-03-26 14:56:31Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=talloc
+pkgver=2.0.5
+pkgrel=1
+pkgdesc="A hierarchical pool based memory allocator with destructors"
+arch=(i686 x86_64)
+license=('GPL3')
+url="http://talloc.samba.org/"
+source=(http://samba.org/ftp/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+makedepends=('python2')
+depends=('glibc')
+optdepends=('python2: for python bindings')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i -e 's#python#python2#g' buildtools/bin/waf
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/samba \
+ --localstatedir=/var \
+ --enable-talloc-compat1
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=$pkgdir/ install
+}
+md5sums=('6e3fdfbc43dde8ccba27b6af894b8fb2')
diff --git a/extra/tcl/PKGBUILD b/extra/tcl/PKGBUILD
new file mode 100644
index 000000000..acce9e847
--- /dev/null
+++ b/extra/tcl/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 90377 2010-09-11 03:54:51Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Committer: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=tcl
+pkgver=8.5.9
+pkgrel=1
+pkgdesc="The Tcl scripting language"
+arch=('i686' 'x86_64')
+url="http://tcl.sourceforge.net/"
+license=('custom')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/sourceforge/tcl/tcl${pkgver}-src.tar.gz)
+md5sums=('8512d8db3233041dd68a81476906012a')
+
+build() {
+ cd ${srcdir}/tcl${pkgver}/unix
+
+ if [ "$CARCH" = "x86_64" ]; then
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-threads --enable-64bit
+ else
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-threads --disable-64bit
+ fi
+
+ make
+}
+
+package()
+{
+ cd ${srcdir}/tcl${pkgver}/unix
+
+ make INSTALL_ROOT=${pkgdir} install install-private-headers
+ ln -sf tclsh8.5 ${pkgdir}/usr/bin/tclsh
+
+ # install license
+ install -Dm644 ../license.terms ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # remove buildroot traces
+ sed -i \
+ -e "s,^TCL_BUILD_LIB_SPEC='-L.*/unix,TCL_BUILD_LIB_SPEC='-L/usr/lib," \
+ -e "s,^TCL_SRC_DIR='.*',TCL_SRC_DIR='/usr/include'," \
+ -e "s,^TCL_BUILD_STUB_LIB_SPEC='-L.*/unix,TCL_BUILD_STUB_LIB_SPEC='-L/usr/lib," \
+ -e "s,^TCL_BUILD_STUB_LIB_PATH='.*/unix,TCL_BUILD_STUB_LIB_PATH='/usr/lib," \
+ -e "s,^TCL_LIB_FILE='libtcl8.5..TCL_DBGX..so',TCL_LIB_FILE=\"libtcl8.5\$\{TCL_DBGX\}.so\"," \
+ -e "s,^TCL_CC_SEARCH_FLAGS='\(.*\)',TCL_CC_SEARCH_FLAGS='\1:/usr/lib'," \
+ -e "s,^TCL_LD_SEARCH_FLAGS='\(.*\)',TCL_LD_SEARCH_FLAGS='\1:/usr/lib'," \
+ ${pkgdir}/usr/lib/tclConfig.sh
+}
diff --git a/extra/tcpdump/PKGBUILD b/extra/tcpdump/PKGBUILD
new file mode 100644
index 000000000..c6c455be5
--- /dev/null
+++ b/extra/tcpdump/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 117379 2011-04-01 00:46:15Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=tcpdump
+pkgver=4.1.1
+pkgrel=2
+pkgdesc="A tool for network monitoring and data acquisition"
+arch=('i686' 'x86_64')
+url="http://www.tcpdump.org"
+license=('BSD')
+depends=('libpcap' 'openssl')
+source=("http://www.tcpdump.org/release/${pkgname}-${pkgver}.tar.gz"
+ tcpdump_duplicate_executable.patch)
+md5sums=('d0dd58bbd6cd36795e05c6f1f74420b0'
+ 'd4c374b25d10e41b77d2c72bb9ec0d79')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # do not install tcpdump-4.1.1 executable (FS#23346)
+ patch -Np1 -i "${srcdir}/tcpdump_duplicate_executable.patch"
+ ./configure --prefix=/usr \
+ --enable-ipv6
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ #install the license
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/tcpdump/tcpdump_duplicate_executable.patch b/extra/tcpdump/tcpdump_duplicate_executable.patch
new file mode 100644
index 000000000..6e27b717a
--- /dev/null
+++ b/extra/tcpdump/tcpdump_duplicate_executable.patch
@@ -0,0 +1,10 @@
+--- a/Makefile.in 2010-04-06 03:18:35.000000000 +0200
++++ b/Makefile.in 2011-04-01 02:39:10.000000000 +0200
+@@ -403,7 +403,6 @@
+ [ -d $(DESTDIR)$(sbindir) ] || \
+ (mkdir -p $(DESTDIR)$(sbindir); chmod 755 $(DESTDIR)$(sbindir))
+ $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG)
+- $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG).`cat ${srcdir}/VERSION`
+ [ -d $(DESTDIR)$(mandir)/man1 ] || \
+ (mkdir -p $(DESTDIR)$(mandir)/man1; chmod 755 $(DESTDIR)$(mandir)/man1)
+ $(INSTALL_DATA) $(PROG).1 $(DESTDIR)$(mandir)/man1/$(PROG).1
diff --git a/extra/tdb/PKGBUILD b/extra/tdb/PKGBUILD
new file mode 100644
index 000000000..dca95ae49
--- /dev/null
+++ b/extra/tdb/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 116933 2011-03-26 14:55:24Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=tdb
+pkgver=1.2.9
+pkgrel=1
+pkgdesc="A Trivia Database similar to GDBM but allows simultaneous commits"
+arch=(i686 x86_64)
+license=('GPL3')
+url="http://tdb.samba.org/"
+source=(http://samba.org/ftp/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+makedepends=('python2' 'libxslt' 'docbook-xsl')
+optdepends=('python2: for python bindings')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ sed -i -e 's#python#python2#g' buildtools/bin/waf
+ #sed -i 's#python2\.6\([^ ]*\)#python2.7\1 python2.6\1#' configure
+ # Use system docbook.xsl
+ #_manstyle="/usr/share/xml/docbook/xsl-stylesheets-1.76.1/manpages/docbook.xsl"
+ #sed -i "s#http.*xsl#$_manstyle#" tdb.mk
+ ./configure --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc/samba
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=$pkgdir/ install
+}
+md5sums=('4d97d18bbe9040038d4e003495bb8cd1')
diff --git a/extra/telepathy-butterfly/0001-bugfix-remove-bad-import-from-im-module.patch b/extra/telepathy-butterfly/0001-bugfix-remove-bad-import-from-im-module.patch
new file mode 100644
index 000000000..6580dcc7f
--- /dev/null
+++ b/extra/telepathy-butterfly/0001-bugfix-remove-bad-import-from-im-module.patch
@@ -0,0 +1,26 @@
+From 501b46c364c5608d1b3b84dd48fe57abcabd4aea Mon Sep 17 00:00:00 2001
+From: Ionut Biru <ibiru@archlinux.org>
+Date: Mon, 6 Dec 2010 04:22:45 -0800
+Subject: [PATCH] bugfix: remove bad import from im module
+
+Signed-off-by: Ionut Biru <ibiru@archlinux.org>
+---
+ butterfly/channel/im.py | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/butterfly/channel/im.py b/butterfly/channel/im.py
+index 1781234..ac8dd44 100644
+--- a/butterfly/channel/im.py
++++ b/butterfly/channel/im.py
+@@ -30,8 +30,6 @@ import papyon.event
+
+ from butterfly.channel.text import ButterflyTextChannel
+
+-from butterfly.Channel_Interface_Conference import CHANNEL_INTERFACE_CONFERENCE
+-
+ __all__ = ['ButterflyImChannel']
+
+ logger = logging.getLogger('Butterfly.ImChannel')
+--
+1.7.3.2
+
diff --git a/extra/telepathy-butterfly/PKGBUILD b/extra/telepathy-butterfly/PKGBUILD
new file mode 100644
index 000000000..915673e49
--- /dev/null
+++ b/extra/telepathy-butterfly/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 102171 2010-12-06 12:36:03Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Daniel Balieiro <daniel@balieiro.com>
+pkgname=telepathy-butterfly
+pkgver=0.5.15
+pkgrel=1
+pkgdesc="A MSN connection manager for Telepathy"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('GPL')
+depends=('papyon>=0.5.4' 'python-telepathy>=0.15.19')
+source=(http://telepathy.freedesktop.org/releases/telepathy-butterfly/telepathy-butterfly-${pkgver}.tar.gz
+ 0001-bugfix-remove-bad-import-from-im-module.patch)
+install=telepathy-butterfly.install
+md5sums=('4baa6337822f01d817c4b9d8fd406e82'
+ '08417a06a0e4a1875f1baf4b910cdcf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/0001-bugfix-remove-bad-import-from-im-module.patch"
+ ./configure --prefix=/usr --libexecdir=/usr/lib/telepathy
+ make
+ make DESTDIR="${pkgdir}" install
+
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ "${pkgdir}/usr/lib/telepathy/telepathy-butterfly"
+}
diff --git a/extra/telepathy-butterfly/telepathy-butterfly.install b/extra/telepathy-butterfly/telepathy-butterfly.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/extra/telepathy-butterfly/telepathy-butterfly.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/telepathy-farsight/PKGBUILD b/extra/telepathy-farsight/PKGBUILD
new file mode 100644
index 000000000..100183822
--- /dev/null
+++ b/extra/telepathy-farsight/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 91084 2010-09-22 10:08:21Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Ju Liu <liuju86 at gmail dot com>
+# Contributor: Denis Zawada <deno@rootnode.net>
+pkgname=telepathy-farsight
+pkgver=0.0.15
+pkgrel=2
+pkgdesc="A telepathy-backend to use stream engine."
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+license=('GPL')
+depends=('telepathy-glib>=0.10.6' 'farsight2>=0.0.17' 'gstreamer0.10-base')
+makedepends=('libxslt' 'python2')
+groups=('telepathy')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8a15bad987579656be38df237d302610')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-static=no
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/telepathy-gabble/PKGBUILD b/extra/telepathy-gabble/PKGBUILD
new file mode 100644
index 000000000..d5c9ae32e
--- /dev/null
+++ b/extra/telepathy-gabble/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 110136 2011-02-16 17:45:07Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Daniel Balieiro <daniel@balieiro.com>
+# Contributor: Rodrigo L. M. Flores <mail@rodrigoflores.org>
+pkgname=telepathy-gabble
+pkgver=0.10.5
+pkgrel=1
+pkgdesc="A Jabber/XMPP connection manager for Telepathy"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL2.1')
+depends=('telepathy-glib>=0.12.2' 'libsoup>=2.32' 'libnice' 'util-linux-ng' 'sqlite3')
+makedepends=('libxslt' 'python2')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/telepathy-gabble/${pkgname}-${pkgver}.tar.gz)
+install=telepathy-gabble.install
+md5sums=('6d3e07354fb6d3ea5f8375e7cf776a27')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/telepathy-gabble/telepathy-gabble.install b/extra/telepathy-gabble/telepathy-gabble.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/extra/telepathy-gabble/telepathy-gabble.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/telepathy-glib/PKGBUILD b/extra/telepathy-glib/PKGBUILD
new file mode 100644
index 000000000..772405de1
--- /dev/null
+++ b/extra/telepathy-glib/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 103588 2010-12-21 23:15:02Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+pkgname=telepathy-glib
+pkgver=0.12.7
+pkgrel=1
+pkgdesc="GLib bindings for the Telepathy D-Bus protocol"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL2.1')
+options=('!libtool')
+depends=('dbus-glib>=0.92')
+makedepends=('libxslt' 'vala' 'gobject-introspection')
+source=("http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('a3b5f526e2c831472395352685aba3fe')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-vala-bindings \
+ --enable-static=no
+ make
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/telepathy-haze/PKGBUILD b/extra/telepathy-haze/PKGBUILD
new file mode 100644
index 000000000..773a9277a
--- /dev/null
+++ b/extra/telepathy-haze/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 86857 2010-08-05 17:22:25Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+pkgname=telepathy-haze
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="A telepathy-backend to use libpurple (Pidgin) protocols."
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+license=('GPL')
+depends=('telepathy-glib' 'libpurple')
+makedepends=('libxslt')
+install=telepathy-haze.install
+groups=('telepathy')
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('6e3e048cbee27aa37a64b8e9cc611664')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexecdir=/usr/lib/telepathy
+ make
+ make DESTDIR="${pkgdir}" install
+
+ #remove manager, upstream suggested and it would be removed in the near future
+ rm -rf "${pkgdir}/usr/share/telepathy/managers"
+}
diff --git a/extra/telepathy-haze/telepathy-haze.install b/extra/telepathy-haze/telepathy-haze.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/extra/telepathy-haze/telepathy-haze.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/telepathy-idle/PKGBUILD b/extra/telepathy-idle/PKGBUILD
new file mode 100644
index 000000000..05fd9edd6
--- /dev/null
+++ b/extra/telepathy-idle/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 102391 2010-12-07 17:47:06Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+# Contributor: Samuel Mendes <heka.lok@gmail.com>
+pkgname=telepathy-idle
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="An IRC connection manager for Telepathy"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL')
+depends=('telepathy-glib>=0.12.5' 'openssl')
+makedepends=('libxslt' 'python2')
+install=telepathy-idle.install
+source=(http://telepathy.freedesktop.org/releases/telepathy-idle/${pkgname}-${pkgver}.tar.gz
+ python27.patch)
+md5sums=('5ee3aa5c6e1112922b11711e6a209331'
+ '03661efde8f768417e224720e1346d7b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/python27.patch"
+ autoreconf -fi
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/telepathy-idle/python27.patch b/extra/telepathy-idle/python27.patch
new file mode 100644
index 000000000..f8abffb57
--- /dev/null
+++ b/extra/telepathy-idle/python27.patch
@@ -0,0 +1,21 @@
+diff -Nur telepathy-idle-0.1.7.orig/configure.ac telepathy-idle-0.1.7/configure.ac
+--- telepathy-idle-0.1.7.orig/configure.ac 2010-12-07 03:52:29.000000000 -0800
++++ telepathy-idle-0.1.7/configure.ac 2010-12-07 09:41:21.179715253 -0800
+@@ -103,7 +103,7 @@
+ AC_MSG_ERROR([xsltproc (from the libxslt source package) is required])
+ fi
+ PYTHON=
+-AC_CHECK_PROGS([PYTHON], [python2.3 python2.4 python2.5 python])
++AC_CHECK_PROGS([PYTHON], [python2.3 python2.4 python2.5 python2.7 python])
+ if test -z "$PYTHON"; then
+ AC_MSG_ERROR([Python is required to compile this package])
+ fi
+@@ -111,7 +111,7 @@
+
+ dnl check for a version of python that can run the twisted tests
+ AC_MSG_CHECKING([for Python with Twisted and IRC protocol support])
+-for TEST_PYTHON in python2.5 python2.6 python; do
++for TEST_PYTHON in python2.5 python2.6 python2.7 python; do
+ if $TEST_PYTHON -c "from sys import version_info; import dbus, dbus.mainloop.glib; raise SystemExit(version_info < (2, 5, 0, 'final', 0))" >/dev/null 2>&1; then
+ if $TEST_PYTHON -c "import twisted.words.protocols.irc, twisted.internet.reactor" >/dev/null 2>&1; then
+ AM_CONDITIONAL([WANT_TWISTED_TESTS], true)
diff --git a/extra/telepathy-idle/telepathy-idle.install b/extra/telepathy-idle/telepathy-idle.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/extra/telepathy-idle/telepathy-idle.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/telepathy-logger/PKGBUILD b/extra/telepathy-logger/PKGBUILD
new file mode 100644
index 000000000..12a5ab927
--- /dev/null
+++ b/extra/telepathy-logger/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 101587 2010-11-29 17:14:18Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=telepathy-logger
+pkgver=0.1.7
+pkgrel=1
+pkgdesc="Telepathy framework logging daemon"
+arch=(i686 x86_64)
+url="http://telepathy.freedesktop.org/wiki/Logger"
+license=('LGPL2.1')
+depends=('telepathy-glib>=0.12.5' 'sqlite3' 'libxml2>=2.7.8' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('92fdf8bd2ced40831b3c1198ed1b88d2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/telepathy \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-schemas-compile
+
+ make
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/telepathy-logger/telepathy-logger.install b/extra/telepathy-logger/telepathy-logger.install
new file mode 100644
index 000000000..8fd591f55
--- /dev/null
+++ b/extra/telepathy-logger/telepathy-logger.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove(){
+ post_install
+}
diff --git a/extra/telepathy-mission-control/PKGBUILD b/extra/telepathy-mission-control/PKGBUILD
new file mode 100644
index 000000000..502a4e9d9
--- /dev/null
+++ b/extra/telepathy-mission-control/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 99782 2010-11-17 16:36:42Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Ju Liu <liuju86 at gmail dot com>
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+# Contributor: Andreas Zwinkau <beza1e1@web.de>
+pkgname=telepathy-mission-control
+pkgver=5.6.1
+pkgrel=1
+pkgdesc="A Telepathy component providing abstraction of some of the details of connection managers."
+arch=('i686' 'x86_64')
+url="http://mission-control.sourceforge.net/"
+license=('LGPL2.1')
+depends=('telepathy-glib>=0.12.4' 'libgnome-keyring>=2.32.0')
+makedepends=('libxslt' 'python2')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/telepathy-mission-control/$pkgname-$pkgver.tar.gz)
+md5sums=('0627423bfdf1f5616a4250205ec35b70')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-gnome-keyring
+ make
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/telepathy-qt4/PKGBUILD b/extra/telepathy-qt4/PKGBUILD
new file mode 100644
index 000000000..cedc5ca0c
--- /dev/null
+++ b/extra/telepathy-qt4/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 104722 2011-01-04 19:45:22Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=telepathy-qt4
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="A library for Qt-based Telepathy clients."
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL')
+options=('!libtool')
+depends=('qt' 'telepathy-farsight')
+makedepends=('libxslt' 'python2' 'cmake')
+source=(http://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('d014e49b11fcbb4dc87aa1757d209a3a')
+
+build() {
+ cd "${srcdir}"
+
+ mkdir build
+ cd build
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DHAVE_QDBUSVARIANT_OPERATOR_EQUAL=1
+ make
+}
+
+package() {
+ cd "${srcdir}"/build
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/telepathy-salut/PKGBUILD b/extra/telepathy-salut/PKGBUILD
new file mode 100644
index 000000000..f90d2f1fa
--- /dev/null
+++ b/extra/telepathy-salut/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 94337 2010-10-06 16:43:18Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Daniel Balieiro <daniel@balieiro.com>
+pkgname=telepathy-salut
+pkgver=0.4.0
+pkgrel=1
+pkgdesc="A link-local XMPP connection manager for Telepathy"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL')
+depends=('telepathy-glib>=0.12.0' 'avahi' 'libsoup')
+makedepends=('libxslt' 'python2')
+install=telepathy-salut.install
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('95f0cf9681912104474b0f4c4d00807f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/telepathy-salut/telepathy-salut.install b/extra/telepathy-salut/telepathy-salut.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/extra/telepathy-salut/telepathy-salut.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/telepathy-sofiasip/PKGBUILD b/extra/telepathy-sofiasip/PKGBUILD
new file mode 100644
index 000000000..796e24c8a
--- /dev/null
+++ b/extra/telepathy-sofiasip/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 108673 2011-02-02 13:28:13Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+pkgname=telepathy-sofiasip
+pkgver=0.6.6
+pkgrel=1
+pkgdesc="a SIP-protocol connection manager for the Telepathy framework based on SofiaSIP-stack."
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+license=('LGPL')
+depends=('telepathy-glib' 'sofia-sip')
+makedepends=('libxslt' 'python2')
+install=telepathy-sofiasip.install
+groups=('telepathy')
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('aebdadeb92db02b0da916fd077fa8c7e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libexecdir=/usr/lib/telepathy
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/telepathy-sofiasip/telepathy-sofiasip.install b/extra/telepathy-sofiasip/telepathy-sofiasip.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/extra/telepathy-sofiasip/telepathy-sofiasip.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/terminal/PKGBUILD b/extra/terminal/PKGBUILD
new file mode 100644
index 000000000..838775fdf
--- /dev/null
+++ b/extra/terminal/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 108268 2011-01-30 17:20:36Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=terminal
+pkgver=0.4.6
+pkgrel=1
+pkgdesc="A modern terminal emulator primarly for the Xfce desktop environment"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.xfce.org/projects/terminal/"
+groups=('xfce4')
+depends=('exo>=0.5.4' "vte" 'dbus-glib'
+ 'startup-notification' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=terminal.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/0.4/Terminal-${pkgver}.tar.bz2)
+md5sums=('e5c592b56d260b4a7b57039882e18b81')
+
+build() {
+ cd ${srcdir}/Terminal-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/Terminal-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/terminal/terminal.install b/extra/terminal/terminal.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/terminal/terminal.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/testdisk/PKGBUILD b/extra/testdisk/PKGBUILD
new file mode 100644
index 000000000..efed07cd6
--- /dev/null
+++ b/extra/testdisk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 75596 2010-04-01 22:40:17Z giovanni $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Michal Krenek <mikos@sg1.cz>
+
+pkgname=testdisk
+pkgver=6.11.3
+pkgrel=3
+pkgdesc="Checks and undeletes partitions + PhotoRec, signature based recovery tool"
+arch=('i686' 'x86_64')
+url="http://www.cgsecurity.org/index.html?testdisk.html"
+license=('GPL')
+depends=('libjpeg>=8' 'openssl' 'progsreiserfs' 'ntfsprogs')
+makedepends=('pkgconfig')
+source=(http://www.cgsecurity.org/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ceee384a8613d8f7ffff5ccfa3fba510')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --without-ewf \
+ --enable-sudo
+ make || return 1
+ make DESTDIR="${pkgdir}/" install || return 1
+}
diff --git a/extra/texi2html/PKGBUILD b/extra/texi2html/PKGBUILD
new file mode 100644
index 000000000..0a3af063c
--- /dev/null
+++ b/extra/texi2html/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 65086 2010-01-24 10:15:30Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+
+pkgname=texi2html
+pkgver=1.82
+pkgrel=1
+pkgdesc="Converts texinfo documents to HTML"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/texi2html/"
+license=('GPL')
+depends=('perl')
+source=(http://www.very-clever.com/download/nongnu/texi2html/$pkgname-$pkgver.tar.gz)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ ./configure --prefix=/usr
+ sed -i "s|mandir = /usr/man|mandir = \${prefix}/share/man|g" Makefile
+ make || return 1
+ make prefix=$startdir/pkg/usr install
+ rm -r $startdir/pkg/usr/share/texinfo
+ rm -r $startdir/pkg/usr/share/info
+}
+md5sums=('7ea537a8c81ffbf5421b39c0333e91df')
diff --git a/extra/texlive-bin/09-texlive-fonts.conf b/extra/texlive-bin/09-texlive-fonts.conf
new file mode 100644
index 000000000..f870fbd7a
--- /dev/null
+++ b/extra/texlive-bin/09-texlive-fonts.conf
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+ <dir>/usr/share/texmf-dist/fonts/opentype</dir>
+ <dir>/usr/share/texmf-dist/fonts/truetype</dir>
+ <dir>/usr/local/share/texmf/fonts/opentype</dir>
+ <dir>/usr/local/share/texmf/fonts/truetype</dir>
+</fontconfig>
+
diff --git a/extra/texlive-bin/PKGBUILD b/extra/texlive-bin/PKGBUILD
new file mode 100644
index 000000000..2a2139d9c
--- /dev/null
+++ b/extra/texlive-bin/PKGBUILD
@@ -0,0 +1,293 @@
+# Maintainer: francois <francois.archlinux.org>
+
+pkgname=texlive-bin
+pkgver=2010.1
+_luatex_ver=0.62.0
+pkgrel=7
+pkgdesc="TeX Live binaries"
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('t1lib' 'gd' 'libgraphite' 'poppler' 'libsigsegv')
+makedepends=('perl' 'clisp' 'ffcall')
+optdepends=('ed: for texconfig')
+provides=('lcdf-typetools' 'kpathsea' 'xindy' 'pdfjam')
+conflicts=('pdfjam')
+options=('!libtool')
+url='http://tug.org/texlive/'
+source=('texmf.cnf'
+ 'fix-fontforge-encoding.patch'
+ '09-texlive-fonts.conf'
+ 'dvipng-fix-options.patch'
+ 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-source-20100926.tar.xz'
+ 'http://mirrors.kernel.org/archlinux/other/texlive/texlive-bin-texmf-20101105.tar.xz'
+ "http://foundry.supelec.fr/gf/download/frsrelease/381/1533/luatex-beta-${_luatex_ver}.tar.bz2")
+backup=(etc/texmf/web2c/texmf.cnf \
+ etc/texmf/chktex/chktexrc \
+ etc/texmf/web2c/mktex.cnf \
+ etc/texmf/web2c/updmap.cfg \
+ etc/texmf/web2c/fmtutil.cnf \
+ etc/texmf/tex/generic/config/language.dat \
+ etc/texmf/tex/generic/config/language.def \
+ etc/texmf/tex/generic/config/pdftexconfig.tex \
+ etc/texmf/ttf2pk/ttf2pk.cfg \
+ etc/texmf/dvips/config/config.ps \
+ etc/texmf/dvipdfmx/dvipdfmx.cfg \
+ etc/texmf/dvipdfm/config/config \
+ etc/texmf/xdvi/XDvi)
+
+build() {
+ if [ "${CARCH}" = "x86_64" ]; then
+ export CFLAGS="${CFLAGS} -fPIC"
+ export CXXFLAGS="${CXXFLAGS} -fPIC"
+ fi
+
+ cd $srcdir
+ # Building LuaTeX
+ cd luatex-beta-${_luatex_ver}
+ patch -p0 -i ../fix-fontforge-encoding.patch
+ mkdir build
+ cd build
+ ../source/configure --prefix=/usr -C \
+ --disable-native-texlive-build \
+ --with-banner-add="/Arch Linux" \
+ --enable-cxx-runtime-hack \
+ --disable-all-pkgs \
+ --disable-dump-share \
+ --disable-ptex \
+ --enable-luatex \
+ --without-system-ptexenc \
+ --with-system-graphite \
+ --without-system-icu \
+ --without-system-kpathsea \
+ --with-system-freetype2 \
+ --with-system-poppler \
+ --with-freetype2-libdir=/usr/lib \
+ --with-freetype2-include=/usr/include/freetype2 \
+ --with-system-gd \
+ --with-system-libpng \
+ --without-system-teckit \
+ --with-system-zlib \
+ --with-system-t1lib \
+ --disable-shared \
+ --disable-largefile \
+ --disable-ipc \
+ --without-mf-x-toolkit \
+ --without-x
+ make
+ make -C libs/zziplib
+ make -C libs/obsdcompat
+ make -C texk/kpathsea
+ make -C texk/web2c luatex
+
+ cd "$srcdir"
+ # this patch removes spurious error message with locale "xx_YY.utf8"
+ patch -p0 -i fix-fontforge-encoding.patch
+ ## fix dvipng (bug #20157)
+ pushd "source/texk/dvipng/dvipng-1.13"
+ patch -p0 -i "$srcdir/dvipng-fix-options.patch"
+ popd
+
+ #############################################################
+ ### configure
+ cd source
+ ## prevent compiling Xdvi with libXp
+ sed -i~ 's|-lXp ||' texk/xdvik/configure
+ test ! -d Work && mkdir Work
+ cd Work
+ echo "--> Initial configuration..."
+ # we use temporary prefix to avoid messing the existing $pkgdir/usr/share/texmf tree
+ ../configure --prefix=/usr -C \
+ --datarootdir=$srcdir/inst/usr/share \
+ --datadir=$srcdir/inst/usr/share \
+ --mandir=$srcdir/inst/usr/share/man \
+ --disable-native-texlive-build \
+ --with-banner-add="/Arch Linux" \
+ --disable-multiplatform \
+ --disable-dialog \
+ --disable-psutils \
+ --disable-t1utils \
+ --disable-bibtexu \
+ --disable-xz \
+ --with-system-zlib \
+ --with-system-pnglib \
+ --with-system-ncurses \
+ --with-system-t1lib \
+ --with-system-gd \
+ --with-system-xpdf \
+ --with-system-freetype2 \
+ --with-system-graphite \
+ --with-freetype2-libdir=/usr/lib \
+ --with-freetype2-include=/usr/include/freetype2 \
+ --with-xdvi-x-toolkit=xaw \
+ --disable-dump-share \
+ --disable-aleph \
+ --disable-luatex \
+ --with-clisp-runtime=default \
+ --enable-xindy --disable-xindy-rules --disable-xindy-docs
+ #############################################################
+ ### make
+ echo "-------------------------------------------------------"
+ echo "--> Building the whole beast ..."
+ echo "-------------------------------------------------------"
+ make
+}
+
+package() {
+ cd $srcdir
+ #############################################################
+ ### install texmf tree
+ echo "-------------------------------------------------------"
+ echo "--> installing the texmf tree"
+ echo "-------------------------------------------------------"
+ install -m755 -d $pkgdir/usr/share
+ cp -r texmf $pkgdir/usr/share/
+ install -d -m755 $pkgdir/etc/texmf/web2c
+ install -d -m755 $pkgdir/etc/texmf/chktex
+ install -d -m755 $pkgdir/etc/texmf/dvips/config
+ install -d -m755 $pkgdir/etc/texmf/dvipdfm/config
+ install -d -m755 $pkgdir/etc/texmf/dvipdfmx
+ install -d -m755 $pkgdir/etc/texmf/tex/generic/config
+ install -d -m755 $pkgdir/etc/texmf/ttf2pk
+ install -d -m755 $pkgdir/etc/texmf/xdvi
+ install -d -m755 $pkgdir/etc/fonts/conf.avail
+ install -m644 $srcdir/09-texlive-fonts.conf $pkgdir/etc/fonts/conf.avail/
+ # replace upstream texmf.cnf with ours
+ rm -f $pkgdir/usr/share/texmf/web2c/texmf.cnf
+ install -m644 $srcdir/texmf.cnf $pkgdir/etc/texmf/web2c/texmf.cnf
+ # since the location of texmf.cnf is hard-wired to be under /usr/share/texmf/web2c
+ # we make a symlink from /etc/texmf/web2c/texmf.cnf to the latter
+ ln -s /etc/texmf/web2c/texmf.cnf $pkgdir/usr/share/texmf/web2c/texmf.cnf
+ # fix location of TEXMFCACHE for luatools
+ sed -i 's#texlive2010#texlive#' $pkgdir/usr/share/texmf/web2c/texmfcnf.lua
+ ## remove aleph from fmtutil.cnf
+ sed -i -e '/aleph/d' $pkgdir/usr/share/texmf/web2c/fmtutil.cnf
+ # move man files to /usr/share/man
+ for i in 1 5; do
+ install -d -m755 $pkgdir/usr/share/man/man$i
+ mv $pkgdir/usr/share/texmf/doc/man/man$i/*.$i $pkgdir/usr/share/man/man$i/
+ done
+ # move info files to /usr/share/info
+ install -d -m755 $pkgdir/usr/share/info
+ mv $pkgdir/usr/share/texmf/doc/info/*.info $pkgdir/usr/share/info/
+ rm -rf $pkgdir/usr/share/texmf/doc/{man,info}
+ # copy config files to $TEXMFCONFIG tree
+ cp -a $pkgdir/usr/share/texmf/chktex/chktexrc \
+ $pkgdir/etc/texmf/chktex/
+ cp -a $pkgdir/usr/share/texmf/web2c/mktex.cnf \
+ $pkgdir/etc/texmf/web2c/
+ cp -a $pkgdir/usr/share/texmf/web2c/updmap.cfg \
+ $pkgdir/etc/texmf/web2c/
+ cp -a $pkgdir/usr/share/texmf/web2c/fmtutil.cnf \
+ $pkgdir/etc/texmf/web2c/
+ cp -a $pkgdir/usr/share/texmf/dvips/config/config.ps \
+ $pkgdir/etc/texmf/dvips/config/
+ cp -a $pkgdir/usr/share/texmf/dvipdfm/config/config \
+ $pkgdir/etc/texmf/dvipdfm/config/
+ cp -a $pkgdir/usr/share/texmf/dvipdfmx/dvipdfmx.cfg \
+ $pkgdir/etc/texmf/dvipdfmx/
+ cp -a $pkgdir/usr/share/texmf/tex/generic/config/pdftexconfig.tex \
+ $pkgdir/etc/texmf/tex/generic/config/
+ cp -a $pkgdir/usr/share/texmf/tex/generic/config/language.dat \
+ $pkgdir/etc/texmf/tex/generic/config/
+ cp -a $pkgdir/usr/share/texmf/tex/generic/config/language.def \
+ $pkgdir/etc/texmf/tex/generic/config/
+ cp -a $pkgdir/usr/share/texmf/ttf2pk/ttf2pk.cfg \
+ $pkgdir/etc/texmf/ttf2pk/
+ cp -a $pkgdir/usr/share/texmf/xdvi/XDvi \
+ $pkgdir/etc/texmf/xdvi/
+ # remove TL specific warnings in the language.{dat,def} files:
+ sed -i -e '/DO NOT EDIT/,+3 d' $pkgdir/etc/texmf/tex/generic/config/language.*
+ # clean updmap.cfg
+ sed -i '/^\(Map\|MixedMap\)/d' $pkgdir/etc/texmf/web2c/updmap.cfg
+ sed -i '/^#! \(Map\|MixedMap\)/d' $pkgdir/etc/texmf/web2c/updmap.cfg
+
+ #############################################################
+ ### install
+ cd source
+ # fixes for xindy
+ find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \;
+
+ echo "-------------------------------------------------------"
+ echo "--> Proceeding with make install ..."
+ echo "-------------------------------------------------------"
+ cd Work
+ make prefix=$srcdir/inst/usr texmf=$pkgdir/usr/share/texmf install
+
+ # restore install location of bin/lib/include
+ mv -f $srcdir/inst/usr/bin $pkgdir/usr/bin
+ mv -f $srcdir/inst/usr/lib $pkgdir/usr/lib
+ mv -f $srcdir/inst/usr/include $pkgdir/usr/include
+ # add symlinks to manpages since they are not included in the original texmf tree
+ for m in $srcdir/inst/usr/share/man/man1/*; do
+ bm=$(basename $m)
+ test -f $pkgdir/usr/share/man/man1/$bm || mv -f $m $pkgdir/usr/share/man/man1/
+ done
+
+ ## install luatex binary
+ install -m755 $srcdir/luatex-beta-${_luatex_ver}/build/texk/web2c/luatex $pkgdir/usr/bin/
+ cd $pkgdir/usr/bin
+ /bin/ln -s luatex texlua
+ /bin/ln -s luatex texluac
+
+ # symlinks in $pkgdir/usr/bin are incorrect
+ echo "--> Fixing symlinks for scripts ..."
+ for f in $pkgdir/usr/bin/* ; do
+ if [ -L $f ]; then
+ target=`ls -l "$f" | sed 's/^.\+ -> //'`
+ if [[ "$target" == ..* ]]; then
+ newtarget=`echo $target | sed -e 's#../#/usr/share/#'`
+ rm -f $f
+ ln -s $newtarget $f
+ test -f $pkgdir/$newtarget && chmod a+x $pkgdir/$newtarget
+ fi
+ fi
+ done
+
+ # create symlinks for formats
+ echo "--> Create symlinks for TeX formats ..."
+ PATH="$PATH:${pkgdir}/usr/bin" texlinks -f $pkgdir/usr/share/texmf/web2c/fmtutil.cnf $pkgdir/usr/bin/
+ #############################################################
+ # remove symlinks to scripts that are not in texlive-bin or texlive-core:
+ SYMLINKS_TO_REMOVE="authorindex \
+ebong \
+bibexport \
+cachepic \
+epspdf \
+epspdftk \
+fig4latex \
+makeglossaries \
+mathspic \
+mkgrkindex \
+pdfannotextractor \
+perltex \
+pdfthumb \
+ppower4 \
+pst2pdf \
+ps4pdf \
+splitindex \
+svn-multi \
+htcontext \
+htlatex \
+htmex \
+ht \
+httexi \
+httex \
+htxelatex \
+htxetex \
+mk4ht \
+ulqda \
+vpe \
+tlmgr"
+ for s in $SYMLINKS_TO_REMOVE; do
+ rm -f $pkgdir/usr/bin/$s
+ done
+ ###################################################################
+}
+
+md5sums=('626f900fb59f036d6fea95f08c74b00b'
+ 'bfb9716aa00c86c08cd31e5b32edeb98'
+ '393a4bf67adc7ca5df2b386759d1a637'
+ '60e405158f53519348d9783e8d420670'
+ '0b2c3a4a1b1e4befb90d7fbb5f08a6e9'
+ '7ae1400dafdb079dcd08d233de83ec44'
+ '4b22a50866849ec14886906474a72a01')
diff --git a/extra/texlive-bin/dvipng-fix-options.patch b/extra/texlive-bin/dvipng-fix-options.patch
new file mode 100644
index 000000000..c0eda1d90
--- /dev/null
+++ b/extra/texlive-bin/dvipng-fix-options.patch
@@ -0,0 +1,10 @@
+--- papersiz.c 2010/03/17 21:40:00 1.16
++++ papersiz.c 2010/09/29 21:14:40 1.17
+@@ -52,6 +52,7 @@
+ while (*q != ',' && *q !='\0')
+ q++;
+ tmp = tmp*lengthsp[i]*dpi/4736286L; /* sp * dots/in / (sp/in), convert sp to pixels */
++ *p=q;
+ return((int32_t) tmp);
+ }
+
diff --git a/extra/texlive-bin/fix-fontforge-encoding.patch b/extra/texlive-bin/fix-fontforge-encoding.patch
new file mode 100644
index 000000000..8104b3289
--- /dev/null
+++ b/extra/texlive-bin/fix-fontforge-encoding.patch
@@ -0,0 +1,12 @@
+--- source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c.orig 2009-09-30 19:27:00.935039526 +0200
++++ source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/noprefs.c 2009-09-30 19:28:04.908364646 +0200
+@@ -495,6 +495,9 @@
+ { "Big5HKSCS", e_big5hkscs },
+ { "Big5-HKSCS", e_big5hkscs },
+ { "UTF-8", e_utf8 },
++ { "utf-8", e_utf8 },
++ { "UTF8", e_utf8 },
++ { "utf8", e_utf8 },
+ { "ISO-10646/UTF-8", e_utf8 },
+ { "ISO_10646/UTF-8", e_utf8 },
+ { "UCS2", e_unicode },
diff --git a/extra/texlive-bin/texmf.cnf b/extra/texlive-bin/texmf.cnf
new file mode 100644
index 000000000..b9d51682a
--- /dev/null
+++ b/extra/texlive-bin/texmf.cnf
@@ -0,0 +1,663 @@
+% texmf.cnf for TeXLive/Arch Linux -- runtime path configuration file for kpathsea.
+% Public domain.
+%
+% What follows is a super-summary of what this .cnf file can
+% contain. Please read the Kpathsea manual for more information.
+%
+% Any identifier (sticking to A-Za-z_ for names is safest) can be assigned.
+% The `=' (and surrounding spaces) is optional.
+% $foo (or ${foo}) in a value expands to the envvar or cnf value of foo.
+% Long lines can be continued with a \.
+%
+% Earlier entries (in the same or another file) override later ones, and
+% an environment variable foo overrides any texmf.cnf definition of foo.
+%
+% All definitions are read before anything is expanded, so you can use
+% variables before they are defined.
+%
+% If a variable assignment is qualified with `.PROGRAM', it is ignored
+% unless the current executable (last filename component of argv[0]) is
+% named PROGRAM. This foo.PROGRAM construct is not recognized on the
+% right-hand side. For environment variables, use FOO_PROGRAM.
+%
+% Which file formats use which paths for searches is described in the
+% various programs' and the Kpathsea documentation (http://tug.org/kpathsea).
+%
+% // means to search subdirectories (recursively).
+% A leading !! means to look only in the ls-R db, never on the disk.
+% In this file, either ; or : can be used to separate path components.
+% A leading/trailing/doubled path separator in the paths will be
+% expanded into the compile-time default. Probably not what you want.
+%
+
+% Brace notation is supported, for example: /usr/local/{mytex,othertex}
+% expands to /usr/local/mytex:/usr/local/othertex. You can use the path
+% separator as well as the comma for this: /usr/local/{mytex:othertex}
+% also expands to /usr/local/mytex:/usr/local/othertex. We make
+% extensive use of this.
+
+% Part 1: Search paths and directories.
+
+% You can set an environment variable to override TEXMF if you're testing
+% a new TeX tree, without changing anything else.
+%
+% You may wish to use one of the $SELFAUTO... variables here so TeX will
+% find where to look dynamically. See the manual and the definition
+% below of TEXMFCNF.
+
+% The tree containing the runtime files closely related to the specific
+% program version used:
+TEXMFMAIN = /usr/share/texmf
+
+% The main distribution tree:
+TEXMFDIST = /usr/share/texmf-dist
+
+% Our documentation-only tree, arranged by language:
+TEXMFDOC = /usr/share/texmf-doc
+
+% A place for local additions to a "standard" texmf tree.
+% This tree is not used for local configuration maintained by
+% texconfig, it uses TEXMFCONFIG below.
+TEXMFLOCAL = /usr/local/share/texmf
+
+% TEXMFSYSVAR, where texconfig-sys stores variable runtime data.
+TEXMFSYSVAR = /var/lib/texmf
+
+% TEXMFSYSCONFIG, where texconfig-sys stores configuration data.
+TEXMFSYSCONFIG = /etc/texmf
+
+% User texmf trees are allowed as follows.
+TEXMFHOME = ~/texmf
+
+% TEXMFVAR, where texconfig stores variable runtime data.
+TEXMFVAR = ~/.texlive/texmf-var
+
+% TEXMFCONFIG, where texconfig stores configuration data.
+TEXMFCONFIG = ~/.texlive/texmf-config
+
+% Now, list all the texmf trees. If you have multiple trees you can
+% use shell brace notation, like this:
+% TEXMF = {$TEXMFHOME,!!$TEXMFLOCAL,!!$TEXMFMAIN}
+% The braces are necessary.
+%
+% For texconfig to work properly, TEXMFCONFIG and TEXMFVAR should be named
+% explicitly and before all other trees.
+%
+% TEXMFLOCAL follows TEXMFMAIN (and precedes TEXMFDIST) because the
+% files in TEXMFMAIN are tightly coupled with the particular version of
+% the distribution, such as format files. Overriding them would be more
+% likely to cause trouble than help. On the other hand, all the
+% standard packages and fonts are in TEXMFDIST, and locally-installed
+% versions should take precedence over those (although it is generally a
+% source of confusion to have different versions of a package installed,
+% whatever the trees, so try to avoid it).
+TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
+
+% Where to look for ls-R files. There need not be an ls-R in the
+% directories in this path, but if there is one, Kpathsea will use it.
+% By default, this is only the !! elements of TEXMF, so that mktexlsr
+% does not create ls-R files in the non-!! elements -- because if an
+% ls-R is present, it will be used, and the disk will not be searched.
+% This is arguably a bug in kpathsea.
+TEXMFDBS = {!!$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFMAIN,!!$TEXMFLOCAL,!!$TEXMFDIST}
+
+% The system trees. These are the trees that are shared by all the users.
+% If a tree appears in this list, the mktex* scripts will use
+% VARTEXFONTS for generated files, if the original tree isn't writable;
+% otherwise the current working directory is used.
+SYSTEXMF = $TEXMFSYSVAR;$TEXMFMAIN;$TEXMFLOCAL;$TEXMFDIST
+
+% Where generated fonts may be written. This tree is used when the sources
+% were found in a system tree and either that tree wasn't writable, or the
+% varfonts feature was enabled in MT_FEATURES in mktex.cnf.
+VARTEXFONTS = $TEXMFVAR/fonts
+
+% On some systems, there will be a system tree which contains all the font
+% files that may be created as well as the formats. For example
+% TEXMFVAR = /var/lib/texmf
+% is used in many distros. In this case, set VARTEXFONTS like this
+% VARTEXFONTS = $TEXMFVAR/fonts
+% and do not mention it in TEXMFDBS (but _do_ mention TEXMFVAR).
+%
+% Remove $VARTEXFONTS from TEXMFDBS if the VARTEXFONTS directory is below
+% one of the TEXMF directories (avoids overlapping ls-R files).
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Usually you will not need to edit any of the following variables.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% WEB2C is for Web2C specific files. The current directory may not be
+% a good place to look for them.
+WEB2C = $TEXMF/web2c
+
+% TEXINPUTS is for TeX input files -- i.e., anything to be found by \input
+% or \openin, including .sty, .eps, etc. We specify paths for all known
+% formats, past or present. Not all of them are built these days.
+
+% Plain TeX. Have the command tex check all directories as a last
+% resort, we may have plain-compatible stuff anywhere.
+TEXINPUTS.tex = .;$TEXMF/tex/{plain,generic,}//
+
+% Fontinst needs to read afm files.
+TEXINPUTS.fontinst = .;$TEXMF/{tex,fonts/afm}//
+
+% Other plain-based formats.
+TEXINPUTS.amstex = .;$TEXMF/tex/{amstex,plain,generic,}//
+TEXINPUTS.csplain = .;$TEXMF/tex/{csplain,plain,generic,}//
+TEXINPUTS.eplain = .;$TEXMF/tex/{eplain,plain,generic,}//
+TEXINPUTS.ftex = .;$TEXMF/tex/{formate,plain,generic,}//
+TEXINPUTS.mex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.texinfo = .;$TEXMF/tex/{texinfo,plain,generic,}//
+
+% LaTeX 2e specific macros are stored in latex/, macros that can only be
+% used with 2.09 in latex209/. In addition, we look in the directory
+% latex209, useful for macros that were written for 2.09 and do not
+% mention 2e at all, but can be used with 2e.
+TEXINPUTS.cslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}//
+TEXINPUTS.latex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.latex209 = .;$TEXMF/tex/{latex209,generic,latex,}//
+TEXINPUTS.olatex = .;$TEXMF/tex/{latex,generic,}//
+
+% MLTeX.
+TEXINPUTS.frlatex = .;$TEXMF/tex/{french,latex,generic,}//
+TEXINPUTS.frtex = .;$TEXMF/tex/{french,plain,generic,}//
+TEXINPUTS.mllatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.mltex = .;$TEXMF/tex/{plain,generic,}//
+
+% e-TeX.
+TEXINPUTS.elatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.etex = .;$TEXMF/tex/{plain,generic,}//
+
+% pdfTeX.
+TEXINPUTS.pdfcslatex = .;$TEXMF/tex/{cslatex,csplain,latex,generic,}//
+TEXINPUTS.pdfcsplain = .;$TEXMF/tex/{csplain,plain,generic,}//
+TEXINPUTS.pdflatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.pdfmex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.utf8mex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.pdftex = .;$TEXMF/tex/{plain,generic,}//
+TEXINPUTS.pdftexinfo = .;$TEXMF/tex/{texinfo,plain,generic,}//
+TEXINPUTS.pdfamstex = .;$TEXMF/tex/{amstex,plain,generic,}//
+
+% pdfeTeX.
+TEXINPUTS.pdfelatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.pdfetex = .;$TEXMF/tex/{plain,generic,}//
+
+% pdfxTeX.
+TEXINPUTS.pdfxlatex = .;$TEXMF/tex/{latex,generic,}//
+TEXINPUTS.pdfxmex = .;$TEXMF/tex/{mex,plain,generic,}//
+TEXINPUTS.pdfxtex = .;$TEXMF/tex/{plain,generic,}//
+
+% LuaTeX.
+TEXINPUTS.lualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
+TEXINPUTS.luatex = .;$TEXMF/tex/{luatex,plain,generic,}//
+TEXINPUTS.dvilualatex = .;$TEXMF/tex/{lualatex,latex,luatex,generic,}//
+TEXINPUTS.dviluatex = .;$TEXMF/tex/{luatex,plain,generic,}//
+
+% XeTeX.
+TEXINPUTS.xelatex = .;$TEXMF/tex/{xelatex,latex,xetex,generic,}//
+TEXINPUTS.xeplain = .;$TEXMF/tex/{xeplain,eplain,plain,xetex,generic,}//
+TEXINPUTS.xetex = .;$TEXMF/tex/{xetex,plain,generic,}//
+
+
+% ConTeXt.
+TEXINPUTS.context = .;$TEXMF/tex/{context,plain,generic,}//
+
+% jadetex
+TEXINPUTS.jadetex = .;$TEXMF/tex/{jadetex,latex,generic,}//
+TEXINPUTS.pdfjadetex = .;$TEXMF/tex/{jadetex,latex,generic,}//
+
+% XMLTeX.
+TEXINPUTS.xmltex = .;$TEXMF/tex/{xmltex,latex,generic,}//
+TEXINPUTS.pdfxmltex = .;$TEXMF/tex/{xmltex,latex,generic,}//
+
+% Miscellany, no longer built.
+TEXINPUTS.lamstex = .;$TEXMF/tex/{lamstex,plain,generic,}//
+TEXINPUTS.lollipop = .;$TEXMF/tex/{lollipop,plain,generic,}//
+TEXINPUTS.frpdflatex = .;$TEXMF/tex/{french,latex,generic,}//
+TEXINPUTS.frpdftex = .;$TEXMF/tex/{french,plain,generic,}//
+
+% Earlier entries override later ones, so put this generic one last.
+TEXINPUTS = .;$TEXMF/tex/{$progname,generic,}//
+
+% ttf2tfm.
+TTF2TFMINPUTS = .;$TEXMF/ttf2pk//
+
+% Metafont, MetaPost inputs.
+MFINPUTS = .;$TEXMF/metafont//;{$TEXMF/fonts,$VARTEXFONTS}/source//
+MPINPUTS = .;$TEXMF/metapost//
+
+% Dump files (fmt/base/mem) for vir{tex,mf,mp} to read.
+% We want to find the engine-specific file, e.g., cont-en.fmt can
+% exist under both pdftex/ and xetex/. But just in case some formats
+% end up without an engine directory, look directly in web2c/ too.
+% We repeat the same definition three times because of the way fmtutil
+% is implemented; if we use ${TEXFORMATS}, the mpost/mf/etc. formats
+% will not be found.
+TEXFORMATS = .;$TEXMF/web2c{/$engine,}
+MFBASES = .;$TEXMF/web2c{/$engine,}
+MPMEMS = .;$TEXMF/web2c{/$engine,}
+%
+% As of 2008, pool files don't exist any more (the strings are compiled
+% into the binaries), but just in case something expects to find these:
+TEXPOOL = .;$TEXMF/web2c
+MFPOOL = ${TEXPOOL}
+MPPOOL = ${TEXPOOL}
+
+% support the original xdvi. Must come before the generic settings.
+PKFONTS.XDvi = .;$TEXMF/%s;$VARTEXFONTS/pk/{%m,modeless}//
+VFFONTS.XDvi = .;$TEXMF/%s
+PSHEADERS.XDvi = .;$TEXMF/%q{dvips,fonts/type1}//
+TEXPICTS.XDvi = .;$TEXMF/%q{dvips,tex}//
+
+% Device-independent font metric files.
+VFFONTS = .;$TEXMF/fonts/vf//
+TFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/tfm//
+
+% The $MAKETEX_MODE below means the drivers will not use a cx font when
+% the mode is ricoh. If no mode is explicitly specified, kpse_prog_init
+% sets MAKETEX_MODE to /, so all subdirectories are searched. See the manual.
+% The modeless part guarantees that bitmaps for PostScript fonts are found.
+PKFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/pk/{$MAKETEX_MODE,modeless}//
+
+% Similarly for the GF format, which only remains in existence because
+% Metafont outputs it (and MF isn't going to change).
+GFFONTS = .;$TEXMF/fonts/gf/$MAKETEX_MODE//
+
+% A backup for PKFONTS and GFFONTS. Not used for anything.
+GLYPHFONTS = .;$TEXMF/fonts
+
+% A place to puth everything that doesn't fit the other font categories.
+MISCFONTS = .;$TEXMF/fonts/misc//
+
+% font name map files. This isn't just fonts/map// because ConTeXt
+% wants support for having files with the same name in the different
+% subdirs. Maybe if the programs ever get unified to accepting the same
+% map file syntax the definition can be simplified again.
+TEXFONTMAPS = .;$TEXMF/fonts/map/{$progname,pdftex,dvips,}//
+
+% BibTeX bibliographies and style files. bibtex8 also uses these.
+BIBINPUTS = .;$TEXMF/bibtex/bib//
+BSTINPUTS = .;$TEXMF/bibtex/{bst,csf}//
+
+% MlBibTeX.
+MLBIBINPUTS = .;$TEXMF/bibtex/bib/{mlbib,}//
+MLBSTINPUTS = .;$TEXMF/bibtex/{mlbst,bst}//
+
+% MFT style files.
+MFTINPUTS = .;$TEXMF/mft//
+
+% PostScript headers and prologues (.pro); unfortunately, some programs
+% also use this for acessing font files (enc, type1, truetype)
+TEXPSHEADERS = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3}}//
+TEXPSHEADERS.gsftopk = .;$TEXMF/{dvips,fonts/{enc,type1,type42,type3,truetype}}//
+
+% OSFONTDIR is to provide a convenient hook for allowing TeX to find
+% fonts installed on the system (outside of TeX). An empty default
+% value would add "//" to the search paths, so we give it a dummy value.
+% OSFONTDIR = /usr/share/fonts
+
+% PostScript Type 1 outline fonts.
+T1FONTS = .;$TEXMF/fonts/type1//;$OSFONTDIR//
+
+% PostScript AFM metric files.
+AFMFONTS = .;$TEXMF/fonts/afm//;$OSFONTDIR//
+
+% TrueType outline fonts.
+TTFONTS = .;$TEXMF/fonts/truetype//;$OSFONTDIR//
+
+% Opentype outline fonts.
+OPENTYPEFONTS = .;$TEXMF/fonts/opentype//;$OSFONTDIR//
+
+% Type 42 outline fonts.
+T42FONTS = .;$TEXMF/fonts/type42//
+
+% Ligature definition files.
+LIGFONTS = .;$TEXMF/fonts/lig//
+
+% Dvips' config.* files (this name should not start with `TEX'!).
+TEXCONFIG = $TEXMF/dvips//
+
+% Makeindex style (.ist) files.
+INDEXSTYLE = .;$TEXMF/makeindex//
+
+% Font encoding files (.enc).
+ENCFONTS = .;$TEXMF/fonts/enc//
+
+% CMap files.
+CMAPFONTS = .;$TEXMF/fonts/cmap//
+
+% Subfont definition files.
+SFDFONTS = .;$TEXMF/fonts/sfd//
+
+% OpenType outline fonts.
+OPENTYPEFONTS = .;$TEXMF/fonts/opentype//
+
+% OpenType feature files (.fea).
+FONTFEATURES=.;$TEXMF/fonts/fea//
+
+% .cid and .cidmap
+FONTCIDMAPS=.;$TEXMF/fonts/cid//
+
+% pdftex config files:
+PDFTEXCONFIG = .;$TEXMF/pdftex/{$progname,}//
+
+% Used by DMP (ditroff-to-mpx), called by makempx -troff.
+TRFONTS = /usr{/local,}/share/groff/{current/font,site-font}/devps
+MPSUPPORT = .;$TEXMF/metapost/support
+
+% For xdvi to find mime.types and .mailcap, if they do not exist in
+% ~. These are single directories, not paths.
+% (But the default mime.types, at least, may well suffice.)
+MIMELIBDIR = /etc
+MAILCAPLIBDIR = /etc
+
+% Default settings for fontconfig library, used by Windows versions of
+% xetex/xdvipdfmx. On Unixish systems, fontconfig ignores this.
+FONTCONFIG_FILE=fonts.conf
+FONTCONFIG_PATH=$TEXMFSYSVAR/fonts/conf
+FC_CACHEDIR=$TEXMFSYSVAR/fonts/cache
+
+% TeX documentation and source files, for use with texdoc and kpsewhich.
+TEXDOCS = $TEXMF/doc//
+TEXSOURCES = .;$TEXMF/source//
+
+% Web and CWeb input paths.
+WEBINPUTS = .;$TEXMF/web//
+CWEBINPUTS = .;$TEXMF/cweb//
+
+% Omega-related fonts and other files.
+OFMFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ofm,tfm}//
+OPLFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/opl//
+OVFFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/{ovf,vf}//
+OVPFONTS = .;{$TEXMF/fonts,$VARTEXFONTS}/ovp//
+OTPINPUTS = .;$TEXMF/omega/otp//
+OCPINPUTS = .;$TEXMF/omega/ocp//
+
+% Some additional input variables for several programs. If you add
+% a program that uses the `other text files' or `other binary files'
+% search formats, you'll want to add their variables here as well.
+T4HTINPUTS = .;$TEXMF/tex4ht//
+
+%% t4ht utility, sharing files with TeX4ht
+TEX4HTFONTSET=alias,iso8859,unicode
+TEX4HTINPUTS = .;$TEXMF/tex4ht/base//;$TEXMF/tex4ht/ht-fonts/{$TEX4HTFONTSET}//
+
+% TeXworks editor configuration and settings
+TW_LIBPATH = $TEXMFCONFIG/texworks
+TW_INIPATH = $TW_LIBPATH
+
+% Find scripts that are distributed/installed in the texmf tree.
+
+% Lua needs to look in TEXINPUTS for lua scripts distributed with packages.
+LUAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/{lua,}//;$TEXINPUTS
+
+% Lua needs to look for binary lua libraries distributed with packages.
+CLUAINPUTS = .;$SELFAUTOLOC/lib/{$progname,$engine,}/lua//
+
+% Architecture independent executables.
+TEXMFSCRIPTS = $TEXMF/scripts/{$progname,$engine,}//
+
+% Other languages.
+JAVAINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/java//
+PERLINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/perl//
+PYTHONINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/python//
+RUBYINPUTS = .;$TEXMF/scripts/{$progname,$engine,}/ruby//
+
+
+%% The mktex* scripts rely on KPSE_DOT. Do not set it in the environment.
+% KPSE_DOT = .
+
+% This definition isn't used from this .cnf file itself (that would be
+% paradoxical), but the compile-time default in paths.h is built from it.
+% The SELFAUTO* variables are set automatically from the location of
+% argv[0], in kpse_set_program_name.
+%
+% This main texmf.cnf file is installed, for a release YYYY, in a
+% directory such as /usr/local/texlive/YYYY/texmf/web2c/texmf.cnf.
+% Since this file is subject to future updates, the TeX Live installer
+% or human administrator may also create a file
+% /usr/local/texlive/YYYY/texmf.cnf; any settings in this latter file
+% will take precedence over the distributed one under texmf/web2c.
+%
+% For security reasons, it is better not to include . in this path.
+%
+TEXMFCNF = {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c}
+
+% kpathsea 3.5.3 and later sets these at runtime. To avoid empty
+% expansions from binaries linked against an earlier version of the
+% library, we set $progname and $engine to something non-empty:
+progname = unsetprogname
+engine = unsetengine
+
+
+% Part 2: Options.
+
+% If this option is set to true, `tex a.b' will look first for a.b.tex
+% (within each path element), and then for a.b, i.e., we try standard
+% extensions first. If this is false, we first look for a.b and then
+% a.b.tex, i.e., we try the name as-is first.
+%
+% Both names are always tried; the difference is the order in which they
+% are tried. The setting applies to all searches, not just .tex.
+%
+% This setting only affects names being looked up which *already* have
+% an extension. A name without an extension (e.g., `tex story') will
+% always have an extension added first.
+%
+% The default is true, because we already avoid adding the standard
+% extension(s) in the usual cases. E.g., babel.sty will only look for
+% babel.sty, not babel.sty.tex, regardless of this setting.
+try_std_extension_first = t
+
+% Enable system commands via \write18{...}. When enabled fully (set to
+% t), obviously insecure. When enabled partially (set to p), only the
+% commands listed in shell_escape_commands are allowed. Although this
+% is not fully secure either, it is much better, and so useful that we
+% enable it for everything but bare tex.
+shell_escape = p
+
+% No spaces in this command list.
+%
+% The programs listed here are as safe as any we know: they either do
+% not write any output files, respect openout_any, or have hard-coded
+% restrictions similar or higher to openout_any=p. They also have no
+% features to invoke arbitrary other programs, and no known exploitable
+% bugs. All to the best of our knowledge. They also have practical use
+% for being called from TeX.
+%
+shell_escape_commands = \
+bibtex,bibtex8,\
+kpsewhich,\
+makeindex,\
+repstopdf,\
+
+% we'd like to allow:
+% dvips - but external commands can be executed, need at least -R1.
+% epspdf, ps2pdf, pstopdf - need to respect openout_any,
+% and gs -dSAFER must be used and check for shell injection with filenames.
+% (img)convert (ImageMagick) - delegates.mgk possible misconfig, besides,
+% without Unix convert it hardly seems worth it, and Windows convert
+% is something completely different that destroys filesystems, so skip.
+% pygmentize - but is the filter feature insecure?
+% ps4pdf - but it calls an unrestricted latex.
+% rpdfcrop - maybe ok, but let's get experience with repstopdf first.
+% texindy,xindy - but is the module feature insecure?
+% ulqda - but requires optional SHA1.pm, so why bother.
+% tex, latex, etc. - need to forbid --shell-escape, and inherit openout_any.
+
+% plain TeX should remain unenhanced.
+shell_escape.tex = f
+
+% Allow TeX \openin, \openout, or \input on filenames starting with `.'
+% (e.g., .rhosts) or outside the current tree (e.g., /etc/passwd)?
+% a (any) : any file can be opened.
+% r (restricted) : disallow opening "dotfiles".
+% p (paranoid) : as `r' and disallow going to parent directories, and
+% restrict absolute paths to be under $TEXMFOUTPUT.
+openout_any = p
+openin_any = a
+
+% Write .log/.dvi/etc. files here, if the current directory is unwritable.
+% TEXMFOUTPUT = /tmp
+
+% If a dynamic file creation fails, log the command to this file, in
+% either the current directory or TEXMFOUTPUT. Set to the
+% empty string or 0 to avoid logging.
+MISSFONT_LOG = missfont.log
+
+% Set to a colon-separated list of words specifying warnings to suppress.
+% To suppress everything, use TEX_HUSH = all; this is currently equivalent to
+% TEX_HUSH = checksum:lostchar:readable:special
+% To suppress nothing, use TEX_HUSH = none or do not set the variable at all.
+TEX_HUSH = none
+
+% Allow TeX, and MF to parse the first line of an input file for
+% the %&format construct.
+parse_first_line = t
+
+% But don't parse the first line if invoked as "tex", since we want that
+% to remain Knuth-compatible. The src_specials and
+% file_line_error_style settings, as well as the options -enctex,
+% -mltex, -8bit, etc., also affect this, but they are all off by default.
+parse_first_line.tex = f
+
+% Control file:line:error style messages.
+file_line_error_style = f
+
+% Enable the mktex... scripts by default? These must be set to 0 or 1.
+% Particular programs can and do override these settings, for example
+% dvips's -M option. Your first chance to specify whether the scripts
+% are invoked by default is at configure time.
+%
+% These values are ignored if the script names are changed; e.g., if you
+% set DVIPSMAKEPK to `foo', what counts is the value of the environment
+% variable/config value `FOO', not the `MKTEXPK' value.
+%
+% MKTEXTEX = 0
+% MKTEXPK = 0
+% MKTEXMF = 0
+% MKTEXTFM = 0
+% MKTEXFMT = 0
+% MKOCP = 0
+% MKOFM = 0
+
+% Used by makempx to run TeX. We use "etex" because MetaPost is
+% expecting DVI, and not "tex" because we want first line parsing.
+TEX = etex
+
+% These variables specify the external program called for the
+% interactive `e' option. %d is replaced by the line number and %s by
+% the current filename. The default is specified at compile-time, and
+% we let that stay in place since different platforms like different values.
+%TEXEDIT = vi +%d "%s"
+%MFEDIT = ${TEXEDIT}
+%MPEDIT = ${TEXEDIT}
+
+% The default `codepage and sort order' file for BibTeX8, when none is
+% given as command line option or environment variable.
+BIBTEX_CSFILE = 88591lat.csf
+
+% Part 3: Array and other sizes for TeX (and Metafont).
+%
+% If you want to change some of these sizes only for a certain TeX
+% variant, the usual dot notation works, e.g.,
+% main_memory.hugetex = 20000000
+%
+% If a change here appears to be ignored, try redumping the format file.
+
+% Memory. Must be less than 8,000,000 total.
+%
+% main_memory is relevant only to initex, extra_mem_* only to non-ini.
+% Thus, have to redump the .fmt file after changing main_memory; to add
+% to existing fmt files, increase extra_mem_*. (To get an idea of how
+% much, try \tracingstats=2 in your TeX source file;
+% web2c/tests/memtest.tex might also be interesting.)
+%
+% To increase space for boxes (as might be needed by, e.g., PiCTeX),
+% increase extra_mem_bot.
+%
+% For some xy-pic samples, you may need as much as 700000 words of memory.
+% For the vast majority of documents, 60000 or less will do.
+%
+main_memory = 3000000 % words of inimemory available; also applies to inimf&mp
+extra_mem_top = 0 % extra high memory for chars, tokens, etc.
+extra_mem_bot = 0 % extra low memory for boxes, glue, breakpoints, etc.
+
+% ConTeXt needs lots of memory.
+extra_mem_top.context = 2000000
+extra_mem_bot.context = 4000000
+
+% Words of font info for TeX (total size of all TFM files, approximately).
+% Must be >= 20000 and <= 147483647 (without tex.ch changes).
+font_mem_size = 3000000
+
+% Total number of fonts. Must be >= 50 and <= 9000 (without tex.ch changes).
+font_max = 9000
+
+% Extra space for the hash table of control sequences.
+hash_extra = 200000
+
+% Max number of characters in all strings, including all error messages,
+% help texts, font names, control sequences. These values apply to TeX.
+pool_size = 3250000
+% Minimum pool space after TeX's own strings; must be at least
+% 25000 less than pool_size, but doesn't need to be nearly that large.
+string_vacancies = 90000
+% Maximum number of strings.
+max_strings = 500000
+% min pool space left after loading .fmt
+pool_free = 47500
+
+% Buffer size. TeX uses the buffer to contain input lines, but macro
+% expansion works by writing material into the buffer and reparsing the
+% line. As a consequence, certain constructs require the buffer to be
+% very large, even though most documents can be handled with a small value.
+buf_size = 200000
+
+% Hyphenation trie. The maximum possible is 4194303 (ssup_trie_size in
+% the sources), but we don't need that much. The value here suffices
+% for all known free hyphenation patterns to be loaded simultaneously
+% (as TeX Live does).
+%
+trie_size = 1000000
+
+hyph_size = 8191 % prime number of hyphenation exceptions, >610, <32767.
+ % http://primes.utm.edu/curios/page.php/8191.html
+nest_size = 500 % simultaneous semantic levels (e.g., groups)
+max_in_open = 15 % simultaneous input files and error insertions,
+ % also applies to MetaPost
+param_size = 10000 % simultaneous macro parameters, also applies to MP
+save_size = 50000 % for saving values outside current group
+stack_size = 5000 % simultaneous input sources
+
+% These work best if they are the same as the I/O buffer size, but it
+% doesn't matter much. Must be a multiple of 8.
+dvi_buf_size = 16384 % TeX
+gf_buf_size = 16384 % MF
+
+% It's probably inadvisable to change these. At any rate, we must have:
+% 45 < error_line < 255;
+% 30 < half_error_line < error_line - 15;
+% 60 <= max_print_line;
+% These apply to TeX, Metafont, and MetaPost.
+error_line = 79
+half_error_line = 50
+max_print_line = 79
+
+% Metafont only.
+screen_width.mf = 1664
+screen_depth.mf = 1200
+
+% BibTeX only (max_strings also determines hash_size and hash_prime).
+ent_str_size = 250
+glob_str_size = 5000
+max_strings.bibtex = 35307
+max_strings.bibtex8 = 35307
+max_strings.bibtexu = 35307
+max_strings.pbibtex = 35307
+
+% GFtype only.
+line_length.gftype = 500
+max_rows.gftype = 8191
+max_cols.gftype = 8191
diff --git a/extra/texmacs/PKGBUILD b/extra/texmacs/PKGBUILD
new file mode 100644
index 000000000..96150e9d5
--- /dev/null
+++ b/extra/texmacs/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 108863 2011-02-04 14:42:17Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=texmacs
+pkgver=1.0.7.9
+pkgrel=1
+pkgdesc="Free scientific text editor, inspired by TeX and GNU Emacs. WYSIWYG editor TeX-fonts and CAS-interface (Giac, GTybalt, Macaulay 2, Maxima, Octave, Pari, Qcl, R and Yacas) in one."
+arch=('i686' 'x86_64')
+url="http://www.texmacs.org/"
+license=('GPL')
+depends=('perl' 'guile' 'texlive-core' 'python2' 'libxext' 'freetype2')
+# do not remove texlive-core dependency, as it is needed!
+optdepends=('transfig: convert images using fig2ps')
+source=(ftp://ftp.texmacs.org/pub/TeXmacs/targz/TeXmacs-${pkgver}-src.tar.gz)
+md5sums=('255d64ebdd900218c091667643f06e44')
+
+build() {
+ cd ${srcdir}/TeXmacs-${pkgver}-src
+ sed -i 's/env python/env python2/' \
+ plugins/{mathematica/bin/realpath.py,python/bin/tm_python,sage/bin/tm_sage}
+ sed -i 's/"python"/"python2"/' plugins/python/progs/init-python.scm
+ sed -i '/^LDPATH/d' src/makefile.in
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --libexecdir=/usr/lib
+ make
+}
+
+package() {
+ cd ${srcdir}/TeXmacs-${pkgver}-src
+ make DESTDIR=${pkgdir} install
+
+ # fix fig2ps script
+ sed -i 's|${prefix}|/usr|' ${pkgdir}/usr/bin/fig2ps
+}
diff --git a/extra/tftp-hpa/LICENSE b/extra/tftp-hpa/LICENSE
new file mode 100644
index 000000000..6dade6984
--- /dev/null
+++ b/extra/tftp-hpa/LICENSE
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 1983, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
diff --git a/extra/tftp-hpa/PKGBUILD b/extra/tftp-hpa/PKGBUILD
new file mode 100644
index 000000000..33d44dae7
--- /dev/null
+++ b/extra/tftp-hpa/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 42756 2009-06-18 19:44:52Z tpowa $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Jose Javier <jojapa@terra.es>
+pkgname=tftp-hpa
+pkgver=5.0
+pkgrel=3
+pkgdesc="Official tftp server"
+arch=('i686' 'x86_64')
+url="http://www.kernel.org/pub/software/network/tftp/"
+license=('BSD')
+depends=('tcp_wrappers' 'readline>=6.0.00')
+conflicts=('netkit-tftp')
+backup=('etc/conf.d/tftpd')
+source=(http://www.kernel.org/pub/software/network/tftp/$pkgname-$pkgver.tar.gz tftpd.rc tftpd.conf LICENSE)
+md5sums=('1ae813a94670f0d8c294aafa9f5ecf65' 'a974d02526f19222146c8e3d3b598871'\
+ '414a79dc891bced056d99a9bb790fc9e' '6ce21e27b6fdc1a1adf85c81e42aeecf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make INSTALLROOT="${pkgdir}" install || return 1
+ install -d "${pkgdir}/etc/rc.d"
+ install -d "${pkgdir}/var/tftpboot"
+ install -m755 "${srcdir}/tftpd.rc" "${pkgdir}/etc/rc.d/tftpd" || return 1
+ install -D -m644 "${srcdir}/tftpd.conf" "${pkgdir}/etc/conf.d/tftpd" || return 1
+ rm "${pkgdir}/usr/share/man/man8/tftpd.8"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/tftp-hpa/tftpd.conf b/extra/tftp-hpa/tftpd.conf
new file mode 100644
index 000000000..4705cc3a9
--- /dev/null
+++ b/extra/tftp-hpa/tftpd.conf
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to TFTPD
+#
+TFTPD_ARGS="-l -s /var/tftpboot"
diff --git a/extra/tftp-hpa/tftpd.rc b/extra/tftp-hpa/tftpd.rc
new file mode 100755
index 000000000..b21f87f5c
--- /dev/null
+++ b/extra/tftp-hpa/tftpd.rc
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+TFTPD_ARGS=
+[ -f /etc/conf.d/tftpd ] && . /etc/conf.d/tftpd
+
+PID=$(pidof -o %PPID /usr/sbin/in.tftpd)
+case "$1" in
+ start)
+ stat_busy "Starting TFTPD"
+ [ -z "$PID" ] && /usr/sbin/in.tftpd ${TFTPD_ARGS}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon in.tftpd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping TFTPD"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon in.tftpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/thinkfinger/PKGBUILD b/extra/thinkfinger/PKGBUILD
new file mode 100644
index 000000000..bf6c8c9bc
--- /dev/null
+++ b/extra/thinkfinger/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 101457 2010-11-29 10:02:41Z allan $
+# Maintainer: François Charette <francois.archlinux.org>
+# Contributor: Damir Perisa <damir.archlinux.org>
+# Contributor: Björn Martensen <bjoern.martensen@gmail.com>
+
+pkgname=thinkfinger
+pkgver=0.3
+pkgrel=4
+pkgdesc="ThinkFinger is a driver for the SGS Thomson Microelectronics fingerprint reader found in most IBM/Lenovo ThinkPads"
+url="http://thinkfinger.sourceforge.net/"
+arch=('i686' 'x86_64')
+license=("GPL")
+depends=('pam' 'libusb-compat')
+install=thinkfinger.install
+options=('!libtool')
+source=(http://downloads.sourceforge.net/thinkfinger/$pkgname-$pkgver.tar.gz thinkfinger-uinput-hack.patch)
+md5sums=('588565233bcbea5ff0a7f5314361c380'
+ '71dc334282d19e6db4f6254542ba563c')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ # Patch from Ubuntu: see http://bugs.archlinux.org/task/12580
+ patch -p0 < ../thinkfinger-uinput-hack.patch
+ ./configure --prefix=/usr \
+ --with-securedir=/lib/security \
+ --with-birdir=/etc/pam_thinkfinger
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # create dir to store fingerprints
+ install -d $pkgdir/etc/pam_thinkfinger
+
+ make DESTDIR=$pkgdir install
+}
+
diff --git a/extra/thinkfinger/thinkfinger-uinput-hack.patch b/extra/thinkfinger/thinkfinger-uinput-hack.patch
new file mode 100644
index 000000000..0ac153464
--- /dev/null
+++ b/extra/thinkfinger/thinkfinger-uinput-hack.patch
@@ -0,0 +1,13 @@
+#Source: http://launchpadlibrarian.net/18515541/thinkfinger-uinput-hack.patch (26-12-2008)
+Index: pam/pam_thinkfinger-uinput.c
+===================================================================
+--- pam/pam_thinkfinger-uinput.c (revision 118)
++++ pam/pam_thinkfinger-uinput.c (working copy)
+@@ -95,6 +95,7 @@
+ /* our single key keyboard */
+ i = ioctl (*fd, UI_SET_EVBIT, EV_KEY) < 0;
+ i |= ioctl (*fd, UI_SET_KEYBIT, KEY_ENTER) < 0;
++ i |= ioctl (*fd, UI_SET_KEYBIT, KEY_A) < 0;
+
+ if (write (*fd, &device, device_size) != device_size) {
+ retval = errno;
diff --git a/extra/thinkfinger/thinkfinger.install b/extra/thinkfinger/thinkfinger.install
new file mode 100644
index 000000000..bb1f6dde0
--- /dev/null
+++ b/extra/thinkfinger/thinkfinger.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "==> To use thinkfinger, add 'uinput' to the MODULES=() in /etc/rc.conf."
+ echo " More Infos: http://wiki.archlinux.org/index.php/Thinkfinger"
+}
diff --git a/extra/thunar-archive-plugin/PKGBUILD b/extra/thunar-archive-plugin/PKGBUILD
new file mode 100644
index 000000000..2f3a99803
--- /dev/null
+++ b/extra/thunar-archive-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 107340 2011-01-23 18:55:43Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=thunar-archive-plugin
+pkgver=0.3.0
+pkgrel=1
+pkgdesc="create and deflate archives in thunar"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin"
+groups=('xfce4-goodies')
+depends=('thunar>=1.2.0' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/thunar-plugins/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('afeb3f1c65a4529dbdadc6e7b349a712')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/thunar-archive-plugin/thunar-archive-plugin.install b/extra/thunar-archive-plugin/thunar-archive-plugin.install
new file mode 100644
index 000000000..2538109de
--- /dev/null
+++ b/extra/thunar-archive-plugin/thunar-archive-plugin.install
@@ -0,0 +1,17 @@
+post_install() {
+ cat << EOF
+
+NOTE for thunar-archive-plugin:
+----
+ ==> please install xarchiver, squeeze, file-roller or ark to use the plugin
+EOF
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/thunar-media-tags-plugin/0001-Switch-to-the-new-tooltip-api-in-gtk-depend-on-gtk-2.patch b/extra/thunar-media-tags-plugin/0001-Switch-to-the-new-tooltip-api-in-gtk-depend-on-gtk-2.patch
new file mode 100644
index 000000000..4e613ebb1
--- /dev/null
+++ b/extra/thunar-media-tags-plugin/0001-Switch-to-the-new-tooltip-api-in-gtk-depend-on-gtk-2.patch
@@ -0,0 +1,177 @@
+From d225ada545e196ebd7833103412f4a013f8a44f1 Mon Sep 17 00:00:00 2001
+From: Lionel Le Folgoc <mrpouit@ubuntu.com>
+Date: Mon, 8 Mar 2010 21:25:12 +0100
+Subject: [PATCH] Switch to the new tooltip api in gtk, depend on gtk 2.12, and switch to exo-1
+
+---
+ configure.in.in | 3 ++-
+ thunar-plugin/audio-tags-page.c | 22 +++++++---------------
+ thunar-plugin/tag-renamer.c | 16 +++-------------
+ 3 files changed, 12 insertions(+), 29 deletions(-)
+
+diff --git a/configure.in.in b/configure.in.in
+index ed3099b..c345c5c 100644
+--- a/configure.in.in
++++ b/configure.in.in
+@@ -64,7 +64,8 @@ XDT_I18N([@LINGUAS@])
+ dnl ***********************************
+ dnl *** Check for required packages ***
+ dnl ***********************************
+-XDT_CHECK_PACKAGE([EXO], [exo-0.3], [0.3.1.3])
++XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.12.0])
++XDT_CHECK_PACKAGE([EXO], [exo-1], [0.5.0])
+ XDT_CHECK_PACKAGE([THUNARX], [thunarx-2], [1.0.1])
+ XDT_CHECK_PACKAGE([TAGLIB], [taglib], [1.4])
+
+diff --git a/thunar-plugin/audio-tags-page.c b/thunar-plugin/audio-tags-page.c
+index 7e5dab5..40b226f 100644
+--- a/thunar-plugin/audio-tags-page.c
++++ b/thunar-plugin/audio-tags-page.c
+@@ -89,7 +89,6 @@ struct _AudioTagsPage
+ ThunarxPropertyPage __parent__;
+
+ /* Widgets */
+- GtkTooltips *tooltips;
+ GtkWidget *table;
+ GtkWidget *save_button;
+ GtkWidget *info_button;
+@@ -281,10 +280,6 @@ audio_tags_page_init (AudioTagsPage *page)
+
+ gtk_container_set_border_width (GTK_CONTAINER (page), 8);
+
+- /* Allocate the shared tooltips */
+- page->tooltips = gtk_tooltips_new ();
+- exo_gtk_object_ref_sink (GTK_OBJECT (page->tooltips));
+-
+ /* Main container */
+ vbox = gtk_vbox_new (FALSE, 8);
+ gtk_container_add (GTK_CONTAINER (page), vbox);
+@@ -316,7 +311,7 @@ audio_tags_page_init (AudioTagsPage *page)
+ /* Track spin button */
+ spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 0.0, 0);
+ exo_mutual_binding_new (G_OBJECT (adjustment), "value", G_OBJECT (page), "track");
+- gtk_tooltips_set_tip (page->tooltips, spin, _("Enter the track number here."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (spin), _("Enter the track number here."));
+ gtk_container_add (GTK_CONTAINER (alignment), spin);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin);
+ gtk_widget_show (spin);
+@@ -339,7 +334,7 @@ audio_tags_page_init (AudioTagsPage *page)
+ /* Year spin button */
+ spin = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 1, 0);
+ exo_mutual_binding_new (G_OBJECT (adjustment), "value", G_OBJECT (page), "year");
+- gtk_tooltips_set_tip (page->tooltips, spin, _("Enter the release year here."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (spin), _("Enter the release year here."));
+ gtk_container_add (GTK_CONTAINER (alignment), spin);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin);
+ gtk_widget_show (spin);
+@@ -354,7 +349,7 @@ audio_tags_page_init (AudioTagsPage *page)
+ /* Artist entry */
+ entry = gtk_entry_new ();
+ exo_mutual_binding_new (G_OBJECT (entry), "text", G_OBJECT (page), "artist");
+- gtk_tooltips_set_tip (page->tooltips, entry, _("Enter the name of the artist or author of this file here."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (entry), _("Enter the name of the artist or author of this file here."));
+ gtk_table_attach (GTK_TABLE (page->table), entry, 1, 4, 1, 2, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
+ gtk_widget_show (entry);
+@@ -369,7 +364,7 @@ audio_tags_page_init (AudioTagsPage *page)
+ /* Title entry */
+ entry = gtk_entry_new ();
+ exo_mutual_binding_new (G_OBJECT (entry), "text", G_OBJECT (page), "title");
+- gtk_tooltips_set_tip (page->tooltips, entry, _("Enter the song title here."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (entry), _("Enter the song title here."));
+ gtk_table_attach (GTK_TABLE (page->table), entry, 1, 4, 2, 3, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_widget_show (entry);
+
+@@ -383,7 +378,7 @@ audio_tags_page_init (AudioTagsPage *page)
+ /* Album entry */
+ entry = gtk_entry_new ();
+ exo_mutual_binding_new (G_OBJECT (entry), "text", G_OBJECT (page), "album");
+- gtk_tooltips_set_tip (page->tooltips, entry, _("Enter the album/record title here."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (entry), _("Enter the album/record title here."));
+ gtk_table_attach (GTK_TABLE (page->table), entry, 1, 4, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_widget_show (entry);
+
+@@ -397,7 +392,7 @@ audio_tags_page_init (AudioTagsPage *page)
+ /* Comment entry */
+ entry = gtk_entry_new ();
+ exo_mutual_binding_new (G_OBJECT (entry), "text", G_OBJECT (page), "comment");
+- gtk_tooltips_set_tip (page->tooltips, entry, _("Enter your comments here."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (entry), _("Enter your comments here."));
+ gtk_table_attach (GTK_TABLE (page->table), entry, 1, 4, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0);
+ gtk_widget_show (entry);
+
+@@ -411,7 +406,7 @@ audio_tags_page_init (AudioTagsPage *page)
+ /* Genre combo box */
+ combo = gtk_combo_box_entry_new_text ();
+ exo_mutual_binding_new (G_OBJECT (GTK_BIN (combo)->child), "text", G_OBJECT (page), "genre");
+- gtk_tooltips_set_tip (page->tooltips, combo, _("Select or enter the genre of this song here."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (combo), _("Select or enter the genre of this song here."));
+ gtk_table_attach (GTK_TABLE (page->table), combo, 1, 4, 5, 6, GTK_FILL, 0, 0, 0);
+ gtk_widget_show (combo);
+
+@@ -511,9 +506,6 @@ audio_tags_page_finalize (GObject *object)
+ if (G_LIKELY (page->genre != NULL))
+ g_free (page->genre);
+
+- /* Release the tooltips */
+- g_object_unref (G_OBJECT (page->tooltips));
+-
+ (*G_OBJECT_CLASS (audio_tags_page_parent_class)->finalize) (object);
+ }
+
+diff --git a/thunar-plugin/tag-renamer.c b/thunar-plugin/tag-renamer.c
+index acb694e..bdbb17c 100644
+--- a/thunar-plugin/tag-renamer.c
++++ b/thunar-plugin/tag-renamer.c
+@@ -132,9 +132,6 @@ struct _TagRenamer
+ {
+ ThunarxRenamer __parent__;
+
+- /* Widgets */
+- GtkTooltips *tooltips;
+-
+ /* Properties */
+ TagRenamerFormat format;
+ gchar *text;
+@@ -238,10 +235,6 @@ tag_renamer_init (TagRenamer *tag_renamer)
+ GtkTreeIter iter;
+ gint n;
+
+- /* Allocate shared tooltips */
+- tag_renamer->tooltips = gtk_tooltips_new ();
+- exo_gtk_object_ref_sink (GTK_OBJECT (tag_renamer->tooltips));
+-
+ table = gtk_table_new (2, 4, FALSE);
+ gtk_table_set_row_spacings (GTK_TABLE (table), 6);
+ gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+@@ -320,14 +313,14 @@ tag_renamer_init (TagRenamer *tag_renamer)
+
+ button = gtk_check_button_new_with_mnemonic (_("_Underscores"));
+ exo_mutual_binding_new (G_OBJECT (button), "active", G_OBJECT (tag_renamer), "replace-spaces");
+- gtk_tooltips_set_tip (tag_renamer->tooltips, button, _("Activating this option will replace all spaces in the target filename "
+- "with underscores."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (button), _("Activating this option will replace all spaces in the target filename "
++ "with underscores."));
+ gtk_table_attach (GTK_TABLE (table), button, 3, 4, 0, 1, GTK_FILL, 0, 0, 0);
+ gtk_widget_show (button);
+
+ button = gtk_check_button_new_with_mnemonic (_("_Lowercase"));
+ exo_mutual_binding_new (G_OBJECT (button), "active", G_OBJECT (tag_renamer), "lowercase");
+- gtk_tooltips_set_tip (tag_renamer->tooltips, button, _("If you activate this, the resulting filename will only contain lowercase letters."), NULL);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (button), _("If you activate this, the resulting filename will only contain lowercase letters."));
+ gtk_table_attach (GTK_TABLE (table), button, 3, 4, 1, 2, GTK_FILL, 0, 0, 0);
+ gtk_widget_show (button);
+ }
+@@ -341,9 +334,6 @@ tag_renamer_finalize (GObject *object)
+ {
+ TagRenamer *tag_renamer = TAG_RENAMER (object);
+
+- /* release the tooltips */
+- g_object_unref (G_OBJECT (tag_renamer->tooltips));
+-
+ /* Free string */
+ g_free (tag_renamer->text);
+
+--
+1.6.3.3
+
diff --git a/extra/thunar-media-tags-plugin/04_fix-implicit-dso-linking.patch b/extra/thunar-media-tags-plugin/04_fix-implicit-dso-linking.patch
new file mode 100644
index 000000000..abe4ada18
--- /dev/null
+++ b/extra/thunar-media-tags-plugin/04_fix-implicit-dso-linking.patch
@@ -0,0 +1,10 @@
+--- thunar-media-tags-plugin-0.1.2.orig/thunar-plugin/Makefile.am
++++ thunar-media-tags-plugin-0.1.2/thunar-plugin/Makefile.am
+@@ -32,6 +32,7 @@ thunar_media_tags_plugin_la_LDFLAGS =
+ -avoid-version \
+ -export-dynamic \
+ -module \
++ $(EXO_LIBS) \
+ $(THUNARX_LIBS) \
+ $(TAGLIB_LIBS) \
+ $(TAGLIBC_LIBS) \
diff --git a/extra/thunar-media-tags-plugin/PKGBUILD b/extra/thunar-media-tags-plugin/PKGBUILD
new file mode 100644
index 000000000..142378be6
--- /dev/null
+++ b/extra/thunar-media-tags-plugin/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 108077 2011-01-29 12:18:52Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+
+pkgname=thunar-media-tags-plugin
+pkgver=0.1.2.99.git20110129
+pkgrel=1
+pkgdesc="adds special features for media files to the Thunar File Manager"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin"
+groups=('xfce4-goodies')
+depends=('taglib' 'thunar')
+makedepends=('intltool' 'xfce4-dev-tools')
+options=('!libtool')
+source=(#http://archive.xfce.org/src/thunar-plugins/${pkgname}/0.1/${pkgname}-${pkgver}.tar.bz2
+ # broken master http://git.xfce.org/thunar-plugins/thunar-media-tags-plugin/snapshot/thunar-media-tags-plugin-8d29c1f4672f41baabc84ec02630c79793ead159.tar.bz2
+ # thunarx-2 branch
+ #http://git.xfce.org/thunar-plugins/thunar-media-tags-plugin/snapshot/thunar-media-tags-plugin-270924abcab81275dede68d882936c14b238b3ec.tar.bz2
+ ftp://ftp.archlinux.org/other/$pkgname/thunar-media-tags-plugin-270924abcab81275dede68d882936c14b238b3ec.tar.bz2
+ 0001-Switch-to-the-new-tooltip-api-in-gtk-depend-on-gtk-2.patch
+ 04_fix-implicit-dso-linking.patch)
+md5sums=('faf79a2568ae7b76477ddd0d9ffe9380'
+ '199e0f657333ed1d09947b7d4fdeb493'
+ 'b310ccc46752f672a1030c4e17093b77')
+
+build() {
+# cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${srcdir}/${pkgname}*
+ # fixes for new thunar taken from http://bugzilla.xfce.org/show_bug.cgi?id=6295
+ patch -Np1 -i ${srcdir}/0001-Switch-to-the-new-tooltip-api-in-gtk-depend-on-gtk-2.patch
+ patch -Np1 -i ${srcdir}/04_fix-implicit-dso-linking.patch
+ xdt-autogen
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+# cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${srcdir}/${pkgname}*
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/thunar-vfs/PKGBUILD b/extra/thunar-vfs/PKGBUILD
new file mode 100644
index 000000000..bd2934dbc
--- /dev/null
+++ b/extra/thunar-vfs/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 106948 2011-01-19 20:20:07Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Xavier Devlamynck <magicrhesus@ouranos.be>
+
+pkgname=thunar-vfs
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Virtual filesystem shipped with the thunar 1.0 and earlier releases"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+depends=('exo' 'startup-notification' 'hal' 'fam')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/xfce/thunar-vfs/1.2/thunar-vfs-$pkgver.tar.bz2)
+md5sums=('1fbc55af8ed98174f5c3c7f8daec10cc')
+
+build() {
+ cd ${srcdir}/thunar-vfs-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-startup-notification \
+ --enable-dbus \
+ --with-volume-manager=hal \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/thunar-vfs-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/thunar-volman/PKGBUILD b/extra/thunar-volman/PKGBUILD
new file mode 100644
index 000000000..8679d8273
--- /dev/null
+++ b/extra/thunar-volman/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 112913 2011-03-07 18:34:43Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=thunar-volman
+pkgver=0.6.0
+pkgrel=2
+pkgdesc="automatic management for removeable devices in thunar"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://foo-projects.org/~benny/projects/thunar-volman"
+groups=('xfce4-goodies')
+depends=('thunar>=1.2.0' 'libxfce4ui' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2f166662dd100d5195da238af417f305')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/thunar-volman/thunar-volman.install b/extra/thunar-volman/thunar-volman.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/thunar-volman/thunar-volman.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/thunar/PKGBUILD b/extra/thunar/PKGBUILD
new file mode 100644
index 000000000..b323cd5cd
--- /dev/null
+++ b/extra/thunar/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id: PKGBUILD 112910 2011-03-07 18:29:57Z andyrtr $
+# Maintainer: andyrtr <andyrtr funnychar archlinux.org>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+
+pkgname=thunar
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="modern file manager for Xfce"
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL2.1')
+url="http://thunar.xfce.org"
+groups=('xfce4')
+depends=('desktop-file-utils' 'libexif' 'hicolor-icon-theme' 'libnotify>=0.7.1' 'udev'
+ 'gtk2' 'exo>=0.6.0' 'libxfce4util>=4.8.1' 'libxfce4ui' 'libpng')
+makedepends=('intltool' 'gtk-doc' 'xfce4-panel>=4.8.0')
+optdepends=('gvfs: for trash support, mounting with udisk and remote filesystems'
+ 'xfce4-panel: for trash applet'
+ 'tumbler: for thumbnail previews'
+ 'thunar-volman: manages removable devices'
+ 'thunar-archive-plugin: create and deflate archives'
+ 'thunar-media-tags-plugin: view/edit id3/ogg tags')
+options=('!libtool')
+install=${pkgname}.install
+backup=('etc/polkit-1/localauthority/50-local.d/org.freedesktop.udisks.pkla')
+source=(http://archive.xfce.org/src/xfce/${pkgname}/1.2/Thunar-${pkgver}.tar.bz2
+ org.freedesktop.udisks.pkla)
+md5sums=('d8dce796890619d67aed0cd7ef84c7b1'
+ 'a7ddb5eec02d9a8e91a2997862e73cd8')
+
+build() {
+ cd ${srcdir}/Thunar-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gio-unix \
+ --enable-dbus \
+ --enable-startup-notification \
+ --enable-gudev \
+ --enable-notifications \
+ --enable-exif \
+ --enable-pcre \
+ --enable-gtk-doc \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/Thunar-${pkgver}
+ make DESTDIR=${pkgdir} install
+ sed -i 's:x-directory/gnome-default-handler;::' \
+ ${pkgdir}/usr/share/applications/Thunar-folder-handler.desktop
+
+ # install udisks permission file
+ install -dm700 ${pkgdir}/etc/polkit-1/localauthority
+ install -dm755 ${pkgdir}/etc/polkit-1/localauthority/50-local.d
+ install -m644 ${srcdir}/org.freedesktop.udisks.pkla ${pkgdir}/etc/polkit-1/localauthority/50-local.d/
+}
diff --git a/extra/thunar/org.freedesktop.udisks.pkla b/extra/thunar/org.freedesktop.udisks.pkla
new file mode 100644
index 000000000..5cc443bd1
--- /dev/null
+++ b/extra/thunar/org.freedesktop.udisks.pkla
@@ -0,0 +1,7 @@
+[Local Users]
+#Identity=unix-user: your_username
+Identity=unix-group:storage
+Action=org.freedesktop.udisks.*
+ResultAny=yes
+ResultInactive=no
+ResultActive=yes
diff --git a/extra/thunar/thunar.install b/extra/thunar/thunar.install
new file mode 100644
index 000000000..28fdb48fb
--- /dev/null
+++ b/extra/thunar/thunar.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/tidyhtml/PKGBUILD b/extra/tidyhtml/PKGBUILD
new file mode 100644
index 000000000..031234da6
--- /dev/null
+++ b/extra/tidyhtml/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 69561 2010-02-21 04:47:38Z allan $
+# Maintainer: eric <eric@archlinux.org>
+# Contributor : Markus Meissner <markus@meissna.de>
+
+pkgname=tidyhtml
+# obtain pkgver from http://tidy.cvs.sourceforge.net/tidy/tidy/src/version.h?view=markup
+pkgver=1.46
+pkgrel=1
+pkgdesc="A tool to tidy down your HTML code to a clean style"
+arch=('i686' 'x86_64')
+url="http://tidy.sourceforge.net/"
+license=('custom')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/tidyhtml/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3d970d54be83c5ec985687e9976a2832')
+
+mksource() {
+ mkdir tidyhtml-${pkgver}
+ cd tidyhtml-${pkgver}
+ cvs -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy login #hit enter for password
+ cvs -z3 -d:pserver:anonymous@tidy.cvs.sourceforge.net:/cvsroot/tidy co -P tidy
+ cd ..
+ tar -cvjf tidyhtml-${pkgver}.tar.bz2 tidyhtml-${pkgver}/*
+}
+
+build(){
+ cd $srcdir/${pkgname}-${pkgver}/tidy
+ source build/gnuauto/setup.sh
+
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=$pkgdir install
+
+ install -Dm644 htmldoc/license.html \
+ ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
diff --git a/extra/tightvnc/PKGBUILD b/extra/tightvnc/PKGBUILD
new file mode 100644
index 000000000..642ba8d7f
--- /dev/null
+++ b/extra/tightvnc/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 64786 2010-01-22 07:44:39Z eric $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+pkgname=tightvnc
+pkgver=1.3.10
+pkgrel=5
+pkgdesc="VNC Unix server && viewer"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.tightvnc.com"
+depends=('libjpeg>=7' 'zlib' 'libxaw' 'libxp' 'xorg-xauth')
+makedepends=('imake')
+conflicts=('vnc')
+options=(!makeflags)
+source=(http://downloads.sf.net/sourceforge/vnc-tight/$pkgname-${pkgver}_unixsrc.tar.bz2
+ tightvnc-fontpath-xcolors.patch)
+md5sums=('397b35faad32d5246b6d44b142f8304f'
+ '21aa7f3376ec3c608ff22d199a19c601')
+
+build() {
+ cd $srcdir/vnc_unixsrc || return 1
+ patch -Np1 -i ../tightvnc-fontpath-xcolors.patch || return 1
+ sed -i 's|/usr/local/|/usr/share/|' vncserver || return 1
+
+ xmkmf || return 1
+ make World || return 1
+ cd Xvnc || return 1
+ ./configure || return 1
+ sed 's|PROTO_DEFINES =|PROTO_DEFINES = -D_XOPEN_SOURCE=500L|' \
+ -i programs/Xserver/os/Makefile lib/font/fc/Makefile || return 1
+ make || return 1
+ cd .. || return 1
+ mkdir -p $pkgdir/usr/bin $pkgdir/usr/share/man/man1 || return 1
+ ./vncinstall $pkgdir/usr/bin $pkgdir/usr/share/man || return 1
+
+ # install java classes
+ mkdir -p $pkgdir/usr/share/vnc/classes || return 1
+ install -Dm644 $srcdir/vnc_unixsrc/classes/* \
+ $pkgdir/usr/share/vnc/classes || return 1
+}
diff --git a/extra/tightvnc/tightvnc-fontpath-xcolors.patch b/extra/tightvnc/tightvnc-fontpath-xcolors.patch
new file mode 100644
index 000000000..10bc4b596
--- /dev/null
+++ b/extra/tightvnc/tightvnc-fontpath-xcolors.patch
@@ -0,0 +1,13 @@
+diff -urN vnc_unixsrc/vncserver vnc_unixsrc.fixed/vncserver
+--- vnc_unixsrc/vncserver 2009-02-11 23:27:18.000000000 -0500
++++ vnc_unixsrc.fixed/vncserver 2009-04-23 21:46:46.000000000 -0400
+@@ -34,7 +34,8 @@
+ $desktopName = "X";
+ $vncClasses = "/usr/local/vnc/classes";
+ $vncUserDir = "$ENV{HOME}/.vnc";
+-$fontPath = "unix/:7100";
++$fontPath = "/usr/share/fonts/misc/,/usr/share/fonts/75dpi/,/usr/share/fonts/100dpi/,/usr/share/fonts/Type1/";
++$colorPath = "/usr/share/X11/rgb";
+ $authType = "-rfbauth $vncUserDir/passwd";
+
+ # Read configuration from the system-wide and user files if present.
diff --git a/extra/time/PKGBUILD b/extra/time/PKGBUILD
new file mode 100644
index 000000000..78d5a7d61
--- /dev/null
+++ b/extra/time/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 109750 2011-02-12 13:42:27Z stephane $
+# Maintainer: Stéphane Gaudreault <stephane@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=time
+pkgver=1.7
+pkgrel=4
+pkgdesc="Utility for monitoring a program's use of system resources"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/directory/time.html"
+license=('GPL')
+depends=('glibc')
+install=time.install
+source=(http://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('e38d2b8b34b1ca259cf7b053caac32b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --infodir=/usr/share/info
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make exec_prefix="${pkgdir}/usr" infodir="${pkgdir}/usr/share/info" install
+}
diff --git a/extra/time/time.install b/extra/time/time.install
new file mode 100644
index 000000000..011597c00
--- /dev/null
+++ b/extra/time/time.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(time.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/timidity++/2.13.2-gcc4.patch b/extra/timidity++/2.13.2-gcc4.patch
new file mode 100644
index 000000000..af0b5f8f7
--- /dev/null
+++ b/extra/timidity++/2.13.2-gcc4.patch
@@ -0,0 +1,30 @@
+diff -ur TiMidity++-2.13.2-orig/interface/xaw_i.c TiMidity++-2.13.2/interface/xaw_i.c
+--- TiMidity++-2.13.2-orig/interface/xaw_i.c 2005-06-25 21:55:19.000000000 -0400
++++ TiMidity++-2.13.2/interface/xaw_i.c 2005-06-25 21:56:01.000000000 -0400
+@@ -261,7 +261,7 @@
+ String bitmapdir = XAW_BITMAP_DIR;
+ Boolean arrangetitle,savelist;
+ static char **current_flist = NULL;
+-static int voices = 0, last_voice = 0, voices_num_width;
++static int xaw_i_voices = 0, last_voice = 0, voices_num_width;
+ static int maxentry_on_a_menu = 0,submenu_n = 0;
+ #define OPTIONS_WINDOW 1
+ #define FLIST_WINDOW 2
+@@ -1329,7 +1329,7 @@
+ c= *(local_buf+1);
+ n= atoi(local_buf+2);
+ if(c == 'L')
+- voices = n;
++ xaw_i_voices = n;
+ else
+ last_voice = n;
+ if(IsTracePlaying()) drawVoices();
+@@ -2070,7 +2070,7 @@
+ XSetForeground(disp, gct, tracecolor);
+ XFillRectangle(disp,XtWindow(trace),gct,voices_num_width +4,
+ MAX_XAW_MIDI_CHANNELS*BAR_SPACE+TRACEV_OFS+1,VOICENUM_WIDTH,TRACE_FOOT);
+- sprintf(local_buf, "%3d/%d", last_voice, voices);
++ sprintf(local_buf, "%3d/%d", last_voice, xaw_i_voices);
+ XSetForeground(disp, gct, capcolor);
+ XDrawString(disp, XtWindow(trace),gct,voices_num_width+6,
+ MAX_XAW_MIDI_CHANNELS*BAR_SPACE+TRACEV_OFS+16,local_buf,strlen(local_buf));
diff --git a/extra/timidity++/PKGBUILD b/extra/timidity++/PKGBUILD
new file mode 100644
index 000000000..82ced473c
--- /dev/null
+++ b/extra/timidity++/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 89194 2010-08-30 06:14:52Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=timidity++
+pkgver=2.13.2
+pkgrel=10
+pkgdesc="A MIDI to WAVE converter and player"
+arch=('i686' 'x86_64')
+url="http://timidity.sourceforge.net"
+license=('GPL')
+depends=('libao' 'libvorbis' 'jack' 'ncurses')
+makedepends=('xaw3d' 'gtk2' 'tk' 'libxaw')
+optdepends=('gtk2: for using the GTK+ interface' 'tk: for using the Tk interface' \
+ 'xaw3d: for using the Xaw interface')
+backup=('etc/timidity++/timidity.cfg')
+source=(http://downloads.sourceforge.net/timidity/TiMidity++-${pkgver}.tar.bz2 \
+ timidity.cfg timidity++.sh 2.13.2-gcc4.patch TiMidity++-2.13.2+flac-1.1.3.patch \
+ timidity++-2.13.2-exiterror.patch timidity++-2.13.2-gtk26.patch \
+ timidity++-2.13.2-polling.patch)
+md5sums=('a82ceeb2245e22f4de2b41da21eaee32' '3fcc8f065c959205113fa7e9ab2be3c6'\
+ '35606c12af9c6be9361d64fc536f046f' '0868926c5290817cacb9a1849bc043c2'\
+ 'fcbd27ff83066f69a3f8bd2442a3b3e2' '31bdaea612f18e2c3d45a8a73ab44c81'\
+ '16a4adec164836d4390dc6b0f9a69ce9' '3f0034ead451cdd1078868e9e9b0494c')
+sha1sums=('8e603146e1164335303a5ac5dff291f369241b4e' '660b3afbb720d26e8f008034cee66dd8da082d6e'\
+ '9f3e732a7ca1e97119a76df62ecf154df04d4f77' '8d50618a2379c078b07e8d0fc59457855c16106c'\
+ '59b0dbe3cde8f7b41d83676d8c37809255d3fb36' '7cd697b4f7cb1ce45cec46c2e0f6e5e8bf1d9d60'\
+ 'ce115e84d99708f0bdb5b57bd98b0c3514fa2bf4' '6abaedaecdecabf9dc76c062f7157571aed53984')
+
+build() {
+ cd "${srcdir}/TiMidity++-${pkgver}"
+ patch -p1 < ../2.13.2-gcc4.patch
+ patch -p1 < ../TiMidity++-2.13.2+flac-1.1.3.patch
+ patch -p1 < ../timidity++-2.13.2-exiterror.patch
+ patch -p0 < ../timidity++-2.13.2-gtk26.patch
+ patch -p0 < ../timidity++-2.13.2-polling.patch
+ sed -i 's/tcl8.4/tcl8.5/' configure
+ sed -i 's/tk8.4/tk8.5/' configure
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --with-default-path=/etc/timidity++/ \
+ --enable-server --enable-alsaseq --enable-spectrogram \
+ --enable-audio=alsa,oss,ao,vorbis,flac,esd,jack \
+ --enable-dynamic=ncurses,tcltk,vt100,xaw,gtk \
+ --disable-gtktest
+ make
+}
+
+package() {
+ cd "${srcdir}/TiMidity++-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../timidity.cfg "${pkgdir}/etc/timidity++/timidity.cfg"
+ install -D -m755 ../timidity++.sh "${pkgdir}/etc/rc.d/timidity++"
+}
diff --git a/extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch b/extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch
new file mode 100644
index 000000000..200d011a3
--- /dev/null
+++ b/extra/timidity++/TiMidity++-2.13.2+flac-1.1.3.patch
@@ -0,0 +1,349 @@
+diff -urN TiMidity++-2.13.2.orig/configure.in TiMidity++-2.13.2/configure.in
+--- TiMidity++-2.13.2.orig/configure.in 2004-10-03 15:39:52 +0300
++++ TiMidity++-2.13.2/configure.in 2007-02-19 13:06:42 +0200
+@@ -1216,11 +1216,39 @@
+ EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBFLAC_CFLAGS)
+ LIBS="$LIBS $LIBFLAC_LIBS"
+ ])
+- AM_PATH_LIBOGGFLAC([
+- EXTRADEFS="$EXTRADEFS -DAU_OGGFLAC"
+- EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBOGGFLAC_CFLAGS)
+- LIBS="$LIBS $LIBOGGFLAC_LIBS"
+- ])
++ # in FLAC-1.1.3, libOggFLAC was merged into libFLAC
++ # FLAC_API_VERSION_CURRENT first appears in FLAC-1.1.3
++ AC_MSG_CHECKING(for legacy libFLAC (<1.1.13))
++ ac_save_LIBS="$LIBS"
++ LIBS=
++ AC_TRY_RUN([
++ #include <FLAC/export.h>
++ int main () { return FLAC_API_VERSION_CURRENT<8; }
++ ],legacy_flac=no,legacy_flac=yes,legacy_flac=no)
++ AC_MSG_RESULT($legacy_flac)
++ LIBS="$ac_save_LIBS"
++ if test "x$legacy_flac" = xyes; then
++ AM_PATH_LIBOGGFLAC([
++ EXTRADEFS="$EXTRADEFS -DAU_OGGFLAC"
++ EXTRACT_CPPFLAGS(CPPFLAGS,CFLAGS,$LIBOGGFLAC_CFLAGS)
++ LIBS="$LIBS $LIBOGGFLAC_LIBS"
++ ])
++ else
++
++ AC_MSG_CHECKING(for Ogg support in libFLAC )
++ ac_save_LIBS="$LIBS"
++ LIBS="-lFLAC -lm -logg"
++ AC_TRY_RUN([
++ #include <FLAC/export.h>
++ int main () { return !FLAC_API_SUPPORTS_OGG_FLAC; }
++ ],ogg_flac=yes,ogg_flac=yes,ogg_flac=no)
++ AC_MSG_RESULT($ogg_flac)
++ LIBS="$ac_save_LIBS"
++ if test "x$ogg_flac" = xyes; then
++ LIBS="$LIBS -logg"
++ CFLAGS="$CFLAGS -DAU_OGGFLAC"
++ fi
++ fi
+ else
+ AC_MSG_RESULT(no)
+ fi
+diff -urN TiMidity++-2.13.2.orig/timidity/flac_a.c TiMidity++-2.13.2/timidity/flac_a.c
+--- TiMidity++-2.13.2.orig/timidity/flac_a.c 2004-05-23 07:35:44 +0300
++++ TiMidity++-2.13.2/timidity/flac_a.c 2007-02-19 13:06:55 +0200
+@@ -38,14 +38,22 @@
+
+ #if defined(AU_FLAC_DLL) || defined(AU_OGGFLAC_DLL)
+ #include <windows.h>
+-#define FLAC__EXPORT_H /* don't include "OggFLAC/export.h" */
+-#define FLAC_API
+-#define OggFLAC__EXPORT_H /* don't include "FLAC/export.h" */
+-#define OggFLAC_API
++#include <FLAC/export.h> /* need export.h to figure out API version from FLAC_API_VERSION_CURRENT */
++#undef FLAC_API
++#undef OggFLAC_API
+ #endif
+
+ #include <FLAC/all.h>
+-#ifdef AU_OGGFLAC
++
++/* by LEGACY_FLAC we mean before FLAC 1.1.3 */
++/* in FLAC 1.1.3, libOggFLAC is merged into libFLAC and all encoding layers are merged into the stream encoder */
++#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8
++#define LEGACY_FLAC
++#else
++#undef LEGACY_FLAC
++#endif
++
++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC)
+ #include <OggFLAC/stream_encoder.h>
+ #endif
+
+@@ -100,17 +108,21 @@
+ unsigned long out_bytes;
+ union {
+ FLAC__StreamEncoderState flac;
++#ifdef LEGACY_FLAC
+ FLAC__SeekableStreamEncoderState s_flac;
+ #ifdef AU_OGGFLAC
+ OggFLAC__StreamEncoderState ogg;
+ #endif
++#endif
+ } state;
+ union {
+ union {
+ FLAC__StreamEncoder *stream;
++#ifdef LEGACY_FLAC
+ FLAC__SeekableStreamEncoder *s_stream;
++#endif
+ } flac;
+-#ifdef AU_OGGFLAC
++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC)
+ union {
+ OggFLAC__StreamEncoder *stream;
+ } ogg;
+@@ -158,7 +170,7 @@
+ static long serial_number = 0;
+ FLAC_ctx *flac_ctx = NULL;
+
+-#ifdef AU_OGGFLAC
++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC)
+ static FLAC__StreamEncoderWriteStatus
+ ogg_stream_encoder_write_callback(const OggFLAC__StreamEncoder *encoder,
+ const FLAC__byte buffer[],
+@@ -168,8 +180,13 @@
+ static FLAC__StreamEncoderWriteStatus
+ flac_stream_encoder_write_callback(const FLAC__StreamEncoder *encoder,
+ const FLAC__byte buffer[],
++#ifdef LEGACY_FLAC
+ unsigned bytes, unsigned samples,
++#else
++ size_t bytes, unsigned samples,
++#endif
+ unsigned current_frame, void *client_data);
++#ifdef LEGACY_FLAC
+ static void flac_stream_encoder_metadata_callback(const FLAC__StreamEncoder *encoder,
+ const FLAC__StreamMetadata *metadata,
+ void *client_data);
+@@ -181,6 +198,7 @@
+ static void flac_seekable_stream_encoder_metadata_callback(const FLAC__SeekableStreamEncoder *encoder,
+ const FLAC__StreamMetadata *metadata,
+ void *client_data);
++#endif
+
+ /* preset */
+ void flac_set_compression_level(int compression_level)
+@@ -281,7 +299,11 @@
+ #ifdef AU_OGGFLAC
+ void flac_set_option_oggflac(int isogg)
+ {
++#ifdef LEGACY_FLAC
+ flac_options.isogg = isogg;
++#else
++ flac_options.isogg = (FLAC_API_SUPPORTS_OGG_FLAC && isogg);
++#endif
+ }
+ #endif
+
+@@ -295,6 +317,7 @@
+ dpm.fd = -1;
+
+ if (ctx != NULL) {
++#ifdef LEGACY_FLAC
+ #ifdef AU_OGGFLAC
+ if (flac_options.isogg) {
+ if (ctx->encoder.ogg.stream) {
+@@ -317,6 +340,12 @@
+ FLAC__stream_encoder_delete(ctx->encoder.flac.stream);
+ }
+ }
++#else
++ if (ctx->encoder.flac.stream) {
++ FLAC__stream_encoder_finish(ctx->encoder.flac.stream);
++ FLAC__stream_encoder_delete(ctx->encoder.flac.stream);
++ }
++#endif
+ free(ctx);
+ flac_ctx = NULL;
+ }
+@@ -329,6 +358,9 @@
+ FLAC__StreamMetadata padding;
+ FLAC__StreamMetadata *metadata[4];
+ int num_metadata = 0;
++#ifndef LEGACY_FLAC
++ FLAC__StreamEncoderInitStatus init_status;
++#endif
+
+ FLAC_ctx *ctx;
+
+@@ -371,6 +403,7 @@
+ metadata[num_metadata++] = &padding;
+ }
+
++#ifdef LEGACY_FLAC
+ #ifdef AU_OGGFLAC
+ if (flac_options.isogg) {
+ if ((ctx->encoder.ogg.stream = OggFLAC__stream_encoder_new()) == NULL) {
+@@ -542,6 +575,67 @@
+ return -1;
+ }
+ }
++#else /* !LEGACY_FLAC */
++ if ((ctx->encoder.flac.stream = FLAC__stream_encoder_new()) == NULL) {
++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot create FLAC stream");
++ flac_session_close();
++ return -1;
++ }
++
++#ifdef AU_OGGFLAC
++ if (flac_options.isogg) {
++ /* set sequential number for serial */
++ serial_number++;
++ if (serial_number == 1) {
++ srand(time(NULL));
++ serial_number = rand();
++ }
++ FLAC__stream_encoder_set_ogg_serial_number(ctx->encoder.flac.stream, serial_number);
++ }
++#endif /* AU_OGGFLAC */
++ FLAC__stream_encoder_set_channels(ctx->encoder.flac.stream, nch);
++ /* 16bps only */
++ FLAC__stream_encoder_set_bits_per_sample(ctx->encoder.flac.stream, 16);
++
++ FLAC__stream_encoder_set_verify(ctx->encoder.flac.stream, flac_options.verify);
++
++ if (!FLAC__format_sample_rate_is_valid(dpm.rate)) {
++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "invalid sampling rate %d", dpm.rate);
++ flac_session_close();
++ return -1;
++ }
++ FLAC__stream_encoder_set_sample_rate(ctx->encoder.flac.stream, dpm.rate);
++
++ FLAC__stream_encoder_set_qlp_coeff_precision(ctx->encoder.flac.stream, flac_options.qlp_coeff_precision);
++ /* expensive! */
++ FLAC__stream_encoder_set_do_qlp_coeff_prec_search(ctx->encoder.flac.stream, flac_options.qlp_coeff_precision_search);
++
++ if (nch == 2) {
++ FLAC__stream_encoder_set_do_mid_side_stereo(ctx->encoder.flac.stream, flac_options.mid_side);
++ FLAC__stream_encoder_set_loose_mid_side_stereo(ctx->encoder.flac.stream, flac_options.adaptive_mid_side);
++ }
++
++ FLAC__stream_encoder_set_max_lpc_order(ctx->encoder.flac.stream, flac_options.max_lpc_order);
++ FLAC__stream_encoder_set_min_residual_partition_order(ctx->encoder.flac.stream, flac_options.min_residual_partition_order);
++ FLAC__stream_encoder_set_max_residual_partition_order(ctx->encoder.flac.stream, flac_options.max_residual_partition_order);
++
++ FLAC__stream_encoder_set_blocksize(ctx->encoder.flac.stream, flac_options.blocksize);
++
++ if (0 < num_metadata)
++ FLAC__stream_encoder_set_metadata(ctx->encoder.flac.stream, metadata, num_metadata);
++
++#ifdef AU_OGGFLAC
++ if (flac_options.isogg)
++ init_status = FLAC__stream_encoder_init_ogg_stream(ctx->encoder.flac.stream, NULL, flac_stream_encoder_write_callback, NULL, NULL, NULL, ctx);
++ else
++#endif
++ init_status = FLAC__stream_encoder_init_stream(ctx->encoder.flac.stream, flac_stream_encoder_write_callback, NULL, NULL, NULL, ctx);
++ if (init_status != FLAC__STREAM_ENCODER_INIT_STATUS_OK) {
++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot create FLAC encoder (init status: %s)", FLAC__StreamEncoderInitStatusString[init_status]);
++ flac_session_close();
++ return -1;
++ }
++#endif
+
+ return 0;
+ }
+@@ -638,7 +732,7 @@
+ return 0;
+ }
+
+-#ifdef AU_OGGFLAC
++#if defined(LEGACY_FLAC) && defined(AU_OGGFLAC)
+ static FLAC__StreamEncoderWriteStatus
+ ogg_stream_encoder_write_callback(const OggFLAC__StreamEncoder *encoder,
+ const FLAC__byte buffer[],
+@@ -658,7 +752,11 @@
+ static FLAC__StreamEncoderWriteStatus
+ flac_stream_encoder_write_callback(const FLAC__StreamEncoder *encoder,
+ const FLAC__byte buffer[],
++#ifdef LEGACY_FLAC
+ unsigned bytes, unsigned samples,
++#else
++ size_t bytes, unsigned samples,
++#endif
+ unsigned current_frame, void *client_data)
+ {
+ FLAC_ctx *ctx = (FLAC_ctx *)client_data;
+@@ -670,6 +768,7 @@
+ else
+ return FLAC__STREAM_ENCODER_WRITE_STATUS_FATAL_ERROR;
+ }
++#ifdef LEGACY_FLAC
+ static void flac_stream_encoder_metadata_callback(const FLAC__StreamEncoder *encoder,
+ const FLAC__StreamMetadata *metadata,
+ void *client_data)
+@@ -695,6 +794,7 @@
+ void *client_data)
+ {
+ }
++#endif
+
+ static int output_data(char *buf, int32 nbytes)
+ {
+@@ -723,6 +823,7 @@
+ oggbuf[i] = *s++;
+ }
+
++#ifdef LEGACY_FLAC
+ #ifdef AU_OGGFLAC
+ if (flac_options.isogg) {
+ ctx->state.ogg = OggFLAC__stream_encoder_get_state(ctx->encoder.ogg.stream);
+@@ -793,6 +894,29 @@
+ return -1;
+ }
+ }
++#else /* !LEGACY_FLAC */
++ ctx->state.flac = FLAC__stream_encoder_get_state(ctx->encoder.flac.stream);
++ if (ctx->state.flac != FLAC__STREAM_ENCODER_OK) {
++ if (ctx->state.flac == FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR |
++ FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA) {
++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "FLAC stream verify error (%s)",
++ FLAC__StreamDecoderStateString[FLAC__stream_encoder_get_verify_decoder_state(ctx->encoder.flac.stream)]);
++ }
++ else {
++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot encode FLAC stream (%s)",
++ FLAC__StreamEncoderStateString[ctx->state.flac]);
++ }
++ flac_session_close();
++ return -1;
++ }
++
++ if (!FLAC__stream_encoder_process_interleaved(ctx->encoder.flac.stream, oggbuf,
++ nbytes / nch / 2 )) {
++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "cannot encode FLAC stream");
++ flac_session_close();
++ return -1;
++ }
++#endif
+ ctx->in_bytes += nbytes;
+
+ free(oggbuf);
+@@ -813,6 +937,7 @@
+ return;
+ }
+
++#ifdef LEGACY_FLAC
+ if (flac_options.isogg) {
+ #ifdef AU_OGGFLAC
+ if ((ctx->state.ogg = OggFLAC__stream_encoder_get_state(ctx->encoder.ogg.stream)) != OggFLAC__STREAM_ENCODER_OK) {
+@@ -838,6 +963,13 @@
+ /* fall through */
+ }
+ }
++#else /* !LEGACY_FLAC */
++ if ((ctx->state.flac = FLAC__stream_encoder_get_state(ctx->encoder.flac.stream)) != FLAC__STREAM_ENCODER_OK) {
++ ctl->cmsg(CMSG_ERROR, VERB_NORMAL, "FLAC stream encoder is invalid (%s)",
++ FLAC__StreamEncoderStateString[ctx->state.flac]);
++ /* fall through */
++ }
++#endif
+
+ ctl->cmsg(CMSG_INFO, VERB_NORMAL, "Wrote %lu/%lu bytes(%g%% compressed)",
+ ctx->out_bytes, ctx->in_bytes, ((double)ctx->out_bytes / (double)ctx->in_bytes) * 100.);
diff --git a/extra/timidity++/timidity++-2.13.2-exiterror.patch b/extra/timidity++/timidity++-2.13.2-exiterror.patch
new file mode 100644
index 000000000..01a83fead
--- /dev/null
+++ b/extra/timidity++/timidity++-2.13.2-exiterror.patch
@@ -0,0 +1,695 @@
+diff -ur TiMidity++-2.13.2/interface/alsaseq_c.c TiMidity++-2.13.2-new/interface/alsaseq_c.c
+--- TiMidity++-2.13.2/interface/alsaseq_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/alsaseq_c.c 2005-01-02 03:39:15.968158520 +0100
+@@ -177,7 +177,7 @@
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+ static void ctl_event(CtlEvent *e);
+-static void ctl_pass_playing_list(int n, char *args[]);
++static int ctl_pass_playing_list(int n, char *args[]);
+
+ /**********************************/
+ /* export the interface functions */
+@@ -308,7 +308,7 @@
+ return 0;
+ }
+
+-static void ctl_pass_playing_list(int n, char *args[])
++static int ctl_pass_playing_list(int n, char *args[])
+ {
+ double btime;
+ int i, j;
+@@ -323,7 +323,7 @@
+
+ if (alsa_seq_open(&alsactx.handle) < 0) {
+ fprintf(stderr, "error in snd_seq_open\n");
+- return;
++ return 1;
+ }
+ alsactx.queue = -1;
+ alsactx.client = snd_seq_client_id(alsactx.handle);
+@@ -342,7 +342,7 @@
+ int port;
+ port = alsa_create_port(alsactx.handle, i);
+ if (port < 0)
+- return;
++ return 1;
+ alsactx.port[i] = port;
+ alsa_set_timestamping(&alsactx, port);
+ printf(" %d:%d", alsactx.client, alsactx.port[i]);
+@@ -411,6 +411,7 @@
+ server_reset();
+ doit(&alsactx);
+ }
++ return 0;
+ }
+
+ /*
+diff -ur TiMidity++-2.13.2/interface/emacs_c.c TiMidity++-2.13.2-new/interface/emacs_c.c
+--- TiMidity++-2.13.2/interface/emacs_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/emacs_c.c 2005-01-02 03:02:02.000000000 +0100
+@@ -78,7 +78,7 @@
+ static void ctl_close(void);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static void ctl_event(CtlEvent *e);
+ static int read_ready(void);
+ static int emacs_type = 0; /* 0:emacs, 1:mule, 2:??
+@@ -249,7 +249,7 @@
+ return s;
+ }
+
+-static void ctl_pass_playing_list(int argc, char *argv[])
++static int ctl_pass_playing_list(int argc, char *argv[])
+ {
+ int i;
+ char cmd[BUFSIZ];
+@@ -274,7 +274,7 @@
+ {
+ for(i = 1; i < argc; i++)
+ play_midi_file(argv[i]);
+- return;
++ return 0;
+ }
+
+ /* Main Loop */
+@@ -296,11 +296,11 @@
+ ctl_refresh();
+ break;
+ case RC_QUIT:
+- return;
++ return 0;
+ } /* skipping others command */
+ }
+ else if(!strncmp(cmd, "QUIT", 4))
+- return;
++ return 0;
+ else
+ continue; /* skipping unknown command */
+ }
+diff -ur TiMidity++-2.13.2/interface/gtk_c.c TiMidity++-2.13.2-new/interface/gtk_c.c
+--- TiMidity++-2.13.2/interface/gtk_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/gtk_c.c 2005-01-02 03:35:53.447946272 +0100
+@@ -57,7 +57,7 @@
+
+ static int ctl_open(int using_stdin, int using_stdout);
+ static void ctl_close(void);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+ static void ctl_event(CtlEvent *e);
+@@ -528,7 +528,7 @@
+ #endif
+ }
+
+-static void
++static int
+ ctl_pass_playing_list(int number_of_files, char *list_of_files[])
+ {
+ int i=0;
+@@ -558,7 +558,7 @@
+ }
+ else {
+ if (command==RC_QUIT)
+- return;
++ return 0;
+ if (command==RC_ERROR)
+ command=RC_TUNE_END; /* Launch next file */
+
+@@ -580,6 +580,7 @@
+ command = ctl_blocking_read(&val);
+ }
+ }
++ return 0;
+ }
+
+ /*
+diff -ur TiMidity++-2.13.2/interface/mac_c.c TiMidity++-2.13.2-new/interface/mac_c.c
+--- TiMidity++-2.13.2/interface/mac_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/mac_c.c 2005-01-02 03:04:13.000000000 +0100
+@@ -71,7 +71,7 @@
+ static void ctl_pitch_bend(int channel, int val);
+ static void ctl_reset(void);
+ static int ctl_open(int using_stdin, int using_stdout);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static void ctl_close(void);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+@@ -955,7 +955,7 @@
+ }
+
+
+-static void ctl_pass_playing_list(int init_number_of_files,
++static int ctl_pass_playing_list(int init_number_of_files,
+ char * /*init_list_of_files*/ [])
+ {
+ EventRecord event;
+@@ -983,6 +983,7 @@
+ mac_HandleEvent(&event);
+ }
+ Do_Quit();
++ return 0;
+ }
+
+ static Boolean UserWantsControl()
+diff -ur TiMidity++-2.13.2/interface/motif_c.c TiMidity++-2.13.2-new/interface/motif_c.c
+--- TiMidity++-2.13.2/interface/motif_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/motif_c.c 2005-01-02 03:05:04.000000000 +0100
+@@ -60,7 +60,7 @@
+ static void ctl_close(void);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static void ctl_event(CtlEvent *e);
+
+ static int motif_ready = 0;
+@@ -346,12 +346,13 @@
+ return(ctl_blocking_read(valp));
+ }
+
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[])
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[])
+ {
+ int i=0;
+ char file_to_play[1000];
+ int command;
+ int32 val;
++ int retval;
+
+ motif_ready = 1;
+
+@@ -381,12 +382,13 @@
+ else
+ {
+ if (command==RC_QUIT)
+- return;
++ return 0;
+
+ switch(command)
+ {
+ case RC_ERROR:
+ m_pipe_int_write(ERROR_MESSAGE);
++ retval=1;
+ break;
+ case RC_NONE:
+ break;
+@@ -411,6 +413,7 @@
+ command = ctl_blocking_read(&val);
+ }
+ }
++ return retval;
+ }
+
+ /*
+diff -ur TiMidity++-2.13.2/interface/ncurs_c.c TiMidity++-2.13.2-new/interface/ncurs_c.c
+--- TiMidity++-2.13.2/interface/ncurs_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/ncurs_c.c 2005-01-02 03:05:48.000000000 +0100
+@@ -174,7 +174,7 @@
+
+ static int ctl_open(int using_stdin, int using_stdout);
+ static void ctl_close(void);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+ static void ctl_event(CtlEvent *e);
+@@ -3100,7 +3100,7 @@
+ reuse_mblock(&tmpbuffer);
+ }
+
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[])
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[])
+ {
+ int i;
+ int act_number_of_files;
+@@ -3128,7 +3128,7 @@
+
+ if (file_list.number<0) {
+ cmsg(CMSG_FATAL, VERB_NORMAL, "No MIDI file to play!");
+- return;
++ return 1;
+ }
+
+ ctl_listmode_max=1;
+@@ -3169,7 +3169,7 @@
+ if(!(ctl.flags & CTLF_LIST_LOOP) || stdin_check)
+ {
+ aq_flush(0);
+- return;
++ return 0;
+ }
+ i = 0;
+ if(rc == RC_TUNE_END)
+@@ -3187,7 +3187,7 @@
+
+ /* else fall through */
+ case RC_QUIT:
+- return;
++ return 0;
+ }
+ ctl_reset();
+ }
+diff -ur TiMidity++-2.13.2/interface/portmidisyn_c.c TiMidity++-2.13.2-new/interface/portmidisyn_c.c
+--- TiMidity++-2.13.2/interface/portmidisyn_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/portmidisyn_c.c 2005-01-02 03:13:05.000000000 +0100
+@@ -96,7 +96,7 @@
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+ static void ctl_event(CtlEvent *e);
+-static void ctl_pass_playing_list(int n, char *args[]);
++static int ctl_pass_playing_list(int n, char *args[]);
+
+ #ifndef __W32__
+ static void init_keybord(void);
+@@ -215,17 +215,17 @@
+
+ #ifdef IA_W32G_SYN
+ extern void w32g_syn_doit(void);
+-extern void w32g_syn_ctl_pass_playing_list(int n_, char *args_[]);
++extern int w32g_syn_ctl_pass_playing_list(int n_, char *args_[]);
+
+
+-static void ctl_pass_playing_list(int n, char *args[])
++static int ctl_pass_playing_list(int n, char *args[])
+ {
+- w32g_syn_ctl_pass_playing_list ( n, args );
++ return w32g_syn_ctl_pass_playing_list ( n, args );
+ }
+ #endif
+
+ #ifndef IA_W32G_SYN
+-static void ctl_pass_playing_list(int n, char *args[])
++static int ctl_pass_playing_list(int n, char *args[])
+ #else
+ // 0: OK, 2: Require to reset.
+ int ctl_pass_playing_list2(int n, char *args[])
+@@ -241,7 +241,7 @@
+ #ifndef IA_W32G_SYN
+ if(n > MAX_PORT ){
+ printf( "Usage: timidity -iW [Midi interface No s]\n");
+- return;
++ return 1;
+ }
+ #endif
+
+@@ -347,11 +347,7 @@
+ #endif /* USE_GTK_GUI */
+ rtsyn_close();
+
+-#ifdef IA_W32G_SYN
+ return 0;
+-#else
+- return;
+-#endif
+ }
+
+
+diff -ur TiMidity++-2.13.2/interface/server_c.c TiMidity++-2.13.2-new/interface/server_c.c
+--- TiMidity++-2.13.2/interface/server_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/server_c.c 2005-01-02 03:07:38.000000000 +0100
+@@ -176,7 +176,7 @@
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+ static void ctl_event(CtlEvent *e);
+-static void ctl_pass_playing_list(int n, char *args[]);
++static int ctl_pass_playing_list(int n, char *args[]);
+
+ /**********************************/
+ /* export the interface functions */
+@@ -356,14 +356,14 @@
+ static void compute_sample_increment(void);
+ static void server_reset(void);
+
+-static void ctl_pass_playing_list(int n, char *args[])
++static int ctl_pass_playing_list(int n, char *args[])
+ {
+ int sock;
+
+ if(n != 2 && n != 1)
+ {
+ fprintf(stderr, "Usage: timidity -ir control-port [data-port]\n");
+- return;
++ return 1;
+ }
+
+ #ifdef SIGPIPE
+@@ -379,7 +379,7 @@
+ if (control_port) {
+ sock = pasv_open(&control_port);
+ if(sock == -1)
+- return;
++ return 1;
+ }
+ opt_realtime_playing = 1; /* Enable loading patch while playing */
+ allocate_cache_size = 0; /* Don't use pre-calclated samples */
+@@ -404,7 +404,7 @@
+ continue;
+ perror("accept");
+ close(sock);
+- return;
++ return 1;
+ }
+ }
+ else control_fd = 0;
+@@ -446,6 +446,7 @@
+ if (!control_port)
+ break;
+ }
++ return 0;
+ }
+
+ #define MAX_GETCMD_PARAMS 8
+diff -ur TiMidity++-2.13.2/interface/tk_c.c TiMidity++-2.13.2-new/interface/tk_c.c
+--- TiMidity++-2.13.2/interface/tk_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/tk_c.c 2005-01-02 03:08:48.000000000 +0100
+@@ -86,7 +86,7 @@
+ static void ctl_close(void);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static int ctl_blocking_read(int32 *valp);
+ static void ctl_note(int status, int ch, int note, int vel);
+ static void ctl_event(CtlEvent *e);
+@@ -587,7 +587,7 @@
+ return(ctl_blocking_read(valp));
+ }
+
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[])
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[])
+ {
+ int i=0;
+ char local[1000];
+@@ -618,7 +618,7 @@
+ /* if really QUIT */
+ k_pipe_gets(local, sizeof(local)-1);
+ if (*local == 'Z')
+- return;
++ return 0;
+ /* only stop playing..*/
+ }
+ if (command==RC_CHANGE_VOLUME) /* init volume */
+@@ -646,6 +646,7 @@
+ command = ctl_blocking_read(&val);
+ }
+ }
++ return 0;
+ }
+
+
+diff -ur TiMidity++-2.13.2/interface/w32g_c.c TiMidity++-2.13.2-new/interface/w32g_c.c
+--- TiMidity++-2.13.2/interface/w32g_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/w32g_c.c 2005-01-02 03:10:03.000000000 +0100
+@@ -86,7 +86,7 @@
+
+ static int ctl_open(int using_stdin, int using_stdout);
+ static void ctl_close(void);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static void ctl_event(CtlEvent *e);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+@@ -662,7 +662,7 @@
+ }
+
+ extern BOOL SetWrdWndActive(void);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[])
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[])
+ {
+ static int init_flag = 1;
+ int rc;
+@@ -779,7 +779,7 @@
+ if(ctl.flags & CTLF_AUTOEXIT) {
+ if(play_mode->fd != -1)
+ aq_flush(0);
+- return;
++ return 0;
+ }
+ break;
+ }
+@@ -803,7 +803,7 @@
+ if(ctl.flags & CTLF_AUTOEXIT){
+ if(play_mode->fd != -1)
+ aq_flush(0);
+- return;
++ return 0;
+ }
+ if((ctl.flags & CTLF_LIST_LOOP) && w32g_nvalid_playlist())
+ {
+@@ -839,7 +839,7 @@
+ case RC_QUIT:
+ if(play_mode->fd != -1)
+ aq_flush(1);
+- return;
++ return 0;
+
+ case RC_CHANGE_VOLUME:
+ amplification += value;
+@@ -868,6 +868,7 @@
+ PrefSettingApplyReally();
+ rc = RC_NONE;
+ }
++ return 0;
+ }
+
+ static void ctl_lcd_mark(int flag, int x, int y)
+diff -ur TiMidity++-2.13.2/interface/w32g_syn.c TiMidity++-2.13.2-new/interface/w32g_syn.c
+--- TiMidity++-2.13.2/interface/w32g_syn.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/w32g_syn.c 2005-01-02 03:10:49.000000000 +0100
+@@ -281,7 +281,7 @@
+ static int wait_for_termination_of_syn_thread ( void );
+ int w32g_message_set ( int cmd );
+ int w32g_message_get ( w32g_syn_message_t *msg );
+-void w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] );
++int w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] );
+ int w32g_syn_do_before_pref_apply ( void );
+ int w32g_syn_do_after_pref_apply ( void );
+
+@@ -1403,7 +1403,7 @@
+ }
+ }
+
+-void w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] )
++int w32g_syn_ctl_pass_playing_list ( int n_, char *args_[] )
+ {
+ int i;
+ #ifndef TWSYNSRV
+@@ -1471,6 +1471,7 @@
+ }
+ #endif
+ if ( w32g_syn.quit_state < 2 ) w32g_syn.quit_state = 2;
++ return 0;
+ }
+
+ int w32g_syn_do_before_pref_apply ( void )
+diff -ur TiMidity++-2.13.2/interface/winsyn_c.c TiMidity++-2.13.2-new/interface/winsyn_c.c
+--- TiMidity++-2.13.2/interface/winsyn_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/winsyn_c.c 2005-01-02 03:11:36.000000000 +0100
+@@ -88,7 +88,7 @@
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+ static void ctl_event(CtlEvent *e);
+-static void ctl_pass_playing_list(int n, char *args[]);
++static int ctl_pass_playing_list(int n, char *args[]);
+
+ #ifndef __W32__
+ static void init_keybord(void);
+@@ -207,17 +207,17 @@
+
+ #ifdef IA_W32G_SYN
+ extern void w32g_syn_doit(void);
+-extern void w32g_syn_ctl_pass_playing_list(int n_, char *args_[]);
++extern int w32g_syn_ctl_pass_playing_list(int n_, char *args_[]);
+
+
+-static void ctl_pass_playing_list(int n, char *args[])
++static int ctl_pass_playing_list(int n, char *args[])
+ {
+- w32g_syn_ctl_pass_playing_list ( n, args );
++ return w32g_syn_ctl_pass_playing_list ( n, args );
+ }
+ #endif
+
+ #ifndef IA_W32G_SYN
+-static void ctl_pass_playing_list(int n, char *args[])
++static int ctl_pass_playing_list(int n, char *args[])
+ #else
+ // 0: OK, 2: Require to reset.
+ int ctl_pass_playing_list2(int n, char *args[])
+@@ -233,7 +233,7 @@
+ #ifndef IA_W32G_SYN
+ if(n > MAX_PORT ){
+ printf( "Usage: timidity -iW [Midi interface No s]\n");
+- return;
++ return 1;
+ }
+ #endif
+
+@@ -339,11 +339,7 @@
+ #endif /* USE_GTK_GUI */
+ rtsyn_close();
+
+-#ifdef IA_W32G_SYN
+ return 0;
+-#else
+- return;
+-#endif
+ }
+
+
+diff -ur TiMidity++-2.13.2/interface/xaw_c.c TiMidity++-2.13.2-new/interface/xaw_c.c
+--- TiMidity++-2.13.2/interface/xaw_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/xaw_c.c 2005-01-02 03:11:57.000000000 +0100
+@@ -55,7 +55,7 @@
+ static void ctl_close(void);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static void ctl_event(CtlEvent *e);
+
+ static void a_pipe_open(void);
+@@ -463,7 +463,7 @@
+ }
+ }
+
+-static void ctl_pass_playing_list(int init_number_of_files,
++static int ctl_pass_playing_list(int init_number_of_files,
+ char *init_list_of_files[]) {
+ int current_no,command=RC_NONE,i,j;
+ int32 val;
+diff -ur TiMidity++-2.13.2/interface/xskin_c.c TiMidity++-2.13.2-new/interface/xskin_c.c
+--- TiMidity++-2.13.2/interface/xskin_c.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/interface/xskin_c.c 2005-01-02 03:12:31.000000000 +0100
+@@ -55,7 +55,7 @@
+ static void ctl_close(void);
+ static int ctl_read(int32 *valp);
+ static int cmsg(int type, int verbosity_level, char *fmt, ...);
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]);
+ static void ctl_event(CtlEvent *e);
+ static void ctl_speana_data(double *val, int size);
+ static void initialize_exp_hz_table( void );
+@@ -342,7 +342,7 @@
+ }
+ }
+
+-static void ctl_pass_playing_list(int number_of_files, char *list_of_files[]) {
++static int ctl_pass_playing_list(int number_of_files, char *list_of_files[]) {
+
+ int current_no,command,i;
+ int32 val;
+@@ -403,7 +403,7 @@
+ command=play_midi_file(list_of_files[file_table[current_no]]);
+ } else {
+ /* Quit timidity*/
+- if (exitflag) return;
++ if (exitflag) return 0;
+ /* Stop playing */
+ if (command==RC_QUIT) {
+ sprintf(local_buf,"T 00:00");
+@@ -461,6 +461,7 @@
+ command=ctl_blocking_read(&val);
+ }
+ }
++ return 0;
+ }
+
+ /* ------ Pipe handlers ----- */
+diff -ur TiMidity++-2.13.2/timidity/controls.h TiMidity++-2.13.2-new/timidity/controls.h
+--- TiMidity++-2.13.2/timidity/controls.h 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/timidity/controls.h 2005-01-02 02:59:37.000000000 +0100
+@@ -147,7 +147,7 @@
+
+ int (*open)(int using_stdin, int using_stdout);
+ void (*close)(void);
+- void (*pass_playing_list)(int number_of_files, char *list_of_files[]);
++ int (*pass_playing_list)(int number_of_files, char *list_of_files[]);
+ int (*read)(int32 *valp);
+ int (*cmsg)(int type, int verbosity_level, char *fmt, ...);
+ void (*event)(CtlEvent *ev); /* Control events */
+diff -ur TiMidity++-2.13.2/timidity/playmidi.c TiMidity++-2.13.2-new/timidity/playmidi.c
+--- TiMidity++-2.13.2/timidity/playmidi.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/timidity/playmidi.c 2005-01-02 03:15:55.000000000 +0100
+@@ -8562,7 +8562,7 @@
+ return rc;
+ }
+
+-void dumb_pass_playing_list(int number_of_files, char *list_of_files[])
++int dumb_pass_playing_list(int number_of_files, char *list_of_files[])
+ {
+ #ifndef CFG_FOR_SF
+ int i = 0;
+@@ -8586,12 +8586,12 @@
+ aq_flush(0);
+
+ if(!(ctl->flags & CTLF_LIST_LOOP))
+- return;
++ return 0;
+ i = 0;
+ break;
+
+ case RC_QUIT:
+- return;
++ return 0;
+ }
+ }
+ #endif
+diff -ur TiMidity++-2.13.2/timidity/playmidi.h TiMidity++-2.13.2-new/timidity/playmidi.h
+--- TiMidity++-2.13.2/timidity/playmidi.h 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/timidity/playmidi.h 2005-01-02 03:16:07.000000000 +0100
+@@ -577,7 +577,7 @@
+ extern int opt_pan_delay;
+
+ extern int play_midi_file(char *fn);
+-extern void dumb_pass_playing_list(int number_of_files, char *list_of_files[]);
++extern int dumb_pass_playing_list(int number_of_files, char *list_of_files[]);
+ extern void default_ctl_lyric(int lyricid);
+ extern int check_apply_control(void);
+ extern void recompute_freq(int v);
+diff -ur TiMidity++-2.13.2/timidity/sndfont.c TiMidity++-2.13.2-new/timidity/sndfont.c
+--- TiMidity++-2.13.2/timidity/sndfont.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/timidity/sndfont.c 2005-01-02 03:15:27.000000000 +0100
+@@ -1893,7 +1893,7 @@
+
+ #if CFG_FOR_SF_SUPPORT_FFT
+ int check_apply_control(void) { return 0; } // not pass
+-void dumb_pass_playing_list(int number_of_files, char *list_of_files[]) {}
++int dumb_pass_playing_list(int number_of_files, char *list_of_files[]) {return 0;}
+ void recompute_freq(int v) {} // not pass
+ int32 control_ratio = 0;
+ int reduce_quality_flag = 0;
+diff -ur TiMidity++-2.13.2/timidity/timidity.c TiMidity++-2.13.2-new/timidity/timidity.c
+--- TiMidity++-2.13.2/timidity/timidity.c 2005-01-02 02:53:01.000000000 +0100
++++ TiMidity++-2.13.2-new/timidity/timidity.c 2005-01-02 02:59:29.000000000 +0100
+@@ -5291,6 +5291,7 @@
+ int need_stdin = 0, need_stdout = 0;
+ int i;
+ int output_fail = 0;
++ int retval;
+
+ if(nfiles == 0 && !strchr(INTERACTIVE_INTERFACE_IDS, ctl->id_character))
+ return 0;
+@@ -5410,7 +5411,7 @@
+ ctl->cmsg(CMSG_INFO, VERB_DEBUG_SILLY,
+ "pass_playing_list() nfiles=%d", nfiles);
+
+- ctl->pass_playing_list(nfiles, files);
++ retval=ctl->pass_playing_list(nfiles, files);
+
+ if(intr)
+ aq_flush(1);
+@@ -5451,7 +5452,7 @@
+ url_news_connection_cache(URL_NEWS_CLOSE_CACHE);
+ #endif /* SUPPORT_SOCKET */
+
+- return 0;
++ return retval;
+ }
+
+ #ifdef IA_W32GUI
diff --git a/extra/timidity++/timidity++-2.13.2-gtk26.patch b/extra/timidity++/timidity++-2.13.2-gtk26.patch
new file mode 100644
index 000000000..73dc8de6c
--- /dev/null
+++ b/extra/timidity++/timidity++-2.13.2-gtk26.patch
@@ -0,0 +1,19 @@
+--- interface/gtk_i.c 2004/12/21 16:59:33 1.1
++++ interface/gtk_i.c 2004/12/21 16:59:41
+@@ -365,6 +365,7 @@ void
+ Launch_Gtk_Process(int pipe_number)
+ {
+ int argc = 0;
++ gchar **argv = NULL;
+ GtkWidget *button, *mbar, *swin;
+ GtkWidget *table, *align, *handlebox;
+ GtkWidget *vbox, *hbox, *vbox2, *scrolled_win;
+@@ -373,7 +374,7 @@ Launch_Gtk_Process(int pipe_number)
+ /* enable locale */
+ gtk_set_locale ();
+
+- gtk_init (&argc, NULL);
++ gtk_init (&argc, &argv);
+
+ ttip = create_yellow_tooltips();
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
diff --git a/extra/timidity++/timidity++-2.13.2-polling.patch b/extra/timidity++/timidity++-2.13.2-polling.patch
new file mode 100644
index 000000000..a9638dba1
--- /dev/null
+++ b/extra/timidity++/timidity++-2.13.2-polling.patch
@@ -0,0 +1,34 @@
+--- interface/alsaseq_c.c 2006/12/13 23:22:53 1.28
++++ interface/alsaseq_c.c 2008/04/16 00:14:45 1.29
+@@ -501,6 +501,8 @@
+
+ static void doit(struct seq_context *ctxp)
+ {
++ fd_set rfds;
++ struct timeval timeout;
+ for (;;) {
+ while (snd_seq_event_input_pending(ctxp->handle, 1)) {
+ if (do_sequencer(ctxp))
+@@ -528,15 +530,17 @@
+ play_event(&ev);
+ aq_fill_nonblocking();
+ }
+- if (! ctxp->active || ! IS_STREAM_TRACE) {
+- fd_set rfds;
+- struct timeval timeout;
+- FD_ZERO(&rfds);
+- FD_SET(ctxp->fd, &rfds);
++
++ FD_ZERO(&rfds);
++ FD_SET(ctxp->fd, &rfds);
++ if (ctxp->active) {
+ timeout.tv_sec = 0;
+ timeout.tv_usec = 10000; /* 10ms */
+ if (select(ctxp->fd + 1, &rfds, NULL, NULL, &timeout) < 0)
+ goto __done;
++ } else {
++ if (select(ctxp->fd + 1, &rfds, NULL, NULL, NULL) < 0)
++ goto __done;
+ }
+ }
+
diff --git a/extra/timidity++/timidity++.sh b/extra/timidity++/timidity++.sh
new file mode 100644
index 000000000..3fa13cea9
--- /dev/null
+++ b/extra/timidity++/timidity++.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/timidity`
+case "$1" in
+ start)
+ stat_busy "Starting Timidity++ ALSA Daemon"
+ [ -z "$PID" ] && /usr/bin/timidity -iAD > /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $PID > /var/run/timidity.pid
+ add_daemon timidity++
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Timidity++ ALSA Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/timidity.pid
+ rm_daemon timidity++
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/timidity++/timidity.cfg b/extra/timidity++/timidity.cfg
new file mode 100644
index 000000000..59bbfa935
--- /dev/null
+++ b/extra/timidity++/timidity.cfg
@@ -0,0 +1,29 @@
+# details on this file and other examples see here:
+# http://www.onicos.com/staff/iz/timidity/dist/cfg/sndfont.cfg
+# http://www.onicos.com/staff/iz/timidity/dist/cfg/
+#----------------------------------------------------------------
+# SoundFont extension configuration
+#
+# soundfont <filename> [order={0|1}] [remove]
+# <filename> is the path of SoundFont file.
+# order: 0(preload) or 1(load after GUS).
+# remove: disable specified soundfont.
+#
+# font exclude <tonebank> [<preset> [<keynote>]]
+# font order {0|1} <tonebank> [<preset> [<keynote>]]
+# <tonebank>: 0-127
+#
+# font exclude 128 [<drumset> [<key>]]
+# font order {0|1} 128 [<drumset> [<key>]]
+#----------------------------------------------------------------
+
+# change the next line to point to a soundfont you have
+# soundfonts can be found e.g. here: http://www.hammersound.net/
+# soundfont /usr/share/soundfonts/DX7Piano.SF2
+
+# you can do manipulations of the soundfont you load like this:
+# e.g. removing drumset 99
+# font exclude 128 99
+
+# load drum samples after GUS patches
+# font order 1 128
diff --git a/extra/tk/PKGBUILD b/extra/tk/PKGBUILD
new file mode 100644
index 000000000..4b1807027
--- /dev/null
+++ b/extra/tk/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 90372 2010-09-11 03:52:30Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=tk
+pkgver=8.5.9
+pkgrel=1
+pkgdesc="A windowing toolkit for use with tcl"
+arch=('i686' 'x86_64')
+url="http://tcl.sourceforge.net/"
+license=('custom')
+depends=("tcl=${pkgver}" 'libxss' 'libxft')
+source=(http://downloads.sourceforge.net/sourceforge/tcl/tk${pkgver}-src.tar.gz)
+md5sums=('7cdeb9feb61593f58a0ae61f2497580e')
+
+build() {
+ cd ${srcdir}/tk${pkgver}/unix
+
+ if [ "$CARCH" = "x86_64" ]; then
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-threads --enable-64bit
+ else
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-threads --disable-64bit
+ fi
+
+ make
+}
+
+package() {
+ cd ${srcdir}/tk${pkgver}/unix
+
+ make INSTALL_ROOT=${pkgdir} install install-private-headers
+ ln -sf wish8.5 ${pkgdir}/usr/bin/wish
+
+ # install private headers (FS#14388)
+ cd ${srcdir}/tk${pkgver}
+ for dir in compat generic generic/ttk unix; do
+ install -dm755 ${pkgdir}/usr/include/tk-private/$dir
+ install -m644 -t ${pkgdir}/usr/include/tk-private/$dir $dir/*.h
+ done
+
+ # install license
+ install -Dm644 license.terms ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # remove buildroot traces
+ sed -i \
+ -e "s,^TK_BUILD_LIB_SPEC='-L.*/unix,TK_BUILD_LIB_SPEC='-L/usr/lib," \
+ -e "s,^TK_SRC_DIR='.*',TK_SRC_DIR='/usr/include'," \
+ -e "s,^TK_BUILD_STUB_LIB_SPEC='-L.*/unix,TK_BUILD_STUB_LIB_SPEC='-L/usr/lib," \
+ -e "s,^TK_BUILD_STUB_LIB_PATH='.*/unix,TK_BUILD_STUB_LIB_PATH='/usr/lib," \
+ ${pkgdir}/usr/lib/tkConfig.sh
+}
diff --git a/extra/tomboy/PKGBUILD b/extra/tomboy/PKGBUILD
new file mode 100644
index 000000000..b7d2e223d
--- /dev/null
+++ b/extra/tomboy/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 103907 2010-12-23 17:41:14Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=tomboy
+pkgver=1.4.2
+pkgrel=1
+pkgdesc="Desktop note-taking application for Linux and Unix"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/tomboy/"
+depends=('gtkspell' 'gmime>=2.4.21' 'ndesk-dbus-glib>=0.4.1' 'gnome-sharp>=2.24.1' 'mono-addins>=0.5' 'libsm' 'gnome-desktop-sharp>=2.26.0' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-panel-bonobo' 'gnome-doc-utils>=0.20.0')
+optdepends=('gnome-panel-bonobo: applet support')
+options=('!libtool' '!emptydirs' '!makeflags')
+groups=('gnome-extra')
+install=tomboy.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.4/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('823270473c819d6592074a0dcd41c29fd857b29a0318061aaabfa38fff3cc7e7')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --disable-update-mimedb --enable-panel-applet
+ make
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain tomboy ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/tomboy/tomboy.install b/extra/tomboy/tomboy.install
new file mode 100644
index 000000000..f8e2e4a07
--- /dev/null
+++ b/extra/tomboy/tomboy.install
@@ -0,0 +1,25 @@
+pkgname=tomboy
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime
+}
diff --git a/extra/tomcat/PKGBUILD b/extra/tomcat/PKGBUILD
new file mode 100644
index 000000000..b58268347
--- /dev/null
+++ b/extra/tomcat/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 117492 2011-04-04 07:40:54Z guillaume $
+# Maintainer: Guillaume ALAUX <guillaume at archlinux dot org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+pkgname=tomcat
+pkgver=5.5.33
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc="Servlet container for Java Servlet and JavaServer Pages"
+url="http://tomcat.apache.org/"
+license=('APACHE')
+depends=('java-environment')
+makedepends=('openjdk6')
+backup=('opt/tomcat/conf/server.xml' 'opt/tomcat/conf/tomcat-users.xml' 'etc/conf.d/tomcat')
+install=tomcat.install
+source=(http://archive.apache.org/dist/tomcat/tomcat-5/v${pkgver}/bin/apache-tomcat-${pkgver}.tar.gz
+ 'tomcat'
+ 'tomcat.conf.d')
+md5sums=('3d79cd245497b2c501b4fd64e1da641c'
+ '20e6a8e89a148e2b0ac81ca03ceea6b1'
+ '368322d8a51ce20cc5dbdb505706a16a')
+
+build() {
+ unset LDFLAGS
+ # build jsvc
+ cd ${srcdir}/apache-${pkgname}-${pkgver}/bin
+ tar xzf commons-daemon-native.tar.gz
+ cd commons-daemon-1.0.5-native-src/unix
+ sh configure --with-java=/usr/lib/jvm/java-6-openjdk
+ make clean
+ make
+ cp jsvc ../..
+
+ # get rid of some cruft
+ cd ${srcdir}/apache-${pkgname}-${pkgver}
+ rm -f LICENSE NOTICE RELEASE-NOTES RUNNING.txt
+ rm -fr bin/*.exe bin/*.bat bin/*.tar.gz bin/jsvc-src
+
+ # install everything
+ mkdir -p ${pkgdir}/opt/tomcat
+ cp -R * ${pkgdir}/opt/tomcat
+ install -D -m755 ${srcdir}/tomcat ${pkgdir}/etc/rc.d/tomcat
+ install -D -m644 ${srcdir}/tomcat.conf.d ${pkgdir}/etc/conf.d/tomcat
+ chgrp -R 66 ${pkgdir}/opt/tomcat/{conf,work,webapps}
+ chmod 0660 ${pkgdir}/opt/tomcat/conf/{*.xml,*.policy,*.properties,/Catalina/localhost/*.xml}
+ chmod 775 ${pkgdir}/opt/tomcat/{conf,work,webapps}
+}
diff --git a/extra/tomcat/tomcat b/extra/tomcat/tomcat
new file mode 100755
index 000000000..43116783d
--- /dev/null
+++ b/extra/tomcat/tomcat
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+[ -f /etc/conf.d/tomcat ] && . /etc/conf.d/tomcat
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting Tomcat"
+ /opt/tomcat/bin/jsvc \
+ -user tomcat \
+ -home $TOMCAT_JAVA_HOME \
+ -Dcatalina.home=/opt/tomcat \
+ -Dcatalina.base=/opt/tomcat \
+ -Djava.io.tmpdir=/opt/tomcat/temp \
+ -wait 10 \
+ -pidfile /var/run/tomcat.pid \
+ -errfile /opt/tomcat/logs/catalina.log \
+ $CATALINA_OPTS \
+ -cp $TOMCAT_JAVA_HOME/lib/tools.jar:/opt/tomcat/bin/commons-daemon.jar:/opt/tomcat/bin/bootstrap.jar \
+ org.apache.catalina.startup.Bootstrap
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon tomcat
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Tomcat"
+ /opt/tomcat/bin/jsvc \
+ -stop \
+ -pidfile /var/run/tomcat.pid \
+ org.apache.catalina.startup.Bootstrap
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon tomcat
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/tomcat/tomcat.conf.d b/extra/tomcat/tomcat.conf.d
new file mode 100644
index 000000000..aed805cd3
--- /dev/null
+++ b/extra/tomcat/tomcat.conf.d
@@ -0,0 +1,5 @@
+# The JAVA_HOME of the JVM for Tomcat to use
+TOMCAT_JAVA_HOME=/usr/lib/jvm/java-6-openjdk
+
+# Tomcat additional commandline options
+CATALINA_OPTS=
diff --git a/extra/tomcat/tomcat.install b/extra/tomcat/tomcat.install
new file mode 100644
index 000000000..4308274ce
--- /dev/null
+++ b/extra/tomcat/tomcat.install
@@ -0,0 +1,27 @@
+post_install() {
+ getent group tomcat >/dev/null 2>&1 || groupadd -g 66 tomcat
+ getent passwd tomcat >/dev/null 2>&1 || useradd -u 66 -g tomcat -d /opt/tomcat -s /bin/false tomcat
+
+ if [ -f lib/modules/`uname -r`/kernel/security/capability.ko ]; then
+ echo ">>> It appears that your current kernel has linux security"
+ echo ">>> capabilities built as a module. Tomcat requires this"
+ echo ">>> functionality to operate."
+ echo ">>>"
+ echo ">>> To activate the module, please load it now (modprobe capability)."
+ echo ">>> Also, you should add it to your MODULES array in rc.conf, so"
+ echo ">>> it will be activated automatically at boot-up."
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if getent passwd tomcat >/dev/null 2>&1; then
+ userdel tomcat
+ fi
+ if getent group tomcat >/dev/null 2>&1; then
+ groupdel tomcat
+ fi
+}
diff --git a/extra/totem-plparser/PKGBUILD b/extra/totem-plparser/PKGBUILD
new file mode 100644
index 000000000..1d7d30b1b
--- /dev/null
+++ b/extra/totem-plparser/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 111264 2011-02-25 14:59:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=totem-plparser
+pkgver=2.32.3
+pkgrel=1
+url="http://www.hadess.net/totem.php3"
+pkgdesc="Totem playlist parser library"
+license=('LGPL')
+arch=(i686 x86_64)
+depends=('gmime' 'libsoup-gnome')
+makedepends=('intltool' 'pkgconfig' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-${pkgver}.tar.bz2)
+sha256sums=('c15149650c5420426e7becd6eb4298e898d1975cb7c9ff534cc0785d350916e2')
+
+build() {
+ cd "${srcdir}/totem-pl-parser-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package(){
+ cd "${srcdir}/totem-pl-parser-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/totem/PKGBUILD b/extra/totem/PKGBUILD
new file mode 100644
index 000000000..4241b3209
--- /dev/null
+++ b/extra/totem/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 96293 2010-10-19 20:31:32Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=totem
+pkgname=('totem' 'totem-plugin')
+pkgver=2.32.0
+pkgrel=3
+url="http://www.hadess.net/totem.php3"
+arch=('i686' 'x86_64')
+license=('GPL2' 'custom')
+makedepends=('gstreamer0.10-base-plugins>=0.10.30' 'gstreamer0.10-good-plugins>=0.10.22' 'totem-plparser>=2.32.0' 'libxxf86vm' 'libxtst' 'desktop-file-utils' 'iso-codes>=3.10.1' 'libepc>=0.3.10' 'python2' 'libgdata>=0.6.4' 'nautilus>=2.32.0' 'xulrunner>=1.9.2' 'pkgconfig' 'bluez>=4.64' 'lirc-utils' 'gnome-doc-utils>=0.20.1' 'gnome-control-center>=2.32.0' 'intltool' 'pygtk>=2.22.0')
+
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/totem/2.32/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('982d6aaeca3e4844694fc0a2540d792bea753e24b55cf33203188b32b5914f47')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/totem \
+ --localstatedir=/var --disable-static \
+ --enable-python --enable-nautilus \
+ --with-dbus --disable-scrollkeeper
+ make
+}
+
+package_totem() {
+ pkgdesc="A GNOME2 integrated movie player based on Gstreamer."
+ depends=('gstreamer0.10-base-plugins>=0.10.30' 'gstreamer0.10-good-plugins>=0.10.22' 'totem-plparser>=2.32.0' 'libxxf86vm' 'libxtst' 'desktop-file-utils' 'iso-codes>=3.10.1' 'python2' 'libunique>=1.1.6')
+ groups=('gnome-extra')
+ install=totem.install
+ optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
+ 'gstreamer0.10-bad-plugins: Extra media codecs'
+ 'gstreamer0.10-ffmpeg: Extra media codecs'
+ 'httplib2: BBC iPlayer plugin'
+ 'python-feedparser: BBC iPlayer plugin'
+ 'beautiful-soup: BBC iPlayer plugin'
+ 'coherence: Coherence DLNA/UPnP Client plugin'
+ 'dbus-python: D-Bus Service plugin'
+ 'gromit: Gromit Annotations plugin'
+ 'lirc-utils: Infrared Remote Control plugin'
+ 'libepc: Publish Playlist plugin'
+ 'pyxdg: Subtitle Downloader plugin'
+ 'libgdata: YouTube Browser plugin'
+ 'gnome-python: Subtitle plugin')
+ conflicts=('totem-xine')
+ replaces=('totem-xine')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ rm -f ${pkgdir}/usr/share/totem/vanity.*
+ rm -f "${pkgdir}/usr/share/pixmaps/vanity.png"
+
+ rm -rf "${pkgdir}/usr/lib/mozilla"
+ rm -f "${pkgdir}/usr/lib/totem/totem-plugin-viewer"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain totem ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ sed -i "s|#!/usr/bin/python$|#!/usr/bin/python2|" \
+ $pkgdir/usr/lib/totem/{totem/totem-bugreport.py,plugins/iplayer/iplayer2.py}
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
+
+package_totem-plugin() {
+ pkgdesc="Totem mozilla/firefox plugin"
+ depends="totem=${pkgver}"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/browser-plugin"
+ make plugindir=/usr/lib/mozilla/plugins \
+ xptdir=/usr/lib/mozilla/plugins \
+ DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/share"
+}
+
diff --git a/extra/totem/totem.install b/extra/totem/totem.install
new file mode 100644
index 000000000..98dabd71a
--- /dev/null
+++ b/extra/totem/totem.install
@@ -0,0 +1,24 @@
+pkgname=totem
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/transcode/PKGBUILD b/extra/transcode/PKGBUILD
new file mode 100644
index 000000000..403d93a39
--- /dev/null
+++ b/extra/transcode/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 91207 2010-09-24 03:35:03Z eric $
+# Maintainer:
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: roberto <roberto@archlinux.org>
+
+pkgname=transcode
+_sripver=0.3-4
+pkgver=1.1.5
+pkgrel=5
+pkgdesc="A video/DVD ripper and encoder for the terminal/console"
+arch=('i686' 'x86_64')
+url="http://tcforge.berlios.de/"
+license=('GPL')
+depends=('imagemagick' 'lzo2' 'libdv' 'libdvdread' 'ffmpeg' 'mjpegtools'
+ 'libmpeg2' 'libtheora' 'libxaw' 'libxml2' 'libxv' 'a52dec' 'alsa-lib')
+makedepends=('nasm' 'pkg-config')
+options=('!libtool' '!makeflags')
+source=(http://download2.berlios.de/tcforge/${pkgname}-${pkgver}.tar.bz2
+ http://downloads.sourceforge.net/sourceforge/subtitleripper/subtitleripper-${_sripver}.tgz
+ transcode-1.1.5-jpeg-7.patch transcode-1.1.5-mpa.patch)
+md5sums=('41ac6b1c0fe30f3aab286e771fc31b9e' 'c0bd49a88f667c68c4430ad25bbed510'\
+ 'af4056b7530a6f147594f676849e7c7b' 'c299cfc6c4be6a5512d1a129f04e5450')
+sha1sums=('48c36e06ca0cd1cdc1a9c6a241e231f896eefd26' 'd93ff3578dd5f722c8f4ef16bc0903eec5781a0d'\
+ '9e380c00a3b31725dc3ec483fa7bf5e3d8a8a977' '6f45d9167c3aa15a83cb29545749f55eb1f1e5a2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 < ../transcode-1.1.5-jpeg-7.patch
+ patch -p1 < ../transcode-1.1.5-mpa.patch
+
+ # building from here
+ ./configure --prefix=/usr \
+ --enable-sse=no --enable-sse2=no --enable-altivec=no --enable-mmx \
+ --enable-lame --enable-ogg --enable-vorbis --enable-theora \
+ --enable-libdv --enable-libxml2 --enable-v4l \
+ --enable-imagemagick --enable-libjpeg --enable-lzo --enable-mjpegtools \
+ --enable-sdl --enable-freetype2 --enable-a52 --enable-libpostproc \
+ --enable-xvid --enable-x264 --enable-alsa \
+ --enable-libmpeg2 --enable-libmpeg2convert \
+ --with-libxml2-prefix=/usr \
+ --with-mjpegtools-prefix=/usr \
+ --with-imagemagick-prefix=/usr \
+ --with-libdv-includes=/usr \
+ --with-libpostproc-includes=/usr/include/libpostproc \
+ --with-ogg-prefix=/usr \
+ --with-lame-libs=/usr \
+ --with-lzo-libs=/usr/lib \
+ --with-libavcodec-prefix=/usr \
+ --with-libavcodec-includes=/usr/include \
+ --with-libavcodec-libs=/usr/lib
+
+ make
+ ##############################################################################
+ # this imports the latest subtitleripper sources and replaces the internal
+ mkdir contrib
+ mv "${srcdir}/subtitleripper" contrib/subrip
+ # removes dependency on libppm, make it dependend on netpbm just failed, argh...
+ cd contrib/subrip
+ sed -e 's|^\(.*lppm.*\)$|#\1|' \
+ -e 's|^\(.*D_HAVE_LIB_PPM.*\)$|#\1|' \
+ -e 's/DEFINES :=/DEFINES = -DHAVE_GETLINE/' \
+ -i Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ cd contrib/subrip
+ install -m 755 pgm2txt "${pkgdir}/usr/bin/"
+ install -m 755 srttool "${pkgdir}/usr/bin/"
+ install -m 755 subtitle2pgm "${pkgdir}/usr/bin/"
+ install -m 755 subtitle2vobsub "${pkgdir}/usr/bin/"
+ install -m 755 vobsub2pgm "${pkgdir}/usr/bin/"
+}
diff --git a/extra/transcode/transcode-1.1.5-jpeg-7.patch b/extra/transcode/transcode-1.1.5-jpeg-7.patch
new file mode 100644
index 000000000..288932a61
--- /dev/null
+++ b/extra/transcode/transcode-1.1.5-jpeg-7.patch
@@ -0,0 +1,16 @@
+http://bugs.gentoo.org/show_bug.cgi?id=294488
+
+Patch by: Salah Coronya
+
+Fix segmentation fault with jpeg-7 and above where dinfo.do_fancy_upsampling isn't set by default to FALSE anymore.
+
+--- export/export_jpg.c
++++ export/export_jpg.c
+@@ -91,6 +91,7 @@
+
+ jpeg_set_quality(&encinfo, quality, TRUE);
+ encinfo.raw_data_in = TRUE;
++ encinfo.do_fancy_downsampling = FALSE;
+ encinfo.in_color_space = JCS_YCbCr;
+
+ encinfo.comp_info[0].h_samp_factor = 2;
diff --git a/extra/transcode/transcode-1.1.5-mpa.patch b/extra/transcode/transcode-1.1.5-mpa.patch
new file mode 100644
index 000000000..e7fb0fc1c
--- /dev/null
+++ b/extra/transcode/transcode-1.1.5-mpa.patch
@@ -0,0 +1,10 @@
+--- transcode-1.1.5-old/export/aud_aux.c 2010-07-04 12:44:31.867550180 -0500
++++ transcode-1.1.5/export/aud_aux.c 2010-07-04 13:41:01.253292529 -0500
+@@ -347,6 +347,7 @@
+ //-- set parameters (bitrate, channels and sample-rate) --
+ //--------------------------------------------------------
+ memset(&mpa_ctx, 0, sizeof(mpa_ctx)); // default all
++ mpa_ctx.codec_type = CODEC_TYPE_AUDIO;
+ mpa_ctx.bit_rate = vob->mp3bitrate * 1000; // bitrate dest.
+ mpa_ctx.channels = vob->dm_chan; // channels
+ mpa_ctx.sample_rate = vob->a_rate;
diff --git a/extra/transfig/ChangeLog b/extra/transfig/ChangeLog
new file mode 100644
index 000000000..c303c33c0
--- /dev/null
+++ b/extra/transfig/ChangeLog
@@ -0,0 +1,36 @@
+2010-05-26 Jan de Groot <jgc@archlinux.org>
+ * transfig 3.2.5c-3
+ * Rebuilt for libpng 1.4.2, png_set_dither has been renamed
+
+2010-01-27 Eric Belanger <eric@archlinux.org>
+
+ * transfig 3.2.5c-2
+ * Rebuilt for libpng 1.4 and libjpeg 8
+
+2010-01-11 Eric Belanger <eric@archlinux.org>
+
+ * transfig 3.2.5c-1
+ * Upstream update
+ * Removed force option
+
+2009-08-12 Eric Belanger <eric@archlinux.org>
+
+ * transfig 3.2.5a-1
+ * Upstream update
+ * Added force option
+
+2009-03-21 Eric Belanger <eric@archlinux.org>
+
+ * transfig 3.2.5-2
+ * Removed uneeded stderr message (close FS#13825)
+
+2008-12-14 Eric Belanger <eric@archlinux.org>
+
+ * transfig 3.2.5-1
+ * Upstream update
+ * Added arch tag
+ * Added license
+ * Added imake makedepends
+ * Added man pages
+ * Removed old patches
+ * Added ChangeLog
diff --git a/extra/transfig/LICENSE b/extra/transfig/LICENSE
new file mode 100644
index 000000000..b944bb992
--- /dev/null
+++ b/extra/transfig/LICENSE
@@ -0,0 +1,23 @@
+/*
+ * TransFig: Facility for Translating Fig code
+ * Copyright (c) 1991 by Micah Beck
+ * Parts Copyright (c) 1985-1988 by Supoj Sutanthavibul
+ *
+ * Any party obtaining a copy of these files is granted, free of charge, a
+ * full and unrestricted irrevocable, world-wide, paid up, royalty-free,
+ * nonexclusive right and license to deal in this software and
+ * documentation files (the "Software"), including without limitation the
+ * rights to use, copy, modify, merge, publish and/or distribute copies of
+ * the Software, and to permit persons who receive copies from any such
+ * party to do so, with the only requirement being that this copyright
+ * notice remain intact.
+ *
+ */
+
+THE LAWRENCE BERKELEY NATIONAL LABORATORY DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/extra/transfig/PKGBUILD b/extra/transfig/PKGBUILD
new file mode 100644
index 000000000..6a223da76
--- /dev/null
+++ b/extra/transfig/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 81063 2010-05-26 10:19:14Z jgc $
+# Contributor: Eric Belanger <eric@archlinux.org>
+# Contributor: J. Santiago Hirschfeld <jsantiagoh@yahoo.com.ar>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=transfig
+pkgver=3.2.5c
+pkgrel=3
+pkgdesc="Format conversion utility that can be used with xfig"
+arch=('i686' 'x86_64')
+url="http://www.xfig.org"
+license=('custom')
+depends=('libpng' 'libxpm')
+makedepends=('imake')
+source=(http://downloads.sourceforge.net/mcj/${pkgname}.${pkgver}.tar.gz LICENSE)
+md5sums=('0cc55ed6b4ae67a3e610e501acd694f9' 'a0b2ea903821c46dbc77afefc06d1aa4')
+sha1sums=('20013b350e81400943cd91744173445d7bd4d98e' 'b8b712871615308b8b6add92f86d218437d652f2')
+
+build() {
+ cd ${srcdir}/${pkgname}.${pkgver}
+ sed -i 's/XCOMM USELATEX2E = -DLATEX2E/USELATEX2E = -DLATEX2E/' transfig/Imakefile || return 1
+ sed -i 's/XCOMM USEINLINE = -DUSE_INLINE/USEINLINE = -DUSE_INLINE/' fig2dev/Imakefile || return 1
+
+ xmkmf || return 1
+ make FIG2DEV_LIBDIR=/usr/share/fig2dev Makefiles || return 1
+ make FIG2DEV_LIBDIR=/usr/share/fig2dev XFIGLIBDIR=/usr/share/xfig || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}.${pkgver}
+
+ make DESTDIR=${pkgdir} XFIGLIBDIR=/usr/share/xfig \
+ FIG2DEV_LIBDIR=/usr/share/fig2dev MANPATH=/usr/share/man \
+ install install.man || return 1
+ install -Dm644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+}
diff --git a/extra/transmission/PKGBUILD b/extra/transmission/PKGBUILD
new file mode 100644
index 000000000..03f967d13
--- /dev/null
+++ b/extra/transmission/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 115693 2011-03-19 13:02:20Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=transmission
+pkgname=('transmission-cli' 'transmission-gtk' 'transmission-qt')
+pkgver=2.22
+pkgrel=3
+arch=('i686' 'x86_64')
+url="http://www.transmissionbt.com/"
+license=('MIT')
+makedepends=('intltool' 'curl' 'libnotify' 'desktop-file-utils' 'qt' 'libevent' 'libcanberra' 'dbus-glib')
+source=(http://mirrors.m0k.org/transmission/files/${pkgbase}-${pkgver}.tar.bz2
+ transmissiond transmissiond.conf)
+md5sums=('6499986bf769276310b00bda1090090d'
+ '50b7c17300bc8b38f44fb6f681ba05d0'
+ 'be39806c35b7544856fa4070b00fc960')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ ./configure --prefix=/usr --disable-gconf2
+ make
+ pushd qt
+ qmake qtr.pro
+ make
+}
+package_transmission-cli() {
+ pkgdesc="Fast, easy, and free BitTorrent client (CLI tools, daemon and web client)"
+ depends=('curl' 'libevent')
+ backup=('etc/conf.d/transmissiond')
+ install=transmission-cli.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ for dir in daemon cli web utils
+ do
+ make -C "${dir}" DESTDIR="${pkgdir}" install
+ done
+
+ install -D -m755 "${srcdir}/transmissiond" "${pkgdir}/etc/rc.d/transmissiond"
+ install -D -m644 "${srcdir}/transmissiond.conf" "${pkgdir}/etc/conf.d/transmissiond"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/transmission-cli/COPYING"
+}
+
+package_transmission-gtk() {
+ pkgdesc="Fast, easy, and free BitTorrent client (GTK+ GUI)"
+ depends=('curl' 'libevent' 'libnotify' 'desktop-file-utils' 'hicolor-icon-theme'
+ 'gtk2' 'dbus-glib' 'libcanberra')
+ optdepends=('notification-daemon: Desktop notification support'
+ 'transmission-cli: daemon and web support')
+ install=transmission-gtk.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ make -C gtk DESTDIR="${pkgdir}" install
+ make -C po DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/transmission-gtk/COPYING"
+}
+
+package_transmission-qt() {
+ pkgdesc="Fast, easy, and free BitTorrent client (Qt GUI)"
+ depends=('curl' 'qt' 'libevent')
+ optdepends=('transmission-cli: daemon and web support')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ make -C qt INSTALL_ROOT="${pkgdir}"/usr install
+
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/transmission-qt/COPYING"
+ install -D -m644 qt/icons/transmission.png "${pkgdir}/usr/share/pixmaps/transmission-qt.png"
+ install -D -m644 qt/transmission-qt.desktop "${pkgdir}/usr/share/applications/transmission-qt.desktop"
+}
diff --git a/extra/transmission/transmission-cli.install b/extra/transmission/transmission-cli.install
new file mode 100644
index 000000000..cb6bf6050
--- /dev/null
+++ b/extra/transmission/transmission-cli.install
@@ -0,0 +1,9 @@
+post_install() {
+ cat << _EOF
+
+ If you want to run the Transmission daemon at boot,
+ add transmissiond to the DAEMONS array in /etc/rc.conf.
+ You have to set the user in /etc/conf.d/transmissiond.
+
+_EOF
+}
diff --git a/extra/transmission/transmission-gtk.install b/extra/transmission/transmission-gtk.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/extra/transmission/transmission-gtk.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/transmission/transmissiond b/extra/transmission/transmissiond
new file mode 100644
index 000000000..ff83bd331
--- /dev/null
+++ b/extra/transmission/transmissiond
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/transmissiond
+
+PID=`pidof -o %PPID /usr/bin/transmission-daemon`
+case "$1" in
+ start)
+ stat_busy "Starting Transmission Daemon"
+ [ -z "$PID" ] && su -l -s /bin/sh -c "/usr/bin/transmission-daemon $TRANS_ARGS" $TRANS_USER
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon transmissiond
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Transmission Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon transmissiond
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ while [ ! -z "$PID" -a -d "/proc/$PID" ]; do sleep 1; done
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/transmission/transmissiond.conf b/extra/transmission/transmissiond.conf
new file mode 100644
index 000000000..cf6c6f26e
--- /dev/null
+++ b/extra/transmission/transmissiond.conf
@@ -0,0 +1,5 @@
+# example configuration file
+
+# TRANSMISSION_HOME=/home/foo
+# TRANS_USER="foo"
+# TRANS_ARGS="-g $TRANSMISSION_HOME/.config/transmission-daemon"
diff --git a/extra/trayer/PKGBUILD b/extra/trayer/PKGBUILD
new file mode 100644
index 000000000..5e67c6402
--- /dev/null
+++ b/extra/trayer/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 15775 2008-10-18 20:40:50Z eric $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=trayer
+pkgver=1.0
+pkgrel=4
+pkgdesc="Swallows GTK 1.2/2.x application docklets, and KDE docklets."
+arch=('i686' 'x86_64')
+url="https://gna.org/projects/fvwm-crystal/"
+license=('GPL' 'MIT')
+depends=('gtk2' 'libxmu')
+options=('!makeflags')
+source=(http://download.gna.org/fvwm-crystal/trayer/$pkgver/$pkgname-$pkgver.tar.gz
+ trayer.diff)
+md5sums=('e1b0b6464f991f2c296561e377585867' '7f66eee885563871f9f76646bca6b14d')
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ patch -Np0 -i ${startdir}/src/trayer.diff || return 1
+ make || return 1
+ make PREFIX=$startdir/pkg/usr install
+ install -D -m644 COPYING $startdir/pkg/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/extra/trayer/trayer.diff b/extra/trayer/trayer.diff
new file mode 100644
index 000000000..469d249dc
--- /dev/null
+++ b/extra/trayer/trayer.diff
@@ -0,0 +1,22 @@
+ # This patchfile was courtesy of the Debian team. Thanks!
+--- Makefile.common
++++ Makefile.common~
+@@ -25,7 +25,7 @@
+ endif
+
+ # -DGTK_DISABLE_DEPRECATED does not work yet
+-CFLAGS += -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED
++CFLAGS += -DG_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED
+
+ %.o: %.c
+ $(CC) $(CFLAGS) $(INCS) -c $<
+--- panel.c
++++ panel.c~
+@@ -588,7 +588,6 @@
+ printf(" --height <number>\n");
+ printf(" --SetDockType <true|false>\n");
+ printf(" --SetPartialStrut <true|false>\n");
+- printf(" --RoundCorners <true|false>\n");
+ printf(" --transparent <true|false>\n");
+ printf(" --alpha <number>\n");
+ printf(" --tint <int>\n");
diff --git a/extra/tree/PKGBUILD b/extra/tree/PKGBUILD
new file mode 100644
index 000000000..d221616d1
--- /dev/null
+++ b/extra/tree/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 64859 2010-01-22 13:47:51Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=tree
+pkgver=1.5.3
+pkgrel=1
+pkgdesc="A directory listing program displaying a depth indented list of files"
+arch=('i686' 'x86_64')
+url="http://mama.indstate.edu/users/ice/tree/"
+license=('GPL')
+depends=('glibc')
+source=(ftp://mama.indstate.edu/linux/tree/${pkgname}-${pkgver}.tgz)
+md5sums=('c07ce9065667a23f27aca4de8ecccb10')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make || return 1
+ make prefix="${pkgdir}/usr" MANDIR="${pkgdir}/usr/share/man/man1" install || return 1
+}
diff --git a/extra/truecrypt/PKGBUILD b/extra/truecrypt/PKGBUILD
new file mode 100644
index 000000000..4c7d585ed
--- /dev/null
+++ b/extra/truecrypt/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 105442 2011-01-08 22:25:31Z paul $
+# Maintainer: Paul Mattal <paul.archlinux.org>
+
+pkgname=truecrypt
+pkgver=7.0a
+pkgrel=2
+pkgdesc="Free open-source cross-platform disk encryption software"
+url="http://www.truecrypt.org/"
+arch=('i686' 'x86_64')
+license=('custom') # TrueCrypt License v2.6
+depends=('fuse>=2.8.0' 'wxgtk>=2.8.9' 'libsm' 'device-mapper')
+optdepends=('sudo: mounting encrypted volumes as nonroot users')
+conflicts=('truecrypt-utils')
+replaces=('truecrypt-utils')
+options=('force')
+# N.B. Truecrypt's web-based source download is incompatible with
+# makepkg. Source has been placed on ftp.archlinux.org instead
+source=('ftp://ftp.archlinux.org/other/tc/truecrypt-7.0a.tar.gz' \
+ 'ftp://ftp.archlinux.org/other/tc/pkcs-2.20.tar.gz' \
+ "${pkgname}.desktop")
+
+build() {
+ export PKCS11_INC="${srcdir}/pkcs-2.20"
+
+ cd ${srcdir}/${pkgname}-${pkgver}-source || return 1
+ make || return 1
+
+ # Install Binary
+ install -D -m755 Main/${pkgname} ${pkgdir}/usr/bin/${pkgname} || return 1
+
+ # Install Desktop file and Icon
+ install -D -m644 ${srcdir}/${pkgname}.desktop ${pkgdir}/usr/share/applications/${pkgname}.desktop || return 1
+ install -D -m644 Resources/Icons/TrueCrypt-48x48.xpm ${pkgdir}/usr/share/pixmaps/truecrypt.xpm || return 1
+
+ # Install License
+ install -D -m644 License.txt ${pkgdir}/usr/share/licenses/${pkgname}/License.txt || return 1
+}
+md5sums=('0a61616bc5c5ad90e876b4014c004ac9'
+ 'ce6a707b79411e82e8e558aa03e764b0'
+ '183b9bf04a943454d4e216130bcbac01')
diff --git a/extra/truecrypt/truecrypt.desktop b/extra/truecrypt/truecrypt.desktop
new file mode 100644
index 000000000..53626f29f
--- /dev/null
+++ b/extra/truecrypt/truecrypt.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Exec=truecrypt
+Icon=truecrypt
+Comment=On-the-fly encryption
+Terminal=false
+Name=TrueCrypt
+StartupNotify=true
+Categories=System;
diff --git a/extra/tsocks/PKGBUILD b/extra/tsocks/PKGBUILD
new file mode 100644
index 000000000..0c65f8794
--- /dev/null
+++ b/extra/tsocks/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 111127 2011-02-24 08:00:08Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=tsocks
+pkgver=1.8beta5
+pkgrel=4
+pkgdesc='Transparent SOCKS proxying library'
+arch=('i686' 'x86_64')
+url='http://tsocks.sourceforge.net/'
+license=('GPL')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('489f88c5df999ba21b27cdaa7836d9426d062aec')
+
+build() {
+ cd "${srcdir}/${pkgname}-1.8"
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --libdir=/usr/lib
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-1.8"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}"/etc
+ install -m644 tsocks.conf.{simple,complex}.example "${pkgdir}"/etc
+}
diff --git a/extra/tumbler/PKGBUILD b/extra/tumbler/PKGBUILD
new file mode 100644
index 000000000..4df33bad0
--- /dev/null
+++ b/extra/tumbler/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 114612 2011-03-14 15:06:46Z jgc $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Jan Jezek <honzin.jezek@gmail.com>
+
+pkgname=tumbler
+pkgver=0.1.21
+pkgrel=2
+pkgdesc="D-Bus service for applications to request thumbnails"
+url="http://git.xfce.org/xfce/tumbler/"
+license=('GPL2' 'LGPL')
+arch=('i686' 'x86_64')
+groups=('xfce4')
+depends=('poppler-glib' 'dbus-glib' 'ffmpegthumbnailer')
+makedepends=( 'intltool' 'gtk-doc')
+options=('!libtool')
+source=(http://archive.xfce.org/src/apps/${pkgname}/0.1/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2ef0d30750f95efe345de4655049d4f6')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --disable-static \
+ --disable-debug \
+ --enable-gtk-doc
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/tunepimp/PKGBUILD b/extra/tunepimp/PKGBUILD
new file mode 100644
index 000000000..a3fe45ed5
--- /dev/null
+++ b/extra/tunepimp/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 90474 2010-09-11 21:30:49Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=tunepimp
+pkgver=0.5.3
+pkgrel=8
+pkgdesc="A development library geared towards developers who wish to create MusicBrainz enabled tagging applications (aka libtunepimp)"
+url="http://www.musicbrainz.org/products/tunepimp/"
+arch=('i686' 'x86_64')
+license=('GPL')
+options=('!libtool' '!makeflags')
+makedepends=('python2')
+depends=('curl' 'musicbrainz' 'zlib' 'libmad' 'flac' 'libvorbis' 'readline' 'libmpcdec' 'libofa' 'taglib' 'libmp4v2')
+replaces=('trm')
+source=(ftp://ftp.musicbrainz.org/pub/musicbrainz/lib${pkgname}-${pkgver}.tar.gz
+ tunepimp-gcc43.patch
+ gcc4.4.patch
+ mp4v2-1.9.patch)
+md5sums=('09649f983acef679a548344ba7a9bb2f'
+ '40f48ad658958b909909b204bf9b1367'
+ 'b325bf8ed98bc008611ece0c418642f8'
+ '9f41d473a07e13808762545772fe3435')
+
+ build() {
+ cd ${srcdir}/lib${pkgname}-${pkgver}
+ sed -i -e 's,-ltermcap,-lncurses,' configure
+ sed -i -e 's:-lthr:-lpthread:g' lib/threads/posix/Makefile.in
+ patch -Np0 -i ${srcdir}/tunepimp-gcc43.patch
+ patch -Np1 -i ${srcdir}/gcc4.4.patch
+ patch -Np1 -i ${srcdir}/mp4v2-1.9.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/lib${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # install python bindings
+ cd python
+ python2 setup.py install --root=${pkgdir}
+
+ # fix includes for kdemultimedia
+ cd ${pkgdir}/usr/include
+ ln -s tunepimp-0.5 tunepimp
+}
diff --git a/extra/tunepimp/gcc4.4.patch b/extra/tunepimp/gcc4.4.patch
new file mode 100644
index 000000000..2c5e4f9db
--- /dev/null
+++ b/extra/tunepimp/gcc4.4.patch
@@ -0,0 +1,13 @@
+diff -ruN libtunepimp-0.5.3.orig/lib/fileio.cpp libtunepimp-0.5.3/lib/fileio.cpp
+--- libtunepimp-0.5.3.orig/lib/fileio.cpp 2009-05-28 11:49:43.000000000 -0700
++++ libtunepimp-0.5.3/lib/fileio.cpp 2009-05-28 11:59:05.000000000 -0700
+@@ -124,7 +124,8 @@
+
+ void tmktempname(const char *path, char *newPath, int newPathLen)
+ {
+- char *ptr, *temp;
++ const char *ptr;
++ char *temp;
+
+ temp = (char *)malloc(strlen(path) + 32);
+ ptr = strrchr(path, dirSepChar);
diff --git a/extra/tunepimp/mp4v2-1.9.patch b/extra/tunepimp/mp4v2-1.9.patch
new file mode 100644
index 000000000..ec3ec7261
--- /dev/null
+++ b/extra/tunepimp/mp4v2-1.9.patch
@@ -0,0 +1,30 @@
+diff -ur libtunepimp-0.5.3.orig/plugins/mp4/mp4.cpp libtunepimp-0.5.3/plugins/mp4/mp4.cpp
+--- libtunepimp-0.5.3.orig/plugins/mp4/mp4.cpp 2009-07-10 15:50:20.000000000 +0300
++++ libtunepimp-0.5.3/plugins/mp4/mp4.cpp 2009-07-10 15:51:18.000000000 +0300
+@@ -28,7 +28,7 @@
+ #include <string.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <mp4.h>
++#include <mp4v2/mp4v2.h>
+ #include "metadata.h"
+ #include "plugin.h"
+ #ifndef WIN32
+@@ -232,7 +232,7 @@
+
+ strcpy(mdata->fileFormat, fileName + strlen(fileName) - 3);
+
+- if (!MP4Close(mp4file))
++ MP4Close(mp4file);
+ return 0;
+
+ return 1;
+@@ -316,7 +316,7 @@
+ sprintf(temp, "%d", mdata->nonAlbum);
+ MP4SetMetadataFreeForm(mp4file, "MusicBrainz Non-Album", (u_int8_t *)temp, strlen(temp) + 1);
+
+- if (!MP4Close(mp4file))
++ MP4Close(mp4file);
+ return 0;
+
+ #ifndef WIN32
diff --git a/extra/tunepimp/tunepimp-gcc43.patch b/extra/tunepimp/tunepimp-gcc43.patch
new file mode 100644
index 000000000..e6d2a83e8
--- /dev/null
+++ b/extra/tunepimp/tunepimp-gcc43.patch
@@ -0,0 +1,145 @@
+diff -up lib/metadata.cpp.gcc43 lib/metadata.cpp
+--- lib/metadata.cpp.gcc43 2006-11-18 04:52:33.000000000 -0600
++++ lib/metadata.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -26,6 +26,7 @@
+ ----------------------------------------------------------------------------*/
+ #include <math.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include "metadata.h"
+ #include "../config.h"
+ using namespace std;
+diff -up lib/protocol.cpp.gcc43 lib/protocol.cpp
+--- lib/protocol.cpp.gcc43 2006-11-28 14:25:04.000000000 -0600
++++ lib/protocol.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -8,6 +8,7 @@
+ -------------------------------------------------------------------*/
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <string>
+ #include <map>
+ #include <expat.h>
+diff -up lib/utf8/utf8util.cpp.gcc43 lib/utf8/utf8util.cpp
+--- lib/utf8/utf8util.cpp.gcc43 2006-11-18 04:52:26.000000000 -0600
++++ lib/utf8/utf8util.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -26,6 +26,7 @@
+ ----------------------------------------------------------------------------*/
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include "utf8util.h"
+ #include "utf8.h"
+ #ifdef WIN32
+diff -up lib/tunepimp.cpp.gcc43 lib/tunepimp.cpp
+--- lib/tunepimp.cpp.gcc43 2006-11-18 04:52:33.000000000 -0600
++++ lib/tunepimp.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -30,7 +30,9 @@
+ #endif
+ #endif
+
++#include <string.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <map>
+ using namespace std;
+
+diff -up lib/c_wrapper.cpp.gcc43 lib/c_wrapper.cpp
+--- lib/c_wrapper.cpp.gcc43 2006-11-18 04:52:33.000000000 -0600
++++ lib/c_wrapper.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -24,6 +24,7 @@
+ $Id: tunepimp-0.5.3-gcc43.patch,v 1.1 2008/04/07 05:49:36 philantrop Exp $
+
+ ----------------------------------------------------------------------------*/
++#include <stdlib.h>
+ #include "tunepimp.h"
+ #include "mutex.h"
+ #include "tp_c.h"
+diff -up lib/readmeta.cpp.gcc43 lib/readmeta.cpp
+--- lib/readmeta.cpp.gcc43 2006-11-18 04:52:33.000000000 -0600
++++ lib/readmeta.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -31,6 +31,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #ifndef WIN32
+ #include <unistd.h>
+ #endif
+diff -up lib/fileio.cpp.gcc43 lib/fileio.cpp
+--- lib/fileio.cpp.gcc43 2006-11-18 04:52:33.000000000 -0600
++++ lib/fileio.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -27,6 +27,8 @@
+
+ #include <assert.h>
+ #include <errno.h>
++#include <stdlib.h>
++#include <string.h>
+ #include <string>
+ #ifndef WIN32
+ #include <unistd.h>
+diff -up plugins/mp4/mp4.cpp.gcc43 plugins/mp4/mp4.cpp
+--- plugins/mp4/mp4.cpp.gcc43 2006-11-18 04:51:08.000000000 -0600
++++ plugins/mp4/mp4.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -27,6 +27,7 @@
+
+ #include <string.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <mp4.h>
+ #include "metadata.h"
+ #include "plugin.h"
+diff -up plugins/mp3/id3_meta.cpp.gcc43 plugins/mp3/id3_meta.cpp
+--- plugins/mp3/id3_meta.cpp.gcc43 2006-11-18 04:51:07.000000000 -0600
++++ plugins/mp3/id3_meta.cpp 2008-02-21 20:41:35.000000000 -0600
+@@ -26,6 +26,7 @@
+ ----------------------------------------------------------------------------*/
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <time.h>
+ #include <ctype.h>
+ #include <musicbrainz/mb_c.h>
+diff -up plugins/mp3/id3_2_3_meta.cpp.gcc43 plugins/mp3/id3_2_3_meta.cpp
+--- plugins/mp3/id3_2_3_meta.cpp.gcc43 2006-11-18 04:51:07.000000000 -0600
++++ plugins/mp3/id3_2_3_meta.cpp 2008-02-21 20:41:59.000000000 -0600
+@@ -26,6 +26,7 @@
+ ----------------------------------------------------------------------------*/
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <assert.h>
+ #include <ctype.h>
+ #include <musicbrainz/mb_c.h>
+diff -up plugins/wma/wma.cpp.gcc43 plugins/wma/wma.cpp
+--- plugins/wma/wma.cpp.gcc43 2006-11-18 04:51:28.000000000 -0600
++++ plugins/wma/wma.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -27,6 +27,7 @@
+
+ #include <string.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <wmafile.h>
+ #include "metadata.h"
+ #include "plugin.h"
+diff -up plugins/wma/wmafile.cpp.gcc43 plugins/wma/wmafile.cpp
+--- plugins/wma/wmafile.cpp.gcc43 2006-11-18 04:51:28.000000000 -0600
++++ plugins/wma/wmafile.cpp 2008-02-21 20:39:10.000000000 -0600
+@@ -19,6 +19,7 @@
+ * USA *
+ ***************************************************************************/
+
++#include <string.h>
+ #include <tstring.h>
+ #include <wmafile.h>
+ #include <wmatag.h>
+diff -up include/tunepimp-0.5/metadata.h.gcc43 include/tunepimp-0.5/metadata.h
+--- include/tunepimp-0.5/metadata.h.gcc43 2006-11-18 04:52:08.000000000 -0600
++++ include/tunepimp-0.5/metadata.h 2008-02-21 20:39:10.000000000 -0600
+@@ -27,6 +27,7 @@
+ #ifndef __METADATA_H__
+ #define __METADATA_H__
+
++#include <string.h>
+ #include <string>
+ #include <cstdio> \ No newline at end of file
diff --git a/extra/tuxpuck/PKGBUILD b/extra/tuxpuck/PKGBUILD
new file mode 100644
index 000000000..bbd316b5d
--- /dev/null
+++ b/extra/tuxpuck/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 63695 2010-01-18 10:38:26Z andrea $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=tuxpuck
+pkgver=0.8.2
+pkgrel=4
+pkgdesc="Airhockey with tux"
+arch=('i686' 'x86_64')
+url="http://home.no.net/munsuun/tuxpuck/"
+license=('GPL2')
+depends=('libjpeg>=8' 'sdl' 'libpng>=1.4.0' 'libvorbis')
+makedepends=('freetype2')
+options=('!makeflags')
+source=(http://ftp.de.debian.org/debian/pool/main/t/${pkgname}/${pkgname}_$pkgver.orig.tar.gz)
+md5sums=('fc839abc2b1f3eafae397e1ed6487079')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ sed -i 's|usr/man|usr/share/man|' Makefile || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/twisted/4771.diff b/extra/twisted/4771.diff
new file mode 100644
index 000000000..4e36f2632
--- /dev/null
+++ b/extra/twisted/4771.diff
@@ -0,0 +1,22 @@
+Index: twisted/words/protocols/jabber/jstrports.py
+===================================================================
+--- twisted/words/protocols/jabber/jstrports.py (revision 30346)
++++ twisted/words/protocols/jabber/jstrports.py (working copy)
+@@ -6,7 +6,7 @@
+ """ A temporary placeholder for client-capable strports, until we
+ sufficient use cases get identified """
+
+-from twisted.application import strports
++from twisted.internet.endpoints import _parse
+
+ def _parseTCPSSL(factory, domain, port):
+ """ For the moment, parse TCP or SSL connections the same """
+@@ -22,7 +22,7 @@
+
+
+ def parse(description, factory):
+- args, kw = strports._parse(description)
++ args, kw = _parse(description)
+ return (args[0].upper(),) + _funcs[args[0]](factory, *args[1:], **kw)
+
+ def client(description, factory):
diff --git a/extra/twisted/PKGBUILD b/extra/twisted/PKGBUILD
new file mode 100644
index 000000000..14991ddb8
--- /dev/null
+++ b/extra/twisted/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 107380 2011-01-24 14:03:19Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Juergen Hoetzel <juergen@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=twisted
+pkgver=10.2.0
+pkgrel=3
+pkgdesc="Asynchronous networking framework written in Python."
+arch=('i686' 'x86_64')
+url="http://twistedmatrix.com/"
+license=('MIT')
+depends=('python2' 'pycrypto' 'zope-interface')
+optdepends=('python2-pyopenssl'
+ 'python-soappy:for twisted.web.soap')
+install=twisted.install
+source=(http://tmrc.mit.edu/mirror/twisted/Twisted/${pkgver%.*}/Twisted-${pkgver}.tar.bz2
+ 4771.diff)
+md5sums=('73da62c793269eade8121da336b01ba5'
+ '087ed6149abca43919dcece24ba222ab')
+build() {
+ cd "${srcdir}/Twisted-${pkgver}"
+ #http://twistedmatrix.com/trac/ticket/4771
+ patch -Np0 -i ${srcdir}/4771.diff
+
+ python2 setup.py install --prefix=/usr --root=${pkgdir} --optimize=1
+ install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.7/site-packages/twisted/trial/test/scripttest.py
+ sed -e 's|#!/usr/bin/env python|#!/usr/bin/env python2|' \
+ -i ${pkgdir}/usr/lib/python2.7/site-packages/twisted/mail/test/pop3testserver.py
+}
diff --git a/extra/twisted/twisted.install b/extra/twisted/twisted.install
new file mode 100644
index 000000000..8e93ffd3c
--- /dev/null
+++ b/extra/twisted/twisted.install
@@ -0,0 +1,11 @@
+post_install() {
+ python2 -c 'from twisted.plugin import IPlugin, getPlugins; list(getPlugins(IPlugin))' >/dev/null 2>&1 || return 1
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ find /usr/lib/python2.7/site-packages/twisted/plugins -name dropin.cache | xargs -r rm -f
+}
diff --git a/extra/udisks/PKGBUILD b/extra/udisks/PKGBUILD
new file mode 100644
index 000000000..ea7e1bc7a
--- /dev/null
+++ b/extra/udisks/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 106693 2011-01-17 23:18:27Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=udisks
+pkgver=1.0.2
+pkgrel=2
+pkgdesc="Disk Management Service"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/udisks"
+license=('GPL')
+depends=('udev>=164' 'sg3_utils>=1.29' 'glib2>=2.26.1' 'dbus-glib>=0.92' 'polkit>=0.98' 'parted>=2.3' 'device-mapper>=2.02.77' 'libatasmart>=0.17' 'lsof' 'lvm2>=2.02.77' 'eject')
+makedepends=('intltool' 'docbook-xsl')
+options=(!libtool)
+replaces=('devicekit-disks')
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+sha256sums=('7dc1a150a6a31b2727144603fa5a8f9852696fc5bdc4a11917b9b0f1b8e3dcf1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/udisks --disable-static
+ #fix location for bash_completion helper
+ sed -i -e 's|profile.d|bash_completion.d|' tools/Makefile
+
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/uim/PKGBUILD b/extra/uim/PKGBUILD
new file mode 100644
index 000000000..fb26f8a91
--- /dev/null
+++ b/extra/uim/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 109572 2011-02-10 20:32:59Z bisson $
+# Maintainer: damir <damir@archlinux.org>
+
+pkgname=uim
+pkgver=1.6.1
+pkgrel=2
+pkgdesc='Multilingual input method library'
+arch=('i686' 'x86_64')
+url='http://code.google.com/p/uim/'
+license=('custom')
+depends=('gtk2' 'libxft' 'libedit' 'anthy' 'm17n-lib')
+makedepends=('intltool' 'gettext' 'gnome-panel')
+optdepends=('gnome-panel: gnome applet indicator')
+options=('!libtool')
+source=("http://uim.googlecode.com/files/${pkgname}-${pkgver}.tar.bz2"
+ 'home.patch')
+sha1sums=('412bb2df6041185084e2f64fb73357389bf992b5'
+ 'dbcf90f3ea246c5723d715e0935072baa9364cd2')
+
+install=install
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # UIM's Makefile needs to write in $HOME
+ patch -p0 < ../home.patch; export HOME="`pwd`"
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib/uim \
+ --with-anthy-utf8
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/uim/home.patch b/extra/uim/home.patch
new file mode 100644
index 000000000..5d171529d
--- /dev/null
+++ b/extra/uim/home.patch
@@ -0,0 +1,24 @@
+diff -aur uim/uim-helper.c uim/uim-helper.c
+--- uim/uim-helper.c 2010-08-22 19:23:37.646666698 +0200
++++ uim/uim-helper.c 2010-08-22 19:26:57.676666781 +0200
+@@ -178,7 +178,7 @@
+ goto path_error;
+ }
+
+- if (strlcpy(helper_path, pw->pw_dir, len) >= (size_t)len) {
++ if (strlcpy(helper_path, getenv("HOME"), len) >= (size_t)len) {
+ endpwent();
+ goto path_error;
+ }
+diff -aur uim/uim-posix.c uim/uim-posix.c
+--- uim/uim-posix.c 2010-08-22 19:23:37.650000031 +0200
++++ uim/uim-posix.c 2010-08-22 19:26:40.096666322 +0200
+@@ -100,7 +100,7 @@
+ home[0] = '\0';
+ return UIM_FALSE;
+ }
+- if (strlcpy(home, pw->pw_dir, len) >= (size_t)len) {
++ if (strlcpy(home, getenv("HOME"), len) >= (size_t)len) {
+ home[0] = '\0';
+ endpwent();
+ return UIM_FALSE;
diff --git a/extra/uim/install b/extra/uim/install
new file mode 100644
index 000000000..ffed34d01
--- /dev/null
+++ b/extra/uim/install
@@ -0,0 +1,13 @@
+post_install() {
+ echo -n "updating gtk.immodules... "
+ usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+ echo "done."
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/umfpack/PKGBUILD b/extra/umfpack/PKGBUILD
new file mode 100644
index 000000000..b37f17f42
--- /dev/null
+++ b/extra/umfpack/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 16363 2010-04-29 09:59:57Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: iKevin <kellwood at ameritech dot net>
+
+pkgname=umfpack
+pkgver=5.5.0
+_ufcfgver=3.5.0
+_amdver=2.2.1
+_cholmodver=1.7.1
+_colamdver=2.7.2
+_ccolamdver=2.7.2
+pkgrel=1
+pkgdesc="A multifrontal direct solver for unsymmetric linear systems (AMD/${_amdver}, UFConfig/${_ufcgfgver})"
+arch=('i686' 'x86_64')
+url="http://www.cise.ufl.edu/research/sparse/umfpack"
+license=('LGPL')
+makedepends=('lapack' 'blas')
+noextract=(CHOLMOD-${_cholmodver}.tar.gz
+ COLAMD-${_colamdver}.tar.gz
+ CCOLAMD-${_ccolamdver}.tar.gz)
+source=(http://www.cise.ufl.edu/research/sparse/umfpack/UMFPACK-$pkgver.tar.gz
+ http://www.cise.ufl.edu/research/sparse/UFconfig/UFconfig-${_ufcfgver}.tar.gz
+ http://www.cise.ufl.edu/research/sparse/amd/AMD-${_amdver}.tar.gz
+ http://www.cise.ufl.edu/research/sparse/cholmod/CHOLMOD-${_cholmodver}.tar.gz
+ http://www.cise.ufl.edu/research/sparse/colamd/COLAMD-${_colamdver}.tar.gz
+ http://www.cise.ufl.edu/research/sparse/ccolamd/CCOLAMD-${_ccolamdver}.tar.gz
+ UFconfig.mk)
+md5sums=('b3490d4f529fbcf4f415e60aa2680a15'
+ '4335ee565feec67e8ba9fc0f6a5e2504'
+ '25548053958c1c5810b17d077b8f37b9'
+ '9032c5724bee43ccd8f4546338a29fac'
+ '2b4e43c8ef33dacfade6d1ec49542ac1'
+ '79d813d5b54951060fc264172bfb5ca6'
+ 'ce9731da58d58923a3cdc3fbef724c4e')
+
+build() {
+ cd "$srcdir/UMFPACK"
+ cp -rf "$srcdir/UFconfig/xerbla" .
+ cp -L ../UFconfig.mk $startdir/src/UFconfig
+ [ $CARCH == "x86_64" ] && sed -i 's#CFLAGS = -O3 -fexceptions#CFLAGS = -O3 -fexceptions -fPIC#' $srcdir/UFconfig/UFconfig.mk
+ make library || return 1
+ install -d "$pkgdir/usr/lib" "$pkgdir/usr/include"
+
+ install -D -m644 Lib/libumfpack.a "$pkgdir/usr/lib/libumfpack.a"
+ cp $startdir/src/UMFPACK/Include/*.h $startdir/pkg/usr/include
+
+ install -D -m644 "$srcdir/AMD/Lib/libamd.a" "$pkgdir/usr/lib/libamd.a"
+ cp $startdir/src/AMD/Include/*.h $startdir/pkg/usr/include
+
+ install -m644 "$srcdir/UFconfig/UFconfig.h" "$pkgdir/usr/include" || return 1
+
+ # Fix permissions
+ cd $startdir/pkg/usr/include
+ chmod oug+r *
+ cd $startdir/pkg/usr/lib
+ chmod oug+r *
+}
diff --git a/extra/umfpack/UFconfig.mk b/extra/umfpack/UFconfig.mk
new file mode 100644
index 000000000..209be5bd0
--- /dev/null
+++ b/extra/umfpack/UFconfig.mk
@@ -0,0 +1,351 @@
+#===============================================================================
+# UFconfig.mk: common configuration file for the SuiteSparse
+#===============================================================================
+
+# This file contains all configuration settings for all packages authored or
+# co-authored by Tim Davis at the University of Florida:
+#
+# Package Version Description
+# ------- ------- -----------
+# AMD 1.2 or later approximate minimum degree ordering
+# COLAMD 2.4 or later column approximate minimum degree ordering
+# CCOLAMD 1.0 or later constrained column approximate minimum degree ordering
+# CAMD any constrained approximate minimum degree ordering
+# UMFPACK 4.5 or later sparse LU factorization, with the BLAS
+# CHOLMOD any sparse Cholesky factorization, update/downdate
+# KLU 0.8 or later sparse LU factorization, BLAS-free
+# BTF 0.8 or later permutation to block triangular form
+# LDL 1.2 or later concise sparse LDL'
+# LPDASA any linear program solve (dual active set algorithm)
+# CXSparse any extended version of CSparse (int/long, real/complex)
+# SuiteSparseQR any sparse QR factorization
+#
+# The UFconfig directory and the above packages should all appear in a single
+# directory, in order for the Makefile's within each package to find this file.
+#
+# To enable an option of the form "# OPTION = ...", edit this file and
+# delete the "#" in the first column of the option you wish to use.
+
+#------------------------------------------------------------------------------
+# Generic configuration
+#------------------------------------------------------------------------------
+
+# C compiler and compiler flags: These will normally not give you optimal
+# performance. You should select the optimization parameters that are best
+# for your system. On Linux, use "CFLAGS = -O3 -fexceptions" for example.
+CC = cc
+ CFLAGS = -O (for example; see below for details)
+
+# C++ compiler (also uses CFLAGS)
+CPLUSPLUS = g++
+
+# ranlib, and ar, for generating libraries
+RANLIB = ranlib
+AR = ar cr
+
+# delete and rename a file
+RM = rm -f
+MV = mv -f
+
+# Fortran compiler (not normally required)
+F77 = gfortran
+F77FLAGS = -O3
+F77LIB =
+
+# C and Fortran libraries
+LIB = -lm
+
+# For compiling MATLAB mexFunctions (MATLAB 7.5 or later)
+MEX = mex -O -largeArrayDims -lmwlapack -lmwblas
+
+# For compiling MATLAB mexFunctions (MATLAB 7.3 and 7.4)
+# MEX = mex -O -largeArrayDims -lmwlapack
+
+# For MATLAB 7.2 or earlier, you must use one of these options:
+# MEX = mex -O -lmwlapack
+# MEX = mex -O
+
+# Which version of MAKE you are using (default is "make")
+# MAKE = make
+# MAKE = gmake
+
+#------------------------------------------------------------------------------
+# BLAS and LAPACK configuration:
+#------------------------------------------------------------------------------
+
+# UMFPACK and CHOLMOD both require the BLAS. CHOLMOD also requires LAPACK.
+# See Kazushige Goto's BLAS at http://www.cs.utexas.edu/users/flame/goto/ or
+# http://www.tacc.utexas.edu/~kgoto/ for the best BLAS to use with CHOLMOD.
+# LAPACK is at http://www.netlib.org/lapack/ . You can use the standard
+# Fortran LAPACK along with Goto's BLAS to obtain very good performance.
+# CHOLMOD gets a peak numeric factorization rate of 3.6 Gflops on a 3.2 GHz
+# Pentium 4 (512K cache, 4GB main memory) with the Goto BLAS, and 6 Gflops
+# on a 2.5Ghz dual-core AMD Opteron.
+
+# These settings will probably not work, since there is no fixed convention for
+# naming the BLAS and LAPACK library (*.a or *.so) files.
+
+# Using the Goto BLAS:
+# BLAS = -lgoto -lgfortran -lgfortranbegin -lg2c
+
+# This is probably slow ... it might connect to the Standard Reference BLAS:
+BLAS = -Lusr/lib -lblas -lgfortran -lgfortranbegin
+LAPACK = -llapack
+
+# Using non-optimized versions:
+# BLAS = -lblas_plain -lgfortran -lgfortranbegin -lg2c
+# LAPACK = -llapack_plain
+
+# The BLAS might not contain xerbla, an error-handling routine for LAPACK and
+# the BLAS. Also, the standard xerbla requires the Fortran I/O library, and
+# stops the application program if an error occurs. A C version of xerbla
+# distributed with this software (UFconfig/xerbla/libcerbla.a) includes a
+# Fortran-callable xerbla routine that prints nothing and does not stop the
+# application program. This is optional.
+# XERBLA = ../../UFconfig/xerbla/libcerbla.a
+
+# If you wish to use the XERBLA in LAPACK and/or the BLAS instead,
+# use this option:
+XERBLA =
+
+# If you wish to use the Fortran UFconfig/xerbla/xerbla.f instead, use this:
+# XERBLA = ../../UFconfig/xerbla/libxerbla.a
+
+#------------------------------------------------------------------------------
+# METIS, optionally used by CHOLMOD
+#------------------------------------------------------------------------------
+
+# If you do not have METIS, or do not wish to use it in CHOLMOD, you must
+# compile CHOLMOD with the -DNPARTITION flag. You must also use the
+# "METIS =" option, below.
+
+# The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
+# You may wish to use an absolute path. METIS is optional. Compile
+# CHOLMOD with -DNPARTITION if you do not wish to use METIS.
+METIS_PATH = ../../metis-4.0
+METIS = ../../metis-4.0/libmetis.a
+
+# If you use CHOLMOD_CONFIG = -DNPARTITION then you must use the following
+# options:
+# METIS_PATH =
+# METIS =
+
+#------------------------------------------------------------------------------
+# UMFPACK configuration:
+#------------------------------------------------------------------------------
+
+# Configuration flags for UMFPACK. See UMFPACK/Source/umf_config.h for details.
+#
+# -DNBLAS do not use the BLAS. UMFPACK will be very slow.
+# -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by
+# LAPACK and the BLAS (defaults to 'int')
+# -DNSUNPERF do not use the Sun Perf. Library (default is use it on Solaris)
+# -DNPOSIX do not use POSIX routines sysconf and times.
+# -DGETRUSAGE use getrusage
+# -DNO_TIMER do not use any timing routines
+# -DNRECIPROCAL do not multiply by the reciprocal
+# -DNO_DIVIDE_BY_ZERO do not divide by zero
+
+UMFPACK_CONFIG =
+
+#------------------------------------------------------------------------------
+# CHOLMOD configuration
+#------------------------------------------------------------------------------
+
+# CHOLMOD Library Modules, which appear in libcholmod.a:
+# Core requires: none
+# Check requires: Core
+# Cholesky requires: Core, AMD, COLAMD. optional: Partition, Supernodal
+# MatrixOps requires: Core
+# Modify requires: Core
+# Partition requires: Core, CCOLAMD, METIS. optional: Cholesky
+# Supernodal requires: Core, BLAS, LAPACK
+#
+# CHOLMOD test/demo Modules (all are GNU GPL, do not appear in libcholmod.a):
+# Tcov requires: Core, Check, Cholesky, MatrixOps, Modify, Supernodal
+# optional: Partition
+# Valgrind same as Tcov
+# Demo requires: Core, Check, Cholesky, MatrixOps, Supernodal
+# optional: Partition
+#
+# Configuration flags:
+# -DNCHECK do not include the Check module. License GNU LGPL
+# -DNCHOLESKY do not include the Cholesky module. License GNU LGPL
+# -DNPARTITION do not include the Partition module. License GNU LGPL
+# also do not include METIS.
+# -DNGPL do not include any GNU GPL Modules in the CHOLMOD library:
+# -DNMATRIXOPS do not include the MatrixOps module. License GNU GPL
+# -DNMODIFY do not include the Modify module. License GNU GPL
+# -DNSUPERNODAL do not include the Supernodal module. License GNU GPL
+#
+# -DNPRINT do not print anything.
+# -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by
+# LAPACK and the BLAS (defaults to 'int')
+# -DNSUNPERF for Solaris only. If defined, do not use the Sun
+# Performance Library
+
+CHOLMOD_CONFIG =
+
+#------------------------------------------------------------------------------
+# SuiteSparseQR configuration:
+#------------------------------------------------------------------------------
+
+# The SuiteSparseQR library can be compiled with the following options:
+#
+# -DNPARTITION do not include the CHOLMOD partition module
+# -DNEXPERT do not include the functions in SuiteSparseQR_expert.cpp
+# -DTIMING enable timing and flop counts
+# -DHAVE_TBB enable the use of Intel's Threading Building Blocks (TBB)
+
+# default, without timing, without TBB:
+SPQR_CONFIG =
+# with timing and TBB:
+# SPQR_CONFIG = -DTIMING -DHAVE_TBB
+# with timing
+# SPQR_CONFIG = -DTIMING
+
+# with TBB, you must select this:
+# TBB = -ltbb
+# without TBB:
+TBB =
+
+# with timing, you must include the timing library:
+# RTLIB = -lrt
+# without timing
+RTLIB =
+
+#------------------------------------------------------------------------------
+# Linux
+#------------------------------------------------------------------------------
+
+# Using default compilers:
+# CC = gcc
+CFLAGS = -O3 -fexceptions -DNCHOLMOD
+
+# alternatives:
+# CFLAGS = -g -fexceptions \
+ -Wall -W -Wshadow -Wmissing-prototypes -Wstrict-prototypes \
+ -Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi
+# CFLAGS = -O3 -fexceptions \
+ -Wall -W -Werror -Wshadow -Wmissing-prototypes -Wstrict-prototypes \
+ -Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi
+# CFLAGS = -O3 -fexceptions -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
+# CFLAGS = -O3
+# CFLAGS = -O3 -g -fexceptions
+
+# consider:
+# -fforce-addr -fmove-all-movables -freduce-all-givs -ftsp-ordering
+# -frename-registers -ffast-math -funroll-loops
+
+# Using the Goto BLAS:
+# BLAS = -lgoto -lfrtbegin -lg2c $(XERBLA) -lpthread
+
+# Using Intel's icc and ifort compilers:
+# (does not work for mexFunctions unless you add a mexopts.sh file)
+# F77 = ifort
+# CC = icc
+# CFLAGS = -O3 -xN -vec_report=0
+# CFLAGS = -g
+# old (broken): CFLAGS = -ansi -O3 -ip -tpp7 -xW -vec_report0
+
+# 64bit:
+# F77FLAGS = -O -m64
+# CFLAGS = -O3 -fexceptions -m64
+# BLAS = -lgoto64 -lfrtbegin -lg2c -lpthread $(XERBLA)
+# LAPACK = -llapack64
+
+
+# SUSE Linux 10.1, AMD Opteron, with GOTO Blas
+# F77 = gfortran
+# BLAS = -lgoto_opteron64 -lgfortran
+
+# SUSE Linux 10.1, Intel Pentium, with GOTO Blas
+# F77 = gfortran
+# BLAS = -lgoto -lgfortran
+
+#------------------------------------------------------------------------------
+# Solaris
+#------------------------------------------------------------------------------
+
+# 32-bit
+# CFLAGS = -KPIC -dalign -xc99=%none -Xc -xlibmieee -xO5 -xlibmil -m32
+
+# 64-bit
+# CFLAGS = -fast -KPIC -xc99=%none -xlibmieee -xlibmil -m64 -Xc
+
+# FFLAGS = -fast -KPIC -dalign -xlibmil -m64
+
+# The Sun Performance Library includes both LAPACK and the BLAS:
+# BLAS = -xlic_lib=sunperf
+# LAPACK =
+
+
+#------------------------------------------------------------------------------
+# Compaq Alpha
+#------------------------------------------------------------------------------
+
+# 64-bit mode only
+# CFLAGS = -O2 -std1
+# BLAS = -ldxml
+# LAPACK =
+
+#------------------------------------------------------------------------------
+# Macintosh
+#------------------------------------------------------------------------------
+
+# CC = gcc
+# CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
+# LIB = -lstdc++
+# BLAS = -framework Accelerate
+# LAPACK = -framework Accelerate
+
+#------------------------------------------------------------------------------
+# IBM RS 6000
+#------------------------------------------------------------------------------
+
+# BLAS = -lessl
+# LAPACK =
+
+# 32-bit mode:
+# CFLAGS = -O4 -qipa -qmaxmem=16384 -qproto
+# F77FLAGS = -O4 -qipa -qmaxmem=16384
+
+# 64-bit mode:
+# CFLAGS = -O4 -qipa -qmaxmem=16384 -q64 -qproto
+# F77FLAGS = -O4 -qipa -qmaxmem=16384 -q64
+# AR = ar -X64
+
+#------------------------------------------------------------------------------
+# SGI IRIX
+#------------------------------------------------------------------------------
+
+# BLAS = -lscsl
+# LAPACK =
+
+# 32-bit mode
+# CFLAGS = -O
+
+# 64-bit mode (32 bit int's and 64-bit long's):
+# CFLAGS = -64
+# F77FLAGS = -64
+
+# SGI doesn't have ranlib
+# RANLIB = echo
+
+#------------------------------------------------------------------------------
+# AMD Opteron (64 bit)
+#------------------------------------------------------------------------------
+
+# BLAS = -lgoto_opteron64 -lg2c
+# LAPACK = -llapack_opteron64
+
+# SUSE Linux 10.1, AMD Opteron
+# F77 = gfortran
+# BLAS = -lgoto_opteron64 -lgfortran
+# LAPACK = -llapack_opteron64
+
+#------------------------------------------------------------------------------
+# remove object files and profile output
+#------------------------------------------------------------------------------
+
+CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.tcov *.gcov gmon.out *.bak *.d *.gcda *.gcno
diff --git a/extra/unison/PKGBUILD b/extra/unison/PKGBUILD
new file mode 100644
index 000000000..021950ef5
--- /dev/null
+++ b/extra/unison/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 110780 2011-02-22 07:48:24Z tpowa $
+#Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=unison
+pkgver=2.40.61
+pkgrel=1
+pkgdesc="Unison is a file-synchronization tool"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.cis.upenn.edu/~bcpierce/unison"
+depends=('glibc')
+makedepends=('ocaml' 'lablgtk2' 'imagemagick')
+source=(http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/$pkgname-$pkgver.tar.gz
+ $pkgname.desktop)
+options=(!makeflags)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+ CFLAGS=""
+ make clean
+ make mkProjectInfo
+ make UISTYLE=text DEBUGGING=false THREADS=true
+ mkdir -p $startdir/pkg/usr/bin
+ install -Dm755 unison $startdir/pkg/usr/bin/unison
+
+ # clean the builddir and rebuild with gtk support
+ # broken at the moment!
+ # make clean
+ # make mkProjectInfo
+ # make UISTYLE=gtk DEBUGGING=false THREADS=true
+ # install -Dm755 unison $startdir/pkg/usr/bin/unison-gtk
+ # clean the builddir and rebuild with gtk2 support
+ make clean
+ make mkProjectInfo
+ make UISTYLE=gtk2 DEBUGGING=false THREADS=true
+ install -Dm755 unison $startdir/pkg/usr/bin/unison-gtk2
+ # install a .desktop file; create a compliant icon from ico file and install the png
+ install -Dm644 ../$pkgname.desktop $startdir/pkg/usr/share/applications/$pkgname.desktop
+ convert win32rc/U.ico unison.png
+ install -Dm644 ${pkgname}-1.png $startdir/pkg/usr/share/pixmaps/$pkgname.png
+ # make symlink for .desktop file
+ cd $startdir/pkg//usr/bin
+ ln -s unison-gtk2 unison-x11
+}
+md5sums=('9d48796b115704321c6a4a50dd0928ee'
+ '2daecba7705455a8e4b769e48b059872')
diff --git a/extra/unison/unison-ssh-ocaml.patch b/extra/unison/unison-ssh-ocaml.patch
new file mode 100644
index 000000000..1b9c66c7f
--- /dev/null
+++ b/extra/unison/unison-ssh-ocaml.patch
@@ -0,0 +1,25 @@
+Index: src/terminal.ml
+===================================================================
+--- src/terminal.ml (révision 463)
++++ src/terminal.ml (copie de travail)
+@@ -191,7 +191,6 @@
+ exit 127
+ end
+ | childPid ->
+- Unix.close slaveFd;
+ (Some masterFd, childPid)
+ end
+
+Index: src/update.mli
+===================================================================
+--- src/update.mli (révision 463)
++++ src/update.mli (copie de travail)
+@@ -1,7 +1,7 @@
+ (* Unison file synchronizer: src/update.mli *)
+ (* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+
+-module NameMap : Map.S with type key = Name.t
++module NameMap : MyMap.S with type key = Name.t
+
+ type archive =
+ ArchiveDir of Props.t * archive NameMap.t
diff --git a/extra/unison/unison.desktop b/extra/unison/unison.desktop
new file mode 100644
index 000000000..3a7e1d762
--- /dev/null
+++ b/extra/unison/unison.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=unison
+Name[de]=unison
+Comment=File synchronisation tool for X11
+Comment[de]=Datei Abgleicher und Synchronisierer
+TryExec=unison-x11
+Exec=unison-x11
+Terminal=false
+Type=Application
+Categories=GTK;Application;Network;
+Icon=unison.png
+StartupNotify=true
diff --git a/extra/unison/unison.install b/extra/unison/unison.install
new file mode 100644
index 000000000..a3790ab7d
--- /dev/null
+++ b/extra/unison/unison.install
@@ -0,0 +1,28 @@
+# arg 1: the new package version
+post_install() {
+ echo "NOTE:"
+ echo " For gtk1 frontend please add 'gtk' package."
+ echo " For gtk2 frontend please add 'gtk2' package."
+ echo " Default X11 frontend is set to gtk2. "
+ echo ""
+ echo " If you want to default to gtk1 unison:"
+ echo " 'rm /usr/bin/unison-x11'"
+ echo " 'ln -s /usr/bin/unison-gtk /usr/bin/unison-x11'"
+ echo ""
+}
+
+# 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() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
diff --git a/extra/unixodbc/PKGBUILD b/extra/unixodbc/PKGBUILD
new file mode 100644
index 000000000..fbb4bdc26
--- /dev/null
+++ b/extra/unixodbc/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 78429 2010-04-23 18:51:55Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=unixodbc
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="ODBC is an open specification for providing application developers with a predictable API with which to access Data Sources"
+arch=(i686 x86_64)
+license=('GPL2' 'LGPL2.1')
+url="http://www.unixodbc.org/"
+backup=('etc/odbc.ini' 'etc/odbcinst.ini')
+depends=('readline>=6.0' 'libtool')
+options=('!libtool')
+source=(http://www.unixodbc.org/unixODBC-$pkgver.tar.gz)
+md5sums=('f2ad22cbdffe836c58987ed2332c2e99')
+
+build() {
+ cd ${srcdir}/unixODBC-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/unixODBC-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/unzip/PKGBUILD b/extra/unzip/PKGBUILD
new file mode 100644
index 000000000..77608dd01
--- /dev/null
+++ b/extra/unzip/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 70615 2010-02-27 15:46:11Z thayer $
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Contributor: Robson Peixoto
+
+pkgname=unzip
+pkgver=6.0
+pkgrel=5
+pkgdesc="Unpacks .zip archives such as those made by PKZIP"
+arch=('i686' 'x86_64')
+url="http://www.info-zip.org/"
+license=('custom')
+depends=('bzip2' 'bash')
+source=('http://downloads.sourceforge.net/infozip/unzip60.tar.gz')
+md5sums=('62b490407489521db863b523a7f86375')
+
+build() {
+ cd ${srcdir}/${pkgname}${pkgver/./}
+
+ # set CFLAGS -- from Debian
+ export CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DACORN_FTYPE_NFS \
+ -DWILD_STOP_AT_DIR -DLARGE_FILE_SUPPORT -DUNICODE_SUPPORT \
+ -DUNICODE_WCHAR -DUTF8_MAYBE_NATIVE -DNO_LCHMOD -DDATE_FORMAT=DF_YMD \
+ -DUSE_BZIP2 -DNATIVE"
+
+ # make -- from Debian
+ make -f unix/Makefile LOCAL_UNZIP="$CFLAGS" prefix=/usr LF2="" \
+ D_USE_BZ2=-DUSE_BZIP2 L_BZ2=-lbz2 unzips || return 1
+
+ # install -- from Debian
+ make -f unix/Makefile prefix=${pkgdir}/usr INSTALL_PROGRAM="install" install || return 1
+
+ # install the license file
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/unzip/LICENSE || return 1
+
+ # fix manpage location
+ mkdir -p ${pkgdir}/usr/share || return 1
+ mv ${pkgdir}/usr/man ${pkgdir}/usr/share/ || return 1
+}
+
diff --git a/extra/upower/PKGBUILD b/extra/upower/PKGBUILD
new file mode 100644
index 000000000..431d98e13
--- /dev/null
+++ b/extra/upower/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 107049 2011-01-20 21:06:41Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=upower
+pkgver=0.9.8
+pkgrel=2
+pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics"
+arch=('i686' 'x86_64')
+url="http://upower.freedesktop.org"
+license=('GPL')
+depends=('udev>=165' 'libusb>=1.0.8' 'polkit>=0.99' 'pm-utils' 'dbus-glib>=0.92')
+makedepends=('pkg-config' 'intltool' 'docbook-xsl')
+replaces=('devicekit-power')
+options=('!libtool')
+source=($url/releases/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7afaec3cb10ebbc898308c7abd250c27fd58e10379a42e80444d7a4b32f2eb91')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/upower --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/usbmuxd/PKGBUILD b/extra/usbmuxd/PKGBUILD
new file mode 100644
index 000000000..d579eef00
--- /dev/null
+++ b/extra/usbmuxd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 101289 2010-11-28 18:01:54Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=usbmuxd
+pkgver=1.0.6
+pkgrel=2
+pkgdesc="USB Multiplex Daemon"
+url="http://marcansoft.com/blog/iphonelinux/usbmuxd/"
+arch=('i686' 'x86_64')
+license=('GPL2' 'GPL3' 'LGPL2.1')
+depends=('libusb>=1.0.8')
+makedepends=('cmake')
+install=usbmuxd.install
+source=(http://marcansoft.com/uploads/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ usbmuxd-udevuser.patch)
+md5sums=('c8909cfd9253d8d1a5e26f2ff7e5908b'
+ '299349dcacd60af9dceecec1ceebce06')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/usbmuxd-udevuser.patch"
+ mkdir build
+ cd build
+ cmake ../ -DCMAKE_INSTALL_PREFIX:PATH=/usr -DLIB_SUFFIX=""
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/usbmuxd/usbmuxd-udevuser.patch b/extra/usbmuxd/usbmuxd-udevuser.patch
new file mode 100644
index 000000000..af091e64d
--- /dev/null
+++ b/extra/usbmuxd/usbmuxd-udevuser.patch
@@ -0,0 +1,11 @@
+--- usbmuxd-1.0.6/udev/85-usbmuxd.rules.in.orig 2010-11-09 04:23:44.873368717 -0800
++++ usbmuxd-1.0.6/udev/85-usbmuxd.rules.in 2010-11-09 04:24:13.986655838 -0800
+@@ -1,7 +1,7 @@
+ # usbmuxd (iPhone "Apple Mobile Device" MUXer listening on /var/run/usbmuxd)
+
+ # Forces iPhone 1.0, 3G, 3GS, iPodTouch 1/2 and iPad to USB configuration 3 and run usbmuxd
+-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="129[0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux"
++ACTION=="add", SUBSYSTEM=="usb", OWNER="usbmux", ATTR{idVendor}=="05ac", ATTR{idProduct}=="129[0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux"
+
+ # Exit usbmuxd when the last device is removed
+ ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/129[0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -x"
diff --git a/extra/usbmuxd/usbmuxd.install b/extra/usbmuxd/usbmuxd.install
new file mode 100644
index 000000000..1a4859674
--- /dev/null
+++ b/extra/usbmuxd/usbmuxd.install
@@ -0,0 +1,19 @@
+post_install() {
+ groupadd -g 140 usbmux &>/dev/null
+ useradd -c 'usbmux user' -u 140 -g usbmux -d / -s /sbin/nologin usbmux &>/dev/null
+ passwd -l usbmux &>/dev/null
+}
+
+post_upgrade() {
+ getent group usbmux >/dev/null 2>&1 || groupadd -g 140 usbmux &>/dev/null
+ getent passwd usbmux >/dev/null 2>&1 || useradd -c 'usbmux user' -u 140 -g usbmux -d / -s /sbin/nologin usbmux &>/dev/null
+}
+
+post_remove() {
+ if getent passwd usbmux >/dev/null 2>&1; then
+ userdel usbmux
+ fi
+ if getent group usbmux >/dev/null 2>&1; then
+ groupdel usbmux
+ fi
+}
diff --git a/extra/usbview/PKGBUILD b/extra/usbview/PKGBUILD
new file mode 100644
index 000000000..84dc43232
--- /dev/null
+++ b/extra/usbview/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 68125 2010-02-10 20:30:36Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=usbview
+pkgver=1.1
+pkgrel=2
+pkgdesc="USB Viewer"
+arch=('i686' 'x86_64')
+url="http://www.kroah.com/linux-usb/"
+license=('GPL')
+depends=('gtk2')
+makedepends=('pkgconfig')
+source=(http://www.kroah.com/linux-usb/${pkgname}-${pkgver}.tar.gz)
+md5sums=('8bf5e66351156356f3ad07454123affa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make || return 1
+ make prefix="${pkgdir}/usr" \
+ sysconfdir="${pkgdir}/etc" \
+ localstatedir="${pkgdir}/var" install || return 1
+}
diff --git a/extra/usermin/PKGBUILD b/extra/usermin/PKGBUILD
new file mode 100644
index 000000000..c7494e10a
--- /dev/null
+++ b/extra/usermin/PKGBUILD
@@ -0,0 +1,129 @@
+# $Id: PKGBUILD 104514 2011-01-03 20:58:29Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=usermin
+pkgver=1.460
+pkgrel=1
+pkgdesc="a web interface that can be used to easily perform tasks like reading mail, setting up SSH or configuring mail forwarding"
+arch=(i686 x86_64)
+license=('custom:usermin')
+url="http://www.webmin.com/"
+depends=('perl' 'webmin')
+makedepends=('perl-net-ssleay')
+backup=('etc/usermin/miniserv.conf' 'etc/usermin/miniserv.users' 'etc/usermin/config' 'etc/usermin/usermin.cats' \
+'etc/usermin/at/config' \
+'etc/usermin/man/config' \
+'etc/usermin/ssh/config' \
+'etc/usermin/chfn/config' \
+'etc/usermin/cron/config' \
+'etc/usermin/file/config' \
+'etc/usermin/plan/config' \
+'etc/usermin/proc/config' \
+'etc/usermin/spam/config' \
+'etc/usermin/htaccess/config' \
+'etc/usermin/cshrc/config' \
+'etc/usermin/gnupg/config' \
+'etc/usermin/mysql/config' \
+'etc/usermin/quota/config' \
+'etc/usermin/shell/config' \
+'etc/usermin/theme/config' \
+'etc/usermin/mailbox/config' \
+'etc/usermin/schedule/config' \
+'etc/usermin/config' \
+'etc/usermin/commands/config' \
+'etc/usermin/htaccess-htpasswd/config' \
+'etc/usermin/forward/config' \
+'etc/usermin/telnet/config' \
+'etc/usermin/tunnel/config' \
+'etc/usermin/updown/config' \
+'etc/usermin/procmail/config' \
+'etc/usermin/fetchmail/config' \
+'etc/usermin/changepass/config' \
+'etc/usermin/language/config' \
+'etc/usermin/postgresql/config' \
+'etc/usermin/usermount/config' \
+)
+install=usermin.install
+source=(http://downloads.sourceforge.net/sourceforge/webadmin/$pkgname-$pkgver.tar.gz
+ usermin.rc
+ ftp://ftp.archlinux.org/other/usermin/usermin-config.tar.bz2)
+
+build() {
+ cd $startdir/src/$pkgname-$pkgver
+
+ # remove modules we do not support
+
+ #remove config files from other distros
+ rm -f $(find . ! -name 'config-generic-linux' ! -name 'config-\*-linux' ! -name 'config-lib.pl' -name 'config-*')
+
+ # remove caldera theme
+ rm -rf caldera
+
+ # remove init-scripts from other distros
+ rm usermin-init
+ rm usermin-daemon
+
+ # setting perl path
+ (find . -name '*.cgi' ; find . -name '*.pl') | perl perlpath.pl /usr/bin/perl -
+
+ # create dirs
+ mkdir -p $startdir/pkg/opt/usermin
+ mkdir -p $startdir/pkg/var/log/usermin
+ mkdir -p $startdir/pkg/etc/usermin
+
+ # install pam stuff
+ install -D -m 644 usermin-pam $startdir/pkg/etc/pam.d/usermin
+
+ # remove other distros and add only Archlinux don't change next line else it will not work!
+ rm os_list.txt
+ echo 'Archlinux Any version generic-linux * -d "/etc/pacman.d"' >> os_list.txt
+
+ # copy stuff to right dirs
+ cd $startdir/src/$pkgname-$pkgver
+ cp -rp * $startdir/pkg/opt/usermin
+ cd $startdir/src/usermin-config
+ cp -rfp * $startdir/pkg/opt/usermin
+
+ # define parameters for setup.sh
+ config_dir=$startdir/pkg/etc/usermin
+ var_dir=$startdir/pkg/var/log/usermin
+ perl=/usr/bin/perl
+ autoos=1
+ port=20000
+ login=root
+ crypt="XXX"
+ ssl=1
+ atboot=0
+ nostart=1
+ nochown=1
+ autothird=1
+ nouninstall=1
+ noperlpath=1
+ atbootyn=n
+ tempdir=$startdir/pkg/tmp
+ export config_dir var_dir perl autoos port tempdir ssl nochown autothird nouninstall nostart noperlpath atbootyn login crypt
+
+ # Fix setup.sh
+ sed -i -e 's:read atbootyn::g' -e 's:exit 13::g' $startdir/pkg/opt/usermin/setup.sh
+ $startdir/pkg/opt/usermin/setup.sh
+
+ # Fixup the config files to use their real locations
+ sed -i 's:^pidfile=.*$:pidfile=/var/run/usermin.pid:' $startdir/pkg/etc/usermin/miniserv.conf
+ find $startdir/pkg/etc/usermin -type f -exec sed -i "s:$startdir/pkg::g" {} \;
+
+ # make it only accessible by localhost
+ echo 'allow=127.0.0.1' >> $startdir/pkg/etc/usermin/miniserv.conf
+
+ # enable user and password login
+ sed -i -e '/localauth/d' $startdir/pkg/etc/usermin/miniserv.conf
+
+ #install rc file
+ install -D -m 755 $startdir/src/usermin.rc $startdir/pkg/etc/rc.d/usermin
+
+ # delete temp dir
+ rm -r $startdir/pkg/tmp
+ #install license
+ install -m 644 -D $startdir/src/$pkgname-$pkgver/LICENCE $startdir/pkg/usr/share/licenses/usermin/LICENCE
+}
+md5sums=('d22452de87891e4012411e3aa86aec1f'
+ 'cfef4490cd1ef9517c0b39a7bd75c968'
+ 'ec37a79f948f778224550930d2a7ca07')
diff --git a/extra/usermin/usermin-config.tar.bz2 b/extra/usermin/usermin-config.tar.bz2
new file mode 100644
index 000000000..056bb6298
--- /dev/null
+++ b/extra/usermin/usermin-config.tar.bz2
Binary files differ
diff --git a/extra/usermin/usermin.install b/extra/usermin/usermin.install
new file mode 100644
index 000000000..3ace10ea2
--- /dev/null
+++ b/extra/usermin/usermin.install
@@ -0,0 +1,34 @@
+# arg 1: the new package version
+post_install() {
+ local crypt=$(grep "^root:" ${ROOT}/etc/shadow | cut -f 2 -d :)
+ crypt=${crypt//\\/\\\\}
+ crypt=${crypt//\//\\\/}
+ sed -i "s/root:XXX/root:${crypt}/" /etc/usermin/miniserv.users
+cat << EOF
+Note:
+==> It is not allowed to install 3rd party modules, or delete existing modules.
+==> Please write your own PKGBUILDS for 3rd party modules and additional themes.
+Setup:
+==> To make usermin start at boot time, add usermin to rc.conf daemons
+==> Point your web browser to http://localhost:20000 to use usermin.
+==> To change the modules setup please use webmin.
+
+==> The access is restricted to localhost, if you want to connect from other locations
+==> change /etc/usermin/miniserv.conf to something like that: allow=127.0.0.1 <your-ip>
+==> If you want to have ssl encryption please install 'perl-net-ssleay' additional.
+EOF
+# fix man module
+ cd /opt/usermin/man
+ gzip -df $(find . -name '*.gz')
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ # uninstall unzipped files
+ rm -r /opt/usermin/man
+}
diff --git a/extra/usermin/usermin.rc b/extra/usermin/usermin.rc
new file mode 100644
index 000000000..af365780a
--- /dev/null
+++ b/extra/usermin/usermin.rc
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+start=/etc/usermin/start
+stop=/etc/usermin/stop
+lockfile=/var/lock/usermin
+
+case "$1" in
+'start')
+ stat_busy "Starting Usermin daemon"
+ $start >/dev/null 2>&1 </dev/null
+ RETVAL=$?
+ if [ "$RETVAL" = "0" ]; then
+ touch $lockfile >/dev/null 2>&1
+ stat_done
+ else
+ stat_fail
+fi
+;;
+
+'stop')
+ stat_busy "Stopping Usermin daemon"
+ $stop >/dev/null 2>&1 </dev/null
+ RETVAL=$?
+ if [ "$RETVAL" = "0" ]; then
+ rm -f $lockfile
+ stat_done
+ else
+ stat_fail
+fi
+;;
+
+'restart')
+ $stop && $start
+ RETVAL=$?
+;;
+*)
+echo "Usage: $0 { start | stop | restart }"
+RETVAL=1
+;;
+esac
+exit $RETVAL \ No newline at end of file
diff --git a/extra/v4l-utils/PKGBUILD b/extra/v4l-utils/PKGBUILD
new file mode 100644
index 000000000..87af80c6a
--- /dev/null
+++ b/extra/v4l-utils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 111480 2011-02-27 10:18:47Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=v4l-utils
+pkgver=0.8.3
+pkgrel=1
+pkgdesc="Userspace tools and conversion library for Video 4 Linux"
+arch=('i686' 'x86_64')
+url="http://freshmeat.net/projects/libv4l"
+provides=("libv4l=$pkgver")
+replaces=('libv4l')
+conflicts=('libv4l')
+license=('LGPL')
+makedepends=('qt')
+optdepends=('qt')
+depends=('glibc' 'gcc-libs' 'sysfsutils')
+source=(http://linuxtv.org/downloads/v4l-utils/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('525ebed7ef6e0f6a4bb68fe10403a3725eb1ec31a4c557c68256079b00e283b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's|CFLAGS :=|CFLAGS ?=|' Make.rules
+
+ make PREFIX="/usr"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make install PREFIX="/usr" DESTDIR="${pkgdir}/"
+ rm -f "${pkgdir}/usr/bin/ivtv-ctl"
+}
diff --git a/extra/v86d/PKGBUILD b/extra/v86d/PKGBUILD
new file mode 100644
index 000000000..e1c3e78d2
--- /dev/null
+++ b/extra/v86d/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 102014 2010-12-03 22:27:43Z pierre $
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+
+pkgname="v86d"
+pkgver=0.1.9
+pkgrel=11
+pkgdesc="userspace helper for uvesafb that runs x86 code in an emulated environment"
+url="http://dev.gentoo.org/~spock/projects/uvesafb/"
+license=('GPL2')
+arch=("i686" "x86_64")
+depends=('glibc')
+conflicts=('mkinitcpio<0.5.99')
+backup=(etc/modprobe.d/uvesafb.conf)
+source=(http://dev.gentoo.org/~spock/projects/uvesafb/archive/v86d-$pkgver.tar.bz2
+ v86d
+ v86d_hook
+ modprobe.uvesafb)
+md5sums=('ebbbc8e7013c9544b6ba6981add43831'
+ '33f3131e7bf041ed6a67e92bff272f4c'
+ '813958b8f6c75a7063e4858f31509694'
+ '2d7cc8dc6a41916a13869212d0191147')
+options=(!makeflags)
+
+build() {
+ cd $srcdir/v86d-$pkgver
+ ./configure --with-x86emu
+ # we only need /usr/include/video/uvesafb.h
+ make KDIR=/usr
+}
+
+package() {
+ cd $srcdir/v86d-$pkgver
+ make DESTDIR=$pkgdir install
+
+ install -D -m644 $srcdir/v86d $pkgdir/lib/initcpio/install/v86d
+ install -D -m644 $srcdir/v86d_hook $pkgdir/lib/initcpio/hooks/v86d
+ install -D -m644 $srcdir/modprobe.uvesafb $pkgdir/etc/modprobe.d/uvesafb.conf
+}
diff --git a/extra/v86d/modprobe.uvesafb b/extra/v86d/modprobe.uvesafb
new file mode 100644
index 000000000..5e46e1088
--- /dev/null
+++ b/extra/v86d/modprobe.uvesafb
@@ -0,0 +1,10 @@
+#
+# This file sets the parameters for uvesafb module.
+# The following format should be used:
+# options uvesafb mode=<xres>x<yres>[-<bpp>][@<refresh>] scroll=<ywrap|ypan|redraw> ...
+#
+# For more details see:
+# http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt
+#
+
+options uvesafb mode_option=1024x768-32 scroll=ywrap
diff --git a/extra/v86d/v86d b/extra/v86d/v86d
new file mode 100644
index 000000000..57383fe78
--- /dev/null
+++ b/extra/v86d/v86d
@@ -0,0 +1,12 @@
+install() {
+ add_binary "/sbin/v86d"
+ add_file "/etc/modprobe.d/uvesafb.conf"
+ MODULES="uvesafb"
+ SCRIPT="v86d"
+}
+
+help() {
+ echo "This hook sets up v86d, the userspace helper for uvesafb."
+}
+
+# vim: set ft=sh ts=4 sw=4 expandtab:
diff --git a/extra/v86d/v86d_hook b/extra/v86d/v86d_hook
new file mode 100644
index 000000000..e5dff01c1
--- /dev/null
+++ b/extra/v86d/v86d_hook
@@ -0,0 +1,4 @@
+run_hook()
+{
+ /sbin/modprobe uvesafb
+} \ No newline at end of file
diff --git a/extra/vala/PKGBUILD b/extra/vala/PKGBUILD
new file mode 100644
index 000000000..8772c333f
--- /dev/null
+++ b/extra/vala/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117513 2011-04-04 09:41:11Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Timm Preetz <timm@preetz.us>
+
+pkgname=vala
+pkgver=0.12.0
+pkgrel=1
+pkgdesc="Compiler for the GObject type system"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Vala"
+license=('LGPL')
+depends=('glib2')
+makedepends=('libxslt')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.12/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('9a398e16fba2c78c9bcadb05e489c9bc318e34901d43451ac5d2ce4bc46b1225')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-vapigen
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/valgrind/PKGBUILD b/extra/valgrind/PKGBUILD
new file mode 100644
index 000000000..0772fc3e4
--- /dev/null
+++ b/extra/valgrind/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 110184 2011-02-17 12:26:47Z allan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=valgrind
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="A tool to help find memory-management problems in programs"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://valgrind.org/"
+depends=('glibc>=2.13' 'glibc<2.14' 'perl')
+makedepends=('gdb')
+options=('!emptydirs')
+source=(http://valgrind.org/downloads/${pkgname}-${pkgver}.tar.bz2
+ glibc-patch-version.patch)
+md5sums=('2c3aa122498baecc9d69194057ca88f5'
+ 'b657f0ebdde3d9aefc9fd16f9e653702')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # make sure our CFLAGS are respected
+ sed -i -e 's:^CFLAGS="-Wno-long-long":CFLAGS="$CFLAGS -Wno-long-long":' configure.in
+
+ # prevent need to rebuild with glibc patch level version bumps
+ patch -Np1 -i ${srcdir}/glibc-patch-version.patch
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-only64bit
+ else
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ fi
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/valgrind/glibc-patch-version.patch b/extra/valgrind/glibc-patch-version.patch
new file mode 100644
index 000000000..2c6830aef
--- /dev/null
+++ b/extra/valgrind/glibc-patch-version.patch
@@ -0,0 +1,52 @@
+Saves having to rebuild valgrind on glibc-x.x.* patch level releases
+
+diff -Naur valgrind-3.5.0-old//glibc-2.X.supp.in valgrind-3.5.0/glibc-2.X.supp.in
+--- valgrind-3.5.0-old//glibc-2.X.supp.in 2009-08-19 23:37:48.000000000 +1000
++++ valgrind-3.5.0/glibc-2.X.supp.in 2010-05-22 19:43:08.088007038 +1000
+@@ -168,9 +168,9 @@
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:__sendto_nocancel
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+ {
+ glibc24-64bit-padding-1c
+@@ -180,7 +180,7 @@
+ fun:__nscd_get_map_ref
+ fun:nscd_get*_r
+ fun:*nscd*
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+
+
+@@ -199,18 +199,18 @@
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:send
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+ {
+ X11-64bit-padding-4b
+ Memcheck:Param
+ socketcall.send(msg)
+ fun:send
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
+- obj:/*libc-@GLIBC_VERSION@.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
++ obj:/*libc-@GLIBC_VERSION@*.so
+ }
+
+ ##----------------------------------------------------------------------##
diff --git a/extra/vamp-plugin-sdk/PKGBUILD b/extra/vamp-plugin-sdk/PKGBUILD
new file mode 100644
index 000000000..06633b1de
--- /dev/null
+++ b/extra/vamp-plugin-sdk/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 86992 2010-08-08 20:57:26Z schiv $
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Orivej Desh <smpuj@bk.ru>
+
+pkgname=vamp-plugin-sdk
+pkgver=2.1
+pkgrel=1
+pkgdesc="The Vamp audio analysis plugin system"
+arch=('i686' 'x86_64')
+url="http://www.vamp-plugins.org/"
+license=('BSD')
+depends=('gcc-libs' 'libsndfile')
+#options=('!libtool')
+source=(http://downloads.sourceforge.net/vamp/$pkgname-$pkgver.tar.gz
+ gcc44.patch)
+md5sums=('13252077a73987dae72a9174e529b6b9'
+ 'a07e3ef9c657a56cf2e8c4afc0ba1cec')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # gcc 4.4 compatibility
+ patch -Np1 -i ../gcc44.patch
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+
+ install -Dm644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/vamp-plugin-sdk/gcc44.patch b/extra/vamp-plugin-sdk/gcc44.patch
new file mode 100644
index 000000000..f559a7da9
--- /dev/null
+++ b/extra/vamp-plugin-sdk/gcc44.patch
@@ -0,0 +1,14 @@
+diff -ur vamp-plugin-sdk-2.0.orig/examples/FixedTempoEstimator.cpp vamp-plugin-sdk-2.0/examples/FixedTempoEstimator.cpp
+--- vamp-plugin-sdk-2.0.orig/examples/FixedTempoEstimator.cpp 2008-12-01 13:48:41.000000000 +0200
++++ vamp-plugin-sdk-2.0/examples/FixedTempoEstimator.cpp 2009-06-06 00:57:58.000000000 +0300
+@@ -43,9 +43,9 @@
+
+ using Vamp::RealTime;
+
++#include <cstdio>
+ #include <cmath>
+
+-
+ class FixedTempoEstimator::D
+ // this class just avoids us having to declare any data members in the header
+ {
diff --git a/extra/vamp-plugin-sdk/vamp-plugin-sdk.changelog b/extra/vamp-plugin-sdk/vamp-plugin-sdk.changelog
new file mode 100644
index 000000000..04f17247e
--- /dev/null
+++ b/extra/vamp-plugin-sdk/vamp-plugin-sdk.changelog
@@ -0,0 +1,11 @@
+9 Aug 2010 (GMT+8) Ray Rashif <schivmeister@gmail.com>
+
+ * 2.1-1 :
+ Brought into extra from community for rubberband/ardour
+ - dep of rubberband
+
+ * PKGBUILD :
+ Minor cosmetic ammendments.
+
+ * vamp-plugin-sdk.changelog :
+ Added this changelog.
diff --git a/extra/vbetool/PKGBUILD b/extra/vbetool/PKGBUILD
new file mode 100644
index 000000000..0122f4130
--- /dev/null
+++ b/extra/vbetool/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 19267 2008-11-18 03:22:15Z eric $
+# Contributor: Christian Storm <Christian.Storm@gmx.DE>
+# Contributor: James Rayner <james@archlinux.org>
+# Maintainer: Thayer Williams <thayer@archlinux.org>
+
+pkgname=vbetool
+pkgver=1.1
+pkgrel=1
+pkgdesc="vbetool uses lrmi in order to run code from the video BIOS"
+url="http://www.srcf.ucam.org/~mjg59/vbetool/"
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('zlib' 'libx86')
+makedepends=('pciutils')
+source=(http://www.codon.org.uk/~mjg59/vbetool/download/vbetool-${pkgver}.tar.gz)
+md5sums=('ffb03b118867a02296d7449019ad8846')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ if [ "${CARCH}" = "x86_64" ]; then
+ ./configure --prefix=/usr --without-x86emu || return 1
+ else
+ ./configure --prefix=/usr || return 1
+ fi
+ make LIBS=-lpci || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
+
diff --git a/extra/vcdimager/PKGBUILD b/extra/vcdimager/PKGBUILD
new file mode 100644
index 000000000..dc392cb84
--- /dev/null
+++ b/extra/vcdimager/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 59898 2009-11-29 15:48:57Z jgc $
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=vcdimager
+pkgver=0.7.23
+pkgrel=7
+pkgdesc="GNU VCDImager is a full-featured mastering suite for authoring disassembling and analyzing Video CD's and Super Video CD's"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.vcdimager.org/"
+depends=('libcdio>=0.82' 'libxml2>=2.7.3' 'popt')
+options=('!libtool')
+install=vcdimager.install
+source=(ftp://ftp.gnu.org/gnu/vcdimager/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5e7d80fdbf0037ad20e438f2a9573253')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man --infodir=/usr/share/info || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/vcdimager/vcdimager.install b/extra/vcdimager/vcdimager.install
new file mode 100644
index 000000000..faa9748c2
--- /dev/null
+++ b/extra/vcdimager/vcdimager.install
@@ -0,0 +1,19 @@
+infodir=/usr/share/info
+filelist=(vcd-info.info.gz vcdimager.info.gz vcdxrip.info.gz)
+
+post_install() {
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/extra/vde2/PKGBUILD b/extra/vde2/PKGBUILD
new file mode 100644
index 000000000..17dc83588
--- /dev/null
+++ b/extra/vde2/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 87311 2010-08-12 11:45:43Z tpowa $
+# Contributor: Sergej Pupykin
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=vde2
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="Virtual Distributed Ethernet for emulators like qemu"
+url="http://sourceforge.net/projects/vde/"
+license=("GPL" "LGPL" "CUSTOM")
+arch=('i686' 'x86_64')
+depends=('bash' 'libpcap' 'openssl')
+backup=(etc/conf.d/vde)
+source=(http://downloads.sourceforge.net/vde/$pkgname-$pkgver.tar.bz2
+ dhcpd.conf.sample
+ iptables.rules.sample
+ vde-config.sample
+ vde-connection.sample
+ vde.conf
+ vde.rc)
+install=vde2.install
+options=(!libtool)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/vde2 \
+ --enable-experimental
+ make
+ make prefix=$pkgdir/usr sysconfdir=$pkgdir/etc libexecdir=$pkgdir/usr/lib/vde2 install
+ install -D -m 755 ../vde.rc $pkgdir/etc/rc.d/vde
+ install -D -m 644 ../vde.conf $pkgdir/etc/conf.d/vde
+ install -D -m 644 ../vde-config.sample $pkgdir/etc/vde/vde-config.sample
+ install -D -m 644 ../vde-connection.sample $pkgdir/etc/vde/vde-connection.sample
+ install -D -m 644 ../dhcpd.conf.sample $pkgdir/usr/share/vde2/dhcpd.conf.sample
+ install -D -m 644 ../iptables.rules.sample $pkgdir/usr/share/vde2/iptables.rules.sample
+ # install slirp license
+ install -D -m 644 COPYING.slirpvde $pkgdir/usr/share/licenses/vde2/COPYING.slirpvde
+}
+md5sums=('22a7913beb50d6706155fc502ff3cbbe'
+ '7d9bc56d2e561d849e915000d1c0f269'
+ 'a920123fc620bcedbccb703a8d1bdc55'
+ 'cb8ace28e8efd4dad128be4be71b3b07'
+ '63033c33565e2030541c5e05e9d9b063'
+ 'a22730f051f4840da4a3162a88ff8156'
+ '6c7dc01bc2f039f0ff1682ee70d3d1da')
diff --git a/extra/vde2/dhcpd.conf.sample b/extra/vde2/dhcpd.conf.sample
new file mode 100644
index 000000000..565a78b27
--- /dev/null
+++ b/extra/vde2/dhcpd.conf.sample
@@ -0,0 +1,12 @@
+ddns-update-style none;
+
+subnet 192.168.254.0 netmask 255.255.255.0 {
+ range 192.168.254.1 192.168.254.253;
+ option routers 192.168.254.254;
+ option domain-name "virtual.example.com";
+ # find your DNS servers from /etc/resolv.conf
+ # otherwise only pure IP addresses will work
+ option domain-name-servers 192.168.254.254;
+ option broadcast-address 192.168.254.255;
+ default-lease-time 86400;
+}
diff --git a/extra/vde2/iptables.rules.sample b/extra/vde2/iptables.rules.sample
new file mode 100644
index 000000000..ac712ee21
--- /dev/null
+++ b/extra/vde2/iptables.rules.sample
@@ -0,0 +1,5 @@
+*filter
+-A INPUT -i tun -j ACCEPT
+-A FORWARD -s 192.168.254.0/255.255.255.0 -j ACCEPT
+*nat
+-A POSTROUTING -s 192.168.254.0/24 -j MASQUERADE
diff --git a/extra/vde2/vde-config.sample b/extra/vde2/vde-config.sample
new file mode 100644
index 000000000..c5a5b7d88
--- /dev/null
+++ b/extra/vde2/vde-config.sample
@@ -0,0 +1,35 @@
+# Set options vde_switch program
+# To activate this vde profile add it to /etc/conf.d/vde
+
+# Global options
+VDE_NUMPORTS="32" # Number of ports (default 32)
+VDE_HUB="no" # [yes|no] Make the switch act as a hub
+VDE_FSTP="no" # [yes|no] Activate the fast spanning tree protocol
+VDE_MAC="" # Set the Switch MAC address
+VDE_PRIOTIRY="" # Set the priority for FST (MAC extension)
+VDE_HASHSIZE="" # Hash table size
+
+# Options from datasock module
+VDE_SOCK="/var/run/vde/sample.sock" # control directory pathname
+VDE_SOCK_MODE="660" # Standard access mode for comm sockets (octal)
+VDE_SOCK_GROUP="root" # Group owner for comm sockets
+
+# Options from consmgmt module
+VDE_MANAGEMENT_SOCK="/var/run/vde/sample.mgmt" # path of the management UNIX socket
+VDE_MANAGEMENT_SOCK_MODE="660" # management UNIX socket access mode (octal)
+
+# Other options to parse to vde_switch
+VDE_OPTIONS=""
+
+# VDE with internet support
+# You can use either tuntap method or slirpvde method.
+
+# Options from tuntap module
+VDE_TAP="" # Enable routing through TAP tap interface (comma separated array eg.:"tap0,tap1").
+
+# slirpvde daemon support
+SLIRP="no" # [yes|no] enable/disable SLIRP daemon support
+SLIRP_DHCP="no" # [yes|no] turn on the DHCP server for the network autoconfiguration of all the units connected to the VDE
+SLIRP_NETWORK="" # specify the network address (default 10.0.2.0)
+# other options to parse to slirpvde
+SLIRP_OPTIONS="" \ No newline at end of file
diff --git a/extra/vde2/vde-connection.sample b/extra/vde2/vde-connection.sample
new file mode 100644
index 000000000..4a75e1f52
--- /dev/null
+++ b/extra/vde2/vde-connection.sample
@@ -0,0 +1,6 @@
+# You can add vde switch connections below
+# just without the # at the beginning:
+# vde_plug /var/run/vde/sample.sock = vde_plug /var/run/vde/sample2.sock
+# or if hosts are different use this syntax:
+# vde_plug /var/run/vde/sample.sock = ssh host2 vde_plug /var/run/vde/sample.sock
+
diff --git a/extra/vde2/vde.conf b/extra/vde2/vde.conf
new file mode 100644
index 000000000..bc61dceda
--- /dev/null
+++ b/extra/vde2/vde.conf
@@ -0,0 +1,11 @@
+# Set options for a vde daemon script
+#
+# Array for your vde config files, eg.: "internal-net external-net"
+# You need a config file in /etc/vde/ with the same name.
+# Sample config file provided: /etc/vde/vde-config.sample
+VDE_CONFIG=""
+
+# Array for your dpipe connections, eg.: "connect-switches"
+# You need a config file in /etc/vde/ with the same name.
+# Sample config file provided: /etc/vde/vde-connection.sample
+VDE_CONNECTION="" \ No newline at end of file
diff --git a/extra/vde2/vde.rc b/extra/vde2/vde.rc
new file mode 100755
index 000000000..b368f9955
--- /dev/null
+++ b/extra/vde2/vde.rc
@@ -0,0 +1,113 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/vde
+
+case "$1" in
+ start)
+ # bring up all defined profiles
+ for i in $VDE_CONFIG; do
+ [ -e /etc/vde/$i ] && . /etc/vde/$i
+ stat_busy "Starting vde_switch $i"
+ # get options from profile
+ [ -n "$VDE_NUMPORTS" ] && OPTIONS="-n $VDE_NUMPORTS"
+ [ "$VDE_HUB" = "yes" ] && OPTIONS="$OPTIONS -x"
+ [ "$VDE_FSTP" = "yes" ] && OPTIONS="$OPTIONS -F"
+ [ -n "$VDE_MAC" ] && OPTIONS="$OPTIONS --macaddr $VDE_MAC"
+ [ -n "$VDE_PRIORITY" ] && OPTIONS="$OPTIONS --priority $VDE_PRIORITY"
+ [ -n "$VDE_HASH" ] && OPTIONS="$OPTIONS --hashsize $VDE_HASH"
+ [ -n "$VDE_SOCK" ] && OPTIONS="$OPTIONS -s $VDE_SOCK"
+ [ -n "$VDE_SOCK_MODE" ] && OPTIONS="$OPTIONS -m $VDE_SOCK_MODE"
+ [ -n "$VDE_SOCK_GROUP" ] && OPTIONS="$OPTIONS -g $VDE_SOCK_GROUP"
+ [ -n "$VDE_MANAGEMENT_SOCK" ] && OPTIONS="$OPTIONS -M $VDE_MANAGEMENT_SOCK"
+ [ -n "$VDE_MANAGEMENT_SOCK_MODE" ] && OPTIONS="$OPTIONS --mgmtmode $VDE_MANAGEMENT_SOCK_MODE"
+ [ -n "$VDE_TAP" ] && OPTIONS="$OPTIONS -t $VDE_TAP"
+ [ -n "$VDE_OPTIONS" ] && OPTIONS="$OPTIONS $VDE_OPTIONS"
+ vde_switch $OPTIONS -p /var/run/vde-$i.pid -daemon &>/dev/null
+ [ -n "$VDE_SOCK" -a -n "$VDE_SOCK_GROUP" ] && chgrp "$VDE_SOCK_GROUP" "$VDE_SOCK"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ if [ "$SLIRP" = "yes" ]; then
+ stat_busy "Starting slirpvde for $i"
+ [ "$SLIRP_DHCP" = "yes" ] && SP_OPTIONS="-D"
+ [ -n "$SLIRP_NETWORK" ] && SP_OPTIONS="$SP_OPTIONS -n $SLIRP_NETWORK"
+ [ -n "$SLIRP_OPTIONS" ] && SP_OPTIONS="$SP_OPTIONS $SLIRP_OPTIONS"
+ [ -n "$VDE_SOCK" ] && SP_OPTIONS="$SP_OPTIONS -s $VDE_SOCK"
+ [ -n "$VDE_SOCK_MODE" ] && SP_OPTIONS="$SP_OPTIONS -m $VDE_SOCK_MODE"
+ [ -n "$VDE_SOCK_GROUP" ] && SP_OPTIONS="$SP_OPTIONS -g $VDE_SOCK_GROUP"
+ slirpvde $SP_OPTIONS -p /var/run/slirpvde-$i.pid -daemon &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ unset OPTIONS
+ unset SP_OPTIONS
+ fi
+ done
+ for i in $VDE_CONNECTION; do
+ # connect specified vde_switches
+ if [ "$(grep ^vde_plug /etc/vde/$i)" ]; then
+ stat_busy "Connecting VDE switches $i together..."
+ while read j; do
+ switch="$(echo $j | grep ^vde_plug)"
+ [ -n "$switch" ] && (dpipe $switch &)
+ done </etc/vde/$i
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ fi
+ done
+ add_daemon vde
+ ;;
+ stop)
+ # kill vde_plug if switches are connected
+ [ -n "$VDE_CONNECTION" ] && killall vde_plug >/dev/null 2>&1
+ for i in $VDE_CONFIG; do
+ [ -e /etc/vde/$i ] && . /etc/vde/$i
+ if [ "$SLIRP" = "yes" ]; then
+ stat_busy "Stopping slirpvde for $i"
+ kill $(cat /var/run/slirpvde-$i.pid) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ rm /var/run/slirpvde-$i.pid &> /dev/null
+ fi
+ stat_busy "Stopping vde_switch $i"
+ kill $(cat /var/run/vde-$i.pid) &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ rm /var/run/vde-$i.pid &> /dev/null
+ stat_busy "Removing $i vde sockets"
+ rm -rf $VDE_SOCK $VDE_MANAGEMENT_SOCK
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ done
+ unset OPTIONS
+ unset SP_OPTIONS
+ [ -e /var/run/vde/gmon.out ] && rm /var/run/vde/gmon.out
+ rm_daemon vde
+ ;;
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/vde2/vde2.install b/extra/vde2/vde2.install
new file mode 100644
index 000000000..5005fb448
--- /dev/null
+++ b/extra/vde2/vde2.install
@@ -0,0 +1,14 @@
+post_install() {
+ echo "Change /etc/conf.d/vde to your needs."
+ echo "vde config files should be placed in /etc/vde, sample files are provided."
+ echo "iptables and dhcpd sample files have been installed to '/usr/share/vde2'."
+ echo "Merge those examples, if needed to the according config files."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+op=$1
+shift
+$op $*
diff --git a/extra/vdpau-video/PKGBUILD b/extra/vdpau-video/PKGBUILD
new file mode 100644
index 000000000..b426e758e
--- /dev/null
+++ b/extra/vdpau-video/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 117134 2011-03-28 20:41:09Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=vdpau-video
+pkgver=0.7.3
+pkgrel=2
+pkgdesc="VDPAU backend for VA API"
+arch=('i686' 'x86_64')
+url="http://www.splitted-desktop.com/~gbeauchesne/vdpau-video/"
+license=('GPL')
+depends=('libva' 'libvdpau')
+makedepends=('mesa')
+options=('!libtool')
+source=(http://www.splitted-desktop.com/~gbeauchesne/vdpau-video/${pkgname}-${pkgver}.tar.gz)
+md5sums=('18870e007ecdc50a528861fa55556364')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
+
+
diff --git a/extra/vice/PKGBUILD b/extra/vice/PKGBUILD
new file mode 100644
index 000000000..cb6f922c9
--- /dev/null
+++ b/extra/vice/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111554 2011-02-27 17:55:34Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=vice
+pkgver=2.3
+pkgrel=1
+pkgdesc="A Versatile Commodore Emulator"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.viceteam.org/"
+depends=('esound' 'gcc-libs' 'giflib' 'lame' 'libxrandr' 'libxv' 'libjpeg>=8' 'libpng>=1.4.0' 'libxaw' 'libxxf86vm')
+makedepends=('xorg-font-utils')
+options=('!makeflags')
+source=(http://downloads.sourceforge.net/project/vice-emu/releases/${pkgname}-${pkgver}.tar.gz
+ vice-2.3-x11video.patch)
+md5sums=('b48d137874daad50c087a0686cbdde34'
+ '088292ce9efe785edfb2b0c7c670785e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/vice-2.3-x11video.patch || return 1
+ ./configure --prefix=/usr \
+ --enable-fullscreen
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/vice/vice-2.3-x11video.patch b/extra/vice/vice-2.3-x11video.patch
new file mode 100644
index 000000000..d698638c6
--- /dev/null
+++ b/extra/vice/vice-2.3-x11video.patch
@@ -0,0 +1,11 @@
+--- a/src/arch/unix/x11/xaw/x11video.c 2011-01-18 23:59:00.000000000 +0100
++++ b/src/arch/unix/x11/xaw/x11video.c 2011-02-27 18:40:52.000000000 +0100
+@@ -60,6 +60,8 @@
+ #include <X11/Xutil.h>
+ #include <X11/Intrinsic.h>
+ #include <X11/cursorfont.h>
++#include <X11/Xmd.h>
++#include <X11/extensions/shmproto.h>
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/extra/vigra/PKGBUILD b/extra/vigra/PKGBUILD
new file mode 100644
index 000000000..88bd5696b
--- /dev/null
+++ b/extra/vigra/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 112123 2011-03-04 03:09:16Z eric $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=vigra
+pkgver=1.7.0
+pkgrel=6
+pkgdesc="Computer vision library"
+arch=('i686' 'x86_64')
+url="http://hci.iwr.uni-heidelberg.de/vigra/"
+license=('custom:MIT')
+depends=('libpng' 'libtiff' 'gcc-libs' 'sh' 'hdf5' 'fftw')
+makedepends=('cmake' 'python-nose' 'doxygen' 'python-sphinx' 'boost' 'python-numpy')
+optdepends=('python2: for python bindings'
+ 'boost-libs: for python bindings')
+options=('!libtool')
+source=(http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/${pkgname}-${pkgver}-src.tar.gz libpng-1.4.patch)
+md5sums=('a40b3b013653f75dc84ba55b2df1fae2' 'db610e48558eb323490ad21d636bac76')
+sha1sums=('31875646cbb1928d93c96fc4da4fda31772cf8f6' '5f668c861f5fe927a4f51014afab94805db60c46')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}-src
+ patch -p1 < ../libpng-1.4.patch
+ cmake -DCMAKE_INSTALL_PREFIX=/usr \
+ -DWITH_VIGRANUMPY=1 \
+ -DDOCINSTALL=share/doc
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}-src
+ make DESTDIR="${pkgdir}" install
+ # license
+ install -D -m644 LICENSE.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/vigra/libpng-1.4.patch b/extra/vigra/libpng-1.4.patch
new file mode 100644
index 000000000..3c69e8eb8
--- /dev/null
+++ b/extra/vigra/libpng-1.4.patch
@@ -0,0 +1,14 @@
+diff -Naur vigra1.6.0-orig/src/impex/png.cxx vigra1.6.0/src/impex/png.cxx
+--- vigra1.6.0-orig/src/impex/png.cxx 2010-01-20 19:46:57.000000000 -0500
++++ vigra1.6.0/src/impex/png.cxx 2010-01-20 19:47:55.000000000 -0500
+@@ -270,8 +270,8 @@
+ // expand gray values to at least one byte size
+ if ( color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8 ) {
+ if (setjmp(png->jmpbuf))
+- vigra_postcondition( false,png_error_message.insert(0, "error in png_set_gray_1_2_4_to_8(): ").c_str());
+- png_set_gray_1_2_4_to_8(png);
++ vigra_postcondition( false,png_error_message.insert(0, "error in png_set_expand_gray_1_2_4_to_8(): ").c_str());
++ png_set_expand_gray_1_2_4_to_8(png);
+ bit_depth = 8;
+ }
+
diff --git a/extra/vim/PKGBUILD b/extra/vim/PKGBUILD
new file mode 100644
index 000000000..0cf39707c
--- /dev/null
+++ b/extra/vim/PKGBUILD
@@ -0,0 +1,198 @@
+# $Id: PKGBUILD 115648 2011-03-18 18:01:46Z heftig $
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Maintainer: tobias [ tobias at archlinux org ]
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgbase=vim
+pkgname=(vim gvim vim-runtime)
+_topver=7.3
+_patchlevel=138
+pkgver=${_topver}.${_patchlevel}
+__hgrev=ea399ac2c1b9
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('custom:vim')
+url="http://www.vim.org"
+makedepends=('gpm' 'perl' 'python2>=2.7.1' 'ruby' 'libxt' 'desktop-file-utils' 'gtk2'
+ 'gettext' 'pkgconfig' 'mercurial' 'rsync' 'sed')
+source=(pythoncomplete.vim::http://www.vim.org/scripts/download_script.php\?src_id=10872
+ vimrc archlinux.vim gvim.desktop)
+md5sums=('6e7adfbd5d26c1d161030ec203a7f243'
+ 'e57777374891063b9ca48a1fe392ac05'
+ '10353a61aadc3f276692d0e17db1478e'
+ '4b83e5fe0e534c53daaba91dd1cd4cbb')
+
+__hgroot='http://vim.googlecode.com/hg/'
+__hgrepo='vim'
+__hgbranch='default'
+
+_versiondir="vim${_topver//./}"
+
+##### Build #####
+
+build() {
+ cd ${srcdir}
+
+ msg2 'Checking out source from Mercurial...'
+
+ if [[ -d ${__hgrepo} ]]; then
+ cd ${__hgrepo}
+ hg pull -b ${__hgbranch}|| warning 'hg pull failed!'
+ hg update -r ${__hgrev}
+ else
+ hg clone -b ${__hgbranch} -u ${__hgrev} "${__hgroot}${__hgrepo}" ${__hgrepo}
+ cd ${__hgrepo}
+ fi
+
+ if (( $(hg id -n) < $(hg id -nr ${__hgbranch}) )); then
+ warning 'You are not building the latest revision!'
+ warning "Consider updating __hgrev to $(hg id -r ${__hgbranch})."
+ sleep 10
+ fi
+
+ cd ..
+ rm -rf vim-build gvim-build
+ rsync -a --exclude='.hg/' ${__hgrepo}/ vim-build
+
+ msg2 'Patching...'
+
+ # define the place for the global (g)vimrc file (set to /etc/vimrc)
+ sed -i 's|^.*\(#define SYS_.*VIMRC_FILE.*"\) .*$|\1|' \
+ vim-build/src/feature.h
+ sed -i 's|^.*\(#define VIMRC_FILE.*"\) .*$|\1|' \
+ vim-build/src/feature.h
+ # fix python name
+ sed -i -e 's|vi_cv_path_python, python|vi_cv_path_python, python2|' \
+ vim-build/src/configure.in
+ (cd vim-build/src && autoconf)
+
+ msg2 'Building...'
+
+ cp -a vim-build gvim-build
+
+ cd ${srcdir}/vim-build
+
+ ./configure --prefix=/usr --localstatedir=/var/lib/vim \
+ --mandir=/usr/share/man --with-compiledby=ArchLinux \
+ --with-features=big --enable-gpm --enable-acl --with-x=no \
+ --disable-gui --enable-multibyte --enable-cscope \
+ --disable-netbeans --enable-perlinterp --disable-pythoninterp \
+ --disable-rubyinterp
+
+ make
+
+ cd ${srcdir}/gvim-build
+
+ ./configure --prefix=/usr --localstatedir=/var/lib/vim \
+ --mandir=/usr/share/man --with-compiledby=ArchLinux \
+ --with-features=big --enable-gpm --enable-acl --with-x=yes \
+ --enable-gui=gtk2 --enable-multibyte --enable-cscope \
+ --enable-netbeans --enable-perlinterp --enable-pythoninterp \
+ --enable-rubyinterp
+
+ make
+}
+
+##### Packaging #####
+
+package_vim() {
+ pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor'
+ depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm' 'perl')
+ conflicts=('gvim')
+
+ cd ${srcdir}/vim-build
+ make -j1 VIMRCLOC=/etc DESTDIR=${pkgdir} install
+
+ # provided by (n)vi in core
+ rm ${pkgdir}/usr/bin/{ex,view}
+
+ # delete some manpages
+ find ${pkgdir}/usr/share/man -type d -name 'man1' 2>/dev/null | \
+ while read _mandir; do
+ cd ${_mandir}
+ rm -f ex.1 view.1 # provided by (n)vi
+ rm -f evim.1 # this does not make sense if we have no GUI
+ done
+
+ # Runtime provided by runtime package
+ rm -r ${pkgdir}/usr/share/vim
+
+ # license
+ install -dm755 ${pkgdir}/usr/share/licenses/vim
+ ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \
+ ${pkgdir}/usr/share/licenses/vim/license.txt
+}
+
+package_gvim() {
+ pkgdesc='Vi Improved, a highly configurable, improved version of the vi text editor (with advanced features, such as a GUI)'
+ depends=("vim-runtime=${pkgver}-${pkgrel}" 'gpm' 'perl' 'python2>=2.7.1' 'ruby' 'libxt'
+ 'desktop-file-utils' 'gtk2')
+ provides=("vim=${pkgver}-${pkgrel}")
+ conflicts=('vim')
+ install=gvim.install
+
+ cd ${srcdir}/gvim-build
+ make -j1 VIMRCLOC=/etc DESTDIR=${pkgdir} install
+
+ # provided by (n)vi in core
+ rm ${pkgdir}/usr/bin/{ex,view}
+
+ # delete some manpages
+ find ${pkgdir}/usr/share/man -type d -name 'man1' 2>/dev/null | \
+ while read _mandir; do
+ cd ${_mandir}
+ rm -f ex.1 view.1 # provided by (n)vi
+ done
+
+ # Move the runtime for later packaging
+ mv ${pkgdir}/usr/share/vim ${srcdir}/runtime-install
+
+ # freedesktop links
+ install -Dm644 ${srcdir}/gvim.desktop \
+ ${pkgdir}/usr/share/applications/gvim.desktop
+ install -Dm644 runtime/vim48x48.png ${pkgdir}/usr/share/pixmaps/gvim.png
+
+ # license
+ install -dm755 ${pkgdir}/usr/share/licenses/gvim
+ ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \
+ ${pkgdir}/usr/share/licenses/gvim/license.txt
+}
+
+package_vim-runtime() {
+ pkgdesc='Runtime for vim and gvim'
+ backup=(etc/vimrc)
+
+ # Install the runtime split from gvim
+ install -dm755 ${pkgdir}/usr/share
+ mv ${srcdir}/runtime-install ${pkgdir}/usr/share/vim
+
+ # Don't forget logtalk.dict
+ install -Dm644 ${srcdir}/gvim-build/runtime/ftplugin/logtalk.dict \
+ ${pkgdir}/usr/share/vim/${_versiondir}/ftplugin/logtalk.dict
+
+ # fix FS#17216
+ sed -i 's|messages,/var|messages,/var/log/messages.log,/var|' \
+ ${pkgdir}/usr/share/vim/${_versiondir}/filetype.vim
+
+ # patch filetype.vim for better handling of pacman related files
+ sed -i "s/rpmsave/pacsave/;s/rpmnew/pacnew/;s/,\*\.ebuild/\0,PKGBUILD*,*.install/" \
+ ${pkgdir}/usr/share/vim/${_versiondir}/filetype.vim
+ sed -i "/find the end/,+3{s/changelog_date_entry_search/changelog_date_end_entry_search/}" \
+ ${pkgdir}/usr/share/vim/${_versiondir}/ftplugin/changelog.vim
+
+ # make Aaron happy
+ install -Dm644 ${srcdir}/pythoncomplete.vim \
+ ${pkgdir}/usr/share/vim/${_versiondir}/autoload/pythoncomplete.vim
+
+ # rc files
+ install -Dm644 ${srcdir}/vimrc ${pkgdir}/etc/vimrc
+ install -Dm644 ${srcdir}/archlinux.vim \
+ ${pkgdir}/usr/share/vim/vimfiles/archlinux.vim
+
+ # license
+ install -dm755 ${pkgdir}/usr/share/licenses/vim-runtime
+ ln -s /usr/share/vim/${_versiondir}/doc/uganda.txt \
+ ${pkgdir}/usr/share/licenses/vim-runtime/license.txt
+}
+
+# vim:set sw=2 sts=2 et:
diff --git a/extra/vim/archlinux.vim b/extra/vim/archlinux.vim
new file mode 100644
index 000000000..148bb930f
--- /dev/null
+++ b/extra/vim/archlinux.vim
@@ -0,0 +1,26 @@
+" The ArchLinux global vimrc - setting only a few sane defaults
+"
+" Maintainer: Tobias Kieslich [tobias funnychar archlinux dot org]
+"
+" NEVER EDIT THIS FILE, IT'S OVERWRITTEN UPON UPGRADES, GLOBAL CONFIGURATION
+" SHALL BE DONE IN /etc/vimrc, USER SPECIFIC CONFIGURATION IN ~/.vimrc
+
+" Normally we use vim-extensions. If you want true vi-compatibility
+" remove change the following statements
+set nocompatible " Use Vim defaults instead of 100% vi compatibility
+set backspace=indent,eol,start " more powerful backspacing
+
+" Now we set some defaults for the editor
+set history=50 " keep 50 lines of command line history
+set ruler " show the cursor position all the time
+
+" Suffixes that get lower priority when doing tab completion for filenames.
+" These are files we are not likely to want to edit or read.
+set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
+
+
+if has('gui_running')
+ " Make shift-insert work like in Xterm
+ map <S-Insert> <MiddleMouse>
+ map! <S-Insert> <MiddleMouse>
+endif
diff --git a/extra/vim/gvim.desktop b/extra/vim/gvim.desktop
new file mode 100644
index 000000000..56fd61b8f
--- /dev/null
+++ b/extra/vim/gvim.desktop
@@ -0,0 +1,42 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Name=gVim
+Name[eo]=VIM-fasado
+Name[sv]=gVim
+Name[xx]=xx
+Comment=GTK2 enhanced vim text editor
+Comment[ar]=محرر نصوص
+Comment[bg]=Текст Редактор
+Comment[de]=Texteditor
+Comment[el]=Διορθωτής Κειμένου
+Comment[eo]=Tekstredaktilo
+Comment[et]=Tekstiredaktor
+Comment[eu]=Testu Editorea
+Comment[fi]=Tekstieditori
+Comment[he]=עורך טקסט
+Comment[is]=Textaritill
+Comment[ja]=テキストエディタ
+Comment[lt]=Teksto redaktorius
+Comment[mt]=Editur tat-test
+Comment[pt_BR]=Editor de Texto
+Comment[ro]=Editor de text
+Comment[ru]=редактор
+Comment[sk]=Textový editor
+Comment[sl]=Urejevalnik besedil
+Comment[ta]=¯¨Ã ¦¾¡ÌôÀ¡Ç÷
+Comment[tr]=Metin Düzenleyici
+Comment[uk]=Редактор текстів
+Comment[vi]=Trình soạn văn bản
+Comment[xx]=xx
+Comment[zh_CN]=文本编辑器
+Comment[zh_TW]=文字編輯器
+GenericName=Text Editor
+Type=Application
+TryExec=gvim
+Exec=gvim %u
+Icon=gvim
+Terminal=false
+X-MultipleArgs=false
+Categories=GTK;Application;Utility;TextEditor;
+MimeType=application/mathml+xml;application/xhtml+xml;application/x-perl;application/x-python;application/x-shellscript;audio/x-mpegurl;audio/x-scpls;image/svg+xml;message/news;message/rfc822;text/calendar;text/css;text/english;text/html;text/mrml;text/plain;text/rdf;text/rss;text/rtf;text/sgml;text/vnd.wap.wml;text/x-adasrc;text/x-bibtex;text/x-chdr;text/x-c++hdr;text/x-csrc;text/x-c++src;text/x-c;text/x-objc;text/x-csv;text/x-diff;text/x-java;text/x-katefilelist;text/x-latex;text/x-log;text/x-lyx;text/x-makefile;text/xmcd;text/xml;text/x-moc;text/x-mswinurl;text/x-objcsrc;text/x-pascal;text/x-perl;text/x-php;text/x-php-source;text/x-python;text/x-tcl;text/x-tex;text/x-vcalendar;text/x-vcard;text/x-xslfo;text/x-xslt;
diff --git a/extra/vim/gvim.install b/extra/vim/gvim.install
new file mode 100644
index 000000000..0a8d3b0a9
--- /dev/null
+++ b/extra/vim/gvim.install
@@ -0,0 +1,13 @@
+post_install() {
+ echo -n "Updating desktop and mime database..."
+ update-desktop-database -q
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/vim/vimrc b/extra/vim/vimrc
new file mode 100644
index 000000000..92d3ff980
--- /dev/null
+++ b/extra/vim/vimrc
@@ -0,0 +1,16 @@
+" All system-wide defaults are set in $VIMRUNTIME/archlinux.vim (usually just
+" /usr/share/vim/vimfiles/archlinux.vim) and sourced by the call to :runtime
+" you can find below. If you wish to change any of those settings, you should
+" do it in this file (/etc/vimrc), since archlinux.vim will be overwritten
+" everytime an upgrade of the vim packages is performed. It is recommended to
+" make changes after sourcing archlinux.vim since it alters the value of the
+" 'compatible' option.
+
+" This line should not be removed as it ensures that various options are
+" properly set to work with the Vim-related packages.
+runtime! archlinux.vim
+
+" If you prefer the old-style vim functionalty, add 'runtime! vimrc_example.vim'
+" Or better yet, read /usr/share/vim/vim72/vimrc_example.vim or the vim manual
+" and configure vim to your own liking!
+
diff --git a/extra/vinagre/PKGBUILD b/extra/vinagre/PKGBUILD
new file mode 100644
index 000000000..17c01726d
--- /dev/null
+++ b/extra/vinagre/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 94920 2010-10-12 14:39:07Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=vinagre
+pkgver=2.30.3
+pkgrel=1
+pkgdesc="A VNC Client for the GNOME Desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/vinagre/"
+install=vinagre.install
+depends=('libgnome-keyring>=2.32.0' 'gtk-vnc>=0.3.10' 'avahi>=0.6.27' 'desktop-file-utils' 'hicolor-icon-theme' 'telepathy-glib>=0.12.0' 'gconf>=2.32.0')
+makedepends=('gnome-doc-utils>=0.20.1' 'intltool' 'gnome-panel-bonobo')
+optdepends=('gnome-panel-bonobo: Remote desktop viewer applet')
+groups=('gnome-extra')
+options=('!emptydirs' '!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/vinagre/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('28bfc70a816bc3f1e71ada82e260c39ee2dac693cb7859323b06c8b1452a39f4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-scrollkeeper \
+ --libexecdir=/usr/lib/vinagre
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain vinagre ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/vinagre/vinagre.install b/extra/vinagre/vinagre.install
new file mode 100644
index 000000000..ffccf65d5
--- /dev/null
+++ b/extra/vinagre/vinagre.install
@@ -0,0 +1,26 @@
+pkgname=vinagre
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
diff --git a/extra/vino/PKGBUILD b/extra/vino/PKGBUILD
new file mode 100644
index 000000000..7298ca857
--- /dev/null
+++ b/extra/vino/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 112935 2011-03-07 19:28:46Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=vino
+pkgver=2.32.1
+pkgrel=1
+pkgdesc="a VNC server for the GNOME desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libnotify>=0.7.1' 'libxtst' 'libunique>=1.1.6' 'libsm' 'gconf>=2.32.0' 'libsoup>=2.32.1' 'telepathy-glib>=0.12.4' 'gtk2>=2.22.1'
+ 'libgnome-keyring>=2.32' 'avahi>=0.6.27')
+makedepends=('intltool' 'networkmanager')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+options=(!emptydirs)
+install=vino.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8ec3cb84216323660d6301e02f5853f928789c20be68ded538dd849eafac4087')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vino \
+ --localstatedir=/var \
+ --enable-gnome-keyring \
+ --enable-avahi
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain vino ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/vino/vino.install b/extra/vino/vino.install
new file mode 100644
index 000000000..3bc7d3917
--- /dev/null
+++ b/extra/vino/vino.install
@@ -0,0 +1,17 @@
+pkgname=vino
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/extra/virtuoso/PKGBUILD b/extra/virtuoso/PKGBUILD
new file mode 100644
index 000000000..db2433971
--- /dev/null
+++ b/extra/virtuoso/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Massimiliano Torromeo <massimiliano DOT torromeo AT google mail service>
+
+pkgname=virtuoso
+pkgver=6.1.2
+pkgrel=1
+arch=('i686' 'x86_64')
+pkgdesc='A scalable cross-platform server that combines SQL/RDF/XML Data Management with Web Application Server and Web Services Platform functionality'
+url='http://virtuoso.openlinksw.com/wiki/main/Main/'
+license=('GPL')
+depends=('openssl')
+makedepends=('bison' 'flex')
+options=('!libtool' '!makeflags')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-opensource-${pkgver}.tar.gz")
+md5sums=('0519e1f104428e0c8b25fad89e3c57ef')
+
+build() {
+ cd ${srcdir}/${pkgname}-opensource-${pkgver}
+
+ ./configure --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --disable-rendezvous \
+ --disable-hslookup \
+ --disable-all-vads
+ make
+}
+
+package() {
+ # install server
+ cd ${srcdir}/${pkgname}-opensource-${pkgver}/binsrc/virtuoso
+ make DESTDIR=${pkgdir} install
+
+ # install driver
+ cd ${srcdir}/${pkgname}-opensource-${pkgver}/binsrc/driver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/vlc/PKGBUILD b/extra/vlc/PKGBUILD
new file mode 100644
index 000000000..40ab855bc
--- /dev/null
+++ b/extra/vlc/PKGBUILD
@@ -0,0 +1,92 @@
+# $Id: PKGBUILD 117111 2011-03-28 19:51:51Z ibiru $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Martin Sandsmark <martin.sandsmark@kde.org>
+
+pkgbase=vlc
+pkgname=('vlc' 'vlc-plugin')
+pkgver=1.1.8
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://www.videolan.org/vlc/"
+license=('GPL')
+makedepends=('a52dec' 'fluidsynth' 'libmtp' 'libdvbpsi' 'lirc-utils'
+ 'libdca' 'qt' 'libproxy' 'sdl_image' 'libdvdnav' 'mesa'
+ 'lua' 'v4l-utils' 'libcddb' 'smbclient' 'libmatroska' 'zvbi'
+ 'taglib' 'sysfsutils' 'libmpcdec' 'ffmpeg' 'faad2'
+ 'libshout' 'libmad' 'fribidi' 'libmpeg2' 'libmodplug'
+ 'avahi' 'ttf-freefont' 'libxv' 'libass' 'xdg-utils' 'libxpm'
+ 'xulrunner' 'pkgconfig' 'live-media' 'libnotify' 'libcdio'
+ 'flac' 'libtheora' 'alsa-lib' 'jack' 'kdelibs' 'udev'
+ 'libraw1394' 'libdc1394' 'libavc1394' 'libva' 'libpulse')
+options=('!libtool')
+source=("http://download.videolan.org/pub/videolan/${pkgbase}/${pkgver}/${pkgbase}-${pkgver}.tar.bz2")
+md5sums=('c0065ec11b6fd12167cd440cbe0ef0d9')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ sed -i -e 's:truetype/freefont:TTF:g' modules/misc/freetype.c
+ ./configure --prefix=/usr \
+ --disable-rpath \
+ --enable-faad \
+ --enable-v4l \
+ --enable-snapshot \
+ --enable-dbus-control \
+ --enable-nls \
+ --enable-lirc \
+ --enable-pvr \
+ --enable-ncurses \
+ --enable-mozilla \
+ --with-live555-tree=/usr/lib/live \
+ --enable-realrtsp
+ make
+}
+
+package_vlc() {
+ pkgdesc="A multi-platform MPEG, VCD/DVD, and DivX player"
+ depends=('a52dec' 'fluidsynth' 'libmtp' 'libdvbpsi' 'libcdio'
+ 'libdca' 'qt' 'libproxy' 'sdl_image' 'libdvdnav' 'mesa'
+ 'lua' 'v4l-utils' 'libcddb' 'smbclient' 'libmatroska' 'zvbi'
+ 'taglib' 'sysfsutils' 'libmpcdec' 'ffmpeg' 'faad2'
+ 'libshout' 'libmad' 'fribidi' 'libmpeg2' 'libmodplug'
+ 'ttf-freefont' 'libxv' 'libass' 'xdg-utils' 'desktop-file-utils')
+ optdepends=('avahi: for service discovery using bonjour protocol'
+ 'libnotify: for notification plugin'
+ 'ncurses: for ncurses interface support'
+ 'libdvdcss: for decoding encrypted DVDs'
+ 'lirc-utils: for lirc plugin'
+ 'libavc1394: for devices using the 1394ta AV/C'
+ 'libdc1394: for IEEE 1394 plugin'
+ 'kdelibs: KDE Solid hardware integration'
+ 'vdpau-video: VDPAU backend for VA API (for GPU acceleration on Nvidia cards)'
+ 'libpulse: PulseAudio support')
+ options=('!libtool')
+ conflicts=('vlc-pulse-plugin')
+ replaces=('vlc-pulse-plugin')
+ install=vlc.install
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ make DESTDIR="${pkgdir}/" install
+
+ for res in 16 32 48 128; do
+ install -D -m644 "${srcdir}/vlc-${pkgver}/share/icons/${res}x${res}/vlc.png" \
+ "${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/vlc.png"
+ done
+
+ rm -rf "${pkgdir}/usr/lib/mozilla"
+}
+
+package_vlc-plugin() {
+ pkgdesc="VLC mozilla browser plugin"
+ depends=("${pkgbase}=${pkgver}" 'nspr' 'xulrunner' 'libxpm')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ #for linking against libvlc
+ make -C src DESTDIR="${pkgdir}" install-libLTLIBRARIES
+
+ make -C projects/mozilla DESTDIR="${pkgdir}/" install
+
+ #clean up libvlc
+ make -C src DESTDIR="${pkgdir}" uninstall-libLTLIBRARIES
+}
diff --git a/extra/vlc/vlc.install b/extra/vlc/vlc.install
new file mode 100644
index 000000000..4a1091bc5
--- /dev/null
+++ b/extra/vlc/vlc.install
@@ -0,0 +1,18 @@
+post_install() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ usr/lib/vlc/vlc-cache-gen -f usr/lib/vlc/plugins
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/vlc/plugins/plugins-*.dat
+}
+
+post_remove() {
+ xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+ update-desktop-database -q
+}
diff --git a/extra/vorbis-tools/ChangeLog b/extra/vorbis-tools/ChangeLog
new file mode 100644
index 000000000..54e3adcb8
--- /dev/null
+++ b/extra/vorbis-tools/ChangeLog
@@ -0,0 +1,26 @@
+2010-04-10 Andrea Scarpino <andrea@archlinux.org>
+
+ * vorbis-tools 1.4.0-2
+ * libao 1.0 rebuild
+
+2010-04-10 Andrea Scarpino <andrea@archlinux.org>
+
+ * vorbis-tools 1.4.0-1
+ * Upstream release
+
+2009-10-04 Eric Belanger <eric@archlinux.org>
+
+ * vorbis-tools 1.2.0-4
+ * Added vcut tool (close FS#14749)
+ * Fixed license
+
+2008-03-15 Travis Willard <travis@archlinux.org>
+
+ * vorbis-tools 1.2.0-3
+ * Removed explicit /usr/man usage
+
+2008-03-15 Travis Willard <travis@archlinux.org>
+
+ * vorbis-tools 1.2.0-1
+ * New upstream release.
+ * Added ChangeLog
diff --git a/extra/vorbis-tools/PKGBUILD b/extra/vorbis-tools/PKGBUILD
new file mode 100644
index 000000000..706d8a8fb
--- /dev/null
+++ b/extra/vorbis-tools/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 77125 2010-04-10 21:21:48Z andrea $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=vorbis-tools
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Extra tools for Ogg-Vorbis"
+arch=('i686' 'x86_64')
+url='http://www.xiph.org/vorbis/'
+license=('GPL2')
+depends=('libao' 'libvorbis' 'curl' 'flac')
+source=(http://downloads.xiph.org/releases/vorbis/${pkgname}-${pkgver}.tar.gz)
+md5sums=('567e0fb8d321b2cd7124f8208b8b90e6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --without-speex \
+ --enable-vcut || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/vsftpd/PKGBUILD b/extra/vsftpd/PKGBUILD
new file mode 100644
index 000000000..259190904
--- /dev/null
+++ b/extra/vsftpd/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 111119 2011-02-24 05:05:08Z eric $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=vsftpd
+pkgver=2.3.4
+pkgrel=1
+pkgdesc="Very Secure FTP daemon"
+arch=('i686' 'x86_64')
+url="http://vsftpd.beasts.org/"
+license=('GPL2')
+depends=('tcp_wrappers' 'openssl')
+backup=('etc/vsftpd.conf' 'etc/xinetd.d/vsftpd')
+install=vsftpd.install
+source=(ftp://vsftpd.beasts.org/users/cevans/vsftpd-$pkgver.tar.gz \
+ vsftpd.xinetd vsftpd.d)
+md5sums=('2ea5d19978710527bb7444d93b67767a' 'b07fd4609c70063c1d6b20142910c1a6'\
+ '60060a6c7db3b3b7baa1561a302e6923')
+sha1sums=('b774cc6b4c50e20f4fe9ca7f6aa74169ce7fe5ea' 'c87b4ce56dac15223694a6e86c01ea813b877596'\
+ '24f268956c24e78be0c234c6d31f41487922eafe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # build-time config
+ sed \
+ -e 's|^#undef VSF_BUILD_TCPWRAPPERS$|#define VSF_BUILD_TCPWRAPPERS|' \
+ -e 's|^#undef VSF_BUILD_SSL$|#define VSF_BUILD_SSL|' \
+ -i builddefs.h
+ make CFLAGS="${CFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ install -D -m755 vsftpd "${pkgdir}/usr/sbin/vsftpd"
+ install -D -m644 vsftpd.conf "${pkgdir}/etc/vsftpd.conf"
+ install -D -m644 vsftpd.8 "${pkgdir}/usr/share/man/man8/vsftpd.8"
+ install -D -m644 vsftpd.conf.5 "${pkgdir}/usr/share/man/man5/vsftpd.conf.5"
+ install -D -m644 "${srcdir}/vsftpd.xinetd" "${pkgdir}/etc/xinetd.d/vsftpd"
+ install -D -m755 "${srcdir}/vsftpd.d" "${pkgdir}/etc/rc.d/vsftpd"
+
+ install -d -m755 "${pkgdir}/usr/share/empty"
+}
diff --git a/extra/vsftpd/vsftpd.d b/extra/vsftpd/vsftpd.d
new file mode 100644
index 000000000..27310855c
--- /dev/null
+++ b/extra/vsftpd/vsftpd.d
@@ -0,0 +1,67 @@
+#!/bin/bash
+
+daemon_name=vsftpd
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+get_pid() {
+ pidof -o %PPID $daemon_name
+}
+
+case "$1" in
+ start)
+ stat_busy "Starting $daemon_name daemon"
+
+ PID=$(get_pid)
+ if [ -z "$PID" ]; then
+ [ -f /var/run/$daemon_name.pid ] && rm -f /var/run/$daemon_name.pid
+ # RUN
+ $daemon_name &
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ echo $(get_pid) > /var/run/$daemon_name.pid
+ add_daemon $daemon_name
+ stat_done
+ fi
+ else
+ stat_fail
+ exit 1
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ PID=$(get_pid)
+ # KILL
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ #
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status";
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
diff --git a/extra/vsftpd/vsftpd.install b/extra/vsftpd/vsftpd.install
new file mode 100644
index 000000000..48f134e24
--- /dev/null
+++ b/extra/vsftpd/vsftpd.install
@@ -0,0 +1,17 @@
+# arg 1: the new package version
+post_install() {
+ if [ -f lib/modules/`uname -r`/kernel/security/capability.ko ]; then
+ echo ">>> It appears that your current kernel has linux security"
+ echo ">>> capabilities built as a module. vsftpd requires this"
+ echo ">>> functionality to operate."
+ echo ">>>"
+ echo ">>> To activate the module, please load it now (modprobe capability)."
+ echo ">>> Also, you should add it to your MODULES array in rc.conf, so"
+ echo ">>> it will be activated automatically at boot-up."
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
diff --git a/extra/vsftpd/vsftpd.xinetd b/extra/vsftpd/vsftpd.xinetd
new file mode 100644
index 000000000..eff2eb3db
--- /dev/null
+++ b/extra/vsftpd/vsftpd.xinetd
@@ -0,0 +1,10 @@
+service ftp
+{
+ socket_type = stream
+ wait = no
+ user = root
+ server = /usr/sbin/vsftpd
+ log_on_success += HOST DURATION
+ log_on_failure += HOST
+ disable = yes
+}
diff --git a/extra/vte/PKGBUILD b/extra/vte/PKGBUILD
new file mode 100644
index 000000000..50ed147a1
--- /dev/null
+++ b/extra/vte/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 101302 2010-11-28 20:55:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=vte
+pkgver=0.26.2
+pkgrel=1
+pkgdesc="Virtual Terminal Emulator library"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk2>=2.22.0')
+options=('!libtool')
+makedepends=('pygtk>=2.22.0' 'intltool' 'gobject-introspection')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/vte/0.26/vte-${pkgver}.tar.bz2)
+sha256sums=('f02c350340266c9515a98b8f69c72b4bdc53b352cd053624a63a7cb97ddec9bd')
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --localstatedir=/var --disable-static \
+ --enable-introspection
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/w3m/PKGBUILD b/extra/w3m/PKGBUILD
new file mode 100644
index 000000000..80e79e08b
--- /dev/null
+++ b/extra/w3m/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 106210 2011-01-15 11:51:10Z bisson $
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=w3m
+pkgver=0.5.3
+pkgrel=1
+pkgdesc='Text-based Web browser, as well as pager'
+arch=('i686' 'x86_64')
+url='http://w3m.sourceforge.net/'
+license=('custom')
+depends=('openssl' 'gc' 'ncurses' 'zlib')
+makedepends=('imlib2')
+optdepends=('imlib2: for graphics support')
+source=("http://downloads.sourceforge.net/sourceforge/w3m/$pkgname-$pkgver.tar.gz")
+sha1sums=('444b6c8cf7094ee95f8e9de96b37f814b9d83237')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib \
+ --enable-image=x11,fb \
+ --with-imagelib=imlib2 \
+ --with-termlib=ncurses \
+ --disable-w3mmailer \
+ --disable-mouse
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+
+ install -d "$pkgdir"/usr/share/{doc,licenses}/"$pkgname"
+ find doc/* | grep -v CVS | xargs -i install "{}" "$pkgdir/usr/share/doc/$pkgname/"
+ ln -s "../../doc/$pkgname/README" "$pkgdir/usr/share/licenses/$pkgname/"
+} \ No newline at end of file
diff --git a/extra/watchdog/PKGBUILD b/extra/watchdog/PKGBUILD
new file mode 100644
index 000000000..70ec8a57b
--- /dev/null
+++ b/extra/watchdog/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 111485 2011-02-27 10:22:27Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=watchdog
+pkgver=5.9
+pkgrel=1
+pkgdesc="Watchdog daemon"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/watchdog"
+license=('GPL')
+depends=('glibc')
+backup=(etc/watchdog.conf
+ etc/conf.d/watchdog
+ etc/conf.d/wd_keepalive)
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.gz
+ watchdog.sh
+ watchdog.cf)
+md5sums=('d7cae3c9829f5d9a680764f314234867'
+ '854451f554718b55186599faaa8d85f6'
+ '01c1e2e13f515131180b4ebe9b8b7cc3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --sysconfdir=/etc \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make install DESTDIR=${pkgdir}
+ for fil in watchdog wd_keepalive ; do
+ install -D -m755 ${srcdir}/watchdog.sh ${pkgdir}/etc/rc.d/${fil}
+ install -D -m644 ${srcdir}/watchdog.cf ${pkgdir}/etc/conf.d/${fil}
+ done
+
+ sed -i 's/watchdog/wd_keepalive/g' ${pkgdir}/etc/rc.d/wd_keepalive
+ sed -i 's/watchdog/wd_keepalive/g' ${pkgdir}/etc/conf.d/wd_keepalive
+ sed -i 's/Watchdog/Simple Watchdog/' ${pkgdir}/etc/rc.d/wd_keepalive
+}
diff --git a/extra/watchdog/watchdog.cf b/extra/watchdog/watchdog.cf
new file mode 100644
index 000000000..a33e1ea91
--- /dev/null
+++ b/extra/watchdog/watchdog.cf
@@ -0,0 +1,2 @@
+# watchdog configuration
+WATCHDOG_OPTIONS=""
diff --git a/extra/watchdog/watchdog.sh b/extra/watchdog/watchdog.sh
new file mode 100644
index 000000000..00d5078a9
--- /dev/null
+++ b/extra/watchdog/watchdog.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID="$( cat /var/run/watchdog.pid 2>/dev/null )"
+[ -r /etc/conf.d/watchdog ] && source /etc/conf.d/watchdog
+
+case "$1" in
+ start)
+ stat_busy "Starting Watchdog Daemon"
+
+ [ -z "$PID" ] && /usr/sbin/watchdog ${WATCHDOG_OPTIONS}
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon watchdog
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Watchdog Daemon"
+
+ [ -n "$PID" ] && kill $PID &> /dev/null
+
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon watchdog
+ stat_done
+ fi
+
+ rm -f /var/run/watchdog.pid
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/wavpack/PKGBUILD b/extra/wavpack/PKGBUILD
new file mode 100644
index 000000000..389bd0721
--- /dev/null
+++ b/extra/wavpack/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 69147 2010-02-18 00:38:05Z dgriffiths $
+# Maintainer: François Charette <firmicus ατ gmx δοτ net>
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Contributor: Michal Hybner <dta081@gmail.com>
+pkgname=wavpack
+pkgver=4.60.1
+pkgrel=1
+pkgdesc="Audio compression format with lossless, lossy, and hybrid compression modes"
+arch=('i686' 'x86_64')
+url="http://www.wavpack.com/"
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+source=(http://www.wavpack.com/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7bb1528f910e4d0003426c02db856063')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --enable-mmx --disable-static || return 1
+ make || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+ install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 license.txt ${pkgdir}/usr/share/licenses/${pkgname}/ || return 1
+ rm -f ${pkgdir}/usr/lib/*.a
+}
diff --git a/extra/webkit-sharp/PKGBUILD b/extra/webkit-sharp/PKGBUILD
new file mode 100644
index 000000000..e8e16c578
--- /dev/null
+++ b/extra/webkit-sharp/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: TDY <tdy@gmx.com>
+# Contributor: Paul Burton <paulburton89@gmail.com>
+# Contributor: rabyte <rabyte__gmail>
+
+pkgname=webkit-sharp
+pkgver=0.3
+pkgrel=1
+pkgdesc="Mono/.NET bindings for the WebKit rendering engine"
+arch=('i686' 'x86_64')
+url="http://www.mono-project.com/"
+license=('custom:MIT')
+depends=('gtk-sharp-2' 'libwebkit')
+makedepends=('pkgconfig>=0.9.0')
+source=(http://ftp.novell.com/pub/mono/sources/$pkgname/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('21482f9d5eafb0ef4acc6e790482f934')
+
+build() {
+ export MONO_SHARED_DIR="${srcdir}/.wabi"
+ mkdir -p "${MONO_SHARED_DIR}"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's/\.1/.2/' sources/webkit-sharp.dll.config.in
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/extra/webmin/PKGBUILD b/extra/webmin/PKGBUILD
new file mode 100644
index 000000000..98097f557
--- /dev/null
+++ b/extra/webmin/PKGBUILD
@@ -0,0 +1,215 @@
+# $Id: PKGBUILD 104516 2011-01-03 20:59:12Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=webmin
+pkgver=1.530
+pkgrel=1
+pkgdesc="a web-based interface for system administration"
+arch=(i686 x86_64)
+license=('custom:webmin')
+url="http://www.webmin.com/"
+depends=('perl')
+makedepends=('perl-net-ssleay')
+backup=('etc/webmin/miniserv.conf' 'etc/webmin/miniserv.users' 'etc/webmin/config' 'etc/webmin/webmin.cats' \
+'etc/webmin/pacman/config' \
+'etc/webmin/at/config' \
+'etc/webmin/acl/config' \
+'etc/webmin/lvm/config' \
+'etc/webmin/net/config' \
+'etc/webmin/nis/config' \
+'etc/webmin/pam/config' \
+'etc/webmin/cron/config' \
+'etc/webmin/file/config' \
+'etc/webmin/grub/config' \
+'etc/webmin/init/config' \
+'etc/webmin/ipfw/config' \
+'etc/webmin/lilo/config' \
+'etc/webmin/proc/config' \
+'etc/webmin/raid/config' \
+'etc/webmin/spam/config' \
+'etc/webmin/sshd/config' \
+'etc/webmin/time/config' \
+'etc/webmin/cluster-passwd/config' \
+'etc/webmin/software/config' \
+'etc/webmin/webminlog/config' \
+'etc/webmin/cluster-webmin/config' \
+'etc/webmin/bind8/config' \
+'etc/webmin/dhcpd/config' \
+'etc/webmin/fdisk/config' \
+'etc/webmin/mount/config' \
+'etc/webmin/mysql/config' \
+'etc/webmin/quota/config' \
+'etc/webmin/samba/config' \
+'etc/webmin/shell/config' \
+'etc/webmin/squid/config' \
+'etc/webmin/adsl-client/config' \
+'etc/webmin/servers/config' \
+'etc/webmin/cluster-shell/config' \
+'etc/webmin/bandwidth/config' \
+'etc/webmin/ppp-client/config' \
+'etc/webmin/lpadmin/config' \
+'etc/webmin/apache/config' \
+'etc/webmin/firewall/config' \
+'etc/webmin/stunnel/config' \
+'etc/webmin/burner/config' \
+'etc/webmin/exports/config' \
+'etc/webmin/backup-config/config' \
+'etc/webmin/custom/config' \
+'etc/webmin/htaccess-htpasswd/config' \
+'etc/webmin/logrotate/config' \
+'etc/webmin/format/config' \
+'etc/webmin/fsdump/config' \
+'etc/webmin/passwd/config' \
+'etc/webmin/cluster-useradmin/config' \
+'etc/webmin/cluster-software/config' \
+'etc/webmin/cluster-copy/config' \
+'etc/webmin/cluster-cron/config' \
+'etc/webmin/telnet/config' \
+'etc/webmin/status/config' \
+'etc/webmin/syslog/config' \
+'etc/webmin/updown/config' \
+'etc/webmin/usermin/config' \
+'etc/webmin/webmin/config' \
+'etc/webmin/xinetd/config' \
+'etc/webmin/openslp/config' \
+'etc/webmin/procmail/config' \
+'etc/webmin/fetchmail/config' \
+'etc/webmin/postgresql/config' \
+'etc/webmin/useradmin/config' \
+'etc/webmin/mailboxes/config' \
+'etc/webmin/inittab/config' \
+'etc/webmin/change-user/config' \
+'etc/webmin/postfix/config' \
+'etc/webmin/proftpd/config' \
+'etc/webmin/pserver/config' \
+'etc/webmin/dnsadmin/config' )
+install=webmin.install
+source=(http://downloads.sourceforge.net/sourceforge/webadmin/$pkgname-$pkgver.tar.gz
+ ftp://ftp.archlinux.org/other/webmin/webmin-config.tar.bz2
+ ftp://ftp.archlinux.org/other/webmin/webmin-pacman.tar.bz2
+ webmin.rc)
+
+build() {
+ # NOTE: USE --asroot build option to avoid fakeroot error!
+ cd $startdir/src/$pkgname-$pkgver
+ # add patches from webmin.com
+ #for i in ../*.wbm
+ #do tar xvf $i
+ #done
+ #for i in ../*.wbt
+ #do tar xvf $i
+ #done
+ # delete stuff that's not needed
+ rm -f mount/freebsd-mounts*
+ rm -f mount/openbsd-mounts*
+ rm -f mount/macos-mounts*
+
+ # remove modules we do not support
+ rm -rf {bacula-backup,ldap-useradmin,mon,sentry,frox,jabber,majordomo,qmail,sendmail,sarg,wuftpd,webalizer,inetd,ipsec,pap,pptp-client,pptp-server,shorewall,smart-status,vgetty,heartbeat,cfengine,cpan,sgiexports,hpuxexports,qmailadmin,bsdexports,dfsadmin}
+
+ #remove config files from other distros
+ rm -f $(find . ! -name 'config-generic-linux' ! -name 'config-\*-linux' ! -name 'config-lib.pl' -name 'config-*')
+
+ # remove caldera theme
+ rm -rf caldera
+
+ # remove init-scripts from other distros
+ rm webmin-gentoo-init
+ rm webmin-init
+ rm webmin-caldera-init
+ rm webmin-daemon
+
+ # remove update stuff to avoid problems with updating webmin,modules and themes without pacman
+ rm -f webmin/{update.cgi,update.pl,update_sched.cgi,upgrade.cgi,edit_upgrade.cgi,install_mod.cgi,delete_mod.cgi,install_theme.cgi}
+ rm -f usermin/{upgrade.cgi,update.cgi,update.pl,edit_upgrade.cgi,install_mod.cgi,delete_mod.cgi,install_theme.cgi}
+
+ # remove modules add because we don't want files installed without pacman control
+ rm -f webmin/{install_mod.cgi,delete_mod.cgi}
+
+ # setting perl path
+ (find . -name '*.cgi' ; find . -name '*.pl') | perl perlpath.pl /usr/bin/perl -
+
+ # create dirs
+ mkdir -p $startdir/pkg/opt/webmin
+ mkdir -p $startdir/pkg/var/log/webmin
+ mkdir -p $startdir/pkg/etc/webmin
+
+ # install pam stuff
+ install -D -m 644 webmin-pam $startdir/pkg/etc/pam.d/webmin
+
+ # remove other distros and add only Archlinux don't change next line else it will not work!
+ rm os_list.txt
+ echo 'Archlinux Any version generic-linux * -d "/etc/pacman.d"' >> os_list.txt
+
+ # Add rc.conf support to boot and shutdown menu and lock editing of this module
+ cd init/
+ sed -i -e 's:^local_down=.*:local_down=Archlinux RC.CONF,3,None:g' $(find . ! -name 'config.info.pl' -name 'config.info*')
+ sed -i -e 's:^local_script=.*:local_script=Archlinux RC.LOCAL,3,None:g' $(find . ! -name 'config.info.pl' -name 'config.info*')
+ sed -i -e 's:^index_downscript=.*:index_downscript=Archlinux RC.CONF:g' lang/*
+ sed -i -e 's:^index_script=.*:index_script=Archlinux RC.LOCAL:g' lang/*
+ sed -i -e 's:^noconfig=0:noconfig=1:g' defaultacl
+
+ # Add pacman menu
+ cd $startdir/src/$pkgname-$pkgver
+ cp -rf custom/ pacman
+ cp -rf mscstyle3/custom mscstyle3/pacman
+ sed -i -e 's:^noconfig=0:noconfig=1:g' -e 's:^edit=1:edit=0:g' pacman/defaultacl
+ sed -i -e '/desc/d' -e '/longdesc/d' pacman/module.info
+ sed -i -e 's:^name=Custom:name=Pacman:g' pacman/module.info
+ echo 'category=system' >> pacman/module.info
+ echo 'desc=Pacman' >> pacman/module.info
+ sed -i -e 's:^index_title=.*:index_title=Pacman:g' pacman/lang/*
+
+ # copy stuff to right dirs
+ cd $startdir/src/$pkgname-$pkgver
+ cp -rp * $startdir/pkg/opt/webmin
+ cd $startdir/src/webmin-config
+ cp -rfp * $startdir/pkg/opt/webmin
+
+ # define parameters for setup.sh
+ config_dir=$startdir/pkg/etc/webmin
+ var_dir=$startdir/pkg/var/log/webmin
+ perl=/usr/bin/perl
+ autoos=1
+ port=10000
+ login=root
+ crypt="XXX"
+ ssl=1
+ atboot=0
+ nostart=1
+ nochown=1
+ autothird=1
+ nouninstall=1
+ noperlpath=1
+ atbootyn=n
+ tempdir=$startdir/pkg/tmp
+ export config_dir var_dir perl autoos port tempdir login crypt ssl nochown autothird nouninstall nostart noperlpath atbootyn
+
+ # Fix setup.sh
+ sed -i -e 's:read atbootyn::g' -e 's:exit 13::g' $startdir/pkg/opt/webmin/setup.sh
+ $startdir/pkg/opt/webmin/setup.sh
+
+ # Fixup the config files to use their real locations
+ sed -i 's:^pidfile=.*$:pidfile=/var/run/webmin.pid:' $startdir/pkg/etc/webmin/miniserv.conf
+ find $startdir/pkg/etc/webmin -type f -exec sed -i "s:$startdir/pkg::g" {} \;
+
+ # make it only accessible by localhost
+ echo 'allow=127.0.0.1' >> $startdir/pkg/etc/webmin/miniserv.conf
+
+ # install pacman menu
+ cd $startdir/src/webmin-pacman/config
+ cp -rfp * $startdir/pkg/etc/webmin/pacman
+
+ #install rc file
+ install -D -m 755 $startdir/src/webmin.rc $startdir/pkg/etc/rc.d/webmin
+
+ # delete temp dir
+ rm -r $startdir/pkg/tmp
+ # change sticky bit
+ chmod 0644 $pkgdir/opt/webmin/man/config-generic-linux
+ # install license
+ install -m 644 -D $startdir/src/$pkgname-$pkgver/LICENCE $startdir/pkg/usr/share/licenses/webmin/LICENCE
+}
+md5sums=('acf531f248bd575a0617472faa5013d3'
+ 'da6bea412a5be8cf82a813078fec5847'
+ 'bfebb75bb94029b48c46b7f1ba1aa811'
+ '0673e51af0e81418b4a6c1e205f7e5cd')
diff --git a/extra/webmin/webmin-config.tar.bz2 b/extra/webmin/webmin-config.tar.bz2
new file mode 100644
index 000000000..a51b43dcd
--- /dev/null
+++ b/extra/webmin/webmin-config.tar.bz2
Binary files differ
diff --git a/extra/webmin/webmin-pacman.tar.bz2 b/extra/webmin/webmin-pacman.tar.bz2
new file mode 100644
index 000000000..e8ad9fd7b
--- /dev/null
+++ b/extra/webmin/webmin-pacman.tar.bz2
Binary files differ
diff --git a/extra/webmin/webmin.install b/extra/webmin/webmin.install
new file mode 100644
index 000000000..efdd9291d
--- /dev/null
+++ b/extra/webmin/webmin.install
@@ -0,0 +1,35 @@
+# arg 1: the new package version
+post_install() {
+ local crypt=$(grep "^root:" ${ROOT}/etc/shadow | cut -f 2 -d :)
+ crypt=${crypt//\\/\\\\}
+ crypt=${crypt//\//\\\/}
+ sed -i "s/root:XXX/root:${crypt}/" /etc/webmin/miniserv.users
+
+cat << EOF
+Note:
+==> It is not allowed to install 3rd party modules, or delete existing modules.
+==> Please write your own PKGBUILDS for 3rd party modules and additional themes.
+Setup:
+==> To make webmin start at boot time, add webmin to rc.conf daemons
+==> Point your web browser to http://localhost:10000 to use webmin.
+==> The access is restricted to localhost, if you want to connect from other locations
+==> change /etc/webmin/miniserv.conf to something like that: allow=127.0.0.1 <your-ip>
+==> If you want to have ssl encryption please install 'perl-net-ssleay' additional.
+EOF
+# fix man module
+ cd /opt/webmin/man
+ for i in $(find . -name '*.gz'); do
+ gzip -df $i
+ done
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ # uninstall unzipped files
+ rm -r /opt/webmin/man
+}
diff --git a/extra/webmin/webmin.rc b/extra/webmin/webmin.rc
new file mode 100644
index 000000000..ee83fbea2
--- /dev/null
+++ b/extra/webmin/webmin.rc
@@ -0,0 +1,44 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+start=/etc/webmin/start
+stop=/etc/webmin/stop
+lockfile=/var/lock/webmin
+
+case "$1" in
+'start')
+ stat_busy "Starting Webmin daemon"
+ $start >/dev/null 2>&1 </dev/null
+ RETVAL=$?
+ if [ "$RETVAL" = "0" ]; then
+ touch $lockfile >/dev/null 2>&1
+ stat_done
+ else
+ stat_fail
+fi
+;;
+
+'stop')
+ stat_busy "Stopping Webmin daemon"
+ $stop >/dev/null 2>&1 </dev/null
+ RETVAL=$?
+ if [ "$RETVAL" = "0" ]; then
+ rm -f $lockfile
+ stat_done
+ else
+ stat_fail
+fi
+;;
+
+'restart')
+ $stop && $start
+ RETVAL=$?
+;;
+*)
+echo "Usage: $0 { start | stop | restart }"
+RETVAL=1
+;;
+esac
+exit $RETVAL \ No newline at end of file
diff --git a/extra/weechat/PKGBUILD b/extra/weechat/PKGBUILD
new file mode 100644
index 000000000..bb3be2eb4
--- /dev/null
+++ b/extra/weechat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 106274 2011-01-16 13:41:19Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: lucke <lucke at o2 dot pl>
+
+pkgname=weechat
+pkgver=0.3.4
+pkgrel=1
+pkgdesc="Fast, light and extensible IRC client (curses UI)"
+arch=('i686' 'x86_64')
+url="http://www.weechat.org/"
+license=('GPL')
+depends=('gnutls')
+makedepends=('cmake' 'pkgconfig' 'perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell')
+optdepends=('perl' 'python2' 'lua' 'tcl' 'ruby' 'aspell')
+options=('!libtool')
+source=(http://www.weechat.org/files/src/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('79207fea567548462fe36397e633d287')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ mkdir build
+ cd build
+ cmake .. -DPREFIX=/usr \
+ -DPYTHON_EXECUTABLE=/usr/bin/python2 \
+ -DPYTHON_LIBRARY=/usr/lib/libpython2.7.so || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}/build"
+
+ make DESTDIR="${pkgdir}/" install || return 1
+}
diff --git a/extra/wesnoth/PKGBUILD b/extra/wesnoth/PKGBUILD
new file mode 100644
index 000000000..a60a35818
--- /dev/null
+++ b/extra/wesnoth/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 112017 2011-03-03 06:20:54Z eric $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Jacobo Arvelo <unix4all@ya.com>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=wesnoth
+pkgver=1.8.5
+pkgrel=3
+pkgdesc="A turn-based strategy game on a fantasy world"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.wesnoth.org/"
+depends=('sdl_ttf' 'sdl_net' 'sdl_mixer' 'sdl_image' 'fribidi' 'boost-libs' 'pango' 'lua' "wesnoth-data=${pkgver}" 'dbus-core')
+makedepends=('boost')
+install=wesnoth.install
+source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ wesnoth-libpng-1.4.0.patch)
+md5sums=('a800285d1406690755dd0ea22b98b6df'
+ 'ca7412ffc4682ef55ddf82d56b0e2f08')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../wesnoth-libpng-1.4.0.patch
+ ./autogen.sh
+ ./configure --prefix=/usr --localstatedir=/var --enable-tools --enable-editor --enable-server
+ make DESTDIR="${pkgdir}" install-exec
+}
diff --git a/extra/wesnoth/wesnoth-libpng-1.4.0.patch b/extra/wesnoth/wesnoth-libpng-1.4.0.patch
new file mode 100644
index 000000000..be8adfcaa
--- /dev/null
+++ b/extra/wesnoth/wesnoth-libpng-1.4.0.patch
@@ -0,0 +1,14 @@
+diff -Nur wesnoth-1.8.orig/src/tools/exploder_utils.cpp wesnoth-1.8/src/tools/exploder_utils.cpp
+--- wesnoth-1.8.orig/src/tools/exploder_utils.cpp 2010-01-01 15:16:49.000000000 +0200
++++ wesnoth-1.8/src/tools/exploder_utils.cpp 2010-04-08 17:38:03.066201123 +0300
+@@ -174,8 +174,8 @@
+ //TODO: review whether providing NULL error handlers is something
+ //sensible
+ png_struct* png_ptr = png_create_write_struct
+- (PNG_LIBPNG_VER_STRING, reinterpret_cast<png_voidp>(png_voidp_NULL),
+- png_error_ptr_NULL, png_error_ptr_NULL);
++ (PNG_LIBPNG_VER_STRING, reinterpret_cast<png_voidp>(NULL),
++ NULL, NULL);
+ if(!png_ptr)
+ throw exploder_failure("Unable to initialize the png write structure");
+
diff --git a/extra/wesnoth/wesnoth.install b/extra/wesnoth/wesnoth.install
new file mode 100644
index 000000000..4f1e419ae
--- /dev/null
+++ b/extra/wesnoth/wesnoth.install
@@ -0,0 +1,9 @@
+# arg 1: the new package version
+post_install() {
+cat << EOF
+Note:
+==> If you experience sound problems try setting your SDL_AUDIODRIVER environment variable to "dma"
+==> eg. export SDL_AUDIODRIVER="dma" ; wesnoth
+==> If "dma" doesn't work,other options are: dsp,alsa,artsc,esd,nas try to find the right output.
+EOF
+}
diff --git a/extra/whois/PKGBUILD b/extra/whois/PKGBUILD
new file mode 100644
index 000000000..99e4b2a91
--- /dev/null
+++ b/extra/whois/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 108896 2011-02-04 18:32:02Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=whois
+pkgver=5.0.11
+pkgrel=1
+pkgdesc="The whois client by Marco d'Itri"
+arch=('i686' 'x86_64')
+url="http://www.linux.it/~md/software/"
+license=('GPL')
+depends=('libidn')
+makedepends=('perl')
+source=("http://ftp.debian.org/debian/pool/main/w/whois/${pkgname}_${pkgver}.tar.gz")
+md5sums=('942e2d90b0bcd7d22765c8e3344fe118')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=/usr CFLAGS="$CFLAGS" HAVE_LIBIDN=1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix=/usr BASEDIR="${pkgdir}" install-whois
+}
diff --git a/extra/windowmaker-crm-git/PKGBUILD b/extra/windowmaker-crm-git/PKGBUILD
new file mode 100644
index 000000000..6a4789552
--- /dev/null
+++ b/extra/windowmaker-crm-git/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 94218 2010-10-05 16:33:23Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+
+pkgname=windowmaker-crm-git
+pkgver=20101005
+pkgrel=1
+pkgdesc="An X11 window manager with a NEXTSTEP look and feel - git version from Carlos R. Mafra"
+arch=(i686 x86_64)
+url="http://www.windowmaker.org"
+license=('GPL' 'custom')
+depends=('libxinerama' 'libxrandr' 'libpng' 'libxpm' 'libxft' 'libtiff>=3.9.1' 'giflib' 'libxmu')
+options=('!libtool')
+provides=('windowmaker')
+conflicts=('windowmaker')
+source=(ftp://ftp.archlinux.org/other/windowmaker/windowmaker-$pkgver.tar.gz wmaker.desktop)
+md5sums=('8cc7e736a8d7e446f696b80fc7dcb79c'
+ '2fba97bebfd691836b92b8f0db79ff13')
+
+build() {
+ cd $srcdir/windowmaker-$pkgver
+ [ -z "$LINGUAS" ] && export LINGUAS="`ls po/*.po | sed 's:po/\(.*\)\.po$:\1:'`"
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-xinerama \
+ --with-nlsdir=/usr/share/locale --with-gnustepdir=/usr/lib/GNUstep \
+ --enable-usermenu --enable-modelock
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -D -m644 COPYING.WTFPL $pkgdir/usr/share/licenses/$pkgname/COPYING.WTFPL
+ install -D -m644 $srcdir/wmaker.desktop $pkgdir/usr/share/xsessions/wmaker.desktop
+}
diff --git a/extra/windowmaker-crm-git/libpng-1.4.patch b/extra/windowmaker-crm-git/libpng-1.4.patch
new file mode 100644
index 000000000..5dbe5fd25
--- /dev/null
+++ b/extra/windowmaker-crm-git/libpng-1.4.patch
@@ -0,0 +1,12 @@
+diff -Naur windowmaker-20091221-orig/wrlib/load.c windowmaker-20091221/wrlib/load.c
+--- windowmaker-20091221-orig/wrlib/load.c 2010-01-21 17:01:10.000000000 -0500
++++ windowmaker-20091221/wrlib/load.c 2010-01-21 17:02:38.000000000 -0500
+@@ -327,7 +327,7 @@
+
+ #ifdef USE_PNG
+ /* check for PNG */
+- if (png_check_sig(buffer, 8))
++ if (!png_sig_cmp(buffer, 0, 8))
+ return IM_PNG;
+ #endif
+
diff --git a/extra/windowmaker-crm-git/wmaker.desktop b/extra/windowmaker-crm-git/wmaker.desktop
new file mode 100644
index 000000000..f819c7577
--- /dev/null
+++ b/extra/windowmaker-crm-git/wmaker.desktop
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Encoding=UTF-8
+Name=windowmaker
+Exec=/usr/bin/wmaker
+Type=Application
diff --git a/extra/windowmaker-extra/PKGBUILD b/extra/windowmaker-extra/PKGBUILD
new file mode 100644
index 000000000..07aa9b019
--- /dev/null
+++ b/extra/windowmaker-extra/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 27783 2009-02-25 22:56:21Z eric $
+# Contributor: orelien <orelien@chez.com>
+#
+
+pkgname=windowmaker-extra
+pkgver=0.1
+pkgrel=3
+pkgdesc="Extra WindowMaker icons and themes."
+arch=(i686 x86_64)
+url="http://www.windowmaker.info"
+license=('GPL2')
+depends=('windowmaker')
+source=(http://www.sgiweb.org/freeware/source/windowmaker-extra/windowmaker-extra-$pkgver.tar.gz)
+md5sums=('3ef850cfe0fb6660a55ccc8a2e408f74')
+
+build() {
+ cd $srcdir/WindowMaker-extra-$pkgver
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ rm -f $pkgdir/usr/share/WindowMaker/Icons/xv.xpm
+}
+# vim: ts=2 sw=2 et ft=sh
diff --git a/extra/windowmaker/PKGBUILD b/extra/windowmaker/PKGBUILD
new file mode 100644
index 000000000..85fdd5062
--- /dev/null
+++ b/extra/windowmaker/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 71460 2010-03-07 10:56:49Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+pkgname=windowmaker
+pkgver=0.92.0
+pkgrel=8
+pkgdesc="An X11 window manager with a NEXTSTEP look and feel"
+arch=(i686 x86_64)
+url="http://www.windowmaker.info/"
+license=('GPL' 'custom')
+depends=('libxinerama' 'libpng' 'libxpm' 'libxft' 'libtiff' 'giflib')
+options=('!libtool')
+source=(http://windowmaker.info/pub/source/release/WindowMaker-$pkgver.tar.bz2 windowmaker-gcc4.patch.tar.bz2 libpng-1.4.patch)
+md5sums=('aaac5421b686ed2d3e6ab65229c98097' 'd9fb6a9c255f5c03d0e0c83dc3cd2320'\
+ '409173062955f4a527d88cd7a007efa7')
+sha1sums=('4f7fea6f40b9ba9f870d2e2f0ce46274750edb2c' '764aa4883b289994177fd3735541d050fda5bcdb'\
+ '027e1d06360fa38fe95afab6e73b7e9f144da687')
+
+build() {
+ cd $srcdir/WindowMaker-$pkgver
+ patch -p1 < ../libpng-1.4.patch || return 1
+ patch -Np1 -i ../windowmaker-gcc4.patch || return 1
+ libtoolize --force --copy || return 1
+ aclocal || return 1
+ autoconf || return 1
+ automake || return 1
+ [ -z "$LINGUAS" ] && export LINGUAS="`ls po/*.po | sed 's:po/\(.*\)\.po$:\1:'`"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-gnustepdir=/usr/lib/GNUstep --with-nlsdir=/usr/share/locale \
+ --enable-xinerama || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+ install -D -m644 COPYING.WTFPL $pkgdir/usr/share/licenses/$pkgname/COPYING.WTFPL
+}
+
diff --git a/extra/windowmaker/libpng-1.4.patch b/extra/windowmaker/libpng-1.4.patch
new file mode 100644
index 000000000..419e8faca
--- /dev/null
+++ b/extra/windowmaker/libpng-1.4.patch
@@ -0,0 +1,12 @@
+diff -Naur WindowMaker-0.92.0-orig/wrlib/load.c WindowMaker-0.92.0/wrlib/load.c
+--- WindowMaker-0.92.0-orig/wrlib/load.c 2010-01-21 16:10:39.000000000 -0500
++++ WindowMaker-0.92.0/wrlib/load.c 2010-01-21 16:13:15.000000000 -0500
+@@ -348,7 +348,7 @@
+
+ #ifdef USE_PNG
+ /* check for PNG */
+- if (png_check_sig(buffer, 8))
++ if (!png_sig_cmp(buffer, 0, 8))
+ return IM_PNG;
+ #endif
+
diff --git a/extra/windowmaker/windowmaker-gcc4.patch.tar.bz2 b/extra/windowmaker/windowmaker-gcc4.patch.tar.bz2
new file mode 100644
index 000000000..fae12a98d
--- /dev/null
+++ b/extra/windowmaker/windowmaker-gcc4.patch.tar.bz2
Binary files differ
diff --git a/extra/wipe/PKGBUILD b/extra/wipe/PKGBUILD
new file mode 100644
index 000000000..95767e587
--- /dev/null
+++ b/extra/wipe/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 103446 2010-12-19 16:53:45Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Jason Chu <jason@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=wipe
+pkgver=2.3.1
+pkgrel=1
+pkgdesc="A file and block device wiping utility - a secure rm"
+arch=('i686' 'x86_64')
+url="http://wipe.sourceforge.net/"
+license=('GPL')
+depends=('glibc')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
+md5sums=('3aed00711e0490edbec115bc283b8544')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man install
+}
diff --git a/extra/wireshark/PKGBUILD b/extra/wireshark/PKGBUILD
new file mode 100644
index 000000000..e99b73914
--- /dev/null
+++ b/extra/wireshark/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 111927 2011-03-02 08:18:23Z guillaume $
+# Maintainer: Guillaume ALAUX <guillaume at alaux dot net>
+# Contributor: Florian Pritz <bluewind at jabber dot ccc dot de>
+pkgname=(wireshark-cli wireshark-gtk)
+pkgbase=wireshark
+pkgver=1.4.4
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL2')
+makedepends=('bison' 'flex' 'gtk2' 'heimdal' 'libpcap' 'bash' 'gnutls' 'libcap')
+url="http://www.wireshark.org/"
+options=(!libtool)
+source=(http://www.wireshark.org/download/src/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('11ce019d85d9822597b163ce5b4da858')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ export CFLAGS="-fno-unit-at-a-time ${CFLAGS}"
+
+ ./configure --prefix=/usr --with-ssl --with-zlib=no
+ make all
+}
+
+package_wireshark-cli() {
+ pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - CLI version"
+ depends=('heimdal' 'libpcap' 'bash' 'gnutls' 'libcap' 'glib2')
+ install=wireshark.install
+ conflicts=(wireshark)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ #wireshark uid group is 150
+ chgrp 150 "${pkgdir}/usr/bin/dumpcap"
+ chmod 754 "${pkgdir}/usr/bin/dumpcap"
+ rm "$pkgdir/usr/bin/wireshark"
+}
+
+package_wireshark-gtk() {
+ pkgdesc="A free network protocol analyzer for Unix/Linux and Windows - GTK frontend"
+ depends=('gtk2' 'wireshark-cli')
+ install=wireshark-gtk.install
+ replaces=(wireshark)
+ conflicts=(wireshark)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ install -Dm755 .libs/wireshark "$pkgdir/usr/bin/wireshark"
+ for d in 16 32 48; do
+ install -Dm644 image/hi${d}-app-wireshark.png ${pkgdir}/usr/share/icons/hicolor/${d}x${d}/apps/wireshark.png
+ done
+ install -Dm644 wireshark.desktop ${pkgdir}/usr/share/applications/wireshark.desktop
+}
diff --git a/extra/wireshark/wireshark-gtk.install b/extra/wireshark/wireshark-gtk.install
new file mode 100644
index 000000000..6b1b64bdd
--- /dev/null
+++ b/extra/wireshark/wireshark-gtk.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/wireshark/wireshark.install b/extra/wireshark/wireshark.install
new file mode 100644
index 000000000..0afdf0c8f
--- /dev/null
+++ b/extra/wireshark/wireshark.install
@@ -0,0 +1,16 @@
+post_install() {
+ getent group wireshark >/dev/null 2>&1 || usr/sbin/groupadd -g 150 wireshark &>/dev/null
+
+ setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' usr/bin/dumpcap
+ echo "NOTE: To run wireshark as normal user you have to add yourself into wireshark group"
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ if getent group wireshark >/dev/null 2>&1; then
+ groupdel wireshark
+ fi
+}
diff --git a/extra/wpa_supplicant_gui/PKGBUILD b/extra/wpa_supplicant_gui/PKGBUILD
new file mode 100644
index 000000000..96095398d
--- /dev/null
+++ b/extra/wpa_supplicant_gui/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 90602 2010-09-13 18:07:52Z thomas $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=wpa_supplicant_gui
+pkgver=0.7.3
+pkgrel=1
+pkgdesc="A Qt frontend to wpa_supplicant"
+url="http://hostap.epitest.fi/wpa_supplicant"
+arch=('i686' 'x86_64')
+depends=('qt' "wpa_supplicant=$pkgver")
+license=('GPL')
+source=("http://hostap.epitest.fi/releases/wpa_supplicant-$pkgver.tar.gz")
+sha256sums=('d0cd50caa85346ccc376dcda5ed3c258eef19a93b3cade39d25760118ad59443')
+
+build() {
+ cd "${srcdir}/wpa_supplicant-${pkgver}/wpa_supplicant/wpa_gui-qt4"
+ qmake
+ make
+}
+
+package() {
+ cd "${srcdir}/wpa_supplicant-${pkgver}/wpa_supplicant/wpa_gui-qt4"
+ install -Dm755 wpa_gui "${pkgdir}/usr/sbin/wpa_gui"
+ install -Dm644 icons/wpa_gui.svg "${pkgdir}/usr/share/pixmaps/wpa_gui.svg"
+ install -Dm644 wpa_gui.desktop "${pkgdir}/usr/share/applications/wpa_gui.desktop"
+ install -Dm644 "${srcdir}/wpa_supplicant-${pkgver}/wpa_supplicant/doc/docbook/wpa_gui.8" \
+ "${pkgdir}/usr/share/man/man8/wpa_gui.8"
+}
diff --git a/extra/wv/PKGBUILD b/extra/wv/PKGBUILD
new file mode 100644
index 000000000..0e8208ae6
--- /dev/null
+++ b/extra/wv/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 82057 2010-06-08 10:05:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=wv
+pkgver=1.2.7
+pkgrel=1
+pkgdesc="MSWord library can load and parse Word 2000, 97, 95 and 6 file formats"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/wvware"
+license=(GPL)
+depends=('libgsf>=1.14.18' 'libpng>=1.4.2' 'sh')
+makedepends=('pkg-config')
+options=('!libtool')
+source=(http://www.abisource.com/downloads/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz
+ fix-soname.patch)
+sha256sums=('a3a367062e894770fc3ef63bbf7e285cb025253f972fa899c16931f741e856ea'
+ '0fccf12cc5db8481dfcd5cffa987545e060f8bb526c9c910fd76a18468bd7ce1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-soname.patch" || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/wv/fix-soname.patch b/extra/wv/fix-soname.patch
new file mode 100644
index 000000000..81dff86e6
--- /dev/null
+++ b/extra/wv/fix-soname.patch
@@ -0,0 +1,14 @@
+diff -ru wv-1.2.7.orig//configure wv-1.2.7//configure
+--- wv-1.2.7.orig//configure 2009-09-21 12:22:46.000000000 +0200
++++ wv-1.2.7//configure 2010-06-08 12:00:27.948857203 +0200
+@@ -2082,8 +2082,8 @@
+ WV_MAJOR_VERSION=1
+ WV_MINOR_VERSION=2
+ WV_MICRO_VERSION=7
+-WV_INTERFACE_AGE=3
+-WV_BINARY_AGE=3
++WV_INTERFACE_AGE=4
++WV_BINARY_AGE=4
+ WV_VERSION=$WV_MAJOR_VERSION.$WV_MINOR_VERSION.$WV_MICRO_VERSION
+
+
diff --git a/extra/wv2/PKGBUILD b/extra/wv2/PKGBUILD
new file mode 100644
index 000000000..72ebab120
--- /dev/null
+++ b/extra/wv2/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 57827 2009-11-02 14:26:13Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=wv2
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="MSWord 9,8,7,6 formats parser"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/wvware/"
+depends=('libgsf')
+makedepends=('cmake')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/wvware/${pkgname}-${pkgver}.tar.bz2)
+license=('GPL2')
+md5sums=('850ed8e44a84e7bf0610747827018cbc')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DCMAKE_INSTALL_PREFIX=/usr
+
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/wvdial/PKGBUILD b/extra/wvdial/PKGBUILD
new file mode 100644
index 000000000..91026ced8
--- /dev/null
+++ b/extra/wvdial/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 57749 2009-11-01 22:53:25Z giovanni $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=wvdial
+pkgver=1.61
+pkgrel=2
+pkgdesc="A dialer program to connect to the Internet"
+url="http://alumnit.ca/wiki/index.php?page=WvDial"
+arch=('i686' 'x86_64')
+license=('custom')
+depends=('wvstreams>=4.6.1' 'ppp')
+source=(http://wvstreams.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('acd3b2050c9b65fff2aecda6576ee7bc')
+
+build() {
+ unset LDFLAGS
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure
+ make || return 1
+ make prefix=${pkgdir}/usr PPPDIR=${pkgdir}/etc/ppp/peers install || return 1
+ install -Dm644 COPYING.LIB ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/wvstreams/PKGBUILD b/extra/wvstreams/PKGBUILD
new file mode 100644
index 000000000..3abe73609
--- /dev/null
+++ b/extra/wvstreams/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 75519 2010-04-01 18:49:52Z andrea $
+# Maintainer:
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+pkgname=wvstreams
+pkgver=4.6.1
+pkgrel=2
+pkgdesc="A network programming library written in C++"
+arch=('i686' 'x86_64')
+url="http://alumnit.ca/wiki/?page=WvStreams"
+license=('LGPL')
+depends=('zlib' 'pam' 'xplc' "openssl" 'readline')
+source=(http://wvstreams.googlecode.com/files/${pkgname}-${pkgver}.tar.gz)
+md5sums=('2760dac31a43d452a19a3147bfde571c')
+options=('!makeflags')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --without-dbus \
+ --with-pam \
+ --with-openssl \
+ --without-tcl \
+ --without-qt || return 1
+ make COPTS="$CFLAGS -fPIC" CXXOPTS="$CXXFLAGS -fPIC -fpermissive" VERBOSE=1 || return 1
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install || return 1
+
+ # FS#15974
+ # --without-dbus still installs the pkg-config file
+ rm ${pkgdir}/usr/lib/pkgconfig/libwvdbus.pc
+ # --without-qt still installs the pkg-config file
+ rm ${pkgdir}/usr/lib/pkgconfig/libwvqt.pc
+}
diff --git a/extra/wxgtk/PKGBUILD b/extra/wxgtk/PKGBUILD
new file mode 100644
index 000000000..7352b5573
--- /dev/null
+++ b/extra/wxgtk/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 99629 2010-11-15 21:53:38Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=wxgtk
+pkgver=2.8.11
+pkgrel=2
+pkgdesc="GTK+ implementation of wxWidgets API for GUI"
+arch=('i686' 'x86_64')
+url="http://wxwidgets.org"
+license=('custom:wxWindows')
+depends=('gtk2' 'gstreamer0.10-base' 'libgl' 'libxxf86vm')
+makedepends=('libgnomeprintui' 'gstreamer0.10-base-plugins' 'gconf' 'mesa')
+#source=(http://downloads.sourceforge.net/wxpython/wxPython-src-${pkgver}.tar.bz2)
+source=(http://downloads.sourceforge.net/wxwindows/wxGTK-${pkgver}.tar.bz2)
+md5sums=('6040933d200037f90f6aa1c5169e7ec6')
+sha1sums=('e979d9d2b1ee5bd10e90fd00b02f3306327c661a')
+
+build() {
+# cd "${srcdir}/wxPython-src-${pkgver}"
+ cd "${srcdir}/wxGTK-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib --with-gtk=2 --with-opengl --enable-unicode \
+ --enable-graphics_ctx --with-gnomeprint --disable-optimize --enable-mediactrl \
+ --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys
+ make
+ make -C locale allmo
+ cd contrib/src
+ make
+}
+
+package() {
+ cd "${srcdir}/wxGTK-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ cd contrib/src
+ make DESTDIR="${pkgdir}" install
+ install -D -m644 ../../docs/licence.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/wxmaxima/PKGBUILD b/extra/wxmaxima/PKGBUILD
new file mode 100644
index 000000000..2bac890f3
--- /dev/null
+++ b/extra/wxmaxima/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD,v 1.10 2008/05/13 19:03:39 ronald Exp $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Angelo Theodorou <encelo@users.sourceforge.net>
+# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
+
+pkgname=wxmaxima
+pkgver=0.8.6
+pkgrel=1
+pkgdesc="A wxWidgets GUI for the computer algebra system Maxima"
+arch=('i686' 'x86_64')
+url="http://wxmaxima.sourceforge.net/"
+license=('GPL2')
+depends=('maxima' 'libxml2' 'wxgtk')
+source=(http://downloads.sourceforge.net/$pkgname/wxMaxima-$pkgver.tar.gz)
+sha1sums=('124357c83672564ce7ee1bc20ff82c262adae52f')
+
+build() {
+ cd "${srcdir}/wxMaxima-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/wxMaxima-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ # Fix category in .desktop file
+ sed -i -e 's/Utility;X-Red-Hat-Base;X-Red-Hat-Base-Only;/Science;Math;/' wxmaxima.desktop
+
+ # Install desktop file and icon
+ install -m755 -d "${pkgdir}/usr/share/applications"
+ install -m755 -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 wxmaxima.desktop "${pkgdir}/usr/share/applications/"
+ install -m644 data/wxmaxima.png "${pkgdir}/usr/share/pixmaps/"
+}
diff --git a/extra/wxpython/ChangeLog b/extra/wxpython/ChangeLog
new file mode 100644
index 000000000..02c759e01
--- /dev/null
+++ b/extra/wxpython/ChangeLog
@@ -0,0 +1,48 @@
+2010-08-21 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.11.0-2
+ * Rebuilt for python2
+
+2010-06-03 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.11.0-1
+ * Upstream update
+
+2010-05-08 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.10.1-2
+ * Rebuilt against wxgtk 2.8.11
+ * Added mediactrl support (close FS#18522)
+
+2009-05-18 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.10.1-1
+ * Upstream update
+ * Added patch for editra
+
+2009-05-05 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.9.2-2
+ * Rebuilt against wxgtk 2.8.10
+
+2009-03-06 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.9.2-1
+ * Upstream update
+
+2008-10-28 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.9.1-1
+ * Upstream update
+ * Python 2.6 rebuild
+
+2008-08-19 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.8.1-1
+ * Upstream update
+
+2008-07-05 Eric Belanger <eric@archlinux.org>
+
+ * wxpython 2.8.8.0-1
+ * Upstream update
+ * Added ChangeLog
diff --git a/extra/wxpython/PKGBUILD b/extra/wxpython/PKGBUILD
new file mode 100644
index 000000000..b9375cca7
--- /dev/null
+++ b/extra/wxpython/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 88207 2010-08-21 05:14:19Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Andrew Wright <andreww@photism.org>
+
+pkgname=wxpython
+pkgver=2.8.11.0
+pkgrel=2
+pkgdesc="A wxWidgets GUI toolkit for Python"
+arch=('i686' 'x86_64')
+license=('custom:wxWindows')
+url="http://www.wxpython.org"
+depends=('wxgtk' 'python2')
+makedepends=('mesa')
+changelog=ChangeLog
+source=(http://downloads.sourceforge.net/wxpython/wxPython-src-${pkgver}.tar.bz2 editra-aui.diff)
+md5sums=('63f73aae49e530852db56a31b57529fa' '06c637c34c1570d8c82b870ce19c0622')
+sha1sums=('18982edc236a1d87e4eef018928358c925aa5b17' '077fe341bf8822647934d6b1ea82ce9b0adbf93a')
+
+build() {
+ cd "${srcdir}/wxPython-src-${pkgver}"
+ patch -p1 < ../editra-aui.diff
+ ./configure --prefix=/usr --libdir=/usr/lib --with-gtk=2 --with-opengl --enable-unicode \
+ --enable-graphics_ctx --with-gnomeprint --disable-optimize --enable-mediactrl \
+ --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys
+ cd "${srcdir}/wxPython-src-${pkgver}/wxPython"
+ python2 setup.py WXPORT=gtk2 UNICODE=1 build
+}
+
+package() {
+ cd "${srcdir}/wxPython-src-${pkgver}/wxPython"
+ python2 setup.py WXPORT=gtk2 UNICODE=1 install --root="${pkgdir}"
+ install -D -m644 ../docs/licence.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/wxpython/editra-aui.diff b/extra/wxpython/editra-aui.diff
new file mode 100644
index 000000000..afdcf9f8f
--- /dev/null
+++ b/extra/wxpython/editra-aui.diff
@@ -0,0 +1,11 @@
+diff -Naur wxPython-src-2.8.11.0-orig/wxPython/setup.py wxPython-src-2.8.11.0/wxPython/setup.py
+--- wxPython-src-2.8.11.0-orig/wxPython/setup.py 2010-06-04 04:15:47.000000000 -0400
++++ wxPython-src-2.8.11.0/wxPython/setup.py 2010-06-04 04:18:36.000000000 -0400
+@@ -893,6 +893,7 @@
+ 'wx.tools.Editra.src.eclib',
+ 'wx.tools.Editra.src.ebmlib',
+ 'wx.tools.Editra.src.extern',
++ 'wx.tools.Editra.src.extern.aui',
+ 'wx.tools.Editra.src.syntax',
+ ]
+
diff --git a/extra/x11vnc/PKGBUILD b/extra/x11vnc/PKGBUILD
new file mode 100644
index 000000000..15d64aa92
--- /dev/null
+++ b/extra/x11vnc/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 91112 2010-09-22 19:40:25Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=x11vnc
+pkgver=0.9.12
+pkgrel=1
+pkgdesc='VNC server for real X displays'
+arch=('i686' 'x86_64')
+url='http://www.karlrunge.com/x11vnc/'
+license=('GPL2')
+depends=('openssl' 'libjpeg' 'zlib' 'libx11' 'libxtst' 'libxinerama' 'libxdamage' 'libxrandr' 'avahi')
+optdepends=('tk: for GUI support')
+backup=('etc/conf.d/x11vnc')
+source=("http://downloads.sourceforge.net/libvncserver/${pkgname}-${pkgver}.tar.gz"
+ 'x11vnc.rc'
+ 'x11vnc.conf')
+sha1sums=('cf4e24bee5962b52d8f2a5442a7c44943a9cc0bb'
+ '3abb3fcadff32662ab847a9e772cd23cfdfe3d1a'
+ '11011cce06511e9ba61672a1c80bb63a3a187539')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -fr "${pkgdir}"/usr/include/rfb # provided by libvncserver
+
+ install -D -m 755 "${srcdir}/x11vnc.rc" "${pkgdir}/etc/rc.d/x11vnc"
+ install -D -m 644 "${srcdir}/x11vnc.conf" "${pkgdir}/etc/conf.d/x11vnc"
+}
diff --git a/extra/x11vnc/x11vnc.conf b/extra/x11vnc/x11vnc.conf
new file mode 100644
index 000000000..8a81e3286
--- /dev/null
+++ b/extra/x11vnc/x11vnc.conf
@@ -0,0 +1,5 @@
+#
+# Parameters to be passed to x11vnc
+#
+
+X11VNC_ARGS=""
diff --git a/extra/x11vnc/x11vnc.rc b/extra/x11vnc/x11vnc.rc
new file mode 100644
index 000000000..d7bbdd15e
--- /dev/null
+++ b/extra/x11vnc/x11vnc.rc
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/x11vnc
+
+PID=$(pidof -o %PPID /usr/bin/x11vnc)
+case "$1" in
+ start)
+ stat_busy "Starting x11vnc"
+ [ -z "$PID" ] && /usr/bin/x11vnc $X11VNC_ARGS &> /dev/null &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon x11vnc
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping x11vnc"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon x11vnc
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/extra/x264/PKGBUILD b/extra/x264/PKGBUILD
new file mode 100644
index 000000000..a0aacc6ea
--- /dev/null
+++ b/extra/x264/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 117096 2011-03-28 18:20:15Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Contributor: Paul Mattal <paul@archlinux.org>
+
+pkgname=x264
+pkgver=20110327
+pkgrel=1
+pkgdesc="free library for encoding H264/AVC video streams"
+arch=('i686' 'x86_64')
+url="http://www.videolan.org/developers/x264.html"
+license=('GPL')
+depends=('glibc')
+makedepends=('yasm')
+source=(ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-$pkgver-2245.tar.bz2)
+md5sums=('7579aff8166a974a1b293cd18b9ead92')
+
+build() {
+ cd "$srcdir/$pkgname-snapshot-$pkgver-2245"
+
+ ./configure --enable-shared
+
+ make
+ make DESTDIR="$pkgdir" \
+ bindir=/usr/bin \
+ libdir=/usr/lib \
+ includedir=/usr/include \
+ install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/x2x/LICENSE b/extra/x2x/LICENSE
new file mode 100644
index 000000000..99ff948f8
--- /dev/null
+++ b/extra/x2x/LICENSE
@@ -0,0 +1,39 @@
+/*
+ * x2x: Uses the XTEST extension to forward keystrokes from a window on
+ * one display to another display. Useful for desks
+ * with multiple keyboards.
+ *
+ * Copyright (c) 1997
+ * Digital Equipment Corporation. All rights reserved.
+ *
+ * By downloading, installing, using, modifying or distributing this
+ * software, you agree to the following:
+ *
+ * 1. CONDITIONS. Subject to the following conditions, you may download,
+ * install, use, modify and distribute this software in source and binary
+ * forms:
+ *
+ * a) Any source code, binary code and associated documentation
+ * (including the online manual) used, modified or distributed must
+ * reproduce and retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * b) No right is granted to use any trade name, trademark or logo of
+ * Digital Equipment Corporation. Neither the "Digital Equipment
+ * Corporation" name nor any trademark or logo of Digital Equipment
+ * Corporation may be used to endorse or promote products derived from
+ * this software without the prior written permission of Digital
+ * Equipment Corporation.
+ *
+ * 2. DISCLAIMER. THIS SOFTWARE IS PROVIDED BY DIGITAL "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
diff --git a/extra/x2x/PKGBUILD b/extra/x2x/PKGBUILD
new file mode 100644
index 000000000..bccbba6a4
--- /dev/null
+++ b/extra/x2x/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: PKGBUILD 36334 2009-04-21 02:04:21Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+pkgname=x2x
+pkgver=1.27
+pkgrel=5
+pkgdesc="Control one X display from another"
+arch=(i686 x86_64)
+url="http://x2x.dottedmag.net/"
+license=('custom')
+depends=('libxtst')
+makedepends=('imake')
+source=(http://x2x.dottedmag.net/releases/$pkgname-$pkgver.tar.gz LICENSE)
+md5sums=('3d1bc863f3209ec37caf7f57bde7e8f0' '7ebc35f66a8ded9b8d8d7ca4131c7ae8')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ mv x2x.1 x2x.man
+ xmkmf || return 1
+ make || return 1
+ make DESTDIR=$pkgdir MANPATH=/usr/share/man install install.man || return 1
+ install -D -m644 ../LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/xaos/ChangeLog b/extra/xaos/ChangeLog
new file mode 100644
index 000000000..7554cd7b3
--- /dev/null
+++ b/extra/xaos/ChangeLog
@@ -0,0 +1,24 @@
+2010-02-06 Eric Belanger <eric@archlinux.org>
+
+ * xaos 3.5-3
+ * Added aalib support
+ * Removed unneeded depends
+ * Improved description
+
+2010-01-19 Eric Belanger <eric@archlinux.org>
+
+ * xaos 3.5-2
+ * Rebuilt for libpng 1.4 and libjpeg 8
+
+2009-07-21 Eric Belanger <eric@archlinux.org>
+
+ * xaos 3.5-1
+ * Upstream update
+ * Added texinfo depends
+
+2008-11-08 Eric Belanger <eric@archlinux.org>
+
+ * xaos 3.4-1
+ * Upstream update
+ * Added install scriptlet for info file
+ * Added ChangeLog
diff --git a/extra/xaos/PKGBUILD b/extra/xaos/PKGBUILD
new file mode 100644
index 000000000..4f958385b
--- /dev/null
+++ b/extra/xaos/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 67322 2010-02-06 10:00:38Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=xaos
+pkgver=3.5
+pkgrel=3
+pkgdesc="A fast portable real-time interactive fractal zoomer"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/xaos/"
+license=('GPL')
+depends=('gsl' 'libpng' 'aalib')
+options=('!makeflags')
+install=xaos.install
+source=(http://downloads.sourceforge.net/sourceforge/xaos/${pkgname}-${pkgver}.tar.gz)
+md5sums=('465d1469b276501a58bf325e493ea591')
+sha1sums=('6d16a58187fba7276e6bd0547cc2fd6bb073b801')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-gsl --with-aa-driver || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/xaos/xaos.install b/extra/xaos/xaos.install
new file mode 100644
index 000000000..1de05a018
--- /dev/null
+++ b/extra/xaos/xaos.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(xaos.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/extra/xarchiver/ChangeLog b/extra/xarchiver/ChangeLog
new file mode 100644
index 000000000..c3abc0d0e
--- /dev/null
+++ b/extra/xarchiver/ChangeLog
@@ -0,0 +1,9 @@
+2008-11-27 Alexander Fehr <pizzapunk gmail com>
+
+ * xarchiver-0.5.2-1:
+ New upstream release.
+ New maintainer.
+ Changed license to GPL.
+ Added dependencies on desktop-file-utils and hicolor-icon-theme.
+ Replaced install message with optdepends.
+ Added ChangeLog.
diff --git a/extra/xarchiver/PKGBUILD b/extra/xarchiver/PKGBUILD
new file mode 100644
index 000000000..4934636fc
--- /dev/null
+++ b/extra/xarchiver/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 20752 2008-12-06 14:28:02Z alexanderf $
+# Maintainer: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Andrew Simmons <andrew.simmons@gmail.com>
+
+pkgname=xarchiver
+pkgver=0.5.2
+pkgrel=1
+pkgdesc="GTK+ frontend to various command line archivers"
+arch=('i686' 'x86_64')
+url="http://xarchiver.xfce.org/"
+license=('GPL')
+groups=('xfce4-goodies')
+depends=('gtk2' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool')
+optdepends=('tar: TAR support'
+ 'gzip: GZIP support'
+ 'bzip2: BZIP2 support'
+ 'zip: ZIP support'
+ 'unzip: ZIP support'
+ 'unrar: RAR support'
+ 'p7zip: 7z support'
+ 'arj: ARJ support'
+ 'lha: LHA support'
+ 'lzma-utils: LZMA support'
+ 'lzop: LZOP support')
+options=('!libtool')
+install=xarchiver.install
+source=(http://downloads.sourceforge.net/xarchiver/xarchiver-$pkgver.tar.bz2)
+md5sums=('2bc7f06403cc6582dd4a8029ec9d038d')
+
+build() {
+ cd "$srcdir/xarchiver-$pkgver"
+
+ ./configure --prefix=/usr --libexecdir=/usr/lib/xfce4 || return 1
+ make || return 1
+ make DESTDIR="$pkgdir" install || return 1
+}
diff --git a/extra/xarchiver/xarchiver.install b/extra/xarchiver/xarchiver.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/extra/xarchiver/xarchiver.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/xaw3d/ChangeLog b/extra/xaw3d/ChangeLog
new file mode 100644
index 000000000..077b24d3d
--- /dev/null
+++ b/extra/xaw3d/ChangeLog
@@ -0,0 +1,15 @@
+2009-05-10 Jan de Groot <jgc@archlinux.org>
+
+ * xaw3d 1.5E-2
+ * Build without libxp (requires latest imake)
+ * Simplify PKGBUILD a bit
+ * Add extra patches from Fedora
+ * Fix URL
+
+2008-12-14 Eric Belanger <eric@archlinux.org>
+
+ * xaw3d 1.5E-1
+ * Upstream update
+ * Updated url
+ * Added misc. patches
+ * Added ChangeLog
diff --git a/extra/xaw3d/LICENSE b/extra/xaw3d/LICENSE
new file mode 100644
index 000000000..395de2d9b
--- /dev/null
+++ b/extra/xaw3d/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 1989 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
diff --git a/extra/xaw3d/PKGBUILD b/extra/xaw3d/PKGBUILD
new file mode 100644
index 000000000..5cbb0e0a1
--- /dev/null
+++ b/extra/xaw3d/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 38896 2009-05-10 18:12:17Z jgc $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=xaw3d
+pkgver=1.5E
+pkgrel=2
+pkgdesc="Three-D Athena widgets"
+arch=('i686' 'x86_64')
+url="http://directory.fsf.org/project/xaw3d/"
+license=('MIT')
+depends=('libxmu' 'libxpm')
+makedepends=('imake')
+options=('!makeflags' 'force')
+source=(ftp://ftp.visi.com/users/hawkeyd/X/Xaw3d-${pkgver}.tar.gz
+ Xaw3d-1.5E-xorg-imake.patch
+ Xaw3d-1.5-i18n.patch
+ Xaw3d-1.5-box.c.patch
+ Xaw3d-1.5-debian-fixes.patch
+ xaw3d.patch
+ Xaw3d-1.5E-warnings.patch
+ Xaw3d-ia64.patch
+ LICENSE)
+md5sums=('29ecfdcd6bcf47f62ecfd672d31269a1'
+ '2cca7950cf7d270609bc810b8996f0a9'
+ 'e7105bc1452f0c5f5d0bcdcf212aac0c'
+ 'c061ab65467766f5817752ef216e3cc2'
+ '33bf0f1b52822b7293a3f45474178dfe'
+ '5acb23e5a52c75e62a22aef59882df14'
+ 'c3aa4cbf95442081e7af810c13306cc9'
+ 'f766e8eb6371cbb1f68af4f2932dc118'
+ '5b6b0242b3f53b7fe308e702abe28561')
+
+build() {
+ cd "${srcdir}/xc/lib/Xaw3d"
+ patch -Np0 -i "${srcdir}/Xaw3d-1.5E-xorg-imake.patch" || return 1
+ patch -Np4 -i "${srcdir}/xaw3d.patch" || return 1
+ patch -Np4 -i "${srcdir}/Xaw3d-ia64.patch" || return 1
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5-i18n.patch" || return 1
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5-box.c.patch" || return 1
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5-debian-fixes.patch" || return 1
+ patch -Np4 -i "${srcdir}/Xaw3d-1.5E-warnings.patch" || return 1
+
+ ln -s .. X11
+ xmkmf || return 1
+ make CDEBUGFLAGS="${CFLAGS} -DARROW_SCROLLBAR"
+ make DESTDIR="${pkgdir}" SHLIBDIR=/usr/lib INCDIR=/usr/include install || return 1
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/xaw3d/Xaw3d-1.5-box.c.patch b/extra/xaw3d/Xaw3d-1.5-box.c.patch
new file mode 100644
index 000000000..252238af8
--- /dev/null
+++ b/extra/xaw3d/Xaw3d-1.5-box.c.patch
@@ -0,0 +1,27 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## box.c.dpatch by Francesco Paolo Lovergine <frankie@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+@DPATCH@
+diff -urNad xaw3d-1.5+E~/lib/Xaw3d/Box.c xaw3d-1.5+E/lib/Xaw3d/Box.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Box.c 1996-10-15 16:41:18.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Box.c 2007-04-24 15:28:39.000000000 +0200
+@@ -353,8 +353,16 @@
+ else {
+ width = preferred_width;
+ do { /* find some width big enough to stay within this height */
++#if 0
+ width *= 2;
+ if (width > constraint->width) width = constraint->width;
++#endif
++ if (width > constraint->width/2) { /* avoid short int overflow */
++ width = constraint->width;
++ }
++ else {
++ width *= 2;
++ }
+ DoLayout(w, width, 0, &preferred_width, &preferred_height, FALSE);
+ } while (preferred_height > constraint->height &&
+ width < constraint->width);
diff --git a/extra/xaw3d/Xaw3d-1.5-debian-fixes.patch b/extra/xaw3d/Xaw3d-1.5-debian-fixes.patch
new file mode 100644
index 000000000..5593f249b
--- /dev/null
+++ b/extra/xaw3d/Xaw3d-1.5-debian-fixes.patch
@@ -0,0 +1,647 @@
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c.debian 2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrc.c 2008-10-06 11:42:13.000000000 +0200
+@@ -51,11 +51,17 @@ in this Software without prior written a
+ #include <X11/Xaw3d/MultiSrcP.h>
+ #endif
+
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+
+ #if (defined(ASCII_STRING) || defined(ASCII_DISK))
+ # include <X11/Xaw3d/AsciiText.h> /* for Widget Classes. */
+ #endif
+
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+
+ /****************************************************************
+ *
+@@ -1007,7 +1013,9 @@ InitStringOrFile(src, newString)
+ AsciiSrcObject src;
+ Boolean newString;
+ {
+- char * open_mode = NULL;
++ mode_t open_mode = 0;
++ const char *fdopen_mode = NULL;
++ int fd;
+ FILE * file;
+ char fileName[TMPSIZ];
+
+@@ -1049,7 +1057,8 @@ Boolean newString;
+ XtErrorMsg("NoFile", "asciiSourceCreate", "XawError",
+ "Creating a read only disk widget and no file specified.",
+ NULL, 0);
+- open_mode = "r";
++ open_mode = O_RDONLY;
++ fdopen_mode = "r";
+ break;
+ case XawtextAppend:
+ case XawtextEdit:
+@@ -1057,9 +1066,17 @@ Boolean newString;
+ src->ascii_src.string = fileName;
+ (void) tmpnam(src->ascii_src.string);
+ src->ascii_src.is_tempfile = TRUE;
+- open_mode = "w";
+- } else
+- open_mode = "r+";
++ open_mode = O_WRONLY | O_CREAT | O_EXCL;
++ fdopen_mode = "w";
++ } else {
++/* O_NOFOLLOW is a BSD & Linux extension */
++#ifdef O_NOFOLLOW
++ open_mode = O_RDWR | O_NOFOLLOW;
++#else
++ open_mode = O_RDWR; /* unsafe; subject to race conditions */
++#endif
++ fdopen_mode = "r+";
++ }
+ break;
+ default:
+ XtErrorMsg("badMode", "asciiSourceCreate", "XawError",
+@@ -1078,11 +1095,14 @@ Boolean newString;
+ }
+
+ if (!src->ascii_src.is_tempfile) {
+- if ((file = fopen(src->ascii_src.string, open_mode)) != 0) {
+- (void) fseek(file, (Off_t)0, 2);
+- src->ascii_src.length = (XawTextPosition) ftell(file);
+- return file;
+- } else {
++ if ((fd = open(src->ascii_src.string, open_mode, 0666))) {
++ if ((file = fdopen(fd, fdopen_mode)) != NULL) {
++ (void)fseek(file, 0, SEEK_END);
++ src->ascii_src.length = (XawTextPosition)ftell(file);
++ return (file);
++ }
++ }
++ {
+ String params[2];
+ Cardinal num_params = 2;
+
+@@ -1094,7 +1114,7 @@ Boolean newString;
+ }
+ }
+ src->ascii_src.length = 0;
+- return((FILE *)NULL);
++ return(NULL);
+ }
+
+ static void
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h.debian Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h
+--- Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h.debian 1996-10-15 16:41:18.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/AsciiSrcP.h 2008-10-06 11:42:13.000000000 +0200
+@@ -85,7 +85,11 @@ SOFTWARE.
+ #ifdef L_tmpnam
+ #define TMPSIZ L_tmpnam
+ #else
+-#define TMPSIZ 32 /* bytes to allocate for tmpnam */
++#ifdef PATH_MAX
++#define TMPSIZ PATH_MAX
++#else
++#define TMPSIZ 1024 /* bytes to allocate for tmpnam */
++#endif
+ #endif
+
+ #define MAGIC_VALUE ((XawTextPosition) -1) /* Magic value. */
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c.debian 1996-10-15 16:41:20.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/MenuButton.c 2008-10-06 11:42:13.000000000 +0200
+@@ -53,6 +53,8 @@ in this Software without prior written a
+ #include <X11/Xaw3d/XawInit.h>
+ #include <X11/Xaw3d/MenuButtoP.h>
+
++#include "XawAlloc.h"
++
+ static void ClassInitialize();
+ static void PopupMenu();
+
+@@ -179,9 +181,16 @@ Cardinal * num_params;
+
+ if (menu == NULL) {
+ char error_buf[BUFSIZ];
+- (void) sprintf(error_buf, "MenuButton: %s %s.",
+- "Could not find menu widget named", mbw->menu_button.menu_name);
+- XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
++ char *err1 = "MenuButton: Could not find menu widget named ";
++ char *perr;
++ int len;
++
++ len = strlen(err1) + strlen(mbw->menu_button.menu_name) + 1 + 1;
++ perr = XtStackAlloc(len, error_buf);
++ if (perr == NULL) return;
++ sprintf(perr, "%s%s.", err1, mbw->menu_button.menu_name);
++ XtAppWarning(XtWidgetToApplicationContext(w), perr);
++ XtStackFree(perr, error_buf);
+ return;
+ }
+ if (!XtIsRealized(menu))
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c.debian 2008-10-06 11:42:13.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c 2008-10-06 11:42:13.000000000 +0200
+@@ -74,6 +74,9 @@ in this Software without prior written a
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+
+ /****************************************************************
+ *
+@@ -1077,7 +1080,9 @@ InitStringOrFile(src, newString)
+ MultiSrcObject src;
+ Boolean newString;
+ {
+- char * open_mode = NULL;
++ mode_t open_mode = 0;
++ const char *fdopen_mode = NULL;
++ int fd;
+ FILE * file;
+ char fileName[TMPSIZ];
+ Display *d = XtDisplayOfObject((Widget)src);
+@@ -1128,7 +1133,8 @@ InitStringOrFile(src, newString)
+ XtErrorMsg("NoFile", "multiSourceCreate", "XawError",
+ "Creating a read only disk widget and no file specified.",
+ NULL, 0);
+- open_mode = "r";
++ open_mode = O_RDONLY;
++ fdopen_mode = "r";
+ break;
+ case XawtextAppend:
+ case XawtextEdit:
+@@ -1141,9 +1147,17 @@ InitStringOrFile(src, newString)
+
+ (void) tmpnam(src->multi_src.string);
+ src->multi_src.is_tempfile = TRUE;
+- open_mode = "w";
+- } else
+- open_mode = "r+";
++ open_mode = O_WRONLY | O_CREAT | O_EXCL;
++ fdopen_mode = "w";
++ } else {
++/* O_NOFOLLOW is a BSD & Linux extension */
++#ifdef O_NOFOLLOW
++ open_mode = O_RDWR | O_NOFOLLOW;
++#else
++ open_mode = O_RDWR; /* unsafe; subject to race conditions */
++#endif
++ fdopen_mode = "r+";
++ }
+ break;
+ default:
+ XtErrorMsg("badMode", "multiSourceCreate", "XawError",
+@@ -1162,11 +1176,14 @@ InitStringOrFile(src, newString)
+ }
+
+ if (!src->multi_src.is_tempfile) {
+- if ((file = fopen(src->multi_src.string, open_mode)) != 0) {
+- (void) fseek(file, (Off_t)0, 2);
+- src->multi_src.length = ftell (file);
+- return file;
+- } else {
++ if ((fd = open(src->multi_src.string, open_mode, 0666))) {
++ if ((file = fdopen(fd, fdopen_mode)) != NULL) {
++ (void)fseek(file, 0, SEEK_END);
++ src->multi_src.length = (XawTextPosition)ftell(file);
++ return (file);
++ }
++ }
++ {
+ String params[2];
+ Cardinal num_params = 2;
+
+@@ -1178,7 +1195,7 @@ InitStringOrFile(src, newString)
+ }
+ }
+ src->multi_src.length = 0;
+- return((FILE *)NULL);
++ return(NULL);
+ #undef StrLen
+ }
+
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h.debian Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h.debian 1996-10-15 16:41:21.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrcP.h 2008-10-06 11:42:13.000000000 +0200
+@@ -113,7 +113,11 @@ SOFTWARE.
+ #ifdef L_tmpnam
+ #define TMPSIZ L_tmpnam
+ #else
+-#define TMPSIZ 32 /* bytes to allocate for tmpnam */
++#ifdef PATH_MAX
++#define TMPSIZ PATH_MAX
++#else
++#define TMPSIZ 1024 /* bytes to allocate for tmpnam */
++#endif
+ #endif
+
+ #define MAGIC_VALUE ((XawTextPosition) -1) /* Magic value. */
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c.debian 2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Simple.c 2008-10-06 11:42:13.000000000 +0200
+@@ -56,6 +56,8 @@ SOFTWARE.
+ #include <X11/Xaw3d/SimpleP.h>
+ #include <X11/Xmu/Drawing.h>
+
++#include "XawAlloc.h"
++
+ #define offset(field) XtOffsetOf(SimpleRec, simple.field)
+
+ static XtResource resources[] = {
+@@ -148,11 +150,17 @@ static void ClassPartInitialize(class)
+
+ if (c->simple_class.change_sensitive == NULL) {
+ char buf[BUFSIZ];
+-
+- (void) sprintf(buf,
+- "%s Widget: The Simple Widget class method 'change_sensitive' is undefined.\nA function must be defined or inherited.",
+- c->core_class.class_name);
+- XtWarning(buf);
++ char *pbuf;
++ char *msg1 = " Widget: The Simple Widget class method 'change_sensitive' is undefined.\nA function must be defined or inherited.";
++ int len;
++
++ len = strlen(msg1) + strlen(c->core_class.class_name) + 1;
++ pbuf = XtStackAlloc(len, buf);
++ if (pbuf != NULL) {
++ sprintf(pbuf, "%s%s", c->core_class.class_name, msg1);
++ XtWarning(pbuf);
++ XtStackFree(pbuf, buf);
++ }
+ c->simple_class.change_sensitive = ChangeSensitive;
+ }
+
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c.debian 2003-02-17 07:45:07.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/SimpleMenu.c 2008-10-06 11:42:13.000000000 +0200
+@@ -51,6 +51,8 @@ in this Software without prior written a
+ #include <X11/Xmu/Initer.h>
+ #include <X11/Xmu/CharSet.h>
+
++#include "XawAlloc.h"
++
+ #define streq(a, b) ( strcmp((a), (b)) == 0 )
+
+ #define offset(field) XtOffsetOf(SimpleMenuRec, simple_menu.field)
+@@ -755,9 +757,17 @@ Cardinal * num_params;
+
+ if ( (menu = FindMenu(w, params[0])) == NULL) {
+ char error_buf[BUFSIZ];
+- (void) sprintf(error_buf, "%s '%s'",
+- "Xaw - SimpleMenuWidget: could not find menu named: ", params[0]);
+- XtAppWarning(XtWidgetToApplicationContext(w), error_buf);
++ char *err1 = "Xaw - SimpleMenuWidget: could not find menu named: ";
++ char *perr;
++ int len;
++
++ len = strlen(err1) + strlen(params[0]) + 2 + 1;
++ perr = XtStackAlloc(len, error_buf);
++ if (perr == NULL)
++ return;
++ sprintf(perr, "%s'%s'", err1, params[0]);
++ XtAppWarning(XtWidgetToApplicationContext(w), perr);
++ XtStackFree(perr, error_buf);
+ return;
+ }
+
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c.debian 2003-02-10 18:18:00.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/StripChart.c 2008-10-06 11:42:13.000000000 +0200
+@@ -315,7 +315,15 @@ XtIntervalId *id; /* unused */
+ if (w->strip_chart.points != NULL) {
+ w->strip_chart.points[0].x = w->strip_chart.interval + s;
+ XDrawPoints(XtDisplay(w), XtWindow(w), w->strip_chart.hiGC,
+- w->strip_chart.points, w->strip_chart.scale,
++ /*
++ * patch:
++ *
++ * w->strip_chart.points, w->strip_chart.scale,
++ *
++ * this to avoid a subdle bug of extra spurios scan
++ * line in this widget.
++ */
++ w->strip_chart.points, w->strip_chart.scale - 1,
+ CoordModePrevious);
+ }
+
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/Text.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.debian 2008-10-06 11:42:13.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Text.c 2008-10-06 11:43:16.000000000 +0200
+@@ -76,6 +76,8 @@ SOFTWARE.
+ #include <ctype.h> /* for isprint() */
+ #include <stdlib.h>
+
++#include "XawAlloc.h"
++
+ #ifndef MAX_LEN_CT
+ #define MAX_LEN_CT 6 /* for sequence: ESC $ ( A \xx \xx */
+ #endif
+@@ -521,6 +523,8 @@ Cardinal *num_args; /* unused */
+ TextWidget ctx = (TextWidget) new;
+ char error_buf[BUFSIZ];
+ int s;
++ char *perr; /* frankie */
++ size_t len; /* frankie */
+
+ ctx->text.threeD = XtVaCreateWidget("threeD", threeDWidgetClass, new,
+ XtNx, 0, XtNy, 0,
+@@ -569,10 +573,17 @@ Cardinal *num_args; /* unused */
+ if (ctx->text.scroll_vert != XawtextScrollNever)
+ if ( (ctx->text.resize == XawtextResizeHeight) ||
+ (ctx->text.resize == XawtextResizeBoth) ) {
+- (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name,
+- "Vertical scrolling not allowed with height resize.\n",
+- "Vertical scrolling has been DEACTIVATED.");
+- XtAppWarning(XtWidgetToApplicationContext(new), error_buf);
++ char *err1 = "Xaw Text Widget ";
++ char *err2 = ":\nVertical scrolling not allowed with height resize.\n";
++ char *err3 = "Vertical scrolling has been DEACTIVATED.";
++ len = strlen(err1) + strlen(err2) + strlen(err3) +
++ strlen(ctx->core.name) + 1;
++ perr = XtStackAlloc(len, error_buf);
++ if (perr != NULL) {
++ (void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3);
++ XtAppWarning(XtWidgetToApplicationContext(new), perr);
++ XtStackFree(perr, error_buf);
++ }
+ ctx->text.scroll_vert = XawtextScrollNever;
+ }
+ else if (ctx->text.scroll_vert == XawtextScrollAlways)
+@@ -580,18 +591,32 @@ Cardinal *num_args; /* unused */
+
+ if (ctx->text.scroll_horiz != XawtextScrollNever)
+ if (ctx->text.wrap != XawtextWrapNever) {
+- (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name,
+- "Horizontal scrolling not allowed with wrapping active.\n",
+- "Horizontal scrolling has been DEACTIVATED.");
+- XtAppWarning(XtWidgetToApplicationContext(new), error_buf);
++ char *err1 = "Xaw Text Widget ";
++ char *err2 = ":\nHorizontal scrolling not allowed with wrapping active.";
++ char *err3 = "\nHorizontal scrolling has been DEACTIVATED.";
++ len = strlen(err1) + strlen(err2) + strlen(err3) +
++ strlen(ctx->core.name) + 1;
++ perr = XtStackAlloc(len, error_buf);
++ if (perr != NULL) {
++ (void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3);
++ XtAppWarning(XtWidgetToApplicationContext(new), perr);
++ XtStackFree(perr, error_buf);
++ }
+ ctx->text.scroll_horiz = XawtextScrollNever;
+ }
+ else if ( (ctx->text.resize == XawtextResizeWidth) ||
+ (ctx->text.resize == XawtextResizeBoth) ) {
+- (void) sprintf(error_buf, "Xaw Text Widget %s:\n %s %s.", ctx->core.name,
+- "Horizontal scrolling not allowed with width resize.\n",
+- "Horizontal scrolling has been DEACTIVATED.");
+- XtAppWarning(XtWidgetToApplicationContext(new), error_buf);
++ char *err1 = "Xaw Text Widget ";
++ char *err2 = ":\nHorizontal scrolling not allowed with width resize.\n";
++ char *err3 = "Horizontal scrolling has been DEACTIVATED.";
++ len = strlen(err1) + strlen(err2) + strlen(err3) +
++ strlen(ctx->core.name) + 1;
++ perr = XtStackAlloc(len, error_buf);
++ if (perr != NULL) {
++ (void) sprintf(perr, "%s%s%s%s", err1, ctx->core.name, err2, err3);
++ XtAppWarning(XtWidgetToApplicationContext(new), perr);
++ XtStackFree(perr, error_buf);
++ }
+ ctx->text.scroll_horiz = XawtextScrollNever;
+ }
+ else if (ctx->text.scroll_horiz == XawtextScrollAlways)
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c.debian Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c.debian 2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c 2008-10-06 11:42:13.000000000 +0200
+@@ -66,6 +66,8 @@ in this Software without prior written a
+ #include <X11/Xos.h> /* for O_RDONLY */
+ #include <errno.h>
+
++#include "XawAlloc.h"
++
+ #ifdef X_NOT_STDC_ENV
+ extern int errno;
+ #endif
+@@ -809,6 +811,8 @@ DoSearch(search)
+ struct SearchAndReplace * search;
+ {
+ char msg[BUFSIZ];
++ char *pmsg;
++ int len;
+ Widget tw = XtParent(search->search_popup);
+ XawTextPosition pos;
+ XawTextScanDirection dir;
+@@ -835,9 +839,20 @@ struct SearchAndReplace * search;
+ /* The Raw string in find.ptr may be WC I can't use here, so I re - call
+ GetString to get a tame version. */
+
+- if (pos == XawTextSearchError)
+- (void) sprintf( msg, "Could not find string ``%s''.", GetString( search->search_text ) );
+- else {
++ if (pos == XawTextSearchError) {
++ char *msg1 = "Could not find string ``";
++ char *msg2 = "''.";
++ len = strlen(msg1) + strlen(msg2) +
++ strlen(GetString( search->search_text )) + 1;
++ pmsg = XtStackAlloc(len, msg);
++ if (pmsg != NULL) {
++ (void) sprintf( pmsg, "%s%s%s", msg1, GetString( search->search_text ),
++ msg2);
++ } else {
++ pmsg = msg;
++ (void) sprintf( pmsg, "Could not find string");
++ }
++ } else {
+ if (dir == XawsdRight)
+ XawTextSetInsertionPoint( tw, pos + text.length);
+ else
+@@ -849,7 +864,8 @@ struct SearchAndReplace * search;
+ }
+
+ XawTextUnsetSelection(tw);
+- SetSearchLabels(search, msg, "", TRUE);
++ SetSearchLabels(search, pmsg, "", TRUE);
++ XtStackFree(pmsg, msg);
+ return(FALSE);
+ }
+
+@@ -982,13 +998,26 @@ Boolean once_only, show_current;
+ if ( (new_pos == XawTextSearchError) ) {
+ if (count == 0) {
+ char msg[BUFSIZ];
++ char *pmsg;
++ int len;
++ char *msg1 = "*** Error: Could not find string ``";
++ char *msg2 = "''. ***";
+
+ /* The Raw string in find.ptr may be WC I can't use here,
+ so I call GetString to get a tame version.*/
+
+- (void) sprintf( msg, "%s %s %s", "*** Error: Could not find string ``",
+- GetString( search->search_text ), "''. ***");
+- SetSearchLabels(search, msg, "", TRUE);
++ len = strlen(msg1) + strlen(msg2) +
++ strlen(GetString( search->search_text )) + 1;
++ pmsg = XtStackAlloc(len, msg);
++ if (pmsg != NULL) {
++ (void) sprintf( pmsg, "%s%s%s", msg1,
++ GetString( search->search_text ), msg2);
++ } else {
++ pmsg = msg;
++ (void) sprintf(pmsg, "*** Error: Could not find string ***");
++ }
++ SetSearchLabels(search, pmsg, "", TRUE);
++ XtStackFree(pmsg, msg);
+ return(FALSE);
+ }
+ else
+@@ -1011,9 +1040,22 @@ Boolean once_only, show_current;
+
+ if (XawTextReplace(tw, pos, end_pos, &replace) != XawEditDone) {
+ char msg[BUFSIZ];
+-
+- (void) sprintf( msg, "'%s' with '%s'. ***", find.ptr, replace.ptr);
++ char *pmsg;
++ int len;
++ char *msg1 = "' with '";
++ char *msg2 = "'. ***";
++
++ len = 1 + strlen(msg1) + strlen(msg2) + strlen(find.ptr) +
++ strlen(replace.ptr) + 1;
++ pmsg = XtStackAlloc(len, msg);
++ if (pmsg != NULL) {
++ (void) sprintf( pmsg, "`%s%s%s%s", find.ptr, msg1, replace.ptr, msg2);
++ } else {
++ pmsg = msg;
++ (void) sprintf(pmsg, "string ***");
++ }
+ SetSearchLabels(search, "*** Error while replacing", msg, TRUE);
++ XtStackFree(pmsg, msg);
+ return(FALSE);
+ }
+
+@@ -1164,13 +1206,20 @@ XtArgVal value;
+ {
+ Widget temp_widget;
+ char buf[BUFSIZ];
++ char *pbuf;
++ int len;
+
+- (void) sprintf(buf, "%s.%s", FORM_NAME, name);
++ len = strlen(FORM_NAME) + strlen(name) + 2;
++ pbuf = XtStackAlloc(len, buf);
++ if (pbuf == NULL) return FALSE;
++ (void) sprintf(pbuf, "%s.%s", FORM_NAME, name);
+
+- if ( (temp_widget = XtNameToWidget(shell, buf)) != NULL) {
++ if ( (temp_widget = XtNameToWidget(shell, pbuf)) != NULL) {
+ SetResource(temp_widget, res_name, value);
++ XtStackFree(pbuf, buf);
+ return(TRUE);
+ }
++ XtStackFree(pbuf, buf);
+ return(FALSE);
+ }
+
+diff -up /dev/null Xaw3d-1.5E/xc/lib/Xaw3d/XawAlloc.h
+--- /dev/null 2008-10-06 08:37:32.418005377 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/XawAlloc.h 2008-10-06 11:42:13.000000000 +0200
+@@ -0,0 +1,10 @@
++/* $XFree86: xc/lib/Xaw/XawAlloc.h,v 1.1.2.1 1998/05/16 09:05:23 dawes Exp $ */
++
++#define XtStackAlloc(size, stack_cache_array) \
++ ((size) <= sizeof(stack_cache_array) \
++ ? (XtPointer)(stack_cache_array) \
++ : XtMalloc((unsigned)(size)))
++
++#define XtStackFree(pointer, stack_cache_array) \
++ if ((pointer) != ((XtPointer)(stack_cache_array))) XtFree(pointer); else
++
+--- xaw3d-1.5e/xc/lib/Xaw3d/SmeBSB.c 2003-08-04 17:27:58.000000000 +0200
++++ xaw3d-1.5e/xc/lib/Xaw3d/SmeBSB.c 2003-08-07 15:02:39.000000000 +0200
+@@ -52,6 +52,8 @@
+ #include <X11/Xaw3d/Cardinals.h>
+ #include <stdio.h>
+
++#include "XawAlloc.h"
++
+ /* needed for abs() */
+ #ifndef X_NOT_STDC_ENV
+ #include <stdlib.h>
+@@ -712,6 +714,8 @@
+ int x, y;
+ unsigned int width, height, bw;
+ char buf[BUFSIZ];
++ char *pbuf;
++ int len;
+
+ if (is_left) {
+ width = height = 0;
+@@ -720,18 +724,24 @@
+ if (!XGetGeometry(XtDisplayOfObject(w),
+ entry->sme_bsb.left_bitmap, &root, &x, &y,
+ &width, &height, &bw, &entry->sme_bsb.left_depth)) {
+- (void) sprintf(buf, "Xaw SmeBSB Object: %s %s \"%s\".",
+- "Could not get Left Bitmap",
+- "geometry information for menu entry",
+- XtName(w));
+- XtAppError(XtWidgetToApplicationContext(w), buf);
++ char *err1 = "Xaw SmeBSB Object: Could not get Left Bitmap geometry information for menu entry ";
++ len = strlen(err1) + strlen(XtName(w)) + 3 + 1;
++ pbuf = XtStackAlloc(len, buf);
++ if (pbuf == NULL) return;
++ sprintf(pbuf, "%s\"%s\".", err1, XtName(w));
++ XtAppError(XtWidgetToApplicationContext(w), pbuf);
++ XtStackFree(pbuf, buf);
+ }
+ #ifdef NEVER
+ if (entry->sme_bsb.left_depth != 1) {
+- (void) sprintf(buf, "Xaw SmeBSB Object: %s \"%s\" %s.",
+- "Left Bitmap of entry", XtName(w),
+- "is not one bit deep");
+- XtAppError(XtWidgetToApplicationContext(w), buf);
++ char *err1 = "Xaw SmeBSB Object: Left Bitmap of entry ";
++ char *err2 = " is not one bit deep.";
++ len = strlen(err1) + strlen(err2) + strlen(XtName(w)) + 2 + 1;
++ pbuf = XtStackAlloc(len, buf);
++ if (pbuf == NULL) return;
++ sprintf(pbuf, "%s\"%s\"%s", err1, XtName(w), err2);
++ XtAppError(XtWidgetToApplicationContext(w), pbuf);
++ XtStackFree(pbuf, buf);
+ }
+ #endif
+ }
+@@ -745,18 +755,24 @@
+ if (!XGetGeometry(XtDisplayOfObject(w),
+ entry->sme_bsb.right_bitmap, &root, &x, &y,
+ &width, &height, &bw, &entry->sme_bsb.right_depth)) {
+- (void) sprintf(buf, "Xaw SmeBSB Object: %s %s \"%s\".",
+- "Could not get Right Bitmap",
+- "geometry information for menu entry",
+- XtName(w));
+- XtAppError(XtWidgetToApplicationContext(w), buf);
++ char *err1 = "Xaw SmeBSB Object: Could not get Right Bitmap geometry information for menu entry ";
++ len = strlen(err1) + strlen(XtName(w)) + 3 + 1;
++ pbuf = XtStackAlloc(len, buf);
++ if (pbuf == NULL) return;
++ sprintf(pbuf, "%s\"%s\".", err1, XtName(w));
++ XtAppError(XtWidgetToApplicationContext(w), pbuf);
++ XtStackFree(pbuf, buf);
+ }
+ #ifdef NEVER
+ if (entry->sme_bsb.right_depth != 1) {
+- (void) sprintf(buf, "Xaw SmeBSB Object: %s \"%s\" %s.",
+- "Right Bitmap of entry", XtName(w),
+- "is not one bit deep");
+- XtAppError(XtWidgetToApplicationContext(w), buf);
++ char *err1 = "Xaw SmeBSB Object: Right Bitmap of entry ";
++ char *err2 = " is not one bit deep.";
++ len = strlen(err1) + strlen(err2) + strlen(XtName(w)) + 2 + 1;
++ pbuf = XtStackAlloc(len, buf);
++ if (pbuf == NULL) return;
++ sprintf(pbuf, "%s\"%s\"%s", err1, XtName(w), err2);
++ XtAppError(XtWidgetToApplicationContext(w), pbuf);
++ XtStackFree(pbuf, buf);
+ }
+ #endif
+ }
diff --git a/extra/xaw3d/Xaw3d-1.5-i18n.patch b/extra/xaw3d/Xaw3d-1.5-i18n.patch
new file mode 100644
index 000000000..aa4730238
--- /dev/null
+++ b/extra/xaw3d/Xaw3d-1.5-i18n.patch
@@ -0,0 +1,10 @@
+--- Xaw3d-1.5/xc/lib/Xaw3d/MultiSrc.c.orig Tue Aug 6 22:51:08 2002
++++ Xaw3d-1.5/xc/lib/Xaw3d/MultiSrc.c Tue Aug 6 22:51:16 2002
+@@ -735,6 +735,7 @@
+
+ if ( string_set || (old_src->multi_src.type != src->multi_src.type) ) {
+ RemoveOldStringOrFile(old_src, string_set);
++ src->multi_src.allocated_string = old_src->multi_src.allocated_string;
+ file = InitStringOrFile(src, string_set);
+
+ /* Load pieces does this logic for us, but it shouldn't. Its messy.*/
diff --git a/extra/xaw3d/Xaw3d-1.5E-warnings.patch b/extra/xaw3d/Xaw3d-1.5E-warnings.patch
new file mode 100644
index 000000000..8ffa7f8f9
--- /dev/null
+++ b/extra/xaw3d/Xaw3d-1.5E-warnings.patch
@@ -0,0 +1,114 @@
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSrc.c 2009-03-15 17:04:35.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/MultiSrc.c 2009-03-15 14:22:05.000000000 +0100
+@@ -77,6 +77,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
++#include <wchar.h>
+
+ /****************************************************************
+ *
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Panner.c 2000-11-27 14:19:24.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/Panner.c 2009-03-15 13:50:40.000000000 +0100
+@@ -36,7 +36,7 @@
+ #include <X11/Xmu/Misc.h> /* for Min */
+ #include <X11/Xmu/Drawing.h>
+ #include <ctype.h> /* for isascii() etc. */
+-#include <math.h> /* for atof() */
++#include <stdlib.h> /* for atof() */
+
+ extern Bool XmuDistinguishablePixels(); /* not defined in any Xmu headers */
+
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Text.c 2009-03-15 17:04:35.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/Text.c 2009-03-15 13:54:10.000000000 +0100
+@@ -75,6 +75,7 @@
+ #include <X11/Xfuncs.h>
+ #include <ctype.h> /* for isprint() */
+ #include <stdlib.h>
++#include <wchar.h>
+
+ #include "XawAlloc.h"
+
+--- Xaw3d-1.5E/xc/lib/Xaw3d/TextAction.c 2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/TextAction.c 2009-03-15 14:19:27.000000000 +0100
+@@ -45,7 +45,9 @@
+ #include "XawI18n.h"
+ #endif
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <ctype.h>
++#include <wchar.h>
+
+ #define SrcScan XawTextSourceScan
+ #define FindDist XawTextSinkFindDistance
+--- Xaw3d-1.5E/xc/lib/Xaw3d/TextPop.c 2009-03-15 17:04:35.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/TextPop.c 2009-03-15 14:19:44.000000000 +0100
+@@ -65,6 +65,7 @@
+ #include <stdio.h>
+ #include <X11/Xos.h> /* for O_RDONLY */
+ #include <errno.h>
++#include <wchar.h>
+
+ #include "XawAlloc.h"
+
+--- Xaw3d-1.5E/xc/lib/Xaw3d/TextSrc.c 2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/TextSrc.c 2009-03-15 14:19:13.000000000 +0100
+@@ -49,6 +49,7 @@
+ #endif
+ #include <stdio.h>
+ #include <ctype.h>
++#include <wchar.h>
+
+ /****************************************************************
+ *
+--- Xaw3d-1.5E/xc/lib/Xaw3d/ThreeD.c 2003-02-11 12:41:56.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/ThreeD.c 2009-03-15 14:21:20.000000000 +0100
+@@ -39,6 +39,7 @@
+ #include <X11/Xaw3d/XawInit.h>
+ #include <X11/Xaw3d/ThreeDP.h>
+ #include <X11/Xosdefs.h>
++#include <X11/Xmu/CharSet.h>
+
+ /* Initialization of defaults */
+
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Tip.c 2003-03-09 01:31:49.000000000 +0100
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/Tip.c 2009-03-15 14:21:36.000000000 +0100
+@@ -41,6 +41,7 @@
+ #include <X11/Xmu/Converters.h>
+ #include <X11/Xaw3d/TipP.h>
+ #include <X11/Xaw3d/XawInit.h>
++#include <stdlib.h>
+
+ #define TIP_EVENT_MASK (ButtonPressMask | \
+ ButtonReleaseMask | \
+--- Xaw3d-1.5E/xc/lib/Xaw3d/XawI18n.c 1996-10-15 16:41:25.000000000 +0200
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/XawI18n.c 2009-03-15 14:23:11.000000000 +0100
+@@ -55,6 +55,7 @@
+
+ */
+
++#include <stdlib.h>
+ #include <X11/IntrinsicP.h>
+ #include "XawI18n.h"
+
+--- Xaw3d-1.5E/xc/lib/Xaw3d/XawIm.c 1998-04-21 15:42:02.000000000 +0200
++++ Xaw3d-1.5E.new/xc/lib/Xaw3d/XawIm.c 2009-03-15 14:22:41.000000000 +0100
+@@ -59,6 +59,7 @@
+ #include <X11/Xos.h>
+ #include <X11/Xfuncs.h>
+ #include <X11/ShellP.h>
++#include <X11/ResourceI.h>
+ #include <X11/Xaw3d/TextP.h>
+ #include <X11/Xaw3d/MultiSrc.h>
+ #include <X11/Xaw3d/MultiSinkP.h>
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/XawI18n.h~ Xaw3d-1.5E/xc/lib/Xaw3d/XawI18n.h
+--- Xaw3d-1.5E/xc/lib/Xaw3d/XawI18n.h~ 1996-10-15 16:41:26.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/XawI18n.h 2009-03-15 17:18:04.000000000 +0100
+@@ -72,7 +72,4 @@ extern wchar_t _Xaw_atowc (
+
+ #ifndef HAS_ISW_FUNCS
+ #include <ctype.h>
+-#ifndef iswspace
+-#define iswspace(c) (isascii(c) && isspace(toascii(c)))
+-#endif
+ #endif
diff --git a/extra/xaw3d/Xaw3d-1.5E-xorg-imake.patch b/extra/xaw3d/Xaw3d-1.5E-xorg-imake.patch
new file mode 100644
index 000000000..9d5312e33
--- /dev/null
+++ b/extra/xaw3d/Xaw3d-1.5E-xorg-imake.patch
@@ -0,0 +1,35 @@
+--- Imakefile.config 2003-03-08 15:55:18.000000000 +0100
++++ Imakefile 2005-01-20 14:48:55.630795072 +0100
+@@ -5,24 +5,24 @@
+ XCOMM Build options. Have you read the README.XAW3D file yet?
+ XCOMM
+ XCOMM For color pixmaps, define MULTIPLANE_PIXMAPS:
+-#undef MULTIPLANE_PIXMAPS
++#define MULTIPLANE_PIXMAPS
+ XCOMM For grayed stipple shadows, define GRAY_BLKWHT_STIPPLES:
+ #define GRAY_BLKWHT_STIPPLES
+ XCOMM For scrollbars with arrows, define ARROW_SCROLLBARS:
+-#undef ARROW_SCROLLBARS
++#define ARROW_SCROLLBARS
+
+-#define DoNormalLib NormalLibXaw
+-#define DoSharedLib SharedLibXaw
+-#define DoDebugLib DebugLibXaw
+-#define DoProfileLib ProfileLibXaw
++#define DoNormalLib NormalLibXaw7
++#define DoSharedLib SharedLibXaw7
++#define DoDebugLib DebugLibXaw7
++#define DoProfileLib ProfileLibXaw7
+ #define HasSharedData YES
+ #define LibName Xaw3d
+-#define SoRev SOXAWREV
++#define SoRev SOXAW7REV
+ #define IncSubdir X11
+ #define IncSubSubdir Xaw3d
+
+ XCOMM When building outside an X11 source tree:
+-XCOMM EXTRA_INCLUDES = -I.
++EXTRA_INCLUDES = -I.
+
+ #ifdef SharedXawReqs
+ REQUIREDLIBS = SharedXawReqs
diff --git a/extra/xaw3d/Xaw3d-ia64.patch b/extra/xaw3d/Xaw3d-ia64.patch
new file mode 100644
index 000000000..90ce711e9
--- /dev/null
+++ b/extra/xaw3d/Xaw3d-ia64.patch
@@ -0,0 +1,33 @@
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/List.c.prototypes Xaw3d-1.5E/xc/lib/Xaw3d/List.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/List.c.prototypes 2000-11-27 14:19:36.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/List.c 2008-10-06 10:11:28.000000000 +0200
+@@ -38,6 +38,7 @@ in this Software without prior written a
+
+ #include "Xaw3dP.h"
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <ctype.h>
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/MultiSink.c.prototypes Xaw3d-1.5E/xc/lib/Xaw3d/MultiSink.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/MultiSink.c.prototypes 1996-10-15 16:41:20.000000000 +0200
++++ Xaw3d-1.5E/xc/lib/Xaw3d/MultiSink.c 2008-10-06 10:10:37.000000000 +0200
+@@ -81,6 +81,7 @@ SOFTWARE.
+ #include <X11/Xaw3d/TextP.h>
+ #include "XawI18n.h"
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <ctype.h>
+
+ #ifdef GETLASTPOS
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.prototypes Xaw3d-1.5E/xc/lib/Xaw3d/Text.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Text.c.prototypes 2003-02-10 18:28:13.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Text.c 2008-10-06 10:11:11.000000000 +0200
+@@ -74,6 +74,7 @@ SOFTWARE.
+ #include <X11/Xaw3d/ThreeDP.h>
+ #include <X11/Xfuncs.h>
+ #include <ctype.h> /* for isprint() */
++#include <stdlib.h>
+
+ #ifndef MAX_LEN_CT
+ #define MAX_LEN_CT 6 /* for sequence: ESC $ ( A \xx \xx */
diff --git a/extra/xaw3d/xaw3d.patch b/extra/xaw3d/xaw3d.patch
new file mode 100644
index 000000000..d126f7c5c
--- /dev/null
+++ b/extra/xaw3d/xaw3d.patch
@@ -0,0 +1,30 @@
+diff -up Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c.orig Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c
+--- Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c.orig 2003-02-10 18:22:26.000000000 +0100
++++ Xaw3d-1.5E/xc/lib/Xaw3d/Scrollbar.c 2008-10-06 10:07:46.000000000 +0200
+@@ -1087,7 +1087,11 @@ static void NotifyThumb (w, event, param
+ Cardinal *num_params; /* unused */
+ {
+ register ScrollbarWidget sbw = (ScrollbarWidget) w;
+- float top = sbw->scrollbar.top;
++ union {
++ XtPointer pt;
++ float top;
++ } foo;
++ foo.top = sbw->scrollbar.top;
+
+ #ifndef XAW_ARROW_SCROLLBARS
+ if (sbw->scrollbar.direction == 0) return; /* if no StartScroll */
+@@ -1116,10 +1120,10 @@ static void NotifyThumb (w, event, param
+ /* Removed the dependancy on scrollbar arrows. Xterm as distributed in
+ X11R6.6 by The XFree86 Project wants this correction, with or without
+ the arrows. */
+- top += 0.0001;
++ foo.top += 0.0001;
+ /* #endif */
+- XtCallCallbacks (w, XtNthumbProc, *(XtPointer*)&top);
+- XtCallCallbacks (w, XtNjumpProc, (XtPointer)&top);
++ XtCallCallbacks (w, XtNthumbProc, foo.pt);
++ XtCallCallbacks (w, XtNjumpProc, (XtPointer)&sbw->scrollbar.top);
+ }
+
+
diff --git a/extra/xawtv/PKGBUILD b/extra/xawtv/PKGBUILD
new file mode 100644
index 000000000..3a8498c10
--- /dev/null
+++ b/extra/xawtv/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 63661 2010-01-18 09:35:32Z andrea $
+# Maintainer:
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+# Contributor: Jason Chu <jason@archlinux.org>
+
+pkgname=xawtv
+pkgver=3.95
+pkgrel=7
+pkgdesc="A simple Xaw-based TV program which uses the bttv driver or video4linux"
+arch=('i686' 'x86_64')
+url="http://linux.bytesex.org/xawtv/"
+license=('GPL')
+depends=('libjpeg' 'alsa-lib' 'lesstif' 'libdv' 'zvbi' 'aalib' 'libv4l'
+ 'libxxf86dga' 'libfs' 'libxrandr' 'libxinerama' 'libxv' 'libxaw'
+ 'libxxf86vm' 'libgl' 'gpm' 'lirc-utils' 'libxft')
+makedepends=('mesa')
+options=('!makeflags')
+source=(http://dl.bytesex.org/releases/$pkgname/$pkgname-$pkgver.tar.gz
+ xawtv-395.diff
+ xawtv-3.95-pagemask-fix.patch
+ xawtv-3.95-fixes.patch
+ xawtv-3.95-libv4l2.patch
+ xawtv-3.95-no-dga.patch)
+md5sums=('ad25e03f7e128b318e392cb09f52207d'
+ '87a87b6c62b39348053704f052141843'
+ '97493dfaac8c80084d8b66891becd76c'
+ 'dc83378a5c76c029f4e49434214fc824'
+ '56932100c5060bf9dfc45b8af927e697'
+ 'c456147f15c8f836c678c6499f068085')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/xawtv-395.diff || return 1
+ patch -Np1 -i $srcdir/xawtv-3.95-pagemask-fix.patch || return 1
+ # Add patches from https://bugzilla.redhat.com/show_bug.cgi?id=457796
+ patch -Np1 -i $srcdir/xawtv-3.95-fixes.patch || return 1
+ patch -Np1 -i $srcdir/xawtv-3.95-libv4l2.patch || return 1
+ patch -Np1 -i $srcdir/xawtv-3.95-no-dga.patch || return 1
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+ make DESTDIR=$pkgdir resdir=$pkgdir/usr/lib/X11 install
+}
diff --git a/extra/xawtv/xawtv-3.95-fixes.patch b/extra/xawtv/xawtv-3.95-fixes.patch
new file mode 100644
index 000000000..b6cdf8dec
--- /dev/null
+++ b/extra/xawtv/xawtv-3.95-fixes.patch
@@ -0,0 +1,72 @@
+diff -up xawtv-3.95.new/libng/plugins/drv0-v4l2.c.fixes xawtv-3.95.new/libng/plugins/drv0-v4l2.c
+--- xawtv-3.95.new/libng/plugins/drv0-v4l2.c.fixes 2005-02-11 18:56:24.000000000 +0100
++++ xawtv-3.95.new/libng/plugins/drv0-v4l2.c 2008-08-03 20:46:32.000000000 +0200
+@@ -91,6 +91,7 @@ struct v4l2_handle {
+ struct ng_video_fmt fmt_me;
+ struct v4l2_requestbuffers reqbufs;
+ struct v4l2_buffer buf_v4l2[WANTED_BUFFERS];
++ int buf_v4l2_size[WANTED_BUFFERS];
+ struct ng_video_buf buf_me[WANTED_BUFFERS];
+ unsigned int queue,waiton;
+
+@@ -166,7 +167,7 @@ xioctl(int fd, int cmd, void *arg, int m
+ int rc;
+
+ rc = ioctl(fd,cmd,arg);
+- if (0 == rc && ng_debug < 2)
++ if (rc >= 0 && ng_debug < 2)
+ return rc;
+ if (mayfail && errno == mayfail && ng_debug < 2)
+ return rc;
+@@ -768,6 +769,7 @@ v4l2_waiton(struct v4l2_handle *h)
+ /* get it */
+ memset(&buf,0,sizeof(buf));
+ buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
++ buf.memory = V4L2_MEMORY_MMAP;
+ if (-1 == xioctl(h->fd,VIDIOC_DQBUF,&buf, 0))
+ return -1;
+ h->waiton++;
+@@ -812,6 +814,7 @@ v4l2_start_streaming(struct v4l2_handle
+ h->buf_v4l2[i].memory = V4L2_MEMORY_MMAP;
+ if (-1 == xioctl(h->fd, VIDIOC_QUERYBUF, &h->buf_v4l2[i], 0))
+ return -1;
++ h->buf_v4l2_size[i] = h->buf_v4l2[i].length;
+ h->buf_me[i].fmt = h->fmt_me;
+ h->buf_me[i].size = h->buf_me[i].fmt.bytesperline *
+ h->buf_me[i].fmt.height;
+@@ -865,12 +868,16 @@ v4l2_stop_streaming(struct v4l2_handle *
+ ng_waiton_video_buf(&h->buf_me[i]);
+ if (ng_debug)
+ print_bufinfo(&h->buf_v4l2[i]);
+- if (-1 == munmap(h->buf_me[i].data,h->buf_me[i].size))
++ if (-1 == munmap(h->buf_me[i].data, h->buf_v4l2_size[i]))
+ perror("munmap");
+ }
+ h->queue = 0;
+ h->waiton = 0;
+
++ /* unrequest buffers (only needed for some drivers) */
++ h->reqbufs.count = 0;
++ xioctl(h->fd, VIDIOC_REQBUFS, &h->reqbufs, EINVAL);
++
+ /* turn on preview (if needed) */
+ if (h->ov_on != h->ov_enabled) {
+ h->ov_on = h->ov_enabled;
+@@ -907,6 +914,17 @@ v4l2_setformat(void *handle, struct ng_v
+ fmt->width = h->fmt_v4l2.fmt.pix.width;
+ fmt->height = h->fmt_v4l2.fmt.pix.height;
+ fmt->bytesperline = h->fmt_v4l2.fmt.pix.bytesperline;
++ /* struct v4l2_format.fmt.pix.bytesperline is bytesperline for the
++ main plane for planar formats, where as we want it to be the total
++ bytesperline for all planes */
++ switch (fmt->fmtid) {
++ case VIDEO_YUV422P:
++ fmt->bytesperline *= 2;
++ break;
++ case VIDEO_YUV420P:
++ fmt->bytesperline = fmt->bytesperline * 3 / 2;
++ break;
++ }
+ if (0 == fmt->bytesperline)
+ fmt->bytesperline = fmt->width * ng_vfmt_to_depth[fmt->fmtid] / 8;
+ h->fmt_me = *fmt;
diff --git a/extra/xawtv/xawtv-3.95-libv4l2.patch b/extra/xawtv/xawtv-3.95-libv4l2.patch
new file mode 100644
index 000000000..45a5e69cb
--- /dev/null
+++ b/extra/xawtv/xawtv-3.95-libv4l2.patch
@@ -0,0 +1,176 @@
+--- xawtv-3.95/libng/plugins/Subdir.mk~ 2008-07-30 09:51:01.000000000 +0200
++++ xawtv-3.95/libng/plugins/Subdir.mk 2008-07-30 09:51:01.000000000 +0200
+@@ -41,6 +41,7 @@ libng/plugins/read-qt.so : LDLIBS := $(
+ libng/plugins/write-qt.so : LDLIBS := $(QT_LIBS)
+ libng/plugins/read-dv.so : LDLIBS := $(DV_LIBS)
+ libng/plugins/write-dv.so : LDLIBS := $(DV_LIBS)
++libng/plugins/drv0-v4l2.so: LDLIBS := -lv4l2
+
+ # global targets
+ all:: $(TARGETS-plugins)
+diff -up xawtv-3.95/libng/plugins/drv0-v4l2.c.orig xawtv-3.95/libng/plugins/drv0-v4l2.c
+--- xawtv-3.95/libng/plugins/drv0-v4l2.c.orig 2008-08-03 21:26:13.000000000 +0200
++++ xawtv-3.95/libng/plugins/drv0-v4l2.c 2008-08-03 21:27:50.000000000 +0200
+@@ -29,11 +29,26 @@
+ #include "struct-dump.h"
+ #include "struct-v4l2.h"
+
++/* FIXME replace with autoconf detection */
++#define HAVE_LIBV4L
++
++#ifdef HAVE_LIBV4L
++#include <libv4l2.h>
++#else
++#define v4l2_fd_open(fd, flags) (fd)
++#define v4l2_close close
++#define v4l2_dup dup
++#define v4l2_ioctl ioctl
++#define v4l2_read read
++#define v4l2_mmap mmap
++#define v4l2_munmap munmap
++#endif
++
+ /* ---------------------------------------------------------------------- */
+
+ /* open+close */
+-static void* v4l2_open(char *device);
+-static int v4l2_close(void *handle);
++static void* v4l2_open_handle(char *device);
++static int v4l2_close_handle(void *handle);
+
+ /* attributes */
+ static char* v4l2_devname(void *handle);
+@@ -111,8 +126,8 @@ struct v4l2_handle {
+
+ struct ng_vid_driver v4l2_driver = {
+ name: "v4l2",
+- open: v4l2_open,
+- close: v4l2_close,
++ open: v4l2_open_handle,
++ close: v4l2_close_handle,
+
+ get_devname: v4l2_devname,
+ capabilities: v4l2_flags,
+@@ -166,7 +181,7 @@ xioctl(int fd, int cmd, void *arg, int m
+ {
+ int rc;
+
+- rc = ioctl(fd,cmd,arg);
++ rc = v4l2_ioctl(fd,cmd,arg);
+ if (rc >= 0 && ng_debug < 2)
+ return rc;
+ if (mayfail && errno == mayfail && ng_debug < 2)
+@@ -220,7 +235,7 @@ get_device_capabilities(struct v4l2_hand
+ }
+
+ h->streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+- ioctl(h->fd,VIDIOC_G_PARM,&h->streamparm);
++ v4l2_ioctl(h->fd,VIDIOC_G_PARM,&h->streamparm);
+
+ /* controls */
+ for (i = 0; i < MAX_CTRL; i++) {
+@@ -444,10 +459,10 @@ static void v4l2_write_attr(struct ng_at
+ /* ---------------------------------------------------------------------- */
+
+ static void*
+-v4l2_open(char *device)
++v4l2_open_handle(char *device)
+ {
+ struct v4l2_handle *h;
+- int i;
++ int i, libv4l2_fd;
+
+ h = malloc(sizeof(*h));
+ if (NULL == h)
+@@ -459,6 +474,16 @@ v4l2_open(char *device)
+ goto err;
+ }
+
++ /* Note the v4l2_xxx functions are designed so that if they get passed an
++ unknown fd, the will behave exactly as their regular xxx counterparts, so
++ if v4l2_fd_open fails, we continue as normal (missing the libv4l2 custom
++ cam format to normal formats conversion). Chances are big we will still
++ fail then though, as normally v4l2_fd_open only fails if the device is not
++ a v4l2 device. */
++ libv4l2_fd = v4l2_fd_open(h->fd, 0);
++ if (libv4l2_fd != -1)
++ h->fd = libv4l2_fd;
++
+ if (-1 == xioctl(h->fd,VIDIOC_QUERYCAP,&h->cap,EINVAL))
+ goto err;
+ if (ng_debug)
+@@ -495,21 +520,21 @@ v4l2_open(char *device)
+
+ err:
+ if (h->fd != -1)
+- close(h->fd);
++ v4l2_close(h->fd);
+ if (h)
+ free(h);
+ return NULL;
+ }
+
+ static int
+-v4l2_close(void *handle)
++v4l2_close_handle(void *handle)
+ {
+ struct v4l2_handle *h = handle;
+
+ if (ng_debug)
+ fprintf(stderr, "v4l2: close\n");
+
+- close(h->fd);
++ v4l2_close(h->fd);
+ free(h);
+ return 0;
+ }
+@@ -818,7 +843,7 @@ v4l2_start_streaming(struct v4l2_handle
+ h->buf_me[i].fmt = h->fmt_me;
+ h->buf_me[i].size = h->buf_me[i].fmt.bytesperline *
+ h->buf_me[i].fmt.height;
+- h->buf_me[i].data = mmap(NULL, h->buf_v4l2[i].length,
++ h->buf_me[i].data = v4l2_mmap(NULL, h->buf_v4l2[i].length,
+ PROT_READ | PROT_WRITE, MAP_SHARED,
+ h->fd, h->buf_v4l2[i].m.offset);
+ if (MAP_FAILED == h->buf_me[i].data) {
+@@ -859,7 +884,7 @@ v4l2_stop_streaming(struct v4l2_handle *
+ unsigned int i;
+
+ /* stop capture */
+- if (-1 == ioctl(h->fd,VIDIOC_STREAMOFF,&h->fmt_v4l2.type))
++ if (-1 == v4l2_ioctl(h->fd,VIDIOC_STREAMOFF,&h->fmt_v4l2.type))
+ perror("ioctl VIDIOC_STREAMOFF");
+
+ /* free buffers */
+@@ -868,7 +893,7 @@ v4l2_stop_streaming(struct v4l2_handle *
+ ng_waiton_video_buf(&h->buf_me[i]);
+ if (ng_debug)
+ print_bufinfo(&h->buf_v4l2[i]);
+- if (-1 == munmap(h->buf_me[i].data, h->buf_v4l2_size[i]))
++ if (-1 == v4l2_munmap(h->buf_me[i].data, h->buf_v4l2_size[i]))
+ perror("munmap");
+ }
+ h->queue = 0;
+@@ -989,7 +1014,7 @@ v4l2_nextframe(void *handle)
+ } else {
+ size = h->fmt_me.bytesperline * h->fmt_me.height;
+ buf = ng_malloc_video_buf(&h->fmt_me,size);
+- rc = read(h->fd,buf->data,size);
++ rc = v4l2_read(h->fd,buf->data,size);
+ if (rc != size) {
+ if (-1 == rc) {
+ perror("v4l2: read");
+@@ -1023,11 +1048,11 @@ v4l2_getimage(void *handle)
+ size = h->fmt_me.bytesperline * h->fmt_me.height;
+ buf = ng_malloc_video_buf(&h->fmt_me,size);
+ if (h->cap.capabilities & V4L2_CAP_READWRITE) {
+- rc = read(h->fd,buf->data,size);
++ rc = v4l2_read(h->fd,buf->data,size);
+ if (-1 == rc && EBUSY == errno && h->ov_on) {
+ h->ov_on = 0;
+ xioctl(h->fd, VIDIOC_OVERLAY, &h->ov_on, 0);
+- rc = read(h->fd,buf->data,size);
++ rc = v4l2_read(h->fd,buf->data,size);
+ h->ov_on = 1;
+ xioctl(h->fd, VIDIOC_OVERLAY, &h->ov_on, 0);
+ }
diff --git a/extra/xawtv/xawtv-3.95-no-dga.patch b/extra/xawtv/xawtv-3.95-no-dga.patch
new file mode 100644
index 000000000..4509d4ba0
--- /dev/null
+++ b/extra/xawtv/xawtv-3.95-no-dga.patch
@@ -0,0 +1,120 @@
+diff -up xawtv-3.95/console/v4l-conf.c~ xawtv-3.95/console/v4l-conf.c
+--- xawtv-3.95/console/v4l-conf.c~ 2008-08-03 22:22:01.000000000 +0200
++++ xawtv-3.95/console/v4l-conf.c 2008-08-03 22:34:33.000000000 +0200
+@@ -221,6 +221,21 @@ displayinfo_x11(Display *dpy, struct DIS
+ }
+ }
+
++#ifdef HAVE_LIBXXF86DGA
++static int dga_error = 0;
++static int dga_error_base;
++static int (*orig_xfree_error_handler)(Display *, XErrorEvent *);
++
++static int dga_error_handler(Display *d, XErrorEvent *e)
++{
++ if (e->error_code == (dga_error_base + XF86DGANoDirectVideoMode)) {
++ dga_error = 1;
++ return 0;
++ }
++ return orig_xfree_error_handler(d, e);
++}
++#endif
++
+ static void
+ displayinfo_dga(Display *dpy, struct DISPLAYINFO *d)
+ {
+@@ -228,7 +243,7 @@ displayinfo_dga(Display *dpy, struct DIS
+ int width,bar,foo,major,minor,flags=0;
+ void *base = NULL;
+
+- if (!XF86DGAQueryExtension(dpy,&foo,&bar)) {
++ if (!XF86DGAQueryExtension(dpy,&foo,&dga_error_base)) {
+ fprintf(stderr,"WARNING: Your X-Server has no DGA support.\n");
+ return;
+ }
+@@ -240,7 +255,14 @@ displayinfo_dga(Display *dpy, struct DIS
+ fprintf(stderr,"WARNING: No DGA support available for this display.\n");
+ return;
+ }
++ orig_xfree_error_handler = XSetErrorHandler(dga_error_handler);
+ XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(void*)&base,&width,&foo,&bar);
++ XSync(dpy, 0);
++ XSetErrorHandler(orig_xfree_error_handler);
++ if (dga_error) {
++ fprintf(stderr,"WARNING: No DGA direct video mode for this display.\n");
++ return;
++ }
+ d->bpl = width * d->bpp/8;
+ d->base = base;
+ #else
+diff -up xawtv-3.95/libng/plugins/drv0-v4l2.c~ xawtv-3.95/libng/plugins/drv0-v4l2.c
+--- xawtv-3.95/libng/plugins/drv0-v4l2.c~ 2008-08-03 21:52:41.000000000 +0200
++++ xawtv-3.95/libng/plugins/drv0-v4l2.c 2008-08-03 22:23:01.000000000 +0200
+@@ -618,7 +618,7 @@ v4l2_setupfb(void *handle, struct ng_vid
+ return -1;
+
+ /* double-check settings */
+- if (NULL != base && h->ov_fb.base != base) {
++ if ((NULL != base && h->ov_fb.base != base) || h->ov_fb.base == NULL) {
+ fprintf(stderr,"v4l2: WARNING: framebuffer base address mismatch\n");
+ fprintf(stderr,"v4l2: me=%p v4l=%p\n",base,h->ov_fb.base);
+ h->ov_error = 1;
+diff -up xawtv-3.95/x11/xt.c~ xawtv-3.95/x11/xt.c
+--- xawtv-3.95/x11/xt.c~ 2008-08-03 22:22:11.000000000 +0200
++++ xawtv-3.95/x11/xt.c 2008-08-03 22:35:14.000000000 +0200
+@@ -1247,18 +1247,21 @@ FilterAction(Widget widget, XEvent *even
+ }
+
+ /*----------------------------------------------------------------------*/
++#ifdef HAVE_LIBXXF86DGA
++static int xfree_dga_error_base;
++#endif
+
+ void
+ xfree_dga_init(Display *dpy)
+ {
+ #ifdef HAVE_LIBXXF86DGA
+- int flags,foo,bar,ma,mi;
++ int flags,foo,ma,mi;
+
+ if (!do_overlay)
+ return;
+
+ if (args.dga) {
+- if (XF86DGAQueryExtension(dpy,&foo,&bar)) {
++ if (XF86DGAQueryExtension(dpy,&foo,&xfree_dga_error_base)) {
+ XF86DGAQueryDirectVideo(dpy,XDefaultScreen(dpy),&flags);
+ if (flags & XF86DGADirectPresent) {
+ XF86DGAQueryVersion(dpy,&ma,&mi);
+@@ -1348,6 +1351,19 @@ xfree_xinerama_init(Display *dpy)
+ #endif
+ }
+
++#ifdef HAVE_LIBXXF86DGA
++static int (*orig_xfree_error_handler)(Display *, XErrorEvent *);
++
++static int xfree_dga_error_handler(Display *d, XErrorEvent *e)
++{
++ if (e->error_code == (xfree_dga_error_base + XF86DGANoDirectVideoMode)) {
++ have_dga = 0;
++ return 0;
++ }
++ return orig_xfree_error_handler(d, e);
++}
++#endif
++
+ void
+ grabber_init()
+ {
+@@ -1358,8 +1374,11 @@ grabber_init()
+ #ifdef HAVE_LIBXXF86DGA
+ if (have_dga) {
+ int bar,fred;
++ orig_xfree_error_handler = XSetErrorHandler(xfree_dga_error_handler);
+ XF86DGAGetVideoLL(dpy,XDefaultScreen(dpy),(void*)&base,
+ &screen.bytesperline,&bar,&fred);
++ XSync(dpy, 0);
++ XSetErrorHandler(orig_xfree_error_handler);
+ }
+ #endif
+ if (!do_overlay) {
diff --git a/extra/xawtv/xawtv-3.95-pagemask-fix.patch b/extra/xawtv/xawtv-3.95-pagemask-fix.patch
new file mode 100644
index 000000000..ab635f73a
--- /dev/null
+++ b/extra/xawtv/xawtv-3.95-pagemask-fix.patch
@@ -0,0 +1,44 @@
+Patch from Andreas Jochens
+http://lists.debian.org/debian-qa-packages/2006/08/msg00519.html
+
+diff -urN ../tmp-orig/xawtv-3.95/console/fbtools.c ./console/fbtools.c
+--- ../tmp-orig/xawtv-3.95/console/fbtools.c 2003-02-14 14:14:04.000000000 +0000
++++ ./console/fbtools.c 2006-08-23 10:57:40.000000000 +0000
+@@ -21,8 +21,6 @@
+ #include <linux/vt.h>
+ #include <linux/fb.h>
+
+-#include <asm/page.h>
+-
+ #include "fbtools.h"
+
+ /* -------------------------------------------------------------------- */
+@@ -424,7 +422,7 @@
+ goto err;
+ }
+ #endif
+- fb_mem_offset = (unsigned long)(fb_fix.smem_start) & (~PAGE_MASK);
++ fb_mem_offset = (unsigned long)(fb_fix.smem_start) & ~(sysconf(_SC_PAGE_SIZE)-1);
+ fb_mem = mmap(NULL,fb_fix.smem_len+fb_mem_offset,
+ PROT_READ|PROT_WRITE,MAP_SHARED,fb,0);
+ if (-1L == (long)fb_mem) {
+diff -urN ../tmp-orig/xawtv-3.95/console/matrox.c ./console/matrox.c
+--- ../tmp-orig/xawtv-3.95/console/matrox.c 2005-02-03 10:40:41.000000000 +0000
++++ ./console/matrox.c 2006-08-23 11:09:51.000000000 +0000
+@@ -9,7 +9,6 @@
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+
+-#include <asm/page.h> /* PAGE_SIZE */
+ #include <linux/fb.h>
+
+ #include "byteswap.h"
+@@ -226,7 +225,7 @@
+ return -1;
+ }
+ off = (unsigned long)fb_fix.mmio_start -
+- ((unsigned long)fb_fix.mmio_start & ~(PAGE_SIZE-1));
++ ((unsigned long)fb_fix.mmio_start & ~(sysconf(_SC_PAGE_SIZE)-1));
+ bmmio += off;
+ mmio = (uint32_t*)bmmio;
+ return 0;
diff --git a/extra/xawtv/xawtv-395.diff b/extra/xawtv/xawtv-395.diff
new file mode 100644
index 000000000..970b2b00f
--- /dev/null
+++ b/extra/xawtv/xawtv-395.diff
@@ -0,0 +1,60 @@
+diff -Nru xawtv-3.95/Makefile.in xawtv-3.95.my/Makefile.in
+--- xawtv-3.95/Makefile.in 2004-04-22 09:52:29.000000000 -0500
++++ xawtv-3.95.my/Makefile.in 2006-06-04 19:05:24.000000000 -0500
+@@ -49,7 +49,7 @@
+ VBI_LIBS := @LIBZVBI@
+ GL_LIBS := @LIBGL@
+ DV_LIBS := @LIBDV@
+-FS_LIBS := -L@x_libraries@ @FSLIB@
++FS_LIBS := @FSLIB@
+ DLFLAGS := @DLFLAGS@
+
+ # stuff configure has found
+diff -Nru xawtv-3.95/common/channel.c xawtv-3.95.my/common/channel.c
+--- xawtv-3.95/common/channel.c 2003-03-28 06:22:06.000000000 -0600
++++ xawtv-3.95.my/common/channel.c 2006-06-04 19:10:07.000000000 -0500
+@@ -181,6 +181,9 @@
+ { -1, NULL, },
+ };
+
++extern struct STRTAB booltab[];
++extern struct STRTAB captab[];
++
+ /* just malloc memory for a new channel ... */
+ struct CHANNEL*
+ add_channel(char *name)
+diff -Nru xawtv-3.95/common/channel.h xawtv-3.95.my/common/channel.h
+--- xawtv-3.95/common/channel.h 2003-02-14 08:14:04.000000000 -0600
++++ xawtv-3.95.my/common/channel.h 2006-06-04 19:08:13.000000000 -0500
+@@ -90,8 +90,6 @@
+
+ /* ----------------------------------------------------------------------- */
+
+-extern struct STRTAB booltab[];
+-extern struct STRTAB captab[];
+
+ int str_to_int(char *str, struct STRTAB *tab);
+ const char* int_to_str(int n, struct STRTAB *tab);
+diff -Nru xawtv-3.95/common/commands.c xawtv-3.95.my/common/commands.c
+--- xawtv-3.95/common/commands.c 2004-04-19 11:24:05.000000000 -0500
++++ xawtv-3.95.my/common/commands.c 2006-06-04 19:11:48.000000000 -0500
+@@ -162,6 +162,9 @@
+
+ static int keypad_state = -1;
+
++extern struct STRTAB booltab[];
++extern struct STRTAB captab[];
++
+ /* ----------------------------------------------------------------------- */
+
+ void add_attrs(struct ng_attribute *new)
+diff -Nru xawtv-3.95/console/fs.h xawtv-3.95.my/console/fs.h
+--- xawtv-3.95/console/fs.h 2003-02-14 08:14:04.000000000 -0600
++++ xawtv-3.95.my/console/fs.h 2006-06-04 19:00:20.000000000 -0500
+@@ -1,5 +1,5 @@
+ #ifndef X_DISPLAY_MISSING
+-# include <FSlib.h>
++# include <X11/fonts/FSlib.h>
+
+ struct fs_font {
+ Font font;
diff --git a/extra/xbill/PKGBUILD b/extra/xbill/PKGBUILD
new file mode 100644
index 000000000..1791d4507
--- /dev/null
+++ b/extra/xbill/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 22212 2008-12-23 06:11:22Z eric $
+# Maintainer: Arjan Timmerman <arjan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=xbill
+pkgver=2.1
+pkgrel=6
+pkgdesc="Xbill is a game that tests you reflexes as you seek and destroy all forms of Bill"
+arch=('i686' 'x86_64')
+url="http://www.xbill.org/"
+license=('GPL')
+depends=('xaw3d>=1.5E' 'libxaw')
+install=xbill.install
+source=(http://www.xbill.org/download/$pkgname-$pkgver.tar.gz)
+md5sums=('585e4866b15255a24203db9959407b2f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man --localstatedir=/var/games \
+ --disable-motif --enable-athena --disable-gtk || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+
+# set appropriate permissions and destinations
+ chown root:games $pkgdir/usr/bin/xbill
+ chmod 2755 $pkgdir/usr/bin/xbill
+
+ chown root:games $pkgdir/var/games
+ chmod 775 $pkgdir/var/games
+ chown root:games $pkgdir/var/games/xbill
+ chmod 775 $pkgdir/var/games/xbill
+
+# Handle the scores file creation in the install script
+ rm $pkgdir/var/games/xbill/scores
+}
diff --git a/extra/xbill/xbill.install b/extra/xbill/xbill.install
new file mode 100644
index 000000000..014c0d54b
--- /dev/null
+++ b/extra/xbill/xbill.install
@@ -0,0 +1,25 @@
+pre_install() {
+ if [ ! -e var/games/xbill/scores ]; then
+ [ -e usr/var/xbill/scores ] && mv usr/var/xbill/scores var/games/xbill/scores
+ fi
+}
+
+post_install() {
+ touch var/games/xbill/scores
+ chown root:games var/games/xbill/scores
+ chmod 664 var/games/xbill/scores
+}
+
+pre_upgrade() {
+ pre_install $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ if [ -e var/games/xbill/scores ]; then
+ mv var/games/xbill/scores var/games/xbill/scores.pacsave
+ fi
+}
diff --git a/extra/xbindkeys/PKGBUILD b/extra/xbindkeys/PKGBUILD
new file mode 100644
index 000000000..9d2e6f0e8
--- /dev/null
+++ b/extra/xbindkeys/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114461 2011-03-14 01:44:22Z eric $
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=xbindkeys
+pkgver=1.8.5
+pkgrel=1
+pkgdesc="Launch shell commands with your keyboard or your mouse under X"
+arch=('i686' 'x86_64')
+url="http://www.nongnu.org/xbindkeys/xbindkeys.html"
+license=('GPL')
+depends=('libx11' 'guile>=1.8.1' 'tk')
+source=(http://www.nongnu.org/xbindkeys/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4b66a05594dbc6888c0a6439351aa66d')
+sha1sums=('a597cfecce65dd47595510edb8f7eaa094c4b34b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xcb-util/LICENSE b/extra/xcb-util/LICENSE
new file mode 100644
index 000000000..5e3822ccd
--- /dev/null
+++ b/extra/xcb-util/LICENSE
@@ -0,0 +1,267 @@
+/* Copyright (C) 2007 Bart Massey
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/*
+ * Copyright (C) 2008-2009 Julien Danjou <julien@danjou.info>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright (C) 2008 Arnaud Fontaine <arnau@debian.org>
+ * Copyright (C) 2007-2008 Vincent Torri <vtorri@univ-evry.fr>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+
+/*
+ * Copyright © 2008 Bart Massey <bart@cs.pdx.edu>
+ * Copyright © 2008 Julien Danjou <julien@danjou.info>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Keith Packard <keithp@keithp.com>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Bart Massey <bart@cs.pdx.edu>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/*
+ * Copyright © 2008 Ian Osgood <iano@quirkster.com>
+ * Copyright © 2008 Jamey Sharp <jamey@minilop.net>
+ * Copyright © 2008 Josh Triplett <josh@freedesktop.org>
+ * Copyright © 2008 Ulrich Eckhardt <doomster@knuut.de>
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use, copy,
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or
+ * their institutions shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization from the authors.
+ */
+
+/* Copyright © 2006 Jamey Sharp.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Copyright © 2006 Ian Osgood
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the names of the authors or their
+ * institutions shall not be used in advertising or otherwise to promote the
+ * sale, use or other dealings in this Software without prior written
+ * authorization from the authors.
+ */
+
+/* Copyright © 2000 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
diff --git a/extra/xcb-util/PKGBUILD b/extra/xcb-util/PKGBUILD
new file mode 100644
index 000000000..0045d6837
--- /dev/null
+++ b/extra/xcb-util/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 50472 2009-08-27 18:32:48Z ronald $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andrea Scarpino <bash.lnx@gmail.com>
+
+pkgname=xcb-util
+pkgver=0.3.6
+pkgrel=1
+pkgdesc="Utility libraries for XC Binding"
+arch=('i686' 'x86_64')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('libxcb>=1.4')
+makedepends=('gperf')
+options=('!libtool')
+source=(http://xcb.freedesktop.org/dist/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('dd8968b8ee613cb027a8ef1fcbdc8fc9'
+ '2672c2e72dedb40f773e989dd622f298')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" || return 1
+}
diff --git a/extra/xchat-gnome/PKGBUILD b/extra/xchat-gnome/PKGBUILD
new file mode 100644
index 000000000..271b96631
--- /dev/null
+++ b/extra/xchat-gnome/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 112861 2011-03-07 10:29:01Z eric $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xchat-gnome
+pkgver=0.26.1
+pkgrel=5
+pkgdesc="GNOME frontend to the popular X-Chat IRC client."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://xchat-gnome.navi.cx/"
+depends=('libgnomeui>=2.18.1-2' 'libsexy>=0.1.11' 'gconf>=2.18.0.1-4'
+ 'hicolor-icon-theme' 'desktop-file-utils' 'libcanberra' 'libsm')
+makedepends=('gettext' 'perlxml' 'python2' 'tcl' 'libnotify' 'gnome-doc-utils>=0.10.3'
+ 'intltool' 'pkg-config')
+optdepends=('libnotify: notifications'
+ 'python2: plugin'
+ 'tcl: plugin')
+options=('!libtool')
+install=xchat-gnome.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.26/${pkgname}-${pkgver}.tar.gz
+ gtk2-2.20.patch xchat-gnome-0.26.1-deprecated-symbol.patch)
+md5sums=('e355d71d76cd97a0764e37bfacf09101' 'dafc2536a0c5ee3f8015af81fce69656'\
+ 'f82417277f0b5e83334147c4bf63d531')
+sha1sums=('303bfbf2f1bda83fbc4edab148df4764cb4b8998' 'f1bfc5af50be7c10a9db96be20185325636d8da9'\
+ '9aa0abc4b7999e09cafdeb8da1ad4641552a421b')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ patch -Np1 -i "$srcdir/gtk2-2.20.patch"
+ patch -Np1 -i "$srcdir/xchat-gnome-0.26.1-deprecated-symbol.patch"
+ sed -i 's/notify_notification_new (summary, escaped, NULL, NULL);/notify_notification_new (summary, escaped, NULL);/' plugins/notify-osd/notify-osd.c
+ sed -i -e "s/ /\t/" src/common/dbus/Makefile.in
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-ipv6 --enable-shm \
+ --disable-gtkfe --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -d "$pkgdir/usr/share/gconf/schemas"
+ gconf-merge-schema "$pkgdir/usr/share/gconf/schemas/${pkgname}.schemas" \
+ "$pkgdir"/etc/gconf/schemas/*.schemas
+ rm -f "$pkgdir"/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/xchat-gnome/gtk2-2.20.patch b/extra/xchat-gnome/gtk2-2.20.patch
new file mode 100644
index 000000000..7a5dcedf2
--- /dev/null
+++ b/extra/xchat-gnome/gtk2-2.20.patch
@@ -0,0 +1,137 @@
+diff -urp xchat-gnome-0.26.1.OLD/src/fe-gnome/fe-gnome.c xchat-gnome-0.26.1/src/fe-gnome/fe-gnome.c
+--- xchat-gnome-0.26.1.OLD/src/fe-gnome/fe-gnome.c 2008-09-07 09:18:45.000000000 -0400
++++ xchat-gnome-0.26.1/src/fe-gnome/fe-gnome.c 2010-03-28 16:16:52.181405173 -0400
+@@ -753,7 +753,7 @@ fe_gui_info (session * sess, int info_ty
+ {
+ switch (info_type) {
+ case 0:
+- if (!GTK_WIDGET_VISIBLE (GTK_WINDOW (gui.main_window))) {
++ if (!gtk_widget_get_visible (GTK_WIDGET (gui.main_window))) {
+ return 2;
+ }
+ if (gtk_window_is_active (GTK_WINDOW (gui.main_window))) {
+diff -urp xchat-gnome-0.26.1.OLD/src/fe-gnome/find-bar.c xchat-gnome-0.26.1/src/fe-gnome/find-bar.c
+--- xchat-gnome-0.26.1.OLD/src/fe-gnome/find-bar.c 2007-03-09 10:42:57.000000000 -0500
++++ xchat-gnome-0.26.1/src/fe-gnome/find-bar.c 2010-03-28 16:26:24.300405158 -0400
+@@ -247,7 +247,7 @@ find_bar_close (FindBar *bar)
+ {
+ gint position;
+
+- if (!GTK_WIDGET_VISIBLE (bar)) {
++ if (!gtk_widget_get_visible (GTK_WIDGET (bar))) {
+ return;
+ }
+
+diff -urp xchat-gnome-0.26.1.OLD/src/fe-gnome/text-entry.c xchat-gnome-0.26.1/src/fe-gnome/text-entry.c
+--- xchat-gnome-0.26.1.OLD/src/fe-gnome/text-entry.c 2008-09-07 10:02:45.000000000 -0400
++++ xchat-gnome-0.26.1/src/fe-gnome/text-entry.c 2010-03-28 16:39:48.755153605 -0400
+@@ -667,7 +667,7 @@ text_entry_set_current (TextEntry *entry
+ char *selection = NULL, *text = NULL;
+ int start, end;
+
+- g_return_if_fail (GTK_WIDGET_REALIZED (widget));
++ g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (widget)));
+
+ if (sess == priv->current) {
+ return;
+diff -urp xchat-gnome-0.26.1.OLD/src/fe-gnome/userlist-gui.c xchat-gnome-0.26.1/src/fe-gnome/userlist-gui.c
+--- xchat-gnome-0.26.1.OLD/src/fe-gnome/userlist-gui.c 2008-10-13 17:02:16.000000000 -0400
++++ xchat-gnome-0.26.1/src/fe-gnome/userlist-gui.c 2010-03-28 16:47:55.703154452 -0400
+@@ -261,12 +261,12 @@ userlist_gui_show (void)
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gui.userlist_toggle), TRUE);
+
+- if (!GTK_WIDGET_REALIZED (gui.userlist_window)) {
++ if (!gtk_widget_get_realized (GTK_WIDGET (gui.userlist_window))) {
+ gtk_widget_realize (gui.userlist_window);
+ }
+ gtk_widget_size_request (gui.userlist, &request);
+
+- if (GTK_WIDGET_REALIZED (gui.userlist_toggle))
++ if (gtk_widget_get_realized (GTK_WIDGET (gui.userlist_toggle)))
+ anchor_widget = gui.userlist_toggle;
+ else
+ anchor_widget = gui.main_window;
+diff -urp xchat-gnome-0.26.1.OLD/src/fe-gnome/xtext.c xchat-gnome-0.26.1/src/fe-gnome/xtext.c
+--- xchat-gnome-0.26.1.OLD/src/fe-gnome/xtext.c 2009-01-16 08:17:31.000000000 -0500
++++ xchat-gnome-0.26.1/src/fe-gnome/xtext.c 2010-03-28 16:57:17.441402617 -0400
+@@ -1086,7 +1086,7 @@ gtk_xtext_size_allocate (GtkWidget * wid
+ xtext->avoid_trans = FALSE;
+
+ widget->allocation = *allocation;
+- if (GTK_WIDGET_REALIZED (widget))
++ if (gtk_widget_get_realized (GTK_WIDGET (widget)))
+ {
+ xtext->buffer->window_width = allocation->width;
+ xtext->buffer->window_height = allocation->height;
+@@ -4113,7 +4113,7 @@ gtk_xtext_set_palette (GtkXText * xtext,
+ xtext->palette[i] = palette[i].pixel;
+ }
+
+- if (GTK_WIDGET_REALIZED (xtext))
++ if (gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ {
+ xtext_set_fg (xtext, xtext->fgc, XTEXT_FG);
+ xtext_set_bg (xtext, xtext->fgc, XTEXT_BG);
+@@ -4211,7 +4211,7 @@ gtk_xtext_set_font (GtkXText *xtext, cha
+
+ gtk_xtext_fix_indent (xtext->buffer);
+
+- if (GTK_WIDGET_REALIZED (xtext))
++ if (gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ gtk_xtext_recalc_widths (xtext->buffer, TRUE);
+
+ return TRUE;
+@@ -4248,7 +4248,7 @@ gtk_xtext_set_background (GtkXText * xte
+ if (trans)
+ {
+ xtext->shaded = shaded;
+- if (GTK_WIDGET_REALIZED (xtext))
++ if (gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ gtk_xtext_load_trans (xtext);
+ return;
+ }
+@@ -4260,14 +4260,14 @@ gtk_xtext_set_background (GtkXText * xte
+ if (pixmap != 0)
+ {
+ g_object_ref (pixmap);
+- if (GTK_WIDGET_REALIZED (xtext))
++ if (gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ {
+ gdk_gc_set_tile (xtext->bgc, pixmap);
+ gdk_gc_set_ts_origin (xtext->bgc, 0, 0);
+ xtext->ts_x = xtext->ts_y = 0;
+ gdk_gc_set_fill (xtext->bgc, GDK_TILED);
+ }
+- } else if (GTK_WIDGET_REALIZED (xtext))
++ } else if (gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ {
+ g_object_unref (xtext->bgc);
+ val.subwindow_mode = GDK_INCLUDE_INFERIORS;
+@@ -4516,7 +4516,7 @@ gtk_xtext_render_page (GtkXText * xtext)
+ int subline;
+ int startline = xtext->adj->value;
+
+- if(!GTK_WIDGET_REALIZED(xtext))
++ if(!gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ return;
+
+ if (xtext->buffer->indent < MARGIN)
+@@ -4636,7 +4636,7 @@ gtk_xtext_render_page (GtkXText * xtext)
+ void
+ gtk_xtext_refresh (GtkXText * xtext, int do_trans)
+ {
+- if (GTK_WIDGET_REALIZED (GTK_WIDGET (xtext)))
++ if (gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ {
+ #if defined(USE_XLIB) || defined(WIN32)
+ if (xtext->transparent && do_trans)
+@@ -5204,7 +5204,7 @@ gtk_xtext_buffer_show (GtkXText *xtext,
+ xtext->io_tag = 0;
+ }
+
+- if (!GTK_WIDGET_REALIZED (GTK_WIDGET (xtext)))
++ if (!gtk_widget_get_realized (GTK_WIDGET (xtext)))
+ gtk_widget_realize (GTK_WIDGET (xtext));
+
+ gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &w, &h);
diff --git a/extra/xchat-gnome/xchat-gnome-0.26.1-deprecated-symbol.patch b/extra/xchat-gnome/xchat-gnome-0.26.1-deprecated-symbol.patch
new file mode 100644
index 000000000..5bf1e4ef5
--- /dev/null
+++ b/extra/xchat-gnome/xchat-gnome-0.26.1-deprecated-symbol.patch
@@ -0,0 +1,22 @@
+From 8d35b36baa8204b68c9520ec92327e34c1d7c580 Mon Sep 17 00:00:00 2001
+From: Ritesh Khadgaray <khadgaray@gmail.com>
+Date: Sun, 04 Jul 2010 09:52:07 +0000
+Subject: remove deprecated GTK+ symbols, GTK_WIDGET_SET_FLAGS.
+
+---
+diff --git a/src/fe-gnome/xtext.c b/src/fe-gnome/xtext.c
+index 92562a3..51503f8 100644
+--- a/src/fe-gnome/xtext.c
++++ b/src/fe-gnome/xtext.c
+@@ -963,7 +963,7 @@ gtk_xtext_realize (GtkWidget * widget)
+ GdkColor col;
+ GdkColormap *cmap;
+
+- GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED);
++ gtk_widget_set_realized (widget, TRUE);
+ xtext = GTK_XTEXT (widget);
+
+ attributes.x = widget->allocation.x;
+--
+cgit v0.8.3.1
+
diff --git a/extra/xchat-gnome/xchat-gnome.install b/extra/xchat-gnome/xchat-gnome.install
new file mode 100644
index 000000000..b0816ece3
--- /dev/null
+++ b/extra/xchat-gnome/xchat-gnome.install
@@ -0,0 +1,24 @@
+pkgname=xchat-gnome
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
diff --git a/extra/xchm/PKGBUILD b/extra/xchm/PKGBUILD
new file mode 100644
index 000000000..809e0ed05
--- /dev/null
+++ b/extra/xchm/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 108735 2011-02-02 18:31:26Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=xchm
+pkgver=1.18
+pkgrel=1
+pkgdesc="A cross-platform GUI front-end to chmlib"
+arch=('i686' 'x86_64')
+url="http://xchm.sourceforge.net"
+license=('GPL')
+depends=('chmlib' 'wxgtk' 'desktop-file-utils')
+install=xchm.install
+source=(http://downloads.sourceforge.net/sourceforge/xchm/${pkgname}-${pkgver}.tar.gz
+ xchm.desktop
+ xchm.xml)
+md5sums=('07d7a910b3216301a002be5630c71866'
+ '31fb9692b9ee9f2a205f58b9ff4bc4fe'
+ '4102b0a393f5c60236143cc034664dd0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ export CXXFLAGS="${CXXFLAGS} -fno-strict-aliasing"
+ ./configure --prefix=/usr
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install || return 1
+ install -D -m644 ${srcdir}/xchm.desktop "${pkgdir}/usr/share/applications/xchm.desktop" || return 1
+ install -D -m644 ${srcdir}/xchm.xml "${pkgdir}/usr/share/mime/packages/xchm.xml" || return 1
+}
diff --git a/extra/xchm/xchm.desktop b/extra/xchm/xchm.desktop
new file mode 100644
index 000000000..ca20876b2
--- /dev/null
+++ b/extra/xchm/xchm.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Xchm
+Comment=Views CHM files
+Exec=xchm %f
+Terminal=false
+Type=Application
+Icon=xchm-48
+Categories=Viewer;Utility;
+MimeType=application/x-chm;
+StartupNotify=true
diff --git a/extra/xchm/xchm.install b/extra/xchm/xchm.install
new file mode 100644
index 000000000..1ad77f9aa
--- /dev/null
+++ b/extra/xchm/xchm.install
@@ -0,0 +1,15 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ 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/hicolor
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
diff --git a/extra/xchm/xchm.xml b/extra/xchm/xchm.xml
new file mode 100644
index 000000000..08cb9ca3f
--- /dev/null
+++ b/extra/xchm/xchm.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-chm">
+ <comment>Compiled HTML Help Format</comment>
+ <glob pattern="*.chm"/>
+ </mime-type>
+</mime-info>
diff --git a/extra/xclip/PKGBUILD b/extra/xclip/PKGBUILD
new file mode 100644
index 000000000..57834cdc0
--- /dev/null
+++ b/extra/xclip/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 110900 2011-02-22 20:16:09Z bisson $
+# Contributor: damir <damir@archlinux.org>
+# Committer: Manolis Tzanidakis <manolis@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=xclip
+pkgver=0.12
+pkgrel=2
+pkgdesc='Command line interface to the X11 clipboard'
+arch=('i686' 'x86_64')
+url='http://sourceforge.net/projects/xclip'
+license=('GPL')
+depends=('libxmu')
+source=("http://downloads.sourceforge.net/sourceforge/xclip/${pkgname}-${pkgver}.tar.gz")
+sha1sums=('aed2cff18b9aecfe3377ad064c6a67518bbec211')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xcompmgr/PKGBUILD b/extra/xcompmgr/PKGBUILD
new file mode 100644
index 000000000..817b015b1
--- /dev/null
+++ b/extra/xcompmgr/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 59263 2009-11-21 18:19:33Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Leslie P. Polzer <leslie.polzer@gmx.net>
+pkgname=xcompmgr
+pkgver=1.1.5
+pkgrel=1
+pkgdesc="Composite Window-effects manager for X.org"
+arch=('i686' 'x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxcomposite' 'libxdamage' 'libxrender')
+conflicts=('xapps')
+replaces=('xapps')
+source=(http://xorg.freedesktop.org/releases/individual/app/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('9b4d7c3c64b3d980ea317b5206fee17adefd1d65')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/xdelta/PKGBUILD b/extra/xdelta/PKGBUILD
new file mode 100644
index 000000000..dabc0db1c
--- /dev/null
+++ b/extra/xdelta/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 91165 2010-09-23 14:13:09Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=xdelta
+pkgver=1.1.4
+pkgrel=3
+pkgdesc="binary file delta generator"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/xdelta/"
+license=('GPL')
+depends=('glib' 'zlib')
+options=('!libtool')
+source=(http://xdelta.googlecode.com/files/$pkgname-$pkgver.tar.gz
+ xdelta-1.1.4-aclocal.patch)
+md5sums=('1b896c01ebf0e353b7e3c3071b05f496'
+ '1d8ab5909bdf977a2783c164b66906fd')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ patch -Np1 -i $srcdir/xdelta-1.1.4-aclocal.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
diff --git a/extra/xdelta/xdelta-1.1.4-aclocal.patch b/extra/xdelta/xdelta-1.1.4-aclocal.patch
new file mode 100644
index 000000000..ad8c99de5
--- /dev/null
+++ b/extra/xdelta/xdelta-1.1.4-aclocal.patch
@@ -0,0 +1,11 @@
+--- xdelta-1.1.3/xdelta.m4.aclocal 2004-10-20 00:20:47.875648144 +0200
++++ xdelta-1.1.3/xdelta.m4 2004-10-20 00:21:47.205628616 +0200
+@@ -4,7 +4,7 @@
+ dnl AM_PATH_XDELTA([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+ dnl Test for XDELTA, and define XDELTA_CFLAGS and XDELTA_LIBS, if "gmodule" or
+ dnl
+-AC_DEFUN(AM_PATH_XDELTA,
++AC_DEFUN([AM_PATH_XDELTA],
+ [dnl
+ dnl Get the cflags and libraries from the xdelta-config script
+ dnl
diff --git a/extra/xdelta3/PKGBUILD b/extra/xdelta3/PKGBUILD
new file mode 100644
index 000000000..a8149d55c
--- /dev/null
+++ b/extra/xdelta3/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Eduard "bekks" Warkentin <eduard.warkentin@gmail.com>
+# Contributor: Henning Garus <henning.garus@gmail.com>
+
+pkgname=xdelta3
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A diff utility which works with binary files"
+arch=('i686' 'x86_64')
+url="http://xdelta.org/"
+license=('GPL')
+makedepends=('python2')
+optdepends=('python2: for python modules')
+source=(http://xdelta.googlecode.com/files/xdelta$pkgver.tar.gz
+ xdelta3-makefile.patch)
+md5sums=('5fe038be3a266d2a7913e10d1cec6d88'
+ '378e9a735d92fb2fc695ed9ce2fad2d5')
+
+build() {
+ cd $srcdir/xdelta$pkgver
+ patch -Np1 -i $srcdir/xdelta3-makefile.patch
+ sed -i "/PYVER = /s/2.6/2.7/" Makefile
+
+ make xdelta3
+ make xdelta3module.so
+}
+
+package() {
+ cd $srcdir/xdelta$pkgver
+
+ install -D xdelta3 $pkgdir/usr/bin/xdelta3
+ python2 ./setup.py install --root ${pkgdir}
+ install -m644 {xdelta3.py,xdelta3module.so} ${pkgdir}/usr/lib/python2.7/site-packages
+}
+
diff --git a/extra/xdelta3/xdelta3-makefile.patch b/extra/xdelta3/xdelta3-makefile.patch
new file mode 100644
index 000000000..3085d3c29
--- /dev/null
+++ b/extra/xdelta3/xdelta3-makefile.patch
@@ -0,0 +1,24 @@
+diff -Naur xdelta3.0v-old/Makefile xdelta3.0v/Makefile
+--- xdelta3.0v-old/Makefile 2009-03-12 01:44:51.000000000 +0000
++++ xdelta3.0v/Makefile 2009-03-14 17:02:33.000000000 +0000
+@@ -200,6 +200,9 @@
+ xdelta3.o: $(SOURCES)
+ $(CC) -O3 $(CFLAGS) -c xdelta3.c $(SWIG_FLAGS) -o xdelta3.o
+
++xdelta3_PIC.o: $(SOURCES)
++ $(CC) -O3 $(CFLAGS) -fPIC -c xdelta3.c $(SWIG_FLAGS) -o xdelta3_PIC.o
++
+ xdelta3_wrap.o: xdelta3_wrap.c
+ $(CC) -O3 $(CFLAGS) $(SWIG_FLAGS) \
+ -DHAVE_CONFIG_H \
+@@ -218,8 +221,8 @@
+ cp $(SWIGTGT) /usr/lib/python$(PYVER)/site-packages
+
+ ifeq ("$(DARWIN)", "")
+-xdelta3module.so: xdelta3_wrap.o xdelta3.o
+- ld -shared xdelta3.o xdelta3_wrap.o \
++xdelta3module.so: xdelta3_wrap.o xdelta3_PIC.o
++ cc -shared xdelta3_PIC.o xdelta3_wrap.o \
+ -o xdelta3module.so \
+ /usr/lib/libpython$(PYVER).so \
+ -lc
diff --git a/extra/xf86-input-acecad/PKGBUILD b/extra/xf86-input-acecad/PKGBUILD
new file mode 100644
index 000000000..f0203a202
--- /dev/null
+++ b/extra/xf86-input-acecad/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114580 2011-03-14 10:09:44Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-acecad
+pkgver=1.4.0
+pkgrel=4
+pkgdesc="X.Org acecad tablet input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('sysfsutils')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('4182aa30d4209ec60fd423a3e24e4951e16c0a4b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-aiptek/PKGBUILD b/extra/xf86-input-aiptek/PKGBUILD
new file mode 100644
index 000000000..d0f6b5468
--- /dev/null
+++ b/extra/xf86-input-aiptek/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 113901 2011-03-10 19:22:12Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-aiptek
+pkgver=1.3.1
+pkgrel=2
+pkgdesc="X.Org Aiptek USB Digital Tablet input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8466910dd3877502eb97468db4deab98d49125bb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-evdev/PKGBUILD b/extra/xf86-input-evdev/PKGBUILD
new file mode 100644
index 000000000..c16a37091
--- /dev/null
+++ b/extra/xf86-input-evdev/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 113906 2011-03-10 19:27:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <Alexander@archlinux.org
+
+pkgname=xf86-input-evdev
+pkgver=2.6.0
+pkgrel=2
+pkgdesc="X.org evdev input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool' '!makeflags')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('fb6f7a6f5168ae07efe890e4ace9fb8af1d4e1e0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-joystick/50-joystick.conf b/extra/xf86-input-joystick/50-joystick.conf
new file mode 100644
index 000000000..95a295ab0
--- /dev/null
+++ b/extra/xf86-input-joystick/50-joystick.conf
@@ -0,0 +1,6 @@
+Section "InputClass"
+ Identifier "joystick catchall"
+ MatchIsJoystick "on"
+ MatchDevicePath "/dev/input/event*"
+ Driver "joystick"
+EndSection
diff --git a/extra/xf86-input-joystick/LICENSE b/extra/xf86-input-joystick/LICENSE
new file mode 100644
index 000000000..434899a50
--- /dev/null
+++ b/extra/xf86-input-joystick/LICENSE
@@ -0,0 +1,22 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1995-1999 by Frederic Lepied, France. <Lepied@XFree86.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Frederic Lepied not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Frederic Lepied makes no
+representations about the suitability of this software for any purpose. It
+is provided "as is" without express or implied warranty.
+
+FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL FREDERIC LEPIED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/extra/xf86-input-joystick/PKGBUILD b/extra/xf86-input-joystick/PKGBUILD
new file mode 100644
index 000000000..984a83e42
--- /dev/null
+++ b/extra/xf86-input-joystick/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 114875 2011-03-16 08:27:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-joystick
+pkgver=1.5.0
+pkgrel=5
+pkgdesc="X.Org Joystick input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 50-joystick.conf
+ LICENSE)
+sha1sums=('a9fed6827d55f59b7166185247952049b4e6d152'
+ 'e1ff3699a0470c6bb78a53f718df9d8521621e11'
+ 'ee4c79491b36a680ed9d86f5fc41ae447f26353e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
+ install -m644 "${srcdir}/50-joystick.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-keyboard/PKGBUILD b/extra/xf86-input-keyboard/PKGBUILD
new file mode 100644
index 000000000..e91bf4ad1
--- /dev/null
+++ b/extra/xf86-input-keyboard/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 113916 2011-03-10 20:06:54Z jgc $
+# Maintainer; Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-keyboard
+pkgver=1.6.0
+pkgrel=1
+pkgdesc="X.Org keyboard input driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8e845086749f8c4b64fdfa852b4b26cf7bb62dc9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-mouse/PKGBUILD b/extra/xf86-input-mouse/PKGBUILD
new file mode 100644
index 000000000..bc95e7278
--- /dev/null
+++ b/extra/xf86-input-mouse/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 113921 2011-03-10 20:09:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-mouse
+pkgver=1.7.0
+pkgrel=1
+pkgdesc="X.org mouse input driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8b99054e5e4feafd7e08c87b936e64386b74ae8f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-synaptics/10-synaptics.conf b/extra/xf86-input-synaptics/10-synaptics.conf
new file mode 100644
index 000000000..81a90fb81
--- /dev/null
+++ b/extra/xf86-input-synaptics/10-synaptics.conf
@@ -0,0 +1,9 @@
+Section "InputClass"
+ Identifier "touchpad catchall"
+ Driver "synaptics"
+ MatchIsTouchpad "on"
+ MatchDevicePath "/dev/input/event*"
+ Option "TapButton1" "1"
+ Option "TapButton2" "2"
+ Option "TapButton3" "3"
+EndSection
diff --git a/extra/xf86-input-synaptics/PKGBUILD b/extra/xf86-input-synaptics/PKGBUILD
new file mode 100644
index 000000000..504ba0514
--- /dev/null
+++ b/extra/xf86-input-synaptics/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 113926 2011-03-10 20:15:53Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-input-synaptics
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="Synaptics driver for notebook touchpads"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxtst')
+makedepends=('xorg-server-devel' 'libxi' 'libx11')
+conflicts=('xorg-server<1.9.0')
+replaces=('synaptics')
+provides=('synaptics')
+conflicts=('synaptics')
+groups=('xorg-drivers' 'xorg')
+options=(!libtool)
+backup=('etc/X11/xorg.conf.d/10-synaptics.conf')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 10-synaptics.conf)
+sha1sums=('96541b063482568e177f883a9fcfbe9a22c25569'
+ '68e1f4ef5e1038231d210eb422fa4d18c5922f0f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
+ install -m644 "${srcdir}/10-synaptics.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ rm -rf "${pkgdir}/usr/share/X11"
+}
diff --git a/extra/xf86-input-void/PKGBUILD b/extra/xf86-input-void/PKGBUILD
new file mode 100644
index 000000000..1c086ce2b
--- /dev/null
+++ b/extra/xf86-input-void/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 113936 2011-03-10 20:29:20Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-void
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="X.org void input driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('f0009bd77d205c5e5a9791d8f498780b44e931ae')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-input-wacom/70-wacom.rules b/extra/xf86-input-wacom/70-wacom.rules
new file mode 100644
index 000000000..67e5580cc
--- /dev/null
+++ b/extra/xf86-input-wacom/70-wacom.rules
@@ -0,0 +1,8 @@
+ACTION!="add|change", GOTO="wacom_end"
+
+# Match all wacom tablets with a serial ID starting with WACf
+ATTRS{id}=="WACf*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
+ATTRS{id}=="FUJ*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
+
+LABEL="wacom_end"
+
diff --git a/extra/xf86-input-wacom/PKGBUILD b/extra/xf86-input-wacom/PKGBUILD
new file mode 100644
index 000000000..529615939
--- /dev/null
+++ b/extra/xf86-input-wacom/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 88601 2010-08-24 09:13:17Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: M Rawash <mrawash@gmail.com>
+
+pkgname=xf86-input-wacom
+pkgver=0.10.8
+pkgrel=2
+pkgdesc="X.Org Wacom tablet driver"
+arch=('i686' 'x86_64')
+url="http://linuxwacom.sourceforge.net/"
+license=('GPL')
+backup=('etc/X11/xorg.conf.d/50-wacom.conf')
+depends=('libxi')
+makedepends=('xorg-server-devel' 'libxext' 'libxi')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/linuxwacom/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ 70-wacom.rules)
+md5sums=('e2bcc125070a16a7e3608d074d5d27dc'
+ '4d3665bb2ef8a8190734640dffa4c6f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-xorg-conf-dir=/etc/X11/xorg.conf.d
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/lib/udev/rules.d"
+ install -m644 "${srcdir}/70-wacom.rules" "${pkgdir}/lib/udev/rules.d/"
+}
diff --git a/extra/xf86-video-apm/PKGBUILD b/extra/xf86-video-apm/PKGBUILD
new file mode 100644
index 000000000..bc7e2e472
--- /dev/null
+++ b/extra/xf86-video-apm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 113941 2011-03-10 20:38:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-apm
+pkgver=1.2.3
+pkgrel=2
+pkgdesc="X.org Alliance ProMotion video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('1fa7180cf985a74132f8d5b39a0bf9df08713fac')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-ark/PKGBUILD b/extra/xf86-video-ark/PKGBUILD
new file mode 100644
index 000000000..e93acec06
--- /dev/null
+++ b/extra/xf86-video-ark/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 113946 2011-03-10 20:41:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ark
+pkgver=0.7.3
+pkgrel=2
+pkgdesc="X.org ark video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('56901ec6097a83433689f208268281f9c98c238b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-ast/PKGBUILD b/extra/xf86-video-ast/PKGBUILD
new file mode 100644
index 000000000..6a14cdb4e
--- /dev/null
+++ b/extra/xf86-video-ast/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 114185 2011-03-11 09:22:15Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ast
+pkgver=0.91.10
+pkgrel=2
+pkgdesc="X.org ASPEED AST Graphics video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('a90624e63f33fdcb50ccefcdeebb34052f341ef3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-ati/PKGBUILD b/extra/xf86-video-ati/PKGBUILD
new file mode 100644
index 000000000..ed379833d
--- /dev/null
+++ b/extra/xf86-video-ati/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 114190 2011-03-11 09:27:15Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-ati
+pkgver=6.14.0
+pkgrel=2
+pkgdesc="X.org ati video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(libpciaccess libdrm udev pixman ati-dri)
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('132a6b1ed6e03f7365659cdcf520516746a8fc27')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make "DESTDIR=${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-chips/PKGBUILD b/extra/xf86-video-chips/PKGBUILD
new file mode 100644
index 000000000..9712243dd
--- /dev/null
+++ b/extra/xf86-video-chips/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 114195 2011-03-11 09:33:53Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-chips
+pkgver=1.2.4
+pkgrel=1
+pkgdesc="X.org Chips and Technologies video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(glibc)
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('71f474335d05f93b2451a7a0750c4409669641a4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-cirrus/LICENSE b/extra/xf86-video-cirrus/LICENSE
new file mode 100644
index 000000000..bb283cf4d
--- /dev/null
+++ b/extra/xf86-video-cirrus/LICENSE
@@ -0,0 +1,22 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 2000 by Egbert Eich
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Alan Hourihane not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Alan Hourihane makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+EGBERT EICH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/extra/xf86-video-cirrus/PKGBUILD b/extra/xf86-video-cirrus/PKGBUILD
new file mode 100644
index 000000000..374de76cf
--- /dev/null
+++ b/extra/xf86-video-cirrus/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 114585 2011-03-14 10:16:30Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-cirrus
+pkgver=1.3.2
+pkgrel=5
+pkgdesc="X.org Cirrus Logic video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('8195d03ed0be0975c03441e66a9f53b3'
+ 'b9b570ac5c03f1fbe3e0cee5fe884b82')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-dummy/PKGBUILD b/extra/xf86-video-dummy/PKGBUILD
new file mode 100644
index 000000000..d629b26c0
--- /dev/null
+++ b/extra/xf86-video-dummy/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114200 2011-03-11 09:44:32Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-dummy
+pkgver=0.3.4
+pkgrel=3
+pkgdesc="X.org dummy video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('876ed7165ea2821bbddd73232a1ce0b79c1f14ff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-fbdev/PKGBUILD b/extra/xf86-video-fbdev/PKGBUILD
new file mode 100644
index 000000000..a53248894
--- /dev/null
+++ b/extra/xf86-video-fbdev/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114205 2011-03-11 09:46:20Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-fbdev
+pkgver=0.4.2
+pkgrel=3
+pkgdesc="X.org framebuffer video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('c8562f997d56c9fec50df6ca9892f39f43ff4c2c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-glint/PKGBUILD b/extra/xf86-video-glint/PKGBUILD
new file mode 100644
index 000000000..757ae9c99
--- /dev/null
+++ b/extra/xf86-video-glint/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114213 2011-03-11 09:52:26Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-glint
+pkgver=1.2.5
+pkgrel=1
+pkgdesc="X.org GLINT/Permedia video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('28d54093c6485bf0055fa16be3d116f9107aaea7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-i128/PKGBUILD b/extra/xf86-video-i128/PKGBUILD
new file mode 100644
index 000000000..513c262c2
--- /dev/null
+++ b/extra/xf86-video-i128/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114218 2011-03-11 10:11:52Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i128
+pkgver=1.3.4
+pkgrel=2
+pkgdesc="X.org Number 9 I128 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d5f755dc964eaa067b4efcafafd00814a60df775')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-i740/PKGBUILD b/extra/xf86-video-i740/PKGBUILD
new file mode 100644
index 000000000..d6ffc4287
--- /dev/null
+++ b/extra/xf86-video-i740/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114223 2011-03-11 10:30:48Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i740
+pkgver=1.3.2
+pkgrel=5
+pkgdesc="X.org Intel i740 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('aadd2168153f780c487778e5fdda5473ed4b243d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-intel/PKGBUILD b/extra/xf86-video-intel/PKGBUILD
new file mode 100644
index 000000000..5b25ca4cd
--- /dev/null
+++ b/extra/xf86-video-intel/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 114228 2011-03-11 10:58:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-intel
+pkgver=2.14.0
+pkgrel=3
+pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(intel-dri libxvmc libpciaccess libdrm xcb-util libxfixes udev)
+makedepends=('xorg-server-devel' 'libx11' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'libxvmc' 'xcb-util')
+conflicts=('xorg-server<1.9.0' 'xf86-video-i810' 'xf86-video-intel-legacy')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ git-fixes.patch)
+sha1sums=('103193a01b9c29d6f71a620ad99c6e1495276e68'
+ '62dc94bd6a45432bdaed85bb0187d7087b88fe29')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/git-fixes.patch"
+ libtoolize --force
+ autoreconf --force --install
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-intel/git-fixes.patch b/extra/xf86-video-intel/git-fixes.patch
new file mode 100644
index 000000000..cbdbf27b5
--- /dev/null
+++ b/extra/xf86-video-intel/git-fixes.patch
@@ -0,0 +1,1209 @@
+diff --git a/Makefile.am b/Makefile.am
+index f4239de..83948ab 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -18,6 +18,7 @@
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
++ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+
+ SUBDIRS = uxa src man
+ MAINTAINERCLEANFILES = ChangeLog INSTALL
+diff --git a/configure.ac b/configure.ac
+index 529a294..5a1baac 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,18 +21,24 @@
+ # Process this file with autoconf to produce a configure script
+
+ # Initialize Autoconf
+-AC_PREREQ([2.60])
++AC_PREREQ([2.63])
+ AC_INIT([xf86-video-intel],
+ [2.14.0],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+ [xf86-video-intel])
+ AC_CONFIG_SRCDIR([Makefile.am])
+ AC_CONFIG_HEADERS([config.h])
+-AC_CONFIG_AUX_DIR(.)
++AC_CONFIG_AUX_DIR([build-aux])
++AC_CONFIG_MACRO_DIR([m4])
+
+ # Initialize Automake
+-AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-AM_MAINTAINER_MODE
++AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2])
++AM_MAINTAINER_MODE([enable])
++
++# Support silent build rules, requires at least automake-1.11. Disable
++# by either passing --disable-silent-rules to configure or passing V=1
++# to make
++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+ # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+@@ -50,8 +56,8 @@ m4_ifndef([XORG_DRIVER_CHECK_EXT],
+ depending on your distribution, try package 'xserver-xorg-dev' or 'xorg-x11-server-devel'])])
+
+ # Initialize libtool
+-AC_DISABLE_STATIC
+-AC_PROG_LIBTOOL
++LT_PREREQ([2.2])
++LT_INIT([disable-static])
+
+ PKG_CHECK_MODULES(GEN4ASM, [intel-gen4asm >= 1.1], [gen4asm=yes], [gen4asm=no])
+ AM_CONDITIONAL(HAVE_GEN4ASM, test x$gen4asm = xyes)
+@@ -85,6 +91,12 @@ AC_ARG_ENABLE(kms-only, AS_HELP_STRING([--enable-kms-only],
+ [KMS_ONLY="$enableval"],
+ [KMS_ONLY=no])
+
++AC_ARG_ENABLE(debug,
++ AS_HELP_STRING([--enable-debug],
++ [Enables internal debugging [[default=yes]]]),
++ [DEBUG="$enableval"],
++ [DEBUG=yes])
++
+ # Store the list of server defined optional extensions in REQUIRED_MODULES
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+@@ -138,15 +150,19 @@ fi
+ AC_MSG_CHECKING([whether to include XvMC support])
+ AC_MSG_RESULT([$XVMC])
+ AM_CONDITIONAL(XVMC, test x$XVMC = xyes)
+-if test "$XVMC" = yes; then
++if test "x$XVMC" = xyes; then
+ AC_DEFINE(ENABLE_XVMC,1,[Enable XvMC support])
+ fi
+
+ AM_CONDITIONAL(KMS_ONLY, test x$KMS_ONLY = xyes)
+-if test "$KMS_ONLY" = yes; then
++if test "x$KMS_ONLY" = xyes; then
+ AC_DEFINE(KMS_ONLY,1,[Assume KMS support])
+ fi
+
++if test "x$DEBUG" = xno; then
++ AC_DEFINE(NDEBUG,1,[Disable internal debugging])
++fi
++
+ DRIVER_NAME=intel
+ AC_SUBST([DRIVER_NAME])
+ AC_SUBST([moduledir])
+diff --git a/src/i915_render.c b/src/i915_render.c
+index 6d844e5..d04e8e1 100644
+--- a/src/i915_render.c
++++ b/src/i915_render.c
+@@ -302,12 +302,10 @@ static Bool i915_texture_setup(PicturePtr picture, PixmapPtr pixmap, int unit)
+ ScrnInfoPtr scrn = xf86Screens[picture->pDrawable->pScreen->myNum];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+ uint32_t format, pitch, filter;
+- int w, h, i;
+ uint32_t wrap_mode, tiling_bits;
++ int i;
+
+ pitch = intel_pixmap_pitch(pixmap);
+- w = picture->pDrawable->width;
+- h = picture->pDrawable->height;
+ intel->scale_units[unit][0] = 1. / pixmap->drawable.width;
+ intel->scale_units[unit][1] = 1. / pixmap->drawable.height;
+
+@@ -546,8 +544,8 @@ i915_emit_composite_primitive(PixmapPtr dest,
+ {
+ ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+- Bool is_affine_src, is_affine_mask = TRUE;
+- int per_vertex, num_floats;
++ Bool is_affine_src = TRUE, is_affine_mask = TRUE;
++ int per_vertex;
+ int tex_unit = 0;
+ int src_unit = -1, mask_unit = -1;
+ float src_x[3], src_y[3], src_w[3], mask_x[3], mask_y[3], mask_w[3];
+@@ -666,8 +664,6 @@ i915_emit_composite_primitive(PixmapPtr dest,
+ }
+ }
+
+- num_floats = 3 * per_vertex;
+-
+ OUT_VERTEX(dstX + w);
+ OUT_VERTEX(dstY + h);
+ if (! intel->render_source_is_solid) {
+diff --git a/src/i965_video.c b/src/i965_video.c
+index 235dfb9..e16a575 100644
+--- a/src/i965_video.c
++++ b/src/i965_video.c
+@@ -414,8 +414,8 @@ static void i965_create_dst_surface_state(ScrnInfoPtr scrn,
+ intel_emit_reloc(surf_bo, offset + offsetof(struct brw_surface_state, ss1),
+ pixmap_bo, 0, I915_GEM_DOMAIN_SAMPLER, 0);
+
+- dest_surf_state->ss2.height = scrn->virtualY - 1;
+- dest_surf_state->ss2.width = scrn->virtualX - 1;
++ dest_surf_state->ss2.height = pixmap->drawable.height - 1;
++ dest_surf_state->ss2.width = pixmap->drawable.width - 1;
+ dest_surf_state->ss2.mip_count = 0;
+ dest_surf_state->ss2.render_target_rotation = 0;
+ dest_surf_state->ss3.pitch = intel_pixmap_pitch(pixmap) - 1;
+@@ -770,7 +770,7 @@ static drm_intel_bo *i965_create_cc_state(ScrnInfoPtr scrn)
+ }
+
+ static void
+-i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_table_bo, int n_src_surf)
++i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_table_bo, int n_src_surf, PixmapPtr pixmap)
+ {
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+ int urb_vs_start, urb_vs_size;
+@@ -821,20 +821,20 @@ i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_tab
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* media base addr, don't care */
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* Instruction base address */
+ /* general state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ /* media object state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ /* Instruction max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ } else {
+ OUT_BATCH(BRW_STATE_BASE_ADDRESS | 4);
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* Generate state base address */
+ OUT_RELOC(surface_state_binding_table_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* media base addr, don't care */
+ /* general state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ /* media object state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ }
+
+ /* Set system instruction pointer */
+@@ -877,7 +877,7 @@ i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_tab
+ */
+ OUT_BATCH(BRW_3DSTATE_DRAWING_RECTANGLE | 2); /* XXX 3 for BLC or CTG */
+ OUT_BATCH(0x00000000); /* ymin, xmin */
+- OUT_BATCH((scrn->virtualX - 1) | (scrn->virtualY - 1) << 16); /* ymax, xmax */
++ OUT_BATCH((pixmap->drawable.width - 1) | (pixmap->drawable.height - 1) << 16); /* ymax, xmax */
+ OUT_BATCH(0x00000000); /* yorigin, xorigin */
+
+ /* skip the depth buffer */
+@@ -1212,7 +1212,7 @@ I965DisplayVideoTextured(ScrnInfoPtr scrn,
+
+ intel_batch_start_atomic(scrn, 100);
+
+- i965_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf);
++ i965_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf, pixmap);
+
+ /* Set up the pointer to our vertex buffer */
+ OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | 3);
+@@ -1517,13 +1517,13 @@ gen6_upload_depth_buffer_state(ScrnInfoPtr scrn)
+ }
+
+ static void
+-gen6_upload_drawing_rectangle(ScrnInfoPtr scrn)
++gen6_upload_drawing_rectangle(ScrnInfoPtr scrn, PixmapPtr pixmap)
+ {
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+
+ OUT_BATCH(BRW_3DSTATE_DRAWING_RECTANGLE | 2);
+ OUT_BATCH(0x00000000); /* ymin, xmin */
+- OUT_BATCH((scrn->virtualX - 1) | (scrn->virtualY - 1) << 16); /* ymax, xmax */
++ OUT_BATCH((pixmap->drawable.width - 1) | (pixmap->drawable.height - 1) << 16); /* ymax, xmax */
+ OUT_BATCH(0x00000000); /* yorigin, xorigin */
+ }
+
+@@ -1673,7 +1673,7 @@ gen6_upload_vertex_element_state(ScrnInfoPtr scrn)
+ }
+
+ static void
+-gen6_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo *surface_state_binding_table_bo, int n_src_surf)
++gen6_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo *surface_state_binding_table_bo, int n_src_surf, PixmapPtr pixmap)
+ {
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+
+@@ -1694,7 +1694,7 @@ gen6_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo *surface_state_binding_tabl
+ gen6_upload_wm_state(scrn, n_src_surf == 1 ? TRUE : FALSE);
+ gen6_upload_binding_table(scrn, (n_src_surf + 1) * ALIGN(sizeof(struct brw_surface_state), 32));;
+ gen6_upload_depth_buffer_state(scrn);
+- gen6_upload_drawing_rectangle(scrn);
++ gen6_upload_drawing_rectangle(scrn, pixmap);
+ gen6_upload_vertex_element_state(scrn);
+ }
+
+@@ -1853,7 +1853,7 @@ void Gen6DisplayVideoTextured(ScrnInfoPtr scrn,
+ intel_batch_submit(scrn, FALSE);
+
+ intel_batch_start_atomic(scrn, 200);
+- gen6_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf);
++ gen6_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf, pixmap);
+
+ /* Set up the pointer to our vertex buffer */
+ OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | (5 - 2));
+diff --git a/src/intel.h b/src/intel.h
+index 9063328..4c755fc 100644
+--- a/src/intel.h
++++ b/src/intel.h
+@@ -227,8 +227,6 @@ static inline Bool intel_pixmap_tiled(PixmapPtr pixmap)
+ dri_bo *intel_get_pixmap_bo(PixmapPtr pixmap);
+ void intel_set_pixmap_bo(PixmapPtr pixmap, dri_bo * bo);
+
+-typedef struct _I830OutputRec I830OutputRec, *I830OutputPtr;
+-
+ #include "common.h"
+
+ #ifdef XvMCExtension
+@@ -239,39 +237,6 @@ typedef struct _I830OutputRec I830OutputRec, *I830OutputPtr;
+
+ #define PITCH_NONE 0
+
+-/** Record of a linear allocation in the aperture. */
+-typedef struct _intel_memory intel_memory;
+-struct _intel_memory {
+- /** Description of the allocation, for logging */
+- char *name;
+-
+- /** @{
+- * Memory allocator linked list pointers
+- */
+- intel_memory *next;
+- intel_memory *prev;
+- /** @} */
+-
+- drm_intel_bo *bo;
+- uint32_t gem_name;
+-};
+-
+-typedef struct _I830CrtcPrivateRec {
+- int pipe;
+- int plane;
+-
+- Bool enabled;
+-
+- int dpms_mode;
+-
+- int x, y;
+-
+- /* Lookup table values to be set when the CRTC is enabled */
+- uint8_t lut_r[256], lut_g[256], lut_b[256];
+-} I830CrtcPrivateRec, *I830CrtcPrivatePtr;
+-
+-#define I830CrtcPrivate(c) ((I830CrtcPrivatePtr) (c)->driver_private)
+-
+ /** enumeration of 3d consumers so some can maintain invariant state. */
+ enum last_3d {
+ LAST_3D_OTHER,
+@@ -288,19 +253,12 @@ enum dri_type {
+
+ typedef struct intel_screen_private {
+ ScrnInfoPtr scrn;
+- unsigned char *MMIOBase;
+ int cpp;
+
+ #define RENDER_BATCH I915_EXEC_RENDER
+ #define BLT_BATCH I915_EXEC_BLT
+ unsigned int current_batch;
+
+- unsigned int bufferOffset; /* for I830SelectBuffer */
+-
+- /* These are set in PreInit and never changed. */
+- long FbMapSize;
+- long GTTMapSize;
+-
+ void *modes;
+ drm_intel_bo *front_buffer;
+ long front_pitch, front_tiling;
+@@ -344,7 +302,6 @@ typedef struct intel_screen_private {
+ Bool has_relaxed_fencing;
+
+ int Chipset;
+- unsigned long LinearAddr;
+ EntityInfoPtr pEnt;
+ struct pci_device *PciInfo;
+ struct intel_chipset chipset;
+@@ -535,8 +492,6 @@ extern void I830InitVideo(ScreenPtr pScreen);
+ extern xf86CrtcPtr intel_covering_crtc(ScrnInfoPtr scrn, BoxPtr box,
+ xf86CrtcPtr desired, BoxPtr crtc_box_ret);
+
+-extern xf86CrtcPtr intel_pipe_to_crtc(ScrnInfoPtr scrn, int pipe);
+-
+ Bool I830DRI2ScreenInit(ScreenPtr pScreen);
+ void I830DRI2CloseScreen(ScreenPtr pScreen);
+ void I830DRI2FrameEventHandler(unsigned int frame, unsigned int tv_sec,
+@@ -545,11 +500,7 @@ void I830DRI2FlipEventHandler(unsigned int frame, unsigned int tv_sec,
+ unsigned int tv_usec, void *user_data);
+
+ extern Bool intel_crtc_on(xf86CrtcPtr crtc);
+-static inline int intel_crtc_to_pipe(xf86CrtcPtr crtc)
+-{
+- intel_screen_private *intel = intel_get_screen_private(crtc->scrn);
+- return intel_get_pipe_from_crtc_id(intel->bufmgr, crtc);
+-}
++int intel_crtc_to_pipe(xf86CrtcPtr crtc);
+
+ /* intel_memory.c */
+ unsigned long intel_get_fence_size(intel_screen_private *intel, unsigned long size);
+@@ -688,11 +639,6 @@ static inline drm_intel_bo *intel_bo_alloc_for_data(ScrnInfoPtr scrn,
+ return bo;
+ }
+
+-/* Flags for memory allocation function */
+-#define NEED_PHYSICAL_ADDR 0x00000001
+-#define ALLOW_SHARING 0x00000010
+-#define DISABLE_REUSE 0x00000020
+-
+ void intel_debug_flush(ScrnInfoPtr scrn);
+
+ static inline PixmapPtr get_drawable_pixmap(DrawablePtr drawable)
+@@ -715,7 +661,7 @@ static inline Bool pixmap_is_scanout(PixmapPtr pixmap)
+ const OptionInfoRec *intel_uxa_available_options(int chipid, int busid);
+
+ Bool intel_uxa_init(ScreenPtr pScreen);
+-void intel_uxa_create_screen_resources(ScreenPtr pScreen);
++Bool intel_uxa_create_screen_resources(ScreenPtr pScreen);
+ void intel_uxa_block_handler(intel_screen_private *intel);
+ Bool intel_get_aperture_space(ScrnInfoPtr scrn, drm_intel_bo ** bo_table,
+ int num_bos);
+diff --git a/src/intel_display.c b/src/intel_display.c
+index 1198013..f487a6e 100644
+--- a/src/intel_display.c
++++ b/src/intel_display.c
+@@ -70,6 +70,7 @@ struct intel_crtc {
+ struct intel_mode *mode;
+ drmModeModeInfo kmode;
+ drmModeCrtcPtr mode_crtc;
++ int pipe;
+ dri_bo *cursor;
+ dri_bo *rotate_bo;
+ uint32_t rotate_pitch;
+@@ -118,7 +119,6 @@ intel_output_dpms_backlight(xf86OutputPtr output, int oldmode, int mode);
+ * List of available kernel interfaces in priority order
+ */
+ static const char *backlight_interfaces[] = {
+- "intel", /* prefer our own native backlight driver */
+ "asus-laptop",
+ "eeepc",
+ "thinkpad_screen",
+@@ -128,6 +128,7 @@ static const char *backlight_interfaces[] = {
+ "samsung",
+ "acpi_video1", /* finally fallback to the generic acpi drivers */
+ "acpi_video0",
++ "intel_backlight",
+ NULL,
+ };
+ /*
+@@ -678,6 +679,9 @@ intel_crtc_init(ScrnInfoPtr scrn, struct intel_mode *mode, int num)
+ intel_crtc->mode = mode;
+ crtc->driver_private = intel_crtc;
+
++ intel_crtc->pipe = drm_intel_get_pipe_from_crtc_id(intel->bufmgr,
++ crtc_id(intel_crtc));
++
+ intel_crtc->cursor = drm_intel_bo_alloc(intel->bufmgr, "ARGB cursor",
+ HWCURSOR_SIZE_ARGB,
+ GTT_PAGE_SIZE);
+@@ -1671,16 +1675,15 @@ intel_mode_fini(intel_screen_private *intel)
+ intel->modes = NULL;
+ }
+
+-int
+-intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc)
+-{
+- return drm_intel_get_pipe_from_crtc_id(bufmgr,
+- crtc_id(crtc->driver_private));
+-}
+-
+ /* for the mode overlay */
+ int
+ intel_crtc_id(xf86CrtcPtr crtc)
+ {
+ return crtc_id(crtc->driver_private);
+ }
++
++int intel_crtc_to_pipe(xf86CrtcPtr crtc)
++{
++ struct intel_crtc *intel_crtc = crtc->driver_private;
++ return intel_crtc->pipe;
++}
+diff --git a/src/intel_driver.c b/src/intel_driver.c
+index 1275e4b..ebed258 100644
+--- a/src/intel_driver.c
++++ b/src/intel_driver.c
+@@ -37,10 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #include "config.h"
+ #endif
+
+-#ifndef PRINT_MODE_INFO
+-#define PRINT_MODE_INFO 0
+-#endif
+-
+ #include <assert.h>
+ #include <string.h>
+ #include <stdio.h>
+@@ -80,10 +76,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #include "i915_drm.h"
+ #include <xf86drmMode.h>
+
+-#define BIT(x) (1 << (x))
+-#define MAX(a,b) ((a) > (b) ? (a) : (b))
+-#define NB_OF(x) (sizeof (x) / sizeof (*x))
+-
+ /* *INDENT-OFF* */
+ /*
+ * Note: "ColorKey" is provided for compatibility with the i810 driver.
+@@ -174,14 +166,6 @@ I830LoadPalette(ScrnInfoPtr scrn, int numColors, int *indices,
+
+ for (p = 0; p < xf86_config->num_crtc; p++) {
+ xf86CrtcPtr crtc = xf86_config->crtc[p];
+- I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+-
+- /* Initialize to the old lookup table values. */
+- for (i = 0; i < 256; i++) {
+- lut_r[i] = intel_crtc->lut_r[i] << 8;
+- lut_g[i] = intel_crtc->lut_g[i] << 8;
+- lut_b[i] = intel_crtc->lut_b[i] << 8;
+- }
+
+ switch (scrn->depth) {
+ case 15:
+@@ -250,9 +234,7 @@ static Bool i830CreateScreenResources(ScreenPtr screen)
+ if (!(*screen->CreateScreenResources) (screen))
+ return FALSE;
+
+- intel_uxa_create_screen_resources(screen);
+-
+- return TRUE;
++ return intel_uxa_create_screen_resources(screen);
+ }
+
+ static void PreInitCleanup(ScrnInfoPtr scrn)
+@@ -607,12 +589,9 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
+ intel->tiling = TRUE;
+
+ /* Allow user override if they set a value */
+- if (!ALWAYS_TILING(intel) && xf86IsOptionSet(intel->Options, OPTION_TILING)) {
+- if (xf86ReturnOptValBool(intel->Options, OPTION_TILING, FALSE))
+- intel->tiling = TRUE;
+- else
+- intel->tiling = FALSE;
+- }
++ if (!ALWAYS_TILING(intel))
++ intel->tiling = xf86ReturnOptValBool(intel->Options,
++ OPTION_TILING, TRUE);
+
+ intel->can_blt = can_accelerate_blt(intel);
+ intel->use_shadow = !intel->can_blt;
+@@ -631,19 +610,11 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
+ }
+
+ /* SwapBuffers delays to avoid tearing */
+- intel->swapbuffers_wait = TRUE;
+-
+- /* Allow user override if they set a value */
+- if (xf86IsOptionSet(intel->Options, OPTION_SWAPBUFFERS_WAIT)) {
+- if (xf86ReturnOptValBool
+- (intel->Options, OPTION_SWAPBUFFERS_WAIT, FALSE))
+- intel->swapbuffers_wait = TRUE;
+- else
+- intel->swapbuffers_wait = FALSE;
+- }
+-
++ intel->swapbuffers_wait = xf86ReturnOptValBool(intel->Options,
++ OPTION_SWAPBUFFERS_WAIT,
++ TRUE);
+ if (IS_GEN6(intel))
+- intel->swapbuffers_wait = FALSE;
++ intel->swapbuffers_wait = FALSE;
+
+ xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Tiling %sabled\n",
+ intel->tiling ? "en" : "dis");
+@@ -679,19 +650,12 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
+ }
+
+ /* Load the dri2 module if requested. */
+- if (xf86ReturnOptValBool(intel->Options, OPTION_DRI, FALSE) &&
+- intel->directRenderingType != DRI_DISABLED) {
++ if (intel->directRenderingType != DRI_DISABLED)
+ xf86LoadSubModule(scrn, "dri2");
+- }
+
+ return TRUE;
+ }
+
+-enum pipe {
+- PIPE_A = 0,
+- PIPE_B,
+-};
+-
+ /**
+ * Intialiazes the hardware for the 3D pipeline use in the 2D driver.
+ *
+@@ -733,50 +697,6 @@ I830BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
+ intel_video_block_handler(intel);
+ }
+
+-static void intel_fixup_mtrrs(ScrnInfoPtr scrn)
+-{
+-#ifdef HAS_MTRR_SUPPORT
+- intel_screen_private *intel = intel_get_screen_private(scrn);
+- int fd;
+- struct mtrr_gentry gentry;
+- struct mtrr_sentry sentry;
+-
+- if ((fd = open("/proc/mtrr", O_RDONLY, 0)) != -1) {
+- for (gentry.regnum = 0;
+- ioctl(fd, MTRRIOC_GET_ENTRY, &gentry) == 0;
+- ++gentry.regnum) {
+-
+- if (gentry.size < 1) {
+- /* DISABLED */
+- continue;
+- }
+-
+- /* Check the MTRR range is one we like and if not - remove it.
+- * The Xserver common layer will then setup the right range
+- * for us.
+- */
+- if (gentry.base == intel->LinearAddr &&
+- gentry.size < intel->FbMapSize) {
+-
+- xf86DrvMsg(scrn->scrnIndex, X_INFO,
+- "Removing bad MTRR range (base 0x%lx, size 0x%x)\n",
+- gentry.base, gentry.size);
+-
+- sentry.base = gentry.base;
+- sentry.size = gentry.size;
+- sentry.type = gentry.type;
+-
+- if (ioctl(fd, MTRRIOC_DEL_ENTRY, &sentry) == -1) {
+- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+- "Failed to remove bad MTRR range\n");
+- }
+- }
+- }
+- close(fd);
+- }
+-#endif
+-}
+-
+ static Bool
+ intel_init_initial_framebuffer(ScrnInfoPtr scrn)
+ {
+@@ -809,7 +729,7 @@ Bool intel_crtc_on(xf86CrtcPtr crtc)
+ {
+ ScrnInfoPtr scrn = crtc->scrn;
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+- int i, active_outputs = 0;
++ int i;
+
+ if (!crtc->enabled)
+ return FALSE;
+@@ -819,11 +739,9 @@ Bool intel_crtc_on(xf86CrtcPtr crtc)
+ xf86OutputPtr output = xf86_config->output[i];
+ if (output->crtc == crtc &&
+ intel_output_dpms_status(output) == DPMSModeOn)
+- active_outputs++;
++ return TRUE;
+ }
+
+- if (active_outputs)
+- return TRUE;
+ return FALSE;
+ }
+
+@@ -849,103 +767,102 @@ intel_flush_callback(CallbackListPtr *list,
+ static void
+ I830HandleUEvents(int fd, void *closure)
+ {
+- ScrnInfoPtr scrn = closure;
++ ScrnInfoPtr scrn = closure;
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+- struct udev_device *dev;
+- const char *hotplug;
+- struct stat s;
+- dev_t udev_devnum;
+-
+- dev = udev_monitor_receive_device(intel->uevent_monitor);
+- if (!dev)
+- return;
+-
+- udev_devnum = udev_device_get_devnum(dev);
+- fstat(intel->drmSubFD, &s);
+- /*
+- * Check to make sure this event is directed at our
+- * device (by comparing dev_t values), then make
+- * sure it's a hotplug event (HOTPLUG=1)
+- */
+-
+- hotplug = udev_device_get_property_value(dev, "HOTPLUG");
+-
+- if (memcmp(&s.st_rdev, &udev_devnum, sizeof (dev_t)) == 0 &&
+- hotplug && atoi(hotplug) == 1)
+- RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
+-
+- udev_device_unref(dev);
++ struct udev_device *dev;
++ const char *hotplug;
++ struct stat s;
++ dev_t udev_devnum;
++
++ dev = udev_monitor_receive_device(intel->uevent_monitor);
++ if (!dev)
++ return;
++
++ udev_devnum = udev_device_get_devnum(dev);
++ fstat(intel->drmSubFD, &s);
++ /*
++ * Check to make sure this event is directed at our
++ * device (by comparing dev_t values), then make
++ * sure it's a hotplug event (HOTPLUG=1)
++ */
++
++ hotplug = udev_device_get_property_value(dev, "HOTPLUG");
++
++ if (memcmp(&s.st_rdev, &udev_devnum, sizeof (dev_t)) == 0 &&
++ hotplug && atoi(hotplug) == 1)
++ RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
++
++ udev_device_unref(dev);
+ }
+
+ static void
+ I830UeventInit(ScrnInfoPtr scrn)
+ {
+- intel_screen_private *intel = intel_get_screen_private(scrn);
+- struct udev *u;
+- struct udev_monitor *mon;
+- Bool hotplug;
+- MessageType from = X_CONFIG;
+-
+- if (!xf86GetOptValBool(intel->Options, OPTION_HOTPLUG, &hotplug)) {
+- from = X_DEFAULT;
+- hotplug = TRUE;
+- }
+-
+- xf86DrvMsg(scrn->scrnIndex, from, "hotplug detection: \"%s\"\n",
+- hotplug ? "enabled" : "disabled");
+- if (!hotplug)
+- return;
+-
+- u = udev_new();
+- if (!u)
+- return;
+-
+- mon = udev_monitor_new_from_netlink(u, "udev");
+-
+- if (!mon) {
+- udev_unref(u);
+- return;
+- }
+-
+- if (udev_monitor_filter_add_match_subsystem_devtype(mon,
+- "drm",
+- "drm_minor") < 0 ||
+- udev_monitor_enable_receiving(mon) < 0)
+- {
+- udev_monitor_unref(mon);
+- udev_unref(u);
+- return;
+- }
+-
+- intel->uevent_handler =
+- xf86AddGeneralHandler(udev_monitor_get_fd(mon),
+- I830HandleUEvents,
+- scrn);
+- if (!intel->uevent_handler) {
+- udev_monitor_unref(mon);
+- udev_unref(u);
+- return;
+- }
+-
+- intel->uevent_monitor = mon;
++ intel_screen_private *intel = intel_get_screen_private(scrn);
++ struct udev *u;
++ struct udev_monitor *mon;
++ Bool hotplug;
++ MessageType from = X_CONFIG;
++
++ if (!xf86GetOptValBool(intel->Options, OPTION_HOTPLUG, &hotplug)) {
++ from = X_DEFAULT;
++ hotplug = TRUE;
++ }
++
++ xf86DrvMsg(scrn->scrnIndex, from, "hotplug detection: \"%s\"\n",
++ hotplug ? "enabled" : "disabled");
++ if (!hotplug)
++ return;
++
++ u = udev_new();
++ if (!u)
++ return;
++
++ mon = udev_monitor_new_from_netlink(u, "udev");
++
++ if (!mon) {
++ udev_unref(u);
++ return;
++ }
++
++ if (udev_monitor_filter_add_match_subsystem_devtype(mon,
++ "drm",
++ "drm_minor") < 0 ||
++ udev_monitor_enable_receiving(mon) < 0)
++ {
++ udev_monitor_unref(mon);
++ udev_unref(u);
++ return;
++ }
++
++ intel->uevent_handler =
++ xf86AddGeneralHandler(udev_monitor_get_fd(mon),
++ I830HandleUEvents,
++ scrn);
++ if (!intel->uevent_handler) {
++ udev_monitor_unref(mon);
++ udev_unref(u);
++ return;
++ }
++
++ intel->uevent_monitor = mon;
+ }
+
+ static void
+ I830UeventFini(ScrnInfoPtr scrn)
+ {
+- intel_screen_private *intel = intel_get_screen_private(scrn);
++ intel_screen_private *intel = intel_get_screen_private(scrn);
+
+- if (intel->uevent_handler)
+- {
+- struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
++ if (intel->uevent_handler) {
++ struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
+
+- xf86RemoveGeneralHandler(intel->uevent_handler);
++ xf86RemoveGeneralHandler(intel->uevent_handler);
+
+- udev_monitor_unref(intel->uevent_monitor);
+- udev_unref(u);
+- intel->uevent_handler = NULL;
+- intel->uevent_monitor = NULL;
+- }
++ udev_monitor_unref(intel->uevent_monitor);
++ udev_unref(u);
++ intel->uevent_handler = NULL;
++ intel->uevent_monitor = NULL;
++ }
+ }
+ #endif /* HAVE_UDEV */
+
+@@ -961,32 +878,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ struct pci_device *const device = intel->PciInfo;
+ int fb_bar = IS_GEN2(intel) ? 0 : 2;
+
+- /*
+- * The "VideoRam" config file parameter specifies the maximum amount of
+- * memory that will be used/allocated. When not present, we allow the
+- * driver to allocate as much memory as it wishes to satisfy its
+- * allocations, but if agpgart support isn't available, it gets limited
+- * to the amount of pre-allocated ("stolen") memory.
+- *
+- * Note that in using this value for allocator initialization, we're
+- * limiting aperture allocation to the VideoRam option, rather than limiting
+- * actual memory allocation, so alignment and things will cause less than
+- * VideoRam to be actually used.
+- */
+- scrn->videoRam = intel->FbMapSize / KB(1);
+- if (intel->pEnt->device->videoRam != 0) {
+- if (scrn->videoRam != intel->pEnt->device->videoRam) {
+- xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+- "VideoRam configuration found, which is no "
+- "longer used.\n");
+- xf86DrvMsg(scrn->scrnIndex, X_INFO,
+- "Continuing with (ignored) %dkB VideoRam "
+- "instead of %d kB.\n",
+- scrn->videoRam,
+- intel->pEnt->device->videoRam);
+- }
+- }
+-
+ scrn->videoRam = device->regions[fb_bar].size / 1024;
+
+ intel->last_3d = LAST_3D_OTHER;
+@@ -998,10 +889,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ */
+ intel->XvEnabled = TRUE;
+
+- xf86DrvMsg(scrn->scrnIndex,
+- intel->pEnt->device->videoRam ? X_CONFIG : X_DEFAULT,
+- "VideoRam: %d KB\n", scrn->videoRam);
+-
+ #ifdef DRI2
+ if (intel->directRenderingType == DRI_NONE
+ && I830DRI2ScreenInit(screen))
+@@ -1011,8 +898,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ if (!intel_init_initial_framebuffer(scrn))
+ return FALSE;
+
+- intel_fixup_mtrrs(scrn);
+-
+ intel_batch_init(scrn);
+
+ if (INTEL_INFO(intel)->gen >= 40)
+@@ -1159,7 +1044,7 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ I830UeventInit(scrn);
+ #endif
+
+- return uxa_resources_init(screen);
++ return TRUE;
+ }
+
+ static void i830AdjustFrame(int scrnIndex, int x, int y, int flags)
+@@ -1382,22 +1267,6 @@ static Bool I830PMEvent(int scrnIndex, pmEvent event, Bool undo)
+ return TRUE;
+ }
+
+-xf86CrtcPtr intel_pipe_to_crtc(ScrnInfoPtr scrn, int pipe)
+-{
+- xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
+- int c;
+-
+- for (c = 0; c < config->num_crtc; c++) {
+- xf86CrtcPtr crtc = config->crtc[c];
+- I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+-
+- if (intel_crtc->pipe == pipe)
+- return crtc;
+- }
+-
+- return NULL;
+-}
+-
+ void intel_init_scrn(ScrnInfoPtr scrn)
+ {
+ scrn->PreInit = I830PreInit;
+diff --git a/src/intel_uxa.c b/src/intel_uxa.c
+index 1a591f1..9341b91 100644
+--- a/src/intel_uxa.c
++++ b/src/intel_uxa.c
+@@ -1089,12 +1089,15 @@ static Bool intel_uxa_destroy_pixmap(PixmapPtr pixmap)
+ return TRUE;
+ }
+
+-void intel_uxa_create_screen_resources(ScreenPtr screen)
++Bool intel_uxa_create_screen_resources(ScreenPtr screen)
+ {
+ ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+ dri_bo *bo = intel->front_buffer;
+
++ if (!uxa_resources_init(screen))
++ return FALSE;
++
+ drm_intel_gem_bo_map_gtt(bo);
+
+ if (intel->use_shadow) {
+@@ -1111,6 +1114,8 @@ void intel_uxa_create_screen_resources(ScreenPtr screen)
+ NULL);
+ scrn->displayWidth = intel->front_pitch / intel->cpp;
+ }
++
++ return TRUE;
+ }
+
+ static void
+@@ -1185,7 +1190,6 @@ Bool intel_uxa_init(ScreenPtr screen)
+
+ memset(intel->uxa_driver, 0, sizeof(*intel->uxa_driver));
+
+- intel->bufferOffset = 0;
+ intel->uxa_driver->uxa_major = 1;
+ intel->uxa_driver->uxa_minor = 0;
+
+diff --git a/src/intel_video.c b/src/intel_video.c
+index 2786201..5294f73 100644
+--- a/src/intel_video.c
++++ b/src/intel_video.c
+@@ -996,7 +996,7 @@ I830CopyPlanarData(intel_adaptor_private *adaptor_priv,
+ /* Copy V data for YV12, or U data for I420 */
+ src2 = buf + /* start of YUV data */
+ (srcH * srcPitch) + /* move over Luma plane */
+- ((top * srcPitch) >> 2) + /* move down from by top lines */
++ ((top >> 1) * srcPitch2) + /* move down from by top lines */
+ (left >> 1); /* move left by left pixels */
+
+ #if 0
+@@ -1015,7 +1015,7 @@ I830CopyPlanarData(intel_adaptor_private *adaptor_priv,
+ src3 = buf + /* start of YUV data */
+ (srcH * srcPitch) + /* move over Luma plane */
+ ((srcH >> 1) * srcPitch2) + /* move over Chroma plane */
+- ((top * srcPitch) >> 2) + /* move down from by top lines */
++ ((top >> 1) * srcPitch2) + /* move down from by top lines */
+ (left >> 1); /* move left by left pixels */
+ #if 0
+ ErrorF("src3 is %p, offset is %ld\n", src3,
+diff --git a/src/xvmc/i915_xvmc.c b/src/xvmc/i915_xvmc.c
+index 21a1149..fbd4555 100644
+--- a/src/xvmc/i915_xvmc.c
++++ b/src/xvmc/i915_xvmc.c
+@@ -391,7 +391,6 @@ static void i915_mc_static_indirect_state_set(XvMCContext * context,
+ i915XvMCContext *pI915XvMC = (i915XvMCContext *) context->privData;
+ struct intel_xvmc_surface *intel_surf = dest->privData;
+ struct i915_mc_static_indirect_state_buffer *buffer_info;
+- unsigned int w = dest->width;
+
+ drm_intel_gem_bo_map_gtt(pI915XvMC->sis_bo);
+ buffer_info = pI915XvMC->sis_bo->virtual;
+@@ -688,7 +687,7 @@ static void i915_mc_load_indirect_render_emit(XvMCContext * context)
+ {
+ i915XvMCContext *pI915XvMC = (i915XvMCContext *) context->privData;
+ int mem_select;
+- uint32_t load_indirect, buffer_address;
++ uint32_t load_indirect;
+ BATCH_LOCALS;
+
+ BEGIN_BATCH(5);
+diff --git a/src/xvmc/intel_batchbuffer.c b/src/xvmc/intel_batchbuffer.c
+index 337b2ce..2b5526c 100644
+--- a/src/xvmc/intel_batchbuffer.c
++++ b/src/xvmc/intel_batchbuffer.c
+@@ -64,8 +64,6 @@ static void i965_end_batch(void)
+
+ Bool intelInitBatchBuffer(void)
+ {
+- int i;
+-
+ if ((xvmc_driver->batch.buf =
+ drm_intel_bo_alloc(xvmc_driver->bufmgr,
+ "batch buffer", BATCH_SIZE, 0x1000)) == NULL) {
+diff --git a/src/xvmc/intel_batchbuffer.h b/src/xvmc/intel_batchbuffer.h
+index 6fa1c05..888abeb 100644
+--- a/src/xvmc/intel_batchbuffer.h
++++ b/src/xvmc/intel_batchbuffer.h
+@@ -24,7 +24,7 @@ extern int VERBOSE;
+
+ #define OUT_RELOC(bo,read_domains,write_domains,delta) \
+ do { \
+- *(unsigned int *)batch_ptr = delta + bo->offset; \
++ *(unsigned int *)batch_ptr = (delta) + bo->offset; \
+ intel_batch_emit_reloc(bo, read_domains, write_domains, delta, batch_ptr); \
+ batch_ptr += 4; \
+ } while (0)
+diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
+index 6cbec80..1b96945 100644
+--- a/src/xvmc/intel_xvmc.c
++++ b/src/xvmc/intel_xvmc.c
+@@ -105,8 +105,6 @@ unsigned int mb_bytes_420[] = {
+
+ void LOCK_HARDWARE(drm_context_t ctx)
+ {
+- char __ret = 0;
+-
+ PPTHREAD_MUTEX_LOCK();
+ assert(!xvmc_driver->locked);
+
+@@ -218,11 +216,6 @@ _X_EXPORT Status XvMCCreateContext(Display * display, XvPortID port,
+ int error_base;
+ int event_base;
+ int priv_count;
+- int isCapable;
+- int screen = DefaultScreen(display);
+- intel_xvmc_context_ptr intel_ctx;
+- int fd;
+- char *driverName = NULL, *deviceName = NULL;
+
+ /* Verify Obvious things first */
+ if (!display || !context)
+@@ -482,7 +475,6 @@ _X_EXPORT Status XvMCCreateBlocks(Display * display, XvMCContext * context,
+ unsigned int num_blocks,
+ XvMCBlockArray * block)
+ {
+- Status ret;
+ if (!display || !context || !num_blocks || !block)
+ return BadValue;
+
+@@ -505,7 +497,6 @@ _X_EXPORT Status XvMCCreateBlocks(Display * display, XvMCContext * context,
+ */
+ _X_EXPORT Status XvMCDestroyBlocks(Display * display, XvMCBlockArray * block)
+ {
+- Status ret;
+ if (!display || !block)
+ return BadValue;
+
+@@ -678,13 +669,10 @@ _X_EXPORT Status XvMCPutSurface(Display * display, XvMCSurface * surface,
+ */
+ _X_EXPORT Status XvMCSyncSurface(Display * display, XvMCSurface * surface)
+ {
+- Status ret;
+- int stat = 0;
+-
+ if (!display || !surface)
+ return XvMCBadSurface;
+
+- return ret;
++ return Success;
+ }
+
+ /*
+@@ -739,9 +727,6 @@ _X_EXPORT Status XvMCGetSurfaceStatus(Display * display, XvMCSurface * surface,
+ */
+ _X_EXPORT Status XvMCHideSurface(Display * display, XvMCSurface * surface)
+ {
+- int stat = 0;
+- Status ret;
+-
+ if (!display || !surface)
+ return XvMCBadSurface;
+
+@@ -1071,7 +1056,7 @@ _X_EXPORT Status XvMCLoadQMatrix(Display * display, XvMCContext * context,
+ _X_EXPORT Status XvMCPutSlice(Display * display, XvMCContext * context,
+ char *slice, int nbytes)
+ {
+- if (xvmc_driver->put_slice(display, context, slice, nbytes)) {
++ if (xvmc_driver->put_slice(display, context, (unsigned char *) slice, nbytes)) {
+ XVMC_ERR("PutSlice fail\n");
+ return BadValue;
+ }
+@@ -1082,7 +1067,7 @@ _X_EXPORT Status XvMCPutSlice2(Display * display, XvMCContext * context,
+ char *slice, int nbytes, int slice_code)
+ {
+ if (xvmc_driver->put_slice2
+- (display, context, slice, nbytes, slice_code)) {
++ (display, context, (unsigned char *) slice, nbytes, slice_code)) {
+ XVMC_ERR("PutSlice2 fail\n");
+ return BadValue;
+ }
+diff --git a/src/xvmc/intel_xvmc_dump.c b/src/xvmc/intel_xvmc_dump.c
+index 974bcbb..d22d311 100644
+--- a/src/xvmc/intel_xvmc_dump.c
++++ b/src/xvmc/intel_xvmc_dump.c
+@@ -38,7 +38,7 @@ void intel_xvmc_dump_open(void)
+ if (xvmc_dump)
+ return;
+
+- if (d = getenv("INTEL_XVMC_DUMP"))
++ if ((d = getenv("INTEL_XVMC_DUMP")))
+ xvmc_dump = 1;
+
+ if (xvmc_dump) {
+diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
+index addc7c9..d72e105 100644
+--- a/src/xvmc/xvmc_vld.c
++++ b/src/xvmc/xvmc_vld.c
+@@ -785,7 +785,6 @@ static Status begin_surface(Display * display, XvMCContext * context,
+ XvMCSurface * future,
+ const XvMCMpegControl * control)
+ {
+- struct i965_xvmc_contex *i965_ctx;
+ struct intel_xvmc_surface *priv_target, *priv_past, *priv_future;
+ intel_xvmc_context_ptr intel_ctx = context->privData;
+ Status ret;
+diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
+index a5066c8..0650ac2 100644
+--- a/uxa/uxa-accel.c
++++ b/uxa/uxa-accel.c
+@@ -120,6 +120,10 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n,
+
+ solid = uxa_acquire_solid(screen, src->pSourcePict);
+ FreePicture(src, 0);
++ if (!solid) {
++ FreePicture(dst, 0);
++ goto solid;
++ }
+
+ src = solid;
+ src_pixmap = uxa_get_offscreen_pixmap(src->pDrawable,
+@@ -1110,6 +1114,10 @@ try_solid:
+
+ solid = uxa_acquire_solid(screen, src->pSourcePict);
+ FreePicture(src, 0);
++ if (!solid) {
++ FreePicture(dst, 0);
++ goto err;
++ }
+
+ src = solid;
+ src_pixmap = uxa_get_offscreen_pixmap(src->pDrawable,
+diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
+index 420e891..0f5ddda 100644
+--- a/uxa/uxa-glyphs.c
++++ b/uxa/uxa-glyphs.c
+@@ -111,6 +111,9 @@ static void uxa_unrealize_glyph_caches(ScreenPtr pScreen)
+ uxa_screen_t *uxa_screen = uxa_get_screen(pScreen);
+ int i;
+
++ if (!uxa_screen->glyph_cache_initialized)
++ return;
++
+ for (i = 0; i < UXA_NUM_GLYPH_CACHE_FORMATS; i++) {
+ uxa_glyph_cache_t *cache = &uxa_screen->glyphCaches[i];
+
+@@ -120,6 +123,7 @@ static void uxa_unrealize_glyph_caches(ScreenPtr pScreen)
+ if (cache->glyphs)
+ free(cache->glyphs);
+ }
++ uxa_screen->glyph_cache_initialized = FALSE;
+ }
+
+ void uxa_glyphs_fini(ScreenPtr pScreen)
+@@ -145,6 +149,10 @@ static Bool uxa_realize_glyph_caches(ScreenPtr pScreen)
+ };
+ int i;
+
++ if (uxa_screen->glyph_cache_initialized)
++ return TRUE;
++
++ uxa_screen->glyph_cache_initialized = TRUE;
+ memset(uxa_screen->glyphCaches, 0, sizeof(uxa_screen->glyphCaches));
+
+ for (i = 0; i < sizeof(formats)/sizeof(formats[0]); i++) {
+@@ -214,17 +222,7 @@ Bool uxa_glyphs_init(ScreenPtr pScreen)
+ if (uxa_get_screen(pScreen)->force_fallback)
+ return TRUE;
+
+- /* We are trying to initialise per screen resources prior to the
+- * complete initialisation of the screen. So ensure the components
+- * that we depend upon are initialsed prior to our use.
+- */
+- if (!CreateScratchPixmapsForScreen(pScreen->myNum))
+- return FALSE;
+-
+- if (!uxa_realize_glyph_caches(pScreen))
+- return FALSE;
+-
+- return TRUE;
++ return uxa_realize_glyph_caches(pScreen);
+ }
+
+ /* The most efficient thing to way to upload the glyph to the screen
+diff --git a/uxa/uxa-priv.h b/uxa/uxa-priv.h
+index 92536cc..ac206af 100644
+--- a/uxa/uxa-priv.h
++++ b/uxa/uxa-priv.h
+@@ -139,6 +139,7 @@ typedef struct {
+ unsigned offScreenCounter;
+
+ uxa_glyph_cache_t glyphCaches[UXA_NUM_GLYPH_CACHE_FORMATS];
++ Bool glyph_cache_initialized;
+
+ PicturePtr solid_clear, solid_black, solid_white;
+ uxa_solid_cache_t solid_cache[UXA_NUM_SOLID_CACHE];
+diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
+index cf8b8ea..0f06e82 100644
+--- a/uxa/uxa-render.c
++++ b/uxa/uxa-render.c
+@@ -1061,6 +1061,8 @@ try_solid:
+ int src_off_x, src_off_y;
+
+ solid = uxa_acquire_solid(screen, src->pSourcePict);
++ if (!solid)
++ goto err_src;
+ FreePicture(src, 0);
+
+ src = solid;
+@@ -1090,6 +1092,7 @@ try_solid:
+ /* XXX xserver-1.8: CompositeRects is not tracked by Damage, so we must
+ * manually append the damaged regions ourselves.
+ */
++ pixman_region_translate(&region, -dst_x, -dst_y);
+ DamageRegionAppend(dst->pDrawable, &region);
+
+ pixman_region_fini(&region);
diff --git a/extra/xf86-video-mach64/PKGBUILD b/extra/xf86-video-mach64/PKGBUILD
new file mode 100644
index 000000000..dd080c051
--- /dev/null
+++ b/extra/xf86-video-mach64/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114315 2011-03-12 11:46:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-mach64
+pkgver=6.8.2
+pkgrel=5
+pkgdesc="X.org mach64 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mach64-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('b7303689a6a971b956061fd81399dc81adb865af')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-mga/PKGBUILD b/extra/xf86-video-mga/PKGBUILD
new file mode 100644
index 000000000..b1071580d
--- /dev/null
+++ b/extra/xf86-video-mga/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114478 2011-03-14 08:08:36Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-mga
+pkgver=1.4.13
+pkgrel=2
+pkgdesc="X.org mga video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mga-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool' 'force')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('55aa185cf381def4b5905c8b93694b8dfbd5c378')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-neomagic/PKGBUILD b/extra/xf86-video-neomagic/PKGBUILD
new file mode 100644
index 000000000..7fd08c4f6
--- /dev/null
+++ b/extra/xf86-video-neomagic/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114484 2011-03-14 08:31:26Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-neomagic
+pkgver=1.2.5
+pkgrel=3
+pkgdesc="X.org neomagic video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('02c994e2eae191b50a8cd556e5b52d82725073b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-nouveau/PKGBUILD b/extra/xf86-video-nouveau/PKGBUILD
new file mode 100644
index 000000000..b95ed544e
--- /dev/null
+++ b/extra/xf86-video-nouveau/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 103309 2010-12-17 19:20:15Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=xf86-video-nouveau
+_gitdate=20101217
+pkgver=0.0.16_git${_gitdate} # see configure.ac
+pkgrel=1
+pkgdesc="Open Source 3D acceleration driver for nVidia cards (experimental)"
+arch=('i686' 'x86_64')
+url="http://nouveau.freedesktop.org/wiki/"
+license=('GPL') #and MIT, not yet a license file, see http://nouveau.freedesktop.org/wiki/FAQ#head-09f75d03eb30011c754038a3893119a70745de4e
+depends=('libdrm' 'udev')
+optdepends=('nouveau-dri: experimental gallium3d features')
+makedepends=('xorg-server-devel' 'libdrm>=2.4.23' 'xf86driproto')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool' 'force')
+install=${pkgname}.install
+source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2)
+md5sums=('34b0238a941fe85ca45898dfcc47df0e')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/${pkgname}-${_gitdate}
+ pushd /tmp/${pkgname}-${_gitdate}
+ git clone -v --depth 1 git://anongit.freedesktop.org/nouveau/xf86-video-nouveau
+ cd xf86-video-nouveau
+ git archive --prefix=xf86-video-nouveau-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+ cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xf86-video-nouveau/xf86-video-nouveau.install b/extra/xf86-video-nouveau/xf86-video-nouveau.install
new file mode 100644
index 000000000..027154ff3
--- /dev/null
+++ b/extra/xf86-video-nouveau/xf86-video-nouveau.install
@@ -0,0 +1,16 @@
+post_install () {
+ cat << _EOF
+ ==> make sure you use KernelModeSetting (KMS)
+ ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+}
+
+post_upgrade() {
+ if [ "`vercmp $2 0.0.15_git20100117-1`" -lt 0 ]; then
+ cat << _EOF
+ ==> ATTENTION: Usermode support has been dropped
+ ==> make sure you use KernelModeSetting (KMS)
+ ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+ fi
+}
diff --git a/extra/xf86-video-nv/PKGBUILD b/extra/xf86-video-nv/PKGBUILD
new file mode 100644
index 000000000..ad084362c
--- /dev/null
+++ b/extra/xf86-video-nv/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114489 2011-03-14 08:33:45Z jgc $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-nv
+pkgver=2.1.18
+pkgrel=2
+pkgdesc="X.org nv video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d35b2fa5a26a507a9cc95b69243d9fd0c0f32aa2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-openchrome/LICENSE.txt b/extra/xf86-video-openchrome/LICENSE.txt
new file mode 100644
index 000000000..dff1dc37b
--- /dev/null
+++ b/extra/xf86-video-openchrome/LICENSE.txt
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2005-2007 The Openchrome Project [openchrome.org]
+ * Copyright 2004-2006 Luc Verhaegen.
+ * Copyright 2004-2005 The Unichrome Project [unichrome.sf.net]
+ * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+ * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
diff --git a/extra/xf86-video-openchrome/PKGBUILD b/extra/xf86-video-openchrome/PKGBUILD
new file mode 100644
index 000000000..7d009a9b4
--- /dev/null
+++ b/extra/xf86-video-openchrome/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 88694 2010-08-24 13:35:43Z jgc $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Juergen Hoetzel <juergen@hoetzel.info>
+
+pkgname=xf86-video-openchrome
+pkgver=0.2.904
+pkgrel=4
+pkgdesc="X.Org Openchrome drivers"
+arch=(i686 x86_64)
+license=('custom')
+url="http://www.openchrome.org"
+depends=('libdrm' 'libxvmc' 'unichrome-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc')
+replaces=('openchrome' 'xf86-video-via')
+options=('!libtool' 'force' '!makeflags')
+conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.9.0')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ drm_stdint.patch
+ svn-r839.patch
+ LICENSE.txt)
+md5sums=('f2481d98ef54febf5bffbb88a2a2426d'
+ 'bc516400ffc3df5d0dfe604f6245dd32'
+ '5aed4aa44dd5a6d3e2da9baad73ac0ab'
+ 'addb3cf2671f4cf7e91156952de1627f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/svn-r839.patch"
+ patch -Np0 -i "${srcdir}/drm_stdint.patch"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/xf86-video-openchrome/drm_stdint.patch b/extra/xf86-video-openchrome/drm_stdint.patch
new file mode 100644
index 000000000..226a015e2
--- /dev/null
+++ b/extra/xf86-video-openchrome/drm_stdint.patch
@@ -0,0 +1,10 @@
+--- src/via_xvmc.h.orig 2010-03-07 01:46:34.000000000 +0100
++++ src/via_xvmc.h 2010-03-07 01:46:45.000000000 +0100
+@@ -26,6 +26,7 @@
+ #ifndef _VIA_XVMC_H
+ #define _VIA_XVMC_H 1
+
++#include <stdint.h>
+ #include "via_drm.h"
+
+ /*
diff --git a/extra/xf86-video-openchrome/svn-r839.patch b/extra/xf86-video-openchrome/svn-r839.patch
new file mode 100644
index 000000000..8e5f05669
--- /dev/null
+++ b/extra/xf86-video-openchrome/svn-r839.patch
@@ -0,0 +1,1447 @@
+diff -ruN xf86-video-openchrome-0.2.904/ChangeLog ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog
+--- xf86-video-openchrome-0.2.904/ChangeLog 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog 2010-03-07 01:09:00.000000000 +0100
+@@ -1,3 +1,52 @@
++2010-02-10 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Fix bug with suspend and VT switch on VX800 and 64bit systems
++
++ * src/via_driver.h:
++ * src/via_video.c: (viaResetVideo), (viaSaveVideo),
++ (viaRestoreVideo), (viaExitVideo):
++ * src/via_video.h:
++
++2010-01-24 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Fix starting address restore and save (initial 64-bit support)
++
++ * src/via_crtc.c: (ViaFirstCRTCSetMode),
++ (ViaFirstCRTCSetStartingAddress):
++ * src/via_dri.c: (VIADRIAgpInit):
++ * src/via_driver.c: (VIASave), (VIARestore):
++ * src/via_driver.h:
++
++2009-12-04 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Enable new mode switch for VM800 chipsets
++
++ * src/via_driver.c: (VIASetupDefaultOptions):
++
++2009-11-21 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Add option to enable unaccelerated RandR rotation ("SWRandR").
++ The accelerated option "HWRandR" is currently not implemented.
++
++ * src/openchrome.man:
++ * src/via_driver.c: (VIAPreInit):
++
++2009-11-20 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Enabled new mode switch for PM800 chipset,
++ to resolve many bugs with resolution detecting and changing
++ (eg. switching to console)
++
++ * src/via_driver.c: (VIASetupDefaultOptions), (VIAPreInit):
++
++2009-11-07 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Add more comments to ViaSetSecondaryFIFO, add panel scale support for
++ CLE266 and KM400, fix bug with malloc.
++
++ * src/via_bandwidth.c: (ViaSetSecondaryFIFO):
++ * src/via_panel.c: (ViaPanelScale), (ViaPanelGetNativeDisplayMode):
++
+ 2009-09-26 Bartosz Kosiorek <gang65@poczta.onet.pl>
+
+ Save/restore ECK Clock Synthesizer
+diff -ruN xf86-video-openchrome-0.2.904/man/openchrome.man ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man
+--- xf86-video-openchrome-0.2.904/man/openchrome.man 2009-10-09 01:12:41.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man 2010-03-07 01:09:00.000000000 +0100
+@@ -59,7 +59,7 @@
+ .BI "Option \*qAccelMethod\*q \*q" string \*q
+ The driver supports "XAA" and "EXA" acceleration methods. The default
+ method is XAA, since EXA is still experimental. Contrary to XAA, EXA
+-implements acceleration for screen uploads and downlads (if DRI is
++implements acceleration for screen uploads and downloads (if DRI is
+ enabled) and for the Render/Composite extension.
+ .TP
+ .BI "Option \*qActiveDevice\*q \*q" string \*q
+@@ -81,7 +81,7 @@
+ no room for DRI textures, they will be allocated from the DRI part of
+ VRAM (see the option "MaxDRIMem"). The default amount of AGP is
+ 32768 kB. Note that the AGP aperture set in the BIOS must be able
+-to accomodate the amount of AGP memory specified here. Otherwise no
++to accommodate the amount of AGP memory specified here. Otherwise no
+ AGP memory will be available. It is safe to set a very large AGP
+ aperture in the BIOS.
+ .TP
+@@ -159,9 +159,16 @@
+ system. The sizes 640x480, 800x600, 1024x768, 1280x1024, and 1400x1050
+ are supported.
+ .TP
++.BI "Option \*qRotationType\*q \*q" string \*q
++Enabled rotation by using RandR. The driver only support unaccelerated
++RandR rotations "SWRandR". Hardware rotations "HWRandR" is currently
++unimplemented.
++.TP
+ .BI "Option \*qRotate\*q \*q" string \*q
+ Rotates the display either clockwise ("CW"), counterclockwise ("CCW") and
+-upside-down ("UD"). Rotation is only supported unaccelerated.
++upside-down ("UD"). Rotation is only supported unaccelerated. Adding
++option "Rotate", enables RandR rotation feature. The RandR allows
++clients to dynamically change X screens.
+ .TP
+ .BI "Option \*qShadowFB\*q \*q" boolean \*q
+ Enables the use of a shadow frame buffer. This is required when
+diff -ruN xf86-video-openchrome-0.2.904/src/svnversion.h ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h
+--- xf86-video-openchrome-0.2.904/src/svnversion.h 2009-10-09 01:19:04.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h 2010-03-07 01:09:15.000000000 +0100
+@@ -1 +1 @@
+-#define BUILDCOMMENT "(openchrome 0.2.904 release)"
++#define BUILDCOMMENT "(development build, at svn revision 839)"
+diff -ruN xf86-video-openchrome-0.2.904/src/via_accel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c
+--- xf86-video-openchrome-0.2.904/src/via_accel.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c 2010-03-07 01:09:00.000000000 +0100
+@@ -1210,7 +1210,8 @@
+
+ /* General acceleration flags. */
+ xaaptr->Flags = (PIXMAP_CACHE |
+- OFFSCREEN_PIXMAPS | LINEAR_FRAMEBUFFER |
++ OFFSCREEN_PIXMAPS |
++ LINEAR_FRAMEBUFFER |
+ MICROSOFT_ZERO_LINE_BIAS | 0);
+
+ if (pScrn->bitsPerPixel == 8)
+@@ -1228,14 +1229,17 @@
+
+ xaaptr->Sync = viaAccelSync;
+
++ /* ScreenToScreen copies */
+ xaaptr->SetupForScreenToScreenCopy = viaSetupForScreenToScreenCopy;
+ xaaptr->SubsequentScreenToScreenCopy = viaSubsequentScreenToScreenCopy;
+ xaaptr->ScreenToScreenCopyFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Solid filled rectangles */
+ xaaptr->SetupForSolidFill = viaSetupForSolidFill;
+ xaaptr->SubsequentSolidFillRect = viaSubsequentSolidFillRect;
+ xaaptr->SolidFillFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Mono 8x8 pattern fills */
+ xaaptr->SetupForMono8x8PatternFill = viaSetupForMono8x8PatternFill;
+ xaaptr->SubsequentMono8x8PatternFillRect =
+ viaSubsequentMono8x8PatternFillRect;
+@@ -1244,6 +1248,7 @@
+ HARDWARE_PATTERN_PROGRAMMED_ORIGIN |
+ BIT_ORDER_IN_BYTE_MSBFIRST | 0);
+
++ /* Color 8x8 pattern fills */
+ xaaptr->SetupForColor8x8PatternFill = viaSetupForColor8x8PatternFill;
+ xaaptr->SubsequentColor8x8PatternFillRect =
+ viaSubsequentColor8x8PatternFillRect;
+@@ -1252,12 +1257,14 @@
+ HARDWARE_PATTERN_PROGRAMMED_BITS |
+ HARDWARE_PATTERN_PROGRAMMED_ORIGIN | 0);
+
++ /* Solid lines */
+ xaaptr->SetupForSolidLine = viaSetupForSolidLine;
+ xaaptr->SubsequentSolidTwoPointLine = viaSubsequentSolidTwoPointLine;
+ xaaptr->SubsequentSolidHorVertLine = viaSubsequentSolidHorVertLine;
+ xaaptr->SolidBresenhamLineErrorTermBits = 14;
+ xaaptr->SolidLineFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Dashed line */
+ xaaptr->SetupForDashedLine = viaSetupForDashedLine;
+ xaaptr->SubsequentDashedTwoPointLine = viaSubsequentDashedTwoPointLine;
+ xaaptr->DashPatternMaxLength = 8;
+@@ -1266,35 +1273,42 @@
+ LINE_PATTERN_POWER_OF_2_ONLY |
+ LINE_PATTERN_MSBFIRST_LSBJUSTIFIED | 0);
+
++ /* CPU to Screen color expansion */
+ xaaptr->ScanlineCPUToScreenColorExpandFillFlags = NO_PLANEMASK |
+- CPU_TRANSFER_PAD_DWORD |
+- SCANLINE_PAD_DWORD |
+- BIT_ORDER_IN_BYTE_MSBFIRST |
+- LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0;
++ CPU_TRANSFER_PAD_DWORD |
++ SCANLINE_PAD_DWORD |
++ BIT_ORDER_IN_BYTE_MSBFIRST |
++ LEFT_EDGE_CLIPPING |
++ ROP_NEEDS_SOURCE | 0;
+
+ xaaptr->SetupForScanlineCPUToScreenColorExpandFill =
+ viaSetupForCPUToScreenColorExpandFill;
+ xaaptr->SubsequentScanlineCPUToScreenColorExpandFill =
+ viaSubsequentScanlineCPUToScreenColorExpandFill;
+ xaaptr->ColorExpandBase = pVia->BltBase;
+- xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++ if (pVia->Chipset == VIA_VX800 || pVia->Chipset == VIA_VX855)
++ xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++ else
++ xaaptr->ColorExpandRange = (64 * 1024);
+
++ /* ImageWrite */
+ xaaptr->ImageWriteFlags = (NO_PLANEMASK |
+ CPU_TRANSFER_PAD_DWORD |
+ SCANLINE_PAD_DWORD |
+ BIT_ORDER_IN_BYTE_MSBFIRST |
+- LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0);
++ LEFT_EDGE_CLIPPING |
++ ROP_NEEDS_SOURCE | 0);
+ // SYNC_AFTER_IMAGE_WRITE | 0);
+
+ /*
+ * Most Unichromes are much faster using processor-to-framebuffer writes
+ * than when using the 2D engine for this.
+- * test with x11perf -shmput500!
++ * test with "x11perf -shmput500"
++ * Example: K8M890 chipset; with GPU=86.3/sec; without GPU=132.0/sec
++ * TODO Check speed for other chipsets
+ */
+
+ switch (pVia->Chipset) {
+- case VIA_K8M800:
+- case VIA_K8M890:
+ case VIA_P4M900:
+ case VIA_VX800:
+ case VIA_VX855:
+diff -ruN xf86-video-openchrome-0.2.904/src/via_bandwidth.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c
+--- xf86-video-openchrome-0.2.904/src/via_bandwidth.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c 2010-03-07 01:09:00.000000000 +0100
+@@ -194,6 +194,7 @@
+ else
+ ViaSeqMask(hwp, 0x22, 0x00, 0x1F); /* 128/4 = overflow = 0 */
+ break;
++ /* PM800/PM880/CN400 */
+ case VIA_PM800:
+ hwp->writeSeq(hwp, 0x17, 0x5F); /* 95 */
+ ViaSeqMask(hwp, 0x16, 0x20, 0xBF); /* 32 */
+@@ -204,9 +205,10 @@
+ else
+ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 31 */
+ break;
++ /* P4M800Pro/VN800/CN700 */
+ case VIA_VM800:
+ hwp->writeSeq(hwp, 0x17, 0x2F);
+- ViaSeqMask(hwp, 0x16, 0x14, 0xBF);
++ ViaSeqMask(hwp, 0x16, 0x14, 0xBF); /* 80/4 = 20 = 0x14 */
+ ViaSeqMask(hwp, 0x18, 0x08, 0xBF);
+
+ if ((mode->HDisplay >= 1400) && (pScrn->bitsPerPixel == 32))
+@@ -215,40 +217,51 @@
+ ViaSeqMask(hwp, 0x22, 0x00, 0x1F);
+ break;
+ case VIA_K8M890:
+- hwp->writeSeq(hwp, 0x16, 0x92);
+- hwp->writeSeq(hwp, 0x17, 0xB3);
+- hwp->writeSeq(hwp, 0x18, 0x8A);
++ /* depth location: {SR17,0,7} */
++ hwp->writeSeq(hwp, 0x17, 0xB3); /* 360/2-1 = 179 = 0xB3 */
++ /* Formula (x & 0x3F) | ((x & 0x40) << 1) */
++ /* threshold location: {SR16,0,5},{SR16,7,7} */
++ ViaSeqMask(hwp, 0x16, 0x92, 0xBF); /* 328/4 = 82 = 0x52 */
++ /* high threshold location: {SR18,0,5},{SR18,7,7} */
++ ViaSeqMask(hwp, 0x18, 0x8A, 0xBF); /* 296/4 = 74 = 0x4A */
++ /* display queue expire num location: {SR22,0,4}. */
++ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_P4M900:
+- ViaSeqMask(hwp, 0x17, 0x2F, 0xFF);
+- ViaSeqMask(hwp, 0x16, 0x13, 0x3F);
+- ViaSeqMask(hwp, 0x16, 0x00, 0x80);
+- ViaSeqMask(hwp, 0x18, 0x13, 0x3F);
+- ViaSeqMask(hwp, 0x18, 0x00, 0x80);
++ /* location: {SR17,0,7} */
++ hwp->writeSeq(hwp, 0x17, 0x2F); /* 96/2-1 = 47 = 0x2F */
++ /* location: {SR16,0,5},{SR16,7,7} */
++ ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ /* location: {SR18,0,5},{SR18,7,7} */
++ ViaSeqMask(hwp, 0x18, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ /* location: {SR22,0,4}. */
++ ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4 = 8 = 0x08 */
+ break;
+ case VIA_P4M890:
+- hwp->writeSeq(hwp, 0x16, 0x13);
+- hwp->writeSeq(hwp, 0x17, 0x2F);
+- hwp->writeSeq(hwp, 0x18, 0x53);
+- hwp->writeSeq(hwp, 0x22, 0x10);
++ hwp->writeSeq(hwp, 0x17, 0x2F); /* 96/2-1 = 47 = 0x2F */
++ ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ ViaSeqMask(hwp, 0x18, 0x10, 0xBF); /* 64/4 = 16 = 0x10 */
++ ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4 = 8 = 0x08 */
+ break;
+ case VIA_CX700:
+- hwp->writeSeq(hwp, 0x16, 0x26);
+ hwp->writeSeq(hwp, 0x17, 0x5F);
+- hwp->writeSeq(hwp, 0x18, 0x66);
+- hwp->writeSeq(hwp, 0x22, 0x1F);
++ ViaSeqMask(hwp, 0x16, 0x20, 0xBF); /* 128/4 = 32 = 0x20 */
++ ViaSeqMask(hwp, 0x18, 0x20, 0xBF); /* 128/4 = 32 = 0x20 */
++ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_VX800:
+- hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4 = 38 */
+- hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 */
++ hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 = 0x5F */
++ hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4 = 38 = 0x26 */
+ hwp->writeSeq(hwp, 0x18, 0x26); /* 152/4 = 38 */
+ hwp->writeSeq(hwp, 0x22, 0x10); /* 64/4 = 16 */
+ break;
+ case VIA_VX855:
+- hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4 = 80 */
+- hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 */
+- hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4 = 80 */
+- hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4 = 40 */
++ hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 = 0xC7 */
++ /* TODO Formula for SR16 is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */
++ hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4 = 80 = 0x50 */
++ hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4 = 80 = 0x50 */
++ hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4 = 40 = 0x28 */
++ break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ViaSetPrimaryFIFO: "
+ "Chipset %d not implemented\n", pVia->Chipset);
+@@ -371,7 +384,38 @@
+ ViaCrtcMask(hwp, 0x94, 0x20, 0x7F);
+ break;
+ case VIA_P4M890:
++ /* depth location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++ ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); /* 96/8-1 = 11 = 0x0B */
++ ViaCrtcMask(hwp, 0x94, 0x00, 0x80);
++ ViaCrtcMask(hwp, 0x95, 0x00, 0x80);
++
++ /* location: {CR68,0,3},{CR95,4,6} */
++ ViaCrtcMask(hwp, 0x68, 0x03, 0x0F); /* 76/4 = 19 = 0x13 */
++ ViaCrtcMask(hwp, 0x95, 0x10, 0x70);
++
++ /* location: {CR92,0,3},{CR95,0,2} */
++ ViaCrtcMask(hwp, 0x92, 0x00, 0x0F); /* 64/4 = 16 = 0x10 */
++ ViaCrtcMask(hwp, 0x95, 0x01, 0x07);
++
++ /* location: {CR94,0,6} */
++ ViaCrtcMask(hwp, 0x94, 0x08, 0x7F); /* 32/4 = 8 = 0x08 */
++ break;
+ case VIA_K8M890:
++ /* Display Queue Depth, location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++ ViaCrtcMask(hwp, 0x68, 0xC0, 0xF0); /* 360/8-1 = 44 = 0x2C; 0x2C << 4 = 0xC0 */
++ ViaCrtcMask(hwp, 0x94, 0x00, 0x80); /* 0x2C << 3 = 0x00 */
++ ViaCrtcMask(hwp, 0x95, 0x80, 0x80); /* 0x2C << 2 = 0x80 */
++
++ /* Display Queue Read Threshold 1, location: {CR68,0,3},{CR95,4,6} */
++ ViaCrtcMask(hwp, 0x68, 0x02, 0x0F); /* 328/4 = 82 = 0x52 */
++ ViaCrtcMask(hwp, 0x95, 0x50, 0x70);
++
++ /* location: {CR92,0,3},{CR95,0,2} */
++ ViaCrtcMask(hwp, 0x92, 0x0A, 0x0F); /* 296/4 = 74 = 0x4A */
++ ViaCrtcMask(hwp, 0x95, 0x04, 0x07); /* 0x4A >> 4 = 0x04 */
++
++ /* Display Expire Number Bits, location: {CR94,0,6} */
++ ViaCrtcMask(hwp, 0x94, 0x1F, 0x7F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_P4M900:
+ ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_crtc.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c
+--- xf86-video-openchrome-0.2.904/src/via_crtc.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c 2010-03-07 01:09:00.000000000 +0100
+@@ -234,8 +234,8 @@
+ /* Primary starting address -> 0x00, adjustframe does the rest */
+ hwp->writeCrtc(hwp, 0x0C, 0x00);
+ hwp->writeCrtc(hwp, 0x0D, 0x00);
+- hwp->writeCrtc(hwp, 0x34, 0x00);
+ ViaCrtcMask(hwp, 0x48, 0x00, 0x03); /* is this even possible on CLE266A ? */
++ hwp->writeCrtc(hwp, 0x34, 0x00);
+
+ /* vertical sync start : 2047 */
+ temp = mode->CrtcVSyncStart;
+@@ -331,15 +331,20 @@
+ CARD32 Base;
+ CARD32 tmp;
+
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaFirstCRTCSetStartingAddress\n"));
++
+ Base = (y * pScrn->displayWidth + x) * (pScrn->bitsPerPixel / 8);
+ Base = Base >> 1;
+
+ hwp->writeCrtc(hwp, 0x0C, (Base & 0xFF00) >> 8);
+ hwp->writeCrtc(hwp, 0x0D, Base & 0xFF);
+- hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
+-
++ /* FIXME The proper starting address for CR48 is 0x1F - Bits[28:24] */
+ if (!(pVia->Chipset == VIA_CLE266 && CLE266_REV_IS_AX(pVia->ChipRev)))
+ ViaCrtcMask(hwp, 0x48, Base >> 24, 0x0F);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
++
++
+ }
+
+ void
+diff -ruN xf86-video-openchrome-0.2.904/src/via_cursor.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c
+--- xf86-video-openchrome-0.2.904/src/via_cursor.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c 2010-03-07 01:09:00.000000000 +0100
+@@ -145,9 +145,12 @@
+ infoPtr->ShowCursor = viaShowCursor;
+ infoPtr->UseHWCursor = viaUseHWCursor;
+
++ /* ARGB Cursor init */
+ infoPtr->UseHWCursorARGB = viaUseHWCursorARGB;
+- if (pVia->CursorARGBSupported)
++ if (pVia->CursorARGBSupported) {
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HWCursor ARGB enabled\n"));
+ infoPtr->LoadCursorARGB = viaLoadCursorARGB;
++ }
+
+ /* Set cursor location in frame buffer. */
+ VIASETREG(VIA_REG_CURSOR_MODE, pVia->cursorOffset);
+@@ -284,7 +287,7 @@
+ }
+
+ /*
+- * ARGB Cursor
++ * display the current cursor
+ */
+
+ void
+@@ -319,13 +322,19 @@
+ */
+
+ /* Duoview */
+- if (pVia->CursorPipe)
++ if (pVia->CursorPipe) {
++ /* Mono Cursor Display Path [bit31]: Secondary */
++ /* FIXME For CLE266 nad KM400 try to enable 32x32 cursor size [bit1] */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, 0xF6000005);
+- else
++ } else {
++ /* Mono Cursor Display Path [bit31]: Primary */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, 0x76000005);
++ }
+ }
+ }
+
++
++/* hide the current cursor */
+ void
+ viaHideCursor(ScrnInfoPtr pScrn)
+ {
+@@ -350,10 +359,16 @@
+
+ default:
+ temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++ /* Hardware cursor disable [bit0] */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFA);
+ }
+ }
+
++/*
++ Set the cursor position to (x,y). X and/or y may be negative
++ indicating that the cursor image is partially offscreen on
++ the left and/or top edges of the screen.
++*/
+ static void
+ viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
+ {
+@@ -409,6 +424,15 @@
+ && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+
++/*
++ If the driver is unable to use a hardware cursor for reasons
++ other than the cursor being larger than the maximum specified
++ in the MaxWidth or MaxHeight field below, it can supply the
++ UseHWCursor function. If UseHWCursor is provided by the driver,
++ it will be called whenever the cursor shape changes or the video
++ mode changes. This is useful for when the hardware cursor cannot
++ be used in interlaced or doublescan modes.
++*/
+ static Bool
+ viaUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
+ {
+@@ -423,8 +447,11 @@
+ && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+
++/*
++ Load Mono Cursor Image
++*/
+ static void
+-viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *s)
++viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+ CARD32 temp;
+@@ -439,7 +466,7 @@
+ if (pVia->CursorARGBSupported) {
+ #define ARGB_PER_CHUNK (8 * sizeof (chunk) / 2)
+ for (i = 0; i < (pVia->CursorMaxWidth * pVia->CursorMaxHeight / ARGB_PER_CHUNK); i++) {
+- chunk = *s++;
++ chunk = *src++;
+ for (j = 0; j < ARGB_PER_CHUNK; j++, chunk >>= 2)
+ *dst++ = mono_cursor_color[chunk & 3];
+ }
+@@ -447,7 +474,7 @@
+ pVia->CursorFG = mono_cursor_color[3];
+ pVia->CursorBG = mono_cursor_color[2];
+ } else {
+- memcpy(dst, (CARD8*)s, pVia->CursorSize);
++ memcpy(dst, (CARD8*)src, pVia->CursorSize);
+ }
+ switch(pVia->Chipset) {
+ case VIA_CX700:
+@@ -471,11 +498,17 @@
+ }
+ }
+
++/*
++ Set the cursor foreground and background colors. In 8bpp, fg and
++ bg are indicies into the current colormap unless the
++ HARDWARE_CURSOR_TRUECOLOR_AT_8BPP flag is set. In that case
++ and in all other bpps the fg and bg are in 8-8-8 RGB format.
++*/
++
+ static void
+ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+- CARD32 control = pVia->CursorRegControl;
+ CARD32 pixel;
+ CARD32 temp;
+ CARD32 *dst;
+@@ -487,12 +520,10 @@
+ fg |= 0xff000000;
+ bg |= 0xff000000;
+
++ /* Don't recolour the image if we don't have to. */
+ if (fg == pVia->CursorFG && bg == pVia->CursorBG)
+ return;
+
+- temp = VIAGETREG(control);
+- VIASETREG(control, temp & 0xFFFFFFFE);
+-
+ dst = (CARD32*)pVia->cursorMap;
+ for (i = 0; i < pVia->CursorMaxWidth * pVia->CursorMaxHeight; i++, dst++)
+ if ((pixel = *dst))
+@@ -517,7 +548,8 @@
+ }
+ break;
+ default:
+- VIASETREG(control, temp);
++ temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++ VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFE);
+ }
+ }
+
+diff -ruN xf86-video-openchrome-0.2.904/src/via_dri.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c
+--- xf86-video-openchrome-0.2.904/src/via_dri.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c 2010-03-07 01:09:00.000000000 +0100
+@@ -267,6 +267,11 @@
+ pVIADRI = pDRIInfo->devPrivate;
+ pVia->agpSize = 0;
+
++/* For AMD64 */
++#ifdef __x86_64__
++ return FALSE;
++#endif
++
+ if (drmAgpAcquire(pVia->drmFD) < 0) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR, "[drm] drmAgpAcquire failed %d\n",
+ errno);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c
+--- xf86-video-openchrome-0.2.904/src/via_driver.c 2009-10-09 00:46:15.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c 2010-03-07 01:09:00.000000000 +0100
+@@ -178,8 +178,8 @@
+ {VIA_P4M900, "P4M900/VN896/CN896"},
+ {VIA_CX700, "CX700/VX700"},
+ {VIA_P4M890, "P4M890"},
+- {VIA_VX800, "VX800"},
+- {VIA_VX855, "VX855"},
++ {VIA_VX800, "VX800/VX820"},
++ {VIA_VX855, "VX855/VX875"},
+ {-1, NULL }
+ };
+
+@@ -215,6 +215,7 @@
+ OPTION_EXA_SCRATCH_SIZE,
+ OPTION_SWCURSOR,
+ OPTION_SHADOW_FB,
++ OPTION_ROTATION_TYPE,
+ OPTION_ROTATE,
+ OPTION_VIDEORAM,
+ OPTION_ACTIVEDEVICE,
+@@ -253,6 +254,7 @@
+ {OPTION_EXA_SCRATCH_SIZE, "ExaScratchSize", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_SWCURSOR, "SWCursor", OPTV_BOOLEAN, {0}, FALSE},
+ {OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE},
++ {OPTION_ROTATION_TYPE, "RotationType", OPTV_ANYSTR, {0}, FALSE},
+ {OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE},
+ {OPTION_VIDEORAM, "VideoRAM", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_ACTIVEDEVICE, "ActiveDevice", OPTV_ANYSTR, {0}, FALSE},
+@@ -307,6 +309,7 @@
+ {
+ static Bool setupDone = FALSE;
+
++ /* Only be loaded once */
+ if (!setupDone) {
+ setupDone = TRUE;
+ xf86AddDriver(&VIA, module,
+@@ -339,6 +342,7 @@
+ if (pScrn->driverPrivate)
+ return TRUE;
+
++ /* allocate VIARec */
+ pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1);
+ VIAPtr pVia = ((VIARec *) (pScrn->driverPrivate));
+
+@@ -455,7 +459,6 @@
+ {
+ ScrnInfoPtr scrn = NULL;
+ EntityInfoPtr entity;
+- DevUnion *private;
+
+ scrn = xf86ConfigPciEntity(scrn, 0, entity_num, VIAPciChipsets,
+ NULL, NULL, NULL, NULL, NULL);
+@@ -652,6 +655,12 @@
+ vbeInfoPtr pVbe;
+
+ if (xf86LoadSubModule(pScrn, "vbe")) {
++ /* FIXME This line should be replaced to:
++
++ pVbe = VBEExtendedInit(NULL, index, 0);
++
++ for XF86 version > 4.2.99
++ */
+ pVbe = VBEInit(NULL, index);
+ ConfiguredMonitor = vbeDoEDID(pVbe, NULL);
+ vbeFree(pVbe);
+@@ -664,7 +673,7 @@
+ VIAPtr pVia = VIAPTR(pScrn);
+ VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions\n"));
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions - Setting up default chipset options.\n"));
+
+ pVia->shadowFB = FALSE;
+ pVia->NoAccel = FALSE;
+@@ -688,6 +697,9 @@
+ #ifdef HAVE_DEBUG
+ pVia->PrintVGARegs = FALSE;
+ #endif
++
++ /* Disable vertical interpolation because the size of */
++ /* line buffer (limited to 800) is too small to do interpolation. */
+ pVia->swov.maxWInterp = 800;
+ pVia->swov.maxHInterp = 600;
+ pVia->useLegacyVBE = TRUE;
+@@ -713,11 +725,14 @@
+ pVia->UseLegacyModeSwitch = TRUE;
+ break;
+ case VIA_PM800:
++ /* Use new mode switch to resolve many resolution and display bugs (switch to console) */
++ /* FIXME The video playing (XV) is not working correctly after turn on new mode switch */
+ pVia->VideoEngine = VIDEO_ENGINE_CME;
+- pVia->UseLegacyModeSwitch = TRUE;
+ break;
+ case VIA_VM800:
+- pVia->UseLegacyModeSwitch = TRUE;
++ /* New mode switch resolve bug with gamma set #282 */
++ /* and with Xv after hibernate #240 */
++ /* FIXME Add panel support for this chipset */
+ break;
+ case VIA_K8M890:
+ pVia->VideoEngine = VIDEO_ENGINE_CME;
+@@ -1050,19 +1065,13 @@
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "Probed amount of VideoRAM = %d kB\n", pScrn->videoRam);
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Setting up default chipset options.\n");
+ if (!VIASetupDefaultOptions(pScrn)) {
+ VIAFreeRec(pScrn);
+ return FALSE;
+ }
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reading config file...\n");
+ xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, VIAOptions);
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Starting to parse config file options...\n");
+-
+ if (xf86GetOptValInteger(VIAOptions, OPTION_VIDEORAM, &pScrn->videoRam))
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Setting amount of VideoRAM to %d kB\n", pScrn->videoRam);
+@@ -1100,6 +1109,31 @@
+ }
+
+ /* When rotating, switch shadow framebuffer on and acceleration off. */
++ if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATION_TYPE))) {
++ if (!xf86NameCmp(s, "SWRandR")) {
++ pVia->shadowFB = TRUE;
++ pVia->NoAccel = TRUE;
++ pVia->RandRRotation = TRUE;
++ pVia->rotate = RR_Rotate_0;
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen "
++ "RandR enabled, acceleration disabled\n");
++ } else if (!xf86NameCmp(s, "HWRandR")) {
++ pVia->shadowFB = TRUE;
++ pVia->NoAccel = TRUE;
++ pVia->RandRRotation = TRUE;
++ pVia->rotate = RR_Rotate_0;
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Hardware accelerated "
++ "rotating screen is not implemented. Using SW RandR.\n");
++ } else {
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
++ "value for Option \"RotationType\".\n", s);
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++ "Valid options are \"SWRandR\" and \"HWRandR\".\n");
++ }
++ }
++
++
++ /* When rotating, switch shadow framebuffer on and acceleration off. */
+ if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATE))) {
+ if (!xf86NameCmp(s, "CW")) {
+ pVia->shadowFB = TRUE;
+@@ -1498,6 +1532,7 @@
+ }
+ }
+
++ /* Initialize the colormap */
+ Gamma zeros = { 0.0, 0.0, 0.0 };
+ if (!xf86SetGamma(pScrn, zeros)) {
+ VIAFreeRec(pScrn);
+@@ -1561,9 +1596,8 @@
+
+ if (pBIOSInfo->Panel->IsActive &&
+ ((pVia->Chipset == VIA_K8M800) ||
+- (pVia->Chipset == VIA_PM800) ||
+ (pVia->Chipset == VIA_VM800))) {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800, PM800 and "
++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800 and "
+ "VM800 is currently not supported.\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Using VBE to set modes to work around this.\n");
+@@ -1621,7 +1655,7 @@
+ *
+ * CLE266A: primary AdjustFrame can use only 24 bits, so we are limited
+ * to 12x11 bits; 4080x2048 (~2:1), 3344x2508 (4:3), or 2896x2896 (1:1).
+- * Test CLE266Cx, KM400, KM400A, K8M800, PM800, CN400 please.
++ * TODO Test CLE266Cx, KM400, KM400A, K8M800, CN400 please.
+ *
+ * We should be able to limit the memory available for a mode to 32 MB,
+ * but xf86ValidateModes (or miScanLineWidth) fails to catch this
+@@ -1629,13 +1663,14 @@
+ */
+
+ /* Select valid modes from those available. */
+- i = xf86ValidateModes(pScrn, pScrn->monitor->Modes, /* availModes */
+- pScrn->display->modes, /* modeNames */
+- clockRanges, /* list of clock ranges */
++ i = xf86ValidateModes(pScrn,
++ pScrn->monitor->Modes, /* List of modes available for the monitor */
++ pScrn->display->modes, /* List of mode names that the screen is requesting */
++ clockRanges, /* list of clock ranges */
+ NULL, /* list of line pitches */
+ 256, /* minimum line pitch */
+ 3344, /* maximum line pitch */
+- 32 * 8, /* pitch inc (bits) */
++ 16 * 8, /* pitch increment (in bits), we just want 16 bytes alignment */
+ 128, /* min height */
+ 2508, /* max height */
+ pScrn->display->virtualX, /* virtual width */
+@@ -1650,6 +1685,7 @@
+ return FALSE;
+ }
+
++ /* This function deletes modes in the modes field of the ScrnInfoRec that have been marked as invalid. */
+ xf86PruneDriverModes(pScrn);
+
+ if (i == 0 || pScrn->modes == NULL) {
+@@ -1662,9 +1698,17 @@
+ /* Set up screen parameters. */
+ pVia->Bpp = pScrn->bitsPerPixel >> 3;
+ pVia->Bpl = pScrn->displayWidth * pVia->Bpp;
++
++ /* This function fills in the Crtc fields for all the modes in the modes field of the ScrnInfoRec. */
+ xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V);
++
++ /* Set the current mode to the first in the list */
+ pScrn->currentMode = pScrn->modes;
++
++ /* Print the list of modes being used */
+ xf86PrintModes(pScrn);
++
++ /* Set display resolution */
+ xf86SetDpi(pScrn, 0, 0);
+
+ #ifdef USE_FB
+@@ -1935,7 +1979,9 @@
+ Regs->SR17 = hwp->readSeq(hwp, 0x17);
+ Regs->SR18 = hwp->readSeq(hwp, 0x18);
+ Regs->SR19 = hwp->readSeq(hwp, 0x19);
++ /* PCI Bus Control */
+ Regs->SR1A = hwp->readSeq(hwp, 0x1A);
++
+ Regs->SR1B = hwp->readSeq(hwp, 0x1B);
+ Regs->SR1C = hwp->readSeq(hwp, 0x1C);
+ Regs->SR1D = hwp->readSeq(hwp, 0x1D);
+@@ -1977,40 +2023,56 @@
+ Regs->SR4C = hwp->readSeq(hwp, 0x4C);
+ break;
+ }
+- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Crtc...\n"));
+
+ Regs->CR13 = hwp->readCrtc(hwp, 0x13);
+
+ Regs->CR32 = hwp->readCrtc(hwp, 0x32);
+ Regs->CR33 = hwp->readCrtc(hwp, 0x33);
+- Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
+ Regs->CR35 = hwp->readCrtc(hwp, 0x35);
+ Regs->CR36 = hwp->readCrtc(hwp, 0x36);
+
++
++
++ /* Starting Address */
++ /* Start Address High */
++ Regs->CR0C = hwp->readCrtc(hwp, 0x0C);
++ /* Start Address Low */
++ Regs->CR0D = hwp->readCrtc(hwp, 0x0D);
++ /* Starting Address Overflow Bits[28:24] */
+ Regs->CR48 = hwp->readCrtc(hwp, 0x48);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ /* Starting Address Overflow Bits[23:16] */
++ Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
++
+ Regs->CR49 = hwp->readCrtc(hwp, 0x49);
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TVSave...\n"));
+ if (pBIOSInfo->TVI2CDev)
+ ViaTVSave(pScrn);
+
+- /* Save LCD control registers. */
++ /* Save LCD control registers (from CR 0x50 to 0x93). */
+ for (i = 0; i < 68; i++)
+ Regs->CRTCRegs[i] = hwp->readCrtc(hwp, i + 0x50);
+
+ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
+-
+- Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
+- Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
+- Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+-
++ /* LVDS Channel 2 Function Select 0 / DVI Function Select */
+ Regs->CR97 = hwp->readCrtc(hwp, 0x97);
++ /* LVDS Channel 1 Function Select 0 */
+ Regs->CR99 = hwp->readCrtc(hwp, 0x99);
++ /* Digital Video Port 1 Function Select 0 */
+ Regs->CR9B = hwp->readCrtc(hwp, 0x9B);
++ /* Power Now Control 4 */
+ Regs->CR9F = hwp->readCrtc(hwp, 0x9F);
+
++ /* Horizontal Scaling Initial Value */
++ Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
++ /* Vertical Scaling Initial Value */
++ Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
++ /* Scaling Enable Bit */
++ Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+ }
+
+ /* Save TMDS status */
+@@ -2098,11 +2160,19 @@
+ hwp->writeSeq(hwp, 0x45, Regs->SR45);
+ hwp->writeSeq(hwp, 0x46, Regs->SR46);
+
++ /* Reset VCK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x02); /* Set SR40[1] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFD); /* Set SR40[1] to 0 */
++
+ /* ECK Clock Synthesizer: */
+ hwp->writeSeq(hwp, 0x47, Regs->SR47);
+ hwp->writeSeq(hwp, 0x48, Regs->SR48);
+ hwp->writeSeq(hwp, 0x49, Regs->SR49);
+
++ /* Reset ECK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x01); /* Set SR40[0] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFE); /* Set SR40[0] to 0 */
++
+ switch (pVia->Chipset) {
+ case VIA_CLE266:
+ case VIA_KM400:
+@@ -2112,6 +2182,10 @@
+ hwp->writeSeq(hwp, 0x4A, Regs->SR4A);
+ hwp->writeSeq(hwp, 0x4B, Regs->SR4B);
+ hwp->writeSeq(hwp, 0x4C, Regs->SR4C);
++
++ /* Reset LCK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x04); /* Set SR40[2] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFB); /* Set SR40[2] to 0 */
+ break;
+ }
+
+@@ -2127,14 +2201,23 @@
+ hwp->writeCrtc(hwp, 0x32, Regs->CR32);
+ /* HSYNCH Adjuster */
+ hwp->writeCrtc(hwp, 0x33, Regs->CR33);
+- /* Starting Address Overflow */
+- hwp->writeCrtc(hwp, 0x34, Regs->CR34);
+ /* Extended Overflow */
+ hwp->writeCrtc(hwp, 0x35, Regs->CR35);
+ /*Power Management 3 (Monitor Control) */
+ hwp->writeCrtc(hwp, 0x36, Regs->CR36);
+
++ /* Starting Address */
++ /* Start Address High */
++ hwp->writeCrtc(hwp, 0x0C, Regs->CR0C);
++ /* Start Address Low */
++ hwp->writeCrtc(hwp, 0x0D, Regs->CR0D);
++ /* Starting Address Overflow Bits[28:24] */
+ hwp->writeCrtc(hwp, 0x48, Regs->CR48);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ /* Starting Address Overflow Bits[23:16] */
++ hwp->writeCrtc(hwp, 0x34, Regs->CR34);
++
++
+ hwp->writeCrtc(hwp, 0x49, Regs->CR49);
+
+ /* Restore LCD control registers. */
+@@ -2453,7 +2536,6 @@
+ VIALoadRgbLut(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
+ VisualPtr pVisual)
+ {
+- VIAPtr pVia = VIAPTR(pScrn);
+ vgaHWPtr hwp = VGAHWPTR(pScrn);
+
+ int i, j, index;
+@@ -2880,7 +2962,6 @@
+ VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+- VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAWriteMode\n"));
+
+@@ -3033,9 +3114,7 @@
+ VIAAdjustFrame(int scrnIndex, int x, int y, int flags)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+- vgaHWPtr hwp = VGAHWPTR(pScrn);
+ VIAPtr pVia = VIAPTR(pScrn);
+- CARD32 Base;
+
+ DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y));
+
+@@ -3173,7 +3252,6 @@
+ static void
+ VIADPMS(ScrnInfoPtr pScrn, int mode, int flags)
+ {
+- vgaHWPtr hwp = VGAHWPTR(pScrn);
+ VIAPtr pVia = VIAPTR(pScrn);
+ VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h
+--- xf86-video-openchrome-0.2.904/src/via_driver.h 2009-10-09 01:09:22.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h 2010-03-07 01:09:00.000000000 +0100
+@@ -130,6 +130,7 @@
+ CARD8 SR4A, SR4B, SR4C;
+
+ /* extended CRTC registers */
++ CARD8 CR0C, CR0D;
+ CARD8 CR13, CR30, CR31, CR32, CR33, CR34, CR35, CR36;
+ CARD8 CR37, CR38, CR39, CR3A, CR40, CR41, CR42, CR43;
+ CARD8 CR44, CR45, CR46, CR47, CR48, CR49, CR4A;
+@@ -418,10 +419,10 @@
+ Bool PrintVGARegs;
+ Bool PrintTVRegs;
+ Bool I2CScan;
++#endif /* HAVE_DEBUG */
+
+ Bool UseLegacyModeSwitch ;
+ video_via_regs* VideoRegs ;
+-#endif /* HAVE_DEBUG */
+ } VIARec, *VIAPtr;
+
+ #define VIAPTR(p) ((VIAPtr)((p)->driverPrivate))
+diff -ruN xf86-video-openchrome-0.2.904/src/via_id.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c
+--- xf86-video-openchrome-0.2.904/src/via_id.c 2009-10-07 23:30:39.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c 2010-03-07 01:09:00.000000000 +0100
+@@ -152,6 +152,7 @@
+ {"MSI PM8PM", VIA_VM800, 0x1462, 0x7222, VIA_DEVICE_CRT},
+ {"Twinhead M6", VIA_VM800, 0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"RoverBook Partner W500", VIA_VM800, 0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++ {"FIC PTM800Pro LF", VIA_VM800, 0x1509, 0x601A, VIA_DEVICE_CRT},
+ {"Clevo/RoverBook Voyager V511L", VIA_VM800, 0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M5xxS", VIA_VM800, 0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Biostar P4M80-M4 / P4VMA-M", VIA_VM800, 0x1565, 0x1202, VIA_DEVICE_CRT},
+@@ -170,6 +171,7 @@
+ {"Asustek M2V-MX SE", VIA_K8M890, 0x1043, 0x8297, VIA_DEVICE_CRT},
+ {"Foxconn K8M890M2MA-RS2H", VIA_K8M890, 0x105B, 0x0C84, VIA_DEVICE_CRT},
+ {"Shuttle FX22V1", VIA_K8M890, 0x1297, 0x3080, VIA_DEVICE_CRT},
++ {"MSI K8M890M2-V", VIA_K8M890, 0x1462, 0x7139, VIA_DEVICE_CRT},
+ {"MSI K9VGM-V", VIA_K8M890, 0x1462, 0x7253, VIA_DEVICE_CRT},
+ {"Averatec 226x", VIA_K8M890, 0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Fujitsu/Siemens Amilo La 1703", VIA_K8M890, 0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -189,6 +191,7 @@
+ {"MSI P4M900M / P4M900M2-F/L", VIA_P4M900, 0x1462, 0x7255, VIA_DEVICE_CRT},
+ {"MSI P4M900M3-L", VIA_P4M900, 0x1462, 0x7387, VIA_DEVICE_CRT},
+ {"Twinhead H12V", VIA_P4M900, 0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++ {"Twinhead K15V", VIA_P4M900, 0x14FF, 0xA012, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Everex NC1501/NC1503", VIA_P4M900, 0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M660SE", VIA_P4M900, 0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M660SR", VIA_P4M900, 0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -224,6 +227,7 @@
+
+ /*** VX800 ***/
+ {"VIA Epia M700", VIA_VX800, 0x1106, 0x1122, VIA_DEVICE_CRT},
++ {"Guillemot-Hercules ECafe EC900B", VIA_VX800, 0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"VIA OpenBook", VIA_VX800, 0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */
+ {"Samsung NC20", VIA_VX800, 0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Quanta DreamBook Light IL1", VIA_VX800, 0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -231,6 +235,7 @@
+
+ /*** VX855 ***/
+ {"VIA VT8562C", VIA_VX855, 0x1106, 0x5122, VIA_DEVICE_CRT},
++ {"OLPC XO 1.5", VIA_VX855, 0x152D, 0x0833, VIA_DEVICE_LCD},
+
+ /* keep this */
+ {NULL, VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE}
+diff -ruN xf86-video-openchrome-0.2.904/src/via_mode.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h
+--- xf86-video-openchrome-0.2.904/src/via_mode.h 2009-10-07 23:31:47.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h 2010-03-07 01:09:00.000000000 +0100
+@@ -54,50 +54,50 @@
+ CARD16 UniChrome;
+ union pllparams UniChromePro;
+ } ViaDotClocks[] = {
+- { 25200, 0x513C, /* 0xa79004 */ { 1, 4, 6, 169 } },
+- { 25312, 0xC763, /* 0xc49005 */ { 1, 4, 7, 198 } },
+- { 26591, 0x471A, /* 0xce9005 */ { 1, 4, 7, 208 } },
+- { 31500, 0xC558, /* 0xae9003 */ { 1, 4, 5, 176 } },
+- { 31704, 0x471F, /* 0xaf9002 */ { 1, 4, 4, 177 } },
+- { 32663, 0xC449, /* 0x479000 */ { 1, 4, 2, 73 } },
+- { 33750, 0x4721, /* 0x959002 */ { 1, 4, 4, 151 } },
+- { 35500, 0x5877, /* 0x759001 */ { 1, 4, 3, 119 } },
+- { 36000, 0x5879, /* 0x9f9002 */ { 1, 4, 4, 161 } },
+- { 39822, 0xC459, /* 0x578c02 */ { 1, 3, 4, 89 } },
+- { 40000, 0x515F, /* 0x848c04 */ { 1, 3, 6, 134 } },
+- { 41164, 0x4417, /* 0x2c8c00 */ { 1, 3, 2, 46 } },
+- { 46981, 0x5069, /* 0x678c02 */ { 1, 3, 4, 105 } },
+- { 49500, 0xC353, /* 0xa48c04 */ { 3, 3, 5, 138 } },
+- { 50000, 0xC354, /* 0x368c00 */ { 1, 3, 2, 56 } },
+- { 56300, 0x4F76, /* 0x3d8c00 */ { 1, 3, 2, 63 } },
+- { 57275, 0, /* 0x3e8c00 */ { 1, 3, 5, 157 } }, /* For XO 1.5 no need for a unichrome clock */
+- { 57284, 0x4E70, /* 0x3e8c00 */ { 1, 3, 2, 64 } },
+- { 64995, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+- { 65000, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } }, /* Slightly unstable on PM800 */
+- { 65028, 0x866D, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+- { 74480, 0x156E, /* 0x288800 */ { 1, 2, 2, 42 } },
+- { 75000, 0x156E, /* 0x288800 */ { 1, 2, 2, 42 } },
+- { 78800, 0x442C, /* 0x2a8800 */ { 1, 2, 2, 44 } },
+- { 81135, 0x0622, /* 0x428801 */ { 1, 2, 3, 68 } },
+- { 81613, 0x4539, /* 0x708803 */ { 1, 2, 5, 114 } },
+- { 94500, 0x4542, /* 0x4d8801 */ { 1, 2, 3, 79 } },
+- { 108000, 0x0B53, /* 0x778802 */ { 1, 2, 4, 121 } },
+- { 108280, 0x4879, /* 0x778802 */ { 1, 2, 4, 121 } },
+- { 122000, 0x0D6F, /* 0x428800 */ { 1, 2, 2, 68 } },
+- { 122726, 0x073C, /* 0x878802 */ { 1, 2, 4, 137 } },
+- { 135000, 0x0742, /* 0x6f8801 */ { 1, 2, 3, 113 } },
+- { 148500, 0x0853, /* 0x518800 */ { 1, 2, 2, 83 } },
+- { 155800, 0x0857, /* 0x558402 */ { 1, 1, 4, 87 } },
+- { 157500, 0x422C, /* 0x2a8400 */ { 1, 1, 2, 44 } },
+- { 161793, 0x4571, /* 0x6f8403 */ { 1, 1, 5, 113 } },
+- { 162000, 0x0A71, /* 0x6f8403 */ { 1, 1, 5, 113 } },
+- { 175500, 0x4231, /* 0x2f8400 */ { 1, 1, 2, 49 } },
+- { 189000, 0x0542, /* 0x4d8401 */ { 1, 1, 3, 79 } },
+- { 202500, 0x0763, /* 0x6F8402 */ { 1, 1, 4, 113 } },
+- { 204800, 0x0764, /* 0x548401 */ { 1, 1, 3, 86 } },
+- { 218300, 0x043D, /* 0x3b8400 */ { 1, 1, 2, 61 } },
+- { 229500, 0x0660, /* 0x3e8400 */ { 1, 1, 2, 64 } }, /* Not tested on Pro } */
+- { 0, 0, { 0, 0, 0, 0 } }
++ { 25200, 0x513C, /* 0xa79004 */ { { 1, 4, 6, 169 } } },
++ { 25312, 0xC763, /* 0xc49005 */ { { 1, 4, 7, 198 } } },
++ { 26591, 0x471A, /* 0xce9005 */ { { 1, 4, 7, 208 } } },
++ { 31500, 0xC558, /* 0xae9003 */ { { 1, 4, 5, 176 } } },
++ { 31704, 0x471F, /* 0xaf9002 */ { { 1, 4, 4, 177 } } },
++ { 32663, 0xC449, /* 0x479000 */ { { 1, 4, 2, 73 } } },
++ { 33750, 0x4721, /* 0x959002 */ { { 1, 4, 4, 151 } } },
++ { 35500, 0x5877, /* 0x759001 */ { { 1, 4, 3, 119 } } },
++ { 36000, 0x5879, /* 0x9f9002 */ { { 1, 4, 4, 161 } } },
++ { 39822, 0xC459, /* 0x578c02 */ { { 1, 3, 4, 89 } } },
++ { 40000, 0x515F, /* 0x848c04 */ { { 1, 3, 6, 134 } } },
++ { 41164, 0x4417, /* 0x2c8c00 */ { { 1, 3, 2, 46 } } },
++ { 46981, 0x5069, /* 0x678c02 */ { { 1, 3, 4, 105 } } },
++ { 49500, 0xC353, /* 0xa48c04 */ { { 3, 3, 5, 138 } } },
++ { 50000, 0xC354, /* 0x368c00 */ { { 1, 3, 2, 56 } } },
++ { 56300, 0x4F76, /* 0x3d8c00 */ { { 1, 3, 2, 63 } } },
++ { 57275, 0, /* 0x3e8c00 */ { { 1, 3, 5, 157 } } }, /* For XO 1.5 no need for a unichrome clock */
++ { 57284, 0x4E70, /* 0x3e8c00 */ { { 1, 3, 2, 64 } } },
++ { 64995, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++ { 65000, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } }, /* Slightly unstable on PM800 */
++ { 65028, 0x866D, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++ { 74480, 0x156E, /* 0x288800 */ { { 1, 2, 2, 42 } } },
++ { 75000, 0x156E, /* 0x288800 */ { { 1, 2, 2, 42 } } },
++ { 78800, 0x442C, /* 0x2a8800 */ { { 1, 2, 2, 44 } } },
++ { 81135, 0x0622, /* 0x428801 */ { { 1, 2, 3, 68 } } },
++ { 81613, 0x4539, /* 0x708803 */ { { 1, 2, 5, 114 } } },
++ { 94500, 0x4542, /* 0x4d8801 */ { { 1, 2, 3, 79 } } },
++ { 108000, 0x0B53, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++ { 108280, 0x4879, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++ { 122000, 0x0D6F, /* 0x428800 */ { { 1, 2, 2, 68 } } },
++ { 122726, 0x073C, /* 0x878802 */ { { 1, 2, 4, 137 } } },
++ { 135000, 0x0742, /* 0x6f8801 */ { { 1, 2, 3, 113 } } },
++ { 148500, 0x0853, /* 0x518800 */ { { 1, 2, 2, 83 } } },
++ { 155800, 0x0857, /* 0x558402 */ { { 1, 1, 4, 87 } } },
++ { 157500, 0x422C, /* 0x2a8400 */ { { 1, 1, 2, 44 } } },
++ { 161793, 0x4571, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },
++ { 162000, 0x0A71, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },
++ { 175500, 0x4231, /* 0x2f8400 */ { { 1, 1, 2, 49 } } },
++ { 189000, 0x0542, /* 0x4d8401 */ { { 1, 1, 3, 79 } } },
++ { 202500, 0x0763, /* 0x6F8402 */ { { 1, 1, 4, 113 } } },
++ { 204800, 0x0764, /* 0x548401 */ { { 1, 1, 3, 86 } } },
++ { 218300, 0x043D, /* 0x3b8400 */ { { 1, 1, 2, 61 } } },
++ { 229500, 0x0660, /* 0x3e8400 */ { { 1, 1, 2, 64 } } }, /* Not tested on Pro } */
++ { 0, 0, { { 0, 0, 0, 0 } } }
+ };
+
+ /*
+diff -ruN xf86-video-openchrome-0.2.904/src/via_panel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c
+--- xf86-video-openchrome-0.2.904/src/via_panel.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c 2010-03-07 01:09:00.000000000 +0100
+@@ -171,12 +171,18 @@
+ resWidth, resHeight, panelWidth, panelHeight));
+
+ if (resWidth < panelWidth) {
+- /* FIXME: It is different for chipset < K8M800 */
+- horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++ /* Load Horizontal Scaling Factor */
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++
++ /* Horizontal scaling enabled */
++ cra2 = 0xC0;
++ cr9f = horScalingFactor & 0x0003; /* HSCaleFactor[1:0] at CR9F[1:0] */
++ } else {
++ /* TODO: Need testing */
++ horScalingFactor = ((resWidth - 1) * 1024) / (panelWidth - 1);
++ }
+
+- /* Horizontal scaling enabled */
+- cra2 = 0xC0;
+- cr9f = horScalingFactor & 0x0003; /* HSCaleFactor[1:0] at CR9F[1:0] */
+ cr77 = (horScalingFactor & 0x03FC) >> 2; /* HSCaleFactor[9:2] at CR77[7:0] */
+ cr79 = (horScalingFactor & 0x0C00) >> 10; /* HSCaleFactor[11:10] at CR79[5:4] */
+ cr79 <<= 4;
+@@ -184,11 +190,18 @@
+ }
+
+ if (resHeight < panelHeight) {
+- verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++ /* Load Vertical Scaling Factor */
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++
++ /* Vertical scaling enabled */
++ cra2 |= 0x08;
++ cr79 |= ((verScalingFactor & 0x0001) << 3); /* VSCaleFactor[0] at CR79[3] */
++ } else {
++ /* TODO: Need testing */
++ verScalingFactor = ((resHeight - 1) * 1024) / (panelHeight - 1);
++ }
+
+- /* Vertical scaling enabled */
+- cra2 |= 0x08;
+- cr79 |= ((verScalingFactor & 0x0001) << 3); /* VSCaleFactor[0] at CR79[3] */
+ cr78 |= (verScalingFactor & 0x01FE) >> 1; /* VSCaleFactor[8:1] at CR78[7:0] */
+ cr79 |= ((verScalingFactor & 0x0600) >> 9) << 6; /* VSCaleFactor[10:9] at CR79[7:6] */
+ scaling = TRUE;
+@@ -203,12 +216,18 @@
+ ViaCrtcMask(hwp, 0x77, cr77, 0xFF);
+ ViaCrtcMask(hwp, 0x78, cr78, 0xFF);
+ ViaCrtcMask(hwp, 0x79, cr79, 0xF8);
+- ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++ }
+ ViaCrtcMask(hwp, 0x79, 0x03, 0x03);
+- } else
++ } else {
++ /* Disable panel scale */
+ ViaCrtcMask(hwp, 0x79, 0x00, 0x01);
+-
+- ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++ }
++
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++ }
+
+ /* Horizontal scaling selection: interpolation */
+ // ViaCrtcMask(hwp, 0x79, 0x02, 0x02);
+@@ -233,14 +252,14 @@
+
+ if (panelMode->Width && panelMode->Height) {
+
+- /* TODO: fix refresh rate and check malloc */
++ /* TODO: fix refresh rate */
+ DisplayModePtr p = malloc( sizeof(DisplayModeRec) ) ;
+- memset(p, 0, sizeof(DisplayModeRec));
++ if (p) {
++ memset(p, 0, sizeof(DisplayModeRec));
+
+- float refresh = 60.0f ;
++ float refresh = 60.0f ;
+
+- /* The following code is borrowed from xf86SetModeCrtc. */
+- if (p) {
++ /* The following code is borrowed from xf86SetModeCrtc. */
+ viaTimingCvt(p, panelMode->Width, panelMode->Height, refresh, FALSE, TRUE);
+ p->CrtcHDisplay = p->HDisplay;
+ p->CrtcHSyncStart = p->HSyncStart;
+@@ -256,9 +275,13 @@
+ p->CrtcVBlankEnd = max(p->CrtcVSyncEnd, p->CrtcVTotal);
+ p->CrtcHBlankStart = min(p->CrtcHSyncStart, p->CrtcHDisplay);
+ p->CrtcHBlankEnd = max(p->CrtcHSyncEnd, p->CrtcHTotal);
+-
++
++ pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++ } else {
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ "Out of memory. Size: %d bytes\n", sizeof(DisplayModeRec));
+ }
+- pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Invalid panel dimension (%dx%d)\n", panelMode->Width,
+@@ -339,22 +362,22 @@
+ ViaPanelGetSizeFromEDID(ScrnInfoPtr pScrn, xf86MonPtr pMon,
+ int *width, int *height)
+ {
+- int i, max = 0, vsize;
++ int i, max_hsize = 0, vsize = 0;
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAGetPanelSizeFromEDID\n"));
+
+ /* !!! Why are we not checking VESA modes? */
+
+ /* checking standard timings */
+- for (i = 0; i < 8; i++)
++ for (i = 0; i < STD_TIMINGS; i++)
+ if ((pMon->timings2[i].hsize > 256)
+- && (pMon->timings2[i].hsize > max)) {
+- max = pMon->timings2[i].hsize;
++ && (pMon->timings2[i].hsize > max_hsize)) {
++ max_hsize = pMon->timings2[i].hsize;
+ vsize = pMon->timings2[i].vsize;
+ }
+
+- if (max != 0) {
+- *width = max;
++ if (max_hsize != 0) {
++ *width = max_hsize;
+ *height = vsize;
+ return TRUE;
+ }
+@@ -369,14 +392,14 @@
+ struct detailed_timings timing = pMon->det_mon[i].section.d_timings;
+
+ /* ignore v_active for now */
+- if ((timing.clock > 15000000) && (timing.h_active > max)) {
+- max = timing.h_active;
++ if ((timing.clock > 15000000) && (timing.h_active > max_hsize)) {
++ max_hsize = timing.h_active;
+ vsize = timing.v_active;
+ }
+ }
+
+- if (max != 0) {
+- *width = max;
++ if (max_hsize != 0) {
++ *width = max_hsize;
+ *height = vsize;
+ return TRUE;
+ }
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c
+--- xf86-video-openchrome-0.2.904/src/via_video.c 2009-10-08 01:39:13.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c 2010-03-07 01:09:00.000000000 +0100
+@@ -466,8 +466,8 @@
+
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ viaVidEng->color_key = 0x821;
+ viaVidEng->snd_color_key = 0x821;
+
+@@ -479,16 +479,16 @@
+ VIAPtr pVia = VIAPTR(pScrn);
+ vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
+
++ DBG_DD(ErrorF(" via_video.c : viaSaveVideo : \n"));
+ /* Save video registers */
+- /* TODO: Identify which registers should be saved and restored */
+ memcpy(pVia->VideoRegs, (void*)viaVidEng, sizeof(video_via_regs));
+
+ pVia->dwV1 = ((vmmtr) viaVidEng)->video1_ctl;
+ pVia->dwV3 = ((vmmtr) viaVidEng)->video3_ctl;
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+
+ void
+@@ -496,16 +496,65 @@
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+ vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
++ video_via_regs *localVidEng = pVia->VideoRegs;
++
+
++ DBG_DD(ErrorF(" via_video.c : viaRestoreVideo : \n"));
+ /* Restore video registers */
+- /* TODO: Identify which registers should be saved and restored */
+- memcpy((void*)viaVidEng, pVia->VideoRegs, sizeof(video_via_regs));
+-
++ /* flush restored video engines' setting to VidMapBase */
++
++ viaVidEng->alphawin_hvstart = localVidEng->alphawin_hvstart;
++ viaVidEng->alphawin_size = localVidEng->alphawin_size;
++ viaVidEng->alphawin_ctl = localVidEng->alphawin_ctl;
++ viaVidEng->alphafb_stride = localVidEng->alphafb_stride;
++ viaVidEng->color_key = localVidEng->color_key;
++ viaVidEng->alphafb_addr = localVidEng->alphafb_addr;
++ viaVidEng->chroma_low = localVidEng->chroma_low;
++ viaVidEng->chroma_up = localVidEng->chroma_up;
++
++ if (pVia->ChipId != PCI_CHIP_VT3314)
++ {
++ /*VT3314 only has V3*/
++ viaVidEng->video1_ctl = localVidEng->video1_ctl;
++ viaVidEng->video1_fetch = localVidEng->video1_fetch;
++ viaVidEng->video1y_addr1 = localVidEng->video1y_addr1;
++ viaVidEng->video1_stride = localVidEng->video1_stride;
++ viaVidEng->video1_hvstart = localVidEng->video1_hvstart;
++ viaVidEng->video1_size = localVidEng->video1_size;
++ viaVidEng->video1y_addr2 = localVidEng->video1y_addr2;
++ viaVidEng->video1_zoom = localVidEng->video1_zoom;
++ viaVidEng->video1_mictl = localVidEng->video1_mictl;
++ viaVidEng->video1y_addr0 = localVidEng->video1y_addr0;
++ viaVidEng->video1_fifo = localVidEng->video1_fifo;
++ viaVidEng->video1y_addr3 = localVidEng->video1y_addr3;
++ viaVidEng->v1_source_w_h = localVidEng->v1_source_w_h ;
++ viaVidEng->video1_CSC1 = localVidEng->video1_CSC1;
++ viaVidEng->video1_CSC2 = localVidEng->video1_CSC2;
++ }
++ viaVidEng->snd_color_key = localVidEng->snd_color_key;
++ viaVidEng->v3alpha_prefifo = localVidEng->v3alpha_prefifo;
++ viaVidEng->v3alpha_fifo = localVidEng->v3alpha_fifo;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->v3_source_width = localVidEng->v3_source_width;
++ viaVidEng->video3_ctl = localVidEng->video3_ctl;
++ viaVidEng->video3_addr0 = localVidEng->video3_addr0;
++ viaVidEng->video3_addr1 = localVidEng->video3_addr1;
++ viaVidEng->video3_stride = localVidEng->video3_stride;
++ viaVidEng->video3_hvstart = localVidEng->video3_hvstart;
++ viaVidEng->video3_size = localVidEng->video3_size;
++ viaVidEng->v3alpha_fetch = localVidEng->v3alpha_fetch;
++ viaVidEng->video3_zoom = localVidEng->video3_zoom;
++ viaVidEng->video3_mictl = localVidEng->video3_mictl;
++ viaVidEng->video3_CSC1 = localVidEng->video3_CSC1;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->compose = localVidEng->compose;
++
+ viaVidEng->video1_ctl = pVia->dwV1;
+ viaVidEng->video3_ctl = pVia->dwV3;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
+-
++ if (pVia->ChipId != PCI_CHIP_VT3314)
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+
+ void
+@@ -524,8 +573,8 @@
+
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+
+ /*
+ * Free all adaptor info allocated in viaInitVideo.
+@@ -561,7 +610,7 @@
+ XF86VideoAdaptorPtr *adaptors, *newAdaptors;
+ int num_adaptors, num_new;
+
+- DBG_DD(ErrorF(" via_video.c : viaInitVideo : \n"));
++ DBG_DD(ErrorF(" via_video.c : viaInitVideo, Screen[%d]\n", pScrn->scrnIndex));
+
+ allAdaptors = NULL;
+ newAdaptors = NULL;
+@@ -832,7 +881,7 @@
+ DevUnion *pdevUnion;
+ int i, j, usedPorts, numPorts;
+
+- DBG_DD(ErrorF(" via_video.c : viaSetupImageVideo: \n"));
++ DBG_DD(ErrorF(" via_video.c : viaSetupAdaptors (viaSetupImageVideo): \n"));
+
+ xvBrightness = MAKE_ATOM("XV_BRIGHTNESS");
+ xvContrast = MAKE_ATOM("XV_CONTRAST");
+@@ -1042,6 +1091,8 @@
+ }
+
+ } else {
++ DBG_DD(ErrorF(" via_video.c : viaGetPortAttribute : is not supported the attribute\n"));
++
+ /*return BadMatch */;
+ }
+ return Success;
+@@ -1498,6 +1549,7 @@
+
+ DBG_DD(ErrorF(" via_video.c : viaQueryImageAttributes : FourCC=0x%x, ",
+ id));
++ DBG_DD(ErrorF(" via_video.c : Screen[%d], w=%d, h=%d\n", pScrn->scrnIndex, *w, *h));
+
+ if ((!w) || (!h))
+ return 0;
+@@ -1513,6 +1565,7 @@
+
+ switch (id) {
+ case FOURCC_YV12: /*Planar format : YV12 -4:2:0 */
++ case FOURCC_I420:
+ *h = (*h + 1) & ~1;
+ size = *w;
+ if (pVia->useDmaBlit)
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h
+--- xf86-video-openchrome-0.2.904/src/via_video.h 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h 2010-03-07 01:09:00.000000000 +0100
+@@ -44,6 +44,10 @@
+
+ #define VIDEO_BPP 2
+
++
++#define V1_COMMAND_FIRE 0x80000000 /* V1 commands fire */
++#define V3_COMMAND_FIRE 0x40000000 /* V3 commands fire */
++
+ typedef struct
+ {
+ CARD32 interruptflag; /* 200 */
+@@ -89,7 +93,7 @@
+ CARD32 video3_ctl; /* 2a0 */
+ CARD32 video3_addr0; /* 2a4 */
+ CARD32 video3_addr1; /* 2a8 */
+- CARD32 video3_stribe; /* 2ac */
++ CARD32 video3_stride; /* 2ac */
+ CARD32 video3_hvstart; /* 2b0 */
+ CARD32 video3_size; /* 2b4 */
+ CARD32 v3alpha_fetch; /* 2b8 */
diff --git a/extra/xf86-video-r128/LICENSE b/extra/xf86-video-r128/LICENSE
new file mode 100644
index 000000000..229a26157
--- /dev/null
+++ b/extra/xf86-video-r128/LICENSE
@@ -0,0 +1,219 @@
+
+Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of Marc Aurele La France not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. Marc Aurele La France makes no representations
+about the suitability of this software for any purpose. It is provided
+"as-is" without express or implied warranty.
+
+MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2000 Gareth Hughes
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+(c) 2004 Adam Jackson. Standard MIT license applies.
+
+Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+Precision Insight, Inc., Cedar Park, Texas, and
+VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright 2003 Alex Deucher.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER
+CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+/**************************************************************************
+
+Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc.,
+ Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
+/**************************************************************************
+
+Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
+ VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+ * Precision Insight, Inc., Cedar Park, Texas, and
+ * VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation on the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT. IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+ * SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Rickard E. Faith <faith@valinux.com>
+ * Daryll Strauss <daryll@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
diff --git a/extra/xf86-video-r128/PKGBUILD b/extra/xf86-video-r128/PKGBUILD
new file mode 100644
index 000000000..a5f3e09ea
--- /dev/null
+++ b/extra/xf86-video-r128/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114494 2011-03-14 09:01:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-r128
+pkgver=6.8.1
+pkgrel=5
+pkgdesc="X.org ati Rage128 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'r128-dri')
+makedepends=('xorg-server-devel' 'xf86driproto' 'libdrm' 'mesa')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('2b90854a62a4d45d652062f582dc8d13'
+ '97ad034bea2a153f4418a6bb0c77acf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-rendition/PKGBUILD b/extra/xf86-video-rendition/PKGBUILD
new file mode 100644
index 000000000..d5b2ed3f4
--- /dev/null
+++ b/extra/xf86-video-rendition/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 114499 2011-03-14 09:14:01Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-rendition
+pkgver=4.2.4
+pkgrel=3
+pkgdesc="X.org Rendition video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool' '!strip')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('16148c25183f7829c22bc9dfdb588c1a16bf4565')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ strip --strip-unneeded "${pkgdir}/usr/lib/xorg/modules/drivers/rendition_drv.so"
+}
diff --git a/extra/xf86-video-s3/LICENSE b/extra/xf86-video-s3/LICENSE
new file mode 100644
index 000000000..a4c8d5dd4
--- /dev/null
+++ b/extra/xf86-video-s3/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+ Copyright 2001 Ani Joshi <ajoshi@unixbox.com>
+
+ XFree86 4.x driver for S3 chipsets
+
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation and
+that the name of Ani Joshi not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. Ani Joshi makes no representations
+about the suitability of this software for any purpose. It is provided
+"as-is" without express or implied warranty.
+
+ANI JOSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ANI JOSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/extra/xf86-video-s3/PKGBUILD b/extra/xf86-video-s3/PKGBUILD
new file mode 100644
index 000000000..75922daa7
--- /dev/null
+++ b/extra/xf86-video-s3/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114504 2011-03-14 09:17:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-s3
+pkgver=0.6.3
+pkgrel=4
+pkgdesc="X.org S3 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('5eb06d88533fb327d067928faeb20860'
+ '6b2bea29522da7cbb81cadde3235024d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xf86-video-s3virge/LICENSE b/extra/xf86-video-s3virge/LICENSE
new file mode 100644
index 000000000..23c2aea22
--- /dev/null
+++ b/extra/xf86-video-s3virge/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
diff --git a/extra/xf86-video-s3virge/PKGBUILD b/extra/xf86-video-s3virge/PKGBUILD
new file mode 100644
index 000000000..4e8197f25
--- /dev/null
+++ b/extra/xf86-video-s3virge/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114509 2011-03-14 09:19:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-s3virge
+pkgver=1.10.4
+pkgrel=4
+pkgdesc="X.org S3 Virge video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('6517bbbf808c700502d51acdc44662f8' 'c0a38dfcd6288eff39322f7c584b8d1e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-savage/PKGBUILD b/extra/xf86-video-savage/PKGBUILD
new file mode 100644
index 000000000..1b45ea10b
--- /dev/null
+++ b/extra/xf86-video-savage/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114514 2011-03-14 09:27:55Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-savage
+pkgver=2.3.2
+pkgrel=1
+pkgdesc="X.org savage video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'savage-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool !makeflags)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d675693d0b29cb24f624ef57c1fe2f271f6bf6c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-siliconmotion/PKGBUILD b/extra/xf86-video-siliconmotion/PKGBUILD
new file mode 100644
index 000000000..a96a09d77
--- /dev/null
+++ b/extra/xf86-video-siliconmotion/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 114519 2011-03-14 09:30:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-siliconmotion
+pkgver=1.7.5
+pkgrel=1
+pkgdesc="X.org siliconmotion video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('946acae0822d51da57abe8b7ed049691bd731589')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-sis/PKGBUILD b/extra/xf86-video-sis/PKGBUILD
new file mode 100644
index 000000000..e595debd0
--- /dev/null
+++ b/extra/xf86-video-sis/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114524 2011-03-14 09:33:33Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sis
+pkgver=0.10.3
+pkgrel=3
+pkgdesc="X.org SiS video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'sis-dri')
+makedepends=('xorg-server-devel' 'xf86dgaproto' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('158673747e240b0c33499685a32d46bdaead7cd5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-sisusb/PKGBUILD b/extra/xf86-video-sisusb/PKGBUILD
new file mode 100644
index 000000000..24320dc52
--- /dev/null
+++ b/extra/xf86-video-sisusb/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114529 2011-03-14 09:35:17Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sisusb
+pkgver=0.9.4
+pkgrel=3
+pkgdesc="X.org SiS USB video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('600fd49dffe00121f9042555fea55948653d1a7e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-tdfx/LICENSE b/extra/xf86-video-tdfx/LICENSE
new file mode 100644
index 000000000..08b1adde5
--- /dev/null
+++ b/extra/xf86-video-tdfx/LICENSE
@@ -0,0 +1,160 @@
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+/*
+ * Copyright 2000 VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * VA LINUX SYSTEMS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+
+/*
+ * GLX Hardware Device Driver for Intel i810
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+
+
+/*
+ * GLX Hardware Device Driver for Intel tdfx
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 4.1
+ *
+ * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ * Keith Whitwell <keith@tungstengraphics.com>
+ * Daniel Borca <dborca@users.sourceforge.net>
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 5.1
+ *
+ * Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ * Keith Whitwell
+ * Daniel Borca
+ */
diff --git a/extra/xf86-video-tdfx/PKGBUILD b/extra/xf86-video-tdfx/PKGBUILD
new file mode 100644
index 000000000..3fa0e88cd
--- /dev/null
+++ b/extra/xf86-video-tdfx/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114534 2011-03-14 09:41:17Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tdfx
+pkgver=1.4.3
+pkgrel=5
+pkgdesc="X.org tdfx video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'tdfx-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.9.0')
+options=(!libtool)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('8161bbf2b100c21b609163f0010766b3'
+ '978e9486ffd4e4164c12dc68c84186e1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-trident/PKGBUILD b/extra/xf86-video-trident/PKGBUILD
new file mode 100644
index 000000000..3d43fed51
--- /dev/null
+++ b/extra/xf86-video-trident/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114539 2011-03-14 09:43:00Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-trident
+pkgver=1.3.4
+pkgrel=3
+pkgdesc="X.org Trident video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=(!libtool)
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7c40f5c02bddf399862782b708941e79302318af')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/extra/xf86-video-tseng/PKGBUILD b/extra/xf86-video-tseng/PKGBUILD
new file mode 100644
index 000000000..80115fcbe
--- /dev/null
+++ b/extra/xf86-video-tseng/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114544 2011-03-14 09:47:29Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tseng
+pkgver=1.2.4
+pkgrel=3
+pkgdesc="X.org tseng video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-unichrome/LICENSE b/extra/xf86-video-unichrome/LICENSE
new file mode 100644
index 000000000..f4007667b
--- /dev/null
+++ b/extra/xf86-video-unichrome/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2004-2007 Luc Verhaegen. All Rights Reserved.
+Copyright (c) 2004-2005 The Unichrome Project. All Rights Reserved.
+Copyright (c) 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+Copyright (c) 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/extra/xf86-video-unichrome/PKGBUILD b/extra/xf86-video-unichrome/PKGBUILD
new file mode 100644
index 000000000..b2aa60e45
--- /dev/null
+++ b/extra/xf86-video-unichrome/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 88691 2010-08-24 13:31:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=xf86-video-unichrome
+pkgver=0.2.7
+pkgrel=4
+_gitversion=cd12cce88ff886031c23c743569fba97eccace4e
+pkgdesc="Unichrome video drivers for X.Org"
+arch=(i686 x86_64)
+url="http://unichrome.sf.net/"
+license=('custom')
+depends=('glibc' 'unichrome-dri')
+makedepends=('xorg-server-devel' 'libx11' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc')
+options=('!libtool')
+conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.9.0')
+source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2
+ drm-include.patch
+ LICENSE)
+md5sums=('c64332e6c386ed9a580116e131f288f4'
+ '4a9bf2e3ef338c170a2f58988ebb97dc'
+ '6ea7d64c87c5c32201a1e38e3336e44a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_gitversion}"
+ patch -Np0 -i "${srcdir}/drm-include.patch"
+ ./autogen.sh --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-unichrome/drm-include.patch b/extra/xf86-video-unichrome/drm-include.patch
new file mode 100644
index 000000000..edfe9a8af
--- /dev/null
+++ b/extra/xf86-video-unichrome/drm-include.patch
@@ -0,0 +1,11 @@
+--- src/via_memory.h.orig 2010-05-09 16:17:00.143352805 +0200
++++ src/via_memory.h 2010-05-09 16:17:14.433351301 +0200
+@@ -30,7 +30,7 @@
+
+ /* don't include local via_drm.h when using modular */
+ #ifdef HAVE_CONFIG_H
+-#include "drm/via_drm.h"
++#include <via_drm.h>
+ #else
+ #include "via_drm.h"
+ #endif
diff --git a/extra/xf86-video-v4l/LICENSE b/extra/xf86-video-v4l/LICENSE
new file mode 100644
index 000000000..535595b88
--- /dev/null
+++ b/extra/xf86-video-v4l/LICENSE
@@ -0,0 +1,826 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+ Licenses
+
+ The X.Org Foundation
+
+ March 2004
+
+1. Introduction
+
+The X.org Foundation X Window System distribution is a compilation of code
+and documentation from many sources. This document is intended primarily as
+a guide to the licenses used in the distribution: you must check each file
+and/or package for precise redistribution terms. None-the-less, this summary
+may be useful to many users. No software incorporating the XFree86 1.1
+license has been incorporated.
+
+This document is based on the compilation from XFree86.
+
+2. XFree86 License
+
+XFree86 code without an explicit copyright is covered by the following copy-
+right/license:
+
+Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from the XFree86
+Project.
+
+3. Other Licenses
+
+Portions of code are covered by the following licenses/copyrights. See indi-
+vidual files for the copyright dates.
+
+3.1 X/MIT Copyrights
+
+3.1.1 X Consortium
+
+Copyright (C) <date> X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
+CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+X Window System is a trademark of X Consortium, Inc.
+
+3.1.2 The Open Group
+
+Copyright <date> The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+3.2 Berkeley-based copyrights:
+
+o
+
+3.2.1 General
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.2 UCB/LBL
+
+Copyright (c) 1993 The Regents of the University of California. All rights
+reserved.
+
+This software was developed by the Computer Systems Engineering group at
+Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
+Berkeley.
+
+All advertising materials mentioning features or use of this software must
+display the following acknowledgement: This product includes software devel-
+oped by the University of California, Lawrence Berkeley Laboratory.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement: This product includes soft-
+ ware developed by the University of California, Berkeley and its con-
+ tributors.
+
+ 4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
+CLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.3 The NetBSD Foundation, Inc.
+
+Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved.
+
+This code is derived from software contributed to The NetBSD Foundation by
+Ben Collver <collver1@attbi.com>
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement: This product includes soft-
+ ware developed by the NetBSD Foundation, Inc. and its contributors.
+
+ 4. Neither the name of The NetBSD Foundation nor the names of its con-
+ tributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE-
+QUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAM-
+AGE.
+
+3.2.4 Theodore Ts'o.
+
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ and the entire permission notice in its entirety, including the dis-
+ claimer of warranties.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. he name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.5 Theo de Raadt and Damien Miller
+
+Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c)
+2001-2002 Damien Miller. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.6 Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CON-
+TRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+3.2.7 Thomas Winischhofer
+
+Copyright (C) 2001-2004 Thomas Winischhofer
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.3 NVIDIA Corp
+
+Copyright (c) 1996 NVIDIA, Corp. All rights reserved.
+
+NOTICE TO USER: The source code is copyrighted under U.S. and international
+laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as
+design patents pending on the design and interface of the NV chips. Users
+and possessors of this source code are hereby granted a nonexclusive, roy-
+alty-free copyright and design patent license to use this code in individual
+and commercial software.
+
+Any use of this source code must include, in the user documentation and
+internal comments to the code, notices to the end user as follows:
+
+Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S.
+and foreign countries.
+
+NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
+CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WAR-
+RANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
+FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAM-
+AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.
+
+3.4 GLX Public License
+
+GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
+
+Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
+grants permission to Recipient (defined below), under Recipient's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below), and to permit persons to whom the Subject Software is furnished in
+accordance with this License to do the same, subject to all of the following
+terms and conditions, which Recipient accepts by engaging in any such use,
+copying, modifying, merging, publishing, distributing, sublicensing or sell-
+ing:
+
+1. Definitions.
+
+ (a) "Original Software" means source code of computer software code
+ which is described in Exhibit A as Original Software.
+
+ (b) "Modifications" means any addition to or deletion from the sub-
+ stance or structure of either the Original Software or any previous
+ Modifications. When Subject Software is released as a series of
+ files, a Modification means (i) any addition to or deletion from
+ the contents of a file containing Original Software or previous
+ Modifications and (ii) any new file that contains any part of the
+ Original Code or previous Modifications.
+
+ (c) "Subject Software" means the Original Software or Modifications
+ or the combination of the Original Software and Modifications, or
+ portions of any of the foregoing.
+
+ (d) "Recipient" means an individual or a legal entity exercising
+ rights under, and complying with all of the terms of, this License.
+ For legal entities, "Recipient" includes any entity which controls,
+ is controlled by, or is under common control with Recipient. For
+ purposes of this definition, "control" of an entity means (a) the
+ power, direct or indirect, to direct or manage such entity, or (b)
+ ownership of fifty percent (50%) or more of the outstanding shares
+ or beneficial ownership of such entity.
+
+2. Redistribution of Source Code Subject to These Terms. Redistributions of
+Subject Software in source code form must retain the notice set forth in
+Exhibit A, below, in every file. A copy of this License must be included in
+any documentation for such Subject Software where the recipients' rights
+relating to Subject Software are described. Recipient may distribute the
+source code version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13
+of this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the source code version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+3. Redistribution in Executable Form. The notice set forth in Exhibit A must
+be conspicuously included in any notice in an executable version of Subject
+Software, related documentation or collateral in which Recipient describes
+the user's rights relating to the Subject Software. Recipient may distribute
+the executable version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the executable version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+4. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software which is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+5. No Trademark Rights. This License does not grant any rights to use any
+trade name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from
+the Subject Software without prior written permission of SGI.
+
+6. No Other Rights. This License does not grant any rights with respect to
+the OpenGL API or to any software or hardware implementation thereof or to
+any other software whatsoever, nor shall any other rights or licenses not
+expressly granted hereunder arise by implication, estoppel or otherwise with
+respect to the Subject Software. Title to and ownership of the Original Soft-
+ware at all times remains with SGI. All rights in the Original Software not
+expressly granted under this License are reserved.
+
+7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+8. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Exhibit A notice required under Sec-
+tions 2 and 3, above, and in the text of any related documentation, license
+agreement or collateral in which Recipient describes end user's rights relat-
+ing to the Subject Software. If Recipient obtains such knowledge after it
+makes Subject Software available to any other person or entity, Recipient
+shall take other steps (such as notifying appropriate mailing lists or news-
+groups) reasonably calculated to inform those who received the Subject Soft-
+ware that new knowledge has been obtained.
+
+9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THE-
+ORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIA-
+BILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR
+ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
+STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
+TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
+THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES,
+SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
+
+11. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc.
+from and against any loss, liability, damages, costs or expenses (including
+the payment of reasonable attorneys fees) arising out of Recipient's use,
+modification, reproduction and distribution of the Subject Software or out of
+any representation or warranty made by Recipient.
+
+12. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End
+Users acquire only the rights set forth in this License and are subject to
+the terms of this License.
+
+13. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable, such provision shall be reformed so as to achieve as nearly as
+possible the same economic effect as the original provision and the remainder
+of this License will remain in effect. This License shall be governed by and
+construed in accordance with the laws of the United States and the State of
+California as applied to agreements entered into and to be performed entirely
+within California between California residents. Any litigation relating to
+this License shall be subject to the exclusive jurisdiction of the Federal
+Courts of the Northern District of California (or, absent subject matter
+jurisdiction in such courts, the courts of the State of California), with
+venue lying exclusively in Santa Clara County, California, with the losing
+party responsible for costs, including without limitation, court costs and
+reasonable attorneys fees and expenses. The application of the United Nations
+Convention on Contracts for the International Sale of Goods is expressly
+excluded. Any law or regulation which provides that the language of a con-
+tract shall be construed against the drafter shall not apply to this License.
+
+Exhibit A
+
+The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and
+13 of the GLX Public License Version 1.0 (the "License"). You may not use
+this file except in compliance with those sections of the License. You may
+obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services,
+2011 N. Shoreline Blvd., Mountain View, CA 94043 or at
+http://www.sgi.com/software/opensource/glx/license.html.
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software is GLX version 1.2 source code, released February,
+1999. The developer of the Original Software is Silicon Graphics, Inc. Those
+portions of the Subject Software created by Silicon Graphics, Inc. are Copy-
+right (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
+
+3.5 CID Font Code Public License
+
+CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
+
+Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
+hereby grants permission to Recipient (defined below), under SGI's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below) in both source code and executable form, and to permit persons to whom
+the Subject Software is furnished in accordance with this License to do the
+same, subject to all of the following terms and conditions, which Recipient
+accepts by engaging in any such use, copying, modifying, merging, publica-
+tion, distributing, sublicensing or selling:
+
+1. Definitions.
+
+ a. "Original Software" means source code of computer software code
+ that is described in Exhibit A as Original Software.
+
+ b. "Modifications" means any addition to or deletion from the sub-
+ stance or structure of either the Original Software or any previous
+ Modifications. When Subject Software is released as a series of
+ files, a Modification means (i) any addition to or deletion from
+ the contents of a file containing Original Software or previous
+ Modifications and (ii) any new file that contains any part of the
+ Original Code or previous Modifications.
+
+ c. "Subject Software" means the Original Software or Modifications
+ or the combination of the Original Software and Modifications, or
+ portions of any of the foregoing.
+
+ d. "Recipient" means an individual or a legal entity exercising
+ rights under the terms of this License. For legal entities, "Recip-
+ ient" includes any entity that controls, is controlled by, or is
+ under common control with Recipient. For purposes of this defini-
+ tion, "control" of an entity means (i) the power, direct or indi-
+ rect, to direct or manage such entity, or (ii) ownership of fifty
+ percent (50%) or more of the outstanding shares or beneficial own-
+ ership of such entity.
+
+ e. "Required Notice" means the notice set forth in Exhibit A to
+ this License.
+
+ f. "Accompanying Technology" means any software or other technology
+ that is not a Modification and that is distributed or made publicly
+ available by Recipient with the Subject Software. Separate soft-
+ ware files that do not contain any Original Software or any previ-
+ ous Modification shall not be deemed a Modification, even if such
+ software files are aggregated as part of a product, or in any
+ medium of storage, with any file that does contain Original Soft-
+ ware or any previous Modification.
+
+2. License Terms. All distribution of the Subject Software must be made sub-
+ject to the terms of this License. A copy of this License and the Required
+Notice must be included in any documentation for Subject Software where
+Recipient's rights relating to Subject Software and/or any Accompanying Tech-
+nology are described. Distributions of Subject Software in source code form
+must also include the Required Notice in every file distributed. In addition,
+a ReadMe file entitled "Important Legal Notice" must be distributed with each
+distribution of one or more files that incorporate Subject Software. That
+file must be included with distributions made in both source code and exe-
+cutable form. A copy of the License and the Required Notice must be included
+in that file. Recipient may distribute Accompanying Technology under a
+license of Recipient's choice, which may contain terms different from this
+License, provided that (i) Recipient is in compliance with the terms of this
+License, (ii) such other license terms do not modify or supersede the terms
+of this License as applicable to the Subject Software, (iii) Recipient hereby
+indemnifies SGI for any liability incurred by SGI as a result of the distri-
+bution of Accompanying Technology or the use of other license terms.
+
+3. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software that is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+4. Trademark Rights. This License does not grant any rights to use any trade
+name, trademark or service mark whatsoever. No trade name, trademark or ser-
+vice mark of SGI may be used to endorse or promote products derived from or
+incorporating any Subject Software without prior written permission of SGI.
+
+5. No Other Rights. No rights or licenses not expressly granted hereunder
+shall arise by implication, estoppel or otherwise. Title to and ownership of
+the Original Software at all times remains with SGI. All rights in the Origi-
+nal Software not expressly granted under this License are reserved.
+
+6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity, or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+7. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Required Notice, and in the text of
+any related documentation, license agreement or collateral in which Recipient
+describes end user's rights relating to the Subject Software. If Recipient
+obtains such knowledge after it makes Subject Software available to any other
+person or entity, Recipient shall take other steps (such as notifying appro-
+priate mailing lists or newsgroups) reasonably calculated to provide such
+knowledge to those who received the Subject Software.
+
+8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
+LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
+
+10. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold SGI and its successors and assigns
+harmless from and against any loss, liability, damages, costs or expenses
+(including the payment of reasonable attorneys fees) arising out of (Recipi-
+ent's use, modification, reproduction and distribution of the Subject Soft-
+ware or out of any representation or warranty made by Recipient.
+
+11. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the
+terms of this License.
+
+12. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable by any judicial or administrative authority having proper jurisdic-
+tion with respect thereto, such provision shall be reformed so as to achieve
+as nearly as possible the same economic effect as the original provision and
+the remainder of this License will remain in effect. This License shall be
+governed by and construed in accordance with the laws of the United States
+and the State of California as applied to agreements entered into and to be
+performed entirely within California between California residents. Any liti-
+gation relating to this License shall be subject to the exclusive jurisdic-
+tion of the Federal Courts of the Northern District of California (or, absent
+subject matter jurisdiction in such courts, the courts of the State of Cali-
+fornia), with venue lying exclusively in Santa Clara County, California, with
+the losing party responsible for costs, including without limitation, court
+costs and reasonable attorneys fees and expenses. The application of the
+United Nations Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any law or regulation that provides that the language of
+a contract shall be construed against the drafter shall not apply to this
+License.
+
+Exhibit A
+
+Copyright (c) 1994-1999 Silicon Graphics, Inc.
+
+The contents of this file are subject to the CID Font Code Public License
+Version 1.0 (the "License"). You may not use this file except in compliance
+with the License. You may obtain a copy of the License at Silicon Graphics,
+Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
+or at http://www.sgi.com/software/opensource/cid/license.html
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software (as defined in the License) is CID font code that was
+developed by Silicon Graphics, Inc. Those portions of the Subject Software
+(as defined in the License) that were created by Silicon Graphics, Inc. are
+Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
+
+[NOTE: When using this text in connection with Subject Software delivered
+solely in object code form, Recipient may replace the words "this file" with
+"this software" in both the first and second sentences.]
+
+3.6 Bitstream Vera Fonts Copyright
+
+The fonts have a generous copyright, allowing derivative works (as long as
+"Bitstream" or "Vera" are not in the names), and full redistribution (so long
+as they are not *sold* by themselves). They can be be bundled, redistributed
+and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish, dis-
+tribute, and/or sell copies of the Font Software, and to permit persons to
+whom the Font Software is furnished to do so, subject to the following condi-
+tions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and addi-
+tional glyphs or characters may be added to the Fonts, only if the fonts are
+renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDA-
+TION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the Gnome Foundation or Bitstream Inc., respectively. For
+further information, contact: fonts at gnome dot org.
+
+3.7 Bigelow & Holmes Inc and URW++ GmbH Luxi font license
+
+Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
+code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a regis-
+tered trademark of Bigelow & Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particu-
+lar the designs of glyphs or characters in the Fonts may not be modified nor
+may additional glyphs or characters be added to the Fonts. This License
+becomes null and void when the Fonts or Font Software have been modified.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
+GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+URW++ GmbH. shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Font Software without prior written
+authorization from Bigelow & Holmes Inc. and URW++ GmbH.
+
+For further information, contact:
+
+info@urwpp.de or design@bigelowandholmes.com
+
+ $Id: LICENSE,v 1.3 2004/09/03 23:41:21 kem Exp $
diff --git a/extra/xf86-video-v4l/PKGBUILD b/extra/xf86-video-v4l/PKGBUILD
new file mode 100644
index 000000000..138cfe1d0
--- /dev/null
+++ b/extra/xf86-video-v4l/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 114549 2011-03-14 09:51:09Z jgc $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-v4l
+pkgver=0.2.0
+pkgrel=7
+pkgdesc="X.org v4l video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('2251ae2a0a905764941cd7b098e85ad1'
+ '7d4d018f6bbff7e42672d1aabc75c5cf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-vesa/PKGBUILD b/extra/xf86-video-vesa/PKGBUILD
new file mode 100644
index 000000000..3e4513bb7
--- /dev/null
+++ b/extra/xf86-video-vesa/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114554 2011-03-14 09:54:08Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-vesa
+pkgver=2.3.0
+pkgrel=4
+pkgdesc="X.org vesa video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('4689b7c295d7a8d7326302dafecb812739617134')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-voodoo/PKGBUILD b/extra/xf86-video-voodoo/PKGBUILD
new file mode 100644
index 000000000..de6d6f637
--- /dev/null
+++ b/extra/xf86-video-voodoo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 114565 2011-03-14 10:01:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-voodoo
+pkgver=1.2.4
+pkgrel=3
+pkgdesc="X.org 3dfx Voodoo1/Voodoo2 2D video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.9.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7ecd232cc0b7fe507e18e08799791eefa9fdaf48')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xf86-video-xgi/PKGBUILD b/extra/xf86-video-xgi/PKGBUILD
new file mode 100644
index 000000000..65c419200
--- /dev/null
+++ b/extra/xf86-video-xgi/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 114570 2011-03-14 10:04:18Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgi
+pkgver=1.6.0
+pkgrel=2
+pkgdesc="X.org XGI video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'xf86dgaproto')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('826f14d6ba799cd2aae9f0c818f84cf8b75f1ddb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xf86-video-xgixp/PKGBUILD b/extra/xf86-video-xgixp/PKGBUILD
new file mode 100644
index 000000000..f4f89ef1e
--- /dev/null
+++ b/extra/xf86-video-xgixp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 114575 2011-03-14 10:06:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgixp
+pkgver=1.8.0
+pkgrel=2
+pkgdesc="X.org XGIXP video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('67caeaa4c746572160208fe23c7257f62cb442a3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xfburn/PKGBUILD b/extra/xfburn/PKGBUILD
new file mode 100755
index 000000000..d1af4c7c5
--- /dev/null
+++ b/extra/xfburn/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 104800 2011-01-04 23:36:33Z andyrtr $
+# Maintainer: Tobias Kieslich <tobias funnychar archlinux.org>
+# Contributor: Alois Nespor alois.nespor@gmail.com
+
+pkgname=xfburn
+pkgver=0.4.3
+pkgrel=3
+arch=('i686' 'x86_64')
+pkgdesc="a simple CD/DVD burning tool based on libburnia libraries"
+url="http://goodies.xfce.org/projects/applications/xfburn"
+license=('GPL2')
+groups=('xfce4-goodies')
+install=${pkgname}.install
+depends=('libburn>=0.7.6.pl00' 'libisofs>=0.6.28' 'libxfcegui4>=4.7.0' 'thunar-vfs>=1.1.0' 'hicolor-icon-theme'
+ 'librsvg' 'gstreamer0.10-base>=0.10.26' 'desktop-file-utils')
+makedepends=('intltool')
+source=(http://www.xfce.org/archive/src/apps/xfburn/0.4/$pkgname-$pkgver.tar.bz2)
+md5sums=('147cdc2d909e751125be16103b8dc81f')
+
+build() {
+ cd ${srcdir}/$pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --enable-gstreamer \
+ --enable-thunar-vfs \
+ --enable-dbus \
+ --enable-hal
+ make
+}
+
+package() {
+ cd ${srcdir}/$pkgname-$pkgver
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfburn/xfburn.install b/extra/xfburn/xfburn.install
new file mode 100644
index 000000000..28fdb48fb
--- /dev/null
+++ b/extra/xfburn/xfburn.install
@@ -0,0 +1,14 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/xfce-utils/PKGBUILD b/extra/xfce-utils/PKGBUILD
new file mode 100644
index 000000000..621755ab8
--- /dev/null
+++ b/extra/xfce-utils/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 108283 2011-01-30 17:27:33Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce-utils
+pkgver=4.8.1
+pkgrel=1
+pkgdesc="Utilities for Xfce"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('libxfce4ui' 'xorg-xinit' 'hicolor-icon-theme')
+makedepends=('intltool')
+optdepends=('perl: for migration scripts'
+ 'xscreensaver: for locking screen with xflock4'
+ 'gnome-screensaver: for locking screen with xflock4'
+ 'xlockmore: for locking screen with xflock4')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e39866365a45f7a1e7284b93eb4f92f0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-dbus \
+ --disable-debug \
+ --with-vendor-info=ArchLinux # --enable-gen-doc \
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce-utils/xfce-utils.install b/extra/xfce-utils/xfce-utils.install
new file mode 100644
index 000000000..c58a305e0
--- /dev/null
+++ b/extra/xfce-utils/xfce-utils.install
@@ -0,0 +1,21 @@
+post_install() {
+ cat << EOF
+NOTE
+----
+ ==> xfce can run on top of a framebuffer. However, for most users it is
+ ==> best to install xorg as an x-server. Please install either xorg-xinit
+ ==> as minimal environment or the xorg meta package.
+ pacman -S xorg-xinit
+ -- or --
+ pacman -S xorg
+EOF
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-appfinder/PKGBUILD b/extra/xfce4-appfinder/PKGBUILD
new file mode 100644
index 000000000..9eac46486
--- /dev/null
+++ b/extra/xfce4-appfinder/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 106402 2011-01-16 17:26:11Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-appfinder
+pkgver=4.8.0
+pkgrel=1
+pkgdesc="Xfce application finder"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('libxfce4ui' 'garcon' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('fb4797ef91b90d111b989e98c3e000e0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-appfinder/xfce4-appfinder.install b/extra/xfce4-appfinder/xfce4-appfinder.install
new file mode 100644
index 000000000..b7e9ea08e
--- /dev/null
+++ b/extra/xfce4-appfinder/xfce4-appfinder.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/xfce4-battery-plugin/PKGBUILD b/extra/xfce4-battery-plugin/PKGBUILD
new file mode 100644
index 000000000..62e2ae5bd
--- /dev/null
+++ b/extra/xfce4-battery-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 104733 2011-01-04 20:09:27Z andyrtr $
+# Maintainer: aurelien <aurelien@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-battery-plugin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A battery monitor plugin for the Xfce panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2696307f34f6b9630fcaaea102004e78')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-battery-plugin/xfce4-battery-plugin.install b/extra/xfce4-battery-plugin/xfce4-battery-plugin.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-battery-plugin/xfce4-battery-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-clipman-plugin/PKGBUILD b/extra/xfce4-clipman-plugin/PKGBUILD
new file mode 100644
index 000000000..3629b0725
--- /dev/null
+++ b/extra/xfce4-clipman-plugin/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 105771 2011-01-11 17:17:59Z andyrtr $
+# Maintainer: tobias <tobias at archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-clipman-plugin
+pkgver=1.1.3
+pkgrel=2
+pkgdesc="A clipboard plugin for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin"
+groups=('xfce4-goodies')
+depends=('libxfcegui4' 'xfce4-panel' 'libunique' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.1/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('2ba70c6bd710e2a18cba5add66d297dc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # fix for exo 0.5.6
+ sed -i -e "s/exo-0.3/exo-1/g" configure
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-unique \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/xfce4-clipman-plugin/xfce4-clipman-plugin.install b/extra/xfce4-clipman-plugin/xfce4-clipman-plugin.install
new file mode 100644
index 000000000..fee9e5d11
--- /dev/null
+++ b/extra/xfce4-clipman-plugin/xfce4-clipman-plugin.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/xfce4-cpufreq-plugin/PKGBUILD b/extra/xfce4-cpufreq-plugin/PKGBUILD
new file mode 100644
index 000000000..bea6bf602
--- /dev/null
+++ b/extra/xfce4-cpufreq-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 107296 2011-01-23 10:18:21Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-cpufreq-plugin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="CPU frequency plugin for the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'libxfcegui4' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('24cae9b8583cae82b715b4f72aa8e341')
+
+build() {
+ cd ${srcdir}/xfce4-cpufreq-plugin-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/xfce4-cpufreq-plugin-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-cpufreq-plugin/xfce4-cpufreq-plugin.install b/extra/xfce4-cpufreq-plugin/xfce4-cpufreq-plugin.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-cpufreq-plugin/xfce4-cpufreq-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-cpugraph-plugin/PKGBUILD b/extra/xfce4-cpugraph-plugin/PKGBUILD
new file mode 100644
index 000000000..f775fcce7
--- /dev/null
+++ b/extra/xfce4-cpugraph-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 106953 2011-01-19 20:30:45Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-cpugraph-plugin
+pkgver=1.0.1
+pkgrel=2
+pkgdesc="CPU graph plugin for the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL' 'custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'hicolor-icon-theme')
+makedepends=('intltool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('ff551087b1f61c47b8746e8687c572aa')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/xfce4-cpugraph-plugin/xfce4-cpugraph-plugin.install b/extra/xfce4-cpugraph-plugin/xfce4-cpugraph-plugin.install
new file mode 100644
index 000000000..b7e9ea08e
--- /dev/null
+++ b/extra/xfce4-cpugraph-plugin/xfce4-cpugraph-plugin.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/xfce4-datetime-plugin/PKGBUILD b/extra/xfce4-datetime-plugin/PKGBUILD
new file mode 100644
index 000000000..3d9e2a532
--- /dev/null
+++ b/extra/xfce4-datetime-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 104742 2011-01-04 20:29:21Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-datetime-plugin
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="A date and time display plugin for the Xfce panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'libxfcegui4')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('e82f51ff0e75a63e5cbd139e43e094f9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-dict/PKGBUILD b/extra/xfce4-dict/PKGBUILD
new file mode 100644
index 000000000..344d7f37d
--- /dev/null
+++ b/extra/xfce4-dict/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 108109 2011-01-29 13:43:49Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-dict
+pkgver=0.6.0
+pkgrel=1
+pkgdesc="A dictionary plugin for the Xfce panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/applications/xfce4-dict"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'hicolor-icon-theme' 'librsvg')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/apps/xfce4-dict/0.6/xfce4-dict-${pkgver}.tar.bz2)
+md5sums=('c371c5c0bbe45a2bfac336cfe01dfe01')
+provides=('xfce4-dict-plugin')
+conflicts=('xfce4-dict-plugin')
+replaces=('xfce4-dict-plugin')
+
+build() {
+ cd ${srcdir}/xfce4-dict-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/xfce4-dict-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-dict/xfce4-dict.install b/extra/xfce4-dict/xfce4-dict.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-dict/xfce4-dict.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-diskperf-plugin/PKGBUILD b/extra/xfce4-diskperf-plugin/PKGBUILD
new file mode 100644
index 000000000..11af81a49
--- /dev/null
+++ b/extra/xfce4-diskperf-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 107127 2011-01-21 14:53:20Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-diskperf-plugin
+pkgver=2.3.0
+pkgrel=1
+pkgdesc="Plugin for the Xfce4 panel displaying instant disk/partition performance"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4') # 'libxfce4ui')
+makedepends=('intltool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/2.3/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('c6ece8123c762ee203cbc6fd5450b503')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/xfce4-eyes-plugin/PKGBUILD b/extra/xfce4-eyes-plugin/PKGBUILD
new file mode 100644
index 000000000..454c329c4
--- /dev/null
+++ b/extra/xfce4-eyes-plugin/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 104745 2011-01-04 20:33:13Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-eyes-plugin
+pkgver=4.4.1
+pkgrel=1
+pkgdesc="A rolling eyes (following mouse pointer) plugin for the Xfce panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'hicolor-icon-theme')
+makedepends=('intltool' 'perlxml')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/4.4/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('dcbf6ea9035d379d168b479be0d09f14')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-eyes-plugin/xfce4-eyes-plugin.install b/extra/xfce4-eyes-plugin/xfce4-eyes-plugin.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-eyes-plugin/xfce4-eyes-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-fsguard-plugin/PKGBUILD b/extra/xfce4-fsguard-plugin/PKGBUILD
new file mode 100644
index 000000000..11202e348
--- /dev/null
+++ b/extra/xfce4-fsguard-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 104748 2011-01-04 20:38:08Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Ben <ben@benmazer.net>
+
+pkgname=xfce4-fsguard-plugin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="File system usage monitor plugin for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'hicolor-icon-theme' 'libxfcegui4')
+makedepends=('intltool')
+options=(!libtool)
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('8378f922b59a0d5a378af5e45a18c4a3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-fsguard-plugin/xfce4-fsguard-plugin.install b/extra/xfce4-fsguard-plugin/xfce4-fsguard-plugin.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-fsguard-plugin/xfce4-fsguard-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-genmon-plugin/PKGBUILD b/extra/xfce4-genmon-plugin/PKGBUILD
new file mode 100644
index 000000000..8e631a255
--- /dev/null
+++ b/extra/xfce4-genmon-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 116662 2011-03-24 17:55:38Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-genmon-plugin
+pkgver=3.3.0
+pkgrel=1
+pkgdesc="plugin that monitors customizable programs stdout for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('LGPL2.1')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-genmon-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/3.3/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7c95234dc99efc21bbf9d2b056dd21f9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-mailwatch-plugin/PKGBUILD b/extra/xfce4-mailwatch-plugin/PKGBUILD
new file mode 100644
index 000000000..234f034ad
--- /dev/null
+++ b/extra/xfce4-mailwatch-plugin/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 108113 2011-01-29 14:05:40Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Suzy Williams <suzanne.williams3@verizon.net>
+
+pkgname=xfce4-mailwatch-plugin
+pkgver=1.1.0
+pkgrel=3
+pkgdesc="A mailbox watch/check plugin for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://spurint.org/projects/xfce4-mailwatch-plugin/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'gnutls>=2.4.1' 'hicolor-icon-theme')
+makedepends=('intltool' 'xfce4-dev-tools')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://spuriousinterrupt.org/files/mailwatch/${pkgname}-${pkgver}.tar.bz2
+ xfce4-mailwatch-plugin-1.1.0-underlink.patch)
+md5sums=('f84dce86be1d7f25f169f262aaacee4e'
+ '47fe8588e3bb642e1b507a854927e6db')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # fix for panel4.8 from Fedora
+ patch -Np1 -i ${srcdir}/xfce4-mailwatch-plugin-1.1.0-underlink.patch
+ xdt-autogen
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch b/extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch
new file mode 100644
index 000000000..ada0df041
--- /dev/null
+++ b/extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin-1.1.0-underlink.patch
@@ -0,0 +1,21 @@
+--- xfce4-mailwatch-plugin-1.1.0/panel-plugin/Makefile.am 2008-08-26 03:42:36.000000000 +0100
++++ xfce4-mailwatch-plugin-1.1.0/panel-plugin/Makefile.am.new 2011-01-14 17:27:44.116199383 +0000
+@@ -50,6 +50,7 @@
+ -I$(top_srcdir)/libmailwatch-core \
+ @GTHREAD_CFLAGS@ \
+ @LIBXFCE4PANEL_CFLAGS@ \
++ @LIBXFCEGUI4_CFLAGS@ \
+ -DDATADIR=\"$(datadir)\" \
+ -DLOCALEDIR=\"$(localedir)\"
+
+@@ -60,7 +61,9 @@
+ $(top_builddir)/libmailwatch-core/libmailwatch-core.la \
+ @GTHREAD_LIBS@ \
+ @LIBXFCE4PANEL_LIBS@ \
+- @GNUTLS_LIBS@
++ @LIBXFCEGUI4_LIBS@ \
++ @GNUTLS_LIBS@ \
++ -lgcrypt
+
+ if HAVE_CYGWIN
+ xfce4_mailwatch_plugin_LDFLAGS += \
diff --git a/extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install b/extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-mailwatch-plugin/xfce4-mailwatch-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-mixer/PKGBUILD b/extra/xfce4-mixer/PKGBUILD
new file mode 100644
index 000000000..dd0e3337f
--- /dev/null
+++ b/extra/xfce4-mixer/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 111572 2011-02-27 18:15:06Z andyrtr $
+# Maintainer: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=xfce4-mixer
+pkgver=4.8.0
+pkgrel=1
+pkgdesc="The volume control plugin for the Xfce panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=("xfce4-panel>=4.8.0" 'gstreamer0.10-base>=0.10.22' 'hicolor-icon-theme')
+makedepends=('intltool')
+optdepends=('gstreamer0.10-base-plugins: to support basic audio hardware' \
+ 'gstreamer0.10-good-plugins: well supported hardware'\
+ 'gstreamer0.10-bad-plugins: not so well supported hardware'\
+ 'gstreamer0.10-ugly-plugins: might contain questionable license hardware')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3fa3a9973e18c04da26709a654e242ff')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --with-sound=alsa \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-mixer/xfce4-mixer.install b/extra/xfce4-mixer/xfce4-mixer.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-mixer/xfce4-mixer.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-mount-plugin/PKGBUILD b/extra/xfce4-mount-plugin/PKGBUILD
new file mode 100644
index 000000000..72cd37aca
--- /dev/null
+++ b/extra/xfce4-mount-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 105777 2011-01-11 18:27:59Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-mount-plugin
+pkgver=0.5.5
+pkgrel=1
+pkgdesc="plugin for the Xfce4 panel to mount and unmount volumes"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'hicolor-icon-theme')
+makedepends=('intltool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.5/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('1d237468fe23e4e8c29195d9b99c4c5d')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-mount-plugin/xfce4-mount-plugin.install b/extra/xfce4-mount-plugin/xfce4-mount-plugin.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-mount-plugin/xfce4-mount-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-mpc-plugin/PKGBUILD b/extra/xfce4-mpc-plugin/PKGBUILD
new file mode 100644
index 000000000..13a03f4e2
--- /dev/null
+++ b/extra/xfce4-mpc-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 105780 2011-01-11 18:35:22Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: aurelien <aurelien@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-mpc-plugin
+pkgver=0.3.6
+pkgrel=1
+pkgdesc="plugin to control the music player daemon from the xfce4-panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'libmpd>=0.16.1')
+makedepends=('intltool')
+options=(!libtool)
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.3/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a6366662885d803dcebd82bbb91ed3c7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-netload-plugin/PKGBUILD b/extra/xfce4-netload-plugin/PKGBUILD
new file mode 100644
index 000000000..363df6eb7
--- /dev/null
+++ b/extra/xfce4-netload-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 104754 2011-01-04 20:48:54Z andyrtr $
+# Maintainer: aurelien <aurelien@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-netload-plugin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A netload plugin for the Xfce panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'libxfcegui4' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('cab53e8cc2b9bfdf7ffd2230916ca3df')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-netload-plugin/xfce4-netload-plugin.install b/extra/xfce4-netload-plugin/xfce4-netload-plugin.install
new file mode 100644
index 000000000..b7e9ea08e
--- /dev/null
+++ b/extra/xfce4-netload-plugin/xfce4-netload-plugin.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/xfce4-notes-plugin/PKGBUILD b/extra/xfce4-notes-plugin/PKGBUILD
new file mode 100644
index 000000000..889e1ac02
--- /dev/null
+++ b/extra/xfce4-notes-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 104757 2011-01-04 20:53:16Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: Ben Mazer <contrasutra@myrealbox.com>
+
+pkgname=xfce4-notes-plugin
+pkgver=1.7.7
+pkgrel=2
+pkgdesc="A notes plugin for the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.0' 'libxfcegui4' 'libunique' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.7/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('42b924b23f2fec6a1099e9b7a87db4a3')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-notes-plugin/xfce4-notes-plugin.install b/extra/xfce4-notes-plugin/xfce4-notes-plugin.install
new file mode 100644
index 000000000..fee9e5d11
--- /dev/null
+++ b/extra/xfce4-notes-plugin/xfce4-notes-plugin.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/xfce4-notifyd/PKGBUILD b/extra/xfce4-notifyd/PKGBUILD
new file mode 100644
index 000000000..c08a9d259
--- /dev/null
+++ b/extra/xfce4-notifyd/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 108801 2011-02-03 16:49:52Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-notifyd
+pkgver=0.2.1
+pkgrel=1
+pkgdesc="notification daemon for the xfce desktop"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/applications/xfce4-notifyd"
+groups=('xfce4-goodies')
+depends=('libxfce4ui' 'hicolor-icon-theme')
+makedepends=('intltool')
+provides=('notification-daemon')
+conflicts=('notification-daemon' 'notification-daemon-xfce')
+replaces=('notification-daemon-xfce')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/0.2/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('0a63857901809887b587c73024d1089b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-notifyd/xfce4-notifyd.install b/extra/xfce4-notifyd/xfce4-notifyd.install
new file mode 100644
index 000000000..fee9e5d11
--- /dev/null
+++ b/extra/xfce4-notifyd/xfce4-notifyd.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
diff --git a/extra/xfce4-panel/PKGBUILD b/extra/xfce4-panel/PKGBUILD
new file mode 100644
index 000000000..366719419
--- /dev/null
+++ b/extra/xfce4-panel/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 111567 2011-02-27 18:09:04Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-panel
+pkgver=4.8.2
+pkgrel=1
+pkgdesc="Panel for the Xfce desktop environment"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('exo>=0.6.0' 'garcon>=0.1.5' 'libxfce4ui>=4.8.0' 'libwnck' 'hicolor-icon-theme')
+makedepends=('intltool' 'gtk-doc')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('7c5be8f7cd7966b37a71d695946e4d2b')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gio-unix \
+ --enable-gtk-doc \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-panel/xfce4-panel.install b/extra/xfce4-panel/xfce4-panel.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-panel/xfce4-panel.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-power-manager/PKGBUILD b/extra/xfce4-power-manager/PKGBUILD
new file mode 100644
index 000000000..9992fc0a4
--- /dev/null
+++ b/extra/xfce4-power-manager/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 112918 2011-03-07 18:39:50Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=xfce4-power-manager
+pkgver=1.0.10
+pkgrel=2
+pkgdesc="power manager for xfce4 desktop"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'upower' 'udisks' 'libnotify>=0.7.1' 'hicolor-icon-theme' 'librsvg')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/apps/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2
+ xfce4-power-manager-1.0.10-libnotify-0.7.patch)
+md5sums=('38cbd272eb30e36ae538d9f38858bd38'
+ 'c790f973c29654701bb0748f842be4f7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ patch -Np1 -i ${srcdir}/xfce4-power-manager-1.0.10-libnotify-0.7.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-network-manager \
+ --enable-polkit \
+ --enable-dpms \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-power-manager/xfce4-power-manager-1.0.10-libnotify-0.7.patch b/extra/xfce4-power-manager/xfce4-power-manager-1.0.10-libnotify-0.7.patch
new file mode 100644
index 000000000..60cdf27c5
--- /dev/null
+++ b/extra/xfce4-power-manager/xfce4-power-manager-1.0.10-libnotify-0.7.patch
@@ -0,0 +1,14 @@
+diff --git a/src/xfpm-notify.c b/src/xfpm-notify.c
+index c93a843..311b0fd 100644
+--- a/src/xfpm-notify.c
++++ b/src/xfpm-notify.c
+@@ -233,9 +233,6 @@ xfpm_notify_new_notification_internal (const gchar *title, const gchar *message,
+ #if !NOTIFY_CHECK_VERSION (0, 7, 0)
+ if ( icon )
+ notify_notification_attach_to_status_icon (n, icon);
+-#else
+- if ( icon )
+- notify_notification_attach_to_status_icon (n, icon);
+ #endif
+ #endif
+
diff --git a/extra/xfce4-power-manager/xfce4-power-manager.install b/extra/xfce4-power-manager/xfce4-power-manager.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-power-manager/xfce4-power-manager.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-quicklauncher-plugin/PKGBUILD b/extra/xfce4-quicklauncher-plugin/PKGBUILD
new file mode 100644
index 000000000..d783ecf24
--- /dev/null
+++ b/extra/xfce4-quicklauncher-plugin/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 104771 2011-01-04 21:40:42Z andyrtr $
+# Maintainer:
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-quicklauncher-plugin
+pkgver=1.9.4
+pkgrel=5
+pkgdesc="plugin that creates 4 little application launcher in the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'libxfcegui4')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.9/${pkgname}-${pkgver}.tar.bz2
+ xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
+ xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
+ xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
+ xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
+ xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch)
+md5sums=('299e17f196ecfa5fb018cf65abb19b56'
+ 'a7826c9f8199a2f1e914fd39b7f9e2bf'
+ '4ea4d06ab7284e78ddc4d60304f02cdf'
+ '5e8126c05def1211fb4a2a65f2812a1b'
+ '474237b205035214df1c723407251ade'
+ '9e7f789129b08c787978c7a72a55fae7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # Fedora patches
+ patch -Np0 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
+ patch -Np0 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
+ patch -Np1 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
+ patch -Np1 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
+ patch -Np0 -i ${srcdir}/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
new file mode 100644
index 000000000..907c1f23e
--- /dev/null
+++ b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-desktop-file.patch
@@ -0,0 +1,10 @@
+--- panel-plugin/quicklauncher.desktop.in.in.orig 2009-07-04 00:46:34.000000000 +0200
++++ panel-plugin/quicklauncher.desktop.in.in 2009-07-04 00:46:51.000000000 +0200
+@@ -4,4 +4,6 @@
+ _Name=Quicklauncher
+ _Comment=Program with several launchers
+ Icon=gnome-fs-executable
+-X-XFCE-Module=@INTERNAL_PLUGIN_PATH@/libquicklauncher.so
++X-XFCE-Module=quicklauncher
++X-XFCE-Module-Path=@INTERNAL_PLUGIN_PATH@
++X-XFCE-Unique=false
diff --git a/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
new file mode 100644
index 000000000..96f256770
--- /dev/null
+++ b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-missing-english-translation.patch
@@ -0,0 +1,103 @@
+diff -Nur -x '*.orig' -x '*~' xfce4-quicklauncher-plugin-1.9.4/configure xfce4-quicklauncher-plugin-1.9.4.new/configure
+--- xfce4-quicklauncher-plugin-1.9.4/configure 2007-06-27 21:07:14.000000000 +0200
++++ xfce4-quicklauncher-plugin-1.9.4.new/configure 2008-03-04 22:11:23.000000000 +0100
+@@ -21181,7 +21181,7 @@
+
+
+
+- ALL_LINGUAS="cs el eu fr gl hu ja pl ru vi"
++ ALL_LINGUAS="cs el en eu fr gl hu ja pl ru vi"
+
+
+ for ac_header in locale.h
+diff -Nur -x '*.orig' -x '*~' xfce4-quicklauncher-plugin-1.9.4/po/en.po xfce4-quicklauncher-plugin-1.9.4.new/po/en.po
+--- xfce4-quicklauncher-plugin-1.9.4/po/en.po 1970-01-01 01:00:00.000000000 +0100
++++ xfce4-quicklauncher-plugin-1.9.4.new/po/en.po 2008-03-04 22:10:58.000000000 +0100
+@@ -0,0 +1,87 @@
++# English translation of xfce4-quicklauncher-plugin.
++# Copyright (C) 2007 THE xfce4-quicklauncher-plugin'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the xfce4-quicklauncher-plugin package.
++# Jeff Bailes <thepizzaking@gmail.com>, 2007.
++# , fuzzy
++#
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: xfce4-quicklauncher-plugin\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-05-17 21:37+0200\n"
++"PO-Revision-Date: 2007-03-31 10:17+1000\n"
++"Last-Translator: Jeff Bailes <thepizzaking@gmail.com>\n"
++"Language-Team: English\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit"
++
++#: ../panel-plugin/callbacks.c:79
++msgid "Configure Quicklauncher"
++msgstr "Configure Quicklauncher"
++
++#: ../panel-plugin/callbacks.c:93
++msgid "Lines: "
++msgstr "Lines: "
++
++#: ../panel-plugin/callbacks.c:123
++msgid "Espace entre les lanceurs :"
++msgstr "Space between launchers"
++
++#: ../panel-plugin/callbacks.c:131
++msgid "afficher les tooltips"
++msgstr "Show tooltips"
++
++#: ../panel-plugin/callbacks.c:135
++msgid "afficher les labels"
++msgstr "Show labels"
++
++#: ../panel-plugin/callbacks.c:216
++msgid "icone"
++msgstr "icon"
++
++#: ../panel-plugin/callbacks.c:222
++msgid "commande"
++msgstr "command"
++
++#: ../panel-plugin/callbacks.c:228
++msgid "nom"
++msgstr "name"
++
++#: ../panel-plugin/callbacks.c:327
++msgid "Open icon"
++msgstr "Open icon"
++
++#: ../panel-plugin/main.c:163 ../panel-plugin/quicklauncher.desktop.in.in.h:2
++msgid "Quicklauncher"
++msgstr "Quicklauncher"
++
++#: ../panel-plugin/main.c:166
++msgid "Allows you to add launchers easily and display them on many lines."
++msgstr "Allows you to add launchers easily and display them on many lines."
++
++#: ../panel-plugin/main.c:168
++msgid "Other plugins available here"
++msgstr "Other plugins available here"
++
++#: ../panel-plugin/main.c:320
++msgid "Lock"
++msgstr "Lock"
++
++#: ../panel-plugin/main.c:323
++msgid "Parameters"
++msgstr "Parameters"
++
++#: ../panel-plugin/main.c:326
++msgid "Applications"
++msgstr "Applications"
++
++#: ../panel-plugin/main.c:329
++msgid "Help"
++msgstr "Help"
++
++#: ../panel-plugin/quicklauncher.desktop.in.in.h:1
++msgid "Program with several launchers"
++msgstr "Program with several launchers"
++
diff --git a/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
new file mode 100644
index 000000000..9845ce122
--- /dev/null
+++ b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-fix-multiscreen.patch
@@ -0,0 +1,27 @@
+--- panel-plugin/main.c.org 2008-05-13 09:29:29.000000000 -0600
++++ panel-plugin/main.c 2008-05-13 09:29:33.000000000 -0600
+@@ -148,6 +148,7 @@
+ t_qck_launcher_opt_dlg* dlg;
+ xfce_panel_plugin_block_menu(plugin);
+ dlg = create_qck_launcher_dlg();
++ gtk_window_set_screen (GTK_WINDOW (dlg->dialog), gtk_widget_get_screen (plugin));
+ qck_launcher_opt_dlg_set_quicklauncher(quicklauncher);
+ gtk_dialog_run(GTK_DIALOG(dlg->dialog));
+ xfce_panel_plugin_unblock_menu(plugin);
+@@ -160,6 +161,7 @@
+ GtkWidget *about;
+ const gchar* authors[2] = {"Bountykiller <masse_nicolas@yahoo.fr>", NULL};
+ about = gtk_about_dialog_new();
++ gtk_window_set_screen (GTK_WINDOW (about), gtk_widget_get_screen (plugin));
+ gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), _("Quicklauncher"));
+ gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), NULL);
+ gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(about), (const gchar**) authors);
+@@ -461,7 +463,7 @@
+ if(launcher->quicklauncher->_last_zoomed_launcher == launcher)
+ {
+ g_return_val_if_fail(launcher->clicked_img, FALSE);
+- xfce_exec(launcher->command, FALSE, FALSE, NULL);
++ xfce_exec_on_screen(gtk_widget_get_screen (box), launcher->command, FALSE, FALSE, NULL);
+ gtk_image_set_from_pixbuf (GTK_IMAGE(launcher->image), launcher->def_img);
+ }
+ else
diff --git a/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
new file mode 100644
index 000000000..85dd21729
--- /dev/null
+++ b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-save-settings.patch
@@ -0,0 +1,12 @@
+Index: xfce4-quicklauncher-plugin-1.9.4/panel-plugin/main.c
+===================================================================
+--- xfce4-quicklauncher-plugin-1.9.4/panel-plugin/main.c (révision 3779)
++++ xfce4-quicklauncher-plugin-1.9.4/panel-plugin/main.c (révision 3780)
+@@ -151,6 +151,7 @@
+ gtk_window_set_screen (GTK_WINDOW (dlg->dialog), gtk_widget_get_screen (plugin));
+ qck_launcher_opt_dlg_set_quicklauncher(quicklauncher);
+ gtk_dialog_run(GTK_DIALOG(dlg->dialog));
++ quicklauncher_save(plugin, quicklauncher);
+ xfce_panel_plugin_unblock_menu(plugin);
+ }
+
diff --git a/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch
new file mode 100644
index 000000000..8314d7a3c
--- /dev/null
+++ b/extra/xfce4-quicklauncher-plugin/xfce4-quicklauncher-plugin-1.9.4-xfce4-settings-manager.patch
@@ -0,0 +1,11 @@
+--- panel-plugin/main.c.orig 2009-09-09 21:15:01.000000000 +0200
++++ panel-plugin/main.c 2009-09-09 21:23:12.000000000 +0200
+@@ -320,7 +320,7 @@
+ launcher = launcher_new(_("Lock"), "xflock4", XFCE_ICON_CATEGORY_SYSTEM,
+ NULL, quicklauncher);
+ quicklauncher_add_element(quicklauncher, launcher);
+- launcher = launcher_new(_("Parameters"),"xfce-setting-show", XFCE_ICON_CATEGORY_SETTINGS,
++ launcher = launcher_new(_("Parameters"),"xfce4-settings-manager", XFCE_ICON_CATEGORY_SETTINGS,
+ NULL, quicklauncher);
+ quicklauncher_add_element(quicklauncher, launcher);
+ launcher = launcher_new(_("Applications"), "xfce4-appfinder", XFCE_ICON_CATEGORY_UTILITY,
diff --git a/extra/xfce4-screenshooter/PKGBUILD b/extra/xfce4-screenshooter/PKGBUILD
new file mode 100644
index 000000000..4db623812
--- /dev/null
+++ b/extra/xfce4-screenshooter/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 104774 2011-01-04 21:47:46Z andyrtr $
+# Maintainer: tobias <tobias funnychar archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-screenshooter
+pkgver=1.7.9
+pkgrel=2
+pkgdesc="plugin that makes screenshots for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://goodies.xfce.org/projects/applications/xfce4-screenshooter"
+groups=('xfce4-goodies')
+#depends=('xfce4-panel' 'libxfcegui4' 'libxfce4ui' 'exo' 'libsoup' 'hicolor-icon-theme')
+depends=('xfce4-panel' 'libxfcegui4' 'libsoup' 'hicolor-icon-theme')
+makedepends=('intltool')
+install=${pkgname}.install
+options=('!libtool')
+source=(http://archive.xfce.org/src/apps/${pkgname}/1.7/${pkgname}-${pkgver}.tar.bz2
+ xfce4-screenshooter-1.7.9-dsofix.patch
+ fix_segfault.diff)
+conflicts=('xfce4-screenshooter-plugin')
+replaces=('xfce4-screenshooter-plugin')
+md5sums=('c01d1cf3830bf8d60e09c0cdd223034c'
+ '355a7d005bf9200f5a5577f0bc901945'
+ '794d7e0ff18cad369bd50a78e883f986')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i ${srcdir}/xfce4-screenshooter-1.7.9-dsofix.patch
+ patch -Np1 -i ${srcdir}/fix_segfault.diff
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-screenshooter/fix_segfault.diff b/extra/xfce4-screenshooter/fix_segfault.diff
new file mode 100644
index 000000000..e2a2f3d95
--- /dev/null
+++ b/extra/xfce4-screenshooter/fix_segfault.diff
@@ -0,0 +1,17 @@
+--- xfce4-screenshooter-1.7.9/lib/screenshooter-utils.c.orig 2010-01-02 12:42:24.000000000 +0100
++++ xfce4-screenshooter-1.7.9/lib/screenshooter-utils.c 2010-05-20 22:40:38.347861374 +0200
+@@ -94,11 +94,11 @@
+ g_free (title);
+ title =
+ g_strdup (xfce_rc_read_entry (rc, "title", _("Screenshot")));
+- }
+
+- TRACE ("Close the rc file");
++ TRACE ("Close the rc file");
+
+- xfce_rc_close (rc);
++ xfce_rc_close (rc);
++ }
+ }
+
+ /* And set the sd values */
diff --git a/extra/xfce4-screenshooter/xfce4-screenshooter-1.7.9-dsofix.patch b/extra/xfce4-screenshooter/xfce4-screenshooter-1.7.9-dsofix.patch
new file mode 100644
index 000000000..a142df822
--- /dev/null
+++ b/extra/xfce4-screenshooter/xfce4-screenshooter-1.7.9-dsofix.patch
@@ -0,0 +1,11 @@
+--- xfce4-screenshooter-1.7.9.orig/Makefile.in 2010-02-07 14:45:15.000000000 +0100
++++ xfce4-screenshooter-1.7.9/Makefile.in 2010-02-16 23:57:31.000000000 +0100
+@@ -282,7 +282,7 @@
+ INTLTOOL_PERL = @INTLTOOL_PERL@
+ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+ LD = @LD@
+-LDFLAGS = @LDFLAGS@
++LDFLAGS = @LDFLAGS@ -lm -lX11
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
diff --git a/extra/xfce4-screenshooter/xfce4-screenshooter.install b/extra/xfce4-screenshooter/xfce4-screenshooter.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-screenshooter/xfce4-screenshooter.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-sensors-plugin/PKGBUILD b/extra/xfce4-sensors-plugin/PKGBUILD
new file mode 100644
index 000000000..3971a7d66
--- /dev/null
+++ b/extra/xfce4-sensors-plugin/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 112922 2011-03-07 18:49:40Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Merk Matthias <macem@chello.at>
+
+pkgname=xfce4-sensors-plugin
+pkgver=1.0.0
+pkgrel=4
+pkgdesc="A lm_sensors plugin for the Xfce panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'lm_sensors' 'libnotify>=0.7.1' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'hddtemp>=0.3.beta15.45-2' 'gnu-netcat' 'xfce4-dev-tools')
+optdepends=('gnu-netcat: for hddtemp access')
+options=(!libtool)
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2
+ xfce4-sensors-plugin-1.0.0-underlink.patch
+ xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch)
+md5sums=('74d83628246536d575f954c76724982b'
+ 'f0295e3a7c6beb267355f64fc0ed44d5'
+ 'b5e9013de01cd8f2b4a72c8f052d2c37')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # panel 4.8 patch from http://bugzilla.xfce.org/show_bug.cgi?id=7095
+ patch -Np1 -i ${srcdir}/xfce4-sensors-plugin-1.0.0-underlink.patch
+
+ patch -Np1 -i ${srcdir}/xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch
+
+ xdt-autogen
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --with-pathhddtemp=/usr/sbin/hddtemp \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch b/extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch
new file mode 100644
index 000000000..d2b5a2926
--- /dev/null
+++ b/extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-libnotify-0.7.patch
@@ -0,0 +1,25 @@
+diff -dur xfce4-sensors-plugin-1.0.0.orig/lib/hddtemp.c xfce4-sensors-plugin-1.0.0/lib/hddtemp.c
+--- xfce4-sensors-plugin-1.0.0.orig/lib/hddtemp.c 2010-03-27 16:11:48.000000000 +0100
++++ xfce4-sensors-plugin-1.0.0/lib/hddtemp.c 2010-11-06 20:50:11.717022222 +0100
+@@ -102,7 +102,7 @@
+ if (!notify_is_initted())
+ notify_init(PACKAGE); /* NOTIFY_APPNAME */
+
+- nn = notify_notification_new (summary, body, icon, NULL);
++ nn = notify_notification_new (summary, body, icon);
+ /* FIXME: Use channels or propagate private object or use static global variable */
+ //notify_notification_add_action (nn,
+ //"confirmed",
+diff -dur xfce4-sensors-plugin-1.0.0.orig/lib/sensors-interface.c xfce4-sensors-plugin-1.0.0/lib/sensors-interface.c
+--- xfce4-sensors-plugin-1.0.0.orig/lib/sensors-interface.c 2010-03-27 16:11:48.000000000 +0100
++++ xfce4-sensors-plugin-1.0.0/lib/sensors-interface.c 2010-11-06 20:50:24.360007993 +0100
+@@ -105,7 +105,7 @@
+ if (!notify_is_initted())
+ notify_init(PACKAGE); /* NOTIFY_APPNAME */
+
+- nn = notify_notification_new(summary, body, icon, NULL);
++ nn = notify_notification_new(summary, body, icon);
+ notify_notification_show(nn, &error);
+ #else
+ DBG("%s\n%s", summary, body);
+
diff --git a/extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-underlink.patch b/extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-underlink.patch
new file mode 100644
index 000000000..2a19d1d8b
--- /dev/null
+++ b/extra/xfce4-sensors-plugin/xfce4-sensors-plugin-1.0.0-underlink.patch
@@ -0,0 +1,36 @@
+--- xfce4-sensors-plugin-1.0.0/panel-plugin/Makefile.am 2011-01-14 15:40:24.065537723 +0000
++++ xfce4-sensors-plugin-1.0.0/panel-plugin/Makefile.am.new 2011-01-14 15:41:48.248960397 +0000
+@@ -20,6 +20,7 @@
+
+ xfce4_sensors_plugin_CFLAGS = \
+ @LIBXFCE4PANEL_CFLAGS@ \
++ @LIBXFCEGUI4_CFLAGS@ \
+ @PLATFORM_CFLAGS@ \
+ -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
+ @LIBSENSORS_CFLAGS@
+@@ -30,6 +31,7 @@
+ xfce4_sensors_plugin_LDFLAGS = \
+ $(top_builddir)/lib/libxfce4sensors.la \
+ @LIBXFCE4PANEL_LIBS@ \
++ @LIBXFCEGUI4_LIBS@ \
+ @SOLLIBS@ \
+ @LIBSENSORS_LDFLAGS@ \
+ @LIBM@
+--- xfce4-sensors-plugin-1.0.0/src/Makefile.am 2009-11-06 11:02:11.000000000 +0000
++++ xfce4-sensors-plugin-1.0.0/src/Makefile.am.new 2011-01-14 16:19:09.777636193 +0000
+@@ -27,6 +27,7 @@
+ -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
+ @LIBSENSORS_CFLAGS@ \
+ @LIBXFCE4UTIL_CFLAGS@ \
++ @LIBXFCE4PANEL_CFLAGS@ \
+ @LIBXFCEGUI4_CFLAGS@
+
+ # @GTK_CFLAGS@ \
+@@ -41,6 +42,7 @@
+ $(top_builddir)/lib/libxfce4sensors.la \
+ @LIBSENSORS_LDFLAGS@ \
+ @LIBXFCE4UTIL_LIBS@ \
++ @LIBXFCE4PANEL_LIBS@ \
+ @LIBXFCEGUI4_LIBS@
+
+ # @GTK_LIBS@ \
diff --git a/extra/xfce4-sensors-plugin/xfce4-sensors-plugin.install b/extra/xfce4-sensors-plugin/xfce4-sensors-plugin.install
new file mode 100644
index 000000000..17ca8f78a
--- /dev/null
+++ b/extra/xfce4-sensors-plugin/xfce4-sensors-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/xfce4-session/PKGBUILD b/extra/xfce4-session/PKGBUILD
new file mode 100644
index 000000000..048eace64
--- /dev/null
+++ b/extra/xfce4-session/PKGBUILD
@@ -0,0 +1,62 @@
+# $Id: PKGBUILD 109973 2011-02-14 17:56:04Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfce4-session
+pkgver=4.8.1
+pkgrel=1
+pkgdesc="A session manager for Xfce"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+ # keep xorg-server-utils for https://bugs.archlinux.org/task/21096 'xorg-server-utils'
+ # upower and consolekit for reboot/shutdown/hibernate/suspend
+depends=('xfce4-panel' 'libwnck' 'xorg-iceauth' 'upower' 'consolekit' 'hicolor-icon-theme' )
+makedepends=('pkgconfig' 'intltool')
+optdepends=('fortune-mod: for xfce4-tips')
+replaces=('xfce4-toys')
+backup=(etc/polkit-1/localauthority/50-local.d/org.freedesktop.consolekit.pkla
+ etc/polkit-1/localauthority/50-local.d/org.freedesktop.upower.pkla)
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2
+ org.freedesktop.consolekit.pkla
+ org.freedesktop.upower.pkla)
+md5sums=('478080ff666fdd36786a243829663efd'
+ '2e2519950d8c591dc9440ed8957a49ed'
+ '5fa270637b5e685f033863d8664795a2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # git fixes
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-hal \
+ --disable-gnome \
+ --disable-libgnome-keyring \
+ --disable-legacy-sm \
+ --enable-session-screenshots \
+ --enable-upower \
+ --enable-consolekit \
+ --enable-polkit \
+ --enable-panel-plugin \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # install polkit/consolekit permission file needed for usage without a display manager
+ install -dm700 ${pkgdir}/etc/polkit-1/localauthority
+ install -dm755 ${pkgdir}/etc/polkit-1/localauthority/50-local.d
+ install -m644 ${srcdir}/org.freedesktop.consolekit.pkla ${pkgdir}/etc/polkit-1/localauthority/50-local.d/
+ install -m644 ${srcdir}/org.freedesktop.upower.pkla ${pkgdir}/etc/polkit-1/localauthority/50-local.d/
+}
+
diff --git a/extra/xfce4-session/org.freedesktop.consolekit.pkla b/extra/xfce4-session/org.freedesktop.consolekit.pkla
new file mode 100644
index 000000000..7f1d74ff6
--- /dev/null
+++ b/extra/xfce4-session/org.freedesktop.consolekit.pkla
@@ -0,0 +1,31 @@
+[Local restart]
+#Identity=unix-user: your_username
+Identity=unix-group:power
+Action=org.freedesktop.consolekit.system.restart
+ResultAny=yes
+ResultInactive=no
+ResultActive=yes
+
+[Local shutdown]
+#Identity=unix-user: your_username
+Identity=unix-group:power
+Action=org.freedesktop.consolekit.system.stop
+ResultAny=yes
+ResultInactive=no
+ResultActive=yes
+
+[Local restart - multiple]
+#Identity=unix-user: your_username
+Identity=unix-group:power
+Action=org.freedesktop.consolekit.system.restart-multiple-users
+ResultAny=yes
+ResultInactive=no
+ResultActive=yes
+
+[Local shutdown - multiple]
+#Identity=unix-user: your_username
+Identity=unix-group:power
+Action=org.freedesktop.consolekit.system.stop-multiple-users
+ResultAny=yes
+ResultInactive=no
+ResultActive=yes
diff --git a/extra/xfce4-session/org.freedesktop.upower.pkla b/extra/xfce4-session/org.freedesktop.upower.pkla
new file mode 100644
index 000000000..52c74f892
--- /dev/null
+++ b/extra/xfce4-session/org.freedesktop.upower.pkla
@@ -0,0 +1,15 @@
+[Local hibernate]
+#Identity=unix-user: your_username
+Identity=unix-group:power
+Action=org.freedesktop.upower.hibernate
+ResultAny=yes
+ResultInactive=no
+ResultActive=yes
+
+[Local suspend]
+#Identity=unix-user: your_username
+Identity=unix-group:power
+Action=org.freedesktop.upower.suspend
+ResultAny=yes
+ResultInactive=no
+ResultActive=yes
diff --git a/extra/xfce4-session/xfce4-session.install b/extra/xfce4-session/xfce4-session.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-session/xfce4-session.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-settings/PKGBUILD b/extra/xfce4-settings/PKGBUILD
new file mode 100644
index 000000000..9758849a8
--- /dev/null
+++ b/extra/xfce4-settings/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 112925 2011-03-07 18:53:16Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+
+pkgname=xfce4-settings
+pkgver=4.8.1
+pkgrel=2
+pkgdesc="Settings manager for xfce"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('exo>=0.6.0' 'libxfce4ui' 'libnotify>=0.7.1' 'libxklavier' 'tango-icon-theme' 'gnome-icon-theme' 'gtk-engines' 'gtk-xfce-engine')
+makedepends=('intltool')
+optdepends=('libcanberra: for sound control')
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2
+ xfce4-settings-4.6.0.patch)
+md5sums=('0097476baadcc9bc9841d6b8e687b8eb'
+ '3046732e5d73c9939e7674602eadb1e2')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # enable Tango icon theme, clearlooks theme and font hinting by default(taken from Fedora)
+ patch -Np1 -i ${srcdir}/xfce4-settings-4.6.0.patch || return 1
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-xrandr \
+ --enable-xcursor \
+ --enable-libnotify \
+ --enable-libxklavier \
+ --enable-pluggable-dialogs \
+ --enable-sound-settings \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-settings/xfce4-settings-4.6.0.patch b/extra/xfce4-settings/xfce4-settings-4.6.0.patch
new file mode 100644
index 000000000..08cd80421
--- /dev/null
+++ b/extra/xfce4-settings/xfce4-settings-4.6.0.patch
@@ -0,0 +1,18 @@
+diff -Nur xfce4-settings-4.6.0.orig/xfsettingsd/xsettings.xml xfce4-settings-4.6.0/xfsettingsd/xsettings.xml
+--- xfce4-settings-4.6.0.orig/xfsettingsd/xsettings.xml 2009-02-20 10:12:35.000000000 -0700
++++ xfce4-settings-4.6.0/xfsettingsd/xsettings.xml 2009-04-16 15:25:44.000000000 -0600
+@@ -2,10 +2,12 @@
+
+ <channel name="xsettings" version="1.0">
+ <property name="Net" type="empty">
+- <property name="ThemeName" type="string" value="Xfce"/>
+- <property name="IconThemeName" type="string" value="Rodent"/>
++ <property name="ThemeName" type="string" value="Clearlooks"/>
++ <property name="IconThemeName" type="string" value="Tango"/>
+ </property>
+ <property name="Xft" type="empty">
+ <property name="DPI" type="int" value="-1"/>
++ <property name="Antialias" type="int" value="1"/>
++ <property name="HintStyle" type="string" value="hintfull"/>
+ </property>
+ </channel>
diff --git a/extra/xfce4-smartbookmark-plugin/0001-Fix-problems-with-plugin-and-4.8-panel.patch b/extra/xfce4-smartbookmark-plugin/0001-Fix-problems-with-plugin-and-4.8-panel.patch
new file mode 100644
index 000000000..c23e8ec78
--- /dev/null
+++ b/extra/xfce4-smartbookmark-plugin/0001-Fix-problems-with-plugin-and-4.8-panel.patch
@@ -0,0 +1,37 @@
+From b1922538b26f9929bcd43df8728bf33afe06fbef Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Thu, 27 Jan 2011 22:29:16 +0100
+Subject: [PATCH] Fix problems with plugin and 4.8 panel.
+
+---
+ configure.ac | 2 +-
+ src/smartbookmark.desktop.in.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1ba88d4..cb344f5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -25,7 +25,7 @@ XDT_I18N([ca cs en_GB eu fr hu it pl pt_PT sq zh_TW])
+ dnl Check for required packages
+ XDT_CHECK_LIBX11_REQUIRE()
+ XDT_CHECK_PACKAGE([GDK], [gdk-2.0], [2.0])
+-XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfce4panel-1.0], [4.2])
++XDT_CHECK_PACKAGE([LIBXFCEGUI4], [libxfcegui4-1.0], [4.2])
+ XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.3.20])
+
+ XDT_FEATURE_DEBUG()
+diff --git a/src/smartbookmark.desktop.in.in b/src/smartbookmark.desktop.in.in
+index 83464ff..7bafece 100644
+--- a/src/smartbookmark.desktop.in.in
++++ b/src/smartbookmark.desktop.in.in
+@@ -4,5 +4,5 @@ Encoding=UTF-8
+ _Name=SmartBookmark
+ _Comment=Query websites from the Xfce panel
+ Icon=gtk-preferences
+-X-XFCE-Module=@INTERNAL_PLUGIN_PATH@/libsmartbookmark.so
++X-XFCE-Module=smartbookmark
+ X-XFCE-Unique=false
+--
+1.7.3.5
+
diff --git a/extra/xfce4-smartbookmark-plugin/PKGBUILD b/extra/xfce4-smartbookmark-plugin/PKGBUILD
new file mode 100644
index 000000000..8493b93ea
--- /dev/null
+++ b/extra/xfce4-smartbookmark-plugin/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 108103 2011-01-29 13:18:03Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-smartbookmark-plugin
+pkgver=0.4.2
+pkgrel=9
+pkgdesc="plugin for the Xfce4 panel that let you quicksearch from selected websites"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4')
+makedepends=('intltool' 'libxt' 'xfce4-dev-tools')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.4/${pkgname}-${pkgver}.tar.gz
+ xfce4-smartbookmark-plugin-archlinux.patch
+ 0001-Fix-problems-with-plugin-and-4.8-panel.patch)
+md5sums=('284e26595637dd2e900b75534372496b'
+ '323ac898cfcfdb078f67f9ecd1905aec'
+ '6dc220fc41cd21678aad62c80a4c622f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # fix panel4.8 http://bugzilla.xfce.org/show_bug.cgi
+ patch -Np1 -i ${srcdir}/0001-Fix-problems-with-plugin-and-4.8-panel.patch
+ patch -Np0 -i ${srcdir}/xfce4-smartbookmark-plugin-archlinux.patch
+ xdt-autogen
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-smartbookmark-plugin/xfce4-smartbookmark-plugin-archlinux.patch b/extra/xfce4-smartbookmark-plugin/xfce4-smartbookmark-plugin-archlinux.patch
new file mode 100644
index 000000000..45c9ad42e
--- /dev/null
+++ b/extra/xfce4-smartbookmark-plugin/xfce4-smartbookmark-plugin-archlinux.patch
@@ -0,0 +1,24 @@
+--- src/smartbookmark.c.redhat 2006-12-18 02:06:21.000000000 +0100
++++ src/smartbookmark.c 2006-12-18 02:11:33.000000000 +0100
+@@ -197,8 +197,8 @@
+ box = gtk_vbox_new(FALSE, 0);
+
+ /* default options */
+- search->url = "http://bugs.debian.org/";
+- search->label_text = "BTS";
++ search->url = "http://bugs.archlinux.org/";
++ search->label_text = "ArchBug #";
+ search->size = 5;
+ search->hide_label = FALSE;
+ /* read config file options */
+@@ -269,8 +269,8 @@
+ if( (rcfile = xfce_rc_simple_open(filename, TRUE) ))
+ {
+ xfce_rc_set_group(rcfile, NULL);
+- search->url = g_strdup(xfce_rc_read_entry(rcfile,"url","http://bugs.debian.org/"));
+- search->label_text = g_strdup(xfce_rc_read_entry(rcfile,"value","DBS"));
++ search->url = g_strdup(xfce_rc_read_entry(rcfile,"url","http://bugs.archlinux.org/"));
++ search->label_text = g_strdup(xfce_rc_read_entry(rcfile,"value","ArchBug #"));
+ search->size = xfce_rc_read_int_entry(rcfile, "size", 5);
+ search->hide_label = xfce_rc_read_bool_entry(rcfile, "hidelabel", FALSE);
+ }
diff --git a/extra/xfce4-systemload-plugin/PKGBUILD b/extra/xfce4-systemload-plugin/PKGBUILD
new file mode 100644
index 000000000..a499ab317
--- /dev/null
+++ b/extra/xfce4-systemload-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 104779 2011-01-04 21:58:54Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=xfce4-systemload-plugin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A system load plugin for the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.7.4' 'libxfcegui4')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('da4f0e8bfb57e18fe3e3e56507a681f7')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/xfce4-systemload-plugin/missing_tooltip.diff b/extra/xfce4-systemload-plugin/missing_tooltip.diff
new file mode 100644
index 000000000..96f5c1714
--- /dev/null
+++ b/extra/xfce4-systemload-plugin/missing_tooltip.diff
@@ -0,0 +1,21 @@
+--- panel-plugin/systemload.c 2007-01-17 18:01:09.000000000 +0000
++++ panel-plugin/systemload.c.new 2009-05-14 17:17:24.001076632 +0000
+@@ -315,11 +315,18 @@
+ {
+ int count;
+ t_global_monitor *global;
++ GtkSettings *settings;
+
+ tooltips = gtk_tooltips_new ();
+ g_object_ref (tooltips);
+ gtk_object_sink (GTK_OBJECT (tooltips));
+
++ /* reduce the default tooltip timeout to be smaller than the update interval otherwise
++ * we won't see tooltips on GTK 2.16 or newer */
++ settings = gtk_settings_get_default();
++ if (g_object_class_find_property(G_OBJECT_GET_CLASS(settings), "gtk-tooltip-timeout"))
++ g_object_set(settings, "gtk-tooltip-timeout", UPDATE_TIMEOUT - 10, NULL);
++
+ global = g_new(t_global_monitor, 1);
+ global->plugin = plugin;
+ global->timeout_id = 0;
diff --git a/extra/xfce4-taskmanager/PKGBUILD b/extra/xfce4-taskmanager/PKGBUILD
new file mode 100644
index 000000000..477abe743
--- /dev/null
+++ b/extra/xfce4-taskmanager/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 85565 2010-07-15 21:51:22Z andyrtr $
+# Maintainer:
+
+pkgname=xfce4-taskmanager
+pkgver=1.0.0
+pkgrel=2
+pkgdesc="Easy to use task manager"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://goodies.xfce.org/projects/applications/xfce4-taskmanager"
+groups=('xfce4-goodies')
+depends=('libwnck')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/apps/${pkgname}/1.0/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('cd205366ae771d2cbe72b5ca7b1257b0')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ make DESTDIR=${startdir}/pkg install
+}
diff --git a/extra/xfce4-time-out-plugin/PKGBUILD b/extra/xfce4-time-out-plugin/PKGBUILD
new file mode 100755
index 000000000..119084172
--- /dev/null
+++ b/extra/xfce4-time-out-plugin/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 104784 2011-01-04 22:25:16Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Abhishek Dasgupta <abhidg@gmail.com>
+
+pkgname=xfce4-time-out-plugin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Take a break from your computer with this plugin for XFCE4."
+arch=(i686 x86_64)
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+license=('GPL')
+depends=('xfce4-panel>=4.7.0' 'libxfcegui4' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/$pkgname/1.0/$pkgname-$pkgver.tar.bz2)
+md5sums=('ef50a3fd45c169943acc8af93604d9fd')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/extra/xfce4-time-out-plugin/xfce4-time-out-plugin.install b/extra/xfce4-time-out-plugin/xfce4-time-out-plugin.install
new file mode 100755
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfce4-time-out-plugin/xfce4-time-out-plugin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-timer-plugin/PKGBUILD b/extra/xfce4-timer-plugin/PKGBUILD
new file mode 100644
index 000000000..97abd1269
--- /dev/null
+++ b/extra/xfce4-timer-plugin/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 108093 2011-01-29 12:51:59Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-timer-plugin
+pkgver=0.6.1
+pkgrel=1
+pkgdesc="plugin to track time for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-timer-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.6/${pkgname}-${pkgver}.tar.bz2
+ panel48.patch)
+md5sums=('ba5ae0e25f69517338f74a27fbaf4ca2'
+ 'fc9444aa98d7ef9c61d97dbd9f47e082')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # patch from git master
+ patch -Np1 -i ${srcdir}/panel48.patch
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/ \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-timer-plugin/panel48.patch b/extra/xfce4-timer-plugin/panel48.patch
new file mode 100644
index 000000000..056023712
--- /dev/null
+++ b/extra/xfce4-timer-plugin/panel48.patch
@@ -0,0 +1,39 @@
+From 03ff202f818fe3f075a6c864ab688b57b1bb1cb4 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Thu, 27 Jan 2011 21:18:45 +0000
+Subject: Fix segfault when creating plugin in 4.8 panel.
+
+Used invalid function type to construct the plugin.
+---
+diff --git a/src/xfcetimer.c b/src/xfcetimer.c
+index c27d37a..de7bd2b 100644
+--- a/src/xfcetimer.c
++++ b/src/xfcetimer.c
+@@ -42,7 +42,7 @@
+
+ #include "xfcetimer.h"
+
+-static gboolean create_plugin_control (XfcePanelPlugin *plugin);
++static void create_plugin_control (XfcePanelPlugin *plugin);
+ XFCE_PANEL_PLUGIN_REGISTER_EXTERNAL(create_plugin_control);
+
+ void make_menu(plugin_data *pd);
+@@ -1366,7 +1366,7 @@ static void plugin_create_options (XfcePanelPlugin *plugin,plugin_data *pd) {
+ *
+ * Returns %TRUE on success, %FALSE on failure.
+ **/
+-static gboolean
++static void
+ create_plugin_control (XfcePanelPlugin *plugin)
+ {
+
+@@ -1461,7 +1461,6 @@ create_plugin_control (XfcePanelPlugin *plugin)
+ xfce_panel_plugin_menu_show_configure (plugin);
+ g_signal_connect (plugin, "configure-plugin",
+ G_CALLBACK (plugin_create_options), pd);
+- return(TRUE);
+ }
+
+
+--
+cgit v0.8.3.4
diff --git a/extra/xfce4-verve-plugin/PKGBUILD b/extra/xfce4-verve-plugin/PKGBUILD
new file mode 100644
index 000000000..1c1586a0e
--- /dev/null
+++ b/extra/xfce4-verve-plugin/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 104787 2011-01-04 22:36:49Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-verve-plugin
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="command line plugin Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4')
+makedepends=('intltool')
+replaces=('verve-plugin')
+source=(http://archive.xfce.org/src/panel-plugins/$pkgname/1.0/$pkgname-$pkgver.tar.bz2)
+md5sums=('ed7039c40d6e560ed8bcf9a324d2ae86')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-wavelan-plugin/PKGBUILD b/extra/xfce4-wavelan-plugin/PKGBUILD
new file mode 100644
index 000000000..69976a7b2
--- /dev/null
+++ b/extra/xfce4-wavelan-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 105584 2011-01-10 18:02:21Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-wavelan-plugin
+pkgver=0.5.6
+pkgrel=1
+pkgdesc="plugin to monitor wifi connectivity for the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.5/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('b23a4c9c2a206242ee4db8186dd01801')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/xfce4-weather-plugin/PKGBUILD b/extra/xfce4-weather-plugin/PKGBUILD
new file mode 100644
index 000000000..fb57ce0f3
--- /dev/null
+++ b/extra/xfce4-weather-plugin/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 108785 2011-02-03 12:45:05Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Suzy Williams <suzanne.williams3@verizon.net>
+
+pkgname=xfce4-weather-plugin
+pkgver=0.7.4
+pkgrel=1
+pkgdesc="A weather plugin for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel>=4.8.0' 'libxfcegui4' 'libxml2' 'hicolor-icon-theme')
+makedepends=('intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('03c972d13eba5cd226432ff66e3ff282')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-weather-plugin/xfce4-weather-plugin.install b/extra/xfce4-weather-plugin/xfce4-weather-plugin.install
new file mode 100644
index 000000000..b0b7f29d1
--- /dev/null
+++ b/extra/xfce4-weather-plugin/xfce4-weather-plugin.install
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfce4-xfapplet-plugin/PKGBUILD b/extra/xfce4-xfapplet-plugin/PKGBUILD
new file mode 100644
index 000000000..8ff2ccebd
--- /dev/null
+++ b/extra/xfce4-xfapplet-plugin/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 105796 2011-01-11 20:47:13Z andyrtr $
+# Maintainer:
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-xfapplet-plugin
+pkgver=0.1.0
+pkgrel=7
+pkgdesc="plugin that allows to use gnome applets in the Xfce4 panel"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://xfce-goodies.berlios.de/"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'gnome-panel' 'gnome-panel-bonobo')
+makedepends=('')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.1/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('6a06c44b18a97626f44a240ad3bc3244')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/ \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfce4-xkb-plugin/PKGBUILD b/extra/xfce4-xkb-plugin/PKGBUILD
new file mode 100644
index 000000000..2cabd66df
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 107269 2011-01-22 22:04:45Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
+
+pkgname=xfce4-xkb-plugin
+pkgver=0.5.3.3
+pkgrel=4
+pkgdesc="plugin to switch keyboard layouts for the Xfce4 panel"
+arch=(i686 x86_64)
+license=('custom')
+url="http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin"
+groups=('xfce4-goodies')
+depends=('xfce4-panel' 'libxfcegui4' 'libxklavier>=5.0' 'librsvg')
+makedepends=('intltool')
+options=('!libtool')
+source=(http://archive.xfce.org/src/panel-plugins/${pkgname}/0.5/${pkgname}-${pkgver}.tar.gz
+ xfce4-xkb-plugin-0.5.3.3-libxklavier.patch
+ crashfix.diff)
+md5sums=('b233cc9de1cbace075eaf6e2c9a8e685'
+ '781165ce1bc08059ae8e846c45c0bab2'
+ '4faeaaea7d294cbad2972af964508086')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ patch -Np1 -i "${srcdir}/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch"
+
+ # https://bugs.archlinux.org/task/21067 - http://bugzilla.xfce.org/show_bug.cgi?id=6477
+ patch -Np1 -i ${srcdir}/crashfix.diff
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+}
diff --git a/extra/xfce4-xkb-plugin/crashfix.diff b/extra/xfce4-xkb-plugin/crashfix.diff
new file mode 100644
index 000000000..5ccfbaa3c
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/crashfix.diff
@@ -0,0 +1,34 @@
+From 52dc725bf5e44a0ab0064daebffe7ff139da0f78 Mon Sep 17 00:00:00 2001
+From: Lionel Le Folgoc <mrpouit@gmail.com>
+Date: Fri, 24 Sep 2010 21:28:49 +0200
+Subject: Handle cases when the keyboard model is empty
+
+gtk_combo_box_get_active_iter () does not set the iter, and a call to
+gtk_tree_model_get () using this iter will crash. Thus, check the return value
+of gtk_combo_box_get_active_iter () before using the iter.
+---
+ panel-plugin/xkb-settings-dialog.c | 8 +++++---
+ 1 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/panel-plugin/xkb-settings-dialog.c b/panel-plugin/xkb-settings-dialog.c
+index 178ec5f..37a0a9a 100644
+--- a/panel-plugin/xkb-settings-dialog.c
++++ b/panel-plugin/xkb-settings-dialog.c
+@@ -831,9 +831,11 @@ xkb_settings_update_from_ui (t_xkb *xkb)
+ gint i = 0;
+
+ model = GTK_TREE_MODEL (xkb->combo_store);
+- gtk_combo_box_get_active_iter (GTK_COMBO_BOX (xkb->kbd_model_combo), &iter);
+- gtk_tree_model_get (model, &iter, NOM, &kbdmodel, -1);
+- kbd_config->model = kbdmodel;
++ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (xkb->kbd_model_combo), &iter))
++ {
++ gtk_tree_model_get (model, &iter, NOM, &kbdmodel, -1);
++ kbd_config->model = kbdmodel;
++ }
+
+ model = GTK_TREE_MODEL (xkb->toggle_options_store);
+ if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (xkb->toggle_options_combo), &iter))
+--
+1.7.1
+
diff --git a/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch b/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch
new file mode 100644
index 000000000..5b9dc5401
--- /dev/null
+++ b/extra/xfce4-xkb-plugin/xfce4-xkb-plugin-0.5.3.3-libxklavier.patch
@@ -0,0 +1,30 @@
+diff -ur xfce4-xkb-plugin-0.5.3.3.orig/panel-plugin/xkb-config.c xfce4-xkb-plugin-0.5.3.3/panel-plugin/xkb-config.c
+--- xfce4-xkb-plugin-0.5.3.3.orig/panel-plugin/xkb-config.c 2009-03-06 15:16:03.000000000 +0200
++++ xfce4-xkb-plugin-0.5.3.3/panel-plugin/xkb-config.c 2009-07-20 18:40:34.000000000 +0300
+@@ -150,7 +150,7 @@
+ config->application_map = g_hash_table_new (g_direct_hash, NULL);
+
+ registry = xkl_config_registry_get_instance (config->engine);
+- xkl_config_registry_load (registry);
++ xkl_config_registry_load (registry, FALSE);
+
+ config_item = xkl_config_item_new ();
+
+@@ -214,7 +214,7 @@
+
+ gdk_window_remove_filter (NULL, (GdkFilterFunc) handle_xevent, NULL);
+
+- xkl_engine_stop_listen (config->engine);
++ xkl_engine_stop_listen (config->engine, XKLL_TRACK_KEYBOARD_STATE);
+ }
+
+ gint
+@@ -547,7 +547,7 @@
+ if (!config) return NULL;
+
+ registry = xkl_config_registry_get_instance (config->engine);
+- xkl_config_registry_load (registry);
++ xkl_config_registry_load (registry, FALSE);
+
+ return registry;
+ }
diff --git a/extra/xfconf/PKGBUILD b/extra/xfconf/PKGBUILD
new file mode 100644
index 000000000..7616febf3
--- /dev/null
+++ b/extra/xfconf/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 106342 2011-01-16 16:22:15Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfconf
+pkgver=4.8.0
+pkgrel=1
+pkgdesc="a simple client-server configuration storage and query system"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+# http://www.xfce.org/documentation/requirements
+# keep dbus and gtk2, see also http://bugs.archlinux.org/task/14536
+depends=( "libxfce4util>=4.8.0" "dbus-glib" 'dbus' 'gtk2')
+makedepends=('pkgconfig' 'perl-extutils-depends' 'perl-extutils-pkgconfig' 'glib-perl' 'intltool' 'gtk-doc' 'chrpath')
+options=('!libtool' '!emptydirs')
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('0f11ed1ec7789c5c4c3fcc7cdb3c2940')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/xfce4 \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gtk-doc \
+ --with-perl-options=INSTALLDIRS="vendor" \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ # remove unneeded dynloader bootstrap file
+ rm ${pkgdir}/usr/lib/perl5/vendor_perl/auto/Xfce4/Xfconf/Xfconf.bs
+
+ # fix insecure rpath, http://bugs.archlinux.org/task/19980
+ chrpath -d ${pkgdir}/usr/lib/perl5/vendor_perl/auto/Xfce4/Xfconf/Xfconf.so
+}
diff --git a/extra/xfdesktop/PKGBUILD b/extra/xfdesktop/PKGBUILD
new file mode 100644
index 000000000..452135ebf
--- /dev/null
+++ b/extra/xfdesktop/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 112928 2011-03-07 18:58:22Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfdesktop
+pkgver=4.8.1
+pkgrel=2
+pkgdesc="A desktop manager for Xfce"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=('libxfce4ui' 'thunar>=1.2.0' 'hicolor-icon-theme' 'libwnck>=2.30.0')
+makedepends=("xfce4-panel>=4.8.0" 'intltool')
+optdepends=('xfce4-panel: panel menu plugin')
+conflicts=('xfce4-menueditor')
+replaces=('xfce4-menueditor')
+options=('!libtool')
+install=xfdesktop.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('a3a255cc7756ddc2a0a6fdee9fb8b2c9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # git fixes
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-gio-unix \
+ --enable-thunarx \
+ --enable-exo \
+ --enable-notifications \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xfdesktop/xfdesktop.install b/extra/xfdesktop/xfdesktop.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfdesktop/xfdesktop.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfig/LICENSE b/extra/xfig/LICENSE
new file mode 100644
index 000000000..5b38ccff8
--- /dev/null
+++ b/extra/xfig/LICENSE
@@ -0,0 +1,33 @@
+Excerpt of the README from xfig/transfig - legal notice:
+---------------------------------------------------------------------------
+
+THE LAWRENCE BERKELEY NATIONAL LABORATORY DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+***************************************************************************
+NEW COPYRIGHT/PERMISSION NOTICE:
+
+The xfig copyright and permission notice has changed (again) slightly in
+version 3.2.5. It now states that:
+
+ FIG : Facility for Interactive Generation of figures
+ Copyright (c) 1985-1988 by Supoj Sutanthavibul
+ Parts Copyright (c) 1989-2002 by Brian V. Smith
+ Parts Copyright (c) 1991 by Paul King
+
+ Any party obtaining a copy of these files is granted, free of charge, a
+ full and unrestricted irrevocable, world-wide, paid up, royalty-free,
+ nonexclusive right and license to deal in this software and documentation
+ files (the "Software"), including without limitation the rights to use,
+ copy, modify, merge, publish distribute, sublicense and/or sell copies of
+ the Software, and to permit persons who receive copies from any such
+ party to do so, with the only requirement being that the above copyright
+ and this permission notice remain intact.
+
+The license for 3.2.4 didn't allow selling xfig unless it was simply included in a
+collection of programs (e.g. a CD) that one was selling.
diff --git a/extra/xfig/PKGBUILD b/extra/xfig/PKGBUILD
new file mode 100644
index 000000000..45c07d0dc
--- /dev/null
+++ b/extra/xfig/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 101110 2010-11-28 02:40:08Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=xfig
+pkgver=3.2.5b
+pkgrel=5
+pkgdesc="An interactive drawing tool"
+arch=('i686' 'x86_64')
+url="http://www.xfig.org/userman/"
+license=('custom')
+depends=('libpng' 'libjpeg' 'xaw3d' 'libxi' 'desktop-file-utils' 'gsfonts')
+makedepends=('imake')
+optdepends=('transfig: to use the frontend to convert fig files')
+options=('!makeflags' '!emptydirs')
+install=xfig.install
+source=(http://downloads.sourceforge.net/mcj/${pkgname}.${pkgver}.full.tar.gz \
+ xfig-3.2.4-redhat.patch xfig-3.2.5-color-resources.patch \
+ xfig-3.2.5-enable-Xaw3d.patch xfig-3.2.5-urwfonts.patch \
+ xfig-3.2.5-fhs.patch xfig-3.2.5-missing-protos.patch \
+ xfig.3.2.5-modularX.patch xfig-3.2.5b-fix-eps-reading.patch LICENSE xfig.desktop)
+md5sums=('499b0ce103a6b353453bf7e327f9a3b9' '5c2bc208c8ee852bc9ffa00dcbfd8241'\
+ 'a4b91e4aaf48ed07f4a579a1f692ef82' '46c6fb15d26c9fe03e558bdacc0b0a53'\
+ 'c5b7dc054063f02c6bfcd132dae82b6f' 'b532871c792716465e3b05967bcfba10'\
+ 'de059a6b8ce287942c7da35d19ee46f3' '7347389f7fdecd582579845df0c0b664'\
+ 'fa14e85b5365d07ca8deca9ea47d4e6a' 'f405b7a96f3401c12153fe6170a7d8f1'\
+ '8ac2de637c9148aa4a32978910822230')
+sha1sums=('0730d7e6bc217c0de02682efb0078821512bb542' '926ad99c7221baa4aa9e9737722958860b2700fc'\
+ 'b7c03fb70066ff476a4039a8c0f8930c15edef68' '33bff26b42ce164e79de11808b5b34b363f0d59f'\
+ 'e595ccdbe293ea0fdecbf59a2192ae57ced2c8eb' '39bec6bac9746b643b05fd1286826113ede07ff6'\
+ 'bd76cd50be6a5789cfd6f182309cfd7056be04f3' 'a1285f4e61ad2eec040460ab03e8022098e7f78e'\
+ '12a64ddaf65a73e23ef74f31483515a0e262768c' '31edf4cfab708820ea3f114d095dfef5aa88e5aa'\
+ '9011b8fa6143e37525b28cc9800a3bf2d6b008d2')
+
+build() {
+ cd "${srcdir}/${pkgname}.${pkgver}"
+ patch -p1 < ../xfig-3.2.4-redhat.patch
+ patch -p1 < ../xfig-3.2.5-fhs.patch
+ patch -p1 < ../xfig.3.2.5-modularX.patch
+ patch -p1 < ../xfig-3.2.5-enable-Xaw3d.patch
+ patch -p1 < ../xfig-3.2.5-color-resources.patch
+ patch -p1 < ../xfig-3.2.5-urwfonts.patch
+ patch -p1 < ../xfig-3.2.5-missing-protos.patch
+ patch -p1 < ../xfig-3.2.5b-fix-eps-reading.patch
+ chmod 755 Libraries
+
+ xmkmf
+ make DOCDIR=/usr/share/doc
+}
+
+package() {
+ cd "${srcdir}/${pkgname}.${pkgver}"
+ make DESTDIR="${pkgdir}" DOCDIR=/usr/share/doc install.all
+ rm "${pkgdir}/usr/lib/X11/app-defaults"
+
+ find "${pkgdir}/usr/share/xfig/Libraries" -type f -exec chmod 0644 {} \;
+ find "${pkgdir}/usr/share/xfig/Libraries" -type d -exec chmod 0755 {} \;
+ find "${pkgdir}/usr/share/doc/xfig" -type f -exec chmod 0644 {} \;
+ find "${pkgdir}/usr/share/doc/xfig" -type d -exec chmod 0755 {} \;
+
+ install -D -m644 ../xfig.desktop "${pkgdir}/usr/share/applications/xfig.desktop"
+ install -D -m644 xfig.png "${pkgdir}/usr/share/pixmaps/xfig.png"
+ install -D -m644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/xfig/xfig-3.2.4-redhat.patch b/extra/xfig/xfig-3.2.4-redhat.patch
new file mode 100644
index 000000000..da6f150b3
--- /dev/null
+++ b/extra/xfig/xfig-3.2.4-redhat.patch
@@ -0,0 +1,31 @@
+--- xfig.3.2.4/Fig.ad.redhat 2002-12-19 01:05:41.000000000 +0100
++++ xfig.3.2.4/Fig.ad 2003-05-06 11:45:15.000000000 +0200
+@@ -11,7 +11,7 @@
+ Fig*AllowShellResize: false
+
+ ! Image editor - can edit imported image
+-Fig.image_editor: xv
++Fig.image_editor: xdg-open
+
+ ! name of ghostscript (not ghostview)
+ Fig.ghostscript: gs
+@@ -20,16 +20,16 @@
+ ! This is for viewing the xfig html reference.
+ ! For netscape, this command will open the help pages in a running netscape,
+ ! or start a new netscape if one isn't already running
+-Fig.browser: firefox -remote 'openFile(%f)' || firefox %f
++Fig.browser: xdg-open %f
+
+ ! pdfviewer - put your favorite pdf viewer here.
+ ! This is for viewing the xfig how-to guide and man pages
+-Fig.pdfviewer: xpdf %f
++Fig.pdfviewer: xdg-open %f
+
+ ! Spell check program - put your favorite spelling check program here.
+ ! It must write the misspelled words to standard output.
+
+-Fig.spellcheckcommand: spell %f
++Fig.spellcheckcommand: aspell %f
+
+ ! delay before spinner automatically counts when pressed (milliseconds)
+ Fig.spinner_delay: 1000
diff --git a/extra/xfig/xfig-3.2.5-color-resources.patch b/extra/xfig/xfig-3.2.5-color-resources.patch
new file mode 100644
index 000000000..6cf1af906
--- /dev/null
+++ b/extra/xfig/xfig-3.2.5-color-resources.patch
@@ -0,0 +1,39 @@
+diff -up xfig.3.2.5/Fig-color.bisque.ad~ xfig.3.2.5/Fig-color.bisque.ad
+--- xfig.3.2.5/Fig-color.bisque.ad~ 2007-11-16 13:47:45.000000000 +0100
++++ xfig.3.2.5/Fig-color.bisque.ad 2007-11-16 13:47:52.000000000 +0100
+@@ -93,7 +93,7 @@ Fig*sideruler.background: gray95
+ Fig*topruler.background: gray95
+ Fig*sideruler.background: gray95
+ Fig*List*background: gray95
+-Fig*Scrollbar.background: gray95
++! Fig*Scrollbar.background: gray95
+
+ Fig*cancel.background: navajowhite1
+ Fig*dismiss.background: navajowhite1
+@@ -104,8 +104,8 @@ Fig*menu_divider.foreground: red
+ Fig*menu_divider.foreground: red
+
+ !##### Shadows
+-Fig*shadowWidth: 2
+-Fig*Label.shadowWidth: 1
++! Fig*shadowWidth: 2
++! Fig*Label.shadowWidth: 1
+ Fig*horizontal.shadowWidth: 2
+ Fig*Scrollbar.shadowWidth: 2
+ ! no shadows for update indicators
+@@ -136,3 +136,15 @@ Fig*color_box*topShadowPixel: gray80
+
+ Fig*toggle*bottomShadowPixel: gray80
+ Fig*toggle*topShadowPixel: gray50
++
++! repare damage done to scrollbar shadows non color resources file
++
++Fig*horizontal.topShadowPixel: gray95
++Fig*horizontal.bottomShadowPixel: gray50
++Fig*horizontal.topShadow: gray95
++Fig*horizontal.bottomShadow: gray50
++
++Fig*Scrollbar.topShadow: gray95
++Fig*Scrollbar.bottomShadow: gray50
++Fig*Scrollbar.topShadowPixel: gray95
++Fig*Scrollbar.bottomShadowPixel: gray50
diff --git a/extra/xfig/xfig-3.2.5-enable-Xaw3d.patch b/extra/xfig/xfig-3.2.5-enable-Xaw3d.patch
new file mode 100644
index 000000000..f4d113808
--- /dev/null
+++ b/extra/xfig/xfig-3.2.5-enable-Xaw3d.patch
@@ -0,0 +1,18 @@
+diff -up xfig.3.2.5/Imakefile.no-Xaw3d xfig.3.2.5/Imakefile
+--- xfig.3.2.5/Imakefile.no-Xaw3d 2007-11-16 10:38:18.000000000 +0100
++++ xfig.3.2.5/Imakefile 2007-11-16 10:38:49.000000000 +0100
+@@ -50,8 +50,8 @@ XAPPLOADDIR = /usr/share/X11/app-default
+ XCOMM Uncomment the following if you have David Hawkey's Xaw3D version 1.5E which has
+ XCOMM some new features, including "Tips", which replace xfig's "help balloons"
+ XCOMM NOTE: This is the default for many X systems now.
+
+-XCOMM #define XAW3D1_5E
++#define XAW3D1_5E
+
+ #ifdef XAW3D1_5E
+ DUSEXAW3D = -DXAW3D -DXAW3D1_5E
+- XAWLIB = -lXaw3d15e
++ XAWLIB = -lXaw3d
+ #else
+ XAW_SRC = w_menuentry.c SmeCascade.c SmeBSB.c SimpleMenu.c
+ XAW_OBJ = w_menuentry.o SmeCascade.o SmeBSB.o SimpleMenu.o
diff --git a/extra/xfig/xfig-3.2.5-fhs.patch b/extra/xfig/xfig-3.2.5-fhs.patch
new file mode 100644
index 000000000..a17d908a7
--- /dev/null
+++ b/extra/xfig/xfig-3.2.5-fhs.patch
@@ -0,0 +1,12 @@
+--- xfig.3.2.5/Imakefile.fhs 2006-10-11 01:19:22.000000000 +0200
++++ xfig.3.2.5/Imakefile 2007-04-16 14:04:45.000000000 +0200
+@@ -169,8 +169,7 @@
+ XFIGLIBDIR = $(LIBDIR)/xfig
+
+ XCOMM XFIGDOCDIR tells where the html and pdf documentation should go
+-XCOMM XFIGDOCDIR = $(DOCDIR)/xfig
+-XFIGDOCDIR = /usr/local/xfig/doc
++XFIGDOCDIR = $(DOCDIR)/xfig
+
+ XCOMM MANDIR tells where the standard man pages should go (no need to change it
+ XCOMM if you want the man pages installed in the standard place on your system
diff --git a/extra/xfig/xfig-3.2.5-missing-protos.patch b/extra/xfig/xfig-3.2.5-missing-protos.patch
new file mode 100644
index 000000000..181c52a69
--- /dev/null
+++ b/extra/xfig/xfig-3.2.5-missing-protos.patch
@@ -0,0 +1,11 @@
+diff -up xfig.3.2.5/u_draw.c~ xfig.3.2.5/u_draw.c
+--- xfig.3.2.5/u_draw.c~ 2008-04-03 15:58:23.000000000 +0200
++++ xfig.3.2.5/u_draw.c 2008-04-03 15:58:23.000000000 +0200
+@@ -43,6 +43,7 @@
+ #include "w_zoom.h"
+ #include "u_redraw.h"
+ #include "w_cursor.h"
++#include <X11/ImUtil.h>
+
+ static Boolean add_point(int x, int y);
+ static void init_point_array(void);
diff --git a/extra/xfig/xfig-3.2.5-urwfonts.patch b/extra/xfig/xfig-3.2.5-urwfonts.patch
new file mode 100644
index 000000000..7bc766bd9
--- /dev/null
+++ b/extra/xfig/xfig-3.2.5-urwfonts.patch
@@ -0,0 +1,79 @@
+--- xfig.3.2.4/u_fonts.c 2002-09-09 13:36:58.000000000 -0400
++++ new-xfig-3.2.4/u_fonts.c 2006-10-11 00:29:07.000000000 -0400
+@@ -22,41 +22,41 @@
+ /* X11 font names */
+
+ struct _xfstruct x_fontinfo[NUM_FONTS] = {
+- {"-*-times-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-times-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-times-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-times-bold-i-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-book-r-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-book-o-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-demi-r-normal--", (struct xfont*) NULL},
+- {"-*-avantgarde-demi-o-normal--", (struct xfont*) NULL},
+- {"-*-bookman-light-r-normal--", (struct xfont*) NULL},
+- {"-*-bookman-light-i-normal--", (struct xfont*) NULL},
+- {"-*-bookman-demi-r-normal--", (struct xfont*) NULL},
+- {"-*-bookman-demi-i-normal--", (struct xfont*) NULL},
+- {"-*-courier-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-courier-medium-o-normal--", (struct xfont*) NULL},
+- {"-*-courier-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-courier-bold-o-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-o-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-o-normal--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-r-narrow--", (struct xfont*) NULL},
+- {"-*-helvetica-medium-o-narrow--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-r-narrow--", (struct xfont*) NULL},
+- {"-*-helvetica-bold-o-narrow--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-new century schoolbook-bold-i-normal--", (struct xfont*) NULL},
+- {"-*-palatino-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-palatino-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-palatino-bold-r-normal--", (struct xfont*) NULL},
+- {"-*-palatino-bold-i-normal--", (struct xfont*) NULL},
+- {"-*-symbol-medium-r-normal--", (struct xfont*) NULL},
+- {"-*-itc zapf chancery-medium-i-normal--", (struct xfont*) NULL},
+- {"-*-itc zapf dingbats-*-*-*--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus roman no9 l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-medium-o-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-semibold-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw gothic l-semibold-o-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw bookman l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-medium-o-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus mono l-bold-o-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-medium-r-condensed--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-medium-i-condensed--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-bold-r-condensed--", (struct xfont*) NULL},
++ {"-urw-nimbus sans l condensed-bold-i-condensed--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-century schoolbook l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-bold-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw palladio l-bold-i-normal--", (struct xfont*) NULL},
++ {"-urw-standard symbols l-medium-r-normal--", (struct xfont*) NULL},
++ {"-urw-urw chancery l-medium-i-normal--", (struct xfont*) NULL},
++ {"-urw-dingbats-medium-r-normal--", (struct xfont*) NULL},
+ };
+
+ /* Use the following font names for any font that doesn't exist in the table above.
diff --git a/extra/xfig/xfig-3.2.5b-fix-eps-reading.patch b/extra/xfig/xfig-3.2.5b-fix-eps-reading.patch
new file mode 100644
index 000000000..7601d20ea
--- /dev/null
+++ b/extra/xfig/xfig-3.2.5b-fix-eps-reading.patch
@@ -0,0 +1,46 @@
+diff -ur xfig.3.2.5b/f_readeps.c xfig.3.2.5b.new/f_readeps.c
+--- xfig.3.2.5b/f_readeps.c 2009-03-30 17:52:18.000000000 +0200
++++ xfig.3.2.5b.new/f_readeps.c 2010-11-25 16:53:54.328247928 +0100
+@@ -252,12 +252,13 @@
+ {
+ char buf[300];
+ FILE *tmpfp, *pixfile, *gsfile;
+- char *psnam, *driver;
++ char *driver;
+ int status, wid, ht, nbitmap, fd;
+ char tmpfile[PATH_MAX],
+ pixnam[PATH_MAX],
+ errnam[PATH_MAX],
+- gscom[2 * PATH_MAX];
++ gscom[2 * PATH_MAX],
++ psnam[PATH_MAX];
+
+ wid = urx - llx;
+ ht = ury - lly;
+@@ -307,19 +308,14 @@
+ /* for color, use pcx */
+ driver = "pcx256";
+ }
+- /* avoid absolute paths (for Cygwin with gswin32) by changing directory */
+- if (tmpfile[0] == '/') {
+- psnam = strrchr(tmpfile, '/');
+- *psnam = 0;
+- sprintf(gscom, "cd \"%s/\";", tmpfile);
+- *psnam++ = '/'; /* Restore name for unlink() below */
+- } else {
+- psnam = tmpfile;
+- gscom[0] = '\0';
++ /* Canonicalize the eps file filename, needed to "defeat" -dSAFER */
++ if (!realpath(tmpfile, psnam)) {
++ file_msg("Cannot canonicalize %s: %s\n", tmpfile, strerror(errno));
++ return False;
+ }
+- sprintf(&gscom[strlen(gscom)],
+- "%s -r72x72 -dSAFER -sDEVICE=%s -g%dx%d -sOutputFile=%s -q - > %s 2>&1",
+- appres.ghostscript, driver, wid, ht, pixnam, errnam);
++ sprintf(gscom,
++ "%s -r72x72 -sDEVICE=%s -g%dx%d -sOutputFile=%s -dDELAYSAFER -c '<< /PermitFileReading [ (%s)] >> setuserparams .locksafe' -dSAFER -q - > %s 2>&1",
++ appres.ghostscript, driver, wid, ht, pixnam, psnam, errnam);
+ if (appres.DEBUG)
+ fprintf(stderr,"calling: %s\n",gscom);
+ if ((gsfile = popen(gscom, "w")) == 0) {
diff --git a/extra/xfig/xfig.3.2.5-modularX.patch b/extra/xfig/xfig.3.2.5-modularX.patch
new file mode 100644
index 000000000..3b5ac5937
--- /dev/null
+++ b/extra/xfig/xfig.3.2.5-modularX.patch
@@ -0,0 +1,28 @@
+--- xfig.3.2.5/Imakefile.modularX 2007-04-16 14:27:49.000000000 +0200
++++ xfig.3.2.5/Imakefile 2007-04-16 14:29:18.000000000 +0200
+@@ -45,7 +45,7 @@
+ XCOMM different tree than the "correct" tree that your X system expects. The usual
+ XCOMM purpose of DESTDIR is to test an install process by installing in a benign area.
+
+-XCOMM XAPPLOADDIR = /home/user/xfig
++XAPPLOADDIR = /usr/share/X11/app-defaults
+
+ XCOMM Uncomment the following definition for XAW3D if you want to use
+ XCOMM the 3d Athena Widget Set (highly recommended!)
+@@ -166,12 +166,12 @@
+ XCOMM XFIGLIBDIR = $(LIBDIR)
+
+ XCOMM use this if you want the multi-key data base file in the standard X11 tree
+-XFIGLIBDIR = $(LIBDIR)/xfig
++XFIGLIBDIR = /usr/share/xfig
+
+ XCOMM XFIGDOCDIR tells where the html and pdf documentation should go
+ XFIGDOCDIR = $(DOCDIR)/xfig
+
+ XCOMM MANDIR tells where the standard man pages should go (no need to change it
+ XCOMM if you want the man pages installed in the standard place on your system
+-MANDIR = $(MANSOURCEPATH)$(MANSUFFIX)
++MANDIR = /usr/share/man/man1
+ XCOMM MANDIR = /usr/local/xfig/man
+
+ XCOMM If your system doesn't have strstr undefine the following definition
diff --git a/extra/xfig/xfig.desktop b/extra/xfig/xfig.desktop
new file mode 100644
index 000000000..c634a28e9
--- /dev/null
+++ b/extra/xfig/xfig.desktop
@@ -0,0 +1,47 @@
+[Desktop Entry]
+Encoding=UTF-8
+Categories=Application;Graphics;
+MimeType=image/fig;image/x-xfig;
+Exec=xfig
+Icon=xfig
+Type=Application
+Name=Xfig
+Name[eo]=XDesegno
+Name[et]=Ffig
+Name[ja]=xfig
+Name[no]=X-figur
+Comment=Xfig drawing application
+Comment[bg]=Xfig ïðîãðàìà çà ðèñóâàíå
+Comment[ca]=Aplicació de dibuix Xfig
+Comment[cs]=Aplikace pro kreslení vektorových obrázků
+Comment[da]=Xfig tegneprogram
+Comment[de]=Xfig-Zeichenprogramm
+Comment[el]=Xfig
+Comment[eo]=Desegnilo "Xfig"
+Comment[es]=Aplicación de diseño vectorial (objetos)
+Comment[et]=XFig joonistusprogramm
+Comment[fi]=Xfig vektoripiirto-ohjelma
+Comment[fr]=Programme de dessin objet Xfig
+Comment[gl]=Aplicación de debuxo (obxectos)
+Comment[he]=Xfig רויצה םושיי
+Comment[hr]=Program za crtanje
+Comment[hu]=Rajzolóprogram
+Comment[is]=Hlutbundið teikniforrit
+Comment[it]=Applicazione di disegno Xfig
+Comment[lt]=Xfig braižymo programa
+Comment[mk]=Едноставна апликација за векторско цртање
+Comment[nl]=Xfig-tekenprogramma
+Comment[no]=Xfig-tegneprogram
+Comment[no_NY]=Teikneprogrammet Xfig
+Comment[pl]=Aplikacja do kreślenia
+Comment[pt]=Aplicação de desenho
+Comment[ro]=Program de desenare vectorială
+Comment[ru]=Приложения для рисования векторной графики
+Comment[sk]=Xfig aplikácia pre kreslenie vektorových obrázkov
+Comment[sl]=Program za risanje Xfig
+Comment[sr]=Xfig prgram za vektorsko crtanje
+Comment[sv]=Xfig ritprogram
+Comment[ta]=Xfig Ũþø ÀÂýÀ¡Î
+Comment[tr]=Xfig çizim uygulaması
+Comment[uk]=Xfig
+Comment[zh_CN.GB2312]=Xfig 绘图应用程序
diff --git a/extra/xfig/xfig.install b/extra/xfig/xfig.install
new file mode 100644
index 000000000..f01585f79
--- /dev/null
+++ b/extra/xfig/xfig.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+ }
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/extra/xfprint/PKGBUILD b/extra/xfprint/PKGBUILD
new file mode 100644
index 000000000..71e48bd8d
--- /dev/null
+++ b/extra/xfprint/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 85560 2010-07-15 21:39:23Z andyrtr $
+# Maintainer: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=xfprint
+pkgver=4.6.1
+pkgrel=4
+pkgdesc="A print dialog and a printer manager for Xfce"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=("libxfcegui4>=$pkgver" "xfconf>=$pkgver" 'libcups>=1.3.10' 'a2ps' 'heimdal>=1.3.1'
+ 'gnutls>=2.6.5' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://www.xfce.org/archive/xfce-${pkgver}/src/${pkgname}-${pkgver}.tar.bz2
+ xfprint-manager-fix.diff)
+md5sums=('d92fca97a42816085080baf07a99a62e'
+ '69b3619a285e94d602a1d0ac08f4ca06')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ # fix xfprint-manager not showing cups printers
+ # see http://bugs.archlinux.org/task/19965, http://bugs.gentoo.org/278047, http://bugzilla.xfce.org/show_bug.cgi?id=6089
+ patch -Np0 -i ${srcdir}/xfprint-manager-fix.diff
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfprint/xfprint-manager-fix.diff b/extra/xfprint/xfprint-manager-fix.diff
new file mode 100644
index 000000000..1bf0725f8
--- /dev/null
+++ b/extra/xfprint/xfprint-manager-fix.diff
@@ -0,0 +1,29 @@
+--- xfprint-manager/main.c 2009-02-24 21:34:16.000000000 +0000
++++ xfprint-manager/main.c.new 2010-07-15 21:30:51.098745852 +0000
+@@ -41,6 +41,7 @@
+ #include <libxfprint/printer-list-window.h>
+
+ #define CHANNEL "xfprint"
++#define PROP_PRINTING_SYSTEM "/printing-system"
+
+ extern void mainwin_setup (void);
+
+@@ -66,15 +67,15 @@
+ channel = xfconf_channel_new (CHANNEL);
+ if (channel) {
+
+- if (xfconf_channel_has_property (channel, "/XfPrint/system")) {
+- const gchar *system_name = xfconf_channel_get_string (channel, "/XfPrint/system", "none");
++ if (xfconf_channel_has_property (channel, PROP_PRINTING_SYSTEM)) {
++ const gchar *system_name = xfconf_channel_get_string (channel, PROP_PRINTING_SYSTEM, "none");
+ if (g_ascii_strcasecmp (system_name, "none") != 0) {
+ ps = printing_system_new (system_name);
+ if (ps == NULL);
+ g_warning ("Unable to load printing system module %s", system_name);
+ }
+ } else {
+- g_warning ("%s: XfPrint/system is not set", PACKAGE);
++ g_warning ("%s: XfPrint/printing-system is not set", PACKAGE);
+ }
+ }
+
diff --git a/extra/xfprint/xfprint.install b/extra/xfprint/xfprint.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfprint/xfprint.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xfwm4-themes/PKGBUILD b/extra/xfwm4-themes/PKGBUILD
new file mode 100644
index 000000000..2e6f414e6
--- /dev/null
+++ b/extra/xfwm4-themes/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 28064 2009-02-27 20:44:58Z andyrtr $
+# Maintainer: Tobias Kieslich <tobias funnychar archlinux.org>
+
+pkgname=xfwm4-themes
+pkgver=4.6.0
+pkgrel=1
+pkgdesc="A set of additionnal themes for the Xfce window manager"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=("xfwm4>=${pkgver}")
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://www.xfce.org/archive/xfce-${pkgver}/src/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('4dc5cb29cbd40e3b9dece12a85e20854')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
+ --localstatedir=/var --disable-static
+ make || return 1
+ make DESTDIR=${pkgdir} install || return 1
+}
diff --git a/extra/xfwm4/PKGBUILD b/extra/xfwm4/PKGBUILD
new file mode 100644
index 000000000..a7d92fb73
--- /dev/null
+++ b/extra/xfwm4/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 108288 2011-01-30 17:29:07Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: tobias <tobias funnychar archlinux.org>
+
+pkgname=xfwm4
+pkgver=4.8.1
+pkgrel=1
+pkgdesc="Xfce window manager"
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://www.xfce.org/"
+groups=('xfce4')
+depends=("libxfce4ui" 'libwnck' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool')
+options=('!libtool')
+install=${pkgname}.install
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('447433dca613180ebd6cfed4beb1c1c9')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib \
+ --localstatedir=/var \
+ --disable-static \
+ --enable-startup-notification \
+ --enable-randr \
+ --enable-compositor \
+ --enable-xsync \
+ --disable-debug
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/extra/xfwm4/xfwm4.install b/extra/xfwm4/xfwm4.install
new file mode 100644
index 000000000..21b79d2d4
--- /dev/null
+++ b/extra/xfwm4/xfwm4.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/extra/xine-lib/PKGBUILD b/extra/xine-lib/PKGBUILD
new file mode 100644
index 000000000..d2f9dbe51
--- /dev/null
+++ b/extra/xine-lib/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 101416 2010-11-29 05:43:59Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=xine-lib
+pkgver=1.1.19
+pkgrel=2
+pkgdesc="A multimedia playback engine"
+arch=('i686' 'x86_64')
+url="http://www.xine-project.org"
+license=('LGPL' 'GPL')
+depends=('libgl' 'libxvmc' 'esound' 'flac' 'libvorbis' 'sdl' 'libmng' 'libtheora'
+ 'libxcb' 'wavpack' 'ffmpeg' 'faad2')
+makedepends=('pkg-config' 'libtool' 'imagemagick' 'smbclient' 'mesa' 'alsa-lib'
+ 'vcdimager' 'jack' 'gtk2' 'libpulse' 'speex' 'aalib')
+optdepends=('imagemagick: for using the imagemagick plugin' 'smbclient: for using the smb plugin' \
+ 'jack: for using the jack plugin' 'vcdimager: for using the vcd plugin' \
+ 'gtk2: for using the gdk-pixbuf plugin' 'mesa: for using the opengl plugin' \
+ 'libpulse: for using the pulseaudio plugin' 'speex: for using the speex plugin' \
+ 'aalib: for using the aalib plugin')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/xine/${pkgname}-${pkgver}.tar.bz2
+ xine-lib-1.1.1-configure-no-mcpu-march.patch xine-lib-1.1.19-xvmc.patch)
+md5sums=('a410a0f0617e1d6309f0cbe907f73f8a' '9776df4eb54d2f1f68d8268adbc3b5c2'\
+ '8662fb124870b1dd7effe4ff5e2a2e3d')
+sha1sums=('5afcc28c5cf2bdaab99d951960f6587797e1e5a0' '121a8358d7919b2e51067412373f52848290338a'\
+ '920bf27e6e3523dfe4cc9c802ff713e9688a3f34')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 < ../xine-lib-1.1.1-configure-no-mcpu-march.patch
+ patch -p0 < ../xine-lib-1.1.19-xvmc.patch
+
+ libtoolize --force --copy
+ aclocal -I m4
+ autoconf
+ automake --add-missing
+
+ ./configure --prefix=/usr --with-w32-path=/usr/lib/codecs \
+ --with-xv-path=/usr/lib --with-xxmc-path=/usr/lib --with-xvmc-path=/usr/lib \
+ --with-libflac --with-wavpack --with-xcb --with-jack --with-speex \
+ --disable-gnomevfs --with-pulseaudio --enable-aalib --disable-modplug \
+ --with-external-ffmpeg
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch b/extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch
new file mode 100644
index 000000000..4b6ba9e35
--- /dev/null
+++ b/extra/xine-lib/xine-lib-1.1.1-configure-no-mcpu-march.patch
@@ -0,0 +1,13 @@
+--- m4/optimizations.m4.orig 2005-11-27 01:20:08.000000000 +0100
++++ m4/optimizations.m4 2005-11-27 01:22:56.000000000 +0100
+@@ -161,10 +161,6 @@
+ ;;
+
+ esac
+- if test x"$archopt_val" != x; then
+- CFLAGS="$sarchopt=$archopt_val $CFLAGS"
+- DEBUG_CFLAGS="$sarchopt=$archopt_val $DEBUG_CFLAGS"
+- fi
+ fi
+ else
+ dnl we have the Intel compiler
diff --git a/extra/xine-lib/xine-lib-1.1.19-xvmc.patch b/extra/xine-lib/xine-lib-1.1.19-xvmc.patch
new file mode 100644
index 000000000..bef8b0bac
--- /dev/null
+++ b/extra/xine-lib/xine-lib-1.1.19-xvmc.patch
@@ -0,0 +1,17 @@
+Quoting ChangeLog of X11's videoproto package:
+vldXvMC.h: stop uselessly including XvMClib.h
+
+--- src/video_out/xxmc.h
++++ src/video_out/xxmc.h
+@@ -77,10 +77,10 @@
+ #include <X11/extensions/XShm.h>
+ #include <X11/extensions/Xv.h>
+ #include <X11/extensions/Xvlib.h>
++#include <X11/extensions/XvMClib.h>
+ #ifdef HAVE_VLDXVMC
+ #include <X11/extensions/vldXvMC.h>
+ #else
+- #include <X11/extensions/XvMClib.h>
+ #include <X11/extensions/XvMC.h>
+ #endif
+
diff --git a/extra/xine-ui/ChangeLog b/extra/xine-ui/ChangeLog
new file mode 100644
index 000000000..bfb45aa33
--- /dev/null
+++ b/extra/xine-ui/ChangeLog
@@ -0,0 +1,27 @@
+2010-03-23 Eric Belanger <eric@archlinux.org>
+
+ * xine-ui 0.99.6-1
+ * Upstream update
+ * Cleaned up depends
+ * Removed optdepends
+ * Replaced lirc makedepends by lirc-utils
+ * Added shared-mime-info depends
+
+2010-01-19 Eric Belanger <eric@archlinux.org>
+
+ * xine-ui 0.99.5-6
+ * Rebuilt for libpng 1.4 and libjpeg 8
+ * Added install scriptlet to update icon cache
+
+2009-06-18 Eric Belanger <eric@archlinux.org>
+
+ * xine-ui 0.99.5-5
+ * Rebuilt against readline 6.0.00
+
+2008-08-19 Eric Belanger <eric@archlinux.org>
+
+ * xine-ui 0.99.5-4
+ * Added xine and xine-remote binaries (missing in 0.99.5-3)
+ * Added missing libxt makedepends
+ * Replaced .install file by an optdepends
+ * Added ChangeLog
diff --git a/extra/xine-ui/PKGBUILD b/extra/xine-ui/PKGBUILD
new file mode 100644
index 000000000..4c5471ffa
--- /dev/null
+++ b/extra/xine-ui/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 77076 2010-04-10 16:09:26Z andrea $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=xine-ui
+pkgver=0.99.6
+pkgrel=1
+pkgdesc="A free video player for Unix"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.xine-project.org"
+depends=('xine-lib' 'curl' 'libxtst' 'libxinerama' 'libxv' 'libpng' 'libxft'
+ 'libxxf86vm' 'readline' 'xdg-utils' 'shared-mime-info' 'hicolor-icon-theme'
+ 'lirc-utils')
+makedepends=('libxt')
+options=('!emptydirs' '!strip')
+install=${pkgname}.install
+source=(http://downloads.sourceforge.net/xine/${pkgname}-${pkgver}.tar.xz
+ lirc-check-a89347673097.patch lirc-makefile-a68dd15ff7ae.patch fix_lirc.diff)
+md5sums=('d468b4e7fe39ff19888261e1da9be914'
+ '4f06f63f5fd55b08a648e5d63f881898'
+ '9f5acaf14f3945aa2ce428631d09cd47'
+ '0174bd096756b9c6f47e9b8b5ff6e145')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < "${srcdir}/lirc-check-a89347673097.patch" || return 1
+ patch -p1 < "${srcdir}/lirc-makefile-a68dd15ff7ae.patch" || return 1
+ patch -p1 < "${srcdir}/fix_lirc.diff" || return 1
+ autoconf || return 1
+
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-x --enable-lirc --without-aalib --enable-debug || return 1
+ make || return 1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install || return 1
+ install -d "${pkgdir}/usr/share/applications"
+ mv "${pkgdir}/usr/share/xine/desktop/xine.desktop" "${pkgdir}/usr/share/applications"
+}
diff --git a/extra/xine-ui/fix_lirc.diff b/extra/xine-ui/fix_lirc.diff
new file mode 100644
index 000000000..93890cb5c
--- /dev/null
+++ b/extra/xine-ui/fix_lirc.diff
@@ -0,0 +1,13 @@
+diff --git a/m4/_xine.m4 b/m4/_xine.m4
+--- a/m4/_xine.m4
++++ b/m4/_xine.m4
+@@ -46,7 +46,8 @@ AC_DEFUN([AC_CHECK_LIRC],
+ fi
+ for llirc in $lirc_libprefix /lib /usr/lib /usr/local/lib; do
+ AC_CHECK_FILE(["$llirc/liblirc_client.so"],
+- [LIRC_LIBS="$llirc/liblirc_client.so"]
++ [LIRC_LIBS="$llirc/liblirc_client.so"
++ found_lirc=yes]
+ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed]),
+ AC_CHECK_FILE(["$llirc/liblirc_client.a"],
+ [LIRC_LIBS="$llirc/liblirc_client.a"
diff --git a/extra/xine-ui/lirc-check-a89347673097.patch b/extra/xine-ui/lirc-check-a89347673097.patch
new file mode 100644
index 000000000..c1c8d2614
--- /dev/null
+++ b/extra/xine-ui/lirc-check-a89347673097.patch
@@ -0,0 +1,64 @@
+
+# HG changeset patch
+# User Darren Salt <linux@youmustbejoking.demon.co.uk>
+# Date 1268754560 0
+# Node ID a89347673097053d89675e991ab403cda04d94cd
+# Parent ed3079d668ed5291d1daf7096d6b42c90ee06e11
+Resync LIRC check with gxine; no longer fails if liblircclient0.pc is missing.
+
+--- a/m4/_xine.m4 Sun Mar 14 18:04:46 2010 +0000
++++ b/m4/_xine.m4 Tue Mar 16 15:49:20 2010 +0000
+@@ -25,14 +25,14 @@
+ dnl
+ AC_DEFUN([AC_CHECK_LIRC],
+ [AC_ARG_ENABLE(lirc,
+- [ --disable-lirc Turn off LIRC support.],
+- [], enable_lirc=yes)
++ [AS_HELP_STRING([--disable-lirc], [turn off LIRC support])],
++ [given=Y], [given=N; enable_lirc=yes])
+
+ found_lirc=no
+ if test x"$enable_lirc" = xyes; then
+ have_lirc=yes
+- PKG_CHECK_MODULES(LIRC, liblircclient0, [found_lirc=yes], [])
+- if test "$LIRC_CFLAGS" != ''; then
++ PKG_CHECK_MODULES(LIRC, liblircclient0, [found_lirc=yes], [:])
++ if test "$found_lirc" = yes; then
+ LIRC_INCLUDE="$LIRC_CFLAGS"
+ else
+ AC_REQUIRE_CPP
+@@ -42,15 +42,20 @@
+
+ if test x"$LIRC_PREFIX" != "x"; then
+ lirc_libprefix="$LIRC_PREFIX/lib"
+- LIRC_INCLUDE="-I$LIRC_PREFIX/include"
++ LIRC_INCLUDE="-I$LIRC_PREFIX/include"
+ fi
+ for llirc in $lirc_libprefix /lib /usr/lib /usr/local/lib; do
+- AC_CHECK_FILE(["$llirc/liblirc_client.a"],
+- [LIRC_LIBS="$llirc/liblirc_client.a"
+- found_lirc=yes],,)
++ AC_CHECK_FILE(["$llirc/liblirc_client.so"],
++ [LIRC_LIBS="$llirc/liblirc_client.so"]
++ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed]),
++ AC_CHECK_FILE(["$llirc/liblirc_client.a"],
++ [LIRC_LIBS="$llirc/liblirc_client.a"
++ found_lirc=yes],,)
++ )
+ done
+ else
+- AC_MSG_RESULT([*** LIRC client support not available, LIRC support will be disabled ***]);
++ test $given = Y && AC_MSG_ERROR([LIRC client support requested but not available])
++ AC_MSG_RESULT([*** LIRC client support not available, LIRC support will be disabled ***])
+ fi
+ fi
+ fi
+@@ -59,7 +64,6 @@
+ fi
+ AC_SUBST(LIRC_LIBS)
+ AC_SUBST(LIRC_INCLUDE)
+- AM_CONDITIONAL([HAVE_LIRC], [test "x$have_lirc" = "xyes"])
+ ])
+
+ dnl AC_C_ATTRIBUTE_ALIGNED
+
diff --git a/extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch b/extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch
new file mode 100644
index 000000000..daad4f03a
--- /dev/null
+++ b/extra/xine-ui/lirc-makefile-a68dd15ff7ae.patch
@@ -0,0 +1,19 @@
+
+# HG changeset patch
+# User Darren Salt <linux@youmustbejoking.demon.co.uk>
+# Date 1268758696 0
+# Node ID a68dd15ff7ae4be65c2ace25ef66966d7c272514
+# Parent 882c464d4a650d09da37ade366face74452c1897
+Restore definition of HAVE_LIRC for use in makefiles.
+
+--- a/m4/_xine.m4 Mon Mar 15 12:03:01 2010 -0700
++++ b/m4/_xine.m4 Tue Mar 16 16:58:16 2010 +0000
+@@ -62,6 +62,7 @@
+ if test "$found_lirc" = yes; then
+ AC_DEFINE([HAVE_LIRC],,[Define this if you have LIRC (liblirc_client) installed])
+ fi
++ AM_CONDITIONAL([HAVE_LIRC], [test "$found_lirc" = yes])
+ AC_SUBST(LIRC_LIBS)
+ AC_SUBST(LIRC_INCLUDE)
+ ])
+
diff --git a/extra/xine-ui/xine-ui.install b/extra/xine-ui/xine-ui.install
new file mode 100644
index 000000000..8afc56658
--- /dev/null
+++ b/extra/xine-ui/xine-ui.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/extra/xmahjongg/PKGBUILD b/extra/xmahjongg/PKGBUILD
new file mode 100644
index 000000000..a7f489e82
--- /dev/null
+++ b/extra/xmahjongg/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 36409 2009-04-22 04:45:25Z eric $
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+# Contributor: Roberto Carvajal <rcarvajal@users.sf.net>
+
+pkgname=xmahjongg
+pkgver=3.7
+pkgrel=3
+pkgdesc="Mahjongg game for X-Window"
+arch=('i686' 'x86_64')
+url="http://www.lcdf.org/xmahjongg/"
+license=('GPL')
+depends=('gcc-libs' 'libsm' 'libx11')
+source=(http://www.lcdf.org/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('9db5bf1b329b410220b7976cd9b3d374')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR=$pkgdir install || return 1
+}
diff --git a/extra/xmlsec/PKGBUILD b/extra/xmlsec/PKGBUILD
new file mode 100644
index 000000000..675a154d2
--- /dev/null
+++ b/extra/xmlsec/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 99799 2010-11-17 20:07:03Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Hussam Al-Tayeb <ht990332@gmail.com>
+
+pkgname=xmlsec
+pkgver=1.2.16
+pkgrel=1
+pkgdesc="XML Security Library is a C library based on LibXML2"
+license=('custom')
+arch=(i686 x86_64)
+url="http://www.aleksey.com/xmlsec/index.html"
+depends=('libxslt>=1.1.26' 'openssl>=1.0.0' 'gnutls>=2.8.6' 'nss>=3.12.6' 'libtool')
+makedepends=('pkgconfig')
+options=('!libtool')
+source=(http://www.aleksey.com/xmlsec/download/${pkgname}1-${pkgver}.tar.gz)
+md5sums=('17e8eb9a4ec4139b7689d139be4da133')
+
+build() {
+ cd ${srcdir}/${pkgname}1-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}1-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -m755 -d ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/
+}
diff --git a/extra/xmlto/PKGBUILD b/extra/xmlto/PKGBUILD
new file mode 100644
index 000000000..3df59ce7d
--- /dev/null
+++ b/extra/xmlto/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 67403 2010-02-06 18:09:00Z giovanni $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sergej Pupykin <sergej@aur.archlinux.org>
+# Contributor: Robert Stoffers <rob1@ubuntu.com>
+
+pkgname=xmlto
+pkgver=0.0.23
+pkgrel=1
+pkgdesc="Convert xml to many other formats"
+arch=('i686' 'x86_64')
+url="http://cyberelk.net/tim/software/xmlto/"
+license=('GPL')
+depends=('libxslt>=1.1.24' 'perl-yaml-syck' 'perl-test-pod')
+makedepends=('docbook-xsl')
+source=(https://fedorahosted.org/releases/x/m/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('3001d6bb2bbc2c8f6c2301f05120f074')
+
+build() {
+ cd "$srcdir/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+}
diff --git a/extra/xmms/PKGBUILD b/extra/xmms/PKGBUILD
new file mode 100644
index 000000000..6b8eedd1f
--- /dev/null
+++ b/extra/xmms/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 95269 2010-10-18 00:20:50Z eric $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=xmms
+pkgver=1.2.11
+pkgrel=3
+pkgdesc="The X MultiMedia System - a multimedia player"
+arch=('i686' 'x86_64')
+url="http://legacy.xmms2.org/"
+license=('GPL')
+depends=('gtk' 'libxxf86vm' 'libsm')
+makedepends=('mesa' 'libmikmod' 'libvorbis' 'esound' 'alsa-lib' 'libgl')
+optdepends=('libmikmod: for the MikMod input plugin' \
+ 'libvorbis: for the Ogg Vorbis input plugin' \
+ 'esound: for the esound output plugin' \
+ 'alsa-lib: for the alsa output plugin' \
+ 'libgl: for the OpenGL Spectrum analyser visualization plugin')
+options=('!libtool')
+source=(http://legacy.xmms2.org/${pkgname}-${pkgver}.tar.bz2 \
+ xmms-menu.patch xmms-1.2.10-crossfade-0.3.9.patch xmms-fix.diff \
+ xmms-1.2.11-CVE-2007-0653.0654.patch xmms-1.2.11-fix-http-title-mpg123.patch \
+ xmms-1.2.11-3dse.patch xmms-1.2.10-recode-id3.patch \
+ xmms-1.2.10-fonts.patch xmms.16.png xmms.32.png xmms.48.png)
+md5sums=('f3e6dbaf0b3f571a532ab575656be506' 'b7b6f1811bad8d14e4c4534240e45980'\
+ '4eb222111a82a2e1ebe63b5f6109133d' 'd7f9dc3712c486658149c4504f7478a7'\
+ 'e59e8c66f4e4077a8096ad98c77f0eb6' '25609a6b5b7632e4c8e6de927f8d70db'\
+ '2b534832b0dbb0d06dbcc829e2b702e6' 'd1715c291d35ee8854e5d926912e8b0d'\
+ '408ea5e28c4c4c221cf3c8ded76fd1f0' '3c328565c99c85d92ac0b9918805da46'\
+ '128406a02c07cd477dc901f2a658add5' 'd022280df4379383732a8a26abea1d08')
+sha1sums=('9d1eae4baab25fd35c9ddfb49321ca60222f672d' '27fb6e21bd6db923a425a8df8bd07a2a93867ddb'\
+ 'ff5c172752c8bee708d9a9ecd53864cc95a4bcc5' 'c227284955f2cc16f027dade670155c0f0fbc4ff'\
+ '4ef47c34b27b6c868d4301b7a078b257c8604471' '0c060385561ea2a4b1c7ad3bd35d3646ae9554f5'\
+ '6f6db13c780ba4cbddb8613f0abd2db2823f3021' '2a3b1bf17054b6bd8b1e5937de5c0ad49af8dc92'\
+ '31abd37c9c57bd13b2088eb11a1e54e5aa312bf3' '0089d11aa3bce67f3496592d68ee65837406e220'\
+ 'f24071ae484d9b55e61dba076801fa8e7976ff2f' '485c67cb8c8d4678bb3b0b280d2e233b14153b22')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+# Fix xmms.desktop
+ patch -p0 < ../xmms-menu.patch
+# Patch for hang with xmms-crossfade
+ patch -p1 < ../xmms-1.2.10-crossfade-0.3.9.patch
+# fix xmms not able to be shown double size,at least needed for x86_64
+ patch -p1 < ../xmms-fix.diff
+# Several patches from Mandriva
+ patch -p1 < ../xmms-1.2.11-fix-http-title-mpg123.patch
+ patch -p0 < ../xmms-1.2.10-recode-id3.patch
+ patch -p1 < ../xmms-1.2.11-3dse.patch
+ patch -p1 < ../xmms-1.2.10-fonts.patch
+ patch -p1 < ../xmms-1.2.11-CVE-2007-0653.0654.patch
+
+ if [ "$CARCH" == "x86_64" ]; then
+ SIMDOPT="--disable-simd"
+ else
+ SIMDOPT="--enable-simd"
+ fi
+ ./configure --prefix=/usr --mandir=/usr/share/man $SIMDOPT
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 xmms/xmms.desktop "${pkgdir}/usr/share/applications/xmms.desktop"
+ install -D -m644 xmms/xmms_mini.xpm "${pkgdir}/usr/share/pixmaps/xmms_mini.xpm"
+ install -D -m644 ../xmms.16.png "${pkgdir}/usr/share/pixmaps/xmms16.png"
+ install -D -m644 ../xmms.32.png "${pkgdir}/usr/share/pixmaps/xmms32.png"
+ install -D -m644 ../xmms.48.png "${pkgdir}/usr/share/pixmaps/xmms48.png"
+ ln -s /usr/share/pixmaps/xmms48.png "${pkgdir}/usr/share/pixmaps/xmms.png"
+
+ # don't want wmxmms
+ rm -rf "${pkgdir}/usr/bin/wmxmms" "${pkgdir}/usr/share/xmms"
+ rm -f "${pkgdir}"/usr/share/man/man1/{gnomexmms.1,wmxmms.1}
+}
diff --git a/extra/xmms/xmms-1.2.10-crossfade-0.3.9.patch b/extra/xmms/xmms-1.2.10-crossfade-0.3.9.patch
new file mode 100644
index 000000000..51c51671c
--- /dev/null
+++ b/extra/xmms/xmms-1.2.10-crossfade-0.3.9.patch
@@ -0,0 +1,101 @@
+diff -ur xmms-1.2.10/xmms/input.c xmms-1.2.10.patched/xmms/input.c
+--- xmms-1.2.10/xmms/input.c 2003-08-08 19:10:44.000000000 +0200
++++ xmms-1.2.10.patched/xmms/input.c 2005-11-25 00:12:36.000000000 +0100
+@@ -285,6 +285,14 @@
+ }
+ }
+
++gboolean input_stopped_for_restart = FALSE; /* crossfade */
++void input_stop_for_restart() /* crossfade */
++{
++ input_stopped_for_restart = TRUE;
++ input_stop();
++ input_stopped_for_restart = FALSE;
++}
++
+ void input_stop(void)
+ {
+ if (ip_data->playing && get_current_input_plugin())
+diff -ur xmms-1.2.10/xmms/input.h xmms-1.2.10.patched/xmms/input.h
+--- xmms-1.2.10/xmms/input.h 2000-02-16 22:05:57.000000000 +0100
++++ xmms-1.2.10.patched/xmms/input.h 2005-11-25 00:12:36.000000000 +0100
+@@ -34,6 +34,7 @@
+ gboolean input_check_file(gchar * filename);
+ void input_play(char *filename);
+ void input_stop(void);
++void input_stop_for_restart(void);
+ void input_pause(void);
+ int input_get_time(void);
+ void input_set_eq(int on, float preamp, float *bands);
+diff -ur xmms-1.2.10/xmms/main.c xmms-1.2.10.patched/xmms/main.c
+--- xmms-1.2.10/xmms/main.c 2004-02-23 21:31:43.000000000 +0100
++++ xmms-1.2.10.patched/xmms/main.c 2005-11-25 00:12:36.000000000 +0100
+@@ -881,8 +881,10 @@
+ mainwin_set_shade(!cfg.player_shaded);
+ }
+
++gboolean is_quitting = FALSE; /* crossfade */
+ void mainwin_quit_cb(void)
+ {
++ is_quitting = TRUE; /* crossfade */
+ input_stop();
+ gtk_widget_hide(equalizerwin);
+ gtk_widget_hide(playlistwin);
+@@ -1523,7 +1525,8 @@
+ int *pos;
+
+ if (get_input_playing())
+- input_stop();
++ input_stop_for_restart();
++
+ pos = gtk_clist_get_row_data(clist, GPOINTER_TO_INT(clist->selection->data));
+ playlist_set_position(*pos);
+ playlist_play();
+diff -ur xmms-1.2.10/xmms/playlist.c xmms-1.2.10.patched/xmms/playlist.c
+--- xmms-1.2.10/xmms/playlist.c 2004-02-23 21:31:43.000000000 +0100
++++ xmms-1.2.10.patched/xmms/playlist.c 2005-11-25 00:12:36.000000000 +0100
+@@ -124,7 +124,7 @@
+ if (get_input_playing())
+ {
+ PL_UNLOCK();
+- input_stop();
++ input_stop_for_restart();
+ PL_LOCK();
+ *restart_playing = TRUE;
+ }
+@@ -570,7 +570,7 @@
+ }
+
+ if (get_input_playing())
+- input_stop();
++ input_stop_for_restart();
+
+ vis_clear_data(mainwin_vis);
+ vis_clear_data(playlistwin_vis);
+@@ -668,7 +668,7 @@
+ {
+ /* We need to stop before changing playlist_position */
+ PL_UNLOCK();
+- input_stop();
++ input_stop_for_restart();
+ PL_LOCK();
+ restart_playing = TRUE;
+ }
+@@ -723,7 +723,7 @@
+ {
+ /* We need to stop before changing playlist_position */
+ PL_UNLOCK();
+- input_stop();
++ input_stop_for_restart();
+ PL_LOCK();
+ restart_playing = TRUE;
+ }
+@@ -852,7 +852,7 @@
+ {
+ /* We need to stop before changing playlist_position */
+ PL_UNLOCK();
+- input_stop();
++ input_stop_for_restart();
+ PL_LOCK();
+ restart_playing = TRUE;
+ }
diff --git a/extra/xmms/xmms-1.2.10-fonts.patch b/extra/xmms/xmms-1.2.10-fonts.patch
new file mode 100644
index 000000000..87cd9a8ee
--- /dev/null
+++ b/extra/xmms/xmms-1.2.10-fonts.patch
@@ -0,0 +1,24 @@
+--- xmms-1.2.10/xmms/main.c.fonts 2004-08-10 22:16:06.000000000 +0200
++++ xmms-1.2.10/xmms/main.c 2004-08-12 11:49:17.905598843 +0200
+@@ -351,7 +351,8 @@
+ cfg.no_playlist_advance = FALSE;
+ cfg.smooth_title_scroll = TRUE;
+ cfg.random_skin_on_play = FALSE;
+- cfg.mainwin_use_xfont = FALSE;
++ cfg.mainwin_use_xfont = TRUE;
++ cfg.use_fontsets = TRUE;
+ cfg.use_pl_metadata = TRUE;
+
+ cfg.playlist_x = 295;
+@@ -499,9 +500,9 @@
+ cfg.mainwin_font = NULL;
+ }
+ if (cfg.playlist_font == NULL)
+- cfg.playlist_font = g_strdup("-adobe-helvetica-bold-r-*-*-10-*");
++ cfg.playlist_font = g_strdup("-*-helvetica-bold-r-*-*-10-*,*");
+ if (cfg.mainwin_font == NULL)
+- cfg.mainwin_font = g_strdup("-adobe-helvetica-medium-r-*-*-8-*");
++ cfg.mainwin_font = g_strdup("-*-helvetica-medium-r-*-*-8-*,*");
+ if (cfg.gentitle_format == NULL)
+ cfg.gentitle_format = g_strdup("%p - %t");
+ if (cfg.outputplugin == NULL)
diff --git a/extra/xmms/xmms-1.2.10-recode-id3.patch b/extra/xmms/xmms-1.2.10-recode-id3.patch
new file mode 100644
index 000000000..6bd4ecf1c
--- /dev/null
+++ b/extra/xmms/xmms-1.2.10-recode-id3.patch
@@ -0,0 +1,11 @@
+--- xmms/playlist.c.orig 2005-03-05 17:26:11.685992552 +0200
++++ xmms/playlist.c 2005-03-05 17:28:01.524294592 +0200
+@@ -1341,7 +1341,7 @@
+
+ filename = g_strdup(entry->filename);
+
+- if (entry->title == NULL && entry->length == -1)
++ if (entry->title == NULL)
+ {
+ if (playlist_get_info_entry(entry)&&(entry->title)) {
+ title = xmms_charset_recode_id3(entry->title,0,NULL);
diff --git a/extra/xmms/xmms-1.2.11-3dse.patch b/extra/xmms/xmms-1.2.11-3dse.patch
new file mode 100644
index 000000000..099bf23b1
--- /dev/null
+++ b/extra/xmms/xmms-1.2.11-3dse.patch
@@ -0,0 +1,503 @@
+--- xmms-1.2.11/Output/OSS/OSS.h.3dse 2003-06-11 20:44:17.000000000 +0200
++++ xmms-1.2.11/Output/OSS/OSS.h 2007-11-18 20:51:57.000000000 +0100
+@@ -48,6 +48,11 @@
+ # define IS_BIG_ENDIAN FALSE
+ #endif
+
++#define AWE_3DSE 0x90
++#define MIXER_BASE_DEFAULT 0x220
++#define MIXER_REG_OFFSET 4
++#define MIXER_DATA_OFFSET 5
++
+ extern OutputPlugin op;
+
+ typedef struct
+@@ -59,6 +64,8 @@ typedef struct
+ gboolean use_master;
+ gboolean use_alt_audio_device, use_alt_mixer_device;
+ gchar *alt_audio_device, *alt_mixer_device;
++ gint stereo;
++ gboolean hardware_access;
+ }
+ OSSConfig;
+
+@@ -82,6 +89,12 @@ int oss_get_output_time(void);
+ int oss_get_written_time(void);
+ void oss_set_audio_params(void);
+
++int oss_set_3dse(int stat);
++int oss_get_3dse(void);
++void oss_hw_set_3dse(int stat);
++int oss_hw_get_3dse(void);
++int initHardwareAccess ();
++
+ void oss_free_convert_buffer(void);
+ int (*oss_get_convert_func(int output, int input))(void **, int);
+ int (*oss_get_stereo_convert_func(int output, int input))(void **, int, int);
+--- xmms-1.2.11/Output/OSS/configure.c.3dse 2005-05-15 02:01:20.000000000 +0200
++++ xmms-1.2.11/Output/OSS/configure.c 2007-11-18 20:51:57.000000000 +0100
+@@ -24,6 +24,10 @@ static GtkWidget *mixer_usemaster_check,
+ static GtkWidget *adevice_use_alt_check, *audio_alt_device_entry;
+ static GtkWidget *mdevice_use_alt_check, *mixer_alt_device_entry;
+ static gint audio_device, mixer_device;
++static GtkWidget *stereo_check_button, *stereo_frame, *stereo_box;
++static GtkWidget *stereo_label, *stereo_align_button, *stereo_align_label;
++static GtkWidget *save3dse_check_button, *stereo_table, *hw_check_button;
++
+
+ static void configure_win_ok_cb(GtkWidget * w, gpointer data)
+ {
+@@ -69,6 +73,8 @@ static void configure_win_ok_cb(GtkWidge
+ xmms_cfg_write_string(cfgfile, "OSS", "alt_audio_device", oss_cfg.alt_audio_device);
+ xmms_cfg_write_boolean(cfgfile, "OSS", "use_alt_mixer_device", oss_cfg.use_alt_mixer_device);
+ xmms_cfg_write_string(cfgfile, "OSS", "alt_mixer_device", oss_cfg.alt_mixer_device);
++ xmms_cfg_write_int(cfgfile, "OSS", "stereo", oss_cfg.stereo);
++ xmms_cfg_write_boolean(cfgfile, "OSS", "hardware", oss_cfg.hardware_access);
+ xmms_cfg_write_default_file(cfgfile);
+ xmms_cfg_free(cfgfile);
+
+@@ -85,6 +91,98 @@ static void configure_win_mixer_dev_cb(G
+ mixer_device = device;
+ }
+
++static void stereo_check_button_cb(GtkWidget * widget, gpointer data)
++{
++ if (GTK_TOGGLE_BUTTON(widget)->active)
++ {
++ if (oss_cfg.stereo != -1)
++ oss_cfg.stereo = 1;
++ if (oss_cfg.hardware_access)
++ oss_hw_set_3dse(1);
++ else
++ oss_set_3dse(1);
++ }
++ else
++ {
++ if (oss_cfg.stereo != -1)
++ oss_cfg.stereo = 0;
++ if (oss_cfg.hardware_access)
++ oss_hw_set_3dse(0);
++ else
++ oss_set_3dse(0);
++ }
++}
++
++static void save3dse_check_button_cb(GtkWidget * widget, gpointer data)
++{
++ if (GTK_TOGGLE_BUTTON(widget)->active)
++ {
++ if (GTK_TOGGLE_BUTTON(data)->active)
++ oss_cfg.stereo = 1;
++ else
++ oss_cfg.stereo = 0;
++ }
++ else
++ {
++ oss_cfg.stereo = -1;
++ }
++}
++
++void warning_dialog(void)
++{
++ GtkWidget *dialog_window, *button, *label;
++ dialog_window = gtk_dialog_new();
++ gtk_window_set_title(GTK_WINDOW(dialog_window),
++ "WARNING: DIRECT ACCESS");
++ gtk_window_set_policy(GTK_WINDOW(dialog_window), FALSE, FALSE, TRUE);
++ gtk_window_set_position(GTK_WINDOW(dialog_window), GTK_WIN_POS_MOUSE);
++ button = gtk_button_new_with_label("Dismiss");
++ gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
++ GTK_SIGNAL_FUNC(gtk_widget_destroy), (gpointer)dialog_window);
++ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area),
++ button, TRUE, FALSE, 0);
++ gtk_widget_show(button);
++ label = gtk_label_new(
++ "Direct hardware access can cause damage to your sound card.\n"
++ "Only use this option when you are using OSS drivers that\n"
++ "doesn't support the SND_MIXER_3DSE ioctl.\n"
++ "USE THIS OPTION AT YOUR OWN RISK !!!\n"
++ "You can use the environment variable \"BLASTER\" to manual\n"
++ "set the port of the mixer of your sound card. Only use this\n"
++ "option when you really know the mixer address. The default\n"
++ "value is 0x220. Example:\n"
++ " BLASTER=M230 ; export BLASTER\n"
++ "SETTING THE WRONG BLASTER ENVIRONMENT CAN\n"
++ "CAUSE YOUR SYSTEM TO CRASH AND CAN CAUSE\n"
++ "PERMANENT DAMAGE !!!");
++ gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
++ gtk_misc_set_padding(GTK_MISC(label), 10, 10);
++ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox),
++ label, TRUE, TRUE, 0);
++ gtk_widget_show(label);
++ gtk_grab_add(dialog_window);
++ GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
++ gtk_widget_grab_default(button);
++ gtk_widget_show(dialog_window);
++}
++
++static void hw_check_button_cb(GtkWidget * widget, gpointer data)
++{
++ if (GTK_TOGGLE_BUTTON(widget)->active)
++ {
++ if (oss_cfg.hardware_access == 0)
++ warning_dialog();
++ oss_cfg.hardware_access = 1;
++ initHardwareAccess ();
++ gtk_widget_set_sensitive(stereo_check_button, TRUE);
++ gtk_widget_set_sensitive(save3dse_check_button, TRUE);
++ }
++ else
++ {
++ oss_cfg.hardware_access = 0;
++ }
++}
++
+ static void audio_device_toggled(GtkToggleButton * widget, gpointer data)
+ {
+ gboolean use_alt_audio_device = gtk_toggle_button_get_active(widget);
+@@ -148,10 +246,38 @@ static void scan_devices(gchar * type, G
+ }
+ else
+ {
+- item = gtk_menu_item_new_with_label(_("Default"));
+- gtk_signal_connect(GTK_OBJECT(item), "activate", sigfunc, (gpointer) 0);
+- gtk_widget_show(item);
+- gtk_menu_append(GTK_MENU(menu), item);
++#ifdef SOUND_MIXER_INFO
++ int i, fd;
++ gchar *dev_name;
++ mixer_info info;
++ for (i = 0; i < 10; i++) {
++ if (i)
++ dev_name = g_strdup_printf ("/dev/mixer%d", i);
++ else
++ dev_name = g_strdup_printf ("/dev/mixer");
++ if ((fd = open (dev_name, O_RDONLY)) != -1) {
++ if (ioctl (fd, SOUND_MIXER_INFO, &info) != -1) {
++ if (!index)
++ temp = g_strdup_printf ("Default (%s)", info.name);
++ else
++ temp = g_strdup_printf ("%s", info.name);
++ item = gtk_menu_item_new_with_label (temp);
++ g_free (temp);
++ gtk_signal_connect(GTK_OBJECT(item), "activate", sigfunc, (gpointer) index++);
++ gtk_widget_show(item);
++ gtk_menu_append(GTK_MENU(menu), item);
++ }
++ close(fd);
++ }
++ g_free(dev_name);
++ }
++#endif
++ if (!index) {
++ item = gtk_menu_item_new_with_label(_("Default"));
++ gtk_signal_connect(GTK_OBJECT(item), "activate", sigfunc, (gpointer) 0);
++ gtk_widget_show(item);
++ gtk_menu_append(GTK_MENU(menu), item);
++ }
+ }
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu);
+ }
+@@ -300,6 +426,69 @@ void oss_configure(void)
+ gtk_table_attach_defaults(GTK_TABLE(mixer_table), mixer_usemaster_check, 0, 1, 0, 1);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), mixer_frame, gtk_label_new(_("Mixer")));
+
++ stereo_frame = gtk_frame_new("3D Stereo Enhancement:");
++ gtk_container_set_border_width(GTK_CONTAINER(stereo_frame), 5);
++ gtk_widget_show(stereo_frame);
++ stereo_box = gtk_vbox_new(FALSE, 0);
++ gtk_widget_show(stereo_box);
++ stereo_table = gtk_table_new(3, 1, FALSE);
++ gtk_widget_show(stereo_table);
++ stereo_check_button = gtk_check_button_new_with_label("3D Stereo Enhancement");
++ gtk_signal_connect(GTK_OBJECT(stereo_check_button), "toggled",
++ GTK_SIGNAL_FUNC(stereo_check_button_cb), NULL);
++ save3dse_check_button = gtk_check_button_new_with_label("Save 3DSE setting");
++ gtk_signal_connect(GTK_OBJECT(save3dse_check_button), "toggled",
++ GTK_SIGNAL_FUNC(save3dse_check_button_cb), stereo_check_button);
++ hw_check_button = gtk_check_button_new_with_label("Direct hardware access");
++ gtk_signal_connect(GTK_OBJECT(hw_check_button), "toggled",
++ GTK_SIGNAL_FUNC(hw_check_button_cb), hw_check_button);
++ if (oss_cfg.stereo != -1)
++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(save3dse_check_button), TRUE);
++ if (oss_cfg.hardware_access)
++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hw_check_button), TRUE);
++ if (getuid () != 0 || geteuid () != 0)
++ gtk_widget_set_sensitive(hw_check_button, FALSE);
++ switch(oss_get_3dse())
++ {
++ case 1:
++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(stereo_check_button), TRUE);
++ case 0:
++ gtk_widget_set_sensitive(hw_check_button, FALSE);
++ oss_cfg.hardware_access = FALSE;
++ break;
++ case -1:
++ if (!oss_cfg.hardware_access)
++ {
++ gtk_widget_set_sensitive(stereo_check_button, FALSE);
++ gtk_widget_set_sensitive(save3dse_check_button, FALSE);
++ }
++ else
++ if(oss_hw_get_3dse())
++ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(stereo_check_button), TRUE);
++ break;
++ }
++ gtk_table_attach_defaults(GTK_TABLE(stereo_table), stereo_check_button, 0, 1, 0, 1);
++ gtk_widget_show(stereo_check_button);
++ gtk_table_attach_defaults(GTK_TABLE(stereo_table), save3dse_check_button, 0, 1, 1, 2);
++ gtk_widget_show(save3dse_check_button);
++ gtk_table_attach_defaults(GTK_TABLE(stereo_table), hw_check_button, 0, 1, 2, 3);
++ gtk_widget_show(hw_check_button);
++ stereo_align_button = gtk_alignment_new(0.2, 0.5, 0, 0);
++ gtk_container_add(GTK_CONTAINER(stereo_align_button), stereo_table);
++ gtk_widget_show(stereo_align_button);
++ stereo_label = gtk_label_new("Please note that not all sound cards support this feature.\n"
++ "Supported: SoundBlaster 16, ViBRA, AWE32/64.");
++ gtk_label_set_justify(GTK_LABEL(stereo_label), GTK_JUSTIFY_LEFT);
++ gtk_misc_set_padding(GTK_MISC(stereo_label), 5, 5);
++ gtk_widget_show(stereo_label);
++ stereo_align_label = gtk_alignment_new(0, 0, 0, 0);
++ gtk_container_add(GTK_CONTAINER(stereo_align_label), stereo_label);
++ gtk_widget_show(stereo_align_label);
++ gtk_box_pack_end(GTK_BOX(stereo_box), stereo_align_label, FALSE, FALSE, 0);
++ gtk_box_pack_end(GTK_BOX(stereo_box), stereo_align_button, TRUE, FALSE, 0);
++ gtk_container_add(GTK_CONTAINER(stereo_frame), stereo_box);
++ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), stereo_frame, gtk_label_new("3DSE"));
++
+ bbox = gtk_hbutton_box_new();
+ gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
+ gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
+@@ -317,4 +506,5 @@ void oss_configure(void)
+ gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
+
+ gtk_widget_show_all(configure_win);
++ gtk_notebook_set_page(GTK_NOTEBOOK(notebook), 0);
+ }
+--- xmms-1.2.11/Output/OSS/init.c.3dse 2001-03-08 06:49:47.000000000 +0100
++++ xmms-1.2.11/Output/OSS/init.c 2007-11-18 20:51:57.000000000 +0100
+@@ -33,6 +33,8 @@ void oss_init(void)
+ oss_cfg.use_alt_audio_device = FALSE;
+ oss_cfg.alt_audio_device = NULL;
+ oss_cfg.use_master=0;
++ oss_cfg.stereo = -1; /* = 3dse setting not saved */
++ oss_cfg.hardware_access = FALSE;
+
+ if ((cfgfile = xmms_cfg_open_default_file()))
+ {
+@@ -45,6 +47,32 @@ void oss_init(void)
+ xmms_cfg_read_string(cfgfile, "OSS", "alt_audio_device", &oss_cfg.alt_audio_device);
+ xmms_cfg_read_boolean(cfgfile, "OSS", "use_alt_mixer_device", &oss_cfg.use_alt_mixer_device);
+ xmms_cfg_read_string(cfgfile, "OSS", "alt_mixer_device", &oss_cfg.alt_mixer_device);
++ xmms_cfg_read_int(cfgfile, "OSS", "stereo", &oss_cfg.stereo);
++ xmms_cfg_read_boolean(cfgfile, "OSS", "hardware", &oss_cfg.hardware_access);
+ xmms_cfg_free(cfgfile);
+ }
++ if (oss_cfg.hardware_access)
++ if (initHardwareAccess() == -1)
++ oss_cfg.hardware_access = FALSE;
++
++ if (oss_cfg.hardware_access)
++ switch(oss_cfg.stereo)
++ {
++ case 0:
++ oss_hw_set_3dse(0);
++ break;
++ case 1:
++ oss_hw_set_3dse(1);
++ break;
++ }
++ else
++ switch(oss_cfg.stereo)
++ {
++ case 0:
++ oss_set_3dse(0);
++ break;
++ case 1:
++ oss_set_3dse(1);
++ break;
++ }
+ }
+--- xmms-1.2.11/Output/OSS/mixer.c.3dse 2001-06-16 15:30:35.000000000 +0200
++++ xmms-1.2.11/Output/OSS/mixer.c 2007-11-18 20:51:57.000000000 +0100
+@@ -32,6 +32,10 @@ static char* get_mixer_device(void)
+ return name;
+ }
+
++#include <sys/io.h>
++
++static int mixer_reg = 0, mixer_data = 0;
++
+ void oss_get_volume(int *l, int *r)
+ {
+ int fd, v, cmd, devs;
+@@ -64,6 +68,156 @@ void oss_get_volume(int *l, int *r)
+ }
+ }
+
++int oss_set_3dse(int stat)
++{
++ int fd;
++ gchar *devname;
++
++ if ((stat != 0) && (stat != 1))
++ return -1;
++
++ if (oss_cfg.mixer_device > 0)
++ devname = g_strdup_printf("/dev/mixer%d", oss_cfg.mixer_device);
++ else
++ devname = g_strdup("/dev/mixer");
++ fd = open(devname, O_RDONLY);
++ g_free(devname);
++
++ if (fd != -1)
++ {
++ if (ioctl(fd, SOUND_MIXER_3DSE, &stat) < 0)
++ {
++ close(fd);
++ return -1;
++ }
++ else
++ {
++ close(fd);
++ return stat;
++ }
++ }
++ return -1;
++}
++
++int oss_get_3dse(void)
++{
++ int fd, test_stat;
++ gchar *devname;
++
++ if (oss_cfg.mixer_device > 0)
++ devname = g_strdup_printf("/dev/mixer%d", oss_cfg.mixer_device);
++ else
++ devname = g_strdup("/dev/mixer");
++ fd = open(devname, O_RDONLY);
++ g_free(devname);
++
++ if (fd != -1)
++ {
++ test_stat = 2; /* code 2 will request status */
++ if (ioctl(fd, SOUND_MIXER_3DSE, &test_stat) < 0)
++ {
++ close(fd);
++ return -1;
++ }
++ else
++ {
++ close(fd);
++ return test_stat;
++ }
++ }
++ return -1;
++}
++
++static void check_legal_mixer ()
++{
++ if (!mixer_reg || !mixer_data)
++ {
++ fprintf(stderr, "Illegal mixer settings...\n");
++ exit(1);
++ }
++}
++
++void oss_hw_set_3dse(int stat)
++{
++ unsigned char b;
++ check_legal_mixer ();
++ switch(stat)
++ {
++ case 1:
++ outb(AWE_3DSE, mixer_reg);
++ b = inb(mixer_data);
++ b |= 1;
++ outb(b, mixer_data);
++ break;
++ case 0:
++ outb(AWE_3DSE, mixer_reg);
++ b = inb(mixer_data);
++ b &= 0xff - 1;
++ outb(b, mixer_data);
++ break;
++ }
++}
++
++int oss_hw_get_3dse(void)
++{
++ unsigned char b;
++ check_legal_mixer ();
++ outb(AWE_3DSE, mixer_reg);
++ b = inb(mixer_data);
++ return (b & 1);
++}
++
++int initHardwareAccess ()
++{
++ char *blasterEnv, *Aptr, *Mptr;
++ int tmp, mixer_base = 0;
++
++ if ((blasterEnv = getenv ("BLASTER")))
++ {
++ Aptr = blasterEnv;
++ while ((Aptr = strchr(Aptr, 'A')))
++ if ((tmp = strtol(++Aptr, &Aptr, 16)))
++ mixer_base = tmp;
++ Mptr = blasterEnv;
++ while ((Mptr = strchr(Mptr, 'M')))
++ if ((tmp = strtol(++Mptr, &Mptr, 16)))
++ mixer_base = tmp;
++ }
++ if (!mixer_base)
++ {
++ mixer_base = MIXER_BASE_DEFAULT;
++ }
++ else
++ {
++ switch (mixer_base)
++ {
++ case 0x210:
++ case 0x220:
++ case 0x230:
++ case 0x240:
++ case 0x250:
++ case 0x260:
++ case 0x280:
++ break;
++ default:
++ fprintf (stderr, "Illegal mixer base.\n");
++ exit (1);
++ }
++ }
++ mixer_reg = mixer_base + MIXER_REG_OFFSET;
++ mixer_data = mixer_base + MIXER_DATA_OFFSET;
++ if (getuid () == 0 && geteuid () == 0)
++ {
++ ioperm (mixer_reg, 1, 1);
++ ioperm (mixer_data, 1, 1);
++ return 0;
++ }
++ else
++ {
++ return -1;
++ }
++}
++
+ void oss_set_volume(int l, int r)
+ {
+ int fd, v, cmd, devs;
+--- xmms-1.2.11/Output/OSS/soundcard.h.3dse 2003-06-11 23:01:12.000000000 +0200
++++ xmms-1.2.11/Output/OSS/soundcard.h 2007-11-18 20:51:57.000000000 +0100
+@@ -1151,8 +1151,8 @@ typedef unsigned char mixer_record[128];
+ /*
+ * Two ioctls for special souncard function (OSS/Free only)
+ */
+-#define SOUND_MIXER_AGC _SIOWR('M', 103, int)
+-#define SOUND_MIXER_3DSE _SIOWR('M', 104, int)
++#define SOUND_MIXER_AGC __SIOWR('M', 103, int)
++#define SOUND_MIXER_3DSE __SIOWR('M', 104, int)
+ /*
+ * The SOUND_MIXER_PRIVATE# commands can be redefined by low level drivers.
+ * These features can be used when accessing device specific features.
diff --git a/extra/xmms/xmms-1.2.11-CVE-2007-0653.0654.patch b/extra/xmms/xmms-1.2.11-CVE-2007-0653.0654.patch
new file mode 100644
index 000000000..5fa977254
--- /dev/null
+++ b/extra/xmms/xmms-1.2.11-CVE-2007-0653.0654.patch
@@ -0,0 +1,43 @@
+--- xmms-1.2.11/xmms/bmp.c.CVE-2007-0653.0654 2006-07-16 15:40:04.000000000 +0200
++++ xmms-1.2.11/xmms/bmp.c 2007-11-18 21:23:11.000000000 +0100
+@@ -19,6 +19,12 @@
+ */
+ #include "xmms.h"
+
++#if HAVE_STDINT_H
++#include <stdint.h>
++#elif !defined(UINT32_MAX)
++#define UINT32_MAX 0xffffffffU
++#endif
++
+ struct rgb_quad
+ {
+ guchar rgbBlue;
+@@ -183,7 +189,7 @@ GdkPixmap *read_bmp(gchar * filename)
+ }
+ else if (bitcount != 24 && bitcount != 16 && bitcount != 32)
+ {
+- gint ncols, i;
++ guint32 ncols, i;
+
+ ncols = offset - headSize - 14;
+ if (headSize == 12)
+@@ -201,9 +207,17 @@ GdkPixmap *read_bmp(gchar * filename)
+ }
+ }
+ fseek(file, offset, SEEK_SET);
++ /* verify buffer size */
++ if (!h || !w ||
++ w > (((UINT32_MAX - 3) / 3) / h) ||
++ h > (((UINT32_MAX - 3) / 3) / w)) {
++ g_warning("read_bmp(): width(%u)*height(%u) too large", w, h);
++ fclose(file);
++ return NULL;
++ }
++ data = g_malloc0((w * 3 * h) + 3); /* +3 is just for safety */
+ buffer = g_malloc(imgsize);
+ fread(buffer, imgsize, 1, file);
+- data = g_malloc0((w * 3 * h) + 3); /* +3 is just for safety */
+
+ if (bitcount == 1)
+ read_1b_rgb(buffer, imgsize, data, w, h, rgb_quads);
diff --git a/extra/xmms/xmms-1.2.11-fix-http-title-mpg123.patch b/extra/xmms/xmms-1.2.11-fix-http-title-mpg123.patch
new file mode 100644
index 000000000..55c06a756
--- /dev/null
+++ b/extra/xmms/xmms-1.2.11-fix-http-title-mpg123.patch
@@ -0,0 +1,10 @@
+--- xmms-1.2.11/Input/mpg123/common.c~ 2007-11-18 20:37:41.000000000 +0100
++++ xmms-1.2.11/Input/mpg123/common.c 2007-11-18 20:40:10.000000000 +0100
+@@ -274,6 +274,7 @@ static gboolean read_id3v2_tag(unsigned
+ char *songname = mpg123_title;
+ mpg123_title =
+ mpg123_format_song_title(tag, mpg123_filename);
++ if (filept)
+ mpg123_ip.set_info(mpg123_title, mpg123_length,
+ mpg123_bitrate * 1000,
+ mpg123_frequency, mpg123_stereo);
diff --git a/extra/xmms/xmms-fix.diff b/extra/xmms/xmms-fix.diff
new file mode 100644
index 000000000..a810aa20c
--- /dev/null
+++ b/extra/xmms/xmms-fix.diff
@@ -0,0 +1,11 @@
+--- xmms-1.2.10+cvs20060429/xmms/util.c.orig 2006-11-05 12:29:59.000000000 +0800
++++ xmms-1.2.10+cvs20060429/xmms/util.c 2006-11-05 12:30:01.000000000 +0800
+@@ -175,7 +175,7 @@ GdkImage *create_dblsize_image(GdkImage
+ * This needs to be optimized
+ */
+
+- dblimg = gdk_image_new(GDK_IMAGE_NORMAL, gdk_visual_get_best(), img->width << 1, img->height << 1);
++ dblimg = gdk_image_new(GDK_IMAGE_NORMAL, gdk_visual_get_best_with_depth(img->depth), img->width << 1, img->height << 1);
+ if (dblimg->bpp == 1)
+ {
+ register guint8 *srcptr, *ptr, *ptr2, pix;
diff --git a/extra/xmms/xmms-menu.patch b/extra/xmms/xmms-menu.patch
new file mode 100644
index 000000000..39304f9fc
--- /dev/null
+++ b/extra/xmms/xmms-menu.patch
@@ -0,0 +1,35 @@
+--- xmms/xmms.desktop 2002-02-11 23:15:56.000000000 +0000
++++ xmms.desktop 2006-02-25 14:21:03.000000000 +0000
+@@ -1,21 +1,16 @@
+ [Desktop Entry]
+ Name=XMMS
+ Comment=X Multimedia System
+-comment[az]=X Multimedya Sistemi
+-comment[ca]=Sistema Multimdia per a X
+-comment[cs]=Multimediln pehrva
+-comment[es]=Sistema Multimedia para X
+-comment[gl]=Sistema Multimedia para X
+-comment[hr]=X Multimedijski Sustav
+-comment[nn]=X Multimedia-system
+-comment[pt_BR]=X Multimedia System
+-comment[ro]=X MultiMedia Sistem
+-comment[th]=кŵº X
+-comment[tr]=X Multimedya Sistem
+-comment[zh_TW]=X hCt
+-Encoding=Legacy-Mixed
++Comment[es]=Sistema Multimedia para X
++Comment[gl]=Sistema Multimedia para X
++Comment[hr]=X Multimedijski Sustav
++Comment[pt_BR]=X Multimedia System
++Comment[ro]=X MultiMedia Sistem
++Comment[tr]=X Multimedya Sistem
++Encoding=UTF-8
+ Exec=xmms
+-Icon=xmms_mini.xpm
+-MimeType=audio/x-scpls;audio/x-mpegurl;audio/mpegurl;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/x-wav;application/x-ogg
+-Terminal=0
++Icon=xmms
+ Type=Application
++Categories=Application;AudioVideo;
++MimeType=audio/x-scpls;audio/x-mpegurl;audio/mpegurl;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/x-wav;application/x-ogg
++Terminal=false
diff --git a/extra/xmms/xmms.16.png b/extra/xmms/xmms.16.png
new file mode 100644
index 000000000..c7f1a768b
--- /dev/null
+++ b/extra/xmms/xmms.16.png
Binary files differ
diff --git a/extra/xmms/xmms.32.png b/extra/xmms/xmms.32.png
new file mode 100644
index 000000000..1800ea571
--- /dev/null
+++ b/extra/xmms/xmms.32.png
Binary files differ
diff --git a/extra/xmms/xmms.48.png b/extra/xmms/xmms.48.png
new file mode 100644
index 000000000..999cb831a
--- /dev/null
+++ b/extra/xmms/xmms.48.png
Binary files differ
diff --git a/extra/xorg-appres/PKGBUILD b/extra/xorg-appres/PKGBUILD
new file mode 100644
index 000000000..cc1583a0b
--- /dev/null
+++ b/extra/xorg-appres/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113951 2011-03-10 22:00:42Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-appres
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="List X application resource database"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxt')
+makedepends=('xorg-util-macros')
+conflicts=('xorg-res-utils')
+source=(http://xorg.freedesktop.org/archive/individual/app/appres-${pkgver}.tar.bz2)
+sha1sums=('7303f12fae8cce92da2dbd88c9d31d816dc5da06')
+
+build() {
+ cd "${srcdir}/appres-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-bdftopcf/PKGBUILD b/extra/xorg-bdftopcf/PKGBUILD
new file mode 100644
index 000000000..0a6a35221
--- /dev/null
+++ b/extra/xorg-bdftopcf/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113655 2011-03-10 14:27:34Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-bdftopcf
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Convert X font from Bitmap Distribution Format to Portable Compiled Format"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxfont')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg' 'xorg-apps')
+source=(http://xorg.freedesktop.org/archive/individual/app/bdftopcf-${pkgver}.tar.bz2)
+sha1sums=('146b4ece2867479045c3b4593b22c9f1d21da14a')
+
+build() {
+ cd "${srcdir}/bdftopcf-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-font-util/PKGBUILD b/extra/xorg-font-util/PKGBUILD
new file mode 100644
index 000000000..d23ec52bc
--- /dev/null
+++ b/extra/xorg-font-util/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-font-util
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X.Org font utilities"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+makedepends=('xorg-util-macros')
+replaces=('font-util')
+provides=('font-util')
+conflicts=('font-util')
+groups=('xorg-fonts' 'xorg')
+source=(${url}/releases/individual/font/font-util-${pkgver}.tar.bz2)
+sha1sums=('011fa9c8fe08d9f6f848df570374ed1cb7488146')
+
+build() {
+ cd "${srcdir}/font-util-${pkgver}"
+ ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-mapdir=/usr/share/fonts/util --with-fontrootdir=/usr/share/fonts
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-iceauth/PKGBUILD b/extra/xorg-iceauth/PKGBUILD
new file mode 100644
index 000000000..47d56dc44
--- /dev/null
+++ b/extra/xorg-iceauth/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113660 2011-03-10 14:29:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-iceauth
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="ICE authority file utility"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libice')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/iceauth-${pkgver}.tar.bz2)
+sha1sums=('9b446c0d1815dce48bdea32db7dea7e429f6a310')
+
+build() {
+ cd "${srcdir}/iceauth-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-luit/PKGBUILD b/extra/xorg-luit/PKGBUILD
new file mode 100644
index 000000000..48b3446d8
--- /dev/null
+++ b/extra/xorg-luit/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 113665 2011-03-10 14:31:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-luit
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Filter that can be run between an arbitrary application and
+a UTF-8 terminal emulator"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libfontenc')
+groups=('xorg' 'xorg-apps')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/luit-${pkgver}.tar.bz2)
+sha1sums=('fa974b417f6b65c241398d8d011207c6facb0766')
+
+build() {
+ cd "${srcdir}/luit-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-mkfontscale/PKGBUILD b/extra/xorg-mkfontscale/PKGBUILD
new file mode 100644
index 000000000..b7eee43a6
--- /dev/null
+++ b/extra/xorg-mkfontscale/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113678 2011-03-10 14:41:30Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-mkfontscale
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="Create an index of scalable font files for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('freetype2' 'libfontenc')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/mkfontscale-${pkgver}.tar.bz2)
+sha1sums=('accfb12751bf3b7ae7b28c1b0b863d5be871398f')
+
+build() {
+ cd "${srcdir}/mkfontscale-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-oclock/PKGBUILD b/extra/xorg-oclock/PKGBUILD
new file mode 100644
index 000000000..5016247f2
--- /dev/null
+++ b/extra/xorg-oclock/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-oclock
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="Round X clock"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'libxext')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/oclock-${pkgver}.tar.bz2)
+sha1sums=('ba606d39fba6021c4db76d79751779f7b5c862e9')
+
+build() {
+ cd "${srcdir}/oclock-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-server/10-quirks.conf b/extra/xorg-server/10-quirks.conf
new file mode 100644
index 000000000..7afad22dc
--- /dev/null
+++ b/extra/xorg-server/10-quirks.conf
@@ -0,0 +1,10 @@
+# Collection of quirks and blacklist/whitelists for specific devices.
+
+
+# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
+# http://bugs.freedesktop.org/show_bug.cgi?id=22442
+Section "InputClass"
+ Identifier "ThinkPad HDAPS accelerometer blacklist"
+ MatchProduct "ThinkPad HDAPS accelerometer data"
+ Option "Ignore" "on"
+EndSection
diff --git a/extra/xorg-server/PKGBUILD b/extra/xorg-server/PKGBUILD
new file mode 100644
index 000000000..20913828a
--- /dev/null
+++ b/extra/xorg-server/PKGBUILD
@@ -0,0 +1,181 @@
+# $Id: PKGBUILD 114590 2011-03-14 10:49:00Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=xorg-server
+pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
+pkgver=1.9.4.901
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org"
+makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto' 'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp')
+options=('!libtool')
+source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
+ vbe-fix-malloc-size-bug.patch
+ xorg-redhat-die-ugly-pattern-die-die-die.patch
+ xvfb-run
+ xvfb-run.1
+ 10-quirks.conf)
+md5sums=('0fde9023db0581e9b145b4cd0784a3c5'
+ 'c22e6ec412769b1c30c44b1f45b50e02'
+ '1a336eb22e27cbf443ec5a2ecddfa93c'
+ '52fd3effd80d7bc6c1660d4ecf23d31c'
+ '376c70308715cd2643f7bff936d9934b'
+ 'd4f7dfc6be4ef4e2c6dd7632a9d88abe')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/vbe-fix-malloc-size-bug.patch"
+
+ # Get rid of the ugly pattern
+ patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch"
+
+ ./configure --prefix=/usr \
+ --enable-ipv6 \
+ --enable-dri \
+ --enable-dmx \
+ --enable-xvfb \
+ --enable-xnest \
+ --enable-composite \
+ --enable-xcsecurity \
+ --enable-xorg \
+ --enable-xephyr \
+ --enable-glx-tls \
+ --enable-kdrive \
+ --enable-install-setuid \
+ --enable-config-udev \
+ --disable-config-dbus \
+ --enable-record \
+ --disable-xfbdev \
+ --disable-xfake \
+ --disable-static \
+ --sysconfdir=/etc/X11 \
+ --localstatedir=/var \
+ --with-xkb-path=/usr/share/X11/xkb \
+ --with-xkb-output=/var/lib/xkb \
+ --with-dri-driver-path=/usr/lib/xorg/modules/dri \
+ --with-fontrootdir=/usr/share/fonts
+ make
+
+ sed -e 's/^DMX_SUBDIRS =.*/DMX_SUBDIRS =/' \
+ -e 's/^XVFB_SUBDIRS =.*/XVFB_SUBDIRS =/' \
+ -e 's/^XNEST_SUBDIRS =.*/XNEST_SUBDIRS = /' \
+ -e 's/^KDRIVE_SUBDIRS =.*/KDRIVE_SUBDIRS =/' \
+ -i hw/Makefile
+}
+
+package_xorg-server-common() {
+ pkgdesc="Xorg server common files"
+ depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
+
+ make -C xkb DESTDIR="${pkgdir}" install-data
+
+ install -m755 -d "${pkgdir}/usr/share/man/man1"
+ install -m644 doc/Xserver.1 "${pkgdir}/usr/share/man/man1/"
+
+ install -m755 -d "${pkgdir}/usr/lib/xorg"
+ install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/"
+}
+
+package_xorg-server() {
+ pkgdesc="Xorg X server"
+ depends=(libxdmcp libxfont udev libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-evdev)
+ backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
+ provides=('x-server')
+ groups=('xorg')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/X11"
+ mv "${pkgdir}/usr/share/X11/xorg.conf.d" "${pkgdir}/etc/X11/"
+ install -m644 "${srcdir}/10-quirks.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+
+ rmdir "${pkgdir}/usr/share/X11"
+
+ # Needed for non-mesa drivers, libgl will restore it
+ mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
+ "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"
+
+ rm -rf "${pkgdir}/var"
+
+ rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
+ rm -f "${pkgdir}/usr/lib/xorg/protocol.txt"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server/COPYING"
+
+ rm -rf "${pkgdir}/usr/lib/pkgconfig"
+ rm -rf "${pkgdir}/usr/include"
+ rm -rf "${pkgdir}/usr/share/aclocal"
+}
+
+package_xorg-server-xephyr() {
+ pkgdesc="A nested X server that runs as an X application"
+ depends=(libxfont libgl libgcrypt libxv pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/kdrive"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xephyr/COPYING"
+}
+
+package_xorg-server-xvfb() {
+ pkgdesc="Virtual framebuffer X server"
+ depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/vfb"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
+ install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xvfb"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xvfb/COPYING"
+}
+
+package_xorg-server-xnest() {
+ pkgdesc="A nested X server that runs as an X application"
+ depends=(libxfont libxext libgcrypt pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/xnest"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xnest/COPYING"
+}
+
+package_xorg-server-xdmx() {
+ pkgdesc="Distributed Multihead X Server and utilities"
+ depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/dmx"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xdmx/COPYING"
+}
+
+package_xorg-server-devel() {
+ pkgdesc="Development files for the X.Org X server"
+ depends=(xproto randrproto renderproto xextproto inputproto kbproto fontsproto videoproto dri2proto xineramaproto xorg-util-macros pixman libpciaccess)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/bin"
+ rm -rf "${pkgdir}/usr/share/man"
+ rm -rf "${pkgdir}/usr/share/doc"
+ rm -rf "${pkgdir}/usr/share/X11"
+ rm -rf "${pkgdir}/usr/lib/xorg"
+ rm -rf "${pkgdir}/var"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
+}
diff --git a/extra/xorg-server/vbe-fix-malloc-size-bug.patch b/extra/xorg-server/vbe-fix-malloc-size-bug.patch
new file mode 100644
index 000000000..01ed040d4
--- /dev/null
+++ b/extra/xorg-server/vbe-fix-malloc-size-bug.patch
@@ -0,0 +1,39 @@
+From 8ffaef2ebd2611e2eed4ef97350c3a34508f5252 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Thu, 24 Feb 2011 21:06:34 +0000
+Subject: vbe: Fix malloc size bug
+
+v2: Slightly more obvious sizing math.
+
+==14882== Invalid write of size 2
+==14882== at 0x6750267: VBEGetVBEInfo (vbe.c:400)
+==14882== by 0x6142064: ??? (in /usr/lib64/xorg/modules/drivers/vesa_drv.so)
+==14882== by 0x471895: InitOutput (xf86Init.c:519)
+==14882== by 0x422778: main (main.c:205)
+==14882== Address 0x4f32fa8 is 72 bytes inside a block of size 73 alloc'd
+==14882== at 0x4A0640D: malloc (vg_replace_malloc.c:236)
+==14882== by 0x675024B: VBEGetVBEInfo (vbe.c:398)
+==14882== by 0x6142064: ??? (in /usr/lib64/xorg/modules/drivers/vesa_drv.so)
+==14882== by 0x471895: InitOutput (xf86Init.c:519)
+==14882== by 0x422778: main (main.c:205)
+
+Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
+Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+(cherry picked from commit d8caa782009abf4dc17b945e325e83fda299a534)
+---
+diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c
+index 7a64a4a..1d3775b 100644
+--- a/hw/xfree86/vbe/vbe.c
++++ b/hw/xfree86/vbe/vbe.c
+@@ -395,7 +395,7 @@ VBEGetVBEInfo(vbeInfoPtr pVbe)
+ i = 0;
+ while (modes[i] != 0xffff)
+ i++;
+- block->VideoModePtr = malloc(sizeof(CARD16) * i + 1);
++ block->VideoModePtr = malloc(sizeof(CARD16) * (i + 1));
+ memcpy(block->VideoModePtr, modes, sizeof(CARD16) * i);
+ block->VideoModePtr[i] = 0xffff;
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch b/extra/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
new file mode 100644
index 000000000..4e782f1c6
--- /dev/null
+++ b/extra/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
@@ -0,0 +1,16 @@
+Remove the default root window grey stipple pattern, replacing it with
+blackness.
+
+--- xc/programs/Xserver/dix/window.c.die-ugly-pattern-die-die-die Tue Feb 12 16:33:04 2002
++++ xc/programs/Xserver/dix/window.c Tue Feb 12 16:45:32 2002
+@@ -119,8 +119,8 @@
+ *
+ ******/
+
+-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11};
+-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88};
++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00};
++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00};
+
+ int screenIsSaved = SCREEN_SAVER_OFF;
+
diff --git a/extra/xorg-server/xvfb-run b/extra/xorg-server/xvfb-run
new file mode 100644
index 000000000..4c2f4e0d3
--- /dev/null
+++ b/extra/xorg-server/xvfb-run
@@ -0,0 +1,180 @@
+#!/bin/sh
+
+# $Id: xvfb-run 2027 2004-11-16 14:54:16Z branden $
+
+# This script starts an instance of Xvfb, the "fake" X server, runs a command
+# with that server available, and kills the X server when done. The return
+# value of the command becomes the return value of this script.
+#
+# If anyone is using this to build a Debian package, make sure the package
+# Build-Depends on xvfb, xbase-clients, and xfonts-base.
+
+set -e
+
+PROGNAME=xvfb-run
+SERVERNUM=99
+AUTHFILE=
+ERRORFILE=/dev/null
+STARTWAIT=3
+XVFBARGS="-screen 0 640x480x8"
+LISTENTCP="-nolisten tcp"
+XAUTHPROTO=.
+
+# Query the terminal to establish a default number of columns to use for
+# displaying messages to the user. This is used only as a fallback in the event
+# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the
+# script is running, and this cannot, only being calculated once.)
+DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true
+if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then
+ DEFCOLUMNS=80
+fi
+
+# Display a message, wrapping lines at the terminal width.
+message () {
+ echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS}
+}
+
+# Display an error message.
+error () {
+ message "error: $*" >&2
+}
+
+# Display a usage message.
+usage () {
+ if [ -n "$*" ]; then
+ message "usage error: $*"
+ fi
+ cat <<EOF
+Usage: $PROGNAME [OPTION ...] COMMAND
+Run COMMAND (usually an X client) in a virtual X server environment.
+Options:
+-a --auto-servernum try to get a free server number, starting at
+ --server-num
+-e FILE --error-file=FILE file used to store xauth errors and Xvfb
+ output (default: $ERRORFILE)
+-f FILE --auth-file=FILE file used to store auth cookie
+ (default: ./.Xauthority)
+-h --help display this usage message and exit
+-n NUM --server-num=NUM server number to use (default: $SERVERNUM)
+-l --listen-tcp enable TCP port listening in the X server
+-p PROTO --xauth-protocol=PROTO X authority protocol name to use
+ (default: xauth command's default)
+-s ARGS --server-args=ARGS arguments (other than server number and
+ "-nolisten tcp") to pass to the Xvfb server
+ (default: "$XVFBARGS")
+-w DELAY --wait=DELAY delay in seconds to wait for Xvfb to start
+ before running COMMAND (default: $STARTWAIT)
+EOF
+}
+
+# Find a free server number by looking at .X*-lock files in /tmp.
+find_free_servernum() {
+ # Sadly, the "local" keyword is not POSIX. Leave the next line commented in
+ # the hope Debian Policy eventually changes to allow it in /bin/sh scripts
+ # anyway.
+ #local i
+
+ i=$SERVERNUM
+ while [ -f /tmp/.X$i-lock ]; do
+ i=$(($i + 1))
+ done
+ echo $i
+}
+
+# Clean up files
+clean_up() {
+ if [ -e "$AUTHFILE" ]; then
+ XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
+ fi
+ if [ -n "$XVFB_RUN_TMPDIR" ]; then
+ if ! rm -r "$XVFB_RUN_TMPDIR"; then
+ error "problem while cleaning up temporary directory"
+ exit 5
+ fi
+ fi
+}
+
+# Parse the command line.
+ARGS=$(getopt --options +ae:f:hn:lp:s:w: \
+ --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
+ --name "$PROGNAME" -- "$@")
+GETOPT_STATUS=$?
+
+if [ $GETOPT_STATUS -ne 0 ]; then
+ error "internal error; getopt exited with status $GETOPT_STATUS"
+ exit 6
+fi
+
+eval set -- "$ARGS"
+
+while :; do
+ case "$1" in
+ -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;;
+ -e|--error-file) ERRORFILE="$2"; shift ;;
+ -f|--auth-file) AUTHFILE="$2"; shift ;;
+ -h|--help) SHOWHELP="yes" ;;
+ -n|--server-num) SERVERNUM="$2"; shift ;;
+ -l|--listen-tcp) LISTENTCP="" ;;
+ -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;;
+ -s|--server-args) XVFBARGS="$2"; shift ;;
+ -w|--wait) STARTWAIT="$2"; shift ;;
+ --) shift; break ;;
+ *) error "internal error; getopt permitted \"$1\" unexpectedly"
+ exit 6
+ ;;
+ esac
+ shift
+done
+
+if [ "$SHOWHELP" ]; then
+ usage
+ exit 0
+fi
+
+if [ -z "$*" ]; then
+ usage "need a command to run" >&2
+ exit 2
+fi
+
+if ! which xauth >/dev/null; then
+ error "xauth command not found"
+ exit 3
+fi
+
+# tidy up after ourselves
+trap clean_up EXIT
+
+# If the user did not specify an X authorization file to use, set up a temporary
+# directory to house one.
+if [ -z "$AUTHFILE" ]; then
+ XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)"
+ AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
+fi
+
+# Start Xvfb.
+MCOOKIE=$(mcookie)
+XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
+add :$SERVERNUM $XAUTHPROTO $MCOOKIE
+EOF
+XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
+ 2>&1 &
+XVFBPID=$!
+sleep "$STARTWAIT"
+if ! kill -0 $XVFBPID 2>/dev/null; then
+ echo "Xvfb failed to start" >&2
+ exit 1
+fi
+
+# Start the command and save its exit status.
+set +e
+DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
+RETVAL=$?
+set -e
+
+# Kill Xvfb now that the command has exited.
+kill $XVFBPID
+
+# Return the executed command's exit status.
+exit $RETVAL
+
+# vim:set ai et sts=4 sw=4 tw=80:
diff --git a/extra/xorg-server/xvfb-run.1 b/extra/xorg-server/xvfb-run.1
new file mode 100644
index 000000000..137d3a196
--- /dev/null
+++ b/extra/xorg-server/xvfb-run.1
@@ -0,0 +1,282 @@
+.\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $
+.\"
+.\" Copyright 1998-2004 Branden Robinson <branden@debian.org>.
+.\"
+.\" This is free software; you may 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,
+.\" or (at your option) any later version.
+.\"
+.\" This 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 with
+.\" the Debian operating system, in /usr/share/common-licenses/GPL; if
+.\" not, write to the Free Software Foundation, Inc., 59 Temple Place,
+.\" Suite 330, Boston, MA 02111-1307 USA
+.\"
+.\" We need the URL macro from groff's www macro package, but also want
+.\" things to work all right for people who don't have it. So we define
+.\" our own URL macro and let the www macro package override it if it's
+.\" available.
+.de URL
+\\$2 \(laURL: \\$1 \(ra\\$3
+..
+.if \n[.g] .mso www.tmac
+.TH xvfb\-run 1 "2004\-11\-12" "Debian Project"
+.SH NAME
+xvfb\-run \- run specified X client or command in a virtual X server environment
+.SH SYNOPSIS
+.B xvfb\-run
+[
+.I options
+]
+.I command
+.SH DESCRIPTION
+.B xvfb\-run
+is a wrapper for the
+.BR Xvfb (1x)
+command which simplifies the task of running commands (typically an X
+client, or a script containing a list of clients to be run) within a virtual
+X server environment.
+.PP
+.B xvfb\-run
+sets up an X authority file (or uses an existing user\-specified one),
+writes a cookie to it (see
+.BR xauth (1x))
+and then starts the
+.B Xvfb
+X server as a background process.
+The process ID of
+.B Xvfb
+is stored for later use.
+The specified
+.I command
+is then run using the X display corresponding to the
+.B Xvfb
+server
+just started and the X authority file created earlier.
+.PP
+When the
+.I command
+exits, its status is saved, the
+.B Xvfb
+server is killed (using the process ID stored earlier), the X authority
+cookie removed, and the authority file deleted (if the user did not specify
+one to use).
+.B xvfb\-run
+then exits with the exit status of
+.IR command .
+.PP
+.B xvfb\-run
+requires the
+.B xauth
+command to function.
+.SH OPTIONS
+.TP
+.B \-a\fR,\fB \-\-auto\-servernum
+Try to get a free server number, starting at 99, or the argument to
+.BR \-\-server\-num .
+.TP
+.BI \-e\ file \fR,\fB\ \-\-error\-file= file
+Store output from
+.B xauth
+and
+.B Xvfb
+in
+.IR file .
+The default is
+.IR /dev/null .
+.TP
+.BI \-f\ file \fR,\fB\ \-\-auth\-file= file
+Store X authentication data in
+.IR file .
+By default, a temporary directory called
+.IR xvfb\-run. PID
+(where PID is the process ID of
+.B xvfb\-run
+itself) is created in the directory specified by the environment variable
+.B TMPDIR
+(or
+.I /tmp
+if that variable is null or unset), and the
+.BR tempfile (1)
+command is used to create a file in that temporary directory called
+.IR Xauthority .
+.TP
+.B \-h\fR,\fB \-\-help
+Display a usage message and exit.
+.TP
+.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber
+Use
+.I servernumber
+as the server number (but see the
+.B \-a\fR,\fB \-\-auto\-servernum
+option above).
+The default is 99.
+.TP
+.B \-l\fR,\fB \-\-listen\-tcp
+Enable TCP port listening in the X server.
+For security reasons (to avoid denial\-of\-service attacks or exploits),
+TCP port listening is disabled by default.
+.TP
+.BI \-p\ protocolname \fR,\fB\ \-\-xauth\-protocol= protocolname
+Use
+.I protocolname
+as the X authority protocol to use.
+The default is \(oq.\(cq, which
+.B xauth
+interprets as its own default protocol, which is MIT\-MAGIC\-COOKIE\-1.
+.TP
+.BI \-s\ arguments \fR,\fB\ \-\-server\-args= arguments
+Pass
+.I arguments
+to the
+.B Xvfb
+server.
+Be careful to quote any whitespace characters that may occur within
+.I arguments
+to prevent them from regarded as separators for
+.BR xvfb\-run 's
+own arguments.
+Also, note that specification of \(oq\-nolisten tcp\(cq in
+.I arguments
+may override the function of
+.BR xvfb\-run 's
+own
+.B \-l\fR,\fB \-\-listen\-tcp
+option, and that specification of the server number (e.g., \(oq:1\(cq) may
+be ignored because of the way the X server parses its argument list.
+Use the
+.B xvfb\-run
+option
+.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber
+to achieve the latter function.
+The default is \(oq\-screen 0 640x480x8\(cq.
+.TP
+.BI \-w\ delay \fR,\fB\ \-\-wait= delay
+Wait
+.I delay
+seconds after launching
+.B Xvfb
+before attempting to start the specified command.
+The default is 3.
+.SH ENVIRONMENT
+.TP
+.B COLUMNS
+indicates the width of the terminal device in character cells.
+This value is used for formatting diagnostic messages.
+If not set, the terminal is queried using
+.BR stty (1)
+to determine its width.
+If that fails, a value of \(oq80\(cq is assumed.
+.TP
+.B TMPDIR
+specifies the directory in which to place
+.BR xvfb\-run 's
+temporary directory for storage of the X authority file; only used if the
+.B \-f
+or
+.B \-\-auth\-file
+options are not specified.
+.SH "OUTPUT FILES"
+.PP
+Unless the
+.B \-f
+or
+.B \-\-auth\-file
+options are specified, a temporary
+directory and file within it are created (and deleted) to store the X
+authority cookies used by the
+.B Xvfb
+server and client(s) run under it.
+See
+.BR tempfile (1).
+If \-f or \-\-auth\-file are used, then the specified X authority file is
+only written to, not created or deleted (though
+.B xauth
+creates an authority file itself if told to use use that does not already
+exist).
+.PP
+An error file with a user\-specified name is also created if the
+.B \-e
+or
+.B \-\-error\-file
+options are specifed; see above.
+.SH "EXIT STATUS"
+.B xvfb\-run
+uses its exit status as well as output to standard error to communicate
+diagnostics.
+The exit status of \(oq1\(cq is not used, and should be interpreted as failure
+of the specified command.
+.TP
+0
+.B xvfb\-run
+only uses this exit status if the
+.B \-h\fR,\fB \-\-help
+option is given.
+In all other situations, this may be interpreted as success of the specified
+command.
+.TP
+2
+No command to run was specified.
+.TP
+3
+The
+.B xauth
+command is not available.
+.TP
+4
+The temporary directory that was going to be used already exists; since
+.B xvfb\-run
+produces a uniquely named directory, this may indicate an attempt by another
+process on the system to exploit a temporary file race condition.
+.TP
+5
+A problem was encountered while cleaning up the temporary directory.
+.TP
+6
+A problem was encountered while using
+.BR getopt (1)
+to parse the command\-line arguments.
+.SH EXAMPLES
+.TP
+.B xvfb\-run \-\-auto\-servernum \-\-server\-num=1 xlogo
+runs the
+.BR xlogo (1x)
+demonstration client inside the
+.B Xvfb
+X server on the first available server number greater than or equal to 1.
+.TP
+.B xvfb\-run \-\-server\-args="\-screen 0 1024x768x24" ico \-faces
+runs the
+.BR ico (1x)
+demonstration client (and passes it the
+.B \-faces
+argument) inside the
+.B Xvfb
+X server, configured with a root window of 1024 by 768 pixels and a color
+depth of 24 bits.
+.PP
+Note that the demo X clients used in the above examples will not exit on
+their own, so they will have to be killed before
+.B xvfb\-run
+will exit.
+.SH BUGS
+See
+.URL "http://bugs.debian.org/xvfb" "the Debian Bug Tracking System" .
+If you wish to report a bug in
+.BR xvfb\-run ,
+please use the
+.BR reportbug (1)
+command.
+.SH AUTHOR
+.B xfvb\-run
+was written by Branden Robinson and Jeff Licquia with sponsorship from
+Progeny Linux Systems.
+.SH "SEE ALSO"
+.BR Xvfb (1x),
+.BR xauth (1x)
+.\" vim:set et tw=80:
diff --git a/extra/xorg-sessreg/PKGBUILD b/extra/xorg-sessreg/PKGBUILD
new file mode 100644
index 000000000..4cd6d1e86
--- /dev/null
+++ b/extra/xorg-sessreg/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113683 2011-03-10 14:43:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-sessreg
+pkgver=1.0.6
+pkgrel=2
+pkgdesc="Register X sessions in system utmp/utmpx databases"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-util-macros' 'xproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/sessreg-${pkgver}.tar.bz2)
+sha1sums=('6f260f1ddc366da070a6d60301b9fb64a99c119a')
+
+build() {
+ cd "${srcdir}/sessreg-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-setxkbmap/PKGBUILD b/extra/xorg-setxkbmap/PKGBUILD
new file mode 100644
index 000000000..b25f37dc1
--- /dev/null
+++ b/extra/xorg-setxkbmap/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113688 2011-03-10 14:45:16Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-setxkbmap
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Set the keyboard using the X Keyboard Extension"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxkbfile')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/setxkbmap-${pkgver}.tar.bz2)
+sha1sums=('860785e16313d30792fe62604f65d84281812322')
+
+build() {
+ cd "${srcdir}/setxkbmap-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-smproxy/PKGBUILD b/extra/xorg-smproxy/PKGBUILD
new file mode 100644
index 000000000..50964a380
--- /dev/null
+++ b/extra/xorg-smproxy/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113698 2011-03-10 14:47:17Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-smproxy
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Allows X applications that do not support X11R6 session management to participate in an X11R6 session"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libsm' 'libxt' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/smproxy-${pkgver}.tar.bz2)
+sha1sums=('ea9639b6d0669f157ac62b807cdba64f509b25ed')
+
+build() {
+ cd "${srcdir}/smproxy-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-twm/PKGBUILD b/extra/xorg-twm/PKGBUILD
new file mode 100644
index 000000000..b5b62d210
--- /dev/null
+++ b/extra/xorg-twm/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 113881 2011-03-10 17:47:05Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-twm
+pkgver=1.0.6
+pkgrel=2
+pkgdesc="Tab Window Manager for the X Window System"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+backup=(etc/X11/twm/system.twmrc)
+license=('custom')
+depends=('libxmu')
+makedepends=('xorg-util-macros')
+source=(${url}/releases/individual/app/twm-${pkgver}.tar.bz2)
+sha1sums=('5c28194c9c620b34df56fdee140d662425ba8a86')
+
+build() {
+ cd "${srcdir}/twm-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/twm-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/X11/twm"
+ install -m644 src/system.twmrc "${pkgdir}/etc/X11/twm/"
+ install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/extra/xorg-x11perf/PKGBUILD b/extra/xorg-x11perf/PKGBUILD
new file mode 100644
index 000000000..c350c59bb
--- /dev/null
+++ b/extra/xorg-x11perf/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 113703 2011-03-10 14:49:36Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-x11perf
+pkgver=1.5.3
+pkgrel=2
+pkgdesc="Simple X server performance benchmarker"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'libxrender' 'libxft' 'libxext')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/x11perf-${pkgver}.tar.bz2)
+sha1sums=('2fd00ba38c36c569751bbe3d60917df2a39e10ba')
+
+build() {
+ cd "${srcdir}/x11perf-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/x11perf-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xauth/PKGBUILD b/extra/xorg-xauth/PKGBUILD
new file mode 100644
index 000000000..85a358954
--- /dev/null
+++ b/extra/xorg-xauth/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113711 2011-03-10 14:51:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xauth
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="X.Org authorization settings program"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/xauth-${pkgver}.tar.bz2)
+sha1sums=('6d94b5822e8ce08630a8ff510230246d5ed45290')
+
+build() {
+ cd "${srcdir}/xauth-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xbacklight/PKGBUILD b/extra/xorg-xbacklight/PKGBUILD
new file mode 100644
index 000000000..5ed14c78c
--- /dev/null
+++ b/extra/xorg-xbacklight/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113718 2011-03-10 14:54:32Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xbacklight
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="RandR-based backlight control application"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxrandr' 'libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xbacklight-${pkgver}.tar.bz2)
+sha1sums=('e297b359ab83f3844ca5ea1c23280b2f8bb71cfd')
+
+build() {
+ cd "${srcdir}/xbacklight-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xbiff/PKGBUILD b/extra/xorg-xbiff/PKGBUILD
new file mode 100644
index 000000000..60c750ed2
--- /dev/null
+++ b/extra/xorg-xbiff/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 108983 2011-02-05 10:35:36Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xbiff
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Watch mailboxes for new message delivery"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxext')
+makedepends=('xorg-util-macros' 'xbitmaps')
+source=(http://xorg.freedesktop.org/archive/individual/app/xbiff-${pkgver}.tar.bz2)
+sha1sums=('17337a951264f0f96f6d03893f9dfd9cf8f12a5a')
+
+build() {
+ cd "${srcdir}/xbiff-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/xbiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xcalc/PKGBUILD b/extra/xorg-xcalc/PKGBUILD
new file mode 100644
index 000000000..8272a7965
--- /dev/null
+++ b/extra/xorg-xcalc/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xcalc
+pkgver=1.0.4.1
+pkgrel=1
+pkgdesc="Scientific calculator for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xcalc-${pkgver}.tar.bz2)
+sha1sums=('2206fc4bf3719c43fa13a6c64a37b40607d8e5e2')
+
+build() {
+ cd "${srcdir}/xcalc-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xclipboard/PKGBUILD b/extra/xorg-xclipboard/PKGBUILD
new file mode 100644
index 000000000..08f506c42
--- /dev/null
+++ b/extra/xorg-xclipboard/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xclipboard
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X clipboard manager"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xclipboard-${pkgver}.tar.bz2)
+sha1sums=('922ddf89acd0781156e9ccdf191a3e0c6376415a')
+
+build() {
+ cd "${srcdir}/xclipboard-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xclock/PKGBUILD b/extra/xorg-xclock/PKGBUILD
new file mode 100644
index 000000000..db6506846
--- /dev/null
+++ b/extra/xorg-xclock/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xclock
+pkgver=1.0.5
+pkgrel=1
+pkgdesc="X clock"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'libxaw' 'libxrender' 'libxft' 'libxkbfile')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xclock-${pkgver}.tar.bz2)
+sha1sums=('1651ac8961c0aa287a6a7412ee5e6d3bfc3bb3e2')
+
+build() {
+ cd "${srcdir}/xclock-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xcmsdb/PKGBUILD b/extra/xorg-xcmsdb/PKGBUILD
new file mode 100644
index 000000000..58fdd734f
--- /dev/null
+++ b/extra/xorg-xcmsdb/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113723 2011-03-10 14:58:44Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xcmsdb
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="Device Color Characterization utility for X Color Management System"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xcmsdb-${pkgver}.tar.bz2)
+sha1sums=('14df39b4d5518f551302c210131dcc5bac03f3ff')
+
+build() {
+ cd "${srcdir}/xcmsdb-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xconsole/PKGBUILD b/extra/xorg-xconsole/PKGBUILD
new file mode 100644
index 000000000..204892339
--- /dev/null
+++ b/extra/xorg-xconsole/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xconsole
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Monitor system console messages with X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xconsole-${pkgver}.tar.bz2)
+sha1sums=('195299d4948ba4c62e961ddd0bd4572283244715')
+
+build() {
+ cd "${srcdir}/xconsole-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xcursorgen/PKGBUILD b/extra/xorg-xcursorgen/PKGBUILD
new file mode 100644
index 000000000..f798e9591
--- /dev/null
+++ b/extra/xorg-xcursorgen/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113731 2011-03-10 15:00:48Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xcursorgen
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Create an X cursor file from PNG images"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxcursor' 'libpng')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xcursorgen-${pkgver}.tar.bz2)
+sha1sums=('244c180aae8cc07175b93f314d5bbbf24171658a')
+
+build() {
+ cd "${srcdir}/xcursorgen-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xdm/LICENSE b/extra/xorg-xdm/LICENSE
new file mode 100644
index 000000000..5f8d6fcc0
--- /dev/null
+++ b/extra/xorg-xdm/LICENSE
@@ -0,0 +1,132 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/app/
+
+Copyright 1988, 1989, 1990, 1991, 1994, 1998
+The Open Group
+Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+prngc.c:
+Copyright (c) 1995,1999 Theo de Raadt. All rights reserved.
+Copyright (c) 2001-2002 Damien Miller. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+dm_socket.h, dm_error.h, dm_auth.h
+Copyright 1998 by Thomas E. Dickey <dickey@clark.net>
+
+ All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization.
+
+genauth.c:
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All
+rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, and the entire permission notice in its entirety,
+ including the disclaimer of warranties.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF
+WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+Makefile.am
+Copyright 2005 Red Hat, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Red Hat not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Red Hat makes no
+representations about the suitability of this software for any purpose. It
+is provided "as is" without express or implied warranty.
+
+RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/extra/xorg-xdm/PKGBUILD b/extra/xorg-xdm/PKGBUILD
new file mode 100644
index 000000000..66f376ed2
--- /dev/null
+++ b/extra/xorg-xdm/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 105533 2011-01-10 11:03:46Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=xorg-xdm
+pkgver=1.1.10
+pkgrel=2
+pkgdesc="X Display Manager"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('pam' 'libxaw' 'libxinerama' 'xorg-xrdb' 'xorg-sessreg' 'libxft')
+makedepends=('pkgconfig')
+backup=(etc/X11/xdm/Xaccess etc/X11/xdm/Xresources etc/X11/xdm/Xservers etc/X11/xdm/xdm-config etc/pam.d/xdm etc/X11/xdm/Xsetup_0 etc/X11/xdm/Xsession)
+options=('!libtool')
+source=(${url}/releases/individual/app/xdm-${pkgver}.tar.bz2
+ Xsession-loginshell.patch
+ Xsession-xsm.patch
+ xdm.pam)
+md5sums=('329383040cdbda5b5c8ce6c7e1120c97'
+ '234ae568e7b22cbc09433bb396ff3d80'
+ '2c30078c50bc653d72eb5114506eb313'
+ '419d6289ba6f851135f5c70c0e3cbec4')
+
+build() {
+ cd "${srcdir}/xdm-${pkgver}"
+ patch -Np0 -i "${srcdir}/Xsession-loginshell.patch"
+ patch -Np1 -i "${srcdir}/Xsession-xsm.patch"
+ ./configure --prefix=/usr \
+ --disable-xdm-auth \
+ --disable-static \
+ --with-xdmconfigdir=/etc/X11/xdm \
+ --with-xdmscriptdir=/etc/X11/xdm \
+ --with-pixmapdir=/usr/share/xdm/pixmaps
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/var/lib/xdm"
+ install -m755 -d "${pkgdir}/etc/pam.d"
+ install -m644 "${srcdir}/xdm.pam" "${pkgdir}/etc/pam.d/xdm"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ sed -i -e 's/\/X11R6//g' "${pkgdir}"/etc/X11/xdm/*
+}
diff --git a/extra/xorg-xdm/Xsession-loginshell.patch b/extra/xorg-xdm/Xsession-loginshell.patch
new file mode 100644
index 000000000..3710752ef
--- /dev/null
+++ b/extra/xorg-xdm/Xsession-loginshell.patch
@@ -0,0 +1,15 @@
+--- config/Xsession.cpp.orig 2008-06-21 13:57:36.000000000 +0000
++++ config/Xsession.cpp 2008-06-21 14:01:25.000000000 +0000
+@@ -56,11 +56,7 @@
+ resources=$HOME/.Xresources
+
+ if [ -s "$startup" ]; then
+- if [ -x "$startup" ]; then
+- exec "$startup"
+- else
+- exec /bin/sh "$startup"
+- fi
++ exec /bin/sh -ls -c "$startup"
+ else
+ if [ -r "$resources" ]; then
+ BINDIR/xrdb -load "$resources"
diff --git a/extra/xorg-xdm/Xsession-xsm.patch b/extra/xorg-xdm/Xsession-xsm.patch
new file mode 100644
index 000000000..a2d4d6cc6
--- /dev/null
+++ b/extra/xorg-xdm/Xsession-xsm.patch
@@ -0,0 +1,22 @@
+diff -Naur xdm-1.1.8-orig/config/Xsession.cpp xdm-1.1.8/config/Xsession.cpp
+--- xdm-1.1.8-orig/config/Xsession.cpp 2008-05-21 14:08:45.000000000 -0400
++++ xdm-1.1.8/config/Xsession.cpp 2009-04-28 02:56:11.000000000 -0400
+@@ -54,6 +54,7 @@
+
+ startup=$HOME/.xsession
+ resources=$HOME/.Xresources
++xinitrc=$HOME/.xinitrc
+
+ if [ -s "$startup" ]; then
+ if [ -x "$startup" ]; then
+@@ -83,5 +84,9 @@
+ exec `eval $XDESKTOP`
+ }
+ #endif
+- exec BINDIR/xsm
++ if [ -r "$xinitrc" ]; then
++ exec /bin/sh -ls -c "$xinitrc"
++ else
++ exec /bin/sh -l /etc/X11/xinit/xinitrc
++ fi
+ fi
diff --git a/extra/xorg-xdm/xdm.pam b/extra/xorg-xdm/xdm.pam
new file mode 100644
index 000000000..862b83fa2
--- /dev/null
+++ b/extra/xorg-xdm/xdm.pam
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth required pam_unix.so
+auth required pam_nologin.so
+auth required pam_env.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_unix.so
+session required pam_limits.so
diff --git a/extra/xorg-xdpyinfo/PKGBUILD b/extra/xorg-xdpyinfo/PKGBUILD
new file mode 100644
index 000000000..4ec899376
--- /dev/null
+++ b/extra/xorg-xdpyinfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113736 2011-03-10 15:06:24Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xdpyinfo
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Display information utility for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxext' 'libxtst' 'libxxf86vm' 'libxxf86dga' 'libxrender' 'libxcomposite' 'libxinerama' 'libdmx')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xdpyinfo-${pkgver}.tar.bz2)
+sha1sums=('5d53cd31afd40bdc4575b5347f2cda67f135f5f2')
+
+build() {
+ cd "${srcdir}/xdpyinfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xdriinfo/PKGBUILD b/extra/xorg-xdriinfo/PKGBUILD
new file mode 100644
index 000000000..643fe2e93
--- /dev/null
+++ b/extra/xorg-xdriinfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113746 2011-03-10 15:15:21Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xdriinfo
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Query configuration information of DRI drivers"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libgl')
+makedepends=('xorg-util-macros' 'glproto' 'mesa')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xdriinfo-${pkgver}.tar.bz2)
+sha1sums=('723482b3fc627d7cc6124fec43dd1c21d102daaa')
+
+build() {
+ cd "${srcdir}/xdriinfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xedit/PKGBUILD b/extra/xorg-xedit/PKGBUILD
new file mode 100644
index 000000000..b6a7dbf41
--- /dev/null
+++ b/extra/xorg-xedit/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xedit
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Simple text editor for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xedit-${pkgver}.tar.bz2)
+sha1sums=('e6f8735d09c9da67bba3cd3c39f34f5d1fc79a70')
+
+build() {
+ cd "${srcdir}/xedit-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xev/PKGBUILD b/extra/xorg-xev/PKGBUILD
new file mode 100644
index 000000000..70f75e86b
--- /dev/null
+++ b/extra/xorg-xev/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113751 2011-03-10 15:22:05Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xev
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Print contents of X events"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xev-${pkgver}.tar.bz2)
+sha1sums=('77dcbdaa2046db56f31936f921843bd05df2255f')
+
+build() {
+ cd "${srcdir}/xev-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xeyes/PKGBUILD b/extra/xorg-xeyes/PKGBUILD
new file mode 100644
index 000000000..aea051d3a
--- /dev/null
+++ b/extra/xorg-xeyes/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xeyes
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Follow the mouse/SHAPE extension X demo"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxt' 'libxext' 'libxmu' 'libxrender')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xeyes-${pkgver}.tar.bz2)
+sha1sums=('efe6116d31a7f69e4fb6038613e52b0960b9b61c')
+
+build() {
+ cd "${srcdir}/xeyes-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xfd/PKGBUILD b/extra/xorg-xfd/PKGBUILD
new file mode 100644
index 000000000..8d7aec33c
--- /dev/null
+++ b/extra/xorg-xfd/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xfd
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Displays all the characters in a font using either the X11 core protocol or libXft2"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'fontconfig' 'libxft' 'libxrender' 'libxmu')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xfd-${pkgver}.tar.bz2)
+sha1sums=('9cf24f00b428bc02d8635634cdb3b7422e7d74a5')
+
+build() {
+ cd "${srcdir}/xfd-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xfontsel/PKGBUILD b/extra/xorg-xfontsel/PKGBUILD
new file mode 100644
index 000000000..cca0d453e
--- /dev/null
+++ b/extra/xorg-xfontsel/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xfontsel
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Point and click selection of X11 font names"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xfontsel-${pkgver}.tar.bz2)
+sha1sums=('df2eb12b90339b7091bd362b095344015ec8b6fa')
+
+build() {
+ cd "${srcdir}/xfontsel-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xfs/PKGBUILD b/extra/xorg-xfs/PKGBUILD
new file mode 100644
index 000000000..606076b8f
--- /dev/null
+++ b/extra/xorg-xfs/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 108976 2011-02-05 10:30:46Z andyrtr $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xfs
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X.Org X11 xfs font server"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+backup=('etc/X11/fs/config')
+depends=('xorg-font-utils' 'libxfont>=1.4.0' 'libfs>=1.0.2' 'libx11>=1.2.2')
+makedepends=('pkgconfig' 'xtrans')
+source=(${url}/releases/individual/app/xfs-${pkgver}.tar.bz2
+ ${url}/releases/individual/app/xfsinfo-1.0.3.tar.bz2
+ ${url}/releases/individual/app/fslsfonts-1.0.3.tar.bz2
+ ${url}/releases/individual/app/fstobdf-1.0.4.tar.bz2
+ ${url}/releases/individual/app/showfont-1.0.3.tar.bz2
+ xfs.rc)
+md5sums=('e02c6cae689c082b8c98a421df8f8670'
+ 'aae6fa48b5c2ce9186a5ff4ccc14a1d4'
+ '9b50d967ac6d4bae9bffb62a5e527a50'
+ 'fc1f42aac16d6b76c79a1a3a0fb6a53b'
+ '50b466ab6ed4a5b8df5abf1ef844309a'
+ '251f5447f64151e9bb096ebc9f999c3f')
+
+build() {
+ cd "${srcdir}"
+ pushd xfs-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make configdir=/etc/X11/fs
+ popd
+
+ for i in xfsinfo-* fslsfonts-* fstobdf-* showfont-*; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ ./configure --prefix=/usr
+ make
+ popd
+ fi
+ done
+}
+
+package() {
+ cd "${srcdir}"
+ pushd xfs-${pkgver}
+ make configdir=/etc/X11/fs DESTDIR="${pkgdir}" install
+ sed -i -e 's|/lib/X11/|/share/|g' "${pkgdir}/etc/X11/fs/config"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.xfs"
+ popd
+
+ for i in xfsinfo-* fslsfonts-* fstobdf-* showfont-*; do
+ if [ -d "${i}" ]; then
+ pushd "${i}"
+ make DESTDIR="${pkgdir}" install
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${i%-*}"
+ popd
+ fi
+ done
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 "${srcdir}/xfs.rc" "${pkgdir}/etc/rc.d/xfs"
+}
diff --git a/extra/xorg-xfs/xfs.rc b/extra/xorg-xfs/xfs.rc
new file mode 100644
index 000000000..caac86106
--- /dev/null
+++ b/extra/xorg-xfs/xfs.rc
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/bin/xfs`
+case "$1" in
+ start)
+ stat_busy "Starting X.Org fontserver"
+ if [ -z "$PID" ]; then
+ /usr/bin/xfs -daemon &> /dev/null
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon xfs
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping X.Org fontserver"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon xfs
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ reload)
+ stat_busy "Reloading X.Org fontserver configuration"
+ [ ! -z "$PID" ] && kill -HUP $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ stat_done
+ fi
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart|reload}"
+esac
diff --git a/extra/xorg-xgamma/PKGBUILD b/extra/xorg-xgamma/PKGBUILD
new file mode 100644
index 000000000..a1cfff2aa
--- /dev/null
+++ b/extra/xorg-xgamma/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113756 2011-03-10 15:23:53Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xgamma
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Alter a monitor's gamma correction"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxxf86vm')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xgamma-${pkgver}.tar.bz2)
+sha1sums=('c4124b42618c6d4bc9eb9690348b5d60e4c9daed')
+
+build() {
+ cd "${srcdir}/xgamma-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xhost/PKGBUILD b/extra/xorg-xhost/PKGBUILD
new file mode 100644
index 000000000..99f1f3399
--- /dev/null
+++ b/extra/xorg-xhost/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113761 2011-03-10 15:26:14Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xhost
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Server access control program for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xhost-${pkgver}.tar.bz2)
+sha1sums=('b4fde9899861f1a97395f8c7197db00cc44242a7')
+
+build() {
+ cd "${srcdir}/xhost-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xinit/06_move_serverauthfile_into_tmp.diff b/extra/xorg-xinit/06_move_serverauthfile_into_tmp.diff
new file mode 100644
index 000000000..99e8a6754
--- /dev/null
+++ b/extra/xorg-xinit/06_move_serverauthfile_into_tmp.diff
@@ -0,0 +1,20 @@
+Move startx auth files in /tmp so they are removed on reboot.
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=357736
+The trap patch didn't seem to work on reboot.
+---
+ startx.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: xinit/startx.cpp
+===================================================================
+--- xinit.orig/startx.cpp
++++ xinit/startx.cpp
+@@ -273,7 +273,7 @@
+ dummy=0
+
+ XCOMM create a file with auth information for the server. ':0' is a dummy.
+- xserverauthfile=$HOME/.serverauth.$$
++ xserverauthfile=`mktemp -p /tmp serverauth.XXXXXXXXXX`
+ trap "rm -f '$xserverauthfile'" HUP INT QUIT ILL TRAP KILL BUS TERM
+ xauth -q -f "$xserverauthfile" << EOF
+ add :$dummy . $mcookie
diff --git a/extra/xorg-xinit/PKGBUILD b/extra/xorg-xinit/PKGBUILD
new file mode 100644
index 000000000..e7df3f67e
--- /dev/null
+++ b/extra/xorg-xinit/PKGBUILD
@@ -0,0 +1,49 @@
+# $Id: PKGBUILD 113891 2011-03-10 19:11:37Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xorg-xinit
+pkgver=1.3.0
+pkgrel=3
+pkgdesc="X.Org initialisation program "
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libx11' 'xorg-xauth')
+makedepends=('xorg-util-macros')
+optdepends=('xorg-twm' 'xterm')
+backup=('etc/skel/.xinitrc'
+ 'etc/skel/.xsession'
+ 'etc/X11/xinit/xserverrc'
+ 'etc/X11/xinit/xinitrc')
+source=(${url}/releases/individual/app/xinit-${pkgver}.tar.bz2
+ 06_move_serverauthfile_into_tmp.diff
+ xinitrc
+ xsession
+ xserverrc)
+options=(!emptydirs)
+md5sums=('bc4e8b7d1919597cc37a0d24aa149dda'
+ 'abd072ec435ce084cf4e89c58f83d45c'
+ 'c7b406c3c5c1e8011b3ac7d6b29c1a2c'
+ '7873d97db30d6c279ed37e3559e7c59d'
+ 'c5baef10fdb7239594daee72a94ddab3')
+
+build() {
+ cd "${srcdir}/xinit-${pkgver}"
+ patch -Np1 -i "${srcdir}/06_move_serverauthfile_into_tmp.diff"
+ sed -i -e 's/XSLASHGLOB.sh/XSLASHGLOB/' xinitrc.cpp
+ ./configure --prefix=/usr --with-xinitdir=/etc/X11/xinit
+ make
+}
+
+package() {
+ cd "${srcdir}/xinit-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/skel"
+ install -m644 "${srcdir}/xinitrc" "${pkgdir}/etc/skel/.xinitrc"
+ install -m644 "${srcdir}/xsession" "${pkgdir}/etc/skel/.xsession"
+ install -m644 "${srcdir}/xserverrc" "${pkgdir}/etc/X11/xinit/xserverrc"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xinit/xinitrc b/extra/xorg-xinit/xinitrc
new file mode 100644
index 000000000..dbd080d00
--- /dev/null
+++ b/extra/xorg-xinit/xinitrc
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# ~/.xinitrc
+#
+# Executed by startx (run your window manager from here)
+
+if [ -d /etc/X11/xinit/xinitrc.d ]; then
+ for f in /etc/X11/xinit/xinitrc.d/*; do
+ [ -x "$f" ] && . "$f"
+ done
+ unset f
+fi
+
+# exec gnome-session
+# exec startkde
+# exec startxfce4
+# ...or the Window Manager of your choice
diff --git a/extra/xorg-xinit/xserverrc b/extra/xorg-xinit/xserverrc
new file mode 100644
index 000000000..6f746cdce
--- /dev/null
+++ b/extra/xorg-xinit/xserverrc
@@ -0,0 +1 @@
+exec /usr/bin/X -nolisten tcp "$@"
diff --git a/extra/xorg-xinit/xsession b/extra/xorg-xinit/xsession
new file mode 100644
index 000000000..a16dc0b84
--- /dev/null
+++ b/extra/xorg-xinit/xsession
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+#
+# ~/.xsession
+#
+# Executed by xdm/gdm/kdm at login
+#
+
+/bin/bash --login -i ~/.xinitrc
+
diff --git a/extra/xorg-xinput/PKGBUILD b/extra/xorg-xinput/PKGBUILD
new file mode 100644
index 000000000..e0c49d36e
--- /dev/null
+++ b/extra/xorg-xinput/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113766 2011-03-10 15:27:48Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xinput
+pkgver=1.5.3
+pkgrel=2
+pkgdesc="Small commandline tool to configure devices"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxi')
+makedepends=('xorg-util-macros' 'inputproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xinput-${pkgver}.tar.bz2)
+sha1sums=('70f258279acaa45fb77820ae3f8c2bee9f2d2235')
+
+build() {
+ cd "${srcdir}/xinput-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xkbcomp/PKGBUILD b/extra/xorg-xkbcomp/PKGBUILD
new file mode 100644
index 000000000..50c2b77f6
--- /dev/null
+++ b/extra/xorg-xkbcomp/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113771 2011-03-10 15:39:50Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkbcomp
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="X Keyboard description compiler"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxkbfile')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/xkbcomp-${pkgver}.tar.bz2)
+sha1sums=('02d7e7b67a6ef3035f92f9e541252bf85e3f0385')
+
+build() {
+ cd "${srcdir}/xkbcomp-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xkbevd/PKGBUILD b/extra/xorg-xkbevd/PKGBUILD
new file mode 100644
index 000000000..35ac08075
--- /dev/null
+++ b/extra/xorg-xkbevd/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113776 2011-03-10 15:41:46Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkbevd
+pkgver=1.1.2
+pkgrel=2
+pkgdesc="XKB event daemon"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxkbfile')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(${url}/releases/individual/app/xkbevd-${pkgver}.tar.bz2)
+sha1sums=('f7d4eb5485c2b450266e4e467106f4d8560f4edd')
+
+build() {
+ cd "${srcdir}/xkbevd-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xkbutils/PKGBUILD b/extra/xorg-xkbutils/PKGBUILD
new file mode 100644
index 000000000..5b3d3be12
--- /dev/null
+++ b/extra/xorg-xkbutils/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113779 2011-03-10 15:42:12Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkbutils
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="XKB utility demos"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxt' 'libx11')
+makedepends=('xorg-util-macros' 'xproto' 'inputproto')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xkbutils-${pkgver}.tar.bz2)
+sha1sums=('e5a2619b9449f95e02b520b492de0575bc4551d6')
+
+build() {
+ cd "${srcdir}/xkbutils-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xkill/PKGBUILD b/extra/xorg-xkill/PKGBUILD
new file mode 100644
index 000000000..b1dbbe639
--- /dev/null
+++ b/extra/xorg-xkill/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113786 2011-03-10 15:44:09Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xkill
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="Kill a client by its X resource"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xkill-${pkgver}.tar.bz2)
+sha1sums=('bab7b9c7f3bc053d743eb339cf5fa496bace57e5')
+
+build() {
+ cd "${srcdir}/xkill-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xload/PKGBUILD b/extra/xorg-xload/PKGBUILD
new file mode 100644
index 000000000..f61b7d877
--- /dev/null
+++ b/extra/xorg-xload/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xload
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="System load average display for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xload-${pkgver}.tar.bz2)
+sha1sums=('dcad93d769b0614466f1e48fed5dd956349cfcfb')
+
+build() {
+ cd "${srcdir}/xload-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xlogo/PKGBUILD b/extra/xorg-xlogo/PKGBUILD
new file mode 100644
index 000000000..114933c16
--- /dev/null
+++ b/extra/xorg-xlogo/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xlogo
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Draw [old] X logo"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libsm' 'libxaw' 'libxmu' 'libxt' 'libxext' 'libx11' 'libxrender' 'libxft')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xlogo-${pkgver}.tar.bz2)
+sha1sums=('5016e74ba16ac80f3eac1c97738a6afbfc8b3bdd')
+
+build() {
+ cd "${srcdir}/xlogo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xlsatoms/PKGBUILD b/extra/xorg-xlsatoms/PKGBUILD
new file mode 100644
index 000000000..dd88c8c9a
--- /dev/null
+++ b/extra/xorg-xlsatoms/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113790 2011-03-10 15:44:47Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xlsatoms
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="List interned atoms defined on server"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxcb')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xlsatoms-${pkgver}.tar.bz2)
+sha1sums=('2982df6844d60cd12a09208808ab6baa767fe35f')
+
+build() {
+ cd "${srcdir}/xlsatoms-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xlsclients/PKGBUILD b/extra/xorg-xlsclients/PKGBUILD
new file mode 100644
index 000000000..8d3ce59f4
--- /dev/null
+++ b/extra/xorg-xlsclients/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113796 2011-03-10 15:46:24Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xlsclients
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="List client applications running on a display"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxcb' 'xcb-util')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xlsclients-${pkgver}.tar.bz2)
+sha1sums=('67bfdcb089e8669df7ec5bc7a137e037047f2535')
+
+build() {
+ cd "${srcdir}/xlsclients-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xmag/PKGBUILD b/extra/xorg-xmag/PKGBUILD
new file mode 100644
index 000000000..66dafe737
--- /dev/null
+++ b/extra/xorg-xmag/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xmag
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="Magnify parts of the screen"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxmu' 'libxt' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xmag-${pkgver}.tar.bz2)
+sha1sums=('95695d4d4a731e5deb4196a0cc6d04ecaba023fe')
+
+build() {
+ cd "${srcdir}/xmag-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xman/PKGBUILD b/extra/xorg-xman/PKGBUILD
new file mode 100644
index 000000000..b35686959
--- /dev/null
+++ b/extra/xorg-xman/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xman
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="Unix manual page viewer"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw' 'libxt')
+makedepends=('xorg-util-macros' 'xproto' 'libxmu')
+source=(http://xorg.freedesktop.org/archive/individual/app/xman-${pkgver}.tar.bz2)
+sha1sums=('c8e1170e837da4bc280ee907030b3f9245608ef2')
+
+build() {
+ cd "${srcdir}/xman-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xmessage/PKGBUILD b/extra/xorg-xmessage/PKGBUILD
new file mode 100644
index 000000000..ca10a8d57
--- /dev/null
+++ b/extra/xorg-xmessage/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xmessage
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="Display a message or query in a window"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxaw')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xmessage-${pkgver}.tar.bz2)
+sha1sums=('a8bfefbbe7785fa0e58ed4f596f4d79ba0b4d9b2')
+
+build() {
+ cd "${srcdir}/xmessage-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xmodmap/PKGBUILD b/extra/xorg-xmodmap/PKGBUILD
new file mode 100644
index 000000000..6f8f31e4f
--- /dev/null
+++ b/extra/xorg-xmodmap/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113801 2011-03-10 15:47:06Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xmodmap
+pkgver=1.0.5
+pkgrel=2
+pkgdesc="Utility for modifying keymaps and button mappings"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xmodmap-${pkgver}.tar.bz2)
+sha1sums=('c97fb42f40b094868f6ef445f25c600f326b1942')
+
+build() {
+ cd "${srcdir}/xmodmap-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xpr/PKGBUILD b/extra/xorg-xpr/PKGBUILD
new file mode 100644
index 000000000..47ed9440b
--- /dev/null
+++ b/extra/xorg-xpr/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 113806 2011-03-10 15:48:32Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xpr
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="Print an X window dump from xwd"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xpr-${pkgver}.tar.bz2
+ copyright.patch)
+sha1sums=('9dbd0ff136b612285e00d92d0c7675a4207b1c4a'
+ 'd2649781330400b83cf3553d9cfd6e02dd93a2bd')
+
+build() {
+ cd "${srcdir}/xpr-${pkgver}"
+ patch -Np1 -i "${srcdir}/copyright.patch"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xpr/copyright.patch b/extra/xorg-xpr/copyright.patch
new file mode 100644
index 000000000..18e718246
--- /dev/null
+++ b/extra/xorg-xpr/copyright.patch
@@ -0,0 +1,75 @@
+From 11569289123fb178e23fd1aa284e9fa10e6c1e8c Mon Sep 17 00:00:00 2001
+From: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri, 06 Aug 2010 22:09:48 +0000
+Subject: Fill in COPYING file with copyright notices from source code
+
+Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+---
+diff --git a/COPYING b/COPYING
+index 7f33cbf..0f9d8e0 100644
+--- a/COPYING
++++ b/COPYING
+@@ -1,12 +1,53 @@
+-This is a stub file. This package has not yet had its complete licensing
+-information compiled. Please see the individual source files for details on
+-your rights to use and modify this software.
+
+-Please submit updated COPYING files to the Xorg bugzilla:
++Copyright (c) 1985, 1988 X Consortium
+
+-https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
+
+-All licensing questions regarding this software should be directed at the
+-Xorg mailing list:
++The above copyright notice and this permission notice shall be included
++in all copies or substantial portions of the Software.
+
+-http://lists.freedesktop.org/mailman/listinfo/xorg
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
++OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++OTHER DEALINGS IN THE SOFTWARE.
++
++Except as contained in this notice, the name of the X Consortium shall
++not be used in advertising or otherwise to promote the sale, use or
++other dealings in this Software without prior written authorization
++from the X Consortium.
++
++Copyright 1986 by Marvin Solomon and the University of Wisconsin
++
++Permission to use, copy, modify, and distribute this
++software and its documentation for any purpose and without
++fee is hereby granted, provided that the above copyright
++notice appear in all copies and that both that copyright
++notice and this permission notice appear in supporting
++documentation, and that the names of Marvin Solomon and
++the University of Wisconsin not be used in
++advertising or publicity pertaining to distribution of the
++software without specific, written prior permission.
++Neither Marvin Solomon nor the University of Wisconsin
++makes any representations about the suitability of
++this software for any purpose. It is provided "as is"
++without express or implied warranty.
++
++Copyright (c) 1988 by Hewlett-Packard Company
++
++Permission to use, copy, modify, and distribute this software
++and its documentation for any purpose and without fee is hereby
++granted, provided that the above copyright notice appear in all
++copies and that both that copyright notice and this permission
++notice appear in supporting documentation, and that
++Hewlett-Packard not be used in advertising or publicity
++pertaining to distribution of the software without specific, written
++prior permission.
+--
+cgit v0.8.3-6-g21f6
diff --git a/extra/xorg-xprop/PKGBUILD b/extra/xorg-xprop/PKGBUILD
new file mode 100644
index 000000000..9fd9e0cb5
--- /dev/null
+++ b/extra/xorg-xprop/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113811 2011-03-10 15:49:11Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xprop
+pkgver=1.2.0
+pkgrel=2
+pkgdesc="Property displayer for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xprop-${pkgver}.tar.bz2)
+sha1sums=('278f83c5077eed1d96c180bdc0a6f22ba5279a66')
+
+build() {
+ cd "${srcdir}/xprop-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xrandr/PKGBUILD b/extra/xorg-xrandr/PKGBUILD
new file mode 100644
index 000000000..483f2748c
--- /dev/null
+++ b/extra/xorg-xrandr/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 113816 2011-03-10 15:50:41Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xrandr
+pkgver=1.3.4
+pkgrel=2
+pkgdesc="Primitive command line interface to RandR extension"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxrandr' 'libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xrandr-${pkgver}.tar.bz2)
+sha1sums=('637949501b8a45d32d9cab809e8822ee45b69414')
+
+build() {
+ cd "${srcdir}/xrandr-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+ rm -f "${pkgdir}/usr/bin/xkeystone"
+}
diff --git a/extra/xorg-xrdb/PKGBUILD b/extra/xorg-xrdb/PKGBUILD
new file mode 100644
index 000000000..cb84e2d49
--- /dev/null
+++ b/extra/xorg-xrdb/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113821 2011-03-10 15:52:04Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xrdb
+pkgver=1.0.8
+pkgrel=2
+pkgdesc="X server resource database utility"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxmu' 'mcpp')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xrdb-${pkgver}.tar.bz2)
+sha1sums=('9bfdd09a2b303b962439910f7bccaddd69b6ca8a')
+
+build() {
+ cd "${srcdir}/xrdb-${pkgver}"
+ ./configure --prefix=/usr --with-cpp=/usr/bin/mcpp
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xrefresh/PKGBUILD b/extra/xorg-xrefresh/PKGBUILD
new file mode 100644
index 000000000..74d49b040
--- /dev/null
+++ b/extra/xorg-xrefresh/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113826 2011-03-10 15:53:23Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xrefresh
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="Refresh all or part of an X screen"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xrefresh-${pkgver}.tar.bz2)
+sha1sums=('5e85ee14ea9a357c1d4372bbc068a8d452a134aa')
+
+build() {
+ cd "${srcdir}/xrefresh-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xset/PKGBUILD b/extra/xorg-xset/PKGBUILD
new file mode 100644
index 000000000..d812a5a11
--- /dev/null
+++ b/extra/xorg-xset/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113831 2011-03-10 15:57:21Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xset
+pkgver=1.2.1
+pkgrel=2
+pkgdesc="User preference utility for X"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxmu')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xset-${pkgver}.tar.bz2)
+sha1sums=('9b1eb8835637dd70eea1a1365df5d909a306cc2c')
+
+build() {
+ cd "${srcdir}/xset-${pkgver}"
+ ./configure --prefix=/usr --without-fontcache --without-xf86misc
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xsetroot/PKGBUILD b/extra/xorg-xsetroot/PKGBUILD
new file mode 100644
index 000000000..35b800dca
--- /dev/null
+++ b/extra/xorg-xsetroot/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113846 2011-03-10 16:01:58Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xsetroot
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="Classic X utility to set your root window background to a given pattern or color"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxmu' 'libx11' 'libxcursor')
+makedepends=('xorg-util-macros' 'xbitmaps')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xsetroot-${pkgver}.tar.bz2)
+sha1sums=('1ef9ddd80c7013dc6d33e5c421537eb8b0427da4')
+
+build() {
+ cd "${srcdir}/xsetroot-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xvidtune/PKGBUILD b/extra/xorg-xvidtune/PKGBUILD
new file mode 100644
index 000000000..308b8088d
--- /dev/null
+++ b/extra/xorg-xvidtune/PKGBUILD
@@ -0,0 +1,23 @@
+# $Id: $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xvidtune
+pkgver=1.0.2
+pkgrel=1
+pkgdesc="Video mode tuner for Xorg"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxxf86vm' 'libxt' 'libxaw' 'libxmu' 'libx11')
+makedepends=('xorg-util-macros')
+source=(http://xorg.freedesktop.org/archive/individual/app/xvidtune-${pkgver}.tar.bz2)
+sha1sums=('2f3f821943018c07efd4547afa4313ac92718b1e')
+
+build() {
+ cd "${srcdir}/xvidtune-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xvinfo/PKGBUILD b/extra/xorg-xvinfo/PKGBUILD
new file mode 100644
index 000000000..f125fa32d
--- /dev/null
+++ b/extra/xorg-xvinfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113836 2011-03-10 15:58:02Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xvinfo
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11' 'libxv')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xvinfo-${pkgver}.tar.bz2)
+sha1sums=('dc326464748fa608da50386112a89024804c1910')
+
+build() {
+ cd "${srcdir}/xvinfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xwd/PKGBUILD b/extra/xorg-xwd/PKGBUILD
new file mode 100644
index 000000000..1634c5d93
--- /dev/null
+++ b/extra/xorg-xwd/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113841 2011-03-10 16:01:03Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xwd
+pkgver=1.0.4
+pkgrel=2
+pkgdesc="X Window System image dumping utility"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xwd-${pkgver}.tar.bz2)
+sha1sums=('4ef4fd9072a507e9a1ee88ba1d28b314006cc109')
+
+build() {
+ cd "${srcdir}/xwd-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xwininfo/PKGBUILD b/extra/xorg-xwininfo/PKGBUILD
new file mode 100644
index 000000000..785353a88
--- /dev/null
+++ b/extra/xorg-xwininfo/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113851 2011-03-10 16:03:22Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xwininfo
+pkgver=1.1.1
+pkgrel=2
+pkgdesc="Command-line utility to print information about windows on an X server"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libxcb')
+makedepends=('xorg-util-macros' 'libx11')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xwininfo-${pkgver}.tar.bz2)
+sha1sums=('945e5d51632876e304e001003c8068f34ffe299e')
+
+build() {
+ cd "${srcdir}/xwininfo-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xorg-xwud/PKGBUILD b/extra/xorg-xwud/PKGBUILD
new file mode 100644
index 000000000..c7c593386
--- /dev/null
+++ b/extra/xorg-xwud/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 113855 2011-03-10 16:04:19Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-xwud
+pkgver=1.0.3
+pkgrel=2
+pkgdesc="X Window System image undumping utility"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('libx11')
+makedepends=('xorg-util-macros')
+groups=('xorg-apps' 'xorg')
+source=(http://xorg.freedesktop.org/archive/individual/app/xwud-${pkgver}.tar.bz2)
+sha1sums=('2e706d50c7039e3daa4963d36ab703e48aa652ed')
+
+build() {
+ cd "${srcdir}/xwud-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xournal/PKGBUILD b/extra/xournal/PKGBUILD
new file mode 100644
index 000000000..e9c825e26
--- /dev/null
+++ b/extra/xournal/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 108182 2011-01-30 14:22:10Z ibiru $
+# Contributor:
+# Maintainer:
+
+pkgname=xournal
+pkgver=0.4.5
+pkgrel=4
+pkgdesc='Notetaking and sketching application'
+arch=('i686' 'x86_64')
+url='http://xournal.sourceforge.net/'
+license=('GPL')
+depends=('libgnomecanvas' 'poppler-glib' 'shared-mime-info' 'desktop-file-utils' 'hicolor-icon-theme')
+optdepends=('ghostscript: import PS/PDF files as bitmap backgrounds')
+install=xournal.install
+source=("http://downloads.sourceforge.net/xournal/xournal-${pkgver}.tar.gz"
+ 'pdf-export-64.patch')
+sha1sums=('390cb275774469ed1b04b7268dd625bd456c895e'
+ 'f23f53b9f69ba8a5773c53d7bca99abf9d8504f8')
+
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 < ../pdf-export-64.patch # from xournal CVS, see FS#21693
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install desktop-install
+}
diff --git a/extra/xournal/pdf-export-64.patch b/extra/xournal/pdf-export-64.patch
new file mode 100644
index 000000000..9f7075c54
--- /dev/null
+++ b/extra/xournal/pdf-export-64.patch
@@ -0,0 +1,89 @@
+diff -aur old/src/xo-print.c new/src/xo-print.c
+--- old/src/xo-print.c 2009-09-28 23:36:54.000000000 +0200
++++ new/src/xo-print.c 2009-11-15 06:06:00.000000000 +0100
+@@ -761,7 +761,7 @@
+
+ make_xref(xref, xref->last+1, pdfbuf->len);
+ g_string_append_printf(pdfbuf,
+- "%d 0 obj\n<< /Length %d /Filter /FlateDecode /Type /Xobject "
++ "%d 0 obj\n<< /Length %zu /Filter /FlateDecode /Type /Xobject "
+ "/Subtype /Image /Width %d /Height %d /ColorSpace /DeviceRGB "
+ "/BitsPerComponent 8 >> stream\n",
+ xref->last, zpix->len, width, height);
+@@ -840,8 +840,10 @@
+ gboolean fallback, is_binary;
+ guchar encoding[256];
+ gushort glyphs[256];
+- int i, j, num, len1, len2;
+- gsize len;
++ int i, j, num;
++ guint32 len1, len2;
++ guint32 tt_len;
++ gsize t1_len;
+ TrueTypeFont *ttfnt;
+ char *seg1, *seg2;
+ char *fontdata, *p;
+@@ -862,14 +864,14 @@
+ }
+ font->num_glyphs_used = num-1;
+ if (OpenTTFont(font->filename, 0, &ttfnt) == SF_OK) {
+- if (CreateTTFromTTGlyphs_tomemory(ttfnt, (guint8**)&fontdata, &len, glyphs, encoding, num,
++ if (CreateTTFromTTGlyphs_tomemory(ttfnt, (guint8**)&fontdata, &tt_len, glyphs, encoding, num,
+ 0, NULL, TTCF_AutoName | TTCF_IncludeOS2) == SF_OK) {
+ make_xref(xref, xref->last+1, pdfbuf->len);
+ nobj_fontprog = xref->last;
+ g_string_append_printf(pdfbuf,
+- "%d 0 obj\n<< /Length %d /Length1 %d >> stream\n",
+- nobj_fontprog, (int)len, (int)len);
+- g_string_append_len(pdfbuf, fontdata, len);
++ "%d 0 obj\n<< /Length %u /Length1 %u >> stream\n",
++ nobj_fontprog, tt_len, tt_len);
++ g_string_append_len(pdfbuf, fontdata, tt_len);
+ g_string_append(pdfbuf, "endstream\nendobj\n");
+ g_free(fontdata);
+ }
+@@ -879,7 +881,7 @@
+ else fallback = TRUE;
+ } else {
+ // embed the font file: Type1 case
+- if (g_file_get_contents(font->filename, &fontdata, &len, NULL) && len>=8) {
++ if (g_file_get_contents(font->filename, &fontdata, &t1_len, NULL) && t1_len>=8) {
+ if (fontdata[0]==(char)0x80 && fontdata[1]==(char)0x01) {
+ is_binary = TRUE;
+ len1 = pfb_get_length((unsigned char *)fontdata+2);
+@@ -898,7 +900,7 @@
+ if (*p=='\n' || *p=='\r') p++;
+ if (*p=='\n' || *p=='\r') p++;
+ len1 = p-fontdata;
+- p = g_strrstr_len(fontdata, len, T1_SEGMENT_3_END);
++ p = g_strrstr_len(fontdata, t1_len, T1_SEGMENT_3_END);
+ if (p==NULL) fallback = TRUE;
+ else {
+ // rewind 512 zeros
+@@ -936,7 +938,7 @@
+ make_xref(xref, xref->last+1, pdfbuf->len);
+ nobj_fontprog = xref->last;
+ g_string_append_printf(pdfbuf,
+- "%d 0 obj\n<< /Length %d /Length1 %d /Length2 %d /Length3 0 >> stream\n",
++ "%d 0 obj\n<< /Length %u /Length1 %u /Length2 %u /Length3 0 >> stream\n",
+ nobj_fontprog, len1+len2, len1, len2);
+ g_string_append_len(pdfbuf, seg1, len1);
+ g_string_append_len(pdfbuf, seg2, len2);
+@@ -1258,7 +1260,7 @@
+ tmpstr = make_pdfprefix(pdfinfo.pages+(pg->bg->file_page_seq-1),
+ pg->width, pg->height);
+ g_string_append_printf(pdfbuf,
+- "%d 0 obj\n<< /Length %d >> stream\n%s\nendstream\nendobj\n",
++ "%d 0 obj\n<< /Length %zu >> stream\n%s\nendstream\nendobj\n",
+ n_obj_prefix, tmpstr->len, tmpstr->str);
+ g_string_free(tmpstr, TRUE);
+ g_string_prepend(pgstrm, "Q Q Q ");
+@@ -1276,7 +1278,7 @@
+
+ make_xref(&xref, xref.last+1, pdfbuf->len);
+ g_string_append_printf(pdfbuf,
+- "%d 0 obj\n<< /Length %d /Filter /FlateDecode>> stream\n",
++ "%d 0 obj\n<< /Length %zu /Filter /FlateDecode>> stream\n",
+ xref.last, zpgstrm->len);
+ g_string_append_len(pdfbuf, zpgstrm->str, zpgstrm->len);
+ g_string_free(zpgstrm, TRUE);
diff --git a/extra/xournal/xournal.install b/extra/xournal/xournal.install
new file mode 100644
index 000000000..dfcb68374
--- /dev/null
+++ b/extra/xournal/xournal.install
@@ -0,0 +1,13 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime &>/dev/null
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/xpdf/PKGBUILD b/extra/xpdf/PKGBUILD
new file mode 100644
index 000000000..3fda983cf
--- /dev/null
+++ b/extra/xpdf/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id: PKGBUILD 117882 2011-04-04 21:05:28Z bisson $
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: tobias <tobias@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=xpdf
+_srcver=3.02
+_patchlevel=pl6
+pkgver=${_srcver}_${_patchlevel}
+pkgrel=1
+pkgdesc="A viewer for Portable Document Format (PDF) files"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('lesstif' 'gsfonts' 'libxt' 'desktop-file-utils')
+optdepends=('poppler: pdf tools that used to be included in xpdf')
+backup=('etc/xpdfrc')
+url="http://www.foolabs.com/xpdf/"
+install=${pkgname}.install
+source=(ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${_srcver}.tar.gz
+ ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${_srcver}pl1.patch
+ ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${_srcver}pl2.patch
+ ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${_srcver}pl3.patch
+ ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${_srcver}pl4.patch
+ ftp://ftp.foolabs.com/pub/${pkgname}/${pkgname}-${_srcver}pl5.patch
+ xpdf-3.00-xfont.patch
+ xpdf.desktop)
+md5sums=('599dc4cc65a07ee868cf92a667a913d2'
+ '877118786dfe27d1b7aa5a6759cc6e45'
+ '3a5cb165ae66781e0b21e6219ae06795'
+ '581963ede0fb5715e1a69f01b5b8ce63'
+ '70b752716798dd341a4bf890df5f6fdc'
+ '504902ca5e9d66c67eed03636ec6b163'
+ '6490de55687e0d2389212c1b5bbcf916'
+ '93b9df5ebef3bc56133236ef3f176bb7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_srcver}"
+
+ patch -Np1 -i "${srcdir}/${pkgname}-${_srcver}pl1.patch"
+ patch -Np1 -i "${srcdir}/${pkgname}-${_srcver}pl2.patch"
+ patch -Np1 -i "${srcdir}/${pkgname}-${_srcver}pl3.patch"
+ patch -Np1 -i "${srcdir}/${pkgname}-${_srcver}pl4.patch"
+ patch -Np1 -i "${srcdir}/${pkgname}-${_srcver}pl5.patch"
+ patch -Np1 -i "${srcdir}/xpdf-3.00-xfont.patch"
+ sed -i 's:/usr/share/fonts/type1/gsfonts:/usr/share/fonts/Type1:' xpdf/GlobalParams.cc
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --enable-multithreaded \
+ --enable-wordlist \
+ --with-freetype2-library=/usr/lib \
+ --with-freetype2-includes=/usr/include/freetype2 \
+ --x-includes=/usr/include \
+ --with-Xm-library=/usr/lib \
+ --with-Xm-includes=/usr/include
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_srcver}"
+ make DESTDIR="${pkgdir}" install
+
+ # remove some libs and manpages provided by poppler now
+ for tool in pdffonts pdfimages pdfinfo pdftoppm pdftops pdftotext ; do
+ rm -f "${pkgdir}/usr/bin/${tool}"
+ rm -f "${pkgdir}/usr/share/man/man1/${tool}.1"
+ done
+ install -m755 -d ${pkgdir}/usr/share/applications
+ install -m644 "${srcdir}/xpdf.desktop" "${pkgdir}/usr/share/applications/"
+ install -m755 -d ${pkgdir}/usr/share/pixmaps
+ install -m644 xpdf/xpdfIcon.xpm ${pkgdir}/usr/share/pixmaps/xpdf.xpm
+}
diff --git a/extra/xpdf/xpdf-3.00-xfont.patch b/extra/xpdf/xpdf-3.00-xfont.patch
new file mode 100644
index 000000000..50dcec2bb
--- /dev/null
+++ b/extra/xpdf/xpdf-3.00-xfont.patch
@@ -0,0 +1,11 @@
+--- xpdf-3.00/xpdf/XPDFViewer.cc.orig 2004-10-12 12:24:57.055068037 +0200
++++ xpdf-3.00/xpdf/XPDFViewer.cc 2004-10-12 12:24:47.707449614 +0200
+@@ -1742,7 +1742,7 @@
+ aboutBigFont =
+ createFontList("-*-times-bold-i-normal--20-*-*-*-*-*-iso8859-1");
+ aboutVersionFont =
+- createFontList("-*-times-medium-r-normal--16-*-*-*-*-*-iso8859-1");
++ createFontList("-*-times-medium-r-normal--14-*-*-*-*-*-iso8859-1");
+ aboutFixedFont =
+ createFontList("-*-courier-medium-r-normal--12-*-*-*-*-*-iso8859-1");
+
diff --git a/extra/xpdf/xpdf.desktop b/extra/xpdf/xpdf.desktop
new file mode 100644
index 000000000..06830ecda
--- /dev/null
+++ b/extra/xpdf/xpdf.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Xpdf
+Comment=Views Adobe PDF (acrobat) files
+Exec=xpdf
+Terminal=false
+Type=Application
+Icon=xpdf
+Categories=Office;
+MimeType=application/pdf;
diff --git a/extra/xpdf/xpdf.install b/extra/xpdf/xpdf.install
new file mode 100644
index 000000000..e111ef946
--- /dev/null
+++ b/extra/xpdf/xpdf.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/extra/xplc/PKGBUILD b/extra/xplc/PKGBUILD
new file mode 100644
index 000000000..402abc2ca
--- /dev/null
+++ b/extra/xplc/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 97257 2010-10-28 04:11:13Z allan $
+# Maintainer: dorphell <dorphell@archlinux.org>
+pkgname=xplc
+pkgver=0.3.13
+pkgrel=3
+pkgdesc="Cross-Platform Lightweight Components"
+arch=(i686 x86_64)
+url="http://xplc.sourceforge.net"
+license=('LGPL')
+depends=('gcc-libs')
+source=(http://downloads.sourceforge.net/sourceforge/xplc/$pkgname-$pkgver.tar.gz)
+md5sums=('39da3270527c8712b8e8fcf03768d29f')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --without-libuuid
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ mv $pkgdir/usr/share/man/man1/{uuidgen.1,uuidcdef.1}
+ rm -f $pkgdir/usr/bin/uuidgen
+}
diff --git a/extra/xsane/PKGBUILD b/extra/xsane/PKGBUILD
new file mode 100644
index 000000000..531985301
--- /dev/null
+++ b/extra/xsane/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 100458 2010-11-23 17:10:57Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgbase=xsane
+pkgname=('xsane' 'xsane-gimp')
+pkgver=0.998
+pkgrel=1
+arch=(i686 x86_64)
+url="http://www.xsane.org"
+license=('GPL2')
+makedepends=('gtk2' 'lcms' 'sane' 'zlib' 'libjpeg' 'gimp')
+source=(http://www.xsane.org/download/$pkgname-$pkgver.tar.gz
+ xsane-0.995-xdg-open.patch)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # fix use "xdg-open" instead of "netscape" to launch help browser - taken from Fedora
+ patch -Np1 -i ${srcdir}/xsane-0.995-xdg-open.patch || return 1
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-gimp
+ /usr/bin/make || return 1
+ mv src/xsane src/xsane-gimp
+
+ # build again with gimp enabled
+ make clean
+ ./configure --prefix=/usr --mandir=/usr/share/man --disable-gimp
+}
+
+package_xsane() {
+ pkgdesc="A GTK-based X11 frontend for SANE and plugin for Gimp."
+ install=$pkgname.install
+ depends=('gtk2' 'lcms' 'sane' 'zlib' 'libjpeg')
+ optdepends=('xsane-gimp; for gimp plugin support')
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install || return 1
+}
+
+package_xsane-gimp() {
+ pkgdesc="XSane Gimp plugin"
+ depends=('xsane' 'gimp')
+ cd "$srcdir/$pkgname-$pkgver"
+ install -D -m755 src/xsane-gimp ${pkgdir}/usr/bin/xsane-gimp || return 1
+
+ ## For making Gimp Plugin available
+ /bin/mkdir -p "$pkgdir/usr/lib/gimp/2.0/plug-ins"
+ cd "$pkgdir/usr/lib/gimp/2.0/plug-ins/"
+ /bin/ln -s ../../../../bin/xsane-gimp xsane
+
+# http://cvs.fedoraproject.org/viewvc/rpms/xsane/devel/xsane.spec?revision=1.80&view=markup
+# when makepkg will allow splitted pkg install file support we might change add a xsane-gimp.install file with the commands that are used by fedora,
+# gentoo has something similar
+#%post gimp
+#107 if [ -x "%{_sbindir}/gimp-plugin-mgr" ]; then
+#108 %{_sbindir}/gimp-plugin-mgr --install xsane
+#109 fi
+#110
+#111 %preun gimp
+#112 if [ $1 = 0 ]; then
+#113 if [ -x "%{_sbindir}/gimp-plugin-mgr" ]; then
+#114 %{_sbindir}/gimp-plugin-mgr --uninstall xsane
+#115 fi
+#116 fi
+}
+md5sums=('936f1cc76b37caa8f285e1e15ac7e0aa'
+ '15541ff0ddc10acfa2059cf99d5478eb')
diff --git a/extra/xsane/xsane-0.995-xdg-open.patch b/extra/xsane/xsane-0.995-xdg-open.patch
new file mode 100644
index 000000000..db1f9bd68
--- /dev/null
+++ b/extra/xsane/xsane-0.995-xdg-open.patch
@@ -0,0 +1,12 @@
+diff -up xsane-0.995/src/xsane.h.xdg-open xsane-0.995/src/xsane.h
+--- xsane-0.995/src/xsane.h.xdg-open 2007-08-13 09:20:32.000000000 +0200
++++ xsane-0.995/src/xsane.h 2007-11-23 11:50:49.000000000 +0100
+@@ -251,7 +251,7 @@
+ # elif defined(HAVE_OS2_H)
+ # define DEFAULT_BROWSER "netscape"
+ # else
+-# define DEFAULT_BROWSER "netscape"
++# define DEFAULT_BROWSER "xdg-open"
+ # endif
+ #endif
+
diff --git a/extra/xsane/xsane.install b/extra/xsane/xsane.install
new file mode 100644
index 000000000..aa3e3b8f8
--- /dev/null
+++ b/extra/xsane/xsane.install
@@ -0,0 +1,16 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_install() {
+ echo "NOTE:"
+ echo " If you experience any problems after installing xsane "
+ echo " it may help to remove the setup and preferences files"
+ echo " of xsane:"
+ echo ""
+ echo " \$ rm -rf ~/.sane/xsane"
+ echo ""
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/extra/xscreensaver/ChangeLog b/extra/xscreensaver/ChangeLog
new file mode 100644
index 000000000..ea08818fc
--- /dev/null
+++ b/extra/xscreensaver/ChangeLog
@@ -0,0 +1,46 @@
+2010-09-26 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.12-1
+ * Upstream update
+ * Added libxxf86vm depends
+
+2010-05-17 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.11-1
+ * Upstream update
+
+2009-10-17 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.10-2
+ * Added support for electricsheep (close FS#16400)
+
+2009-09-09 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.10-1
+ * Upstream update
+
+2009-09-03 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.09-1
+ * Upstream update
+
+2009-01-02 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.08-1
+ * Upstream update
+
+2008-08-11 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.07-1
+ * Upstream update
+
+2008-07-18 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.06-1
+ * Upstream update
+
+2008-03-02 Eric Belanger <eric@archlinux.org>
+
+ * xscreensaver 5.05-1
+ * Upstream update
+ * FHS man pages
diff --git a/extra/xscreensaver/LICENSE b/extra/xscreensaver/LICENSE
new file mode 100644
index 000000000..4f587b5a3
--- /dev/null
+++ b/extra/xscreensaver/LICENSE
@@ -0,0 +1,9 @@
+/* xscreensaver, Copyright (c) 1993-2006 Jamie Zawinski <jwz@jwz.org>
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
diff --git a/extra/xscreensaver/PKGBUILD b/extra/xscreensaver/PKGBUILD
new file mode 100644
index 000000000..4e324f05f
--- /dev/null
+++ b/extra/xscreensaver/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 113959 2011-03-10 22:37:48Z jgc $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+
+pkgname=xscreensaver
+pkgver=5.12
+pkgrel=2
+pkgdesc="Screen saver and locker for the X Window System"
+arch=('i686' 'x86_64')
+url="http://www.jwz.org/xscreensaver/"
+license=('BSD')
+depends=('libxxf86vm' 'libglade' 'mesa' 'pam' 'xorg-appres' 'libxmu')
+makedepends=('bc')
+backup=('etc/pam.d/xscreensaver')
+source=(http://www.jwz.org/xscreensaver/${pkgname}-${pkgver}.tar.gz \
+ add-electricsheep.diff xscreensaver.pam LICENSE)
+md5sums=('0345c1acb9280729de05c5ca44b401e3' 'f82524626ed8a6832cd279e0548a9b46'\
+ '367a3538f54db71f108b34cfa31088ac' '5e7f3f2a63d20a484742f5b4cb5d572c')
+sha1sums=('7252540b1b1853459a56453714c0974de26fa4c5' '65c2933380267475f2c4560bc22f4350393b00ce'\
+ '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8' '4209ea586b204fd1d81c382a0522c654f9fd9134')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/add-electricsheep.diff"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib --with-x-app-defaults=/usr/share/X11/app-defaults \
+ --with-pam --without-motif --with-gtk --with-gl \
+ --without-gle --with-xpm --with-pixbuf --with-jpeg
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make install_prefix="${pkgdir}" install
+ install -D -m644 ../LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -D -m644 ../xscreensaver.pam "${pkgdir}/etc/pam.d/xscreensaver"
+ chmod 755 "${pkgdir}/usr/bin/xscreensaver"
+ echo "NotShowIn=KDE;GNOME;" >> "${pkgdir}/usr/share/applications/xscreensaver-properties.desktop"
+}
diff --git a/extra/xscreensaver/add-electricsheep.diff b/extra/xscreensaver/add-electricsheep.diff
new file mode 100644
index 000000000..964de649f
--- /dev/null
+++ b/extra/xscreensaver/add-electricsheep.diff
@@ -0,0 +1,12 @@
+--- driver/XScreenSaver.ad.in-orig 2009-10-17 02:19:06.000000000 -0400
++++ driver/XScreenSaver.ad.in 2009-10-17 02:21:16.000000000 -0400
+@@ -347,7 +347,8 @@
+ - lcdscrub -root \n\
+ @GL_KLUDGE@ GL: photopile -root \n\
+ @GL_KLUDGE@ GL: skytentacles -root \n\
+-@GL_KLUDGE@ GL: rubikblocks -root \n
++@GL_KLUDGE@ GL: rubikblocks -root \n\
++ electricsheep --root 1 \n
+
+
+
diff --git a/extra/xscreensaver/xscreensaver.pam b/extra/xscreensaver/xscreensaver.pam
new file mode 100644
index 000000000..b4d80c21f
--- /dev/null
+++ b/extra/xscreensaver/xscreensaver.pam
@@ -0,0 +1 @@
+auth required pam_unix_auth.so
diff --git a/extra/xsp/PKGBUILD b/extra/xsp/PKGBUILD
new file mode 100644
index 000000000..e78ba6aa7
--- /dev/null
+++ b/extra/xsp/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 111514 2011-02-27 11:35:42Z daniel $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=xsp
+pkgver=2.10
+pkgrel=1
+pkgdesc="A simple webserver based on mono - provides ASP.NET support"
+arch=(i686 x86_64)
+license=('custom')
+url="http://www.go-mono.com"
+depends=('mono>=2.10.1' 'sqlite3')
+options=(!makeflags)
+install=${pkgname}.install
+source=(http://ftp.novell.com/pub/mono/sources/${pkgname}/${pkgname}-${pkgver}.tar.bz2 \
+ ${pkgname}.rc.d ${pkgname}.conf.d ${pkgname}.webapp)
+md5sums=('aec9369a00a9728801ea2587a1a8fd9c'
+ '9575bd7d6f64d51ba05bdd6370665858'
+ '35d921df0fefc30f47a438c95d420efc'
+ 'c917c07f68b945691506c29750db482f')
+
+build() {
+ # get rid of that .wapi errors; thanks to brice
+ export MONO_SHARED_DIR=${srcdir}/src/weird
+ mkdir -p "${MONO_SHARED_DIR}"
+ # import pathes
+ # build
+ cd ${srcdir}/${pkgname}-${pkgver}
+ #sed -i 's|/bin/sh|\0\nexport MONO_PATH=${MONO_PATH}:/opt/mono/lib/mono/1.0|' scripts/script.in
+ ./configure --prefix=/usr --sysconfdir=/etc
+ make || return 1
+ # tweak the xsp shellscript to grab system dll's
+ for script in scripts/*2; do
+ sed -i 's|/usr/lib/mono/1.0|/usr/lib/mono/2.0|' $script
+ done
+ #destdir related bugfixes
+ sed -i 's|mkdir \$(datadir)|mkdir $(DESTDIR)$(datadir)|' test/2.0/treeview/Makefile
+ sed -i 's|gif \$(datadir)|gif $(DESTDIR)$(datadir)|' test/2.0/treeview/Makefile
+}
+
+package(){
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir}/ install
+ # move test files from share to arch' default html home
+ mkdir -p ${pkgdir}/srv/http/html
+ mv ${pkgdir}/usr/lib/xsp/test ${pkgdir}/srv/http/html/xsp
+ rm -rf ${pkgdir}/usr/share
+ chown -R http:http ${pkgdir}/srv/http/html/${pkgname}
+
+ # install a deamon
+ install -D -m755 ${srcdir}/${pkgname}.rc.d \
+ ${pkgdir}/etc/rc.d/${pkgname}
+ # install a deamon configurationfile
+ install -D -m644 ${srcdir}/$pkgname.conf.d \
+ ${pkgdir}/etc/conf.d/${pkgname}
+ # install a xsp configuration home
+ install -D -m644 ${srcdir}/${pkgname}.webapp \
+ ${pkgdir}/etc/${pkgname}/${pkgname}.webapp
+ install -D -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/COPYING
+
+}
diff --git a/extra/xsp/xsp.conf.d b/extra/xsp/xsp.conf.d
new file mode 100644
index 000000000..99d634929
--- /dev/null
+++ b/extra/xsp/xsp.conf.d
@@ -0,0 +1,10 @@
+# xsp options
+
+
+# note that is just the helping app for mod_mono if you like production like
+# quality
+# xsp is for ASP testing mainly -- read the manpage for xsp to know what
+# options are available. Archlinux will provide xsp configured by a .webapp
+# configuration file which rests in /etc/xsp
+
+XSP_PARAMS="--appconfigdir /etc/xsp"
diff --git a/extra/xsp/xsp.install b/extra/xsp/xsp.install
new file mode 100644
index 000000000..b8a8f3136
--- /dev/null
+++ b/extra/xsp/xsp.install
@@ -0,0 +1,37 @@
+# arg 1: the new package version
+post_install() {
+ cat << EOM
+
+--> xsp is just the helping app for mod_mono if you like a production like
+--> server. xsp itself is for ASP testing mainly -- read the manpage for xsp
+--> to know which options are available.
+--> Archlinux will provide xsp configured by a .webapp configuration file
+--> which rests in /etc/xsp. Just put your other webapp files there to let
+--> xsp pick them up.
+--> xsp is commandline based configuration is done in /etc/conf.d/xsp. Set all
+--> your arguments there. Don't forget that you can run xsp from the console
+--> as oridinary user, which is safer and for testing absolutely sufficient!!
+
+--> You can run the testpages simply by starting the server and calling
+ http://localhost:8080
+--> from your browser's location bar
+
+
+EOM
+}
+
+# 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() {
+ /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
diff --git a/extra/xsp/xsp.rc.d b/extra/xsp/xsp.rc.d
new file mode 100644
index 000000000..b4fcda15c
--- /dev/null
+++ b/extra/xsp/xsp.rc.d
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+# source application-specific settings
+[ -f /etc/conf.d/xsp ] && . /etc/conf.d/xsp
+
+PID=`pidof -o %PPID /usr/bin/mono`
+case "$1" in
+ start)
+ stat_busy "Starting Xsp Daemon"
+ if [ -z "$PID" ]; then
+ /usr/bin/xsp $XSP_PARAMS --nonstop &> /dev/null &
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon xsp
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Xsp Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon xsp
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/xsp/xsp.webapp b/extra/xsp/xsp.webapp
new file mode 100644
index 000000000..a685dd171
--- /dev/null
+++ b/extra/xsp/xsp.webapp
@@ -0,0 +1,8 @@
+<apps>
+ <web-application>
+ <name>Root</name>
+ <vpath>/</vpath>
+ <path>/srv/http/html/xsp</path>
+ <vhost>localhost</vhost>
+ </web-application>
+</apps>
diff --git a/extra/xterm/LICENSE b/extra/xterm/LICENSE
new file mode 100644
index 000000000..518a2cc06
--- /dev/null
+++ b/extra/xterm/LICENSE
@@ -0,0 +1,73 @@
+/***********************************************************
+
+Copyright 2002-2008,2009 by Thomas E. Dickey
+
+ All Rights Reserved
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name(s) of the above copyright
+holders shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization.
+
+Copyright 1987, 1988 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+Copyright 1987, 1988 by Digital Equipment Corporation, Maynard.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Digital not be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission.
+
+DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+
+******************************************************************/
diff --git a/extra/xterm/PKGBUILD b/extra/xterm/PKGBUILD
new file mode 100644
index 000000000..a64650781
--- /dev/null
+++ b/extra/xterm/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 113886 2011-03-10 17:49:42Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xterm
+pkgver=269
+pkgrel=1
+pkgdesc="X Terminal Emulator"
+arch=('i686' 'x86_64')
+url="http://invisible-island.net/xterm/"
+license=('custom')
+depends=('libxft' 'libxaw' 'ncurses' 'xorg-luit' 'xbitmaps')
+source=(ftp://invisible-island.net/${pkgname}/${pkgname}-${pkgver}.tgz
+ LICENSE)
+md5sums=('d32150a7c1b2a8b6e2cbc95d180b9fec'
+ '10ecc3f8ee91e3189863a172f68282d2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --libdir=/etc \
+ --mandir=/usr/share/man \
+ --with-app-defaults=/usr/share/X11/app-defaults/ \
+ --with-x \
+ --disable-full-tgetent \
+ --disable-imake \
+ --enable-ansi-color \
+ --enable-88-color \
+ --enable-256-color \
+ --enable-broken-osc \
+ --enable-broken-st \
+ --enable-load-vt-fonts \
+ --enable-i18n \
+ --enable-wide-chars \
+ --enable-doublechars \
+ --enable-warnings \
+ --enable-tcap-query \
+ --enable-logging \
+ --enable-dabbrev \
+ --enable-freetype \
+ --enable-luit \
+ --enable-mini-luit \
+ --enable-narrowproto \
+ --enable-exec-xterm \
+ --with-tty-group=tty
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ chmod 0755 "${pkgdir}/usr/bin/xterm"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" \
+ "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/extra/xulrunner/PKGBUILD b/extra/xulrunner/PKGBUILD
new file mode 100644
index 000000000..8397152ca
--- /dev/null
+++ b/extra/xulrunner/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 115811 2011-03-21 17:44:12Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+pkgname=xulrunner
+pkgver=2.0
+_ffoxver=4.0
+pkgrel=1
+pkgdesc="Mozilla Runtime Environment"
+arch=('i686' 'x86_64')
+license=('MPL' 'GPL' 'LGPL')
+depends=('gtk2' 'gcc-libs' 'libidl2' 'mozilla-common' 'nss' 'libxt' 'libxrender' 'hunspell' 'startup-notification' 'mime-types' 'dbus-glib' 'alsa-lib' 'libevent' 'sqlite3>=3.7.4' 'libnotify')
+makedepends=('zip' 'pkg-config' 'diffutils' 'python2' 'wireless_tools' 'yasm' 'mesa')
+url="http://wiki.mozilla.org/XUL:Xul_Runner"
+source=(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${_ffoxver}/source/firefox-${_ffoxver}.source.tar.bz2
+ mozconfig
+ mozilla-pkgconfig.patch
+ xulrunner-version.patch
+ xulrunner-omnijar.patch
+ port_gnomevfs_to_gio.patch)
+options=('!emptydirs')
+md5sums=('3468a2c463b4fc2788ba621e4b511c30'
+ '2358a2ddd35bcdd62ff42442dfe548d9'
+ '639ea80e823543dd415b90c0ee804186'
+ 'a0236f6c3e55f60b7888d8cf137ff209'
+ 'dea8c2a57a588bf5f6198ce7b4155655'
+ '42f83468b296452fb754a81a4317ca64')
+build() {
+ cd "${srcdir}/mozilla-2.0"
+ cp "${srcdir}/mozconfig" .mozconfig
+
+ #fix libdir/sdkdir - fedora
+ patch -Np1 -i "${srcdir}/mozilla-pkgconfig.patch"
+
+ #Force installation to the same path for every version
+ patch -Np1 -i "${srcdir}/xulrunner-version.patch"
+
+ #https://bugzilla.mozilla.org/show_bug.cgi?id=620931
+ patch -Np1 -i "${srcdir}/xulrunner-omnijar.patch"
+
+ #https://bugzilla.mozilla.org/show_bug.cgi?id=494163
+ patch -Np1 -i "${srcdir}/port_gnomevfs_to_gio.patch"
+
+ unset CFLAGS
+ unset CXXFLAGS
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
+}
+
+package() {
+ cd "${srcdir}/mozilla-2.0"
+ make -j1 -f client.mk DESTDIR="${pkgdir}" install
+
+ #Remove included dictionaries, add symlink to system myspell path.
+ #Note: this will cause file conflicts when users have installed dictionaries in the old location
+ rm -rf "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
+ ln -sf /usr/share/myspell/dicts "${pkgdir}/usr/lib/xulrunner-2.0/dictionaries"
+
+ # add xulrunner library path to ld.so.conf
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/xulrunner-2.0" > ${pkgdir}/etc/ld.so.conf.d/xulrunner.conf
+}
diff --git a/extra/xulrunner/mozconfig b/extra/xulrunner/mozconfig
new file mode 100644
index 000000000..03a352920
--- /dev/null
+++ b/extra/xulrunner/mozconfig
@@ -0,0 +1,56 @@
+. $topsrcdir/xulrunner/config/mozconfig
+
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-cairo
+ac_add_options --with-pthreads
+
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-safe-browsing
+ac_add_options --enable-extensions=default
+ac_add_options --enable-startup-notification
+ac_add_options --enable-pango
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --enable-smil
+ac_add_options --enable-canvas3d
+ac_add_options --enable-places
+ac_add_options --enable-shared-js
+ac_add_options --enable-url-classifier
+
+ac_add_options --enable-optimize
+ac_add_options --enable-strip
+ac_add_options --enable-install-strip
+ac_add_options --enable-jemalloc
+ac_add_options --enable-xterm-updates
+ac_add_options --enable-printing
+ac_add_options --enable-xinerama
+
+ac_add_options --disable-javaxpcom
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-xprint
+ac_add_options --disable-mochitest
+ac_add_options --disable-debug
+ac_add_options --disable-installer
+ac_add_options --disable-pedantic
+
+ac_add_options --enable-gio
+ac_add_options --disable-gnomevfs
+ac_add_options --enable-gconf
+ac_add_options --enable-libnotify
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/extra/xulrunner/mozilla-pkgconfig.patch b/extra/xulrunner/mozilla-pkgconfig.patch
new file mode 100644
index 000000000..2203efcde
--- /dev/null
+++ b/extra/xulrunner/mozilla-pkgconfig.patch
@@ -0,0 +1,60 @@
+diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/libxul-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/libxul-embedding.pc.in 2011-03-13 03:25:12.350027359 -0700
+@@ -6,5 +6,6 @@
+ Name: libxul-embedding
+ Description: Static library for version-independent embedding of the Mozilla runtime
+ Version: %MOZILLA_VERSION%
++Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib -lxpcomglue -ldl
+ Cflags: -DXPCOM_GLUE -I${includedir} %WCHAR_CFLAGS%
+diff -Nur mozilla-2.0.orig/xulrunner/installer/libxul.pc.in mozilla-2.0/xulrunner/installer/libxul.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/libxul.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/libxul.pc.in 2011-03-13 03:25:28.010027359 -0700
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+ idldir=%idldir%
+
+diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
+--- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 03:25:55.570027359 -0700
+@@ -121,6 +121,7 @@
+ -e "s|%includedir%|$(includedir)|" \
+ -e "s|%idldir%|$(idldir)|" \
+ -e "s|%sdkdir%|$(sdkdir)|" \
++ -e "s|%libdir%|$(installdir)|" \
+ -e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
+ -e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
+ -e "s|%WCHAR_CFLAGS%|$(WCHAR_CFLAGS)|" \
+diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in 2011-03-13 03:26:18.676694023 -0700
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/mozilla-gtkmozembed.pc.in 2011-03-13 03:26:41.566694025 -0700
+@@ -1,5 +1,6 @@
+ prefix=%prefix%
+ sdkdir=%sdkdir%
++libdir=%libdir%
+ includedir=%includedir%
+
+ Name: mozilla-gtkembedmoz
+diff -Nur mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in mozilla-2.0/xulrunner/installer/mozilla-js.pc.in
+--- mozilla-2.0.orig/xulrunner/installer/mozilla-js.pc.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/mozilla-js.pc.in 2011-03-13 03:27:19.680027357 -0700
+@@ -7,4 +7,4 @@
+ Version: %MOZILLA_VERSION%
+ Requires: %NSPR_NAME% >= %NSPR_VERSION%
+ Libs: -L${sdkdir}/lib %MOZ_JS_LINK%
+-Cflags: -I${includedir} -DXP_UNIX -DJS_THREADSAFE
++Cflags: -I${includedir} -I${includedir}/js -DXP_UNIX -DJS_THREADSAFE
diff --git a/extra/xulrunner/port_gnomevfs_to_gio.patch b/extra/xulrunner/port_gnomevfs_to_gio.patch
new file mode 100644
index 000000000..797baff42
--- /dev/null
+++ b/extra/xulrunner/port_gnomevfs_to_gio.patch
@@ -0,0 +1,1316 @@
+diff -r 49a1b2aa43c5 extensions/gio/Makefile.in
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/extensions/gio/Makefile.in Tue Jan 11 11:17:52 2011 +0100
+@@ -0,0 +1,69 @@
++# vim:set ts=8 sw=8 sts=8 noet:
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# The contents of this file are subject to the Mozilla Public License Version
++# 1.1 (the "License"); you may not use this file except in compliance with
++# the License. You may obtain a copy of the License at
++# http://www.mozilla.org/MPL/
++#
++# Software distributed under the License is distributed on an "AS IS" basis,
++# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++# for the specific language governing rights and limitations under the
++# License.
++#
++# The Original Code is the Mozilla gnome-vfs extension.
++#
++# The Initial Developer of the Original Code is IBM Corporation.
++#
++# Portions created by IBM Corporation are Copyright (C) 2004
++# IBM Corporation. All Rights Reserved.
++#
++# Contributor(s):
++# Darin Fisher <darin@meer.net>
++# Jan Horak <jhorak@redhat.com>
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++DEPTH = ../..
++topsrcdir = @top_srcdir@
++srcdir = @srcdir@
++VPATH = @srcdir@
++
++include $(DEPTH)/config/autoconf.mk
++
++MODULE = nkgio
++LIBRARY_NAME = nkgio
++SHORT_LIBNAME = nkgio
++IS_COMPONENT = 1
++
++CPPSRCS = \
++ nsGIOProtocolHandler.cpp \
++ $(NULL)
++
++LOCAL_INCLUDES = $(MOZ_GIO_CFLAGS)
++
++EXTRA_DSO_LDOPTS = \
++ $(XPCOM_GLUE_LDOPTS) \
++ $(NSPR_LIBS) \
++ $(MOZ_GIO_LIBS) \
++ $(NULL)
++
++# make sure this component is never statically linked into the main
++# application. this is necessary since we don't want to force users
++# to install gio in order to use the rest of mozilla ;-)
++FORCE_SHARED_LIB= 1
++
++include $(topsrcdir)/config/rules.mk
+diff -r 49a1b2aa43c5 extensions/gio/makefiles.sh
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/extensions/gio/makefiles.sh Tue Jan 11 11:17:52 2011 +0100
+@@ -0,0 +1,41 @@
++#! /bin/sh
++# ***** BEGIN LICENSE BLOCK *****
++# Version: MPL 1.1/GPL 2.0/LGPL 2.1
++#
++# The contents of this file are subject to the Mozilla Public License Version
++# 1.1 (the "License"); you may not use this file except in compliance with
++# the License. You may obtain a copy of the License at
++# http://www.mozilla.org/MPL/
++#
++# Software distributed under the License is distributed on an "AS IS" basis,
++# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++# for the specific language governing rights and limitations under the
++# License.
++#
++# The Original Code is Mozilla Build System
++#
++# The Initial Developer of the Original Code is
++# Ben Turner <mozilla@songbirdnest.com>
++#
++# Portions created by the Initial Developer are Copyright (C) 2007
++# the Initial Developer. All Rights Reserved.
++#
++# Contributor(s):
++#
++# Alternatively, the contents of this file may be used under the terms of
++# either the GNU General Public License Version 2 or later (the "GPL"), or
++# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++# in which case the provisions of the GPL or the LGPL are applicable instead
++# of those above. If you wish to allow use of your version of this file only
++# under the terms of either the GPL or the LGPL, and not to allow others to
++# use your version of this file under the terms of the MPL, indicate your
++# decision by deleting the provisions above and replace them with the notice
++# and other provisions required by the GPL or the LGPL. If you do not delete
++# the provisions above, a recipient may use your version of this file under
++# the terms of any one of the MPL, the GPL or the LGPL.
++#
++# ***** END LICENSE BLOCK *****
++
++add_makefiles "
++ extensions/gio/Makefile
++"
+diff -r 49a1b2aa43c5 extensions/gio/nsGIOProtocolHandler.cpp
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/extensions/gio/nsGIOProtocolHandler.cpp Tue Jan 11 11:17:52 2011 +0100
+@@ -0,0 +1,1163 @@
++/* vim:set ts=2 sw=2 et cindent: */
++/* ***** BEGIN LICENSE BLOCK *****
++ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
++ *
++ * The contents of this file are subject to the Mozilla Public License Version
++ * 1.1 (the "License"); you may not use this file except in compliance with
++ * the License. You may obtain a copy of the License at
++ * http://www.mozilla.org/MPL/
++ *
++ * Software distributed under the License is distributed on an "AS IS" basis,
++ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
++ * for the specific language governing rights and limitations under the
++ * License.
++ *
++ * The Original Code is the Mozilla gnome-vfs extension.
++ *
++ * The Initial Developer of the Original Code is IBM Corporation.
++ *
++ * Portions created by IBM Corporation are Copyright (C) 2004
++ * IBM Corporation. All Rights Reserved.
++ *
++ * Contributor(s):
++ * Darin Fisher <darin@meer.net>
++ * Jan Horak <jhorak@redhat.com>
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * either the GNU General Public License Version 2 or later (the "GPL"), or
++ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
++ * in which case the provisions of the GPL or the LGPL are applicable instead
++ * of those above. If you wish to allow use of your version of this file only
++ * under the terms of either the GPL or the LGPL, and not to allow others to
++ * use your version of this file under the terms of the MPL, indicate your
++ * decision by deleting the provisions above and replace them with the notice
++ * and other provisions required by the GPL or the LGPL. If you do not delete
++ * the provisions above, a recipient may use your version of this file under
++ * the terms of any one of the MPL, the GPL or the LGPL.
++ *
++ * ***** END LICENSE BLOCK ***** */
++
++/*
++ * This code is based on original Mozilla gnome-vfs extension. It implements
++ * input stream provided by GVFS/GIO.
++*/
++#include "mozilla/ModuleUtils.h"
++#include "nsIPrefService.h"
++#include "nsIPrefBranch2.h"
++#include "nsIObserver.h"
++#include "nsThreadUtils.h"
++#include "nsProxyRelease.h"
++#include "nsIStringBundle.h"
++#include "nsIStandardURL.h"
++#include "nsMimeTypes.h"
++#include "nsNetUtil.h"
++#include "mozilla/Monitor.h"
++#include <gio/gio.h>
++
++#define MOZ_GIO_SCHEME "moz-gio"
++#define MOZ_GIO_SUPPORTED_PROTOCOLS "network.gio.supported-protocols"
++
++//-----------------------------------------------------------------------------
++
++// NSPR_LOG_MODULES=gio:5
++#ifdef PR_LOGGING
++static PRLogModuleInfo *sGIOLog;
++#define LOG(args) PR_LOG(sGIOLog, PR_LOG_DEBUG, args)
++#else
++#define LOG(args)
++#endif
++
++
++//-----------------------------------------------------------------------------
++static nsresult
++MapGIOResult(gint code)
++{
++ switch (code)
++ {
++ case G_IO_ERROR_NOT_FOUND: return NS_ERROR_FILE_NOT_FOUND; // shows error
++ case G_IO_ERROR_INVALID_ARGUMENT: return NS_ERROR_INVALID_ARG;
++ case G_IO_ERROR_NOT_SUPPORTED: return NS_ERROR_NOT_AVAILABLE;
++ case G_IO_ERROR_NO_SPACE: return NS_ERROR_FILE_NO_DEVICE_SPACE;
++ case G_IO_ERROR_READ_ONLY: return NS_ERROR_FILE_READ_ONLY;
++ case G_IO_ERROR_PERMISSION_DENIED: return NS_ERROR_FILE_ACCESS_DENIED; // wrong password/login
++ case G_IO_ERROR_CLOSED: return NS_BASE_STREAM_CLOSED; // was EOF
++ case G_IO_ERROR_NOT_DIRECTORY: return NS_ERROR_FILE_NOT_DIRECTORY;
++ case G_IO_ERROR_PENDING: return NS_ERROR_IN_PROGRESS;
++ case G_IO_ERROR_EXISTS: return NS_ERROR_FILE_ALREADY_EXISTS;
++ case G_IO_ERROR_IS_DIRECTORY: return NS_ERROR_FILE_IS_DIRECTORY;
++ case G_IO_ERROR_NOT_MOUNTED: return NS_ERROR_NOT_CONNECTED; // shows error
++ case G_IO_ERROR_HOST_NOT_FOUND: return NS_ERROR_UNKNOWN_HOST; // shows error
++ case G_IO_ERROR_CANCELLED: return NS_ERROR_ABORT;
++ case G_IO_ERROR_NOT_EMPTY: return NS_ERROR_FILE_DIR_NOT_EMPTY;
++ case G_IO_ERROR_FILENAME_TOO_LONG: return NS_ERROR_FILE_NAME_TOO_LONG;
++ case G_IO_ERROR_INVALID_FILENAME: return NS_ERROR_FILE_INVALID_PATH;
++ case G_IO_ERROR_TIMED_OUT: return NS_ERROR_NET_TIMEOUT; // shows error
++ case G_IO_ERROR_WOULD_BLOCK: return NS_BASE_STREAM_WOULD_BLOCK;
++ case G_IO_ERROR_FAILED_HANDLED: return NS_ERROR_ABORT; // Cancel on login dialog
++
++/* unhandled:
++ G_IO_ERROR_NOT_REGULAR_FILE,
++ G_IO_ERROR_NOT_SYMBOLIC_LINK,
++ G_IO_ERROR_NOT_MOUNTABLE_FILE,
++ G_IO_ERROR_TOO_MANY_LINKS,
++ G_IO_ERROR_ALREADY_MOUNTED,
++ G_IO_ERROR_CANT_CREATE_BACKUP,
++ G_IO_ERROR_WRONG_ETAG,
++ G_IO_ERROR_WOULD_RECURSE,
++ G_IO_ERROR_BUSY,
++ G_IO_ERROR_WOULD_MERGE,
++ G_IO_ERROR_TOO_MANY_OPEN_FILES
++*/
++ // Make GCC happy
++ default:
++ return NS_ERROR_FAILURE;
++ }
++
++ return NS_ERROR_FAILURE;
++}
++
++static nsresult
++MapGIOResult(GError *result)
++{
++ if (!result)
++ return NS_OK;
++ else
++ return MapGIOResult(result->code);
++}
++/** Return values for mount operation.
++ * These enums are used as mount operation return values.
++ */
++typedef enum {
++ MOUNT_OPERATION_IN_PROGRESS, /** \enum operation in progress */
++ MOUNT_OPERATION_SUCCESS, /** \enum operation successful */
++ MOUNT_OPERATION_FAILED /** \enum operation not successful */
++} MountOperationResult;
++//-----------------------------------------------------------------------------
++/**
++ * Sort function compares according to file type (directory/file)
++ * and alphabethical order
++ * @param a pointer to GFileInfo object to compare
++ * @param b pointer to GFileInfo object to compare
++ * @return -1 when first object should be before the second, 0 when equal,
++ * +1 when second object should be before the first
++ */
++static gint
++FileInfoComparator(gconstpointer a, gconstpointer b)
++{
++ GFileInfo *ia = ( GFileInfo *) a;
++ GFileInfo *ib = ( GFileInfo *) b;
++ if (g_file_info_get_file_type(ia) == G_FILE_TYPE_DIRECTORY
++ && g_file_info_get_file_type(ib) != G_FILE_TYPE_DIRECTORY)
++ return -1;
++ if (g_file_info_get_file_type(ib) == G_FILE_TYPE_DIRECTORY
++ && g_file_info_get_file_type(ia) != G_FILE_TYPE_DIRECTORY)
++ return 1;
++
++ return strcasecmp(g_file_info_get_name(ia), g_file_info_get_name(ib));
++}
++
++/* Declaration of mount callback functions */
++static void mount_enclosing_volume_finished (GObject *source_object,
++ GAsyncResult *res,
++ gpointer user_data);
++static void mount_operation_ask_password (GMountOperation *mount_op,
++ const char *message,
++ const char *default_user,
++ const char *default_domain,
++ GAskPasswordFlags flags,
++ gpointer user_data);
++//-----------------------------------------------------------------------------
++
++class nsGIOInputStream : public nsIInputStream
++{
++ public:
++ NS_DECL_ISUPPORTS
++ NS_DECL_NSIINPUTSTREAM
++
++ nsGIOInputStream(const nsCString &uriSpec)
++ : mSpec(uriSpec)
++ , mChannel(nsnull)
++ , mHandle(nsnull)
++ , mStream(nsnull)
++ , mBytesRemaining(PR_UINT32_MAX)
++ , mStatus(NS_OK)
++ , mDirList(nsnull)
++ , mDirListPtr(nsnull)
++ , mDirBufCursor(0)
++ , mDirOpen(PR_FALSE)
++ , mMonitorMountInProgress("GIOInputStream::MountFinished") { }
++
++ ~nsGIOInputStream() { Close(); }
++
++ void SetChannel(nsIChannel *channel)
++ {
++ // We need to hold an owning reference to our channel. This is done
++ // so we can access the channel's notification callbacks to acquire
++ // a reference to a nsIAuthPrompt if we need to handle an interactive
++ // mount operation.
++ //
++ // However, the channel can only be accessed on the main thread, so
++ // we have to be very careful with ownership. Moreover, it doesn't
++ // support threadsafe addref/release, so proxying is the answer.
++ //
++ // Also, it's important to note that this likely creates a reference
++ // cycle since the channel likely owns this stream. This reference
++ // cycle is broken in our Close method.
++
++ NS_ADDREF(mChannel = channel);
++ }
++ void SetMountResult(MountOperationResult result, gint error_code);
++ private:
++ nsresult DoOpen();
++ nsresult DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead);
++ nsresult SetContentTypeOfChannel(const char *contentType);
++ nsresult MountVolume();
++ nsresult DoOpenDirectory();
++ nsresult DoOpenFile(GFileInfo *info);
++ nsCString mSpec;
++ nsIChannel *mChannel; // manually refcounted
++ GFile *mHandle;
++ GFileInputStream *mStream;
++ PRUint64 mBytesRemaining;
++ nsresult mStatus;
++ GList *mDirList;
++ GList *mDirListPtr;
++ nsCString mDirBuf;
++ PRUint32 mDirBufCursor;
++ PRPackedBool mDirOpen;
++ MountOperationResult mMountRes;
++ mozilla::Monitor mMonitorMountInProgress;
++ gint mMountErrorCode;
++};
++/**
++ * Set result of mount operation and notify monitor waiting for results.
++ * This method is called in main thread as long as it is used only
++ * in mount_enclosing_volume_finished function.
++ * @param result Result of mount operation
++ */
++void
++nsGIOInputStream::SetMountResult(MountOperationResult result, gint error_code)
++{
++ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
++ mMountRes = result;
++ mMountErrorCode = error_code;
++ mon.Notify();
++}
++
++/**
++ * Start mount operation and wait in loop until it is finished. This method is
++ * called from thread which is trying to read from location.
++ */
++nsresult
++nsGIOInputStream::MountVolume() {
++ GMountOperation* mount_op = g_mount_operation_new();
++ g_signal_connect (mount_op, "ask-password",
++ G_CALLBACK (mount_operation_ask_password), mChannel);
++ mMountRes = MOUNT_OPERATION_IN_PROGRESS;
++ /* g_file_mount_enclosing_volume uses a dbus request to mount the volume.
++ Callback mount_enclosing_volume_finished is called in main thread
++ (not this thread on which this method is called). */
++ g_file_mount_enclosing_volume(mHandle,
++ G_MOUNT_MOUNT_NONE,
++ mount_op,
++ NULL,
++ mount_enclosing_volume_finished,
++ this);
++ mozilla::MonitorAutoEnter mon(mMonitorMountInProgress);
++ /* Waiting for finish of mount operation thread */
++ while (mMountRes == MOUNT_OPERATION_IN_PROGRESS)
++ mon.Wait();
++
++ g_object_unref(mount_op);
++
++ if (mMountRes == MOUNT_OPERATION_FAILED) {
++ return MapGIOResult(mMountErrorCode);
++ } else {
++ return NS_OK;
++ }
++}
++
++/**
++ * Create list of infos about objects in opened directory
++ * Return: NS_OK when list obtained, otherwise error code according
++ * to failed operation.
++ */
++nsresult
++nsGIOInputStream::DoOpenDirectory()
++{
++ GError *error = NULL;
++
++ GFileEnumerator *f_enum = g_file_enumerate_children(mHandle,
++ "standard::*,time::*",
++ G_FILE_QUERY_INFO_NONE,
++ NULL,
++ &error);
++ if (!f_enum) {
++ nsresult rv = MapGIOResult(error);
++ g_warning("Cannot read from directory: %s", error->message);
++ g_error_free(error);
++ return rv;
++ }
++ // fill list of file infos
++ GFileInfo *info = g_file_enumerator_next_file(f_enum, NULL, &error);
++ while (info) {
++ mDirList = g_list_append(mDirList, info);
++ info = g_file_enumerator_next_file(f_enum, NULL, &error);
++ }
++ g_object_unref(f_enum);
++ if (error) {
++ g_warning("Error reading directory content: %s", error->message);
++ nsresult rv = MapGIOResult(error);
++ g_error_free(error);
++ return rv;
++ }
++ mDirOpen = PR_TRUE;
++
++ // Sort list of file infos by using FileInfoComparator function
++ mDirList = g_list_sort(mDirList, FileInfoComparator);
++ mDirListPtr = mDirList;
++
++ // Write base URL (make sure it ends with a '/')
++ mDirBuf.Append("300: ");
++ mDirBuf.Append(mSpec);
++ if (mSpec.get()[mSpec.Length() - 1] != '/')
++ mDirBuf.Append('/');
++ mDirBuf.Append('\n');
++
++ // Write column names
++ mDirBuf.Append("200: filename content-length last-modified file-type\n");
++
++ // Write charset (assume UTF-8)
++ // XXX is this correct?
++ mDirBuf.Append("301: UTF-8\n");
++ SetContentTypeOfChannel(APPLICATION_HTTP_INDEX_FORMAT);
++ return NS_OK;
++}
++
++/**
++ * Create file stream and set mime type for channel
++ * @param info file info used to determine mime type
++ * @return NS_OK when file stream created successfuly, error code otherwise
++ */
++nsresult
++nsGIOInputStream::DoOpenFile(GFileInfo *info)
++{
++ GError *error = NULL;
++
++ mStream = g_file_read(mHandle, NULL, &error);
++ if (!mStream) {
++ nsresult rv = MapGIOResult(error);
++ g_warning("Cannot read from file: %s", error->message);
++ g_error_free(error);
++ return rv;
++ }
++
++ const char * content_type = g_file_info_get_content_type(info);
++ if (content_type) {
++ char *mime_type = g_content_type_get_mime_type(content_type);
++ if (mime_type) {
++ if (strcmp(mime_type, APPLICATION_OCTET_STREAM) != 0) {
++ SetContentTypeOfChannel(mime_type);
++ }
++ g_free(mime_type);
++ }
++ } else {
++ g_warning("Missing content type.");
++ }
++
++ mBytesRemaining = g_file_info_get_size(info);
++ // Update the content length attribute on the channel. We do this
++ // synchronously without proxying. This hack is not as bad as it looks!
++ mChannel->SetContentLength(mBytesRemaining);
++
++ return NS_OK;
++}
++
++/**
++ * Start file open operation, mount volume when needed and according to file type
++ * create file output stream or read directory content.
++ * @return NS_OK when file or directory opened successfully, error code otherwise
++ */
++nsresult
++nsGIOInputStream::DoOpen()
++{
++ nsresult rv;
++ GError *error = NULL;
++
++ NS_ASSERTION(mHandle == nsnull, "already open");
++
++ mHandle = g_file_new_for_uri( mSpec.get() );
++
++ GFileInfo *info = g_file_query_info(mHandle,
++ "standard::*",
++ G_FILE_QUERY_INFO_NONE,
++ NULL,
++ &error);
++
++ if (error) {
++ if (error->domain == G_IO_ERROR && error->code == G_IO_ERROR_NOT_MOUNTED) {
++ // location is not yet mounted, try to mount
++ g_error_free(error);
++ if (NS_IsMainThread())
++ return NS_ERROR_NOT_CONNECTED;
++ error = NULL;
++ rv = MountVolume();
++ if (rv != NS_OK) {
++ return rv;
++ }
++ // get info again
++ info = g_file_query_info(mHandle,
++ "standard::*",
++ G_FILE_QUERY_INFO_NONE,
++ NULL,
++ &error);
++ // second try to get file info from remote files after media mount
++ if (!info) {
++ g_warning("Unable to get file info: %s", error->message);
++ rv = MapGIOResult(error);
++ g_error_free(error);
++ return rv;
++ }
++ } else {
++ g_warning("Unable to get file info: %s", error->message);
++ rv = MapGIOResult(error);
++ g_error_free(error);
++ return rv;
++ }
++ }
++ // Get file type to handle directories and file differently
++ GFileType f_type = g_file_info_get_file_type(info);
++ if (f_type == G_FILE_TYPE_DIRECTORY) {
++ // directory
++ rv = DoOpenDirectory();
++ } else if (f_type != G_FILE_TYPE_UNKNOWN) {
++ // file
++ rv = DoOpenFile(info);
++ } else {
++ g_warning("Unable to get file type.");
++ rv = NS_ERROR_FILE_NOT_FOUND;
++ }
++ if (info)
++ g_object_unref(info);
++ return rv;
++}
++
++/**
++ * Read content of file or create file list from directory
++ * @param aBuf read destination buffer
++ * @param aCount length of destination buffer
++ * @param aCountRead number of read characters
++ * @return NS_OK when read successfully, NS_BASE_STREAM_CLOSED when end of file,
++ * error code otherwise
++ */
++nsresult
++nsGIOInputStream::DoRead(char *aBuf, PRUint32 aCount, PRUint32 *aCountRead)
++{
++ nsresult rv = NS_ERROR_NOT_AVAILABLE;
++ if (mStream) {
++ // file read
++ GError *error = NULL;
++ PRUint32 bytes_read = g_input_stream_read(G_INPUT_STREAM(mStream),
++ aBuf,
++ aCount,
++ NULL,
++ &error);
++ if (error) {
++ rv = MapGIOResult(error);
++ *aCountRead = 0;
++ g_warning("Cannot read from file: %s", error->message);
++ g_error_free(error);
++ return rv;
++ }
++ *aCountRead = bytes_read;
++ mBytesRemaining -= *aCountRead;
++ return NS_OK;
++ }
++ else if (mDirOpen) {
++ // directory read
++ while (aCount && rv != NS_BASE_STREAM_CLOSED)
++ {
++ // Copy data out of our buffer
++ PRUint32 bufLen = mDirBuf.Length() - mDirBufCursor;
++ if (bufLen)
++ {
++ PRUint32 n = PR_MIN(bufLen, aCount);
++ memcpy(aBuf, mDirBuf.get() + mDirBufCursor, n);
++ *aCountRead += n;
++ aBuf += n;
++ aCount -= n;
++ mDirBufCursor += n;
++ }
++
++ if (!mDirListPtr) // Are we at the end of the directory list?
++ {
++ rv = NS_BASE_STREAM_CLOSED;
++ }
++ else if (aCount) // Do we need more data?
++ {
++ GFileInfo *info = (GFileInfo *) mDirListPtr->data;
++
++ // Prune '.' and '..' from directory listing.
++ const char * fname = g_file_info_get_name(info);
++ if (fname && fname[0] == '.' &&
++ (fname[1] == '\0' || (fname[1] == '.' && fname[2] == '\0')))
++ {
++ mDirListPtr = mDirListPtr->next;
++ continue;
++ }
++
++ mDirBuf.Assign("201: ");
++
++ // The "filename" field
++ nsCString escName;
++ nsCOMPtr<nsINetUtil> nu = do_GetService(NS_NETUTIL_CONTRACTID);
++ if (nu && fname) {
++ nu->EscapeString(nsDependentCString(fname),
++ nsINetUtil::ESCAPE_URL_PATH, escName);
++
++ mDirBuf.Append(escName);
++ mDirBuf.Append(' ');
++ }
++
++ // The "content-length" field
++ // XXX truncates size from 64-bit to 32-bit
++ mDirBuf.AppendInt(PRInt32(g_file_info_get_size(info)));
++ mDirBuf.Append(' ');
++
++ // The "last-modified" field
++ //
++ // NSPR promises: PRTime is compatible with time_t
++ // we just need to convert from seconds to microseconds
++ GTimeVal gtime;
++ g_file_info_get_modification_time(info, &gtime);
++
++ PRExplodedTime tm;
++ PRTime pt = ((PRTime) gtime.tv_sec) * 1000000;
++ PR_ExplodeTime(pt, PR_GMTParameters, &tm);
++ {
++ char buf[64];
++ PR_FormatTimeUSEnglish(buf, sizeof(buf),
++ "%a,%%20%d%%20%b%%20%Y%%20%H:%M:%S%%20GMT ", &tm);
++ mDirBuf.Append(buf);
++ }
++
++ // The "file-type" field
++ switch (g_file_info_get_file_type(info))
++ {
++ case G_FILE_TYPE_REGULAR:
++ mDirBuf.Append("FILE ");
++ break;
++ case G_FILE_TYPE_DIRECTORY:
++ mDirBuf.Append("DIRECTORY ");
++ break;
++ case G_FILE_TYPE_SYMBOLIC_LINK:
++ mDirBuf.Append("SYMBOLIC-LINK ");
++ break;
++ default:
++ break;
++ }
++ mDirBuf.Append('\n');
++
++ mDirBufCursor = 0;
++ mDirListPtr = mDirListPtr->next;
++ }
++ }
++ }
++ return rv;
++}
++
++/**
++ * This class is used to implement SetContentTypeOfChannel.
++ */
++class nsGIOSetContentTypeEvent : public nsRunnable
++{
++ public:
++ nsGIOSetContentTypeEvent(nsIChannel *channel, const char *contentType)
++ : mChannel(channel), mContentType(contentType)
++ {
++ // stash channel reference in mChannel. no AddRef here! see note
++ // in SetContentTypeOfchannel.
++ }
++
++ NS_IMETHOD Run()
++ {
++ mChannel->SetContentType(mContentType);
++ return NS_OK;
++ }
++
++ private:
++ nsIChannel *mChannel;
++ nsCString mContentType;
++};
++
++nsresult
++nsGIOInputStream::SetContentTypeOfChannel(const char *contentType)
++{
++ // We need to proxy this call over to the main thread. We post an
++ // asynchronous event in this case so that we don't delay reading data, and
++ // we know that this is safe to do since the channel's reference will be
++ // released asynchronously as well. We trust the ordering of the main
++ // thread's event queue to protect us against memory corruption.
++
++ nsresult rv;
++ nsCOMPtr<nsIRunnable> ev =
++ new nsGIOSetContentTypeEvent(mChannel, contentType);
++ if (!ev)
++ {
++ rv = NS_ERROR_OUT_OF_MEMORY;
++ }
++ else
++ {
++ rv = NS_DispatchToMainThread(ev);
++ }
++ return rv;
++}
++
++NS_IMPL_THREADSAFE_ISUPPORTS1(nsGIOInputStream, nsIInputStream)
++
++/**
++ * Free all used memory and close stream.
++ */
++NS_IMETHODIMP
++nsGIOInputStream::Close()
++{
++ if (mStream)
++ {
++ g_object_unref(mStream);
++ mStream = nsnull;
++ }
++
++ if (mHandle)
++ {
++ g_object_unref(mHandle);
++ mHandle = nsnull;
++ }
++
++ if (mDirList)
++ {
++ // Destroy the list of GIOFileInfo objects...
++ g_list_foreach(mDirList, (GFunc) g_object_unref, nsnull);
++ g_list_free(mDirList);
++ mDirList = nsnull;
++ mDirListPtr = nsnull;
++ }
++
++ if (mChannel)
++ {
++ nsresult rv = NS_OK;
++
++ nsCOMPtr<nsIThread> thread = do_GetMainThread();
++ if (thread)
++ rv = NS_ProxyRelease(thread, mChannel);
++
++ NS_ASSERTION(thread && NS_SUCCEEDED(rv), "leaking channel reference");
++ mChannel = nsnull;
++ }
++
++ mSpec.Truncate(); // free memory
++
++ // Prevent future reads from re-opening the handle.
++ if (NS_SUCCEEDED(mStatus))
++ mStatus = NS_BASE_STREAM_CLOSED;
++
++ return NS_OK;
++}
++
++/**
++ * Return number of remaining bytes available on input
++ * @param aResult remaining bytes
++ */
++NS_IMETHODIMP
++nsGIOInputStream::Available(PRUint32 *aResult)
++{
++ if (NS_FAILED(mStatus))
++ return mStatus;
++
++ /* When remaining bytes are bigger than max PRUint32 value an aResult must
++ be set to PRUint32 maximum */
++ if (mBytesRemaining > PR_UINT32_MAX)
++ *aResult = PR_UINT32_MAX;
++ else
++ *aResult = mBytesRemaining;
++
++ return NS_OK;
++}
++
++/**
++ * Trying to read from stream. When location is not available it tries to mount it.
++ * @param aBuf buffer to put read data
++ * @param aCount length of aBuf
++ * @param aCountRead number of bytes actually read
++ */
++NS_IMETHODIMP
++nsGIOInputStream::Read(char *aBuf,
++ PRUint32 aCount,
++ PRUint32 *aCountRead)
++{
++ *aCountRead = 0;
++ // Check if file is already opened, otherwise open it
++ if (!mStream && !mDirOpen && mStatus == NS_OK) {
++ mStatus = DoOpen();
++ if (NS_FAILED(mStatus)) {
++ return mStatus;
++ }
++ }
++
++ mStatus = DoRead(aBuf, aCount, aCountRead);
++ // Check if all data has been read
++ if (mStatus == NS_BASE_STREAM_CLOSED)
++ return NS_OK;
++
++ // Check whenever any error appears while reading
++ return mStatus;
++}
++
++NS_IMETHODIMP
++nsGIOInputStream::ReadSegments(nsWriteSegmentFun aWriter,
++ void *aClosure,
++ PRUint32 aCount,
++ PRUint32 *aResult)
++{
++ // There is no way to implement this using GnomeVFS, but fortunately
++ // that doesn't matter. Because we are a blocking input stream, Necko
++ // isn't going to call our ReadSegments method.
++ NS_NOTREACHED("nsGIOInputStream::ReadSegments");
++ return NS_ERROR_NOT_IMPLEMENTED;
++}
++
++NS_IMETHODIMP
++nsGIOInputStream::IsNonBlocking(PRBool *aResult)
++{
++ *aResult = PR_FALSE;
++ return NS_OK;
++}
++
++//-----------------------------------------------------------------------------
++
++/**
++ * Called when finishing mount operation. Result of operation is set in
++ * nsGIOInputStream. This function is called in main thread as an async request
++ * typically from dbus.
++ * @param source_object GFile object which requested the mount
++ * @param res result object
++ * @param user_data pointer to nsGIOInputStream
++ */
++static void
++mount_enclosing_volume_finished (GObject *source_object,
++ GAsyncResult *res,
++ gpointer user_data)
++{
++ GError *error = NULL;
++
++ nsGIOInputStream* istream = static_cast<nsGIOInputStream*>(user_data);
++
++ g_file_mount_enclosing_volume_finish(G_FILE (source_object), res, &error);
++
++ if (error) {
++ g_warning("Mount failed: %s %d", error->message, error->code);
++ istream->SetMountResult(MOUNT_OPERATION_FAILED, error->code);
++ g_error_free(error);
++ } else {
++ istream->SetMountResult(MOUNT_OPERATION_SUCCESS, 0);
++ }
++}
++
++/**
++ * This function is called when username or password are requested from user.
++ * This function is called in main thread as async request from dbus.
++ * @param mount_op mount operation
++ * @param message message to show to user
++ * @param default_user preffered user
++ * @param default_domain domain name
++ * @param flags what type of information is required
++ * @param user_data nsIChannel
++ */
++static void
++mount_operation_ask_password (GMountOperation *mount_op,
++ const char *message,
++ const char *default_user,
++ const char *default_domain,
++ GAskPasswordFlags flags,
++ gpointer user_data)
++{
++ nsIChannel *channel = (nsIChannel *) user_data;
++ if (!channel) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // We can't handle request for domain
++ if (flags & G_ASK_PASSWORD_NEED_DOMAIN) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++
++ nsCOMPtr<nsIAuthPrompt> prompt;
++ NS_QueryNotificationCallbacks(channel, prompt);
++
++ // If no auth prompt, then give up. We could failover to using the
++ // WindowWatcher service, but that might defeat a consumer's purposeful
++ // attempt to disable authentication (for whatever reason).
++ if (!prompt) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // Parse out the host and port...
++ nsCOMPtr<nsIURI> uri;
++ channel->GetURI(getter_AddRefs(uri));
++ if (!uri) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++
++ nsCAutoString scheme, hostPort;
++ uri->GetScheme(scheme);
++ uri->GetHostPort(hostPort);
++
++ // It doesn't make sense for either of these strings to be empty. What kind
++ // of funky URI is this?
++ if (scheme.IsEmpty() || hostPort.IsEmpty()) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // Construct the single signon key. Altering the value of this key will
++ // cause people's remembered passwords to be forgotten. Think carefully
++ // before changing the way this key is constructed.
++ nsAutoString key, realm;
++
++ NS_ConvertUTF8toUTF16 dispHost(scheme);
++ dispHost.Append(NS_LITERAL_STRING("://"));
++ dispHost.Append(NS_ConvertUTF8toUTF16(hostPort));
++
++ key = dispHost;
++ if (*default_domain != '\0')
++ {
++ // We assume the realm string is ASCII. That might be a bogus assumption,
++ // but we have no idea what encoding GnomeVFS is using, so for now we'll
++ // limit ourselves to ISO-Latin-1. XXX What is a better solution?
++ realm.Append('"');
++ realm.Append(NS_ConvertASCIItoUTF16(default_domain));
++ realm.Append('"');
++ key.Append(' ');
++ key.Append(realm);
++ }
++ // Construct the message string...
++ //
++ // We use Necko's string bundle here. This code really should be encapsulated
++ // behind some Necko API, after all this code is based closely on the code in
++ // nsHttpChannel.cpp.
++ nsCOMPtr<nsIStringBundleService> bundleSvc =
++ do_GetService(NS_STRINGBUNDLE_CONTRACTID);
++ if (!bundleSvc) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ nsCOMPtr<nsIStringBundle> bundle;
++ bundleSvc->CreateBundle("chrome://global/locale/commonDialogs.properties",
++ getter_AddRefs(bundle));
++ if (!bundle) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ nsAutoString nsmessage;
++
++ if (flags & G_ASK_PASSWORD_NEED_PASSWORD) {
++ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
++ if (!realm.IsEmpty()) {
++ const PRUnichar *strings[] = { realm.get(), dispHost.get() };
++ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterLoginForRealm").get(),
++ strings, 2, getter_Copies(nsmessage));
++ } else {
++ const PRUnichar *strings[] = { dispHost.get() };
++ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterUserPasswordFor").get(),
++ strings, 1, getter_Copies(nsmessage));
++ }
++ } else {
++ NS_ConvertUTF8toUTF16 userName(default_user);
++ const PRUnichar *strings[] = { userName.get(), dispHost.get() };
++ bundle->FormatStringFromName(NS_LITERAL_STRING("EnterPasswordFor").get(),
++ strings, 2, getter_Copies(nsmessage));
++ }
++ } else {
++ g_warning("Unknown mount operation request (flags: %x)", flags);
++ }
++
++ if (nsmessage.IsEmpty()) {
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ // Prompt the user...
++ nsresult rv;
++ PRBool retval = PR_FALSE;
++ PRUnichar *user = nsnull, *pass = nsnull;
++ if (default_user) {
++ // user will be freed by PromptUsernameAndPassword
++ user = ToNewUnicode(NS_ConvertUTF8toUTF16(default_user));
++ }
++ if (flags & G_ASK_PASSWORD_NEED_USERNAME) {
++ rv = prompt->PromptUsernameAndPassword(nsnull, nsmessage.get(),
++ key.get(),
++ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
++ &user, &pass, &retval);
++ } else {
++ rv = prompt->PromptPassword(nsnull, nsmessage.get(),
++ key.get(),
++ nsIAuthPrompt::SAVE_PASSWORD_PERMANENTLY,
++ &pass, &retval);
++ }
++ if (NS_FAILED(rv) || !retval) { // was || user == '\0' || pass == '\0'
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_ABORTED);
++ return;
++ }
++ /* GIO should accept UTF8 */
++ g_mount_operation_set_username(mount_op, NS_ConvertUTF16toUTF8(user).get());
++ g_mount_operation_set_password(mount_op, NS_ConvertUTF16toUTF8(pass).get());
++ nsMemory::Free(user);
++ nsMemory::Free(pass);
++ g_mount_operation_reply(mount_op, G_MOUNT_OPERATION_HANDLED);
++}
++
++//-----------------------------------------------------------------------------
++
++class nsGIOProtocolHandler : public nsIProtocolHandler
++ , public nsIObserver
++{
++ public:
++ NS_DECL_ISUPPORTS
++ NS_DECL_NSIPROTOCOLHANDLER
++ NS_DECL_NSIOBSERVER
++
++ nsresult Init();
++
++ private:
++ void InitSupportedProtocolsPref(nsIPrefBranch *prefs);
++ PRBool IsSupportedProtocol(const nsCString &spec);
++
++ nsCString mSupportedProtocols;
++};
++
++NS_IMPL_ISUPPORTS2(nsGIOProtocolHandler, nsIProtocolHandler, nsIObserver)
++
++nsresult
++nsGIOProtocolHandler::Init()
++{
++#ifdef PR_LOGGING
++ sGIOLog = PR_NewLogModule("gio");
++#endif
++
++ nsCOMPtr<nsIPrefBranch2> prefs = do_GetService(NS_PREFSERVICE_CONTRACTID);
++ if (prefs)
++ {
++ InitSupportedProtocolsPref(prefs);
++ prefs->AddObserver(MOZ_GIO_SUPPORTED_PROTOCOLS, this, PR_FALSE);
++ }
++
++ return NS_OK;
++}
++
++void
++nsGIOProtocolHandler::InitSupportedProtocolsPref(nsIPrefBranch *prefs)
++{
++ // Get user preferences to determine which protocol is supported.
++ // Gvfs/GIO has a set of supported protocols like obex, network, archive,
++ // computer, dav, cdda, gphoto2, trash, etc. Some of these seems to be
++ // irrelevant to process by browser. By default accept only smb and sftp
++ // protocols so far.
++ nsresult rv = prefs->GetCharPref(MOZ_GIO_SUPPORTED_PROTOCOLS,
++ getter_Copies(mSupportedProtocols));
++ if (NS_SUCCEEDED(rv)) {
++ mSupportedProtocols.StripWhitespace();
++ ToLowerCase(mSupportedProtocols);
++ }
++ else
++ mSupportedProtocols.Assign("smb:,sftp:"); // use defaults
++
++ LOG(("gio: supported protocols \"%s\"\n", mSupportedProtocols.get()));
++}
++
++PRBool
++nsGIOProtocolHandler::IsSupportedProtocol(const nsCString &aSpec)
++{
++ const char *specString = aSpec.get();
++ const char *colon = strchr(specString, ':');
++ if (!colon)
++ return PR_FALSE;
++
++ PRUint32 length = colon - specString + 1;
++
++ // <scheme> + ':'
++ nsCString scheme(specString, length);
++
++ char *found = PL_strcasestr(mSupportedProtocols.get(), scheme.get());
++ if (!found)
++ return PR_FALSE;
++
++ if (found[length] != ',' && found[length] != '\0')
++ return PR_FALSE;
++
++ return PR_TRUE;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::GetScheme(nsACString &aScheme)
++{
++ aScheme.Assign(MOZ_GIO_SCHEME);
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::GetDefaultPort(PRInt32 *aDefaultPort)
++{
++ *aDefaultPort = -1;
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::GetProtocolFlags(PRUint32 *aProtocolFlags)
++{
++ // Is URI_STD true of all GnomeVFS URI types?
++ *aProtocolFlags = URI_STD | URI_DANGEROUS_TO_LOAD;
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::NewURI(const nsACString &aSpec,
++ const char *aOriginCharset,
++ nsIURI *aBaseURI,
++ nsIURI **aResult)
++{
++ const nsCString flatSpec(aSpec);
++ LOG(("gio: NewURI [spec=%s]\n", flatSpec.get()));
++
++ if (!aBaseURI)
++ {
++ // XXX Is it good to support all GIO protocols?
++ if (!IsSupportedProtocol(flatSpec))
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++
++ PRInt32 colon_location = flatSpec.FindChar(':');
++ if (colon_location <= 0)
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++
++ // Verify that GIO supports this URI scheme.
++ PRBool uri_scheme_supported = PR_FALSE;
++
++ GVfs *gvfs = g_vfs_get_default();
++
++ if (!gvfs) {
++ g_warning("Cannot get GVfs object.");
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++ }
++
++ const gchar* const * uri_schemes = g_vfs_get_supported_uri_schemes(gvfs);
++
++ while (*uri_schemes != NULL) {
++ // While flatSpec ends with ':' the uri_scheme does not. Therefore do not
++ // compare last character.
++ if (StringHead(flatSpec, colon_location).Equals(*uri_schemes)) {
++ uri_scheme_supported = PR_TRUE;
++ break;
++ }
++ uri_schemes++;
++ }
++
++ if (!uri_scheme_supported) {
++ return NS_ERROR_UNKNOWN_PROTOCOL;
++ }
++ }
++
++ nsresult rv;
++ nsCOMPtr<nsIStandardURL> url =
++ do_CreateInstance(NS_STANDARDURL_CONTRACTID, &rv);
++ if (NS_FAILED(rv))
++ return rv;
++
++ rv = url->Init(nsIStandardURL::URLTYPE_STANDARD, -1, flatSpec,
++ aOriginCharset, aBaseURI);
++ if (NS_SUCCEEDED(rv))
++ rv = CallQueryInterface(url, aResult);
++ return rv;
++
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::NewChannel(nsIURI *aURI, nsIChannel **aResult)
++{
++ NS_ENSURE_ARG_POINTER(aURI);
++ nsresult rv;
++
++ nsCAutoString spec;
++ rv = aURI->GetSpec(spec);
++ if (NS_FAILED(rv))
++ return rv;
++
++ nsRefPtr<nsGIOInputStream> stream = new nsGIOInputStream(spec);
++ if (!stream)
++ {
++ rv = NS_ERROR_OUT_OF_MEMORY;
++ }
++ else
++ {
++ // start out assuming an unknown content-type. we'll set the content-type
++ // to something better once we open the URI.
++ rv = NS_NewInputStreamChannel(aResult,
++ aURI,
++ stream,
++ NS_LITERAL_CSTRING(UNKNOWN_CONTENT_TYPE));
++ if (NS_SUCCEEDED(rv))
++ stream->SetChannel(*aResult);
++ }
++ return rv;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::AllowPort(PRInt32 aPort,
++ const char *aScheme,
++ PRBool *aResult)
++{
++ // Don't override anything.
++ *aResult = PR_FALSE;
++ return NS_OK;
++}
++
++NS_IMETHODIMP
++nsGIOProtocolHandler::Observe(nsISupports *aSubject,
++ const char *aTopic,
++ const PRUnichar *aData)
++{
++ if (strcmp(aTopic, NS_PREFBRANCH_PREFCHANGE_TOPIC_ID) == 0) {
++ nsCOMPtr<nsIPrefBranch> prefs = do_QueryInterface(aSubject);
++ InitSupportedProtocolsPref(prefs);
++ }
++ return NS_OK;
++}
++
++//-----------------------------------------------------------------------------
++
++#define NS_GIOPROTOCOLHANDLER_CID \
++{ /* ee706783-3af8-4d19-9e84-e2ebfe213480 */ \
++ 0xee706783, \
++ 0x3af8, \
++ 0x4d19, \
++ {0x9e, 0x84, 0xe2, 0xeb, 0xfe, 0x21, 0x34, 0x80} \
++}
++
++NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGIOProtocolHandler, Init)
++NS_DEFINE_NAMED_CID(NS_GIOPROTOCOLHANDLER_CID);
++
++static const mozilla::Module::CIDEntry kVFSCIDs[] = {
++ { &kNS_GIOPROTOCOLHANDLER_CID, false, NULL, nsGIOProtocolHandlerConstructor },
++ { NULL }
++};
++
++static const mozilla::Module::ContractIDEntry kVFSContracts[] = {
++ { NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX MOZ_GIO_SCHEME, &kNS_GIOPROTOCOLHANDLER_CID },
++ { NULL }
++};
++
++static const mozilla::Module kVFSModule = {
++ mozilla::Module::kVersion,
++ kVFSCIDs,
++ kVFSContracts
++};
++
++NSMODULE_DEFN(nsGIOModule) = &kVFSModule;
+diff -r 49a1b2aa43c5 netwerk/base/src/nsIOService.cpp
+--- a/netwerk/base/src/nsIOService.cpp Tue Dec 21 12:42:59 2010 +0100
++++ b/netwerk/base/src/nsIOService.cpp Tue Jan 11 11:17:52 2011 +0100
+@@ -454,6 +454,27 @@
+ }
+
+ #ifdef MOZ_X11
++ // check to see whether GVFS can handle this URI scheme. if it can
++ // create a nsIURI for the "scheme:", then we assume it has support for
++ // the requested protocol. otherwise, we failover to using the default
++ // protocol handler.
++
++ rv = CallGetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX"moz-gio",
++ result);
++ if (NS_SUCCEEDED(rv)) {
++ nsCAutoString spec(scheme);
++ spec.Append(':');
++
++ nsIURI *uri;
++ rv = (*result)->NewURI(spec, nsnull, nsnull, &uri);
++ if (NS_SUCCEEDED(rv)) {
++ NS_RELEASE(uri);
++ return rv;
++ }
++
++ NS_RELEASE(*result);
++ }
++
+ // check to see whether GnomeVFS can handle this URI scheme. if it can
+ // create a nsIURI for the "scheme:", then we assume it has support for
+ // the requested protocol. otherwise, we failover to using the default
diff --git a/extra/xulrunner/xulrunner-omnijar.patch b/extra/xulrunner/xulrunner-omnijar.patch
new file mode 100644
index 000000000..05b665afd
--- /dev/null
+++ b/extra/xulrunner/xulrunner-omnijar.patch
@@ -0,0 +1,1737 @@
+# HG changeset patch
+# Parent a7dea879b4b445a23186f438900562155bb39e99
+Bug 620931 part 1 - Use chrome manifest to register resource://gre-resources/
+
+diff --git a/layout/style/jar.mn b/layout/style/jar.mn
+--- a/layout/style/jar.mn
++++ b/layout/style/jar.mn
+@@ -1,8 +1,10 @@
+ toolkit.jar:
+ * res/ua.css (ua.css)
+ res/html.css (html.css)
+ res/quirk.css (quirk.css)
+ res/viewsource.css (viewsource.css)
+ * res/forms.css (forms.css)
+ res/arrow.gif (arrow.gif)
+ res/arrowd.gif (arrowd.gif)
++
++% resource gre-resources %res/
+diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
+--- a/netwerk/protocol/res/nsResProtocolHandler.cpp
++++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
+@@ -75,17 +75,16 @@ static nsResProtocolHandler *gResHandler
+ //
+ // this enables PR_LOG_ALWAYS level information and places all output in
+ // the file log.txt
+ //
+ static PRLogModuleInfo *gResLog;
+ #endif
+
+ #define kGRE NS_LITERAL_CSTRING("gre")
+-#define kGRE_RESOURCES NS_LITERAL_CSTRING("gre-resources")
+
+ //----------------------------------------------------------------------------
+ // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
+ //----------------------------------------------------------------------------
+
+ nsresult
+ nsResURL::EnsureFile()
+ {
+@@ -197,28 +196,16 @@ nsResProtocolHandler::Init()
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
+ // make resource://gre/ point to the GRE directory
+ //
+ rv = AddSpecialDir(NS_GRE_DIR, kGRE);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+- // make resource://gre-resources/ point to gre toolkit[.jar]/res
+- nsCOMPtr<nsIURI> greURI;
+- nsCOMPtr<nsIURI> greResURI;
+- GetSubstitution(kGRE, getter_AddRefs(greURI));
+-#ifdef MOZ_CHROME_FILE_FORMAT_JAR
+- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "jar:chrome/toolkit.jar!/res/");
+-#else
+- NS_NAMED_LITERAL_CSTRING(strGRE_RES_URL, "chrome/toolkit/res/");
+-#endif
+- rv = mIOService->NewURI(strGRE_RES_URL, nsnull, greURI,
+- getter_AddRefs(greResURI));
+- SetSubstitution(kGRE_RESOURCES, greResURI);
+ //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
+ // but once I finish multiple chrome registration I'm not sure that it is needed
+
+ // XXX dveditz: resource://pchrome/ defeats profile directory salting
+ // if web content can load it. Tread carefully.
+
+ return rv;
+ }
+@@ -242,22 +229,16 @@ nsResProtocolHandler::Init(nsIFile *aOmn
+ // these entries should be kept in sync with the normal Init function
+
+ // resource:/// points to jar:omni.jar!/
+ SetSubstitution(EmptyCString(), uri);
+
+ // resource://gre/ points to jar:omni.jar!/
+ SetSubstitution(kGRE, uri);
+
+- urlStr += "chrome/toolkit/res/";
+- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- // resource://gre-resources/ points to jar:omni.jar!/chrome/toolkit/res/
+- SetSubstitution(kGRE_RESOURCES, uri);
+ return NS_OK;
+ }
+ #endif
+
+ #ifdef MOZ_IPC
+ static PLDHashOperator
+ EnumerateSubstitution(const nsACString& aKey,
+ nsIURI* aURI,
+# HG changeset patch
+# Parent 3038cccba1a071d6b418e15442d0f2d9f3dcb11d
+Bug 620931 part 2 - When building --with-libxul-sdk, use the right preferences directory
+
+diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
+--- a/browser/locales/Makefile.in
++++ b/browser/locales/Makefile.in
+@@ -183,17 +183,17 @@ install:: $(addsuffix .xml,$(SEARCH_PLUG
+ $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/searchplugins
+
+
+ libs-%:
+ $(NSINSTALL) -D $(DIST)/install
+ @$(MAKE) -C ../../toolkit/locales libs-$* BOTH_MANIFESTS=1
+ @$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+ @$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+- @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=defaults/pref BOTH_MANIFESTS=1
++ @$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR) BOTH_MANIFESTS=1
+ @$(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY)/locales AB_CD=$* XPI_NAME=locale-$* BOTH_MANIFESTS=1
+
+
+ repackage-win32-installer: WIN32_INSTALLER_OUT="$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe"
+ repackage-win32-installer: $(WIN32_INSTALLER_IN) $(SUBMAKEFILES)
+ @echo "Repackaging $(WIN32_INSTALLER_IN) into $(WIN32_INSTALLER_OUT)."
+ $(MAKE) -C $(DEPTH)/$(MOZ_BRANDING_DIRECTORY) export
+ $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/setup.exe l10ngen/7zSD.sfx
+diff --git a/toolkit/mozapps/installer/packager.mk b/toolkit/mozapps/installer/packager.mk
+--- a/toolkit/mozapps/installer/packager.mk
++++ b/toolkit/mozapps/installer/packager.mk
+@@ -307,17 +307,17 @@ OMNIJAR_FILES = \
+ res \
+ defaults \
+ greprefs.js \
+ jsloader \
+ $(NULL)
+
+ NON_OMNIJAR_FILES += \
+ chrome/icons/\* \
+- defaults/pref/channel-prefs.js \
++ $(PREF_DIR)/channel-prefs.js \
+ res/cursors/\* \
+ res/MainMenu.nib/\* \
+ $(NULL)
+
+ PACK_OMNIJAR = \
+ rm -f omni.jar components/binary.manifest && \
+ grep -h '^binary-component' components/*.manifest > binary.manifest ; \
+ sed -e 's/^binary-component/\#binary-component/' components/components.manifest > components.manifest && \
+# HG changeset patch
+# Parent cd8df8030f7ad7530692bd7c4391a8009df56a02
+Bug 620931 part 3 - Allow GRE and XUL application to use omni.jar independently
+
+We now store two independent locations for an omni.jar, allowing GRE/XRE and
+XUL application to each have their own omni.jar. And since xulrunner setups
+are very independent from the XUL applications, we implement support for both
+omni.jar and non omni.jar cases in the same runtime, with the side effect of
+allowing to switch from one to the other manually without rebuilding the
+binaries.
+
+We let the mozilla::Omnijar API handle both cases, so that callers don't need
+too much work to support them.
+
+We also make the preferences service load the same set of preferences in all
+the various cases (unified vs. separate, omni.jar vs. no omni.jar).
+
+The child process launcher for IPC is modified to pass the base directories
+needed for the mozilla::Omnijar API initialization in the child process.
+
+Finally, the startupcache file name canonicalization is modified to separate
+APP and GRE resources.
+
+diff --git a/ipc/glue/GeckoChildProcessHost.cpp b/ipc/glue/GeckoChildProcessHost.cpp
+--- a/ipc/glue/GeckoChildProcessHost.cpp
++++ b/ipc/glue/GeckoChildProcessHost.cpp
+@@ -440,26 +440,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
+ // other end of the socketpair() from us
+
+ std::vector<std::string> childArgv;
+
+ childArgv.push_back(exePath.value());
+
+ childArgv.insert(childArgv.end(), aExtraOpts.begin(), aExtraOpts.end());
+
+-#ifdef MOZ_OMNIJAR
+ // Make sure the child process can find the omnijar
+ // See XRE_InitCommandLine in nsAppRunner.cpp
+- nsCAutoString omnijarPath;
+- if (mozilla::OmnijarPath()) {
+- mozilla::OmnijarPath()->GetNativePath(omnijarPath);
+- childArgv.push_back("-omnijar");
+- childArgv.push_back(omnijarPath.get());
++ nsCAutoString path;
++ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
++ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
++ childArgv.push_back("-grebase");
++ childArgv.push_back(path.get());
+ }
+-#endif
++ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
++ if (file && NS_SUCCEEDED(file->GetNativePath(path))) {
++ childArgv.push_back("-appbase");
++ childArgv.push_back(path.get());
++ }
+
+ childArgv.push_back(pidstring);
+
+ #if defined(MOZ_CRASHREPORTER)
+ # if defined(OS_LINUX)
+ int childCrashFd, childCrashRemapFd;
+ if (!CrashReporter::CreateNotificationPipeForChild(
+ &childCrashFd, &childCrashRemapFd))
+@@ -552,26 +555,29 @@ GeckoChildProcessHost::PerformAsyncLaunc
+ for (std::vector<std::string>::iterator it = aExtraOpts.begin();
+ it != aExtraOpts.end();
+ ++it) {
+ cmdLine.AppendLooseValue(UTF8ToWide(*it));
+ }
+
+ cmdLine.AppendLooseValue(std::wstring(mGroupId.get()));
+
+-#ifdef MOZ_OMNIJAR
+ // Make sure the child process can find the omnijar
+ // See XRE_InitCommandLine in nsAppRunner.cpp
+- nsAutoString omnijarPath;
+- if (mozilla::OmnijarPath()) {
+- mozilla::OmnijarPath()->GetPath(omnijarPath);
+- cmdLine.AppendLooseValue(UTF8ToWide("-omnijar"));
+- cmdLine.AppendLooseValue(omnijarPath.get());
++ nsAutoString path;
++ nsCOMPtr<nsIFile> file = mozilla::Omnijar::GetBase(mozilla::Omnijar::GRE);
++ if (file && NS_SUCCEEDED(file->GetPath(path))) {
++ cmdLine.AppendLooseValue(UTF8ToWide("-grebase"));
++ cmdLine.AppendLooseValue(path.get());
+ }
+-#endif
++ file = mozilla::Omnijar::GetBase(mozilla::Omnijar::APP);
++ if (file && NS_SUCCEEDED(file->GetPath(path))) {
++ cmdLine.AppendLooseValue(UTF8ToWide("-appbase"));
++ cmdLine.AppendLooseValue(path.get());
++ }
+
+ cmdLine.AppendLooseValue(UTF8ToWide(pidstring));
+
+ #if defined(MOZ_CRASHREPORTER)
+ cmdLine.AppendLooseValue(
+ UTF8ToWide(CrashReporter::GetChildNotificationPipe()));
+ #endif
+
+diff --git a/js/src/xpconnect/loader/mozJSComponentLoader.cpp b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
+--- a/js/src/xpconnect/loader/mozJSComponentLoader.cpp
++++ b/js/src/xpconnect/loader/mozJSComponentLoader.cpp
+@@ -81,16 +81,17 @@
+ #include "nsIConsoleService.h"
+ #include "nsIStorageStream.h"
+ #include "nsIStringStream.h"
+ #include "prmem.h"
+ #if defined(XP_WIN)
+ #include "nsILocalFileWin.h"
+ #endif
+ #include "xpcprivate.h"
++#include "nsIResProtocolHandler.h"
+
+ #ifdef MOZ_ENABLE_LIBXUL
+ #include "mozilla/scache/StartupCache.h"
+ #include "mozilla/scache/StartupCacheUtils.h"
+ #endif
+ #include "mozilla/Omnijar.h"
+
+ #include "jsdbgapi.h"
+@@ -621,34 +622,21 @@ mozJSComponentLoader::LoadModule(nsILoca
+
+ const mozilla::Module*
+ mozJSComponentLoader::LoadModuleFromJAR(nsILocalFile *aJarFile,
+ const nsACString &aComponentPath)
+ {
+ #if !defined(XPCONNECT_STANDALONE)
+ nsresult rv;
+
+- nsCAutoString fullSpec;
+-
+-#ifdef MOZ_OMNIJAR
+- PRBool equal;
+- rv = aJarFile->Equals(mozilla::OmnijarPath(), &equal);
+- if (NS_SUCCEEDED(rv) && equal) {
+- fullSpec = "resource://gre/";
+- } else {
+-#endif
+- nsCAutoString fileSpec;
+- NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
+- fullSpec = "jar:";
+- fullSpec += fileSpec;
+- fullSpec += "!/";
+-#ifdef MOZ_OMNIJAR
+- }
+-#endif
+-
++ nsCAutoString fullSpec, fileSpec;
++ NS_GetURLSpecFromActualFile(aJarFile, fileSpec);
++ fullSpec = "jar:";
++ fullSpec += fileSpec;
++ fullSpec += "!/";
+ fullSpec += aComponentPath;
+
+ nsCOMPtr<nsIURI> uri;
+ rv = NS_NewURI(getter_AddRefs(uri), fullSpec);
+ if (NS_FAILED(rv))
+ return NULL;
+
+ nsAutoString hashstring;
+@@ -833,57 +821,138 @@ class JSScriptHolder
+ JSScriptHolder(JSContext *cx, JSScript *script)
+ : mCx(cx), mScript(script) {}
+ ~JSScriptHolder() { ::JS_DestroyScript(mCx, mScript); }
+ private:
+ JSContext *mCx;
+ JSScript *mScript;
+ };
+
++static const char baseName[2][5] = { "gre/", "app/" };
++
++static inline PRBool
++canonicalizeBase(nsCAutoString &spec, nsACString &out, mozilla::Omnijar::Type aType)
++{
++ nsCAutoString base;
++ nsresult rv = mozilla::Omnijar::GetURIString(aType, base);
++
++ if (NS_FAILED(rv) || !base.Length())
++ return PR_FALSE;
++
++ if (base.Compare(spec.get(), PR_FALSE, base.Length()))
++ return PR_FALSE;
++
++ out.Append("/resource/");
++ out.Append(baseName[aType]);
++ out.Append(Substring(spec, base.Length()));
++ return PR_TRUE;
++}
+ /**
+ * PathifyURI transforms mozilla .js uris into useful zip paths
+ * to make it makes it easier to manipulate startup cache entries
+ * using standard zip tools.
+ * Transformations applied:
+- * * jsloader/<scheme> prefix is used to group mozJSComponentLoader cache entries in
++ * * jsloader/ prefix is used to group mozJSComponentLoader cache entries in
+ * a top-level zip directory.
+- * * In MOZ_OMNIJAR case resource:/// and resource://gre/ URIs refer to the same path
+- * so treat both of them as resource://gre/
++ * * resource:// URIs are resolved to their corresponding file/jar URI to
++ * canonicalize resources URIs other than gre and app.
++ * * Paths under GRE or APP directory have their base path replaced with
++ * resource/gre or resource/app to avoid depending on install location.
++ * * jar:file:///path/to/file.jar!/sub/path urls are replaced with
++ * /path/to/file.jar/sub/path
+ * * .bin suffix is added to the end of the path to indicate that jsloader/ entries
+ * are binary representations of JS source.
+ * For example:
+- * resource://gre/modules/XPCOMUtils.jsm becomes
+- * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
++ * resource://gre/modules/XPCOMUtils.jsm or
++ * file://$GRE_DIR/modules/XPCOMUtils.jsm or
++ * jar:file://$GRE_DIR/omni.jar!/modules/XPCOMUtils.jsm become
++ * jsloader/resource/gre/modules/XPCOMUtils.jsm.bin
++ * file://$PROFILE_DIR/extensions/{uuid}/components/component.js becomes
++ * jsloader/$PROFILE_DIR/extensions/%7Buuid%7D/components/component.js.bin
++ * jar:file://$PROFILE_DIR/extensions/some.xpi!/components/component.js becomes
++ * jsloader/$PROFILE_DIR/extensions/some.xpi/components/component.js.bin
+ */
+ static nsresult
+ PathifyURI(nsIURI *in, nsACString &out)
+ {
+- out = "jsloader/";
+- nsCAutoString scheme;
+- nsresult rv = in->GetScheme(scheme);
+- NS_ENSURE_SUCCESS(rv, rv);
+- out.Append(scheme);
+- nsCAutoString host;
+- // OK for GetHost to fail since it's not implemented sometimes
+- in->GetHost(host);
+-#ifdef MOZ_OMNIJAR
+- if (scheme.Equals("resource") && host.Length() == 0){
+- host = "gre";
+- }
+-#endif
+- if (host.Length()) {
+- out.Append("/");
+- out.Append(host);
+- }
+- nsCAutoString path;
+- rv = in->GetPath(path);
+- NS_ENSURE_SUCCESS(rv, rv);
+- out.Append(path);
+- out.Append(".bin");
+- return NS_OK;
++ PRBool equals;
++ nsresult rv;
++ nsCOMPtr<nsIURI> uri = in;
++ nsCAutoString spec;
++
++ out = "jsloader";
++
++ // Resolve resource:// URIs. At the end of this if/else block, we
++ // have both spec and uri variables identifying the same URI.
++ if (NS_SUCCEEDED(in->SchemeIs("resource", &equals)) && equals) {
++ nsCOMPtr<nsIIOService> ioService = do_GetIOService(&rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIProtocolHandler> ph;
++ rv = ioService->GetProtocolHandler("resource", getter_AddRefs(ph));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIResProtocolHandler> irph(do_QueryInterface(ph, &rv));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = irph->ResolveURI(in, spec);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = ioService->NewURI(spec, nsnull, nsnull, getter_AddRefs(uri));
++ NS_ENSURE_SUCCESS(rv, rv);
++ } else {
++ rv = in->GetSpec(spec);
++ NS_ENSURE_SUCCESS(rv, rv);
++ }
++
++ if (!canonicalizeBase(spec, out, mozilla::Omnijar::GRE) &&
++ !canonicalizeBase(spec, out, mozilla::Omnijar::APP)) {
++ if (NS_SUCCEEDED(uri->SchemeIs("file", &equals)) && equals) {
++ nsCOMPtr<nsIFileURL> baseFileURL;
++ baseFileURL = do_QueryInterface(uri, &rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCAutoString path;
++ rv = baseFileURL->GetPath(path);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ out.Append(path);
++ } else if (NS_SUCCEEDED(uri->SchemeIs("jar", &equals)) && equals) {
++ nsCOMPtr<nsIJARURI> jarURI = do_QueryInterface(uri, &rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIURI> jarFileURI;
++ rv = jarURI->GetJARFile(getter_AddRefs(jarFileURI));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCOMPtr<nsIFileURL> jarFileURL;
++ jarFileURL = do_QueryInterface(jarFileURI, &rv);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ nsCAutoString path;
++ rv = jarFileURL->GetPath(path);
++ NS_ENSURE_SUCCESS(rv, rv);
++ out.Append(path);
++
++ rv = jarURI->GetJAREntry(path);
++ NS_ENSURE_SUCCESS(rv, rv);
++ out.Append("/");
++ out.Append(path);
++ } else { // Very unlikely
++ nsCAutoString spec;
++ rv = uri->GetSpec(spec);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ out.Append("/");
++ out.Append(spec);
++ }
++ }
++
++ out.Append(".bin");
++ return NS_OK;
+ }
+
+ /* static */
+ #ifdef MOZ_ENABLE_LIBXUL
+ nsresult
+ mozJSComponentLoader::ReadScript(StartupCache* cache, nsIURI *uri,
+ JSContext *cx, JSScript **script)
+ {
+diff --git a/modules/libjar/nsJAR.cpp b/modules/libjar/nsJAR.cpp
+--- a/modules/libjar/nsJAR.cpp
++++ b/modules/libjar/nsJAR.cpp
+@@ -170,26 +170,23 @@ nsJAR::Open(nsIFile* zipFile)
+ NS_ENSURE_ARG_POINTER(zipFile);
+ if (mLock) return NS_ERROR_FAILURE; // Already open!
+
+ mZipFile = zipFile;
+
+ mLock = PR_NewLock();
+ NS_ENSURE_TRUE(mLock, NS_ERROR_OUT_OF_MEMORY);
+
+-#ifdef MOZ_OMNIJAR
+ // The omnijar is special, it is opened early on and closed late
+ // this avoids reopening it
+- PRBool equals;
+- nsresult rv = zipFile->Equals(mozilla::OmnijarPath(), &equals);
+- if (NS_SUCCEEDED(rv) && equals) {
+- mZip = mozilla::OmnijarReader();
++ nsZipArchive *zip = mozilla::Omnijar::GetReader(zipFile);
++ if (zip) {
++ mZip = zip;
+ return NS_OK;
+ }
+-#endif
+ return mZip->OpenArchive(zipFile);
+ }
+
+ NS_IMETHODIMP
+ nsJAR::OpenInner(nsIZipReader *aZipReader, const char *aZipEntry)
+ {
+ NS_ENSURE_ARG_POINTER(aZipReader);
+ NS_ENSURE_ARG_POINTER(aZipEntry);
+@@ -234,23 +231,22 @@ nsJAR::Close()
+ }
+
+ mParsedManifest = PR_FALSE;
+ mManifestData.Reset();
+ mGlobalStatus = JAR_MANIFEST_NOT_PARSED;
+ mTotalItemsInManifest = 0;
+ mOuterZipEntry.Truncate(0);
+
+-#ifdef MOZ_OMNIJAR
+- if (mZip == mozilla::OmnijarReader()) {
++ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
++ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP))) {
+ mZip.forget();
+ mZip = new nsZipArchive();
+ return NS_OK;
+ }
+-#endif
+ return mZip->CloseArchive();
+ }
+
+ NS_IMETHODIMP
+ nsJAR::Test(const char *aEntryName)
+ {
+ return mZip->Test(aEntryName);
+ }
+@@ -391,22 +387,21 @@ nsJAR::GetInputStreamWithSpec(const nsAC
+ NS_IMETHODIMP
+ nsJAR::GetCertificatePrincipal(const char* aFilename, nsIPrincipal** aPrincipal)
+ {
+ //-- Parameter check
+ if (!aPrincipal)
+ return NS_ERROR_NULL_POINTER;
+ *aPrincipal = nsnull;
+
+-#ifdef MOZ_OMNIJAR
+ // Don't check signatures in the omnijar - this is only
+ // interesting for extensions/XPIs.
+- if (mZip == mozilla::OmnijarReader())
++ if ((mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) ||
++ (mZip == mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)))
+ return NS_OK;
+-#endif
+
+ //-- Parse the manifest
+ nsresult rv = ParseManifest();
+ if (NS_FAILED(rv)) return rv;
+ if (mGlobalStatus == JAR_NO_MANIFEST)
+ return NS_OK;
+
+ PRInt16 requestedStatus;
+diff --git a/modules/libpref/src/nsPrefService.cpp b/modules/libpref/src/nsPrefService.cpp
+--- a/modules/libpref/src/nsPrefService.cpp
++++ b/modules/libpref/src/nsPrefService.cpp
+@@ -67,20 +67,18 @@
+
+ #include "prefapi.h"
+ #include "prefread.h"
+ #include "prefapi_private_data.h"
+ #include "PrefTuple.h"
+
+ #include "nsITimelineService.h"
+
+-#ifdef MOZ_OMNIJAR
+ #include "mozilla/Omnijar.h"
+ #include "nsZipArchive.h"
+-#endif
+
+ // Definitions
+ #define INITIAL_PREF_FILES 10
+ static NS_DEFINE_CID(kZipReaderCID, NS_ZIPREADER_CID);
+
+ // Prototypes
+ static nsresult openPrefFile(nsIFile* aFile);
+ static nsresult pref_InitInitialObjects(void);
+@@ -793,124 +791,144 @@ static nsresult pref_LoadPrefsInDirList(
+ pref_LoadPrefsInDir(dir, nsnull, 0);
+ }
+ }
+ }
+ }
+ return NS_OK;
+ }
+
+-//----------------------------------------------------------------------------------------
+-// Initialize default preference JavaScript buffers from
+-// appropriate TEXT resources
+-//----------------------------------------------------------------------------------------
+-static nsresult pref_InitDefaults()
+-{
+- nsCOMPtr<nsIFile> greprefsFile;
+- nsresult rv;
+-
+- rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- rv = openPrefFile(greprefsFile);
+- if (NS_FAILED(rv)) {
+- NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
+- }
+-
+- return NS_OK;
+-}
+-
+-#ifdef MOZ_OMNIJAR
+ static nsresult pref_ReadPrefFromJar(nsZipArchive* jarReader, const char *name)
+ {
+ nsZipItemPtr<char> manifest(jarReader, name, true);
+ NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
+
+ PrefParseState ps;
+ PREF_InitParseState(&ps, PREF_ReaderCallback, NULL);
+ nsresult rv = PREF_ParseBuf(&ps, manifest, manifest.Length());
+ PREF_FinalizeParseState(&ps);
+
+ return rv;
+ }
+
+-static nsresult pref_InitAppDefaultsFromOmnijar()
+-{
+- nsresult rv;
+-
+- nsZipArchive* jarReader = mozilla::OmnijarReader();
+- if (!jarReader)
+- return pref_InitDefaults();
+-
+- rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- nsZipFind *findPtr;
+- rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- nsAutoPtr<nsZipFind> find(findPtr);
+-
+- nsTArray<nsCString> prefEntries;
+- const char *entryName;
+- PRUint16 entryNameLen;
+- while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
+- prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
+- }
+-
+- prefEntries.Sort();
+- for (PRUint32 i = prefEntries.Length(); i--; ) {
+- rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
+- if (NS_FAILED(rv))
+- NS_WARNING("Error parsing preferences.");
+- }
+-
+- return NS_OK;
+-}
+-#endif
+-
++//----------------------------------------------------------------------------------------
++// Initialize default preference JavaScript buffers from
++// appropriate TEXT resources
++//----------------------------------------------------------------------------------------
+ static nsresult pref_InitInitialObjects()
+ {
+ nsresult rv;
+
+- // first we parse the GRE default prefs. This also works if we're not using a GRE,
+-#ifdef MOZ_OMNIJAR
+- rv = pref_InitAppDefaultsFromOmnijar();
+-#else
+- rv = pref_InitDefaults();
+-#endif
+- NS_ENSURE_SUCCESS(rv, rv);
++ // In omni.jar case, we load the following prefs:
++ // - jar:$gre/omni.jar!/greprefs.js
++ // - jar:$gre/omni.jar!/defaults/pref/*.js
++ // In non omni.jar case, we load:
++ // - $gre/greprefs.js
++ //
++ // When $app == $gre, we additionally load, in all cases:
++ // - $gre/defaults/pref/*.js
++ // This is kept for bug 591866 (channel-prefs.js should not be in omni.jar).
++ // We load all files instead of channel-prefs.js only to have the same
++ // behaviour as $app != $gre.
++ //
++ // When $app != $gre, we additionally load, in omni.jar case:
++ // - jar:$app/omni.jar!/defaults/preferences/*.js
++ // - $app/defaults/preferences/*.js
++ // and in non omni.jar case:
++ // - $app/defaults/preferences/*.js
+
+- nsCOMPtr<nsIFile> defaultPrefDir;
+- // now parse the "application" default preferences
+- rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
+- NS_ENSURE_SUCCESS(rv, rv);
++ nsZipFind *findPtr;
++ nsAutoPtr<nsZipFind> find;
++ nsTArray<nsCString> prefEntries;
++ const char *entryName;
++ PRUint16 entryNameLen;
+
+- /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
+- static const char* specialFiles[] = {
++ nsZipArchive* jarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE);
++ if (jarReader) {
++ // Load jar:$gre/omni.jar!/greprefs.js
++ rv = pref_ReadPrefFromJar(jarReader, "greprefs.js");
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ // Load jar:$gre/omni.jar!/defaults/pref/*.js
++ rv = jarReader->FindInit("defaults/pref/*.js$", &findPtr);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ find = findPtr;
++ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
++ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
++ }
++
++ prefEntries.Sort();
++ for (PRUint32 i = prefEntries.Length(); i--; ) {
++ rv = pref_ReadPrefFromJar(jarReader, prefEntries[i].get());
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing preferences.");
++ }
++ } else {
++ // Load $gre/greprefs.js
++ nsCOMPtr<nsIFile> greprefsFile;
++ rv = NS_GetSpecialDirectory(NS_GRE_DIR, getter_AddRefs(greprefsFile));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = greprefsFile->AppendNative(NS_LITERAL_CSTRING("greprefs.js"));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = openPrefFile(greprefsFile);
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing GRE default preferences. Is this an old-style embedding app?");
++ }
++
++ if (!mozilla::Omnijar::HasOmnijar(mozilla::Omnijar::APP)) {
++ // Load $gre/defaults/pref/*.js
++ nsCOMPtr<nsIFile> defaultPrefDir;
++
++ rv = NS_GetSpecialDirectory(NS_APP_PREF_DEFAULTS_50_DIR, getter_AddRefs(defaultPrefDir));
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ /* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
++ static const char* specialFiles[] = {
+ #if defined(XP_MAC) || defined(XP_MACOSX)
+ "macprefs.js"
+ #elif defined(XP_WIN)
+ "winpref.js"
+ #elif defined(XP_UNIX)
+ "unix.js"
+-#if defined(_AIX)
++#if defined(VMS)
++ , "openvms.js"
++#elif defined(_AIX)
+ , "aix.js"
+ #endif
+ #elif defined(XP_OS2)
+ "os2pref.js"
++#elif defined(XP_BEOS)
++ "beos.js"
+ #endif
+- };
++ };
+
+- rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
+- if (NS_FAILED(rv)) {
+- NS_WARNING("Error parsing application default preferences.");
++ rv = pref_LoadPrefsInDir(defaultPrefDir, specialFiles, NS_ARRAY_LENGTH(specialFiles));
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing application default preferences.");
++ }
++
++ // Load jar:$app/omni.jar!/defaults/preferences/*.js
++ nsZipArchive *appJarReader = mozilla::Omnijar::GetReader(mozilla::Omnijar::APP);
++ if (appJarReader) {
++ rv = appJarReader->FindInit("defaults/preferences/*.js$", &findPtr);
++ NS_ENSURE_SUCCESS(rv, rv);
++ find = findPtr;
++ prefEntries.Clear();
++ while (NS_SUCCEEDED(find->FindNext(&entryName, &entryNameLen))) {
++ prefEntries.AppendElement(Substring(entryName, entryName + entryNameLen));
++ }
++ prefEntries.Sort();
++ for (PRUint32 i = prefEntries.Length(); i--; ) {
++ rv = pref_ReadPrefFromJar(appJarReader, prefEntries[i].get());
++ if (NS_FAILED(rv))
++ NS_WARNING("Error parsing preferences.");
++ }
+ }
+
+ rv = pref_LoadPrefsInDirList(NS_APP_PREFS_DEFAULTS_DIR_LIST);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ NS_CreateServicesFromCategory(NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID,
+ nsnull, NS_PREFSERVICE_APPDEFAULTS_TOPIC_ID);
+
+diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
+--- a/netwerk/protocol/res/nsResProtocolHandler.cpp
++++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
+@@ -152,97 +152,62 @@ nsResProtocolHandler::nsResProtocolHandl
+ }
+
+ nsResProtocolHandler::~nsResProtocolHandler()
+ {
+ gResHandler = nsnull;
+ }
+
+ nsresult
+-nsResProtocolHandler::AddSpecialDir(const char* aSpecialDir, const nsACString& aSubstitution)
+-{
+- nsCOMPtr<nsIFile> file;
+- nsresult rv = NS_GetSpecialDirectory(aSpecialDir, getter_AddRefs(file));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- nsCOMPtr<nsIURI> uri;
+- rv = mIOService->NewFileURI(file, getter_AddRefs(uri));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- return SetSubstitution(aSubstitution, uri);
+-}
+-
+-nsresult
+ nsResProtocolHandler::Init()
+ {
+ if (!mSubstitutions.Init(32))
+ return NS_ERROR_UNEXPECTED;
+
+ nsresult rv;
+
+ mIOService = do_GetIOService(&rv);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+-#ifdef MOZ_OMNIJAR
+- nsCOMPtr<nsIFile> omniJar(mozilla::OmnijarPath());
+- if (omniJar)
+- return Init(omniJar);
+-#endif
+-
+- // these entries should be kept in sync with the omnijar Init function
++ nsCAutoString appURI, greURI;
++ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::APP, appURI);
++ NS_ENSURE_SUCCESS(rv, rv);
++ rv = mozilla::Omnijar::GetURIString(mozilla::Omnijar::GRE, greURI);
++ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
+- // make resource:/// point to the application directory
++ // make resource:/// point to the application directory or omnijar
+ //
+- rv = AddSpecialDir(NS_OS_CURRENT_PROCESS_DIR, EmptyCString());
++ nsCOMPtr<nsIURI> uri;
++ rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ rv = SetSubstitution(EmptyCString(), uri);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
+ // make resource://gre/ point to the GRE directory
+ //
+- rv = AddSpecialDir(NS_GRE_DIR, kGRE);
++ if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
++ rv = NS_NewURI(getter_AddRefs(uri), greURI);
++ NS_ENSURE_SUCCESS(rv, rv);
++ }
++
++ rv = SetSubstitution(kGRE, uri);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //XXXbsmedberg Neil wants a resource://pchrome/ for the profile chrome dir...
+ // but once I finish multiple chrome registration I'm not sure that it is needed
+
+ // XXX dveditz: resource://pchrome/ defeats profile directory salting
+ // if web content can load it. Tread carefully.
+
+ return rv;
+ }
+
+-#ifdef MOZ_OMNIJAR
+-nsresult
+-nsResProtocolHandler::Init(nsIFile *aOmniJar)
+-{
+- nsresult rv;
+- nsCOMPtr<nsIURI> uri;
+- nsCAutoString omniJarSpec;
+- NS_GetURLSpecFromActualFile(aOmniJar, omniJarSpec, mIOService);
+-
+- nsCAutoString urlStr("jar:");
+- urlStr += omniJarSpec;
+- urlStr += "!/";
+-
+- rv = mIOService->NewURI(urlStr, nsnull, nsnull, getter_AddRefs(uri));
+- NS_ENSURE_SUCCESS(rv, rv);
+-
+- // these entries should be kept in sync with the normal Init function
+-
+- // resource:/// points to jar:omni.jar!/
+- SetSubstitution(EmptyCString(), uri);
+-
+- // resource://gre/ points to jar:omni.jar!/
+- SetSubstitution(kGRE, uri);
+-
+- return NS_OK;
+-}
+-#endif
+-
+ #ifdef MOZ_IPC
+ static PLDHashOperator
+ EnumerateSubstitution(const nsACString& aKey,
+ nsIURI* aURI,
+ void* aArg)
+ {
+ nsTArray<ResourceMapping>* resources =
+ static_cast<nsTArray<ResourceMapping>*>(aArg);
+diff --git a/startupcache/StartupCache.cpp b/startupcache/StartupCache.cpp
+--- a/startupcache/StartupCache.cpp
++++ b/startupcache/StartupCache.cpp
+@@ -237,27 +237,36 @@ StartupCache::GetBuffer(const char* id,
+ nsZipItemPtr<char> zipItem(mArchive, id, true);
+ if (zipItem) {
+ *outbuf = zipItem.Forget();
+ *length = zipItem.Length();
+ return NS_OK;
+ }
+ }
+
+-#ifdef MOZ_OMNIJAR
+- if (mozilla::OmnijarReader()) {
++ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::APP)) {
+ // no need to checksum omnijarred entries
+- nsZipItemPtr<char> zipItem(mozilla::OmnijarReader(), id);
++ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::APP), id);
+ if (zipItem) {
+ *outbuf = zipItem.Forget();
+ *length = zipItem.Length();
+ return NS_OK;
+ }
+ }
+-#endif
++
++ if (mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE)) {
++ // no need to checksum omnijarred entries
++ nsZipItemPtr<char> zipItem(mozilla::Omnijar::GetReader(mozilla::Omnijar::GRE), id);
++ if (zipItem) {
++ *outbuf = zipItem.Forget();
++ *length = zipItem.Length();
++ return NS_OK;
++ }
++ }
++
+ return NS_ERROR_NOT_AVAILABLE;
+ }
+
+ // Makes a copy of the buffer, client retains ownership of inbuf.
+ nsresult
+ StartupCache::PutBuffer(const char* id, const char* inbuf, PRUint32 len)
+ {
+ WaitOnWriteThread();
+diff --git a/toolkit/xre/nsAppRunner.cpp b/toolkit/xre/nsAppRunner.cpp
+--- a/toolkit/xre/nsAppRunner.cpp
++++ b/toolkit/xre/nsAppRunner.cpp
+@@ -3897,35 +3897,45 @@ XRE_InitCommandLine(int aArgc, char* aAr
+ CommandLine::Init(aArgc, canonArgs);
+
+ for (int i = 0; i < aArgc; ++i)
+ free(canonArgs[i]);
+ delete[] canonArgs;
+ #endif
+ #endif
+
+-#ifdef MOZ_OMNIJAR
+- const char *omnijarPath = nsnull;
+- ArgResult ar = CheckArg("omnijar", PR_FALSE, &omnijarPath);
++ const char *path = nsnull;
++ ArgResult ar = CheckArg("grebase", PR_FALSE, &path);
+ if (ar == ARG_BAD) {
+- PR_fprintf(PR_STDERR, "Error: argument -omnijar requires an omnijar path\n");
++ PR_fprintf(PR_STDERR, "Error: argument -grebase requires a path argument\n");
+ return NS_ERROR_FAILURE;
+ }
+
+- if (!omnijarPath)
++ if (!path)
+ return rv;
+
+- nsCOMPtr<nsILocalFile> omnijar;
+- rv = NS_NewNativeLocalFile(nsDependentCString(omnijarPath), PR_TRUE,
+- getter_AddRefs(omnijar));
+- if (NS_SUCCEEDED(rv))
+- mozilla::SetOmnijar(omnijar);
+-#endif
+-
+- return rv;
++ nsCOMPtr<nsILocalFile> greBase;
++ rv = XRE_GetFileFromPath(path, getter_AddRefs(greBase));
++ if (NS_FAILED(rv))
++ return rv;
++
++ ar = CheckArg("appbase", PR_FALSE, &path);
++ if (ar == ARG_BAD) {
++ PR_fprintf(PR_STDERR, "Error: argument -appbase requires a path argument\n");
++ return NS_ERROR_FAILURE;
++ }
++
++ nsCOMPtr<nsILocalFile> appBase;
++ if (path) {
++ rv = XRE_GetFileFromPath(path, getter_AddRefs(appBase));
++ if (NS_FAILED(rv))
++ return rv;
++ }
++
++ return mozilla::Omnijar::SetBase(greBase, appBase);
+ }
+
+ nsresult
+ XRE_DeinitCommandLine()
+ {
+ nsresult rv = NS_OK;
+
+ #if defined(MOZ_IPC)
+diff --git a/toolkit/xre/nsEmbedFunctions.cpp b/toolkit/xre/nsEmbedFunctions.cpp
+--- a/toolkit/xre/nsEmbedFunctions.cpp
++++ b/toolkit/xre/nsEmbedFunctions.cpp
+@@ -512,19 +512,17 @@ XRE_InitChildProcess(int aArgc,
+ }
+
+ // Run the UI event loop on the main thread.
+ uiMessageLoop.MessageLoop::Run();
+
+ // Allow ProcessChild to clean up after itself before going out of
+ // scope and being deleted
+ process->CleanUp();
+-#ifdef MOZ_OMNIJAR
+- mozilla::SetOmnijar(nsnull);
+-#endif
++ mozilla::Omnijar::SetBase(nsnull, nsnull);
+ }
+ }
+
+ NS_LogTerm();
+ return XRE_DeinitCommandLine();
+ }
+
+ MessageLoop*
+diff --git a/xpcom/build/Makefile.in b/xpcom/build/Makefile.in
+--- a/xpcom/build/Makefile.in
++++ b/xpcom/build/Makefile.in
+@@ -64,28 +64,25 @@ CSRCS = \
+ $(NULL)
+
+ CPPSRCS = \
+ $(XPCOM_GLUE_SRC_LCPPSRCS) \
+ $(XPCOM_GLUENS_SRC_LCPPSRCS) \
+ nsXPComInit.cpp \
+ nsXPCOMStrings.cpp \
+ Services.cpp \
++ Omnijar.cpp \
+ $(NULL)
+
+ ifndef MOZ_ENABLE_LIBXUL
+ ifeq (,$(filter-out WINNT WINCE OS2,$(OS_ARCH)))
+ CPPSRCS += dlldeps.cpp
+ endif
+ endif
+
+-ifdef MOZ_OMNIJAR
+-CPPSRCS += Omnijar.cpp
+-endif
+-
+ SHARED_LIBRARY_LIBS = \
+ $(DEPTH)/chrome/src/$(LIB_PREFIX)chrome_s.$(LIB_SUFFIX) \
+ ../ds/$(LIB_PREFIX)xpcomds_s.$(LIB_SUFFIX) \
+ ../io/$(LIB_PREFIX)xpcomio_s.$(LIB_SUFFIX) \
+ ../components/$(LIB_PREFIX)xpcomcomponents_s.$(LIB_SUFFIX) \
+ ../threads/$(LIB_PREFIX)xpcomthreads_s.$(LIB_SUFFIX) \
+ ../proxy/src/$(LIB_PREFIX)xpcomproxy_s.$(LIB_SUFFIX) \
+ ../base/$(LIB_PREFIX)xpcombase_s.$(LIB_SUFFIX) \
+diff --git a/xpcom/build/Omnijar.cpp b/xpcom/build/Omnijar.cpp
+--- a/xpcom/build/Omnijar.cpp
++++ b/xpcom/build/Omnijar.cpp
+@@ -16,16 +16,17 @@
+ *
+ * The Initial Developer of the Original Code is
+ * Mozilla Foundation.
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Michael Wu <mwu@mozilla.com>
++ * Mike Hommey <mh@glandium.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+@@ -33,69 +34,175 @@
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+ #include "Omnijar.h"
+
+-#include "nsILocalFile.h"
+-#include "nsXULAppAPI.h"
++#include "nsIFile.h"
+ #include "nsZipArchive.h"
++#include "nsNetUtil.h"
+
+-static nsILocalFile* sOmnijarPath = nsnull;
+-static nsZipArchive* sOmnijarReader = nsnull;
++namespace mozilla {
+
+-static void
+-SetupReader()
++nsIFile *Omnijar::sPath[2] = { nsnull, nsnull };
++PRBool Omnijar::sIsOmnijar[2] = { PR_FALSE, PR_FALSE };
++
++#ifdef MOZ_ENABLE_LIBXUL
++nsZipArchive *Omnijar::sReader[2] = { nsnull, nsnull };
++#endif
++
++static already_AddRefed<nsIFile>
++ComputePath(nsIFile *aPath, PRBool &aIsOmnijar)
+ {
+- if (!sOmnijarPath) {
+- return;
++ PRBool isDir;
++ aIsOmnijar = PR_FALSE;
++ if (!aPath || NS_FAILED(aPath->IsDirectory(&isDir)) || !isDir)
++ return nsnull;
++
++ nsCOMPtr<nsIFile> path;
++#ifdef MOZ_ENABLE_LIBXUL
++ // Search for omni.jar in the given directory
++ if (!isDir || NS_FAILED(aPath->Clone(getter_AddRefs(path))))
++ return nsnull;
++
++ if (NS_FAILED(path->AppendNative(NS_LITERAL_CSTRING("omni.jar"))))
++ return nsnull;
++
++ if (NS_FAILED(path->Exists(&aIsOmnijar)))
++ return nsnull;
++#endif
++
++ if (!aIsOmnijar && NS_FAILED(aPath->Clone(getter_AddRefs(path))))
++ return nsnull;
++
++ return path.forget();
++}
++
++nsresult
++Omnijar::SetBase(nsIFile *aGrePath, nsIFile *aAppPath)
++{
++ NS_ABORT_IF_FALSE(aGrePath || !aAppPath, "Omnijar::SetBase(NULL, something) call forbidden");
++
++#ifdef MOZ_ENABLE_LIBXUL
++ if (sReader[GRE]) {
++ sReader[GRE]->CloseArchive();
++ delete sReader[GRE];
++ }
++ if (sReader[APP]) {
++ sReader[APP]->CloseArchive();
++ delete sReader[APP];
++ }
++ sReader[APP] = sReader[GRE] = nsnull;
++#endif
++
++ nsresult rv;
++ PRBool equals;
++ if (aAppPath) {
++ rv = aAppPath->Equals(aGrePath, &equals);
++ NS_ENSURE_SUCCESS(rv, rv);
++ } else {
++ equals = PR_TRUE;
+ }
+
+- nsZipArchive* zipReader = new nsZipArchive();
+- if (!zipReader) {
+- NS_IF_RELEASE(sOmnijarPath);
+- return;
++ nsCOMPtr<nsIFile> grePath = ComputePath(aGrePath, sIsOmnijar[GRE]);
++ nsCOMPtr<nsIFile> appPath = ComputePath(equals ? nsnull : aAppPath, sIsOmnijar[APP]);
++
++ NS_IF_RELEASE(sPath[GRE]);
++ sPath[GRE] = grePath;
++ NS_IF_ADDREF(sPath[GRE]);
++
++ NS_IF_RELEASE(sPath[APP]);
++ sPath[APP] = appPath;
++ NS_IF_ADDREF(sPath[APP]);
++
++ return NS_OK;
++}
++
++already_AddRefed<nsIFile>
++Omnijar::GetBase(Type aType)
++{
++ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
++
++ if (!sIsOmnijar[aType]) {
++ NS_IF_ADDREF(sPath[aType]);
++ return sPath[aType];
+ }
+
+- if (NS_FAILED(zipReader->OpenArchive(sOmnijarPath))) {
++ nsCOMPtr<nsIFile> file, path;
++ if (NS_FAILED(sPath[aType]->Clone(getter_AddRefs(file))))
++ return nsnull;
++
++ if (NS_FAILED(file->GetParent(getter_AddRefs(path))))
++ return nsnull;
++ return path.forget();
++}
++
++#ifdef MOZ_ENABLE_LIBXUL
++nsZipArchive *
++Omnijar::GetReader(Type aType)
++{
++ if (!sIsOmnijar[aType])
++ return nsnull;
++
++ if (sReader[aType])
++ return sReader[aType];
++
++ nsZipArchive* zipReader = new nsZipArchive();
++ if (!zipReader)
++ return nsnull;
++
++ if (NS_FAILED(zipReader->OpenArchive(sPath[aType]))) {
+ delete zipReader;
+- NS_IF_RELEASE(sOmnijarPath);
+- return;
++ return nsnull;
+ }
+
+- sOmnijarReader = zipReader;
++ return (sReader[aType] = zipReader);
+ }
+
+-nsILocalFile*
+-mozilla::OmnijarPath()
++nsZipArchive *
++Omnijar::GetReader(nsIFile *aPath)
+ {
+- if (!sOmnijarReader)
+- SetupReader();
++ PRBool equals;
++ nsresult rv;
+
+- return sOmnijarPath;
++ if (sIsOmnijar[GRE]) {
++ rv = sPath[GRE]->Equals(aPath, &equals);
++ if (NS_SUCCEEDED(rv) && equals)
++ return GetReader(GRE);
++ }
++ if (sIsOmnijar[APP]) {
++ rv = sPath[APP]->Equals(aPath, &equals);
++ if (NS_SUCCEEDED(rv) && equals)
++ return GetReader(APP);
++ }
++ return nsnull;
++}
++#endif
++
++nsresult
++Omnijar::GetURIString(Type aType, nsCString &result)
++{
++ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
++
++ result = "";
++
++ if ((aType == APP) && (!sPath[APP]))
++ return NS_OK;
++
++ nsCAutoString omniJarSpec;
++ nsresult rv = NS_GetURLSpecFromActualFile(sPath[aType], omniJarSpec);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ if (sIsOmnijar[aType]) {
++ result = "jar:";
++ result += omniJarSpec;
++ result += "!";
++ } else {
++ result = omniJarSpec;
++ }
++ result += "/";
++ return NS_OK;
+ }
+
+-nsZipArchive*
+-mozilla::OmnijarReader()
+-{
+- if (!sOmnijarReader)
+- SetupReader();
+-
+- return sOmnijarReader;
+-}
+-
+-void
+-mozilla::SetOmnijar(nsILocalFile* aPath)
+-{
+- NS_IF_RELEASE(sOmnijarPath);
+- if (sOmnijarReader) {
+- sOmnijarReader->CloseArchive();
+- delete sOmnijarReader;
+- sOmnijarReader = nsnull;
+- }
+-
+- sOmnijarPath = aPath;
+- NS_IF_ADDREF(sOmnijarPath);
+-}
+-
++} /* namespace mozilla */
+diff --git a/xpcom/build/Omnijar.h b/xpcom/build/Omnijar.h
+--- a/xpcom/build/Omnijar.h
++++ b/xpcom/build/Omnijar.h
+@@ -16,16 +16,17 @@
+ *
+ * The Initial Developer of the Original Code is
+ * Mozilla Foundation.
+ * Portions created by the Initial Developer are Copyright (C) 2010
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Michael Wu <mwu@mozilla.com>
++ * Mike Hommey <mh@glandium.org>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+@@ -34,29 +35,137 @@
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+ #ifndef mozilla_Omnijar_h
+ #define mozilla_Omnijar_h
+
+-class nsILocalFile;
++#include "nscore.h"
++#include "nsTArray.h"
++#include "nsCOMPtr.h"
++#include "nsString.h"
++
++class nsIFile;
+ class nsZipArchive;
+-
+-#ifdef MOZ_OMNIJAR
++class nsIURI;
+
+ namespace mozilla {
+
++#ifdef MOZ_ENABLE_LIBXUL
++#define OMNIJAR_EXPORT
++#else
++#define OMNIJAR_EXPORT NS_EXPORT
++#endif
++
++class OMNIJAR_EXPORT Omnijar {
++private:
+ /**
+- * This returns the path to the omnijar.
+- * If the omnijar isn't available, this function will return null.
+- * Callers should fallback to flat packaging if null.
++ * Store an nsIFile for either a base directory when there is no omni.jar,
++ * or omni.jar itself. We can store two paths here, one for GRE
++ * (corresponding to resource://gre/) and one for APP
++ * (corresponding to resource:/// and resource://app/), but only
++ * store one when both point to the same location (unified).
+ */
+-nsILocalFile *OmnijarPath();
+-nsZipArchive *OmnijarReader();
+-void SetOmnijar(nsILocalFile* aPath);
++static nsIFile *sPath[2];
++/**
++ * Store whether the corresponding sPath is an omni.jar or a directory
++ */
++static PRBool sIsOmnijar[2];
++
++#ifdef MOZ_ENABLE_LIBXUL
++/**
++ * Cached nsZipArchives for the corresponding sPath
++ */
++static nsZipArchive *sReader[2];
++#endif
++
++public:
++enum Type {
++ GRE = 0,
++ APP = 1
++};
++
++/**
++ * Returns whether SetBase has been called at least once with
++ * a valid nsIFile
++ */
++static PRBool
++IsInitialized()
++{
++ // GRE path is always set after initialization.
++ return sPath[0] != nsnull;
++}
++
++/**
++ * Sets the base directories for GRE and APP. APP base directory
++ * may be nsnull, in case the APP and GRE directories are the same.
++ */
++static nsresult SetBase(nsIFile *aGrePath, nsIFile *aAppPath);
++
++/**
++ * Returns an nsIFile pointing to the omni.jar file for GRE or APP.
++ * Returns nsnull when there is no corresponding omni.jar.
++ * Also returns nsnull for APP in the unified case.
++ */
++static already_AddRefed<nsIFile>
++GetPath(Type aType)
++{
++ NS_ABORT_IF_FALSE(sPath[0], "Omnijar not initialized");
++
++ if (sIsOmnijar[aType]) {
++ NS_IF_ADDREF(sPath[aType]);
++ return sPath[aType];
++ }
++ return nsnull;
++}
++
++/**
++ * Returns whether GRE or APP use an omni.jar. Returns PR_False when
++ * using an omni.jar in the unified case.
++ */
++static PRBool
++HasOmnijar(Type aType)
++{
++ return sIsOmnijar[aType];
++}
++
++/**
++ * Returns the base directory for GRE or APP. In the unified case,
++ * returns nsnull for APP.
++ */
++static already_AddRefed<nsIFile> GetBase(Type aType);
++
++/**
++ * Returns a nsZipArchive pointer for the omni.jar file for GRE or
++ * APP. Returns nsnull in the same cases GetPath() would.
++ */
++#ifdef MOZ_ENABLE_LIBXUL
++static nsZipArchive *GetReader(Type aType);
++#else
++static nsZipArchive *GetReader(Type aType) { return nsnull; }
++#endif
++
++/**
++ * Returns a nsZipArchive pointer for the given path IAOI the given
++ * path is the omni.jar for either GRE or APP.
++ */
++#ifdef MOZ_ENABLE_LIBXUL
++static nsZipArchive *GetReader(nsIFile *aPath);
++#else
++static nsZipArchive *GetReader(nsIFile *aPath) { return nsnull; }
++#endif
++
++/**
++ * Returns the URI string corresponding to the omni.jar or directory
++ * for GRE or APP. i.e. jar:/path/to/omni.jar!/ for omni.jar and
++ * /path/to/base/dir/ otherwise. Returns an empty string for APP in
++ * the unified case.
++ * The returned URI is guaranteed to end with a slash.
++ */
++static nsresult GetURIString(Type aType, nsCString &result);
++
++}; /* class Omnijar */
+
+ } /* namespace mozilla */
+
+-#endif /* MOZ_OMNIJAR */
+-
+ #endif /* mozilla_Omnijar_h */
+diff --git a/xpcom/build/nsXPComInit.cpp b/xpcom/build/nsXPComInit.cpp
+--- a/xpcom/build/nsXPComInit.cpp
++++ b/xpcom/build/nsXPComInit.cpp
+@@ -462,35 +462,35 @@ NS_InitXPCOM2(nsIServiceManager* *result
+ nsDirectoryService::gService->Set(NS_XPCOM_LIBRARY_FILE, xpcomLib);
+ }
+
+ if (appFileLocationProvider) {
+ rv = nsDirectoryService::gService->RegisterProvider(appFileLocationProvider);
+ if (NS_FAILED(rv)) return rv;
+ }
+
+-#ifdef MOZ_OMNIJAR
+ NS_TIME_FUNCTION_MARK("Next: Omnijar init");
+
+- if (!mozilla::OmnijarPath()) {
+- nsCOMPtr<nsILocalFile> omnijar;
++ if (!mozilla::Omnijar::IsInitialized()) {
++ nsCOMPtr<nsILocalFile> greDir, appDir;
+ nsCOMPtr<nsIFile> file;
+
+- rv = NS_ERROR_FAILURE;
+ nsDirectoryService::gService->Get(NS_GRE_DIR,
+ NS_GET_IID(nsIFile),
+ getter_AddRefs(file));
+- if (file)
+- rv = file->Append(NS_LITERAL_STRING("omni.jar"));
+- if (NS_SUCCEEDED(rv))
+- omnijar = do_QueryInterface(file);
+- if (NS_SUCCEEDED(rv))
+- mozilla::SetOmnijar(omnijar);
++ greDir = do_QueryInterface(file);
++
++ nsDirectoryService::gService->Get(NS_XPCOM_CURRENT_PROCESS_DIR,
++ NS_GET_IID(nsIFile),
++ getter_AddRefs(file));
++ appDir = do_QueryInterface(file);
++
++ rv = mozilla::Omnijar::SetBase(greDir, appDir);
++ NS_ENSURE_SUCCESS(rv, rv);
+ }
+-#endif
+
+ #ifdef MOZ_IPC
+ if ((sCommandLineWasInitialized = !CommandLine::IsInitialized())) {
+ NS_TIME_FUNCTION_MARK("Next: IPC command line init");
+
+ #ifdef OS_WIN
+ CommandLine::Init(0, nsnull);
+ #else
+@@ -769,18 +769,16 @@ ShutdownXPCOM(nsIServiceManager* servMgr
+ sCommandLineWasInitialized = false;
+ }
+ if (sExitManager) {
+ delete sExitManager;
+ sExitManager = nsnull;
+ }
+ #endif
+
+-#ifdef MOZ_OMNIJAR
+- mozilla::SetOmnijar(nsnull);
+-#endif
++ mozilla::Omnijar::SetBase(nsnull, nsnull);
+
+ NS_LogTerm();
+
+ return NS_OK;
+ }
+
+ } // namespace mozilla
+diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp
+--- a/xpcom/components/nsComponentManager.cpp
++++ b/xpcom/components/nsComponentManager.cpp
+@@ -175,18 +175,16 @@ NS_DEFINE_CID(kCategoryManagerCID, NS_CA
+ #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) \
+ NS_TIME_FUNCTION_MIN_FMT(5, "%s (line %d) (contractid: %s)", MOZ_FUNCTION_NAME, \
+ __LINE__, (cid))
+ #else
+ #define COMPMGR_TIME_FUNCTION_CID(cid) do {} while (0)
+ #define COMPMGR_TIME_FUNCTION_CONTRACTID(cid) do {} while (0)
+ #endif
+
+-#define kOMNIJAR_PREFIX NS_LITERAL_CSTRING("resource:///")
+-
+ nsresult
+ nsGetServiceFromCategory::operator()(const nsIID& aIID, void** aInstancePtr) const
+ {
+ nsresult rv;
+ nsXPIDLCString value;
+ nsCOMPtr<nsICategoryManager> catman;
+ nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager;
+ if (!compMgr) {
+@@ -390,47 +388,44 @@ nsresult nsComponentManagerImpl::Init()
+
+ nsCategoryManager::GetSingleton()->SuppressNotifications(true);
+
+ RegisterModule(&kXPCOMModule, NULL);
+
+ for (PRUint32 i = 0; i < sStaticModules->Length(); ++i)
+ RegisterModule((*sStaticModules)[i], NULL);
+
+-#ifdef MOZ_OMNIJAR
+- if (mozilla::OmnijarPath()) {
+- nsCOMPtr<nsIZipReader> omnijarReader = new nsJAR();
+- rv = omnijarReader->Open(mozilla::OmnijarPath());
+- if (NS_SUCCEEDED(rv))
+- RegisterJarManifest(omnijarReader, "chrome.manifest", false);
++ nsCOMPtr<nsIFile> appOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::APP);
++ if (appOmnijar) {
++ cl = sModuleLocations->InsertElementAt(1); // Insert after greDir
++ cl->type = NS_COMPONENT_LOCATION;
++ cl->location = do_QueryInterface(appOmnijar);
++ cl->jar = true;
+ }
+-#endif
++ nsCOMPtr<nsIFile> greOmnijar = mozilla::Omnijar::GetPath(mozilla::Omnijar::GRE);
++ if (greOmnijar) {
++ cl = sModuleLocations->InsertElementAt(0);
++ cl->type = NS_COMPONENT_LOCATION;
++ cl->location = do_QueryInterface(greOmnijar);
++ cl->jar = true;
++ }
+
+ for (PRUint32 i = 0; i < sModuleLocations->Length(); ++i) {
+ ComponentLocation& l = sModuleLocations->ElementAt(i);
+ if (!l.jar) {
+ RegisterManifestFile(l.type, l.location, false);
+ continue;
+ }
+
+ nsCOMPtr<nsIZipReader> reader = do_CreateInstance(kZipReaderCID, &rv);
+ rv = reader->Open(l.location);
+ if (NS_SUCCEEDED(rv))
+ RegisterJarManifest(reader, "chrome.manifest", false);
+ }
+
+-#ifdef MOZ_OMNIJAR
+- if (mozilla::OmnijarPath()) {
+- cl = sModuleLocations->InsertElementAt(0);
+- cl->type = NS_COMPONENT_LOCATION;
+- cl->location = mozilla::OmnijarPath();
+- cl->jar = true;
+- }
+-#endif
+-
+ nsCategoryManager::GetSingleton()->SuppressNotifications(false);
+
+ mStatus = NORMAL;
+
+ return NS_OK;
+ }
+
+ void
+# HG changeset patch
+# Parent ff1b810f78226d7f4010909d3cde05a57fdcf20c
+Bug 620931 part 4 - Fix resource://app/ to always point to the same as resource:///
+
+diff --git a/netwerk/protocol/res/nsResProtocolHandler.cpp b/netwerk/protocol/res/nsResProtocolHandler.cpp
+--- a/netwerk/protocol/res/nsResProtocolHandler.cpp
++++ b/netwerk/protocol/res/nsResProtocolHandler.cpp
+@@ -74,16 +74,17 @@ static nsResProtocolHandler *gResHandler
+ // set NSPR_LOG_FILE=log.txt
+ //
+ // this enables PR_LOG_ALWAYS level information and places all output in
+ // the file log.txt
+ //
+ static PRLogModuleInfo *gResLog;
+ #endif
+
++#define kAPP NS_LITERAL_CSTRING("app")
+ #define kGRE NS_LITERAL_CSTRING("gre")
+
+ //----------------------------------------------------------------------------
+ // nsResURL : overrides nsStandardURL::GetFile to provide nsIFile resolution
+ //----------------------------------------------------------------------------
+
+ nsresult
+ nsResURL::EnsureFile()
+@@ -179,16 +180,22 @@ nsResProtocolHandler::Init()
+ nsCOMPtr<nsIURI> uri;
+ rv = NS_NewURI(getter_AddRefs(uri), appURI.Length() ? appURI : greURI);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ rv = SetSubstitution(EmptyCString(), uri);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ //
++ // make resource://app/ point to the application directory or omnijar
++ //
++ rv = SetSubstitution(kAPP, uri);
++ NS_ENSURE_SUCCESS(rv, rv);
++
++ //
+ // make resource://gre/ point to the GRE directory
+ //
+ if (appURI.Length()) { // We already have greURI in uri if appURI.Length() is 0.
+ rv = NS_NewURI(getter_AddRefs(uri), greURI);
+ NS_ENSURE_SUCCESS(rv, rv);
+ }
+
+ rv = SetSubstitution(kGRE, uri);
+diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
+--- a/toolkit/xre/nsXREDirProvider.cpp
++++ b/toolkit/xre/nsXREDirProvider.cpp
+@@ -300,19 +300,16 @@ nsXREDirProvider::GetFile(const char* aP
+ }
+ }
+ else if (!strcmp(aProperty, XRE_EXECUTABLE_FILE) && gArgv[0]) {
+ nsCOMPtr<nsILocalFile> lf;
+ rv = XRE_GetBinaryPath(gArgv[0], getter_AddRefs(lf));
+ if (NS_SUCCEEDED(rv))
+ file = lf;
+ }
+- else if (!strcmp(aProperty, "resource:app")) {
+- rv = GetAppDir()->Clone(getter_AddRefs(file));
+- }
+
+ else if (!strcmp(aProperty, NS_APP_PROFILE_DIR_STARTUP) && mProfileDir) {
+ return mProfileDir->Clone(aFile);
+ }
+ else if (!strcmp(aProperty, NS_APP_PROFILE_LOCAL_DIR_STARTUP)) {
+ if (mProfileLocalDir)
+ return mProfileLocalDir->Clone(aFile);
+
+# HG changeset patch
+# Parent 7d2228db71a299afca60babff632a967d2d6c456
+Bug 620931 part 5 - Enable omni.jar by default on xulrunner
+
+diff --git a/xulrunner/confvars.sh b/xulrunner/confvars.sh
+--- a/xulrunner/confvars.sh
++++ b/xulrunner/confvars.sh
+@@ -36,15 +36,16 @@
+ #
+ # ***** END LICENSE BLOCK *****
+
+ MOZ_APP_NAME=xulrunner
+ MOZ_APP_DISPLAYNAME=XULRunner
+ MOZ_UPDATER=1
+ MOZ_XULRUNNER=1
+ MOZ_ENABLE_LIBXUL=1
++MOZ_CHROME_FILE_FORMAT=omni
+ MOZ_STATIC_BUILD_UNSUPPORTED=1
+ MOZ_APP_VERSION=$MOZILLA_VERSION
+ if test "$MOZ_STORAGE"; then
+ MOZ_PLACES=1
+ fi
+ MOZ_EXTENSIONS_DEFAULT=" gnomevfs"
+ MOZ_URL_CLASSIFIER=1
diff --git a/extra/xulrunner/xulrunner-version.patch b/extra/xulrunner/xulrunner-version.patch
new file mode 100644
index 000000000..8e81b23ea
--- /dev/null
+++ b/extra/xulrunner/xulrunner-version.patch
@@ -0,0 +1,12 @@
+diff -Nur mozilla-2.0.orig/xulrunner/installer/Makefile.in mozilla-2.0/xulrunner/installer/Makefile.in
+--- mozilla-2.0.orig/xulrunner/installer/Makefile.in 2011-03-03 14:12:04.000000000 -0800
++++ mozilla-2.0/xulrunner/installer/Makefile.in 2011-03-13 01:58:19.663360705 -0800
+@@ -44,6 +44,8 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
++MOZ_APP_VERSION="2.0"
++
+ NO_PKG_FILES = \
+ xulrunner-config \
+ regchrome* \
diff --git a/extra/xvidcore/PKGBUILD b/extra/xvidcore/PKGBUILD
new file mode 100644
index 000000000..8b8438536
--- /dev/null
+++ b/extra/xvidcore/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111793 2011-03-01 00:12:59Z eric $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Sarah Hay <sarah@archlinux.org>
+
+pkgname=xvidcore
+pkgver=1.3.0
+pkgrel=1
+pkgdesc="XviD is an open source MPEG-4 video codec"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.xvid.org/"
+depends=('glibc')
+makedepends=('nasm')
+source=(http://downloads.xvid.org/downloads/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('22621243c4a588dcee599e77736309c2')
+sha1sums=('3220e3feee2c92ae73169009a23c9ef929867bc7')
+
+build() {
+ cd "${srcdir}/${pkgname}/build/generic"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}/build/generic"
+ make DESTDIR="${pkgdir}" install
+
+ #Fix dynamic libraries
+ cd "${pkgdir}/usr/lib"
+ _mylib=$(basename libxvidcore.so.*)
+ ln -sf ${_mylib} libxvidcore.so.4
+ ln -sf ${_mylib} libxvidcore.so
+}
diff --git a/extra/yakuake/PKGBUILD b/extra/yakuake/PKGBUILD
new file mode 100644
index 000000000..6fe44c6cb
--- /dev/null
+++ b/extra/yakuake/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 107962 2011-01-28 08:00:39Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: James Rayner <iphitus@gmail.com>
+# Contributor: leeghoofd <abcdefg@solcon.nl>
+
+pkgname=yakuake
+pkgver=2.9.8
+pkgrel=1
+pkgdesc="A KDE konsole application with the look and feel of that in the Quake engine"
+arch=('i686' 'x86_64')
+url="http://yakuake.kde.org"
+license=('GPL')
+depends=('kdebase-konsole')
+makedepends=('cmake' 'automoc4')
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('a53ae52fc530912b74155a586d92a1fe')
+
+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/extra/yakuake/yakuake.install b/extra/yakuake/yakuake.install
new file mode 100644
index 000000000..c0797237a
--- /dev/null
+++ b/extra/yakuake/yakuake.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/extra/yasm/PKGBUILD b/extra/yasm/PKGBUILD
new file mode 100644
index 000000000..950d609ca
--- /dev/null
+++ b/extra/yasm/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 98381 2010-11-08 19:21:18Z andrea $
+# Maintainer:
+# Contributor: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Vinay S Shastry <vinayshastry@gmail.com>
+
+pkgname=yasm
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="A rewrite of NASM to allow for multiple syntax supported (NASM, TASM, GAS, etc.)"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.tortall.net/projects/yasm/"
+depends=('glibc')
+source=(http://www.tortall.net/projects/yasm/releases/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool')
+md5sums=('8392e5f2235c2c2a981e1a633f2698cb')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -Dm644 COPYING ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+}
diff --git a/extra/yelp/PKGBUILD b/extra/yelp/PKGBUILD
new file mode 100644
index 000000000..19379e7a8
--- /dev/null
+++ b/extra/yelp/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 115826 2011-03-21 19:45:05Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=yelp
+pkgver=2.30.1
+pkgrel=2
+pkgdesc="A help browser for GNOME"
+arch=('i686' 'x86_64')
+depends=('libwebkit' 'gnome-doc-utils>=0.20.2' 'startup-notification>=0.10' 'libxslt' 'hicolor-icon-theme' 'rarian>=0.8.1' 'gconf>=2.28.1')
+makedepends=('intltool' 'pkgconfig')
+groups=('gnome')
+license=('GPL')
+options=('!emptydirs')
+url="http://www.gnome.org"
+install=yelp.install
+options=(force)
+#source=(http://ftp.gnome.org/pub/gnome/sources/yelp/2.30/yelp-${pkgver}.tar.bz2)
+source=(http://ftp.de.debian.org/debian/pool/main/y/yelp/yelp_${pkgver}+webkit.orig.tar.gz)
+sha256sums=('2f450ca32f3057de4a7be0f9a8408314b47ba6f157bcdb416a333fe4e5f7a44b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-search=basic
+ make
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain yelp ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/extra/yelp/yelp.install b/extra/yelp/yelp.install
new file mode 100644
index 000000000..3a893b043
--- /dev/null
+++ b/extra/yelp/yelp.install
@@ -0,0 +1,22 @@
+pkgname=yelp
+
+post_install() {
+ gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
diff --git a/extra/yp-tools/PKGBUILD b/extra/yp-tools/PKGBUILD
new file mode 100644
index 000000000..9d09fd38a
--- /dev/null
+++ b/extra/yp-tools/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 91704 2010-09-27 17:42:28Z bisson $
+# Maintainer: dorphell <dorphell@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=yp-tools
+pkgver=2.12
+pkgrel=1
+pkgdesc='Linux NIS Tools'
+arch=('i686' 'x86_64')
+url='http://www.linux-nis.org/nis/yp-tools/'
+license=('GPL2')
+depends=('ypbind-mt' 'glibc')
+source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz")
+sha1sums=('10b0ef5d4c5723e0716d7a1431a900c0ba6ef703')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-domainname
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/extra/ypbind-mt/PKGBUILD b/extra/ypbind-mt/PKGBUILD
new file mode 100644
index 000000000..7aba3d55e
--- /dev/null
+++ b/extra/ypbind-mt/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 91694 2010-09-27 17:40:26Z bisson $
+# Maintainer: judd <jvinet@zeroflux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ypbind-mt
+pkgver=1.32
+pkgrel=1
+pkgdesc='Linux NIS daemon'
+arch=('i686' 'x86_64')
+url='http://www.linux-nis.org/nis/ypbind-mt/'
+license=('GPL2')
+depends=('rpcbind' 'openslp')
+backup=('etc/yp.conf' 'etc/conf.d/ypbind')
+source=("ftp://ftp.kernel.org/pub/linux/utils/net/NIS/$pkgname-$pkgver.tar.gz"
+ 'ypbind.conf'
+ 'ypbind')
+sha1sums=('136d1cb1499d32d01f7efa216352911980a7dda8'
+ '07dee386d001fb9e9e6b76dda8af5b2092e5a4a2'
+ '66f6ea2f622e0724e6017bf835d4f7f4a5bf9534')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --disable-dbus-nm
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -D -m644 etc/yp.conf "$pkgdir"/etc/yp.conf
+ install -D -m755 ../ypbind "$pkgdir"/etc/rc.d/ypbind
+ install -D -m644 ../ypbind.conf "$pkgdir"/etc/conf.d/ypbind
+ install -d -m755 "$pkgdir"/var/yp/binding
+}
diff --git a/extra/ypbind-mt/ypbind b/extra/ypbind-mt/ypbind
new file mode 100755
index 000000000..5ef5cf5b3
--- /dev/null
+++ b/extra/ypbind-mt/ypbind
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/ypbind
+
+case "$1" in
+ start)
+ stat_busy "Starting NIS Bind Daemon"
+ [ -f /etc/defaultdomain ] && /bin/domainname -F /etc/defaultdomain
+ /usr/sbin/ypbind $YPBIND_ARGS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon ypbind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping NIS Bind Daemon"
+ killall -q /usr/sbin/ypbind
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon ypbind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/extra/ypbind-mt/ypbind.conf b/extra/ypbind-mt/ypbind.conf
new file mode 100644
index 000000000..fd0ebd491
--- /dev/null
+++ b/extra/ypbind-mt/ypbind.conf
@@ -0,0 +1,4 @@
+#
+# Parameters to be passed to ypbind
+#
+YPBIND_ARGS=""
diff --git a/extra/ypserv/PKGBUILD b/extra/ypserv/PKGBUILD
new file mode 100644
index 000000000..87d04a212
--- /dev/null
+++ b/extra/ypserv/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 91699 2010-09-27 17:41:23Z bisson $
+# Maintainer: judd <jvinet@zeroflux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=ypserv
+pkgver=2.24
+pkgrel=1
+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=('3ae53fe5e047b3bf6a1e407424311ec6e806a95d'
+ '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/extra/ypserv/yppasswd b/extra/ypserv/yppasswd
new file mode 100755
index 000000000..c2b00b2ca
--- /dev/null
+++ b/extra/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/extra/ypserv/ypserv b/extra/ypserv/ypserv
new file mode 100755
index 000000000..c36e6901b
--- /dev/null
+++ b/extra/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/extra/zenity/PKGBUILD b/extra/zenity/PKGBUILD
new file mode 100644
index 000000000..bf8e48d87
--- /dev/null
+++ b/extra/zenity/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 112936 2011-03-07 19:37:34Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=zenity
+pkgver=2.32.1
+pkgrel=2
+pkgdesc="Display graphical dialog boxes from shell scripts"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libnotify>=0.7.1' 'gtk2')
+makedepends=('intltool' 'gnome-doc-utils>=0.20.2')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.32/${pkgname}-${pkgver}.tar.bz2
+ zenity-2.32.1-libnotify-0.7.patch)
+sha256sums=('8838be041a07364b62a4281c971392e4a09bb01bb3237a836ec0457ec0ea18ac'
+ '98bf6ca77f0fef14a5f0b8788595710b7eb88db121103a72c4a38bb912038431')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np0 -i "${srcdir}/zenity-2.32.1-libnotify-0.7.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/zenity/zenity-2.32.1-libnotify-0.7.patch b/extra/zenity/zenity-2.32.1-libnotify-0.7.patch
new file mode 100644
index 000000000..4d5bf7447
--- /dev/null
+++ b/extra/zenity/zenity-2.32.1-libnotify-0.7.patch
@@ -0,0 +1,27 @@
+--- src/notification.c
++++ src/notification.c
+@@ -30,6 +30,9 @@
+
+ #ifdef HAVE_LIBNOTIFY
+ #include <libnotify/notify.h>
++#ifndef NOTIFY_CHECK_VERSION
++#define NOTIFY_CHECK_VERSION(x,y,z) 0
++#endif
+ #endif
+
+ #include "zenity.h"
+@@ -184,10 +187,14 @@
+ icon = freeme = g_filename_to_uri (icon_file, NULL, NULL);
+ }
+
++#if NOTIFY_CHECK_VERSION (0, 7, 0)
++ /* notify_notification_new_with_status_icon was removed */
++#else
+ notif = notify_notification_new_with_status_icon (
+ message[0] /* title */,
+ message[1] /* summary */,
+ icon, status_icon);
++#endif
+
+ g_strfreev (message);
+ g_free (freeme);
diff --git a/extra/zile/PKGBUILD b/extra/zile/PKGBUILD
new file mode 100644
index 000000000..842e1261c
--- /dev/null
+++ b/extra/zile/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 104088 2010-12-28 17:55:43Z kevin $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Kevin Piche <kevin@archlinux.org>
+
+pkgname=zile
+pkgver=2.3.21
+pkgrel=1
+pkgdesc="A small, fast, and powerful Emacs clone"
+arch=(i686 x86_64)
+url="http://www.gnu.org/software/zile/"
+# Lua is not required, the author uses it to generate some source files.
+makedepends=('help2man')
+depends=('ncurses')
+license=('GPL')
+source=(http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('4bac1dc5d7e6fb5c13bd6677bca34b11')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make || return 1
+ make DESTDIR=${pkgdir} install
+}
+md5sums=('ec2834a42789477c55e7d44bc9438de1')
diff --git a/extra/zip/ChangeLog b/extra/zip/ChangeLog
new file mode 100644
index 000000000..bc7e1fb02
--- /dev/null
+++ b/extra/zip/ChangeLog
@@ -0,0 +1,13 @@
+2008-08-10 Eric Belanger <eric@archlinux.org>
+
+ * zip 3.0-1
+ * Removed zcrypt reference as it's now included in zip 3.0
+ * Added bzip2 depends
+ * Added license
+ * FHS man pages
+ * Disabled SMP build
+
+2008-07-27 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updating for i686: 3.0
+
diff --git a/extra/zip/PKGBUILD b/extra/zip/PKGBUILD
new file mode 100644
index 000000000..7b507748d
--- /dev/null
+++ b/extra/zip/PKGBUILD
@@ -0,0 +1,22 @@
+# $Id: PKGBUILD 8433 2008-08-11 03:21:13Z eric $
+# Maintainer: dorphell <dorphell@archlinux.org>
+
+pkgname=zip
+pkgver=3.0
+pkgrel=1
+pkgdesc="Creates PKZIP-compatible .zip files"
+arch=(i686 x86_64)
+url="http://www.info-zip.org/pub/infozip/Zip.html"
+license=('BSD')
+depends=('glibc' 'bzip2')
+makedepends=('unzip')
+options=('!makeflags')
+source=(ftp://ftp.info-zip.org/pub/infozip/src/zip30.zip)
+md5sums=('e88492c8abd68fa9cfba72bc08757dba')
+
+build() {
+ cd $startdir/src/${pkgname}30
+ make -f unix/Makefile LOCAL_ZIP="$CFLAGS" prefix=/usr generic_gcc || return 1
+ make -f unix/Makefile INSTALL=`which install` prefix=$startdir/pkg/usr MANDIR=$startdir/pkg/usr/share/man/man1 install
+ install -D -m644 LICENSE $startdir/pkg/usr/share/licenses/$pkgname/LICENSE.txt
+}
diff --git a/extra/zope-interface/PKGBUILD b/extra/zope-interface/PKGBUILD
new file mode 100644
index 000000000..e584a84c1
--- /dev/null
+++ b/extra/zope-interface/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 113445 2011-03-08 17:33:50Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=zope-interface
+pkgver=3.6.1
+pkgrel=1
+pkgdesc="Separate distribution of the zope.interface package used in Zope 3."
+license=('ZPL')
+arch=('i686' 'x86_64')
+url="http://pypi.python.org/pypi/zope.interface"
+depends=('python2')
+source=(http://pypi.python.org/packages/source/z/zope.interface/zope.interface-${pkgver}.tar.gz)
+md5sums=('7a895181b8d10be4a7e9a3afa13cd3be')
+
+build() {
+ cd ${srcdir}/zope.interface-${pkgver}
+ python2 setup.py install --prefix=/usr --root=${pkgdir} --optimize=1
+ # Blabla.
+ rm $pkgdir/usr/lib/python2.7/site-packages/zope/interface/README*.txt
+}
diff --git a/extra/zsh/PKGBUILD b/extra/zsh/PKGBUILD
new file mode 100644
index 000000000..64a547515
--- /dev/null
+++ b/extra/zsh/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 114633 2011-03-14 21:00:40Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=zsh
+pkgver=4.3.11
+pkgrel=2
+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")
+md5sums=('3225c7f53b69f395e95723585d6785ed')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # 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 \
+ --with-tcsetpgrp \
+ --enable-pcre \
+ --enable-cap \
+ --enable-zsh-secure-free
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}/" install
+ install -D -m644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/zsh/zsh.install b/extra/zsh/zsh.install
new file mode 100644
index 000000000..e2a53bea8
--- /dev/null
+++ b/extra/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
+}
diff --git a/extra/zvbi/PKGBUILD b/extra/zvbi/PKGBUILD
new file mode 100644
index 000000000..8ad534a47
--- /dev/null
+++ b/extra/zvbi/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 101442 2010-11-29 09:37:06Z jgc $
+# Maintainer:
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+pkgname=zvbi
+pkgver=0.2.33
+pkgrel=3
+pkgdesc="VBI capture and decoding library"
+url="http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome"
+arch=(i686 x86_64)
+depends=('libpng' 'libx11')
+license=('GPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/zapping/${pkgname}-${pkgver}.tar.bz2
+ fix-includes.patch)
+md5sums=('1741a6045c3eedfb611d645f2da69ac8'
+ '38766bc59e1571133d0399f0102da653')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-includes.patch"
+ ./configure --prefix=/usr --disable-static --mandir=/usr/share/man
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/extra/zvbi/fix-includes.patch b/extra/zvbi/fix-includes.patch
new file mode 100644
index 000000000..28252649e
--- /dev/null
+++ b/extra/zvbi/fix-includes.patch
@@ -0,0 +1,36 @@
+Add proper #includes so that we do not get undef errors to S_ISCHR
+during linking.
+
+Signed-off-by: Alex Chiang <achiang@canonical.com>
+---
+--- zvbi-0.2.33.orig/src/io-dvb.c
++++ zvbi-0.2.33/src/io-dvb.c
+@@ -29,6 +29,8 @@
+ #include <errno.h>
+ #include <sys/select.h>
+ #include <sys/ioctl.h>
++#include <sys/types.h>
++#include <sys/stat.h>
+
+ #ifndef HAVE_S64_U64
+ /* Linux 2.6.x asm/types.h defines __s64 and __u64 only
+--- zvbi-0.2.33.orig/src/io-v4l.c
++++ zvbi-0.2.33/src/io-v4l.c
+@@ -42,6 +42,7 @@ static const char rcsid [] =
+ #include <assert.h>
+ #include <sys/time.h> /* timeval */
+ #include <sys/types.h> /* fd_set, uid_t */
++#include <sys/stat.h> /* S_ISCHR */
+ #include <sys/ioctl.h> /* for (_)videodev.h */
+ #include <pthread.h>
+
+--- zvbi-0.2.33.orig/contrib/ntsc-cc.c
++++ zvbi-0.2.33/contrib/ntsc-cc.c
+@@ -34,6 +34,7 @@
+ #include <locale.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
+ #include <sys/time.h>
+ #ifdef HAVE_GETOPT_LONG
+ # include <getopt.h>
diff --git a/gnome-unstable/accountsservice/PKGBUILD b/gnome-unstable/accountsservice/PKGBUILD
new file mode 100644
index 000000000..8f40e7405
--- /dev/null
+++ b/gnome-unstable/accountsservice/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115733 2011-03-20 21:02:51Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=accountsservice
+pkgver=0.6.6
+pkgrel=1
+pkgdesc="D-Bus interface for user account query and manipulation"
+arch=(i686 x86_64)
+url="http://cgit.freedesktop.org/accountsservice/"
+license=('GPL3')
+depends=('dbus-glib' 'polkit')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+source=(http://cgit.freedesktop.org/accountsservice/snapshot/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('15ce9d4f6157d0bc4e4b4565b1deddca')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./autogen.sh
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/accountsservice \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/anjuta/PKGBUILD b/gnome-unstable/anjuta/PKGBUILD
new file mode 100644
index 000000000..307cf08ce
--- /dev/null
+++ b/gnome-unstable/anjuta/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 117921 2011-04-04 21:31:08Z heftig $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Harley Laue <losinggeneration@yahoo.com>
+
+pkgname=anjuta
+pkgver=3.0.0.0
+pkgrel=1
+pkgdesc="GNOME Integrated Development Environment (IDE)"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('vte3' 'gdl' 'autogen' 'devhelp' 'gtksourceview3' 'glade' 'libgda'
+ 'subversion' 'gnome-icon-theme' 'hicolor-icon-theme' 'vala' 'graphviz'
+ 'python2' 'shared-mime-info' 'desktop-file-utils')
+makedepends=('gnome-doc-utils' 'intltool')
+url="http://anjuta.sourceforge.net/"
+install=anjuta.install
+source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*.*}/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool' '!emptydirs')
+sha256sums=('f0b7b4ad77479e02f181f52adf1b2b866d6ed1463f401dac905bb55c606492c9')
+
+build() {
+ cd "${srcdir}/anjuta-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package(){
+ cd "${srcdir}/anjuta-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ sed -i "1s|#!/usr/bin/python$|&2|" \
+ $pkgdir/usr/share/anjuta/project/{pygtk,python}/src/main.py
+}
diff --git a/gnome-unstable/anjuta/anjuta.install b/gnome-unstable/anjuta/anjuta.install
new file mode 100644
index 000000000..c6fcfec11
--- /dev/null
+++ b/gnome-unstable/anjuta/anjuta.install
@@ -0,0 +1,21 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+ update-mime-database usr/share/mime > /dev/null
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall anjuta
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/at-spi/PKGBUILD b/gnome-unstable/at-spi/PKGBUILD
new file mode 100644
index 000000000..0f35d26ee
--- /dev/null
+++ b/gnome-unstable/at-spi/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 114880 2011-03-16 10:52:19Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=at-spi
+pkgver=1.32.0
+pkgrel=3
+pkgdesc="Assistive Technology Service Provider Interface"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libbonobo' 'libxtst' 'gtk2' 'gconf')
+makedepends=('pkgconfig' 'python2' 'intltool' 'libice' 'libsm')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=at-spi.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.32/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('cc841dea746413eebadf0710dabec741450b37a06821c34526f505fe9d027039')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/at-spi
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain at-spi "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+
+ #remove conflicting file
+ rm -f "${pkgdir}/usr/lib/gtk-2.0/modules/libatk-bridge.so"
+}
diff --git a/gnome-unstable/at-spi/at-spi.install b/gnome-unstable/at-spi/at-spi.install
new file mode 100644
index 000000000..b4c75b51c
--- /dev/null
+++ b/gnome-unstable/at-spi/at-spi.install
@@ -0,0 +1,17 @@
+pkgname=at-spi
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/gnome-unstable/at-spi2-atk/PKGBUILD b/gnome-unstable/at-spi2-atk/PKGBUILD
new file mode 100644
index 000000000..22c6cba3e
--- /dev/null
+++ b/gnome-unstable/at-spi2-atk/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 116857 2011-03-25 22:44:20Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=at-spi2-atk
+pkgver=1.91.93
+pkgrel=1
+pkgdesc="A GTK+ module that bridges ATK to D-Bus at-spi"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('at-spi2-core' 'libx11' 'atk' 'dconf')
+makedepends=('intltool')
+install=at-spi2-atk.install
+options=('!libtool')
+groups=('gnome')
+source=(http://download.gnome.org/sources/${pkgname}/1.91/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('9b9afc7631f780748fedd22f5b3980b611ffe55f7e177952452c322e131e8fa7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ autoreconf --force --install
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/at-spi2-atk/at-spi2-atk.install b/gnome-unstable/at-spi2-atk/at-spi2-atk.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/gnome-unstable/at-spi2-atk/at-spi2-atk.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/at-spi2-core/PKGBUILD b/gnome-unstable/at-spi2-core/PKGBUILD
new file mode 100644
index 000000000..3c08b0155
--- /dev/null
+++ b/gnome-unstable/at-spi2-core/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 116855 2011-03-25 22:44:04Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=at-spi2-core
+pkgver=1.91.93
+pkgrel=1
+pkgdesc="Protocol definitions and daemon for D-Bus at-spi"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('dbus-core' 'glib2' 'libxtst')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+groups=('gnome')
+source=(http://download.gnome.org/sources/${pkgname}/1.91/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e06fa4e17ebafb203126051000d2274f1ccaa7e04bff248f4524ac2411b29582')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i -e '/AC_PATH_XTRA/d' configure.ac
+ sed -i -e '/--pkg dbus-glib-1/s/-glib//' atspi/Makefile.am
+ autoreconf --force --install
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/at-spi2-core --disable-xevie
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/atk/PKGBUILD b/gnome-unstable/atk/PKGBUILD
new file mode 100644
index 000000000..65fdf0298
--- /dev/null
+++ b/gnome-unstable/atk/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 109673 2011-02-11 18:32:19Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=atk
+pkgver=1.33.6
+pkgrel=1
+pkgdesc="A library providing a set of interfaces for accessibility"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('glib2')
+makedepends=('pkgconfig' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+url='http://www.gtk.org/'
+sha256sums=('e61c9a7bb2605a6ba698285f5593590c90818592f3d122101b9d42697fd2b0b6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/atkmm/PKGBUILD b/gnome-unstable/atkmm/PKGBUILD
new file mode 100644
index 000000000..8c519045e
--- /dev/null
+++ b/gnome-unstable/atkmm/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 79583 2010-05-04 15:21:15Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgbase=atkmm
+pkgname=(atkmm atkmm-docs)
+pkgver=2.22.4
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('atk' 'glibmm' 'glibmm-docs' 'libsigc++')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.22/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('c47ac8866fd0be695b6ba54a7cda5ab94676295ec5b2c22bd159bb8212aca438')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_atkmm() {
+ pkgdesc="C++ bindings for atk"
+ depends=('atk' 'glibmm' 'libsigc++')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+ make DESTDIR="${pkgdir}" install
+}
+
+package_atkmm-docs() {
+ pkgdesc="Developer documentation for atkmm"
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C doc DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/avahi/ChangeLog b/gnome-unstable/avahi/ChangeLog
new file mode 100644
index 000000000..57984a3b2
--- /dev/null
+++ b/gnome-unstable/avahi/ChangeLog
@@ -0,0 +1,17 @@
+
+2009-04-23 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 0.6.25
+
+2009-03-21 Eric Belanger <eric@archlinux.org>
+
+ * Added optdepends for avahi-discover (close FS#11250)
+
+2009-01-04 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 0.6.24
+
+2008-07-22 Douglas Soares de Andrade <douglas@archlinux.org>
+
+ * Updated for i686: 0.6.23
+
diff --git a/gnome-unstable/avahi/PKGBUILD b/gnome-unstable/avahi/PKGBUILD
new file mode 100644
index 000000000..91634de32
--- /dev/null
+++ b/gnome-unstable/avahi/PKGBUILD
@@ -0,0 +1,80 @@
+# $Id: PKGBUILD 113566 2011-03-09 18:25:47Z bisson $
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=avahi
+pkgver=0.6.29
+pkgrel=2
+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=avahi.install
+conflicts=('howl' 'mdnsresponder')
+provides=('howl' 'mdnsresponder')
+replaces=('howl' 'mdnsresponder')
+options=('!libtool')
+source=(http://www.avahi.org/download/avahi-${pkgver}.tar.gz
+ avahi-daemon-dbus.patch
+ gnome-nettool.png)
+sha1sums=('af13ae6fdb3cd61b2eafa25a108773156d88b362'
+ '41e9f23efa0b5a5f7b0f14a86cfb0677ece84c61'
+ 'cf56387c88aed246b9f435efc182ef44de4d52f3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ sed -i 's/netdev/network/g' avahi-daemon/avahi-dbus.conf
+ patch -Np0 -i "${srcdir}/avahi-daemon-dbus.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
+
+ # howl and mdnsresponder compatability
+ cd "${pkgdir}"/usr/include
+ ln -s avahi-compat-libdns_sd/dns_sd.h dns_sd.h
+ ln -s avahi-compat-howl howl
+ cd "${pkgdir}"/usr/lib/pkgconfig
+ ln -s avahi-compat-howl.pc howl.pc
+
+ sed -i '1c #!/usr/bin/python2' "$pkgdir"/usr/bin/avahi-{bookmarks,discover}
+
+ install -D -m 644 "${srcdir}"/gnome-nettool.png "${pkgdir}"/usr/share/pixmaps/gnome-nettool.png
+}
diff --git a/gnome-unstable/avahi/avahi-daemon-dbus.patch b/gnome-unstable/avahi/avahi-daemon-dbus.patch
new file mode 100644
index 000000000..a168f0387
--- /dev/null
+++ b/gnome-unstable/avahi/avahi-daemon-dbus.patch
@@ -0,0 +1,11 @@
+--- initscript/archlinux/avahi-daemon.in 2010-08-17 22:23:46.510293144 +0200
++++ initscript/archlinux/avahi-daemon.in 2010-08-17 22:46:58.110163026 +0200
+@@ -33,6 +35,8 @@
+
+ case "$1" in
+ start)
++ ck_daemon dbus && /etc/rc.d/dbus start
++ modprobe capability &> /dev/null
+ stat_busy "Starting $DESC"
+ $DAEMON -D > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
diff --git a/gnome-unstable/avahi/avahi.install b/gnome-unstable/avahi/avahi.install
new file mode 100644
index 000000000..7c75c3dd4
--- /dev/null
+++ b/gnome-unstable/avahi/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/gnome-unstable/avahi/gnome-nettool.png b/gnome-unstable/avahi/gnome-nettool.png
new file mode 100644
index 000000000..227d0678a
--- /dev/null
+++ b/gnome-unstable/avahi/gnome-nettool.png
Binary files differ
diff --git a/gnome-unstable/brasero/PKGBUILD b/gnome-unstable/brasero/PKGBUILD
new file mode 100644
index 000000000..943a02bbc
--- /dev/null
+++ b/gnome-unstable/brasero/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 116730 2011-03-25 15:33:26Z ibiru $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=brasero
+pkgver=2.91.93
+pkgrel=1
+pkgdesc="A disc burning application for Gnome"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/projects/brasero"
+license=('GPL')
+options=('!libtool' '!emptydirs')
+depends=('gstreamer0.10-base-plugins' 'totem-plparser' 'cdrkit' 'cdrdao' 'desktop-file-utils' 'hicolor-icon-theme' 'shared-mime-info' 'libcanberra' 'dvd+rw-tools' 'dconf')
+makedepends=('gtk-doc' 'intltool' 'libburn' 'libisofs' 'nautilus' 'gobject-introspection' 'gconf')
+optdepends=('libburn: alternative back-end'
+ 'libisofs: libburn back-end'
+ 'dvdauthor: video project'
+ 'gstreamer0.10-bad-plugins: video project'
+ 'vcdimager: video project')
+replaces=('nautilus-cd-burner')
+install=brasero.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('911c86a8ebba240881fbb7e1f125e4c1400c7b655ee4f2f9fa1a1227e05af5fc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-caches \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/gnome-unstable/brasero/brasero.install b/gnome-unstable/brasero/brasero.install
new file mode 100644
index 000000000..b6c57055e
--- /dev/null
+++ b/gnome-unstable/brasero/brasero.install
@@ -0,0 +1,14 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+ update-mime-database usr/share/mime > /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/cairomm/PKGBUILD b/gnome-unstable/cairomm/PKGBUILD
new file mode 100644
index 000000000..0acf34868
--- /dev/null
+++ b/gnome-unstable/cairomm/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 109789 2011-02-12 19:30:52Z ibiru $
+# Maintainer: Kevin <kevin@archlinux.org>
+# Contributor: criminy <criminy@gmail.com>
+
+pkgname=cairomm
+pkgver=1.9.8
+pkgrel=1
+pkgdesc="C++ bindings to Cairo vector graphics library"
+arch=('i686' 'x86_64')
+url="http://www.cairographics.org"
+license=('LGPL' 'MPL')
+depends=('cairo' 'libsigc++')
+makedepends=('pkgconfig')
+source=(http://www.cairographics.org/releases/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool' '!emptydirs')
+md5sums=('6d5ce1138dbb09c58038ab6f766d5e88')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/cheese/PKGBUILD b/gnome-unstable/cheese/PKGBUILD
new file mode 100644
index 000000000..b7dfeffed
--- /dev/null
+++ b/gnome-unstable/cheese/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 116759 2011-03-25 20:26:22Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=cheese
+pkgver=2.91.93
+pkgrel=1
+pkgdesc="Use your webcam to take photos and videos, apply fancy special effects and share the fun with others"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gnome-desktop' 'gtk3' 'libcanberra' 'librsvg' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'clutter-gst'
+ 'clutter-gtk' 'mx' 'libgee' 'gnome-video-effects' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'gnome-doc-utils' 'intltool' 'gobject-introspection')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org/projects/cheese/"
+install=cheese.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.91/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('f956ec749d26e1f9594ebe3d056d9fd046dd5181718b03d87513a9ab01baa6a0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --disable-static --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/cheese/cheese.install b/gnome-unstable/cheese/cheese.install
new file mode 100644
index 000000000..c042fba42
--- /dev/null
+++ b/gnome-unstable/cheese/cheese.install
@@ -0,0 +1,20 @@
+pkgname=cheese
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/$pkgname.schemas ]; then
+ usr/sbin/gconfpkg --uninstall $pkgname
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/clutter-gst/PKGBUILD b/gnome-unstable/clutter-gst/PKGBUILD
new file mode 100644
index 000000000..4499ca632
--- /dev/null
+++ b/gnome-unstable/clutter-gst/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 109705 2011-02-11 20:56:09Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=clutter-gst
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="GStreamer bindings for clutter"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('clutter' 'gstreamer0.10-base')
+makedepends=('gobject-introspection' 'gtk-doc')
+options=('!libtool')
+source=(http://clutter-project.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('ae6ec048b570157130e9f9069f2495caf0da9eefa8d7f3b1789f3346fb16f696')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/clutter-gtk/PKGBUILD b/gnome-unstable/clutter-gtk/PKGBUILD
new file mode 100644
index 000000000..e3664f0ab
--- /dev/null
+++ b/gnome-unstable/clutter-gtk/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 109702 2011-02-11 20:46:33Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=clutter-gtk
+pkgver=0.91.8
+pkgrel=1
+pkgdesc="GTK clutter widget"
+arch=('i686' 'x86_64')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('clutter' 'gtk3')
+makedepends=('gobject-introspection' 'gtk-doc')
+source=(http://www.clutter-project.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1516ac98b9f0436d7806f02153810fae31f961446311e06805f574ac1aaa969e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/clutter-gtk2/PKGBUILD b/gnome-unstable/clutter-gtk2/PKGBUILD
new file mode 100644
index 000000000..3b6d7c4f8
--- /dev/null
+++ b/gnome-unstable/clutter-gtk2/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 113313 2011-03-08 12:29:48Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=clutter-gtk2
+_pkgbasename=clutter-gtk
+pkgver=0.10.8
+pkgrel=1
+pkgdesc="GTK clutter widget"
+arch=('i686' 'x86_64')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('clutter' 'gtk2')
+makedepends=('gobject-introspection' 'gtk-doc')
+source=(http://www.clutter-project.org/sources/${_pkgbasename}/${pkgver%.*}/${_pkgbasename}-${pkgver}.tar.bz2
+ gir.patch)
+sha256sums=('7867f951568871d9f68cbe8a3644fd53d2138f725b7ba61ffc0053eb64e80814'
+ 'a7bb2e41b155a293fef3a58f9d0486788564a5da9373b00cc5209bdbdcb1ec66')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "$srcdir/gir.patch"
+ autoreconf -i
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -r "$pkgdir/usr/share/gtk-doc"
+}
diff --git a/gnome-unstable/clutter-gtk2/gir.patch b/gnome-unstable/clutter-gtk2/gir.patch
new file mode 100644
index 000000000..81b56f3a1
--- /dev/null
+++ b/gnome-unstable/clutter-gtk2/gir.patch
@@ -0,0 +1,39 @@
+From 4de105a2bbd201c8e60f3e8777794a4cd532afdc Mon Sep 17 00:00:00 2001
+From: Emmanuele Bassi <ebassi@linux.intel.com>
+Date: Tue, 28 Sep 2010 13:52:25 +0000
+Subject: build: Add common CFLAGS to the introspection scanner
+
+---
+diff --git a/clutter-gtk/Makefile.am b/clutter-gtk/Makefile.am
+index 6e267b4..cec5cce 100644
+--- a/clutter-gtk/Makefile.am
++++ b/clutter-gtk/Makefile.am
+@@ -15,6 +15,8 @@ AM_CPPFLAGS = \
+ -DCLUTTER_DISABLE_DEPRECATED \
+ $(CLUTTER_GTK_DEBUG_CFLAGS)
+
++common_cflags = $(CLUTTER_CFLAGS) $(GTK_CFLAGS)
++
+ # please, keep these lists sorted alphabetically
+ sources_c = \
+ $(srcdir)/gtk-clutter-embed.c \
+@@ -36,7 +38,7 @@ lib_LTLIBRARIES = libclutter-gtk-@CLUTTER_GTK_API_VERSION@.la
+ libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_SOURCES = $(sources_c)
+ libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LIBADD = $(CLUTTER_LIBS) $(GTK_LIBS)
+ libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_LDFLAGS = $(CLUTTER_LT_LDFLAGS)
+-libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_CFLAGS = $(MAINTAINER_CFLAGS) $(GTK_CFLAGS) $(CLUTTER_CFLAGS)
++libclutter_gtk_@CLUTTER_GTK_API_VERSION@_la_CFLAGS = $(common_cflags) $(MAINTAINER_CFLAGS)
+
+ cluttergtkheadersdir = $(includedir)/clutter-1.0/clutter-gtk
+ cluttergtkheaders_HEADERS = $(sources_h) $(srcdir)/clutter-gtk.h
+@@ -48,7 +50,7 @@ GtkClutter-@CLUTTER_GTK_API_VERSION@.gir: $(INTROSPECTION_SCANNER) Makefile libc
+ $(AM_V_GEN)$(INTROSPECTION_SCANNER) -v \
+ --namespace GtkClutter --nsversion=@CLUTTER_GTK_API_VERSION@ \
+ --strip-prefix=GtkClutter \
+- $(INCLUDES) $(AM_CPPFLAGS) \
++ $(INCLUDES) $(AM_CPPFLAGS) $(common_cflags) \
+ --add-include-path=$(srcdir) --add-include=path=. \
+ --include=Clutter-1.0 \
+ --include=GdkPixbuf-2.0 \
+--
+cgit v0.8.3.1-30-gff3a
diff --git a/gnome-unstable/clutter/PKGBUILD b/gnome-unstable/clutter/PKGBUILD
new file mode 100644
index 000000000..03a2e3994
--- /dev/null
+++ b/gnome-unstable/clutter/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 117665 2011-04-04 15:15:13Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=clutter
+pkgver=1.6.12
+pkgrel=1
+pkgdesc="A GObject based library for creating fast, visually rich graphical user interfaces"
+arch=('i686' 'x86_64')
+url="http://clutter-project.org/"
+options=('!libtool')
+license=('LGPL')
+depends=('gdk-pixbuf2' 'json-glib' 'atk' 'pango' 'mesa' 'libxcomposite' 'libxi')
+makedepends=('gobject-introspection' 'gtk-doc')
+source=(http://www.clutter-project.org/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('21c3eb0633f839a223192dbc26aaf924bed98caad302ee0bb3ee2b067d09462d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/dconf/PKGBUILD b/gnome-unstable/dconf/PKGBUILD
new file mode 100644
index 000000000..89972bfb7
--- /dev/null
+++ b/gnome-unstable/dconf/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116096 2011-03-22 18:35:51Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=dconf
+pkgver=0.7.3
+pkgrel=1
+pkgdesc="A low-level configuration system."
+arch=(i686 x86_64)
+url="http://live.gnome.org/dconf"
+license=('LGPL2.1')
+depends=('glib2')
+makedepends=('vala' 'gobject-introspection' 'gtk3')
+optdepends=('gtk3: for dconf-editor')
+install=dconf.install
+source=(http://download.gnome.org/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('84efc95cb62b6637b2131e110ff447908be739c2185d69bebb300293b561dfd9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/dconf
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/dconf/dconf.install b/gnome-unstable/dconf/dconf.install
new file mode 100644
index 000000000..5a87df82f
--- /dev/null
+++ b/gnome-unstable/dconf/dconf.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
+
+post_upgrade(){
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/devhelp/PKGBUILD b/gnome-unstable/devhelp/PKGBUILD
new file mode 100644
index 000000000..cecb70ef8
--- /dev/null
+++ b/gnome-unstable/devhelp/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117678 2011-04-04 16:09:16Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgname=devhelp
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="API documentation browser for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://live.gnome.org/devhelp/"
+depends=('gconf' 'libwebkit3' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'python2')
+options=('!libtool' '!emptydirs')
+install=devhelp.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('e07094824bb655d8f2c2caa471aa97d2e0d705090d8b269bacc978cdc57e4a8d')
+
+build() {
+ cd "${srcdir}/devhelp-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/devhelp-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain devhelp ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/devhelp/devhelp.install b/gnome-unstable/devhelp/devhelp.install
new file mode 100644
index 000000000..4db5f6e5c
--- /dev/null
+++ b/gnome-unstable/devhelp/devhelp.install
@@ -0,0 +1,22 @@
+pkgname=devhelp
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/ekiga/PKGBUILD b/gnome-unstable/ekiga/PKGBUILD
new file mode 100644
index 000000000..5bc0f6c4e
--- /dev/null
+++ b/gnome-unstable/ekiga/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 112176 2011-03-04 10:45:51Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+
+pkgname=ekiga
+pkgver=3.3.0
+pkgrel=2
+pkgdesc="VOIP/Videoconferencing app with full SIP and H.323 support (GnomeMeeting expanded and renamed)"
+url="http://www.ekiga.org"
+license=(GPL)
+arch=(i686 x86_64)
+depends=('opal' 'boost-libs' 'libxv' 'libnotify' 'hicolor-icon-theme' 'avahi' 'gtk2')
+makedepends=('intltool' 'gnome-doc-utils' 'evolution-data-server' 'boost')
+optdepends=('evolution-data-server: Evolution integration')
+provides=('gnomemeeting')
+replaces=('gnomemeeting')
+options=(!emptydirs)
+groups=('gnome-extra')
+install=ekiga.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('3fb22704e44afebf4294632505fb7a13f3eccb152fcb5878e97aa556d9486d2c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-schemas-install \
+ --disable-scrollkeeper --enable-dbus
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain ekiga ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/ekiga/ekiga.install b/gnome-unstable/ekiga/ekiga.install
new file mode 100644
index 000000000..b1d76a4a3
--- /dev/null
+++ b/gnome-unstable/ekiga/ekiga.install
@@ -0,0 +1,22 @@
+pkgname=ekiga
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/empathy/PKGBUILD b/gnome-unstable/empathy/PKGBUILD
new file mode 100644
index 000000000..45a84941d
--- /dev/null
+++ b/gnome-unstable/empathy/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 117698 2011-04-04 16:37:19Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=empathy
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A GNOME instant messaging client using the Telepathy framework."
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Empathy"
+license=('GPL2')
+depends=('telepathy-glib' 'telepathy-mission-control' 'folks' 'telepathy-logger' 'telepathy-farsight' 'gnome-keyring' 'gnutls' 'evolution-data-server'
+ 'libcanberra' 'libnotify' 'enchant' 'iso-codes' 'libwebkit3' 'dconf' 'ca-certificates')
+makedepends=('intltool' 'gnome-doc-utils' 'nautilus-sendto' 'gnome-control-center')
+optdepends=('telepathy-gabble: XMPP/Jabber support'
+ 'telepathy-butterfly: MSN support'
+ 'telepathy-idle: IRC support'
+ 'telepathy-salut: Link-local XMPP support'
+ 'telepathy-sofiasip: SIP support'
+ 'telepathy-haze: libpurple support')
+options=('!libtool')
+groups=('gnome-extra')
+install=empathy.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e409d764805a4501f8c9efa44ffb1a398820d6928b825932baa5447bc628ed5c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/empathy \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/empathy/empathy.install b/gnome-unstable/empathy/empathy.install
new file mode 100644
index 000000000..63dd6b907
--- /dev/null
+++ b/gnome-unstable/empathy/empathy.install
@@ -0,0 +1,16 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ echo "To use Empathy you need to install at least one Telepathy connection manager."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/eog-plugins/PKGBUILD b/gnome-unstable/eog-plugins/PKGBUILD
new file mode 100644
index 000000000..62231711d
--- /dev/null
+++ b/gnome-unstable/eog-plugins/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 116276 2011-03-22 21:02:48Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=eog-plugins
+pkgver=2.91.90
+pkgrel=1
+pkgdesc="Plugins for Eye of Gnome"
+arch=('i686' 'x86_64')
+url="http://www.gnome.org/"
+license=('GPL2')
+depends=('eog' 'libpeas' 'libchamplain' 'libexif')
+makedepends=('intltool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.bz2)
+sha256sums=('efb0a40359e1a86639389705d900015a754ad570f141318c52a924a2a2e2748d')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/eog-plugins/eog-plugins.install b/gnome-unstable/eog-plugins/eog-plugins.install
new file mode 100644
index 000000000..24072f316
--- /dev/null
+++ b/gnome-unstable/eog-plugins/eog-plugins.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/eog/PKGBUILD b/gnome-unstable/eog/PKGBUILD
new file mode 100644
index 000000000..6a0c31433
--- /dev/null
+++ b/gnome-unstable/eog/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 116238 2011-03-22 20:34:48Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=eog
+pkgver=2.91.92
+pkgrel=1
+pkgdesc="Eye of Gnome: An image viewing and cataloging program"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gnome-desktop' 'libexif' 'lcms' 'desktop-file-utils' 'exempi'
+ 'dbus-glib' 'libpeas' 'librsvg' 'gnome-icon-theme')
+makedepends=('gtk-doc' 'intltool')
+install=eog.install
+groups=('gnome-extra')
+options=('!emptydirs' '!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('047119ac7152037acec3090f710e4a6f21e55103030805c44da6a46dcb275934')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # remove it from Xfce menu that ships its own thingy
+ echo "NotShowIn=XFCE" >> ${pkgdir}/usr/share/applications/eog.desktop
+}
diff --git a/gnome-unstable/eog/eog.install b/gnome-unstable/eog/eog.install
new file mode 100644
index 000000000..284b24b18
--- /dev/null
+++ b/gnome-unstable/eog/eog.install
@@ -0,0 +1,19 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall eog
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/epiphany-extensions/PKGBUILD b/gnome-unstable/epiphany-extensions/PKGBUILD
new file mode 100644
index 000000000..e03b356a5
--- /dev/null
+++ b/gnome-unstable/epiphany-extensions/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116475 2011-03-24 00:32:38Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany-extensions
+pkgver=2.91.92
+pkgrel=1
+url="http://www.gnome.org/projects/epiphany/"
+pkgdesc="Various extentions for the Epiphany web browser"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('epiphany' 'opensp' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils' 'intltool')
+options=('!libtool' '!emptydirs')
+install=epiphany-extensions.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('5c0e146a62a09fad660d9199de456ffa914c47530864308b07dcf65ca0d62a05')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/epiphany-extensions/epiphany-extensions.install b/gnome-unstable/epiphany-extensions/epiphany-extensions.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/gnome-unstable/epiphany-extensions/epiphany-extensions.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/epiphany/PKGBUILD b/gnome-unstable/epiphany/PKGBUILD
new file mode 100644
index 000000000..025ee5a82
--- /dev/null
+++ b/gnome-unstable/epiphany/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 116342 2011-03-22 22:23:16Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=epiphany
+pkgver=2.91.92
+pkgrel=1
+install=epiphany.install
+pkgdesc="A GNOME3 web browser based on the WebKit rendering engine."
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsoup-gnome' 'gsettings-desktop-schemas' 'libwebkit3' 'nss' 'iso-codes' 'dconf' 'gobject-introspection')
+makedepends=('intltool' 'networkmanager' 'gnome-doc-utils' 'startup-notification')
+options=('!libtool' '!emptydirs')
+groups=('gnome')
+url="http://www.gnome.org/projects/epiphany/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.91/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('16bfb56af1723db458aa3c9942218480407ed199e78dbba33af483bcf417db1c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-scrollkeeper \
+ --enable-network-manager
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/epiphany/epiphany.install b/gnome-unstable/epiphany/epiphany.install
new file mode 100644
index 000000000..00b1abb96
--- /dev/null
+++ b/gnome-unstable/epiphany/epiphany.install
@@ -0,0 +1,20 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/epiphany.schemas ]; then
+ usr/sbin/gconfpkg --uninstall epiphany
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/evince/PKGBUILD b/gnome-unstable/evince/PKGBUILD
new file mode 100644
index 000000000..de443295d
--- /dev/null
+++ b/gnome-unstable/evince/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 117852 2011-04-04 20:13:46Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evince
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Simply a document viewer"
+url="http://projects.gnome.org/evince/"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libspectre' 'gsfonts' 'poppler-glib' 'djvulibre' 'gnome-icon-theme'
+ 't1lib' 'libgnome-keyring' 'desktop-file-utils' 'dconf')
+makedepends=('gnome-doc-utils' 'nautilus' 'texlive-bin' 'intltool' 'gobject-introspection')
+optdepends=('texlive-bin: DVI support')
+groups=('gnome-extra')
+install=evince.install
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('7c994a94200114ea7077d3348a03cbbad01c819ece2ec24b436b16e04386291b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/evince \
+ --disable-static --enable-nautilus \
+ --enable-pdf --enable-tiff \
+ --enable-djvu --enable-dvi \
+ --enable-t1lib --enable-comics \
+ --disable-scrollkeeper --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/evince/evince.install b/gnome-unstable/evince/evince.install
new file mode 100644
index 000000000..9643a9ba0
--- /dev/null
+++ b/gnome-unstable/evince/evince.install
@@ -0,0 +1,19 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall evince
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/evolution-data-server/PKGBUILD b/gnome-unstable/evolution-data-server/PKGBUILD
new file mode 100644
index 000000000..26a6d4115
--- /dev/null
+++ b/gnome-unstable/evolution-data-server/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117543 2011-04-04 10:30:17Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-data-server
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Central location for addressbook and calendar storage in the GNOME Desktop"
+arch=('i686' 'x86_64')
+depends=('libsoup' 'nss' 'libgnome-keyring' 'heimdal' 'libgweather' 'libical' 'db' 'libgdata')
+makedepends=('intltool' 'gperf' 'gobject-introspection')
+options=('!libtool')
+url="http://www.gnome.org"
+license=('GPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2fa5d11dffa18e7161db35237aed46476a58e20ef895f74455f01e36484c063f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --with-openldap=yes \
+ --libexecdir=/usr/lib/evolution-data-server \
+ --with-krb5=/usr --with-libdb=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/evolution-exchange/PKGBUILD b/gnome-unstable/evolution-exchange/PKGBUILD
new file mode 100644
index 000000000..45e4313b1
--- /dev/null
+++ b/gnome-unstable/evolution-exchange/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117572 2011-04-04 11:16:57Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution-exchange
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Ximian Connector Exchange plugin for Evolution"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.ximian.com"
+depends=('evolution-data-server' 'gtkhtml4' 'gnome-desktop' 'libunique3')
+makedepends=('intltool' 'evolution')
+options=('!libtool' '!emptydirs')
+install=evolution-exchange.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('841f4edc16979724d2b42210e422f24698aea406e3450df9db2a84fffd8febdb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/evolution --disable-static \
+ --with-libdb=/usr --with-krb5=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain evolution-exchange-3.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/evolution-exchange/evolution-exchange.install b/gnome-unstable/evolution-exchange/evolution-exchange.install
new file mode 100644
index 000000000..1179887f9
--- /dev/null
+++ b/gnome-unstable/evolution-exchange/evolution-exchange.install
@@ -0,0 +1,17 @@
+pkgname=evolution-exchange
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/gnome-unstable/evolution/PKGBUILD b/gnome-unstable/evolution/PKGBUILD
new file mode 100644
index 000000000..c150bb950
--- /dev/null
+++ b/gnome-unstable/evolution/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 117567 2011-04-04 11:05:37Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=evolution
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Integrated Workgroup and Personal Information Management for Gnome"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gnome-desktop' 'evolution-data-server' 'gtkhtml4' 'libcanberra' 'libsm' 'gstreamer0.10' 'libunique3' 'libnotify' 'libpst' 'libytnef'
+ 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' 'gnome-doc-utils' 'networkmanager')
+optdepends=('bogofilter: possible junk filter plugin'
+ 'spamassassin: possible junk filter plugin')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+install=evolution.install
+url=http://www.gnome.org/projects/evolution/
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2969c999cf995dd434598a366ae9c51a43d119bfe36e3de40ad2f82832210957')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --disable-scrollkeeper \
+ --enable-nss=yes \
+ --with-openldap=yes \
+ --enable-smime=yes \
+ --with-krb5=/usr \
+ --disable-image-inline
+ make
+ make -C plugins/tnef-attachments
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ make -C plugins/tnef-attachments DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain evolution-3.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/evolution/evolution.install b/gnome-unstable/evolution/evolution.install
new file mode 100644
index 000000000..a2c3aaa54
--- /dev/null
+++ b/gnome-unstable/evolution/evolution.install
@@ -0,0 +1,24 @@
+pkgname=evolution
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/farsight2/PKGBUILD b/gnome-unstable/farsight2/PKGBUILD
new file mode 100644
index 000000000..1ec025127
--- /dev/null
+++ b/gnome-unstable/farsight2/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 111877 2011-03-01 15:02:05Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: William Díaz <wdiaz@archlinux.us>
+
+pkgname=farsight2
+pkgver=0.0.26
+pkgrel=1
+pkgdesc="Audio/Video conference software for Instant Messengers"
+arch=('i686' 'x86_64')
+url="http://farsight.freedesktop.org"
+license=('LGPL')
+depends=('libnice' 'gstreamer0.10-base-plugins' 'gstreamer0.10-python' 'python2' 'pygobject')
+optdepends=('gstreamer0.10-good-plugins: for RTP plugin'
+ 'gstreamer0.10-bad-plugins: for RTP plugin')
+options=('!libtool' '!emptydirs')
+source=(http://farsight.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz)
+md5sums=('7756d910687dd2abd455fd68e83f125c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i -e 's#python-config#python2-config#' python/Makefile.in
+ ./configure --prefix=/usr \
+ --with-package-name='Arch Linux farsight2 package' \
+ --with-package-origin='http://archlinux.org' \
+ --disable-static \
+ --disable-valgrind \
+ --disable-debug
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/gnome-unstable/file-roller/PKGBUILD b/gnome-unstable/file-roller/PKGBUILD
new file mode 100644
index 000000000..903630f8c
--- /dev/null
+++ b/gnome-unstable/file-roller/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 117857 2011-04-04 20:20:23Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=file-roller
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Archive manipulator for GNOME2"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('desktop-file-utils' 'gtk3' 'hicolor-icon-theme' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils' 'pkg-config' 'nautilus' 'libsm')
+optdepends=('nautilus: nautilus shell extension'
+ 'unrar: the RAR uncompression program'
+ 'zip: creates PKZIP-compatible .zip files'
+ 'unzip: unpacks .zip archives'
+ 'p7zip: 7zip compression utility'
+ 'xz: managing LZMA and XZ compressed files'
+ 'arj: ARJ archiver'
+ 'unace: extraction tool for the proprietary ace archive format')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+install=file-roller.install
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('0c294d34493fc67577f70f73ada455f77634857e904b1dcaded59e3dcd092f8e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/file-roller \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/file-roller/file-roller.install b/gnome-unstable/file-roller/file-roller.install
new file mode 100644
index 000000000..10a148241
--- /dev/null
+++ b/gnome-unstable/file-roller/file-roller.install
@@ -0,0 +1,22 @@
+pkgname=file-roller
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/folks/PKGBUILD b/gnome-unstable/folks/PKGBUILD
new file mode 100644
index 000000000..99e939541
--- /dev/null
+++ b/gnome-unstable/folks/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 116448 2011-03-23 21:53:28Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=folks
+pkgver=0.4.2
+pkgrel=1
+pkgdesc="Library to aggregates people into metacontacts "
+arch=(i686 x86_64)
+url="http://telepathy.freedesktop.org/wiki/Folks"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libgee' 'libxml2')
+makedepends=('gobject-introspection' 'vala' 'intltool')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.4/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('269426df3896c07581067d3ead6aa2669c5895cfd3568e9e83abda5016b08e54')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/gcalctool/PKGBUILD b/gnome-unstable/gcalctool/PKGBUILD
new file mode 100644
index 000000000..ecc313858
--- /dev/null
+++ b/gnome-unstable/gcalctool/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117557 2011-04-04 10:43:54Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gcalctool
+pkgver=6.0.0
+pkgrel=1
+pkgdesc="GNOME Scientific calculator"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk3' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils')
+groups=('gnome-extra')
+options=(!emptydirs)
+url="http://www.gnome.org"
+install=gcalctool.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('efada505801df4fc046ef22e9786d9ba535935d07e87f45f5a10f7624836c036')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-schemas-compile \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gcalctool/gcalctool.install b/gnome-unstable/gcalctool/gcalctool.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/gnome-unstable/gcalctool/gcalctool.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/gconf-editor/PKGBUILD b/gnome-unstable/gconf-editor/PKGBUILD
new file mode 100644
index 000000000..d6fb91c69
--- /dev/null
+++ b/gnome-unstable/gconf-editor/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117817 2011-04-04 18:08:43Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gconf-editor
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Graphical gconf registry editor"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gconf' 'hicolor-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'gnome-doc-utils')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+options=(!emptydirs)
+install=gconf-editor.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('184e17416c2dd927ccb3a9b435d86fbe4b654316b91a6db724a3fd447a9fae60')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gconf-editor ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gconf-editor/gconf-editor.install b/gnome-unstable/gconf-editor/gconf-editor.install
new file mode 100644
index 000000000..307eaa047
--- /dev/null
+++ b/gnome-unstable/gconf-editor/gconf-editor.install
@@ -0,0 +1,22 @@
+pkgname=gconf-editor
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gconf/01_xml-gettext-domain.patch b/gnome-unstable/gconf/01_xml-gettext-domain.patch
new file mode 100644
index 000000000..d1323f61f
--- /dev/null
+++ b/gnome-unstable/gconf/01_xml-gettext-domain.patch
@@ -0,0 +1,362 @@
+# Description: Support calling gettext at runtime and putting the gettext domain into the .schemas file instead of replicating translations in /usr/share/gconf/schemas/*.schemas *and* /var/lib/gconf/defaults/%gconf-tree-$LANG.xml. This saves in the order of 90 MB uncompressed/10 MB compressed on hard disks.
+# Ubuntu: https://bugs.launchpad.net/bugs/123025
+# Upstream: http://bugzilla.gnome.org/show_bug.cgi?id=568845
+--- GConf-2.26.0/backends/markup-tree.c.gettext 2009-04-26 23:33:05.258484987 -0400
++++ GConf-2.26.0/backends/markup-tree.c 2009-04-26 23:34:25.026700526 -0400
+@@ -52,6 +52,7 @@ struct _MarkupEntry
+ char *schema_name;
+ char *mod_user;
+ GTime mod_time;
++ const char *gettext_domain;
+ };
+
+ static LocalSchemaInfo* local_schema_info_new (void);
+@@ -1593,6 +1594,8 @@ markup_entry_set_value (MarkupEntry
+ gconf_schema_get_type (schema));
+ gconf_schema_set_owner (current_schema,
+ gconf_schema_get_owner (schema));
++ gconf_schema_set_gettext_domain (current_schema,
++ gconf_schema_get_gettext_domain (schema));
+ }
+
+ /* Update mod time */
+@@ -1805,6 +1808,8 @@ markup_entry_get_value (MarkupEntry *ent
+ else if (c_local_schema && c_local_schema->long_desc)
+ gconf_schema_set_long_desc (schema, c_local_schema->long_desc);
+
++ gconf_schema_set_gettext_domain (schema, entry->gettext_domain);
++
+ return retval;
+ }
+ }
+@@ -2339,8 +2344,9 @@ parse_value_element (GMarkupParseContext
+ const char *ltype;
+ const char *list_type;
+ const char *owner;
++
+ GConfValueType vtype;
+- const char *dummy1, *dummy2, *dummy3, *dummy4;
++ const char *dummy1, *dummy2, *dummy3, *dummy4, *dummy5;
+
+ #if 0
+ g_assert (ELEMENT_IS ("entry") ||
+@@ -2377,6 +2383,7 @@ parse_value_element (GMarkupParseContext
+ "muser", &dummy2,
+ "mtime", &dummy3,
+ "schema", &dummy4,
++ "gettext_domain", &dummy5,
+
+ NULL))
+ return;
+@@ -2683,6 +2690,7 @@ parse_entry_element (GMarkupParseContext
+ const char *mtime;
+ const char *schema;
+ const char *type;
++ const char *gettext_domain;
+ const char *dummy1, *dummy2, *dummy3, *dummy4;
+ const char *dummy5, *dummy6, *dummy7;
+ GConfValue *value;
+@@ -2693,6 +2701,7 @@ parse_entry_element (GMarkupParseContext
+ mtime = NULL;
+ schema = NULL;
+ type = NULL;
++ gettext_domain = NULL;
+
+ if (!locate_attributes (context, element_name, attribute_names, attribute_values,
+ error,
+@@ -2701,6 +2710,7 @@ parse_entry_element (GMarkupParseContext
+ "mtime", &mtime,
+ "schema", &schema,
+ "type", &type,
++ "gettext_domain", &gettext_domain,
+
+ /* These are allowed but we don't use them until
+ * parse_value_element
+@@ -2768,6 +2778,9 @@ parse_entry_element (GMarkupParseContext
+ */
+ if (schema)
+ entry->schema_name = g_strdup (schema);
++
++ if (gettext_domain)
++ entry->gettext_domain = g_intern_string (gettext_domain);
+ }
+ else
+ {
+@@ -3716,6 +3729,7 @@ write_value_element (GConfValue *value,
+ GConfSchema *schema;
+ GConfValueType stype;
+ const char *owner;
++ const char *gettext_domain;
+
+ schema = gconf_value_get_schema (value);
+
+@@ -3741,6 +3755,23 @@ write_value_element (GConfValue *value,
+
+ g_free (s);
+ }
++
++ gettext_domain = gconf_schema_get_gettext_domain (schema);
++
++ if (gettext_domain)
++ {
++ char *s;
++
++ s = g_markup_escape_text (gettext_domain, -1);
++
++ if (fprintf (f, " gettext_domain=\"%s\"", s) < 0)
++ {
++ g_free (s);
++ return FALSE;
++ }
++
++ g_free (s);
++ }
+
+ if (stype == GCONF_VALUE_LIST)
+ {
+diff -up GConf-2.26.0/doc/gconf-1.0.dtd.gettext GConf-2.26.0/doc/gconf-1.0.dtd
+--- GConf-2.26.0/doc/gconf-1.0.dtd.gettext 2009-04-26 23:33:17.240736103 -0400
++++ GConf-2.26.0/doc/gconf-1.0.dtd 2009-04-26 23:34:25.027700384 -0400
+@@ -7,7 +7,7 @@
+ <!-- A single schema. What I am trying to say is "this set of
+ elements, in any order". Duplicate elements (apart from <locale>) are
+ not allowed). -->
+-<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*)*>
++<!ELEMENT schema (key|applyto*|owner?|type|(list_type|(car_type,cdr_type))?|default?|locale*|gettext_domain?)*>
+
+ <!-- The key for this schema (e.g. /schemas/apps/foo/bar) -->
+ <!ELEMENT key (#PCDATA)>
+diff -up GConf-2.26.0/gconf/gconf-internals.c.gettext GConf-2.26.0/gconf/gconf-internals.c
+--- GConf-2.26.0/gconf/gconf-internals.c.gettext 2009-04-26 23:34:10.994700035 -0400
++++ GConf-2.26.0/gconf/gconf-internals.c 2009-04-26 23:34:53.767450191 -0400
+@@ -513,6 +513,7 @@ gconf_fill_corba_schema_from_gconf_schem
+ cs->short_desc = CORBA_string_dup (gconf_schema_get_short_desc (sc) ? gconf_schema_get_short_desc (sc) : "");
+ cs->long_desc = CORBA_string_dup (gconf_schema_get_long_desc (sc) ? gconf_schema_get_long_desc (sc) : "");
+ cs->owner = CORBA_string_dup (gconf_schema_get_owner (sc) ? gconf_schema_get_owner (sc) : "");
++ cs->gettext_domain = CORBA_string_dup (gconf_schema_get_gettext_domain (sc) ? gconf_schema_get_gettext_domain (sc) : "");
+
+ {
+ gchar* encoded;
+@@ -600,6 +601,14 @@ gconf_schema_from_corba_schema(const Con
+ gconf_schema_set_owner(sc, cs->owner);
+ }
+
++ if (*cs->gettext_domain != '\0')
++ {
++ if (!g_utf8_validate (cs->gettext_domain, -1, NULL))
++ gconf_log (GCL_ERR, _("Invalid UTF-8 in gettext domain for schema"));
++ else
++ gconf_schema_set_gettext_domain(sc, cs->gettext_domain);
++ }
++
+ {
+ GConfValue* val;
+
+diff -up GConf-2.26.0/gconf/gconf-schema.c.gettext GConf-2.26.0/gconf/gconf-schema.c
+--- GConf-2.26.0/gconf/gconf-schema.c.gettext 2009-04-26 23:33:26.787483545 -0400
++++ GConf-2.26.0/gconf/gconf-schema.c 2009-04-26 23:35:54.240450142 -0400
+@@ -32,9 +32,10 @@ typedef struct {
+ GConfValueType car_type; /* Pair car type of the described entry */
+ GConfValueType cdr_type; /* Pair cdr type of the described entry */
+ gchar* locale; /* Schema locale */
+- gchar* owner; /* Name of creating application */
++ const gchar* owner; /* Name of creating application */
+ gchar* short_desc; /* 40 char or less description, no newlines */
+ gchar* long_desc; /* could be a paragraph or so */
++ const gchar* gettext_domain; /* description gettext domain */
+ GConfValue* default_value; /* Default value of the key */
+ } GConfRealSchema;
+
+@@ -63,7 +64,6 @@ gconf_schema_free (GConfSchema* sc)
+ g_free (real->locale);
+ g_free (real->short_desc);
+ g_free (real->long_desc);
+- g_free (real->owner);
+
+ if (real->default_value)
+ gconf_value_free (real->default_value);
+@@ -91,7 +91,9 @@ gconf_schema_copy (const GConfSchema* sc
+
+ dest->long_desc = g_strdup (real->long_desc);
+
+- dest->owner = g_strdup (real->owner);
++ dest->gettext_domain = real->gettext_domain;
++
++ dest->owner = real->owner;
+
+ dest->default_value = real->default_value ? gconf_value_copy (real->default_value) : NULL;
+
+@@ -136,6 +138,17 @@ gconf_schema_set_locale (GConfSchema* sc
+ REAL_SCHEMA (sc)->locale = NULL;
+ }
+
++void
++gconf_schema_set_gettext_domain (GConfSchema* sc, const gchar* domain)
++{
++ g_return_if_fail (domain == NULL || g_utf8_validate (domain, -1, NULL));
++
++ if (domain)
++ REAL_SCHEMA (sc)->gettext_domain = g_intern_string (domain);
++ else
++ REAL_SCHEMA (sc)->gettext_domain = NULL;
++}
++
+ void
+ gconf_schema_set_short_desc (GConfSchema* sc, const gchar* desc)
+ {
+@@ -169,11 +182,8 @@ gconf_schema_set_owner (GConfSchema* sc,
+ {
+ g_return_if_fail (owner == NULL || g_utf8_validate (owner, -1, NULL));
+
+- if (REAL_SCHEMA (sc)->owner)
+- g_free (REAL_SCHEMA (sc)->owner);
+-
+ if (owner)
+- REAL_SCHEMA (sc)->owner = g_strdup (owner);
++ REAL_SCHEMA (sc)->owner = g_intern_string (owner);
+ else
+ REAL_SCHEMA (sc)->owner = NULL;
+ }
+@@ -228,6 +238,14 @@ gconf_schema_validate (const GConfSchema
+ return FALSE;
+ }
+
++ if (real->gettext_domain && !g_utf8_validate (real->gettext_domain, -1, NULL))
++ {
++ g_set_error (err, GCONF_ERROR,
++ GCONF_ERROR_FAILED,
++ _("Schema contains invalid UTF-8"));
++ return FALSE;
++ }
++
+ if (real->owner && !g_utf8_validate (real->owner, -1, NULL))
+ {
+ g_set_error (err, GCONF_ERROR,
+@@ -299,11 +317,32 @@ gconf_schema_get_locale (const GConfSche
+ }
+
+ const char*
++gconf_schema_get_gettext_domain (const GConfSchema *schema)
++{
++ g_return_val_if_fail (schema != NULL, NULL);
++
++ return REAL_SCHEMA (schema)->gettext_domain;
++}
++
++static inline const char *
++schema_translate (const GConfSchema *schema,
++ const char *string)
++{
++ if (REAL_SCHEMA (schema)->gettext_domain)
++ {
++ bind_textdomain_codeset (REAL_SCHEMA (schema)->gettext_domain, "UTF-8");
++ return g_dgettext(REAL_SCHEMA (schema)->gettext_domain, string);
++ }
++ else
++ return string;
++}
++
++const char*
+ gconf_schema_get_short_desc (const GConfSchema *schema)
+ {
+ g_return_val_if_fail (schema != NULL, NULL);
+
+- return REAL_SCHEMA (schema)->short_desc;
++ return schema_translate (schema, REAL_SCHEMA (schema)->short_desc);
+ }
+
+ const char*
+@@ -311,7 +350,7 @@ gconf_schema_get_long_desc (const GConfS
+ {
+ g_return_val_if_fail (schema != NULL, NULL);
+
+- return REAL_SCHEMA (schema)->long_desc;
++ return schema_translate (schema, REAL_SCHEMA (schema)->long_desc);
+ }
+
+ const char*
+diff -up GConf-2.26.0/gconf/gconf-schema.h.gettext GConf-2.26.0/gconf/gconf-schema.h
+--- GConf-2.26.0/gconf/gconf-schema.h.gettext 2009-04-26 23:33:33.979744088 -0400
++++ GConf-2.26.0/gconf/gconf-schema.h 2009-04-26 23:34:25.030737043 -0400
+@@ -48,6 +48,8 @@ void gconf_schema_set_cdr_type
+ GConfValueType type);
+ void gconf_schema_set_locale (GConfSchema *sc,
+ const gchar *locale);
++void gconf_schema_set_gettext_domain (GConfSchema *sc,
++ const gchar *domain);
+ void gconf_schema_set_short_desc (GConfSchema *sc,
+ const gchar *desc);
+ void gconf_schema_set_long_desc (GConfSchema *sc,
+@@ -65,6 +67,7 @@ GConfValueType gconf_schema_get_list_typ
+ GConfValueType gconf_schema_get_car_type (const GConfSchema *schema);
+ GConfValueType gconf_schema_get_cdr_type (const GConfSchema *schema);
+ const char* gconf_schema_get_locale (const GConfSchema *schema);
++const char* gconf_schema_get_gettext_domain(const GConfSchema *schema);
+ const char* gconf_schema_get_short_desc (const GConfSchema *schema);
+ const char* gconf_schema_get_long_desc (const GConfSchema *schema);
+ const char* gconf_schema_get_owner (const GConfSchema *schema);
+diff -up GConf-2.26.0/gconf/gconftool.c.gettext GConf-2.26.0/gconf/gconftool.c
+--- GConf-2.26.0/gconf/gconftool.c.gettext 2009-04-26 23:33:41.907451190 -0400
++++ GConf-2.26.0/gconf/gconftool.c 2009-04-26 23:34:25.034736752 -0400
+@@ -3295,6 +3295,7 @@ struct _SchemaInfo {
+ GConfValueType cdr_type;
+ GConfValue* global_default;
+ GHashTable* hash;
++ gchar* gettext_domain;
+ };
+
+ static int
+@@ -3547,6 +3548,15 @@ extract_global_info(xmlNodePtr node,
+ else
+ g_printerr (_("WARNING: empty <applyto> node"));
+ }
++ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
++ {
++ tmp = (char *)xmlNodeGetContent(iter);
++ if (tmp)
++ {
++ info->gettext_domain = g_strdup(tmp);
++ xmlFree(tmp);
++ }
++ }
+ else
+ g_printerr (_("WARNING: node <%s> not understood below <schema>\n"),
+ iter->name);
+@@ -3636,6 +3646,9 @@ process_locale_info(xmlNodePtr node, Sch
+ if (info->owner != NULL)
+ gconf_schema_set_owner(schema, info->owner);
+
++ if (info->gettext_domain != NULL)
++ gconf_schema_set_gettext_domain(schema, info->gettext_domain);
++
+ xmlFree(name);
+
+ /* Locale-specific info */
+@@ -3765,6 +3778,7 @@ get_schema_from_xml(xmlNodePtr node, gch
+ info.apply_to = NULL;
+ info.owner = NULL;
+ info.global_default = NULL;
++ info.gettext_domain = NULL;
+ info.hash = g_hash_table_new(g_str_hash, g_str_equal);
+
+ extract_global_info(node, &info);
+@@ -3801,6 +3815,8 @@ get_schema_from_xml(xmlNodePtr node, gch
+ ; /* nothing */
+ else if (strcmp((char *)iter->name, "applyto") == 0)
+ ; /* nothing */
++ else if (strcmp((char *)iter->name, "gettext_domain") == 0)
++ ; /* nothing */
+ else if (strcmp((char *)iter->name, "locale") == 0)
+ {
+ process_locale_info(iter, &info);
+diff -up GConf-2.26.0/gconf/GConfX.idl.gettext GConf-2.26.0/gconf/GConfX.idl
+--- GConf-2.26.0/gconf/GConfX.idl.gettext 2009-04-26 23:33:58.457483190 -0400
++++ GConf-2.26.0/gconf/GConfX.idl 2009-04-26 23:34:53.764448732 -0400
+@@ -16,6 +16,7 @@ struct ConfigSchema {
+ string short_desc;
+ string long_desc;
+ string owner;
++ string gettext_domain;
+ // Work around lack of recursive data types
+ string encoded_default_value;
+ };
diff --git a/gnome-unstable/gconf/PKGBUILD b/gnome-unstable/gconf/PKGBUILD
new file mode 100644
index 000000000..401219689
--- /dev/null
+++ b/gnome-unstable/gconf/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 117612 2011-04-04 13:02:11Z ibiru $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gconf
+pkgver=2.32.2
+pkgrel=1
+pkgdesc="A configuration database system"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('orbit2' 'libxml2' 'polkit' 'libldap' 'dbus-glib' 'gtk3')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gobject-introspection')
+options=('!libtool')
+install=gconf.install
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/GConf/2.32/GConf-${pkgver}.tar.bz2
+ gconf-merge-schema
+ gconfpkg
+ gconf-reload.patch
+ 01_xml-gettext-domain.patch)
+sha256sums=('6bff392b9d1ca52502f0c6dac5506260800e43d72ca1fa77a4524af1a3cc1330'
+ 'ee6b6e6f4975dad13a8c45f1c1f0547a99373bdecdcd6604bfc12965c328a028'
+ 'bf1928718caa5df2b9e54a13cfd0f15a8fe0e09e86b84385ce023616a114e898'
+ '567b78d8b4b4bbcb77c5f134d57bc503c34867fcc6341c0b01716bcaa4a21694'
+ 'c883dec2b96978874a53700cfe7f26f24f8296767203e970bc6402b4b9945eb8')
+
+build() {
+ cd "${srcdir}/GConf-${pkgver}"
+ # Patch from fedora - reloads gconf after installing schemas
+ patch -Np1 -i "${srcdir}/gconf-reload.patch"
+ # http://bugzilla.gnome.org/show_bug.cgi?id=568845
+ patch -Np1 -i "${srcdir}/01_xml-gettext-domain.patch"
+
+ # Python2 fix
+ sed -i '1s|#!/usr/bin/env python$|&2|' gsettings/gsettings-schema-convert
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/GConf \
+ --disable-static --enable-defaults-service --with-gtk=3.0
+
+ make pkglibdir=/usr/lib/GConf
+}
+
+package() {
+ cd "${srcdir}/GConf-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/gconf/gconf.xml.system"
+ install -m755 "${srcdir}/gconf-merge-schema" "${pkgdir}/usr/bin/"
+ install -Dm755 "${srcdir}/gconfpkg" "${pkgdir}/usr/sbin/gconfpkg"
+}
diff --git a/gnome-unstable/gconf/gconf-merge-schema b/gnome-unstable/gconf/gconf-merge-schema
new file mode 100755
index 000000000..992c162e6
--- /dev/null
+++ b/gnome-unstable/gconf/gconf-merge-schema
@@ -0,0 +1,34 @@
+#!/bin/bash
+if [ ! "$1" -a ! "$2" ]; then
+ echo "Usage: $0 output.schemas [--domain gettextdomain] file1.schemas [file2.schemas [...]]"
+ exit 1
+fi
+
+OUTFILE="$1"
+DOMAIN=""
+shift
+
+if [ "$1" = "--domain" ]; then
+ shift
+ DOMAIN=$1
+ shift
+fi
+
+echo '<?xml version="1.0"?>' > "$OUTFILE"
+echo '<gconfschemafile><schemalist>' >> "$OUTFILE"
+
+while [ "$1" ]; do
+ if [ -f "$1" ]; then
+ sed -e '/<?xml/d' \
+ -e 's|<gconfschemafile>||g' \
+ -e 's|</gconfschemafile>||g' \
+ -e 's|<schemalist>||g' \
+ -e 's|</schemalist>||g' "$1" >> "$OUTFILE"
+ fi
+ shift
+done
+
+echo '</schemalist></gconfschemafile>' >> "$OUTFILE"
+if [ "$DOMAIN" != "" ]; then
+ sed -ri "s/^([[:space:]]*)(<locale name=\"C\">)/\1<gettext_domain>$DOMAIN<\/gettext_domain>\n\1\2/; /^[[:space:]]*<locale name=\"[^C]/,/^[[:space:]]*<\/locale>[[:space:]]*\$/ d; /^$/d; s/<\/schema>$/&\n/" "$OUTFILE"
+fi
diff --git a/gnome-unstable/gconf/gconf-reload.patch b/gnome-unstable/gconf/gconf-reload.patch
new file mode 100644
index 000000000..910f0dae4
--- /dev/null
+++ b/gnome-unstable/gconf/gconf-reload.patch
@@ -0,0 +1,20 @@
+--- GConf-2.16.0/gconf/gconftool.c.orig 2006-10-14 17:37:14.000000000 +0000
++++ GConf-2.16.0/gconf/gconftool.c 2006-10-14 17:39:27.000000000 +0000
+@@ -963,6 +963,8 @@ main (int argc, char** argv)
+
+ gconf_engine_unref (conf);
+
++ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
++
+ return retval;
+ }
+
+@@ -975,6 +977,8 @@ main (int argc, char** argv)
+
+ gconf_engine_unref (conf);
+
++ g_spawn_command_line_sync ("/usr/bin/killall -q -TERM " GCONF_SERVERDIR "/" GCONFD, NULL, NULL, NULL, NULL);
++
+ return retval;
+ }
+
diff --git a/gnome-unstable/gconf/gconf.install b/gnome-unstable/gconf/gconf.install
new file mode 100644
index 000000000..f7945d165
--- /dev/null
+++ b/gnome-unstable/gconf/gconf.install
@@ -0,0 +1,20 @@
+post_install() {
+ ldconfig -r .
+ chmod 755 etc/gconf/gconf.xml.system
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
+
+post_upgrade() {
+ ldconfig -r .
+ chmod 755 etc/gconf/gconf.xml.system
+ usr/bin/gio-querymodules usr/lib/gio/modules
+
+ PID=`pidof gconfd-2`
+ if [ ! -z "${PID}" ]; then
+ kill ${PID}
+ fi
+}
+
+post_remove() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
diff --git a/gnome-unstable/gconf/gconfpkg b/gnome-unstable/gconf/gconfpkg
new file mode 100755
index 000000000..72021e45e
--- /dev/null
+++ b/gnome-unstable/gconf/gconfpkg
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+usage() {
+cat << _EOF
+Usage:
+ gconfpkg [OPTION] [PACKAGE]
+
+ Help Options:
+ -?, --help Show help options
+
+ Application Options:
+ --install Install schemas for a given package
+ --uninstall Uninstall schemas for a given package
+
+_EOF
+}
+
+install() {
+ GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \
+ /usr/bin/gconftool-2 --makefile-install-rule /usr/share/gconf/schemas/${pkgname}.schemas >/dev/null
+}
+
+uninstall() {
+ if [ -f /usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=/usr/share/gconf/schemas/${pkgname}.schemas
+ elif [ -f /opt/gnome/share/gconf/schemas/${pkgname}.schemas ]; then
+ schemas=/opt/gnome/share/gconf/schemas/${pkgname}.schemas
+ else
+ schemas=`pacman -Ql ${pkgname} | grep 'gconf/schemas/.*schemas$' | awk '{ print $2 }'`
+ fi
+ GCONF_CONFIG_SOURCE=`/usr/bin/gconftool-2 --get-default-source` \
+ /usr/bin/gconftool-2 --makefile-uninstall-rule ${schemas} >/dev/null
+}
+
+if [ -z "$2" ]; then
+ usage
+else
+ pkgname="$2"
+ case "$1" in
+ --install)
+ install
+ ;;
+ --uninstall)
+ uninstall
+ ;;
+ *)
+ usage
+ ;;
+ esac
+fi
diff --git a/gnome-unstable/gdk-pixbuf2/PKGBUILD b/gnome-unstable/gdk-pixbuf2/PKGBUILD
new file mode 100644
index 000000000..032f69e7c
--- /dev/null
+++ b/gnome-unstable/gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 117317 2011-03-31 00:18:19Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gdk-pixbuf2
+pkgver=2.23.3
+pkgrel=1
+pkgdesc="An image loading library for gtk2"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2>=2.28.1' 'libpng' 'libtiff' 'libjpeg' 'libx11')
+makedepends=('gtk-doc' 'gobject-introspection')
+options=('!libtool')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.23/gdk-pixbuf-${pkgver}.tar.bz2)
+sha256sums=('9faba780151c02e13cb2029d512c975e9c41b98cd72de6d2cc50e4af10a5e76a')
+
+build() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ ./configure --prefix=/usr \
+ --without-libjasper \
+ --with-included-loaders=png
+ make
+}
+
+package() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/gdk-pixbuf2/gdk-pixbuf2.install b/gnome-unstable/gdk-pixbuf2/gdk-pixbuf2.install
new file mode 100644
index 000000000..1b35942cb
--- /dev/null
+++ b/gnome-unstable/gdk-pixbuf2/gdk-pixbuf2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
+}
diff --git a/gnome-unstable/gdl/PKGBUILD b/gnome-unstable/gdl/PKGBUILD
new file mode 100644
index 000000000..3dfe599ac
--- /dev/null
+++ b/gnome-unstable/gdl/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117816 2011-04-04 18:07:45Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gdl
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="GNOME Docking Library"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.gnome.org/"
+depends=('gtk3')
+makedepends=('pkgconfig' 'intltool' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2b84b1ff4d798920ff04ba1f89f2e20468d706d9f4aab19d03241f32b16bec96')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gdm/2.91_fix_external_program_directories.patch b/gnome-unstable/gdm/2.91_fix_external_program_directories.patch
new file mode 100644
index 000000000..912b5cdae
--- /dev/null
+++ b/gnome-unstable/gdm/2.91_fix_external_program_directories.patch
@@ -0,0 +1,48 @@
+diff -Nur gdm-2.91.91.orig/daemon/gdm-server.c gdm-2.91.91/daemon/gdm-server.c
+--- gdm-2.91.91.orig/daemon/gdm-server.c 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/daemon/gdm-server.c 2011-02-27 16:56:51.283347074 -0800
+@@ -131,7 +131,7 @@
+ g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
+
+ error = NULL;
+- command = g_strdup_printf (LIBEXECDIR "/ck-get-x11-display-device --display %s",
++ command = g_strdup_printf ("/usr/lib/ConsoleKit/ck-get-x11-display-device --display %s",
+ server->priv->display_name);
+
+ g_debug ("GdmServer: Running helper %s", command);
+diff -Nur gdm-2.91.91.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in gdm-2.91.91/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
+--- gdm-2.91.91.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/data/greeter-autostart/gnome-settings-daemon.desktop.in.in 2011-02-26 08:43:28.700009251 -0800
+@@ -1,8 +1,8 @@
+ [Desktop Entry]
+ Type=Application
+ _Name=GNOME Settings Daemon
+-TryExec=@LIBEXECDIR@/gnome-settings-daemon
+-Exec=@LIBEXECDIR@/gnome-settings-daemon
++TryExec=/usr/bin/gnome-settings-daemon
++Exec=/usr/bin/gnome-settings-daemon
+ OnlyShowIn=GNOME;
+ X-GNOME-Autostart-Phase=Initialization
+ X-GNOME-Autostart-Notify=true
+diff -Nur gdm-2.91.91.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in gdm-2.91.91/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
+--- gdm-2.91.91.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in 2011-02-26 08:44:06.810009153 -0800
+@@ -1,5 +1,5 @@
+ [Desktop Entry]
+ Type=Application
+ _Name=PolicyKit Authentication Agent
+-Exec=@LIBEXECDIR@/polkit-gnome-authentication-agent-1
++Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+ OnlyShowIn=GNOME;
+diff -Nur gdm-2.91.91.orig/gui/simple-chooser/gdm-chooser-session.c gdm-2.91.91/gui/simple-chooser/gdm-chooser-session.c
+--- gdm-2.91.91.orig/gui/simple-chooser/gdm-chooser-session.c 2011-02-17 19:27:53.000000000 -0800
++++ gdm-2.91.91/gui/simple-chooser/gdm-chooser-session.c 2011-02-26 08:45:01.946675918 -0800
+@@ -131,7 +131,7 @@
+ ret = FALSE;
+
+ error = NULL;
+- g_spawn_command_line_async (LIBEXECDIR "/gnome-settings-daemon", &error);
++ g_spawn_command_line_async ("/usr/bin/gnome-settings-daemon", &error);
+ if (error != NULL) {
+ g_warning ("Error starting settings daemon: %s", error->message);
+ g_error_free (error);
diff --git a/gnome-unstable/gdm/PKGBUILD b/gnome-unstable/gdm/PKGBUILD
new file mode 100644
index 000000000..298618f69
--- /dev/null
+++ b/gnome-unstable/gdm/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 117769 2011-04-04 17:48:05Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=gdm
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Gnome Display Manager (a reimplementation of xdm)"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+backup=('etc/pam.d/gdm' 'etc/pam.d/gdm-autologin' 'etc/gdm/custom.conf')
+groups=('gnome')
+options=('!libtool')
+depends=('libcanberra' 'libxklavier' 'tcp_wrappers' 'gnome-session' 'upower' 'accountsservice' 'consolekit')
+makedepends=('intltool' 'gnome-doc-utils' 'xorg-server')
+conflicts=('fast-user-switch-applet')
+replaces=('fast-user-switch-applet')
+install=gdm.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ 2.91_fix_external_program_directories.patch
+ gdm-vt-allocation-hack.patch
+ gdm.pam
+ gdm-autologin.pam
+ gdm
+ fix_crasher_with_gtk307.patch)
+sha256sums=('2d6443912272c0aa339a06b58d797cc11ce6b0854dadfcc027408f546da7aeff'
+ '92c5eb913b9556cffe9b5bb89e5c3435703e929addfb98145442f58af5d532c1'
+ '3c8b588d4af08d94dc93bcd5e4c2a983c3f4fbbbe40833bceac2a1df4f1e8215'
+ 'f1dfa4d88288d4b0a631a68a51b46c2da537bee8fe5a99f9f288c8ff75a50b19'
+ '3daff680ff6b7ea56f84f40843e46e72477c81e9e405028203c942af04d07ae5'
+ '272c08d8e8b50bf424d0705ac864d4c18c47ec4f6893b1af732c2efbc86c9550'
+ '6d08951919dcb1f928dd67c0b5a5c209b32464c2374ee7d2369ed8e914d541c9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/2.91_fix_external_program_directories.patch"
+ patch -Np1 -i "${srcdir}/gdm-vt-allocation-hack.patch"
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=646498
+ patch -Np1 -i "${srcdir}/fix_crasher_with_gtk307.patch"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gdm --localstatedir=/var --disable-static \
+ --with-at-spi-registryd-directory=/usr/lib/at-spi \
+ --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gdm ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -r "${pkgdir}/etc/gconf/schemas/"
+
+ install -m644 "${srcdir}/gdm.pam" "${pkgdir}/etc/pam.d/gdm"
+ install -m644 "${srcdir}/gdm-autologin.pam" "${pkgdir}/etc/pam.d/gdm-autologin"
+
+ install -m755 -d "${pkgdir}/etc/rc.d"
+ install -m755 "${srcdir}/gdm" "${pkgdir}/etc/rc.d/"
+
+ rmdir "${pkgdir}/var/gdm"
+ chmod 1770 "${pkgdir}/var/log/gdm"
+}
diff --git a/gnome-unstable/gdm/fix_crasher_with_gtk307.patch b/gnome-unstable/gdm/fix_crasher_with_gtk307.patch
new file mode 100644
index 000000000..3b8379ea3
--- /dev/null
+++ b/gnome-unstable/gdm/fix_crasher_with_gtk307.patch
@@ -0,0 +1,104 @@
+From 045c319f2655fc45c24951479eb9cd1e59792cef Mon Sep 17 00:00:00 2001
+From: Benjamin Otte <otte@redhat.com>
+Date: Sat, 2 Apr 2011 04:10:09 +0200
+Subject: [PATCH] simple-greeter: Don't request an invalid size
+
+GTK widgets must at all times report a size they can handle. So it is
+not allowed to return 0 when not realized, because then size allocations
+break when GTK uses this size for its widget.
+In this case, GTK uses the pre-realize size to determine the size it
+should request when creating the greeter window - chicken and egg so to
+say.
+
+This patch just uses the default monitor (I guess the root window's
+monitor is the default monitor?) for determining the login window size.
+
+One thing this patch doesn't do is add a call to gtk_widget_queue_resize()
+from the realize callback or from monitor-changing signals, though
+that's probably technically necessary.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=646498
+---
+ gui/simple-greeter/gdm-greeter-login-window.c | 28 +++++++++----------------
+ 1 files changed, 10 insertions(+), 18 deletions(-)
+
+diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c
+index abd6707..3ec9a09 100644
+--- a/gui/simple-greeter/gdm-greeter-login-window.c
++++ b/gui/simple-greeter/gdm-greeter-login-window.c
+@@ -1413,25 +1413,22 @@ gdm_greeter_login_window_get_preferred_width (GtkWidget *widget,
+ {
+ int monitor;
+ GdkScreen *screen;
++ GdkWindow *window;
+ GdkRectangle area;
+ GtkAllocation widget_allocation;
+ int min_size;
+ int nat_size;
+
+- min_size = 0;
+- nat_size = 0;
+-
+- if (!gtk_widget_get_realized (widget)) {
+- goto out;
+- }
+-
+ gtk_widget_get_preferred_width (gtk_bin_get_child (GTK_BIN (widget)),
+ &min_size,
+ &nat_size);
+
+ /* Make width be at least 33% screen width */
+ screen = gtk_widget_get_screen (widget);
+- monitor = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget));
++ window = gtk_widget_get_window (widget);
++ if (window == NULL)
++ window = gdk_screen_get_root_window (screen);
++ monitor = gdk_screen_get_monitor_at_window (screen, window);
+ gdk_screen_get_monitor_geometry (screen, monitor, &area);
+ min_size = MAX (min_size, .33 * area.width);
+ nat_size = MAX (nat_size, .33 * area.width);
+@@ -1442,7 +1439,6 @@ gdm_greeter_login_window_get_preferred_width (GtkWidget *widget,
+ min_size = MAX (min_size, widget_allocation.width);
+ nat_size = MAX (nat_size, widget_allocation.width);
+
+- out:
+ if (minimum_size)
+ *minimum_size = min_size;
+ if (natural_size)
+@@ -1456,29 +1452,25 @@ gdm_greeter_login_window_get_preferred_height (GtkWidget *widget,
+ {
+ int monitor;
+ GdkScreen *screen;
++ GdkWindow *window;
+ GdkRectangle area;
+ int min_size;
+ int nat_size;
+
+- min_size = 0;
+- nat_size = 0;
+-
+- if (!gtk_widget_get_realized (widget)) {
+- goto out;
+- }
+-
+ gtk_widget_get_preferred_height (gtk_bin_get_child (GTK_BIN (widget)),
+ &min_size,
+ &nat_size);
+
+ /* Make height be at most 80% of screen height */
+ screen = gtk_widget_get_screen (widget);
+- monitor = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (widget));
++ window = gtk_widget_get_window (widget);
++ if (window == NULL)
++ window = gdk_screen_get_root_window (screen);
++ monitor = gdk_screen_get_monitor_at_window (screen, window);
+ gdk_screen_get_monitor_geometry (screen, monitor, &area);
+ min_size = MIN (min_size, .8 * area.height);
+ nat_size = MIN (nat_size, .8 * area.height);
+
+- out:
+ if (minimum_size)
+ *minimum_size = min_size;
+ if (natural_size)
+--
+1.7.4 \ No newline at end of file
diff --git a/gnome-unstable/gdm/gdm b/gnome-unstable/gdm/gdm
new file mode 100755
index 000000000..c3e635a6d
--- /dev/null
+++ b/gnome-unstable/gdm/gdm
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting GDM"
+ /usr/sbin/gdm &
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+
+ add_daemon gdm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping GDM"
+ [ -f /var/run/gdm.pid ] && kill `cat /var/run/gdm.pid` &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon gdm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/gnome-unstable/gdm/gdm-autologin.pam b/gnome-unstable/gdm/gdm-autologin.pam
new file mode 100644
index 000000000..7c2f9a985
--- /dev/null
+++ b/gnome-unstable/gdm/gdm-autologin.pam
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_permit.so
+account required pam_unix.so
+password required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
diff --git a/gnome-unstable/gdm/gdm-vt-allocation-hack.patch b/gnome-unstable/gdm/gdm-vt-allocation-hack.patch
new file mode 100644
index 000000000..56fa5a151
--- /dev/null
+++ b/gnome-unstable/gdm/gdm-vt-allocation-hack.patch
@@ -0,0 +1,118 @@
+diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
+index 39def47..03488fd 100644
+--- a/daemon/gdm-server.c
++++ b/daemon/gdm-server.c
+@@ -33,6 +33,8 @@
+ #include <grp.h>
+ #include <signal.h>
+ #include <sys/resource.h>
++#include <sys/ioctl.h>
++#include <sys/vt.h>
+
+ #include <glib.h>
+ #include <glib/gi18n.h>
+@@ -150,6 +152,92 @@ _gdm_server_query_ck_for_display_device (GdmServer *server)
+ return out;
+ }
+
++#ifndef O_NOCTTY
++# define O_NOCTTY 0
++#endif
++
++static int
++open_vt (int vtno)
++{
++ char *vtname;
++ int fd;
++
++ vtname = g_strdup_printf ("/dev/tty%d", vtno);
++
++ do {
++ errno = 0;
++ fd = open (vtname, O_RDWR | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ g_free (vtname);
++ return fd;
++}
++
++static gint
++find_first_probably_free_vt (void)
++{
++ int fd, fdv;
++ int vtno;
++ unsigned short vtmask;
++ struct vt_stat vtstat;
++ guint v_state;
++
++ fdv = -1;
++
++ do {
++ errno = 0;
++ fd = open ("/dev/console", O_WRONLY | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ if (fd >= 0) {
++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0) {
++ v_state = vtstat.v_state;
++ } else {
++ close (fd);
++ v_state = 0;
++ fd = -1;
++ }
++ } else {
++ v_state = 0;
++ }
++
++ if (fd < 0) {
++ do {
++ errno = 0;
++ fd = open ("/dev/console", O_RDONLY | O_NOCTTY, 0);
++ } while (errno == EINTR);
++
++ if (fd >= 0) {
++ if (ioctl (fd, VT_GETSTATE, &vtstat) >= 0)
++ v_state = vtstat.v_state;
++ }
++ }
++
++ for (vtno = 7, vtmask = 1 << vtno; vtmask; vtno++, vtmask <<= 1) {
++ /* Is this console in use? */
++ if (v_state & vtmask)
++ continue;
++
++ /* No, try to open it */
++ fdv = open_vt (vtno);
++ if (fdv >= 0)
++ break;
++
++ /* If we're here, kernel indicated that the console was free,
++ * but we failed to open it. Just go on to higher VTs. */
++ }
++
++ if (fdv >= 0)
++ close (fdv);
++ else
++ vtno = -1;
++
++ if (fd >= 0)
++ close (fd);
++
++ return vtno;
++}
++
+ char *
+ gdm_server_get_display_device (GdmServer *server)
+ {
+@@ -310,6 +398,11 @@ gdm_server_resolve_command_line (GdmServer *server,
+
+ if (vtarg != NULL && ! gotvtarg) {
+ argv[len++] = g_strdup (vtarg);
++ } else if (!query_in_arglist && !gotvtarg) {
++ gint vtnum = find_first_probably_free_vt ();
++
++ if (vtnum > 0)
++ argv [len++] = g_strdup_printf ("vt%d", vtnum);
+ }
+
+ argv[len++] = NULL;
diff --git a/gnome-unstable/gdm/gdm.install b/gnome-unstable/gdm/gdm.install
new file mode 100644
index 000000000..c2b5e375e
--- /dev/null
+++ b/gnome-unstable/gdm/gdm.install
@@ -0,0 +1,44 @@
+pkgname=gdm
+
+post_install() {
+ getent group gdm >/dev/null 2>&1 || groupadd -g 120 gdm
+ if getent passwd gdm > /dev/null 2>&1; then
+ usr/sbin/usermod -d /var/lib/gdm -c 'Gnome Display Manager' -s /sbin/nologin gdm > /dev/null 2>&1
+ else
+ usr/sbin/useradd -c 'Gnome Display Manager' -u 120 -g gdm -d /var/lib/gdm -s /sbin/nologin gdm
+ fi
+ passwd -l gdm > /dev/null
+ chown gdm:gdm /var/lib/gdm > /dev/null
+ chown -R gdm:gdm /var/lib/gdm/.gconf.mandatory
+
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ if [ -f opt/gnome/etc/gdm/custom.conf ]; then
+ mkdir -p etc/gdm
+ sed -e 's|/opt/gnome/libexec|usr/lib/gdm|g' \
+ -e 's|/opt/gnome/etc|/etc|g' \
+ -e 's|/opt/gnome/|/usr/|g' \
+ opt/gnome/etc/gdm/custom.conf > etc/gdm/custom.conf
+ mv opt/gnome/etc/gdm/custom.conf opt/gnome/etc/gdm/custom.conf.pacsave
+ fi
+ pre_remove
+}
+
+pre_remove() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ gconfpkg --uninstall ${pkgname}
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ getent passwd gdm >/dev/null 2>&1 && userdel gdm
+ getent group gdm >/dev/null 2>&1 && groupdel gdm
+}
diff --git a/gnome-unstable/gdm/gdm.pam b/gnome-unstable/gdm/gdm.pam
new file mode 100644
index 000000000..655299cb7
--- /dev/null
+++ b/gnome-unstable/gdm/gdm.pam
@@ -0,0 +1,10 @@
+#%PAM-1.0
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+auth optional pam_gnome_keyring.so
+account required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_gnome_keyring.so auto_start
+password required pam_unix.so
diff --git a/gnome-unstable/gedit/PKGBUILD b/gnome-unstable/gedit/PKGBUILD
new file mode 100644
index 000000000..ea82388ee
--- /dev/null
+++ b/gnome-unstable/gedit/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117796 2011-04-04 17:57:21Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gedit
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A text editor for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtksourceview3' 'gsettings-desktop-schemas' 'libpeas' 'enchant'
+ 'iso-codes' 'libsm' 'desktop-file-utils' 'pygobject')
+makedepends=('gnome-doc-utils' 'intltool' 'pygobject-devel')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gedit.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('a3a14d2f239f43f043743bc526f89c84bfb1ce55096b7629f905947948959f5e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib --disable-scrollkeeper \
+ --disable-updater --disable-schemas-compile \
+ --enable-python
+ make
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gedit/gedit.install b/gnome-unstable/gedit/gedit.install
new file mode 100644
index 000000000..9d88a1341
--- /dev/null
+++ b/gnome-unstable/gedit/gedit.install
@@ -0,0 +1,18 @@
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/gedit.schemas ]; then
+ usr/sbin/gconfpkg --uninstall gedit
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/gjs/PKGBUILD b/gnome-unstable/gjs/PKGBUILD
new file mode 100644
index 000000000..34fd492d4
--- /dev/null
+++ b/gnome-unstable/gjs/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 117650 2011-04-04 14:59:48Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=gjs
+pkgver=0.7.14
+pkgrel=1
+pkgdesc="Javascript Bindings for GNOME"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/Gjs"
+license=('GPL')
+depends=('gobject-introspection' 'xulrunner')
+options=('!libtool')
+source=(http://download.gnome.org/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('3af6f449a505c419d4a0e5938737da8d1b9b09b33710cc1ac1edee2eaa86e348')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|python|python2|' scripts/make-tests
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/glade/PKGBUILD b/gnome-unstable/glade/PKGBUILD
new file mode 100644
index 000000000..e84be67a6
--- /dev/null
+++ b/gnome-unstable/glade/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 113382 2011-03-08 13:36:04Z heftig $
+# Maintainer: Douglas Soares de Andrade <douglas@archlinux.org>
+
+pkgname=glade
+pkgver=3.9.2
+pkgrel=1
+pkgdesc="User interface builder for GTK+ and GNOME."
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk3' 'libxml2' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('intltool' 'python2' 'gtk-doc')
+optdepends=('python2: Python widgets support')
+options=('!libtool')
+url="http://glade.gnome.org/"
+install=glade.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('cb26c1532e72c4763bdd47af03d3f1ebbe389f350d03cf89a49d55ec08c33b26')
+
+build() {
+ cd "${srcdir}/$pkgname-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/$pkgname-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/glade/glade.install b/gnome-unstable/glade/glade.install
new file mode 100644
index 000000000..bce670aff
--- /dev/null
+++ b/gnome-unstable/glade/glade.install
@@ -0,0 +1,12 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/glib-networking/PKGBUILD b/gnome-unstable/glib-networking/PKGBUILD
new file mode 100644
index 000000000..504308729
--- /dev/null
+++ b/gnome-unstable/glib-networking/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117723 2011-04-04 17:15:03Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=glib-networking
+pkgver=2.28.5
+pkgrel=1
+pkgdesc="Network-related giomodules for glib"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libproxy' 'gnutls' 'ca-certificates')
+makedepends=('intltool')
+options=('!libtool')
+install=glib-networking.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.bz2)
+sha256sums=('959ffeb91fee17c1b0fb2aa82872c3daae0230de93708b2ebabeb92b747d7876')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/glib-networking/glib-networking.install b/gnome-unstable/glib-networking/glib-networking.install
new file mode 100644
index 000000000..595f1c75b
--- /dev/null
+++ b/gnome-unstable/glib-networking/glib-networking.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/glib2/PKGBUILD b/gnome-unstable/glib2/PKGBUILD
new file mode 100644
index 000000000..d066bfaf1
--- /dev/null
+++ b/gnome-unstable/glib2/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 117426 2011-04-01 22:05:35Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=glib2
+pkgver=2.28.5
+pkgrel=1
+pkgdesc="Common C routines used by GTK+ and other libs"
+url="http://www.gtk.org/"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('pcre>=8.02')
+makedepends=('pkgconfig' 'python2')
+options=('!libtool' '!docs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.28/glib-${pkgver}.tar.bz2
+ glib2.sh
+ glib2.csh)
+sha256sums=('8eb4b56b228c6d0bf5021dd23db5b0084d80cc6d8d89d7863073c2da575ec22a'
+ '9456872cdedcc639fb679448d74b85b0facf81033e27157d2861b991823b5a2a'
+ '8d5626ffa361304ad3696493c0ef041d0ab10c857f6ef32116b3e2878ecf89e3')
+
+build() {
+ cd "${srcdir}/glib-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-pcre=system \
+ --disable-fam
+ make
+}
+
+package() {
+ cd "${srcdir}/glib-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -d "${pkgdir}/etc/profile.d"
+ install -m755 "${srcdir}/glib2.sh" "${pkgdir}/etc/profile.d/"
+ install -m755 "${srcdir}/glib2.csh" "${pkgdir}/etc/profile.d/"
+
+ for _i in "${pkgdir}/etc/bash_completion.d/"*; do
+ chmod -x "${_i}"
+ done
+}
diff --git a/gnome-unstable/glib2/glib2.csh b/gnome-unstable/glib2/glib2.csh
new file mode 100644
index 000000000..7aa3a2ffa
--- /dev/null
+++ b/gnome-unstable/glib2/glib2.csh
@@ -0,0 +1 @@
+setenv G_BROKEN_FILENAMES 1
diff --git a/gnome-unstable/glib2/glib2.sh b/gnome-unstable/glib2/glib2.sh
new file mode 100644
index 000000000..96a056e1e
--- /dev/null
+++ b/gnome-unstable/glib2/glib2.sh
@@ -0,0 +1 @@
+export G_BROKEN_FILENAMES=1
diff --git a/gnome-unstable/glibmm/PKGBUILD b/gnome-unstable/glibmm/PKGBUILD
new file mode 100644
index 000000000..89dc095e1
--- /dev/null
+++ b/gnome-unstable/glibmm/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 116649 2011-03-24 13:45:12Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgbase=glibmm
+pkgname=('glibmm' 'glibmm-docs')
+pkgver=2.27.99
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('glib2' 'libsigc++2.0' 'pkgconfig' 'mm-common')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.27/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+sha256sums=('d079bb42fa378dc88a9e964274b05f222d243b44eaaa85a04893a9bb85459194')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_glibmm() {
+ pkgdesc="Glib-- (glibmm) is a C++ interface for glib"
+ depends=('glib2' 'libsigc++2.0')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+# sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+ make DESTDIR="${pkgdir}" install
+}
+
+package_glibmm-docs() {
+ pkgdesc="Developer documentation for glibmm"
+ cd "${srcdir}/${pkgbase}-${pkgver}/docs"
+ # make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-applets/PKGBUILD b/gnome-unstable/gnome-applets/PKGBUILD
new file mode 100644
index 000000000..7b960d849
--- /dev/null
+++ b/gnome-unstable/gnome-applets/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 113478 2011-03-08 21:10:38Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-applets
+pkgver=2.91.4
+pkgrel=2
+pkgdesc="GNOME Applets"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gnome-panel' 'libgtop' 'gucharmap' 'libnotify' 'cpufrequtils')
+makedepends=('gnome-doc-utils' 'intltool' 'gnome-settings-daemon' 'networkmanager' 'gnome-common')
+options=(!emptydirs)
+url="http://www.gnome.org"
+groups=(gnome)
+install=gnome-applets.install
+#source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.91/${pkgname}-${pkgver}.tar.bz2)
+source=(${pkgname}-${pkgver}.tar.xz)
+sha256sums=('950ab962c39fca9375a9df0827ccb8f2178f7e84950c8fdbea5e3d2f9889a49c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./autogen.sh
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc --libexecdir=/usr/lib/gnome-applets \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --disable-schemas-install \
+ --without-hal
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-applets-3.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gnome-applets/gnome-applets.install b/gnome-unstable/gnome-applets/gnome-applets.install
new file mode 100644
index 000000000..dd9c34269
--- /dev/null
+++ b/gnome-unstable/gnome-applets/gnome-applets.install
@@ -0,0 +1,22 @@
+pkgname=gnome-applets
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules b/gnome-unstable/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules
new file mode 100644
index 000000000..a76c1e73c
--- /dev/null
+++ b/gnome-unstable/gnome-bluetooth/61-gnome-bluetooth-rfkill.rules
@@ -0,0 +1,11 @@
+# Get access to /dev/rfkill for users
+# See https://bugzilla.redhat.com/show_bug.cgi?id=514798
+#
+# Updated for udev >= 154
+# http://bugs.debian.org/582188
+# https://bugzilla.redhat.com/show_bug.cgi?id=588660
+
+ENV{ACL_MANAGE}=="0", GOTO="gnome_bluetooth_end"
+ACTION!="add|change", GOTO="gnome_bluetooth_end"
+KERNEL=="rfkill", TAG+="udev-acl"
+LABEL="gnome_bluetooth_end"
diff --git a/gnome-unstable/gnome-bluetooth/PKGBUILD b/gnome-unstable/gnome-bluetooth/PKGBUILD
new file mode 100644
index 000000000..1d8830ea2
--- /dev/null
+++ b/gnome-unstable/gnome-bluetooth/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 117688 2011-04-04 16:21:47Z ibiru $
+# Maintainer:
+# Contributor: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-bluetooth
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="The GNOME Bluetooth Subsystem"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/GnomeBluetooth"
+license=('GPL' 'LGPL')
+depends=('gnome-control-center' 'hicolor-icon-theme' 'gvfs-obexftp' 'obexd-client' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils' 'nautilus-sendto' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+install=gnome-bluetooth.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2
+ 61-gnome-bluetooth-rfkill.rules)
+sha256sums=('bdfa7986b8b7f622b48a70b29a48016482190d240de499da5d7fddb48ed4c211'
+ 'b8acb8ea2e7f3588575cffd8ea14ec50c8641f518f2ea899771a508b299ea474')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-desktop-update \
+ --disable-icon-update \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 -D "${srcdir}/61-gnome-bluetooth-rfkill.rules" \
+ "${pkgdir}/lib/udev/rules.d//61-gnome-bluetooth-rfkill.rules"
+ install -d ${pkgdir}/etc/ld.so.conf.d
+ echo "/usr/lib/gnome-bluetooth" > ${pkgdir}/etc/ld.so.conf.d/${pkgname}.conf
+}
diff --git a/gnome-unstable/gnome-bluetooth/gnome-bluetooth.install b/gnome-unstable/gnome-bluetooth/gnome-bluetooth.install
new file mode 100644
index 000000000..927142ee0
--- /dev/null
+++ b/gnome-unstable/gnome-bluetooth/gnome-bluetooth.install
@@ -0,0 +1,12 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/gnome-color-manager/PKGBUILD b/gnome-unstable/gnome-color-manager/PKGBUILD
new file mode 100644
index 000000000..e99169465
--- /dev/null
+++ b/gnome-unstable/gnome-color-manager/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 117742 2011-04-04 17:38:36Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+pkgname=gnome-color-manager
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Color profile manager for the GNOME desktop"
+arch=(i686 x86_64)
+url="http://projects.gnome.org/gnome-color-manager/"
+license=(GPL2)
+depends=(lcms2 gnome-settings-daemon gnome-control-center vte3 sane exiv2
+ hicolor-icon-theme desktop-file-utils)
+makedepends=(intltool gtk-doc)
+install=gnome-color-manager.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('9e030b2a5dd61010bce25c2e3cdfca6e7ab3954fecb74dbf88f6a8e2c70b7207')
+
+build(){
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # man pages need docbook-sgml, which we don't have
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib --disable-static --disable-man-pages
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/gnome-unstable/gnome-color-manager/gnome-color-manager.install b/gnome-unstable/gnome-color-manager/gnome-color-manager.install
new file mode 100644
index 000000000..04fda0ddc
--- /dev/null
+++ b/gnome-unstable/gnome-color-manager/gnome-color-manager.install
@@ -0,0 +1,19 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall gnome-color-manager
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/gnome-control-center/PKGBUILD b/gnome-unstable/gnome-control-center/PKGBUILD
new file mode 100644
index 000000000..3666cefdd
--- /dev/null
+++ b/gnome-unstable/gnome-control-center/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 117166 2011-03-29 05:52:41Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-control-center
+pkgver=2.91.93
+pkgrel=1
+pkgdesc="The Control Center for GNOME"
+arch=('i686' 'x86_64')
+depends=('gtk3' 'gsettings-desktop-schemas' 'gconf' 'gnome-menus' 'gnome-desktop' 'gnome-settings-daemon' 'upower' 'libgtop')
+makedepends=('gnome-doc-utils' 'intltool' 'networkmanager')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-control-center.install
+license=('GPL')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.91/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e98b3377bccfaebc34ae018d9f80be23f809c0911f18a99fa08d4b6d3918d7f0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --disable-update-mimedb
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-control-center-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
+sha256sums=('c95d041cab41b6ea954ae7bc46087d763c9f259b700486381bff9046d59276df')
diff --git a/gnome-unstable/gnome-control-center/gnome-control-center.install b/gnome-unstable/gnome-control-center/gnome-control-center.install
new file mode 100644
index 000000000..8f0bc46fb
--- /dev/null
+++ b/gnome-unstable/gnome-control-center/gnome-control-center.install
@@ -0,0 +1,18 @@
+pkgname=gnome-control-center
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gnome-desktop/PKGBUILD b/gnome-unstable/gnome-desktop/PKGBUILD
new file mode 100644
index 000000000..7947b8a6b
--- /dev/null
+++ b/gnome-unstable/gnome-desktop/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117888 2011-04-04 21:07:12Z heftig $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-desktop
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Library with common API for various GNOME modules"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL')
+depends=('gsettings-desktop-schemas' 'startup-notification' 'gtk3')
+makedepends=('gnome-doc-utils' 'intltool' 'gobject-introspection')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('daa46b85e17dad57bbce1f99e1ad4fd2195fea3d91ba8fdf49d2d3f9badeba69')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --with-gnome-distributor="Arch Linux" \
+ --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-disk-utility/PKGBUILD b/gnome-unstable/gnome-disk-utility/PKGBUILD
new file mode 100644
index 000000000..e63e2d8f0
--- /dev/null
+++ b/gnome-unstable/gnome-disk-utility/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 117728 2011-04-04 17:27:54Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-disk-utility
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="GNOME libraries and applications for dealing with storage devices"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+depends=('dbus-glib' 'libgnome-keyring' 'libunique3' 'udisks' 'libnotify' 'hicolor-icon-theme' 'avahi')
+makedepends=('gtk-doc' 'intltool')
+options=('!libtool' '!emptydirs')
+install=gnome-disk-utility.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ fix-freeze.patch)
+sha256sums=('94d31142a5f488d034cd2954df4ab1c26bd053fb0d46d230fba91b4f8b3663fb'
+ '818b70360978968457d2c50738347c6726ed8d0c007eb57074881a7e33652526')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/fix-freeze.patch"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-disk-utility \
+ --disable-scrollkeeper --disable-nautilus --disable-gtk-doc
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-disk-utility/fix-freeze.patch b/gnome-unstable/gnome-disk-utility/fix-freeze.patch
new file mode 100644
index 000000000..262748bfb
--- /dev/null
+++ b/gnome-unstable/gnome-disk-utility/fix-freeze.patch
@@ -0,0 +1,32 @@
+From 82489b51443e1280dfb9fb251ea2693df1809aec Mon Sep 17 00:00:00 2001
+From: Pascal Terjan <pterjan@mandriva.com>
+Date: Mon, 3 May 2010 14:01:22 +0200
+Subject: [PATCH] Force GduPresentable ids to be UTF-8 (#616198)
+
+GduPresentable created in gdu pool include intheir id some strings
+in local encoding like _("Peripheral Devices"). This patch
+enforces them to be UTF-8.
+
+This fixes a crash of gvfs-gdu-volume-monitor when USB devices are
+available on a non UTF-8 system.
+---
+ src/gdu/gdu-pool.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/src/gdu/gdu-pool.c b/src/gdu/gdu-pool.c
+index bd5eccf..cf6be53 100644
+--- a/src/gdu/gdu-pool.c
++++ b/src/gdu/gdu-pool.c
+@@ -473,6 +473,9 @@ gdu_pool_class_init (GduPoolClass *klass)
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ GDU_TYPE_PRESENTABLE);
++#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
++ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
++#endif
+ }
+
+ static void
+--
+1.7.1
+
diff --git a/gnome-unstable/gnome-disk-utility/gnome-disk-utility.install b/gnome-unstable/gnome-disk-utility/gnome-disk-utility.install
new file mode 100644
index 000000000..43ed0a554
--- /dev/null
+++ b/gnome-unstable/gnome-disk-utility/gnome-disk-utility.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gnome-games/PKGBUILD b/gnome-unstable/gnome-games/PKGBUILD
new file mode 100644
index 000000000..76ef88aa0
--- /dev/null
+++ b/gnome-unstable/gnome-games/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 117797 2011-04-04 17:57:44Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-games
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Some Games for GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsm' 'gconf' 'guile' 'desktop-file-utils' 'libcanberra'
+ 'clutter-gtk' 'hicolor-icon-theme' 'librsvg')
+makedepends=('gnome-doc-utils' 'intltool' 'gobject-introspection')
+provides=('glchess')
+conflicts=('glchess')
+options=('!emptydirs' '!libtool')
+install=gnome-games.install
+url="http://www.gnome.org"
+groups=('gnome-extra')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('359a1df5801271fc93c953ef7e5a81e8fc0088d35ed259e07db49261337aab51')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --disable-static \
+ --with-scores-user=root --with-scores-group=games \
+ --enable-introspection=yes
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ # Remove all scores, we generate them from postinstall
+ rm -rf "${pkgdir}/var"
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-games ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gnome-games/gnome-games.install b/gnome-unstable/gnome-games/gnome-games.install
new file mode 100644
index 000000000..1f67c2e01
--- /dev/null
+++ b/gnome-unstable/gnome-games/gnome-games.install
@@ -0,0 +1,153 @@
+pkgname=gnome-games
+scores=(glines.Large.scores
+ glines.Medium.scores
+ glines.Small.scores
+ gnibbles.1.0.scores
+ gnibbles.1.1.scores
+ gnibbles.2.0.scores
+ gnibbles.2.1.scores
+ gnibbles.3.0.scores
+ gnibbles.3.1.scores
+ gnibbles.4.0.scores
+ gnibbles.4.1.scores
+ gnobots2.classic_robots-safe.scores
+ gnobots2.classic_robots-super-safe.scores
+ gnobots2.classic_robots.scores
+ gnobots2.nightmare-safe.scores
+ gnobots2.nightmare-super-safe.scores
+ gnobots2.nightmare.scores
+ gnobots2.robots2-safe.scores
+ gnobots2.robots2-super-safe.scores
+ gnobots2.robots2.scores
+ gnobots2.robots2_easy-safe.scores
+ gnobots2.robots2_easy-super-safe.scores
+ gnobots2.robots2_easy.scores
+ gnobots2.robots_with_safe_teleport-safe.scores
+ gnobots2.robots_with_safe_teleport-super-safe.scores
+ gnobots2.robots_with_safe_teleport.scores
+ gnomine.Custom.scores
+ gnomine.Large.scores
+ gnomine.Medium.scores
+ gnomine.Small.scores
+ gnotravex.2x2.scores
+ gnotravex.3x3.scores
+ gnotravex.4x4.scores
+ gnotravex.5x5.scores
+ gnotravex.6x6.scores
+ gnotski.1.scores
+ gnotski.10.scores
+ gnotski.11.scores
+ gnotski.12.scores
+ gnotski.13.scores
+ gnotski.14.scores
+ gnotski.15.scores
+ gnotski.16.scores
+ gnotski.17.scores
+ gnotski.18.scores
+ gnotski.19.scores
+ gnotski.2.scores
+ gnotski.20.scores
+ gnotski.21.scores
+ gnotski.22.scores
+ gnotski.23.scores
+ gnotski.24.scores
+ gnotski.25.scores
+ gnotski.26.scores
+ gnotski.27.scores
+ gnotski.28.scores
+ gnotski.29.scores
+ gnotski.3.scores
+ gnotski.30.scores
+ gnotski.31.scores
+ gnotski.32.scores
+ gnotski.33.scores
+ gnotski.34.scores
+ gnotski.35.scores
+ gnotski.36.scores
+ gnotski.37.scores
+ gnotski.4.scores
+ gnotski.5.scores
+ gnotski.6.scores
+ gnotski.7.scores
+ gnotski.8.scores
+ gnotski.9.scores
+ gtali.Colors.scores
+ gtali.Regular.scores
+ mahjongg.bridges.scores
+ mahjongg.cloud.scores
+ mahjongg.confounding.scores
+ mahjongg.difficult.scores
+ mahjongg.dragon.scores
+ mahjongg.easy.scores
+ mahjongg.pyramid.scores
+ mahjongg.tictactoe.scores
+ mahjongg.ziggurat.scores
+ swell-foop.Large.scores
+ swell-foop.Medium.scores
+ swell-foop.Small.scores
+ quadrapassel.scores)
+
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+
+ for sz in Large Medium Small; do
+ if [ -e "opt/gnome/var/games/same-gnome.${sz}.scores" ]; then
+ mv "opt/gnome/var/games/same-gnome.${sz}.scores" \
+ "var/games/swell-foop.${sz}.scores"
+ elif [ -e "var/games/same-gnome.${sz}.scores" ]; then
+ mv "var/games/same-gnome.${sz}.scores" \
+ "var/games/swell-foop.${sz}.scores"
+ fi
+ done
+ if [ -e "opt/gnome/var/games/gnometris.scores" ]; then
+ mv "opt/gnome/var/games/gnometris.scores" \
+ "var/games/quadrapassel.scores"
+ elif [ -e "var/games/gnometris.scores" ]; then
+ mv "var/games/gnometris.scores" \
+ "var/games/quadrapassel.scores"
+ fi
+
+ for score in "${scores[@]}" ; do
+ if [ -e "var/games/${score}" ]; then
+ continue
+ fi
+ if [ -e "opt/gnome/var/games/${score}" ]; then
+ mv "opt/gnome/var/games/${score}" var/games/
+ else
+ touch "var/games/${score}"
+ fi
+ chown root:games "var/games/${score}"
+ chmod 664 "var/games/${score}"
+ done
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+
+ if [ -f usr/share/ggz/gnect-client.dsc ]; then
+ ggz-config -r -m usr/share/ggz/gnect-client.dsc >& /dev/null
+ ggz-config -r -m usr/share/ggz/gnibbles-client.dsc >& /dev/null
+ ggz-config -r -m usr/share/ggz/iagno-client.dsc >& /dev/null
+ fi
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -f -t usr/share/icons/hicolor
+
+ for score in "${scores[@]}" ; do
+ rm -f "var/games/${score}"
+ done
+}
diff --git a/gnome-unstable/gnome-keyring/PKGBUILD b/gnome-unstable/gnome-keyring/PKGBUILD
new file mode 100644
index 000000000..eb2f2b449
--- /dev/null
+++ b/gnome-unstable/gnome-keyring/PKGBUILD
@@ -0,0 +1,32 @@
+#$Id: PKGBUILD 117585 2011-04-04 11:31:32Z ibiru $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gnome-keyring
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="GNOME Password Management daemon"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('gtk3' 'dconf')
+makedepends=('intltool' 'pkgconfig' 'python2')
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gnome-keyring.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('63bbe53031620d8514cf4ebd7705e2360d37679e785c4588f66b88f919e56c20')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-keyring \
+ --with-pam-dir=/lib/security --with-root-certs=/etc/ssl/certs \
+ --disable-schemas-compile --with-gtk=3.0
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-keyring/gnome-keyring.install b/gnome-unstable/gnome-keyring/gnome-keyring.install
new file mode 100644
index 000000000..e5204bcab
--- /dev/null
+++ b/gnome-unstable/gnome-keyring/gnome-keyring.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/gnome-media/PKGBUILD b/gnome-unstable/gnome-media/PKGBUILD
new file mode 100644
index 000000000..8e8d3da64
--- /dev/null
+++ b/gnome-unstable/gnome-media/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 111636 2011-02-27 21:57:39Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-media
+pkgver=2.91.2
+pkgrel=2
+pkgdesc="GNOME Media Tools"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libgnome-media-profiles' 'libcanberra' 'hicolor-icon-theme')
+makedepends=('intltool' 'pkgconfig' 'gnome-doc-utils')
+url="http://www.gnome.org"
+groups=('gnome')
+replaces=('gnome-media-pulse')
+options=('!libtool' '!emptydirs')
+install=gnome-media.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.91/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('4aadc834d04c3d6f573fad667a69c6dc9668240e759cbd8cfb14d053d8e4da5f')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-media \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgbase}.schemas" --domain gnome-media-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ rm -rf "${pkgdir}/usr/share/sounds/"
+}
diff --git a/gnome-unstable/gnome-media/gnome-media.install b/gnome-unstable/gnome-media/gnome-media.install
new file mode 100644
index 000000000..97488b6d0
--- /dev/null
+++ b/gnome-unstable/gnome-media/gnome-media.install
@@ -0,0 +1,22 @@
+pkgname=gnome-media
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f /usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gnome-media/gnome_volume_control_fix_channel_bars.patch b/gnome-unstable/gnome-media/gnome_volume_control_fix_channel_bars.patch
new file mode 100644
index 000000000..9d3de0331
--- /dev/null
+++ b/gnome-unstable/gnome-media/gnome_volume_control_fix_channel_bars.patch
@@ -0,0 +1,12 @@
+diff -aur gnome-media-2.32.0/gnome-volume-control/src/gvc-channel-bar.c gnome-media-2.32.0.new/gnome-volume-control/src/gvc-channel-bar.c
+--- gnome-media-2.32.0/gnome-volume-control/src/gvc-channel-bar.c 2010-09-28 15:46:15.000000000 +0100
++++ gnome-media-2.32.0.new/gnome-volume-control/src/gvc-channel-bar.c 2010-12-31 15:14:23.964994328 +0000
+@@ -449,7 +449,7 @@
+ /* Switch side scroll to vertical */
+ if (direction == GDK_SCROLL_RIGHT)
+ direction = GDK_SCROLL_UP;
+- else if (GDK_SCROLL_LEFT)
++ else if (direction == GDK_SCROLL_LEFT)
+ direction = GDK_SCROLL_DOWN;
+ }
+
diff --git a/gnome-unstable/gnome-menus/PKGBUILD b/gnome-unstable/gnome-menus/PKGBUILD
new file mode 100644
index 000000000..69d5daa70
--- /dev/null
+++ b/gnome-unstable/gnome-menus/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 117898 2011-04-04 21:10:54Z heftig $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+
+pkgname=gnome-menus
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="GNOME menu specifications"
+arch=('i686' 'x86_64')
+depends=('glib2' 'python2')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool' '!makeflags')
+license=('GPL' 'LGPL')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ menus.patch)
+sha256sums=('4a92233c2f6ce0e5e484ddee33e01ae12b33133651ce486a4d944fd358de8f3b'
+ 'df2779777906b038fa911dc745534564ede9524a64ab368e2f6f8e38d54e7acc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np0 -i "$srcdir/menus.patch"
+
+ PYTHON=/usr/bin/python2 ./configure \
+ --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package(){
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ sed -i "1s|#!/usr/bin/env python$|&2|" \
+ "$pkgdir/usr/lib/python2.7/site-packages/GMenuSimpleEditor/config.py"
+}
diff --git a/gnome-unstable/gnome-menus/menus.patch b/gnome-unstable/gnome-menus/menus.patch
new file mode 100644
index 000000000..bf73e86cd
--- /dev/null
+++ b/gnome-unstable/gnome-menus/menus.patch
@@ -0,0 +1,25 @@
+--- layout/applications.menu 2005-06-28 10:16:39.000000000 +0200
++++ layout/applications.menu 2005-09-12 23:21:20.000000000 +0200
+@@ -7,7 +7,6 @@
+ <Directory>Applications.directory</Directory>
+
+ <!-- Scan legacy dirs first, as later items take priority -->
+- <KDELegacyDirs/>
+ <LegacyDir>/etc/X11/applnk</LegacyDir>
+ <LegacyDir>/usr/share/gnome/apps</LegacyDir>
+
+@@ -18,6 +17,14 @@
+ <!-- Read in overrides and child menus from applications-merged/ -->
+ <DefaultMergeDirs/>
+
++ <!-- Archlinux submenu -->
++ <Menu>
++ <Name>Archlinux</Name>
++ <Directory>Archlinux.directory</Directory>
++ <Include>
++ <Category>Archlinux</Category>
++ </Include>
++ </Menu> <!-- End Archlinux -->
+ <!-- Accessories submenu -->
+ <Menu>
+ <Name>Accessories</Name>
diff --git a/gnome-unstable/gnome-nettool/PKGBUILD b/gnome-unstable/gnome-nettool/PKGBUILD
new file mode 100644
index 000000000..d9b56afae
--- /dev/null
+++ b/gnome-unstable/gnome-nettool/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117582 2011-04-04 11:28:21Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Kritoke <kritoke@nospam.gmail.com>
+
+pkgname=gnome-nettool
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A Collection of GNOME3 Networking Tools."
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gtk3' 'libgtop' 'dnsutils' 'netkit-bsd-finger' 'whois' 'hicolor-icon-theme')
+makedepends=('gnome-doc-utils' 'pkgconfig' 'intltool')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+install=gnome-nettool.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('6b75ee5de54fae67db0ba710e8b334a5b1fcd18719d38ae09b9dd05f5e2555e9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-nettool/gnome-nettool.install b/gnome-unstable/gnome-nettool/gnome-nettool.install
new file mode 100644
index 000000000..738f7859f
--- /dev/null
+++ b/gnome-unstable/gnome-nettool/gnome-nettool.install
@@ -0,0 +1,12 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/gnome-panel/PKGBUILD b/gnome-unstable/gnome-panel/PKGBUILD
new file mode 100644
index 000000000..982e23bdf
--- /dev/null
+++ b/gnome-unstable/gnome-panel/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 117392 2011-04-01 13:09:57Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-panel
+pkgver=2.91.94
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL')
+pkgdesc="The GNOME Panel"
+url="http://www.gnome.org"
+depends=('gnome-menus' 'gnome-desktop' 'evolution-data-server' 'librsvg' 'libwnck3' 'libsm' 'dconf')
+makedepends=('gnome-doc-utils' 'intltool' 'gobject-introspection' 'networkmanager' 'libcanberra')
+install=gnome-panel.install
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('74681f4f422ec8c6390b7b675681b59630a7936ed36965227687f8ee0db4ca4d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-panel \
+ --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-panel-3.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gnome-panel/gnome-panel.install b/gnome-unstable/gnome-panel/gnome-panel.install
new file mode 100644
index 000000000..e3175df5e
--- /dev/null
+++ b/gnome-unstable/gnome-panel/gnome-panel.install
@@ -0,0 +1,24 @@
+pkgname=gnome-panel
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gnome-pilot/PKGBUILD b/gnome-unstable/gnome-pilot/PKGBUILD
new file mode 100644
index 000000000..82d3c5c69
--- /dev/null
+++ b/gnome-unstable/gnome-pilot/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 116045 2011-03-22 16:53:46Z heftig $
+# Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-pilot
+pkgver=2.91.92
+pkgrel=1
+pkgdesc="Pilot Support for Gnome"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('pilot-link' 'evolution-data-server')
+makedepends=('intltool' 'gob2' 'gnome-doc-utils' 'gnome-panel')
+optdepends=('gnome-panel')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=gnome-pilot.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('dc7a166c95580c2935b1cab822d9e6d63d5ef08bb19eacf4a84f6eda071f07c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-pilot \
+ --localstatedir=/var --disable-static \
+ --without-hal
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" ${pkgdir}/etc/gconf/schemas/*.schemas || return 1
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gnome-pilot/gnome-pilot.install b/gnome-unstable/gnome-pilot/gnome-pilot.install
new file mode 100644
index 000000000..616daa0e4
--- /dev/null
+++ b/gnome-unstable/gnome-pilot/gnome-pilot.install
@@ -0,0 +1,17 @@
+pkgname=gnome-pilot
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/gnome-unstable/gnome-power-manager/PKGBUILD b/gnome-unstable/gnome-power-manager/PKGBUILD
new file mode 100644
index 000000000..69d61bd5f
--- /dev/null
+++ b/gnome-unstable/gnome-power-manager/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 117756 2011-04-04 17:41:50Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-power-manager
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Session daemon that makes it easy to manage your laptop or desktop system."
+arch=(i686 x86_64)
+url="http://www.gnome.org/projects/gnome-power-manager/"
+license=('GPL')
+depends=('libnotify' 'gconf' 'libcanberra' 'gnome-icon-theme' 'upower'
+ 'libgnome-keyring' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils' 'gnome-control-center')
+options=(!emptydirs)
+install=gnome-power-manager.install
+groups=(gnome-extra)
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('20d8c147a50eef534e81edb033648e5e9cf7a3f733e80c5d6c946b571f7ae4e1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/gnome-power-manager \
+ --disable-scrollkeeper \
+ --with-dbus-services=/usr/share/dbus-1/services \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-power-manager/gnome-power-manager.install b/gnome-unstable/gnome-power-manager/gnome-power-manager.install
new file mode 100644
index 000000000..4666938db
--- /dev/null
+++ b/gnome-unstable/gnome-power-manager/gnome-power-manager.install
@@ -0,0 +1,19 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.91.92) < 0 )); then
+ usr/sbin/gconfpkg --uninstall gnome-power-manager
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/gnome-screensaver/PKGBUILD b/gnome-unstable/gnome-screensaver/PKGBUILD
new file mode 100644
index 000000000..6b66e6e7e
--- /dev/null
+++ b/gnome-unstable/gnome-screensaver/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 117764 2011-04-04 17:44:42Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-screensaver
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Screensaver designed to integrate well with the GNOME desktop."
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://live.gnome.org/GnomeScreensaver"
+backup=(etc/pam.d/gnome-screensaver)
+depends=('dbus-glib' 'gnome-menus' 'libgnomekbd' 'gnome-desktop' 'gsettings-desktop-schemas')
+makedepends=('pkgconfig' 'intltool' 'libxss')
+optdepends=('xscreensaver')
+groups=('gnome')
+options=(!emptydirs)
+install=gnome-screensaver.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ gnome-screensaver.pam)
+sha256sums=('e00e801d94c1d9f1e62049f77b91d822047eb1dcbd2e01cc38b5dd1b0f67c948'
+ '2744d1fc39da46fc681b7cf1c9230d2035b2bb8d9f510213fbe439c114eb76a2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-screensaver \
+ --localstatedir=/var \
+ --with-mit-ext
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 "${srcdir}/gnome-screensaver.pam" "${pkgdir}/etc/pam.d/gnome-screensaver"
+}
diff --git a/gnome-unstable/gnome-screensaver/gnome-screensaver.install b/gnome-unstable/gnome-screensaver/gnome-screensaver.install
new file mode 100644
index 000000000..3b0e06046
--- /dev/null
+++ b/gnome-unstable/gnome-screensaver/gnome-screensaver.install
@@ -0,0 +1,7 @@
+pkgname=gnome-screensaver
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
diff --git a/gnome-unstable/gnome-screensaver/gnome-screensaver.pam b/gnome-unstable/gnome-screensaver/gnome-screensaver.pam
new file mode 100644
index 000000000..c776a5410
--- /dev/null
+++ b/gnome-unstable/gnome-screensaver/gnome-screensaver.pam
@@ -0,0 +1,3 @@
+#%PAM-1.0
+auth required pam_unix_auth.so
+auth optional pam_gnome_keyring.so
diff --git a/gnome-unstable/gnome-session/PKGBUILD b/gnome-unstable/gnome-session/PKGBUILD
new file mode 100644
index 000000000..1363cbb0b
--- /dev/null
+++ b/gnome-unstable/gnome-session/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 117915 2011-04-04 21:28:00Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-session
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="The GNOME Session Handler"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('upower' 'gtk3' 'gconf' 'startup-notification' 'hicolor-icon-theme'
+ 'libxtst' 'polkit-gnome' 'libgl' 'librsvg' 'gsettings-desktop-schemas'
+ 'consolekit' 'libsm' 'dconf' 'pulseaudio' 'pulseaudio-alsa')
+makedepends=('intltool' 'mesa' 'xtrans')
+options=('!emptydirs')
+install=gnome-session.install
+url="http://www.gnome.org"
+groups=('gnome')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('687f2f1daeae3614c36724c7d0f8a5a2eed61e941b11bc3b0f1b156293e51024')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/gnome-session \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-session/gnome-session.install b/gnome-unstable/gnome-session/gnome-session.install
new file mode 100644
index 000000000..74cf4ed22
--- /dev/null
+++ b/gnome-unstable/gnome-session/gnome-session.install
@@ -0,0 +1,18 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.91.91.3-3) < 0 )); then
+ usr/sbin/gconfpkg --uninstall gnome-session
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/gnome-settings-daemon/PKGBUILD b/gnome-unstable/gnome-settings-daemon/PKGBUILD
new file mode 100644
index 000000000..fa51f3ad8
--- /dev/null
+++ b/gnome-unstable/gnome-settings-daemon/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 117718 2011-04-04 17:03:46Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-settings-daemon
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="The GNOME Settings daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libgnomekbd' 'gnome-desktop' 'libnotify' 'hicolor-icon-theme' 'libpulse' 'libcanberra' 'gsettings-desktop-schemas' 'nss' 'gconf' 'dconf')
+makedepends=('intltool' 'gtk-doc')
+options=('!emptydirs' '!libtool')
+install=gnome-settings-daemon.install
+url="http://www.gnome.org"
+groups=('gnome')
+replaces=(gnome-settings-daemon-pulse)
+conflicts=(gnome-settings-daemon-pulse)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('95861878f373ac624d32c1667a79ea7b235ccb964ff4579971a6a1566e20d5d2')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/bin --disable-static --enable-pulse
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-settings-daemon/gnome-settings-daemon.install b/gnome-unstable/gnome-settings-daemon/gnome-settings-daemon.install
new file mode 100644
index 000000000..483fb9450
--- /dev/null
+++ b/gnome-unstable/gnome-settings-daemon/gnome-settings-daemon.install
@@ -0,0 +1,18 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall gnome-settings-daemon
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/gnome-shell/PKGBUILD b/gnome-unstable/gnome-shell/PKGBUILD
new file mode 100644
index 000000000..7f585dbeb
--- /dev/null
+++ b/gnome-unstable/gnome-shell/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 117935 2011-04-04 21:51:01Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Flamelab <panosfilip@gmail.com
+
+pkgname=gnome-shell
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="The next generation GNOME Shell"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/GnomeShell"
+license=('GPL2')
+depends=('mutter' 'gconf' 'dconf' 'gjs' 'gnome-menus' 'gnome-desktop' 'libcroco' 'libcanberra' 'libpulse' 'telepathy-glib' 'polkit-gnome'
+ 'gobject-introspection' 'evolution-data-server' 'gnome-bluetooth' 'gstreamer0.10' 'telepathy-logger')
+makedepends=('intltool' 'gnome-doc-utils')
+options=('!libtool' '!emptydirs')
+install=gnome-shell.install
+groups=(gnome)
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('3036f9e2b738fef4fd457b6d1ddf78d68d7a56235072a19168ae643a164b1a2f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-shell \
+ --localstatedir=/var --disable-static \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-shell ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gnome-shell/gnome-shell.install b/gnome-unstable/gnome-shell/gnome-shell.install
new file mode 100644
index 000000000..a07105c24
--- /dev/null
+++ b/gnome-unstable/gnome-shell/gnome-shell.install
@@ -0,0 +1,22 @@
+pkgname=gnome-shell
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
diff --git a/gnome-unstable/gnome-system-monitor/PKGBUILD b/gnome-unstable/gnome-system-monitor/PKGBUILD
new file mode 100644
index 000000000..937761272
--- /dev/null
+++ b/gnome-unstable/gnome-system-monitor/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117833 2011-04-04 18:12:02Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-system-monitor
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A system monitor for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libwnck3' 'libgtop' 'gtkmm3' 'librsvg' 'gnome-icon-theme')
+makedepends=('pkgconfig' 'gnome-doc-utils' 'intltool')
+options=(!emptydirs)
+url="http://www.gnome.org"
+groups=('gnome-extra')
+install=gnome-system-monitor.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8d4b695ec165645c3d070f3296dc25cea4e3f1f4da7b4afa10ff1c166cc62d24')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gnome-system-monitor/gnome-system-monitor.install b/gnome-unstable/gnome-system-monitor/gnome-system-monitor.install
new file mode 100644
index 000000000..e2957a570
--- /dev/null
+++ b/gnome-unstable/gnome-system-monitor/gnome-system-monitor.install
@@ -0,0 +1,19 @@
+pkgname=gnome-system-monitor
+
+post_install() {
+ glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/gnome-terminal/PKGBUILD b/gnome-unstable/gnome-terminal/PKGBUILD
new file mode 100644
index 000000000..4d4dc22d2
--- /dev/null
+++ b/gnome-unstable/gnome-terminal/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 117627 2011-04-04 13:16:04Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-terminal
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="The GNOME Terminal Emulator"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gconf' 'vte3' 'gsettings-desktop-schemas' 'libsm')
+makedepends=('gnome-doc-utils' 'gtk2' 'intltool')
+#gtk2 is needed for gtk-builder-convert
+#https://bugzilla.gnome.org/show_bug.cgi?id=588945
+#https://bugzilla.gnome.org/show_bug.cgi?id=588732
+options=('!emptydirs')
+url="http://www.gnome.org"
+groups=('gnome')
+install=gnome-terminal.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('16a3420176bbe5d58ad432306bfc40edb1423d43e311dd1d0de6da16559943f8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper \
+ --with-gtk=3.0
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-terminal ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gnome-terminal/gnome-terminal.install b/gnome-unstable/gnome-terminal/gnome-terminal.install
new file mode 100644
index 000000000..04c2b3c2c
--- /dev/null
+++ b/gnome-unstable/gnome-terminal/gnome-terminal.install
@@ -0,0 +1,17 @@
+pkgname=gnome-terminal
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/gnome-unstable/gnome-themes-standard/PKGBUILD b/gnome-unstable/gnome-themes-standard/PKGBUILD
new file mode 100644
index 000000000..0e53a5ebe
--- /dev/null
+++ b/gnome-unstable/gnome-themes-standard/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117713 2011-04-04 17:01:29Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=gnome-themes-standard
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Default themes for the GNOME desktop"
+arch=('i686' 'x86_64')
+url="http://abattis.org/cantarell/"
+license=('GPL2')
+depends=('cantarell-fonts' 'gtk3' 'gtk-engines')
+makedepends=('intltool')
+groups=('gnome')
+replaces=('gnome-themes')
+conflicts=('gnome-themes')
+source=(http://download.gnome.org/sources/$pkgname/3.0/$pkgname-${pkgver}.tar.bz2)
+sha256sums=('ea6215d814da2301e4a287e454693ee62616c0e42b57b0576c2489786e3487f3')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/gnome-user-share/PKGBUILD b/gnome-unstable/gnome-user-share/PKGBUILD
new file mode 100644
index 000000000..e9c45f0d5
--- /dev/null
+++ b/gnome-unstable/gnome-user-share/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117703 2011-04-04 16:40:52Z ibiru $
+# Maintainer: Roman Kyrylych <roman@archlinux.org>
+
+pkgname=gnome-user-share
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Easy to use user-level file sharing for GNOME."
+arch=('i686' 'x86_64')
+url="http://ftp.gnome.org/pub/GNOME/sources/gnome-user-share/"
+license=('GPL')
+depends=('mod_dnssd' 'gconf' 'gtk3' 'hicolor-icon-theme' 'libnotify' 'gnome-bluetooth' 'libcanberra')
+makedepends=('intltool' 'gnome-doc-utils' 'nautilus')
+options=('!emptydirs' '!libtool')
+install=gnome-user-share.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1987d08ebb88bd3fecd7c76d2d9549dba2c7132a7c2b3cfe68fdc2a24260fafe')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-user-share \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema ${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas --domain gnome-user-share ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gnome-user-share/gnome-user-share.install b/gnome-unstable/gnome-user-share/gnome-user-share.install
new file mode 100644
index 000000000..3cc1b5286
--- /dev/null
+++ b/gnome-unstable/gnome-user-share/gnome-user-share.install
@@ -0,0 +1,22 @@
+pkgname=gnome-user-share
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gnome-utils/PKGBUILD b/gnome-unstable/gnome-utils/PKGBUILD
new file mode 100644
index 000000000..6021cd8f2
--- /dev/null
+++ b/gnome-unstable/gnome-utils/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 117775 2011-04-04 17:51:42Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnome-utils
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Common utilities for GNOME"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('libgtop' 'libcanberra' 'libsm' 'gconf' 'gsettings-desktop-schemas' 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('gnome-doc-utils' 'pkgconfig' 'intltool')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+groups=('gnome-extra')
+install=gnome-utils.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1cc095f69f4e224509727f648797fdee2190405a0f9005a65e4a0c53ae6547a6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gnome-utils \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper \
+ --disable-schemas-compile \
+ --disable-schemas-install
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-utils-2.0 ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+
+ # remove it also from Xfce menu that ships its own thingy
+ sed -i -e "s/NotShowIn\=KDE\;/NotShowIn\=KDE\;XFCE\;/" ${pkgdir}/usr/share/applications/gnome-dictionary.desktop
+ sed -i -e "s/NotShowIn\=KDE\;/NotShowIn\=KDE\;XFCE\;/" ${pkgdir}/usr/share/applications/gnome-screenshot.desktop
+}
diff --git a/gnome-unstable/gnome-utils/gnome-utils.install b/gnome-unstable/gnome-utils/gnome-utils.install
new file mode 100644
index 000000000..a04bda405
--- /dev/null
+++ b/gnome-unstable/gnome-utils/gnome-utils.install
@@ -0,0 +1,26 @@
+pkgname=gnome-utils
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
diff --git a/gnome-unstable/gobject-introspection/PKGBUILD b/gnome-unstable/gobject-introspection/PKGBUILD
new file mode 100644
index 000000000..28bfa503e
--- /dev/null
+++ b/gnome-unstable/gobject-introspection/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117813 2011-04-04 18:05:41Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=gobject-introspection
+pkgver=0.10.7
+pkgrel=1
+pkgdesc="Introspection system for GObject-based libraries"
+url="http://live.gnome.org/GObjectInstrospection"
+arch=('x86_64' 'i686')
+license=('LGPL' 'GPL')
+depends=('libffi' 'glib2' 'python2')
+makedepends=('cairo')
+conflicts=('gir-repository')
+replaces=('gir-repository')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.10/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('a20a0e28f4dfb770f05718eb25d20055c853f2b041f03802008bd2040d13cb57')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ sed -i '1s|#!/usr/bin/env python$|&2|' \
+ "${pkgdir}"/usr/lib/gobject-introspection/giscanner/*.py
+}
diff --git a/gnome-unstable/gthumb/PKGBUILD b/gnome-unstable/gthumb/PKGBUILD
new file mode 100644
index 000000000..b77bf1bae
--- /dev/null
+++ b/gnome-unstable/gthumb/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 113327 2011-03-08 12:34:07Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=gthumb
+pkgver=2.13.1
+pkgrel=1
+pkgdesc="Image browser and viewer for the GNOME Desktop"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://gthumb.sourceforge.net/"
+depends=('desktop-file-utils' 'libunique' 'gconf' 'exiv2' 'libsoup-gnome' 'clutter-gtk2')
+makedepends=('intltool' 'gnome-doc-utils' 'libsm' 'gstreamer0.10-base' 'brasero')
+optdepends=('gstreamer0.10-base: video support')
+options=('!libtool' '!emptydirs')
+install=gthumb.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('3b124e1b3ae5a3496d9392c11052792e5168535b849756b53cefd9d7b1e8e7b9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-libbrasero
+ make V=1
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gthumb "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gthumb/gthumb.install b/gnome-unstable/gthumb/gthumb.install
new file mode 100644
index 000000000..6046ebb6f
--- /dev/null
+++ b/gnome-unstable/gthumb/gthumb.install
@@ -0,0 +1,24 @@
+pkgname=gthumb
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gtk-vnc/PKGBUILD b/gnome-unstable/gtk-vnc/PKGBUILD
new file mode 100644
index 000000000..9487d8769
--- /dev/null
+++ b/gnome-unstable/gtk-vnc/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 110311 2011-02-18 20:01:10Z heftig $
+# Maintainer:
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=gtk-vnc
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="A VNC viewer widget for GTK"
+arch=('i686' 'x86_64')
+url="http://live.gnome.org/gtk-vnc"
+license=('LGPL')
+depends=('gtk3')
+optdepends=('gtk2: GTK2 widget')
+makedepends=('intltool' 'pygtk' 'pygobject-devel' 'gtk-doc' 'gtk2')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('b9870d923d636d2e7547267d01c8cafdc06ad5b5b4987003ea3cd567bfbb6377')
+
+build() {
+ cd "$srcdir"
+ cp -a $pkgname-$pkgver gtk3-build
+
+ ( cd $pkgname-$pkgver
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --with-python --disable-static --with-gtk=2.0
+ make )
+
+ ( cd gtk3-build
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --with-python --with-examples --disable-static --with-gtk=3.0
+ make )
+}
+
+package() {
+ cd "${srcdir}"
+ make -C $pkgname-$pkgver -j1 DESTDIR="${pkgdir}" install
+ make -C gtk3-build -j1 DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gtk2/PKGBUILD b/gnome-unstable/gtk2/PKGBUILD
new file mode 100644
index 000000000..08615d760
--- /dev/null
+++ b/gnome-unstable/gtk2/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 117444 2011-04-02 06:12:32Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gtk2
+pkgname=('gtk2' 'gtk-update-icon-cache')
+pkgver=2.24.4
+pkgrel=1
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'heimdal' 'gnutls'
+ 'shared-mime-info' 'cairo' 'libcups' 'gdk-pixbuf2' 'gobject-introspection')
+options=('!libtool' '!docs')
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${pkgver}.tar.bz2
+ xid-collision-debug.patch)
+sha256sums=('7d3033ad83647079977466d3e8f1a7533f47abd5cc693f01b8797ff43dd407a5'
+ 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558')
+
+build() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ patch -Np1 -i "${srcdir}/xid-collision-debug.patch"
+
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --with-xinput=yes
+ make
+}
+package_gtk2() {
+ pkgdesc="The GTK+ Toolkit (v2)"
+ install=gtk2.install
+ depends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'heimdal' 'gnutls' 'shared-mime-info' 'cairo' 'libcups' 'gtk-update-icon-cache')
+ backup=(etc/gtk-2.0/gtkrc)
+
+ cd "${srcdir}/gtk+-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ sed -i "s#env python#env python2#" $pkgdir/usr/bin/gtk-builder-convert
+ echo 'gtk-fallback-icon-theme = "gnome"' > "${pkgdir}/etc/gtk-2.0/gtkrc"
+ #split this out to use with gtk3 too
+ rm ${pkgdir}/usr/bin/gtk-update-icon-cache
+}
+package_gtk-update-icon-cache() {
+ pkgdesc="The GTK+ update icon cache tool"
+ depends=('gdk-pixbuf2')
+
+ cd "${srcdir}/gtk+-${pkgver}/gtk"
+
+ install -D -m755 gtk-update-icon-cache ${pkgdir}/usr/bin/gtk-update-icon-cache
+}
diff --git a/gnome-unstable/gtk2/gtk2.install b/gnome-unstable/gtk2/gtk2.install
new file mode 100644
index 000000000..4e2b72f1b
--- /dev/null
+++ b/gnome-unstable/gtk2/gtk2.install
@@ -0,0 +1,16 @@
+post_install() {
+ usr/bin/gtk-query-immodules-2.0 > etc/gtk-2.0/gtk.immodules
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f etc/gtk-2.0/gtk.immodules &>/dev/null
+ rm -f etc/gtk-2.0/gdk-pixbuf.loaders &>/dev/null
+}
diff --git a/gnome-unstable/gtk2/xid-collision-debug.patch b/gnome-unstable/gtk2/xid-collision-debug.patch
new file mode 100644
index 000000000..d61238c3b
--- /dev/null
+++ b/gnome-unstable/gtk2/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+ if (!display_x11->xid_ht)
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+-
++/*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+-
++*/
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+
diff --git a/gnome-unstable/gtk3/PKGBUILD b/gnome-unstable/gtk3/PKGBUILD
new file mode 100644
index 000000000..64d2efb0c
--- /dev/null
+++ b/gnome-unstable/gtk3/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 117508 2011-04-04 09:35:23Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtk3
+pkgver=3.0.8
+pkgrel=1
+pkgdesc="The GTK+ Toolkit (v3)"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+install=gtk3.install
+depends=('atk' 'cairo' 'gtk-update-icon-cache' 'gnutls' 'heimdal' 'libcups' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage' 'pango' 'shared-mime-info')
+makedepends=('gobject-introspection')
+options=('!libtool' '!docs')
+backup=(etc/gtk-3.0/settings.ini)
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/3.0/gtk+-${pkgver}.tar.bz2
+ settings.ini)
+sha256sums=('42b2b1a400372fe0b3ef890162d1610422f7e787af0765b59f1b3352a4839308'
+ 'c214d3dcdcadda3d642112287524ab3e526ad592b70895c9f3e3733c23701621')
+
+build() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --enable-gtk2-dependency \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 "${srcdir}/settings.ini" "${pkgdir}/etc/gtk-3.0/settings.ini"
+}
diff --git a/gnome-unstable/gtk3/gtk3.install b/gnome-unstable/gtk3/gtk3.install
new file mode 100644
index 000000000..cd8965d1f
--- /dev/null
+++ b/gnome-unstable/gtk3/gtk3.install
@@ -0,0 +1,15 @@
+post_install() {
+ usr/bin/gtk-query-immodules-3.0 --update-cache
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib/gtk-3.0/3.0.0/immodules.cache
+}
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
diff --git a/gnome-unstable/gtk3/settings.ini b/gnome-unstable/gtk3/settings.ini
new file mode 100644
index 000000000..039000d38
--- /dev/null
+++ b/gnome-unstable/gtk3/settings.ini
@@ -0,0 +1,2 @@
+[Settings]
+gtk-fallback-icon-theme = gnome
diff --git a/gnome-unstable/gtkhtml4/PKGBUILD b/gnome-unstable/gtkhtml4/PKGBUILD
new file mode 100644
index 000000000..9a75dcee1
--- /dev/null
+++ b/gnome-unstable/gtkhtml4/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117533 2011-04-04 10:22:45Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtkhtml4
+_pkgbasename=gtkhtml
+pkgver=4.0.0
+pkgrel=1
+pkgdesc="A lightweight HTML renderer/editor widget for GTK3"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gconf' 'enchant' 'iso-codes' 'gnome-icon-theme' 'libsoup')
+makedepends=('intltool')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/${pkgver%.*}/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('6e2f267e3de5fe689310ad61c0ecc35faa8ba79d69d77b80addc6e94ebf3c297')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/gtkhtml3 \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gtkmm/PKGBUILD b/gnome-unstable/gtkmm/PKGBUILD
new file mode 100644
index 000000000..01ef5a9a5
--- /dev/null
+++ b/gnome-unstable/gtkmm/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 109786 2011-02-12 18:59:28Z ibiru $
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gtkmm
+pkgname=('gtkmm' 'gtkmm-docs')
+pkgver=2.24.0
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('gtk2' 'pangomm' 'atkmm' 'glibmm-docs')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgbase}/2.24/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('8cbae7254746bc7df7cce882d9b9a916c4e00dba7bdacd1c50b5d096a484cf56')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_gtkmm() {
+ pkgdesc="C++ bindings for gtk2"
+ depends=('gtk2' 'pangomm' 'atkmm')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gtkmm-docs() {
+ pkgdesc="Developer documentation for gtkmm v2"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C docs DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gtkmm3/PKGBUILD b/gnome-unstable/gtkmm3/PKGBUILD
new file mode 100644
index 000000000..f9ba366b5
--- /dev/null
+++ b/gnome-unstable/gtkmm3/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 116743 2011-03-25 16:29:14Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgbase=gtkmm3
+_pkgbasename=gtkmm
+pkgname=('gtkmm3' 'gtkmm3-docs')
+pkgver=2.99.8
+pkgrel=1
+arch=('i686' 'x86_64')
+makedepends=('gtk3' 'pangomm' 'atkmm' 'glibmm-docs' 'mm-common')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+url="http://gtkmm.sourceforge.net/"
+source=(http://ftp.gnome.org/pub/GNOME/sources/${_pkgbasename}/2.99/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('0ee2283d5aa27c1ebf3fd8bae36d9345f9625590ac9f07212e1c97626440d144')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package_gtkmm3() {
+ pkgdesc="C++ bindings for gtk3"
+ depends=('gtk3' 'pangomm' 'atkmm')
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gtkmm3-docs() {
+ pkgdesc="Developer documentation for gtkmm v3"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make -C docs DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gtksourceview3/PKGBUILD b/gnome-unstable/gtksourceview3/PKGBUILD
new file mode 100644
index 000000000..584f1a00b
--- /dev/null
+++ b/gnome-unstable/gtksourceview3/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 117783 2011-04-04 17:54:27Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=gtksourceview3
+_pkgbasename=gtksourceview
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A text widget adding syntax highlighting and more to GNOME"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('gtk3' 'libxml2')
+makedepends=('intltool' 'pkgconfig' 'gobject-introspection')
+options=('!libtool')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/$_pkgbasename/${pkgver%.*}/$_pkgbasename-${pkgver}.tar.bz2)
+sha256sums=('5d871c62cd9fe4dcd0386f69bdb6c7f308a4d3122f27cbb1b7bcc9e03c9ac08d')
+
+build() {
+ cd "${srcdir}/$_pkgbasename-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/$_pkgbasename-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/gucharmap/PKGBUILD b/gnome-unstable/gucharmap/PKGBUILD
new file mode 100644
index 000000000..6ea02f64f
--- /dev/null
+++ b/gnome-unstable/gucharmap/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 117673 2011-04-04 16:06:31Z ibiru $
+# Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=gucharmap
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Gnome Unicode Charmap"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org"
+depends=('gconf' 'hicolor-icon-theme')
+makedepends=('gtk-doc' 'intltool' 'gobject-introspection')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+install=gucharmap.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e95c161f7c229e27a7acb3d5212a95ec3564b5bc2964c1607ab32ef24f093bf0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-scrollkeeper --with-gtk=3.0 \
+ --enable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -j1 GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gucharmap ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/gucharmap/gucharmap.install b/gnome-unstable/gucharmap/gucharmap.install
new file mode 100644
index 000000000..4de3253f6
--- /dev/null
+++ b/gnome-unstable/gucharmap/gucharmap.install
@@ -0,0 +1,22 @@
+pkgname=gucharmap
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/gvfs/PKGBUILD b/gnome-unstable/gvfs/PKGBUILD
new file mode 100644
index 000000000..a063990d5
--- /dev/null
+++ b/gnome-unstable/gvfs/PKGBUILD
@@ -0,0 +1,101 @@
+# $Id: PKGBUILD 117736 2011-04-04 17:38:08Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=gvfs
+pkgname=('gvfs' 'gvfs-smb' 'gvfs-afc' 'gvfs-gphoto2' 'gvfs-obexftp')
+pkgver=1.8.0
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('libsoup-gnome' 'libcdio' 'fuse' 'bluez' 'smbclient' 'libgphoto2'
+ 'libarchive' 'gnome-disk-utility' 'pkgconfig' 'intltool'
+ 'libimobiledevice')
+url="http://www.gnome.org"
+options=(!libtool)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('45e741fdb7c7a9b4d6605851429775a1e9e7262506a4bd7b353c3b0d857c3626')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gvfs \
+ --with-bash-completion-dir=/etc/bash_completion.d
+ make
+}
+
+package_gvfs() {
+ pkgdesc="Userspace virtual filesystem implemented as a pluggable module for gio"
+ depends=('libsoup-gnome' 'gnome-disk-utility' 'libcdio' 'fuse' 'libarchive')
+ optdepends=('gvfs-afc: AFC (mobile devices) support'
+ 'gvfs-smb: SMB/CIFS (Windows client) support'
+ 'gvfs-gphoto2: gphoto2 (PTP camera/MTP media player) support'
+ 'gvfs-obexftp: ObexFTP (bluetooth) support')
+ install=gvfs.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -e 's/^am__append_3/#am__append_3/' \
+ -e 's/^am__append_4/#am__append_4/' \
+ -i monitor/Makefile
+ make DESTDIR="${pkgdir}" install
+
+ cd "${pkgdir}"
+ rm usr/lib/gvfs/gvfsd-{smb,smb-browse,afc,gphoto2,obexftp}
+ rm usr/share/gvfs/mounts/{smb,smb-browse,afc,gphoto2,obexftp}.mount
+ rm usr/share/glib-2.0/schemas/org.gnome.system.smb.gschema.xml
+ rm usr/share/GConf/gsettings/gvfs-smb.convert
+}
+
+package_gvfs-smb() {
+ pkgdesc="SMB/CIFS (Windows client) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'smbclient' 'libgnome-keyring')
+ install=gvfs-smb.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -m755 -d "${pkgdir}/usr/lib/gvfs"
+ install -m755 -d "${pkgdir}/usr/share/gvfs/mounts"
+
+ install -m755 .libs/gvfsd-smb{,-browse} "${pkgdir}/usr/lib/gvfs/"
+ install -m644 smb{,-browse}.mount "${pkgdir}/usr/share/gvfs/mounts/"
+
+ install -Dm644 org.gnome.system.smb.gschema.xml \
+ "${pkgdir}/usr/share/glib-2.0/schemas/org.gnome.system.smb.gschema.xml"
+ install -Dm644 gvfs-smb.convert \
+ "${pkgdir}/usr/share/GConf/gsettings/gvfs-smb.convert"
+}
+
+package_gvfs-afc() {
+ pkgdesc="AFC (mobile devices) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'libimobiledevice')
+ install=gvfs-module.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -D .libs/gvfsd-afc "${pkgdir}/usr/lib/gvfs/gvfsd-afc"
+ install -Dm644 afc.mount "${pkgdir}/usr/share/gvfs/mounts/afc.mount"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/monitor/afc"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gvfs-gphoto2() {
+ pkgdesc="gphoto2 (PTP camera/MTP media player) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'dbus-core' 'libgphoto2' 'udev')
+ install=gvfs-module.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -D .libs/gvfsd-gphoto2 "${pkgdir}/usr/lib/gvfs/gvfsd-gphoto2"
+ install -Dm644 gphoto2.mount "${pkgdir}/usr/share/gvfs/mounts/gphoto2.mount"
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/monitor/gphoto2"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gvfs-obexftp() {
+ pkgdesc="ObexFTP (bluetooth) backend for gvfs"
+ depends=("gvfs=${pkgver}" 'dbus-glib' 'bluez' 'obex-data-server')
+ install=gvfs-module.install
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/daemon"
+ install -D .libs/gvfsd-obexftp "${pkgdir}/usr/lib/gvfs/gvfsd-obexftp"
+ install -Dm644 obexftp.mount "${pkgdir}/usr/share/gvfs/mounts/obexftp.mount"
+}
diff --git a/gnome-unstable/gvfs/gvfs-module.install b/gnome-unstable/gvfs/gvfs-module.install
new file mode 100644
index 000000000..09d1f11ec
--- /dev/null
+++ b/gnome-unstable/gvfs/gvfs-module.install
@@ -0,0 +1,7 @@
+post_install() {
+ killall -USR1 gvfsd >&/dev/null || :
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/gnome-unstable/gvfs/gvfs-smb.install b/gnome-unstable/gvfs/gvfs-smb.install
new file mode 100644
index 000000000..0b8783c7b
--- /dev/null
+++ b/gnome-unstable/gvfs/gvfs-smb.install
@@ -0,0 +1,12 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ killall -USR1 gvfsd >&/dev/null || :
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
diff --git a/gnome-unstable/gvfs/gvfs.install b/gnome-unstable/gvfs/gvfs.install
new file mode 100644
index 000000000..9458b1513
--- /dev/null
+++ b/gnome-unstable/gvfs/gvfs.install
@@ -0,0 +1,14 @@
+post_install() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ killall -USR1 gvfsd >&/dev/null || :
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ usr/bin/gio-querymodules usr/lib/gio/modules
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
diff --git a/gnome-unstable/lcms2/PKGBUILD b/gnome-unstable/lcms2/PKGBUILD
new file mode 100644
index 000000000..f33702fb4
--- /dev/null
+++ b/gnome-unstable/lcms2/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 111439 2011-02-26 20:12:41Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Lukas Jirkovsky <l.jirkovsky@gmail.com>
+
+pkgname=lcms2
+pkgver=2.1
+pkgrel=1
+pkgdesc="Small-footprint color management engine, version 2"
+arch=(i686 x86_64)
+license=('custom')
+depends=('libtiff>=3.9.4')
+url="http://www.littlecms.com"
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/lcms/$pkgname-$pkgver.tar.gz)
+md5sums=('08036edb115ad74456dfa20b1998b5f4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+ install -Dm 644 COPYING \
+ "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/gnome-unstable/libcanberra/PKGBUILD b/gnome-unstable/libcanberra/PKGBUILD
new file mode 100644
index 000000000..95fc05a5d
--- /dev/null
+++ b/gnome-unstable/libcanberra/PKGBUILD
@@ -0,0 +1,72 @@
+# $Id: PKGBUILD 109949 2011-02-14 08:47:45Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libcanberra
+pkgname=(libcanberra libcanberra-pulse libcanberra-gstreamer)
+pkgver=0.26
+pkgrel=5
+pkgdesc="A small and lightweight implementation of the XDG Sound Theme Specification"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('libvorbis' 'libtool' 'alsa-lib' 'tdb')
+makedepends=('gtk-doc' 'libpulse' 'gstreamer0.10' 'gtk2' 'gtk3')
+options=(!emptydirs)
+url=http://0pointer.de/lennart/projects/libcanberra
+source=(http://0pointer.de/lennart/projects/${pkgbase}/${pkgbase}-${pkgver}.tar.gz
+ libcanberra-gtk-module.sh libcanberra-quit-add.patch)
+md5sums=('ee2c66ada7c851a4e7b6eb1682285a24'
+ 'a54799e624aac814b9343ab05f25c38b'
+ 'a147bce8a7addcd40b21faaaf028819b')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libcanberra-quit-add.patch"
+ ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var \
+ --disable-static --with-builtin=dso --enable-null --disable-oss \
+ --enable-alsa --enable-gstreamer --enable-pulse
+ make
+}
+
+package_libcanberra() {
+ install=libcanberra.install
+ optdepends=("$pkgbase-pulse: PulseAudio driver"
+ "$pkgbase-gstreamer: GStreamer driver")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -j1 DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}"/usr/lib/libcanberra-gtk*.la
+ rm -f "${pkgdir}"/usr/lib/gtk-{2,3}.0/modules/*.la
+
+ install -m755 -d "${pkgdir}/usr/share/gconf"
+ mv "${pkgdir}/etc/gconf/schemas" "${pkgdir}/usr/share/gconf/"
+
+ install -m755 -d "${pkgdir}/etc/X11/xinit/xinitrc.d"
+ install -m755 "${srcdir}/libcanberra-gtk-module.sh" "${pkgdir}/etc/X11/xinit/xinitrc.d/40-libcanberra-gtk-module"
+
+ # Split plugins
+ for _p in pulse gstreamer; do
+ mkdir $_p-plugin
+ mv "${pkgdir}"/usr/lib/${pkgbase}-${pkgver}/${pkgbase}-$_p.* $_p-plugin
+ done
+}
+
+package_libcanberra-pulse() {
+ pkgdesc="PulseAudio plugin for libcanberra"
+ depends=("$pkgbase=$pkgver-$pkgrel" 'libpulse')
+ groups=('pulseaudio-gnome')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ mkdir -p "${pkgdir}/usr/lib/${pkgbase}-${pkgver}"
+ mv pulse-plugin/* "${pkgdir}/usr/lib/${pkgbase}-${pkgver}"
+}
+
+package_libcanberra-gstreamer() {
+ pkgdesc="GStreamer plugin for libcanberra"
+ depends=("$pkgbase=$pkgver-$pkgrel" 'gstreamer0.10')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ mkdir -p "${pkgdir}/usr/lib/${pkgbase}-${pkgver}"
+ mv gstreamer-plugin/* "${pkgdir}/usr/lib/${pkgbase}-${pkgver}"
+}
diff --git a/gnome-unstable/libcanberra/libcanberra-gtk-module.sh b/gnome-unstable/libcanberra/libcanberra-gtk-module.sh
new file mode 100644
index 000000000..fbb7ff783
--- /dev/null
+++ b/gnome-unstable/libcanberra/libcanberra-gtk-module.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+if [ -z "$GTK_MODULES" ] ; then
+ GTK_MODULES="canberra-gtk-module"
+else
+ GTK_MODULES="$GTK_MODULES:canberra-gtk-module"
+fi
+
+export GTK_MODULES
+
diff --git a/gnome-unstable/libcanberra/libcanberra-quit-add.patch b/gnome-unstable/libcanberra/libcanberra-quit-add.patch
new file mode 100644
index 000000000..0094569ae
--- /dev/null
+++ b/gnome-unstable/libcanberra/libcanberra-quit-add.patch
@@ -0,0 +1,24 @@
+diff -up libcanberra-0.26/src/canberra-gtk-module.c.quit-add libcanberra-0.26/src/canberra-gtk-module.c
+--- libcanberra-0.26/src/canberra-gtk-module.c.quit-add 2011-01-07 22:48:49.388992626 -0500
++++ libcanberra-0.26/src/canberra-gtk-module.c 2011-01-07 22:49:02.339995153 -0500
+@@ -932,11 +932,6 @@ static void connect_settings(void) {
+ connected = TRUE;
+ }
+
+-static gboolean quit_handler(gpointer data) {
+- dispatch_queue();
+- return FALSE;
+-}
+-
+ G_MODULE_EXPORT void gtk_module_init(gint *argc, gchar ***argv[]) {
+
+ /* This is the same quark libgnomeui uses! */
+@@ -963,8 +958,6 @@ G_MODULE_EXPORT void gtk_module_init(gin
+ install_hook(GTK_TYPE_WIDGET, "drag-drop", &signal_id_widget_drag_drop);
+ install_hook(GTK_TYPE_WIDGET, "drag-failed", &signal_id_widget_drag_failed);
+ install_hook(GTK_TYPE_EXPANDER, "activate", &signal_id_expander_activate);
+-
+- gtk_quit_add(1, quit_handler, NULL);
+ }
+
+ G_MODULE_EXPORT gchar* g_module_check_init(GModule *module);
diff --git a/gnome-unstable/libcanberra/libcanberra.install b/gnome-unstable/libcanberra/libcanberra.install
new file mode 100644
index 000000000..7f5012199
--- /dev/null
+++ b/gnome-unstable/libcanberra/libcanberra.install
@@ -0,0 +1,23 @@
+pkgname=libcanberra
+
+post_install() {
+ if [ -x usr/sbin/gconfpkg ]; then
+ usr/sbin/gconfpkg --install ${pkgname}
+ fi
+}
+
+pre_upgrade() {
+ if [ -f usr/share/gconf/schemas/${pkgname}.schemas ]; then
+ pre_remove
+ fi
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ if [ -x usr/sbin/gconfpkg ]; then
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+ fi
+}
diff --git a/gnome-unstable/libchamplain/PKGBUILD b/gnome-unstable/libchamplain/PKGBUILD
new file mode 100644
index 000000000..8e3dd885c
--- /dev/null
+++ b/gnome-unstable/libchamplain/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 117872 2011-04-04 20:57:39Z ibiru $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Michael Kanis <mkanis@gmx.de>
+
+pkgname=libchamplain
+pkgver=0.10.0
+pkgrel=2
+pkgdesc="Gtk3 widget for displaying rasterized maps"
+url="http://projects.gnome.org/libchamplain/"
+license=('LGPL')
+arch=('i686' 'x86_64')
+options=('!libtool')
+depends=('clutter-gtk' 'libsoup-gnome' 'cairo' 'sqlite3')
+makedepends=('gobject-introspection' 'gtk-doc' 'vala')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('98700bb3f3ada5f9bd6b938486e55f90ea76ce4108a8b62928cf185ded49dbb1')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --disable-static --disable-debug \
+ --enable-vala
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/gnome-unstable/libdmapsharing/PKGBUILD b/gnome-unstable/libdmapsharing/PKGBUILD
new file mode 100644
index 000000000..7f53d6f01
--- /dev/null
+++ b/gnome-unstable/libdmapsharing/PKGBUILD
@@ -0,0 +1,21 @@
+# $Id: PKGBUILD 117405 2011-04-01 16:34:19Z ibiru $
+#Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libdmapsharing
+pkgver=2.9.7
+pkgrel=1
+pkgdesc="Libdmapsharing is a library you may use to access and share DMAP content"
+arch=('i686' 'x86_64')
+url="http://www.flyn.org/projects/libdmapsharing/index.html"
+license=('LGPL2.1')
+depends=('libsoup' 'avahi' 'gstreamer0.10-base' 'gdk-pixbuf2')
+options=('!libtool')
+source=(http://www.flyn.org/projects/libdmapsharing/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5eeded6d82ed2c2f6f310b9bd484798c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --with-mdns=avahi
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libgda/PKGBUILD b/gnome-unstable/libgda/PKGBUILD
new file mode 100644
index 000000000..61d8dce99
--- /dev/null
+++ b/gnome-unstable/libgda/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 113377 2011-03-08 13:22:49Z heftig $
+# Maintainer: tobias <tobias@archlinux.org>
+# Contributor: Tobias Kieslich <tobias@justdreams.de>
+
+pkgname=libgda
+pkgver=4.2.5
+pkgrel=1
+pkgdesc="Data abstraction layer with mysql, pgsql, xml, sqlite providers"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('gtksourceview2' 'libunique' 'libxslt' 'db' 'ncurses' 'libsoup'
+ 'libmysqlclient' 'postgresql-libs' 'python2' 'libgnome-keyring'
+ 'hicolor-icon-theme' 'desktop-file-utils')
+makedepends=('intltool')
+options=('!libtool' '!makeflags')
+url="http://www.gnome-db.org"
+install=libgda.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('b98d6063469a1ba8226d94800732544be629c55132516de741c937e8bf175f13')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i '1s/python$/&2/' libgda-report/RML/trml*/trml*.py
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --with-bdb=/usr --with-bdb-libdir-name=lib \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libgda/libgda.install b/gnome-unstable/libgda/libgda.install
new file mode 100644
index 000000000..c317fbaca
--- /dev/null
+++ b/gnome-unstable/libgda/libgda.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/libgdata/PKGBUILD b/gnome-unstable/libgdata/PKGBUILD
new file mode 100644
index 000000000..695d8c10d
--- /dev/null
+++ b/gnome-unstable/libgdata/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 109662 2011-02-11 17:56:10Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgdata
+pkgver=0.8.0
+pkgrel=1
+pkgdesc="GLib-based library for accessing online service APIs using the GData protocol"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libsoup-gnome')
+makedepends=('pkgconfig' 'intltool' 'gobject-introspection')
+url="http://www.gnome.org"
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1a816dda7de8ce162e00cc1c782a5ae25230a36d56c590a67d86848058797c9f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libgnome-keyring/PKGBUILD b/gnome-unstable/libgnome-keyring/PKGBUILD
new file mode 100644
index 000000000..3162e66be
--- /dev/null
+++ b/gnome-unstable/libgnome-keyring/PKGBUILD
@@ -0,0 +1,28 @@
+#$Id: PKGBUILD 117577 2011-04-04 11:19:35Z ibiru $
+#Maintainer: Jan De Groot <jgc@archlinux.org>
+
+pkgname=libgnome-keyring
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="GNOME keyring client library"
+arch=(i686 x86_64)
+license=('GPL' 'LGPL')
+depends=('dbus-core' 'libgcrypt' 'glib2')
+makedepends=('intltool' 'pkgconfig')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('165e653d93e6ab74ea0a32e6fbbcd2b38a18aeadccf6f7082a0fa3d21bf1ce01')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/gnome-keyring
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libgnome-media-profiles/PKGBUILD b/gnome-unstable/libgnome-media-profiles/PKGBUILD
new file mode 100644
index 000000000..93472debf
--- /dev/null
+++ b/gnome-unstable/libgnome-media-profiles/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 117708 2011-04-04 16:55:18Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libgnome-media-profiles
+pkgver=3.0.0
+pkgrel=2
+pkgdesc=""
+arch=(i686 x86_64)
+url="http://www.gnome.org"
+license=('GPL2')
+depends=('gconf' 'gtk3' 'gstreamer0.10-base-plugins')
+makedepends=('intltool' 'gnome-doc-utils')
+options=('!emptydirs' '!libtool')
+install=libgnome-media-profiles.install
+source=(http://download.gnome.org/sources/${pkgname}/3.0/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('ab1288e53a8fccca3e8fa59757ef586901e236e09a737a1178eeb8d74428c061')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-static -disable-scrollkeeper \
+ --disable-schemas-install
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain gnome-audio-profiles "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -f "${pkgdir}"/etc/gconf/schemas/*.schemas
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/libgnome-media-profiles/libgnome-media-profiles.install b/gnome-unstable/libgnome-media-profiles/libgnome-media-profiles.install
new file mode 100644
index 000000000..22b4c8f12
--- /dev/null
+++ b/gnome-unstable/libgnome-media-profiles/libgnome-media-profiles.install
@@ -0,0 +1,17 @@
+pkgname=libgnome-media-profiles
+
+post_install(){
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/gnome-unstable/libgnomekbd/PKGBUILD b/gnome-unstable/libgnomekbd/PKGBUILD
new file mode 100644
index 000000000..956f36583
--- /dev/null
+++ b/gnome-unstable/libgnomekbd/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 117883 2011-04-04 21:05:30Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgnomekbd
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Gnome keyboard library"
+url="http://gswitchit.sourceforge.net"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libxklavier>=5.1' 'gtk3' 'dconf')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+install=libgnomekbd.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('e22da21528e8e6f05ad0516cd84a3867fec1ca17a676486a6592018d09ed9396')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libgnomekbd/libgnomekbd.install b/gnome-unstable/libgnomekbd/libgnomekbd.install
new file mode 100644
index 000000000..2ef26aaa9
--- /dev/null
+++ b/gnome-unstable/libgnomekbd/libgnomekbd.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/libgpod/PKGBUILD b/gnome-unstable/libgpod/PKGBUILD
new file mode 100644
index 000000000..f4cceca87
--- /dev/null
+++ b/gnome-unstable/libgpod/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117411 2011-04-01 17:02:09Z ibiru $
+# Maintainer: Daniel Isenmann <daniel@archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=libgpod
+pkgver=0.8.0
+pkgrel=2
+pkgdesc="A shared library to access the contents of an iPod"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk2' 'mutagen' 'sg3_utils' 'libimobiledevice')
+makedepends=('intltool' 'swig' 'docbook-xsl' 'pygobject-devel' 'gtk-sharp-2')
+optdepends=('gtk-sharp-2: Mono bindings')
+url="http://www.gtkpod.org/libgpod/"
+source=(http://downloads.sourceforge.net/sourceforge/gtkpod/${pkgname}-${pkgver}.tar.gz)
+options=('!libtool' '!emptydirs')
+md5sums=('6660f74cc53293dcc847407aa5f672ce')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --enable-udev --with-python=/usr/bin/python2
+ make PREFIX=/usr
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+}
+
diff --git a/gnome-unstable/libgweather/01_gettext_not_xml.patch b/gnome-unstable/libgweather/01_gettext_not_xml.patch
new file mode 100644
index 000000000..d5f57305e
--- /dev/null
+++ b/gnome-unstable/libgweather/01_gettext_not_xml.patch
@@ -0,0 +1,527 @@
+only in patch2:
+unchanged:
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/configure.in libgweather-2.27.91.new/configure.in
+--- libgweather-2.27.91/configure.in 2009-08-25 23:56:58.000000000 +1000
++++ libgweather-2.27.91.new/configure.in 2009-08-26 11:54:52.000000000 +1000
+@@ -40,6 +40,10 @@
+ AM_MAINTAINER_MODE
+ GNOME_MAINTAINER_MODE_DEFINES
+
++dnl IT_PROG_INTLTOOL does this for us in the case of the po/ subdir, but we're on our own for po-locations
++AC_OUTPUT_COMMANDS([sed -e "/POTFILES =/r po/POTFILES" po-locations/Makefile.in > po-locations/Makefile])
++IT_PO_SUBDIR([po-locations])
++
+ IT_PROG_INTLTOOL([0.40.3])
+ PKG_PROG_PKG_CONFIG([0.19])
+
+@@ -50,13 +54,6 @@
+ AM_PROG_LIBTOOL
+ AC_PATH_PROG(GCONFTOOL, gconftool-2)
+
+-AC_ARG_ENABLE(all-translations-in-one-xml,
+- [AC_HELP_STRING([--enable-all-translations-in-one-xml],
+- [Put all translations in a big Locations.xml file (slow to parse)])],
+- [enable_big_xml=yes],
+- [enable_big_xml=no])
+-AM_CONDITIONAL(USE_ONE_BIG_XML, test "x$enable_big_xml" = "xyes")
+-
+ AC_ARG_ENABLE(locations-compression,
+ [AC_HELP_STRING([--enable-locations-compression],
+ [Compress Locations.xml files])],
+@@ -253,7 +250,7 @@
+ Makefile
+ doc/Makefile
+ po/Makefile.in
+-po-locations/Makefile
++po-locations/Makefile.in
+ libgweather/Makefile
+ libgweather/gweather.pc
+ libgweather/gweather-uninstalled.pc
+@@ -261,12 +258,6 @@
+ python/Makefile
+ ])
+
+-if test "x$enable_big_xml" = "xyes"; then
+- LOCATIONS_XML_TRANSLATIONS="one big file"
+-else
+- LOCATIONS_XML_TRANSLATIONS="one file per translation"
+-fi
+-
+ dnl ***************************************************************************
+ dnl *** Display Summary ***
+ dnl ***************************************************************************
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/data/Makefile.am libgweather-2.27.91.new/data/Makefile.am
+--- libgweather-2.27.91/data/Makefile.am 2009-07-22 03:01:11.000000000 +1000
++++ libgweather-2.27.91.new/data/Makefile.am 2009-08-26 11:57:46.000000000 +1000
+@@ -4,55 +4,23 @@
+ libgweatherlocationsdir = $(pkgdatadir)
+ libgweatherlocations_in_files = Locations.xml.in
+
+-if USE_ONE_BIG_XML
+-
+-LOCATIONS_STAMP =
+-
+-libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml$(COMPRESS_EXT))
+-
+-%.xml$(COMPRESS_EXT): %.xml.in $(wildcard $(top_srcdir)/po-locations/*.po)
+- $(AM_V_GEN)LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"` && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"`; \
+- fi
+-
+-else # USE_ONE_BIG_XML
+-
+ LOCATIONS_STAMP = stamp-Locations.xml
+
+-PO_LOCATIONS = $(shell if test -n "$(LINGUAS)"; then for lang in $(LINGUAS); do if test -f "$(top_srcdir)/po-locations/$$lang.po"; then echo "$(top_srcdir)/po-locations/$$lang.po "; fi; done; else for pofile in $(top_srcdir)/po-locations/*.po; do echo $$pofile; done; fi)
+-
+ # Helper variable
+-libgweatherlocations_data = $(libgweatherlocations_in_files:.xml.in=.xml)
+-
+-libgweatherlocations_DATA = $(shell echo $(PO_LOCATIONS) | sed "s|$(top_srcdir)/po-locations/|Locations.|g;s|\.po|.xml$(COMPRESS_EXT)|g") $(libgweatherlocations_data)$(COMPRESS_EXT)
++libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml)
+
+ # We need this step so that we merge all the make Locations.xy.xml destinations
+ # into one unique destination. This makes -j2 work. (Else, we end up with
+ # multiple and conflicting calls to intltool-merge)
+ $(libgweatherlocations_DATA): $(LOCATIONS_STAMP)
+
+-$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) $(PO_LOCATIONS) Makefile
+- $(AM_V_at)LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< $(libgweatherlocations_data) && \
+- for pofile in $(PO_LOCATIONS); do \
+- locale=`echo $$pofile | sed "s;$(top_srcdir)/po-locations/\(.*\)\.po;\1;"`; \
+- xmllint --noblanks -o Locations.$$locale.xml $$locale/$(libgweatherlocations_data); \
+- rm -f $$locale/$(libgweatherlocations_data); \
+- test -d $$locale && rmdir $$locale; \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.$$locale.xml; \
+- fi; \
+- done && \
+- xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_data) && \
+- rm -f C/$(libgweatherlocations_data) && \
++$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) Makefile
++ LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache /dev/null $< $(libgweatherlocations_DATA) && \
++ xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_DATA) && \
++ rm -f C/$(libgweatherlocations_DATA) && \
+ test -d C && rmdir C && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.xml; \
+- fi && \
+ touch $@
+
+-endif # USE_ONE_BIG_XML
+-
+ check:
+ xmllint --valid --noout $(top_srcdir)/data/Locations.xml.in
+ $(srcdir)/check-timezones.sh $(srcdir)/Locations.xml.in
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/libgweather/gweather-location.c libgweather-2.27.91.new/libgweather/gweather-location.c
+--- libgweather-2.27.91/libgweather/gweather-location.c 2009-04-20 03:41:11.000000000 +1000
++++ libgweather-2.27.91.new/libgweather/gweather-location.c 2009-08-26 11:54:52.000000000 +1000
+@@ -22,11 +22,14 @@
+ #include <config.h>
+ #endif
+
++#include "config.h"
++
+ #include <string.h>
+ #include <math.h>
+ #include <locale.h>
+ #include <gtk/gtk.h>
+ #include <libxml/xmlreader.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-location.h"
+@@ -184,10 +187,20 @@
+
+ tagname = (const char *) xmlTextReaderConstName (parser->xml);
+ if (!strcmp (tagname, "name") && !loc->name) {
+- value = gweather_parser_get_localized_value (parser);
++ char *context = NULL;
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++
++ value = gweather_parser_get_value (parser);
+ if (!value)
+ goto error_out;
+- loc->name = g_strdup (value);
++
++ if (context != NULL) {
++ loc->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, value));
++ xmlFree (context);
++ }
++ else
++ loc->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",value));
++
+ xmlFree (value);
+ normalized = g_utf8_normalize (loc->name, -1, G_NORMALIZE_ALL);
+ loc->sort_name = g_utf8_casefold (normalized, -1);
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/libgweather/gweather-timezone.c libgweather-2.27.91.new/libgweather/gweather-timezone.c
+--- libgweather-2.27.91/libgweather/gweather-timezone.c 2009-08-12 19:00:52.000000000 +1000
++++ libgweather-2.27.91.new/libgweather/gweather-timezone.c 2009-08-26 11:54:52.000000000 +1000
+@@ -23,6 +23,7 @@
+ #endif
+
+ #include <string.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-timezone.h"
+@@ -152,7 +153,7 @@
+ parse_timezone (GWeatherParser *parser)
+ {
+ GWeatherTimezone *zone = NULL;
+- char *id = NULL, *name = NULL;
++ char *id = NULL, *name = NULL, *context = NULL;
+ int offset = 0, dst_offset = 0;
+ gboolean has_dst = FALSE;
+
+@@ -175,27 +176,34 @@
+ continue;
+ }
+
+- if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name"))
+- name = gweather_parser_get_localized_value (parser);
++ if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name")) {
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++ name = gweather_parser_get_value (parser);
++ }
+ else {
+ if (xmlTextReaderNext (parser->xml) != 1)
+ break;
+ }
+ }
+ }
+-
++
+ if (parse_tzdata (id, parser->year_start, parser->year_end,
+ &offset, &has_dst, &dst_offset)) {
+ zone = g_slice_new0 (GWeatherTimezone);
+ zone->ref_count = 1;
+ zone->id = g_strdup (id);
+- zone->name = g_strdup (name);
++ if (context != NULL)
++ zone->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, name));
++ else
++ zone->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",name));
+ zone->offset = offset;
+ zone->has_dst = has_dst;
+ zone->dst_offset = dst_offset;
+ }
+
+ xmlFree (id);
++ if (context)
++ xmlFree (context);
+ if (name)
+ xmlFree (name);
+
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/po-locations/LINGUAS libgweather-2.27.91.new/po-locations/LINGUAS
+--- libgweather-2.27.91/po-locations/LINGUAS 1970-01-01 10:00:00.000000000 +1000
++++ libgweather-2.27.91.new/po-locations/LINGUAS 2009-08-26 11:54:52.000000000 +1000
+@@ -0,0 +1,78 @@
++ang
++ar
++as
++az
++be
++be@latin
++bg
++bn_IN
++bn
++bs
++ca
++cs
++cy
++da
++de
++dz
++el
++en_CA
++en_GB
++es
++et
++eu
++fa
++fi
++fr
++ga
++gl
++gu
++he
++hi
++hr
++hu
++id
++it
++ja
++ka
++kn
++ko
++ku
++ky
++lt
++lv
++mai
++mg
++mk
++ml
++mn
++mr
++ms
++nb
++ne
++nl
++nn
++oc
++or
++pa
++pl
++pt_BR
++pt
++ro
++ru
++rw
++si
++sk
++sl
++sq
++sr@latin
++sr
++sv
++ta
++te
++th
++tr
++uk
++vi
++zh_CN
++zh_HK
++zh_TW
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/po-locations/Makefile.in.in libgweather-2.27.91.new/po-locations/Makefile.in.in
+--- libgweather-2.27.91/po-locations/Makefile.in.in 1970-01-01 10:00:00.000000000 +1000
++++ libgweather-2.27.91.new/po-locations/Makefile.in.in 2009-08-26 11:54:52.000000000 +1000
+@@ -0,0 +1,217 @@
++# Makefile for program source directory in GNU NLS utilities package.
++# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
++# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
++#
++# This file may be copied and used freely without restrictions. It may
++# be used in projects which are not available under a GNU Public License,
++# but which still want to provide support for the GNU gettext functionality.
++#
++# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
++# instead of PACKAGE and to look for po2tbl in ./ not in intl/
++#
++# - Modified by jacob berkman <jacob@ximian.com> to install
++# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
++#
++# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
++#
++# We have the following line for use by intltoolize:
++# INTLTOOL_MAKEFILE
++
++GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-locations
++PACKAGE = @PACKAGE@
++VERSION = @VERSION@
++
++SHELL = /bin/sh
++
++srcdir = @srcdir@
++top_srcdir = @top_srcdir@
++top_builddir = @top_builddir@
++VPATH = @srcdir@
++
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++datadir = @datadir@
++datarootdir = @datarootdir@
++libdir = @libdir@
++DATADIRNAME = @DATADIRNAME@
++itlocaledir = $(prefix)/$(DATADIRNAME)/locale
++subdir = po-locations
++install_sh = @install_sh@
++# Automake >= 1.8 provides @mkdir_p@.
++# Until it can be supposed, use the safe fallback:
++mkdir_p = $(install_sh) -d
++
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++
++GMSGFMT = @GMSGFMT@
++MSGFMT = @MSGFMT@
++XGETTEXT = @XGETTEXT@
++INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
++INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
++MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
++GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
++
++ALL_LINGUAS = @ALL_LINGUAS@
++
++PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
++
++USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi)
++
++USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
++
++POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
++
++DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES)
++EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
++
++POTFILES = \
++# This comment gets stripped out
++
++CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
++
++.SUFFIXES:
++.SUFFIXES: .po .pox .gmo .mo .msg .cat
++
++.po.pox:
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
++
++.po.mo:
++ $(MSGFMT) -o $@ $<
++
++.po.gmo:
++ file=`echo $* | sed 's,.*/,,'`.gmo \
++ && rm -f $$file && $(GMSGFMT) -o $$file $<
++
++.po.cat:
++ sed -f ../intl/po2msg.sed < $< > $*.msg \
++ && rm -f $@ && gencat $@ $*.msg
++
++
++all: all-@USE_NLS@
++
++all-yes: $(CATALOGS)
++all-no:
++
++$(GETTEXT_PACKAGE).pot: $(POTFILES)
++ $(GENPOT)
++
++install: install-data
++install-data: install-data-@USE_NLS@
++install-data-no: all
++install-data-yes: all
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
++ $(mkdir_p) $$dir; \
++ if test -r $$lang.gmo; then \
++ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
++ else \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $(srcdir)/$$lang.gmo as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo"; \
++ fi; \
++ if test -r $$lang.gmo.m; then \
++ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ if test -r $(srcdir)/$$lang.gmo.m ; then \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
++ $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $(srcdir)/$$lang.gmo.m as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ true; \
++ fi; \
++ fi; \
++ done
++
++# Empty stubs to satisfy archaic automake needs
++dvi info tags TAGS ID:
++
++# Define this as empty until I found a useful application.
++install-exec installcheck:
++
++uninstall:
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
++ done
++
++check: all $(GETTEXT_PACKAGE).pot
++ rm -f missing notexist
++ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
++ if [ -r missing -o -r notexist ]; then \
++ exit 1; \
++ fi
++
++mostlyclean:
++ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
++ rm -f .intltool-merge-cache
++
++clean: mostlyclean
++
++distclean: clean
++ rm -f Makefile Makefile.in POTFILES stamp-it
++ rm -f *.mo *.msg *.cat *.cat.m *.gmo
++
++maintainer-clean: distclean
++ @echo "This command is intended for maintainers to use;"
++ @echo "it deletes files that may require special tools to rebuild."
++ rm -f Makefile.in.in
++
++distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
++dist distdir: $(DISTFILES)
++ dists="$(DISTFILES)"; \
++ extra_dists="$(EXTRA_DISTFILES)"; \
++ for file in $$extra_dists; do \
++ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
++ done; \
++ for file in $$dists; do \
++ test -f $$file || file="$(srcdir)/$$file"; \
++ ln $$file $(distdir) 2> /dev/null \
++ || cp -p $$file $(distdir); \
++ done
++
++update-po: Makefile
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ tmpdir=`pwd`; \
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ echo "$$lang:"; \
++ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
++ if $$result; then \
++ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
++ rm -f $$tmpdir/$$lang.new.po; \
++ else \
++ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
++ :; \
++ else \
++ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ exit 1; \
++ fi; \
++ fi; \
++ else \
++ echo "msgmerge for $$lang.gmo failed!"; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ fi; \
++ done
++
++Makefile POTFILES: stamp-it
++ @if test ! -f $@; then \
++ rm -f stamp-it; \
++ $(MAKE) stamp-it; \
++ fi
++
++stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
++ cd $(top_builddir) \
++ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
++ $(SHELL) ./config.status
++
++# Tell versions [3.59,3.63) of GNU make not to export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+diff -Nur -x '*.orig' -x '*~' libgweather-2.27.91/po-locations/POTFILES.in libgweather-2.27.91.new/po-locations/POTFILES.in
+--- libgweather-2.27.91/po-locations/POTFILES.in 1970-01-01 10:00:00.000000000 +1000
++++ libgweather-2.27.91.new/po-locations/POTFILES.in 2009-08-26 11:54:52.000000000 +1000
+@@ -0,0 +1,4 @@
++# This list should contain *only* data/Locations.xml.in.
++# Everything else should be in POTFILES.skip.
++[encoding:UTF-8]
++data/Locations.xml.in
diff --git a/gnome-unstable/libgweather/PKGBUILD b/gnome-unstable/libgweather/PKGBUILD
new file mode 100644
index 000000000..a10e5b9d7
--- /dev/null
+++ b/gnome-unstable/libgweather/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 117926 2011-04-04 21:33:29Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libgweather
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Provides access to weather information from the net"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gconf' 'libsoup-gnome' 'gnome-icon-theme')
+makedepends=('pkgconfig' 'intltool' 'gtk-doc' 'gobject-introspection')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org/"
+install=libgweather.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2
+ gettext-not-xml.patch)
+sha256sums=('f13eb69c6ec8c4db08a78ffe980a5dd0e194894d411691a6821a068c650d1545'
+ 'f21d55ab7916a50cad10d1c0bb3785a262e8ad8f35b9fb4c02ae23f1b0783727')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/gettext-not-xml.patch"
+ gtkdocize
+ autoreconf -fi
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-locations-compression
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain libgweather ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/libgweather/gettext-not-xml.patch b/gnome-unstable/libgweather/gettext-not-xml.patch
new file mode 100644
index 000000000..4fd2e3aa6
--- /dev/null
+++ b/gnome-unstable/libgweather/gettext-not-xml.patch
@@ -0,0 +1,533 @@
+diff -up libgweather-2.91.0/configure.ac.gettext libgweather-2.91.0/configure.ac
+--- libgweather-2.91.0/configure.ac.gettext 2010-10-04 18:08:07.000000000 -0400
++++ libgweather-2.91.0/configure.ac 2011-01-30 13:51:19.615635059 -0500
+@@ -40,6 +40,10 @@ LIBXML_REQUIRED=2.6.0
+ AM_MAINTAINER_MODE
+ GNOME_MAINTAINER_MODE_DEFINES
+
++dnl IT_PROG_INTLTOOL does this for us in the case of the po/ subdir, but we're on our own for po-locations
++AC_OUTPUT_COMMANDS([sed -e "/POTFILES =/r po/POTFILES" po-locations/Makefile.in > po-locations/Makefile])
++IT_PO_SUBDIR([po-locations])
++
+ IT_PROG_INTLTOOL([0.40.3])
+ PKG_PROG_PKG_CONFIG([0.19])
+
+@@ -50,13 +54,6 @@ AC_STDC_HEADERS
+ AM_PROG_LIBTOOL
+ AC_PATH_PROG(GCONFTOOL, gconftool-2)
+
+-AC_ARG_ENABLE(all-translations-in-one-xml,
+- [AC_HELP_STRING([--enable-all-translations-in-one-xml],
+- [Put all translations in a big Locations.xml file (slow to parse)])],
+- [enable_big_xml=yes],
+- [enable_big_xml=no])
+-AM_CONDITIONAL(USE_ONE_BIG_XML, test "x$enable_big_xml" = "xyes")
+-
+ AC_ARG_ENABLE(locations-compression,
+ [AC_HELP_STRING([--enable-locations-compression],
+ [Compress Locations.xml files])],
+@@ -236,7 +233,7 @@ AC_OUTPUT([
+ Makefile
+ doc/Makefile
+ po/Makefile.in
+-po-locations/Makefile
++po-locations/Makefile.in
+ libgweather/Makefile
+ libgweather/gweather-3.0.pc
+ libgweather/gweather-3.0-uninstalled.pc
+@@ -244,12 +241,6 @@ data/Makefile
+ icons/Makefile
+ ])
+
+-if test "x$enable_big_xml" = "xyes"; then
+- LOCATIONS_XML_TRANSLATIONS="one big file"
+-else
+- LOCATIONS_XML_TRANSLATIONS="one file per translation"
+-fi
+-
+ dnl ***************************************************************************
+ dnl *** Display Summary ***
+ dnl ***************************************************************************
+@@ -260,6 +251,4 @@ libgweather-$VERSION configure summary:
+ Source code location: ${srcdir}
+ Compiler: ${CC}
+ Introspection support: ${found_introspection}
+- Locations.xml translations: ${LOCATIONS_XML_TRANSLATIONS}
+- Locations.xml compression: ${enable_locations_compression}
+ " >&2
+diff -up libgweather-2.91.0/data/Makefile.am.gettext libgweather-2.91.0/data/Makefile.am
+--- libgweather-2.91.0/data/Makefile.am.gettext 2010-10-04 18:07:31.000000000 -0400
++++ libgweather-2.91.0/data/Makefile.am 2011-01-30 13:53:12.581466339 -0500
+@@ -4,55 +4,23 @@ libgweatherdtd_DATA = locations.dtd
+ libgweatherlocationsdir = $(pkgdatadir)
+ libgweatherlocations_in_files = Locations.xml.in
+
+-if USE_ONE_BIG_XML
+-
+-LOCATIONS_STAMP =
+-
+-libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml$(COMPRESS_EXT))
+-
+-%.xml$(COMPRESS_EXT): %.xml.in $(wildcard $(top_srcdir)/po-locations/*.po)
+- $(AM_V_GEN)LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"` && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force `echo $@ | sed "s/.xml$(COMPRESS_EXT)/.xml/"`; \
+- fi
+-
+-else # USE_ONE_BIG_XML
+-
+ LOCATIONS_STAMP = stamp-Locations.xml
+
+-PO_LOCATIONS = $(shell if test -n "$(LINGUAS)"; then for lang in $(LINGUAS); do if test -f "$(top_srcdir)/po-locations/$$lang.po"; then echo "$(top_srcdir)/po-locations/$$lang.po "; fi; done; else for pofile in $(top_srcdir)/po-locations/*.po; do echo $$pofile; done; fi)
+-
+ # Helper variable
+-libgweatherlocations_data = $(libgweatherlocations_in_files:.xml.in=.xml)
+-
+-libgweatherlocations_DATA = $(shell echo $(PO_LOCATIONS) | sed "s|$(top_srcdir)/po-locations/|Locations.|g;s|\.po|.xml$(COMPRESS_EXT)|g") $(libgweatherlocations_data)$(COMPRESS_EXT)
++libgweatherlocations_DATA = $(libgweatherlocations_in_files:.xml.in=.xml)
+
+ # We need this step so that we merge all the make Locations.xy.xml destinations
+ # into one unique destination. This makes -j2 work. (Else, we end up with
+ # multiple and conflicting calls to intltool-merge)
+ $(libgweatherlocations_DATA): $(LOCATIONS_STAMP)
+
+-$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) $(PO_LOCATIONS) Makefile
+- $(AM_V_at)LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache $(top_srcdir)/po-locations $< $(libgweatherlocations_data) && \
+- for pofile in $(PO_LOCATIONS); do \
+- locale=`echo $$pofile | sed "s;$(top_srcdir)/po-locations/\(.*\)\.po;\1;"`; \
+- xmllint --noblanks -o Locations.$$locale.xml $$locale/$(libgweatherlocations_data); \
+- rm -f $$locale/$(libgweatherlocations_data); \
+- test -d $$locale && rmdir $$locale; \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.$$locale.xml; \
+- fi; \
+- done && \
+- xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_data) && \
+- rm -f C/$(libgweatherlocations_data) && \
+- test -d C && rmdir C && \
+- if test "x$(COMPRESS_EXT)" = "x.gz"; then \
+- gzip --force Locations.xml; \
+- fi && \
++$(LOCATIONS_STAMP): $(libgweatherlocations_in_files) Makefile
++ LC_ALL=C $(INTLTOOL_MERGE) --multiple-output --xml-style --utf8 --cache=$(top_builddir)/po-locations/.intltool-merge-cache /dev/null $< $(libgweatherlocations_DATA)
++ xmllint --noblanks -o Locations.xml C/$(libgweatherlocations_DATA)
++ rm -f C/$(libgweatherlocations_DATA)
++ test -d C && rmdir C
+ touch $@
+
+-endif # USE_ONE_BIG_XML
+-
+ ### Locations.xml.in rebuild
+ rebuild-locations: locationdb.sqlite update-locations.py
+ $(AM_V_GEN)($(srcdir)/update-locations.py > Locations.xml.in.new && mv Locations.xml.in.new Locations.xml.in) || rm -f Locations.xml.in.new
+diff -up libgweather-2.91.0/libgweather/gweather-location.c.gettext libgweather-2.91.0/libgweather/gweather-location.c
+--- libgweather-2.91.0/libgweather/gweather-location.c.gettext 2010-02-09 07:28:03.000000000 -0500
++++ libgweather-2.91.0/libgweather/gweather-location.c 2011-01-30 13:51:19.616635049 -0500
+@@ -22,11 +22,14 @@
+ #include <config.h>
+ #endif
+
++#include "config.h"
++
+ #include <string.h>
+ #include <math.h>
+ #include <locale.h>
+ #include <gtk/gtk.h>
+ #include <libxml/xmlreader.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-location.h"
+@@ -184,10 +187,20 @@ location_new_from_xml (GWeatherParser *p
+
+ tagname = (const char *) xmlTextReaderConstName (parser->xml);
+ if (!strcmp (tagname, "name") && !loc->name) {
+- value = gweather_parser_get_localized_value (parser);
++ char *context = NULL;
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++
++ value = gweather_parser_get_value (parser);
+ if (!value)
+ goto error_out;
+- loc->name = g_strdup (value);
++
++ if (context != NULL) {
++ loc->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, value));
++ xmlFree (context);
++ }
++ else
++ loc->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",value));
++
+ xmlFree (value);
+ normalized = g_utf8_normalize (loc->name, -1, G_NORMALIZE_ALL);
+ loc->sort_name = g_utf8_casefold (normalized, -1);
+diff -up libgweather-2.91.0/libgweather/gweather-timezone.c.gettext libgweather-2.91.0/libgweather/gweather-timezone.c
+--- libgweather-2.91.0/libgweather/gweather-timezone.c.gettext 2010-02-09 07:28:03.000000000 -0500
++++ libgweather-2.91.0/libgweather/gweather-timezone.c 2011-01-30 13:51:19.617635039 -0500
+@@ -23,6 +23,7 @@
+ #endif
+
+ #include <string.h>
++#include <libintl.h>
+
+ #define GWEATHER_I_KNOW_THIS_IS_UNSTABLE
+ #include "gweather-timezone.h"
+@@ -152,7 +153,7 @@ static GWeatherTimezone *
+ parse_timezone (GWeatherParser *parser)
+ {
+ GWeatherTimezone *zone = NULL;
+- char *id = NULL, *name = NULL;
++ char *id = NULL, *name = NULL, *context = NULL;
+ int offset = 0, dst_offset = 0;
+ gboolean has_dst = FALSE;
+
+@@ -175,27 +176,34 @@ parse_timezone (GWeatherParser *parser)
+ continue;
+ }
+
+- if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name"))
+- name = gweather_parser_get_localized_value (parser);
++ if (!strcmp ((const char *) xmlTextReaderConstName (parser->xml), "name")) {
++ context = xmlTextReaderGetAttribute(parser->xml,"msgctxt");
++ name = gweather_parser_get_value (parser);
++ }
+ else {
+ if (xmlTextReaderNext (parser->xml) != 1)
+ break;
+ }
+ }
+ }
+-
++
+ if (parse_tzdata (id, parser->year_start, parser->year_end,
+ &offset, &has_dst, &dst_offset)) {
+ zone = g_slice_new0 (GWeatherTimezone);
+ zone->ref_count = 1;
+ zone->id = g_strdup (id);
+- zone->name = g_strdup (name);
++ if (context != NULL)
++ zone->name = g_strdup (g_dpgettext2(GETTEXT_PACKAGE "-locations", context, name));
++ else
++ zone->name = g_strdup (dgettext(GETTEXT_PACKAGE "-locations",name));
+ zone->offset = offset;
+ zone->has_dst = has_dst;
+ zone->dst_offset = dst_offset;
+ }
+
+ xmlFree (id);
++ if (context)
++ xmlFree (context);
+ if (name)
+ xmlFree (name);
+
+diff -up libgweather-2.91.0/po-locations/LINGUAS.gettext libgweather-2.91.0/po-locations/LINGUAS
+--- libgweather-2.91.0/po-locations/LINGUAS.gettext 2011-01-30 13:51:19.617635039 -0500
++++ libgweather-2.91.0/po-locations/LINGUAS 2011-01-30 13:51:19.617635039 -0500
+@@ -0,0 +1,78 @@
++ang
++ar
++as
++az
++be
++be@latin
++bg
++bn_IN
++bn
++bs
++ca
++cs
++cy
++da
++de
++dz
++el
++en_CA
++en_GB
++es
++et
++eu
++fa
++fi
++fr
++ga
++gl
++gu
++he
++hi
++hr
++hu
++id
++it
++ja
++ka
++kn
++ko
++ku
++ky
++lt
++lv
++mai
++mg
++mk
++ml
++mn
++mr
++ms
++nb
++ne
++nl
++nn
++oc
++or
++pa
++pl
++pt_BR
++pt
++ro
++ru
++rw
++si
++sk
++sl
++sq
++sr@latin
++sr
++sv
++ta
++te
++th
++tr
++uk
++vi
++zh_CN
++zh_HK
++zh_TW
+diff -up libgweather-2.91.0/po-locations/Makefile.in.in.gettext libgweather-2.91.0/po-locations/Makefile.in.in
+--- libgweather-2.91.0/po-locations/Makefile.in.in.gettext 2011-01-30 13:51:19.618635028 -0500
++++ libgweather-2.91.0/po-locations/Makefile.in.in 2011-01-30 13:51:19.618635028 -0500
+@@ -0,0 +1,217 @@
++# Makefile for program source directory in GNU NLS utilities package.
++# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
++# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
++#
++# This file may be copied and used freely without restrictions. It may
++# be used in projects which are not available under a GNU Public License,
++# but which still want to provide support for the GNU gettext functionality.
++#
++# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
++# instead of PACKAGE and to look for po2tbl in ./ not in intl/
++#
++# - Modified by jacob berkman <jacob@ximian.com> to install
++# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
++#
++# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
++#
++# We have the following line for use by intltoolize:
++# INTLTOOL_MAKEFILE
++
++GETTEXT_PACKAGE = @GETTEXT_PACKAGE@-locations
++PACKAGE = @PACKAGE@
++VERSION = @VERSION@
++
++SHELL = /bin/sh
++
++srcdir = @srcdir@
++top_srcdir = @top_srcdir@
++top_builddir = @top_builddir@
++VPATH = @srcdir@
++
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++datadir = @datadir@
++datarootdir = @datarootdir@
++libdir = @libdir@
++DATADIRNAME = @DATADIRNAME@
++itlocaledir = $(prefix)/$(DATADIRNAME)/locale
++subdir = po-locations
++install_sh = @install_sh@
++# Automake >= 1.8 provides @mkdir_p@.
++# Until it can be supposed, use the safe fallback:
++mkdir_p = $(install_sh) -d
++
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++
++GMSGFMT = @GMSGFMT@
++MSGFMT = @MSGFMT@
++XGETTEXT = @XGETTEXT@
++INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
++INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
++MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
++GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
++
++ALL_LINGUAS = @ALL_LINGUAS@
++
++PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi)
++
++USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi)
++
++USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
++
++POFILES=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
++
++DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES)
++EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS
++
++POTFILES = \
++# This comment gets stripped out
++
++CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
++
++.SUFFIXES:
++.SUFFIXES: .po .pox .gmo .mo .msg .cat
++
++.po.pox:
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
++
++.po.mo:
++ $(MSGFMT) -o $@ $<
++
++.po.gmo:
++ file=`echo $* | sed 's,.*/,,'`.gmo \
++ && rm -f $$file && $(GMSGFMT) -o $$file $<
++
++.po.cat:
++ sed -f ../intl/po2msg.sed < $< > $*.msg \
++ && rm -f $@ && gencat $@ $*.msg
++
++
++all: all-@USE_NLS@
++
++all-yes: $(CATALOGS)
++all-no:
++
++$(GETTEXT_PACKAGE).pot: $(POTFILES)
++ $(GENPOT)
++
++install: install-data
++install-data: install-data-@USE_NLS@
++install-data-no: all
++install-data-yes: all
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
++ $(mkdir_p) $$dir; \
++ if test -r $$lang.gmo; then \
++ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
++ else \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
++ echo "installing $(srcdir)/$$lang.gmo as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo"; \
++ fi; \
++ if test -r $$lang.gmo.m; then \
++ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ if test -r $(srcdir)/$$lang.gmo.m ; then \
++ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
++ $$dir/$(GETTEXT_PACKAGE).mo.m; \
++ echo "installing $(srcdir)/$$lang.gmo.m as" \
++ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
++ else \
++ true; \
++ fi; \
++ fi; \
++ done
++
++# Empty stubs to satisfy archaic automake needs
++dvi info tags TAGS ID:
++
++# Define this as empty until I found a useful application.
++install-exec installcheck:
++
++uninstall:
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
++ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
++ done
++
++check: all $(GETTEXT_PACKAGE).pot
++ rm -f missing notexist
++ srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
++ if [ -r missing -o -r notexist ]; then \
++ exit 1; \
++ fi
++
++mostlyclean:
++ rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
++ rm -f .intltool-merge-cache
++
++clean: mostlyclean
++
++distclean: clean
++ rm -f Makefile Makefile.in POTFILES stamp-it
++ rm -f *.mo *.msg *.cat *.cat.m *.gmo
++
++maintainer-clean: distclean
++ @echo "This command is intended for maintainers to use;"
++ @echo "it deletes files that may require special tools to rebuild."
++ rm -f Makefile.in.in
++
++distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
++dist distdir: $(DISTFILES)
++ dists="$(DISTFILES)"; \
++ extra_dists="$(EXTRA_DISTFILES)"; \
++ for file in $$extra_dists; do \
++ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
++ done; \
++ for file in $$dists; do \
++ test -f $$file || file="$(srcdir)/$$file"; \
++ ln $$file $(distdir) 2> /dev/null \
++ || cp -p $$file $(distdir); \
++ done
++
++update-po: Makefile
++ $(MAKE) $(GETTEXT_PACKAGE).pot
++ tmpdir=`pwd`; \
++ linguas="$(USE_LINGUAS)"; \
++ for lang in $$linguas; do \
++ echo "$$lang:"; \
++ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
++ if $$result; then \
++ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
++ rm -f $$tmpdir/$$lang.new.po; \
++ else \
++ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
++ :; \
++ else \
++ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ exit 1; \
++ fi; \
++ fi; \
++ else \
++ echo "msgmerge for $$lang.gmo failed!"; \
++ rm -f $$tmpdir/$$lang.new.po; \
++ fi; \
++ done
++
++Makefile POTFILES: stamp-it
++ @if test ! -f $@; then \
++ rm -f stamp-it; \
++ $(MAKE) stamp-it; \
++ fi
++
++stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
++ cd $(top_builddir) \
++ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
++ $(SHELL) ./config.status
++
++# Tell versions [3.59,3.63) of GNU make not to export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+diff -up libgweather-2.91.0/po-locations/POTFILES.in.gettext libgweather-2.91.0/po-locations/POTFILES.in
+--- libgweather-2.91.0/po-locations/POTFILES.in.gettext 2011-01-30 13:51:19.618635028 -0500
++++ libgweather-2.91.0/po-locations/POTFILES.in 2011-01-30 13:51:19.618635028 -0500
+@@ -0,0 +1,4 @@
++# This list should contain *only* data/Locations.xml.in.
++# Everything else should be in POTFILES.skip.
++[encoding:UTF-8]
++data/Locations.xml.in
diff --git a/gnome-unstable/libgweather/libgweather.install b/gnome-unstable/libgweather/libgweather.install
new file mode 100644
index 000000000..7062d4167
--- /dev/null
+++ b/gnome-unstable/libgweather/libgweather.install
@@ -0,0 +1,22 @@
+pkgname=libgweather
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/gnome
+}
diff --git a/gnome-unstable/libimobiledevice/PKGBUILD b/gnome-unstable/libimobiledevice/PKGBUILD
new file mode 100644
index 000000000..e7fa54a29
--- /dev/null
+++ b/gnome-unstable/libimobiledevice/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 109895 2011-02-13 16:49:33Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Gabriel Martinez < reitaka at gmail dot com >
+
+pkgname=libimobiledevice
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="Is a software library that talks the protocols to support iPhone and iPod Touch devices on Linux"
+url="http://libimobiledevice.org/"
+arch=('i686' 'x86_64')
+license=('GPL2' 'LGPL2.1')
+depends=('gnutls' 'glib2' 'libplist' 'usbmuxd')
+makedepends=('swig' 'python2')
+options=('!libtool')
+source=(http://libimobiledevice.org/downloads/${pkgname}-${pkgver}.tar.bz2
+ swig-version-check.patch)
+md5sums=('b38bb70a41538a2ad593b0779651a636'
+ '8bb215e36fe0e08a72332c108c7842cc')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # SWIG version check is wrong (still not fixed upstream)
+ patch -p1 -i "$srcdir"/swig-version-check.patch
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libimobiledevice/swig-version-check.patch b/gnome-unstable/libimobiledevice/swig-version-check.patch
new file mode 100644
index 000000000..c56b095db
--- /dev/null
+++ b/gnome-unstable/libimobiledevice/swig-version-check.patch
@@ -0,0 +1,14 @@
+diff -Nur libimobiledevice-1.0.3.old/configure libimobiledevice-1.0.3/configure
+--- libimobiledevice-1.0.3.old/configure 2010-10-04 07:38:37.000000000 -0700
++++ libimobiledevice-1.0.3/configure 2010-10-08 05:43:05.466686656 -0700
+@@ -3477,9 +3477,7 @@
+ if test -z "$available_patch" ; then
+ available_patch=0
+ fi
+- if test $available_major -ne $required_major \
+- -o $available_minor -ne $required_minor \
+- -o $available_patch -lt $required_patch ; then
++ if test $available_major -lt $required_major ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 1.3.21 is required. You have $swig_version. You should look at http://www.swig.org" >&5
+ $as_echo "$as_me: WARNING: SWIG version >= 1.3.21 is required. You have $swig_version. You should look at http://www.swig.org" >&2;}
+ SWIG=false
diff --git a/gnome-unstable/libnice/PKGBUILD b/gnome-unstable/libnice/PKGBUILD
new file mode 100644
index 000000000..b46074046
--- /dev/null
+++ b/gnome-unstable/libnice/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 500 2009-08-01 11:44:28Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: William Díaz <wdiaz@archlinux.us>
+
+pkgname=libnice
+pkgver=0.1.0
+pkgrel=1
+pkgdesc="An implementation of the IETF's draft ICE (for p2p UDP data streams)"
+arch=('i686' 'x86_64')
+url="http://nice.freedesktop.org"
+license=('LGPL')
+depends=('gstreamer0.10')
+options=('!libtool')
+source=(http://nice.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz)
+md5sums=('c077e2aa74c9afb4b4e157efc8a6ad9d')
+
+build() {
+# export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/gnome-unstable/libnotify/PKGBUILD b/gnome-unstable/libnotify/PKGBUILD
new file mode 100644
index 000000000..f20fb9f0a
--- /dev/null
+++ b/gnome-unstable/libnotify/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115920 2011-03-22 14:03:02Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libnotify
+pkgver=0.7.2
+pkgrel=1
+pkgdesc="Desktop notification library"
+arch=('i686' 'x86_64')
+url="http://library.gnome.org/devel/notification-spec/"
+license=('LGPL')
+depends=('gdk-pixbuf2')
+makedepends=('gtk3' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('9b6a8459401e4af3da9cbc9e35a58d1a977273d3fe898d4a00a888f4191b85d6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libpeas/PKGBUILD b/gnome-unstable/libpeas/PKGBUILD
new file mode 100644
index 000000000..3cacf3bba
--- /dev/null
+++ b/gnome-unstable/libpeas/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 117856 2011-04-04 20:18:31Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=libpeas
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="A GObject-based plugins engine"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('gtk3' 'hicolor-icon-theme' 'pygobject' 'gobject-introspection')
+makedepends=('gtk-doc' 'intltool' 'pygobject-devel')
+options=('!libtool')
+install=libpeas.install
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.bz2)
+sha256sums=('b1482690565241baf3870311a77efb3f89a4335f48cb4ca31e8b8405220a8d99')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/libpeas/libpeas.install b/gnome-unstable/libpeas/libpeas.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/gnome-unstable/libpeas/libpeas.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/librsvg/PKGBUILD b/gnome-unstable/librsvg/PKGBUILD
new file mode 100644
index 000000000..3104e7ce4
--- /dev/null
+++ b/gnome-unstable/librsvg/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 117525 2011-04-04 10:15:22Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=librsvg
+pkgver=2.34.0
+pkgrel=1
+pkgdesc="SAX-based renderer for SVG files into a GdkPixbuf"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gdk-pixbuf2' 'pango' 'libcroco')
+makedepends=('intltool')
+optdepends=('python2: rsvg commandline utility')
+options=('!libtool' '!emptydirs')
+url="http://librsvg.sourceforge.net/"
+install=librsvg.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.34/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('9d2111e086dcffd12466f48ab1ca088654011684c499a4cc4676da918290f3cd')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' rsvg.in
+ ./configure --prefix=/usr --libexecdir=/usr/lib/${pkgname} \
+ --with-croco --disable-static \
+ --with-svgz --disable-gtk-theme
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/librsvg/librsvg.install b/gnome-unstable/librsvg/librsvg.install
new file mode 100644
index 000000000..4d48b071f
--- /dev/null
+++ b/gnome-unstable/librsvg/librsvg.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/libsocialweb/PKGBUILD b/gnome-unstable/libsocialweb/PKGBUILD
new file mode 100644
index 000000000..86b78ce16
--- /dev/null
+++ b/gnome-unstable/libsocialweb/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111152 2011-02-24 12:01:51Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=libsocialweb
+pkgver=0.25.11
+pkgrel=1
+pkgdesc="A personal social data server"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'gconf' 'libsoup-gnome' 'rest' 'dbus-glib' 'libgnome-keyring'
+ 'json-glib')
+makedepends=('intltool' 'gtk-doc')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.bz2)
+sha256sums=('b3d225fef41ec92869fa5fb1f422b5534b0437192d99cb3039ddb8b7b908afc0')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/libsocialweb \
+ --enable-all-services=yes \
+ --with-online=always
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/libsoup/PKGBUILD b/gnome-unstable/libsoup/PKGBUILD
new file mode 100644
index 000000000..6043259ee
--- /dev/null
+++ b/gnome-unstable/libsoup/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 117754 2011-04-04 17:41:27Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=libsoup
+pkgname=('libsoup' 'libsoup-gnome')
+pkgver=2.34.0
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('glib2' 'libxml2' 'sqlite3' 'libgnome-keyring' 'intltool' 'gobject-introspection' 'glib-networking')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.bz2)
+options=('!libtool' '!emptydirs')
+sha256sums=('bb7b8f4ab72923c8bdaf83ad9655e946c4c68ee6957b82eb0e20586c1ad627e7')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package_libsoup() {
+ pkgdesc="GNOME HTTP Library - base library"
+ depends=('glib2' 'libxml2' 'glib-networking')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}"/usr/lib/libsoup-gnome-2.4.*
+ rm -f "${pkgdir}/usr/lib/pkgconfig/libsoup-gnome-2.4.pc"
+ rm -rf "${pkgdir}/usr/include/libsoup-gnome-2.4"
+ rm -f "${pkgdir}/usr/lib/girepository-1.0/SoupGNOME-2.4.typelib"
+}
+
+package_libsoup-gnome() {
+ pkgdesc="GNOME HTTP Library - GNOME libraries"
+ depends=("libsoup=${pkgver}" 'libgnome-keyring')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}"/usr/lib/libsoup-2.4.*
+ rm -f "${pkgdir}/usr/lib/pkgconfig/libsoup-2.4.pc"
+ rm -rf "${pkgdir}/usr/include/libsoup-2.4"
+ rm -rf "${pkgdir}/usr/share"
+ rm -f "${pkgdir}/usr/lib/girepository-1.0/Soup-2.4.typelib"
+}
diff --git a/gnome-unstable/libunique/PKGBUILD b/gnome-unstable/libunique/PKGBUILD
new file mode 100644
index 000000000..8bd45f129
--- /dev/null
+++ b/gnome-unstable/libunique/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 109868 2011-02-13 14:14:02Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libunique
+pkgver=1.1.6
+pkgrel=4
+pkgdesc="Library for writing single instance applications"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk2')
+makedepends=('gtk-doc' 'gobject-introspection')
+options=('!libtool')
+url="http://live.gnome.org/LibUnique"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/1.1/${pkgname}-${pkgver}.tar.bz2
+ unique-gdbus.patch)
+sha256sums=('e5c8041cef8e33c55732f06a292381cb345db946cf792a4ae18aa5c66cdd4fbb'
+ 'bf99ddbf9104502ea498a6812ec2d700f61f4dbbaa2471cd52174b0b27070769')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/unique-gdbus.patch"
+ autoreconf
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-dbus
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # Remove documentation, provided by libunique3
+ rm -r "$pkgdir/usr/share/gtk-doc"
+}
diff --git a/gnome-unstable/libunique/unique-gdbus.patch b/gnome-unstable/libunique/unique-gdbus.patch
new file mode 100644
index 000000000..880c0c0ff
--- /dev/null
+++ b/gnome-unstable/libunique/unique-gdbus.patch
@@ -0,0 +1,529 @@
+From 01066039529c0181f231325476bb4823c16a2aea Mon Sep 17 00:00:00 2001
+From: Christian Persch <chpe@gnome.org>
+Date: Sat, 15 May 2010 17:47:45 +0000
+Subject: Add GDBus backend
+
+Add backend using GDBus, the new D-BUS binding in GIO 2.25.
+
+Bug #618723.
+---
+diff --git a/configure.ac b/configure.ac
+index bc3163a..b6a4221 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -116,6 +116,19 @@ AS_IF([test "x$have_dbus" = "xyes"],
+
+ AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"])
+
++dnl GDBus backend
++dnl This is the default backend if GIO is recent enough
++m4_define([gdbus_gio_required],[2.25.7])
++PKG_CHECK_MODULES([GDBUS],[gio-2.0 >= gdbus_gio_required],[have_gdbus=yes],[have_gdbus=no])
++
++AS_IF([test "x$have_gdbus" = "xyes"],
++ [
++ AC_DEFINE([HAVE_GDBUS],[1],[Define if GDBus backend is enabled])
++ ]
++ )
++
++AM_CONDITIONAL([HAVE_GDBUS],[test "$have_gdbus" = "yes"])
++
+ dnl Bacon backend
+ dnl This is the fallback backend, so we *need* these headers and functions
+ dnl even if we end up using D-Bus
+@@ -146,7 +159,13 @@ AM_CONDITIONAL([HAVE_BACON], [test "x$have_bacon" = "xyes"])
+
+ dnl Choose the default backend
+ AC_MSG_CHECKING([for default IPC mechanism])
+-AS_IF([test "x$have_dbus" = "xyes"],
++AS_IF([test "x$have_gdbus" = "xyes"],
++ [
++ UNIQUE_DEFAULT_BACKEND=gdbus
++ AC_MSG_RESULT([GDBus])
++ ],
++
++ [test "x$have_dbus" = "xyes"],
+ [
+ UNIQUE_DEFAULT_BACKEND=dbus
+ AC_MSG_RESULT([D-Bus])
+@@ -243,6 +262,7 @@ AC_CONFIG_FILES([
+ unique/uniqueversion.h
+ unique/bacon/Makefile
+ unique/dbus/Makefile
++ unique/gdbus/Makefile
+ tests/Makefile
+ po/Makefile.in
+ ])
+@@ -261,6 +281,7 @@ Configuration:
+ Backends:
+ Unix Domain Socket: $have_bacon
+ D-BUS: $have_dbus
++ GDBus: $have_gdbus
+
+ Default backend: $UNIQUE_DEFAULT_BACKEND
+ "
+diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
+index 3172588..2c1dbf4 100644
+--- a/doc/reference/Makefile.am
++++ b/doc/reference/Makefile.am
+@@ -50,7 +50,8 @@ IGNORE_HFILES = \
+ uniquemarshal.h \
+ stamp-uniquemarshal.h \
+ bacon \
+- dbus
++ dbus \
++ gdbus
+
+ EXTRA_HFILES =
+
+diff --git a/unique/Makefile.am b/unique/Makefile.am
+index 6475a87..8f0b7ba 100644
+--- a/unique/Makefile.am
++++ b/unique/Makefile.am
+@@ -12,7 +12,11 @@ if HAVE_DBUS
+ SUBDIRS += dbus
+ endif
+
+-DIST_SUBDIRS = bacon dbus
++if HAVE_GDBUS
++SUBDIRS += gdbus
++endif
++
++DIST_SUBDIRS = bacon dbus gdbus
+
+ INCLUDES = -I$(top_srcdir)
+
+@@ -72,6 +76,10 @@ if HAVE_DBUS
+ unique_backend_libs += $(top_builddir)/unique/dbus/libunique-dbus.la
+ endif
+
++if HAVE_GDBUS
++unique_backend_libs += $(top_builddir)/unique/gdbus/libunique-gdbus.la
++endif
++
+ uniquedir = $(includedir)/unique-1.0/unique
+ unique_HEADERS = \
+ $(unique_sources_h) \
+diff --git a/unique/gdbus/.gitignore b/unique/gdbus/.gitignore
+new file mode 100644
+index 0000000..c7e22c3
+--- /dev/null
++++ b/unique/gdbus/.gitignore
+@@ -0,0 +1,2 @@
++libunique_gdbus_la-uniquebackend-gdbus.lo
++libunique-gdbus.la
+diff --git a/unique/gdbus/Makefile.am b/unique/gdbus/Makefile.am
+new file mode 100644
+index 0000000..e10637d
+--- /dev/null
++++ b/unique/gdbus/Makefile.am
+@@ -0,0 +1,24 @@
++include $(top_srcdir)/build/autotools/Makefile.am.silent
++
++noinst_LTLIBRARIES = libunique-gdbus.la
++
++libunique_gdbus_la_SOURCES = \
++ uniquebackend-gdbus.h \
++ uniquebackend-gdbus.c
++
++libunique_gdbus_la_PPCFLAGS = \
++ -DG_LOG_DOMAIN=\"Unique-GDBus\" \
++ -DG_DISABLE_SINGLE_INCLUDES \
++ -I$(top_srcdir) \
++ $(AM_CPPFLAGS)
++
++libunique_gdbus_la_CFLAGS = \
++ $(UNIQUE_CFLAGS) \
++ $(UNIQUE_DEBUG_CFLAGS) \
++ $(MAINTAINER_CFLAGS) \
++ $(GDBUS_CFLAGS) \
++ $(AM_CFLAGS)
++
++libunique_gdbus_la_LIBADD = \
++ $(UNIQUE_LIBS) \
++ $(GDBUS_LIBS)
+diff --git a/unique/gdbus/uniquebackend-gdbus.c b/unique/gdbus/uniquebackend-gdbus.c
+new file mode 100644
+index 0000000..14d54a9
+--- /dev/null
++++ b/unique/gdbus/uniquebackend-gdbus.c
+@@ -0,0 +1,303 @@
++/* Unique - Single Instance application library
++ * uniquebackend-gdbus.c: GDBus implementation of UniqueBackend
++ *
++ * Copyright (C) 2007 Emmanuele Bassi <ebassi@o-hand.com>
++ * Copyright © 2010 Christian Persch
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ */
++
++#ifdef HAVE_CONFIG_H
++#include "config.h"
++#endif
++
++#include <gio/gio.h>
++#include <gdk/gdk.h>
++
++#include "../uniqueinternals.h"
++#include "uniquebackend-gdbus.h"
++
++struct _UniqueBackendGDBus
++{
++ UniqueBackend parent_instance;
++
++ GDBusConnection *connection;
++ guint registration_id;
++ guint owner_id;
++ gboolean owns_name;
++ GMainLoop *loop;
++};
++
++struct _UniqueBackendGDBusClass
++{
++ UniqueBackendClass parent_class;
++ GDBusNodeInfo *introspection_data;
++};
++
++G_DEFINE_TYPE (UniqueBackendGDBus, unique_backend_gdbus, UNIQUE_TYPE_BACKEND);
++
++static const char introspection_xml[] =
++ "<node name='/'>"
++ "<interface name='org.gtk.UniqueApp'>"
++ "<method name='SendMessage'>"
++ "<arg name='command' type='s' direction='in'/>"
++ "<arg name='message' type='(suuus)' direction='in'/>"
++ "<arg name='time' type='u' direction='in'/>"
++ "<arg name='response' type='s' direction='out'/>"
++ "</method>"
++ "</interface>"
++ "</node>";
++
++static void
++method_call_cb (GDBusConnection *connection,
++ const gchar *sender,
++ const gchar *object_path,
++ const gchar *interface_name,
++ const gchar *method_name,
++ GVariant *parameters,
++ GDBusMethodInvocation *invocation,
++ gpointer user_data)
++{
++ if (g_strcmp0 (interface_name, "org.gtk.UniqueApp") != 0 ||
++ g_strcmp0 (object_path, "/Factory") != 0)
++ return;
++
++ if (g_strcmp0 (method_name, "SendMessage") == 0)
++ {
++ UniqueBackend *backend = UNIQUE_BACKEND (user_data);
++ const gchar *command_str, *data, *startup_id;
++ guint len, screen_num, workspace, time_;
++ UniqueMessageData message_data;
++ gint command;
++ UniqueResponse response;
++ GdkDisplay *display;
++
++ g_variant_get (parameters,
++ "(&s(&suuu&s)u)",
++ &command_str,
++ &data, &len, &screen_num, &workspace, &startup_id,
++ &time_);
++
++ command = unique_command_from_string (backend->parent, command_str);
++ if (command == 0)
++ {
++ g_dbus_method_invocation_return_error (invocation,
++ G_DBUS_ERROR,
++ G_DBUS_ERROR_INVALID_ARGS,
++ "Invalid command `%s' received",
++ command_str);
++ return;
++ }
++
++ display = gdk_display_get_default ();
++
++ message_data.data = len > 0 ? (guchar *) data : NULL;
++ message_data.length = (gint) len;
++ message_data.workspace = workspace;
++ message_data.startup_id = (char *) startup_id;
++ if (screen_num >= 0 && screen_num < gdk_display_get_n_screens (display))
++ message_data.screen = gdk_display_get_screen (display, screen_num);
++ else
++ message_data.screen = gdk_screen_get_default ();
++
++ response = unique_app_emit_message_received (backend->parent, command, &message_data, time_);
++
++ g_dbus_method_invocation_return_value (invocation,
++ g_variant_new ("(s)", unique_response_to_string (response)));
++ return;
++ }
++}
++
++static void
++name_acquired_cb (GDBusConnection *connection,
++ const gchar *name,
++ gpointer user_data)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (user_data);
++
++ backend_gdbus->owns_name = TRUE;
++ if (backend_gdbus->loop && g_main_loop_is_running (backend_gdbus->loop))
++ g_main_loop_quit (backend_gdbus->loop);
++}
++
++static void
++name_lost_cb (GDBusConnection *connection,
++ const gchar *name,
++ gpointer user_data)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (user_data);
++
++ backend_gdbus->owns_name = FALSE;
++ if (backend_gdbus->loop && g_main_loop_is_running (backend_gdbus->loop))
++ g_main_loop_quit (backend_gdbus->loop);
++}
++
++static const GDBusInterfaceVTable interface_vtable = {
++ method_call_cb,
++ NULL,
++ NULL
++};
++
++static gboolean
++unique_backend_gdbus_request_name (UniqueBackend *backend)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (backend);
++ UniqueBackendGDBusClass *klass = UNIQUE_BACKEND_GDBUS_GET_CLASS (backend);
++ GError *error;
++
++ error = NULL;
++ backend_gdbus->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
++ if (!backend_gdbus->connection)
++ {
++ g_warning ("Unable to open a connection to the session bus: %s",
++ error->message);
++ g_error_free (error);
++
++ return FALSE;
++ }
++
++ backend_gdbus->registration_id =
++ g_dbus_connection_register_object (backend_gdbus->connection,
++ "/Factory",
++ klass->introspection_data->interfaces[0],
++ &interface_vtable,
++ backend, NULL,
++ &error);
++ if (backend_gdbus->registration_id == 0)
++ {
++ g_warning ("Unable to register object with the session bus: %s",
++ error->message);
++ g_error_free (error);
++
++ return FALSE;
++ }
++
++ backend_gdbus->owns_name = FALSE;
++
++ backend_gdbus->owner_id =
++ g_bus_own_name_on_connection (backend_gdbus->connection,
++ unique_backend_get_name (backend),
++ G_BUS_NAME_OWNER_FLAGS_NONE,
++ name_acquired_cb,
++ name_lost_cb,
++ backend, NULL);
++
++ backend_gdbus->loop = g_main_loop_new (NULL, FALSE);
++ g_main_loop_run (backend_gdbus->loop);
++ g_main_loop_unref (backend_gdbus->loop);
++ backend_gdbus->loop = NULL;
++
++ return backend_gdbus->owns_name;
++}
++
++static UniqueResponse
++unique_backend_gdbus_send_message (UniqueBackend *backend,
++ gint command,
++ UniqueMessageData *message_data,
++ guint time_)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (backend);
++ GVariantBuilder builder;
++ GVariant *result;
++ const gchar *command_str, *resp;
++ UniqueResponse response;
++ GError *error;
++
++ command_str = unique_command_to_string (backend->parent, command);
++
++ g_variant_builder_init (&builder, G_VARIANT_TYPE ("(s(suuus)u)"));
++ g_variant_builder_add (&builder, "s", command_str ? command_str : "");
++ g_variant_builder_open (&builder, G_VARIANT_TYPE ("(suuus)"));
++ g_variant_builder_add (&builder, "s", message_data->data ? (char *) message_data->data : "");
++ g_variant_builder_add (&builder, "u", (guint) message_data->length);
++ g_variant_builder_add (&builder, "u", (guint) gdk_screen_get_number (message_data->screen));
++ g_variant_builder_add (&builder, "u", (guint) message_data->workspace);
++ g_variant_builder_add (&builder, "s", message_data->startup_id ? message_data->startup_id : "");
++ g_variant_builder_close (&builder);
++ g_variant_builder_add (&builder, "u", time_);
++
++ error = NULL;
++ result = g_dbus_connection_call_sync (backend_gdbus->connection,
++ unique_backend_get_name (backend),
++ "/Factory",
++ "org.gtk.UniqueApp",
++ "SendMessage",
++ g_variant_builder_end (&builder),
++ G_VARIANT_TYPE ("(s)"),
++ G_DBUS_CALL_FLAGS_NO_AUTO_START,
++ -1,
++ NULL,
++ &error);
++ if (error)
++ {
++ g_warning ("Error while sending message: %s", error->message);
++ g_error_free (error);
++
++ return UNIQUE_RESPONSE_INVALID;
++ }
++
++ g_variant_get (result, "(&s)", &resp);
++ response = unique_response_from_string (resp);
++ g_variant_unref (result);
++
++ return response;
++}
++
++static void
++unique_backend_gdbus_dispose (GObject *gobject)
++{
++ UniqueBackendGDBus *backend_gdbus = UNIQUE_BACKEND_GDBUS (gobject);
++
++ if (backend_gdbus->owner_id != 0)
++ {
++ g_bus_unown_name (backend_gdbus->owner_id);
++ backend_gdbus->owner_id = 0;
++ }
++ if (backend_gdbus->registration_id != 0)
++ {
++ g_assert (backend_gdbus->connection != NULL);
++ g_dbus_connection_unregister_object (backend_gdbus->connection,
++ backend_gdbus->registration_id);
++ backend_gdbus->registration_id = 0;
++ }
++ if (backend_gdbus->connection)
++ {
++ g_object_unref (backend_gdbus->connection);
++ backend_gdbus->connection = NULL;
++ }
++
++ G_OBJECT_CLASS (unique_backend_gdbus_parent_class)->dispose (gobject);
++}
++
++static void
++unique_backend_gdbus_class_init (UniqueBackendGDBusClass *klass)
++{
++ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
++ UniqueBackendClass *backend_class = UNIQUE_BACKEND_CLASS (klass);
++
++ gobject_class->dispose = unique_backend_gdbus_dispose;
++
++ backend_class->request_name = unique_backend_gdbus_request_name;
++ backend_class->send_message = unique_backend_gdbus_send_message;
++
++ klass->introspection_data = g_dbus_node_info_new_for_xml (introspection_xml, NULL);
++ g_assert (klass->introspection_data != NULL);
++}
++
++static void
++unique_backend_gdbus_init (UniqueBackendGDBus *backend)
++{
++}
+diff --git a/unique/gdbus/uniquebackend-gdbus.h b/unique/gdbus/uniquebackend-gdbus.h
+new file mode 100644
+index 0000000..41eb6e5
+--- /dev/null
++++ b/unique/gdbus/uniquebackend-gdbus.h
+@@ -0,0 +1,43 @@
++/* Unique - Single Instance application library
++ * uniquebackend-gdbus.c: GDBus implementation of UniqueBackend
++ *
++ * Copyright (C) 2007 Emmanuele Bassi <ebassi@o-hand.com>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library 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
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++ * 02110-1301 USA
++ */
++
++#ifndef __UNIQUE_BACKEND_GDBUS_H__
++#define __UNIQUE_BACKEND_GDBUS_H__
++
++#include <unique/uniquebackend.h>
++
++G_BEGIN_DECLS
++
++#define UNIQUE_TYPE_BACKEND_GDBUS (unique_backend_gdbus_get_type ())
++#define UNIQUE_BACKEND_GDBUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBus))
++#define UNIQUE_IS_BACKEND_GDBUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNIQUE_TYPE_BACKEND_GDBUS))
++#define UNIQUE_BACKEND_GDBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBusClass))
++#define UNIQUE_IS_BACKEND_GDBUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNIQUE_TYPE_BACKEND_GDBUS))
++#define UNIQUE_BACKEND_GDBUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNIQUE_TYPE_BACKEND_GDBUS, UniqueBackendGDBusClass))
++
++typedef struct _UniqueBackendGDBus UniqueBackendGDBus;
++typedef struct _UniqueBackendGDBusClass UniqueBackendGDBusClass;
++
++GType unique_backend_gdbus_get_type (void) G_GNUC_CONST;
++
++G_END_DECLS
++
++#endif /* __UNIQUE_BACKEND_GDBUS_H__ */
+diff --git a/unique/uniquebackend.c b/unique/uniquebackend.c
+index 18a0c45..a76e42e 100644
+--- a/unique/uniquebackend.c
++++ b/unique/uniquebackend.c
+@@ -298,6 +298,9 @@ unique_backend_send_message (UniqueBackend *backend,
+ #ifdef HAVE_DBUS
+ #include "dbus/uniquebackend-dbus.h"
+ #endif
++#ifdef HAVE_GDBUS
++#include "gdbus/uniquebackend-gdbus.h"
++#endif
+
+ /**
+ * unique_backend_create:
+@@ -329,6 +332,10 @@ unique_backend_create (void)
+ if (strcmp (backend_name, "dbus") == 0)
+ backend_gtype = unique_backend_dbus_get_type ();
+ #endif /* HAVE_DBUS */
++#ifdef HAVE_GDBUS
++ if (strcmp (backend_name, "gdbus") == 0)
++ backend_gtype = unique_backend_gdbus_get_type ();
++#endif /* HAVE_GDBUS */
+ #if !defined(HAVE_BACON) && !defined(HAVE_DBUS)
+ #error Need either bacon or dbus
+ #endif
+--
+cgit v0.8.3.1
diff --git a/gnome-unstable/libunique3/PKGBUILD b/gnome-unstable/libunique3/PKGBUILD
new file mode 100644
index 000000000..87f7a09b9
--- /dev/null
+++ b/gnome-unstable/libunique3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117940 2011-04-04 22:13:19Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=libunique3
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Library for writing single instance applications for GTK3"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk3')
+makedepends=('gtk-doc' 'gobject-introspection')
+options=('!libtool')
+url="http://live.gnome.org/LibUnique"
+source=(http://ftp.gnome.org/pub/gnome/sources/libunique/${pkgver%.*}/libunique-${pkgver}.tar.bz2)
+sha256sums=('e945ff3d3bb7d4085ed73b5418f2935097bb0afc07287739c8f0d6fc049202e1')
+
+build() {
+ cd "${srcdir}/libunique-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --disable-dbus
+ make
+}
+
+package() {
+ cd "${srcdir}/libunique-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libwebkit/PKGBUILD b/gnome-unstable/libwebkit/PKGBUILD
new file mode 100644
index 000000000..e5a75d6af
--- /dev/null
+++ b/gnome-unstable/libwebkit/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 116332 2011-03-22 22:04:47Z ibiru $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=libwebkit
+pkgname=(libwebkit libwebkit3)
+pkgver=1.3.13
+pkgrel=1
+pkgdesc="An opensource web content engine"
+arch=('i686' 'x86_64')
+url="http://webkitgtk.org/"
+license=('custom')
+depends=('libxt' 'libxslt' 'sqlite3' 'icu>=4.6' 'gstreamer0.10-base' 'libsoup' 'enchant')
+makedepends=('gperf' 'gtk-doc' 'gobject-introspection' 'python2' 'gtk2' 'gtk3')
+options=('!libtool')
+install=libwebkit.install
+source=(http://webkitgtk.org/webkit-${pkgver}.tar.gz)
+md5sums=('984adaafac545a89c24351fd4dbd743c')
+
+build() {
+ cd "${srcdir}/webkit-${pkgver}"
+ mkdir build-gtk{2,3}
+
+ ( cd build-gtk2 && _build --with-gtk=2.0 )
+ ( cd build-gtk3 && _build --with-gtk=3.0 )
+}
+
+_build() {
+ PYTHON=/usr/bin/python2 ../configure --prefix=/usr \
+ --enable-video --enable-introspection \
+ --with-font-backend=freetype --enable-gtk-doc \
+ --enable-jit --with-unicode-backend=icu \
+ --enable-3d-transforms --enable-mathml \
+ --enable-spellcheck "$@"
+ make all stamp-po
+}
+
+package_libwebkit() {
+ pkgdesc+=" (for GTK2)"
+ depends+=(gtk2)
+ provides=('webkitgtk-svn')
+ conflicts=('webkitgtk-svn')
+ replaces=('webkitgtk-svn')
+
+ cd "$srcdir/webkit-$pkgver/build-gtk2"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 ../Source/WebKit/LICENSE "${pkgdir}/usr/share/licenses/libwebkit/LICENSE"
+}
+
+package_libwebkit3() {
+ pkgdesc+=" (for GTK3)"
+ depends+=(gtk3)
+
+ cd "${srcdir}/webkit-${pkgver}/build-gtk3"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 ../Source/WebKit/LICENSE "${pkgdir}/usr/share/licenses/libwebkit3/LICENSE"
+}
diff --git a/gnome-unstable/libwebkit/libwebkit.install b/gnome-unstable/libwebkit/libwebkit.install
new file mode 100644
index 000000000..24072f316
--- /dev/null
+++ b/gnome-unstable/libwebkit/libwebkit.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/libwnck/PKGBUILD b/gnome-unstable/libwnck/PKGBUILD
new file mode 100644
index 000000000..ba2f0ce05
--- /dev/null
+++ b/gnome-unstable/libwnck/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 109642 2011-02-11 16:58:51Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=libwnck
+pkgver=2.30.6
+pkgrel=2
+pkgdesc="Window Navigator Construction Kit"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk2' 'startup-notification' 'libxres')
+makedepends=('libxt' 'intltool' 'gobject-introspection')
+options=('!libtool')
+url="http://www.gnome.org/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.30/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('4d25984ed5cfe215eb650f960de634300a6cafc9d98bbc7caea8043b7cd96cc5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ #The binaries are shipped in libwnck3
+ rm -f ${pkgdir}/usr/bin/wnckprop
+ rm -f ${pkgdir}/usr/bin/wnck-urgency-monitor
+}
diff --git a/gnome-unstable/libwnck3/PKGBUILD b/gnome-unstable/libwnck3/PKGBUILD
new file mode 100644
index 000000000..c9395bec3
--- /dev/null
+++ b/gnome-unstable/libwnck3/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 117893 2011-04-04 21:09:31Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=libwnck3
+_pkgbasename=libwnck
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Window Navigator Construction Kit (GTK+3)"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('gtk3' 'startup-notification' 'libxres')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+url="http://www.gnome.org/"
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/${pkgver%.*}/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('bc34093ad185bb5086e97226f36157a6dd205623d32bdef71261a8b248a41f15')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/libxklavier/PKGBUILD b/gnome-unstable/libxklavier/PKGBUILD
new file mode 100644
index 000000000..3539d795c
--- /dev/null
+++ b/gnome-unstable/libxklavier/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 109917 2011-02-13 20:31:57Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+
+pkgname=libxklavier
+pkgver=5.1
+pkgrel=1
+pkgdesc="High-level API for X Keyboard Extension"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('glib2' 'libxkbfile' 'libxml2' 'xkeyboard-config' 'libxi' 'iso-codes')
+makedepends=('pkgconfig')
+options=('!libtool' '!emptydirs')
+url="http://gswitchit.sourceforge.net"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('1d7e8a6ed842d415d2f95b827e7d04ecf515ed5be2aaee262a8dd1c5cbe10ff1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr \
+ --with-xkb-base=/usr/share/X11/xkb --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/mousetweaks/PKGBUILD b/gnome-unstable/mousetweaks/PKGBUILD
new file mode 100644
index 000000000..7cf2301af
--- /dev/null
+++ b/gnome-unstable/mousetweaks/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 2392 2008-06-01 19:38:25Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=mousetweaks
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Mouse accessibility enhancements for the GNOME desktop"
+arch=(i686 x86_64)
+license=('GPL3' 'FDL')
+depends=('libxtst' 'gtk3' 'gsettings-desktop-schemas')
+makedepends=('gnome-doc-utils' 'intltool')
+groups=('gnome-extra')
+options=('!libtool' '!emptydirs')
+url="http://www.gnome.org"
+install=mousetweaks.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('780c6349aa331635d15abc1f119d4f35de1534f1250e1921ec5f05efa098d242')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/mousetweaks/mousetweaks.install b/gnome-unstable/mousetweaks/mousetweaks.install
new file mode 100644
index 000000000..1ae919322
--- /dev/null
+++ b/gnome-unstable/mousetweaks/mousetweaks.install
@@ -0,0 +1,17 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall mousetweaks
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/mutter/PKGBUILD b/gnome-unstable/mutter/PKGBUILD
new file mode 100644
index 000000000..91494f962
--- /dev/null
+++ b/gnome-unstable/mutter/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 117916 2011-04-04 21:28:47Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
+
+pkgname=mutter
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A window manager for GNOME3"
+arch=(i686 x86_64)
+license=('GPL')
+depends=('startup-notification' 'gconf' 'zenity' 'libcanberra' 'clutter' 'gobject-introspection')
+makedepends=('intltool' 'gtk-doc')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+install=mutter.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('2560c8b3b5d47f0f4d4440c3087da76765b6ad9de6010662983846a3fed87eb2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/mutter \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain mutter ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/mutter/mutter.install b/gnome-unstable/mutter/mutter.install
new file mode 100644
index 000000000..199f12584
--- /dev/null
+++ b/gnome-unstable/mutter/mutter.install
@@ -0,0 +1,17 @@
+pkgname=mutter
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/gnome-unstable/mx/PKGBUILD b/gnome-unstable/mx/PKGBUILD
new file mode 100644
index 000000000..2132d1e56
--- /dev/null
+++ b/gnome-unstable/mx/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 116756 2011-03-25 20:20:57Z ibiru $
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Guenther Wutz <admin@wutzara.de>
+
+pkgname=mx
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="A widget toolkit using Clutter"
+arch=('i686' 'x86_64')
+url="http://www.clutter-project.org"
+license=('LGPL')
+depends=('clutter' 'libxrandr' 'dbus-glib' 'gtk2' 'startup-notification')
+makedepends=('intltool' 'gobject-introspection')
+options=('!libtool')
+source=("http://source.clutter-project.org/sources/$pkgname/1.0/$pkgname-$pkgver.tar.bz2")
+sha256sums=('b0ed87865eff2280b0aad43d30ca68c829fd20f9fcc5ba961d16b9f8d1a784e2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/nautilus-open-terminal/PKGBUILD b/gnome-unstable/nautilus-open-terminal/PKGBUILD
new file mode 100644
index 000000000..d45734cf3
--- /dev/null
+++ b/gnome-unstable/nautilus-open-terminal/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 114750 2011-03-15 21:17:26Z ibiru $
+# Maintainer : Biru Ionut <ionut@archlinux.ro>
+# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com>
+# Contributor: William Rea <sillywilly@gmail.com>
+pkgname=nautilus-open-terminal
+pkgver=0.19
+pkgrel=1
+pkgdesc="A nautilus plugin for opening terminals in arbitrary local paths"
+arch=('i686' 'x86_64')
+url="http://ftp.gnome.org/pub/GNOME/sources/nautilus-open-terminal"
+license=('GPL')
+depends=('nautilus')
+makedepends=('pkgconfig' 'gettext' 'intltool')
+install=nautilus-open-terminal.install
+source=(ftp://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+sha256sums=('4760f3a5a862ba9239ea92690a42ecee2c68fad413b023dd06505bdb3ee1f6af')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -dm755 "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain ${pkgname} "${pkgdir}"/etc/gconf/schemas/*.schemas
+ rm -rf "${pkgdir}"/etc/gconf/schemas
+}
diff --git a/gnome-unstable/nautilus-open-terminal/nautilus-open-terminal.install b/gnome-unstable/nautilus-open-terminal/nautilus-open-terminal.install
new file mode 100644
index 000000000..f7cdb9507
--- /dev/null
+++ b/gnome-unstable/nautilus-open-terminal/nautilus-open-terminal.install
@@ -0,0 +1,17 @@
+pkgname=nautilus-open-terminal
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
diff --git a/gnome-unstable/nautilus-sendto/PKGBUILD b/gnome-unstable/nautilus-sendto/PKGBUILD
new file mode 100644
index 000000000..cc9b88efe
--- /dev/null
+++ b/gnome-unstable/nautilus-sendto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 117738 2011-04-04 17:38:24Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Tor Krill <tor@krill.nu>
+
+pkgname=nautilus-sendto
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="Nautilus context menu for sending files."
+arch=('i686' 'x86_64')
+url="http://download.gnome.org/sources/nautilus-sendto/"
+license=('GPL')
+groups=('gnome-extra')
+depends=('evolution-data-server' 'nautilus' 'dconf')
+makedepends=('pidgin' 'gajim' 'gettext' 'intltool')
+options=('!libtool' '!emptydirs')
+install=nautilus-sendto.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('8821c6aab186ff3aa852438b4f2b64dce9f68e264908ce009e331bac74969e21')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/nautilus-sendto/nautilus-sendto.install b/gnome-unstable/nautilus-sendto/nautilus-sendto.install
new file mode 100644
index 000000000..e5204bcab
--- /dev/null
+++ b/gnome-unstable/nautilus-sendto/nautilus-sendto.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/nautilus/PKGBUILD b/gnome-unstable/nautilus/PKGBUILD
new file mode 100644
index 000000000..baf2066cb
--- /dev/null
+++ b/gnome-unstable/nautilus/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 117910 2011-04-04 21:21:38Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=nautilus
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="The GNOME shell and file manager"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libexif' 'gnome-desktop' 'exempi' 'gtk3' 'hicolor-icon-theme' 'gvfs' 'desktop-file-utils' 'gsettings-desktop-schemas' 'shared-mime-info')
+makedepends=('intltool' 'gobject-introspection')
+replaces=('gnome-volume-manager')
+url="http://www.gnome.org"
+groups=('gnome')
+options=('!libtool' '!emptydirs')
+install=nautilus.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('6842be325c7acd5bb889ed93dfb1ed8b9ccc4a1ff7e034cb083895e74e59ebe3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --libexecdir=/usr/lib/nautilus \
+ --disable-nst-extension \
+ --disable-update-mimedb \
+ --disable-packagekit \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/nautilus/nautilus.install b/gnome-unstable/nautilus/nautilus.install
new file mode 100644
index 000000000..631e38649
--- /dev/null
+++ b/gnome-unstable/nautilus/nautilus.install
@@ -0,0 +1,20 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall nautilus
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/network-manager-applet/PKGBUILD b/gnome-unstable/network-manager-applet/PKGBUILD
new file mode 100644
index 000000000..63c5c1e17
--- /dev/null
+++ b/gnome-unstable/network-manager-applet/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 115713 2011-03-19 18:39:08Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Arjan Timmerman <arjan@archlinux.org>
+# Contributor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+# Contributor: Tor Krill <tor@krill.nu>
+# Contributor: Will Rea <sillywilly@gmail.com>
+
+pkgname=network-manager-applet
+pkgver=0.8.997
+pkgrel=1
+pkgdesc="GNOME frontends to NetWorkmanager"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=('networkmanager' 'libgnome-keyring' 'polkit-gnome' 'gtk3'
+ 'notification-daemon' 'libnotify' 'gnome-icon-theme'
+ 'mobile-broadband-provider-info' 'gconf')
+makedepends=('intltool' 'gnome-bluetooth')
+optdepends=('gnome-bluetooth: for PAN/DUN support')
+options=('!libtool')
+install=network-manager-applet.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('ff41efbea99009f43b03415bfa0a384c8859c8bf5418a75f243f952abec2d2e8')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static \
+ --disable-maintainer-mode
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain nm-applet ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/network-manager-applet/network-manager-applet.install b/gnome-unstable/network-manager-applet/network-manager-applet.install
new file mode 100644
index 000000000..9922d12b2
--- /dev/null
+++ b/gnome-unstable/network-manager-applet/network-manager-applet.install
@@ -0,0 +1,18 @@
+pkgname=network-manager-applet
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/networkmanager-openvpn/PKGBUILD b/gnome-unstable/networkmanager-openvpn/PKGBUILD
new file mode 100644
index 000000000..6727b1a3e
--- /dev/null
+++ b/gnome-unstable/networkmanager-openvpn/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115745 2011-03-21 07:10:05Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-openvpn
+pkgver=0.8.995
+pkgrel=2
+pkgdesc="NetworkManager VPN plugin for OpenVPN"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'openvpn')
+makedepends=('intltool' 'gtk3' 'gconf' 'libgnome-keyring')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+install=networkmanager-openvpn.install
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-openvpn/0.8/NetworkManager-openvpn-${pkgver}.tar.bz2)
+sha256sums=('571119ec3981de1a02991305fde5f519d16d45ed922bc53457a4e7a18ee31783')
+
+build() {
+ cd "${srcdir}/NetworkManager-openvpn-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/NetworkManager-openvpn-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/networkmanager-openvpn/networkmanager-openvpn.install b/gnome-unstable/networkmanager-openvpn/networkmanager-openvpn.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/gnome-unstable/networkmanager-openvpn/networkmanager-openvpn.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/networkmanager-pptp/PKGBUILD b/gnome-unstable/networkmanager-pptp/PKGBUILD
new file mode 100644
index 000000000..85d508981
--- /dev/null
+++ b/gnome-unstable/networkmanager-pptp/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115750 2011-03-21 11:16:32Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-pptp
+pkgver=0.8.995
+pkgrel=2
+pkgdesc="NetworkManager VPN plugin for pptp "
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'pptpclient')
+makedepends=('intltool' 'gtk3' 'gconf' 'libgnome-keyring')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=networkmanager-pptp.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-pptp/0.8/NetworkManager-pptp-${pkgver}.tar.bz2)
+sha256sums=('2c47c039280af32e98669fba66affca65cae027bf1df51b2005e969e009ea12a')
+
+build() {
+ cd "${srcdir}/NetworkManager-pptp-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/NetworkManager-pptp-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/networkmanager-pptp/networkmanager-pptp.install b/gnome-unstable/networkmanager-pptp/networkmanager-pptp.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/gnome-unstable/networkmanager-pptp/networkmanager-pptp.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/networkmanager-vpnc/PKGBUILD b/gnome-unstable/networkmanager-vpnc/PKGBUILD
new file mode 100644
index 000000000..0e02cd37d
--- /dev/null
+++ b/gnome-unstable/networkmanager-vpnc/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 115754 2011-03-21 11:16:56Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+pkgname=networkmanager-vpnc
+pkgver=0.8.996
+pkgrel=2
+pkgdesc="NetworkManager VPN plugin for vpnc"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=("networkmanager>=${pkgver}" 'vpnc' 'hicolor-icon-theme'
+ 'gtk-update-icon-cache')
+makedepends=('intltool' 'gtk3' 'gconf' 'libgnome-keyring')
+optdepends=('network-manager-applet: GNOME frontends to NetWorkmanager')
+options=('!libtool')
+install=networkmanager-vpnc.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/NetworkManager-vpnc/0.8/NetworkManager-vpnc-${pkgver}.tar.bz2)
+sha256sums=('c74a5a59c4bf960081c6d1d6dfe3f0712cc697b8cccaa90a250241bb2fbc079d')
+
+build() {
+ cd "${srcdir}/NetworkManager-vpnc-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/networkmanager \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/NetworkManager-vpnc-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/networkmanager-vpnc/networkmanager-vpnc.install b/gnome-unstable/networkmanager-vpnc/networkmanager-vpnc.install
new file mode 100644
index 000000000..931c0517c
--- /dev/null
+++ b/gnome-unstable/networkmanager-vpnc/networkmanager-vpnc.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -f -q -t /usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/gnome-unstable/networkmanager/NetworkManager.conf b/gnome-unstable/networkmanager/NetworkManager.conf
new file mode 100644
index 000000000..c37b59680
--- /dev/null
+++ b/gnome-unstable/networkmanager/NetworkManager.conf
@@ -0,0 +1,2 @@
+[main]
+plugins=keyfile
diff --git a/gnome-unstable/networkmanager/PKGBUILD b/gnome-unstable/networkmanager/PKGBUILD
new file mode 100644
index 000000000..d752a7888
--- /dev/null
+++ b/gnome-unstable/networkmanager/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 116378 2011-03-23 00:13:02Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinxu.org>
+# Contri-butor: Wael Nasreddine <gandalf@siemens-mobiles.org>
+# Contributor: Tor Krill <tor@krill.nu>
+# Contributor: Will Rea <sillywilly@gmail.com>
+# Contributor: Valentine Sinitsyn <e_val@inbox.ru>
+
+pkgname=networkmanager
+pkgver=0.8.997
+pkgrel=2
+pkgdesc="Network Management daemon"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/NetworkManager/"
+depends=('dbus-glib' 'iproute2' 'libnl' 'nss' 'polkit' 'udev' 'wireless_tools' 'wpa_supplicant' 'ppp' 'dhcpcd')
+makedepends=('intltool' 'dhclient' 'iptables' 'gobject-introspection')
+optdepends=('modemmanager: for modem management service'
+ 'dhclient: alternative DHCP/DHCPv6 client'
+ 'iptables: Connection sharing'
+ 'dnsmasq: Connection sharing'
+ 'bluez: Bluetooth support')
+options=('!libtool')
+backup=('etc/NetworkManager/NetworkManager.conf')
+install=networkmanager.install
+source=(http://ftp.gnome.org/pub/gnome/sources/NetworkManager/0.8/NetworkManager-${pkgver}.tar.bz2
+ NetworkManager.conf disable_set_hostname.patch)
+sha256sums=('332cdd94f480099d23f39d56b3aee9925e435ffe91d088a9476d9b8b3586887a'
+ '44b048804c7c0b8b3b0c29b8632b6ad613c397d0a1635ec918e10c0fbcdadf21'
+ '1e4586991bc96ef004dc520c794047a336c54433e0bd4edc3879fb6e7ab0e553')
+
+build() {
+ cd "${srcdir}/NetworkManager-${pkgver}"
+
+ patch -Np1 -i "${srcdir}/disable_set_hostname.patch"
+
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/networkmanager \
+ --with-crypto=nss \
+ --with-distro=arch \
+ --with-dhclient=/usr/sbin/dhclient \
+ --with-dhcpcd=/sbin/dhcpcd \
+ --with-iptables=/usr/sbin/iptables \
+ --disable-static \
+ --enable-more-warnings=no \
+ --disable-wimax
+
+ make
+}
+
+package() {
+ cd "${srcdir}/NetworkManager-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 "${srcdir}/NetworkManager.conf" "${pkgdir}/etc/NetworkManager/"
+}
diff --git a/gnome-unstable/networkmanager/disable_set_hostname.patch b/gnome-unstable/networkmanager/disable_set_hostname.patch
new file mode 100644
index 000000000..6c9e2f6c6
--- /dev/null
+++ b/gnome-unstable/networkmanager/disable_set_hostname.patch
@@ -0,0 +1,19 @@
+diff -Nur NetworkManager-0.8.2.orig/src/nm-policy.c NetworkManager-0.8.2/src/nm-policy.c
+--- NetworkManager-0.8.2.orig/src/nm-policy.c 2010-11-03 12:58:42.000000000 -0700
++++ NetworkManager-0.8.2/src/nm-policy.c 2010-11-23 06:22:32.436707081 -0800
+@@ -342,6 +342,7 @@
+ return;
+ }
+
++#if 0
+ /* Try automatically determined hostname from the best device's IP config */
+ if (!best4)
+ best4 = get_best_ip4_device (policy->manager, &best_req4);
+@@ -396,6 +397,7 @@
+ }
+ }
+
++#endif
+ /* If no automatically-configured hostname, try using the hostname from
+ * when NM started up.
+ */
diff --git a/gnome-unstable/networkmanager/networkmanager.install b/gnome-unstable/networkmanager/networkmanager.install
new file mode 100644
index 000000000..de40c17ed
--- /dev/null
+++ b/gnome-unstable/networkmanager/networkmanager.install
@@ -0,0 +1,9 @@
+post_upgrade() {
+ (( $(vercmp 0.8.3 $2) > 0 )) && cat <<MSG
+ATTENTION:
+ /etc/NetworkManager/nm-system-settings.conf has been replaced
+ by /etc/NetworkManager/NetworkManager.conf. Make sure you move
+ any custom settings to the new config file.
+MSG
+ true
+}
diff --git a/gnome-unstable/notification-daemon/PKGBUILD b/gnome-unstable/notification-daemon/PKGBUILD
new file mode 100644
index 000000000..c71f1c7f5
--- /dev/null
+++ b/gnome-unstable/notification-daemon/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110126 2011-02-16 17:22:45Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Mark Rosenstand <mark@borkware.net>
+
+pkgname=notification-daemon
+pkgver=0.7.1
+pkgrel=1
+pkgdesc="Notification daemon for the desktop notifications framework"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.galago-project.org/specs/notification/"
+depends=('gtk3' 'libcanberra')
+groups=('gnome')
+makedepends=('pkgconfig' 'intltool' 'dbus-glib')
+options=('!libtool' '!emptydirs')
+source=(http://download.gnome.org/sources/${pkgname}/0.7/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('d26bf9021b3ae708d36e55437642a89d6b81693fe39d27c5d1ec869e22697b8b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/notification-daemon-1.0 \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/gnome-unstable/notification-daemon/notification-daemon.install b/gnome-unstable/notification-daemon/notification-daemon.install
new file mode 100644
index 000000000..8a1aa3433
--- /dev/null
+++ b/gnome-unstable/notification-daemon/notification-daemon.install
@@ -0,0 +1,22 @@
+pkgname=notification-daemon
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/opal/PKGBUILD b/gnome-unstable/opal/PKGBUILD
new file mode 100644
index 000000000..cbc4ae32b
--- /dev/null
+++ b/gnome-unstable/opal/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 111695 2011-02-28 18:26:03Z heftig $
+# Maintainer: Jan de Groot <jan@archlinux.org>
+# Contributor: Tom K <tomk@runbox.com>
+pkgname=opal
+pkgver=3.8.3
+pkgrel=1
+pkgdesc="Open Phone Abstraction Library"
+arch=(i686 x86_64)
+url="http://www.ekiga.org"
+license=('GPL')
+depends=('ptlib' 'libtheora' 'x264' 'speex')
+makedepends=('ffmpeg')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('d775626d786028357a8535fb2ff8f04bce9c1bff51db0e962f0939c2b988767f')
+
+build() {
+ cd "${srcdir}/opal-${pkgver}"
+ CFLAGS="$CFLAGS -D__STDC_CONSTANT_MACROS" \
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/opal-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/pangomm/PKGBUILD b/gnome-unstable/pangomm/PKGBUILD
new file mode 100644
index 000000000..17d1483cd
--- /dev/null
+++ b/gnome-unstable/pangomm/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 116819 2011-03-25 21:50:27Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=pangomm
+pkgname=('pangomm' 'pangomm-docs')
+pkgver=2.28.1
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+makedepends=('pango' 'glibmm' 'glibmm-docs' 'cairomm' 'pkgconfig')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
+options=('!libtool')
+url="http://gtkmm.sourceforge.net/"
+sha256sums=('2c89b4460f88f8ece0e94a3332a804ca4858a3594abd84043b2898b61ab21c1b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+package_pangomm() {
+ pkgdesc="C++ bindings for pango"
+ depends=('pango' 'glibmm' 'cairomm')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i -e 's/^doc_subdirs/#doc_subdirs/' Makefile
+ make DESTDIR="${pkgdir}" install
+}
+
+package_pangomm-docs() {
+ pkgdesc="Developer documentation for pangomm"
+ cd "${srcdir}/${pkgbase}-${pkgver}/docs"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/pidgin/PKGBUILD b/gnome-unstable/pidgin/PKGBUILD
new file mode 100644
index 000000000..2e29fc7ac
--- /dev/null
+++ b/gnome-unstable/pidgin/PKGBUILD
@@ -0,0 +1,90 @@
+# $Id: PKGBUILD 114320 2011-03-12 12:41:32Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: Lucien Immink <l.immink@student.fnt.hvu.nl>
+
+pkgbase=('pidgin')
+pkgname=('libpurple' 'pidgin' 'finch')
+pkgver=2.7.11
+pkgrel=2
+arch=('i686' 'x86_64')
+url="http://pidgin.im/"
+license=('GPL')
+makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'python2' 'hicolor-icon-theme' 'silc-toolkit' 'gstreamer0.10'
+ 'farsight2' 'avahi' 'tk' 'ca-certificates' 'intltool' 'networkmanager')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2)
+md5sums=('07c2a2535b4d7436b5ec7685fe063fec')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ sed -i "s#env python#env python2#" */plugins/*.py
+ sed -i "s#env python#env python2#" libpurple/purple-{remote,notifications-example,url-handler}
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --disable-schemas-install \
+ --disable-meanwhile \
+ --disable-gnutls \
+ --enable-cyrus-sasl \
+ --disable-doxygen \
+ --enable-nm \
+ --with-python=/usr/bin/python2 \
+ --with-system-ssl-certs=/etc/ssl/certs
+ make
+}
+package_libpurple(){
+ pkgdesc="IM library extracted from Pidgin"
+ depends=('farsight2' 'libsasl' 'dbus-glib' 'silc-toolkit' 'nss' 'cyrus-sasl-plugins')
+ optdepends=('dbus-python: for purple-remote and purple-url-handler')
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ for dir in libpurple share/sounds share/ca-certs m4macros po
+ do
+ make -C "${dir}" DESTDIR="${pkgdir}" install
+ done
+# rm -rf "$pkgdir/etc" || return 1
+}
+
+package_pidgin(){
+ pkgdesc="Multi-protocol instant messaging client"
+ depends=("libpurple=$pkgver" 'startup-notification' 'gtkspell' 'libxss' 'hicolor-icon-theme' 'gstreamer0.10')
+ optdepends=('aspell: for spelling correction'
+ 'avahi: Bonjour protocol support'
+ 'ca-certificates: SSL CA certificates'
+ 'gstreamer0.10-good-plugins: video and voice support'
+ 'tk: Tcl/Tk scripting support')
+
+ install=pidgin.install
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ #for linking
+ make -C libpurple DESTDIR="${pkgdir}" install-libLTLIBRARIES
+
+ make -C pidgin DESTDIR="${pkgdir}" install
+ make -C doc DESTDIR="${pkgdir}" install
+
+ #clean up libpurple
+ make -C libpurple DESTDIR="${pkgdir}" uninstall-libLTLIBRARIES
+
+ install -D -m 0644 pidgin.desktop "${pkgdir}"/usr/share/applications/pidgin.desktop
+
+ rm -f "${pkgdir}"/usr/share/man/man1/finch.1
+}
+package_finch(){
+ pkgdesc="A ncurses-based messaging client"
+ depends=("libpurple=$pkgver" 'python2' 'gstreamer0.10')
+ optdepends=('avahi: Bonjour protocol support'
+ 'ca-certificates: SSL CA certificates'
+ 'tk: Tcl/Tk scripting support')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ #for linking
+ make -C libpurple DESTDIR="${pkgdir}" install-libLTLIBRARIES
+
+ make -C finch DESTDIR="${pkgdir}" install
+ make -C doc DESTDIR="${pkgdir}" install
+
+ #clean up libpurple
+ make -C libpurple DESTDIR="${pkgdir}" uninstall-libLTLIBRARIES
+ rm -f "${pkgdir}"/usr/share/man/man1/pidgin.1
+}
diff --git a/gnome-unstable/pidgin/pidgin.install b/gnome-unstable/pidgin/pidgin.install
new file mode 100644
index 000000000..1a05f573e
--- /dev/null
+++ b/gnome-unstable/pidgin/pidgin.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/polkit-gnome/PKGBUILD b/gnome-unstable/polkit-gnome/PKGBUILD
new file mode 100644
index 000000000..6f901f6c9
--- /dev/null
+++ b/gnome-unstable/polkit-gnome/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117304 2011-03-30 19:38:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: onestep_ua <onestep@ukr.net>
+
+pkgname=polkit-gnome
+pkgver=0.101
+pkgrel=2
+pkgdesc="PolicyKit integration for the GNOME desktop"
+arch=('i686' 'x86_64')
+url="http://www.freedesktop.org/wiki/Software/PolicyKit"
+license=('LGPL')
+depends=('polkit>=0.101' 'gtk3')
+makedepends=('intltool' 'gobject-introspection')
+options=(!libtool)
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.bz2
+ polkit-gnome-authentication-agent-1.desktop)
+md5sums=('da6aaff473ed80f8958fd6f67a59defe'
+ '5668cffbfd031452c86db8adceba79b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/polkit-gnome \
+ --disable-static --with-gtk=3.0
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 "${srcdir}/polkit-gnome-authentication-agent-1.desktop" \
+ "${pkgdir}/etc/xdg/autostart/polkit-gnome-authentication-agent-1.desktop"
+}
diff --git a/gnome-unstable/polkit-gnome/polkit-gnome-authentication-agent-1.desktop b/gnome-unstable/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
new file mode 100644
index 000000000..2016294e9
--- /dev/null
+++ b/gnome-unstable/polkit-gnome/polkit-gnome-authentication-agent-1.desktop
@@ -0,0 +1,88 @@
+[Desktop Entry]
+Name=PolicyKit Authentication Agent
+Name[ar]=مدير الاستيثاق PolicyKit
+Name[be]=PolicyKit - аґент аўтэнтыфікацыі
+Name[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Name[ca]=Agent d'autenticació del PolicyKit
+Name[cs]=Ověřovací agent PolicyKit
+Name[da]=Godkendelsesprogrammet PolicyKit
+Name[de]=Legitimationsdienst von PolicyKit
+Name[el]=Πράκτορας πιστοποίησης PolicyKit
+Name[en_GB]=PolicyKit Authentication Agent
+Name[es]=Agente de autenticación de PolicyKit
+Name[eu]=PolicyKit autentifikatzeko agentea
+Name[fi]=PolicytKit-tunnistautumisohjelma
+Name[fr]=Agent d'authentification de PolicyKit
+Name[gl]=Axente de autenticación PolicyKit
+Name[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Name[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Name[hu]=PolicyKit hitelesítési ügynök
+Name[it]=Agente di autenticazione per PolicyKit
+Name[ja]=PolicyKit 認証エージェント
+Name[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Name[lt]=PolicyKit tapatybės nustatymo agentas
+Name[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Name[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Name[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Name[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Name[pl]=Agent uwierzytelniania PolicyKit
+Name[pt]=Agente de Autenticação PolicyKit
+Name[pt_BR]=Agente de autenticação PolicyKit
+Name[ro]=Agent de autentificare PolicyKit
+Name[sk]=Agent PolicyKit na overovanie totožnosti
+Name[sl]=PolicyKit program overjanja
+Name[sv]=Autentiseringsagent för PolicyKit
+Name[ta]=PolicyKit அங்கீகார முகவர்
+Name[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Name[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Name[uk]=Агент автентифікації PolicyKit
+Name[zh_CN]=PolicyKit 认证代理
+Name[zh_HK]=PolicyKit 驗證代理程式
+Name[zh_TW]=PolicyKit 驗證代理程式
+Comment=PolicyKit Authentication Agent
+Comment[ar]=مدير الاستيثاق PolicyKit
+Comment[be]=PolicyKit - аґент аўтэнтыфікацыі
+Comment[bn_IN]=PolicyKit অনুমোদনের এজেন্ট
+Comment[ca]=Agent d'autenticació del PolicyKit
+Comment[cs]=Ověřovací agent PolicyKit
+Comment[da]=Godkendelsesprogrammet PolicyKit
+Comment[de]=Legitimationsdienst von PolicyKit
+Comment[el]=Πράκτορας πιστοποίησης PolicyKit
+Comment[en_GB]=PolicyKit Authentication Agent
+Comment[es]=Agente de autenticación de PolicyKit
+Comment[eu]=PolicyKit autentifikatzeko agentea
+Comment[fi]=PolicytKit-tunnistautumisohjelma
+Comment[fr]=Agent d'authentification de PolicyKit
+Comment[gl]=Axente de autenticación PolicyKit
+Comment[gu]=PolicyKit સત્તાધિકરણ એજન્ટ
+Comment[hi]=PolicyKit प्रमाणीकरण प्रतिनिधि
+Comment[hu]=PolicyKit hitelesítési ügynök
+Comment[it]=Agente di autenticazione per PolicyKit
+Comment[ja]=PolicyKit 認証エージェント
+Comment[kn]=PolicyKit ದೃಢೀಕರಣ ಮಧ್ಯವರ್ತಿ
+Comment[lt]=PolicyKit tapatybės nustatymo agentas
+Comment[ml]=പോളിസിക്കിറ്റ് ഓഥന്റിക്കേഷന്‍ ഏജന്റ്
+Comment[mr]=PolicyKit ऑथेंटीकेशन एजेंट
+Comment[or]=PolicyKit ବୈଧିକରଣ ସଦସ୍ୟ
+Comment[pa]=ਪਾਲਸੀਕਿੱਟ ਪਰਮਾਣਕਿਤਾ ਏਜੰਟ
+Comment[pl]=Agent uwierzytelniania PolicyKit
+Comment[pt]=Agente de Autenticação PolicyKit
+Comment[pt_BR]=Agente de autenticação PolicyKit
+Comment[ro]=Agent de autentificare PolicyKit
+Comment[sk]=Agent PolicyKit na overovanie totožnosti
+Comment[sl]=PolicyKit program overjanja
+Comment[sv]=Autentiseringsagent för PolicyKit
+Comment[ta]=PolicyKit அங்கீகார முகவர்
+Comment[te]=పాలసీకిట్ ధృవీకరణ ప్రతినిధి
+Comment[th]=ตัวกลางสำหรับยืนยันตัวบุคคล PolicyKit
+Comment[uk]=Агент автентифікації PolicyKit
+Comment[zh_CN]=PolicyKit 认证代理
+Comment[zh_HK]=PolicyKit 驗證代理程式
+Comment[zh_TW]=PolicyKit 驗證代理程式
+Exec=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+Terminal=false
+Type=Application
+Categories=
+NoDisplay=true
+NotShowIn=KDE;
+AutostartCondition=GNOME3 if-session gnome-fallback
diff --git a/gnome-unstable/polkit/PKGBUILD b/gnome-unstable/polkit/PKGBUILD
new file mode 100644
index 000000000..072cb033a
--- /dev/null
+++ b/gnome-unstable/polkit/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 114364 2011-03-12 22:11:26Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=polkit
+pkgver=0.101
+pkgrel=1
+pkgdesc="Application development toolkit for controlling system-wide privileges"
+arch=(i686 x86_64)
+license=('LGPL')
+url="http://www.freedesktop.org/wiki/Software/PolicyKit"
+depends=('glib2' 'pam' 'expat')
+makedepends=('intltool' 'gtk-doc' 'gobject-introspection')
+replaces=('policykit')
+options=('!libtool')
+source=(http://hal.freedesktop.org/releases/${pkgname}-${pkgver}.tar.gz
+ polkit.pam)
+md5sums=('f925ac93aba3c072977370c1e27feb7f'
+ '6564f95878297b954f0572bc1610dd15')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --libexecdir=/usr/lib/polkit-1 \
+ --disable-static --enable-gtk-doc
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m644 "${srcdir}/polkit.pam" "${pkgdir}/etc/pam.d/polkit-1"
+}
diff --git a/gnome-unstable/polkit/polkit.pam b/gnome-unstable/polkit/polkit.pam
new file mode 100644
index 000000000..04f53e0db
--- /dev/null
+++ b/gnome-unstable/polkit/polkit.pam
@@ -0,0 +1,7 @@
+auth requisite pam_nologin.so
+auth required pam_env.so
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_limits.so
+session required pam_unix.so
+password required pam_unix.so
diff --git a/gnome-unstable/ptlib/PKGBUILD b/gnome-unstable/ptlib/PKGBUILD
new file mode 100644
index 000000000..efba27e62
--- /dev/null
+++ b/gnome-unstable/ptlib/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 111692 2011-02-28 18:24:37Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=ptlib
+pkgver=2.8.3
+pkgrel=1
+pkgdesc="Portable Windows Library"
+arch=(i686 x86_64)
+url="http://www.ekiga.org/"
+license=('GPL')
+depends=('gcc-libs' 'openssl' 'alsa-lib' 'sdl' 'expat' 'libpulse' 'v4l-utils')
+replaces=('pwlib')
+conflicts=('pwlib')
+source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('076afde4e53e5fd0989adc344c3741aea8342b105c3e879e2f4f9a42ef36793e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib \
+ --sysconfdir=/etc --localstatedir=/var \
+ --enable-opal --enable-plugins \
+ --enable-oss --enable-v4l2 \
+ --disable-avc --enable-sdl \
+ --enable-ipv6 --enable-v4l \
+ --enable-dc --disable-odbc \
+ --enable-expat --enable-httpforms
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/pygobject/PKGBUILD b/gnome-unstable/pygobject/PKGBUILD
new file mode 100644
index 000000000..53ad2525a
--- /dev/null
+++ b/gnome-unstable/pygobject/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 116417 2011-03-23 18:26:48Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=pygobject
+pkgname=(pygobject py3gobject pygobject-devel)
+pkgver=2.28.3
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('glib2' 'gobject-introspection')
+makedepends=(python python2 python-cairo python2-cairo)
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.bz2)
+options=('!libtool')
+url="http://www.pygtk.org/"
+sha256sums=('7da88c169a56efccc516cebd9237da3fe518a343095a664607b368fe21df95b6')
+
+build() {
+ cd "${srcdir}"
+ cp -a "${pkgbase}-${pkgver}" python2-build
+ mkdir devel
+
+ (
+ cd python2-build
+ export PYTHON=/usr/bin/python2
+ ./configure --prefix=/usr
+ make
+ )
+
+ (
+ cd "${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ )
+}
+
+package_pygobject() {
+ pkgdesc="Python 2 bindings for GObject"
+ depends+=(python2 python2-cairo)
+
+ cd "${srcdir}/python2-build"
+ make DESTDIR="${pkgdir}" install
+
+ find "$pkgdir"/usr/share/pygobject -name '*.py' | \
+ xargs sed -i "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|"
+
+ # Split devel stuff
+ mv "$pkgdir"/usr/{bin,include,lib/pkgconfig,share/{gtk-doc,pygobject/{2.0/codegen,xsl}}} \
+ "$srcdir/devel/"
+}
+
+package_py3gobject() {
+ pkgdesc="Python 3 bindings for GObject"
+ depends+=(python python-cairo)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ # Delete devel stuff
+ rm -r "$pkgdir"/usr/{bin,include,lib/pkgconfig,share/{gtk-doc,pygobject/{2.0/codegen,xsl}}}
+}
+
+package_pygobject-devel() {
+ pkgdesc="Development files for the pygobject bindings"
+ depends=(python2)
+
+ cd "${srcdir}/devel"
+ mkdir -p "$pkgdir"/usr/{include,lib,share/pygobject/2.0}
+
+ mv bin "$pkgdir/usr/"
+ mv include "$pkgdir/usr/"
+ mv pkgconfig "$pkgdir/usr/lib/"
+ mv gtk-doc "$pkgdir/usr/share/"
+ mv codegen "$pkgdir/usr/share/pygobject/2.0/"
+ mv xsl "$pkgdir/usr/share/pygobject/"
+}
diff --git a/gnome-unstable/pygtk/PKGBUILD b/gnome-unstable/pygtk/PKGBUILD
new file mode 100644
index 000000000..0ef385d8f
--- /dev/null
+++ b/gnome-unstable/pygtk/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 117387 2011-04-01 12:58:54Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Sarah Hay <sarahhay@mb.sympatico.ca>
+
+pkgname=pygtk
+pkgver=2.24.0
+pkgrel=1
+pkgdesc="Python bindings for the GTK widget set"
+arch=('i686' 'x86_64')
+license=('LGPL')
+depends=('libglade' 'python2-cairo' 'pygobject')
+makedepends=('python-numpy' 'pygobject-devel')
+optdepends=('python-numpy')
+options=('!libtool')
+url="http://www.pygtk.org/"
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2
+ python27.patch)
+sha256sums=('cd1c1ea265bd63ff669e92a2d3c2a88eb26bcd9e5363e0f82c896e649f206912'
+ '39a30456cba055a452bb55c74ef1ff2f5f7bfaad22855b4dd569ab009b56b682')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ #https://bugzilla.gnome.org/show_bug.cgi?id=623965
+ patch -Np1 -i "${srcdir}/python27.patch"
+
+ PYTHON=python2 ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m644 gtk/gtk-extrafuncs.defs "${pkgdir}/usr/share/pygtk/2.0/defs/"
+
+ sed -i -e 's#env python$#env python2#' "${pkgdir}"/usr/lib/pygtk/2.0/{,demos/}*.py
+}
diff --git a/gnome-unstable/pygtk/python27.patch b/gnome-unstable/pygtk/python27.patch
new file mode 100644
index 000000000..9bbe2b5ae
--- /dev/null
+++ b/gnome-unstable/pygtk/python27.patch
@@ -0,0 +1,50 @@
+diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c
+index c0e1493..aa8cf10 100644
+--- a/gtk/gtkmodule.c
++++ b/gtk/gtkmodule.c
+@@ -227,8 +227,12 @@ init_gtk(void)
+ pygtk_add_stock_items(d);
+
+ /* extension API */
+- PyDict_SetItemString(d, "_PyGtk_API",
+- o=PyCObject_FromVoidPtr(&functions, NULL));
++#if PY_VERSION_HEX >= 0x02070000
++ o = PyCapsule_New(&functions, "gtk._gtk._PyGtk_API", NULL);
++#else
++ o = PyCObject_FromVoidPtr(&functions, NULL);
++#endif
++ PyDict_SetItemString(d, "_PyGtk_API", o);
+ Py_DECREF(o);
+
+ PyGtkDeprecationWarning = PyErr_NewException("gtk.GtkDeprecationWarning",
+diff --git a/gtk/pygtk.h b/gtk/pygtk.h
+index 573c3b9..e4c680f 100644
+--- a/gtk/pygtk.h
++++ b/gtk/pygtk.h
+@@ -60,6 +60,18 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
+
+
+ /* a function to initialise the pygtk functions */
++
++/* Python 2.7 introduced the PyCapsule API and deprecated the CObject API */
++#if PY_VERSION_HEX >= 0x02070000
++#define init_pygtk() G_STMT_START { \
++ void *capsule = PyCapsule_Import("gtk._gtk._PyGtk_API", 0); \
++ if (!capsule) { \
++ return; \
++ } \
++ _PyGtk_API = (struct _PyGtk_FunctionStruct*)capsule; \
++} G_STMT_END
++#else /* PY_VERSION_HEX */
++/* Python 2.6 and earlier use the CObject API */
+ #define init_pygtk() G_STMT_START { \
+ PyObject *pygtk = PyImport_ImportModule("gtk"); \
+ if (pygtk != NULL) { \
+@@ -79,6 +91,7 @@ struct _PyGtk_FunctionStruct *_PyGtk_API;
+ return; \
+ } \
+ } G_STMT_END
++#endif /* PY_VERSION_HEX */
+
+ #endif
+
diff --git a/gnome-unstable/rest/PKGBUILD b/gnome-unstable/rest/PKGBUILD
new file mode 100644
index 000000000..85efd2c9a
--- /dev/null
+++ b/gnome-unstable/rest/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 116337 2011-03-22 22:12:01Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+pkgname=rest
+pkgver=0.7.8
+pkgrel=1
+pkgdesc="rest"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('glib2' 'libxml2' 'libsoup-gnome')
+makedepends=('gobject-introspection' 'gtk-doc')
+options=('!libtool')
+source=(http://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-${pkgver}.tar.bz2)
+sha256sums=('39b53ef984e90636afeda05c38d238f2371c83a55fdbb3f699f878a7afb879c4')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="${pkgdir}" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/rhythmbox/PKGBUILD b/gnome-unstable/rhythmbox/PKGBUILD
new file mode 100644
index 000000000..422c4bc01
--- /dev/null
+++ b/gnome-unstable/rhythmbox/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 117414 2011-04-01 17:30:03Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=rhythmbox
+pkgver=2.90.1
+pkgrel=2
+pkgdesc="An iTunes-like music player/libary"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.rhythmbox.org"
+depends=('libgpod' 'gvfs-afc' 'gconf' 'libgnome-media-profiles' 'totem-plparser' 'libsoup-gnome' 'gtk3' 'libmusicbrainz3' 'libmtp' 'libnotify'
+ 'lirc-utils' 'libwebkit3' 'libdmapsharing' 'media-player-info' 'pygobject' 'gstreamer0.10-python' 'python-gnomekeyring' 'gstreamer0.10-base-plugins'
+ 'gstreamer0.10-good-plugins' 'json-glib' 'desktop-file-utils')
+makedepends=('pkgconfig' 'gnome-doc-utils>=0.20.1' 'intltool' 'brasero' 'gnome-common' 'gtk-doc' 'gobject-introspection' 'pygobject-devel')
+optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
+ 'gstreamer0.10-bad-plugins: Extra media codecs'
+ 'gstreamer0.10-ffmpeg: Extra media codecs'
+ 'brasero: cd burning')
+options=('!libtool' '!emptydirs')
+install=rhythmbox.install
+#source=(http://ftp.gnome.org/pub/GNOME/sources/${pkgname}/0.13/${pkgname}-${pkgver}.tar.bz2)
+source=(${pkgname}-${pkgver}.tar.xz)
+sha256sums=('070452540c869d6f73feb715683c8534aa29e15e27dd8485db751c42ce21718a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./autogen.sh
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/rhythmbox \
+ --localstatedir=/var --disable-static \
+ --enable-daap --enable-python \
+ --with-mdns=avahi --disable-scrollkeeper
+
+ make
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain rhythmbox ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/rhythmbox/rhythmbox.install b/gnome-unstable/rhythmbox/rhythmbox.install
new file mode 100644
index 000000000..10c4f2229
--- /dev/null
+++ b/gnome-unstable/rhythmbox/rhythmbox.install
@@ -0,0 +1,24 @@
+pkgname=rhythmbox
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -f -q -t usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/seahorse/PKGBUILD b/gnome-unstable/seahorse/PKGBUILD
new file mode 100644
index 000000000..2d3389ced
--- /dev/null
+++ b/gnome-unstable/seahorse/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 116829 2011-03-25 22:03:39Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Michel Brabants <michel.linux@tiscali.be>
+
+pkgname=seahorse
+pkgver=2.91.93
+pkgrel=1
+pkgdesc="GNOME application for managing PGP keys."
+arch=(i686 x86_64)
+license=('GPL')
+url="http://projects.gnome.org/seahorse/"
+depends=('gtk3' 'gconf' 'libgnome-keyring' 'gnome-keyring' 'libnotify' 'libsoup' 'gpgme' 'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('gettext' 'libldap' 'intltool' 'pkgconfig' 'gnome-doc-utils' 'gobject-introspection' 'openssh' 'libsm')
+options=('!libtool' '!emptydirs')
+groups=('gnome-extra')
+install=seahorse.install
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('ac67e077249062e38b5239616a1f02d96b2484045d2964cb2ce6972e9e0d2ae4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static \
+ --enable-ldap --enable-hkp \
+ --disable-scrollkeeper \
+ --disable-update-mime-database \
+ --with-gtk=3.0
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/gconf/schemas"
+ gconf-merge-schema "${pkgdir}/usr/share/gconf/schemas/${pkgname}.schemas" --domain seahorse ${pkgdir}/etc/gconf/schemas/*.schemas
+ rm -f ${pkgdir}/etc/gconf/schemas/*.schemas
+}
diff --git a/gnome-unstable/seahorse/seahorse.install b/gnome-unstable/seahorse/seahorse.install
new file mode 100644
index 000000000..97feac3b1
--- /dev/null
+++ b/gnome-unstable/seahorse/seahorse.install
@@ -0,0 +1,24 @@
+pkgname=seahorse
+
+post_install() {
+ usr/sbin/gconfpkg --install ${pkgname}
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ pre_remove $1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ usr/sbin/gconfpkg --uninstall ${pkgname}
+}
+
+post_remove() {
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
diff --git a/gnome-unstable/telepathy-gabble/PKGBUILD b/gnome-unstable/telepathy-gabble/PKGBUILD
new file mode 100644
index 000000000..aea1eee98
--- /dev/null
+++ b/gnome-unstable/telepathy-gabble/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117604 2011-04-04 12:56:08Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Daniel Balieiro <daniel@balieiro.com>
+# Contributor: Rodrigo L. M. Flores <mail@rodrigoflores.org>
+pkgname=telepathy-gabble
+pkgver=0.11.10
+pkgrel=1
+pkgdesc="A Jabber/XMPP connection manager for Telepathy"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libsoup' 'libnice' 'util-linux' 'sqlite3')
+makedepends=('libxslt' 'python2')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/telepathy-gabble/${pkgname}-${pkgver}.tar.gz)
+install=telepathy-gabble.install
+md5sums=('2a8ee3038bd1c9ee40c1b8b48becfa16')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/gnome-unstable/telepathy-gabble/telepathy-gabble.install b/gnome-unstable/telepathy-gabble/telepathy-gabble.install
new file mode 100644
index 000000000..87d7838b8
--- /dev/null
+++ b/gnome-unstable/telepathy-gabble/telepathy-gabble.install
@@ -0,0 +1,13 @@
+post_install() {
+ killall -HUP dbus-daemon 2>&1
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/telepathy-glib/PKGBUILD b/gnome-unstable/telepathy-glib/PKGBUILD
new file mode 100644
index 000000000..46c55b48d
--- /dev/null
+++ b/gnome-unstable/telepathy-glib/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 117593 2011-04-04 12:26:48Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Kessia 'even' Pinheiro <kessiapinheiro at gmail.com
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+pkgname=telepathy-glib
+pkgver=0.14.3
+pkgrel=1
+pkgdesc="GLib bindings for the Telepathy D-Bus protocol"
+arch=('i686' 'x86_64')
+url="http://telepathy.freedesktop.org"
+groups=('telepathy')
+license=('LGPL2.1')
+options=('!libtool' '!emptydirs')
+depends=('dbus-glib')
+makedepends=('libxslt' 'vala' 'gobject-introspection')
+source=("http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('fe9a4f781651593fd4afddb343ff50bf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-vala-bindings \
+ --enable-static=no
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+}
diff --git a/gnome-unstable/telepathy-logger/PKGBUILD b/gnome-unstable/telepathy-logger/PKGBUILD
new file mode 100644
index 000000000..7e0e7f1bd
--- /dev/null
+++ b/gnome-unstable/telepathy-logger/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117598 2011-04-04 12:33:45Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+pkgname=telepathy-logger
+pkgver=0.2.8
+pkgrel=1
+pkgdesc="Telepathy framework logging daemon"
+arch=(i686 x86_64)
+url="http://telepathy.freedesktop.org/wiki/Logger"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'sqlite3' 'libxml2' 'dconf')
+makedepends=('intltool' 'gnome-doc-utils' 'gobject-introspection')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('755e6dcaa6a9ccf47f2fe73f3d4d888b')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/telepathy \
+ --disable-static \
+ --disable-scrollkeeper \
+ --disable-schemas-compile
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/gnome-unstable/telepathy-logger/telepathy-logger.install b/gnome-unstable/telepathy-logger/telepathy-logger.install
new file mode 100644
index 000000000..8fd591f55
--- /dev/null
+++ b/gnome-unstable/telepathy-logger/telepathy-logger.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove(){
+ post_install
+}
diff --git a/gnome-unstable/telepathy-mission-control/PKGBUILD b/gnome-unstable/telepathy-mission-control/PKGBUILD
new file mode 100644
index 000000000..ee6f03791
--- /dev/null
+++ b/gnome-unstable/telepathy-mission-control/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 113465 2011-03-08 18:20:27Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Ju Liu <liuju86 at gmail dot com>
+# Contributor: Bjorn Lindeijer <bjorn lindeijer nl>
+# Contributor: Andreas Zwinkau <beza1e1@web.de>
+pkgname=telepathy-mission-control
+pkgver=5.7.6
+pkgrel=1
+pkgdesc="A Telepathy component providing abstraction of some of the details of connection managers."
+arch=('i686' 'x86_64')
+url="http://mission-control.sourceforge.net/"
+license=('LGPL2.1')
+depends=('telepathy-glib' 'libgnome-keyring')
+makedepends=('libxslt' 'python2')
+options=('!libtool')
+source=(http://telepathy.freedesktop.org/releases/telepathy-mission-control/$pkgname-$pkgver.tar.gz)
+md5sums=('fcfc077949d910e3c619d2193f236606')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/lib/telepathy \
+ --enable-gnome-keyring
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/gnome-unstable/totem-plparser/PKGBUILD b/gnome-unstable/totem-plparser/PKGBUILD
new file mode 100644
index 000000000..33c8d79b5
--- /dev/null
+++ b/gnome-unstable/totem-plparser/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 116067 2011-03-22 18:11:16Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=totem-plparser
+pkgver=2.32.4
+pkgrel=1
+url="http://www.hadess.net/totem.php3"
+pkgdesc="Totem playlist parser library"
+license=('LGPL')
+arch=(i686 x86_64)
+depends=('gmime' 'libsoup-gnome')
+makedepends=('intltool' 'pkgconfig' 'gobject-introspection')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/totem-pl-parser/2.32/totem-pl-parser-${pkgver}.tar.bz2)
+sha256sums=('349006c8c26a7bee6775c2f48cb158be15c92608f444598c67ca820c205213d6')
+
+build() {
+ cd "${srcdir}/totem-pl-parser-${pkgver}"
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+package(){
+ cd "${srcdir}/totem-pl-parser-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/totem/PKGBUILD b/gnome-unstable/totem/PKGBUILD
new file mode 100644
index 000000000..38e8d5a06
--- /dev/null
+++ b/gnome-unstable/totem/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 117683 2011-04-04 16:18:24Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=totem
+pkgname=('totem' 'totem-plugin')
+pkgver=3.0.0
+pkgrel=1
+url="http://www.hadess.net/totem.php3"
+arch=('i686' 'x86_64')
+license=('GPL2' 'custom')
+makedepends=('intltool' 'gnome-doc-utils' 'gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'totem-plparser'
+ 'libpeas' 'pygobject' 'pygobject-devel' 'nautilus' 'libxxf86vm' 'libxtst' 'desktop-file-utils' 'iso-codes' 'libgdata'
+ 'xulrunner' 'lirc-utils' 'libepc' 'bluez' 'vala')
+options=('!libtool' '!emptydirs')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgbase}/${pkgver%.*}/${pkgbase}-${pkgver}.tar.bz2)
+sha256sums=('cfcd884d73ee7ac7a2ffd1c1191314d76fa738494621985ab865c47002cb481d')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/totem \
+ --localstatedir=/var --disable-static \
+ --enable-python --enable-nautilus \
+ --with-dbus --disable-scrollkeeper
+ make
+}
+
+package_totem() {
+ pkgdesc="A GNOME3 integrated movie player based on Gstreamer."
+ depends=('gstreamer0.10-base-plugins' 'gstreamer0.10-good-plugins' 'totem-plparser' 'libxxf86vm' 'libxtst' 'desktop-file-utils' 'iso-codes' 'python2' 'libpeas' 'hicolor-icon-theme' 'gnome-icon-theme-symbolic')
+ groups=('gnome-extra')
+ install=totem.install
+ optdepends=('gstreamer0.10-ugly-plugins: Extra media codecs'
+ 'gstreamer0.10-bad-plugins: Extra media codecs'
+ 'gstreamer0.10-ffmpeg: Extra media codecs'
+ 'lirc-utils: Infrared Remote Control plugin'
+ 'libepc: Publish Playlist plugin'
+ 'libgdata: YouTube Browser plugin'
+ 'bluez: Bemused plugin')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/lib/mozilla"
+ rm -f "${pkgdir}/usr/lib/totem/totem-plugin-viewer"
+
+ sed -i "s|#!/usr/bin/python$|#!/usr/bin/python2|" \
+ $pkgdir/usr/lib/totem/{totem/totem-bugreport.py,plugins/iplayer/iplayer2.py}
+
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/totem/COPYING"
+}
+
+package_totem-plugin() {
+ pkgdesc="Totem mozilla/firefox plugin"
+ depends=("totem=${pkgver}")
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make -C browser-plugin \
+ plugindir=/usr/lib/mozilla/plugins \
+ xptdir=/usr/lib/mozilla/plugins \
+ DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/share"
+
+ install -Dm644 COPYING "${pkgdir}/usr/share/licenses/totem-plugin/COPYING"
+}
diff --git a/gnome-unstable/totem/totem.install b/gnome-unstable/totem/totem.install
new file mode 100644
index 000000000..07cb42dcb
--- /dev/null
+++ b/gnome-unstable/totem/totem.install
@@ -0,0 +1,19 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.91.91) < 0 )); then
+ usr/sbin/gconfpkg --uninstall totem
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/upower/PKGBUILD b/gnome-unstable/upower/PKGBUILD
new file mode 100644
index 000000000..53e71553a
--- /dev/null
+++ b/gnome-unstable/upower/PKGBUILD
@@ -0,0 +1,24 @@
+# $Id: PKGBUILD 116154 2011-03-22 19:35:44Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=upower
+pkgver=0.9.9
+pkgrel=1
+pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics"
+arch=('i686' 'x86_64')
+url="http://upower.freedesktop.org"
+license=('GPL')
+depends=('udev' 'libusb' 'polkit' 'pm-utils' 'dbus-glib')
+makedepends=('pkg-config' 'intltool' 'docbook-xsl' 'gobject-introspection')
+replaces=('devicekit-power')
+options=('!libtool')
+source=($url/releases/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('39e19bab2c776000477d6d0ddb4bc508808954f63867a2da2be40eaf341214e2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libexecdir=/usr/lib/upower --disable-static
+ make
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/vinagre/PKGBUILD b/gnome-unstable/vinagre/PKGBUILD
new file mode 100644
index 000000000..53f03b189
--- /dev/null
+++ b/gnome-unstable/vinagre/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 117798 2011-04-04 17:59:09Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Allan McRae <mcrae_allan@hotmail.com>
+# Contributor: lp76 <l.peduto@gmail.com>
+
+pkgname=vinagre
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="A VNC Client for the GNOME Desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://www.gnome.org/projects/vinagre/"
+install=vinagre.install
+depends=('libgnome-keyring' 'gtk-vnc' 'avahi' 'desktop-file-utils' 'hicolor-icon-theme' 'telepathy-glib' 'dconf' 'libpeas' 'shared-mime-info')
+optdepends=('rdesktop: RDP plugin')
+makedepends=('gtk-doc' 'intltool' 'rdesktop')
+groups=('gnome-extra')
+options=('!emptydirs' '!libtool')
+source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('c454b47264bbd424f345a79079f2651600ac8335d428c899e2b28d297450c124')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # Disable Spice until someone cares (file a bug!)
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-scrollkeeper \
+ --libexecdir=/usr/lib/vinagre --enable-rdp --disable-spice
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/vinagre/vinagre.install b/gnome-unstable/vinagre/vinagre.install
new file mode 100644
index 000000000..68158ac80
--- /dev/null
+++ b/gnome-unstable/vinagre/vinagre.install
@@ -0,0 +1,20 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-mime-database usr/share/mime > /dev/null
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.91.91-2) < 0 )); then
+ usr/sbin/gconfpkg --uninstall vinagre
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/vino/PKGBUILD b/gnome-unstable/vino/PKGBUILD
new file mode 100644
index 000000000..c797a3457
--- /dev/null
+++ b/gnome-unstable/vino/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 117782 2011-04-04 17:53:52Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=vino
+pkgver=3.0.0
+pkgrel=1
+pkgdesc="a VNC server for the GNOME desktop"
+arch=('i686' 'x86_64')
+license=('GPL')
+depends=('libnotify' 'libxtst' 'libsm' 'libsoup' 'telepathy-glib' 'gtk3' 'libgnome-keyring' 'avahi' 'desktop-file-utils')
+makedepends=('intltool' 'networkmanager')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+options=(!emptydirs)
+install=vino.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('15d511bc63a63f63b3bb182a9c7f48dd2d7c619fdb4305379d1018c5211314aa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vino \
+ --localstatedir=/var \
+ --enable-gnome-keyring \
+ --enable-avahi
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/vino/vino.install b/gnome-unstable/vino/vino.install
new file mode 100644
index 000000000..469266843
--- /dev/null
+++ b/gnome-unstable/vino/vino.install
@@ -0,0 +1,18 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall vino
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/vte/PKGBUILD b/gnome-unstable/vte/PKGBUILD
new file mode 100644
index 000000000..8f1504185
--- /dev/null
+++ b/gnome-unstable/vte/PKGBUILD
@@ -0,0 +1,66 @@
+# $Id: PKGBUILD 117622 2011-04-04 13:08:29Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=vte
+pkgname=(vte vte3 vte-common)
+pkgver=0.28.0
+pkgrel=1
+pkgdesc="Virtual Terminal Emulator widget for use with"
+arch=('i686' 'x86_64')
+license=('LGPL')
+options=('!libtool' '!emptydirs')
+makedepends=('pygtk' 'intltool' 'gobject-introspection' 'gtk2' 'gtk3' 'pygobject-devel' 'gtk-doc')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/GNOME/sources/vte/0.28/vte-${pkgver}.tar.bz2)
+sha256sums=('1467c566aa9e55c1e33aa1dfea3f14dd4c8a4a63ff0005b254bd8c2c375d952e')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ #warning: type-punning to incomplete type might break strict-aliasing rules
+ export CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ mkdir build-gtk2
+ pushd build-gtk2
+ PYTHON=python2 ../configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --localstatedir=/var --disable-static \
+ --enable-introspection --with-gtk=2.0 \
+ --enable-gtk-doc
+ make
+ popd
+
+ mkdir build-gtk3
+ pushd build-gtk3
+ PYTHON=python2 ../configure --prefix=/usr --sysconfdir=/etc \
+ --libexecdir=/usr/lib/vte \
+ --localstatedir=/var --disable-static \
+ --enable-introspection --with-gtk=3.0 \
+ --enable-gtk-doc
+ make
+ popd
+}
+
+package_vte(){
+ pkgdesc+=" GTK2"
+ depends=('gtk2' 'vte-common')
+ cd "${srcdir}/${pkgbase}-${pkgver}"/build-gtk2
+ make DESTDIR="${pkgdir}" install
+
+ rm "${pkgdir}"/usr/lib/vte/gnome-pty-helper
+}
+
+package_vte3(){
+ pkgdesc+=" GTK3"
+ depends=('gtk3' 'vte-common')
+ cd "${srcdir}/${pkgbase}-${pkgver}"/build-gtk3
+ make DESTDIR="${pkgdir}" install
+
+ rm "${pkgdir}"/usr/lib/vte/gnome-pty-helper
+}
+
+package_vte-common() {
+ pkgdesc="Common files used by vte and vte3"
+ cd "${srcdir}/${pkgbase}-${pkgver}"/build-gtk3
+
+ make -C gnome-pty-helper DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/yelp/PKGBUILD b/gnome-unstable/yelp/PKGBUILD
new file mode 100644
index 000000000..4d9cd0b99
--- /dev/null
+++ b/gnome-unstable/yelp/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 116167 2011-03-22 19:52:13Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=yelp
+pkgver=2.91.92
+pkgrel=1
+pkgdesc="A help browser for GNOME"
+arch=('i686' 'x86_64')
+depends=('libwebkit3' 'yelp-xsl' 'libxslt' 'hicolor-icon-theme' 'dbus-glib'
+ 'xz' 'bzip2' 'desktop-file-utils')
+makedepends=('intltool' 'gtk-doc')
+groups=('gnome')
+license=('GPL')
+options=('!emptydirs' '!libtool')
+url="http://www.gnome.org"
+install=yelp.install
+source=(http://ftp.gnome.org/pub/gnome/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2)
+sha256sums=('228b6bba0702d2df831aca9ec90af52df7f15c6c94187fbb77b20a77074c9735')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/gnome-unstable/yelp/yelp.install b/gnome-unstable/yelp/yelp.install
new file mode 100644
index 000000000..f3bf19a93
--- /dev/null
+++ b/gnome-unstable/yelp/yelp.install
@@ -0,0 +1,19 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+ update-desktop-database -q
+}
+
+pre_upgrade() {
+ if (( $(vercmp $2 2.90.0) < 0 )); then
+ usr/sbin/gconfpkg --uninstall yelp
+ fi
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/gnome-unstable/zenity/PKGBUILD b/gnome-unstable/zenity/PKGBUILD
new file mode 100644
index 000000000..9795e3ec0
--- /dev/null
+++ b/gnome-unstable/zenity/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 111583 2011-02-27 19:39:54Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=zenity
+pkgver=2.91.90
+pkgrel=1
+pkgdesc="Display graphical dialog boxes from shell scripts"
+arch=(i686 x86_64)
+license=('LGPL')
+depends=('gtk3' 'libnotify')
+makedepends=('intltool' 'gtk-doc')
+groups=('gnome-extra')
+url="http://www.gnome.org"
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/${pkgver%.*}/${pkgname}-${pkgver}.tar.bz2)
+sha256sums=('fb3b0d29ae7105170224c2400327f638fdf9789189c6167ecddc0c941fc9c996')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --localstatedir=/var --disable-scrollkeeper
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdepim-runtime/PKGBUILD b/kde-unstable/kdepim-runtime/PKGBUILD
new file mode 100644
index 000000000..4aa696cfe
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 99527 2010-11-14 22:37:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+pkgname=kdepim-runtime
+pkgver=4.5.94.1
+pkgrel=2
+pkgdesc='KDE PIM Runtime Environment'
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdepimlibs' 'kdebase-runtime')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost')
+install=${pkgname}.install
+#source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+source=("http://download.kde.org/unstable/kdepim/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+ 'disable-l10n.patch')
+sha1sums=('f226165cd7f92524be354329097e5009b5754046'
+ '991d81435205185dcb2285a6e728f7756ae92b0d')
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ patch -Np0 -i ${srcdir}/disable-l10n.patch
+
+ 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/disable-l10n.patch b/kde-unstable/kdepim-runtime/disable-l10n.patch
new file mode 100644
index 000000000..3ac9bc0e5
--- /dev/null
+++ b/kde-unstable/kdepim-runtime/disable-l10n.patch
@@ -0,0 +1,10 @@
+--- CMakeLists.txt~ 2011-01-30 06:27:14.403350537 -0800
++++ CMakeLists.txt 2011-01-30 06:27:58.130017204 -0800
+@@ -192,7 +192,3 @@
+ update_xdg_mimetypes(${XDG_MIME_INSTALL_DIR})
+
+ macro_display_feature_log()
+-
+-find_package(Msgfmt REQUIRED)
+-find_package(Gettext REQUIRED)
+-add_subdirectory(po)
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..904d4965b
--- /dev/null
+++ b/kde-unstable/kdepim/PKGBUILD
@@ -0,0 +1,257 @@
+# $Id: PKGBUILD 108250 2011-01-30 15:05:18Z 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.5.94.1
+pkgrel=2
+arch=('i686' 'x86_64')
+url='http://pim.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdepim')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss'
+ 'pilot-link' 'kde-agent' 'docbook-xsl')
+#source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+source=("http://download.kde.org/unstable/${pkgbase}/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+ 'disable-l10n.patch')
+sha1sums=('0243aa59c3acd9c38403b3acddb33c22c9c39c65'
+ '25e36f160ced051268e59fad6ed2de33a9c7657a')
+
+build() {
+ cd "${srcdir}"/${pkgbase}-${pkgver}
+ patch -Np0 -i "${srcdir}"/disable-l10n.patch
+
+ 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')
+ 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.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 \
+ nepomuk_email_feeder ontologies templateparser 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 kontact/pics 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.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 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/disable-l10n.patch b/kde-unstable/kdepim/disable-l10n.patch
new file mode 100644
index 000000000..3f218d532
--- /dev/null
+++ b/kde-unstable/kdepim/disable-l10n.patch
@@ -0,0 +1,10 @@
+--- CMakeLists.txt~ 2011-01-30 06:31:02.180017202 -0800
++++ CMakeLists.txt 2011-01-30 06:31:26.093350537 -0800
+@@ -423,7 +423,3 @@
+ endif(NOT QGPGME_FOUND)
+ # All done, let's display what we found...
+ macro_display_feature_log()
+-find_package(Msgfmt REQUIRED)
+-find_package(Gettext REQUIRED)
+-add_subdirectory(po)
+-add_subdirectory(doc-translations)
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/libre-testing/b43-tools-git/PKGBUILD b/libre-testing/b43-tools-git/PKGBUILD
new file mode 100644
index 000000000..42e331f7b
--- /dev/null
+++ b/libre-testing/b43-tools-git/PKGBUILD
@@ -0,0 +1,53 @@
+#Contributor: Konstantinos Karantias <kostis[at]gtklocker[dot]com>
+#Contributor: Jussi Timperi <jussi.timperi[at]gmail[dot]com>
+
+pkgname=b43-tools-git
+pkgver=20110214
+pkgrel=1
+pkgdesc="Tools for the Broadcom 43xx series WLAN chip."
+arch=('i686' 'x86_64' 'ppc')
+url="http://bu3sch.de/gitweb?p=b43-tools.git;a=summary"
+license=('GPL2' 'GPL3')
+depends=('python2')
+makedepends=('git' 'bison' 'flex' 'python2')
+provides=('b43-tools')
+source=()
+md5sums=()
+
+_gitroot="git://git.bu3sch.de/b43-tools.git"
+_gitname="b43-tools"
+
+build() {
+ cd "$srcdir"
+ msg "Connecting to GIT server...."
+
+ if [ -d $_gitname ] ; then
+ cd $_gitname && git pull origin
+ msg "The local files are updated."
+ else
+ git clone $_gitroot
+ fi
+
+ msg "GIT checkout done or server timeout"
+ msg "Starting make..."
+
+ rm -rf "$srcdir/$_gitname-build"
+ git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build"
+ cd "$srcdir/$_gitname-build"
+
+ sed -i -e 's/\/man\//\/share\/man\//g' fwcutter/Makefile
+
+ make -C assembler
+ make -C disassembler
+ make -C fwcutter
+ make -C ssb_sprom
+}
+
+package() {
+ cd $srcdir/b43-tools-build/debug/; python2 install.py install --root "$pkgdir/"; cd ..
+
+ make -C assembler PREFIX="$pkgdir/usr/" install
+ make -C disassembler PREFIX="$pkgdir/usr/" install
+ make -C fwcutter PREFIX="$pkgdir/usr/" install
+ make -C ssb_sprom PREFIX="$pkgdir/usr/" install
+}
diff --git a/libre-testing/kernel26-libre/PKGBUILD b/libre-testing/kernel26-libre/PKGBUILD
new file mode 100644
index 000000000..47f7aa9bb
--- /dev/null
+++ b/libre-testing/kernel26-libre/PKGBUILD
@@ -0,0 +1,260 @@
+# $Id$
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+pkgbase="kernel26-libre"
+pkgname=('kernel26-libre' 'kernel26-libre-headers' 'kernel26-libre-docs') # Build stock -LIBRE kernel
+
+_kernelname=${pkgname#kernel26-libre}
+_basekernel=2.6.38
+pkgver=${_basekernel}.2
+pkgrel=1
+makedepends=('xmlto' 'docbook-xsl')
+_patchname="patch-${pkgver}-${pkgrel}-LIBRE"
+arch=(i686 x86_64)
+license=('GPL2')
+url="http://linux-libre.fsfla.org/"
+options=(!strip)
+source=(http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/linux-${pkgver}-libre.tar.bz2
+ http://repo.parabolagnulinux.org/other/kernel26/${_patchname}.bz2
+ # the main kernel config files
+ config.i686 config.x86_64
+ # standard config files for mkinitcpio ramdisk
+ kernel26.preset
+ kernel26.install)
+
+build() {
+ cd ${srcdir}/linux-$pkgver
+ # Add -LIBRE patches
+ # See http://projects.parabolagnulinux.org/linux-libre-2.6-LIBRE.git/
+ patch -Np1 -i ${srcdir}/${_patchname} || return 1
+
+ cat $srcdir/config.$CARCH > ./.config # simpler
+
+ for this_doesnt_build in CONFIG_WLAGS49_H2 CONFIG_WLAGS49_H25; do
+ sed -i "s|^${this_doesnt_build}=.*|# ${this_doesnt_build} is not set|g" ./.config
+ done
+
+ # Disable obnoxious kernel release names
+ sed -i "s|EXTRAVERSION =.*|EXTRAVERSION =|g" ./Makefile
+ sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|# CONFIG_LOCALVERSION_AUTO is not set|g" ./.config
+
+ if [ "${_kernelname}" != "" ]; then
+ sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
+ fi
+ # get kernel version
+ make prepare
+ # load configuration
+ # Configure the kernel. Replace the line below with one of your choice.
+ #make menuconfig # CLI menu for configuration
+ #make nconfig # new CLI menu for configuration
+ #make xconfig # X-based configuration
+ #make oldconfig # using old config from previous kernel version
+ # ... or manually edit .config
+ ####################
+ # stop here
+ # this is useful to configure the kernel
+ #msg "Stopping build"
+ #return 1
+ ####################
+ yes "" | make config
+ # build!
+ make ${MAKEFLAGS} bzImage modules
+}
+
+package_kernel26-libre() {
+ pkgdesc="The Linux-libre Kernel and modules"
+ groups=('base')
+ backup=(etc/mkinitcpio.d/kernel26${_kernelname}.preset)
+ depends=('coreutils' 'module-init-tools' 'mkinitcpio>=0.5.20')
+ # pwc, ieee80211 and hostap-driver26 modules are included in kernel26 now
+ # nforce package support was abandoned by nvidia, kernel modules should cover everything now.
+ # kernel24 support is dropped since glibc24
+ replaces=('kernel24' 'kernel24-scsi' 'kernel26-scsi'
+ 'alsa-driver' 'ieee80211' 'hostap-driver26'
+ 'pwc' 'nforce' 'squashfs' 'unionfs' 'ivtv'
+ 'zd1211' 'kvm-modules' 'iwlwifi' 'rt2x00-cvs'
+ 'gspcav1' 'atl2' 'wlan-ng26' 'rt2500' 'nouveau-drm' 'kernel26')
+ provides=("kernel26=$pkgver")
+ conflicts=('kernel26')
+ install=kernel26.install
+ optdepends=('crda: to set the correct wireless channels of your country')
+
+ KARCH=x86
+ cd ${srcdir}/linux-$pkgver
+ # get kernel version
+ _kernver="$(make kernelrelease)"
+ mkdir -p ${pkgdir}/{lib/modules,lib/firmware,boot}
+ make INSTALL_MOD_PATH=${pkgdir} modules_install
+ cp System.map ${pkgdir}/boot/System.map26${_kernelname}
+ cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname}
+ # # add vmlinux
+ install -m644 -D vmlinux ${pkgdir}/usr/src/linux-${_kernver}/vmlinux
+
+ # install fallback mkinitcpio.conf file and preset file for kernel
+ install -m644 -D ${srcdir}/kernel26.preset ${pkgdir}/etc/mkinitcpio.d/kernel26${_kernelname}.preset
+ # set correct depmod command for install
+ sed \
+ -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
+ -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+ -i $startdir/kernel26.install
+ sed \
+ -e "s|source .*|source /etc/mkinitcpio.d/kernel26${_kernelname}.kver|g" \
+ -e "s|default_image=.*|default_image=\"/boot/kernel26${_kernelname}.img\"|g" \
+ -e "s|fallback_image=.*|fallback_image=\"/boot/kernel26${_kernelname}-fallback.img\"|g" \
+ -i ${pkgdir}/etc/mkinitcpio.d/kernel26${_kernelname}.preset
+
+ echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${pkgdir}/etc/mkinitcpio.d/kernel26${_kernelname}.kver
+ # remove build and source links
+ rm -f ${pkgdir}/lib/modules/${_kernver}/{source,build}
+ # remove the firmware
+ rm -rf ${pkgdir}/lib/firmware
+ # gzip -9 all modules to safe 100MB of space
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
+
+package_kernel26-libre-headers() {
+ pkgdesc="Header files and scripts for building modules for kernel26-libre"
+ provides=("kernel26-headers=$pkgver")
+ replaces=('kernel26-headers')
+ conflicts=('kernel26-headers')
+ KARCH=x86
+ mkdir -p ${pkgdir}/lib/modules/${_kernver}
+ cd ${pkgdir}/lib/modules/${_kernver}
+ ln -sf ../../../usr/src/linux-${_kernver} build
+ cd ${srcdir}/linux-$pkgver
+ install -D -m644 Makefile \
+ ${pkgdir}/usr/src/linux-${_kernver}/Makefile
+ install -D -m644 kernel/Makefile \
+ ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile
+ install -D -m644 .config \
+ ${pkgdir}/usr/src/linux-${_kernver}/.config
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
+
+ for i in acpi asm-generic config generated linux math-emu media net pcmcia scsi sound trace video xen; do
+ cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
+ done
+
+ # copy arch includes for external modules
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
+ cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/
+
+ # copy files necessary for later builds, like nvidia and vmware
+ cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver}
+ cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
+ # fix permissions on scripts dir
+ chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
+
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
+
+ cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
+ if [ "$CARCH" = "i686" ]; then
+ cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
+ fi
+ cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
+
+ # add headers for lirc package
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video
+ cp drivers/media/video/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/
+ for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
+ cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
+ done
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/staging/usbvideo/
+ cp -a drivers/staging/usbvideo/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/staging/usbvideo/
+ # add docbook makefile
+ install -D -m644 Documentation/DocBook/Makefile \
+ ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
+ # add dm headers
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
+ cp drivers/md/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
+ # add inotify.h
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
+ cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
+ # add wireless headers
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
+ cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
+ # add dvb headers for external modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/9912
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
+ cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
+ # add dvb headers for external modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/11194
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+ cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+ # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
+ # in reference to:
+ # http://bugs.archlinux.org/task/13146
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ # add dvb headers
+ # in reference to:
+ # http://bugs.archlinux.org/task/20402
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb
+ cp drivers/media/dvb/dvb-usb/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends
+ cp drivers/media/dvb/frontends/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners
+ cp drivers/media/common/tuners/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/
+ # add xfs and shmem for aufs building
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
+ cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
+ # add headers vor virtualbox
+ # in reference to:
+ # http://bugs.archlinux.org/task/14568
+ cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/
+ # add headers for broadcom wl
+ # in reference to:
+ # http://bugs.archlinux.org/task/14568
+ cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/
+ # add headers for crypto modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/22081
+ cp -a include/crypto $pkgdir/usr/src/linux-${_kernver}/include/
+ # copy in Kconfig files
+ for i in `find . -name "Kconfig*"`; do
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
+ cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
+ done
+
+ chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
+ find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
+ # strip scripts directory
+ find ${pkgdir}/usr/src/linux-${_kernver}/scripts -type f -perm -u+w 2>/dev/null | while read binary ; do
+ case "$(file -bi "$binary")" in
+ *application/x-sharedlib*) # Libraries (.so)
+ /usr/bin/strip $STRIP_SHARED "$binary";;
+ *application/x-archive*) # Libraries (.a)
+ /usr/bin/strip $STRIP_STATIC "$binary";;
+ *application/x-executable*) # Binaries
+ /usr/bin/strip $STRIP_BINARIES "$binary";;
+ esac
+ done
+ # remove unneeded architectures
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+}
+
+package_kernel26-libre-docs() {
+pkgdesc="Kernel hackers manual - HTML documentation that comes with the Linux kernel."
+provides=("kernel26-docs=$pkgver")
+replaces=('kernel26-docs')
+conflicts=('kernel26-docs')
+
+cd ${srcdir}/linux-$pkgver
+mkdir -p $pkgdir/usr/src/linux-$_kernver
+mv Documentation $pkgdir/usr/src/linux-$_kernver
+find $pkgdir -type f -exec chmod 444 {} \;
+find $pkgdir -type d -exec chmod 755 {} \;
+# remove a file already in kernel26 package
+rm -f $pkgdir/usr/src/linux-$_kernver/Documentation/DocBook/Makefile
+}
+md5sums=('be3d43e110130d1081d444ce1cc02a72'
+ '73d295e41ce6969e49b226058f24ab07'
+ '894b125c751fdab56d6b021a598a3362'
+ '3a17465b512ed9148040cef7b8a7f2c7'
+ '25584700a0a679542929c4bed31433b6'
+ '1bff12f1ba69206b1abee2bba4b7619c')
diff --git a/libre-testing/kernel26-libre/config.i686 b/libre-testing/kernel26-libre/config.i686
new file mode 100644
index 000000000..0c1b80cb8
--- /dev/null
+++ b/libre-testing/kernel26-libre/config.i686
@@ -0,0 +1,5565 @@
+#
+# Automatically generated make config: don't edit
+# Linux/i386 2.6.38 Kernel Configuration
+# Wed Mar 30 07:00:21 2011
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_KTIME_SCALAR=y
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="-LIBRE"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+# CONFIG_AUTO_IRQ_AFFINITY is not set
+# CONFIG_IRQ_PER_CPU is not set
+# CONFIG_HARDIRQS_SW_RESEND is not set
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_X86_32_IRIS=m
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_LGUEST_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_CMPXCHG=y
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_IOMMU_API=y
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+# CONFIG_HIGHPTE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
+CONFIG_SUSPEND=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_OPS=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_GX_SUSPMOD=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+CONFIG_OLPC=y
+CONFIG_OLPC_XO1=m
+CONFIG_OLPC_OPENFIRMWARE=y
+CONFIG_OLPC_OPENFIRMWARE_DT=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+# CONFIG_PHONET_PIPECTRLR is not set
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_RPS=y
+CONFIG_XPS=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# CONFIG_MTD_UBI is not set
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_PROMTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=m
+CONFIG_OF_NET=y
+CONFIG_OF_SPI=y
+CONFIG_OF_MDIO=m
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+# CONFIG_PCH_PHUB is not set
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+CONFIG_IDE_LEGACY=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_CS5535=m
+CONFIG_BLK_DEV_CS5536=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+
+#
+# Other IDE chipsets support
+#
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=m
+CONFIG_BLK_DEV_ALI14XX=m
+CONFIG_BLK_DEV_DTC2278=m
+CONFIG_BLK_DEV_HT6560B=m
+CONFIG_BLK_DEV_QD65XX=m
+CONFIG_BLK_DEV_UMC8672=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_WINBOND_VLB=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_MII=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BCM63XX_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_SMC9194=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+CONFIG_CS89x0=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_DUAL_MAC=y
+CONFIG_PCH_GBE=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF_DEPENDS=y
+CONFIG_CHELSIO_T4VF=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_BNA=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTLWIFI=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_HT=y
+CONFIG_WL12XX_SPI=m
+CONFIG_WL12XX_SDIO=m
+CONFIG_WL12XX_SDIO_TEST=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_QT602240=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+# CONFIG_TOUCHSCREEN_MC13783 is not set
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AB8500_PONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_STALDRV is not set
+CONFIG_NOZOMI=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX3107=m
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_OF_PLATFORM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_IFX6X60=m
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_RAMOOPS=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_PXA2XX=m
+CONFIG_SPI_PXA2XX_PCI=y
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XILINX=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+
+#
+# PPS generators support
+#
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO expanders:
+#
+CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_74X164=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_TEST_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_OLPC=m
+CONFIG_BATTERY_BQ20Z75=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_PKGTEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_ABX500_CORE=y
+CONFIG_EZX_PCAP=y
+CONFIG_AB8500_CORE=y
+# CONFIG_AB8500_DEBUG is not set
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_VIA_CAMERA=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_WL1273=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+# CONFIG_DVB_FIREDTV_IEEE1394 is not set
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+CONFIG_FB_UDL=m
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_PCF50633=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT1605=m
+CONFIG_SND_AZT2316=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_3M_PCT=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CANDO=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_EGALAX=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWII_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MOSART=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SAMBA=m
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_EG20T is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_AB8500_USB=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_OF=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_NET5501=m
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_GPIO_OF=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_NFC_DEVICES=y
+CONFIG_PN544_NFC=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_MCE=y
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB8500=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_USB_DABUSB=m
+CONFIG_USB_SE401=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IP_COMMON=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IP_HOST=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_BRCM80211=m
+CONFIG_BRCM80211_PCI=y
+# CONFIG_BRCMFMAC is not set
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_ISA_DRIVERS=m
+CONFIG_COMEDI_ACL7225B=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL725=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCM3730=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS800=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_POC=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+# CONFIG_COMEDI_CB_PCIMDAS is not set
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8712_AP=y
+# CONFIG_TRANZPORT is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_UTILS=m
+# CONFIG_VME_BUS is not set
+CONFIG_DX_SEP=m
+# CONFIG_IIO is not set
+CONFIG_CS5535_GPIO=m
+CONFIG_ZRAM=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_FB_SM7XX=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_CRYSTALHD=m
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_ST_BT=m
+CONFIG_FB_XGI=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_IT87=m
+CONFIG_LIRC_ITE8709=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_EASYCAP=m
+CONFIG_SOLO6X10=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_MACH_NO_WESTBRIDGE=y
+CONFIG_ATH6K_LEGACY=m
+CONFIG_AR600x_SD31_XXX=y
+# CONFIG_AR600x_WB31_XXX is not set
+# CONFIG_AR600x_SD32_XXX is not set
+# CONFIG_AR600x_CUSTOM_XXX is not set
+CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
+CONFIG_AR600x_DUAL_ANTENNA=y
+# CONFIG_AR600x_SINGLE_ANTENNA is not set
+# CONFIG_AR600x_BT_QCOM is not set
+# CONFIG_AR600x_BT_CSR is not set
+CONFIG_AR600x_BT_AR3001=y
+CONFIG_ATH6KL_HCI_BRIDGE=y
+CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
+CONFIG_AR600x_BT_RESET_PIN=22
+CONFIG_ATH6KL_CFG80211=y
+CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
+CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
+CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO1_RFKILL=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_DEPRECATED is not set
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_BKL=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_LKDTM=m
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_STACK_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_RODATA is not set
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
+# CONFIG_DEBUG_NX_TEST is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_FPU=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_LGUEST=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
diff --git a/libre-testing/kernel26-libre/config.x86_64 b/libre-testing/kernel26-libre/config.x86_64
new file mode 100644
index 000000000..62dea6af1
--- /dev/null
+++ b/libre-testing/kernel26-libre/config.x86_64
@@ -0,0 +1,5304 @@
+#
+# Automatically generated make config: don't edit
+# Linux/x86_64 2.6.38 Kernel Configuration
+# Wed Mar 30 08:32:36 2011
+#
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+# CONFIG_KTIME_SCALAR is not set
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION="-LIBRE"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+# CONFIG_KERNEL_LZMA is not set
+CONFIG_KERNEL_XZ=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
+CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+# CONFIG_GENERIC_HARDIRQS_NO_DEPRECATED is not set
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+# CONFIG_AUTO_IRQ_AFFINITY is not set
+# CONFIG_IRQ_PER_CPU is not set
+# CONFIG_HARDIRQS_SW_RESEND is not set
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_PREEMPT_RCU=y
+CONFIG_PREEMPT_RCU=y
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=64
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EXPERT is not set
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_THROTTLING is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_CFQ_GROUP_IOSCHED=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_UNLOCK is not set
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_UNLOCK is not set
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_UNLOCK is not set
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_XEN=y
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=128
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
+# CONFIG_MEMTEST is not set
+# CONFIG_MK8 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_CPU=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=7
+CONFIG_X86_CMPXCHG=y
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_AMD_IOMMU=y
+# CONFIG_AMD_IOMMU_STATS is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_API=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_PREEMPT_NONE is not set
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_PREEMPT=y
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_AMD_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW=64
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+CONFIG_PM_ADVANCED_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
+CONFIG_SUSPEND=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_OPS=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_EC_DEBUGFS=m
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_SBS=m
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_GHES=m
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_XEN=y
+CONFIG_PCI_DOMAINS=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_INTR_REMAP is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_IOAPIC=y
+CONFIG_ISA_DMA_API=y
+CONFIG_AMD_NB=y
+CONFIG_PCCARD=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_IA32_EMULATION=y
+CONFIG_IA32_AOUT=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_IP_VS_PE_SIP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_DEBUGFS is not set
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+# CONFIG_PHONET_PIPECTRLR is not set
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_RPS=y
+CONFIG_XPS=y
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_ECC_SMC=y
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# CONFIG_MTD_UBI is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DRBD=m
+# CONFIG_DRBD_FAULT_INJECTION is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_MISC_DEVICES=y
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
+CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
+CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_TI_DAC7512=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_NOSY=m
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_MII=m
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BCM63XX_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_HP100=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_DUAL_MAC=y
+CONFIG_PCH_GBE=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF_DEPENDS=y
+CONFIG_CHELSIO_T4VF=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_BNA=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH5K_PCI=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_DEBUGFS is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+# CONFIG_ATH9K_HTC_DEBUGFS is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+
+#
+# Debugging Options
+#
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_HERMES=m
+CONFIG_HERMES_PRISM=y
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_ORINOCO_USB=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_SPI_DEFAULT_EEPROM=y
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_RT33XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CE=m
+CONFIG_RTLWIFI=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_HT=y
+CONFIG_WL12XX_SPI=m
+CONFIG_WL12XX_SDIO=m
+CONFIG_WL12XX_SDIO_TEST=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+# CONFIG_WIMAX_IWMC3200_SDIO is not set
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+CONFIG_CAIF_SPI_SYNC=y
+CONFIG_XEN_NETDEV_FRONTEND=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+CONFIG_XEN_KBDDEV_FRONTEND=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+CONFIG_KEYBOARD_MCS=m
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_AS5011=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_HANWANG=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879_SPI=m
+CONFIG_TOUCHSCREEN_BU21013=m
+CONFIG_TOUCHSCREEN_CY8CTMG110=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_QT602240=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+# CONFIG_TOUCHSCREEN_MC13783 is not set
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_TOUCHSCREEN_ST1232=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AB8500_PONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_ADXL34X_SPI=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_DEVKMEM is not set
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_N_HDLC=m
+CONFIG_N_GSM=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_STALDRV is not set
+CONFIG_NOZOMI=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_MAX3107=m
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_IFX6X60=m
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_RAMOOPS=m
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+# CONFIG_SPI_PXA2XX_PCI is not set
+CONFIG_SPI_TOPCLIFF_PCH=m
+CONFIG_SPI_XILINX=m
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+
+#
+# PPS generators support
+#
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO expanders:
+#
+CONFIG_GPIO_BASIC_MMIO=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_74X164=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_TEST_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_BQ20Z75=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_MAX17042=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHARGER_ISP1704=m
+CONFIG_CHARGER_GPIO=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_PKGTEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_MC13783_ADC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM831X_SPI=y
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_MC13XXX=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_ABX500_CORE=y
+CONFIG_EZX_PCAP=y
+CONFIG_AB8500_CORE=y
+# CONFIG_AB8500_DEBUG is not set
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+CONFIG_MFD_WL1273_CORE=m
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
+CONFIG_VIDEO_AK881X=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_RC=y
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_SR030PC30=m
+CONFIG_VIDEO_VIA_CAMERA=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_WL1273=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+# CONFIG_DVB_FIREDTV_IEEE1394 is not set
+CONFIG_DVB_FIREDTV_INPUT=y
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported Mantis Adapters
+#
+CONFIG_MANTIS_CORE=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_HOPPER=m
+
+#
+# Supported nGene Adapters
+#
+CONFIG_DVB_NGENE=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_MB86A16=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_IX2505V=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_STUB_POULSBO=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+CONFIG_FB_UDL=m
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_XEN_FBDEV_FRONTEND=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_PCF50633=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=1
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_3M_PCT=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+CONFIG_HID_ACRUX_FF=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CANDO=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_EGALAX=m
+CONFIG_HID_ELECOM=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWII_FF=y
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MOSART=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_UAS=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SAMBA=m
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA_U2O is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_CI13XXX_PCI is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_EG20T is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+# CONFIG_USB_MASS_STORAGE is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_NOKIA is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_DBGP=m
+# CONFIG_USB_G_DBGP_PRINTK is not set
+CONFIG_USB_G_DBGP_SERIAL=y
+CONFIG_USB_G_WEBCAM=m
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_AB8500_USB=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_I1480U=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_CLKGATE=y
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_USHC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+CONFIG_LEDS_NET5501=m
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_NFC_DEVICES=y
+CONFIG_PN544_NFC=m
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MCE_INJ=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_MCE=y
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I7300=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB8500=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_RTC_DRV_MC13XXX=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_INTEL_MID_DMAC=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+
+#
+# Xen driver support
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=m
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_PLATFORM_PCI=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_USB_DABUSB=m
+CONFIG_USB_SE401=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IP_COMMON=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IP_HOST=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_BRCM80211=m
+CONFIG_BRCM80211_PCI=y
+# CONFIG_BRCMFMAC is not set
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_FC=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
+CONFIG_RTL8192E=m
+CONFIG_R8712U=m
+CONFIG_R8712_AP=y
+# CONFIG_TRANZPORT is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_IDE_PHISON=m
+CONFIG_LINE6_USB=m
+# CONFIG_LINE6_USB_DEBUG is not set
+# CONFIG_LINE6_USB_DUMP_CTRL is not set
+# CONFIG_LINE6_USB_DUMP_MIDI is not set
+# CONFIG_LINE6_USB_DUMP_PCM is not set
+# CONFIG_LINE6_USB_RAW is not set
+# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set
+CONFIG_DRM_VMWGFX=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_UTILS=m
+# CONFIG_VME_BUS is not set
+CONFIG_DX_SEP=m
+# CONFIG_IIO is not set
+CONFIG_ZRAM=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_FB_SM7XX=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_DT3155_CCIR=y
+CONFIG_CRYSTALHD=m
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_ST_BT=m
+CONFIG_FB_XGI=m
+CONFIG_LIRC_STAGING=y
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_IT87=m
+CONFIG_LIRC_ITE8709=m
+CONFIG_LIRC_PARALLEL=m
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SERIAL_TRANSMITTER=y
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIRC_ZILOG=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_EASYCAP=m
+CONFIG_SOLO6X10=m
+CONFIG_ACPI_QUICKSTART=m
+CONFIG_MACH_NO_WESTBRIDGE=y
+CONFIG_ATH6K_LEGACY=m
+CONFIG_AR600x_SD31_XXX=y
+# CONFIG_AR600x_WB31_XXX is not set
+# CONFIG_AR600x_SD32_XXX is not set
+# CONFIG_AR600x_CUSTOM_XXX is not set
+CONFIG_ATH6KL_ENABLE_COEXISTENCE=y
+CONFIG_AR600x_DUAL_ANTENNA=y
+# CONFIG_AR600x_SINGLE_ANTENNA is not set
+# CONFIG_AR600x_BT_QCOM is not set
+# CONFIG_AR600x_BT_CSR is not set
+CONFIG_AR600x_BT_AR3001=y
+CONFIG_ATH6KL_HCI_BRIDGE=y
+CONFIG_ATH6KL_CONFIG_GPIO_BT_RESET=y
+CONFIG_AR600x_BT_RESET_PIN=22
+CONFIG_ATH6KL_CFG80211=y
+CONFIG_ATH6KL_HTC_RAW_INTERFACE=y
+CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
+CONFIG_ATH6KL_SKIP_ABI_VERSION_CHECK=y
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_USB_ENESTORAGE=m
+CONFIG_BCM_WIMAX=m
+CONFIG_FT1000=m
+CONFIG_FT1000_USB=m
+
+#
+# Speakup console speech
+#
+CONFIG_SPEAKUP=m
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_ACNTPC=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+CONFIG_SPEAKUP_SYNTH_DECEXT=m
+CONFIG_SPEAKUP_SYNTH_DECPC=m
+CONFIG_SPEAKUP_SYNTH_DTLK=m
+CONFIG_SPEAKUP_SYNTH_KEYPC=m
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
+CONFIG_SPEAKUP_SYNTH_DUMMY=m
+CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
+CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_LOGFS=m
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_DEPRECATED is not set
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_CEPH_FS=m
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+CONFIG_9P_FS_POSIX_ACL=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_LOCKUP_DETECTOR=y
+CONFIG_HARDLOCKUP_DETECTOR=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_PREEMPT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+CONFIG_BKL=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_LKDTM=m
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_PREEMPT_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_STACK_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_RODATA is not set
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+CONFIG_TRUSTED_KEYS=m
+CONFIG_ENCRYPTED_KEYS=m
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=0
+# CONFIG_IMA is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+# CONFIG_DEFAULT_SECURITY_APPARMOR is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_FPU=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_MMU_AUDIT=y
+CONFIG_VHOST_NET=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_BTREE=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
+CONFIG_LRU_CACHE=m
+CONFIG_AVERAGE=y
diff --git a/libre-testing/kernel26-libre/get_configs b/libre-testing/kernel26-libre/get_configs
new file mode 100755
index 000000000..624ea1048
--- /dev/null
+++ b/libre-testing/kernel26-libre/get_configs
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+source PKGBUILD
+
+pkgname=${pkgname/-libre/}
+KERNEL_VERSION=${2:-${_basekernel}-ARCH}
+from=${1:-core}
+
+for pkgarch in ${arch[@]}; do
+ wget -nc "http://mirrors.kernel.org/archlinux/$from/os/${pkgarch}/${pkgname}-headers-${pkgver}-${pkgrel}-${pkgarch}.pkg.tar.xz"
+ tar -xOf "${pkgname}-headers-${pkgver}-${pkgrel}-${pkgarch}.pkg.tar.xz" usr/src/linux-${KERNEL_VERSION}/.config > config.${pkgarch}
+done
+
+sed -i "s/-ARCH/-LIBRE/" config.*
+
+exit 0
+
diff --git a/libre-testing/kernel26-libre/kernel26.install b/libre-testing/kernel26-libre/kernel26.install
new file mode 100644
index 000000000..1292f1f3b
--- /dev/null
+++ b/libre-testing/kernel26-libre/kernel26.install
@@ -0,0 +1,147 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+KERNEL_NAME=
+KERNEL_VERSION=2.6.37-LIBRE
+
+post_install () {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $KERNEL_VERSION
+ # generate init ramdisks
+ echo ">>> MKINITCPIO SETUP"
+ echo ">>> ----------------"
+ echo ">>> If you use LVM2, Encrypted root or software RAID,"
+ echo ">>> Ensure you enable support in /etc/mkinitcpio.conf ."
+ echo ">>> More information about mkinitcpio setup can be found here:"
+ echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio"
+ echo ""
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
+}
+
+post_upgrade() {
+ pacman -Q grub &>/dev/null
+ hasgrub=$?
+ pacman -Q grub2 &>/dev/null
+ hasgrub2=$?
+ pacman -Q lilo &>/dev/null
+ haslilo=$?
+ # reminder notices
+ if [ $haslilo -eq 0 ]; then
+ echo ">>>"
+ if [ $hasgrub -eq 0 -o $hasgrub2 -eq 0 ]; then
+ echo ">>> If you use the LILO bootloader, you should run 'lilo' before rebooting."
+ else
+ echo ">>> You appear to be using the LILO bootloader. You should run"
+ echo ">>> 'lilo' before rebooting."
+ fi
+ echo ">>>"
+ fi
+
+ if grep "^[^#]*[[:space:]]/boot" /etc/fstab 2>&1 >/dev/null; then
+ if ! grep "[[:space:]]/boot" /etc/mtab 2>&1 >/dev/null; then
+ echo "WARNING: /boot appears to be a seperate partition but is not mounted"
+ echo " This is most likely not what you want. Please mount your /boot"
+ echo " partition and reinstall the kernel unless you are sure this is OK"
+ fi
+ fi
+
+ if [ "`vercmp $2 2.6.13`" -lt 0 ]; then
+ # important upgrade notice
+ echo ">>>"
+ echo ">>> IMPORTANT KERNEL UPGRADE NOTICE"
+ echo ">>> -------------------------------"
+ echo ">>> As of kernel 2.6.13, DevFS is NO LONGER AVAILABLE!"
+ echo ">>> If you still use DevFS, please make the transition to uDev before"
+ echo ">>> rebooting. If you really need to stay with DevFS for some reason,"
+ echo ">>> then you can manually downgrade to an older version:"
+ echo ">>>"
+ echo ">>> # pacman -U http://archlinux.org/~judd/kernel/kernel26-scsi-2.6.12.2-1.pkg.tar.gz"
+ echo ">>>"
+ echo ">>> If you choose to downgrade, don't forget to add kernel26-scsi to your"
+ echo ">>> IgnorePkg list in /etc/pacman.conf"
+ echo ">>>"
+ echo ">>> (NOTE: The following portion applies to uDev users as well!)"
+ echo ">>>"
+ echo ">>> If you use any DevFS paths in your GRUB menu.lst, then you will not"
+ echo ">>> be able to boot! Change your root= parameter to use the classic"
+ echo ">>> naming scheme."
+ echo ">>>"
+ echo ">>> EXAMPLES:"
+ echo ">>> - change root=/dev/discs/disc0/part3 to root=/dev/sda3"
+ echo ">>> - change root=/dev/md/0 to root=/dev/md0"
+ echo ">>>"
+ fi
+ # generate new init ramdisk
+ if [ "`vercmp $2 2.6.18`" -lt 0 ]; then
+ echo ">>> --------------------------------------------------------------"
+ echo ">>> | WARNING: |"
+ echo ">>> |mkinitrd is not supported anymore in kernel >=2.6.18 series!|"
+ echo ">>> | Please change to Mkinitcpio setup. |"
+ echo ">>> --------------------------------------------------------------"
+ echo ">>>"
+ fi
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $KERNEL_VERSION
+ echo ">>> MKINITCPIO SETUP"
+ echo ">>> ----------------"
+ if [ "`vercmp $2 2.6.18`" -lt 0 ]; then
+ echo ">>> Please change your bootloader config files:"
+ echo ">>> Grub: /boot/grub/menu.lst | Lilo: /etc/lilo.conf"
+ echo "------------------------------------------------"
+ echo "| - initrd26.img to kernel26${KERNEL_NAME}.img |"
+ echo "| - initrd26-full.img to kernel26${KERNEL_NAME}-fallback.img |"
+ echo "------------------------------------------------"
+ fi
+ if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
+ echo ""
+ echo ">>> New PATA/IDE subsystem - EXPERIMENTAL"
+ echo ">>> ----------"
+ echo ">>> To use the new pata drivers, change the 'ide' hook "
+ echo ">>> to 'pata' in /etc/mkinicpio.conf HOOKS="
+ echo ">>> The new system changes: /dev/hd? to /dev/sd?"
+ echo ">>> Don't forget to modify GRUB, LILO and fstab to the"
+ echo ">>> new naming system. "
+ echo ">>> eg: hda3 --> sda3, hdc8 --> sdc8"
+ echo ""
+ echo ">>> piix/ata_piix (Intel chipsets) - IMPORTANT"
+ echo "----------"
+ echo ">>> If you have enabled ide/pata/sata HOOKs in /etc/mkinitcpio.conf"
+ echo ">>> the 'ata_piix' module will be used."
+ echo ">>> This may cause your devices to shift names, eg:"
+ echo ">>> - IDE: devices from hd? to sd?"
+ echo ">>> - SATA: sda might shift to sdc if you have 2 other disks on a PIIX IDE port."
+ echo ">>> To check if this will affect you, check 'mkinitcpio -M' for piix/ata_piix"
+ echo ""
+ fi
+
+ echo ">>> If you use LVM2, Encrypted root or software RAID,"
+ echo ">>> Ensure you enable support in /etc/mkinitcpio.conf ."
+ echo ">>> More information about mkinitcpio setup can be found here:"
+ echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio"
+ echo ""
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
+ /sbin/mkinitcpio -p kernel26${KERNEL_NAME} -m "ATTENTION:\nIf you get a kernel panic below
+and are using an Intel chipset, append 'earlymodules=piix' to the
+kernel commandline"
+else
+ /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
+fi
+if [ "`vercmp $2 2.6.21`" -lt 0 ]; then
+ echo ""
+ echo "Important ACPI Information:"
+ echo ">>> Since 2.6.20.7 all possible ACPI parts are modularized."
+ echo ">>> The modules are located at:"
+ echo ">>> /lib/modules/$(uname -r)/kernel/drivers/acpi"
+ echo ">>> For more information about ACPI modules check this wiki page:"
+ echo ">>> 'http://wiki.archlinux.org/index.php/ACPI_modules'"
+fi
+}
+
+post_remove() {
+ rm -f /boot/kernel26${KERNEL_NAME}.img
+ rm -f /boot/kernel26${KERNEL_NAME}-fallback.img
+}
diff --git a/libre-testing/kernel26-libre/kernel26.preset b/libre-testing/kernel26-libre/kernel26.preset
new file mode 100644
index 000000000..742a44239
--- /dev/null
+++ b/libre-testing/kernel26-libre/kernel26.preset
@@ -0,0 +1,17 @@
+# mkinitcpio preset file for kernel26
+
+########################################
+# DO NOT EDIT THIS LINE:
+source /etc/mkinitcpio.d/kernel26.kver
+########################################
+ALL_config="/etc/mkinitcpio.conf"
+
+PRESETS=('default' 'fallback')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/kernel26.img"
+#default_options=""
+
+#fallback_config="/etc/mkinitcpio.conf"
+fallback_image="/boot/kernel26-fallback.img"
+fallback_options="-S autodetect" \ No newline at end of file
diff --git a/libre-testing/openfwwf/PKGBUILD b/libre-testing/openfwwf/PKGBUILD
new file mode 100644
index 000000000..30168b159
--- /dev/null
+++ b/libre-testing/openfwwf/PKGBUILD
@@ -0,0 +1,21 @@
+# Contributor: Jussi Timperi <jussi.timperi at gmail dot com>
+
+pkgname=openfwwf
+pkgver=5.2
+pkgrel=1
+pkgdesc="Open firmware for some Broadcom 43xx series WLAN chips."
+arch=('any')
+url="http://www.ing.unibs.it/openfwwf/"
+license=('GPL2')
+makedepends=('b43-tools')
+source=(http://www.ing.unibs.it/openfwwf/firmware/$pkgname-$pkgver.tar.gz)
+md5sums=('e045a135453274e439ae183f8498b0fa')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make || return 1
+ make PREFIX="$pkgdir/lib/firmware/b43" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre-testing/unace-libre/PKGBUILD b/libre-testing/unace-libre/PKGBUILD
new file mode 100644
index 000000000..8708694c6
--- /dev/null
+++ b/libre-testing/unace-libre/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Borgo
+pkgname=unace-libre
+_pkgname=unace
+pkgver=1.2b
+pkgrel=2
+pkgdesc="Extract, view and test ACE 1.x archives"
+arch=('i686' 'x86_64')
+url="http://www.emerge.de/"
+license=('GPL')
+depends=()
+provides=('unace')
+conflicts=('unace')
+replaces=('unace')
+source=(ftp://ftp.debian.org/debian/pool/main/u/unace/$_pkgname\_$pkgver.orig.tar.gz
+ ftp://ftp.debian.org/debian/pool/main/u/unace/$_pkgname\_$pkgver-7.diff.gz)
+md5sums=('51360df61997db28787b60ea7321d83f'
+ '9cd1e411ed0e77d024ff78585079a5a5') #generate with 'makepkg -g'
+
+build() {
+ cd "$srcdir/$_pkgname$pkgver"
+ patch -p1 -i ../$_pkgname\_$pkgver-7.diff
+ for p in $(<debian/patches/series)
+ do
+ patch -p1 -i debian/patches/$p
+ done
+ cp unix/makefile unix/gccmaked .
+# assume little-endian, debian/test-endian.c is not used
+ make dep
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgname$pkgver"
+ install -Dm755 unace "$pkgdir/usr/bin/unace"
+ install -Dm644 debian/unace.1 "$pkgdir/usr/share/man/man1/unace.1"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/aif-libre/PKGBUILD b/libre/aif-libre/PKGBUILD
new file mode 100644
index 000000000..82809afdf
--- /dev/null
+++ b/libre/aif-libre/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id$
+# Maintainer: Dieter Plaetinck <dieter@plaetinck.be>
+
+pkgname=aif-libre
+pkgver=2011.02.13
+pkgrel=1
+pkgdesc="The ArchLinux Installation Framework (Parabola Rebranded)"
+arch=('any')
+url="http://projects.parabolagnulinux.org/aif.git/"
+license=('GPL3')
+depends=('util-linux-ng' 'bash' 'pacman' 'coreutils' 'grub' 'grep' 'mkinitcpio' 'awk' 'sed' 'libui-sh')
+optdepends=('cryptsetup: for encryption support'
+ 'lvm2: for LVM support'
+ 'dhcpd: for dhcp networking support'
+ 'e2fsprogs: Ext support'
+ 'jfsutils: JFS support'
+ 'reiserfsprogs: ReiserFS support'
+ 'xfsprogs: XFS support'
+ 'ntp: setting date with NTP'
+ 'dialog: for ncurses support'
+ )
+replaces=('aif')
+conflicts=('aif')
+provides=('aif')
+source=(http://projects.parabolagnulinux.org/aif.git/snapshot/aif-${pkgver}-parabola.tar.bz2)
+md5sums=('8727035c4bbadd24275aa3a27db88643')
+
+build() {
+
+ cd $srcdir/aif-$pkgver-parabola/
+
+ make DESTDIR="$pkgdir/" install
+
+}
+
+# vim:set ts=2 sw=2 et:
+
diff --git a/libre/audacious-plugins-libre/PKGBUILD b/libre/audacious-plugins-libre/PKGBUILD
new file mode 100644
index 000000000..aca8c9a8d
--- /dev/null
+++ b/libre/audacious-plugins-libre/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id$
+# Contributor: Alexander Fehr <pizzapunk gmail com>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+pkgname=audacious-plugins-libre
+pkgver=2.4.4
+pkgrel=2
+pkgdesc='Plugins for Audacious without unfree plugins'
+arch=('i686' 'x86_64')
+url='http://audacious-media-player.org/'
+license=('GPL')
+provides=("audacious-plugins=$pkgver")
+replaces=("${pkgname%-libre}")
+conflicts=("${pkgname%-libre}")
+
+makedepends=("audacious>=${pkgver}"
+ 'alsa-lib' 'pulseaudio' 'jack' 'lame' 'libvorbis' 'flac'
+ 'faad2' 'ffmpeg' 'fluidsynth' 'libcdio' 'libsidplay' 'wavpack'
+ 'libnotify' 'lirc-utils' 'curl' 'libmtp'
+ 'neon' 'libmms' 'libcue')
+
+optdepends=('alsa-lib: Advanced Linux Sound Arch. output'
+ 'pulseaudio: PulseAudio output'
+ 'jack: Jack Audio Connection Kit output'
+ 'lame: FileWriter MP3 output'
+ 'libvorbis: Vorbis input, FileWriter Vorbis output'
+ 'flac: FLAC input, FileWriter FLAC output'
+
+ 'faad2: AAC input'
+ 'ffmpeg: ffaudio input'
+ 'fluidsynth: MIDI FluidSynth backend input'
+ 'libcdio: CD Digital Audio input'
+ 'libsidplay: Commodore 64 audio input'
+ 'wavpack: WavPack input'
+
+ 'libnotify: libnotify OSD'
+ 'lirc-utils: LIRC'
+ 'curl: AudioScrobbler Client'
+ 'libmtp: Upload to MTP device'
+
+ 'neon: neon-based http transport'
+ 'libmms: libmms-based mms transport'
+ 'libcue: CUE playlist format')
+
+source=("http://repo.parabolagnulinux.org/other/$pkgname-$pkgver.tar.gz")
+
+# Source PKGBUILD and run this function from the shell
+mksource(){
+ tmpdir=$(mktemp -d /tmp/audacious-XXXX)
+ pushd $tmpdir >/dev/null
+ wget "http://distfiles.atheme.org/${pkgname%-libre}-$pkgver.tgz" -O - -q | tar xzf -
+
+ rm -rvf ${pkgname%-libre}-$pkgver/src/{u,p}sf/
+
+ mv -v ${pkgname%-libre}-$pkgver ${pkgname}-$pkgver
+
+ tar czf ${pkgname}-${pkgver}.tar.gz ${pkgname}-${pkgver}/
+
+ echo "You can find the sources at $tmpdir"
+
+ popd >/dev/null
+}
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure \
+ --build=$CHOST \
+ --host=$CHOST \
+ --target=$CHOST \
+ --prefix=/usr \
+ --enable-chardet \
+ --enable-amidiplug \
+ --disable-adplug \
+ --disable-psf
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
+
+md5sums=('df761a2d07e2ad1221c5fe61fa32dcb0')
diff --git a/libre/aufs2-libre/PKGBUILD b/libre/aufs2-libre/PKGBUILD
new file mode 100644
index 000000000..7e092717b
--- /dev/null
+++ b/libre/aufs2-libre/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id: PKGBUILD 110689 2011-02-21 15:30:22Z tpowa $
+# Maintainer: Paul Mattal <pjmattal@elys.com>
+
+pkgname=aufs2-libre
+pkgver=2.6.37_20110124
+pkgrel=3
+#_kernver=${pkgver%_*}-LIBRE
+_kernver=2.6.37-LIBRE
+pkgdesc="Another Unionfs Implementation for the Linux-Libre kernel"
+arch=('i686' 'x86_64')
+url="http://aufs.sourceforge.net/"
+license=('GPL2')
+depends=('kernel26-libre>=2.6.37.3' 'kernel26-libre<2.6.38')
+makedepends=('kernel26-libre-headers>=2.6.37' 'kernel26-libre-headers<2.6.38')
+replaces=('aufs' 'aufs2')
+conflicts=('aufs2')
+provides=("aufs2=$pkgver")
+install=${pkgname}.install
+source=("ftp://ftp.archlinux.org/other/aufs2/${pkgname%-libre}-${pkgver}.tar.gz")
+options=('!makeflags')
+
+build() {
+ cd ${srcdir}/${pkgname%-libre}-${pkgver}
+ #patch -Np1 -i ../aufs2-module-2.6.36.patch
+ sed -i 's|CONFIG_AUFS_HNOTIFY =.*|CONFIG_AUFS_HNOTIFY = y|' \
+ config.mk || return 1
+ sed -i 's|CONFIG_AUFS_HFSNOTIFY =.*|CONFIG_AUFS_HFSNOTIFY = y|' \
+ config.mk || return 1
+ sed -i 's|CONFIG_AUFS_EXPORT =.*|CONFIG_AUFS_EXPORT = y|' \
+ config.mk || return 1
+ sed -i 's|CONFIG_AUFS_SHWH =.*|CONFIG_AUFS_SHWH = y|' \
+ config.mk || return 1
+ sed -i 's|CONFIG_AUFS_BDEV_LOOP =.*|CONFIG_AUFS_BDEV_LOOP = y|' \
+ config.mk || return 1
+ sed -i 's|CONFIG_AUFS_BR_RAMFS =.*|CONFIG_AUFS_BR_RAMFS = y|' \
+ config.mk || return 1
+ sed -i 's|CONFIG_AUFS_DEBUG =.*|CONFIG_AUFS_DEBUG =|' \
+ config.mk || return 1
+ if [ "${CARCH}" = "x86_64" ]; then
+ inot64=" y"
+ else
+ inot64=""
+ fi
+ sed -i "s|CONFIG_AUFS_INO_T_64 =.*|CONFIG_AUFS_INO_T_64 =${inot64}|" \
+ config.mk
+ # build, sed fixes are from gentoo portage build
+ sed -i "s:aufs.ko usr/include/linux/aufs_type.h:aufs.ko:g" Makefile
+ sed -i "s:__user::g" include/linux/aufs_type.h
+ make KDIR=/usr/src/linux-${_kernver}
+}
+
+package() {
+ cd ${srcdir}/${pkgname%-libre}-${pkgver}
+ install -D -m644 fs/aufs/aufs.ko \
+ $pkgdir/lib/modules/${_kernver}/kernel/fs/aufs/aufs.ko
+ # tweak the install script for the right kernel version
+ sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+ $startdir/$pkgname.install
+ # install include files
+ install -D -m 644 include/linux/aufs_type.h $pkgdir/usr/include/linux/aufs_type.h
+ # gzip -9 all modules to safe 100MB
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
+
+md5sums=('fa64d7893490ef9c82310ebd5f730443')
+
+md5sums=('fa64d7893490ef9c82310ebd5f730443')
diff --git a/libre/aufs2-libre/aufs2-libre.install b/libre/aufs2-libre/aufs2-libre.install
new file mode 100644
index 000000000..4c95ad76e
--- /dev/null
+++ b/libre/aufs2-libre/aufs2-libre.install
@@ -0,0 +1,12 @@
+post_install() {
+ KERNEL_VERSION=2.6.37-ARCH
+ depmod $KERNEL_VERSION
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/aufs2-libre/aufs2-module-2.6.36.patch b/libre/aufs2-libre/aufs2-module-2.6.36.patch
new file mode 100644
index 000000000..3b43f7aed
--- /dev/null
+++ b/libre/aufs2-libre/aufs2-module-2.6.36.patch
@@ -0,0 +1,47 @@
+diff --git a/ubuntu/aufs/branch.c b/ubuntu/aufs/branch.c
+index cd4463c..ff6b158 100644
+--- a/fs/aufs/branch.c
++++ b/fs/aufs/branch.c
+@@ -22,6 +22,8 @@
+
+ #include <linux/file.h>
+ #include <linux/statfs.h>
++#include <linux/lglock.h>
++#include <linux/percpu.h>
+ #include "aufs.h"
+
+ /*
+@@ -851,7 +853,8 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+ goto out;
+
+ /* no need file_list_lock() since sbinfo is locked? defered? */
+- list_for_each_entry(file, &sb->s_files, f_u.fu_list) {
++ lg_global_lock(files_lglock);
++ do_file_list_for_each_entry(sb, file) {
+ if (special_file(file->f_dentry->d_inode->i_mode))
+ continue;
+
+@@ -861,6 +864,7 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+ err = -EBUSY;
+ FiMustNoWaiters(file);
+ fi_read_unlock(file);
++ lg_global_unlock(files_lglock);
+ goto out_free;
+ }
+
+@@ -889,10 +893,13 @@ static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+ if (p) {
+ a = p;
+ a[n++] = hf;
+- } else
++ } else {
++ lg_global_unlock(files_lglock);
+ goto out_free;
++ }
+ }
+- }
++ } while_file_list_for_each_entry;
++ lg_global_unlock(files_lglock);
+
+ err = 0;
+ if (n)
diff --git a/libre/aufs2-libre/create-tarball.sh b/libre/aufs2-libre/create-tarball.sh
new file mode 100644
index 000000000..a460a8b3b
--- /dev/null
+++ b/libre/aufs2-libre/create-tarball.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+AUFS2VERSION="-37"
+KERNELVERSION=2.6.37
+GITSNAPSHOT=20110124
+# aufs2 (no -xx) for the latest -rc version.
+git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git aufs2-standalone.git
+cd aufs2-standalone.git
+git checkout origin/aufs2.1${AUFS2VERSION}
+#git checkout origin/aufs2.1
+#*** apply "aufs2-base.patch" and "aufs2-standalone.patch" to your kernel source files.
+cd ..
+rm -rf aufs2-${KERNELVERSION}_${GITSNAPSHOT}
+cp -a aufs2-standalone.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}
+tar -czf aufs2-${KERNELVERSION}_${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-${KERNELVERSION}_${GITSNAPSHOT}
diff --git a/libre/ffmpeg-libre/PKGBUILD b/libre/ffmpeg-libre/PKGBUILD
new file mode 100644
index 000000000..dc5725eff
--- /dev/null
+++ b/libre/ffmpeg-libre/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 85265 2010-07-11 10:15:18Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Paul Mattal <paul@archlinux.org>
+# Maintainer for Parabola GNU/Linux: Omar Botta <omarbotta@gnulinuxlibre.net>
+
+pkgname=ffmpeg-libre
+pkgver=20110330
+pkgrel=1
+pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix. Libre version without faac"
+arch=('i686' 'x86_64')
+url="http://ffmpeg.org/"
+license=('GPL')
+depends=('bzip2' 'lame' 'sdl' 'libvorbis' 'xvidcore' 'zlib' 'x264' 'libtheora' 'opencore-amr' 'alsa-lib' 'libvdpau' 'libxfixes' 'schroedinger' 'libvpx' 'libva' 'openjpeg')
+makedepends=('yasm' 'git')
+#git clone git://git.videolan.org/ffmpeg.git
+source=(ftp://ftp.archlinux.org/other/ffmpeg/ffmpeg-${pkgver}.tar.xz)
+md5sums=('dd682a876a496b9f9ae8afb3b3b70389')
+#source=(http://ffmpeg.org/releases//releases/ffmpeg-${pkgver}.tar.bz2)
+provides=('ffmpeg')
+conflicts=('ffmpeg')
+replaces=("ffmpeg=$pkgver")
+
+build() {
+ cd "$srcdir/${pkgname%-libre}"
+
+ ./configure \
+ --prefix=/usr \
+ --enable-gpl \
+ --enable-libmp3lame \
+ --enable-libvorbis \
+ --disable-libfaac \
+ --enable-libxvid \
+ --enable-libx264 \
+ --enable-libvpx \
+ --enable-libtheora \
+ --enable-postproc \
+ --enable-shared \
+ --enable-x11grab \
+ --enable-libopencore_amrnb \
+ --enable-libopencore_amrwb \
+ --enable-libschroedinger \
+ --enable-libopenjpeg \
+ --enable-version3 \
+ --disable-nonfree \
+ --enable-runtime-cpudetect \
+ --disable-debug # libfaac is nonfree
+
+ make
+ make tools/qt-faststart
+ make doc/ff{mpeg,play,server}.1
+
+ make DESTDIR="$pkgdir" install install-man
+ install -D -m755 tools/qt-faststart "$pkgdir/usr/bin/qt-faststart"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/filesystem/PKGBUILD b/libre/filesystem/PKGBUILD
new file mode 100644
index 000000000..bdfbee155
--- /dev/null
+++ b/libre/filesystem/PKGBUILD
@@ -0,0 +1,95 @@
+# $Id: PKGBUILD 103015 2010-12-14 07:09:05Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+
+pkgname=filesystem
+pkgver=2010.12
+pkgrel=2
+pkgdesc='Base filesystem for Parabola'
+arch=('any')
+license=('GPL')
+url='http://parabolagnulinux.org'
+groups=('base')
+install='filesystem.install'
+depends=('iana-etc' 'bash' 'coreutils')
+backup=('etc/fstab' 'etc/crypttab' 'etc/group' 'etc/hosts' 'etc/ld.so.conf' 'etc/passwd'
+ 'etc/shadow' 'etc/gshadow' 'etc/resolv.conf' 'etc/motd' 'etc/nsswitch.conf'
+ 'etc/shells' 'etc/host.conf' 'etc/securetty' 'etc/profile' 'etc/issue')
+source=('group' 'issue' 'nsswitch.conf' 'securetty' 'host.conf' 'ld.so.conf'
+ 'passwd' 'shadow' 'fstab' 'crypttab' 'hosts' 'motd' 'resolv.conf' 'shells'
+ 'gshadow' 'profile' 'modprobe.d.usb-load-ehci-first')
+md5sums=('75c7e1770305e1f3b75c52785c137611'
+ '140787c0dc6f3f1272cfd381b92b0155'
+ '13753e4e0964f3652b0cc60a28528bdf'
+ '4c4540eeb748bf1f71d631b8c1dcf0b3'
+ 'f28150d4c0b22a017be51b9f7f9977ed'
+ '6e488ffecc8ba142c0cf7e2d7aeb832e'
+ '8a9042a2cedf6b6b47eb8973f14289cb'
+ 'b8355d9d2782f424f4cedcf682651be0'
+ 'ef40305da5803ca69d22e428ffc2ab9b'
+ 'e5d8323a4dbee7a6d0d2a19cbf4b819f'
+ '7bc65f234dfb6abf24e7c3b03e86f4ff'
+ 'd41d8cd98f00b204e9800998ecf8427e'
+ '6f48288b6fcaf0065fcb7b0e525413e0'
+ '40dac0de4c6b99c8ca97effbd7527c84'
+ '59768b5f4080b96b67bcde5f66984ad5'
+ '51ac5c337236235bf8fe85a9b07b6db1'
+ '8098ffd9fbf890468d3198277596b85a')
+
+package() {
+ cd ${srcdir}
+
+ #
+ # setup root filesystem
+ #
+ for d in bin boot dev etc home lib/modules media mnt sbin usr var opt srv/http sys; do
+ install -d -m755 ${pkgdir}/${d}
+ done
+ install -d -m555 ${pkgdir}/proc
+ install -d -m0750 ${pkgdir}/root
+ install -d -m1777 ${pkgdir}/tmp
+ # vsftpd won't run with write perms on /srv/ftp
+ install -d -m555 -g ftp ${pkgdir}/srv/ftp
+
+ # setup /etc
+ install -d ${pkgdir}/etc/{ld.so.conf.d,skel,profile.d}
+ for f in fstab group host.conf hosts issue ld.so.conf motd nsswitch.conf passwd resolv.conf securetty shells profile; do
+ install -m644 ${srcdir}/${f} ${pkgdir}/etc/
+ done
+ for f in gshadow shadow crypttab; do
+ install -m600 ${srcdir}/${f} ${pkgdir}/etc/
+ done
+ touch ${pkgdir}/etc/arch-release
+ install -D -m644 ${srcdir}/modprobe.d.usb-load-ehci-first ${pkgdir}/etc/modprobe.d/usb-load-ehci-first.conf
+
+ # setup /var
+ for d in cache/man local opt run log/old lib/misc empty; do
+ install -d -m755 ${pkgdir}/var/${d}
+ done
+ install -d -m1777 ${pkgdir}/var/{lock,tmp,spool/mail}
+ # allow setgid games to write scores
+ install -d -m775 -g games ${pkgdir}/var/games
+ ln -s spool/mail ${pkgdir}/var/mail
+ # prevent pacman from removing directory (FS#16886)
+ touch ${pkgdir}/var/empty/.keep
+
+
+ #
+ # setup /usr hierarchy
+ #
+ for d in bin include lib sbin share/misc src; do
+ install -d -m755 ${pkgdir}/usr/${d}
+ done
+ for d in $(seq 8); do
+ install -d -m755 ${pkgdir}/usr/share/man/man${d}
+ done
+
+
+ #
+ # setup /usr/local hierarchy
+ #
+ for d in bin etc games include lib man sbin share src; do
+ install -d -m755 ${pkgdir}/usr/local/${d}
+ done
+ ln -s ../man ${pkgdir}/usr/local/share/man
+}
diff --git a/libre/filesystem/crypttab b/libre/filesystem/crypttab
new file mode 100644
index 000000000..dd6994b5a
--- /dev/null
+++ b/libre/filesystem/crypttab
@@ -0,0 +1,33 @@
+# crypttab: Mappings for encrypted partitions
+#
+# Each mapped device will be created in /dev/mapper, so your /etc/fstab
+# should use the /dev/mapper/{NAME} paths for encrypted devices.
+#
+# Each PASSWORD field can be an absolute pathname to a key file (starting
+# with a slash, recommended) or a literal string that will be used as
+# a passphrase. To use special characters in the passphrase, surround it
+# by quotes, the usual bash quoting rules apply.
+# There are two special keywords that cannot be used as passphrases:
+# - ASK ask for a passphrase on boot
+# - SWAP use a random key and create a swapspace afterwards
+# WARNING: use the SWAP keyword carefully, as it overwrites the data
+# on the specified partition
+#
+# To create a key file:
+# hashalot -n 32 ripemd160 >/etc/crytfs.key
+# or
+# dd if=/dev/urandom of=/etc/cryptfs.key bs=256 count=1
+#
+# To pass additional options to cryptsetup for non-LUKS partitions, use the
+# fourth column.
+#
+# NOTE: Do not list your root (/) partition here, it must be set up
+# beforehand by the initramfs (/etc/mkinitcpio.conf).
+
+
+# NAME SOURCE DEVICE PASSWORD OPTIONS
+#home /dev/hda4 mypassword
+#data1 /dev/hda3 "my \"password\""
+#data2 /dev/hda5 /etc/cryptfs.key
+#swap /dev/hdx4 SWAP -c aes-cbc-essiv:sha256 -s 256
+#vol /dev/hdb7 ASK
diff --git a/libre/filesystem/filesystem.install b/libre/filesystem/filesystem.install
new file mode 100644
index 000000000..4b2b261a4
--- /dev/null
+++ b/libre/filesystem/filesystem.install
@@ -0,0 +1,59 @@
+post_install() {
+ [ -f var/log/lastlog ] || : >var/log/lastlog
+ [ -f var/log/wtmp ] || : >var/log/wtmp
+ [ -f var/run/utmp ] || : >var/run/utmp
+ [ -f var/log/btmp ] || (: >var/log/btmp && bin/chmod 600 var/log/btmp)
+ # workaround for bug #7194
+ # readded due to bug #9465
+ # please do not remove!
+ bin/chmod 1777 var/spool/mail tmp var/tmp var/lock
+}
+
+# args: <group> [options]
+_addgroup() {
+ if ! bin/grep -q "^$1:" etc/group; then
+ usr/sbin/groupadd ${@} >/dev/null
+ fi
+}
+
+# args: <group> [options]
+_adduser() {
+ if ! bin/grep -q "^$1:" etc/passwd; then
+ usr/sbin/useradd ${@} >/dev/null
+ fi
+}
+
+post_upgrade() {
+ post_install
+
+ _addgroup optical -g 93
+ _addgroup audio -g 92
+ _addgroup video -g 91
+ _addgroup floppy -g 94
+ _addgroup storage -g 95
+ _addgroup log -g 19
+ _addgroup power -g 98
+ _addgroup network -g 90
+ _addgroup games -g 50
+ _addgroup uucp -g 14
+ _addgroup http -g 33
+ _adduser http -u 33 -d /srv/http -g http -s /bin/false http
+ _addgroup scanner -g 96
+ _addgroup rfkill -g 24
+
+ # sync gshadow to group (fixes FS#19869
+ if ! bin/grep -q '^rfkill:' etc/gshadow; then
+ usr/sbin/grpconv >/dev/null
+ fi
+
+ if ! bin/grep -q '^include /etc/ld.so.conf.d/\*.conf$' etc/ld.so.conf; then
+ bin/echo 'include /etc/ld.so.conf.d/*.conf' >> etc/ld.so.conf
+ fi
+
+ # set "Last password change" > 0; otherwise su $user wont work
+ for user in bin daemon mail ftp http nobody; do
+ if LANG=C usr/bin/chage -l ${user} | bin/grep -q 'password must be changed'; then
+ usr/bin/chage -d 14871 ${user}
+ fi
+ done
+}
diff --git a/libre/filesystem/fstab b/libre/filesystem/fstab
new file mode 100644
index 000000000..a23e7955b
--- /dev/null
+++ b/libre/filesystem/fstab
@@ -0,0 +1,6 @@
+#
+# /etc/fstab: static file system information
+#
+# <file system> <dir> <type> <options> <dump> <pass>
+devpts /dev/pts devpts defaults 0 0
+shm /dev/shm tmpfs nodev,nosuid 0 0
diff --git a/libre/filesystem/group b/libre/filesystem/group
new file mode 100644
index 000000000..4bd635c47
--- /dev/null
+++ b/libre/filesystem/group
@@ -0,0 +1,30 @@
+root:x:0:root
+bin:x:1:root,bin,daemon
+daemon:x:2:root,bin,daemon
+sys:x:3:root,bin
+adm:x:4:root,daemon
+tty:x:5:
+disk:x:6:root
+lp:x:7:daemon
+mem:x:8:
+kmem:x:9:
+wheel:x:10:root
+ftp:x:11:
+mail:x:12:
+uucp:x:14:
+log:x:19:root
+locate:x:21:
+rfkill:x:24:
+smmsp:x:25:
+http:x:33:
+games:x:50:
+network:x:90:
+video:x:91:
+audio:x:92:
+optical:x:93:
+floppy:x:94:
+storage:x:95:
+scanner:x:96:
+power:x:98:
+nobody:x:99:
+users:x:100:
diff --git a/libre/filesystem/gshadow b/libre/filesystem/gshadow
new file mode 100644
index 000000000..06b488fe9
--- /dev/null
+++ b/libre/filesystem/gshadow
@@ -0,0 +1,30 @@
+root:::root
+bin:::root,bin,daemon
+daemon:::root,bin,daemon
+sys:::root,bin
+adm:::root,daemon
+tty:::
+disk:::root
+lp:::daemon
+mem:::
+kmem:::
+wheel:::root
+ftp:::
+mail:::
+uucp:::
+log:::root
+locate:::
+rfkill:x::
+smmsp:::
+http:::
+games:::
+network:x::
+video:x::
+audio:::
+optical:::
+floppy:x::
+storage:x::
+scanner:x::
+power:x::
+nobody:::
+users:::
diff --git a/libre/filesystem/host.conf b/libre/filesystem/host.conf
new file mode 100644
index 000000000..cf52fe561
--- /dev/null
+++ b/libre/filesystem/host.conf
@@ -0,0 +1,8 @@
+#
+# /etc/host.conf
+#
+
+order hosts,bind
+multi on
+
+# End of file
diff --git a/libre/filesystem/hosts b/libre/filesystem/hosts
new file mode 100644
index 000000000..1747f9196
--- /dev/null
+++ b/libre/filesystem/hosts
@@ -0,0 +1,9 @@
+#
+# /etc/hosts: static lookup table for host names
+#
+
+#<ip-address> <hostname.domain.org> <hostname>
+127.0.0.1 localhost.localdomain localhost
+::1 localhost.localdomain localhost
+
+# End of file
diff --git a/libre/filesystem/issue b/libre/filesystem/issue
new file mode 100644
index 000000000..323abdbf7
--- /dev/null
+++ b/libre/filesystem/issue
@@ -0,0 +1,3 @@
+
+Parabola GNU/Linux-libre \r (\n) (\l)
+
diff --git a/libre/filesystem/ld.so.conf b/libre/filesystem/ld.so.conf
new file mode 100644
index 000000000..dfac45683
--- /dev/null
+++ b/libre/filesystem/ld.so.conf
@@ -0,0 +1,7 @@
+#
+# /etc/ld.so.conf
+#
+
+include /etc/ld.so.conf.d/*.conf
+
+# End of file
diff --git a/libre/filesystem/modprobe.d.usb-load-ehci-first b/libre/filesystem/modprobe.d.usb-load-ehci-first
new file mode 100644
index 000000000..3b5db0e7a
--- /dev/null
+++ b/libre/filesystem/modprobe.d.usb-load-ehci-first
@@ -0,0 +1,2 @@
+install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install ohci_hcd $CMDLINE_OPTS
+install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install uhci_hcd $CMDLINE_OPTS
diff --git a/libre/filesystem/motd b/libre/filesystem/motd
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/libre/filesystem/motd
diff --git a/libre/filesystem/nsswitch.conf b/libre/filesystem/nsswitch.conf
new file mode 100644
index 000000000..6e459adb6
--- /dev/null
+++ b/libre/filesystem/nsswitch.conf
@@ -0,0 +1,19 @@
+# Begin /etc/nsswitch.conf
+
+passwd: files
+group: files
+shadow: files
+
+publickey: files
+
+hosts: files dns
+networks: files
+
+protocols: files
+services: files
+ethers: files
+rpc: files
+
+netgroup: files
+
+# End /etc/nsswitch.conf
diff --git a/libre/filesystem/passwd b/libre/filesystem/passwd
new file mode 100644
index 000000000..a4a24e34f
--- /dev/null
+++ b/libre/filesystem/passwd
@@ -0,0 +1,7 @@
+root:x:0:0:root:/root:/bin/bash
+bin:x:1:1:bin:/bin:/bin/false
+daemon:x:2:2:daemon:/sbin:/bin/false
+mail:x:8:12:mail:/var/spool/mail:/bin/false
+ftp:x:14:11:ftp:/srv/ftp:/bin/false
+http:x:33:33:http:/srv/http:/bin/false
+nobody:x:99:99:nobody:/:/bin/false
diff --git a/libre/filesystem/profile b/libre/filesystem/profile
new file mode 100644
index 000000000..ccc07a4e5
--- /dev/null
+++ b/libre/filesystem/profile
@@ -0,0 +1,27 @@
+# /etc/profile
+
+#Set our umask
+umask 022
+
+# Set our default path
+PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
+export PATH
+
+# Load profiles from /etc/profile.d
+if test -d /etc/profile.d/; then
+ for profile in /etc/profile.d/*.sh; do
+ test -r $profile && . $profile
+ done
+ unset profile
+fi
+
+# Source global bash config
+if test "$PS1" && test "$BASH" && test -r /etc/bash.bashrc; then
+ . /etc/bash.bashrc
+fi
+
+# Termcap is outdated, old, and crusty, kill it.
+unset TERMCAP
+
+# Man is much better than us at figuring this out
+unset MANPATH
diff --git a/libre/filesystem/resolv.conf b/libre/filesystem/resolv.conf
new file mode 100644
index 000000000..cecafba03
--- /dev/null
+++ b/libre/filesystem/resolv.conf
@@ -0,0 +1,8 @@
+#
+# /etc/resolv.conf
+#
+
+#search <yourdomain.tld>
+#nameserver <ip>
+
+# End of file
diff --git a/libre/filesystem/securetty b/libre/filesystem/securetty
new file mode 100644
index 000000000..5a2235ce7
--- /dev/null
+++ b/libre/filesystem/securetty
@@ -0,0 +1,15 @@
+#
+# /etc/securetty
+#
+
+console
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+ttyS0
+hvc0
+
+# End of file
diff --git a/libre/filesystem/shadow b/libre/filesystem/shadow
new file mode 100644
index 000000000..ccab68d33
--- /dev/null
+++ b/libre/filesystem/shadow
@@ -0,0 +1,7 @@
+root::14871::::::
+bin:x:14871::::::
+daemon:x:14871::::::
+mail:x:14871::::::
+ftp:x:14871::::::
+http:x:14871::::::
+nobody:x:14871::::::
diff --git a/libre/filesystem/shells b/libre/filesystem/shells
new file mode 100644
index 000000000..ff9e38348
--- /dev/null
+++ b/libre/filesystem/shells
@@ -0,0 +1,9 @@
+#
+# /etc/shells
+#
+
+/bin/sh
+/bin/bash
+/bin/dash
+
+# End of file
diff --git a/libre/ghostscript-libre/PKGBUILD b/libre/ghostscript-libre/PKGBUILD
new file mode 100644
index 000000000..4c2e4f7ec
--- /dev/null
+++ b/libre/ghostscript-libre/PKGBUILD
@@ -0,0 +1,67 @@
+# $Id$
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Maintainer (Parabola): xihh
+
+pkgname=ghostscript-libre
+pkgver=9.02
+pkgrel=1
+pkgdesc="An interpreter for the PostScript language without non-free files"
+arch=('i686' 'x86_64')
+license=('GPL3') #non free files removed
+depends=('libxt' 'libcups' 'fontconfig' 'jasper' 'zlib' 'libpng' 'libjpeg' 'libtiff')
+makedepends=('gtk2' 'gnutls')
+optdepends=('texlive-core: needed for dvipdf'
+ 'gtk2: needed for gsx')
+conflicts=('ghostscript')
+replaces=('ghostscript-lrpng' 'ghostscript')
+provides=('ghostscript-lprng' "ghostscript=$pkgver")
+url="http://www.ghostscript.com/"
+source=(http://downloads.ghostscript.com/public/ghostscript-${pkgver}.tar.bz2)
+options=('!libtool' '!makeflags')
+md5sums=('f67151444bd56a7904579fc75a083dd6')
+
+build() {
+ cd ${srcdir}/ghostscript-${pkgver}
+
+ # force it to use system-libs
+ rm -rf jpeg libpng zlib jasper expat tiff
+ # delete non-free packages
+ grep -l "are not altered" Resource/CMap/* | xargs rm -fv
+
+ ./configure --prefix=/usr \
+ --enable-dynamic \
+ --with-ijs \
+ --with-jbig2dec \
+ --with-omni \
+ --with-x \
+ --with-drivers=ALL\
+ --with-fontpath=/usr/share/fonts/Type1:/usr/share/fonts \
+ --disable-compile-inits # needed for linking with system-zlib
+ make
+
+ # Build IJS
+ cd ${srcdir}/ghostscript-${pkgver}/ijs
+ ./autogen.sh
+ ./configure --prefix=/usr --enable-shared --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/ghostscript-${pkgver}
+ make DESTDIR=${pkgdir} \
+ cups_serverroot=${pkgdir}/etc/cups \
+ cups_serverbin=${pkgdir}/usr/lib/cups install soinstall
+
+ # install missing doc files # http://bugs.archlinux.org/task/18023
+ install -m 644 ${srcdir}/ghostscript-${pkgver}/doc/{Ps2ps2.htm,gs-vms.hlp,gsdoc.el,pscet_status.txt} ${pkgdir}/usr/share/ghostscript/$pkgver/doc/
+
+ mkdir -p ${pkgdir}/usr/share/licenses/${pkgname}
+ install -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/
+
+ # remove unwanted localized man-pages
+ rm -rf $pkgdir/usr/share/man/[^man1]*
+
+ # install IJS
+ cd ${srcdir}/ghostscript-${pkgver}/ijs
+ make DESTDIR=${pkgdir} install
+}
diff --git a/libre/ghostscript-libre/gs_bug691759and691760.diff b/libre/ghostscript-libre/gs_bug691759and691760.diff
new file mode 100644
index 000000000..ca394427a
--- /dev/null
+++ b/libre/ghostscript-libre/gs_bug691759and691760.diff
@@ -0,0 +1,215 @@
+Modified: trunk/gs/base/gdevnfwd.c
+===================================================================
+--- trunk/gs/base/gdevnfwd.c 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/gdevnfwd.c 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -1117,3 +1117,29 @@
+ {
+ return 0;
+ }
++
++bool
++fwd_uses_fwd_cmap_procs(gx_device * dev)
++{
++ const gx_cm_color_map_procs *pprocs;
++
++ pprocs = dev_proc(dev, get_color_mapping_procs)(dev);
++ if (pprocs == &FwdDevice_cm_map_procs) {
++ return true;
++ }
++ return false;
++}
++
++const gx_cm_color_map_procs*
++fwd_get_target_cmap_procs(gx_device * dev)
++{
++ const gx_cm_color_map_procs *pprocs;
++ gx_device_forward * const fdev = (gx_device_forward *)dev;
++ gx_device * const tdev = fdev->target;
++
++ pprocs = dev_proc(tdev, get_color_mapping_procs(tdev));
++ while (pprocs == &FwdDevice_cm_map_procs) {
++ pprocs = fwd_get_target_cmap_procs(tdev);
++ }
++ return pprocs;
++}
+\ No newline at end of file
+
+Modified: trunk/gs/base/gdevp14.c
+===================================================================
+--- trunk/gs/base/gdevp14.c 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/gdevp14.c 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -900,7 +900,11 @@
+ nos->parent_color_info_procs->num_components, 1,
+ false, false, true, tos->planestride,
+ tos->rowstride, num_rows, num_cols);
+- /* Transform the data */
++ /* Transform the data. Since the pdf14 device should be
++ using RGB, CMYK or Gray buffers, this transform
++ does not need to worry about the cmap procs of
++ the target device. Those are handled when we do
++ the pdf14 put image operation */
+ gscms_transform_color_buffer(icc_link, &input_buff_desc,
+ &output_buff_desc, tos->data,
+ new_data_buf);
+
+Modified: trunk/gs/base/gxcmap.c
+===================================================================
+--- trunk/gs/base/gxcmap.c 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/gxcmap.c 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -31,6 +31,7 @@
+ #include "gsicc_manage.h"
+ #include "gdevdevn.h"
+ #include "gsicc_cache.h"
++#include "gscms.h"
+
+ /* Structure descriptor */
+ public_st_device_color();
+@@ -1744,3 +1745,37 @@
+
+ }
+ }
++
++bool
++gx_device_uses_std_cmap_procs(gx_device * dev)
++{
++ const gx_cm_color_map_procs *pprocs;
++
++ if (dev->device_icc_profile != NULL) {
++ pprocs = dev_proc(dev, get_color_mapping_procs)(dev);
++ /* Check if they are forwarding procs */
++ if (fwd_uses_fwd_cmap_procs(dev)) {
++ pprocs = fwd_get_target_cmap_procs(dev);
++ }
++ switch(dev->device_icc_profile->data_cs) {
++ case gsGRAY:
++ if (pprocs == &DeviceGray_procs) {
++ return true;
++ }
++ break;
++ case gsRGB:
++ if (pprocs == &DeviceRGB_procs) {
++ return true;
++ }
++ break;
++ case gsCMYK:
++ if (pprocs == &DeviceCMYK_procs) {
++ return true;
++ }
++ break;
++ default:
++ break;
++ }
++ }
++ return false;
++}
+
+Modified: trunk/gs/base/gxcmap.h
+===================================================================
+--- trunk/gs/base/gxcmap.h 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/gxcmap.h 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -284,5 +284,11 @@
+ * [0,1]
+ */
+ frac gx_unit_frac(float fvalue);
++/* Determine if the device is using the standard color mapping procs. In
++ such a case, we can make use of the faster icc color conversions for
++ images */
++bool gx_device_uses_std_cmap_procs(gx_device * dev);
++bool fwd_uses_fwd_cmap_procs(gx_device * dev);
++const gx_cm_color_map_procs* fwd_get_target_cmap_procs(gx_device * dev);
+
+ #endif /* gxcmap_INCLUDED */
+
+Modified: trunk/gs/base/gxi12bit.c
+===================================================================
+--- trunk/gs/base/gxi12bit.c 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/gxi12bit.c 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -113,6 +113,8 @@
+ irender_proc_t
+ gs_image_class_2_fracs(gx_image_enum * penum)
+ {
++ bool std_cmap_procs;
++
+ if (penum->bps > 8) {
+ if (penum->use_mask_color) {
+ /* Convert color mask values to fracs. */
+@@ -122,9 +124,14 @@
+ penum->mask_color.values[i] =
+ bits2frac(penum->mask_color.values[i], 12);
+ }
++ /* If the device has some unique color mapping procs due to its color space,
++ then we will need to use those and go through pixel by pixel instead
++ of blasting through buffers. This is true for example with many of
++ the color spaces for CUPs */
++ std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev);
+ if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN &&
+ penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ||
+- penum->bps != 16 ||
++ penum->bps != 16 || !std_cmap_procs ||
+ gs_color_space_get_index(penum->pcs) == gs_color_space_index_DevicePixel) {
+ /* DevicePixel color space used in mask from 3x type. Basically
+ a simple color space that just is scaled to the device bit
+
+Modified: trunk/gs/base/gxicolor.c
+===================================================================
+--- trunk/gs/base/gxicolor.c 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/gxicolor.c 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -97,6 +97,8 @@
+ irender_proc_t
+ gs_image_class_4_color(gx_image_enum * penum)
+ {
++ bool std_cmap_procs;
++
+ if (penum->use_mask_color) {
+ /*
+ * Scale the mask colors to match the scaling of each sample to
+@@ -128,8 +130,14 @@
+ penum->mask_color.mask = 0;
+ penum->mask_color.test = ~0;
+ }
++ /* If the device has some unique color mapping procs due to its color space,
++ then we will need to use those and go through pixel by pixel instead
++ of blasting through buffers. This is true for example with many of
++ the color spaces for CUPs */
++ std_cmap_procs = gx_device_uses_std_cmap_procs(penum->dev);
+ if ( (gs_color_space_get_index(penum->pcs) == gs_color_space_index_DeviceN &&
+- penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ) {
++ penum->pcs->cmm_icc_profile_data == NULL) || penum->use_mask_color ||
++ !std_cmap_procs) {
+ return &image_render_color_DeviceN;
+ } else {
+ /* Set up the link now */
+
+Modified: trunk/gs/base/gxiscale.c
+===================================================================
+--- trunk/gs/base/gxiscale.c 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/gxiscale.c 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -104,6 +104,13 @@
+ != penum->dev->color_info.num_components) {
+ use_icc = false;
+ }
++ /* If the device has some unique color mapping procs due to its color space,
++ then we will need to use those and go through pixel by pixel instead
++ of blasting through buffers. This is true for example with many of
++ the color spaces for CUPs */
++ if(!gx_device_uses_std_cmap_procs(penum->dev)) {
++ use_icc = false;
++ }
+ /*
+ * USE_CONSERVATIVE_INTERPOLATION_RULES is normally NOT defined since
+ * the MITCHELL digital filter seems OK as long as we are going out to
+
+Modified: trunk/gs/base/lib.mak
+===================================================================
+--- trunk/gs/base/lib.mak 2011-01-06 23:48:14 UTC (rev 12004)
++++ trunk/gs/base/lib.mak 2011-01-07 04:49:42 UTC (rev 12005)
+@@ -602,7 +602,7 @@
+ $(gxalpha_h) $(gxcspace_h) $(gxfarith_h) $(gxfrac_h)\
+ $(gxdcconv_h) $(gxdevice_h) $(gxcmap_h) $(gsnamecl_h) $(gxlum_h)\
+ $(gzstate_h) $(gxdither_h) $(gxcdevn_h) $(string__h)\
+- $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h)
++ $(gsicc_manage_h) $(gdevdevn_h) $(gsicc_cache_h) $(gscms_h)
+ $(GLCC) $(GLO_)gxcmap.$(OBJ) $(C_) $(GLSRC)gxcmap.c
+
+ $(GLOBJ)gxcpath.$(OBJ) : $(GLSRC)gxcpath.c $(GXERR)\
+
diff --git a/libre/ghostscript-libre/svn_rev11948.diff b/libre/ghostscript-libre/svn_rev11948.diff
new file mode 100644
index 000000000..92abb0d98
--- /dev/null
+++ b/libre/ghostscript-libre/svn_rev11948.diff
@@ -0,0 +1,16 @@
+Modified: trunk/gs/base/gximag3x.c
+===================================================================
+--- trunk/gs/base/gximag3x.c 2010-12-10 19:50:53 UTC (rev 11947)
++++ trunk/gs/base/gximag3x.c 2010-12-11 23:02:25 UTC (rev 11948)
+@@ -241,7 +241,9 @@
+ const gs_image3x_mask_t *pixm =
+ (i == 0 ? &pim->Opacity : &pim->Shape);
+
+- *(gs_data_image_t *)&mask[i].image = pixm->MaskDict;
++ /* Use memcpy because direct assignment breaks ANSI aliasing */
++ /* rules and causes SEGV with gcc 4.5.1 */
++ memcpy(&mask[i].image, &pixm->MaskDict, sizeof(pixm->MaskDict));
+ mask[i].image.type = type1;
+ mask[i].image.BitsPerComponent = pixm->MaskDict.BitsPerComponent;
+ }
+
diff --git a/libre/grub2/05_archtheme b/libre/grub2/05_archtheme
new file mode 100644
index 000000000..4d1b6fb20
--- /dev/null
+++ b/libre/grub2/05_archtheme
@@ -0,0 +1,6 @@
+#!/bin/bash -e
+
+cat << EOF
+set menu_color_normal=light-blue/black
+set menu_color_highlight=light-cyan/blue
+EOF
diff --git a/libre/grub2/20_memtest86+ b/libre/grub2/20_memtest86+
new file mode 100644
index 000000000..41ca11f02
--- /dev/null
+++ b/libre/grub2/20_memtest86+
@@ -0,0 +1,27 @@
+#! /bin/sh -e
+########################################################
+# This script generates a memtest86+ entry on grub.cfg #
+# if memtest is installed on the system. #
+########################################################
+
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+
+. ${libdir}/grub/grub-mkconfig_lib
+
+MEMTEST86_IMAGE="/boot/memtest86+/memtest.bin"
+CLASS="--class memtest86 --class gnu --class tool"
+
+if [ -e $MEMTEST86_IMAGE ] && is_path_readable_by_grub $MEMTEST86_IMAGE; then
+ # image exists, create menu entry
+ echo "Found memtest86+ image: $MEMTEST86_IMAGE" >&2
+ cat << EOF
+menuentry "Memory test (memtest86+)" $CLASS {
+EOF
+ prepare_grub_to_access_device `${grub_probe} --target=device $MEMTEST86_IMAGE` | sed -e "s/^/ /"
+ cat << EOF
+ linux16 (\$root)`make_system_path_relative_to_its_root $MEMTEST86_IMAGE`
+}
+EOF
+fi
diff --git a/libre/grub2/PKGBUILD b/libre/grub2/PKGBUILD
new file mode 100644
index 000000000..6d884dcea
--- /dev/null
+++ b/libre/grub2/PKGBUILD
@@ -0,0 +1,204 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Keshav P R <skodabenz at rocketmail dot com>
+
+# _grub2_rev=3072
+
+_grub2_lua_ver=19
+_grub2_gpxe_ver=12
+_grub2_ntldr_ver=13
+_grub2_915_ver=6
+
+pkgname=('grub2-common' 'grub2-bios' 'grub2-efi-i386')
+pkgbase="grub2"
+pkgver='1.99~rc1'
+pkgrel=4
+url="http://www.gnu.org/software/grub/"
+arch=('i686' 'x86_64')
+license=('GPL3')
+makedepends=('bdf-unifont' 'python2' 'xz' 'autogen' 'texinfo' 'help2man' 'gettext' 'device-mapper')
+options=(strip purge docs zipman !emptydirs)
+
+source=("ftp://alpha.gnu.org/gnu/grub/grub-${pkgver}.tar.gz"
+ "ftp://ftp.archlinux.org/other/grub2/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz"
+ "ftp://ftp.archlinux.org/other/grub2/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz"
+ "ftp://ftp.archlinux.org/other/grub2/grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz"
+ "ftp://ftp.archlinux.org/other/grub2/grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz"
+ 'archlinux_grub2_mkconfig_fixes.patch'
+ 'grub.default'
+ 'grub.cfg'
+ '20_memtest86+'
+ '05_archtheme')
+
+noextract=("grub2_extras_lua_r${_grub2_lua_ver}.tar.xz"
+ "grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz"
+ "grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz"
+ "grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz")
+
+
+build() {
+ # set architecture dependent variables
+ if [ "${CARCH}" = "x86_64" ] ; then
+ _EFIEMU="--enable-efiemu"
+ else
+ _EFIEMU="--disable-efiemu"
+ fi
+ _HOST="${CARCH}"
+
+ build_grub2-common_and_bios
+ build_grub2-efi
+}
+
+build_grub2-common_and_bios() {
+ # copy the source for building the common/bios package
+ cp -r ${srcdir}/grub-${pkgver} ${srcdir}/grub2_bios-${pkgver}
+
+ ## Apply Archlinux specific fixes to enable grub2-mkconfig detect Arch kernels and initramfs
+ cd ${srcdir}/grub2_bios-${pkgver}
+ patch -Np1 -i ${srcdir}/archlinux_grub2_mkconfig_fixes.patch
+
+ # add the grub-extra sources
+ export GRUB_CONTRIB=${srcdir}/grub2_bios-${pkgver}/grub2-extras/
+ install -d ${srcdir}/grub2_bios-${pkgver}/grub2-extras
+ bsdtar xf ${srcdir}/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz \
+ -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
+ bsdtar xf ${srcdir}/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz \
+ -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
+ bsdtar xf ${srcdir}/grub2_extras_ntldr-img_r${_grub2_ntldr_ver}.tar.xz \
+ -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
+ bsdtar xf ${srcdir}/grub2_extras_915resolution_r${_grub2_915_ver}.tar.xz \
+ -C ${srcdir}/grub2_bios-${pkgver}/grub2-extras
+
+ ## Need to use python2
+ sed -i 's|python|python2|' ${srcdir}/grub2_bios-${pkgver}/autogen.sh
+
+ # start the actual build process
+ cd ${srcdir}/grub2_bios-${pkgver}
+ ./autogen.sh
+
+ ## fix unifont.bdf location so grub-mkfont can create *.pf2 files
+ sed -i 's|/usr/share/fonts/unifont|/usr/share/fonts/misc|' ${srcdir}/grub2_bios-${pkgver}/configure
+
+# mkdir ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS
+# cd ${srcdir}/grub2_bios-${pkgver}/BUILD_BIOS
+
+ CFLAGS="" ./configure \
+ --with-platform=pc --enable-mm-debug \
+ ${_EFIEMU} --host=${CARCH}-unknown-linux-gnu \
+ --enable-grub-mkfont --prefix=/usr \
+ --bindir=/bin --sbindir=/sbin \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --sysconfdir=/etc --enable-nls \
+ --program-transform-name=s,grub,grub,
+ CFLAGS="" make
+}
+
+build_grub2-efi() {
+ # copy the source for building the efi package
+ cp -r ${srcdir}/grub-${pkgver} ${srcdir}/grub2_efi-${pkgver}
+
+ # add the grub-extra sources
+ export GRUB_CONTRIB=${srcdir}/grub2_efi-${pkgver}/grub2-extras/
+ install -d ${srcdir}/grub2_efi-${pkgver}/grub2-extras
+ bsdtar xf ${srcdir}/grub2_extras_lua_r${_grub2_lua_ver}.tar.xz \
+ -C ${srcdir}/grub2_efi-${pkgver}/grub2-extras
+ bsdtar xf ${srcdir}/grub2_extras_gpxe_r${_grub2_gpxe_ver}.tar.xz \
+ -C ${srcdir}/grub2_efi-${pkgver}/grub2-extras
+
+ ## Need to use python2
+ sed -i 's|python|python2|' ${srcdir}/grub2_efi-${pkgver}/autogen.sh
+
+ # start the actual build process
+ cd ${srcdir}/grub2_efi-${pkgver}
+ ./autogen.sh
+
+ CFLAGS="" ./configure \
+ --with-platform=efi --target=i386 \
+ --enable-mm-debug --disable-efiemu \
+ --host=${CARCH}-unknown-linux-gnu \
+ --prefix=/usr --bindir=/bin \
+ --sbindir=/sbin --mandir=/usr/share/man \
+ --infodir=/usr/share/info --sysconfdir=/etc \
+ --enable-nls --program-transform-name=s,grub,grub,
+ CFLAGS="" make
+}
+
+package_grub2-common() {
+ pkgdesc="The GNU GRand Unified Bootloader version 2 - Files common for all platforms"
+ install="grub2.install"
+ depends=('xz' 'freetype2' 'device-mapper')
+ conflicts=('grub')
+ backup=('boot/grub/grub.cfg' 'etc/default/grub' 'etc/grub.d/40_custom')
+ cd ${srcdir}/grub2_bios-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ ## install grub2-extras ntldr-img's grubinst as /sbin/grubinst
+ install -Dm755 ${srcdir}/grub2_bios-${pkgver}/grub-core/grubinst ${pkgdir}/sbin/grubinst
+
+ install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_bios-install
+ install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_efi_x86_64-install
+ install -Dm755 ${pkgdir}/sbin/grub-install ${pkgdir}/sbin/grub_efi_i386-install
+
+ sed -i "s|^\(target_cpu\)=.*|\1=i386|; \
+ s|^\(platform\)=.*|\1=pc|" \
+ ${pkgdir}/sbin/grub_bios-install
+
+ sed -i "s|^\(target_cpu\)=.*|\1=x86_64|; \
+ s|^\(platform\)=.*|\1=efi|" \
+ ${pkgdir}/sbin/grub_efi_x86_64-install
+
+ sed -i "s|^\(target_cpu\)=.*|\1=i386|; \
+ s|^\(platform\)=.*|\1=efi|" \
+ ${pkgdir}/sbin/grub_efi_i386-install
+
+ ## install extra /etc/grub.d/ files
+ install -Dm755 ${srcdir}/05_archtheme ${pkgdir}/etc/grub.d/05_archtheme
+ install -Dm755 ${srcdir}/20_memtest86+ ${pkgdir}/etc/grub.d/20_memtest86+
+
+ ## install /etc/default/grub (used by grub-mkconfig)
+ install -Dm644 ${srcdir}/grub.default ${pkgdir}/etc/default/grub
+
+ ## install grub.cfg (needed so it doesn't get removed on upgrading because it was previously here)
+ install -Dm644 ${srcdir}/grub.cfg ${pkgdir}/boot/grub/grub.cfg
+
+ # remove platform specific files
+ rm -rf ${pkgdir}/usr/lib/grub/i386-pc/
+}
+
+package_grub2-bios() {
+ pkgdesc="The GNU GRand Unified Bootloader version 2 - Built for PC BIOS"
+ depends=(grub2-common=${pkgver})
+ replaces=('grub2')
+ provides=('grub2')
+
+ cd ${srcdir}/grub2_bios-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ ## remove non platform-specific files
+ rm -rf ${pkgdir}/{boot,bin,sbin,etc,usr/share}
+ rm ${pkgdir}/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib}
+}
+
+package_grub2-efi-i386() {
+
+ pkgdesc="The GNU GRand Unified Bootloader version 2 - i386 UEFI version"
+ depends=("grub2-common=${pkgver}" 'dosfstools')
+ optdepends=('efibootmgr')
+
+ cd ${srcdir}/grub2_efi-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ ## remove non platform-specific files
+ rm -rf ${pkgdir}/{boot,bin,sbin,etc,usr/share}
+ rm ${pkgdir}/usr/lib/grub/{grub-mkconfig_lib,update-grub_lib}
+}
+
+md5sums=('fd602ffaada5ba7939d0ea47091841a5'
+ '21b709f119e0bef1c51978d757e885dc'
+ '9e0944f3e63586dc4242fd8b7977e3c4'
+ '0a124ffc9835100ba0e7de7a0ac1c389'
+ '0016761d429e6a77b90d09ed6ee8a47d'
+ '93f0f96911451e86014e04f96e13462f'
+ '50123c37cf145a98aba4ffb0fc4efba1'
+ '7cb90ebb04b856ded6ae171c3658fba2'
+ '5a07e04c4ecb8ed145d54fec3043e0d5'
+ 'e143ae2e453b7c3ced309667df30da55')
diff --git a/libre/grub2/archlinux_grub2_mkconfig_fixes.patch b/libre/grub2/archlinux_grub2_mkconfig_fixes.patch
new file mode 100644
index 000000000..62acd2ee8
--- /dev/null
+++ b/libre/grub2/archlinux_grub2_mkconfig_fixes.patch
@@ -0,0 +1,93 @@
+diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
+index b041a38..6f31dce 100644
+--- a/util/grub-mkconfig.in
++++ b/util/grub-mkconfig.in
+@@ -252,6 +252,8 @@ export GRUB_DEFAULT \
+ GRUB_THEME \
+ GRUB_GFXPAYLOAD_LINUX \
+ GRUB_DISABLE_OS_PROBER \
++ GRUB_COLOR_NORMAL \
++ GRUB_COLOR_HIGHLIGHT \
+ GRUB_INIT_TUNE \
+ GRUB_SAVEDEFAULT \
+ GRUB_BADRAM
+diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
+index 420b3f3..79fd4fb 100644
+--- a/util/grub.d/00_header.in
++++ b/util/grub.d/00_header.in
+@@ -100,6 +100,14 @@ cat <<EOF
+
+ EOF
+
++if [ x$GRUB_COLOR_NORMAL != x ] && [ x$GRUB_COLOR_HIGHLIGHT != x ] ; then
++ cat << EOF
++set menu_color_normal=$GRUB_COLOR_NORMAL
++set menu_color_highlight=$GRUB_COLOR_HIGHLIGHT
++
++EOF
++fi
++
+ serial=0;
+ gfxterm=0;
+ for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
+diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
+index a09c3e6..cf12ea9 100644
+--- a/util/grub.d/10_linux.in
++++ b/util/grub.d/10_linux.in
+@@ -31,8 +31,8 @@ CLASS="--class gnu-linux --class gnu --class os"
+ if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
+ OS=GNU/Linux
+ else
+- OS="${GRUB_DISTRIBUTOR} GNU/Linux"
+- CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | cut -d' ' -f1) ${CLASS}"
++ OS="${GRUB_DISTRIBUTOR}"
++ CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr '[A-Z]' '[a-z]' | tr -d ' ') ${CLASS}"
+ fi
+
+ # loop-AES arranges things so that /dev/loop/X can be our root device, but
+@@ -48,7 +48,7 @@ if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue"
+ || uses_abstraction "${GRUB_DEVICE}" lvm; then
+ LINUX_ROOT_DEVICE=${GRUB_DEVICE}
+ else
+- LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
++ LINUX_ROOT_DEVICE="/dev/disk/by-uuid/${GRUB_DEVICE_UUID}"
+ fi
+
+ linux_entry ()
+@@ -111,7 +111,7 @@ EOF
+ EOF
+ }
+
+-list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* ; do
++list=`for i in /boot/vmlinuz* /boot/vmlinux* /vmlinuz* /vmlinux* ; do
+ if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
+ done`
+ prepare_boot_cache=
+@@ -123,14 +123,12 @@ while [ "x$list" != "x" ] ; do
+ dirname=`dirname $linux`
+ rel_dirname=`make_system_path_relative_to_its_root $dirname`
+ version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
+- alt_version=`echo $version | sed -e "s,\.old$,,g"`
++ base_init=`echo $basename | sed -e "s,vmlinuz,kernel,g"`
++ alt_version="${base_init}-fallback"
+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+
+ initrd=
+- for i in "initrd.img-${version}" "initrd-${version}.img" \
+- "initrd-${version}" "initramfs-${version}.img" \
+- "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
+- "initrd-${alt_version}" "initramfs-${alt_version}.img"; do
++ for i in "${base_init}.img"; do
+ if test -e "${dirname}/${i}" ; then
+ initrd="$i"
+ break
+@@ -155,6 +153,9 @@ while [ "x$list" != "x" ] ; do
+
+ linux_entry "${OS}" "${version}" false \
+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
++ initrd="${alt_version}.img"
++ linux_entry "${OS}" "${version} Fallback" false \
++ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
+ if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
+ linux_entry "${OS}" "${version}" true \
+ "single ${GRUB_CMDLINE_LINUX}"
diff --git a/libre/grub2/grub.cfg b/libre/grub2/grub.cfg
new file mode 100644
index 000000000..1f0e41471
--- /dev/null
+++ b/libre/grub2/grub.cfg
@@ -0,0 +1,26 @@
+# Config file for GRUB2 - The GNU GRand Unified Bootloader
+# /boot/grub/grub.cfg
+
+# DEVICE NAME CONVERSIONS
+#
+# Linux Grub
+# -------------------------
+# /dev/fd0 (fd0)
+# /dev/sda (hd0)
+# /dev/sdb2 (hd1,2)
+# /dev/sda3 (hd0,3)
+#
+
+# Timeout for menu
+set timeout=5
+
+# Set default boot entry as Entry 0
+set default=0
+
+# (0) Parabola GNU/Linux-libre
+menuentry "Parabola GNU/Linux-libre" {
+set root=(hd0,1)
+linux /vmlinuz26 root=/dev/sda1 ro
+initrd /kernel26.img
+}
+
diff --git a/libre/grub2/grub.default b/libre/grub2/grub.default
new file mode 100644
index 000000000..8302bdb3f
--- /dev/null
+++ b/libre/grub2/grub.default
@@ -0,0 +1,42 @@
+# If you change this file, run 'update-grub' afterwards to update
+# /boot/grub/grub.cfg.
+
+GRUB_DEFAULT=0
+GRUB_TIMEOUT=5
+GRUB_DISTRIBUTOR="Arch Linux"
+GRUB_CMDLINE_LINUX_DEFAULT="quiet"
+GRUB_CMDLINE_LINUX=""
+
+# Uncomment to enable Hidden Menu, and optionally hide the timeout count
+#GRUB_HIDDEN_TIMEOUT=5
+#GRUB_HIDDEN_TIMEOUT_QUIET=true
+
+# Uncomment to disable graphical terminal
+#GRUB_TERMINAL=console
+
+# The resolution used on graphical terminal
+# note that you can use only modes which your graphic card supports via VBE
+# you can see them in real GRUB with the command `vbeinfo'
+#GRUB_GFXMODE=1024x768x24
+
+# Uncomment to allow the kernel use the same resolution used by grub
+#GRUB_GFXPAYLOAD_LINUX=keep
+
+# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
+# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
+#GRUB_DISABLE_LINUX_UUID=true
+
+# Uncomment to disable generation of recovery mode menu entries
+#GRUB_DISABLE_RECOVERY="true"
+
+# Uncomment and set to the desired menu colors. Used by normal and wallpaper
+# modes only. Entries specified as foreground/background.
+GRUB_COLOR_NORMAL="light-blue/black"
+GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
+
+# Uncomment one of them for the gfx desired, a image background or a gfxtheme
+#GRUB_BACKGROUND="/path/to/wallpaper"
+#GRUB_THEME="/path/to/gfxtheme"
+
+# Uncomment to get a beep at GRUB start
+#GRUB_INIT_TUNE="480 440 1"
diff --git a/libre/grub2/grub2.install b/libre/grub2/grub2.install
new file mode 100644
index 000000000..898dc9246
--- /dev/null
+++ b/libre/grub2/grub2.install
@@ -0,0 +1,30 @@
+post_install() {
+
+ if [ -f /boot/grub/grub.cfg.pacsave ]; then
+ echo "Copying /boot/grub/grub.cfg.pacsave to /boot/grub/grub.cfg"
+ install -Dm644 /boot/grub/grub.cfg.pacsave /boot/grub/grub.cfg
+ fi
+
+ echo -n "Generating grub.cfg.example config file... "
+ grub-mkconfig -o /boot/grub/grub.cfg.example 2> /dev/null
+ echo "done."
+
+cat << EOF
+ An example config file is created at /boot/grub/grub.cfg.example
+
+ For more information and additional config settings please see http://wiki.archlinux.org/index.php/GRUB2
+
+EOF
+
+}
+
+
+post_upgrade() {
+cat << EOF
+ An example config file is created at /boot/grub/grub.cfg.example
+
+ For more information and additional config settings please see http://wiki.archlinux.org/index.php/GRUB2
+
+EOF
+}
+
diff --git a/libre/gstreamer0.10-bad-libre/PKGBUILD b/libre/gstreamer0.10-bad-libre/PKGBUILD
new file mode 100644
index 000000000..7138b7ac0
--- /dev/null
+++ b/libre/gstreamer0.10-bad-libre/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+
+pkgbase=gstreamer0.10-bad-libre
+pkgname=('gstreamer0.10-bad-libre' 'gstreamer0.10-bad-libre-plugins')
+pkgver=0.10.21
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('LGPL' 'GPL')
+makedepends=('pkgconfig' 'gstreamer0.10-base>=0.10.30' 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'exempi' 'jack' 'neon' 'libexif' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'soundtouch' 'libvdpau' 'schroedinger' 'libass' 'libvpx' 'gsm' 'libgme' 'rtmpdump')
+url="http://gstreamer.freedesktop.org/"
+options=(!libtool !emptydirs)
+source=(${url}/src/gst-plugins-bad/gst-plugins-bad-${pkgver}.tar.bz2)
+
+build() {
+ cd "${srcdir}/gst-plugins-bad-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-experimental \
+ --with-package-name="GStreamer Bad Plugins (Parabola)" \
+ --with-package-origin="http://parabolagnulinux.org/"
+
+ make || return 1
+ sed -e 's/gst sys ext/gst/' -i Makefile
+}
+
+package_gstreamer0.10-bad-libre() {
+ pkgdesc="GStreamer Multimedia Framework Bad Plugin libraries (gst-plugins-bad)"
+ depends=('gstreamer0.10-base>=0.10.32')
+ groups=('gstreamer0.10-plugins')
+ provides=('gstreamer0.10-bad')
+ conflicts=('gstreamer0.10-bad')
+ replaces=('gstreamer0.10-bad')
+
+ cd "${srcdir}/gst-plugins-bad-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
+package_gstreamer0.10-bad-libre-plugins() {
+ pkgdesc="GStreamer Multimedia Framework Bad Plugins (gst-plugins-bad)"
+ depends=("gstreamer0.10-bad-libre=${pkgver}" 'xvidcore' 'libdca' 'bzip2' 'libdc1394' 'exempi' 'jack' 'neon' 'libexif' 'musicbrainz' 'faad2' 'libmms' 'libcdaudio' 'libmpcdec' 'mjpegtools' 'libdvdnav' 'libmodplug' 'jasper' 'liblrdf' 'libofa' 'libvdpau' 'soundtouch' 'libass' 'schroedinger' 'libvpx' 'gsm' 'rtmpdump' 'libgme')
+ groups=('gstreamer0.10-plugins')
+ install=gstreamer0.10-bad-plugins.install
+ provides=('gstreamer0.10-bad-plugins')
+ conflicts=('gstreamer0.10-bad-plugins')
+ replaces=('gstreamer0.10-bad-plugins')
+
+ cd "${srcdir}/gst-plugins-bad-${pkgver}"
+ make -C gst-libs DESTDIR="${pkgdir}" install
+ make -C ext DESTDIR="${pkgdir}" install
+ make -C sys DESTDIR="${pkgdir}" install
+ make -C gst-libs DESTDIR="${pkgdir}" uninstall
+}
+md5sums=('f501336ab1d18d2565f47c36ce653a82')
diff --git a/libre/gstreamer0.10-bad-libre/gstreamer0.10-bad-plugins.install b/libre/gstreamer0.10-bad-libre/gstreamer0.10-bad-plugins.install
new file mode 100644
index 000000000..3a36b0ccb
--- /dev/null
+++ b/libre/gstreamer0.10-bad-libre/gstreamer0.10-bad-plugins.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/icecat-i18n/PKGBUILD b/libre/icecat-i18n/PKGBUILD
new file mode 100644
index 000000000..aaba5271b
--- /dev/null
+++ b/libre/icecat-i18n/PKGBUILD
@@ -0,0 +1,627 @@
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Contributor: Figue <ffigue@gmail.com>
+# Based on firefox-i18n package
+
+pkgbase='icecat-i18n'
+pkgname=('icecat-i18n-af' 'icecat-i18n-ar' 'icecat-i18n-as' 'icecat-i18n-ast' 'icecat-i18n-be' 'icecat-i18n-bg' 'icecat-i18n-bn-bd' 'icecat-i18n-bn-in' 'icecat-i18n-ca' 'icecat-i18n-cs' 'icecat-i18n-cy' 'icecat-i18n-da' 'icecat-i18n-de' 'icecat-i18n-el' 'icecat-i18n-en-gb' 'icecat-i18n-eo' 'icecat-i18n-es-ar' 'icecat-i18n-es-cl' 'icecat-i18n-es-es' 'icecat-i18n-es-mx' 'icecat-i18n-et' 'icecat-i18n-eu' 'icecat-i18n-fa' 'icecat-i18n-fi' 'icecat-i18n-fr' 'icecat-i18n-fy-nl' 'icecat-i18n-ga-ie' 'icecat-i18n-gd' 'icecat-i18n-gl' 'icecat-i18n-gu-in' 'icecat-i18n-he' 'icecat-i18n-hi-in' 'icecat-i18n-hr' 'icecat-i18n-hu' 'icecat-i18n-id' 'icecat-i18n-is' 'icecat-i18n-it' 'icecat-i18n-ja' 'icecat-i18n-ka' 'icecat-i18n-kk' 'icecat-i18n-kn' 'icecat-i18n-ko' 'icecat-i18n-ku' 'icecat-i18n-lt' 'icecat-i18n-lv' 'icecat-i18n-mk' 'icecat-i18n-ml' 'icecat-i18n-mr' 'icecat-i18n-nb-no' 'icecat-i18n-nl' 'icecat-i18n-nn-no' 'icecat-i18n-oc' 'icecat-i18n-or' 'icecat-i18n-pa-in' 'icecat-i18n-pl' 'icecat-i18n-pt-br' 'icecat-i18n-pt-pt' 'icecat-i18n-rm' 'icecat-i18n-ro' 'icecat-i18n-ru' 'icecat-i18n-si' 'icecat-i18n-sk' 'icecat-i18n-sl' 'icecat-i18n-sq' 'icecat-i18n-sr' 'icecat-i18n-sv-se' 'icecat-i18n-ta' 'icecat-i18n-ta-lk' 'icecat-i18n-te' 'icecat-i18n-th' 'icecat-i18n-tr' 'icecat-i18n-uk' 'icecat-i18n-vi' 'icecat-i18n-zh-cn' 'icecat-i18n-zh-tw')
+pkgver=3.6.15
+pkgrel=1
+pkgdesc="Language packs for IceCat"
+arch=('any')
+license=('MPL')
+url="http://www.gnu.org/software/gnuzilla/"
+depends=("icecat=${pkgver}")
+source=(http://gnuzilla.gnu.org/download/langpacks/$pkgver/{af,ar,as,ast,be,bg,bn-BD,bn-IN,ca,cs,cy,da,de,el,en-GB,eo,es-AR,es-CL,es-ES,es-MX,et,eu,fa,fi,fr,fy-NL,ga-IE,gd,gl,gu-IN,he,hi-IN,hr,hu,id,is,it,ja,ka,kk,kn,ko,ku,lt,lv,mk,ml,mr,nb-NO,nl,nn-NO,oc,or,pa-IN,pl,pt-BR,pt-PT,rm,ro,ru,si,sk,sl,sq,sr,sv-SE,ta,ta-LK,te,th,tr,uk,vi,zh-CN,zh-TW}.xpi)
+
+build() {
+ cd "${srcdir}"
+}
+
+helper_install() {
+ lang=${1/.xpi/}
+ msg "Building ${1}"
+ bsdtar xf ${1} || return 1
+ sed -i "s|jar:chrome/${lang}.jar|jar:${lang}.jar|" chrome.manifest || return 1
+ install -D -m 644 chrome/${lang}.jar "${pkgdir}/usr/lib/icecat/chrome/${lang}.jar" || return 1
+ install -D -m 644 chrome.manifest "${pkgdir}/usr/lib/icecat/chrome/${lang}.manifest" || return 1
+}
+
+package_icecat-i18n-af() {
+ helper_install af.xpi
+}
+
+package_icecat-i18n-ar() {
+ helper_install ar.xpi
+}
+
+package_icecat-i18n-as() {
+ helper_install as.xpi
+}
+
+package_icecat-i18n-ast() {
+ helper_install ast.xpi
+}
+
+package_icecat-i18n-be() {
+ helper_install be.xpi
+}
+
+package_icecat-i18n-bg() {
+ helper_install bg.xpi
+}
+
+package_icecat-i18n-bn-bd() {
+ helper_install bn-BD.xpi
+}
+
+package_icecat-i18n-bn-in() {
+ helper_install bn-IN.xpi
+}
+
+package_icecat-i18n-ca() {
+ helper_install ca.xpi
+}
+
+package_icecat-i18n-cs() {
+ helper_install cs.xpi
+}
+
+package_icecat-i18n-cy() {
+ helper_install cy.xpi
+}
+
+package_icecat-i18n-da() {
+ helper_install da.xpi
+}
+
+package_icecat-i18n-de() {
+ helper_install de.xpi
+}
+
+package_icecat-i18n-el() {
+ helper_install el.xpi
+}
+
+package_icecat-i18n-en-gb() {
+ helper_install en-GB.xpi
+}
+
+package_icecat-i18n-eo() {
+ helper_install eo.xpi
+}
+
+package_icecat-i18n-es-ar() {
+ helper_install es-AR.xpi
+}
+
+package_icecat-i18n-es-cl() {
+ helper_install es-CL.xpi
+}
+
+package_icecat-i18n-es-es() {
+ helper_install es-ES.xpi
+}
+
+package_icecat-i18n-es-mx() {
+ helper_install es-MX.xpi
+}
+
+package_icecat-i18n-et() {
+ helper_install et.xpi
+}
+
+package_icecat-i18n-eu() {
+ helper_install eu.xpi
+}
+
+package_icecat-i18n-fa() {
+ helper_install fa.xpi
+}
+
+package_icecat-i18n-fi() {
+ helper_install fi.xpi
+}
+
+package_icecat-i18n-fr() {
+ helper_install fr.xpi
+}
+
+package_icecat-i18n-fy-nl() {
+ helper_install fy-NL.xpi
+}
+
+package_icecat-i18n-ga-ie() {
+ helper_install ga-IE.xpi
+}
+
+package_icecat-i18n-gd() {
+ helper_install gd.xpi
+}
+
+package_icecat-i18n-gl() {
+ helper_install gl.xpi
+}
+
+package_icecat-i18n-gu-in() {
+ helper_install gu-IN.xpi
+}
+
+package_icecat-i18n-he() {
+ helper_install he.xpi
+}
+
+package_icecat-i18n-hi-in() {
+ helper_install hi-IN.xpi
+}
+
+package_icecat-i18n-hr() {
+ helper_install hr.xpi
+}
+
+package_icecat-i18n-hu() {
+ helper_install hu.xpi
+}
+
+package_icecat-i18n-id() {
+ helper_install id.xpi
+}
+
+package_icecat-i18n-is() {
+ helper_install is.xpi
+}
+
+package_icecat-i18n-it() {
+ helper_install it.xpi
+}
+
+package_icecat-i18n-ja() {
+ helper_install ja.xpi
+}
+
+package_icecat-i18n-ka() {
+ helper_install ka.xpi
+}
+
+package_icecat-i18n-kk() {
+ helper_install kk.xpi
+}
+
+package_icecat-i18n-kn() {
+ helper_install kn.xpi
+}
+
+package_icecat-i18n-ko() {
+ helper_install ko.xpi
+}
+
+package_icecat-i18n-ku() {
+ helper_install ku.xpi
+}
+
+package_icecat-i18n-lt() {
+ helper_install lt.xpi
+}
+
+package_icecat-i18n-lv() {
+ helper_install lv.xpi
+}
+
+package_icecat-i18n-mk() {
+ helper_install mk.xpi
+}
+
+package_icecat-i18n-ml() {
+ helper_install ml.xpi
+}
+
+package_icecat-i18n-mr() {
+ helper_install mr.xpi
+}
+
+package_icecat-i18n-nb-no() {
+ helper_install nb-NO.xpi
+}
+
+package_icecat-i18n-nl() {
+ helper_install nl.xpi
+}
+
+package_icecat-i18n-nn-no() {
+ helper_install nn-NO.xpi
+}
+
+package_icecat-i18n-oc() {
+ helper_install oc.xpi
+}
+
+package_icecat-i18n-or() {
+ helper_install or.xpi
+}
+
+package_icecat-i18n-pa-in() {
+ helper_install pa-IN.xpi
+}
+
+package_icecat-i18n-pl() {
+ helper_install pl.xpi
+}
+
+package_icecat-i18n-pt-br() {
+ helper_install pt-BR.xpi
+}
+
+package_icecat-i18n-pt-pt() {
+ helper_install pt-PT.xpi
+}
+
+package_icecat-i18n-rm() {
+ helper_install rm.xpi
+}
+
+package_icecat-i18n-ro() {
+ helper_install ro.xpi
+}
+
+package_icecat-i18n-ru() {
+ helper_install ru.xpi
+}
+
+package_icecat-i18n-si() {
+ helper_install si.xpi
+}
+
+package_icecat-i18n-sk() {
+ helper_install sk.xpi
+}
+
+package_icecat-i18n-sl() {
+ helper_install sl.xpi
+}
+
+package_icecat-i18n-sq() {
+ helper_install sq.xpi
+}
+
+package_icecat-i18n-sr() {
+ helper_install sr.xpi
+}
+
+package_icecat-i18n-sv-se() {
+ helper_install sv-SE.xpi
+}
+
+package_icecat-i18n-ta() {
+ helper_install ta.xpi
+}
+
+package_icecat-i18n-ta-lk() {
+ helper_install ta-LK.xpi
+}
+
+package_icecat-i18n-te() {
+ helper_install te.xpi
+}
+
+package_icecat-i18n-th() {
+ helper_install th.xpi
+}
+
+package_icecat-i18n-tr() {
+ helper_install tr.xpi
+}
+
+package_icecat-i18n-uk() {
+ helper_install uk.xpi
+}
+
+package_icecat-i18n-vi() {
+ helper_install vi.xpi
+}
+
+package_icecat-i18n-zh-cn() {
+ helper_install zh-CN.xpi
+}
+
+package_icecat-i18n-zh-tw() {
+ helper_install zh-TW.xpi
+}
+md5sums=('ac673badf7121d1a900140e0b46097e9'
+ '1dfedadf02220db61bdcb540fbb7ea74'
+ '5106327a59502ba2fe9659ed2fa1ffd8'
+ '86d594920c3187d17894f273379ba001'
+ 'df44323f1479c207f36ae966acaca177'
+ 'dfe4fe373d2d9e18232f06fa8de45433'
+ 'de583e1044cb6ede99f19db64c9e0c5c'
+ 'a271aab69901adbe5c8a889da7ff8972'
+ '5390104ada1df2b991354c3da3329e30'
+ '6406407b62595885b584ca84136d8270'
+ 'dfb7ad8dfd38fdf8e924a30880977a13'
+ '4428bf984155897f89749cfe5f910fcf'
+ '6feba509ab3028365a8b4b853e6cd998'
+ 'b1b98f47ecaf7ed3ec7ab184e1c13fec'
+ '7e2a1c9045f6198438ff4abb33d1956d'
+ '73177296126532698050c0e3dc38713e'
+ '9ab176f8215e95c27c8fd19453ce6658'
+ 'dab612e4a36fd94f9713faa2516519d0'
+ '27b9563e0de9c95c5e9f8ef77684943a'
+ '331881f236877682350b48038b6acee2'
+ '02d042e06c163d634a85147d1b25df7b'
+ '6d44a8795befb0c66a3848173ce78cde'
+ 'f3c42dbd9acc8d49c8023faf28ab0a04'
+ '4461eeae500254a20743c1d24087721f'
+ '0de502fe852ccf0cbebcd3ed6aa56c6f'
+ '7b0004c15c34b67f07441ff8a61ca439'
+ '9ee555ded27b4ed6cc122d1f81cc43e5'
+ 'da08376f2dcf7adc4489d2cf1b285c1a'
+ 'cd87d54505c98d3130cd789481370eb7'
+ '73e4f42eac32afa3138d0507beeb7c94'
+ 'feca036a7a3528b76a924a96ee2376d6'
+ 'f9ff8b7784f693c8ee144141bd77ec89'
+ '9ac443760ac93473bb681b68dce0ce9e'
+ 'fff45549bbd3f45f93cf69c9f1dbfb21'
+ 'fdee6085c6bc7c16c196f3b6a08f8292'
+ 'be8e6e50893ff6d9c10f1b659c18e0a2'
+ '169e13b15e633257c943c2afeae6e7d3'
+ '475f1fba4f850d967013932ed8713007'
+ '957fea8d12ec246b23ad2362e5ba984e'
+ '844f06284dca0651a988eff93d1e1f27'
+ '7fdccaa6898c29d00a532f22d207d9ba'
+ '1f5ca0b0d50ddd03df6837c2eb8201e7'
+ '7c3cd78be8d2c9374e3430a44dddcfeb'
+ '2e4f69df6086f2e13c1cb7a519a505fc'
+ '8653651738b94a39c9f23e36b270f2a0'
+ '91e61e1b732c710e3e76fe1704bd6278'
+ '44defc164db921a9c6913ed0a028b88d'
+ '1fd62c063ee7f9debe3c10a5e643ca9e'
+ '636c734b88096b110e21e7ee849330a8'
+ 'dfba8ed6de414502c859ec0b82dc2698'
+ '99cd647c351f08109a0ab4fa46588c27'
+ '9161ff82d15aa4ac392de29a10a97c2a'
+ '24eddc567ae207ea0b9a4100f3079ae0'
+ 'ba618981b0c32354a18d633a19a29717'
+ '3456020be3cba095ba2039267b258efb'
+ '47f341030c25f0624597d765842003b4'
+ 'fc05d94afd59d814fe3e3462dd1674db'
+ 'c790bebfa806844921bdcd459c74c3da'
+ '6af532477ca9433c1681cac460deba41'
+ 'f3eaf1b4a7a7d96f36aa175417f5ef4e'
+ '4c0f818b9f96a8947f6ac672eecc0dff'
+ '2426cb8954c55f1ede778dae154e0ff9'
+ '25187194b5fb18d3ff36e087d8840a79'
+ 'e0e1824ac5886b36e982490bd566904a'
+ '211009367fc06e1b635c9f98d8f39bf9'
+ '8f6a839825d91461c0670cbbc0e42514'
+ '19cf765cf619735f700fc689b8137aa7'
+ 'bff5a282b53f8d5c1e167d958fa83d4b'
+ '194bbdb026e975ed0a026bef51ce2fa4'
+ '21c36c483c1e66945993a8a4e0832e17'
+ 'b33792b548ac0c6ad68dfb82a0277254'
+ '91d6df2002016c265b9c6683134e88a5'
+ '8177494b8b89b3ba465acd0fb9d1056a'
+ '7bd58c8d59c4d80dbd5cd76d08da4387'
+ '2149175a99eebd822bc466f32bb794d9')
+md5sums=('ef5127144a563c0e66878e9d9dad9060'
+ '3c8843dd34f9389754929dda4ea08577'
+ 'b095172617d5a43362ff93a7edafded4'
+ '7ea0d33c7ee8aee883960fa5397675ec'
+ '7fb40884fc197d7071dbf1103b24fc0b'
+ '2d4deb84ffca90054d00b3f955bed75b'
+ '9404ad0aa35f493ff994d26dc372737d'
+ '89171d247936e4776b62a3308765c731'
+ '0852ca6f85b74e526f9adf24ef2e1257'
+ '95725fe317bd63e7f5dc58e98ed9e54a'
+ '2dec4b47e4787e00810723a3b43bb36d'
+ 'b2f074c7d34c8cfe8fd018a7c00c0154'
+ '234c260eb97584a5023d51194d13340c'
+ 'd7bb38eb0bfdb6b1abd591d23236276b'
+ '9326a84b3328840d091936de257f0bf1'
+ '9b7512ffb0df2234db1228f7b682930d'
+ '2cb306a8af1febf1295be47a5e64646b'
+ 'cdb81b8cb8486a1f62dc518da275e118'
+ 'd846e484154a17f37f171aab4fa9f78c'
+ '0829ce389d5a414c2d974901adb51c42'
+ '67d00f3e30ef04ebceaa8401252b2026'
+ '30f16424f0ab2412eef25bdf8f408abd'
+ 'c6ade883495b059f350e282270e82f98'
+ '970d99a254a5ae35bc381e6cb932d021'
+ '3df7537293db4937357572ba2c746b34'
+ '107fbb7588f0cfcdf95b7d6e971d0ef6'
+ '59588be705ec6bf4fd15053a0c53173b'
+ '865575389a1dfaad3972fd49f11bb4ad'
+ '07f22bf372b2cf3732733fdd297f18ac'
+ 'a768cd78d4148ff67c76e58a5012b717'
+ '5273dfa3f62891df0441a029f8fcb364'
+ '6033f9e8eedc8cc05e8bfef4c4ae416e'
+ 'f5000e2882135d5b94e40c08bfc5bf9e'
+ 'ffd9928408006d9394e50c793e3ab741'
+ '81f03fcb89a75f5680a429214cfaaa9a'
+ '493305f335e1a096fe089419c91d7d18'
+ '083174c62bd40da55335c71cacb4aff6'
+ 'b04c32727059a28355657ffd32890dbd'
+ '1ab05551a01701c60d0337f2db085357'
+ 'c98e53d92166180d5d09a6b7e00683fd'
+ '6a1c7571527d8717675de396579aaa95'
+ '45e6901b3819a34957060ad06eaeed79'
+ '73eb55c3765185d3a019a03365ff9ded'
+ 'da9077ff493a2275f631862060c88c2e'
+ 'd598244e7869bc0e744a5b6221d734e6'
+ '2098e3c8f4e809c4c650aebe51a31590'
+ '45176ae4a565001c470d0370f11594d2'
+ '4bbf535bcf6a8262588355a8d2a3f393'
+ '1e5390c99a9bf6481c960da7b4b3848a'
+ 'b20bde9c54f3846c53ed6bc8cd1b6b6a'
+ '8ae4b7936c78054ba13c2a190610aa31'
+ '41ee3859bed4cdbb00730f05bda02235'
+ '5c570e65a73c67a4fe29059a7e5c52c3'
+ '37a07c8e7b51306639d04ed725015534'
+ '08f363bf0478e9efbe52ca118ab35016'
+ '05e8bebc2b29d05b649eba07a995340e'
+ '5feb91b1fee513d1c1f037e2e9a5e962'
+ 'b6be8c9bc1b87ffc52f1c93987fd72da'
+ '897044bc8493f562e54878f56f511664'
+ '950e4f70f17c3e338fe077ccdb882878'
+ '73cfbcc34431ed33456f0ba81f29e3b1'
+ '0d2ec1ba0983746e603196333a3e5ea2'
+ '6368a8af596cf91a44e501dcfa9e720f'
+ '0ce8faa1b7b3e8a021369e2e315e810e'
+ '459315d025e1eff2ae7a06903985df6a'
+ '35d52fbf382e19e0a0dcf8544cb2735d'
+ 'e2102c7f89e0f319a79bf54c2283c288'
+ '2ba748571c6c456d7107717d7782ad0b'
+ 'bfbbd6a6dd6dab9e7a430eecaa37713f'
+ 'fdda73e9b0b6a9d26cb9daf20e077a51'
+ '8fc6508bc4328d788bef0b2f7da5cd8f'
+ '8c9dedc0d2a093c8c6f7133d787e2bea'
+ 'a152a81a8bba44dcc854051b3210de33'
+ 'dbcc1ed55dfef1ca15db1aa5a76822ea'
+ '6cfa98ad2d9e044356fba49a185d6db7')
+md5sums=('ef5127144a563c0e66878e9d9dad9060'
+ '3c8843dd34f9389754929dda4ea08577'
+ 'b095172617d5a43362ff93a7edafded4'
+ '7ea0d33c7ee8aee883960fa5397675ec'
+ '7fb40884fc197d7071dbf1103b24fc0b'
+ '2d4deb84ffca90054d00b3f955bed75b'
+ '9404ad0aa35f493ff994d26dc372737d'
+ '89171d247936e4776b62a3308765c731'
+ '0852ca6f85b74e526f9adf24ef2e1257'
+ '95725fe317bd63e7f5dc58e98ed9e54a'
+ '2dec4b47e4787e00810723a3b43bb36d'
+ 'b2f074c7d34c8cfe8fd018a7c00c0154'
+ '234c260eb97584a5023d51194d13340c'
+ 'd7bb38eb0bfdb6b1abd591d23236276b'
+ '9326a84b3328840d091936de257f0bf1'
+ '9b7512ffb0df2234db1228f7b682930d'
+ '2cb306a8af1febf1295be47a5e64646b'
+ 'cdb81b8cb8486a1f62dc518da275e118'
+ 'd846e484154a17f37f171aab4fa9f78c'
+ '0829ce389d5a414c2d974901adb51c42'
+ '67d00f3e30ef04ebceaa8401252b2026'
+ '30f16424f0ab2412eef25bdf8f408abd'
+ 'c6ade883495b059f350e282270e82f98'
+ '970d99a254a5ae35bc381e6cb932d021'
+ '3df7537293db4937357572ba2c746b34'
+ '107fbb7588f0cfcdf95b7d6e971d0ef6'
+ '59588be705ec6bf4fd15053a0c53173b'
+ '865575389a1dfaad3972fd49f11bb4ad'
+ '07f22bf372b2cf3732733fdd297f18ac'
+ 'a768cd78d4148ff67c76e58a5012b717'
+ '5273dfa3f62891df0441a029f8fcb364'
+ '6033f9e8eedc8cc05e8bfef4c4ae416e'
+ 'f5000e2882135d5b94e40c08bfc5bf9e'
+ 'ffd9928408006d9394e50c793e3ab741'
+ '81f03fcb89a75f5680a429214cfaaa9a'
+ '493305f335e1a096fe089419c91d7d18'
+ '083174c62bd40da55335c71cacb4aff6'
+ 'b04c32727059a28355657ffd32890dbd'
+ '1ab05551a01701c60d0337f2db085357'
+ 'c98e53d92166180d5d09a6b7e00683fd'
+ '6a1c7571527d8717675de396579aaa95'
+ '45e6901b3819a34957060ad06eaeed79'
+ '73eb55c3765185d3a019a03365ff9ded'
+ 'da9077ff493a2275f631862060c88c2e'
+ 'd598244e7869bc0e744a5b6221d734e6'
+ '2098e3c8f4e809c4c650aebe51a31590'
+ '45176ae4a565001c470d0370f11594d2'
+ '4bbf535bcf6a8262588355a8d2a3f393'
+ '1e5390c99a9bf6481c960da7b4b3848a'
+ 'b20bde9c54f3846c53ed6bc8cd1b6b6a'
+ '8ae4b7936c78054ba13c2a190610aa31'
+ '41ee3859bed4cdbb00730f05bda02235'
+ '5c570e65a73c67a4fe29059a7e5c52c3'
+ '37a07c8e7b51306639d04ed725015534'
+ '08f363bf0478e9efbe52ca118ab35016'
+ '05e8bebc2b29d05b649eba07a995340e'
+ '5feb91b1fee513d1c1f037e2e9a5e962'
+ 'b6be8c9bc1b87ffc52f1c93987fd72da'
+ '897044bc8493f562e54878f56f511664'
+ '950e4f70f17c3e338fe077ccdb882878'
+ '73cfbcc34431ed33456f0ba81f29e3b1'
+ '0d2ec1ba0983746e603196333a3e5ea2'
+ '6368a8af596cf91a44e501dcfa9e720f'
+ '0ce8faa1b7b3e8a021369e2e315e810e'
+ '459315d025e1eff2ae7a06903985df6a'
+ '35d52fbf382e19e0a0dcf8544cb2735d'
+ 'e2102c7f89e0f319a79bf54c2283c288'
+ '2ba748571c6c456d7107717d7782ad0b'
+ 'bfbbd6a6dd6dab9e7a430eecaa37713f'
+ 'fdda73e9b0b6a9d26cb9daf20e077a51'
+ '8fc6508bc4328d788bef0b2f7da5cd8f'
+ '8c9dedc0d2a093c8c6f7133d787e2bea'
+ 'a152a81a8bba44dcc854051b3210de33'
+ 'dbcc1ed55dfef1ca15db1aa5a76822ea'
+ '6cfa98ad2d9e044356fba49a185d6db7')
+md5sums=('bc329dd9e8fee226eac9f0e9448fd4f3'
+ '490f3ffae72c1ed9bed06586e301e9b0'
+ '6d90e42d99b5c29537aa9177f9aa7e28'
+ '8d70a32c273c285e5291e7877b352ae5'
+ 'ac7f81d1e3ae43752ff9683954e2824d'
+ '57e51cc60d7a1591ae5841723274fd3e'
+ '0e4d68d634448f2d489a1324766e8b34'
+ '7aafb67e6921c0c93f3cfec578fd9f31'
+ 'd4244cf8f84e74c65b292530206391e5'
+ '036996d5469fa7a0e6de57c68c5944d7'
+ '53b0a6f1e381885e605748507acef788'
+ '3248eeb7a871fbb8872a121dfb7ca919'
+ '5b37a6bd3a15b74457359c74efbfd169'
+ 'fac369754691a113f3c9f8c88a4a012a'
+ '009f7e8b2cdb2a196c48d50435e6b72b'
+ '860f197d38767c830557feef6b895b33'
+ '748ae21adabaef7e52bc94855fd84a33'
+ '8a4aef97929e32e6c9844f63eed0b485'
+ '52a667e08b01cbe9747c723197a46540'
+ '5245a68ee0d0ec8e24a02ed54212aa46'
+ '646a3fb1435ed454efc3ccf577e07740'
+ 'eb8e94480d73711827c509a2b4d2e662'
+ '043d249074995285d9a36052217b9749'
+ '6e7e435671ff8fae8005f5bd2f3923af'
+ '552b075a52c63c5ed5e8d4806d845708'
+ '5483b2fb336f50398660f6e03948fc28'
+ '7ef6886607d9ee85aa13eba4212c561b'
+ 'ca1af2844af82c8d8dd1452817b49770'
+ '64478bd7cc33112787edbe6b8e995531'
+ 'b70331334dce71bdada03b5bd173aa1b'
+ '02bafd80997eb1178da66afb17a2ae91'
+ 'bfc04e174fac798de0216a84a46d6ff7'
+ '15b90532ab4dbbbfd9fe2006a8544ab5'
+ 'bbb1b58bf492e567ec9f61485b54ca1b'
+ '1de6b016519562aec9e827b618829db5'
+ 'b864a2de6f0963449e49f643d201beb5'
+ '32ac581c2ad1b81554fc778cf96a0496'
+ '0f9f8c01fd73d5f27db950681f2017d6'
+ 'aad74ba00f4f8813713e80e0675d4d8d'
+ '18ed7eabc78f20c28330e5788d738e35'
+ '4d9969d4c2f9d2cf441643a87bf39cc9'
+ '1fdce5853d59e82bb3735ec231ed5293'
+ '0c673f70ef382384fc2eefcc3465b61c'
+ '8250b6505b62adf3ea0b2030e9fe90c4'
+ '00cf2b73d324ff5ae8cfe6b80001ae63'
+ 'cb221e57dab07142296909f0989e3c2c'
+ '791724bf937c697ff480fe5e9d1e9347'
+ '02d0d0415b977266276e0b0826b297d9'
+ '803b246251d09fed792d37cdcd7d72c7'
+ 'f15ecfb3296a670418651c560a072dd4'
+ 'c4980ec2ce04b26443fbf37d6c35a153'
+ '1568893645ba79d38b5e0fc5755a9285'
+ 'f81e1b1f80139a52a98276e0579ceb5f'
+ '5b549460ee73b178ec7128270406a3db'
+ 'd9f84ff9ec99064cfeb1966e88147394'
+ 'e6267db75f8741d038d535cdc6504807'
+ '58a3f9640952aba203055a8f44bf1f1f'
+ '4e318b28abda03ecb465bbab5f7089d3'
+ 'ed56d3fd6cdb9e69b72b32aa63e73587'
+ '0196a184af5d1dcc5ac959660c798b92'
+ '5ee1ee1250cfcb87b805f044b19964d5'
+ '3d4ca7b8fc648234cb7f0dcea76cd2dc'
+ 'aedb239f247c05bea7105e86abdd26db'
+ '81d171701bce0a4d879acd9c3d5f94f5'
+ '67c402b52220ebab02ad6078d0def0ef'
+ 'eb4ba4695a94a2d07972853e9fbf610a'
+ '187de792dfffb2cc87754aa8b3c179b3'
+ '9548ecf49a3228381c68cd7c0c3208c7'
+ '79226a47211515b9e99a08d551fb3fe0'
+ 'ea6fc42b8c4b0205a59d8be6abf58540'
+ 'f4b38cc9b3c865071fa6ade4436095cb'
+ 'd611a255d1a5b3c0e47fcf3e12ba30a5'
+ 'e557ea072669d2d2c7c2f2eb62e38e4d'
+ 'd2e5670188be4358d4126c3d594dcb4a'
+ 'a28c459626e65ae4e597dbecb0b95def')
diff --git a/libre/icecat/PKGBUILD b/libre/icecat/PKGBUILD
new file mode 100644
index 000000000..57396b374
--- /dev/null
+++ b/libre/icecat/PKGBUILD
@@ -0,0 +1,120 @@
+# Maintainer: Figue <ffigue at gmail>
+# Contributor: Figue <ffigue at gmail>
+# Contributor (Parabola): fauno <fauno@kiwwwi.com.ar>
+# Contrubutor (Parabola): vando <facundo@esdebian.org>
+# Thank you very much to the older contributors:
+# Contributor: evr <evanroman at gmail>
+# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com>
+
+# Changelog
+# =3.6.13
+# * Installed Privacy Extension by default
+# * DDG is now the default search engine
+# =3.6.9
+# * Added libnotify as required by configure
+# =3.6.7
+# * Added duckduckgo.com secure search engine
+# =3.6.4
+# * Disabled SafeBrowsing until we find a non-google alternative (25/6/10)
+# * Disabled ContentHandlers and other Google/Yahoo! related services
+
+pkgname=icecat
+pkgver=4.0rc2
+_pkgver=4.0-rc2
+pkgrel=3
+_xulver=2.0
+pkgdesc="GNU version of the Firefox browser. SafeBrowsing and other Google services disabled!"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/gnuzilla/"
+license=('GPL2' 'MPL' 'LGPL')
+depends=("xulrunner=${_xulver}" 'desktop-file-utils')
+makedepends=('zip' 'pkg-config' 'diffutils' 'python2' 'wireless_tools' 'yasm' 'mesa')
+provides=('firefox')
+conflicts=('firefox')
+replaces=("firefox=${_pkgver}")
+install=icecat.install
+#source=(http://ftp.gnu.org/gnu/gnuzilla/${pkgver}/${pkgname}-${pkgver}.tar.xz
+source=(ftp://alpha.gnu.org/gnu/gnuzilla/${_pkgver}/${pkgname}-${_pkgver}.tar.bz2
+ mozconfig
+ icecat.desktop
+ icecat-safe.desktop
+ mozilla-firefox-1.0-lang.patch
+ xulrunner-copy-stub.patch
+# Search engines
+ arch-linux-wiki.xml
+ internet-archive.xml
+ jamendo-en.xml
+ logless-search.xml
+ scroogle-ssl-english.xml
+ yacy.xml
+ duck-duck-go-ssl.xml
+ duck-duck-go-lite.xml
+# Default options
+ firefox.js
+ region.properties)
+
+build() {
+
+ ICECATDIR="/usr/lib/${pkgname}-4.0" && export ICECATDIR
+
+ msg2 "Patching some files..."
+ cd "${srcdir}/${pkgname}-${_pkgver}/"
+ patch -Np1 -i "${srcdir}/mozilla-firefox-1.0-lang.patch"
+ patch -Np0 -i "${srcdir}/xulrunner-copy-stub.patch"
+
+ cp --remove-destination ${srcdir}/region.properties ./browser/locales/en-US/chrome/browser-region/
+ cp --remove-destination ${srcdir}/firefox.js ./browser/app/profile/
+
+ msg2 "Starting build..."
+ cp "${srcdir}/mozconfig" .mozconfig
+ unset CFLAGS
+ unset CXXFLAGS
+
+ export LDFLAGS="-Wl,-rpath,${ICECATDIR}"
+
+ #make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
+ ./configure
+
+ touch config*
+
+ make MOZ_MAKE_FLAGS="${MAKEFLAGS}"
+ msg2 "Build complete"
+}
+
+package() {
+ ICECATDIR="/usr/lib/${pkgname}-4.0" && export ICECATDIR
+
+ cd "${srcdir}/${pkgname}-${_pkgver}/"
+ #make -j1 -f client.mk DESTDIR="${pkgdir}" install
+ make install DESTDIR="${pkgdir}"
+
+ msg2 "Finishing..."
+
+ install -m755 -d ${pkgdir}/usr/share/applications
+ install -m755 -d ${pkgdir}/usr/share/pixmaps
+ install -m644 ${srcdir}/${pkgname}-${_pkgver}/browser/branding/unofficial/default48.png ${pkgdir}/usr/share/pixmaps/icecat.png
+ install -m644 ${srcdir}/icecat.desktop ${pkgdir}/usr/share/applications/
+ install -m644 ${srcdir}/icecat-safe.desktop ${pkgdir}/usr/share/applications/
+
+ msg2 "Removing proprietary and anti-privacy search engines"
+ rm -f ${pkgdir}${ICECATDIR}/searchplugins/{google,answers,amazondotcom,eBay,yahoo,bing}.xml
+ msg2 "And provide better ones..."
+ install -m755 -d ${pkgdir}${ICECATDIR}/searchplugins/
+ install -m644 ${srcdir}/*.xml ${pkgdir}${ICECATDIR}/searchplugins/
+}
+md5sums=('2e63f5e14540ec58bc8829daa542caf2'
+ '436db1f6167ffe82fcd71a53ffd80d0e'
+ 'e81ad01dbc16ba28bf92ba4b7c309ca7'
+ 'd93fe402b87cd000a869e1fd6badc6c9'
+ 'bd5db57c23c72a02a489592644f18995'
+ '5a1938673a367b20ecfa009a5eb767aa'
+ '3403175087e584a8c5e840cc62310cd9'
+ '462c68585461f8cdc23c93c46f6ee4cf'
+ '2d492295c4308f9bba9ece28d8b3af2d'
+ '937ac0e5392b060d93bd33e761fbfa51'
+ 'cf97082e77e3ef5f1bd74b1db9329965'
+ '24528ca3f7f1e1a0ba735231aa3ac1de'
+ 'c5f00b6b24222aacd5a749d1f59c4d24'
+ 'e1bda0854de7d764f7401c81bb82b5ef'
+ '9952048383966926eea6d67384102425'
+ 'f1c76e7e244257856a386ca2de69bdf0')
diff --git a/libre/icecat/arch-linux-wiki.xml b/libre/icecat/arch-linux-wiki.xml
new file mode 100644
index 000000000..9e21b92e2
--- /dev/null
+++ b/libre/icecat/arch-linux-wiki.xml
@@ -0,0 +1,12 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Arch Linux Wiki</os:ShortName>
+<os:Description>searches on the arch linux wiki</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAG8SURBVDiNjZM/iBNBFMZ/MzvJunfmYFfwtjgbEzk4jhSKoNa2goiNaGXhCaYRDAiHNlprcYuVhaCNWIj4BxSusBJRhNtDRTF6nCkWPUQMJJe4s2PhBhIvE/yaebz3vY/fDIwwxmBTGMX7JwtSNRbmX9g8yrr9V+ccISYAa4CwEey6sbpDCJpFR6rZwJ19fLzyeZRP2pIni3LBU3IbGNVJs/M2nzXAU3K3pySeknTS7OTZZ+v+fwccuvPhqOuIV64Sy56S9LTxm796i6O8W95g3633xcBTDWOYSY35kRl8bYzwHNkqFWX5/rHy97EEgafqEwU54yqBMQRdnYnf2rCps1JHm0tjCeZuvpvaE7hrG+3U/9rq0dPDdK4jWlOuU1k9PfdtJMGmzupvkrbf+NntLz8A7vbnXW1KG530wkiCMIp3Ag1gez57lNSqR/LZbeBU3m8D5aRWTf4luDywDPBwoH6anwb4AtSHrhBGcRk4w7A+DdRv+8SAC9wbCgCuAoW8XgOuAR8HAprAdWAdqADLYRSfABDTSyt7gdfAE+BKUqu+ZIzCKD4ILAKHgXkxvbRyEXie1KrWHzcm6MAfcSib4f24CrwAAAAASUVORK5CYII=</os:Image>
+<UpdateInterval>7</UpdateInterval>
+<UpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/archlinux_wiki.xml</UpdateUrl>
+<IconUpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/archlinux_wiki.png</IconUpdateUrl>
+<SearchForm>http://wiki.archlinux.org/index.php/Main_Page</SearchForm>
+<os:Url type="text/html" method="GET" template="http://wiki.archlinux.org/index.php/Special:Search?go=Go&amp;search={searchTerms}">
+</os:Url>
+</SearchPlugin> \ No newline at end of file
diff --git a/libre/icecat/duck-duck-go-lite.xml b/libre/icecat/duck-duck-go-lite.xml
new file mode 100644
index 000000000..3142d3410
--- /dev/null
+++ b/libre/icecat/duck-duck-go-lite.xml
@@ -0,0 +1,8 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Duck Duck Go (Lite)</os:ShortName>
+<os:Description>Search Duck Duck Go (Lite)</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
+<os:Url type="text/html" method="GET" template="https://duckduckgo.com/lite/?q={searchTerms}">
+</os:Url>
+</SearchPlugin> \ No newline at end of file
diff --git a/libre/icecat/duck-duck-go-ssl.xml b/libre/icecat/duck-duck-go-ssl.xml
new file mode 100644
index 000000000..4fb1391ab
--- /dev/null
+++ b/libre/icecat/duck-duck-go-ssl.xml
@@ -0,0 +1,8 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Duck Duck Go (SSL)</os:ShortName>
+<os:Description>Search Duck Duck Go (SSL)</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAANcNAADXDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJmlk8pf6+v3s/v7+++zr/fcnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnIOwBJyDscCcg7PZttJ7/7Pfs//////++xO7/S5GA/ycg7P8nIOz2JyDscCcg7AEAAAAAAAAAAAAAAAAnIOwBJyDstScg7P8nIOz/Y8p5/2fHZf9Yv0z/YcF2/1rBUv8nIOz/JyDs/ycg7P8nIOy1JyDsAQAAAAAAAAAAJyDscCcg7P8nIOz/JyDs/4jQoP/p9+n//////05X3v9LkYD/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAJyDsJicg7PYnIOz/JyDs/zUu7f/+/v////////////89N+7/JyDs/yUo7f8nIOz/JyDs/ycg7P8nIOz2JyDsJicg7IAnIOz/JyDs/ycg7P9hXPH////////////t/P//GIr2/wfD+/8Gyfz/DKv5/yM57/8nIOz/JyDs/ycg7H8nIOyzJyDs/ycg7P8nIOz/jov1////////////Otz9/w3G/P8cWfH/JSvt/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDs5icg7P8nIOz/JyDs/7u5+f///////////27l/v8E0v3/BNL9/wTQ/f8Oofn/IT7v/ycg7P8nIOz/JyDs5icg7OYnIOz/JyDs/ycg7P/p6P3/uWsC////////////5fr//6Po/f8Thfb/DKv5/w6f+f8nIOz/JyDs/ycg7OYnIOyzJyDs/ycg7P8nIOz/9/b+/////////////////7lrAv/V1Pv/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOyzJyDsgCcg7P8nIOz/JyDs/8/N+///////////////////////iIX1/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDsfycg7CYnIOz2JyDs/ycg7P9FP+7/q6n4/+7u/f/n5v3/fXn0/yoj7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7CYAAAAAJyDscCcg7P8nIOz/wsD6/+no/f/Y1/z/eHTz/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7HAAAAAAAAAAACcg7AEnIOy1JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs/ycg7LUnIOwBAAAAAAAAAAAAAAAAJyDsAScg7HAnIOz2JyDs/ycg7P8nIOz/JyDs/ycg7P8nIOz/JyDs9icg7HAnIOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyDsJicg7IAnIOyzJyDs5icg7OYnIOyzJyDsgCcg7CYAAAAAAAAAAAAAAAAAAAAA+B8AAPAPAADAAwAAwAMAAIABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAACAAQAAwAMAAMADAADwDwAA+B8AAA==</os:Image>
+<os:Url type="text/html" method="GET" template="https://duckduckgo.com/?q={searchTerms}">
+</os:Url>
+</SearchPlugin> \ No newline at end of file
diff --git a/libre/icecat/firefox-version.patch b/libre/icecat/firefox-version.patch
new file mode 100644
index 000000000..85a8fb18d
--- /dev/null
+++ b/libre/icecat/firefox-version.patch
@@ -0,0 +1,12 @@
+diff -Nur mozilla-2.0.orig//browser/installer/Makefile.in mozilla-2.0/browser/installer/Makefile.in
+--- mozilla-2.0.orig//browser/installer/Makefile.in 2011-03-03 14:11:20.000000000 -0800
++++ mozilla-2.0/browser/installer/Makefile.in 2011-03-13 10:08:45.896702838 -0700
+@@ -43,6 +43,8 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
++MOZ_APP_VERSION="4.0"
++
+ include $(topsrcdir)/config/rules.mk
+
+ MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
diff --git a/libre/icecat/firefox.js b/libre/icecat/firefox.js
new file mode 100644
index 000000000..2300e65ce
--- /dev/null
+++ b/libre/icecat/firefox.js
@@ -0,0 +1,1072 @@
+# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+# ***** BEGIN LICENSE BLOCK *****
+# Version: MPL 1.1/GPL 2.0/LGPL 2.1
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# The Original Code is mozilla.org code.
+#
+# The Initial Developer of the Original Code is
+# Netscape Communications Corporation.
+# Portions created by the Initial Developer are Copyright (C) 1998
+# the Initial Developer. All Rights Reserved.
+#
+# Contributor(s):
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 2 or later (the "GPL"), or
+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+# in which case the provisions of the GPL or the LGPL are applicable instead
+# of those above. If you wish to allow use of your version of this file only
+# under the terms of either the GPL or the LGPL, and not to allow others to
+# use your version of this file under the terms of the MPL, indicate your
+# decision by deleting the provisions above and replace them with the notice
+# and other provisions required by the GPL or the LGPL. If you do not delete
+# the provisions above, a recipient may use your version of this file under
+# the terms of any one of the MPL, the GPL or the LGPL.
+#
+# ***** END LICENSE BLOCK *****
+
+// XXX Toolkit-specific preferences should be moved into toolkit.js
+
+#filter substitution
+
+# SYNTAX HINTS: dashes are delimiters. Use underscores instead.
+# The first character after a period must be alphabetic.
+
+#ifdef XP_UNIX
+#ifndef XP_MACOSX
+#define UNIX_BUT_NOT_MAC
+#endif
+#endif
+
+pref("general.startup.browser", true);
+
+pref("browser.chromeURL","chrome://browser/content/");
+pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindow.xul");
+
+// Enables some extra Extension System Logging (can reduce performance)
+pref("extensions.logging.enabled", false);
+
+// Preferences for AMO integration
+pref("extensions.getAddons.cache.enabled", true);
+pref("extensions.getAddons.maxResults", 15);
+pref("extensions.getAddons.get.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+pref("extensions.webservice.discoverURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+
+// Blocklist preferences
+pref("extensions.blocklist.enabled", true);
+pref("extensions.blocklist.interval", 86400);
+// Controls what level the blocklist switches from warning about items to forcibly
+// blocking them.
+pref("extensions.blocklist.level", 2);
+pref("extensions.blocklist.url", "https://addons.mozilla.org/blocklist/3/%APP_ID%/%APP_VERSION%/%PRODUCT%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/%PING_COUNT%/%TOTAL_PING_COUNT%/%DAYS_SINCE_LAST_PING%/");
+pref("extensions.blocklist.detailsURL", "https://www.mozilla.com/%LOCALE%/blocklist/");
+
+pref("extensions.update.autoUpdateDefault", true);
+
+// Dictionary download preference
+pref("browser.dictionaries.download.url", "http://gnuzilla.gnu.org");
+
+// Update Timer Manager preferences
+// Interval: When all registered timers should be checked (in milliseconds)
+// default=10 minutes
+pref("app.update.timer", 600000);
+
+// App-specific update preferences
+
+// The interval to check for updates (app.update.interval) is defined in
+// firefox-branding.js
+
+// Alternative windowtype for an application update user interface window. When
+// a window with this windowtype is open the application update service won't
+// open the normal application update user interface window.
+pref("app.update.altwindowtype", "Browser:About");
+
+// Enables some extra Application Update Logging (can reduce performance)
+pref("app.update.log", false);
+
+// The number of general background check failures to allow before notifying the
+// user of the failure. User initiated update checks always notify the user of
+// the failure.
+pref("app.update.backgroundMaxErrors", 10);
+
+// When |app.update.cert.requireBuiltIn| is true or not specified the
+// final certificate and all certificates the connection is redirected to before
+// the final certificate for the url specified in the |app.update.url|
+// preference must be built-in.
+pref("app.update.cert.requireBuiltIn", true);
+
+// When |app.update.cert.checkAttributes| is true or not specified the
+// certificate attributes specified in the |app.update.certs.| preference branch
+// are checked against the certificate for the url specified by the
+// |app.update.url| preference.
+pref("app.update.cert.checkAttributes", true);
+
+// The number of certificate attribute check failures to allow for background
+// update checks before notifying the user of the failure. User initiated update
+// checks always notify the user of the certificate attribute check failure.
+pref("app.update.cert.maxErrors", 5);
+
+// The |app.update.certs.| preference branch contains branches that are
+// sequentially numbered starting at 1 that contain attribute name / value
+// pairs for the certificate used by the server that hosts the update xml file
+// as specified in the |app.update.url| preference. When these preferences are
+// present the following conditions apply for a successful update check:
+// 1. the uri scheme must be https
+// 2. the preference name must exist as an attribute name on the certificate and
+// the value for the name must be the same as the value for the attribute name
+// on the certificate.
+// If these conditions aren't met it will be treated the same as when there is
+// no update available. This validation will not be performed when using the
+// |app.update.url.override| preference for update checking.
+pref("app.update.certs.1.issuerName", "OU=Equifax Secure Certificate Authority,O=Equifax,C=US");
+pref("app.update.certs.1.commonName", "aus3.mozilla.org");
+
+pref("app.update.certs.2.issuerName", "CN=Thawte SSL CA,O=\"Thawte, Inc.\",C=US");
+pref("app.update.certs.2.commonName", "aus3.mozilla.org");
+
+// Whether or not app updates are enabled
+pref("app.update.enabled", false);
+
+// This preference turns on app.update.mode and allows automatic download and
+// install to take place. We use a separate boolean toggle for this to make
+// the UI easier to construct.
+pref("app.update.auto", false);
+
+// Defines how the Application Update Service notifies the user about updates:
+//
+// AUM Set to: Minor Releases: Major Releases:
+// 0 download no prompt download no prompt
+// 1 download no prompt download no prompt if no incompatibilities
+// 2 download no prompt prompt
+//
+// See chart in nsUpdateService.js source for more details
+//
+pref("app.update.mode", 1);
+
+// If set to true, the Update Service will present no UI for any event.
+pref("app.update.silent", false);
+
+// Update service URL:
+pref("app.update.url", "https://aus3.mozilla.org/update/3/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml");
+// app.update.url.manual is in branding section
+// app.update.url.details is in branding section
+
+// User-settable override to app.update.url for testing purposes.
+//pref("app.update.url.override", "");
+
+// app.update.interval is in branding section
+
+// Interval: Time before prompting the user again to restart to install the
+// latest download (in seconds) default=1 day
+pref("app.update.nagTimer.restart", 86400);
+
+// Give the user x seconds to react before showing the big UI. default=12 hours
+pref("app.update.promptWaitTime", 43200);
+// Show the Update Checking/Ready UI when the user was idle for x seconds
+pref("app.update.idletime", 60);
+
+// Whether or not we show a dialog box informing the user that the update was
+// successfully applied. This is off in Firefox by default since we show a
+// upgrade start page instead! Other apps may wish to show this UI, and supply
+// a whatsNewURL field in their brand.properties that contains a link to a page
+// which tells users what's new in this new update.
+pref("app.update.showInstalledUI", false);
+
+// 0 = suppress prompting for incompatibilities if there are updates available
+// to newer versions of installed addons that resolve them.
+// 1 = suppress prompting for incompatibilities only if there are VersionInfo
+// updates available to installed addons that resolve them, not newer
+// versions.
+pref("app.update.incompatible.mode", 0);
+
+// Symmetric (can be overridden by individual extensions) update preferences.
+// e.g.
+// extensions.{GUID}.update.enabled
+// extensions.{GUID}.update.url
+// .. etc ..
+//
+pref("extensions.update.enabled", true);
+pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%&currentAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%");
+pref("extensions.update.interval", 86400); // Check for updates to Extensions and
+ // Themes every day
+// Non-symmetric (not shared by extensions) extension-specific [update] preferences
+pref("extensions.getMoreExtensionsURL", "http://www.gnu.org/software/gnuzilla/addons.html#addons");
+pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html#themes");
+pref("extensions.dss.enabled", false); // Dynamic Skin Switching
+pref("extensions.dss.switchPending", false); // Non-dynamic switch pending after next
+ // restart.
+
+pref("extensions.{972ce4c6-7e08-4474-a285-3208198ce6fd}.name", "chrome://browser/locale/browser.properties");
+pref("extensions.{972ce4c6-7e08-4474-a285-3208198ce6fd}.description", "chrome://browser/locale/browser.properties");
+
+pref("xpinstall.whitelist.add", "addons.mozilla.org");
+pref("xpinstall.whitelist.add.36", "getpersonas.com");
+
+pref("lightweightThemes.update.enabled", true);
+
+pref("keyword.enabled", true);
+// Override the default keyword.URL. Empty value means
+// "use the search service's default engine"
+pref("keyword.URL", "");
+
+pref("general.useragent.locale", "@AB_CD@");
+pref("general.skins.selectedSkin", "classic/1.0");
+pref("general.useragent.extra.firefox", "@APP_UA_NAME@/@APP_VERSION@ (like Firefox/@APP_VERSION@)");
+pref("general.smoothScroll", false);
+#ifdef UNIX_BUT_NOT_MAC
+pref("general.autoScroll", false);
+#else
+pref("general.autoScroll", true);
+#endif
+
+// Whether or not the application should check at startup each time if it
+// is the default browser.
+pref("browser.shell.checkDefaultBrowser", true);
+
+// 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session
+// The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore
+pref("browser.startup.page", 1);
+pref("browser.startup.homepage", "chrome://branding/locale/browserconfig.properties");
+
+// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into
+// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream
+// repackager of this code using an alternate snippet url, please keep your users safe
+pref("browser.aboutHomeSnippets.updateUrl", "https://snippets.mozilla.com/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/");
+
+pref("browser.enable_automatic_image_resizing", true);
+pref("browser.chrome.site_icons", true);
+pref("browser.chrome.favicons", true);
+// browser.warnOnQuit == false will override all other possible prompts when quitting or restarting
+pref("browser.warnOnQuit", true);
+pref("browser.warnOnRestart", false);
+// browser.showQuitWarning specifically controls the quit warning dialog. We
+// might still show the window closing dialog with showQuitWarning == false.
+pref("browser.showQuitWarning", false);
+pref("browser.fullscreen.autohide", true);
+pref("browser.fullscreen.animateUp", 1);
+pref("browser.overlink-delay", 70);
+
+#ifdef UNIX_BUT_NOT_MAC
+pref("browser.urlbar.clickSelectsAll", false);
+#else
+pref("browser.urlbar.clickSelectsAll", true);
+#endif
+#ifdef UNIX_BUT_NOT_MAC
+pref("browser.urlbar.doubleClickSelectsAll", true);
+#else
+pref("browser.urlbar.doubleClickSelectsAll", false);
+#endif
+pref("browser.urlbar.autoFill", false);
+// 0: Match anywhere (e.g., middle of words)
+// 1: Match on word boundaries and then try matching anywhere
+// 2: Match only on word boundaries (e.g., after / or .)
+// 3: Match at the beginning of the url or title
+pref("browser.urlbar.matchBehavior", 1);
+pref("browser.urlbar.filter.javascript", true);
+
+// the maximum number of results to show in autocomplete when doing richResults
+pref("browser.urlbar.maxRichResults", 12);
+// The amount of time (ms) to wait after the user has stopped typing
+// before starting to perform autocomplete. 50 is the default set in
+// autocomplete.xml.
+pref("browser.urlbar.delay", 50);
+
+// The special characters below can be typed into the urlbar to either restrict
+// the search to visited history, bookmarked, tagged pages; or force a match on
+// just the title text or url.
+pref("browser.urlbar.restrict.history", "^");
+pref("browser.urlbar.restrict.bookmark", "*");
+pref("browser.urlbar.restrict.tag", "+");
+pref("browser.urlbar.restrict.openpage", "%");
+pref("browser.urlbar.restrict.typed", "~");
+pref("browser.urlbar.match.title", "#");
+pref("browser.urlbar.match.url", "@");
+
+// The default behavior for the urlbar can be configured to use any combination
+// of the restrict or match filters with each additional filter restricting
+// more (intersection). Add the following values to set the behavior as the
+// default: 1: history, 2: bookmark, 4: tag, 8: title, 16: url, 32: typed,
+// 64: javascript, 128: tabs
+// E.g., 0 = show all results (no filtering), 1 = only visited pages in history,
+// 2 = only bookmarks, 3 = visited bookmarks, 1+16 = history matching in the url
+pref("browser.urlbar.default.behavior", 0);
+
+// Number of milliseconds to wait for the http headers (and thus
+// the Content-Disposition filename) before giving up and falling back to
+// picking a filename without that info in hand so that the user sees some
+// feedback from their action.
+pref("browser.download.saveLinkAsFilenameTimeout", 1000);
+
+pref("browser.download.useDownloadDir", true);
+
+#ifdef WINCE
+pref("browser.download.folderList", 2);
+pref("browser.download.dir", "\\Storage Card");
+#else
+pref("browser.download.folderList", 1);
+#endif
+pref("browser.download.manager.showAlertOnComplete", true);
+pref("browser.download.manager.showAlertInterval", 2000);
+pref("browser.download.manager.retention", 2);
+pref("browser.download.manager.showWhenStarting", true);
+pref("browser.download.manager.closeWhenDone", false);
+pref("browser.download.manager.focusWhenStarting", false);
+pref("browser.download.manager.flashCount", 2);
+pref("browser.download.manager.addToRecentDocs", true);
+pref("browser.download.manager.quitBehavior", 0);
+pref("browser.download.manager.scanWhenDone", true);
+pref("browser.download.manager.resumeOnWakeDelay", 10000);
+
+// search engines URL
+pref("browser.search.searchEnginesURL", "http://www.gnu.org/software/gnuzilla/addons.html#search%20engines");
+
+// pointer to the default engine name
+pref("browser.search.defaultenginename", "chrome://browser-region/locale/region.properties");
+
+// disable logging for the search service by default
+pref("browser.search.log", false);
+
+// Ordering of Search Engines in the Engine list.
+pref("browser.search.order.1", "chrome://browser-region/locale/region.properties");
+pref("browser.search.order.2", "chrome://browser-region/locale/region.properties");
+pref("browser.search.order.3", "chrome://browser-region/locale/region.properties");
+
+// search bar results always open in a new tab
+pref("browser.search.openintab", false);
+
+// send ping to the server to update
+pref("browser.search.update", true);
+
+// disable logging for the search service update system by default
+pref("browser.search.update.log", false);
+
+// Check whether we need to perform engine updates every 6 hours
+pref("browser.search.update.interval", 21600);
+
+// Whether or not microsummary and generator updates are enabled
+pref("browser.microsummary.enabled", true);
+pref("browser.microsummary.updateGenerators", true);
+
+// enable search suggestions by default
+pref("browser.search.suggest.enabled", true);
+
+pref("browser.sessionhistory.max_entries", 50);
+
+// handle links targeting new windows
+// 0=default window, 1=current window/tab, 2=new window, 3=new tab in most recent window
+pref("browser.link.open_newwindow", 3);
+
+// 0: no restrictions - divert everything
+// 1: don't divert window.open at all
+// 2: don't divert window.open with features
+pref("browser.link.open_newwindow.restriction", 2);
+
+// Tabbed browser
+#ifndef WINCE
+pref("browser.tabs.autoHide", false);
+#else
+pref("browser.tabs.autoHide", true);
+#endif
+pref("browser.tabs.closeWindowWithLastTab", true);
+pref("browser.tabs.insertRelatedAfterCurrent", true);
+pref("browser.tabs.warnOnClose", true);
+pref("browser.tabs.warnOnOpen", true);
+pref("browser.tabs.maxOpenBeforeWarn", 15);
+pref("browser.tabs.loadInBackground", true);
+pref("browser.tabs.opentabfor.middleclick", true);
+pref("browser.tabs.loadDivertedInBackground", false);
+pref("browser.tabs.loadBookmarksInBackground", false);
+pref("browser.tabs.tabClipWidth", 140);
+pref("browser.tabs.animate", true);
+pref("browser.tabs.drawInTitlebar", true);
+
+// Where to show tab close buttons:
+// 0 on active tab only
+// 1 on all tabs until tabClipWidth is reached, then active tab only
+// 2 no close buttons at all
+// 3 at the end of the tabstrip
+pref("browser.tabs.closeButtons", 1);
+
+// When tabs opened by links in other tabs via a combination of
+// browser.link.open_newwindow being set to 3 and target="_blank" etc are
+// closed:
+// true return to the tab that opened this tab (its owner)
+// false return to the adjacent tab (old default)
+pref("browser.tabs.selectOwnerOnClose", true);
+
+pref("browser.allTabs.previews", false);
+pref("browser.ctrlTab.previews", false);
+pref("browser.ctrlTab.recentlyUsedLimit", 7);
+
+// By default, do not export HTML at shutdown.
+// If true, at shutdown the bookmarks in your menu and toolbar will
+// be exported as HTML to the bookmarks.html file.
+pref("browser.bookmarks.autoExportHTML", false);
+
+// The maximum number of daily bookmark backups to
+// keep in {PROFILEDIR}/bookmarkbackups. Special values:
+// -1: unlimited
+// 0: no backups created (and deletes all existing backups)
+pref("browser.bookmarks.max_backups", 10);
+
+// Scripts & Windows prefs
+pref("dom.disable_open_during_load", true);
+pref("javascript.options.showInConsole", true);
+#ifdef DEBUG
+pref("general.warnOnAboutConfig", false);
+#endif
+
+#ifdef WINCE
+// Set the threshold higher to avoid some slow script warnings
+pref("dom.max_script_run_time", 20);
+#endif
+
+// This is the pref to control the location bar, change this to true to
+// force this - this makes the origin of popup windows more obvious to avoid
+// spoofing. We would rather not do it by default because it affects UE for web
+// applications, but without it there isn't a really good way to prevent chrome
+// spoofing, see bug 337344
+pref("dom.disable_window_open_feature.location", true);
+// prevent JS from setting status messages
+pref("dom.disable_window_status_change", true);
+// allow JS to move and resize existing windows
+pref("dom.disable_window_move_resize", false);
+// prevent JS from monkeying with window focus, etc
+pref("dom.disable_window_flip", true);
+
+// popups.policy 1=allow,2=reject
+pref("privacy.popups.policy", 1);
+pref("privacy.popups.usecustom", true);
+pref("privacy.popups.showBrowserMessage", true);
+
+pref("privacy.item.cookies", false);
+
+pref("privacy.clearOnShutdown.history", true);
+pref("privacy.clearOnShutdown.formdata", true);
+pref("privacy.clearOnShutdown.passwords", false);
+pref("privacy.clearOnShutdown.downloads", true);
+pref("privacy.clearOnShutdown.cookies", true);
+pref("privacy.clearOnShutdown.cache", true);
+pref("privacy.clearOnShutdown.sessions", true);
+pref("privacy.clearOnShutdown.offlineApps", false);
+pref("privacy.clearOnShutdown.siteSettings", false);
+
+pref("privacy.cpd.history", true);
+pref("privacy.cpd.formdata", true);
+pref("privacy.cpd.passwords", false);
+pref("privacy.cpd.downloads", true);
+pref("privacy.cpd.cookies", true);
+pref("privacy.cpd.cache", true);
+pref("privacy.cpd.sessions", true);
+pref("privacy.cpd.offlineApps", false);
+pref("privacy.cpd.siteSettings", false);
+
+// What default should we use for the time span in the sanitizer:
+// 0 - Clear everything
+// 1 - Last Hour
+// 2 - Last 2 Hours
+// 3 - Last 4 Hours
+// 4 - Today
+pref("privacy.sanitize.timeSpan", 1);
+pref("privacy.sanitize.sanitizeOnShutdown", false);
+
+pref("privacy.sanitize.migrateFx3Prefs", false);
+
+pref("network.proxy.share_proxy_settings", false); // use the same proxy settings for all protocols
+
+// simple gestures support
+pref("browser.gesture.swipe.left", "Browser:BackOrBackDuplicate");
+pref("browser.gesture.swipe.right", "Browser:ForwardOrForwardDuplicate");
+pref("browser.gesture.swipe.up", "cmd_scrollTop");
+pref("browser.gesture.swipe.down", "cmd_scrollBottom");
+#ifdef XP_MACOSX
+pref("browser.gesture.pinch.latched", true);
+pref("browser.gesture.pinch.threshold", 150);
+#else
+pref("browser.gesture.pinch.latched", false);
+pref("browser.gesture.pinch.threshold", 25);
+#endif
+pref("browser.gesture.pinch.out", "");
+pref("browser.gesture.pinch.in", "");
+pref("browser.gesture.pinch.out.shift", "");
+pref("browser.gesture.pinch.in.shift", "");
+pref("browser.gesture.twist.latched", false);
+pref("browser.gesture.twist.threshold", 25);
+pref("browser.gesture.twist.right", "");
+pref("browser.gesture.twist.left", "");
+pref("browser.gesture.tap", "cmd_fullZoomReset");
+
+// 0=lines, 1=pages, 2=history , 3=text size
+#ifdef XP_MACOSX
+// On OS X, if the wheel has one axis only, shift+wheel comes through as a
+// horizontal scroll event. Thus, we can't assign anything other than normal
+// scrolling to shift+wheel.
+pref("mousewheel.withshiftkey.action",0);
+pref("mousewheel.withshiftkey.sysnumlines",true);
+pref("mousewheel.withshiftkey.numlines",1);
+pref("mousewheel.withaltkey.action",2);
+pref("mousewheel.withaltkey.sysnumlines",false);
+pref("mousewheel.withaltkey.numlines",1);
+pref("mousewheel.withmetakey.action",0);
+pref("mousewheel.withmetakey.sysnumlines",false);
+pref("mousewheel.withmetakey.numlines",1);
+#else
+pref("mousewheel.withshiftkey.action",2);
+pref("mousewheel.withshiftkey.sysnumlines",false);
+pref("mousewheel.withshiftkey.numlines",1);
+pref("mousewheel.withaltkey.action",0);
+pref("mousewheel.withaltkey.sysnumlines",false);
+pref("mousewheel.withaltkey.numlines",1);
+pref("mousewheel.withmetakey.action",0);
+pref("mousewheel.withmetakey.sysnumlines",true);
+pref("mousewheel.withmetakey.numlines",1);
+#endif
+pref("mousewheel.withcontrolkey.action",3);
+pref("mousewheel.withcontrolkey.sysnumlines",false);
+pref("mousewheel.withcontrolkey.numlines",1);
+
+pref("profile.allow_automigration", false); // setting to false bypasses automigration in the profile code
+
+// Customizable toolbar stuff
+pref("custtoolbar.personal_toolbar_folder", "");
+
+// pref to control the alert notification
+pref("alerts.slideIncrement", 1);
+pref("alerts.slideIncrementTime", 10);
+pref("alerts.totalOpenTime", 4000);
+
+pref("browser.xul.error_pages.enabled", true);
+pref("browser.xul.error_pages.expert_bad_cert", false);
+
+// Work Offline is best manually managed by the user.
+pref("network.manage-offline-status", false);
+
+// We want to make sure mail URLs are handled externally...
+pref("network.protocol-handler.external.mailto", true); // for mail
+pref("network.protocol-handler.external.news", true); // for news
+pref("network.protocol-handler.external.snews", true); // for secure news
+pref("network.protocol-handler.external.nntp", true); // also news
+// ...without warning dialogs
+pref("network.protocol-handler.warn-external.mailto", false);
+pref("network.protocol-handler.warn-external.news", false);
+pref("network.protocol-handler.warn-external.snews", false);
+pref("network.protocol-handler.warn-external.nntp", false);
+
+// By default, all protocol handlers are exposed. This means that
+// the browser will respond to openURL commands for all URL types.
+// It will also try to open link clicks inside the browser before
+// failing over to the system handlers.
+pref("network.protocol-handler.expose-all", true);
+pref("network.protocol-handler.expose.mailto", false);
+pref("network.protocol-handler.expose.news", false);
+pref("network.protocol-handler.expose.snews", false);
+pref("network.protocol-handler.expose.nntp", false);
+
+// Default security warning dialogs to show once.
+pref("security.warn_entering_secure.show_once", false);
+pref("security.warn_entering_weak.show_once", true);
+pref("security.warn_leaving_secure.show_once", false);
+pref("security.warn_viewing_mixed.show_once", true);
+pref("security.warn_submit_insecure.show_once", false);
+
+pref("accessibility.typeaheadfind", false);
+pref("accessibility.typeaheadfind.timeout", 5000);
+pref("accessibility.typeaheadfind.linksonly", false);
+pref("accessibility.typeaheadfind.flashBar", 1);
+
+// plugin finder service url
+pref("pfs.datasource.url", "http://gnuzilla.gnu.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%&appID=%APP_ID%&appVersion=%APP_VERSION%&clientOS=%CLIENT_OS%&chromeLocale=%CHROME_LOCALE%&appRelease=%APP_RELEASE%");
+
+// by default we show an infobar message when pages require plugins the user has not installed, or are outdated
+pref("plugins.hide_infobar_for_missing_plugin", false);
+pref("plugins.hide_infobar_for_outdated_plugin", false);
+
+#ifdef XP_MACOSX
+pref("plugins.hide_infobar_for_carbon_failure_plugin", false);
+#endif
+
+pref("plugins.update.url", "https://www.mozilla.com/%LOCALE%/plugincheck/");
+pref("plugins.update.notifyUser", false);
+
+#ifdef XP_WIN
+pref("browser.preferences.instantApply", false);
+#else
+pref("browser.preferences.instantApply", true);
+#endif
+#ifdef XP_MACOSX
+pref("browser.preferences.animateFadeIn", true);
+#else
+pref("browser.preferences.animateFadeIn", false);
+#endif
+
+pref("browser.download.show_plugins_in_list", true);
+pref("browser.download.hide_plugins_without_extensions", true);
+
+// Backspace and Shift+Backspace behavior
+// 0 goes Back/Forward
+// 1 act like PgUp/PgDown
+// 2 and other values, nothing
+#ifdef UNIX_BUT_NOT_MAC
+pref("browser.backspace_action", 2);
+#else
+pref("browser.backspace_action", 0);
+#endif
+
+// this will automatically enable inline spellchecking (if it is available) for
+// editable elements in HTML
+// 0 = spellcheck nothing
+// 1 = check multi-line controls [default]
+// 2 = check multi/single line controls
+pref("layout.spellcheckDefault", 1);
+
+pref("browser.send_pings", false);
+
+/* initial web feed readers list */
+pref("browser.contentHandlers.types.0.title", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.0.uri", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.0.type", "application/vnd.mozilla.maybe.feed");
+pref("browser.contentHandlers.types.1.title", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.1.uri", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.1.type", "application/vnd.mozilla.maybe.feed");
+pref("browser.contentHandlers.types.2.title", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.2.uri", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.2.type", "application/vnd.mozilla.maybe.feed");
+pref("browser.contentHandlers.types.3.title", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.3.uri", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.3.type", "application/vnd.mozilla.maybe.feed");
+pref("browser.contentHandlers.types.4.title", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.4.uri", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.4.type", "application/vnd.mozilla.maybe.feed");
+pref("browser.contentHandlers.types.5.title", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.5.uri", "chrome://browser-region/locale/region.properties");
+pref("browser.contentHandlers.types.5.type", "application/vnd.mozilla.maybe.feed");
+
+pref("browser.feeds.handler", "ask");
+pref("browser.videoFeeds.handler", "ask");
+pref("browser.audioFeeds.handler", "ask");
+
+// At startup, if the handler service notices that the version number in the
+// region.properties file is newer than the version number in the handler
+// service datastore, it will add any new handlers it finds in the prefs (as
+// seeded by this file) to its datastore.
+pref("gecko.handlerService.defaultHandlersVersion", "chrome://browser-region/locale/region.properties");
+
+// The default set of web-based protocol handlers shown in the application
+// selection dialog for webcal: ; I've arbitrarily picked 4 default handlers
+// per protocol, but if some locale wants more than that (or defaults for some
+// protocol not currently listed here), we should go ahead and add those.
+
+// webcal
+pref("gecko.handlerService.schemes.webcal.0.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.webcal.0.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.webcal.1.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.webcal.1.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.webcal.2.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.webcal.2.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.webcal.3.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.webcal.3.uriTemplate", "chrome://browser-region/locale/region.properties");
+
+// mailto
+pref("gecko.handlerService.schemes.mailto.0.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.mailto.0.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.mailto.1.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.mailto.1.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.mailto.2.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.mailto.2.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.mailto.3.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.mailto.3.uriTemplate", "chrome://browser-region/locale/region.properties");
+
+// irc
+pref("gecko.handlerService.schemes.irc.0.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.irc.0.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.irc.1.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.irc.1.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.irc.2.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.irc.2.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.irc.3.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.irc.3.uriTemplate", "chrome://browser-region/locale/region.properties");
+
+// ircs
+pref("gecko.handlerService.schemes.ircs.0.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.ircs.0.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.ircs.1.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.ircs.1.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.ircs.2.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.ircs.2.uriTemplate", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.ircs.3.name", "chrome://browser-region/locale/region.properties");
+pref("gecko.handlerService.schemes.ircs.3.uriTemplate", "chrome://browser-region/locale/region.properties");
+
+// By default, we don't want protocol/content handlers to be registered from a different host, see bug 402287
+pref("gecko.handlerService.allowRegisterFromDifferentHost", false);
+
+#ifdef MOZ_SAFE_BROWSING
+// Safe browsing does nothing unless this pref is set
+pref("browser.safebrowsing.enabled", true);
+
+// Prevent loading of pages identified as malware
+pref("browser.safebrowsing.malware.enabled", true);
+
+// Non-enhanced mode (local url lists) URL list to check for updates
+pref("browser.safebrowsing.provider.0.updateURL", "http://safebrowsing.clients.google.com/safebrowsing/downloads?client={moz:client}&appver={moz:version}&pver=2.2");
+
+pref("browser.safebrowsing.dataProvider", 0);
+
+// Does the provider name need to be localizable?
+pref("browser.safebrowsing.provider.0.name", "Google");
+pref("browser.safebrowsing.provider.0.keyURL", "https://sb-ssl.google.com/safebrowsing/newkey?client={moz:client}&appver={moz:version}&pver=2.2");
+pref("browser.safebrowsing.provider.0.reportURL", "http://safebrowsing.clients.google.com/safebrowsing/report?");
+pref("browser.safebrowsing.provider.0.gethashURL", "http://safebrowsing.clients.google.com/safebrowsing/gethash?client={moz:client}&appver={moz:version}&pver=2.2");
+
+// HTML report pages
+pref("browser.safebrowsing.provider.0.reportGenericURL", "http://{moz:locale}.phish-generic.mozilla.com/?hl={moz:locale}");
+pref("browser.safebrowsing.provider.0.reportErrorURL", "http://{moz:locale}.phish-error.mozilla.com/?hl={moz:locale}");
+pref("browser.safebrowsing.provider.0.reportPhishURL", "http://{moz:locale}.phish-report.mozilla.com/?hl={moz:locale}");
+pref("browser.safebrowsing.provider.0.reportMalwareURL", "http://{moz:locale}.malware-report.mozilla.com/?hl={moz:locale}");
+pref("browser.safebrowsing.provider.0.reportMalwareErrorURL", "http://{moz:locale}.malware-error.mozilla.com/?hl={moz:locale}");
+
+// FAQ URLs
+pref("browser.safebrowsing.warning.infoURL", "http://www.mozilla.com/%LOCALE%/%APP%/phishing-protection/");
+pref("browser.geolocation.warning.infoURL", "http://www.mozilla.com/%LOCALE%/%APP%/geolocation/");
+
+// Name of the about: page contributed by safebrowsing to handle display of error
+// pages on phishing/malware hits. (bug 399233)
+pref("urlclassifier.alternate_error_page", "blocked");
+
+// The number of random entries to send with a gethash request.
+pref("urlclassifier.gethashnoise", 4);
+
+// The list of tables that use the gethash request to confirm partial results.
+pref("urlclassifier.gethashtables", "goog-phish-shavar,goog-malware-shavar");
+
+// If an urlclassifier table has not been updated in this number of seconds,
+// a gethash request will be forced to check that the result is still in
+// the database.
+pref("urlclassifier.confirm-age", 2700);
+
+#ifdef MOZ_WIDGET_GTK2
+#define RESTRICT_CACHEMAX
+#endif
+#ifdef XP_OS2
+#define RESTRICT_CACHEMAX
+#endif
+
+// Maximum size of the sqlite3 cache during an update, in bytes
+#ifdef RESTRICT_CACHEMAX
+pref("urlclassifier.updatecachemax", 104857600);
+#else
+pref("urlclassifier.updatecachemax", -1);
+#endif
+
+// URL for checking the reason for a malware warning.
+pref("browser.safebrowsing.malware.reportURL", "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?client=%NAME%&hl=%LOCALE%&site=");
+
+#endif
+
+pref("browser.EULA.version", 3);
+pref("browser.rights.version", 3);
+pref("browser.rights.3.shown", false);
+
+#ifdef DEBUG
+// Don't show the about:rights notification in debug builds.
+pref("browser.rights.override", true);
+#endif
+
+#ifdef WINCE
+pref("browser.sessionstore.resume_from_crash", false);
+#else
+pref("browser.sessionstore.resume_from_crash", true);
+#endif
+pref("browser.sessionstore.resume_session_once", false);
+
+// minimal interval between two save operations in milliseconds
+pref("browser.sessionstore.interval", 15000);
+// maximum amount of POSTDATA to be saved in bytes per history entry (-1 = all of it)
+// (NB: POSTDATA will be saved either entirely or not at all)
+pref("browser.sessionstore.postdata", 0);
+// on which sites to save text data, POSTDATA and cookies
+// 0 = everywhere, 1 = unencrypted sites, 2 = nowhere
+pref("browser.sessionstore.privacy_level", 0);
+// the same as browser.sessionstore.privacy_level, but for saving deferred session data
+pref("browser.sessionstore.privacy_level_deferred", 1);
+// how many tabs can be reopened (per window)
+pref("browser.sessionstore.max_tabs_undo", 10);
+// how many windows can be reopened (per session) - on non-OS X platforms this
+// pref may be ignored when dealing with pop-up windows to ensure proper startup
+pref("browser.sessionstore.max_windows_undo", 3);
+// number of crashes that can occur before the about:sessionrestore page is displayed
+// (this pref has no effect if more than 6 hours have passed since the last crash)
+pref("browser.sessionstore.max_resumed_crashes", 1);
+// The number of tabs that can restore concurrently:
+// < 0 = All tabs can restore at the same time
+// 0 = Only the selected tab in each window will be restored
+// Other tabs won't be restored until they are selected
+// N = The number of tabs to restore at the same time
+pref("browser.sessionstore.max_concurrent_tabs", 3);
+
+// allow META refresh by default
+pref("accessibility.blockautorefresh", false);
+
+// Whether history is enabled or not.
+pref("places.history.enabled", true);
+
+// The percentage of system memory that the Places database can use. Out of the
+// allowed cache size it will at most use the size of the database file.
+// Changes to this value are effective after an application restart.
+// Acceptable values are between 0 and 50.
+pref("places.database.cache_to_memory_percentage", 6);
+
+// the (maximum) number of the recent visits to sample
+// when calculating frecency
+pref("places.frecency.numVisits", 10);
+
+// buckets (in days) for frecency calculation
+pref("places.frecency.firstBucketCutoff", 4);
+pref("places.frecency.secondBucketCutoff", 14);
+pref("places.frecency.thirdBucketCutoff", 31);
+pref("places.frecency.fourthBucketCutoff", 90);
+
+// weights for buckets for frecency calculations
+pref("places.frecency.firstBucketWeight", 100);
+pref("places.frecency.secondBucketWeight", 70);
+pref("places.frecency.thirdBucketWeight", 50);
+pref("places.frecency.fourthBucketWeight", 30);
+pref("places.frecency.defaultBucketWeight", 10);
+
+// bonus (in percent) for visit transition types for frecency calculations
+pref("places.frecency.embedVisitBonus", 0);
+pref("places.frecency.framedLinkVisitBonus", 0);
+pref("places.frecency.linkVisitBonus", 100);
+pref("places.frecency.typedVisitBonus", 2000);
+pref("places.frecency.bookmarkVisitBonus", 75);
+pref("places.frecency.downloadVisitBonus", 0);
+pref("places.frecency.permRedirectVisitBonus", 0);
+pref("places.frecency.tempRedirectVisitBonus", 0);
+pref("places.frecency.defaultVisitBonus", 0);
+
+// bonus (in percent) for place types for frecency calculations
+pref("places.frecency.unvisitedBookmarkBonus", 140);
+pref("places.frecency.unvisitedTypedBonus", 200);
+
+// Controls behavior of the "Add Exception" dialog launched from SSL error pages
+// 0 - don't pre-populate anything
+// 1 - pre-populate site URL, but don't fetch certificate
+// 2 - pre-populate site URL and pre-fetch certificate
+pref("browser.ssl_override_behavior", 2);
+
+// Controls the display of domain in the identity box for SSL connections.
+// 0 - do not show domain
+// 1 - show effectiveTLD + 1 (e.g. mozilla.org)
+// 2 - show full domain (e.g. bugzilla.mozilla.org)
+pref("browser.identity.ssl_domain_display", 1);
+
+// True if the user should be prompted when a web application supports
+// offline apps.
+pref("browser.offline-apps.notify", true);
+
+// if true, use full page zoom instead of text zoom
+pref("browser.zoom.full", true);
+
+// Whether or not to save and restore zoom levels on a per-site basis.
+pref("browser.zoom.siteSpecific", true);
+
+// Whether or not to update background tabs to the current zoom level.
+pref("browser.zoom.updateBackgroundTabs", true);
+
+// The breakpad report server to link to in about:crashes
+pref("breakpad.reportURL", "http://crash-stats.mozilla.com/report/index/");
+
+// base URL for web-based support pages
+pref("app.support.baseURL", "http://support.mozilla.com/1/%APP%/%VERSION%/%OS%/%LOCALE%/");
+
+// Name of alternate about: page for certificate errors (when undefined, defaults to about:neterror)
+pref("security.alternate_certificate_error_page", "certerror");
+
+// Whether to start the private browsing mode at application startup
+pref("browser.privatebrowsing.autostart", false);
+
+// Whether we should skip prompting before starting the private browsing mode
+pref("browser.privatebrowsing.dont_prompt_on_enter", false);
+
+// Don't try to alter this pref, it'll be reset the next time you use the
+// bookmarking dialog
+pref("browser.bookmarks.editDialog.firstEditField", "namePicker");
+
+// base url for the wifi geolocation network provider
+pref("geo.wifi.uri", "http://geomena.org");
+pref("geo.wifi.protocol", 0);
+
+#ifdef WINCE
+
+// tweak awesomebar -- increase the delay until a search happens.
+pref("browser.urlbar.delay", 250);
+
+// disable safe browsing, due to perf hit
+pref("browser.safebrowsing.enabled", false);
+pref("browser.safebrowsing.malware.enabled", false);
+
+// don't check for default browser
+pref("browser.shell.checkDefaultBrowser", false);
+
+// disable bfcache for memory
+pref("browser.sessionhistory.max_total_viewers", 0);
+
+pref("browser.sessionhistory.optimize_eviction", false);
+
+// tweak default content sink prefs
+pref("content.sink.interactive_deflect_count", 10); /* default 0 */
+pref("content.sink.perf_deflect_count", 50); /* default 200 */
+pref("content.sink.interactive_parse_time", 5000); /* default 3000 */
+pref("content.sink.perf_parse_time", 150000); /* default 360000 */
+pref("content.sink.pending_event_mode", 0); /* default 1 */
+pref("content.sink.event_probe_rate", 1); /* default 1 */
+pref("content.sink.interactive_time", 750000); /* default 750000 */
+pref("content.sink.initial_perf_time", 500000); /* default 2000000 */
+pref("content.sink.enable_perf_mode", 0); /* default 0; 0 == switch, 1 == stay interactive, 2 == stay perf */
+
+// Write sessionstore.js less often
+pref("browser.sessionstore.interval", 60000);
+
+#endif /* WINCE */
+
+// Whether to use a panel that looks like an OS X sheet for customization
+#ifdef XP_MACOSX
+pref("toolbar.customization.usesheet", true);
+#else
+pref("toolbar.customization.usesheet", false);
+#endif
+
+// The default for this pref reflects whether the build is capable of IPC.
+// (Turning it on in a no-IPC build will have no effect.)
+#ifdef XP_MACOSX
+// i386 ipc preferences
+pref("dom.ipc.plugins.enabled.i386", false);
+pref("dom.ipc.plugins.enabled.i386.flash player.plugin", true);
+pref("dom.ipc.plugins.enabled.i386.javaplugin2_npapi.plugin", true);
+// x86_64 ipc preferences
+pref("dom.ipc.plugins.enabled.x86_64", true);
+#elifdef MOZ_IPC
+pref("dom.ipc.plugins.enabled", true);
+#else
+pref("dom.ipc.plugins.enabled", false);
+#endif
+
+#ifdef XP_WIN
+#ifndef WINCE
+pref("browser.taskbar.previews.enable", false);
+pref("browser.taskbar.previews.max", 20);
+pref("browser.taskbar.previews.cachetime", 5);
+pref("browser.taskbar.lists.enabled", true);
+pref("browser.taskbar.lists.frequent.enabled", true);
+pref("browser.taskbar.lists.recent.enabled", false);
+pref("browser.taskbar.lists.maxListItemCount", 7);
+pref("browser.taskbar.lists.tasks.enabled", true);
+pref("browser.taskbar.lists.refreshInSeconds", 120);
+#endif
+#endif
+
+#ifdef MOZ_SERVICES_SYNC
+// The sync engines to use.
+pref("services.sync.registerEngines", "Bookmarks,Form,History,Password,Prefs,Tab");
+// Preferences to be synced by default
+pref("services.sync.prefs.sync.accessibility.blockautorefresh", true);
+pref("services.sync.prefs.sync.accessibility.browsewithcaret", true);
+pref("services.sync.prefs.sync.accessibility.typeaheadfind", true);
+pref("services.sync.prefs.sync.accessibility.typeaheadfind.linksonly", true);
+pref("services.sync.prefs.sync.app.update.mode", true);
+pref("services.sync.prefs.sync.browser.download.manager.closeWhenDone", true);
+pref("services.sync.prefs.sync.browser.download.manager.retention", true);
+pref("services.sync.prefs.sync.browser.download.manager.scanWhenDone", true);
+pref("services.sync.prefs.sync.browser.download.manager.showWhenStarting", true);
+pref("services.sync.prefs.sync.browser.formfill.enable", true);
+pref("services.sync.prefs.sync.browser.link.open_newwindow", true);
+pref("services.sync.prefs.sync.browser.offline-apps.notify", true);
+pref("services.sync.prefs.sync.browser.safebrowsing.enabled", true);
+pref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", true);
+pref("services.sync.prefs.sync.browser.search.selectedEngine", true);
+pref("services.sync.prefs.sync.browser.search.update", true);
+pref("services.sync.prefs.sync.browser.startup.homepage", true);
+pref("services.sync.prefs.sync.browser.startup.page", true);
+pref("services.sync.prefs.sync.browser.tabs.autoHide", true);
+pref("services.sync.prefs.sync.browser.tabs.closeButtons", true);
+pref("services.sync.prefs.sync.browser.tabs.loadInBackground", true);
+pref("services.sync.prefs.sync.browser.tabs.warnOnClose", true);
+pref("services.sync.prefs.sync.browser.tabs.warnOnOpen", true);
+pref("services.sync.prefs.sync.browser.urlbar.autocomplete.enabled", true);
+pref("services.sync.prefs.sync.browser.urlbar.autoFill", true);
+pref("services.sync.prefs.sync.browser.urlbar.default.behavior", true);
+pref("services.sync.prefs.sync.browser.urlbar.maxRichResults", true);
+pref("services.sync.prefs.sync.dom.disable_open_during_load", true);
+pref("services.sync.prefs.sync.dom.disable_window_flip", true);
+pref("services.sync.prefs.sync.dom.disable_window_move_resize", true);
+pref("services.sync.prefs.sync.dom.event.contextmenu.enabled", true);
+pref("services.sync.prefs.sync.extensions.personas.current", true);
+pref("services.sync.prefs.sync.extensions.update.enabled", true);
+pref("services.sync.prefs.sync.general.smoothScroll", true);
+pref("services.sync.prefs.sync.intl.accept_languages", true);
+pref("services.sync.prefs.sync.javascript.enabled", true);
+pref("services.sync.prefs.sync.layout.spellcheckDefault", true);
+pref("services.sync.prefs.sync.lightweightThemes.isThemeSelected", true);
+pref("services.sync.prefs.sync.lightweightThemes.usedThemes", true);
+pref("services.sync.prefs.sync.network.cookie.cookieBehavior", true);
+pref("services.sync.prefs.sync.network.cookie.lifetimePolicy", true);
+pref("services.sync.prefs.sync.permissions.default.image", true);
+pref("services.sync.prefs.sync.pref.advanced.images.disable_button.view_image", true);
+pref("services.sync.prefs.sync.pref.advanced.javascript.disable_button.advanced", true);
+pref("services.sync.prefs.sync.pref.downloads.disable_button.edit_actions", true);
+pref("services.sync.prefs.sync.pref.privacy.disable_button.cookie_exceptions", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.cache", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.cookies", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.downloads", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.formdata", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.history", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.offlineApps", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.passwords", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.sessions", true);
+pref("services.sync.prefs.sync.privacy.clearOnShutdown.siteSettings", true);
+pref("services.sync.prefs.sync.privacy.donottrackheader.enabled", true);
+pref("services.sync.prefs.sync.privacy.sanitize.sanitizeOnShutdown", true);
+pref("services.sync.prefs.sync.security.OCSP.disable_button.managecrl", true);
+pref("services.sync.prefs.sync.security.OCSP.enabled", true);
+pref("services.sync.prefs.sync.security.OCSP.require", true);
+pref("services.sync.prefs.sync.security.default_personal_cert", true);
+pref("services.sync.prefs.sync.security.enable_ssl3", true);
+pref("services.sync.prefs.sync.security.enable_tls", true);
+pref("services.sync.prefs.sync.security.warn_entering_secure", true);
+pref("services.sync.prefs.sync.security.warn_entering_weak", true);
+pref("services.sync.prefs.sync.security.warn_leaving_secure", true);
+pref("services.sync.prefs.sync.security.warn_submit_insecure", true);
+pref("services.sync.prefs.sync.security.warn_viewing_mixed", true);
+pref("services.sync.prefs.sync.signon.rememberSignons", true);
+pref("services.sync.prefs.sync.spellchecker.dictionary", true);
+pref("services.sync.prefs.sync.xpinstall.whitelist.required", true);
+#endif
+
+// Disable the error console and inspector
+pref("devtools.errorconsole.enabled", false);
+pref("devtools.inspector.enabled", false);
+
+// The last Web Console height. This is initially 0 which means that the Web
+// Console will use the default height next time it shows.
+// Change to -1 if you do not want the Web Console to remember its last height.
+pref("devtools.hud.height", 0);
+
+// Whether the character encoding menu is under the main Firefox button. This
+// preference is a string so that localizers can alter it.
+pref("browser.menu.showCharacterEncoding", "chrome://browser/locale/browser.properties");
+
+// Allow using tab-modal prompts when possible.
+pref("prompts.tab_modal.enabled", true);
+// Whether the Panorama should animate going in/out of tabs
+pref("browser.panorama.animate_zoom", true);
diff --git a/libre/icecat/icecat-safe.desktop b/libre/icecat/icecat-safe.desktop
new file mode 100644
index 000000000..87acc970c
--- /dev/null
+++ b/libre/icecat/icecat-safe.desktop
@@ -0,0 +1,78 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=/usr/bin/icecat -safe-mode %u
+Icon=icecat
+Type=Application
+Terminal=false
+MultipleArgs=false
+Name=GNU IceCat - Safe Mode
+GenericName=Web Browser
+GenericName[af]=Web Blaaier
+GenericName[ar]=متصفح ويب
+GenericName[az]=Veb Səyyahı
+GenericName[bg]=Браузър
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[br]=Furcher ar Gwiad
+GenericName[bs]=WWW Preglednik
+GenericName[ca]=Fullejador web
+GenericName[cs]=WWW prohlížeč
+GenericName[cy]=Porydd Gwe
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής Ιστού
+GenericName[eo]=TTT-legilo
+GenericName[es]=Navegador web
+GenericName[et]=Veebilehitseja
+GenericName[eu]=Web arakatzailea
+GenericName[fa]=مرورگر وب
+GenericName[fi]=WWW-selain
+GenericName[fo]=Alnótsfar
+GenericName[fr]=Navigateur web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[is]=Vafri
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[lo]=ເວັບບຣາວເຊີ
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Web Pārlūks
+GenericName[mk]=Прелистувач на Интернет
+GenericName[mn]=Веб-Хөтөч
+GenericName[nb]=Nettleser
+GenericName[nds]=Nettkieker
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[nso]=Seinyakisi sa Web
+GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator de web
+GenericName[ru]=Веб-браузер
+GenericName[se]=Fierpmádatlogan
+GenericName[sk]=Webový prehliadač
+GenericName[sl]=Spletni brskalnik
+GenericName[sr]=Веб претраживач
+GenericName[sr@Latn]=Veb pretraživač
+GenericName[ss]=Ibrawuza yeWeb
+GenericName[sv]=Webbläsare
+GenericName[ta]=வலை உலாவி
+GenericName[tg]=Тафсиргари вэб
+GenericName[th]=เว็บบราวเซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[uz]=Веб-браузер
+GenericName[ven]=Buronza ya Webu
+GenericName[vi]=Trình duyệt Web
+GenericName[wa]=Betchteu waibe
+GenericName[xh]=Umkhangeli zincwadi we Web
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_TW]=網頁瀏覽器
+GenericName[zu]=Umcingi we-Web
+MimeType=text/html
+StartupNotify=false
+Categories=Application;Network;
diff --git a/libre/icecat/icecat.desktop b/libre/icecat/icecat.desktop
new file mode 100644
index 000000000..8a7cad93d
--- /dev/null
+++ b/libre/icecat/icecat.desktop
@@ -0,0 +1,78 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=/usr/bin/icecat %u
+Icon=icecat
+Type=Application
+Terminal=false
+MultipleArgs=false
+Name=GNU IceCat
+GenericName=Web Browser
+GenericName[af]=Web Blaaier
+GenericName[ar]=متصفح ويب
+GenericName[az]=Veb Səyyahı
+GenericName[bg]=Браузър
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[br]=Furcher ar Gwiad
+GenericName[bs]=WWW Preglednik
+GenericName[ca]=Fullejador web
+GenericName[cs]=WWW prohlížeč
+GenericName[cy]=Porydd Gwe
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής Ιστού
+GenericName[eo]=TTT-legilo
+GenericName[es]=Navegador web
+GenericName[et]=Veebilehitseja
+GenericName[eu]=Web arakatzailea
+GenericName[fa]=مرورگر وب
+GenericName[fi]=WWW-selain
+GenericName[fo]=Alnótsfar
+GenericName[fr]=Navigateur web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[is]=Vafri
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[lo]=ເວັບບຣາວເຊີ
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Web Pārlūks
+GenericName[mk]=Прелистувач на Интернет
+GenericName[mn]=Веб-Хөтөч
+GenericName[nb]=Nettleser
+GenericName[nds]=Nettkieker
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[nso]=Seinyakisi sa Web
+GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator de web
+GenericName[ru]=Веб-браузер
+GenericName[se]=Fierpmádatlogan
+GenericName[sk]=Webový prehliadač
+GenericName[sl]=Spletni brskalnik
+GenericName[sr]=Веб претраживач
+GenericName[sr@Latn]=Veb pretraživač
+GenericName[ss]=Ibrawuza yeWeb
+GenericName[sv]=Webbläsare
+GenericName[ta]=வலை உலாவி
+GenericName[tg]=Тафсиргари вэб
+GenericName[th]=เว็บบราวเซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[uz]=Веб-браузер
+GenericName[ven]=Buronza ya Webu
+GenericName[vi]=Trình duyệt Web
+GenericName[wa]=Betchteu waibe
+GenericName[xh]=Umkhangeli zincwadi we Web
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_TW]=網頁瀏覽器
+GenericName[zu]=Umcingi we-Web
+MimeType=text/html
+StartupNotify=false
+Categories=Application;Network;
diff --git a/libre/icecat/icecat.install b/libre/icecat/icecat.install
new file mode 100644
index 000000000..cefb71c4d
--- /dev/null
+++ b/libre/icecat/icecat.install
@@ -0,0 +1,21 @@
+#[ "${ICECATDIR}" = "" ] && ICECATDIR="/usr/lib/icecat"
+post_install () {
+ echo -e "\n >>> Please, source /etc/profile or logout and re-login to your desktop session"
+ echo -e " >>> If you installed some locale in the past or some stuff in libdir, please remove old /usr/lib/icecat-3.6.* directories"
+ update-desktop-database -q
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ update-desktop-database -q
+}
+
+#op=$1
+#shift
+
+#$op $*
diff --git a/libre/icecat/internet-archive.xml b/libre/icecat/internet-archive.xml
new file mode 100644
index 000000000..1556a2d8c
--- /dev/null
+++ b/libre/icecat/internet-archive.xml
@@ -0,0 +1,12 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Internet Archive</os:ShortName>
+<os:Description>Search www.archive.org</os:Description>
+<os:InputEncoding>ISO-8859-1</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAPf0ABQAABMTERQTEhcXFxUYFRscGCwWEzYQDSAkHiAhICEiISQkIiUmJScnJSkpKSsrKi8vLDcvKjM0LzE1Mjc3NjU6Nj44NTw9OT0+Pj4/PD9CQUYdF00lJEE0KkQ9N0Y9NFItLFUvL1wzLFc/PV01MGE8PWU/OWk5NGo7OkBAP0RFREVJRURJRkVLR0ZIRkdJSUZLSEhMS0pPTFZOSllDQlZXVWFJRWVKQWRLRGtPRG9KSWxQRWxRRmhQTHJCQnFDRHVEQHZFQHpLS3hKTHlNSn5PSn5PTXxOUHRWTXBeU29jXXtgWHxjXn1mZIBQS4BQUIJZUoBZWIVeXYhfW4ZsX41jXYlrXoxuX4RuYoppYotza5NlZ5Zua5J4bpt5ZpaDeaKBb42MiY6MiY6NiY+QjJGIhZGKhZiLgp+IgJGRjJOSjZKSj5SWjpSTkJWVkJWUkpaUkZaVkquLgKmMgayPgK6Sh6mWj6ycj7GQgbKSgLWSgrqXi7maj7Sck7Smn72ilK+so6ytqbanobKppLysoLytor6uprqxqr2wqr+zrL23tMOklsCroMKvpcWqoMSsocStocSupcS1qce2rMa6r8m1rsO8ssa4sM65sty5q9C6sc3DttbEvdbKv9nFt9rHvODAsuDIuuHLvufKvurNvNDLwtDPy9nLwN3Oxt3Xz+TMwODQxuPTxuXRxefRxuHWzO3Ux+/WxunXy+vWyO3XzujYyuzYy+7bz+HZ0eHZ1eLc0uXc0+bc2Ore0u7c0O/f0vHf1eTg2+/h1O/h1u/j2u/m2vDh0/Hg1vDi1fHi1fPh1fPh1/bg1vLq3fXr3/ng1vjl2fnk2fTr5fTs4vHu6Pfw5vb07vnz5vvy5/zy5vry6Pv06vj17/7y6v/17fz47/757v/57v/38Pr58/358f358//68P778v/68/z89v/99f/+9f//9P7+9///9/z8+f//+P//+/7+/v///v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAj+ALeUoDHjAosYKlKsaAHjhYsMgYaAAGABggwNDgbUqMAAgwIKa47oMBChwIQHAQRIQEAgQYMFYX6EGFEmDZk2ceCoYePmjZgxpnxEaSKPntGjR+fRi/dESo9y3MYFy8ULl65Sit6loyaEgw14qQANQuTn0pkPHsxYa2eEC5Nu0ywlMmSn0Z0OSg6RW4fiAA512nahqoQGkqckgqShO+ekypJw2F6titTlTywsnLxtY3diww135k59cjRnESkqmMR9YwdEBI9imwoxqiMHTx4rmohVAxdExI5Wkgg94rNHj5crWr5QulYESo5bxmqJGgUqExg6fSZ1akaEBBJXvlgfybI1C1YoVbSA9XI2xUSWZ9B+IROWTFk0ZsuODcsWEAA7</os:Image>
+<UpdateInterval>7</UpdateInterval>
+<UpdateUrl>http://mycroft.mozdev.org/update.php/id0/archive.src</UpdateUrl>
+<IconUpdateUrl>http://mycroft.mozdev.org/update.php/id0/archive.gif</IconUpdateUrl>
+<SearchForm>http://www.archive.org/</SearchForm>
+<os:Url type="text/html" method="GET" template="http://www.archive.org/search.php?sourceid=Mozilla-search&amp;query={searchTerms}&amp;sort=-%2Fadditional%2Fitem%2Fdownloads">
+</os:Url>
+</SearchPlugin> \ No newline at end of file
diff --git a/libre/icecat/jamendo-en.xml b/libre/icecat/jamendo-en.xml
new file mode 100644
index 000000000..91d6df6e4
--- /dev/null
+++ b/libre/icecat/jamendo-en.xml
@@ -0,0 +1,12 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Jamendo (en)</os:ShortName>
+<os:Description>Search Jamendo.com English site for downloadable Creative Commons music</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjMxN4N3hgAAAqZJREFUOE9tk21IU2EUx+9S+tAXbZt6J4GRkEFQEQsKsb7W1ySCoK+9iCK9WKvMlZmKI8jqgw0JS52ZpQ4D7RV6IUmIqVGjgl6md0uf3dmcq3nvdv+dezfvNHvgD889z/n/zrn33MfApZfhpSMnu2hN5sGMFVzzori+jUk4nplhuMUfCISXnQc6+VJ21+INdluQFP+PFuKWjz9u8/sWAwz+Tn4nmVjabIF4vwChviKIvesh9hSkoDpEzS3RIGS20kN4wRxyb0b0fRNk0YNEVCD5ILMRREcvaLBkZxro11SXxcpNd1ladPPAVkjCYygJCSH/DEJCCIqiQF1KYh6xry6CbNAhVLyK09u+l0+VGylTRiKeQG9dP5xlTvi8E2lIPIbIyDH9daj4eArAQ21dDr7TqsWlONpPtMO23Yb6/Q3wvvVqcXVJ/mcQHxTqEI51WcBceZh5WILE3IQO6KjqgG3HGVRYK1G15zRGX49pncjiGEL9W8jDQ/VyrI02bXn0xYsRj/iWA7ZVoqy4HE+6nyYBzAOxe5PmUb0cc+aC3cyFeGcjpMBIGnCSOqBXqN1bhzcDw5AlWTub/zYE1lqgeVQvx67ngDWTruVi7pUdoAnE5QT66t1wnXNB+OKnCaQmIc1hdvAQ5ZuTHvJyP6+YW5iDAg4TxBtFiH3ogSL9gegPIxKK0lTUGSpQ5iP4PdyM4FWqTrnkkScd5iZOuGy2sjpzmF2iICnYtBaRIRukz4OIB8YhCx6CujHrLgerp++VyhNqTU76Dw3a3+irNu6atpuCJGg6n0WJ+WCNhWAN68BqeS22cD5ZbWq9uHvVyiX3Qag2lU7ZTV4dYjdiuiYldZ+CU17P88NZq/93W7lPp4xZlFiRhqQ6IvP3s8ZHUzWmIy+OZi8x/wVGO4LYiOwxygAAAABJRU5ErkJggg==</os:Image>
+<UpdateInterval>7</UpdateInterval>
+<UpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/jamendo.xml</UpdateUrl>
+<IconUpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/jamendo.ico</IconUpdateUrl>
+<SearchForm>http://www.jamendo.com/en</SearchForm>
+<os:Url type="text/html" method="GET" template="http://www.jamendo.com/en/search/all/{searchTerms}">
+</os:Url>
+</SearchPlugin> \ No newline at end of file
diff --git a/libre/icecat/logless-search.xml b/libre/icecat/logless-search.xml
new file mode 100644
index 000000000..1538d1ef0
--- /dev/null
+++ b/libre/icecat/logless-search.xml
@@ -0,0 +1,8 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Logless Search</os:ShortName>
+<os:Description>Use logless.com to search the Internet in privacy, with no search logs.</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKo4NSnYdKl4FmtZ52uKdKb2cjQDwQKzoSMS1Ka2lzqJRlt51VmI5MgnVHk4BpoJRPoohMiXZUo4xctJteoZAmT00jPUEYLzoRSToxVVdhhYJ/saCXgnS1cWKykH+KoptfjoBDempaoo5dtZdViXw9TFsuOkghMjoYVVIvTlded36Vm5Lol4X5lIPQlImft62IhnpTfXGMtqxquaJSkYU5Qlk6OFE+SFwzV3dLVW1teoNvo5SPppSNoJR4mJZ7uqhyj3xbg3iGuK1btZxQm4pHSmFHOV48RWhFOWpbRXFgd4BSq5JHqJJQrplprp95uqdVj3xTi3xZsptauphfqZRLRWA/LFozMVhGGEhYOmdUgIJIqo5EqJBPr5ZbspxuuqU7fWNakXpjqY9kvJxhuZ5RYGUvMEgvFSchID9ZM1JMbG1HrpZGpo1QnYZaoJJXpZI0dFqKk3m+mISen4ieln2BPTJuGxeIGhNrFRKHEQ2VLiOCa1xsnIhaf39tlJN6rKVFc1+bmH/vloDshW7oZE+wLR+7MBvHMButJRK9MibhUzzkVj7eXUTBa2yOkYuMuaMtQDS1iHP0gWrpel3dZUnIZEnbWT3aPyXkX0T/k3v0WkD6alH3clv4c1bweGDloIdlSD/ZeWXWdl/sdlvvc1jpe2Pvc1fqUzrudl38hG33aE38dVv8j3f5lXz/inLro42JZluAY13YcGDxgGb1hWj3f2f+iWv0cFT8sZH8kXj7fGP6fGH2e2D/mH/oqY7Vr5pIV1WiY1fYeWbMgHPklXnuj3T9jGr9mXj8nH/7jnT7lHv8knb6kHD/j3S/uZujw7NeXGSWXFSNbGbDi4e6p5HZnYb6kXP6nYP7l4D4qI/irpjaq5D/o4r3o4jZtJu0u7FRRlNpTFyEXWaygnmsrKGprp7SqpXno5X1rJf1wazLuqTQr5rqrKDXuKXbtaDGt6w7ITVQLUaEdHqwu7KpvLOArJ+VpZ+3oqCoqp/App7YnpDimIy2qJ20r6S1r6WhuasAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</os:Image>
+<os:Url type="text/html" method="GET" template="http://www.logless.com/?q={searchTerms}">
+</os:Url>
+</SearchPlugin>
diff --git a/libre/icecat/mozconfig b/libre/icecat/mozconfig
new file mode 100644
index 000000000..0162c51ac
--- /dev/null
+++ b/libre/icecat/mozconfig
@@ -0,0 +1,64 @@
+. $topsrcdir/browser/config/mozconfig
+
+ac_add_options --disable-official-branding
+ac_add_options --prefix=/usr
+ac_add_options --libdir=/usr/lib
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-bz2
+ac_add_options --with-system-png
+ac_add_options --with-system-libevent
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --enable-system-cairo
+ac_add_options --with-pthreads
+
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-optimize="-pipe -O3"
+ac_add_options --disable-safe-browsing
+ac_add_options --enable-extensions=default
+ac_add_options --enable-startup-notification
+ac_add_options --enable-pango
+ac_add_options --enable-strip
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --enable-smil
+ac_add_options --enable-canvas3d
+ac_add_options --enable-places
+ac_add_options --enable-shared-js
+ac_add_options --enable-url-classifier
+
+ac_add_options --enable-optimize
+ac_add_options --enable-strip
+ac_add_options --enable-install-strip
+ac_add_options --enable-jemalloc
+ac_add_options --enable-xterm-updates
+ac_add_options --enable-printing
+ac_add_options --enable-xinerama
+ac_add_options --enable-libxul
+ac_add_options --with-libxul-sdk=/usr/lib/xulrunner-devel-2.0
+ac_add_options --with-branding=browser/branding/unofficial
+ac_add_options --with-distribution-id=org.gnu.gnuzilla
+ac_add_options --with-user-appdir=.gnuzilla
+
+ac_add_options --disable-javaxpcom
+ac_add_options --disable-crashreporter
+ac_add_options --disable-updater
+ac_add_options --disable-tests
+ac_add_options --disable-xprint
+ac_add_options --disable-mochitest
+ac_add_options --disable-debug
+ac_add_options --disable-installer
+ac_add_options --disable-pedantic
+
+ac_add_options --enable-gio
+ac_add_options --disable-gnomevfs
+ac_add_options --enable-gconf
+ac_add_options --enable-libnotify
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/icecat/mozilla-firefox-1.0-lang.patch b/libre/icecat/mozilla-firefox-1.0-lang.patch
new file mode 100644
index 000000000..f0f7325a5
--- /dev/null
+++ b/libre/icecat/mozilla-firefox-1.0-lang.patch
@@ -0,0 +1,12 @@
+--- mozilla/browser/app/profile/firefox.js.lang 2005-01-13 15:32:03.509282726 +0100
++++ mozilla/browser/app/profile/firefox.js 2005-01-13 15:33:40.220914789 +0100
+@@ -253,6 +253,9 @@
+ pref("font.language.group", "chrome://global/locale/intl.properties");
+ pref("intl.menuitems.alwaysappendaccesskeys","chrome://global/locale/intl.properties");
+
++// Use LANG environment variable to choose locale
++pref("intl.locale.matchOS", true);
++
+ // 0=lines, 1=pages, 2=history , 3=text size
+ pref("mousewheel.withcontrolkey.action",3);
+ pref("mousewheel.withshiftkey.action",2);
diff --git a/libre/icecat/python2.7.patch b/libre/icecat/python2.7.patch
new file mode 100644
index 000000000..05a3e91a0
--- /dev/null
+++ b/libre/icecat/python2.7.patch
@@ -0,0 +1,11 @@
+--- configure.in 2010-10-12 10:44:37.000000000 -0700
++++ configure.in~ 2010-10-19 09:51:49.660019364 -0700
+@@ -811,7 +811,7 @@
+ AC_MSG_RESULT([yes])
+ fi
+
+-MOZ_PATH_PROGS(PYTHON, $PYTHON python2.5 python2.4 python)
++MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.5 python2.4 python)
+ if test -z "$PYTHON"; then
+ AC_MSG_ERROR([python was not found in \$PATH])
+ fi
diff --git a/libre/icecat/region.properties b/libre/icecat/region.properties
new file mode 100644
index 000000000..2e980987e
--- /dev/null
+++ b/libre/icecat/region.properties
@@ -0,0 +1,23 @@
+# Default search engine
+browser.search.defaultenginename=Duck Duck Go (SSL)
+
+# Search engine order (order displayed in the search bar dropdown)s
+browser.search.order.1=Duck Duck Go (SSL)
+browser.search.order.2=Duck Duck Go (Lite)
+
+
+# Keyword URL (for location bar searches)
+keyword.URL=https://duckduckgo.com/?q=
+
+# URL for site-specific search engines
+# TRANSLATION NOTE: {moz:domain} and {searchTerms} are placeholders for the site
+# to be searched and the user's search query. Place them in the appropriate location
+# for your locale's URL but do not translate them.
+browser.search.siteSearchURL=https://duckduckgo.com/?q=site%3A{moz:domain}+{searchTerms}
+
+# increment this number when anything gets changed in the list below. This will
+# cause Firefox to re-read these prefs and inject any new handlers into the
+# profile database. Note that "new" is defined as "has a different URL"; this
+# means that it's not possible to update the name of existing handler, so
+# don't make any spelling errors here.
+#gecko.handlerService.defaultHandlersVersion=3
diff --git a/libre/icecat/scroogle-ssl-english.xml b/libre/icecat/scroogle-ssl-english.xml
new file mode 100644
index 000000000..f817dce40
--- /dev/null
+++ b/libre/icecat/scroogle-ssl-english.xml
@@ -0,0 +1,14 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>Scroogle SSL English</os:ShortName>
+<os:Description>Scroogle SSL English</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAAAAAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAACZmZmZAAAAmZmZmZmZAAmZqqqqqpmQCZmQAAAAqZCZqQAAAAAKmZmgAAAAAAqZmaAACaoACpmZoACZAAAKmZmgAKkAAAqZmaAACpmaqpmZoAAAAAAKmZmqAAAAAAqZCZqgAAAJmZAJmaqqqqqZkACZmZmZmZkAAACZmZmZAADwDzgFwAPgA4ABAHyAAQAAAAAAAAAAAAAAAAAAAAAAAAAA4AMAAOADAAAAfAAAAHyAAeADgAHgA8ADAADwDwAA</os:Image>
+<UpdateInterval>7</UpdateInterval>
+<UpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/scroogle_ssl_en_post.xml</UpdateUrl>
+<IconUpdateUrl>http://mycroft.mozdev.org/updateos.php/id0/scroogle_ssl_en_post.ico</IconUpdateUrl>
+<SearchForm>https://ssl.scroogle.org/scrapen8.html</SearchForm>
+<os:Url type="text/html" method="GET" template="https://ssl.scroogle.org/cgi-bin/nbbwssl.cgi">
+ <os:Param name="Gw" value="{searchTerms}"/>
+ <os:Param name="l" value="en"/>
+</os:Url>
+</SearchPlugin> \ No newline at end of file
diff --git a/libre/icecat/xulrunner-copy-stub.patch b/libre/icecat/xulrunner-copy-stub.patch
new file mode 100644
index 000000000..b42bd76c8
--- /dev/null
+++ b/libre/icecat/xulrunner-copy-stub.patch
@@ -0,0 +1,11 @@
+--- browser/app/Makefile.in~ 2008-10-02 10:11:42.000000000 +0200
++++ browser/app/Makefile.in 2008-10-02 10:12:06.000000000 +0200
+@@ -414,7 +414,7 @@
+ else
+ ifdef LIBXUL_SDK
+ libs::
+- cp $(LIBXUL_DIST)/bin/xulrunner-stub$(BIN_SUFFIX) $(DIST)/bin/firefox$(BIN_SUFFIX)
++ cp $(LIBXUL_DIST)/bin/xulrunner-stub$(BIN_SUFFIX) $(DIST)/bin/icecat$(BIN_SUFFIX)
+ endif
+ endif
+
diff --git a/libre/icecat/yacy.xml b/libre/icecat/yacy.xml
new file mode 100644
index 000000000..61201ad20
--- /dev/null
+++ b/libre/icecat/yacy.xml
@@ -0,0 +1,9 @@
+<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
+<os:ShortName>YaCy</os:ShortName>
+<os:Description>YaCy is an open-source GPL-licensed software that can be used for stand-alone search engine installations or as a client for a multi-user P2P-based web indexing cluster. This is the access to peer 'kupferhammer-keller'.</os:Description>
+<os:InputEncoding>UTF-8</os:InputEncoding>
+<os:Image width="16" height="16">data:image/x-icon,%00%00%01%00%01%00%10%10%00%00%01%00%18%00h%2B%00%00%16%00%00%00(%00%00%00%10%00%00%00%20%00%00%00%01%00%18%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%CE%BD%7B%DE%CE%9C%8CkRkJ1kJ1kJ1kJ1kJ1sR9%C6%B5%9C%E7%DE%BD%E7%DE%BD%E7%DE%C6%E7%DE%C6%EF%EF%CE%DE%DE%AD%DE%CE%9C%BD%ADs%7BZ)%BD%ADk%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%7B%A5%8CJ%8CkB%CE%BD%84%CE%BD%84%CE%C6%8C%DE%CE%9C%DE%CE%A5%EF%EF%CE%DE%CE%9C%BD%ADkkJ)%D6%C6%8C%F7%F7%E7%F7%F7%E7%F7%F7%E7%F7%F7%E7%CE%BD%84%8Ck9%CE%BD%7B%CE%BD%84%CE%BD%84%CE%C6%8C%DE%CE%9C%EF%EF%CE%DE%CE%9C%C6%B5kkJ)%BD%ADk%EF%EF%CE%EF%EF%CE%EF%EF%CE%F7%F7%E7%DE%CE%A5%7BZ)%CE%BD%7B%CE%BD%7B%CE%BD%84%CE%BD%84%CE%C6%8C%E7%DE%C6%DE%CE%9C%C6%B5ksR9%A5%8CJ%DE%DE%AD%E7%DE%BD%EF%EF%CE%F7%F7%E7%E7%DE%C6%7BZ)%BD%ADk%CE%BD%7B%CE%BD%7B%CE%BD%84%CE%BD%84%E7%DE%BD%CE%C6%8C%C6%ADk%94%7BB%94%7BB%EF%EF%CE%F7%F7%E7%F7%F7%E7%F7%F7%E7%EF%EF%CE%8Ck9%A5%8CZ%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%84%E7%DE%BD%CE%C6%8C%C6%ADk%A5%8CZ%7BZ)%E7%DE%BD%F7%F7%E7%EF%EF%CE%EF%EF%DE%EF%EF%DE%A5%8CZ%8CkB%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%7B%E7%DE%BD%CE%BD%84%B8%A7d%BD%ADZkJ)%DE%DE%AD%F7%F7%E7%DE%DE%AD%EF%EF%CE%EF%EF%DE%BD%ADkkJ)%CE%BD%7B%CE%BD%7B%CE%BD%7B%CE%BD%7B%DE%D6%B5%CE%BD%7B%BD%ADZ%BD%ACikJ)%DE%CE%9C%F7%F7%E7%E7%DE%BD%EF%EF%CE%F7%F7%E7%CE%BD%7BZ1%18%BD%ADk%CE%BD%7B%CE%BD%7B%CE%BD%7B%DE%DE%AD%CE%BD%7B%BD%ADZ%BD%ADZ%7BZ)%C6%AD%7B%F7%F7%E7%E7%DE%BD%E7%DE%BD%F7%F7%E7%DE%CE%9CkJ)sR9%A5%8CZ%CE%BD%7B%CE%BD%7B%DE%DE%AD%CE%BD%7B%BD%ADZ%BD%ADZ%8Ck9%AD%9CZ%F7%F7%E7%EF%EF%CE%DE%CE%9C%F7%F7%E7%E7%DE%BD%BD%ADZ%9C%8CJZ1%18%A5%8CZ%CE%BD%7B%DE%DE%AD%C6%B5k%B5%A5J%BD%ADZ%94%7B9%9C%8CJ%F7%F7%E7%EF%EF%DE%CE%BD%84%F7%F7%E7%F7%EF%E7%EF%EF%CE%DE%CE%9C%9C%8CJkJ)%BD%ADk%DE%CE%A5%BD%ADk%AD%9CJ%B5%A5J%9C%8CJ%8Ck9%DE%CE%9C%DE%D6%9C%C6%B5Z%DE%CE%9C%F7%EF%DE%FF%FF%FF%EF%EF%DE%BD%ADZZ1!%BD%ADk%DE%CE%A5%BD%ADZ%AD%9CJ%AD%9CJ%AD%9CJsJ)kR)kR)kJ)%9C%8CJ%DE%CE%9C%F7%EF%DE%DE%DE%AD%94%7B9c9!%BD%ADk%DE%CE%A5%B5%9CR%AD%9CJ%AD%9CJ%AD%9CJ%AD%9CJ%B5%9CJ%B5%9CR%94%7BBc9%18%8Ck9%A5%8CJ%8Cs9Z1!%9C%8CR%CE%BD%84%DE%CE%9C%94%849%B5%9CR%BD%ADZ%BD%ADk%C6%B5k%CE%BD%7B%CE%BD%7B%CE%BD%7B%BD%ADskJ1R)%18kJ1%C6%AD%84%DE%CE%9C%DE%CE%9C%CE%BD%7B%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00</os:Image>
+<os:Url type="text/html" method="GET" template="http://yacy.dyndns.org:8000/yacysearch.html?query={searchTerms}">
+</os:Url><os:Url type="application/rss+xml" method="GET" template="http://yacy.dyndns.org:8000/yacysearch.rss?query={searchTerms}&amp;maximumRecords=10&amp;verify=false">
+</os:Url>
+</SearchPlugin>
diff --git a/libre/initscripts/PKGBUILD b/libre/initscripts/PKGBUILD
new file mode 100644
index 000000000..886f106ff
--- /dev/null
+++ b/libre/initscripts/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 100111 2010-11-20 11:25:37Z pierre $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+
+pkgname=initscripts
+pkgver=2011.02.1
+pkgrel=1
+pkgdesc="System initialization/bootup scripts (Parabola branding)"
+arch=('i686' 'x86_64')
+url="http://parabolagnulinux.org"
+license=('GPL')
+groups=('base')
+backup=(etc/inittab etc/rc.conf etc/rc.local etc/rc.local.shutdown etc/conf.d/wireless)
+depends=('bash' 'awk' 'grep' 'coreutils' 'sed' 'udev'
+ 'net-tools' 'ncurses' 'kbd' 'findutils' 'sysvinit')
+optdepends=('bridge-utils: Network bridging support'
+ 'dhcpcd: DHCP network configuration'
+ 'wireless_tools: Wireless networking')
+install=initscripts.install
+source=("ftp://ftp.archlinux.org/other/initscripts/${pkgname}-${pkgver}.tar.xz"
+ 'wireless.conf.d'
+ 'parabola-branding.patch')
+md5sums=('22dcf8fc052deef0894d5caa0981419a'
+ '027576534885b8d5dded9be546057b12'
+ '030deb770293ea5a1e632934095af412')
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ msg2 "Rebranding for Parabola"
+ patch -Np1 -i ${srcdir}/parabola-branding.patch
+
+ DESTDIR=${pkgdir} ./install.sh
+ install -D -m644 ${srcdir}/wireless.conf.d ${pkgdir}/etc/conf.d/wireless
+}
diff --git a/libre/initscripts/initscripts.install b/libre/initscripts/initscripts.install
new file mode 100644
index 000000000..360101c10
--- /dev/null
+++ b/libre/initscripts/initscripts.install
@@ -0,0 +1,7 @@
+post_upgrade() {
+ if [ "$(vercmp $2 2009.07)" -lt 0 ]; then
+ echo "==> Adjusting /etc/inittab for transition to /dev/tty standard."
+ echo "==> Original file saved as /etc/inittab.pacsave"
+ sed -i'.pacsave' 's#vc/\([0-9]\)#tty\1#' /etc/inittab
+ fi
+}
diff --git a/libre/initscripts/parabola-branding.patch b/libre/initscripts/parabola-branding.patch
new file mode 100644
index 000000000..a309f9a4c
--- /dev/null
+++ b/libre/initscripts/parabola-branding.patch
@@ -0,0 +1,52 @@
+diff -auN initscripts-2011.02.1/PKGBUILD initscripts-2011.02.1-parabola//PKGBUILD
+--- initscripts-2011.02.1/PKGBUILD 2011-02-01 15:34:45.000000000 -0300
++++ initscripts-2011.02.1-parabola//PKGBUILD 2011-02-28 11:06:11.000000000 -0300
+@@ -1,9 +1,9 @@
+ pkgname=initscripts-git
+ pkgver=$(date +%s)
+ pkgrel=$(git log --pretty=format:%h |head -n 1)
+-pkgdesc="System initialization/bootup scripts"
++pkgdesc="System initialization/bootup scripts, rebranded for Parabola"
+ arch=('i686' 'x86_64')
+-url="http://www.archlinux.org"
++url="http://parabolagnulinux.org"
+ license=('GPL')
+ groups=('base')
+ conflicts=('initscripts')
+diff -auN initscripts-2011.02.1/functions initscripts-2011.02.1-parabola//functions
+--- initscripts-2011.02.1/functions 2011-02-01 15:34:45.000000000 -0300
++++ initscripts-2011.02.1-parabola//functions 2011-02-28 11:13:46.000000000 -0300
+@@ -53,7 +53,7 @@
+ if [[ $USECOLOR = YES || $USECOLOR = yes ]]; then
+ C_MAIN="\033[1;37;40m" # main text
+
+- C_OTHER="\033[1;34;40m" # prefix & brackets
++ C_OTHER="\033[0;35;40m" # prefix & brackets
+ C_SEPARATOR="\033[1;30;40m" # separator
+
+ C_BUSY="\033[0;36;40m" # busy
+diff -auN initscripts-2011.02.1/rc.conf initscripts-2011.02.1-parabola//rc.conf
+--- initscripts-2011.02.1/rc.conf 2011-02-01 15:34:45.000000000 -0300
++++ initscripts-2011.02.1-parabola//rc.conf 2011-02-28 11:06:37.000000000 -0300
+@@ -1,5 +1,5 @@
+ #
+-# /etc/rc.conf - Main Configuration for Arch Linux
++# /etc/rc.conf - Main Configuration for Parabola GNU/Linux-Libre
+ #
+
+ # -----------------------------------------------------------------------
+diff -auN initscripts-2011.02.1/rc.sysinit initscripts-2011.02.1-parabola//rc.sysinit
+--- initscripts-2011.02.1/rc.sysinit 2011-02-01 15:34:45.000000000 -0300
++++ initscripts-2011.02.1-parabola//rc.sysinit 2011-02-28 11:08:29.000000000 -0300
+@@ -7,8 +7,9 @@
+ . /etc/rc.d/functions
+
+ echo " "
+-printhl "Arch Linux\n"
+-printhl "${C_H2}http://www.archlinux.org"
++printhl "Parabola GNU/Linux-Libre\n"
++printhl "${C_H2}http://parabolagnulinux.org\n"
++printhl "You're booting into a libre version of Archlinux."
+ printsep
+
+ run_hook sysinit_start
diff --git a/libre/initscripts/wireless.conf.d b/libre/initscripts/wireless.conf.d
new file mode 100644
index 000000000..47540ef40
--- /dev/null
+++ b/libre/initscripts/wireless.conf.d
@@ -0,0 +1,12 @@
+#
+# Settings for wireless cards
+#
+# For each wireless interface declared in INTERFACES (in rc.conf), declare
+# a wlan_${IF} variable that contains the arguments to be passed to
+# iwconfig(8). Then list the original interface name in the
+# WLAN_INTERFACES array.
+#
+
+#wlan_eth0="eth0 mode managed essid default"
+#WLAN_INTERFACES=(eth0)
+
diff --git a/libre/kernel26-libre-lts/PKGBUILD b/libre/kernel26-libre-lts/PKGBUILD
new file mode 100644
index 000000000..1703e2073
--- /dev/null
+++ b/libre/kernel26-libre-lts/PKGBUILD
@@ -0,0 +1,227 @@
+# $Id$
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+
+pkgbase=kernel26-libre-lts
+pkgname=('kernel26-libre-lts' 'kernel26-libre-lts-headers') # Build stock -lts kernel
+_kernelname=${pkgname#kernel26-libre}
+_basekernel=2.6.32
+_preset=kernel26-lts.preset
+pkgver=${_basekernel}.33
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL2')
+url="http://linux-libre.fsfla.org"
+source=(http://www.fsfla.org/svnwiki/selibre/linux-libre/download/releases/${pkgver}-libre2/linux-${pkgver}-libre2.tar.bz2
+ libata-alignment.patch
+ # the main kernel config files
+ config.i686 config.x86_64
+ # standard config files for mkinitcpio ramdisk
+ ${_preset}
+ ${pkgname}.install)
+md5sums=('ad33db040de641a00c60726531192413'
+ '30851deee235a7486bd408cbe8eb2d71'
+ '8061d2986b33c052153edebaee435b8f'
+ 'aa1feef81f058ab623ef5aeac40af00d'
+ '2cbfeb3e2a18d45f82f613e97fc23355'
+ 'fbfc7a1af3208c7b729055d91e1c149a')
+
+build() {
+ cd ${srcdir}/linux-$pkgver
+
+ # fix 22343 udev crashes
+ patch -Np1 -i ${srcdir}/libata-alignment.patch
+
+ cat ../config.$CARCH >./.config
+
+ if [ "${_kernelname}" != "" ]; then
+ sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config
+ fi
+
+ for this_doesnt_build in CONFIG_RT2860 CONFIG_RT2870 CONFIG_RT3090; do
+ sed -i "s|^${this_doesnt_build}=.*|# ${this_doesnt_build} is not set|g" ./.config
+ done
+ # remove the extraversion from Makefile
+ # this ensures our kernel version is always 2.6.XX-lts
+ # this way, minor kernel updates will not break external modules
+ sed -i 's|^EXTRAVERSION = .*$|EXTRAVERSION = |g' Makefile
+ # get kernel version
+ make prepare
+ # load configuration
+ # Configure the kernel. Replace the line below with one of your choice.
+ #make menuconfig # CLI menu for configuration
+ #make xconfig # X-based configuration
+ #make oldconfig # using old config from previous kernel version
+ # ... or manually edit .config
+ ####################
+ # stop here
+ # this is useful to configure the kernel
+ #msg "Stopping build"
+ # return 1
+ ####################
+ yes "" | make config
+ # build!
+ make ${MAKEFLAGS} bzImage modules
+}
+
+package_kernel26-libre-lts() {
+ pkgdesc="The Linux-libre Kernel and modules - stable longtime supported kernel package suitable for servers"
+ backup=(etc/mkinitcpio.d/${_preset})
+ depends=('coreutils' 'module-init-tools' 'mkinitcpio>=0.6.4')
+ install=${pkgname}.install
+ provides=("kernel26-lts=$pkgver")
+ replaces=('kernel26-lts')
+ conflicts=('kernel26-lts')
+
+ KARCH=x86
+ cd ${srcdir}/linux-$pkgver
+ # get kernel version
+ _kernver="$(make kernelrelease)"
+ mkdir -p ${pkgdir}/{lib/modules,lib/firmware,boot}
+ make INSTALL_MOD_PATH=${pkgdir} modules_install
+ cp System.map ${pkgdir}/boot/System.map26${_kernelname}
+ cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname}
+ # add vmlinux
+ install -m644 -D vmlinux ${pkgdir}/usr/src/linux-${_kernver}/vmlinux
+
+ # install fallback mkinitcpio.conf file and preset file for kernel
+ install -m644 -D ${srcdir}/${_preset} ${pkgdir}/etc/mkinitcpio.d/${_preset}
+ # set correct depmod command for install
+ sed \
+ -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \
+ -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \
+ -i $startdir/${pkgname}.install
+ sed \
+ -e "s|source .*|source /etc/mkinitcpio.d/kernel26${_kernelname}.kver|g" \
+ -e "s|default_image=.*|default_image=\"/boot/kernel26${_kernelname}.img\"|g" \
+ -e "s|fallback_image=.*|fallback_image=\"/boot/kernel26${_kernelname}-fallback.img\"|g" \
+ -i ${pkgdir}/etc/mkinitcpio.d/${_preset}
+
+ echo -e "# DO NOT EDIT THIS FILE\nALL_kver='${_kernver}'" > ${pkgdir}/etc/mkinitcpio.d/kernel26${_kernelname}.kver
+ # remove build and source links
+ rm -f ${pkgdir}/lib/modules/${_kernver}/{source,build}
+ # remove the firmware
+ rm -rf ${pkgdir}/lib/firmware
+ # gzip -9 all modules to safe 100MB of space
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
+
+package_kernel26-libre-lts-headers() {
+ provides=("kernel26-lts-headers=$pkgver")
+ replaces=('kernel26-lts-headers')
+ conflicts=('kernel26-lts-headers')
+ pkgdesc="Header files and scripts for building modules for kernel26-libre-lts"
+ mkdir -p ${pkgdir}/lib/modules/${_kernver}
+ cd ${pkgdir}/lib/modules/${_kernver}
+ ln -sf ../../../usr/src/linux-${_kernver} build
+ cd ${srcdir}/linux-$pkgver
+ install -D -m644 Makefile \
+ ${pkgdir}/usr/src/linux-${_kernver}/Makefile
+ install -D -m644 kernel/Makefile \
+ ${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile
+ install -D -m644 .config \
+ ${pkgdir}/usr/src/linux-${_kernver}/.config
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include
+
+ for i in acpi asm-{generic,x86} config linux math-emu media net pcmcia scsi sound trace video; do
+ cp -a include/$i ${pkgdir}/usr/src/linux-${_kernver}/include/
+ done
+
+ # copy arch includes for external modules
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86
+ cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/
+
+ # copy files necessary for later builds, like nvidia and vmware
+ cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver}
+ cp -a scripts ${pkgdir}/usr/src/linux-${_kernver}
+ # fix permissions on scripts dir
+ chmod og-w -R ${pkgdir}/usr/src/linux-${_kernver}/scripts
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions
+
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel
+
+ cp arch/$KARCH/Makefile ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
+ if [ "$CARCH" = "i686" ]; then
+ cp arch/$KARCH/Makefile_32.cpu ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/
+ fi
+ cp arch/$KARCH/kernel/asm-offsets.s ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/kernel/
+
+ # add headers for lirc package
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video
+ cp drivers/media/video/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/
+ for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102 usbvideo zc0301; do
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
+ cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i
+ done
+ # add docbook makefile
+ install -D -m644 Documentation/DocBook/Makefile \
+ ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile
+ # add dm headers
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
+ cp drivers/md/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/md
+ # add inotify.h
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/linux
+ cp include/linux/inotify.h ${pkgdir}/usr/src/linux-${_kernver}/include/linux/
+ # add wireless headers
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
+ cp net/mac80211/*.h ${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/
+ # add dvb headers for external modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/9912
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core
+ cp drivers/media/dvb/dvb-core/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/
+ # add dvb headers for external modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/11194
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+ cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/
+ # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new
+ # in reference to:
+ # http://bugs.archlinux.org/task/13146
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ cp drivers/media/dvb/frontends/lgdt330x.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ cp drivers/media/video/msp3400-driver.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ # add dvb headers
+ # in reference to:
+ # http://bugs.archlinux.org/task/20402
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb
+ cp drivers/media/dvb/dvb-usb/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends
+ cp drivers/media/dvb/frontends/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners
+ cp drivers/media/common/tuners/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/
+ # add xfs and shmem for aufs building
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/mm
+ cp fs/xfs/xfs_sb.h ${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h
+ # add headers vor virtualbox
+ # in reference to:
+ # http://bugs.archlinux.org/task/14568
+ cp -a include/drm $pkgdir/usr/src/linux-${_kernver}/include/
+
+ # add headers for broadcom wl
+ # in reference to:
+ # http://bugs.archlinux.org/task/14568
+ cp -a include/trace $pkgdir/usr/src/linux-${_kernver}/include/
+ # add headers for crypto modules
+ # in reference to:
+ # http://bugs.archlinux.org/task/22081
+ cp -a include/crypto $pkgdir/usr/src/linux-${_kernver}/include/
+
+ # copy in Kconfig files
+ for i in `find . -name "Kconfig*"`; do
+ mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/`echo $i | sed 's|/Kconfig.*||'`
+ cp $i ${pkgdir}/usr/src/linux-${_kernver}/$i
+ done
+
+ cd ${pkgdir}/usr/src/linux-${_kernver}/include && ln -s asm-$KARCH asm
+ # add header for aufs2-util
+ cp -a ${srcdir}/linux-$pkgver/include/asm-generic/bitsperlong.h ${pkgdir}/usr/src/linux-${_kernver}/include/asm/
+
+ chown -R root.root ${pkgdir}/usr/src/linux-${_kernver}
+ find ${pkgdir}/usr/src/linux-${_kernver} -type d -exec chmod 755 {} \;
+
+ # remove unneeded architectures
+ rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa}
+}
+
diff --git a/libre/kernel26-libre-lts/config.i686 b/libre/kernel26-libre-lts/config.i686
new file mode 100644
index 000000000..ada856765
--- /dev/null
+++ b/libre/kernel26-libre-lts/config.i686
@@ -0,0 +1,4769 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32
+# Tue Mar 15 11:13:21 2011
+#
+# CONFIG_64BIT is not set
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_32_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION="-lts"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_EVENT_PROFILE=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+CONFIG_OPROFILE_IBS=y
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_BIGSMP is not set
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_VMI=y
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_LGUEST_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+CONFIG_M686=y
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+# CONFIG_GENERIC_CPU is not set
+CONFIG_X86_GENERIC=y
+CONFIG_X86_CPU=y
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=5
+CONFIG_X86_XADD=y
+# CONFIG_X86_PPRO_FENCE is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_USE_PPRO_CHECKSUM=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+# CONFIG_X86_DS is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_IOMMU_API=y
+CONFIG_NR_CPUS=8
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_VM86=y
+CONFIG_TOSHIBA=m
+CONFIG_I8K=m
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+# CONFIG_NOHIGHMEM is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_HIGHMEM=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+# CONFIG_HIGHPTE is not set
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW_64K=y
+# CONFIG_MATH_EMULATION is not set
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_KEXEC_JUMP is not set
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_SBS=m
+CONFIG_SFI=y
+CONFIG_X86_APM_BOOT=y
+CONFIG_APM=y
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_DO_ENABLE=y
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_ALLOW_INTS is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K6=m
+CONFIG_X86_POWERNOW_K7=m
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=m
+CONFIG_X86_GX_SUSPMOD=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_SPEEDSTEP_ICH=m
+CONFIG_X86_SPEEDSTEP_SMI=m
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_CPUFREQ_NFORCE2=m
+CONFIG_X86_LONGRUN=m
+CONFIG_X86_LONGHAUL=m
+CONFIG_X86_E_POWERSAVER=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_LEGACY=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISA=y
+# CONFIG_EISA is not set
+# CONFIG_MCA is not set
+# CONFIG_SCx200 is not set
+CONFIG_OLPC=y
+CONFIG_K8_NB=y
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_IOCTL=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_TCIC=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCCARD_NONSTATIC=m
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_MISC=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_LTPC=m
+CONFIG_COPS=m
+CONFIG_COPS_DAYNA=y
+CONFIG_COPS_TANGENT=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=1
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_WIRELESS_OLD_REGULATORY is not set
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_ISAPNP=y
+# CONFIG_PNPBIOS is not set
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_HP_ILO=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_ISL29003=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+CONFIG_IDE_LEGACY=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_CS5535=m
+CONFIG_BLK_DEV_CS5536=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+
+#
+# Other IDE chipsets support
+#
+
+#
+# Note: most of these also require special kernel boot parameters
+#
+CONFIG_BLK_DEV_4DRIVES=m
+CONFIG_BLK_DEV_ALI14XX=m
+CONFIG_BLK_DEV_DTC2278=m
+CONFIG_BLK_DEV_HT6560B=m
+CONFIG_BLK_DEV_QD65XX=m
+CONFIG_BLK_DEV_UMC8672=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_U14_34F=m
+# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
+# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+CONFIG_SATA_SVW=m
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_INIC162X=m
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_WINBOND_VLB=m
+CONFIG_PATA_SCH=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_RAID6_PQ=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# See the help texts for more information.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_IEEE1394 is not set
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_EL1=m
+CONFIG_EL2=m
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_EL3=m
+CONFIG_3C515=m
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_LANCE=m
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_WD80x3=m
+CONFIG_ULTRA=m
+CONFIG_SMC9194=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_AT1700=m
+CONFIG_DEPCA=m
+CONFIG_HP100=m
+CONFIG_NET_ISA=y
+CONFIG_E2100=m
+CONFIG_EWRK3=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
+CONFIG_LP486E=m
+CONFIG_ETH16I=m
+CONFIG_NE2000=m
+CONFIG_ZNET=m
+CONFIG_SEEQ8005=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_AC3200=m
+CONFIG_APRICOT=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+# CONFIG_FORCEDETH_NAPI is not set
+CONFIG_CS89x0=m
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T3=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLGE=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_LEDS=y
+CONFIG_ATH_COMMON=m
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_DEBUG is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_WL12XX=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1271=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_ISDN_HDLC=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_INPORT=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_STALDRV is not set
+CONFIG_NOZOMI=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_DTLK=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+CONFIG_SONYPI=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+CONFIG_CS5535_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Graphics adapter I2C/DDC channel drivers
+#
+# CONFIG_I2C_VOODOO3 is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_ISA=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_STUB is not set
+CONFIG_SCx200_ACB=m
+
+#
+# Miscellaneous I2C Chip support
+#
+CONFIG_DS1682=m
+CONFIG_SENSORS_TSL2550=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO expanders:
+#
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_LANGWELL=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_POWER=m
+CONFIG_WM8350_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_OLPC=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7473=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_APPLESMC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC7240_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# ISA-based Watchdog Cards
+#
+CONFIG_PCWATCHDOG=m
+CONFIG_MIXCOMWD=m
+CONFIG_WDT=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=m
+CONFIG_MFD_WM8350=m
+CONFIG_MFD_WM8350_I2C=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_AB3100_CORE=m
+CONFIG_AB3100_OTP=m
+CONFIG_EZX_PCAP=y
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TDA9875=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_ET61X251=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_ZC0301=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DAB=y
+CONFIG_USB_DABUSB=m
+
+#
+# Graphics support
+#
+CONFIG_AGP=m
+CONFIG_AGP_ALI=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_AMD64=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_VGA_ARB=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_ISA=y
+CONFIG_SND_ADLIB=m
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_DT019X=m
+CONFIG_SND_ES968=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_SC6000=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SGALAXY=m
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HIFIER=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_BERRY_CHARGE=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_VST=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD76X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB3100=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_DMADEVICES=y
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_SMX=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+
+#
+# TI VLYNQ
+#
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_USB_IP_COMMON=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IP_HOST=m
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_POCH=m
+CONFIG_OTUS=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_RT3090=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_8255=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+# CONFIG_ALTERA_PCIE_CHDMA is not set
+CONFIG_RTL8187SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192E=m
+# CONFIG_TRANZPORT is not set
+
+#
+# Android
+#
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+CONFIG_INPUT_GPIO=m
+CONFIG_DST=m
+# CONFIG_DST_DEBUG is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_B3DFG=m
+CONFIG_IDE_PHISON=m
+CONFIG_PLAN9AUTH=m
+CONFIG_LINE6_USB=m
+# CONFIG_DRM_RADEON_KMS is not set
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_FB_UDL=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+# CONFIG_VME_BUS is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_TC1100_WMI=m
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_THINKPAD_ACPI=m
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ACPI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_OCFS2_FS_POSIX_ACL=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_POWER_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_RODATA is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_4KSTACKS is not set
+CONFIG_DOUBLEFAULT=y
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_FILE_CAPABILITIES=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+# CONFIG_IMA is not set
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_586=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_LGUEST=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=m
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
diff --git a/libre/kernel26-libre-lts/config.x86_64 b/libre/kernel26-libre-lts/config.x86_64
new file mode 100644
index 000000000..30893ae2c
--- /dev/null
+++ b/libre/kernel26-libre-lts/config.x86_64
@@ -0,0 +1,4577 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32
+# Tue Mar 15 09:09:23 2011
+#
+CONFIG_64BIT=y
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86=y
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_MMU=y
+CONFIG_ZONE_DMA=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_HAVE_INTEL_TXT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_HT=y
+CONFIG_X86_TRAMPOLINE=y
+# CONFIG_KTIME_SCALAR is not set
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION="-lts"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_LZMA=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_LZMA=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_TREE=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=64
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=19
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_MM_OWNER=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_RELAY=y
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_HAVE_PERF_EVENTS=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+CONFIG_EVENT_PROFILE=y
+CONFIG_PERF_COUNTERS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_PROFILING=y
+CONFIG_TRACEPOINTS=y
+CONFIG_OPROFILE=m
+CONFIG_OPROFILE_IBS=y
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+CONFIG_BLOCK_COMPAT=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_FREEZER=y
+
+#
+# Processor type and features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+# CONFIG_SPARSE_IRQ is not set
+CONFIG_X86_MPPARSE=y
+# CONFIG_X86_EXTENDED_PLATFORM is not set
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_XEN=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=32
+CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_PARAVIRT=y
+# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+# CONFIG_MCRUSOE is not set
+# CONFIG_MEFFICEON is not set
+# CONFIG_MWINCHIPC6 is not set
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+# CONFIG_MCYRIXIII is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+# CONFIG_MPSC is not set
+# CONFIG_MCORE2 is not set
+# CONFIG_MATOM is not set
+CONFIG_GENERIC_CPU=y
+CONFIG_X86_CPU=y
+CONFIG_X86_L1_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_XADD=y
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_TSC=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_DEBUGCTLMSR=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+# CONFIG_X86_DS is not set
+CONFIG_HPET_TIMER=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_DMI=y
+CONFIG_GART_IOMMU=y
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+# CONFIG_AMD_IOMMU is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOMMU_API=y
+# CONFIG_MAXSMP is not set
+CONFIG_NR_CPUS=64
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_MC=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_I8K=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_X86_MSR=m
+CONFIG_X86_CPUID=m
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_DIRECT_GBPAGES=y
+CONFIG_NUMA=y
+CONFIG_K8_NUMA=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NODES_SHIFT=6
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_ZONE_DMA_FLAG=1
+CONFIG_BOUNCE=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_HAVE_MLOCK=y
+CONFIG_HAVE_MLOCKED_PAGE_BIT=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_MEMORY_FAILURE=y
+CONFIG_HWPOISON_INJECT=m
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_EFI=y
+CONFIG_SECCOMP=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_KEXEC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_KEXEC_JUMP=y
+CONFIG_PHYSICAL_START=0x1000000
+# CONFIG_RELOCATABLE is not set
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_COMPAT_VDSO is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+
+#
+# Power management and ACPI options
+#
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_CAN_PM_TRACE=y
+# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_SLEEP=y
+CONFIG_SUSPEND=y
+# CONFIG_PM_TEST_SUSPEND is not set
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HIBERNATION=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_RUNTIME=y
+CONFIG_ACPI=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_NUMA=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_X86_PM_TIMER=y
+CONFIG_ACPI_CONTAINER=m
+CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_SBS=m
+CONFIG_SFI=y
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=m
+# CONFIG_CPU_FREQ_DEBUG is not set
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# CPUFreq processor drivers
+#
+CONFIG_X86_ACPI_CPUFREQ=m
+CONFIG_X86_POWERNOW_K8=m
+# CONFIG_X86_SPEEDSTEP_CENTRINO is not set
+CONFIG_X86_P4_CLOCKMOD=m
+
+#
+# shared options
+#
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Memory power savings
+#
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I7300_IDLE=m
+
+#
+# Bus options (PCI etc.)
+#
+CONFIG_PCI=y
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_INTR_REMAP is not set
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_LEGACY=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_STUB=m
+CONFIG_HT_IRQ=y
+CONFIG_PCI_IOV=y
+CONFIG_ISA_DMA_API=y
+CONFIG_K8_NB=y
+CONFIG_PCCARD=m
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_IOCTL=y
+CONFIG_CARDBUS=y
+
+#
+# PC-card bridges
+#
+CONFIG_YENTA=m
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_PD6729=m
+CONFIG_I82092=m
+CONFIG_PCCARD_NONSTATIC=m
+CONFIG_HOTPLUG_PCI=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
+
+#
+# Executable file formats / Emulations
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=y
+CONFIG_IA32_EMULATION=y
+CONFIG_IA32_AOUT=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+CONFIG_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_OPTIMISTIC_DAD=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_NETLABEL=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_IPV6 is not set
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+
+#
+# IPVS scheduler
+#
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_NQ=m
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_FTP=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_IP_DCCP=m
+CONFIG_INET_DCCP_DIAG=m
+
+#
+# DCCP CCIDs Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+CONFIG_IP_DCCP_TFRC_LIB=y
+
+#
+# DCCP Kernel Hacking
+#
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_SCTP=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+# CONFIG_SCTP_HMAC_NONE is not set
+CONFIG_SCTP_HMAC_SHA1=y
+# CONFIG_SCTP_HMAC_MD5 is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_STP=m
+CONFIG_BRIDGE=m
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=m
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_ATALK=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_IPDDP=m
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPDDP_DECAP=y
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_PHONET=m
+CONFIG_IEEE802154=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_CGROUP=y
+# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+
+#
+# Network testing
+#
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_DROP_MONITOR=y
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_ULTRA=y
+
+#
+# IrDA options
+#
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_FAST_RR=y
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+CONFIG_DONGLE=y
+CONFIG_ESI_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_LITELINK_DONGLE=m
+CONFIG_MA600_DONGLE=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_MCP2120_DONGLE=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_NSC_FIR=m
+CONFIG_WINBOND_FIR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_ALI_FIR=m
+CONFIG_VLSI_FIR=m
+CONFIG_VIA_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+# CONFIG_BT_BNEP_MC_FILTER is not set
+# CONFIG_BT_BNEP_PROTO_FILTER is not set
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HIDP=m
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_DEFAULT_PS_VALUE=1
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_WIRELESS_OLD_REGULATORY is not set
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_DEBUG is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+# CONFIG_DEVTMPFS_MOUNT is not set
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_CONCAT is not set
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_RAM=m
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_TS5500 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+CONFIG_MTD_PLATRAM=m
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_PHRAM=m
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+
+#
+# UBI - Unsorted block images
+#
+# CONFIG_MTD_UBI is not set
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_SUPERIO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_AX88796=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PNP=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+
+#
+# Protocols
+#
+CONFIG_PNPACPI=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_FD=m
+# CONFIG_PARIDE is not set
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_CPQ_CISS_DA=m
+# CONFIG_CISS_SCSI_TAPE is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_VIRTIO_BLK=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_IBM_ASM is not set
+CONFIG_PHANTOM=m
+CONFIG_SGI_IOC4=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIFM_7XX1=m
+CONFIG_ICS932S401=m
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_HP_ILO=m
+CONFIG_DELL_LAPTOP=m
+CONFIG_ISL29003=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_HAVE_IDE=y
+CONFIG_IDE=m
+
+#
+# Please see Documentation/ide/ide.txt for help/info on IDE drives
+#
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_ATAPI=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_IDE_GD=m
+CONFIG_IDE_GD_ATA=y
+CONFIG_IDE_GD_ATAPI=y
+CONFIG_BLK_DEV_IDECS=m
+CONFIG_BLK_DEV_DELKIN=m
+CONFIG_BLK_DEV_IDECD=m
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+CONFIG_BLK_DEV_IDETAPE=m
+CONFIG_BLK_DEV_IDEACPI=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_PROC_FS=y
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+CONFIG_BLK_DEV_PLATFORM=m
+CONFIG_BLK_DEV_CMD640=m
+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
+CONFIG_BLK_DEV_IDEPNP=m
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+
+#
+# PCI IDE chipsets support
+#
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_OFFBOARD is not set
+CONFIG_BLK_DEV_GENERIC=m
+CONFIG_BLK_DEV_OPTI621=m
+CONFIG_BLK_DEV_RZ1000=m
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_AEC62XX=m
+CONFIG_BLK_DEV_ALI15X3=m
+CONFIG_BLK_DEV_AMD74XX=m
+CONFIG_BLK_DEV_ATIIXP=m
+CONFIG_BLK_DEV_CMD64X=m
+CONFIG_BLK_DEV_TRIFLEX=m
+CONFIG_BLK_DEV_CS5520=m
+CONFIG_BLK_DEV_CS5530=m
+CONFIG_BLK_DEV_HPT366=m
+CONFIG_BLK_DEV_JMICRON=m
+CONFIG_BLK_DEV_SC1200=m
+CONFIG_BLK_DEV_PIIX=m
+CONFIG_BLK_DEV_IT8172=m
+CONFIG_BLK_DEV_IT8213=m
+CONFIG_BLK_DEV_IT821X=m
+CONFIG_BLK_DEV_NS87415=m
+CONFIG_BLK_DEV_PDC202XX_OLD=m
+CONFIG_BLK_DEV_PDC202XX_NEW=m
+CONFIG_BLK_DEV_SVWKS=m
+CONFIG_BLK_DEV_SIIMAGE=m
+CONFIG_BLK_DEV_SIS5513=m
+CONFIG_BLK_DEV_SLC90E66=m
+CONFIG_BLK_DEV_TRM290=m
+CONFIG_BLK_DEV_VIA82CXXX=m
+CONFIG_BLK_DEV_TC86C001=m
+CONFIG_BLK_DEV_IDEDMA=y
+
+#
+# SCSI device support
+#
+CONFIG_RAID_ATTRS=m
+CONFIG_SCSI=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CHR_DEV_OSST=m
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+# CONFIG_SCSI_FC_TGT_ATTRS is not set
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_BE2ISCSI=m
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC79XX=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_SCSI_AIC94XX=m
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_SCSI_MVSAS=m
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_SAS=m
+CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_EATA=m
+# CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
+# CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_INITIO=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_IMM=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPR_TRACE is not set
+# CONFIG_SCSI_IPR_DUMP is not set
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_LPFC=m
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DC390T=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_OSD_DPRINT_SENSE=0
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_ACPI=y
+CONFIG_SATA_PMP=y
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_SIL24=m
+CONFIG_ATA_SFF=y
+CONFIG_SATA_SVW=m
+CONFIG_ATA_PIIX=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SATA_INIC162X=m
+CONFIG_PATA_ACPI=m
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_SCH=m
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MD_RAID6_PQ=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_FAULTY=m
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_FUSION=y
+CONFIG_FUSION_SPI=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_CTL=m
+# CONFIG_FUSION_LOGGING is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# You can enable one or both FireWire driver stacks.
+#
+
+#
+# See the help texts for more information.
+#
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIREWIRE_NET=m
+# CONFIG_IEEE1394 is not set
+CONFIG_I2O=m
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_BUS=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_SCSI=m
+CONFIG_I2O_PROC=m
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_NETDEVICES=y
+CONFIG_IFB=m
+CONFIG_DUMMY=m
+CONFIG_BONDING=m
+CONFIG_MACVLAN=m
+CONFIG_EQUALIZER=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_NET_SB1000=m
+# CONFIG_ARCNET is not set
+CONFIG_PHYLIB=m
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+# CONFIG_MDIO_BITBANG is not set
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
+CONFIG_ENC28J60=m
+# CONFIG_ENC28J60_WRITEVERIFY is not set
+CONFIG_ETHOC=m
+CONFIG_DNET=m
+CONFIG_NET_TULIP=y
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_TULIP=m
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_DE4X5=m
+CONFIG_WINBOND_840=m
+CONFIG_DM9102=m
+CONFIG_ULI526X=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_HP100=m
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_PCI=y
+CONFIG_PCNET32=m
+CONFIG_AMD8111_ETH=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_FORCEDETH=m
+# CONFIG_FORCEDETH_NAPI is not set
+CONFIG_E100=m
+CONFIG_FEALNX=m
+CONFIG_NATSEMI=m
+CONFIG_NE2K_PCI=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+# CONFIG_8139TOO_PIO is not set
+CONFIG_8139TOO_TUNE_TWISTER=y
+CONFIG_8139TOO_8129=y
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R6040=m
+CONFIG_SIS900=m
+CONFIG_EPIC100=m
+CONFIG_SMSC9420=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_TLAN=m
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_VIA_RHINE=m
+# CONFIG_VIA_RHINE_MMIO is not set
+CONFIG_SC92031=m
+CONFIG_NET_POCKET=y
+CONFIG_ATP=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_ATL2=m
+CONFIG_NETDEV_1000=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_DL2K=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IP1000=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_NS83820=m
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_R8169=m
+# CONFIG_R8169_VLAN is not set
+CONFIG_SIS190=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_VIA_VELOCITY=m
+CONFIG_TIGON3=m
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_QLA3XXX=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_JME=m
+CONFIG_NETDEV_10000=y
+CONFIG_MDIO=m
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T3=m
+CONFIG_ENIC=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGB=m
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NIU=m
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_TEHUTI=m
+CONFIG_BNX2X=m
+CONFIG_QLGE=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_BE2NET=m
+# CONFIG_TR is not set
+CONFIG_WLAN=y
+# CONFIG_WLAN_PRE80211 is not set
+CONFIG_WLAN_80211=y
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM=m
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PRISM54=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_ADM8211=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_MWL8K=m
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_LEDS=y
+CONFIG_ATH_COMMON=m
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_DEBUG is not set
+CONFIG_AR9170_USB=m
+CONFIG_AR9170_LEDS=y
+CONFIG_IPW2100=m
+CONFIG_IPW2100_MONITOR=y
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2200=m
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLWIFI=m
+CONFIG_IWLWIFI_LEDS=y
+CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLAGN=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWL3945=m
+CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+CONFIG_B43=m
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCMCIA=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+# CONFIG_B43LEGACY_DEBUG is not set
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_RT2X00=m
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT61PCI=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+CONFIG_PLX_HERMES=m
+CONFIG_TMD_HERMES=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_PCI_HERMES=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_WL12XX=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1271=m
+CONFIG_IWM=m
+# CONFIG_IWM_DEBUG is not set
+
+#
+# WiMAX Wireless Broadband devices
+#
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_I2400M_SDIO=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_AXNET=m
+# CONFIG_WAN is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+# CONFIG_ATM_HE_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_XEN_NETDEV_FRONTEND=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PLIP=m
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+CONFIG_PPPOE=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOL2TP=m
+CONFIG_SLIP=m
+# CONFIG_SLIP_COMPRESSED is not set
+CONFIG_SLHC=m
+# CONFIG_SLIP_SMART is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_NET_FC is not set
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_VIRTIO_NET=m
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_MPP=y
+CONFIG_IPPP_FILTER=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_TTY_FAX=y
+
+#
+# ISDN feature submodules
+#
+CONFIG_ISDN_DIVERSION=m
+
+#
+# ISDN4Linux hardware drivers
+#
+
+#
+# Passive cards
+#
+CONFIG_ISDN_DRV_HISAX=m
+
+#
+# D-channel protocol features
+#
+CONFIG_HISAX_EURO=y
+CONFIG_DE_AOC=y
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_KEYPAD is not set
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_MAX_CARDS=8
+
+#
+# HiSax supported cards
+#
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NICCY=y
+CONFIG_HISAX_BKM_A4T=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_W6692=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_ENTERNOW_PCI=y
+# CONFIG_HISAX_DEBUG is not set
+
+#
+# HiSax PCMCIA card service modules
+#
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_TELES_CS=m
+
+#
+# HiSax sub driver modules
+#
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_FRITZ_PCIPNP=m
+
+#
+# Active cards
+#
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_ISDN_HDLC=m
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+
+#
+# CAPI hardware drivers
+#
+CONFIG_CAPI_AVM=y
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_CAPI_EICON=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+CONFIG_XEN_KBDDEV_FRONTEND=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_QT2160=m
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_MATRIX=m
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_SERIAL=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_INPUT_TABLET=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_WM97XX=m
+# CONFIG_TOUCHSCREEN_WM9705 is not set
+# CONFIG_TOUCHSCREEN_WM9712 is not set
+# CONFIG_TOUCHSCREEN_WM9713 is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+# CONFIG_TOUCHSCREEN_USB_E2I is not set
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+# CONFIG_TOUCHSCREEN_PCAP is not set
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_APANEL=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_PCAP is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
+CONFIG_SERIAL_NONSTANDARD=y
+# CONFIG_COMPUTONE is not set
+CONFIG_ROCKETPORT=m
+CONFIG_CYCLADES=m
+# CONFIG_CYZ_INTR is not set
+# CONFIG_DIGIEPCA is not set
+# CONFIG_MOXA_INTELLIO is not set
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_ISI is not set
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+# CONFIG_SYNCLINK_GT is not set
+CONFIG_N_HDLC=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_SPECIALIX is not set
+# CONFIG_STALDRV is not set
+CONFIG_NOZOMI=m
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_UNIX98_PTYS=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+# CONFIG_LEGACY_PTYS is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_PPDEV=m
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_NVRAM=m
+CONFIG_R3964=m
+CONFIG_APPLICOM=m
+
+#
+# PCMCIA character devices
+#
+CONFIG_SYNCLINK_CS=m
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+CONFIG_IPWIRELESS=m
+CONFIG_MWAVE=m
+CONFIG_PC8736x_GPIO=m
+CONFIG_NSC_GPIO=m
+# CONFIG_RAW_DRIVER is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TELCLOCK=m
+CONFIG_DEVPORT=y
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+
+#
+# ACPI drivers
+#
+CONFIG_I2C_SCMI=m
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_SIMTEC=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+
+#
+# Graphics adapter I2C/DDC channel drivers
+#
+# CONFIG_I2C_VOODOO3 is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_STUB is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+CONFIG_DS1682=m
+CONFIG_SENSORS_TSL2550=m
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CHIP is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+
+#
+# PPS support
+#
+CONFIG_PPS=m
+# CONFIG_PPS_DEBUG is not set
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO expanders:
+#
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_WM831X=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_LANGWELL=y
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_MC33880=m
+
+#
+# AC97 GPIO expanders:
+#
+CONFIG_GPIO_UCB1400=y
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PDA_POWER=m
+CONFIG_WM831X_POWER=m
+CONFIG_WM8350_POWER=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_CHARGER_PCF50633=m
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7473=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_APPLESMC=m
+
+#
+# ACPI drivers
+#
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_WATCHDOG=m
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_WAFER_WDT=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_ITCO_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_HP_WATCHDOG=m
+CONFIG_SC1200_WDT=m
+CONFIG_PC87413_WDT=m
+CONFIG_60XX_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_CPU5_WDT=m
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMSC37B787_WDT=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_MACHZ_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+
+#
+# PCI-based Watchdog Cards
+#
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_WDTPCI=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_HTC_PASIC3=m
+CONFIG_UCB1400_CORE=m
+CONFIG_TPS65010=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM831X=m
+CONFIG_MFD_WM8350=m
+CONFIG_MFD_WM8350_I2C=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_MC13783=m
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_AB3100_CORE=m
+CONFIG_AB3100_OTP=m
+CONFIG_EZX_PCAP=y
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders/decoders and other helper chips
+#
+
+#
+# Audio decoders
+#
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TDA9875=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_VP27SMPX=m
+
+#
+# RDS decoders
+#
+CONFIG_VIDEO_SAA6588=m
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_VPX3220=m
+
+#
+# Video and audio decoders
+#
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_ADV7343=m
+
+#
+# Video improvement chips
+#
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_FB_IVTV=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_ET61X251=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_USB_W9968CF=m
+CONFIG_USB_OV511=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_ZC0301=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_I2C_SI4713=m
+CONFIG_RADIO_SI4713=m
+CONFIG_USB_DSBR=m
+CONFIG_RADIO_SI470X=y
+CONFIG_USB_SI470X=m
+CONFIG_I2C_SI470X=m
+CONFIG_USB_MR800=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+
+#
+# Supported SAA7146 based PCI Adapters
+#
+CONFIG_TTPCI_EEPROM=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_PATCH=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported BT878 Adapters
+#
+CONFIG_DVB_BT8XX=m
+
+#
+# Supported Pluto2 Adapters
+#
+CONFIG_DVB_PLUTO2=m
+
+#
+# Supported SDMC DM1105 Adapters
+#
+CONFIG_DVB_DM1105=m
+
+#
+# Supported Earthsoft PT1 Adapters
+#
+CONFIG_DVB_PT1=m
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DAB=y
+CONFIG_USB_DABUSB=m
+
+#
+# Graphics support
+#
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_VIA=m
+CONFIG_VGA_ARB=y
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_MGA=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_SAVAGE=m
+CONFIG_VGASTATE=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_DDC=m
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_TILEBLITTING=y
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_CYBER2000=m
+# CONFIG_FB_ARC is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_VGA16 is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VESA=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_N411 is not set
+# CONFIG_FB_HGA is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_I2C=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_I2C=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_BACKLIGHT=y
+CONFIG_FB_LE80578=m
+CONFIG_FB_CARILLO_RANCH=m
+# CONFIG_FB_MATROX is not set
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_VIA=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_KYRO=m
+CONFIG_FB_3DFX=m
+CONFIG_FB_3DFX_ACCEL=y
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_GEODE is not set
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_XEN_FBDEV_FRONTEND=m
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+
+#
+# Display device support
+#
+CONFIG_DISPLAY_SUPPORT=m
+
+#
+# Display hardware drivers
+#
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=m
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_PCSP is not set
+CONFIG_SND_DUMMY=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_PCI=y
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_GINA20=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_DARLA24=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MIA=m
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HIFIER=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_NM256=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VX222=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_USX2Y=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_AC97_BUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_DRAGONRISE_FF=y
+CONFIG_HID_EZKEY=m
+CONFIG_HID_KYE=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LOGITECH=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_PANTHERLORD_FF=y
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_HID_WACOM=m
+CONFIG_HID_ZEROPLUS=m
+CONFIG_ZEROPLUS_FF=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_MON=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_HWA_HCD=m
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_WDM=m
+CONFIG_USB_TMC=m
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_USS720=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_BERRY_CHARGE=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_VST=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_AUDIO=m
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_G_PRINTER=m
+# CONFIG_USB_CDC_COMPOSITE is not set
+
+#
+# OTG and related infrastructure
+#
+CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_SDIO_UART=m
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_RICOH_MMC=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_WBSD=m
+# CONFIG_MMC_AT91 is not set
+# CONFIG_MMC_ATMELMCI is not set
+CONFIG_MMC_TIFM_SD=m
+CONFIG_MMC_SPI=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_CB710=m
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MEMSTICK=m
+# CONFIG_MEMSTICK_DEBUG is not set
+
+#
+# MemoryStick drivers
+#
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+CONFIG_MSPRO_BLOCK=m
+
+#
+# MemoryStick Host Controller Drivers
+#
+CONFIG_MEMSTICK_TIFM_MS=m
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_ALIX2 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_CLEVO_MAIL=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_BD2802=m
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_IDE_DISK=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+CONFIG_ACCESSIBILITY=y
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC=y
+
+#
+# Reporting subsystems
+#
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_X38=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_DRV_TEST=m
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_AB3100=m
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_PCAP is not set
+CONFIG_DMADEVICES=y
+
+#
+# DMA Devices
+#
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_IOATDMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+CONFIG_DCA=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS0108_DELAY=2
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_UIO=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_SMX=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_UIO_PCI_GENERIC=m
+
+#
+# TI VLYNQ
+#
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XENFS=m
+CONFIG_XEN_COMPAT_XENFS=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_SLICOSS=m
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_USB=m
+# CONFIG_VIDEO_GO7007_USB_S2250_BOARD is not set
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_USB_IP_COMMON=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IP_HOST=m
+CONFIG_W35UND=m
+CONFIG_PRISM2_USB=m
+CONFIG_ECHO=m
+CONFIG_POCH=m
+CONFIG_OTUS=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_RT3090=m
+CONFIG_COMEDI=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_8255=m
+CONFIG_ASUS_OLED=m
+# CONFIG_PANEL is not set
+# CONFIG_ALTERA_PCIE_CHDMA is not set
+CONFIG_RTL8187SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192E=m
+# CONFIG_TRANZPORT is not set
+
+#
+# Android
+#
+
+#
+# Qualcomm MSM Camera And Video
+#
+
+#
+# Camera Sensor Selection
+#
+CONFIG_INPUT_GPIO=m
+CONFIG_DST=m
+# CONFIG_DST_DEBUG is not set
+CONFIG_POHMELFS=m
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POHMELFS_CRYPTO=y
+CONFIG_B3DFG=m
+CONFIG_IDE_PHISON=m
+CONFIG_PLAN9AUTH=m
+CONFIG_LINE6_USB=m
+# CONFIG_DRM_RADEON_KMS is not set
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VT6655=m
+CONFIG_VT6656=m
+CONFIG_FB_UDL=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+# CONFIG_VME_BUS is not set
+
+#
+# RAR Register Driver
+#
+# CONFIG_RAR_REGISTER is not set
+# CONFIG_IIO is not set
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
+CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_WMI=m
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_HP_WMI=m
+CONFIG_MSI_LAPTOP=m
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_SONY_LAPTOP=m
+# CONFIG_SONYPI_COMPAT is not set
+CONFIG_THINKPAD_ACPI=m
+# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_INTEL_MENLOW=m
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_ACPI_WMI=m
+CONFIG_ACPI_ASUS=m
+CONFIG_TOPSTAR_LAPTOP=m
+CONFIG_ACPI_TOSHIBA=m
+
+#
+# Firmware Drivers
+#
+CONFIG_EDD=m
+# CONFIG_EDD_OFF is not set
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_EFI_VARS=m
+CONFIG_DELL_RBU=m
+CONFIG_DCDBAS=m
+CONFIG_DMIID=y
+# CONFIG_ISCSI_IBFT_FIND is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+# CONFIG_XFS_DEBUG is not set
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCFS2_FS_STATS=y
+# CONFIG_OCFS2_DEBUG_MASKLOG is not set
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_OCFS2_FS_POSIX_ACL=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_NILFS2_FS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_GENERIC_ACL=y
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+CONFIG_FSCACHE_STATS=y
+CONFIG_FSCACHE_HISTOGRAM=y
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_RW=y
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+CONFIG_AFFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_BEFS_FS=m
+# CONFIG_BEFS_DEBUG is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+CONFIG_OMFS_FS=m
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+# CONFIG_CIFS_STATS2 is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_NCP_FS=m
+# CONFIG_NCPFS_PACKET_SIGNING is not set
+# CONFIG_NCPFS_IOCTL_LOCKING is not set
+# CONFIG_NCPFS_STRONG is not set
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NCPFS_NLS=y
+# CONFIG_NCPFS_EXTRAS is not set
+CONFIG_CODA_FS=m
+CONFIG_AFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FSCACHE=y
+CONFIG_9P_FS=m
+CONFIG_9P_FSCACHE=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=2048
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+CONFIG_DETECT_HUNG_TASK=y
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+CONFIG_STACKTRACE=y
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_SYSPROF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_POWER_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_KMEMTRACE is not set
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_KMEMCHECK is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_X86_VERBOSE_BOOTUP=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_DEBUG_RODATA is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_0X80=y
+# CONFIG_IO_DELAY_0XED is not set
+# CONFIG_IO_DELAY_UDELAY is not set
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=0
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+# CONFIG_CPA_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_FILE_CAPABILITIES=y
+# CONFIG_INTEL_TXT is not set
+# CONFIG_SECURITY_SELINUX is not set
+# CONFIG_SECURITY_SMACK is not set
+CONFIG_SECURITY_TOMOYO=y
+# CONFIG_IMA is not set
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_TEST=m
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_FPU=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_PADLOCK=m
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_KVM=m
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_AMD=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_BINARY_PRINTF=y
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=m
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_NLATTR=y
diff --git a/libre/kernel26-libre-lts/kernel26-libre-lts.install b/libre/kernel26-libre-lts/kernel26-libre-lts.install
new file mode 100644
index 000000000..c3249445a
--- /dev/null
+++ b/libre/kernel26-libre-lts/kernel26-libre-lts.install
@@ -0,0 +1,147 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+KERNEL_NAME=-lts
+KERNEL_VERSION=2.6.32-lts
+
+post_install () {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $KERNEL_VERSION
+ # generate init ramdisks
+ echo ">>> MKINITCPIO SETUP"
+ echo ">>> ----------------"
+ echo ">>> If you use LVM2, Encrypted root or software RAID,"
+ echo ">>> Ensure you enable support in /etc/mkinitcpio.conf ."
+ echo ">>> More information about mkinitcpio setup can be found here:"
+ echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio"
+ echo ""
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+ /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
+}
+
+post_upgrade() {
+ pacman -Q grub &>/dev/null
+ hasgrub=$?
+ pacman -Q grub2 &>/dev/null
+ hasgrub2=$?
+ pacman -Q lilo &>/dev/null
+ haslilo=$?
+ # reminder notices
+ if [ $haslilo -eq 0 ]; then
+ echo ">>>"
+ if [ $hasgrub -eq 0 -o $hasgrub2 -eq 0 ]; then
+ echo ">>> If you use the LILO bootloader, you should run 'lilo' before rebooting."
+ else
+ echo ">>> You appear to be using the LILO bootloader. You should run"
+ echo ">>> 'lilo' before rebooting."
+ fi
+ echo ">>>"
+ fi
+
+ if grep "/boot" /etc/fstab 2>&1 >/dev/null; then
+ if ! grep "/boot" /etc/mtab 2>&1 >/dev/null; then
+ echo "WARNING: /boot appears to be a seperate partition but is not mounted"
+ echo " This is most likely not what you want. Please mount your /boot"
+ echo " partition and reinstall the kernel unless you are sure this is OK"
+ fi
+ fi
+
+ if [ "`vercmp $2 2.6.13`" -lt 0 ]; then
+ # important upgrade notice
+ echo ">>>"
+ echo ">>> IMPORTANT KERNEL UPGRADE NOTICE"
+ echo ">>> -------------------------------"
+ echo ">>> As of kernel 2.6.13, DevFS is NO LONGER AVAILABLE!"
+ echo ">>> If you still use DevFS, please make the transition to uDev before"
+ echo ">>> rebooting. If you really need to stay with DevFS for some reason,"
+ echo ">>> then you can manually downgrade to an older version:"
+ echo ">>>"
+ echo ">>> # pacman -U http://archlinux.org/~judd/kernel/kernel26-scsi-2.6.12.2-1.pkg.tar.gz"
+ echo ">>>"
+ echo ">>> If you choose to downgrade, don't forget to add kernel26-scsi to your"
+ echo ">>> IgnorePkg list in /etc/pacman.conf"
+ echo ">>>"
+ echo ">>> (NOTE: The following portion applies to uDev users as well!)"
+ echo ">>>"
+ echo ">>> If you use any DevFS paths in your GRUB menu.lst, then you will not"
+ echo ">>> be able to boot! Change your root= parameter to use the classic"
+ echo ">>> naming scheme."
+ echo ">>>"
+ echo ">>> EXAMPLES:"
+ echo ">>> - change root=/dev/discs/disc0/part3 to root=/dev/sda3"
+ echo ">>> - change root=/dev/md/0 to root=/dev/md0"
+ echo ">>>"
+ fi
+ # generate new init ramdisk
+ if [ "`vercmp $2 2.6.18`" -lt 0 ]; then
+ echo ">>> --------------------------------------------------------------"
+ echo ">>> | WARNING: |"
+ echo ">>> |mkinitrd is not supported anymore in kernel >=2.6.18 series!|"
+ echo ">>> | Please change to Mkinitcpio setup. |"
+ echo ">>> --------------------------------------------------------------"
+ echo ">>>"
+ fi
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $KERNEL_VERSION
+ echo ">>> MKINITCPIO SETUP"
+ echo ">>> ----------------"
+ if [ "`vercmp $2 2.6.18`" -lt 0 ]; then
+ echo ">>> Please change your bootloader config files:"
+ echo ">>> Grub: /boot/grub/menu.lst | Lilo: /etc/lilo.conf"
+ echo "------------------------------------------------"
+ echo "| - initrd26.img to kernel26${KERNEL_NAME}.img |"
+ echo "| - initrd26-full.img to kernel26${KERNEL_NAME}-fallback.img |"
+ echo "------------------------------------------------"
+ fi
+ if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
+ echo ""
+ echo ">>> New PATA/IDE subsystem - EXPERIMENTAL"
+ echo ">>> ----------"
+ echo ">>> To use the new pata drivers, change the 'ide' hook "
+ echo ">>> to 'pata' in /etc/mkinicpio.conf HOOKS="
+ echo ">>> The new system changes: /dev/hd? to /dev/sd?"
+ echo ">>> Don't forget to modify GRUB, LILO and fstab to the"
+ echo ">>> new naming system. "
+ echo ">>> eg: hda3 --> sda3, hdc8 --> sdc8"
+ echo ""
+ echo ">>> piix/ata_piix (Intel chipsets) - IMPORTANT"
+ echo "----------"
+ echo ">>> If you have enabled ide/pata/sata HOOKs in /etc/mkinitcpio.conf"
+ echo ">>> the 'ata_piix' module will be used."
+ echo ">>> This may cause your devices to shift names, eg:"
+ echo ">>> - IDE: devices from hd? to sd?"
+ echo ">>> - SATA: sda might shift to sdc if you have 2 other disks on a PIIX IDE port."
+ echo ">>> To check if this will affect you, check 'mkinitcpio -M' for piix/ata_piix"
+ echo ""
+ fi
+
+ echo ">>> If you use LVM2, Encrypted root or software RAID,"
+ echo ">>> Ensure you enable support in /etc/mkinitcpio.conf ."
+ echo ">>> More information about mkinitcpio setup can be found here:"
+ echo ">>> http://wiki.archlinux.org/index.php/Mkinitcpio"
+ echo ""
+ echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
+if [ "`vercmp $2 2.6.19`" -lt 0 ]; then
+ /sbin/mkinitcpio -p kernel26${KERNEL_NAME} -m "ATTENTION:\nIf you get a kernel panic below
+and are using an Intel chipset, append 'earlymodules=piix' to the
+kernel commandline"
+else
+ /sbin/mkinitcpio -p kernel26${KERNEL_NAME}
+fi
+if [ "`vercmp $2 2.6.21`" -lt 0 ]; then
+ echo ""
+ echo "Important ACPI Information:"
+ echo ">>> Since 2.6.20.7 all possible ACPI parts are modularized."
+ echo ">>> The modules are located at:"
+ echo ">>> /lib/modules/$(uname -r)/kernel/drivers/acpi"
+ echo ">>> For more information about ACPI modules check this wiki page:"
+ echo ">>> 'http://wiki.archlinux.org/index.php/ACPI_modules'"
+fi
+}
+
+post_remove() {
+ rm -f /boot/kernel26${KERNEL_NAME}.img
+ rm -f /boot/kernel26${KERNEL_NAME}-fallback.img
+}
diff --git a/libre/kernel26-libre-lts/kernel26-lts.preset b/libre/kernel26-libre-lts/kernel26-lts.preset
new file mode 100644
index 000000000..b65e064b4
--- /dev/null
+++ b/libre/kernel26-libre-lts/kernel26-lts.preset
@@ -0,0 +1,17 @@
+# mkinitcpio preset file for kernel26
+
+########################################
+# DO NOT EDIT THIS LINE:
+source /etc/mkinitcpio.d/kernel26-lts.kver
+########################################
+ALL_config="/etc/mkinitcpio.conf"
+
+PRESETS=('default' 'fallback')
+
+#default_config="/etc/mkinitcpio.conf"
+default_image="/boot/kernel26-lts.img"
+#default_options=""
+
+#fallback_config="/etc/mkinitcpio.conf"
+fallback_image="/boot/kernel26-lts-fallback.img"
+fallback_options="-S autodetect" \ No newline at end of file
diff --git a/libre/kernel26-libre-lts/libata-alignment.patch b/libre/kernel26-libre-lts/libata-alignment.patch
new file mode 100644
index 000000000..edd96f3b1
--- /dev/null
+++ b/libre/kernel26-libre-lts/libata-alignment.patch
@@ -0,0 +1,48 @@
+diff -Nur linux-2.6.32.orig/drivers/ata/libata-scsi.c linux-2.6.32/drivers/ata/libata-scsi.c
+--- linux-2.6.32.orig/drivers/ata/libata-scsi.c 2009-12-03 14:51:21.000000000 +1100
++++ linux-2.6.32/drivers/ata/libata-scsi.c 2011-01-22 20:32:53.353775375 +1100
+@@ -1099,13 +1099,13 @@
+ /* configure max sectors */
+ blk_queue_max_sectors(sdev->request_queue, dev->max_sectors);
+
++ sdev->sector_size = ATA_SECT_SIZE;
++
+ if (dev->class == ATA_DEV_ATAPI) {
+ struct request_queue *q = sdev->request_queue;
+ void *buf;
+
+- /* set the min alignment and padding */
+- blk_queue_update_dma_alignment(sdev->request_queue,
+- ATA_DMA_PAD_SZ - 1);
++ /* set DMA padding */
+ blk_queue_update_dma_pad(sdev->request_queue,
+ ATA_DMA_PAD_SZ - 1);
+
+@@ -1119,12 +1119,24 @@
+
+ blk_queue_dma_drain(q, atapi_drain_needed, buf, ATAPI_MAX_DRAIN);
+ } else {
+- /* ATA devices must be sector aligned */
+- blk_queue_update_dma_alignment(sdev->request_queue,
+- ATA_SECT_SIZE - 1);
+ sdev->manage_start_stop = 1;
+ }
+
++ /*
++ * ata_pio_sectors() expects buffer for each sector to not cross
++ * page boundary. Enforce it by requiring buffers to be sector
++ * aligned, which works iff sector_size is not larger than
++ * PAGE_SIZE. ATAPI devices also need the alignment as
++ * IDENTIFY_PACKET is executed as ATA_PROT_PIO.
++ */
++ if (sdev->sector_size > PAGE_SIZE)
++ ata_dev_printk(dev, KERN_WARNING,
++ "sector_size=%u > PAGE_SIZE, PIO may malfunction\n",
++ sdev->sector_size);
++
++ blk_queue_update_dma_alignment(sdev->request_queue,
++ sdev->sector_size - 1);
++
+ if (dev->flags & ATA_DFLAG_AN)
+ set_bit(SDEV_EVT_MEDIA_CHANGE, sdev->supported_events);
+
diff --git a/libre/kernel26-libre-manpages/PKGBUILD b/libre/kernel26-libre-manpages/PKGBUILD
new file mode 100644
index 000000000..284d09de9
--- /dev/null
+++ b/libre/kernel26-libre-manpages/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+pkgname=kernel26-libre-manpages
+pkgver=2.6.37
+pkgrel=1
+pkgdesc="Kernel hackers manual - Section 9 manpages that comes with the Linux-libre kernel."
+makedepends=('xmlto' 'docbook-xsl')
+provides=("kernel26-manpages=$pkgver")
+replaces=('kernel26-manpages')
+conflicts=('kernel26-manpages')
+arch=(any)
+license=('GPL2')
+url="http://linux-libre.fsfla.org/"
+source=(http://linux-libre.fsfla.org/pub/linux-libre/releases/2.6.37-libre/linux-2.6.37-libre.tar.bz2)
+
+build() {
+cd ${srcdir}/linux-$pkgver
+make mandocs
+}
+
+package() {
+install -d ${pkgdir}/usr/share/man/man9/
+install ${srcdir}/linux-$pkgver/Documentation/DocBook/man/*.9.gz \
+${pkgdir}/usr/share/man/man9/
+
+find ${pkgdir} -type f -exec chmod 644 {} \;
+}
+
+md5sums=('3e80c55a0927b4439f3aad4f973f05cc')
diff --git a/libre/libretools/PKGBUILD b/libre/libretools/PKGBUILD
new file mode 100644
index 000000000..b424a9405
--- /dev/null
+++ b/libre/libretools/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Joshua Haase <hahj87@gmail.com
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+
+pkgname=libretools
+pkgver=$(date -u +%Y%m%d)
+pkgrel=1
+pkgdesc="Scripts for easing Parabola's tasks"
+arch=('any')
+url="http://parabolagnulinux.org"
+license=('GPL3+')
+depends=(devtools git wget)
+makedepends=(git)
+backup=(etc/libretools.conf)
+install=libretools.install
+source=()
+md5sums=()
+
+_gitroot="http://projects.parabolagnulinux.org/libretools.git"
+_gitname="libretools"
+
+build() {
+ cd "$srcdir"
+ ## Git checkout
+ if [ -d $srcdir/${_gitname} ] ; then
+ msg "Git checkout: Updating existing tree"
+ cd ${_gitname} && git pull origin
+ msg "Git checkout: Tree has been updated"
+ else
+ msg "Git checkout: Retrieving sources"
+ git clone ${_gitroot}
+ fi
+ msg "Checkout completed"
+ ## Build
+}
+
+package() {
+ install -d ${pkgdir}/usr/bin
+ install -d ${pkgdir}/etc
+
+ install -m644 ${_gitname}/libretools.conf ${pkgdir}/etc/
+
+ install -m755 ${_gitname}/abslibre-commit ${pkgdir}/usr/bin
+ install -m755 ${_gitname}/add-mips64el ${pkgdir}/usr/bin
+ install -m755 ${_gitname}/createworkdir ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/fullpkg ${pkgdir}/usr/bin
+ install -m755 ${_gitname}/is_built ${pkgdir}/usr/bin
+ install -m755 ${_gitname}/librechroot ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/librecommit ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/librediff ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/libremakepkg ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/libremessages ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/librerelease ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/librestage ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/mipsrelease ${pkgdir}/usr/bin
+ install -m755 ${_gitname}/pkgbuild-check-nonfree ${pkgdir}/usr/bin/
+ install -m755 ${_gitname}/updateabslibre ${pkgdir}/usr/bin
+
+} \ No newline at end of file
diff --git a/libre/libretools/libretools.install b/libre/libretools/libretools.install
new file mode 100644
index 000000000..2657f5208
--- /dev/null
+++ b/libre/libretools/libretools.install
@@ -0,0 +1,36 @@
+
+# arg 1: the new package version
+post_install() {
+ cat <<EOF
+
+For using libremakepkg /etc/libretools.conf to fit your needs.
+
+For the scripts that can be run as normal user you can make
+custom configuration by copying /etc/libretools.conf to
+\$XDG_CONFIG_HOME/libretools/libretools.conf
+
+You should add this to your ~/.ssh/config file:
+
+# Parabola Host
+Host parabola
+ Port 22
+ HostName repo.parabolagnulinux.org
+ User parabolavnx
+ IdentityFile ~/.ssh/id_rsa
+# End Parabola Host
+
+Edit IdentityFile as needed.
+
+EOF
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ cat <<EOF
+Check your /etc/libretools.conf
+
+EOF
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/libui-sh/PKGBUILD b/libre/libui-sh/PKGBUILD
new file mode 100644
index 000000000..24f3a89af
--- /dev/null
+++ b/libre/libui-sh/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id$
+# Maintainer: Dieter Plaetinck <dieter@plaetinck.be>
+
+pkgname=libui-sh
+pkgver=2010.12.31
+pkgrel=1
+pkgdesc="a shell library providing useful UI functions"
+arch=('any')
+url="http://github.com/Dieterbe/libui-sh/"
+license=('GPL3')
+depends=('bash')
+optdepends=('dialog: for ncurses support')
+source=(http://repo.parabolagnulinux.org/other/$pkgname-$pkgver.tar.gz)
+
+build() {
+
+ cd $srcdir/libui-sh-$pkgver/
+
+ make DESTDIR="$pkgdir/" install
+
+}
+
+# vim:set ts=2 sw=2 et:
+
+md5sums=('8056134adf6ea8ba52d1f6e6e4eaf522')
diff --git a/libre/licenses-libre/PKGBUILD b/libre/licenses-libre/PKGBUILD
new file mode 100644
index 000000000..574fe6d84
--- /dev/null
+++ b/libre/licenses-libre/PKGBUILD
@@ -0,0 +1,114 @@
+# $Id: PKGBUILD 82120 2010-06-08 16:36:51Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+
+pkgname=licenses-libre
+pkgver=2.6
+pkgrel=1
+pkgdesc="The standard licenses distribution package"
+arch=('any')
+license=('custom:none')
+url="http://parabolagnulinux.org"
+groups=('base')
+provides=("licenses=${pkgver}")
+conflicts=('licenses')
+replaces=('licenses')
+source=(apache-2.0.txt::http://www.apache.org/licenses/LICENSE-2.0.txt
+ cc-by-3.0.txt
+ cc-by-sa-3.0.txt
+ cc-readme.txt
+ cddl-1.0.txt
+ eclipse-1.0.txt
+ http://www.gnu.org/licenses/gpl-2.0.txt
+ http://www.gnu.org/licenses/gpl-3.0.txt
+ http://www.gnu.org/licenses/lgpl-2.1.txt
+ http://www.gnu.org/licenses/lgpl-3.0.txt
+ http://www.gnu.org/licenses/fdl-1.2.txt
+ http://www.gnu.org/licenses/fdl-1.3.txt
+ http://www.latex-project.org/lppl.txt
+ http://www.mozilla.org/MPL/MPL-1.1.txt
+ perlartistic.txt
+ php-3.0.txt::http://www.php.net/license/3_0.txt
+ ruby-license.txt::http://www.ruby-lang.org/en/LICENSE.txt
+ cpl-1.0.txt
+ python-2.txt
+ ZopePublicLicense.txt)
+md5sums=('3b83ef96387f14655fc854ddc3c6bd57'
+ 'ffb24d1bbf8b83d373f0b8edc3feb0c6'
+ '5367190077e12a7f55403d531ef3998e'
+ '77651e5c686cbc0f8cec5ac7e6504235'
+ '6cb35f3976cd093011967fa1abbce386'
+ 'f300afd598546add034364cd0a533261'
+ 'b234ee4d69f5fce4486a80fdaf4a4263'
+ 'd32239bcb673463ab874e80d47fae504'
+ '4fbd65380cdd255951079008b364516c'
+ 'e6a600fd5e1d9cbde2d983680233ad02'
+ '24ea4c7092233849b4394699333b5c56'
+ '10b9de612d532fdeeb7fe8fcd1435cc6'
+ '9f4337828d782bdea41f03dd2ad1b808'
+ 'bfe1f75d606912a4111c90743d6c7325'
+ 'd09c120ca7db95ef2aeecec0cb08293b'
+ 'a45bb1bbeed9e26b26c5763df1d3913d'
+ '68d59ff8306e3a9f5f1c01462c77a317'
+ 'f083e41c43db25e18f36c91e57750b64'
+ 'a055911c32fb4ed6e96c453ceaeba857'
+ 'dc8502850eab9e1ff330a12d7ca18a19')
+
+build() {
+ cd $pkgdir
+ mkdir -p usr/share/licenses/common
+ cd usr/share/licenses/common
+
+ mkdir APACHE
+ cp $srcdir/apache-2.0.txt APACHE/license.txt
+
+ mkdir CCPL
+ cp $srcdir/cc-by-3.0.txt CCPL/
+ cp $srcdir/cc-by-sa-3.0.txt CCPL/
+ cp $srcdir/cc-readme.txt CCPL/
+
+ mkdir CDDL
+ cp $srcdir/cddl-1.0.txt CDDL/license.txt
+
+ mkdir CPL
+ cp $srcdir/cpl-1.0.txt CPL/license.txt
+
+ mkdir EPL
+ cp $srcdir/eclipse-1.0.txt EPL/license.txt
+
+ mkdir {GPL2,GPL3}
+ cp $srcdir/gpl-2.0.txt GPL2/license.txt
+ cp $srcdir/gpl-3.0.txt GPL3/license.txt
+ ln -s GPL2 GPL
+
+ mkdir {FDL1.2,FDL1.3}
+ cp $srcdir/fdl-1.2.txt FDL1.2/license.txt
+ cp $srcdir/fdl-1.3.txt FDL1.3/license.txt
+ ln -s FDL1.2 FDL
+
+ mkdir {LGPL2.1,LGPL3}
+ cp $srcdir/lgpl-2.1.txt LGPL2.1/license.txt
+ cp $srcdir/lgpl-3.0.txt LGPL3/license.txt
+ ln -s LGPL2.1 LGPL
+
+ mkdir LPPL
+ cp $srcdir/lppl.txt LPPL/license.txt
+
+ mkdir MPL
+ cp $srcdir/MPL-1.1.txt MPL/license.txt
+
+ mkdir PerlArtistic
+ cp $srcdir/perlartistic.txt PerlArtistic/license.txt
+
+ mkdir PHP
+ cp $srcdir/php-3.0.txt PHP/license.txt
+
+ mkdir PSF
+ cp $srcdir/python-2.txt PSF/license.txt
+
+ mkdir RUBY
+ cp $srcdir/ruby-license.txt RUBY/license.txt
+
+ mkdir ZPL
+ cp $srcdir/ZopePublicLicense.txt ZPL/license.txt
+}
diff --git a/libre/licenses-libre/ZopePublicLicense.txt b/libre/licenses-libre/ZopePublicLicense.txt
new file mode 100644
index 000000000..0f06d960d
--- /dev/null
+++ b/libre/licenses-libre/ZopePublicLicense.txt
@@ -0,0 +1,54 @@
+Zope Public License (ZPL) Version 2.1
+-------------------------------------
+
+A copyright notice accompanies this license document that
+identifies the copyright holders.
+
+This license has been certified as open source. It has also
+been designated as GPL compatible by the Free Software
+Foundation (FSF).
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions in source code must retain the
+ accompanying copyright notice, this list of conditions,
+ and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the accompanying
+ copyright notice, this list of conditions, and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+3. Names of the copyright holders must not be used to
+ endorse or promote products derived from this software
+ without prior written permission from the copyright
+ holders.
+
+4. The right to distribute this software or to use it for
+ any purpose does not give you the right to use
+ Servicemarks (sm) or Trademarks (tm) of the copyright
+ holders. Use of them is covered by separate agreement
+ with the copyright holders.
+
+5. If any files are modified, you must cause the modified
+ files to carry prominent notices stating that you changed
+ the files and the date of any change.
+
+Disclaimer
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS''
+ AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ NO EVENT SHALL THE COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
diff --git a/libre/licenses-libre/cc-by-3.0.txt b/libre/licenses-libre/cc-by-3.0.txt
new file mode 100644
index 000000000..4c79aa8ae
--- /dev/null
+++ b/libre/licenses-libre/cc-by-3.0.txt
@@ -0,0 +1,60 @@
+License
+
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
+
+1. Definitions
+
+ 1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
+ 2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
+ 3. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
+ 4. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
+ 5. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
+ 6. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
+ 7. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
+ 8. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
+ 9. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
+
+2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
+
+3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
+
+ 1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
+ 2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
+ 3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
+ 4. to Distribute and Publicly Perform Adaptations.
+ 5.
+
+ For the avoidance of doubt:
+ 1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
+ 2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
+ 3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
+
+The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
+
+4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
+
+ 1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.
+ 2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
+ 3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
+
+5. Representations, Warranties and Disclaimer
+
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+
+6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. Termination
+
+ 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+ 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
+
+8. Miscellaneous
+
+ 1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
+ 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
+ 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+ 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
+ 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
+ 6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
diff --git a/libre/licenses-libre/cc-by-sa-3.0.txt b/libre/licenses-libre/cc-by-sa-3.0.txt
new file mode 100644
index 000000000..7252d9ca5
--- /dev/null
+++ b/libre/licenses-libre/cc-by-sa-3.0.txt
@@ -0,0 +1,63 @@
+License
+
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
+
+1. Definitions
+
+ 1. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
+ 2. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License.
+ 3. "Creative Commons Compatible License" means a license that is listed at http://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License.
+ 4. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.
+ 5. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike.
+ 6. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
+ 7. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
+ 8. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
+ 9. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
+ 10. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
+ 11. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
+
+2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
+
+3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
+
+ 1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;
+ 2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";
+ 3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,
+ 4. to Distribute and Publicly Perform Adaptations.
+ 5.
+
+ For the avoidance of doubt:
+ 1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
+ 2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,
+ 3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.
+
+The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.
+
+4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
+
+ 1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested.
+ 2. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License.
+ 3. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
+ 4. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.
+
+5. Representations, Warranties and Disclaimer
+
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+
+6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. Termination
+
+ 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
+ 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
+
+8. Miscellaneous
+
+ 1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
+ 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.
+ 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+ 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
+ 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
+ 6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.
diff --git a/libre/licenses-libre/cc-readme.txt b/libre/licenses-libre/cc-readme.txt
new file mode 100644
index 000000000..d71e2254f
--- /dev/null
+++ b/libre/licenses-libre/cc-readme.txt
@@ -0,0 +1,10 @@
+There are 2 different Creative Commons Licenses, all of which are included
+in this licenses directory:
+
+cc-by-3.0.txt - Attribution
+cc-by-sa-3.0.txt - Attribution-ShareAlike
+
+If a package uses one of these licenses, it should be referenced as follows:
+license=('CCPL:by-sa')
+
+Note: nd and nc licenses were removed because they aren't copyleft friendly
diff --git a/libre/licenses-libre/cddl-1.0.txt b/libre/licenses-libre/cddl-1.0.txt
new file mode 100644
index 000000000..d83893249
--- /dev/null
+++ b/libre/licenses-libre/cddl-1.0.txt
@@ -0,0 +1,377 @@
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0
+
+1. Definitions.
+
+ 1.1. "Contributor" means each individual or entity that creates
+ or contributes to the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original
+ Software, prior Modifications used by a Contributor (if any),
+ and the Modifications made by that particular Contributor.
+
+ 1.3. "Covered Software" means (a) the Original Software, or (b)
+ Modifications, or (c) the combination of files containing
+ Original Software with files containing Modifications, in
+ each case including portions thereof.
+
+ 1.4. "Executable" means the Covered Software in any form other
+ than Source Code.
+
+ 1.5. "Initial Developer" means the individual or entity that first
+ makes Original Software available under this License.
+
+ 1.6. "Larger Work" means a work which combines Covered Software or
+ portions thereof with code not governed by the terms of this
+ License.
+
+ 1.7. "License" means this document.
+
+ 1.8. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed
+ herein.
+
+ 1.9. "Modifications" means the Source Code and Executable form of
+ any of the following:
+
+ A. Any file that results from an addition to, deletion from or
+ modification of the contents of a file containing Original
+ Software or previous Modifications;
+
+ B. Any new file that contains any part of the Original
+ Software or previous Modifications; or
+
+ C. Any new file that is contributed or otherwise made
+ available under the terms of this License.
+
+ 1.10. "Original Software" means the Source Code and Executable
+ form of computer software code that is originally released
+ under this License.
+
+ 1.11. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by
+ grantor.
+
+ 1.12. "Source Code" means (a) the common form of computer software
+ code in which modifications are made and (b) associated
+ documentation included in or with such code.
+
+ 1.13. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms
+ of, this License. For legal entities, "You" includes any
+ entity which controls, is controlled by, or is under common
+ control with You. For purposes of this definition,
+ "control" means (a) the power, direct or indirect, to cause
+ the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty
+ percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants.
+
+ 2.1. The Initial Developer Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, the Initial
+ Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer, to use,
+ reproduce, modify, display, perform, sublicense and
+ distribute the Original Software (or portions thereof),
+ with or without Modifications, and/or as part of a Larger
+ Work; and
+
+ (b) under Patent Claims infringed by the making, using or
+ selling of Original Software, to make, have made, use,
+ practice, sell, and offer for sale, and/or otherwise
+ dispose of the Original Software (or portions thereof).
+
+ (c) The licenses granted in Sections 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ or otherwise makes the Original Software available to a
+ third party under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: (1) for code that You delete from the Original
+ Software, or (2) for infringements caused by: (i) the
+ modification of the Original Software, or (ii) the
+ combination of the Original Software with other software
+ or devices.
+
+ 2.2. Contributor Grant.
+
+ Conditioned upon Your compliance with Section 3.1 below and
+ subject to third party intellectual property claims, each
+ Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor to use, reproduce,
+ modify, display, perform, sublicense and distribute the
+ Modifications created by such Contributor (or portions
+ thereof), either on an unmodified basis, with other
+ Modifications, as Covered Software and/or as part of a
+ Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either
+ alone and/or in combination with its Contributor Version
+ (or portions of such combination), to make, use, sell,
+ offer for sale, have made, and/or otherwise dispose of:
+ (1) Modifications made by that Contributor (or portions
+ thereof); and (2) the combination of Modifications made by
+ that Contributor with its Contributor Version (or portions
+ of such combination).
+
+ (c) The licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first distributes or
+ otherwise makes the Modifications available to a third
+ party.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: (1) for any code that Contributor has deleted
+ from the Contributor Version; (2) for infringements caused
+ by: (i) third party modifications of Contributor Version,
+ or (ii) the combination of Modifications made by that
+ Contributor with other software (except as part of the
+ Contributor Version) or other devices; or (3) under Patent
+ Claims infringed by Covered Software in the absence of
+ Modifications made by that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Availability of Source Code.
+
+ Any Covered Software that You distribute or otherwise make
+ available in Executable form must also be made available in Source
+ Code form and that Source Code form must be distributed only under
+ the terms of this License. You must include a copy of this
+ License with every copy of the Source Code form of the Covered
+ Software You distribute or otherwise make available. You must
+ inform recipients of any such Covered Software in Executable form
+ as to how they can obtain such Covered Software in Source Code
+ form in a reasonable manner on or through a medium customarily
+ used for software exchange.
+
+ 3.2. Modifications.
+
+ The Modifications that You create or to which You contribute are
+ governed by the terms of this License. You represent that You
+ believe Your Modifications are Your original creation(s) and/or
+ You have sufficient rights to grant the rights conveyed by this
+ License.
+
+ 3.3. Required Notices.
+
+ You must include a notice in each of Your Modifications that
+ identifies You as the Contributor of the Modification. You may
+ not remove or alter any copyright, patent or trademark notices
+ contained within the Covered Software, or any notices of licensing
+ or any descriptive text giving attribution to any Contributor or
+ the Initial Developer.
+
+ 3.4. Application of Additional Terms.
+
+ You may not offer or impose any terms on any Covered Software in
+ Source Code form that alters or restricts the applicable version
+ of this License or the recipients' rights hereunder. You may
+ choose to offer, and to charge a fee for, warranty, support,
+ indemnity or liability obligations to one or more recipients of
+ Covered Software. However, you may do so only on Your own behalf,
+ and not on behalf of the Initial Developer or any Contributor.
+ You must make it absolutely clear that any such warranty, support,
+ indemnity or liability obligation is offered by You alone, and You
+ hereby agree to indemnify the Initial Developer and every
+ Contributor for any liability incurred by the Initial Developer or
+ such Contributor as a result of warranty, support, indemnity or
+ liability terms You offer.
+
+ 3.5. Distribution of Executable Versions.
+
+ You may distribute the Executable form of the Covered Software
+ under the terms of this License or under the terms of a license of
+ Your choice, which may contain terms different from this License,
+ provided that You are in compliance with the terms of this License
+ and that the license for the Executable form does not attempt to
+ limit or alter the recipient's rights in the Source Code form from
+ the rights set forth in this License. If You distribute the
+ Covered Software in Executable form under a different license, You
+ must make it absolutely clear that any terms which differ from
+ this License are offered by You alone, not by the Initial
+ Developer or Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred
+ by the Initial Developer or such Contributor as a result of any
+ such terms You offer.
+
+ 3.6. Larger Works.
+
+ You may create a Larger Work by combining Covered Software with
+ other code not governed by the terms of this License and
+ distribute the Larger Work as a single product. In such a case,
+ You must make sure the requirements of this License are fulfilled
+ for the Covered Software.
+
+4. Versions of the License.
+
+ 4.1. New Versions.
+
+ Sun Microsystems, Inc. is the initial license steward and may
+ publish revised and/or new versions of this License from time to
+ time. Each version will be given a distinguishing version number.
+ Except as provided in Section 4.3, no one other than the license
+ steward has the right to modify this License.
+
+ 4.2. Effect of New Versions.
+
+ You may always continue to use, distribute or otherwise make the
+ Covered Software available under the terms of the version of the
+ License under which You originally received the Covered Software.
+ If the Initial Developer includes a notice in the Original
+ Software prohibiting it from being distributed or otherwise made
+ available under any subsequent version of the License, You must
+ distribute and make the Covered Software available under the terms
+ of the version of the License under which You originally received
+ the Covered Software. Otherwise, You may also choose to use,
+ distribute or otherwise make the Covered Software available under
+ the terms of any subsequent version of the License published by
+ the license steward.
+
+ 4.3. Modified Versions.
+
+ When You are an Initial Developer and You want to create a new
+ license for Your Original Software, You may create and use a
+ modified version of this License if You: (a) rename the license
+ and remove any references to the name of the license steward
+ (except to note that the license differs from this License); and
+ (b) otherwise make it clear that the license contains terms which
+ differ from this License.
+
+5. DISCLAIMER OF WARRANTY.
+
+ COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
+ BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+ INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+ SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+ PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+ PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+ COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+ INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY
+ NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+ WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+ DISCLAIMER.
+
+6. TERMINATION.
+
+ 6.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to
+ cure such breach within 30 days of becoming aware of the breach.
+ Provisions which, by their nature, must remain in effect beyond
+ the termination of this License shall survive.
+
+ 6.2. If You assert a patent infringement claim (excluding
+ declaratory judgment actions) against Initial Developer or a
+ Contributor (the Initial Developer or Contributor against whom You
+ assert such claim is referred to as "Participant") alleging that
+ the Participant Software (meaning the Contributor Version where
+ the Participant is a Contributor or the Original Software where
+ the Participant is the Initial Developer) directly or indirectly
+ infringes any patent, then any and all rights granted directly or
+ indirectly to You by such Participant, the Initial Developer (if
+ the Initial Developer is not the Participant) and all Contributors
+ under Sections 2.1 and/or 2.2 of this License shall, upon 60 days
+ notice from Participant terminate prospectively and automatically
+ at the expiration of such 60 day notice period, unless if within
+ such 60 day period You withdraw Your claim with respect to the
+ Participant Software against such Participant either unilaterally
+ or pursuant to a written agreement with Participant.
+
+ 6.3. In the event of termination under Sections 6.1 or 6.2 above,
+ all end user licenses that have been validly granted by You or any
+ distributor hereunder prior to termination (excluding licenses
+ granted to You by any distributor) shall survive termination.
+
+7. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+ INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+ COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+ LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+ CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+ STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+ INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
+ APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+ NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+ CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+ APPLY TO YOU.
+
+8. U.S. GOVERNMENT END USERS.
+
+ The Covered Software is a "commercial item," as that term is
+ defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
+ computer software" (as that term is defined at 48
+ C.F.R. 252.227-7014(a)(1)) and "commercial computer software
+ documentation" as such terms are used in 48 C.F.R. 12.212
+ (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48
+ C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all
+ U.S. Government End Users acquire Covered Software with only those
+ rights set forth herein. This U.S. Government Rights clause is in
+ lieu of, and supersedes, any other FAR, DFAR, or other clause or
+ provision that addresses Government rights in computer software
+ under this License.
+
+9. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed
+ by the law of the jurisdiction specified in a notice contained
+ within the Original Software (except to the extent applicable law,
+ if any, provides otherwise), excluding such jurisdiction's
+ conflict-of-law provisions. Any litigation relating to this
+ License shall be subject to the jurisdiction of the courts located
+ in the jurisdiction and venue specified in a notice contained
+ within the Original Software, with the losing party responsible
+ for costs, including, without limitation, court costs and
+ reasonable attorneys' fees and expenses. The application of the
+ United Nations Convention on Contracts for the International Sale
+ of Goods is expressly excluded. Any law or regulation which
+ provides that the language of a contract shall be construed
+ against the drafter shall not apply to this License. You agree
+ that You alone are responsible for compliance with the United
+ States export administration regulations (and the export control
+ laws and regulation of any other countries) when You use,
+ distribute or otherwise make available any Covered Software.
+
+10. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or
+ indirectly, out of its utilization of rights under this License
+ and You agree to work with Initial Developer and Contributors to
+ distribute such responsibility on an equitable basis. Nothing
+ herein is intended or shall be deemed to constitute any admission
+ of liability.
+
+--------------------------------------------------------------------
+
+NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND
+DISTRIBUTION LICENSE (CDDL)
+
+For Covered Software in this distribution, this License shall
+be governed by the laws of the State of California (excluding
+conflict-of-law provisions).
+
+Any litigation relating to this License shall be subject to the
+jurisdiction of the Federal Courts of the Northern District of
+California and the state courts of the State of California, with
+venue lying in Santa Clara County, California.
diff --git a/libre/licenses-libre/cpl-1.0.txt b/libre/licenses-libre/cpl-1.0.txt
new file mode 100644
index 000000000..c48081b33
--- /dev/null
+++ b/libre/licenses-libre/cpl-1.0.txt
@@ -0,0 +1,217 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial code and documentation
+ distributed under this Agreement, and
+
+ b) in the case of each subsequent Contributor:
+
+ i) changes to the Program, and
+
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are
+ distributed by that particular Contributor. A Contribution 'originates' from a
+ Contributor if it was added to the Program by such Contributor itself or anyone
+ acting on such Contributor's behalf. Contributions do not include additions to
+ the Program which: (i) are separate modules of software distributed in
+ conjunction with the Program under their own license agreement, and (ii) are
+ not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free copyright license to
+ reproduce, prepare derivative works of, publicly display, publicly perform,
+ distribute and sublicense the Contribution of such Contributor, if any, and
+ such derivative works, in source code and object code form.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free patent license under
+ Licensed Patents to make, use, sell, offer to sell, import and otherwise
+ transfer the Contribution of such Contributor, if any, in source code and
+ object code form. This patent license shall apply to the combination of the
+ Contribution and the Program if, at the time the Contribution is added by the
+ Contributor, such addition of the Contribution causes such combination to be
+ covered by the Licensed Patents. The patent license shall not apply to any
+ other combinations which include the Contribution. No hardware per se is
+ licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the licenses
+ to its Contributions set forth herein, no assurances are provided by any
+ Contributor that the Program does not infringe the patent or other intellectual
+ property rights of any other entity. Each Contributor disclaims any liability
+ to Recipient for claims brought by any other entity based on infringement of
+ intellectual property rights or otherwise. As a condition to exercising the
+ rights and licenses granted hereunder, each Recipient hereby assumes sole
+ responsibility to secure any other intellectual property rights needed, if any.
+ For example, if a third party patent license is required to allow Recipient to
+ distribute the Program, it is Recipient's responsibility to acquire that
+ license before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright license
+ set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under
+its own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+
+ b) its license agreement:
+
+ i) effectively disclaims on behalf of all Contributors all warranties and
+ conditions, express and implied, including warranties or conditions of title
+ and non-infringement, and implied warranties or conditions of merchantability
+ and fitness for a particular purpose;
+
+ ii) effectively excludes on behalf of all Contributors all liability for
+ damages, including direct, indirect, special, incidental and consequential
+ damages, such as lost profits;
+
+ iii) states that any provisions which differ from this Agreement are offered
+ by that Contributor alone and not by any other party; and
+
+ iv) states that source code for the Program is available from such
+ Contributor, and informs licensees how to obtain it in a reasonable manner on
+ or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+
+ b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within
+the Program.
+
+Each Contributor must identify itself as the originator of its Contribution,
+if any, in a manner that reasonably allows subsequent Recipients to identify
+the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using
+and distributing the Program and assumes all risks associated with its exercise
+of rights under this Agreement, including but not limited to the risks and
+costs of program errors, compliance with applicable laws, damage to or loss of
+data, programs or equipment, and unavailability or interruption of operations.
+
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of the
+remainder of the terms of this Agreement, and without further action by the
+parties hereto, such provision shall be reformed to the minimum extent
+necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect
+to a patent applicable to software (including a cross-claim or counterclaim in
+a lawsuit), then any patent licenses granted by that Contributor to such
+Recipient under this Agreement shall terminate as of the date such litigation
+is filed. In addition, if Recipient institutes patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software or
+hardware) infringes such Recipient's patent(s), then such Recipient's rights
+granted under Section 2(b) shall terminate as of the date such litigation is
+filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue
+and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial
+in any resulting litigation.
diff --git a/libre/licenses-libre/eclipse-1.0.txt b/libre/licenses-libre/eclipse-1.0.txt
new file mode 100644
index 000000000..f61d34dfe
--- /dev/null
+++ b/libre/licenses-libre/eclipse-1.0.txt
@@ -0,0 +1,88 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
+
+
diff --git a/libre/licenses-libre/perlartistic.txt b/libre/licenses-libre/perlartistic.txt
new file mode 100644
index 000000000..aaf7c8801
--- /dev/null
+++ b/libre/licenses-libre/perlartistic.txt
@@ -0,0 +1,151 @@
+NAME
+ perlartistic - the Perl Artistic License
+
+SYNOPSIS
+ You can refer to this document in Pod via "L<perlartistic>"
+ Or you can see this document by entering "perldoc perlartistic"
+
+DESCRIPTION
+ This is "The Artistic License". It's here so that modules, programs,
+ etc., that want to declare this as their distribution license, can link
+ to it.
+
+ It is also one of the two licenses Perl allows itself to be
+ redistributed and/or modified; for the other one, the GNU General Public
+ License, see the perlgpl.
+
+The "Artistic License"
+ Preamble
+ The intent of this document is to state the conditions under which a
+ Package may be copied, such that the Copyright Holder maintains some
+ semblance of artistic control over the development of the package, while
+ giving the users of the package the right to use and distribute the
+ Package in a more-or-less customary fashion, plus the right to make
+ reasonable modifications.
+
+ Definitions
+ "Package"
+ refers to the collection of files distributed by the Copyright
+ Holder, and derivatives of that collection of files created through
+ textual modification.
+
+ "Standard Version"
+ refers to such a Package if it has not been modified, or has been
+ modified in accordance with the wishes of the Copyright Holder as
+ specified below.
+
+ "Copyright Holder"
+ is whoever is named in the copyright or copyrights for the package.
+
+ "You"
+ is you, if you're thinking about copying or distributing this
+ Package.
+
+ "Reasonable copying fee"
+ is whatever you can justify on the basis of media cost, duplication
+ charges, time of people involved, and so on. (You will not be
+ required to justify it to the Copyright Holder, but only to the
+ computing community at large as a market that must bear the fee.)
+
+ "Freely Available"
+ means that no fee is charged for the item itself, though there may
+ be fees involved in handling the item. It also means that recipients
+ of the item may redistribute it under the same conditions they
+ received it.
+
+ Conditions
+ 1. You may make and give away verbatim copies of the source form of the
+ Standard Version of this Package without restriction, provided that
+ you duplicate all of the original copyright notices and associated
+ disclaimers.
+
+ 2. You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A
+ Package modified in such a way shall still be considered the
+ Standard Version.
+
+ 3. You may otherwise modify your copy of this Package in any way,
+ provided that you insert a prominent notice in each changed file
+ stating how and when you changed that file, and provided that you do
+ at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise make
+ them Freely Available, such as by posting said modifications to
+ Usenet or an equivalent medium, or placing the modifications on
+ a major archive site such as uunet.uu.net, or by allowing the
+ Copyright Holder to include your modifications in the Standard
+ Version of the Package.
+
+ b) use the modified Package only within your corporation or
+ organization.
+
+ c) rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided, and
+ provide a separate manual page for each non-standard executable
+ that clearly documents how it differs from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+ 4. You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the following:
+
+ a) distribute a Standard Version of the executables and library
+ files, together with instructions (in the manual page or
+ equivalent) on where to get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of
+ the Package with your modifications.
+
+ c) give non-standard executables non-standard names, and clearly
+ document the differences in manual pages (or equivalent),
+ together with instructions on where to get the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+ 5. You may charge a reasonable copying fee for any distribution of this
+ Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial)
+ software distribution provided that you do not advertise this
+ Package as a product of your own. You may embed this Package's
+ interpreter within an executable of yours (by linking); this shall
+ be construed as a mere form of aggregation, provided that the
+ complete Standard Version of the interpreter is so embedded.
+
+ 6. The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whoever generated
+ them, and may be sold commercially, and may be aggregated with this
+ Package. If such scripts or library files are aggregated with this
+ Package via the so-called "undump" or "unexec" methods of producing
+ a binary executable image, then distribution of such an image shall
+ neither be construed as a distribution of this Package nor shall it
+ fall under the restrictions of Paragraphs 3 and 4, provided that you
+ do not represent such an executable image as a Standard Version of
+ this Package.
+
+ 7. C subroutines (or comparably compiled subroutines in other
+ languages) supplied by you and linked into this Package in order to
+ emulate subroutines and variables of the language defined by this
+ Package shall not be considered part of this Package, but are the
+ equivalent of input as in Paragraph 6, provided these subroutines do
+ not change the language in any way that would cause it to fail the
+ regression tests for the language.
+
+ 8. Aggregation of this Package with a commercial distribution is always
+ permitted provided that the use of this Package is embedded; that
+ is, when no overt attempt is made to make this Package's interfaces
+ visible to the end user of the commercial distribution. Such use
+ shall not be construed as a distribution of this Package.
+
+ 9. The name of the Copyright Holder may not be used to endorse or
+ promote products derived from this software without specific prior
+ written permission.
+
+ 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+ The End
+
diff --git a/libre/licenses-libre/python-2.txt b/libre/licenses-libre/python-2.txt
new file mode 100644
index 000000000..454f4ea69
--- /dev/null
+++ b/libre/licenses-libre/python-2.txt
@@ -0,0 +1,193 @@
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and
+its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python
+alone or in any derivative version, provided, however, that PSF's
+License Agreement and PSF's notice of copyright, i.e., "Copyright (c)
+2001, 2002, 2003, 2004, 2005, 2006, 2007 Python Software Foundation;
+All Rights Reserved" are retained in Python alone or in any derivative
+version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python.
+
+4. PSF is making Python available to Licensee on an "AS IS"
+basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee. This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions. Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee. This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party. As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+hereby grants Licensee a nonexclusive, royalty-free, world-wide
+license to reproduce, analyze, test, perform and/or display publicly,
+prepare derivative works, distribute, and otherwise use Python 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee. Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement. This Agreement together with
+Python 1.6.1 may be located on the Internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013. This
+Agreement may also be obtained from a proxy server on the Internet
+using the following URL: http://hdl.handle.net/1895.22/1013".
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of
+the changes made to Python 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+7. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee. This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+ ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands. All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/libre/mplayer-libre/PKGBUILD b/libre/mplayer-libre/PKGBUILD
new file mode 100644
index 000000000..61c96f190
--- /dev/null
+++ b/libre/mplayer-libre/PKGBUILD
@@ -0,0 +1,59 @@
+# $Id$
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Maintainer for Parabola GNU/Linux: Omar Botta <omarbotta@gnulinuxlibre.net>
+
+pkgname=mplayer-libre
+pkgver=33159
+pkgrel=1
+pkgdesc="A movie player for linux. Libre version without faac."
+arch=('i686' 'x86_64')
+depends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl' 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss'
+ 'libgl' 'smbclient' 'aalib' 'jack' 'libcaca' 'x264' 'lirc-utils' 'ttf-dejavu' 'libxvmc' 'enca' 'libvdpau'
+ 'opencore-amr' 'libdca' 'a52dec' 'schroedinger' 'libvpx' 'libpulse' 'speex' 'fribidi' 'desktop-file-utils')
+license=('GPL')
+url="http://www.mplayerhq.hu/"
+makedepends=('unzip' 'mesa' 'live-media' 'yasm' 'git')
+backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
+source=(ftp://ftp.archlinux.org/other/${pkgname%-libre}/${pkgname%-libre}-${pkgver}.tar.xz mplayer.desktop mplayer.png)
+provides=("mplayer=$pkgver")
+conflicts=('mplayer')
+replaces=("mplayer=$pkgver")
+md5sums=('caedcdc1e50b5575c38c2a85f9c53afc'
+ '647b9f4ab5284a7fef3f84f992214e77'
+ 'd00874ccc644b7f43d6ef1c942fcef28')
+
+build() {
+ # Custom CFLAGS break the mplayer build
+ unset CFLAGS LDFLAGS
+
+ cd ${srcdir}/${pkgname%-libre}
+
+ ./configure --prefix=/usr \
+ --enable-runtime-cpudetection \
+ --disable-gui \
+ --disable-arts \
+ --disable-liblzo \
+ --enable-speex \
+ --disable-openal \
+ --disable-libdv \
+ --disable-musepack \
+ --disable-esd \
+ --disable-mga \
+ --disable-faac \
+ --enable-xvmc \
+ --language=all \
+ --confdir=/etc/mplayer
+
+ [ "$CARCH" = "i686" ] && sed 's|-march=i486|-march=i686|g' -i config.mak
+
+ make
+ make -j1 DESTDIR=${pkgdir} install
+ install -Dm644 etc/{codecs.conf,input.conf,example.conf} ${pkgdir}/etc/mplayer/
+ install -dm755 ${pkgdir}/usr/share/mplayer/
+ ln -s /usr/share/fonts/TTF/DejaVuSans.ttf ${pkgdir}/usr/share/mplayer/subfont.ttf
+ rm -rf ${pkgdir}/usr/share/mplayer/font
+ #desktop file FS#14770
+ install -Dm644 ${srcdir}/mplayer.desktop ${pkgdir}/usr/share/applications/mplayer.desktop
+ install -Dm644 ${srcdir}/mplayer.png ${pkgdir}/usr/share/pixmaps/mplayer.png
+}
diff --git a/libre/mplayer-libre/mplayer.desktop b/libre/mplayer-libre/mplayer.desktop
new file mode 100644
index 000000000..e3229d042
--- /dev/null
+++ b/libre/mplayer-libre/mplayer.desktop
@@ -0,0 +1,21 @@
+[Desktop Entry]
+Type=Application
+Name=MPlayer Media Player
+Name[ca]=Reproductor multimèdia MPlayer
+Name[pl]=MPlayer odtwarzacz multimedialny
+GenericName=Multimedia player
+Comment=Play movies and songs
+Comment[ca]=Reproduïu vídeos i cançons
+Comment[de]=Filme und Musik abspielen
+Comment[es]=Reproduzca vídeos y canciones
+Comment[fr]=Lecteur multimédia
+Comment[it]=Lettore multimediale
+Comment[zh]=多媒体播放器
+Comment[pl]=Odtwarzaj filmy i muzykę
+Icon=mplayer
+TryExec=mplayer
+Exec=mplayer -really-quiet %F
+Terminal=false
+NoDisplay=true
+Categories=GTK;AudioVideo;Audio;Video;Player;TV;
+MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/mp4;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-flv;video/x-theora;video/x-matroska;
diff --git a/libre/mplayer-libre/mplayer.install b/libre/mplayer-libre/mplayer.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/libre/mplayer-libre/mplayer.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/mplayer-libre/mplayer.png b/libre/mplayer-libre/mplayer.png
new file mode 100644
index 000000000..799769335
--- /dev/null
+++ b/libre/mplayer-libre/mplayer.png
Binary files differ
diff --git a/libre/mplayer-vaapi-libre/PKGBUILD b/libre/mplayer-vaapi-libre/PKGBUILD
new file mode 100644
index 000000000..2f1028119
--- /dev/null
+++ b/libre/mplayer-vaapi-libre/PKGBUILD
@@ -0,0 +1,82 @@
+# $Id: PKGBUILD 32760 2010-11-18 03:40:37Z foutrelis $
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+# Maintainer: Evangelos Foutras <foutrelis@gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+
+pkgname=mplayer-vaapi-libre
+pkgver=33025
+_vaapi_version=20110127
+pkgrel=3
+pkgdesc="A movie player, compiled with vaapi support, without faac dependency, added speex support"
+arch=('i686' 'x86_64')
+url="http://www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/"
+license=('GPL')
+depends=('libxxf86dga' 'libxxf86vm' 'libmad' 'cdparanoia' 'libxinerama' 'sdl'
+ 'lame' 'libtheora' 'xvidcore' 'libmng' 'libxss' 'libgl' 'smbclient'
+ 'aalib' 'jack' 'libcaca' 'x264' 'lirc-utils' 'ttf-dejavu' 'speex'
+ 'libxvmc' 'enca' 'opencore-amr' 'libdca' 'a52dec' 'schroedinger'
+ 'libvpx' 'libpulse' 'fribidi' 'libva' 'desktop-file-utils')
+makedepends=('unzip' 'mesa' 'live-media>=2010.01.13' 'yasm')
+provides=("mplayer-vaapi=$pkgver")
+conflicts=('mplayer' 'mplayer-vaapi')
+replaces=("mplayer-vaapi=$pkgver")
+backup=('etc/mplayer/codecs.conf' 'etc/mplayer/input.conf')
+source=(http://pkgbuild.com/~foutrelis/mplayer-$pkgver.tar.xz
+ http://www.splitted-desktop.com/~gbeauchesne/mplayer-vaapi/mplayer-vaapi-$_vaapi_version.tar.bz2
+ mplayer.desktop
+ mplayer.png
+ patch-fixes.patch)
+install=mplayer-vaapi.install
+md5sums=('3814e5c47458de4bf0878d3996820341'
+ 'b39bd73ae8241dcb21dd1a8fa5eb87eb'
+ '647b9f4ab5284a7fef3f84f992214e77'
+ 'd00874ccc644b7f43d6ef1c942fcef28'
+ '9f96a03dddbea8be5ff2fa3925311d04')
+
+build() {
+ cd "$srcdir/mplayer-$pkgver"
+
+ # Custom CFLAGS break the mplayer build
+ unset CFLAGS LDFLAGS
+
+ # Update vaapi patches for changes introduced in mplayer/ffmpeg
+ patch -d "$srcdir/mplayer-vaapi-$_vaapi_version" -p1 -i \
+ "$srcdir/patch-fixes.patch"
+
+ for patch in mplayer-{vaapi{,-{gma500-workaround,0.29}},vdpau}; do
+ patch -Np1 -i "$srcdir/mplayer-vaapi-$_vaapi_version/patches/$patch.patch"
+ done
+
+ ./configure --prefix=/usr \
+ --disable-faac \
+ --enable-runtime-cpudetection \
+ --disable-gui \
+ --disable-arts \
+ --disable-liblzo \
+ --enable-speex \
+ --disable-openal \
+ --disable-libdv \
+ --disable-musepack \
+ --disable-esd \
+ --disable-mga \
+ --enable-xvmc \
+ --disable-vdpau \
+ --enable-vaapi \
+ --language=all \
+ --confdir=/etc/mplayer
+
+ [ "$CARCH" = "i686" ] && sed 's|-march=i486|-march=i686|g' -i config.mak
+
+ make
+ make -j1 DESTDIR=$pkgdir install
+ install -Dm644 etc/{codecs.conf,input.conf,example.conf} "$pkgdir/etc/mplayer/"
+ install -dm755 "$pkgdir/usr/share/mplayer/"
+ ln -s /usr/share/fonts/TTF/DejaVuSans.ttf "$pkgdir/usr/share/mplayer/subfont.ttf"
+ rm -rf "$pkgdir/usr/share/mplayer/font"
+ # Desktop file (FS#14770)
+ install -Dm644 "$srcdir/mplayer.desktop" "$pkgdir/usr/share/applications/mplayer.desktop"
+ install -Dm644 "$srcdir/mplayer.png" "$pkgdir/usr/share/pixmaps/mplayer.png"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/mplayer-vaapi-libre/mplayer-vaapi.install b/libre/mplayer-vaapi-libre/mplayer-vaapi.install
new file mode 100644
index 000000000..2f38769cb
--- /dev/null
+++ b/libre/mplayer-vaapi-libre/mplayer-vaapi.install
@@ -0,0 +1,9 @@
+post_install() {
+ update-desktop-database -q
+}
+post_upgrade() {
+ post_install $1
+}
+post_remove() {
+ post_install $1
+}
diff --git a/libre/mplayer-vaapi-libre/mplayer.desktop b/libre/mplayer-vaapi-libre/mplayer.desktop
new file mode 100644
index 000000000..e3229d042
--- /dev/null
+++ b/libre/mplayer-vaapi-libre/mplayer.desktop
@@ -0,0 +1,21 @@
+[Desktop Entry]
+Type=Application
+Name=MPlayer Media Player
+Name[ca]=Reproductor multimèdia MPlayer
+Name[pl]=MPlayer odtwarzacz multimedialny
+GenericName=Multimedia player
+Comment=Play movies and songs
+Comment[ca]=Reproduïu vídeos i cançons
+Comment[de]=Filme und Musik abspielen
+Comment[es]=Reproduzca vídeos y canciones
+Comment[fr]=Lecteur multimédia
+Comment[it]=Lettore multimediale
+Comment[zh]=多媒体播放器
+Comment[pl]=Odtwarzaj filmy i muzykę
+Icon=mplayer
+TryExec=mplayer
+Exec=mplayer -really-quiet %F
+Terminal=false
+NoDisplay=true
+Categories=GTK;AudioVideo;Audio;Video;Player;TV;
+MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/mp4;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-flv;video/x-theora;video/x-matroska;
diff --git a/libre/mplayer-vaapi-libre/mplayer.png b/libre/mplayer-vaapi-libre/mplayer.png
new file mode 100644
index 000000000..799769335
--- /dev/null
+++ b/libre/mplayer-vaapi-libre/mplayer.png
Binary files differ
diff --git a/libre/mplayer-vaapi-libre/patch-fixes.patch b/libre/mplayer-vaapi-libre/patch-fixes.patch
new file mode 100644
index 000000000..73153b3fe
--- /dev/null
+++ b/libre/mplayer-vaapi-libre/patch-fixes.patch
@@ -0,0 +1,131 @@
+diff -upr mplayer-vaapi-20110127.orig/patches/mplayer-vaapi.patch mplayer-vaapi-20110127/patches/mplayer-vaapi.patch
+--- mplayer-vaapi-20110127.orig/patches/mplayer-vaapi.patch 2011-01-27 17:15:29.000000000 +0200
++++ mplayer-vaapi-20110127/patches/mplayer-vaapi.patch 2011-03-05 06:47:20.000000000 +0200
+@@ -449,14 +449,15 @@ diff --git a/fmt-conversion.c b/fmt-conv
+ index 9e88100..bd32ce8 100644
+ --- a/fmt-conversion.c
+ +++ b/fmt-conversion.c
+-@@ -18,12 +18,14 @@
++@@ -18,6 +18,7 @@
+
+ #include "mp_msg.h"
+ #include "libavutil/avutil.h"
+ +#include "libavcodec/avcodec.h"
+ #include "libmpcodecs/img_format.h"
+- #include "fmt-conversion.h"
+-
++ #include "libavutil/samplefmt.h"
++ #include "libaf/af_format.h"
++@@ -26,6 +27,7 @@
+ static const struct {
+ int fmt;
+ enum PixelFormat pix_fmt;
+@@ -503,14 +504,15 @@ diff --git a/fmt-conversion.h b/fmt-conv
+ index 9e133a8..962ca4e 100644
+ --- a/fmt-conversion.h
+ +++ b/fmt-conversion.h
+-@@ -23,6 +23,6 @@
+- #include "libavutil/avutil.h"
++@@ -24,7 +24,7 @@
++ #include "libavutil/samplefmt.h"
+
+ enum PixelFormat imgfmt2pixfmt(int fmt);
+ -int pixfmt2imgfmt(enum PixelFormat pix_fmt);
+ +int pixfmt2imgfmt(enum PixelFormat pix_fmt, int codec_id);
++ enum AVSampleFormat affmt2samplefmt(int fmt);
++ int samplefmt2affmt(enum AVSampleFormat sample_fmt);
+
+- #endif /* MPLAYER_FMT_CONVERSION_H */
+ diff --git a/gui/mplayer/gtk/opts.c b/gui/mplayer/gtk/opts.c
+ index 4f7ffb2..0da5434 100644
+ --- a/gui/mplayer/gtk/opts.c
+diff -upr mplayer-vaapi-20110127.orig/patches/mplayer-vdpau.patch mplayer-vaapi-20110127/patches/mplayer-vdpau.patch
+--- mplayer-vaapi-20110127.orig/patches/mplayer-vdpau.patch 2010-11-15 08:41:19.000000000 +0200
++++ mplayer-vaapi-20110127/patches/mplayer-vdpau.patch 2011-03-05 07:07:15.000000000 +0200
+@@ -133,7 +133,7 @@ index b0d00f4..745d3e4 100644
+
+ videocodec ffh264
+ info "FFmpeg H.264"
+-@@ -993,19 +947,8 @@ videocodec ffh264
++@@ -993,21 +947,8 @@ videocodec ffh264
+ driver ffmpeg
+ dll h264
+ out VAAPI_H264
+@@ -146,6 +146,8 @@ index b0d00f4..745d3e4 100644
+ - fourcc X264,x264
+ - fourcc avc1,AVC1
+ - fourcc davc,DAVC
++- fourcc ai55,ai15 ; flip4mac avc intra
++- fourcc ai1q,ai5q ; flip4mac avc intra
+ - format 0x10000005
+ - driver ffmpeg
+ - dll h264_vdpau
+@@ -362,13 +364,13 @@ index f99f7ea..faafa97 100644
+ context_count++;
+ }
+ break;
+-@@ -3408,20 +3392,3 @@ AVCodec h264_decoder = {
++@@ -3408,21 +3392,3 @@ AVCodec h264_decoder = {
+ .flush= flush_dpb,
+ .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
+ };
+ -
+ -#if CONFIG_H264_VDPAU_DECODER
+--AVCodec h264_vdpau_decoder = {
++-AVCodec ff_h264_vdpau_decoder = {
+ - "h264_vdpau",
+ - AVMEDIA_TYPE_VIDEO,
+ - CODEC_ID_H264,
+@@ -381,6 +383,7 @@ index f99f7ea..faafa97 100644
+ - .flush= flush_dpb,
+ - .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)"),
+ - .pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_H264, PIX_FMT_NONE},
++- .profiles = NULL_IF_CONFIG_SMALL(profiles),
+ -};
+ -#endif
+ diff --git a/ffmpeg/libavcodec/mpeg12.c b/ffmpeg/libavcodec/mpeg12.c
+@@ -458,7 +461,7 @@ index 6a331eb..c226797 100644
+ #endif
+ -
+ -#if CONFIG_MPEG_VDPAU_DECODER
+--AVCodec mpeg_vdpau_decoder = {
++-AVCodec ff_mpeg_vdpau_decoder = {
+ - "mpegvideo_vdpau",
+ - AVMEDIA_TYPE_VIDEO,
+ - CODEC_ID_MPEG2VIDEO,
+@@ -474,7 +477,7 @@ index 6a331eb..c226797 100644
+ -#endif
+ -
+ -#if CONFIG_MPEG1_VDPAU_DECODER
+--AVCodec mpeg1_vdpau_decoder = {
++-AVCodec ff_mpeg1_vdpau_decoder = {
+ - "mpeg1video_vdpau",
+ - AVMEDIA_TYPE_VIDEO,
+ - CODEC_ID_MPEG1VIDEO,
+@@ -500,7 +503,7 @@ index b339f78..1928d03 100644
+ -
+ -
+ -#if CONFIG_MPEG4_VDPAU_DECODER
+--AVCodec mpeg4_vdpau_decoder = {
++-AVCodec ff_mpeg4_vdpau_decoder = {
+ - "mpeg4_vdpau",
+ - AVMEDIA_TYPE_VIDEO,
+ - CODEC_ID_MPEG4,
+@@ -588,7 +591,7 @@ index c9a547b..71c50e7 100644
+ #endif
+ -
+ -#if CONFIG_WMV3_VDPAU_DECODER
+--AVCodec wmv3_vdpau_decoder = {
++-AVCodec ff_wmv3_vdpau_decoder = {
+ - "wmv3_vdpau",
+ - AVMEDIA_TYPE_VIDEO,
+ - CODEC_ID_WMV3,
+@@ -605,7 +608,7 @@ index c9a547b..71c50e7 100644
+ -#endif
+ -
+ -#if CONFIG_VC1_VDPAU_DECODER
+--AVCodec vc1_vdpau_decoder = {
++-AVCodec ff_vc1_vdpau_decoder = {
+ - "vc1_vdpau",
+ - AVMEDIA_TYPE_VIDEO,
+ - CODEC_ID_VC1,
diff --git a/libre/p7zip-libre/9.04-makefile.patch b/libre/p7zip-libre/9.04-makefile.patch
new file mode 100644
index 000000000..93a99cc90
--- /dev/null
+++ b/libre/p7zip-libre/9.04-makefile.patch
@@ -0,0 +1,19 @@
+--- p7zip_9.04/CPP/7zip/Bundles/Format7zFree/makefile.orig 2010-01-04 13:58:54.527887746 +0100
++++ p7zip_9.04/CPP/7zip/Bundles/Format7zFree/makefile 2010-01-04 13:59:10.290868343 +0100
+@@ -247,8 +247,6 @@
+ MyAes.o \
+ Pbkdf2HmacSha1.o \
+ RandGen.o \
+- Rar20Crypto.o \
+- RarAes.o \
+ Sha1.o \
+ WzAes.o \
+ ZipCrypto.o \
+@@ -298,7 +296,6 @@
+ $(HFS_OBJS) \
+ $(ISO_OBJS) \
+ $(NSIS_OBJS) \
+- $(RAR_OBJS) \
+ $(TAR_OBJS) \
+ $(UDF_OBJS) \
+ $(WIM_OBJS) \
diff --git a/libre/p7zip-libre/PKGBUILD b/libre/p7zip-libre/PKGBUILD
new file mode 100644
index 000000000..cbee2b234
--- /dev/null
+++ b/libre/p7zip-libre/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id$
+# Contributor: Thayer Williams <thayer@archlinux.org>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: TuxSpirit<tuxspirit@archlinux.fr> 2007/11/17 21:22:36 UTC
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+
+pkgname=p7zip-libre
+_pkgname=${pkgname%-libre}
+pkgver=9.20
+pkgrel=1
+pkgdesc='Command-line version of the 7zip compressed file archiver without Rar'
+arch=('i686' 'x86_64')
+license=('GPL')
+url='http://p7zip.sourceforge.net/'
+makedepends=('yasm' 'nasm')
+source=("http://downloads.sourceforge.net/sourceforge/${_pkgname}/${_pkgname}_${pkgver}_src_all.tar.bz2"
+ 9.04-makefile.patch)
+provides=("p7zip=$pkgver")
+conflicts=('p7zip')
+replaces=('p7zip')
+sha1sums=('c976df4543ea946a65bc3f5e3d4e9baa417e5f12'
+ '3a3333d4703955664fdd4023c624ab4828af0ab1')
+build() {
+ cd "${srcdir}/${_pkgname}_${pkgver}"
+
+ msg "Removing unRar"
+ sed -e '/Rar/d' -i makefile*
+ rm -rf CPP/7zip/Compress/Rar
+ patch -p1 -i $startdir/src/9.04-makefile.patch
+
+ [[ $CARCH = x86_64 ]] \
+ && cp makefile.linux_amd64_asm makefile.machine \
+ || cp makefile.linux_x86_asm_gcc_4.X makefile.machine
+ sed -i "s|usr/local|usr|g" makefile
+
+ make all3 OPTFLAGS="${CXXFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/${_pkgname}_${pkgver}"
+
+ make install \
+ DEST_HOME="${pkgdir}/usr" \
+ DEST_MAN="${pkgdir}/usr/share/man" \
+ DEST_SHARE_DOC="http://www.bugaco.com/7zip"
+
+ install -m555 bin/7z.so ${pkgdir}/usr/lib/p7zip/
+ sed "s|${pkgdir}/usr|/usr|g" -i "${pkgdir}"/usr/bin/7z{,a,r}
+ install -Dm755 contrib/VirtualFileSystemForMidnightCommander/u7z "${pkgdir}"/usr/lib/mc/extfs.d/u7z
+}
diff --git a/libre/pacman-mirrorlist-libre/PKGBUILD b/libre/pacman-mirrorlist-libre/PKGBUILD
new file mode 100644
index 000000000..65fc932ef
--- /dev/null
+++ b/libre/pacman-mirrorlist-libre/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 88892 2010-08-26 04:28:34Z dan $
+# Maintainer: Dan McGee <dan@archlinux.org>
+# Maintainer Parabola GNU/Linux: Joshua Ismael <hahj87@gmail.com>
+
+pkgname=pacman-mirrorlist-libre
+pkgver=$(date +%Y%m%d)
+pkgrel=1
+pkgdesc="Parabola GNU/Linux mirror list for use by pacman"
+arch=('any')
+url="http://repo.parabolagnulinux.org/files/mirrorlist"
+license=('GPL')
+groups=('base')
+#backup=(etc/pacman.d/mirrorlist)
+source=(mirrorlist)
+conflicts=(pacman-mirrorlist)
+replaces=(pacman-mirrorlist)
+provides=(pacman-mirrorlist)
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+# NOTE on building this package:
+# * Go to the trunk/ directory
+# * Run bash -c ". PKGBUILD; updatelist"
+# * Update the checksums, update pkgver
+# * Build the package
+
+updatelist() {
+ wget -O mirrorlist http://repo.parabolagnulinux.org/files/mirrorlist
+}
+
+build() {
+ mkdir -p $pkgdir/etc/pacman.d
+ install -m644 $srcdir/mirrorlist $pkgdir/etc/pacman.d/
+}
+
+md5sums=('6440731bd17b4b6da3927e4882783946')
diff --git a/libre/pacman-mirrorlist-libre/mirrorlist b/libre/pacman-mirrorlist-libre/mirrorlist
new file mode 100644
index 000000000..f353d0bd0
--- /dev/null
+++ b/libre/pacman-mirrorlist-libre/mirrorlist
@@ -0,0 +1,4 @@
+# Parabola GNU/Linux
+Server = http://repo.parabolagnulinux.org/$repo/os/$arch
+Server = ftp://ftp.inf.utfsm.cl/pub/parabola/$repo/os/$arch
+
diff --git a/libre/psutils-libre/PKGBUILD b/libre/psutils-libre/PKGBUILD
new file mode 100644
index 000000000..6ed3b7f60
--- /dev/null
+++ b/libre/psutils-libre/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Henry Jensen <hjensen@connochaetos.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: xihh <hahj87@gmail.com>
+
+pkgname=psutils-libre
+pkgver=1.17
+pkgrel=1
+pkgdesc="A set of postscript utilities"
+arch=(i686 x86_64)
+license=('custom')
+depends=('glibc' 'ghostscript')
+provides=('psutils-lprng' 'psutils')
+replaces=('psutils-lprng' 'psutils')
+conflicts=('psutils-lprng' 'psutils')
+url="http://www.connochaetos.org"
+source=(http://www.connochaetos.org/misc/${pkgname}-${pkgver}.tar.gz)
+md5sums=('5553b70be2484cef7a76d741a26f24d5')
+
+build() {
+ cd "${srcdir}/${pkgname}"
+ install -d -m755 "${pkgdir}/usr/share/man"
+ make -j1 -f Makefile.unix BINDIR="${pkgdir}/usr/bin" \
+ PERL=/usr/bin/perl \
+ MANDIR="${pkgdir}/usr/share/man/man1" || return 1
+ make -j1 -f Makefile.unix BINDIR="${pkgdir}/usr/bin" \
+ PERL=/usr/bin/perl \
+ MANDIR="${pkgdir}/usr/share/man/man1" install || return 1
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+ install -m644 LICENSE.orig "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/libre/python-reportlab-libre/PKGBUILD b/libre/python-reportlab-libre/PKGBUILD
new file mode 100644
index 000000000..e0dfc9d9c
--- /dev/null
+++ b/libre/python-reportlab-libre/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 29478 2010-10-14 14:58:41Z angvp $
+# Maintainer: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+# Contributor: borgo <nomail>
+
+pkgname=python-reportlab-libre
+_origname=reportlab
+pkgver=2.5
+pkgrel=1
+pkgdesc="A proven industry-strength PDF generating solution"
+arch=('i686' 'x86_64')
+depends=('python2' 'freetype2' 'ttf-bitstream-vera' 'gsfonts' 'python-imaging')
+license=('custom')
+source=(http://www.reportlab.org/ftp/${_origname}-$pkgver.tar.gz
+ free-fonts.patch)
+url="http://www.reportlab.org/rl_toolkit.html"
+md5sums=('cdf8b87a6cf1501de1b0a8d341a217d3'
+ '1fc63857754cf3e2987d2400d94e7cd7')
+provides=("python-reportlab=$pkgver")
+conflicts=('python-reportlab')
+replaces=('python-reportlab')
+optdepends=('ghostscript')
+
+build() {
+ cd $srcdir/${_origname}-$pkgver
+
+ # python2 fix
+ for file in src/reportlab/graphics/widgets/table.py src/reportlab/lib/normalDate.py \
+ src/reportlab/pdfgen/pycanvas.py; do
+ sed -i 's_#!.*/usr/bin/env python_#!/usr/bin/env python2_' $file
+ done
+
+ rm -f reportlab/fonts/Vera* reportlab/fonts/bitstream-vera-license.txt
+ patch -p1 -i $srcdir/free-fonts.patch
+
+ python2 setup.py install --root=$pkgdir
+ install -D -m644 LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/license.txt
+}
diff --git a/libre/python-reportlab-libre/free-fonts.patch b/libre/python-reportlab-libre/free-fonts.patch
new file mode 100644
index 000000000..9c79839b6
--- /dev/null
+++ b/libre/python-reportlab-libre/free-fonts.patch
@@ -0,0 +1,144 @@
+diff -rupN reportlab-2.5-orig/setup.py reportlab-2.5/setup.py
+--- reportlab-2.5-orig/setup.py 2010-06-16 13:56:53.000000000 +0200
++++ reportlab-2.5/setup.py 2011-01-06 11:01:50.263333455 +0100
+@@ -222,11 +222,11 @@ def get_fonts(PACKAGE_DIR, reportlab_fil
+ infoline("Standard T1 font curves already downloaded")
+ return
+ try:
+- infoline("Downloading standard T1 font curves")
++ #infoline("Downloading standard T1 font curves")
+
+- remotehandle = urllib2.urlopen("http://www.reportlab.com/ftp/fonts/pfbfer.zip")
+- zipdata = StringIO.StringIO(remotehandle.read())
+- remotehandle.close()
++ #remotehandle = urllib2.urlopen("http://www.reportlab.com/ftp/fonts/pfbfer.zip")
++ #zipdata = StringIO.StringIO(remotehandle.read())
++ #remotehandle.close()
+ archive = zipfile.ZipFile(zipdata)
+ dst = pjoin(rl_dir, 'fonts')
+
+@@ -239,7 +239,7 @@ def get_fonts(PACKAGE_DIR, reportlab_fil
+ except:
+ xitmsg = "Failed to download standard T1 font curves"
+ reportlab_files = [x for x in reportlab_files if os.path.isfile(pjoin(rl_dir,x))]
+- infoline(xitmsg)
++ #infoline(xitmsg)
+
+ def main():
+ #test to see if we've a special command
+diff -rupN reportlab-2.5-orig/src/reportlab/pdfbase/_fontdata.py reportlab-2.5/src/reportlab/pdfbase/_fontdata.py
+--- reportlab-2.5-orig/src/reportlab/pdfbase/_fontdata.py 2010-02-10 22:01:22.000000000 +0100
++++ reportlab-2.5/src/reportlab/pdfbase/_fontdata.py 2011-01-06 11:03:59.459999025 +0100
+@@ -72,20 +72,20 @@ _font2fnrMapWin32 = {
+ }
+ if sys.platform in ('linux2',):
+ _font2fnrMapLinux2 ={
+- 'symbol': 'Symbol',
+- 'zapfdingbats': 'ZapfDingbats',
+- 'helvetica': 'Arial',
+- 'helvetica-bold': 'Arial-Bold',
+- 'helvetica-boldoblique': 'Arial-BoldItalic',
+- 'helvetica-oblique': 'Arial-Italic',
+- 'times-bold': 'TimesNewRoman-Bold',
+- 'times-bolditalic':'TimesNewRoman-BoldItalic',
+- 'times-italic': 'TimesNewRoman-Italic',
+- 'times-roman': 'TimesNewRoman',
+- 'courier-bold': 'Courier-Bold',
+- 'courier-boldoblique': 'Courier-BoldOblique',
+- 'courier': 'Courier',
+- 'courier-oblique': 'Courier-Oblique',
++ 'symbol': 's050000l.pfb',
++ 'zapfdingbats': 'd050000l.pfb',
++ 'helvetica': 'n019003l.pfb',
++ 'helvetica-bold': 'n019004l.pfb',
++ 'helvetica-boldoblique': 'n019024l.pfb',
++ 'helvetica-oblique': 'n019023l.pfb',
++ 'times-bold': 'n021004l.pfb',
++ 'times-bolditalic':'n021024l.pfb',
++ 'times-italic': 'n021023l.pfb',
++ 'times-roman': 'n021003l.pfb',
++ 'courier-bold': 'n022004l.pfb',
++ 'courier-boldoblique': 'n022024l.pfb',
++ 'courier': 'n022003l.pfb',
++ 'courier-oblique': 'n022023l.pfb',
+ }
+ _font2fnrMap = _font2fnrMapLinux2
+ for k, v in _font2fnrMap.items():
+diff -rupN reportlab-2.5-orig/src/reportlab/rl_config.py reportlab-2.5/src/reportlab/rl_config.py
+--- reportlab-2.5-orig/src/reportlab/rl_config.py 2010-09-30 13:27:09.000000000 +0200
++++ reportlab-2.5/src/reportlab/rl_config.py 2011-01-06 11:01:50.266666714 +0100
+@@ -49,25 +49,7 @@ ttfAsciiReadable= 1
+
+ # places to look for T1Font information
+ T1SearchPath = (
+- 'c:/Program Files/Adobe/Acrobat 9.0/Resource/Font',
+- 'c:/Program Files/Adobe/Acrobat 8.0/Resource/Font',
+- 'c:/Program Files/Adobe/Acrobat 7.0/Resource/Font',
+- 'c:/Program Files/Adobe/Acrobat 6.0/Resource/Font', #Win32, Acrobat 6
+- 'c:/Program Files/Adobe/Acrobat 5.0/Resource/Font', #Win32, Acrobat 5
+- 'c:/Program Files/Adobe/Acrobat 4.0/Resource/Font', #Win32, Acrobat 4
+- '%(disk)s/Applications/Python %(sys_version)s/reportlab/fonts', #Mac?
+- '/usr/lib/Acrobat9/Resource/Font', #Linux, Acrobat 5?
+- '/usr/lib/Acrobat8/Resource/Font', #Linux, Acrobat 5?
+- '/usr/lib/Acrobat7/Resource/Font', #Linux, Acrobat 5?
+- '/usr/lib/Acrobat6/Resource/Font', #Linux, Acrobat 5?
+- '/usr/lib/Acrobat5/Resource/Font', #Linux, Acrobat 5?
+- '/usr/lib/Acrobat4/Resource/Font', #Linux, Acrobat 4
+- '/usr/local/Acrobat9/Resource/Font', #Linux, Acrobat 5?
+- '/usr/local/Acrobat8/Resource/Font', #Linux, Acrobat 5?
+- '/usr/local/Acrobat7/Resource/Font', #Linux, Acrobat 5?
+- '/usr/local/Acrobat6/Resource/Font', #Linux, Acrobat 5?
+- '/usr/local/Acrobat5/Resource/Font', #Linux, Acrobat 5?
+- '/usr/local/Acrobat4/Resource/Font', #Linux, Acrobat 4
++ '/usr/share/fonts/Type1',
+ '%(REPORTLAB_DIR)s/fonts', #special
+ '%(REPORTLAB_DIR)s/../fonts', #special
+ '%(REPORTLAB_DIR)s/../../fonts', #special
+@@ -76,44 +58,17 @@ T1SearchPath = (
+
+ # places to look for TT Font information
+ TTFSearchPath = (
+- 'c:/winnt/fonts',
+- 'c:/windows/fonts',
+- '/usr/lib/X11/fonts/TrueType/',
+- '/usr/share/fonts/truetype',
++ '/usr/share/fonts/TTF',
+ '%(REPORTLAB_DIR)s/fonts', #special
+ '%(REPORTLAB_DIR)s/../fonts', #special
+ '%(REPORTLAB_DIR)s/../../fonts',#special
+ '%(HOME)s/fonts', #special
+- #mac os X - from
+- #http://developer.apple.com/technotes/tn/tn2024.html
+- '~/Library/Fonts',
+- '/Library/Fonts',
+- '/Network/Library/Fonts',
+- '/System/Library/Fonts',
+-
+ )
+
+ # places to look for CMap files - should ideally merge with above
+ CMapSearchPath = (
+- '/usr/lib/Acrobat9/Resource/CMap',
+- '/usr/lib/Acrobat8/Resource/CMap',
+- '/usr/lib/Acrobat7/Resource/CMap',
+- '/usr/lib/Acrobat6/Resource/CMap',
+- '/usr/lib/Acrobat5/Resource/CMap',
+- '/usr/lib/Acrobat4/Resource/CMap',
+- '/usr/local/Acrobat9/Resource/CMap',
+- '/usr/local/Acrobat8/Resource/CMap',
+- '/usr/local/Acrobat7/Resource/CMap',
+- '/usr/local/Acrobat6/Resource/CMap',
+- '/usr/local/Acrobat5/Resource/CMap',
+- '/usr/local/Acrobat4/Resource/CMap',
+- 'C:\\Program Files\\Adobe\\Acrobat\\Resource\\CMap',
+- 'C:\\Program Files\\Adobe\\Acrobat 9.0\\Resource\\CMap',
+- 'C:\\Program Files\\Adobe\\Acrobat 8.0\\Resource\\CMap',
+- 'C:\\Program Files\\Adobe\\Acrobat 7.0\\Resource\\CMap',
+- 'C:\\Program Files\\Adobe\\Acrobat 6.0\\Resource\\CMap',
+- 'C:\\Program Files\\Adobe\\Acrobat 5.0\\Resource\\CMap',
+- 'C:\\Program Files\\Adobe\\Acrobat 4.0\\Resource\\CMap',
++ '/usr/share/ghostscript/8.71/Resource/CMap',
++ '/usr/share/ghostscript/9.00/Resource/CMap',
+ '%(REPORTLAB_DIR)s/fonts/CMap', #special
+ '%(REPORTLAB_DIR)s/../fonts/CMap', #special
+ '%(REPORTLAB_DIR)s/../../fonts/CMap', #special
diff --git a/libre/seamonkey-libre/PKGBUILD b/libre/seamonkey-libre/PKGBUILD
new file mode 100644
index 000000000..343f3e3ed
--- /dev/null
+++ b/libre/seamonkey-libre/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+pkgname=seamonkey-libre
+pkgver=2.0.12
+pkgrel=1
+pkgdesc="SeaMonkey internet suite, with GNUZilla addons"
+arch=('i686' 'x86_64')
+license=('MPL')
+depends=('gtk2' 'mozilla-common' 'nss' 'libxt' 'gcc-libs' 'alsa-lib' 'dbus-glib')
+makedepends=('zip' 'pkg-config' 'libgnomeui>=2.24.2' 'python2' 'libidl2' 'autoconf2.13')
+replaces=('mozilla' 'seamonkey')
+conflicts=('seamonkey')
+provides=("seamonkey=$pkgver")
+url="http://www.mozilla.org/projects/seamonkey"
+source=(http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/${pkgver}/source/seamonkey-${pkgver}.source.tar.bz2
+ mozconfig
+ seamonkey.desktop
+ seamonkey-appversion.patch
+ seamonkey-2.0-lang.patch
+ python27.patch
+ gnuzilla-addons.patch)
+md5sums=('681328d58a71d23e52ebe986a8eca3fd'
+ '4978159e4921892e34dcd7e9804f0437'
+ '448848e65efcbf1b2be2873b66b6cd48'
+ 'a4275fc48361c80f676e96fdb28bd74e'
+ '25b6fe16ac24cd5c852213e5c1adb272'
+ '47e57931d65c71baafcf0e4f9160e876'
+ '178073b25aa41ffc601bcd9ddf1f69de')
+
+build() {
+ cd "${srcdir}/comm-1.9.1"
+ patch -Np1 -i "${srcdir}/seamonkey-appversion.patch"
+ patch -Np1 -i "${srcdir}/seamonkey-2.0-lang.patch"
+ patch -Np0 -i "${srcdir}/python27.patch"
+
+ pushd suite/browser >/dev/null
+ patch -Np0 -i "${srcdir}/gnuzilla-addons.patch"
+ popd >/dev/null
+
+ cp "${srcdir}/mozconfig" .mozconfig
+ unset CFLAGS
+ unset CXXFLAGS
+
+ export LDFLAGS="-Wl,-rpath,/usr/lib/seamonkey-2.0"
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
+ make -j1 DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/applications"
+ install -m755 -d "${pkgdir}/usr/share/pixmaps"
+ install -m644 "${srcdir}/comm-1.9.1/suite/branding/icons/gtk/seamonkey.png" \
+ "${pkgdir}/usr/share/pixmaps/"
+ install -m644 "${srcdir}/seamonkey.desktop" "${pkgdir}/usr/share/applications/"
+
+ rm -f "${pkgdir}/usr/lib/pkgconfig/"seamonkey-ns{s,pr}.pc
+}
diff --git a/libre/seamonkey-libre/gnuzilla-addons.patch b/libre/seamonkey-libre/gnuzilla-addons.patch
new file mode 100644
index 000000000..6cf586e7a
--- /dev/null
+++ b/libre/seamonkey-libre/gnuzilla-addons.patch
@@ -0,0 +1,29 @@
+--- usr/lib/seamonkey-2.0/defaults/pref/browser-prefs.js 2011-03-03 06:47:16.000000000 -0300
++++ browser-prefs.js 2011-03-08 12:02:29.616789776 -0300
+@@ -465,12 +465,12 @@
+
+ // Preferences for the Get Add-ons pane
+ pref("extensions.getAddons.showPane", true);
+-pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/%APP%");
++pref("extensions.getAddons.browseAddons", "http://www.gnu.org/software/gnuzilla/addons.html");
+ pref("extensions.getAddons.maxResults", 5);
+-pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/recommended");
+-pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/featured/all/10/%OS%/%VERSION%");
+-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/search?q=%TERMS%");
+-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/10/%OS%/%VERSION%");
++pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.recommended.url", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+
+ // Non-symmetric (not shared by extensions) extension-specific [update] preferences
+ pref("extensions.getMoreExtensionsURL", "chrome://branding/locale/brand.properties");
+@@ -557,7 +557,7 @@
+ // Disables default plugin for Plugin Finder Service
+ pref("plugin.default_plugin_disabled", true);
+ // plugin finder service url
+-pref("pfs.datasource.url", "https://pfs.mozilla.org/plugins/PluginFinderService.php?mimetype=%PLUGIN_MIMETYPE%&appID=%APP_ID%&appVersion=%APP_VERSION%&clientOS=%CLIENT_OS%&chromeLocale=%CHROME_LOCALE%");
++pref("pfs.datasource.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+ pref("plugins.hide_infobar_for_missing_plugin", false);
+
+ //@line 584 "/build/src/comm-1.9.1/suite/browser/browser-prefs.js"
diff --git a/libre/seamonkey-libre/mozconfig b/libre/seamonkey-libre/mozconfig
new file mode 100644
index 000000000..4eb1b51ea
--- /dev/null
+++ b/libre/seamonkey-libre/mozconfig
@@ -0,0 +1,30 @@
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-png
+ac_add_options --with-pthreads
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-installer
+ac_add_options --disable-crashreporter
+ac_add_options --enable-optimize
+ac_add_options --enable-xinerama
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --disable-xprint
+ac_add_options --enable-strip
+ac_add_options --enable-pango
+#disabled due to bugs with cairo 1.10
+#ac_add_options --enable-system-cairo
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --prefix=/usr
+ac_add_options --mandir=/usr/share/man
+ac_add_options --enable-crypto
+ac_add_options --enable-application=suite
+ac_cv_visibility_pragma=no
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
diff --git a/libre/seamonkey-libre/python27.patch b/libre/seamonkey-libre/python27.patch
new file mode 100644
index 000000000..f00681fd2
--- /dev/null
+++ b/libre/seamonkey-libre/python27.patch
@@ -0,0 +1,11 @@
+--- configure.in~ 2010-10-20 17:43:42.843358798 -0700
++++ configure.in 2010-10-20 17:43:16.373359032 -0700
+@@ -874,7 +874,7 @@
+ AC_MSG_RESULT([yes])
+ fi
+
+-AC_PATH_PROGS(PYTHON, $PYTHON python2.5 python2.4 python)
++AC_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.5 python2.4 python)
+ if test -z "$PYTHON"; then
+ AC_MSG_ERROR([python was not found in \$PATH])
+ fi
diff --git a/libre/seamonkey-libre/seamonkey-2.0-lang.patch b/libre/seamonkey-libre/seamonkey-2.0-lang.patch
new file mode 100644
index 000000000..b9f4a5cde
--- /dev/null
+++ b/libre/seamonkey-libre/seamonkey-2.0-lang.patch
@@ -0,0 +1,11 @@
+--- comm-1.9.1/mozilla/modules/libpref/src/init/all.js 2009-10-11 02:12:44.000000000 +0200
++++ comm-1.9.1/mozilla/modules/libpref/src/init/all.js 2009-09-16 02:56:45.000000000 +0200
+@@ -890,7 +890,7 @@
+ pref("intl.charset.detector", "chrome://global/locale/intl.properties");
+ pref("intl.charset.default", "chrome://global-platform/locale/intl.properties");
+ pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties");
+-pref("intl.locale.matchOS", false);
++pref("intl.locale.matchOS", true);
+ // fallback charset list for Unicode conversion (converting from Unicode)
+ // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
+ // for ISO-8859-1
diff --git a/libre/seamonkey-libre/seamonkey-appversion.patch b/libre/seamonkey-libre/seamonkey-appversion.patch
new file mode 100644
index 000000000..0c34cf477
--- /dev/null
+++ b/libre/seamonkey-libre/seamonkey-appversion.patch
@@ -0,0 +1,12 @@
+diff -Nur comm-1.9.1.orig/suite/installer/Makefile.in comm-1.9.1/suite/installer/Makefile.in
+--- comm-1.9.1.orig/suite/installer/Makefile.in 2010-01-04 23:01:34.000000000 +0200
++++ comm-1.9.1/suite/installer/Makefile.in 2010-01-11 22:38:44.000000000 +0200
+@@ -42,6 +42,8 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
++MOZ_APP_VERSION="2.0"
++
+ NO_PKG_FILES = \
+ $(MOZ_APP_NAME)-config \
+ xpcshell* \
diff --git a/libre/seamonkey-libre/seamonkey.desktop b/libre/seamonkey-libre/seamonkey.desktop
new file mode 100644
index 000000000..084082aea
--- /dev/null
+++ b/libre/seamonkey-libre/seamonkey.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=seamonkey %u
+Icon=seamonkey
+Type=Application
+Terminal=false
+MultipleArgs=false
+Name=SeaMonkey internet suite
+MimeType=text/html
+StartupNotify=false
+Categories=Application;Network;
diff --git a/libre/sqlite3/PKGBUILD b/libre/sqlite3/PKGBUILD
new file mode 100644
index 000000000..1cb3fc229
--- /dev/null
+++ b/libre/sqlite3/PKGBUILD
@@ -0,0 +1,87 @@
+# $Id: PKGBUILD 108579 2011-02-01 18:59:24Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+# Parabola note: this PKGBUILD is not meant for building, but for
+# providing a PKGBUILD that doesn't build the with unclear permissions
+# docs
+
+pkgbase="sqlite3"
+pkgname=('sqlite3' 'sqlite3-tcl')
+_amalgamationver=3070500
+_amalgamationver2=${_amalgamationver/00/}
+pkgver=${_amalgamationver2//0/.}
+pkgrel=1
+pkgdesc="A C library that implements an SQL database engine"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://www.sqlite.org/"
+makedepends=('tcl' 'readline>=6.0.00')
+source=( #http://www.sqlite.org/sqlite-src-${_amalgamationver}.zip - # the no more recommended ZIP archive of the complete source tree for SQLite - Makefile and configure script in this tarball are not supported
+ http://www.sqlite.org/sqlite-autoconf-$_amalgamationver.tar.gz # tarball containing the amalgamation for SQLite 3.7.5 together with an configure script and makefile for building it.
+ http://www.sqlite.org/sqlite-tea-$_amalgamationver.tar.gz # tarball of the amalgamation together with a Tcl Extension Architecture (TEA) compatible configure script and makefile
+ license.txt)
+options=('!libtool' '!emptydirs')
+md5sums=('a9604a82613ade2e7f4c303f233e477f'
+ '3413e8cfb7990e39260bf45dca017bf0'
+ 'c1cdbc5544034d9012e421e75a5e4890')
+
+build() {
+# cd ${srcdir}/sqlite-src-${_amalgamationver}
+# export LTLINK_EXTRAS="-ldl"
+# export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
+# ./configure --prefix=/usr \
+# --enable-threadsafe \
+# --enable-cross-thread-connections \
+# --disable-static \
+# --enable-load-extension
+
+ # rpath removal
+# sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+# sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+# make
+
+ export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
+
+ # build sqlite
+ cd "$srcdir"/sqlite-autoconf-$_amalgamationver
+ ./configure --prefix=/usr \
+ --disable-static
+ make
+
+ # build the tcl extension
+ cd "$srcdir"/sqlite-tea-$_amalgamationver
+ ./configure --prefix=/usr \
+ --with-system-sqlite
+ make
+
+}
+
+package_sqlite3() {
+
+ pkgdesc="A C library that implements an SQL database engine"
+ depends=('readline>=6.0.00')
+ conflicts=('sqlite')
+ replaces=('sqlite')
+
+# cd ${srcdir}/sqlite-src-${_amalgamationver}
+# make DESTDIR=${pkgdir} install
+# install -Dm0644 sqlite3.1 ${pkgdir}/usr/share/man/man1/sqlite3.1
+
+ cd ${srcdir}/sqlite-autoconf-$_amalgamationver
+ make DESTDIR=${pkgdir} install
+
+ # license
+ install -D -m644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/${pkgname}/license.txt
+}
+
+package_sqlite3-tcl() {
+
+ pkgdesc="sqlite3 Tcl Extension Architecture (TEA)"
+ depends=('sqlite3>=3.7.5')
+
+ cd ${srcdir}/sqlite-tea-$_amalgamationver
+ make DESTDIR=${pkgdir} install
+}
+
diff --git a/libre/sqlite3/license.txt b/libre/sqlite3/license.txt
new file mode 100644
index 000000000..118c5d5e6
--- /dev/null
+++ b/libre/sqlite3/license.txt
@@ -0,0 +1,33 @@
+SQLite Copyright
+SQLite is in the
+Public Domain
+
+
+All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
+
+The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.
+
+All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects.
+Obtaining An Explicit License To Use SQLite
+
+Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Some reasons for obtaining a license include:
+You are using SQLite in a jurisdiction that does not recognize the public domain.
+You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
+You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
+Your legal department tells you that you have to purchase a license.
+
+If you feel like you really have to purchase a license for SQLite, Hwaci, the company that employs the architect and principal developers of SQLite, will sell you one.
+Contributed Code
+
+In order to keep SQLite completely free and unencumbered by copyright, all new contributors to the SQLite code base are asked to dedicate their contributions to the public domain. If you want to send a patch or enhancement for possible inclusion in the SQLite source tree, please accompany the patch with the following statement:
+The author or authors of this code dedicate any and all copyright interest in this code to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this code under copyright law.
+
+We are not able to accept patches or changes to SQLite that are not accompanied by a statement such as the above. In addition, if you make changes or enhancements as an employee, then a simple statement such as the above is insufficient. You must also send by surface mail a copyright release signed by a company officer. A signed original of the copyright release should be mailed to:
+Hwaci
+6200 Maple Cove Lane
+Charlotte, NC 28269
+USA
+
+A template copyright release is available in PDF or HTML. You can use this release to make future changes.
+
+see http://www.sqlite.org/copyright.html \ No newline at end of file
diff --git a/libre/thunderbird-libre/PKGBUILD b/libre/thunderbird-libre/PKGBUILD
new file mode 100644
index 000000000..d5f546e3d
--- /dev/null
+++ b/libre/thunderbird-libre/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id$
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Dale Blount <dale@archlinux.org>
+# Contributor: Anders Bostrom <anders.bostrom@home.se>
+pkgname=thunderbird-libre
+pkgver=3.1.9
+pkgrel=1
+pkgdesc="Standalone Mail/News reader, with GNUZilla addons"
+arch=('i686' 'x86_64')
+license=('MPL' 'GPL')
+url="http://www.mozilla.org/projects/thunderbird"
+depends=('gtk2' 'gcc-libs' 'mozilla-common' 'nss' 'libxt' 'shared-mime-info' 'alsa-lib' 'dbus-glib' 'hunspell' 'sqlite3>=3.7.4' 'desktop-file-utils')
+makedepends=('zip' 'pkg-config' 'libgnomeui' 'python2' 'libidl2' 'wireless_tools' 'autoconf2.13')
+optdepends=('libcanberra: for sound support')
+replaces=('thunderbird')
+conflicts=('thunderbird')
+provides=("thunderbird=$pkgver")
+install=thunderbird.install
+source=(ftp://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/${pkgver}/source/thunderbird-${pkgver}.source.tar.bz2
+ mozconfig
+ thunderbird.desktop
+ thunderbird-3.0-lang.patch
+ thunderbird-appversion.patch
+ thunderbird-shared-error.patch
+ thunderbird-preferences.patch
+ xulrunner-png14.patch
+ python2.7.patch
+ gnuzilla-addons.patch)
+md5sums=('e6917c419d3aaa8083a1d4b53fb80d8c'
+ 'c1551d308480d241247c5662d8bebbcb'
+ '37457073c7f6feeb86c053701d23197f'
+ '25b6fe16ac24cd5c852213e5c1adb272'
+ '48ffcdb877a69d383b7d354e330f7658'
+ '3dca714ee8054634e6dfdb059464dc42'
+ '1d4f9978e8228ace523b18a09cf41e4e'
+ '989b15f6bc9e2e9233fe4c6b23f412b1'
+ '78a4d0c920cbb8ec6a9a36974cd775ef'
+ 'f272e37db4bcaef993b58a87a7db3bf5')
+
+build() {
+ cd "${srcdir}/comm-1.9.2"
+ patch -Np1 -i "${srcdir}/thunderbird-3.0-lang.patch"
+ patch -Np1 -i "${srcdir}/thunderbird-appversion.patch"
+ patch -Np1 -i "${srcdir}/thunderbird-shared-error.patch"
+ patch -Np1 -i "${srcdir}/thunderbird-preferences.patch"
+ patch -Np0 -i "${srcdir}/xulrunner-png14.patch"
+ patch -Np0 -i "${srcdir}/python2.7.patch"
+
+ pushd mail/app/profile >/dev/null
+ patch -Np0 -i "${srcdir}/gnuzilla-addons.patch"
+ popd >/dev/null
+
+ cp "${srcdir}/mozconfig" .mozconfig
+ unset CXXFLAGS
+ unset CFLAGS
+
+ export LDFLAGS="-Wl,-rpath,/usr/lib/thunderbird-3.1"
+
+ make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}"
+}
+
+package() {
+ cd "${srcdir}/comm-1.9.2"
+ make -j1 DESTDIR="${pkgdir}" install
+
+ #Remove included dictionaries, add symlink to system myspell path.
+ #Note: this will cause file conflicts when users have installed dictionaries in the old location
+ rm -rf "${pkgdir}/usr/lib/thunderbird-3.1/dictionaries"
+ ln -sf /usr/share/myspell/dicts "${pkgdir}/usr/lib/thunderbird-3.1/dictionaries"
+
+ rm -rf "${pkgdir}/usr/bin/defaults"
+
+ install -m755 -d "${pkgdir}/usr/share/applications"
+ install -m755 -d "${pkgdir}/usr/share/pixmaps"
+
+ install -m644 mail/branding/unofficial/mailicon48.png \
+ "${pkgdir}/usr/share/pixmaps/thunderbird.png"
+
+ install -m644 "${srcdir}/thunderbird.desktop" \
+ "${pkgdir}/usr/share/applications/"
+
+ rm -f ${pkgdir}/usr/lib/pkgconfig/thunderbird-ns{s,pr}.pc
+}
diff --git a/libre/thunderbird-libre/gnuzilla-addons.patch b/libre/thunderbird-libre/gnuzilla-addons.patch
new file mode 100644
index 000000000..2c0e4a68f
--- /dev/null
+++ b/libre/thunderbird-libre/gnuzilla-addons.patch
@@ -0,0 +1,36 @@
+--- usr/lib/thunderbird-3.1/defaults/pref/all-thunderbird.js 2011-03-04 17:28:11.000000000 -0300
++++ all-thunderbird.js 2011-03-08 11:22:31.437207173 -0300
+@@ -144,9 +144,9 @@
+ pref("extensions.update.interval", 86400); // Check for updates to Extensions and
+ // Themes every day
+ // Non-symmetric (not shared by extensions) extension-specific [update] preferences
+-pref("extensions.getMoreExtensionsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/extensions/");
+-pref("extensions.getMoreThemesURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/themes/");
+-pref("extensions.getMorePluginsURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/%VERSION%/plugins/");
++pref("extensions.getMoreExtensionsURL", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getMoreThemesURL", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getMorePluginsURL", "http://www.gnu.org/software/gnuzilla/addons.html");
+ pref("extensions.dss.enabled", false); // Dynamic Skin Switching
+ pref("extensions.dss.switchPending", false); // Non-dynamic switch pending after next
+
+@@ -155,14 +155,14 @@
+
+ // Preferences for the Get Add-ons pane
+ pref("extensions.getAddons.showPane", true);
+-pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/%APP%");
++pref("extensions.getAddons.browseAddons", "http://www.gnu.org/software/gnuzilla/addons.html");
+ pref("extensions.getAddons.maxResults", 5);
+-pref("extensions.getAddons.recommended.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/recommended");
+-pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/featured/all/10/%OS%/%VERSION%");
+-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/%APP%/search?q=%TERMS%");
+-pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/10/%OS%/%VERSION%");
++pref("extensions.getAddons.recommended.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.recommended.url", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.search.browseURL", "http://www.gnu.org/software/gnuzilla/addons.html");
++pref("extensions.getAddons.search.url", "http://www.gnu.org/software/gnuzilla/addons.html");
+
+-pref("xpinstall.whitelist.add", "addons.mozilla.org");
++pref("xpinstall.whitelist.add", "www.gnu.org");
+ pref("xpinstall.whitelist.add.36", "getpersonas.com");
+
+ pref("mail.shell.checkDefaultClient", true);
diff --git a/libre/thunderbird-libre/mozconfig b/libre/thunderbird-libre/mozconfig
new file mode 100644
index 000000000..4281bffa1
--- /dev/null
+++ b/libre/thunderbird-libre/mozconfig
@@ -0,0 +1,38 @@
+mk_add_options MOZ_CO_PROJECT=mail
+ac_add_options --enable-application=mail
+
+ac_add_options --with-system-nspr
+ac_add_options --with-system-nss
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-zlib
+ac_add_options --with-system-png
+ac_add_options --with-system-mng
+ac_add_options --enable-system-hunspell
+ac_add_options --enable-system-sqlite
+ac_add_options --with-pthreads
+ac_add_options --disable-debug
+ac_add_options --disable-tests
+ac_add_options --disable-installer
+ac_add_options --disable-updater
+ac_add_options --disable-crashreporter
+ac_add_options --disable-official-branding
+ac_add_options --disable-xprint
+ac_add_options --enable-default-toolkit=cairo-gtk2
+ac_add_options --enable-strip
+ac_add_options --enable-pango
+ac_add_options --enable-xft
+#disabled because of bugs with cairo 1.10
+#ac_add_options --enable-system-cairo
+ac_add_options --enable-svg
+ac_add_options --enable-canvas
+ac_add_options --enable-optimize
+ac_add_options --prefix=/usr
+ac_add_options --with-branding=mail/branding/unofficial
+
+export BUILD_OFFICIAL=1
+export MOZILLA_OFFICIAL=1
+export USE_SHORT_LIBNAME=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZILLA_OFFICIAL=1
+mk_add_options USE_SHORT_LIBNAME=1
+
diff --git a/libre/thunderbird-libre/python2.7.patch b/libre/thunderbird-libre/python2.7.patch
new file mode 100644
index 000000000..2d159d479
--- /dev/null
+++ b/libre/thunderbird-libre/python2.7.patch
@@ -0,0 +1,11 @@
+--- configure.in 2010-10-13 08:37:29.000000000 -0700
++++ configure.in~ 2010-10-19 10:32:06.360019362 -0700
+@@ -878,7 +878,7 @@
+ AC_MSG_RESULT([yes])
+ fi
+
+-MOZ_PATH_PROGS(PYTHON, $PYTHON python2.6 python2.5 python2.4 python)
++MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python2.6 python2.5 python2.4 python)
+ if test -z "$PYTHON"; then
+ AC_MSG_ERROR([python was not found in \$PATH])
+ fi
diff --git a/libre/thunderbird-libre/thunderbird-3.0-lang.patch b/libre/thunderbird-libre/thunderbird-3.0-lang.patch
new file mode 100644
index 000000000..b9f4a5cde
--- /dev/null
+++ b/libre/thunderbird-libre/thunderbird-3.0-lang.patch
@@ -0,0 +1,11 @@
+--- comm-1.9.1/mozilla/modules/libpref/src/init/all.js 2009-10-11 02:12:44.000000000 +0200
++++ comm-1.9.1/mozilla/modules/libpref/src/init/all.js 2009-09-16 02:56:45.000000000 +0200
+@@ -890,7 +890,7 @@
+ pref("intl.charset.detector", "chrome://global/locale/intl.properties");
+ pref("intl.charset.default", "chrome://global-platform/locale/intl.properties");
+ pref("intl.ellipsis", "chrome://global-platform/locale/intl.properties");
+-pref("intl.locale.matchOS", false);
++pref("intl.locale.matchOS", true);
+ // fallback charset list for Unicode conversion (converting from Unicode)
+ // currently used for mail send only to handle symbol characters (e.g Euro, trademark, smartquotes)
+ // for ISO-8859-1
diff --git a/libre/thunderbird-libre/thunderbird-appversion.patch b/libre/thunderbird-libre/thunderbird-appversion.patch
new file mode 100644
index 000000000..3f7a54686
--- /dev/null
+++ b/libre/thunderbird-libre/thunderbird-appversion.patch
@@ -0,0 +1,12 @@
+diff -Nru comm-1.9.2.orig/mail/installer/Makefile.in comm-1.9.2/mail/installer/Makefile.in
+--- comm-1.9.2.orig/mail/installer/Makefile.in 2010-04-30 22:41:37.000000000 +0300
++++ comm-1.9.2/mail/installer/Makefile.in 2010-05-05 20:20:29.551660469 +0300
+@@ -42,6 +42,8 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
++MOZ_APP_VERSION="3.1"
++
+ include $(topsrcdir)/config/rules.mk
+
+ MOZ_PKG_REMOVALS = $(srcdir)/removed-files.in
diff --git a/libre/thunderbird-libre/thunderbird-preferences.patch b/libre/thunderbird-libre/thunderbird-preferences.patch
new file mode 100644
index 000000000..627f02434
--- /dev/null
+++ b/libre/thunderbird-libre/thunderbird-preferences.patch
@@ -0,0 +1,30 @@
+diff -Nur comm-1.9.2.orig/mail/app/profile/all-thunderbird.js comm-1.9.2/mail/app/profile/all-thunderbird.js
+--- comm-1.9.2.orig/mail/app/profile/all-thunderbird.js 2010-06-23 20:43:08.000000000 +0300
++++ comm-1.9.2/mail/app/profile/all-thunderbird.js 2010-06-25 00:37:36.518929684 +0300
+@@ -125,7 +125,7 @@
+ pref("app.update.showInstalledUI", false);
+
+ // Release notes URL
+-pref("app.releaseNotesURL", "http://live.mozillamessaging.com/%APP%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
++pref("app.releaseNotesURL", "http://www.mozillamessaging.com/%APP%/%VERSION%/releasenotes?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
+
+ // Base URL for web-based support pages.
+ pref("app.support.baseURL", "http://support.live.mozillamessaging.com/%LOCALE%/%APP%/%APPBUILDID%/");
+diff -Nur comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js comm-1.9.2/mail/branding/nightly/thunderbird-branding.js
+--- comm-1.9.2.orig/mail/branding/nightly/thunderbird-branding.js 2010-06-23 20:43:08.000000000 +0300
++++ comm-1.9.2/mail/branding/nightly/thunderbird-branding.js 2010-06-25 00:36:10.605569121 +0300
+@@ -1,11 +1,11 @@
+ // Default start page
+-pref("mailnews.start_page.url","https://live.mozillamessaging.com/%APP%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
++pref("mailnews.start_page.url","https://www.mozillamessaging.com/%APP%/%VERSION%/start?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
+
+ // first launch welcome page
+-pref("mailnews.start_page.welcome_url","https://live.mozillamessaging.com/%APP%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
++pref("mailnews.start_page.welcome_url","https://www.mozillamessaging.com/%APP%/%VERSION%/firstrun?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
+
+ // start page override to load after an update
+-pref("mailnews.start_page.override_url","https://live.mozillamessaging.com/%APP%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
++pref("mailnews.start_page.override_url","https://www.mozillamessaging.com/%APP%/%VERSION%/whatsnew?locale=%LOCALE%&version=%VERSION%&os=%OS%&buildid=%APPBUILDID%");
+
+ // Interval: Time between checks for a new version (in seconds)
+ // nightly=8 hours, official=24 hours
diff --git a/libre/thunderbird-libre/thunderbird-shared-error.patch b/libre/thunderbird-libre/thunderbird-shared-error.patch
new file mode 100644
index 000000000..ae41bbc1e
--- /dev/null
+++ b/libre/thunderbird-libre/thunderbird-shared-error.patch
@@ -0,0 +1,15 @@
+diff -up comm-central/mail/installer/Makefile.in.shared-error comm-central/mail/installer/Makefile.in
+--- comm-central/mail/installer/Makefile.in.shared-error 2009-09-16 13:47:43.000000000 +0200
++++ comm-central/mail/installer/Makefile.in 2009-09-16 13:48:25.000000000 +0200
+@@ -95,9 +95,11 @@ endif
+ # mozconfig instead.
+ ifndef MAIL_PKG_SHARED
+ ifndef BUILD_STATIC_LIBS
++ifeq (BUILD_STATIC_LIBS, 1)
+ $(error you need an "--enable-static" build to package a build)
+ endif
+ endif
++endif
+
+ # On mozilla-central, packager.mk uses core_abspath to redefine DIST
+ # As the comm-central config.mk doesn't set it, do it ourselves instead
diff --git a/libre/thunderbird-libre/thunderbird.desktop b/libre/thunderbird-libre/thunderbird.desktop
new file mode 100644
index 000000000..93ffead78
--- /dev/null
+++ b/libre/thunderbird-libre/thunderbird.desktop
@@ -0,0 +1,13 @@
+[Desktop Entry]
+Version=1.0
+Name=Thunderbird
+Comment=Mail & News Reader
+GenericName=Mail Client & News Reader
+Exec=thunderbird
+TryExec=thunderbird
+Icon=thunderbird
+Terminal=false
+Type=Application
+Categories=Network;Email;
+MimeType=message/rfc822;x-scheme-handler/mailto;
+StartupNotify=true
diff --git a/libre/thunderbird-libre/thunderbird.install b/libre/thunderbird-libre/thunderbird.install
new file mode 100644
index 000000000..660593cf5
--- /dev/null
+++ b/libre/thunderbird-libre/thunderbird.install
@@ -0,0 +1,11 @@
+post_install() {
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
diff --git a/libre/thunderbird-libre/xulrunner-png14.patch b/libre/thunderbird-libre/xulrunner-png14.patch
new file mode 100644
index 000000000..1dc0ecda5
--- /dev/null
+++ b/libre/thunderbird-libre/xulrunner-png14.patch
@@ -0,0 +1,11 @@
+--- mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp.orig 2010-01-17 00:15:53.979744638 +0100
++++ mozilla/modules/libpr0n/encoders/png/nsPNGEncoder.cpp 2010-01-17 00:16:07.855993411 +0100
+@@ -135,7 +135,7 @@
+
+ // initialize
+ mPNG = png_create_write_struct(PNG_LIBPNG_VER_STRING,
+- png_voidp_NULL,
++ NULL,
+ ErrorCallback,
+ ErrorCallback);
+ if (! mPNG)
diff --git a/libre/ttf-thai-libre/PKGBUILD b/libre/ttf-thai-libre/PKGBUILD
new file mode 100644
index 000000000..3d1d4ec3d
--- /dev/null
+++ b/libre/ttf-thai-libre/PKGBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Henry Jensen <hjensen@connochaetos.org>
+
+pkgname=ttf-thai-libre
+pkgver=0.4.14
+pkgrel=1
+pkgdesc="A collection of basic Thai fonts, libre version"
+arch=(any)
+license=('GPL')
+depends=(xorg-fonts-encodings xorg-fonts-alias xorg-font-utils fontconfig)
+makedepends=(fontforge)
+provides=('thai-ttf' "ttf-thai=$pkgver")
+conflicts=('ttf-thai')
+replaces=('ttf-thai')
+url="http://www.connochaetos.org"
+install=ttf.install
+source=(http://www.connochaetos.org/misc/thaifonts-scalable-libre-${pkgver}.tar.gz)
+md5sums=('205436d69d273aca33dbbf31c61fa6b9')
+
+build() {
+ cd ${srcdir}/thaifonts-scalable-libre-${pkgver}
+ ./configure --prefix=/usr --with-ttfdir=/usr/share/fonts/TTF --sysconfdir=/etc
+ make
+ make DESTDIR=${pkgdir}/ install
+ rm ${pkgdir}/usr/share/fonts/TTF/fonts.dir
+ rm ${pkgdir}/usr/share/fonts/TTF/fonts.scale
+}
+
diff --git a/libre/ttf-thai-libre/ttf.install b/libre/ttf-thai-libre/ttf.install
new file mode 100644
index 000000000..203190187
--- /dev/null
+++ b/libre/ttf-thai-libre/ttf.install
@@ -0,0 +1,15 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -fs > /dev/null
+ mkfontscale usr/share/fonts/TTF
+ mkfontdir usr/share/fonts/TTF
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
diff --git a/libre/unrar-libre/PKGBUILD b/libre/unrar-libre/PKGBUILD
new file mode 100644
index 000000000..e08e90220
--- /dev/null
+++ b/libre/unrar-libre/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Joshua Ismael Haase Hernández <hahj87@gmail.com>
+_pkgbase=unrar
+pkgname=unrar-libre
+pkgver=0.0.1
+pkgrel=1
+pkgdesc="A free software library to decompress .rar files."
+arch=('i686' 'x86_64')
+url="http://gna.org/projects/unrar/"
+license=('GPL')
+provides=(unrar)
+conflicts=(unrar)
+replaces=(unrar)
+source=(http://download.gna.org/unrar/$_pkgbase-$pkgver.tar.gz)
+md5sums=('ac284a6739e3b8c794e7f9e8c20ed8f8') #generate with 'makepkg -g'
+
+build() {
+ cd "$srcdir/$_pkgbase-$pkgver"
+
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgbase-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/libre/xchat-libre/ChangeLog b/libre/xchat-libre/ChangeLog
new file mode 100644
index 000000000..faa8383c8
--- /dev/null
+++ b/libre/xchat-libre/ChangeLog
@@ -0,0 +1,49 @@
+2010-08-21 Eric Belanger <eric@archlinux.org>
+
+ * xchat 2.8.8-3
+ * Rebuilt for python2
+
+2010-08-13 Ionut Biru <ibiru@archlinux.org>
+
+ * xchat 2.8.8-2
+ * perl 5.12 rebuild
+
+2010-05-30 Eric Belanger <eric@archlinux.org>
+
+ * xchat 2.8.8-1
+ * Upstream update
+ * Added python optdepends
+ * Removed old patches
+
+2010-03-29 Eric Belanger <eric@archlinux.org>
+
+ * Fixed buttons hotkey (close FS#17076)
+
+2009-09-30 Eric Belanger <eric@archlinux.org>
+
+ * xchat 2.8.6-5
+ * Rebuilt against perl 5.10.1-3
+
+2009-09-28 Eric Belanger <eric@archlinux.org>
+
+ * xchat 2.8.6-4
+ * Fixed crash when transparent background is enabled (close FS#15360)
+
+2008-11-08 Eric Belanger <eric@archlinux.org>
+
+ * xchat 2.8.6-3
+ * Rebuild for python-2.6 (close FS#11998)
+ * Applied gtk2 patch
+
+2008-09-05 Eric Belanger <eric@archlinux.org>
+
+ * xchat 2.8.6-2
+ * Applied upstream maintenance patch
+ * Added tcl optdepends
+
+2008-06-13 Eric Belanger <eric@archlinux.org>
+
+ * xchat 2.8.6-1
+ * Upstream update
+ * Added spell checking support (close FS#10395)
+ * Added ChangeLog
diff --git a/libre/xchat-libre/PKGBUILD b/libre/xchat-libre/PKGBUILD
new file mode 100644
index 000000000..8262e03be
--- /dev/null
+++ b/libre/xchat-libre/PKGBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Maintainer: Henry Jensen <hjensen@connochaetos.org>
+
+pkgbasename=xchat
+pkgname=xchat-libre
+pkgver=2.8.8
+pkgrel=3
+pkgdesc="A GTK+ based IRC client without non-free browser reference"
+arch=('i686' 'x86_64')
+url="http://www.xchat.org/"
+provides=("xchat=$pkgver")
+replaces=('xchat')
+conflicts=('xchat')
+license=('GPL')
+depends=('gtk2' 'openssl' 'dbus-glib')
+makedepends=('tcl' 'perl' 'python2')
+optdepends=('enchant: for spell checking support' 'tcl: for tcl plugin' \
+ 'python2: for python plugin')
+options=('!libtool')
+changelog=ChangeLog
+source=(http://www.xchat.org/files/source/${pkgver%.*}/${pkgbasename}-${pkgver}.tar.xz remove-non-free-suggestion.patch)
+md5sums=('9a11f13121ff0af787bba3b014378e58'
+ '47c665961f11a803e9a12007811a04c9')
+sha1sums=('e12305da42d1aacc26c2ca25e239f393d4dd3532'
+ '05e673aa44813ddac8aabb251d5f0124efde91a2')
+
+
+
+build() {
+ cd "${srcdir}/${pkgbasename}-${pkgver}"
+ patch -p1 < ../remove-non-free-suggestion.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --enable-openssl --enable-dbus \
+ --disable-textfe --enable-ipv6 --enable-shm --enable-spell=static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
+
diff --git a/libre/xchat-libre/remove-non-free-suggestion.patch b/libre/xchat-libre/remove-non-free-suggestion.patch
new file mode 100644
index 000000000..8b0f4e41f
--- /dev/null
+++ b/libre/xchat-libre/remove-non-free-suggestion.patch
@@ -0,0 +1,12 @@
+diff -urN xchat-2.8.8.orig/src/common/xchat.c xchat-2.8.8/src/common/xchat.c
+--- xchat-2.8.8.orig/src/common/xchat.c 2010-05-16 07:04:45.000000000 +0000
++++ xchat-2.8.8/src/common/xchat.c 2010-11-09 15:29:23.322458751 +0000
+@@ -602,7 +602,7 @@
+ "NAME WII\n" "CMD quote WHOIS %2 %2\n\n";
+
+ static char defaultconf_urlhandlers[] =
+- "NAME Open Link in Opera\n" "CMD !opera -remote 'openURL(%s)'\n\n";
++ "NAME Open Link in Web Browser\n" "CMD !icecat 'openURL(%s)'\n\n";
+
+ #ifdef USE_SIGACTION
+ /* Close and open log files on SIGUSR1. Usefull for log rotating */
diff --git a/libre/xorg-fonts-100dpi-libre/PKGBUILD b/libre/xorg-fonts-100dpi-libre/PKGBUILD
new file mode 100644
index 000000000..13832bb91
--- /dev/null
+++ b/libre/xorg-fonts-100dpi-libre/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 71678 2010-03-08 11:58:02Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Maintainer (Parabola): fauno <fauno@kiwwwi.com.ar>
+pkgname=xorg-fonts-100dpi-libre
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="X.org 100dpi fonts"
+arch=(any)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('xorg-fonts-encodings' 'xorg-fonts-alias' 'xorg-font-utils' 'fontconfig')
+groups=('xorg')
+provides=("xorg-fonts-100dpi=$pkgver")
+conflicts=('xorg-fonts-100dpi')
+replaces=('xorg-fonts-100dpi')
+install=xfonts.install
+source=(${url}/releases/individual/font/font-adobe-100dpi-$pkgver.tar.bz2
+ ${url}/releases/individual/font/font-bitstream-100dpi-$pkgver.tar.bz2)
+
+build() {
+ cd "${srcdir}"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+
+ for dir in font-*-100dpi*; do
+ if [ -d "${dir}" ]; then
+ pushd ${dir}
+ ./configure --prefix=/usr \
+ --with-fontdir=/usr/share/fonts/100dpi
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${dir%-100dpi-*}" || return 1
+ popd
+ fi
+ done
+ rm -f "${pkgdir}"/usr/share/fonts/100dpi/fonts.*
+}
+md5sums=('1347c3031b74c9e91dc4dfa53b12f143'
+ '6b223a54b15ecbd5a1bc52312ad790d8')
diff --git a/libre/xorg-fonts-100dpi-libre/xfonts.install b/libre/xorg-fonts-100dpi-libre/xfonts.install
new file mode 100644
index 000000000..3eb0455c9
--- /dev/null
+++ b/libre/xorg-fonts-100dpi-libre/xfonts.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/Type1
+ mkfontdir /usr/share/fonts/Type1
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/libre/xorg-fonts-75dpi-libre/PKGBUILD b/libre/xorg-fonts-75dpi-libre/PKGBUILD
new file mode 100644
index 000000000..5266bd550
--- /dev/null
+++ b/libre/xorg-fonts-75dpi-libre/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 71681 2010-03-08 12:06:26Z jgc $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+pkgname=xorg-fonts-75dpi-libre
+pkgver=1.0.3
+pkgrel=1
+pkgdesc="X.org 75dpi fonts"
+arch=(any)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(xorg-fonts-encodings xorg-fonts-alias xorg-font-utils fontconfig)
+groups=('xorg')
+provides=("xorg-fonts-75dpi=$pkgver")
+conflicts=('xorg-fonts-75dpi')
+replaces=('xorg-fonts-75dpi')
+install=xfonts.install
+source=(${url}/releases/individual/font/font-adobe-75dpi-$pkgver.tar.bz2
+ ${url}/releases/individual/font/font-bitstream-75dpi-$pkgver.tar.bz2)
+
+build() {
+ cd "${srcdir}"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ for dir in *; do
+ if [ -d "${dir}" ]; then
+ pushd "${dir}"
+ ./configure --prefix=/usr \
+ --with-fontdir=/usr/share/fonts/75dpi || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${dir%-75dpi-*}" || return 1
+ popd
+ fi
+ done
+ rm -f "${pkgdir}"/usr/share/fonts/75dpi/fonts.*
+}
+md5sums=('6c9f26c92393c0756f3e8d614713495b'
+ 'd7c0588c26fac055c0dd683fdd65ac34')
diff --git a/libre/xorg-fonts-75dpi-libre/xfonts.install b/libre/xorg-fonts-75dpi-libre/xfonts.install
new file mode 100644
index 000000000..3eb0455c9
--- /dev/null
+++ b/libre/xorg-fonts-75dpi-libre/xfonts.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/Type1
+ mkfontdir /usr/share/fonts/Type1
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/libre/xorg-fonts-type1-libre/PKGBUILD b/libre/xorg-fonts-type1-libre/PKGBUILD
new file mode 100644
index 000000000..3e52ef85a
--- /dev/null
+++ b/libre/xorg-fonts-type1-libre/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 71695 2010-03-08 13:31:38Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xorg-fonts-type1-libre
+pkgver=7.4
+pkgrel=1
+pkgdesc="X.org Type1 fonts without Adobe fonts"
+arch=(any)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=(xorg-fonts-encodings xorg-fonts-alias xorg-font-utils fontconfig)
+provides=("xorg-fonts-type1=${pkgver}")
+conflicts=('xorg-fonts-type1')
+replaces=('xorg-fonts-type1')
+install=xfonts.install
+source=(${url}/releases/individual/font/font-bitstream-type1-1.0.2.tar.bz2
+ ${url}/releases/individual/font/font-xfree86-type1-1.0.3.tar.bz2)
+md5sums=('27c55f6a938e7153c59fb551b2f491f9'
+ 'df934bfc0339322cee73ee3c5460a648')
+
+build() {
+ cd "${srcdir}"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ for dir in *; do
+ if [ -d "${dir}" ]; then
+ pushd "${dir}"
+ ./configure --prefix=/usr \
+ --with-fontdir=/usr/share/fonts/Type1 || return 1
+ make || return 1
+ make DESTDIR="${pkgdir}" install || return 1
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.${dir%-*}" || return 1
+ popd
+ fi
+ done
+ rm -f "${pkgdir}"/usr/share/fonts/Type1/fonts.*
+}
diff --git a/libre/xorg-fonts-type1-libre/xfonts.install b/libre/xorg-fonts-type1-libre/xfonts.install
new file mode 100644
index 000000000..3eb0455c9
--- /dev/null
+++ b/libre/xorg-fonts-type1-libre/xfonts.install
@@ -0,0 +1,20 @@
+post_install() {
+ echo -n "Updating font cache... "
+ fc-cache -f > /dev/null
+ mkfontscale /usr/share/fonts/Type1
+ mkfontdir /usr/share/fonts/Type1
+ echo "done."
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}
+
+op=$1
+shift
+
+$op $*
diff --git a/libre/your-freedom/PKGBUILD b/libre/your-freedom/PKGBUILD
new file mode 100644
index 000000000..26df281b6
--- /dev/null
+++ b/libre/your-freedom/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Parabola Project <dev@list.parabolagnulinux.org>
+pkgname=your-freedom
+pkgver=$(LC_ALL=C date +%Y%m%d)
+pkgrel=1
+pkgdesc="This package conflicts with every unfree package known to date."
+arch=('any')
+url="http://parabolagnulinux.org"
+license=('GPL')
+groups=('base')
+install=${pkgname}.install
+source=(http://repo.parabolagnulinux.org/docs/blacklist.txt
+ http://repo.parabolagnulinux.org/docs/whitelist.txt)
+noextract=()
+md5sums=() #generate with 'makepkg -g'
+
+get_blacklist() {
+ unfree=($(wget -q -O - ${source[0]} | \
+ cut -d':' -f1,2 | \
+ sed "s/:$//" | \
+ grep -v ":" | \
+ sort -u))
+ echo "conflicts=(${unfree[@]})"
+}
+
+build() {
+ install -d $pkgdir/usr/share/doc/${pkgname}
+ install -m644 $srcdir/{black,white}list.txt
+}
+
+md5sums=('2637ca96bd9e39dacd452bec01307345'
+ '98d40d324ed474a9b2a222432fb97f02')
+conflicts=(abyssws aqua-data-studio arch-artwork arch-firefox-search archlinux-artwork archlinux-menus archlinux-themes-kde archlinux-themes-kdm archlinux-themes-slim archlinux-wallpaper arch-wiki-docs b43-fwcutter bass blobwars boinc boinc-nox chromium-bsu crafty d4x dina-font dosemu faac firefox-i18n firefox-spell-pt-br firefox-spell-ru flashplugin fmodex font-mathematica foomatic-db-nonfree gstreamer0.10-bad ipw2100-fw ipw2200-fw iwlwifi-1000-ucode iwlwifi-3945-ucode iwlwifi-4965-ucode iwlwifi-5000-ucode iwlwifi-5150-ucode iwlwifi-6000-ucode java-sun jdk jre kernel26-firmware lha lib32-libflashsupport lib32-nvidia-utils libflashsupport linux-firmware mac martian martian-utils mesa-demos mod_fastcgi monaco-linux-font ndiswrapper ndiswrapper-utils netperf nouveau-firmware nvidia nvidia-173xx nvidia-173xx-utils nvidia-96xx nvidia-96xx-utils nvidia-cg-toolkit nvidia-lts nvidia-utils nxclient openttd-opensfx opera povray profont pypy qingy-theme-arch qstat rt2870usb-fw rt2x00-rt61-fw rt2x00-rt71w-fw sdlmame sfarkxtc skype skype-oss skype-staticqt slim-themes snes9x sopcast sqlite3-doc tarsnap ttf-hannom ttf-ms-fonts urbanterror urbanterror-data vbaexpress virtualbox-additions virtualbox-additions-modules visualboyadvance warsow-data xdm-archlinux xf86-input-vmmouse xf86-video-vmware xorg-xlsfonts xpdf-chinese-simplified xpdf-chinese-traditional xpdf-japanese xpdf-korean xsnow xv zd1211-firmware)
diff --git a/libre/your-freedom/your-freedom.install b/libre/your-freedom/your-freedom.install
new file mode 100644
index 000000000..49ae04510
--- /dev/null
+++ b/libre/your-freedom/your-freedom.install
@@ -0,0 +1,32 @@
+
+pre_install() {
+ cat <<EOM
+ == IMPORTANT NOTICE ==
+
+ This package will help you identify unfree packages that are installed
+ on your system at the time of it's installation, as well as protecting
+ you from (accidentally) installing them.
+
+ Also, if any other unfree package is identified, later updates will ask
+ you for it's removal.
+
+ Have in mind that, if you want to retain certain unfree packages
+ installed on your system, you'll have to remove your-freedom :)
+
+ If you find out any of the following:
+ * Cascade package removal due to unfree dependencies,
+ * Your-freedom conflicting with a *-libre package,
+ * Etc.
+
+ Please report back to the Parabola Project on the usual channels:
+ * http://bugs.parabolagnulinux.org
+ * irc://freenode.net/#parabola
+ * mailto:dev@list.parabolagnulinux.org
+EOM
+}
+
+pre_upgrade() {
+ pre_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib-testing/binutils-multilib/PKGBUILD b/multilib-testing/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..817b07a14
--- /dev/null
+++ b/multilib-testing/binutils-multilib/PKGBUILD
@@ -0,0 +1,75 @@
+# $Id: PKGBUILD 43542 2011-03-27 14:09:06Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils-multilib
+pkgver=2.21
+pkgrel=6
+_date=20110326
+pkgdesc="A set of programs to assemble and manipulate binary and object files for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('multilib-devel')
+provides=("binutils=$pkgver-$pkgrel")
+conflicts=('binutils')
+depends=('glibc>=2.13' 'zlib')
+makedepends=('dejagnu' 'gcc-multilib') # Make sure we compile this with gcc-multilib
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(http://mirrors.kernel.org/archlinux/other/binutils/binutils-${pkgver}_${_date}.tar.bz2)
+md5sums=('884dcbc87d4722b152aea72312356da1')
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared \
+ --enable-64-bit-bfd --enable-multilib
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+}
+
+check() {
+ cd ${srcdir}/binutils-build
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/multilib-testing/binutils-multilib/binutils.install b/multilib-testing/binutils-multilib/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/multilib-testing/binutils-multilib/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+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/multilib-testing/gcc-multilib/PKGBUILD b/multilib-testing/gcc-multilib/PKGBUILD
new file mode 100644
index 000000000..bc407224d
--- /dev/null
+++ b/multilib-testing/gcc-multilib/PKGBUILD
@@ -0,0 +1,308 @@
+# $Id: PKGBUILD 43545 2011-03-27 14:10:17Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgbase='gcc-multilib'
+pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib' 'gcc-go-multilib')
+pkgver=4.6.0
+pkgrel=1
+#_snapshot=4.6.0-RC-20110321
+_libstdcppmanver=20110201 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection for multilib"
+arch=('x86_64')
+license=('GPL' 'LGPL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils-multilib>=2.21' 'libmpc' 'cloog' 'ppl' 'gcc-ada-multilib' 'dejagnu'
+ 'lib32-glibc>=2.12.1')
+options=('!libtool' '!emptydirs')
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${pkgver}.tar.bz2
+ #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
+ gcc_pure64.patch
+ gcc-hash-style-both.patch)
+md5sums=('b1957f3209080b2f55bc3756d3a62b7c'
+ 'a30090fa655d0db4c970740d353c81f1'
+ 'a4687a9035c3e92db7e84fc01fc548ef'
+ '120d4675366ee82ea52f9ed65b57da04'
+ 'ea003fee5123f5bfbe17cc569cffe867'
+ 'c182dfcad477564af9d94e2aa1552bcd'
+ '8c76d751c5b99560e8acc3111f62263a'
+ '1e9fd2eaf0ee47ea64e82c48998f1999'
+ '22cec272f9cc2801d3cd348feaca888b'
+ '4df25b623799b148a0703eaeec8fdf3f')
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ cd ${_basedir}
+
+ # "Add" ppl-0.11 compatibility
+ sed -i "/ppl_minor_version=/s#10#11#" configure
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+
+ ${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://bugs.archlinux.org/ \
+ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
+ --enable-shared --enable-threads=posix \
+ --with-system-zlib --enable-__cxa_atexit \
+ --disable-libunwind-exceptions --enable-clocale=gnu \
+ --enable-gnu-unique-object --enable-linker-build-id \
+ --with-ppl --enable-cloog-backend=isl \
+ --enable-lto --enable-gold --enable-ld=default \
+ --enable-plugin --with-plugin-ld=ld.gold \
+ --enable-multilib --disable-libstdcxx-pch \
+ --enable-checking=release
+ make
+}
+
+check() {
+ cd gcc-build
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs-multilib()
+{
+ pkgdesc="Runtime libraries shipped by GCC for multilib"
+ depends=('glibc>=2.11.1-2' "lib32-gcc-libs=$pkgver-$pkgrel")
+ provides=("gcc-libs=$pkgver-$pkgrel")
+ conflicts=('gcc-libs')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
+
+ # remove stuff in lib32-gcc-libs
+ rm -rf ${pkgdir}/usr/lib32
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_lib32-gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC (32-bit)"
+ depends=('lib32-glibc>=2.12.1' "gcc-libs>=$pkgver")
+
+ cd gcc-build
+ make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm ${pkgdir}/usr/lib32/libgfortran.spec
+
+ # remove stuff in gcc-libs-multilib
+ rm -rf ${pkgdir}/usr/lib
+ rm -rf ${pkgdir}/usr/share/info
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-multilib()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
+ depends=('binutils-multilib>=2.21' 'libmpc>=0.8.1-2' 'cloog' 'ppl'
+ "gcc-libs-multilib=$pkgver-$pkgrel")
+ groups=('multilib-devel')
+ provides=("gcc=$pkgver-$pkgrel")
+ conflicts=('gcc')
+ install=gcc.install
+
+ cd gcc-build
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm $pkgdir/usr/lib{,32}/*.so*
+ rm $pkgdir/usr/lib{,32}/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm $pkgdir/usr/lib{,32}/libgfortran.spec
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,{,32/}libgfortranbegin.a}
+ rm -r $pkgdir/usr/lib{,32}/go
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm $pkgdir/usr/share/man/man3/ffi*
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran-multilib()
+{
+ pkgdesc="Fortran front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-fortran=$pkgver-$pkgrel")
+ conflicts=('gcc-fortran')
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib{,32}/lib{gfortran,quadmath}.so*
+ rm ${pkgdir}/usr/share/info/libquadmath.info
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc-multilib()
+{
+ pkgdesc="Objective-C front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-objc=$pkgver-$pkgrel")
+ conflicts=('gcc-objc')
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib{,32}/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada-multilib()
+{
+ pkgdesc="Ada front-end for GCC (GNAT) for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-ada=$pkgver-$pkgrel")
+ conflicts=('gcc-ada')
+ install=gcc-ada.install
+
+ cd gcc-build/gcc
+ make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+
+ cd ../$CHOST/32/libada
+ make -j1 DESTDIR=${pkgdir} INSTALL="install" \
+ INSTALL_DATA="install -m644" install-gnatlib
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-go-multilib()
+{
+ pkgdesc="Go front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-go=$pkgver-$pkgrel")
+ conflicts=('gcc-go')
+ install=gcc-go.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgo
+ make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
+ install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
+}
diff --git a/multilib-testing/gcc-multilib/gcc-ada.install b/multilib-testing/gcc-multilib/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-ada.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+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/multilib-testing/gcc-multilib/gcc-fortran.install b/multilib-testing/gcc-multilib/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-fortran.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/multilib-testing/gcc-multilib/gcc-go.install b/multilib-testing/gcc-multilib/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-go.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gccgo.info)
+
+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/multilib-testing/gcc-multilib/gcc-hash-style-both.patch b/multilib-testing/gcc-multilib/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-hash-style-both.patch
@@ -0,0 +1,122 @@
+--- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
+@@ -41,7 +41,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
++++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -78,7 +78,7 @@
+ %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
++++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -104,7 +104,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -64,7 +64,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
++++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
+@@ -389,11 +389,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
+
+--- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
++++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
+@@ -830,7 +830,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
+
+--- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
++++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -113,7 +113,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -121,7 +121,7 @@
+ %{static:-static}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -193,7 +193,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
++++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -74,7 +74,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!static: \
diff --git a/multilib-testing/gcc-multilib/gcc-libs.install b/multilib-testing/gcc-multilib/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc-libs.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+filelist=(libgomp.info libquadmath.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+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/multilib-testing/gcc-multilib/gcc.install b/multilib-testing/gcc-multilib/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+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/multilib-testing/gcc-multilib/gcc_pure64.patch b/multilib-testing/gcc-multilib/gcc_pure64.patch
new file mode 100644
index 000000000..8c6b08171
--- /dev/null
+++ b/multilib-testing/gcc-multilib/gcc_pure64.patch
@@ -0,0 +1,24 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,7 +49,7 @@
+ done. */
+
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/multilib-testing/lib32-glibc/PKGBUILD b/multilib-testing/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..36c6c00a9
--- /dev/null
+++ b/multilib-testing/lib32-glibc/PKGBUILD
@@ -0,0 +1,129 @@
+# $Id: PKGBUILD 43540 2011-03-27 14:07:50Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuild with each new glibc version
+
+_pkgbasename=glibc
+pkgname=lib32-$_pkgbasename
+pkgver=2.13
+pkgrel=5
+_glibcdate=20110117
+pkgdesc="GNU C Library for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+depends=("glibc>=$pkgver")
+makedepends=('gcc-multilib>=4.4')
+options=('!strip' '!emptydirs')
+source=(http://mirrors.kernel.org/archlinux/other/glibc/${_pkgbasename}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.1-static-shared-getpagesize.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.13-prelink.patch
+ glibc-2.13-futex.patch
+ lib32-glibc.conf)
+md5sums=('b7b17d9c6b5b71b5e5322e04ca63c190'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '24dfab6fd244f3773523412588ecc52c'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ '6e052f1cb693d5d3203f50f9d4e8c33b')
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+ patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+ # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+ patch -Np1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
+ # using Fedora "fix" as patch in that bug report causes breakages...
+ patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
+
+ # http://www.exploit-db.com/exploits/15274/
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12489
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=25b3aada (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.13-prelink.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/usr/lib32" >> configparms
+
+ export CC="gcc -m32"
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib32 --libexecdir=/usr/lib32 \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --disable-multi-arch i686-unknown-linux-gnu
+
+ make
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share}}
+
+ # We need one 32 bit specific header file
+ find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete
+
+ # manually strip files as stripping libpthread-*.so and libthread_db.so
+ # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+ # valgrind on x86_64
+
+ cd $pkgdir
+ strip $STRIP_BINARIES usr/lib32/getconf/*
+
+ strip $STRIP_STATIC usr/lib32/*.a \
+ usr/lib32/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ usr/lib32/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ usr/lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ usr/lib32/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib32/{pt_chown,gconv/*.so}
+
+ # Dynamic linker
+ install -d -m755 ${pkgdir}/lib
+ ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add /usr/lib32 to the default library search path
+ install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
+
+ # Symlink /usr/lib32/locale to /usr/lib/locale
+ ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
+}
diff --git a/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch b/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch b/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch b/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
@@ -0,0 +1,11 @@
+--- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+ #else
diff --git a/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
@@ -0,0 +1,26 @@
+From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH 1/1] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 22a1635..7674d49 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.2
diff --git a/multilib-testing/lib32-glibc/glibc-2.13-futex.patch b/multilib-testing/lib32-glibc/glibc-2.13-futex.patch
new file mode 100644
index 000000000..9b9c3ac45
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.13-futex.patch
@@ -0,0 +1,31 @@
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock:
+
+ 7: movq %rdx, %rax
+
+-#ifndef __ASSUME_PRIVATE_FUTEX
++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ addq $16, %rsp
+ cfi_adjust_cfa_offset(-16)
+ popq %r14
+@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
diff --git a/multilib-testing/lib32-glibc/glibc-2.13-prelink.patch b/multilib-testing/lib32-glibc/glibc-2.13-prelink.patch
new file mode 100644
index 000000000..bef7998a8
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-2.13-prelink.patch
@@ -0,0 +1,26 @@
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 9a560b3..201c9cf 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2168,6 +2168,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ we need it in the memory handling later. */
+ GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
+
++ /* Remember the last search directory added at startup, now that
++ malloc will no longer be the one from dl-minimal.c. */
++ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
++
+ if (prelinked)
+ {
+ if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
+@@ -2288,10 +2292,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lossage);
+ }
+
+- /* Remember the last search directory added at startup, now that
+- malloc will no longer be the one from dl-minimal.c. */
+- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+-
+ if (! prelinked && rtld_multiple_ref)
+ {
+ /* There was an explicit ref to the dynamic linker as a shared lib.
diff --git a/multilib-testing/lib32-glibc/glibc-__i686.patch b/multilib-testing/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/multilib-testing/lib32-glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/multilib-testing/lib32-glibc/lib32-glibc.conf b/multilib-testing/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib-testing/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/multilib-testing/lib32-libdrm/PKGBUILD b/multilib-testing/lib32-libdrm/PKGBUILD
new file mode 100644
index 000000000..d741fa83a
--- /dev/null
+++ b/multilib-testing/lib32-libdrm/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 42635 2011-03-18 20:13:09Z lcarlier $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libdrm
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.24
+pkgrel=1
+pkgdesc="Userspace interface to kernel DRM services (32-bit)"
+arch=(x86_64)
+license=('custom')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2
+ no-pthread-stubs.patch)
+md5sums=('8d802bf3b368f9fac0d7d17516a9436f'
+ '9b5ec3bbebe86921e2057694c42f65b8')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+
+ # libtoolize --force
+ autoreconf --force --install
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --enable-udev \
+ --enable-intel \
+ --enable-radeon \
+ --enable-vmwgfx-experimental-api \
+ --enable-nouveau-experimental-api
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib-testing/lib32-libdrm/no-pthread-stubs.patch b/multilib-testing/lib32-libdrm/no-pthread-stubs.patch
new file mode 100644
index 000000000..6602f8785
--- /dev/null
+++ b/multilib-testing/lib32-libdrm/no-pthread-stubs.patch
@@ -0,0 +1,65 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev],
+--- libdrm-2.4.16/intel/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/intel/Makefile.am.new 2009-12-07 08:11:32.235748069 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @CLOCK_LIB@
+
+ libdrm_intel_la_SOURCES = \
+ intel_atomic.h \
+--- libdrm-2.4.16/radeon/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/radeon/Makefile.am.new 2009-12-07 08:12:31.889075388 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/radeon \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
+ libdrm_radeon_ladir = $(libdir)
+ libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_radeon_la_LIBADD = ../libdrm.la
+
+ libdrm_radeon_la_SOURCES = \
+ radeon_bo_gem.c \
+--- libdrm-2.4.16/nouveau/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/nouveau/Makefile.am.new 2009-12-07 08:13:01.489072320 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+
+ libdrm_nouveau_la_SOURCES = \
+ nouveau_device.c \
diff --git a/multilib/binutils-multilib/PKGBUILD b/multilib/binutils-multilib/PKGBUILD
new file mode 100644
index 000000000..b65338bef
--- /dev/null
+++ b/multilib/binutils-multilib/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 39366 2011-02-09 12:53:42Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils-multilib
+pkgver=2.21
+pkgrel=4
+_date=20110209
+pkgdesc="A set of programs to assemble and manipulate binary and object files for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('multilib-devel')
+provides=("binutils=$pkgver-$pkgrel")
+conflicts=('binutils')
+depends=('glibc>=2.13' 'zlib')
+makedepends=('dejagnu' 'gcc-multilib') # Make sure we compile this with gcc-multilib
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(http://mirrors.kernel.org/archlinux/other/binutils/binutils-${pkgver}_${_date}.tar.bz2
+ binutils.git-39637246.patch)
+md5sums=('673ef8f4fc0b497232b4458982e76179'
+ 'dd72cb6df5467bc6237cff2a886099d0')
+
+build() {
+ cd ${srcdir}/binutils
+ patch -Np1 -i ${srcdir}/binutils.git-39637246.patch
+
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared \
+ --enable-64-bit-bfd --enable-multilib
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/multilib/binutils-multilib/binutils.git-39637246.patch b/multilib/binutils-multilib/binutils.git-39637246.patch
new file mode 100644
index 000000000..460450e43
--- /dev/null
+++ b/multilib/binutils-multilib/binutils.git-39637246.patch
@@ -0,0 +1,700 @@
+diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
+index 777d7cf..c4c34a1 100644
+--- a/gas/config/tc-i386.c
++++ b/gas/config/tc-i386.c
+@@ -1060,7 +1060,6 @@ i386_align_code (fragS *fragP, int count)
+ else
+ patt = f32_patt;
+ break;
+- case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_PENTIUM4:
+ case PROCESSOR_NOCONA:
+ case PROCESSOR_CORE:
+@@ -1080,6 +1079,7 @@ i386_align_code (fragS *fragP, int count)
+ case PROCESSOR_I386:
+ case PROCESSOR_I486:
+ case PROCESSOR_PENTIUM:
++ case PROCESSOR_PENTIUMPRO:
+ case PROCESSOR_GENERIC32:
+ patt = f32_patt;
+ break;
+diff --git a/gas/testsuite/gas/i386/nops-1-i686.d b/gas/testsuite/gas/i386/nops-1-i686.d
+index 7752ee2..137d5c2 100644
+--- a/gas/testsuite/gas/i386/nops-1-i686.d
++++ b/gas/testsuite/gas/i386/nops-1-i686.d
+@@ -10,25 +10,41 @@ Disassembly of section .text:
+
+ 0+ <nop15>:
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0d jmp 10 <nop14>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+10 <nop14>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+20 <nop13>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+30 <nop12>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bf 00 00 00 00 lea 0x0\(%edi\),%edi
+
+ 0+40 <nop11>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -36,7 +52,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+50 <nop10>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -45,7 +62,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+60 <nop9>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -55,7 +73,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 89 f6 mov %esi,%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+
+ 0+70 <nop8>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -66,7 +85,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+80 <nop7>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -78,7 +98,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+90 <nop6>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -91,7 +111,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
+
+ 0+a0 <nop5>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -105,7 +125,8 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+b0 <nop4>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -120,7 +141,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
++[ ]*[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+
+ 0+c0 <nop3>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -136,7 +157,7 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
++[ ]*[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
+
+ 0+d0 <nop2>:
+ [ ]*[a-f0-9]+: 90 nop
+diff --git a/gas/testsuite/gas/i386/nops-3-i686.d b/gas/testsuite/gas/i386/nops-3-i686.d
+index 30d2627..5c114f4 100644
+--- a/gas/testsuite/gas/i386/nops-3-i686.d
++++ b/gas/testsuite/gas/i386/nops-3-i686.d
+@@ -9,9 +9,37 @@ Disassembly of section .text:
+
+ 0+ <nop>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop\+0x20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ [ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
++[ ]*[a-f0-9]+: 8d bc 27 00 00 00 00 lea 0x0\(%edi,%eiz,1\),%edi
+ #pass
+diff --git a/gas/testsuite/gas/i386/nops-4-i686.d b/gas/testsuite/gas/i386/nops-4-i686.d
+index 3d8420b..c61f08d 100644
+--- a/gas/testsuite/gas/i386/nops-4-i686.d
++++ b/gas/testsuite/gas/i386/nops-4-i686.d
+@@ -9,30 +9,135 @@ Disassembly of section .text:
+
+ 0+ <nop31>:
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 1d jmp 20 <nop30>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+
+ 0+20 <nop30>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1c jmp 40 <nop29>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+40 <nop29>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1b jmp 60 <nop28>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+60 <nop28>:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 1a jmp 80 <nop27>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+80 <nop27>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -40,8 +145,32 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 19 jmp a0 <nop26>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+a0 <nop26>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -50,8 +179,31 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data32 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 18 jmp c0 <nop25>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+c0 <nop25>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -61,8 +213,30 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 17 jmp e0 <nop24>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+e0 <nop24>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -73,8 +247,29 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 16 jmp 100 <nop23>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+100 <nop23>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -86,8 +281,28 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 15 jmp 120 <nop22>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+120 <nop22>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -100,8 +315,27 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 14 jmp 140 <nop21>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+140 <nop21>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -115,8 +349,26 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 13 jmp 160 <nop20>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+160 <nop20>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -131,8 +383,25 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 12 jmp 180 <nop19>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+180 <nop19>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -148,8 +417,24 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 11 jmp 1a0 <nop18>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1a0 <nop18>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -166,8 +451,23 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 10 jmp 1c0 <nop17>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1c0 <nop17>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -185,8 +485,22 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
++[ ]*[a-f0-9]+: eb 0f jmp 1e0 <nop16>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+
+ 0+1e0 <nop16>:
+ [ ]*[a-f0-9]+: 90 nop
+@@ -205,6 +519,19 @@ Disassembly of section .text:
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: eb 0e jmp 200 <align>
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
++[ ]*[a-f0-9]+: 90 nop
+ [ ]*[a-f0-9]+: 90 nop
+-[ ]*[a-f0-9]+: 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 data32 data32 data32 data32 data32 nopw %cs:0x0\(%eax,%eax,1\)
+ #pass
diff --git a/multilib/binutils-multilib/binutils.install b/multilib/binutils-multilib/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/multilib/binutils-multilib/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+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/multilib/chuck/PKGBUILD b/multilib/chuck/PKGBUILD
new file mode 100644
index 000000000..06811dea5
--- /dev/null
+++ b/multilib/chuck/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 35414 2010-12-20 02:07:32Z heftig $
+# Maintainer: Brad Fanella <bradfanella@archlinux.us>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+# Contributor: Jeff Mickey <jeff@archlinux.org>
+# Contributor: tardo <tardo@nagi-fanboi.net>
+
+pkgname=chuck
+pkgver=1.2.1.3
+pkgrel=5
+pkgdesc="Concurrent, on-the-fly audio programming language."
+arch=('i686' 'x86_64')
+url="http://chuck.cs.princeton.edu/"
+license=('GPL')
+depends=('gcc-libs' 'libsndfile' 'alsa-lib')
+makedepends=('bison' 'flex')
+source=(http://chuck.cs.princeton.edu/release/files/$pkgname-$pkgver.tgz)
+md5sums=('ac8459b4067c2491fbdeb61d122a5985')
+
+if [[ $CARCH == x86_64 ]]; then
+ depends=('lib32-gcc-libs' 'lib32-libsndfile' 'lib32-alsa-lib')
+ makedepends+=('gcc-multilib')
+fi
+
+build() {
+ if [[ $CARCH == x86_64 ]]; then
+ export CC='gcc -m32'
+ export CXX='g++ -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ fi
+
+ cd $srcdir/$pkgname-$pkgver/src
+ CFLAGS="$CFLAGS -fno-strict-aliasing"
+
+ # This can be linux-alsa linux-jack linux-oss osx win32
+ make linux-alsa
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver/src
+ install -D -m 755 chuck $pkgdir/usr/bin/chuck
+}
diff --git a/multilib/gcc-multilib/PKGBUILD b/multilib/gcc-multilib/PKGBUILD
new file mode 100644
index 000000000..b3ec427ea
--- /dev/null
+++ b/multilib/gcc-multilib/PKGBUILD
@@ -0,0 +1,267 @@
+# $Id: PKGBUILD 38863 2011-02-02 11:14:23Z ibiru $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgbase='gcc-multilib'
+pkgname=('gcc-multilib' 'gcc-libs-multilib' 'lib32-gcc-libs' 'gcc-fortran-multilib' 'gcc-objc-multilib' 'gcc-ada-multilib')
+pkgver=4.5.2
+pkgrel=6
+_snapshot=4.5-20110127
+_libstdcppmanver=4.5.2 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection for multilib"
+arch=('x86_64')
+license=('GPL' 'LGPL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils-multilib>=2.21' 'libmpc' 'cloog-ppl>=0.15.9-2' 'elfutils' 'gcc-ada-multilib' 'dejagnu'
+ 'glibc>=2.11.1-2' 'lib32-glibc>=2.12.1')
+options=('!libtool' '!emptydirs')
+source=(#ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada,testsuite}-${pkgver}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada,testsuite}-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api-${_libstdcppmanver}.man.tar.bz2
+ gcc_pure64.patch
+ gcc-hash-style-both.patch)
+md5sums=('7dbdf06186dc98955221b2f7b987645b'
+ '4893036a98d8bedf44fe0741dfec6e1f'
+ 'c741c614e975c858cffb9e78b0b5124f'
+ 'b141fadc984cc0c1c0f15feb16db14e5'
+ '067672b640d0b912298791c1837606bc'
+ 'daffd2ba5917a263cdff5f38dcf8c323'
+ '2776eab5ebb7f9cc62dd2199a3a24382'
+ '22cec272f9cc2801d3cd348feaca888b'
+ '6fd395bacbd7b6e47c7b74854b478363')
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ cd ${_basedir}
+
+ # "Add" ppl-0.11 compatibility
+ sed -i "/ppl_minor_version=/s#10#11#" configure
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+ ${_basedir}/configure --prefix=/usr \
+ --enable-languages=c,c++,fortran,objc,obj-c++,ada \
+ --enable-shared --enable-threads=posix --enable-__cxa_atexit \
+ --enable-clocale=gnu --enable-gnu-unique-object \
+ --enable-lto --enable-plugin \
+ --enable-gold --with-plugin-ld=ld.gold \
+ --enable-multilib --disable-libstdcxx-pch \
+ --with-system-zlib --with-ppl \
+ --with-cloog --with-cloog-include=/usr/include/cloog-ppl \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info
+ make
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs-multilib()
+{
+ pkgdesc="Runtime libraries shipped by GCC for multilib"
+ depends=('glibc>=2.11.1-2' "lib32-gcc-libs=$pkgver-$pkgrel")
+ provides=("gcc-libs=$pkgver-$pkgrel")
+ conflicts=('gcc-libs')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+ # I thought I said to only install the lib...
+ rm -rf ${pkgdir}/usr/lib/gcc/
+ rm -rf ${pkgdir}/usr/lib32
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_lib32-gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC (32-bit)"
+ depends=('lib32-glibc>=2.12.1' "gcc-libs>=$pkgver")
+
+ cd gcc-build
+ make -j1 -C $CHOST/32/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/32/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # I thought I said to only install the lib...
+ rm -rf ${pkgdir}/usr/lib
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-multilib()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends for multilib"
+ depends=('binutils-multilib>=2.21' 'libmpc>=0.8.1-2' 'cloog-ppl>=0.15.9-2' 'elfutils' \
+ "gcc-libs-multilib=$pkgver-$pkgrel")
+ groups=('multilib-devel')
+ provides=("gcc=$pkgver-$pkgrel")
+ conflicts=('gcc')
+ install=gcc.install
+
+ cd gcc-build
+
+ # much, much easier to install the lot and clean-up the mess
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{*gfortran,gnat*}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{{,32/}ada{include,lib},finclude,include/objc}/*
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,{,32/}libgfortranbegin.a}
+ rm $pkgdir/usr/lib{,32}/{*.so*,lib{gfortran,objc}.a}
+ rm $pkgdir/usr/share/info/{gfortran,gnat*,libgomp}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/gfortran.1
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/libstdc++-api-${_libstdcppmanver}.man/man3/* \
+ ${pkgdir}/usr/share/man/man3/
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran-multilib()
+{
+ pkgdesc="Fortran front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-fortran=$pkgver-$pkgrel")
+ conflicts=('gcc-fortran')
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}/usr/lib{,32}/libgfortran.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc-multilib()
+{
+ pkgdesc="Objective-C front-end for GCC for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-objc=$pkgver-$pkgrel")
+ conflicts=('gcc-objc')
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm -f ${pkgdir}/usr/lib{,32}/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada-multilib()
+{
+ pkgdesc="Ada front-end for GCC (GNAT) for multilib"
+ depends=("gcc-multilib=$pkgver-$pkgrel")
+ provides=("gcc-ada=$pkgver-$pkgrel")
+ conflicts=('gcc-ada')
+ install=gcc-ada.install
+
+ cd gcc-build
+ make -j1 -C gcc DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gcc/gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+ make -j1 -C $CHOST/32/libada DESTDIR=${pkgdir} \
+ INSTALL="install" INSTALL_DATA="install -m644" install-gnatlib
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada-multilib/RUNTIME.LIBRARY.EXCEPTION
+}
+
diff --git a/multilib/gcc-multilib/gcc-ada.install b/multilib/gcc-multilib/gcc-ada.install
new file mode 100644
index 000000000..81794685f
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-ada.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc-fortran.install b/multilib/gcc-multilib/gcc-fortran.install
new file mode 100644
index 000000000..2aeab7123
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-fortran.install
@@ -0,0 +1,18 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc-hash-style-both.patch b/multilib/gcc-multilib/gcc-hash-style-both.patch
new file mode 100644
index 000000000..fbb210598
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-hash-style-both.patch
@@ -0,0 +1,163 @@
+#! /bin/sh -e
+
+# DP: Link using --hash-style=both (alpha, amd64, ia64, i386, powerpc, ppc64, s390, sparc)
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ #cd ${dir}gcc && autoconf
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ #rm ${dir}gcc/configure
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+2006-07-11 Jakub Jelinek <jakub@redhat.com>
+
+ * config/i386/linux.h (LINK_SPEC): Add --hash-style=both.
+ * config/i386/linux64.h (LINK_SPEC): Likewise.
+ * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise.
+ * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
+ LINK_OS_LINUX_SPEC64): Likewise.
+ * config/s390/linux.h (LINK_SPEC): Likewise.
+ * config/ia64/linux.h (LINK_SPEC): Likewise.
+ * config/sparc/linux.h (LINK_SPEC): Likewise.
+ * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC,
+ LINK_ARCH64_SPEC): Likewise.
+ * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
+
+--- gcc/config/alpha/linux-elf.h.orig 2007-08-04 08:55:58.000000000 +0200
++++ gcc/config/alpha/linux-elf.h 2007-09-01 15:47:26.605865578 +0200
+@@ -39,7 +39,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/s390/linux.h.orig 2007-08-04 08:55:59.000000000 +0200
++++ gcc/config/s390/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux.h.orig 2007-08-04 08:56:01.000000000 +0200
++++ gcc/config/sparc/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -132,7 +132,7 @@
+
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!ibcs: \
+--- gcc/config/sparc/linux64.h.orig 2007-08-04 08:56:01.000000000 +0200
++++ gcc/config/sparc/linux64.h 2007-09-01 15:47:26.605865578 +0200
+@@ -166,7 +166,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+@@ -175,7 +175,7 @@
+ %{static:-static}}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+@@ -256,7 +256,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2007-08-04 08:56:07.000000000 +0200
++++ gcc/config/i386/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -108,7 +108,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!ibcs: \
+ %{!static: \
+--- gcc/config/i386/linux64.h.orig 2007-08-04 08:56:07.000000000 +0200
++++ gcc/config/i386/linux64.h 2007-09-01 15:48:27.336781690 +0200
+@@ -65,7 +65,7 @@
+ #endif
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/ia64/linux.h.orig 2006-12-12 18:59:53.000000000 +0100
++++ gcc/config/ia64/linux.h 2007-09-01 15:47:26.605865578 +0200
+@@ -40,7 +40,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/sysv4.h.orig 2007-08-08 23:37:49.000000000 +0200
++++ gcc/config/rs6000/sysv4.h 2007-09-01 15:47:26.615865729 +0200
+@@ -901,7 +901,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+
+--- gcc/config/rs6000/linux64.h.orig 2007-08-04 08:56:12.000000000 +0200
++++ gcc/config/rs6000/linux64.h 2007-09-01 15:47:26.615865729 +0200
+@@ -354,11 +354,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
+
diff --git a/multilib/gcc-multilib/gcc-libs.install b/multilib/gcc-multilib/gcc-libs.install
new file mode 100644
index 000000000..b5fbf9211
--- /dev/null
+++ b/multilib/gcc-multilib/gcc-libs.install
@@ -0,0 +1,14 @@
+infodir=usr/share/info
+file="libgomp.info"
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc.install b/multilib/gcc-multilib/gcc.install
new file mode 100644
index 000000000..a7a405288
--- /dev/null
+++ b/multilib/gcc-multilib/gcc.install
@@ -0,0 +1,22 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/gcc-multilib/gcc_pure64.patch b/multilib/gcc-multilib/gcc_pure64.patch
new file mode 100644
index 000000000..8c6b08171
--- /dev/null
+++ b/multilib/gcc-multilib/gcc_pure64.patch
@@ -0,0 +1,24 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,7 +49,7 @@
+ done. */
+
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/multilib/lib32-acl/PKGBUILD b/multilib/lib32-acl/PKGBUILD
new file mode 100644
index 000000000..6cfc4ec30
--- /dev/null
+++ b/multilib/lib32-acl/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=lib32-acl
+pkgver=2.2.49
+pkgrel=1
+pkgdesc="Access control list libraries (32-bit)"
+arch=('x86_64')
+url="http://savannah.nongnu.org/projects/acl"
+license=('LGPL')
+depends=('lib32-attr' 'acl')
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://mirrors.zerg.biz/nongnu/acl/acl-${pkgver}.src.tar.gz)
+sha256sums=('b9c7f4752e4ef4930a62fa5aa0d7efe1cba2b5a3a2d6ee2b45c0a70c72b7e5d5')
+
+build() {
+ cd "${srcdir}/acl-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ export INSTALL_USER=root INSTALL_GROUP=root
+ ./configure --prefix=/usr --libdir=/usr/lib32 --libexecdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/acl-${pkgver}"
+
+ make DIST_ROOT="${pkgdir}" install install-lib install-dev
+
+ rm -rf ${pkgdir}/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-alsa-lib/PKGBUILD b/multilib/lib32-alsa-lib/PKGBUILD
new file mode 100644
index 000000000..8dff0f1d3
--- /dev/null
+++ b/multilib/lib32-alsa-lib/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 40235 2011-02-22 08:22:12Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=alsa-lib
+pkgname=lib32-${_pkgbasename}
+pkgver=1.0.24.1
+pkgrel=1
+pkgdesc="An alternative implementation of Linux sound support (32 bit)"
+arch=('x86_64')
+url="http://www.alsa-project.org"
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+license=('GPL')
+options=(!libtool)
+source=(ftp://ftp.alsa-project.org/pub/lib/${_pkgbasename}-$pkgver.tar.bz2)
+
+build() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-python
+ make
+}
+
+package() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+ make DESTDIR=$pkgdir install
+
+ # Clean up lib32 package
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
+md5sums=('7cc05f25e1d5b65da8fb3fdcd540f226')
diff --git a/multilib/lib32-alsa-oss/PKGBUILD b/multilib/lib32-alsa-oss/PKGBUILD
new file mode 100644
index 000000000..bf8874c8e
--- /dev/null
+++ b/multilib/lib32-alsa-oss/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 26502 2010-09-15 22:26:51Z bluewind $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+_pkgbasename=alsa-oss
+pkgname=lib32-${_pkgbasename}
+pkgver=1.0.17
+pkgrel=2
+pkgdesc="OSS compatibility library (32 bit)"
+arch=(x86_64)
+license=('GPL')
+url="http://www.alsa-project.org"
+options=(!libtool)
+depends=('lib32-glibc' 'lib32-alsa-lib' 'alsa-oss')
+source=(ftp://ftp.alsa-project.org/pub/oss-lib/${_pkgbasename}-$pkgver.tar.bz2)
+md5sums=('1b1850c2fc91476a73d50f537cbd402f')
+
+build() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/${_pkgbasename}-$pkgver
+
+ make DESTDIR="$pkgdir" install
+
+ # Clean up lib32 package
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-alsa-plugins/PKGBUILD b/multilib/lib32-alsa-plugins/PKGBUILD
new file mode 100644
index 000000000..4a0ce214d
--- /dev/null
+++ b/multilib/lib32-alsa-plugins/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 40238 2011-02-22 08:27:39Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=alsa-plugins
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.24
+pkgrel=1
+pkgdesc="Extra alsa plugins (32-bit)"
+arch=(x86_64)
+url="http://www.alsa-project.org"
+license=(GPL)
+depends=(lib32-alsa-lib $_pkgbasename)
+makedepends=(lib32-{libpulse,jack,speex,libsamplerate} gcc-multilib)
+optdepends=('lib32-libpulse: PulseAudio plugin'
+ 'lib32-jack: Jack plugin'
+ 'lib32-libsamplerate: libsamplerate resampling plugin'
+ 'lib32-speex: libspeexdsp resampling plugin')
+options=('!libtool')
+source=("ftp://ftp.alsa-project.org/pub/plugins/$_pkgbasename-$pkgver.tar.bz2")
+md5sums=('e4d4c90e11ab9d1a117afbbc1edd2b16')
+
+build() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-avcodec
+ make
+}
+
+package() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+ make DESTDIR="$pkgdir" install
+}
diff --git a/multilib/lib32-atk/PKGBUILD b/multilib/lib32-atk/PKGBUILD
new file mode 100644
index 000000000..2243310b5
--- /dev/null
+++ b/multilib/lib32-atk/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 27946 2010-09-30 16:10:31Z heftig $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Maintainer: Mikko Seppälä <t-r-a-y@mbnet.fi>
+_pkgbasename=atk
+pkgname=lib32-$_pkgbasename
+pkgver=1.32.0
+pkgrel=1
+pkgdesc="A library providing a set of interfaces for accessibility (32-bit)"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-glib2>=2.25.17' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/1.32/${_pkgbasename}-${pkgver}.tar.bz2)
+url='http://www.gtk.org/'
+sha256sums=('e9a3e598f75c4db1af914f8b052dd9f7e89e920a96cc187c18eb06b8339cb16e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --disable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+}
diff --git a/multilib/lib32-attr/PKGBUILD b/multilib/lib32-attr/PKGBUILD
new file mode 100644
index 000000000..af308863a
--- /dev/null
+++ b/multilib/lib32-attr/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26511 2010-09-15 22:28:05Z bluewind $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+_pkgbasename=attr
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.44
+pkgrel=4
+pkgdesc="Extended attribute support library for ACL support (32-bit)"
+arch=(x86_64)
+url="http://oss.sgi.com/projects/xfs/"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib' 'gettext')
+options=('!libtool')
+source=(ftp://ftp.archlinux.org/other/attr/attr-${pkgver}.src.tar.gz)
+sha256sums=('e01fa00686072a02dddf994e6217be950f51c1dc0852ad2e210c48b6e8de793a')
+
+build() {
+ cd $srcdir/attr-$pkgver
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ autoconf
+ ./configure --prefix=/usr --libdir=/usr/lib32 --libexecdir=/usr/lib32
+ make
+
+ # Doesn't like building as non-root
+
+ make prefix=${pkgdir}/usr \
+ PKG_LIB_DIR=$pkgdir/usr/lib32 \
+ PKG_DEVLIB_DIR=$pkgdir/usr/lib32 \
+ install-lib install-dev
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-audiofile/PKGBUILD b/multilib/lib32-audiofile/PKGBUILD
new file mode 100644
index 000000000..467f9bd3d
--- /dev/null
+++ b/multilib/lib32-audiofile/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 26514 2010-09-15 22:28:30Z bluewind $
+# Maintainer: dorphell <dorphell@archlinux.org>
+_pkgbasename=audiofile
+pkgname=lib32-$_pkgbasename
+pkgver=0.2.7
+pkgrel=3
+pkgdesc="Silicon Graphics Audio File Library (32-bit)"
+arch=('x86_64')
+url="http://www.68k.org/~michael/audiofile/"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/0.2/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('61efd278627415b5468426fc9e52aef32ea0fdac12b56bcdd72734c2ece5945e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-cairo/PKGBUILD b/multilib/lib32-cairo/PKGBUILD
new file mode 100644
index 000000000..a8cbc6b72
--- /dev/null
+++ b/multilib/lib32-cairo/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 43547 2011-03-27 14:25:07Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=cairo
+pkgname=lib32-$_pkgbasename
+pkgver=1.10.2
+pkgrel=2
+pkgdesc="Cairo vector graphics library (32-bit)"
+arch=('x86_64')
+url="http://cairographics.org/"
+license=('LGPL' 'MPL')
+depends=('lib32-libpng' 'lib32-libxrender' 'lib32-fontconfig'
+ 'lib32-pixman' 'lib32-glib2' ${_pkgbasename})
+makedepends=('gcc-multilib')
+source=(http://cairographics.org/releases/${_pkgbasename}-${pkgver}.tar.gz
+ cairo-1.10.0-buggy_gradients.patch)
+sha1sums=('ccce5ae03f99c505db97c286a0c9a90a926d3c6e'
+ '8b843a9934e5112b6188e5bcf4adfc1fdaf9fa04')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --sysconfdir=/etc --localstatedir=/var \
+ --disable-static --enable-tee
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch b/multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch
new file mode 100644
index 000000000..368e356d3
--- /dev/null
+++ b/multilib/lib32-cairo/cairo-1.10.0-buggy_gradients.patch
@@ -0,0 +1,13 @@
+--- a/src/cairo-xlib-display.c.ubuntu 2010-08-04 11:57:49.000000000 +0200
++++ b/src/cairo-xlib-display.c 2010-08-04 11:58:28.000000000 +0200
+@@ -353,11 +353,7 @@
+ /* Prior to Render 0.10, there is no protocol support for gradients and
+ * we call function stubs instead, which would silently consume the drawing.
+ */
+-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
+ display->buggy_gradients = TRUE;
+-#else
+- display->buggy_gradients = FALSE;
+-#endif
+ display->buggy_pad_reflect = FALSE;
+ display->buggy_repeat = FALSE;
diff --git a/multilib/lib32-curl/PKGBUILD b/multilib/lib32-curl/PKGBUILD
new file mode 100755
index 000000000..48ab2a1b7
--- /dev/null
+++ b/multilib/lib32-curl/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 36008 2010-12-25 14:36:29Z ibiru $
+# Maintainer: Florian Pritz <flo@xssn.at>
+
+_pkgbasename=curl
+pkgname=lib32-$_pkgbasename
+pkgver=7.21.3
+pkgrel=1
+pkgdesc="An URL retrieval utility and library (32-bit)"
+arch=('x86_64')
+url="http://curl.haxx.se"
+license=('MIT')
+depends=('lib32-zlib' 'lib32-openssl' 'bash' 'ca-certificates' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=("http://curl.haxx.se/download/${_pkgbasename}-${pkgver}.tar.bz2")
+md5sums=('5b57fee22090b5c43a6886fdd35af2ce')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ ./configure \
+ --with-random=/dev/urandom \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --disable-dependency-tracking \
+ --enable-ipv6 \
+ --disable-ldaps \
+ --disable-ldap \
+ --enable-manual \
+ --enable-versioned-symbols \
+ --with-ca-path=/etc/ssl/certs \
+ --without-libidn \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{share,bin}
+ #we need curlbuild.h
+ find ${pkgdir}/usr/include/curl -type f -not -name curlbuild.h -delete
+ #now save it as curlbuild-32.h
+ mv ${pkgdir}/usr/include/curl/curlbuild.h ${pkgdir}/usr/include/curl/curlbuild-32.h
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-db/PKGBUILD b/multilib/lib32-db/PKGBUILD
new file mode 100644
index 000000000..93be51e47
--- /dev/null
+++ b/multilib/lib32-db/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 35318 2010-12-18 21:29:14Z heftig $
+# Maintainer: Biru Ionut <biru.ionut at gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgbasename=db
+pkgname=lib32-$_pkgbasename
+pkgver=5.1.19
+pkgrel=1
+pkgdesc="The Berkeley DB embedded database system (32-bit)"
+arch=('x86_64')
+url="http://www.oracle.com/technology/software/products/berkeley-db/index.html"
+license=('custom')
+depends=('lib32-gcc-libs' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://download-uk.oracle.com/berkeley-db/db-${pkgver}.tar.gz)
+md5sums=('76fcbfeebfcd09ba0b4d96bfdf8d884d')
+
+build() {
+ cd ${srcdir}/$_pkgbasename-${pkgver}/build_unix
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ../dist/configure --prefix=/usr --enable-compat185 \
+ --enable-shared --enable-static --enable-cxx --enable-dbm \
+ --libdir=/usr/lib32
+ make LIBSO_LIBS=-lpthread
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}/build_unix
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{docs,include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-dbus-core/PKGBUILD b/multilib/lib32-dbus-core/PKGBUILD
new file mode 100644
index 000000000..ac3a2e24a
--- /dev/null
+++ b/multilib/lib32-dbus-core/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 26527 2010-09-15 22:30:16Z bluewind $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+pkgname=lib32-dbus-core
+_pkgbasename=dbus-core
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Freedesktop.org message bus system (32-bit)"
+arch=('x86_64')
+url="http://www.freedesktop.org/Software/dbus"
+license=('GPL' 'custom')
+depends=('lib32-glibc' 'lib32-expat' 'dbus-core')
+makedepends=('gcc-multilib')
+options=(!libtool)
+source=(http://dbus.freedesktop.org/releases/dbus/dbus-${pkgver}.tar.gz)
+md5sums=('f59618b18d2fb2bd1fce9e1c5a2a3282')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/dbus-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib32 \
+ --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=81 \
+ --with-system-pid-file=/var/run/dbus.pid \
+ --enable-inotify --disable-dnotify \
+ --disable-verbose-mode --disable-static \
+ --disable-tests --disable-asserts --without-x
+ make
+}
+package() {
+ cd "${srcdir}/dbus-${pkgver}"
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{bin,include,lib,share}
+ rm -rf "${pkgdir}"/{etc,var}
+
+ mkdir -p "${pkgdir}/usr/share/licenses"
+ ln -s ${_pkgbasename} "${pkgdir}/usr/share/licenses/${pkgname}"
+}
diff --git a/multilib/lib32-e2fsprogs/PKGBUILD b/multilib/lib32-e2fsprogs/PKGBUILD
new file mode 100644
index 000000000..ca7e2eb25
--- /dev/null
+++ b/multilib/lib32-e2fsprogs/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: mightyjaym <jm.ambrosino@free.fr>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=e2fsprogs
+pkgname=lib32-e2fsprogs
+pkgver=1.41.14
+pkgrel=2
+pkgdesc="Ext2 filesystem libraries (32-bit)"
+arch=(x86_64)
+license=('GPL' 'LGPL' 'MIT')
+url="http://e2fsprogs.sourceforge.net"
+depends=('lib32-util-linux' $_pkgbasename)
+makedepends=('bc' 'gcc-multilib')
+source=("http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz")
+sha1sums=('24f9364fa3d4c0d7d00cb627b819d0e51055d6c5')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --with-root-prefix="" --enable-elf-shlibs \
+ --disable-{debugfs,imager,resizer,fsck,uuidd,libuuid,libblkid}
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install-libs
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-expat/CVE-2009-3560.patch b/multilib/lib32-expat/CVE-2009-3560.patch
new file mode 100644
index 000000000..5fe9c36c8
--- /dev/null
+++ b/multilib/lib32-expat/CVE-2009-3560.patch
@@ -0,0 +1,13 @@
+diff -urNad trunk~/lib/xmlparse.c trunk/lib/xmlparse.c
+--- trunk~/lib/xmlparse.c 2007-05-08 04:25:35.000000000 +0200
++++ trunk/lib/xmlparse.c 2009-12-29 21:57:22.141732904 +0100
+@@ -3703,6 +3703,9 @@
+ return XML_ERROR_UNCLOSED_TOKEN;
+ case XML_TOK_PARTIAL_CHAR:
+ return XML_ERROR_PARTIAL_CHAR;
++ case -XML_TOK_PROLOG_S:
++ tok = -tok;
++ break;
+ case XML_TOK_NONE:
+ #ifdef XML_DTD
+ /* for internal PE NOT referenced between declarations */
diff --git a/multilib/lib32-expat/CVE-2009-3720.patch b/multilib/lib32-expat/CVE-2009-3720.patch
new file mode 100644
index 000000000..65d16431f
--- /dev/null
+++ b/multilib/lib32-expat/CVE-2009-3720.patch
@@ -0,0 +1,12 @@
+diff -urNad trunk~/lib/xmltok_impl.c trunk/lib/xmltok_impl.c
+--- trunk~/lib/xmltok_impl.c 2006-11-26 18:34:46.000000000 +0100
++++ trunk/lib/xmltok_impl.c 2009-10-22 21:42:41.000000000 +0200
+@@ -1744,7 +1744,7 @@
+ const char *end,
+ POSITION *pos)
+ {
+- while (ptr != end) {
++ while (ptr < end) {
+ switch (BYTE_TYPE(enc, ptr)) {
+ #define LEAD_CASE(n) \
+ case BT_LEAD ## n: \
diff --git a/multilib/lib32-expat/PKGBUILD b/multilib/lib32-expat/PKGBUILD
new file mode 100644
index 000000000..c50cb9c79
--- /dev/null
+++ b/multilib/lib32-expat/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26535 2010-09-15 22:31:07Z bluewind $
+
+_pkgbasename=expat
+pkgname=lib32-${_pkgbasename}
+pkgver=2.0.1
+pkgrel=7
+pkgdesc="An XML Parser library written in C (32 bit)"
+arch=('x86_64')
+url="http://expat.sourceforge.net/"
+license=('custom')
+makedepends=('gcc-multilib')
+depends=('lib32-glibc' "${_pkgbasename}")
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/expat/${_pkgbasename}-${pkgver}.tar.gz
+ CVE-2009-3560.patch
+ CVE-2009-3720.patch)
+md5sums=('ee8b492592568805593f81f8cdf2a04c'
+ '50603cac0f03aabc7087415251f592be'
+ 'f3eeb796f28945899216b815e5901996')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i $srcdir/CVE-2009-3560.patch
+ patch -Np1 -i $srcdir/CVE-2009-3720.patch
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ ./configure --prefix=/usr --libdir=/usr/lib32 --mandir=/usr/share/man
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/"
+ ln -s ${_pkgbasename} "${pkgdir}/usr/share/licenses/${pkgname}"
+
+ # Clean up lib32 package
+ rm -rf "${pkgdir}"/usr/{bin,include,share/man}
+}
diff --git a/multilib/lib32-flac/PKGBUILD b/multilib/lib32-flac/PKGBUILD
new file mode 100644
index 000000000..00c2b8791
--- /dev/null
+++ b/multilib/lib32-flac/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 26539 2010-09-15 22:31:33Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=flac
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.1
+pkgrel=7
+pkgdesc="Free Lossless Audio Codec (32-bit)"
+arch=('x86_64')
+url="http://flac.sourceforge.net/"
+license=('custom:Xiph' 'LGPL' 'GPL' 'FDL')
+depends=('lib32-libogg' 'lib32-gcc-libs' $_pkgbasename)
+makedepends=('nasm' gcc-multilib)
+options=('!libtool' '!makeflags')
+source=(http://downloads.sf.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz
+ flac-1.2.1-gcc-4.3-includes.patch)
+md5sums=('153c8b15a54da428d1f0fadc756c22c7'
+ 'b9d245422bbc547b18a72897366bea77')
+sha1sums=('bd54354900181b59db3089347cc84ad81e410b38'
+ '7e9f8c2ef4d9daf5ddd20df63b608fe19b8c1560')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ patch -Np1 -i ${srcdir}/flac-1.2.1-gcc-4.3-includes.patch
+ ./configure --prefix=/usr --mandir=/usr/share/man --enable-shared \
+ --disable-rpath --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch b/multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch
new file mode 100644
index 000000000..52fec8be5
--- /dev/null
+++ b/multilib/lib32-flac/flac-1.2.1-gcc-4.3-includes.patch
@@ -0,0 +1,11 @@
+diff -Naur flac-1.2.1-orig/examples/cpp/encode/file/main.cpp flac-1.2.1/examples/cpp/encode/file/main.cpp
+--- flac-1.2.1-orig/examples/cpp/encode/file/main.cpp 2007-09-13 09:58:03.000000000 -0600
++++ flac-1.2.1/examples/cpp/encode/file/main.cpp 2007-11-18 12:59:45.000000000 -0600
+@@ -30,6 +30,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <cstring>
+ #include "FLAC++/metadata.h"
+ #include "FLAC++/encoder.h"
+
diff --git a/multilib/lib32-fontconfig/30-urw-aliases.patch b/multilib/lib32-fontconfig/30-urw-aliases.patch
new file mode 100644
index 000000000..8077b869e
--- /dev/null
+++ b/multilib/lib32-fontconfig/30-urw-aliases.patch
@@ -0,0 +1,13 @@
+--- a/conf.d/30-urw-aliases.conf 2009-08-06 16:23:57.000000000 +0100
++++ b/conf.d/30-urw-aliases.conf 2009-08-06 16:25:07.000000000 +0100
+@@ -29,6 +29,10 @@
+ <family>Zapf Dingbats</family>
+ <accept><family>Dingbats</family></accept>
+ </alias>
++ <alias binding="same">
++ <family>ZapfDingbats</family>
++ <accept><family>Dingbats</family></accept>
++ </alias>
+ <match target="pattern">
+ <test name="family">
+ <string>Symbol</string>
diff --git a/multilib/lib32-fontconfig/PKGBUILD b/multilib/lib32-fontconfig/PKGBUILD
new file mode 100644
index 000000000..36f52ba32
--- /dev/null
+++ b/multilib/lib32-fontconfig/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 26542 2010-09-15 22:31:59Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=fontconfig
+pkgname=lib32-$_pkgbasename
+pkgver=2.8.0
+pkgrel=3
+pkgdesc="A library for configuring and customizing font access (32-bit)"
+arch=(x86_64)
+url="http://www.fontconfig.org/release/"
+license=('custom')
+depends=('lib32-expat>=2.0.1' 'lib32-freetype2>=2.3.11' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://www.fontconfig.org/release/${_pkgbasename}-${pkgver}.tar.gz
+ 30-urw-aliases.patch)
+md5sums=('77e15a92006ddc2adbb06f840d591c0e'
+ '51bc6cb633b50f3c28793361738aac5b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/30-urw-aliases.patch"
+ # enable Position Independent Code for prelinking
+ export CFLAGS="${CFLAGS} -fPIC"
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir"/{etc,var}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-freetype2/PKGBUILD b/multilib/lib32-freetype2/PKGBUILD
new file mode 100644
index 000000000..17e4917b2
--- /dev/null
+++ b/multilib/lib32-freetype2/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 35255 2010-12-18 00:33:57Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=freetype2
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.4
+pkgrel=1
+pkgdesc="TrueType font rendering library (32-bit)"
+arch=(x86_64)
+license=('GPL')
+url="http://freetype.sourceforge.net"
+depends=('lib32-zlib' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/freetype/freetype-${pkgver}.tar.bz2
+ freetype-2.3.0-enable-spr.patch
+ freetype-2.2.1-enable-valid.patch)
+md5sums=('b3e2b6e2f1c3e0dffa1fd2a0f848b671'
+ '816dc8619a6904a7385769433c0a8653'
+ '214119610444c9b02766ccee5e220680')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/freetype-${pkgver}"
+ patch -Np1 -i "${srcdir}/freetype-2.3.0-enable-spr.patch"
+ patch -Np1 -i "${srcdir}/freetype-2.2.1-enable-valid.patch"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/freetype-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch b/multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch
new file mode 100644
index 000000000..c78b6b70f
--- /dev/null
+++ b/multilib/lib32-freetype2/freetype-2.2.1-enable-valid.patch
@@ -0,0 +1,20 @@
+--- freetype-2.2.1/modules.cfg.orig 2006-07-07 21:01:09.000000000 -0400
++++ freetype-2.2.1/modules.cfg 2006-07-07 21:01:54.000000000 -0400
+@@ -110,7 +110,7 @@
+ AUX_MODULES += cache
+
+ # TrueType GX/AAT table validation. Needs ftgxval.c below.
+-# AUX_MODULES += gxvalid
++AUX_MODULES += gxvalid
+
+ # Support for streams compressed with gzip (files with suffix .gz).
+ #
+@@ -124,7 +124,7 @@
+
+ # OpenType table validation. Needs ftotval.c below.
+ #
+-# AUX_MODULES += otvalid
++AUX_MODULES += otvalid
+
+ # Auxiliary PostScript driver component to share common code.
+ #
diff --git a/multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch b/multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch
new file mode 100644
index 000000000..8432e28a4
--- /dev/null
+++ b/multilib/lib32-freetype2/freetype-2.3.0-enable-spr.patch
@@ -0,0 +1,11 @@
+--- freetype-2.3.0/include/freetype/config/ftoption.h.spf 2007-01-18 14:27:34.000000000 -0500
++++ freetype-2.3.0/include/freetype/config/ftoption.h 2007-01-18 14:27:48.000000000 -0500
+@@ -92,7 +92,7 @@
+ /* This is done to allow FreeType clients to run unmodified, forcing */
+ /* them to display normal gray-level anti-aliased glyphs. */
+ /* */
+-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
++#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+
+
+ /*************************************************************************/
diff --git a/multilib/lib32-gdk-pixbuf2/PKGBUILD b/multilib/lib32-gdk-pixbuf2/PKGBUILD
new file mode 100644
index 000000000..03df23902
--- /dev/null
+++ b/multilib/lib32-gdk-pixbuf2/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 91063 2010-09-21 19:21:24Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=gdk-pixbuf2
+pkgname=lib32-$_pkgbasename
+pkgver=2.22.1
+pkgrel=1
+pkgdesc="An image loading library for gtk2 (32-bit)"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL2')
+depends=('lib32-glib2>=2.25.15'
+ lib32-lib{'png>=1.4.3','tiff>=3.9.4','jpeg>=8.0.2',x11}
+ $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool' '!docs')
+install=gdk-pixbuf2.install
+source=(http://download.gnome.org/sources/gdk-pixbuf/2.22/gdk-pixbuf-${pkgver}.tar.bz2)
+sha256sums=('6ce87eda24af9362307b2593c154d0b660f4e26d0abf2e71d46d0ddd55fd953d')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --without-libjasper \
+ --with-included-loaders=png
+ make
+}
+
+package() {
+ cd "${srcdir}/gdk-pixbuf-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gdk-pixbuf-query-loaders gdk-pixbuf-query-loaders-32
+ rm gdk-pixbuf-csource
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install b/multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install
new file mode 100644
index 000000000..92d58ef04
--- /dev/null
+++ b/multilib/lib32-gdk-pixbuf2/gdk-pixbuf2.install
@@ -0,0 +1,11 @@
+post_install() {
+ usr/bin/gdk-pixbuf-query-loaders-32 --update-cache
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f usr/lib32/gdk-pixbuf-2.0/2.10.0/loaders/loaders.cache
+}
diff --git a/multilib/lib32-giflib/PKGBUILD b/multilib/lib32-giflib/PKGBUILD
new file mode 100644
index 000000000..a311cfa8e
--- /dev/null
+++ b/multilib/lib32-giflib/PKGBUILD
@@ -0,0 +1,48 @@
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Baptiste Daroussin <baptiste.daroussin@gmail.com>
+# Contributor: Grigorios Bouzakis <grbzks[at]gmail[dot]com>
+# Contributor: mightyjaym <jm.ambrosino@free.fr>
+
+_pkgbasename=giflib
+pkgname=lib32-$_pkgbasename
+pkgver=4.1.6
+pkgrel=5
+pkgdesc="A library for reading and writing gif images (32-bit)"
+url="http://sourceforge.net/projects/giflib/"
+arch=('x86_64')
+license=('MIT')
+depends=('lib32-libx11' 'lib32-libsm' $_pkgbasename)
+makedepends=(gcc-multilib)
+provides=("lib32-libungif=${pkgver}")
+conflicts=('lib32-libungif')
+replaces=('lib32-libungif')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/giflib/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('7125644155ae6ad33dbc9fc15a14735f')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ # libungif compatibility - instructions taken from Redhat specfile
+ MAJOR=`echo ${pkgver} | sed 's/\([0-9]\+\)\..*/\1/'`
+ gcc -shared -Wl,-soname,libungif.so.${MAJOR} -Llib/.libs -lgif -o libungif.so.${pkgver}
+ install -m755 libungif.so.${pkgver} ${pkgdir}/usr/lib32/
+ ln -sf libungif.so.${pkgver} ${pkgdir}/usr/lib32/libungif.so.4
+ ln -sf libungif.so.4 ${pkgdir}/usr/lib32/libungif.so
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ install -m755 -d ${pkgdir}/usr/share/licenses
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-glew/PKGBUILD b/multilib/lib32-glew/PKGBUILD
new file mode 100644
index 000000000..ca8a47eaf
--- /dev/null
+++ b/multilib/lib32-glew/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 39623 2011-02-13 10:47:57Z bluewind $
+# Maintainer: Florian Pritz <flo@xinu.at>
+
+_pkgbasename=glew
+pkgname=lib32-$_pkgbasename
+pkgver=1.5.8
+pkgrel=2
+pkgdesc="A cross-platform C/C++ extension loading library (32 bit)"
+arch=('x86_64')
+url="http://glew.sourceforge.net"
+license=('BSD' 'MIT' 'GPL')
+depends=('lib32-libxmu' 'lib32-libxi' 'lib32-mesa' "$_pkgbasename>=$pkgver")
+makedepends=('gcc-multilib')
+source=(http://downloads.sourceforge.net/${_pkgbasename}/${_pkgbasename}-${pkgver}.tgz)
+md5sums=('342c8dc64fb9daa6af245b132e086bdd')
+sha1sums=('450946935faa20ac4950cb42ff025be2c1f7c22e')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ sed -i 's|CC = cc|CC = gcc -m32|' config/Makefile.linux
+ sed -i 's|LD = cc|LD = gcc -m32|' config/Makefile.linux
+ sed -i 's|lib64|lib32|' config/Makefile.linux
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make GLEW_DEST="${pkgdir}/usr" install
+ chmod 0755 "${pkgdir}/usr/lib32/libGLEW.so.${pkgver}"
+
+ rm -rf "${pkgdir}"/usr/{include,bin,lib32/libGLEW.a}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-glib/PKGBUILD b/multilib/lib32-glib/PKGBUILD
new file mode 100644
index 000000000..a863c66f6
--- /dev/null
+++ b/multilib/lib32-glib/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 29612 2010-10-17 13:00:45Z pschmitz $
+
+_pkgbasename=glib
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.10
+pkgrel=11
+pkgdesc="Common C routines used by Gtk+ and other libs (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('lib32-glibc' "${_pkgbasename}")
+makedepends=('gcc-multilib')
+options=('!libtool' '!docs')
+source=("ftp://ftp.gtk.org/pub/gtk/v1.2/${_pkgbasename}-${pkgver}.tar.gz"
+ 'gcc340.patch'
+ 'aclocal-fixes.patch')
+md5sums=('6fe30dad87c77b91b632def29dd69ef9'
+ '877b3330e822a4be69a0f8a8c268cfd7'
+ 'e52c4b88427b9785bb8049dbdc9ff6fb')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ patch -Np1 -i ../gcc340.patch
+ patch -Np0 -i ../aclocal-fixes.patch
+
+ ./configure --prefix=/usr \
+ --mandir=/usr/share/man \
+ --libdir=/usr/lib32 \
+ --infodir=/usr/share/info \
+ --host=x86_64-unknown-linux-gnu \
+ --target=x86_64-unknown-linux-gnu
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{share,include,bin,lib32/glib}
+}
diff --git a/multilib/lib32-glib/aclocal-fixes.patch b/multilib/lib32-glib/aclocal-fixes.patch
new file mode 100644
index 000000000..b064074aa
--- /dev/null
+++ b/multilib/lib32-glib/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- glib.m4.orig 2006-03-05 13:13:24.000000000 +0000
++++ glib.m4 2006-03-05 13:13:35.000000000 +0000
+@@ -5,7 +5,7 @@
+ dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or
+ dnl gthread is specified in MODULES, pass to glib-config
+ dnl
+-AC_DEFUN(AM_PATH_GLIB,
++AC_DEFUN([AM_PATH_GLIB],
+ [dnl
+ dnl Get the cflags and libraries from the glib-config script
+ dnl
diff --git a/multilib/lib32-glib/gcc340.patch b/multilib/lib32-glib/gcc340.patch
new file mode 100644
index 000000000..941111ae7
--- /dev/null
+++ b/multilib/lib32-glib/gcc340.patch
@@ -0,0 +1,15 @@
+diff -Naur glib-1.2.10.orig/glib.h glib-1.2.10/glib.h
+--- glib-1.2.10.orig/glib.h 2001-02-27 04:44:38.000000000 +0100
++++ glib-1.2.10/glib.h 2004-05-27 15:50:32.436527848 +0200
+@@ -271,8 +271,10 @@
+
+ /* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with
+ * macros, so we can refer to them as strings unconditionally.
++ *
++ * Unfortunately these are _not_ treated as strings anymore in GCC3.4.
+ */
+-#ifdef __GNUC__
++#if defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
+ #define G_GNUC_FUNCTION __FUNCTION__
+ #define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__
+ #else /* !__GNUC__ */
diff --git a/multilib/lib32-glib2/PKGBUILD b/multilib/lib32-glib2/PKGBUILD
new file mode 100644
index 000000000..e9fce3398
--- /dev/null
+++ b/multilib/lib32-glib2/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 36638 2011-01-05 16:58:45Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+_pkgbasename=glib2
+pkgname=lib32-$_pkgbasename
+pkgver=2.26.1
+pkgrel=2
+pkgdesc="Common C routines used by GTK+ 2.4 and other libs (32-bit)"
+url="http://www.gtk.org/"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-pcre' 'lib32-zlib' 'lib32-dbus-core' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool' '!docs')
+source=(http://ftp.gnome.org/pub/GNOME/sources/glib/2.26/glib-${pkgver}.tar.bz2)
+sha256sums=('7a74ff12b6b9dee1f2d0e520b56b68b621920c4f4250bdf23468e515625c28d5')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/glib-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32 \
+ --enable-static --enable-shared --with-pcre=system --disable-fam
+ make
+}
+
+package() {
+ cd "${srcdir}/glib-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/{etc,usr/{share,include}}
+
+ cd "${pkgdir}"/usr/bin
+ mv gio-querymodules gio-querymodules-32
+ rm -f gdbus glib* gobject-query gsettings gtester*
+}
diff --git a/multilib/lib32-glibc/PKGBUILD b/multilib/lib32-glibc/PKGBUILD
new file mode 100644
index 000000000..2308cb13a
--- /dev/null
+++ b/multilib/lib32-glibc/PKGBUILD
@@ -0,0 +1,123 @@
+# $Id: PKGBUILD 39932 2011-02-18 23:00:49Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuild with each new glibc version
+
+_pkgbasename=glibc
+pkgname=lib32-$_pkgbasename
+pkgver=2.13
+pkgrel=4
+_glibcdate=20110117
+pkgdesc="GNU C Library for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+depends=("glibc>=$pkgver")
+makedepends=('gcc-multilib>=4.4')
+options=('!strip' '!emptydirs')
+source=(http://mirrors.kernel.org/archlinux/other/glibc/${_pkgbasename}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.1-static-shared-getpagesize.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.13-prelink.patch
+ lib32-glibc.conf)
+md5sums=('b7b17d9c6b5b71b5e5322e04ca63c190'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '24dfab6fd244f3773523412588ecc52c'
+ '6e052f1cb693d5d3203f50f9d4e8c33b')
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+ patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+ # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+ patch -Np1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
+ # using Fedora "fix" as patch in that bug report causes breakages...
+ patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
+
+ # http://www.exploit-db.com/exploits/15274/
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12489
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=25b3aada (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.13-prelink.patch
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+
+ echo "slibdir=/usr/lib32" >> configparms
+
+ export CC="gcc -m32"
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib32 --libexecdir=/usr/lib32 \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --disable-multi-arch i686-unknown-linux-gnu
+
+ make
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm -rf ${pkgdir}/{etc,sbin,usr/{bin,sbin,share}}
+
+ # We need one 32 bit specific header file
+ find ${pkgdir}/usr/include -type f -not -name stubs-32.h -delete
+
+ # manually strip files as stripping libpthread-*.so and libthread_db.so
+ # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+ # valgrind on x86_64
+
+ cd $pkgdir
+ strip $STRIP_BINARIES usr/lib32/getconf/*
+
+ strip $STRIP_STATIC usr/lib32/*.a \
+ usr/lib32/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED usr/lib32/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ usr/lib32/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ usr/lib32/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ usr/lib32/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib32/{pt_chown,gconv/*.so}
+
+ # Dynamic linker
+ install -d -m755 ${pkgdir}/lib
+ ln -s ../usr/lib32/ld-linux.so.2 ${pkgdir}/lib/
+
+ # Add /usr/lib32 to the default library search path
+ install -Dm644 "$srcdir/lib32-glibc.conf" "$pkgdir/etc/ld.so.conf.d/lib32-glibc.conf"
+
+ # Symlink /usr/lib32/locale to /usr/lib/locale
+ ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
+}
diff --git a/multilib/lib32-glibc/glibc-2.10-bz4781.patch b/multilib/lib32-glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/multilib/lib32-glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/multilib/lib32-glibc/glibc-2.10-dont-build-timezone.patch b/multilib/lib32-glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/multilib/lib32-glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/multilib/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch b/multilib/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/multilib/lib32-glibc/glibc-2.12.1-static-shared-getpagesize.patch
@@ -0,0 +1,11 @@
+--- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+ #else
diff --git a/multilib/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/multilib/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/multilib/lib32-glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
@@ -0,0 +1,26 @@
+From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH 1/1] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 22a1635..7674d49 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.2
diff --git a/multilib/lib32-glibc/glibc-2.13-prelink.patch b/multilib/lib32-glibc/glibc-2.13-prelink.patch
new file mode 100644
index 000000000..bef7998a8
--- /dev/null
+++ b/multilib/lib32-glibc/glibc-2.13-prelink.patch
@@ -0,0 +1,26 @@
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 9a560b3..201c9cf 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2168,6 +2168,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ we need it in the memory handling later. */
+ GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
+
++ /* Remember the last search directory added at startup, now that
++ malloc will no longer be the one from dl-minimal.c. */
++ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
++
+ if (prelinked)
+ {
+ if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
+@@ -2288,10 +2292,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lossage);
+ }
+
+- /* Remember the last search directory added at startup, now that
+- malloc will no longer be the one from dl-minimal.c. */
+- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+-
+ if (! prelinked && rtld_multiple_ref)
+ {
+ /* There was an explicit ref to the dynamic linker as a shared lib.
diff --git a/multilib/lib32-glibc/glibc-__i686.patch b/multilib/lib32-glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/multilib/lib32-glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/multilib/lib32-glibc/lib32-glibc.conf b/multilib/lib32-glibc/lib32-glibc.conf
new file mode 100644
index 000000000..9b08c3f43
--- /dev/null
+++ b/multilib/lib32-glibc/lib32-glibc.conf
@@ -0,0 +1 @@
+/usr/lib32
diff --git a/multilib/lib32-gnutls/PKGBUILD b/multilib/lib32-gnutls/PKGBUILD
new file mode 100644
index 000000000..c9a313f09
--- /dev/null
+++ b/multilib/lib32-gnutls/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 35315 2010-12-18 20:32:19Z ibiru $
+# Maintainer: Biru Ionut <ionut@archlinux.ro
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+_pkgbasename=gnutls
+pkgname=lib32-$_pkgbasename
+pkgver=2.10.4
+pkgrel=1
+pkgdesc="A library which provides a secure layer over a reliable transport layer (32-bit)"
+arch=('x86_64')
+license=('GPL3' 'LGPL')
+url="http://www.gnu.org/software/gnutls/"
+options=('libtool')
+# uses built-in libtasn1 for the moment
+depends=(lib32-{gcc-libs,readline,libgcrypt,zlib})
+makedepends=('gcc-multilib')
+source=(ftp://ftp.gnu.org/gnu/gnutls/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('4e1517084018a8b1fdc96daabea40528')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --with-zlib --disable-guile
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+}
diff --git a/multilib/lib32-gtk/PKGBUILD b/multilib/lib32-gtk/PKGBUILD
new file mode 100644
index 000000000..bc1f236a4
--- /dev/null
+++ b/multilib/lib32-gtk/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 29612 2010-10-17 13:00:45Z pschmitz $
+
+_pkgbasename=gtk
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.10
+pkgrel=11
+pkgdesc="The GTK+ toolkit (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+license=('LGPL')
+depends=('lib32-libxi' 'lib32-glib' "${_pkgbasename}")
+makedepends=('gcc-multilib' 'lib32-libxt')
+options=('!libtool')
+source=("ftp://ftp.gtk.org/pub/gtk/v1.2/gtk+-${pkgver}.tar.gz"
+ 'aclocal-fixes.patch')
+md5sums=('4d5cb2fc7fb7830e4af9747a36bfce20'
+ 'c59d4906602d99a7468f7334b6fc3b4e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/gtk+-${pkgver}
+ patch -p0 -i ${srcdir}/aclocal-fixes.patch
+
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib32 \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --host=x86_64-unknown-linux-gnu \
+ --target=x86_64-unknown-linux-gnu \
+ --with-xinput=xfree
+ make
+}
+
+package() {
+ cd ${srcdir}/gtk+-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}/"{usr/{share,include,bin},etc}
+}
diff --git a/multilib/lib32-gtk/aclocal-fixes.patch b/multilib/lib32-gtk/aclocal-fixes.patch
new file mode 100644
index 000000000..dd2ffbd44
--- /dev/null
+++ b/multilib/lib32-gtk/aclocal-fixes.patch
@@ -0,0 +1,11 @@
+--- gtk.m4.orig 2006-03-05 13:18:09.000000000 +0000
++++ gtk.m4 2006-03-05 13:18:20.000000000 +0000
+@@ -4,7 +4,7 @@
+ dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+ dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_GTK,
++AC_DEFUN([AM_PATH_GTK],
+ [dnl
+ dnl Get the cflags and libraries from the gtk-config script
+ dnl
diff --git a/multilib/lib32-gtk2/PKGBUILD b/multilib/lib32-gtk2/PKGBUILD
new file mode 100644
index 000000000..60be9458c
--- /dev/null
+++ b/multilib/lib32-gtk2/PKGBUILD
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 33371 2010-11-24 00:05:20Z lcarlier $
+# Maintainer: Ionut Biru <ibiru@archlinux.org
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=gtk2
+pkgname=lib32-$_pkgbasename
+pkgver=2.22.1
+pkgrel=2
+pkgdesc="The GTK+ Toolkit (v2) (32-bit)"
+arch=('x86_64')
+url="http://www.gtk.org/"
+install=gtk2.install
+depends=(lib32-{'atk>=1.30.0','pango>=1.28.0','cairo>=1.10.0','heimdal>=1.3.2','gnutls>=2.8.6','gdk-pixbuf2>=2.22.1'}
+ lib32-lib{'cups>=1.4.4',xcursor,'xrandr>=1.3','xi>=1.3',xinerama,xcomposite,xdamage}
+ $_pkgbasename)
+makedepends=('pkgconfig' 'gcc-multilib')
+options=('!libtool' '!docs')
+license=('LGPL')
+source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.22/gtk+-${pkgver}.tar.bz2
+ xid-collision-debug.patch
+ gtk-modules-32.patch)
+sha256sums=('965bc124f0d25087c4cb2a64cbfd7e4f896e05be8d560fbba68dd8685ba24d07'
+ 'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+ '2effb13404442ae266d4c663347e88cd1ca19e9a83b452da1743bac16af9c7b0')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/gtk+-${pkgver}"
+ patch -Np1 -i "${srcdir}/xid-collision-debug.patch"
+ patch -p1 -i ${srcdir}/gtk-modules-32.patch
+
+ CXX=/bin/false ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libdir=/usr/lib32 \
+ --with-xinput=yes
+ make
+}
+
+package() {
+ cd "${srcdir}/gtk+-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/etc
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ cd "${pkgdir}"/usr/bin
+ mv gtk-query-immodules-2.0 gtk-query-immodules-2.0-32
+ rm -f gtk-builder-convert gtk-demo gtk-update-icon-cache
+}
diff --git a/multilib/lib32-gtk2/gtk-modules-32.patch b/multilib/lib32-gtk2/gtk-modules-32.patch
new file mode 100644
index 000000000..a2530c3bf
--- /dev/null
+++ b/multilib/lib32-gtk2/gtk-modules-32.patch
@@ -0,0 +1,12 @@
+diff -ur gtk+-2.20.1/gtk/gtkrc.c gtk+-2.20.1-32/gtk/gtkrc.c
+--- gtk+-2.20.1/gtk/gtkrc.c 2010-05-03 01:28:21.000000000 +0200
++++ gtk+-2.20.1-32/gtk/gtkrc.c 2010-08-26 07:22:42.316920033 +0200
+@@ -450,7 +450,7 @@
+ if (im_module_file)
+ result = g_strdup (im_module_file);
+ else
+- result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL);
++ result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules-32", NULL);
+ }
+
+ return result;
diff --git a/multilib/lib32-gtk2/gtk2.install b/multilib/lib32-gtk2/gtk2.install
new file mode 100644
index 000000000..49f86f550
--- /dev/null
+++ b/multilib/lib32-gtk2/gtk2.install
@@ -0,0 +1,16 @@
+post_install() {
+ GTK_PATH=/usr/lib32/gtk-2.0 usr/bin/gtk-query-immodules-2.0-32 > etc/gtk-2.0/gtk.immodules-32
+}
+
+pre_upgrade() {
+ pre_remove
+}
+
+post_upgrade() {
+ post_install
+}
+
+pre_remove() {
+ rm -f etc/gtk-2.0/gtk.immodules-32 &>/dev/null
+ rm -f etc/gtk-2.0/gdk-pixbuf.loaders-32 &>/dev/null
+}
diff --git a/multilib/lib32-gtk2/xid-collision-debug.patch b/multilib/lib32-gtk2/xid-collision-debug.patch
new file mode 100644
index 000000000..d61238c3b
--- /dev/null
+++ b/multilib/lib32-gtk2/xid-collision-debug.patch
@@ -0,0 +1,15 @@
+--- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
++++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
+@@ -56,10 +56,10 @@
+ if (!display_x11->xid_ht)
+ display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
+ (GEqualFunc) gdk_xid_equal);
+-
++/*
+ if (g_hash_table_lookup (display_x11->xid_ht, xid))
+ g_warning ("XID collision, trouble ahead");
+-
++*/
+ g_hash_table_insert (display_x11->xid_ht, xid, data);
+ }
+
diff --git a/multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch b/multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch
new file mode 100644
index 000000000..a551bdce1
--- /dev/null
+++ b/multilib/lib32-heimdal/001_all_heimdal-no_libedit.patch
@@ -0,0 +1,10 @@
+--- cf/krb-readline.m4 2005-06-16 18:28:32.000000000 +0200
++++ cf/krb-readline.m4 2005-06-27 23:17:06.000000000 +0200
+@@ -6,7 +6,6 @@
+ dnl el_init
+
+ AC_DEFUN([KRB_READLINE],[
+-AC_FIND_FUNC_NO_LIBS(el_init, edit, [], [], [$LIB_tgetent])
+ if test "$ac_cv_func_el_init" = yes ; then
+ AC_CACHE_CHECK(for four argument el_init, ac_cv_func_el_init_four,[
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
diff --git a/multilib/lib32-heimdal/002_all_heimal-fPIC.patch b/multilib/lib32-heimdal/002_all_heimal-fPIC.patch
new file mode 100644
index 000000000..c67dbae76
--- /dev/null
+++ b/multilib/lib32-heimdal/002_all_heimal-fPIC.patch
@@ -0,0 +1,12 @@
+--- lib/editline/Makefile.am 2005-06-16 18:28:44.000000000 +0200
++++ lib/editline/Makefile.am 2005-06-27 23:21:02.000000000 +0200
+@@ -41,6 +41,9 @@
+
+ EXTRA_DIST = $(man_MANS)
+
++$(libeditline_la_OBJECTS): %.lo: %.c
++ $(LTCOMPILE) -fPIC -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
++
+ snprintf.c:
+ $(LN_S) $(srcdir)/../roken/snprintf.c .
+ strdup.c:
diff --git a/multilib/lib32-heimdal/003_all_heimdal-rxapps.patch b/multilib/lib32-heimdal/003_all_heimdal-rxapps.patch
new file mode 100644
index 000000000..40fc05f08
--- /dev/null
+++ b/multilib/lib32-heimdal/003_all_heimdal-rxapps.patch
@@ -0,0 +1,22 @@
+--- appl/kx/rxtelnet.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxtelnet.in 2005-06-27 23:21:34.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxtelnet.in,v 1.31 2004/03/07 17:22:06 lha Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-fF] [-t args_to_telnet] [-x args_to_xterm] [-K args_to_kx] [-w term_emulator] [-b telnet_binary] [-n] [-v] [-h | --help] [--version] host [port]"
+-binary=telnet
++binary=ktelnet
+ term=
+ kx_args=-P
+ while true
+--- appl/kx/rxterm.in 2005-06-16 18:29:10.000000000 +0200
++++ appl/kx/rxterm.in 2005-06-27 23:21:55.000000000 +0200
+@@ -2,7 +2,7 @@
+ # $Id: rxterm.in,v 1.23 2002/03/18 17:37:34 joda Exp $
+ #
+ usage="Usage: $0 [-l username] [-k] [-f] [-r rsh_args] [-x xterm_args] [-K kx_args] [-w term_emulator] [-b rsh_binary][-v] [-h | --help] [--version] host"
+-binary=rsh
++binary=krsh
+ term=xterm
+ while true
+ do
diff --git a/multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch b/multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch
new file mode 100644
index 000000000..35a9ed9f6
--- /dev/null
+++ b/multilib/lib32-heimdal/005_all_heimdal-suid_fix.patch
@@ -0,0 +1,20 @@
+--- appl/su/Makefile.am 2005-06-16 18:27:46.000000000 +0200
++++ appl/su/Makefile.am 2005-06-27 23:25:21.000000000 +0200
+@@ -7,6 +7,7 @@
+ bin_PROGRAMS = su
+ bin_SUIDS = su
+ su_SOURCES = su.c supaths.h
++su_LDFLAGS = -Wl,-z,now
+ man_MANS = su.1
+
+ LDADD = $(LIB_kafs) \
+--- appl/otp/Makefile.am 2005-06-16 18:28:46.000000000 +0200
++++ appl/otp/Makefile.am 2005-06-27 23:25:40.000000000 +0200
+@@ -8,6 +8,7 @@
+ bin_SUIDS = otp
+ otp_SOURCES = otp.c otp_locl.h
+ otpprint_SOURCES = otpprint.c otp_locl.h
++otp_LDFLAGS = -Wl,-z,now
+
+ man_MANS = otp.1 otpprint.1
+
diff --git a/multilib/lib32-heimdal/012_all_heimdal-berkdb.patch b/multilib/lib32-heimdal/012_all_heimdal-berkdb.patch
new file mode 100644
index 000000000..46762c220
--- /dev/null
+++ b/multilib/lib32-heimdal/012_all_heimdal-berkdb.patch
@@ -0,0 +1,124 @@
+Binary files heimdal-0.7-old/cf/.find-func-no-libs2.m4.swp and heimdal-0.7/cf/.find-func-no-libs2.m4.swp differ
+Index: heimdal/cf/db.m4
+===================================================================
+--- heimdal.orig/cf/db.m4
++++ heimdal/cf/db.m4
+@@ -18,24 +18,13 @@ db_type=unknown
+
+ if test "$enable_berkeley_db" != no; then
+
+- AC_CHECK_HEADERS([ \
+- db4/db.h \
+- db3/db.h \
+- db.h \
+- db_185.h \
+- ])
++ AC_CHECK_HEADERS([db.h])
+
+ dnl db_create is used by db3 and db4
+
+- AC_FIND_FUNC_NO_LIBS(db_create, db4 db3 db, [
++ AC_FIND_FUNC_NO_LIBS(db_create, db, [
+ #include <stdio.h>
+- #ifdef HAVE_DB4_DB_H
+- #include <db4/db.h>
+- #elif defined(HAVE_DB3_DB_H)
+- #include <db3/db.h>
+- #else
+ #include <db.h>
+- #endif
+ ],[NULL, NULL, 0])
+
+ if test "$ac_cv_func_db_create" = "yes"; then
+@@ -50,17 +39,9 @@ dnl db_create is used by db3 and db4
+
+ dnl dbopen is used by db1/db2
+
+- AC_FIND_FUNC_NO_LIBS(dbopen, db2 db, [
++ AC_FIND_FUNC_NO_LIBS(dbopen, db, [
+ #include <stdio.h>
+- #if defined(HAVE_DB2_DB_H)
+- #include <db2/db.h>
+- #elif defined(HAVE_DB_185_H)
+- #include <db_185.h>
+- #elif defined(HAVE_DB_H)
+ #include <db.h>
+- #else
+- #error no db.h
+- #endif
+ ],[NULL, 0, 0, 0, NULL])
+
+ if test "$ac_cv_func_dbopen" = "yes"; then
+Index: heimdal/lib/hdb/db.c
+===================================================================
+--- heimdal.orig/lib/hdb/db.c
++++ heimdal/lib/hdb/db.c
+@@ -37,11 +37,7 @@ RCSID("$Id: db.c 20215 2007-02-09 21:59:
+
+ #if HAVE_DB1
+
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/hdb/db3.c
+===================================================================
+--- heimdal.orig/lib/hdb/db3.c
++++ heimdal/lib/hdb/db3.c
+@@ -37,13 +37,7 @@ RCSID("$Id: db3.c 21610 2007-07-17 07:10
+
+ #if HAVE_DB3
+
+-#ifdef HAVE_DB4_DB_H
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ static krb5_error_code
+ DB_close(krb5_context context, HDB *db)
+Index: heimdal/lib/roken/getcap.c
+===================================================================
+--- heimdal.orig/lib/roken/getcap.c
++++ heimdal/lib/roken/getcap.c
+@@ -38,11 +38,13 @@
+ #include "roken.h"
+ RCSID("$Id: getcap.c 16561 2006-01-13 14:25:32Z lha $");
+
++#if defined(HAVE_DBOPEN) && defined(HAVE_DB_H)
++#define USE_DB
++#endif
++
+ #include <sys/types.h>
+ #include <ctype.h>
+-#if defined(HAVE_DB_185_H)
+-#include <db_185.h>
+-#elif defined(HAVE_DB_H)
++#ifdef USE_DB
+ #include <db.h>
+ #endif
+ #include <errno.h>
+Index: heimdal/lib/roken/ndbm_wrap.c
+===================================================================
+--- heimdal.orig/lib/roken/ndbm_wrap.c
++++ heimdal/lib/roken/ndbm_wrap.c
+@@ -37,13 +37,7 @@ RCSID("$Id: ndbm_wrap.c 21634 2007-07-17
+ #endif
+
+ #include "ndbm_wrap.h"
+-#if defined(HAVE_DB4_DB_H)
+-#include <db4/db.h>
+-#elif defined(HAVE_DB3_DB_H)
+-#include <db3/db.h>
+-#else
+ #include <db.h>
+-#endif
+
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch b/multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch
new file mode 100644
index 000000000..19f879407
--- /dev/null
+++ b/multilib/lib32-heimdal/013_all_heimdal-pthread-lib.patch
@@ -0,0 +1,11 @@
+--- heimdal-0.7.1/cf/pthreads.m4.old 2005-09-09 12:12:28.000000000 +0000
++++ heimdal-0.7.1/cf/pthreads.m4 2005-09-17 22:23:23.000000000 +0000
+@@ -32,7 +32,7 @@
+ 2.*)
+ native_pthread_support=yes
+ PTHREADS_CFLAGS=-pthread
+- PTHREADS_LIBS=-pthread
++ PTHREADS_LIBS=-lpthread
+ ;;
+ esac
+ ;;
diff --git a/multilib/lib32-heimdal/014_all_heimdal-path.patch b/multilib/lib32-heimdal/014_all_heimdal-path.patch
new file mode 100644
index 000000000..36a86f1f9
--- /dev/null
+++ b/multilib/lib32-heimdal/014_all_heimdal-path.patch
@@ -0,0 +1,50 @@
+--- appl/rcp/rcp.c.old 2006-05-03 13:31:59.398493625 +0200
++++ appl/rcp/rcp.c 2006-05-03 13:32:04.494485981 +0200
+@@ -34,7 +34,7 @@
+ #include "rcp_locl.h"
+ #include <getarg.h>
+
+-#define RSH_PROGRAM "rsh"
++#define RSH_PROGRAM "krsh"
+
+ struct passwd *pwd;
+ uid_t userid;
+--- appl/rcp/rcp_locl.h.old 2006-05-03 02:30:31.602025409 +0200
++++ appl/rcp/rcp_locl.h 2006-05-03 02:30:35.886018983 +0200
+@@ -64,4 +64,4 @@
+ #define _PATH_CP "/bin/cp"
+ #endif
+ #undef _PATH_RSH
+-#define _PATH_RSH BINDIR "/rsh"
++#define _PATH_RSH BINDIR "/krsh"
+--- appl/telnet/telnetd/telnetd.h.old 2006-05-03 02:23:14.582680939 +0200
++++ appl/telnet/telnetd/telnetd.h 2006-05-03 02:23:23.746667193 +0200
+@@ -192,7 +192,7 @@
+ #endif
+
+ #undef _PATH_LOGIN
+-#define _PATH_LOGIN BINDIR "/login"
++#define _PATH_LOGIN BINDIR "/klogin"
+
+ /* fallbacks */
+
+--- appl/login/shadow.c.old 2006-05-05 06:31:29.517138115 +0200
++++ appl/login/shadow.c 2006-05-05 06:32:26.433052741 +0200
+@@ -38,7 +38,7 @@
+ #ifdef HAVE_SHADOW_H
+
+ #ifndef _PATH_CHPASS
+-#define _PATH_CHPASS "/usr/bin/passwd"
++#define _PATH_CHPASS "/usr/bin/kpasswd"
+ #endif
+
+ static int
+@@ -52,7 +52,7 @@
+ printf("fork /bin/passwd");
+ exit(1);
+ case 0:
+- execlp(_PATH_CHPASS, "passwd", who->pw_name, (char *) 0);
++ execlp(_PATH_CHPASS, "kpasswd", who->pw_name, (char *) 0);
+ exit(1);
+ default:
+ waitpid(pid, &status, 0);
diff --git a/multilib/lib32-heimdal/PKGBUILD b/multilib/lib32-heimdal/PKGBUILD
new file mode 100644
index 000000000..a60499d78
--- /dev/null
+++ b/multilib/lib32-heimdal/PKGBUILD
@@ -0,0 +1,69 @@
+# $Id: PKGBUILD 26560 2010-09-15 22:34:46Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: webjdm <web.jdm@gmail.com>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+
+_pkgbasename=heimdal
+pkgname=lib32-$_pkgbasename
+pkgver=1.3.3
+pkgrel=3
+pkgdesc="Implementation of Kerberos V5 libraries (32-bit)"
+arch=('x86_64')
+url="http://www.h5l.org/"
+license=('custom')
+depends=('lib32-e2fsprogs' 'lib32-openssl' 'lib32-db' lib32-sqlite3 $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool' '!emptydirs')
+source=(http://www.h5l.org/dist/src/${_pkgbasename}-${pkgver}.tar.gz
+ 001_all_heimdal-no_libedit.patch
+ 002_all_heimal-fPIC.patch
+ 003_all_heimdal-rxapps.patch
+ 005_all_heimdal-suid_fix.patch
+ 012_all_heimdal-berkdb.patch
+ 013_all_heimdal-pthread-lib.patch
+ 014_all_heimdal-path.patch)
+md5sums=('963c09f1b14c41660be70b55fae9f163'
+ '98e28f11f906c967aac22d6184102c9e'
+ '6d5571bdedba2e2423b90bccdbac2c0a'
+ '2feec3924ee5230b54175b4d4000c872'
+ '45aeb207f360f9f4e9e0fabc8bfeecbc'
+ '56f5d10d0ec40f2fda82ef144ffac1e0'
+ '1b8665b771c4eb6b56ea8582c96e56e3'
+ '8208ae8c0b6ff5ab4f64af1693e9e396')
+
+build() {
+ cd ${srcdir}/heimdal-${pkgver}
+ patch -Np0 -i ${srcdir}/001_all_heimdal-no_libedit.patch
+ patch -Np0 -i ${srcdir}/002_all_heimal-fPIC.patch
+ patch -Np0 -i ${srcdir}/003_all_heimdal-rxapps.patch
+ patch -Np0 -i ${srcdir}/005_all_heimdal-suid_fix.patch
+ patch -Np1 -i ${srcdir}/012_all_heimdal-berkdb.patch
+ patch -Np1 -i ${srcdir}/013_all_heimdal-pthread-lib.patch
+ patch -Np0 -i ${srcdir}/014_all_heimdal-path.patch
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ libtoolize --force
+ aclocal -I cf
+ autoconf
+ automake
+
+ ./configure --prefix=/usr --enable-shared=yes --without-x \
+ --libdir=/usr/lib32 \
+ --with-openssl-lib=/usr/lib32 \
+ --with-readline-lib=/usr/lib32 \
+ --with-readline-include=/usr/include/readline \
+ --with-sqlite3-lib=/usr/lib32 \
+ --with-sqlite3-include=/usr/include
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{etc,bin,sbin,include,share,libexec}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-jack/PKGBUILD b/multilib/lib32-jack/PKGBUILD
new file mode 100644
index 000000000..067f0eb1e
--- /dev/null
+++ b/multilib/lib32-jack/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 41464 2011-03-06 21:01:51Z schiv $
+# Maintainer: tobias <tobias@archlinux.net>
+# Maintainer: Ray Rashif <schivmeister@gmail.com>
+# Contributor: Robert Emil Berge <robert@rebi.no>
+
+_pkgbasename=jack
+pkgname=lib32-$_pkgbasename
+_longname=jack-audio-connection-kit
+pkgver=0.120.1
+pkgrel=1
+pkgdesc="A low-latency audio server (32-bit)"
+arch=('x86_64')
+license=('GPL' 'LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+url="http://jackaudio.org/"
+options=('!libtool')
+source=(http://jackaudio.org/downloads/${_longname}-${pkgver}.tar.gz)
+md5sums=('e45bab906be64e4e2752cbd855a8efd5')
+
+build() {
+ cd ${srcdir}/${_longname}-${pkgver}
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make -C libjack
+}
+
+package() {
+ cd ${srcdir}/${_longname}-${pkgver}
+
+ make DESTDIR=${pkgdir} install-pkgconfigDATA
+ make -C libjack DESTDIR=${pkgdir} install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/lib32-lcms/PKGBUILD b/multilib/lib32-lcms/PKGBUILD
new file mode 100644
index 000000000..8d1c5279f
--- /dev/null
+++ b/multilib/lib32-lcms/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26566 2010-09-15 22:35:39Z bluewind $
+# Maintainer: Tobias Kieslich <neri@archlinux.org>
+# Contributor: Ben <contrasutra@myrealbox.com>
+
+_pkgbasename=lcms
+pkgname=lib32-$_pkgbasename
+pkgver=1.19
+pkgrel=3
+pkgdesc="Lightweight color management development library/engine (32-bit)"
+arch=(x86_64)
+license=('custom')
+depends=('lib32-libtiff>=3.9.4' $_pkgbasename)
+makedepends=(gcc-multilib)
+url="http://www.littlecms.com"
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('8af94611baf20d9646c7c2c285859818')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libasyncns/PKGBUILD b/multilib/lib32-libasyncns/PKGBUILD
new file mode 100644
index 000000000..83a1aae24
--- /dev/null
+++ b/multilib/lib32-libasyncns/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26569 2010-09-15 22:36:05Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: Eric Belanger <belanger@astro.umontreal.ca>
+# Contributor: William Rea <sillywilly@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+_pkgbasename=libasyncns
+pkgname=lib32-$_pkgbasename
+pkgver=0.8
+pkgrel=5
+pkgdesc="A C library for Linux/Unix for executing name service queries asynchronously (32-bit)"
+arch=(x86_64)
+url="http://0pointer.de/lennart/projects/libasyncns"
+license=('LGPL')
+options=('!libtool')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://0pointer.de/lennart/projects/libasyncns/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('1f553d6ce1ad255bc83b3d8e9384f515')
+
+build() {
+ cd ${srcdir}/libasyncns-${pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ # Fix libdir
+ sed -i '/^libdir=/s:/lib:/lib32:' *.pc.in
+
+ ./configure --prefix=/usr --disable-lynx --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libasyncns-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{include,share}
+}
diff --git a/multilib/lib32-libcanberra/PKGBUILD b/multilib/lib32-libcanberra/PKGBUILD
new file mode 100644
index 000000000..0a9eaed3b
--- /dev/null
+++ b/multilib/lib32-libcanberra/PKGBUILD
@@ -0,0 +1,57 @@
+# $Id: PKGBUILD 35301 2010-12-18 02:01:34Z heftig $
+# Maintainer: Florian Pritz <flo@xssn.at>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libcanberra
+pkgbase=lib32-$_pkgbasename
+pkgname=(lib32-libcanberra lib32-libcanberra-pulse)
+pkgver=0.26
+pkgrel=3
+pkgdesc="A small and lightweight implementation of the XDG Sound Theme Specification (32-bit)"
+arch=(x86_64)
+license=('LGPL')
+depends=('lib32-libvorbis>=1.3.1' 'lib32-libtool>=2.2.10' 'lib32-gtk2>=2.21.8' 'lib32-alsa-lib>=1.0.23' 'lib32-tdb>=1.2.1' $_pkgbasename)
+makedepends=('gtk-doc' lib32-libpulse gcc-multilib libtool-multilib)
+options=(!emptydirs)
+url=http://0pointer.de/lennart/projects/libcanberra
+source=("$url/$_pkgbasename-$pkgver.tar.gz")
+md5sums=('ee2c66ada7c851a4e7b6eb1682285a24')
+
+build() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --sysconfdir=/etc --prefix=/usr --localstatedir=/var \
+ --disable-static --with-builtin=dso --enable-null --disable-oss \
+ --enable-alsa --disable-gstreamer --enable-pulse \
+ --libdir=/usr/lib32
+ make
+}
+
+package_lib32-libcanberra() {
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ make -j1 DESTDIR="${pkgdir}" install
+ rm -f "${pkgdir}/usr/lib32/libcanberra-gtk.la"
+ rm -f "${pkgdir}/usr/lib32/gtk-2.0/modules/"*.la
+
+
+ # Split libcanberra-pulse
+ mkdir pulse-plugin
+ mv "${pkgdir}"/usr/lib32/${_pkgbasename}-${pkgver}/${_pkgbasename}-pulse.* pulse-plugin
+
+ rm -rf "${pkgdir}"/{etc,usr/{include,share,bin}}
+}
+
+package_lib32-libcanberra-pulse() {
+ pkgdesc="PulseAudio plugin for libcanberra (32-bit)"
+ depends=("$pkgbase=$pkgver-$pkgrel" 'lib32-libpulse')
+
+ cd "$srcdir/$_pkgbasename-$pkgver"
+
+ mkdir -p "${pkgdir}/usr/lib32/${_pkgbasename}-${pkgver}"
+ mv pulse-plugin/* "${pkgdir}/usr/lib32/${_pkgbasename}-${pkgver}"
+}
diff --git a/multilib/lib32-libcap/PKGBUILD b/multilib/lib32-libcap/PKGBUILD
new file mode 100644
index 000000000..465de6153
--- /dev/null
+++ b/multilib/lib32-libcap/PKGBUILD
@@ -0,0 +1,26 @@
+#$Id: PKGBUILD 64614 2010-01-21 11:40:53Z allan $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+
+_pkgbasename=libcap
+pkgname=lib32-$_pkgbasename
+pkgver=2.19
+pkgrel=4
+pkgdesc="POSIX 1003.1e capabilities (32-bit)"
+arch=(x86_64)
+url="http://www.kernel.org/pub/linux/libs/security/linux-privs/"
+license=('GPL')
+depends=('lib32-attr' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('9caa6dafc9e3db4cbaecdb8e48f23fa2')
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ make -C libcap CC="gcc -m32" prefix=/usr lib=lib32 DESTDIR=${pkgdir} install
+ chmod 755 ${pkgdir}/usr/lib32/libcap.so.${pkgver}
+
+ rm -rf "${pkgdir}/usr/include"
+}
diff --git a/multilib/lib32-libcups/PKGBUILD b/multilib/lib32-libcups/PKGBUILD
new file mode 100644
index 000000000..bb32ba425
--- /dev/null
+++ b/multilib/lib32-libcups/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 32274 2010-11-13 00:50:15Z heftig $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgbasename=libcups
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.5
+pkgrel=1
+pkgdesc="The CUPS Printing System - client libraries (32-bit)"
+arch=('x86_64')
+license=('GPL')
+url="http://www.cups.org/"
+depends=(lib32-glibc $_pkgbasename)
+makedepends=(gcc-multilib)
+source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2)
+md5sums=('50729f6fc46ba54223e0eaf5009f3419')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/cups-${pkgver}
+
+ aclocal -I config-scripts
+ autoconf -I config-scripts
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --disable-ldap --enable-raw-printing --disable-gssapi --disable-dbus \
+ --enable-ssl=no --disable-gnutls --disable-threads \
+ --with-optim="$CFLAGS" --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/cups-${pkgver}
+ make BUILDROOT=${pkgdir} install-libs
+}
+
diff --git a/multilib/lib32-libdrm/PKGBUILD b/multilib/lib32-libdrm/PKGBUILD
new file mode 100644
index 000000000..d178f7bb3
--- /dev/null
+++ b/multilib/lib32-libdrm/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 39076 2011-02-06 10:56:39Z ibiru $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libdrm
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.23
+pkgrel=1
+pkgdesc="Userspace interface to kernel DRM services (32-bit)"
+arch=(x86_64)
+license=('custom')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2
+ no-pthread-stubs.patch)
+md5sums=('7577ff36ec364d88fae466d4f7fc5fc6'
+ '9b5ec3bbebe86921e2057694c42f65b8')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+ libtoolize --force
+ aclocal
+ autoconf
+ automake
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --enable-intel --enable-radeon \
+ --enable-vmwgfx-experimental-api --enable-nouveau-experimental-api \
+ --enable-udev
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libdrm/git_nouveau.diff b/multilib/lib32-libdrm/git_nouveau.diff
new file mode 100644
index 000000000..034eded01
--- /dev/null
+++ b/multilib/lib32-libdrm/git_nouveau.diff
@@ -0,0 +1,327 @@
+From 09b1062628f2cbddb3ebae20e7b3b8a0a93acebf Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Tue, 28 Sep 2010 20:45:27 +0000
+Subject: nouveau: Let the user choose the push buffer size.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+Acked-by: Ben Skeggs <bskeggs@redhat.com>
+---
+diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
+index 40a0b34..ded5424 100644
+--- a/nouveau/nouveau_channel.c
++++ b/nouveau/nouveau_channel.c
+@@ -28,7 +28,8 @@
+
+ int
+ nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma,
+- uint32_t tt_ctxdma, struct nouveau_channel **chan)
++ uint32_t tt_ctxdma, int pushbuf_size,
++ struct nouveau_channel **chan)
+ {
+ struct nouveau_device_priv *nvdev = nouveau_device(dev);
+ struct nouveau_channel_priv *nvchan;
+@@ -90,7 +91,7 @@ nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma,
+ return ret;
+ }
+
+- ret = nouveau_pushbuf_init(&nvchan->base);
++ ret = nouveau_pushbuf_init(&nvchan->base, pushbuf_size);
+ if (ret) {
+ nouveau_channel_free((void *)&nvchan);
+ return ret;
+diff --git a/nouveau/nouveau_channel.h b/nouveau/nouveau_channel.h
+index ddcf8e4..d61a4c0 100644
+--- a/nouveau/nouveau_channel.h
++++ b/nouveau/nouveau_channel.h
+@@ -49,7 +49,7 @@ struct nouveau_channel {
+
+ int
+ nouveau_channel_alloc(struct nouveau_device *, uint32_t fb, uint32_t tt,
+- struct nouveau_channel **);
++ int pushbuf_size, struct nouveau_channel **);
+
+ void
+ nouveau_channel_free(struct nouveau_channel **);
+diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
+index 5a952f7..4c53534 100644
+--- a/nouveau/nouveau_private.h
++++ b/nouveau/nouveau_private.h
+@@ -37,8 +37,8 @@
+ #include "nouveau_pushbuf.h"
+ #include "nouveau_reloc.h"
+
+-#define CALPB_BUFFERS 4
+-#define CALPB_BUFSZ 16384
++#define CALPB_BUFFERS 3
++
+ struct nouveau_pushbuf_priv {
+ uint32_t cal_suffix0;
+ uint32_t cal_suffix1;
+@@ -64,7 +64,7 @@ struct nouveau_pushbuf_priv {
+ #define nouveau_pushbuf(n) ((struct nouveau_pushbuf_priv *)(n))
+
+ int
+-nouveau_pushbuf_init(struct nouveau_channel *);
++nouveau_pushbuf_init(struct nouveau_channel *, int buf_size);
+ void
+ nouveau_pushbuf_fini(struct nouveau_channel *);
+
+diff --git a/nouveau/nouveau_pushbuf.c b/nouveau/nouveau_pushbuf.c
+index 28b8018..90836bc 100644
+--- a/nouveau/nouveau_pushbuf.c
++++ b/nouveau/nouveau_pushbuf.c
+@@ -78,7 +78,7 @@ nouveau_pushbuf_fini_call(struct nouveau_channel *chan)
+ }
+
+ static int
+-nouveau_pushbuf_init_call(struct nouveau_channel *chan)
++nouveau_pushbuf_init_call(struct nouveau_channel *chan, int buf_size)
+ {
+ struct drm_nouveau_gem_pushbuf req;
+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
+@@ -101,7 +101,7 @@ nouveau_pushbuf_init_call(struct nouveau_channel *chan)
+
+ for (i = 0; i < CALPB_BUFFERS; i++) {
+ ret = nouveau_bo_new(dev, flags | NOUVEAU_BO_MAP,
+- 0, CALPB_BUFSZ, &nvpb->buffer[i]);
++ 0, buf_size, &nvpb->buffer[i]);
+ if (ret) {
+ nouveau_pushbuf_fini_call(chan);
+ return ret;
+@@ -114,13 +114,13 @@ nouveau_pushbuf_init_call(struct nouveau_channel *chan)
+ }
+
+ int
+-nouveau_pushbuf_init(struct nouveau_channel *chan)
++nouveau_pushbuf_init(struct nouveau_channel *chan, int buf_size)
+ {
+ struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
+ struct nouveau_pushbuf_priv *nvpb = &nvchan->pb;
+ int ret;
+
+- ret = nouveau_pushbuf_init_call(chan);
++ ret = nouveau_pushbuf_init_call(chan, buf_size);
+ if (ret)
+ return ret;
+
+--
+cgit v0.8.3-6-g21f6
+From 1b9187c43a0c17600611edb9e299141748e87974 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Tue, 28 Sep 2010 20:47:11 +0000
+Subject: nouveau: Define buffer object usage flags.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+Acked-by: Ben Skeggs <bskeggs@redhat.com>
+---
+diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
+index fe917de..f115eab 100644
+--- a/include/drm/nouveau_drm.h
++++ b/include/drm/nouveau_drm.h
+@@ -80,6 +80,7 @@ struct drm_nouveau_gpuobj_free {
+ #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12
+ #define NOUVEAU_GETPARAM_GRAPH_UNITS 13
+ #define NOUVEAU_GETPARAM_PTIMER_TIME 14
++#define NOUVEAU_GETPARAM_HAS_BO_USAGE 15
+ struct drm_nouveau_getparam {
+ uint64_t param;
+ uint64_t value;
+@@ -95,6 +96,12 @@ struct drm_nouveau_setparam {
+ #define NOUVEAU_GEM_DOMAIN_GART (1 << 2)
+ #define NOUVEAU_GEM_DOMAIN_MAPPABLE (1 << 3)
+
++#define NOUVEAU_GEM_TILE_LAYOUT_MASK 0x0000ff00
++#define NOUVEAU_GEM_TILE_16BPP 0x00000001
++#define NOUVEAU_GEM_TILE_32BPP 0x00000002
++#define NOUVEAU_GEM_TILE_ZETA 0x00000004
++#define NOUVEAU_GEM_TILE_NONCONTIG 0x00000008
++
+ struct drm_nouveau_gem_info {
+ uint32_t handle;
+ uint32_t domain;
+diff --git a/nouveau/nouveau_bo.c b/nouveau/nouveau_bo.c
+index 32b23b6..c1432b0 100644
+--- a/nouveau/nouveau_bo.c
++++ b/nouveau/nouveau_bo.c
+@@ -52,7 +52,8 @@ nouveau_bo_info(struct nouveau_bo_priv *nvbo, struct drm_nouveau_gem_info *arg)
+ nvbo->offset = arg->offset;
+ nvbo->map_handle = arg->map_handle;
+ nvbo->base.tile_mode = arg->tile_mode;
+- nvbo->base.tile_flags = arg->tile_flags;
++ /* XXX - flag inverted for backwards compatibility */
++ nvbo->base.tile_flags = arg->tile_flags ^ NOUVEAU_GEM_TILE_NONCONTIG;
+ return 0;
+ }
+
+@@ -140,6 +141,10 @@ nouveau_bo_kalloc(struct nouveau_bo_priv *nvbo, struct nouveau_channel *chan)
+
+ info->tile_mode = nvbo->base.tile_mode;
+ info->tile_flags = nvbo->base.tile_flags;
++ /* XXX - flag inverted for backwards compatibility */
++ info->tile_flags ^= NOUVEAU_GEM_TILE_NONCONTIG;
++ if (!nvdev->has_bo_usage)
++ info->tile_flags &= NOUVEAU_GEM_TILE_LAYOUT_MASK;
+
+ ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_NEW,
+ &req, sizeof(req));
+diff --git a/nouveau/nouveau_bo.h b/nouveau/nouveau_bo.h
+index 1e77ab0..3a1f2d4 100644
+--- a/nouveau/nouveau_bo.h
++++ b/nouveau/nouveau_bo.h
+@@ -39,6 +39,12 @@
+ #define NOUVEAU_BO_IFLUSH (1 << 15)
+ #define NOUVEAU_BO_DUMMY (1 << 31)
+
++#define NOUVEAU_BO_TILE_LAYOUT_MASK 0x0000ff00
++#define NOUVEAU_BO_TILE_16BPP 0x00000001
++#define NOUVEAU_BO_TILE_32BPP 0x00000002
++#define NOUVEAU_BO_TILE_ZETA 0x00000004
++#define NOUVEAU_BO_TILE_SCANOUT 0x00000008
++
+ struct nouveau_bo {
+ struct nouveau_device *device;
+ uint32_t handle;
+diff --git a/nouveau/nouveau_device.c b/nouveau/nouveau_device.c
+index 9a091fb..2ffcba6 100644
+--- a/nouveau/nouveau_device.c
++++ b/nouveau/nouveau_device.c
+@@ -95,6 +95,11 @@ nouveau_device_open_existing(struct nouveau_device **dev, int close,
+ }
+ nvdev->base.chipset = value;
+
++ ret = nouveau_device_get_param(&nvdev->base,
++ NOUVEAU_GETPARAM_HAS_BO_USAGE, &value);
++ if (!ret)
++ nvdev->has_bo_usage = value;
++
+ *dev = &nvdev->base;
+ return 0;
+ }
+diff --git a/nouveau/nouveau_drmif.h b/nouveau/nouveau_drmif.h
+index bc860d2..ec226a2 100644
+--- a/nouveau/nouveau_drmif.h
++++ b/nouveau/nouveau_drmif.h
+@@ -35,6 +35,7 @@ struct nouveau_device_priv {
+ drm_context_t ctx;
+ drmLock *lock;
+ int needs_close;
++ int has_bo_usage;
+ };
+ #define nouveau_device(n) ((struct nouveau_device_priv *)(n))
+
+--
+cgit v0.8.3-6-g21f6
+From c5286f4a871e054b63dee8a60a6f06574c4ca1b8 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Thu, 21 Oct 2010 21:02:43 +0000
+Subject: nouveau: Define the HAS_PAGEFLIP getparam.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+---
+diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
+index f115eab..b18cad0 100644
+--- a/include/drm/nouveau_drm.h
++++ b/include/drm/nouveau_drm.h
+@@ -81,6 +81,7 @@ struct drm_nouveau_gpuobj_free {
+ #define NOUVEAU_GETPARAM_GRAPH_UNITS 13
+ #define NOUVEAU_GETPARAM_PTIMER_TIME 14
+ #define NOUVEAU_GETPARAM_HAS_BO_USAGE 15
++#define NOUVEAU_GETPARAM_HAS_PAGEFLIP 16
+ struct drm_nouveau_getparam {
+ uint64_t param;
+ uint64_t value;
+--
+cgit v0.8.3-6-g21f6
+From d0a4f2e292e5b347f7e5ee2cdbe4f077986eb9da Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Sun, 31 Oct 2010 00:22:29 +0000
+Subject: nouveau: Avoid unnecessary call to CPU_FINI.
+
+nouveau_bo_unmap called the CPU_FINI IOCTL even if it was a NOSYNC
+mapping. It caused no harmful effects (actually CPU_FINI is a no-op on
+recent enough kernels) besides the precious CPU cycles being wasted.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+---
+diff --git a/nouveau/nouveau_bo.c b/nouveau/nouveau_bo.c
+index c1432b0..d6bb22d 100644
+--- a/nouveau/nouveau_bo.c
++++ b/nouveau/nouveau_bo.c
+@@ -434,6 +434,8 @@ nouveau_bo_map_range(struct nouveau_bo *bo, uint32_t delta, uint32_t size,
+ (flags & NOUVEAU_BO_NOWAIT), 0);
+ if (ret)
+ return ret;
++
++ nvbo->map_refcnt++;
+ }
+
+ bo->map = (char *)nvbo->map + delta;
+@@ -458,13 +460,14 @@ nouveau_bo_unmap(struct nouveau_bo *bo)
+ {
+ struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+
+- if (bo->map && !nvbo->sysmem) {
++ if (bo->map && !nvbo->sysmem && nvbo->map_refcnt) {
+ struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
+ struct drm_nouveau_gem_cpu_fini req;
+
+ req.handle = nvbo->handle;
+ drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_CPU_FINI,
+ &req, sizeof(req));
++ nvbo->map_refcnt--;
+ }
+
+ bo->map = NULL;
+diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
+index 4c53534..124fe87 100644
+--- a/nouveau/nouveau_private.h
++++ b/nouveau/nouveau_private.h
+@@ -115,6 +115,7 @@ struct nouveau_bo_priv {
+ uint32_t global_handle;
+ drm_handle_t handle;
+ uint64_t map_handle;
++ int map_refcnt;
+ void *map;
+
+ /* Last known information from kernel on buffer status */
+--
+cgit v0.8.3-6-g21f6
+From d17681d538ce86a3f8d6d1c7407df3ceb2bcc499 Mon Sep 17 00:00:00 2001
+From: Francisco Jerez <currojerez@riseup.net>
+Date: Sat, 20 Nov 2010 13:32:45 +0000
+Subject: nouveau: Add implicit pushbuf flush before gpuobj destruction.
+
+It makes sure that GPU object destruction is executed in order with
+respect to the previous FIFO commands.
+
+Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+Acked-by: Ben Skeggs <bskeggs@redhat.com>
+---
+diff --git a/nouveau/nouveau_grobj.c b/nouveau/nouveau_grobj.c
+index 2b6e53a..df2ffb9 100644
+--- a/nouveau/nouveau_grobj.c
++++ b/nouveau/nouveau_grobj.c
+@@ -99,6 +99,8 @@ nouveau_grobj_free(struct nouveau_grobj **grobj)
+ if (nvgrobj->base.grclass) {
+ struct drm_nouveau_gpuobj_free f;
+
++ FIRE_RING(&chan->base);
++
+ f.channel = chan->drm.channel;
+ f.handle = nvgrobj->base.handle;
+ drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE,
+diff --git a/nouveau/nouveau_notifier.c b/nouveau/nouveau_notifier.c
+index f8cfd8b..513fa63 100644
+--- a/nouveau/nouveau_notifier.c
++++ b/nouveau/nouveau_notifier.c
+@@ -80,6 +80,8 @@ nouveau_notifier_free(struct nouveau_notifier **notifier)
+ nvchan = nouveau_channel(nvnotify->base.channel);
+ nvdev = nouveau_device(nvchan->base.device);
+
++ FIRE_RING(&nvchan->base);
++
+ f.channel = nvchan->drm.channel;
+ f.handle = nvnotify->base.handle;
+ drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GPUOBJ_FREE, &f, sizeof(f));
+--
+cgit v0.8.3-6-g21f6
diff --git a/multilib/lib32-libdrm/no-pthread-stubs.patch b/multilib/lib32-libdrm/no-pthread-stubs.patch
new file mode 100644
index 000000000..6602f8785
--- /dev/null
+++ b/multilib/lib32-libdrm/no-pthread-stubs.patch
@@ -0,0 +1,65 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev],
+--- libdrm-2.4.16/intel/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/intel/Makefile.am.new 2009-12-07 08:11:32.235748069 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @CLOCK_LIB@
+
+ libdrm_intel_la_SOURCES = \
+ intel_atomic.h \
+--- libdrm-2.4.16/radeon/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/radeon/Makefile.am.new 2009-12-07 08:12:31.889075388 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/radeon \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
+ libdrm_radeon_ladir = $(libdir)
+ libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_radeon_la_LIBADD = ../libdrm.la
+
+ libdrm_radeon_la_SOURCES = \
+ radeon_bo_gem.c \
+--- libdrm-2.4.16/nouveau/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/nouveau/Makefile.am.new 2009-12-07 08:13:01.489072320 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+
+ libdrm_nouveau_la_SOURCES = \
+ nouveau_device.c \
diff --git a/multilib/lib32-libgcrypt/PKGBUILD b/multilib/lib32-libgcrypt/PKGBUILD
new file mode 100644
index 000000000..e266ea00c
--- /dev/null
+++ b/multilib/lib32-libgcrypt/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 26587 2010-09-15 22:38:34Z bluewind $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+_pkgbasename=libgcrypt
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.6
+pkgrel=3
+pkgdesc="a general purpose crypto library based on the code used (32-bit)"
+arch=(x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('lib32-libgpg-error>=1.7' $_pkgbasename)
+makedepends=(gcc-multilib libtool-multilib)
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${_pkgbasename}-${pkgver}.tar.bz2
+)
+md5sums=('dbf99425a4fe9217c84ce3a35d938634')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ # Use 32-bit assembler
+ sed 's:path="amd64":path="i586 i386":' -i mpi/config.links
+
+ # keep static library for , needed for cryptsetup
+ ./configure --prefix=/usr --disable-padlock-support --libdir=/usr/lib32 --enable-shared
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin,sbin}
+}
diff --git a/multilib/lib32-libgpg-error/PKGBUILD b/multilib/lib32-libgpg-error/PKGBUILD
new file mode 100644
index 000000000..6467c668a
--- /dev/null
+++ b/multilib/lib32-libgpg-error/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26590 2010-09-15 22:39:01Z bluewind $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+_pkgbasename=libgpg-error
+pkgname=lib32-$_pkgbasename
+pkgver=1.9
+pkgrel=4
+pkgdesc="Support library for libgcrypt (32-bit)"
+arch=(x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/libgpg-error/${_pkgbasename}-${pkgver}.tar.bz2)
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('521b98aa9395e7eaf0ef2236233a0796')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}"/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}"/${_pkgbasename}-${pkgver}
+ make DESTDIR="${pkgdir}/" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-libice/PKGBUILD b/multilib/lib32-libice/PKGBUILD
new file mode 100644
index 000000000..6e65dd044
--- /dev/null
+++ b/multilib/lib32-libice/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 31526 2010-11-01 23:47:50Z heftig $
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libice
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.7
+pkgrel=1
+pkgdesc="X11 Inter-Client Exchange library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('lib32-glibc' 'xproto>=7.0.18' $_pkgbasename)
+makedepends=('pkgconfig' 'xtrans>=1.2.5' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libICE-${pkgver}.tar.bz2)
+license=('custom')
+sha1sums=('c7d0f4c5b0e999385445b8be1bc89aec4e5de71d')
+
+build() {
+ cd "${srcdir}/libICE-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+
+ make
+}
+
+package() {
+ cd "${srcdir}/libICE-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libjpeg/PKGBUILD b/multilib/lib32-libjpeg/PKGBUILD
new file mode 100644
index 000000000..46c3ad07e
--- /dev/null
+++ b/multilib/lib32-libjpeg/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 38658 2011-01-30 08:53:28Z bluewind $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+_pkgbasename=libjpeg
+pkgname=lib32-$_pkgbasename
+pkgver=8.3.0
+_pkgver=8c
+pkgrel=1
+pkgdesc="Library of JPEG support functions (32-bit)"
+arch=('x86_64')
+url="http://www.ijg.org/"
+license=('custom')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('libtool' 'gcc-multilib')
+options=('!libtool')
+source=(http://www.ijg.org/files/jpegsrc.v${_pkgver}.tar.gz)
+md5sums=('a2c10c04f396a9ce72894beb18b4e1f9')
+
+build() {
+ cd $srcdir/jpeg-${_pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --enable-shared --enable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/jpeg-${_pkgver}
+ make DESTDIR="$pkgdir" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libldap/PKGBUILD b/multilib/lib32-libldap/PKGBUILD
new file mode 100644
index 000000000..2ea6c2202
--- /dev/null
+++ b/multilib/lib32-libldap/PKGBUILD
@@ -0,0 +1,61 @@
+# $Id: PKGBUILD 26599 2010-09-15 22:40:16Z bluewind $
+# Maintainer:
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+_pkgbasename=libldap
+pkgname=lib32-$_pkgbasename
+pkgver=2.4.22
+pkgrel=3
+pkgdesc="Lightweight Directory Access Protocol (LDAP) client libraries (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://www.openldap.org/"
+depends=('lib32-openssl' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=("ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-${pkgver}.tgz"
+ 'ntlm.patch')
+md5sums=('ef01b52255ce8e3fbf8aa34f6fe7598b'
+ 'dfa9eb6f2fd9d0a3dab0e1860923489e')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/openldap-${pkgver}
+
+ patch -Np1 -i ${srcdir}/ntlm.patch
+
+ ./configure --prefix=/usr \
+ --libexecdir=/usr/sbin \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var/lib/openldap \
+ --enable-crypt --enable-dynamic \
+ --with-threads --disable-wrappers \
+ --disable-spasswd --without-cyrus-sasl \
+ --disable-bdb --disable-hdb --libdir=/usr/lib32
+
+ cd include
+ make
+
+ cd ../libraries
+ make depend
+ make
+
+}
+
+package() {
+ cd ${srcdir}/openldap-${pkgver}
+
+ cd include
+ make DESTDIR=${pkgdir} install
+
+ cd ../libraries
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir/etc"
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libldap/ntlm.patch b/multilib/lib32-libldap/ntlm.patch
new file mode 100644
index 000000000..a4fe4d45a
--- /dev/null
+++ b/multilib/lib32-libldap/ntlm.patch
@@ -0,0 +1,230 @@
+Patch from evolution-exchange (2.10.3). The ldap_ntlm_bind function is
+actually called by evolution-data-server, checked at version 1.12.2.
+Without this patch, the Exchange addressbook integration uses simple binds
+with cleartext passwords.
+
+Russ checked with openldap-software for upstream's opinion on this patch
+on 2007-12-21. Upstream had never received it as a patch submission and
+given that it's apparently only for older Exchange servers that can't do
+SASL and DIGEST-MD5, it's not very appealing.
+
+Bug#457374 filed against evolution-data-server asking if this support is
+still required on 2007-12-21.
+
+Index: trunk/include/ldap.h
+===================================================================
+--- trunk.orig/include/ldap.h
++++ trunk/include/ldap.h
+@@ -2461,5 +2461,25 @@
+ LDAPControl **ctrls,
+ LDAPDerefRes **drp ));
+
++/*
++ * hacks for NTLM
++ */
++#define LDAP_AUTH_NTLM_REQUEST ((ber_tag_t) 0x8aU)
++#define LDAP_AUTH_NTLM_RESPONSE ((ber_tag_t) 0x8bU)
++LDAP_F( int )
++ldap_ntlm_bind LDAP_P((
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp ));
++LDAP_F( int )
++ldap_parse_ntlm_bind_result LDAP_P((
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge));
++
+ LDAP_END_DECL
+ #endif /* _LDAP_H */
+Index: trunk/libraries/libldap/ntlm.c
+===================================================================
+--- /dev/null
++++ trunk/libraries/libldap/ntlm.c
+@@ -0,0 +1,138 @@
++/* $OpenLDAP: pkg/ldap/libraries/libldap/ntlm.c,v 1.1.4.10 2002/01/04 20:38:21 kurt Exp $ */
++/*
++ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
++ * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
++ */
++
++/* Mostly copied from sasl.c */
++
++#include "portable.h"
++
++#include <stdlib.h>
++#include <stdio.h>
++
++#include <ac/socket.h>
++#include <ac/string.h>
++#include <ac/time.h>
++#include <ac/errno.h>
++
++#include "ldap-int.h"
++
++int
++ldap_ntlm_bind(
++ LDAP *ld,
++ LDAP_CONST char *dn,
++ ber_tag_t tag,
++ struct berval *cred,
++ LDAPControl **sctrls,
++ LDAPControl **cctrls,
++ int *msgidp )
++{
++ BerElement *ber;
++ int rc;
++ ber_int_t id;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_ntlm_bind\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( msgidp != NULL );
++
++ if( msgidp == NULL ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ /* create a message to send */
++ if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ assert( LBER_VALID( ber ) );
++
++ LDAP_NEXT_MSGID( ld, id );
++ rc = ber_printf( ber, "{it{istON}" /*}*/,
++ id, LDAP_REQ_BIND,
++ ld->ld_version, dn, tag,
++ cred );
++
++ /* Put Server Controls */
++ if( ldap_int_put_controls( ld, sctrls, ber ) != LDAP_SUCCESS ) {
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
++ ld->ld_errno = LDAP_ENCODING_ERROR;
++ ber_free( ber, 1 );
++ return ld->ld_errno;
++ }
++
++ /* send the message */
++ *msgidp = ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber, id );
++
++ if(*msgidp < 0)
++ return ld->ld_errno;
++
++ return LDAP_SUCCESS;
++}
++
++int
++ldap_parse_ntlm_bind_result(
++ LDAP *ld,
++ LDAPMessage *res,
++ struct berval *challenge)
++{
++ ber_int_t errcode;
++ ber_tag_t tag;
++ BerElement *ber;
++ ber_len_t len;
++
++ Debug( LDAP_DEBUG_TRACE, "ldap_parse_ntlm_bind_result\n", 0, 0, 0 );
++
++ assert( ld != NULL );
++ assert( LDAP_VALID( ld ) );
++ assert( res != NULL );
++
++ if ( ld == NULL || res == NULL ) {
++ return LDAP_PARAM_ERROR;
++ }
++
++ if( res->lm_msgtype != LDAP_RES_BIND ) {
++ ld->ld_errno = LDAP_PARAM_ERROR;
++ return ld->ld_errno;
++ }
++
++ if ( ld->ld_error ) {
++ LDAP_FREE( ld->ld_error );
++ ld->ld_error = NULL;
++ }
++ if ( ld->ld_matched ) {
++ LDAP_FREE( ld->ld_matched );
++ ld->ld_matched = NULL;
++ }
++
++ /* parse results */
++
++ ber = ber_dup( res->lm_ber );
++
++ if( ber == NULL ) {
++ ld->ld_errno = LDAP_NO_MEMORY;
++ return ld->ld_errno;
++ }
++
++ tag = ber_scanf( ber, "{ioa" /*}*/,
++ &errcode, challenge, &ld->ld_error );
++ ber_free( ber, 0 );
++
++ if( tag == LBER_ERROR ) {
++ ld->ld_errno = LDAP_DECODING_ERROR;
++ return ld->ld_errno;
++ }
++
++ ld->ld_errno = errcode;
++
++ return( ld->ld_errno );
++}
++
+Index: trunk/libraries/libldap/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap/Makefile.in
++++ trunk/libraries/libldap/Makefile.in
+@@ -27,7 +27,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c
+
+ OBJS = bind.lo open.lo result.lo error.lo compare.lo search.lo \
+@@ -40,7 +40,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo
+
+ LDAP_INCDIR= ../../include
+Index: trunk/libraries/libldap_r/Makefile.in
+===================================================================
+--- trunk.orig/libraries/libldap_r/Makefile.in
++++ trunk/libraries/libldap_r/Makefile.in
+@@ -29,7 +29,7 @@
+ init.c options.c print.c string.c util-int.c schema.c \
+ charray.c os-local.c dnssrv.c utf-8.c utf-8-conv.c \
+ tls2.c tls_o.c tls_g.c tls_m.c \
+- turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c \
++ turn.c ppolicy.c dds.c txn.c ldap_sync.c stctrl.c ntlm.c \
+ assertion.c deref.c
+ SRCS = threads.c rdwr.c rmutex.c tpool.c rq.c \
+ thr_posix.c thr_cthreads.c thr_thr.c thr_lwp.c thr_nt.c \
+@@ -47,7 +47,7 @@
+ init.lo options.lo print.lo string.lo util-int.lo schema.lo \
+ charray.lo os-local.lo dnssrv.lo utf-8.lo utf-8-conv.lo \
+ tls2.lo tls_o.lo tls_g.lo tls_m.lo \
+- turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo \
++ turn.lo ppolicy.lo dds.lo txn.lo ldap_sync.lo stctrl.lo ntlm.lo \
+ assertion.lo deref.lo
+
+ LDAP_INCDIR= ../../include
diff --git a/multilib/lib32-libmikmod/PKGBUILD b/multilib/lib32-libmikmod/PKGBUILD
new file mode 100644
index 000000000..4f29981ef
--- /dev/null
+++ b/multilib/lib32-libmikmod/PKGBUILD
@@ -0,0 +1,53 @@
+# Maintainer: Peter Lewis <plewis@aur.archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+# Contributor: Jesse Juhani Jaara <jesse.jaara@gmail.com>
+
+pkgname=lib32-libmikmod
+pkgver=3.1.12
+pkgrel=5
+pkgdesc="A portable sound library"
+license=('GPL' 'LGPL')
+url="http://sourceforge.net/projects/mikmod/"
+arch=('x86_64')
+depends=('libmikmod' 'lib32-glibc')
+makedepends=('gcc-multilib')
+options=('!libtool')
+install=
+source=(http://downloads.sourceforge.net/mikmod/libmikmod-${pkgver}.tar.gz
+ libmikmod-3.1.12-64bit-fix.diff
+ libmikmod-3.1.12-exitcrash-fix.diff
+ libmikmod-3.1.12-loopingvolume-fix.diff
+ libmikmod-3.1.12-md_sngchn-fix.diff
+ libmikmod-CVE-2009-0179.patch)
+md5sums=('9f3c740298260d5f88981fc0d51f6f16'
+ 'dc7ffd8d6d355e9d6ec671b7f2b2adc7'
+ '03a4f5bfcecddf5f515672d6d477b7f7'
+ 'a837fd876cbd2ac27419b802504489db'
+ '076d39de19de36b880ed90297f1ee0d1'
+ 'fa91f4bc17164be32bec0ea7a73f2aaa')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/libmikmod-$pkgver
+
+ # patches from sdl_mixer-1.2.11 source
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-64bit-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-exitcrash-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-loopingvolume-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-3.1.12-md_sngchn-fix.diff
+ patch -Np1 -i $srcdir/libmikmod-CVE-2009-0179.patch
+
+ ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/libmikmod-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
+
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff
new file mode 100644
index 000000000..cd7800881
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-64bit-fix.diff
@@ -0,0 +1,47 @@
+Date: Sun, 04 Jul 2004 11:53:23 +0200
+From: Josselin Mouette
+Subject: Re: sdl 64bit problem [PATCH]
+
+Le sam, 03/07/2004 � 18:20 +0200, Hans-Frieder Vogt a �crit :
+> Hi list,
+>
+> I found the problem that lead to the distorted sound in tuxracer on AMD64. It
+> may have also been the cause for the other reported sound problems with SDL.
+> The problem is not in SDL, but in SDL-mixer.
+> There, music files (*.it, and probably others as well) are incorrectly read on
+> all 64 bit architectures but Alpha, due to an incorrect data type definition.
+> The attached patch should solve the problem for all 64 bit architectures on
+> Linux, since at least cpp defines _LP64 and __LP64__ for them.
+> _LP64 indicates that long ints and pointers are 64 bits, but integers are 32
+> bits.
+> I am not sure whether the usage of _LP64 is also standard for the commercial
+> compilers, and for other Unixes, but at least Solaris 9 defines _LP64 in the
+> 64 bit environment as well.
+>
+> Josselin,
+> could you include this patch into your next debian packages?
+
+diff -ru libmikmod-3.1.12.orig/include/mikmod.h.in libmikmod-3.1.12/include/mikmod.h.in
+--- libmikmod-3.1.12.orig/include/mikmod.h.in 2007-12-15 01:24:19.000000000 -0800
++++ libmikmod-3.1.12/include/mikmod.h.in 2009-10-05 00:18:56.000000000 -0700
+@@ -85,7 +85,7 @@
+
+ @DOES_NOT_HAVE_SIGNED@
+
+-#if defined(__arch64__) || defined(__alpha) || defined(__x86_64)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ /* 64 bit architectures */
+
+ typedef signed char SBYTE; /* 1 byte, signed */
+diff -ru libmikmod-3.1.12.orig/include/mikmod_internals.h libmikmod-3.1.12/include/mikmod_internals.h
+--- libmikmod-3.1.12.orig/include/mikmod_internals.h 2007-12-15 04:24:51.000000000 -0800
++++ libmikmod-3.1.12/include/mikmod_internals.h 2009-10-05 00:19:15.000000000 -0700
+@@ -50,7 +50,7 @@
+ /*========== More type definitions */
+
+ /* SLONGLONG: 64bit, signed */
+-#if defined (__arch64__) || defined(__alpha)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ typedef long SLONGLONG;
+ #define NATIVE_64BIT_INT
+ #elif defined(__WATCOMC__)
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff
new file mode 100644
index 000000000..fe62892b5
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-exitcrash-fix.diff
@@ -0,0 +1,21 @@
+Date: 15 Apr 2002 11:01:19 +0200
+From: Guillaume Cottenceau <gc@mandrakesoft.com>
+
+Unfortunately, I should have double checked that the following
+fix (authored by Dave Goehrig <dave@cthulhu-burger.org>, not me),
+was really in the CVS... it's not, as of stable 1.2.3 at least.
+Please include it, it fixes a segfault on exiting a program which
+disabled MOD music during its execution.
+
+diff -ru libmikmod-3.1.12.orig/playercode/virtch_common.c libmikmod-3.1.12/playercode/virtch_common.c
+--- libmikmod-3.1.12.orig/playercode/virtch_common.c 2007-12-15 01:26:53.000000000 -0800
++++ libmikmod-3.1.12/playercode/virtch_common.c 2009-10-05 00:37:12.000000000 -0700
+@@ -347,7 +347,7 @@
+
+ void VC1_SampleUnload(SWORD handle)
+ {
+- if (handle<MAXSAMPLEHANDLES) {
++ if (Samples && handle<MAXSAMPLEHANDLES) {
+ if (Samples[handle])
+ free(Samples[handle]);
+ Samples[handle]=NULL;
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff
new file mode 100644
index 000000000..f0ce70e34
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-loopingvolume-fix.diff
@@ -0,0 +1,15 @@
+Yi-Huang Han - Wed Oct 24 21:55:47 PDT 2001
+ * Fixed MOD music volume when looping
+
+diff -ru libmikmod-3.1.12.orig/playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- libmikmod-3.1.12.orig/playercode/mplayer.c 2009-10-05 00:19:59.000000000 -0700
++++ libmikmod-3.1.12/playercode/mplayer.c 2009-10-05 00:44:35.000000000 -0700
+@@ -3019,7 +3019,7 @@
+ {
+ MUTEX_LOCK(vars);
+ if (pf)
+- pf->volume=(volume<0)?0:(volume>128)?128:volume;
++ pf->volume=pf->initvolume=(volume<0)?0:(volume>128)?128:volume;
+ MUTEX_UNLOCK(vars);
+ }
+
diff --git a/multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff b/multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff
new file mode 100644
index 000000000..45cc355ae
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-3.1.12-md_sngchn-fix.diff
@@ -0,0 +1,112 @@
+This patch fixes "buffer overflow due to md_numchn - ID: 1630158"
+
+diff -ru libmikmod-3.1.12.orig/playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- libmikmod-3.1.12.orig/playercode/mplayer.c 2007-12-15 01:26:28.000000000 -0800
++++ libmikmod-3.1.12/playercode/mplayer.c 2009-10-04 23:48:36.000000000 -0700
+@@ -52,6 +52,8 @@
+ will wait */
+ /*static*/ MODULE *pf = NULL;
+
++#define NUMVOICES(mod) (md_sngchn < (mod)->numvoices ? md_sngchn : (mod)->numvoices)
++
+ #define HIGH_OCTAVE 2 /* number of above-range octaves */
+
+ static UWORD oldperiods[OCTAVE*2]={
+@@ -248,14 +250,14 @@
+ MP_VOICE *a;
+ ULONG t,k,tvol,pp;
+
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (((mod->voice[t].main.kick==KICK_ABSENT)||
+ (mod->voice[t].main.kick==KICK_ENV))&&
+ Voice_Stopped_internal(t))
+ return t;
+
+ tvol=0xffffffUL;t=-1;a=mod->voice;
+- for (k=0;k<md_sngchn;k++,a++) {
++ for (k=0;k<NUMVOICES(mod);k++,a++) {
+ /* allow us to take over a nonexisting sample */
+ if (!a->main.s)
+ return k;
+@@ -2249,12 +2251,12 @@
+
+ switch (dat) {
+ case 0x0: /* past note cut */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a)
+ mod->voice[t].main.fadevol=0;
+ break;
+ case 0x1: /* past note off */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a) {
+ mod->voice[t].main.keyoff|=KEY_OFF;
+ if ((!(mod->voice[t].venv.flg & EF_ON))||
+@@ -2263,7 +2265,7 @@
+ }
+ break;
+ case 0x2: /* past note fade */
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if (mod->voice[t].master==a)
+ mod->voice[t].main.keyoff|=KEY_FADE;
+ break;
+@@ -2318,7 +2320,7 @@
+ SAMPLE *s;
+
+ mod->totalchn=mod->realchn=0;
+- for (channel=0;channel<md_sngchn;channel++) {
++ for (channel=0;channel<NUMVOICES(mod);channel++) {
+ aout=&mod->voice[channel];
+ i=aout->main.i;
+ s=aout->main.s;
+@@ -2736,7 +2738,7 @@
+ if (a->dct!=DCT_OFF) {
+ int t;
+
+- for (t=0;t<md_sngchn;t++)
++ for (t=0;t<NUMVOICES(mod);t++)
+ if ((!Voice_Stopped_internal(t))&&
+ (mod->voice[t].masterchn==channel)&&
+ (a->main.sample==mod->voice[t].main.sample)) {
+@@ -2978,6 +2980,11 @@
+ if (!(mod->voice=(MP_VOICE*)_mm_calloc(md_sngchn,sizeof(MP_VOICE))))
+ return 1;
+
++ /* mod->numvoices was used during loading to clamp md_sngchn.
++ After loading it's used to remember how big mod->voice is.
++ */
++ mod->numvoices = md_sngchn;
++
+ Player_Init_internal(mod);
+ return 0;
+ }
+@@ -3086,7 +3093,7 @@
+ pf->patbrk=0;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
+@@ -3111,7 +3118,7 @@
+ pf->patbrk=0;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
+@@ -3138,7 +3145,7 @@
+ pf->sngpos=pos;
+ pf->vbtick=pf->sngspd;
+
+- for (t=0;t<md_sngchn;t++) {
++ for (t=0;t<NUMVOICES(pf);t++) {
+ Voice_Stop_internal(t);
+ pf->voice[t].main.i=NULL;
+ pf->voice[t].main.s=NULL;
diff --git a/multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch b/multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch
new file mode 100644
index 000000000..0c47e6545
--- /dev/null
+++ b/multilib/lib32-libmikmod/libmikmod-CVE-2009-0179.patch
@@ -0,0 +1,33 @@
+diff -ur libmikmod-3.1.11.orig/loaders/load_xm.c libmikmod-3.1.11/loaders/load_xm.c
+--- libmikmod-3.1.11.orig/loaders/load_xm.c 2004-01-21 18:43:53.000000000 +0100
++++ libmikmod-3.1.11/loaders/load_xm.c 2008-04-16 04:30:45.000000000 +0200
+@@ -622,7 +622,8 @@
+ /* read the remainder of the header */
+ for(u=headend-_mm_ftell(modreader);u;u--) _mm_read_UBYTE(modreader);
+
+- if(_mm_eof(modreader)) {
++ /* last instrument is at the end of file in version 0x0104 */
++ if(_mm_eof(modreader) && (mh->version<0x0104 || t<of.numins-1)) {
+ free(nextwav);free(wh);
+ nextwav=NULL;wh=NULL;
+ _mm_errno = MMERR_LOADING_SAMPLEINFO;
+diff -ur libmikmod-3.1.11.orig/playercode/mloader.c libmikmod-3.1.11/playercode/mloader.c
+--- libmikmod-3.1.11.orig/playercode/mloader.c 2004-01-21 18:43:53.000000000 +0100
++++ libmikmod-3.1.11/playercode/mloader.c 2008-04-16 04:30:45.000000000 +0200
+@@ -450,10 +450,12 @@
+ if (!l->Init || l->Init()) {
+ _mm_rewind(modreader);
+ ok = l->Load(curious);
+- /* propagate inflags=flags for in-module samples */
+- for (t = 0; t < of.numsmp; t++)
+- if (of.samples[t].inflags == 0)
+- of.samples[t].inflags = of.samples[t].flags;
++ if (ok) {
++ /* propagate inflags=flags for in-module samples */
++ for (t = 0; t < of.numsmp; t++)
++ if (of.samples[t].inflags == 0)
++ of.samples[t].inflags = of.samples[t].flags;
++ }
+ } else
+ ok = 0;
+
diff --git a/multilib/lib32-libmng/PKGBUILD b/multilib/lib32-libmng/PKGBUILD
new file mode 100644
index 000000000..eb42ad374
--- /dev/null
+++ b/multilib/lib32-libmng/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 26602 2010-09-15 22:40:41Z bluewind $
+# Maintainer: Florian Pritz <flo@xssn.at>
+_pkgbasename=libmng
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.10
+pkgrel=5
+pkgdesc="A collection of routines used to create and manipulate MNG format graphics files (32-bit)"
+arch=('x86_64')
+url="http://www.libmng.com/"
+license=('custom')
+depends=('lib32-zlib' 'lib32-libjpeg>=8' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=(!libtool)
+source=(http://downloads.sourceforge.net/sourceforge/$_pkgbasename/$_pkgbasename-$pkgver.tar.gz)
+md5sums=('a464ae7d679781beebdf7440d144b7bd')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/$_pkgbasename-$pkgver
+ ln -s makefiles/configure.in .
+ ln -s makefiles/Makefile.am .
+ autoreconf --force --install
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgbasename-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libogg/PKGBUILD b/multilib/lib32-libogg/PKGBUILD
new file mode 100644
index 000000000..ff8614b23
--- /dev/null
+++ b/multilib/lib32-libogg/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 40915 2011-03-01 15:20:49Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=libogg
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.2
+pkgrel=1
+pkgdesc="Ogg bitstream and framing library (32-bit)"
+arch=('x86_64')
+url="http://www.xiph.org/ogg/"
+license=('BSD')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/ogg/$_pkgbasename-$pkgver.tar.gz)
+md5sums=('5a9fcabc9a1b7c6f1cd75ddc78f36c56')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/${_pkgbasename}-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=$pkgdir install
+
+ rm -rf "$pkgdir"/usr/{share,bin}
+ find "$pkgdir"/usr/include/ogg -type f -not -name config_types.h -delete
+ mv "$pkgdir"/usr/include/ogg/config_types{,-32}.h
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libpng/PKGBUILD b/multilib/lib32-libpng/PKGBUILD
new file mode 100644
index 000000000..6ace33ee4
--- /dev/null
+++ b/multilib/lib32-libpng/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 37276 2011-01-13 18:48:07Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: Travis Willard <travis@archlinux.org>
+# Contributor: Douglas Soares de Andrade <douglas@archlinux.org>
+
+_pkgbasename=libpng
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.5
+_apngver=1.4.5
+pkgrel=1
+pkgdesc="A collection of routines used to create PNG format graphics files (32-bit)"
+arch=('x86_64')
+url="http://www.libpng.org/pub/png/libpng.html"
+license=('custom')
+depends=('lib32-zlib' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=("http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.xz"
+ "http://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-${_apngver}-apng.patch.gz")
+md5sums=('37d420c7d8294aac438c150bb4335901'
+ '459affb0ac7e0f1ae4d99b88234cb3db')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ # Add animated PNG (apng) support
+ # see http://sourceforge.net/projects/libpng-apng/
+ patch -p1 -i "${srcdir}/libpng-${_apngver}-apng.patch"
+
+# libtoolize --force --copy
+# aclocal
+# autoconf
+# automake --add-missing
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ cd contrib/pngminus
+ make PNGLIB="-L${pkgdir}/usr/lib32 -lpng" -f makefile.std png2pnm pnm2png
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libpulse/PKGBUILD b/multilib/lib32-libpulse/PKGBUILD
new file mode 100644
index 000000000..01f9efc6d
--- /dev/null
+++ b/multilib/lib32-libpulse/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 33577 2010-11-26 02:49:09Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Corrado Primier <bardo@aur.archlinux.org>
+# Contributor: William Rea <sillywilly@gmail.com>
+
+_pkgbasename=libpulse
+pkgname=lib32-$_pkgbasename
+pkgdesc="A featureful, general-purpose sound server (32-bit client libraries)"
+pkgver=0.9.22
+pkgrel=1
+arch=(x86_64)
+url="http://pulseaudio.org/"
+license=(GPL LGPL)
+depends=(lib32-{dbus-core,xcb-util}
+ lib32-lib{asyncns,cap,xtst,sm,sndfile}
+ $_pkgbasename)
+makedepends=(pkgconfig gcc-multilib libtool-multilib intltool lib32-glib2 lib32-speex)
+optdepends=('lib32-alsa-plugins: ALSA support')
+provides=("lib32-pulseaudio=$pkgver")
+conflicts=(lib32-pulseaudio)
+replaces=(lib32-pulseaudio)
+options=(!emptydirs !libtool !makeflags)
+source=("http://0pointer.de/lennart/projects/pulseaudio/pulseaudio-$pkgver.tar.gz")
+md5sums=('ca85ab470669b05e100861654cf5eb3c')
+
+_libs="libpulsecommon-$pkgver.la libpulse.la libpulse-simple.la libpulse-mainloop-glib.la libpulsedsp.la"
+
+build() {
+ cd "$srcdir/pulseaudio-$pkgver"
+
+ # Don't break circular dependency between libpulse and libpulsecommon
+ LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
+
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib32 \
+ --libexecdir=/usr/lib32 \
+ --localstatedir=/var \
+ --disable-hal \
+ --disable-rpath \
+ --disable-default-build-tests
+
+ make -C src $_libs
+}
+
+package() {
+ cd "$srcdir/pulseaudio-$pkgver"
+ make -C src lib_LTLIBRARIES="$_libs" DESTDIR="$pkgdir" install-libLTLIBRARIES
+ make DESTDIR="$pkgdir" install-pkgconfigDATA
+}
diff --git a/multilib/lib32-libsamplerate/PKGBUILD b/multilib/lib32-libsamplerate/PKGBUILD
new file mode 100644
index 000000000..c618d6681
--- /dev/null
+++ b/multilib/lib32-libsamplerate/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 33260 2010-11-23 15:20:46Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=libsamplerate
+pkgname=lib32-$_pkgbasename
+pkgver=0.1.7
+pkgrel=3
+pkgdesc="Secret Rabbit Code - aka Sample Rate Converter for audio (32-bit)"
+arch=('x86_64')
+url="http://www.mega-nerd.com/SRC/index.html"
+license=('GPL')
+depends=('lib32-libsndfile' $_pkgbasename)
+makedepedns=('gcc-multilib')
+options=('!libtool')
+source=(http://www.mega-nerd.com/SRC/libsamplerate-${pkgver}.tar.gz)
+md5sums=('6731a81cb0c622c483b28c0d7f90867d')
+sha1sums=('f3f803ec5feae5a3fdb0fa3937277669e854386e')
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-libsm/PKGBUILD b/multilib/lib32-libsm/PKGBUILD
new file mode 100644
index 000000000..8a88d6e4e
--- /dev/null
+++ b/multilib/lib32-libsm/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31529 2010-11-01 23:52:46Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libsm
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 Session Management library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libice' 'lib32-util-linux-ng' $_pkgbasename)
+makedepends=('xorg-util-macros' 'xtrans' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libSM-${pkgver}.tar.bz2)
+sha1sums=('f78bc72f0b3ec26cbf980f84f014422ba854544d')
+
+build() {
+ cd "${srcdir}/libSM-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libSM-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libsndfile/PKGBUILD b/multilib/lib32-libsndfile/PKGBUILD
new file mode 100644
index 000000000..3d1c36d17
--- /dev/null
+++ b/multilib/lib32-libsndfile/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 43016 2011-03-23 20:35:57Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=libsndfile
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.24
+pkgrel=1
+pkgdesc="A C library for reading and writing files containing sampled sound (32-bit)"
+arch=('x86_64')
+url="http://www.mega-nerd.com/libsndfile"
+license=('LGPL')
+depends=('lib32-flac' 'lib32-libvorbis' $_pkgbasename)
+makedepends=('lib32-alsa-lib' 'gcc-multilib')
+options=('!libtool')
+source=(http://www.mega-nerd.com/libsndfile/files/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('8f823c30c1d8d44830db6ab845d6679e')
+sha1sums=('ade2dad272b52f61bb58aca3a4004b28549ee0f8')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ export GETCONF="getconf -v POSIX_V7_ILP32_OFFBIG"
+ export GETCONF_DIR="/usr/lib32/getconf"
+
+ ./configure --prefix=/usr --disable-sqlite --libdir=/usr/lib32
+ make -C src
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make -C src DESTDIR="${pkgdir}" install
+ make DESTDIR="$pkgdir" install-pkgconfigDATA
+
+ rm -rf "$pkgdir/usr/include"
+}
diff --git a/multilib/lib32-libstdc++5/PKGBUILD b/multilib/lib32-libstdc++5/PKGBUILD
new file mode 100644
index 000000000..3d30a4b0e
--- /dev/null
+++ b/multilib/lib32-libstdc++5/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 26620 2010-09-15 22:43:15Z bluewind $
+
+pkgname=lib32-libstdc++5
+pkgver=3.3.6
+pkgrel=5
+pkgdesc="Legacy GNU Standard C++ library version 3 (32 bit)"
+arch=(x86_64)
+url="http://gcc.gnu.org"
+license=('GPL' 'LGPL')
+depends=('lib32-gcc-libs')
+makedepends=('gcc-multilib' 'binutils-multilib')
+options=('!libtool' '!makeflags')
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++}-${pkgver}.tar.bz2
+ gcc-3.4.3-no_multilib_amd64.patch)
+md5sums=('18c52e6fb8966b7700665dca289d077f'
+ '6b3d00b8d079805be1b895f7f6ce47a0'
+ 'b2a96584f4cee72362695ba44c911c40')
+
+build(){
+ export CFLAGS=$(echo $CFLAGS | sed 's|-mtune=generic||')
+ export CXXFLAGS=$(echo $CXXFLAGS | sed 's|-mtune=generic||')
+ cd ${srcdir}/gcc-${pkgver}
+
+ patch -Np0 -i ../gcc-3.4.3-no_multilib_amd64.patch
+ # No fixincludes
+ sed -i -e 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ mkdir ../gcc-build
+ cd ../gcc-build
+ # We build the full multilib libstdc++5 here, no idea how to restrict
+ # the build process to the 32 bit version only.
+ ../gcc-${pkgver}/configure --prefix=/usr --enable-shared \
+ --enable-languages=c++ --enable-threads=posix --enable-__cxa_atexit \
+ --enable-multilib
+ make all-target-libstdc++-v3 BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O"
+}
+
+package() {
+ cd ${srcdir}/gcc-build
+ make DESTDIR=${pkgdir} install-target-libstdc++-v3
+
+ # Only install the lib32 files
+ rm -rf ${pkgdir}/usr/{include,share,lib}
+ rm -f ${pkgdir}/usr/lib32/*.a
+ rm -f ${pkgdir}/usr/lib32/libstdc++.so
+}
diff --git a/multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch b/multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
new file mode 100644
index 000000000..6ba6694db
--- /dev/null
+++ b/multilib/lib32-libstdc++5/gcc-3.4.3-no_multilib_amd64.patch
@@ -0,0 +1,11 @@
+--- gcc/config/i386/t-linux64.orig 2003-06-28 00:19:59.000000000 +0000
++++ gcc/config/i386/t-linux64 2003-06-28 00:20:07.000000000 +0000
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 ../lib
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/multilib/lib32-libtiff/PKGBUILD b/multilib/lib32-libtiff/PKGBUILD
new file mode 100644
index 000000000..92858840d
--- /dev/null
+++ b/multilib/lib32-libtiff/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26623 2010-09-15 22:43:40Z bluewind $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+_pkgbasename=libtiff
+pkgname=lib32-$_pkgbasename
+pkgver=3.9.4
+pkgrel=3
+pkgdesc="Library for manipulation of TIFF images (32-bit)"
+arch=('x86_64')
+url="http://www.remotesensing.org/libtiff/"
+license=('custom')
+depends=('lib32-libjpeg' 'lib32-zlib' $_pkgbasename)
+makedepends=('lib32-libgl' 'lib32-libxmu' 'lib32-libxi' gcc-multilib)
+options=('!libtool')
+source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz \
+ libtiff-CVE-2009-2285.patch)
+md5sums=('2006c1bdd12644dbf02956955175afd6' 'ff61077408727a82281f77a94f555e2a')
+sha1sums=('a4e32d55afbbcabd0391a9c89995e8e8a19961de' 'eadce8c8bd72ea9c74f35300bf299131813b0c8b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/tiff-${pkgver}"
+ patch -p1 < ../libtiff-CVE-2009-2285.patch
+ ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/tiff-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch b/multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch
new file mode 100644
index 000000000..435a84b53
--- /dev/null
+++ b/multilib/lib32-libtiff/libtiff-CVE-2009-2285.patch
@@ -0,0 +1,22 @@
+Index: tiff-3.8.2/libtiff/tif_lzw.c
+===================================================================
+--- tiff-3.8.2.orig/libtiff/tif_lzw.c
++++ tiff-3.8.2/libtiff/tif_lzw.c
+@@ -421,7 +421,7 @@ LZWDecode(TIFF* tif, tidata_t op0, tsize
+ NextCode(tif, sp, bp, code, GetNextCode);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
+@@ -624,7 +624,7 @@ LZWDecodeCompat(TIFF* tif, tidata_t op0,
+ NextCode(tif, sp, bp, code, GetNextCodeCompat);
+ if (code == CODE_EOI)
+ break;
+- if (code == CODE_CLEAR) {
++ if (code >= CODE_CLEAR) {
+ TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
+ "LZWDecode: Corrupted LZW table at scanline %d",
+ tif->tif_row);
diff --git a/multilib/lib32-libusb-compat/PKGBUILD b/multilib/lib32-libusb-compat/PKGBUILD
new file mode 100644
index 000000000..fba67c477
--- /dev/null
+++ b/multilib/lib32-libusb-compat/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id$
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: arjan <arjan@archlinux.org>
+
+pkgname=lib32-libusb-compat
+pkgver=0.1.3
+pkgrel=1
+pkgdesc="Library to enable user space application programs to communicate with USB devices"
+arch=('x86_64')
+depends=('lib32-libusb' 'libusb-compat')
+makedepends=('gcc-multilib')
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+source=(http://downloads.sourceforge.net/libusb/libusb-compat-0.1/libusb-compat-$pkgver/libusb-compat-${pkgver}.tar.bz2)
+options=('!libtool')
+md5sums=('570ac2ea085b80d1f74ddc7c6a93c0eb')
+
+build() {
+ cd ${srcdir}/libusb-compat-${pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libusb-compat-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/{bin,include}
+}
diff --git a/multilib/lib32-libusb/PKGBUILD b/multilib/lib32-libusb/PKGBUILD
new file mode 100644
index 000000000..d79cf8aed
--- /dev/null
+++ b/multilib/lib32-libusb/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=lib32-libusb
+pkgver=1.0.8
+pkgrel=1
+pkgdesc="Library to enable user space application programs to communicate with USB devices. (32-bit)"
+arch=('x86_64')
+url="http://libusb.sourceforge.net/"
+license=('LGPL')
+depends=('lib32-glibc' 'libusb')
+makedepends=('gcc-multilib')
+source=(http://downloads.sourceforge.net/libusb/libusb-${pkgver}.tar.bz2)
+options=(!libtool)
+md5sums=('37d34e6eaa69a4b645a19ff4ca63ceef')
+
+build() {
+ cd "${srcdir}/libusb-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+
+ make
+}
+
+package () {
+ cd "${srcdir}/libusb-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ rm -rf ${pkgdir}/usr/include
+}
+
diff --git a/multilib/lib32-libvdpau/PKGBUILD b/multilib/lib32-libvdpau/PKGBUILD
new file mode 100644
index 000000000..795e0f051
--- /dev/null
+++ b/multilib/lib32-libvdpau/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 41886 2011-03-10 14:20:26Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+# Contributor: TryA <tryagainprod {at} gmail.com>
+
+_pkgbasename=libvdpau
+pkgname=lib32-libvdpau
+pkgver=0.4.1
+pkgrel=3
+pkgdesc="Nvidia VDPAU library (32-bit)"
+arch=('x86_64')
+url=http://cgit.freedesktop.org/~aplattner/libvdpau
+depends=(${_pkgbasename})
+options=('!libtool')
+license=('custom')
+source=(http://people.freedesktop.org/~aplattner/vdpau/${_pkgbasename}-${pkgver}.tar.gz)
+makedepends=('lib32-libx11')
+sha256sums=('061b6f86c64912f79851bfefcac4f77b401e9a939dbbb7b1ec795bc7d5aaf59b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/include
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libvorbis/PKGBUILD b/multilib/lib32-libvorbis/PKGBUILD
new file mode 100644
index 000000000..6f0b9fb1d
--- /dev/null
+++ b/multilib/lib32-libvorbis/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 33990 2010-11-30 15:16:40Z bluewind $
+# Maintainer: Tobias Kieslich <tobias@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+_pkgbasename=libvorbis
+pkgname=lib32-$_pkgbasename
+pkgver=1.3.2
+pkgrel=1
+pkgdesc="Vorbis codec library (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://www.xiph.org/ogg/vorbis/"
+depends=('lib32-libogg' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.xiph.org/releases/vorbis/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('c870b9bd5858a0ecb5275c14486d9554')
+
+build() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ #-march=i686 optimizes too much, strip it out
+ CFLAGS=${CFLAGS/-march=$CARCH} ./configure --prefix=/usr --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libx11/PKGBUILD b/multilib/lib32-libx11/PKGBUILD
new file mode 100644
index 000000000..232afa456
--- /dev/null
+++ b/multilib/lib32-libx11/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 35267 2010-12-18 01:14:35Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libx11
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="X11 client-side library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxcb' 'xproto' 'kbproto' $_pkgbasename)
+makedepends=('xorg-util-macros' 'xextproto' 'xtrans' 'inputproto' 'gcc-multilib')
+options=('!libtool')
+license=('custom:XFREE86')
+source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2)
+sha1sums=('3d198f5578733d6c3d81c005025875f6d084668e')
+
+build() {
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libX11-${pkgver}"
+ ./configure --prefix=/usr --disable-static --disable-xf86bigfont \
+ --libdir=/usr/lib32 --disable-specs
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/libX11-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxau/PKGBUILD b/multilib/lib32-libxau/PKGBUILD
new file mode 100644
index 000000000..728804d46
--- /dev/null
+++ b/multilib/lib32-libxau/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26632 2010-09-15 22:44:58Z bluewind $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxau
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.6
+pkgrel=2
+pkgdesc="X11 authorisation library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('pkgconfig' 'xproto>=7.0.15' 'gcc-multilib')
+license=('custom')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXau-${pkgver}.tar.bz2)
+sha1sums=('0e1ab449f98026e4599f6e0d7491810d36c8fe4d')
+
+build() {
+ cd "${srcdir}/libXau-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXau-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxcb/PKGBUILD b/multilib/lib32-libxcb/PKGBUILD
new file mode 100644
index 000000000..fb15b6e01
--- /dev/null
+++ b/multilib/lib32-libxcb/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 26635 2010-09-15 22:45:22Z bluewind $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxcb
+pkgname=lib32-$_pkgbasename
+pkgver=1.7
+pkgrel=2
+pkgdesc="X11 client-side library (32-bit)"
+arch=(x86_64)
+url="http://xcb.freedesktop.org/"
+depends=('xcb-proto>=1.6' 'lib32-libxdmcp' 'lib32-libxau'
+ $_pkgbasename)
+makedepends=('pkgconfig' 'libxslt' 'python' 'gcc-multilib'
+ 'autoconf')
+conflicts=('libx11<1.1.99.2')
+options=('!libtool')
+license=('custom')
+source=(${url}/dist/${_pkgbasename}-${pkgver}.tar.bz2
+ libxcb-1.1-no-pthread-stubs.patch)
+sha1sums=('7540f0587907bce421914f0ddb813810cb2f36f8'
+ '3455e84642283bc91c8313af319002a20bbcbdf4')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/libxcb-1.1-no-pthread-stubs.patch"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ libtoolize --force --copy
+ aclocal
+ autoconf
+ automake --add-missing
+ ./configure --prefix=/usr --enable-xinput --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch b/multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
new file mode 100644
index 000000000..f17de1b1d
--- /dev/null
+++ b/multilib/lib32-libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -0,0 +1,12 @@
+diff -up libxcb-1.1/configure.ac.pthread-stubs libxcb-1.1/configure.ac
+--- libxcb-1.1/configure.ac.pthread-stubs 2007-11-04 18:17:11.000000000 -0500
++++ libxcb-1.1/configure.ac 2007-11-12 10:27:06.000000000 -0500
+@@ -31,7 +31,7 @@ AC_SUBST(HTML_CHECK_RESULT)
+
+ # Checks for pkg-config packages
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.6)
+-NEEDED="pthread-stubs xau >= 0.99.2"
++NEEDED="xau >= 0.99.2"
+ PKG_CHECK_MODULES(NEEDED, $NEEDED)
+
+ have_xdmcp="no"
diff --git a/multilib/lib32-libxcomposite/PKGBUILD b/multilib/lib32-libxcomposite/PKGBUILD
new file mode 100644
index 000000000..8eb4d24ab
--- /dev/null
+++ b/multilib/lib32-libxcomposite/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31532 2010-11-01 23:56:56Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxcomposite
+pkgname=lib32-$_pkgbasename
+pkgver=0.4.3
+pkgrel=1
+pkgdesc="X11 Composite extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxfixes' 'compositeproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXcomposite-${pkgver}.tar.bz2)
+sha1sums=('081b26b556d55e20d7956c80a2ea2854962aecec')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXcomposite-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXcomposite-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxcursor/PKGBUILD b/multilib/lib32-libxcursor/PKGBUILD
new file mode 100644
index 000000000..ee8df1005
--- /dev/null
+++ b/multilib/lib32-libxcursor/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31535 2010-11-02 00:00:15Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+_pkgbasename=libxcursor
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.11
+pkgrel=1
+pkgdesc="X cursor management library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxfixes' 'lib32-libxrender' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXcursor-${pkgver}.tar.bz2)
+sha1sums=('35491bd17cbcdda712e1a064c67ccbc523e2702c')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXcursor-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXcursor-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxdamage/PKGBUILD b/multilib/lib32-libxdamage/PKGBUILD
new file mode 100644
index 000000000..17e003925
--- /dev/null
+++ b/multilib/lib32-libxdamage/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26644 2010-09-15 22:46:36Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxdamage
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.3
+pkgrel=3
+pkgdesc="X11 damaged region extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxfixes>=4.0.4' $_pkgbasename)
+makedepends=('pkg-config' 'damageproto>=1.2.0' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXdamage-${pkgver}.tar.bz2)
+sha1sums=('7d96e8de107fede16951cb47d5e147630fbc7dee')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXdamage-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXdamage-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install || return 1
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxdmcp/PKGBUILD b/multilib/lib32-libxdmcp/PKGBUILD
new file mode 100644
index 000000000..9f8ebf468
--- /dev/null
+++ b/multilib/lib32-libxdmcp/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35270 2010-12-18 01:18:05Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxdmcp
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 Display Manager Control Protocol library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('xproto' 'lib32-glibc' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXdmcp-${pkgver}.tar.bz2)
+sha1sums=('28132db24727552f77e998e6a6798a5b9b30789f')
+
+build() {
+ cd ${srcdir}/libXdmcp-${pkgver}
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libXdmcp-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxext/PKGBUILD b/multilib/lib32-libxext/PKGBUILD
new file mode 100644
index 000000000..7c6e68080
--- /dev/null
+++ b/multilib/lib32-libxext/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 31542 2010-11-02 00:03:44Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxext
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 miscellaneous extensions library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libx11' 'xextproto' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXext-${pkgver}.tar.bz2)
+sha1sums=('090d7109c5fffde8a0063e10f22f3e2ec48cf19e')
+
+build() {
+ cd "${srcdir}/libXext-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXext-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxfixes/PKGBUILD b/multilib/lib32-libxfixes/PKGBUILD
new file mode 100644
index 000000000..a8b980fa5
--- /dev/null
+++ b/multilib/lib32-libxfixes/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26653 2010-09-15 22:47:51Z bluewind $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxfixes
+pkgname=lib32-$_pkgbasename
+pkgver=4.0.5
+pkgrel=3
+pkgdesc="X11 miscellaneous 'fixes' extension library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libx11>=1.3.4' $_pkgbasename)
+makedepends=('pkg-config' gcc-multilib "fixesproto>=4.1.1")
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXfixes-${pkgver}.tar.bz2)
+sha1sums=('255dfb9a8c50d795c60711ec4764f76cd0620cbf')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXfixes-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXfixes-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxft/PKGBUILD b/multilib/lib32-libxft/PKGBUILD
new file mode 100644
index 000000000..6036674d0
--- /dev/null
+++ b/multilib/lib32-libxft/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 31474 2010-10-31 22:37:35Z ibiru $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=libxft
+pkgname=lib32-$_pkgbasename
+pkgver=2.2.0
+pkgrel=1
+pkgdesc="FreeType-based font drawing library for X (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-fontconfig' 'lib32-libxrender')
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXft-${pkgver}.tar.bz2)
+sha1sums=('ed29784259f4e26df78141035560ae8a7c62e83f')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/libXft-${pkgver}
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib32 --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/libXft-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{bin,include,share}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxi/PKGBUILD b/multilib/lib32-libxi/PKGBUILD
new file mode 100644
index 000000000..4f3f85361
--- /dev/null
+++ b/multilib/lib32-libxi/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 39079 2011-02-06 10:58:56Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxi
+pkgname=lib32-$_pkgbasename
+pkgver=1.4.1
+pkgrel=1
+pkgdesc="X11 Input extension library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org"
+depends=('lib32-libxext' 'inputproto' $_pkgbasename)
+makedepends=('pkgconfig' 'xorg-util-macros' gcc-multilib)
+options=(!libtool)
+license=('custom')
+source=(${url}/releases/individual/lib/libXi-${pkgver}.tar.bz2)
+sha1sums=('15c9d369cc76c73b5e3833ba3b39355e6cc06636')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXi-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXi-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxinerama/PKGBUILD b/multilib/lib32-libxinerama/PKGBUILD
new file mode 100644
index 000000000..ba7920554
--- /dev/null
+++ b/multilib/lib32-libxinerama/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31546 2010-11-02 00:05:46Z heftig $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+_pkgbasename=libxinerama
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 Xinerama extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxext' 'xineramaproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=(!libtool)
+source=(${url}/releases/individual/lib/libXinerama-${pkgver}.tar.bz2)
+sha1sums=('f030b0cfcce15502aac78188524f32a6f29bd0a4')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXinerama-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXinerama-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxml2/PKGBUILD b/multilib/lib32-libxml2/PKGBUILD
new file mode 100644
index 000000000..94cd5c9d8
--- /dev/null
+++ b/multilib/lib32-libxml2/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 33687 2010-11-27 15:36:04Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+_pkgbasename=libxml2
+pkgname=lib32-$_pkgbasename
+pkgver=2.7.8
+pkgrel=1
+pkgdesc="XML parsing library, version 2 (32-bit)"
+arch=(x86_64)
+license=('custom')
+depends=('lib32-zlib>=1.2.4' 'lib32-readline>=6.1' 'lib32-ncurses>=5.7' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+url="http://www.xmlsoft.org/"
+source=(ftp://ftp.xmlsoft.org/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz
+ shared_library_versionning.patch)
+md5sums=('8127a65e8c3b08856093099b52599c86'
+ '84aeb7c6db023eae044e95d9211dba53')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -Np1 -i "${srcdir}/shared_library_versionning.patch"
+ autoreconf -fi
+ ./configure --prefix=/usr --with-threads --with-history --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir/usr/lib32/xml2Conf.sh"
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxml2/shared_library_versionning.patch b/multilib/lib32-libxml2/shared_library_versionning.patch
new file mode 100644
index 000000000..a0b62bca9
--- /dev/null
+++ b/multilib/lib32-libxml2/shared_library_versionning.patch
@@ -0,0 +1,21 @@
+From 00819877651b87842ed878898ba17dba489820f0 Mon Sep 17 00:00:00 2001
+From: Daniel Veillard <veillard@redhat.com>
+Date: Thu, 04 Nov 2010 20:53:14 +0000
+Subject: Reactivate the shared library versionning script
+
+---
+diff --git a/configure.in b/configure.in
+index 59d0629..a1d2c89 100644
+--- a/configure.in
++++ b/configure.in
+@@ -84,7 +84,7 @@ else
+ esac
+ fi
+ AC_SUBST(VERSION_SCRIPT_FLAGS)
+-AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -z "$VERSION_SCRIPT_FLAGS"])
++AM_CONDITIONAL([USE_VERSION_SCRIPT], [test -n "$VERSION_SCRIPT_FLAGS"])
+
+ dnl
+ dnl We process the AC_ARG_WITH first so that later we can modify
+--
+cgit v0.8.3.1
diff --git a/multilib/lib32-libxmu/PKGBUILD b/multilib/lib32-libxmu/PKGBUILD
new file mode 100644
index 000000000..269d698d7
--- /dev/null
+++ b/multilib/lib32-libxmu/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35276 2010-12-18 01:22:30Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxmu
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.0
+pkgrel=1
+pkgdesc="X11 miscellaneous micro-utility library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'lib32-libxt' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+license=('custom')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXmu-${pkgver}.tar.bz2)
+sha1sums=('81876a0848070bfc4476a2538fc16898eb6d96cd')
+
+build() {
+ cd "${srcdir}/libXmu-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXmu-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxpm/PKGBUILD b/multilib/lib32-libxpm/PKGBUILD
new file mode 100644
index 000000000..4535195de
--- /dev/null
+++ b/multilib/lib32-libxpm/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 35279 2010-12-18 01:24:10Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxpm
+pkgname=lib32-$_pkgbasename
+pkgver=3.5.9
+pkgrel=1
+pkgdesc="X11 pixmap library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxt' 'lib32-libxext' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXpm-${pkgver}.tar.bz2)
+sha1sums=('38258a1d589d3f157e0338d0fd13eec11bc4a39b')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXpm-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXpm-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxrandr/PKGBUILD b/multilib/lib32-libxrandr/PKGBUILD
new file mode 100644
index 000000000..370b5cde2
--- /dev/null
+++ b/multilib/lib32-libxrandr/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 31551 2010-11-02 00:08:36Z heftig $
+# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+_pkgbasename=libxrandr
+pkgname=lib32-$_pkgbasename
+pkgver=1.3.1
+pkgrel=1
+pkgdesc="X11 RandR extension library (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'lib32-libxrender' 'randrproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXrandr-${pkgver}.tar.bz2)
+sha1sums=('8e89622b0656cb2eb22c1f3c646c797dc648ead5')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXrandr-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXrandr-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxrender/PKGBUILD b/multilib/lib32-libxrender/PKGBUILD
new file mode 100644
index 000000000..67dcf1678
--- /dev/null
+++ b/multilib/lib32-libxrender/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26677 2010-09-15 22:51:11Z bluewind $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxrender
+pkgname=lib32-$_pkgbasename
+pkgver=0.9.6
+pkgrel=4
+pkgdesc="X Rendering Extension client library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libx11>=1.3.4' $_pkgbasename)
+makedepends=('pkgconfig' 'gcc-multilib' renderproto)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXrender-${pkgver}.tar.bz2)
+sha1sums=('65bd96dc17da6b064f95109da02d9c9d14cb06dc')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXrender-${pkgver}"
+ ./configure --prefix=/usr --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXrender-${pkgver}"
+
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxslt/PKGBUILD b/multilib/lib32-libxslt/PKGBUILD
new file mode 100644
index 000000000..735c35a14
--- /dev/null
+++ b/multilib/lib32-libxslt/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26680 2010-09-15 22:51:35Z bluewind $
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: John Proctor <jproctor@prium.net>
+
+_pkgbasename=libxslt
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.26
+pkgrel=5
+pkgdesc="XML stylesheet transformation library (32-bit)"
+arch=('x86_64')
+url="http://xmlsoft.org/XSLT/"
+license=('custom')
+depends=('lib32-libxml2>=2.7.7' 'lib32-libgcrypt>=1.4.4' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(ftp://xmlsoft.org/libxslt/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('e61d0364a30146aaa3001296f853b2b9')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --without-python
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxss/PKGBUILD b/multilib/lib32-libxss/PKGBUILD
new file mode 100644
index 000000000..b796a93a5
--- /dev/null
+++ b/multilib/lib32-libxss/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 35282 2010-12-18 01:28:22Z heftig $
+# Maintainer: Florian Pritz <flo@xssn.at>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+_pkgbasename=libxss
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.1
+pkgrel=1
+pkgdesc="X11 Screen Saver extension library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'scrnsaverproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXScrnSaver-${pkgver}.tar.bz2)
+sha1sums=('3c29e2222fd68e26e408234c51c6d8b2edf6ab19')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXScrnSaver-${pkgver}"
+ ./configure --prefix=/usr --sysconfdir=/etc \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXScrnSaver-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxt/PKGBUILD b/multilib/lib32-libxt/PKGBUILD
new file mode 100644
index 000000000..e1c414ab2
--- /dev/null
+++ b/multilib/lib32-libxt/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 31554 2010-11-02 00:10:38Z heftig $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxt
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.9
+pkgrel=1
+pkgdesc="X11 toolkit intrinsics library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libsm' 'lib32-libx11' $_pkgbasename)
+makedepends=('xorg-util-macros' 'gcc-multilib')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXt-${pkgver}.tar.bz2)
+sha1sums=('3222c028b37e70a1d0d88feba5e52c2408e6bd5c')
+
+build() {
+ cd "${srcdir}/libXt-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXt-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxtst/PKGBUILD b/multilib/lib32-libxtst/PKGBUILD
new file mode 100644
index 000000000..bbddb6c40
--- /dev/null
+++ b/multilib/lib32-libxtst/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35285 2010-12-18 01:30:43Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxtst
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="X11 Testing -- Resource extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxext' 'lib32-libxi' 'recordproto' 'inputproto' $_pkgbasename)
+makedepends=('gcc-multilib' 'xorg-util-macros')
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXtst-${pkgver}.tar.bz2)
+sha1sums=('9fb06ed599caf7f9e7115cbbfadf02b47c17aa72')
+
+build() {
+ cd "${srcdir}/libXtst-${pkgver}"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXtst-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxv/PKGBUILD b/multilib/lib32-libxv/PKGBUILD
new file mode 100644
index 000000000..317fe2281
--- /dev/null
+++ b/multilib/lib32-libxv/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 35288 2010-12-18 01:31:33Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxv
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.6
+pkgrel=1
+pkgdesc="X11 Video extension library (32-bit)"
+arch=(x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'videoproto' $_pkgbasename)
+makedepends=('pkgconfig' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXv-${pkgver}.tar.bz2)
+sha1sums=('9ebb6d7936a7b247b9b0f6dc81def39a18e4214c')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${startdir}/src/libXv-${pkgver}
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${startdir}/src/libXv-${pkgver}
+
+ make DESTDIR=${startdir}/pkg install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxvmc/PKGBUILD b/multilib/lib32-libxvmc/PKGBUILD
new file mode 100644
index 000000000..539b563f2
--- /dev/null
+++ b/multilib/lib32-libxvmc/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 26695 2010-09-15 22:53:40Z bluewind $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxvmc
+pkgname=lib32-$_pkgbasename
+pkgver=1.0.6
+pkgrel=3
+pkgdesc="X11 Video Motion Compensation extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxv>=1.0.5' $_pkgbasename)
+makedepends=('pkgconfig' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXvMC-${pkgver}.tar.bz2)
+sha1sums=('4ace7e7ce6b646b5715b2efa561affc89bc87f91')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/libXvMC-${pkgver}
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-static --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/libXvMC-${pkgver}
+
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+
+}
diff --git a/multilib/lib32-libxxf86dga/PKGBUILD b/multilib/lib32-libxxf86dga/PKGBUILD
new file mode 100644
index 000000000..3b9733151
--- /dev/null
+++ b/multilib/lib32-libxxf86dga/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 35291 2010-12-18 01:33:35Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+_pkgbasename=libxxf86dga
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.2
+pkgrel=1
+pkgdesc="X11 Direct Graphics Access extension library (32-bit)"
+arch=(x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('lib32-libxext' 'xf86dgaproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXxf86dga-${pkgver}.tar.bz2)
+sha1sums=('333a9f5c61eba896f420969561606551174645cd')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXxf86dga-${pkgver}"
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXxf86dga-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-libxxf86vm/PKGBUILD b/multilib/lib32-libxxf86vm/PKGBUILD
new file mode 100644
index 000000000..e455615c8
--- /dev/null
+++ b/multilib/lib32-libxxf86vm/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 35294 2010-12-18 01:34:58Z heftig $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+
+_pkgbasename=libxxf86vm
+pkgname=lib32-$_pkgbasename
+pkgver=1.1.1
+pkgrel=1
+pkgdesc="X11 XFree86 video mode extension library (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('lib32-libxext' 'xf86vidmodeproto' $_pkgbasename)
+makedepends=('xorg-util-macros' gcc-multilib)
+options=('!libtool')
+source=(${url}/releases/individual/lib/libXxf86vm-${pkgver}.tar.bz2)
+sha1sums=('2ff2d2b3c60a5c5c0cc4e0a18492d3b7168a03af')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/libXxf86vm-${pkgver}"
+ ./configure --prefix=/usr --disable-static \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/libXxf86vm-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-mesa/PKGBUILD b/multilib/lib32-mesa/PKGBUILD
new file mode 100644
index 000000000..d6e047987
--- /dev/null
+++ b/multilib/lib32-mesa/PKGBUILD
@@ -0,0 +1,341 @@
+# $Id: PKGBUILD 41096 2011-03-03 18:58:55Z lcarlier $
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=lib32-mesa
+pkgname=('lib32-mesa' 'lib32-libgl' 'lib32-libgles' 'lib32-libegl' 'lib32-ati-dri' 'lib32-intel-dri' 'lib32-unichrome-dri' 'lib32-mach64-dri' 'lib32-mga-dri' 'lib32-r128-dri' 'lib32-savage-dri'
+'lib32-sis-dri' 'lib32-tdfx-dri' 'lib32-nouveau-dri')
+
+#_git=true
+_git=false
+
+if [ "${_git}" = "true" ]; then
+ pkgver=7.10.0.git20110215
+ else
+ pkgver=7.10.1
+fi
+
+pkgrel=1
+arch=(x86_64)
+makedepends=('glproto>=1.4.12' 'pkgconfig' 'lib32-libdrm>=2.4.23' 'lib32-libxxf86vm>=1.1.0' 'lib32-libxdamage>=1.1.3' 'lib32-expat>=2.0.1' 'lib32-libx11>=1.3.5' 'lib32-libxt>=1.0.8'
+'lib32-gcc-libs>=4.5' 'dri2proto=2.3' 'lib32-talloc' 'python2' 'libxml2' 'gcc-multilib' imake 'lib32-udev')
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+if [ "${_git}" = "true" ]; then
+ # mesa git shot from 7.10 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.10&id=cc1636b6db85604510f97f8a37d7fd0ecf453866
+ source=('ftp://ftp.archlinux.org/other/mesa/mesa-cc1636b6db85604510f97f8a37d7fd0ecf453866.tar.bz2')
+ md5sums=('f0d9daab4aaaacfd3b756dcb23b268af')
+else
+ source=("ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2")
+ md5sums=('efe8da4d80c2a5d32a800770b8ce5dfa')
+fi
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ autoreconf -vfi
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ # python2 build fixes
+ sed -i -e "s|#![ ]*/usr/bin/python$|#!/usr/bin/python2|" \
+ -e "s|#![ ]*/usr/bin/env python$|#!/usr/bin/env python2|" $(find $srcdir -name '*.py')
+ sed -i -e "s|PYTHON2 = python|PYTHON2 = python2|" configs/{default,autoconf.in}
+ sed -i -e "s|python|python2|" src/gallium/auxiliary/Makefile
+
+ if [ "${_git}" = "true" ]; then
+ ./autogen.sh --prefix=/usr \
+ --with-dri-driverdir=/usr/lib32/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl \
+ --enable-32-bit \
+ --libdir=/usr/lib32
+ else
+ ./configure --prefix=/usr \
+ --with-dri-driverdir=/usr/lib32/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl \
+ --enable-32-bit \
+ --libdir=/usr/lib32
+ fi
+
+ make
+}
+
+package_lib32-libgl() {
+ depends=('lib32-libdrm>=2.4.23' 'lib32-libxxf86vm>=1.1.0' 'lib32-libxdamage>=1.1.3' 'lib32-expat>=2.0.1' 'lib32-gcc-libs>=4.5' 'libgl')
+ pkgdesc="Mesa 3-D graphics library and DRI software rasterizer (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ install -m755 -d "${pkgdir}/usr/lib32"
+ install -m755 -d "${pkgdir}/usr/lib32/xorg/modules/extensions"
+
+ bin/minstall lib32/libGL.so* "${pkgdir}/usr/lib32/"
+
+ if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+ fi
+ ln -s swrastg_dri.so "${pkgdir}/usr/lib32/xorg/modules/dri/swrast_dri.so"
+ ln -s libglx.xorg "${pkgdir}/usr/lib32/xorg/modules/extensions/libglx.so"
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
+ ln -s libgl "$pkgdir/usr/share/licenses/libgl/lib32-libgl"
+}
+
+package_lib32-libgles() {
+ depends=('libgles')
+ pkgdesc="Mesa GLES libraries (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ install -m755 -d "${pkgdir}/usr/lib32"
+ install -m755 -d "${pkgdir}/usr/lib32/pkgconfig"
+ bin/minstall lib32/libGLESv* "${pkgdir}/usr/lib32/"
+ bin/minstall src/mapi/es1api/glesv1_cm.pc "${pkgdir}/usr/lib32/pkgconfig/"
+ bin/minstall src/mapi/es2api/glesv2.pc "${pkgdir}/usr/lib32/pkgconfig/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgles"
+ ln -s libgles "$pkgdir/usr/share/licenses/libgles/lib32-libgles"
+}
+
+package_lib32-libegl() {
+ depends=('lib32-udev' 'libegl')
+ pkgdesc="Mesa libEGL libraries (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ install -m755 -d "${pkgdir}/usr/lib32"
+ install -m755 -d "${pkgdir}/usr/lib32/egl"
+ install -m755 -d "${pkgdir}/usr/lib32/pkgconfig"
+ bin/minstall lib32/libEGL.so* "${pkgdir}/usr/lib32/"
+ bin/minstall lib32/egl/* "${pkgdir}/usr/lib32/egl/"
+ bin/minstall src/egl/main/egl.pc "${pkgdir}/usr/lib32/pkgconfig/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libegl"
+ ln -s libgles "$pkgdir/usr/share/licenses/libegl/lib32-libegl"
+}
+
+package_lib32-mesa() {
+ depends=('lib32-libgl' 'lib32-libx11>=1.3.5' 'lib32-libxt>=1.0.8' 'mesa')
+ pkgdesc="Mesa 3-D graphics libraries and include files (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+ fi
+
+ make DESTDIR="${pkgdir}" install
+
+
+ rm -f "${pkgdir}/usr/lib32/libGL.so"*
+ rm -f "${pkgdir}/usr/lib32/libGLESv"*
+ rm -f "${pkgdir}/usr/lib32/libEGL"*
+ rm -rf "${pkgdir}/usr/lib32/egl"
+ rm -f ${pkgdir}/usr/lib32/pkgconfig/{glesv1_cm.pc,glesv2.pc,egl.pc}
+ rm -rf "$pkgdir"/{usr/include,usr/lib32/xorg}
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
+ ln -s mesa "$pkgdir/usr/share/licenses/mesa/lib32-mesa"
+}
+
+package_lib32-ati-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI + Gallium3D for r300 and later chipsets drivers for AMD/ATI Radeon (32-bit)"
+ conflicts=('xf86-video-ati<6.9.0-6')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C radeon DESTDIR="${pkgdir}" install
+ make -C r200 DESTDIR="${pkgdir}" install
+
+ # DRI drivers for r300 and r600 are removed
+ # gallium3D driver for R300 and R600 r300_dri.so/r600_dri.so
+ if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+ fi
+}
+
+package_lib32-intel-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Intel (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C i810 DESTDIR="${pkgdir}" install
+ make -C i915 DESTDIR="${pkgdir}" install
+ make -C i965 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-unichrome-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C unichrome DESTDIR="${pkgdir}" install
+}
+
+package_lib32-mach64-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Mach64 (32-bit)"
+ conflicts=('xf86-video-mach64<6.8.2')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C mach64 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-mga-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Matrox (32-bit)"
+ conflicts=('xf86-video-mga<1.4.11')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C mga DESTDIR="${pkgdir}" install
+}
+
+package_lib32-r128-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Rage128 (32-bit)"
+ conflicts=('xf86-video-r128<6.8.1')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C r128 DESTDIR="${pkgdir}" install
+}
+
+package_lib32-savage-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage (32-bit)"
+ conflicts=('xf86-video-savage<2.3.1')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C savage DESTDIR="${pkgdir}" install
+}
+
+package_lib32-sis-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for SiS (32-bit)"
+ conflicts=('xf86-video-sis<0.10.2')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C sis DESTDIR="${pkgdir}" install
+}
+
+package_lib32-tdfx-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for 3dfx (32-bit)"
+ conflicts=('xf86-video-tdfx<1.4.3')
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ make -C tdfx DESTDIR="${pkgdir}" install
+}
+
+package_lib32-nouveau-dri() {
+ depends=("lib32-libgl=${pkgver}")
+ pkgdesc="Mesa classic DRI + Gallium3D drivers for Nouveau (32-bit)"
+
+ if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+ fi
+
+ # classic mesa driver for nv10 , nv20 nouveau_vieux_dri.so
+ make -C nouveau DESTDIR="${pkgdir}" install
+ # gallium3D driver for nv30 - nv40 - nv50 nouveau_dri.so
+ if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+ fi
+}
+
diff --git a/multilib/lib32-mpg123/PKGBUILD b/multilib/lib32-mpg123/PKGBUILD
new file mode 100644
index 000000000..289c0baad
--- /dev/null
+++ b/multilib/lib32-mpg123/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 26707 2010-09-15 22:56:36Z bluewind $
+# Maintainer: Hugo Doria <hugo@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+_pkgbasename=mpg123
+pkgname=lib32-$_pkgbasename
+pkgver=1.12.3
+pkgrel=5
+pkgdesc="A console based real time MPEG Audio Player for Layer 1, 2 and 3 (32-bit)"
+arch=('x86_64')
+url="http://sourceforge.net/projects/mpg123"
+license=('GPL2' 'LGPL2.1')
+depends=('lib32-glibc' 'lib32-libtool' 'lib32-alsa-lib' $_pkgbasename)
+makedepends=('lib32-sdl' gcc-multilib libtool-multilib)
+optdepends=('lib32-sdl: for additional audio support')
+options=('libtool')
+source=(http://downloads.sourceforge.net/sourceforge/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('c1568be2d1715786bd6b1a89ec6fa7ef')
+sha1sums=('5e92d3c918f6095264089f711a9f38a5d2168b31')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ ./configure --prefix=/usr --with-audio="alsa sdl" --with-cpu=i586 --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-ncurses/PKGBUILD b/multilib/lib32-ncurses/PKGBUILD
new file mode 100644
index 000000000..d31a7ec98
--- /dev/null
+++ b/multilib/lib32-ncurses/PKGBUILD
@@ -0,0 +1,73 @@
+# $Id: PKGBUILD 35258 2010-12-18 00:55:35Z heftig $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+_pkgbasename=ncurses
+pkgname=lib32-${_pkgbasename}
+pkgver=5.7
+pkgrel=6
+pkgdesc="System V Release 4.0 curses emulation library (32-bit)"
+arch=('x86_64')
+url="http://www.gnu.org/software/ncurses/"
+license=('MIT')
+depends=('lib32-glibc' ${_pkgbasename})
+makedepends=("gcc-multilib")
+source=(ftp://ftp.gnu.org/pub/gnu/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz
+ set_field_buffer.patch)
+md5sums=('cce05daf61a64501ef6cd8da1f727ec6'
+ '04c8d6d95140a29d72c0eb685a2eeffd')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/
+ mkdir ncurses{,w}-build
+
+ # http://permalink.gmane.org/gmane.comp.lib.ncurses.bugs/3559
+ patch -Np1 -i ${srcdir}/set_field_buffer.patch
+
+ cd ${srcdir}/ncursesw-build
+ ../${_pkgbasename}-${pkgver}/configure --prefix=/usr --mandir=/usr/share/man \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} --enable-widec --libdir=/usr/lib32
+ make
+
+ # libncurses.so.5 for external binary support
+ cd ${srcdir}/ncurses-build
+# [ $CARCH = "x86_64" ] && CONFIGFLAG="--with-chtype=long"
+ ../${_pkgbasename}-${pkgver}/configure --prefix=/usr \
+ --with-shared --with-normal --without-debug --without-ada \
+ --with-install-prefix=${pkgdir} $CONFIGFLAG --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/ncursesw-build
+ make install
+
+ install -dm755 ${pkgdir}/usr/lib32
+
+ # Fool packages looking to link to non-wide-character ncurses libraries
+ for lib in curses ncurses form panel menu; do
+ rm -f ${pkgdir}/usr/lib32/lib${lib}.so
+ echo "INPUT(-l${lib}w)" >${pkgdir}/usr/lib32/lib${lib}.so
+ ln -sf lib${lib}w.a ${pkgdir}/usr/lib32/lib${lib}.a
+ done
+ ln -sf libncurses++w.a ${pkgdir}/usr/lib32/libncurses++.a
+
+ # Some packages look for -lcurses during build
+ rm -f ${pkgdir}/usr/lib32/libcursesw.so
+ echo "INPUT(-lncursesw)" >${pkgdir}/usr/lib32/libcursesw.so
+ ln -sf libncurses.so ${pkgdir}/usr/lib32/libcurses.so
+ ln -sf libncursesw.a ${pkgdir}/usr/lib32/libcursesw.a
+ ln -sf libncurses.a ${pkgdir}/usr/lib32/libcurses.a
+
+ # non-widec compatibility library
+ cd ${srcdir}/ncurses-build
+ install -Dm755 lib/libncurses.so.${pkgver} ${pkgdir}/usr/lib32/libncurses.so.${pkgver}
+ ln -sf libncurses.so.${pkgver} ${pkgdir}/usr/lib32/libncurses.so.5
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-ncurses/set_field_buffer.patch b/multilib/lib32-ncurses/set_field_buffer.patch
new file mode 100644
index 000000000..a2132043e
--- /dev/null
+++ b/multilib/lib32-ncurses/set_field_buffer.patch
@@ -0,0 +1,9 @@
+--- src/ncurses-5.7/form/frm_driver.c 2008/10/18 16:25:00 1.88
++++ src/ncurses-5.7/form/frm_driver.c 2008/12/06 23:08:12
+@@ -4366,6 +4366,7 @@
+ delwin(field->working);
+ field->working = newpad(field->drows, field->dcols);
+ }
++ len = Buffer_Length(field);
+ wclear(field->working);
+ mvwaddstr(field->working, 0, 0, value);
diff --git a/multilib/lib32-nspr/PKGBUILD b/multilib/lib32-nspr/PKGBUILD
new file mode 100644
index 000000000..f3bf0198f
--- /dev/null
+++ b/multilib/lib32-nspr/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 26713 2010-09-15 22:57:32Z bluewind $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=nspr
+pkgname=lib32-$_pkgbasename
+pkgver=4.8.6
+pkgrel=2
+pkgdesc="Netscape Portable Runtime (32-bit)"
+arch=('x86_64')
+url="http://www.mozilla.org/projects/nspr/"
+license=('MPL' 'GPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('zip' 'gcc-multilib')
+options=(!emptydirs)
+source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${_pkgbasename}-${pkgver}.tar.gz
+ nspr.pc.in)
+md5sums=('592c275728c29d193fdba8009165990b'
+ 'bce1611f3117b53fc904cab549c09967')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ unset CFLAGS
+ unset CXXFLAGS
+ ./mozilla/nsprpub/configure \
+ --prefix=/usr \
+ --libdir=/usr/lib32 \
+ --includedir=/usr/include/nspr \
+ --enable-optimize \
+ --disable-debug ${confflags}
+ make
+
+ NSPR_LIBS=`./config/nspr-config --libs`
+ NSPR_CFLAGS=`./config/nspr-config --cflags`
+ NSPR_VERSION=`./config/nspr-config --version`
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ sed "${srcdir}/nspr.pc.in" -e "s,%libdir%,/usr/lib32," \
+ -e "s,%prefix%,/usr," \
+ -e "s,%exec_prefix%,/usr/bin," \
+ -e "s,%includedir%,/usr/include/nspr," \
+ -e "s,%NSPR_VERSION%,${NSPR_VERSION}," \
+ -e "s,%FULL_NSPR_LIBS%,${NSPR_LIBS}," \
+ -e "s,%FULL_NSPR_CFLAGS%,${NSPR_CFLAGS}," > "${srcdir}/nspr.pc"
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -D "${srcdir}/nspr.pc" "${pkgdir}"/usr/lib32/pkgconfig/nspr.pc
+ chmod 644 "${pkgdir}/usr/lib32/pkgconfig/nspr.pc"
+ ln -sf nspr.pc "${pkgdir}/usr/lib32/pkgconfig/mozilla-nspr.pc"
+
+ chmod 644 ${pkgdir}/usr/lib32/*.a
+
+ rm -rf "${pkgdir}"/usr/{bin,share,include}
+}
diff --git a/multilib/lib32-nspr/nspr.pc.in b/multilib/lib32-nspr/nspr.pc.in
new file mode 100644
index 000000000..1d8f4a0ca
--- /dev/null
+++ b/multilib/lib32-nspr/nspr.pc.in
@@ -0,0 +1,10 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version: %NSPR_VERSION%
+Libs: %FULL_NSPR_LIBS%
+Cflags: %FULL_NSPR_CFLAGS%
diff --git a/multilib/lib32-nss/PKGBUILD b/multilib/lib32-nss/PKGBUILD
new file mode 100644
index 000000000..1663f1c25
--- /dev/null
+++ b/multilib/lib32-nss/PKGBUILD
@@ -0,0 +1,81 @@
+# $Id: PKGBUILD 35060 2010-12-15 09:33:55Z heftig $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=nss
+pkgname=lib32-$_pkgbasename
+pkgver=3.12.8
+pkgrel=1
+pkgdesc="Mozilla's Netscape Security Services Library that implements PKI support (32-bit)"
+arch=('x86_64')
+url="http://www.mozilla.org/projects/security/pki/nss/"
+license=('MPL' 'GPL')
+_nsprver=4.8.6
+depends=("lib32-nspr>=${_nsprver}" 'lib32-sqlite3>=3.6.17' "$_pkgbasename" 'lib32-zlib')
+makedepends=('gcc-multilib' 'perl')
+source=(ftp://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/${_pkgbasename}-${pkgver}.tar.gz
+ nss-no-rpath.patch
+ nss.pc.in
+ add_spi+cacert_ca_certs.patch
+ ssl-renegotiate-transitional.patch)
+options=('!strip')
+md5sums=('40bf1bb0c7567827d3768d1fc6081100'
+ 'e5c97db0c884d5f4cfda21e562dc9bba'
+ 'c547b030c57fe1ed8b77c73bf52b3ded'
+ '7f39c19b1dfd62d7db7d8bf19f156fed'
+ 'd83c7b61abb7e9f8f7bcd157183d1ade')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ # Adds the SPI Inc. and CAcert.org CA certificates - patch from Debian
+ patch -Np1 -i "${srcdir}/add_spi+cacert_ca_certs.patch"
+ # Adds transitional SSL renegotiate support - patch from Debian
+ patch -Np1 -i "${srcdir}/ssl-renegotiate-transitional.patch"
+ # Removes rpath
+ patch -Np0 -i "${srcdir}/nss-no-rpath.patch"
+
+ make -C mozilla/security/nss/lib/ckfw/builtins generate
+
+ unset CFLAGS
+ unset CXXFLAGS
+ export PKG_CONFIG_PATH=/usr/lib32/pkgconfig
+ export BUILD_OPT=1
+ export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+ export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
+ export NSS_USE_SYSTEM_SQLITE=1
+ export NSPR_INCLUDE_DIR=`pkg-config --cflags-only-I nspr | sed 's/-I//'`
+ export NSPR_LIB_DIR=`pkg-config --libs-only-L nspr | sed 's/-L.//'`
+
+ make -j 1 -C mozilla/security/coreconf
+ make -j 1 -C mozilla/security/dbm
+ make -j 1 -C mozilla/security/nss
+
+ NSS_VMAJOR=`grep "#define.*NSS_VMAJOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+ NSS_VMINOR=`grep "#define.*NSS_VMINOR" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+ NSS_VPATCH=`grep "#define.*NSS_VPATCH" mozilla/security/nss/lib/nss/nss.h | awk '{print $3}'`
+
+ sed "${srcdir}/nss.pc.in" -e "s,%libdir%,/usr/lib32,g" \
+ -e "s,%prefix%,/usr,g" \
+ -e "s,%exec_prefix%,/usr/bin,g" \
+ -e "s,%includedir%,/usr/include/nss,g" \
+ -e "s,%NSPR_VERSION%,${_nsprver},g" \
+ -e "s,%NSS_VERSION%,${pkgver},g" > \
+ "${srcdir}/nss.pc"
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ install -m755 -d "${pkgdir}/usr/lib32/pkgconfig"
+ install -m644 "${srcdir}"/nss.pc "${pkgdir}/usr/lib32/pkgconfig/nss.pc"
+ ln -sf nss.pc "${pkgdir}/usr/lib32/pkgconfig/mozilla-nss.pc"
+ chmod 644 ${pkgdir}/usr/lib32/pkgconfig/*.pc
+
+ for file in libsoftokn3.so libfreebl3.so libnss3.so libnssutil3.so \
+ libssl3.so libsmime3.so libnssckbi.so libnssdbm3.so
+ do
+ install -m755 mozilla/dist/*.OBJ/lib/${file} "${pkgdir}/usr/lib32/"
+ done
+
+ install -m644 mozilla/dist/*.OBJ/lib/libcrmf.a "${pkgdir}/usr/lib32/"
+ install -m644 mozilla/dist/*.OBJ/lib/*.chk "${pkgdir}/usr/lib32/"
+
+}
diff --git a/multilib/lib32-nss/add_spi+cacert_ca_certs.patch b/multilib/lib32-nss/add_spi+cacert_ca_certs.patch
new file mode 100644
index 000000000..1cc7c18f5
--- /dev/null
+++ b/multilib/lib32-nss/add_spi+cacert_ca_certs.patch
@@ -0,0 +1,561 @@
+--- a/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
++++ b/mozilla/security/nss/lib/ckfw/builtins/certdata.txt
+@@ -20926,3 +20926,558 @@ CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "CAcert.org Class 1 Root CA"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 1 Root CA"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\000
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\007\075\060\202\005\045\240\003\002\001\002\002\001\000
++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060
++\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164
++\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164
++\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056
++\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101
++\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165
++\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110
++\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100
++\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\063
++\060\063\063\060\061\062\062\071\064\071\132\027\015\063\063\060
++\063\062\071\061\062\062\071\064\071\132\060\171\061\020\060\016
++\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036
++\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057
++\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042
++\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164
++\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151
++\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011
++\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162
++\164\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110
++\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002
++\012\002\202\002\001\000\316\042\300\342\106\175\354\066\050\007
++\120\226\362\240\063\100\214\113\361\073\146\077\061\345\153\002
++\066\333\326\174\366\361\210\217\116\167\066\005\101\225\371\011
++\360\022\317\106\206\163\140\267\156\176\350\300\130\144\256\315
++\260\255\105\027\014\143\372\147\012\350\326\322\277\076\347\230
++\304\360\114\372\340\003\273\065\135\154\041\336\236\040\331\272
++\315\146\062\067\162\372\367\010\365\307\315\130\311\216\347\016
++\136\352\076\376\034\241\024\012\025\154\206\204\133\144\146\052
++\172\251\113\123\171\365\210\242\173\356\057\012\141\053\215\262
++\176\115\126\245\023\354\352\332\222\236\254\104\101\036\130\140
++\145\005\146\370\300\104\275\313\224\367\102\176\013\367\145\150
++\230\121\005\360\363\005\221\004\035\033\027\202\354\310\127\273
++\303\153\172\210\361\260\162\314\045\133\040\221\354\026\002\022
++\217\062\351\027\030\110\320\307\005\056\002\060\102\270\045\234
++\005\153\077\252\072\247\353\123\110\367\350\322\266\007\230\334
++\033\306\064\177\177\311\034\202\172\005\130\053\010\133\363\070
++\242\253\027\135\146\311\230\327\236\020\213\242\322\335\164\232
++\367\161\014\162\140\337\315\157\230\063\235\226\064\166\076\044
++\172\222\260\016\225\036\157\346\240\105\070\107\252\327\101\355
++\112\267\022\366\327\033\203\212\017\056\330\011\266\131\327\252
++\004\377\322\223\175\150\056\335\213\113\253\130\272\057\215\352
++\225\247\240\303\124\211\245\373\333\213\121\042\235\262\303\276
++\021\276\054\221\206\213\226\170\255\040\323\212\057\032\077\306
++\320\121\145\207\041\261\031\001\145\177\105\034\207\365\174\320
++\101\114\117\051\230\041\375\063\037\165\014\004\121\372\031\167
++\333\324\024\034\356\201\303\035\365\230\267\151\006\221\042\335
++\000\120\314\201\061\254\022\007\173\070\332\150\133\346\053\324
++\176\311\137\255\350\353\162\114\363\001\345\113\040\277\232\246
++\127\312\221\000\001\213\241\165\041\067\265\143\015\147\076\106
++\117\160\040\147\316\305\326\131\333\002\340\360\322\313\315\272
++\142\267\220\101\350\335\040\344\051\274\144\051\102\310\042\334
++\170\232\377\103\354\230\033\011\121\113\132\132\302\161\361\304
++\313\163\251\345\241\013\002\003\001\000\001\243\202\001\316\060
++\202\001\312\060\035\006\003\125\035\016\004\026\004\024\026\265
++\062\033\324\307\363\340\346\216\363\275\322\260\072\356\262\071
++\030\321\060\201\243\006\003\125\035\043\004\201\233\060\201\230
++\200\024\026\265\062\033\324\307\363\340\346\216\363\275\322\260
++\072\356\262\071\030\321\241\175\244\173\060\171\061\020\060\016
++\006\003\125\004\012\023\007\122\157\157\164\040\103\101\061\036
++\060\034\006\003\125\004\013\023\025\150\164\164\160\072\057\057
++\167\167\167\056\143\141\143\145\162\164\056\157\162\147\061\042
++\060\040\006\003\125\004\003\023\031\103\101\040\103\145\162\164
++\040\123\151\147\156\151\156\147\040\101\165\164\150\157\162\151
++\164\171\061\041\060\037\006\011\052\206\110\206\367\015\001\011
++\001\026\022\163\165\160\160\157\162\164\100\143\141\143\145\162
++\164\056\157\162\147\202\001\000\060\017\006\003\125\035\023\001
++\001\377\004\005\060\003\001\001\377\060\062\006\003\125\035\037
++\004\053\060\051\060\047\240\045\240\043\206\041\150\164\164\160
++\163\072\057\057\167\167\167\056\143\141\143\145\162\164\056\157
++\162\147\057\162\145\166\157\153\145\056\143\162\154\060\060\006
++\011\140\206\110\001\206\370\102\001\004\004\043\026\041\150\164
++\164\160\163\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\057\162\145\166\157\153\145\056\143\162\154\060
++\064\006\011\140\206\110\001\206\370\102\001\010\004\047\026\045
++\150\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162
++\164\056\157\162\147\057\151\156\144\145\170\056\160\150\160\077
++\151\144\075\061\060\060\126\006\011\140\206\110\001\206\370\102
++\001\015\004\111\026\107\124\157\040\147\145\164\040\171\157\165
++\162\040\157\167\156\040\143\145\162\164\151\146\151\143\141\164
++\145\040\146\157\162\040\106\122\105\105\040\150\145\141\144\040
++\157\166\145\162\040\164\157\040\150\164\164\160\072\057\057\167
++\167\167\056\143\141\143\145\162\164\056\157\162\147\060\015\006
++\011\052\206\110\206\367\015\001\001\004\005\000\003\202\002\001
++\000\050\307\356\234\202\002\272\134\200\022\312\065\012\035\201
++\157\211\152\231\314\362\150\017\177\247\341\215\130\225\076\275
++\362\006\303\220\132\254\265\140\366\231\103\001\243\210\160\234
++\235\142\235\244\207\257\147\130\015\060\066\073\346\255\110\323
++\313\164\002\206\161\076\342\053\003\150\361\064\142\100\106\073
++\123\352\050\364\254\373\146\225\123\212\115\135\375\073\331\140
++\327\312\171\151\073\261\145\222\246\306\201\202\134\234\315\353
++\115\001\212\245\337\021\125\252\025\312\037\067\300\202\230\160
++\141\333\152\174\226\243\216\056\124\076\117\041\251\220\357\334
++\202\277\334\350\105\255\115\220\163\010\074\224\145\260\004\231
++\166\177\342\274\302\152\025\252\227\004\067\044\330\036\224\116
++\155\016\121\276\326\304\217\312\226\155\367\103\337\350\060\145
++\047\073\173\273\103\103\143\304\103\367\262\354\150\314\341\031
++\216\042\373\230\341\173\132\076\001\067\073\213\010\260\242\363
++\225\116\032\313\233\315\232\261\333\262\160\360\055\112\333\330
++\260\343\157\105\110\063\022\377\376\074\062\052\124\367\304\367
++\212\360\210\043\302\107\376\144\172\161\300\321\036\246\143\260
++\007\176\244\057\323\001\217\334\237\053\266\306\010\251\017\223
++\110\045\374\022\375\237\102\334\363\304\076\366\127\260\327\335
++\151\321\006\167\064\012\113\322\312\240\377\034\306\214\311\026
++\276\304\314\062\067\150\163\137\010\373\121\367\111\123\066\005
++\012\225\002\114\362\171\032\020\366\330\072\165\234\363\035\361
++\242\015\160\147\206\033\263\026\365\057\345\244\353\171\206\371
++\075\013\302\163\013\245\231\254\157\374\147\270\345\057\013\246
++\030\044\215\173\321\110\065\051\030\100\254\223\140\341\226\206
++\120\264\172\131\330\217\041\013\237\317\202\221\306\073\277\153
++\334\007\221\271\227\126\043\252\266\154\224\306\110\006\074\344
++\316\116\252\344\366\057\011\334\123\157\056\374\164\353\072\143
++\231\302\246\254\211\274\247\262\104\240\015\212\020\343\154\362
++\044\313\372\233\237\160\107\056\336\024\213\324\262\040\011\226
++\242\144\361\044\034\334\241\065\234\025\262\324\274\125\056\175
++\006\365\234\016\125\364\132\326\223\332\166\255\045\163\114\305
++\103
++END
++
++# Trust for Certificate "CAcert.org Class 1 Root CA"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 1 Root CA"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\023\134\354\066\364\234\270\351\073\032\262\160\315\200\210\106
++\166\316\217\063
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\246\033\067\136\071\015\234\066\124\356\275\040\061\106\037\153
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\000
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "CAcert.org Class 3 Root CA"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 3 Root CA"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\124\061\024\060\022\006\003\125\004\012\023\013\103\101\143
++\145\162\164\040\111\156\143\056\061\036\060\034\006\003\125\004
++\013\023\025\150\164\164\160\072\057\057\167\167\167\056\103\101
++\143\145\162\164\056\157\162\147\061\034\060\032\006\003\125\004
++\003\023\023\103\101\143\145\162\164\040\103\154\141\163\163\040
++\063\040\122\157\157\164
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\001
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\006\010\060\202\003\360\240\003\002\001\002\002\001\001
++\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060
++\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157\164
++\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150\164
++\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164\056
++\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103\101
++\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101\165
++\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206\110
++\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164\100
++\143\141\143\145\162\164\056\157\162\147\060\036\027\015\060\065
++\061\060\061\064\060\067\063\066\065\065\132\027\015\063\063\060
++\063\062\070\060\067\063\066\065\065\132\060\124\061\024\060\022
++\006\003\125\004\012\023\013\103\101\143\145\162\164\040\111\156
++\143\056\061\036\060\034\006\003\125\004\013\023\025\150\164\164
++\160\072\057\057\167\167\167\056\103\101\143\145\162\164\056\157
++\162\147\061\034\060\032\006\003\125\004\003\023\023\103\101\143
++\145\162\164\040\103\154\141\163\163\040\063\040\122\157\157\164
++\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001
++\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001
++\000\253\111\065\021\110\174\322\046\176\123\224\317\103\251\335
++\050\327\102\052\213\363\207\170\031\130\174\017\236\332\211\175
++\341\373\353\162\220\015\164\241\226\144\253\237\240\044\231\163
++\332\342\125\166\307\027\173\365\004\254\106\270\303\276\177\144
++\215\020\154\044\363\141\234\300\362\220\372\121\346\365\151\001
++\143\303\017\126\342\112\102\317\342\104\214\045\050\250\305\171
++\011\175\106\271\212\363\351\363\064\051\010\105\344\034\237\313
++\224\004\034\201\250\024\263\230\145\304\103\354\116\202\215\011
++\321\275\252\133\215\222\320\354\336\220\305\177\012\302\343\353
++\346\061\132\136\164\076\227\063\131\350\303\003\075\140\063\277
++\367\321\157\107\304\315\356\142\203\122\156\056\010\232\244\331
++\025\030\221\246\205\222\107\260\256\110\353\155\267\041\354\205
++\032\150\162\065\253\377\360\020\135\300\364\224\247\152\325\073
++\222\176\114\220\005\176\223\301\054\213\244\216\142\164\025\161
++\156\013\161\003\352\257\025\070\232\324\322\005\162\157\214\371
++\053\353\132\162\045\371\071\106\343\162\033\076\004\303\144\047
++\042\020\052\212\117\130\247\003\255\276\264\056\023\355\135\252
++\110\327\325\175\324\052\173\134\372\106\004\120\344\314\016\102
++\133\214\355\333\362\317\374\226\223\340\333\021\066\124\142\064
++\070\217\014\140\233\073\227\126\070\255\363\322\133\213\240\133
++\352\116\226\270\174\327\325\240\206\160\100\323\221\051\267\242
++\074\255\365\214\273\317\032\222\212\344\064\173\300\330\154\137
++\351\012\302\303\247\040\232\132\337\054\135\122\134\272\107\325
++\233\357\044\050\160\070\040\057\325\177\051\300\262\101\003\150
++\222\314\340\234\314\227\113\105\357\072\020\012\253\160\072\230
++\225\160\255\065\261\352\205\053\244\034\200\041\061\251\256\140
++\172\200\046\110\000\270\001\300\223\143\125\042\221\074\126\347
++\257\333\072\045\363\217\061\124\352\046\213\201\131\371\241\321
++\123\021\305\173\235\003\366\164\021\340\155\261\054\077\054\206
++\221\231\161\232\246\167\213\064\140\321\024\264\054\254\235\257
++\214\020\323\237\304\152\370\157\023\374\163\131\367\146\102\164
++\036\212\343\370\334\322\157\230\234\313\107\230\225\100\005\373
++\351\002\003\001\000\001\243\201\277\060\201\274\060\017\006\003
++\125\035\023\001\001\377\004\005\060\003\001\001\377\060\135\006
++\010\053\006\001\005\005\007\001\001\004\121\060\117\060\043\006
++\010\053\006\001\005\005\007\060\001\206\027\150\164\164\160\072
++\057\057\157\143\163\160\056\103\101\143\145\162\164\056\157\162
++\147\057\060\050\006\010\053\006\001\005\005\007\060\002\206\034
++\150\164\164\160\072\057\057\167\167\167\056\103\101\143\145\162
++\164\056\157\162\147\057\143\141\056\143\162\164\060\112\006\003
++\125\035\040\004\103\060\101\060\077\006\010\053\006\001\004\001
++\201\220\112\060\063\060\061\006\010\053\006\001\005\005\007\002
++\001\026\045\150\164\164\160\072\057\057\167\167\167\056\103\101
++\143\145\162\164\056\157\162\147\057\151\156\144\145\170\056\160
++\150\160\077\151\144\075\061\060\060\015\006\011\052\206\110\206
++\367\015\001\001\004\005\000\003\202\002\001\000\177\010\210\241
++\332\032\120\111\332\211\373\241\010\162\363\212\367\036\304\072
++\264\171\133\040\060\261\105\336\302\135\323\145\151\361\302\135
++\124\124\074\205\137\271\173\102\221\302\231\375\033\121\233\253
++\106\245\241\020\123\236\155\210\254\163\156\054\063\246\360\364
++\236\340\165\301\076\210\105\251\341\146\103\376\126\132\321\172
++\101\170\367\100\332\112\072\361\013\133\245\273\026\006\346\302
++\347\223\271\205\115\227\117\261\036\070\103\200\357\233\015\214
++\357\270\247\140\000\207\127\175\036\104\034\313\043\357\233\074
++\231\235\257\265\051\034\105\171\026\226\115\047\155\361\034\154
++\303\302\125\144\263\274\024\342\363\244\037\036\062\374\047\025
++\005\317\335\056\256\076\202\141\173\360\041\020\030\366\104\352
++\123\071\371\334\320\232\040\340\306\273\340\273\132\117\304\231
++\310\007\275\265\275\242\333\056\142\015\102\064\101\274\377\213
++\212\365\121\042\252\210\060\000\342\260\324\274\276\145\272\325
++\003\127\171\233\350\334\310\115\370\120\355\221\245\122\050\242
++\254\373\066\130\076\351\224\053\221\120\207\033\326\136\326\214
++\314\367\017\020\014\122\116\320\026\141\345\345\012\154\277\027
++\307\162\106\127\234\230\365\154\140\143\172\157\136\271\116\057
++\310\271\271\273\152\205\274\230\015\355\371\076\227\204\064\224
++\256\000\257\241\345\347\222\156\116\275\363\342\331\024\213\134
++\322\353\001\154\240\027\245\055\020\353\234\172\112\275\275\356
++\316\375\355\042\100\253\160\070\210\365\012\207\152\302\253\005
++\140\311\110\005\332\123\301\336\104\167\152\263\363\074\074\355
++\200\274\246\070\112\051\044\137\376\131\073\233\045\172\126\143
++\000\144\271\135\244\142\175\127\066\117\255\203\357\037\222\123
++\240\216\167\127\335\345\141\021\075\043\000\220\114\074\372\243
++\140\223\004\243\257\065\366\016\152\217\117\112\140\247\205\005
++\154\106\241\217\364\307\166\343\241\131\127\367\161\262\304\156
++\024\134\155\155\101\146\337\033\223\261\324\000\303\356\313\317
++\074\075\041\200\251\137\143\145\374\335\340\137\244\364\053\360
++\205\161\101\324\147\045\373\032\261\227\256\326\231\202\023\101
++\322\156\245\033\231\047\200\347\013\251\250\000
++END
++
++# Trust for Certificate "CAcert.org Class 3 Root CA"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "CAcert.org Class 3 Root CA"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\333\114\102\151\007\077\351\302\243\175\211\012\134\033\030\304
++\030\116\052\055
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\163\077\065\124\035\104\311\351\132\112\357\121\255\003\006\266
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\171\061\020\060\016\006\003\125\004\012\023\007\122\157\157
++\164\040\103\101\061\036\060\034\006\003\125\004\013\023\025\150
++\164\164\160\072\057\057\167\167\167\056\143\141\143\145\162\164
++\056\157\162\147\061\042\060\040\006\003\125\004\003\023\031\103
++\101\040\103\145\162\164\040\123\151\147\156\151\156\147\040\101
++\165\164\150\157\162\151\164\171\061\041\060\037\006\011\052\206
++\110\206\367\015\001\011\001\026\022\163\165\160\160\157\162\164
++\100\143\141\143\145\162\164\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\001\001
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
++
++#
++# Certificate "Software in the Public Interest, Inc. Root CA (2008)"
++#
++CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
++CKA_SUBJECT MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_ID UTF8 "0"
++CKA_ISSUER MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\011\000\350\216\266\311\370\052\024\050
++END
++CKA_VALUE MULTILINE_OCTAL
++\060\202\010\016\060\202\005\366\240\003\002\001\002\002\011\000
++\350\216\266\311\370\052\024\050\060\015\006\011\052\206\110\206
++\367\015\001\001\005\005\000\060\201\274\061\013\060\011\006\003
++\125\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010
++\023\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125
++\004\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163
++\061\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167
++\141\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151
++\143\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003
++\125\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061
++\036\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146
++\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061
++\045\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026
++\150\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151
++\156\143\056\157\162\147\060\036\027\015\060\070\060\065\061\063
++\060\070\060\067\065\066\132\027\015\061\070\060\065\061\061\060
++\070\060\067\065\066\132\060\201\274\061\013\060\011\006\003\125
++\004\006\023\002\125\123\061\020\060\016\006\003\125\004\010\023
++\007\111\156\144\151\141\156\141\061\025\060\023\006\003\125\004
++\007\023\014\111\156\144\151\141\156\141\160\157\154\151\163\061
++\050\060\046\006\003\125\004\012\023\037\123\157\146\164\167\141
++\162\145\040\151\156\040\164\150\145\040\120\165\142\154\151\143
++\040\111\156\164\145\162\145\163\164\061\023\060\021\006\003\125
++\004\013\023\012\150\157\163\164\155\141\163\164\145\162\061\036
++\060\034\006\003\125\004\003\023\025\103\145\162\164\151\146\151
++\143\141\164\145\040\101\165\164\150\157\162\151\164\171\061\045
++\060\043\006\011\052\206\110\206\367\015\001\011\001\026\026\150
++\157\163\164\155\141\163\164\145\162\100\163\160\151\055\151\156
++\143\056\157\162\147\060\202\002\042\060\015\006\011\052\206\110
++\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002
++\012\002\202\002\001\000\334\066\346\107\102\302\304\121\165\051
++\207\100\303\330\216\041\006\322\030\116\353\357\040\275\220\074
++\205\020\023\214\051\133\224\143\366\364\055\361\006\102\221\271
++\031\304\102\151\010\277\213\066\105\352\050\005\063\111\110\240
++\047\103\223\065\212\101\330\170\263\360\357\263\156\055\335\321
++\313\175\352\364\165\046\323\076\220\072\356\327\347\054\004\265
++\174\341\365\174\305\116\357\167\275\134\242\223\063\222\316\175
++\201\110\317\153\265\042\054\010\203\375\323\325\317\073\055\375
++\265\111\220\133\366\255\115\023\312\336\323\246\235\123\121\161
++\143\106\370\112\026\134\230\356\055\155\232\026\241\166\220\342
++\140\103\231\326\211\326\154\056\172\230\262\013\003\054\343\172
++\117\307\335\343\314\343\112\152\215\171\122\372\364\301\257\056
++\217\052\010\313\033\051\202\222\162\103\274\316\210\251\252\247
++\212\121\103\125\205\232\067\003\170\223\310\360\275\264\101\310
++\007\102\232\313\065\227\172\212\201\145\336\035\124\010\001\361
++\144\134\267\027\032\121\274\036\303\131\207\166\030\026\230\356
++\277\366\147\201\213\006\065\305\113\155\131\031\307\322\306\110
++\276\156\024\050\203\112\020\234\033\365\157\274\251\216\365\151
++\376\262\301\125\314\347\024\311\371\133\024\123\121\007\352\316
++\075\344\117\050\037\074\141\011\327\063\322\156\247\156\324\307
++\023\011\157\153\135\024\356\235\211\033\245\152\362\366\370\320
++\162\216\352\162\037\057\064\152\051\012\305\012\354\034\100\205
++\022\367\246\245\323\117\255\300\205\214\114\174\163\040\314\123
++\030\361\262\130\114\001\365\277\352\144\325\134\071\305\316\154
++\314\123\132\126\272\101\017\045\337\153\120\266\307\212\240\275
++\002\302\305\073\125\245\262\144\042\204\121\050\126\256\061\356
++\136\373\013\026\115\106\005\221\200\104\355\254\155\360\127\250
++\372\353\141\110\240\313\033\263\037\216\315\305\041\167\003\204
++\036\374\254\243\103\010\143\214\355\371\047\357\264\260\135\147
++\326\117\355\320\213\076\135\133\311\221\275\226\002\204\075\305
++\115\274\102\077\164\375\074\135\254\134\110\066\136\207\061\057
++\030\154\304\150\356\241\213\311\131\320\030\343\000\200\263\124
++\047\056\231\360\025\123\002\003\001\000\001\243\202\002\017\060
++\202\002\013\060\035\006\003\125\035\016\004\026\004\024\064\161
++\321\070\327\025\066\203\107\153\327\067\144\102\073\216\215\122
++\235\253\060\201\361\006\003\125\035\043\004\201\351\060\201\346
++\200\024\064\161\321\070\327\025\066\203\107\153\327\067\144\102
++\073\216\215\122\235\253\241\201\302\244\201\277\060\201\274\061
++\013\060\011\006\003\125\004\006\023\002\125\123\061\020\060\016
++\006\003\125\004\010\023\007\111\156\144\151\141\156\141\061\025
++\060\023\006\003\125\004\007\023\014\111\156\144\151\141\156\141
++\160\157\154\151\163\061\050\060\046\006\003\125\004\012\023\037
++\123\157\146\164\167\141\162\145\040\151\156\040\164\150\145\040
++\120\165\142\154\151\143\040\111\156\164\145\162\145\163\164\061
++\023\060\021\006\003\125\004\013\023\012\150\157\163\164\155\141
++\163\164\145\162\061\036\060\034\006\003\125\004\003\023\025\103
++\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157
++\162\151\164\171\061\045\060\043\006\011\052\206\110\206\367\015
++\001\011\001\026\026\150\157\163\164\155\141\163\164\145\162\100
++\163\160\151\055\151\156\143\056\157\162\147\202\011\000\350\216
++\266\311\370\052\024\050\060\017\006\003\125\035\023\001\001\377
++\004\005\060\003\001\001\377\060\021\006\011\140\206\110\001\206
++\370\102\001\001\004\004\003\002\000\007\060\011\006\003\125\035
++\022\004\002\060\000\060\056\006\011\140\206\110\001\206\370\102
++\001\015\004\041\026\037\123\157\146\164\167\141\162\145\040\151
++\156\040\164\150\145\040\120\165\142\154\151\143\040\111\156\164
++\145\162\145\163\164\060\060\006\011\140\206\110\001\206\370\102
++\001\004\004\043\026\041\150\164\164\160\163\072\057\057\143\141
++\056\163\160\151\055\151\156\143\056\157\162\147\057\143\141\055
++\143\162\154\056\160\145\155\060\062\006\011\140\206\110\001\206
++\370\102\001\003\004\045\026\043\150\164\164\160\163\072\057\057
++\143\141\056\163\160\151\055\151\156\143\056\157\162\147\057\143
++\145\162\164\055\143\162\154\056\160\145\155\060\041\006\003\125
++\035\021\004\032\060\030\201\026\150\157\163\164\155\141\163\164
++\145\162\100\163\160\151\055\151\156\143\056\157\162\147\060\016
++\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\015
++\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002
++\001\000\264\315\275\340\271\352\262\003\053\176\062\351\336\162
++\077\311\113\202\136\235\342\257\125\011\242\014\124\350\317\030
++\074\050\040\035\251\273\003\002\057\122\071\042\371\027\317\255
++\147\220\263\003\177\330\025\343\153\176\273\233\126\001\257\065
++\324\332\271\307\147\027\233\324\325\016\067\263\040\101\056\014
++\001\304\133\371\145\076\302\141\350\322\360\152\225\160\303\306
++\157\325\065\244\254\131\162\341\211\337\241\240\235\044\275\051
++\171\351\141\052\331\323\036\311\106\244\010\170\101\222\162\017
++\253\024\165\355\011\360\242\360\134\357\303\012\142\040\267\302
++\050\146\256\114\057\056\217\105\143\046\226\360\356\061\346\213
++\125\233\252\072\371\202\071\035\210\074\342\007\165\032\341\017
++\261\060\274\161\062\322\072\376\372\241\211\363\103\054\326\162
++\304\171\247\025\110\005\300\330\055\162\002\343\313\075\026\152
++\272\311\270\021\020\342\111\205\314\226\107\140\005\045\056\357
++\165\131\063\365\107\031\026\357\332\154\137\007\310\246\120\266
++\035\313\146\064\045\374\146\203\353\305\266\060\101\370\106\104
++\142\250\301\014\124\346\352\114\132\050\346\256\306\267\376\177
++\073\226\250\056\356\307\150\076\335\000\075\051\257\052\143\253
++\137\356\111\052\055\305\334\373\321\306\323\321\227\126\122\206
++\266\224\353\324\140\121\267\374\036\233\314\002\233\324\037\217
++\371\112\217\266\056\050\073\027\314\305\246\005\343\322\323\265
++\306\003\311\341\110\102\233\313\077\344\027\340\376\015\001\225
++\011\272\270\015\161\344\011\160\167\102\330\115\341\102\251\140
++\203\327\027\211\103\322\324\335\247\030\266\253\324\044\045\207
++\265\324\342\374\056\042\151\275\255\150\054\377\162\265\230\252
++\006\234\347\052\152\270\241\223\166\316\260\363\177\234\341\340
++\117\270\330\206\106\245\063\002\054\045\141\067\052\222\310\254
++\201\164\150\143\207\063\166\275\005\177\136\325\325\002\155\275
++\257\377\052\132\252\111\354\230\171\107\123\221\366\016\064\132
++\311\245\306\353\262\343\305\254\266\240\160\065\273\310\121\151
++\320\362\265\242\062\156\274\077\240\067\071\174\161\066\246\005
++\337\014\022\344\026\247\305\326\313\143\243\225\160\077\346\004
++\243\140
++END
++
++# Trust for Certificate "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
++CKA_TOKEN CK_BBOOL CK_TRUE
++CKA_PRIVATE CK_BBOOL CK_FALSE
++CKA_MODIFIABLE CK_BBOOL CK_FALSE
++CKA_LABEL UTF8 "Software in the Public Interest, Inc. Root CA (2008)"
++CKA_CERT_SHA1_HASH MULTILINE_OCTAL
++\257\160\210\103\203\202\002\025\315\141\306\274\354\375\067\044
++\251\220\103\034
++END
++CKA_CERT_MD5_HASH MULTILINE_OCTAL
++\052\107\237\140\273\203\164\157\001\003\327\013\015\366\015\170
++END
++CKA_ISSUER MULTILINE_OCTAL
++\060\201\274\061\013\060\011\006\003\125\004\006\023\002\125\123
++\061\020\060\016\006\003\125\004\010\023\007\111\156\144\151\141
++\156\141\061\025\060\023\006\003\125\004\007\023\014\111\156\144
++\151\141\156\141\160\157\154\151\163\061\050\060\046\006\003\125
++\004\012\023\037\123\157\146\164\167\141\162\145\040\151\156\040
++\164\150\145\040\120\165\142\154\151\143\040\111\156\164\145\162
++\145\163\164\061\023\060\021\006\003\125\004\013\023\012\150\157
++\163\164\155\141\163\164\145\162\061\036\060\034\006\003\125\004
++\003\023\025\103\145\162\164\151\146\151\143\141\164\145\040\101
++\165\164\150\157\162\151\164\171\061\045\060\043\006\011\052\206
++\110\206\367\015\001\011\001\026\026\150\157\163\164\155\141\163
++\164\145\162\100\163\160\151\055\151\156\143\056\157\162\147
++END
++CKA_SERIAL_NUMBER MULTILINE_OCTAL
++\002\011\000\350\216\266\311\370\052\024\050
++END
++CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
++CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
diff --git a/multilib/lib32-nss/nss-no-rpath.patch b/multilib/lib32-nss/nss-no-rpath.patch
new file mode 100644
index 000000000..35ea57315
--- /dev/null
+++ b/multilib/lib32-nss/nss-no-rpath.patch
@@ -0,0 +1,14 @@
+--- ./mozilla/security/nss/cmd/platlibs.mk.withrpath 2007-02-19 07:17:06.000000000 +0100
++++ ./mozilla/security/nss/cmd/platlibs.mk 2007-02-19 07:18:07.000000000 +0100
+@@ -52,9 +52,9 @@
+
+ ifeq ($(OS_ARCH), Linux)
+ ifeq ($(USE_64), 1)
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:$$ORIGIN/../lib'
+ else
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib'
+ endif
+ endif
+
diff --git a/multilib/lib32-nss/nss-nolocalsql.patch b/multilib/lib32-nss/nss-nolocalsql.patch
new file mode 100644
index 000000000..dc75a223f
--- /dev/null
+++ b/multilib/lib32-nss/nss-nolocalsql.patch
@@ -0,0 +1,52 @@
+diff -up ./mozilla/security/nss/lib/Makefile.nolocalsql ./mozilla/security/nss/lib/Makefile
+--- ./mozilla/security/nss/lib/Makefile.nolocalsql 2010-02-27 16:40:25.891777537 -0800
++++ ./mozilla/security/nss/lib/Makefile 2010-02-27 16:41:59.175902327 -0800
+@@ -62,11 +62,11 @@ ifndef USE_SYSTEM_ZLIB
+ ZLIB_SRCDIR = zlib # Add the zlib directory to DIRS.
+ endif
+
+-ifndef MOZILLA_CLIENT
+-ifndef NSS_USE_SYSTEM_SQLITE
+-SQLITE_SRCDIR = sqlite # Add the sqlite directory to DIRS.
+-endif
+-endif
++#ifndef MOZILLA_CLIENT
++#ifndef NSS_USE_SYSTEM_SQLITE
++#SQLITE_SRCDIR = sqlite # Add the sqlite directory to DIRS.
++#endif
++#endif
+
+ ifndef MOZILLA_CLIENT
+ ifeq ($(OS_ARCH),Linux)
+diff -up ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn.nolocalsql ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn
+--- ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn.nolocalsql 2010-02-27 16:44:24.998777709 -0800
++++ ./mozilla/security/nss/lib/softoken/legacydb/manifest.mn 2010-02-27 16:45:08.533803472 -0800
+@@ -46,9 +46,9 @@ MAPFILE = $(OBJDIR)/nssdbm.def
+
+ DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" -DSOFTOKEN_LIB_NAME=\"$(notdir $(SHARED_LIBRARY))\"
+
+-ifdef MOZILLA_CLIENT
+-INCLUDES += -I$(DIST)/include/sqlite3
+-endif
++#ifdef MOZILLA_CLIENT
++#INCLUDES += -I$(DIST)/include/sqlite3
++#endif
+
+ CSRCS = \
+ dbmshim.c \
+diff -up ./mozilla/security/nss/lib/softoken/manifest.mn.nolocalsql ./mozilla/security/nss/lib/softoken/manifest.mn
+--- ./mozilla/security/nss/lib/softoken/manifest.mn.nolocalsql 2010-02-27 16:42:52.213902231 -0800
++++ ./mozilla/security/nss/lib/softoken/manifest.mn 2010-02-27 16:43:34.040776788 -0800
+@@ -47,9 +47,9 @@ MAPFILE = $(OBJDIR)/softokn.def
+
+ DEFINES += -DSHLIB_SUFFIX=\"$(DLL_SUFFIX)\" -DSHLIB_PREFIX=\"$(DLL_PREFIX)\" -DSOFTOKEN_LIB_NAME=\"$(notdir $(SHARED_LIBRARY))\" -DSHLIB_VERSION=\"$(LIBRARY_VERSION)\"
+
+-ifdef MOZILLA_CLIENT
+-INCLUDES += -I$(DIST)/include/sqlite3
+-endif
++#ifdef MOZILLA_CLIENT
++#INCLUDES += -I$(DIST)/include/sqlite3
++#endif
+
+ EXPORTS = \
+ secmodt.h \
diff --git a/multilib/lib32-nss/nss.pc.in b/multilib/lib32-nss/nss.pc.in
new file mode 100644
index 000000000..d47b9e146
--- /dev/null
+++ b/multilib/lib32-nss/nss.pc.in
@@ -0,0 +1,11 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSS
+Description: Network Security Services
+Version: %NSS_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
diff --git a/multilib/lib32-nss/ssl-renegotiate-transitional.patch b/multilib/lib32-nss/ssl-renegotiate-transitional.patch
new file mode 100644
index 000000000..f457c5551
--- /dev/null
+++ b/multilib/lib32-nss/ssl-renegotiate-transitional.patch
@@ -0,0 +1,21 @@
+Enable transitional scheme for ssl renegotiation:
+
+(from mozilla/security/nss/lib/ssl/ssl.h)
+Disallow unsafe renegotiation in server sockets only, but allow clients
+to continue to renegotiate with vulnerable servers.
+This value should only be used during the transition period when few
+servers have been upgraded.
+
+diff --git a/mozilla/security/nss/lib/ssl/sslsock.c b/mozilla/security/nss/lib/ssl/sslsock.c
+index f1d1921..c074360 100644
+--- a/mozilla/security/nss/lib/ssl/sslsock.c
++++ b/mozilla/security/nss/lib/ssl/sslsock.c
+@@ -181,7 +181,7 @@ static sslOptions ssl_defaults = {
+ PR_FALSE, /* noLocks */
+ PR_FALSE, /* enableSessionTickets */
+ PR_FALSE, /* enableDeflate */
+- 2, /* enableRenegotiation (default: requires extension) */
++ 3, /* enableRenegotiation (default: transitional) */
+ PR_FALSE, /* requireSafeNegotiation */
+ };
+
diff --git a/multilib/lib32-openal/PKGBUILD b/multilib/lib32-openal/PKGBUILD
new file mode 100644
index 000000000..6201cdf24
--- /dev/null
+++ b/multilib/lib32-openal/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 42890 2011-03-22 08:03:47Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Jason Chu <jchu@xentac.net>
+
+_pkgbasename=openal
+pkgname=lib32-$_pkgbasename
+pkgver=1.13
+pkgrel=2
+pkgdesc="OpenAL audio library for use with opengl (32-bit)"
+arch=('x86_64')
+url="http://www.openal.org/"
+license=('LGPL')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('lib32-alsa-lib' 'lib32-sdl' 'lib32-libpulse' 'pkgconfig' 'cmake' gcc-multilib)
+options=('!libtool')
+source=(http://kcat.strangesoft.net/openal-releases/openal-soft-${pkgver}.tar.bz2)
+md5sums=('58b7d2809790c70681b825644c5f3614')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-soft-${pkgver}/build
+ cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D LIB_SUFFIX=32 ..
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-soft-${pkgver}/build
+ make DESTDIR=${pkgdir}/ install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-openssl/PKGBUILD b/multilib/lib32-openssl/PKGBUILD
new file mode 100644
index 000000000..2f5fd6a6d
--- /dev/null
+++ b/multilib/lib32-openssl/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 39457 2011-02-10 15:44:47Z bluewind $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgbasename=openssl
+pkgname=lib32-$_pkgbasename
+_ver=1.0.0d
+# use a pacman compatible version scheme
+pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
+pkgrel=1
+pkgdesc='The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (32-bit)'
+arch=('x86_64')
+url='https://www.openssl.org'
+license=('custom:BSD')
+depends=(lib32-zlib $_pkgbasename)
+optdepends=('ca-certificates' perl gcc-multilib)
+options=('!makeflags')
+source=("https://www.openssl.org/source/${_pkgbasename}-${_ver}.tar.gz"
+ 'no-rpath.patch'
+ 'ca-dir.patch')
+md5sums=('40b6ea380cc8a5bf9734c2f8bf7e701e'
+ 'dc78d3d06baffc16217519242ce92478'
+ '3bf51be3a1bbd262be46dc619f92aa90')
+
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/$_pkgbasename-$_ver
+
+ # remove rpath: http://bugs.archlinux.org/task/14367
+ patch -p0 -i $srcdir/no-rpath.patch
+ # set ca dir to /etc/ssl by default
+ patch -p0 -i $srcdir/ca-dir.patch
+ # mark stack as non-executable: http://bugs.archlinux.org/task/12434
+ ./Configure linux-elf --prefix=/usr --openssldir=/etc/ssl --libdir=lib32 \
+ shared zlib enable-md2 -Wa,--noexecstack
+
+ make
+
+ # the test fails due to missing write permissions in /etc/ssl
+ # revert this patch for make test
+ #patch -p0 -R -i $srcdir/ca-dir.patch
+ #make test
+ #patch -p0 -i $srcdir/ca-dir.patch
+}
+
+package() {
+ cd $srcdir/$_pkgbasename-$_ver
+ make INSTALL_PREFIX=$pkgdir install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir/etc"
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-openssl/ca-dir.patch b/multilib/lib32-openssl/ca-dir.patch
new file mode 100644
index 000000000..41d1386d3
--- /dev/null
+++ b/multilib/lib32-openssl/ca-dir.patch
@@ -0,0 +1,33 @@
+--- apps/CA.pl.in 2006-04-28 02:30:49.000000000 +0200
++++ apps/CA.pl.in 2010-04-01 00:35:02.600553509 +0200
+@@ -53,7 +53,7 @@
+ $X509="$openssl x509";
+ $PKCS12="$openssl pkcs12";
+
+-$CATOP="./demoCA";
++$CATOP="/etc/ssl";
+ $CAKEY="cakey.pem";
+ $CAREQ="careq.pem";
+ $CACERT="cacert.pem";
+--- apps/CA.sh 2009-10-15 19:27:47.000000000 +0200
++++ apps/CA.sh 2010-04-01 00:35:02.600553509 +0200
+@@ -68,7 +68,7 @@
+ X509="$OPENSSL x509"
+ PKCS12="openssl pkcs12"
+
+-if [ -z "$CATOP" ] ; then CATOP=./demoCA ; fi
++if [ -z "$CATOP" ] ; then CATOP=/etc/ssl ; fi
+ CAKEY=./cakey.pem
+ CAREQ=./careq.pem
+ CACERT=./cacert.pem
+--- apps/openssl.cnf 2009-04-04 20:09:43.000000000 +0200
++++ apps/openssl.cnf 2010-04-01 00:35:02.607220681 +0200
+@@ -39,7 +39,7 @@
+ ####################################################################
+ [ CA_default ]
+
+-dir = ./demoCA # Where everything is kept
++dir = /etc/ssl # Where everything is kept
+ certs = $dir/certs # Where the issued certs are kept
+ crl_dir = $dir/crl # Where the issued crl are kept
+ database = $dir/index.txt # database index file.
diff --git a/multilib/lib32-openssl/no-rpath.patch b/multilib/lib32-openssl/no-rpath.patch
new file mode 100644
index 000000000..ebd95e23d
--- /dev/null
+++ b/multilib/lib32-openssl/no-rpath.patch
@@ -0,0 +1,11 @@
+--- Makefile.shared.no-rpath 2005-06-23 22:47:54.000000000 +0200
++++ Makefile.shared 2005-11-16 22:35:37.000000000 +0100
+@@ -153,7 +153,7 @@
+ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
+ SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
+
+-DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
++DO_GNU_APP=LDFLAGS="$(CFLAGS)"
+
+ #This is rather special. It's a special target with which one can link
+ #applications without bothering with any features that have anything to
diff --git a/multilib/lib32-pango/PKGBUILD b/multilib/lib32-pango/PKGBUILD
new file mode 100644
index 000000000..a3951d41d
--- /dev/null
+++ b/multilib/lib32-pango/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 27942 2010-09-30 15:32:18Z heftig $
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+# Maintainer: Biru Ionut <ionut@archlinux.ro>
+_pkgbasename=pango
+pkgname=lib32-$_pkgbasename
+pkgver=1.28.3
+pkgrel=1
+pkgdesc="A library for layout and rendering of text (32-bit)"
+arch=('x86_64')
+license=('LGPL')
+depends=('lib32-glib2>=2.25.15' 'lib32-cairo>=1.10.0' 'lib32-libxft>=2.1.14'
+ 'lib32-freetype2>=2.4.2' $_pkgbasename)
+makedepends=("gcc-multilib")
+options=('!libtool' '!emptydirs')
+install=pango.install
+source=(http://ftp.gnome.org/pub/gnome/sources/${_pkgbasename}/1.28/${_pkgbasename}-${pkgver}.tar.bz2
+ pango-modules-conffile.patch)
+url="http://www.pango.org/"
+sha256sums=('5e278bc9430cc7bb00270f183360d262c5006b51248e8b537ea904573f200632'
+ '4a178b60dd420ae53baeabbecfaaeca4070a4b777b2b3f36d137cd70b5a270c3')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ patch -p0 < ${srcdir}/pango-modules-conffile.patch
+ # No libthai support yet
+ ./configure --prefix=/usr --libdir=/usr/lib32 --sysconfdir=/etc \
+ --localstatedir=/var --with-included-modules=basic-fc \
+ --with-dynamic-modules=arabic-fc,arabic-lang,basic-fc,basic-win32,basic-x,basic-atsui,hangul-fc,hebrew-fc,indic-fc,indic-lang,khmer-fc,syriac-fc,tibetan-fc \
+ --disable-introspection
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "$pkgdir"/etc
+ rm -rf "$pkgdir"/usr/{bin/pango-view,share,include}
+ mv "$pkgdir"/usr/bin/pango-querymodules "$pkgdir"/usr/bin/pango-querymodules-32
+}
diff --git a/multilib/lib32-pango/pango-modules-conffile.patch b/multilib/lib32-pango/pango-modules-conffile.patch
new file mode 100644
index 000000000..a959cf1c8
--- /dev/null
+++ b/multilib/lib32-pango/pango-modules-conffile.patch
@@ -0,0 +1,20 @@
+--- pango/modules.c.orig 2010-08-26 06:45:49.329259966 +0200
++++ pango/modules.c 2010-08-26 06:46:13.786685177 +0200
+@@ -529,7 +529,7 @@
+
+ if (!file_str)
+ file_str = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+
+ files = pango_split_file_list (file_str);
+@@ -640,7 +640,7 @@
+ if (!no_module_warning)
+ {
+ gchar *filename = g_build_filename (pango_get_sysconf_subdirectory (),
+- "pango.modules",
++ "pango.modules-32",
+ NULL);
+ g_critical ("No modules found:\n"
+ "No builtin or dynamically loaded modules were found.\n"
diff --git a/multilib/lib32-pango/pango.install b/multilib/lib32-pango/pango.install
new file mode 100644
index 000000000..173b6820f
--- /dev/null
+++ b/multilib/lib32-pango/pango.install
@@ -0,0 +1,21 @@
+# arg 1: the new package version
+post_install() {
+ # we need to ldconfig first, in case xfree86's libs aren't
+ # in ld.so.cache yet
+ sbin/ldconfig -r .
+ usr/bin/pango-querymodules-32 >etc/pango/pango.modules-32
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ -f etc/pango/pango.modules-32 ]; then
+ rm etc/pango/pango.modules-32
+ fi
+ post_install $1
+}
+
+# arg 1: the old package version
+pre_remove() {
+ rm etc/pango/pango.modules-32
+}
diff --git a/multilib/lib32-pcre/PKGBUILD b/multilib/lib32-pcre/PKGBUILD
new file mode 100644
index 000000000..277e397df
--- /dev/null
+++ b/multilib/lib32-pcre/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 26731 2010-09-15 23:01:13Z bluewind $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=pcre
+pkgname=lib32-$_pkgbasename
+pkgver=8.10
+pkgrel=3
+pkgdesc="A library that implements Perl 5-style regular expressions (32-bit)"
+arch=('x86_64')
+url="http://pcre.sourceforge.net"
+license=('custom')
+depends=('lib32-gcc-libs' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('780867a700e9d4e4b9cb47aa5453e4b2')
+
+build() {
+ cd "${srcdir}"/${_pkgbasename}-${pkgver}
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --enable-utf8 --enable-unicode-properties
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-pixman/PKGBUILD b/multilib/lib32-pixman/PKGBUILD
new file mode 100644
index 000000000..b2e57ee93
--- /dev/null
+++ b/multilib/lib32-pixman/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 38980 2011-02-04 14:53:22Z ibiru $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+_pkgbasename=pixman
+pkgname=lib32-$_pkgbasename
+pkgver=0.20.2
+pkgrel=1
+pkgdesc="Pixman library (32-bit)"
+arch=('x86_64')
+url="http://xorg.freedesktop.org"
+license=('custom')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://xorg.freedesktop.org/releases/individual/lib/${_pkgbasename}-${pkgver}.tar.bz2)
+sha1sums=('9972c8f8ce484f7649d9f588168cd29f61c05c63')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ rm -rf "${pkgdir}"/usr/include
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-qt/PKGBUILD b/multilib/lib32-qt/PKGBUILD
new file mode 100644
index 000000000..ca494b37f
--- /dev/null
+++ b/multilib/lib32-qt/PKGBUILD
@@ -0,0 +1,94 @@
+# $Id: PKGBUILD 32045 2010-11-09 15:51:29Z bluewind $
+# Maintainer: Florian Pritz <flo@xssn.at>
+# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgbasename=qt
+pkgname=lib32-$_pkgbasename
+pkgver=4.7.1
+pkgrel=1
+pkgdesc='A cross-platform application and UI framework (32-bit)'
+arch=('x86_64')
+url='http://qt.nokia.com/'
+license=('GPL3' 'LGPL')
+depends=(lib32-{fontconfig,sqlite3,alsa-lib,glib2,dbus-core,openssl}
+ lib32-lib{png,tiff,mng,gl,sm,xrandr,xv,xi} $_pkgbasename)
+optdepends=('lib32-libxinerama: Xinerama support'
+ 'lib32-libxcursor: Xcursor support'
+ 'lib32-libxfixes: Xfixes support')
+makedepends=(cups gcc-multilib lib32-{mesa,libcups,libxfixes,gtk2})
+options=('!libtool')
+_pkgfqn="qt-everywhere-opensource-src-${pkgver}"
+source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz")
+md5sums=('6f88d96507c84e9fea5bf3a71ebeb6d7')
+
+build() {
+ unset QMAKESPEC
+ export QT4DIR=$srcdir/$_pkgfqn
+ export PATH=${QT4DIR}/bin:${PATH}
+ export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/$_pkgfqn
+
+ sed -e "s|-O2|$CXXFLAGS -m32|" \
+ -e "/^QMAKE_RPATH/s| -Wl,-rpath,||g" \
+ -e "/^QMAKE_LINK\s/s|g++|g++ -m32|g" \
+ -e "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" \
+ -i mkspecs/common/g++.conf
+
+ ./configure -confirm-license -opensource -v -platform linux-g++-32 \
+ -prefix /usr \
+ -libdir /usr/lib32 \
+ -plugindir /usr/lib32/qt/plugins \
+ -importdir /usr/lib32/qt/imports \
+ -datadir /usr/share/qt \
+ -translationdir /usr/share/qt/translations \
+ -sysconfdir /etc \
+ -largefile \
+ -system-sqlite \
+ -xmlpatterns \
+ -no-phonon \
+ -no-phonon-backend \
+ -svg \
+ -webkit \
+ -script \
+ -scripttools \
+ -system-zlib \
+ -system-libtiff \
+ -system-libpng \
+ -system-libmng \
+ -system-libjpeg \
+ -nomake demos \
+ -nomake examples \
+ -nomake docs \
+ -nomake tools \
+ -no-rpath \
+ -openssl-linked \
+ -optimized-qmake \
+ -dbus \
+ -reduce-relocations \
+ -no-separate-debug-info \
+ -gtkstyle \
+ -opengl \
+ -no-openvg \
+ -glib
+
+ make
+}
+
+package() {
+ cd $srcdir/$_pkgfqn
+ make INSTALL_ROOT=$pkgdir install
+
+ # Fix wrong path in pkgconfig files
+ find ${pkgdir}/usr/lib32/pkgconfig -type f -name '*.pc' \
+ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \;
+ # Fix wrong path in prl files
+ find ${pkgdir}/usr/lib32 -type f -name '*.prl' \
+ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-readline/PKGBUILD b/multilib/lib32-readline/PKGBUILD
new file mode 100644
index 000000000..08aaf0132
--- /dev/null
+++ b/multilib/lib32-readline/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 26740 2010-09-15 23:02:31Z bluewind $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+_pkgbasename=readline
+pkgname=lib32-$_pkgbasename
+_patchlevel=002 #prepare for some patches
+pkgver=6.1.$_patchlevel
+pkgrel=3
+pkgdesc="GNU readline library (32-bit)"
+arch=(x86_64)
+url="http://tiswww.case.edu/php/chet/readline/rltop.html"
+license=('GPL')
+depends=('lib32-glibc' 'lib32-ncurses' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz)
+if [ $_patchlevel -gt 00 ]; then
+ for (( p=1; p<=$_patchlevel; p++ )); do
+ source=(${source[@]} http://ftp.gnu.org/gnu/readline/readline-6.1-patches/readline61-$(printf "%03d" $p))
+ done
+fi
+md5sums=('fc2f7e714fe792db1ce6ddc4c9fb4ef3'
+ 'c642f2e84d820884b0bf9fd176bc6c3f'
+ '1a76781a1ea734e831588285db7ec9b1')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/${_pkgbasename}-6.1
+ for p in ../readline61-*; do
+ [ -e "$p" ] || continue
+ msg "applying patch ${p}"
+ patch -Np0 -i ${p}
+ done
+
+ # Remove RPATH from shared objects (FS#14366)
+ sed -i 's|-Wl,-rpath,$(libdir) ||g' support/shobj-conf
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make SHLIB_LIBS=-lncurses
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-6.1
+
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-sdl/PKGBUILD b/multilib/lib32-sdl/PKGBUILD
new file mode 100644
index 000000000..51eda45e5
--- /dev/null
+++ b/multilib/lib32-sdl/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 33692 2010-11-27 16:54:21Z heftig $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
+
+_pkgbasename=sdl
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.14
+pkgrel=8
+pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (32-bit)"
+arch=('x86_64')
+url="http://www.libsdl.org"
+license=('LGPL')
+depends=('lib32-libxext' 'lib32-libxrender' 'lib32-libx11' $_pkgbasename)
+makedepends=('lib32-alsa-lib' 'lib32-mesa' 'lib32-libpulse' gcc-multilib)
+options=('!libtool')
+source=(http://www.libsdl.org/release/SDL-${pkgver}.tar.gz
+ sdl-1.2.14-joystick-crash.diff
+ sdl-1.2.14-fix-mouse-clicking.patch
+ sdl-1.2.14-fix-disappearing-cursor.patch)
+md5sums=('e52086d1b508fa0b76c52ee30b55bec4'
+ '9d8890b3817736a5d365f7497f096634'
+ '04d8c179f125e04bcd4c9d60e013c2d7'
+ 'a6cf3e71b653aa97d0d8ae6c0a789807')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/SDL-${pkgver}
+ patch -Np1 -i $srcdir/sdl-1.2.14-joystick-crash.diff
+ patch -Np1 -i $srcdir/sdl-1.2.14-fix-mouse-clicking.patch
+ patch -Np1 -i $srcdir/sdl-1.2.14-fix-disappearing-cursor.patch
+ ./configure --prefix=/usr --disable-nasm --enable-alsa \
+ --with-x --disable-rpath --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/SDL-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch b/multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch
new file mode 100644
index 000000000..fcd3c314d
--- /dev/null
+++ b/multilib/lib32-sdl/sdl-1.2.14-fix-disappearing-cursor.patch
@@ -0,0 +1,17 @@
+Index: SDL-1.2.14/src/video/x11/SDL_x11events.c
+===================================================================
+--- SDL-1.2.14.orig/src/video/x11/SDL_x11events.c 2010-04-30 09:16:35.000000000 -0400
++++ SDL-1.2.14/src/video/x11/SDL_x11events.c 2010-04-30 09:16:35.000000000 -0400
+@@ -444,8 +444,10 @@
+ if ( xevent.xcrossing.mode == NotifyUngrab )
+ printf("Mode: NotifyUngrab\n");
+ #endif
+- if ( xevent.xcrossing.detail != NotifyInferior ) {
+- if ( this->input_grab == SDL_GRAB_OFF ) {
++ if ( (xevent.xcrossing.mode != NotifyGrab) &&
++ (xevent.xcrossing.mode != NotifyUngrab) &&
++ (xevent.xcrossing.detail != NotifyInferior) ) {
++ if ( this->input_grab == SDL_GRAB_OFF ) {
+ posted = SDL_PrivateAppActive(0, SDL_APPMOUSEFOCUS);
+ } else {
+ posted = SDL_PrivateMouseMotion(0, 0,
diff --git a/multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch b/multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch
new file mode 100644
index 000000000..7d3e5acfc
--- /dev/null
+++ b/multilib/lib32-sdl/sdl-1.2.14-fix-mouse-clicking.patch
@@ -0,0 +1,23 @@
+--- SDL-1.2.14/src/video/x11/SDL_x11events.c.orig 2010-04-08 11:57:05.003169834 -0700
++++ SDL-1.2.14/src/video/x11/SDL_x11events.c 2010-04-08 12:33:51.690926340 -0700
+@@ -423,12 +423,15 @@
+ if ( xevent.xcrossing.mode == NotifyUngrab )
+ printf("Mode: NotifyUngrab\n");
+ #endif
+- if ( this->input_grab == SDL_GRAB_OFF ) {
+- posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++ if ( (xevent.xcrossing.mode != NotifyGrab) &&
++ (xevent.xcrossing.mode != NotifyUngrab) ) {
++ if ( this->input_grab == SDL_GRAB_OFF ) {
++ posted = SDL_PrivateAppActive(1, SDL_APPMOUSEFOCUS);
++ }
++ posted = SDL_PrivateMouseMotion(0, 0,
++ xevent.xcrossing.x,
++ xevent.xcrossing.y);
+ }
+- posted = SDL_PrivateMouseMotion(0, 0,
+- xevent.xcrossing.x,
+- xevent.xcrossing.y);
+ }
+ break;
+
diff --git a/multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff b/multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff
new file mode 100644
index 000000000..949e18b96
--- /dev/null
+++ b/multilib/lib32-sdl/sdl-1.2.14-joystick-crash.diff
@@ -0,0 +1,14 @@
+Description: Fix crash with joystick detection.
+Index: libsdl1.2-1.2.14/src/joystick/linux/SDL_sysjoystick.c
+===================================================================
+--- libsdl1.2-1.2.14.orig/src/joystick/linux/SDL_sysjoystick.c 2010-01-12 12:37:36.000000000 -0500
++++ libsdl1.2-1.2.14/src/joystick/linux/SDL_sysjoystick.c 2010-01-12 12:38:27.000000000 -0500
+@@ -700,7 +700,7 @@
+ continue;
+ }
+ if ( test_bit(i, absbit) ) {
+- int values[5];
++ int values[6];
+
+ if ( ioctl(fd, EVIOCGABS(i), values) < 0 )
+ continue;
diff --git a/multilib/lib32-sdl_image/PKGBUILD b/multilib/lib32-sdl_image/PKGBUILD
new file mode 100644
index 000000000..70ccc252f
--- /dev/null
+++ b/multilib/lib32-sdl_image/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 29403 2010-10-14 00:20:35Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: SpepS <dreamspepser at yahoo dot it>
+
+_pkgbasename=sdl_image
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.10
+pkgrel=3
+pkgdesc="A simple library to load images of various formats as SDL surfaces (32-bit)"
+arch=('x86_64')
+url="http://www.libsdl.org/projects/SDL_image/"
+license=('LGPL')
+depends=('lib32-sdl' 'lib32-libpng' 'lib32-libjpeg' 'lib32-libtiff' 'lib32-zlib' "$_pkgbasename")
+makedepends=('gcc-multilib')
+options=('!libtool')
+source=(http://www.libsdl.org/projects/SDL_image/release/SDL_image-${pkgver}.tar.gz)
+md5sums=('6c06584b31559e2b59f2b982d0d1f628')
+
+build() {
+ export CC='gcc -m32'
+ export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'
+
+ cd ${srcdir}/SDL_image-${pkgver}
+
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd ${srcdir}/SDL_image-${pkgver}
+
+ make DESTDIR=$pkgdir install
+ rm -rf $pkgdir/usr/include
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/multilib/lib32-sdl_ttf/PKGBUILD b/multilib/lib32-sdl_ttf/PKGBUILD
new file mode 100644
index 000000000..19f3f0014
--- /dev/null
+++ b/multilib/lib32-sdl_ttf/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 35154 2010-12-16 21:15:47Z heftig $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Esa lakaniemi <esalaka@gmail.com>
+
+_pkgbasename=sdl_ttf
+pkgname=lib32-$_pkgbasename
+pkgver=2.0.10
+pkgrel=3
+pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (32-bit)"
+arch=('x86_64')
+url="http://www.libsdl.org/projects/SDL_ttf/"
+license=('LGPL')
+options=('!libtool')
+depends=('lib32-sdl' 'lib32-freetype2' $_pkgbasename)
+makedepends=('gcc-multilib')
+source=(http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-$pkgver.tar.gz)
+sha256sums=('7d38704bcc7c34029c2dcb73b2d4857e8ad76341c6e0faed279eb9f743c66c6a')
+
+build() {
+ cd "${srcdir}"/SDL_ttf-${pkgver}
+ ./configure --prefix=/usr --libdir=/usr/lib32 CC="gcc -m32" PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ make
+}
+
+package() {
+ cd "${srcdir}"/SDL_ttf-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf "${pkgdir}"/usr/include
+}
+
+# vim: sw=2:ts=2 et:
diff --git a/multilib/lib32-speex/PKGBUILD b/multilib/lib32-speex/PKGBUILD
new file mode 100644
index 000000000..d6f1ea20d
--- /dev/null
+++ b/multilib/lib32-speex/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 26746 2010-09-15 23:03:23Z bluewind $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+
+_pkgbasename=speex
+pkgname=lib32-$_pkgbasename
+pkgver=1.2rc1
+pkgrel=3
+pkgdesc="A free codec for free speech (32-bit)"
+arch=(x86_64)
+license=('BSD')
+depends=('lib32-libogg' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+source=(http://downloads.us.xiph.org/releases/$_pkgbasename/$_pkgbasename-$pkgver.tar.gz)
+md5sums=('c4438b22c08e5811ff10e2b06ee9b9ae')
+url="http://www.speex.org/"
+
+build() {
+ cd $srcdir/speex-$pkgver
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
+ --libdir=/usr/lib32
+ make
+}
+
+package() {
+ cd $srcdir/speex-$pkgver
+ make DESTDIR=$pkgdir install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-sqlite3/PKGBUILD b/multilib/lib32-sqlite3/PKGBUILD
new file mode 100644
index 000000000..a1e3d8fec
--- /dev/null
+++ b/multilib/lib32-sqlite3/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Biru Ionut <ionut@archlinux.ro>
+# Contributor: Mikko Seppälä <t-r-a-y@mbnet.fi>
+# Contributor: Kaos < gianlucaatlas dot gmail dot com >
+
+_pkgbasename=sqlite3
+pkgname=lib32-sqlite3
+_amalgamationver=3070400
+pkgver=3.7.4
+pkgrel=1
+pkgdesc="A C library that implements an SQL database engine (32-bit)"
+arch=('x86_64')
+license=('custom')
+url="http://www.sqlite.org/"
+depends=(lib32-glibc $_pkgbasename)
+makedepends=('tcl' 'gcc-multilib' 'lib32-readline')
+source=(http://www.sqlite.org/sqlite-src-${_amalgamationver}.zip)
+options=(!libtool)
+md5sums=('2b5c53328505893599de6e2055996d7a')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/sqlite-src-${_amalgamationver}
+ export LTLINK_EXTRAS="-ldl"
+ export CFLAGS="$CFLAGS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_SECURE_DELETE"
+ ./configure --prefix=/usr --libdir=/usr/lib32 \
+ --enable-threadsafe \
+ --enable-threads-override-locks \
+ --enable-cross-thread-connections \
+ --disable-static --disable-tcl \
+ --enable-load-extension
+
+ # rpath removal
+ sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+ sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+ make
+}
+
+
+package() {
+ cd ${srcdir}/sqlite-src-${_amalgamationver}
+ make DESTDIR=${pkgdir} install
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-talloc/PKGBUILD b/multilib/lib32-talloc/PKGBUILD
new file mode 100644
index 000000000..f67679998
--- /dev/null
+++ b/multilib/lib32-talloc/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 29311 2010-10-12 21:12:22Z lcarlier $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+
+_pkgbasename=talloc
+pkgname=lib32-$_pkgbasename
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="talloc is a hierarchical pool based memory allocator with destructors (32-bit)"
+arch=(x86_64)
+license=('GPL3')
+url="http://talloc.samba.org/"
+source=(http://samba.org/ftp/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz)
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+md5sums=('c6e736540145ca58cb3dcb42f91cf57b')
+
+build() {
+ export CC="gcc -m32"
+
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --sysconfdir=/etc/samba \
+ --localstatedir=/var \
+ --enable-talloc-compat1 \
+ --enable-largefile \
+ --libdir=/usr/lib32
+
+ make
+}
+
+package() {
+ cd ${srcdir}/${_pkgbasename}-${pkgver}
+
+ make DESTDIR=$pkgdir/ install
+
+ # fix permission
+ chmod 644 $pkgdir/usr/lib32/libtalloc.a
+ rm -rf $pkgdir/usr/include
+}
+
diff --git a/multilib/lib32-tdb/PKGBUILD b/multilib/lib32-tdb/PKGBUILD
new file mode 100644
index 000000000..db639ad6e
--- /dev/null
+++ b/multilib/lib32-tdb/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Florian Pritz <flo@xssn.at>
+
+_pkgbasename=tdb
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.1
+pkgrel=3
+pkgdesc="A Trivia Database similar to GDBM but allows simultaneous commits (32-bit)"
+arch=(x86_64)
+license=('GPL3')
+url="http://tdb.samba.org/"
+depends=(lib32-glibc $_pkgbasename)
+makedepends=(gcc-multilib libxslt)
+options=(force)
+source=(http://samba.org/ftp/${_pkgbasename}/${_pkgbasename}-${pkgver}.tar.gz)
+md5sums=('73ea81282a82e5c959d9c082af2d0215')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc/samba \
+ --libdir=/usr/lib32 \
+ --disable-python
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make -j1 DESTDIR="$pkgdir" install
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+}
diff --git a/multilib/lib32-udev/PKGBUILD b/multilib/lib32-udev/PKGBUILD
new file mode 100644
index 000000000..32f92ba54
--- /dev/null
+++ b/multilib/lib32-udev/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id$
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=('lib32-udev')
+pkgver=166
+pkgrel=1
+arch=('x86_64')
+pkgdesc="The userspace dev tools (udev) (32-bit)"
+url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
+license=('GPL')
+options=(!makeflags !libtool)
+depends=('lib32-glibc' 'lib32-glib2' 'lib32-acl' 'lib32-libusb-compat' 'udev')
+makedepends=('gcc-multilib' 'coreutils' 'util-linux' 'pciutils' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection')
+source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev-$pkgver.tar.bz2)
+md5sums=('4db27d73fdbe94f47fd89fdd105c2dfb')
+
+build() {
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd $srcdir/udev-$pkgver
+
+ ./configure --libdir=/usr/lib32
+ make
+}
+
+package() {
+
+ cd $srcdir/udev-$pkgver
+
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/{etc,include,lib,libexec,sbin,share}
+ rm -rf ${pkgdir}/usr/lib32/girepository*
+}
diff --git a/multilib/lib32-util-linux/PKGBUILD b/multilib/lib32-util-linux/PKGBUILD
new file mode 100644
index 000000000..026d52a1b
--- /dev/null
+++ b/multilib/lib32-util-linux/PKGBUILD
@@ -0,0 +1,52 @@
+# $Id: PKGBUILD 41742 2011-03-08 19:17:58Z dreisner $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+_pkgbasename=util-linux
+pkgname=lib32-$_pkgbasename
+pkgver=2.19
+pkgrel=1
+pkgdesc="Miscellaneous system utilities for Linux (32-bit)"
+url="http://userweb.kernel.org/~kzak/util-linux-ng/"
+arch=('x86_64')
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=('gcc-multilib')
+provides=('lib32-util-linux-ng')
+conflicts=('lib32-util-linux-ng')
+replaces=('lib32-util-linux-ng')
+license=('GPL2')
+options=('!libtool' '!emptydirs')
+source=(ftp://ftp.kernel.org/pub/linux/utils/${_pkgbasename}/v2.19/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('590ca71aad0b254e2631d84401f28255')
+
+shopt -s extglob
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ # hardware clock
+ sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c
+ mkdir -p "${pkgdir}/var/lib/hwclock"
+
+ export CC="gcc -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ ./autogen.sh
+ ./configure --without-ncurses --libdir=/usr/lib32
+
+ cd shlibs
+ for lib in *; do
+ make -C $lib
+ done
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ make DESTDIR="$pkgdir" install
+
+ # remove unnecessary files
+ cd "$pkgdir"
+ rm -rf !(usr)
+ cd usr
+ rm -rf !(lib32)
+}
diff --git a/multilib/lib32-v4l-utils/PKGBUILD b/multilib/lib32-v4l-utils/PKGBUILD
new file mode 100644
index 000000000..db5a9c594
--- /dev/null
+++ b/multilib/lib32-v4l-utils/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 88966 2010-08-26 18:32:27Z thomas $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+_pkgbasename=v4l-utils
+pkgname=lib32-$_pkgbasename
+pkgver=0.8.3
+pkgrel=1
+pkgdesc="Userspace tools and conversion library for Video 4 Linux (32-bit)"
+arch=('x86_64')
+url="http://freshmeat.net/projects/libv4l"
+provides=("lib32-libv4l=$pkgver")
+replaces=('lib32-libv4l')
+conflicts=('lib32-libv4l')
+license=('LGPL')
+makedepends=('gcc-multilib')
+depends=('lib32-gcc-libs' $_pkgbasename)
+source=(http://linuxtv.org/downloads/v4l-utils/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('525ebed7ef6e0f6a4bb68fe10403a3725eb1ec31a4c557c68256079b00e283b5')
+
+build() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+
+ sed -i 's|CFLAGS :=|CFLAGS ?=|' Make.rules
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ make PREFIX=/usr LIBDIR=/usr/lib32
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make install PREFIX=/usr LIBDIR=/usr/lib32 DESTDIR="${pkgdir}/"
+ rm -rf "${pkgdir}"/{usr/{include,share,bin,sbin},etc}
+}
diff --git a/multilib/lib32-xcb-util/PKGBUILD b/multilib/lib32-xcb-util/PKGBUILD
new file mode 100644
index 000000000..85ea8751c
--- /dev/null
+++ b/multilib/lib32-xcb-util/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 26758 2010-09-15 23:05:03Z bluewind $
+# Maintainer : Ionut Biru <ibiru@archlinux.org>
+
+_pkgbasename=xcb-util
+pkgname=lib32-xcb-util
+pkgver=0.3.6
+pkgrel=3
+pkgdesc="Utility libraries for XC Binding (32-bit)"
+arch=('x86_64')
+url="http://xcb.freedesktop.org"
+license=('custom')
+depends=('lib32-glibc' 'lib32-libxcb' $_pkgbasename)
+makedepends=('gperf' 'gcc-multilib')
+options=('!libtool')
+source=(http://xcb.freedesktop.org/dist/${_pkgbasename}-${pkgver}.tar.bz2)
+md5sums=('dd8968b8ee613cb027a8ef1fcbdc8fc9')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib32 --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${_pkgbasename}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}"/usr/{include,share}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-zlib/PKGBUILD b/multilib/lib32-zlib/PKGBUILD
new file mode 100644
index 000000000..a72223ae3
--- /dev/null
+++ b/multilib/lib32-zlib/PKGBUILD
@@ -0,0 +1,44 @@
+# $Id: PKGBUILD 35298 2010-12-18 01:45:49Z heftig $
+# Maintainer: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Pierre Schmitz <pierre@archlinux.de>
+
+_pkgbasename=zlib
+pkgname=lib32-$_pkgbasename
+pkgver=1.2.5
+pkgrel=6
+pkgdesc='Compression library implementing the deflate compression method found in gzip and PKZIP (32-bit)'
+arch=('x86_64')
+license=('custom')
+url="http://www.zlib.net/"
+depends=('lib32-glibc' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!makeflags')
+source=("http://zlib.net/zlib-${pkgver}.tar.gz"
+ 'zlib-1.2.5-lfs-decls.patch')
+md5sums=('c735eab2d659a96e5a594c9e8541ad63'
+ '4cb279ea3beab621f3526bf7b7ab99e5')
+
+build() {
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+ cd ${srcdir}/zlib-$pkgver
+ # see http://bugs.archlinux.org/task/19280
+ patch -p1 -i ${srcdir}/zlib-1.2.5-lfs-decls.patch
+ # work around gcc bug; see https://bugs.archlinux.org/task/20647
+ export CFLAGS="${CFLAGS/-O2/-O3} -fno-tree-vectorize -DUNALIGNED_OK"
+ ./configure --prefix=/usr \
+ --libdir=/usr/lib32
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/zlib-$pkgver
+ make install DESTDIR=${pkgdir}
+
+ rm -rf "${pkgdir}"/usr/{include,share,bin}
+ mkdir -p "$pkgdir/usr/share/licenses"
+ ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}
diff --git a/multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch b/multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch
new file mode 100644
index 000000000..36e26af03
--- /dev/null
+++ b/multilib/lib32-zlib/zlib-1.2.5-lfs-decls.patch
@@ -0,0 +1,13 @@
+Index: zlib-1.2.5/zlib.h
+===================================================================
+--- zlib-1.2.5.orig/zlib.h
++++ zlib-1.2.5/zlib.h
+@@ -1578,7 +1578,7 @@ ZEXTERN int ZEXPORT inflateBackInit_ OF(
+ # define gzoffset gzoffset64
+ # define adler32_combine adler32_combine64
+ # define crc32_combine crc32_combine64
+-# ifdef _LARGEFILE64_SOURCE
++# ifndef _LARGEFILE64_SOURCE
+ ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
+ ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
+ ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
diff --git a/multilib/libtool-multilib/PKGBUILD b/multilib/libtool-multilib/PKGBUILD
new file mode 100644
index 000000000..87fcc28b0
--- /dev/null
+++ b/multilib/libtool-multilib/PKGBUILD
@@ -0,0 +1,64 @@
+# $Id: PKGBUILD 35242 2010-12-17 21:48:01Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuilt with each new gcc version
+
+pkgbase=libtool-multilib
+pkgname=(libtool-multilib lib32-libtool)
+pkgver=2.4
+pkgrel=2
+pkgdesc="A generic library support script for multilib"
+arch=('x86_64')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+makedepends=(sh tar texinfo gcc-multilib)
+options=('!libtool')
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/libtool-${pkgver}.tar.xz)
+md5sums=('4e6144439d95d7332dc50ace6dd24c55')
+
+build() {
+ cd "$srcdir"
+
+ rm -rf libtool-64 libtool-32
+ mv libtool-$pkgver libtool-64
+ cp -a libtool-64 libtool-32
+
+msg2 "Building libtool-64..."
+
+ cd "$srcdir/libtool-64"
+ ./configure --prefix=/usr
+ make
+ make check
+
+msg2 "Building libtool-32..."
+
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+
+ cd "$srcdir/libtool-32"
+ ./configure --prefix=/usr --libdir=/usr/lib32
+ make
+ make check
+}
+
+package_libtool-multilib() {
+ groups=('multilib-devel')
+ depends=(sh tar texinfo "lib32-libtool=$pkgver-$pkgrel")
+ provides=("libtool=$pkgver-$pkgrel")
+ conflicts=(libtool)
+ install=libtool.install
+
+ cd "$srcdir/libtool-64"
+ make DESTDIR="$pkgdir" install
+}
+
+package_lib32-libtool() {
+ pkgdesc="A generic library support script (32-bit)"
+ depends=(lib32-glibc)
+
+ cd "$srcdir/libtool-32"
+ make DESTDIR="$pkgdir" install
+ rm -r "$pkgdir"/usr/{bin,include,share}
+}
diff --git a/multilib/libtool-multilib/libtool.install b/multilib/libtool-multilib/libtool.install
new file mode 100644
index 000000000..424c8cb88
--- /dev/null
+++ b/multilib/libtool-multilib/libtool.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(libtool.info libtool.info-1 libtool.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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/nspluginwrapper/PKGBUILD b/multilib/nspluginwrapper/PKGBUILD
new file mode 100644
index 000000000..250d70829
--- /dev/null
+++ b/multilib/nspluginwrapper/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 26767 2010-09-15 23:06:22Z bluewind $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+pkgname=nspluginwrapper
+pkgver=1.3.0
+pkgrel=4
+pkgdesc="Cross-platform NPAPI compatible plugin viewer"
+arch=('x86_64')
+url="http://freshmeat.net/projects/nspluginwrapper/"
+license=('GPL')
+depends=('curl' 'lib32-libxt' 'lib32-gcc-libs' 'gtk2' 'lib32-gtk2')
+makedepends=('gcc-multilib')
+source=(ftp://ftp.archlinux.org/other/nspluginwrapper/$pkgname-$pkgver.tar.gz
+ npw-viewer.c.patch
+ nspluginwrapper-20090625-fix-npident-array-sending.patch
+ nspluginwrapper-native-windows.patch)
+sha256sums=('0af7e2ae4c6258d5c17addbcc4658b84c979860da843873f0d15d90ee9a8259d'
+ '4b216cca327ae76e6e2ab6dc6bbaf3efe1123c63a09b0e7e45c964531fcbdeb0'
+ '8bb55b845017b60912c62c4abadc50a3f0397ddf470599b8453b97d9e69f8cd5'
+ '3796b66f53448f4668e70aec97a3d74db2b2fcd308b36f87373405547cae38b1')
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # Fix build
+ patch -p1 -i "$srcdir/npw-viewer.c.patch"
+ # See http://web.archiveorange.com/archive/v/tptsHOJYbGKIfNFz9xHz
+ patch -p0 -i "$srcdir/nspluginwrapper-20090625-fix-npident-array-sending.patch"
+ # Patch taken from the openSuSE src.rpm
+ patch -p0 -i "$srcdir/nspluginwrapper-native-windows.patch"
+
+ ./configure --with-lib32=lib32 --with-lib64=lib
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make -j1 DESTDIR="$pkgdir/" install
+ mkdir -p "$pkgdir"/usr/lib/mozilla/plugins/
+ ln -s /usr/lib/nspluginwrapper/x86_64/linux/npwrapper.so "$pkgdir"/usr/lib/mozilla/plugins/
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/multilib/nspluginwrapper/npw-viewer.c.patch b/multilib/nspluginwrapper/npw-viewer.c.patch
new file mode 100644
index 000000000..a213003fd
--- /dev/null
+++ b/multilib/nspluginwrapper/npw-viewer.c.patch
@@ -0,0 +1,13 @@
+diff -Nur nspluginwrapper-1.3.0.orig//src/npw-viewer.c nspluginwrapper-1.3.0//src/npw-viewer.c
+--- nspluginwrapper-1.3.0.orig//src/npw-viewer.c 2009-01-02 15:22:29.000000000 +0100
++++ nspluginwrapper-1.3.0//src/npw-viewer.c 2010-08-26 18:46:50.574976221 +0200
+@@ -4187,7 +4187,8 @@
+ #define high_offset offsetof(struct _XtAppStruct, __maybe__input_max)
+ #define n_offsets_max (high_offset - low_offset)/2
+ int i, ofs, n_offsets = 0;
+- int offsets[n_offsets_max] = { 0, };
++ int offsets[n_offsets_max];
++ offsets[0] = 0;
+
+ #define n_inputs_max 4 /* number of refinements/input sources */
+ int fd, id, n_inputs = 0;
diff --git a/multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch b/multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch
new file mode 100644
index 000000000..568a4ea1f
--- /dev/null
+++ b/multilib/nspluginwrapper/nspluginwrapper-20090625-fix-npident-array-sending.patch
@@ -0,0 +1,178 @@
+Index: src/npw-viewer.c
+===================================================================
+--- src/npw-viewer.c (revision 942)
++++ src/npw-viewer.c (working copy)
+@@ -2059,7 +2059,7 @@
+ RPC_METHOD_NPN_INVOKE,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, methodName,
++ RPC_TYPE_NP_IDENTIFIER, &methodName,
+ RPC_TYPE_ARRAY, RPC_TYPE_NP_VARIANT, argCount, args,
+ RPC_TYPE_INVALID);
+
+@@ -2249,7 +2249,7 @@
+ RPC_METHOD_NPN_GET_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2311,7 +2311,7 @@
+ RPC_METHOD_NPN_SET_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_NP_VARIANT, value,
+ RPC_TYPE_INVALID);
+
+@@ -2370,7 +2370,7 @@
+ RPC_METHOD_NPN_REMOVE_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2427,7 +2427,7 @@
+ RPC_METHOD_NPN_HAS_PROPERTY,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, propertyName,
++ RPC_TYPE_NP_IDENTIFIER, &propertyName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2484,7 +2484,7 @@
+ RPC_METHOD_NPN_HAS_METHOD,
+ RPC_TYPE_NPW_PLUGIN_INSTANCE, plugin,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, methodName,
++ RPC_TYPE_NP_IDENTIFIER, &methodName,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2780,7 +2780,7 @@
+
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPN_IDENTIFIER_IS_STRING,
+- RPC_TYPE_NP_IDENTIFIER, identifier,
++ RPC_TYPE_NP_IDENTIFIER, &identifier,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2838,7 +2838,7 @@
+
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPN_UTF8_FROM_IDENTIFIER,
+- RPC_TYPE_NP_IDENTIFIER, identifier,
++ RPC_TYPE_NP_IDENTIFIER, &identifier,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -2902,7 +2902,7 @@
+
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPN_INT_FROM_IDENTIFIER,
+- RPC_TYPE_NP_IDENTIFIER, identifier,
++ RPC_TYPE_NP_IDENTIFIER, &identifier,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+Index: src/npw-wrapper.c
+===================================================================
+--- src/npw-wrapper.c (revision 942)
++++ src/npw-wrapper.c (working copy)
+@@ -1528,7 +1528,7 @@
+ free(name);
+
+ return rpc_method_send_reply(connection,
+- RPC_TYPE_NP_IDENTIFIER, ident,
++ RPC_TYPE_NP_IDENTIFIER, &ident,
+ RPC_TYPE_INVALID);
+ }
+
+@@ -1601,7 +1601,7 @@
+ NPIdentifier ident = g_NPN_GetIntIdentifier(intid);
+
+ return rpc_method_send_reply(connection,
+- RPC_TYPE_NP_IDENTIFIER, ident,
++ RPC_TYPE_NP_IDENTIFIER, &ident,
+ RPC_TYPE_INVALID);
+ }
+
+Index: src/npruntime.c
+===================================================================
+--- src/npruntime.c (revision 942)
++++ src/npruntime.c (working copy)
+@@ -221,7 +221,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_HAS_METHOD,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -327,7 +327,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_INVOKE,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_ARRAY, RPC_TYPE_NP_VARIANT, argCount, args,
+ RPC_TYPE_INVALID);
+
+@@ -509,7 +509,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_HAS_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -599,7 +599,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_GET_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+@@ -684,7 +684,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_SET_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_NP_VARIANT, value,
+ RPC_TYPE_INVALID);
+
+@@ -763,7 +763,7 @@
+ int error = rpc_method_invoke(g_rpc_connection,
+ RPC_METHOD_NPCLASS_REMOVE_PROPERTY,
+ RPC_TYPE_NP_OBJECT, npobj,
+- RPC_TYPE_NP_IDENTIFIER, name,
++ RPC_TYPE_NP_IDENTIFIER, &name,
+ RPC_TYPE_INVALID);
+
+ if (error != RPC_ERROR_NO_ERROR) {
+Index: src/npw-rpc.c
+===================================================================
+--- src/npw-rpc.c (revision 942)
++++ src/npw-rpc.c (working copy)
+@@ -1252,7 +1252,7 @@
+ // the browser side
+ static int do_send_NPIdentifier(rpc_message_t *message, void *p_value)
+ {
+- NPIdentifier ident = (NPIdentifier)p_value;
++ NPIdentifier ident = *(NPIdentifier *)p_value;
+ int id = 0;
+ if (ident) {
+ #ifdef BUILD_WRAPPER
diff --git a/multilib/nspluginwrapper/nspluginwrapper-native-windows.patch b/multilib/nspluginwrapper/nspluginwrapper-native-windows.patch
new file mode 100644
index 000000000..0f6eba68e
--- /dev/null
+++ b/multilib/nspluginwrapper/nspluginwrapper-native-windows.patch
@@ -0,0 +1,14 @@
+--- src/npw-viewer.sh
++++ src/npw-viewer.sh
+@@ -5,6 +5,11 @@
+ OS="`uname -s | tr '[A-Z]' '[a-z]'`"
+ ARCH="`uname -m`"
+
++# Adobe Flash can be confised by by a recent GTK+ that may use custom
++# window structure instead of native X Window. Revert to the old dumb
++# behavior and use native X window for all objects. (bnc#537788)
++export GDK_NATIVE_WINDOWS=1
++
+ if test -z "$TARGET_OS"; then
+ echo "*** NSPlugin Viewer *** error, TARGET_OS not initialized"
+ exit 1
diff --git a/multilib/q4wine/PKGBUILD b/multilib/q4wine/PKGBUILD
new file mode 100644
index 000000000..d45663210
--- /dev/null
+++ b/multilib/q4wine/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 36222 2010-12-28 10:47:42Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Chris Giles <Chris.G.27 (at) Gmail.com>
+
+pkgname=q4wine
+pkgver=0.120_r1
+pkgrel=1
+pkgdesc="A Qt4 GUI for Wine"
+arch=("i686" "x86_64")
+url="http://sourceforge.net/projects/${pkgname}/"
+license=("GPL3")
+depends=("qt" "wine" "sqlite3" "which" "icoutils")
+makedepends=("cmake")
+optdepends=("winetricks")
+options=('!emptydirs' 'force')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver/_/-}.tar.bz2)
+md5sums=('1ed212026d1f082ac57f12a61694f7bc')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver/_/-}
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DWITH_WINETRIKS=ON .
+ make
+ make DESTDIR=${pkgdir} install
+ install -D ${startdir}/${pkgname}.desktop ${pkgdir}/usr/share/applications/${pkgname}.desktop
+}
diff --git a/multilib/q4wine/q4wine.desktop b/multilib/q4wine/q4wine.desktop
new file mode 100644
index 000000000..2b1415848
--- /dev/null
+++ b/multilib/q4wine/q4wine.desktop
@@ -0,0 +1,18 @@
+[Desktop Entry]
+Name=Q4Wine
+GenericName=A Qt4 GUI for Wine
+Comment=A Qt4 GUI for Wine
+#Version=0.1
+Type=Application
+Categories=KDE;Qt;Settings
+Terminal=false
+Encoding=UTF-8
+Icon=wine
+Exec=q4wine
+#ServiceTypes=inode/directory
+#Actions=Create;
+#X-KDE-Submenu=
+#X-KDE-Priority=TopLevel
+#X-KDE-Icon=tgz
+X-KDE-StartupNotify=true
+#X-DCOP-ServiceType=Unique
diff --git a/multilib/wine/PKGBUILD b/multilib/wine/PKGBUILD
new file mode 100644
index 000000000..dcede47fb
--- /dev/null
+++ b/multilib/wine/PKGBUILD
@@ -0,0 +1,142 @@
+# $Id: PKGBUILD 44087 2011-04-02 07:03:36Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Eduardo Romero <eduardo@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=wine
+pkgver=1.3.17
+pkgrel=1
+
+_pkgbasever=${pkgver/rc/-rc}
+
+source=(http://ibiblio.org/pub/linux/system/emulators/$pkgname/$pkgname-$_pkgbasever.tar.bz2)
+md5sums=('f8d9d1d8cdab27ad311fa3743a1a0bc5')
+
+pkgdesc="A compatibility layer for running Windows programs"
+url="http://www.winehq.com"
+arch=(i686 x86_64)
+license=(LGPL)
+install=wine.install
+
+depends=(
+ fontconfig lib32-fontconfig
+ mesa lib32-mesa
+ libxcursor lib32-libxcursor
+ libxrandr lib32-libxrandr
+ libxdamage lib32-libxdamage
+ libxxf86dga lib32-libxxf86dga
+ alsa-lib lib32-alsa-lib
+ desktop-file-utils
+)
+
+makedepends=(autoconf ncurses bison perl fontforge flex prelink
+ 'gcc>=4.5.0-2' 'gcc-multilib>=4.5.0-2'
+ giflib lib32-giflib
+ libxpm lib32-libxpm
+ libpng lib32-libpng
+ libxinerama lib32-libxinerama
+ libxcomposite lib32-libxcomposite
+ libxmu lib32-libxmu
+ libxxf86vm lib32-libxxf86vm
+ libxml2 lib32-libxml2
+ libxslt lib32-libxslt
+ libldap lib32-libldap
+ lcms lib32-lcms
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ jack lib32-jack
+ libcups lib32-libcups
+ gnutls lib32-gnutls
+ v4l-utils lib32-v4l-utils
+)
+
+optdepends=(
+ giflib lib32-giflib
+ libpng lib32-libpng
+ libldap lib32-libldap
+ lcms lib32-lcms
+ libxml2 lib32-libxml2
+ mpg123 lib32-mpg123
+ openal lib32-openal
+ jack lib32-jack
+ libcups lib32-libcups
+ gnutls lib32-gnutls
+ v4l-utils lib32-v4l-utils
+)
+
+if [[ $CARCH == i686 ]]; then
+ # Strip lib32 etc. on i686
+ depends=(${depends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*32-*/})
+ makedepends=(${makedepends[@]/*-multilib*/})
+ optdepends=(${optdepends[@]/*32-*/})
+else
+ provides=("bin32-wine=$pkgver" "wine-wow64=$pkgver")
+ conflicts=('bin32-wine' 'wine-wow64')
+ replaces=('bin32-wine')
+fi
+
+build() {
+ cd "$srcdir"
+
+ # Allow ccache to work
+ mv $pkgname-$_pkgbasever $pkgname
+
+ # Get rid of old build dirs
+ rm -rf $pkgname-{32,64}-build
+ mkdir $pkgname-32-build
+
+ if [[ $CARCH == x86_64 ]]; then
+ msg2 "Building Wine-64..."
+
+ mkdir $pkgname-64-build
+ cd "$srcdir/$pkgname-64-build"
+ ../$pkgname/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib \
+ --with-x \
+ --enable-win64
+
+ make
+
+ _wine32opts=(
+ --libdir=/usr/lib32
+ --with-wine64="$srcdir/$pkgname-64-build"
+ )
+
+ export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+ fi
+
+ msg2 "Building Wine-32..."
+ cd "$srcdir/$pkgname-32-build"
+ ../$pkgname/configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --with-x \
+ "${_wine32opts[@]}"
+
+ make
+}
+
+package() {
+ msg2 "Packaging Wine-32..."
+ cd "$srcdir/$pkgname-32-build"
+
+ if [[ $CARCH == i686 ]]; then
+ make prefix="$pkgdir/usr" install
+ else
+ make prefix="$pkgdir/usr" \
+ libdir="$pkgdir/usr/lib32" \
+ dlldir="$pkgdir/usr/lib32/wine" install
+
+ msg2 "Packaging Wine-64..."
+ cd "$srcdir/$pkgname-64-build"
+ make prefix="$pkgdir/usr" \
+ libdir="$pkgdir/usr/lib" \
+ dlldir="$pkgdir/usr/lib/wine" install
+ fi
+}
+
+# vim:set ts=8 sts=2 sw=2 et:
diff --git a/multilib/wine/wine.install b/multilib/wine/wine.install
new file mode 100644
index 000000000..f71262186
--- /dev/null
+++ b/multilib/wine/wine.install
@@ -0,0 +1,12 @@
+post_install() {
+ update-desktop-database -q
+ echo "This wine package is wow64 enabled. This means it can run 32bit/64bit Windows apps on x86_64."
+ echo "If you are on x86_64, the default WINEARCH will be win64."
+ echo "This will cause a lot of Windows applications to malfunction even if they usually work in wine."
+ echo "Please create your ~/.wine with 'WINEARCH=win32 winecfg' if you are unsure and on x86_64."
+ echo "See the Arch wiki on wine for more information."
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/multilib/wine_gecko/PKGBUILD b/multilib/wine_gecko/PKGBUILD
new file mode 100644
index 000000000..30b412492
--- /dev/null
+++ b/multilib/wine_gecko/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 42670 2011-03-19 08:38:12Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Nicky726 (Nicky726 <at> gmail <dot> com)
+# Contributor: Allan McRae (allan <at> archlinux <dot> org)
+# Contributor: Alexander 'bas' Brovikov (bas <at> it-core <dot> org)
+
+pkgname=wine_gecko
+pkgver=1.2.0
+pkgrel=1
+pkgdesc="Wine's built-in replacement for Microsoft's Internet Explorer"
+arch=(i686 x86_64)
+url="http://wiki.winehq.org/Gecko"
+license=(MPL)
+depends=('wine>=1.3.16')
+source=(http://downloads.sourceforge.net/project/wine/Wine%20Gecko/$pkgver/$pkgname-$pkgver-x86{,_64}.msi)
+md5sums=('f2ed548494c86c511892b1c02491c8c4'
+ '26489d8d1dfa34b5783b3e567edcaa9f')
+
+if [[ $CARCH == i686 ]]; then
+ # Strip x86_64 msi
+ source=(${source[0]})
+ md5sums=(${md5sums[0]})
+fi
+
+package() {
+ cd "$srcdir"
+ _geckodir="$pkgdir/usr/share/wine/gecko"
+ install -Dm644 $pkgname-$pkgver-x86.msi "$_geckodir/$pkgname-$pkgver-x86.msi"
+ if [[ $CARCH == x86_64 ]]; then
+ install -m644 $pkgname-$pkgver-x86_64.msi "$_geckodir/"
+ fi
+}
diff --git a/multilib/zsnes/PKGBUILD b/multilib/zsnes/PKGBUILD
new file mode 100644
index 000000000..a15d029e4
--- /dev/null
+++ b/multilib/zsnes/PKGBUILD
@@ -0,0 +1,56 @@
+# $Id: PKGBUILD 28220 2010-10-03 23:52:11Z svenstaro $
+# Maintainer: Sven-Hendrik Haase <sh@lutzhaase.com>
+# Contributor: Frank Tetzel <frank.tetzel@mailbox.tu-dresden.de>
+# Contributor: Hugo Doria <hugo@archlinux.org>
+# Contributor: Aurelien Foret <orelien@chez.com>
+
+pkgname=zsnes
+pkgver=1.51
+pkgrel=7
+pkgdesc="Super Nintendo emulator"
+url="http://www.zsnes.com/"
+arch=('i686' 'x86_64')
+license=('GPL')
+
+if [ $CARCH == "x86_64" ]; then
+ depends=('gcc-libs-multilib' 'lib32-sdl' 'lib32-libpng>=1.4.0' 'lib32-libgl' 'lib32-ncurses' 'lib32-mesa')
+ makedepends=('nasm' 'gcc-multilib')
+else
+ depends=('gcc-libs' 'sdl' 'libpng>=1.4.0' 'libgl' 'ncurses' 'mesa')
+ makedepends=('nasm' 'gcc')
+fi
+
+source=(http://downloads.sourceforge.net/${pkgname}/zsnes151src.tar.bz2
+ zsnes.patch
+ zsnes.desktop
+ zsnes_icon.png)
+md5sums=('7071186bf80632ae88a153239498d8c9'
+ '3af40c7d674ebfce1bb1ab6b7e9a8fe4'
+ 'b100b2aa342c551167d7c5dcdcde9dd4'
+ 'b5260c02adfc3b7ff725041214b00bfd')
+
+build() {
+ cd ${srcdir}/${pkgname}_1_51/
+ patch -p1 -i ../zsnes.patch || return 1
+
+ cd ${srcdir}/${pkgname}_1_51/src
+if [ $CARCH == "x86_64" ]; then
+ export CC="gcc -m32"
+ export CXX="g++ -m32"
+fi
+ ./autogen.sh --prefix=/usr \
+ x_libraries=/usr/lib \
+ force_arch=i686 \
+ --enable-release
+
+ make || return 1
+ make DESTDIR=${pkgdir} install
+
+ # adding --mandir= to autoconf line fails
+ install -dm755 ${pkgdir}/usr/share
+
+ install -Dm644 ${srcdir}/zsnes.desktop ${pkgdir}/usr/share/applications/zsnes.desktop
+ install -Dm644 ${srcdir}/zsnes_icon.png ${pkgdir}/usr/share/pixmaps/zsnes_icon.png
+
+ mv ${pkgdir}/usr/man ${pkgdir}/usr/share
+}
diff --git a/multilib/zsnes/zsnes.desktop b/multilib/zsnes/zsnes.desktop
new file mode 100644
index 000000000..db13ada4c
--- /dev/null
+++ b/multilib/zsnes/zsnes.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Zsnes
+Comment=Super Nintendo emulator
+Exec=/usr/bin/zsnes
+Icon=/usr/share/pixmaps/zsnes_icon.png
+Terminal=false
+Type=Application
+Categories=Application;Game
+StartupNotify=false
diff --git a/multilib/zsnes/zsnes.patch b/multilib/zsnes/zsnes.patch
new file mode 100644
index 000000000..d0d12f2fb
--- /dev/null
+++ b/multilib/zsnes/zsnes.patch
@@ -0,0 +1,68 @@
+diff -aur zsnes_1_51//src/Makefile.in zsnes_1_51_new//src/Makefile.in
+--- zsnes_1_51//src/Makefile.in 2007-01-24 21:54:12.000000000 +0100
++++ zsnes_1_51_new//src/Makefile.in 2010-09-06 00:03:04.715810431 +0200
+@@ -95,7 +95,7 @@
+ %.o: %.cpp
+ @CXX@ @CXXFLAGS@ -o $@ -c $<
+ %.o %.h: %.psr $(PSR)
+- ./$(PSR) @PSRFLAGS@ -gcc @CC@ -compile -flags "@CFLAGS@ -O1" -cheader $*.h -fname $* $*.o $<
++ ./$(PSR) @PSRFLAGS@ -gcc "@CC@" -compile -flags "@CFLAGS@ -O1" -cheader $*.h -fname $* $*.o $<
+
+ default: main
+ all: main tools
+@@ -133,7 +133,7 @@
+
+ include makefile.dep
+ makefile.dep: $(TOOL_D)/depbuild Makefile
+- $(TOOL_D)/depbuild @CC@ "@CFLAGS@" @NASMPATH@ "@NFLAGS@" $(Z_OBJS) > makefile.dep
++ $(TOOL_D)/depbuild "@CC@" "@CFLAGS@" "@NASMPATH@" "@NFLAGS@" $(Z_OBJS) > makefile.dep
+
+ Makefile: Makefile.in config.status
+ ./config.status
+diff -aur zsnes_1_51//src/parsegen.cpp zsnes_1_51_new//src/parsegen.cpp
+--- zsnes_1_51//src/parsegen.cpp 2007-10-31 05:30:26.000000000 +0100
++++ zsnes_1_51_new//src/parsegen.cpp 2010-09-05 15:48:36.903333444 +0200
+@@ -19,6 +19,9 @@
+ Config file handler creator by Nach (C) 2005-2007
+ */
+
++#include <cstring>
++#include <cstdlib>
++
+ #if !defined(__GNUC__) && !defined(_MSC_VER)
+ #error You are using an unsupported compiler
+ #endif
+@@ -1822,7 +1825,7 @@
+ }
+ }
+
+-int main(size_t argc, const char *const *const argv)
++int main(int argc, const char *const *const argv)
+ {
+ const char *cheader_file = 0;
+ bool compile = false;
+diff -aur zsnes_1_51//src/tools/depbuild.cpp zsnes_1_51_new//src/tools/depbuild.cpp
+--- zsnes_1_51//src/tools/depbuild.cpp 2006-12-27 12:04:05.000000000 +0100
++++ zsnes_1_51_new//src/tools/depbuild.cpp 2010-09-05 15:48:36.903333444 +0200
+@@ -183,7 +183,7 @@
+ }
+ }
+
+-int main(size_t argc, const char *const *const argv)
++int main(int argc, const char *const *const argv)
+ {
+ if (argc < 5)
+ {
+diff -aur zsnes_1_51//src/tools/strutil.h zsnes_1_51_new//src/tools/strutil.h
+--- zsnes_1_51//src/tools/strutil.h 2006-12-27 12:04:05.000000000 +0100
++++ zsnes_1_51_new//src/tools/strutil.h 2010-09-05 15:48:36.903333444 +0200
+@@ -15,6 +15,9 @@
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <cstring>
++#include <cstdlib>
++
+ /*
+ This is part of a toolkit used to assist in ZSNES development
+ */
diff --git a/multilib/zsnes/zsnes_icon.png b/multilib/zsnes/zsnes_icon.png
new file mode 100644
index 000000000..31608ba06
--- /dev/null
+++ b/multilib/zsnes/zsnes_icon.png
Binary files differ
diff --git a/social/bitcoin-daemon/PKGBUILD b/social/bitcoin-daemon/PKGBUILD
new file mode 100644
index 000000000..4728160d0
--- /dev/null
+++ b/social/bitcoin-daemon/PKGBUILD
@@ -0,0 +1,55 @@
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Contributor: Artefact2 <artefact2@gmail.com>
+# Contributor: shahid <helllamer@gmail.com>
+
+pkgname=bitcoin-daemon
+_pkgname=bitcoin
+pkgver=0.3.20.2
+_bcver=0.3.20
+pkgrel=1
+pkgdesc="Bitcoin is a peer-to-peer network based digital currency."
+arch=('i686' 'x86_64')
+url="http://www.bitcoin.org/"
+depends=('expat' 'boost-libs>=1.43')
+makedepends=('boost')
+conflicts=('bitcoin-bin' 'bitcoin')
+license=('MIT')
+install="bitcoin-daemon.install"
+source=(http://ufpr.dl.sourceforge.net/project/bitcoin/Bitcoin/bitcoin-$_bcver/bitcoin-$pkgver-linux.tar.gz
+ makefile.archlinux
+ bitcoin-daemon.install
+ rc.bitcoind)
+md5sums=('f527a2669f4cfe82abf1fe9bea070c64'
+ '8e2ff558c2538e53c177513ad7d8b9a5'
+ 'a388684057de2bb543cb7f795dc693cf'
+ '4a9ab4997487bb5f8e3c6b1d580045af')
+
+build() {
+ cd $srcdir/${_pkgname}-${pkgver}/src
+
+ # copy correct makefile to src dir
+ cp $srcdir/makefile.archlinux Makefile
+
+ # fixes...
+ mkdir -p obj/nogui 2>/dev/null
+ rm -f cryptopp/obj/*
+
+ # to build (single-threaded make due to OOM issues)
+ make bitcoind
+}
+
+package() {
+ cd $srcdir/${_pkgname}-${pkgver}
+ mkdir -p $pkgdir/{usr/bin,usr/share/licenses/$pkgname,etc/rc.d,var/lib/$pkgname}
+
+ install -D -m755 ./src/bitcoind $pkgdir/usr/bin/
+ install -D -m755 $srcdir/rc.bitcoind $pkgdir/etc/rc.d/bitcoind
+ install -m 644 ./license.txt $pkgdir/usr/share/licenses/$pkgname/
+
+ # strip shit from executables
+ find $pkgdir/usr/bin/ -type f | xargs -L1 strip
+
+ # the bitcoin data directory should not readable by others (wallet is sensitive data)
+ chown -R 8333:8333 $pkgdir/var/lib/$pkgname
+ chmod -R 700 $pkgdir/var/lib/$pkgname
+}
diff --git a/social/bitcoin-daemon/bitcoin-daemon.install b/social/bitcoin-daemon/bitcoin-daemon.install
new file mode 100644
index 000000000..2eea98e2c
--- /dev/null
+++ b/social/bitcoin-daemon/bitcoin-daemon.install
@@ -0,0 +1,18 @@
+post_install() {
+ echo "==> Creating the bitcoin user…"
+ groupadd -g 8333 bitcoin
+ useradd -d /var/lib/bitcoin-daemon -g 8333 -u 8333 -s /bin/false -N bitcoin
+ pw="$RANDOM$RANDOM$RANDOM"
+ echo "==> Setting the default RPC password to $pw"
+ echo "rpcpassword=$pw" >> /var/lib/bitcoin-daemon/bitcoin.conf
+ chown 8333:8333 /var/lib/bitcoin-daemon/bitcoin.conf
+ chmod 400 /var/lib/bitcoin-daemon/bitcoin.conf
+ echo "==> You can add bitcoind to your DAEMONS array in rc.conf."
+}
+
+post_remove() {
+ echo "==> Deleting the bitcoin user…"
+ groupdel bitcoin
+ userdel bitcoin
+ echo "==> Your configuration file and wallet is still in /opt/bitcoin-daemon."
+}
diff --git a/social/bitcoin-daemon/makefile.archlinux b/social/bitcoin-daemon/makefile.archlinux
new file mode 100644
index 000000000..062a29d82
--- /dev/null
+++ b/social/bitcoin-daemon/makefile.archlinux
@@ -0,0 +1,72 @@
+# Copyright (c) 2009-2010 Satoshi Nakamoto
+# Rewritten for Archlinux by shahid
+# Distributed under the MIT/X11 software license, see the accompanying
+# file license.txt or http://www.opensource.org/licenses/mit-license.php.
+
+
+INCLUDEPATHS= \
+ -I"/usr/include" \
+
+LIBPATHS= \
+ -L"/usr/lib" \
+ -L"/usr/local/lib"
+
+LIBS= \
+ -Wl,-Bstatic \
+ -l boost_system \
+ -l boost_filesystem \
+ -l boost_program_options \
+ -l boost_thread \
+ -l db_cxx \
+ -l crypto \
+ -Wl,-Bdynamic \
+ -l gthread-2.0 \
+ ${LDFLAGS}
+
+DEBUGFLAGS=-g -D__WXDEBUG__
+CCFLAGS=${CXXFLAGS} -Wno-invalid-offsetof -Wformat $(WXDEFS) $(INCLUDEPATHS)
+HEADERS=headers.h strlcpy.h serialize.h uint256.h util.h key.h bignum.h base58.h \
+ script.h db.h net.h irc.h main.h rpc.h uibase.h ui.h noui.h init.h
+
+OBJS= \
+ obj/util.o \
+ obj/script.o \
+ obj/db.o \
+ obj/net.o \
+ obj/irc.o \
+ obj/main.o \
+ obj/rpc.o \
+ obj/init.o \
+ cryptopp/obj/sha.o \
+ cryptopp/obj/cpu.o
+
+
+all: bitcoin
+
+
+headers.h.gch: headers.h $(HEADERS)
+ g++ -c $(CCFLAGS) -DGUI -o $@ $<
+
+obj/%.o: %.cpp $(HEADERS) headers.h.gch
+ g++ -c $(CCFLAGS) -DGUI -o $@ $<
+
+# -DCRYPTOPP_DISABLE_SSE2
+cryptopp/obj/%.o: cryptopp/%.cpp
+ g++ -c $(CCFLAGS) -O3 -o $@ $<
+
+bitcoin: $(OBJS) obj/ui.o obj/uibase.o
+ g++ $(CCFLAGS) -o $@ $(LIBPATHS) $^ $(WXLIBS) $(LIBS)
+
+
+obj/nogui/%.o: %.cpp $(HEADERS)
+ g++ -c $(CCFLAGS) -o $@ $<
+
+bitcoind: $(OBJS:obj/%=obj/nogui/%)
+ g++ $(CCFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS) -ldl -lz
+
+
+clean:
+ -rm -f obj/*.o
+ -rm -f obj/nogui/*.o
+ -rm -f cryptopp/obj/*.o
+ -rm -f headers.h.gch
diff --git a/social/bitcoin-daemon/rc.bitcoind b/social/bitcoin-daemon/rc.bitcoind
new file mode 100644
index 000000000..98d713ffd
--- /dev/null
+++ b/social/bitcoin-daemon/rc.bitcoind
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+case "$1" in
+ start)
+ stat_busy "Starting bitcoind"
+ su -s /bin/bash -c "nohup bitcoind -gen -datadir=/var/lib/bitcoin-daemon &" bitcoin > /dev/null 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon bitcoind
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping bitcoind"
+ su -s /bin/bash -c "bitcoind -datadir=/var/lib/bitcoin-daemon stop" bitcoin &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon bitcoind
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/social/diaspora-git/PKGBUILD b/social/diaspora-git/PKGBUILD
new file mode 100644
index 000000000..52a6b990e
--- /dev/null
+++ b/social/diaspora-git/PKGBUILD
@@ -0,0 +1,100 @@
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Maintainer: Hilton Medeiros <medeiros.hilton at gmail dot com>
+# Contributor: Splashy <splash at open-web dot fr>
+
+# After installing, see the Diaspora wiki page for more information:
+# https://wiki.archlinux.org/index.php/Diaspora
+
+pkgname=diaspora-git
+pkgver=20110208
+pkgrel=1
+pkgdesc="A privacy aware, personally controlled, do-it-all, open source social network"
+arch=('i686' 'x86_64')
+url="http://www.joindiaspora.com/"
+license=('AGPL3')
+depends=('ruby' 'mysql-ruby' 'redis' 'imagemagick' 'libxslt')
+makedepends=('git' 'ruby-headers')
+install=diaspora.install
+source=('diaspora.bin'
+ 'diaspora.rc'
+ 'diaspora.logrotate'
+ 'diaspora.pam')
+
+_gitroot="http://github.com/diaspora/diaspora.git"
+_gitname="diaspora"
+
+build() {
+ cd "$srcdir"
+
+ msg "Connecting to the Git server..."
+
+ if [[ -d $_gitname ]] ; then
+ pushd $_gitname
+ git pull origin
+ msg "The local files are updated."
+ popd
+ else
+ git clone $_gitroot
+ msg "Git clone done."
+ fi
+
+ msg "Start making..."
+
+ [[ -d $_gitname-build ]] && rm -fr $_gitname-build
+ git clone $_gitname $_gitname-build
+
+ # Recover gems cache
+ rm -fr $_gitname-gems
+ mkdir -p $_gitname-gems
+ [[ -d cache ]] && mv cache $_gitname-gems
+
+# Include all gems
+ export GEM_HOME="$srcdir/$_gitname-gems"
+ export GEM_PATH="$srcdir/$_gitname-gems"
+ export PATH="${PATH}:${GEM_PATH}/bin"
+
+ gem install bundler
+
+ # Patch ruby_core_source to not install the headers in the system
+ # Remove this if you are behind a proxy and install the ruby-headers package instead
+# gem install ruby_core_source
+# sed -i "s@^ dest_dir.*@ dest_dir = \"$srcdir/rubyhdrs/\" + ruby_dir@" \
+# $_gitname-gems/gems/ruby_core_source*/lib/ruby_core_source.rb
+
+ pushd $_gitname-build
+ bundle install --path vendor
+
+ # We make this now because we do not install the git history
+ tar czf public/source.tar.gz `git ls-tree -r master | awk '{print $4}'`
+
+ rm -fr .git
+ popd
+
+ # Keep the gems cache
+ mv $_gitname-gems/cache "$srcdir"
+}
+
+package() {
+ cd "$srcdir"
+
+ usrdir="$pkgdir/usr/share/webapps"
+
+ install -d "$usrdir"
+ cp -r $_gitname-build "$usrdir/$_gitname"
+ #cp -r $_gitname-gems "$usrdir/"
+ find "$usrdir/$_gitname-gems" \
+ -type d -name ".git" -exec rm -fr '{}' \; &>/dev/null || true
+
+ install -Dm755 $_gitname.bin "$pkgdir/usr/bin/$_gitname"
+ install -Dm755 $_gitname.rc "$pkgdir/etc/rc.d/$_gitname"
+ install -Dm644 $_gitname.logrotate "$pkgdir/etc/logrotate.d/$_gitname"
+ install -Dm644 $_gitname.pam "$pkgdir/etc/pam.d/$_gitname"
+
+ install -d $pkgdir/usr/share/licenses/$_gitname/
+ install -Dm644 ${srcdir}/$_gitname-build/{AUTHORS,COPYRIGHT,GNU-AGPL-3.0} \
+ $pkgdir/usr/share/licenses/$_gitname/
+}
+md5sums=('7e7402127f9a05bc58aff0adc5057d1c'
+ '7bffaaee41b515247ba19a19c77dc5bf'
+ '60f6b3972c73cbc6b1c9ab87c88fb655'
+ '96f82c38f3f540b53f3e5144900acf17')
diff --git a/social/diaspora-git/diaspora.bin b/social/diaspora-git/diaspora.bin
new file mode 100644
index 000000000..d18a40014
--- /dev/null
+++ b/social/diaspora-git/diaspora.bin
@@ -0,0 +1,3 @@
+cd /usr/share/webapps/diaspora
+export GEM_HOME=/usr/share/webapps/diaspora-gems/
+./script/server &>>/var/log/diaspora.log
diff --git a/social/diaspora-git/diaspora.install b/social/diaspora-git/diaspora.install
new file mode 100644
index 000000000..faf2cb78f
--- /dev/null
+++ b/social/diaspora-git/diaspora.install
@@ -0,0 +1,29 @@
+
+dusr=diaspora
+dhome=/usr/share/webapps/diaspora
+dgems=/usr/share/webapps/diaspora-gems
+dlog=/var/log/diaspora.log
+
+post_install() {
+ getent passwd $dusr &>/dev/null || useradd -r -d $dhome -s /bin/bash $dusr &>/dev/null
+ chown -R $dusr:$dusr $dhome $dgems &>/dev/null
+ [[ -f $dlog ]] && chown $dusr:$dusr $dlog
+}
+
+pre_upgrade(){
+ etc/rc.d/diaspora stop &>/dev/null
+ return 0
+}
+
+post_upgrade(){
+ post_install $1
+}
+
+pre_remove(){
+ pre_upgrade $1
+}
+
+post_remove(){
+ getent passwd $dusr &>/dev/null && userdel -f $dusr
+ return 0
+}
diff --git a/social/diaspora-git/diaspora.logrotate b/social/diaspora-git/diaspora.logrotate
new file mode 100644
index 000000000..bb5564a79
--- /dev/null
+++ b/social/diaspora-git/diaspora.logrotate
@@ -0,0 +1,5 @@
+/var/log/diaspora.log {
+ notifempty
+ copytruncate
+ missingok
+}
diff --git a/social/diaspora-git/diaspora.pam b/social/diaspora-git/diaspora.pam
new file mode 100644
index 000000000..53724d1f8
--- /dev/null
+++ b/social/diaspora-git/diaspora.pam
@@ -0,0 +1,3 @@
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/social/diaspora-git/diaspora.rc b/social/diaspora-git/diaspora.rc
new file mode 100644
index 000000000..bd79237ee
--- /dev/null
+++ b/social/diaspora-git/diaspora.rc
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+daemon_name=diaspora
+dusr=diaspora
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pgrep -u $daemon_name`
+
+case "$1" in
+ start)
+ #Check if mysqld and redis are running, start them if not
+ ck_daemon mysqld && /etc/rc.d/mysqld start
+ ck_daemon redis && /etc/rc.d/redis start
+
+ if [ ! -e /var/log/$daemon_name.log ]; then
+ touch /var/log/$daemon_name.log
+ chown $dusr:$dusr /var/log/$daemon_name.log
+ fi
+
+ stat_busy "Starting $daemon_name daemon"
+ [ -z "$PID" ] && /bin/su - $dusr -c "/usr/bin/$daemon_name &"
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ stop)
+ stat_busy "Stopping $daemon_name daemon"
+ kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ exit 1
+ else
+ while [ ! -z "$(pgrep -u $daemon_name)" ]; do
+ sleep 1;
+ done
+ rm_daemon $daemon_name
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 3
+ $0 start
+ ;;
+
+ status)
+ stat_busy "Checking $daemon_name status"
+ ck_status $daemon_name
+ ;;
+
+ *)
+ echo "usage: $0 {start|stop|restart|status}"
+esac
+
+exit 0
+
+# vim: syntax=sh
diff --git a/social/haveged/PKGBUILD b/social/haveged/PKGBUILD
new file mode 100644
index 000000000..804a22199
--- /dev/null
+++ b/social/haveged/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: pootzko <pootzko@gmail.com>
+# Contributor: kfgz <kfgz@interia.pl>
+
+pkgname=haveged
+pkgver=1.0
+pkgrel=1
+pkgdesc="A simple entropy daemon."
+arch=('i686' 'x86_64')
+url="http://www.issihosts.com/haveged"
+license="GPL"
+depends=()
+source=(${url}/${pkgname}-${pkgver}.tar.gz
+ haveged)
+md5sums=('72df03658cafac35e087fb75f6d4100d'
+ '264b725be5271288b40f363d7cfc6b68')
+
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/etc/init.d
+ cd ${srcdir}
+ install -D -m755 haveged ${pkgdir}/etc/rc.d/haveged
+}
+
+
diff --git a/social/haveged/haveged b/social/haveged/haveged
new file mode 100644
index 000000000..c0e13b40d
--- /dev/null
+++ b/social/haveged/haveged
@@ -0,0 +1,44 @@
+#!/bin/bash
+##
+# chkconfig: 2345 75 25
+# description: havege entropy daemon
+#
+# source function library
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+RETVAL=0
+prog="haveged"
+
+case "$1" in
+start)
+ stat_busy $"Starting $prog"
+ /usr/sbin/$prog -w 1024 -v 1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon $prog
+ stat_done
+ fi
+ ;;
+
+stop)
+ stat_busy $"Stopping $prog"
+ kill `cat /var/run/$prog.pid`
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon $prog
+ stat_done
+ rm -f /var/lock/$prog
+ fi
+ ;;
+
+restart)
+ $0 stop
+ $0 start
+ ;;
+
+*)
+ echo "usage: $prog [start|stop|restart]"
+esac
diff --git a/social/inadyn-opendns/PKGBUILD b/social/inadyn-opendns/PKGBUILD
new file mode 100644
index 000000000..75e8dc1ae
--- /dev/null
+++ b/social/inadyn-opendns/PKGBUILD
@@ -0,0 +1,32 @@
+# Contributor: Bug <Bug2000@gmail.com>
+# Maintainer: Bug <Bug2000@gmail.com>
+pkgname=inadyn-opendns
+pkgver=1.99
+pkgrel=3
+pkgdesc="Simple dynamic DNS client with SSL support"
+arch=('i686')
+url="http://www.opendns.com/account/dynamic_dns/downloads"
+license=('GPL')
+makedepends=('unzip')
+depends=('curl')
+conflicts=('inadyn')
+provides=('inadyn')
+backup=('etc/inadyn.conf')
+install=('inadyn-opendns.install')
+source=("http://www.opendns.com/support/ddns_files/inadyn.source.v$pkgver.zip"
+ 'inadyn.rc-script')
+md5sums=('0f2cf9c3ea3482c03e1c42f8480f1c55'
+ '73c61f9939546c28119242a1e12ffcff')
+
+build() {
+ cd "$srcdir/inadyn.source.v$pkgver"
+
+ make || return 1
+
+ install -Dm755 bin/linux/inadyn $pkgdir/usr/sbin/inadyn
+ install -Dm644 man/inadyn.8 $pkgdir/usr/share/man/man8/inadyn.8
+ install -Dm644 man/inadyn.conf.5 $pkgdir/usr/share/man/man5/inadyn.conf.5
+ install -Dm644 readme.html $pkgdir/usr/share/doc/inadyn/readme.html
+ install -Dm755 $srcdir/inadyn.rc-script $pkgdir/etc/rc.d/inadyn
+ install -Dm644 inadyn.conf $pkgdir/etc/inadyn.conf
+}
diff --git a/social/inadyn-opendns/inadyn-opendns.install b/social/inadyn-opendns/inadyn-opendns.install
new file mode 100644
index 000000000..e1a842430
--- /dev/null
+++ b/social/inadyn-opendns/inadyn-opendns.install
@@ -0,0 +1,17 @@
+post_install() {
+/bin/true
+echo Please remember to change the /etc/inadyn.conf file for your settings.
+}
+
+post_upgrade() {
+/bin/true
+}
+
+pre_remove() {
+/bin/true
+}
+
+op=$1
+shift
+
+$op "$@" \ No newline at end of file
diff --git a/social/inadyn-opendns/inadyn.rc-script b/social/inadyn-opendns/inadyn.rc-script
new file mode 100644
index 000000000..2ee29d59e
--- /dev/null
+++ b/social/inadyn-opendns/inadyn.rc-script
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/inadyn`
+case "$1" in
+ start)
+ stat_busy "Starting INADYN Daemon"
+ [ -z "$PID" ] && /usr/sbin/inadyn --background --input_file /etc/inadyn.conf >>/var/log/inadyn 2>&1
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID /usr/sbin/inadyn`
+ echo $PID >/var/run/inadyn.pid
+ add_daemon inadyn
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping INADYN Daemon"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon inadyn
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/social/liblockfile/PKGBUILD b/social/liblockfile/PKGBUILD
new file mode 100644
index 000000000..e3428763c
--- /dev/null
+++ b/social/liblockfile/PKGBUILD
@@ -0,0 +1,30 @@
+# Contributor: Andreas Wagner <Andreas dot Wagner at em dot uni-frankfurt dot de>
+
+pkgname=liblockfile
+pkgver=1.08_4
+pkgrel=1
+pkgdesc="a library with NFS-safe locking functions"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://packages.debian.org/unstable/libs/liblockfile1"
+depends=('glibc')
+makedepends=()
+source=(http://ftp.debian.org/debian/pool/main/libl/$pkgname/${pkgname}_1.08.orig.tar.gz
+ http://ftp.debian.org/debian/pool/main/libl/$pkgname/${pkgname}_${pkgver/_/-}.debian.tar.bz2)
+
+build() {
+ cd $startdir/src/$pkgname-1.08
+
+ for p in `cat ../debian/patches/series` ; do
+ patch -p1 < ../debian/patches/$p
+ done
+
+ ./configure --prefix=/usr --mandir=/usr/share/man || return 1
+ make || return 1
+
+ mkdir -p $startdir/pkg/usr/{lib,bin,include,share/man/man1,share/man/man3}
+ make install prefix=$startdir/pkg/usr mandir=$startdir/pkg/usr/share/man || return 1
+}
+
+md5sums=('c24e2dfb4a2aab0263fe5ac1564d305e'
+ '50c0c049d2838704f5720f5fd9eaddac')
diff --git a/social/lockfile-progs/PKGBUILD b/social/lockfile-progs/PKGBUILD
new file mode 100644
index 000000000..57d833952
--- /dev/null
+++ b/social/lockfile-progs/PKGBUILD
@@ -0,0 +1,26 @@
+# Contributor: Andreas Wagner <Andreas dot Wagner at em dot uni-frankfurt dot de>
+
+pkgname=lockfile-progs
+pkgver=0.1.15
+pkgrel=1
+pkgdesc="programs for locking and unlocking files and mailboxes"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://packages.debian.org/unstable/misc/lockfile-progs"
+depends=('glibc')
+makedepends=('liblockfile')
+source=(http://ftp.debian.org/debian/pool/main/l/lockfile-progs/${pkgname}_${pkgver}.tar.gz)
+
+build() {
+ cd $startdir/src/sid
+
+ make || return 1
+
+ mkdir -p $startdir/pkg/usr/bin
+ install -s bin/* $startdir/pkg/usr/bin
+
+ mkdir -p $startdir/pkg/usr/share/man/man1
+ install man/*.1 $startdir/pkg/usr/share/man/man1
+}
+
+md5sums=('abfcda83a1868073673f4d78066b8f8a')
diff --git a/social/monkeysphere/PKGBUILD b/social/monkeysphere/PKGBUILD
new file mode 100644
index 000000000..c804b8409
--- /dev/null
+++ b/social/monkeysphere/PKGBUILD
@@ -0,0 +1,22 @@
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+# Based on monkeysphere-git from
+# Contributor: Olivier Mehani <shtrom-arch@ssji.net>
+# $Id: PKGBUILD 264 2010-11-10 00:57:53Z shtrom $
+pkgname=monkeysphere
+pkgver=0.35
+pkgrel=1
+pkgdesc="Leverage the OpenPGP web of trust for OpenSSH and Web authentication"
+arch=('i686' 'x86_64')
+url="http://web.monkeysphere.info/"
+license=('GPL3')
+depends=('gnupg' 'lockfile-progs' 'perl-crypt-openssl-rsa' 'perl-digest-sha1')
+source=(http://archive.monkeysphere.info/debian/pool/${pkgname}/m/${pkgname}/${pkgname}_${pkgver}.orig.tar.gz)
+install=monkeysphere.install
+md5sums=('481ac14c9fdef0ccd1944c593bd4f517')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir/" install
+ mkdir -p $pkgdir/var/lib/monkeysphere
+}
diff --git a/social/monkeysphere/monkeysphere.install b/social/monkeysphere/monkeysphere.install
new file mode 100644
index 000000000..cc31e728d
--- /dev/null
+++ b/social/monkeysphere/monkeysphere.install
@@ -0,0 +1,40 @@
+#!/bin/sh
+# $Id: monkeysphere.install 264 2010-11-10 00:57:53Z shtrom $
+# vim:set ts=2 sw=2 et:
+
+# arg 1: the new package version
+pre_install() {
+ /bin/true
+}
+
+# arg 1: the new package version
+post_install() {
+ echo ">>> Creating monkeysphere user and group and setting permissions..."
+ getent group monkeysphere >/dev/null || usr/sbin/groupadd monkeysphere
+ getent passwd monkeysphere >/dev/null || usr/sbin/useradd -c 'Monkeysphere WoT server identification tool' -g monkeysphere -d '/var/lib/monkeysphere' -s /bin/bash monkeysphere
+ chown monkeysphere:monkeysphere /var/lib/monkeysphere
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+pre_upgrade() {
+ /bin/true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ /bin/true
+}
+
+# arg 1: the old package version
+pre_remove() {
+ usr/sbin/userdel monkeysphere &>/dev/null
+ (getent group monkeysphere >/dev/null && usr/sbin/groupdel monkeysphere &>/dev/null) || /bin/true
+}
+
+# arg 1: the old package version
+post_remove() {
+ /bin/true
+}
+
diff --git a/social/ruby-headers/PKGBUILD b/social/ruby-headers/PKGBUILD
new file mode 100644
index 000000000..b7ef76edc
--- /dev/null
+++ b/social/ruby-headers/PKGBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Hilton Medeiros <medeiros.hilton at gmail dot com>
+
+pkgname=ruby-headers
+_pkgname=ruby
+pkgver=1.9.2_p136
+_pkgver=1.9.2-p136
+pkgrel=1
+pkgdesc="A package of all Ruby headers needed by some gems like ruby-debug."
+arch=('any')
+url="http://www.ruby-lang.org/en/"
+license=('custom')
+depends=('ruby')
+source=("http://ftp.ruby-lang.org/pub/ruby/1.9/$_pkgname-$_pkgver.tar.bz2")
+md5sums=('52958d35d1b437f5d9d225690de94c13')
+
+build() {
+ /bin/true
+}
+
+package() {
+ cd "$srcdir/$_pkgname-$_pkgver"
+
+ # Just to make sure, since currently we have /usr/include/ruby-1.9.1 for ruby 1.9.2
+ _hdrdir=`ruby -e "require 'rbconfig'; puts Config::CONFIG['rubyhdrdir']"`
+
+ install -d "$pkgdir$_hdrdir/$_pkgname-$_pkgver"
+ install -m644 *.{h,inc} "$pkgdir$_hdrdir/$_pkgname-$_pkgver"
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
diff --git a/social/statusnet/PKGBUILD b/social/statusnet/PKGBUILD
new file mode 100644
index 000000000..7aa359e38
--- /dev/null
+++ b/social/statusnet/PKGBUILD
@@ -0,0 +1,1298 @@
+# Contributor: fauno <fauno@kiwwwi.com.ar>
+pkgbase=statusnet
+pkgname=('statusnet-base'
+'statusnet-plugins-piwikanalytics'
+'statusnet-plugins-groupprivatemessage'
+'statusnet-plugins-subscriptionthrottle' 'statusnet-plugins-mollom'
+'statusnet-plugins-noticetitle' 'statusnet-plugins-googleanalytics'
+'statusnet-plugins-groupfavorited' 'statusnet-plugins-simpleurl'
+'statusnet-plugins-modhelper' 'statusnet-plugins-meteor'
+'statusnet-plugins-newmenu' 'statusnet-plugins-memcached'
+'statusnet-plugins-ldapauthorization' 'statusnet-plugins-lilurl'
+'statusnet-plugins-template' 'statusnet-plugins-openx'
+'statusnet-plugins-sharenotice' 'statusnet-plugins-logfilter'
+'statusnet-plugins-spotify' 'statusnet-plugins-adsense'
+'statusnet-plugins-postdebug' 'statusnet-plugins-inprocesscache'
+'statusnet-plugins-blacklist' 'statusnet-plugins-linkpreview'
+'statusnet-plugins-realtime' 'statusnet-plugins-openexternallinktarget'
+'statusnet-plugins-diskcache' 'statusnet-plugins-autosandbox'
+'statusnet-plugins-linkback' 'statusnet-plugins-apilogger'
+'statusnet-plugins-autocomplete' 'statusnet-plugins-wikihashtags'
+'statusnet-plugins-imap' 'statusnet-plugins-anonymousfave'
+'statusnet-plugins-sample' 'statusnet-plugins-memcache'
+'statusnet-plugins-ostatus' 'statusnet-plugins-tabfocus'
+'statusnet-plugins-ldapcommon' 'statusnet-plugins-mapstraction'
+'statusnet-plugins-userlimit' 'statusnet-plugins-echo'
+'statusnet-plugins-tinymce' 'statusnet-plugins-requirevalidatedemail'
+'statusnet-plugins-modplus' 'statusnet-plugins-enjit' 'statusnet-plugins-apc'
+'statusnet-plugins-cachelog' 'statusnet-plugins-followeveryone'
+'statusnet-plugins-facebookbridge' 'statusnet-plugins-emailsummary'
+'statusnet-plugins-orbited' 'statusnet-plugins-urlshortener'
+'statusnet-plugins-ldapauthentication' 'statusnet-plugins-openid'
+'statusnet-plugins-sqlprofile' 'statusnet-plugins-directiondetector'
+'statusnet-plugins-twitterbridge' 'statusnet-plugins-geonames'
+'statusnet-plugins-extendedprofile' 'statusnet-plugins-wikihowprofile'
+'statusnet-plugins-blankad' 'statusnet-plugins-clientsideshorten'
+'statusnet-plugins-forcegroup' 'statusnet-plugins-emailauthentication'
+'statusnet-plugins-comet' 'statusnet-plugins-recaptcha'
+'statusnet-plugins-registerthrottle' 'statusnet-plugins-mobileprofile'
+'statusnet-plugins-ptiturl' 'statusnet-plugins-submirror'
+'statusnet-plugins-gravatar' 'statusnet-plugins-sphinxsearch'
+'statusnet-plugins-geourl' 'statusnet-plugins-infinitescroll'
+'statusnet-plugins-slicedfavorites' 'statusnet-plugins-disqus'
+'statusnet-plugins-minify' 'statusnet-plugins-tighturl'
+'statusnet-plugins-yammerimport' 'statusnet-plugins-bitlyurl'
+'statusnet-plugins-awesomeness' 'statusnet-plugins-userflag'
+'statusnet-plugins-blogspamnet'
+'statusnet-plugins-reverseusernameauthentication' 'statusnet-plugins-sitemap'
+'statusnet-plugins-mobile' 'statusnet-plugins-poweredbystatusnet'
+'statusnet-plugins-bookmark' 'statusnet-plugins-firephp'
+'statusnet-plugins-xcache' 'statusnet-plugins-rsscloud'
+'statusnet-plugins-casauthentication' 'statusnet-i18n-nn'
+'statusnet-i18n-af' 'statusnet-i18n-cs' 'statusnet-i18n-mk' 'statusnet-i18n-ml'
+'statusnet-i18n-hsb' 'statusnet-i18n-pl' 'statusnet-i18n-he'
+'statusnet-i18n-en_gb' 'statusnet-i18n-pt' 'statusnet-i18n-tr'
+'statusnet-i18n-ja' 'statusnet-i18n-ru' 'statusnet-i18n-uk' 'statusnet-i18n-fi'
+'statusnet-i18n-ka' 'statusnet-i18n-bg' 'statusnet-i18n-de' 'statusnet-i18n-hu'
+'statusnet-i18n-ar' 'statusnet-i18n-te' 'statusnet-i18n-el' 'statusnet-i18n-ko'
+'statusnet-i18n-is' 'statusnet-i18n-da' 'statusnet-i18n-it'
+'statusnet-i18n-arz' 'statusnet-i18n-gl' 'statusnet-i18n-fa'
+'statusnet-i18n-ca' 'statusnet-i18n-fr' 'statusnet-i18n-en'
+'statusnet-i18n-fur' 'statusnet-i18n-br' 'statusnet-i18n-zh_tw'
+'statusnet-i18n-eo' 'statusnet-i18n-nl' 'statusnet-i18n-nb' 'statusnet-i18n-es'
+'statusnet-i18n-vi' 'statusnet-i18n-pt_br' 'statusnet-i18n-ga'
+'statusnet-i18n-ia' 'statusnet-i18n-sv' 'statusnet-i18n-zh_cn')
+pkgver=0.9.7
+pkgrel=1
+pkgdesc="StatusNet is a Free and Open Source microblogging platform."
+arch=('any')
+url="http://status.net"
+license=('AGPL')
+groups=('social-web')
+depends=('php>=5.2.3' 'mysql>=5' 'php-gd' 'php-curl' 'php-gmp')
+provides=()
+options=()
+source=("http://status.net/${pkgbase}-${pkgver}.tar.gz"
+ statusnet.install)
+install=statusnet.install
+md5sums=('321674f47934e62ff4bd94b80d9d9ba0'
+ '24991580625ec177c144ed5acdbe6dbc')
+
+build() {
+ /bin/true
+}
+
+package_statusnet-base() {
+ provides=('statusnet')
+ optdepends=('memcache: for caching database queries'
+ 'php-xcache: for accelerating PHP code execution'
+ 'php-ldap: for the LDAP plugin'
+ 'statusnet-plugins-ostatus: for federation')
+
+ cd "$srcdir/$pkgbase-${pkgver}"
+
+ etc_dir="${pkgdir}/etc/webapps/${pkgbase}"
+ usr_dir="${pkgdir}/usr/share/webapps/${pkgbase}"
+
+ install -d ${usr_dir}
+ install -d ${etc_dir}
+ install -d ${pkgdir}/usr/share/doc/${pkgbase}/
+ install -d ${pkgdir}/usr/share/licenses/${pkgbase}
+
+ install -m644 ./{config.php,htaccess}.sample \
+ ${pkgdir}/usr/share/doc/${pkgbase}/
+
+ install -m644 ./{README,EVENTS.txt,lighttpd.conf.example} \
+ ${pkgdir}/usr/share/doc/${pkgbase}/
+
+ install -m644 COPYING ${pkgdir}/usr/share/licenses/${pkgbase}/
+
+ rm -f *.sample README COPYING README EVENTS.txt *.example
+
+ cp -ra * ${usr_dir}/
+ chmod a+w ${usr_dir}/{avatar,background,file}
+
+ msg2 "Install bogus config.php"
+ touch ${etc_dir}/config.php
+ chmod a+w ${etc_dir}/config.php
+ ln -s /etc/webapps/statusnet/config.php ${usr_dir}/config.php
+
+ msg2 "Remove locale and plugins in favor of split packages"
+ rm -rf ${usr_dir}/{locale,plugins}
+
+ install -d ${usr_dir}/plugins
+ install -d ${usr_dir}/locale
+}
+
+# Helper for creating i18n packages
+statusnet-i18n-helper() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ install -d "${pkgdir}/usr/share/webapps/statusnet/locale/${1}"
+ cp -ra "./locale/${1}" "${pkgdir}/usr/share/webapps/statusnet/locale/${1}/"
+}
+
+# Helper for creating plugin packages
+statusnet-plugins-helper() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+
+ install -d "${pkgdir}/usr/share/webapps/statusnet/plugins/${1}"
+ cp -ra "./plugins/${1}" "${pkgdir}/usr/share/webapps/statusnet/plugins/${1}/"
+}
+
+# Gets the available plugins and returns package_statusnet-plugins-* functions
+# Must be ran from PKGBUILD dir after `makepkg -o`
+helper_get_plugins() {
+ cd ./src/${pkgbase}-${pkgver}/plugins
+ plugins=($(find . -maxdepth 1 -type d | sed "s/^.*\///"))
+
+ for plugin in ${plugins[@]}; do
+ plugin_lower=$(echo ${plugin} | tr [A-Z] [a-z])
+
+ echo "
+package_statusnet-plugins-${plugin_lower}() {
+ pkgdesc='${plugin} plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ${plugin}
+}"
+ done
+
+ # Generates a pkgname line
+ echo "${plugins[@]}" | tr [A-Z] [a-z] | \
+ sed "s/\(^\| \)\([^ ]\+\)/\1'statusnet-plugins-\2'/g"
+
+ cd ../../..
+}
+
+# Gets the available plugins and returns package_statusnet-i18n-* functions
+# Must be ran from PKGBUILD dir after `makepkg -o`
+helper_get_locales() {
+ cd ./src/${pkgbase}-${pkgver}/locale
+ locales=($(find . -maxdepth 1 -type d | sed "s/^.*\///"))
+
+ for locale in ${locales[@]}; do
+ locale_lower=$(echo ${locale} | tr [A-Z] [a-z])
+
+ echo "
+package_statusnet-i18n-${locale_lower}() {
+ pkgdesc='${locale} locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ${locale}
+}"
+ done
+
+ # Generates a pkgname line
+ echo "${locales[@]}" | tr [A-Z] [a-z] | \
+ sed "s/\(^\| \)\([^ ]\+\)/\1'statusnet-i18n-\2'/g"
+ cd ../../..
+}
+
+# AUTOGENERATED. Delete from next line before update
+
+package_statusnet-plugins-piwikanalytics() {
+ pkgdesc='PiwikAnalytics plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper PiwikAnalytics
+}
+
+package_statusnet-plugins-groupprivatemessage() {
+ pkgdesc='GroupPrivateMessage plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper GroupPrivateMessage
+}
+
+package_statusnet-plugins-subscriptionthrottle() {
+ pkgdesc='SubscriptionThrottle plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper SubscriptionThrottle
+}
+
+package_statusnet-plugins-mollom() {
+ pkgdesc='Mollom plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Mollom
+}
+
+package_statusnet-plugins-noticetitle() {
+ pkgdesc='NoticeTitle plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper NoticeTitle
+}
+
+package_statusnet-plugins-googleanalytics() {
+ pkgdesc='GoogleAnalytics plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper GoogleAnalytics
+}
+
+package_statusnet-plugins-groupfavorited() {
+ pkgdesc='GroupFavorited plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper GroupFavorited
+}
+
+package_statusnet-plugins-simpleurl() {
+ pkgdesc='SimpleUrl plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper SimpleUrl
+}
+
+package_statusnet-plugins-modhelper() {
+ pkgdesc='ModHelper plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ModHelper
+}
+
+package_statusnet-plugins-meteor() {
+ pkgdesc='Meteor plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Meteor
+}
+
+package_statusnet-plugins-newmenu() {
+ pkgdesc='NewMenu plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper NewMenu
+}
+
+package_statusnet-plugins-memcached() {
+ pkgdesc='Memcached plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Memcached
+}
+
+package_statusnet-plugins-ldapauthorization() {
+ pkgdesc='LdapAuthorization plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper LdapAuthorization
+}
+
+package_statusnet-plugins-lilurl() {
+ pkgdesc='LilUrl plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper LilUrl
+}
+
+package_statusnet-plugins-template() {
+ pkgdesc='Template plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Template
+}
+
+package_statusnet-plugins-openx() {
+ pkgdesc='OpenX plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper OpenX
+}
+
+package_statusnet-plugins-sharenotice() {
+ pkgdesc='ShareNotice plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ShareNotice
+}
+
+package_statusnet-plugins-logfilter() {
+ pkgdesc='LogFilter plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper LogFilter
+}
+
+package_statusnet-plugins-spotify() {
+ pkgdesc='Spotify plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Spotify
+}
+
+package_statusnet-plugins-adsense() {
+ pkgdesc='Adsense plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Adsense
+}
+
+package_statusnet-plugins-postdebug() {
+ pkgdesc='PostDebug plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper PostDebug
+}
+
+package_statusnet-plugins-inprocesscache() {
+ pkgdesc='InProcessCache plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper InProcessCache
+}
+
+package_statusnet-plugins-blacklist() {
+ pkgdesc='Blacklist plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Blacklist
+}
+
+package_statusnet-plugins-linkpreview() {
+ pkgdesc='LinkPreview plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper LinkPreview
+}
+
+package_statusnet-plugins-realtime() {
+ pkgdesc='Realtime plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Realtime
+}
+
+package_statusnet-plugins-openexternallinktarget() {
+ pkgdesc='OpenExternalLinkTarget plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper OpenExternalLinkTarget
+}
+
+package_statusnet-plugins-diskcache() {
+ pkgdesc='DiskCache plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper DiskCache
+}
+
+package_statusnet-plugins-autosandbox() {
+ pkgdesc='AutoSandbox plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper AutoSandbox
+}
+
+package_statusnet-plugins-linkback() {
+ pkgdesc='Linkback plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Linkback
+}
+
+package_statusnet-plugins-apilogger() {
+ pkgdesc='ApiLogger plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ApiLogger
+}
+
+package_statusnet-plugins-autocomplete() {
+ pkgdesc='Autocomplete plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Autocomplete
+}
+
+package_statusnet-plugins-wikihashtags() {
+ pkgdesc='WikiHashtags plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper WikiHashtags
+}
+
+package_statusnet-plugins-imap() {
+ pkgdesc='Imap plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Imap
+}
+
+package_statusnet-plugins-anonymousfave() {
+ pkgdesc='AnonymousFave plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper AnonymousFave
+}
+
+package_statusnet-plugins-sample() {
+ pkgdesc='Sample plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Sample
+}
+
+package_statusnet-plugins-memcache() {
+ pkgdesc='Memcache plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Memcache
+}
+
+package_statusnet-plugins-ostatus() {
+ pkgdesc='OStatus plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper OStatus
+}
+
+package_statusnet-plugins-tabfocus() {
+ pkgdesc='TabFocus plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper TabFocus
+}
+
+package_statusnet-plugins-ldapcommon() {
+ pkgdesc='LdapCommon plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper LdapCommon
+}
+
+package_statusnet-plugins-mapstraction() {
+ pkgdesc='Mapstraction plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Mapstraction
+}
+
+package_statusnet-plugins-userlimit() {
+ pkgdesc='UserLimit plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper UserLimit
+}
+
+package_statusnet-plugins-echo() {
+ pkgdesc='Echo plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Echo
+}
+
+package_statusnet-plugins-tinymce() {
+ pkgdesc='TinyMCE plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper TinyMCE
+}
+
+package_statusnet-plugins-requirevalidatedemail() {
+ pkgdesc='RequireValidatedEmail plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper RequireValidatedEmail
+}
+
+package_statusnet-plugins-modplus() {
+ pkgdesc='ModPlus plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ModPlus
+}
+
+package_statusnet-plugins-enjit() {
+ pkgdesc='Enjit plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Enjit
+}
+
+package_statusnet-plugins-apc() {
+ pkgdesc='APC plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper APC
+}
+
+package_statusnet-plugins-cachelog() {
+ pkgdesc='CacheLog plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper CacheLog
+}
+
+package_statusnet-plugins-followeveryone() {
+ pkgdesc='FollowEveryone plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper FollowEveryone
+}
+
+package_statusnet-plugins-facebookbridge() {
+ pkgdesc='FacebookBridge plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper FacebookBridge
+}
+
+package_statusnet-plugins-emailsummary() {
+ pkgdesc='EmailSummary plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper EmailSummary
+}
+
+package_statusnet-plugins-orbited() {
+ pkgdesc='Orbited plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Orbited
+}
+
+package_statusnet-plugins-urlshortener() {
+ pkgdesc='UrlShortener plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper UrlShortener
+}
+
+package_statusnet-plugins-ldapauthentication() {
+ pkgdesc='LdapAuthentication plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper LdapAuthentication
+}
+
+package_statusnet-plugins-openid() {
+ pkgdesc='OpenID plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper OpenID
+}
+
+package_statusnet-plugins-sqlprofile() {
+ pkgdesc='SQLProfile plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper SQLProfile
+}
+
+package_statusnet-plugins-directiondetector() {
+ pkgdesc='DirectionDetector plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper DirectionDetector
+}
+
+package_statusnet-plugins-twitterbridge() {
+ pkgdesc='TwitterBridge plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper TwitterBridge
+}
+
+package_statusnet-plugins-geonames() {
+ pkgdesc='Geonames plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Geonames
+}
+
+package_statusnet-plugins-extendedprofile() {
+ pkgdesc='ExtendedProfile plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ExtendedProfile
+}
+
+package_statusnet-plugins-wikihowprofile() {
+ pkgdesc='WikiHowProfile plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper WikiHowProfile
+}
+
+package_statusnet-plugins-blankad() {
+ pkgdesc='BlankAd plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper BlankAd
+}
+
+package_statusnet-plugins-clientsideshorten() {
+ pkgdesc='ClientSideShorten plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ClientSideShorten
+}
+
+package_statusnet-plugins-forcegroup() {
+ pkgdesc='ForceGroup plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ForceGroup
+}
+
+package_statusnet-plugins-emailauthentication() {
+ pkgdesc='EmailAuthentication plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper EmailAuthentication
+}
+
+package_statusnet-plugins-comet() {
+ pkgdesc='Comet plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Comet
+}
+
+package_statusnet-plugins-recaptcha() {
+ pkgdesc='Recaptcha plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Recaptcha
+}
+
+package_statusnet-plugins-registerthrottle() {
+ pkgdesc='RegisterThrottle plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper RegisterThrottle
+}
+
+package_statusnet-plugins-mobileprofile() {
+ pkgdesc='MobileProfile plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper MobileProfile
+}
+
+package_statusnet-plugins-ptiturl() {
+ pkgdesc='PtitUrl plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper PtitUrl
+}
+
+package_statusnet-plugins-submirror() {
+ pkgdesc='SubMirror plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper SubMirror
+}
+
+package_statusnet-plugins-gravatar() {
+ pkgdesc='Gravatar plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Gravatar
+}
+
+package_statusnet-plugins-sphinxsearch() {
+ pkgdesc='SphinxSearch plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper SphinxSearch
+}
+
+package_statusnet-plugins-geourl() {
+ pkgdesc='GeoURL plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper GeoURL
+}
+
+package_statusnet-plugins-infinitescroll() {
+ pkgdesc='InfiniteScroll plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper InfiniteScroll
+}
+
+package_statusnet-plugins-slicedfavorites() {
+ pkgdesc='SlicedFavorites plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper SlicedFavorites
+}
+
+package_statusnet-plugins-disqus() {
+ pkgdesc='Disqus plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Disqus
+}
+
+package_statusnet-plugins-minify() {
+ pkgdesc='Minify plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Minify
+}
+
+package_statusnet-plugins-tighturl() {
+ pkgdesc='TightUrl plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper TightUrl
+}
+
+package_statusnet-plugins-yammerimport() {
+ pkgdesc='YammerImport plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper YammerImport
+}
+
+package_statusnet-plugins-bitlyurl() {
+ pkgdesc='BitlyUrl plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper BitlyUrl
+}
+
+package_statusnet-plugins-awesomeness() {
+ pkgdesc='Awesomeness plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Awesomeness
+}
+
+package_statusnet-plugins-userflag() {
+ pkgdesc='UserFlag plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper UserFlag
+}
+
+package_statusnet-plugins-blogspamnet() {
+ pkgdesc='BlogspamNet plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper BlogspamNet
+}
+
+package_statusnet-plugins-reverseusernameauthentication() {
+ pkgdesc='ReverseUsernameAuthentication plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper ReverseUsernameAuthentication
+}
+
+package_statusnet-plugins-sitemap() {
+ pkgdesc='Sitemap plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Sitemap
+}
+
+package_statusnet-plugins-mobile() {
+ pkgdesc='Mobile plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Mobile
+}
+
+package_statusnet-plugins-poweredbystatusnet() {
+ pkgdesc='PoweredByStatusNet plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper PoweredByStatusNet
+}
+
+package_statusnet-plugins-bookmark() {
+ pkgdesc='Bookmark plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper Bookmark
+}
+
+package_statusnet-plugins-firephp() {
+ pkgdesc='FirePHP plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper FirePHP
+}
+
+package_statusnet-plugins-xcache() {
+ pkgdesc='XCache plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper XCache
+}
+
+package_statusnet-plugins-rsscloud() {
+ pkgdesc='RSSCloud plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper RSSCloud
+}
+
+package_statusnet-plugins-casauthentication() {
+ pkgdesc='CasAuthentication plugin for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-plugins')
+
+ statusnet-plugins-helper CasAuthentication
+}
+
+package_statusnet-i18n-nn() {
+ pkgdesc='nn locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper nn
+}
+
+package_statusnet-i18n-af() {
+ pkgdesc='af locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper af
+}
+
+package_statusnet-i18n-cs() {
+ pkgdesc='cs locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper cs
+}
+
+package_statusnet-i18n-mk() {
+ pkgdesc='mk locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper mk
+}
+
+package_statusnet-i18n-ml() {
+ pkgdesc='ml locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ml
+}
+
+package_statusnet-i18n-hsb() {
+ pkgdesc='hsb locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper hsb
+}
+
+package_statusnet-i18n-pl() {
+ pkgdesc='pl locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper pl
+}
+
+package_statusnet-i18n-he() {
+ pkgdesc='he locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper he
+}
+
+package_statusnet-i18n-en_gb() {
+ pkgdesc='en_GB locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper en_GB
+}
+
+package_statusnet-i18n-pt() {
+ pkgdesc='pt locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper pt
+}
+
+package_statusnet-i18n-tr() {
+ pkgdesc='tr locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper tr
+}
+
+package_statusnet-i18n-ja() {
+ pkgdesc='ja locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ja
+}
+
+package_statusnet-i18n-ru() {
+ pkgdesc='ru locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ru
+}
+
+package_statusnet-i18n-uk() {
+ pkgdesc='uk locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper uk
+}
+
+package_statusnet-i18n-fi() {
+ pkgdesc='fi locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper fi
+}
+
+package_statusnet-i18n-ka() {
+ pkgdesc='ka locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ka
+}
+
+package_statusnet-i18n-bg() {
+ pkgdesc='bg locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper bg
+}
+
+package_statusnet-i18n-de() {
+ pkgdesc='de locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper de
+}
+
+package_statusnet-i18n-hu() {
+ pkgdesc='hu locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper hu
+}
+
+package_statusnet-i18n-ar() {
+ pkgdesc='ar locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ar
+}
+
+package_statusnet-i18n-te() {
+ pkgdesc='te locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper te
+}
+
+package_statusnet-i18n-el() {
+ pkgdesc='el locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper el
+}
+
+package_statusnet-i18n-ko() {
+ pkgdesc='ko locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ko
+}
+
+package_statusnet-i18n-is() {
+ pkgdesc='is locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper is
+}
+
+package_statusnet-i18n-da() {
+ pkgdesc='da locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper da
+}
+
+package_statusnet-i18n-it() {
+ pkgdesc='it locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper it
+}
+
+package_statusnet-i18n-arz() {
+ pkgdesc='arz locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper arz
+}
+
+package_statusnet-i18n-gl() {
+ pkgdesc='gl locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper gl
+}
+
+package_statusnet-i18n-fa() {
+ pkgdesc='fa locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper fa
+}
+
+package_statusnet-i18n-ca() {
+ pkgdesc='ca locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ca
+}
+
+package_statusnet-i18n-fr() {
+ pkgdesc='fr locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper fr
+}
+
+package_statusnet-i18n-en() {
+ pkgdesc='en locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper en
+}
+
+package_statusnet-i18n-fur() {
+ pkgdesc='fur locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper fur
+}
+
+package_statusnet-i18n-br() {
+ pkgdesc='br locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper br
+}
+
+package_statusnet-i18n-zh_tw() {
+ pkgdesc='zh_TW locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper zh_TW
+}
+
+package_statusnet-i18n-eo() {
+ pkgdesc='eo locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper eo
+}
+
+package_statusnet-i18n-nl() {
+ pkgdesc='nl locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper nl
+}
+
+package_statusnet-i18n-nb() {
+ pkgdesc='nb locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper nb
+}
+
+package_statusnet-i18n-es() {
+ pkgdesc='es locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper es
+}
+
+package_statusnet-i18n-vi() {
+ pkgdesc='vi locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper vi
+}
+
+package_statusnet-i18n-pt_br() {
+ pkgdesc='pt_BR locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper pt_BR
+}
+
+package_statusnet-i18n-ga() {
+ pkgdesc='ga locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ga
+}
+
+package_statusnet-i18n-ia() {
+ pkgdesc='ia locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper ia
+}
+
+package_statusnet-i18n-sv() {
+ pkgdesc='sv locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper sv
+}
+
+package_statusnet-i18n-zh_cn() {
+ pkgdesc='zh_CN locale for StatusNet'
+ depends=('statusnet')
+ groups=('statusnet-locales')
+
+ statusnet-i18n-helper zh_CN
+}
diff --git a/social/statusnet/statusnet.install b/social/statusnet/statusnet.install
new file mode 100644
index 000000000..426934404
--- /dev/null
+++ b/social/statusnet/statusnet.install
@@ -0,0 +1,13 @@
+post_install(){
+ cat <<EOM
+StatusNet is now installed on your system.
+
+You should link /usr/share/webapps/statusnet to /srv/http/
+
+Start MySQL and your prefered webserver and visit
+http://yoursite.tld/statusnet/install.php
+
+Write permissions of /usr/share/webapps/statusnet has been granted to ensure the
+installation process can write the config file.
+EOM
+}
diff --git a/staging/ardour/PKGBUILD b/staging/ardour/PKGBUILD
new file mode 100644
index 000000000..cee3fc185
--- /dev/null
+++ b/staging/ardour/PKGBUILD
@@ -0,0 +1,50 @@
+# $Id: PKGBUILD 110738 2011-02-21 22:15:44Z schiv $
+# Maintainer: tobias <tobias@archlinux.org>
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+
+# ardour, liblrdf and raptor are heavily dependent on each other. Updating of
+# one package mostly will require an update of all the other packages. I vote
+# for fixed dependencies speaking in terms of versions
+
+pkgname=ardour
+pkgver=2.8.11
+pkgrel=3
+pkgdesc="A multichannel hard disk recorder and digital audio workstation"
+arch=('i686' 'x86_64')
+url="http://ardour.org"
+license=('GPL')
+depends=('liblrdf>=0.4.0-7' 'liblo' 'aubio' 'libusb-compat'
+ 'slv2>=0.6.6-3' 'rubberband' 'libgnomecanvas')
+makedepends=('scons' 'boost' 'pkg-config')
+changelog=${pkgname}.changelog
+source=(ftp://ftp.archlinux.org/other/ardour/${pkgname}-${pkgver}.tar.bz2
+ ${pkgname}.desktop)
+md5sums=('f451a8d0abc133a1700c3932e07a5612'
+ '8aeaf433ebf781733db48e5a16b0c4da')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ sed -i '/-O3/d' SConstruct
+
+ scons ${MAKEFLAGS} ARCH="${CFLAGS}" \
+ PREFIX="/usr" \
+ DIST_LIBDIR="lib" \
+ FREEDESKTOP=0 \
+ FREESOUND=1 \
+ DESTDIR="${pkgdir}"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ scons PREFIX="/usr" \
+ FREEDESKTOP=0 \
+ FREESOUND=1 \
+ DESTDIR="${pkgdir}" install
+
+ # install some freedesktop.org compatibility
+ install -Dm644 "${srcdir}/${pkgname}.desktop" "${pkgdir}/usr/share/applications/${pkgname}.desktop"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/ardour/ardour.changelog b/staging/ardour/ardour.changelog
new file mode 100644
index 000000000..ee9cf00bf
--- /dev/null
+++ b/staging/ardour/ardour.changelog
@@ -0,0 +1,26 @@
+22 Feb 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 2.8.11-2 :
+ raptor rebuild
+
+9 Aug 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 2.8.11-1 :
+ Testing build.
+ Removed libgnomecanvasmm depend (ardour internal).
+ Removed soundtouch makedepend (ardour internal, unneded).
+ Added new depends
+ - slv2 ("LV2" plug-ins support)
+ - rubberband (can "do more" than soundtouch)
+ - libgnomecanvas
+ Not using SYSLIBS because upstream does not support it.
+ Namcap warnings can be ignored; they're ardour internals.
+
+ * PKGBUILD :
+ Minor cosmetic ammendments.
+
+ * ardour.changelog :
+ Added this changelog.
+
+ * ardour.install :
+ Removed install scriptlet; old and deprecated information.
diff --git a/staging/ardour/ardour.desktop b/staging/ardour/ardour.desktop
new file mode 100644
index 000000000..b50f6c952
--- /dev/null
+++ b/staging/ardour/ardour.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Ardour
+Comment=Multitrack hard disk recorder
+Exec=ardour2
+Icon=/usr/share/ardour2/icons/ardour_icon_48px.png
+Terminal=false
+Type=Application
+X-MultipleArgs=false
+Categories=GTK;Audio;AudioVideoEditing;AudioVideo;Video;
diff --git a/staging/gpsd/LICENSE b/staging/gpsd/LICENSE
new file mode 100644
index 000000000..076538678
--- /dev/null
+++ b/staging/gpsd/LICENSE
@@ -0,0 +1,38 @@
+ COPYRIGHTS
+
+Compilation copyright is held by the GPSD project. All rights reserved.
+
+GPSD project copyrights are assigned to the project lead, currently
+Eric S. Raymond. Other portions of the GPSD code are Copyright (c)
+1997, 1998, 1999, 2000, 2001, 2002 by Remco Treffkorn, and others
+Copyright (c) 2005 by Eric S. Raymond. For other copyrights, see
+individual files.
+
+ BSD LICENSE
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:<P>
+
+Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.<P>
+
+Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.<P>
+
+Neither name of the GPSD project nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/staging/gpsd/PKGBUILD b/staging/gpsd/PKGBUILD
new file mode 100644
index 000000000..d26892a8a
--- /dev/null
+++ b/staging/gpsd/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 116032 2011-03-22 16:23:53Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: dibblethewrecker dibblethewrecker.at.jiwe.dot.org
+# Contributor: Giacomo Rizzo <alt@free-os.it>
+
+pkgname=gpsd
+pkgver=2.96
+pkgrel=1
+pkgdesc="GPS daemon and library to support USB/serial GPS devices"
+arch=('i686' 'x86_64')
+url="http://gpsd.berlios.de"
+license=('BSD')
+depends=('lesstif' 'libxaw' 'python2' 'pth' 'libusb' 'desktop-file-utils')
+optdepends=('php: generate a PHP status page for your GPS'
+ 'php-gd: image support for the PHP status page')
+makedepends=('docbook-xsl')
+backup=('etc/conf.d/gpsd' 'lib/udev/rules.d/99-gpsd-usb.rules')
+options=('!libtool')
+install="${pkgname}.install"
+source=("http://download.berlios.de/${pkgname}/${pkgname}-${pkgver}.tar.gz"
+ 'gpsd' 'LICENSE')
+md5sums=('26a7a04d4298bc3a3a5d89fef4582b64'
+ 'f929322fc4670543fcb36dafc7bb9e03'
+ 'd217a23f408e91c94359447735bc1800')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # install python to the same DESTDIR given make
+ sed -i 's|--prefix=${prefix} # --root=$(DESTDIR)|--prefix=${prefix} --root=$(DESTDIR)|' Makefile.am Makefile.in
+
+ # fix python 2.7 path
+ sed -i 's|/usr/bin/python|/usr/bin/python2|' gpsd.hotplug{,.wrapper}
+ sed -i 's|/usr/bin/python2.6|/usr/bin/python2|' valgrind-audit
+ sed -i 's|/usr/bin/env python|/usr/bin/env python2|' gpscat \
+ gpsfake gpsprof xgps xgpsspeed gps/gps.py
+
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --disable-libQgpsmm \
+ --disable-static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # Fix man pages path (FS#21715)
+ sed -i 's|.so gps.1|.so man1/gps.1|' cgps.1 lcdgps.1 xgps.1 xgpsspeed.1
+
+ make DESTDIR="${pkgdir}" install
+
+ # Our own udev-install since the Makefile uses absolute paths
+ # Original file names are [mostly] unmodified: useful to match process name in case of error
+ # Following the switch from hotplug to udev helper scripts now live in /lib/udev/ instead of /etc/hotplug/
+ sed -i 's|GPSD_OPTIONS=""|GPSD_OPTIONS="-P /var/run/gpsd.pid"|' packaging/deb/etc_default_gpsd
+ sed -i 's|"/var/run/gpsd.sock"|"/var/run/gpsd/gpsd.sock"|' packaging/deb/etc_default_gpsd
+ install -D -m644 "packaging/deb/etc_default_gpsd" "${pkgdir}/etc/conf.d/gpsd"
+
+ sed -i 's|Id: gpsd.rules|Id: 99-gpsd-usb.rules|' gpsd.rules
+ install -D -m644 "gpsd.rules" "${pkgdir}/lib/udev/rules.d/99-gpsd-usb.rules"
+
+ sed -i 's|/etc/default/gpsd|/etc/conf.d/gpsd|' gpsd.hotplug.wrapper
+ install -D -m755 gpsd.hotplug.wrapper "${pkgdir}/lib/udev/gpsd.hotplug.wrapper"
+
+ # Patch a path bug. Check to see if fixed in ensuing releases
+ sed -i 's|gpsdcmd = "gpsd %s|gpsdcmd = "/usr/sbin/gpsd %s|' gpsd.hotplug
+ install -D -m755 gpsd.hotplug "${pkgdir}/lib/udev/gpsd.hotplug"
+
+ install -D -m644 packaging/X11/xgps.desktop ${pkgdir}/usr/share/applications/xgps.desktop
+ install -D -m644 packaging/X11/xgpsspeed.desktop ${pkgdir}/usr/share/applications/xgpsspeed.desktop
+ install -D -m644 packaging/X11/gpsd-logo.png ${pkgdir}/usr/share/gpsd/gpsd-logo.png
+
+ install -D -m755 "${srcdir}/gpsd" "${pkgdir}/etc/rc.d/gpsd"
+
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/staging/gpsd/gpsd b/staging/gpsd/gpsd
new file mode 100755
index 000000000..b0f22c735
--- /dev/null
+++ b/staging/gpsd/gpsd
@@ -0,0 +1,43 @@
+#! /bin/sh
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/gpsd ] && . /etc/conf.d/gpsd
+
+NAME=gpsd
+DAEMON=/usr/sbin/$NAME
+PID=$(pidof -o %PPID /usr/sbin/gpsd)
+
+case "$1" in
+ start)
+ stat_busy "Starting gpsd"
+ [ ! -d /var/run/gpsd ] && install -d /var/run/gpsd
+ [ -z "$PID" ] && "$DAEMON" ${GPSD_OPTIONS} -F ${GPSD_SOCKET} ${DEVICES}
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon gpsd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping gpsd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/$PID.pid &>/dev/null
+ rm_daemon gpsd
+ stat_done
+ fi
+ ;;
+
+ restart)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/staging/gpsd/gpsd.install b/staging/gpsd/gpsd.install
new file mode 100644
index 000000000..ee661fcb1
--- /dev/null
+++ b/staging/gpsd/gpsd.install
@@ -0,0 +1,16 @@
+post_install() {
+ echo ">>> Note: the supplied gpsd udev rules are device-specific, so"
+ echo ">>> if your device isn't detected correctly, please use lsusb or"
+ echo ">>> another suitable tool to determine the proper device IDs and"
+ echo ">>> use the commented rules to fill in the blanks for your device."
+
+ update-desktop-database -q
+}
+
+post_upgrade() {
+ update-desktop-database -q
+}
+
+post_remove() {
+ update-desktop-database -q
+}
diff --git a/staging/liblrdf/PKGBUILD b/staging/liblrdf/PKGBUILD
new file mode 100644
index 000000000..f4e0141da
--- /dev/null
+++ b/staging/liblrdf/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110602 2011-02-20 15:55:20Z andyrtr $
+# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
+
+pkgname=liblrdf
+pkgver=0.4.0
+pkgrel=7
+pkgdesc="A library for the manipulation of RDF file in LADSPA plugins"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/lrdf"
+depends=('raptor1' 'ladspa')
+makedepends=('pkgconfig')
+license=('GPL')
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/lrdf/${pkgname}-${pkgver}.tar.gz
+ md5.patch)
+groups=('ladspa-plugins')
+md5sums=('327a5674f671c4b360c6353800226877'
+ 'a6d231d052dc188cbc4c1039cf3a2003')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/md5.patch"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/staging/liblrdf/md5.patch b/staging/liblrdf/md5.patch
new file mode 100644
index 000000000..1c43b12e9
--- /dev/null
+++ b/staging/liblrdf/md5.patch
@@ -0,0 +1,18 @@
+--- liblrdf-0.4.0.orig/src/lrdf_md5.h
++++ liblrdf-0.4.0/src/lrdf_md5.h
+@@ -32,6 +32,15 @@
+ #ifndef __MD5_H__
+ #define __MD5_H__
+
++/* Change function names to prevent symbol conflicts */
++#define md5_init _lrdf_md5_init
++#define md5_buffer _lrdf_md5_buffer
++#define md5_sig_from_string _lrdf_md5_sig_from_string
++#define md5_finish _lrdf_md5_finish
++#define md5_process _lrdf_md5_process
++#define md5_sig_to_string _lrdf_md5_sig_to_string
++#define md5_get_result _lrdf_md5_get_result
++
+ /*
+ * Size of a standard MD5 signature in bytes. This definition is for
+ * external programs only. The MD5 routines themselves reference the
diff --git a/staging/raptor/PKGBUILD b/staging/raptor/PKGBUILD
new file mode 100644
index 000000000..01239bbc0
--- /dev/null
+++ b/staging/raptor/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115794 2011-03-21 16:03:23Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=raptor
+pkgver=2.0.2
+pkgrel=1
+pkgdesc="A C library that parses RDF/XML/N-Triples into RDF triples"
+arch=('i686' 'x86_64')
+url="http://librdf.org/raptor"
+depends=('libxml2>=2.7.8' 'curl>=7.21.2' 'zlib>=1.2.5' 'libxslt>=1.1.26')
+license=('LGPL')
+options=('!libtool')
+source=(http://librdf.org/dist/source/raptor2-$pkgver.tar.gz)
+md5sums=('b0f874c200c4b3214b5bf4806ae82353')
+
+build() {
+ cd ${srcdir}/raptor2-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/raptor2-${pkgver}
+ make prefix=${pkgdir}/usr install
+}
diff --git a/staging/raptor1/PKGBUILD b/staging/raptor1/PKGBUILD
new file mode 100644
index 000000000..c50886bde
--- /dev/null
+++ b/staging/raptor1/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 110599 2011-02-20 15:52:07Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Damir Perisa <damir.perisa@bluewin.ch>
+
+pkgname=raptor1
+pkgver=1.4.21
+pkgrel=3
+pkgdesc="A C library that parses RDF/XML/N-Triples into RDF triples - old V1 api for compatibility"
+arch=('i686' 'x86_64')
+url="http://librdf.org/raptor"
+depends=('libxml2' 'curl' 'zlib' 'libxslt')
+license=('LGPL')
+options=('!libtool' '!docs')
+source=(http://librdf.org/dist/source/raptor-$pkgver.tar.gz)
+md5sums=('992061488af7a9e2d933df6b694bb876')
+
+build() {
+ cd ${srcdir}/raptor-${pkgver}
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd ${srcdir}/raptor-${pkgver}
+ make prefix=${pkgdir}/usr install
+
+ mv ${pkgdir}/usr/bin/rapper ${pkgdir}/usr/bin/rapperV1
+ rm -f ${pkgdir}/usr/share/man/man1/rapper.1
+}
diff --git a/staging/rasqal/PKGBUILD b/staging/rasqal/PKGBUILD
new file mode 100644
index 000000000..6844bb6b5
--- /dev/null
+++ b/staging/rasqal/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 110912 2011-02-23 06:19:55Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Lawrence Lee <valheru@facticius.net>
+
+pkgname=rasqal
+pkgver=0.9.25
+pkgrel=1
+pkgdesc="a free C library that handles Resource Description Framework (RDF) query syntaxes, query construction and query execution returning result bindings"
+url="http://librdf.org/rasqal"
+license=('GPL' 'LGPL')
+arch=('i686' 'x86_64')
+depends=('raptor>=2.0.0' 'mpfr')
+options=('!libtool')
+source=(http://download.librdf.org/source/${pkgname}-${pkgver}.tar.gz)
+md5sums=('ee12d7ad59c581eb65db89c851672c0a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --disable-static \
+ --enable-release \
+ --with-raptor=system
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/staging/redland/PKGBUILD b/staging/redland/PKGBUILD
new file mode 100644
index 000000000..f2a25aaa0
--- /dev/null
+++ b/staging/redland/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 110595 2011-02-20 10:39:16Z andyrtr $
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
+# Contributor: Francois Charette <francois.archlinux.org>
+
+pkgbase=redland
+pkgname=('redland' 'redland-storage-mysql' 'redland-storage-postgresql' 'redland-storage-virtuoso' 'redland-storage-sqlite')
+pkgver=1.0.13
+pkgrel=1
+url="http://librdf.org/"
+license=("GPL")
+arch=('i686' 'x86_64')
+makedepends=('rasqal>=0.9.24' 'raptor>=2.0.0' 'db>=5.1' 'postgresql-libs' 'libmysqlclient' 'unixodbc' 'sqlite3')
+options=('!libtool')
+source=(http://download.librdf.org/source/$pkgname-$pkgver.tar.gz
+ rpath.diff)
+md5sums=('96c15f36f842ad7e1c9d225e4ca97b68'
+ 'acc85e784f01a656bd56777f95880787')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --enable-release \
+ --disable-static \
+ --with-raptor=system \
+ --with-rasqal=system \
+ --with-sqlite=3
+
+ # nuke rpath
+ patch -Np0 -i ${srcdir}/rpath.diff
+
+ make
+}
+
+package_redland() {
+ pkgdesc="Library that provides a high-level interface to RDF data"
+ depends=('rasqal>=0.9.24' 'raptor>=2.0.0' 'libtool')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ rm -rf ${pkgdir}/usr/lib/redland
+}
+
+package_redland-storage-mysql() {
+ pkgdesc="MySQL storage support for Redland"
+ depends=('redland' 'libmysqlclient')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_mysql.so ${pkgdir}/usr/lib/redland/librdf_storage_mysql.so
+}
+
+package_redland-storage-postgresql() {
+ pkgdesc="PostgreSQL storage support for Redland"
+ depends=('redland' 'postgresql-libs')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_postgresql.so ${pkgdir}/usr/lib/redland/
+}
+
+package_redland-storage-virtuoso() {
+ pkgdesc="Virtuoso storage support for Redland"
+ depends=('redland' 'unixodbc' 'db')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_virtuoso.so ${pkgdir}/usr/lib/redland/
+}
+
+package_redland-storage-sqlite() {
+ pkgdesc="SQLite storage support for Redland"
+ depends=('redland' 'sqlite3' 'db')
+
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -dm755 ${pkgdir}/usr/lib/redland
+ install -m755 src/.libs/librdf_storage_sqlite.so ${pkgdir}/usr/lib/redland/
+}
diff --git a/staging/redland/rpath.diff b/staging/redland/rpath.diff
new file mode 100644
index 000000000..831bc80ed
--- /dev/null
+++ b/staging/redland/rpath.diff
@@ -0,0 +1,11 @@
+--- libtool 2011-02-20 10:46:47.000000000 +0100
++++ libtool.new 2011-02-20 10:52:58.285764909 +0100
+@@ -324,7 +324,7 @@
+
+ # Flag to hardcode $libdir into a binary during linking.
+ # This must work even if $libdir does not exist
+-hardcode_libdir_flag_spec="\${wl}-rpath \${wl}\$libdir"
++hardcode_libdir_flag_spec=" "
+
+ # If ld is used when linking, flag to hardcode $libdir into a binary
+ # during linking. This must work even if $libdir does not exist.
diff --git a/staging/slv2/PKGBUILD b/staging/slv2/PKGBUILD
new file mode 100644
index 000000000..300d19d08
--- /dev/null
+++ b/staging/slv2/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 110735 2011-02-21 22:14:42Z schiv $
+# Maintainer: Ray Rashif <schiv@archlinux.org>
+# Contributor: Leslie P. Polzer <polzer@stardawn.org>
+
+pkgname=slv2
+pkgver=0.6.6
+pkgrel=3
+pkgdesc="Library for LV2 hosts"
+arch=('i686' 'x86_64')
+url="http://drobilla.net/software/slv2"
+license=('GPL')
+depends=('redland>=1.0.13' 'lv2core' 'jack')
+makedepends=('python2')
+install=$pkgname.install
+changelog=$pkgname.changelog
+source=(http://download.drobilla.net/$pkgname-$pkgver.tar.bz2)
+md5sums=('b8e8e0e82dd04324fcd533e8acd1ce85')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf configure --prefix=/usr
+ python2 waf build $MAKEFLAGS
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ python2 waf install --destdir="$pkgdir/"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/slv2/slv2.changelog b/staging/slv2/slv2.changelog
new file mode 100644
index 000000000..f394a5067
--- /dev/null
+++ b/staging/slv2/slv2.changelog
@@ -0,0 +1,23 @@
+22 Feb 2011 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.6.6-3:
+ raptor rebuild
+
+24 Nov 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * PKGBUILD :
+ Get rid of sed and use python2 directly for waf.
+ waf fix for python transition already included previously (unlogged).
+ Release only (no need binary update; no runtime python requirement).
+
+9 Aug 2010 (GMT+8) Ray Rashif <schiv@archlinux.org>
+
+ * 0.6.6-2 :
+ Brought into extra from community for ardour
+ - adds "LV2" plug-ins support
+
+ * PKGBUILD :
+ Minor cosmetic ammendments.
+
+ * slv2.changelog :
+ Added this changelog.
diff --git a/staging/slv2/slv2.install b/staging/slv2/slv2.install
new file mode 100644
index 000000000..c980ddfab
--- /dev/null
+++ b/staging/slv2/slv2.install
@@ -0,0 +1,14 @@
+post_install() {
+ echo "Updating Shared Library Links"
+ /sbin/ldconfig
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ post_install
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/staging/soprano/PKGBUILD b/staging/soprano/PKGBUILD
new file mode 100644
index 000000000..017dd15a5
--- /dev/null
+++ b/staging/soprano/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 111023 2011-02-23 17:17:20Z andrea $
+# Maintainer: Andrea Scarpino <andrea@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=soprano
+pkgver=2.6.0
+pkgrel=2
+pkgdesc='A library which provides a highly usable object-oriented C++/Qt4 framework for RDF data'
+arch=('i686' 'x86_64')
+url='http://soprano.sourceforge.net/'
+license=('GPL' 'LGPL')
+depends=('qt' 'clucene' 'virtuoso' 'libiodbc' 'raptor1')
+makedepends=('cmake' 'openjdk6' 'doxygen')
+source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
+md5sums=('03ae49e87c6ec99e57d0433c2650846f')
+
+build() {
+ cd ${srcdir}
+ mkdir build
+ cd build
+ . /etc/profile.d/openjdk6.sh
+ # we need the rpath
+ cmake ../${pkgname}-${pkgver} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_SKIP_RPATH=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DSOPRANO_DISABLE_REDLAND_BACKEND=ON
+ make
+}
+
+package() {
+ cd ${srcdir}/build
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/archboot/PKGBUILD b/testing/archboot/PKGBUILD
new file mode 100644
index 000000000..2c8035c77
--- /dev/null
+++ b/testing/archboot/PKGBUILD
@@ -0,0 +1,48 @@
+# $Id: PKGBUILD 110605 2011-02-20 16:37:56Z tpowa $
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
+
+pkgname=archboot
+pkgver=2011.02
+pkgrel=2
+pkgdesc="Advanced, modular arch boot/install image creation utility"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.archlinux.org/"
+depends=('mkinitcpio>=0.6.8-1' 'mksyslinux>=2010.08-1' 'mkpxelinux>=2010.08-1' 'mkisolinux>=2010.08-1' 'initscripts>=2011.02.1-1' 'subversion>=1.6.15-1' 'wget>=1.12-4' 'bash>=4.2-1' 'coreutils>=8.10-1' 'cryptsetup>=1.2.0-1' 'dialog>=1.1_20110118-1' 'e2fsprogs>=1.41.14-1' 'findutils>=4.4.2-3' 'gawk>=3.1.8-2' 'grep>=2.7-1' 'iputils>=20101006-1' 'jfsutils>=1.1.14-2' 'less>=436-2' 'lvm2>=2.02.84-1' 'mdadm>=3.1.4-1' 'module-init-tools>=3.12-2' 'nano>=2.2.6-1' 'ncurses>=5.7-4' 'net-tools>=1.60-14' 'gnu-netcat>=0.7.1-3' 'ntfsprogs>=2.0.0-4' 'pcmciautils>=017-1' 'procps>=3.2.8-3' 'psmisc>=22.13-1' 'reiserfsprogs>=3.6.21-3' 'sed>=4.2.1-3' 'snarf>=7.0-4' 'syslog-ng>=3.2.2-1' 'sysvinit>=2.88-2' 'tar>=1.25-1' 'util-linux-ng>=2.18-4' 'which>=2.20-4' 'kbd>=1.15.2-1' 'wireless_tools>=29-4' 'xfsprogs>=3.1.4-1' 'dnsutils>=9.7.2.P3-1' 'hdparm>=9.36-1' 'memtest86+>=4.20-1' 'inetutils>=1.8-2' 'openssh>=5.8p1-1' 'hwdetect>=2010.08-1' 'shadow>=4.1.4.2-4' 'bridge-utils>=1.4-3' 'ifenslave>=1.1.0-6' 'cpufrequtils>=008-1' 'links>=2.3pre1-1' 'tcp_wrappers>=7.6-12' 'dosfstools>=3.0.10-1' 'glibc>=2.13-4' 'linux-api-headers>=2.6.37-1' 'kernel26>=2.6.37.1-1' 'kernel26-lts>=2.6.32.29-2' 'xinetd>=2.3.14-6' 'kexec-tools>=2.0.2-3' 'ppp>=2.4.5-2' 'rp-pppoe>=3.10-5' 'lilo>=23.1-2' 'iptables>=1.4.10-1' 'capi4k-utils>=050718-7' 'isdn4k-utils>=3.2p1-6' 'ntfs-3g>=2011.1.15-1' 'pciutils>=3.1.7-3' 'usbutils>=001-2' 'vpnc>=0.5.3-3' 'openvpn>=2.1.4-1' 'b43-fwcutter>=013-2' 'wpa_supplicant>=0.7.3-1' 'rsync>=3.0.7-2' 'gzip>=1.4-2' 'libarchive>=2.8.4-2' 'device-mapper>=2.02.84-1' 'screen>=4.0.3-10' 'elfutils>=0.151-1' 'pam>=1.1.3-1' 'cracklib>=2.8.18-1' 'nfs-utils>=1.2.2-6' 'nfsidmap>=0.24-1' 'readline>=6.2-1' 'acl>=2.2.49-2' 'attr>=2.4.44-2' 'pcre>=8.12-1' 'cpio>=2.11-2' 'fuse>=2.8.5-1' 'libusb>=1.0.8-1' 'vim>=7.3.125-1' 'lzo2>=2.04-1' 'libsasl>=2.1.23-5' 'libldap>=2.4.24-1' 'gpm>=1.20.6-6' 'libevent>=2.0.10-1' 'gcc-libs>=4.5.2-6' 'sdparm>=1.06-1' 'licenses>=2.6-1' 'pptpclient>=1.7.2-3' 'ndiswrapper>=1.56-7' 'ndiswrapper-utils>=1.56-2' 'zd1211-firmware>=1.4-4' 'ipw2100-fw>=1.3-5' 'ipw2200-fw>=3.1-3' 'smbclient>=3.5.6-1' 'bittorrent>=5.2.2-4' 'dhcpcd>=5.2.10-1' 'openssl>=1.0.0.d-1' 'git>=1.7.4.1-1' 'dmraid>=1.0.0.rc16+CVS-2' 'linux-atm>=2.5.1-2' 'netcfg>=2.5.4-1' 'tiacx>=20080210-19' 'tiacx-firmware>=2-3' 'parted>=2.3-1' 'tzdata>=2011b-1' 'ntp>=4.2.6.p3-1' 'libgcrypt>=1.4.6-1' 'iw>=0.9.20-1' 'crda>=1.1.1-1' 'libnl>=1.1-2' 'iproute2>=2.6.37-1' 'wireless-regdb>=2010.11.24-1' 'v86d>=0.1.9-11' 'dhclient>=4.2.0.2-1' 'syslinux>=4.03-2' 'mtools>=4.0.15-1' 'fsarchiver>=0.6.12-1' 'xz>=5.0.1-1' 'libtirpc>=0.2.1-2' 'librpcsecgss>=0.19-4' 'rpcbind>=0.2.0-3' 'testdisk>=6.11.3-3' 'wipe>=2.3.1-1' 'clamav>=0.97-1' 'ddrescue>=1.14-1' 'udev>=166-2' 'ifplugd>=0.28-7' 'wpa_actiond>=1.1-1' 'nouveau-firmware>=20091212-4' 'rfkill>=0.4-2' 'libgssglue>=0.1-3' 'mkinitcpio-nfs-utils>=0.2-1' 'gdisk>=0.6.14-1' 'nilfs-utils>=2.0.21-1' 'btrfs-progs-unstable>=0.19.20101006-1' 'ndiswrapper-lts>=1.56-3' 'nouveau-drm-lts>=0.0.16_20100313-4' 'linux-firmware>=20110201-1' 'iana-etc>=2.30-1' 'libusb-compat>=0.1.3-1')
+optdepends=('grub2-bios: for grub2 support'
+ 'grub2-efi-i386:for grub2 support'
+ 'grub2-efi-x86_64: for grub2 support'
+ 'efibootmgr: for grub2 support'
+)
+source=(ftp://ftp.archlinux.org/other/$pkgname/$pkgname-$pkgver-$pkgrel.tar.bz2 vmware-detect.c)
+backup=('etc/archboot/allinone.conf'
+ 'etc/archboot/allinone-lts.conf'
+ 'etc/archboot/default.conf'
+ 'etc/archboot/default-ftp.conf'
+ 'etc/archboot/default-pxelinux.conf'
+ 'etc/archboot/default-ftp-pxelinux.conf'
+ 'etc/archboot/presets/allinone'
+ 'etc/archboot/presets/allinone-lts'
+ 'etc/archboot/presets/isolinux'
+ 'etc/archboot/presets/isolinux-ftp'
+ 'etc/archboot/presets/syslinux'
+ 'etc/archboot/presets/syslinux-ftp'
+ 'etc/archboot/presets/pxelinux'
+ 'etc/archboot/presets/pxelinux-ftp'
+)
+install=archboot.install
+
+### to bump the depends list use this:
+#for i in $(grep ^depends= PKGBUILD | sed -e 's/depends=(//g' -e 's/)//g'); do sed -i -e "s/$(echo $i)/$(echo $i | sed -e "s/>=.*/>=$(pacman -Qi $(echo $i | sed -e "s/'//g" -e 's/>=.*//g') | grep ^Version | sed -e 's/.*: //g')'/g")/g" PKGBUILD; done
+
+build()
+{
+ cd $srcdir/$pkgname-$pkgver-$pkgrel
+ mv * $pkgdir/
+ # vmware-detect
+ cd $startdir/src
+ gcc -o vmware-detect vmware-detect.c
+ install -D -m 755 vmware-detect $startdir/pkg/usr/bin/vmware-detect
+}
+md5sums=('608c6e8f30c159f345c08eee6842f17c'
+ '7e2b03463747cb22ab388e79a09fa0cb')
diff --git a/testing/archboot/archboot.install b/testing/archboot/archboot.install
new file mode 100644
index 000000000..315f97d7e
--- /dev/null
+++ b/testing/archboot/archboot.install
@@ -0,0 +1,20 @@
+# This is a default template for a post-install scriptlet. You can
+# remove any functions you don't need (and this header).
+
+# arg 1: the new package version
+post_install() {
+ cat << EOF
+ARCHBOOT usage:
+---------------
+--> Main config files were installed to '/etc/archboot/'.
+ Preset files were installed to '/etc/archboot/presets'.
+ Modify them to your needs.
+--> Use the preset files as config file of your build tool:
+ mkisolinux, mksyslinux or mkpxelinux
+--> For Allinone ISOs use archboot-allinone.sh
+EOF
+}
+
+post_upgrade() {
+ post_install $1
+}
diff --git a/testing/archboot/vmware-detect.c b/testing/archboot/vmware-detect.c
new file mode 100644
index 000000000..d242a388d
--- /dev/null
+++ b/testing/archboot/vmware-detect.c
@@ -0,0 +1,13 @@
+#include <stdio.h>
+int main() {
+ unsigned char idtr[6];
+ asm("sidt %0" : "=m" (idtr));
+ if(0xff==idtr[5])
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+}
diff --git a/testing/aufs2-util/PKGBUILD b/testing/aufs2-util/PKGBUILD
new file mode 100644
index 000000000..3d2e23fed
--- /dev/null
+++ b/testing/aufs2-util/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 114820 2011-03-16 06:31:06Z tpowa $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Paul Mattal <pjmattal@elys.com>
+pkgname=aufs2-util
+pkgver=20110314
+pkgrel=1
+pkgdesc="Another Unionfs Implementation that supports NFS branches"
+arch=('i686' 'x86_64')
+url="http://aufs.sourceforge.net/"
+license=('GPL2')
+depends=('glibc')
+makedepends=('aufs2>=2.6.38_20110314' 'kernel26-headers')
+replaces=('aufs-utils')
+source=("ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+}
+md5sums=('bf0f9c86361e12a3181fb3891e57cd8d')
diff --git a/testing/aufs2-util/create-tarball.sh b/testing/aufs2-util/create-tarball.sh
new file mode 100755
index 000000000..361cbbc38
--- /dev/null
+++ b/testing/aufs2-util/create-tarball.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+GITSNAPSHOT=20110314
+# aufs2 (no -xx) for the latest -rc version.
+git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-util.git aufs2-util.git
+cd aufs2-util.git
+#git checkout origin/aufs2${AUFS2VERSION}
+git checkout origin/aufs2.1
+cd ..
+rm -rf aufs2-util-${GITSNAPSHOT}
+cp -a aufs2-util.git aufs2-util-${GITSNAPSHOT}
+tar -czf aufs2-util-${GITSNAPSHOT}.tar.gz --exclude=.git aufs2-util-${GITSNAPSHOT}
diff --git a/testing/binutils/PKGBUILD b/testing/binutils/PKGBUILD
new file mode 100644
index 000000000..fa5a47b64
--- /dev/null
+++ b/testing/binutils/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 116976 2011-03-27 06:07:38Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=binutils
+pkgver=2.21
+pkgrel=6
+_date=20110326
+pkgdesc="A set of programs to assemble and manipulate binary and object files"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/binutils/"
+license=('GPL')
+groups=('base')
+depends=('glibc>=2.13' 'zlib')
+makedepends=('dejagnu')
+options=('!libtool' '!distcc' '!ccache')
+install=binutils.install
+source=(ftp://ftp.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}_${_date}.tar.bz2)
+md5sums=('884dcbc87d4722b152aea72312356da1')
+
+mksource() {
+ mkdir ${pkgname}-${_date}
+ cd ${pkgname}-${_date}
+ export _TAG=binutils-2_21-branch
+ export 'CVSROOT=:pserver:anoncvs@sourceware.org:/cvs/src'
+ cvs -z9 co -r $_TAG binutils || return 1
+ mv src binutils
+ tar -cvjf ../binutils-${pkgver}_${_date}.tar.bz2 binutils/*
+}
+
+build() {
+ cd ${srcdir}
+ mkdir binutils-build && cd binutils-build
+
+ [[ $CARCH == "x86_64" ]] && CONFIGFLAG="--enable-64-bit-bfd --disable-multilib"
+
+ ${srcdir}/binutils/configure --prefix=/usr \
+ --enable-ld=default --enable-gold \
+ --enable-plugins --enable-threads \
+ --enable-shared $CONFIGFLAG
+
+ # This checks the host environment and makes sure all the necessary tools are available to compile Binutils.
+ make configure-host
+
+ make tooldir=${pkgdir}/usr
+}
+
+check() {
+ cd ${srcdir}/binutils-build
+
+ # do not abort on errors - manually check log files
+ make -k -j1 check || true
+}
+
+package() {
+ cd ${srcdir}/binutils-build
+ make prefix=${pkgdir}/usr tooldir=${pkgdir}/usr install
+
+ # Add some useful headers
+ install -m644 ${srcdir}/binutils/include/libiberty.h ${pkgdir}/usr/include
+ install -m644 ${srcdir}/binutils/include/demangle.h ${pkgdir}/usr/include
+
+ # Rebuild libiberty.a with -fPIC
+ make -C libiberty clean
+ make CFLAGS="$CFLAGS -fPIC" -C libiberty
+ install -m644 libiberty/libiberty.a ${pkgdir}/usr/lib
+
+ # Rebuild libbfd.a with -fPIC
+ make -C bfd clean
+ # hidden visability prevent 3rd party shared libraries exporting bfd non-stable API
+ make CFLAGS="$CFLAGS -fPIC -fvisibility=hidden" -C bfd
+ install -m644 bfd/libbfd.a ${pkgdir}/usr/lib
+
+ # Remove Windows/Novell specific man pages
+ rm -f ${pkgdir}/usr/share/man/man1/{dlltool,nlmconv,windres,windmc}*
+
+ # Remove these symlinks, they are not ABI stable.
+ # Programs should compile static to the .a file.
+ rm -f ${pkgdir}/usr/lib/lib{bfd,opcodes}.so
+ echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" >${pkgdir}/usr/lib/libbfd.so
+ echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" >${pkgdir}/usr/lib/libopcodes.so
+}
diff --git a/testing/binutils/binutils.install b/testing/binutils/binutils.install
new file mode 100644
index 000000000..8bf9f3a47
--- /dev/null
+++ b/testing/binutils/binutils.install
@@ -0,0 +1,17 @@
+infodir=usr/share/info
+filelist=(as.info bfd.info binutils.info configure.info gprof.info ld.info standards.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+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/testing/cloog/PKGBUILD b/testing/cloog/PKGBUILD
new file mode 100644
index 000000000..82049f36d
--- /dev/null
+++ b/testing/cloog/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 106802 2011-01-19 09:43:37Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=cloog
+pkgver=0.16.1
+pkgrel=1
+pkgdesc="Library that generates loops for scanning polyhedra"
+arch=('i686' 'x86_64')
+url="http://www.bastoul.net/cloog/"
+license=('GPL')
+depends=('isl' 'gmp')
+conflicts=('cloog-ppl<0.15.10-2')
+options=('!libtool')
+source=(http://www.bastoul.net/cloog/pages/download/$pkgname-$pkgver.tar.gz)
+md5sums=('947123350d1ff6dcb4b0774947ac015a')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr --with-isl=system --with-gmp=system
+ make
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/testing/crda/PKGBUILD b/testing/crda/PKGBUILD
new file mode 100644
index 000000000..18a85717c
--- /dev/null
+++ b/testing/crda/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 117670 2011-04-04 15:42:36Z stephane $
+# Maintainer: Thomas Bächler <thomas@archlinux.org>
+
+pkgname=crda
+pkgver=1.1.1
+pkgrel=3
+pkgdesc="Central Regulatory Domain Agent for wireless networks"
+arch=(i686 x86_64)
+url="http://wireless.kernel.org/en/developers/Regulatory/CRDA"
+license=('custom')
+depends=('wireless-regdb' 'libnl' 'libgcrypt' 'udev' 'iw')
+makedepends=('python-m2crypto')
+install=crda.install
+source=(http://wireless.kernel.org/download/crda/${pkgname}-${pkgver}.tar.bz2
+ crda.rc)
+md5sums=('5fc77af68b3e21736b8ef2f8b061c810'
+ '014eef3f8655e9a130064ec6891317fc')
+
+build() {
+ msg "Compiling crda ..."
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ sed 's|^#!/usr/bin/env python|#!/usr/bin/python2|' -i utils/key2pub.py
+ make crda regdbdump
+}
+
+package() {
+ # Install crda, regdbdump and udev rules
+ msg "Installing crda ..."
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
+ # This rule automatically sets the regulatory domain when cfg80211 is loaded
+ echo 'ACTION=="add" SUBSYSTEM=="module", DEVPATH=="/module/cfg80211", RUN+="/etc/rc.d/wireless-regdom start >/dev/null"' >> "${pkgdir}"/lib/udev/rules.d/85-regulatory.rules
+
+ msg "Installing license ..."
+ install -D -m644 "${srcdir}"/${pkgname}-${pkgver}/LICENSE "${pkgdir}"/usr/share/licenses/crda/LICENSE
+
+ msg "Installing boot script ..."
+ install -D -m755 "${srcdir}"/crda.rc "${pkgdir}"/etc/rc.d/wireless-regdom
+}
diff --git a/testing/crda/crda.install b/testing/crda/crda.install
new file mode 100644
index 000000000..c18e15f71
--- /dev/null
+++ b/testing/crda/crda.install
@@ -0,0 +1,18 @@
+## arg 1: the new package version
+post_install() {
+ echo "Uncomment the right regulatory domain in /etc/conf.d/wireless-regdom."
+ echo "It will automatically be set when necessary."
+}
+
+## arg 1: the new package version
+## arg 2: the old package version
+post_upgrade() {
+ # In an upgrade from 1.0.1-1 or older, the wireless-regdom file moves from the crda package
+ # to the new wireless-regdb package. If the user changed the file, it is save to overwrite the one
+ # from wireless-regdb by the user-defined one
+ if [ $(vercmp $2 1.0.1-2) -lt 0 ]; then
+ if [ -f /etc/conf.d/wireless-regdom.pacorig -a -n "$(grep -v ^# /etc/conf.d/wireless-regdom.pacorig 2>/dev/null | grep -v ^$)" ]; then
+ mv /etc/conf.d/wireless-regdom.pacorig /etc/conf.d/wireless-regdom
+ fi
+ fi
+}
diff --git a/testing/crda/crda.rc b/testing/crda/crda.rc
new file mode 100755
index 000000000..13dbd870e
--- /dev/null
+++ b/testing/crda/crda.rc
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/wireless-regdom
+
+case "$1" in
+ start)
+ if [ -n "${WIRELESS_REGDOM}" ]; then
+ stat_busy "Setting wireless regulatory domain: ${WIRELESS_REGDOM}"
+ if iw reg set ${WIRELESS_REGDOM}; then
+ stat_done
+ else
+ stat_fail
+ fi
+ fi
+ ;;
+ stop)
+ ;;
+ restart)
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 start"
+esac
+exit 0
diff --git a/testing/dmraid/PKGBUILD b/testing/dmraid/PKGBUILD
new file mode 100644
index 000000000..118b43474
--- /dev/null
+++ b/testing/dmraid/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 116764 2011-03-25 20:30:44Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+#Contributor: Urs Wolfer <uwolfer @ fwo.ch>
+
+pkgname=dmraid
+pkgver=1.0.0.rc16.3
+pkgrel=1
+pkgdesc="Device mapper RAID interface"
+url="http://people.redhat.com/~heinzm/sw/dmraid/"
+depends=('device-mapper>=2.0.54')
+arch=('i686' 'x86_64')
+license=('GPL')
+source=(#ftp://ftp.archlinux.org/other/dmraid/$pkgname-$pkgver.tar.bz2
+ http://people.redhat.com/~heinzm/sw/dmraid/src/$pkgname-1.0.0.rc16-3.tar.bz2
+ dmraid_install
+ dmraid_hook)
+install=dmraid.install
+md5sums=('819338fcef98e8e25819f0516722beeb'
+ 'd01908b414e1686c0f3233ff37de78a5'
+ '0a748b6e78b156f2f9dda45fc629651f')
+
+build() {
+ cd "$srcdir"/$pkgname/1.0.0.rc16-3/$pkgname
+ ./configure --enable-led --enable-intel_led
+ make
+}
+
+package() {
+ cd "$srcdir"/$pkgname/1.0.0.rc16-3/$pkgname
+ make DESTDIR="$pkgdir" prefix=/ libdir=/lib mandir=/usr/share/man includedir=/usr/include install
+ mkdir -p "$pkgdir"/var/lock/dmraid
+ chmod 1777 "$pkgdir"/var/lock/
+ install -D -m644 "$srcdir"/dmraid_install "$pkgdir"/lib/initcpio/install/dmraid
+ install -D -m644 "$srcdir"/dmraid_hook "$pkgdir"/lib/initcpio/hooks/dmraid
+ # fix permissions
+ chmod 644 "$pkgdir"/lib/libdmraid.a
+ chmod 644 "$pkgdir"/usr/include/dmraid/*
+}
diff --git a/testing/dmraid/dmraid.install b/testing/dmraid/dmraid.install
new file mode 100644
index 000000000..64899e785
--- /dev/null
+++ b/testing/dmraid/dmraid.install
@@ -0,0 +1,14 @@
+post_upgrade() {
+ if [ "$(vercmp $2 1.0.0.rc15)" -lt 0 ]; then
+ # important upgrade notice
+ echo ">>>"
+ echo ">>> IMPORTANT DMRAID UPGRADE NOTICE"
+ echo ">>> -------------------------------"
+ echo ">>> Version 1.0.0.rc15 and greater introduce a new name scheme:"
+ echo ">>> You need to add an additional 'p' in front of your number."
+ echo ">>> e.g. <yourname><number> --> <yourname>p<number>"
+ echo ">>> firsthd1 --> firsthdp1"
+ echo ">>> Please change your bootloader and fstab accordingly."
+ echo ">>>"
+ fi
+}
diff --git a/testing/dmraid/dmraid_hook b/testing/dmraid/dmraid_hook
new file mode 100644
index 000000000..d4e758c34
--- /dev/null
+++ b/testing/dmraid/dmraid_hook
@@ -0,0 +1,18 @@
+# vim: set ft=sh:
+run_hook ()
+{
+ /sbin/modprobe -q dm-mod >/dev/null 2>&1
+ /sbin/modprobe -q dm-mirror >/dev/null 2>&1
+ if [ -e "/sys/class/misc/device-mapper" ]; then
+ if [ ! -e "/dev/mapper/control" ]; then
+ /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
+ fi
+ msg ":: Activating dmraid arrays..."
+ # prevent any event monitoring calls with -I
+ if [ "${quiet}" = "y" ]; then
+ /sbin/dmraid -ay -I -Z >/dev/null
+ else
+ /sbin/dmraid -ay -I -Z
+ fi
+ fi
+}
diff --git a/testing/dmraid/dmraid_install b/testing/dmraid/dmraid_install
new file mode 100644
index 000000000..a20960aed
--- /dev/null
+++ b/testing/dmraid/dmraid_install
@@ -0,0 +1,20 @@
+# vim: set ft=sh:
+
+install ()
+{
+ MODULES=" dm-mod dm-mirror "
+ BINARIES="/sbin/dmraid /sbin/dmsetup"
+ FILES=""
+ SCRIPT="dmraid"
+ add_dir "/dev/mapper"
+ add_file "/lib/udev/rules.d/10-dm.rules"
+ add_file "/lib/udev/rules.d/13-dm-disk.rules"
+ add_file "/lib/udev/rules.d/95-dm-notify.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook loads the necessary modules for a dmraid root device.
+HELPEOF
+}
diff --git a/testing/gcc/PKGBUILD b/testing/gcc/PKGBUILD
new file mode 100644
index 000000000..d3a6dcdc9
--- /dev/null
+++ b/testing/gcc/PKGBUILD
@@ -0,0 +1,255 @@
+# $Id: PKGBUILD 116981 2011-03-27 06:16:42Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: libtool requires rebuilt with each new gcc version
+
+pkgname=('gcc' 'gcc-libs' 'gcc-fortran' 'gcc-objc' 'gcc-ada' 'gcc-go')
+pkgver=4.6.0
+pkgrel=1
+#_snapshot=4.6.0-RC-20110321
+_libstdcppmanver=20110201 # Note: check source directory name when updating this
+pkgdesc="The GNU Compiler Collection"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL' 'custom')
+url="http://gcc.gnu.org"
+makedepends=('binutils>=2.21' 'libmpc' 'cloog' 'ppl' 'gcc-ada' 'dejagnu')
+options=('!libtool' '!emptydirs')
+source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-${pkgver}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${pkgver}.tar.bz2
+ #ftp://gcc.gnu.org/pub/gcc/snapshots/${_snapshot}/gcc-{core,g++,fortran,objc,ada,go,testsuite}-${_snapshot}.tar.bz2
+ ftp://gcc.gnu.org/pub/gcc/libstdc++/doxygen/libstdc++-api.${_libstdcppmanver}.man.tar.bz2
+ gcc_pure64.patch
+ gcc-hash-style-both.patch)
+md5sums=('b1957f3209080b2f55bc3756d3a62b7c'
+ 'a30090fa655d0db4c970740d353c81f1'
+ 'a4687a9035c3e92db7e84fc01fc548ef'
+ '120d4675366ee82ea52f9ed65b57da04'
+ 'ea003fee5123f5bfbe17cc569cffe867'
+ 'c182dfcad477564af9d94e2aa1552bcd'
+ '8c76d751c5b99560e8acc3111f62263a'
+ '1e9fd2eaf0ee47ea64e82c48998f1999'
+ '4030ee1c08dd1e843c0225b772360e76'
+ '4df25b623799b148a0703eaeec8fdf3f')
+
+if [ -n "${_snapshot}" ]; then
+ _basedir="${srcdir}/gcc-${_snapshot}"
+else
+ _basedir="${srcdir}/gcc-${pkgver}"
+fi
+
+build() {
+ cd ${_basedir}
+
+ # Do not install libiberty
+ sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
+
+ # Do not run fixincludes
+ sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
+
+ if [ "${CARCH}" = "x86_64" ]; then
+ patch -Np1 -i ${srcdir}/gcc_pure64.patch
+ fi
+ patch -Np0 -i ${srcdir}/gcc-hash-style-both.patch
+
+ echo ${pkgver} > gcc/BASE-VER
+
+ cd ${srcdir}
+ mkdir gcc-build && cd gcc-build
+
+ ${_basedir}/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --mandir=/usr/share/man --infodir=/usr/share/info \
+ --with-bugurl=https://bugs.archlinux.org/ \
+ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
+ --enable-shared --enable-threads=posix \
+ --with-system-zlib --enable-__cxa_atexit \
+ --disable-libunwind-exceptions --enable-clocale=gnu \
+ --enable-gnu-unique-object --enable-linker-build-id \
+ --with-ppl --enable-cloog-backend=isl \
+ --enable-lto --enable-gold --enable-ld=default \
+ --enable-plugin --with-plugin-ld=ld.gold \
+ --disable-multilib --disable-libstdcxx-pch \
+ --enable-checking=release
+ make
+}
+
+check() {
+ cd gcc-build
+
+ # increase stack size to prevent test failures
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31827
+ ulimit -s 32768
+
+ # do not abort on error as some are "expected"
+ make -k check || true
+ ${_basedir}/contrib/test_summary
+}
+
+package_gcc-libs()
+{
+ pkgdesc="Runtime libraries shipped by GCC"
+ groups=('base')
+ depends=('glibc>=2.11.1-2')
+ install=gcc-libs.install
+
+ cd gcc-build
+ make -j1 -C $CHOST/libgcc DESTDIR=${pkgdir} install-shared
+ for lib in libmudflap libgomp libssp libstdc++-v3/src; do
+ make -j1 -C $CHOST/$lib DESTDIR=${pkgdir} install-toolexeclibLTLIBRARIES
+ done
+ make -j1 -C $CHOST/libstdc++-v3/po DESTDIR=${pkgdir} install
+ make -j1 -C $CHOST/libgomp DESTDIR=${pkgdir} install-info
+
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=${pkgdir} install-target-libgfortran
+ make -j1 DESTDIR=${pkgdir} install-target-libobjc
+
+ # remove unnecessary files installed by install-target-{libquadmath,libgfortran,libobjc}
+ rm -rf ${pkgdir}/usr/lib/{gcc/,libgfortran.spec}
+
+ # remove static libraries
+ find ${pkgdir} -name *.a -delete
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc()
+{
+ pkgdesc="The GNU Compiler Collection - C and C++ frontends"
+ depends=('binutils>=2.20.1' 'libmpc>=0.8.1-2' 'cloog' 'ppl')
+ groups=('base-devel')
+ install=gcc.install
+
+ cd gcc-build
+
+ # unfortunately it is much, much easier to install the lot and clean-up the mess...
+ make -j1 DESTDIR=${pkgdir} install
+ rm $pkgdir/usr/bin/{{$CHOST-,}gfortran,{$CHOST-,}gccgo,gnat*}
+ rm $pkgdir/usr/lib/*.so*
+ rm $pkgdir/usr/lib/lib{ffi,gfortran,go{,begin},objc,quadmath}.a
+ rm $pkgdir/usr/lib/libgfortran.spec
+ rm -r $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{ada{include,lib},finclude,include/objc}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/include/{ffi{,target}.h,quadmath{,_weak}.h}
+ rm $pkgdir/usr/lib/gcc/$CHOST/${pkgver}/{cc1obj{,plus},f951,gnat1,go1,libgfortranbegin.a}
+ rm -r $pkgdir/usr/lib/go
+ rm $pkgdir/usr/share/info/{gccgo,gfortran,gnat*,libgomp,libquadmath}.info
+ rm $pkgdir/usr/share/locale/{de,fr}/LC_MESSAGES/libstdc++.mo
+ rm $pkgdir/usr/share/man/man1/{gccgo,gfortran}.1
+ rm $pkgdir/usr/share/man/man3/ffi*
+
+ # many packages require these symlinks
+ install -dm755 ${pkgdir}/lib
+ ln -sf /usr/bin/cpp ${pkgdir}/lib/cpp
+ ln -sf gcc ${pkgdir}/usr/bin/cc
+ ln -sf g++ ${pkgdir}/usr/bin/c++
+
+ # POSIX conformance launcher scripts for c89 and c99
+ cat > $pkgdir/usr/bin/c89 <<"EOF"
+#!/bin/sh
+fl="-std=c89"
+for opt; do
+ case "$opt" in
+ -ansi|-std=c89|-std=iso9899:1990) fl="";;
+ -std=*) echo "`basename $0` called with non ANSI/ISO C option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ cat > $pkgdir/usr/bin/c99 <<"EOF"
+#!/bin/sh
+fl="-std=c99"
+for opt; do
+ case "$opt" in
+ -std=c99|-std=iso9899:1999) fl="";;
+ -std=*) echo "`basename $0` called with non ISO C99 option $opt" >&2
+ exit 1;;
+ esac
+done
+exec gcc $fl ${1+"$@"}
+EOF
+
+ chmod 755 $pkgdir/usr/bin/c{8,9}9
+
+ # install the libstdc++ man pages
+ install -dm755 ${pkgdir}/usr/share/man/man3
+ install -m644 ${srcdir}/man/man3/* ${pkgdir}/usr/share/man/man3/
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-fortran()
+{
+ pkgdesc="Fortran front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-fortran.install
+
+ cd gcc-build
+ make -j1 DESTDIR=${pkgdir} install-target-libquadmath
+ make -j1 DESTDIR=$pkgdir install-target-libgfortran
+ make -j1 -C $CHOST/libgomp DESTDIR=$pkgdir install-nodist_fincludeHEADERS
+ make -j1 -C gcc DESTDIR=$pkgdir fortran.install-{common,man,info}
+ install -Dm755 gcc/f951 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/f951
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib/lib{gfortran,quadmath}.so*
+ rm ${pkgdir}/usr/share/info/libquadmath.info
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-fortran/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-objc()
+{
+ pkgdesc="Objective-C front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libobjc
+ install -dm755 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+ install -m755 gcc/cc1obj{,plus} $pkgdir/usr/lib/gcc/$CHOST/$pkgver/
+
+ # remove libraries included in gcc-libs
+ rm ${pkgdir}/usr/lib/libobjc.so*
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-objc/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-ada()
+{
+ pkgdesc="Ada front-end for GCC (GNAT)"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-ada.install
+
+ cd gcc-build/gcc
+ make -j1 DESTDIR=$pkgdir ada.install-{common,info}
+ install -m755 gnat1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-ada/RUNTIME.LIBRARY.EXCEPTION
+}
+
+package_gcc-go()
+{
+ pkgdesc="Go front-end for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+ install=gcc-go.install
+
+ cd gcc-build
+ make -j1 DESTDIR=$pkgdir install-target-libgo
+ make -j1 -C gcc DESTDIR=$pkgdir go.install-{common,man,info}
+ install -Dm755 gcc/go1 $pkgdir/usr/lib/gcc/$CHOST/$pkgver/go1
+
+ # Install Runtime Library Exception
+ install -Dm644 ${_basedir}/COPYING.RUNTIME \
+ ${pkgdir}/usr/share/licenses/gcc-go/RUNTIME.LIBRARY.EXCEPTION
+}
diff --git a/testing/gcc/gcc-ada.install b/testing/gcc/gcc-ada.install
new file mode 100644
index 000000000..df0553a4f
--- /dev/null
+++ b/testing/gcc/gcc-ada.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gnat-style.info gnat_rm.info gnat_ugn.info)
+
+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/testing/gcc/gcc-fortran.install b/testing/gcc/gcc-fortran.install
new file mode 100644
index 000000000..b15d89a97
--- /dev/null
+++ b/testing/gcc/gcc-fortran.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+file="gfortran.info"
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+}
diff --git a/testing/gcc/gcc-go.install b/testing/gcc/gcc-go.install
new file mode 100644
index 000000000..7dc50dee5
--- /dev/null
+++ b/testing/gcc/gcc-go.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gccgo.info)
+
+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/testing/gcc/gcc-hash-style-both.patch b/testing/gcc/gcc-hash-style-both.patch
new file mode 100644
index 000000000..8b59f4535
--- /dev/null
+++ b/testing/gcc/gcc-hash-style-both.patch
@@ -0,0 +1,122 @@
+--- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
+@@ -41,7 +41,7 @@
+
+ #define ELF_DYNAMIC_LINKER LINUX_DYNAMIC_LINKER
+
+-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{shared:-shared} \
+ %{!shared: \
+--- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
++++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -78,7 +78,7 @@
+ %{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} \
++#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
++++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -104,7 +104,7 @@
+ { "dynamic_linker", LINUX_DYNAMIC_LINKER }
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
++#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -64,7 +64,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "\
++#define LINK_SPEC "--hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+--- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
++++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
+@@ -389,11 +389,11 @@
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
+
+
+-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
+
+-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
+
+--- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
++++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
+@@ -830,7 +830,7 @@
+ #define LINUX_DYNAMIC_LINKER \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
+
+-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
+ %{rdynamic:-export-dynamic} \
+ -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
+
+--- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
++++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -77,7 +77,7 @@
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
+ %{shared:-shared} \
+ %{!shared: \
+ %{static:-static} \
+--- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
++++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
+@@ -113,7 +113,7 @@
+ { "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
+ { "link_arch", LINK_ARCH_SPEC },
+
+-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
++#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -121,7 +121,7 @@
+ %{static:-static}} \
+ "
+
+-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+@@ -193,7 +193,7 @@
+ #else /* !SPARC_BI_ARCH */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
++#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64 %{shared:-shared} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+--- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
++++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
+@@ -74,7 +74,7 @@
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
++#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib %{shared:-shared} \
+ %{!mno-relax:%{!r:-relax}} \
+ %{!shared: \
+ %{!static: \
diff --git a/testing/gcc/gcc-libs.install b/testing/gcc/gcc-libs.install
new file mode 100644
index 000000000..23553b8f0
--- /dev/null
+++ b/testing/gcc/gcc-libs.install
@@ -0,0 +1,16 @@
+infodir=usr/share/info
+filelist=(libgomp.info libquadmath.info)
+
+post_upgrade() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+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/testing/gcc/gcc.install b/testing/gcc/gcc.install
new file mode 100644
index 000000000..3407a5e1f
--- /dev/null
+++ b/testing/gcc/gcc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(cpp.info cppinternals.info gcc.info gccinstall.info gccint.info)
+
+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/testing/gcc/gcc_pure64.patch b/testing/gcc/gcc_pure64.patch
new file mode 100644
index 000000000..8c0baf8e2
--- /dev/null
+++ b/testing/gcc/gcc_pure64.patch
@@ -0,0 +1,26 @@
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h gcc-4.2.0/gcc/config/i386/linux64.h
+--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
+@@ -49,8 +49,8 @@
+ When the -shared link option is used a final link is not being
+ done. */
+
+-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
+diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
+--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
++++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
+@@ -6,7 +6,7 @@
+
+ MULTILIB_OPTIONS = m64/m32
+ MULTILIB_DIRNAMES = 64 32
+-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = ../lib ../lib32
+
+ LIBGCC = stmp-multilib
+ INSTALL_LIBGCC = install-multilib
diff --git a/testing/ghc/PKGBUILD b/testing/ghc/PKGBUILD
new file mode 100644
index 000000000..27dda458f
--- /dev/null
+++ b/testing/ghc/PKGBUILD
@@ -0,0 +1,78 @@
+# $Id: PKGBUILD 114660 2011-03-15 09:16:12Z vesa $
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+pkgname=ghc
+pkgver=7.0.2
+pkgrel=2
+pkgdesc="The Glasgow Haskell Compiler"
+arch=(i686 x86_64)
+url="http://www.haskell.org/ghc/"
+license=("custom")
+depends=('perl' 'gmp>=5.0' gcc)
+makedepends=(ghc happy perl libxslt docbook-xsl)
+provides=("haskell-array=0.3.0.2"
+ "haskell-bytestring=0.9.1.10"
+ "haskell-cabal=1.10.1.0"
+ "haskell-containers=0.4.0.0"
+ "haskell-directory=1.1.0.0"
+ "haskell-extensible-exceptions=0.1.1.2"
+ "haskell-filepath=1.2.0.0"
+ "haskell-haskell98=1.1.0.1"
+ "haskell-hpc=0.5.0.6"
+ "haskell-old-locale=1.0.0.2"
+ "haskell-old-time=1.0.0.6"
+ "haskell-pretty=1.0.1.2"
+ "haskell-process=1.0.1.5"
+ "haskell-random=1.0.0.3"
+ "haskell-template-haskell=2.5.0.0"
+ "haskell-time=1.2.0.3"
+ "haskell-unix=2.4.2.0"
+ )
+replaces=("haskell-array<0.3.0.2"
+ "haskell-bytestring<0.9.1.10"
+ "haskell-cabal<1.10.1.0"
+ "haskell-containers<0.4.0.0"
+ "haskell-directory<1.1.0.0"
+ "haskell-extensible-exceptions<0.1.1.2"
+ "haskell-filepath<1.2.0.0"
+ "haskell-haskell98<1.1.0.1"
+ "haskell-hpc<0.5.0.6"
+ "haskell-old-locale<1.0.0.2"
+ "haskell-old-time<1.0.0.6"
+ "haskell-pretty<1.0.1.2"
+ "haskell-process<1.0.1.5"
+ "haskell-random<1.0.0.3"
+ "haskell-template-haskell<2.5.0.0"
+ "haskell-time<1.2.0.3"
+ "haskell-unix<2.4.2.0"
+ )
+
+install=ghc.install
+options=(!strip)
+source=("http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-src.tar.bz2"
+ build.mk)
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ cp $srcdir/build.mk mk/build.mk
+
+ # FS#17875
+ sed -i 's/INSTALL_SHELL_WRAPPER = YES/INSTALL_SHELL_WRAPPER = NO/' utils/haddock/ghc.mk
+
+ ./configure --prefix=/usr
+ make -j1 || return 1
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/ghc/license
+ install -d $pkgdir/usr/share/haskell
+
+ rm $pkgdir/usr/bin/haddock
+}
+
+md5sums=('946a18a0dc30437db72c0d3fdf26ca42'
+ '5a3e0880c80b1dcecf779ff2e63a9c0d')
diff --git a/testing/ghc/build.mk b/testing/ghc/build.mk
new file mode 100644
index 000000000..f918a0f16
--- /dev/null
+++ b/testing/ghc/build.mk
@@ -0,0 +1,150 @@
+# -----------------------------------------------------------------------------
+# A Sample build.mk
+#
+# Uncomment one of the following BuildFlavour settings to get the desired
+# overall build type, and then tweak the options in the relevant section
+# below.
+
+# Uncomment one of these to select a build profile below:
+
+# Full build with max optimisation (slow build)
+BuildFlavour = perf
+
+# Fastest build (libs unoptimised):
+#BuildFlavour = quickest
+
+# Fast build with optimised libraries:
+#BuildFlavour = quick
+
+# Profile the stage2 compiler:
+#BuildFlavour = prof
+
+# A development build, working on the stage 1 compiler:
+#BuildFlavour = devel1
+
+# A development build, working on the stage 2 compiler:
+#BuildFlavour = devel2
+
+GhcLibWays = v
+
+# -------- 1. A Performance/Distribution build--------------------------------
+
+ifeq "$(BuildFlavour)" "perf"
+
+# perf matches the default settings, repeated here for comparison:
+
+SRC_HC_OPTS = -O -H64m
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O2 -fasm
+GhcHcOpts = -Rghc-timing
+GhcLibHcOpts = -O2 -XGenerics
+GhcLibWays += p
+
+ifeq "$(PlatformSupportsSharedLibs)" "YES"
+GhcLibWays += dyn
+endif
+
+endif
+
+# -------- A Fast build ------------------------------------------------------
+
+ifeq "$(BuildFlavour)" "quickest"
+
+SRC_HC_OPTS = -H64m -O0 -fasm
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O0 -fasm
+GhcLibHcOpts = -O0 -fasm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -------- A Fast build with optimised libs ----------------------------------
+
+ifeq "$(BuildFlavour)" "quick"
+
+SRC_HC_OPTS = -H64m -O0 -fasm
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O0 -fasm
+GhcLibHcOpts = -O -fasm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -------- Profile the stage2 compiler ---------------------------------------
+
+ifeq "$(BuildFlavour)" "prof"
+
+SRC_HC_OPTS = -H64m -O0 -fasm
+GhcStage1HcOpts = -O -fasm
+GhcStage2HcOpts = -O -fasm
+GhcLibHcOpts = -O -fasm
+
+GhcLibWays += p
+GhcProfiled = YES
+
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+
+# -------- A Development build (stage 1) -------------------------------------
+
+ifeq "$(BuildFlavour)" "devel1"
+
+SRC_HC_OPTS = -H64m -O -fasm
+GhcLibHcOpts = -O -dcore-lint
+GhcStage1HcOpts = -Rghc-timing -O0 -DDEBUG
+GhcStage2HcOpts = -Rghc-timing -O -fasm
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -------- A Development build (stage 2) -------------------------------------
+
+ifeq "$(BuildFlavour)" "devel2"
+
+SRC_HC_OPTS = -H64m -O -fasm
+GhcLibHcOpts = -O -dcore-lint
+GhcStage1HcOpts = -Rghc-timing -O -fasm
+GhcStage2HcOpts = -Rghc-timing -O0 -DDEBUG
+SplitObjs = NO
+HADDOCK_DOCS = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS = NO
+BUILD_DOCBOOK_PDF = NO
+
+endif
+
+# -----------------------------------------------------------------------------
+# Other settings that might be useful
+
+# profiled RTS
+#GhcRtsCcOpts = -pg -g
+
+# Optimised/profiled RTS
+#GhcRtsCcOpts = -O2 -pg
+
+#GhcRtsWithFrontPanel = YES
+#SRC_HC_OPTS += `gtk-config --libs`
+
+# NoFib settings
+NoFibWays =
+STRIP=:
+
+
diff --git a/testing/ghc/ghc.install b/testing/ghc/ghc.install
new file mode 100644
index 000000000..7d56083bc
--- /dev/null
+++ b/testing/ghc/ghc.install
@@ -0,0 +1,19 @@
+pkgname=ghc
+
+pre_upgrade() {
+ cat << EOF
+ ==> Unregistering cabalized packages...
+EOF
+ cd /usr/share/haskell/ && (for a in *; do ghc-pkg unregister --force $a &> /dev/null; done; cd - > /dev/null )
+ cat << EOF
+ ==> Done.
+EOF
+
+}
+
+post_upgrade() {
+ cat << EOF
+ ==> All cabalized and yaourt-installed packages need to be reinstalled now.
+ ==> See /usr/share/haskell/ and ghc-pkg list --user for a tentative list of affected packages.
+EOF
+}
diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD
new file mode 100644
index 000000000..60aeb8ae6
--- /dev/null
+++ b/testing/glibc/PKGBUILD
@@ -0,0 +1,168 @@
+# $Id: PKGBUILD 116984 2011-03-27 06:35:25Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+# NOTE: valgrind requires rebuilt with each new glibc version
+
+pkgname=glibc
+pkgver=2.13
+pkgrel=5
+_glibcdate=20110117
+pkgdesc="GNU C Library"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL' 'LGPL')
+groups=('base')
+depends=('linux-api-headers>=2.6.37' 'tzdata')
+makedepends=('gcc>=4.4')
+backup=(etc/locale.gen
+ etc/nscd.conf)
+options=('!strip')
+install=glibc.install
+source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz
+ glibc-2.10-dont-build-timezone.patch
+ glibc-2.10-bz4781.patch
+ glibc-__i686.patch
+ glibc-2.12.1-static-shared-getpagesize.patch
+ glibc-2.12.2-ignore-origin-of-privileged-program.patch
+ glibc-2.13-prelink.patch
+ glibc-2.13-futex.patch
+ nscd
+ locale.gen.txt
+ locale-gen)
+md5sums=('b7b17d9c6b5b71b5e5322e04ca63c190'
+ '4dadb9203b69a3210d53514bb46f41c3'
+ '0c5540efc51c0b93996c51b57a8540ae'
+ '40cd342e21f71f5e49e32622b25acc52'
+ 'a3ac6f318d680347bb6e2805d42b73b2'
+ 'b042647ea7d6f22ad319e12e796bd13e'
+ '24dfab6fd244f3773523412588ecc52c'
+ '7d0154b7e17ea218c9fa953599d24cc4'
+ 'b587ee3a70c9b3713099295609afde49'
+ '07ac979b6ab5eeb778d55f041529d623'
+ '476e9113489f93b348b21e144b6a8fcf')
+
+mksource() {
+ git clone git://sourceware.org/git/glibc.git
+ pushd glibc
+ git checkout -b glibc-2.13-arch origin/release/2.13/master
+ popd
+ tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/*
+}
+
+build() {
+ cd ${srcdir}/glibc
+
+ # timezone data is in separate package (tzdata)
+ patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781
+ patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch
+
+ # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411
+ # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html
+ patch -Np1 -i ${srcdir}/glibc-__i686.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=11929
+ # using Fedora "fix" as patch in that bug report causes breakages...
+ patch -Np1 -i ${srcdir}/glibc-2.12.1-static-shared-getpagesize.patch
+
+ # http://www.exploit-db.com/exploits/15274/
+ # http://sourceware.org/git/?p=glibc.git;a=patch;h=d14e6b09 (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.12.2-ignore-origin-of-privileged-program.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12489
+ # http://sourceware.org/git/?p=glibc.git;a=commit;h=25b3aada (only fedora branch...)
+ patch -Np1 -i ${srcdir}/glibc-2.13-prelink.patch
+
+ # http://sourceware.org/bugzilla/show_bug.cgi?id=12403
+ patch -Np1 -i ${srcdir}/glibc-2.13-futex.patch
+
+ install -dm755 ${pkgdir}/etc
+ touch ${pkgdir}/etc/ld.so.conf
+
+ cd ${srcdir}
+ mkdir glibc-build
+ cd glibc-build
+
+ if [[ ${CARCH} = "i686" ]]; then
+ # Hack to fix NPTL issues with Xen, only required on 32bit platforms
+ export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs"
+ fi
+
+ echo "slibdir=/lib" >> configparms
+
+ ${srcdir}/glibc/configure --prefix=/usr \
+ --libdir=/usr/lib --libexecdir=/usr/lib \
+ --with-headers=/usr/include \
+ --enable-add-ons=nptl,libidn \
+ --enable-kernel=2.6.27 \
+ --with-tls --with-__thread \
+ --enable-bind-now --without-gd \
+ --without-cvs --disable-profile \
+ --disable-multi-arch
+
+ make
+}
+
+check() {
+ cd ${srcdir}/glibc-build
+
+ # some errors are expected - manually check log files
+ make -k check || true
+}
+
+package() {
+ cd ${srcdir}/glibc-build
+ make install_root=${pkgdir} install
+
+ rm ${pkgdir}/etc/ld.so.{cache,conf}
+
+ install -dm755 ${pkgdir}/etc/rc.d
+ install -dm755 ${pkgdir}/usr/sbin
+ install -dm755 ${pkgdir}/usr/lib/locale
+ install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf
+ install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd
+ install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin
+ install -m644 ${srcdir}/glibc/posix/gai.conf ${pkgdir}/etc/gai.conf
+
+ sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf
+
+ # create /etc/locale.gen
+ install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen
+ sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED
+ sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED
+ cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen
+ sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen
+
+ if [[ ${CARCH} = "x86_64" ]]; then
+ # fix for the linker
+ sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd
+ # Comply with multilib binaries, they look for the linker in /lib64
+ mkdir ${pkgdir}/lib64
+ cd ${pkgdir}/lib64
+ ln -v -s ../lib/ld* .
+ fi
+
+ # manually strip files as stripping libpthread-*.so and libthread_db.so
+ # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks
+ # valgrind on x86_64
+
+ cd $pkgdir
+ strip $STRIP_BINARIES sbin/{ldconfig,sln} \
+ usr/bin/{gencat,getconf,getent,iconv,locale} \
+ usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \
+ usr/lib/getconf/* \
+ usr/sbin/{iconvconfig,nscd,rpcinfo}
+ [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4
+
+ strip $STRIP_STATIC usr/lib/*.a \
+ lib/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so
+
+ strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \
+ lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \
+ lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \
+ lib/{libmemusage,libpcprofile,libSegFault}.so \
+ usr/lib/{pt_chown,gconv/*.so}
+}
diff --git a/testing/glibc/glibc-2.10-bz4781.patch b/testing/glibc/glibc-2.10-bz4781.patch
new file mode 100644
index 000000000..cf1a97a18
--- /dev/null
+++ b/testing/glibc/glibc-2.10-bz4781.patch
@@ -0,0 +1,42 @@
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/i386/clone.S glibc/sysdeps/unix/sysv/linux/i386/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/i386/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -120,9 +120,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (eip);
+ /* Note: %esi is zero. */
+ movl %esi,%ebp /* terminate the stack frame */
+ #ifdef RESET_PID
+@@ -155,7 +152,6 @@
+ jmp L(haspid)
+ .previous
+ #endif
+- cfi_endproc;
+
+ cfi_startproc
+ PSEUDO_END (BP_SYM (__clone))
+diff -Naur glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S glibc/sysdeps/unix/sysv/linux/x86_64/clone.S
+--- glibc-old/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-09 13:35:30.000000000 +1000
++++ glibc/sysdeps/unix/sysv/linux/x86_64/clone.S 2009-05-23 13:27:46.000000000 +1000
+@@ -89,9 +89,6 @@
+ ret
+
+ L(thread_start):
+- cfi_startproc;
+- /* Clearing frame pointer is insufficient, use CFI. */
+- cfi_undefined (rip);
+ /* Clear the frame pointer. The ABI suggests this be done, to mark
+ the outermost frame obviously. */
+ xorl %ebp, %ebp
+@@ -116,7 +113,6 @@
+ /* Call exit with return value from function call. */
+ movq %rax, %rdi
+ call HIDDEN_JUMPTARGET (_exit)
+- cfi_endproc;
+
+ cfi_startproc;
+ PSEUDO_END (BP_SYM (__clone))
diff --git a/testing/glibc/glibc-2.10-dont-build-timezone.patch b/testing/glibc/glibc-2.10-dont-build-timezone.patch
new file mode 100644
index 000000000..d3abeff17
--- /dev/null
+++ b/testing/glibc/glibc-2.10-dont-build-timezone.patch
@@ -0,0 +1,13 @@
+timezone data has been split into the package sys-libs/timezone-data
+
+--- glibc-2.4/Makeconfig
++++ glibc-2.4/Makeconfig
+@@ -931,7 +931,7 @@
+ stdlib stdio-common libio malloc string wcsmbs time dirent \
+ grp pwd posix io termios resource misc socket sysvipc gmon \
+ gnulib iconv iconvdata wctype manual shadow gshadow po argp \
+- crypt nss localedata timezone rt conform debug \
++ crypt nss localedata rt conform debug \
+ $(add-on-subdirs) $(dlfcn) $(binfmt-subdir)
+
+ ifndef avoid-generated
diff --git a/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
new file mode 100644
index 000000000..e84754279
--- /dev/null
+++ b/testing/glibc/glibc-2.12.1-static-shared-getpagesize.patch
@@ -0,0 +1,11 @@
+--- glibc-2.12-192-g7c08a05/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12.90-17/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+ assert (GLRO(dl_pagesize) != 0);
+ return GLRO(dl_pagesize);
+ #else
diff --git a/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
new file mode 100644
index 000000000..ce089b49c
--- /dev/null
+++ b/testing/glibc/glibc-2.12.2-ignore-origin-of-privileged-program.patch
@@ -0,0 +1,26 @@
+From d14e6b09d60d52cc12f0396c3106b14e1bd0fe8f Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@redhat.com>
+Date: Thu, 9 Dec 2010 15:00:59 +0100
+Subject: [PATCH 1/1] Ignore origin of privileged program
+
+---
+ ChangeLog | 5 +++++
+ elf/dl-object.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/elf/dl-object.c b/elf/dl-object.c
+index 22a1635..7674d49 100644
+--- a/elf/dl-object.c
++++ b/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const char *libname, int type,
+ out:
+ new->l_origin = origin;
+ }
++ else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++ /* The origin of a privileged program cannot be trusted. */
++ new->l_origin = (char *) -1;
+
+ return new;
+ }
+--
+1.7.2
diff --git a/testing/glibc/glibc-2.13-futex.patch b/testing/glibc/glibc-2.13-futex.patch
new file mode 100644
index 000000000..9b9c3ac45
--- /dev/null
+++ b/testing/glibc/glibc-2.13-futex.patch
@@ -0,0 +1,31 @@
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+@@ -210,7 +210,7 @@ pthread_rwlock_timedrdlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
+--- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
++++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+@@ -192,7 +192,7 @@ pthread_rwlock_timedwrlock:
+
+ 7: movq %rdx, %rax
+
+-#ifndef __ASSUME_PRIVATE_FUTEX
++#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ addq $16, %rsp
+ cfi_adjust_cfa_offset(-16)
+ popq %r14
+@@ -207,7 +207,7 @@ pthread_rwlock_timedwrlock:
+ cfi_restore(%r12)
+ retq
+
+-#ifdef __ASSUME_PRIVATE_FUTEX
++#ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+ cfi_adjust_cfa_offset(16)
+ cfi_rel_offset(%r12, 8)
+ cfi_rel_offset(%r13, 0)
diff --git a/testing/glibc/glibc-2.13-prelink.patch b/testing/glibc/glibc-2.13-prelink.patch
new file mode 100644
index 000000000..bef7998a8
--- /dev/null
+++ b/testing/glibc/glibc-2.13-prelink.patch
@@ -0,0 +1,26 @@
+diff --git a/elf/rtld.c b/elf/rtld.c
+index 9a560b3..201c9cf 100644
+--- a/elf/rtld.c
++++ b/elf/rtld.c
+@@ -2168,6 +2168,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ we need it in the memory handling later. */
+ GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
+
++ /* Remember the last search directory added at startup, now that
++ malloc will no longer be the one from dl-minimal.c. */
++ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
++
+ if (prelinked)
+ {
+ if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
+@@ -2288,10 +2292,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
+ lossage);
+ }
+
+- /* Remember the last search directory added at startup, now that
+- malloc will no longer be the one from dl-minimal.c. */
+- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+-
+ if (! prelinked && rtld_multiple_ref)
+ {
+ /* There was an explicit ref to the dynamic linker as a shared lib.
diff --git a/testing/glibc/glibc-__i686.patch b/testing/glibc/glibc-__i686.patch
new file mode 100644
index 000000000..28d5dd424
--- /dev/null
+++ b/testing/glibc/glibc-__i686.patch
@@ -0,0 +1,13 @@
+diff -Naur glibc-old//sysdeps/i386/Makefile glibc//sysdeps/i386/Makefile
+--- glibc-old//sysdeps/i386/Makefile 2010-03-18 11:52:30.000000000 +1000
++++ glibc//sysdeps/i386/Makefile 2010-04-16 15:05:50.000000000 +1000
+@@ -1,6 +1,7 @@
+ # The mpn functions need a #define for asm syntax flavor.
+-# Every i386 port in use uses gas syntax (I think).
+-asm-CPPFLAGS += -DGAS_SYNTAX
++# Every i386 port in use uses gas syntax (I think). Don't replace
++# __i686 in __i686.get_pc_thunk.bx.
++asm-CPPFLAGS += -DGAS_SYNTAX -U __i686
+
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
diff --git a/testing/glibc/glibc.install b/testing/glibc/glibc.install
new file mode 100644
index 000000000..7f85ade96
--- /dev/null
+++ b/testing/glibc/glibc.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(libc.info{,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11})
+
+post_upgrade() {
+ sbin/ldconfig -r .
+ [ -x sbin/init ] && sbin/init u
+ usr/sbin/locale-gen
+
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ usr/bin/install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/glibc/locale-gen b/testing/glibc/locale-gen
new file mode 100755
index 000000000..5aff344c4
--- /dev/null
+++ b/testing/glibc/locale-gen
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+set -e
+
+LOCALEGEN=/etc/locale.gen
+LOCALES=/usr/share/i18n/locales
+if [ -n "$POSIXLY_CORRECT" ]; then
+ unset POSIXLY_CORRECT
+fi
+
+
+[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0;
+
+# Remove all old locale dir and locale-archive before generating new
+# locale data.
+rm -rf /usr/lib/locale/* || true
+
+umask 022
+
+is_entry_ok() {
+ if [ -n "$locale" -a -n "$charset" ] ; then
+ true
+ else
+ echo "error: Bad entry '$locale $charset'"
+ false
+ fi
+}
+
+echo "Generating locales..."
+while read locale charset; do \
+ case $locale in \#*) continue;; "") continue;; esac; \
+ is_entry_ok || continue
+ echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \
+ echo -n ".$charset"; \
+ echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \
+ echo -n '...'; \
+ if [ -f $LOCALES/$locale ]; then input=$locale; else \
+ input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; fi; \
+ localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale; \
+ echo ' done'; \
+done < $LOCALEGEN
+echo "Generation complete."
diff --git a/testing/glibc/locale.gen.txt b/testing/glibc/locale.gen.txt
new file mode 100644
index 000000000..ccdd81734
--- /dev/null
+++ b/testing/glibc/locale.gen.txt
@@ -0,0 +1,23 @@
+# Configuration file for locale-gen
+#
+# lists of locales that are to be generated by the locale-gen command.
+#
+# Each line is of the form:
+#
+# <locale> <charset>
+#
+# where <locale> is one of the locales given in /usr/share/i18n/locales
+# and <charset> is one of the character sets listed in /usr/share/i18n/charmaps
+#
+# Examples:
+# en_US ISO-8859-1
+# en_US.UTF-8 UTF-8
+# de_DE ISO-8859-1
+# de_DE@euro ISO-8859-15
+#
+# The locale-gen command will generate all the locales,
+# placing them in /usr/lib/locale.
+#
+# A list of supported locales is included in this file.
+# Uncomment the ones you need.
+#
diff --git a/testing/glibc/nscd b/testing/glibc/nscd
new file mode 100755
index 000000000..8b14f2a3f
--- /dev/null
+++ b/testing/glibc/nscd
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/nscd`
+case "$1" in
+ start)
+ stat_busy "Starting nscd"
+ # create necessary directories if they don't already exist
+ mkdir -p /var/run/nscd /var/db/nscd 2>/dev/null
+ # remove stale files
+ rm -f /var/db/nscd/* /var/run/nscd/* 2>/dev/null
+ [ -z "$PID" ] && /usr/sbin/nscd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon nscd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping nscd"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon nscd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/gnutls/PKGBUILD b/testing/gnutls/PKGBUILD
new file mode 100644
index 000000000..63f41cc62
--- /dev/null
+++ b/testing/gnutls/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 117478 2011-04-03 19:05:56Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=gnutls
+pkgver=2.12.1
+pkgrel=1
+pkgdesc="A library which provides a secure layer over a reliable transport layer"
+arch=('i686' 'x86_64')
+license=('GPL3' 'LGPL')
+url="http://www.gnu.org/software/gnutls/"
+install=gnutls.install
+options=('!libtool' '!zipman')
+depends=('gcc-libs>=4.4.3' 'libtasn1>=2.5' 'readline>=6.0' 'zlib' 'libgcrypt>=1.4.5')
+source=(ftp://ftp.gnu.org/gnu/gnutls/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('214296bafcdb411adf94e05162332297')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ # Nettle is the default crypto back end. Use --with-libgcrypt to use the libgcrypt back end.
+ # we stay with libgcrypt for now. nettle would need to be moved from AUR to extra.
+ ./configure --prefix=/usr \
+ --with-zlib \
+ --with-libgcrypt \
+ --disable-static \
+ --disable-guile
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make check # passes all || /bin/true
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ # lots of .png files are put into infodir and are gzipped by makepkg! this may need to be fixed by using !zipman
+ # gzip -9 all files in infodir and manpages manually
+ find "$pkgdir/usr/share/info" -name '*.info*' -exec gzip -9 {} \;
+ find "$pkgdir/usr/share/man" -exec gzip -9 {} \;
+}
diff --git a/testing/gnutls/gnutls.install b/testing/gnutls/gnutls.install
new file mode 100644
index 000000000..9ce7c6edc
--- /dev/null
+++ b/testing/gnutls/gnutls.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(gnutls.info-1.gz gnutls.info-2.gz gnutls.info-3.gz gnutls.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/haddock/PKGBUILD b/testing/haddock/PKGBUILD
new file mode 100644
index 000000000..e061249d3
--- /dev/null
+++ b/testing/haddock/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# As generated by cabal2arch 0.7.6
+pkgname=haddock
+pkgver=2.9.2
+pkgrel=1
+pkgdesc="Documentation-generation tool for Haskell libraries"
+url="http://hackage.haskell.org/package/${pkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=(alex happy)
+depends=(ghc sh 'haskell-mtl' 'haskell-xhtml' 'haskell-ghc-paths') # cannot have more strict deps here
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${pkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
+md5sums=('04928e132827a1da20ace52babb43e47')
diff --git a/testing/haddock/haddock.install b/testing/haddock/haddock.install
new file mode 100644
index 000000000..278da355e
--- /dev/null
+++ b/testing/haddock/haddock.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haddock
+post_install() {
+ ${HS_DIR}/register.sh &> /dev/null
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index) &> /dev/null
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh &> /dev/null
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index) &> /dev/null
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index) &> /dev/null
+}
diff --git a/testing/haskell-cgi/PKGBUILD b/testing/haskell-cgi/PKGBUILD
new file mode 100644
index 000000000..ebee2e82e
--- /dev/null
+++ b/testing/haskell-cgi/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=cgi
+pkgname=haskell-cgi
+pkgver=3001.1.7.4
+pkgrel=3
+pkgdesc="A library for writing CGI programs"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2-2' 'haskell-mtl=2.0.1.0-2' 'haskell-network=2.3.0.2-2' 'haskell-parsec=3.1.1-2' 'haskell-xhtml=3000.2.0.1-7')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('0e551afc8d6f39aaa70520e31de26506')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-cgi/haskell-cgi.install b/testing/haskell-cgi/haskell-cgi.install
new file mode 100644
index 000000000..533fe4dc5
--- /dev/null
+++ b/testing/haskell-cgi/haskell-cgi.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-cgi
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-deepseq/PKGBUILD b/testing/haskell-deepseq/PKGBUILD
new file mode 100644
index 000000000..b89f39f8b
--- /dev/null
+++ b/testing/haskell-deepseq/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=deepseq
+pkgname=haskell-deepseq
+pkgver=1.1.0.2
+pkgrel=2
+pkgdesc="Fully evaluate data structures"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('90b66480f0eb659c1db209ee703e0162')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-deepseq/haskell-deepseq.install b/testing/haskell-deepseq/haskell-deepseq.install
new file mode 100644
index 000000000..8ba51eac7
--- /dev/null
+++ b/testing/haskell-deepseq/haskell-deepseq.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-deepseq
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-fgl/PKGBUILD b/testing/haskell-fgl/PKGBUILD
new file mode 100644
index 000000000..4a866601d
--- /dev/null
+++ b/testing/haskell-fgl/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=fgl
+pkgname=haskell-fgl
+pkgver=5.4.2.3
+pkgrel=4
+pkgdesc="Martin Erwig's Functional Graph Library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=('ghc=7.0.2-2' 'haskell-mtl=2.0.1.0-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('29ccab8bebed16a8d7346c3ed52c5d9c')
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+md5sums=('29ccab8bebed16a8d7346c3ed52c5d9c')
diff --git a/testing/haskell-fgl/haskell-fgl.install b/testing/haskell-fgl/haskell-fgl.install
new file mode 100644
index 000000000..0da0edb7b
--- /dev/null
+++ b/testing/haskell-fgl/haskell-fgl.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-fgl
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-ghc-paths/PKGBUILD b/testing/haskell-ghc-paths/PKGBUILD
new file mode 100644
index 000000000..5a744ac49
--- /dev/null
+++ b/testing/haskell-ghc-paths/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=ghc-paths
+pkgname=haskell-ghc-paths
+pkgver=0.1.0.8
+pkgrel=4
+pkgdesc="Knowledge of GHC's installation directories"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=(ghc=7.0.2) # cannot have stricter dep here due to haddock
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('d2b23dc563888e380588501d2ce1d82b')
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-ghc-paths/haskell-ghc-paths.install b/testing/haskell-ghc-paths/haskell-ghc-paths.install
new file mode 100644
index 000000000..4fd2c6c56
--- /dev/null
+++ b/testing/haskell-ghc-paths/haskell-ghc-paths.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-ghc-paths
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-glut/PKGBUILD b/testing/haskell-glut/PKGBUILD
new file mode 100644
index 000000000..a42385959
--- /dev/null
+++ b/testing/haskell-glut/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=GLUT
+pkgname=haskell-glut
+pkgver=2.1.2.1
+pkgrel=6
+pkgdesc="A binding for the OpenGL Utility Toolkit"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=('ghc=7.0.2-2' 'haskell-opengl=2.2.3.0-6' 'freeglut')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('b97f476a04098701e330e86c1f89ed52')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-glut/haskell-glut.install b/testing/haskell-glut/haskell-glut.install
new file mode 100644
index 000000000..44c7cb3c1
--- /dev/null
+++ b/testing/haskell-glut/haskell-glut.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-glut
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-haskell-src/PKGBUILD b/testing/haskell-haskell-src/PKGBUILD
new file mode 100644
index 000000000..8b9340c4f
--- /dev/null
+++ b/testing/haskell-haskell-src/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=haskell-src
+pkgname=haskell-haskell-src
+pkgver=1.0.1.4
+pkgrel=2
+pkgdesc="Facilities for manipulating Haskell source code: an abstract syntax, lexer, parser and pretty-printer."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2-2' 'haskell-syb=0.3-2' sh)
+makedepends=(happy)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('32d181c082393ab859e72610803bac6e')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/testing/haskell-haskell-src/haskell-haskell-src.install b/testing/haskell-haskell-src/haskell-haskell-src.install
new file mode 100644
index 000000000..03ce601bc
--- /dev/null
+++ b/testing/haskell-haskell-src/haskell-haskell-src.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-haskell-src
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-html/PKGBUILD b/testing/haskell-html/PKGBUILD
new file mode 100644
index 000000000..10a04cbdf
--- /dev/null
+++ b/testing/haskell-html/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=html
+pkgname=haskell-html
+pkgver=1.0.1.2
+pkgrel=9
+pkgdesc="HTML combinator library"
+url="http://hackage.haskell.org/package/html"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('2a7de5a2af9a2f80d39825d6a95ee445')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-html/haskell-html.install b/testing/haskell-html/haskell-html.install
new file mode 100644
index 000000000..768297e0a
--- /dev/null
+++ b/testing/haskell-html/haskell-html.install
@@ -0,0 +1,19 @@
+HS_DIR=usr/share/haskell/haskell-html
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+ exit 0
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-http/PKGBUILD b/testing/haskell-http/PKGBUILD
new file mode 100644
index 000000000..80fce6663
--- /dev/null
+++ b/testing/haskell-http/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=HTTP
+pkgname=haskell-http
+pkgver=4000.1.1
+pkgrel=3
+pkgdesc="A library for client-side HTTP"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2-2' sh 'haskell-network=2.3.0.2-2' 'haskell-parsec=3.1.1-2' 'haskell-mtl=2.0.1.0-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('ddf23d46c4d6dc0048c454e3d01caa57')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/testing/haskell-http/haskell-http.install b/testing/haskell-http/haskell-http.install
new file mode 100644
index 000000000..fdebb1cb8
--- /dev/null
+++ b/testing/haskell-http/haskell-http.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-http
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-hunit/PKGBUILD b/testing/haskell-hunit/PKGBUILD
new file mode 100644
index 000000000..634fd49f3
--- /dev/null
+++ b/testing/haskell-hunit/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=HUnit
+pkgname=haskell-hunit
+pkgver=1.2.2.3
+pkgrel=2
+pkgdesc="A unit testing framework for Haskell"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('f179add502f88153e5c9fdc69056b657')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-hunit/haskell-hunit.install b/testing/haskell-hunit/haskell-hunit.install
new file mode 100644
index 000000000..ceb108b5b
--- /dev/null
+++ b/testing/haskell-hunit/haskell-hunit.install
@@ -0,0 +1,19 @@
+HS_DIR=usr/share/haskell/haskell-hunit
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+ exit 0
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-mtl/PKGBUILD b/testing/haskell-mtl/PKGBUILD
new file mode 100644
index 000000000..ea29d2633
--- /dev/null
+++ b/testing/haskell-mtl/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=mtl
+pkgname=haskell-mtl
+pkgver=2.0.1.0
+pkgrel=2
+pkgdesc="Monad transformer library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh 'haskell-transformers=0.2.2.0-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('934fa813625ef7e88a6a96a09815ff95')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+md5sums=('934fa813625ef7e88a6a96a09815ff95')
diff --git a/testing/haskell-mtl/haskell-mtl.install b/testing/haskell-mtl/haskell-mtl.install
new file mode 100644
index 000000000..9325811e8
--- /dev/null
+++ b/testing/haskell-mtl/haskell-mtl.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-mtl
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-network/PKGBUILD b/testing/haskell-network/PKGBUILD
new file mode 100644
index 000000000..685e5fe2b
--- /dev/null
+++ b/testing/haskell-network/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=network
+pkgname=haskell-network
+pkgver=2.3.0.2
+pkgrel=2
+pkgdesc="Networking-related facilities"
+url="http://hackage.haskell.org/package/network"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh 'haskell-parsec=3.1.1-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('a739fe9b75af744cfa1c05e39d41ac1f')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-network/haskell-network.install b/testing/haskell-network/haskell-network.install
new file mode 100644
index 000000000..a56c31d0a
--- /dev/null
+++ b/testing/haskell-network/haskell-network.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-network
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-opengl/PKGBUILD b/testing/haskell-opengl/PKGBUILD
new file mode 100644
index 000000000..a45b3f303
--- /dev/null
+++ b/testing/haskell-opengl/PKGBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=OpenGL
+pkgname=haskell-opengl
+pkgver=2.2.3.0
+pkgrel=6
+pkgdesc="A binding for the OpenGL graphics system"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+makedepends=()
+depends=('ghc=7.0.2-2' 'mesa')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('f4e3ccb471034a6a74921d4dab9dd32d')
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-opengl/haskell-opengl.install b/testing/haskell-opengl/haskell-opengl.install
new file mode 100644
index 000000000..d0f3474b3
--- /dev/null
+++ b/testing/haskell-opengl/haskell-opengl.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-opengl
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-parallel/PKGBUILD b/testing/haskell-parallel/PKGBUILD
new file mode 100644
index 000000000..1191611e8
--- /dev/null
+++ b/testing/haskell-parallel/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=parallel
+pkgname=haskell-parallel
+pkgver=3.1.0.1
+pkgrel=3
+pkgdesc="Parallel programming library"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh 'haskell-deepseq=1.1.0.2-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('591979e7897dbc09157edf73a4614957')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-parallel/haskell-parallel.install b/testing/haskell-parallel/haskell-parallel.install
new file mode 100644
index 000000000..e6ec0c449
--- /dev/null
+++ b/testing/haskell-parallel/haskell-parallel.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-parallel
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-parsec/PKGBUILD b/testing/haskell-parsec/PKGBUILD
new file mode 100644
index 000000000..516621979
--- /dev/null
+++ b/testing/haskell-parsec/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# As generated by cabal2arch 0.7.6
+_hkgname=parsec
+pkgname=haskell-parsec
+pkgver=3.1.1
+pkgrel=2
+pkgdesc="Monadic parser combinators"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh 'haskell-mtl=2.0.1.0-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('3d5500847cac09f6f658db825b6c5df8')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/testing/haskell-parsec/haskell-parsec.install b/testing/haskell-parsec/haskell-parsec.install
new file mode 100644
index 000000000..dfa0701b9
--- /dev/null
+++ b/testing/haskell-parsec/haskell-parsec.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-parsec
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-platform/PKGBUILD b/testing/haskell-platform/PKGBUILD
new file mode 100644
index 000000000..0b6c908d2
--- /dev/null
+++ b/testing/haskell-platform/PKGBUILD
@@ -0,0 +1,40 @@
+# Maintainer: Vesa Kaihlavirta <vegai@iki.fi>
+pkgname=haskell-platform
+pkgver=2011.2.0.0
+pkgrel=3
+pkgdesc="The Haskell Platform"
+url="http://hackage.haskell.org/platform/"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2-2'
+ 'haskell-glut=2.1.2.1-6'
+ 'haskell-http=4000.1.1-3'
+ 'haskell-hunit=1.2.2.3-2'
+ 'haskell-opengl=2.2.3.0-6'
+ 'haskell-quickcheck=2.4.0.1-3'
+ 'haskell-cgi=3001.1.7.4-3'
+ 'haskell-deepseq=1.1.0.2-2'
+ 'haskell-fgl=5.4.2.3-4'
+ 'haskell-haskell-src=1.0.1.4-2'
+ 'haskell-html=1.0.1.2-9'
+ 'haskell-mtl=2.0.1.0-2'
+ 'haskell-network=2.3.0.2-2'
+ 'haskell-parallel=3.1.0.1-3'
+ 'haskell-parsec=3.1.1-2'
+ 'haskell-regex-base=0.93.2-4'
+ 'haskell-regex-compat=0.93.1-4'
+ 'haskell-regex-posix=0.94.4-2'
+ 'haskell-stm=2.2.0.1-2'
+ 'haskell-syb=0.3-2'
+ 'haskell-text=0.11.0.5-2'
+ 'haskell-transformers=0.2.2.0-2'
+ 'haskell-xhtml=3000.2.0.1-7'
+ 'haskell-zlib=0.5.3.1-2'
+ 'cabal-install=0.10.2'
+ 'alex=2.3.5'
+ 'happy=1.18.6'
+ 'haddock=2.9.2')
+
+build() {
+ return 0
+}
diff --git a/testing/haskell-quickcheck/PKGBUILD b/testing/haskell-quickcheck/PKGBUILD
new file mode 100644
index 000000000..3da28a0cb
--- /dev/null
+++ b/testing/haskell-quickcheck/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.5
+_hkgname=QuickCheck
+pkgname=haskell-quickcheck
+pkgver=2.4.0.1
+pkgrel=3
+pkgdesc="Automatic testing of Haskell programs"
+url="http://hackage.haskell.org/package/QuickCheck"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 haskell-mtl=2.0.1.0-2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('e8c86e95fd1fa4c58fc8e53e2853db5e')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-quickcheck/haskell-quickcheck.install b/testing/haskell-quickcheck/haskell-quickcheck.install
new file mode 100644
index 000000000..c9e12fadc
--- /dev/null
+++ b/testing/haskell-quickcheck/haskell-quickcheck.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-quickcheck
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-regex-base/PKGBUILD b/testing/haskell-regex-base/PKGBUILD
new file mode 100644
index 000000000..a28c3daa0
--- /dev/null
+++ b/testing/haskell-regex-base/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=regex-base
+pkgname=haskell-regex-base
+pkgver=0.93.2
+pkgrel=4
+pkgdesc="Interface API for regex-posix,pcre,parsec,tdfa,dfa"
+url="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/regex-base"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh 'haskell-mtl=2.0.1.0-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('e7b93b0b17eff8d3068ecb2f5d5f6ea3')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-regex-base/haskell-regex-base.install b/testing/haskell-regex-base/haskell-regex-base.install
new file mode 100644
index 000000000..3ad2fea28
--- /dev/null
+++ b/testing/haskell-regex-base/haskell-regex-base.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-regex-base
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-regex-compat/PKGBUILD b/testing/haskell-regex-compat/PKGBUILD
new file mode 100644
index 000000000..b0778ac42
--- /dev/null
+++ b/testing/haskell-regex-compat/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=regex-compat
+pkgname=haskell-regex-compat
+pkgver=0.93.1
+pkgrel=4
+pkgdesc="Replaces and enhances Text.Regex"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh 'haskell-regex-base=0.93.2-4' 'haskell-regex-posix=0.94.4-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('d6becec95ea8098cab663116fdce60a5')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-regex-compat/haskell-regex-compat.install b/testing/haskell-regex-compat/haskell-regex-compat.install
new file mode 100644
index 000000000..898c0bba1
--- /dev/null
+++ b/testing/haskell-regex-compat/haskell-regex-compat.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-regex-compat
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-regex-posix/PKGBUILD b/testing/haskell-regex-posix/PKGBUILD
new file mode 100644
index 000000000..69f3773d6
--- /dev/null
+++ b/testing/haskell-regex-posix/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=regex-posix
+pkgname=haskell-regex-posix
+pkgver=0.94.4
+pkgrel=2
+pkgdesc="The posix regex backend for regex-base"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh 'haskell-regex-base=0.93.2-4')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('c28a13e8329e93a19bbb51708bf64abb')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-regex-posix/haskell-regex-posix.install b/testing/haskell-regex-posix/haskell-regex-posix.install
new file mode 100644
index 000000000..2b89fae7b
--- /dev/null
+++ b/testing/haskell-regex-posix/haskell-regex-posix.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-regex-posix
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-stm/PKGBUILD b/testing/haskell-stm/PKGBUILD
new file mode 100644
index 000000000..5f3a97ed7
--- /dev/null
+++ b/testing/haskell-stm/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.5
+_hkgname=stm
+pkgname=haskell-stm
+pkgver=2.2.0.1
+pkgrel=2
+pkgdesc="A modular composable concurrency abstraction."
+url="http://hackage.haskell.org/package/stm"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('b1cf03ed315e00c33160746feeee8682')
+
+build() {
+ cd ${srcdir}/${_hkgname}-$pkgver
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-$pkgver
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-stm/haskell-stm.install b/testing/haskell-stm/haskell-stm.install
new file mode 100644
index 000000000..0283c2fc5
--- /dev/null
+++ b/testing/haskell-stm/haskell-stm.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-stm
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-syb/PKGBUILD b/testing/haskell-syb/PKGBUILD
new file mode 100644
index 000000000..f90006a56
--- /dev/null
+++ b/testing/haskell-syb/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=syb
+pkgname=haskell-syb
+pkgver=0.3
+pkgrel=2
+pkgdesc="A library for client-side HTTP"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2-2' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('c4f6771fa32d467a029e6e813757a9fe')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr --docdir=/usr/share/doc/${pkgname}
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/testing/haskell-syb/haskell-syb.install b/testing/haskell-syb/haskell-syb.install
new file mode 100644
index 000000000..080055165
--- /dev/null
+++ b/testing/haskell-syb/haskell-syb.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-syb
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-text/PKGBUILD b/testing/haskell-text/PKGBUILD
new file mode 100644
index 000000000..e60891918
--- /dev/null
+++ b/testing/haskell-text/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+_hkgname=text
+pkgname=haskell-text
+pkgver=0.11.0.5
+pkgrel=2
+pkgdesc="An efficient packed Unicode text type."
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=('ghc=7.0.2-2' sh 'haskell-deepseq=1.1.0.2-2')
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('516a6813a6b9061fabdc9f0c3bbb1592')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
+
diff --git a/testing/haskell-text/haskell-text.install b/testing/haskell-text/haskell-text.install
new file mode 100644
index 000000000..620db3921
--- /dev/null
+++ b/testing/haskell-text/haskell-text.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-text
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-transformers/PKGBUILD b/testing/haskell-transformers/PKGBUILD
new file mode 100644
index 000000000..c14b2eecc
--- /dev/null
+++ b/testing/haskell-transformers/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Rémy Oudompheng <remy@archlinux.org>
+# $Id: PKGBUILD 115140 2011-03-17 09:11:21Z vesa $
+
+_hkgname=transformers
+pkgname=haskell-transformers
+pkgver=0.2.2.0
+pkgrel=2
+pkgdesc="Concrete functor and monad transformers"
+url="http://hackage.haskell.org/package/${_hkgname}"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('3470ac66116900cd1ba84d3744474e49')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-transformers/haskell-transformers.install b/testing/haskell-transformers/haskell-transformers.install
new file mode 100644
index 000000000..eec2af6e1
--- /dev/null
+++ b/testing/haskell-transformers/haskell-transformers.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-transformers
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-xhtml/PKGBUILD b/testing/haskell-xhtml/PKGBUILD
new file mode 100644
index 000000000..63abbbb64
--- /dev/null
+++ b/testing/haskell-xhtml/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package generated by cabal2arch 0.7.6
+_hkgname=xhtml
+pkgname=haskell-xhtml
+pkgver=3000.2.0.1
+pkgrel=7
+pkgdesc="Combinators for producing XHTML 1.0, including the Strict, Transitional and Frameset variants."
+url="http://hackage.haskell.org/package/xhtml"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/$pkgver/${_hkgname}-$pkgver.tar.gz)
+install=${pkgname}.install
+md5sums=('9e3e7d9c66618c5e29716f90e54363c9')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared --prefix=/usr \
+ --docdir=/usr/share/doc/${pkgname} --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-xhtml/haskell-xhtml.install b/testing/haskell-xhtml/haskell-xhtml.install
new file mode 100644
index 000000000..d03b8a053
--- /dev/null
+++ b/testing/haskell-xhtml/haskell-xhtml.install
@@ -0,0 +1,19 @@
+HS_DIR=usr/share/haskell/haskell-xhtml
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh &> /dev/null
+ exit 0
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/haskell-zlib/PKGBUILD b/testing/haskell-zlib/PKGBUILD
new file mode 100644
index 000000000..7aca7312b
--- /dev/null
+++ b/testing/haskell-zlib/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
+# Package originally generated by cabal2arch 0.7.6
+_hkgname=zlib
+pkgname=haskell-zlib
+pkgver=0.5.3.1
+pkgrel=2
+pkgdesc="Compression and decompression in the gzip and zlib formats"
+url="http://hackage.haskell.org/package/zlib"
+license=('custom:BSD3')
+arch=('i686' 'x86_64')
+depends=(ghc=7.0.2-2 'zlib' sh)
+options=('strip')
+source=(http://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz)
+install=${pkgname}.install
+md5sums=('8fb2988b112e38d04a527b892f770507')
+
+build() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ runhaskell Setup configure -O -p --enable-split-objs --enable-shared \
+ --prefix=/usr --docdir=/usr/share/doc/${pkgname} \
+ --libsubdir=\$compiler/site-local/\$pkgid
+ runhaskell Setup build
+ runhaskell Setup haddock
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+ cd ${srcdir}/${_hkgname}-${pkgver}
+ install -D -m744 register.sh ${pkgdir}/usr/share/haskell/${pkgname}/register.sh
+ install -m744 unregister.sh ${pkgdir}/usr/share/haskell/${pkgname}/unregister.sh
+ install -d -m755 ${pkgdir}/usr/share/doc/ghc/html/libraries
+ ln -s /usr/share/doc/${pkgname}/html ${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}
+ runhaskell Setup copy --destdir=${pkgdir}
+ install -D -m644 LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+ rm -f ${pkgdir}/usr/share/doc/${pkgname}/LICENSE
+}
diff --git a/testing/haskell-zlib/haskell-zlib.install b/testing/haskell-zlib/haskell-zlib.install
new file mode 100644
index 000000000..d387b7b65
--- /dev/null
+++ b/testing/haskell-zlib/haskell-zlib.install
@@ -0,0 +1,18 @@
+HS_DIR=usr/share/haskell/haskell-zlib
+post_install() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_upgrade() {
+ ${HS_DIR}/unregister.sh
+}
+post_upgrade() {
+ ${HS_DIR}/register.sh
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
+pre_remove() {
+ ${HS_DIR}/unregister.sh
+}
+post_remove() {
+ (cd usr/share/doc/ghc/html/libraries; ./gen_contents_index)
+}
diff --git a/testing/isl/PKGBUILD b/testing/isl/PKGBUILD
new file mode 100644
index 000000000..5cd8c8dfa
--- /dev/null
+++ b/testing/isl/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 106792 2011-01-19 09:34:43Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+pkgname=isl
+pkgver=0.05.1
+pkgrel=1
+pkgdesc="Library for manipulating sets and relations of integer points bounded by linear constraints"
+arch=('i686' 'x86_64')
+url="http://www.kotnet.org/~skimo/isl/"
+license=('LGPL2.1')
+options=('!libtool')
+source=(http://www.kotnet.org/~skimo/isl/$pkgname-$pkgver.tar.bz2)
+md5sums=('8ef8f307d3f042434e358ddf3320dcad')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ ./configure --prefix=/usr
+ make
+ make check
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/testing/libdrm/COPYING b/testing/libdrm/COPYING
new file mode 100644
index 000000000..6e74c337c
--- /dev/null
+++ b/testing/libdrm/COPYING
@@ -0,0 +1,48 @@
+ Copyright 2005 Adam Jackson.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation on the rights to use, copy, modify, merge,
+ publish, distribute, sub license, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NON-INFRINGEMENT. IN NO EVENT SHALL ADAM JACKSON BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+------------------------------------------------------------------------
+
+ Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice (including the
+ next paragraph) shall be included in all copies or substantial
+ portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS
+ SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
diff --git a/testing/libdrm/PKGBUILD b/testing/libdrm/PKGBUILD
new file mode 100644
index 000000000..0b36edde7
--- /dev/null
+++ b/testing/libdrm/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 115092 2011-03-16 19:52:27Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libdrm
+pkgver=2.4.24
+pkgrel=1
+pkgdesc="Userspace interface to kernel DRM services"
+arch=(i686 x86_64)
+license=('custom')
+depends=('glibc')
+options=('!libtool')
+url="http://dri.freedesktop.org/"
+source=(http://dri.freedesktop.org/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ no-pthread-stubs.patch
+ COPYING)
+md5sums=('8d802bf3b368f9fac0d7d17516a9436f'
+ '9b5ec3bbebe86921e2057694c42f65b8'
+ 'ba65e71c481b94ef0fb6c23c7f21ffa1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/no-pthread-stubs.patch"
+
+# libtoolize --force
+ autoreconf --force --install
+ ./configure --prefix=/usr \
+ --enable-udev \
+ --enable-intel \
+ --enable-radeon \
+ --enable-vmwgfx-experimental-api \
+ --enable-nouveau-experimental-api
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/COPYING" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/libdrm/no-pthread-stubs.patch b/testing/libdrm/no-pthread-stubs.patch
new file mode 100644
index 000000000..6602f8785
--- /dev/null
+++ b/testing/libdrm/no-pthread-stubs.patch
@@ -0,0 +1,65 @@
+diff -ru libdrm-2.4.0/configure.ac libdrm-2.4.0-nostubs/configure.ac
+--- libdrm-2.4.0/configure.ac 2008-10-09 21:57:09.000000000 +0200
++++ libdrm-2.4.0-nostubs/configure.ac 2008-10-21 10:48:24.000000000 +0200
+@@ -32,10 +32,6 @@
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+
+-PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
+-AC_SUBST(PTHREADSTUBS_CFLAGS)
+-AC_SUBST(PTHREADSTUBS_LIBS)
+-
+ pkgconfigdir=${libdir}/pkgconfig
+ AC_SUBST(pkgconfigdir)
+ AC_ARG_ENABLE(udev, AS_HELP_STRING([--enable-udev],
+--- libdrm-2.4.16/intel/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/intel/Makefile.am.new 2009-12-07 08:11:32.235748069 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/intel \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_intel_la_LTLIBRARIES = libdrm_intel.la
+ libdrm_intel_ladir = $(libdir)
+ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_intel_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @CLOCK_LIB@
++libdrm_intel_la_LIBADD = ../libdrm.la @CLOCK_LIB@
+
+ libdrm_intel_la_SOURCES = \
+ intel_atomic.h \
+--- libdrm-2.4.16/radeon/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/radeon/Makefile.am.new 2009-12-07 08:12:31.889075388 +0000
+@@ -26,13 +26,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/radeon \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
+ libdrm_radeon_ladir = $(libdir)
+ libdrm_radeon_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_radeon_la_LIBADD = ../libdrm.la
+
+ libdrm_radeon_la_SOURCES = \
+ radeon_bo_gem.c \
+--- libdrm-2.4.16/nouveau/Makefile.am 2009-11-20 23:54:36.000000000 +0000
++++ libdrm-2.4.16/nouveau/Makefile.am.new 2009-12-07 08:13:01.489072320 +0000
+@@ -2,13 +2,12 @@
+ $(WARN_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/nouveau \
+- $(PTHREADSTUBS_CFLAGS) \
+ -I$(top_srcdir)/include/drm
+
+ libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
+ libdrm_nouveau_ladir = $(libdir)
+ libdrm_nouveau_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
++libdrm_nouveau_la_LIBADD = ../libdrm.la
+
+ libdrm_nouveau_la_SOURCES = \
+ nouveau_device.c \
diff --git a/testing/libgcrypt/PKGBUILD b/testing/libgcrypt/PKGBUILD
new file mode 100644
index 000000000..c55847667
--- /dev/null
+++ b/testing/libgcrypt/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 117849 2011-04-04 18:49:54Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=libgcrypt
+pkgver=1.4.6
+pkgrel=2
+pkgdesc="a general purpose crypto library based on the code used"
+arch=(i686 x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('libgpg-error>=1.9')
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgcrypt/${pkgname}-${pkgver}.tar.bz2
+)
+md5sums=('dbf99425a4fe9217c84ce3a35d938634')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr \
+ --disable-static \
+ --disable-padlock-support
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Move dynamic libraries to /lib
+ install -d -m755 "${pkgdir}"/lib/
+ mv "${pkgdir}"/usr/lib/libgcrypt.so* "${pkgdir}"/lib/
+ ln -sf /lib/libgcrypt.so "${pkgdir}"/usr/lib/libgcrypt.so
+}
diff --git a/testing/libgcrypt/libgcrypt.install b/testing/libgcrypt/libgcrypt.install
new file mode 100644
index 000000000..83e0dcb27
--- /dev/null
+++ b/testing/libgcrypt/libgcrypt.install
@@ -0,0 +1,20 @@
+infodir=/usr/share/info
+filelist=(gcrypt.info.gz)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ 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
+ install-info --delete $infodir/$file $infodir/dir 2> /dev/null
+ done
+}
diff --git a/testing/libgpg-error/PKGBUILD b/testing/libgpg-error/PKGBUILD
new file mode 100644
index 000000000..cbc32f7b5
--- /dev/null
+++ b/testing/libgpg-error/PKGBUILD
@@ -0,0 +1,37 @@
+# $Id: PKGBUILD 117845 2011-04-04 18:42:53Z andyrtr $
+# Maintainer: judd <jvinet@zeroflux.org>
+
+pkgname=libgpg-error
+pkgver=1.9
+pkgrel=3
+pkgdesc="Support library for libgcrypt"
+arch=(i686 x86_64)
+url="http://www.gnupg.org"
+license=('LGPL')
+depends=('glibc' 'sh')
+options=(!libtool)
+source=(ftp://ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2)
+ #ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/libgpg-error/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('521b98aa9395e7eaf0ef2236233a0796')
+
+
+build() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd "${srcdir}"/${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}/" install
+
+ # Move dynamic libraries to /lib
+ install -d -m755 "${pkgdir}"/lib/
+ mv "${pkgdir}"/usr/lib/libgpg-error.so* "${pkgdir}"/lib/
+ ln -sf /lib/libgpg-error.so "${pkgdir}"/usr/lib/libgpg-error.so
+}
diff --git a/testing/libtool/PKGBUILD b/testing/libtool/PKGBUILD
new file mode 100644
index 000000000..44e629e1e
--- /dev/null
+++ b/testing/libtool/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 116987 2011-03-27 06:40:02Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+# NOTE: requires rebuilt with each new gcc version
+
+pkgname=libtool
+pkgver=2.4
+pkgrel=3
+pkgdesc="A generic library support script"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libtool"
+license=('GPL')
+depends=('sh' 'tar' 'texinfo')
+groups=('base-devel')
+options=('!libtool')
+install=libtool.install
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.xz)
+md5sums=('4e6144439d95d7332dc50ace6dd24c55')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/libtool/libtool.install b/testing/libtool/libtool.install
new file mode 100644
index 000000000..424c8cb88
--- /dev/null
+++ b/testing/libtool/libtool.install
@@ -0,0 +1,22 @@
+infodir=/usr/share/info
+filelist=(libtool.info libtool.info-1 libtool.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
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/testing/libx11/PKGBUILD b/testing/libx11/PKGBUILD
new file mode 100644
index 000000000..dcb20d9e6
--- /dev/null
+++ b/testing/libx11/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 117498 2011-04-04 08:36:52Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libx11
+pkgver=1.4.2
+pkgrel=2
+pkgdesc="X11 client-side library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+depends=('libxcb' 'xproto' 'kbproto')
+makedepends=('xorg-util-macros' 'xextproto' 'xtrans' 'inputproto')
+options=('!libtool')
+license=('custom')
+source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2
+ add-define-XK_SINHALA.patch
+ xorg.sh)
+sha1sums=('c93fc44dcc028319bee76f3e629ec43cfce42673'
+ '4f5ccff733042a6ea0fe41082903c332336a173c'
+ '4b756387426afb2a5bb7a155631ec42348abf5c1')
+
+build() {
+ cd "${srcdir}/libX11-${pkgver}"
+ patch -Np1 -i "${srcdir}/add-define-XK_SINHALA.patch"
+ ./configure --prefix=/usr --disable-static --disable-xf86bigfont
+ make
+ make check
+}
+
+package() {
+ cd "${srcdir}/libX11-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/profile.d"
+ install -m755 "${srcdir}/xorg.sh" "${pkgdir}/etc/profile.d/"
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/libx11/add-define-XK_SINHALA.patch b/testing/libx11/add-define-XK_SINHALA.patch
new file mode 100644
index 000000000..93a9f1f44
--- /dev/null
+++ b/testing/libx11/add-define-XK_SINHALA.patch
@@ -0,0 +1,25 @@
+From 25eb76b3d2726f2f1de759901971ae53b2539dc4 Mon Sep 17 00:00:00 2001
+From: Harshula Jayasuriya <harshula@gmail.com>
+Date: Mon, 21 Mar 2011 14:49:37 +0000
+Subject: Add #define XK_SINHALA
+
+Add #define XK_SINHALA so that the Sinhala keysyms can be used by
+the lk xkb keymap.
+
+Signed-off-by: Harshula Jayasuriya <harshula@gmail.com>
+Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+---
+diff --git a/src/KeyBind.c b/src/KeyBind.c
+index ac25ce2..221cedd 100644
+--- a/src/KeyBind.c
++++ b/src/KeyBind.c
+@@ -44,6 +44,7 @@ in this Software without prior written authorization from The Open Group.
+ #define XK_CAUCASUS
+ #define XK_VIETNAMESE
+ #define XK_XKB_KEYS
++#define XK_SINHALA
+ #include <X11/keysymdef.h>
+ #include <stdio.h>
+
+--
+cgit v0.8.3-6-g21f6
diff --git a/testing/libx11/xorg.sh b/testing/libx11/xorg.sh
new file mode 100644
index 000000000..e1de6866c
--- /dev/null
+++ b/testing/libx11/xorg.sh
@@ -0,0 +1,15 @@
+export XDG_DATA_HOME=$HOME/.local/share
+export XDG_CONFIG_HOME=$HOME/.config
+export XDG_CACHE_HOME=$HOME/.cache
+
+if [ -z $XDG_DATA_DIRS ]; then
+ export XDG_DATA_DIRS=/usr/share/:/usr/local/share/
+else
+ export XDG_DATA_DIRS=/usr/share/:/usr/local/share/:$XDG_DATA_DIRS
+fi
+
+if [ -z $XDG_CONFIG_DIRS ]; then
+ export XDG_CONFIG_DIRS=/etc/xdg
+else
+ export XDG_CONFIG_DIRS=/etc/xdg:$XDG_CONFIG_DIRS
+fi
diff --git a/testing/linux-api-headers/PKGBUILD b/testing/linux-api-headers/PKGBUILD
new file mode 100644
index 000000000..9dc5fb1f7
--- /dev/null
+++ b/testing/linux-api-headers/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 116973 2011-03-27 06:05:36Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+
+# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
+
+pkgname=linux-api-headers
+pkgver=2.6.38.1
+_basever=2.6.38
+pkgrel=1
+pkgdesc="Kernel headers sanitized for use in userspace"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/libc"
+license=('GPL2')
+provides=("kernel-headers=${pkgver}")
+conflicts=('kernel-headers')
+replaces=('kernel-headers')
+source=(http://www.kernel.org/pub/linux/kernel/v2.6/linux-${_basever}.tar.bz2
+ http://www.kernel.org/pub/linux/kernel/v2.6/patch-${pkgver}.bz2)
+md5sums=('7d471477bfa67546f902da62227fa976'
+ 'bd2be4d0465345e4e9355d6773f5f6fe')
+
+build() {
+ cd ${srcdir}/linux-${_basever}
+ [[ $pkgver != $_basever ]] && patch -Np1 -i ${srcdir}/patch-${pkgver}
+
+ make mrproper
+ make headers_check
+}
+
+package() {
+ cd ${srcdir}/linux-${_basever}
+ make INSTALL_HDR_PATH=${pkgdir}/usr headers_install
+
+ # use headers from libdrm
+ rm -rf ${pkgdir}/usr/include/drm
+
+ # clean-up unnecessary files generated during install
+ find ${pkgdir} -name .install -or -name ..install.cmd | xargs rm -f
+}
diff --git a/testing/lirc/PKGBUILD b/testing/lirc/PKGBUILD
new file mode 100644
index 000000000..1044223f1
--- /dev/null
+++ b/testing/lirc/PKGBUILD
@@ -0,0 +1,89 @@
+# $Id: PKGBUILD 117645 2011-04-04 14:50:26Z jgc $
+# Maintainer: Paul Mattal <paul@archlinux.org>
+
+pkgbase=lirc
+pkgname=('lirc' 'lirc-utils')
+pkgver=0.9.0
+pkgrel=2
+_kernver=2.6.38-ARCH
+arch=('i686' 'x86_64')
+url="http://www.lirc.org/"
+license=('GPL')
+makedepends=('help2man' 'kernel26-headers>=2.6.38' 'kernel26-headers<2.6.39' 'alsa-lib' 'libx11' 'libftdi' 'libirman' 'python')
+options=('!makeflags' '!strip')
+source=(http://prdownloads.sourceforge.net/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2
+ lircd lircmd lirc.logrotate lircd.conf irexec.conf irexecd)
+md5sums=('b232aef26f23fe33ea8305d276637086'
+ '8d0e238dc0eda95e340fe570605da492'
+ '85f7fdac55e5256967241864049bf5e9'
+ '3deb02604b37811d41816e9b4385fcc3'
+ '5b1f8c9cd788a39a6283f93302ce5c6e'
+ 'f0c0ac930326168035f0c8e24357ae55'
+ '69d099e6deedfa3c1ee2b6e82d9b8bfb')
+
+build() {
+ cd "${srcdir}/lirc-${pkgver}"
+
+ sed -i '/AC_PATH_XTRA/d' configure.ac
+ sed -e 's/@X_CFLAGS@//g' \
+ -e 's/@X_LIBS@//g' \
+ -e 's/@X_PRE_LIBS@//g' \
+ -e 's/@X_EXTRA_LIBS@//g' -i Makefile.am tools/Makefile.am
+ libtoolize
+ autoreconf
+
+ PYTHON=python2 ./configure --enable-sandboxed --prefix=/usr \
+ --with-driver=all --with-kerneldir=/usr/src/linux-${_kernver}/ \
+ --with-moduledir=/lib/modules/${_kernver}/kernel/drivers/misc \
+ --with-transmitter
+
+ # Remove drivers already in kernel
+ sed -e "s:lirc_dev::" -e "s:lirc_bt829::" -e "s:lirc_igorplugusb::" \
+ -e "s:lirc_imon::" -e "s:lirc_parallel::" -e "s:lirc_sasem::" \
+ -e "s:lirc_serial::" -e "s:lirc_sir::" -e "s:lirc_ttusbir::" \
+ -i Makefile drivers/Makefile drivers/*/Makefile tools/Makefile
+ make
+}
+
+package_lirc() {
+ pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
+ depends=('lirc-utils' 'kernel26>=2.6.38' 'kernel26<2.6.39')
+ replaces=('lirc+pctv')
+ install=lirc.install
+
+ cd "${srcdir}/lirc-${pkgver}/drivers"
+ make DESTDIR="${pkgdir}" install
+
+ # set the kernel we've built for inside the install script
+ sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" "${startdir}/lirc.install"
+ # gzip -9 modules
+ find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;
+}
+
+package_lirc-utils() {
+ pkgdesc="Linux Infrared Remote Control utils"
+ depends=('alsa-lib' 'libx11' 'libftdi' 'libirman')
+ optdepends=('python2: pronto2lirc utility')
+ options=('strip' '!libtool')
+
+ cd "${srcdir}/lirc-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -d "${pkgdir}/usr/share/lirc" "${pkgdir}/etc/rc.d"
+ cp "${srcdir}"/{lircd,lircmd,irexecd} "${pkgdir}/etc/rc.d"
+ cp -rp remotes "${pkgdir}/usr/share/lirc"
+ chmod -R go-w "${pkgdir}/usr/share/lirc/"
+
+ # install the logrotate config
+ install -Dm644 "${srcdir}/lirc.logrotate" "${pkgdir}/etc/logrotate.d/lirc"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/lircd.conf" "${pkgdir}/etc/conf.d/lircd.conf"
+
+ # install conf.d file
+ install -Dm644 "${srcdir}/irexec.conf" "${pkgdir}/etc/conf.d/irexec.conf"
+
+ install -d "${pkgdir}/etc/lirc"
+
+ # remove built modules
+ rm -r "${pkgdir}/lib/"
+}
diff --git a/testing/lirc/irexec.conf b/testing/lirc/irexec.conf
new file mode 100644
index 000000000..f911c7515
--- /dev/null
+++ b/testing/lirc/irexec.conf
@@ -0,0 +1,5 @@
+#
+# Parameters for irexec daemon (path to lircrc)
+#
+
+IREXEC_OPTS="" \ No newline at end of file
diff --git a/testing/lirc/irexecd b/testing/lirc/irexecd
new file mode 100755
index 000000000..a64b033a5
--- /dev/null
+++ b/testing/lirc/irexecd
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/irexec.conf
+
+PID=`pidof -o %PPID /usr/bin/irexec`
+case "$1" in
+ start)
+ stat_busy "Starting IREXEC Daemon"
+ [ -z "$PID" ] && /usr/bin/irexec --daemon $IREXEC_OPTS
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon irexecd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping IREXEC Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon irexecd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
+
diff --git a/testing/lirc/lirc.install b/testing/lirc/lirc.install
new file mode 100644
index 000000000..61151ecf5
--- /dev/null
+++ b/testing/lirc/lirc.install
@@ -0,0 +1,16 @@
+KERNEL_VERSION=2.6.38-ARCH
+
+post_install() {
+ # updating module dependencies
+ echo ">>> Updating module dependencies. Please wait ..."
+ depmod $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_upgrade() {
+ post_install
+}
+
+# arg 1: the old package version
+post_remove() {
+ post_install
+}
diff --git a/testing/lirc/lirc.logrotate b/testing/lirc/lirc.logrotate
new file mode 100644
index 000000000..623c4f328
--- /dev/null
+++ b/testing/lirc/lirc.logrotate
@@ -0,0 +1,5 @@
+/var/log/lircd {
+ missingok
+ notifempty
+ delaycompress
+}
diff --git a/testing/lirc/lircd b/testing/lirc/lircd
new file mode 100755
index 000000000..e9739b36e
--- /dev/null
+++ b/testing/lirc/lircd
@@ -0,0 +1,52 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/lircd.conf
+
+PID=$(pidof -o %PPID /usr/sbin/lircd)
+LIRCD_SYMLINKFILE=/dev/lircd
+LIRCD_SOCKET=/var/run/lirc/lircd
+case "$1" in
+ start)
+ stat_busy "Starting LIRC Daemon"
+ [ ! -d /var/run/lirc ] && install -d /var/run/lirc &>/dev/null
+ rm -f $LIRCD_SOCKET && ln -s $LIRCD_SOCKET $LIRCD_SYMLINKFILE
+ if [ $? -ne 0 ]; then
+ stat_fail
+ exit 0
+ fi
+ [ -n "$LIRC_DRIVER" ] && LIRC_EXTRAOPTS="-H $LIRC_DRIVER $LIRC_EXTRAOPTS"
+ [ -z "$PID" ] &&
+ if [ -n "$LIRC_DEVICE" ] ; then
+ eval /usr/sbin/lircd -d "$LIRC_DEVICE" $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ else
+ /usr/sbin/lircd $LIRC_EXTRAOPTS $LIRC_CONFIGFILE
+ fi
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping LIRC Daemon"
+ rm -f $LIRCD_SYMLINKFILE
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 start|stop|restart"
+esac
+exit 0
diff --git a/testing/lirc/lircd.conf b/testing/lirc/lircd.conf
new file mode 100644
index 000000000..760dab065
--- /dev/null
+++ b/testing/lirc/lircd.conf
@@ -0,0 +1,8 @@
+#
+# Parameters for lirc daemon
+#
+
+LIRC_DEVICE="/dev/lirc0"
+LIRC_DRIVER=""
+LIRC_EXTRAOPTS=""
+LIRC_CONFIGFILE=""
diff --git a/testing/lirc/lircmd b/testing/lirc/lircmd
new file mode 100755
index 000000000..220c47c9c
--- /dev/null
+++ b/testing/lirc/lircmd
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/lircmd`
+case "$1" in
+ start)
+ stat_busy "Starting lircmd Daemon"
+ [ -z "$PID" ] && /usr/sbin/lircmd
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon lircmd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping lircmd Daemon"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon lircmd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/madwifi/PKGBUILD b/testing/madwifi/PKGBUILD
new file mode 100644
index 000000000..1c1d9e484
--- /dev/null
+++ b/testing/madwifi/PKGBUILD
@@ -0,0 +1,46 @@
+# $Id: PKGBUILD 115939 2011-03-22 14:09:32Z tpowa $
+# Originally by kleptophobiac <kleptophobiac@gmail.com>
+# Modified by James Rayner for the repositories <iphitus@gmail.com>
+
+_kernver=2.6.38-ARCH
+
+pkgname=madwifi
+pkgver=0.9.4.4136
+pkgrel=2
+pkgdesc="Madwifi drivers for Atheros wireless chipsets. For stock arch 2.6 kernel"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://madwifi-project.org"
+depends=('madwifi-utils' 'kernel26>=2.6.38' 'kernel26<2.6.39')
+makedepends=('kernel26-headers>=2.6.38' 'kernel26-headers<2.6.39')
+makedepends=('sharutils')
+install=madwifi-ng.install
+# subversion source: svn checkout http:/madwifi-project.org/svn/madwifi/trunk madwifi
+source=(ftp://ftp.archlinux.org/other/madwifi/madwifi-${pkgver}.tar.bz2
+ #http://downloads.sourceforge.net/madwifi/madwifi-${pkgver}.tar.gz
+ )
+options=(!strip)
+
+build() {
+ [ "${CARCH}" = "i686" ] && export ARCH=i386
+
+ #cd $startdir/src/$pkgname-$pkgver
+ cd $startdir/src/$pkgname
+ sed -i -e 's/-Werror//g' Makefile.inc
+ make KERNELPATH=/lib/modules/$_kernver/build KERNELRELEASE=$_kernver modules
+}
+
+package() {
+ cd $startdir/src/$pkgname
+ make KERNELPATH=/lib/modules/$_kernver/build KERNELRELEASE=$_kernver modules \
+ DESTDIR=$startdir/pkg KERNELRELEASE=$_kernver install-modules
+ sed -i -e "s/KERNEL_VERSION='.*'/KERNEL_VERSION='${_kernver}'/" $startdir/*.install
+
+ # install to wireless kernel directory
+ mkdir -p $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/madwifi
+ mv $startdir/pkg/lib/modules/$_kernver/net/* $startdir/pkg/lib/modules/$_kernver/kernel/drivers/net/wireless/madwifi
+ rm -r $startdir/pkg/lib/modules/$_kernver/net/
+ # gzip -9 modules
+ find "$pkgdir" -name '*.ko' -exec gzip -9 {} \;
+}
+md5sums=('f705acf5597ebe070efeaeb6c330748f')
diff --git a/testing/madwifi/kernel-2.6.30.patch b/testing/madwifi/kernel-2.6.30.patch
new file mode 100644
index 000000000..f844668de
--- /dev/null
+++ b/testing/madwifi/kernel-2.6.30.patch
@@ -0,0 +1,14 @@
+--- ath/if_athvar.h~ 2009-06-13 09:38:53.000000000 +0200
++++ ath/if_athvar.h 2009-06-13 09:38:53.000000000 +0200
+@@ -103,11 +103,6 @@
+ /*
+ * Guess how the interrupt handler should work.
+ */
+-#if !defined(IRQ_NONE)
+-typedef void irqreturn_t;
+-#define IRQ_NONE
+-#define IRQ_HANDLED
+-#endif /* !defined(IRQ_NONE) */
+
+ #ifndef SET_MODULE_OWNER
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
diff --git a/testing/madwifi/madwifi-ng.install b/testing/madwifi/madwifi-ng.install
new file mode 100644
index 000000000..8681b53ed
--- /dev/null
+++ b/testing/madwifi/madwifi-ng.install
@@ -0,0 +1,14 @@
+post_install() {
+ KERNEL_VERSION='2.6.38-ARCH'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_upgrade() {
+ KERNEL_VERSION='2.6.38-ARCH'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
+
+post_remove() {
+ KERNEL_VERSION='2.6.38-ARCH'
+ depmod -ae $KERNEL_VERSION > /dev/null 2>&1
+}
diff --git a/testing/make/PKGBUILD b/testing/make/PKGBUILD
new file mode 100644
index 000000000..bba3253fc
--- /dev/null
+++ b/testing/make/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 110342 2011-02-18 22:21:30Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=make
+pkgver=3.82
+pkgrel=3
+pkgdesc="GNU make utility to maintain groups of programs"
+arch=('i686' 'x86_64')
+url="http://www.gnu.org/software/make"
+license=('GPL3')
+groups=('base-devel')
+depends=('glibc' 'sh')
+install=$pkgname.install
+source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ bug30612.patch
+ bug30723.patch
+ make-3.82-sort-blank.patch)
+md5sums=('1a11100f3c63fcf5753818e59d63088f'
+ 'c8f496b22191f9fb9420ab14c1a19a47'
+ '662e6450e19a5acdaa5c9fcb8ad78dea'
+ '7d01a99f389d8f08dec93ed479071ee4')
+
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # http://savannah.gnu.org/bugs/?30612
+ patch -Np1 -i $srcdir/bug30612.patch
+
+ # http://savannah.gnu.org/bugs/?30723
+ patch -Np1 -i $srcdir/bug30723.patch
+
+ # https://bugs.archlinux.org/task/22733 (fix from Fedora)
+ patch -Np1 -i $srcdir/make-3.82-sort-blank.patch
+
+ ./configure --prefix=/usr
+ make
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/make/bug30612.patch b/testing/make/bug30612.patch
new file mode 100644
index 000000000..fb843bcd9
--- /dev/null
+++ b/testing/make/bug30612.patch
@@ -0,0 +1,66 @@
+diff -Naur make-3.82-orig/main.c make-3.82-fix30612//main.c
+--- make-3.82-orig/main.c 2010-07-19 17:10:53.000000000 +1000
++++ make-3.82-fix30612//main.c 2010-09-23 23:33:37.908855839 +1000
+@@ -1,3 +1,4 @@
++
+ /* Argument parsing and main program of GNU Make.
+ Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+@@ -1138,7 +1139,7 @@
+ a macro and some compilers (MSVC) don't like conditionals in macros. */
+ {
+ const char *features = "target-specific order-only second-expansion"
+- " else-if shortest-stem undefine"
++ " else-if shortest-stem undefine oneshell"
+ #ifndef NO_ARCHIVES
+ " archives"
+ #endif
+diff -Naur make-3.82-orig/read.c make-3.82-fix30612//read.c
+--- make-3.82-orig/read.c 2010-07-13 11:20:42.000000000 +1000
++++ make-3.82-fix30612//read.c 2010-09-23 23:30:58.018855839 +1000
+@@ -3028,7 +3028,7 @@
+ {
+ /* This looks like the first element in an open archive group.
+ A valid group MUST have ')' as the last character. */
+- const char *e = p + nlen;
++ const char *e = p;
+ do
+ {
+ e = next_token (e);
+@@ -3084,19 +3084,19 @@
+ Go to the next item in the string. */
+ if (flags & PARSEFS_NOGLOB)
+ {
+- NEWELT (concat (2, prefix, tp));
++ NEWELT (concat (2, prefix, tmpbuf));
+ continue;
+ }
+
+ /* If we get here we know we're doing glob expansion.
+ TP is a string in tmpbuf. NLEN is no longer used.
+ We may need to do more work: after this NAME will be set. */
+- name = tp;
++ name = tmpbuf;
+
+ /* Expand tilde if applicable. */
+- if (tp[0] == '~')
++ if (tmpbuf[0] == '~')
+ {
+- tildep = tilde_expand (tp);
++ tildep = tilde_expand (tmpbuf);
+ if (tildep != 0)
+ name = tildep;
+ }
+@@ -3152,7 +3152,11 @@
+ else
+ {
+ /* We got a chain of items. Attach them. */
+- (*newp)->next = found;
++ if (*newp)
++ (*newp)->next = found;
++ else
++ *newp = found;
++
+
+ /* Find and set the new end. Massage names if necessary. */
+ while (1)
diff --git a/testing/make/bug30723.patch b/testing/make/bug30723.patch
new file mode 100644
index 000000000..84e7ebe7a
--- /dev/null
+++ b/testing/make/bug30723.patch
@@ -0,0 +1,12 @@
+diff -Naur make-3.82-orig/main.c make-3.82-fix30723//main.c
+--- make-3.82-orig/main.c 2010-07-19 17:10:53.000000000 +1000
++++ make-3.82-fix30723//main.c 2010-09-23 23:34:10.932188592 +1000
+@@ -2093,7 +2093,7 @@
+ const char *pv = define_makeflags (1, 1);
+ char *p = alloca (sizeof ("MAKEFLAGS=") + strlen (pv) + 1);
+ sprintf (p, "MAKEFLAGS=%s", pv);
+- putenv (p);
++ putenv (allocated_variable_expand (p));
+ }
+
+ if (ISDB (DB_BASIC))
diff --git a/testing/make/make-3.82-sort-blank.patch b/testing/make/make-3.82-sort-blank.patch
new file mode 100644
index 000000000..2e73f5b7c
--- /dev/null
+++ b/testing/make/make-3.82-sort-blank.patch
@@ -0,0 +1,17 @@
+diff -urp make-3.82/function.c make-3.82-pm/function.c
+--- make-3.82/function.c 2010-07-13 03:20:39.000000000 +0200
++++ make-3.82-pm/function.c 2010-10-27 01:43:27.000000000 +0200
+@@ -1138,12 +1138,12 @@ func_sort (char *o, char **argv, const c
+ {
+ char c = *(t++);
+
+- if (! isspace ((unsigned char)c))
++ if (! isblank ((unsigned char)c))
+ continue;
+
+ ++wordi;
+
+- while (isspace ((unsigned char)*t))
++ while (isblank ((unsigned char)*t))
+ ++t;
+ }
diff --git a/testing/make/make.install b/testing/make/make.install
new file mode 100644
index 000000000..6cf8b0dc4
--- /dev/null
+++ b/testing/make/make.install
@@ -0,0 +1,20 @@
+infodir=usr/share/info
+filelist=(make.info make.info-1 make.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/testing/mdadm/PKGBUILD b/testing/mdadm/PKGBUILD
new file mode 100644
index 000000000..d6c56b553
--- /dev/null
+++ b/testing/mdadm/PKGBUILD
@@ -0,0 +1,45 @@
+# $Id: PKGBUILD 117346 2011-03-31 06:36:59Z tpowa $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+pkgname=mdadm
+pkgver=3.2.1
+pkgrel=1
+pkgdesc="A tool for managing/monitoring Linux md device arrays, also known as Software RAID"
+arch=(i686 x86_64)
+license=('GPL')
+url="http://www.cse.unsw.edu.au/~neilb/source/mdadm/"
+groups=('base')
+conflicts=('mkinitcpio<0.5.99')
+depends=('glibc')
+backup=('etc/mdadm.conf')
+source=(ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.bz2
+ mdadm
+ mdadm.conf
+ mdadm_install
+ mdadm_hook)
+install=mdadm.install
+replaces=('raidtools')
+md5sums=('d1e2549202bd79d9e99f1498d1109530'
+ '7bff0e506fb6017510c8ec4a01896952'
+ '00cbed931db4f15b6ce49e3e7d433966'
+ '865c3d39e5f5dae58388160b563981f1'
+ '1a3eb63832cecd6550f5b0a21d58cfdb')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ make CXFLAGS="$CFLAGS"
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make INSTALL=/bin/install DESTDIR=$pkgdir install
+ install -D -m644 ../mdadm.conf $pkgdir/etc/mdadm.conf
+ install -D -m755 ../mdadm $pkgdir/etc/rc.d/mdadm
+ install -D -m644 ../mdadm_install $pkgdir/lib/initcpio/install/mdadm
+ install -D -m644 ../mdadm_hook $pkgdir/lib/initcpio/hooks/mdadm
+ # symlink for backward compatibility
+ ln -sf /lib/initcpio/hooks/mdadm $pkgdir/lib/initcpio/hooks/raid
+ # build static mdassemble for Arch's initramfs
+ make MDASSEMBLE_AUTO=1 mdassemble
+ install -D -m755 mdassemble $pkgdir/sbin/mdassemble
+}
diff --git a/testing/mdadm/mdadm b/testing/mdadm/mdadm
new file mode 100755
index 000000000..918a62537
--- /dev/null
+++ b/testing/mdadm/mdadm
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /sbin/mdadm`
+case "$1" in
+ start)
+ stat_busy "Starting mdadm RAID Monitor"
+ if [ -z "$PID" ]; then
+ /sbin/mdadm --monitor --scan -i /var/run/mdadm.pid -f
+ fi
+ if [ ! -z "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ mdadm --monitor --oneshot --scan
+ add_daemon mdadm
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping mdadm RAID Monitor"
+ [ ! -z "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon mdadm
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
diff --git a/testing/mdadm/mdadm.conf b/testing/mdadm/mdadm.conf
new file mode 100644
index 000000000..57bd4c683
--- /dev/null
+++ b/testing/mdadm/mdadm.conf
@@ -0,0 +1,67 @@
+# mdadm configuration file
+#
+# mdadm will function properly without the use of a configuration file,
+# but this file is useful for keeping track of arrays and member disks.
+# In general, a mdadm.conf file is created, and updated, after arrays
+# are created. This is the opposite behavior of /etc/raidtab which is
+# created prior to array construction.
+#
+#
+# the config file takes two types of lines:
+#
+# DEVICE lines specify a list of devices of where to look for
+# potential member disks
+#
+# ARRAY lines specify information about how to identify arrays so
+# so that they can be activated
+#
+
+
+# You can have more than one device line and use wild cards. The first
+# example includes SCSI the first partition of SCSI disks /dev/sdb,
+# /dev/sdc, /dev/sdd, /dev/sdj, /dev/sdk, and /dev/sdl. The second
+# line looks for array slices on IDE disks.
+#
+#DEVICE /dev/sd[bcdjkl]1
+#DEVICE /dev/hda1 /dev/hdb1
+#
+# The designation "partitions" will scan all partitions found in
+# /proc/partitions
+DEVICE partitions
+
+
+# ARRAY lines specify an array to assemble and a method of identification.
+# Arrays can currently be identified by using a UUID, superblock minor number,
+# or a listing of devices.
+#
+# super-minor is usually the minor number of the metadevice
+# UUID is the Universally Unique Identifier for the array
+# Each can be obtained using
+#
+# mdadm -D <md>
+#
+# To capture the UUIDs for all your RAID arrays to this file, run these:
+# to get a list of running arrays:
+# # mdadm -D --scan >>/etc/mdadm.conf
+# to get a list from superblocks:
+# # mdadm -E --scan >>/etc/mdadm.conf
+#
+#ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
+#ARRAY /dev/md1 super-minor=1
+#ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
+#
+# ARRAY lines can also specify a "spare-group" for each array. mdadm --monitor
+# will then move a spare between arrays in a spare-group if one array has a
+# failed drive but no spare
+#ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df spare-group=group1
+#ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977 spare-group=group1
+#
+
+
+# When used in --follow (aka --monitor) mode, mdadm needs a
+# mail address and/or a program. To start mdadm's monitor mode, add
+# "mdadm" to your DAEMONS array in /etc/rc.conf
+#
+# If the lines are not found, mdadm will exit quietly
+#MAILADDR root@mydomain.tld
+#PROGRAM /usr/sbin/handle-mdadm-events
diff --git a/testing/mdadm/mdadm.install b/testing/mdadm/mdadm.install
new file mode 100644
index 000000000..e8404c260
--- /dev/null
+++ b/testing/mdadm/mdadm.install
@@ -0,0 +1,10 @@
+# arg 1: the new package version
+# arg 2: the old package version
+
+post_upgrade() {
+ if [ "$(vercmp $2 2.6.8-2)" -lt 0 -a "$(grep raid_partitions /etc/mkinitcpio.conf)" ]; then
+ echo "Attention mdadm update:"
+ echo "raid_partitions hook has been replaced by the more powerfull mdadm hook."
+ echo "Please update your /etc/mkinitcpio.conf accordingly."
+ fi
+}
diff --git a/testing/mdadm/mdadm_hook b/testing/mdadm/mdadm_hook
new file mode 100755
index 000000000..57799d3b8
--- /dev/null
+++ b/testing/mdadm/mdadm_hook
@@ -0,0 +1,44 @@
+# vim: set ft=sh:
+run_hook ()
+{
+ input="$(cat /proc/cmdline)"
+ mdconfig="/etc/mdadm.conf"
+ # for partitionable raid, we need to load md_mod first!
+ modprobe md_mod 2>/dev/null
+ # If md is specified on commandline, create config file from those parameters.
+ if [ "$(echo $input | grep "md=")" ]; then
+ #Create initial mdadm.conf
+ # scan all devices in /proc/partitions
+ echo DEVICE partitions > $mdconfig
+ for i in $input; do
+ case $i in
+ # raid
+ md=[0-9]*,/*)
+ device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=||g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device devices=$array" >> $mdconfig
+ ;;
+ # partitionable raid
+ md=d[0-9]*,/*)
+ device="$(echo "$i" | sed -e 's|,/.*||g' -e 's|=|_|g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device devices=$array" >> $mdconfig
+ ;;
+ # raid UUID
+ md=[0-9]*,[0-9,a-z]*)
+ device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=||g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device UUID=$array" >> $mdconfig
+ ;;
+ # partitionable raid UUID
+ md=d[0-9]*,[0-9,a-z]*)
+ device="$(echo "$i" | sed -e 's|,.*||g' -e 's|=|_|g')"
+ array="$(echo $i | cut -d, -f2-)"
+ echo "ARRAY /dev/$device UUID=$array" >> $mdconfig
+ ;;
+ esac
+ done
+ fi
+ # assemble everything
+ [ -e $mdconfig ] && /sbin/mdassemble
+} \ No newline at end of file
diff --git a/testing/mdadm/mdadm_install b/testing/mdadm/mdadm_install
new file mode 100644
index 000000000..b7a57ea4e
--- /dev/null
+++ b/testing/mdadm/mdadm_install
@@ -0,0 +1,46 @@
+# vim: set ft=sh:
+
+install ()
+{
+ MODULES=" $(checked_modules "drivers/md/*" | grep -v "dm-") "
+ BINARIES=""
+ FILES=""
+ SCRIPT="mdadm"
+ # check if a custom mdadm.conf exists
+ if grep -q ^ARRAY /etc/mdadm.conf; then
+ echo "Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays."
+ add_file "/etc/mdadm.conf"
+ fi
+ add_binary "/sbin/mdassemble"
+ add_file "/lib/udev/rules.d/64-md-raid.rules"
+}
+
+help ()
+{
+cat<<HELPEOF
+ This hook loads the necessary modules for any raid root device,
+ and assembles the raid device when run.
+
+ If arrays are defined in /etc/mdadm.conf, the file will be used instead
+ of command line assembling.
+
+ Command Line Setup:
+ - for raid arrays with persistent superblocks:
+ md=<md device no.>,dev0,dev1,...,devn
+ md=<md device no.>,uuid
+ - for partitionable raid arrays with persistent superblocks:
+ md=d<md device no.>,dev0,dev1,...,devn
+ md=d<md device no.>,uuid
+
+ Parameters:
+ - <md device no.> = the number of the md device:
+ 0 means md0, 1 means md1, ...
+ - <dev0-devn>: e.g. /dev/hda1,/dev/hdc1,/dev/sda1,/dev/sdb1
+ or 0900878d:f95f6057:c39a36e9:55efa60a
+ Examples:
+ - md=d0,/dev/sda3,/dev/sda4 md=d1,/dev/hda1,/dev/hdb1
+ This will setup 2 md partitionable arrays.
+ - md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1
+ This will setup 2 md arrays with persistent superblocks.
+HELPEOF
+}
diff --git a/testing/mesa/LICENSE b/testing/mesa/LICENSE
new file mode 100644
index 000000000..ae33d2709
--- /dev/null
+++ b/testing/mesa/LICENSE
@@ -0,0 +1,82 @@
+Disclaimer
+
+Mesa is a 3-D graphics library with an API which is very similar to
+that of OpenGL*
+To the extent that Mesa utilizes the OpenGL command syntax or state
+machine, it is being used with authorization from Silicon Graphics,
+Inc.(SGI). However, the author does not possess an OpenGL license
+from SGI, and makes no claim that Mesa is in any way a compatible
+replacement for OpenGL or associated with SGI. Those who want a
+licensed implementation of OpenGL should contact a licensed
+vendor.
+
+Please do not refer to the library as MesaGL (for legal
+reasons). It's just Mesa or The Mesa 3-D graphics
+library
+
+* OpenGL is a trademark of Silicon Graphics Incorporated.
+
+License / Copyright Information
+
+The Mesa distribution consists of several components. Different copyrights
+and licenses apply to different components. For example, GLUT is copyrighted
+by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
+device drivers are copyrighted by their authors. See below for a list of
+Mesa's main components and the license for each.
+
+The core Mesa library is licensed according to the terms of the MIT license.
+This allows integration with the XFree86, Xorg and DRI projects.
+
+The default Mesa license is as follows:
+
+Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Attention, Contributors
+
+When contributing to the Mesa project you must agree to the licensing terms
+of the component to which you're contributing.
+The following section lists the primary components of the Mesa distribution
+and their respective licenses.
+
+
+Mesa Component Licenses
+
+Component Location Primary Author License
+----------------------------------------------------------------------------
+Main Mesa code src/mesa/ Brian Paul Mesa (MIT)
+
+Device drivers src/mesa/drivers/* See drivers See drivers
+
+Ext headers include/GL/glext.h SGI SGI Free B
+ include/GL/glxext.h
+
+GLUT src/glut/ Mark Kilgard Mark's copyright
+
+Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL
+
+SGI GLU library src/glu/sgi/ SGI SGI Free B
+
+demo programs progs/demos/ various see source files
+
+X demos progs/xdemos/ Brian Paul see source files
+
+SGI demos progs/samples/ SGI SGI copyright
+
+RedBook demos progs/redbook/ SGI SGI copyright
diff --git a/testing/mesa/PKGBUILD b/testing/mesa/PKGBUILD
new file mode 100644
index 000000000..26997608b
--- /dev/null
+++ b/testing/mesa/PKGBUILD
@@ -0,0 +1,342 @@
+# $Id: PKGBUILD 117470 2011-04-03 17:24:19Z ibiru $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgbase=mesa
+pkgname=('mesa' 'libgl' 'libgles' 'libegl' 'ati-dri' 'intel-dri' 'unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri' 'nouveau-dri')
+
+#_git=true
+_git=false
+
+if [ "${_git}" = "true" ]; then
+ pkgver=7.10.0.git20110215
+ else
+ pkgver=7.10.1
+fi
+pkgrel=2
+arch=('i686' 'x86_64')
+makedepends=('glproto>=1.4.12' 'pkgconfig' 'libdrm>=2.4.23' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.3' 'expat>=2.0.1' 'libx11>=1.3.5' 'libxt>=1.0.8'
+ 'gcc-libs>=4.5' 'dri2proto=2.3' 'python2' 'libxml2' 'imake')
+url="http://mesa3d.sourceforge.net"
+license=('custom')
+source=(LICENSE)
+if [ "${_git}" = "true" ]; then
+ # mesa git shot from 7.10 branch - see for state: http://cgit.freedesktop.org/mesa/mesa/commit/?h=7.10&id=cc1636b6db85604510f97f8a37d7fd0ecf453866
+ source=(${source[@]} 'ftp://ftp.archlinux.org/other/mesa/mesa-cc1636b6db85604510f97f8a37d7fd0ecf453866.tar.bz2')
+ else
+ source=(${source[@]} "ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2"
+ gnome-shell-shader-fix.patch)
+fi
+md5sums=('5c65a0fe315dd347e09b1f2826a1df5a'
+ 'efe8da4d80c2a5d32a800770b8ce5dfa'
+ '3ec78f340f9387abd7a37b195e764cbf')
+
+build() {
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ autoreconf -vfi
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+
+#backport from master to fix gnome-shell shader
+#https://bugs.freedesktop.org/show_bug.cgi?id=35714
+patch -Np1 -i "${srcdir}/gnome-shell-shader-fix.patch"
+
+if [ "${_git}" = "true" ]; then
+ ./autogen.sh --prefix=/usr \
+ --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl
+ else
+ ./configure --prefix=/usr \
+ --with-dri-driverdir=/usr/lib/xorg/modules/dri \
+ --enable-gallium-radeon \
+ --enable-gallium-r600 \
+ --enable-gallium-nouveau \
+ --enable-gallium-swrast \
+ --enable-glx-tls \
+ --with-driver=dri \
+ --enable-xcb \
+ --with-state-trackers=dri,glx \
+ --disable-glut \
+ --enable-gles1 \
+ --enable-gles2 \
+ --enable-egl \
+ --disable-gallium-egl
+fi
+
+ make
+}
+
+package_libgl() {
+ depends=('libdrm>=2.4.22' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.3' 'expat>=2.0.1')
+ pkgdesc="Mesa 3-D graphics library and DRI software rasterizer"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
+
+ bin/minstall lib/libGL.so* "${pkgdir}/usr/lib/"
+
+ cd src/mesa/drivers/dri
+ #make -C swrast DESTDIR="${pkgdir}" install
+if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-swrast DESTDIR="${pkgdir}" install
+fi
+ ln -s swrastg_dri.so "${pkgdir}/usr/lib/xorg/modules/dri/swrast_dri.so"
+ ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgl/"
+}
+
+package_libgles() {
+ depends=('libgl')
+ pkgdesc="Mesa GLES libraries and headers"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m755 -d "${pkgdir}/usr/include"
+ install -m755 -d "${pkgdir}/usr/include/GLES"
+ install -m755 -d "${pkgdir}/usr/include/GLES2"
+ bin/minstall lib/libGLESv* "${pkgdir}/usr/lib/"
+ bin/minstall src/mapi/es1api/glesv1_cm.pc "${pkgdir}/usr/lib/pkgconfig/"
+ bin/minstall src/mapi/es2api/glesv2.pc "${pkgdir}/usr/lib/pkgconfig/"
+ bin/minstall include/GLES/* "${pkgdir}/usr/include/GLES/"
+ bin/minstall include/GLES2/* "${pkgdir}/usr/include/GLES2/"
+ bin/minstall include/GLES2/* "${pkgdir}/usr/include/GLES2/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libgles"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgles/"
+}
+
+package_libegl() {
+ depends=('libgl')
+ pkgdesc="Mesa libEGL libraries and headers"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ install -m755 -d "${pkgdir}/usr/lib"
+ install -m755 -d "${pkgdir}/usr/lib/egl"
+ install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
+ install -m755 -d "${pkgdir}/usr/include"
+ install -m755 -d "${pkgdir}/usr/include/"
+ install -m755 -d "${pkgdir}/usr/include/EGL"
+ install -m755 -d "${pkgdir}/usr/include/KHR"
+ install -m755 -d "${pkgdir}/usr/share"
+ install -m755 -d "${pkgdir}/usr/share/doc"
+ install -m755 -d "${pkgdir}/usr/share/doc/libegl"
+ bin/minstall lib/libEGL.so* "${pkgdir}/usr/lib/"
+ bin/minstall lib/egl/* "${pkgdir}/usr/lib/egl/"
+ bin/minstall src/egl/main/egl.pc "${pkgdir}/usr/lib/pkgconfig/"
+ bin/minstall include/EGL/* "${pkgdir}/usr/include/EGL/"
+ bin/minstall include/KHR/khrplatform.h "${pkgdir}/usr/include/KHR/"
+ bin/minstall docs/egl.html "${pkgdir}/usr/share/doc/libegl/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/libegl"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libegl/"
+}
+package_mesa() {
+ depends=('libgl' 'libx11>=1.3.5' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'libdrm>=2.4.22' 'glproto>=1.4.12')
+ optdepends=('opengl-man-pages: for the OpenGL API man pages')
+ pkgdesc="Mesa 3-D graphics libraries and include files"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*
+ else
+ cd "${srcdir}/Mesa-${pkgver}"
+fi
+ make DESTDIR="${pkgdir}" install
+
+ rm -f "${pkgdir}/usr/lib/libGL.so"*
+ rm -f "${pkgdir}/usr/lib/libGLESv"*
+ rm -f "${pkgdir}/usr/lib/libEGL"*
+ rm -rf "${pkgdir}/usr/lib/egl"
+ rm -f ${pkgdir}/usr/lib/pkgconfig/{glesv1_cm.pc,glesv2.pc,egl.pc}
+ rm -rf "${pkgdir}/usr/lib/xorg"
+ rm -f "${pkgdir}/usr/include/GL/glew.h"
+ rm -f "${pkgdir}/usr/include/GL/glxew.h"
+ rm -f "${pkgdir}/usr/include/GL/wglew.h"
+ rm -f "${pkgdir}/usr/include/GL/glut.h"
+ rm -rf ${pkgdir}/usr/include/{GLES,GLES2,EGL,KHR}
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
+ install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/"
+}
+
+package_ati-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI + Gallium3D r300 drivers for AMD/ATI Radeon"
+ conflicts=('xf86-video-ati<6.9.0-6')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C radeon DESTDIR="${pkgdir}" install
+ make -C r200 DESTDIR="${pkgdir}" install
+ # classic mesa driver for R300 r300_dri.so
+ #make -C r300 DESTDIR="${pkgdir}" install <------- deprecated
+ # gallium3D driver for R300 r300_dri.so
+if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r300 DESTDIR="${pkgdir}" install
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-r600 DESTDIR="${pkgdir}" install
+fi
+ #make -C r600 DESTDIR="${pkgdir}" install
+}
+
+package_intel-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Intel"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C i810 DESTDIR="${pkgdir}" install
+ make -C i915 DESTDIR="${pkgdir}" install
+ make -C i965 DESTDIR="${pkgdir}" install
+}
+
+package_unichrome-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C unichrome DESTDIR="${pkgdir}" install
+}
+
+package_mach64-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Mach64"
+ conflicts=('xf86-video-mach64<6.8.2')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C mach64 DESTDIR="${pkgdir}" install
+}
+
+package_mga-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for Matrox"
+ conflicts=('xf86-video-mga<1.4.11')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C mga DESTDIR="${pkgdir}" install
+}
+
+package_r128-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for ATI Rage128"
+ conflicts=('xf86-video-r128<6.8.1')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C r128 DESTDIR="${pkgdir}" install
+}
+
+package_savage-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage"
+ conflicts=('xf86-video-savage<2.3.1')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C savage DESTDIR="${pkgdir}" install
+}
+
+package_sis-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for SiS"
+ conflicts=('xf86-video-sis<0.10.2')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C sis DESTDIR="${pkgdir}" install
+}
+
+package_tdfx-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa DRI drivers for 3dfx"
+ conflicts=('xf86-video-tdfx<1.4.3')
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+ make -C tdfx DESTDIR="${pkgdir}" install
+}
+
+package_nouveau-dri() {
+ depends=("libgl=${pkgver}")
+ pkgdesc="Mesa classic DRI + Gallium3D drivers for Nouveau"
+
+if [ "${_git}" = "true" ]; then
+ cd ${srcdir}/mesa-*/src/mesa/drivers/dri
+ else
+ cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri"
+fi
+
+ # classic mesa driver for nv10 , nv20 nouveau_vieux_dri.so
+ make -C nouveau DESTDIR="${pkgdir}" install
+
+ # gallium3D driver for nv30 - nv40 - nv50 nouveau_dri.so
+if [ "${_git}" = "true" ]; then
+ make -C ${srcdir}/mesa-*/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+ else
+ make -C ${srcdir}/Mesa-${pkgver}/src/gallium/targets/dri-nouveau DESTDIR="${pkgdir}" install
+fi
+}
+
diff --git a/testing/mesa/gnome-shell-shader-fix.patch b/testing/mesa/gnome-shell-shader-fix.patch
new file mode 100644
index 000000000..3b3f37591
--- /dev/null
+++ b/testing/mesa/gnome-shell-shader-fix.patch
@@ -0,0 +1,535 @@
+From 3f625689acd570e4f14cc2ebaa43a425d13954ff Mon Sep 17 00:00:00 2001
+From: Christoph Bumiller <e0425955@student.tuwien.ac.at>
+Date: Thu, 31 Mar 2011 13:49:33 +0000
+Subject: nv50: copy regalloc fixes from nvc0
+
+Should fix gnome-shell's fade shader.
+
+Unification of the shader backend which is supposed to remove the
+code duplication is still WIP.
+---
+diff --git a/src/gallium/drivers/nv50/nv50_pc.h b/src/gallium/drivers/nv50/nv50_pc.h
+index e6f3815..a9a3248 100644
+--- a/src/gallium/drivers/nv50/nv50_pc.h
++++ b/src/gallium/drivers/nv50/nv50_pc.h
+@@ -228,6 +228,8 @@ struct nv_ref {
+ ubyte flags; /* not used yet */
+ };
+
++#define NV_REF_FLAG_REGALLOC_PRIV (1 << 0)
++
+ struct nv_basic_block;
+
+ struct nv_instruction {
+@@ -263,6 +265,15 @@ struct nv_instruction {
+ ubyte quadop;
+ };
+
++static INLINE int
++nvi_vector_size(struct nv_instruction *nvi)
++{
++ int i;
++ assert(nvi);
++ for (i = 0; i < 4 && nvi->def[i]; ++i);
++ return i;
++}
++
+ #define CFG_EDGE_FORWARD 0
+ #define CFG_EDGE_BACK 1
+ #define CFG_EDGE_LOOP_ENTER 2
+diff --git a/src/gallium/drivers/nv50/nv50_pc_regalloc.c b/src/gallium/drivers/nv50/nv50_pc_regalloc.c
+index 39ae366..657df2c 100644
+--- a/src/gallium/drivers/nv50/nv50_pc_regalloc.c
++++ b/src/gallium/drivers/nv50/nv50_pc_regalloc.c
+@@ -32,14 +32,39 @@
+ #include "util/u_simple_list.h"
+
+ #define NUM_REGISTER_FILES 4
++#define MAX_REGISTER_COUNT 256
+
+ struct register_set {
+ struct nv_pc *pc;
+
+ uint32_t last[NUM_REGISTER_FILES];
+- uint32_t bits[NUM_REGISTER_FILES][8];
++ uint32_t bits[NUM_REGISTER_FILES][(MAX_REGISTER_COUNT + 31) / 32];
+ };
+
++/* using OR because a set bit means occupied/unavailable, aliasing is allowed */
++static void
++intersect_register_sets(struct register_set *dst,
++ struct register_set *src1, struct register_set *src2)
++{
++ int i, j;
++
++ for (i = 0; i < NUM_REGISTER_FILES; ++i) {
++ for (j = 0; j < (MAX_REGISTER_COUNT + 31) / 32; ++j)
++ dst->bits[i][j] = src1->bits[i][j] | src2->bits[i][j];
++ }
++}
++
++static void
++mask_register_set(struct register_set *set, uint32_t mask, uint32_t umask)
++{
++ int i, j;
++
++ for (i = 0; i < NUM_REGISTER_FILES; ++i) {
++ for (j = 0; j < (MAX_REGISTER_COUNT + 31) / 32; ++j)
++ set->bits[i][j] = (set->bits[i][j] | mask) & umask;
++ }
++}
++
+ struct nv_pc_pass {
+ struct nv_pc *pc;
+
+@@ -61,11 +86,15 @@ ranges_coalesce(struct nv_range *range)
+ }
+ }
+
++/* @return: TRUE if @new_range can be freed (i.e. was not reused) */
+ static boolean
+ add_range_ex(struct nv_value *val, int bgn, int end, struct nv_range *new_range)
+ {
+ struct nv_range *range, **nextp = &val->livei;
+
++ if (bgn == end) /* [a, a) is invalid / empty */
++ return TRUE;
++
+ for (range = val->livei; range; range = range->next) {
+ if (end < range->bgn)
+ break; /* insert before */
+@@ -251,6 +280,8 @@ reg_occupy(struct register_set *set, struct nv_value *val)
+ id <<= s;
+ m = (1 << (1 << s)) - 1;
+
++ assert(s >= 0); /* XXX: remove me */
++
+ set->bits[f][id / 32] |= m << (id % 32);
+
+ if (set->pc->max_reg[f] < id)
+@@ -286,15 +317,12 @@ join_allowed(struct nv_pc_pass *ctx, struct nv_value *a, struct nv_value *b)
+ if (a->join->reg.id == b->join->reg.id)
+ return TRUE;
+
+-#if 1
+ /* either a or b or both have been assigned */
+
+ if (a->join->reg.id >= 0 && b->join->reg.id >= 0)
+ return FALSE;
+ else
+ if (b->join->reg.id >= 0) {
+- if (a->join->reg.id >= 0)
+- return FALSE;
+ val = a;
+ a = b;
+ b = val;
+@@ -309,8 +337,6 @@ join_allowed(struct nv_pc_pass *ctx, struct nv_value *a, struct nv_value *b)
+ return FALSE;
+ }
+ return TRUE;
+-#endif
+- return FALSE;
+ }
+
+ static INLINE void
+@@ -336,14 +362,14 @@ do_join_values(struct nv_pc_pass *ctx, struct nv_value *a, struct nv_value *b)
+ assert(b->join == a->join);
+ }
+
+-static INLINE void
++static INLINE boolean
+ try_join_values(struct nv_pc_pass *ctx, struct nv_value *a, struct nv_value *b)
+ {
+ if (!join_allowed(ctx, a, b)) {
+ #ifdef NV50_RA_DEBUG_JOIN
+ debug_printf("cannot join %i to %i: not allowed\n", b->n, a->n);
+ #endif
+- return;
++ return FALSE;
+ }
+ if (livei_have_overlap(a->join, b->join)) {
+ #ifdef NV50_RA_DEBUG_JOIN
+@@ -351,10 +377,27 @@ try_join_values(struct nv_pc_pass *ctx, struct nv_value *a, struct nv_value *b)
+ livei_print(a);
+ livei_print(b);
+ #endif
+- return;
++ return FALSE;
+ }
+
+ do_join_values(ctx, a, b);
++
++ return TRUE;
++}
++
++static void
++join_values_nofail(struct nv_pc_pass *ctx,
++ struct nv_value *a, struct nv_value *b, boolean type_only)
++{
++ if (type_only) {
++ assert(join_allowed(ctx, a, b));
++ do_join_values(ctx, a, b);
++ } else {
++ boolean ok = try_join_values(ctx, a, b);
++ if (!ok) {
++ NOUVEAU_ERR("failed to coalesce values\n");
++ }
++ }
+ }
+
+ static INLINE boolean
+@@ -369,20 +412,32 @@ need_new_else_block(struct nv_basic_block *b, struct nv_basic_block *p)
+ return (b->num_in > 1) && (n == 2);
+ }
+
++/* Look for the @phi's operand whose definition reaches @b. */
+ static int
+ phi_opnd_for_bb(struct nv_instruction *phi, struct nv_basic_block *b,
+ struct nv_basic_block *tb)
+ {
++ struct nv_ref *srci, *srcj;
+ int i, j;
+
+- for (j = -1, i = 0; i < 4 && phi->src[i]; ++i) {
+- if (!nvbb_reachable_by(b, phi->src[i]->value->insn->bb, tb))
++ for (j = -1, i = 0; i < 6 && phi->src[i]; ++i) {
++ srci = phi->src[i];
++ /* if already replaced, check with original source first */
++ if (srci->flags & NV_REF_FLAG_REGALLOC_PRIV)
++ srci = srci->value->insn->src[0];
++ if (!nvbb_reachable_by(b, srci->value->insn->bb, NULL))
+ continue;
+ /* NOTE: back-edges are ignored by the reachable-by check */
+- if (j < 0 || !nvbb_reachable_by(phi->src[j]->value->insn->bb,
+- phi->src[i]->value->insn->bb, tb))
++ if (j < 0 || !nvbb_reachable_by(srcj->value->insn->bb,
++ srci->value->insn->bb, NULL)) {
+ j = i;
++ srcj = srci;
++ }
+ }
++ if (j >= 0 && nvbb_reachable_by(b, phi->def[0]->insn->bb, NULL))
++ if (!nvbb_reachable_by(srcj->value->insn->bb,
++ phi->def[0]->insn->bb, NULL))
++ j = -1;
+ return j;
+ }
+
+@@ -429,16 +484,21 @@ pass_generate_phi_movs(struct nv_pc_pass *ctx, struct nv_basic_block *b)
+ ctx->pc->current_block = pn;
+
+ for (i = b->phi; i && i->opcode == NV_OP_PHI; i = i->next) {
+- if ((j = phi_opnd_for_bb(i, p, b)) < 0)
+- continue;
+- val = i->src[j]->value;
+-
+- if (i->src[j]->flags) {
+- val = val->insn->src[0]->value;
+- while (j < 4 && i->src[j])
+- ++j;
+- assert(j < 4);
++ j = phi_opnd_for_bb(i, p, b);
++
++ if (j < 0) {
++ val = i->def[0];
++ } else {
++ val = i->src[j]->value;
++ if (i->src[j]->flags & NV_REF_FLAG_REGALLOC_PRIV) {
++ j = -1;
++ /* use original value, we already encountered & replaced it */
++ val = val->insn->src[0]->value;
++ }
+ }
++ if (j < 0) /* need an additional source ? */
++ for (j = 0; j < 5 && i->src[j] && i->src[j]->value != val; ++j);
++ assert(j < 5);
+
+ ni = new_instruction(ctx->pc, NV_OP_MOV);
+
+@@ -452,7 +512,7 @@ pass_generate_phi_movs(struct nv_pc_pass *ctx, struct nv_basic_block *b)
+
+ nv_reference(ctx->pc, &i->src[j], ni->def[0]);
+
+- i->src[j]->flags = 1;
++ i->src[j]->flags |= NV_REF_FLAG_REGALLOC_PRIV;
+ }
+
+ if (pn != p && pn->exit) {
+@@ -470,45 +530,50 @@ pass_generate_phi_movs(struct nv_pc_pass *ctx, struct nv_basic_block *b)
+ return 0;
+ }
+
++#define JOIN_MASK_PHI (1 << 0)
++#define JOIN_MASK_SELECT (1 << 1)
++#define JOIN_MASK_MOV (1 << 2)
++#define JOIN_MASK_TEX (1 << 3)
++
+ static int
+-pass_join_values(struct nv_pc_pass *ctx, int iter)
++pass_join_values(struct nv_pc_pass *ctx, unsigned mask)
+ {
+ int c, n;
+
+ for (n = 0; n < ctx->num_insns; ++n) {
+- struct nv_instruction *i = ctx->insns[n];
++ struct nv_instruction *nvi, *i = ctx->insns[n];
+
+ switch (i->opcode) {
+ case NV_OP_PHI:
+- if (iter != 2)
++ if (!(mask & JOIN_MASK_PHI))
+ break;
+- for (c = 0; c < 4 && i->src[c]; ++c)
+- try_join_values(ctx, i->def[0], i->src[c]->value);
++ for (c = 0; c < 5 && i->src[c]; ++c)
++ join_values_nofail(ctx, i->def[0], i->src[c]->value, FALSE);
+ break;
+ case NV_OP_MOV:
+- if ((iter == 2) && i->src[0]->value->insn &&
+- !nv_is_vector_op(i->src[0]->value->join->insn->opcode))
++ if (!(mask & JOIN_MASK_MOV))
++ break;
++ nvi = i->src[0]->value->join->insn;
++ if (nvi && !nv_is_vector_op(nvi->opcode))
+ try_join_values(ctx, i->def[0], i->src[0]->value);
+ break;
+ case NV_OP_SELECT:
+- if (iter != 1)
++ if (!(mask & JOIN_MASK_SELECT))
+ break;
+- for (c = 0; c < 4 && i->src[c]; ++c) {
+- assert(join_allowed(ctx, i->def[0], i->src[c]->value));
+- do_join_values(ctx, i->def[0], i->src[c]->value);
+- }
++ for (c = 0; c < 5 && i->src[c]; ++c)
++ join_values_nofail(ctx, i->def[0], i->src[c]->value, TRUE);
+ break;
+ case NV_OP_TEX:
+ case NV_OP_TXB:
+ case NV_OP_TXL:
+ case NV_OP_TXQ:
+- if (iter)
++ if (!(mask & JOIN_MASK_TEX))
+ break;
+- for (c = 0; c < 4; ++c) {
+- if (!i->src[c])
+- break;
+- do_join_values(ctx, i->def[c], i->src[c]->value);
+- }
++ /* This should work without conflicts because we always generate
++ * extra MOVs for the sources of a TEX.
++ */
++ for (c = 0; c < 4 && i->src[c]; ++c)
++ join_values_nofail(ctx, i->def[c], i->src[c]->value, TRUE);
+ break;
+ default:
+ break;
+@@ -643,15 +708,15 @@ static void collect_live_values(struct nv_basic_block *b, const int n)
+ {
+ int i;
+
+- if (b->out[0]) {
+- if (b->out[1]) { /* what to do about back-edges ? */
++ if (b->out[0] && b->out_kind[0] != CFG_EDGE_FAKE) {
++ if (b->out[1] && b->out_kind[1] != CFG_EDGE_FAKE) {
+ for (i = 0; i < n; ++i)
+ b->live_set[i] = b->out[0]->live_set[i] | b->out[1]->live_set[i];
+ } else {
+ memcpy(b->live_set, b->out[0]->live_set, n * sizeof(uint32_t));
+ }
+ } else
+- if (b->out[1]) {
++ if (b->out[1] && b->out_kind[1] != CFG_EDGE_FAKE) {
+ memcpy(b->live_set, b->out[1]->live_set, n * sizeof(uint32_t));
+ } else {
+ memset(b->live_set, 0, n * sizeof(uint32_t));
+@@ -770,8 +835,8 @@ insert_ordered_tail(struct nv_value *list, struct nv_value *nval)
+ struct nv_value *elem;
+
+ for (elem = list->prev;
+- elem != list && elem->livei->bgn > nval->livei->bgn;
+- elem = elem->prev);
++ elem != list && elem->livei->bgn > nval->livei->bgn;
++ elem = elem->prev);
+ /* now elem begins before or at the same time as val */
+
+ nval->prev = elem;
+@@ -780,44 +845,49 @@ insert_ordered_tail(struct nv_value *list, struct nv_value *nval)
+ elem->next = nval;
+ }
+
+-static int
+-pass_linear_scan(struct nv_pc_pass *ctx, int iter)
++static void
++collect_register_values(struct nv_pc_pass *ctx, struct nv_value *head,
++ boolean assigned_only)
+ {
+- struct nv_instruction *i;
+- struct register_set f, free;
++ struct nv_value *val;
+ int k, n;
+- struct nv_value *cur, *val, *tmp[2];
+- struct nv_value active, inactive, handled, unhandled;
+
+- make_empty_list(&active);
+- make_empty_list(&inactive);
+- make_empty_list(&handled);
+- make_empty_list(&unhandled);
+-
+- nv50_ctor_register_set(ctx->pc, &free);
++ make_empty_list(head);
+
+- /* joined values should have range = NULL and thus not be added;
+- * also, fixed memory values won't be added because they're not
+- * def'd, just used
+- */
+ for (n = 0; n < ctx->num_insns; ++n) {
+- i = ctx->insns[n];
++ struct nv_instruction *i = ctx->insns[n];
+
++ /* for joined values, only the representative will have livei != NULL */
+ for (k = 0; k < 4; ++k) {
+ if (i->def[k] && i->def[k]->livei)
+- insert_ordered_tail(&unhandled, i->def[k]);
+- else
+- if (0 && i->def[k])
+- debug_printf("skipping def'd value %i: no livei\n", i->def[k]->n);
++ if (!assigned_only || i->def[k]->reg.id >= 0)
++ insert_ordered_tail(head, i->def[k]);
+ }
+ if (i->flags_def && i->flags_def->livei)
+- insert_ordered_tail(&unhandled, i->flags_def);
++ if (!assigned_only || i->flags_def->reg.id >= 0)
++ insert_ordered_tail(head, i->flags_def);
+ }
+
+- for (val = unhandled.next; val != unhandled.prev; val = val->next) {
++ for (val = head->next; val != head->prev; val = val->next) {
+ assert(val->join == val);
+ assert(val->livei->bgn <= val->next->livei->bgn);
+ }
++}
++
++static int
++pass_linear_scan(struct nv_pc_pass *ctx, int iter)
++{
++ struct register_set f, free;
++ struct nv_value *cur, *val, *tmp[2];
++ struct nv_value active, inactive, handled, unhandled;
++
++ make_empty_list(&active);
++ make_empty_list(&inactive);
++ make_empty_list(&handled);
++
++ nv50_ctor_register_set(ctx->pc, &free);
++
++ collect_register_values(ctx, &unhandled, FALSE);
+
+ foreach_s(cur, tmp[0], &unhandled) {
+ remove_from_list(cur);
+@@ -854,13 +924,7 @@ pass_linear_scan(struct nv_pc_pass *ctx, int iter)
+ reg_occupy(&f, val);
+
+ if (cur->reg.id < 0) {
+- boolean mem = FALSE;
+-
+- if (nv_is_vector_op(cur->insn->opcode))
+- mem = !reg_assign(&f, &cur->insn->def[0], 4);
+- else
+- if (iter)
+- mem = !reg_assign(&f, &cur, 1);
++ boolean mem = !reg_assign(&f, &cur, 1);
+
+ if (mem) {
+ NOUVEAU_ERR("out of registers\n");
+@@ -874,6 +938,67 @@ pass_linear_scan(struct nv_pc_pass *ctx, int iter)
+ return 0;
+ }
+
++/* Allocate values defined by instructions such as TEX, which have to be
++ * assigned to consecutive registers.
++ * Linear scan doesn't really work here since the values can have different
++ * live intervals.
++ */
++static int
++pass_allocate_constrained_values(struct nv_pc_pass *ctx)
++{
++ struct nv_value regvals, *val;
++ struct nv_instruction *i;
++ struct nv_value *defs[4];
++ struct register_set regs[4];
++ int n, vsize, c;
++ uint32_t mask;
++ boolean mem;
++
++ collect_register_values(ctx, &regvals, TRUE);
++
++ for (n = 0; n < ctx->num_insns; ++n) {
++ i = ctx->insns[n];
++ vsize = nvi_vector_size(i);
++ if (!(vsize > 1))
++ continue;
++ assert(vsize <= 4);
++ for (c = 0; c < vsize; ++c)
++ defs[c] = i->def[c]->join;
++
++ if (defs[0]->reg.id >= 0) {
++ for (c = 1; c < vsize; ++c)
++ assert(defs[c]->reg.id >= 0);
++ continue;
++ }
++
++ for (c = 0; c < vsize; ++c) {
++ nv50_ctor_register_set(ctx->pc, &regs[c]);
++
++ foreach(val, &regvals) {
++ if (val->reg.id >= 0 && livei_have_overlap(val, defs[c]))
++ reg_occupy(&regs[c], val);
++ }
++ mask = 0x11111111;
++ if (vsize == 2) /* granularity is 2 and not 4 */
++ mask |= 0x11111111 << 2;
++ mask_register_set(&regs[c], 0, mask << c);
++
++ if (defs[c]->livei)
++ insert_ordered_tail(&regvals, defs[c]);
++ }
++ for (c = 1; c < vsize; ++c)
++ intersect_register_sets(&regs[0], &regs[0], &regs[c]);
++
++ mem = !reg_assign(&regs[0], &defs[0], vsize);
++
++ if (mem) {
++ NOUVEAU_ERR("out of registers\n");
++ abort();
++ }
++ }
++ return 0;
++}
++
+ static int
+ nv_pc_pass1(struct nv_pc *pc, struct nv_basic_block *root)
+ {
+@@ -923,16 +1048,16 @@ nv_pc_pass1(struct nv_pc *pc, struct nv_basic_block *root)
+ livei_print(&pc->values[i]);
+ #endif
+
+- ret = pass_join_values(ctx, 0);
++ ret = pass_join_values(ctx, JOIN_MASK_PHI);
+ if (ret)
+ goto out;
+- ret = pass_linear_scan(ctx, 0);
++ ret = pass_join_values(ctx, JOIN_MASK_SELECT | JOIN_MASK_TEX);
+ if (ret)
+ goto out;
+- ret = pass_join_values(ctx, 1);
++ ret = pass_join_values(ctx, JOIN_MASK_MOV);
+ if (ret)
+ goto out;
+- ret = pass_join_values(ctx, 2);
++ ret = pass_allocate_constrained_values(ctx);
+ if (ret)
+ goto out;
+ ret = pass_linear_scan(ctx, 1);
+--
+cgit v0.8.3-6-g21f6
diff --git a/testing/pciutils/PKGBUILD b/testing/pciutils/PKGBUILD
new file mode 100644
index 000000000..91c1216e8
--- /dev/null
+++ b/testing/pciutils/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 115045 2011-03-16 15:19:12Z jgc $
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+pkgname=pciutils
+pkgver=3.1.7
+pkgrel=4
+pkgdesc="PCI bus configuration space access library and tools"
+arch=(i686 x86_64)
+license=('GPL2')
+groups=('base')
+url="http://mj.ucw.cz/pciutils.html"
+optdepends=('sh: required by update-pciids')
+makedepends=('wget')
+depends=('glibc')
+source=(ftp://ftp.kernel.org/pub/software/utils/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('35222edb86b50a6641352c66fe829b2e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./update-pciids.sh
+ make OPT="${CFLAGS} -fPIC -DPIC" ZLIB=no SHARED=no PREFIX=/usr SHAREDIR=/usr/share/hwdata MANDIR=/usr/share/man all
+ cp lib/libpci.a "${srcdir}/"
+ make clean
+ make OPT="${CFLAGS}" ZLIB=no SHARED=yes PREFIX=/usr SHAREDIR=/usr/share/hwdata MANDIR=/usr/share/man all
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make SHARED=yes PREFIX=/usr SHAREDIR=/usr/share/hwdata MANDIR=/usr/share/man DESTDIR="${pkgdir}" install install-lib
+ install -m644 "${srcdir}/libpci.a" "${pkgdir}/usr/lib/"
+}
diff --git a/testing/syslog-ng/PKGBUILD b/testing/syslog-ng/PKGBUILD
new file mode 100644
index 000000000..e9ca12719
--- /dev/null
+++ b/testing/syslog-ng/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 114715 2011-03-15 15:44:12Z tpowa $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
+pkgname=syslog-ng
+pkgver=3.2.2
+pkgrel=2
+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' 'tcp_wrappers' 'openssl' 'libcap')
+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
+ cap_syslog.patch)
+md5sums=('ed8ebe559d52a63fb61e3e2db566643f' '344dddfff946300f5576b13a7e8ea19f'\
+ '735636090be4582885974542d2a75855' 'b90f8f1ba0433e5a1518ac30f882560a')
+sha1sums=('3a340f8e72b460cc0bc1ec1d4c86b74678912dd6' 'b9eb8c61f7cccda543fc5c97fe1d40a8d15e713f'\
+ 'ac997b25d7d8e69e66782d3771a0e12aff55ae7f' '253e59f4182fba46aea56bebc4b79a199fae32bc')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # fix #22555 for kernels >=2.6.38
+ patch -Np1 -i ../cap_syslog.patch
+ ./configure --prefix=/usr --sysconfdir=/etc/syslog-ng \
+ --libexecdir=/usr/lib --localstatedir=/var/lib/syslog-ng \
+ --enable-tcp-wrapper \
+ --with-pidfile-dir=/var/run \
+ --disable-spoof-source
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make 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"
+}
+md5sums=('ed8ebe559d52a63fb61e3e2db566643f'
+ '344dddfff946300f5576b13a7e8ea19f'
+ '735636090be4582885974542d2a75855'
+ 'b90f8f1ba0433e5a1518ac30f882560a'
+ '46e5dcff71f820d497898331a3f608fe')
+sha1sums=('3a340f8e72b460cc0bc1ec1d4c86b74678912dd6'
+ 'b9eb8c61f7cccda543fc5c97fe1d40a8d15e713f'
+ 'ac997b25d7d8e69e66782d3771a0e12aff55ae7f'
+ '253e59f4182fba46aea56bebc4b79a199fae32bc'
+ 'f093a09626a528d23f0f2aeece018cab15a735a9')
diff --git a/testing/syslog-ng/cap_syslog.patch b/testing/syslog-ng/cap_syslog.patch
new file mode 100644
index 000000000..b6e6db6e4
--- /dev/null
+++ b/testing/syslog-ng/cap_syslog.patch
@@ -0,0 +1,101 @@
+diff --git a/lib/gprocess.h b/lib/gprocess.h
+index cda35b0..5c449f7 100644
+--- a/lib/gprocess.h
++++ b/lib/gprocess.h
+@@ -28,9 +28,14 @@
+ #include "syslog-ng.h"
+
+ #include <sys/types.h>
++#include <sys/utsname.h>
+
+ #if ENABLE_LINUX_CAPS
+ # include <sys/capability.h>
++#
++# ifndef CAP_SYSLOG
++# define CAP_SYSLOG 34
++# endif
+ #endif
+
+ typedef enum
+@@ -78,5 +83,8 @@ void g_process_finish(void);
+
+ void g_process_add_option_group(GOptionContext *ctx);
+
++extern int kernel_version;
++extern void get_kernel_version(void);
++#define LINUX_VERSION(x,y,z) (0x10000*(x) + 0x100*(y) + z)
+
+ #endif
+diff --git a/modules/affile/affile.c b/modules/affile/affile.c
+index e145324..886fa72 100644
+--- a/modules/affile/affile.c
++++ b/modules/affile/affile.c
+@@ -59,7 +59,12 @@ affile_open_file(gchar *name, gint flags,
+ if (privileged)
+ {
+ g_process_cap_modify(CAP_DAC_READ_SEARCH, TRUE);
+- g_process_cap_modify(CAP_SYS_ADMIN, TRUE);
++ if (!kernel_version)
++ get_kernel_version();
++ if (kernel_version < LINUX_VERSION(2, 6, 38))
++ g_process_cap_modify(CAP_SYS_ADMIN, TRUE);
++ else
++ g_process_cap_modify(CAP_SYSLOG, TRUE);
+ }
+ else
+ {
+diff --git a/syslog-ng/main.c b/syslog-ng/main.c
+index 9880c1f..ee5031b 100644
+--- a/syslog-ng/main.c
++++ b/syslog-ng/main.c
+@@ -67,6 +67,7 @@ static gboolean syntax_only = FALSE;
+ static gboolean display_version = FALSE;
+ static gchar *ctlfilename = PATH_CONTROL_SOCKET;
+ static gchar *preprocess_into = NULL;
++int kernel_version;
+
+ static volatile sig_atomic_t sig_hup_received = FALSE;
+ static volatile sig_atomic_t sig_term_received = FALSE;
+@@ -363,6 +364,20 @@ version(void)
+ ON_OFF_STR(ENABLE_PACCT_MODULE));
+ }
+
++void
++get_kernel_version(void) {
++ static struct utsname uts;
++ int x = 0, y = 0, z = 0;
++
++ if (uname(&uts) == -1) {
++ fprintf(stderr, "Unable to retrieve kernel version.\n");
++ exit(1);
++ }
++
++ sscanf(uts.release, "%d.%d.%d", &x, &y, &z);
++ kernel_version = LINUX_VERSION(x, y, z);
++}
++
+ int
+ main(int argc, char *argv[])
+ {
+@@ -379,9 +394,20 @@ main(int argc, char *argv[])
+ * indicate readability. Enabling/disabling cap_sys_admin on every poll
+ * invocation seems to be too expensive. So I enable it for now. */
+
+- g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw,"
++ if (!kernel_version)
++ get_kernel_version();
++ if (kernel_version < LINUX_VERSION(2, 6, 34))
++ g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw,"
+ "cap_dac_read_search,cap_dac_override,cap_chown,cap_fowner=p "
+ "cap_sys_admin=ep");
++ else if (kernel_version < LINUX_VERSION(2, 6, 38))
++ g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw,"
++ "cap_dac_read_search,cap_dac_override,cap_chown,cap_fowner,"
++ "cap_sys_admin=p");
++ else
++ g_process_set_caps("cap_net_bind_service,cap_net_broadcast,cap_net_raw,"
++ "cap_dac_read_search,cap_dac_override,cap_chown,cap_fowner,"
++ "cap_syslog=p");
+ ctx = g_option_context_new("syslog-ng");
+ g_process_add_option_group(ctx);
+ msg_add_option_group(ctx);
diff --git a/testing/syslog-ng/syslog-ng.conf b/testing/syslog-ng/syslog-ng.conf
new file mode 100644
index 000000000..6e3362681
--- /dev/null
+++ b/testing/syslog-ng/syslog-ng.conf
@@ -0,0 +1,92 @@
+@version: 3.2
+#
+# /etc/syslog-ng/syslog-ng.conf
+#
+
+options {
+ stats_freq (0);
+ flush_lines (0);
+ time_reopen (10);
+ log_fifo_size (1000);
+ long_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..e0e6929f2
--- /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 /var/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..fbd41fc7b
--- /dev/null
+++ b/testing/syslog-ng/syslog-ng.rc
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=`pidof -o %PPID /usr/sbin/syslog-ng`
+case "$1" in
+ start)
+ stat_busy "Starting Syslog-NG"
+ [ -z "$PID" ] && /usr/sbin/syslog-ng
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon syslog-ng
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping Syslog-NG"
+ [ ! -z "$PID" ] && kill $PID &> /dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm -f /var/run/syslog-ng.pid
+# Removing stale syslog-ng.persist file. Its new location, as of 2.0.6-1, is /var/lib/syslog-ng/
+ rm -f /var/syslog-ng.persist
+ rm_daemon syslog-ng
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/testing/tzdata/Makefile.patch b/testing/tzdata/Makefile.patch
new file mode 100644
index 000000000..e88f9d907
--- /dev/null
+++ b/testing/tzdata/Makefile.patch
@@ -0,0 +1,140 @@
+diff -Naur src/Makefile src-p/Makefile
+--- src/Makefile 2007-08-20 16:47:41.000000000 +0200
++++ src-p/Makefile 2007-10-02 04:07:44.000000000 +0200
+@@ -34,17 +34,17 @@
+
+ # Everything gets put in subdirectories of. . .
+
+-TOPDIR= /usr/local
++TOPDIR= $(DESTDIR)/usr
+
+ # "Compiled" time zone information is placed in the "TZDIR" directory
+ # (and subdirectories).
+ # Use an absolute path name for TZDIR unless you're just testing the software.
+
+-TZDIR= $(TOPDIR)/etc/zoneinfo
++TZDIR= $(TOPDIR)/share/zoneinfo
+
+ # The "tzselect", "zic", and "zdump" commands get installed in. . .
+
+-ETCDIR= $(TOPDIR)/etc
++SBINDIR= $(TOPDIR)/sbin
+
+ # If you "make INSTALL", the "date" command gets installed in. . .
+
+@@ -52,7 +52,7 @@
+
+ # Manual pages go in subdirectories of. . .
+
+-MANDIR= $(TOPDIR)/man
++MANDIR= $(TOPDIR)/share/man
+
+ # Library functions are put in an archive in LIBDIR.
+
+@@ -83,7 +83,7 @@
+
+ # Non-default libraries needed to link.
+ # Add -lintl if you want to use `gettext' on Solaris.
+-LDLIBS=
++LDLIBS=$(LDFLAGS)
+
+ # Add the following to the end of the "CFLAGS=" line as needed.
+ # -Dconst= if `const' does not work (SunOS 4.x cc, OSF1 V5.0 cc)
+@@ -211,7 +211,7 @@
+ # before the first Monday in January when a "%V" format is used and January 1
+ # falls on a Friday, Saturday, or Sunday.
+
+-CFLAGS=
++CFLAGS += -std=gnu99
+
+ # If you want zic's -s option used when installing, uncomment the next line
+ # ZFLAGS= -s
+@@ -220,7 +220,7 @@
+ ZIC= $(zic) $(ZFLAGS)
+
+ # The name of a Posix-compliant `awk' on your system.
+-AWK= nawk
++AWK= awk
+
+ # The path where SGML DTDs are kept.
+ SGML_SEARCH_PATH= $(TOPDIR)/share/doc/sgml-lib/REC-html401-19991224/
+@@ -241,8 +241,10 @@
+
+ ###############################################################################
+
+-cc= cc
+-CC= $(cc) -DTZDIR=\"$(TZDIR)\"
++CC+= -DTZDIR=\"$(TZDIR)\"
++ifeq ($(NLS),1)
++CC += -DHAVE_GETTEXT=1 -DTZ_DOMAIN=\"libc\"
++endif
+
+ TZCSRCS= zic.c localtime.c asctime.c scheck.c ialloc.c
+ TZCOBJS= zic.o localtime.o asctime.o scheck.o ialloc.o
+@@ -282,14 +284,16 @@
+
+ ALL: all date
+
+-install: all $(DATA) $(REDO) $(TZLIB) $(MANS) $(TABDATA)
++install: all $(DATA) $(REDO) $(MANS) $(TABDATA)
+ $(ZIC) -y $(YEARISTYPE) \
+ -d $(TZDIR) -l $(LOCALTIME) -p $(POSIXRULES)
+ -rm -f $(TZDIR)/iso3166.tab $(TZDIR)/zone.tab
+ cp iso3166.tab zone.tab $(TZDIR)/.
+- -mkdir $(TOPDIR) $(ETCDIR)
+- cp tzselect zic zdump $(ETCDIR)/.
+- -mkdir $(TOPDIR) $(MANDIR) \
++ -mkdir -p $(TOPDIR) $(SBINDIR)
++ cp zic zdump $(SBINDIR)/.
++ -mkdir -p $(TOPDIR) $(BINDIR)
++ cp tzselect $(BINDIR)/.
++ -mkdir -p $(TOPDIR) $(MANDIR) \
+ $(MANDIR)/man3 $(MANDIR)/man5 $(MANDIR)/man8
+ -rm -f $(MANDIR)/man3/newctime.3 \
+ $(MANDIR)/man3/newtzset.3 \
+@@ -298,13 +302,11 @@
+ $(MANDIR)/man8/zdump.8 \
+ $(MANDIR)/man8/zic.8
+ cp newctime.3 newtzset.3 $(MANDIR)/man3/.
+- cp tzfile.5 $(MANDIR)/man5/.
+- cp tzselect.8 zdump.8 zic.8 $(MANDIR)/man8/.
+
+ INSTALL: ALL install date.1
+- -mkdir $(TOPDIR) $(BINDIR)
++ -mkdir -p $(TOPDIR) $(BINDIR)
+ cp date $(BINDIR)/.
+- -mkdir $(TOPDIR) $(MANDIR) $(MANDIR)/man1
++ -mkdir -p $(TOPDIR) $(MANDIR) $(MANDIR)/man1
+ -rm -f $(MANDIR)/man1/date.1
+ cp date.1 $(MANDIR)/man1/.
+
+@@ -334,9 +336,9 @@
+ # You must replace all of $(TZDIR) to switch from not using leap seconds
+ # to using them, or vice versa.
+ other_two: zic leapseconds $(TDATA)
+- $(ZIC) -y $(YEARISTYPE) -d $(TZDIR)-posix -L /dev/null $(TDATA)
++ $(ZIC) -y $(YEARISTYPE) -d $(TZDIR)/posix -L /dev/null $(TDATA)
+ $(ZIC) -y $(YEARISTYPE) \
+- -d $(TZDIR)-leaps -L leapseconds $(TDATA)
++ -d $(TZDIR)/right -L leapseconds $(TDATA)
+
+ posix_right: posix_only other_two
+
+@@ -367,7 +369,7 @@
+ <$? >$@
+ chmod +x $@
+
+-check: check_tables check_web
++check: check_tables
+
+ check_tables: checktab.awk $(PRIMARY_YDATA)
+ $(AWK) -f checktab.awk $(PRIMARY_YDATA)
+diff -Naur src/tzselect.ksh src-p/tzselect.ksh
+--- src/tzselect.ksh 2007-08-20 16:47:42.000000000 +0200
++++ src-p/tzselect.ksh 2007-10-02 04:07:44.000000000 +0200
+@@ -1,4 +1,4 @@
+-#! /bin/ksh
++#! /bin/bash
+
+ # '@(#)tzselect.ksh 8.1'
+
diff --git a/testing/tzdata/PKGBUILD b/testing/tzdata/PKGBUILD
new file mode 100644
index 000000000..631c3f3b5
--- /dev/null
+++ b/testing/tzdata/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id: PKGBUILD 117841 2011-04-04 18:27:28Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+
+pkgname=tzdata
+pkgver=2011e
+pkgrel=1
+_tzcode=2011e
+_tzdata=2011e
+pkgdesc="Sources for time zone and daylight saving time data"
+arch=('i686' 'x86_64')
+url="http://www.twinsun.com/tz/tz-link.htm"
+license=('GPL')
+depends=()
+makedepends=()
+optdepends=('sh: required by tzselect')
+options=('!emptydirs')
+source=(ftp://elsie.nci.nih.gov/pub/tzcode${_tzcode}.tar.gz \
+ ftp://elsie.nci.nih.gov/pub/${pkgname}${_tzdata}.tar.gz \
+ Makefile.patch)
+md5sums=('fbfc05dbf9ebcfe7c4bba18549870173'
+ '044a07072300a0ee72b046e5a9a4ec90'
+ 'a64ed97d1fc03c66ee8612c0d9f40507')
+
+build() {
+ cd ${srcdir}
+
+ tar -xf tzcode${_tzcode}.tar.gz
+ tar -xf ${pkgname}${_tzdata}.tar.gz
+
+ patch -Np1 -i "${srcdir}/Makefile.patch"
+
+ make
+}
+
+package() {
+ cd ${srcdir}
+ make DESTDIR="${pkgdir}" install
+
+ rm "${pkgdir}/usr/share/zoneinfo/localtime"
+}
diff --git a/testing/usbutils/PKGBUILD b/testing/usbutils/PKGBUILD
new file mode 100644
index 000000000..871bd2111
--- /dev/null
+++ b/testing/usbutils/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 116702 2011-03-25 08:26:34Z tpowa $
+# Maintainer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Curtis Campbell <curtisjamescampbell@hotmail.com>
+pkgname=usbutils
+pkgver=002
+pkgrel=1
+pkgdesc="USB Device Utilities"
+arch=(i686 x86_64)
+license=('GPL')
+groups=('base')
+makedepends=('wget')
+depends=('glibc' 'libusb')
+url="http://linux-usb.sourceforge.net/"
+source=(http://www.kernel.org/pub/linux/utils/usb/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('05610d15c3c8c8ada3d691c320ca784a')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+ rm usb.ids
+ wget http://www.linux-usb.org/usb.ids
+ ./configure --prefix=/usr --datadir=/usr/share/hwdata --disable-zlib
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
+ # fix pkgconfig file
+ mkdir -p $pkgdir/usr/lib
+ mv $pkgdir/usr/share/pkgconfig $pkgdir/usr/lib/
+}
diff --git a/testing/xf86-input-acecad/PKGBUILD b/testing/xf86-input-acecad/PKGBUILD
new file mode 100644
index 000000000..9a9ed57a1
--- /dev/null
+++ b/testing/xf86-input-acecad/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 115526 2011-03-18 10:32:21Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-acecad
+_gitdate=20110318
+pkgver=1.4.99_git${_gitdate} # see configure.ac
+pkgrel=1
+pkgdesc="X.Org acecad tablet input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('sysfsutils')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(#${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ ftp://ftp.archlinux.org/other/$pkgname/${pkgname}-${_gitdate}.tar.bz2)
+sha1sums=('f1aa0c13542242316ebd401369959f6c55ae8222')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/${pkgname}-${_gitdate}
+ pushd /tmp/${pkgname}-${_gitdate}
+ git clone -v --depth 1 git://anongit.freedesktop.org/xorg/driver/xf86-input-acecad
+ cd xf86-input-acecad
+ git archive --prefix=xf86-video-acecad-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# ./configure --prefix=/usr
+ cd ${srcdir}/xf86-video-acecad-${_gitdate}
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+ cd ${srcdir}/xf86-video-acecad-${_gitdate}
+
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-input-aiptek/PKGBUILD b/testing/xf86-input-aiptek/PKGBUILD
new file mode 100644
index 000000000..11f20cb39
--- /dev/null
+++ b/testing/xf86-input-aiptek/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 115529 2011-03-18 10:37:30Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-aiptek
+_gitdate=20110318
+pkgver=1.3.99_git${_gitdate} # see configure.ac
+pkgrel=1
+pkgdesc="X.Org Aiptek USB Digital Tablet input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(#${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ ftp://ftp.archlinux.org/other/$pkgname/${pkgname}-${_gitdate}.tar.bz2)
+md5sums=('0dc6fe834142ca7a4bec8fceb0885a15')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/${pkgname}-${_gitdate}
+ pushd /tmp/${pkgname}-${_gitdate}
+ git clone -v --depth 1 git://anongit.freedesktop.org/xorg/driver/xf86-input-aiptek
+ cd xf86-input-aiptek
+ git archive --prefix=xf86-video-aiptek-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# ./configure --prefix=/usr
+ cd ${srcdir}/xf86-video-aiptek-${_gitdate}
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+ cd ${srcdir}/xf86-video-aiptek-${_gitdate}
+
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-input-evdev/PKGBUILD b/testing/xf86-input-evdev/PKGBUILD
new file mode 100644
index 000000000..cd181ad42
--- /dev/null
+++ b/testing/xf86-input-evdev/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115269 2011-03-17 16:14:58Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <Alexander@archlinux.org
+
+pkgname=xf86-input-evdev
+pkgver=2.6.0
+pkgrel=3
+pkgdesc="X.org evdev input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool' '!makeflags')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('fb6f7a6f5168ae07efe890e4ace9fb8af1d4e1e0')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-input-joystick/50-joystick.conf b/testing/xf86-input-joystick/50-joystick.conf
new file mode 100644
index 000000000..95a295ab0
--- /dev/null
+++ b/testing/xf86-input-joystick/50-joystick.conf
@@ -0,0 +1,6 @@
+Section "InputClass"
+ Identifier "joystick catchall"
+ MatchIsJoystick "on"
+ MatchDevicePath "/dev/input/event*"
+ Driver "joystick"
+EndSection
diff --git a/testing/xf86-input-joystick/LICENSE b/testing/xf86-input-joystick/LICENSE
new file mode 100644
index 000000000..434899a50
--- /dev/null
+++ b/testing/xf86-input-joystick/LICENSE
@@ -0,0 +1,22 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 1995-1999 by Frederic Lepied, France. <Lepied@XFree86.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Frederic Lepied not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Frederic Lepied makes no
+representations about the suitability of this software for any purpose. It
+is provided "as is" without express or implied warranty.
+
+FREDERIC LEPIED DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL FREDERIC LEPIED BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/testing/xf86-input-joystick/PKGBUILD b/testing/xf86-input-joystick/PKGBUILD
new file mode 100644
index 000000000..441603077
--- /dev/null
+++ b/testing/xf86-input-joystick/PKGBUILD
@@ -0,0 +1,54 @@
+# $Id: PKGBUILD 115532 2011-03-18 10:42:40Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-joystick
+_gitdate=20110318
+pkgver=1.5.99_git${_gitdate} # see configure.ac
+pkgrel=1
+pkgdesc="X.Org Joystick input driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(#${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ ftp://ftp.archlinux.org/other/$pkgname/${pkgname}-${_gitdate}.tar.bz2
+ 50-joystick.conf
+ LICENSE)
+sha1sums=('e1eb55c0556984530ab87836b5ade78085c7201b'
+ 'e1ff3699a0470c6bb78a53f718df9d8521621e11'
+ 'ee4c79491b36a680ed9d86f5fc41ae447f26353e')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/${pkgname}-${_gitdate}
+ pushd /tmp/${pkgname}-${_gitdate}
+ git clone -v --depth 1 git://anongit.freedesktop.org/xorg/driver/xf86-input-joystick
+ cd xf86-input-joystick
+ git archive --prefix=xf86-video-joystick-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# ./configure --prefix=/usr
+ cd ${srcdir}/xf86-video-joystick-${_gitdate}
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+ cd ${srcdir}/xf86-video-joystick-${_gitdate}
+
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
+ install -m644 "${srcdir}/50-joystick.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-input-keyboard/PKGBUILD b/testing/xf86-input-keyboard/PKGBUILD
new file mode 100644
index 000000000..74318a046
--- /dev/null
+++ b/testing/xf86-input-keyboard/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115452 2011-03-18 08:08:01Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-keyboard
+pkgver=1.6.0
+pkgrel=2
+pkgdesc="X.Org keyboard input driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8e845086749f8c4b64fdfa852b4b26cf7bb62dc9')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-input-mouse/PKGBUILD b/testing/xf86-input-mouse/PKGBUILD
new file mode 100644
index 000000000..23bd31f2b
--- /dev/null
+++ b/testing/xf86-input-mouse/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115449 2011-03-18 08:03:09Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-mouse
+pkgver=1.7.0
+pkgrel=2
+pkgdesc="X.org mouse input driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('8b99054e5e4feafd7e08c87b936e64386b74ae8f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-input-synaptics/10-synaptics.conf b/testing/xf86-input-synaptics/10-synaptics.conf
new file mode 100644
index 000000000..81a90fb81
--- /dev/null
+++ b/testing/xf86-input-synaptics/10-synaptics.conf
@@ -0,0 +1,9 @@
+Section "InputClass"
+ Identifier "touchpad catchall"
+ Driver "synaptics"
+ MatchIsTouchpad "on"
+ MatchDevicePath "/dev/input/event*"
+ Option "TapButton1" "1"
+ Option "TapButton2" "2"
+ Option "TapButton3" "3"
+EndSection
diff --git a/testing/xf86-input-synaptics/PKGBUILD b/testing/xf86-input-synaptics/PKGBUILD
new file mode 100644
index 000000000..6e4d89f3a
--- /dev/null
+++ b/testing/xf86-input-synaptics/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 115455 2011-03-18 08:10:17Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-input-synaptics
+pkgver=1.4.0
+pkgrel=2
+pkgdesc="Synaptics driver for notebook touchpads"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libxtst')
+makedepends=('xorg-server-devel' 'libxi' 'libx11')
+conflicts=('xorg-server<1.10.0')
+replaces=('synaptics')
+provides=('synaptics')
+conflicts=('synaptics')
+groups=('xorg-drivers' 'xorg')
+options=(!libtool)
+backup=('etc/X11/xorg.conf.d/10-synaptics.conf')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ 10-synaptics.conf)
+sha1sums=('96541b063482568e177f883a9fcfbe9a22c25569'
+ '68e1f4ef5e1038231d210eb422fa4d18c5922f0f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
+ install -m644 "${srcdir}/10-synaptics.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ rm -rf "${pkgdir}/usr/share/X11"
+}
diff --git a/testing/xf86-input-void/PKGBUILD b/testing/xf86-input-void/PKGBUILD
new file mode 100644
index 000000000..6c4a38685
--- /dev/null
+++ b/testing/xf86-input-void/PKGBUILD
@@ -0,0 +1,47 @@
+# $Id: PKGBUILD 115535 2011-03-18 10:46:45Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-input-void
+_gitdate=20110318
+pkgver=1.3.1.99_git${_gitdate} # see configure.ac
+pkgrel=1
+pkgdesc="X.org void input driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(#${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ ftp://ftp.archlinux.org/other/$pkgname/${pkgname}-${_gitdate}.tar.bz2)
+md5sums=('0ec2820fc178138d393fd248f56b8754')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/${pkgname}-${_gitdate}
+ pushd /tmp/${pkgname}-${_gitdate}
+ git clone -v --depth 1 git://anongit.freedesktop.org/xorg/driver/xf86-input-void
+ cd xf86-input-void
+ git archive --prefix=xf86-video-void-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+# ./configure --prefix=/usr
+ cd ${srcdir}/xf86-video-void-${_gitdate}
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+# cd "${srcdir}/${pkgname}-${pkgver}"
+ cd ${srcdir}/xf86-video-void-${_gitdate}
+
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-input-wacom/70-wacom.rules b/testing/xf86-input-wacom/70-wacom.rules
new file mode 100644
index 000000000..67e5580cc
--- /dev/null
+++ b/testing/xf86-input-wacom/70-wacom.rules
@@ -0,0 +1,8 @@
+ACTION!="add|change", GOTO="wacom_end"
+
+# Match all wacom tablets with a serial ID starting with WACf
+ATTRS{id}=="WACf*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
+ATTRS{id}=="FUJ*" ENV{NAME}="Serial Wacom Tablet", ENV{SUBSYSTEM}="input", ENV{ID_INPUT}="1", ENV{ID_INPUT_TABLET}="1"
+
+LABEL="wacom_end"
+
diff --git a/testing/xf86-input-wacom/PKGBUILD b/testing/xf86-input-wacom/PKGBUILD
new file mode 100644
index 000000000..2ee290485
--- /dev/null
+++ b/testing/xf86-input-wacom/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 115476 2011-03-18 08:17:07Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: M Rawash <mrawash@gmail.com>
+
+pkgname=xf86-input-wacom
+pkgver=0.10.9
+pkgrel=1
+pkgdesc="X.Org Wacom tablet driver"
+arch=('i686' 'x86_64')
+url="http://linuxwacom.sourceforge.net/"
+license=('GPL')
+backup=('etc/X11/xorg.conf.d/50-wacom.conf')
+depends=('libxi' 'libxrandr')
+makedepends=('xorg-server-devel' 'libxext' 'libxi')
+conflicts=('xorg-server<1.10.0')
+options=(!libtool)
+source=(http://downloads.sourceforge.net/project/linuxwacom/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ 70-wacom.rules)
+md5sums=('8af337d2919995f39ff19d8a890ea222'
+ '4d3665bb2ef8a8190734640dffa4c6f7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --with-xorg-conf-dir=/etc/X11/xorg.conf.d
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/lib/udev/rules.d"
+ install -m644 "${srcdir}/70-wacom.rules" "${pkgdir}/lib/udev/rules.d/"
+}
diff --git a/testing/xf86-video-apm/PKGBUILD b/testing/xf86-video-apm/PKGBUILD
new file mode 100644
index 000000000..649a8d7ae
--- /dev/null
+++ b/testing/xf86-video-apm/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115281 2011-03-17 16:59:19Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-apm
+pkgver=1.2.3
+pkgrel=3
+pkgdesc="X.org Alliance ProMotion video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('1fa7180cf985a74132f8d5b39a0bf9df08713fac')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-ark/PKGBUILD b/testing/xf86-video-ark/PKGBUILD
new file mode 100644
index 000000000..c924c8b8d
--- /dev/null
+++ b/testing/xf86-video-ark/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115284 2011-03-17 17:01:41Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ark
+pkgver=0.7.3
+pkgrel=3
+pkgdesc="X.org ark video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('56901ec6097a83433689f208268281f9c98c238b')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-ast/PKGBUILD b/testing/xf86-video-ast/PKGBUILD
new file mode 100644
index 000000000..46183729c
--- /dev/null
+++ b/testing/xf86-video-ast/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 115287 2011-03-17 17:04:02Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-ast
+pkgver=0.91.10
+pkgrel=3
+pkgdesc="X.org ASPEED AST Graphics video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('a90624e63f33fdcb50ccefcdeebb34052f341ef3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-ati/PKGBUILD b/testing/xf86-video-ati/PKGBUILD
new file mode 100644
index 000000000..bd3d1fd9e
--- /dev/null
+++ b/testing/xf86-video-ati/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115444 2011-03-18 07:49:48Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-ati
+pkgver=6.14.1
+pkgrel=1
+pkgdesc="X.org ati video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(libpciaccess libdrm udev pixman ati-dri)
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+md5sums=('395e23ad026e4246dd70bbd2143688b5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make "DESTDIR=${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-ati/ati-fix-build-1.10.patch b/testing/xf86-video-ati/ati-fix-build-1.10.patch
new file mode 100644
index 000000000..75980cbf3
--- /dev/null
+++ b/testing/xf86-video-ati/ati-fix-build-1.10.patch
@@ -0,0 +1,38 @@
+From ecfdb209afe2aafc378baab8c511f5df7b000270 Mon Sep 17 00:00:00 2001
+From: Sedat Dilek <sedat.dilek@googlemail.com>
+Date: Fri, 25 Feb 2011 21:48:14 +0100
+Subject: [PATCH] UMS: Fix build against xserver 1.10-rc3
+
+This issue was introduced due to last minute backout of RandR-1.4
+in xserver 1.10-rc3.
+
+Switch to "#ifdef RANDR_14_INTERFACE" as suggested by Keith Packard.
+See also <http://lists.x.org/archives/xorg-devel/2011-February/019643.html>.
+
+Note:
+The ddx needs a rebuild as the X video driver ABI changed to version 10.0.
+
+Reported-by: Alex Deucher <alexdeucher@gmail.com>
+CC: Keith Packard <keithp@keithp.com>
+Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
+---
+ src/radeon_output.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/radeon_output.c b/src/radeon_output.c
+index 15cef06..ccde346 100644
+--- a/src/radeon_output.c
++++ b/src/radeon_output.c
+@@ -1622,7 +1622,7 @@ radeon_set_mode_for_property(xf86OutputPtr output)
+ xf86CrtcPtr crtc = output->crtc;
+
+ if (crtc->enabled) {
+-#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,9,99,901,0)
++#ifdef RANDR_14_INTERFACE
+ xf86CrtcSetRec crtc_set_rec;
+
+ crtc_set_rec.flags = (XF86CrtcSetMode |
+--
+1.7.1
+
+
diff --git a/testing/xf86-video-chips/PKGBUILD b/testing/xf86-video-chips/PKGBUILD
new file mode 100644
index 000000000..655847922
--- /dev/null
+++ b/testing/xf86-video-chips/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 115295 2011-03-17 17:13:45Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-chips
+pkgver=1.2.4
+pkgrel=2
+pkgdesc="X.org Chips and Technologies video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(glibc)
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('71f474335d05f93b2451a7a0750c4409669641a4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-cirrus/LICENSE b/testing/xf86-video-cirrus/LICENSE
new file mode 100644
index 000000000..bb283cf4d
--- /dev/null
+++ b/testing/xf86-video-cirrus/LICENSE
@@ -0,0 +1,22 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright 2000 by Egbert Eich
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation, and that the name of Alan Hourihane not be used in
+advertising or publicity pertaining to distribution of the software without
+specific, written prior permission. Alan Hourihane makes no representations
+about the suitability of this software for any purpose. It is provided
+"as is" without express or implied warranty.
+
+EGBERT EICH DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/testing/xf86-video-cirrus/PKGBUILD b/testing/xf86-video-cirrus/PKGBUILD
new file mode 100644
index 000000000..b0043635d
--- /dev/null
+++ b/testing/xf86-video-cirrus/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 115298 2011-03-17 17:18:57Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-cirrus
+pkgver=1.3.2
+pkgrel=6
+pkgdesc="X.org Cirrus Logic video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('8195d03ed0be0975c03441e66a9f53b3'
+ 'b9b570ac5c03f1fbe3e0cee5fe884b82')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-dummy/PKGBUILD b/testing/xf86-video-dummy/PKGBUILD
new file mode 100644
index 000000000..3b7a1e6d1
--- /dev/null
+++ b/testing/xf86-video-dummy/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115301 2011-03-17 17:21:06Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-dummy
+pkgver=0.3.4
+pkgrel=4
+pkgdesc="X.org dummy video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('876ed7165ea2821bbddd73232a1ce0b79c1f14ff')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-fbdev/PKGBUILD b/testing/xf86-video-fbdev/PKGBUILD
new file mode 100644
index 000000000..12edc4e6a
--- /dev/null
+++ b/testing/xf86-video-fbdev/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115309 2011-03-17 17:26:03Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-fbdev
+pkgver=0.4.2
+pkgrel=4
+pkgdesc="X.org framebuffer video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('c8562f997d56c9fec50df6ca9892f39f43ff4c2c')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-glint/PKGBUILD b/testing/xf86-video-glint/PKGBUILD
new file mode 100644
index 000000000..2a0e8dbb1
--- /dev/null
+++ b/testing/xf86-video-glint/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115314 2011-03-17 17:29:52Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-glint
+pkgver=1.2.5
+pkgrel=2
+pkgdesc="X.org GLINT/Permedia video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('28d54093c6485bf0055fa16be3d116f9107aaea7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --disable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-i128/PKGBUILD b/testing/xf86-video-i128/PKGBUILD
new file mode 100644
index 000000000..c8f10156e
--- /dev/null
+++ b/testing/xf86-video-i128/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115322 2011-03-17 17:39:36Z andyrtr $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i128
+pkgver=1.3.4
+pkgrel=3
+pkgdesc="X.org Number 9 I128 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d5f755dc964eaa067b4efcafafd00814a60df775')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-i740/PKGBUILD b/testing/xf86-video-i740/PKGBUILD
new file mode 100644
index 000000000..4316de76b
--- /dev/null
+++ b/testing/xf86-video-i740/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115325 2011-03-17 17:41:18Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-i740
+pkgver=1.3.2
+pkgrel=6
+pkgdesc="X.org Intel i740 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('aadd2168153f780c487778e5fdda5473ed4b243d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-intel/PKGBUILD b/testing/xf86-video-intel/PKGBUILD
new file mode 100644
index 000000000..8218208b1
--- /dev/null
+++ b/testing/xf86-video-intel/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 117291 2011-03-30 17:29:24Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-intel
+pkgver=2.14.902
+pkgrel=1
+pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=(intel-dri libxvmc libpciaccess libdrm xcb-util libxfixes udev)
+makedepends=('xorg-server-devel' 'libx11' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'libxvmc' 'xcb-util')
+conflicts=('xorg-server<1.10.0' 'xf86-video-i810' 'xf86-video-intel-legacy')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('552d6d1be754c974d140763232a2c17361d9a625')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-intel/git-fixes.patch b/testing/xf86-video-intel/git-fixes.patch
new file mode 100644
index 000000000..cbdbf27b5
--- /dev/null
+++ b/testing/xf86-video-intel/git-fixes.patch
@@ -0,0 +1,1209 @@
+diff --git a/Makefile.am b/Makefile.am
+index f4239de..83948ab 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -18,6 +18,7 @@
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
++ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+
+ SUBDIRS = uxa src man
+ MAINTAINERCLEANFILES = ChangeLog INSTALL
+diff --git a/configure.ac b/configure.ac
+index 529a294..5a1baac 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -21,18 +21,24 @@
+ # Process this file with autoconf to produce a configure script
+
+ # Initialize Autoconf
+-AC_PREREQ([2.60])
++AC_PREREQ([2.63])
+ AC_INIT([xf86-video-intel],
+ [2.14.0],
+ [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
+ [xf86-video-intel])
+ AC_CONFIG_SRCDIR([Makefile.am])
+ AC_CONFIG_HEADERS([config.h])
+-AC_CONFIG_AUX_DIR(.)
++AC_CONFIG_AUX_DIR([build-aux])
++AC_CONFIG_MACRO_DIR([m4])
+
+ # Initialize Automake
+-AM_INIT_AUTOMAKE([foreign dist-bzip2])
+-AM_MAINTAINER_MODE
++AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2])
++AM_MAINTAINER_MODE([enable])
++
++# Support silent build rules, requires at least automake-1.11. Disable
++# by either passing --disable-silent-rules to configure or passing V=1
++# to make
++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+ # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
+ m4_ifndef([XORG_MACROS_VERSION],
+@@ -50,8 +56,8 @@ m4_ifndef([XORG_DRIVER_CHECK_EXT],
+ depending on your distribution, try package 'xserver-xorg-dev' or 'xorg-x11-server-devel'])])
+
+ # Initialize libtool
+-AC_DISABLE_STATIC
+-AC_PROG_LIBTOOL
++LT_PREREQ([2.2])
++LT_INIT([disable-static])
+
+ PKG_CHECK_MODULES(GEN4ASM, [intel-gen4asm >= 1.1], [gen4asm=yes], [gen4asm=no])
+ AM_CONDITIONAL(HAVE_GEN4ASM, test x$gen4asm = xyes)
+@@ -85,6 +91,12 @@ AC_ARG_ENABLE(kms-only, AS_HELP_STRING([--enable-kms-only],
+ [KMS_ONLY="$enableval"],
+ [KMS_ONLY=no])
+
++AC_ARG_ENABLE(debug,
++ AS_HELP_STRING([--enable-debug],
++ [Enables internal debugging [[default=yes]]]),
++ [DEBUG="$enableval"],
++ [DEBUG=yes])
++
+ # Store the list of server defined optional extensions in REQUIRED_MODULES
+ XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
+ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
+@@ -138,15 +150,19 @@ fi
+ AC_MSG_CHECKING([whether to include XvMC support])
+ AC_MSG_RESULT([$XVMC])
+ AM_CONDITIONAL(XVMC, test x$XVMC = xyes)
+-if test "$XVMC" = yes; then
++if test "x$XVMC" = xyes; then
+ AC_DEFINE(ENABLE_XVMC,1,[Enable XvMC support])
+ fi
+
+ AM_CONDITIONAL(KMS_ONLY, test x$KMS_ONLY = xyes)
+-if test "$KMS_ONLY" = yes; then
++if test "x$KMS_ONLY" = xyes; then
+ AC_DEFINE(KMS_ONLY,1,[Assume KMS support])
+ fi
+
++if test "x$DEBUG" = xno; then
++ AC_DEFINE(NDEBUG,1,[Disable internal debugging])
++fi
++
+ DRIVER_NAME=intel
+ AC_SUBST([DRIVER_NAME])
+ AC_SUBST([moduledir])
+diff --git a/src/i915_render.c b/src/i915_render.c
+index 6d844e5..d04e8e1 100644
+--- a/src/i915_render.c
++++ b/src/i915_render.c
+@@ -302,12 +302,10 @@ static Bool i915_texture_setup(PicturePtr picture, PixmapPtr pixmap, int unit)
+ ScrnInfoPtr scrn = xf86Screens[picture->pDrawable->pScreen->myNum];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+ uint32_t format, pitch, filter;
+- int w, h, i;
+ uint32_t wrap_mode, tiling_bits;
++ int i;
+
+ pitch = intel_pixmap_pitch(pixmap);
+- w = picture->pDrawable->width;
+- h = picture->pDrawable->height;
+ intel->scale_units[unit][0] = 1. / pixmap->drawable.width;
+ intel->scale_units[unit][1] = 1. / pixmap->drawable.height;
+
+@@ -546,8 +544,8 @@ i915_emit_composite_primitive(PixmapPtr dest,
+ {
+ ScrnInfoPtr scrn = xf86Screens[dest->drawable.pScreen->myNum];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+- Bool is_affine_src, is_affine_mask = TRUE;
+- int per_vertex, num_floats;
++ Bool is_affine_src = TRUE, is_affine_mask = TRUE;
++ int per_vertex;
+ int tex_unit = 0;
+ int src_unit = -1, mask_unit = -1;
+ float src_x[3], src_y[3], src_w[3], mask_x[3], mask_y[3], mask_w[3];
+@@ -666,8 +664,6 @@ i915_emit_composite_primitive(PixmapPtr dest,
+ }
+ }
+
+- num_floats = 3 * per_vertex;
+-
+ OUT_VERTEX(dstX + w);
+ OUT_VERTEX(dstY + h);
+ if (! intel->render_source_is_solid) {
+diff --git a/src/i965_video.c b/src/i965_video.c
+index 235dfb9..e16a575 100644
+--- a/src/i965_video.c
++++ b/src/i965_video.c
+@@ -414,8 +414,8 @@ static void i965_create_dst_surface_state(ScrnInfoPtr scrn,
+ intel_emit_reloc(surf_bo, offset + offsetof(struct brw_surface_state, ss1),
+ pixmap_bo, 0, I915_GEM_DOMAIN_SAMPLER, 0);
+
+- dest_surf_state->ss2.height = scrn->virtualY - 1;
+- dest_surf_state->ss2.width = scrn->virtualX - 1;
++ dest_surf_state->ss2.height = pixmap->drawable.height - 1;
++ dest_surf_state->ss2.width = pixmap->drawable.width - 1;
+ dest_surf_state->ss2.mip_count = 0;
+ dest_surf_state->ss2.render_target_rotation = 0;
+ dest_surf_state->ss3.pitch = intel_pixmap_pitch(pixmap) - 1;
+@@ -770,7 +770,7 @@ static drm_intel_bo *i965_create_cc_state(ScrnInfoPtr scrn)
+ }
+
+ static void
+-i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_table_bo, int n_src_surf)
++i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_table_bo, int n_src_surf, PixmapPtr pixmap)
+ {
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+ int urb_vs_start, urb_vs_size;
+@@ -821,20 +821,20 @@ i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_tab
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* media base addr, don't care */
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* Instruction base address */
+ /* general state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ /* media object state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ /* Instruction max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ } else {
+ OUT_BATCH(BRW_STATE_BASE_ADDRESS | 4);
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* Generate state base address */
+ OUT_RELOC(surface_state_binding_table_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */
+ OUT_BATCH(0 | BASE_ADDRESS_MODIFY); /* media base addr, don't care */
+ /* general state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ /* media object state max addr, disabled */
+- OUT_BATCH(0x10000000 | BASE_ADDRESS_MODIFY);
++ OUT_BATCH(0 | BASE_ADDRESS_MODIFY);
+ }
+
+ /* Set system instruction pointer */
+@@ -877,7 +877,7 @@ i965_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo * surface_state_binding_tab
+ */
+ OUT_BATCH(BRW_3DSTATE_DRAWING_RECTANGLE | 2); /* XXX 3 for BLC or CTG */
+ OUT_BATCH(0x00000000); /* ymin, xmin */
+- OUT_BATCH((scrn->virtualX - 1) | (scrn->virtualY - 1) << 16); /* ymax, xmax */
++ OUT_BATCH((pixmap->drawable.width - 1) | (pixmap->drawable.height - 1) << 16); /* ymax, xmax */
+ OUT_BATCH(0x00000000); /* yorigin, xorigin */
+
+ /* skip the depth buffer */
+@@ -1212,7 +1212,7 @@ I965DisplayVideoTextured(ScrnInfoPtr scrn,
+
+ intel_batch_start_atomic(scrn, 100);
+
+- i965_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf);
++ i965_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf, pixmap);
+
+ /* Set up the pointer to our vertex buffer */
+ OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | 3);
+@@ -1517,13 +1517,13 @@ gen6_upload_depth_buffer_state(ScrnInfoPtr scrn)
+ }
+
+ static void
+-gen6_upload_drawing_rectangle(ScrnInfoPtr scrn)
++gen6_upload_drawing_rectangle(ScrnInfoPtr scrn, PixmapPtr pixmap)
+ {
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+
+ OUT_BATCH(BRW_3DSTATE_DRAWING_RECTANGLE | 2);
+ OUT_BATCH(0x00000000); /* ymin, xmin */
+- OUT_BATCH((scrn->virtualX - 1) | (scrn->virtualY - 1) << 16); /* ymax, xmax */
++ OUT_BATCH((pixmap->drawable.width - 1) | (pixmap->drawable.height - 1) << 16); /* ymax, xmax */
+ OUT_BATCH(0x00000000); /* yorigin, xorigin */
+ }
+
+@@ -1673,7 +1673,7 @@ gen6_upload_vertex_element_state(ScrnInfoPtr scrn)
+ }
+
+ static void
+-gen6_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo *surface_state_binding_table_bo, int n_src_surf)
++gen6_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo *surface_state_binding_table_bo, int n_src_surf, PixmapPtr pixmap)
+ {
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+
+@@ -1694,7 +1694,7 @@ gen6_emit_video_setup(ScrnInfoPtr scrn, drm_intel_bo *surface_state_binding_tabl
+ gen6_upload_wm_state(scrn, n_src_surf == 1 ? TRUE : FALSE);
+ gen6_upload_binding_table(scrn, (n_src_surf + 1) * ALIGN(sizeof(struct brw_surface_state), 32));;
+ gen6_upload_depth_buffer_state(scrn);
+- gen6_upload_drawing_rectangle(scrn);
++ gen6_upload_drawing_rectangle(scrn, pixmap);
+ gen6_upload_vertex_element_state(scrn);
+ }
+
+@@ -1853,7 +1853,7 @@ void Gen6DisplayVideoTextured(ScrnInfoPtr scrn,
+ intel_batch_submit(scrn, FALSE);
+
+ intel_batch_start_atomic(scrn, 200);
+- gen6_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf);
++ gen6_emit_video_setup(scrn, surface_state_binding_table_bo, n_src_surf, pixmap);
+
+ /* Set up the pointer to our vertex buffer */
+ OUT_BATCH(BRW_3DSTATE_VERTEX_BUFFERS | (5 - 2));
+diff --git a/src/intel.h b/src/intel.h
+index 9063328..4c755fc 100644
+--- a/src/intel.h
++++ b/src/intel.h
+@@ -227,8 +227,6 @@ static inline Bool intel_pixmap_tiled(PixmapPtr pixmap)
+ dri_bo *intel_get_pixmap_bo(PixmapPtr pixmap);
+ void intel_set_pixmap_bo(PixmapPtr pixmap, dri_bo * bo);
+
+-typedef struct _I830OutputRec I830OutputRec, *I830OutputPtr;
+-
+ #include "common.h"
+
+ #ifdef XvMCExtension
+@@ -239,39 +237,6 @@ typedef struct _I830OutputRec I830OutputRec, *I830OutputPtr;
+
+ #define PITCH_NONE 0
+
+-/** Record of a linear allocation in the aperture. */
+-typedef struct _intel_memory intel_memory;
+-struct _intel_memory {
+- /** Description of the allocation, for logging */
+- char *name;
+-
+- /** @{
+- * Memory allocator linked list pointers
+- */
+- intel_memory *next;
+- intel_memory *prev;
+- /** @} */
+-
+- drm_intel_bo *bo;
+- uint32_t gem_name;
+-};
+-
+-typedef struct _I830CrtcPrivateRec {
+- int pipe;
+- int plane;
+-
+- Bool enabled;
+-
+- int dpms_mode;
+-
+- int x, y;
+-
+- /* Lookup table values to be set when the CRTC is enabled */
+- uint8_t lut_r[256], lut_g[256], lut_b[256];
+-} I830CrtcPrivateRec, *I830CrtcPrivatePtr;
+-
+-#define I830CrtcPrivate(c) ((I830CrtcPrivatePtr) (c)->driver_private)
+-
+ /** enumeration of 3d consumers so some can maintain invariant state. */
+ enum last_3d {
+ LAST_3D_OTHER,
+@@ -288,19 +253,12 @@ enum dri_type {
+
+ typedef struct intel_screen_private {
+ ScrnInfoPtr scrn;
+- unsigned char *MMIOBase;
+ int cpp;
+
+ #define RENDER_BATCH I915_EXEC_RENDER
+ #define BLT_BATCH I915_EXEC_BLT
+ unsigned int current_batch;
+
+- unsigned int bufferOffset; /* for I830SelectBuffer */
+-
+- /* These are set in PreInit and never changed. */
+- long FbMapSize;
+- long GTTMapSize;
+-
+ void *modes;
+ drm_intel_bo *front_buffer;
+ long front_pitch, front_tiling;
+@@ -344,7 +302,6 @@ typedef struct intel_screen_private {
+ Bool has_relaxed_fencing;
+
+ int Chipset;
+- unsigned long LinearAddr;
+ EntityInfoPtr pEnt;
+ struct pci_device *PciInfo;
+ struct intel_chipset chipset;
+@@ -535,8 +492,6 @@ extern void I830InitVideo(ScreenPtr pScreen);
+ extern xf86CrtcPtr intel_covering_crtc(ScrnInfoPtr scrn, BoxPtr box,
+ xf86CrtcPtr desired, BoxPtr crtc_box_ret);
+
+-extern xf86CrtcPtr intel_pipe_to_crtc(ScrnInfoPtr scrn, int pipe);
+-
+ Bool I830DRI2ScreenInit(ScreenPtr pScreen);
+ void I830DRI2CloseScreen(ScreenPtr pScreen);
+ void I830DRI2FrameEventHandler(unsigned int frame, unsigned int tv_sec,
+@@ -545,11 +500,7 @@ void I830DRI2FlipEventHandler(unsigned int frame, unsigned int tv_sec,
+ unsigned int tv_usec, void *user_data);
+
+ extern Bool intel_crtc_on(xf86CrtcPtr crtc);
+-static inline int intel_crtc_to_pipe(xf86CrtcPtr crtc)
+-{
+- intel_screen_private *intel = intel_get_screen_private(crtc->scrn);
+- return intel_get_pipe_from_crtc_id(intel->bufmgr, crtc);
+-}
++int intel_crtc_to_pipe(xf86CrtcPtr crtc);
+
+ /* intel_memory.c */
+ unsigned long intel_get_fence_size(intel_screen_private *intel, unsigned long size);
+@@ -688,11 +639,6 @@ static inline drm_intel_bo *intel_bo_alloc_for_data(ScrnInfoPtr scrn,
+ return bo;
+ }
+
+-/* Flags for memory allocation function */
+-#define NEED_PHYSICAL_ADDR 0x00000001
+-#define ALLOW_SHARING 0x00000010
+-#define DISABLE_REUSE 0x00000020
+-
+ void intel_debug_flush(ScrnInfoPtr scrn);
+
+ static inline PixmapPtr get_drawable_pixmap(DrawablePtr drawable)
+@@ -715,7 +661,7 @@ static inline Bool pixmap_is_scanout(PixmapPtr pixmap)
+ const OptionInfoRec *intel_uxa_available_options(int chipid, int busid);
+
+ Bool intel_uxa_init(ScreenPtr pScreen);
+-void intel_uxa_create_screen_resources(ScreenPtr pScreen);
++Bool intel_uxa_create_screen_resources(ScreenPtr pScreen);
+ void intel_uxa_block_handler(intel_screen_private *intel);
+ Bool intel_get_aperture_space(ScrnInfoPtr scrn, drm_intel_bo ** bo_table,
+ int num_bos);
+diff --git a/src/intel_display.c b/src/intel_display.c
+index 1198013..f487a6e 100644
+--- a/src/intel_display.c
++++ b/src/intel_display.c
+@@ -70,6 +70,7 @@ struct intel_crtc {
+ struct intel_mode *mode;
+ drmModeModeInfo kmode;
+ drmModeCrtcPtr mode_crtc;
++ int pipe;
+ dri_bo *cursor;
+ dri_bo *rotate_bo;
+ uint32_t rotate_pitch;
+@@ -118,7 +119,6 @@ intel_output_dpms_backlight(xf86OutputPtr output, int oldmode, int mode);
+ * List of available kernel interfaces in priority order
+ */
+ static const char *backlight_interfaces[] = {
+- "intel", /* prefer our own native backlight driver */
+ "asus-laptop",
+ "eeepc",
+ "thinkpad_screen",
+@@ -128,6 +128,7 @@ static const char *backlight_interfaces[] = {
+ "samsung",
+ "acpi_video1", /* finally fallback to the generic acpi drivers */
+ "acpi_video0",
++ "intel_backlight",
+ NULL,
+ };
+ /*
+@@ -678,6 +679,9 @@ intel_crtc_init(ScrnInfoPtr scrn, struct intel_mode *mode, int num)
+ intel_crtc->mode = mode;
+ crtc->driver_private = intel_crtc;
+
++ intel_crtc->pipe = drm_intel_get_pipe_from_crtc_id(intel->bufmgr,
++ crtc_id(intel_crtc));
++
+ intel_crtc->cursor = drm_intel_bo_alloc(intel->bufmgr, "ARGB cursor",
+ HWCURSOR_SIZE_ARGB,
+ GTT_PAGE_SIZE);
+@@ -1671,16 +1675,15 @@ intel_mode_fini(intel_screen_private *intel)
+ intel->modes = NULL;
+ }
+
+-int
+-intel_get_pipe_from_crtc_id(drm_intel_bufmgr *bufmgr, xf86CrtcPtr crtc)
+-{
+- return drm_intel_get_pipe_from_crtc_id(bufmgr,
+- crtc_id(crtc->driver_private));
+-}
+-
+ /* for the mode overlay */
+ int
+ intel_crtc_id(xf86CrtcPtr crtc)
+ {
+ return crtc_id(crtc->driver_private);
+ }
++
++int intel_crtc_to_pipe(xf86CrtcPtr crtc)
++{
++ struct intel_crtc *intel_crtc = crtc->driver_private;
++ return intel_crtc->pipe;
++}
+diff --git a/src/intel_driver.c b/src/intel_driver.c
+index 1275e4b..ebed258 100644
+--- a/src/intel_driver.c
++++ b/src/intel_driver.c
+@@ -37,10 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #include "config.h"
+ #endif
+
+-#ifndef PRINT_MODE_INFO
+-#define PRINT_MODE_INFO 0
+-#endif
+-
+ #include <assert.h>
+ #include <string.h>
+ #include <stdio.h>
+@@ -80,10 +76,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #include "i915_drm.h"
+ #include <xf86drmMode.h>
+
+-#define BIT(x) (1 << (x))
+-#define MAX(a,b) ((a) > (b) ? (a) : (b))
+-#define NB_OF(x) (sizeof (x) / sizeof (*x))
+-
+ /* *INDENT-OFF* */
+ /*
+ * Note: "ColorKey" is provided for compatibility with the i810 driver.
+@@ -174,14 +166,6 @@ I830LoadPalette(ScrnInfoPtr scrn, int numColors, int *indices,
+
+ for (p = 0; p < xf86_config->num_crtc; p++) {
+ xf86CrtcPtr crtc = xf86_config->crtc[p];
+- I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+-
+- /* Initialize to the old lookup table values. */
+- for (i = 0; i < 256; i++) {
+- lut_r[i] = intel_crtc->lut_r[i] << 8;
+- lut_g[i] = intel_crtc->lut_g[i] << 8;
+- lut_b[i] = intel_crtc->lut_b[i] << 8;
+- }
+
+ switch (scrn->depth) {
+ case 15:
+@@ -250,9 +234,7 @@ static Bool i830CreateScreenResources(ScreenPtr screen)
+ if (!(*screen->CreateScreenResources) (screen))
+ return FALSE;
+
+- intel_uxa_create_screen_resources(screen);
+-
+- return TRUE;
++ return intel_uxa_create_screen_resources(screen);
+ }
+
+ static void PreInitCleanup(ScrnInfoPtr scrn)
+@@ -607,12 +589,9 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
+ intel->tiling = TRUE;
+
+ /* Allow user override if they set a value */
+- if (!ALWAYS_TILING(intel) && xf86IsOptionSet(intel->Options, OPTION_TILING)) {
+- if (xf86ReturnOptValBool(intel->Options, OPTION_TILING, FALSE))
+- intel->tiling = TRUE;
+- else
+- intel->tiling = FALSE;
+- }
++ if (!ALWAYS_TILING(intel))
++ intel->tiling = xf86ReturnOptValBool(intel->Options,
++ OPTION_TILING, TRUE);
+
+ intel->can_blt = can_accelerate_blt(intel);
+ intel->use_shadow = !intel->can_blt;
+@@ -631,19 +610,11 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
+ }
+
+ /* SwapBuffers delays to avoid tearing */
+- intel->swapbuffers_wait = TRUE;
+-
+- /* Allow user override if they set a value */
+- if (xf86IsOptionSet(intel->Options, OPTION_SWAPBUFFERS_WAIT)) {
+- if (xf86ReturnOptValBool
+- (intel->Options, OPTION_SWAPBUFFERS_WAIT, FALSE))
+- intel->swapbuffers_wait = TRUE;
+- else
+- intel->swapbuffers_wait = FALSE;
+- }
+-
++ intel->swapbuffers_wait = xf86ReturnOptValBool(intel->Options,
++ OPTION_SWAPBUFFERS_WAIT,
++ TRUE);
+ if (IS_GEN6(intel))
+- intel->swapbuffers_wait = FALSE;
++ intel->swapbuffers_wait = FALSE;
+
+ xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Tiling %sabled\n",
+ intel->tiling ? "en" : "dis");
+@@ -679,19 +650,12 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
+ }
+
+ /* Load the dri2 module if requested. */
+- if (xf86ReturnOptValBool(intel->Options, OPTION_DRI, FALSE) &&
+- intel->directRenderingType != DRI_DISABLED) {
++ if (intel->directRenderingType != DRI_DISABLED)
+ xf86LoadSubModule(scrn, "dri2");
+- }
+
+ return TRUE;
+ }
+
+-enum pipe {
+- PIPE_A = 0,
+- PIPE_B,
+-};
+-
+ /**
+ * Intialiazes the hardware for the 3D pipeline use in the 2D driver.
+ *
+@@ -733,50 +697,6 @@ I830BlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask)
+ intel_video_block_handler(intel);
+ }
+
+-static void intel_fixup_mtrrs(ScrnInfoPtr scrn)
+-{
+-#ifdef HAS_MTRR_SUPPORT
+- intel_screen_private *intel = intel_get_screen_private(scrn);
+- int fd;
+- struct mtrr_gentry gentry;
+- struct mtrr_sentry sentry;
+-
+- if ((fd = open("/proc/mtrr", O_RDONLY, 0)) != -1) {
+- for (gentry.regnum = 0;
+- ioctl(fd, MTRRIOC_GET_ENTRY, &gentry) == 0;
+- ++gentry.regnum) {
+-
+- if (gentry.size < 1) {
+- /* DISABLED */
+- continue;
+- }
+-
+- /* Check the MTRR range is one we like and if not - remove it.
+- * The Xserver common layer will then setup the right range
+- * for us.
+- */
+- if (gentry.base == intel->LinearAddr &&
+- gentry.size < intel->FbMapSize) {
+-
+- xf86DrvMsg(scrn->scrnIndex, X_INFO,
+- "Removing bad MTRR range (base 0x%lx, size 0x%x)\n",
+- gentry.base, gentry.size);
+-
+- sentry.base = gentry.base;
+- sentry.size = gentry.size;
+- sentry.type = gentry.type;
+-
+- if (ioctl(fd, MTRRIOC_DEL_ENTRY, &sentry) == -1) {
+- xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+- "Failed to remove bad MTRR range\n");
+- }
+- }
+- }
+- close(fd);
+- }
+-#endif
+-}
+-
+ static Bool
+ intel_init_initial_framebuffer(ScrnInfoPtr scrn)
+ {
+@@ -809,7 +729,7 @@ Bool intel_crtc_on(xf86CrtcPtr crtc)
+ {
+ ScrnInfoPtr scrn = crtc->scrn;
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+- int i, active_outputs = 0;
++ int i;
+
+ if (!crtc->enabled)
+ return FALSE;
+@@ -819,11 +739,9 @@ Bool intel_crtc_on(xf86CrtcPtr crtc)
+ xf86OutputPtr output = xf86_config->output[i];
+ if (output->crtc == crtc &&
+ intel_output_dpms_status(output) == DPMSModeOn)
+- active_outputs++;
++ return TRUE;
+ }
+
+- if (active_outputs)
+- return TRUE;
+ return FALSE;
+ }
+
+@@ -849,103 +767,102 @@ intel_flush_callback(CallbackListPtr *list,
+ static void
+ I830HandleUEvents(int fd, void *closure)
+ {
+- ScrnInfoPtr scrn = closure;
++ ScrnInfoPtr scrn = closure;
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+- struct udev_device *dev;
+- const char *hotplug;
+- struct stat s;
+- dev_t udev_devnum;
+-
+- dev = udev_monitor_receive_device(intel->uevent_monitor);
+- if (!dev)
+- return;
+-
+- udev_devnum = udev_device_get_devnum(dev);
+- fstat(intel->drmSubFD, &s);
+- /*
+- * Check to make sure this event is directed at our
+- * device (by comparing dev_t values), then make
+- * sure it's a hotplug event (HOTPLUG=1)
+- */
+-
+- hotplug = udev_device_get_property_value(dev, "HOTPLUG");
+-
+- if (memcmp(&s.st_rdev, &udev_devnum, sizeof (dev_t)) == 0 &&
+- hotplug && atoi(hotplug) == 1)
+- RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
+-
+- udev_device_unref(dev);
++ struct udev_device *dev;
++ const char *hotplug;
++ struct stat s;
++ dev_t udev_devnum;
++
++ dev = udev_monitor_receive_device(intel->uevent_monitor);
++ if (!dev)
++ return;
++
++ udev_devnum = udev_device_get_devnum(dev);
++ fstat(intel->drmSubFD, &s);
++ /*
++ * Check to make sure this event is directed at our
++ * device (by comparing dev_t values), then make
++ * sure it's a hotplug event (HOTPLUG=1)
++ */
++
++ hotplug = udev_device_get_property_value(dev, "HOTPLUG");
++
++ if (memcmp(&s.st_rdev, &udev_devnum, sizeof (dev_t)) == 0 &&
++ hotplug && atoi(hotplug) == 1)
++ RRGetInfo(screenInfo.screens[scrn->scrnIndex], TRUE);
++
++ udev_device_unref(dev);
+ }
+
+ static void
+ I830UeventInit(ScrnInfoPtr scrn)
+ {
+- intel_screen_private *intel = intel_get_screen_private(scrn);
+- struct udev *u;
+- struct udev_monitor *mon;
+- Bool hotplug;
+- MessageType from = X_CONFIG;
+-
+- if (!xf86GetOptValBool(intel->Options, OPTION_HOTPLUG, &hotplug)) {
+- from = X_DEFAULT;
+- hotplug = TRUE;
+- }
+-
+- xf86DrvMsg(scrn->scrnIndex, from, "hotplug detection: \"%s\"\n",
+- hotplug ? "enabled" : "disabled");
+- if (!hotplug)
+- return;
+-
+- u = udev_new();
+- if (!u)
+- return;
+-
+- mon = udev_monitor_new_from_netlink(u, "udev");
+-
+- if (!mon) {
+- udev_unref(u);
+- return;
+- }
+-
+- if (udev_monitor_filter_add_match_subsystem_devtype(mon,
+- "drm",
+- "drm_minor") < 0 ||
+- udev_monitor_enable_receiving(mon) < 0)
+- {
+- udev_monitor_unref(mon);
+- udev_unref(u);
+- return;
+- }
+-
+- intel->uevent_handler =
+- xf86AddGeneralHandler(udev_monitor_get_fd(mon),
+- I830HandleUEvents,
+- scrn);
+- if (!intel->uevent_handler) {
+- udev_monitor_unref(mon);
+- udev_unref(u);
+- return;
+- }
+-
+- intel->uevent_monitor = mon;
++ intel_screen_private *intel = intel_get_screen_private(scrn);
++ struct udev *u;
++ struct udev_monitor *mon;
++ Bool hotplug;
++ MessageType from = X_CONFIG;
++
++ if (!xf86GetOptValBool(intel->Options, OPTION_HOTPLUG, &hotplug)) {
++ from = X_DEFAULT;
++ hotplug = TRUE;
++ }
++
++ xf86DrvMsg(scrn->scrnIndex, from, "hotplug detection: \"%s\"\n",
++ hotplug ? "enabled" : "disabled");
++ if (!hotplug)
++ return;
++
++ u = udev_new();
++ if (!u)
++ return;
++
++ mon = udev_monitor_new_from_netlink(u, "udev");
++
++ if (!mon) {
++ udev_unref(u);
++ return;
++ }
++
++ if (udev_monitor_filter_add_match_subsystem_devtype(mon,
++ "drm",
++ "drm_minor") < 0 ||
++ udev_monitor_enable_receiving(mon) < 0)
++ {
++ udev_monitor_unref(mon);
++ udev_unref(u);
++ return;
++ }
++
++ intel->uevent_handler =
++ xf86AddGeneralHandler(udev_monitor_get_fd(mon),
++ I830HandleUEvents,
++ scrn);
++ if (!intel->uevent_handler) {
++ udev_monitor_unref(mon);
++ udev_unref(u);
++ return;
++ }
++
++ intel->uevent_monitor = mon;
+ }
+
+ static void
+ I830UeventFini(ScrnInfoPtr scrn)
+ {
+- intel_screen_private *intel = intel_get_screen_private(scrn);
++ intel_screen_private *intel = intel_get_screen_private(scrn);
+
+- if (intel->uevent_handler)
+- {
+- struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
++ if (intel->uevent_handler) {
++ struct udev *u = udev_monitor_get_udev(intel->uevent_monitor);
+
+- xf86RemoveGeneralHandler(intel->uevent_handler);
++ xf86RemoveGeneralHandler(intel->uevent_handler);
+
+- udev_monitor_unref(intel->uevent_monitor);
+- udev_unref(u);
+- intel->uevent_handler = NULL;
+- intel->uevent_monitor = NULL;
+- }
++ udev_monitor_unref(intel->uevent_monitor);
++ udev_unref(u);
++ intel->uevent_handler = NULL;
++ intel->uevent_monitor = NULL;
++ }
+ }
+ #endif /* HAVE_UDEV */
+
+@@ -961,32 +878,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ struct pci_device *const device = intel->PciInfo;
+ int fb_bar = IS_GEN2(intel) ? 0 : 2;
+
+- /*
+- * The "VideoRam" config file parameter specifies the maximum amount of
+- * memory that will be used/allocated. When not present, we allow the
+- * driver to allocate as much memory as it wishes to satisfy its
+- * allocations, but if agpgart support isn't available, it gets limited
+- * to the amount of pre-allocated ("stolen") memory.
+- *
+- * Note that in using this value for allocator initialization, we're
+- * limiting aperture allocation to the VideoRam option, rather than limiting
+- * actual memory allocation, so alignment and things will cause less than
+- * VideoRam to be actually used.
+- */
+- scrn->videoRam = intel->FbMapSize / KB(1);
+- if (intel->pEnt->device->videoRam != 0) {
+- if (scrn->videoRam != intel->pEnt->device->videoRam) {
+- xf86DrvMsg(scrn->scrnIndex, X_WARNING,
+- "VideoRam configuration found, which is no "
+- "longer used.\n");
+- xf86DrvMsg(scrn->scrnIndex, X_INFO,
+- "Continuing with (ignored) %dkB VideoRam "
+- "instead of %d kB.\n",
+- scrn->videoRam,
+- intel->pEnt->device->videoRam);
+- }
+- }
+-
+ scrn->videoRam = device->regions[fb_bar].size / 1024;
+
+ intel->last_3d = LAST_3D_OTHER;
+@@ -998,10 +889,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ */
+ intel->XvEnabled = TRUE;
+
+- xf86DrvMsg(scrn->scrnIndex,
+- intel->pEnt->device->videoRam ? X_CONFIG : X_DEFAULT,
+- "VideoRam: %d KB\n", scrn->videoRam);
+-
+ #ifdef DRI2
+ if (intel->directRenderingType == DRI_NONE
+ && I830DRI2ScreenInit(screen))
+@@ -1011,8 +898,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ if (!intel_init_initial_framebuffer(scrn))
+ return FALSE;
+
+- intel_fixup_mtrrs(scrn);
+-
+ intel_batch_init(scrn);
+
+ if (INTEL_INFO(intel)->gen >= 40)
+@@ -1159,7 +1044,7 @@ I830ScreenInit(int scrnIndex, ScreenPtr screen, int argc, char **argv)
+ I830UeventInit(scrn);
+ #endif
+
+- return uxa_resources_init(screen);
++ return TRUE;
+ }
+
+ static void i830AdjustFrame(int scrnIndex, int x, int y, int flags)
+@@ -1382,22 +1267,6 @@ static Bool I830PMEvent(int scrnIndex, pmEvent event, Bool undo)
+ return TRUE;
+ }
+
+-xf86CrtcPtr intel_pipe_to_crtc(ScrnInfoPtr scrn, int pipe)
+-{
+- xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
+- int c;
+-
+- for (c = 0; c < config->num_crtc; c++) {
+- xf86CrtcPtr crtc = config->crtc[c];
+- I830CrtcPrivatePtr intel_crtc = crtc->driver_private;
+-
+- if (intel_crtc->pipe == pipe)
+- return crtc;
+- }
+-
+- return NULL;
+-}
+-
+ void intel_init_scrn(ScrnInfoPtr scrn)
+ {
+ scrn->PreInit = I830PreInit;
+diff --git a/src/intel_uxa.c b/src/intel_uxa.c
+index 1a591f1..9341b91 100644
+--- a/src/intel_uxa.c
++++ b/src/intel_uxa.c
+@@ -1089,12 +1089,15 @@ static Bool intel_uxa_destroy_pixmap(PixmapPtr pixmap)
+ return TRUE;
+ }
+
+-void intel_uxa_create_screen_resources(ScreenPtr screen)
++Bool intel_uxa_create_screen_resources(ScreenPtr screen)
+ {
+ ScrnInfoPtr scrn = xf86Screens[screen->myNum];
+ intel_screen_private *intel = intel_get_screen_private(scrn);
+ dri_bo *bo = intel->front_buffer;
+
++ if (!uxa_resources_init(screen))
++ return FALSE;
++
+ drm_intel_gem_bo_map_gtt(bo);
+
+ if (intel->use_shadow) {
+@@ -1111,6 +1114,8 @@ void intel_uxa_create_screen_resources(ScreenPtr screen)
+ NULL);
+ scrn->displayWidth = intel->front_pitch / intel->cpp;
+ }
++
++ return TRUE;
+ }
+
+ static void
+@@ -1185,7 +1190,6 @@ Bool intel_uxa_init(ScreenPtr screen)
+
+ memset(intel->uxa_driver, 0, sizeof(*intel->uxa_driver));
+
+- intel->bufferOffset = 0;
+ intel->uxa_driver->uxa_major = 1;
+ intel->uxa_driver->uxa_minor = 0;
+
+diff --git a/src/intel_video.c b/src/intel_video.c
+index 2786201..5294f73 100644
+--- a/src/intel_video.c
++++ b/src/intel_video.c
+@@ -996,7 +996,7 @@ I830CopyPlanarData(intel_adaptor_private *adaptor_priv,
+ /* Copy V data for YV12, or U data for I420 */
+ src2 = buf + /* start of YUV data */
+ (srcH * srcPitch) + /* move over Luma plane */
+- ((top * srcPitch) >> 2) + /* move down from by top lines */
++ ((top >> 1) * srcPitch2) + /* move down from by top lines */
+ (left >> 1); /* move left by left pixels */
+
+ #if 0
+@@ -1015,7 +1015,7 @@ I830CopyPlanarData(intel_adaptor_private *adaptor_priv,
+ src3 = buf + /* start of YUV data */
+ (srcH * srcPitch) + /* move over Luma plane */
+ ((srcH >> 1) * srcPitch2) + /* move over Chroma plane */
+- ((top * srcPitch) >> 2) + /* move down from by top lines */
++ ((top >> 1) * srcPitch2) + /* move down from by top lines */
+ (left >> 1); /* move left by left pixels */
+ #if 0
+ ErrorF("src3 is %p, offset is %ld\n", src3,
+diff --git a/src/xvmc/i915_xvmc.c b/src/xvmc/i915_xvmc.c
+index 21a1149..fbd4555 100644
+--- a/src/xvmc/i915_xvmc.c
++++ b/src/xvmc/i915_xvmc.c
+@@ -391,7 +391,6 @@ static void i915_mc_static_indirect_state_set(XvMCContext * context,
+ i915XvMCContext *pI915XvMC = (i915XvMCContext *) context->privData;
+ struct intel_xvmc_surface *intel_surf = dest->privData;
+ struct i915_mc_static_indirect_state_buffer *buffer_info;
+- unsigned int w = dest->width;
+
+ drm_intel_gem_bo_map_gtt(pI915XvMC->sis_bo);
+ buffer_info = pI915XvMC->sis_bo->virtual;
+@@ -688,7 +687,7 @@ static void i915_mc_load_indirect_render_emit(XvMCContext * context)
+ {
+ i915XvMCContext *pI915XvMC = (i915XvMCContext *) context->privData;
+ int mem_select;
+- uint32_t load_indirect, buffer_address;
++ uint32_t load_indirect;
+ BATCH_LOCALS;
+
+ BEGIN_BATCH(5);
+diff --git a/src/xvmc/intel_batchbuffer.c b/src/xvmc/intel_batchbuffer.c
+index 337b2ce..2b5526c 100644
+--- a/src/xvmc/intel_batchbuffer.c
++++ b/src/xvmc/intel_batchbuffer.c
+@@ -64,8 +64,6 @@ static void i965_end_batch(void)
+
+ Bool intelInitBatchBuffer(void)
+ {
+- int i;
+-
+ if ((xvmc_driver->batch.buf =
+ drm_intel_bo_alloc(xvmc_driver->bufmgr,
+ "batch buffer", BATCH_SIZE, 0x1000)) == NULL) {
+diff --git a/src/xvmc/intel_batchbuffer.h b/src/xvmc/intel_batchbuffer.h
+index 6fa1c05..888abeb 100644
+--- a/src/xvmc/intel_batchbuffer.h
++++ b/src/xvmc/intel_batchbuffer.h
+@@ -24,7 +24,7 @@ extern int VERBOSE;
+
+ #define OUT_RELOC(bo,read_domains,write_domains,delta) \
+ do { \
+- *(unsigned int *)batch_ptr = delta + bo->offset; \
++ *(unsigned int *)batch_ptr = (delta) + bo->offset; \
+ intel_batch_emit_reloc(bo, read_domains, write_domains, delta, batch_ptr); \
+ batch_ptr += 4; \
+ } while (0)
+diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
+index 6cbec80..1b96945 100644
+--- a/src/xvmc/intel_xvmc.c
++++ b/src/xvmc/intel_xvmc.c
+@@ -105,8 +105,6 @@ unsigned int mb_bytes_420[] = {
+
+ void LOCK_HARDWARE(drm_context_t ctx)
+ {
+- char __ret = 0;
+-
+ PPTHREAD_MUTEX_LOCK();
+ assert(!xvmc_driver->locked);
+
+@@ -218,11 +216,6 @@ _X_EXPORT Status XvMCCreateContext(Display * display, XvPortID port,
+ int error_base;
+ int event_base;
+ int priv_count;
+- int isCapable;
+- int screen = DefaultScreen(display);
+- intel_xvmc_context_ptr intel_ctx;
+- int fd;
+- char *driverName = NULL, *deviceName = NULL;
+
+ /* Verify Obvious things first */
+ if (!display || !context)
+@@ -482,7 +475,6 @@ _X_EXPORT Status XvMCCreateBlocks(Display * display, XvMCContext * context,
+ unsigned int num_blocks,
+ XvMCBlockArray * block)
+ {
+- Status ret;
+ if (!display || !context || !num_blocks || !block)
+ return BadValue;
+
+@@ -505,7 +497,6 @@ _X_EXPORT Status XvMCCreateBlocks(Display * display, XvMCContext * context,
+ */
+ _X_EXPORT Status XvMCDestroyBlocks(Display * display, XvMCBlockArray * block)
+ {
+- Status ret;
+ if (!display || !block)
+ return BadValue;
+
+@@ -678,13 +669,10 @@ _X_EXPORT Status XvMCPutSurface(Display * display, XvMCSurface * surface,
+ */
+ _X_EXPORT Status XvMCSyncSurface(Display * display, XvMCSurface * surface)
+ {
+- Status ret;
+- int stat = 0;
+-
+ if (!display || !surface)
+ return XvMCBadSurface;
+
+- return ret;
++ return Success;
+ }
+
+ /*
+@@ -739,9 +727,6 @@ _X_EXPORT Status XvMCGetSurfaceStatus(Display * display, XvMCSurface * surface,
+ */
+ _X_EXPORT Status XvMCHideSurface(Display * display, XvMCSurface * surface)
+ {
+- int stat = 0;
+- Status ret;
+-
+ if (!display || !surface)
+ return XvMCBadSurface;
+
+@@ -1071,7 +1056,7 @@ _X_EXPORT Status XvMCLoadQMatrix(Display * display, XvMCContext * context,
+ _X_EXPORT Status XvMCPutSlice(Display * display, XvMCContext * context,
+ char *slice, int nbytes)
+ {
+- if (xvmc_driver->put_slice(display, context, slice, nbytes)) {
++ if (xvmc_driver->put_slice(display, context, (unsigned char *) slice, nbytes)) {
+ XVMC_ERR("PutSlice fail\n");
+ return BadValue;
+ }
+@@ -1082,7 +1067,7 @@ _X_EXPORT Status XvMCPutSlice2(Display * display, XvMCContext * context,
+ char *slice, int nbytes, int slice_code)
+ {
+ if (xvmc_driver->put_slice2
+- (display, context, slice, nbytes, slice_code)) {
++ (display, context, (unsigned char *) slice, nbytes, slice_code)) {
+ XVMC_ERR("PutSlice2 fail\n");
+ return BadValue;
+ }
+diff --git a/src/xvmc/intel_xvmc_dump.c b/src/xvmc/intel_xvmc_dump.c
+index 974bcbb..d22d311 100644
+--- a/src/xvmc/intel_xvmc_dump.c
++++ b/src/xvmc/intel_xvmc_dump.c
+@@ -38,7 +38,7 @@ void intel_xvmc_dump_open(void)
+ if (xvmc_dump)
+ return;
+
+- if (d = getenv("INTEL_XVMC_DUMP"))
++ if ((d = getenv("INTEL_XVMC_DUMP")))
+ xvmc_dump = 1;
+
+ if (xvmc_dump) {
+diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c
+index addc7c9..d72e105 100644
+--- a/src/xvmc/xvmc_vld.c
++++ b/src/xvmc/xvmc_vld.c
+@@ -785,7 +785,6 @@ static Status begin_surface(Display * display, XvMCContext * context,
+ XvMCSurface * future,
+ const XvMCMpegControl * control)
+ {
+- struct i965_xvmc_contex *i965_ctx;
+ struct intel_xvmc_surface *priv_target, *priv_past, *priv_future;
+ intel_xvmc_context_ptr intel_ctx = context->privData;
+ Status ret;
+diff --git a/uxa/uxa-accel.c b/uxa/uxa-accel.c
+index a5066c8..0650ac2 100644
+--- a/uxa/uxa-accel.c
++++ b/uxa/uxa-accel.c
+@@ -120,6 +120,10 @@ uxa_fill_spans(DrawablePtr pDrawable, GCPtr pGC, int n,
+
+ solid = uxa_acquire_solid(screen, src->pSourcePict);
+ FreePicture(src, 0);
++ if (!solid) {
++ FreePicture(dst, 0);
++ goto solid;
++ }
+
+ src = solid;
+ src_pixmap = uxa_get_offscreen_pixmap(src->pDrawable,
+@@ -1110,6 +1114,10 @@ try_solid:
+
+ solid = uxa_acquire_solid(screen, src->pSourcePict);
+ FreePicture(src, 0);
++ if (!solid) {
++ FreePicture(dst, 0);
++ goto err;
++ }
+
+ src = solid;
+ src_pixmap = uxa_get_offscreen_pixmap(src->pDrawable,
+diff --git a/uxa/uxa-glyphs.c b/uxa/uxa-glyphs.c
+index 420e891..0f5ddda 100644
+--- a/uxa/uxa-glyphs.c
++++ b/uxa/uxa-glyphs.c
+@@ -111,6 +111,9 @@ static void uxa_unrealize_glyph_caches(ScreenPtr pScreen)
+ uxa_screen_t *uxa_screen = uxa_get_screen(pScreen);
+ int i;
+
++ if (!uxa_screen->glyph_cache_initialized)
++ return;
++
+ for (i = 0; i < UXA_NUM_GLYPH_CACHE_FORMATS; i++) {
+ uxa_glyph_cache_t *cache = &uxa_screen->glyphCaches[i];
+
+@@ -120,6 +123,7 @@ static void uxa_unrealize_glyph_caches(ScreenPtr pScreen)
+ if (cache->glyphs)
+ free(cache->glyphs);
+ }
++ uxa_screen->glyph_cache_initialized = FALSE;
+ }
+
+ void uxa_glyphs_fini(ScreenPtr pScreen)
+@@ -145,6 +149,10 @@ static Bool uxa_realize_glyph_caches(ScreenPtr pScreen)
+ };
+ int i;
+
++ if (uxa_screen->glyph_cache_initialized)
++ return TRUE;
++
++ uxa_screen->glyph_cache_initialized = TRUE;
+ memset(uxa_screen->glyphCaches, 0, sizeof(uxa_screen->glyphCaches));
+
+ for (i = 0; i < sizeof(formats)/sizeof(formats[0]); i++) {
+@@ -214,17 +222,7 @@ Bool uxa_glyphs_init(ScreenPtr pScreen)
+ if (uxa_get_screen(pScreen)->force_fallback)
+ return TRUE;
+
+- /* We are trying to initialise per screen resources prior to the
+- * complete initialisation of the screen. So ensure the components
+- * that we depend upon are initialsed prior to our use.
+- */
+- if (!CreateScratchPixmapsForScreen(pScreen->myNum))
+- return FALSE;
+-
+- if (!uxa_realize_glyph_caches(pScreen))
+- return FALSE;
+-
+- return TRUE;
++ return uxa_realize_glyph_caches(pScreen);
+ }
+
+ /* The most efficient thing to way to upload the glyph to the screen
+diff --git a/uxa/uxa-priv.h b/uxa/uxa-priv.h
+index 92536cc..ac206af 100644
+--- a/uxa/uxa-priv.h
++++ b/uxa/uxa-priv.h
+@@ -139,6 +139,7 @@ typedef struct {
+ unsigned offScreenCounter;
+
+ uxa_glyph_cache_t glyphCaches[UXA_NUM_GLYPH_CACHE_FORMATS];
++ Bool glyph_cache_initialized;
+
+ PicturePtr solid_clear, solid_black, solid_white;
+ uxa_solid_cache_t solid_cache[UXA_NUM_SOLID_CACHE];
+diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
+index cf8b8ea..0f06e82 100644
+--- a/uxa/uxa-render.c
++++ b/uxa/uxa-render.c
+@@ -1061,6 +1061,8 @@ try_solid:
+ int src_off_x, src_off_y;
+
+ solid = uxa_acquire_solid(screen, src->pSourcePict);
++ if (!solid)
++ goto err_src;
+ FreePicture(src, 0);
+
+ src = solid;
+@@ -1090,6 +1092,7 @@ try_solid:
+ /* XXX xserver-1.8: CompositeRects is not tracked by Damage, so we must
+ * manually append the damaged regions ourselves.
+ */
++ pixman_region_translate(&region, -dst_x, -dst_y);
+ DamageRegionAppend(dst->pDrawable, &region);
+
+ pixman_region_fini(&region);
diff --git a/testing/xf86-video-mach64/PKGBUILD b/testing/xf86-video-mach64/PKGBUILD
new file mode 100644
index 000000000..0fa53fc78
--- /dev/null
+++ b/testing/xf86-video-mach64/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115331 2011-03-17 17:51:48Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-mach64
+pkgver=6.8.2
+pkgrel=6
+pkgdesc="X.org mach64 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mach64-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ mach64-fix-pixmap.patch)
+sha1sums=('b7303689a6a971b956061fd81399dc81adb865af'
+ '9658d16b964c1c0a3f8aa68f6706bd643cef321e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ${srcdir}/mach64-fix-pixmap.patch
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-mach64/mach64-fix-pixmap.patch b/testing/xf86-video-mach64/mach64-fix-pixmap.patch
new file mode 100644
index 000000000..6f1a64748
--- /dev/null
+++ b/testing/xf86-video-mach64/mach64-fix-pixmap.patch
@@ -0,0 +1,47 @@
+diff --git a/src/aticonsole.c b/src/aticonsole.c
+index 1be147e..6e742d9 100644
+--- a/src/aticonsole.c
++++ b/src/aticonsole.c
+@@ -28,6 +28,7 @@
+ #include "config.h"
+ #endif
+
++#include "xorgVersion.h"
+ #include "ati.h"
+ #include "aticonsole.h"
+ #include "atii2c.h"
+@@ -689,7 +690,9 @@ ATIEnterVT
+ ScreenPtr pScreen = pScreenInfo->pScreen;
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+ PixmapPtr pScreenPixmap;
++#if (XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 99, 1, 0))
+ DevUnion PixmapPrivate;
++#endif
+ Bool Entered;
+
+ if (!ATIEnterGraphics(NULL, pScreenInfo, pATI))
+@@ -714,19 +717,24 @@ ATIEnterVT
+ }
+
+ pScreenPixmap = (*pScreen->GetScreenPixmap)(pScreen);
++
++#if (XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 99, 1, 0))
+ PixmapPrivate = pScreenPixmap->devPrivate;
+ if (!PixmapPrivate.ptr)
+ pScreenPixmap->devPrivate = pScreenInfo->pixmapPrivate;
++#endif
+
+ /* Tell framebuffer about remapped aperture */
+ Entered = (*pScreen->ModifyPixmapHeader)(pScreenPixmap,
+ -1, -1, -1, -1, -1, pATI->pMemory);
+
++#if (XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 99, 1, 0))
+ if (!PixmapPrivate.ptr)
+ {
+ pScreenInfo->pixmapPrivate = pScreenPixmap->devPrivate;
+ pScreenPixmap->devPrivate.ptr = NULL;
+ }
++#endif
+
+ #ifdef XF86DRI_DEVEL
+
diff --git a/testing/xf86-video-mga/PKGBUILD b/testing/xf86-video-mga/PKGBUILD
new file mode 100644
index 000000000..c9793ef73
--- /dev/null
+++ b/testing/xf86-video-mga/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115334 2011-03-17 17:57:40Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-mga
+pkgver=1.4.13
+pkgrel=3
+pkgdesc="X.org mga video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'mga-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('55aa185cf381def4b5905c8b93694b8dfbd5c378')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-neomagic/PKGBUILD b/testing/xf86-video-neomagic/PKGBUILD
new file mode 100644
index 000000000..0b6469a69
--- /dev/null
+++ b/testing/xf86-video-neomagic/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115337 2011-03-17 17:59:49Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-neomagic
+pkgver=1.2.5
+pkgrel=4
+pkgdesc="X.org neomagic video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('02c994e2eae191b50a8cd556e5b52d82725073b3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-nouveau/PKGBUILD b/testing/xf86-video-nouveau/PKGBUILD
new file mode 100644
index 000000000..f5cb3da4a
--- /dev/null
+++ b/testing/xf86-video-nouveau/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 115274 2011-03-17 16:40:45Z andyrtr $
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: buddabrod <buddabrod@gmail.com>
+
+pkgname=xf86-video-nouveau
+_gitdate=20110316
+pkgver=0.0.16_git${_gitdate} # see configure.ac
+pkgrel=2
+pkgdesc="Open Source 3D acceleration driver for nVidia cards (experimental)"
+arch=('i686' 'x86_64')
+url="http://nouveau.freedesktop.org/wiki/"
+license=('GPL') #and MIT, not yet a license file, see http://nouveau.freedesktop.org/wiki/FAQ#head-09f75d03eb30011c754038a3893119a70745de4e
+depends=('libdrm' 'udev')
+optdepends=('nouveau-dri: experimental gallium3d features')
+makedepends=('xorg-server-devel' 'libdrm>=2.4.24' 'xf86driproto')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool') # 'force')
+install=${pkgname}.install
+source=(ftp://ftp.archlinux.org/other/$pkgname/xf86-video-nouveau-${_gitdate}.tar.bz2)
+md5sums=('0ab7a1c9d3ec5dd020c09212a58ca801')
+
+# source PKGBUILD && mksource
+mksource() {
+ mkdir /tmp/${pkgname}-${_gitdate}
+ pushd /tmp/${pkgname}-${_gitdate}
+ git clone -v --depth 1 git://anongit.freedesktop.org/nouveau/xf86-video-nouveau
+ cd xf86-video-nouveau
+ git archive --prefix=xf86-video-nouveau-${_gitdate}/ --format=tar HEAD | bzip2 > /tmp/${pkgname}-${_gitdate}/${pkgname}-${_gitdate}.tar.bz2
+ popd
+}
+
+build() {
+ cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+ ./autogen.sh --prefix=/usr
+ make
+}
+
+package() {
+ cd ${srcdir}/xf86-video-nouveau-${_gitdate}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/xf86-video-nouveau/xf86-video-nouveau.install b/testing/xf86-video-nouveau/xf86-video-nouveau.install
new file mode 100644
index 000000000..027154ff3
--- /dev/null
+++ b/testing/xf86-video-nouveau/xf86-video-nouveau.install
@@ -0,0 +1,16 @@
+post_install () {
+ cat << _EOF
+ ==> make sure you use KernelModeSetting (KMS)
+ ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+}
+
+post_upgrade() {
+ if [ "`vercmp $2 0.0.15_git20100117-1`" -lt 0 ]; then
+ cat << _EOF
+ ==> ATTENTION: Usermode support has been dropped
+ ==> make sure you use KernelModeSetting (KMS)
+ ==> see http://wiki.archlinux.org/index.php/Nouveau#KMS for more
+_EOF
+ fi
+}
diff --git a/testing/xf86-video-nv/PKGBUILD b/testing/xf86-video-nv/PKGBUILD
new file mode 100644
index 000000000..0ec636081
--- /dev/null
+++ b/testing/xf86-video-nv/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115341 2011-03-17 18:01:19Z andyrtr $
+# Maintainer:Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-nv
+pkgver=2.1.18
+pkgrel=3
+pkgdesc="X.org nv video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d35b2fa5a26a507a9cc95b69243d9fd0c0f32aa2')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-openchrome/LICENSE.txt b/testing/xf86-video-openchrome/LICENSE.txt
new file mode 100644
index 000000000..dff1dc37b
--- /dev/null
+++ b/testing/xf86-video-openchrome/LICENSE.txt
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2005-2007 The Openchrome Project [openchrome.org]
+ * Copyright 2004-2006 Luc Verhaegen.
+ * Copyright 2004-2005 The Unichrome Project [unichrome.sf.net]
+ * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+ * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sub license,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial portions
+ * of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
diff --git a/testing/xf86-video-openchrome/PKGBUILD b/testing/xf86-video-openchrome/PKGBUILD
new file mode 100644
index 000000000..c49885397
--- /dev/null
+++ b/testing/xf86-video-openchrome/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 115345 2011-03-17 18:03:35Z andyrtr $
+# Contributor: Paul Mattal <paul@mattal.com>
+# Maintainer: Juergen Hoetzel <juergen@hoetzel.info>
+
+pkgname=xf86-video-openchrome
+pkgver=0.2.904
+pkgrel=5
+pkgdesc="X.Org Openchrome drivers"
+arch=(i686 x86_64)
+license=('custom')
+url="http://www.openchrome.org"
+depends=('libdrm' 'libxvmc' 'unichrome-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc')
+replaces=('openchrome' 'xf86-video-via')
+options=('!libtool' '!makeflags')
+conflicts=('xf86-video-via' 'xf86-video-unichrome' 'openchrome' 'xorg-server<1.10.0')
+source=(http://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ drm_stdint.patch
+ svn-r839.patch
+ LICENSE.txt)
+md5sums=('f2481d98ef54febf5bffbb88a2a2426d'
+ 'bc516400ffc3df5d0dfe604f6245dd32'
+ '5aed4aa44dd5a6d3e2da9baad73ac0ab'
+ 'addb3cf2671f4cf7e91156952de1627f')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/svn-r839.patch"
+ patch -Np0 -i "${srcdir}/drm_stdint.patch"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+}
diff --git a/testing/xf86-video-openchrome/drm_stdint.patch b/testing/xf86-video-openchrome/drm_stdint.patch
new file mode 100644
index 000000000..226a015e2
--- /dev/null
+++ b/testing/xf86-video-openchrome/drm_stdint.patch
@@ -0,0 +1,10 @@
+--- src/via_xvmc.h.orig 2010-03-07 01:46:34.000000000 +0100
++++ src/via_xvmc.h 2010-03-07 01:46:45.000000000 +0100
+@@ -26,6 +26,7 @@
+ #ifndef _VIA_XVMC_H
+ #define _VIA_XVMC_H 1
+
++#include <stdint.h>
+ #include "via_drm.h"
+
+ /*
diff --git a/testing/xf86-video-openchrome/svn-r839.patch b/testing/xf86-video-openchrome/svn-r839.patch
new file mode 100644
index 000000000..8e5f05669
--- /dev/null
+++ b/testing/xf86-video-openchrome/svn-r839.patch
@@ -0,0 +1,1447 @@
+diff -ruN xf86-video-openchrome-0.2.904/ChangeLog ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog
+--- xf86-video-openchrome-0.2.904/ChangeLog 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/ChangeLog 2010-03-07 01:09:00.000000000 +0100
+@@ -1,3 +1,52 @@
++2010-02-10 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Fix bug with suspend and VT switch on VX800 and 64bit systems
++
++ * src/via_driver.h:
++ * src/via_video.c: (viaResetVideo), (viaSaveVideo),
++ (viaRestoreVideo), (viaExitVideo):
++ * src/via_video.h:
++
++2010-01-24 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Fix starting address restore and save (initial 64-bit support)
++
++ * src/via_crtc.c: (ViaFirstCRTCSetMode),
++ (ViaFirstCRTCSetStartingAddress):
++ * src/via_dri.c: (VIADRIAgpInit):
++ * src/via_driver.c: (VIASave), (VIARestore):
++ * src/via_driver.h:
++
++2009-12-04 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Enable new mode switch for VM800 chipsets
++
++ * src/via_driver.c: (VIASetupDefaultOptions):
++
++2009-11-21 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Add option to enable unaccelerated RandR rotation ("SWRandR").
++ The accelerated option "HWRandR" is currently not implemented.
++
++ * src/openchrome.man:
++ * src/via_driver.c: (VIAPreInit):
++
++2009-11-20 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Enabled new mode switch for PM800 chipset,
++ to resolve many bugs with resolution detecting and changing
++ (eg. switching to console)
++
++ * src/via_driver.c: (VIASetupDefaultOptions), (VIAPreInit):
++
++2009-11-07 Bartosz Kosiorek <gang65@poczta.onet.pl>
++
++ Add more comments to ViaSetSecondaryFIFO, add panel scale support for
++ CLE266 and KM400, fix bug with malloc.
++
++ * src/via_bandwidth.c: (ViaSetSecondaryFIFO):
++ * src/via_panel.c: (ViaPanelScale), (ViaPanelGetNativeDisplayMode):
++
+ 2009-09-26 Bartosz Kosiorek <gang65@poczta.onet.pl>
+
+ Save/restore ECK Clock Synthesizer
+diff -ruN xf86-video-openchrome-0.2.904/man/openchrome.man ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man
+--- xf86-video-openchrome-0.2.904/man/openchrome.man 2009-10-09 01:12:41.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/man/openchrome.man 2010-03-07 01:09:00.000000000 +0100
+@@ -59,7 +59,7 @@
+ .BI "Option \*qAccelMethod\*q \*q" string \*q
+ The driver supports "XAA" and "EXA" acceleration methods. The default
+ method is XAA, since EXA is still experimental. Contrary to XAA, EXA
+-implements acceleration for screen uploads and downlads (if DRI is
++implements acceleration for screen uploads and downloads (if DRI is
+ enabled) and for the Render/Composite extension.
+ .TP
+ .BI "Option \*qActiveDevice\*q \*q" string \*q
+@@ -81,7 +81,7 @@
+ no room for DRI textures, they will be allocated from the DRI part of
+ VRAM (see the option "MaxDRIMem"). The default amount of AGP is
+ 32768 kB. Note that the AGP aperture set in the BIOS must be able
+-to accomodate the amount of AGP memory specified here. Otherwise no
++to accommodate the amount of AGP memory specified here. Otherwise no
+ AGP memory will be available. It is safe to set a very large AGP
+ aperture in the BIOS.
+ .TP
+@@ -159,9 +159,16 @@
+ system. The sizes 640x480, 800x600, 1024x768, 1280x1024, and 1400x1050
+ are supported.
+ .TP
++.BI "Option \*qRotationType\*q \*q" string \*q
++Enabled rotation by using RandR. The driver only support unaccelerated
++RandR rotations "SWRandR". Hardware rotations "HWRandR" is currently
++unimplemented.
++.TP
+ .BI "Option \*qRotate\*q \*q" string \*q
+ Rotates the display either clockwise ("CW"), counterclockwise ("CCW") and
+-upside-down ("UD"). Rotation is only supported unaccelerated.
++upside-down ("UD"). Rotation is only supported unaccelerated. Adding
++option "Rotate", enables RandR rotation feature. The RandR allows
++clients to dynamically change X screens.
+ .TP
+ .BI "Option \*qShadowFB\*q \*q" boolean \*q
+ Enables the use of a shadow frame buffer. This is required when
+diff -ruN xf86-video-openchrome-0.2.904/src/svnversion.h ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h
+--- xf86-video-openchrome-0.2.904/src/svnversion.h 2009-10-09 01:19:04.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/svnversion.h 2010-03-07 01:09:15.000000000 +0100
+@@ -1 +1 @@
+-#define BUILDCOMMENT "(openchrome 0.2.904 release)"
++#define BUILDCOMMENT "(development build, at svn revision 839)"
+diff -ruN xf86-video-openchrome-0.2.904/src/via_accel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c
+--- xf86-video-openchrome-0.2.904/src/via_accel.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_accel.c 2010-03-07 01:09:00.000000000 +0100
+@@ -1210,7 +1210,8 @@
+
+ /* General acceleration flags. */
+ xaaptr->Flags = (PIXMAP_CACHE |
+- OFFSCREEN_PIXMAPS | LINEAR_FRAMEBUFFER |
++ OFFSCREEN_PIXMAPS |
++ LINEAR_FRAMEBUFFER |
+ MICROSOFT_ZERO_LINE_BIAS | 0);
+
+ if (pScrn->bitsPerPixel == 8)
+@@ -1228,14 +1229,17 @@
+
+ xaaptr->Sync = viaAccelSync;
+
++ /* ScreenToScreen copies */
+ xaaptr->SetupForScreenToScreenCopy = viaSetupForScreenToScreenCopy;
+ xaaptr->SubsequentScreenToScreenCopy = viaSubsequentScreenToScreenCopy;
+ xaaptr->ScreenToScreenCopyFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Solid filled rectangles */
+ xaaptr->SetupForSolidFill = viaSetupForSolidFill;
+ xaaptr->SubsequentSolidFillRect = viaSubsequentSolidFillRect;
+ xaaptr->SolidFillFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Mono 8x8 pattern fills */
+ xaaptr->SetupForMono8x8PatternFill = viaSetupForMono8x8PatternFill;
+ xaaptr->SubsequentMono8x8PatternFillRect =
+ viaSubsequentMono8x8PatternFillRect;
+@@ -1244,6 +1248,7 @@
+ HARDWARE_PATTERN_PROGRAMMED_ORIGIN |
+ BIT_ORDER_IN_BYTE_MSBFIRST | 0);
+
++ /* Color 8x8 pattern fills */
+ xaaptr->SetupForColor8x8PatternFill = viaSetupForColor8x8PatternFill;
+ xaaptr->SubsequentColor8x8PatternFillRect =
+ viaSubsequentColor8x8PatternFillRect;
+@@ -1252,12 +1257,14 @@
+ HARDWARE_PATTERN_PROGRAMMED_BITS |
+ HARDWARE_PATTERN_PROGRAMMED_ORIGIN | 0);
+
++ /* Solid lines */
+ xaaptr->SetupForSolidLine = viaSetupForSolidLine;
+ xaaptr->SubsequentSolidTwoPointLine = viaSubsequentSolidTwoPointLine;
+ xaaptr->SubsequentSolidHorVertLine = viaSubsequentSolidHorVertLine;
+ xaaptr->SolidBresenhamLineErrorTermBits = 14;
+ xaaptr->SolidLineFlags = NO_PLANEMASK | ROP_NEEDS_SOURCE;
+
++ /* Dashed line */
+ xaaptr->SetupForDashedLine = viaSetupForDashedLine;
+ xaaptr->SubsequentDashedTwoPointLine = viaSubsequentDashedTwoPointLine;
+ xaaptr->DashPatternMaxLength = 8;
+@@ -1266,35 +1273,42 @@
+ LINE_PATTERN_POWER_OF_2_ONLY |
+ LINE_PATTERN_MSBFIRST_LSBJUSTIFIED | 0);
+
++ /* CPU to Screen color expansion */
+ xaaptr->ScanlineCPUToScreenColorExpandFillFlags = NO_PLANEMASK |
+- CPU_TRANSFER_PAD_DWORD |
+- SCANLINE_PAD_DWORD |
+- BIT_ORDER_IN_BYTE_MSBFIRST |
+- LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0;
++ CPU_TRANSFER_PAD_DWORD |
++ SCANLINE_PAD_DWORD |
++ BIT_ORDER_IN_BYTE_MSBFIRST |
++ LEFT_EDGE_CLIPPING |
++ ROP_NEEDS_SOURCE | 0;
+
+ xaaptr->SetupForScanlineCPUToScreenColorExpandFill =
+ viaSetupForCPUToScreenColorExpandFill;
+ xaaptr->SubsequentScanlineCPUToScreenColorExpandFill =
+ viaSubsequentScanlineCPUToScreenColorExpandFill;
+ xaaptr->ColorExpandBase = pVia->BltBase;
+- xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++ if (pVia->Chipset == VIA_VX800 || pVia->Chipset == VIA_VX855)
++ xaaptr->ColorExpandRange = VIA_MMIO_BLTSIZE;
++ else
++ xaaptr->ColorExpandRange = (64 * 1024);
+
++ /* ImageWrite */
+ xaaptr->ImageWriteFlags = (NO_PLANEMASK |
+ CPU_TRANSFER_PAD_DWORD |
+ SCANLINE_PAD_DWORD |
+ BIT_ORDER_IN_BYTE_MSBFIRST |
+- LEFT_EDGE_CLIPPING | ROP_NEEDS_SOURCE | 0);
++ LEFT_EDGE_CLIPPING |
++ ROP_NEEDS_SOURCE | 0);
+ // SYNC_AFTER_IMAGE_WRITE | 0);
+
+ /*
+ * Most Unichromes are much faster using processor-to-framebuffer writes
+ * than when using the 2D engine for this.
+- * test with x11perf -shmput500!
++ * test with "x11perf -shmput500"
++ * Example: K8M890 chipset; with GPU=86.3/sec; without GPU=132.0/sec
++ * TODO Check speed for other chipsets
+ */
+
+ switch (pVia->Chipset) {
+- case VIA_K8M800:
+- case VIA_K8M890:
+ case VIA_P4M900:
+ case VIA_VX800:
+ case VIA_VX855:
+diff -ruN xf86-video-openchrome-0.2.904/src/via_bandwidth.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c
+--- xf86-video-openchrome-0.2.904/src/via_bandwidth.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_bandwidth.c 2010-03-07 01:09:00.000000000 +0100
+@@ -194,6 +194,7 @@
+ else
+ ViaSeqMask(hwp, 0x22, 0x00, 0x1F); /* 128/4 = overflow = 0 */
+ break;
++ /* PM800/PM880/CN400 */
+ case VIA_PM800:
+ hwp->writeSeq(hwp, 0x17, 0x5F); /* 95 */
+ ViaSeqMask(hwp, 0x16, 0x20, 0xBF); /* 32 */
+@@ -204,9 +205,10 @@
+ else
+ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 31 */
+ break;
++ /* P4M800Pro/VN800/CN700 */
+ case VIA_VM800:
+ hwp->writeSeq(hwp, 0x17, 0x2F);
+- ViaSeqMask(hwp, 0x16, 0x14, 0xBF);
++ ViaSeqMask(hwp, 0x16, 0x14, 0xBF); /* 80/4 = 20 = 0x14 */
+ ViaSeqMask(hwp, 0x18, 0x08, 0xBF);
+
+ if ((mode->HDisplay >= 1400) && (pScrn->bitsPerPixel == 32))
+@@ -215,40 +217,51 @@
+ ViaSeqMask(hwp, 0x22, 0x00, 0x1F);
+ break;
+ case VIA_K8M890:
+- hwp->writeSeq(hwp, 0x16, 0x92);
+- hwp->writeSeq(hwp, 0x17, 0xB3);
+- hwp->writeSeq(hwp, 0x18, 0x8A);
++ /* depth location: {SR17,0,7} */
++ hwp->writeSeq(hwp, 0x17, 0xB3); /* 360/2-1 = 179 = 0xB3 */
++ /* Formula (x & 0x3F) | ((x & 0x40) << 1) */
++ /* threshold location: {SR16,0,5},{SR16,7,7} */
++ ViaSeqMask(hwp, 0x16, 0x92, 0xBF); /* 328/4 = 82 = 0x52 */
++ /* high threshold location: {SR18,0,5},{SR18,7,7} */
++ ViaSeqMask(hwp, 0x18, 0x8A, 0xBF); /* 296/4 = 74 = 0x4A */
++ /* display queue expire num location: {SR22,0,4}. */
++ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_P4M900:
+- ViaSeqMask(hwp, 0x17, 0x2F, 0xFF);
+- ViaSeqMask(hwp, 0x16, 0x13, 0x3F);
+- ViaSeqMask(hwp, 0x16, 0x00, 0x80);
+- ViaSeqMask(hwp, 0x18, 0x13, 0x3F);
+- ViaSeqMask(hwp, 0x18, 0x00, 0x80);
++ /* location: {SR17,0,7} */
++ hwp->writeSeq(hwp, 0x17, 0x2F); /* 96/2-1 = 47 = 0x2F */
++ /* location: {SR16,0,5},{SR16,7,7} */
++ ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ /* location: {SR18,0,5},{SR18,7,7} */
++ ViaSeqMask(hwp, 0x18, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ /* location: {SR22,0,4}. */
++ ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4 = 8 = 0x08 */
+ break;
+ case VIA_P4M890:
+- hwp->writeSeq(hwp, 0x16, 0x13);
+- hwp->writeSeq(hwp, 0x17, 0x2F);
+- hwp->writeSeq(hwp, 0x18, 0x53);
+- hwp->writeSeq(hwp, 0x22, 0x10);
++ hwp->writeSeq(hwp, 0x17, 0x2F); /* 96/2-1 = 47 = 0x2F */
++ ViaSeqMask(hwp, 0x16, 0x13, 0xBF); /* 76/4 = 19 = 0x13 */
++ ViaSeqMask(hwp, 0x18, 0x10, 0xBF); /* 64/4 = 16 = 0x10 */
++ ViaSeqMask(hwp, 0x22, 0x08, 0x1F); /* 32/4 = 8 = 0x08 */
+ break;
+ case VIA_CX700:
+- hwp->writeSeq(hwp, 0x16, 0x26);
+ hwp->writeSeq(hwp, 0x17, 0x5F);
+- hwp->writeSeq(hwp, 0x18, 0x66);
+- hwp->writeSeq(hwp, 0x22, 0x1F);
++ ViaSeqMask(hwp, 0x16, 0x20, 0xBF); /* 128/4 = 32 = 0x20 */
++ ViaSeqMask(hwp, 0x18, 0x20, 0xBF); /* 128/4 = 32 = 0x20 */
++ ViaSeqMask(hwp, 0x22, 0x1F, 0x1F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_VX800:
+- hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4 = 38 */
+- hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 */
++ hwp->writeSeq(hwp, 0x17, 0x5F); /* 192/2-1 = 95 = 0x5F */
++ hwp->writeSeq(hwp, 0x16, 0x26); /* 152/4 = 38 = 0x26 */
+ hwp->writeSeq(hwp, 0x18, 0x26); /* 152/4 = 38 */
+ hwp->writeSeq(hwp, 0x22, 0x10); /* 64/4 = 16 */
+ break;
+ case VIA_VX855:
+- hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4 = 80 */
+- hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 */
+- hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4 = 80 */
+- hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4 = 40 */
++ hwp->writeSeq(hwp, 0x17, 0xC7); /* 400/2-1 = 199 = 0xC7 */
++ /* TODO Formula for SR16 is: (0x50 & 0x3F) | ((0x50 & 0x40) << 1) = 0x90 */
++ hwp->writeSeq(hwp, 0x16, 0x50); /* 320/4 = 80 = 0x50 */
++ hwp->writeSeq(hwp, 0x18, 0x50); /* 320/4 = 80 = 0x50 */
++ hwp->writeSeq(hwp, 0x22, 0x28); /* 160/4 = 40 = 0x28 */
++ break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "ViaSetPrimaryFIFO: "
+ "Chipset %d not implemented\n", pVia->Chipset);
+@@ -371,7 +384,38 @@
+ ViaCrtcMask(hwp, 0x94, 0x20, 0x7F);
+ break;
+ case VIA_P4M890:
++ /* depth location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++ ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0); /* 96/8-1 = 11 = 0x0B */
++ ViaCrtcMask(hwp, 0x94, 0x00, 0x80);
++ ViaCrtcMask(hwp, 0x95, 0x00, 0x80);
++
++ /* location: {CR68,0,3},{CR95,4,6} */
++ ViaCrtcMask(hwp, 0x68, 0x03, 0x0F); /* 76/4 = 19 = 0x13 */
++ ViaCrtcMask(hwp, 0x95, 0x10, 0x70);
++
++ /* location: {CR92,0,3},{CR95,0,2} */
++ ViaCrtcMask(hwp, 0x92, 0x00, 0x0F); /* 64/4 = 16 = 0x10 */
++ ViaCrtcMask(hwp, 0x95, 0x01, 0x07);
++
++ /* location: {CR94,0,6} */
++ ViaCrtcMask(hwp, 0x94, 0x08, 0x7F); /* 32/4 = 8 = 0x08 */
++ break;
+ case VIA_K8M890:
++ /* Display Queue Depth, location: {CR68,4,7},{CR94,7,7},{CR95,7,7} */
++ ViaCrtcMask(hwp, 0x68, 0xC0, 0xF0); /* 360/8-1 = 44 = 0x2C; 0x2C << 4 = 0xC0 */
++ ViaCrtcMask(hwp, 0x94, 0x00, 0x80); /* 0x2C << 3 = 0x00 */
++ ViaCrtcMask(hwp, 0x95, 0x80, 0x80); /* 0x2C << 2 = 0x80 */
++
++ /* Display Queue Read Threshold 1, location: {CR68,0,3},{CR95,4,6} */
++ ViaCrtcMask(hwp, 0x68, 0x02, 0x0F); /* 328/4 = 82 = 0x52 */
++ ViaCrtcMask(hwp, 0x95, 0x50, 0x70);
++
++ /* location: {CR92,0,3},{CR95,0,2} */
++ ViaCrtcMask(hwp, 0x92, 0x0A, 0x0F); /* 296/4 = 74 = 0x4A */
++ ViaCrtcMask(hwp, 0x95, 0x04, 0x07); /* 0x4A >> 4 = 0x04 */
++
++ /* Display Expire Number Bits, location: {CR94,0,6} */
++ ViaCrtcMask(hwp, 0x94, 0x1F, 0x7F); /* 124/4 = 31 = 0x1F */
+ break;
+ case VIA_P4M900:
+ ViaCrtcMask(hwp, 0x68, 0xB0, 0xF0);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_crtc.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c
+--- xf86-video-openchrome-0.2.904/src/via_crtc.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_crtc.c 2010-03-07 01:09:00.000000000 +0100
+@@ -234,8 +234,8 @@
+ /* Primary starting address -> 0x00, adjustframe does the rest */
+ hwp->writeCrtc(hwp, 0x0C, 0x00);
+ hwp->writeCrtc(hwp, 0x0D, 0x00);
+- hwp->writeCrtc(hwp, 0x34, 0x00);
+ ViaCrtcMask(hwp, 0x48, 0x00, 0x03); /* is this even possible on CLE266A ? */
++ hwp->writeCrtc(hwp, 0x34, 0x00);
+
+ /* vertical sync start : 2047 */
+ temp = mode->CrtcVSyncStart;
+@@ -331,15 +331,20 @@
+ CARD32 Base;
+ CARD32 tmp;
+
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaFirstCRTCSetStartingAddress\n"));
++
+ Base = (y * pScrn->displayWidth + x) * (pScrn->bitsPerPixel / 8);
+ Base = Base >> 1;
+
+ hwp->writeCrtc(hwp, 0x0C, (Base & 0xFF00) >> 8);
+ hwp->writeCrtc(hwp, 0x0D, Base & 0xFF);
+- hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
+-
++ /* FIXME The proper starting address for CR48 is 0x1F - Bits[28:24] */
+ if (!(pVia->Chipset == VIA_CLE266 && CLE266_REV_IS_AX(pVia->ChipRev)))
+ ViaCrtcMask(hwp, 0x48, Base >> 24, 0x0F);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ hwp->writeCrtc(hwp, 0x34, (Base & 0xFF0000) >> 16);
++
++
+ }
+
+ void
+diff -ruN xf86-video-openchrome-0.2.904/src/via_cursor.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c
+--- xf86-video-openchrome-0.2.904/src/via_cursor.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_cursor.c 2010-03-07 01:09:00.000000000 +0100
+@@ -145,9 +145,12 @@
+ infoPtr->ShowCursor = viaShowCursor;
+ infoPtr->UseHWCursor = viaUseHWCursor;
+
++ /* ARGB Cursor init */
+ infoPtr->UseHWCursorARGB = viaUseHWCursorARGB;
+- if (pVia->CursorARGBSupported)
++ if (pVia->CursorARGBSupported) {
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "HWCursor ARGB enabled\n"));
+ infoPtr->LoadCursorARGB = viaLoadCursorARGB;
++ }
+
+ /* Set cursor location in frame buffer. */
+ VIASETREG(VIA_REG_CURSOR_MODE, pVia->cursorOffset);
+@@ -284,7 +287,7 @@
+ }
+
+ /*
+- * ARGB Cursor
++ * display the current cursor
+ */
+
+ void
+@@ -319,13 +322,19 @@
+ */
+
+ /* Duoview */
+- if (pVia->CursorPipe)
++ if (pVia->CursorPipe) {
++ /* Mono Cursor Display Path [bit31]: Secondary */
++ /* FIXME For CLE266 nad KM400 try to enable 32x32 cursor size [bit1] */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, 0xF6000005);
+- else
++ } else {
++ /* Mono Cursor Display Path [bit31]: Primary */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, 0x76000005);
++ }
+ }
+ }
+
++
++/* hide the current cursor */
+ void
+ viaHideCursor(ScrnInfoPtr pScrn)
+ {
+@@ -350,10 +359,16 @@
+
+ default:
+ temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++ /* Hardware cursor disable [bit0] */
+ VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFA);
+ }
+ }
+
++/*
++ Set the cursor position to (x,y). X and/or y may be negative
++ indicating that the cursor image is partially offscreen on
++ the left and/or top edges of the screen.
++*/
+ static void
+ viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
+ {
+@@ -409,6 +424,15 @@
+ && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+
++/*
++ If the driver is unable to use a hardware cursor for reasons
++ other than the cursor being larger than the maximum specified
++ in the MaxWidth or MaxHeight field below, it can supply the
++ UseHWCursor function. If UseHWCursor is provided by the driver,
++ it will be called whenever the cursor shape changes or the video
++ mode changes. This is useful for when the hardware cursor cannot
++ be used in interlaced or doublescan modes.
++*/
+ static Bool
+ viaUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
+ {
+@@ -423,8 +447,11 @@
+ && pCurs->bits->height <= pVia->CursorMaxHeight);
+ }
+
++/*
++ Load Mono Cursor Image
++*/
+ static void
+-viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *s)
++viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *src)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+ CARD32 temp;
+@@ -439,7 +466,7 @@
+ if (pVia->CursorARGBSupported) {
+ #define ARGB_PER_CHUNK (8 * sizeof (chunk) / 2)
+ for (i = 0; i < (pVia->CursorMaxWidth * pVia->CursorMaxHeight / ARGB_PER_CHUNK); i++) {
+- chunk = *s++;
++ chunk = *src++;
+ for (j = 0; j < ARGB_PER_CHUNK; j++, chunk >>= 2)
+ *dst++ = mono_cursor_color[chunk & 3];
+ }
+@@ -447,7 +474,7 @@
+ pVia->CursorFG = mono_cursor_color[3];
+ pVia->CursorBG = mono_cursor_color[2];
+ } else {
+- memcpy(dst, (CARD8*)s, pVia->CursorSize);
++ memcpy(dst, (CARD8*)src, pVia->CursorSize);
+ }
+ switch(pVia->Chipset) {
+ case VIA_CX700:
+@@ -471,11 +498,17 @@
+ }
+ }
+
++/*
++ Set the cursor foreground and background colors. In 8bpp, fg and
++ bg are indicies into the current colormap unless the
++ HARDWARE_CURSOR_TRUECOLOR_AT_8BPP flag is set. In that case
++ and in all other bpps the fg and bg are in 8-8-8 RGB format.
++*/
++
+ static void
+ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+- CARD32 control = pVia->CursorRegControl;
+ CARD32 pixel;
+ CARD32 temp;
+ CARD32 *dst;
+@@ -487,12 +520,10 @@
+ fg |= 0xff000000;
+ bg |= 0xff000000;
+
++ /* Don't recolour the image if we don't have to. */
+ if (fg == pVia->CursorFG && bg == pVia->CursorBG)
+ return;
+
+- temp = VIAGETREG(control);
+- VIASETREG(control, temp & 0xFFFFFFFE);
+-
+ dst = (CARD32*)pVia->cursorMap;
+ for (i = 0; i < pVia->CursorMaxWidth * pVia->CursorMaxHeight; i++, dst++)
+ if ((pixel = *dst))
+@@ -517,7 +548,8 @@
+ }
+ break;
+ default:
+- VIASETREG(control, temp);
++ temp = VIAGETREG(VIA_REG_ALPHA_CONTROL);
++ VIASETREG(VIA_REG_ALPHA_CONTROL, temp & 0xFFFFFFFE);
+ }
+ }
+
+diff -ruN xf86-video-openchrome-0.2.904/src/via_dri.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c
+--- xf86-video-openchrome-0.2.904/src/via_dri.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_dri.c 2010-03-07 01:09:00.000000000 +0100
+@@ -267,6 +267,11 @@
+ pVIADRI = pDRIInfo->devPrivate;
+ pVia->agpSize = 0;
+
++/* For AMD64 */
++#ifdef __x86_64__
++ return FALSE;
++#endif
++
+ if (drmAgpAcquire(pVia->drmFD) < 0) {
+ xf86DrvMsg(pScreen->myNum, X_ERROR, "[drm] drmAgpAcquire failed %d\n",
+ errno);
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c
+--- xf86-video-openchrome-0.2.904/src/via_driver.c 2009-10-09 00:46:15.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.c 2010-03-07 01:09:00.000000000 +0100
+@@ -178,8 +178,8 @@
+ {VIA_P4M900, "P4M900/VN896/CN896"},
+ {VIA_CX700, "CX700/VX700"},
+ {VIA_P4M890, "P4M890"},
+- {VIA_VX800, "VX800"},
+- {VIA_VX855, "VX855"},
++ {VIA_VX800, "VX800/VX820"},
++ {VIA_VX855, "VX855/VX875"},
+ {-1, NULL }
+ };
+
+@@ -215,6 +215,7 @@
+ OPTION_EXA_SCRATCH_SIZE,
+ OPTION_SWCURSOR,
+ OPTION_SHADOW_FB,
++ OPTION_ROTATION_TYPE,
+ OPTION_ROTATE,
+ OPTION_VIDEORAM,
+ OPTION_ACTIVEDEVICE,
+@@ -253,6 +254,7 @@
+ {OPTION_EXA_SCRATCH_SIZE, "ExaScratchSize", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_SWCURSOR, "SWCursor", OPTV_BOOLEAN, {0}, FALSE},
+ {OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE},
++ {OPTION_ROTATION_TYPE, "RotationType", OPTV_ANYSTR, {0}, FALSE},
+ {OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE},
+ {OPTION_VIDEORAM, "VideoRAM", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_ACTIVEDEVICE, "ActiveDevice", OPTV_ANYSTR, {0}, FALSE},
+@@ -307,6 +309,7 @@
+ {
+ static Bool setupDone = FALSE;
+
++ /* Only be loaded once */
+ if (!setupDone) {
+ setupDone = TRUE;
+ xf86AddDriver(&VIA, module,
+@@ -339,6 +342,7 @@
+ if (pScrn->driverPrivate)
+ return TRUE;
+
++ /* allocate VIARec */
+ pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1);
+ VIAPtr pVia = ((VIARec *) (pScrn->driverPrivate));
+
+@@ -455,7 +459,6 @@
+ {
+ ScrnInfoPtr scrn = NULL;
+ EntityInfoPtr entity;
+- DevUnion *private;
+
+ scrn = xf86ConfigPciEntity(scrn, 0, entity_num, VIAPciChipsets,
+ NULL, NULL, NULL, NULL, NULL);
+@@ -652,6 +655,12 @@
+ vbeInfoPtr pVbe;
+
+ if (xf86LoadSubModule(pScrn, "vbe")) {
++ /* FIXME This line should be replaced to:
++
++ pVbe = VBEExtendedInit(NULL, index, 0);
++
++ for XF86 version > 4.2.99
++ */
+ pVbe = VBEInit(NULL, index);
+ ConfiguredMonitor = vbeDoEDID(pVbe, NULL);
+ vbeFree(pVbe);
+@@ -664,7 +673,7 @@
+ VIAPtr pVia = VIAPTR(pScrn);
+ VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions\n"));
++ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIASetupDefaultOptions - Setting up default chipset options.\n"));
+
+ pVia->shadowFB = FALSE;
+ pVia->NoAccel = FALSE;
+@@ -688,6 +697,9 @@
+ #ifdef HAVE_DEBUG
+ pVia->PrintVGARegs = FALSE;
+ #endif
++
++ /* Disable vertical interpolation because the size of */
++ /* line buffer (limited to 800) is too small to do interpolation. */
+ pVia->swov.maxWInterp = 800;
+ pVia->swov.maxHInterp = 600;
+ pVia->useLegacyVBE = TRUE;
+@@ -713,11 +725,14 @@
+ pVia->UseLegacyModeSwitch = TRUE;
+ break;
+ case VIA_PM800:
++ /* Use new mode switch to resolve many resolution and display bugs (switch to console) */
++ /* FIXME The video playing (XV) is not working correctly after turn on new mode switch */
+ pVia->VideoEngine = VIDEO_ENGINE_CME;
+- pVia->UseLegacyModeSwitch = TRUE;
+ break;
+ case VIA_VM800:
+- pVia->UseLegacyModeSwitch = TRUE;
++ /* New mode switch resolve bug with gamma set #282 */
++ /* and with Xv after hibernate #240 */
++ /* FIXME Add panel support for this chipset */
+ break;
+ case VIA_K8M890:
+ pVia->VideoEngine = VIDEO_ENGINE_CME;
+@@ -1050,19 +1065,13 @@
+ xf86DrvMsg(pScrn->scrnIndex, from,
+ "Probed amount of VideoRAM = %d kB\n", pScrn->videoRam);
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Setting up default chipset options.\n");
+ if (!VIASetupDefaultOptions(pScrn)) {
+ VIAFreeRec(pScrn);
+ return FALSE;
+ }
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Reading config file...\n");
+ xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, VIAOptions);
+
+- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Starting to parse config file options...\n");
+-
+ if (xf86GetOptValInteger(VIAOptions, OPTION_VIDEORAM, &pScrn->videoRam))
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Setting amount of VideoRAM to %d kB\n", pScrn->videoRam);
+@@ -1100,6 +1109,31 @@
+ }
+
+ /* When rotating, switch shadow framebuffer on and acceleration off. */
++ if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATION_TYPE))) {
++ if (!xf86NameCmp(s, "SWRandR")) {
++ pVia->shadowFB = TRUE;
++ pVia->NoAccel = TRUE;
++ pVia->RandRRotation = TRUE;
++ pVia->rotate = RR_Rotate_0;
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Rotating screen "
++ "RandR enabled, acceleration disabled\n");
++ } else if (!xf86NameCmp(s, "HWRandR")) {
++ pVia->shadowFB = TRUE;
++ pVia->NoAccel = TRUE;
++ pVia->RandRRotation = TRUE;
++ pVia->rotate = RR_Rotate_0;
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Hardware accelerated "
++ "rotating screen is not implemented. Using SW RandR.\n");
++ } else {
++ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
++ "value for Option \"RotationType\".\n", s);
++ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
++ "Valid options are \"SWRandR\" and \"HWRandR\".\n");
++ }
++ }
++
++
++ /* When rotating, switch shadow framebuffer on and acceleration off. */
+ if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATE))) {
+ if (!xf86NameCmp(s, "CW")) {
+ pVia->shadowFB = TRUE;
+@@ -1498,6 +1532,7 @@
+ }
+ }
+
++ /* Initialize the colormap */
+ Gamma zeros = { 0.0, 0.0, 0.0 };
+ if (!xf86SetGamma(pScrn, zeros)) {
+ VIAFreeRec(pScrn);
+@@ -1561,9 +1596,8 @@
+
+ if (pBIOSInfo->Panel->IsActive &&
+ ((pVia->Chipset == VIA_K8M800) ||
+- (pVia->Chipset == VIA_PM800) ||
+ (pVia->Chipset == VIA_VM800))) {
+- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800, PM800 and "
++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800 and "
+ "VM800 is currently not supported.\n");
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Using VBE to set modes to work around this.\n");
+@@ -1621,7 +1655,7 @@
+ *
+ * CLE266A: primary AdjustFrame can use only 24 bits, so we are limited
+ * to 12x11 bits; 4080x2048 (~2:1), 3344x2508 (4:3), or 2896x2896 (1:1).
+- * Test CLE266Cx, KM400, KM400A, K8M800, PM800, CN400 please.
++ * TODO Test CLE266Cx, KM400, KM400A, K8M800, CN400 please.
+ *
+ * We should be able to limit the memory available for a mode to 32 MB,
+ * but xf86ValidateModes (or miScanLineWidth) fails to catch this
+@@ -1629,13 +1663,14 @@
+ */
+
+ /* Select valid modes from those available. */
+- i = xf86ValidateModes(pScrn, pScrn->monitor->Modes, /* availModes */
+- pScrn->display->modes, /* modeNames */
+- clockRanges, /* list of clock ranges */
++ i = xf86ValidateModes(pScrn,
++ pScrn->monitor->Modes, /* List of modes available for the monitor */
++ pScrn->display->modes, /* List of mode names that the screen is requesting */
++ clockRanges, /* list of clock ranges */
+ NULL, /* list of line pitches */
+ 256, /* minimum line pitch */
+ 3344, /* maximum line pitch */
+- 32 * 8, /* pitch inc (bits) */
++ 16 * 8, /* pitch increment (in bits), we just want 16 bytes alignment */
+ 128, /* min height */
+ 2508, /* max height */
+ pScrn->display->virtualX, /* virtual width */
+@@ -1650,6 +1685,7 @@
+ return FALSE;
+ }
+
++ /* This function deletes modes in the modes field of the ScrnInfoRec that have been marked as invalid. */
+ xf86PruneDriverModes(pScrn);
+
+ if (i == 0 || pScrn->modes == NULL) {
+@@ -1662,9 +1698,17 @@
+ /* Set up screen parameters. */
+ pVia->Bpp = pScrn->bitsPerPixel >> 3;
+ pVia->Bpl = pScrn->displayWidth * pVia->Bpp;
++
++ /* This function fills in the Crtc fields for all the modes in the modes field of the ScrnInfoRec. */
+ xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V);
++
++ /* Set the current mode to the first in the list */
+ pScrn->currentMode = pScrn->modes;
++
++ /* Print the list of modes being used */
+ xf86PrintModes(pScrn);
++
++ /* Set display resolution */
+ xf86SetDpi(pScrn, 0, 0);
+
+ #ifdef USE_FB
+@@ -1935,7 +1979,9 @@
+ Regs->SR17 = hwp->readSeq(hwp, 0x17);
+ Regs->SR18 = hwp->readSeq(hwp, 0x18);
+ Regs->SR19 = hwp->readSeq(hwp, 0x19);
++ /* PCI Bus Control */
+ Regs->SR1A = hwp->readSeq(hwp, 0x1A);
++
+ Regs->SR1B = hwp->readSeq(hwp, 0x1B);
+ Regs->SR1C = hwp->readSeq(hwp, 0x1C);
+ Regs->SR1D = hwp->readSeq(hwp, 0x1D);
+@@ -1977,40 +2023,56 @@
+ Regs->SR4C = hwp->readSeq(hwp, 0x4C);
+ break;
+ }
+- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+- "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Crtc...\n"));
+
+ Regs->CR13 = hwp->readCrtc(hwp, 0x13);
+
+ Regs->CR32 = hwp->readCrtc(hwp, 0x32);
+ Regs->CR33 = hwp->readCrtc(hwp, 0x33);
+- Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
+ Regs->CR35 = hwp->readCrtc(hwp, 0x35);
+ Regs->CR36 = hwp->readCrtc(hwp, 0x36);
+
++
++
++ /* Starting Address */
++ /* Start Address High */
++ Regs->CR0C = hwp->readCrtc(hwp, 0x0C);
++ /* Start Address Low */
++ Regs->CR0D = hwp->readCrtc(hwp, 0x0D);
++ /* Starting Address Overflow Bits[28:24] */
+ Regs->CR48 = hwp->readCrtc(hwp, 0x48);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ /* Starting Address Overflow Bits[23:16] */
++ Regs->CR34 = hwp->readCrtc(hwp, 0x34);
++
++
+ Regs->CR49 = hwp->readCrtc(hwp, 0x49);
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TVSave...\n"));
+ if (pBIOSInfo->TVI2CDev)
+ ViaTVSave(pScrn);
+
+- /* Save LCD control registers. */
++ /* Save LCD control registers (from CR 0x50 to 0x93). */
+ for (i = 0; i < 68; i++)
+ Regs->CRTCRegs[i] = hwp->readCrtc(hwp, i + 0x50);
+
+ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
+-
+- Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
+- Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
+- Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+-
++ /* LVDS Channel 2 Function Select 0 / DVI Function Select */
+ Regs->CR97 = hwp->readCrtc(hwp, 0x97);
++ /* LVDS Channel 1 Function Select 0 */
+ Regs->CR99 = hwp->readCrtc(hwp, 0x99);
++ /* Digital Video Port 1 Function Select 0 */
+ Regs->CR9B = hwp->readCrtc(hwp, 0x9B);
++ /* Power Now Control 4 */
+ Regs->CR9F = hwp->readCrtc(hwp, 0x9F);
+
++ /* Horizontal Scaling Initial Value */
++ Regs->CRA0 = hwp->readCrtc(hwp, 0xA0);
++ /* Vertical Scaling Initial Value */
++ Regs->CRA1 = hwp->readCrtc(hwp, 0xA1);
++ /* Scaling Enable Bit */
++ Regs->CRA2 = hwp->readCrtc(hwp, 0xA2);
+ }
+
+ /* Save TMDS status */
+@@ -2098,11 +2160,19 @@
+ hwp->writeSeq(hwp, 0x45, Regs->SR45);
+ hwp->writeSeq(hwp, 0x46, Regs->SR46);
+
++ /* Reset VCK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x02); /* Set SR40[1] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFD); /* Set SR40[1] to 0 */
++
+ /* ECK Clock Synthesizer: */
+ hwp->writeSeq(hwp, 0x47, Regs->SR47);
+ hwp->writeSeq(hwp, 0x48, Regs->SR48);
+ hwp->writeSeq(hwp, 0x49, Regs->SR49);
+
++ /* Reset ECK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x01); /* Set SR40[0] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFE); /* Set SR40[0] to 0 */
++
+ switch (pVia->Chipset) {
+ case VIA_CLE266:
+ case VIA_KM400:
+@@ -2112,6 +2182,10 @@
+ hwp->writeSeq(hwp, 0x4A, Regs->SR4A);
+ hwp->writeSeq(hwp, 0x4B, Regs->SR4B);
+ hwp->writeSeq(hwp, 0x4C, Regs->SR4C);
++
++ /* Reset LCK PLL */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) | 0x04); /* Set SR40[2] to 1 */
++ hwp->writeSeq(hwp, 0x40, hwp->readSeq(hwp, 0x40) & 0xFB); /* Set SR40[2] to 0 */
+ break;
+ }
+
+@@ -2127,14 +2201,23 @@
+ hwp->writeCrtc(hwp, 0x32, Regs->CR32);
+ /* HSYNCH Adjuster */
+ hwp->writeCrtc(hwp, 0x33, Regs->CR33);
+- /* Starting Address Overflow */
+- hwp->writeCrtc(hwp, 0x34, Regs->CR34);
+ /* Extended Overflow */
+ hwp->writeCrtc(hwp, 0x35, Regs->CR35);
+ /*Power Management 3 (Monitor Control) */
+ hwp->writeCrtc(hwp, 0x36, Regs->CR36);
+
++ /* Starting Address */
++ /* Start Address High */
++ hwp->writeCrtc(hwp, 0x0C, Regs->CR0C);
++ /* Start Address Low */
++ hwp->writeCrtc(hwp, 0x0D, Regs->CR0D);
++ /* Starting Address Overflow Bits[28:24] */
+ hwp->writeCrtc(hwp, 0x48, Regs->CR48);
++ /* CR34 are fire bits. Must be writed after CR0C CR0D CR48. */
++ /* Starting Address Overflow Bits[23:16] */
++ hwp->writeCrtc(hwp, 0x34, Regs->CR34);
++
++
+ hwp->writeCrtc(hwp, 0x49, Regs->CR49);
+
+ /* Restore LCD control registers. */
+@@ -2453,7 +2536,6 @@
+ VIALoadRgbLut(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
+ VisualPtr pVisual)
+ {
+- VIAPtr pVia = VIAPTR(pScrn);
+ vgaHWPtr hwp = VGAHWPTR(pScrn);
+
+ int i, j, index;
+@@ -2880,7 +2962,6 @@
+ VIAWriteMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+- VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAWriteMode\n"));
+
+@@ -3033,9 +3114,7 @@
+ VIAAdjustFrame(int scrnIndex, int x, int y, int flags)
+ {
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+- vgaHWPtr hwp = VGAHWPTR(pScrn);
+ VIAPtr pVia = VIAPTR(pScrn);
+- CARD32 Base;
+
+ DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y));
+
+@@ -3173,7 +3252,6 @@
+ static void
+ VIADPMS(ScrnInfoPtr pScrn, int mode, int flags)
+ {
+- vgaHWPtr hwp = VGAHWPTR(pScrn);
+ VIAPtr pVia = VIAPTR(pScrn);
+ VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
+
+diff -ruN xf86-video-openchrome-0.2.904/src/via_driver.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h
+--- xf86-video-openchrome-0.2.904/src/via_driver.h 2009-10-09 01:09:22.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_driver.h 2010-03-07 01:09:00.000000000 +0100
+@@ -130,6 +130,7 @@
+ CARD8 SR4A, SR4B, SR4C;
+
+ /* extended CRTC registers */
++ CARD8 CR0C, CR0D;
+ CARD8 CR13, CR30, CR31, CR32, CR33, CR34, CR35, CR36;
+ CARD8 CR37, CR38, CR39, CR3A, CR40, CR41, CR42, CR43;
+ CARD8 CR44, CR45, CR46, CR47, CR48, CR49, CR4A;
+@@ -418,10 +419,10 @@
+ Bool PrintVGARegs;
+ Bool PrintTVRegs;
+ Bool I2CScan;
++#endif /* HAVE_DEBUG */
+
+ Bool UseLegacyModeSwitch ;
+ video_via_regs* VideoRegs ;
+-#endif /* HAVE_DEBUG */
+ } VIARec, *VIAPtr;
+
+ #define VIAPTR(p) ((VIAPtr)((p)->driverPrivate))
+diff -ruN xf86-video-openchrome-0.2.904/src/via_id.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c
+--- xf86-video-openchrome-0.2.904/src/via_id.c 2009-10-07 23:30:39.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_id.c 2010-03-07 01:09:00.000000000 +0100
+@@ -152,6 +152,7 @@
+ {"MSI PM8PM", VIA_VM800, 0x1462, 0x7222, VIA_DEVICE_CRT},
+ {"Twinhead M6", VIA_VM800, 0x14FF, 0xA007, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"RoverBook Partner W500", VIA_VM800, 0x1509, 0x4330, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++ {"FIC PTM800Pro LF", VIA_VM800, 0x1509, 0x601A, VIA_DEVICE_CRT},
+ {"Clevo/RoverBook Voyager V511L", VIA_VM800, 0x1558, 0x0662, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M5xxS", VIA_VM800, 0x1558, 0x5406, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Biostar P4M80-M4 / P4VMA-M", VIA_VM800, 0x1565, 0x1202, VIA_DEVICE_CRT},
+@@ -170,6 +171,7 @@
+ {"Asustek M2V-MX SE", VIA_K8M890, 0x1043, 0x8297, VIA_DEVICE_CRT},
+ {"Foxconn K8M890M2MA-RS2H", VIA_K8M890, 0x105B, 0x0C84, VIA_DEVICE_CRT},
+ {"Shuttle FX22V1", VIA_K8M890, 0x1297, 0x3080, VIA_DEVICE_CRT},
++ {"MSI K8M890M2-V", VIA_K8M890, 0x1462, 0x7139, VIA_DEVICE_CRT},
+ {"MSI K9VGM-V", VIA_K8M890, 0x1462, 0x7253, VIA_DEVICE_CRT},
+ {"Averatec 226x", VIA_K8M890, 0x14FF, 0xA002, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Fujitsu/Siemens Amilo La 1703", VIA_K8M890, 0x1734, 0x10D9, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -189,6 +191,7 @@
+ {"MSI P4M900M / P4M900M2-F/L", VIA_P4M900, 0x1462, 0x7255, VIA_DEVICE_CRT},
+ {"MSI P4M900M3-L", VIA_P4M900, 0x1462, 0x7387, VIA_DEVICE_CRT},
+ {"Twinhead H12V", VIA_P4M900, 0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
++ {"Twinhead K15V", VIA_P4M900, 0x14FF, 0xA012, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Everex NC1501/NC1503", VIA_P4M900, 0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M660SE", VIA_P4M900, 0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Clevo M660SR", VIA_P4M900, 0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -224,6 +227,7 @@
+
+ /*** VX800 ***/
+ {"VIA Epia M700", VIA_VX800, 0x1106, 0x1122, VIA_DEVICE_CRT},
++ {"Guillemot-Hercules ECafe EC900B", VIA_VX800, 0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"VIA OpenBook", VIA_VX800, 0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */
+ {"Samsung NC20", VIA_VX800, 0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+ {"Quanta DreamBook Light IL1", VIA_VX800, 0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
+@@ -231,6 +235,7 @@
+
+ /*** VX855 ***/
+ {"VIA VT8562C", VIA_VX855, 0x1106, 0x5122, VIA_DEVICE_CRT},
++ {"OLPC XO 1.5", VIA_VX855, 0x152D, 0x0833, VIA_DEVICE_LCD},
+
+ /* keep this */
+ {NULL, VIA_UNKNOWN, 0x0000, 0x0000, VIA_DEVICE_NONE}
+diff -ruN xf86-video-openchrome-0.2.904/src/via_mode.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h
+--- xf86-video-openchrome-0.2.904/src/via_mode.h 2009-10-07 23:31:47.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_mode.h 2010-03-07 01:09:00.000000000 +0100
+@@ -54,50 +54,50 @@
+ CARD16 UniChrome;
+ union pllparams UniChromePro;
+ } ViaDotClocks[] = {
+- { 25200, 0x513C, /* 0xa79004 */ { 1, 4, 6, 169 } },
+- { 25312, 0xC763, /* 0xc49005 */ { 1, 4, 7, 198 } },
+- { 26591, 0x471A, /* 0xce9005 */ { 1, 4, 7, 208 } },
+- { 31500, 0xC558, /* 0xae9003 */ { 1, 4, 5, 176 } },
+- { 31704, 0x471F, /* 0xaf9002 */ { 1, 4, 4, 177 } },
+- { 32663, 0xC449, /* 0x479000 */ { 1, 4, 2, 73 } },
+- { 33750, 0x4721, /* 0x959002 */ { 1, 4, 4, 151 } },
+- { 35500, 0x5877, /* 0x759001 */ { 1, 4, 3, 119 } },
+- { 36000, 0x5879, /* 0x9f9002 */ { 1, 4, 4, 161 } },
+- { 39822, 0xC459, /* 0x578c02 */ { 1, 3, 4, 89 } },
+- { 40000, 0x515F, /* 0x848c04 */ { 1, 3, 6, 134 } },
+- { 41164, 0x4417, /* 0x2c8c00 */ { 1, 3, 2, 46 } },
+- { 46981, 0x5069, /* 0x678c02 */ { 1, 3, 4, 105 } },
+- { 49500, 0xC353, /* 0xa48c04 */ { 3, 3, 5, 138 } },
+- { 50000, 0xC354, /* 0x368c00 */ { 1, 3, 2, 56 } },
+- { 56300, 0x4F76, /* 0x3d8c00 */ { 1, 3, 2, 63 } },
+- { 57275, 0, /* 0x3e8c00 */ { 1, 3, 5, 157 } }, /* For XO 1.5 no need for a unichrome clock */
+- { 57284, 0x4E70, /* 0x3e8c00 */ { 1, 3, 2, 64 } },
+- { 64995, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+- { 65000, 0x0D3B, /* 0x6b8c01 */ { 1, 3, 3, 109 } }, /* Slightly unstable on PM800 */
+- { 65028, 0x866D, /* 0x6b8c01 */ { 1, 3, 3, 109 } },
+- { 74480, 0x156E, /* 0x288800 */ { 1, 2, 2, 42 } },
+- { 75000, 0x156E, /* 0x288800 */ { 1, 2, 2, 42 } },
+- { 78800, 0x442C, /* 0x2a8800 */ { 1, 2, 2, 44 } },
+- { 81135, 0x0622, /* 0x428801 */ { 1, 2, 3, 68 } },
+- { 81613, 0x4539, /* 0x708803 */ { 1, 2, 5, 114 } },
+- { 94500, 0x4542, /* 0x4d8801 */ { 1, 2, 3, 79 } },
+- { 108000, 0x0B53, /* 0x778802 */ { 1, 2, 4, 121 } },
+- { 108280, 0x4879, /* 0x778802 */ { 1, 2, 4, 121 } },
+- { 122000, 0x0D6F, /* 0x428800 */ { 1, 2, 2, 68 } },
+- { 122726, 0x073C, /* 0x878802 */ { 1, 2, 4, 137 } },
+- { 135000, 0x0742, /* 0x6f8801 */ { 1, 2, 3, 113 } },
+- { 148500, 0x0853, /* 0x518800 */ { 1, 2, 2, 83 } },
+- { 155800, 0x0857, /* 0x558402 */ { 1, 1, 4, 87 } },
+- { 157500, 0x422C, /* 0x2a8400 */ { 1, 1, 2, 44 } },
+- { 161793, 0x4571, /* 0x6f8403 */ { 1, 1, 5, 113 } },
+- { 162000, 0x0A71, /* 0x6f8403 */ { 1, 1, 5, 113 } },
+- { 175500, 0x4231, /* 0x2f8400 */ { 1, 1, 2, 49 } },
+- { 189000, 0x0542, /* 0x4d8401 */ { 1, 1, 3, 79 } },
+- { 202500, 0x0763, /* 0x6F8402 */ { 1, 1, 4, 113 } },
+- { 204800, 0x0764, /* 0x548401 */ { 1, 1, 3, 86 } },
+- { 218300, 0x043D, /* 0x3b8400 */ { 1, 1, 2, 61 } },
+- { 229500, 0x0660, /* 0x3e8400 */ { 1, 1, 2, 64 } }, /* Not tested on Pro } */
+- { 0, 0, { 0, 0, 0, 0 } }
++ { 25200, 0x513C, /* 0xa79004 */ { { 1, 4, 6, 169 } } },
++ { 25312, 0xC763, /* 0xc49005 */ { { 1, 4, 7, 198 } } },
++ { 26591, 0x471A, /* 0xce9005 */ { { 1, 4, 7, 208 } } },
++ { 31500, 0xC558, /* 0xae9003 */ { { 1, 4, 5, 176 } } },
++ { 31704, 0x471F, /* 0xaf9002 */ { { 1, 4, 4, 177 } } },
++ { 32663, 0xC449, /* 0x479000 */ { { 1, 4, 2, 73 } } },
++ { 33750, 0x4721, /* 0x959002 */ { { 1, 4, 4, 151 } } },
++ { 35500, 0x5877, /* 0x759001 */ { { 1, 4, 3, 119 } } },
++ { 36000, 0x5879, /* 0x9f9002 */ { { 1, 4, 4, 161 } } },
++ { 39822, 0xC459, /* 0x578c02 */ { { 1, 3, 4, 89 } } },
++ { 40000, 0x515F, /* 0x848c04 */ { { 1, 3, 6, 134 } } },
++ { 41164, 0x4417, /* 0x2c8c00 */ { { 1, 3, 2, 46 } } },
++ { 46981, 0x5069, /* 0x678c02 */ { { 1, 3, 4, 105 } } },
++ { 49500, 0xC353, /* 0xa48c04 */ { { 3, 3, 5, 138 } } },
++ { 50000, 0xC354, /* 0x368c00 */ { { 1, 3, 2, 56 } } },
++ { 56300, 0x4F76, /* 0x3d8c00 */ { { 1, 3, 2, 63 } } },
++ { 57275, 0, /* 0x3e8c00 */ { { 1, 3, 5, 157 } } }, /* For XO 1.5 no need for a unichrome clock */
++ { 57284, 0x4E70, /* 0x3e8c00 */ { { 1, 3, 2, 64 } } },
++ { 64995, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++ { 65000, 0x0D3B, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } }, /* Slightly unstable on PM800 */
++ { 65028, 0x866D, /* 0x6b8c01 */ { { 1, 3, 3, 109 } } },
++ { 74480, 0x156E, /* 0x288800 */ { { 1, 2, 2, 42 } } },
++ { 75000, 0x156E, /* 0x288800 */ { { 1, 2, 2, 42 } } },
++ { 78800, 0x442C, /* 0x2a8800 */ { { 1, 2, 2, 44 } } },
++ { 81135, 0x0622, /* 0x428801 */ { { 1, 2, 3, 68 } } },
++ { 81613, 0x4539, /* 0x708803 */ { { 1, 2, 5, 114 } } },
++ { 94500, 0x4542, /* 0x4d8801 */ { { 1, 2, 3, 79 } } },
++ { 108000, 0x0B53, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++ { 108280, 0x4879, /* 0x778802 */ { { 1, 2, 4, 121 } } },
++ { 122000, 0x0D6F, /* 0x428800 */ { { 1, 2, 2, 68 } } },
++ { 122726, 0x073C, /* 0x878802 */ { { 1, 2, 4, 137 } } },
++ { 135000, 0x0742, /* 0x6f8801 */ { { 1, 2, 3, 113 } } },
++ { 148500, 0x0853, /* 0x518800 */ { { 1, 2, 2, 83 } } },
++ { 155800, 0x0857, /* 0x558402 */ { { 1, 1, 4, 87 } } },
++ { 157500, 0x422C, /* 0x2a8400 */ { { 1, 1, 2, 44 } } },
++ { 161793, 0x4571, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },
++ { 162000, 0x0A71, /* 0x6f8403 */ { { 1, 1, 5, 113 } } },
++ { 175500, 0x4231, /* 0x2f8400 */ { { 1, 1, 2, 49 } } },
++ { 189000, 0x0542, /* 0x4d8401 */ { { 1, 1, 3, 79 } } },
++ { 202500, 0x0763, /* 0x6F8402 */ { { 1, 1, 4, 113 } } },
++ { 204800, 0x0764, /* 0x548401 */ { { 1, 1, 3, 86 } } },
++ { 218300, 0x043D, /* 0x3b8400 */ { { 1, 1, 2, 61 } } },
++ { 229500, 0x0660, /* 0x3e8400 */ { { 1, 1, 2, 64 } } }, /* Not tested on Pro } */
++ { 0, 0, { { 0, 0, 0, 0 } } }
+ };
+
+ /*
+diff -ruN xf86-video-openchrome-0.2.904/src/via_panel.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c
+--- xf86-video-openchrome-0.2.904/src/via_panel.c 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_panel.c 2010-03-07 01:09:00.000000000 +0100
+@@ -171,12 +171,18 @@
+ resWidth, resHeight, panelWidth, panelHeight));
+
+ if (resWidth < panelWidth) {
+- /* FIXME: It is different for chipset < K8M800 */
+- horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++ /* Load Horizontal Scaling Factor */
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ horScalingFactor = ((resWidth - 1) * 4096) / (panelWidth - 1);
++
++ /* Horizontal scaling enabled */
++ cra2 = 0xC0;
++ cr9f = horScalingFactor & 0x0003; /* HSCaleFactor[1:0] at CR9F[1:0] */
++ } else {
++ /* TODO: Need testing */
++ horScalingFactor = ((resWidth - 1) * 1024) / (panelWidth - 1);
++ }
+
+- /* Horizontal scaling enabled */
+- cra2 = 0xC0;
+- cr9f = horScalingFactor & 0x0003; /* HSCaleFactor[1:0] at CR9F[1:0] */
+ cr77 = (horScalingFactor & 0x03FC) >> 2; /* HSCaleFactor[9:2] at CR77[7:0] */
+ cr79 = (horScalingFactor & 0x0C00) >> 10; /* HSCaleFactor[11:10] at CR79[5:4] */
+ cr79 <<= 4;
+@@ -184,11 +190,18 @@
+ }
+
+ if (resHeight < panelHeight) {
+- verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++ /* Load Vertical Scaling Factor */
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ verScalingFactor = ((resHeight - 1) * 2048) / (panelHeight - 1);
++
++ /* Vertical scaling enabled */
++ cra2 |= 0x08;
++ cr79 |= ((verScalingFactor & 0x0001) << 3); /* VSCaleFactor[0] at CR79[3] */
++ } else {
++ /* TODO: Need testing */
++ verScalingFactor = ((resHeight - 1) * 1024) / (panelHeight - 1);
++ }
+
+- /* Vertical scaling enabled */
+- cra2 |= 0x08;
+- cr79 |= ((verScalingFactor & 0x0001) << 3); /* VSCaleFactor[0] at CR79[3] */
+ cr78 |= (verScalingFactor & 0x01FE) >> 1; /* VSCaleFactor[8:1] at CR78[7:0] */
+ cr79 |= ((verScalingFactor & 0x0600) >> 9) << 6; /* VSCaleFactor[10:9] at CR79[7:6] */
+ scaling = TRUE;
+@@ -203,12 +216,18 @@
+ ViaCrtcMask(hwp, 0x77, cr77, 0xFF);
+ ViaCrtcMask(hwp, 0x78, cr78, 0xFF);
+ ViaCrtcMask(hwp, 0x79, cr79, 0xF8);
+- ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ ViaCrtcMask(hwp, 0x9F, cr9f, 0x03);
++ }
+ ViaCrtcMask(hwp, 0x79, 0x03, 0x03);
+- } else
++ } else {
++ /* Disable panel scale */
+ ViaCrtcMask(hwp, 0x79, 0x00, 0x01);
+-
+- ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++ }
++
++ if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
++ ViaCrtcMask(hwp, 0xA2, cra2, 0xC8);
++ }
+
+ /* Horizontal scaling selection: interpolation */
+ // ViaCrtcMask(hwp, 0x79, 0x02, 0x02);
+@@ -233,14 +252,14 @@
+
+ if (panelMode->Width && panelMode->Height) {
+
+- /* TODO: fix refresh rate and check malloc */
++ /* TODO: fix refresh rate */
+ DisplayModePtr p = malloc( sizeof(DisplayModeRec) ) ;
+- memset(p, 0, sizeof(DisplayModeRec));
++ if (p) {
++ memset(p, 0, sizeof(DisplayModeRec));
+
+- float refresh = 60.0f ;
++ float refresh = 60.0f ;
+
+- /* The following code is borrowed from xf86SetModeCrtc. */
+- if (p) {
++ /* The following code is borrowed from xf86SetModeCrtc. */
+ viaTimingCvt(p, panelMode->Width, panelMode->Height, refresh, FALSE, TRUE);
+ p->CrtcHDisplay = p->HDisplay;
+ p->CrtcHSyncStart = p->HSyncStart;
+@@ -256,9 +275,13 @@
+ p->CrtcVBlankEnd = max(p->CrtcVSyncEnd, p->CrtcVTotal);
+ p->CrtcHBlankStart = min(p->CrtcHSyncStart, p->CrtcHDisplay);
+ p->CrtcHBlankEnd = max(p->CrtcHSyncEnd, p->CrtcHTotal);
+-
++
++ pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++ } else {
++ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
++ "Out of memory. Size: %d bytes\n", sizeof(DisplayModeRec));
+ }
+- pVia->pBIOSInfo->Panel->NativeDisplayMode = p;
++
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Invalid panel dimension (%dx%d)\n", panelMode->Width,
+@@ -339,22 +362,22 @@
+ ViaPanelGetSizeFromEDID(ScrnInfoPtr pScrn, xf86MonPtr pMon,
+ int *width, int *height)
+ {
+- int i, max = 0, vsize;
++ int i, max_hsize = 0, vsize = 0;
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VIAGetPanelSizeFromEDID\n"));
+
+ /* !!! Why are we not checking VESA modes? */
+
+ /* checking standard timings */
+- for (i = 0; i < 8; i++)
++ for (i = 0; i < STD_TIMINGS; i++)
+ if ((pMon->timings2[i].hsize > 256)
+- && (pMon->timings2[i].hsize > max)) {
+- max = pMon->timings2[i].hsize;
++ && (pMon->timings2[i].hsize > max_hsize)) {
++ max_hsize = pMon->timings2[i].hsize;
+ vsize = pMon->timings2[i].vsize;
+ }
+
+- if (max != 0) {
+- *width = max;
++ if (max_hsize != 0) {
++ *width = max_hsize;
+ *height = vsize;
+ return TRUE;
+ }
+@@ -369,14 +392,14 @@
+ struct detailed_timings timing = pMon->det_mon[i].section.d_timings;
+
+ /* ignore v_active for now */
+- if ((timing.clock > 15000000) && (timing.h_active > max)) {
+- max = timing.h_active;
++ if ((timing.clock > 15000000) && (timing.h_active > max_hsize)) {
++ max_hsize = timing.h_active;
+ vsize = timing.v_active;
+ }
+ }
+
+- if (max != 0) {
+- *width = max;
++ if (max_hsize != 0) {
++ *width = max_hsize;
+ *height = vsize;
+ return TRUE;
+ }
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.c ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c
+--- xf86-video-openchrome-0.2.904/src/via_video.c 2009-10-08 01:39:13.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.c 2010-03-07 01:09:00.000000000 +0100
+@@ -466,8 +466,8 @@
+
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ viaVidEng->color_key = 0x821;
+ viaVidEng->snd_color_key = 0x821;
+
+@@ -479,16 +479,16 @@
+ VIAPtr pVia = VIAPTR(pScrn);
+ vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
+
++ DBG_DD(ErrorF(" via_video.c : viaSaveVideo : \n"));
+ /* Save video registers */
+- /* TODO: Identify which registers should be saved and restored */
+ memcpy(pVia->VideoRegs, (void*)viaVidEng, sizeof(video_via_regs));
+
+ pVia->dwV1 = ((vmmtr) viaVidEng)->video1_ctl;
+ pVia->dwV3 = ((vmmtr) viaVidEng)->video3_ctl;
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+
+ void
+@@ -496,16 +496,65 @@
+ {
+ VIAPtr pVia = VIAPTR(pScrn);
+ vmmtr viaVidEng = (vmmtr) pVia->VidMapBase;
++ video_via_regs *localVidEng = pVia->VideoRegs;
++
+
++ DBG_DD(ErrorF(" via_video.c : viaRestoreVideo : \n"));
+ /* Restore video registers */
+- /* TODO: Identify which registers should be saved and restored */
+- memcpy((void*)viaVidEng, pVia->VideoRegs, sizeof(video_via_regs));
+-
++ /* flush restored video engines' setting to VidMapBase */
++
++ viaVidEng->alphawin_hvstart = localVidEng->alphawin_hvstart;
++ viaVidEng->alphawin_size = localVidEng->alphawin_size;
++ viaVidEng->alphawin_ctl = localVidEng->alphawin_ctl;
++ viaVidEng->alphafb_stride = localVidEng->alphafb_stride;
++ viaVidEng->color_key = localVidEng->color_key;
++ viaVidEng->alphafb_addr = localVidEng->alphafb_addr;
++ viaVidEng->chroma_low = localVidEng->chroma_low;
++ viaVidEng->chroma_up = localVidEng->chroma_up;
++
++ if (pVia->ChipId != PCI_CHIP_VT3314)
++ {
++ /*VT3314 only has V3*/
++ viaVidEng->video1_ctl = localVidEng->video1_ctl;
++ viaVidEng->video1_fetch = localVidEng->video1_fetch;
++ viaVidEng->video1y_addr1 = localVidEng->video1y_addr1;
++ viaVidEng->video1_stride = localVidEng->video1_stride;
++ viaVidEng->video1_hvstart = localVidEng->video1_hvstart;
++ viaVidEng->video1_size = localVidEng->video1_size;
++ viaVidEng->video1y_addr2 = localVidEng->video1y_addr2;
++ viaVidEng->video1_zoom = localVidEng->video1_zoom;
++ viaVidEng->video1_mictl = localVidEng->video1_mictl;
++ viaVidEng->video1y_addr0 = localVidEng->video1y_addr0;
++ viaVidEng->video1_fifo = localVidEng->video1_fifo;
++ viaVidEng->video1y_addr3 = localVidEng->video1y_addr3;
++ viaVidEng->v1_source_w_h = localVidEng->v1_source_w_h ;
++ viaVidEng->video1_CSC1 = localVidEng->video1_CSC1;
++ viaVidEng->video1_CSC2 = localVidEng->video1_CSC2;
++ }
++ viaVidEng->snd_color_key = localVidEng->snd_color_key;
++ viaVidEng->v3alpha_prefifo = localVidEng->v3alpha_prefifo;
++ viaVidEng->v3alpha_fifo = localVidEng->v3alpha_fifo;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->v3_source_width = localVidEng->v3_source_width;
++ viaVidEng->video3_ctl = localVidEng->video3_ctl;
++ viaVidEng->video3_addr0 = localVidEng->video3_addr0;
++ viaVidEng->video3_addr1 = localVidEng->video3_addr1;
++ viaVidEng->video3_stride = localVidEng->video3_stride;
++ viaVidEng->video3_hvstart = localVidEng->video3_hvstart;
++ viaVidEng->video3_size = localVidEng->video3_size;
++ viaVidEng->v3alpha_fetch = localVidEng->v3alpha_fetch;
++ viaVidEng->video3_zoom = localVidEng->video3_zoom;
++ viaVidEng->video3_mictl = localVidEng->video3_mictl;
++ viaVidEng->video3_CSC1 = localVidEng->video3_CSC1;
++ viaVidEng->video3_CSC2 = localVidEng->video3_CSC2;
++ viaVidEng->compose = localVidEng->compose;
++
+ viaVidEng->video1_ctl = pVia->dwV1;
+ viaVidEng->video3_ctl = pVia->dwV3;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
+-
++ if (pVia->ChipId != PCI_CHIP_VT3314)
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+ }
+
+ void
+@@ -524,8 +573,8 @@
+
+ viaVidEng->video1_ctl = 0;
+ viaVidEng->video3_ctl = 0;
+- viaVidEng->compose = 0x80000000;
+- viaVidEng->compose = 0x40000000;
++ viaVidEng->compose = V1_COMMAND_FIRE;
++ viaVidEng->compose = V3_COMMAND_FIRE;
+
+ /*
+ * Free all adaptor info allocated in viaInitVideo.
+@@ -561,7 +610,7 @@
+ XF86VideoAdaptorPtr *adaptors, *newAdaptors;
+ int num_adaptors, num_new;
+
+- DBG_DD(ErrorF(" via_video.c : viaInitVideo : \n"));
++ DBG_DD(ErrorF(" via_video.c : viaInitVideo, Screen[%d]\n", pScrn->scrnIndex));
+
+ allAdaptors = NULL;
+ newAdaptors = NULL;
+@@ -832,7 +881,7 @@
+ DevUnion *pdevUnion;
+ int i, j, usedPorts, numPorts;
+
+- DBG_DD(ErrorF(" via_video.c : viaSetupImageVideo: \n"));
++ DBG_DD(ErrorF(" via_video.c : viaSetupAdaptors (viaSetupImageVideo): \n"));
+
+ xvBrightness = MAKE_ATOM("XV_BRIGHTNESS");
+ xvContrast = MAKE_ATOM("XV_CONTRAST");
+@@ -1042,6 +1091,8 @@
+ }
+
+ } else {
++ DBG_DD(ErrorF(" via_video.c : viaGetPortAttribute : is not supported the attribute\n"));
++
+ /*return BadMatch */;
+ }
+ return Success;
+@@ -1498,6 +1549,7 @@
+
+ DBG_DD(ErrorF(" via_video.c : viaQueryImageAttributes : FourCC=0x%x, ",
+ id));
++ DBG_DD(ErrorF(" via_video.c : Screen[%d], w=%d, h=%d\n", pScrn->scrnIndex, *w, *h));
+
+ if ((!w) || (!h))
+ return 0;
+@@ -1513,6 +1565,7 @@
+
+ switch (id) {
+ case FOURCC_YV12: /*Planar format : YV12 -4:2:0 */
++ case FOURCC_I420:
+ *h = (*h + 1) & ~1;
+ size = *w;
+ if (pVia->useDmaBlit)
+diff -ruN xf86-video-openchrome-0.2.904/src/via_video.h ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h
+--- xf86-video-openchrome-0.2.904/src/via_video.h 2009-10-03 22:48:55.000000000 +0200
++++ ../openchrome/xf86-video-openchrome-0.2.904/src/via_video.h 2010-03-07 01:09:00.000000000 +0100
+@@ -44,6 +44,10 @@
+
+ #define VIDEO_BPP 2
+
++
++#define V1_COMMAND_FIRE 0x80000000 /* V1 commands fire */
++#define V3_COMMAND_FIRE 0x40000000 /* V3 commands fire */
++
+ typedef struct
+ {
+ CARD32 interruptflag; /* 200 */
+@@ -89,7 +93,7 @@
+ CARD32 video3_ctl; /* 2a0 */
+ CARD32 video3_addr0; /* 2a4 */
+ CARD32 video3_addr1; /* 2a8 */
+- CARD32 video3_stribe; /* 2ac */
++ CARD32 video3_stride; /* 2ac */
+ CARD32 video3_hvstart; /* 2b0 */
+ CARD32 video3_size; /* 2b4 */
+ CARD32 v3alpha_fetch; /* 2b8 */
diff --git a/testing/xf86-video-r128/LICENSE b/testing/xf86-video-r128/LICENSE
new file mode 100644
index 000000000..229a26157
--- /dev/null
+++ b/testing/xf86-video-r128/LICENSE
@@ -0,0 +1,219 @@
+
+Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation, and
+that the name of Marc Aurele La France not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. Marc Aurele La France makes no representations
+about the suitability of this software for any purpose. It is provided
+"as-is" without express or implied warranty.
+
+MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
+EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+Copyright 2000 Gareth Hughes
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+GARETH HUGHES BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+(c) 2004 Adam Jackson. Standard MIT license applies.
+
+Copyright 1999-2000 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+Precision Insight, Inc., Cedar Park, Texas, and
+VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Copyright 2003 Alex Deucher.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation on the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NON-INFRINGEMENT. IN NO EVENT SHALL ALEX DEUCHER, OR ANY OTHER
+CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+
+/**************************************************************************
+
+Copyright 1999, 2000 ATI Technologies Inc. and Precision Insight, Inc.,
+ Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, PRECISION INSIGHT AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
+/**************************************************************************
+
+Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
+ VA Linux Systems Inc., Fremont, California.
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+on the rights to use, copy, modify, merge, publish, distribute, sub
+license, and/or sell copies of the Software, and to permit persons to whom
+the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+/*
+ * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+ * Precision Insight, Inc., Cedar Park, Texas, and
+ * VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation on the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT. IN NO EVENT SHALL ATI, PRECISION INSIGHT, VA LINUX
+ * SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Rickard E. Faith <faith@valinux.com>
+ * Daryll Strauss <daryll@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ *
+ */
+
diff --git a/testing/xf86-video-r128/PKGBUILD b/testing/xf86-video-r128/PKGBUILD
new file mode 100644
index 000000000..44c710729
--- /dev/null
+++ b/testing/xf86-video-r128/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115348 2011-03-17 18:05:57Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-r128
+pkgver=6.8.1
+pkgrel=6
+pkgdesc="X.org ati Rage128 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'r128-dri')
+makedepends=('xorg-server-devel' 'xf86driproto' 'libdrm' 'mesa')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('2b90854a62a4d45d652062f582dc8d13'
+ '97ad034bea2a153f4418a6bb0c77acf4')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -D -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-rendition/PKGBUILD b/testing/xf86-video-rendition/PKGBUILD
new file mode 100644
index 000000000..7c664a61b
--- /dev/null
+++ b/testing/xf86-video-rendition/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 115356 2011-03-17 18:07:25Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-rendition
+pkgver=4.2.4
+pkgrel=4
+pkgdesc="X.org Rendition video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool' '!strip')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('16148c25183f7829c22bc9dfdb588c1a16bf4565')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+
+ strip --strip-unneeded "${pkgdir}/usr/lib/xorg/modules/drivers/rendition_drv.so"
+}
diff --git a/testing/xf86-video-s3/LICENSE b/testing/xf86-video-s3/LICENSE
new file mode 100644
index 000000000..a4c8d5dd4
--- /dev/null
+++ b/testing/xf86-video-s3/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+ Copyright 2001 Ani Joshi <ajoshi@unixbox.com>
+
+ XFree86 4.x driver for S3 chipsets
+
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation and
+that the name of Ani Joshi not be used in advertising or
+publicity pertaining to distribution of the software without specific,
+written prior permission. Ani Joshi makes no representations
+about the suitability of this software for any purpose. It is provided
+"as-is" without express or implied warranty.
+
+ANI JOSHI DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+EVENT SHALL ANI JOSHI BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/testing/xf86-video-s3/PKGBUILD b/testing/xf86-video-s3/PKGBUILD
new file mode 100644
index 000000000..fb0233d05
--- /dev/null
+++ b/testing/xf86-video-s3/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115359 2011-03-17 18:08:59Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-s3
+pkgver=0.6.3
+pkgrel=5
+pkgdesc="X.org S3 video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('5eb06d88533fb327d067928faeb20860'
+ '6b2bea29522da7cbb81cadde3235024d')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/xf86-video-s3virge/LICENSE b/testing/xf86-video-s3virge/LICENSE
new file mode 100644
index 000000000..23c2aea22
--- /dev/null
+++ b/testing/xf86-video-s3virge/LICENSE
@@ -0,0 +1,25 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
diff --git a/testing/xf86-video-s3virge/PKGBUILD b/testing/xf86-video-s3virge/PKGBUILD
new file mode 100644
index 000000000..9e5e00ff6
--- /dev/null
+++ b/testing/xf86-video-s3virge/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115362 2011-03-17 18:10:25Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-s3virge
+pkgver=1.10.4
+pkgrel=5
+pkgdesc="X.org S3 Virge video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=(!libtool)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('6517bbbf808c700502d51acdc44662f8' 'c0a38dfcd6288eff39322f7c584b8d1e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-savage/PKGBUILD b/testing/xf86-video-savage/PKGBUILD
new file mode 100644
index 000000000..14c73b0a8
--- /dev/null
+++ b/testing/xf86-video-savage/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115365 2011-03-17 18:12:33Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-savage
+pkgver=2.3.2
+pkgrel=2
+pkgdesc="X.org savage video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'savage-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.10.0')
+options=(!libtool !makeflags)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('d675693d0b29cb24f624ef57c1fe2f271f6bf6c3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-siliconmotion/PKGBUILD b/testing/xf86-video-siliconmotion/PKGBUILD
new file mode 100644
index 000000000..fc72fd1c9
--- /dev/null
+++ b/testing/xf86-video-siliconmotion/PKGBUILD
@@ -0,0 +1,28 @@
+# $Id: PKGBUILD 115368 2011-03-17 18:14:01Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: Alexander Baldeck <alexander@archlinux.org>
+
+pkgname=xf86-video-siliconmotion
+pkgver=1.7.5
+pkgrel=2
+pkgdesc="X.org siliconmotion video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('946acae0822d51da57abe8b7ed049691bd731589')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-sis/PKGBUILD b/testing/xf86-video-sis/PKGBUILD
new file mode 100644
index 000000000..04958c1c4
--- /dev/null
+++ b/testing/xf86-video-sis/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115371 2011-03-17 18:16:09Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sis
+pkgver=0.10.3
+pkgrel=4
+pkgdesc="X.org SiS video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'sis-dri')
+makedepends=('xorg-server-devel' 'xf86dgaproto' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.10.0')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('158673747e240b0c33499685a32d46bdaead7cd5')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-sisusb/PKGBUILD b/testing/xf86-video-sisusb/PKGBUILD
new file mode 100644
index 000000000..1a425a0c5
--- /dev/null
+++ b/testing/xf86-video-sisusb/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115377 2011-03-17 18:17:47Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-sisusb
+pkgver=0.9.4
+pkgrel=4
+pkgdesc="X.org SiS USB video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('600fd49dffe00121f9042555fea55948653d1a7e')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-tdfx/LICENSE b/testing/xf86-video-tdfx/LICENSE
new file mode 100644
index 000000000..08b1adde5
--- /dev/null
+++ b/testing/xf86-video-tdfx/LICENSE
@@ -0,0 +1,160 @@
+Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+/*
+ * Copyright 2000 VA Linux Systems Inc., Fremont, California.
+ *
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * VA LINUX SYSTEMS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
+ * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+
+/*
+ * GLX Hardware Device Driver for Intel i810
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+
+
+/*
+ * GLX Hardware Device Driver for Intel tdfx
+ * Copyright (C) 1999 Keith Whitwell
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * KEITH WHITWELL, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 4.1
+ *
+ * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ * Keith Whitwell <keith@tungstengraphics.com>
+ * Daniel Borca <dborca@users.sourceforge.net>
+ */
+
+
+/*
+ * Mesa 3-D graphics library
+ * Version: 5.1
+ *
+ * Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* Authors:
+ * Keith Whitwell
+ * Daniel Borca
+ */
diff --git a/testing/xf86-video-tdfx/PKGBUILD b/testing/xf86-video-tdfx/PKGBUILD
new file mode 100644
index 000000000..d164f8f49
--- /dev/null
+++ b/testing/xf86-video-tdfx/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 115382 2011-03-17 18:19:40Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tdfx
+pkgver=1.4.3
+pkgrel=6
+pkgdesc="X.org tdfx video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc' 'tdfx-dri')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+conflicts=('xorg-server<1.10.0')
+options=(!libtool)
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
+ LICENSE)
+md5sums=('8161bbf2b100c21b609163f0010766b3'
+ '978e9486ffd4e4164c12dc68c84186e1')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-trident/PKGBUILD b/testing/xf86-video-trident/PKGBUILD
new file mode 100644
index 000000000..07e2475b0
--- /dev/null
+++ b/testing/xf86-video-trident/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115385 2011-03-17 18:21:11Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-trident
+pkgver=1.3.4
+pkgrel=4
+pkgdesc="X.org Trident video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=(!libtool)
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7c40f5c02bddf399862782b708941e79302318af')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/" || return 1
+}
diff --git a/testing/xf86-video-tseng/PKGBUILD b/testing/xf86-video-tseng/PKGBUILD
new file mode 100644
index 000000000..f252044c5
--- /dev/null
+++ b/testing/xf86-video-tseng/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115388 2011-03-17 18:22:47Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-tseng
+pkgver=1.2.4
+pkgrel=4
+pkgdesc="X.org tseng video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('1b45f55657b2c92f30abb0769cae57fca98d93b7')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-unichrome/LICENSE b/testing/xf86-video-unichrome/LICENSE
new file mode 100644
index 000000000..f4007667b
--- /dev/null
+++ b/testing/xf86-video-unichrome/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2004-2007 Luc Verhaegen. All Rights Reserved.
+Copyright (c) 2004-2005 The Unichrome Project. All Rights Reserved.
+Copyright (c) 1998-2003 VIA Technologies, Inc. All Rights Reserved.
+Copyright (c) 2001-2003 S3 Graphics, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sub license,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/testing/xf86-video-unichrome/PKGBUILD b/testing/xf86-video-unichrome/PKGBUILD
new file mode 100644
index 000000000..71172840e
--- /dev/null
+++ b/testing/xf86-video-unichrome/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 115391 2011-03-17 18:24:27Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-unichrome
+pkgver=0.2.7
+pkgrel=5
+_gitversion=cd12cce88ff886031c23c743569fba97eccace4e
+pkgdesc="Unichrome video drivers for X.Org"
+arch=(i686 x86_64)
+url="http://unichrome.sf.net/"
+license=('custom')
+depends=('glibc' 'unichrome-dri')
+makedepends=('xorg-server-devel' 'libx11' 'libdrm' 'xf86driproto' 'mesa' 'libxvmc')
+options=('!libtool')
+conflicts=('xf86-video-via' 'openchrome' 'xf86-video-openchrome' 'xorg-server<1.10.0')
+source=(http://cgit.freedesktop.org/~libv/${pkgname}/snapshot/${pkgname}-${_gitversion}.tar.bz2
+ drm-include.patch
+ LICENSE)
+md5sums=('c64332e6c386ed9a580116e131f288f4'
+ '4a9bf2e3ef338c170a2f58988ebb97dc'
+ '6ea7d64c87c5c32201a1e38e3336e44a')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_gitversion}"
+ patch -Np0 -i "${srcdir}/drm-include.patch"
+ ./autogen.sh --prefix=/usr --enable-dri
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-unichrome/drm-include.patch b/testing/xf86-video-unichrome/drm-include.patch
new file mode 100644
index 000000000..edfe9a8af
--- /dev/null
+++ b/testing/xf86-video-unichrome/drm-include.patch
@@ -0,0 +1,11 @@
+--- src/via_memory.h.orig 2010-05-09 16:17:00.143352805 +0200
++++ src/via_memory.h 2010-05-09 16:17:14.433351301 +0200
+@@ -30,7 +30,7 @@
+
+ /* don't include local via_drm.h when using modular */
+ #ifdef HAVE_CONFIG_H
+-#include "drm/via_drm.h"
++#include <via_drm.h>
+ #else
+ #include "via_drm.h"
+ #endif
diff --git a/testing/xf86-video-v4l/LICENSE b/testing/xf86-video-v4l/LICENSE
new file mode 100644
index 000000000..535595b88
--- /dev/null
+++ b/testing/xf86-video-v4l/LICENSE
@@ -0,0 +1,826 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/driver/
+
+ Licenses
+
+ The X.Org Foundation
+
+ March 2004
+
+1. Introduction
+
+The X.org Foundation X Window System distribution is a compilation of code
+and documentation from many sources. This document is intended primarily as
+a guide to the licenses used in the distribution: you must check each file
+and/or package for precise redistribution terms. None-the-less, this summary
+may be useful to many users. No software incorporating the XFree86 1.1
+license has been incorporated.
+
+This document is based on the compilation from XFree86.
+
+2. XFree86 License
+
+XFree86 code without an explicit copyright is covered by the following copy-
+right/license:
+
+Copyright (C) 1994-2003 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other deal-
+ings in this Software without prior written authorization from the XFree86
+Project.
+
+3. Other Licenses
+
+Portions of code are covered by the following licenses/copyrights. See indi-
+vidual files for the copyright dates.
+
+3.1 X/MIT Copyrights
+
+3.1.1 X Consortium
+
+Copyright (C) <date> X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X
+CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the X Consortium shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the X Consortium.
+
+X Window System is a trademark of X Consortium, Inc.
+
+3.1.2 The Open Group
+
+Copyright <date> The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that copyright
+notice and this permission notice appear in supporting documentation.
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall not be
+used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from The Open Group.
+
+3.2 Berkeley-based copyrights:
+
+o
+
+3.2.1 General
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.2 UCB/LBL
+
+Copyright (c) 1993 The Regents of the University of California. All rights
+reserved.
+
+This software was developed by the Computer Systems Engineering group at
+Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and contributed to
+Berkeley.
+
+All advertising materials mentioning features or use of this software must
+display the following acknowledgement: This product includes software devel-
+oped by the University of California, Lawrence Berkeley Laboratory.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement: This product includes soft-
+ ware developed by the University of California, Berkeley and its con-
+ tributors.
+
+ 4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS-
+CLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.3 The NetBSD Foundation, Inc.
+
+Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved.
+
+This code is derived from software contributed to The NetBSD Foundation by
+Ben Collver <collver1@attbi.com>
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement: This product includes soft-
+ ware developed by the NetBSD Foundation, Inc. and its contributors.
+
+ 4. Neither the name of The NetBSD Foundation nor the names of its con-
+ tributors may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE-
+QUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAM-
+AGE.
+
+3.2.4 Theodore Ts'o.
+
+Copyright Theodore Ts'o, 1994, 1995, 1996, 1997, 1998, 1999. All rights
+reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ and the entire permission notice in its entirety, including the dis-
+ claimer of warranties.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. he name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.5 Theo de Raadt and Damien Miller
+
+Copyright (c) 1995,1999 Theo de Raadt. All rights reserved. Copyright (c)
+2001-2002 Damien Miller. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.2.6 Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+
+Permission to use, copy, modify, and distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright
+notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MER-
+CHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE FOR ANY
+SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CON-
+TRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+3.2.7 Thomas Winischhofer
+
+Copyright (C) 2001-2004 Thomas Winischhofer
+
+Redistribution and use in source and binary forms, with or without modifica-
+tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
+CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-
+ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+3.3 NVIDIA Corp
+
+Copyright (c) 1996 NVIDIA, Corp. All rights reserved.
+
+NOTICE TO USER: The source code is copyrighted under U.S. and international
+laws. NVIDIA, Corp. of Sunnyvale, California owns the copyright and as
+design patents pending on the design and interface of the NV chips. Users
+and possessors of this source code are hereby granted a nonexclusive, roy-
+alty-free copyright and design patent license to use this code in individual
+and commercial software.
+
+Any use of this source code must include, in the user documentation and
+internal comments to the code, notices to the end user as follows:
+
+Copyright (c) 1996 NVIDIA, Corp. NVIDIA design patents pending in the U.S.
+and foreign countries.
+
+NVIDIA, CORP. MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
+CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WAR-
+RANTY OF ANY KIND. NVIDIA, CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA, CORP. BE LIABLE
+FOR ANY SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAM-
+AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.
+
+3.4 GLX Public License
+
+GLX PUBLIC LICENSE (Version 1.0 (2/11/99)) ("License")
+
+Subject to any third party claims, Silicon Graphics, Inc. ("SGI") hereby
+grants permission to Recipient (defined below), under Recipient's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below), and to permit persons to whom the Subject Software is furnished in
+accordance with this License to do the same, subject to all of the following
+terms and conditions, which Recipient accepts by engaging in any such use,
+copying, modifying, merging, publishing, distributing, sublicensing or sell-
+ing:
+
+1. Definitions.
+
+ (a) "Original Software" means source code of computer software code
+ which is described in Exhibit A as Original Software.
+
+ (b) "Modifications" means any addition to or deletion from the sub-
+ stance or structure of either the Original Software or any previous
+ Modifications. When Subject Software is released as a series of
+ files, a Modification means (i) any addition to or deletion from
+ the contents of a file containing Original Software or previous
+ Modifications and (ii) any new file that contains any part of the
+ Original Code or previous Modifications.
+
+ (c) "Subject Software" means the Original Software or Modifications
+ or the combination of the Original Software and Modifications, or
+ portions of any of the foregoing.
+
+ (d) "Recipient" means an individual or a legal entity exercising
+ rights under, and complying with all of the terms of, this License.
+ For legal entities, "Recipient" includes any entity which controls,
+ is controlled by, or is under common control with Recipient. For
+ purposes of this definition, "control" of an entity means (a) the
+ power, direct or indirect, to direct or manage such entity, or (b)
+ ownership of fifty percent (50%) or more of the outstanding shares
+ or beneficial ownership of such entity.
+
+2. Redistribution of Source Code Subject to These Terms. Redistributions of
+Subject Software in source code form must retain the notice set forth in
+Exhibit A, below, in every file. A copy of this License must be included in
+any documentation for such Subject Software where the recipients' rights
+relating to Subject Software are described. Recipient may distribute the
+source code version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 2 and Sections 3, 4, 7, 8, 10, 12 and 13
+of this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the source code version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+3. Redistribution in Executable Form. The notice set forth in Exhibit A must
+be conspicuously included in any notice in an executable version of Subject
+Software, related documentation or collateral in which Recipient describes
+the user's rights relating to the Subject Software. Recipient may distribute
+the executable version of Subject Software under a license of Recipient's
+choice, which may contain terms different from this License, provided that
+(i) Recipient is in compliance with the terms of this License, and (ii) the
+license terms include this Section 3 and Sections 4, 7, 8, 10, 12 and 13 of
+this License, which terms may not be modified or superseded by any other
+terms of such license. If Recipient distributes the executable version under
+a different license Recipient must make it absolutely clear that any terms
+which differ from this License are offered by Recipient alone, not by SGI.
+Recipient hereby agrees to indemnify SGI for any liability incurred by SGI as
+a result of any such terms Recipient offers.
+
+4. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software which is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+5. No Trademark Rights. This License does not grant any rights to use any
+trade name, trademark or service mark whatsoever. No trade name, trademark or
+service mark of SGI may be used to endorse or promote products derived from
+the Subject Software without prior written permission of SGI.
+
+6. No Other Rights. This License does not grant any rights with respect to
+the OpenGL API or to any software or hardware implementation thereof or to
+any other software whatsoever, nor shall any other rights or licenses not
+expressly granted hereunder arise by implication, estoppel or otherwise with
+respect to the Subject Software. Title to and ownership of the Original Soft-
+ware at all times remains with SGI. All rights in the Original Software not
+expressly granted under this License are reserved.
+
+7. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+8. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Exhibit A notice required under Sec-
+tions 2 and 3, above, and in the text of any related documentation, license
+agreement or collateral in which Recipient describes end user's rights relat-
+ing to the Subject Software. If Recipient obtains such knowledge after it
+makes Subject Software available to any other person or entity, Recipient
+shall take other steps (such as notifying appropriate mailing lists or news-
+groups) reasonably calculated to inform those who received the Subject Soft-
+ware that new knowledge has been obtained.
+
+9. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON- INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+10. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THE-
+ORY, WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIA-
+BILITY), CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR
+ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK
+STOPPAGE, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
+THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY
+TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SGI's NEGLIGENCE TO
+THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES,
+SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO RECIPIENT.
+
+11. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold harmless Silicon Graphics, Inc.
+from and against any loss, liability, damages, costs or expenses (including
+the payment of reasonable attorneys fees) arising out of Recipient's use,
+modification, reproduction and distribution of the Subject Software or out of
+any representation or warranty made by Recipient.
+
+12. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End
+Users acquire only the rights set forth in this License and are subject to
+the terms of this License.
+
+13. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable, such provision shall be reformed so as to achieve as nearly as
+possible the same economic effect as the original provision and the remainder
+of this License will remain in effect. This License shall be governed by and
+construed in accordance with the laws of the United States and the State of
+California as applied to agreements entered into and to be performed entirely
+within California between California residents. Any litigation relating to
+this License shall be subject to the exclusive jurisdiction of the Federal
+Courts of the Northern District of California (or, absent subject matter
+jurisdiction in such courts, the courts of the State of California), with
+venue lying exclusively in Santa Clara County, California, with the losing
+party responsible for costs, including without limitation, court costs and
+reasonable attorneys fees and expenses. The application of the United Nations
+Convention on Contracts for the International Sale of Goods is expressly
+excluded. Any law or regulation which provides that the language of a con-
+tract shall be construed against the drafter shall not apply to this License.
+
+Exhibit A
+
+The contents of this file are subject to Sections 2, 3, 4, 7, 8, 10, 12 and
+13 of the GLX Public License Version 1.0 (the "License"). You may not use
+this file except in compliance with those sections of the License. You may
+obtain a copy of the License at Silicon Graphics, Inc., attn: Legal Services,
+2011 N. Shoreline Blvd., Mountain View, CA 94043 or at
+http://www.sgi.com/software/opensource/glx/license.html.
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software is GLX version 1.2 source code, released February,
+1999. The developer of the Original Software is Silicon Graphics, Inc. Those
+portions of the Subject Software created by Silicon Graphics, Inc. are Copy-
+right (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved.
+
+3.5 CID Font Code Public License
+
+CID FONT CODE PUBLIC LICENSE (Version 1.0 (3/31/99))("License")
+
+Subject to any applicable third party claims, Silicon Graphics, Inc. ("SGI")
+hereby grants permission to Recipient (defined below), under SGI's copyrights
+in the Original Software (defined below), to use, copy, modify, merge, pub-
+lish, distribute, sublicense and/or sell copies of Subject Software (defined
+below) in both source code and executable form, and to permit persons to whom
+the Subject Software is furnished in accordance with this License to do the
+same, subject to all of the following terms and conditions, which Recipient
+accepts by engaging in any such use, copying, modifying, merging, publica-
+tion, distributing, sublicensing or selling:
+
+1. Definitions.
+
+ a. "Original Software" means source code of computer software code
+ that is described in Exhibit A as Original Software.
+
+ b. "Modifications" means any addition to or deletion from the sub-
+ stance or structure of either the Original Software or any previous
+ Modifications. When Subject Software is released as a series of
+ files, a Modification means (i) any addition to or deletion from
+ the contents of a file containing Original Software or previous
+ Modifications and (ii) any new file that contains any part of the
+ Original Code or previous Modifications.
+
+ c. "Subject Software" means the Original Software or Modifications
+ or the combination of the Original Software and Modifications, or
+ portions of any of the foregoing.
+
+ d. "Recipient" means an individual or a legal entity exercising
+ rights under the terms of this License. For legal entities, "Recip-
+ ient" includes any entity that controls, is controlled by, or is
+ under common control with Recipient. For purposes of this defini-
+ tion, "control" of an entity means (i) the power, direct or indi-
+ rect, to direct or manage such entity, or (ii) ownership of fifty
+ percent (50%) or more of the outstanding shares or beneficial own-
+ ership of such entity.
+
+ e. "Required Notice" means the notice set forth in Exhibit A to
+ this License.
+
+ f. "Accompanying Technology" means any software or other technology
+ that is not a Modification and that is distributed or made publicly
+ available by Recipient with the Subject Software. Separate soft-
+ ware files that do not contain any Original Software or any previ-
+ ous Modification shall not be deemed a Modification, even if such
+ software files are aggregated as part of a product, or in any
+ medium of storage, with any file that does contain Original Soft-
+ ware or any previous Modification.
+
+2. License Terms. All distribution of the Subject Software must be made sub-
+ject to the terms of this License. A copy of this License and the Required
+Notice must be included in any documentation for Subject Software where
+Recipient's rights relating to Subject Software and/or any Accompanying Tech-
+nology are described. Distributions of Subject Software in source code form
+must also include the Required Notice in every file distributed. In addition,
+a ReadMe file entitled "Important Legal Notice" must be distributed with each
+distribution of one or more files that incorporate Subject Software. That
+file must be included with distributions made in both source code and exe-
+cutable form. A copy of the License and the Required Notice must be included
+in that file. Recipient may distribute Accompanying Technology under a
+license of Recipient's choice, which may contain terms different from this
+License, provided that (i) Recipient is in compliance with the terms of this
+License, (ii) such other license terms do not modify or supersede the terms
+of this License as applicable to the Subject Software, (iii) Recipient hereby
+indemnifies SGI for any liability incurred by SGI as a result of the distri-
+bution of Accompanying Technology or the use of other license terms.
+
+3. Termination. This License and the rights granted hereunder will terminate
+automatically if Recipient fails to comply with terms herein and fails to
+cure such breach within 30 days of the breach. Any sublicense to the Subject
+Software that is properly granted shall survive any termination of this
+License absent termination by the terms of such sublicense. Provisions which,
+by their nature, must remain in effect beyond the termination of this License
+shall survive.
+
+4. Trademark Rights. This License does not grant any rights to use any trade
+name, trademark or service mark whatsoever. No trade name, trademark or ser-
+vice mark of SGI may be used to endorse or promote products derived from or
+incorporating any Subject Software without prior written permission of SGI.
+
+5. No Other Rights. No rights or licenses not expressly granted hereunder
+shall arise by implication, estoppel or otherwise. Title to and ownership of
+the Original Software at all times remains with SGI. All rights in the Origi-
+nal Software not expressly granted under this License are reserved.
+
+6. Compliance with Laws; Non-Infringement. Recipient shall comply with all
+applicable laws and regulations in connection with use and distribution of
+the Subject Software, including but not limited to, all export and import
+control laws and regulations of the U.S. government and other countries.
+Recipient may not distribute Subject Software that (i) in any way infringes
+(directly or contributorily) the rights (including patent, copyright, trade
+secret, trademark or other intellectual property rights of any kind) of any
+other person or entity, or (ii) breaches any representation or warranty,
+express, implied or statutory, which under any applicable law it might be
+deemed to have been distributed.
+
+7. Claims of Infringement. If Recipient at any time has knowledge of any one
+or more third party claims that reproduction, modification, use, distribu-
+tion, import or sale of Subject Software (including particular functionality
+or code incorporated in Subject Software) infringes the third party's intel-
+lectual property rights, Recipient must place in a well-identified web page
+bearing the title "LEGAL" a description of each such claim and a description
+of the party making each such claim in sufficient detail that a user of the
+Subject Software will know whom to contact regarding the claim. Also, upon
+gaining such knowledge of any such claim, Recipient must conspicuously
+include the URL for such web page in the Required Notice, and in the text of
+any related documentation, license agreement or collateral in which Recipient
+describes end user's rights relating to the Subject Software. If Recipient
+obtains such knowledge after it makes Subject Software available to any other
+person or entity, Recipient shall take other steps (such as notifying appro-
+priate mailing lists or newsgroups) reasonably calculated to provide such
+knowledge to those who received the Subject Software.
+
+8. DISCLAIMER OF WARRANTY. SUBJECT SOFTWARE IS PROVIDED ON AN "AS IS" BASIS,
+WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT
+LIMITATION, WARRANTIES THAT THE SUBJECT SOFTWARE IS FREE OF DEFECTS, MER-
+CHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. SGI ASSUMES NO
+RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE. SHOULD ANY SOFTWARE
+PROVE DEFECTIVE IN ANY RESPECT, SGI ASSUMES NO COST OR LIABILITY FOR ANY SER-
+VICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN
+ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY SUBJECT SOFTWARE IS AUTHORIZED
+HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+9. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY,
+WHETHER TORT (INCLUDING, WITHOUT LIMITATION, NEGLIGENCE OR STRICT LIABILITY),
+CONTRACT, OR OTHERWISE, SHALL SGI OR ANY SGI LICENSOR BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SUBJECT SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SUBJECT SOFTWARE. SOME JURISDICTIONS DO NOT
+ALLOW THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES, SO THIS EXCLUSION AND
+LIMITATION MAY NOT APPLY TO RECIPIENT TO THE EXTENT SO DISALLOWED.
+
+10. Indemnity. Recipient shall be solely responsible for damages arising,
+directly or indirectly, out of its utilization of rights under this License.
+Recipient will defend, indemnify and hold SGI and its successors and assigns
+harmless from and against any loss, liability, damages, costs or expenses
+(including the payment of reasonable attorneys fees) arising out of (Recipi-
+ent's use, modification, reproduction and distribution of the Subject Soft-
+ware or out of any representation or warranty made by Recipient.
+
+11. U.S. Government End Users. The Subject Software is a "commercial item"
+consisting of "commercial computer software" as such terms are defined in
+title 48 of the Code of Federal Regulations and all U.S. Government End Users
+acquire only the rights set forth in this License and are subject to the
+terms of this License.
+
+12. Miscellaneous. This License represents the complete agreement concerning
+subject matter hereof. If any provision of this License is held to be unen-
+forceable by any judicial or administrative authority having proper jurisdic-
+tion with respect thereto, such provision shall be reformed so as to achieve
+as nearly as possible the same economic effect as the original provision and
+the remainder of this License will remain in effect. This License shall be
+governed by and construed in accordance with the laws of the United States
+and the State of California as applied to agreements entered into and to be
+performed entirely within California between California residents. Any liti-
+gation relating to this License shall be subject to the exclusive jurisdic-
+tion of the Federal Courts of the Northern District of California (or, absent
+subject matter jurisdiction in such courts, the courts of the State of Cali-
+fornia), with venue lying exclusively in Santa Clara County, California, with
+the losing party responsible for costs, including without limitation, court
+costs and reasonable attorneys fees and expenses. The application of the
+United Nations Convention on Contracts for the International Sale of Goods is
+expressly excluded. Any law or regulation that provides that the language of
+a contract shall be construed against the drafter shall not apply to this
+License.
+
+Exhibit A
+
+Copyright (c) 1994-1999 Silicon Graphics, Inc.
+
+The contents of this file are subject to the CID Font Code Public License
+Version 1.0 (the "License"). You may not use this file except in compliance
+with the License. You may obtain a copy of the License at Silicon Graphics,
+Inc., attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043
+or at http://www.sgi.com/software/opensource/cid/license.html
+
+Software distributed under the License is distributed on an "AS IS" basis.
+ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED
+WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE OR OF NON-
+INFRINGEMENT. See the License for the specific language governing rights and
+limitations under the License.
+
+The Original Software (as defined in the License) is CID font code that was
+developed by Silicon Graphics, Inc. Those portions of the Subject Software
+(as defined in the License) that were created by Silicon Graphics, Inc. are
+Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
+
+[NOTE: When using this text in connection with Subject Software delivered
+solely in object code form, Recipient may replace the words "this file" with
+"this software" in both the first and second sentences.]
+
+3.6 Bitstream Vera Fonts Copyright
+
+The fonts have a generous copyright, allowing derivative works (as long as
+"Bitstream" or "Vera" are not in the names), and full redistribution (so long
+as they are not *sold* by themselves). They can be be bundled, redistributed
+and sold with any software.
+
+The fonts are distributed under the following copyright:
+
+Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
+a trademark of Bitstream, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of the fonts accompanying this license ("Fonts") and associated documentation
+files (the "Font Software"), to reproduce and distribute the Font Software,
+including without limitation the rights to use, copy, merge, publish, dis-
+tribute, and/or sell copies of the Font Software, and to permit persons to
+whom the Font Software is furnished to do so, subject to the following condi-
+tions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software typefaces.
+
+The Font Software may be modified, altered, or added to, and in particular
+the designs of glyphs or characters in the Fonts may be modified and addi-
+tional glyphs or characters may be added to the Fonts, only if the fonts are
+renamed to names not containing either the words "Bitstream" or the word
+"Vera".
+
+This License becomes null and void to the extent applicable to Fonts or Font
+Software that has been modified and is distributed under the "Bitstream Vera"
+names.
+
+The Font Software may be sold as part of a larger software package but no
+copy of one or more of the Font Software typefaces may be sold by itself.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME FOUNDA-
+TION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Gnome, the Gnome Foundation,
+and Bitstream Inc., shall not be used in advertising or otherwise to promote
+the sale, use or other dealings in this Font Software without prior written
+authorization from the Gnome Foundation or Bitstream Inc., respectively. For
+further information, contact: fonts at gnome dot org.
+
+3.7 Bigelow & Holmes Inc and URW++ GmbH Luxi font license
+
+Luxi fonts copyright (c) 2001 by Bigelow & Holmes Inc. Luxi font instruction
+code copyright (c) 2001 by URW++ GmbH. All Rights Reserved. Luxi is a regis-
+tered trademark of Bigelow & Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright and trademark notices and this permission notice shall be
+included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particu-
+lar the designs of glyphs or characters in the Fonts may not be modified nor
+may additional glyphs or characters be added to the Fonts. This License
+becomes null and void when the Fonts or Font Software have been modified.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR URW++
+GMBH. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+URW++ GmbH. shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Font Software without prior written
+authorization from Bigelow & Holmes Inc. and URW++ GmbH.
+
+For further information, contact:
+
+info@urwpp.de or design@bigelowandholmes.com
+
+ $Id: LICENSE,v 1.3 2004/09/03 23:41:21 kem Exp $
diff --git a/testing/xf86-video-v4l/PKGBUILD b/testing/xf86-video-v4l/PKGBUILD
new file mode 100644
index 000000000..28d1c8c05
--- /dev/null
+++ b/testing/xf86-video-v4l/PKGBUILD
@@ -0,0 +1,27 @@
+# $Id: PKGBUILD 115394 2011-03-17 18:25:56Z andyrtr $
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-v4l
+pkgver=0.2.0
+pkgrel=8
+pkgdesc="X.org v4l video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('2251ae2a0a905764941cd7b098e85ad1'
+ '7d4d018f6bbff7e42672d1aabc75c5cf')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-vesa/PKGBUILD b/testing/xf86-video-vesa/PKGBUILD
new file mode 100644
index 000000000..d5778d23f
--- /dev/null
+++ b/testing/xf86-video-vesa/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115397 2011-03-17 18:27:20Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-vesa
+pkgver=2.3.0
+pkgrel=5
+pkgdesc="X.org vesa video driver"
+arch=(i686 x86_64)
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('glibc')
+makedepends=('pkgconfig' 'xorg-server-devel')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('4689b7c295d7a8d7326302dafecb812739617134')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-voodoo/PKGBUILD b/testing/xf86-video-voodoo/PKGBUILD
new file mode 100644
index 000000000..ea146879f
--- /dev/null
+++ b/testing/xf86-video-voodoo/PKGBUILD
@@ -0,0 +1,26 @@
+# $Id: PKGBUILD 115403 2011-03-17 18:35:27Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-voodoo
+pkgver=1.2.4
+pkgrel=4
+pkgdesc="X.org 3dfx Voodoo1/Voodoo2 2D video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'xf86dgaproto')
+conflicts=('xorg-server<1.10.0')
+groups=('xorg-drivers' 'xorg')
+options=('!libtool')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('7ecd232cc0b7fe507e18e08799791eefa9fdaf48')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/testing/xf86-video-xgi/PKGBUILD b/testing/xf86-video-xgi/PKGBUILD
new file mode 100644
index 000000000..0c06d0615
--- /dev/null
+++ b/testing/xf86-video-xgi/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 115406 2011-03-17 18:37:02Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgi
+pkgver=1.6.0
+pkgrel=3
+pkgdesc="X.org XGI video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'glproto' 'mesa' 'xf86dgaproto')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('826f14d6ba799cd2aae9f0c818f84cf8b75f1ddb')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xf86-video-xgixp/PKGBUILD b/testing/xf86-video-xgixp/PKGBUILD
new file mode 100644
index 000000000..30d34d3a5
--- /dev/null
+++ b/testing/xf86-video-xgixp/PKGBUILD
@@ -0,0 +1,25 @@
+# $Id: PKGBUILD 115409 2011-03-17 18:38:51Z andyrtr $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=xf86-video-xgixp
+pkgver=1.8.0
+pkgrel=3
+pkgdesc="X.org XGIXP video driver"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('glibc')
+makedepends=('xorg-server-devel' 'libdrm' 'xf86driproto' 'mesa')
+options=('!libtool')
+groups=('xorg-drivers' 'xorg')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
+sha1sums=('67caeaa4c746572160208fe23c7257f62cb442a3')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
+ make DESTDIR="${pkgdir}" install
+ install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
diff --git a/testing/xorg-server/10-quirks.conf b/testing/xorg-server/10-quirks.conf
new file mode 100644
index 000000000..7afad22dc
--- /dev/null
+++ b/testing/xorg-server/10-quirks.conf
@@ -0,0 +1,10 @@
+# Collection of quirks and blacklist/whitelists for specific devices.
+
+
+# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
+# http://bugs.freedesktop.org/show_bug.cgi?id=22442
+Section "InputClass"
+ Identifier "ThinkPad HDAPS accelerometer blacklist"
+ MatchProduct "ThinkPad HDAPS accelerometer data"
+ Option "Ignore" "on"
+EndSection
diff --git a/testing/xorg-server/PKGBUILD b/testing/xorg-server/PKGBUILD
new file mode 100644
index 000000000..d33d3a62d
--- /dev/null
+++ b/testing/xorg-server/PKGBUILD
@@ -0,0 +1,175 @@
+# $Id: PKGBUILD 117185 2011-03-29 10:38:28Z jgc $
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgbase=xorg-server
+pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-common' 'xorg-server-devel')
+pkgver=1.10.0.901
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org"
+makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 'inputproto' 'fontsproto' 'videoproto' 'compositeproto' 'recordproto' 'scrnsaverproto' 'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv' 'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres' 'xorg-xkbcomp')
+options=('!libtool')
+source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2
+ xorg-redhat-die-ugly-pattern-die-die-die.patch
+ xvfb-run
+ xvfb-run.1
+ 10-quirks.conf)
+md5sums=('d750cf5f6342b548b7ac2be56e9d1841'
+ '1a336eb22e27cbf443ec5a2ecddfa93c'
+ '52fd3effd80d7bc6c1660d4ecf23d31c'
+ '376c70308715cd2643f7bff936d9934b'
+ 'd4f7dfc6be4ef4e2c6dd7632a9d88abe')
+
+build() {
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ # Get rid of the ugly pattern
+ patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch"
+
+ ./configure --prefix=/usr \
+ --enable-ipv6 \
+ --enable-dri \
+ --enable-dmx \
+ --enable-xvfb \
+ --enable-xnest \
+ --enable-composite \
+ --enable-xcsecurity \
+ --enable-xorg \
+ --enable-xephyr \
+ --enable-glx-tls \
+ --enable-kdrive \
+ --enable-install-setuid \
+ --enable-config-udev \
+ --disable-config-dbus \
+ --enable-record \
+ --disable-xfbdev \
+ --disable-xfake \
+ --disable-static \
+ --sysconfdir=/etc/X11 \
+ --localstatedir=/var \
+ --with-xkb-path=/usr/share/X11/xkb \
+ --with-xkb-output=/var/lib/xkb \
+ --with-fontrootdir=/usr/share/fonts # --with-dri-driver-path=/usr/lib/xorg/modules/dri \
+ make
+
+ sed -e 's/^DMX_SUBDIRS =.*/DMX_SUBDIRS =/' \
+ -e 's/^XVFB_SUBDIRS =.*/XVFB_SUBDIRS =/' \
+ -e 's/^XNEST_SUBDIRS =.*/XNEST_SUBDIRS = /' \
+ -e 's/^KDRIVE_SUBDIRS =.*/KDRIVE_SUBDIRS =/' \
+ -i hw/Makefile
+}
+
+package_xorg-server-common() {
+ pkgdesc="Xorg server common files"
+ depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
+ install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
+
+ make -C xkb DESTDIR="${pkgdir}" install-data
+
+ install -m755 -d "${pkgdir}/usr/share/man/man1"
+ install -m644 doc/man/Xserver.1 "${pkgdir}/usr/share/man/man1/"
+
+ install -m755 -d "${pkgdir}/usr/lib/xorg"
+ install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/"
+}
+
+package_xorg-server() {
+ pkgdesc="Xorg X server"
+ depends=(libxdmcp libxfont udev libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-evdev)
+ backup=('etc/X11/xorg.conf.d/10-evdev.conf' 'etc/X11/xorg.conf.d/10-quirks.conf')
+ provides=('x-server')
+ groups=('xorg')
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/etc/X11"
+ mv "${pkgdir}/usr/share/X11/xorg.conf.d" "${pkgdir}/etc/X11/"
+ install -m644 "${srcdir}/10-quirks.conf" "${pkgdir}/etc/X11/xorg.conf.d/"
+
+ rmdir "${pkgdir}/usr/share/X11"
+
+ # Needed for non-mesa drivers, libgl will restore it
+ mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
+ "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"
+
+ rm -rf "${pkgdir}/var"
+
+ rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
+ rm -f "${pkgdir}/usr/lib/xorg/protocol.txt"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server/COPYING"
+
+ rm -rf "${pkgdir}/usr/lib/pkgconfig"
+ rm -rf "${pkgdir}/usr/include"
+ rm -rf "${pkgdir}/usr/share/aclocal"
+}
+
+package_xorg-server-xephyr() {
+ pkgdesc="A nested X server that runs as an X application"
+ depends=(libxfont libgl libgcrypt libxv pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/kdrive"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xephyr/COPYING"
+}
+
+package_xorg-server-xvfb() {
+ pkgdesc="Virtual framebuffer X server"
+ depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/vfb"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
+ install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xvfb"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xvfb/COPYING"
+}
+
+package_xorg-server-xnest() {
+ pkgdesc="A nested X server that runs as an X application"
+ depends=(libxfont libxext libgcrypt pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/xnest"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xnest/COPYING"
+}
+
+package_xorg-server-xdmx() {
+ pkgdesc="Distributed Multihead X Server and utilities"
+ depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}/hw/dmx"
+ make DESTDIR="${pkgdir}" install
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xdmx/COPYING"
+}
+
+package_xorg-server-devel() {
+ pkgdesc="Development files for the X.Org X server"
+ depends=(xproto randrproto renderproto xextproto inputproto kbproto fontsproto videoproto dri2proto xineramaproto xorg-util-macros pixman libpciaccess)
+
+ cd "${srcdir}/${pkgbase}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ rm -rf "${pkgdir}/usr/bin"
+ rm -rf "${pkgdir}/usr/share/man"
+ rm -rf "${pkgdir}/usr/share/doc"
+ rm -rf "${pkgdir}/usr/share/X11"
+ rm -rf "${pkgdir}/usr/lib/xorg"
+ rm -rf "${pkgdir}/var"
+
+ install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
+ ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
+}
diff --git a/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch b/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
new file mode 100644
index 000000000..4e782f1c6
--- /dev/null
+++ b/testing/xorg-server/xorg-redhat-die-ugly-pattern-die-die-die.patch
@@ -0,0 +1,16 @@
+Remove the default root window grey stipple pattern, replacing it with
+blackness.
+
+--- xc/programs/Xserver/dix/window.c.die-ugly-pattern-die-die-die Tue Feb 12 16:33:04 2002
++++ xc/programs/Xserver/dix/window.c Tue Feb 12 16:45:32 2002
+@@ -119,8 +119,8 @@
+ *
+ ******/
+
+-static unsigned char _back_lsb[4] = {0x88, 0x22, 0x44, 0x11};
+-static unsigned char _back_msb[4] = {0x11, 0x44, 0x22, 0x88};
++static unsigned char _back_lsb[4] = {0x00, 0x00, 0x00, 0x00};
++static unsigned char _back_msb[4] = {0x00, 0x00, 0x00, 0x00};
+
+ int screenIsSaved = SCREEN_SAVER_OFF;
+
diff --git a/testing/xorg-server/xvfb-run b/testing/xorg-server/xvfb-run
new file mode 100644
index 000000000..4c2f4e0d3
--- /dev/null
+++ b/testing/xorg-server/xvfb-run
@@ -0,0 +1,180 @@
+#!/bin/sh
+
+# $Id: xvfb-run 2027 2004-11-16 14:54:16Z branden $
+
+# This script starts an instance of Xvfb, the "fake" X server, runs a command
+# with that server available, and kills the X server when done. The return
+# value of the command becomes the return value of this script.
+#
+# If anyone is using this to build a Debian package, make sure the package
+# Build-Depends on xvfb, xbase-clients, and xfonts-base.
+
+set -e
+
+PROGNAME=xvfb-run
+SERVERNUM=99
+AUTHFILE=
+ERRORFILE=/dev/null
+STARTWAIT=3
+XVFBARGS="-screen 0 640x480x8"
+LISTENTCP="-nolisten tcp"
+XAUTHPROTO=.
+
+# Query the terminal to establish a default number of columns to use for
+# displaying messages to the user. This is used only as a fallback in the event
+# the COLUMNS variable is not set. ($COLUMNS can react to SIGWINCH while the
+# script is running, and this cannot, only being calculated once.)
+DEFCOLUMNS=$(stty size 2>/dev/null | awk '{print $2}') || true
+if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" >/dev/null 2>&1; then
+ DEFCOLUMNS=80
+fi
+
+# Display a message, wrapping lines at the terminal width.
+message () {
+ echo "$PROGNAME: $*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS}
+}
+
+# Display an error message.
+error () {
+ message "error: $*" >&2
+}
+
+# Display a usage message.
+usage () {
+ if [ -n "$*" ]; then
+ message "usage error: $*"
+ fi
+ cat <<EOF
+Usage: $PROGNAME [OPTION ...] COMMAND
+Run COMMAND (usually an X client) in a virtual X server environment.
+Options:
+-a --auto-servernum try to get a free server number, starting at
+ --server-num
+-e FILE --error-file=FILE file used to store xauth errors and Xvfb
+ output (default: $ERRORFILE)
+-f FILE --auth-file=FILE file used to store auth cookie
+ (default: ./.Xauthority)
+-h --help display this usage message and exit
+-n NUM --server-num=NUM server number to use (default: $SERVERNUM)
+-l --listen-tcp enable TCP port listening in the X server
+-p PROTO --xauth-protocol=PROTO X authority protocol name to use
+ (default: xauth command's default)
+-s ARGS --server-args=ARGS arguments (other than server number and
+ "-nolisten tcp") to pass to the Xvfb server
+ (default: "$XVFBARGS")
+-w DELAY --wait=DELAY delay in seconds to wait for Xvfb to start
+ before running COMMAND (default: $STARTWAIT)
+EOF
+}
+
+# Find a free server number by looking at .X*-lock files in /tmp.
+find_free_servernum() {
+ # Sadly, the "local" keyword is not POSIX. Leave the next line commented in
+ # the hope Debian Policy eventually changes to allow it in /bin/sh scripts
+ # anyway.
+ #local i
+
+ i=$SERVERNUM
+ while [ -f /tmp/.X$i-lock ]; do
+ i=$(($i + 1))
+ done
+ echo $i
+}
+
+# Clean up files
+clean_up() {
+ if [ -e "$AUTHFILE" ]; then
+ XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
+ fi
+ if [ -n "$XVFB_RUN_TMPDIR" ]; then
+ if ! rm -r "$XVFB_RUN_TMPDIR"; then
+ error "problem while cleaning up temporary directory"
+ exit 5
+ fi
+ fi
+}
+
+# Parse the command line.
+ARGS=$(getopt --options +ae:f:hn:lp:s:w: \
+ --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
+ --name "$PROGNAME" -- "$@")
+GETOPT_STATUS=$?
+
+if [ $GETOPT_STATUS -ne 0 ]; then
+ error "internal error; getopt exited with status $GETOPT_STATUS"
+ exit 6
+fi
+
+eval set -- "$ARGS"
+
+while :; do
+ case "$1" in
+ -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;;
+ -e|--error-file) ERRORFILE="$2"; shift ;;
+ -f|--auth-file) AUTHFILE="$2"; shift ;;
+ -h|--help) SHOWHELP="yes" ;;
+ -n|--server-num) SERVERNUM="$2"; shift ;;
+ -l|--listen-tcp) LISTENTCP="" ;;
+ -p|--xauth-protocol) XAUTHPROTO="$2"; shift ;;
+ -s|--server-args) XVFBARGS="$2"; shift ;;
+ -w|--wait) STARTWAIT="$2"; shift ;;
+ --) shift; break ;;
+ *) error "internal error; getopt permitted \"$1\" unexpectedly"
+ exit 6
+ ;;
+ esac
+ shift
+done
+
+if [ "$SHOWHELP" ]; then
+ usage
+ exit 0
+fi
+
+if [ -z "$*" ]; then
+ usage "need a command to run" >&2
+ exit 2
+fi
+
+if ! which xauth >/dev/null; then
+ error "xauth command not found"
+ exit 3
+fi
+
+# tidy up after ourselves
+trap clean_up EXIT
+
+# If the user did not specify an X authorization file to use, set up a temporary
+# directory to house one.
+if [ -z "$AUTHFILE" ]; then
+ XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)"
+ AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
+fi
+
+# Start Xvfb.
+MCOOKIE=$(mcookie)
+XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
+add :$SERVERNUM $XAUTHPROTO $MCOOKIE
+EOF
+XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
+ 2>&1 &
+XVFBPID=$!
+sleep "$STARTWAIT"
+if ! kill -0 $XVFBPID 2>/dev/null; then
+ echo "Xvfb failed to start" >&2
+ exit 1
+fi
+
+# Start the command and save its exit status.
+set +e
+DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1
+RETVAL=$?
+set -e
+
+# Kill Xvfb now that the command has exited.
+kill $XVFBPID
+
+# Return the executed command's exit status.
+exit $RETVAL
+
+# vim:set ai et sts=4 sw=4 tw=80:
diff --git a/testing/xorg-server/xvfb-run.1 b/testing/xorg-server/xvfb-run.1
new file mode 100644
index 000000000..137d3a196
--- /dev/null
+++ b/testing/xorg-server/xvfb-run.1
@@ -0,0 +1,282 @@
+.\" $Id: xvfb-run.1 2138 2005-01-17 23:40:27Z branden $
+.\"
+.\" Copyright 1998-2004 Branden Robinson <branden@debian.org>.
+.\"
+.\" This is free software; you may 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,
+.\" or (at your option) any later version.
+.\"
+.\" This 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 with
+.\" the Debian operating system, in /usr/share/common-licenses/GPL; if
+.\" not, write to the Free Software Foundation, Inc., 59 Temple Place,
+.\" Suite 330, Boston, MA 02111-1307 USA
+.\"
+.\" We need the URL macro from groff's www macro package, but also want
+.\" things to work all right for people who don't have it. So we define
+.\" our own URL macro and let the www macro package override it if it's
+.\" available.
+.de URL
+\\$2 \(laURL: \\$1 \(ra\\$3
+..
+.if \n[.g] .mso www.tmac
+.TH xvfb\-run 1 "2004\-11\-12" "Debian Project"
+.SH NAME
+xvfb\-run \- run specified X client or command in a virtual X server environment
+.SH SYNOPSIS
+.B xvfb\-run
+[
+.I options
+]
+.I command
+.SH DESCRIPTION
+.B xvfb\-run
+is a wrapper for the
+.BR Xvfb (1x)
+command which simplifies the task of running commands (typically an X
+client, or a script containing a list of clients to be run) within a virtual
+X server environment.
+.PP
+.B xvfb\-run
+sets up an X authority file (or uses an existing user\-specified one),
+writes a cookie to it (see
+.BR xauth (1x))
+and then starts the
+.B Xvfb
+X server as a background process.
+The process ID of
+.B Xvfb
+is stored for later use.
+The specified
+.I command
+is then run using the X display corresponding to the
+.B Xvfb
+server
+just started and the X authority file created earlier.
+.PP
+When the
+.I command
+exits, its status is saved, the
+.B Xvfb
+server is killed (using the process ID stored earlier), the X authority
+cookie removed, and the authority file deleted (if the user did not specify
+one to use).
+.B xvfb\-run
+then exits with the exit status of
+.IR command .
+.PP
+.B xvfb\-run
+requires the
+.B xauth
+command to function.
+.SH OPTIONS
+.TP
+.B \-a\fR,\fB \-\-auto\-servernum
+Try to get a free server number, starting at 99, or the argument to
+.BR \-\-server\-num .
+.TP
+.BI \-e\ file \fR,\fB\ \-\-error\-file= file
+Store output from
+.B xauth
+and
+.B Xvfb
+in
+.IR file .
+The default is
+.IR /dev/null .
+.TP
+.BI \-f\ file \fR,\fB\ \-\-auth\-file= file
+Store X authentication data in
+.IR file .
+By default, a temporary directory called
+.IR xvfb\-run. PID
+(where PID is the process ID of
+.B xvfb\-run
+itself) is created in the directory specified by the environment variable
+.B TMPDIR
+(or
+.I /tmp
+if that variable is null or unset), and the
+.BR tempfile (1)
+command is used to create a file in that temporary directory called
+.IR Xauthority .
+.TP
+.B \-h\fR,\fB \-\-help
+Display a usage message and exit.
+.TP
+.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber
+Use
+.I servernumber
+as the server number (but see the
+.B \-a\fR,\fB \-\-auto\-servernum
+option above).
+The default is 99.
+.TP
+.B \-l\fR,\fB \-\-listen\-tcp
+Enable TCP port listening in the X server.
+For security reasons (to avoid denial\-of\-service attacks or exploits),
+TCP port listening is disabled by default.
+.TP
+.BI \-p\ protocolname \fR,\fB\ \-\-xauth\-protocol= protocolname
+Use
+.I protocolname
+as the X authority protocol to use.
+The default is \(oq.\(cq, which
+.B xauth
+interprets as its own default protocol, which is MIT\-MAGIC\-COOKIE\-1.
+.TP
+.BI \-s\ arguments \fR,\fB\ \-\-server\-args= arguments
+Pass
+.I arguments
+to the
+.B Xvfb
+server.
+Be careful to quote any whitespace characters that may occur within
+.I arguments
+to prevent them from regarded as separators for
+.BR xvfb\-run 's
+own arguments.
+Also, note that specification of \(oq\-nolisten tcp\(cq in
+.I arguments
+may override the function of
+.BR xvfb\-run 's
+own
+.B \-l\fR,\fB \-\-listen\-tcp
+option, and that specification of the server number (e.g., \(oq:1\(cq) may
+be ignored because of the way the X server parses its argument list.
+Use the
+.B xvfb\-run
+option
+.BI \-n\ servernumber \fR,\fB\ \-\-server\-num= servernumber
+to achieve the latter function.
+The default is \(oq\-screen 0 640x480x8\(cq.
+.TP
+.BI \-w\ delay \fR,\fB\ \-\-wait= delay
+Wait
+.I delay
+seconds after launching
+.B Xvfb
+before attempting to start the specified command.
+The default is 3.
+.SH ENVIRONMENT
+.TP
+.B COLUMNS
+indicates the width of the terminal device in character cells.
+This value is used for formatting diagnostic messages.
+If not set, the terminal is queried using
+.BR stty (1)
+to determine its width.
+If that fails, a value of \(oq80\(cq is assumed.
+.TP
+.B TMPDIR
+specifies the directory in which to place
+.BR xvfb\-run 's
+temporary directory for storage of the X authority file; only used if the
+.B \-f
+or
+.B \-\-auth\-file
+options are not specified.
+.SH "OUTPUT FILES"
+.PP
+Unless the
+.B \-f
+or
+.B \-\-auth\-file
+options are specified, a temporary
+directory and file within it are created (and deleted) to store the X
+authority cookies used by the
+.B Xvfb
+server and client(s) run under it.
+See
+.BR tempfile (1).
+If \-f or \-\-auth\-file are used, then the specified X authority file is
+only written to, not created or deleted (though
+.B xauth
+creates an authority file itself if told to use use that does not already
+exist).
+.PP
+An error file with a user\-specified name is also created if the
+.B \-e
+or
+.B \-\-error\-file
+options are specifed; see above.
+.SH "EXIT STATUS"
+.B xvfb\-run
+uses its exit status as well as output to standard error to communicate
+diagnostics.
+The exit status of \(oq1\(cq is not used, and should be interpreted as failure
+of the specified command.
+.TP
+0
+.B xvfb\-run
+only uses this exit status if the
+.B \-h\fR,\fB \-\-help
+option is given.
+In all other situations, this may be interpreted as success of the specified
+command.
+.TP
+2
+No command to run was specified.
+.TP
+3
+The
+.B xauth
+command is not available.
+.TP
+4
+The temporary directory that was going to be used already exists; since
+.B xvfb\-run
+produces a uniquely named directory, this may indicate an attempt by another
+process on the system to exploit a temporary file race condition.
+.TP
+5
+A problem was encountered while cleaning up the temporary directory.
+.TP
+6
+A problem was encountered while using
+.BR getopt (1)
+to parse the command\-line arguments.
+.SH EXAMPLES
+.TP
+.B xvfb\-run \-\-auto\-servernum \-\-server\-num=1 xlogo
+runs the
+.BR xlogo (1x)
+demonstration client inside the
+.B Xvfb
+X server on the first available server number greater than or equal to 1.
+.TP
+.B xvfb\-run \-\-server\-args="\-screen 0 1024x768x24" ico \-faces
+runs the
+.BR ico (1x)
+demonstration client (and passes it the
+.B \-faces
+argument) inside the
+.B Xvfb
+X server, configured with a root window of 1024 by 768 pixels and a color
+depth of 24 bits.
+.PP
+Note that the demo X clients used in the above examples will not exit on
+their own, so they will have to be killed before
+.B xvfb\-run
+will exit.
+.SH BUGS
+See
+.URL "http://bugs.debian.org/xvfb" "the Debian Bug Tracking System" .
+If you wish to report a bug in
+.BR xvfb\-run ,
+please use the
+.BR reportbug (1)
+command.
+.SH AUTHOR
+.B xfvb\-run
+was written by Branden Robinson and Jeff Licquia with sponsorship from
+Progeny Linux Systems.
+.SH "SEE ALSO"
+.BR Xvfb (1x),
+.BR xauth (1x)
+.\" vim:set et tw=80:
diff --git a/testing/xz/PKGBUILD b/testing/xz/PKGBUILD
new file mode 100644
index 000000000..3f85f5aa0
--- /dev/null
+++ b/testing/xz/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 117397 2011-04-01 14:53:10Z pierre $
+# Maintainer: Pierre Schmitz <pierre@archlinux.de>
+# Contributor: François Charette <firmicus@gmx.net>
+
+pkgname=xz
+pkgver=5.0.2
+pkgrel=1
+pkgdesc='Library and command line tools for XZ and LZMA compressed files'
+arch=('i686' 'x86_64')
+url='http://tukaani.org/xz/'
+license=('GPL' 'LGPL' 'custom')
+depends=('sh')
+provides=('lzma' 'lzma-utils' 'xz-utils')
+replaces=('lzma' 'lzma-utils' 'xz-utils')
+conflicts=('lzma' 'lzma-utils' 'xz-utils')
+options=('!libtool')
+source=("http://tukaani.org/${pkgname}/${pkgname}-${pkgver}.tar.xz")
+md5sums=('870d0e6fec3b710903371defb48a2fad')
+
+# keep an upgrade path for older installations
+PKGEXT='.pkg.tar.gz'
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ ./configure --prefix=/usr \
+ --disable-rpath \
+ --enable-werror
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+ install -d -m755 ${pkgdir}/usr/share/licenses/xz/
+ ln -sf /usr/share/doc/xz/COPYING ${pkgdir}/usr/share/licenses/xz/
+ ln -sf /usr/share/licenses/common/GPL2/license.txt ${pkgdir}/usr/share/doc/xz/COPYING.GPLv2
+}